From 9d1d7ebc8d9fa470716a9f0877dfe32a0089ccb9 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 13 Jul 2022 09:00:13 +0200 Subject: [PATCH 001/479] Modifications for MDCT-Stereo PLC fadeout --- lib_com/ivas_cnst.h | 2 +- lib_com/ivas_prot.h | 8 +++--- lib_com/ivas_sns_com.c | 4 +-- lib_com/ivas_stereo_psychlpc_com.c | 2 +- lib_com/options.h | 2 +- lib_com/prot.h | 24 ++++++++-------- lib_dec/acelp_core_dec.c | 8 +++--- lib_dec/amr_wb_dec.c | 2 +- lib_dec/core_dec_init.c | 6 ++-- lib_dec/core_dec_switch.c | 4 +-- lib_dec/dec_LPD.c | 4 +-- lib_dec/dec_acelp_tcx_main.c | 2 +- lib_dec/dec_prm.c | 6 ++-- lib_dec/dec_tcx.c | 43 +++++++++++++++++------------ lib_dec/er_dec_tcx.c | 18 ++++++------ lib_dec/evs_dec.c | 2 +- lib_dec/fd_cng_dec.c | 28 +++++++++---------- lib_dec/init_dec.c | 6 ++-- lib_dec/ivas_core_dec.c | 6 ++-- lib_dec/ivas_cpe_dec.c | 2 +- lib_dec/ivas_mdct_core_dec.c | 30 ++++++++++---------- lib_dec/ivas_sce_dec.c | 2 +- lib_dec/ivas_stat_dec.h | 2 +- lib_dec/ivas_stereo_mdct_core_dec.c | 10 +++---- lib_dec/ivas_stereo_switching_dec.c | 8 +++--- lib_dec/ivas_tcx_core_dec.c | 12 ++++---- lib_dec/stat_dec.h | 2 +- lib_dec/tonalMDCTconcealment.c | 16 +++++------ lib_enc/enc_prm.c | 6 ++-- lib_enc/ivas_mdct_core_enc.c | 6 ++-- lib_enc/ivas_sns_enc.c | 2 +- lib_enc/ivas_tcx_core_enc.c | 2 +- 32 files changed, 143 insertions(+), 134 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index cc600418c6..e3a7b0485c 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -797,7 +797,7 @@ enum fea_names #define MAX_MDCT_ITD_BRATE IVAS_64k #define SNS_LOW_BR_MODE -1 -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ #define MDCT_ST_PLC_FADEOUT_START_FRAME 3 diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 0b5fb14d51..753976cb88 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -1945,7 +1945,7 @@ void decoder_tcx_invQ( const int16_t **prm_sqQ, int16_t *nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t isMCT, #endif const int16_t frame_cnt /* i : frame counter in the super frame */ @@ -1953,7 +1953,7 @@ void decoder_tcx_invQ( void decoder_tcx_noisefilling( Decoder_State *st, /* i/o: coder memory state */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float concealment_noise[L_FRAME48k], #endif const float A[], /* i : coefficients NxAz[M+1] */ @@ -1968,7 +1968,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t isMCT, #endif const int16_t frame_cnt /* i : frame counter in the super frame */ @@ -5617,7 +5617,7 @@ ivas_error ivas_orient_trk_GetTrackedOrientation( float *roll ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE void TonalMdctConceal_create_concealment_noise( float concealment_noise[L_FRAME48k], CPE_DEC_HANDLE hCPE, diff --git a/lib_com/ivas_sns_com.c b/lib_com/ivas_sns_com.c index 51f5fcee64..b1555a038b 100644 --- a/lib_com/ivas_sns_com.c +++ b/lib_com/ivas_sns_com.c @@ -37,7 +37,7 @@ #include "ivas_prot.h" #include "rom_com.h" #include -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #include #endif #ifdef DEBUGGING @@ -45,7 +45,7 @@ #endif #include "wmops.h" -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /*------------------------------------------------------------------- * sns_compute_scf() diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index 7093a91093..cdc48f5f98 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -68,7 +68,7 @@ static void SpectrumWeighting_Init( * initialize a PsychoacousticParameters structure *-------------------------------------------------------------------*/ -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE static #endif ivas_error diff --git a/lib_com/options.h b/lib_com/options.h index ce0e122c42..078d3435fb 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -143,7 +143,7 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -/*#define FIX_IVAS_185_MDCT_ST_PLC_FADEOUT*/ /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ +/*#define MDCT_STEREO_PLC_FADE_2_BG_NOISE*/ /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ #define FIX_IVAS_180_PLC_SIGNAL_LAST_OVLP_IN_TCX10 /* IVAS-180 write last overlap mode in TCX10 frames to allow for correct TCX10/TCX5 subframe decomposition in TCX10 frames after a lost frame */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ diff --git a/lib_com/prot.h b/lib_com/prot.h index 4357e98284..8a0523dfe8 100644 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -5144,7 +5144,7 @@ void decod_amr_wb( ivas_error init_decoder( Decoder_State *st, /* o : Decoder static variables structure */ const int16_t idchan /* i : channel ID */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const MC_MODE mc_mode /* i : MC mode */ #endif @@ -6775,7 +6775,7 @@ void enc_acelp_tcx_main( void getTCXMode( Decoder_State *st, /* i/o: decoder memory state */ Decoder_State *st0 /* i : bitstream */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t MCT_flag #endif @@ -7894,7 +7894,7 @@ void decoder_tcx_post( float *synthFB, float *A, const int16_t bfi -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t isMCT #endif @@ -7950,7 +7950,7 @@ void decoder_acelp( void writeTCXMode( Encoder_State *st, /* i/o: encoder state structure */ BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t is_mct, #endif int16_t *nbits_start /* o : nbits start */ @@ -8141,7 +8141,7 @@ void con_tcx( const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left /* i : TD-PLC only in left channel */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const float *A_cng #endif @@ -8690,7 +8690,7 @@ void configureFdCngDec( void ApplyFdCng( float *timeDomainInput, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *powerSpectrum, #endif float **realBuffer, /* i/o: Real part of the buffer */ @@ -8701,7 +8701,7 @@ void ApplyFdCng( void perform_noise_estimation_dec( const float *timeDomainInput, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *power_spectrum, #endif HANDLE_FD_CNG_DEC hFdCngDec, /* i/o: FD_CNG structure */ @@ -9203,7 +9203,7 @@ void open_decoder_LPD( const int32_t last_total_brate, /* i : last total bitrate */ const int16_t bwidth, /* i : audio bandwidth */ const int16_t is_mct, /* i : MCT mode flag */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t last_element_mode, #endif const int16_t is_init /* i : indicate call during initialization */ @@ -9246,7 +9246,7 @@ void mode_switch_decoder_LPD( const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ const int16_t is_mct /* i : MCT mode flag */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t last_element_mode #endif @@ -9530,7 +9530,7 @@ void TonalMDCTConceal_SaveFreqSignal( const uint16_t numSamples, const uint16_t nNewSamplesCore, const float *scaleFactors -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t infoIGFStartLine #endif @@ -9568,7 +9568,7 @@ void TonalMDCTConceal_InsertNoise( int16_t *pSeed, /*IN/OUT*/ const float tiltCompFactor, const float crossfadeGain, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const float concealment_noise[L_FRAME48k], #endif const int16_t crossOverFreq ); @@ -9605,7 +9605,7 @@ void RefineTonalComponents( float floorPowerSpectrum, const PsychoacousticParameters *psychParamsCurrent ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ivas_error PsychoacousticParameters_Init( const int32_t sr_core, /* i : sampling rate of core-coder */ const int16_t nBins, /* i : Number of bins (spectral lines) */ diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c index 3b9efaa316..f133379396 100644 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -156,7 +156,7 @@ ivas_error acelp_core_dec( st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] = STEREO_DFT_FD_FILT * st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] + ( 1 - STEREO_DFT_FD_FILT ) * st->hFdCngDec->hFdCngCom->sidNoiseEst[i]; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( NULL, NULL, NULL, NULL, st, 0, 0 ); #else ApplyFdCng( NULL, NULL, NULL, st, 0, 0 ); @@ -530,7 +530,7 @@ ivas_error acelp_core_dec( { st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] = STEREO_DFT_FD_FILT * st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] + ( 1 - STEREO_DFT_FD_FILT ) * st->hFdCngDec->hFdCngCom->sidNoiseEst[i]; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); #else ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); @@ -1120,7 +1120,7 @@ ivas_error acelp_core_dec( if ( st->element_mode != IVAS_CPE_TD ) { /*Noise estimate*/ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); #else ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); @@ -1189,7 +1189,7 @@ ivas_error acelp_core_dec( /*Noise estimate*/ if ( st->idchan == 0 && ( nchan_out == 2 || ( st->core_brate != FRAME_NO_DATA && st->core_brate != SID_2k40 ) ) ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); #else ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); diff --git a/lib_dec/amr_wb_dec.c b/lib_dec/amr_wb_dec.c index c220c8201e..907d90e9ab 100644 --- a/lib_dec/amr_wb_dec.c +++ b/lib_dec/amr_wb_dec.c @@ -621,7 +621,7 @@ ivas_error amr_wb_dec( /*VAD only for non inactive frame*/ st->VAD = ( st->VAD && ( st->coder_type != INACTIVE ) ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, NULL, NULL, st, 0, 0 ); #else ApplyFdCng( syn, NULL, NULL, st, 0, 0 ); diff --git a/lib_dec/core_dec_init.c b/lib_dec/core_dec_init.c index d2d94799ef..53e0939477 100644 --- a/lib_dec/core_dec_init.c +++ b/lib_dec/core_dec_init.c @@ -57,7 +57,7 @@ void open_decoder_LPD( const int32_t last_total_brate, const int16_t bwidth, const int16_t is_mct, /* i : MCT mode flag */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t last_element_mode, #endif const int16_t is_init /* i : indicate call from init_decoder() to avoid double TC initialization */ @@ -552,9 +552,9 @@ void open_decoder_LPD( { st->hTcxDec->prev_widow_left_rect = 0; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* Todo: should be considered for other stereo modes as well */ - if ( is_init || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) + if ( is_init || is_mct || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV; st->hTcxDec->NoiseLevelIndex_bfi = PLC_MIN_STAT_BUFF_SIZE - 1; diff --git a/lib_dec/core_dec_switch.c b/lib_dec/core_dec_switch.c index 637c185f32..e62cad57c4 100644 --- a/lib_dec/core_dec_switch.c +++ b/lib_dec/core_dec_switch.c @@ -57,7 +57,7 @@ void mode_switch_decoder_LPD( const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ const int16_t is_mct /* i : MCT mode flag */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t last_element_mode #endif @@ -109,7 +109,7 @@ void mode_switch_decoder_LPD( if ( fscale != st->fscale || switchWB || bSwitchFromAmrwbIO || st->last_codec_mode == MODE1 || st->force_lpd_reset ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE open_decoder_LPD( st, total_brate, last_total_brate, bwidth, is_mct, last_element_mode, 0 ); #else open_decoder_LPD( st, total_brate, last_total_brate, bwidth, is_mct, 0 ); diff --git a/lib_dec/dec_LPD.c b/lib_dec/dec_LPD.c index 422104ac43..a28630886e 100644 --- a/lib_dec/dec_LPD.c +++ b/lib_dec/dec_LPD.c @@ -478,7 +478,7 @@ void decoder_LPD( if ( bfi && st->last_core != ACELP_CORE ) { /* PLC: [TCX: TD PLC] */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); #else con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); @@ -650,7 +650,7 @@ void decoder_LPD( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, L_frameTCX ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_post( st, synth, synthFB, Aq, bfi, 0 ); #else decoder_tcx_post( st, synth, synthFB, Aq, bfi ); diff --git a/lib_dec/dec_acelp_tcx_main.c b/lib_dec/dec_acelp_tcx_main.c index b1bfd3e225..1ca75fff20 100644 --- a/lib_dec/dec_acelp_tcx_main.c +++ b/lib_dec/dec_acelp_tcx_main.c @@ -198,7 +198,7 @@ static void decode_frame_type( st->rate_switching_init = 1; /* Reconf Core */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE mode_switch_decoder_LPD( st, st->bwidth, st->total_brate, st->last_total_brate, frame_size_index, 0, st->element_mode ); #else mode_switch_decoder_LPD( st, st->bwidth, st->total_brate, st->last_total_brate, frame_size_index, 0 ); diff --git a/lib_dec/dec_prm.c b/lib_dec/dec_prm.c index c6d2b1a439..43dd70ffeb 100644 --- a/lib_dec/dec_prm.c +++ b/lib_dec/dec_prm.c @@ -55,7 +55,7 @@ void getTCXMode( Decoder_State *st, /* i/o: decoder memory state */ Decoder_State *st0 /* i : bitstream */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t MCT_flag #endif @@ -94,7 +94,7 @@ void getTCXMode( } st->coder_type = INACTIVE; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) { st->VAD = get_next_indice( st0, 1 ); @@ -797,7 +797,7 @@ void dec_prm( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE getTCXMode( st, st, 0 /* <- MCT_flag */ ); #else getTCXMode( st, st ); diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index ae5faa4d73..ddd35a0274 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -98,13 +98,13 @@ void decoder_tcx( init_tcx_info( st, L_frame_glob, L_frameTCX_glob, frame_cnt, bfi, &tcx_offset, &tcx_offsetFB, &L_frame, &L_frameTCX, &left_rect, &L_spec ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_invQ( st, prm, A, Aind, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &xn_buf[0], &fUseTns, &tnsData, &gain_tcx, &prm_sqQ, &nf_seed, bfi, 0, /* <- isMCT */ frame_cnt ); #else decoder_tcx_invQ( st, prm, A, Aind, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &xn_buf[0], &fUseTns, &tnsData, &gain_tcx, &prm_sqQ, &nf_seed, bfi, frame_cnt ); #endif -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_noisefilling( st, NULL, A, L_frameTCX_glob, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, 0, frame_cnt ); #else decoder_tcx_noisefilling( st, A, L_frameTCX_glob, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, frame_cnt ); @@ -133,7 +133,7 @@ void decoder_tcx_post( float *synthFB, float *A, const int16_t bfi -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t isMCT #endif @@ -188,7 +188,7 @@ void decoder_tcx_post( /* PLC: [TCX: Fade-out] * PLC: update or retrieve the background level */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi == 0 && st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) && st->clas_dec == UNVOICED_CLAS ) #else if ( bfi == 0 && st->tcxonly && st->clas_dec == UNVOICED_CLAS ) @@ -696,7 +696,7 @@ void decoder_tcx_invQ( const int16_t **prm_sqQ1, int16_t *nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t isMCT, #endif const int16_t frame_cnt /* i : frame counter in the super frame */ @@ -913,13 +913,22 @@ void decoder_tcx_invQ( hTcxDec->damping = 1; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - else if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + else if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) { - *gain_tcx = hTcxDec->old_gaintcx_bfi; - hTcxDec->damping = Damping_fact( st->coder_type, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), st->last_core ); + if ( st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) + { + *gain_tcx = hTcxDec->old_gaintcx_bfi; + hTcxDec->damping = Damping_fact( st->coder_type, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), st->last_core ); + } + else + { + + *gain_tcx = hTcxDec->old_gaintcx_bfi; + hTcxDec->damping = 1.0f; + } } - else if ( st->element_mode != IVAS_CPE_MDCT || !isMCT ) + else if ( st->element_mode != IVAS_CPE_MDCT || isMCT ) #else else #endif @@ -1079,7 +1088,7 @@ void decoder_tcx_invQ( void decoder_tcx_noisefilling( Decoder_State *st, /* i/o: coder memory state */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float concealment_noise[L_FRAME48k], #endif const float A[], /* i : coefficients NxAz[M+1] */ @@ -1094,7 +1103,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t isMCT, #endif const int16_t frame_cnt /* i : frame counter in the super frame*/ @@ -1248,7 +1257,7 @@ void decoder_tcx_noisefilling( if ( !bfi && st->element_mode != IVAS_CPE_MDCT ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x, L_frameTCX, L_frame, gainlpc2, infoIGFStartLine ); #else TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x, L_frameTCX, L_frame, gainlpc2 ); @@ -1261,8 +1270,8 @@ void decoder_tcx_noisefilling( { /* set f to 1 to not fade out */ /* set f to 0 to immediately switch to white noise */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - if ( st->tcxonly && st->element_mode != IVAS_CPE_MDCT ) +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) ) #else if ( st->tcxonly ) #endif @@ -1304,7 +1313,7 @@ void decoder_tcx_noisefilling( noiseTiltFactor = 1.0f; tcxGetNoiseFillingTilt( A, L_frame, ( total_brate >= ACELP_13k20 && !st->rf_flag ), &noiseTiltFactor ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) { TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, infoIGFStartLine ); @@ -1393,7 +1402,7 @@ void decoder_tcx_noiseshaping_igf( * Noise shaping in frequency domain (1/Wz) * *-----------------------------------------------------------*/ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->igf && ( !bfi || ( st->element_mode == IVAS_CPE_MDCT && st->prev_bfi ) ) ) #else if ( st->igf && !bfi ) diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 2fb4a8979a..13e3a45461 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -58,7 +58,7 @@ void con_tcx( const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left /* i : TD-PLC only in left channel */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const float *A_cng #endif @@ -280,13 +280,13 @@ void con_tcx( st->bpf_gain_param = 0; /* PLC: calculate damping factor */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE alpha = 1.0f; - if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) + if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME && A_cng != NULL ) { alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); } - else if ( st->element_mode != IVAS_CPE_MDCT ) + else if ( A_cng == NULL ) { alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); } @@ -351,13 +351,13 @@ void con_tcx( set_f( pitch_buf, (float) L_SUBFR, st->nb_subfr ); /* PLC: calculate damping factor */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE alpha = 1.0f; - if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) + if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME && A_cng != NULL ) { alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); } - else if ( st->element_mode != IVAS_CPE_MDCT ) + else if ( A_cng == NULL ) { alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); } @@ -460,7 +460,7 @@ void con_tcx( /* PLC: [TCX: Fade-out] retrieve background level */ tmp = 1.0f; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( A_cng != NULL ) { gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_cng, L_frame / 4, st->preemph_fac, 1 ) / 4.f; @@ -570,7 +570,7 @@ void con_tcx( mvr2r( buf, mem_syn, M ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( A_cng != NULL ) { if ( ( st->nbLostCmpt == 1 && st->idchan == 0 ) || ( st->nbLostCmpt == 2 && st->idchan == 1 ) ) diff --git a/lib_dec/evs_dec.c b/lib_dec/evs_dec.c index 9943ca9b98..89369b21b7 100644 --- a/lib_dec/evs_dec.c +++ b/lib_dec/evs_dec.c @@ -676,7 +676,7 @@ ivas_error evs_dec( st->lp_noise = st->hFdCngDec->lp_noise; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( output, NULL, realBuffer, imagBuffer, st, concealWholeFrame, 0 ); #else ApplyFdCng( output, realBuffer, imagBuffer, st, concealWholeFrame, 0 ); diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index 39fbf2a66c..3d66ff60c0 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -368,7 +368,7 @@ void deleteFdCngDec( void ApplyFdCng( float *timeDomainInput, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *powerSpectrum, #endif float **realBuffer, /* i/o: Real part of the buffer */ @@ -384,7 +384,7 @@ void ApplyFdCng( int16_t j, k; float factor; float lsp_cng[M]; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t L_frame, last_L_frame; int32_t sr_core; @@ -419,7 +419,7 @@ void ApplyFdCng( /* set noise estimation inactive during concealment, as no update with noise generated by concealment should be performed. */ /* set noise estimation inactive when we have bit errors, as no update with noise generated by corrupt frame (biterror) should be performed. */ if ( concealWholeFrame == 0 && -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ( timeDomainInput == NULL || ( *timeDomainInput( -FLT_MAX ) && *( timeDomainInput + hFdCngCom->frameSize - 1 ) < FLT_MAX && @@ -435,7 +435,7 @@ void ApplyFdCng( ( !st->BER_detect ) ) { /* Perform noise estimation at the decoder */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); #else perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); @@ -471,7 +471,7 @@ void ApplyFdCng( } } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && timeDomainInput == NULL ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = sqrtf( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / NORM_MDCT_FACTOR ); @@ -488,7 +488,7 @@ void ApplyFdCng( if ( hFdCngCom->active_frame_counter > 0 ) { /* Perform noise estimation in active frames in the decoder for downward updates */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); #else perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); @@ -498,7 +498,7 @@ void ApplyFdCng( if ( ( concealWholeFrame == 1 ) && ( st->nbLostCmpt == 1 ) && sum_f( cngNoiseLevel + hFdCngCom->startBand, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) > 0.01f ) { -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0 ); #else @@ -548,7 +548,7 @@ void ApplyFdCng( } #endif -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); mvr2r( lsp_cng, st->lspold_cng, M ); @@ -567,7 +567,7 @@ void ApplyFdCng( if ( st != NULL && st->cng_type == LP_CNG ) { /* Perform noise estimation on inactive phase at the decoder */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); #else perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); @@ -582,7 +582,7 @@ void ApplyFdCng( /* This sets the new CNG levels until a SID update overwrites it */ mvr2r( hFdCngDec->bandNoiseShape, cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ); /* This sets the new CNG levels until a SID update overwrites it */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE st->cngTDLevel = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / L_frame ); #else st->cngTDLevel = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / st->L_frame ); @@ -668,7 +668,7 @@ void ApplyFdCng( default: break; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE wmops_sub_end(); #endif @@ -685,7 +685,7 @@ void ApplyFdCng( void perform_noise_estimation_dec( const float *timeDomainInput, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *power_spectrum, #endif HANDLE_FD_CNG_DEC hFdCngDec, /* i/o: FD_CNG structure containing all buffers and variables */ @@ -720,7 +720,7 @@ void perform_noise_estimation_dec( float temp, ftemp, delta; float wght; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( !( element_mode == IVAS_CPE_MDCT && power_spectrum != NULL ) ) { /* Perform STFT analysis */ @@ -962,7 +962,7 @@ void perform_noise_estimation_dec( } else { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( element_mode == IVAS_CPE_MDCT && power_spectrum != NULL ) { /* use power spectrum calculated in the MDCT-domain instead of calculating new power spectrum */ diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 40c65d9503..2e31017eaa 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -54,7 +54,7 @@ ivas_error init_decoder( Decoder_State *st, /* o : Decoder static variables structure */ const int16_t idchan /* i : channel ID */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const MC_MODE mc_mode /* i : MC mode */ #endif @@ -691,7 +691,7 @@ ivas_error init_decoder( st->enablePlcWaveadjust = 0; /* Init Core Decoder */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, st->element_mode, 1 ); #else open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, 1 ); @@ -714,7 +714,7 @@ ivas_error init_decoder( * FD-CNG decoder *-----------------------------------------------------------------*/ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( st->element_mode == IVAS_CPE_MDCT || idchan == 0 ) && mc_mode != MC_MODE_MCT ) #else if ( idchan == 0 && st->element_mode != IVAS_CPE_MDCT ) diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index 6a3f588f9b..299c6ff620 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -35,7 +35,7 @@ #ifdef DEBUGGING #include "debug.h" #endif -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #include #endif #include @@ -183,7 +183,7 @@ ivas_error ivas_core_dec( st->flagGuidedAcelp = 0; } -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->element_mode != IVAS_CPE_MDCT ) { @@ -201,7 +201,7 @@ ivas_error ivas_core_dec( } #else /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ - if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) ) + if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && hMCT == NULL ) { float gain; if ( st->hPlcInfo != NULL ) diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 19c1ad43fb..ef61bbe23b 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -713,7 +713,7 @@ ivas_error create_cpe_dec( st->mct_chan_mode = MCT_CHAN_MODE_LFE; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( error = init_decoder( st, n, st_ivas->mc_mode ) ) != IVAS_ERR_OK ) #else if ( ( error = init_decoder( st, n ) ) != IVAS_ERR_OK ) diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index 0d340ca9f6..e9a86304bb 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -102,7 +102,7 @@ static void dec_prm_tcx_sidebits( int16_t p_param[NB_DIV], /* o : pointer to parameters for next round of bs reading*/ int16_t nTnsBitsTCX10[NB_DIV], /* o : number of TNS bits per TCX10 subframe */ Decoder_State *st0, /* i/o: core decoder state handle - for bitstream */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t MCT_flag, #endif const int16_t ch /* i : channel */ @@ -134,7 +134,7 @@ static void dec_prm_tcx_sidebits( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE getTCXMode( st, st0, MCT_flag ); #else getTCXMode( st, st0 ); @@ -389,7 +389,7 @@ void ivas_mdct_dec_side_bits_frame_channel( tmp = 3; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE dec_prm_tcx_sidebits( param[ch], st, ( ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) ? sts[0]->hTcxDec->tnsActive : NULL ), p_param[ch], nTnsBitsTCX10[ch], st0, MCT_flag, tmp ); #else dec_prm_tcx_sidebits( param[ch], st, ( ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) ? sts[0]->hTcxDec->tnsActive : NULL ), p_param[ch], nTnsBitsTCX10[ch], st0, tmp ); @@ -489,7 +489,7 @@ void ivas_mdct_core_invQ( const int16_t *prm_sqQ; int16_t L_frameTCX_global[CPE_CHANNELS]; float tmp_ms_sig[CPE_CHANNELS][N_MAX]; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float concealment_noise[CPE_CHANNELS][L_FRAME48k]; TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode_bfi; #endif @@ -498,7 +498,7 @@ void ivas_mdct_core_invQ( sts = hCPE->hCoreCoder; bfi = sts[0]->bfi; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE noise_gen_mode_bfi = -1; #endif @@ -522,7 +522,7 @@ void ivas_mdct_core_invQ( sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 1 ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi ) { if ( sts[0]->core == sts[1]->core ) @@ -736,7 +736,7 @@ void ivas_mdct_core_invQ( } nf_seed = 0; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_invQ( st, prm[ch], Aq[ch], Aind[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, xn_buf, &fUseTns[ch][k], &tnsData[ch][k], &gain_tcx, &prm_sqQ, &nf_seed, bfi, isMCT, k ); #else decoder_tcx_invQ( st, prm[ch], Aq[ch], Aind[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, xn_buf, &fUseTns[ch][k], &tnsData[ch][k], &gain_tcx, &prm_sqQ, &nf_seed, bfi, k ); @@ -744,7 +744,7 @@ void ivas_mdct_core_invQ( mvr2r( x[ch][k], x_0[ch][k], L_frameTCX[ch] ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi && !isMCT ) { TonalMdctConceal_create_concealment_noise( concealment_noise[ch], hCPE, L_frameTCX[ch], L_frame[ch], ch, k, st->core, st->hTcxDec->cummulative_damping_tcx, noise_gen_mode_bfi ); @@ -873,7 +873,7 @@ void ivas_mdct_core_reconstruct( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, L_frameTCX[ch] ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_post( st, synth, synthFB, NULL, bfi, isMCT ); #else decoder_tcx_post( st, synth, synthFB, NULL, bfi ); @@ -885,7 +885,7 @@ void ivas_mdct_core_reconstruct( /* PLC: [TCX: TD PLC] */ if ( isMCT ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); #else con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); @@ -893,7 +893,7 @@ void ivas_mdct_core_reconstruct( } else { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], hCPE->hStereoMdct->lastCoh, &sts[0]->seed_acelp, ( sts[1]->core != ACELP_CORE ) ? 1 : 0, &st->hFdCngDec->hFdCngCom->A_cng[0] ); #else con_tcx( st, &synthFB[0], hCPE->hStereoMdct->lastCoh, &sts[0]->seed_acelp, ( sts[1]->core != ACELP_CORE ) ? 1 : 0 ); @@ -1076,13 +1076,13 @@ void ivas_mdct_core_tns_ns( { sns_interpolate_scalefactors( &sns_int_scf[0], &Aq[ch][k * M], DEC ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( isMCT && st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) #else if ( isMCT && st->hTonalMDCTConc != NULL ) #endif { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t infoIGFStartLine; if ( st->igf == 0 ) @@ -1113,8 +1113,8 @@ void ivas_mdct_core_tns_ns( { if ( st->hTonalMDCTConc != NULL ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - if ( st->hTcxDec->cummulative_damping_tcx != 1.f ) +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( !isMCT && st->hTcxDec->cummulative_damping_tcx != 1.f ) { float *scf_last; float *scf_bg; diff --git a/lib_dec/ivas_sce_dec.c b/lib_dec/ivas_sce_dec.c index fbcf859c30..879ebd4233 100644 --- a/lib_dec/ivas_sce_dec.c +++ b/lib_dec/ivas_sce_dec.c @@ -342,7 +342,7 @@ ivas_error create_sce_dec( st->total_brate = hSCE->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ st->mct_chan_mode = MCT_CHAN_MODE_REGULAR; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( error = init_decoder( st, 0, st_ivas->mc_mode ) ) != IVAS_ERR_OK ) #else if ( ( error = init_decoder( st, 0 ) ) != IVAS_ERR_OK ) diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index e7bb2e1267..aa25bfd3b1 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -320,7 +320,7 @@ typedef struct stereo_mdct_dec_data_structure int16_t prev_ms_mask[NB_DIV][MAX_SFB]; float lastCoh; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t noise_seeds_channels[CPE_CHANNELS]; int16_t noise_seed_common; #endif diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index d87be7f23a..991062a977 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -50,7 +50,7 @@ *-------------------------------------------------------------------------*/ static void apply_dmx_weights( CPE_DEC_HANDLE hCPE, float *x[CPE_CHANNELS][NB_DIV], int16_t transform_type_left[NB_DIV], int16_t transform_type_right[NB_DIV] ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE static void run_min_stats( Decoder_State **sts, float *x[CPE_CHANNELS][NB_DIV] ); #endif @@ -322,13 +322,13 @@ void stereo_mdct_core_dec( sns_interpolate_scalefactors( &sns_int_scf[0], &Aq[ch][k * M], DEC ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) #else if ( st->hTonalMDCTConc != NULL ) #endif { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t infoIGFStartLine; if ( st->igf == 0 ) @@ -379,7 +379,7 @@ void stereo_mdct_core_dec( ivas_ls_setup_conversion_process_mdct_param_mc( st_ivas, x ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE run_min_stats( sts, x ); #endif @@ -600,7 +600,7 @@ static void apply_dmx_weights( return; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /*-------------------------------------------------------------------* * run_min_stats() * diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index e4c5021dbc..d32423d830 100644 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -424,7 +424,7 @@ ivas_error stereo_memory_dec( if ( hCPE->last_element_mode == IVAS_CPE_MDCT ) { cpy_tcx_ltp_data( hCPE->hCoreCoder[1]->hTcxLtpDec, hCPE->hStereoDft->hTcxLtpDec, output_Fs ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE deleteFdCngDec( &hCPE->hCoreCoder[1]->hFdCngDec ); #endif } @@ -489,7 +489,7 @@ ivas_error stereo_memory_dec( /* deallocated TCX/IGF structures for second channel */ deallocate_CoreCoder_TCX( hCPE->hCoreCoder[1] ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( hCPE->last_element_mode == IVAS_CPE_MDCT ) { deleteFdCngDec( &hCPE->hCoreCoder[1]->hFdCngDec ); @@ -675,7 +675,7 @@ ivas_error stereo_memory_dec( /* deallocate core-decoder substructures */ deallocate_CoreCoder( st ); -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* deallocate FD_CNG substructure */ deleteFdCngDec( &st->hFdCngDec ); #endif @@ -702,7 +702,7 @@ ivas_error stereo_memory_dec( } } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* allocate Fd-Cng structure for second channel */ if ( ( error = createFdCngDec( &st->hFdCngDec ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 1fc0de4a88..4577e566e3 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -150,7 +150,7 @@ void stereo_tcx_init_dec( } /* Reconfigure Core */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct, last_element_mode ); #else mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct ); @@ -457,7 +457,7 @@ void stereo_tcx_core_dec( } /* PLC: [TCX: TD PLC] */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); #else con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); @@ -589,7 +589,7 @@ void stereo_tcx_core_dec( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, hTcxDec->L_frameTCX ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_post( st, synth, synthFB, Aq, bfi, 0 ); #else decoder_tcx_post( st, synth, synthFB, Aq, bfi ); @@ -750,7 +750,7 @@ void stereo_tcx_core_dec( if ( st->element_mode != IVAS_CPE_TD ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( signal_out, NULL, NULL, NULL, st, st->bfi, 0 ); #else ApplyFdCng( signal_out, NULL, NULL, st, st->bfi, 0 ); @@ -779,7 +779,7 @@ void stereo_tcx_core_dec( if ( st->element_mode == IVAS_CPE_TD && st->idchan == 0 ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( signal_out, NULL, NULL, NULL, st, st->bfi, 0 ); #else ApplyFdCng( signal_out, NULL, NULL, st, st->bfi, 0 ); @@ -867,7 +867,7 @@ static void dec_prm_tcx( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE getTCXMode( st, st, 0 /* <- MCT_flag */ ); #else getTCXMode( st, st ); diff --git a/lib_dec/stat_dec.h b/lib_dec/stat_dec.h index 8fc8ec5282..4762b1b166 100644 --- a/lib_dec/stat_dec.h +++ b/lib_dec/stat_dec.h @@ -204,7 +204,7 @@ typedef struct Float32 *secondLastPcmOut; float *secondLastPowerSpectrum; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float scaleFactorsBackground[FDNS_NPTS]; PsychoacousticParameters *psychParams; /* could be stored only once, since the same for all channels (always at 16Khz fs) */ diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index b43f85b8f9..ac666c9ff9 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -93,7 +93,7 @@ ivas_error TonalMDCTConceal_Init( hTonalMDCTConc->nSamplesCore = nSamplesCore; hTonalMDCTConc->nScaleFactors = nScaleFactors; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE set_zero( hTonalMDCTConc->scaleFactorsBackground, FDNS_NPTS ); PsychoacousticParameters_Init( INT_FS_16k, L_FRAME16k, 64, 1, 1, &hTonalMDCTConc->psychParamsTCX20 ); PsychoacousticParameters_Init( INT_FS_16k, L_FRAME16k / 2, 64, 0, 1, &hTonalMDCTConc->psychParamsTCX10 ); @@ -123,7 +123,7 @@ void TonalMDCTConceal_SaveFreqSignal( const uint16_t nNewSamples, const uint16_t nNewSamplesCore, const float *scaleFactors -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t infoIGFStartLine #endif @@ -168,7 +168,7 @@ void TonalMDCTConceal_SaveFreqSignal( if ( ( nNewSamples > 0 ) && ( nNewSamples <= 2 * L_FRAME_MAX ) ) { /* Store new data */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t i; hTonalMDCTConc->last_block_nrg = 0.0f; @@ -500,7 +500,7 @@ void TonalMDCTConceal_InsertNoise( int16_t *pSeed, const float tiltCompFactor, const float crossfadeGain, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const float concealment_noise[L_FRAME48k], #endif const int16_t crossOverFreq ) @@ -522,7 +522,7 @@ void TonalMDCTConceal_InsertNoise( rnd = *pSeed; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* based on what is done in tcx_noise_filling() */ /* always initialize these to avoid compiler warnings */ tiltFactor = (float) pow( max( 0.375f, tiltCompFactor ), 1.0f / hTonalMDCTConc->lastBlockData.nSamples ); @@ -536,7 +536,7 @@ void TonalMDCTConceal_InsertNoise( /* may just become active if the very first frame is lost */ set_f( mdctSpectrum, 0.0f, hTonalMDCTConc->nSamples ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE else if ( concealment_noise != NULL ) { if ( !tonalConcealmentActive ) @@ -710,7 +710,7 @@ void TonalMDCTConceal_InsertNoise( #endif else { -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* based on what is done in tcx_noise_filling() */ tiltFactor = (float) pow( max( 0.375f, tiltCompFactor ), 1.0f / hTonalMDCTConc->lastBlockData.nSamples ); tilt = 1.0f; @@ -962,7 +962,7 @@ void TonalMDCTConceal_SaveTimeSignal( return; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE void TonalMdctConceal_create_concealment_noise( float concealment_noise[L_FRAME48k], CPE_DEC_HANDLE hCPE, diff --git a/lib_enc/enc_prm.c b/lib_enc/enc_prm.c index c48e171517..d9767207d2 100644 --- a/lib_enc/enc_prm.c +++ b/lib_enc/enc_prm.c @@ -55,7 +55,7 @@ void writeTCXMode( Encoder_State *st, /* i/o: encoder state structure */ BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t is_mct, #endif int16_t *nbits_start /* o : nbits start */ @@ -88,7 +88,7 @@ void writeTCXMode( push_next_indice( hBstr, index, 2 ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !is_mct ) { push_next_indice( hBstr, st->vad_flag, 1 ); @@ -792,7 +792,7 @@ void enc_prm( /* EVS header */ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE writeTCXMode( st, st->hBstr, 0, /* <- is_mct */ &nbits_start ); #else writeTCXMode( st, st->hBstr, &nbits_start ); diff --git a/lib_enc/ivas_mdct_core_enc.c b/lib_enc/ivas_mdct_core_enc.c index 98b3a354c5..f1c7541210 100644 --- a/lib_enc/ivas_mdct_core_enc.c +++ b/lib_enc/ivas_mdct_core_enc.c @@ -63,7 +63,7 @@ static void enc_prm_pre_mdct( int16_t param[], /* i : parameters */ const int16_t *no_param_tns, /* i : number of TNS parameters per subframe */ int16_t p_param[2], /* o : pointer to parameters for next round of bs writing */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t is_mct, #endif BSTR_ENC_HANDLE hBstr /* i/o: encoder bitstream handle */ @@ -80,7 +80,7 @@ static void enc_prm_pre_mdct( * Header *--------------------------------------------------------------------------------*/ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE writeTCXMode( st, hBstr, is_mct, &nbits_start ); #else writeTCXMode( st, hBstr, &nbits_start ); @@ -1069,7 +1069,7 @@ void ivas_mdct_core_whitening_enc( continue; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE enc_prm_pre_mdct( st, param_core[ch], ( ( ( ch > 0 ) && ( sts[0]->hTcxEnc->fUseTns[0] + sts[0]->hTcxEnc->fUseTns[1] > 0 ) && !mct_on ) ? tnsSize[ch] : NULL ), p_param[ch], mct_on, hBstr ); #else enc_prm_pre_mdct( st, param_core[ch], ( ( ( ch > 0 ) && ( sts[0]->hTcxEnc->fUseTns[0] + sts[0]->hTcxEnc->fUseTns[1] > 0 ) && !mct_on ) ? tnsSize[ch] : NULL ), p_param[ch], hBstr ); diff --git a/lib_enc/ivas_sns_enc.c b/lib_enc/ivas_sns_enc.c index 1aeac19c57..87019b8d91 100644 --- a/lib_enc/ivas_sns_enc.c +++ b/lib_enc/ivas_sns_enc.c @@ -43,7 +43,7 @@ #endif #include "wmops.h" -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ /*------------------------------------------------------------------- diff --git a/lib_enc/ivas_tcx_core_enc.c b/lib_enc/ivas_tcx_core_enc.c index fa0851a52a..f481160707 100644 --- a/lib_enc/ivas_tcx_core_enc.c +++ b/lib_enc/ivas_tcx_core_enc.c @@ -270,7 +270,7 @@ void stereo_tcx_core_enc( *--------------------------------------------------------------------------------*/ /* TCX20/TCX10 and coder type */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE writeTCXMode( st, hBstr, 0, /* <- is_mct */ &nbits_start ); #else writeTCXMode( st, hBstr, &nbits_start ); -- GitLab From b1ad63f346bdf61e2f84667c14cf1b9a7e52682d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 18 Jul 2022 14:31:46 +0200 Subject: [PATCH 002/479] cmp_custom.py: fixed usage/help print --- scripts/ivas_pytests/tests/cmp_custom.py | 2 ++ 1 file changed, 2 insertions(+) mode change 100644 => 100755 scripts/ivas_pytests/tests/cmp_custom.py diff --git a/scripts/ivas_pytests/tests/cmp_custom.py b/scripts/ivas_pytests/tests/cmp_custom.py old mode 100644 new mode 100755 index e52d6df46c..1999d7ccc5 --- a/scripts/ivas_pytests/tests/cmp_custom.py +++ b/scripts/ivas_pytests/tests/cmp_custom.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 +__license__ = \ """ (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., @@ -30,6 +31,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ +__doc__ = \ """ Script to compare samples in 2 PCM files. -- GitLab From b7b4067b0ad46bb4029716fdf732b54105fb7b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 18 Jul 2022 14:42:27 +0200 Subject: [PATCH 003/479] setup tests folder --- {scripts/ivas_pytests/tests => tests}/cmp_custom.py | 0 {scripts/ivas_pytests => tests}/conftest.py | 0 {scripts/ivas_pytests/tests => tests}/cut_pcm.py | 0 {scripts/ivas_pytests/tests => tests}/il2mm.py | 0 {scripts/ivas_pytests/tests => tests}/requirements.txt | 0 {scripts/ivas_pytests => tests}/self_test_b.py | 0 .../test_spar_foa_bs_dec_plc.py => tests/test_sba_bs_dec_plc.py | 0 .../test_spar_foa_bs_enc.py => tests/test_sba_bs_enc.py | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename {scripts/ivas_pytests/tests => tests}/cmp_custom.py (100%) rename {scripts/ivas_pytests => tests}/conftest.py (100%) rename {scripts/ivas_pytests/tests => tests}/cut_pcm.py (100%) rename {scripts/ivas_pytests/tests => tests}/il2mm.py (100%) rename {scripts/ivas_pytests/tests => tests}/requirements.txt (100%) rename {scripts/ivas_pytests => tests}/self_test_b.py (100%) rename scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py => tests/test_sba_bs_dec_plc.py (100%) rename scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py => tests/test_sba_bs_enc.py (100%) diff --git a/scripts/ivas_pytests/tests/cmp_custom.py b/tests/cmp_custom.py similarity index 100% rename from scripts/ivas_pytests/tests/cmp_custom.py rename to tests/cmp_custom.py diff --git a/scripts/ivas_pytests/conftest.py b/tests/conftest.py similarity index 100% rename from scripts/ivas_pytests/conftest.py rename to tests/conftest.py diff --git a/scripts/ivas_pytests/tests/cut_pcm.py b/tests/cut_pcm.py similarity index 100% rename from scripts/ivas_pytests/tests/cut_pcm.py rename to tests/cut_pcm.py diff --git a/scripts/ivas_pytests/tests/il2mm.py b/tests/il2mm.py similarity index 100% rename from scripts/ivas_pytests/tests/il2mm.py rename to tests/il2mm.py diff --git a/scripts/ivas_pytests/tests/requirements.txt b/tests/requirements.txt similarity index 100% rename from scripts/ivas_pytests/tests/requirements.txt rename to tests/requirements.txt diff --git a/scripts/ivas_pytests/self_test_b.py b/tests/self_test_b.py similarity index 100% rename from scripts/ivas_pytests/self_test_b.py rename to tests/self_test_b.py diff --git a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py b/tests/test_sba_bs_dec_plc.py similarity index 100% rename from scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py rename to tests/test_sba_bs_dec_plc.py diff --git a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py b/tests/test_sba_bs_enc.py similarity index 100% rename from scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py rename to tests/test_sba_bs_enc.py -- GitLab From 45a397696dcd77bb3c2b8e34a6ab5e7485fc85b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 18 Jul 2022 15:40:31 +0200 Subject: [PATCH 004/479] adjustments to new tests folder + renaming of spar_foa to sba --- .gitlab-ci.yml | 2 +- tests/conftest.py | 18 ++++++++-------- tests/self_test_b.py | 20 ++++++++--------- tests/test_sba_bs_dec_plc.py | 20 ++++++++--------- tests/test_sba_bs_enc.py | 42 +++++++++++++++++------------------- 5 files changed, 49 insertions(+), 53 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a66624cc9b..f60569f347 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -165,7 +165,7 @@ self-test-on-merge-request: ### run SBA pytest - exit_code=0 - - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? + - python3 ./tests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi - zero_errors=$(cat report-junit.xml | grep -c 'testsuite errors="0"') || true - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi diff --git a/tests/conftest.py b/tests/conftest.py index 2cc74689af..24bd512dd2 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -130,9 +130,9 @@ def dut_encoder_path(request) -> Path: system = platform.system() if system == "Windows": - path = here.joinpath("../../IVAS_cod.exe") + path = here.joinpath("../IVAS_cod.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../../IVAS_cod") + path = here.joinpath("../IVAS_cod") else: raise ValueError(f'Wrong system "{system}"!') @@ -242,9 +242,9 @@ def ref_encoder_path(request) -> Path: system = platform.system() if system == "Windows": - path = here.joinpath("../../IVAS_cod.exe") + path = here.joinpath("../IVAS_cod.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../../IVAS_cod") + path = here.joinpath("../IVAS_cod") else: raise ValueError(f'Wrong system "{system}"!') @@ -264,9 +264,9 @@ def dut_decoder_path(request) -> Path: system = platform.system() if system == "Windows": - path = here.joinpath("../../IVAS_dec.exe") + path = here.joinpath("../IVAS_dec.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../../IVAS_dec") + path = here.joinpath("../IVAS_dec") else: raise ValueError(f'Wrong system "{system}"!') @@ -360,9 +360,9 @@ def ref_decoder_path(request) -> Path: system = platform.system() if system == "Windows": - path = here.joinpath("../../IVAS_dec.exe") + path = here.joinpath("../IVAS_dec.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../../IVAS_dec") + path = here.joinpath("../IVAS_dec") else: raise ValueError(f'Wrong system "{system}"!') @@ -380,7 +380,7 @@ def data_system_tests_path(request) -> Path: here = Path(__file__).parent.resolve() - path = here.joinpath("testv") + path = here.joinpath("../scripts/testv") path = str(path.resolve()) diff --git a/tests/self_test_b.py b/tests/self_test_b.py index 941739435e..917bb4c0fe 100755 --- a/tests/self_test_b.py +++ b/tests/self_test_b.py @@ -45,17 +45,17 @@ import subprocess import platform from pathlib import Path -sys.path.append('scripts/ivas_pytests/tests/') +sys.path.append('tests/') from cut_pcm import cut_samples BIN_EXT = ".exe" if platform.system() == "Windows" else "" HERE = Path(__file__).parent.resolve() -DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../../IVAS_cod{BIN_EXT}").resolve()) -DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../../IVAS_dec{BIN_EXT}").resolve()) -DEFAULT_ENCODER_REF = str(HERE.joinpath(f"../../IVAS_cod_ref{BIN_EXT}").resolve()) -DEFAULT_DECODER_REF = str(HERE.joinpath(f"../../IVAS_dec_ref{BIN_EXT}").resolve()) -CREND_UNITTEST_REF = str(HERE.joinpath(f"tests/unit_tests/crend/IVAS_crend_unit_test_ref{BIN_EXT}").resolve()) -TEST_VECTOR_DIR = str(HERE.joinpath("../testv").resolve()) +DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../IVAS_cod{BIN_EXT}").resolve()) +DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../IVAS_dec{BIN_EXT}").resolve()) +DEFAULT_ENCODER_REF = str(HERE.joinpath(f"../IVAS_cod_ref{BIN_EXT}").resolve()) +DEFAULT_DECODER_REF = str(HERE.joinpath(f"../IVAS_dec_ref{BIN_EXT}").resolve()) +CREND_UNITTEST_REF = str(HERE.joinpath(f"../scripts/ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test_ref{BIN_EXT}").resolve()) +TEST_VECTOR_DIR = str(HERE.joinpath("../scripts/testv").resolve()) REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) DUT_BASE_DIR = str(HERE.joinpath("dut").resolve()) @@ -105,7 +105,7 @@ def build_dut_binaries(): Build the DUT binaries. """ print("Building the DUT binaries") - dut_src_dir = str(HERE.joinpath("../..").resolve()) + dut_src_dir = str(HERE.joinpath("..").resolve()) build_enc_and_dec(dut_src_dir) build_crend_unittest(dut_src_dir) @@ -202,7 +202,7 @@ def main(argv): else: base_cmd = ["python3", "-m", "pytest"] base_cmd += [ - "scripts/ivas_pytests/tests", + "tests", "-n", args.numprocesses, "--update_ref", @@ -246,7 +246,7 @@ def main(argv): else: cmd = ["python3", "-m", "pytest"] cmd += [ - "scripts/ivas_pytests/tests", + "tests", "-n", args.numprocesses, "-v", diff --git a/tests/test_sba_bs_dec_plc.py b/tests/test_sba_bs_dec_plc.py index 7b9a2b245d..a6d6ae82f5 100644 --- a/tests/test_sba_bs_dec_plc.py +++ b/tests/test_sba_bs_dec_plc.py @@ -34,8 +34,6 @@ import shutil import errno import sys -sys.path.append('scripts/ivas_pytests/') -sys.path.append('scripts/ivas_pytests/tests/') from il2mm import il2mm from cmp_custom import cmp_custom from conftest import EncoderFrontend, DecoderFrontend @@ -62,10 +60,10 @@ def check_and_makedir(dir_path): # assumption: -# - the needed reference bitstreams are created by test_spar_foa_enc_system +# - the needed reference bitstreams are created by test_sba_enc_system # -> reference bitstreams are not any longer created as part of this test -# -> the parameters of this test (except additional parameter plc_pattern) need to be a subset of the parameters in test_spar_foa_enc_system -# -> the reference generation for this test (reference decoder output) needs to be done after completion of test_spar_foa_enc_system +# -> the parameters of this test (except additional parameter plc_pattern) need to be a subset of the parameters in test_sba_enc_system +# -> the reference generation for this test (reference decoder output) needs to be done after completion of test_sba_enc_system # -> therefore the marker create_ref_part2 @pytest.mark.create_ref_part2 @pytest.mark.parametrize("ivas_br", ivas_br_list) @@ -74,7 +72,7 @@ def check_and_makedir(dir_path): @pytest.mark.parametrize("plc_pattern", plc_patterns) @pytest.mark.parametrize("fs", sampling_rate_list) @pytest.mark.parametrize("agc", agc_list) -def test_spar_foa_plc_system( +def test_sba_plc_system( dut_decoder_frontend: DecoderFrontend, data_system_tests_path, reference_path, @@ -91,12 +89,12 @@ def test_spar_foa_plc_system( tag = tag + fs + 'c' #dec - spar_foa_dec_plc(dut_decoder_frontend, data_system_tests_path, reference_path, dut_base_path, ref_decoder_path, tag, ch_count_foa, fs, ivas_br, dtx, plc_pattern, update_ref, agc) + sba_dec_plc(dut_decoder_frontend, data_system_tests_path, reference_path, dut_base_path, ref_decoder_path, tag, ch_count_foa, fs, ivas_br, dtx, plc_pattern, update_ref, agc) ######################################################### ############ test function ############################## -def spar_foa_dec_plc( +def sba_dec_plc( decoder_frontend, test_vector_path, reference_path, @@ -119,14 +117,14 @@ def spar_foa_dec_plc( tag_out += '_AGC1' plc_tag_out = f"{tag_out}_{plc_pattern}" - dut_out_dir = f"{dut_base_path}/spar_foa_bs/raw/{plc_tag_out}" - ref_out_dir = f"{reference_path}/spar_foa_bs/raw/{plc_tag_out}" + dut_out_dir = f"{dut_base_path}/sba_bs/raw/{plc_tag_out}" + ref_out_dir = f"{reference_path}/sba_bs/raw/{plc_tag_out}" check_and_makedir(dut_out_dir) check_and_makedir(ref_out_dir) plc_file = f"{test_vector_path}/{plc_pattern}.g192" - ref_in_pkt = f"{reference_path}/spar_foa_bs/pkt/{tag_out}.pkt" + ref_in_pkt = f"{reference_path}/sba_bs/pkt/{tag_out}.pkt" if ref_decoder_path: ref_decoder = DecoderFrontend(ref_decoder_path, "REF") diff --git a/tests/test_sba_bs_enc.py b/tests/test_sba_bs_enc.py index 25bcfe7f3b..7e3f2c1601 100644 --- a/tests/test_sba_bs_enc.py +++ b/tests/test_sba_bs_enc.py @@ -39,8 +39,6 @@ import errno import shutil import sys -sys.path.append('scripts/ivas_pytests/') -sys.path.append('scripts/ivas_pytests/tests/') from il2mm import il2mm from cmp_custom import cmp_custom from cut_pcm import cut_samples @@ -108,7 +106,7 @@ def test_bypass_enc( output_config = "FOA" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, data_system_tests_path, ref_encoder_path, @@ -126,7 +124,7 @@ def test_bypass_enc( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, @@ -150,7 +148,7 @@ def test_bypass_enc( @pytest.mark.parametrize("tag", tag_list) @pytest.mark.parametrize("fs", sample_rate_list) @pytest.mark.parametrize("agc", agc_list) -def test_spar_foa_enc_system( +def test_sba_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, data_system_tests_path, @@ -176,7 +174,7 @@ def test_spar_foa_enc_system( cut_gain = "1.0" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, data_system_tests_path, ref_encoder_path, @@ -195,7 +193,7 @@ def test_spar_foa_enc_system( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, @@ -238,7 +236,7 @@ def test_spar_hoa2_enc_system( output_config = "HOA2" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, data_system_tests_path, ref_encoder_path, @@ -257,7 +255,7 @@ def test_spar_hoa2_enc_system( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, @@ -300,7 +298,7 @@ def test_spar_hoa3_enc_system( output_config = "HOA3" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, data_system_tests_path, ref_encoder_path, @@ -319,7 +317,7 @@ def test_spar_hoa3_enc_system( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, @@ -341,7 +339,7 @@ def test_spar_hoa3_enc_system( @pytest.mark.parametrize("dtx", dtx_set) @pytest.mark.parametrize("tag", tag_list_bw_force) @pytest.mark.parametrize("sample_rate_bw_idx", sample_rate_bw_idx_list) -def test_spar_foa_enc_BWforce_system( +def test_sba_enc_BWforce_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, data_system_tests_path, @@ -364,7 +362,7 @@ def test_spar_foa_enc_BWforce_system( output_config = "FOA" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, data_system_tests_path, ref_encoder_path, @@ -382,7 +380,7 @@ def test_spar_foa_enc_BWforce_system( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, @@ -402,7 +400,7 @@ def test_spar_foa_enc_BWforce_system( ######################################################### ############ test function ############################## -def spar_foa_enc( +def sba_enc( encoder_frontend, test_vector_path, ref_encoder_path, @@ -422,8 +420,8 @@ def spar_foa_enc( ): ######### run cmd ##################################### - dut_out_dir = f"{dut_base_path}/spar_foa_bs/pkt" - ref_out_dir = f"{reference_path}/spar_foa_bs/pkt" + dut_out_dir = f"{dut_base_path}/sba_bs/pkt" + ref_out_dir = f"{reference_path}/sba_bs/pkt" check_and_makedir(dut_out_dir) check_and_makedir(ref_out_dir) @@ -496,7 +494,7 @@ def spar_foa_enc( ) -def spar_foa_dec( +def sba_dec( decoder_frontend, ref_decoder_path, reference_path, @@ -533,11 +531,11 @@ def spar_foa_dec( # to avoid conflicting names in case of parallel test execution, differentiate all cases long_tag_ext = f"_AGC{agc}_pca{bypass}" - dut_out_dir = f"{dut_base_path}/spar_foa_bs/raw/{tag_out}{long_tag_ext}" - ref_out_dir = f"{reference_path}/spar_foa_bs/raw/{tag_out}{short_tag_ext}" + dut_out_dir = f"{dut_base_path}/sba_bs/raw/{tag_out}{long_tag_ext}" + ref_out_dir = f"{reference_path}/sba_bs/raw/{tag_out}{short_tag_ext}" - dut_in_pkt = f"{dut_base_path}/spar_foa_bs/pkt/{tag_out}{long_tag_ext}.pkt" - ref_in_pkt = f"{reference_path}/spar_foa_bs/pkt/{tag_out}{short_tag_ext}.pkt" + dut_in_pkt = f"{dut_base_path}/sba_bs/pkt/{tag_out}{long_tag_ext}.pkt" + ref_in_pkt = f"{reference_path}/sba_bs/pkt/{tag_out}{short_tag_ext}.pkt" check_and_makedir(dut_out_dir) check_and_makedir(ref_out_dir) -- GitLab From 00337adcab19aabff2b38edc9b8f4071e1f61614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 18 Jul 2022 16:38:37 +0200 Subject: [PATCH 005/479] added param_file test + renamed data_system_tests_path test_vector_path --- tests/conftest.py | 64 +++---- tests/self_test_b.py | 4 +- tests/test_param_file.py | 321 +++++++++++++++++++++++++++++++++++ tests/test_sba_bs_dec_plc.py | 7 +- tests/test_sba_bs_enc.py | 21 ++- 5 files changed, 370 insertions(+), 47 deletions(-) create mode 100644 tests/test_param_file.py diff --git a/tests/conftest.py b/tests/conftest.py index 24bd512dd2..6e8385e411 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -58,51 +58,57 @@ def rootdir(request): def pytest_addoption(parser): - parser.addoption("--update_ref", action="store", default="0") - parser.addoption("--p4_CL", action="store") - parser.addoption("--p4cmd_active", action="store", default="0") + parser.addoption( + "--update_ref", + action="store", + help="""Indicate whether references shall be updated. + 0: Only DUT processing, no reference generation, references need to be present. + 1: Only reference generation (unconditionally), no DUT processing. + 2: DUT processing, references are generated when not present (not supported by all tests). + """, + default="0", + ) parser.addoption( "--dut_encoder_path", action="store", - help="If specified, use given binary as DUT encoder." + help="If specified, use given binary as DUT encoder.", ) parser.addoption( "--dut_decoder_path", action="store", - help="If specified, use given binary as DUT decoder." + help="If specified, use given binary as DUT decoder.", ) parser.addoption( "--ref_encoder_path", action="store", - help="If specified, use given binary as REF encoder." + help="If specified, use given binary as REF encoder.", ) parser.addoption( "--ref_decoder_path", action="store", - help="If specified, use given binary as REF decoder." + help="If specified, use given binary as REF decoder.", ) - # TODO: rename to test_vector_path parser.addoption( - "--data_system_tests_path", + "--test_vector_path", action="store", - help="If specified, use given directory as base data directory for system tests." + help="If specified, use given directory as base directory for test vector files.", ) parser.addoption( "--reference_path", action="store", - help="If specified, use given directory as base directory for reference files." + help="If specified, use given directory as base directory for reference files.", ) parser.addoption( "--dut_base_path", action="store", - help="If specified, use given directory as base data directory for dut files." + help="If specified, use given directory as base data directory for dut files.", ) @@ -111,16 +117,6 @@ def update_ref(request): return int(request.config.getoption("--update_ref")) -@pytest.fixture(scope="session", autouse=True) -def p4_CL(request): - return request.config.option.p4_CL - - -@pytest.fixture(scope="session", autouse=True) -def p4cmd_active(request): - return int(request.config.getoption("--p4cmd_active")) - - @pytest.fixture(scope="session") def dut_encoder_path(request) -> Path: if request.config.option.dut_encoder_path: @@ -163,6 +159,7 @@ class EncoderFrontend: agc_op: Optional[int] = None, bypass_mode: Optional[int] = None, quiet_mode: Optional[bool] = True, + add_option_list: Optional[list] = None, ) -> None: command = [self._path] @@ -185,6 +182,9 @@ class EncoderFrontend: if quiet_mode: command.extend(["-q"]) + if add_option_list is not None: + command.extend(add_option_list) + # add mandatory parameters command += [ str(bitrate), @@ -233,8 +233,7 @@ def ref_encoder_path(request) -> Path: if request.config.option.ref_encoder_path: return request.config.option.ref_encoder_path - update_ref = int(request.config.getoption("--update_ref")) - if not update_ref: + if request.config.option.update_ref == "0": return None # assume default encoder when update_ref is selected, but no ref_encoder_path is specified @@ -293,6 +292,7 @@ class DecoderFrontend: output_path: Path, quiet_mode: Optional[bool] = True, plc_file: Optional[Path] = None, + add_option_list: Optional[list] = None, ) -> None: command = [self._path] @@ -303,9 +303,14 @@ class DecoderFrontend: if plc_file is not None: command.extend(["-fec", str(plc_file)]) + if add_option_list is not None: + command.extend(add_option_list) + # add mandatory parameters + # output_config is mandatory for IVAS; EVS does not have this parameter, indicated by "" + if output_config is not "": + command += [output_config] command += [ - output_config, str(output_sampling_rate), str(input_bitstream_path), str(output_path), @@ -351,8 +356,7 @@ def ref_decoder_path(request) -> Path: if request.config.option.ref_decoder_path: return request.config.option.ref_decoder_path - update_ref = int(request.config.getoption("--update_ref")) - if not update_ref: + if request.config.option.update_ref == "0": return None # assume default decoder when update_ref is selected, but no ref_decoder_path is specified @@ -374,9 +378,9 @@ def ref_decoder_path(request) -> Path: @pytest.fixture(scope="session") -def data_system_tests_path(request) -> Path: - if request.config.option.data_system_tests_path: - return request.config.option.data_system_tests_path +def test_vector_path(request) -> Path: + if request.config.option.test_vector_path: + return request.config.option.test_vector_path here = Path(__file__).parent.resolve() diff --git a/tests/self_test_b.py b/tests/self_test_b.py index 917bb4c0fe..dbebf59817 100755 --- a/tests/self_test_b.py +++ b/tests/self_test_b.py @@ -208,7 +208,7 @@ def main(argv): "--update_ref", "1", "-v", - "--data_system_tests_path", + "--test_vector_path", TEST_VECTOR_DIR, "--reference_path", REFERENCE_DIR, @@ -250,7 +250,7 @@ def main(argv): "-n", args.numprocesses, "-v", - "--data_system_tests_path", + "--test_vector_path", TEST_VECTOR_DIR, "--reference_path", REFERENCE_DIR, diff --git a/tests/test_param_file.py b/tests/test_param_file.py new file mode 100644 index 0000000000..59126bdd8d --- /dev/null +++ b/tests/test_param_file.py @@ -0,0 +1,321 @@ +""" +Execute tests specified via a parameter file. +""" + +__copyright__ = """ +(C) 2022 Baseline Development Group with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, +Panasonic Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The Baseline Development Group consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, +Panasonic Corporation, Qualcomm Technologies, Inc., and VoiceAge Corporation retain full ownership +rights in their respective contributions in the software. No license of any kind, including but not +limited to patent license, of any foregoing parties is hereby granted by implication, estoppel or +otherwise. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and/or fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. +""" + +import os +import errno +import pytest +from cmp_custom import cmp_custom +from conftest import EncoderFrontend, DecoderFrontend + +PARAM_FILE = "scripts/config/self_test.prm" + +param_file_test_dict = {} +with open(PARAM_FILE, "r", encoding="UTF-8") as fp: + data = fp.read() + blocks = data.split("\n\n") + for block in blocks: + tag = "" + enc_opts = "" + dec_opts = "" + for line in block.split("\n"): + if line.startswith("// "): + tag = line[3:] + if line.startswith("../IVAS_cod "): + enc_opts = line[12:] + if line.startswith("../IVAS_dec "): + dec_opts = line[12:] + if tag == "" or enc_opts == "" or dec_opts == "": + # no complete parameter set + continue + if tag in param_file_test_dict: + print("non-unique tag found - ignoring new entry") + continue + param_file_test_dict[tag] = (enc_opts, dec_opts) + + +def check_and_makedir(dir_path): + if not os.path.exists(dir_path): + try: + os.makedirs(dir_path) + except OSError as e: + if e.errno != errno.EEXIST: + raise # raises the error again + + +def convert_test_string_to_tag(test_string): + """ + Convert a test string (i.e. the test tag from the parameter file) to a tag string. + Example: + in: "DFT stereo at 13.2 kbps, 16kHz in, 16kHz out, DTX on, random FEC at 5%" + out: "DFT_stereo_at_13_2_kbps_16kHz_in_16kHz_out_DTX_on_random_FEC_at_5_" + """ + # replace certain characters by "_" or remove them + tag_str = "" + replace_chars = " %.-()" + remove_chars = "," + for char in test_string: + if char in replace_chars: + tag_str += "_" + elif char not in remove_chars: + tag_str += char + # replace double underscore by single one + tag_str = "_".join(tag_str.split("__")) + return tag_str + + +@pytest.mark.create_ref +@pytest.mark.parametrize("test_tag", list(param_file_test_dict.keys())) +def test_param_file_tests( + dut_encoder_frontend: EncoderFrontend, + dut_decoder_frontend: DecoderFrontend, + ref_encoder_path, + ref_decoder_path, + reference_path, + dut_base_path, + test_vector_path, + update_ref, + test_tag, +): + enc_opts, dec_opts = param_file_test_dict[test_tag] + + tag_str = convert_test_string_to_tag(test_tag) + + # evaluate encoder options + enc_split = enc_opts.split() + assert len(enc_split) >= 4 + + # replace "testv/" by extended test vector path + enc_split = [ + x.replace("testv", f"{test_vector_path}/param_file", 1) if x.startswith("testv/") else x + for x in enc_split + ] + + bitstream_file = enc_split.pop() + testv_file = enc_split.pop() + sampling_rate = int(enc_split.pop()) + bitrate = enc_split.pop() + + # bitrate can be a filename: remove leading "../" + if bitrate.startswith("../"): + bitrate = bitrate[3:] + + testv_base = testv_file.split("/")[-1] + if testv_base.endswith(".pcm"): + testv_base = testv_base[:-4] + + assert bitstream_file == "bit" + # in the parameter file, only "bit" is used as bitstream file name + # -> construct bitstream filename + bitstream_file = f"{testv_base}_{tag_str}.192" + + encode( + dut_encoder_frontend, + ref_encoder_path, + reference_path, + dut_base_path, + bitrate, + sampling_rate, + testv_file, + bitstream_file, + enc_split, + update_ref, + ) + + # evaluate decoder options + dec_split = dec_opts.split() + assert len(dec_split) >= 3 + + # replace "testv/" by extended test vector path + dec_split = [ + x.replace("testv", f"{test_vector_path}/param_file", 1) if x.startswith("testv/") else x + for x in dec_split + ] + # remove leading "../" + dec_split = [x[3:] if x.startswith("../") else x for x in dec_split] + + output_file = dec_split.pop() + bitstream_file_dec = dec_split.pop() + sampling_rate = int(dec_split.pop()) + if len(dec_split) > 0: + output_config = dec_split.pop() + else: + output_config = "" + + output_config_name = output_config + if "/" in output_config: + # the output config is a file + output_config_name = os.path.splitext(os.path.basename(output_config))[0] + + assert bitstream_file_dec == "bit" + # in the parameter file, only "bit" is used as bitstream file name + # -> re-use bitstream filename from encoder call + + # the output file is not the real output filename + # -> construct output filename + if output_config is not "": + output_file = f"{testv_base}_{tag_str}.dec.{output_config_name}.pcm" + else: + # EVS decoder command lines do not have an output_config: use "MONO" in the output filename + output_file = f"{testv_base}_{tag_str}.dec.MONO.pcm" + + decode( + dut_decoder_frontend, + ref_decoder_path, + reference_path, + dut_base_path, + output_config, + sampling_rate, + bitstream_file, + output_file, + dec_split, + update_ref, + ) + + # compare + if update_ref in [0, 2]: + compare( + f"{dut_base_path}/param_file/dec/{output_file}", + f"{reference_path}/param_file/dec/{output_file}", + ) + + # clean-up + # TODO: consider removing DUT output files when test result is OK (to save disk space) + + +def encode( + encoder_frontend, + ref_encoder_path, + reference_path, + dut_base_path, + bitrate, + sampling_rate, + testv_file, + bitstream_file, + enc_opts_list, + update_ref, +): + """ + Call REF and/or DUT decoder. + """ + # directories + dut_out_dir = f"{dut_base_path}/param_file/enc" + ref_out_dir = f"{reference_path}/param_file/enc" + + ref_out_file = f"{ref_out_dir}/{bitstream_file}" + dut_out_file = f"{dut_out_dir}/{bitstream_file}" + + if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): + check_and_makedir(ref_out_dir) + # call REF encoder + assert ref_encoder_path + ref_encoder = EncoderFrontend(ref_encoder_path, "REF") + ref_encoder.run( + bitrate, + sampling_rate, + testv_file, + ref_out_file, + add_option_list=enc_opts_list, + ) + + if update_ref in [0, 2]: + check_and_makedir(dut_out_dir) + # call DUT encoder + encoder_frontend.run( + bitrate, + sampling_rate, + testv_file, + dut_out_file, + add_option_list=enc_opts_list, + ) + + +def decode( + decoder_frontend, + ref_decoder_path, + reference_path, + dut_base_path, + output_config, + sampling_rate, + bitstream_file, + output_file, + dec_opts_list, + update_ref, +): + """ + Call REF and/or DUT decoder. + """ + # directories + dut_out_dir = f"{dut_base_path}/param_file/dec" + ref_out_dir = f"{reference_path}/param_file/dec" + + dut_in_file = f"{dut_base_path}/param_file/enc/{bitstream_file}" + ref_in_file = f"{reference_path}/param_file/enc/{bitstream_file}" + dut_out_file = f"{dut_out_dir}/{output_file}" + ref_out_file = f"{ref_out_dir}/{output_file}" + + if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): + check_and_makedir(ref_out_dir) + # call REF decoder + assert ref_decoder_path + ref_decoder = DecoderFrontend(ref_decoder_path, "REF") + ref_decoder.run( + output_config, + sampling_rate, + ref_in_file, + ref_out_file, + add_option_list=dec_opts_list, + ) + + if update_ref in [0, 2]: + check_and_makedir(dut_out_dir) + # call DUT decoder + decoder_frontend.run( + output_config, + sampling_rate, + dut_in_file, + dut_out_file, + add_option_list=dec_opts_list, + ) + + +def compare( + pcm_file_1, + pcm_file_2, +): + """ + Compare two PCM files. + Currently, both PCM files are treated like mono files. + This is just fine when checking for bit-exactness. + More advanced comparisons are possible and might come with a future update. + """ + sample_size = "2" # 16-bit samples + tolerance = "0" # zero tolerance for BE testing + cmp_result = cmp_custom(pcm_file_1, pcm_file_2, sample_size, tolerance) + assert cmp_result == 0 diff --git a/tests/test_sba_bs_dec_plc.py b/tests/test_sba_bs_dec_plc.py index a6d6ae82f5..45d21cb64f 100644 --- a/tests/test_sba_bs_dec_plc.py +++ b/tests/test_sba_bs_dec_plc.py @@ -32,11 +32,10 @@ import os import pytest import shutil import errno -import sys from il2mm import il2mm from cmp_custom import cmp_custom -from conftest import EncoderFrontend, DecoderFrontend +from conftest import DecoderFrontend #params tag_list = ['stvFOA'] @@ -74,7 +73,7 @@ def check_and_makedir(dir_path): @pytest.mark.parametrize("agc", agc_list) def test_sba_plc_system( dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_decoder_path, @@ -89,7 +88,7 @@ def test_sba_plc_system( tag = tag + fs + 'c' #dec - sba_dec_plc(dut_decoder_frontend, data_system_tests_path, reference_path, dut_base_path, ref_decoder_path, tag, ch_count_foa, fs, ivas_br, dtx, plc_pattern, update_ref, agc) + sba_dec_plc(dut_decoder_frontend, test_vector_path, reference_path, dut_base_path, ref_decoder_path, tag, ch_count_foa, fs, ivas_br, dtx, plc_pattern, update_ref, agc) ######################################################### diff --git a/tests/test_sba_bs_enc.py b/tests/test_sba_bs_enc.py index 7e3f2c1601..8fc8db12ad 100644 --- a/tests/test_sba_bs_enc.py +++ b/tests/test_sba_bs_enc.py @@ -37,7 +37,6 @@ import os import pytest import errno import shutil -import sys from il2mm import il2mm from cmp_custom import cmp_custom @@ -84,7 +83,7 @@ def check_and_makedir(dir_path): def test_bypass_enc( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, @@ -108,7 +107,7 @@ def test_bypass_enc( # enc sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, @@ -151,7 +150,7 @@ def test_bypass_enc( def test_sba_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, @@ -176,7 +175,7 @@ def test_sba_enc_system( # enc sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, @@ -216,7 +215,7 @@ def test_sba_enc_system( def test_spar_hoa2_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, @@ -238,7 +237,7 @@ def test_spar_hoa2_enc_system( # enc sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, @@ -278,7 +277,7 @@ def test_spar_hoa2_enc_system( def test_spar_hoa3_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, @@ -300,7 +299,7 @@ def test_spar_hoa3_enc_system( # enc sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, @@ -342,7 +341,7 @@ def test_spar_hoa3_enc_system( def test_sba_enc_BWforce_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, @@ -364,7 +363,7 @@ def test_sba_enc_BWforce_system( # enc sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, -- GitLab From c8c38d0d5a3c795ea4bb834dc0ba7ffb48fdc228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 18 Jul 2022 17:04:22 +0200 Subject: [PATCH 006/479] fix: use test_vector_path without param_file extension --- tests/test_param_file.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/test_param_file.py b/tests/test_param_file.py index 59126bdd8d..a068243d0d 100644 --- a/tests/test_param_file.py +++ b/tests/test_param_file.py @@ -111,9 +111,9 @@ def test_param_file_tests( enc_split = enc_opts.split() assert len(enc_split) >= 4 - # replace "testv/" by extended test vector path + # replace "testv/" by test vector path enc_split = [ - x.replace("testv", f"{test_vector_path}/param_file", 1) if x.startswith("testv/") else x + x.replace("testv", f"{test_vector_path}", 1) if x.startswith("testv/") else x for x in enc_split ] @@ -152,9 +152,9 @@ def test_param_file_tests( dec_split = dec_opts.split() assert len(dec_split) >= 3 - # replace "testv/" by extended test vector path + # replace "testv/" by test vector path dec_split = [ - x.replace("testv", f"{test_vector_path}/param_file", 1) if x.startswith("testv/") else x + x.replace("testv", f"{test_vector_path}", 1) if x.startswith("testv/") else x for x in dec_split ] # remove leading "../" -- GitLab From a1fb2fb0507c3e36cca1832f25e8656d12f511f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Fri, 29 Jul 2022 16:44:43 +0200 Subject: [PATCH 007/479] added docstring to custom fixtures some fixtures now fail with pytest.exit() adjusted default names of reference binaries --- tests/conftest.py | 78 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 17 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 6e8385e411..7e06c43db7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -54,6 +54,9 @@ def log_dbg_msg(message): @pytest.fixture(scope="session", autouse=True) def rootdir(request): + """ + Return root directory for tests. + """ return str(request.config.rootdir) @@ -114,11 +117,20 @@ def pytest_addoption(parser): @pytest.fixture(scope="session", autouse=True) def update_ref(request): + """ + Return indication whether references shall be updated. + 0: Only DUT processing, no reference generation. + 1: Only reference generation (unconditionally), no DUT processing. + 2: DUT processing, references are generated when not present. + """ return int(request.config.getoption("--update_ref")) @pytest.fixture(scope="session") -def dut_encoder_path(request) -> Path: +def dut_encoder_path(request) -> str: + """ + Return path of DUT encoder binary. + """ if request.config.option.dut_encoder_path: return request.config.option.dut_encoder_path @@ -134,7 +146,8 @@ def dut_encoder_path(request) -> Path: path = str(path.resolve()) - assert os.path.isfile(path) + if not os.path.isfile(path): + pytest.exit(f"\nDUT encoder binary {path} not found!\n!") return path @@ -221,6 +234,9 @@ class EncoderFrontend: @pytest.fixture(scope="function") def dut_encoder_frontend(dut_encoder_path) -> EncoderFrontend: + """ + Return a :class:`conftest.EncoderFrontend` instance as DUT for the test session. + """ encoder = EncoderFrontend(dut_encoder_path, "DUT") yield encoder @@ -229,33 +245,40 @@ def dut_encoder_frontend(dut_encoder_path) -> EncoderFrontend: @pytest.fixture(scope="session") -def ref_encoder_path(request) -> Path: +def ref_encoder_path(request) -> str: + """ + Return path of REF encoder binary. + """ if request.config.option.ref_encoder_path: return request.config.option.ref_encoder_path if request.config.option.update_ref == "0": return None - # assume default encoder when update_ref is selected, but no ref_encoder_path is specified + # assume specifically named encoder when update_ref is selected, but no ref_encoder_path is specified here = Path(__file__).parent.resolve() system = platform.system() if system == "Windows": - path = here.joinpath("../IVAS_cod.exe") + path = here.joinpath("../IVAS_cod_ref.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../IVAS_cod") + path = here.joinpath("../IVAS_cod_ref") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - assert os.path.isfile(path) + if not os.path.isfile(path): + pytest.exit(f"\nREF encoder binary {path} not found!\n!") return path @pytest.fixture(scope="session") -def dut_decoder_path(request) -> Path: +def dut_decoder_path(request) -> str: + """ + Return path of DUT decoder binary. + """ if request.config.option.dut_decoder_path: return request.config.option.dut_decoder_path @@ -271,7 +294,8 @@ def dut_decoder_path(request) -> Path: path = str(path.resolve()) - assert os.path.isfile(path) + if not os.path.isfile(path): + pytest.exit(f"\nDUT decoder binary {path} not found!\n!") return path @@ -344,6 +368,9 @@ class DecoderFrontend: @pytest.fixture(scope="function") def dut_decoder_frontend(dut_decoder_path) -> DecoderFrontend: + """ + Return a :class:`conftest.DecoderFrontend` instance as DUT for the test session. + """ decoder = DecoderFrontend(dut_decoder_path, "DUT") yield decoder @@ -352,33 +379,40 @@ def dut_decoder_frontend(dut_decoder_path) -> DecoderFrontend: @pytest.fixture(scope="session") -def ref_decoder_path(request) -> Path: +def ref_decoder_path(request) -> str: + """ + Return path of REF decoder binary. + """ if request.config.option.ref_decoder_path: return request.config.option.ref_decoder_path if request.config.option.update_ref == "0": return None - # assume default decoder when update_ref is selected, but no ref_decoder_path is specified + # assume specifically named decoder when update_ref is selected, but no ref_decoder_path is specified here = Path(__file__).parent.resolve() system = platform.system() if system == "Windows": - path = here.joinpath("../IVAS_dec.exe") + path = here.joinpath("../IVAS_dec_ref.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../IVAS_dec") + path = here.joinpath("../IVAS_dec_ref") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - assert os.path.isfile(path) + if not os.path.isfile(path): + pytest.exit(f"\nREF decoder binary {path} not found!\n!") return path @pytest.fixture(scope="session") -def test_vector_path(request) -> Path: +def test_vector_path(request) -> str: + """ + Return base directory of test vector files. + """ if request.config.option.test_vector_path: return request.config.option.test_vector_path @@ -392,7 +426,10 @@ def test_vector_path(request) -> Path: @pytest.fixture(scope="session") -def reference_path(request) -> Path: +def reference_path(request) -> str: + """ + Return base directory of reference files. + """ if request.config.option.reference_path: return request.config.option.reference_path @@ -402,11 +439,18 @@ def reference_path(request) -> Path: path = str(path.resolve()) + if request.config.option.update_ref == "0": + if not os.path.isdir(path): + pytest.exit(f"\nREF path {path} not found!\nPlease generate the references, first!\n!") + return path @pytest.fixture(scope="session") -def dut_base_path(request) -> Path: +def dut_base_path(request) -> str: + """ + Return base data directory for dut files. + """ if request.config.option.dut_base_path: return request.config.option.dut_base_path -- GitLab From 378484d4534c42fae4003afae3669043440391fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Wed, 3 Aug 2022 17:19:15 +0200 Subject: [PATCH 008/479] added new script create_short_testvectors.py --- tests/create_short_testvectors.py | 55 +++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 tests/create_short_testvectors.py diff --git a/tests/create_short_testvectors.py b/tests/create_short_testvectors.py new file mode 100755 index 0000000000..a5f50c6969 --- /dev/null +++ b/tests/create_short_testvectors.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 + +__license__ = \ +""" + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +__doc__ = \ +""" +Create short (5sec) testvectors. +""" + +from pathlib import Path +from cut_pcm import cut_samples + +HERE = Path(__file__).parent.resolve() +TEST_VECTOR_DIR = str(HERE.joinpath("../scripts/testv").resolve()) + +NUM_CHANNELS = "4" # currently only FOA +CUT_FROM = "0.0" +CUT_LEN = "5.0" +for fs in ['48', '32', '16']: + in_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c.pcm" + cut_gain = "1.0" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut.pcm" + cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) + cut_gain = "16.0" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" + cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) -- GitLab From 5178593da5ee6d9d35dfd6e467e6d4c8d55a3d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Wed, 3 Aug 2022 17:24:32 +0200 Subject: [PATCH 009/479] added README-md to tests folder --- tests/README.md | 107 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 tests/README.md diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000000..dc22492fae --- /dev/null +++ b/tests/README.md @@ -0,0 +1,107 @@ +# IVAS tests + +The IVAS tests are using the [pytest](https://docs.pytest.org/) framework. + +## Installing test dependencies + +To use the `pytest` framework, you will need a few Python packages (in addition to Python itself). +As with other Python packages, there are different possibilities to install those packages. +Please chose the option that works best for you. + +`Note`: +The installation of Python is not described, here. +In the following, it is assumed that `Python >= 3.7` is already installed / present. + +### Global install + +```bash +pip install -r tests/requirements.txt +``` + +### User install + +```bash +pip install --user -r tests/requirements.txt +``` + +### Virtual environment install + +```bash +# set up virtual environment +python3 -m venv VENV_NAME +# change to virtual environment +source VENV_NAME/bin/activate +# install required packages +pip install -r tests/requirements.txt +``` + +## Preparing the tests + +`Note:` +Currently, shortened test vectors are used to speed up the testing. +Those shortened test vectors, some with gain adjustment, need to be created, once. + +```bash +# create shortened test vectors +python3 tests/create_short_testvectors.py +``` + +The tests rely on references which need to be generated upfront using reference binaries. +When the reference binaries are named `IVAS_cod_ref(.exe)` and `IVAS_dec_ref.(exe)`, pytest will find and use them. +When the reference binaries are named differently, you need to specify them via the `--ref_encoder_path` and `--ref_decoder_path` options. + +The tests will used the binaries `IVAS_cod(.exe)` and `IVAS_dec.(exe)` for testing. Please make sure that the binaries have been built before running the tests. + +```bash +# create references +# the following binaies need to be present: +# - IVAS_cod(.exe) +# - IVAS_dec.(exe) +# - IVAS_cod_ref(.exe) +# - IVAS_dec_ref.(exe) +# pytest command lines to be executed from project root folder: +pytest tests -n auto --update_ref 1 -m create_ref +pytest tests -n auto --update_ref 1 -m create_ref_part2 +``` + +## Running the tests + +To run all tests from the tests folder: + +```bash +# pytest command line to be executed from project root folder: +pytest tests -n auto +``` + +## Re-running some tests + +When there are test failures, you may want to run, after having fixed the code, only those test cases which had failures. This can be achieved using the `--last-failed` option. + +```bash +# rerun only the tests that failed at the last run +pytest tests -n auto --last-failed +``` + +To run a specific test case, you can e.g. pick a test case from the `short test summary info` and use that test case as an argument to `pytest`. E.g. + +```bash +# run a specific test case +pytest tests/test_sba_bs_dec_plc.py::test_sba_plc_system[0-48-PLperc12mblen5-stvFOA-0-32000] +``` + +More ways to select which tests to run: + +```bash +# run all tests within a module +pytest tests/test_sba_bs_dec_plc.py +# run a specific test from a module +pytest tests/test_sba_bs_dec_plc.py::test_sba_plc_system +``` + +## Some pytest hints + +When there a many test failures, you can use the `-x` (or `--exitfirst`) option to stop testing on the first failure. + +Commonly used options like `-n auto` can be added to addopts within the [pytest] section in `pytest.ini`. This saves some typing when calling `pytest`. + +The `-v` (or `--verbose`) option is usually helpful to see what is going on. Therefore, `-v` is currently part of addopts in `pytest.ini`. If you don't like this verbosity, you can specify the `-q` (`--quiet`) option when running `pytest`. -- GitLab From b6368612c049ef3700be39e1e18dc5568851b3e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Wed, 3 Aug 2022 18:20:04 +0200 Subject: [PATCH 010/479] - removed call to self_test.py - now covered by pytest (test_param_file) - removed call to self_test_b.py - pytest is now called directly --- .gitlab-ci.yml | 49 +++++++++++++++++++------------------------------ 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f60569f347..82086894ec 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,7 @@ variables: TESTV_DIR: "/usr/local/testv" + EXIT_CODE_NON_BE: 123 + EXIT_CODE_FAIL: 1 # prevent running two pipelines on pushes to merge request branches @@ -98,7 +100,7 @@ codec-smoke-test: # compare bit exactness between target and source branch -self-test-on-merge-request: +pytest-on-merge-request: extends: .test-job-linux stage: compare needs: [ "build-codec-linux-cmake", "codec-smoke-test" ] @@ -138,48 +140,35 @@ self-test-on-merge-request: - mv IVAS_dec ../IVAS_dec_ref - cd .. - ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) + ### re-checkout the commit from the source branch to have up-to-date test scripts and test vectors (and actually everything) - git checkout $source_branch_commit_sha - ### run selftest - - ls -altr scripts/testv - - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test | tee test_output.txt - - ### analyse test output - - # some helper variables - "|| true" to prevent failures from grep not finding anything + # helper variable - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true - - run_errors=$(cat test_output.txt | grep -c "test conditions had run errors") || true - - bitexact=$(cat test_output.txt | grep -c "All [0-9]* tests are bitexact") || true - - EXIT_CODE_NON_BE=123 - - EXIT_CODE_FAIL=1 - - - selftest_exit_code=0 - - # check for crashes during the test, if any happened, fail the test - - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; exit $EXIT_CODE_FAIL; fi - - # check for non bitexact output and store exit code to also always run the SBA pytest - - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_FAIL; fi - - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_NON_BE; fi - ### run SBA pytest + ### prepare pytest + # create short test vectors + - python3 tests/create_short_testvectors.py + # rename test binaries back + - mv IVAS_cod_test IVAS_cod + - mv IVAS_dec_test IVAS_dec + # create references + - python3 -m pytest tests -n auto --update_ref 1 -m create_ref + - python3 -m pytest tests -n auto --update_ref 1 -m create_ref_part2 + + ### run pytest - exit_code=0 - - python3 ./tests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? + - python3 -m pytest tests -n auto --junit-xml=report-junit.xml || exit_code=$? - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi - zero_errors=$(cat report-junit.xml | grep -c 'testsuite errors="0"') || true - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; exit $EXIT_CODE_FAIL; fi; - # return exit code from selftest if everything went well with the pytest run - - exit $selftest_exit_code allow_failure: exit_codes: - - 123 + - $EXIT_CODE_NON_BE artifacts: paths: - - test_output.txt - - scripts/test/logs - - scripts/ref/logs + - report-junit.xml reports: junit: report-junit.xml -- GitLab From 43127df7869c6119bb79bc5996dffeba6230fe21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Wed, 3 Aug 2022 18:35:41 +0200 Subject: [PATCH 011/479] fix invalid yaml: variables are strings, but integer is needed for allow_failure exit codes --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 82086894ec..bdccb2fce3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -165,7 +165,7 @@ pytest-on-merge-request: - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; exit $EXIT_CODE_FAIL; fi; allow_failure: exit_codes: - - $EXIT_CODE_NON_BE + - 123 artifacts: paths: - report-junit.xml -- GitLab From a770935cd17c604e5e7af3ecde26d2e844823415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Wed, 3 Aug 2022 19:35:58 +0200 Subject: [PATCH 012/479] fix invalid yaml: not all merge conflicts were not properly resolved --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1c25df6ed9..3ae03800c3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -238,6 +238,7 @@ asan-on-merge-request-linux: # compare bit exactness between target and source branch pytest-on-merge-request: + extends: - .test-job-linux - .rules-merge-request stage: compare -- GitLab From ed713cee703945c57adc486e1397fd40e078cf12 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 10 Aug 2022 18:19:23 +0200 Subject: [PATCH 013/479] External renderer - first version [WIP] --- .gitignore | 8 +- .gitlab-ci.yml | 41 +- CMakeLists.txt | 23 +- Makefile | 34 +- Workspace_msvc/Workspace_msvc.sln | 22 + Workspace_msvc/lib_com.vcxproj | 8 +- Workspace_msvc/lib_debug.vcxproj | 8 +- Workspace_msvc/lib_dec.vcxproj | 41 +- Workspace_msvc/lib_dec.vcxproj.filters | 94 +- Workspace_msvc/lib_enc.vcxproj | 8 +- Workspace_msvc/lib_rend.vcxproj | 257 ++ Workspace_msvc/lib_util.vcxproj | 8 +- .../renderer.vcxproj | 132 +- apps/decoder.c | 1 - apps/renderer.c | 1912 ++++++++++++ ci/build_all_linux.sh | 2 - lib_com/ivas_cnst.h | 9 + lib_com/options.h | 3 +- lib_dec/ivas_rom_dec.c | 664 ---- lib_dec/ivas_rom_dec.h | 48 - lib_dec/ivas_sba_dec.c | 728 ++--- lib_dec/ivas_sba_rendering.c | 526 ---- lib_dec/ivas_stat_dec.h | 54 +- {lib_dec => lib_rend}/ivas_allrad_dec.c | 2 +- {lib_dec => lib_rend}/ivas_binauralRenderer.c | 2 +- {lib_dec => lib_rend}/ivas_binaural_reverb.c | 0 {lib_dec => lib_rend}/ivas_crend.c | 2 +- {lib_dec => lib_rend}/ivas_efap.c | 8 + {lib_dec => lib_rend}/ivas_hrtf.c | 1 - {lib_dec => lib_rend}/ivas_limiter.c | 0 {lib_dec => lib_rend}/ivas_ls_custom_dec.c | 0 {lib_dec => lib_rend}/ivas_objectRenderer.c | 14 +- .../ivas_objectRenderer_hrFilt.c | 2 +- .../ivas_objectRenderer_mix.c | 0 .../ivas_objectRenderer_sfx.c | 2 +- .../ivas_objectRenderer_sources.c | 0 .../ivas_objectRenderer_vec.c | 0 {lib_dec => lib_rend}/ivas_orient_trk.c | 0 {lib_dec => lib_rend}/ivas_output_init.c | 0 {lib_dec => lib_rend}/ivas_render_config.c | 2 +- {lib_dec => lib_rend}/ivas_reverb.c | 2 +- .../ivas_reverb_delay_line.c | 0 .../ivas_reverb_fft_filter.c | 0 .../ivas_reverb_filter_design.c | 0 .../ivas_reverb_iir_filter.c | 0 {lib_dec => lib_rend}/ivas_reverb_utils.c | 2 +- .../ivas_rom_TdBinauralRenderer.c | 0 .../ivas_rom_TdBinauralRenderer.h | 0 .../ivas_rom_binauralRenderer.c | 0 .../ivas_rom_binauralRenderer.h | 0 .../ivas_rom_binaural_crend_head.c | 0 .../ivas_rom_binaural_crend_head.h | 0 lib_rend/ivas_rom_rend.c | 755 +++++ lib_rend/ivas_rom_rend.h | 141 + {lib_dec => lib_rend}/ivas_rotation.c | 20 + lib_rend/ivas_sba_rendering.c | 584 ++++ .../ivas_stat_rend.h | 69 +- lib_rend/lib_rend.c | 2672 +++++++++++++++++ lib_rend/lib_rend.h | 212 ++ lib_util/cmdln_parser.c | 375 +++ ...{ivas_rom_prerenderer.h => cmdln_parser.h} | 44 +- lib_util/ivas_prerenderer.c | 1733 ----------- lib_util/ivas_prerenderer.h | 190 -- scripts/deco.bin | 3 + scripts/eigen_to_foa_cldfb_domain_filters.bin | 3 + .../eigen_to_hoa2_cldfb_domain_filters.bin | 3 + scripts/find_unused_symbols.sh | 3 +- scripts/hrir.bin | 0 .../crend/ivas_crend_unit_test.vcxproj | 5 +- scripts/prepare_instrumentation.sh | 3 +- scripts/prerenderer/Makefile | 172 -- .../Workspace_msvc_prerenderer.sln | 48 - .../prerenderer.vcxproj.filters | 50 - scripts/prerenderer/prerenderer.c | 1553 ---------- scripts/pyaudio3dtools/EFAP.py | 82 +- scripts/pyaudio3dtools/audio3dtools.py | 11 +- scripts/pyaudio3dtools/audioarray.py | 2 +- scripts/pyaudio3dtools/audiofile.py | 8 +- scripts/pyaudio3dtools/binauralrenderer.py | 157 +- scripts/pyaudio3dtools/constants.py | 26 +- scripts/pyaudio3dtools/hoadecoder.py | 12 +- .../{rotateISM.py => masarenderer.py} | 91 +- .../{rotateHOA.py => rotation.py} | 105 +- scripts/pyaudio3dtools/spatialaudioconvert.py | 200 +- scripts/pyaudio3dtools/spatialaudioformat.py | 45 +- scripts/pyaudio3dtools/spatialmetadata.py | 27 +- scripts/pyivastest/IvasModeRunner.py | 0 scripts/sector_filters.bin | 3 + .../object_renderer_standalone/Makefile | 15 +- .../object_renderer_standalone.sln | 16 +- .../rotateMC.py => tests/__init__.py} | 69 - scripts/tests/compare_audio.py | 69 + scripts/tests/constants.py | 189 ++ scripts/tests/cut/.gitignore | 1 + .../data}/IVAS_ISM_metadata_-30_0.csv | 0 .../data}/IVAS_ISM_metadata_0_0.csv | 0 .../data}/IVAS_ISM_metadata_30_0.csv | 0 .../data}/IVAS_ISM_metadata_circle.csv | 0 .../data}/ism1_ivas_mtdt_config.txt | 0 .../data}/ism1_shorthand_config.txt | 0 .../data}/ism2_ivas_mtdt_config.txt | 0 .../data}/ism2_shorthand_config.txt | 0 .../data}/ism3_ivas_mtdt_config.txt | 0 .../data}/ism3_shorthand_config.txt | 0 .../data}/ism4_ivas_mtdt_config.txt | 0 .../data}/ism4_shorthand_config.txt | 0 scripts/tests/data/ism_-90a_0e.csv | 750 +++++ scripts/tests/data/ism_0a_0e.csv | 750 +++++ scripts/tests/data/ism_180a_0e.csv | 750 +++++ scripts/tests/data/ism_90a_0e.csv | 750 +++++ .../data}/mixed_ivas_mtdt_config.txt | 2 +- .../data}/mixed_ivas_mtdt_gain_config.txt | 2 +- scripts/tests/data/mixed_scene.txt | 15 + .../data}/mixed_shorthand_config.txt | 2 +- .../data}/mixed_shorthand_gain_config.txt | 3 +- .../data}/mixed_shorthand_limiter_config.txt | 4 +- scripts/tests/data/pink_noise_10ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_11ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_12ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_13ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_14ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_15ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_16ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_1ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_2ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_3ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_4ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_5ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_6ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_7ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_8ch_48kHz.wav | 3 + scripts/tests/data/pink_noise_9ch_48kHz.wav | 3 + .../data/renderer_config_format_readme.txt} | 12 +- .../tests/data/spectral_test_10ch_48kHz.wav | 3 + .../tests/data/spectral_test_11ch_48kHz.wav | 3 + .../tests/data/spectral_test_12ch_48kHz.wav | 3 + .../tests/data/spectral_test_15ch_48kHz.wav | 3 + .../tests/data/spectral_test_16ch_48kHz.wav | 3 + .../tests/data/spectral_test_1ch_48kHz.wav | 3 + .../tests/data/spectral_test_2ch_48kHz.wav | 3 + .../tests/data/spectral_test_3ch_48kHz.wav | 3 + .../tests/data/spectral_test_4ch_48kHz.wav | 3 + .../tests/data/spectral_test_5ch_48kHz.wav | 3 + .../tests/data/spectral_test_6ch_48kHz.wav | 3 + .../tests/data/spectral_test_8ch_48kHz.wav | 3 + .../tests/data/spectral_test_9ch_48kHz.wav | 3 + scripts/tests/data/spectral_test_ism1.txt | 5 + scripts/tests/data/spectral_test_ism2.txt | 8 + scripts/tests/data/spectral_test_ism3.txt | 11 + scripts/tests/data/spectral_test_ism4.txt | 14 + scripts/tests/data/stvISM1.csv | 1500 +++++++++ scripts/tests/data/stvISM2.csv | 1500 +++++++++ scripts/tests/data/stvISM3.csv | 1500 +++++++++ scripts/tests/data/stvISM4.csv | 1500 +++++++++ scripts/tests/data/stv_IVASMASA_1dir1TC.met | 3 + scripts/tests/data/stv_IVASMASA_1dir1TC.pcm | 3 + scripts/tests/data/stv_IVASMASA_1dir2TC.met | 3 + scripts/tests/data/stv_IVASMASA_1dir2TC.pcm | 3 + scripts/tests/data/stv_IVASMASA_2dir1TC.met | 3 + scripts/tests/data/stv_IVASMASA_2dir1TC.pcm | 3 + scripts/tests/data/stv_IVASMASA_2dir2TC.met | 3 + scripts/tests/data/stv_IVASMASA_2dir2TC.pcm | 3 + scripts/tests/ref/.gitignore | 1 + scripts/tests/test_renderer.py | 387 +++ scripts/vbap_51_table.bin | 3 + scripts/vbap_714_table.bin | 3 + scripts/vbap_bin_table.bin | 3 + 167 files changed, 17971 insertions(+), 6051 deletions(-) create mode 100644 Workspace_msvc/lib_rend.vcxproj rename scripts/prerenderer/Workspace_msvc/prerenderer.vcxproj => Workspace_msvc/renderer.vcxproj (58%) create mode 100644 apps/renderer.c delete mode 100644 lib_dec/ivas_sba_rendering.c rename {lib_dec => lib_rend}/ivas_allrad_dec.c (99%) rename {lib_dec => lib_rend}/ivas_binauralRenderer.c (99%) rename {lib_dec => lib_rend}/ivas_binaural_reverb.c (100%) rename {lib_dec => lib_rend}/ivas_crend.c (99%) rename {lib_dec => lib_rend}/ivas_efap.c (99%) rename {lib_dec => lib_rend}/ivas_hrtf.c (99%) rename {lib_dec => lib_rend}/ivas_limiter.c (100%) rename {lib_dec => lib_rend}/ivas_ls_custom_dec.c (100%) rename {lib_dec => lib_rend}/ivas_objectRenderer.c (97%) rename {lib_dec => lib_rend}/ivas_objectRenderer_hrFilt.c (99%) rename {lib_dec => lib_rend}/ivas_objectRenderer_mix.c (100%) rename {lib_dec => lib_rend}/ivas_objectRenderer_sfx.c (99%) rename {lib_dec => lib_rend}/ivas_objectRenderer_sources.c (100%) rename {lib_dec => lib_rend}/ivas_objectRenderer_vec.c (100%) rename {lib_dec => lib_rend}/ivas_orient_trk.c (100%) rename {lib_dec => lib_rend}/ivas_output_init.c (100%) rename {lib_dec => lib_rend}/ivas_render_config.c (99%) rename {lib_dec => lib_rend}/ivas_reverb.c (99%) rename {lib_dec => lib_rend}/ivas_reverb_delay_line.c (100%) rename {lib_dec => lib_rend}/ivas_reverb_fft_filter.c (100%) rename {lib_dec => lib_rend}/ivas_reverb_filter_design.c (100%) rename {lib_dec => lib_rend}/ivas_reverb_iir_filter.c (100%) rename {lib_dec => lib_rend}/ivas_reverb_utils.c (99%) rename {lib_dec => lib_rend}/ivas_rom_TdBinauralRenderer.c (100%) rename {lib_dec => lib_rend}/ivas_rom_TdBinauralRenderer.h (100%) rename {lib_dec => lib_rend}/ivas_rom_binauralRenderer.c (100%) rename {lib_dec => lib_rend}/ivas_rom_binauralRenderer.h (100%) rename {lib_dec => lib_rend}/ivas_rom_binaural_crend_head.c (100%) rename {lib_dec => lib_rend}/ivas_rom_binaural_crend_head.h (100%) create mode 100644 lib_rend/ivas_rom_rend.c create mode 100644 lib_rend/ivas_rom_rend.h rename {lib_dec => lib_rend}/ivas_rotation.c (98%) create mode 100644 lib_rend/ivas_sba_rendering.c rename lib_util/ivas_rom_prerenderer.c => lib_rend/ivas_stat_rend.h (51%) create mode 100644 lib_rend/lib_rend.c create mode 100644 lib_rend/lib_rend.h create mode 100644 lib_util/cmdln_parser.c rename lib_util/{ivas_rom_prerenderer.h => cmdln_parser.h} (66%) delete mode 100644 lib_util/ivas_prerenderer.c delete mode 100644 lib_util/ivas_prerenderer.h create mode 100644 scripts/deco.bin create mode 100644 scripts/eigen_to_foa_cldfb_domain_filters.bin create mode 100644 scripts/eigen_to_hoa2_cldfb_domain_filters.bin create mode 100644 scripts/hrir.bin delete mode 100644 scripts/prerenderer/Makefile delete mode 100644 scripts/prerenderer/Workspace_msvc/Workspace_msvc_prerenderer.sln delete mode 100644 scripts/prerenderer/Workspace_msvc/prerenderer.vcxproj.filters delete mode 100644 scripts/prerenderer/prerenderer.c mode change 100755 => 100644 scripts/pyaudio3dtools/audiofile.py rename scripts/pyaudio3dtools/{rotateISM.py => masarenderer.py} (51%) rename scripts/pyaudio3dtools/{rotateHOA.py => rotation.py} (74%) mode change 100755 => 100644 scripts/pyivastest/IvasModeRunner.py create mode 100644 scripts/sector_filters.bin rename scripts/{pyaudio3dtools/rotateMC.py => tests/__init__.py} (50%) create mode 100644 scripts/tests/compare_audio.py create mode 100644 scripts/tests/constants.py create mode 100644 scripts/tests/cut/.gitignore rename scripts/{prerenderer_configs => tests/data}/IVAS_ISM_metadata_-30_0.csv (100%) rename scripts/{prerenderer_configs => tests/data}/IVAS_ISM_metadata_0_0.csv (100%) rename scripts/{prerenderer_configs => tests/data}/IVAS_ISM_metadata_30_0.csv (100%) rename scripts/{prerenderer_configs => tests/data}/IVAS_ISM_metadata_circle.csv (100%) rename scripts/{prerenderer_configs => tests/data}/ism1_ivas_mtdt_config.txt (100%) rename scripts/{prerenderer_configs => tests/data}/ism1_shorthand_config.txt (100%) rename scripts/{prerenderer_configs => tests/data}/ism2_ivas_mtdt_config.txt (100%) rename scripts/{prerenderer_configs => tests/data}/ism2_shorthand_config.txt (100%) rename scripts/{prerenderer_configs => tests/data}/ism3_ivas_mtdt_config.txt (100%) rename scripts/{prerenderer_configs => tests/data}/ism3_shorthand_config.txt (100%) rename scripts/{prerenderer_configs => tests/data}/ism4_ivas_mtdt_config.txt (100%) rename scripts/{prerenderer_configs => tests/data}/ism4_shorthand_config.txt (100%) create mode 100644 scripts/tests/data/ism_-90a_0e.csv create mode 100644 scripts/tests/data/ism_0a_0e.csv create mode 100644 scripts/tests/data/ism_180a_0e.csv create mode 100644 scripts/tests/data/ism_90a_0e.csv rename scripts/{prerenderer_configs => tests/data}/mixed_ivas_mtdt_config.txt (93%) rename scripts/{prerenderer_configs => tests/data}/mixed_ivas_mtdt_gain_config.txt (95%) create mode 100644 scripts/tests/data/mixed_scene.txt rename scripts/{prerenderer_configs => tests/data}/mixed_shorthand_config.txt (89%) rename scripts/{prerenderer_configs => tests/data}/mixed_shorthand_gain_config.txt (91%) rename scripts/{prerenderer_configs => tests/data}/mixed_shorthand_limiter_config.txt (83%) create mode 100644 scripts/tests/data/pink_noise_10ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_11ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_12ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_13ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_14ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_15ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_16ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_1ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_2ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_3ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_4ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_5ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_6ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_7ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_8ch_48kHz.wav create mode 100644 scripts/tests/data/pink_noise_9ch_48kHz.wav rename scripts/{prerenderer_configs/prerenderer_config_format_readme.txt => tests/data/renderer_config_format_readme.txt} (94%) create mode 100644 scripts/tests/data/spectral_test_10ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_11ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_12ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_15ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_16ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_1ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_2ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_3ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_4ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_5ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_6ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_8ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_9ch_48kHz.wav create mode 100644 scripts/tests/data/spectral_test_ism1.txt create mode 100644 scripts/tests/data/spectral_test_ism2.txt create mode 100644 scripts/tests/data/spectral_test_ism3.txt create mode 100644 scripts/tests/data/spectral_test_ism4.txt create mode 100644 scripts/tests/data/stvISM1.csv create mode 100644 scripts/tests/data/stvISM2.csv create mode 100644 scripts/tests/data/stvISM3.csv create mode 100644 scripts/tests/data/stvISM4.csv create mode 100644 scripts/tests/data/stv_IVASMASA_1dir1TC.met create mode 100644 scripts/tests/data/stv_IVASMASA_1dir1TC.pcm create mode 100644 scripts/tests/data/stv_IVASMASA_1dir2TC.met create mode 100644 scripts/tests/data/stv_IVASMASA_1dir2TC.pcm create mode 100644 scripts/tests/data/stv_IVASMASA_2dir1TC.met create mode 100644 scripts/tests/data/stv_IVASMASA_2dir1TC.pcm create mode 100644 scripts/tests/data/stv_IVASMASA_2dir2TC.met create mode 100644 scripts/tests/data/stv_IVASMASA_2dir2TC.pcm create mode 100644 scripts/tests/ref/.gitignore create mode 100644 scripts/tests/test_renderer.py create mode 100644 scripts/vbap_51_table.bin create mode 100644 scripts/vbap_714_table.bin create mode 100644 scripts/vbap_bin_table.bin diff --git a/.gitignore b/.gitignore index eaf8b0cb7b..6b784623d5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ # Compiler output Unix IVAS_cod IVAS_dec +IVAS_rend obj/ *.a *.o @@ -14,6 +15,7 @@ build/**/* # Compiler output VS2017 IVAS_cod.exe IVAS_dec.exe +IVAS_rend.exe *.user .vs/ Debug_*/ @@ -31,10 +33,6 @@ scripts/ivas_pytests/tests/unit_tests/crend/Release_*/ scripts/td_object_renderer/object_renderer_standalone/renderer_standalone scripts/td_object_renderer/object_renderer_standalone/renderer_standalone.exe -# Prerenderer -scripts/prerenderer/IVAS_prerenderer -scripts/prerenderer/IVAS_prerenderer.exe - # General/scripts .DS_Store .vscode @@ -45,6 +43,8 @@ scripts/ifdef_instrument.list scripts/ref/ scripts/test/ scripts/self_test_summary.txt +scripts/tests/cut/ +scripts/tests/ref/ # Python files that pop up when running scripts __pycache__/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 56420ae02e..91ddc62ad5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -123,16 +123,6 @@ build-unittests-linux: # need to use the "|| exit $?" suffix to get the allowed_failure return code, otherwise the job fails with code 1...< - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? -build-prerenderer-linux: - extends: - - .build-job-with-check-for-warnings - - .rules-basis - script: - - *print-common-info - - make -C scripts/prerenderer -j 2>&1 | tee $BUILD_OUTPUT - # need to use the "|| exit $?" suffix to get the allowed_failure return code, otherwise the job fails with code 1...< - - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? - build-td-object-renderer-standalone-linux: extends: - .build-job-with-check-for-warnings @@ -233,6 +223,37 @@ asan-on-merge-request-linux: - run_errors=$(cat test_output.txt | grep -ic "run errors") || true - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py with Clang address-sanitizer"; exit 1; fi +# test external renderer executable +external-renderer-make-pytest: + extends: + - .test-job-linux + - .rules-merge-request + needs: [ "build-codec-linux-make" ] + script: + - make -j IVAS_rend + - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto + +# test external renderer executable with cmake + asan +external-renderer-cmake-asan-pytest: + extends: + - .test-job-linux + - .rules-merge-request + needs: [ "build-codec-linux-cmake" ] + script: + - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan + - cmake --build cmake-build -- -j + - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto + +# test external renderer executable with cmake + msan +external-renderer-cmake-msan-pytest: + extends: + - .test-job-linux + - .rules-merge-request + needs: [ "build-codec-linux-cmake" ] + script: + - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan + - cmake --build cmake-build -- -j + - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto # compare bit exactness between target and source branch self-test-on-merge-request: diff --git a/CMakeLists.txt b/CMakeLists.txt index ad70b85844..e333918c91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -118,6 +118,7 @@ include_directories( lib_debug lib_dec lib_enc + lib_rend lib_util ) @@ -137,10 +138,15 @@ file(GLOB libEncHeaders "lib_enc/*.h") add_library(lib_enc ${libEncSrcs} ${libEncHeaders}) target_link_libraries(lib_enc lib_com lib_debug) +file(GLOB libRendSrcs "lib_rend/*.c") +file(GLOB libRendHeaders "lib_rend/*.h") +add_library(lib_rend ${libRendSrcs} ${libRendHeaders}) +target_link_libraries(lib_rend lib_com lib_debug) + file(GLOB libDecSrcs "lib_dec/*.c") file(GLOB libDecHeaders "lib_dec/*.h") add_library(lib_dec ${libDecSrcs} ${libDecHeaders}) -target_link_libraries(lib_dec lib_com lib_debug) +target_link_libraries(lib_dec lib_com lib_rend lib_debug) file(GLOB libUtilSrcs "lib_util/*.c") file(GLOB libUtilHeaders "lib_util/*.h") @@ -158,11 +164,10 @@ if(WIN32) target_link_libraries(IVAS_dec Ws2_32) endif() -if(${IVAS_BUILD_PRERENDERER}) - add_executable(IVAS_prerenderer - scripts/prerenderer/prerenderer.c - ${libEncSrcs} - ${libDecSrcs} - ) - target_link_libraries(IVAS_prerenderer lib_com lib_dec lib_debug lib_util) -endif() +add_executable(IVAS_rend apps/renderer.c) +target_link_libraries(IVAS_rend lib_rend lib_util) + +# Copy executables to root directory after build +add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") +add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") +add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") \ No newline at end of file diff --git a/Makefile b/Makefile index 76c916c1d2..8eafa71deb 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ SRC_LIBCOM = lib_com SRC_LIBDEBUG = lib_debug SRC_LIBDEC = lib_dec SRC_LIBENC = lib_enc +SRC_LIBREND = lib_rend SRC_LIBUTIL = lib_util SRC_APP = apps BUILD = build @@ -19,15 +20,17 @@ UTESTS_CREND_DIR = $(UTESTS_DIR)/crend SRC_UTESTS = $(UTESTS_CREND_DIR) -SRC_DIRS = $(sort -u $(SRC_LIBCOM) $(SRC_LIBDEBUG) $(SRC_LIBDEC) $(SRC_LIBENC) $(SRC_LIBUTIL) $(SRC_APP) $(SRC_UTESTS)) +SRC_DIRS = $(sort -u $(SRC_LIBCOM) $(SRC_LIBDEBUG) $(SRC_LIBDEC) $(SRC_LIBENC) $(SRC_LIBREND) $(SRC_LIBUTIL) $(SRC_APP) $(SRC_UTESTS)) # Name of CLI binaries CLI_APIDEC ?= IVAS_dec CLI_APIENC ?= IVAS_cod +CLI_APIREND ?= IVAS_rend LIB_LIBCOM ?= libivascom.a LIB_LIBDEBUG ?= libivasdebug.a LIB_LIBDEC ?= libivasdec.a LIB_LIBENC ?= libivasenc.a +LIB_LIBREND ?= libivasrend.a LIB_LIBUTIL ?= libivasutil.a CLI_UTESTS_CREND ?= IVAS_crend_unit_test @@ -125,6 +128,7 @@ SRCS_LIBCOM = $(foreach DIR,$(SRC_LIBCOM),$(patsubst $(DIR)/%,%,$(wildcard $(D SRCS_LIBDEBUG = $(foreach DIR,$(SRC_LIBDEBUG),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_LIBDEC = $(foreach DIR,$(SRC_LIBDEC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_LIBENC = $(foreach DIR,$(SRC_LIBENC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) +SRCS_LIBREND = $(foreach DIR,$(SRC_LIBREND),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_LIBUTIL = $(foreach DIR,$(SRC_LIBUTIL),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_UTESTS_CREND = $(foreach DIR,$(UTESTS_CREND_DIR),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) @@ -133,9 +137,11 @@ OBJS_LIBCOM = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.o)) OBJS_LIBDEBUG = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEBUG:.c=.o)) OBJS_LIBDEC = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEC:.c=.o)) OBJS_LIBENC = $(addprefix $(OBJDIR)/,$(SRCS_LIBENC:.c=.o)) +OBJS_LIBREND = $(addprefix $(OBJDIR)/,$(SRCS_LIBREND:.c=.o)) OBJS_LIBUTIL = $(addprefix $(OBJDIR)/,$(SRCS_LIBUTIL:.c=.o)) OBJS_CLI_APIDEC = $(OBJDIR)/decoder.o OBJS_CLI_APIENC = $(OBJDIR)/encoder.o +OBJS_CLI_APPREND = $(OBJDIR)/renderer.o OBJS_CLI_UTESTS_CREND = $(addprefix $(OBJDIR)/,$(SRCS_UTESTS_CREND:.c=.o)) @@ -149,7 +155,7 @@ DEPS = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.P) $(SRCS_LIBDEBUG:.c=.P) $(SRCS .PHONY: all clean clean_unittests clean_all -all: $(CLI_APIENC) $(CLI_APIDEC) +all: $(CLI_APIENC) $(CLI_APIDEC) $(CLI_APIREND) $(OBJDIR): $(QUIET)mkdir -p $(OBJDIR) @@ -157,7 +163,7 @@ $(OBJDIR): $(LIB_LIBCOM): $(OBJS_LIBCOM) $(QUIET_AR)$(AR) rcs $@ $^ -$(LIB_LIBDEC): $(OBJS_LIBDEC) +$(LIB_LIBDEC): $(OBJS_LIBDEC) $(OBJS_LIBREND) $(QUIET_AR)$(AR) rcs $@ $^ $(LIB_LIBDEBUG): $(OBJS_LIBDEBUG) @@ -166,27 +172,33 @@ $(LIB_LIBDEBUG): $(OBJS_LIBDEBUG) $(LIB_LIBENC): $(OBJS_LIBENC) $(QUIET_AR)$(AR) rcs $@ $^ +$(LIB_LIBREND): $(OBJS_LIBREND) + $(QUIET_AR)$(AR) rcs $@ $^ + $(LIB_LIBUTIL): $(OBJS_LIBUTIL) $(QUIET_AR)$(AR) rcs $@ $^ -$(CLI_APIENC): $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(OBJS_CLI_APIENC) - $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APIENC) -L. -livasutil -livasenc -livascom -livasdebug $(LDLIBS) -o $(CLI_APIENC) +$(CLI_APIENC): $(OBJS_CLI_APIENC) $(LIB_LIBENC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) + $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APIENC) -L. -livasenc -livascom -livasutil -livasdebug $(LDLIBS) -o $(CLI_APIENC) + +$(CLI_APIDEC): $(OBJS_CLI_APIDEC) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) + $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APIDEC) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(CLI_APIDEC) -$(CLI_APIDEC): $(LIB_LIBDEC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(OBJS_CLI_APIDEC) - $(QUIET_LINK)$(CC) $(OBJS_CLI_APIDEC) $(LDFLAGS) -L. -livasutil -livasdec -livascom -livasdebug $(LDLIBS) -o $(CLI_APIDEC) +$(CLI_APIREND): $(OBJS_CLI_APPREND) $(LIB_LIBREND) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) + $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livascom -livasutil -livasdebug $(LDLIBS) -o $(CLI_APIREND) -$(CLI_UTESTS_CREND): $(LIB_LIBDEC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBENC) $(LIB_LIBUTIL) $(OBJS_CLI_UTESTS_CREND) - $(QUIET_LINK)$(CC) $(OBJS_CLI_UTESTS_CREND) $(LDFLAGS) -L. -livasutil -livasdec -livascom -livasdebug $(LDLIBS) -o $(UTESTS_CREND_DIR)/$(CLI_UTESTS_CREND) +$(CLI_UTESTS_CREND): $(OBJS_CLI_UTESTS_CREND) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) + $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_UTESTS_CREND) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(UTESTS_CREND_DIR)/$(CLI_UTESTS_CREND) unittests: $(CLI_UTESTS_CREND) -libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) +libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBREND) $(LIB_LIBUTIL) clean: clean_unittests $(QUIET)$(RM) $(OBJS_LIBENC) $(OBJS_LIBDEC) $(DEPS) $(QUIET)$(RM) $(DEPS:.P=.d) $(QUIET)test ! -d $(OBJDIR) || rm -rf $(OBJDIR) - $(QUIET)$(RM) $(CLI_APIENC) $(CLI_APIDEC) $(CLI_PRD) $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) + $(QUIET)$(RM) $(CLI_APIENC) $(CLI_APIDEC) $(CLI_APIREND) $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) $(LIB_LIBREND) clean_unittests: $(QUIET)$(RM) $(OBJS_UTESTS) diff --git a/Workspace_msvc/Workspace_msvc.sln b/Workspace_msvc/Workspace_msvc.sln index be693e81cc..32f41bb6dd 100644 --- a/Workspace_msvc/Workspace_msvc.sln +++ b/Workspace_msvc/Workspace_msvc.sln @@ -8,6 +8,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_enc", "lib_enc.vcxproj" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_com", "lib_com.vcxproj", "{39EC200D-7795-4FF8-B214-B24EDA5526AE}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_rend", "lib_rend.vcxproj", "{718DE063-A18B-BB72-9150-62B892E6FFA6}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_util", "lib_util.vcxproj", "{2FA8F384-0775-F3B7-F8C3-85209222FC70}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_debug", "lib_debug.vcxproj", "{54509728-928B-44D9-A118-A6F92F08B34F}" @@ -16,6 +18,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "decoder", "decoder.vcxproj" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "encoder", "encoder.vcxproj", "{B3FC9DFC-7268-8660-7C0D-B60BAF02C554}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "renderer", "renderer.vcxproj", "{12B4C8A5-1E06-4E30-B443-D1F916F52B47}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{51160D4C-55C9-4C16-A792-D94507225746}" ProjectSection(SolutionItems) = preProject ..\.clang-format = ..\.clang-format @@ -60,6 +64,15 @@ Global {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Unittests|Win32.ActiveCfg = Unittests|Win32 {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Unittests|Win32.Build.0 = Unittests|Win32 {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Unittests|x64.ActiveCfg = Unittests|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Debug|Win32.ActiveCfg = Debug|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Debug|Win32.Build.0 = Debug|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Debug|x64.ActiveCfg = Debug|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Release|Win32.ActiveCfg = Release|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Release|Win32.Build.0 = Release|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Release|x64.ActiveCfg = Release|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Unittests|Win32.ActiveCfg = Unittests|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Unittests|Win32.Build.0 = Unittests|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Unittests|x64.ActiveCfg = Release|Win32 {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Debug|Win32.ActiveCfg = Debug|Win32 {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Debug|Win32.Build.0 = Debug|Win32 {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Debug|x64.ActiveCfg = Debug|Win32 @@ -96,6 +109,15 @@ Global {B3FC9DFC-7268-8660-7C0D-B60BAF02C554}.Unittests|Win32.ActiveCfg = Unittests|Win32 {B3FC9DFC-7268-8660-7C0D-B60BAF02C554}.Unittests|Win32.Build.0 = Unittests|Win32 {B3FC9DFC-7268-8660-7C0D-B60BAF02C554}.Unittests|x64.ActiveCfg = Unittests|Win32 + {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Debug|Win32.ActiveCfg = Debug|Win32 + {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Debug|Win32.Build.0 = Debug|Win32 + {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Debug|x64.ActiveCfg = Debug|Win32 + {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Release|Win32.ActiveCfg = Release|Win32 + {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Release|Win32.Build.0 = Release|Win32 + {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Release|x64.ActiveCfg = Release|Win32 + {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Unittests|Win32.ActiveCfg = Unittests|Win32 + {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Unittests|Win32.Build.0 = Unittests|Win32 + {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Unittests|x64.ActiveCfg = Release|Win32 {32354377-ACA7-40F9-9A0E-87FC956F0B78}.Debug|Win32.ActiveCfg = Debug|Win32 {32354377-ACA7-40F9-9A0E-87FC956F0B78}.Debug|x64.ActiveCfg = Debug|Win32 {32354377-ACA7-40F9-9A0E-87FC956F0B78}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/Workspace_msvc/lib_com.vcxproj b/Workspace_msvc/lib_com.vcxproj index ed091573fc..994b1ec429 100644 --- a/Workspace_msvc/lib_com.vcxproj +++ b/Workspace_msvc/lib_com.vcxproj @@ -78,7 +78,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) EnableFastChecks @@ -109,7 +109,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) @@ -147,7 +147,7 @@ Neither false false - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);%(PreprocessorDefinitions) true @@ -358,4 +358,4 @@ - \ No newline at end of file + diff --git a/Workspace_msvc/lib_debug.vcxproj b/Workspace_msvc/lib_debug.vcxproj index d8efa0879d..5dc36d4633 100644 --- a/Workspace_msvc/lib_debug.vcxproj +++ b/Workspace_msvc/lib_debug.vcxproj @@ -73,7 +73,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);%(PreprocessorDefinitions) false @@ -97,7 +97,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);%(PreprocessorDefinitions) false @@ -124,7 +124,7 @@ AnySuitable false false - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);%(PreprocessorDefinitions) true @@ -166,4 +166,4 @@ - \ No newline at end of file + diff --git a/Workspace_msvc/lib_dec.vcxproj b/Workspace_msvc/lib_dec.vcxproj index 3bde19ca47..414e14e35b 100644 --- a/Workspace_msvc/lib_dec.vcxproj +++ b/Workspace_msvc/lib_dec.vcxproj @@ -89,7 +89,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) EnableFastChecks @@ -126,7 +126,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) @@ -169,7 +169,7 @@ Neither false false - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) true @@ -264,12 +264,8 @@ - - - - @@ -278,17 +274,13 @@ - - - - @@ -296,35 +288,15 @@ - - - - - - - - - - - - - - - - - - - - @@ -392,10 +364,7 @@ - - - @@ -418,6 +387,10 @@ {54509728-928b-44d9-a118-a6f92f08b34f} false + + {718DE063-A18B-BB72-9150-62B892E6FFA6} + false + diff --git a/Workspace_msvc/lib_dec.vcxproj.filters b/Workspace_msvc/lib_dec.vcxproj.filters index 155b8dfc45..8b2ccec3bb 100644 --- a/Workspace_msvc/lib_dec.vcxproj.filters +++ b/Workspace_msvc/lib_dec.vcxproj.filters @@ -28,24 +28,6 @@ dec_ivas_c - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - dec_ivas_c @@ -406,24 +388,9 @@ dec_ivas_c - - dec_ivas_c - - - dec_ivas_c - dec_ivas_c - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - dec_ivas_c @@ -448,15 +415,9 @@ dec_ivas_c - - dec_ivas_c - dec_ivas_c - - dec_ivas_c - dec_ivas_c @@ -512,42 +473,21 @@ dec_ivas_c - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - dec_ivas_c - + dec_ivas_c dec_ivas_c - - dec_ivas_c - - + dec_ivas_c dec_ivas_c - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - dec_ivas_c @@ -560,27 +500,6 @@ dec_ivas_c - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - @@ -595,9 +514,6 @@ dec_h - - dec_h - dec_h @@ -623,12 +539,6 @@ dec_h - - dec_h - - - dec_h - diff --git a/Workspace_msvc/lib_enc.vcxproj b/Workspace_msvc/lib_enc.vcxproj index 40302c56cd..060776c99a 100644 --- a/Workspace_msvc/lib_enc.vcxproj +++ b/Workspace_msvc/lib_enc.vcxproj @@ -89,7 +89,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) EnableFastChecks @@ -129,7 +129,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) @@ -176,7 +176,7 @@ Neither false false - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);%(PreprocessorDefinitions) true @@ -422,4 +422,4 @@ - \ No newline at end of file + diff --git a/Workspace_msvc/lib_rend.vcxproj b/Workspace_msvc/lib_rend.vcxproj new file mode 100644 index 0000000000..e87baf5605 --- /dev/null +++ b/Workspace_msvc/lib_rend.vcxproj @@ -0,0 +1,257 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Unittests + Win32 + + + + lib_rend + {718DE063-A18B-BB72-9150-62B892E6FFA6} + evs_dec + 10.0.17763.0 + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + + StaticLibrary + v141 + false + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>15.0.27428.2015 + + + .\Debug_$(ProjectName)\ + .\Debug_$(ProjectName)\ + false + false + libivasrend + + + .\Debug_$(ProjectName)\ + .\Debug_$(ProjectName)\ + false + false + libivasrend + + + .\Release_$(ProjectName)\ + .\Release_$(ProjectName)\ + false + false + libivasrend + + + + + + + .\Debug\$(ProjectName).tlb + + + + Disabled + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) + + EnableFastChecks + MultiThreadedDebug + false + + + $(IntDir)$(ProjectName).pdb + Level4 + true + OldStyle + Default + %(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0c0c + + + WS2_32.lib; %(AdditionalDependencies) + $(OutDir)$(TargetName).lib + true + + + + + + + + + .\Debug\$(ProjectName).tlb + + + + + Disabled + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) + + + EnableFastChecks + MultiThreadedDebug + false + + + + + $(IntDir)$(ProjectName).pdb + Level4 + true + OldStyle + Default + %(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0c0c + + + WS2_32.lib; %(AdditionalDependencies) + $(OutDir)$(TargetName).lib + true + + + + + + + + $(IntDir)$(ProjectName).tlb + + + + MaxSpeed + AnySuitable + false + Neither + false + false + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) + true + + Default + MultiThreaded + true + false + + + $(IntDir)$(ProjectName).pdb + Level4 + true + + Default + %(DisableSpecificWarnings) + + + NDEBUG;%(PreprocessorDefinitions) + 0x0c0c + + + WS2_32.lib; %(AdditionalDependencies) + $(OutDir)$(TargetName).lib + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {39ec200d-7795-4ff8-b214-b24eda5526ae} + false + + + {54509728-928b-44d9-a118-a6f92f08b34f} + false + + + + + + + + + + + \ No newline at end of file diff --git a/Workspace_msvc/lib_util.vcxproj b/Workspace_msvc/lib_util.vcxproj index 0bb399c153..3e269dab4b 100644 --- a/Workspace_msvc/lib_util.vcxproj +++ b/Workspace_msvc/lib_util.vcxproj @@ -73,7 +73,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);ZLIB_WINAPI;%(PreprocessorDefinitions) false @@ -93,7 +93,7 @@ Disabled - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);ZLIB_WINAPI;%(PreprocessorDefinitions) false @@ -117,7 +117,7 @@ AnySuitable false false - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;..\lib_rend;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);ZLIB_WINAPI;%(PreprocessorDefinitions) true @@ -141,6 +141,7 @@ + @@ -162,6 +163,7 @@ + diff --git a/scripts/prerenderer/Workspace_msvc/prerenderer.vcxproj b/Workspace_msvc/renderer.vcxproj similarity index 58% rename from scripts/prerenderer/Workspace_msvc/prerenderer.vcxproj rename to Workspace_msvc/renderer.vcxproj index ed2ad4ff85..69ae363370 100644 --- a/scripts/prerenderer/Workspace_msvc/prerenderer.vcxproj +++ b/Workspace_msvc/renderer.vcxproj @@ -9,11 +9,15 @@ Release Win32 + + Unittests + Win32 + - prerenderer - {12b4c8a5-1e06-4e30-b443-d1f916f52b47} - prerenderer + renderer + {12B4C8A5-1E06-4E30-B443-D1F916F52B47} + renderer 10.0.17763.0 @@ -23,6 +27,12 @@ false MultiByte + + Application + v141 + false + MultiByte + Application v141 @@ -34,27 +44,40 @@ + + + + + + <_ProjectFileVersion>15.0.27428.2015 - .. + ..\ + .\Debug_$(ProjectName)\ + false + false + IVAS_rend + + + ..\ .\Debug_$(ProjectName)\ false false - IVAS_prerenderer + IVAS_rend - .. + ..\ .\Release_$(ProjectName)\ false false - IVAS_prerenderer + IVAS_rend @@ -63,8 +86,8 @@ Disabled - ..\..\..\lib_com;..\..\..\lib_debug;..\..\..\lib_dec;..\..\..\lib_enc;..\..\..\lib_util;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;..\lib_rend;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;$(Macros);%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -76,7 +99,7 @@ true OldStyle Default - 4100;%(DisableSpecificWarnings) + %(DisableSpecificWarnings) _DEBUG;%(PreprocessorDefinitions) @@ -87,16 +110,64 @@ $(OutDir)$(TargetName).exe true - false true $(IntDir)$(ProjectName).pdb Console - false MachineX86 + + + + + + + $(IntDir)$(ProjectName).tlb + + + + + Disabled + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;..\lib_rend;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;WIN32;$(Macros);%(PreprocessorDefinitions) + + + EnableFastChecks + MultiThreadedDebug + false + + + + + $(IntDir)$(ProjectName).pdb + Level4 + true + OldStyle + Default + %(DisableSpecificWarnings) + + + _DEBUG;%(PreprocessorDefinitions) + 0x0c0c + + + + + $(OutDir)$(TargetName).exe + true + + + true + $(IntDir)$(ProjectName).pdb + Console + false + + + MachineX86 + + $(IntDir)$(ProjectName).tlb @@ -109,8 +180,8 @@ Neither false false - ..\..\..\lib_com;..\..\..\lib_debug;..\..\..\lib_dec;..\..\..\lib_enc;..\..\..\lib_util;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;..\lib_rend;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;$(Macros);%(PreprocessorDefinitions) true Default @@ -125,7 +196,7 @@ true Default - 4100;%(DisableSpecificWarnings) + %(DisableSpecificWarnings) NDEBUG;%(PreprocessorDefinitions) @@ -141,43 +212,30 @@ false MachineX86 + libcmtd.lib - + + + + {54509728-928B-44D9-A118-A6F92F08B34F} false - + {2FA8F384-0775-F3B7-F8C3-85209222FC70} false - + {39ec200d-7795-4ff8-b214-b24eda5526ae} false - - {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3} + + {718DE063-A18B-BB72-9150-62B892E6FFA6} false - - - - - - - - - - - - - - - - - diff --git a/apps/decoder.c b/apps/decoder.c index cb81edc24b..953df8d6b8 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -158,7 +158,6 @@ static void print_mem_dec( size_t SRAM_size ) fprintf( stdout, "PROM size (common): %d words (or instructions)\n", PROM_Size_lib_com ); fprintf( stdout, "Stack size (decoder): %ld words in %s() in frame #%d\n", ( ( ptr_base_stack - ptr_max_stack ) * sizeof( int16_t ) ) / sizeof( float ), location_max_stack, wc_frame ); fprintf( stdout, "Table ROM size (decoder): %ld words\n", ( Const_Data_Size_rom_dec() + Const_Data_Size_ivas_rom_dec() ) / sizeof( float ) ); - fprintf( stdout, "Table ROM size (binaural renderer): %ld words\n", ( Const_Data_Size_ivas_rom_binauralRen() + Const_Data_Size_ivas_rom_TdBinauralR() + Const_Data_Size_ivas_rom_binaural_cr() ) / sizeof( float ) ); fprintf( stdout, "Table ROM size (common): %ld words\n", ( Const_Data_Size_rom_com() + Const_Data_Size_ivas_rom_com() ) / sizeof( float ) ); #ifdef RAM_COUNTING_TOOL fprintf( stdout, "Static RAM size (decoder): %ld words\n\n", SRAM_size ); diff --git a/apps/renderer.c b/apps/renderer.c new file mode 100644 index 0000000000..38c28e3dc4 --- /dev/null +++ b/apps/renderer.c @@ -0,0 +1,1912 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + +#include "options.h" +#include "audio_file_reader.h" +#include "audio_file_writer.h" +#include "cmdln_parser.h" +#include "cmdl_tools.h" +#include "common_api_types.h" +#include "head_rotation_file_reader.h" +#include "hrtf_file_reader.h" +#include "ism_file_reader.h" +#include "lib_rend.h" +#include "ls_custom_file_reader.h" +#include "render_config_reader.h" +#include "ivas_stat_dec.h" +#include "prot.h" +#ifdef WMOPS +#include "wmops.h" +#include "PROM_Size_lib_rend.h" +#endif +#ifdef RAM_COUNTING_TOOL +#include "mem_count.h" +#endif +#include +#include +#include +#include +#include +#include +#include + +#ifndef count_malloc +#ifdef RAM_COUNTING_TOOL +#define count_malloc( n1 ) MALLOC_FCT_CALL( n1 ) +#define count_calloc( n1, n2 ) CALLOC_FCT_CALL( n1, n2 ) +#define count_free( ptr ) FREE_FCT_CALL( ptr ) +#else +#define count_malloc( n1 ) malloc( n1 ) +#define count_calloc( n1, n2 ) calloc( n1, n2 ) +#define count_free( ptr ) free( ptr ) +#endif +#endif + +#ifndef min +#define min( x, y ) ( ( x ) < ( y ) ? ( x ) : ( y ) ) +#endif + +#ifndef max +#define max( x, y ) ( ( x ) > ( y ) ? ( x ) : ( y ) ) +#endif + +#define RENDERER_MAX_METADATA_LENGTH 8192 +#define RENDERER_MAX_METADATA_LINE_LENGTH 1024 + +#if !defined( DEBUGGING ) && !defined( WMOPS ) +static +#endif + int32_t frame = 0; + +#ifdef _WIN32 +#define SEP_FOLDER '\\' +#else +#define SEP_FOLDER '/' +#endif + +#ifdef WMOPS +void print_stack_call_tree( void ); +int Const_Data_Size_ivas_rom_rend( void ); +extern int16_t *ptr_base_stack; +extern int16_t *ptr_max_stack; +extern int32_t wc_frame; +extern char location_max_stack[256]; + +/* clang-format off */ +/*------------------------------------------------------------------------------------------* +* Function to print complexity & memory estimates +*------------------------------------------------------------------------------------------*/ +static void print_mem_renderer(size_t SRAM_size) +{ + fprintf( stdout, "\n\n --- Renderer cmdln demo memory usage --- \n\n" ); + + fprintf( stdout, "PROM size (renderer): %d words (or instructions)\n", PROM_Size_lib_rend ); + fprintf( stdout, "Stack size: %d words in %s() in frame #%d\n", ( ptr_base_stack - ptr_max_stack ) * sizeof( int16_t ) / sizeof( float ), location_max_stack, wc_frame ); + fprintf( stdout, "Table ROM size(renderer): %d words\n", (Const_Data_Size_ivas_rom_rend() ) / sizeof( float ) ); + fprintf( stdout, "Table ROM size (binaural renderer): %ld words\n", ( Const_Data_Size_ivas_rom_binauralRen() + Const_Data_Size_ivas_rom_TdBinauralR() + Const_Data_Size_ivas_rom_binaural_cr() ) / sizeof( float ) ); +#ifdef RAM_COUNTING_TOOL + fprintf( stdout, "Static RAM size: %d words\n\n", SRAM_size ); +#endif + print_stack_call_tree(); + + fprintf( stdout, "Note: this is an optimistic estimate of the memory consumption assuming\n" ); + fprintf( stdout, " that each variable (short, long or float) in the codec requires\n" ); + fprintf( stdout, " 32 bits of memory and may therefore be represented by 1 word.\n" ); + fprintf( stdout, " The following formula is used: sizeof('memory array')/sizeof(float)\n\n" ); +} +/* clang-format on */ +#endif + +typedef struct IsmPositionProvider +{ + uint32_t frameCounter; + uint16_t numObjects; + IsmFileReader *ismReaders[RENDERER_MAX_ISM_INPUTS]; + uint32_t numPositions[RENDERER_MAX_ISM_INPUTS]; + IVAS_REND_AudioObjectPosition *positions[RENDERER_MAX_ISM_INPUTS]; /* size: [RENDERER_MAX_ISM_INPUTS][numPositions[object_index]] */ + uint16_t *positionDurations[RENDERER_MAX_ISM_INPUTS]; /* size: [RENDERER_MAX_ISM_INPUTS][numPositions[object_index]] */ + uint32_t currentPositionIdxs[RENDERER_MAX_ISM_INPUTS]; /* Index of current position as listed in the metadata file */ + uint16_t durationCounters[RENDERER_MAX_ISM_INPUTS]; /* Number of frames spent at current position */ +} IsmPositionProvider; + +typedef enum InputFormat +{ + INPUT_FORMAT_NONE = 0, + INPUT_FORMAT_SBA, + INPUT_FORMAT_ISM, + INPUT_FORMAT_MC +} InputFormat; + +typedef struct CmdlnArgs +{ + char inputFilePath[FILENAME_MAX]; + char outputFilePath[FILENAME_MAX]; + int32_t sampleRate; + AUDIO_CONFIG inputFormat; + IVAS_REND_InputConfig inConfig; + IVAS_REND_OutputConfig outConfig; + uint8_t numAudioObjects; + char metaDataFiles[RENDERER_MAX_ISM_INPUTS][FILENAME_MAX]; + char trajectoryFile[FILENAME_MAX]; + char customHrtfFile[FILENAME_MAX]; + char renderConfigFile[FILENAME_MAX]; + int8_t orientationTracking; + float noDiegeticPan; + bool neverDropLfe; /* flag */ + bool delayCompensationEnabled; /* flag */ + bool quietModeEnabled; +} CmdlnArgs; + +static int8_t setInConfig( + int16_t numChannels, + AUDIO_CONFIG input_config, + IVAS_REND_InputConfig *inConfig, + IsmPositionProvider *positionProvider ); + +static IVAS_REND_Ambisonics ambisonicsOrderToEnum( + int32_t order ); + +static IVAS_REND_Ambisonics audioCfgToAmbiEnum( + AUDIO_CONFIG cfg ); + +static IVAS_REND_SpeakerLayout speakerLayoutCicpToEnum( + int32_t cicpIndex ); + +static IVAS_REND_SpeakerLayout audioCfgToMcEnum( + AUDIO_CONFIG cfg ); + +static int8_t parseInFormat( + char **optionValues, + CmdlnArgs *args ); + +static int8_t parseOutConfig( + char *configString, + IVAS_REND_OutputConfig *outConfig ); + +static void parseConfigFile( + char *path, + char *audioFilePath, + IVAS_REND_InputConfig *inConfig, + IsmPositionProvider *positionProvider ); + +static void parseCustomLayoutFile( + char *filePath, + IVAS_LSSETUP_CUSTOM_HANDLE *hLsSetupCustom ); + +static CmdlnArgs parseCmdlnArgs( + int32_t argc, + char **argv ); + +static IsmPositionProvider *IsmPositionProvider_open( + void ); + +static void IsmPositionProvider_getNextFrame( + IsmPositionProvider *positionProvider, + IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer ); + +static void IsmPositionProvider_close( + IsmPositionProvider *positionProvider ); + +static void readFromShorthandMetadata( + IsmPositionProvider *positionProvider, + IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer, + uint32_t objIdx ); + +void getMetadataFromFileReader( + IsmFileReader *ismReader, + IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer, + uint32_t objIdx ); + +static void splitConfigFile( + const char *mdfFilePath, + char *metadataString, + uint32_t *metadataStringLength, + char *wavFileName, + uint32_t *wavFileNameLength ); + +static char *readNextMetadataChunk( + char *line, + const char *delimiter ); + +static void parseUint8( + const char *line, + uint8_t *ret ); + +static void parseUint16( + const char *line, + uint16_t *ret ); + +static int8_t parseUint32( + const char *line, + uint32_t *ret ); + +static void parseObjectPosition( + char *line, + IVAS_REND_AudioObjectPosition *position, + uint16_t *positionDuration ); + +static void parseIsm( + char *line, + char *inDir, + IVAS_REND_InputConfig *inConfig, + IsmPositionProvider *positionProvider, + int32_t idx ); + +static void parseSba( + char *line, + IVAS_REND_InputConfig *inConfig, + int32_t idx ); + +static void parseMc( + char *line, + IVAS_REND_InputConfig *inConfig, + int32_t idx ); + +static void parseMetadata( + char *metadataString, + char *inDir, + IVAS_REND_InputConfig *inConfig, + IsmPositionProvider *positionProvider ); + +static void convert_backslash( + char *str ); + +static void remove_cr( + char *str ); + + +/* ============================================================================ */ + +int32_t main( int32_t argc, char **argv ) +{ + IVAS_REND_HANDLE hIvasRend; + HeadRotFileReader *headRotReader = NULL; + hrtfFileReader *hrtfFileReader = NULL; + IsmPositionProvider *positionProvider; + RenderConfigReader *renderConfigReader = NULL; + char audioFilePath[FILENAME_MAX]; + AudioFileReader *audioReader = NULL; + int16_t numInChannels; + AudioFileWriter *audioWriter; + int16_t inBufferSize; + int32_t outBufferSize; + int16_t *inpInt16Buffer; + float *inFloatBuffer; + int16_t *outInt16Buffer; + float *outFloatBuffer; + IVAS_REND_AudioBuffer inBuffer; + IVAS_REND_AudioBuffer outBuffer; + int16_t numSamplesRead; + int16_t delayNumSamples = -1; + int16_t delayNumSamples_orig = 0; + int16_t zeroPad = 0; + int32_t delayTimeScale = 0; + int16_t i; + ivas_error error = IVAS_ERR_OK; +#ifdef WMOPS + size_t SRAM_size; +#endif + +#ifdef WMOPS + reset_wmops(); + reset_stack(); +#endif + +#ifdef RAM_COUNTING_TOOL + mem_count_init( 0, USE_32BITS ); +#endif + + CmdlnArgs args = parseCmdlnArgs( argc, argv ); + const int16_t frameSize_smpls = (int16_t) ( 20 * args.sampleRate / 1000 ); + + /* === Open === */ + hIvasRend = IVAS_REND_Open(); + positionProvider = IsmPositionProvider_open(); + + convert_backslash( args.inputFilePath ); + convert_backslash( args.outputFilePath ); + convert_backslash( args.trajectoryFile ); + + if ( args.trajectoryFile[0] != '\0' ) + { + HeadRotationFileReader_open( args.trajectoryFile, &headRotReader ); + } + + if ( args.customHrtfFile[0] != '\0' ) + { + hrtfFileReader_open( args.customHrtfFile, &hrtfFileReader ); + } + + if ( args.renderConfigFile[0] != '\0' ) + { + RenderConfigReader_open( args.renderConfigFile, &renderConfigReader ); + } + + /* === Parse === */ + if ( args.inputFormat == AUDIO_CONFIG_INVALID || args.inputFormat == AUDIO_CONFIG_META ) + { + /* Only parse config file if input config is none */ + parseConfigFile( args.inputFilePath, audioFilePath, &args.inConfig, positionProvider ); + } + else + { + /* If input config is set, input file path is the input audio file, not config file */ + strncpy( audioFilePath, args.inputFilePath, FILENAME_MAX ); + + /* Initialize inConfig - this will be overwritten when applying forced parameters, + * but not initializing here causes a compiler warning on msvc */ + args.inConfig.numAmbisonicsBuses = 0; + args.inConfig.numMultiChannelBuses = 0; + args.inConfig.numAudioObjects = args.numAudioObjects; + } + + /* === Apply forced parameters === */ + if ( AudioFileReader_open( &audioReader, audioFilePath, args.sampleRate ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error opening file: %s\n", audioFilePath ); + exit( -1 ); + } + + if ( args.inputFormat != AUDIO_CONFIG_INVALID ) + { + numInChannels = AudioFileReader_getNumChannels( audioReader ); + if ( numInChannels == 0 ) + { + fprintf( stderr, "File does not contain number of channels metadata, probably a raw file: %s\n", audioFilePath ); + exit( -1 ); + } + + for ( i = 0; i < args.numAudioObjects; i++ ) + { + positionProvider->ismReaders[i] = IsmFileReader_open( args.metaDataFiles[i] ); + } + + if ( setInConfig( numInChannels, args.inputFormat, &args.inConfig, positionProvider ) != 0 ) + { + fprintf( stderr, "File cannot be used: %s\n", audioFilePath ); + exit( -1 ); + } + } + + /* === Configure === */ + if ( ( error = IVAS_REND_Configure( hIvasRend, args.inConfig, args.outConfig, args.sampleRate, args.trajectoryFile[0] != '\0' ) ) != IVAS_ERR_OK ) + { + exit( -1 ); + } + + if ( args.neverDropLfe ) + { + IVAS_REND_SetNeverDropLfe( hIvasRend, 1 ); + } + + if ( IVAS_REND_GetInChannels( hIvasRend ) != AudioFileReader_getNumChannels( audioReader ) ) + { + fprintf( stderr, "Number of channels in input file does not match selected configuration\n" ); + exit( -1 ); + } + + /* === Process === */ + if ( AudioFileWriter_open( &audioWriter, args.outputFilePath, args.sampleRate, IVAS_REND_GetOutChannels( hIvasRend ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Failed to open file: %s\n", args.outputFilePath ); + exit( -1 ); + } + + inBufferSize = frameSize_smpls * IVAS_REND_GetInChannels( hIvasRend ); + outBufferSize = frameSize_smpls * IVAS_REND_GetOutChannels( hIvasRend ); + inpInt16Buffer = count_calloc( inBufferSize, sizeof( int16_t ) ); + inFloatBuffer = count_calloc( inBufferSize, sizeof( float ) ); + outInt16Buffer = count_calloc( outBufferSize, sizeof( int16_t ) ); + outFloatBuffer = count_calloc( outBufferSize, sizeof( float ) ); + + inBuffer.config.sampleRate = args.sampleRate; + inBuffer.config.bufferSize = frameSize_smpls; + inBuffer.config.numChannels = IVAS_REND_GetInChannels( hIvasRend ); + inBuffer.data = inFloatBuffer; + + outBuffer.config.sampleRate = args.sampleRate; + outBuffer.config.bufferSize = frameSize_smpls; + outBuffer.config.numChannels = IVAS_REND_GetOutChannels( hIvasRend ); + outBuffer.data = outFloatBuffer; + +#ifdef WMOPS + reset_wmops(); +#endif + + if ( !args.quietModeEnabled ) + { + fprintf( stdout, "\n------ Running the renderer ------\n\n" ); + fprintf( stdout, "Frames processed: " ); + } + else + { + fprintf( stdout, "\n\n-- Start the renderer (quiet mode) --\n\n" ); + } + + while ( 1 ) + { + int32_t chnl, smpl; + int32_t num_in_channels; + num_in_channels = inBuffer.config.numChannels; + i = 0; + + /* Read the input data */ + if ( ( error = AudioFileReader_read( audioReader, inpInt16Buffer, inBufferSize, &numSamplesRead ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nError reading from file %s\n", audioFilePath ); + exit( -1 ); + } + + if ( numSamplesRead == 0 ) + { + /* end of input data */ + break; + } + + /* Convert from int to float and from interleaved to packed */ + for ( smpl = 0; smpl < frameSize_smpls; ++smpl ) + { + for ( chnl = 0; chnl < num_in_channels; ++chnl ) + { + if ( i < numSamplesRead ) + { + inFloatBuffer[chnl * frameSize_smpls + smpl] = (float) inpInt16Buffer[i] / INT16_MAX; + } + else + { + inFloatBuffer[chnl * frameSize_smpls + smpl] = 0.f; + } + + ++i; + } + } + + IVAS_REND_AudioObjectMetadataBuffer mtdBuffer; + IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer ); + + /* Read from head rotation trajectory file if specified */ + if ( headRotReader != NULL ) + { + IVAS_QUATERNION quatBuffer[RENDERER_HEAD_POSITIONS_PER_FRAME]; + HeadRotationFileReading( headRotReader, quatBuffer, frame ); + IVAS_REND_SetHeadRotation( hIvasRend, quatBuffer ); + } + + IVAS_REND_Render( hIvasRend, inBuffer, mtdBuffer, outBuffer ); + + int32_t num_out_channels; + num_out_channels = outBuffer.config.numChannels; + i = 0; + + /* Convert from float to int and from packed to interleaved */ + for ( smpl = 0; smpl < frameSize_smpls; ++smpl ) + { + for ( chnl = 0; chnl < num_out_channels; ++chnl ) + { + outInt16Buffer[i] = (int16_t) ( outFloatBuffer[chnl * frameSize_smpls + smpl] * INT16_MAX ); + + ++i; + } + } + + /* TODO tmu : delay compensation not finalized yet */ + if ( delayNumSamples == -1 ) + { + if ( args.delayCompensationEnabled ) + { + if ( IVAS_REND_GetDelay( hIvasRend, &delayNumSamples, &delayTimeScale ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nUnable to get delay of renderer!\n" ); + exit( -1 ); + } + delayNumSamples_orig = delayNumSamples; + } + else + { + delayNumSamples = 0; + } + zeroPad = delayNumSamples; + } + + if ( delayNumSamples < outBufferSize ) + { + if ( AudioFileWriter_write( audioWriter, &outInt16Buffer[delayNumSamples * num_out_channels], outBufferSize - ( delayNumSamples * num_out_channels ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error writing audio file %s\n", args.outputFilePath ); + exit( -1 ); + } + delayNumSamples = 0; + } + else + { + delayNumSamples -= outBufferSize; + } + + frame++; + if ( !args.quietModeEnabled ) + { + fprintf( stdout, "%-8d\b\b\b\b\b\b\b\b", frame ); + } + +#ifdef WMOPS + update_wmops(); +#endif + } + + /* add zeros at the end to have equal length of synthesized signals */ + memset( outInt16Buffer, 0, zeroPad * outBuffer.config.numChannels * sizeof( int16_t ) ); + if ( ( error = AudioFileWriter_write( audioWriter, outInt16Buffer, zeroPad * outBuffer.config.numChannels ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nOutput audio file writer error\n" ); + exit( -1 ); + } + + if ( !args.quietModeEnabled && args.delayCompensationEnabled ) + { + fprintf( stdout, "\nRenderer delay: %-5u [samples] - Timescale: %5u\n", delayNumSamples_orig, delayTimeScale ); + } + + fprintf( stdout, "\n\nRendering of %d frames finished\n", frame ); + + /* === Close === */ + count_free( inpInt16Buffer ); + count_free( inFloatBuffer ); + count_free( outInt16Buffer ); + count_free( outFloatBuffer ); + AudioFileReader_close( &audioReader ); + AudioFileWriter_close( &audioWriter ); + HeadRotationFileReader_close( &headRotReader ); + hrtfFileReader_close( &hrtfFileReader ); + IVAS_REND_Close( &hIvasRend ); + IsmPositionProvider_close( positionProvider ); + RenderConfigReader_close( &renderConfigReader ); + +#ifdef RAM_COUNTING_TOOL +#ifdef WMOPS + SRAM_size = +#endif + mem_count_summary( USE_DEFAULT ); +#endif +#ifdef WMOPS + print_wmops(); + /* print_mem_renderer( SRAM_size ); */ +#endif + + return 0; +} + +static int8_t setInConfig( int16_t numChannels, AUDIO_CONFIG input_config, IVAS_REND_InputConfig *inConfig, IsmPositionProvider *positionProvider ) +{ + int8_t success; /* flag */ + int16_t i; + + success = 1; + + switch ( input_config ) + { + case AUDIO_CONFIG_MONO: + case AUDIO_CONFIG_STEREO: + case AUDIO_CONFIG_5_1: + case AUDIO_CONFIG_7_1: + case AUDIO_CONFIG_5_1_2: + case AUDIO_CONFIG_5_1_4: + case AUDIO_CONFIG_7_1_4: + case AUDIO_CONFIG_LS_CUSTOM: + inConfig->numAudioObjects = 0; + inConfig->numAmbisonicsBuses = 0; + inConfig->numMultiChannelBuses = 1; + inConfig->multiChannelBuses[0].speakerLayout = audioCfgToMcEnum( input_config ); + inConfig->multiChannelBuses[0].inputChannelIndex = 0; + inConfig->multiChannelBuses[0].gain_dB = 0; + break; + case AUDIO_CONFIG_FOA: + case AUDIO_CONFIG_HOA2: + case AUDIO_CONFIG_HOA3: + inConfig->numAudioObjects = 0; + inConfig->numMultiChannelBuses = 0; + inConfig->numAmbisonicsBuses = 1; + inConfig->ambisonicsBuses[0].ambisonicsConfig = audioCfgToAmbiEnum( input_config ); + inConfig->ambisonicsBuses[0].inputChannelIndex = 0; + inConfig->ambisonicsBuses[0].gain_dB = 0; + break; + case AUDIO_CONFIG_ISM1: + case AUDIO_CONFIG_ISM2: + case AUDIO_CONFIG_ISM3: + case AUDIO_CONFIG_ISM4: + inConfig->numAmbisonicsBuses = 0; + inConfig->numMultiChannelBuses = 0; + inConfig->numAudioObjects = numChannels; + positionProvider->numObjects = numChannels; + + for ( i = 0; i < numChannels; ++i ) + { + inConfig->audioObjects[i].inputChannelIndex = i; + inConfig->audioObjects[i].gain_dB = 0; + + positionProvider->numPositions[i] = 1; + positionProvider->positions[i] = count_malloc( sizeof( IVAS_REND_AudioObjectPosition ) ); + IVAS_REND_AudioObjectPosition position; + + /* Spread objects starting from 0, then -/+ 30, then -/+ 60 etc. */ + position.azimuth = (float) ( ( i + 1 ) / 2 ) * 30 * ( i % 2 == 0 ? -1 : 1 ); + position.elevation = 0.0f; + positionProvider->positions[i][0] = position; + + positionProvider->positionDurations[i] = count_malloc( sizeof( uint16_t ) ); + positionProvider->positionDurations[i][0] = 1; + } + break; + case AUDIO_CONFIG_META: + break; + default: + success = 0; + fprintf( stderr, "Invalid or bad config\n" ); + } + + return success ? 0 : -1; +} + +static IVAS_REND_Ambisonics ambisonicsOrderToEnum( int32_t order ) +{ + switch ( order ) + { + case 0: + return IVAS_REND_AMBISONICS_MONO; + case 1: + return IVAS_REND_AMBISONICS_FOA; + case 2: + return IVAS_REND_AMBISONICS_SOA; + case 3: + return IVAS_REND_AMBISONICS_TOA; + } + + return IVAS_REND_AMBISONICS_NONE; +} + +static IVAS_REND_Ambisonics audioCfgToAmbiEnum( AUDIO_CONFIG cfg ) +{ + if ( cfg == AUDIO_CONFIG_MONO ) + { + return IVAS_REND_AMBISONICS_MONO; + } + else if ( cfg == AUDIO_CONFIG_FOA ) + { + return IVAS_REND_AMBISONICS_FOA; + } + else if ( cfg == AUDIO_CONFIG_HOA2 ) + { + return IVAS_REND_AMBISONICS_SOA; + } + else if ( cfg == AUDIO_CONFIG_HOA3 ) + { + return IVAS_REND_AMBISONICS_TOA; + } + + return IVAS_REND_AMBISONICS_NONE; +} + +static IVAS_REND_SpeakerLayout speakerLayoutCicpToEnum( int32_t cicpIndex ) +{ + switch ( cicpIndex ) + { + case 0: + return IVAS_REND_SPEAKER_LAYOUT_CUSTOM; + case 1: + return IVAS_REND_SPEAKER_LAYOUT_MONO; + case 2: + return IVAS_REND_SPEAKER_LAYOUT_STEREO; + case 6: + return IVAS_REND_SPEAKER_LAYOUT_5_1; + case 12: + return IVAS_REND_SPEAKER_LAYOUT_7_1; + case 14: + return IVAS_REND_SPEAKER_LAYOUT_5_1_2; + case 16: + return IVAS_REND_SPEAKER_LAYOUT_5_1_4; + case 19: + return IVAS_REND_SPEAKER_LAYOUT_7_1_4; + } + + return IVAS_REND_SPEAKER_LAYOUT_NONE; +} + +static IVAS_REND_SpeakerLayout audioCfgToMcEnum( AUDIO_CONFIG cfg ) +{ + if ( cfg == AUDIO_CONFIG_LS_CUSTOM ) + { + return IVAS_REND_SPEAKER_LAYOUT_CUSTOM; + } + else if ( cfg == AUDIO_CONFIG_MONO ) + { + return IVAS_REND_SPEAKER_LAYOUT_MONO; + } + else if ( cfg == AUDIO_CONFIG_STEREO ) + { + return IVAS_REND_SPEAKER_LAYOUT_STEREO; + } + else if ( cfg == AUDIO_CONFIG_5_1 ) + { + return IVAS_REND_SPEAKER_LAYOUT_5_1; + } + else if ( cfg == AUDIO_CONFIG_7_1 ) + { + return IVAS_REND_SPEAKER_LAYOUT_7_1; + } + else if ( cfg == AUDIO_CONFIG_5_1_2 ) + { + return IVAS_REND_SPEAKER_LAYOUT_5_1_2; + } + else if ( cfg == AUDIO_CONFIG_5_1_4 ) + { + return IVAS_REND_SPEAKER_LAYOUT_5_1_4; + } + else if ( cfg == AUDIO_CONFIG_7_1_4 ) + { + return IVAS_REND_SPEAKER_LAYOUT_7_1_4; + } + + return IVAS_REND_SPEAKER_LAYOUT_NONE; +} + +static AUDIO_CONFIG parseStrToAudioCfg( char *config_str ) +{ + char format[14]; + uint8_t numObjects; + + format[13] = '\0'; + strncpy( format, config_str, 13 ); + to_upper( format ); + + if ( ( strcmp( format, "MONO" ) == 0 ) || ( strcmp( format, "HOA0" ) == 0 ) || ( strcmp( format, "SBA0" ) == 0 ) ) + { + return AUDIO_CONFIG_MONO; + } + else if ( ( strcmp( format, "STEREO" ) == 0 ) || ( strcmp( format, "CICP2" ) == 0 ) ) + { + return AUDIO_CONFIG_STEREO; + } + else if ( ( strcmp( format, "FOA" ) == 0 ) || ( strcmp( format, "SBA1" ) == 0 ) ) + { + return AUDIO_CONFIG_FOA; + } + else if ( ( strcmp( format, "HOA2" ) == 0 ) || ( strcmp( format, "SBA2" ) == 0 ) ) + { + return AUDIO_CONFIG_HOA2; + } + else if ( ( strcmp( format, "HOA3" ) == 0 ) || ( strcmp( format, "SBA3" ) == 0 ) ) + { + return AUDIO_CONFIG_HOA3; + } + else if ( ( strcmp( format, "5_1" ) == 0 ) || ( strcmp( format, "CICP6" ) == 0 ) ) + { + return AUDIO_CONFIG_5_1; + } + else if ( ( strcmp( format, "7_1" ) == 0 ) || ( strcmp( format, "CICP12" ) == 0 ) ) + { + return AUDIO_CONFIG_7_1; + } + else if ( ( strcmp( format, "5_1_2" ) == 0 ) || ( strcmp( format, "CICP14" ) == 0 ) ) + { + return AUDIO_CONFIG_5_1_2; + } + else if ( ( strcmp( format, "5_1_4" ) == 0 ) || ( strcmp( format, "CICP16" ) == 0 ) ) + { + return AUDIO_CONFIG_5_1_4; + } + else if ( ( strcmp( format, "7_1_4" ) == 0 ) || ( strcmp( format, "CICP19" ) == 0 ) ) + { + return AUDIO_CONFIG_7_1_4; + } + else if ( strncmp( format, "ISM", 3 ) == 0 ) + { + parseUint8( &format[3], &numObjects ); + return AUDIO_CONFIG_ISM1 + numObjects - 1; + } + else if ( strncmp( format, "MASA", 4 ) == 0 ) + { + parseUint8( &format[4], &numObjects ); + return AUDIO_CONFIG_MASA1 + numObjects - 1; + } + else if ( strncmp( format, "META", 4 ) == 0 ) + { + return AUDIO_CONFIG_META; + } + else if ( strncmp( format, "EXT", 3 ) == 0 ) + { + return AUDIO_CONFIG_EXTERNAL; + } + else if ( strcmp( format, "BINAURAL_ROOM" ) == 0 ) + { + return AUDIO_CONFIG_BINAURAL_ROOM; + } + else if ( strcmp( format, "BINAURAL" ) == 0 ) + { + return AUDIO_CONFIG_BINAURAL; + } + else + { + /* check extension to see if it is a custom loudspeaker layout file */ + if ( strcmp( strrchr( config_str, '.' ), ".txt" ) == 0 ) + { + return AUDIO_CONFIG_LS_CUSTOM; + } + else + { + return AUDIO_CONFIG_INVALID; + } + } +} + +static int8_t parseInFormat( char **optionValues, CmdlnArgs *args ) +{ + int8_t success; /* flag */ + success = 1; + + args->inputFormat = parseStrToAudioCfg( optionValues[0] ); + switch ( args->inputFormat ) + { + case AUDIO_CONFIG_LS_CUSTOM: + args->numAudioObjects = 0; + parseCustomLayoutFile( optionValues[0], &args->inConfig.inSetupCustom ); + break; + case AUDIO_CONFIG_ISM1: + case AUDIO_CONFIG_MASA1: + args->numAudioObjects = 1; + break; + case AUDIO_CONFIG_ISM2: + case AUDIO_CONFIG_MASA2: + args->numAudioObjects = 2; + break; + case AUDIO_CONFIG_ISM3: + args->numAudioObjects = 3; + break; + case AUDIO_CONFIG_ISM4: + args->numAudioObjects = 4; + break; + case AUDIO_CONFIG_BINAURAL: + case AUDIO_CONFIG_BINAURAL_ROOM: + fprintf( stderr, "BINAURAL input is not supported!\n" ); + success = 0; + break; + case AUDIO_CONFIG_EXTERNAL: + fprintf( stderr, "No rendering possible for EXT format!\n" ); + success = 0; + default: + args->numAudioObjects = 0; + } + + for ( int16_t i = 0; i < args->numAudioObjects; i++ ) + { + if ( ( strcmp( optionValues[i + 1], "NULL" ) == 0 ) || ( strcmp( optionValues[i + 1], "null" ) == 0 ) ) + { + args->metaDataFiles[i][0] = '\0'; + } + else + { + strcpy( args->metaDataFiles[i], optionValues[i + 1] ); + convert_backslash( args->metaDataFiles[i] ); + } + } + + return success ? 0 : -1; +} + +static int8_t parseOutConfig( char *configString, IVAS_REND_OutputConfig *outConfig ) +{ + int8_t success; /* flag */ + success = 1; + + AUDIO_CONFIG outCfg; + + outCfg = parseStrToAudioCfg( configString ); + switch ( outCfg ) + { + case AUDIO_CONFIG_MONO: + case AUDIO_CONFIG_STEREO: + case AUDIO_CONFIG_5_1: + case AUDIO_CONFIG_7_1: + case AUDIO_CONFIG_5_1_2: + case AUDIO_CONFIG_5_1_4: + case AUDIO_CONFIG_7_1_4: + outConfig->speakerLayout = audioCfgToMcEnum( outCfg ); + break; + case AUDIO_CONFIG_LS_CUSTOM: + outConfig->speakerLayout = IVAS_REND_SPEAKER_LAYOUT_CUSTOM; + parseCustomLayoutFile( configString, &outConfig->outSetupCustom ); + case AUDIO_CONFIG_FOA: + case AUDIO_CONFIG_HOA2: + case AUDIO_CONFIG_HOA3: + outConfig->ambisonics = audioCfgToAmbiEnum( outCfg ); + break; + case AUDIO_CONFIG_BINAURAL: + case AUDIO_CONFIG_BINAURAL_ROOM: + outConfig->binaural = 1; + break; + case AUDIO_CONFIG_META: + /* handled by parseConfigFile() */ + break; + case AUDIO_CONFIG_ISM1: + case AUDIO_CONFIG_ISM2: + case AUDIO_CONFIG_ISM3: + case AUDIO_CONFIG_ISM4: + fprintf( stderr, "ISM is not a valid output format!\n" ); + success = 0; + break; + case AUDIO_CONFIG_MASA1: + case AUDIO_CONFIG_MASA2: + fprintf( stderr, "MASA is not a valid output format!\n" ); + success = 0; + break; + case AUDIO_CONFIG_EXTERNAL: + fprintf( stderr, "No rendering possible for EXT format!\n" ); + success = 0; + break; + default: + success = 0; + fprintf( stderr, "Invalid or bad config\n" ); + } + + return success ? 0 : -1; +} + +static int8_t parseDiegeticPan( char *value, float *noDiegeticPan ) +{ + int8_t success; + success = 1; + to_upper( value ); + + if ( ( strcmp( value, "CENTER" ) == 0 ) || ( strchr( value, 'C' ) != NULL ) ) + { + *noDiegeticPan = 0.f; + } + else if ( ( strcmp( value, "LEFT" ) == 0 ) || ( strchr( value, 'L' ) != NULL ) ) + { + *noDiegeticPan = -1.f; + } + else if ( ( strcmp( value, "RIGHT" ) == 0 ) || ( strchr( value, 'R' ) != NULL ) ) + { + *noDiegeticPan = 1.f; + } + else + { + *noDiegeticPan = (float) atof( value ); + + if ( *noDiegeticPan > 1.0f || *noDiegeticPan < -1.0f ) + { + fprintf( stderr, "Error: Incorrect value for panning option argument specified!\n\n" ); + success = 0; + } + } + return success ? 0 : -1; +} + +static int8_t parseOrientationTracking( char *value, int8_t *tracking_type ) +{ + int8_t success; + success = 1; + + to_upper( value ); + + if ( strcmp( value, "REF" ) == 0 ) + { + *tracking_type = IVAS_ORIENT_TRK_REF; + } + else if ( strcmp( value, "AVG" ) == 0 ) + { + *tracking_type = IVAS_ORIENT_TRK_AVG; + } + else + { + fprintf( stderr, "Error: Invalid orientation tracking type %s \n\n", value ); + success = 0; + } + + return success ? 0 : -1; +} + +static CmdlnArgs defaultArgs( void ) +{ + CmdlnArgs args; + + args.inputFilePath[0] = '\0'; + args.outputFilePath[0] = '\0'; + args.sampleRate = -1; + +#ifdef RAM_COUNTING_TOOL + /* Zero-initialize entire input and output config struct. This is only needed when RAM counting + is active - when freeing memory, it reads all bytes from these structs, which results in msan + failures without full initialization. Without RAM counting the uninitialized struct members will + not be accessed. */ + memset( &args.inConfig, 0, sizeof( args.inConfig ) ); + memset( &args.outConfig, 0, sizeof( args.outConfig ) ); +#endif + args.inConfig.inSetupCustom = NULL; + args.inConfig.numAudioObjects = 0; + args.inConfig.numAmbisonicsBuses = 0; + args.inConfig.numMultiChannelBuses = 0; + + args.outConfig.ambisonics = IVAS_REND_AMBISONICS_NONE; + args.outConfig.speakerLayout = IVAS_REND_SPEAKER_LAYOUT_NONE; + args.outConfig.outSetupCustom = NULL; + + args.outConfig.binaural = 0; + args.orientationTracking = IVAS_ORIENT_TRK_REF; + args.trajectoryFile[0] = '\0'; + args.customHrtfFile[0] = '\0'; + args.renderConfigFile[0] = '\0'; + + args.numAudioObjects = 0; + + args.noDiegeticPan = 0; + + args.neverDropLfe = false; + args.delayCompensationEnabled = true; + args.quietModeEnabled = false; + + for ( size_t i = 0; i < RENDERER_MAX_ISM_INPUTS; i++ ) + { + args.metaDataFiles[i][0] = '\0'; + } + + return args; +} + +typedef enum +{ + CmdLnOptionId_inputFile = 1, + CmdLnOptionId_inputFormat, + CmdLnOptionId_outputFile, + CmdLnOptionId_outputFormat, + CmdLnOptionId_sampleRate, + CmdLnOptionId_trajFile, + CmdLnOptionId_customHrtfFile, + CmdLnOptionId_renderConfigFile, + CmdLnOptionId_noDiegeticPan, + CmdLnOptionId_orientationTracking, + CmdLnOptionId_neverDropLfe, + CmdLnOptionId_noDelayCmp, + CmdLnOptionId_quietModeEnabled, +} CmdLnOptionId; + +static void parseOption( int32_t optionId, char **optionValues, int16_t numOptionValues, void *pOutputStruct ) +{ + CmdlnArgs *args = pOutputStruct; + + switch ( optionId ) + { + case CmdLnOptionId_inputFile: + assert( numOptionValues == 1 ); + strncpy( args->inputFilePath, optionValues[0], FILENAME_MAX ); + break; + case CmdLnOptionId_inputFormat: + assert( numOptionValues <= RENDERER_MAX_ISM_INPUTS + 1 ); + if ( parseInFormat( optionValues, args ) != 0 ) + { + fprintf( stderr, "Unknown input or bad config: %s\n", optionValues[0] ); + exit( -1 ); + } + break; + case CmdLnOptionId_outputFile: + assert( numOptionValues == 1 ); + strncpy( args->outputFilePath, optionValues[0], FILENAME_MAX ); + break; + case CmdLnOptionId_outputFormat: + assert( numOptionValues == 1 ); + if ( parseOutConfig( optionValues[0], &args->outConfig ) != 0 ) + { + fprintf( stderr, "Unknown output or bad config: %s\n", optionValues[0] ); + exit( -1 ); + } + break; + case CmdLnOptionId_sampleRate: + assert( numOptionValues == 1 ); + args->sampleRate = (int32_t) ( strtof( optionValues[0], NULL ) * 1000 ); + break; + case CmdLnOptionId_trajFile: + assert( numOptionValues == 1 ); + strncpy( args->trajectoryFile, optionValues[0], FILENAME_MAX ); + break; + case CmdLnOptionId_customHrtfFile: + assert( numOptionValues == 1 ); + strncpy( args->customHrtfFile, optionValues[0], FILENAME_MAX ); + break; + case CmdLnOptionId_renderConfigFile: + assert( numOptionValues == 1 ); + strncpy( args->renderConfigFile, optionValues[0], FILENAME_MAX ); + break; + case CmdLnOptionId_noDiegeticPan: + assert( numOptionValues == 1 ); + if ( parseDiegeticPan( optionValues[0], &args->noDiegeticPan ) != 0 ) + { + fprintf( stderr, "Unknown option for diegetic panning: %s\n", optionValues[0] ); + exit( -1 ); + } + break; + case CmdLnOptionId_orientationTracking: + assert( numOptionValues == 1 ); + if ( parseOrientationTracking( optionValues[0], &args->orientationTracking ) != 0 ) + { + fprintf( stderr, "Unknown option for orientation tracking: %s\n", optionValues[0] ); + exit( -1 ); + } + break; + case CmdLnOptionId_neverDropLfe: + assert( numOptionValues == 0 ); + args->neverDropLfe = true; + break; + case CmdLnOptionId_noDelayCmp: + assert( numOptionValues == 0 ); + args->delayCompensationEnabled = false; + break; + case CmdLnOptionId_quietModeEnabled: + assert( numOptionValues == 0 ); + args->quietModeEnabled = true; + break; + default: + /* Unreachable */ + break; + } +} + +static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) +{ + CmdLnParser_Option optionsToMatch[] = { + { + .id = CmdLnOptionId_inputFile, + .match = "input_file", + .matchShort = "i", + .description = "Path to the input file", + }, + { + .id = CmdLnOptionId_inputFormat, + .match = "input_format", + .matchShort = "if", + .description = "Format of input file", + }, + { + .id = CmdLnOptionId_outputFile, + .match = "output_file", + .matchShort = "o", + .isRequired = 1, + .description = "Path to the output file", + }, + { + .id = CmdLnOptionId_outputFormat, + .match = "output_format", + .matchShort = "of", + .description = "Output format to render.\nAlternatively, can be a custom loudspeaker layout file", + }, + { + .id = CmdLnOptionId_sampleRate, + .match = "sample_rate", + .matchShort = "fs", + .isRequired = 1, + .description = "Input sampling rate in kHz", + }, + { + .id = CmdLnOptionId_trajFile, + .match = "trajectory_file", + .matchShort = "tf", + .description = "Head rotation trajectory file", + }, + { + .id = CmdLnOptionId_customHrtfFile, + .match = "custom_hrtf", + .matchShort = "hrtf", + .description = "Custom HRTF file for binaural rendering", + }, + { + .id = CmdLnOptionId_renderConfigFile, + .match = "render_config", + .matchShort = "rc", + .description = "Renderer configuration file", + }, + { + .id = CmdLnOptionId_noDiegeticPan, + .match = "no_diegetic_pan", + .matchShort = "ndl", + .description = "Panning mono no dietic sound to stereo -1<= pan <= 1\nleft or l or 1->left, right or r or -1->right, center or c or 0 ->middle", + }, + { + .id = CmdLnOptionId_orientationTracking, + .match = "tracking_type", + .matchShort = "otr", + .description = "Head orientation tracking type: 'ref' or 'avg' (only for binaural rendering)", + }, + { + .id = CmdLnOptionId_neverDropLfe, + .match = "neverDropLfe", + .matchShort = "ndl", + .description = "[flag] If set, renderer tries to render LFE into other channels in an optimal way when rendering to configs w/o LFE", + }, + { + .id = CmdLnOptionId_noDelayCmp, + .match = "no_delay_cmp", + .matchShort = "ndc", + .description = "[flag] Turn off delay compensation", + }, + { + .id = CmdLnOptionId_quietModeEnabled, + .match = "quiet", + .matchShort = "q", + .description = "[flag] Limit printouts to terminal", + }, + }; + + CmdlnArgs parsedArgs = defaultArgs(); + int32_t numOptions = sizeof( optionsToMatch ) / sizeof( CmdLnParser_Option ); + + if ( CmdLnParser_parseArgs( argc, argv, optionsToMatch, numOptions, &parsedArgs, parseOption ) != 0 ) + { + /* Error printout handled internally by CmdLnParser_parseArgs() */ + exit( -1 ); + } + + return parsedArgs; +} + + +IsmPositionProvider *IsmPositionProvider_open( void ) +{ + IsmPositionProvider *ipp; + uint32_t i; + + ipp = (IsmPositionProvider *) count_malloc( sizeof( IsmPositionProvider ) ); + ipp->frameCounter = 0; + ipp->numObjects = 0; + + for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) + { + ipp->ismReaders[i] = NULL; + ipp->positions[i] = NULL; + ipp->positionDurations[i] = NULL; + ipp->currentPositionIdxs[i] = 0; + ipp->durationCounters[i] = 0; + } + + return ipp; +} + +void getMetadataFromFileReader( + IsmFileReader *ismReader, + IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer, + uint32_t objIdx ) +{ + IVAS_ISM_METADATA ismMetadata; + ivas_error error; + + if ( ( error = IsmFileReader_readNextFrame( ismReader, &ismMetadata ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nError (%s) while reading ism metadata from: %s\n\n", ivas_error_to_string( error ), IsmFileReader_getFilePath( ismReader ) ); + exit( -1 ); + } + + objectMetadataBuffer->positions[objIdx].azimuth = ismMetadata.azimuth; + objectMetadataBuffer->positions[objIdx].elevation = ismMetadata.elevation; +} + +void readFromShorthandMetadata( IsmPositionProvider *positionProvider, + IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer, + uint32_t objIdx ) +{ + uint32_t preUpdatePositionIdx; + uint32_t postUpdatePositionIdx; + + preUpdatePositionIdx = positionProvider->currentPositionIdxs[objIdx]; + + if ( positionProvider->durationCounters[objIdx] == positionProvider->positionDurations[objIdx][preUpdatePositionIdx] ) + { + positionProvider->durationCounters[objIdx] = 0; + positionProvider->currentPositionIdxs[objIdx] = ( positionProvider->currentPositionIdxs[objIdx] + 1 ) % positionProvider->numPositions[objIdx]; + } + + ++positionProvider->durationCounters[objIdx]; + + postUpdatePositionIdx = positionProvider->currentPositionIdxs[objIdx]; + + objectMetadataBuffer->positions[objIdx] = positionProvider->positions[objIdx][postUpdatePositionIdx]; +} + +void IsmPositionProvider_getNextFrame( + IsmPositionProvider *positionProvider, + IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer ) +{ + uint32_t objIdx; + + objectMetadataBuffer->numObjects = positionProvider->numObjects; + + for ( objIdx = 0; objIdx < positionProvider->numObjects; ++objIdx ) + { + if ( positionProvider->ismReaders[objIdx] != NULL ) + { + getMetadataFromFileReader( positionProvider->ismReaders[objIdx], objectMetadataBuffer, objIdx ); + } + else + { + readFromShorthandMetadata( positionProvider, objectMetadataBuffer, objIdx ); + } + + /* Wrap azimuth to lie within (-180, 180] range */ + while ( objectMetadataBuffer->positions[objIdx].azimuth < 0.0f ) + { + objectMetadataBuffer->positions[objIdx].azimuth += 360.0f; + } + while ( objectMetadataBuffer->positions[objIdx].azimuth >= 360.0f ) + { + objectMetadataBuffer->positions[objIdx].azimuth -= 360.0f; + } + + /* Clamp elevation to lie within [-90, 90] range (can't be wrapped easily) */ + objectMetadataBuffer->positions[objIdx].elevation = min( max( objectMetadataBuffer->positions[objIdx].elevation, -90 ), 90 ); + } + + ++positionProvider->frameCounter; +} + +void IsmPositionProvider_close( IsmPositionProvider *positionProvider ) +{ + uint32_t i; + + if ( positionProvider == NULL ) + { + assert( !"Can't close IsmPositionProvider - pointer is NULL" ); + } + + for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) + { + if ( positionProvider->ismReaders[i] != NULL ) + { + IsmFileReader_close( &positionProvider->ismReaders[i] ); + } + + if ( positionProvider->positions[i] != NULL ) + { + count_free( positionProvider->positions[i] ); + } + + if ( positionProvider->positionDurations[i] != NULL ) + { + count_free( positionProvider->positionDurations[i] ); + } + } + + count_free( positionProvider ); +} + +static void splitConfigFile( const char *mdfFilePath, + char *metadataString, + uint32_t *metadataStringLength, + char *wavFileName, + uint32_t *wavFileNameLength ) +{ + FILE *file; + uint32_t bufferlength; + char wavLine[FILENAME_MAX]; + uint32_t currentPositionIdxs; + uint32_t mdlength; + + memset( metadataString, 0, *metadataStringLength ); + memset( wavFileName, 0, (int16_t) *wavFileNameLength ); + + file = fopen( mdfFilePath, "rb" ); + if ( !file ) + { + fprintf( stderr, "Couldn't open metadata file %s\n", mdfFilePath ); + exit( -1 ); + } + + fseek( file, 0, SEEK_END ); + bufferlength = ftell( file ); + fseek( file, 0, SEEK_SET ); + + if ( fgets( wavLine, (int) *wavFileNameLength, file ) == NULL ) + { + fprintf( stderr, "Error reading metadata\n" ); + exit( -1 ); + } + currentPositionIdxs = ftell( file ); + if ( *wavFileNameLength < currentPositionIdxs ) + { + assert( !"Couldn't read wavFileName, string buffer too small" ); + } + if ( !sscanf( wavLine, "%s", wavFileName ) ) + { + fprintf( stderr, "Error reading metadata\n" ); + exit( -1 ); + } + *wavFileNameLength = strlen( wavFileName ); + + mdlength = bufferlength - currentPositionIdxs; + /* "+1" for null termination */ + if ( *metadataStringLength + 1 < mdlength ) + { + assert( !"Couldn't read metadata string, string buffer too small" ); + } + + fread( metadataString, 1, mdlength, file ); + metadataString[mdlength] = '\0'; + *metadataStringLength = mdlength + 1; + + fclose( file ); +} + +/* r: pointer to character following last found delimiter */ +static char *readNextMetadataChunkFrom( char *start_char, char *line, const char *delimiter ) +{ + char *token; + + /* start_char can be NULL - it's used to continue parsing with strtok */ + assert( line != NULL && delimiter != NULL && "unexpected NULL ptr given to readNextMetadataChunkFrom()" ); + + token = strtok( start_char, delimiter ); + + /* End of string reached */ + if ( token == NULL ) + { + /* Clear `line` from previous contents and return NULL */ + line[0] = '\0'; + return NULL; + } + + strcpy( line, token ); + + return token + strlen( token ) + 1; +} + +/* r: pointer to character following last found delimiter */ +static char *readNextMetadataChunk( char *line, const char *delimiter ) +{ + return readNextMetadataChunkFrom( NULL, line, delimiter ); +} + +static void parseUint8( const char *line, uint8_t *ret ) +{ + char *ptr; + ptr = NULL; + + *ret = (uint8_t) strtol( line, &ptr, 10 ); + if ( ptr == NULL || *ptr != '\0' ) + { + fprintf( stderr, "Cannot parse string \"%s\" as an integer value\n", line ); + exit( -1 ); + } +} + +static void parseUint16( const char *line, uint16_t *ret ) +{ + char *ptr; + ptr = NULL; + + *ret = (uint16_t) strtol( line, &ptr, 10 ); + if ( ptr == NULL || *ptr != '\0' ) + { + fprintf( stderr, "Cannot parse string \"%s\" as an integer value\n", line ); + exit( -1 ); + } +} + +static int8_t parseUint32( const char *line, uint32_t *ret ) +{ + char *ptr; + ptr = NULL; + + *ret = strtol( line, &ptr, 10 ); + if ( ptr == NULL || *ptr != '\0' ) + { + return -1; + } + + return 0; +} + +static void parseOptionalInputValues( + char *line, + float *gain_dB ) +{ + char *parse_pos; + char *key; + char *value; + char *endptr; + + endptr = NULL; + + /* Set default values, in case some values are not specified */ + *gain_dB = 0.f; + + /* Save parsing position - will have to be passed to strtok to resume parsing after using strtok with non-NULL value below */ + parse_pos = readNextMetadataChunk( line, "\n" ); + + /* Look for optional metadata until end of string or next input identifier is found */ + while ( parse_pos != NULL && strcmp( line, "MC" ) != 0 && strcmp( line, "SBA" ) != 0 && strcmp( line, "ISM" ) != 0 ) + { + key = strtok( line, ":" ); + value = strtok( NULL, "\n" ); + + if ( strcmp( key, "gain_dB" ) == 0 ) + { + *gain_dB = (float) strtod( value, &endptr ); + + if ( *endptr != '\0' ) + { + fprintf( stderr, "Cannot parse string string \"%s\" as a float value\n", value ); + exit( -1 ); + } + } + else + { + fprintf( stderr, "Unsupported optional key: %s\n", key ); + exit( -1 ); + } + + parse_pos = readNextMetadataChunkFrom( parse_pos, line, "\n" ); + } +} + +static void parseObjectPosition( char *line, + IVAS_REND_AudioObjectPosition *position, + uint16_t *positionDuration ) +{ + char *endptr; + + readNextMetadataChunk( line, "," ); + *positionDuration = (uint16_t) strtol( line, &endptr, 10 ); + + if ( *endptr != '\0' ) + { + fprintf( stderr, "Error reading metadata\n" ); + exit( -1 ); + } + + readNextMetadataChunk( line, "," ); + position->azimuth = strtof( line, &endptr ); + + if ( *endptr != '\0' ) + { + fprintf( stderr, "Error reading metadata\n" ); + exit( -1 ); + } + + readNextMetadataChunk( line, "\n" ); + position->elevation = strtof( line, &endptr ); + if ( *endptr != '\0' ) + { + fprintf( stderr, "Error reading metadata\n" ); + exit( -1 ); + } +} + +static void parseIsm( + char *line, + char *inDir, + IVAS_REND_InputConfig *inConfig, + IsmPositionProvider *positionProvider, + int32_t idx ) +{ + uint32_t numberOfObjectPositionsToRead; + uint32_t i; + + readNextMetadataChunk( line, "\n" ); + parseUint16( line, &inConfig->audioObjects[idx].inputChannelIndex ); + --inConfig->audioObjects[idx].inputChannelIndex; /* Convert from 1-indexing */ + + readNextMetadataChunk( line, "\n" ); + + /* Try to interpret line as number of positions to read */ + if ( parseUint32( line, &numberOfObjectPositionsToRead ) == 0 ) + { + positionProvider->numPositions[idx] = numberOfObjectPositionsToRead; + positionProvider->positions[idx] = count_calloc( numberOfObjectPositionsToRead, sizeof( IVAS_REND_AudioObjectPosition ) ); + positionProvider->positionDurations[idx] = count_calloc( numberOfObjectPositionsToRead, sizeof( uint16_t ) ); + + for ( i = 0; i < numberOfObjectPositionsToRead; ++i ) + { + parseObjectPosition( line, &positionProvider->positions[idx][i], &positionProvider->positionDurations[idx][i] ); + } + } + else /* If not a number, it is a relative path from main metadata file to a metadata file */ + { + char fullpath[FILENAME_MAX]; + *fullpath = '\0'; + strncat( fullpath, inDir, strlen( inDir ) ); + strncat( fullpath, line, sizeof( fullpath ) - strlen( fullpath ) - 1 ); + if ( ( positionProvider->ismReaders[idx] = IsmFileReader_open( fullpath ) ) == NULL ) + { + fprintf( stderr, "Error: ISM input metadata file %s could not be opened\n", line ); + exit( -1 ); + } + } + + /* Read optional values */ + parseOptionalInputValues( line, &inConfig->audioObjects[idx].gain_dB ); +} + +static void parseSba( char *line, + IVAS_REND_InputConfig *inConfig, + int32_t idx ) +{ + uint8_t ambiOrder; + + readNextMetadataChunk( line, "\n" ); + parseUint8( line, &inConfig->ambisonicsBuses[idx].inputChannelIndex ); + --inConfig->ambisonicsBuses[idx].inputChannelIndex; /* Convert from 1-indexing */ + + readNextMetadataChunk( line, "\n" ); + parseUint8( line, &ambiOrder ); + inConfig->ambisonicsBuses[idx].ambisonicsConfig = ambisonicsOrderToEnum( ambiOrder ); + + /* Read optional values */ + parseOptionalInputValues( line, &inConfig->ambisonicsBuses[idx].gain_dB ); +} + +static void parseMc( char *line, + IVAS_REND_InputConfig *inConfig, + int32_t idx ) +{ + AUDIO_CONFIG cfg; + + readNextMetadataChunk( line, "\n" ); + parseUint8( line, &inConfig->multiChannelBuses[idx].inputChannelIndex ); + --inConfig->multiChannelBuses[idx].inputChannelIndex; /* Convert from 1-indexing */ + + readNextMetadataChunk( line, "\n" ); + cfg = parseStrToAudioCfg( line ); + if ( cfg == AUDIO_CONFIG_LS_CUSTOM ) + { + parseCustomLayoutFile( line, &inConfig->inSetupCustom ); + } + else + { + inConfig->multiChannelBuses[idx].speakerLayout = audioCfgToMcEnum( cfg ); + } + + /* Read optional values */ + parseOptionalInputValues( line, &inConfig->multiChannelBuses[idx].gain_dB ); +} + +static void parseCustomLayoutFile( + char *filePath, + IVAS_LSSETUP_CUSTOM_HANDLE *hLsSetupCustom ) +{ + int16_t i, is_planar; + + LsCustomFileReader *hLsCustomReader = NULL; + IVAS_CUSTOM_LS_DATA hLsCustomData; + + IVAS_REND_OpenCustomLayout( hLsSetupCustom ); + CustomLsReader_open( filePath, &hLsCustomReader ); + if ( CustomLsFileReading( hLsCustomReader, &hLsCustomData ) != LS_CUSTOM_FILEREADER_NO_ERROR ) + { + fprintf( stderr, "Error while reading custom loudspeaker layout file\n" ); + exit( -1 ); + } + + ( *hLsSetupCustom )->num_spk = hLsCustomData.num_spk; + mvr2r( hLsCustomData.azimuth, ( *hLsSetupCustom )->ls_azimuth, hLsCustomData.num_spk ); + mvr2r( hLsCustomData.elevation, ( *hLsSetupCustom )->ls_elevation, hLsCustomData.num_spk ); + + /* Set planar flag */ + is_planar = 1; + for ( i = 0; i < hLsCustomData.num_spk; i++ ) + { + if ( is_planar && ( *hLsSetupCustom )->ls_elevation[i] != 0.0f ) + { + is_planar = 0; + } + } + ( *hLsSetupCustom )->is_planar_setup = is_planar; + + /* Loudspeaker LFE */ + ( *hLsSetupCustom )->num_lfe = hLsCustomData.num_lfe; + mvs2s( hLsCustomData.lfe_idx, ( *hLsSetupCustom )->lfe_idx, hLsCustomData.num_lfe ); + + CustomLsReader_close( &hLsCustomReader ); +} + +static void parseMetadata( + char *metadataString, + char *inDir, + IVAS_REND_InputConfig *inConfig, + IsmPositionProvider *positionProvider ) +{ + char line[RENDERER_MAX_METADATA_LINE_LENGTH]; + char *delimiter; + char *token; + uint8_t totalNumberOfAudioObjects; + uint8_t counterChannelAudioObjects; + uint8_t counterAmbisonicsAudioObjects; + uint8_t counterMonoAudioObjects; + uint8_t num_parsed_inputs; + + delimiter = "\n"; + + token = strtok( metadataString, delimiter ); + if ( token == NULL ) + { + fprintf( stderr, "Unexpected metadata format\n" ); + exit( -1 ); + } + if ( !sscanf( token, "%s", line ) ) + { + fprintf( stderr, "Unexpected metadata format\n" ); + exit( -1 ); + } + + parseUint8( line, &totalNumberOfAudioObjects ); + if ( totalNumberOfAudioObjects <= 0 ) + { + fprintf( stderr, "Invalid metadata: number of inputs should be > 0\n" ); + exit( -1 ); + } + + num_parsed_inputs = 0; + counterChannelAudioObjects = 0; + counterAmbisonicsAudioObjects = 0; + counterMonoAudioObjects = 0; + + readNextMetadataChunk( line, delimiter ); + + while ( num_parsed_inputs < totalNumberOfAudioObjects ) + { + /* `line` will already contain the identifier ("MC", "SBA" or "ISM") after previous iteration */ + if ( strcmp( line, "MC" ) == 0 ) + { + ++counterChannelAudioObjects; + if ( counterChannelAudioObjects > RENDERER_MAX_MC_INPUTS ) + { + fprintf( stderr, "Metadata exceeds the supported number of MC inputs\n" ); + exit( -1 ); + } + parseMc( line, inConfig, counterChannelAudioObjects - 1 ); + } + else if ( strcmp( line, "SBA" ) == 0 ) + { + ++counterAmbisonicsAudioObjects; + if ( counterAmbisonicsAudioObjects > RENDERER_MAX_SBA_INPUTS ) + { + fprintf( stderr, "Metadata exceeds the supported number of SBA inputs\n" ); + exit( -1 ); + } + parseSba( line, inConfig, counterAmbisonicsAudioObjects - 1 ); + } + else if ( strcmp( line, "ISM" ) == 0 ) + { + ++counterMonoAudioObjects; + if ( counterMonoAudioObjects > RENDERER_MAX_ISM_INPUTS ) + { + fprintf( stderr, "Metadata exceeds the supported number of ISM inputs\n" ); + exit( -1 ); + } + parseIsm( line, inDir, inConfig, positionProvider, counterMonoAudioObjects - 1 ); + } + else if ( line[0] == '\0' ) + { + fprintf( stderr, "Metadata string too short - expected %d inputs, found %d.\n", totalNumberOfAudioObjects, num_parsed_inputs ); + exit( -1 ); + } + else + { + fprintf( stderr, "Unexpected metadata identifier\n" ); + exit( -1 ); + } + + ++num_parsed_inputs; + } + + inConfig->numAudioObjects = counterMonoAudioObjects; + inConfig->numAmbisonicsBuses = counterAmbisonicsAudioObjects; + inConfig->numMultiChannelBuses = counterChannelAudioObjects; + positionProvider->numObjects = counterMonoAudioObjects; + + /* check for trailing text */ + token = strtok( NULL, delimiter ); + if ( token != NULL && sscanf( token, "%s", line ) ) + { + fprintf( stderr, "Trailing text in metadata file\n" ); + exit( -1 ); + } +} + +void parseConfigFile( char *path, char *audioFilePath, IVAS_REND_InputConfig *inConfig, IsmPositionProvider *positionProvider ) +{ + uint32_t inAudioFilePathLen; + char inAudioFilePath[FILENAME_MAX]; + uint32_t mtdStrLen; + char mtdStr[RENDERER_MAX_METADATA_LENGTH]; + char inDir[FILENAME_MAX]; + char *lastSlash = NULL; + + inAudioFilePathLen = FILENAME_MAX; + mtdStrLen = RENDERER_MAX_METADATA_LENGTH; + splitConfigFile( path, + mtdStr, + &mtdStrLen, + inAudioFilePath, + &inAudioFilePathLen ); + + remove_cr( mtdStr ); + convert_backslash( inAudioFilePath ); + + /* Trim config file path to get path to the dir containing it */ + lastSlash = strrchr( path, SEP_FOLDER ); + *inDir = '\0'; + if ( lastSlash != NULL ) + { + strncat( inDir, path, ( lastSlash - path + 1 ) ); + } + + /* Append audio file path (relative to config file location) + * to config file location path to get full absolute path */ + strcpy( audioFilePath, inDir ); + strncat( audioFilePath, inAudioFilePath, inAudioFilePathLen ); + + parseMetadata( mtdStr, inDir, inConfig, positionProvider ); +} + +static void convert_backslash( char *str ) +{ + int i, len; + + /* check that all backslashes are correct on the given platform */ + len = strlen( str ); + + for ( i = 0; i < len; i++ ) + { +#ifdef _WIN32 + if ( str[i] == '/' ) + { + str[i] = '\\'; + } +#else + if ( str[i] == '\\' ) + { + str[i] = '/'; + } +#endif + } + + return; +} + +static void remove_cr( char *str ) +{ + char *pos; + + /* remove all \r characters from the string */ + pos = strchr( str, '\r' ); + while ( pos != NULL ) + { + strcpy( pos, pos + 1 ); + pos = strchr( pos, '\r' ); + } + + return; +} diff --git a/ci/build_all_linux.sh b/ci/build_all_linux.sh index 65ea1461fa..6dcfd92ad9 100755 --- a/ci/build_all_linux.sh +++ b/ci/build_all_linux.sh @@ -9,8 +9,6 @@ fi make clean && make all -j # build unittests make unittests -j -# build prerenderer -make -C scripts/prerenderer -j # build standalone TD object renderer make -C scripts/td_object_renderer/object_renderer_standalone -j diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index fde64164c9..b9fb27f5e5 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -107,6 +107,11 @@ typedef enum AUDIO_CONFIG_ISM2, /* ISM2 */ AUDIO_CONFIG_ISM3, /* ISM3 */ AUDIO_CONFIG_ISM4, /* ISM4 */ +#ifdef EXT_RENDERER /* TODO tmu : temporary, or use something like IVAS_ENC input format */ + AUDIO_CONFIG_MASA1, /* MASA1 */ + AUDIO_CONFIG_MASA2, /* MASA2 */ + AUDIO_CONFIG_META, /* scene description */ +#endif AUDIO_CONFIG_EXTERNAL /* external renderer */ } AUDIO_CONFIG; @@ -1148,7 +1153,11 @@ typedef enum *----------------------------------------------------------------------------------*/ #define MC_LS_SETUP_BITS 3 /* number of bits for writing the MC LS configuration */ +#ifdef EXT_RENDERER +#define LS_SETUP_CONVERSION_NUM_MAPPINGS 37 /* number of mappings for LS setup conversion */ +#else #define LS_SETUP_CONVERSION_NUM_MAPPINGS 35 /* number of mappings for LS setup conversion */ +#endif typedef enum { diff --git a/lib_com/options.h b/lib_com/options.h index a51b60d748..f1d1978e09 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -156,7 +156,8 @@ #define FIX_I54_LS_CONVERSION /* FhG: fix incorrect downmix matrix for 5_1_4 to 5_1_2 and upmix matrix for 7_1 to 7_1_4 */ #define FIX_I25_FBE_FB_BITS /* issue 25: properly skip reading of TBE FB bits when decoder output sampling rate is not 48 kHz */ #define ORDER_BITS_ADDITION /* issue 14: Transmit SBA order and planar bits at all bitrates */ - +#define EXT_RENDERER /* FhG: external renderer library and standalone application */ +#define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_rom_dec.c b/lib_dec/ivas_rom_dec.c index baf77c1984..3a08c33e79 100644 --- a/lib_dec/ivas_rom_dec.c +++ b/lib_dec/ivas_rom_dec.c @@ -512,418 +512,11 @@ const int16_t sba_map_tc[8] = 0, 1, 2, 3, 4, 8, 9, 15 }; -/*----------------------------------------------------------------------------------* - * LS Renderer ROM tables - *----------------------------------------------------------------------------------*/ - - /* All matrices are stored with dimensions nchan_in x nchan_out */ - /* Downmix matrices */ -const float ls_conversion_cicpX_mono[12][1] = -{ - {1.00000000f}, - {1.00000000f}, - {0.70710677f}, - {0.70710677f}, - {0.79999995f}, - {0.79999995f}, - {0.79999995f}, - {0.79999995f}, - {0.849999964f}, - {0.849999964f}, - {0.849999964f}, - {0.849999964f} -}; - -const float ls_conversion_cicpX_stereo[12][2] = -{ - {1.00000000f, 0.00000000f}, - {0.00000000f, 1.00000000f}, - {0.70710677f, 0.70710677f}, - {0.70710677f, 0.70710677f}, - {0.79999995f, 0.00000000f}, - {0.00000000f, 0.79999995f}, - {0.79999995f, 0.00000000f}, - {0.00000000f, 0.79999995f}, - {0.849999964f, 0.000000000f}, - {0.000000000f, 0.849999964f}, - {0.849999964f, 0.000000000f}, - {0.000000000f, 0.849999964f} -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp6[] = -{ - /* First row indicates the number of non-zero elements */ - {8, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.000000000f}, - {7, 1.000000000f}, - {14, 1.000000000f}, - {21, 1.000000000f}, - {28, 1.000000000f}, - {35, 1.000000000f}, - {40, 1.000000000f}, - {47, 1.000000000f} -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp6[] = -{ - /* First row indicates the number of non-zero elements */ - {8, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.000000000f}, - {7, 1.000000000f}, - {14, 1.000000000f}, - {21, 1.000000000f}, - {28, 1.000000000f}, - {35, 1.000000000f}, - {36, 0.849999964f}, - {43, 0.849999964f} -}; - -#ifdef FIX_I54_LS_CONVERSION -const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp12[] = -{ - /* First row indicates the number of non-zero elements */ - {8, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.000000000f}, - {9, 1.000000000f}, - {18, 1.000000000f}, - {27, 1.000000000f}, - {36, 1.000000000f}, - {45, 1.000000000f}, - {48, 0.849999964f}, - {57, 0.849999964f} -}; -#endif - -const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp6[] = -{ - /* First row indicates the number of non-zero elements */ - {10, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.000000000f}, - {7, 1.000000000f}, - {14, 1.000000000f}, - {21, 1.000000000f}, - {28, 1.000000000f}, - {35, 1.000000000f}, - {36, 0.849999964f}, - {43, 0.849999964f}, - {52, 0.849999964f}, - {59, 0.849999964f} -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp12[] = -{ - /* First row indicates the number of non-zero elements */ - {10, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.000000000f}, - {9, 1.000000000f}, - {18, 1.000000000f}, - {27, 1.000000000f}, - {36, 1.000000000f}, - {45, 1.000000000f}, - {48, 0.849999964f}, - {57, 0.849999964f}, - {68, 0.849999964f}, - {77, 0.849999964f} - -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp14[] = -{ - /* First row indicates the number of non-zero elements */ - {10, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ -#ifdef FIX_I54_LS_CONVERSION - {0, 1.000000000f}, - {9, 1.000000000f}, - {18, 1.000000000f}, - {27, 1.000000000f}, - {36, 1.000000000f}, - {45, 1.000000000f}, - {54, 1.000000000f}, - {63, 1.000000000f}, - {68, 0.849999964f}, - {77, 0.849999964f}, -#else - {0, 1.000000000f}, - {11, 1.000000000f}, - {22, 1.000000000f}, - {33, 1.000000000f}, - {44, 1.000000000f}, - {48, 0.849999964f}, - {55, 1.000000000f}, - {59, 0.849999964f}, - {66, 1.000000000f}, - {77, 1.000000000f}, -#endif -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp6[] = -{ - /* First row indicates the number of non-zero elements */ - {14, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.000000000f}, - {7, 1.000000000f}, - {14, 1.000000000f}, - {21, 1.000000000f}, - {28, 1.000000000f}, - {35, 1.000000000f}, - {36, 0.367322683f}, - {40, 0.930093586f}, - {43, 0.367322683f}, - {47, 0.930093586f}, - {48, 0.849999964f}, - {55, 0.849999964f}, - {64, 0.849999964f}, - {71, 0.849999964f} -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp12[] = -{ - /* First row indicates the number of non-zero elements */ - {14, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.000000000f}, - {9, 1.000000000f}, - {18, 1.000000000f}, - {27, 1.000000000f}, - {38, 1.000000000f}, - {47, 1.000000000f}, - {48, 0.367322683f}, - {52, 0.930093586f}, - {57, 0.367322683f}, - {61, 0.930093586f}, - {64, 0.849999964f}, - {73, 0.849999964f}, - {84, 0.849999964f}, - {93, 0.849999964f} -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp14[] = -{ - /* First row indicates the number of non-zero elements */ - {14, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.000000000f}, - {9, 1.000000000f}, - {18, 1.000000000f}, - {27, 1.000000000f}, - {36, 1.000000000f}, - {45, 1.000000000f}, - {48, 0.367322683f}, - {52, 0.930093586f}, - {57, 0.367322683f}, - {61, 0.930093586f}, - {70, 1.000000000f}, - {79, 1.000000000f}, - {84, 0.849999964f}, - {93, 0.849999964f} -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp16[] = -{ - /* First row indicates the number of non-zero elements */ - {14, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.000000000f}, - {11, 1.000000000f}, - {22, 1.000000000f}, - {33, 1.000000000f}, - {44, 1.000000000f}, - {55, 1.000000000f}, - {60, 0.367322683f}, - {64, 0.930093586f}, - {71, 0.367322683f}, - {75, 0.930093586f}, - {86, 1.000000000f}, - {97, 1.000000000f}, - {108, 1.000000000f}, - {119, 1.000000000f} -}; - -/* Upmix matrices */ -const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp14[] = -{ - /* First row indicates the number of non-zero elements */ - {8, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.0f}, - {9, 1.0f}, - {18, 1.0f}, - {27, 1.0f}, - {36, 1.0f}, - {45, 1.0f}, - {52, 1.0f}, - {61, 1.0f} -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp16[] = -{ - /* First row indicates the number of non-zero elements */ - {8, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.0f}, - {11, 1.0f}, - {22, 1.0f}, - {33, 1.0f}, - {44, 1.0f}, - {55, 1.0f}, - {64, 1.0f}, - {75, 1.0f} -}; - -#ifdef FIX_I54_LS_CONVERSION -const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp19[] = -{ - /* First row indicates the number of non-zero elements */ - {8, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.0f}, - {13, 1.0f}, - {26, 1.0f}, - {39, 1.0f}, - {54, 1.0f}, - {67, 1.0f}, - {76, 1.0f}, - {89, 1.0f} -}; -#endif - -const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp19[] = -{ - /* First row indicates the number of non-zero elements */ - {8, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.0f}, - {13, 1.0f}, - {26, 1.0f}, - {39, 1.0f}, - {52, 1.0f}, - {65, 1.0f}, - {80, 1.0f}, - {93, 1.0f} -}; - -const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp19[] = -{ - /* First row indicates the number of non-zero elements */ - {10, 0.0f}, - /* Index of non-zero element, value of non-zero element*/ - {0, 1.0f}, - {13, 1.0f}, - {26, 1.0f}, - {39, 1.0f}, - {52, 1.0f}, - {65, 1.0f}, - {80, 1.0f}, - {93, 1.0f}, - {106, 1.0f}, - {119, 1.0f} -}; - -/* - * Mapping table of input config : output config with corresponding matrix - * NULL indicates a 1:1 mapping of existing input channels to output channels ( used for upmix ) - */ - -const LS_CONVERSION_MAPPING ls_conversion_mapping[LS_SETUP_CONVERSION_NUM_MAPPINGS] = -{ - /* Dowmix mappings - NULL is a special case for MONO / STEREO downmix */ - {AUDIO_CONFIG_5_1, AUDIO_CONFIG_MONO, NULL}, - {AUDIO_CONFIG_7_1, AUDIO_CONFIG_MONO, NULL}, - {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_MONO, NULL}, - {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_MONO, NULL}, - {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_MONO, NULL}, - - {AUDIO_CONFIG_5_1, AUDIO_CONFIG_STEREO, NULL}, - {AUDIO_CONFIG_7_1, AUDIO_CONFIG_STEREO, NULL}, - {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_STEREO, NULL}, - {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_STEREO, NULL}, - {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_STEREO, NULL}, - - {AUDIO_CONFIG_7_1, AUDIO_CONFIG_5_1, ls_conversion_cicp12_cicp6}, - - {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_5_1, ls_conversion_cicp14_cicp6}, -#ifdef FIX_I54_LS_CONVERSION - {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_7_1, ls_conversion_cicp14_cicp12}, -#else - {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_7_1, ls_conversion_cicp14_cicp6}, -#endif - - {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_5_1, ls_conversion_cicp16_cicp6}, - {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_7_1, ls_conversion_cicp16_cicp12}, - {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_5_1_2, ls_conversion_cicp16_cicp14}, - - {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_5_1, ls_conversion_cicp19_cicp6}, - {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_7_1, ls_conversion_cicp19_cicp12}, - {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_5_1_2, ls_conversion_cicp19_cicp14}, - {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_5_1_4, ls_conversion_cicp19_cicp16}, - - /* Upmix mappings - NULL implies a 1:1 upmix */ - {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_5_1, NULL}, - {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_7_1, NULL}, - {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_5_1_2, NULL}, - {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_5_1_4, NULL}, - {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_7_1_4, NULL}, - - {AUDIO_CONFIG_5_1, AUDIO_CONFIG_7_1, NULL}, - {AUDIO_CONFIG_5_1, AUDIO_CONFIG_5_1_2, NULL}, - {AUDIO_CONFIG_5_1, AUDIO_CONFIG_5_1_4, NULL}, - {AUDIO_CONFIG_5_1, AUDIO_CONFIG_7_1_4, NULL}, - - {AUDIO_CONFIG_7_1, AUDIO_CONFIG_5_1_2, ls_conversion_cicp12_cicp14}, - {AUDIO_CONFIG_7_1, AUDIO_CONFIG_5_1_4, ls_conversion_cicp12_cicp16}, -#ifdef FIX_I54_LS_CONVERSION - {AUDIO_CONFIG_7_1, AUDIO_CONFIG_7_1_4, ls_conversion_cicp12_cicp19}, -#else - {AUDIO_CONFIG_7_1, AUDIO_CONFIG_7_1_4, NULL}, -#endif - - {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_5_1_4, NULL}, - {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_7_1_4, ls_conversion_cicp14_cicp19}, - - {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_7_1_4, ls_conversion_cicp16_cicp19}, -}; - /*----------------------------------------------------------------------------------* * FASTCONV and PARAMETRIC binaural renderer ROM tables *----------------------------------------------------------------------------------*/ -const float dmxmtx[BINAURAL_CHANNELS][11] = -{ - { 1.0f, 0.0f, 0.70709997f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f }, - { 0.0f, 1.0f, 0.70709997f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f }, -}; - -/* -* 0 = 30,0 -* 1 = -30,0 -* 2 = 0,0 -* 3 = 135,0 -* 4 = -135,0 -* 5 = 110,0 -* 6 = -110,0 -* 7 = 90,0 -* 8 = -90,0 -* 9 = 30,35 -* 10 = -30,35 -* 11 = 110,35 -* 12 = -110,35 -* 13 = 135, 35 -* 14 = -135, 35 -*/ -const int16_t channelIndex_CICP6[5] = { 0, 1, 2, 5, 6 }; -const int16_t channelIndex_CICP12[7] = { 0, 1, 2, 5, 6, 3, 4 }; -const int16_t channelIndex_CICP14[7] = { 0, 1, 2, 5, 6, 9, 10 }; -const int16_t channelIndex_CICP16[9] = { 0, 1, 2, 5, 6, 9, 10, 11, 12 }; -const int16_t channelIndex_CICP19[11] = { 0, 1, 2, 3, 4, 7, 8, 9, 10, 13, 14 }; - const float surCohEne[MASA_NUM_DEFINED_SUR_SPR_COH_ENE_BINS] = { 3.0903f, 2.0053f, 1.0860f, 0.8072f, 0.7079f @@ -959,261 +552,4 @@ const float diffuseFieldCoherenceDifferenceZ[BINAURAL_COHERENCE_DIFFERENCE_BINS] 0.048207f, 0.10796f, 0.11845f, 0.047886f, 0.035917f, 0.045196f, 0.018863f, 0.015547f, 0.014157f }; - -/*----------------------------------------------------------------------------------* - * TD ISm binaural renderer ROM tables - *----------------------------------------------------------------------------------*/ - - /* The maximum target times set to 100 msec. */ -const int16_t TDREND_SRC_REND_MaxTargetTimes[IVAS_NUM_SUPPORTED_FS] = -{ - 1600, 3200, 4800 /* Corresponds to 16kHz, 32kHz, 48kHz */ -}; - -/* The maximum lengths of the blocks internally in the effect. Corresponds to 6 msec. This means also that */ -/* if the length of the input block is just above 6 msec, the block will be divided into two 3 msec blocks. */ -const int16_t TDREND_SRC_REND_MaxBlockLengths[IVAS_NUM_SUPPORTED_FS] = -{ - 96, 192, 288 /* Corresponds to 16kHz, 32kHz, 48kHz */ -}; - -const int16_t TDREND_MaxITD[IVAS_NUM_SUPPORTED_FS] = -{ - 111, 222, 333 /* Corresponds to 16kHz, 32kHz, 48kHz */ -}; - -const float TDREND_MaxITD_Incr[IVAS_NUM_SUPPORTED_FS] = -{ - 0.0925f, 0.1850f, 0.2775f /* Corresponds to 16kHz, 32kHz, 48kHz, e.g. ( ( 2 * MaxITD ) / ( 0.05 * 48000 ) ) */ -}; - -const int16_t HRTF_MODEL_N_CPTS_VAR[HRTF_MODEL_N_SECTIONS] = -{ - 13, 12, 11 -}; - -const float SincTable[321] = -{ - 1.00000000f, 0.99957629f, 0.99830587f, 0.99619078f, 0.99323448f, 0.98944177f, 0.98481881f, 0.97937311f, - 0.97311350f, 0.96605012f, 0.95819441f, 0.94955907f, 0.94015803f, 0.93000645f, 0.91912066f, 0.90751815f, - 0.89521750f, 0.88223838f, 0.86860150f, 0.85432856f, 0.83944219f, 0.82396595f, 0.80792425f, 0.79134231f, - 0.77424608f, 0.75666226f, 0.73861817f, 0.72014174f, 0.70126144f, 0.68200624f, 0.66240553f, 0.64248906f, - 0.62228691f, 0.60182943f, 0.58114713f, 0.56027070f, 0.53923087f, 0.51805843f, 0.49678411f, 0.47543856f, - 0.45405225f, 0.43265547f, 0.41127824f, 0.38995024f, 0.36870081f, 0.34755883f, 0.32655271f, 0.30571035f, - 0.28505905f, 0.26462549f, 0.24443569f, 0.22451493f, 0.20488776f, 0.18557791f, 0.16660829f, 0.14800093f, - 0.12977695f, 0.11195656f, 0.09455895f, 0.07760236f, 0.06110400f, 0.04508003f, 0.02954554f, 0.01451456f, - 0.00000000f, -0.01398631f, -0.02743368f, -0.04033255f, -0.05267447f, -0.06445214f, -0.07565940f, -0.08629121f, - -0.09634367f, -0.10581400f, -0.11470052f, -0.12300268f, -0.13072098f, -0.13785702f, -0.14441345f, -0.15039394f, - -0.15580318f, -0.16064685f, -0.16493160f, -0.16866498f, -0.17185547f, -0.17451243f, -0.17664604f, -0.17826729f, - -0.17938796f, -0.18002054f, -0.18017822f, -0.17987486f, -0.17912493f, -0.17794347f, -0.17634608f, -0.17434883f, - -0.17196824f, -0.16922125f, -0.16612516f, -0.16269761f, -0.15895648f, -0.15491992f, -0.15060625f, -0.14603396f, - -0.14122162f, -0.13618787f, -0.13095139f, -0.12553081f, -0.11994473f, -0.11421163f, -0.10834984f, -0.10237755f, - -0.09631271f, -0.09017300f, -0.08397586f, -0.07773838f, -0.07147731f, -0.06520902f, -0.05894946f, -0.05271415f, - -0.04651815f, -0.04037601f, -0.03430179f, -0.02830902f, -0.02241063f, -0.01661904f, -0.01094605f, -0.00540284f, - -0.00000000f, 0.00525251f, 0.01034538f, 0.01526993f, 0.02001814f, 0.02458266f, 0.02895676f, 0.03313441f, - 0.03711021f, 0.04087943f, 0.04443799f, 0.04778246f, 0.05091003f, 0.05381856f, 0.05650650f, 0.05897292f, - 0.06121749f, 0.06324047f, 0.06504268f, 0.06662549f, 0.06799083f, 0.06914112f, 0.07007930f, 0.07080878f, - 0.07133343f, 0.07165755f, 0.07178588f, 0.07172352f, 0.07147595f, 0.07104902f, 0.07044886f, 0.06968193f, - 0.06875494f, 0.06767485f, 0.06644886f, 0.06508435f, 0.06358888f, 0.06197015f, 0.06023599f, 0.05839432f, - 0.05645314f, 0.05442051f, 0.05230450f, 0.05011320f, 0.04785466f, 0.04553692f, 0.04316793f, 0.04075558f, - 0.03830765f, 0.03583181f, 0.03333557f, 0.03082630f, 0.02831121f, 0.02579730f, 0.02329137f, 0.02080003f, - 0.01832963f, 0.01588629f, 0.01347589f, 0.01110403f, 0.00877607f, 0.00649705f, 0.00427175f, 0.00210467f, - 0.00000000f, -0.00203837f, -0.00400686f, -0.00590216f, -0.00772131f, -0.00946162f, -0.01112072f, -0.01269654f, - -0.01418731f, -0.01559156f, -0.01690810f, -0.01813605f, -0.01927478f, -0.02032396f, -0.02128352f, -0.02215366f, - -0.02293482f, -0.02362769f, -0.02423318f, -0.02475245f, -0.02518686f, -0.02553797f, -0.02580754f, -0.02599752f, - -0.02611000f, -0.02614728f, -0.02611175f, -0.02600597f, -0.02583262f, -0.02559449f, -0.02529446f, -0.02493550f, - -0.02452066f, -0.02405306f, -0.02353586f, -0.02297226f, -0.02236549f, -0.02171881f, -0.02103547f, -0.02031874f, - -0.01957185f, -0.01879802f, -0.01800043f, -0.01718225f, -0.01634655f, -0.01549638f, -0.01463471f, -0.01376443f, - -0.01288838f, -0.01200928f, -0.01112977f, -0.01025241f, -0.00937962f, -0.00851376f, -0.00765705f, -0.00681160f, - -0.00597942f, -0.00516238f, -0.00436225f, -0.00358068f, -0.00281917f, -0.00207914f, -0.00136185f, -0.00066846f, - -0.00000000f, 0.00064260f, 0.00125856f, 0.00184718f, 0.00240790f, 0.00294026f, 0.00344390f, 0.00391857f, - 0.00436413f, 0.00478051f, 0.00516776f, 0.00552600f, 0.00585544f, 0.00615637f, 0.00642915f, 0.00667420f, - 0.00689203f, 0.00708318f, 0.00724827f, 0.00738795f, 0.00750293f, 0.00759395f, 0.00766178f, 0.00770723f, - 0.00773114f, 0.00773435f, 0.00771774f, 0.00768218f, 0.00762857f, 0.00755779f, 0.00747075f, 0.00736831f, - 0.00725138f, 0.00712082f, 0.00697748f, 0.00682221f, 0.00665584f, 0.00647916f, 0.00629295f, 0.00609797f, - 0.00589494f, 0.00568458f, 0.00546754f, 0.00524448f, 0.00501600f, 0.00478270f, 0.00454511f, 0.00430377f, - 0.00405916f, 0.00381176f, 0.00356198f, 0.00331023f, 0.00305690f, 0.00280234f, 0.00254687f, 0.00229079f, - 0.00203440f, 0.00177795f, 0.00152168f, 0.00126584f, 0.00101062f, 0.00075625f, 0.00050289f, 0.00025075f, - 0.00000000f -}; - -const float orange53_left_avg_power[257] = /* 257 == IVAS_REVERB_FFT_SIZE_48K/2 + 1 */ -{ - 0.999231100f, 0.992580175f, 0.969233215f, 0.925614893f, 0.871408045f, 0.826101780f, 0.803222895f, 0.800087631f, 0.802672029f, - 0.801490188f, 0.796555817f, 0.790879488f, 0.784882724f, 0.777585745f, 0.769326210f, 0.761789441f, 0.756145239f, 0.752754092f, - 0.751703024f, 0.752594173f, 0.754317880f, 0.755515277f, 0.754378498f, 0.748860359f, 0.738919020f, 0.727488697f, 0.718792558f, - 0.714865267f, 0.713446736f, 0.711076498f, 0.706021905f, 0.697553098f, 0.684623063f, 0.667031527f, 0.647006035f, 0.627680719f, - 0.609939933f, 0.592472672f, 0.574803054f, 0.558499217f, 0.544599831f, 0.532128096f, 0.520152628f, 0.509682238f, 0.501904130f, - 0.496162385f, 0.491121918f, 0.486813396f, 0.483951330f, 0.482198298f, 0.480713189f, 0.479654074f, 0.479590476f, 0.479965866f, - 0.479589254f, 0.478181243f, 0.476334095f, 0.474199444f, 0.471616089f, 0.469089746f, 0.467486322f, 0.466943622f, 0.467153549f, - 0.468381166f, 0.470996737f, 0.474416614f, 0.477639019f, 0.480612457f, 0.483910263f, 0.487287015f, 0.489909321f, 0.491668850f, - 0.493155539f, 0.494319856f, 0.494512051f, 0.493615031f, 0.492155492f, 0.490116775f, 0.486886710f, 0.482303619f, 0.476902038f, - 0.470775038f, 0.463377595f, 0.454571068f, 0.445130944f, 0.435581058f, 0.425568998f, 0.414717495f, 0.403531373f, 0.392556936f, - 0.381436378f, 0.369506508f, 0.357099295f, 0.345049500f, 0.333368897f, 0.321326375f, 0.308959186f, 0.297232091f, 0.286592871f, - 0.276453108f, 0.266589880f, 0.257950366f, 0.251341701f, 0.246435612f, 0.242861211f, 0.241405189f, 0.242839754f, 0.246688128f, - 0.252115428f, 0.259297341f, 0.268399984f, 0.278481483f, 0.288520366f, 0.298599035f, 0.308846802f, 0.318350822f, 0.326248646f, - 0.332813978f, 0.338464528f, 0.342543274f, 0.344278336f, 0.344031811f, 0.342641503f, 0.339995682f, 0.335437506f, 0.329174429f, - 0.322237372f, 0.315035462f, 0.306967229f, 0.297821850f, 0.288482070f, 0.279766560f, 0.271234214f, 0.262228251f, 0.253214896f, - 0.245183259f, 0.237939596f, 0.230546176f, 0.223051578f, 0.216552779f, 0.211263061f, 0.206180066f, 0.200917527f, 0.196485907f, - 0.193453044f, 0.190857053f, 0.187853232f, 0.185171053f, 0.183685005f, 0.182665780f, 0.180928215f, 0.178784713f, 0.177342966f, - 0.176323384f, 0.174430951f, 0.171496049f, 0.168740034f, 0.166518897f, 0.163711995f, 0.159658119f, 0.155442193f, 0.152056932f, - 0.148795277f, 0.144545168f, 0.139905334f, 0.136263832f, 0.133493021f, 0.130194828f, 0.126240104f, 0.123071767f, 0.121281922f, - 0.119557180f, 0.117016964f, 0.114773229f, 0.114072219f, 0.114103459f, 0.113414355f, 0.112460621f, 0.112842396f, 0.114564091f, - 0.115944758f, 0.116569765f, 0.117913686f, 0.120910525f, 0.124211200f, 0.126575813f, 0.128826424f, 0.132578567f, 0.137430578f, - 0.141675219f, 0.144987956f, 0.148879051f, 0.154273912f, 0.159992099f, 0.164641231f, 0.168560207f, 0.173201621f, 0.178906262f, - 0.184429348f, 0.188756809f, 0.192309171f, 0.196154252f, 0.200732291f, 0.205381230f, 0.209404662f, 0.212832779f, 0.216197237f, - 0.220162451f, 0.225029215f, 0.230637416f, 0.236752108f, 0.243243530f, 0.249900997f, 0.256293535f, 0.261716694f, 0.265186161f, - 0.265652657f, 0.262010813f, 0.253508776f, 0.243198514f, 0.244490802f, 0.255167097f, 0.258825988f, 0.257396817f, 0.256197631f, - 0.256865948f, 0.258354962f, 0.259370565f, 0.259730458f, 0.259894609f, 0.260285556f, 0.260970831f, 0.261650831f, 0.262020200f, - 0.262095064f, 0.262225062f, 0.262741268f, 0.263585031f, 0.264350951f, 0.264654577f, 0.264539272f, 0.264409125f, 0.264633715f, - 0.265172601f, 0.265621960f, 0.265678704f, 0.265469313f, 0.265454412f, 0.265907466f, 0.266625792f, 0.267101586f, 0.266997635f, - 0.266522497f, 0.266185820f, 0.266298562f, 0.266692907f, 0.266907692f -}; - -const float orange53_right_avg_power[257] = -{ - 0.999231100f, 0.992580175f, 0.969233215f, 0.925614893f, 0.871408045f, 0.826101780f, 0.803222895f, 0.800087631f, 0.802672029f, - 0.801490188f, 0.796555817f, 0.790879488f, 0.784882724f, 0.777585745f, 0.769326210f, 0.761789441f, 0.756145239f, 0.752754092f, - 0.751703024f, 0.752594173f, 0.754317880f, 0.755515277f, 0.754378498f, 0.748860359f, 0.738919020f, 0.727488697f, 0.718792558f, - 0.714865267f, 0.713446736f, 0.711076498f, 0.706021905f, 0.697553098f, 0.684623063f, 0.667031527f, 0.647006035f, 0.627680719f, - 0.609939933f, 0.592472672f, 0.574803054f, 0.558499217f, 0.544599831f, 0.532128096f, 0.520152628f, 0.509682238f, 0.501904130f, - 0.496162385f, 0.491121918f, 0.486813396f, 0.483951330f, 0.482198298f, 0.480713189f, 0.479654074f, 0.479590476f, 0.479965866f, - 0.479589254f, 0.478181243f, 0.476334095f, 0.474199444f, 0.471616089f, 0.469089746f, 0.467486322f, 0.466943622f, 0.467153549f, - 0.468381166f, 0.470996737f, 0.474416614f, 0.477639019f, 0.480612457f, 0.483910263f, 0.487287015f, 0.489909321f, 0.491668850f, - 0.493155539f, 0.494319856f, 0.494512051f, 0.493615031f, 0.492155492f, 0.490116775f, 0.486886710f, 0.482303619f, 0.476902038f, - 0.470775038f, 0.463377595f, 0.454571068f, 0.445130944f, 0.435581058f, 0.425568998f, 0.414717495f, 0.403531373f, 0.392556936f, - 0.381436378f, 0.369506508f, 0.357099295f, 0.345049500f, 0.333368897f, 0.321326375f, 0.308959186f, 0.297232091f, 0.286592871f, - 0.276453108f, 0.266589880f, 0.257950366f, 0.251341701f, 0.246435612f, 0.242861211f, 0.241405189f, 0.242839754f, 0.246688128f, - 0.252115428f, 0.259297341f, 0.268399984f, 0.278481483f, 0.288520366f, 0.298599035f, 0.308846802f, 0.318350822f, 0.326248646f, - 0.332813978f, 0.338464528f, 0.342543274f, 0.344278336f, 0.344031811f, 0.342641503f, 0.339995682f, 0.335437506f, 0.329174429f, - 0.322237372f, 0.315035462f, 0.306967229f, 0.297821850f, 0.288482070f, 0.279766560f, 0.271234214f, 0.262228251f, 0.253214896f, - 0.245183259f, 0.237939596f, 0.230546176f, 0.223051578f, 0.216552779f, 0.211263061f, 0.206180066f, 0.200917527f, 0.196485907f, - 0.193453044f, 0.190857053f, 0.187853232f, 0.185171053f, 0.183685005f, 0.182665780f, 0.180928215f, 0.178784713f, 0.177342966f, - 0.176323384f, 0.174430951f, 0.171496049f, 0.168740034f, 0.166518897f, 0.163711995f, 0.159658119f, 0.155442193f, 0.152056932f, - 0.148795277f, 0.144545168f, 0.139905334f, 0.136263832f, 0.133493021f, 0.130194828f, 0.126240104f, 0.123071767f, 0.121281922f, - 0.119557180f, 0.117016964f, 0.114773229f, 0.114072219f, 0.114103459f, 0.113414355f, 0.112460621f, 0.112842396f, 0.114564091f, - 0.115944758f, 0.116569765f, 0.117913686f, 0.120910525f, 0.124211200f, 0.126575813f, 0.128826424f, 0.132578567f, 0.137430578f, - 0.141675219f, 0.144987956f, 0.148879051f, 0.154273912f, 0.159992099f, 0.164641231f, 0.168560207f, 0.173201621f, 0.178906262f, - 0.184429348f, 0.188756809f, 0.192309171f, 0.196154252f, 0.200732291f, 0.205381230f, 0.209404662f, 0.212832779f, 0.216197237f, - 0.220162451f, 0.225029215f, 0.230637416f, 0.236752108f, 0.243243530f, 0.249900997f, 0.256293535f, 0.261716694f, 0.265186161f, - 0.265652657f, 0.262010813f, 0.253508776f, 0.243198514f, 0.244490802f, 0.255167097f, 0.258825988f, 0.257396817f, 0.256197631f, - 0.256865948f, 0.258354962f, 0.259370565f, 0.259730458f, 0.259894609f, 0.260285556f, 0.260970831f, 0.261650831f, 0.262020200f, - 0.262095064f, 0.262225062f, 0.262741268f, 0.263585031f, 0.264350951f, 0.264654577f, 0.264539272f, 0.264409125f, 0.264633715f, - 0.265172601f, 0.265621960f, 0.265678704f, 0.265469313f, 0.265454412f, 0.265907466f, 0.266625792f, 0.267101586f, 0.266997635f, - 0.266522497f, 0.266185820f, 0.266298562f, 0.266692907f, 0.266907692f -}; - -const float orange53_coherence[257] = -{ - 0.929530263f, 0.921171963f, 0.900268972f, 0.876067519f, 0.855227590f, 0.837884128f, 0.823401272f, 0.818804145f, 0.835025251f, - 0.871971071f, 0.911253273f, 0.929330528f, 0.921199203f, 0.900894165f, 0.882577479f, 0.867001534f, 0.849280477f, 0.832460761f, - 0.824062645f, 0.823441386f, 0.820908070f, 0.811902404f, 0.802339375f, 0.798648477f, 0.797345281f, 0.791158736f, 0.779512227f, - 0.768243194f, 0.760565042f, 0.754912853f, 0.751044095f, 0.752276063f, 0.759258866f, 0.766927004f, 0.769716740f, 0.767338514f, - 0.763358235f, 0.759508014f, 0.755201221f, 0.750362694f, 0.746060252f, 0.742611766f, 0.739434779f, 0.736354828f, 0.733443379f, - 0.730109870f, 0.726028502f, 0.722365141f, 0.720153689f, 0.718220115f, 0.714793265f, 0.710619092f, 0.708084404f, 0.707218647f, - 0.705624878f, 0.702472746f, 0.700073540f, 0.699947894f, 0.700519860f, 0.699934483f, 0.699344158f, 0.700895131f, 0.704551995f, - 0.708814025f, 0.713567019f, 0.719995975f, 0.728467822f, 0.738399088f, 0.749545693f, 0.761859894f, 0.774593413f, 0.787218869f, - 0.800481200f, 0.814727187f, 0.828367889f, 0.839860320f, 0.850490928f, 0.862034321f, 0.873037636f, 0.880097568f, 0.883217216f, - 0.885473788f, 0.887664974f, 0.886511028f, 0.880120754f, 0.871120989f, 0.862524390f, 0.853262126f, 0.840783834f, 0.825854301f, - 0.811407208f, 0.798167706f, 0.784307659f, 0.769172490f, 0.754072189f, 0.739893615f, 0.726129174f, 0.712544501f, 0.699519753f, - 0.686980069f, 0.674778104f, 0.663931608f, 0.655511260f, 0.648816824f, 0.642671287f, 0.638217211f, 0.637585819f, 0.640332758f, - 0.643755615f, 0.647433281f, 0.653589368f, 0.662824631f, 0.672268033f, 0.680022597f, 0.687623680f, 0.696763635f, 0.705829978f, - 0.712574661f, 0.717432320f, 0.721986175f, 0.725707173f, 0.727064371f, 0.726255059f, 0.724350274f, 0.720927835f, 0.715189219f, - 0.708206475f, 0.701428175f, 0.693923056f, 0.684313059f, 0.674107075f, 0.666009307f, 0.659245491f, 0.650998116f, 0.641600072f, - 0.634524226f, 0.630267978f, 0.625348687f, 0.618164837f, 0.611785769f, 0.608430445f, 0.605561733f, 0.600407422f, 0.594782710f, - 0.591767371f, 0.590365708f, 0.587845862f, 0.584915996f, 0.584355533f, 0.585834682f, 0.586913347f, 0.587935925f, 0.591403484f, - 0.596784472f, 0.601111054f, 0.604539037f, 0.610374093f, 0.618451059f, 0.624519289f, 0.627448440f, 0.631859899f, 0.639748096f, - 0.646256745f, 0.647378445f, 0.647664309f, 0.652599990f, 0.659044445f, 0.659743190f, 0.656243205f, 0.656651020f, 0.662200928f, - 0.664544880f, 0.660030127f, 0.656303048f, 0.659881413f, 0.664978266f, 0.662953973f, 0.657274961f, 0.658065319f, 0.665406108f, - 0.668446958f, 0.663809955f, 0.661349833f, 0.668595374f, 0.677367866f, 0.677208483f, 0.672289610f, 0.675831020f, 0.688208520f, - 0.695776582f, 0.691749871f, 0.687812865f, 0.696674168f, 0.711764693f, 0.716045380f, 0.706839681f, 0.701565385f, 0.711955190f, - 0.726487696f, 0.723370016f, 0.700417101f, 0.677427649f, 0.670733511f, 0.671355724f, 0.654210806f, 0.608316183f, 0.549225986f, - 0.504217446f, 0.484227657f, 0.475346446f, 0.452598959f, 0.399407327f, 0.319485664f, 0.229244962f, 0.146649837f, 0.083417825f, - 0.041744832f, 0.018142883f, 0.006854009f, 0.002511850f, 0.001177550f, 0.000840970f, 0.000701097f, 0.000571384f, 0.000458581f, - 0.000376965f, 0.000320562f, 0.000278847f, 0.000245546f, 0.000218281f, 0.000195632f, 0.000176647f, 0.000160827f, 0.000147978f, - 0.000137649f, 0.000129066f, 0.000121431f, 0.000114406f, 0.000108067f, 0.000102595f, 0.000097917f, 0.000093750f, 0.000089854f, - 0.000086255f, 0.000083183f, 0.000080804f, 0.000079026f, 0.000077552f, 0.000076117f, 0.000074693f, 0.000073431f, 0.000072456f, - 0.000071701f, 0.000071002f, 0.000070286f, 0.000069692f, 0.000069457f -}; - -/*----------------------------------------------------------------------------------* - * t-design and SN3D normalization table - *----------------------------------------------------------------------------------*/ - - /* SN3D norm */ -const float norm_sn3d_hoa3[16] = -{ - 1.f, 1.7320508f, 1.7320508f, 1.7320508f, 2.2360680f, 2.2360680f, 2.2360680f, 2.2360680f, - 2.2360680f, 2.6457512f, 2.6457512f, 2.6457512f, 2.6457512f, 2.6457512f, 2.6457512f, 2.6457512f -}; - -/* Order 11 t-design */ -const float t_design_11_azimuth[SBA_T_DESIGN_11_SIZE] = -{ - 1.329273e+02f, -8.393495e+01f, 8.474100e+00f, -1.133408e+02f, -1.032659e+02f, -3.323704e+01f, 2.185643e+01f, -1.565395e+02f, - -6.426475e+01f, 1.657795e+02f, -2.520283e+01f, -9.700380e+01f, 2.785464e+01f, 1.532142e+02f, -1.550616e+02f, -1.184214e+01f, - 8.053873e+01f, -4.205616e+01f, -3.122333e+01f, 3.883790e+01f, 9.376069e+01f, -8.475602e+01f, 7.755368e+00f, -1.222769e+02f, - 4.680127e+01f, -2.476863e+01f, 9.989047e+01f, -1.347840e+02f, -8.308802e+01f, 6.012817e+01f, 1.526447e+02f, 2.975767e+01f, - 4.077932e+01f, 1.101839e+02f, 1.656521e+02f, -1.299266e+01f, 7.973599e+01f, -5.052453e+01f, 1.189239e+02f, 4.722029e+01f, - 1.719253e+02f, -6.251458e+01f, -1.111567e+01f, 1.320180e+02f, -1.353555e+02f, 1.023709e+02f, 1.127393e+02f, -1.783050e+02f, - -1.223199e+02f, 5.907635e+01f, 1.517042e+02f, 2.137634e+01f, -1.690055e+02f, 1.189808e+02f, -1.160893e+02f, 9.647679e+00f, - 6.089332e+01f, -1.560215e+02f, -6.346030e+01f, 1.749298e+02f, -1.752888e+02f, -1.059519e+02f, -5.019283e+01f, 1.313583e+02f, - -1.362968e+02f, 9.356446e+01f, -9.708401e+01f, -1.691583e+02f, -4.413238e+01f, 8.147954e+01f -}; - -const float t_design_11_elevation[SBA_T_DESIGN_11_SIZE] = -{ - 7.692547e+00f, -2.373007e+01f, 2.351276e+01f, 7.042259e+01f, -9.896944e+00f, -7.075133e+01f, -2.646185e+01f, 4.777649e+01f, - -7.720470e+00f, 4.453436e+01f, 2.638979e+01f, -4.465789e+01f, 9.767035e+00f, -4.770533e+01f, 7.453029e+00f, -2.359012e+01f, - 2.371945e+01f, 7.043827e+01f, -9.835416e+00f, -7.049808e+01f, -2.629492e+01f, 4.761480e+01f, -7.517185e+00f, 4.428623e+01f, - 2.664426e+01f, -4.456937e+01f, 9.912719e+00f, -4.795996e+01f, 7.296799e+00f, -2.334460e+01f, 2.364153e+01f, 7.068431e+01f, - -9.581404e+00f, -7.039345e+01f, -2.642582e+01f, 4.775107e+01f, -7.308536e+00f, 4.426328e+01f, 2.671406e+01f, -4.431497e+01f, - 9.758997e+00f, -4.803619e+01f, 7.439651e+00f, -2.333261e+01f, 2.338690e+01f, 7.082191e+01f, -9.485964e+00f, -7.058019e+01f, - -2.667403e+01f, 4.799784e+01f, -7.382762e+00f, 4.449706e+01f, 2.650250e+01f, -4.424619e+01f, 9.518451e+00f, -4.782814e+01f, - 7.684274e+00f, -2.357068e+01f, 2.330745e+01f, 7.065865e+01f, -9.680889e+00f, -7.080268e+01f, -2.669635e+01f, 4.801363e+01f, - -7.637348e+00f, 4.466512e+01f, 2.630235e+01f, -4.445764e+01f, 9.523415e+00f, -4.762422e+01f -}; - - -/*----------------------------------------------------------------------* -* Reverberator ROM tables -*-----------------------------------------------------------------------*/ - -const float ivas_reverb_default_fc[IVAS_REVERB_DEFAULT_N_BANDS] = -{ - 20.0f, 25.0f, 31.5f, 40.0f, - 50.0f, 63.0f, 80.0f, 100.0f, - 125.0f, 160.0f, 200.0f, 250.0f, - 315.0f, 400.0f, 500.0f, 630.0f, - 800.0f, 1000.0f, 1250.0f, 1600.0f, - 2000.0f, 2500.0f, 3150.0f, 4000.0f, - 5000.0f, 6300.0f, 8000.0f, 10000.0f, - 12500.0f, 16000.0f, 20000.0f -}; - -const float ivas_reverb_default_RT60[IVAS_REVERB_DEFAULT_N_BANDS] = -{ - 1.3622f, 1.4486f, 1.3168f, 1.5787f, - 1.4766f, 1.3954f, 1.2889f, 1.3462f, - 1.0759f, 1.0401f, 1.097f, 1.085f, - 1.091f, 1.0404f, 1.0499f, 1.0699f, - 1.1028f, 1.1714f, 1.1027f, 1.0666f, - 1.055f, 1.0553f, 1.0521f, 1.0569f, - 1.0421f, 0.97822f, 0.80487f, 0.75944f, - 0.71945f, 0.61682f, 0.60031f -}; - -const float ivas_reverb_default_DSR[IVAS_REVERB_DEFAULT_N_BANDS] = -{ - 1.8811e-08f, 2.1428e-08f, 1.3972e-08f, 1.51e-08f, - 1.287e-08f, 1.8747e-08f, 2.413e-08f, 3.9927e-08f, - 8.9719e-08f, 1.902e-07f, 3.702e-07f, 6.1341e-07f, - 7.1432e-07f, 6.5331e-07f, 4.6094e-07f, 5.4683e-07f, - 7.0134e-07f, 6.856e-07f, 7.114e-07f, 6.9604e-07f, - 5.2939e-07f, 5.699e-07f, 6.1773e-07f, 5.7488e-07f, - 4.7748e-07f, 2.7213e-07f, 1.3681e-07f, 1.0941e-07f, - 6.2001e-08f, 2.8483e-08f, 2.6267e-08f -}; - - /* clang-format on */ diff --git a/lib_dec/ivas_rom_dec.h b/lib_dec/ivas_rom_dec.h index a92aad2533..7b0b3b4bad 100644 --- a/lib_dec/ivas_rom_dec.h +++ b/lib_dec/ivas_rom_dec.h @@ -118,7 +118,6 @@ extern const int16_t sba_map_tc[8]; extern const float ls_conversion_cicpX_mono[12][1]; extern const float ls_conversion_cicpX_stereo[12][2]; extern const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp6[]; -extern const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp6[]; extern const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp6[]; #ifdef FIX_I54_LS_CONVERSION extern const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp12[]; @@ -147,13 +146,6 @@ extern const LS_CONVERSION_MAPPING ls_conversion_mapping[]; * FASTCONV and PARAMETRIC binaural renderer ROM tables *----------------------------------------------------------------------------------*/ -extern const float dmxmtx[BINAURAL_CHANNELS][11]; -extern const int16_t channelIndex_CICP6[5]; -extern const int16_t channelIndex_CICP12[7]; -extern const int16_t channelIndex_CICP14[9]; -extern const int16_t channelIndex_CICP16[9]; -extern const int16_t channelIndex_CICP19[11]; - /* These are equalization values for spread and surround coherent sounds, approximating the spectrum * for such sounds at anechoic multichannel listening. */ extern const float surCohEne[MASA_NUM_DEFINED_SUR_SPR_COH_ENE_BINS]; @@ -168,44 +160,4 @@ extern const float diffuseFieldCoherenceDifferenceX[BINAURAL_COHERENCE_DIFFERENC extern const float diffuseFieldCoherenceDifferenceY[BINAURAL_COHERENCE_DIFFERENCE_BINS]; extern const float diffuseFieldCoherenceDifferenceZ[BINAURAL_COHERENCE_DIFFERENCE_BINS]; -/*----------------------------------------------------------------------------------* - * TD ISM Object renderer - *----------------------------------------------------------------------------------*/ - -extern const int16_t TDREND_SRC_REND_MaxTargetTimes[IVAS_NUM_SUPPORTED_FS]; -extern const int16_t TDREND_SRC_REND_MaxBlockLengths[IVAS_NUM_SUPPORTED_FS]; -extern const int16_t TDREND_MaxITD[IVAS_NUM_SUPPORTED_FS]; -extern const float TDREND_MaxITD_Incr[IVAS_NUM_SUPPORTED_FS]; - -extern const int16_t HRTF_MODEL_N_CPTS_VAR[HRTF_MODEL_N_SECTIONS]; - -extern const float SincTable[321]; - -extern const float orange53_left_avg_power[257]; -extern const float orange53_right_avg_power[257]; -extern const float orange53_coherence[257]; - - -/*----------------------------------------------------------------------------------* - * t-design and SN3D normalization table - *----------------------------------------------------------------------------------*/ - -/* SN3D norm */ -extern const float norm_sn3d_hoa3[16]; - -/* Order 11 t-design */ -extern const uint16_t t_design_11_size; -extern const float t_design_11_azimuth[SBA_T_DESIGN_11_SIZE]; -extern const float t_design_11_elevation[SBA_T_DESIGN_11_SIZE]; - - -/*----------------------------------------------------------------------* - * Reverberator ROM tables - *-----------------------------------------------------------------------*/ - -extern const float ivas_reverb_default_fc[]; -extern const float ivas_reverb_default_RT60[]; -extern const float ivas_reverb_default_DSR[]; - - #endif diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 52ecc69e27..5e3efeccdb 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -38,409 +38,13 @@ #include "prot.h" #include "ivas_prot.h" #include "ivas_rom_dec.h" +#include #ifdef DEBUGGING #include "debug.h" #endif #include "wmops.h" -/*-----------------------------------------------------------------------* - * Local function prototypes - *-----------------------------------------------------------------------*/ - -static void ivas_sba_dmx_dec( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); - -#ifdef DEBUG_MODE_DIRAC -static void debug_mode_dirac( float output[MAX_OUTPUT_CHANNELS][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); -#endif - - -/*-------------------------------------------------------------------------* - * ivas_mc2sba() - * - * MC signals transformed into SBA in TD domain - *-------------------------------------------------------------------------*/ - -void ivas_mc2sba( - IVAS_OUTPUT_SETUP hIntSetup, /* i : Format of decoder output */ - float buffer_td[][L_FRAME48k], /* i/o: MC signals (on input) and the HOA3 (on output) */ - const int16_t output_frame, /* i : output frame length per channel */ - const int16_t sba_order, /* i : Ambisonic (SBA) order */ - const float gain_lfe /* i : gain for LFE, 0 = ignore LFE */ -) -{ - int16_t i, j, k; - int16_t idx_lfe, idx_in; - float buffer_tmp[16][L_FRAME48k]; - float gains[16]; - int16_t azimuth, elevation; - int16_t sba_num_chans; - - assert( ( sba_order <= 3 ) && "Only order up to 3 is supported!" ); - - /* Init*/ - sba_num_chans = ( sba_order + 1 ) * ( sba_order + 1 ); - for ( j = 0; j < sba_num_chans; j++ ) - { - set_zero( buffer_tmp[j], output_frame ); - } - - /* HOA encoding*/ - idx_lfe = 0; - idx_in = 0; - for ( i = 0; i < hIntSetup.nchan_out_woLFE + hIntSetup.num_lfe; i++ ) - { - if ( ( hIntSetup.num_lfe > 0 ) && ( i == hIntSetup.index_lfe[idx_lfe] ) ) - { - if ( gain_lfe > 0.f ) - { - /* Add LFE to omni W with gain*/ - for ( k = 0; k < output_frame; k++ ) - { - buffer_tmp[0][k] += gain_lfe * buffer_td[i][k]; - } - } - - if ( idx_lfe < ( hIntSetup.num_lfe - 1 ) ) - { - idx_lfe++; - } - } - else - { - azimuth = (int16_t) ( hIntSetup.ls_azimuth[idx_in] ); - elevation = (int16_t) ( hIntSetup.ls_elevation[idx_in] ); - idx_in++; - - /* get HOA response for direction (ACN/SN3D)*/ - ivas_dirac_dec_get_response( - azimuth, - elevation, - gains, - sba_order ); - - for ( j = 0; j < sba_num_chans; j++ ) - { - for ( k = 0; k < output_frame; k++ ) - { - buffer_tmp[j][k] += gains[j] * buffer_td[i][k]; - } - } - } - } - - for ( j = 0; j < sba_num_chans; j++ ) - { - mvr2r( buffer_tmp[j], buffer_td[j], output_frame ); - } - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_sba2MC_cldfb() - * - * SBA signals transformed into MC in CLDFB domain - *-------------------------------------------------------------------------*/ - -void ivas_sba2mc_cldfb( - IVAS_OUTPUT_SETUP hInSetup, /* i : Format of input layout */ - float RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb real part */ - float ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb imag part */ - const int16_t nb_channels_out, /* i : nb of output channels */ - const int16_t nb_bands, /* i : nb of CLDFB bands to process */ - const float *hoa_dec_mtx /* i : HOA decoding mtx */ -) -{ - int16_t iBlock, iBand, n, m; - float realOut[16][MAX_PARAM_SPATIAL_SUBFRAMES * CLDFB_NO_CHANNELS_MAX], imagOut[16][MAX_PARAM_SPATIAL_SUBFRAMES * CLDFB_NO_CHANNELS_MAX]; - float g; - float *p_real, *p_imag, *p_realOut, *p_imagOut; - int16_t nb_channels_in; - - wmops_sub_start( "ivas_sba2mc_cldfb" ); - - nb_channels_in = hInSetup.nchan_out_woLFE; - assert( ( nb_channels_in == 16 ) && ( nb_channels_out == 11 ) && "ivas_sba2mc_cldfb; only HOA3 to CICP19 is for now supported!" ); - - for ( n = 0; n < nb_channels_out; n++ ) - { - set_zero( realOut[n], MAX_PARAM_SPATIAL_SUBFRAMES * nb_bands ); - set_zero( imagOut[n], MAX_PARAM_SPATIAL_SUBFRAMES * nb_bands ); - - for ( m = 0; m < nb_channels_in; m++ ) - { - g = hoa_dec_mtx[SBA_NHARM_HOA3 * n + m]; - p_realOut = realOut[n]; - p_imagOut = imagOut[n]; - for ( iBlock = 0; iBlock < MAX_PARAM_SPATIAL_SUBFRAMES; iBlock++ ) - { - p_real = RealBuffer[m][iBlock]; - p_imag = ImagBuffer[m][iBlock]; - for ( iBand = 0; iBand < nb_bands; iBand++ ) - { - *p_realOut = *p_realOut + g * *( p_real++ ); - *p_imagOut = *p_imagOut + g * *( p_imag++ ); - p_realOut++; - p_imagOut++; - } - } - } - } - - for ( n = 0; n < nb_channels_out; n++ ) - { - p_realOut = realOut[n]; - p_imagOut = imagOut[n]; - for ( iBlock = 0; iBlock < MAX_PARAM_SPATIAL_SUBFRAMES; iBlock++ ) - { - p_real = RealBuffer[n][iBlock]; - p_imag = ImagBuffer[n][iBlock]; - for ( iBand = 0; iBand < nb_bands; iBand++ ) - { - *( p_real++ ) = *p_realOut++; - *( p_imag++ ) = *p_imagOut++; - } - } - } - - wmops_sub_end(); - - return; -} - -/*-------------------------------------------------------------------* - * ivas_sba_remapTCs() - * - * Get TCs from Ambisonics signal in ACN - *-------------------------------------------------------------------*/ - -int16_t ivas_sba_remapTCs( - float sba_data[][L_FRAME48k], /* i/o: SBA signals */ - Decoder_Struct *st_ivas, /* i/o: decoder struct */ - const int16_t output_frame /* i : frame length */ -) -{ - int16_t nchan_remapped; - -#ifdef DEBUG_MODE_DIRAC - debug_mode_dirac( sba_data, st_ivas->nchan_transport, output_frame ); -#endif - - nchan_remapped = st_ivas->nchan_transport; - if ( ( st_ivas->sba_mode != SBA_MODE_SPAR && st_ivas->sba_planar && nchan_remapped >= 3 ) || - ( ( st_ivas->sba_mode == SBA_MODE_SPAR ) && nchan_remapped == 3 ) ) - { - - nchan_remapped++; - if ( st_ivas->sba_mode != SBA_MODE_SPAR ) - { - assert( ( ( st_ivas->nchan_transport == 3 ) || ( st_ivas->nchan_transport == 5 ) || ( st_ivas->nchan_transport == 7 ) ) && "Number of channels must be odd for SBA planar!" ); - } - - if ( nchan_remapped == 4 ) - { - /*For planar A-format channel 2 and 3 are identical -> Z=0*/ - mvr2r( sba_data[2], sba_data[3], output_frame ); - } - } - - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) - { - int16_t i = 0; - float temp; - - if ( st_ivas->nchan_transport >= 3 ) - { - /*convert WYXZ downmix to WYZX*/ - for ( i = 0; i < output_frame; i++ ) - { - temp = sba_data[2][i]; - sba_data[2][i] = sba_data[3][i]; - sba_data[3][i] = temp; - if ( st_ivas->nchan_transport == 3 ) - { - sba_data[2][i] = 0; - } - } - } - } - else - { - ivas_sba_dmx_dec( sba_data, nchan_remapped, output_frame ); - } - - if ( st_ivas->sba_mode != SBA_MODE_SPAR ) - { - ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_order, st_ivas->sba_planar, output_frame ); - } - - return ( nchan_remapped ); -} - - -/*-------------------------------------------------------------------* - * ivas_sba_dmx_dec() - * - * - *-------------------------------------------------------------------*/ - -static void ivas_sba_dmx_dec( - float sba_data[][L_FRAME48k], /* i : SBA signals */ - const int16_t nchan_transport, /* i : number of transport channels */ - const int16_t output_frame /* i : frame length */ -) -{ - int16_t i; - float tmp_f[DIRAC_MAX_TRANS_CHANS]; - - if ( nchan_transport >= 7 ) - { - for ( i = 0; i < output_frame; i++ ) - { - tmp_f[0] = 0.506415f * sba_data[0][i] + 0.506415f * sba_data[1][i] + 0.506415f * sba_data[2][i] + 0.506415f * sba_data[3][i] + 0.506415f * sba_data[4][i] + 0.506415f * sba_data[5][i] + 0.506415f * sba_data[6][i]; - tmp_f[1] = -0.000000f * sba_data[0][i] + 0.531020f * sba_data[1][i] + 0.662171f * sba_data[2][i] + 0.294694f * sba_data[3][i] + -0.294694f * sba_data[4][i] + -0.662171f * sba_data[5][i] + -0.531020f * sba_data[6][i]; - tmp_f[2] = 0.679200f * sba_data[0][i] + 0.423475f * sba_data[1][i] + -0.151136f * sba_data[2][i] + -0.611938f * sba_data[3][i] + -0.611938f * sba_data[4][i] + -0.151136f * sba_data[5][i] + 0.423475f * sba_data[6][i]; - tmp_f[3] = 0.000000f * sba_data[0][i] + 0.833385f * sba_data[1][i] + -0.370891f * sba_data[2][i] + -0.668323f * sba_data[3][i] + 0.668323f * sba_data[4][i] + 0.370891f * sba_data[5][i] + -0.833385f * sba_data[6][i]; - tmp_f[4] = 0.854817f * sba_data[0][i] + -0.190215f * sba_data[1][i] + -0.770164f * sba_data[2][i] + 0.532970f * sba_data[3][i] + 0.532970f * sba_data[4][i] + -0.770164f * sba_data[5][i] + -0.190215f * sba_data[6][i]; - tmp_f[5] = 0.000000f * sba_data[0][i] + 0.691125f * sba_data[1][i] + -1.245365f * sba_data[2][i] + 1.552944f * sba_data[3][i] + -1.552944f * sba_data[4][i] + 1.245365f * sba_data[5][i] + -0.691125f * sba_data[6][i]; - tmp_f[6] = 1.592881f * sba_data[0][i] + -1.435137f * sba_data[1][i] + 0.993145f * sba_data[2][i] + -0.354449f * sba_data[3][i] + -0.354449f * sba_data[4][i] + 0.993145f * sba_data[5][i] + -1.435137f * sba_data[6][i]; - - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = sba_data[7][i]; - sba_data[3][i] = tmp_f[2]; - sba_data[4][i] = tmp_f[3]; - sba_data[8][i] = tmp_f[4]; - sba_data[9][i] = tmp_f[5]; - sba_data[15][i] = tmp_f[6]; - } - - return; - } - else if ( nchan_transport >= 5 ) - { - for ( i = 0; i < output_frame; i++ ) - { - tmp_f[0] = 0.708982f * sba_data[0][i] + 0.708982f * sba_data[1][i] + 0.708982f * sba_data[2][i] + 0.708982f * sba_data[3][i] + 0.708982f * sba_data[4][i]; - tmp_f[1] = 0.000000f * sba_data[0][i] + 1.005966f * sba_data[1][i] + 0.621721f * sba_data[2][i] + -0.621721f * sba_data[3][i] + -1.005966f * sba_data[4][i]; - tmp_f[2] = 1.057735f * sba_data[0][i] + 0.326858f * sba_data[1][i] + -0.855726f * sba_data[2][i] + -0.855726f * sba_data[3][i] + 0.326858f * sba_data[4][i]; - tmp_f[3] = 0.000000f * sba_data[0][i] + 1.079884f * sba_data[1][i] + -1.747289f * sba_data[2][i] + 1.747289f * sba_data[3][i] + -1.079884f * sba_data[4][i]; - tmp_f[4] = 1.837208f * sba_data[0][i] + -1.486333f * sba_data[1][i] + 0.567729f * sba_data[2][i] + 0.567729f * sba_data[3][i] + -1.486333f * sba_data[4][i]; - - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = sba_data[5][i]; - sba_data[3][i] = tmp_f[2]; - sba_data[4][i] = tmp_f[3]; - sba_data[8][i] = tmp_f[4]; - } - - return; - } - else if ( nchan_transport >= 3 ) - { - - /*A-format to ACN/SN3D*/ - for ( i = 0; i < output_frame; i++ ) - { - tmp_f[0] = 0.5f * ( sba_data[0][i] + sba_data[1][i] + sba_data[2][i] + sba_data[3][i] ); - tmp_f[1] = sba_data[0][i] - sba_data[1][i]; - tmp_f[2] = sba_data[2][i] - sba_data[3][i]; - tmp_f[3] = sba_data[0][i] + sba_data[1][i] - sba_data[2][i] - sba_data[3][i]; - - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = tmp_f[2]; - sba_data[3][i] = tmp_f[3]; - } - - return; - } - else if ( nchan_transport == 2 ) - { - /* do nothing for stereo DMX, upmix done in DirAC*/ - return; - } - else if ( nchan_transport == 1 ) - { - /* do nothing; simply use omni */ - return; - } - else - { - assert( 0 && "SBA: number of transport channels not supported." ); - } -} - - -/*-------------------------------------------------------------------------* - * ivas_ism2sba() - * - * ISM transformed into SBA in TD domain. - *-------------------------------------------------------------------------*/ - -void ivas_ism2sba( - float buffer_td[][L_FRAME48k], /* i/o: TD signal buffers */ - ISM_RENDERER_HANDLE hIsmRendererData, /* i/o: renderer data */ - const ISM_METADATA_HANDLE hIsmMetaData[], /* i : object metadata */ - const int16_t num_objects, /* i : number of objects */ - const int16_t output_frame, /* i : output frame length per channel */ - const int16_t sba_order /* i : Ambisonic (SBA) order */ -) -{ - int16_t i, j, k; - float buffer_tmp[16][L_FRAME48k]; - float gains[16]; - float g1, g2; - int16_t azimuth, elevation; - int16_t sba_num_chans; - - assert( ( sba_order <= 3 ) && "Only order up to 3 is supported!" ); - assert( hIsmRendererData != NULL && "hIsmRendererData not allocated!" ); - - /* Init*/ - sba_num_chans = ( sba_order + 1 ) * ( sba_order + 1 ); - for ( j = 0; j < sba_num_chans; j++ ) - { - set_zero( buffer_tmp[j], output_frame ); - } - - for ( i = 0; i < num_objects; i++ ) - { - azimuth = (int16_t) ( hIsmMetaData[i]->azimuth + 0.5f ); - elevation = (int16_t) ( hIsmMetaData[i]->elevation + 0.5f ); - - /*get HOA gets for direction (ACN/SN3D)*/ - ivas_dirac_dec_get_response( - azimuth, - elevation, - gains, - sba_order ); - - for ( j = 0; j < sba_num_chans; j++ ) - { - g2 = 0.f; - for ( k = 0; k < output_frame; k++ ) - { - g2 += 1.f / output_frame; - g1 = 1.0f - g2; - buffer_tmp[j][k] += ( g2 * gains[j] + g1 * hIsmRendererData->prev_gains[i][j] ) * buffer_td[i][k]; - } - hIsmRendererData->prev_gains[i][j] = gains[j]; - } - } - - for ( j = 0; j < sba_num_chans; j++ ) - { - mvr2r( buffer_tmp[j], buffer_td[j], output_frame ); - } - - return; -} - - /*-------------------------------------------------------------------* * ivas_sba_dec_decoder() * @@ -935,6 +539,336 @@ ivas_error ivas_sba_dec_reconfigure( return error; } +/*-------------------------------------------------------------------* + * ivas_sba_upmixer_renderer() + * + * SBA upmix rendering + *-------------------------------------------------------------------*/ + +void ivas_sba_upmixer_renderer( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ + float output[][L_FRAME48k], /* i/o: transport/output audio channels */ + const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ + const int16_t output_frame /* i : output frame length */ +) +{ + int16_t i, ch, nchan_out; +#ifdef SIMPLIFY_SBA_RENDERING_LOGIC + float temp; +#else + float clip, temp; +#endif + int16_t nchan_internal; + + wmops_sub_start( "ivas_sba_upmixer_renderer" ); + + nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); + nchan_out = st_ivas->hDecoderConfig->nchan_out; + + for ( ch = 0; ch < nchan_remapped; ch++ ) + { + for ( i = 0; i < output_frame; i++ ) + { + temp = output[ch][i]; + temp = floorf( temp + 0.5f ); + + if ( temp > MAX16B_FLT ) + { + temp = MAX16B_FLT; + } + else if ( temp < ( -1.0f * PCM16_TO_FLT_FAC ) ) + { + temp = ( -1.0f * PCM16_TO_FLT_FAC ); + } + temp *= ( 1.0f / PCM16_TO_FLT_FAC ); + output[ch][i] = temp; + } + } + + if ( st_ivas->nchan_transport >= 3 ) + { + /*convert WYZX downmix to WYXZ*/ + for ( i = 0; i < output_frame; i++ ) + { + temp = output[2][i]; + output[2][i] = output[3][i]; + output[3][i] = temp; + } + } + +#ifdef SIMPLIFY_SBA_RENDERING_LOGIC + /* Upmixer + Renderer */ +#else + /* Upmixer */ +#endif + ivas_spar_dec_upmixer( st_ivas, output, nchan_internal, output_frame ); + +#ifndef SIMPLIFY_SBA_RENDERING_LOGIC + /* Renderer */ + if ( st_ivas->hDirAC != NULL && st_ivas->renderer_type == RENDERER_DIRAC ) + { + nchan_out = st_ivas->hDirAC->hOutSetup.nchan_out_woLFE + st_ivas->hDirAC->hOutSetup.num_lfe; + } +#endif + if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC ) + { + ivas_sba_linear_renderer( output, output_frame, st_ivas->hIntSetup.nchan_out_woLFE, st_ivas->hDecoderConfig->output_config, st_ivas->hOutSetup, st_ivas->hoa_dec_mtx ); + } + +#ifndef SIMPLIFY_SBA_RENDERING_LOGIC + clip = 1.0f; +#endif + for ( ch = 0; ch < nchan_out; ch++ ) + { + for ( i = 0; i < output_frame; i++ ) + { +#ifndef SIMPLIFY_SBA_RENDERING_LOGIC + clip = max( clip, fabsf( output[ch][i] ) ); +#endif + output[ch][i] = output[ch][i] * PCM16_TO_FLT_FAC; + } + } + +#ifndef SIMPLIFY_SBA_RENDERING_LOGIC +#ifdef DEBUGGING + if ( clip > 1.0f ) + { + fprintf( stderr, "IVAS Crend Clipped: max gain = %f\n", clip ); + } +#endif +#endif + + wmops_sub_end(); + + return; +} + + + +/*-------------------------------------------------------------------* + * ivas_sba_mix_matrix_determiner() + * + * Determine SBA mixing matrices + *-------------------------------------------------------------------*/ + +void ivas_sba_mix_matrix_determiner( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ + float output[][L_FRAME48k], /* i/o: transport/output audio channels */ + const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ + const int16_t output_frame /* i : output frame length */ +) +{ + int16_t i, ch; + float temp; + SPAR_DEC_HANDLE pState; + int16_t num_bands_out, nchan_transport, nchan_out; + + /* Convert numeric range */ + for ( ch = 0; ch < nchan_remapped; ch++ ) + { + for ( i = 0; i < output_frame; i++ ) + { + temp = output[ch][i]; + temp = floorf( temp + 0.5f ); + + if ( temp > MAX16B_FLT ) + { + temp = MAX16B_FLT; + } + else if ( temp < ( -1.0f * PCM16_TO_FLT_FAC ) ) + { + temp = ( -1.0f * PCM16_TO_FLT_FAC ); + } + temp *= ( 1.0f / PCM16_TO_FLT_FAC ); + output[ch][i] = temp; + } + } + + /* AGC */ + pState = st_ivas->hSpar; + nchan_transport = pState->hMdDec->spar_md_cfg.nchan_transport; + nchan_out = nchan_transport; + ivas_agc_dec_process( pState->hAgcDec, output, output, nchan_transport, output_frame ); + + /* Convert numeric range back */ + for ( ch = 0; ch < nchan_out; ch++ ) + { + for ( i = 0; i < output_frame; i++ ) + { + output[ch][i] = output[ch][i] * PCM16_TO_FLT_FAC; + } + } + + /* Mixing matrix determiner */ + num_bands_out = pState->hFbMixer->pFb->filterbank_num_bands; + ivas_spar_dec_gen_umx_mat( pState->hMdDec, nchan_transport, num_bands_out, st_ivas->bfi ); + + wmops_sub_end(); + + return; +} + + + +/*-------------------------------------------------------------------* + * ivas_sba_prototype_renderer() + * + * Render prototype audio signals using SBA mixing matrices + *-------------------------------------------------------------------*/ + +void ivas_sba_prototype_renderer( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ + float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i : Input audio in CLDFB domain, real */ + float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i : Input audio in CLDFB domain, imag */ + const int16_t firstSubframe, /* i : First subframe to map */ + const int16_t nSubframes /* i : Number of subframes to map */ +) +{ + float mixer_mat[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH][IVAS_MAX_NUM_BANDS]; + SPAR_DEC_HANDLE hSpar; + DECODER_CONFIG_HANDLE hDecoderConfig; + int16_t num_spar_bands, spar_band; + int16_t b, ts; + int16_t num_cldfb_bands, numch_in, numch_out; + int16_t cldfb_band; + int16_t out_ch, in_ch; + int16_t firstSlot, slotEnd, firstInCh, inChEnd, firstOutCh, outChEnd; + int16_t sf_idx; + + wmops_sub_start( "ivas_sba_prototype_renderer" ); + + hSpar = st_ivas->hSpar; + hDecoderConfig = st_ivas->hDecoderConfig; + num_spar_bands = hSpar->hFbMixer->pFb->filterbank_num_bands; + + firstSlot = firstSubframe * ( CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES ); + slotEnd = ( firstSubframe + nSubframes ) * ( CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES ); + + num_cldfb_bands = hSpar->hFbMixer->pFb->fb_bin_to_band.num_cldfb_bands; + numch_in = hSpar->hFbMixer->fb_cfg->num_in_chans; + numch_out = hSpar->hFbMixer->fb_cfg->num_out_chans; + + if ( st_ivas->nchan_transport == 1 ) + { + firstInCh = 0; + inChEnd = 1; + firstOutCh = 0; + outChEnd = 1; + } + else /* 2 TC */ + { + firstInCh = 0; + inChEnd = 2; + firstOutCh = 1; + outChEnd = 2; + } + + /* Apply mixing matrix */ + for ( ts = firstSlot; ts < slotEnd; ts++ ) + { + /* determine SPAR parameters for this time slot */ + ivas_spar_get_parameters( hSpar, hDecoderConfig, ts, numch_out, numch_in, num_spar_bands, mixer_mat ); + + for ( cldfb_band = 0; cldfb_band < num_cldfb_bands; cldfb_band++ ) + { + float out_re[IVAS_SPAR_MAX_CH]; + float out_im[IVAS_SPAR_MAX_CH]; + float cldfb_par; + ivas_fb_bin_to_band_data_t *bin2band = &hSpar->hFbMixer->pFb->fb_bin_to_band; + + for ( out_ch = firstOutCh; out_ch < outChEnd; out_ch++ ) + { + out_re[out_ch] = 0.0f; + out_im[out_ch] = 0.0f; + + for ( in_ch = firstInCh; in_ch < inChEnd; in_ch++ ) + { + if ( cldfb_band < CLDFB_PAR_WEIGHT_START_BAND ) /* tuning parameter, depends on how much SPAR Filters overlap for the CLDFB bands */ + { + spar_band = bin2band->p_cldfb_map_to_spar_band[cldfb_band]; + cldfb_par = mixer_mat[out_ch][in_ch][spar_band]; + } + else + { + cldfb_par = 0.0f; + for ( spar_band = bin2band->p_spar_start_bands[cldfb_band]; spar_band < num_spar_bands; spar_band++ ) + { + /* accumulate contributions from all SPAR bands */ + cldfb_par += mixer_mat[out_ch][in_ch][spar_band] * bin2band->pp_cldfb_weights_per_spar_band[cldfb_band][spar_band]; + } + } + + out_re[out_ch] += inRe[in_ch][ts][cldfb_band] * cldfb_par; + out_im[out_ch] += inIm[in_ch][ts][cldfb_band] * cldfb_par; + } + } + + /*update CLDFB data with the parameter-modified data*/ + for ( out_ch = firstOutCh; out_ch < outChEnd; out_ch++ ) + { + inRe[out_ch][ts][cldfb_band] = out_re[out_ch]; + inIm[out_ch][ts][cldfb_band] = out_im[out_ch]; + } + } + + /* Update mixing matrices */ + if ( ( ( ts + 1 ) % MAX_PARAM_SPATIAL_SUBFRAMES ) == 0 ) + { + sf_idx = ts / MAX_PARAM_SPATIAL_SUBFRAMES; + hSpar->i_subframe++; + hSpar->i_subframe = min( hSpar->i_subframe, MAX_PARAM_SPATIAL_SUBFRAMES ); + mvr2r( hSpar->hMdDec->mixer_mat_prev[1][0][0], hSpar->hMdDec->mixer_mat_prev[0][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); + mvr2r( hSpar->hMdDec->mixer_mat_prev[2][0][0], hSpar->hMdDec->mixer_mat_prev[1][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); + mvr2r( hSpar->hMdDec->mixer_mat_prev[3][0][0], hSpar->hMdDec->mixer_mat_prev[2][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); + mvr2r( hSpar->hMdDec->mixer_mat_prev[4][0][0], hSpar->hMdDec->mixer_mat_prev[3][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); + + for ( out_ch = 0; out_ch < numch_out; out_ch++ ) + { + for ( in_ch = 0; in_ch < numch_in; in_ch++ ) + { + for ( b = 0; b < num_spar_bands; b++ ) + { + hSpar->hMdDec->mixer_mat_prev[4][out_ch][in_ch][b] = hSpar->hMdDec->mixer_mat[out_ch][in_ch][b + sf_idx * IVAS_MAX_NUM_BANDS]; + } + } + } + } + } + + /* Create prototypes */ + if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) + { + for ( ts = firstSlot; ts < slotEnd; ts++ ) + { + if ( st_ivas->nchan_transport == 1 ) /* Dual mono */ + { + mvr2r( inRe[0][ts], inRe[1][ts], CLDFB_NO_CHANNELS_MAX ); + mvr2r( inIm[0][ts], inIm[1][ts], CLDFB_NO_CHANNELS_MAX ); + } + else if ( st_ivas->nchan_transport == 2 ) /* Opposing cardioids */ + { + float temp_signal[CLDFB_NO_CHANNELS_MAX]; + + v_add( inRe[0][ts], inRe[1][ts], temp_signal, CLDFB_NO_CHANNELS_MAX ); + v_sub( inRe[0][ts], inRe[1][ts], inRe[1][ts], CLDFB_NO_CHANNELS_MAX ); + mvr2r( temp_signal, inRe[0][ts], CLDFB_NO_CHANNELS_MAX ); + v_multc( inRe[0][ts], 0.5f, inRe[0][ts], CLDFB_NO_CHANNELS_MAX ); + v_multc( inRe[1][ts], 0.5f, inRe[1][ts], CLDFB_NO_CHANNELS_MAX ); + + v_add( inIm[0][ts], inIm[1][ts], temp_signal, CLDFB_NO_CHANNELS_MAX ); + v_sub( inIm[0][ts], inIm[1][ts], inIm[1][ts], CLDFB_NO_CHANNELS_MAX ); + mvr2r( temp_signal, inIm[0][ts], CLDFB_NO_CHANNELS_MAX ); + v_multc( inIm[0][ts], 0.5f, inIm[0][ts], CLDFB_NO_CHANNELS_MAX ); + v_multc( inIm[1][ts], 0.5f, inIm[1][ts], CLDFB_NO_CHANNELS_MAX ); + } + } + } + + wmops_sub_end(); + + return; +} + #ifdef DEBUG_MODE_DIRAC /*-----------------------------------------------------------------------* diff --git a/lib_dec/ivas_sba_rendering.c b/lib_dec/ivas_sba_rendering.c deleted file mode 100644 index 1b8572b6fc..0000000000 --- a/lib_dec/ivas_sba_rendering.c +++ /dev/null @@ -1,526 +0,0 @@ -/****************************************************************************************************** - - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. - -*******************************************************************************************************/ - -#include -#include "options.h" -#include "prot.h" -#include "ivas_prot.h" -#include "ivas_stat_dec.h" -#include "ivas_cnst.h" -#include -#ifdef DEBUGGING -#include "debug.h" -#endif -#include "wmops.h" - - -/*-----------------------------------------------------------------------* - * Local function prototypes - *-----------------------------------------------------------------------*/ - -static void ivas_sba_mtx_mult( float output_f[][L_FRAME48k], const int16_t output_frame, const int16_t nchan_in, IVAS_OUTPUT_SETUP output_setup, const float *mtx_hoa_decoder ); - - -/*-------------------------------------------------------------------* - * ivas_sba_linear_renderer() - * - * Linear rendering for SBA format - *-------------------------------------------------------------------*/ - -ivas_error ivas_sba_linear_renderer( - float output_f[][L_FRAME48k], /* i/o: synthesized core-coder transport channels/DirAC output */ - const int16_t output_frame, /* i : output frame length per channel */ - const int16_t nchan_in, /* i : number of input ambisonics channels */ - const AUDIO_CONFIG output_config, /* i : output audio configuration */ - const IVAS_OUTPUT_SETUP output_setup, /* i : output format setup */ - const float hoa_dec_mtx[] /* i : HOA decoding mtx */ -) -{ - int16_t i; - float dmx_l; - int16_t nchan_hoa; - ivas_error error; - - error = IVAS_ERR_OK; - - /* Number of channels of HOA depends of transport format which is mixed order xH1V*/ - nchan_hoa = nchan_in; - - if ( nchan_in == 6 ) /*2H1V*/ - { - nchan_hoa = 9; - } - else if ( nchan_in == 8 ) /*3H1V*/ - { - nchan_hoa = 16; - } - - switch ( output_config ) - { - case AUDIO_CONFIG_MONO: - /* If stereo DMX, MONO = W = Cardioids L + R*/ - if ( nchan_in == 2 ) - { - for ( i = 0; i < output_frame; i++ ) - { - output_f[0][i] += output_f[1][i]; - } - } - /* else: do nothing, MONO = W*/ - break; - case AUDIO_CONFIG_STEREO: - assert( ( nchan_in >= 2 ) && "Number of input channels must be at least 2 (for W and Y)!\n" ); - - /* Compute L and R cardioids from SB format except if stereo DMX is transmitted already in this format*/ - if ( nchan_in > 2 ) - { - /*Build L/R cardioids*/ - for ( i = 0; i < output_frame; i++ ) - { - dmx_l = 0.5f * ( output_f[0][i] + output_f[1][i] ); /* cardioid_left = 0.5(W + Y) */ - output_f[1][i] = 0.5f * ( output_f[0][i] - output_f[1][i] ); /* cardioid_right = 0.5(W - Y) */ - output_f[0][i] = dmx_l; - } - } - break; - case AUDIO_CONFIG_5_1: - case AUDIO_CONFIG_7_1: - case AUDIO_CONFIG_5_1_2: - case AUDIO_CONFIG_5_1_4: - case AUDIO_CONFIG_7_1_4: - case AUDIO_CONFIG_LS_CUSTOM: - ivas_sba_mtx_mult( output_f, output_frame, nchan_hoa, output_setup, hoa_dec_mtx ); - break; - case AUDIO_CONFIG_FOA: /* Ambisonics output, order: 1 */ - case AUDIO_CONFIG_HOA2: /* Ambisonics output, order: 2 */ - case AUDIO_CONFIG_HOA3: /* Ambisonics output, order: 3 */ - for ( i = nchan_hoa; i < output_setup.nchan_out_woLFE; i++ ) - { - set_zero( output_f[i], output_frame ); - } - break; - default: - return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: illegal output configuration, Exiting.\n" ); - } - - return error; -} - - -/*-------------------------------------------------------------------* - * ivas_sba_mtx_mult() - * - * HOA decoding with LFE insertion - *-------------------------------------------------------------------*/ - -static void ivas_sba_mtx_mult( - float output_f[][L_FRAME48k], /* i/o: synthesized core-coder transport channels/DirAC output */ - const int16_t output_frame, /* i : output frame length per channel */ - const int16_t nchan_in, /* i : Number of ambisonic channels */ - IVAS_OUTPUT_SETUP output_setup, /* i : Output configuration */ - const float *mtx_hoa_decoder /* i : HOA decoding mtx */ -) -{ - int16_t i, k, ch_idx; - int16_t idx_lfe; - float input_f[16]; - const float *hoa_decoder; - - assert( ( nchan_in >= FOA_CHANNELS ) && "Number of input channels must be at least 4 (FOA)!\n" ); - - for ( i = 0; i < output_frame; i++ ) - { - /* init*/ - idx_lfe = 0; - hoa_decoder = &mtx_hoa_decoder[0]; - for ( k = 0; k < nchan_in; k++ ) - { - input_f[k] = output_f[k][i]; - } - - /* mtx mult with LFE insertion*/ - for ( ch_idx = 0; ch_idx < ( output_setup.nchan_out_woLFE + output_setup.num_lfe ); ch_idx++ ) - { - if ( ( output_setup.num_lfe > 0 ) && ( output_setup.index_lfe[idx_lfe] == ch_idx ) ) - { - /*LFE insertion*/ - output_f[ch_idx][i] = 0.f; - if ( idx_lfe < ( output_setup.num_lfe - 1 ) ) - { - idx_lfe++; - } - } - else - { - /*HOA decoding*/ - output_f[ch_idx][i] = input_f[0] * hoa_decoder[0]; - for ( k = 1; k < nchan_in; k++ ) - { - output_f[ch_idx][i] += input_f[k] * hoa_decoder[k]; - } - hoa_decoder += 16; - } - } - } - - return; -} - - -/*-------------------------------------------------------------------* - * ivas_sba_upmixer_renderer() - * - * SBA upmix & rendering - *-------------------------------------------------------------------*/ - -void ivas_sba_upmixer_renderer( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ - float output[][L_FRAME48k], /* i/o: transport/output audio channels */ - const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ - const int16_t output_frame /* i : output frame length */ -) -{ - int16_t i, ch, nchan_out; -#ifdef SIMPLIFY_SBA_RENDERING_LOGIC - float temp; -#else - float clip, temp; -#endif - int16_t nchan_internal; - - wmops_sub_start( "ivas_sba_upmixer_renderer" ); - - nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); - nchan_out = st_ivas->hDecoderConfig->nchan_out; - - for ( ch = 0; ch < nchan_remapped; ch++ ) - { - for ( i = 0; i < output_frame; i++ ) - { - temp = output[ch][i]; - temp = floorf( temp + 0.5f ); - - if ( temp > MAX16B_FLT ) - { - temp = MAX16B_FLT; - } - else if ( temp < ( -1.0f * PCM16_TO_FLT_FAC ) ) - { - temp = ( -1.0f * PCM16_TO_FLT_FAC ); - } - temp *= ( 1.0f / PCM16_TO_FLT_FAC ); - output[ch][i] = temp; - } - } - - if ( st_ivas->nchan_transport >= 3 ) - { - /*convert WYZX downmix to WYXZ*/ - for ( i = 0; i < output_frame; i++ ) - { - temp = output[2][i]; - output[2][i] = output[3][i]; - output[3][i] = temp; - } - } - -#ifdef SIMPLIFY_SBA_RENDERING_LOGIC - /* Upmixer + Renderer */ -#else - /* Upmixer */ -#endif - ivas_spar_dec_upmixer( st_ivas, output, nchan_internal, output_frame ); - -#ifndef SIMPLIFY_SBA_RENDERING_LOGIC - /* Renderer */ - if ( st_ivas->hDirAC != NULL && st_ivas->renderer_type == RENDERER_DIRAC ) - { - nchan_out = st_ivas->hDirAC->hOutSetup.nchan_out_woLFE + st_ivas->hDirAC->hOutSetup.num_lfe; - } -#endif - if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC ) - { - ivas_sba_linear_renderer( output, output_frame, st_ivas->hIntSetup.nchan_out_woLFE, st_ivas->hDecoderConfig->output_config, st_ivas->hOutSetup, st_ivas->hoa_dec_mtx ); - } - -#ifndef SIMPLIFY_SBA_RENDERING_LOGIC - clip = 1.0f; -#endif - for ( ch = 0; ch < nchan_out; ch++ ) - { - for ( i = 0; i < output_frame; i++ ) - { -#ifndef SIMPLIFY_SBA_RENDERING_LOGIC - clip = max( clip, fabsf( output[ch][i] ) ); -#endif - output[ch][i] = output[ch][i] * PCM16_TO_FLT_FAC; - } - } - -#ifndef SIMPLIFY_SBA_RENDERING_LOGIC -#ifdef DEBUGGING - if ( clip > 1.0f ) - { - fprintf( stderr, "IVAS Crend Clipped: max gain = %f\n", clip ); - } -#endif -#endif - - wmops_sub_end(); - - return; -} - - -/*-------------------------------------------------------------------* - * ivas_sba_mix_matrix_determiner() - * - * Determine SBA mixing matrices - *-------------------------------------------------------------------*/ - -void ivas_sba_mix_matrix_determiner( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ - float output[][L_FRAME48k], /* i/o: transport/output audio channels */ - const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ - const int16_t output_frame /* i : output frame length */ -) -{ - int16_t i, ch; - float temp; - SPAR_DEC_HANDLE hSpar; - int16_t num_bands_out, nchan_transport, nchan_out; - - hSpar = st_ivas->hSpar; - - /* Convert numeric range */ - for ( ch = 0; ch < nchan_remapped; ch++ ) - { - for ( i = 0; i < output_frame; i++ ) - { - temp = output[ch][i]; - temp = floorf( temp + 0.5f ); - - if ( temp > MAX16B_FLT ) - { - temp = MAX16B_FLT; - } - else if ( temp < ( -1.0f * PCM16_TO_FLT_FAC ) ) - { - temp = ( -1.0f * PCM16_TO_FLT_FAC ); - } - temp *= ( 1.0f / PCM16_TO_FLT_FAC ); - output[ch][i] = temp; - } - } - - /* AGC */ - nchan_transport = hSpar->hMdDec->spar_md_cfg.nchan_transport; - nchan_out = nchan_transport; - ivas_agc_dec_process( hSpar->hAgcDec, output, output, nchan_transport, output_frame ); - - /* Convert numeric range back */ - for ( ch = 0; ch < nchan_out; ch++ ) - { - for ( i = 0; i < output_frame; i++ ) - { - output[ch][i] = output[ch][i] * PCM16_TO_FLT_FAC; - } - } - - /* Mixing matrix determiner */ - num_bands_out = hSpar->hFbMixer->pFb->filterbank_num_bands; - ivas_spar_dec_gen_umx_mat( hSpar->hMdDec, nchan_transport, num_bands_out, st_ivas->bfi ); - - wmops_sub_end(); - - return; -} - - -/*-------------------------------------------------------------------* - * ivas_sba_prototype_renderer() - * - * Render prototype audio signals using SBA mixing matrices - *-------------------------------------------------------------------*/ - -void ivas_sba_prototype_renderer( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ - float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i : Input audio in CLDFB domain, real */ - float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i : Input audio in CLDFB domain, imag */ - const int16_t firstSubframe, /* i : First subframe to map */ - const int16_t nSubframes /* i : Number of subframes to map */ -) -{ - float mixer_mat[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH][IVAS_MAX_NUM_BANDS]; - SPAR_DEC_HANDLE hSpar; - DECODER_CONFIG_HANDLE hDecoderConfig; - int16_t num_spar_bands, spar_band; - int16_t b, ts; - int16_t num_cldfb_bands, numch_in, numch_out; - int16_t cldfb_band; - int16_t out_ch, in_ch; - int16_t firstSlot, slotEnd, firstInCh, inChEnd, firstOutCh, outChEnd; - int16_t sf_idx; - - wmops_sub_start( "ivas_sba_prototype_renderer" ); - - hSpar = st_ivas->hSpar; - hDecoderConfig = st_ivas->hDecoderConfig; - num_spar_bands = hSpar->hFbMixer->pFb->filterbank_num_bands; - - firstSlot = firstSubframe * ( CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES ); - slotEnd = ( firstSubframe + nSubframes ) * ( CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES ); - - num_cldfb_bands = hSpar->hFbMixer->pFb->fb_bin_to_band.num_cldfb_bands; - numch_in = hSpar->hFbMixer->fb_cfg->num_in_chans; - numch_out = hSpar->hFbMixer->fb_cfg->num_out_chans; - - if ( st_ivas->nchan_transport == 1 ) - { - firstInCh = 0; - inChEnd = 1; - firstOutCh = 0; - outChEnd = 1; - } - else /* 2 TC */ - { - firstInCh = 0; - inChEnd = 2; - firstOutCh = 1; - outChEnd = 2; - } - - /* Apply mixing matrix */ - for ( ts = firstSlot; ts < slotEnd; ts++ ) - { - /* determine SPAR parameters for this time slot */ - ivas_spar_get_parameters( hSpar, hDecoderConfig, ts, numch_out, numch_in, num_spar_bands, mixer_mat ); - - for ( cldfb_band = 0; cldfb_band < num_cldfb_bands; cldfb_band++ ) - { - float out_re[IVAS_SPAR_MAX_CH]; - float out_im[IVAS_SPAR_MAX_CH]; - float cldfb_par; - ivas_fb_bin_to_band_data_t *bin2band = &hSpar->hFbMixer->pFb->fb_bin_to_band; - - for ( out_ch = firstOutCh; out_ch < outChEnd; out_ch++ ) - { - out_re[out_ch] = 0.0f; - out_im[out_ch] = 0.0f; - - for ( in_ch = firstInCh; in_ch < inChEnd; in_ch++ ) - { - if ( cldfb_band < CLDFB_PAR_WEIGHT_START_BAND ) /* tuning parameter, depends on how much SPAR Filters overlap for the CLDFB bands */ - { - spar_band = bin2band->p_cldfb_map_to_spar_band[cldfb_band]; - cldfb_par = mixer_mat[out_ch][in_ch][spar_band]; - } - else - { - cldfb_par = 0.0f; - for ( spar_band = bin2band->p_spar_start_bands[cldfb_band]; spar_band < num_spar_bands; spar_band++ ) - { - /* accumulate contributions from all SPAR bands */ - cldfb_par += mixer_mat[out_ch][in_ch][spar_band] * bin2band->pp_cldfb_weights_per_spar_band[cldfb_band][spar_band]; - } - } - - out_re[out_ch] += inRe[in_ch][ts][cldfb_band] * cldfb_par; - out_im[out_ch] += inIm[in_ch][ts][cldfb_band] * cldfb_par; - } - } - - /*update CLDFB data with the parameter-modified data*/ - for ( out_ch = firstOutCh; out_ch < outChEnd; out_ch++ ) - { - inRe[out_ch][ts][cldfb_band] = out_re[out_ch]; - inIm[out_ch][ts][cldfb_band] = out_im[out_ch]; - } - } - - /* Update mixing matrices */ - if ( ( ( ts + 1 ) % MAX_PARAM_SPATIAL_SUBFRAMES ) == 0 ) - { - sf_idx = ts / MAX_PARAM_SPATIAL_SUBFRAMES; - hSpar->i_subframe++; - hSpar->i_subframe = min( hSpar->i_subframe, MAX_PARAM_SPATIAL_SUBFRAMES ); - mvr2r( hSpar->hMdDec->mixer_mat_prev[1][0][0], hSpar->hMdDec->mixer_mat_prev[0][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); - mvr2r( hSpar->hMdDec->mixer_mat_prev[2][0][0], hSpar->hMdDec->mixer_mat_prev[1][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); - mvr2r( hSpar->hMdDec->mixer_mat_prev[3][0][0], hSpar->hMdDec->mixer_mat_prev[2][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); - mvr2r( hSpar->hMdDec->mixer_mat_prev[4][0][0], hSpar->hMdDec->mixer_mat_prev[3][0][0], IVAS_MAX_FB_MIXER_OUT_CH * IVAS_MAX_FB_MIXER_IN_CH * IVAS_MAX_NUM_BANDS ); - - for ( out_ch = 0; out_ch < numch_out; out_ch++ ) - { - for ( in_ch = 0; in_ch < numch_in; in_ch++ ) - { - for ( b = 0; b < num_spar_bands; b++ ) - { - hSpar->hMdDec->mixer_mat_prev[4][out_ch][in_ch][b] = hSpar->hMdDec->mixer_mat[out_ch][in_ch][b + sf_idx * IVAS_MAX_NUM_BANDS]; - } - } - } - } - } - - /* Create prototypes */ - if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) - { - for ( ts = firstSlot; ts < slotEnd; ts++ ) - { - if ( st_ivas->nchan_transport == 1 ) /* Dual mono */ - { - mvr2r( inRe[0][ts], inRe[1][ts], CLDFB_NO_CHANNELS_MAX ); - mvr2r( inIm[0][ts], inIm[1][ts], CLDFB_NO_CHANNELS_MAX ); - } - else if ( st_ivas->nchan_transport == 2 ) /* Opposing cardioids */ - { - float temp_signal[CLDFB_NO_CHANNELS_MAX]; - - v_add( inRe[0][ts], inRe[1][ts], temp_signal, CLDFB_NO_CHANNELS_MAX ); - v_sub( inRe[0][ts], inRe[1][ts], inRe[1][ts], CLDFB_NO_CHANNELS_MAX ); - mvr2r( temp_signal, inRe[0][ts], CLDFB_NO_CHANNELS_MAX ); - v_multc( inRe[0][ts], 0.5f, inRe[0][ts], CLDFB_NO_CHANNELS_MAX ); - v_multc( inRe[1][ts], 0.5f, inRe[1][ts], CLDFB_NO_CHANNELS_MAX ); - - v_add( inIm[0][ts], inIm[1][ts], temp_signal, CLDFB_NO_CHANNELS_MAX ); - v_sub( inIm[0][ts], inIm[1][ts], inIm[1][ts], CLDFB_NO_CHANNELS_MAX ); - mvr2r( temp_signal, inIm[0][ts], CLDFB_NO_CHANNELS_MAX ); - v_multc( inIm[0][ts], 0.5f, inIm[0][ts], CLDFB_NO_CHANNELS_MAX ); - v_multc( inIm[1][ts], 0.5f, inIm[1][ts], CLDFB_NO_CHANNELS_MAX ); - } - } - } - - wmops_sub_end(); - - return; -} diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 18fc4b4741..ca3996af4a 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -39,6 +39,7 @@ #include "stat_dec.h" #include "ivas_cnst.h" #include "ivas_stat_com.h" +#include "ivas_stat_rend.h" /*----------------------------------------------------------------------------------* @@ -1114,59 +1115,6 @@ typedef struct renderer_struct } ISM_RENDERER_DATA, *ISM_RENDERER_HANDLE; -/*----------------------------------------------------------------------------------* - * Loudspeaker Configuration Conversion structure - *----------------------------------------------------------------------------------*/ - -typedef struct ivas_LS_setupconversion_struct -{ - float *dmxMtx[MAX_OUTPUT_CHANNELS]; - float *targetEnergyPrev[MAX_OUTPUT_CHANNELS]; - float *dmxEnergyPrev[MAX_OUTPUT_CHANNELS]; - int16_t sfbOffset[MAX_SFB + 2]; - int16_t sfbCnt; - -} LSSETUP_CONVERSION_STRUCT, *LSSETUP_CONVERSION_HANDLE; - - -typedef struct ivas_LS_setupconversion_matrix -{ - int16_t index; - float value; -} LS_CONVERSION_MATRIX; - -typedef struct ivas_LS_setupconversion_mapping -{ - AUDIO_CONFIG input_config; - AUDIO_CONFIG output_config; - const LS_CONVERSION_MATRIX *conversion_matrix; -} LS_CONVERSION_MAPPING; - -typedef struct ivas_mono_downmix_renderer_struct -{ - float inputEnergy[CLDFB_NO_CHANNELS_MAX]; - float protoEnergy[CLDFB_NO_CHANNELS_MAX]; - -} MONO_DOWNMIX_RENDERER_STRUCT, *MONO_DOWNMIX_RENDERER_HANDLE; - - -/*----------------------------------------------------------------------------------* - * Custom Loudspeaker configuration structure - *----------------------------------------------------------------------------------*/ - -typedef struct ivas_LS_setup_custom -{ - int16_t is_planar_setup; /* flag to indicate if setup is planar or not */ - int16_t num_spk; /* number of custom loudspeakers */ - float ls_azimuth[MAX_OUTPUT_CHANNELS]; /* custom loudspeaker azimuths */ - float ls_elevation[MAX_OUTPUT_CHANNELS]; /* custom loudspeaker elevations */ - int16_t num_lfe; /* number of LFE channels */ - int16_t lfe_idx[MAX_OUTPUT_CHANNELS]; /* index for LFE channel insertion */ - int16_t separate_ch_found; /* flag to indicate if a center channel was found */ - float separate_ch_gains[MAX_OUTPUT_CHANNELS]; /* gains to pan McMASA separateChannel in case no center channel is present */ - -} LSSETUP_CUSTOM_STRUCT, *LSSETUP_CUSTOM_HANDLE; - /*----------------------------------------------------------------------------------* * MASA decoder structures diff --git a/lib_dec/ivas_allrad_dec.c b/lib_rend/ivas_allrad_dec.c similarity index 99% rename from lib_dec/ivas_allrad_dec.c rename to lib_rend/ivas_allrad_dec.c index d4301c07ac..5083002298 100644 --- a/lib_dec/ivas_allrad_dec.c +++ b/lib_rend/ivas_allrad_dec.c @@ -39,7 +39,7 @@ #include "prot.h" #include "ivas_prot.h" #include "ivas_stat_dec.h" -#include "ivas_rom_dec.h" +#include "ivas_rom_rend.h" #ifdef DEBUGGING #include "debug.h" #endif diff --git a/lib_dec/ivas_binauralRenderer.c b/lib_rend/ivas_binauralRenderer.c similarity index 99% rename from lib_dec/ivas_binauralRenderer.c rename to lib_rend/ivas_binauralRenderer.c index 153e159adc..f9067c4fed 100644 --- a/lib_dec/ivas_binauralRenderer.c +++ b/lib_rend/ivas_binauralRenderer.c @@ -37,7 +37,7 @@ #include "prot.h" #include "cnst.h" #include "ivas_cnst.h" -#include "ivas_rom_dec.h" +#include "ivas_rom_rend.h" #include "ivas_rom_com.h" #include "ivas_rom_binauralRenderer.h" #ifdef DEBUGGING diff --git a/lib_dec/ivas_binaural_reverb.c b/lib_rend/ivas_binaural_reverb.c similarity index 100% rename from lib_dec/ivas_binaural_reverb.c rename to lib_rend/ivas_binaural_reverb.c diff --git a/lib_dec/ivas_crend.c b/lib_rend/ivas_crend.c similarity index 99% rename from lib_dec/ivas_crend.c rename to lib_rend/ivas_crend.c index 26f559ca82..0473fa38aa 100644 --- a/lib_dec/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -35,7 +35,7 @@ #include "prot.h" #include "ivas_prot.h" #include "ivas_cnst.h" -#include "ivas_rom_dec.h" +#include "ivas_rom_rend.h" #include "ivas_stat_dec.h" #include #include "ivas_rom_binaural_crend_head.h" diff --git a/lib_dec/ivas_efap.c b/lib_rend/ivas_efap.c similarity index 99% rename from lib_dec/ivas_efap.c rename to lib_rend/ivas_efap.c index efd7795dfe..34d9586a95 100644 --- a/lib_dec/ivas_efap.c +++ b/lib_rend/ivas_efap.c @@ -1324,17 +1324,21 @@ static void efap_panning( float tmpBuff[EFAP_MAX_CHAN_NUM]; float normTmpBuff; float P[2]; +#ifndef FIX_EFAP_MATH float P_tmp[2]; +#endif P[0] = azi; P[1] = ele; /* Finding in which polygon the point is */ +#ifndef FIX_EFAP_MATH P_tmp[0] = roundf( P[0] / PANNING_AZI_RESOLUTION ); P_tmp[1] = roundf( P[1] / PANNING_ELE_RESOLUTION ); P[0] = P_tmp[0] * PANNING_AZI_RESOLUTION; P[1] = P_tmp[1] * PANNING_ELE_RESOLUTION; +#endif polyIdx = get_poly_num( P, polyData ); @@ -2201,7 +2205,11 @@ static int16_t in_tri( /* Verification of the non-colinearity */ invFactor = tmpDot1[0] * tmpDot2[1] - tmpDot1[1] * tmpDot2[0]; +#ifdef FIX_EFAP_MATH + if ( fabsf( invFactor ) < thresh ) +#else if ( invFactor < thresh ) +#endif { return 0; } diff --git a/lib_dec/ivas_hrtf.c b/lib_rend/ivas_hrtf.c similarity index 99% rename from lib_dec/ivas_hrtf.c rename to lib_rend/ivas_hrtf.c index eebe3b037f..8b5f1ba217 100644 --- a/lib_dec/ivas_hrtf.c +++ b/lib_rend/ivas_hrtf.c @@ -32,7 +32,6 @@ #include #include "options.h" -#include "hrtf_file_reader.h" #include "prot.h" #include "ivas_prot.h" #include "lib_dec.h" diff --git a/lib_dec/ivas_limiter.c b/lib_rend/ivas_limiter.c similarity index 100% rename from lib_dec/ivas_limiter.c rename to lib_rend/ivas_limiter.c diff --git a/lib_dec/ivas_ls_custom_dec.c b/lib_rend/ivas_ls_custom_dec.c similarity index 100% rename from lib_dec/ivas_ls_custom_dec.c rename to lib_rend/ivas_ls_custom_dec.c diff --git a/lib_dec/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c similarity index 97% rename from lib_dec/ivas_objectRenderer.c rename to lib_rend/ivas_objectRenderer.c index 458bcaa702..8aa7ae80e1 100644 --- a/lib_dec/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -142,6 +142,12 @@ ivas_error ivas_td_binaural_open( ls_azimuth = ls_azimuth_CICP19; ls_elevation = ls_elevation_CICP19; break; +#ifdef EXT_RENDERER /* TODO tmu : possibly could be adopted for the above cases too ? */ + case AUDIO_CONFIG_LS_CUSTOM: + ls_azimuth = st_ivas->hTransSetup.ls_azimuth; + ls_elevation = st_ivas->hTransSetup.ls_elevation; + break; +#endif default: ls_azimuth = NULL; ls_elevation = NULL; @@ -239,7 +245,13 @@ ivas_error ObjRenderIVASFrame( Pos[1] = 0.0f; Pos[2] = 0.0f; - if ( st_ivas->hHeadTrackData != NULL ) + if ( + st_ivas->hHeadTrackData != NULL +#ifdef EXT_RENDERER + && st_ivas->hDecoderConfig->Opt_Headrotation +#endif + ) + { /* Obtain head rotation matrix */ QuatToRotMat( st_ivas->hHeadTrackData->Quaternions[0], Rmat ); diff --git a/lib_dec/ivas_objectRenderer_hrFilt.c b/lib_rend/ivas_objectRenderer_hrFilt.c similarity index 99% rename from lib_dec/ivas_objectRenderer_hrFilt.c rename to lib_rend/ivas_objectRenderer_hrFilt.c index fd2011a7d6..4ece382b4f 100644 --- a/lib_dec/ivas_objectRenderer_hrFilt.c +++ b/lib_rend/ivas_objectRenderer_hrFilt.c @@ -36,7 +36,7 @@ #include "prot.h" #include #include "ivas_prot.h" -#include "ivas_rom_dec.h" +#include "ivas_rom_rend.h" #include "ivas_cnst.h" #include "ivas_rom_TdBinauralRenderer.h" #include "wmops.h" diff --git a/lib_dec/ivas_objectRenderer_mix.c b/lib_rend/ivas_objectRenderer_mix.c similarity index 100% rename from lib_dec/ivas_objectRenderer_mix.c rename to lib_rend/ivas_objectRenderer_mix.c diff --git a/lib_dec/ivas_objectRenderer_sfx.c b/lib_rend/ivas_objectRenderer_sfx.c similarity index 99% rename from lib_dec/ivas_objectRenderer_sfx.c rename to lib_rend/ivas_objectRenderer_sfx.c index 57b2d52c80..4f03ada392 100644 --- a/lib_dec/ivas_objectRenderer_sfx.c +++ b/lib_rend/ivas_objectRenderer_sfx.c @@ -34,7 +34,7 @@ #include "options.h" #include #include "ivas_prot.h" -#include "ivas_rom_dec.h" +#include "ivas_rom_rend.h" #include "prot.h" #include "wmops.h" diff --git a/lib_dec/ivas_objectRenderer_sources.c b/lib_rend/ivas_objectRenderer_sources.c similarity index 100% rename from lib_dec/ivas_objectRenderer_sources.c rename to lib_rend/ivas_objectRenderer_sources.c diff --git a/lib_dec/ivas_objectRenderer_vec.c b/lib_rend/ivas_objectRenderer_vec.c similarity index 100% rename from lib_dec/ivas_objectRenderer_vec.c rename to lib_rend/ivas_objectRenderer_vec.c diff --git a/lib_dec/ivas_orient_trk.c b/lib_rend/ivas_orient_trk.c similarity index 100% rename from lib_dec/ivas_orient_trk.c rename to lib_rend/ivas_orient_trk.c diff --git a/lib_dec/ivas_output_init.c b/lib_rend/ivas_output_init.c similarity index 100% rename from lib_dec/ivas_output_init.c rename to lib_rend/ivas_output_init.c diff --git a/lib_dec/ivas_render_config.c b/lib_rend/ivas_render_config.c similarity index 99% rename from lib_dec/ivas_render_config.c rename to lib_rend/ivas_render_config.c index d03ce0fa75..7e8caec092 100644 --- a/lib_dec/ivas_render_config.c +++ b/lib_rend/ivas_render_config.c @@ -34,7 +34,7 @@ #include "options.h" #include "prot.h" #include "ivas_prot.h" -#include "ivas_rom_dec.h" +#include "ivas_rom_rend.h" #include "ivas_rom_TdBinauralRenderer.h" #ifdef DEBUGGING #include "debug.h" diff --git a/lib_dec/ivas_reverb.c b/lib_rend/ivas_reverb.c similarity index 99% rename from lib_dec/ivas_reverb.c rename to lib_rend/ivas_reverb.c index c56b778138..9b3e21146a 100644 --- a/lib_dec/ivas_reverb.c +++ b/lib_rend/ivas_reverb.c @@ -39,7 +39,7 @@ #include "debug.h" #endif #include "math.h" -#include "ivas_rom_dec.h" +#include "ivas_rom_rend.h" #include #include "wmops.h" diff --git a/lib_dec/ivas_reverb_delay_line.c b/lib_rend/ivas_reverb_delay_line.c similarity index 100% rename from lib_dec/ivas_reverb_delay_line.c rename to lib_rend/ivas_reverb_delay_line.c diff --git a/lib_dec/ivas_reverb_fft_filter.c b/lib_rend/ivas_reverb_fft_filter.c similarity index 100% rename from lib_dec/ivas_reverb_fft_filter.c rename to lib_rend/ivas_reverb_fft_filter.c diff --git a/lib_dec/ivas_reverb_filter_design.c b/lib_rend/ivas_reverb_filter_design.c similarity index 100% rename from lib_dec/ivas_reverb_filter_design.c rename to lib_rend/ivas_reverb_filter_design.c diff --git a/lib_dec/ivas_reverb_iir_filter.c b/lib_rend/ivas_reverb_iir_filter.c similarity index 100% rename from lib_dec/ivas_reverb_iir_filter.c rename to lib_rend/ivas_reverb_iir_filter.c diff --git a/lib_dec/ivas_reverb_utils.c b/lib_rend/ivas_reverb_utils.c similarity index 99% rename from lib_dec/ivas_reverb_utils.c rename to lib_rend/ivas_reverb_utils.c index eb81313426..ebc8c43a11 100644 --- a/lib_dec/ivas_reverb_utils.c +++ b/lib_rend/ivas_reverb_utils.c @@ -35,7 +35,7 @@ #include "prot.h" #include "ivas_prot.h" #include "ivas_rom_binauralRenderer.h" -#include "ivas_rom_dec.h" +#include "ivas_rom_rend.h" #include #ifdef DEBUGGING #include "debug.h" diff --git a/lib_dec/ivas_rom_TdBinauralRenderer.c b/lib_rend/ivas_rom_TdBinauralRenderer.c similarity index 100% rename from lib_dec/ivas_rom_TdBinauralRenderer.c rename to lib_rend/ivas_rom_TdBinauralRenderer.c diff --git a/lib_dec/ivas_rom_TdBinauralRenderer.h b/lib_rend/ivas_rom_TdBinauralRenderer.h similarity index 100% rename from lib_dec/ivas_rom_TdBinauralRenderer.h rename to lib_rend/ivas_rom_TdBinauralRenderer.h diff --git a/lib_dec/ivas_rom_binauralRenderer.c b/lib_rend/ivas_rom_binauralRenderer.c similarity index 100% rename from lib_dec/ivas_rom_binauralRenderer.c rename to lib_rend/ivas_rom_binauralRenderer.c diff --git a/lib_dec/ivas_rom_binauralRenderer.h b/lib_rend/ivas_rom_binauralRenderer.h similarity index 100% rename from lib_dec/ivas_rom_binauralRenderer.h rename to lib_rend/ivas_rom_binauralRenderer.h diff --git a/lib_dec/ivas_rom_binaural_crend_head.c b/lib_rend/ivas_rom_binaural_crend_head.c similarity index 100% rename from lib_dec/ivas_rom_binaural_crend_head.c rename to lib_rend/ivas_rom_binaural_crend_head.c diff --git a/lib_dec/ivas_rom_binaural_crend_head.h b/lib_rend/ivas_rom_binaural_crend_head.h similarity index 100% rename from lib_dec/ivas_rom_binaural_crend_head.h rename to lib_rend/ivas_rom_binaural_crend_head.h diff --git a/lib_rend/ivas_rom_rend.c b/lib_rend/ivas_rom_rend.c new file mode 100644 index 0000000000..0f680f929d --- /dev/null +++ b/lib_rend/ivas_rom_rend.c @@ -0,0 +1,755 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + +#include "options.h" +#include +#ifdef DEBUGGING +#include "debug.h" +#endif +#include "ivas_rom_rend.h" + +/* clang-format off */ + +/*----------------------------------------------------------------------------------* + * FASTCONV and PARAMETRIC binaural renderer ROM tables + *----------------------------------------------------------------------------------*/ + +const float dmxmtx[BINAURAL_CHANNELS][11] = +{ + { 1.0f, 0.0f, 0.70709997f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f }, + { 0.0f, 1.0f, 0.70709997f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f }, +}; + +/* +* 0 = 30,0 +* 1 = -30,0 +* 2 = 0,0 +* 3 = 135,0 +* 4 = -135,0 +* 5 = 110,0 +* 6 = -110,0 +* 7 = 90,0 +* 8 = -90,0 +* 9 = 30,35 +* 10 = -30,35 +* 11 = 110,35 +* 12 = -110,35 +* 13 = 135, 35 +* 14 = -135, 35 +*/ +const int16_t channelIndex_CICP6[5] = { 0, 1, 2, 5, 6 }; +const int16_t channelIndex_CICP12[7] = { 0, 1, 2, 5, 6, 3, 4 }; +const int16_t channelIndex_CICP14[7] = { 0, 1, 2, 5, 6, 9, 10 }; +const int16_t channelIndex_CICP16[9] = { 0, 1, 2, 5, 6, 9, 10, 11, 12 }; +const int16_t channelIndex_CICP19[11] = { 0, 1, 2, 3, 4, 7, 8, 9, 10, 13, 14 }; + +/*----------------------------------------------------------------------------------* + * TD ISm binaural renderer ROM tables + *----------------------------------------------------------------------------------*/ + + /* The maximum target times set to 100 msec. */ +const int16_t TDREND_SRC_REND_MaxTargetTimes[IVAS_NUM_SUPPORTED_FS] = +{ + 1600, 3200, 4800 /* Corresponds to 16kHz, 32kHz, 48kHz */ +}; + +/* The maximum lengths of the blocks internally in the effect. Corresponds to 6 msec. This means also that */ +/* if the length of the input block is just above 6 msec, the block will be divided into two 3 msec blocks. */ +const int16_t TDREND_SRC_REND_MaxBlockLengths[IVAS_NUM_SUPPORTED_FS] = +{ + 96, 192, 288 /* Corresponds to 16kHz, 32kHz, 48kHz */ +}; + +const int16_t TDREND_MaxITD[IVAS_NUM_SUPPORTED_FS] = +{ + 111, 222, 333 /* Corresponds to 16kHz, 32kHz, 48kHz */ +}; + +const float TDREND_MaxITD_Incr[IVAS_NUM_SUPPORTED_FS] = +{ + 0.0925f, 0.1850f, 0.2775f /* Corresponds to 16kHz, 32kHz, 48kHz, e.g. ( ( 2 * MaxITD ) / ( 0.05 * 48000 ) ) */ +}; + +const int16_t HRTF_MODEL_N_CPTS_VAR[HRTF_MODEL_N_SECTIONS] = +{ + 13, 12, 11 +}; + +const float SincTable[321] = +{ + 1.00000000f, 0.99957629f, 0.99830587f, 0.99619078f, 0.99323448f, 0.98944177f, 0.98481881f, 0.97937311f, + 0.97311350f, 0.96605012f, 0.95819441f, 0.94955907f, 0.94015803f, 0.93000645f, 0.91912066f, 0.90751815f, + 0.89521750f, 0.88223838f, 0.86860150f, 0.85432856f, 0.83944219f, 0.82396595f, 0.80792425f, 0.79134231f, + 0.77424608f, 0.75666226f, 0.73861817f, 0.72014174f, 0.70126144f, 0.68200624f, 0.66240553f, 0.64248906f, + 0.62228691f, 0.60182943f, 0.58114713f, 0.56027070f, 0.53923087f, 0.51805843f, 0.49678411f, 0.47543856f, + 0.45405225f, 0.43265547f, 0.41127824f, 0.38995024f, 0.36870081f, 0.34755883f, 0.32655271f, 0.30571035f, + 0.28505905f, 0.26462549f, 0.24443569f, 0.22451493f, 0.20488776f, 0.18557791f, 0.16660829f, 0.14800093f, + 0.12977695f, 0.11195656f, 0.09455895f, 0.07760236f, 0.06110400f, 0.04508003f, 0.02954554f, 0.01451456f, + 0.00000000f, -0.01398631f, -0.02743368f, -0.04033255f, -0.05267447f, -0.06445214f, -0.07565940f, -0.08629121f, + -0.09634367f, -0.10581400f, -0.11470052f, -0.12300268f, -0.13072098f, -0.13785702f, -0.14441345f, -0.15039394f, + -0.15580318f, -0.16064685f, -0.16493160f, -0.16866498f, -0.17185547f, -0.17451243f, -0.17664604f, -0.17826729f, + -0.17938796f, -0.18002054f, -0.18017822f, -0.17987486f, -0.17912493f, -0.17794347f, -0.17634608f, -0.17434883f, + -0.17196824f, -0.16922125f, -0.16612516f, -0.16269761f, -0.15895648f, -0.15491992f, -0.15060625f, -0.14603396f, + -0.14122162f, -0.13618787f, -0.13095139f, -0.12553081f, -0.11994473f, -0.11421163f, -0.10834984f, -0.10237755f, + -0.09631271f, -0.09017300f, -0.08397586f, -0.07773838f, -0.07147731f, -0.06520902f, -0.05894946f, -0.05271415f, + -0.04651815f, -0.04037601f, -0.03430179f, -0.02830902f, -0.02241063f, -0.01661904f, -0.01094605f, -0.00540284f, + -0.00000000f, 0.00525251f, 0.01034538f, 0.01526993f, 0.02001814f, 0.02458266f, 0.02895676f, 0.03313441f, + 0.03711021f, 0.04087943f, 0.04443799f, 0.04778246f, 0.05091003f, 0.05381856f, 0.05650650f, 0.05897292f, + 0.06121749f, 0.06324047f, 0.06504268f, 0.06662549f, 0.06799083f, 0.06914112f, 0.07007930f, 0.07080878f, + 0.07133343f, 0.07165755f, 0.07178588f, 0.07172352f, 0.07147595f, 0.07104902f, 0.07044886f, 0.06968193f, + 0.06875494f, 0.06767485f, 0.06644886f, 0.06508435f, 0.06358888f, 0.06197015f, 0.06023599f, 0.05839432f, + 0.05645314f, 0.05442051f, 0.05230450f, 0.05011320f, 0.04785466f, 0.04553692f, 0.04316793f, 0.04075558f, + 0.03830765f, 0.03583181f, 0.03333557f, 0.03082630f, 0.02831121f, 0.02579730f, 0.02329137f, 0.02080003f, + 0.01832963f, 0.01588629f, 0.01347589f, 0.01110403f, 0.00877607f, 0.00649705f, 0.00427175f, 0.00210467f, + 0.00000000f, -0.00203837f, -0.00400686f, -0.00590216f, -0.00772131f, -0.00946162f, -0.01112072f, -0.01269654f, + -0.01418731f, -0.01559156f, -0.01690810f, -0.01813605f, -0.01927478f, -0.02032396f, -0.02128352f, -0.02215366f, + -0.02293482f, -0.02362769f, -0.02423318f, -0.02475245f, -0.02518686f, -0.02553797f, -0.02580754f, -0.02599752f, + -0.02611000f, -0.02614728f, -0.02611175f, -0.02600597f, -0.02583262f, -0.02559449f, -0.02529446f, -0.02493550f, + -0.02452066f, -0.02405306f, -0.02353586f, -0.02297226f, -0.02236549f, -0.02171881f, -0.02103547f, -0.02031874f, + -0.01957185f, -0.01879802f, -0.01800043f, -0.01718225f, -0.01634655f, -0.01549638f, -0.01463471f, -0.01376443f, + -0.01288838f, -0.01200928f, -0.01112977f, -0.01025241f, -0.00937962f, -0.00851376f, -0.00765705f, -0.00681160f, + -0.00597942f, -0.00516238f, -0.00436225f, -0.00358068f, -0.00281917f, -0.00207914f, -0.00136185f, -0.00066846f, + -0.00000000f, 0.00064260f, 0.00125856f, 0.00184718f, 0.00240790f, 0.00294026f, 0.00344390f, 0.00391857f, + 0.00436413f, 0.00478051f, 0.00516776f, 0.00552600f, 0.00585544f, 0.00615637f, 0.00642915f, 0.00667420f, + 0.00689203f, 0.00708318f, 0.00724827f, 0.00738795f, 0.00750293f, 0.00759395f, 0.00766178f, 0.00770723f, + 0.00773114f, 0.00773435f, 0.00771774f, 0.00768218f, 0.00762857f, 0.00755779f, 0.00747075f, 0.00736831f, + 0.00725138f, 0.00712082f, 0.00697748f, 0.00682221f, 0.00665584f, 0.00647916f, 0.00629295f, 0.00609797f, + 0.00589494f, 0.00568458f, 0.00546754f, 0.00524448f, 0.00501600f, 0.00478270f, 0.00454511f, 0.00430377f, + 0.00405916f, 0.00381176f, 0.00356198f, 0.00331023f, 0.00305690f, 0.00280234f, 0.00254687f, 0.00229079f, + 0.00203440f, 0.00177795f, 0.00152168f, 0.00126584f, 0.00101062f, 0.00075625f, 0.00050289f, 0.00025075f, + 0.00000000f +}; + +const float orange53_left_avg_power[257] = { + 0.999231100f, 0.992580175f, 0.969233215f, 0.925614893f, 0.871408045f, 0.826101780f, 0.803222895f, 0.800087631f, 0.802672029f, + 0.801490188f, 0.796555817f, 0.790879488f, 0.784882724f, 0.777585745f, 0.769326210f, 0.761789441f, 0.756145239f, 0.752754092f, + 0.751703024f, 0.752594173f, 0.754317880f, 0.755515277f, 0.754378498f, 0.748860359f, 0.738919020f, 0.727488697f, 0.718792558f, + 0.714865267f, 0.713446736f, 0.711076498f, 0.706021905f, 0.697553098f, 0.684623063f, 0.667031527f, 0.647006035f, 0.627680719f, + 0.609939933f, 0.592472672f, 0.574803054f, 0.558499217f, 0.544599831f, 0.532128096f, 0.520152628f, 0.509682238f, 0.501904130f, + 0.496162385f, 0.491121918f, 0.486813396f, 0.483951330f, 0.482198298f, 0.480713189f, 0.479654074f, 0.479590476f, 0.479965866f, + 0.479589254f, 0.478181243f, 0.476334095f, 0.474199444f, 0.471616089f, 0.469089746f, 0.467486322f, 0.466943622f, 0.467153549f, + 0.468381166f, 0.470996737f, 0.474416614f, 0.477639019f, 0.480612457f, 0.483910263f, 0.487287015f, 0.489909321f, 0.491668850f, + 0.493155539f, 0.494319856f, 0.494512051f, 0.493615031f, 0.492155492f, 0.490116775f, 0.486886710f, 0.482303619f, 0.476902038f, + 0.470775038f, 0.463377595f, 0.454571068f, 0.445130944f, 0.435581058f, 0.425568998f, 0.414717495f, 0.403531373f, 0.392556936f, + 0.381436378f, 0.369506508f, 0.357099295f, 0.345049500f, 0.333368897f, 0.321326375f, 0.308959186f, 0.297232091f, 0.286592871f, + 0.276453108f, 0.266589880f, 0.257950366f, 0.251341701f, 0.246435612f, 0.242861211f, 0.241405189f, 0.242839754f, 0.246688128f, + 0.252115428f, 0.259297341f, 0.268399984f, 0.278481483f, 0.288520366f, 0.298599035f, 0.308846802f, 0.318350822f, 0.326248646f, + 0.332813978f, 0.338464528f, 0.342543274f, 0.344278336f, 0.344031811f, 0.342641503f, 0.339995682f, 0.335437506f, 0.329174429f, + 0.322237372f, 0.315035462f, 0.306967229f, 0.297821850f, 0.288482070f, 0.279766560f, 0.271234214f, 0.262228251f, 0.253214896f, + 0.245183259f, 0.237939596f, 0.230546176f, 0.223051578f, 0.216552779f, 0.211263061f, 0.206180066f, 0.200917527f, 0.196485907f, + 0.193453044f, 0.190857053f, 0.187853232f, 0.185171053f, 0.183685005f, 0.182665780f, 0.180928215f, 0.178784713f, 0.177342966f, + 0.176323384f, 0.174430951f, 0.171496049f, 0.168740034f, 0.166518897f, 0.163711995f, 0.159658119f, 0.155442193f, 0.152056932f, + 0.148795277f, 0.144545168f, 0.139905334f, 0.136263832f, 0.133493021f, 0.130194828f, 0.126240104f, 0.123071767f, 0.121281922f, + 0.119557180f, 0.117016964f, 0.114773229f, 0.114072219f, 0.114103459f, 0.113414355f, 0.112460621f, 0.112842396f, 0.114564091f, + 0.115944758f, 0.116569765f, 0.117913686f, 0.120910525f, 0.124211200f, 0.126575813f, 0.128826424f, 0.132578567f, 0.137430578f, + 0.141675219f, 0.144987956f, 0.148879051f, 0.154273912f, 0.159992099f, 0.164641231f, 0.168560207f, 0.173201621f, 0.178906262f, + 0.184429348f, 0.188756809f, 0.192309171f, 0.196154252f, 0.200732291f, 0.205381230f, 0.209404662f, 0.212832779f, 0.216197237f, + 0.220162451f, 0.225029215f, 0.230637416f, 0.236752108f, 0.243243530f, 0.249900997f, 0.256293535f, 0.261716694f, 0.265186161f, + 0.265652657f, 0.262010813f, 0.253508776f, 0.243198514f, 0.244490802f, 0.255167097f, 0.258825988f, 0.257396817f, 0.256197631f, + 0.256865948f, 0.258354962f, 0.259370565f, 0.259730458f, 0.259894609f, 0.260285556f, 0.260970831f, 0.261650831f, 0.262020200f, + 0.262095064f, 0.262225062f, 0.262741268f, 0.263585031f, 0.264350951f, 0.264654577f, 0.264539272f, 0.264409125f, 0.264633715f, + 0.265172601f, 0.265621960f, 0.265678704f, 0.265469313f, 0.265454412f, 0.265907466f, 0.266625792f, 0.267101586f, 0.266997635f, + 0.266522497f, 0.266185820f, 0.266298562f, 0.266692907f, 0.266907692f +}; + +const float orange53_right_avg_power[257] = { + 0.999231100f, 0.992580175f, 0.969233215f, 0.925614893f, 0.871408045f, 0.826101780f, 0.803222895f, 0.800087631f, 0.802672029f, + 0.801490188f, 0.796555817f, 0.790879488f, 0.784882724f, 0.777585745f, 0.769326210f, 0.761789441f, 0.756145239f, 0.752754092f, + 0.751703024f, 0.752594173f, 0.754317880f, 0.755515277f, 0.754378498f, 0.748860359f, 0.738919020f, 0.727488697f, 0.718792558f, + 0.714865267f, 0.713446736f, 0.711076498f, 0.706021905f, 0.697553098f, 0.684623063f, 0.667031527f, 0.647006035f, 0.627680719f, + 0.609939933f, 0.592472672f, 0.574803054f, 0.558499217f, 0.544599831f, 0.532128096f, 0.520152628f, 0.509682238f, 0.501904130f, + 0.496162385f, 0.491121918f, 0.486813396f, 0.483951330f, 0.482198298f, 0.480713189f, 0.479654074f, 0.479590476f, 0.479965866f, + 0.479589254f, 0.478181243f, 0.476334095f, 0.474199444f, 0.471616089f, 0.469089746f, 0.467486322f, 0.466943622f, 0.467153549f, + 0.468381166f, 0.470996737f, 0.474416614f, 0.477639019f, 0.480612457f, 0.483910263f, 0.487287015f, 0.489909321f, 0.491668850f, + 0.493155539f, 0.494319856f, 0.494512051f, 0.493615031f, 0.492155492f, 0.490116775f, 0.486886710f, 0.482303619f, 0.476902038f, + 0.470775038f, 0.463377595f, 0.454571068f, 0.445130944f, 0.435581058f, 0.425568998f, 0.414717495f, 0.403531373f, 0.392556936f, + 0.381436378f, 0.369506508f, 0.357099295f, 0.345049500f, 0.333368897f, 0.321326375f, 0.308959186f, 0.297232091f, 0.286592871f, + 0.276453108f, 0.266589880f, 0.257950366f, 0.251341701f, 0.246435612f, 0.242861211f, 0.241405189f, 0.242839754f, 0.246688128f, + 0.252115428f, 0.259297341f, 0.268399984f, 0.278481483f, 0.288520366f, 0.298599035f, 0.308846802f, 0.318350822f, 0.326248646f, + 0.332813978f, 0.338464528f, 0.342543274f, 0.344278336f, 0.344031811f, 0.342641503f, 0.339995682f, 0.335437506f, 0.329174429f, + 0.322237372f, 0.315035462f, 0.306967229f, 0.297821850f, 0.288482070f, 0.279766560f, 0.271234214f, 0.262228251f, 0.253214896f, + 0.245183259f, 0.237939596f, 0.230546176f, 0.223051578f, 0.216552779f, 0.211263061f, 0.206180066f, 0.200917527f, 0.196485907f, + 0.193453044f, 0.190857053f, 0.187853232f, 0.185171053f, 0.183685005f, 0.182665780f, 0.180928215f, 0.178784713f, 0.177342966f, + 0.176323384f, 0.174430951f, 0.171496049f, 0.168740034f, 0.166518897f, 0.163711995f, 0.159658119f, 0.155442193f, 0.152056932f, + 0.148795277f, 0.144545168f, 0.139905334f, 0.136263832f, 0.133493021f, 0.130194828f, 0.126240104f, 0.123071767f, 0.121281922f, + 0.119557180f, 0.117016964f, 0.114773229f, 0.114072219f, 0.114103459f, 0.113414355f, 0.112460621f, 0.112842396f, 0.114564091f, + 0.115944758f, 0.116569765f, 0.117913686f, 0.120910525f, 0.124211200f, 0.126575813f, 0.128826424f, 0.132578567f, 0.137430578f, + 0.141675219f, 0.144987956f, 0.148879051f, 0.154273912f, 0.159992099f, 0.164641231f, 0.168560207f, 0.173201621f, 0.178906262f, + 0.184429348f, 0.188756809f, 0.192309171f, 0.196154252f, 0.200732291f, 0.205381230f, 0.209404662f, 0.212832779f, 0.216197237f, + 0.220162451f, 0.225029215f, 0.230637416f, 0.236752108f, 0.243243530f, 0.249900997f, 0.256293535f, 0.261716694f, 0.265186161f, + 0.265652657f, 0.262010813f, 0.253508776f, 0.243198514f, 0.244490802f, 0.255167097f, 0.258825988f, 0.257396817f, 0.256197631f, + 0.256865948f, 0.258354962f, 0.259370565f, 0.259730458f, 0.259894609f, 0.260285556f, 0.260970831f, 0.261650831f, 0.262020200f, + 0.262095064f, 0.262225062f, 0.262741268f, 0.263585031f, 0.264350951f, 0.264654577f, 0.264539272f, 0.264409125f, 0.264633715f, + 0.265172601f, 0.265621960f, 0.265678704f, 0.265469313f, 0.265454412f, 0.265907466f, 0.266625792f, 0.267101586f, 0.266997635f, + 0.266522497f, 0.266185820f, 0.266298562f, 0.266692907f, 0.266907692f +}; + +const float orange53_coherence[257] = { + 0.929530263f, 0.921171963f, 0.900268972f, 0.876067519f, 0.855227590f, 0.837884128f, 0.823401272f, 0.818804145f, 0.835025251f, + 0.871971071f, 0.911253273f, 0.929330528f, 0.921199203f, 0.900894165f, 0.882577479f, 0.867001534f, 0.849280477f, 0.832460761f, + 0.824062645f, 0.823441386f, 0.820908070f, 0.811902404f, 0.802339375f, 0.798648477f, 0.797345281f, 0.791158736f, 0.779512227f, + 0.768243194f, 0.760565042f, 0.754912853f, 0.751044095f, 0.752276063f, 0.759258866f, 0.766927004f, 0.769716740f, 0.767338514f, + 0.763358235f, 0.759508014f, 0.755201221f, 0.750362694f, 0.746060252f, 0.742611766f, 0.739434779f, 0.736354828f, 0.733443379f, + 0.730109870f, 0.726028502f, 0.722365141f, 0.720153689f, 0.718220115f, 0.714793265f, 0.710619092f, 0.708084404f, 0.707218647f, + 0.705624878f, 0.702472746f, 0.700073540f, 0.699947894f, 0.700519860f, 0.699934483f, 0.699344158f, 0.700895131f, 0.704551995f, + 0.708814025f, 0.713567019f, 0.719995975f, 0.728467822f, 0.738399088f, 0.749545693f, 0.761859894f, 0.774593413f, 0.787218869f, + 0.800481200f, 0.814727187f, 0.828367889f, 0.839860320f, 0.850490928f, 0.862034321f, 0.873037636f, 0.880097568f, 0.883217216f, + 0.885473788f, 0.887664974f, 0.886511028f, 0.880120754f, 0.871120989f, 0.862524390f, 0.853262126f, 0.840783834f, 0.825854301f, + 0.811407208f, 0.798167706f, 0.784307659f, 0.769172490f, 0.754072189f, 0.739893615f, 0.726129174f, 0.712544501f, 0.699519753f, + 0.686980069f, 0.674778104f, 0.663931608f, 0.655511260f, 0.648816824f, 0.642671287f, 0.638217211f, 0.637585819f, 0.640332758f, + 0.643755615f, 0.647433281f, 0.653589368f, 0.662824631f, 0.672268033f, 0.680022597f, 0.687623680f, 0.696763635f, 0.705829978f, + 0.712574661f, 0.717432320f, 0.721986175f, 0.725707173f, 0.727064371f, 0.726255059f, 0.724350274f, 0.720927835f, 0.715189219f, + 0.708206475f, 0.701428175f, 0.693923056f, 0.684313059f, 0.674107075f, 0.666009307f, 0.659245491f, 0.650998116f, 0.641600072f, + 0.634524226f, 0.630267978f, 0.625348687f, 0.618164837f, 0.611785769f, 0.608430445f, 0.605561733f, 0.600407422f, 0.594782710f, + 0.591767371f, 0.590365708f, 0.587845862f, 0.584915996f, 0.584355533f, 0.585834682f, 0.586913347f, 0.587935925f, 0.591403484f, + 0.596784472f, 0.601111054f, 0.604539037f, 0.610374093f, 0.618451059f, 0.624519289f, 0.627448440f, 0.631859899f, 0.639748096f, + 0.646256745f, 0.647378445f, 0.647664309f, 0.652599990f, 0.659044445f, 0.659743190f, 0.656243205f, 0.656651020f, 0.662200928f, + 0.664544880f, 0.660030127f, 0.656303048f, 0.659881413f, 0.664978266f, 0.662953973f, 0.657274961f, 0.658065319f, 0.665406108f, + 0.668446958f, 0.663809955f, 0.661349833f, 0.668595374f, 0.677367866f, 0.677208483f, 0.672289610f, 0.675831020f, 0.688208520f, + 0.695776582f, 0.691749871f, 0.687812865f, 0.696674168f, 0.711764693f, 0.716045380f, 0.706839681f, 0.701565385f, 0.711955190f, + 0.726487696f, 0.723370016f, 0.700417101f, 0.677427649f, 0.670733511f, 0.671355724f, 0.654210806f, 0.608316183f, 0.549225986f, + 0.504217446f, 0.484227657f, 0.475346446f, 0.452598959f, 0.399407327f, 0.319485664f, 0.229244962f, 0.146649837f, 0.083417825f, + 0.041744832f, 0.018142883f, 0.006854009f, 0.002511850f, 0.001177550f, 0.000840970f, 0.000701097f, 0.000571384f, 0.000458581f, + 0.000376965f, 0.000320562f, 0.000278847f, 0.000245546f, 0.000218281f, 0.000195632f, 0.000176647f, 0.000160827f, 0.000147978f, + 0.000137649f, 0.000129066f, 0.000121431f, 0.000114406f, 0.000108067f, 0.000102595f, 0.000097917f, 0.000093750f, 0.000089854f, + 0.000086255f, 0.000083183f, 0.000080804f, 0.000079026f, 0.000077552f, 0.000076117f, 0.000074693f, 0.000073431f, 0.000072456f, + 0.000071701f, 0.000071002f, 0.000070286f, 0.000069692f, 0.000069457f +}; + +/*----------------------------------------------------------------------------------* + * t-design and SN3D normalization table + *----------------------------------------------------------------------------------*/ + + /* SN3D norm */ +const float norm_sn3d_hoa3[16] = +{ + 1.f, 1.7320508f, 1.7320508f, 1.7320508f, 2.2360680f, 2.2360680f, 2.2360680f, 2.2360680f, + 2.2360680f, 2.6457512f, 2.6457512f, 2.6457512f, 2.6457512f, 2.6457512f, 2.6457512f, 2.6457512f +}; + +/* Order 11 t-design */ +const uint16_t t_design_11_size = 70; + +const float t_design_11_azimuth[70] = +{ + 1.329273e+02f, -8.393495e+01f, 8.474100e+00f, -1.133408e+02f, -1.032659e+02f, -3.323704e+01f, 2.185643e+01f, -1.565395e+02f, + -6.426475e+01f, 1.657795e+02f, -2.520283e+01f, -9.700380e+01f, 2.785464e+01f, 1.532142e+02f, -1.550616e+02f, -1.184214e+01f, + 8.053873e+01f, -4.205616e+01f, -3.122333e+01f, 3.883790e+01f, 9.376069e+01f, -8.475602e+01f, 7.755368e+00f, -1.222769e+02f, + 4.680127e+01f, -2.476863e+01f, 9.989047e+01f, -1.347840e+02f, -8.308802e+01f, 6.012817e+01f, 1.526447e+02f, 2.975767e+01f, + 4.077932e+01f, 1.101839e+02f, 1.656521e+02f, -1.299266e+01f, 7.973599e+01f, -5.052453e+01f, 1.189239e+02f, 4.722029e+01f, + 1.719253e+02f, -6.251458e+01f, -1.111567e+01f, 1.320180e+02f, -1.353555e+02f, 1.023709e+02f, 1.127393e+02f, -1.783050e+02f, + -1.223199e+02f, 5.907635e+01f, 1.517042e+02f, 2.137634e+01f, -1.690055e+02f, 1.189808e+02f, -1.160893e+02f, 9.647679e+00f, + 6.089332e+01f, -1.560215e+02f, -6.346030e+01f, 1.749298e+02f, -1.752888e+02f, -1.059519e+02f, -5.019283e+01f, 1.313583e+02f, + -1.362968e+02f, 9.356446e+01f, -9.708401e+01f, -1.691583e+02f, -4.413238e+01f, 8.147954e+01f +}; + +const float t_design_11_elevation[70] = +{ + 7.692547e+00f, -2.373007e+01f, 2.351276e+01f, 7.042259e+01f, -9.896944e+00f, -7.075133e+01f, -2.646185e+01f, 4.777649e+01f, + -7.720470e+00f, 4.453436e+01f, 2.638979e+01f, -4.465789e+01f, 9.767035e+00f, -4.770533e+01f, 7.453029e+00f, -2.359012e+01f, + 2.371945e+01f, 7.043827e+01f, -9.835416e+00f, -7.049808e+01f, -2.629492e+01f, 4.761480e+01f, -7.517185e+00f, 4.428623e+01f, + 2.664426e+01f, -4.456937e+01f, 9.912719e+00f, -4.795996e+01f, 7.296799e+00f, -2.334460e+01f, 2.364153e+01f, 7.068431e+01f, + -9.581404e+00f, -7.039345e+01f, -2.642582e+01f, 4.775107e+01f, -7.308536e+00f, 4.426328e+01f, 2.671406e+01f, -4.431497e+01f, + 9.758997e+00f, -4.803619e+01f, 7.439651e+00f, -2.333261e+01f, 2.338690e+01f, 7.082191e+01f, -9.485964e+00f, -7.058019e+01f, + -2.667403e+01f, 4.799784e+01f, -7.382762e+00f, 4.449706e+01f, 2.650250e+01f, -4.424619e+01f, 9.518451e+00f, -4.782814e+01f, + 7.684274e+00f, -2.357068e+01f, 2.330745e+01f, 7.065865e+01f, -9.680889e+00f, -7.080268e+01f, -2.669635e+01f, 4.801363e+01f, + -7.637348e+00f, 4.466512e+01f, 2.630235e+01f, -4.445764e+01f, 9.523415e+00f, -4.762422e+01f +}; + + +/*----------------------------------------------------------------------* +* Reverberator ROM tables +*-----------------------------------------------------------------------*/ + +const float ivas_reverb_default_fc[IVAS_REVERB_DEFAULT_N_BANDS] = +{ + 20.0f, 25.0f, 31.5f, 40.0f, + 50.0f, 63.0f, 80.0f, 100.0f, + 125.0f, 160.0f, 200.0f, 250.0f, + 315.0f, 400.0f, 500.0f, 630.0f, + 800.0f, 1000.0f, 1250.0f, 1600.0f, + 2000.0f, 2500.0f, 3150.0f, 4000.0f, + 5000.0f, 6300.0f, 8000.0f, 10000.0f, + 12500.0f, 16000.0f, 20000.0f +}; + +const float ivas_reverb_default_RT60[IVAS_REVERB_DEFAULT_N_BANDS] = +{ + 1.3622f, 1.4486f, 1.3168f, 1.5787f, + 1.4766f, 1.3954f, 1.2889f, 1.3462f, + 1.0759f, 1.0401f, 1.097f, 1.085f, + 1.091f, 1.0404f, 1.0499f, 1.0699f, + 1.1028f, 1.1714f, 1.1027f, 1.0666f, + 1.055f, 1.0553f, 1.0521f, 1.0569f, + 1.0421f, 0.97822f, 0.80487f, 0.75944f, + 0.71945f, 0.61682f, 0.60031f +}; + +const float ivas_reverb_default_DSR[IVAS_REVERB_DEFAULT_N_BANDS] = +{ + 1.8811e-08f, 2.1428e-08f, 1.3972e-08f, 1.51e-08f, + 1.287e-08f, 1.8747e-08f, 2.413e-08f, 3.9927e-08f, + 8.9719e-08f, 1.902e-07f, 3.702e-07f, 6.1341e-07f, + 7.1432e-07f, 6.5331e-07f, 4.6094e-07f, 5.4683e-07f, + 7.0134e-07f, 6.856e-07f, 7.114e-07f, 6.9604e-07f, + 5.2939e-07f, 5.699e-07f, 6.1773e-07f, 5.7488e-07f, + 4.7748e-07f, 2.7213e-07f, 1.3681e-07f, 1.0941e-07f, + 6.2001e-08f, 2.8483e-08f, 2.6267e-08f +}; + +/*----------------------------------------------------------------------------------* + * Renderer SBA & MC enc/dec matrices + *----------------------------------------------------------------------------------*/ + +/* CICP1 - Mono */ +const float ls_azimuth_CICP1[1] = { 0.0f }; +const float ls_elevation_CICP1[1] = { 0.0f }; +const uint32_t ls_LFE_last_idx_CICP1[1] = { 0 }; + +/* CICP2 - Stereo */ +const uint32_t ls_LFE_last_idx_CICP2[2] = { 0, 1 }; + +/* CICP6 - 5.1 */ +const uint32_t ls_LFE_last_idx_CICP6[6] = { 0, 1, 2, 4, 5, 3 }; + +/* CICP12 - 7.1 */ +const uint32_t ls_LFE_last_idx_CICP12[8] = { 0, 1, 2, 4, 5, 6, 7, 3 }; + +/* CICP14 - 5.1.2 */ +const uint32_t ls_LFE_last_idx_CICP14[8] = { 0, 1, 2, 4, 5, 6, 7, 3 }; + +/* CICP16 - 5.1.4 */ +const uint32_t ls_LFE_last_idx_CICP16[10] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 3 }; + +/* CICP19 - 7.1.4 */ +const uint32_t ls_LFE_last_idx_CICP19[12] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 3 }; + +/*----------------------------------------------------------------------------------* + * LS Renderer ROM tables + *----------------------------------------------------------------------------------*/ + + /* All matrices are stored with dimensions nchan_in x nchan_out */ + /* Downmix matrices */ +const float ls_conversion_cicpX_mono[12][1] = +{ +#ifdef EXT_RENDERER + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, + {1.00000000f}, +#else + {1.00000000f}, + {1.00000000f}, + {0.70710677f}, + {0.70710677f}, + {0.79999995f}, + {0.79999995f}, + {0.79999995f}, + {0.79999995f}, + {0.849999964f}, + {0.849999964f}, + {0.849999964f}, + {0.849999964f} +#endif +}; + +const float ls_conversion_cicpX_stereo[12][2] = +{ + {1.00000000f, 0.00000000f}, + {0.00000000f, 1.00000000f}, + {0.70710677f, 0.70710677f}, + {0.70710677f, 0.70710677f}, + {0.79999995f, 0.00000000f}, + {0.00000000f, 0.79999995f}, + {0.79999995f, 0.00000000f}, + {0.00000000f, 0.79999995f}, + {0.849999964f, 0.000000000f}, + {0.000000000f, 0.849999964f}, + {0.849999964f, 0.000000000f}, + {0.000000000f, 0.849999964f} +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp6[] = +{ + /* First row indicates the number of non-zero elements */ + {8, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.000000000f}, + {7, 1.000000000f}, + {14, 1.000000000f}, + {21, 1.000000000f}, + {28, 1.000000000f}, + {35, 1.000000000f}, + {40, 1.000000000f}, + {47, 1.000000000f} +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp6[] = +{ + /* First row indicates the number of non-zero elements */ + {8, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.000000000f}, + {7, 1.000000000f}, + {14, 1.000000000f}, + {21, 1.000000000f}, + {28, 1.000000000f}, + {35, 1.000000000f}, + {36, 0.849999964f}, + {43, 0.849999964f} +}; + +#ifdef FIX_I54_LS_CONVERSION +const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp12[] = +{ + /* First row indicates the number of non-zero elements */ + {8, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.000000000f}, + {9, 1.000000000f}, + {18, 1.000000000f}, + {27, 1.000000000f}, + {36, 1.000000000f}, + {45, 1.000000000f}, + {48, 0.849999964f}, + {57, 0.849999964f} +}; +#endif + +const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp6[] = +{ + /* First row indicates the number of non-zero elements */ + {10, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.000000000f}, + {7, 1.000000000f}, + {14, 1.000000000f}, + {21, 1.000000000f}, + {28, 1.000000000f}, + {35, 1.000000000f}, + {36, 0.849999964f}, + {43, 0.849999964f}, + {52, 0.849999964f}, + {59, 0.849999964f} +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp12[] = +{ + /* First row indicates the number of non-zero elements */ + {10, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.000000000f}, + {9, 1.000000000f}, + {18, 1.000000000f}, + {27, 1.000000000f}, + {36, 1.000000000f}, + {45, 1.000000000f}, + {48, 0.849999964f}, + {57, 0.849999964f}, + {68, 0.849999964f}, + {77, 0.849999964f} + +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp14[] = +{ + /* First row indicates the number of non-zero elements */ + {10, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ +#ifdef FIX_I54_LS_CONVERSION + {0, 1.000000000f}, + {9, 1.000000000f}, + {18, 1.000000000f}, + {27, 1.000000000f}, + {36, 1.000000000f}, + {45, 1.000000000f}, + {54, 1.000000000f}, + {63, 1.000000000f}, + {68, 0.849999964f}, + {77, 0.849999964f}, +#else + {0, 1.000000000f}, + {11, 1.000000000f}, + {22, 1.000000000f}, + {33, 1.000000000f}, + {44, 1.000000000f}, + {48, 0.849999964f}, + {55, 1.000000000f}, + {59, 0.849999964f}, + {66, 1.000000000f}, + {77, 1.000000000f}, +#endif +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp6[] = +{ + /* First row indicates the number of non-zero elements */ + {14, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.000000000f}, + {7, 1.000000000f}, + {14, 1.000000000f}, + {21, 1.000000000f}, + {28, 1.000000000f}, + {35, 1.000000000f}, + {36, 0.367322683f}, + {40, 0.930093586f}, + {43, 0.367322683f}, + {47, 0.930093586f}, + {48, 0.849999964f}, + {55, 0.849999964f}, + {64, 0.849999964f}, + {71, 0.849999964f} +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp12[] = +{ + /* First row indicates the number of non-zero elements */ + {14, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.000000000f}, + {9, 1.000000000f}, + {18, 1.000000000f}, + {27, 1.000000000f}, + {38, 1.000000000f}, + {47, 1.000000000f}, + {48, 0.367322683f}, + {52, 0.930093586f}, + {57, 0.367322683f}, + {61, 0.930093586f}, + {64, 0.849999964f}, + {73, 0.849999964f}, + {84, 0.849999964f}, + {93, 0.849999964f} +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp14[] = +{ + /* First row indicates the number of non-zero elements */ + {14, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.000000000f}, + {9, 1.000000000f}, + {18, 1.000000000f}, + {27, 1.000000000f}, + {36, 1.000000000f}, + {45, 1.000000000f}, + {48, 0.367322683f}, + {52, 0.930093586f}, + {57, 0.367322683f}, + {61, 0.930093586f}, + {70, 1.000000000f}, + {79, 1.000000000f}, + {84, 0.849999964f}, + {93, 0.849999964f} +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp16[] = +{ + /* First row indicates the number of non-zero elements */ + {14, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.000000000f}, + {11, 1.000000000f}, + {22, 1.000000000f}, + {33, 1.000000000f}, + {44, 1.000000000f}, + {55, 1.000000000f}, + {60, 0.367322683f}, + {64, 0.930093586f}, + {71, 0.367322683f}, + {75, 0.930093586f}, + {86, 1.000000000f}, + {97, 1.000000000f}, + {108, 1.000000000f}, + {119, 1.000000000f} +}; + +/* Upmix matrices */ +const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp14[] = +{ + /* First row indicates the number of non-zero elements */ + {8, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.0f}, + {9, 1.0f}, + {18, 1.0f}, + {27, 1.0f}, + {36, 1.0f}, + {45, 1.0f}, + {52, 1.0f}, + {61, 1.0f} +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp16[] = +{ + /* First row indicates the number of non-zero elements */ + {8, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.0f}, + {11, 1.0f}, + {22, 1.0f}, + {33, 1.0f}, + {44, 1.0f}, + {55, 1.0f}, + {64, 1.0f}, + {75, 1.0f} +}; + +#ifdef FIX_I54_LS_CONVERSION +const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp19[] = +{ + /* First row indicates the number of non-zero elements */ + {8, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.0f}, + {13, 1.0f}, + {26, 1.0f}, + {39, 1.0f}, + {54, 1.0f}, + {67, 1.0f}, + {76, 1.0f}, + {89, 1.0f} +}; +#endif + +const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp19[] = +{ + /* First row indicates the number of non-zero elements */ + {8, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.0f}, + {13, 1.0f}, + {26, 1.0f}, + {39, 1.0f}, + {52, 1.0f}, + {65, 1.0f}, + {80, 1.0f}, + {93, 1.0f} +}; + +const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp19[] = +{ + /* First row indicates the number of non-zero elements */ + {10, 0.0f}, + /* Index of non-zero element, value of non-zero element*/ + {0, 1.0f}, + {13, 1.0f}, + {26, 1.0f}, + {39, 1.0f}, + {52, 1.0f}, + {65, 1.0f}, + {80, 1.0f}, + {93, 1.0f}, + {106, 1.0f}, + {119, 1.0f} +}; + +/* + * Mapping table of input config : output config with corresponding matrix + * NULL indicates a 1:1 mapping of existing input channels to output channels ( used for upmix ) + */ + +const LS_CONVERSION_MAPPING ls_conversion_mapping[LS_SETUP_CONVERSION_NUM_MAPPINGS] = +{ + /* Dowmix mappings - NULL is a special case for MONO / STEREO downmix */ +#ifdef EXT_RENDERER + {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_MONO, NULL}, +#endif + {AUDIO_CONFIG_5_1, AUDIO_CONFIG_MONO, NULL}, + {AUDIO_CONFIG_7_1, AUDIO_CONFIG_MONO, NULL}, + {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_MONO, NULL}, + {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_MONO, NULL}, + {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_MONO, NULL}, + + {AUDIO_CONFIG_5_1, AUDIO_CONFIG_STEREO, NULL}, + {AUDIO_CONFIG_7_1, AUDIO_CONFIG_STEREO, NULL}, + {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_STEREO, NULL}, + {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_STEREO, NULL}, + {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_STEREO, NULL}, + + {AUDIO_CONFIG_7_1, AUDIO_CONFIG_5_1, ls_conversion_cicp12_cicp6}, + + {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_5_1, ls_conversion_cicp14_cicp6}, +#ifdef FIX_I54_LS_CONVERSION + {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_7_1, ls_conversion_cicp14_cicp12}, +#else + {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_7_1, ls_conversion_cicp14_cicp6}, +#endif + + {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_5_1, ls_conversion_cicp16_cicp6}, + {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_7_1, ls_conversion_cicp16_cicp12}, + {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_5_1_2, ls_conversion_cicp16_cicp14}, + + {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_5_1, ls_conversion_cicp19_cicp6}, + {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_7_1, ls_conversion_cicp19_cicp12}, + {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_5_1_2, ls_conversion_cicp19_cicp14}, + {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_5_1_4, ls_conversion_cicp19_cicp16}, + + /* Upmix mappings - NULL implies a 1:1 upmix */ +#ifdef EXT_RENDERER + {AUDIO_CONFIG_MONO, AUDIO_CONFIG_STEREO, NULL}, +#endif + {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_5_1, NULL}, + {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_7_1, NULL}, + {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_5_1_2, NULL}, + {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_5_1_4, NULL}, + {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_7_1_4, NULL}, + + {AUDIO_CONFIG_5_1, AUDIO_CONFIG_7_1, NULL}, + {AUDIO_CONFIG_5_1, AUDIO_CONFIG_5_1_2, NULL}, + {AUDIO_CONFIG_5_1, AUDIO_CONFIG_5_1_4, NULL}, + {AUDIO_CONFIG_5_1, AUDIO_CONFIG_7_1_4, NULL}, + + {AUDIO_CONFIG_7_1, AUDIO_CONFIG_5_1_2, ls_conversion_cicp12_cicp14}, + {AUDIO_CONFIG_7_1, AUDIO_CONFIG_5_1_4, ls_conversion_cicp12_cicp16}, +#ifdef FIX_I54_LS_CONVERSION + {AUDIO_CONFIG_7_1, AUDIO_CONFIG_7_1_4, ls_conversion_cicp12_cicp19}, +#else + {AUDIO_CONFIG_7_1, AUDIO_CONFIG_7_1_4, NULL}, +#endif + + {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_5_1_4, NULL}, + {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_7_1_4, ls_conversion_cicp14_cicp19}, + + {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_7_1_4, ls_conversion_cicp16_cicp19}, +}; + +/* clang-format on */ diff --git a/lib_rend/ivas_rom_rend.h b/lib_rend/ivas_rom_rend.h new file mode 100644 index 0000000000..166e417692 --- /dev/null +++ b/lib_rend/ivas_rom_rend.h @@ -0,0 +1,141 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + +#ifndef IVAS_ROM_REND_H +#define IVAS_ROM_REND_H + +#include +#include "options.h" +#ifdef DEBUGGING +#include "debug.h" +#endif +#include "ivas_cnst.h" +#include "ivas_stat_rend.h" + +/*----------------------------------------------------------------------------------* + * FASTCONV and PARAMETRIC binaural renderer ROM tables + *----------------------------------------------------------------------------------*/ + +extern const float dmxmtx[BINAURAL_CHANNELS][11]; + +extern const int16_t channelIndex_CICP6[5]; +extern const int16_t channelIndex_CICP12[7]; +extern const int16_t channelIndex_CICP14[7]; +extern const int16_t channelIndex_CICP16[9]; +extern const int16_t channelIndex_CICP19[11]; + +/*----------------------------------------------------------------------------------* + * TD ISM Object renderer + *----------------------------------------------------------------------------------*/ + +extern const int16_t TDREND_SRC_REND_MaxTargetTimes[IVAS_NUM_SUPPORTED_FS]; +extern const int16_t TDREND_SRC_REND_MaxBlockLengths[IVAS_NUM_SUPPORTED_FS]; +extern const int16_t TDREND_MaxITD[IVAS_NUM_SUPPORTED_FS]; +extern const float TDREND_MaxITD_Incr[IVAS_NUM_SUPPORTED_FS]; + +extern const int16_t HRTF_MODEL_N_CPTS_VAR[HRTF_MODEL_N_SECTIONS]; + +extern const float SincTable[321]; + +extern const float orange53_left_avg_power[257]; +extern const float orange53_right_avg_power[257]; +extern const float orange53_coherence[257]; + + +/*----------------------------------------------------------------------------------* + * t-design and SN3D normalization table + *----------------------------------------------------------------------------------*/ + +/* SN3D norm */ +extern const float norm_sn3d_hoa3[16]; + +/* Order 11 t-design */ +extern const uint16_t t_design_11_size; +extern const float t_design_11_azimuth[70]; +extern const float t_design_11_elevation[70]; + + +/*----------------------------------------------------------------------* + * Reverberator ROM tables + *-----------------------------------------------------------------------*/ + +extern const float ivas_reverb_default_fc[]; +extern const float ivas_reverb_default_RT60[]; +extern const float ivas_reverb_default_DSR[]; + +/*----------------------------------------------------------------------------------* + * Renderer SBA & MC enc/dec matrices + *----------------------------------------------------------------------------------*/ + +extern const float hoa_dec_mtx_CICP1[16]; +extern const float ls_azimuth_CICP1[1]; +extern const float ls_elevation_CICP1[1]; +extern const uint32_t ls_LFE_last_idx_CICP1[1]; +extern const uint32_t ls_LFE_last_idx_CICP2[2]; +extern const uint32_t ls_LFE_last_idx_CICP6[6]; +extern const uint32_t ls_LFE_last_idx_CICP12[8]; +extern const uint32_t ls_LFE_last_idx_CICP14[8]; +extern const uint32_t ls_LFE_last_idx_CICP16[10]; +extern const uint32_t ls_LFE_last_idx_CICP19[12]; + +/*----------------------------------------------------------------------------------* + * LS Configuration Converter ROM tables + *----------------------------------------------------------------------------------*/ + +/* Downmix matrices */ +extern const float ls_conversion_cicpX_mono[12][1]; +extern const float ls_conversion_cicpX_stereo[12][2]; +extern const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp6[]; +extern const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp6[]; +#ifdef FIX_I54_LS_CONVERSION +extern const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp12[]; +#endif +extern const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp6[]; +extern const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp14[]; +extern const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp6[]; +extern const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp12[]; +extern const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp14[]; +extern const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp16[]; + +/* Upmix matrices */ +extern const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp14[]; +extern const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp16[]; +#ifdef FIX_I54_LS_CONVERSION +extern const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp19[]; +#endif +extern const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp19[]; +extern const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp19[]; + +/* Mapping table of input config : output config with corresponding matrix */ +extern const LS_CONVERSION_MAPPING ls_conversion_mapping[]; + +#endif /* IVAS_ROM_REND_H */ diff --git a/lib_dec/ivas_rotation.c b/lib_rend/ivas_rotation.c similarity index 98% rename from lib_dec/ivas_rotation.c rename to lib_rend/ivas_rotation.c index 77809d8270..d141025ab6 100644 --- a/lib_dec/ivas_rotation.c +++ b/lib_rend/ivas_rotation.c @@ -322,11 +322,19 @@ void rotateFrame_shd( /* 1ms linear crossfade */ fade_len_smp = NS2SA( output_fs, 1000000 ); +#ifdef EXT_RENDERER + tmp = 1.0f / (fade_len_smp - 1); + for ( i = 0; i < fade_len_smp; i++ ) + { + cross_fade[i] = i * tmp; + } +#else tmp = 1.0f / fade_len_smp; for ( i = 0; i < fade_len_smp; i++ ) { cross_fade[i] = ( i + 1 ) * tmp; } +#endif /* initialize rotation matrices with zeros */ for ( i = 0; i < HEADROT_SHMAT_DIM; i++ ) @@ -442,11 +450,19 @@ void rotateFrame_sd( /* 1ms linear crossfade */ fade_len_smp = NS2SA( output_Fs, 1000000 ); +#ifdef EXT_RENDERER + tmp = 1.0f / (fade_len_smp - 1); + for ( i = 0; i < fade_len_smp; i++ ) + { + cross_fade[i] = i * tmp; + } +#else tmp = 1.0f / fade_len_smp; for ( i = 0; i < fade_len_smp; i++ ) { cross_fade[i] = ( i + 1 ) * tmp; } +#endif /* Get next quaternion and calculate rotation matrix */ QuatToRotMat( hHeadTrackData->Quaternions[hHeadTrackData->num_quaternions++], hHeadTrackData->Rmat ); @@ -473,7 +489,11 @@ void rotateFrame_sd( /* gains for previous subframe rotation */ rotateAziEle( hTransSetup.ls_azimuth[ch_in_woLFE], hTransSetup.ls_elevation[ch_in_woLFE], &azimuth, &elevation, hHeadTrackData->Rmat_prev, hTransSetup.is_planar_setup ); +#ifdef EXT_RENDERER + if ( hEFAPdata != NULL && ( hTransSetup.ls_azimuth[ch_in_woLFE] != azimuth || hTransSetup.ls_elevation[ch_in_woLFE] != elevation ) ) +#else if ( hEFAPdata != NULL && ( hTransSetup.ls_azimuth[ch_in_woLFE] != azimuth && hTransSetup.ls_elevation[ch_in_woLFE] != elevation ) ) +#endif { efap_determine_gains( hEFAPdata, tmp_gains, azimuth, elevation, EFAP_MODE_EFAP ); for ( ch_out = 0; ch_out < nchan; ch_out++ ) diff --git a/lib_rend/ivas_sba_rendering.c b/lib_rend/ivas_sba_rendering.c new file mode 100644 index 0000000000..1e8b61caca --- /dev/null +++ b/lib_rend/ivas_sba_rendering.c @@ -0,0 +1,584 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + +#include +#include "options.h" +#include "prot.h" +#include "ivas_prot.h" +#include "ivas_stat_dec.h" +#include "ivas_cnst.h" +#ifdef DEBUGGING +#include "debug.h" +#endif +#include "wmops.h" + + +/*-----------------------------------------------------------------------* + * Local function prototypes + *-----------------------------------------------------------------------*/ + +static void ivas_sba_mtx_mult( float output_f[][L_FRAME48k], const int16_t output_frame, const int16_t nchan_in, IVAS_OUTPUT_SETUP output_setup, const float *mtx_hoa_decoder ); +static void ivas_sba_dmx_dec( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); + +#ifdef DEBUG_MODE_DIRAC +static void debug_mode_dirac( float output[MAX_OUTPUT_CHANNELS][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); +#endif + + +/*-------------------------------------------------------------------------* + * ivas_mc2sba() + * + * MC signals transformed into SBA in TD domain + *-------------------------------------------------------------------------*/ + +void ivas_mc2sba( + IVAS_OUTPUT_SETUP hIntSetup, /* i : Format of decoder output */ + float buffer_td[][L_FRAME48k], /* i/o: MC signals (on input) and the HOA3 (on output) */ + const int16_t output_frame, /* i : output frame length per channel */ + const int16_t sba_order, /* i : Ambisonic (SBA) order */ + const float gain_lfe /* i : gain for LFE, 0 = ignore LFE */ +) +{ + int16_t i, j, k; + int16_t idx_lfe, idx_in; + float buffer_tmp[16][L_FRAME48k]; + float gains[16]; + int16_t azimuth, elevation; + int16_t sba_num_chans; + + assert( ( sba_order <= 3 ) && "Only order up to 3 is supported!" ); + + /* Init*/ + sba_num_chans = ( sba_order + 1 ) * ( sba_order + 1 ); + for ( j = 0; j < sba_num_chans; j++ ) + { + set_zero( buffer_tmp[j], output_frame ); + } + + /* HOA encoding*/ + idx_lfe = 0; + idx_in = 0; + for ( i = 0; i < hIntSetup.nchan_out_woLFE + hIntSetup.num_lfe; i++ ) + { + if ( ( hIntSetup.num_lfe > 0 ) && ( i == hIntSetup.index_lfe[idx_lfe] ) ) + { + if ( gain_lfe > 0.f ) + { + /* Add LFE to omni W with gain*/ + for ( k = 0; k < output_frame; k++ ) + { + buffer_tmp[0][k] += gain_lfe * buffer_td[i][k]; + } + } + + if ( idx_lfe < ( hIntSetup.num_lfe - 1 ) ) + { + idx_lfe++; + } + } + else + { + azimuth = (int16_t) ( hIntSetup.ls_azimuth[idx_in] ); + elevation = (int16_t) ( hIntSetup.ls_elevation[idx_in] ); + idx_in++; + + /* get HOA response for direction (ACN/SN3D)*/ + ivas_dirac_dec_get_response( + azimuth, + elevation, + gains, + sba_order ); + + for ( j = 0; j < sba_num_chans; j++ ) + { + for ( k = 0; k < output_frame; k++ ) + { + buffer_tmp[j][k] += gains[j] * buffer_td[i][k]; + } + } + } + } + + for ( j = 0; j < sba_num_chans; j++ ) + { + mvr2r( buffer_tmp[j], buffer_td[j], output_frame ); + } + + return; +} + + +/*-------------------------------------------------------------------------* + * ivas_sba2MC_cldfb() + * + * SBA signals transformed into MC in CLDFB domain + *-------------------------------------------------------------------------*/ + +void ivas_sba2mc_cldfb( + IVAS_OUTPUT_SETUP hInSetup, /* i : Format of input layout */ + float RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb real part */ + float ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb imag part */ + const int16_t nb_channels_out, /* i : nb of output channels */ + const int16_t nb_bands, /* i : nb of CLDFB bands to process */ + const float *hoa_dec_mtx /* i : hoa decoding mtx */ +) +{ + int16_t iBlock, iBand, n, m; + float realOut[16][MAX_PARAM_SPATIAL_SUBFRAMES * CLDFB_NO_CHANNELS_MAX], imagOut[16][MAX_PARAM_SPATIAL_SUBFRAMES * CLDFB_NO_CHANNELS_MAX]; + float g; + float *p_real, *p_imag, *p_realOut, *p_imagOut; + int16_t nb_channels_in; + + wmops_sub_start( "ivas_sba2mc_cldfb" ); + + nb_channels_in = hInSetup.nchan_out_woLFE; + assert( ( nb_channels_in == 16 ) && ( nb_channels_out == 11 ) && "ivas_sba2mc_cldfb; only HOA3 to CICP19 is for now supported!" ); + + for ( n = 0; n < nb_channels_out; n++ ) + { + set_zero( realOut[n], MAX_PARAM_SPATIAL_SUBFRAMES * nb_bands ); + set_zero( imagOut[n], MAX_PARAM_SPATIAL_SUBFRAMES * nb_bands ); + + for ( m = 0; m < nb_channels_in; m++ ) + { + g = hoa_dec_mtx[SBA_NHARM_HOA3 * n + m]; + p_realOut = realOut[n]; + p_imagOut = imagOut[n]; + for ( iBlock = 0; iBlock < MAX_PARAM_SPATIAL_SUBFRAMES; iBlock++ ) + { + p_real = RealBuffer[m][iBlock]; + p_imag = ImagBuffer[m][iBlock]; + for ( iBand = 0; iBand < nb_bands; iBand++ ) + { + *p_realOut = *p_realOut + g * *( p_real++ ); + *p_imagOut = *p_imagOut + g * *( p_imag++ ); + p_realOut++; + p_imagOut++; + } + } + } + } + + for ( n = 0; n < nb_channels_out; n++ ) + { + p_realOut = realOut[n]; + p_imagOut = imagOut[n]; + for ( iBlock = 0; iBlock < MAX_PARAM_SPATIAL_SUBFRAMES; iBlock++ ) + { + p_real = RealBuffer[n][iBlock]; + p_imag = ImagBuffer[n][iBlock]; + for ( iBand = 0; iBand < nb_bands; iBand++ ) + { + *( p_real++ ) = *p_realOut++; + *( p_imag++ ) = *p_imagOut++; + } + } + } + + wmops_sub_end(); + + return; +} + +/*-------------------------------------------------------------------* + * ivas_sba_remapTCs() + * + * Get TCs from Ambisonics signal in ACN + *-------------------------------------------------------------------*/ + +int16_t ivas_sba_remapTCs( + float sba_data[][L_FRAME48k], /* i/o: SBA signals */ + Decoder_Struct *st_ivas, /* i/o: decoder struct */ + const int16_t output_frame /* i : frame length */ +) +{ + int16_t nchan_remapped; + +#ifdef DEBUG_MODE_DIRAC + debug_mode_dirac( sba_data, st_ivas->nchan_transport, output_frame ); +#endif + + nchan_remapped = st_ivas->nchan_transport; + if ( ( st_ivas->sba_mode != SBA_MODE_SPAR && st_ivas->sba_planar && nchan_remapped >= 3 ) || + ( ( st_ivas->sba_mode == SBA_MODE_SPAR ) && nchan_remapped == 3 ) ) + { + + nchan_remapped++; + if ( st_ivas->sba_mode != SBA_MODE_SPAR ) + { + assert( ( ( st_ivas->nchan_transport == 3 ) || ( st_ivas->nchan_transport == 5 ) || ( st_ivas->nchan_transport == 7 ) ) && "Number of channels must be odd for sba planar!" ); + } + + if ( nchan_remapped == 4 ) + { + /*For planar A-format channel 2 and 3 are identical -> Z=0*/ + mvr2r( sba_data[2], sba_data[3], output_frame ); + } + } + + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) + { + int16_t i = 0; + float temp; + + if ( st_ivas->nchan_transport >= 3 ) + { + /*convert WYXZ downmix to WYZX*/ + for ( i = 0; i < output_frame; i++ ) + { + temp = sba_data[2][i]; + sba_data[2][i] = sba_data[3][i]; + sba_data[3][i] = temp; + if ( st_ivas->nchan_transport == 3 ) + { + sba_data[2][i] = 0; + } + } + } + } + else + { + ivas_sba_dmx_dec( sba_data, nchan_remapped, output_frame ); + } + + if ( st_ivas->sba_mode != SBA_MODE_SPAR ) + { + ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_order, st_ivas->sba_planar, output_frame ); + } + return ( nchan_remapped ); +} + + +/*-------------------------------------------------------------------* + * ivas_sba_dmx_dec() + * + * + *-------------------------------------------------------------------*/ + +static void ivas_sba_dmx_dec( + float sba_data[][L_FRAME48k], /* i : SBA signals */ + const int16_t nchan_transport, /* i : number of transport channels */ + const int16_t output_frame /* i : frame length */ +) +{ + int16_t i; + float tmp_f[DIRAC_MAX_TRANS_CHANS]; + + if ( nchan_transport >= 7 ) + { + for ( i = 0; i < output_frame; i++ ) + { + tmp_f[0] = 0.506415f * sba_data[0][i] + 0.506415f * sba_data[1][i] + 0.506415f * sba_data[2][i] + 0.506415f * sba_data[3][i] + 0.506415f * sba_data[4][i] + 0.506415f * sba_data[5][i] + 0.506415f * sba_data[6][i]; + tmp_f[1] = -0.000000f * sba_data[0][i] + 0.531020f * sba_data[1][i] + 0.662171f * sba_data[2][i] + 0.294694f * sba_data[3][i] + -0.294694f * sba_data[4][i] + -0.662171f * sba_data[5][i] + -0.531020f * sba_data[6][i]; + tmp_f[2] = 0.679200f * sba_data[0][i] + 0.423475f * sba_data[1][i] + -0.151136f * sba_data[2][i] + -0.611938f * sba_data[3][i] + -0.611938f * sba_data[4][i] + -0.151136f * sba_data[5][i] + 0.423475f * sba_data[6][i]; + tmp_f[3] = 0.000000f * sba_data[0][i] + 0.833385f * sba_data[1][i] + -0.370891f * sba_data[2][i] + -0.668323f * sba_data[3][i] + 0.668323f * sba_data[4][i] + 0.370891f * sba_data[5][i] + -0.833385f * sba_data[6][i]; + tmp_f[4] = 0.854817f * sba_data[0][i] + -0.190215f * sba_data[1][i] + -0.770164f * sba_data[2][i] + 0.532970f * sba_data[3][i] + 0.532970f * sba_data[4][i] + -0.770164f * sba_data[5][i] + -0.190215f * sba_data[6][i]; + tmp_f[5] = 0.000000f * sba_data[0][i] + 0.691125f * sba_data[1][i] + -1.245365f * sba_data[2][i] + 1.552944f * sba_data[3][i] + -1.552944f * sba_data[4][i] + 1.245365f * sba_data[5][i] + -0.691125f * sba_data[6][i]; + tmp_f[6] = 1.592881f * sba_data[0][i] + -1.435137f * sba_data[1][i] + 0.993145f * sba_data[2][i] + -0.354449f * sba_data[3][i] + -0.354449f * sba_data[4][i] + 0.993145f * sba_data[5][i] + -1.435137f * sba_data[6][i]; + + sba_data[0][i] = tmp_f[0]; + sba_data[1][i] = tmp_f[1]; + sba_data[2][i] = sba_data[7][i]; + sba_data[3][i] = tmp_f[2]; + sba_data[4][i] = tmp_f[3]; + sba_data[8][i] = tmp_f[4]; + sba_data[9][i] = tmp_f[5]; + sba_data[15][i] = tmp_f[6]; + } + + return; + } + else if ( nchan_transport >= 5 ) + { + for ( i = 0; i < output_frame; i++ ) + { + tmp_f[0] = 0.708982f * sba_data[0][i] + 0.708982f * sba_data[1][i] + 0.708982f * sba_data[2][i] + 0.708982f * sba_data[3][i] + 0.708982f * sba_data[4][i]; + tmp_f[1] = 0.000000f * sba_data[0][i] + 1.005966f * sba_data[1][i] + 0.621721f * sba_data[2][i] + -0.621721f * sba_data[3][i] + -1.005966f * sba_data[4][i]; + tmp_f[2] = 1.057735f * sba_data[0][i] + 0.326858f * sba_data[1][i] + -0.855726f * sba_data[2][i] + -0.855726f * sba_data[3][i] + 0.326858f * sba_data[4][i]; + tmp_f[3] = 0.000000f * sba_data[0][i] + 1.079884f * sba_data[1][i] + -1.747289f * sba_data[2][i] + 1.747289f * sba_data[3][i] + -1.079884f * sba_data[4][i]; + tmp_f[4] = 1.837208f * sba_data[0][i] + -1.486333f * sba_data[1][i] + 0.567729f * sba_data[2][i] + 0.567729f * sba_data[3][i] + -1.486333f * sba_data[4][i]; + + sba_data[0][i] = tmp_f[0]; + sba_data[1][i] = tmp_f[1]; + sba_data[2][i] = sba_data[5][i]; + sba_data[3][i] = tmp_f[2]; + sba_data[4][i] = tmp_f[3]; + sba_data[8][i] = tmp_f[4]; + } + + return; + } + else if ( nchan_transport >= 3 ) + { + + /*A-format to ACN/SN3D*/ + for ( i = 0; i < output_frame; i++ ) + { + tmp_f[0] = 0.5f * ( sba_data[0][i] + sba_data[1][i] + sba_data[2][i] + sba_data[3][i] ); + tmp_f[1] = sba_data[0][i] - sba_data[1][i]; + tmp_f[2] = sba_data[2][i] - sba_data[3][i]; + tmp_f[3] = sba_data[0][i] + sba_data[1][i] - sba_data[2][i] - sba_data[3][i]; + + sba_data[0][i] = tmp_f[0]; + sba_data[1][i] = tmp_f[1]; + sba_data[2][i] = tmp_f[2]; + sba_data[3][i] = tmp_f[3]; + } + + return; + } + else if ( nchan_transport == 2 ) + { + /* do nothing for stereo DMX, upmix done in DirAC*/ + return; + } + else if ( nchan_transport == 1 ) + { + /* do nothing; simply use omni */ + return; + } + else + { + assert( 0 && "SBA: number of transport channels not supported." ); + } +} + + +/*-------------------------------------------------------------------------* + * ivas_ism2sba() + * + * ISM transformed into SBA in TD domain. + *-------------------------------------------------------------------------*/ + +void ivas_ism2sba( + float buffer_td[][L_FRAME48k], /* i/o: TD signal buffers */ + ISM_RENDERER_HANDLE hIsmRendererData, /* i/o: renderer data */ + const ISM_METADATA_HANDLE hIsmMetaData[], /* i : object metadata */ + const int16_t num_objects, /* i : number of objects */ + const int16_t output_frame, /* i : output frame length per channel */ + const int16_t sba_order /* i : Ambisonic (SBA) order */ +) +{ + int16_t i, j, k; + float buffer_tmp[16][L_FRAME48k]; + float gains[16]; + float g1, g2; + int16_t azimuth, elevation; + int16_t sba_num_chans; + + assert( ( sba_order <= 3 ) && "Only order up to 3 is supported!" ); + assert( hIsmRendererData != NULL && "hIsmRendererData not allocated!" ); + + /* Init*/ + sba_num_chans = ( sba_order + 1 ) * ( sba_order + 1 ); + for ( j = 0; j < sba_num_chans; j++ ) + { + set_zero( buffer_tmp[j], output_frame ); + } + + for ( i = 0; i < num_objects; i++ ) + { + azimuth = (int16_t) ( hIsmMetaData[i]->azimuth + 0.5f ); + elevation = (int16_t) ( hIsmMetaData[i]->elevation + 0.5f ); + + /*get HOA gets for direction (ACN/SN3D)*/ + ivas_dirac_dec_get_response( + azimuth, + elevation, + gains, + sba_order ); + + for ( j = 0; j < sba_num_chans; j++ ) + { + g2 = 0.f; + for ( k = 0; k < output_frame; k++ ) + { + g2 += 1.f / output_frame; + g1 = 1.0f - g2; + buffer_tmp[j][k] += ( g2 * gains[j] + g1 * hIsmRendererData->prev_gains[i][j] ) * buffer_td[i][k]; + } + hIsmRendererData->prev_gains[i][j] = gains[j]; + } + } + + for ( j = 0; j < sba_num_chans; j++ ) + { + mvr2r( buffer_tmp[j], buffer_td[j], output_frame ); + } + + return; +} + +/*-------------------------------------------------------------------* + * ivas_sba_linear_renderer() + * + * Linear rendering for SBA format + *-------------------------------------------------------------------*/ + +ivas_error ivas_sba_linear_renderer( + float output_f[][L_FRAME48k], /* i/o: synthesized core-coder transport channels/DirAC output */ + const int16_t output_frame, /* i : output frame length per channel */ + const int16_t nchan_in, /* i : number of input ambisonics channels */ + const AUDIO_CONFIG output_config, /* i : output audio configuration */ + const IVAS_OUTPUT_SETUP output_setup, /* i : output format setup */ + const float hoa_dec_mtx[] /* i : hoa decoding mtx */ +) +{ + int16_t i; + float dmx_l; + int16_t nchan_hoa; + ivas_error error; + + error = IVAS_ERR_OK; + + /* Number of channels of HOA depends of transport format which is mixed order xH1V*/ + nchan_hoa = nchan_in; + + if ( nchan_in == 6 ) /*2H1V*/ + { + nchan_hoa = 9; + } + else if ( nchan_in == 8 ) /*3H1V*/ + { + nchan_hoa = 16; + } + + switch ( output_config ) + { + case AUDIO_CONFIG_MONO: + /* If stereo DMX, MONO = W = Cardioids L + R*/ + if ( nchan_in == 2 ) + { + for ( i = 0; i < output_frame; i++ ) + { + output_f[0][i] += output_f[1][i]; + } + } + /* else: do nothing, MONO = W*/ + break; + case AUDIO_CONFIG_STEREO: + assert( ( nchan_in >= 2 ) && "Number of input channels must be at least 2 (for W and Y)!\n" ); + + /* Compute L and R cardioids from SB format except if stereo DMX is transmitted already in this format*/ + if ( nchan_in > 2 ) + { + /*Build L/R cardioids*/ + for ( i = 0; i < output_frame; i++ ) + { + dmx_l = 0.5f * ( output_f[0][i] + output_f[1][i] ); /* cardioid_left = 0.5(W + Y) */ + output_f[1][i] = 0.5f * ( output_f[0][i] - output_f[1][i] ); /* cardioid_right = 0.5(W - Y) */ + output_f[0][i] = dmx_l; + } + } + break; + case AUDIO_CONFIG_5_1: + case AUDIO_CONFIG_7_1: + case AUDIO_CONFIG_5_1_2: + case AUDIO_CONFIG_5_1_4: + case AUDIO_CONFIG_7_1_4: + case AUDIO_CONFIG_LS_CUSTOM: + ivas_sba_mtx_mult( output_f, output_frame, nchan_hoa, output_setup, hoa_dec_mtx ); + break; + case AUDIO_CONFIG_FOA: /* Ambisonics output, order: 1 */ + case AUDIO_CONFIG_HOA2: /* Ambisonics output, order: 2 */ + case AUDIO_CONFIG_HOA3: /* Ambisonics output, order: 3 */ + for ( i = nchan_hoa; i < output_setup.nchan_out_woLFE; i++ ) + { + set_zero( output_f[i], output_frame ); + } + break; + default: + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: illegal output configuration, Exiting.\n" ); + } + + return error; +} + + +/*-------------------------------------------------------------------* + * ivas_sba_mtx_mult() + * + * HOA decoding with LFE insertion + *-------------------------------------------------------------------*/ + +static void ivas_sba_mtx_mult( + float output_f[][L_FRAME48k], /* i/o: synthesized core-coder transport channels/DirAC output */ + const int16_t output_frame, /* i : output frame length per channel */ + const int16_t nchan_in, /* i : Number of ambisonic channels */ + IVAS_OUTPUT_SETUP output_setup, /* i : Output configuration */ + const float *mtx_hoa_decoder /* i : Hoa decoding mtx */ +) +{ + int16_t i, k, ch_idx; + int16_t idx_lfe; + float input_f[16]; + const float *hoa_decoder; + + assert( ( nchan_in >= FOA_CHANNELS ) && "Number of input channels must be at least 4 (FOA)!\n" ); + + for ( i = 0; i < output_frame; i++ ) + { + /* init*/ + idx_lfe = 0; + hoa_decoder = &mtx_hoa_decoder[0]; + for ( k = 0; k < nchan_in; k++ ) + { + input_f[k] = output_f[k][i]; + } + + /* mtx mult with LFE insertion*/ + for ( ch_idx = 0; ch_idx < ( output_setup.nchan_out_woLFE + output_setup.num_lfe ); ch_idx++ ) + { + if ( ( output_setup.num_lfe > 0 ) && ( output_setup.index_lfe[idx_lfe] == ch_idx ) ) + { + /*LFE insertion*/ + output_f[ch_idx][i] = 0.f; + if ( idx_lfe < ( output_setup.num_lfe - 1 ) ) + { + idx_lfe++; + } + } + else + { + /*HOA decoding*/ + output_f[ch_idx][i] = input_f[0] * hoa_decoder[0]; + for ( k = 1; k < nchan_in; k++ ) + { + output_f[ch_idx][i] += input_f[k] * hoa_decoder[k]; + } + hoa_decoder += 16; + } + } + } + + return; +} diff --git a/lib_util/ivas_rom_prerenderer.c b/lib_rend/ivas_stat_rend.h similarity index 51% rename from lib_util/ivas_rom_prerenderer.c rename to lib_rend/ivas_stat_rend.h index 4342116577..7c4841a08a 100644 --- a/lib_util/ivas_rom_prerenderer.c +++ b/lib_rend/ivas_stat_rend.h @@ -30,33 +30,64 @@ *******************************************************************************************************/ -#include "ivas_rom_prerenderer.h" -#include "wmops.h" +#ifndef IVAS_STAT_REND_H +#define IVAS_STAT_REND_H + +#include +#include "ivas_cnst.h" -/* clang-format off */ /*----------------------------------------------------------------------------------* - * Prerenderer SBA & MC enc/dec matrices + * Loudspeaker Configuration Conversion structure *----------------------------------------------------------------------------------*/ -/* CICP1 - Mono */ -const float ls_azimuth_CICP1[1] = { 0.0f }; -const float ls_elevation_CICP1[1] = { 0.0f }; -const uint32_t ls_LFE_last_idx_CICP1[1] = { 0 }; +typedef struct ivas_LS_setupconversion_struct +{ + float *dmxMtx[MAX_OUTPUT_CHANNELS]; + float *targetEnergyPrev[MAX_OUTPUT_CHANNELS]; + float *dmxEnergyPrev[MAX_OUTPUT_CHANNELS]; + int16_t sfbOffset[MAX_SFB + 2]; + int16_t sfbCnt; + +} LSSETUP_CONVERSION_STRUCT, *LSSETUP_CONVERSION_HANDLE; + + +typedef struct ivas_LS_setupconversion_matrix +{ + int16_t index; + float value; +} LS_CONVERSION_MATRIX; -/* CICP2 - Stereo */ -const uint32_t ls_LFE_last_idx_CICP2[2] = { 0, 1 }; +typedef struct ivas_LS_setupconversion_mapping +{ + AUDIO_CONFIG input_config; + AUDIO_CONFIG output_config; + const LS_CONVERSION_MATRIX *conversion_matrix; +} LS_CONVERSION_MAPPING; -/* CICP6 - 5.1 */ -const uint32_t ls_LFE_last_idx_CICP6[6] = { 0, 1, 2, 4, 5, 3 }; +typedef struct ivas_mono_downmix_renderer_struct +{ + float inputEnergy[CLDFB_NO_CHANNELS_MAX]; + float protoEnergy[CLDFB_NO_CHANNELS_MAX]; -/* CICP12 - 7.1 */ -const uint32_t ls_LFE_last_idx_CICP12[8] = { 0, 1, 2, 4, 5, 6, 7, 3 }; +} MONO_DOWNMIX_RENDERER_STRUCT, *MONO_DOWNMIX_RENDERER_HANDLE; + + +/*----------------------------------------------------------------------------------* + * Custom Loudspeaker configuration structure + *----------------------------------------------------------------------------------*/ -/* CICP16 - 5.1.4 */ -const uint32_t ls_LFE_last_idx_CICP16[10] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 3 }; +typedef struct ivas_LS_setup_custom +{ + int16_t is_planar_setup; /* flag to indicate if setup is planar or not */ + int16_t num_spk; /* number of custom loudspeakers */ + float ls_azimuth[MAX_OUTPUT_CHANNELS]; /* custom loudspeaker azimuths */ + float ls_elevation[MAX_OUTPUT_CHANNELS]; /* custom loudspeaker elevations */ + int16_t num_lfe; /* number of LFE channels */ + int16_t lfe_idx[MAX_OUTPUT_CHANNELS]; /* index for LFE channel insertion */ + int16_t separate_ch_found; /* flag to indicate if a center channel was found */ + float separate_ch_gains[MAX_OUTPUT_CHANNELS]; /* gains to pan McMASA separateChannel in case no center channel is present */ -/* CICP19 - 7.1.4 */ -const uint32_t ls_LFE_last_idx_CICP19[12] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 3 }; +} LSSETUP_CUSTOM_STRUCT, *LSSETUP_CUSTOM_HANDLE; -/* clang-format on */ +#endif /* IVAS_STAT_REND_H */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c new file mode 100644 index 0000000000..2d568e8837 --- /dev/null +++ b/lib_rend/lib_rend.c @@ -0,0 +1,2672 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + +#include "options.h" +#include "lib_rend.h" +#include "ivas_prot.h" +#include "ivas_rom_com.h" +#include "ivas_rom_dec.h" +#include "ivas_rom_rend.h" +#include "prot.h" +#include "wmops.h" + +#include +#include +#include +#include +#include + + +#define LIMITER_THRESHOLD 0.9988493699f /* -0.01 dBFS */ + +/* Due to API of some rendering methods, the renderer has to use the decoder struct. + Only struct members relevant for rendering will be initialized, therefore typedef as "dummy" decoder struct */ +typedef Decoder_Struct DecoderDummy; + +struct IVAS_REND +{ + int32_t sampleRate; + + int8_t isConfigured; /* flag */ + int8_t firstFrame; /* flag */ + + /* I/O */ + IVAS_REND_InputConfig inConfig; + IVAS_REND_OutputConfig outConfig; + + /* =========== Panning =========== */ + EFAP_HANDLE efapRenderer; + + IVAS_REND_ObjPanInfo *objPanInfo; /* size: [numInObjects] */ + + float ***speakerPanGains; /* size: [numInMc][numSpeakers][numOutChannels] */ + + float *tmpGainBuffer; /* size: [numOutChannels] */ + float *noLfePanBuffer; /* size: [numOutChannels] */ + float *crossfade; /* size: [frameSize] */ + /* =============================== */ + + /* Helpers */ + int16_t numOutChannels; /* Total number of output channels */ + int16_t numInChannels; /* Total number of input channels */ + int16_t numInChannelsObj; /* Total number of input channels of object inputs */ + int16_t numInChannelsAmbi; /* Total number of input channels of ambisonics inputs */ + int16_t numInChannelsMc; /* Total number of input channels of multichannel inputs */ + + /* For each channel of MC inputs mcPassThrough contains the corresponding + * output channel index if a passthrough is possible, otherwise contains -1 */ + int32_t *mcPassthrough; /* size: [numInChannelsMc] */ + + /* =========== LFE Handling =========== */ + /* Do not drop LFE when rendering to a layout that does not have + * an LFE channel - render LFE into other channels*/ + int8_t neverDropLfe; /* flag */ + float *lfePanGains; + ivas_filters_process_state_t lfeLpFilter; + + /* =========== limiter handle =========== */ + IVAS_LIMITER_HANDLE hLimiter; + + /* Ambisonics decoding matrix */ + float *ambi_dec_mtx; + + /* Dummy decoders for binaural rendering */ + DecoderDummy *decDummyAmbiBin; + DecoderDummy *decDummyObjBin; + DecoderDummy *decDummyMcBin; + + /* Head rotation data */ + int8_t enableHeadRotation; /* head rotation flag */ + IVAS_QUATERNION headRotationData[RENDERER_HEAD_POSITIONS_PER_FRAME]; +}; + +/*---------------------------------------------------------------------* + * Prototypes + *---------------------------------------------------------------------*/ +/* clang-off */ +static void renderAmbiToAmbi( + const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ); + +static void renderChannelsToAmbi( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ); + +static void renderObjectsToAmbi( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, + IVAS_REND_AudioBuffer outAudio ); + +static void renderAmbiToChannels( + const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ); + +static void renderChannelsToChannels( + const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ); + +static void renderObjectsToChannels( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, + IVAS_REND_AudioBuffer outAudio ); + +static void renderAmbiToBinaural( + const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ); + +static void renderChannelsToBinaural( + const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ); + +static void renderObjectsToBinaural( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, + IVAS_REND_AudioBuffer outAudio ); + +static void renderSingleObjectToAmbi( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const uint32_t itemChnlIdx, /* Index of the item within input audio buffer */ + IVAS_REND_ObjPanInfo *prevPanInfo, + const IVAS_REND_AudioObjectPosition curFrmPos, + const float gain_lin, + IVAS_REND_AudioBuffer outAudio ); + +static void renderSingleObjectToChannels( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const uint32_t itemChnlIdx, /* Index of the item within input audio buffer */ + IVAS_REND_ObjPanInfo *prevPanInfo, + const IVAS_REND_AudioObjectPosition curFrmPos, + const float gain_lin, + IVAS_REND_AudioBuffer outAudio ); + +/* Multiply a single channel by a vector of gains and add result to corresponding output channels */ +static void applyChannelGainsAndAddToOutput( + const IVAS_REND_AudioBuffer inAudio, + const uint32_t itemChnlIdx, /* Index of the item within input audio buffer */ + const float *const gainsCurrent, /* Vector of gains for current frame, corresponding to output channels */ + const float *const gainsPrev, /* Vector of previously applied gains, used for interpolation. Set to NULL for no interpolation */ + const float gain_lin, /* Additional linear gain to be applied when mixing with output buffer */ + const float *const crossfade, + IVAS_REND_AudioBuffer outAudio ); + +static void prepareMcPanGains( + IVAS_REND_HANDLE st ); + +static void prepareLfeHandling( + IVAS_REND_HANDLE st ); + +static void prepareMcPassthrough( + IVAS_REND_HANDLE st ); + +static void passthroughChannel( + const IVAS_REND_AudioBuffer inAudio, + const uint32_t srcChnlIdx, + const uint32_t dstChnlIdx, + const float gain_lin, + IVAS_REND_AudioBuffer outAudio ); + +static void getSpeakerGains( + const IVAS_REND_HANDLE st, + const float azi, + const float ele, + float *const spkGains ); + +static int16_t getNumChannelsAmbisonics( + IVAS_REND_Ambisonics ambisonics ); + +static int16_t getAmbisonicsOrder( + IVAS_REND_Ambisonics ambisonics ); + +static int16_t getNumChannelsInSpeakerLayout( + IVAS_REND_SpeakerLayout layout ); + +static int16_t getNumNonLfeChannelsInSpeakerLayout( + IVAS_REND_SpeakerLayout layout ); + +static const float *getSpeakerAzimuths( + IVAS_REND_SpeakerLayout layout ); + +static const float *getSpeakerElevations( + IVAS_REND_SpeakerLayout layout ); + +static const uint32_t *getReorderedChannelIndices( + IVAS_REND_SpeakerLayout layout ); + +static int32_t reverseChannelIndexMapping( int32_t originalChannelIndex, + const uint32_t *channelReorderingMap, + uint32_t numNonLfeSpeakers ); + +static ivas_error getHoaRenderMtx( + const IVAS_REND_OutputConfig outConfig, + float **decMtx, + uint32_t ambiOrder ); + +static void getHoaDecVecForAmbiChnl( + uint32_t ambiChnnlIdx, + const IVAS_REND_OutputConfig outConfig, + const float *decMtx, + float *decCoeffs ); + +static void ivas_limiter_renderer( + IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ + float *output, /* i/o: I/O buffer */ + const int16_t output_frame, /* i : number of samples per channel in the buffer */ + const float threshold /* i : signal amplitude above which limiting starts to be applied */ +); + +static float dBToLin( const float gain_dB ); + +static AUDIO_CONFIG mapRendLayoutToAudioConfig( + IVAS_REND_SpeakerLayout speakerLayout ); + +/* clang-on */ +/* ========================================================================== */ + +static IVAS_QUATERNION quaternionInit( void ) +{ + IVAS_QUATERNION q; + q.w = 1.0f; + q.x = q.y = q.z = 0.0f; + return q; +} + +IVAS_REND_HANDLE IVAS_REND_Open() +{ + int16_t i; + IVAS_REND_HANDLE st; + + st = (IVAS_REND_HANDLE) count_malloc( sizeof( struct IVAS_REND ) ); + st->isConfigured = 0; + st->efapRenderer = NULL; + + st->objPanInfo = NULL; + st->speakerPanGains = NULL; + st->tmpGainBuffer = NULL; + st->noLfePanBuffer = NULL; + st->crossfade = NULL; + st->mcPassthrough = NULL; + st->neverDropLfe = 0; + st->lfePanGains = NULL; + st->hLimiter = NULL; + st->ambi_dec_mtx = NULL; + st->decDummyAmbiBin = NULL; + st->decDummyMcBin = NULL; + st->decDummyObjBin = NULL; + st->enableHeadRotation = 0; + + for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) + { + st->headRotationData[i] = quaternionInit(); + } + + return st; +} + +static DecoderDummy *allocDecoderDummy( int32_t sampleRate, int16_t numOutChannels, const uint8_t enableHeadRotation ) +{ + int16_t i; + DecoderDummy *decDummy; + + decDummy = count_malloc( sizeof( DecoderDummy ) ); + decDummy->hDecoderConfig = count_malloc( sizeof( DECODER_CONFIG ) ); + decDummy->hDecoderConfig->output_Fs = sampleRate; + decDummy->hDecoderConfig->nchan_out = numOutChannels; + + ivas_render_config_open( &decDummy->hRenderConfig ); + decDummy->hRenderConfig->roomAcoustics.late_reverb_on = 0; + decDummy->hRenderConfig->roomAcoustics.use_brir = 0; + + if ( enableHeadRotation ) + { + decDummy->hHeadTrackData = count_malloc( sizeof( HEAD_TRACK_DATA ) ); + /* Initialise Rmat_prev to I, Rmat will be computed later */ + for ( i = 0; i < 3; i++ ) + { + set_zero( decDummy->hHeadTrackData->Rmat_prev[i], 3 ); + decDummy->hHeadTrackData->Rmat_prev[i][i] = 1.0f; + } + + decDummy->hHeadTrackData->num_quaternions = 0; + decDummy->hHeadTrackData->lrSwitchInterpVal = 0.0f; + decDummy->hHeadTrackData->lrSwitchedCurrent = 0; + decDummy->hHeadTrackData->lrSwitchedNext = 0; + } + else + { + decDummy->hHeadTrackData = NULL; + } + + decDummy->renderer_type = RENDERER_DISABLE; + + return decDummy; +} + +static ivas_error initDecoderDummyForAmbiToBinaural( DecoderDummy *decDummyAmbiBin, IVAS_REND_InputConfig inConfig ) +{ + ivas_error error; + assert( inConfig.numAmbisonicsBuses == 1 && "For now only 1 ambisonics input is supported" ); + + error = IVAS_ERR_OK; + + decDummyAmbiBin->renderer_type = RENDERER_BINAURAL_MIXER_CONV; + decDummyAmbiBin->hHrtf = NULL; + decDummyAmbiBin->hBinRenderer = NULL; + decDummyAmbiBin->intern_config = decDummyAmbiBin->transport_config = + inConfig.ambisonicsBuses[0].ambisonicsConfig == IVAS_REND_AMBISONICS_FOA ? AUDIO_CONFIG_FOA + : inConfig.ambisonicsBuses[0].ambisonicsConfig == IVAS_REND_AMBISONICS_SOA ? AUDIO_CONFIG_HOA2 + : inConfig.ambisonicsBuses[0].ambisonicsConfig == IVAS_REND_AMBISONICS_TOA ? AUDIO_CONFIG_HOA3 + : AUDIO_CONFIG_INVALID; + + ivas_output_init( &decDummyAmbiBin->hIntSetup, decDummyAmbiBin->intern_config ); + ivas_output_init( &decDummyAmbiBin->hTransSetup, decDummyAmbiBin->transport_config ); + + if ( ( error = ivas_crend_open( decDummyAmbiBin ) ) != IVAS_ERR_OK ) + { + return error; + } + + return error; +} + +static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin, IVAS_REND_InputConfig inConfig ) +{ + ivas_error error; + int32_t n; + + assert( inConfig.numAudioObjects <= MAX_NUM_OBJECTS && "IVAS decoder is used for binaural rendering, which limits number of objects" ); + + error = IVAS_ERR_OK; + + decDummyObjBin->renderer_type = RENDERER_BINAURAL_OBJECTS_TD; + decDummyObjBin->hHrtfTD = NULL; + decDummyObjBin->hBinRenderer = NULL; + decDummyObjBin->ivas_format = ISM_FORMAT; + decDummyObjBin->nSCE = inConfig.numAudioObjects; + decDummyObjBin->nchan_transport = inConfig.numAudioObjects; + + for ( n = 0; n < inConfig.numAudioObjects; ++n ) + { + decDummyObjBin->hIsmMetaData[n] = count_malloc( sizeof( ISM_METADATA_FRAME ) ); + } + for ( n = inConfig.numAudioObjects; n < MAX_NUM_OBJECTS; ++n ) + { + decDummyObjBin->hIsmMetaData[n] = NULL; + } + + if ( ( error = ivas_td_binaural_open( decDummyObjBin ) ) != IVAS_ERR_OK ) + { + return error; + } + + return error; +} + +static ivas_error initDecoderDummyForMcToBinaural( DecoderDummy *decDummyMcBin, IVAS_REND_InputConfig inConfig, const uint8_t enableHeadRotation ) +{ + ivas_error error; + IVAS_REND_SpeakerLayout spkLayout; + + assert( inConfig.numMultiChannelBuses == 1 && "For now supporting one multichannel input" ); + + error = IVAS_ERR_OK; + + decDummyMcBin->hHrtf = NULL; + decDummyMcBin->hHrtfTD = NULL; + decDummyMcBin->hBinRenderer = NULL; + decDummyMcBin->ivas_format = MC_FORMAT; + decDummyMcBin->mc_mode = MC_MODE_MCT; + + spkLayout = inConfig.multiChannelBuses[0].speakerLayout; + + switch ( spkLayout ) + { + case IVAS_REND_SPEAKER_LAYOUT_5_1: + decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_5_1; + break; + case IVAS_REND_SPEAKER_LAYOUT_7_1: + decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_7_1; + break; + case IVAS_REND_SPEAKER_LAYOUT_5_1_2: + decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_5_1_2; + break; + case IVAS_REND_SPEAKER_LAYOUT_5_1_4: + decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_5_1_4; + break; + case IVAS_REND_SPEAKER_LAYOUT_7_1_4: + decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_7_1_4; + break; + case IVAS_REND_SPEAKER_LAYOUT_CUSTOM: + decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_LS_CUSTOM; + break; + default: + assert( false && "Not supported yet" ); + break; + } + + if ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + decDummyMcBin->nchan_transport = inConfig.inSetupCustom->num_spk + inConfig.inSetupCustom->num_lfe; + + ivas_ls_custom_setup( &decDummyMcBin->hIntSetup, inConfig.inSetupCustom ); + ivas_ls_custom_setup( &decDummyMcBin->hTransSetup, inConfig.inSetupCustom ); + } + else + { + decDummyMcBin->nchan_transport = getNumChannelsInSpeakerLayout( spkLayout ); + + ivas_output_init( &decDummyMcBin->hIntSetup, decDummyMcBin->intern_config ); + ivas_output_init( &decDummyMcBin->hTransSetup, decDummyMcBin->transport_config ); + } + + + if ( enableHeadRotation && ( ( error = efap_init_data( &decDummyMcBin->hEFAPdata, decDummyMcBin->hTransSetup.ls_azimuth, decDummyMcBin->hTransSetup.ls_elevation, decDummyMcBin->hTransSetup.nchan_out_woLFE, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) ) + { + return error; + } + + /* Use TD binaural renderer only for 5_1 and 7_1 with headrotation or Custom LS */ + if ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM || + ( ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_5_1 || spkLayout == IVAS_REND_SPEAKER_LAYOUT_7_1 ) && enableHeadRotation ) ) + { + decDummyMcBin->renderer_type = RENDERER_BINAURAL_OBJECTS_TD; + decDummyMcBin->hCrend = NULL; + if ( ( error = ivas_td_binaural_open( decDummyMcBin ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else + { + decDummyMcBin->renderer_type = RENDERER_BINAURAL_MIXER_CONV; + decDummyMcBin->hBinRendererTd = NULL; + if ( ( error = ivas_crend_open( decDummyMcBin ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + return error; +} + +ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, + const IVAS_REND_InputConfig inConfig, + const IVAS_REND_OutputConfig outConfig, + uint32_t sampleRate, + bool headRotationEnabled ) +{ + uint32_t i; + int32_t j; + ivas_error error; + uint8_t numActiveOutputs; + int32_t frameSize_smpls; + + error = IVAS_ERR_OK; + + /* ============================= Error checks ============================= */ + assert( st != NULL && "Can't configure renderer - pointer is NULL" ); + assert( !st->isConfigured && "Re-configuring a renderer is not supported" ); + assert( !( inConfig.numAudioObjects == 0 && inConfig.numMultiChannelBuses == 0 && inConfig.numAmbisonicsBuses == 0 ) && "At least one input must be active" ); + + numActiveOutputs = + ( outConfig.ambisonics == IVAS_REND_AMBISONICS_NONE ? 0 : 1 ) + + ( outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_NONE ? 0 : 1 ) + + ( outConfig.binaural == 0 ? 0 : 1 ); + assert( numActiveOutputs == 1 && "Only one output must be selected" ); + + /* ========================== Store useful values ========================= */ + st->sampleRate = sampleRate; + st->isConfigured = 1; + st->firstFrame = 1; + st->inConfig = inConfig; + st->outConfig = outConfig; + + /* Save total number of channels in ambisonics inputs */ + st->numInChannelsAmbi = 0; + for ( i = 0; i < inConfig.numAmbisonicsBuses; ++i ) + { + st->numInChannelsAmbi += getNumChannelsAmbisonics( inConfig.ambisonicsBuses[i].ambisonicsConfig ); + } + + /* Save total number of channels in MC input */ + st->numInChannelsMc = 0; + for ( i = 0; i < inConfig.numMultiChannelBuses; ++i ) + { + if ( inConfig.multiChannelBuses[i].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + st->numInChannelsMc += inConfig.inSetupCustom->num_spk + inConfig.inSetupCustom->num_lfe; + } + else + { + st->numInChannelsMc += getNumChannelsInSpeakerLayout( inConfig.multiChannelBuses[i].speakerLayout ); + } + } + + + /* Save total number of channels of audio object inputs */ + st->numInChannelsObj = st->inConfig.numAudioObjects; + + /* Save total number of input channels */ + st->numInChannels = st->numInChannelsObj + st->numInChannelsAmbi + st->numInChannelsMc; + + if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) + { + /* Save number of output channels */ + st->numOutChannels = getNumChannelsAmbisonics( st->outConfig.ambisonics ); + } + else if ( st->outConfig.binaural ) + { + st->numOutChannels = 2; + } + + /* ============================ Prepare panning and ambisonics =========================== */ + if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) + { + if ( st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + /* Save number of output channels */ + st->numOutChannels = st->outConfig.outSetupCustom->num_spk + st->outConfig.outSetupCustom->num_lfe; + + /* Open and initialize EFAP struct */ + if ( ( error = efap_init_data( &st->efapRenderer, st->outConfig.outSetupCustom->ls_azimuth, st->outConfig.outSetupCustom->ls_elevation, st->outConfig.outSetupCustom->num_spk, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else + { + /* Save number of output channels */ + st->numOutChannels = getNumChannelsInSpeakerLayout( st->outConfig.speakerLayout ); + + /* Open and initialize EFAP struct */ + if ( ( error = efap_init_data( &st->efapRenderer, getSpeakerAzimuths( st->outConfig.speakerLayout ), getSpeakerElevations( st->outConfig.speakerLayout ), getNumNonLfeChannelsInSpeakerLayout( st->outConfig.speakerLayout ), EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + + assert( st->efapRenderer != NULL && "Could not init EFAP" ); + + /* Compute Ambisonics to loudspeaker decoding matrix */ + if ( ( error = getHoaRenderMtx( st->outConfig, &st->ambi_dec_mtx, 3 ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + /* Allocate temporary pan/enc buffer to avoid allocations during rendering */ + st->tmpGainBuffer = count_calloc( st->numOutChannels, sizeof( float ) ); + + /* Allocate temporary buffer for panning gains with lfe omitted */ + if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) + { + if ( st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + st->noLfePanBuffer = count_calloc( st->outConfig.outSetupCustom->num_spk, sizeof( float ) ); + } + else + { + st->noLfePanBuffer = count_calloc( getNumNonLfeChannelsInSpeakerLayout( st->outConfig.speakerLayout ), sizeof( float ) ); + } + } + + /* Create lookup tables for panning/encoding speaker signals */ + if ( st->inConfig.numMultiChannelBuses != 0 ) + { + prepareMcPanGains( st ); + prepareLfeHandling( st ); + } + + /* Allocate structs for interpolation of object pan/enc gains between frames */ + if ( st->inConfig.numAudioObjects != 0 ) + { + st->objPanInfo = count_calloc( st->inConfig.numAudioObjects, sizeof( IVAS_REND_ObjPanInfo ) ); + + for ( i = 0; i < st->inConfig.numAudioObjects; ++i ) + { + st->objPanInfo[i].panGains = count_calloc( st->numOutChannels, sizeof( float ) ); + } + } + + if ( st->outConfig.binaural ) + { + if ( headRotationEnabled ) + { + st->enableHeadRotation = 1; + } + + if ( st->inConfig.numAmbisonicsBuses != 0 ) + { + st->decDummyAmbiBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation ); + if ( ( error = initDecoderDummyForAmbiToBinaural( st->decDummyAmbiBin, st->inConfig ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + if ( st->inConfig.numMultiChannelBuses != 0 ) + { + st->decDummyMcBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation ); + if ( ( error = initDecoderDummyForMcToBinaural( st->decDummyMcBin, st->inConfig, st->enableHeadRotation ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + if ( st->inConfig.numAudioObjects != 0 ) + { + st->decDummyObjBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation ); + if ( ( error = initDecoderDummyForObjToBinaural( st->decDummyObjBin, st->inConfig ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } + + /* =========================== Prepare crossfades ========================= */ + frameSize_smpls = sampleRate / FRAMES_PER_SEC; + st->crossfade = count_calloc( frameSize_smpls, sizeof( float ) ); + + for ( j = 0; j < frameSize_smpls; ++j ) + { + st->crossfade[j] = (float) j / ( frameSize_smpls - 1 ); + } + + /* ========================= Prepare optimizations ======================== */ + /* Make note of possible processing shortcuts in cases where input and output + * config is the same or similar. This only needs to be done for MC I/O, since + * Ambisonics I/O can always be passed through and objects can never be passed + * through */ + if ( st->inConfig.numMultiChannelBuses > 0 && st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) + { + prepareMcPassthrough( st ); + } + + /* ============================ Configure limiter =========================== */ + st->hLimiter = ivas_limiter_open( st->numOutChannels, st->sampleRate ); + + return error; +} + +void IVAS_REND_SetHeadRotation( + IVAS_REND_HANDLE st, + const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] ) +{ + int16_t i; + + assert( st != NULL ); + + for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) + { + st->headRotationData[i] = headRot[i]; + } +} + +void IVAS_REND_Render( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, + IVAS_REND_AudioBuffer outAudio ) +{ +#ifdef WMOPS + wmops_sub_start( "IVAS_REND_Render" ); +#endif + + /* ============================= Error checks ============================= */ + assert( st != NULL && "Can't render - renderer pointer is NULL" ); + assert( st->isConfigured && "Can't render - renderer pointer is not configured" ); + assert( inAudio.config.sampleRate == outAudio.config.sampleRate && "Input and output sample rate must be the same" ); + assert( inAudio.config.bufferSize == outAudio.config.bufferSize && "Input and output frame size must be the same" ); + assert( inAudio.config.numChannels == st->numInChannels && "Number of input channels does not match between renderer and input config" ); + assert( outAudio.config.numChannels == st->numOutChannels && "Number of input channels does not match between renderer and input config" ); + assert( inAudio.config.sampleRate != 0 && "Invalid sample rate" ); + assert( inAudio.config.bufferSize != 0 && "Invalid frame size" ); + assert( inAudio.data != NULL && "Can't render - input buffer is empty" ); + + /* ========================== Actual processing =========================== */ + /* Clear output buffer */ + set_zero( outAudio.data, outAudio.config.numChannels * outAudio.config.bufferSize ); + + /* Render target format: Ambisonics */ + if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) + { + if ( st->inConfig.numAmbisonicsBuses != 0 ) + { + renderAmbiToAmbi( st, inAudio, outAudio ); + } + + if ( st->inConfig.numMultiChannelBuses != 0 ) + { + renderChannelsToAmbi( st, inAudio, outAudio ); + } + + if ( st->inConfig.numAudioObjects != 0 ) + { + renderObjectsToAmbi( st, inAudio, metadataBuffer, outAudio ); + } + } /* Render target format: multichannel */ + else if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) + { + if ( st->inConfig.numAmbisonicsBuses != 0 ) + { + renderAmbiToChannels( st, inAudio, outAudio ); + } + + if ( st->inConfig.numMultiChannelBuses != 0 ) + { + renderChannelsToChannels( st, inAudio, outAudio ); + } + + if ( st->inConfig.numAudioObjects != 0 ) + { + renderObjectsToChannels( st, inAudio, metadataBuffer, outAudio ); + } + } /* Render target format: binaural */ + else if ( st->outConfig.binaural ) + { + /* Rendering to binaural using dummy IVAS decoders */ + assert( inAudio.config.bufferSize == st->sampleRate / FRAMES_PER_SEC && "Using IVAS components requires frame size of 20 ms" ); + assert( inAudio.config.numChannels <= MAX_OUTPUT_CHANNELS && "Max 16 input channels supported" ); + assert( outAudio.config.numChannels == 2 && "2 output channels expected for rendering to binaural" ); + + if ( st->inConfig.numAmbisonicsBuses != 0 ) + { + renderAmbiToBinaural( st, inAudio, outAudio ); + } + + if ( st->inConfig.numMultiChannelBuses != 0 ) + { + renderChannelsToBinaural( st, inAudio, outAudio ); + } + + if ( st->inConfig.numAudioObjects != 0 ) + { + renderObjectsToBinaural( st, inAudio, metadataBuffer, outAudio ); + } + } + + /* Apply limiting in place */ + ivas_limiter_renderer( + st->hLimiter, + outAudio.data, + outAudio.config.bufferSize, + LIMITER_THRESHOLD ); + + if ( st->firstFrame ) + { + st->firstFrame = 0; + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +void IVAS_REND_OpenCustomLayout( + IVAS_LSSETUP_CUSTOM_HANDLE *outSetupCustom ) +{ + ivas_ls_custom_open( outSetupCustom ); +} + +void IVAS_REND_SetNeverDropLfe( + IVAS_REND_HANDLE st, + int8_t neverDropLfe ) +{ + st->neverDropLfe = neverDropLfe; +} + +int16_t IVAS_REND_GetInChannels( + IVAS_REND_HANDLE st ) +{ + assert( st != NULL && "Can't get number of input channels - renderer pointer is NULL" ); + if ( st ) + { + return st->numInChannels; + } + return 0; +} + +int16_t IVAS_REND_GetOutChannels( + IVAS_REND_HANDLE st ) +{ + assert( st != NULL && "Can't get number of output channels - renderer pointer is NULL" ); + if ( st ) + { + return st->numOutChannels; + } + return 0; +} + +void IVAS_REND_Close( IVAS_REND_HANDLE *st ) +{ + uint32_t i; + uint32_t j; + uint32_t numNonLfeChannels; + IVAS_REND_HANDLE hIvasRend; + + if ( st == NULL || *st == NULL ) + { + return; + } + hIvasRend = *st; + + if ( hIvasRend->efapRenderer != NULL ) + { + efap_free_data( &hIvasRend->efapRenderer ); + } + + if ( hIvasRend->objPanInfo != NULL ) + { + for ( i = 0; i < hIvasRend->inConfig.numAudioObjects; ++i ) + { + if ( hIvasRend->objPanInfo[i].panGains != NULL ) + { + count_free( hIvasRend->objPanInfo[i].panGains ); + } + } + + count_free( hIvasRend->objPanInfo ); + } + + if ( hIvasRend->speakerPanGains != NULL ) + { + for ( i = 0; i < hIvasRend->inConfig.numMultiChannelBuses; ++i ) + { + if ( hIvasRend->inConfig.multiChannelBuses[i].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + numNonLfeChannels = hIvasRend->inConfig.inSetupCustom->num_spk; + } + else + { + numNonLfeChannels = getNumNonLfeChannelsInSpeakerLayout( hIvasRend->inConfig.multiChannelBuses[i].speakerLayout ); + } + + for ( j = 0; j < numNonLfeChannels; ++j ) + { + count_free( hIvasRend->speakerPanGains[i][j] ); + } + + count_free( hIvasRend->speakerPanGains[i] ); + } + + count_free( hIvasRend->speakerPanGains ); + } + + if ( hIvasRend->inConfig.inSetupCustom != NULL ) + { + count_free( hIvasRend->inConfig.inSetupCustom ); + hIvasRend->inConfig.inSetupCustom = NULL; + } + + if ( hIvasRend->outConfig.outSetupCustom != NULL ) + { + count_free( hIvasRend->outConfig.outSetupCustom ); + hIvasRend->outConfig.outSetupCustom = NULL; + } + + if ( hIvasRend->tmpGainBuffer != NULL ) + { + count_free( hIvasRend->tmpGainBuffer ); + } + + if ( hIvasRend->noLfePanBuffer != NULL ) + { + count_free( hIvasRend->noLfePanBuffer ); + } + + if ( hIvasRend->crossfade != NULL ) + { + count_free( hIvasRend->crossfade ); + } + + if ( hIvasRend->mcPassthrough != NULL ) + { + count_free( hIvasRend->mcPassthrough ); + } + + if ( hIvasRend->lfePanGains ) + { + count_free( hIvasRend->lfePanGains ); + } + + if ( hIvasRend->ambi_dec_mtx != NULL ) + { + count_free( hIvasRend->ambi_dec_mtx ); + } + + if ( hIvasRend->decDummyAmbiBin != NULL ) + { + ivas_crend_close( hIvasRend->decDummyAmbiBin ); + ivas_render_config_close( &hIvasRend->decDummyAmbiBin->hRenderConfig ); + count_free( hIvasRend->decDummyAmbiBin->hDecoderConfig ); + if ( hIvasRend->enableHeadRotation ) + { + count_free( hIvasRend->decDummyAmbiBin->hHeadTrackData ); + } + count_free( hIvasRend->decDummyAmbiBin ); + } + + if ( hIvasRend->decDummyMcBin != NULL ) + { + ivas_crend_close( hIvasRend->decDummyMcBin ); + ivas_td_binaural_close( &hIvasRend->decDummyMcBin->hBinRendererTd ); + ivas_render_config_close( &hIvasRend->decDummyMcBin->hRenderConfig ); + count_free( hIvasRend->decDummyMcBin->hDecoderConfig ); + if ( hIvasRend->enableHeadRotation ) + { + count_free( hIvasRend->decDummyMcBin->hHeadTrackData ); + } + count_free( hIvasRend->decDummyMcBin ); + } + + if ( hIvasRend->decDummyObjBin != NULL ) + { + ivas_td_binaural_close( &hIvasRend->decDummyObjBin->hBinRendererTd ); + ivas_render_config_close( &hIvasRend->decDummyObjBin->hRenderConfig ); + count_free( hIvasRend->decDummyObjBin->hDecoderConfig ); + + if ( hIvasRend->enableHeadRotation ) + { + count_free( hIvasRend->decDummyObjBin->hHeadTrackData ); + } + + for ( i = 0; i < hIvasRend->inConfig.numAudioObjects; ++i ) + { + count_free( hIvasRend->decDummyObjBin->hIsmMetaData[i] ); + } + + count_free( hIvasRend->decDummyObjBin ); + } + + ivas_limiter_close( &hIvasRend->hLimiter ); + + count_free( hIvasRend ); + *st = NULL; +} + +ivas_error IVAS_REND_GetDelay( + IVAS_REND_HANDLE st, /* i : Renderer state */ + int16_t *nSamples, /* o : Renderer delay in samples */ + int32_t *timeScale /* o : Time scale of the delay, equal to renderer output sampling rate */ +) +{ + + if ( st == NULL ) + { + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } + + if ( st->outConfig.binaural ) + { + if ( ( st->decDummyAmbiBin != NULL && st->decDummyAmbiBin->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) || + ( st->decDummyObjBin != NULL && st->decDummyObjBin->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) || + ( st->decDummyMcBin != NULL && st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) ) + { + *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) IVAS_FB_DEC_DELAY_NS + 0.5f ) ); + } + else if ( ( st->decDummyAmbiBin != NULL && st->decDummyAmbiBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) ) + { + *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyAmbiBin->binaural_latency_ns + 0.5f ) ); + } + else if ( st->decDummyObjBin != NULL && st->decDummyObjBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) + { + *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyObjBin->binaural_latency_ns + 0.5f ) ); + } + else if ( st->decDummyMcBin != NULL && st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) + { + *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyMcBin->binaural_latency_ns + 0.5f ) ); + } + } + else + { + *nSamples = 0; + } + + *timeScale = st->sampleRate; + + return IVAS_ERR_OK; +} + +/* ============================= Local functions ============================ */ +static float *get_smpl_ptr( IVAS_REND_AudioBuffer buffer, uint32_t chnlIdx, uint32_t smplIdx ) +{ + return buffer.data + chnlIdx * buffer.config.bufferSize + smplIdx; +} + +static void renderAmbiToAmbi( const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ) +{ + float *inSmpl; + float *outSmpl; + int16_t lastChannelIdx; + int16_t smplIdx; + int16_t chnlIdx; + uint32_t inAmbiChannelIdx; + uint32_t ambiIdx; + float gain_lin; + + +#ifdef WMOPS + wmops_sub_start( "renderAmbiToAmbi" ); +#endif + + /* Iterate over given Ambisonics inputs */ + for ( ambiIdx = 0; ambiIdx < st->inConfig.numAmbisonicsBuses; ++ambiIdx ) + { + inAmbiChannelIdx = st->inConfig.ambisonicsBuses[ambiIdx].inputChannelIndex; + + /* Find out how many channels to process */ + lastChannelIdx = min( getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ), st->numOutChannels ) - 1; + + gain_lin = dBToLin( st->inConfig.ambisonicsBuses[ambiIdx].gain_dB ); + + /* Passthrough channels */ + for ( chnlIdx = 0; chnlIdx <= lastChannelIdx; ++chnlIdx ) + { + inSmpl = get_smpl_ptr( inAudio, chnlIdx + inAmbiChannelIdx, 0 ); + outSmpl = get_smpl_ptr( outAudio, chnlIdx, 0 ); + + for ( smplIdx = 0; smplIdx < inAudio.config.bufferSize; ++smplIdx ) + { + *outSmpl += *inSmpl * gain_lin; + + ++inSmpl; + ++outSmpl; + } + } + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void renderChannelsToAmbi( IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ) +{ + const uint32_t *lfeLastIdxs; + uint32_t inMcChannelIdx; + uint32_t numNonLfeInChannels; + uint32_t numInChannels; + uint32_t mcIdx; + uint32_t inChIdx; + uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; + float gain_lin; + +#ifdef WMOPS + wmops_sub_start( "renderChannelsToAmbi" ); +#endif + + /* Iterate over given MC inputs */ + for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) + { + /* Get channel idx of current MC input within the multitrack buffer */ + inMcChannelIdx = st->inConfig.multiChannelBuses[mcIdx].inputChannelIndex; + + /* Number of input speakers */ + if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + numInChannels = st->inConfig.inSetupCustom->num_spk + st->inConfig.inSetupCustom->num_lfe; + numNonLfeInChannels = st->inConfig.inSetupCustom->num_spk; + + /* Reordered indices for custom loudspeaker input */ + if ( st->inConfig.inSetupCustom->num_lfe > 0 ) + { + lfeLastIdx_lsCustom[numNonLfeInChannels] = st->inConfig.inSetupCustom->lfe_idx[0]; + } + + for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) + { + ( ( st->inConfig.inSetupCustom->num_lfe > 0 ) && ( (int16_t) inChIdx >= st->inConfig.inSetupCustom->lfe_idx[0] ) ) ? ( lfeLastIdx_lsCustom[inChIdx] = inChIdx + 1 ) : ( lfeLastIdx_lsCustom[inChIdx] = inChIdx ); + } + + lfeLastIdxs = &lfeLastIdx_lsCustom[0]; + } + else + { + numInChannels = getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + numNonLfeInChannels = getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + + lfeLastIdxs = getReorderedChannelIndices( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + } + + gain_lin = dBToLin( st->inConfig.multiChannelBuses[mcIdx].gain_dB ); + + /* Iterate over channels */ + for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) + { + applyChannelGainsAndAddToOutput( inAudio, + inMcChannelIdx + lfeLastIdxs[inChIdx], + st->speakerPanGains[mcIdx][inChIdx], + NULL, + gain_lin, + st->crossfade, + outAudio ); + } + + if ( st->neverDropLfe ) + { + /* Render LFE channels into the scene */ + for ( ; inChIdx < numInChannels; ++inChIdx ) + { + applyChannelGainsAndAddToOutput( inAudio, + inMcChannelIdx + lfeLastIdxs[inChIdx], + st->lfePanGains, + NULL, + gain_lin, + st->crossfade, + outAudio ); + } + } + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void renderObjectsToAmbi( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, + IVAS_REND_AudioBuffer outAudio ) +{ + const IVAS_REND_AudioObject *curObj; + uint32_t objIdx; + IVAS_REND_AudioObjectPosition pos; + float gain_lin; + +#ifdef WMOPS + wmops_sub_start( "renderObjectsToAmbi" ); +#endif + + assert( st->inConfig.numAudioObjects == metadataBuffer.numObjects && "Metadata provided for a different number of objects than found in input" ); + + /* Iterate over given audio objects */ + for ( objIdx = 0; objIdx < st->inConfig.numAudioObjects; ++objIdx ) + { + /* Get pointer to current object and its metadata */ + curObj = &st->inConfig.audioObjects[objIdx]; + pos = metadataBuffer.positions[objIdx]; + gain_lin = dBToLin( st->inConfig.audioObjects[objIdx].gain_dB ); + + /* Render to ambisonics */ + renderSingleObjectToAmbi( + st, + inAudio, + curObj->inputChannelIndex, + &st->objPanInfo[objIdx], + pos, + gain_lin, + outAudio ); + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void renderAmbiToChannels( const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ) +{ + uint32_t inAmbiChannelIdx; + uint32_t ambiIdx; + uint32_t numInAmbiChnls; + uint32_t ambiChnIdx; + float gain_lin; + +#ifdef WMOPS + wmops_sub_start( "renderAmbiToChannels" ); +#endif + + /* Iterate over all given ambisonics inputs */ + for ( ambiIdx = 0; ambiIdx < st->inConfig.numAmbisonicsBuses; ++ambiIdx ) + { + inAmbiChannelIdx = st->inConfig.ambisonicsBuses[ambiIdx].inputChannelIndex; + + /* Number of input channels */ + numInAmbiChnls = getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ); + + gain_lin = dBToLin( st->inConfig.multiChannelBuses[ambiIdx].gain_dB ); + + /* Render each ambisonics channel */ + for ( ambiChnIdx = 0; ambiChnIdx < numInAmbiChnls; ++ambiChnIdx ) + { + /* Write decoding gains to temp buffer */ + getHoaDecVecForAmbiChnl( ambiChnIdx, st->outConfig, st->ambi_dec_mtx, st->tmpGainBuffer ); + + /* Apply decoding gains and add to output */ + applyChannelGainsAndAddToOutput( inAudio, + inAmbiChannelIdx + ambiChnIdx, + st->tmpGainBuffer, + NULL, + gain_lin, + st->crossfade, + outAudio ); + } + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void renderChannelsToChannels( + const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ) +{ + const uint32_t *lfeLastIdxs; + uint32_t inMcChannelIdx; + uint32_t numNonLfeInChannels; + uint32_t numInChannels; + uint32_t passThroughIdx; + uint32_t mcIdx; + uint32_t inChIdx; + uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; + float gain_lin; + +#ifdef WMOPS + wmops_sub_start( "renderChannelsToChannels" ); +#endif + + passThroughIdx = 0; + + /* Iterate over given MC inputs */ + for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) + { + /* Get channel idx of current MC input within the multitrack buffer */ + inMcChannelIdx = st->inConfig.multiChannelBuses[mcIdx].inputChannelIndex; + + if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + /* Number of non-LFE input channels */ + numNonLfeInChannels = st->inConfig.inSetupCustom->num_spk; + + /* Number of all input channels */ + numInChannels = st->inConfig.inSetupCustom->num_spk + st->inConfig.inSetupCustom->num_lfe; + + /* Reordered indices for custom loudspeaker input */ + if ( st->inConfig.inSetupCustom->num_lfe > 0 ) + { + lfeLastIdx_lsCustom[numNonLfeInChannels] = st->inConfig.inSetupCustom->lfe_idx[0]; + } + + for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) + { + ( ( st->inConfig.inSetupCustom->num_lfe > 0 ) && ( (int16_t) inChIdx >= st->inConfig.inSetupCustom->lfe_idx[0] ) ) ? ( lfeLastIdx_lsCustom[inChIdx] = inChIdx + 1 ) : ( lfeLastIdx_lsCustom[inChIdx] = inChIdx ); + } + + lfeLastIdxs = &lfeLastIdx_lsCustom[0]; + } + else + { + /* Number of non-LFE input channels */ + numNonLfeInChannels = getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + + /* Number of all input channels */ + numInChannels = getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + + lfeLastIdxs = getReorderedChannelIndices( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + } + + + gain_lin = dBToLin( st->inConfig.multiChannelBuses[mcIdx].gain_dB ); + + /* Iterate over non-LFE channels */ + for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) + { + if ( st->mcPassthrough[passThroughIdx] == -1 ) + { + applyChannelGainsAndAddToOutput( inAudio, + inMcChannelIdx + lfeLastIdxs[inChIdx], + st->speakerPanGains[mcIdx][inChIdx], + NULL, + gain_lin, + st->crossfade, + outAudio ); + } + else + { + passthroughChannel( inAudio, + inMcChannelIdx + lfeLastIdxs[inChIdx], + st->mcPassthrough[passThroughIdx], + gain_lin, + outAudio ); + } + + ++passThroughIdx; + } + + /* Iterate over LFE channels */ + for ( ; inChIdx < numInChannels; ++inChIdx ) + { + /* Pass through if possible */ + if ( st->mcPassthrough[passThroughIdx] != -1 ) + { + passthroughChannel( inAudio, + inMcChannelIdx + lfeLastIdxs[inChIdx], + st->mcPassthrough[passThroughIdx], + gain_lin, + outAudio ); + } + else + { + if ( st->neverDropLfe ) + { + applyChannelGainsAndAddToOutput( inAudio, + inMcChannelIdx + lfeLastIdxs[inChIdx], + st->lfePanGains, + NULL, + gain_lin, + st->crossfade, + outAudio ); + } + } + + ++passThroughIdx; + } + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void renderObjectsToChannels( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, + IVAS_REND_AudioBuffer outAudio ) +{ + const IVAS_REND_AudioObject *curObj; + uint32_t objIdx; + IVAS_REND_AudioObjectPosition pos; + float gain_lin; + +#ifdef WMOPS + wmops_sub_start( "renderObjectsToChannels" ); +#endif + + assert( st->inConfig.numAudioObjects == metadataBuffer.numObjects && "Metadata provided for a different number of objects than found in input" ); + + /* Iterate over given audio objects */ + for ( objIdx = 0; objIdx < st->inConfig.numAudioObjects; ++objIdx ) + { + /* Get pointer to current object and its metadata */ + curObj = &st->inConfig.audioObjects[objIdx]; + pos = metadataBuffer.positions[objIdx]; + gain_lin = dBToLin( st->inConfig.audioObjects[objIdx].gain_dB ); + + /* Render to MC */ + renderSingleObjectToChannels( + st, + inAudio, + curObj->inputChannelIndex, + &st->objPanInfo[objIdx], + pos, + gain_lin, + outAudio ); + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void applyGainToBuffer( const IVAS_REND_AudioBuffer buffer, const uint32_t bufChIdx, float gain_lin ) +{ + int32_t smplIdx, chnlIdx; + float *smplPtr; + + smplPtr = buffer.data + bufChIdx; + for ( chnlIdx = 0; chnlIdx < buffer.config.numChannels; ++chnlIdx ) + { + for ( smplIdx = 0; smplIdx < buffer.config.bufferSize; ++smplIdx ) + { + *smplPtr++ *= gain_lin; + } + } +} + +static void copyBufferTo2dArray( const IVAS_REND_AudioBuffer buffer, const uint32_t bufChIdx, float array[MAX_OUTPUT_CHANNELS][L_FRAME48k] ) +{ + int32_t smplIdx, chnlIdx; + const float *readPtr; + + readPtr = buffer.data + bufChIdx; + for ( chnlIdx = 0; chnlIdx < buffer.config.numChannels; ++chnlIdx ) + { + for ( smplIdx = 0; smplIdx < buffer.config.bufferSize; ++smplIdx ) + { + array[chnlIdx][smplIdx] = *readPtr++; + } + } +} + +static void copy2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME48k], IVAS_REND_AudioBuffer *buffer, const uint32_t bufChIdx ) +{ + int32_t smplIdx, chnlIdx; + float *writePtr; + + writePtr = buffer->data + bufChIdx; + for ( chnlIdx = 0; chnlIdx < buffer->config.numChannels; ++chnlIdx ) + { + for ( smplIdx = 0; smplIdx < buffer->config.bufferSize; ++smplIdx ) + { + *writePtr++ = array[chnlIdx][smplIdx]; + } + } +} + +static void copyHeadRotToDecDummy( const IVAS_QUATERNION *headRot, DecoderDummy *decDummy ) +{ + int16_t i; + + assert( decDummy != NULL && decDummy->hHeadTrackData != NULL ); + + for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) + { + decDummy->hHeadTrackData->Quaternions[i].w = headRot[i].w; + decDummy->hHeadTrackData->Quaternions[i].x = headRot[i].x; + decDummy->hHeadTrackData->Quaternions[i].y = headRot[i].y; + decDummy->hHeadTrackData->Quaternions[i].z = headRot[i].z; + } + + decDummy->hHeadTrackData->num_quaternions = 0; + + /* Make sure head rotation is not performed in the renderer(s) */ + decDummy->hDecoderConfig->Opt_Headrotation = 0; +} + +static void renderAmbiToBinaural( + const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ) +{ + int16_t i; + int16_t subFrameLength; + uint32_t ambiIdx; + uint32_t inAmbiChannelIdx; + float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + float gain_lin; + +#ifdef WMOPS + wmops_sub_start( "renderAmbiToBinaural" ); +#endif + + subFrameLength = (int16_t) ( st->sampleRate / FRAMES_PER_SEC / RENDERER_HEAD_POSITIONS_PER_FRAME ); + if ( st->enableHeadRotation ) + { + copyHeadRotToDecDummy( st->headRotationData, st->decDummyAmbiBin ); + } + + for ( ambiIdx = 0; ambiIdx < st->inConfig.numAmbisonicsBuses; ++ambiIdx ) + { + inAmbiChannelIdx = st->inConfig.ambisonicsBuses[ambiIdx].inputChannelIndex; + gain_lin = dBToLin( st->inConfig.ambisonicsBuses[ambiIdx].gain_dB ); + + applyGainToBuffer( inAudio, inAmbiChannelIdx, gain_lin ); + copyBufferTo2dArray( inAudio, inAmbiChannelIdx, tmpBuffer ); + + if ( st->enableHeadRotation ) + { + for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) + { + rotateFrame_shd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, st->sampleRate, subFrameLength, st->decDummyAmbiBin->hTransSetup, i ); + } + } + + ivas_crend_process( st->decDummyAmbiBin, tmpBuffer ); + + copy2dArrayToBuffer( tmpBuffer, &outAudio, inAmbiChannelIdx ); + } + + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void renderChannelsToBinaural( + const IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ) +{ + int16_t i; + int16_t subFrameLength; + int16_t lfeLpDelay; + uint32_t mcIdx; + uint32_t inMcChannelIdx; + uint32_t lfeChIdx; + float tmpLfeBuffer[L_FRAME48k]; + float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + float gain_lin; + +#ifdef WMOPS + wmops_sub_start( "renderChannelsToBinaural" ); +#endif + + subFrameLength = (int16_t) ( st->sampleRate / FRAMES_PER_SEC / RENDERER_HEAD_POSITIONS_PER_FRAME ); + if ( st->enableHeadRotation ) + { + copyHeadRotToDecDummy( st->headRotationData, st->decDummyMcBin ); + } + + for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) + { + inMcChannelIdx = st->inConfig.multiChannelBuses[mcIdx].inputChannelIndex; + gain_lin = dBToLin( st->inConfig.multiChannelBuses[mcIdx].gain_dB ); + + applyGainToBuffer( inAudio, inMcChannelIdx, gain_lin ); + copyBufferTo2dArray( inAudio, inMcChannelIdx, tmpBuffer ); + + /* Rotation in spatial domain */ + if ( st->enableHeadRotation ) + { + for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) + { + rotateFrame_sd( st->decDummyMcBin->hHeadTrackData, tmpBuffer, st->sampleRate, subFrameLength, st->decDummyMcBin->hTransSetup, st->decDummyMcBin->hEFAPdata, i ); + } + } + + /* TD object renderer initialised only for 7_1 and 5_1 with headrotation or custom layout input */ + if ( ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) || + ( st->decDummyMcBin->hBinRendererTd != NULL && st->enableHeadRotation ) ) + { + ObjRenderIVASFrame( st->decDummyMcBin, tmpBuffer, inAudio.config.bufferSize ); + /* TODO tmu : needs delay compensation otherwise LFE is added out of alignment */ + } + else + { + ivas_crend_process( st->decDummyMcBin, tmpBuffer ); + } + + /* Low-pass filter the LFE channel with delay compensation */ + lfeLpDelay = (int16_t) ( ivas_lfe_lpf_delay[1] * (float) st->sampleRate ); + if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + lfeChIdx = st->inConfig.inSetupCustom->lfe_idx[0]; + } + else + { + lfeChIdx = LFE_CHANNEL; + } + // TODO tmu verify + mvr2r( tmpBuffer[lfeChIdx], tmpLfeBuffer, L_FRAME48k ); + ivas_filter_process( &st->lfeLpFilter, tmpLfeBuffer, L_FRAME48k ); + set_zero( tmpBuffer[lfeChIdx], L_FRAME48k ); + mvr2r( &tmpLfeBuffer[lfeLpDelay], &tmpBuffer[lfeChIdx][0], L_FRAME48k - lfeLpDelay ); + + ivas_binaural_add_LFE( st->decDummyMcBin, L_FRAME48k, tmpBuffer ); + copy2dArrayToBuffer( tmpBuffer, &outAudio, inMcChannelIdx ); + } + + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void renderObjectsToBinaural( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, + IVAS_REND_AudioBuffer outAudio ) +{ + int16_t objIdx; + int16_t tmpAzi, tmpEle; + float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + float gain_lin; + +#ifdef WMOPS + wmops_sub_start( "renderObjectsToBinaural" ); +#endif + + assert( st->inConfig.numAudioObjects == metadataBuffer.numObjects && "Metadata provided for a different number of objects than found in input" ); + + if ( st->enableHeadRotation ) + { + copyHeadRotToDecDummy( st->headRotationData, st->decDummyObjBin ); + } + + /* Iterate over given audio objects */ + for ( objIdx = 0; objIdx < metadataBuffer.numObjects; ++objIdx ) + { + /* Apply head rotation directly to object positions */ + /* TODO tmu 20ms only right now... */ + if ( st->enableHeadRotation ) + { + /* save original positions */ + tmpAzi = (int16_t) metadataBuffer.positions[objIdx].azimuth; + tmpEle = (int16_t) metadataBuffer.positions[objIdx].elevation; + + /* apply rotation */ + QuatToRotMat( st->decDummyObjBin->hHeadTrackData->Quaternions[0], st->decDummyObjBin->hHeadTrackData->Rmat ); + rotateAziEle( + metadataBuffer.positions[objIdx].azimuth, + metadataBuffer.positions[objIdx].elevation, + &tmpAzi, + &tmpEle, + st->decDummyObjBin->hHeadTrackData->Rmat, + 0 ); + + /* set rotated positions in decoder dummy */ + st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth = (float) tmpAzi; + st->decDummyObjBin->hIsmMetaData[objIdx]->elevation = (float) tmpEle; + } + } + + /* TODO tmu : enable per-object gains */ + gain_lin = dBToLin( st->inConfig.audioObjects[0].gain_dB ); + applyGainToBuffer( inAudio, 0, gain_lin ); + + copyBufferTo2dArray( inAudio, 0, tmpBuffer ); + ObjRenderIVASFrame( st->decDummyObjBin, tmpBuffer, inAudio.config.bufferSize ); + copy2dArrayToBuffer( tmpBuffer, &outAudio, 0 ); + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void renderSingleObjectToAmbi( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const uint32_t itemChnlIdx, + IVAS_REND_ObjPanInfo *prevPanInfo, + const IVAS_REND_AudioObjectPosition curFrmPos, + const float gain_lin, + IVAS_REND_AudioBuffer outAudio ) +{ + float *swapPtr; + +#ifdef WMOPS + wmops_sub_start( "renderSingleObjectToAmbi" ); +#endif + + /* Update panning gains if position changed */ + if ( prevPanInfo->position.azimuth != curFrmPos.azimuth || + prevPanInfo->position.elevation != curFrmPos.elevation || + st->firstFrame ) + { + /* Write current panning gains to tmpBuffer */ + ivas_dirac_dec_get_response( (int16_t) curFrmPos.azimuth, + (int16_t) curFrmPos.elevation, + st->tmpGainBuffer, + getAmbisonicsOrder( st->outConfig.ambisonics ) ); + + prevPanInfo->position.azimuth = curFrmPos.azimuth; + prevPanInfo->position.elevation = curFrmPos.elevation; + + applyChannelGainsAndAddToOutput( inAudio, + itemChnlIdx, + st->tmpGainBuffer, + st->firstFrame ? NULL : prevPanInfo->panGains, + gain_lin, + st->crossfade, + outAudio ); + + /* Save current gains as most recently applied gains */ + swapPtr = prevPanInfo->panGains; + prevPanInfo->panGains = st->tmpGainBuffer; + st->tmpGainBuffer = swapPtr; + } + /* Otherwise use most recent gains and no interpolation */ + else + { + applyChannelGainsAndAddToOutput( inAudio, + itemChnlIdx, + prevPanInfo->panGains, + NULL, + gain_lin, + st->crossfade, + outAudio ); + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void renderSingleObjectToChannels( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + const uint32_t itemChnlIdx, + IVAS_REND_ObjPanInfo *prevPanInfo, + const IVAS_REND_AudioObjectPosition curFrmPos, + const float gain_lin, + IVAS_REND_AudioBuffer outAudio ) +{ + float *swapPtr; + +#ifdef WMOPS + wmops_sub_start( "renderSingleObjectToChannels" ); +#endif + + /* Update panning gains if position changed */ + if ( prevPanInfo->position.azimuth != curFrmPos.azimuth || + prevPanInfo->position.elevation != curFrmPos.elevation || + st->firstFrame ) + { + /* Write current panning gains to tmpBuffer */ + getSpeakerGains( st, curFrmPos.azimuth, curFrmPos.elevation, st->tmpGainBuffer ); + prevPanInfo->position.azimuth = curFrmPos.azimuth; + prevPanInfo->position.elevation = curFrmPos.elevation; + + applyChannelGainsAndAddToOutput( inAudio, + itemChnlIdx, + st->tmpGainBuffer, + st->firstFrame ? NULL : prevPanInfo->panGains, + gain_lin, + st->crossfade, + outAudio ); + + /* Save current gains as most recently applied gains */ + swapPtr = prevPanInfo->panGains; + prevPanInfo->panGains = st->tmpGainBuffer; + st->tmpGainBuffer = swapPtr; + } + /* Otherwise use most recent gains and no interpolation */ + else + { + applyChannelGainsAndAddToOutput( inAudio, + itemChnlIdx, + prevPanInfo->panGains, + NULL, + gain_lin, + st->crossfade, + outAudio ); + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void applyChannelGainsAndAddToOutput( + const IVAS_REND_AudioBuffer inAudio, + const uint32_t itemChnlIdx, + const float *const gainsCurrent, + const float *const gainsPrev, + const float gain_lin, + const float *const crossfade, + IVAS_REND_AudioBuffer outAudio ) +{ + float *inSmpl; + float *outSmpl; + const float *fadeIn; + const float *fadeOut; + const float *lastInSmpl; + int16_t outChnlIdx; + float currentGain; + float previousGain; + +#ifdef WMOPS + wmops_sub_start( "applyChannelGainsAndAddToOutput" ); +#endif + + + /* Pointer to behind last input sample */ + lastInSmpl = get_smpl_ptr( inAudio, itemChnlIdx, inAudio.config.bufferSize ); + + for ( outChnlIdx = 0; outChnlIdx < outAudio.config.numChannels; ++outChnlIdx ) + { +#ifdef WMOPS + wmops_sub_start( "applyChannelGainsAndAddToOutput_chnl_loop" ); +#endif + currentGain = gainsCurrent[outChnlIdx] * gain_lin; + previousGain = gainsPrev == NULL ? 0.f : gainsPrev[outChnlIdx] * gain_lin; + + /* Process current output channel only if applying non-zero gains */ + if ( fabsf( currentGain ) > EPSILON || ( gainsPrev != NULL && fabsf( previousGain ) > EPSILON ) ) + { + /* Reset crossfade pointers */ + fadeIn = crossfade; + fadeOut = &crossfade[inAudio.config.bufferSize - 1]; + + /* Reset input pointer to the beginning of input channel */ + inSmpl = get_smpl_ptr( inAudio, itemChnlIdx, 0 ); + + /* Set output pointer to first output channel sample */ + outSmpl = get_smpl_ptr( outAudio, outChnlIdx, 0 ); + + if ( gainsPrev == NULL || fabsf( previousGain - currentGain ) <= EPSILON ) + { +#ifdef WMOPS + wmops_sub_start( "applyChannelGainsAndAddToOutput_smpl_loop_no_intrpl" ); +#endif + /* If no interpolation from previous frame, apply current gain */ + do + { + *outSmpl += currentGain * ( *inSmpl ); + ++outSmpl; + ++inSmpl; + + } while ( inSmpl != lastInSmpl ); +#ifdef WMOPS + wmops_sub_end(); +#endif + } + else + { +#ifdef WMOPS + wmops_sub_start( "applyChannelGainsAndAddToOutput_smpl_loop_intrpl" ); +#endif + /* Otherwise use weighted average between previous and current gain */ + do + { + *outSmpl += ( ( *fadeIn ) * currentGain + ( *fadeOut ) * previousGain ) * ( *inSmpl ); + ++outSmpl; + ++inSmpl; + + ++fadeIn; + --fadeOut; + } while ( inSmpl != lastInSmpl ); +#ifdef WMOPS + wmops_sub_end(); +#endif + } + } + +#ifdef WMOPS + wmops_sub_end(); +#endif + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void prepareLfeHandling( + IVAS_REND_HANDLE st ) +{ + const float *filtCoeff; +#ifdef WMOPS + wmops_sub_start( "prepareLfeHandling" ); +#endif + /* Panning gains */ + st->lfePanGains = count_calloc( st->numOutChannels, sizeof( float ) ); + + if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) + { + /* TODO tmu : LFE in ambisonics disabled for now */ + /* Pan LFE to south pole (experimental) */ + // ivas_dirac_dec_get_response( 0, + // -90, + // st->lfePanGains, + // getAmbisonicsOrder( st->outConfig.ambisonics ) ); + } + else + { + set_zero( st->lfePanGains, st->numOutChannels ); + + /* Pan LFE to L and R with -3dB gain */ + if ( st->numOutChannels > 1 ) + { + st->lfePanGains[0] = sqrtf( 0.5f ); + st->lfePanGains[1] = sqrtf( 0.5f ); + } + else + { + /* Put LFE in center channel, do not add 10dB gain to avoid clipping */ + st->lfePanGains[0] = 1.f; + } + } + + /* Low-pass filter */ + ivas_lfe_lpf_select_filt_coeff( st->sampleRate, IVAS_FILTER_ORDER_4, &filtCoeff ); + ivas_filters_init( &st->lfeLpFilter, filtCoeff, IVAS_FILTER_ORDER_4 ); + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void prepareMcPanGains( IVAS_REND_HANDLE st ) +{ + uint32_t mcIdx; + int32_t spkIdx; + int32_t numNonLfeChannelsIn; + const float *spkAzi; + const float *spkEle; + +#ifdef WMOPS + wmops_sub_start( "prepareMcPanGains" ); +#endif + /* No gains required for binaural output */ + if ( ( st->outConfig.binaural ) && + ( st->outConfig.ambisonics == IVAS_REND_AMBISONICS_NONE || st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_NONE ) ) + { + st->speakerPanGains = NULL; + return; + } + + st->speakerPanGains = count_calloc( st->inConfig.numMultiChannelBuses, sizeof( float ** ) ); + + for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) + { + if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + numNonLfeChannelsIn = st->inConfig.inSetupCustom->num_spk; + spkAzi = st->inConfig.inSetupCustom->ls_azimuth; + spkEle = st->inConfig.inSetupCustom->ls_elevation; + } + else + { + numNonLfeChannelsIn = getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + spkAzi = getSpeakerAzimuths( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + spkEle = getSpeakerElevations( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + } + + st->speakerPanGains[mcIdx] = count_calloc( numNonLfeChannelsIn, sizeof( float * ) ); + + + if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) + { + for ( spkIdx = 0; spkIdx < numNonLfeChannelsIn; ++spkIdx ) + { + st->speakerPanGains[mcIdx][spkIdx] = count_calloc( st->numOutChannels, sizeof( float ) ); + ivas_dirac_dec_get_response( (int16_t) spkAzi[spkIdx], + (int16_t) spkEle[spkIdx], + st->speakerPanGains[mcIdx][spkIdx], + getAmbisonicsOrder( st->outConfig.ambisonics ) ); + } + } + else if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) + { + /* Custom loudspeaker layout gains */ + for ( spkIdx = 0; spkIdx < numNonLfeChannelsIn; ++spkIdx ) + { + st->speakerPanGains[mcIdx][spkIdx] = count_calloc( st->numOutChannels, sizeof( float ) ); + if ( + ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) || + ( st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) ) + { + getSpeakerGains( st, spkAzi[spkIdx], spkEle[spkIdx], st->speakerPanGains[mcIdx][spkIdx] ); + } + } + + /* Table lookup for loudspeaker layout gains */ + if ( ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout != IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) && + ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) ) + { + int16_t i, k; + int16_t ch_in, ch_out; + int16_t index; + int16_t nchan_out; + float value; + const uint32_t *lfeLastIdxMap; + const LS_CONVERSION_MATRIX *conversion_matrix; + AUDIO_CONFIG input_config, output_config; + IVAS_REND_SpeakerLayout spkLayoutIn; + + conversion_matrix = NULL; + spkLayoutIn = st->inConfig.multiChannelBuses[mcIdx].speakerLayout; + + input_config = mapRendLayoutToAudioConfig( spkLayoutIn ); + output_config = mapRendLayoutToAudioConfig( st->outConfig.speakerLayout ); + nchan_out = audioCfg2channels( output_config ); + lfeLastIdxMap = getReorderedChannelIndices( spkLayoutIn ); + + /* Search the table for a mapping */ + for ( i = 0; i < LS_SETUP_CONVERSION_NUM_MAPPINGS; i++ ) + { + if ( ( input_config == ls_conversion_mapping[i].input_config ) && ( output_config == ls_conversion_mapping[i].output_config ) ) + { + /* Special handling for MONO and STEREO downmix */ + if ( output_config == AUDIO_CONFIG_MONO || output_config == AUDIO_CONFIG_STEREO ) + { + for ( spkIdx = 0; spkIdx < numNonLfeChannelsIn; spkIdx++ ) + { + k = lfeLastIdxMap[spkIdx]; + + /* Skip two rows in the matrix for 5.1.x formats */ + if ( spkIdx >= 5 && ( input_config == AUDIO_CONFIG_5_1_2 || input_config == AUDIO_CONFIG_5_1_4 ) ) + { + k += 2; + } + + for ( ch_out = 0; ch_out < nchan_out; ch_out++ ) + { + if ( output_config == AUDIO_CONFIG_MONO ) + { + st->speakerPanGains[mcIdx][spkIdx][ch_out] = ls_conversion_cicpX_mono[k][ch_out]; + } + else + { + if ( input_config == AUDIO_CONFIG_MONO ) + { + st->speakerPanGains[mcIdx][spkIdx][ch_out] = ls_conversion_cicpX_stereo[k + 2][ch_out]; + } + else + { + st->speakerPanGains[mcIdx][spkIdx][ch_out] = ls_conversion_cicpX_stereo[k][ch_out]; + } + } + } + } + } + else + { + conversion_matrix = ls_conversion_mapping[i].conversion_matrix; + + /* If a mapping is defined with a NULL matrix, 1:1 upmix of input channels */ + if ( conversion_matrix == NULL ) + { + for ( spkIdx = 0; spkIdx < numNonLfeChannelsIn; spkIdx++ ) + { + ch_out = lfeLastIdxMap[spkIdx]; + st->speakerPanGains[mcIdx][spkIdx][ch_out] = 1.0f; + } + } + else + { + for ( k = 1; k < ( conversion_matrix[0].index + 1 ); k++ ) + { + index = conversion_matrix[k].index; + value = conversion_matrix[k].value; + + /* Second dimension of speakerPanGains (ch_in here) is the input channel index with LFE channels skipped. + Use lfeLastIdxMap to do a reverse lookup over non-LFE channels. + reverseChannelIndexMapping will return -1 for LFE channels - those should be skipped */ + ch_in = reverseChannelIndexMapping( index / nchan_out, lfeLastIdxMap, numNonLfeChannelsIn ); + if ( ch_in < 0 ) + { + continue; + } + + ch_out = index % nchan_out; + + st->speakerPanGains[mcIdx][ch_in][ch_out] = value; + } + } + } + } + } + } + } + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void prepareMcPassthrough( IVAS_REND_HANDLE st ) +{ + /* Output config */ + const float *outSpkAzi; + const float *outSpkEle; + const uint32_t *lfeLastIdxs; + uint32_t numNonLfeOutChannels; + uint32_t numOutChannels; + uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; + + /* Input config */ + const float *inSpkAzi; + const float *inSpkEle; + uint32_t numInChannels; + uint32_t numNonLfeInChannels; + + /* Input channel index */ + uint32_t passThroughIdx; + + uint32_t mcIdx; + uint32_t inChIdx; + uint32_t outChIdx; + +#ifdef WMOPS + wmops_sub_start( "prepareMcPassthrough" ); +#endif + + st->mcPassthrough = count_calloc( st->numInChannelsMc, sizeof( int32_t ) ); + + + if ( st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + /* Number of non-LFE output channels */ + numNonLfeOutChannels = st->outConfig.outSetupCustom->num_spk; + + /* Number of output channels */ + numOutChannels = st->outConfig.outSetupCustom->num_spk + st->outConfig.outSetupCustom->num_lfe; + + /* Output speaker coordinates */ + outSpkAzi = st->outConfig.outSetupCustom->ls_azimuth; + outSpkEle = st->outConfig.outSetupCustom->ls_elevation; + + /* num_spk + num_lfe must be <= MAX_OUTPUT_CHANNELS for custom loudspeaker layouts */ + if ( st->outConfig.outSetupCustom->num_lfe > 0 ) + { + lfeLastIdx_lsCustom[numNonLfeOutChannels] = st->outConfig.outSetupCustom->lfe_idx[0]; + } + + for ( outChIdx = 0; outChIdx < numNonLfeOutChannels; ++outChIdx ) + { + ( ( st->outConfig.outSetupCustom->num_lfe > 0 ) && ( (int16_t) outChIdx >= st->outConfig.outSetupCustom->lfe_idx[0] ) ) ? ( lfeLastIdx_lsCustom[outChIdx] = outChIdx + 1 ) : ( lfeLastIdx_lsCustom[outChIdx] = outChIdx ); + } + + lfeLastIdxs = &lfeLastIdx_lsCustom[0]; + } + else + { + /* Number of non-LFE output channels */ + numNonLfeOutChannels = getNumNonLfeChannelsInSpeakerLayout( st->outConfig.speakerLayout ); + + /* Number of output channels */ + numOutChannels = getNumChannelsInSpeakerLayout( st->outConfig.speakerLayout ); + + /* Output speaker coordinates */ + outSpkAzi = getSpeakerAzimuths( st->outConfig.speakerLayout ); + outSpkEle = getSpeakerElevations( st->outConfig.speakerLayout ); + + lfeLastIdxs = getReorderedChannelIndices( st->outConfig.speakerLayout ); + } + + passThroughIdx = 0; + for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) + { + if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + /* Number of non-LFE input channels for current MC input */ + numNonLfeInChannels = st->inConfig.inSetupCustom->num_spk; + + /* Number of input channels for current MC input */ + numInChannels = st->inConfig.inSetupCustom->num_spk + st->inConfig.inSetupCustom->num_lfe; + + /* Input speaker coordinates */ + inSpkAzi = st->inConfig.inSetupCustom->ls_azimuth; + inSpkEle = st->inConfig.inSetupCustom->ls_elevation; + } + else + { + /* Number of non-LFE input channels for current MC input */ + numNonLfeInChannels = getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + + /* Number of input channels for current MC input */ + numInChannels = getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + + /* Input speaker coordinates */ + inSpkAzi = getSpeakerAzimuths( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + inSpkEle = getSpeakerElevations( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + } + + /* Check if passthrough is possible, save I/O mapping */ + for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) + { + st->mcPassthrough[passThroughIdx] = -1; + + for ( outChIdx = 0; outChIdx < numNonLfeOutChannels; ++outChIdx ) + { + if ( inSpkAzi[inChIdx] == outSpkAzi[outChIdx] && + inSpkEle[inChIdx] == outSpkEle[outChIdx] ) + { + st->mcPassthrough[passThroughIdx] = lfeLastIdxs[outChIdx]; + break; + } + } + + ++passThroughIdx; + } + + /* Setup LFE passthrough, save I/O mapping */ + outChIdx = numNonLfeOutChannels; + for ( ; inChIdx < numInChannels; ++inChIdx ) + { + if ( outChIdx < numOutChannels ) + { + st->mcPassthrough[passThroughIdx] = lfeLastIdxs[outChIdx]; + } + else + { + st->mcPassthrough[passThroughIdx] = -1; + } + + ++outChIdx; + ++passThroughIdx; + } + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void passthroughChannel( const IVAS_REND_AudioBuffer inAudio, + const uint32_t srcChnlIdx, + const uint32_t dstChnlIdx, + const float gain_lin, + IVAS_REND_AudioBuffer outAudio ) +{ + float *inSmpl; + float *outSmpl; + int16_t smplIdx; + +#ifdef WMOPS + wmops_sub_start( "passthroughChannel" ); +#endif + + inSmpl = get_smpl_ptr( inAudio, srcChnlIdx, 0 ); + outSmpl = get_smpl_ptr( outAudio, dstChnlIdx, 0 ); + + for ( smplIdx = 0; smplIdx < inAudio.config.bufferSize; ++smplIdx ) + { + *outSmpl += *inSmpl * gain_lin; + + ++outSmpl; + ++inSmpl; + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +static void getSpeakerGains( const IVAS_REND_HANDLE st, + const float azi, + const float ele, + float *const spkGains ) +{ + const uint32_t *lfeLastIdxs; + int16_t numNonLfeOutChannels; + int16_t noLfeIdx; + IVAS_REND_SpeakerLayout speakerLayout; + +#ifdef WMOPS + wmops_sub_start( "getSpeakerGains" ); +#endif + + /* EFAP returns an array of gains only for non-LFE speakers */ + efap_determine_gains( st->efapRenderer, st->noLfePanBuffer, azi, ele, EFAP_MODE_EFAP ); + + speakerLayout = st->outConfig.speakerLayout; + if ( speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + uint32_t lfeIdx; + + numNonLfeOutChannels = st->outConfig.outSetupCustom->num_spk; + + /* Clear speaker gains - not all elements will be overwritten below */ + set_zero( spkGains, numNonLfeOutChannels + st->outConfig.outSetupCustom->num_lfe ); + + /* Copy to gain array where LFE channel(s) are included */ + for ( lfeIdx = 0, noLfeIdx = 0; noLfeIdx < numNonLfeOutChannels; lfeIdx++, noLfeIdx++ ) + { + if ( noLfeIdx == st->outConfig.outSetupCustom->lfe_idx[0] ) + { + lfeIdx++; + } + spkGains[lfeIdx] = st->noLfePanBuffer[noLfeIdx]; + } + } + else + { + numNonLfeOutChannels = getNumNonLfeChannelsInSpeakerLayout( speakerLayout ); + lfeLastIdxs = getReorderedChannelIndices( speakerLayout ); + + /* Clear speaker gains - not all elements will be overwritten below */ + set_zero( spkGains, getNumChannelsInSpeakerLayout( speakerLayout ) ); + + /* Copy to gain array where LFE channel(s) are included */ + for ( noLfeIdx = 0; noLfeIdx < numNonLfeOutChannels; ++noLfeIdx ) + { + spkGains[lfeLastIdxs[noLfeIdx]] = st->noLfePanBuffer[noLfeIdx]; + } + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +int16_t getNumChannelsAmbisonics( IVAS_REND_Ambisonics ambisonics ) +{ + switch ( ambisonics ) + { + case IVAS_REND_AMBISONICS_NONE: + return 0; + case IVAS_REND_AMBISONICS_MONO: + return 1; + case IVAS_REND_AMBISONICS_FOA: + return 4; + case IVAS_REND_AMBISONICS_SOA: + return 9; + case IVAS_REND_AMBISONICS_TOA: + return 16; + default: + assert( !"Invalid ambisonics config" ); + } + + return 0; +} + +static int16_t getAmbisonicsOrder( IVAS_REND_Ambisonics ambisonics ) +{ + assert( ambisonics != IVAS_REND_AMBISONICS_NONE && "Invalid ambisonics config" ); + return ambisonics; /* Enum values map to ambisonics order */ +} + +int16_t getNumChannelsInSpeakerLayout( IVAS_REND_SpeakerLayout layout ) +{ + switch ( layout ) + { + case IVAS_REND_SPEAKER_LAYOUT_NONE: + return 0; + case IVAS_REND_SPEAKER_LAYOUT_MONO: + return 1; + case IVAS_REND_SPEAKER_LAYOUT_STEREO: + return 2; + case IVAS_REND_SPEAKER_LAYOUT_5_1: + return 6; + case IVAS_REND_SPEAKER_LAYOUT_5_1_2: + case IVAS_REND_SPEAKER_LAYOUT_7_1: + return 8; + case IVAS_REND_SPEAKER_LAYOUT_5_1_4: + return 10; + case IVAS_REND_SPEAKER_LAYOUT_7_1_4: + return 12; + default: + assert( !"Invalid speaker layout" ); + } + + return 0; +} + +int16_t getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_SpeakerLayout layout ) +{ + switch ( layout ) + { + case IVAS_REND_SPEAKER_LAYOUT_MONO: + return 1; + case IVAS_REND_SPEAKER_LAYOUT_STEREO: + return 2; + case IVAS_REND_SPEAKER_LAYOUT_5_1: + return 5; + case IVAS_REND_SPEAKER_LAYOUT_5_1_2: + case IVAS_REND_SPEAKER_LAYOUT_7_1: + return 7; + case IVAS_REND_SPEAKER_LAYOUT_5_1_4: + return 9; + case IVAS_REND_SPEAKER_LAYOUT_7_1_4: + return 11; + default: + assert( !"Invalid speaker layout" ); + } + + return 0; +} + +const float *getSpeakerAzimuths( IVAS_REND_SpeakerLayout layout ) +{ + switch ( layout ) + { + case IVAS_REND_SPEAKER_LAYOUT_MONO: + return ls_azimuth_CICP1; + case IVAS_REND_SPEAKER_LAYOUT_STEREO: + return ls_azimuth_CICP2; + case IVAS_REND_SPEAKER_LAYOUT_5_1: + return ls_azimuth_CICP6; + case IVAS_REND_SPEAKER_LAYOUT_7_1: + return ls_azimuth_CICP12; + case IVAS_REND_SPEAKER_LAYOUT_5_1_2: + return ls_azimuth_CICP14; + case IVAS_REND_SPEAKER_LAYOUT_5_1_4: + return ls_azimuth_CICP16; + case IVAS_REND_SPEAKER_LAYOUT_7_1_4: + return ls_azimuth_CICP19; + default: + assert( !"Invalid speaker layout" ); + } + + return NULL; +} + +const float *getSpeakerElevations( IVAS_REND_SpeakerLayout layout ) +{ + switch ( layout ) + { + case IVAS_REND_SPEAKER_LAYOUT_MONO: + return ls_elevation_CICP1; + case IVAS_REND_SPEAKER_LAYOUT_STEREO: + return ls_elevation_CICP2; + case IVAS_REND_SPEAKER_LAYOUT_5_1: + return ls_elevation_CICP6; + case IVAS_REND_SPEAKER_LAYOUT_7_1: + return ls_elevation_CICP12; + case IVAS_REND_SPEAKER_LAYOUT_5_1_2: + return ls_elevation_CICP14; + case IVAS_REND_SPEAKER_LAYOUT_5_1_4: + return ls_elevation_CICP16; + case IVAS_REND_SPEAKER_LAYOUT_7_1_4: + return ls_elevation_CICP19; + default: + assert( !"Invalid speaker layout" ); + } + + return NULL; +} + +static const uint32_t *getReorderedChannelIndices( IVAS_REND_SpeakerLayout layout ) +{ + switch ( layout ) + { + case IVAS_REND_SPEAKER_LAYOUT_MONO: + return ls_LFE_last_idx_CICP1; + case IVAS_REND_SPEAKER_LAYOUT_STEREO: + return ls_LFE_last_idx_CICP2; + case IVAS_REND_SPEAKER_LAYOUT_5_1: + return ls_LFE_last_idx_CICP6; + case IVAS_REND_SPEAKER_LAYOUT_7_1: + return ls_LFE_last_idx_CICP12; + case IVAS_REND_SPEAKER_LAYOUT_5_1_2: + return ls_LFE_last_idx_CICP14; + case IVAS_REND_SPEAKER_LAYOUT_5_1_4: + return ls_LFE_last_idx_CICP16; + case IVAS_REND_SPEAKER_LAYOUT_7_1_4: + return ls_LFE_last_idx_CICP19; + default: + assert( !"Invalid speaker layout" ); + } + + return NULL; +} + +static int32_t reverseChannelIndexMapping( int32_t originalChannelIndex, const uint32_t *channelReorderingMap, uint32_t numNonLfeSpeakers ) +{ + int32_t i; + + for ( i = 0; i < (int32_t) numNonLfeSpeakers; ++i ) + { + if ( (int32_t) channelReorderingMap[i] == originalChannelIndex ) + { + return i; + } + } + + return -1; +} + +static ivas_error getHoaRenderMtx( + const IVAS_REND_OutputConfig outConfig, + float **decMtx, + uint32_t ambiOrder ) +{ + IVAS_OUTPUT_SETUP hOutSetup; + ivas_error error; + + error = IVAS_ERR_OK; + +#ifdef WMOPS + wmops_sub_start( "getHoaRenderMtx" ); +#endif + + switch ( outConfig.speakerLayout ) + { + case IVAS_REND_SPEAKER_LAYOUT_MONO: + ivas_output_init( &hOutSetup, AUDIO_CONFIG_MONO ); + hOutSetup.ls_azimuth = ls_azimuth_CICP1; + hOutSetup.ls_elevation = ls_elevation_CICP1; + break; + case IVAS_REND_SPEAKER_LAYOUT_STEREO: + ivas_output_init( &hOutSetup, AUDIO_CONFIG_STEREO ); + break; + case IVAS_REND_SPEAKER_LAYOUT_5_1: + ivas_output_init( &hOutSetup, AUDIO_CONFIG_5_1 ); + break; + case IVAS_REND_SPEAKER_LAYOUT_7_1: + ivas_output_init( &hOutSetup, AUDIO_CONFIG_7_1 ); + break; + case IVAS_REND_SPEAKER_LAYOUT_5_1_2: + ivas_output_init( &hOutSetup, AUDIO_CONFIG_5_1_2 ); + break; + case IVAS_REND_SPEAKER_LAYOUT_5_1_4: + ivas_output_init( &hOutSetup, AUDIO_CONFIG_5_1_4 ); + break; + case IVAS_REND_SPEAKER_LAYOUT_7_1_4: + ivas_output_init( &hOutSetup, AUDIO_CONFIG_7_1_4 ); + break; + case IVAS_REND_SPEAKER_LAYOUT_CUSTOM: + ivas_ls_custom_setup( &hOutSetup, outConfig.outSetupCustom ); + break; + default: + assert( !"Invalid speaker config" ); + return IVAS_ERR_WRONG_PARAMS; + } + + if ( ( error = ivas_sba_get_hoa_dec_matrix( hOutSetup, decMtx, (int16_t) ambiOrder ) ) != IVAS_ERR_OK ) + { + return error; + } + + +#ifdef WMOPS + wmops_sub_end(); +#endif + + return error; +} + +void getHoaDecVecForAmbiChnl( + uint32_t ambiChnnlIdx, + const IVAS_REND_OutputConfig outConfig, + const float *decMtx, + float *decCoeffs ) +{ + + const uint32_t *lfeLastIdxs; + int16_t numNonLfeChannels; + int16_t nonLfeChIdx; + +#ifdef WMOPS + wmops_sub_start( "getHoaDecVecForAmbiChnl" ); +#endif + + + if ( outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + uint32_t lfeIdx; + + numNonLfeChannels = outConfig.outSetupCustom->num_spk; + + /* Clear speaker gains - not all elements will be overwritten below */ + set_zero( decCoeffs, numNonLfeChannels + outConfig.outSetupCustom->num_lfe ); + + /* Copy to gain array where LFE channel(s) are included */ + for ( lfeIdx = 0, nonLfeChIdx = 0; nonLfeChIdx < numNonLfeChannels; lfeIdx++, nonLfeChIdx++ ) + { + if ( nonLfeChIdx == outConfig.outSetupCustom->lfe_idx[0] ) + { + lfeIdx++; + } + decCoeffs[lfeIdx] = decMtx[16 * nonLfeChIdx + ambiChnnlIdx]; + } + } + else + { + numNonLfeChannels = getNumNonLfeChannelsInSpeakerLayout( outConfig.speakerLayout ); + + lfeLastIdxs = getReorderedChannelIndices( outConfig.speakerLayout ); + + /* Clear decoding coefficients - not all elements will be overwritten below */ + set_zero( decCoeffs, getNumChannelsInSpeakerLayout( outConfig.speakerLayout ) ); + + for ( nonLfeChIdx = 0; nonLfeChIdx < numNonLfeChannels; ++nonLfeChIdx ) + { + decCoeffs[lfeLastIdxs[nonLfeChIdx]] = decMtx[16 * nonLfeChIdx + ambiChnnlIdx]; + } + } + +#ifdef WMOPS + wmops_sub_end(); +#endif +} + +/*-------------------------------------------------------------------* + * ivas_limiter_renderer() + * + * In-place saturation control for multichannel buffers with adaptive release time + *-------------------------------------------------------------------*/ +static void ivas_limiter_renderer( + IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ + float *output, /* i/o: I/O buffer */ + const int16_t output_frame, /* i : number of samples per channel in the buffer */ + const float threshold /* i : signal amplitude above which limiting starts to be applied */ +) +{ + int16_t c; + float **channels; + int16_t num_channels; + + /* return early if given bad parameters */ + if ( hLimiter == NULL || output == NULL || output_frame <= 0 ) + { + return; + } + + channels = hLimiter->channel_ptrs; + num_channels = hLimiter->num_channels; + + for ( c = 0; c < num_channels; ++c ) + { + channels[c] = output + c * output_frame; + } + + limiter_process( hLimiter, output_frame, threshold, 0, NULL ); + + return; +} + +static float dBToLin( const float gain_dB ) +{ + return powf( 10.f, gain_dB / 20.f ); +} + +static AUDIO_CONFIG mapRendLayoutToAudioConfig( IVAS_REND_SpeakerLayout speakerLayout ) +{ + switch ( speakerLayout ) + { + case IVAS_REND_SPEAKER_LAYOUT_MONO: + return AUDIO_CONFIG_MONO; + case IVAS_REND_SPEAKER_LAYOUT_STEREO: + return AUDIO_CONFIG_STEREO; + case IVAS_REND_SPEAKER_LAYOUT_5_1: + return AUDIO_CONFIG_5_1; + case IVAS_REND_SPEAKER_LAYOUT_7_1: + return AUDIO_CONFIG_7_1; + case IVAS_REND_SPEAKER_LAYOUT_5_1_2: + return AUDIO_CONFIG_5_1_2; + case IVAS_REND_SPEAKER_LAYOUT_5_1_4: + return AUDIO_CONFIG_5_1_4; + case IVAS_REND_SPEAKER_LAYOUT_7_1_4: + return AUDIO_CONFIG_7_1_4; + case IVAS_REND_SPEAKER_LAYOUT_CUSTOM: + return AUDIO_CONFIG_LS_CUSTOM; + case IVAS_REND_SPEAKER_LAYOUT_NONE: + default: + return AUDIO_CONFIG_INVALID; + } +} diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h new file mode 100644 index 0000000000..536a6da997 --- /dev/null +++ b/lib_rend/lib_rend.h @@ -0,0 +1,212 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + +#ifndef LIB_REND_H +#define LIB_REND_H + +#include +#include +#include + +#include "options.h" +#include "common_api_types.h" +#include "ivas_error.h" + +#define RENDERER_MAX_ISM_INPUTS 4 +#define RENDERER_MAX_MC_INPUTS 1 +#define RENDERER_MAX_SBA_INPUTS 1 + +#define RENDERER_HEAD_POSITIONS_PER_FRAME 4 + +typedef enum IVAS_REND_Ambisonics +{ + IVAS_REND_AMBISONICS_NONE = -1, + IVAS_REND_AMBISONICS_MONO = 0, + IVAS_REND_AMBISONICS_FOA = 1, + IVAS_REND_AMBISONICS_SOA = 2, + IVAS_REND_AMBISONICS_TOA = 3 +} IVAS_REND_Ambisonics; /* Numerical value corresponds to Ambisonics order */ + +typedef enum IVAS_REND_SpeakerLayout +{ + IVAS_REND_SPEAKER_LAYOUT_NONE = -1, + IVAS_REND_SPEAKER_LAYOUT_CUSTOM = 0, + IVAS_REND_SPEAKER_LAYOUT_MONO = 1, + IVAS_REND_SPEAKER_LAYOUT_STEREO = 2, + IVAS_REND_SPEAKER_LAYOUT_5_1 = 6, + IVAS_REND_SPEAKER_LAYOUT_5_1_2 = 14, + IVAS_REND_SPEAKER_LAYOUT_5_1_4 = 16, + IVAS_REND_SPEAKER_LAYOUT_7_1 = 12, + IVAS_REND_SPEAKER_LAYOUT_7_1_4 = 19 +} IVAS_REND_SpeakerLayout; /* Numerical value corresponds to CICP index */ + +typedef struct IVAS_REND_AudioObjectPosition +{ + float azimuth; + float elevation; +} IVAS_REND_AudioObjectPosition; + +typedef struct IVAS_REND_AudioObjectMetadataBuffer +{ + IVAS_REND_AudioObjectPosition positions[RENDERER_MAX_ISM_INPUTS]; + int16_t numObjects; +} IVAS_REND_AudioObjectMetadataBuffer; + +typedef struct IVAS_REND_AudioObject +{ + uint16_t inputChannelIndex; + float gain_dB; +} IVAS_REND_AudioObject; + +typedef struct IVAS_REND_ObjPanInfo +{ + IVAS_REND_AudioObjectPosition position; + float *panGains; +} IVAS_REND_ObjPanInfo; + +typedef struct IVAS_REND_AmbisonicsBus +{ + IVAS_REND_Ambisonics ambisonicsConfig; + uint8_t inputChannelIndex; + float gain_dB; +} IVAS_REND_AmbisonicsBus; + +typedef struct IVAS_REND_MultiChannelBus +{ + IVAS_REND_SpeakerLayout speakerLayout; + uint8_t inputChannelIndex; + float gain_dB; +} IVAS_REND_MultiChannelBus; + +typedef struct IVAS_REND_AudioBufferConfig +{ + int32_t sampleRate; + int16_t bufferSize; + int16_t numChannels; +} IVAS_REND_AudioBufferConfig; + +typedef struct IVAS_REND_AudioBuffer +{ + IVAS_REND_AudioBufferConfig config; + float *data; +} IVAS_REND_AudioBuffer; + +typedef struct IVAS_REND_InputConfig +{ + IVAS_REND_AudioObject audioObjects[RENDERER_MAX_ISM_INPUTS]; + uint16_t numAudioObjects; + IVAS_REND_MultiChannelBus multiChannelBuses[RENDERER_MAX_MC_INPUTS]; + uint16_t numMultiChannelBuses; + IVAS_REND_AmbisonicsBus ambisonicsBuses[RENDERER_MAX_SBA_INPUTS]; + uint16_t numAmbisonicsBuses; + IVAS_LSSETUP_CUSTOM_HANDLE inSetupCustom; +} IVAS_REND_InputConfig; + +typedef struct IVAS_REND_OutputConfig +{ + IVAS_REND_SpeakerLayout speakerLayout; + IVAS_REND_Ambisonics ambisonics; + IVAS_LSSETUP_CUSTOM_HANDLE outSetupCustom; + uint8_t binaural; /* flag */ +} IVAS_REND_OutputConfig; + +typedef struct IVAS_REND *IVAS_REND_HANDLE; + +/* clang-format off */ +/*----------------------------------------------------------------------------------* + * Function prototypes + *----------------------------------------------------------------------------------*/ + +/*! Creates a renderer state. + * r: pointer to opened renderer */ +IVAS_REND_HANDLE IVAS_REND_Open( /* TODO(sgi): Return ivas_error type */ + void +); + +/* TODO(sgi): Use hIvasRend as name for handle arg */ +/*! Configures the renderer - needs to be called after IVAS_REND_Open(). */ +ivas_error IVAS_REND_Configure( + IVAS_REND_HANDLE st, /* i : Renderer state */ + const IVAS_REND_InputConfig inConfig, /* i : Input configuration */ + const IVAS_REND_OutputConfig outConfig, /* i : Output configuration */ + uint32_t sampleRate, /* i : Processing sampling rate */ + bool headRotationEnabled /* i : enable head rotation for binaural output, ignored for other output formats */ +); + +void IVAS_REND_SetHeadRotation( + IVAS_REND_HANDLE st, + const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] +); + +/*! Renders one frame of audio samples */ +void IVAS_REND_Render( + IVAS_REND_HANDLE st, /* i : Renderer state */ + const IVAS_REND_AudioBuffer inAudio, /* i : Buffer with pointer to input samples and associated info */ + const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, /* i : Buffer with object metadata for current frame */ + IVAS_REND_AudioBuffer outAudio /* o : Buffer with pointer to output samples and associated info */ +); + +/*! Returns the delay depending on which renderer was used */ +ivas_error IVAS_REND_GetDelay( + IVAS_REND_HANDLE st, /* i : Renderer state */ + int16_t *nSamples, /* o : Renderer delay in samples */ + int32_t *timeScale /* o : Time scale of the delay, equal to renderer output sampling rate */ +); + +/*! Allocate memory for custom loudspeaker layout */ +void IVAS_REND_OpenCustomLayout( + IVAS_LSSETUP_CUSTOM_HANDLE *outSetupCustom ); + +/*! Enable/disable experimental LFE handling */ +void IVAS_REND_SetNeverDropLfe( + IVAS_REND_HANDLE st, /* i : Renderer state */ + int8_t neverDropLfe /* i : If 0, LFE channel will be dropped when rendering to configs w/o LFE. + If 1, tries to render LFE into other channels in an optimal way when rendering to configs w/o LFE. */ +); + +/*! Get number of input channels based on InputConfig */ +int16_t IVAS_REND_GetInChannels( + IVAS_REND_HANDLE st /* i : Renderer state */ +); + +/*! Get number of output channels based on OutputConfig */ +int16_t IVAS_REND_GetOutChannels( + IVAS_REND_HANDLE st /* i : Renderer state */ +); + +/*! Destructs the renderer state and frees memory */ +void IVAS_REND_Close( + IVAS_REND_HANDLE* st /* i : Renderer state */ +); +/* clang-format on */ + +#endif /* LIB_REND_H */ diff --git a/lib_util/cmdln_parser.c b/lib_util/cmdln_parser.c new file mode 100644 index 0000000000..323ed3fee6 --- /dev/null +++ b/lib_util/cmdln_parser.c @@ -0,0 +1,375 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + +#include "cmdln_parser.h" + +#include +#include +#include +#include + +#define MAX_SUPPORTED_OPTS ( 1024 ) +#define MAX_OPTION_LENGTH ( 1024 ) + +typedef CmdLnParser_Option OptionProps; + +typedef struct +{ + OptionProps props; + int8_t hasBeenParsed; +} Option; + +static int16_t validateNoDuplicateIds( const OptionProps *props, int32_t numOpts ) +{ + for ( int32_t i = 0; i < numOpts; ++i ) + { + for ( int32_t j = i + 1; j < numOpts; ++j ) + { + if ( props[i].id == props[j].id ) + { + fprintf( stderr, "[dev] Duplicate ID == %d between options %s and %s\n", props[i].id, props[i].match, props[j].match ); + return -1; + } + } + } + + return 0; +} + +static int16_t validateOptionProps( OptionProps props ) +{ + /* Check required properties */ + if ( props.match == NULL ) + { + /* TODO(sgi): Don't print out usage after this - props.match is used there */ + fprintf( stderr, "[dev] Option with ID == %d - missing required property \"match\"\n", props.id ); + return -1; + } + + if ( props.id == 0 ) + { + fprintf( stderr, "[dev] Invalid ID for option %s. ID == %d is reserved.\n", props.match, props.id ); + return -1; + } + + return 0; +} + +/* Validate given OptionProps and use them to initialize array of Options */ +static int16_t initOpts( const OptionProps *options, int32_t numOpts, Option *opts ) +{ + for ( int32_t i = 0; i < numOpts; ++i ) + { + if ( validateOptionProps( options[i] ) != 0 ) + { + return -1; + } + + Option tmp = { + .hasBeenParsed = 0 + }; + tmp.props = options[i]; /* Cannot assign in aggregate initializer above - causes Visual Studio warning */ + + opts[i] = tmp; + } + + /* Check for duplicate IDs */ + if ( validateNoDuplicateIds( options, numOpts ) != 0 ) + { + return -1; + } + + return 0; +} + +static int8_t stringLooksLikeOption( const char *str ) +{ + if ( str[0] == '-' ) + { + return 1; + } + + return 0; +} + +static const char *stringToOptionName( const char *str ) +{ + while ( *str == '-' ) + { + ++str; + } + + return str; +} + +static int8_t optionMatchesString( Option opt, const char *str ) +{ + if ( !stringLooksLikeOption( str ) ) + { + return 0; + } + + const char *optionName = stringToOptionName( str ); + + if ( strncmp( optionName, opt.props.match, MAX_OPTION_LENGTH ) == 0 || strncmp( optionName, opt.props.matchShort, MAX_OPTION_LENGTH ) == 0 ) + { + return 1; + } + + return 0; +} + +static int16_t parseOpts( int32_t argc, + char **argv, + Option *opts, + int32_t numOpts, + void *pOutputStruct, + CmdLnParser_FnPtr_ParseOption parseOption ) +{ + Option *currOpt = NULL; + int32_t currOptIdx = 1; + Option *nextOpt = NULL; + int32_t nextOptIdx = 0; + int16_t numValues = 0; + + /* Go through all given argv */ + for ( int32_t argIdx = 1; argIdx < argc; ++argIdx ) + { + /* For current argument from argv go through all options and try to match */ + for ( int32_t optIdx = 0; optIdx < numOpts; ++optIdx ) + { + Option *optToMatch = &opts[optIdx]; + if ( optionMatchesString( *optToMatch, argv[argIdx] ) ) + { + nextOpt = optToMatch; + nextOptIdx = argIdx; + + /* Check if already parsed */ + if ( optToMatch->hasBeenParsed ) + { + fprintf( stderr, "Duplicate option: %s (%s)\n", optToMatch->props.match, optToMatch->props.matchShort ); + return -1; + } + + break; + } + } + + /* If no option matched, it is either a value belonging to current option or an invalid option */ + if ( nextOpt == NULL ) + { + /* Invalid option */ + if ( stringLooksLikeOption( argv[argIdx] ) ) + { + fprintf( stderr, "Unknown option `%s`\n", stringToOptionName( argv[argIdx] ) ); + return -1; + } + + /* Otherwise, value following current option. + * Exception: at the beginning of parsing (when current option is NULL) no values are allowed, throw error*/ + if ( currOpt != NULL ) + { + ++numValues; + } + else + { + fprintf( stderr, "Unexpected token `%s`\n", argv[argIdx] ); + return -1; + } + } + + /* If current argument is a recognized option or no more arguments left, parse current option into output struct*/ + if ( nextOpt != NULL || argIdx + 1 == argc ) + { + /* currOpt will be NULL when first nextOpt matches */ + if ( currOpt != NULL ) + { + parseOption( currOpt->props.id, &argv[currOptIdx + 1], numValues, pOutputStruct ); + currOpt->hasBeenParsed = 1; + } + + currOpt = nextOpt; + currOptIdx = nextOptIdx; + nextOpt = NULL; + nextOptIdx = 0; + numValues = 0; + } + } + + return 0; +} + +static int16_t validateOpts( const Option *opts, + int32_t numOpts ) +{ + for ( int32_t i = 0; i < numOpts; ++i ) + { + const Option *currOpt = &opts[i]; + + if ( currOpt->props.isRequired && !currOpt->hasBeenParsed ) + { + fprintf( stderr, "Error: option --%s (-%s) is required, but was not provided\n", currOpt->props.match, currOpt->props.matchShort ); + return -1; + } + } + + return 0; +} + +static const char *getBasename( const char *path ) +{ + /* Find last forward slash in path */ + const char *namePtr = strrchr( path, '/' ); + if ( namePtr != NULL ) + { + return namePtr + 1; + } + + /* If not found, try to find last backslash in path */ + namePtr = strrchr( path, '\\' ); + if ( namePtr != NULL ) + { + return namePtr + 1; + } + + /* If also not found, return full path, which implictly should be the basename */ + return path; +} + +static int32_t totalOptionNameLength( const OptionProps opt ) +{ + return strlen( opt.match ) + strlen( opt.matchShort ); +} + +static void printWhitespace( int32_t n ) +{ + for ( int32_t i = 0; i < n; ++i ) + { + fprintf( stderr, " " ); + } +} + +static void printOptDescriptionAligned( const char *descPtr, int32_t descriptionColumnIdx ) +{ + if ( descPtr == NULL ) + { + fprintf( stderr, "\n" ); + return; + } + + while ( 1 ) + { + if ( *descPtr == '\0' ) + { + fprintf( stderr, "\n" ); + break; + } + + fprintf( stderr, "%c", *descPtr ); + if ( *descPtr == '\n' ) + { + printWhitespace( descriptionColumnIdx ); + } + ++descPtr; + } +} + +static void printUsage( + const char *argv0, + const OptionProps *optionProps, + int32_t numOptions ) +{ + fprintf( stderr, "\n" ); + fprintf( stderr, "Usage: %s [options]\n", getBasename( argv0 ) ); + fprintf( stderr, "\n" ); + fprintf( stderr, "Valid options:\n" ); + + /* Find option with longest name, used for pretty formatting */ + int32_t maxOptNameLength = 0; + for ( int32_t i = 0; i < numOptions; ++i ) + { + const int32_t optNameLength = totalOptionNameLength( optionProps[i] ); + if ( maxOptNameLength < optNameLength ) + { + maxOptNameLength = optNameLength; + } + } + + const int32_t preDescriptionWhitespace = 8; + const int32_t leftColumnAdditionalChars = 7; + for ( int32_t i = 0; i < numOptions; ++i ) + { + OptionProps opt = optionProps[i]; + const int32_t optNameLength = totalOptionNameLength( optionProps[i] ); + + /* TODO(sgi): make matchShort optional */ + fprintf( stderr, " --%s, -%s", opt.match, opt.matchShort ); + + printWhitespace( maxOptNameLength - optNameLength + preDescriptionWhitespace ); + printOptDescriptionAligned( opt.description, maxOptNameLength + preDescriptionWhitespace + leftColumnAdditionalChars ); + } +} + +int16_t CmdLnParser_parseArgs( int32_t argc, + char **argv, + const OptionProps *optionProps, + int32_t numOptions, + void *pOutputStruct, + CmdLnParser_FnPtr_ParseOption parseOption ) +{ + assert( numOptions <= MAX_SUPPORTED_OPTS ); + + /* Prepare option array */ + Option opts[MAX_SUPPORTED_OPTS]; + if ( initOpts( optionProps, numOptions, opts ) != 0 ) + { + goto fail; + } + + /* Iterate over argv and parse */ + if ( parseOpts( argc, argv, opts, numOptions, pOutputStruct, parseOption ) != 0 ) + { + goto fail; + } + + /* Validate parsed options */ + if ( validateOpts( opts, numOptions ) != 0 ) + { + goto fail; + } + + return 0; + +fail: + printUsage( argv[0], optionProps, numOptions ); + return -1; +} diff --git a/lib_util/ivas_rom_prerenderer.h b/lib_util/cmdln_parser.h similarity index 66% rename from lib_util/ivas_rom_prerenderer.h rename to lib_util/cmdln_parser.h index 6be6ae9863..692072df63 100644 --- a/lib_util/ivas_rom_prerenderer.h +++ b/lib_util/cmdln_parser.h @@ -30,24 +30,34 @@ *******************************************************************************************************/ -#ifndef IVAS_ROM_PRERENDERER_H -#define IVAS_ROM_PRERENDERER_H +#ifndef CMDLN_PARSER_H +#define CMDLN_PARSER_H #include + #include "options.h" -/*----------------------------------------------------------------------------------* - * Prerenderer SBA & MC enc/dec matrices - *----------------------------------------------------------------------------------*/ - -extern const float hoa_dec_mtx_CICP1[16]; -extern const float ls_azimuth_CICP1[1]; -extern const float ls_elevation_CICP1[1]; -extern const uint32_t ls_LFE_last_idx_CICP1[1]; -extern const uint32_t ls_LFE_last_idx_CICP2[2]; -extern const uint32_t ls_LFE_last_idx_CICP6[6]; -extern const uint32_t ls_LFE_last_idx_CICP12[8]; -extern const uint32_t ls_LFE_last_idx_CICP16[10]; -extern const uint32_t ls_LFE_last_idx_CICP19[12]; - -#endif /* IVAS_ROM_PRERENDERER_H */ +typedef struct +{ + int32_t id; + const char *match; + const char *matchShort; + int8_t isRequired; + const char *description; +} CmdLnParser_Option; + +/* Function for parsing option values into an output struct, to be implemented by the user */ +typedef void ( *CmdLnParser_FnPtr_ParseOption )( int32_t optionId, /* i : option ID of matched option */ + char **optionValues, /* i : array of string values following the matched option in argv */ + int16_t numOptionValues, /* i : number of string values following the matched option in argv */ + void *pOutputStruct /* o : struct to store parsed values */ +); + +int16_t CmdLnParser_parseArgs( int32_t argc, + char **argv, + const CmdLnParser_Option *options, + int32_t numOptions, + void *pOutputStruct, + CmdLnParser_FnPtr_ParseOption parseOption ); + +#endif /* CMDLN_PARSER_H */ diff --git a/lib_util/ivas_prerenderer.c b/lib_util/ivas_prerenderer.c deleted file mode 100644 index a2c0b4c710..0000000000 --- a/lib_util/ivas_prerenderer.c +++ /dev/null @@ -1,1733 +0,0 @@ -/****************************************************************************************************** - - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. - -*******************************************************************************************************/ - -#include "options.h" -#include "ivas_prerenderer.h" -#include "ivas_prot.h" -#include "ivas_rom_com.h" -#include "ivas_rom_dec.h" -#include "ivas_rom_prerenderer.h" -#include "prot.h" -#include "wmops.h" - -#include -#include -#include -#include -#include - -#define LIMITER_THRESHOLD 0.9988493699f /* -0.01 dBFS */ - -struct Prndr_Prerenderer -{ - uint32_t sampleRate; - - int8_t isConfigured; /* flag */ - int8_t firstFrame; /* flag */ - - /* I/O */ - Prndr_InputConfig inConfig; - Prndr_OutputConfig outConfig; - - /* =========== Panning =========== */ - EFAP_HANDLE efapRenderer; - - Prndr_ObjPanInfo *objPanInfo; /* size: [numInObjects] */ - - float ***speakerPanGains; /* size: [numInMc][numSpeakers][numOutChannels] */ - - float *tmpGainBuffer; /* size: [numOutChannels] */ - float *noLfePanBuffer; /* size: [numOutChannels] */ - float *crossfade; /* size: [frameSize] */ - /* =============================== */ - - /* Helpers */ - int16_t numOutChannels; /* Total number of output channels */ - int16_t numInChannels; /* Total number of input channels */ - int16_t numInChannelsObj; /* Total number of input channels of object inputs */ - int16_t numInChannelsAmbi; /* Total number of input channels of ambisonics inputs */ - int16_t numInChannelsMc; /* Total number of input channels of multichannel inputs */ - - /* For each channel of MC inputs mcPassThrough contains the corresponding - * output channel index if a passthrough is possible, otherwise contains -1 */ - int32_t *mcPassthrough; /* size: [numInChannelsMc] */ - - /* =========== LFE Handling =========== */ - /* Do not drop LFE when rendering to a layout that does not have - * an LFE channel - render LFE into other channels*/ - int8_t neverDropLfe; /* flag */ - float *lfePanGains; - - /* =========== limiter handle =========== */ - IVAS_LIMITER_HANDLE hLimiter; - - /* Ambisonics decoding matrix */ - float *ambi_dec_mtx; -}; - -/*---------------------------------------------------------------------* - * Prototypes - *---------------------------------------------------------------------*/ -/* clang-off */ -static void renderAmbiToAmbi( - const Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - Prndr_AudioBuffer outAudio ); - -static void renderChannelsToAmbi( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - Prndr_AudioBuffer outAudio ); - -static void renderObjectsToAmbi( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - const Prndr_AudioObjectMetadataBuffer metadataBuffer, - Prndr_AudioBuffer outAudio ); - -static void renderAmbiToChannels( - const Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - Prndr_AudioBuffer outAudio ); - -static void renderChannelsToChannels( - const Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - Prndr_AudioBuffer outAudio ); - -static void renderObjectsToChannels( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - const Prndr_AudioObjectMetadataBuffer metadataBuffer, - Prndr_AudioBuffer outAudio ); - -static void renderSingleObjectToAmbi( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - const uint32_t itemChnlIdx, /* Index of the item within input audio buffer */ - Prndr_ObjPanInfo *prevPanInfo, - const Prndr_AudioObjectPosition curFrmPos, - const float gain_lin, - Prndr_AudioBuffer outAudio ); - -static void renderSingleObjectToChannels( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - const uint32_t itemChnlIdx, /* Index of the item within input audio buffer */ - Prndr_ObjPanInfo *prevPanInfo, - const Prndr_AudioObjectPosition curFrmPos, - const float gain_lin, - Prndr_AudioBuffer outAudio ); - -/* Multiply a single channel by a vector of gains and add result to corresponding output channels */ -static void applyChannelGainsAndAddToOutput( - const Prndr_AudioBuffer inAudio, - const uint32_t itemChnlIdx, /* Index of the item within input audio buffer */ - const float *const gainsCurrent, /* Vector of gains for current frame, corresponding to output channels */ - const float *const gainsPrev, /* Vector of previously applied gains, used for interpolation. Set to NULL for no interpolation */ - const float gain_lin, /* Additional linear gain to be applied when mixing with output buffer */ - const float *const crossfade, - Prndr_AudioBuffer outAudio ); - -static void prepareMcPanGains( - Prndr_Prerenderer *const st ); - -static void prepareLfeHandling( - Prndr_Prerenderer *const st ); - -static void prepareMcPassthrough( - Prndr_Prerenderer *const st ); - -static void passthroughChannel( - const Prndr_AudioBuffer inAudio, - const uint32_t srcChnlIdx, - const uint32_t dstChnlIdx, - const float gain_lin, - Prndr_AudioBuffer outAudio ); - -static void getSpeakerGains( - const Prndr_Prerenderer *const st, - const float azi, - const float ele, - float *const spkGains ); - -static int16_t Prndr_getNumChannelsAmbisonics( - Prndr_Ambisonics ambisonics ); - -static int16_t Prndr_getAmbisonicsOrder( - Prndr_Ambisonics ambisonics ); - -static int16_t Prndr_getNumChannelsInSpeakerLayout( - Prndr_SpeakerLayout layout ); - -static int16_t Prndr_getNumNonLfeChannelsInSpeakerLayout( - Prndr_SpeakerLayout layout ); - -static const float *Prndr_getSpeakerAzimuths( - Prndr_SpeakerLayout layout ); - -static const float *Prndr_getSpeakerElevations( - Prndr_SpeakerLayout layout ); - -static const uint32_t *Prndr_getReorderedChannelIndices( - Prndr_SpeakerLayout layout ); - -static ivas_error Prndr_getHoaRenderMtx( - const Prndr_OutputConfig outConfig, - float **decMtx, - uint32_t ambiOrder ); - -static void Prndr_getHoaDecVecForAmbiChnl( - uint32_t ambiChnnlIdx, - const Prndr_OutputConfig outConfig, - const float *decMtx, - float *decCoeffs ); - -static void ivas_limiter_prerenderer( - IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ - float *output, /* i/o: I/O buffer */ - const int16_t output_frame, /* i : number of samples per channel in the buffer */ - const float threshold /* i : signal amplitude above which limiting starts to be applied */ -); - -static float dBToLin( const float gain_dB ); -/* clang-on */ -/* ========================================================================== */ - -Prndr_Prerenderer *Prndr_Prerenderer_open() -{ - Prndr_Prerenderer *st; - st = (Prndr_Prerenderer *) count_malloc( sizeof( Prndr_Prerenderer ) ); - st->isConfigured = 0; - st->efapRenderer = NULL; - - st->objPanInfo = NULL; - st->speakerPanGains = NULL; - st->tmpGainBuffer = NULL; - st->noLfePanBuffer = NULL; - st->crossfade = NULL; - st->mcPassthrough = NULL; - st->neverDropLfe = 0; - st->lfePanGains = NULL; - st->hLimiter = NULL; - st->ambi_dec_mtx = NULL; - - return st; -} - -ivas_error Prndr_Prerenderer_configure( Prndr_Prerenderer *const st, - const Prndr_InputConfig inConfig, - const Prndr_OutputConfig outConfig, - int32_t frameSize, - uint32_t sampleRate ) -{ - uint32_t i; - int32_t j; - ivas_error error; - - error = IVAS_ERR_OK; - - /* ============================= Error checks ============================= */ - assert( st != NULL && "Can't configure prerenderer - pointer is NULL" ); - assert( !st->isConfigured && "Re-configuring a prerenderer is not supported" ); - assert( !( outConfig.ambisonics != prndr_ambisonics_none && outConfig.speakerLayout != prndr_speaker_layout_none ) && "Multiple outputs not supported" ); - assert( !( outConfig.ambisonics == prndr_ambisonics_none && outConfig.speakerLayout == prndr_speaker_layout_none ) && "At least one output must be selected" ); - assert( !( inConfig.numAudioObjects == 0 && inConfig.numMultiChannelBuses == 0 && inConfig.numAmbisonicsBuses == 0 ) && "At least one input must be active" ); - - /* ========================== Store useful values ========================= */ - st->sampleRate = sampleRate; - st->isConfigured = 1; - st->firstFrame = 1; - st->inConfig = inConfig; - st->outConfig = outConfig; - - /* Save total number of channels in ambisonics inputs */ - st->numInChannelsAmbi = 0; - for ( i = 0; i < inConfig.numAmbisonicsBuses; ++i ) - { - st->numInChannelsAmbi += Prndr_getNumChannelsAmbisonics( inConfig.ambisonicsBuses[i].ambisonicsConfig ); - } - - /* Save total number of channels in MC input */ - st->numInChannelsMc = 0; - for ( i = 0; i < inConfig.numMultiChannelBuses; ++i ) - { - st->numInChannelsMc += Prndr_getNumChannelsInSpeakerLayout( inConfig.multiChannelBuses[i].speakerLayout ); - } - - /* Save total number of channels of audio object inputs */ - st->numInChannelsObj = st->inConfig.numAudioObjects; - - /* Save total number of input channels */ - st->numInChannels = st->numInChannelsObj + st->numInChannelsAmbi + st->numInChannelsMc; - - if ( st->outConfig.ambisonics != prndr_ambisonics_none ) - { - /* Save number of output channels */ - st->numOutChannels = Prndr_getNumChannelsAmbisonics( st->outConfig.ambisonics ); - } - - /* ============================ Prepare panning and ambisonics =========================== */ - if ( st->outConfig.speakerLayout != prndr_speaker_layout_none ) - { - if ( st->outConfig.speakerLayout == prndr_speaker_layout_custom ) - { - /* Save number of output channels */ - st->numOutChannels = st->outConfig.outSetupCustom->num_spk + st->outConfig.outSetupCustom->num_lfe; - - /* Open and initialize EFAP struct */ - if ( ( error = efap_init_data( &st->efapRenderer, st->outConfig.outSetupCustom->ls_azimuth, st->outConfig.outSetupCustom->ls_elevation, st->outConfig.outSetupCustom->num_spk, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else - { - /* Save number of output channels */ - st->numOutChannels = Prndr_getNumChannelsInSpeakerLayout( st->outConfig.speakerLayout ); - - /* Open and initialize EFAP struct */ - if ( ( error = efap_init_data( &st->efapRenderer, Prndr_getSpeakerAzimuths( st->outConfig.speakerLayout ), Prndr_getSpeakerElevations( st->outConfig.speakerLayout ), Prndr_getNumNonLfeChannelsInSpeakerLayout( st->outConfig.speakerLayout ), EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - - assert( st->efapRenderer != NULL && "Could not init EFAP" ); - - /* Compute Ambisonics to loudspeaker decoding matrix */ - if ( ( error = Prndr_getHoaRenderMtx( st->outConfig, &st->ambi_dec_mtx, 3 ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - /* Allocate temporary pan/enc buffer to avoid allocations during rendering */ - st->tmpGainBuffer = count_calloc( st->numOutChannels, sizeof( float ) ); - - /* Allocate temporary buffer for panning gains with lfe omitted */ - if ( st->outConfig.speakerLayout != prndr_speaker_layout_none ) - { - if ( st->outConfig.speakerLayout == prndr_speaker_layout_custom ) - { - st->noLfePanBuffer = count_calloc( st->outConfig.outSetupCustom->num_spk, sizeof( float ) ); - } - else - { - st->noLfePanBuffer = count_calloc( Prndr_getNumNonLfeChannelsInSpeakerLayout( st->outConfig.speakerLayout ), sizeof( float ) ); - } - } - - /* Create lookup tables for panning/encoding speaker signals */ - if ( st->inConfig.numMultiChannelBuses != 0 ) - { - prepareMcPanGains( st ); - prepareLfeHandling( st ); - } - - /* Allocate structs for interpolation of object pan/enc gains between frames */ - if ( st->inConfig.numAudioObjects != 0 ) - { - st->objPanInfo = count_calloc( st->inConfig.numAudioObjects, sizeof( Prndr_ObjPanInfo ) ); - - for ( i = 0; i < st->inConfig.numAudioObjects; ++i ) - { - st->objPanInfo[i].panGains = count_calloc( st->numOutChannels, sizeof( float ) ); - } - } - - /* =========================== Prepare crossfades ========================= */ - st->crossfade = count_calloc( frameSize, sizeof( float ) ); - - for ( j = 0; j < frameSize; ++j ) - { - st->crossfade[j] = (float) j / ( frameSize - 1 ); - } - - /* ========================= Prepare optimizations ======================== */ - /* Make note of possible processing shortcuts in cases where input and output - * config is the same or similar. This only needs to be done for MC I/O, since - * Ambisonics I/O can always be passed through and objects can never be passed - * through */ - if ( st->inConfig.numMultiChannelBuses > 0 && st->outConfig.speakerLayout != prndr_speaker_layout_none ) - { - prepareMcPassthrough( st ); - } - - /* ============================ Configure limiter =========================== */ - st->hLimiter = ivas_limiter_open( st->numOutChannels, st->sampleRate ); - - return error; -} - -void Prndr_Prerenderer_render( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - const Prndr_AudioObjectMetadataBuffer metadataBuffer, - Prndr_AudioBuffer outAudio ) -{ -#ifdef WMOPS - wmops_sub_start( "Prndr_Prerenderer_render" ); -#endif - - /* ============================= Error checks ============================= */ - assert( st != NULL && "Can't render - prerenderer pointer is NULL" ); - assert( st->isConfigured && "Can't render - prerenderer pointer is not configured" ); - assert( inAudio.config.sampleRate == outAudio.config.sampleRate && "Input and output sample rate must be the same" ); - assert( inAudio.config.bufferSize == outAudio.config.bufferSize && "Input and output frame size must be the same" ); - assert( inAudio.config.numChannels == st->numInChannels && "Number of input channels does not match between prerenderer and input config" ); - assert( outAudio.config.numChannels == st->numOutChannels && "Number of input channels does not match between prerenderer and input config" ); - assert( inAudio.config.sampleRate != 0 && "Invalid sample rate" ); - assert( inAudio.config.bufferSize != 0 && "Invalid frame size" ); - assert( inAudio.data != NULL && "Can't render - input buffer is empty" ); - - /* ========================== Actual processing =========================== */ - /* Clear output buffer */ - set_zero( outAudio.data, outAudio.config.numChannels * outAudio.config.bufferSize ); - - /* Render target format: Ambisonics */ - if ( st->outConfig.ambisonics != prndr_ambisonics_none ) - { - if ( st->inConfig.numAmbisonicsBuses != 0 ) - { - renderAmbiToAmbi( st, inAudio, outAudio ); - } - - if ( st->inConfig.numMultiChannelBuses != 0 ) - { - renderChannelsToAmbi( st, inAudio, outAudio ); - } - - if ( st->inConfig.numAudioObjects != 0 ) - { - renderObjectsToAmbi( st, inAudio, metadataBuffer, outAudio ); - } - } /* Render target format: multichannel */ - else if ( st->outConfig.speakerLayout != prndr_speaker_layout_none ) - { - if ( st->inConfig.numAmbisonicsBuses != 0 ) - { - renderAmbiToChannels( st, inAudio, outAudio ); - } - - if ( st->inConfig.numMultiChannelBuses != 0 ) - { - renderChannelsToChannels( st, inAudio, outAudio ); - } - - if ( st->inConfig.numAudioObjects != 0 ) - { - renderObjectsToChannels( st, inAudio, metadataBuffer, outAudio ); - } - } - - /* Apply limiting in place */ - ivas_limiter_prerenderer( - st->hLimiter, - outAudio.data, - outAudio.config.bufferSize, - LIMITER_THRESHOLD ); - - if ( st->firstFrame ) - { - st->firstFrame = 0; - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -void Prndr_Prerenderer_setNeverDropLfe( - Prndr_Prerenderer *st, - int8_t neverDropLfe ) -{ - st->neverDropLfe = neverDropLfe; -} - -int16_t Prndr_Prerenderer_getInChannels( - Prndr_Prerenderer *st ) -{ - assert( st != NULL && "Can't get number of input channels - prerenderer pointer is NULL" ); - if ( st ) - { - return st->numInChannels; - } - return 0; -} - -int16_t Prndr_Prerenderer_getOutChannels( - Prndr_Prerenderer *st ) -{ - assert( st != NULL && "Can't get number of output channels - prerenderer pointer is NULL" ); - if ( st ) - { - return st->numOutChannels; - } - return 0; -} - -void Prndr_Prerenderer_close( Prndr_Prerenderer *st ) -{ - uint32_t i; - uint32_t j; - uint32_t numChannels; - assert( st != NULL && "Can't close prerenderer - pointer is NULL" ); - - if ( st->efapRenderer != NULL ) - { - efap_free_data( &st->efapRenderer ); - } - - if ( st->objPanInfo != NULL ) - { - for ( i = 0; i < st->inConfig.numAudioObjects; ++i ) - { - if ( st->objPanInfo[i].panGains != NULL ) - { - count_free( st->objPanInfo[i].panGains ); - } - } - - count_free( st->objPanInfo ); - } - - if ( st->speakerPanGains != NULL ) - { - for ( i = 0; i < st->inConfig.numMultiChannelBuses; ++i ) - { - numChannels = Prndr_getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[i].speakerLayout ); - - for ( j = 0; j < numChannels; ++j ) - { - count_free( st->speakerPanGains[i][j] ); - } - - count_free( st->speakerPanGains[i] ); - } - - count_free( st->speakerPanGains ); - } - - if ( st->outConfig.speakerLayout == prndr_speaker_layout_custom ) - { - count_free( st->outConfig.outSetupCustom ); - st->outConfig.outSetupCustom = NULL; - } - - if ( st->tmpGainBuffer != NULL ) - { - count_free( st->tmpGainBuffer ); - } - - if ( st->noLfePanBuffer != NULL ) - { - count_free( st->noLfePanBuffer ); - } - - if ( st->crossfade != NULL ) - { - count_free( st->crossfade ); - } - - if ( st->mcPassthrough != NULL ) - { - count_free( st->mcPassthrough ); - } - - if ( st->lfePanGains ) - { - count_free( st->lfePanGains ); - } - - if ( st->ambi_dec_mtx != NULL ) - { - count_free( st->ambi_dec_mtx ); - } - - ivas_limiter_close( &st->hLimiter ); - - count_free( st ); -} - -/* ============================= Local functions ============================ */ -static float *get_smpl_ptr( Prndr_AudioBuffer buffer, uint32_t chnlIdx, uint32_t smplIdx ) -{ - return buffer.data + chnlIdx * buffer.config.bufferSize + smplIdx; -} - -static void renderAmbiToAmbi( const Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - Prndr_AudioBuffer outAudio ) -{ - float *inSmpl; - float *outSmpl; - int16_t lastChannelIdx; - int16_t smplIdx; - int16_t chnlIdx; - uint32_t inAmbiChannelIdx; - uint32_t ambiIdx; - float gain_lin; - - -#ifdef WMOPS - wmops_sub_start( "renderAmbiToAmbi" ); -#endif - - /* Iterate over given Ambisonics inputs */ - for ( ambiIdx = 0; ambiIdx < st->inConfig.numAmbisonicsBuses; ++ambiIdx ) - { - inAmbiChannelIdx = st->inConfig.ambisonicsBuses[ambiIdx].inputChannelIndex; - - /* Find out how many channels to process */ - lastChannelIdx = min( Prndr_getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ), st->numOutChannels ) - 1; - - gain_lin = dBToLin( st->inConfig.ambisonicsBuses[ambiIdx].gain_dB ); - - /* Passthrough channels */ - for ( chnlIdx = 0; chnlIdx <= lastChannelIdx; ++chnlIdx ) - { - inSmpl = get_smpl_ptr( inAudio, chnlIdx + inAmbiChannelIdx, 0 ); - outSmpl = get_smpl_ptr( outAudio, chnlIdx, 0 ); - - for ( smplIdx = 0; smplIdx < inAudio.config.bufferSize; ++smplIdx ) - { - *outSmpl += *inSmpl * gain_lin; - - ++inSmpl; - ++outSmpl; - } - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void renderChannelsToAmbi( Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - Prndr_AudioBuffer outAudio ) -{ - const uint32_t *lfeLastIdxs; - uint32_t inMcChannelIdx; - uint32_t numNonLfeInChannels; - uint32_t numInChannels; - uint32_t mcIdx; - uint32_t inChIdx; - float gain_lin; - -#ifdef WMOPS - wmops_sub_start( "renderChannelsToAmbi" ); -#endif - - /* Iterate over given MC inputs */ - for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) - { - /* Get channel idx of current MC input within the multitrack buffer */ - inMcChannelIdx = st->inConfig.multiChannelBuses[mcIdx].inputChannelIndex; - - /* Number of input speakers */ - numInChannels = Prndr_getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - numNonLfeInChannels = Prndr_getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - lfeLastIdxs = Prndr_getReorderedChannelIndices( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - gain_lin = dBToLin( st->inConfig.multiChannelBuses[mcIdx].gain_dB ); - - /* Iterate over channels */ - for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) - { - applyChannelGainsAndAddToOutput( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->speakerPanGains[mcIdx][inChIdx], - NULL, - gain_lin, - st->crossfade, - outAudio ); - } - - if ( st->neverDropLfe ) - { - /* Render LFE channels into the scene */ - for ( ; inChIdx < numInChannels; ++inChIdx ) - { - applyChannelGainsAndAddToOutput( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->lfePanGains, - NULL, - gain_lin, - st->crossfade, - outAudio ); - } - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void renderObjectsToAmbi( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - const Prndr_AudioObjectMetadataBuffer metadataBuffer, - Prndr_AudioBuffer outAudio ) -{ - const Prndr_AudioObject *curObj; - uint32_t objIdx; - Prndr_AudioObjectPosition pos; - float gain_lin; - -#ifdef WMOPS - wmops_sub_start( "renderObjectsToAmbi" ); -#endif - - assert( st->inConfig.numAudioObjects == metadataBuffer.numObjects && "Metadata provided for a different number of objects than found in input" ); - - /* Iterate over given audio objects */ - for ( objIdx = 0; objIdx < st->inConfig.numAudioObjects; ++objIdx ) - { - /* Get pointer to current object and its metadata */ - curObj = &st->inConfig.audioObjects[objIdx]; - pos = metadataBuffer.positions[objIdx]; - gain_lin = dBToLin( st->inConfig.audioObjects[objIdx].gain_dB ); - - /* Render to ambisonics */ - renderSingleObjectToAmbi( - st, - inAudio, - curObj->inputChannelIndex, - &st->objPanInfo[objIdx], - pos, - gain_lin, - outAudio ); - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void renderAmbiToChannels( const Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - Prndr_AudioBuffer outAudio ) -{ - uint32_t inAmbiChannelIdx; - uint32_t ambiIdx; - uint32_t numInAmbiChnls; - uint32_t ambiChnIdx; - float gain_lin; - -#ifdef WMOPS - wmops_sub_start( "renderAmbiToChannels" ); -#endif - - /* Iterate over all given ambisonics inputs */ - for ( ambiIdx = 0; ambiIdx < st->inConfig.numAmbisonicsBuses; ++ambiIdx ) - { - inAmbiChannelIdx = st->inConfig.ambisonicsBuses[ambiIdx].inputChannelIndex; - - /* Number of input channels */ - numInAmbiChnls = Prndr_getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ); - - gain_lin = dBToLin( st->inConfig.multiChannelBuses[ambiIdx].gain_dB ); - - /* Render each ambisonics channel */ - for ( ambiChnIdx = 0; ambiChnIdx < numInAmbiChnls; ++ambiChnIdx ) - { - /* Write decoding gains to temp buffer */ - Prndr_getHoaDecVecForAmbiChnl( ambiChnIdx, st->outConfig, st->ambi_dec_mtx, st->tmpGainBuffer ); - - /* Apply decoding gains and add to output */ - applyChannelGainsAndAddToOutput( inAudio, - inAmbiChannelIdx + ambiChnIdx, - st->tmpGainBuffer, - NULL, - gain_lin, - st->crossfade, - outAudio ); - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void renderChannelsToChannels( - const Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - Prndr_AudioBuffer outAudio ) -{ - const uint32_t *lfeLastIdxs; - uint32_t inMcChannelIdx; - uint32_t numNonLfeInChannels; - uint32_t numInChannels; - uint32_t passThroughIdx; - uint32_t mcIdx; - uint32_t inChIdx; - float gain_lin; - -#ifdef WMOPS - wmops_sub_start( "renderChannelsToChannels" ); -#endif - - passThroughIdx = 0; - - /* Iterate over given MC inputs */ - for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) - { - /* Get channel idx of current MC input within the multitrack buffer */ - inMcChannelIdx = st->inConfig.multiChannelBuses[mcIdx].inputChannelIndex; - - /* Number of non-LFE input channels */ - numNonLfeInChannels = Prndr_getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - /* Number of all input channels */ - numInChannels = Prndr_getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - lfeLastIdxs = Prndr_getReorderedChannelIndices( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - gain_lin = dBToLin( st->inConfig.multiChannelBuses[mcIdx].gain_dB ); - - /* Iterate over non-LFE channels */ - for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) - { - if ( st->mcPassthrough[passThroughIdx] == -1 ) - { - applyChannelGainsAndAddToOutput( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->speakerPanGains[mcIdx][inChIdx], - NULL, - gain_lin, - st->crossfade, - outAudio ); - } - else - { - passthroughChannel( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->mcPassthrough[passThroughIdx], - gain_lin, - outAudio ); - } - - ++passThroughIdx; - } - - /* Iterate over LFE channels */ - for ( ; inChIdx < numInChannels; ++inChIdx ) - { - /* Pass through if possible */ - if ( st->mcPassthrough[passThroughIdx] != -1 ) - { - passthroughChannel( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->mcPassthrough[passThroughIdx], - gain_lin, - outAudio ); - } - else - { - if ( st->neverDropLfe ) - { - applyChannelGainsAndAddToOutput( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->lfePanGains, - NULL, - gain_lin, - st->crossfade, - outAudio ); - } - } - - ++passThroughIdx; - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void renderObjectsToChannels( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - const Prndr_AudioObjectMetadataBuffer metadataBuffer, - Prndr_AudioBuffer outAudio ) -{ - const Prndr_AudioObject *curObj; - uint32_t objIdx; - Prndr_AudioObjectPosition pos; - float gain_lin; - -#ifdef WMOPS - wmops_sub_start( "renderObjectsToChannels" ); -#endif - - assert( st->inConfig.numAudioObjects == metadataBuffer.numObjects && "Metadata provided for a different number of objects than found in input" ); - - /* Iterate over given audio objects */ - for ( objIdx = 0; objIdx < st->inConfig.numAudioObjects; ++objIdx ) - { - /* Get pointer to current object and its metadata */ - curObj = &st->inConfig.audioObjects[objIdx]; - pos = metadataBuffer.positions[objIdx]; - gain_lin = dBToLin( st->inConfig.audioObjects[objIdx].gain_dB ); - - /* Render to MC */ - renderSingleObjectToChannels( - st, - inAudio, - curObj->inputChannelIndex, - &st->objPanInfo[objIdx], - pos, - gain_lin, - outAudio ); - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void renderSingleObjectToAmbi( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - const uint32_t itemChnlIdx, - Prndr_ObjPanInfo *prevPanInfo, - const Prndr_AudioObjectPosition curFrmPos, - const float gain_lin, - Prndr_AudioBuffer outAudio ) -{ - float *swapPtr; - -#ifdef WMOPS - wmops_sub_start( "renderSingleObjectToAmbi" ); -#endif - - /* Update panning gains if position changed */ - if ( prevPanInfo->position.azimuth != curFrmPos.azimuth || - prevPanInfo->position.elevation != curFrmPos.elevation || - st->firstFrame ) - { - /* Write current panning gains to tmpBuffer */ - ivas_dirac_dec_get_response( curFrmPos.azimuth, - curFrmPos.elevation, - st->tmpGainBuffer, - Prndr_getAmbisonicsOrder( st->outConfig.ambisonics ) ); - - prevPanInfo->position.azimuth = curFrmPos.azimuth; - prevPanInfo->position.elevation = curFrmPos.elevation; - - applyChannelGainsAndAddToOutput( inAudio, - itemChnlIdx, - st->tmpGainBuffer, - st->firstFrame ? NULL : prevPanInfo->panGains, - gain_lin, - st->crossfade, - outAudio ); - - /* Save current gains as most recently applied gains */ - swapPtr = prevPanInfo->panGains; - prevPanInfo->panGains = st->tmpGainBuffer; - st->tmpGainBuffer = swapPtr; - } - /* Otherwise use most recent gains and no interpolation */ - else - { - applyChannelGainsAndAddToOutput( inAudio, - itemChnlIdx, - prevPanInfo->panGains, - NULL, - gain_lin, - st->crossfade, - outAudio ); - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void renderSingleObjectToChannels( - Prndr_Prerenderer *const st, - const Prndr_AudioBuffer inAudio, - const uint32_t itemChnlIdx, - Prndr_ObjPanInfo *prevPanInfo, - const Prndr_AudioObjectPosition curFrmPos, - const float gain_lin, - Prndr_AudioBuffer outAudio ) -{ - float *swapPtr; - -#ifdef WMOPS - wmops_sub_start( "renderSingleObjectToChannels" ); -#endif - - /* Update panning gains if position changed */ - if ( prevPanInfo->position.azimuth != curFrmPos.azimuth || - prevPanInfo->position.elevation != curFrmPos.elevation || - st->firstFrame ) - { - /* Write current panning gains to tmpBuffer */ - getSpeakerGains( st, curFrmPos.azimuth, curFrmPos.elevation, st->tmpGainBuffer ); - prevPanInfo->position.azimuth = curFrmPos.azimuth; - prevPanInfo->position.elevation = curFrmPos.elevation; - - applyChannelGainsAndAddToOutput( inAudio, - itemChnlIdx, - st->tmpGainBuffer, - st->firstFrame ? NULL : prevPanInfo->panGains, - gain_lin, - st->crossfade, - outAudio ); - - /* Save current gains as most recently applied gains */ - swapPtr = prevPanInfo->panGains; - prevPanInfo->panGains = st->tmpGainBuffer; - st->tmpGainBuffer = swapPtr; - } - /* Otherwise use most recent gains and no interpolation */ - else - { - applyChannelGainsAndAddToOutput( inAudio, - itemChnlIdx, - prevPanInfo->panGains, - NULL, - gain_lin, - st->crossfade, - outAudio ); - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void applyChannelGainsAndAddToOutput( - const Prndr_AudioBuffer inAudio, - const uint32_t itemChnlIdx, - const float *const gainsCurrent, - const float *const gainsPrev, - const float gain_lin, - const float *const crossfade, - Prndr_AudioBuffer outAudio ) -{ - float *inSmpl; - float *outSmpl; - const float *fadeIn; - const float *fadeOut; - const float *lastInSmpl; - int16_t outChnlIdx; - float currentGain; - float previousGain; - -#ifdef WMOPS - wmops_sub_start( "applyChannelGainsAndAddToOutput" ); -#endif - - - /* Pointer to behind last input sample */ - lastInSmpl = get_smpl_ptr( inAudio, itemChnlIdx, inAudio.config.bufferSize ); - - for ( outChnlIdx = 0; outChnlIdx < outAudio.config.numChannels; ++outChnlIdx ) - { -#ifdef WMOPS - wmops_sub_start( "applyChannelGainsAndAddToOutput_chnl_loop" ); -#endif - currentGain = gainsCurrent[outChnlIdx] * gain_lin; - previousGain = gainsPrev == NULL ? 0.f : gainsPrev[outChnlIdx] * gain_lin; - - /* Process current output channel only if applying non-zero gains */ - if ( fabsf( currentGain ) > EPSILON || ( gainsPrev != NULL && fabsf( previousGain ) > EPSILON ) ) - { - /* Reset crossfade pointers */ - fadeIn = crossfade; - fadeOut = &crossfade[inAudio.config.bufferSize - 1]; - - /* Reset input pointer to the beginning of input channel */ - inSmpl = get_smpl_ptr( inAudio, itemChnlIdx, 0 ); - - /* Set output pointer to first output channel sample */ - outSmpl = get_smpl_ptr( outAudio, outChnlIdx, 0 ); - - if ( gainsPrev == NULL || fabsf( previousGain - currentGain ) <= EPSILON ) - { -#ifdef WMOPS - wmops_sub_start( "applyChannelGainsAndAddToOutput_smpl_loop_no_intrpl" ); -#endif - /* If no interpolation from previous frame, apply current gain */ - do - { - *outSmpl += currentGain * ( *inSmpl ); - ++outSmpl; - ++inSmpl; - - } while ( inSmpl != lastInSmpl ); -#ifdef WMOPS - wmops_sub_end(); -#endif - } - else - { -#ifdef WMOPS - wmops_sub_start( "applyChannelGainsAndAddToOutput_smpl_loop_intrpl" ); -#endif - /* Otherwise use weighted average between previous and current gain */ - do - { - *outSmpl += ( ( *fadeIn ) * currentGain + ( *fadeOut ) * previousGain ) * ( *inSmpl ); - ++outSmpl; - ++inSmpl; - - ++fadeIn; - --fadeOut; - } while ( inSmpl != lastInSmpl ); -#ifdef WMOPS - wmops_sub_end(); -#endif - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void prepareLfeHandling( - Prndr_Prerenderer *const st ) -{ - /* uint32_t i; */ - -#ifdef WMOPS - wmops_sub_start( "prepareLfeHandling" ); -#endif - - st->lfePanGains = count_calloc( st->numOutChannels, sizeof( float ) ); - - if ( st->outConfig.ambisonics != prndr_ambisonics_none ) - { - /* Pan LFE to south pole (experimental) */ - ivas_dirac_dec_get_response( 0, - -90, - st->lfePanGains, - Prndr_getAmbisonicsOrder( st->outConfig.ambisonics ) ); - - /* TODO(sgi): Apply 10 dB gain? Almost surely will clip */ - /* for (i=0; i< st->numOutChannels; ++i) { - st->lfePanGains[i] *= 3.1622776602f; - } */ - } - else - { - set_zero( st->lfePanGains, st->numOutChannels ); - - /* Pan LFE to L and R with 4dB gain each (== 10dB - 6dB) */ - if ( st->numOutChannels > 1 ) - { - st->lfePanGains[0] = 1.5848931925f; - st->lfePanGains[1] = 1.5848931925f; - } - else - { - /* Put LFE in center channel, do not add 10dB gain to avoid clipping */ - st->lfePanGains[1] = 1.f; - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void prepareMcPanGains( Prndr_Prerenderer *const st ) -{ - uint32_t mcIdx; - int32_t spkIdx; - int32_t numChannels; - const float *spkAzi; - const float *spkEle; - -#ifdef WMOPS - wmops_sub_start( "prepareMcPanGains" ); -#endif - - st->speakerPanGains = count_calloc( st->inConfig.numMultiChannelBuses, sizeof( float ** ) ); - - for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) - { - numChannels = Prndr_getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - st->speakerPanGains[mcIdx] = count_calloc( numChannels, sizeof( float * ) ); - - spkAzi = Prndr_getSpeakerAzimuths( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - spkEle = Prndr_getSpeakerElevations( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - if ( st->outConfig.ambisonics != prndr_ambisonics_none ) - { - for ( spkIdx = 0; spkIdx < numChannels; ++spkIdx ) - { - st->speakerPanGains[mcIdx][spkIdx] = count_calloc( st->numOutChannels, sizeof( float ) ); - ivas_dirac_dec_get_response( (int16_t) spkAzi[spkIdx], - (int16_t) spkEle[spkIdx], - st->speakerPanGains[mcIdx][spkIdx], - Prndr_getAmbisonicsOrder( st->outConfig.ambisonics ) ); - } - } - else if ( st->outConfig.speakerLayout != prndr_speaker_layout_none ) - { - for ( spkIdx = 0; spkIdx < numChannels; ++spkIdx ) - { - st->speakerPanGains[mcIdx][spkIdx] = count_calloc( st->numOutChannels, sizeof( float ) ); - getSpeakerGains( st, spkAzi[spkIdx], spkEle[spkIdx], st->speakerPanGains[mcIdx][spkIdx] ); - } - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void prepareMcPassthrough( Prndr_Prerenderer *const st ) -{ - /* Output config */ - const float *outSpkAzi; - const float *outSpkEle; - const uint32_t *lfeLastIdxs; - uint32_t numNonLfeOutChannels; - uint32_t numOutChannels; - uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; - - /* Input config */ - const float *inSpkAzi; - const float *inSpkEle; - uint32_t numInChannels; - uint32_t numNonLfeInChannels; - - /* Input channel index */ - uint32_t passThroughIdx; - - uint32_t mcIdx; - uint32_t inChIdx; - uint32_t outChIdx; - -#ifdef WMOPS - wmops_sub_start( "prepareMcPassthrough" ); -#endif - - st->mcPassthrough = count_calloc( st->numInChannelsMc, sizeof( int32_t ) ); - - - if ( st->outConfig.speakerLayout == prndr_speaker_layout_custom ) - { - /* Number of non-LFE output channels */ - numNonLfeOutChannels = st->outConfig.outSetupCustom->num_spk; - - /* Number of output channels */ - numOutChannels = st->outConfig.outSetupCustom->num_spk + st->outConfig.outSetupCustom->num_lfe; - - /* Output speaker coordinates */ - outSpkAzi = st->outConfig.outSetupCustom->ls_azimuth; - outSpkEle = st->outConfig.outSetupCustom->ls_elevation; - - /* num_spk + num_lfe must be <= MAX_OUTPUT_CHANNELS for custom loudspeaker layouts */ - if ( st->outConfig.outSetupCustom->num_lfe > 0 ) - { - lfeLastIdx_lsCustom[numNonLfeOutChannels] = st->outConfig.outSetupCustom->lfe_idx[0]; - } - - for ( outChIdx = 0; outChIdx < numNonLfeOutChannels; ++outChIdx ) - { - ( ( st->outConfig.outSetupCustom->num_lfe > 0 ) && ( (int16_t) outChIdx >= st->outConfig.outSetupCustom->lfe_idx[0] ) ) ? ( lfeLastIdx_lsCustom[outChIdx] = outChIdx + 1 ) : ( lfeLastIdx_lsCustom[outChIdx] = outChIdx ); - } - - lfeLastIdxs = &lfeLastIdx_lsCustom[0]; - } - else - { - /* Number of non-LFE output channels */ - numNonLfeOutChannels = Prndr_getNumNonLfeChannelsInSpeakerLayout( st->outConfig.speakerLayout ); - - /* Number of output channels */ - numOutChannels = Prndr_getNumChannelsInSpeakerLayout( st->outConfig.speakerLayout ); - - /* Output speaker coordinates */ - outSpkAzi = Prndr_getSpeakerAzimuths( st->outConfig.speakerLayout ); - outSpkEle = Prndr_getSpeakerElevations( st->outConfig.speakerLayout ); - - lfeLastIdxs = Prndr_getReorderedChannelIndices( st->outConfig.speakerLayout ); - } - - passThroughIdx = 0; - for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) - { - /* Number of non-LFE input channels for current MC input */ - numNonLfeInChannels = Prndr_getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - /* Number of input channels for current MC input */ - numInChannels = Prndr_getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - /* Input speaker coordinates */ - inSpkAzi = Prndr_getSpeakerAzimuths( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - inSpkEle = Prndr_getSpeakerElevations( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - /* Check if passthrough possible for, save I/O mapping */ - for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) - { - st->mcPassthrough[passThroughIdx] = -1; - - for ( outChIdx = 0; outChIdx < numNonLfeOutChannels; ++outChIdx ) - { - if ( inSpkAzi[inChIdx] == outSpkAzi[outChIdx] && - inSpkEle[inChIdx] == outSpkEle[outChIdx] ) - { - st->mcPassthrough[passThroughIdx] = lfeLastIdxs[outChIdx]; - break; - } - } - - ++passThroughIdx; - } - - /* Setup LFE passthrough, save I/O mapping */ - outChIdx = numNonLfeOutChannels; - for ( ; inChIdx < numInChannels; ++inChIdx ) - { - if ( outChIdx < numOutChannels ) - { - st->mcPassthrough[passThroughIdx] = lfeLastIdxs[outChIdx]; - } - else - { - st->mcPassthrough[passThroughIdx] = -1; - } - - ++outChIdx; - ++passThroughIdx; - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void passthroughChannel( const Prndr_AudioBuffer inAudio, - const uint32_t srcChnlIdx, - const uint32_t dstChnlIdx, - const float gain_lin, - Prndr_AudioBuffer outAudio ) -{ - float *inSmpl; - float *outSmpl; - int16_t smplIdx; - -#ifdef WMOPS - wmops_sub_start( "passthroughChannel" ); -#endif - - inSmpl = get_smpl_ptr( inAudio, srcChnlIdx, 0 ); - outSmpl = get_smpl_ptr( outAudio, dstChnlIdx, 0 ); - - for ( smplIdx = 0; smplIdx < inAudio.config.bufferSize; ++smplIdx ) - { - *outSmpl += *inSmpl * gain_lin; - - ++outSmpl; - ++inSmpl; - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -static void getSpeakerGains( const Prndr_Prerenderer *const st, - const float azi, - const float ele, - float *const spkGains ) -{ - const uint32_t *lfeLastIdxs; - int16_t numNonLfeOutChannels; - int16_t noLfeIdx; - Prndr_SpeakerLayout speakerLayout; - -#ifdef WMOPS - wmops_sub_start( "getSpeakerGains" ); -#endif - - /* EFAP returns an array of gains only for non-LFE speakers */ - efap_determine_gains( st->efapRenderer, st->noLfePanBuffer, azi, ele, EFAP_MODE_EFAP ); - - speakerLayout = st->outConfig.speakerLayout; - if ( speakerLayout == prndr_speaker_layout_custom ) - { - uint32_t lfeIdx; - - numNonLfeOutChannels = st->outConfig.outSetupCustom->num_spk; - - /* Clear speaker gains - not all elements will be overwritten below */ - set_zero( spkGains, numNonLfeOutChannels + st->outConfig.outSetupCustom->num_lfe ); - - /* Copy to gain array where LFE channel(s) are included */ - for ( lfeIdx = 0, noLfeIdx = 0; noLfeIdx < numNonLfeOutChannels; lfeIdx++, noLfeIdx++ ) - { - if ( noLfeIdx == st->outConfig.outSetupCustom->lfe_idx[0] ) - { - lfeIdx++; - } - spkGains[lfeIdx] = st->noLfePanBuffer[noLfeIdx]; - } - } - else - { - numNonLfeOutChannels = Prndr_getNumNonLfeChannelsInSpeakerLayout( speakerLayout ); - lfeLastIdxs = Prndr_getReorderedChannelIndices( speakerLayout ); - - /* Clear speaker gains - not all elements will be overwritten below */ - set_zero( spkGains, Prndr_getNumChannelsInSpeakerLayout( speakerLayout ) ); - - /* Copy to gain array where LFE channel(s) are included */ - for ( noLfeIdx = 0; noLfeIdx < numNonLfeOutChannels; ++noLfeIdx ) - { - spkGains[lfeLastIdxs[noLfeIdx]] = st->noLfePanBuffer[noLfeIdx]; - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -int16_t Prndr_getNumChannelsAmbisonics( Prndr_Ambisonics ambisonics ) -{ - switch ( ambisonics ) - { - case prndr_ambisonics_none: - return 0; - case prndr_ambisonics_mono: - return 1; - case prndr_ambisonics_foa: - return 4; - case prndr_ambisonics_soa: - return 9; - case prndr_ambisonics_toa: - return 16; - default: - assert( !"Invalid ambisonics config" ); - } - - return 0; -} - -static int16_t Prndr_getAmbisonicsOrder( Prndr_Ambisonics ambisonics ) -{ - assert( ambisonics != prndr_ambisonics_none && "Invalid ambisonics config" ); - return ambisonics; /* Enum values map to ambisonics order */ -} - -int16_t Prndr_getNumChannelsInSpeakerLayout( Prndr_SpeakerLayout layout ) -{ - switch ( layout ) - { - case prndr_speaker_layout_none: - return 0; - case prndr_speaker_layout_mono: - return 1; - case prndr_speaker_layout_stereo: - return 2; - case prndr_speaker_layout_5_1: - return 6; - case prndr_speaker_layout_7_1: - return 8; - case prndr_speaker_layout_5_1_4: - return 10; - case prndr_speaker_layout_7_1_4: - return 12; - default: - assert( !"Invalid speaker layout" ); - } - - return 0; -} - -int16_t Prndr_getNumNonLfeChannelsInSpeakerLayout( Prndr_SpeakerLayout layout ) -{ - switch ( layout ) - { - case prndr_speaker_layout_mono: - return 1; - case prndr_speaker_layout_stereo: - return 2; - case prndr_speaker_layout_5_1: - return 5; - case prndr_speaker_layout_7_1: - return 7; - case prndr_speaker_layout_5_1_4: - return 9; - case prndr_speaker_layout_7_1_4: - return 11; - default: - assert( !"Invalid speaker layout" ); - } - - return 0; -} - -const float *Prndr_getSpeakerAzimuths( Prndr_SpeakerLayout layout ) -{ - switch ( layout ) - { - case prndr_speaker_layout_mono: - return ls_azimuth_CICP1; - case prndr_speaker_layout_stereo: - return ls_azimuth_CICP2; - case prndr_speaker_layout_5_1: - return ls_azimuth_CICP6; - case prndr_speaker_layout_7_1: - return ls_azimuth_CICP12; - case prndr_speaker_layout_5_1_4: - return ls_azimuth_CICP16; - case prndr_speaker_layout_7_1_4: - return ls_azimuth_CICP19; - default: - assert( !"Invalid speaker layout" ); - } - - return NULL; -} - -const float *Prndr_getSpeakerElevations( Prndr_SpeakerLayout layout ) -{ - switch ( layout ) - { - case prndr_speaker_layout_mono: - return ls_elevation_CICP1; - case prndr_speaker_layout_stereo: - return ls_elevation_CICP2; - case prndr_speaker_layout_5_1: - return ls_elevation_CICP6; - case prndr_speaker_layout_7_1: - return ls_elevation_CICP12; - case prndr_speaker_layout_5_1_4: - return ls_elevation_CICP16; - case prndr_speaker_layout_7_1_4: - return ls_elevation_CICP19; - default: - assert( !"Invalid speaker layout" ); - } - - return NULL; -} - -const uint32_t *Prndr_getReorderedChannelIndices( Prndr_SpeakerLayout layout ) -{ - switch ( layout ) - { - case prndr_speaker_layout_mono: - return ls_LFE_last_idx_CICP1; - case prndr_speaker_layout_stereo: - return ls_LFE_last_idx_CICP2; - case prndr_speaker_layout_5_1: - return ls_LFE_last_idx_CICP6; - case prndr_speaker_layout_7_1: - return ls_LFE_last_idx_CICP12; - case prndr_speaker_layout_5_1_4: - return ls_LFE_last_idx_CICP16; - case prndr_speaker_layout_7_1_4: - return ls_LFE_last_idx_CICP19; - default: - assert( !"Invalid speaker layout" ); - } - - return NULL; -} - -static ivas_error Prndr_getHoaRenderMtx( - const Prndr_OutputConfig outConfig, - float **decMtx, - uint32_t ambiOrder ) -{ - IVAS_OUTPUT_SETUP hOutSetup; - ivas_error error; - - error = IVAS_ERR_OK; - -#ifdef WMOPS - wmops_sub_start( "Prndr_getHoaRenderMtx" ); -#endif - - switch ( outConfig.speakerLayout ) - { - case prndr_speaker_layout_mono: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_MONO ); - hOutSetup.ls_azimuth = ls_azimuth_CICP1; - hOutSetup.ls_elevation = ls_elevation_CICP1; - break; - case prndr_speaker_layout_stereo: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_STEREO ); - break; - case prndr_speaker_layout_5_1: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_5_1 ); - break; - case prndr_speaker_layout_7_1: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_7_1 ); - break; - case prndr_speaker_layout_5_1_4: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_5_1_4 ); - break; - case prndr_speaker_layout_7_1_4: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_7_1_4 ); - break; - case prndr_speaker_layout_custom: - ivas_ls_custom_setup( &hOutSetup, outConfig.outSetupCustom ); - break; - default: - assert( !"Invalid speaker config" ); - return IVAS_ERR_WRONG_PARAMS; - } - - if ( ( error = ivas_sba_get_hoa_dec_matrix( hOutSetup, decMtx, (int16_t) ambiOrder ) ) != IVAS_ERR_OK ) - { - return error; - } - - -#ifdef WMOPS - wmops_sub_end(); -#endif - - return error; -} - -void Prndr_getHoaDecVecForAmbiChnl( - uint32_t ambiChnnlIdx, - const Prndr_OutputConfig outConfig, - const float *decMtx, - float *decCoeffs ) -{ - - const uint32_t *lfeLastIdxs; - int16_t numNonLfeChannels; - int16_t nonLfeChIdx; - -#ifdef WMOPS - wmops_sub_start( "Prndr_getHoaDecVecForAmbiChnl" ); -#endif - - - if ( outConfig.speakerLayout == prndr_speaker_layout_custom ) - { - uint32_t lfeIdx; - - numNonLfeChannels = outConfig.outSetupCustom->num_spk; - - /* Clear speaker gains - not all elements will be overwritten below */ - set_zero( decCoeffs, numNonLfeChannels + outConfig.outSetupCustom->num_lfe ); - - /* Copy to gain array where LFE channel(s) are included */ - for ( lfeIdx = 0, nonLfeChIdx = 0; nonLfeChIdx < numNonLfeChannels; lfeIdx++, nonLfeChIdx++ ) - { - if ( nonLfeChIdx == outConfig.outSetupCustom->lfe_idx[0] ) - { - lfeIdx++; - } - decCoeffs[lfeIdx] = decMtx[16 * nonLfeChIdx + ambiChnnlIdx]; - } - } - else - { - numNonLfeChannels = Prndr_getNumNonLfeChannelsInSpeakerLayout( outConfig.speakerLayout ); - - lfeLastIdxs = Prndr_getReorderedChannelIndices( outConfig.speakerLayout ); - - /* Clear decoding coefficients - not all elements will be overwritten below */ - set_zero( decCoeffs, Prndr_getNumChannelsInSpeakerLayout( outConfig.speakerLayout ) ); - - for ( nonLfeChIdx = 0; nonLfeChIdx < numNonLfeChannels; ++nonLfeChIdx ) - { - decCoeffs[lfeLastIdxs[nonLfeChIdx]] = decMtx[16 * nonLfeChIdx + ambiChnnlIdx]; - } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif -} - -/*-------------------------------------------------------------------* - * ivas_limiter_prerenderer() - * - * In-place saturation control for multichannel buffers with adaptive release time - *-------------------------------------------------------------------*/ -static void ivas_limiter_prerenderer( - IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ - float *output, /* i/o: I/O buffer */ - const int16_t output_frame, /* i : number of samples per channel in the buffer */ - const float threshold /* i : signal amplitude above which limiting starts to be applied */ -) -{ - int16_t c; - float **channels; - int16_t num_channels; - - /* return early if given bad parameters */ - if ( hLimiter == NULL || output == NULL || output_frame <= 0 ) - { - return; - } - - channels = hLimiter->channel_ptrs; - num_channels = hLimiter->num_channels; - - for ( c = 0; c < num_channels; ++c ) - { - channels[c] = output + c * output_frame; - } - - limiter_process( hLimiter, output_frame, threshold, 0, NULL ); - - return; -} - -static float dBToLin( const float gain_dB ) -{ - return powf( 10.f, gain_dB / 20.f ); -} diff --git a/lib_util/ivas_prerenderer.h b/lib_util/ivas_prerenderer.h deleted file mode 100644 index f21f893dc9..0000000000 --- a/lib_util/ivas_prerenderer.h +++ /dev/null @@ -1,190 +0,0 @@ -/****************************************************************************************************** - - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. - -*******************************************************************************************************/ - -#ifndef IVAS_PRERENDERER_H -#define IVAS_PRERENDERER_H - -#include -#include - -#include "options.h" -#include "common_api_types.h" -#include "ls_custom_file_reader.h" -#include "ivas_error.h" - -#define PRERENDERER_MAX_ISM_INPUTS 16 -#define PRERENDERER_MAX_MC_INPUTS 2 -#define PRERENDERER_MAX_SBA_INPUTS 2 - -typedef enum Prndr_Ambisonics -{ - prndr_ambisonics_none = -1, - prndr_ambisonics_mono = 0, - prndr_ambisonics_foa = 1, - prndr_ambisonics_soa = 2, - prndr_ambisonics_toa = 3 -} Prndr_Ambisonics; /* Numerical value corresponds to Ambisonics order */ - -typedef enum Prndr_SpeakerLayout -{ - prndr_speaker_layout_none = -1, - prndr_speaker_layout_custom = 0, - prndr_speaker_layout_mono = 1, - prndr_speaker_layout_stereo = 2, - prndr_speaker_layout_5_1 = 6, - prndr_speaker_layout_5_1_4 = 16, - prndr_speaker_layout_7_1 = 12, - prndr_speaker_layout_7_1_4 = 19 -} Prndr_SpeakerLayout; /* Numerical value corresponds to CICP index */ - -typedef struct Prndr_AudioObjectPosition -{ - int16_t azimuth; - int16_t elevation; -} Prndr_AudioObjectPosition; - -typedef struct Prndr_AudioObjectMetadataBuffer -{ - Prndr_AudioObjectPosition positions[PRERENDERER_MAX_ISM_INPUTS]; - uint32_t numObjects; -} Prndr_AudioObjectMetadataBuffer; - -typedef struct Prndr_AudioObject -{ - uint8_t inputChannelIndex; - float gain_dB; -} Prndr_AudioObject; - -typedef struct Prndr_ObjPanInfo -{ - Prndr_AudioObjectPosition position; - float *panGains; -} Prndr_ObjPanInfo; - -typedef struct Prndr_AmbisonicsBus -{ - Prndr_Ambisonics ambisonicsConfig; - uint8_t inputChannelIndex; - float gain_dB; -} Prndr_AmbisonicsBus; - -typedef struct Prndr_MultiChannelBus -{ - Prndr_SpeakerLayout speakerLayout; - uint8_t inputChannelIndex; - float gain_dB; -} Prndr_MultiChannelBus; - -typedef struct Prndr_AudioBufferConfig -{ - int32_t sampleRate; - int16_t bufferSize; - int16_t numChannels; -} Prndr_AudioBufferConfig; - -typedef struct Prndr_AudioBuffer -{ - Prndr_AudioBufferConfig config; - float *data; -} Prndr_AudioBuffer; - -typedef struct Prndr_InputConfig -{ - Prndr_AudioObject audioObjects[PRERENDERER_MAX_ISM_INPUTS]; - uint8_t numAudioObjects; - Prndr_MultiChannelBus multiChannelBuses[PRERENDERER_MAX_MC_INPUTS]; - uint8_t numMultiChannelBuses; - Prndr_AmbisonicsBus ambisonicsBuses[PRERENDERER_MAX_SBA_INPUTS]; - uint8_t numAmbisonicsBuses; -} Prndr_InputConfig; - -typedef struct Prndr_OutputConfig -{ - Prndr_SpeakerLayout speakerLayout; - Prndr_Ambisonics ambisonics; - IVAS_LSSETUP_CUSTOM_HANDLE outSetupCustom; -} Prndr_OutputConfig; - -typedef struct Prndr_Prerenderer Prndr_Prerenderer; - -/* clang-format off */ -/*----------------------------------------------------------------------------------* - * Prerenderer prototypes - *----------------------------------------------------------------------------------*/ - -/*! Creates a prerenderer state. - * r: pointer to opened prerenderer */ -Prndr_Prerenderer *Prndr_Prerenderer_open( - void -); - -/*! Configures the prerenderer - needs to be called after Prndr_Prerenderer_open(). */ -ivas_error Prndr_Prerenderer_configure( - Prndr_Prerenderer *const st, /* i : Prerenderer state */ - const Prndr_InputConfig inConfig, /* i : Input configuration */ - const Prndr_OutputConfig outConfig, /* i : Output configuration */ - int32_t frameSize, /* i : Processing frame size in samples */ - uint32_t sampleRate /* i : Processing sampling rate */ -); - -/*! Renders one frame of audio samples */ -void Prndr_Prerenderer_render( - Prndr_Prerenderer *const st, /* i : Prerenderer state */ - const Prndr_AudioBuffer inAudio, /* i : Buffer with pointer to input samples and associated info */ - const Prndr_AudioObjectMetadataBuffer metadataBuffer, /* i : Buffer with object metadata for current frame */ - Prndr_AudioBuffer outAudio /* o : Buffer with pointer to output samples and associated info */ -); - -/*! Enable/disable experimental LFE handling */ -void Prndr_Prerenderer_setNeverDropLfe( - Prndr_Prerenderer *st, /* i : Prerenderer state */ - int8_t neverDropLfe /* i : If 0, LFE channel will be dropped when rendering to configs w/o LFE. - If 1, tries to render LFE into other channels in an optimal way when rendering to configs w/o LFE. */ -); - -/*! Get number of input channels based on InputConfig */ -int16_t Prndr_Prerenderer_getInChannels( - Prndr_Prerenderer *st /* i : Prerenderer state */ -); - -/*! Get number of output channels based on OutputConfig */ -int16_t Prndr_Prerenderer_getOutChannels( - Prndr_Prerenderer *st /* i : Prerenderer state */ -); - -/*! Destructs the prerenderer state and frees memory */ -void Prndr_Prerenderer_close( - Prndr_Prerenderer *st /* i : Prerenderer state */ -); -/* clang-format on */ - -#endif /* IVAS_PRERENDERER_H */ diff --git a/scripts/deco.bin b/scripts/deco.bin new file mode 100644 index 0000000000..3ea11b0fad --- /dev/null +++ b/scripts/deco.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c24505426ee0d7f5eb019af6d918647eebb363dd96a45ae50be65a4aa2f809c0 +size 229376 diff --git a/scripts/eigen_to_foa_cldfb_domain_filters.bin b/scripts/eigen_to_foa_cldfb_domain_filters.bin new file mode 100644 index 0000000000..3a9d67c0c7 --- /dev/null +++ b/scripts/eigen_to_foa_cldfb_domain_filters.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c3ebc3d9e031d2d640a32639132771da974874686a378fb323645b9dbb553fe +size 61440 diff --git a/scripts/eigen_to_hoa2_cldfb_domain_filters.bin b/scripts/eigen_to_hoa2_cldfb_domain_filters.bin new file mode 100644 index 0000000000..4c586da3d5 --- /dev/null +++ b/scripts/eigen_to_hoa2_cldfb_domain_filters.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9097ecbf3b26b814abe141edadc701f1ffec5a141f2becc746926d6d32a7e58 +size 138240 diff --git a/scripts/find_unused_symbols.sh b/scripts/find_unused_symbols.sh index 1498fa172b..68a6cdad8f 100755 --- a/scripts/find_unused_symbols.sh +++ b/scripts/find_unused_symbols.sh @@ -32,7 +32,7 @@ options=$1 OBJDIR=obj -EXECUTABLES="../IVAS_cod ../IVAS_dec ./prerenderer/IVAS_prerenderer" +EXECUTABLES="../IVAS_cod ../IVAS_dec ../IVAS_rend" evaluateTables=1 evaluateFunctions=1 @@ -68,7 +68,6 @@ fi # build if [ $compile -ne 0 ]; then make -C .. DEBUG=0 STRIP=1 clean all 1>&2 - make -C prerenderer DEBUG=0 STRIP=1 clean all 1>&2 fi if [ $evaluateFunctions != 0 ]; then diff --git a/scripts/hrir.bin b/scripts/hrir.bin new file mode 100644 index 0000000000..e69de29bb2 diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj index 3d8e7ab07f..5061b8e414 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj @@ -17,6 +17,9 @@ {e822ddaf-0f5f-4cd0-a694-38ae69de74d3} + + {12B4C8A5-1E06-4E30-B443-D1F916F52B47} + {2fa8f384-0775-f3b7-f8c3-85209222fc70} @@ -97,7 +100,7 @@ Neither false false - ..\..\..\..\..\lib_util;..\..\..\..\..\lib_dec;..\..\..\..\..\lib_com;..\..\..\..\..\lib_enc;..\..\..\..\..\lib_debug;..\..\..\..\..\lib_util;%(AdditionalIncludeDirectories) + ..\..\..\..\..\lib_util;..\..\..\..\..\lib_dec;..\..\..\..\..\lib_rend;..\..\..\..\..\lib_com;..\..\..\..\..\lib_enc;..\..\..\..\..\lib_debug;..\..\..\..\..\lib_util;%(AdditionalIncludeDirectories) UNIT_TEST_CREND_TD_BINAURAL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true diff --git a/scripts/prepare_instrumentation.sh b/scripts/prepare_instrumentation.sh index 8ab50080a2..602768d4d6 100755 --- a/scripts/prepare_instrumentation.sh +++ b/scripts/prepare_instrumentation.sh @@ -91,7 +91,7 @@ fi # strip switches, to remove the macros if coan_exists; then - coan source --replace --no-transients -E -K --file $ifdef_list $targetdir/lib_{com,dec,enc,util,debug}/*.[hc] + coan source --replace --no-transients -E -K --file $ifdef_list $targetdir/lib_{com,dec,enc,rend,util,debug}/*.[hc] coan source --replace --no-transients -E -K --file $ifdef_list $targetdir/apps/*.[hc] else ./strip_defines_cpppnet.sh $targetdir $ifdef_list @@ -104,6 +104,7 @@ find $targetdir -name "*.[ch]" -exec sed -i.bak -e "s/\(0x[0-9a-fA-F]*\)UL/\(\(u ${emulator} ./wmc_tool.exe $targetdir/lib_enc/*.c /ic /op > /dev/null ${emulator} ./wmc_tool.exe $targetdir/lib_com/*.c /ic /op > /dev/null ${emulator} ./wmc_tool.exe $targetdir/lib_dec/*.c /ic /op > /dev/null +${emulator} ./wmc_tool.exe $targetdir/lib_rend/*.c /ic /op > /dev/null # automatically enable #define WMOPS in options.h sed -i.bak -e "s/\/\*\s*\(#define\s*WMOPS\)\s*\*\//\1/g" $targetdir/lib_com/options.h diff --git a/scripts/prerenderer/Makefile b/scripts/prerenderer/Makefile deleted file mode 100644 index 4201cd75e3..0000000000 --- a/scripts/prerenderer/Makefile +++ /dev/null @@ -1,172 +0,0 @@ -# GNU Makefile - -# Paths -SRC_LIBCOM = ../../lib_com -SRC_LIBDEBUG = ../../lib_debug -SRC_LIBDEC = ../../lib_dec -SRC_LIBENC = ../../lib_enc -SRC_LIBUTIL = ../../lib_util -SRC_APP = . -BUILD = build -OBJDIR = obj - -SRC_DIRS = $(sort -u $(SRC_LIBCOM) $(SRC_LIBDEBUG) $(SRC_LIBDEC) $(SRC_LIBENC) $(SRC_LIBUTIL) $(SRC_APP)) - -# Name of CLI binaries -CLI_PRD ?= IVAS_prerenderer -LIB_LIBCOM ?= libivascom.a -LIB_LIBDEBUG ?= libivasdebug.a -LIB_LIBDEC ?= libivasdec.a -LIB_LIBENC ?= libivasenc.a -LIB_LIBUTIL ?= libivasutil.a - -# Default tool settings -CC ?= gcc -RM ?= rm -f -AR ?= ar - -# Detect system -UNAME_S := $(shell uname -s) - -# Switches for cross-platform builds (i.e. build 32 bit code on 64 bit platforms) -ifneq "$(TARGET_PLATFORM)" "" -ifeq ("$(TARGET_PLATFORM)", "$(findstring $(TARGET_PLATFORM), i386 i586 i686)") - CFLAGS += -m32 - LDFLAGS += -m32 -endif - -ifeq ("$(TARGET_PLATFORM)", "$(findstring $(TARGET_PLATFORM), x86_64)") - CFLAGS += -m64 - LDFLAGS += -m64 -endif -endif - -ifndef VERBOSE -QUIET_CC = @echo ' ' Compiling $<; -QUIET_LINK= @echo ' ' Linking $@; -QUIET_AR = @echo ' ' Archiving $@; -QUIET = @ -endif - -# C compiler flags -CFLAGS += -std=c99 -pedantic -Wcast-qual -Wall -W -Wextra -Wno-long-long \ - -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ - -Werror-implicit-function-declaration -Wno-unused-parameter \ - -Wno-unused-function -Wno-implicit-fallthrough - -# libs to link -LDLIBS += -lm - -# Clang sanitizer compiler options -CCCLANG = clang -ifeq "$(CLANG)" "1" -CC = $(CCCLANG) -CFLAGS += -fsanitize=memory -LDFLAGS += -fsanitize=memory -endif -ifeq "$(CLANG)" "2" -CC = $(CCCLANG) -CFLAGS += -fsanitize=address -LDFLAGS += -fsanitize=address -endif -ifeq "$(CLANG)" "3" -CC = $(CCCLANG) -CFLAGS += -fsanitize=undefined -LDFLAGS += -fsanitize=undefined -endif - -ifeq "$(RELEASE)" "1" -CFLAGS += -DRELEASE -OPTIM ?= 2 -endif - -ifneq "$(DEBUG)" "0" -CFLAGS += -g3 -LDFLAGS += -g3 -endif - -ifeq "$(GCOV)" "1" -CFLAGS += -fprofile-arcs -ftest-coverage -LDFLAGS += -fprofile-arcs -ftest-coverage -endif - -ifeq "$(STRIP)" "1" -CFLAGS += -fdata-sections -ffunction-sections -ifneq ($(UNAME_S),Darwin) -LDFLAGS += -Wl,-gc-sections -static -else -LDFLAGS += -Wl,-dead_strip -endif -endif - -OPTIM ?= 0 -CFLAGS += -O$(OPTIM) - -CFLAGS += $(foreach DIR,$(SRC_DIRS),-I$(DIR)) - -# Source file search paths -VPATH = $(SRC_DIRS) - -############################################################################### - -SRCS_LIBCOM = $(foreach DIR,$(SRC_LIBCOM),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) -SRCS_LIBDEBUG = $(foreach DIR,$(SRC_LIBDEBUG),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) -SRCS_LIBDEC = $(foreach DIR,$(SRC_LIBDEC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) -SRCS_LIBENC = $(foreach DIR,$(SRC_LIBENC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) -SRCS_LIBUTIL = $(foreach DIR,$(SRC_LIBUTIL),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) - -OBJS_LIBCOM = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.o)) -OBJS_LIBDEBUG = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEBUG:.c=.o)) -OBJS_LIBDEC = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEC:.c=.o)) -OBJS_LIBENC = $(addprefix $(OBJDIR)/,$(SRCS_LIBENC:.c=.o)) -OBJS_LIBUTIL = $(addprefix $(OBJDIR)/,$(SRCS_LIBUTIL:.c=.o)) -OBJS_CLI_APPPRD = $(OBJDIR)/prerenderer.o - -DEPS = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.P) $(SRCS_LIBDEBUG:.c=.P) $(SRCS_LIBDEC:.c=.P) \ - $(SRCS_LIBENC:.c=.P) $(SRCS_LIBUTIL:.c=.P)) - -############################################################################### - -.PHONY: all clean clean_all - -all: $(CLI_PRD) - -$(OBJDIR): - $(QUIET)mkdir -p $(OBJDIR) - -$(LIB_LIBCOM): $(OBJS_LIBCOM) - $(QUIET_AR)$(AR) rcs $@ $^ - -$(LIB_LIBDEBUG): $(OBJS_LIBDEBUG) - $(QUIET_AR)$(AR) rcs $@ $^ - -$(LIB_LIBDEC): $(OBJS_LIBDEC) - $(QUIET_AR)$(AR) rcs $@ $^ - -$(LIB_LIBENC): $(OBJS_LIBENC) - $(QUIET_AR)$(AR) rcs $@ $^ - -$(LIB_LIBUTIL): $(OBJS_LIBUTIL) - $(QUIET_AR)$(AR) rcs $@ $^ - -$(CLI_PRD): $(LIB_LIBENC) $(LIB_LIBDEC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(OBJS_CLI_APPPRD) - $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPPRD) -L. -livasutil -livasenc -livasdec -livascom -livasdebug $(LDLIBS) -o $(CLI_PRD) - -libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) - -clean: - $(QUIET)$(RM) $(OBJS_LIBENC) $(OBJS_LIBDEC) $(OBJS_CLI_APPPRD) $(DEPS) - $(QUIET)$(RM) $(DEPS:.P=.d) - $(QUIET)test ! -d $(OBJDIR) || rm -rf $(OBJDIR) - -clean_all: clean - $(QUIET)$(RM) $(CLI_PRD) $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) - -$(OBJDIR)/%.o : %.c | $(OBJDIR) - $(QUIET_CC)$(CC) $(CFLAGS) -c -MD -o $@ $< - @cp $(OBJDIR)/$*.d $(OBJDIR)/$*.P; \ - sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ - -e '/^$$/ d' -e 's/$$/ :/' < $(OBJDIR)/$*.d >> $(OBJDIR)/$*.P; \ - $(RM) $(OBJDIR)/$*.d - --include $(DEPS) diff --git a/scripts/prerenderer/Workspace_msvc/Workspace_msvc_prerenderer.sln b/scripts/prerenderer/Workspace_msvc/Workspace_msvc_prerenderer.sln deleted file mode 100644 index b36220e618..0000000000 --- a/scripts/prerenderer/Workspace_msvc/Workspace_msvc_prerenderer.sln +++ /dev/null @@ -1,48 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27428.2027 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "prerenderer", "prerenderer.vcxproj", "{12B4C8A5-1E06-4E30-B443-D1F916F52B47}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_util", "..\..\..\Workspace_msvc\lib_util.vcxproj", "{2FA8F384-0775-F3B7-F8C3-85209222FC70}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_debug", "..\..\..\Workspace_msvc\lib_debug.vcxproj", "{54509728-928B-44D9-A118-A6F92F08B34F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_com", "..\..\..\Workspace_msvc\lib_com.vcxproj", "{39EC200D-7795-4FF8-B214-B24EDA5526AE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_dec", "..\..\..\Workspace_msvc\lib_dec.vcxproj", "{E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Debug|Win32.ActiveCfg = Debug|Win32 - {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Debug|Win32.Build.0 = Debug|Win32 - {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Release|Win32.ActiveCfg = Release|Win32 - {12B4C8A5-1E06-4E30-B443-D1F916F52B47}.Release|Win32.Build.0 = Release|Win32 - {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Debug|Win32.ActiveCfg = Debug|Win32 - {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Debug|Win32.Build.0 = Debug|Win32 - {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Release|Win32.ActiveCfg = Release|Win32 - {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Release|Win32.Build.0 = Release|Win32 - {54509728-928B-44D9-A118-A6F92F08B34F}.Debug|Win32.ActiveCfg = Debug|Win32 - {54509728-928B-44D9-A118-A6F92F08B34F}.Debug|Win32.Build.0 = Debug|Win32 - {54509728-928B-44D9-A118-A6F92F08B34F}.Release|Win32.ActiveCfg = Release|Win32 - {54509728-928B-44D9-A118-A6F92F08B34F}.Release|Win32.Build.0 = Release|Win32 - {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Debug|Win32.ActiveCfg = Debug|Win32 - {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Debug|Win32.Build.0 = Debug|Win32 - {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Release|Win32.ActiveCfg = Release|Win32 - {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Release|Win32.Build.0 = Release|Win32 - {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Debug|Win32.ActiveCfg = Debug|Win32 - {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Debug|Win32.Build.0 = Debug|Win32 - {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Release|Win32.ActiveCfg = Release|Win32 - {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {06AC6878-76C6-4079-956D-B3FF3DB2C9A5} - EndGlobalSection -EndGlobal diff --git a/scripts/prerenderer/Workspace_msvc/prerenderer.vcxproj.filters b/scripts/prerenderer/Workspace_msvc/prerenderer.vcxproj.filters deleted file mode 100644 index ae26ad88ba..0000000000 --- a/scripts/prerenderer/Workspace_msvc/prerenderer.vcxproj.filters +++ /dev/null @@ -1,50 +0,0 @@ - - - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - dec_ivas_c - - - enc_ivas_c - - - - - - - - {4fc737f1-c7a5-4376-a066-2a32d752a2ff} - - - {93995380-89bd-4b04-88eb-625fbe52ebfb} - - - {46364e80-1212-3600-1d53-58d3725f5bdc} - - - {67da6ab6-f800-4c08-8b7a-83bb121aad01} - - - - - - - \ No newline at end of file diff --git a/scripts/prerenderer/prerenderer.c b/scripts/prerenderer/prerenderer.c deleted file mode 100644 index 57515e5fd2..0000000000 --- a/scripts/prerenderer/prerenderer.c +++ /dev/null @@ -1,1553 +0,0 @@ -/****************************************************************************************************** - - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. - -*******************************************************************************************************/ - -#include "options.h" -#include "audio_file_reader.h" -#include "audio_file_writer.h" -#include "common_api_types.h" -#include "ivas_prerenderer.h" -#include "ism_file_reader.h" -#include "ivas_stat_dec.h" -#include "prot.h" -#ifdef WMOPS -#include "wmops.h" -#endif -#ifdef RAM_COUNTING_TOOL -#include "mem_count.h" -#endif -#include -#include -#include -#include -#include -#include - -#ifndef count_malloc -#ifdef RAM_COUNTING_TOOL -#define count_malloc( n1 ) MALLOC_FCT_CALL( n1 ) -#define count_calloc( n1, n2 ) CALLOC_FCT_CALL( n1, n2 ) -#define count_free( ptr ) FREE_FCT_CALL( ptr ) -#else -#define count_malloc( n1 ) malloc( n1 ) -#define count_calloc( n1, n2 ) calloc( n1, n2 ) -#define count_free( ptr ) free( ptr ) -#endif -#endif - -#ifndef min -#define min( x, y ) ( ( x ) < ( y ) ? ( x ) : ( y ) ) -#endif - -#ifndef max -#define max( x, y ) ( ( x ) > ( y ) ? ( x ) : ( y ) ) -#endif - -#define PRERENDERER_MAX_METADATA_LENGTH 8192 -#define PRERENDERER_MAX_METADATA_LINE_LENGTH 1024 -#define PRERENDERER_MAX_CMDLN_ARG_LENGTH FILENAME_MAX - -#if !defined( DEBUGGING ) && !defined( WMOPS ) -static -#endif - int32_t frame = 0; - -#ifdef _WIN32 -#define SEP_FOLDER '\\' -#else -#define SEP_FOLDER '/' -#endif - -#ifdef WMOPS -/* void print_stack_call_tree( void ); -int Const_Data_Size_ivas_prerenderer_mai( void ); // Not a typo -int Const_Data_Size_ivas_rom_prerenderer( void ); -extern int16_t *ptr_base_stack; -extern int16_t *ptr_max_stack; -extern int32_t wc_frame; -extern char location_max_stack[256]; */ - -/* clang-format off */ -/*------------------------------------------------------------------------------------------* -* Function to print complexity & memory estimates -*------------------------------------------------------------------------------------------*/ -/* void print_mem_prerenderer(size_t SRAM_size) -{ - fprintf( stdout, "\n\n --- Prerenderer cmdln demo memory usage --- \n\n" ); - - fprintf( stdout, "PROM size (prerenderer): %d words (or instructions)\n", PROM_Size_prerenderer ); - fprintf( stdout, "Stack size: %d words in %s() in frame #%d\n", ( ptr_base_stack - ptr_max_stack ) * sizeof( int16_t ) / sizeof( float ), location_max_stack, wc_frame ); - fprintf( stdout, "Table ROM size(prerenderer_main): %d words\n", (Const_Data_Size_ivas_prerenderer_mai() ) / sizeof( float ) ); - fprintf( stdout, "Table ROM size(prerenderer): %d words\n", (Const_Data_Size_ivas_rom_prerenderer() ) / sizeof( float ) ); -#ifdef RAM_COUNTING_TOOL - fprintf( stdout, "Static RAM size: %d words\n\n", SRAM_size ); -#endif - print_stack_call_tree(); - - fprintf( stdout, "Note: this is an optimistic estimate of the memory consumption assuming\n" ); - fprintf( stdout, " that each variable (short, long or float) in the codec requires\n" ); - fprintf( stdout, " 32 bits of memory and may therefore be represented by 1 word.\n" ); - fprintf( stdout, " The following formula is used: sizeof('memory array')/sizeof(float)\n\n" ); -} */ -/* clang-format on */ -#endif - -static const char *optInputFile = "--inputFile"; -static const char *optInputFileShort = "-if"; -static const char *optInputAmbisonics = "--inputAmbisonics"; -static const char *optInputAmbisonicsShort = "-if-sba"; -static const char *optInputMultichannel = "--inputMultichannel"; -static const char *optInputMultichannelShort = "-if-mc"; -static const char *optOutputFile = "--outputFile"; -static const char *optOutputFileShort = "-of"; -static const char *optInputAudio = "--inputAudio"; -static const char *optInputAudioShort = "-ia"; -static const char *optFrameSize = "--frameSize"; -static const char *optFrameSizeShort = "-fr"; -static const char *optOutputConfig = "--outputConfig"; -static const char *optOutputConfigShort = "-oc"; -static const char *optSampleRate = "--sampleRate"; -static const char *optSampleRateShort = "-fs"; -static const char *optNeverDropLfe = "--neverDropLfe"; -static const char *optNeverDropLfeShort = "-ndl"; - -typedef struct Prndr_IsmPositionProvider -{ - uint32_t frameCounter; - uint32_t numObjects; - IsmFileReader *ismReaders[PRERENDERER_MAX_ISM_INPUTS]; - uint32_t numPositions[PRERENDERER_MAX_ISM_INPUTS]; - Prndr_AudioObjectPosition *positions[PRERENDERER_MAX_ISM_INPUTS]; /* size: [PRERENDERER_MAX_ISM_INPUTS][numPositions[object_index]] */ - uint16_t *positionDurations[PRERENDERER_MAX_ISM_INPUTS]; /* size: [PRERENDERER_MAX_ISM_INPUTS][numPositions[object_index]] */ - uint32_t currentPositionIdxs[PRERENDERER_MAX_ISM_INPUTS]; /* Index of current position as listed in the metadata file */ - uint16_t durationCounters[PRERENDERER_MAX_ISM_INPUTS]; /* Number of frames spent at current position */ -} Prndr_IsmPositionProvider; - -typedef enum Prndr_ForcedInputFormat -{ - prndr_forced_input_format_none = 0, - prndr_forced_input_format_sba, - prndr_forced_input_format_mc -} Prndr_ForcedInputFormat; - -typedef struct Prndr_CmdlnArgs -{ - char inputFilePath[FILENAME_MAX]; - char outputFilePath[FILENAME_MAX]; - int16_t frameSize; - int32_t sampleRate; - Prndr_OutputConfig outConfig; - Prndr_ForcedInputFormat forcedInputFormat; - char forcedAudioInputFile[FILENAME_MAX]; - int8_t neverDropLfe; /* flag */ -} Prndr_CmdlnArgs; - -static int8_t getAmbisonicsFromNumChannels( - uint32_t numChannels, - Prndr_Ambisonics *ambisonics ); - -static int8_t getSpeakerLayoutFromNumChannels( - uint32_t numChannels, - Prndr_SpeakerLayout *layout ); - -static int8_t setInConfigFromSbaNumChannels( - int16_t numChannels, - Prndr_InputConfig *inConfig ); - -static int8_t setInConfigFromMcNumChannels( - int16_t numChannels, - Prndr_InputConfig *inConfig ); - -static Prndr_Ambisonics ambisonicsOrderToEnum( - int32_t order ); - -static Prndr_SpeakerLayout speakerLayoutCicpToEnum( - int32_t cicpIndex ); - -static int8_t parseOutConfig( - char *configString, - Prndr_OutputConfig *outConfig ); - -static void printUsage( - void ); - -static void parseConfigFile( - char *path, - char *audioFilePath, - Prndr_InputConfig *inConfig, - Prndr_IsmPositionProvider *positionProvider ); - -static Prndr_CmdlnArgs parseCmdlnArgs( - int32_t argc, - char **argv ); - -static Prndr_IsmPositionProvider *Prndr_IsmPositionProvider_open( - void ); - -static void Prndr_IsmPositionProvider_getNextFrame( - Prndr_IsmPositionProvider *positionProvider, - Prndr_AudioObjectMetadataBuffer *objectMetadataBuffer ); - -static void Prndr_IsmPositionProvider_close( - Prndr_IsmPositionProvider *positionProvider ); - -static void readFromShorthandMetadata( - Prndr_IsmPositionProvider *positionProvider, - Prndr_AudioObjectMetadataBuffer *objectMetadataBuffer, - uint32_t objIdx ); - -void getMetadataFromFileReader( - IsmFileReader *ismReader, - Prndr_AudioObjectMetadataBuffer *objectMetadataBuffer, - uint32_t objIdx ); - -static void splitConfigFile( - const char *mdfFilePath, - char *metadataString, - uint32_t *metadataStringLength, - char *wavFileName, - uint32_t *wavFileNameLength ); - -static char *readNextMetadataChunk( - char *line, - const char *delimiter ); - -static void parseUint8( - char *line, - uint8_t *ret ); - -static int8_t parseUint32( - char *line, - uint32_t *ret ); - -static void parseObjectPosition( - char *line, - Prndr_AudioObjectPosition *position, - uint16_t *positionDuration ); - -static void parseIsm( - char *line, - char *inDir, - Prndr_InputConfig *inConfig, - Prndr_IsmPositionProvider *positionProvider, - int32_t idx ); - -static void parseSba( - char *line, - Prndr_InputConfig *inConfig, - int32_t idx ); - -static void parseMc( - char *line, - Prndr_InputConfig *inConfig, - int32_t idx ); - -static void parseMetadata( - char *metadataString, - char *inDir, - Prndr_InputConfig *inConfig, - Prndr_IsmPositionProvider *positionProvider ); - -static void convert_backslash( - char *str ); - -static void remove_cr( - char *str ); - - -/* ============================================================================ */ - -int32_t main( int32_t argc, char **argv ) -{ - Prndr_CmdlnArgs args; - Prndr_Prerenderer *prerenderer; - Prndr_IsmPositionProvider *positionProvider; - Prndr_InputConfig inConfig; - char audioFilePath[FILENAME_MAX]; - AudioFileReader *audioReader = NULL; - int16_t numInChannels; - AudioFileWriter *audioWriter; - int32_t inBufferSize; - int32_t outBufferSize; - int16_t *inpInt16Buffer; - float *inFloatBuffer; - int16_t *outInt16Buffer; - float *outFloatBuffer; - Prndr_AudioBuffer inPrndrBuffer; - Prndr_AudioBuffer outPrndrBuffer; - int16_t numSamplesRead; - int16_t i; - ivas_error error = IVAS_ERR_OK; -#ifdef WMOPS - size_t SRAM_size; -#endif - -#ifdef WMOPS - reset_wmops(); - reset_stack(); -#endif - -#ifdef RAM_COUNTING_TOOL - mem_count_init( 0, USE_32BITS ); -#endif - - args = parseCmdlnArgs( argc, argv ); - - /* === Open === */ - prerenderer = Prndr_Prerenderer_open(); - positionProvider = Prndr_IsmPositionProvider_open(); - - convert_backslash( args.inputFilePath ); - convert_backslash( args.outputFilePath ); - convert_backslash( args.forcedAudioInputFile ); - - /* === Parse === */ - if ( args.forcedInputFormat == prndr_forced_input_format_none ) - { - /* Only parse config file if input config is not forced at cmdln */ - parseConfigFile( args.inputFilePath, audioFilePath, &inConfig, positionProvider ); - } - else - { - /* If input config is forced, input file path is the input audio file, not config file */ - strncpy( audioFilePath, args.inputFilePath, FILENAME_MAX ); - - /* Initialize inConfig - this will be overwritten when applying forced parameters, - * but not initializing here causes a compiler warning on msvc */ - inConfig.numAmbisonicsBuses = 0; - inConfig.numMultiChannelBuses = 0; - inConfig.numAudioObjects = 0; - } - - /* === Apply forced parameters === */ - if ( strlen( args.forcedAudioInputFile ) != 0 ) - { - strncpy( audioFilePath, args.forcedAudioInputFile, FILENAME_MAX ); - } - - AudioFileReader_open( &audioReader, audioFilePath, args.sampleRate ); - if ( !audioReader ) - { - fprintf( stderr, "Error opening file: %s\n", audioFilePath ); - exit( -1 ); - } - - if ( args.forcedInputFormat != prndr_forced_input_format_none ) - { - numInChannels = AudioFileReader_getNumChannels( audioReader ); - if ( numInChannels == 0 ) - { - fprintf( stderr, "File does not contain number of channels metadata, probably a raw file: %s\n", audioFilePath ); - exit( -1 ); - } - - if ( args.forcedInputFormat == prndr_forced_input_format_sba ) - { - - if ( setInConfigFromSbaNumChannels( numInChannels, &inConfig ) != 0 ) - { - fprintf( stderr, "File cannot be used with forced sba input: %s\n", audioFilePath ); - exit( -1 ); - } - } - else if ( args.forcedInputFormat == prndr_forced_input_format_mc ) - { - if ( setInConfigFromMcNumChannels( numInChannels, &inConfig ) != 0 ) - { - fprintf( stderr, "File cannot be used with forced mc input: %s\n", audioFilePath ); - exit( -1 ); - } - } - } - - /* === Configure === */ - if ( ( error = Prndr_Prerenderer_configure( prerenderer, inConfig, args.outConfig, args.frameSize, args.sampleRate ) ) != IVAS_ERR_OK ) - { - exit( -1 ); - } - - if ( args.neverDropLfe ) - { - Prndr_Prerenderer_setNeverDropLfe( prerenderer, 1 ); - } - - if ( Prndr_Prerenderer_getInChannels( prerenderer ) != AudioFileReader_getNumChannels( audioReader ) ) - { - fprintf( stderr, "Number of channels in input file does not match that defined in the config file\n" ); - exit( -1 ); - } - - /* === Process === */ - AudioFileWriter_open( &audioWriter, args.outputFilePath, args.sampleRate, Prndr_Prerenderer_getOutChannels( prerenderer ) ); - - if ( audioWriter == NULL ) - { - exit( -1 ); - } - - inBufferSize = args.frameSize * Prndr_Prerenderer_getInChannels( prerenderer ); - outBufferSize = args.frameSize * Prndr_Prerenderer_getOutChannels( prerenderer ); - inpInt16Buffer = count_calloc( inBufferSize, sizeof( int16_t ) ); - inFloatBuffer = count_calloc( inBufferSize, sizeof( float ) ); - outInt16Buffer = count_calloc( outBufferSize, sizeof( int16_t ) ); - outFloatBuffer = count_calloc( outBufferSize, sizeof( float ) ); - - inPrndrBuffer.config.sampleRate = args.sampleRate; - inPrndrBuffer.config.bufferSize = args.frameSize; - inPrndrBuffer.config.numChannels = Prndr_Prerenderer_getInChannels( prerenderer ); - inPrndrBuffer.data = inFloatBuffer; - - outPrndrBuffer.config.sampleRate = args.sampleRate; - outPrndrBuffer.config.bufferSize = args.frameSize; - outPrndrBuffer.config.numChannels = Prndr_Prerenderer_getOutChannels( prerenderer ); - outPrndrBuffer.data = outFloatBuffer; - -#ifdef WMOPS - reset_wmops(); -#endif - - while ( 1 ) - { - int32_t chnl, smpl; - int32_t num_in_channels; - num_in_channels = inPrndrBuffer.config.numChannels; - i = 0; - - /* Read the input data */ - if ( ( error = AudioFileReader_read( audioReader, inpInt16Buffer, inBufferSize, &numSamplesRead ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nError reading from file %s\n", audioFilePath ); - break; - } - - if ( numSamplesRead == 0 ) - { - /* end of input data */ - break; - } - - /* Convert from int to float and from interleaved to packed */ - for ( smpl = 0; smpl < args.frameSize; ++smpl ) - { - for ( chnl = 0; chnl < num_in_channels; ++chnl ) - { - if ( i < numSamplesRead ) - { - inFloatBuffer[chnl * args.frameSize + smpl] = (float) inpInt16Buffer[i] / INT16_MAX; - } - else - { - inFloatBuffer[chnl * args.frameSize + smpl] = 0.f; - } - - ++i; - } - } - - Prndr_AudioObjectMetadataBuffer mtdBuffer; - Prndr_IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer ); - - Prndr_Prerenderer_render( prerenderer, inPrndrBuffer, mtdBuffer, outPrndrBuffer ); - - int32_t num_out_channels; - num_out_channels = outPrndrBuffer.config.numChannels; - i = 0; - - /* Convert from float to int and from packed to interleaved */ - for ( smpl = 0; smpl < args.frameSize; ++smpl ) - { - for ( chnl = 0; chnl < num_out_channels; ++chnl ) - { - outInt16Buffer[i] = (int16_t)(outFloatBuffer[chnl * args.frameSize + smpl] * INT16_MAX); - - ++i; - } - } - - if ( AudioFileWriter_write( audioWriter, outInt16Buffer, outBufferSize ) != 0 ) - { - fprintf( stderr, "Error writing audio file %s\n", args.outputFilePath ); - exit( -1 ); - } - - frame++; - fprintf( stdout, "%-8d\b\b\b\b\b\b\b\b", frame ); - -#ifdef WMOPS - update_wmops(); -#endif - } - fprintf( stdout, "\n" ); - - /* === Close === */ - count_free( inpInt16Buffer ); - count_free( inFloatBuffer ); - count_free( outInt16Buffer ); - count_free( outFloatBuffer ); - AudioFileReader_close( &audioReader ); - AudioFileWriter_close( &audioWriter ); - Prndr_Prerenderer_close( prerenderer ); - Prndr_IsmPositionProvider_close( positionProvider ); - -#ifdef RAM_COUNTING_TOOL -#ifdef WMOPS - SRAM_size = -#endif - mem_count_summary( USE_DEFAULT ); -#endif -#ifdef WMOPS - print_wmops(); - /* print_mem_prerenderer( SRAM_size ); */ -#endif - - return 0; -} - -static int8_t getAmbisonicsFromNumChannels( uint32_t numChannels, - Prndr_Ambisonics *ambisonics ) -{ - switch ( numChannels ) - { - case 1: - *ambisonics = prndr_ambisonics_mono; - break; - case 4: - *ambisonics = prndr_ambisonics_foa; - break; - case 9: - *ambisonics = prndr_ambisonics_soa; - break; - case 16: - *ambisonics = prndr_ambisonics_toa; - break; - default: - fprintf( stderr, "Unable to infer ambisonics order from number of channels: %d\n", numChannels ); - return -1; - } - - return 0; -} - -static int8_t getSpeakerLayoutFromNumChannels( uint32_t numChannels, - Prndr_SpeakerLayout *layout ) -{ - switch ( numChannels ) - { - case 1: - *layout = prndr_speaker_layout_mono; - break; - case 2: - *layout = prndr_speaker_layout_stereo; - break; - case 6: - *layout = prndr_speaker_layout_5_1; - break; - case 8: - *layout = prndr_speaker_layout_7_1; - break; - case 10: - *layout = prndr_speaker_layout_5_1_4; - break; - case 12: - *layout = prndr_speaker_layout_7_1_4; - break; - default: - fprintf( stderr, "Unable to infer speaker layout from number of channels: %d\n", numChannels ); - return -1; - } - - return 0; -} - -static int8_t setInConfigFromSbaNumChannels( int16_t numChannels, Prndr_InputConfig *inConfig ) -{ - inConfig->numAmbisonicsBuses = 1; - inConfig->numAudioObjects = 0; - inConfig->numMultiChannelBuses = 0; - - inConfig->ambisonicsBuses[0].inputChannelIndex = 0; - return getAmbisonicsFromNumChannels( numChannels, &inConfig->ambisonicsBuses[0].ambisonicsConfig ); -} - -static int8_t setInConfigFromMcNumChannels( int16_t numChannels, Prndr_InputConfig *inConfig ) -{ - inConfig->numAmbisonicsBuses = 0; - inConfig->numAudioObjects = 0; - inConfig->numMultiChannelBuses = 1; - - inConfig->multiChannelBuses[0].inputChannelIndex = 0; - return getSpeakerLayoutFromNumChannels( numChannels, &inConfig->multiChannelBuses[0].speakerLayout ); -} - -static Prndr_Ambisonics ambisonicsOrderToEnum( int32_t order ) -{ - switch ( order ) - { - case 0: - return prndr_ambisonics_mono; - case 1: - return prndr_ambisonics_foa; - case 2: - return prndr_ambisonics_soa; - case 3: - return prndr_ambisonics_toa; - } - - return prndr_ambisonics_none; -} - -static Prndr_SpeakerLayout speakerLayoutCicpToEnum( int32_t cicpIndex ) -{ - switch ( cicpIndex ) - { - case 0: - return prndr_speaker_layout_custom; - case 1: - return prndr_speaker_layout_mono; - case 2: - return prndr_speaker_layout_stereo; - case 6: - return prndr_speaker_layout_5_1; - case 16: - return prndr_speaker_layout_5_1_4; - case 12: - return prndr_speaker_layout_7_1; - case 19: - return prndr_speaker_layout_7_1_4; - } - - return prndr_speaker_layout_none; -} - -static int8_t parseOutConfig( char *configString, Prndr_OutputConfig *outConfig ) -{ - char outType[5]; - int32_t num; - int8_t success; /* flag */ - - outType[4] = '\0'; - strncpy( outType, configString, 4 ); - - success = 1; - - if ( ( outType[0] == 's' || outType[0] == 'S' ) && - ( outType[1] == 'b' || outType[1] == 'B' ) && - ( outType[2] == 'a' || outType[2] == 'A' ) ) - { - num = strtol( &configString[3], NULL, 10 ); - - /* If num is 0, ensure it's because user requested it and not because of strtol error */ - if ( num == 0 && configString[3] != 0 && configString[4] != '\0' ) - { - success = 0; - } - else - { - outConfig->ambisonics = ambisonicsOrderToEnum( num ); - outConfig->outSetupCustom = NULL; - } - } - else if ( ( outType[0] == 'c' || outType[0] == 'C' ) && - ( outType[1] == 'i' || outType[1] == 'I' ) && - ( outType[2] == 'c' || outType[2] == 'C' ) && - ( outType[3] == 'p' || outType[3] == 'P' ) ) - { - num = strtol( &configString[4], NULL, 10 ); - outConfig->speakerLayout = speakerLayoutCicpToEnum( num ); - outConfig->outSetupCustom = NULL; - } - else - { - int16_t i, is_planar; - LsCustomFileReader *hLsCustomReader = NULL; - IVAS_CUSTOM_LS_DATA hLsCustomData; - - /* Default to interpreting as a custom loudspeaker layout file */ - outConfig->speakerLayout = speakerLayoutCicpToEnum( 0 ); - - CustomLsReader_open( configString, &hLsCustomReader ); - success = ( CustomLsFileReading( hLsCustomReader, &hLsCustomData ) == LS_CUSTOM_FILEREADER_NO_ERROR ); - - outConfig->outSetupCustom->num_spk = hLsCustomData.num_spk; - mvr2r( hLsCustomData.azimuth, outConfig->outSetupCustom->ls_azimuth, hLsCustomData.num_spk ); - mvr2r( hLsCustomData.elevation, outConfig->outSetupCustom->ls_elevation, hLsCustomData.num_spk ); - - /* Set planar flag */ - is_planar = 1; - for ( i = 0; i < hLsCustomData.num_spk; i++ ) - { - if ( is_planar && outConfig->outSetupCustom->ls_elevation[i] != 0.0f ) - { - is_planar = 0; - } - } - outConfig->outSetupCustom->is_planar_setup = is_planar; - - /* Loudspeaker LFE */ - outConfig->outSetupCustom->num_lfe = hLsCustomData.num_lfe; - mvs2s( hLsCustomData.lfe_idx, outConfig->outSetupCustom->lfe_idx, hLsCustomData.num_lfe ); - - CustomLsReader_close( &hLsCustomReader ); - } - - return success ? 0 : -1; -} - -static void printUsage( void ) -{ - printf( "\n" ); - printf( "Usage: ./IVAS_prerenderer [options]\n" ); - printf( "\n" ); - printf( "Valid options:\n" ); - printf( "%s %s Path to the input file (txt config file).\n", optInputFileShort, optInputFile ); - printf( "%s %s Path to the ambisonics audio file. Use this optionally instead of the config file for single-item input configurations.\n", optInputAmbisonicsShort, optInputAmbisonics ); - printf( "%s %s Path to the multichannel audio file. Use this optionally instead of the config file for single-item input configurations.\n", optInputMultichannelShort, optInputMultichannel ); - printf( "%s %s Path to the output file.\n", optOutputFileShort, optOutputFile ); - printf( "%s %s Path to the input audio (overrides audio path from txt config file or -if-sba and -if-mc options) - for debugging/testing purposes.\n", optInputAudioShort, optInputAudio ); - printf( "%s %s Size of processing frame (in ms). Default value is 20ms.\n", optFrameSizeShort, optFrameSize ); - printf( "%s %s Input sampling rate in kHz.\n", optSampleRateShort, optSampleRate ); - printf( "%s %s Output configuration. For ambisonics of order n, select SBAn (e.g. SBA1 for order 1).\n", optOutputConfigShort, optOutputConfig ); - printf( " For multichannel, select CICP followed by CICP index (e.g. CICP6, CICP19).\n" ); - printf( " Alternatively, can be a custom loudspeaker layout file.\n" ); - printf( "%s %s [flag] If set, prerenderer tries to render LFE into other channels in an optimal way when rendering to configs w/o LFE.\n", optNeverDropLfeShort, optNeverDropLfe ); -} - -static int8_t checkOpt( uint32_t argc, char **argv, uint32_t idx, uint32_t numFollowingTokens ) -{ - uint32_t i; - - if ( idx + numFollowingTokens >= argc ) - { - fprintf( stderr, "Error: option %s requires %d following tokens\n", argv[idx], numFollowingTokens ); - return 0; - } - - for ( i = 1; i < numFollowingTokens; ++i ) - { - if ( strlen( argv[idx + i] ) > PRERENDERER_MAX_CMDLN_ARG_LENGTH ) - { - fprintf( stderr, "Too many characters in token: %s\n", argv[idx + i] ); - return 0; - } - } - - return 1; -} - -static Prndr_CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) -{ - Prndr_CmdlnArgs parsedArgs; - int8_t success; /* flag */ - int32_t i; - uint32_t numFollowingTokens; - - success = 1; - - parsedArgs.inputFilePath[0] = '\0'; - parsedArgs.outputFilePath[0] = '\0'; - parsedArgs.frameSize = -1; - parsedArgs.sampleRate = -1; - parsedArgs.outConfig.ambisonics = prndr_ambisonics_none; - parsedArgs.outConfig.speakerLayout = prndr_speaker_layout_none; - parsedArgs.forcedInputFormat = prndr_forced_input_format_none; - parsedArgs.forcedAudioInputFile[0] = '\0'; - parsedArgs.neverDropLfe = false; - - i = 1; - while ( i < argc ) - { - numFollowingTokens = 1; /* Default number of expected tokens after an option */ - - if ( strcmp( argv[i], optInputFileShort ) == 0 || strcmp( argv[i], optInputFile ) == 0 ) - { - if ( ( success = checkOpt( argc, argv, i, numFollowingTokens ) ) == 1 ) - { - if ( strlen( parsedArgs.inputFilePath ) == 0 ) - { - strncpy( parsedArgs.inputFilePath, argv[i + 1], FILENAME_MAX ); - } - else - { - fprintf( stderr, "Duplicate option: %s (%s)\n", optInputFile, optInputFileShort ); - success = 0; - } - } - } - else if ( strcmp( argv[i], optInputAmbisonicsShort ) == 0 || strcmp( argv[i], optInputAmbisonics ) == 0 ) - { - if ( ( success = checkOpt( argc, argv, i, numFollowingTokens ) ) == 1 ) - { - if ( strlen( parsedArgs.inputFilePath ) == 0 ) - { - strncpy( parsedArgs.inputFilePath, argv[i + 1], FILENAME_MAX ); - parsedArgs.forcedInputFormat = prndr_forced_input_format_sba; - } - else - { - fprintf( stderr, "Duplicate option: %s (%s)\n", optInputAmbisonics, optInputAmbisonicsShort ); - success = 0; - } - } - } - else if ( strcmp( argv[i], optInputMultichannelShort ) == 0 || strcmp( argv[i], optInputMultichannel ) == 0 ) - { - if ( ( success = checkOpt( argc, argv, i, numFollowingTokens ) ) == 1 ) - { - if ( strlen( parsedArgs.inputFilePath ) == 0 ) - { - strncpy( parsedArgs.inputFilePath, argv[i + 1], FILENAME_MAX ); - parsedArgs.forcedInputFormat = prndr_forced_input_format_mc; - } - else - { - fprintf( stderr, "Duplicate option: %s (%s)\n", optInputMultichannel, optInputMultichannelShort ); - success = 0; - } - } - } - else if ( strcmp( argv[i], optOutputFileShort ) == 0 || strcmp( argv[i], optOutputFile ) == 0 ) - { - if ( ( success = checkOpt( argc, argv, i, numFollowingTokens ) ) == 1 ) - { - if ( strlen( parsedArgs.outputFilePath ) == 0 ) - { - strncpy( parsedArgs.outputFilePath, argv[i + 1], FILENAME_MAX ); - } - else - { - fprintf( stderr, "Duplicate option: %s (%s)\n", optOutputFile, optOutputFileShort ); - success = 0; - } - } - } - else if ( strcmp( argv[i], optInputAudioShort ) == 0 || strcmp( argv[i], optInputAudio ) == 0 ) - { - if ( ( success = checkOpt( argc, argv, i, numFollowingTokens ) ) == 1 ) - { - if ( strlen( parsedArgs.forcedAudioInputFile ) == 0 ) - { - strncpy( parsedArgs.forcedAudioInputFile, argv[i + 1], FILENAME_MAX ); - } - else - { - fprintf( stderr, "Duplicate option: %s (%s)\n", optInputAudio, optInputAudioShort ); - success = 0; - } - } - } - else if ( strcmp( argv[i], optFrameSizeShort ) == 0 || strcmp( argv[i], optFrameSize ) == 0 ) - { - if ( ( success = checkOpt( argc, argv, i, numFollowingTokens ) ) == 1 ) - { - if ( parsedArgs.frameSize <= 0 ) - { - /* Save value in ms for now - later converted to samples once sample rate is known */ - parsedArgs.frameSize = strtol( argv[i + 1], NULL, 10 ); - } - else - { - fprintf( stderr, "Duplicate option: %s (%s)\n", optFrameSize, optFrameSizeShort ); - success = 0; - } - } - } - else if ( strcmp( argv[i], optOutputConfigShort ) == 0 || strcmp( argv[i], optOutputConfig ) == 0 ) - { - if ( ( success = checkOpt( argc, argv, i, numFollowingTokens ) ) == 1 ) - { - if ( parsedArgs.outConfig.ambisonics == prndr_ambisonics_none && parsedArgs.outConfig.speakerLayout == prndr_speaker_layout_none ) - { - if ( parseOutConfig( argv[i + 1], &parsedArgs.outConfig ) != 0 ) - { - fprintf( stderr, "Unknown output or bad config: %s\n", argv[i + 1] ); - success = 0; - } - } - else - { - fprintf( stderr, "Duplicate option: %s (%s)\n", optOutputConfig, optOutputConfigShort ); - success = 0; - } - } - } - else if ( strcmp( argv[i], optSampleRateShort ) == 0 || strcmp( argv[i], optSampleRate ) == 0 ) - { - if ( ( success = checkOpt( argc, argv, i, numFollowingTokens ) ) == 1 ) - { - if ( parsedArgs.sampleRate <= 0 ) - { - parsedArgs.sampleRate = ( int32_t )( strtof( argv[i + 1], NULL ) * 1000 ); - } - else - { - fprintf( stderr, "Duplicate option: %s (%s)\n", optSampleRate, optSampleRateShort ); - success = 0; - } - } - } - else if ( strcmp( argv[i], optNeverDropLfeShort ) == 0 || strcmp( argv[i], optNeverDropLfe ) == 0 ) - { - numFollowingTokens = 0; - - if ( ( success = checkOpt( argc, argv, i, numFollowingTokens ) ) == 1 ) - { - parsedArgs.neverDropLfe = true; - } - } - else - { - fprintf( stderr, "Unknown option: %s\n", argv[i] ); - success = 0; - } - - i += 1 + numFollowingTokens; - } - - /* Check if any of required args is missing */ - if ( strlen( parsedArgs.inputFilePath ) == 0 ) - { - fprintf( stderr, "Required option missing or invalid value: %s (%s) or %s (%s) or %s (%s)\n", - optInputFile, - optInputFileShort, - optInputAmbisonics, - optInputAmbisonicsShort, - optInputMultichannel, - optInputMultichannelShort ); - success = 0; - } - if ( strlen( parsedArgs.outputFilePath ) == 0 ) - { - fprintf( stderr, "Required option missing or invalid value: %s (%s)\n", optOutputFile, optOutputFileShort ); - success = 0; - } - if ( parsedArgs.outConfig.ambisonics == prndr_ambisonics_none && parsedArgs.outConfig.speakerLayout == prndr_speaker_layout_none ) - { - fprintf( stderr, "Required option missing or invalid value: %s (%s)\n", optOutputConfig, optOutputConfigShort ); - success = 0; - } - if ( parsedArgs.sampleRate <= 0 ) - { - fprintf( stderr, "Required option missing or invalid value: %s (%s)\n", optSampleRate, optSampleRateShort ); - success = 0; - } - - /* Set default values if not specified */ - if ( parsedArgs.frameSize <= 0 ) - { - parsedArgs.frameSize = parsedArgs.sampleRate / 50; - } - else - { - /* Convert from ms to samples */ - parsedArgs.frameSize = parsedArgs.sampleRate * parsedArgs.frameSize / 1000; - } - - if ( !success ) - { - printUsage(); - exit( -1 ); - } - - return parsedArgs; -} - - -Prndr_IsmPositionProvider *Prndr_IsmPositionProvider_open( void ) -{ - Prndr_IsmPositionProvider *ipp; - uint32_t i; - - ipp = (Prndr_IsmPositionProvider *) count_malloc( sizeof( Prndr_IsmPositionProvider ) ); - ipp->frameCounter = 0; - ipp->numObjects = 0; - - for ( i = 0; i < PRERENDERER_MAX_ISM_INPUTS; ++i ) - { - ipp->ismReaders[i] = NULL; - ipp->positions[i] = NULL; - ipp->positionDurations[i] = NULL; - ipp->currentPositionIdxs[i] = 0; - ipp->durationCounters[i] = 0; - } - - return ipp; -} - -void getMetadataFromFileReader( - IsmFileReader *ismReader, - Prndr_AudioObjectMetadataBuffer *objectMetadataBuffer, - uint32_t objIdx ) -{ - IVAS_ISM_METADATA ismMetadata; - ivas_error error; - - if ( ( error = IsmFileReader_readNextFrame( ismReader, &ismMetadata ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nError (%s) while reading ism metadata from: %s\n\n", ivas_error_to_string( error ), IsmFileReader_getFilePath( ismReader ) ); - exit( -1 ); - } - - objectMetadataBuffer->positions[objIdx].azimuth = ismMetadata.azimuth; - objectMetadataBuffer->positions[objIdx].elevation = ismMetadata.elevation; -} - -void readFromShorthandMetadata( Prndr_IsmPositionProvider *positionProvider, - Prndr_AudioObjectMetadataBuffer *objectMetadataBuffer, - uint32_t objIdx ) -{ - uint32_t preUpdatePositionIdx; - uint32_t postUpdatePositionIdx; - - preUpdatePositionIdx = positionProvider->currentPositionIdxs[objIdx]; - - if ( positionProvider->durationCounters[objIdx] == positionProvider->positionDurations[objIdx][preUpdatePositionIdx] ) - { - positionProvider->durationCounters[objIdx] = 0; - positionProvider->currentPositionIdxs[objIdx] = ( positionProvider->currentPositionIdxs[objIdx] + 1 ) % positionProvider->numPositions[objIdx]; - } - - ++positionProvider->durationCounters[objIdx]; - - postUpdatePositionIdx = positionProvider->currentPositionIdxs[objIdx]; - - objectMetadataBuffer->positions[objIdx] = positionProvider->positions[objIdx][postUpdatePositionIdx]; -} - -void Prndr_IsmPositionProvider_getNextFrame( - Prndr_IsmPositionProvider *positionProvider, - Prndr_AudioObjectMetadataBuffer *objectMetadataBuffer ) -{ - uint32_t objIdx; - int16_t aziShifted; - - objectMetadataBuffer->numObjects = positionProvider->numObjects; - - for ( objIdx = 0; objIdx < positionProvider->numObjects; ++objIdx ) - { - if ( positionProvider->ismReaders[objIdx] != NULL ) - { - getMetadataFromFileReader( positionProvider->ismReaders[objIdx], objectMetadataBuffer, objIdx ); - } - else - { - readFromShorthandMetadata( positionProvider, objectMetadataBuffer, objIdx ); - } - - /* Wrap azimuth to lie within (-180, 180] range */ - aziShifted = objectMetadataBuffer->positions[objIdx].azimuth + 180; - objectMetadataBuffer->positions[objIdx].azimuth = aziShifted <= 0 || aziShifted % 360 == 0 ? ( aziShifted % 360 ) + 180 : ( aziShifted % 360 ) - 180; - - /* Clamp elevation to lie within [-90, 90] range (can't be wrapped easily) */ - objectMetadataBuffer->positions[objIdx].elevation = min( max( objectMetadataBuffer->positions[objIdx].elevation, -90 ), 90 ); - } - - ++positionProvider->frameCounter; -} - -void Prndr_IsmPositionProvider_close( Prndr_IsmPositionProvider *positionProvider ) -{ - uint32_t i; - - if ( positionProvider == NULL ) - { - assert( !"Can't close Prndr_IsmPositionProvider - pointer is NULL" ); - } - - for ( i = 0; i < PRERENDERER_MAX_ISM_INPUTS; ++i ) - { - if ( positionProvider->ismReaders[i] != NULL ) - { - IsmFileReader_close( &positionProvider->ismReaders[i] ); - } - - if ( positionProvider->positions[i] != NULL ) - { - count_free( positionProvider->positions[i] ); - } - - if ( positionProvider->positionDurations[i] != NULL ) - { - count_free( positionProvider->positionDurations[i] ); - } - } - - count_free( positionProvider ); -} - -static void splitConfigFile( const char *mdfFilePath, - char *metadataString, - uint32_t *metadataStringLength, - char *wavFileName, - uint32_t *wavFileNameLength ) -{ - FILE *file; - uint32_t bufferlength; - char wavLine[FILENAME_MAX]; - uint32_t currentPositionIdxs; - uint32_t mdlength; - - memset( metadataString, 0, *metadataStringLength ); - memset( wavFileName, 0, (int16_t) *wavFileNameLength ); - - file = fopen( mdfFilePath, "rb" ); - if ( !file ) - { - fprintf( stderr, "Couldn't open metadata file %s\n", mdfFilePath ); - exit( -1 ); - } - - fseek( file, 0, SEEK_END ); - bufferlength = ftell( file ); - fseek( file, 0, SEEK_SET ); - - if ( fgets( wavLine, (int) *wavFileNameLength, file ) == NULL ) - { - fprintf( stderr, "Error reading metadata\n" ); - exit( -1 ); - } - currentPositionIdxs = ftell( file ); - if ( *wavFileNameLength < currentPositionIdxs ) - { - assert( !"Couldn't read wavFileName, string buffer too small" ); - } - if ( !sscanf( wavLine, "%s", wavFileName ) ) - { - fprintf( stderr, "Error reading metadata\n" ); - exit( -1 ); - } - *wavFileNameLength = strlen( wavFileName ); - - mdlength = bufferlength - currentPositionIdxs; - /* "+1" for null termination */ - if ( *metadataStringLength + 1 < mdlength ) - { - assert( !"Couldn't read metadata string, string buffer too small" ); - } - - fread( metadataString, 1, mdlength, file ); - metadataString[mdlength] = '\0'; - *metadataStringLength = mdlength + 1; - - fclose( file ); -} - -/* r: pointer to character following last found delimiter */ -static char *readNextMetadataChunkFrom( char *start_char, char *line, const char *delimiter ) -{ - char *token; - - /* start_char can be NULL - it's used to continue parsing with strtok */ - assert( line != NULL && delimiter != NULL && "unexpected NULL ptr given to readNextMetadataChunkFrom()" ); - - token = strtok( start_char, delimiter ); - - /* End of string reached */ - if ( token == NULL ) - { - /* Clear `line` from previous contents and return NULL */ - line[0] = '\0'; - return NULL; - } - - strcpy( line, token ); - - return token + strlen( token ) + 1; -} - -/* r: pointer to character following last found delimiter */ -static char *readNextMetadataChunk( char *line, const char *delimiter ) -{ - return readNextMetadataChunkFrom( NULL, line, delimiter ); -} - -static void parseUint8( char *line, uint8_t *ret ) -{ - char *ptr; - ptr = NULL; - - *ret = strtol( line, &ptr, 10 ); - if ( *ptr != '\0' ) - { - fprintf( stderr, "Cannot parse string \"%s\" as an integer value\n", line ); - exit( -1 ); - } -} - -static int8_t parseUint32( char *line, uint32_t *ret ) -{ - char *ptr; - ptr = " "; - - *ret = strtol( line, &ptr, 10 ); - if ( *ptr != '\0' ) - { - return -1; - } - - return 0; -} - -static void parseOptionalInputValues( - char *line, - float *gain_dB ) -{ - char *parse_pos; - char *key; - char *value; - char *endptr; - - endptr = NULL; - - /* Set default values, in case some values are not specified */ - *gain_dB = 0.f; - - /* Save parsing position - will have to be passed to strtok to resume parsing after using strtok with non-NULL value below */ - parse_pos = readNextMetadataChunk( line, "\n" ); - - /* Look for optional metadata until end of string or next input identifier is found */ - while ( parse_pos != NULL && strcmp( line, "MC" ) != 0 && strcmp( line, "SBA" ) != 0 && strcmp( line, "ISM" ) != 0 ) - { - key = strtok( line, ":" ); - value = strtok( NULL, "\n" ); - - if ( strcmp( key, "gain_dB" ) == 0 ) - { - *gain_dB = (float) strtod( value, &endptr ); - - if ( *endptr != '\0' ) - { - fprintf( stderr, "Cannot parse string string \"%s\" as a float value\n", value ); - exit( -1 ); - } - } - else - { - fprintf( stderr, "Unsupported optional key: %s\n", key ); - exit( -1 ); - } - - parse_pos = readNextMetadataChunkFrom( parse_pos, line, "\n" ); - } -} - -static void parseObjectPosition( char *line, - Prndr_AudioObjectPosition *position, - uint16_t *positionDuration ) -{ - char *endptr; - - readNextMetadataChunk( line, "," ); - *positionDuration = strtol( line, &endptr, 10 ); - - if ( *endptr != '\0' ) - { - fprintf( stderr, "Error reading metadata\n" ); - exit( -1 ); - } - - readNextMetadataChunk( line, "," ); - position->azimuth = strtol( line, &endptr, 10 ); - - if ( *endptr != '\0' ) - { - fprintf( stderr, "Error reading metadata\n" ); - exit( -1 ); - } - - readNextMetadataChunk( line, "\n" ); - position->elevation = strtol( line, &endptr, 10 ); - if ( *endptr != '\0' ) - { - fprintf( stderr, "Error reading metadata\n" ); - exit( -1 ); - } -} - -static void parseIsm( - char *line, - char *inDir, - Prndr_InputConfig *inConfig, - Prndr_IsmPositionProvider *positionProvider, - int32_t idx ) -{ - uint32_t numberOfObjectPositionsToRead; - uint32_t i; - - readNextMetadataChunk( line, "\n" ); - parseUint8( line, &inConfig->audioObjects[idx].inputChannelIndex ); - --inConfig->audioObjects[idx].inputChannelIndex; /* Convert from 1-indexing */ - - readNextMetadataChunk( line, "\n" ); - - /* Try to interpret line as number of positions to read */ - if ( parseUint32( line, &numberOfObjectPositionsToRead ) == 0 ) - { - positionProvider->numPositions[idx] = numberOfObjectPositionsToRead; - positionProvider->positions[idx] = count_calloc( numberOfObjectPositionsToRead, sizeof( Prndr_AudioObjectPosition ) ); - positionProvider->positionDurations[idx] = count_calloc( numberOfObjectPositionsToRead, sizeof( uint16_t ) ); - - for ( i = 0; i < numberOfObjectPositionsToRead; ++i ) - { - parseObjectPosition( line, &positionProvider->positions[idx][i], &positionProvider->positionDurations[idx][i] ); - } - } - else /* If not a number, it is a relative path from main metadata file to a metadata file */ - { - char fullpath[FILENAME_MAX]; - *fullpath = '\0'; - strncat( fullpath, inDir, strlen( inDir ) ); - strncat( fullpath, line, sizeof( fullpath ) - strlen( fullpath ) - 1 ); - if ( ( positionProvider->ismReaders[idx] = IsmFileReader_open( fullpath ) ) == NULL ) - { - fprintf( stderr, "Error: ISM input metadata file %s could not be opened\n", line ); - exit( -1 ); - } - } - - /* Read optional values */ - parseOptionalInputValues( line, &inConfig->audioObjects[idx].gain_dB ); -} - -static void parseSba( char *line, - Prndr_InputConfig *inConfig, - int32_t idx ) -{ - uint8_t ambiOrder; - - readNextMetadataChunk( line, "\n" ); - parseUint8( line, &inConfig->ambisonicsBuses[idx].inputChannelIndex ); - --inConfig->ambisonicsBuses[idx].inputChannelIndex; /* Convert from 1-indexing */ - - readNextMetadataChunk( line, "\n" ); - parseUint8( line, &ambiOrder ); - inConfig->ambisonicsBuses[idx].ambisonicsConfig = ambisonicsOrderToEnum( ambiOrder ); - - /* Read optional values */ - parseOptionalInputValues( line, &inConfig->ambisonicsBuses[idx].gain_dB ); -} - -static void parseMc( char *line, - Prndr_InputConfig *inConfig, - int32_t idx ) -{ - uint8_t cicpIndex; - - readNextMetadataChunk( line, "\n" ); - parseUint8( line, &inConfig->multiChannelBuses[idx].inputChannelIndex ); - --inConfig->multiChannelBuses[idx].inputChannelIndex; /* Convert from 1-indexing */ - - readNextMetadataChunk( line, "\n" ); - parseUint8( line, &cicpIndex ); - inConfig->multiChannelBuses[idx].speakerLayout = speakerLayoutCicpToEnum( cicpIndex ); - - /* Read optional values */ - parseOptionalInputValues( line, &inConfig->multiChannelBuses[idx].gain_dB ); -} - -static void parseMetadata( - char *metadataString, - char *inDir, - Prndr_InputConfig *inConfig, - Prndr_IsmPositionProvider *positionProvider ) -{ - char line[PRERENDERER_MAX_METADATA_LINE_LENGTH]; - char *delimiter; - char *token; - uint8_t totalNumberOfAudioObjects; - uint8_t counterChannelAudioObjects; - uint8_t counterAmbisonicsAudioObjects; - uint8_t counterMonoAudioObjects; - uint8_t num_parsed_inputs; - - delimiter = "\n"; - - token = strtok( metadataString, delimiter ); - if ( token == NULL ) - { - fprintf( stderr, "Unexpected metadata format\n" ); - exit( -1 ); - } - if ( !sscanf( token, "%s", line ) ) - { - fprintf( stderr, "Unexpected metadata format\n" ); - exit( -1 ); - } - - parseUint8( line, &totalNumberOfAudioObjects ); - if ( totalNumberOfAudioObjects <= 0 ) - { - fprintf( stderr, "Invalid metadata: number of inputs should be > 0\n" ); - exit( -1 ); - } - - num_parsed_inputs = 0; - counterChannelAudioObjects = 0; - counterAmbisonicsAudioObjects = 0; - counterMonoAudioObjects = 0; - - readNextMetadataChunk( line, delimiter ); - - while ( num_parsed_inputs < totalNumberOfAudioObjects ) - { - /* `line` will already contain the identifier ("MC", "SBA" or "ISM") after previous iteration */ - if ( strcmp( line, "MC" ) == 0 ) - { - ++counterChannelAudioObjects; - if ( counterChannelAudioObjects > PRERENDERER_MAX_MC_INPUTS ) - { - fprintf( stderr, "Metadata exceeds the supported number of MC inputs\n" ); - exit( -1 ); - } - parseMc( line, inConfig, counterChannelAudioObjects - 1 ); - } - else if ( strcmp( line, "SBA" ) == 0 ) - { - ++counterAmbisonicsAudioObjects; - if ( counterAmbisonicsAudioObjects > PRERENDERER_MAX_SBA_INPUTS ) - { - fprintf( stderr, "Metadata exceeds the supported number of SBA inputs\n" ); - exit( -1 ); - } - parseSba( line, inConfig, counterAmbisonicsAudioObjects - 1 ); - } - else if ( strcmp( line, "ISM" ) == 0 ) - { - ++counterMonoAudioObjects; - if ( counterMonoAudioObjects > PRERENDERER_MAX_ISM_INPUTS ) - { - fprintf( stderr, "Metadata exceeds the supported number of ISM inputs\n" ); - exit( -1 ); - } - parseIsm( line, inDir, inConfig, positionProvider, counterMonoAudioObjects - 1 ); - } - else if ( line[0] == '\0' ) - { - fprintf( stderr, "Metadata string too short - expected %d inputs, found %d.\n", totalNumberOfAudioObjects, num_parsed_inputs ); - exit( -1 ); - } - else - { - fprintf( stderr, "Unexpected metadata identifier\n" ); - exit( -1 ); - } - - ++num_parsed_inputs; - } - - inConfig->numAudioObjects = counterMonoAudioObjects; - inConfig->numAmbisonicsBuses = counterAmbisonicsAudioObjects; - inConfig->numMultiChannelBuses = counterChannelAudioObjects; - positionProvider->numObjects = counterMonoAudioObjects; - - /* check for trailing text */ - token = strtok( NULL, delimiter ); - if ( token != NULL && sscanf( token, "%s", line ) ) - { - fprintf( stderr, "Trailing text in metadata file\n" ); - exit( -1 ); - } -} - -void parseConfigFile( char *path, char *audioFilePath, Prndr_InputConfig *inConfig, Prndr_IsmPositionProvider *positionProvider ) -{ - uint32_t inAudioFilePathLen; - char inAudioFilePath[FILENAME_MAX]; - uint32_t mtdStrLen; - char mtdStr[PRERENDERER_MAX_METADATA_LENGTH]; - char inDir[FILENAME_MAX]; - char *lastSlash = NULL; - - inAudioFilePathLen = FILENAME_MAX; - mtdStrLen = PRERENDERER_MAX_METADATA_LENGTH; - splitConfigFile( path, - mtdStr, - &mtdStrLen, - inAudioFilePath, - &inAudioFilePathLen ); - - remove_cr( mtdStr ); - convert_backslash( inAudioFilePath ); - - /* Trim config file path to get path to the dir containing it */ - lastSlash = strrchr( path, SEP_FOLDER ); - *inDir = '\0'; - if ( lastSlash != NULL ) - { - strncat( inDir, path, ( lastSlash - path + 1 ) ); - } - - /* Append audio file path (relative to config file location) - * to config file location path to get full absolute path */ - strcpy( audioFilePath, inDir ); - strncat( audioFilePath, inAudioFilePath, inAudioFilePathLen ); - - parseMetadata( mtdStr, inDir, inConfig, positionProvider ); -} - -static void convert_backslash( char *str ) -{ - int i, len; - - /* check that all backslashes are correct on the given platform */ - len = strlen( str ); - - for ( i = 0; i < len; i++ ) - { -#ifdef _WIN32 - if ( str[i] == '/' ) - { - str[i] = '\\'; - } -#else - if ( str[i] == '\\' ) - { - str[i] = '/'; - } -#endif - } - - return; -} - -static void remove_cr( char *str ) -{ - char *pos; - - /* remove all \r characters from the string */ - pos = strchr( str, '\r' ); - while ( pos != NULL ) - { - strcpy( pos, pos + 1 ); - pos = strchr( pos, '\r' ); - } - - return; -} diff --git a/scripts/pyaudio3dtools/EFAP.py b/scripts/pyaudio3dtools/EFAP.py index 73b8df6ee0..171cbb4c28 100644 --- a/scripts/pyaudio3dtools/EFAP.py +++ b/scripts/pyaudio3dtools/EFAP.py @@ -28,6 +28,7 @@ import argparse import os +from enum import Enum from itertools import combinations from typing import Optional, Tuple, Union @@ -75,6 +76,12 @@ def wrap_angles( return azi, ele +class EfapDmxType(Enum): + NONE = 0 + AMPLITUDE = 1 + INTENSITY = 2 + + class EfapVertex: """ Vertex data structure for EFAP @@ -89,9 +96,17 @@ class EfapVertex: Elevation of vertex is_ghost : bool Whether the vertex is a ghost, default is False + dmx_type : EfapDmxType + Downmix type for ghost vertices """ - def __init__(self, azi: float, ele: float, is_ghost: Optional[bool] = False): + def __init__( + self, + azi: float, + ele: float, + is_ghost: Optional[bool] = False, + dmx_type: Optional[EfapDmxType] = EfapDmxType.INTENSITY, + ): self.azi, self.ele = wrap_angles(azi, ele) self.pos = np.array( [ @@ -108,6 +123,7 @@ class EfapVertex: ) # vertices on the median plane have lowest index self.is_ghost = is_ghost + self.dmx_type = dmx_type def __str__(self): str_ = f"a{self.azi}e{self.ele}" @@ -132,13 +148,15 @@ class EFAP: Azimuth positions of the loudspeaker array elevations : npndarray Elevation postions of the loudspeaker array + intensity_panning : bool + Whether intensity panning is enabled or not Examples -------- >>> from EFAP import EFAP - >>> panner = EFAP([30, -30, 0, 110, -110], [0, 0, 0, 0, 0]]) - >>> panner.pan(15, 45, intensity_panning=False) + >>> panner = EFAP([30, -30, 0, 110, -110], [0, 0, 0, 0, 0], False) + >>> panner.pan(15, 45) array([0.66742381, 0.19069252, 0.66742381, 0.19069252, 0.19069252]) """ @@ -152,7 +170,10 @@ class EFAP: _EFAP_THRESH_TRI = 1e-10 # tolerance for a point to be inside a triangle def __init__( - self, azimuths: Union[list, np.ndarray], elevations: Union[list, np.ndarray] + self, + azimuths: Union[list, np.ndarray], + elevations: Union[list, np.ndarray], + intensity_panning: Optional[bool] = False, ): # validation azimuths = np.array(azimuths) @@ -164,6 +185,9 @@ class EFAP: if azimuths.shape != elevations.shape: raise ValueError("Mismatch between loudspeaker azimuths and elevations") + # set EFIP flag + self.intensity_panning = intensity_panning + # initialise vertices and add ghost loudspeakers if needed self.verts = np.array( [EfapVertex(azi, ele) for azi, ele in zip(azimuths, elevations)] @@ -198,11 +222,28 @@ class EFAP: """ ele = [v.ele for v in self.verts] + dmx_type = EfapDmxType.INTENSITY + # add ghost loudspeakers at the poles if necessary if max(ele) < self._EFAP_POLAR_ELE: - self.verts = np.append(self.verts, EfapVertex(0, 90, True)) + + if self.intensity_panning: + if max(ele) > self._EFAP_THRESH_MID_LAYER: + dmx_type = EfapDmxType.NONE + else: + dmx_type = EfapDmxType.AMPLITUDE + + self.verts = np.append(self.verts, EfapVertex(0, 90, True, dmx_type)) + if min(ele) > -self._EFAP_POLAR_ELE: - self.verts = np.append(self.verts, EfapVertex(0, -90, True)) + + if self.intensity_panning: + if min(ele) < -self._EFAP_THRESH_MID_LAYER: + dmx_type = EfapDmxType.NONE + else: + dmx_type = EfapDmxType.AMPLITUDE + + self.verts = np.append(self.verts, EfapVertex(0, -90, True, dmx_type)) # check for large gaps in the middle horizontal layer mid_spkrs = [ @@ -390,10 +431,21 @@ class EFAP: vec = M @ vec M2[:, i] = vec - # energy distribution for real LS and amplitude distribution for ghost LS self.dmx_mat = M2[:-n_ghost, :] + + # amplitude downmix for real loudspeakers self.dmx_mat[:, :-n_ghost] = np.sqrt(self.dmx_mat[:, :-n_ghost]) + # distribute ghosts according to downmix type + for i, v in enumerate(self.verts): + if v.is_ghost: + if v.dmx_type == EfapDmxType.NONE: + self.dmx_mat[:, i] = 0 + elif v.dmx_type == EfapDmxType.AMPLITUDE: + pass + else: + self.dmx_mat[:, i] = np.sqrt(self.dmx_mat[:, i]) + def _tri2poly(self) -> None: """ Merge hull triangles into polygons if they are coplanar @@ -711,9 +763,7 @@ class EFAP: return surface - def _compute_gains_point( - self, azimuth: float, elevation: float, intensity_panning: bool = False - ) -> np.ndarray: + def _compute_gains_point(self, azimuth: float, elevation: float) -> np.ndarray: """ Compute gains for the requested panning position @@ -724,8 +774,6 @@ class EFAP: Azimuth of requested panning position elevation : float Elevation of requested panning position - intensity_panning : bool - Flag whether to use intensity panning (Default is False == amplitude panning) Returns ------- @@ -757,7 +805,7 @@ class EFAP: gains = gains @ self.dmx_mat.T gains = gains / np.linalg.norm(gains) - if intensity_panning: + if self.intensity_panning: gains = np.sqrt(gains / np.sum(gains)) return gains @@ -788,11 +836,11 @@ class EFAP: azimuths = np.array(azimuths) elevations = np.array(elevations) if azimuths.size == 1 and elevations.size == 1: - return self._compute_gains_point(azimuths, elevations, intensity_panning) + return self._compute_gains_point(azimuths, elevations) elif np.squeeze(azimuths).ndim == 1 and np.squeeze(elevations).ndim == 1: gains = [] for a, e in zip(azimuths, elevations): - gains.append(self._compute_gains_point(a, e, intensity_panning)) + gains.append(self._compute_gains_point(a, e)) return np.vstack(gains) else: raise ValueError( @@ -816,8 +864,8 @@ def main(args): speaker_positions = np.loadtxt( os.path.abspath(args.input), delimiter=",", max_rows=2 ) - panner = EFAP(speaker_positions[0, :], speaker_positions[1, :]) - print(panner.pan(args.azimuth, args.elevation, args.efip)) + panner = EFAP(speaker_positions[0, :], speaker_positions[1, :], args.efip) + print(panner.pan(args.azimuth, args.elevation)) if __name__ == "__main__": diff --git a/scripts/pyaudio3dtools/audio3dtools.py b/scripts/pyaudio3dtools/audio3dtools.py index 99ae71351b..c2b1ff46d1 100644 --- a/scripts/pyaudio3dtools/audio3dtools.py +++ b/scripts/pyaudio3dtools/audio3dtools.py @@ -84,7 +84,7 @@ def main(): "--outformat", type=str, metavar="OUTFORMAT", - help="Output format (default = %(default)s, same as input format)", + help="Output format (default = %(default)s, same as input format). Can be a custom loudspeaker layout file.", default=None, ) parser.add_argument( @@ -116,13 +116,6 @@ def main(): help="list of input metadata files (only relevant for ISM and MASA input)", default=None, ) - parser.add_argument( - "-y", - "--layoutfile", - help="File describing a custom LS layout", - type=str, - default=None, - ) parser.add_argument( "-fc", "--outfc", @@ -249,7 +242,6 @@ def main(): in_fs=args.infs, in_nchans=args.inchan, in_meta_files=args.metadata, - in_ls_layout_file=args.layoutfile, out_format=args.outformat, out_fs=args.outfs, out_fc=args.outfc, @@ -277,7 +269,6 @@ def main(): in_format=args.outformat, in_fs=args.outfs, in_meta_files=args.metadata, - in_ls_layout_file=args.layoutfile, out_format="BINAURAL", output_loudness=args.normalize, loudness_tool=args.loudness_tool, diff --git a/scripts/pyaudio3dtools/audioarray.py b/scripts/pyaudio3dtools/audioarray.py index 16569e1ec7..dd2c5fca5f 100644 --- a/scripts/pyaudio3dtools/audioarray.py +++ b/scripts/pyaudio3dtools/audioarray.py @@ -286,7 +286,7 @@ def compare(ref: np.ndarray, test: np.ndarray, fs: int) -> dict: def getdelay(x: np.ndarray, y: np.ndarray) -> int: - """Get the delay between two audios signals + """Get the delay between two audio signals Parameters ---------- diff --git a/scripts/pyaudio3dtools/audiofile.py b/scripts/pyaudio3dtools/audiofile.py old mode 100755 new mode 100644 index 46bb452082..32d8460e1d --- a/scripts/pyaudio3dtools/audiofile.py +++ b/scripts/pyaudio3dtools/audiofile.py @@ -489,7 +489,6 @@ def loudnessinfo( in_sig: np.ndarray, in_fs: Optional[int] = 48000, in_format: Optional[str] = "MONO", - in_ls_layout_file: Optional[str] = None, output_loudness: Optional[int] = -26, loudness_tool: Optional[str] = "bs1770demo", use_rms: Optional[bool] = False, @@ -524,13 +523,10 @@ def loudnessinfo( else: null_file = "/dev/null" - # check for binary if shutil.which(loudness_tool) is None: raise FileNotFoundError(f"The binary {loudness_tool} was not found in path!") - in_spfmt = spatialaudioformat.Format( - in_format=in_format, ls_layout_file=in_ls_layout_file - ) + in_spfmt = spatialaudioformat.Format(in_format=in_format) if not (in_spfmt.isheadphones or in_spfmt.isloudspeaker or in_spfmt.ambi_order > 1): raise NotImplementedError( @@ -543,7 +539,7 @@ def loudnessinfo( ) with TemporaryDirectory() as tmp_dir: - tmp_file = os.path.join(tmp_dir, "tmp.pcm") + tmp_file = os.path.join(tmp_dir, "tmp_loudness.pcm") if "bs1770demo" in loudness_tool: """ diff --git a/scripts/pyaudio3dtools/binauralrenderer.py b/scripts/pyaudio3dtools/binauralrenderer.py index ca56618a01..52fc800242 100644 --- a/scripts/pyaudio3dtools/binauralrenderer.py +++ b/scripts/pyaudio3dtools/binauralrenderer.py @@ -39,12 +39,10 @@ import numpy as np import scipy.interpolate as interp import scipy.io as sio import scipy.signal as sig +from pyaudio3dtools.rotation import rotateHOA, rotateISM, rotateMC from pyaudio3dtools import audioarray, spatialaudioformat from pyaudio3dtools.constants import * -from pyaudio3dtools.rotateHOA import rotateHOA -from pyaudio3dtools.rotateISM import rotateISM -from pyaudio3dtools.rotateMC import rotateMC main_logger = logging.getLogger("__main__") logger = main_logger.getChild(__name__) @@ -256,7 +254,7 @@ def binaural_fftconv_framewise( SourcePosition: np.ndarray, azi: np.ndarray = None, ele: np.ndarray = None, - frame_len: int = (IVAS_FRAME_LEN_MS // 4) * 48000, + frame_len: int = (IVAS_FRAME_LEN_MS // 4) * 48, interp_method="linear", verbose=False, ) -> np.ndarray: @@ -290,7 +288,7 @@ def binaural_fftconv_framewise( """ sig_len = x.shape[0] - frame_len = (IVAS_FRAME_LEN_MS // 4) * 48000 + frame_len = (IVAS_FRAME_LEN_MS // 4) * 48 N_frames = int(sig_len / frame_len) N_HRIR_taps = IR.shape[2] @@ -396,8 +394,8 @@ def binaural_fftconv_framewise( y = np.zeros([sig_len + T_rev, 2]) y0 = np.zeros([N_rev, sig_len + T_rev, 2]) - b = np.linspace(0.0, 1.0, frame_len, endpoint=False) - a = 1.0 - b + fade_in = np.linspace(0.0, 1.0, frame_len, endpoint=False) + fade_out = 1.0 - fade_in for i_ear in [0, 1]: @@ -419,8 +417,8 @@ def binaural_fftconv_framewise( i2 = (i_frame + 1) * frame_len i2p = i1 + T_rev - a = np.linspace(0.0, 1.0, T_rev, endpoint=False) - b = 1.0 - a + fade_out = np.linspace(0.0, 1.0, T_rev, endpoint=False) + fade_in = 1.0 - fade_out for j_frame in [0, 1]: G_n_m = G[min(j_frame + i_frame, N_frames - 1), :] @@ -428,7 +426,9 @@ def binaural_fftconv_framewise( np.squeeze(x[i1:i2]), G_n_m ) - y[i1:i2p, i_ear] += a * y0[0, i1:i2p, i_ear] + b * y0[1, i1:i2p, i_ear] + y[i1:i2p, i_ear] += ( + fade_out * y0[0, i1:i2p, i_ear] + fade_in * y0[1, i1:i2p, i_ear] + ) t1 = timeit.default_timer() fps = (i_frame + 1) / (t1 - t0) @@ -464,7 +464,9 @@ def binaural_fftconv_framewise( y0[0, j1:j2p, i_ear] += sig.oaconvolve(np.squeeze(x[j1:j2]), G0) y0[1, j1:j2p, i_ear] += sig.oaconvolve(np.squeeze(x[j1:j2]), G1) - y[i1:i2, i_ear] = a * y0[0, i1:i2, i_ear] + b * y0[1, i1:i2, i_ear] + y[i1:i2, i_ear] = ( + fade_out * y0[0, i1:i2, i_ear] + fade_in * y0[1, i1:i2, i_ear] + ) t1 = timeit.default_timer() fps = (i_frame + 1) / (t1 - t0) @@ -531,10 +533,6 @@ def render_custom_ls_binaural( SourcePosition: np.ndarray, trajectory: np.ndarray, ) -> np.ndarray: - if in_format.name != "CUSTOM_LS": - raise ValueError( - f"Unsupported format {in_format.name} for CUSTOM_LS binaural rendering!" - ) ls_azi_all = in_format.ls_azi ls_ele_all = in_format.ls_ele @@ -545,31 +543,30 @@ def render_custom_ls_binaural( logger.info("ele: {}".format(ls_ele_all)) logger.info("lfe_index: {}".format(lfe_index_all)) - y = audioarray.resample(x, fs, 48000) - frame_len = (IVAS_FRAME_LEN_MS // 4) * (fs // 1000) - sig_len = y.shape[0] + sig_len = x.shape[0] N_frames = int(sig_len / frame_len) i_ls = 0 - y_all = np.zeros([sig_len, 2]) - for i_chan in range(y.shape[1]): + y = np.zeros([sig_len, 2]) + for i_chan in range(x.shape[1]): # skip LFE if i_chan in lfe_index_all: continue # skip silent (or very low volume) channels - if np.allclose(y[:, i_chan], 0.0, atol=32.0): + if np.allclose(x[:, i_chan], 0.0, atol=32.0): continue ls_azi = np.repeat(ls_azi_all[i_ls], N_frames) ls_ele = np.repeat(ls_ele_all[i_ls], N_frames) - azi, ele = rotateISM(ls_azi, ls_ele, trajectory=trajectory) + if trajectory is not None: + azi, ele = rotateISM(ls_azi, ls_ele, trajectory=trajectory) - y_all += binaural_fftconv_framewise( - y[:, i_chan], + y += binaural_fftconv_framewise( + x[:, i_chan], IR, SourcePosition, frame_len=frame_len, @@ -579,9 +576,7 @@ def render_custom_ls_binaural( ) i_ls += 1 - y = audioarray.resample(y_all, 48000, fs) - - return y_all + return y def render_ism_binaural( @@ -593,10 +588,9 @@ def render_ism_binaural( trajectory: np.ndarray, in_pos: np.ndarray, ) -> np.ndarray: - y = audioarray.resample(x, fs, 48000) frame_len = (IVAS_FRAME_LEN_MS // 4) * (fs // 1000) - sig_len = y.shape[0] + sig_len = x.shape[0] N_frames = int(sig_len / frame_len) # get ISM metadata and repeat it nsubframe times @@ -611,12 +605,12 @@ def render_ism_binaural( # extract positions only according to the audio duration pos_data = pos_data[:N_frames, :] - y_all = np.zeros([sig_len, 2]) - - azi, ele = rotateISM(pos_data[:, 0], pos_data[:, 1], trajectory=trajectory) + if trajectory is not None: + azi, ele = rotateISM(pos_data[:, 0], pos_data[:, 1], trajectory=trajectory) - y_all += binaural_fftconv_framewise( - y, + y = np.zeros([sig_len, 2]) + y += binaural_fftconv_framewise( + x, IR, SourcePosition, frame_len=frame_len, @@ -625,9 +619,40 @@ def render_ism_binaural( verbose=False, ) - y = audioarray.resample(y_all, 48000, fs) + return y + + +def render_masa_binaural( + x: np.ndarray, + fs: int, + in_format: spatialaudioformat.Format, + IR: np.ndarray, + SourcePosition: np.ndarray, + trajectory: np.ndarray, +): + y = x[:, :2] + # TODO + return y + + +def render_ambi_ls_binaural( + x: np.ndarray, + fs: int, + in_format: spatialaudioformat.Format, + IR: np.ndarray, + trajectory: np.ndarray, +) -> np.ndarray: + + y = x[:] + if trajectory is not None: + if in_format.ambi_order > 0: + y = rotateHOA(y, trajectory) + if in_format.isloudspeaker: + y = rotateMC(y, trajectory, in_format) - return y_all + y = binaural_fftconv(y, IR, in_format.nchannels, in_format.lfe_index) + + return y """ Wrapper function for generic binaural rendering """ @@ -642,7 +667,6 @@ def binaural_rendering( trajectory: str = None, include_LFE: bool = False, LFE_gain: float = 10 ** (5.5 / 20), - in_ls_layout_file: str = None, in_pos: dict = None, ): """Binaural rendering @@ -672,17 +696,24 @@ def binaural_rendering( " performing rotation along trajectory from file {}".format(trajectory) ) + # resample to 48 kHz + y = audioarray.resample(x, fs, 48000) + # get IR corresponding to the input and output formats IR, SourcePosition = get_IR(in_format, out_format, dataset) + latency_smp = np.argmax(np.sum(np.abs(IR), axis=(1, 2))) + + # prepare LFE signal to be added to output + if include_LFE and in_format.isloudspeaker: + lfe = binaural_render_LFE(x, 48000, in_format.lfe_index, LFE_gain, latency_smp) + # get binauralized signal based on format if in_format.name.startswith("CUSTOM_LS"): - return render_custom_ls_binaural( - x, fs, in_format, IR, SourcePosition, trajectory - ) + y = render_custom_ls_binaural(x, fs, in_format, IR, SourcePosition, trajectory) elif in_format.name.startswith("ISM"): if not in_pos: raise ValueError("ISM metadata empty!") - return render_ism_binaural( + y = render_ism_binaural( x, fs, in_format, @@ -692,37 +723,23 @@ def binaural_rendering( in_pos, ) elif in_format.name.startswith("MASA"): - pass # TODO - # return render_masa_binaural() + y = render_masa_binaural(x, fs, in_format, IR, SourcePosition, trajectory) elif in_format.ambi_order > 0 or in_format.isloudspeaker: - y = audioarray.resample(x, fs, 48000) - - if trajectory is not None: - if in_format.ambi_order > 0: - y = rotateHOA(y, trajectory) - if in_format.isloudspeaker: - y = rotateMC(y, trajectory, in_format) - - if include_LFE: - lfe = binaural_render_LFE( - y, 48000, in_format.lfe_index, LFE_gain, latency_smp - ) - - y = binaural_fftconv(y, IR, in_format.nchannels, in_format.lfe_index) - - if include_LFE: - y += lfe - - # HRTF delay compensation - latency_smp = np.argmax(np.sum(np.abs(IR), axis=(1, 2))) - y = np.roll(y, latency_smp, axis=0) - if latency_smp > 0: - y[:latency_smp, :] = 0 - - y = audioarray.resample(y, 48000, fs) - - return y + y = render_ambi_ls_binaural(x, fs, in_format, IR, trajectory) else: raise NotImplementedError( f"{in_format.name} -> {out_format.name}: format conversion not implemented" ) + + # add LFE signal to output + if include_LFE and in_format.isloudspeaker: + y += lfe + + # HRTF delay compensation + y = np.roll(y, -latency_smp, axis=0) + y[-latency_smp:, :] = 0 + + # resample back to original rate + y = audioarray.resample(y, 48000, fs) + + return y diff --git a/scripts/pyaudio3dtools/constants.py b/scripts/pyaudio3dtools/constants.py index 24c8b7aaba..b9523fc4ae 100644 --- a/scripts/pyaudio3dtools/constants.py +++ b/scripts/pyaudio3dtools/constants.py @@ -35,16 +35,16 @@ IVAS_CICPX_TO_MONO = np.array( [ 1, 1, - np.sqrt(0.5), - np.sqrt(0.5), - 0.79999995, - 0.79999995, - 0.79999995, - 0.79999995, - 0.849999964, - 0.849999964, - 0.849999964, - 0.849999964, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, ] ] ).T @@ -198,8 +198,10 @@ IVAS_MC_CONVERSION = { }, "5_1_4": { # downmix - "MONO": IVAS_CICPX_TO_MONO[:10, :], - "STEREO": IVAS_CICPX_TO_STEREO[:10, :], + "MONO": np.vstack([IVAS_CICPX_TO_MONO[:6, :], IVAS_CICPX_TO_MONO[-4:, :]]), + "STEREO": np.vstack( + [IVAS_CICPX_TO_STEREO[:6, :], IVAS_CICPX_TO_STEREO[-4:, :]] + ), "5_1": IVAS_CICP16_TO_6, "7_1": IVAS_CICP16_TO_12, "5_1_2": IVAS_CICP16_TO_14, diff --git a/scripts/pyaudio3dtools/hoadecoder.py b/scripts/pyaudio3dtools/hoadecoder.py index 331e86f52f..b774c0a9ec 100644 --- a/scripts/pyaudio3dtools/hoadecoder.py +++ b/scripts/pyaudio3dtools/hoadecoder.py @@ -65,15 +65,21 @@ def get_hoa_mtx( mtx_hoa_dec[1, 0] = 0.5 mtx_hoa_dec[1, 1] = -0.5 elif spkrlayout.isloudspeaker: - Y_td = getRSH(T_DESIGN_11_AZI, T_DESIGN_11_ELE, ambi_order, norm="ortho") + # TODO getRSH in IVAS casts to int16_t , decide on final behaviour for scripts + Y_td = getRSH( + T_DESIGN_11_AZI.astype(np.int16), + T_DESIGN_11_ELE.astype(np.int16), + ambi_order, + norm="ortho", + ) Y_td *= np.sqrt(4 * np.pi) n_ls_woLFE = spkrlayout.nchannels - len(spkrlayout.lfe_index) ls_azi_woLFE = np.delete(spkrlayout.ls_azi, spkrlayout.lfe_index).astype(float) ls_ele_woLFE = np.delete(spkrlayout.ls_ele, spkrlayout.lfe_index).astype(float) - panner = EFAP(ls_azi_woLFE, ls_ele_woLFE) - G_td = panner.pan(T_DESIGN_11_AZI, T_DESIGN_11_ELE, intensity_panning) + panner = EFAP(ls_azi_woLFE, ls_ele_woLFE, intensity_panning) + G_td = panner.pan(T_DESIGN_11_AZI, T_DESIGN_11_ELE) mtx_hoa_dec = (G_td.T @ Y_td.T) / T_DESIGN_11_AZI.size diff --git a/scripts/pyaudio3dtools/rotateISM.py b/scripts/pyaudio3dtools/masarenderer.py similarity index 51% rename from scripts/pyaudio3dtools/rotateISM.py rename to scripts/pyaudio3dtools/masarenderer.py index 4ed88f43ba..4ae7a9da3b 100644 --- a/scripts/pyaudio3dtools/rotateISM.py +++ b/scripts/pyaudio3dtools/masarenderer.py @@ -30,34 +30,83 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ + +import os +import shutil +import subprocess as sp +from tempfile import TemporaryDirectory + import numpy as np -from pyaudio3dtools.quaternions.functions import Quat2RotMat, rotateAziEle +from pyaudio3dtools.audiofile import readfile, writefile +from pyaudio3dtools.spatialaudioformat import Format + + +def render_masa( + in_sig: str, + in_meta: str, + in_spfmt: Format, + out_spfmt: Format, +) -> np.ndarray: + """Python wrapper for masaRenderer binaray + + Parameters + ---------- + in_sig: np.ndarray + Input signal with MASA transport channels + in_meta: str + Input MASA metadata file + in_spfmt: Format + Input spatial audio format + out_spfmt: Format + Output spatial audio format + + Returns + ------- + out_sig: np.ndarray + Rendered signal + fs : int + Sampling frequency (always 48 kHz for masaRenderer) + """ + + if shutil.which("masaRenderer") is None: + raise FileNotFoundError("The masaRenderer binary was not found in path!") + with TemporaryDirectory() as tmp_dir: + MASA_RENDERER_CMD = [ + "masaRenderer", + "", # outputMode -LS51, -LS714 or BINAURAL + "", # input PCM + in_meta[0], + "", # output PCM + ] -def rotateISM( - azi: np.ndarray, - ele: np.ndarray, - trajectory: str = None, -) -> tuple: + cmd = MASA_RENDERER_CMD[:] + if out_spfmt.name.startswith("BINAURAL"): + cmd[1] = "-BINAURAL" + out_nchan = 2 + elif out_spfmt.name == "5_1": + cmd[1] = "-LS51" + out_nchan = 6 + else: + cmd[1] = "-LS714" + out_nchan = 12 - if trajectory is None: - return azi, ele + tmp_in = os.path.join(tmp_dir, "tmp_masa_in.pcm") + tmp_out = os.path.join(tmp_dir, "tmp_masa_out.pcm") - trj_data = np.genfromtxt(trajectory, delimiter=",") - trj_frames = trj_data.shape[0] + cmd[2] = tmp_in + cmd[4] = tmp_out - N_frames = azi.shape[0] - if ele.shape[0] != azi.shape[0]: - raise ValueError("Inconsistent input in azi and ele") + writefile(tmp_in, in_sig, 48000) - azi_rot = np.zeros([N_frames]) - ele_rot = np.zeros([N_frames]) + try: + result = sp.run(cmd, check=True, capture_output=True, text=True) + except sp.CalledProcessError as e: + raise SystemError( + f"Command returned non-zero exit status ({e.returncode}): {' '.join(e.cmd)}\n{e.stderr}\n{e.stdout}" + ) - for i_frame in range(N_frames): - q = trj_data[i_frame % trj_frames, 1:] - azi_rot[i_frame], ele_rot[i_frame] = rotateAziEle( - azi[i_frame], ele[i_frame], Quat2RotMat(q) - ) + out_sig, _ = readfile(tmp_out, out_nchan, 48000) - return azi_rot, ele_rot + return out_sig diff --git a/scripts/pyaudio3dtools/rotateHOA.py b/scripts/pyaudio3dtools/rotation.py similarity index 74% rename from scripts/pyaudio3dtools/rotateHOA.py rename to scripts/pyaudio3dtools/rotation.py index cd11be2e59..0457f6b8e9 100644 --- a/scripts/pyaudio3dtools/rotateHOA.py +++ b/scripts/pyaudio3dtools/rotation.py @@ -32,8 +32,9 @@ import numpy as np +from pyaudio3dtools import EFAP, spatialaudioformat from pyaudio3dtools.constants import * -from pyaudio3dtools.quaternions.functions import Quat2RotMat +from pyaudio3dtools.quaternions.functions import Quat2RotMat, rotateAziEle ######################################################################### # Helper functions used by Ruedenberg, @@ -219,7 +220,7 @@ def rotateHOA(x: np.ndarray, trajectory: str) -> np.ndarray: sig_len = x.shape[0] sig_dim = x.shape[1] - frame_len = (IVAS_FRAME_LEN_MS // 4) * 48000 + frame_len = (IVAS_FRAME_LEN_MS // 4) * 48 N_frames = int(sig_len / frame_len) if sig_dim not in [4, 9, 16]: @@ -227,8 +228,8 @@ def rotateHOA(x: np.ndarray, trajectory: str) -> np.ndarray: y = np.zeros([sig_len, sig_dim]) - a = np.linspace(0, 1.0, frame_len, endpoint=False)[:, np.newaxis] - b = 1.0 - a + fade_in = np.linspace(0, 1.0, frame_len, endpoint=False)[:, np.newaxis] + fade_out = 1.0 - fade_in R = np.eye(sig_dim) R_old = np.eye(sig_dim) @@ -244,8 +245,102 @@ def rotateHOA(x: np.ndarray, trajectory: str) -> np.ndarray: frame_in = x[i1:i2, :] frame_out = y[i1:i2, :] - frame_out[:, :] = (frame_in @ R_old.T) * b + (frame_in @ R.T) * a + frame_out[:, :] = (fade_in * frame_in @ R.T) + (fade_out * frame_in @ R_old.T) R_old[:, :] = R.copy() return y + + +def rotateISM( + azi: np.ndarray, + ele: np.ndarray, + trajectory: str = None, +) -> tuple: + + if trajectory is None: + return azi, ele + + trj_data = np.genfromtxt(trajectory, delimiter=",") + trj_frames = trj_data.shape[0] + + N_frames = azi.shape[0] + if ele.shape[0] != azi.shape[0]: + raise ValueError("Inconsistent input in azi and ele") + + azi_rot = np.zeros([N_frames]) + ele_rot = np.zeros([N_frames]) + + for i_frame in range(N_frames): + q = trj_data[i_frame % trj_frames, 1:] + azi_rot[i_frame], ele_rot[i_frame] = rotateAziEle( + azi[i_frame], ele[i_frame], Quat2RotMat(q) + ) + + return azi_rot, ele_rot + + +def rotateMC(x: np.ndarray, trajectory: str, layout: spatialaudioformat) -> np.ndarray: + """Rotate MC signal by applying a rotation matrix calculated from the current quaternion + in each subframe + + Parameters: + ---------- + x: np.ndarray + input multichannel signal + trajectory: str + path to trajectory file + + Returns: + ---------- + y: np.ndarray + rotated multichannel signal + """ + + # TODO needs optimization, currently slow + trj_data = np.genfromtxt(trajectory, delimiter=",") + trj_frames = trj_data.shape[0] + + sig_len = x.shape[0] + sig_dim = x.shape[1] + frame_len = (IVAS_FRAME_LEN_MS // 4) * 48 + N_frames = int(sig_len / frame_len) + + y = np.zeros([sig_len, sig_dim]) + + # TODO LFE handling here + panner = EFAP.EFAP(layout.ls_azi, layout.ls_ele) + + fade_in = np.linspace(0, 1.0, frame_len, endpoint=False)[:, np.newaxis] + fade_out = 1.0 - fade_in + + R = np.eye(layout.nchannels) + R_old = np.eye(layout.nchannels) + + for i_frame in range(N_frames): + + start = i_frame * frame_len + end = (i_frame + 1) * frame_len + + q = trj_data[i_frame % trj_frames, 1:] + + rotated_pos = np.array( + [ + rotateAziEle(a, e, Quat2RotMat(q)) + for a, e in zip(layout.ls_azi, layout.ls_ele) + ] + ).astype( + np.int16 + ) # TODO tmu for alignment with IVAS + R = panner.pan(rotated_pos[:, 0], rotated_pos[:, 1]) + R[:, layout.lfe_index] = np.zeros([layout.nchannels, 1]) + R[layout.lfe_index, layout.lfe_index] = 1 + + frame_in = x[start:end, :] + frame_out = y[start:end, :] + + frame_out[:, :] = (fade_in * frame_in @ R) + (fade_out * frame_in @ R_old) + + R_old = R.copy() + + return y diff --git a/scripts/pyaudio3dtools/spatialaudioconvert.py b/scripts/pyaudio3dtools/spatialaudioconvert.py index 3d71dc0e6f..259a01159e 100644 --- a/scripts/pyaudio3dtools/spatialaudioconvert.py +++ b/scripts/pyaudio3dtools/spatialaudioconvert.py @@ -32,6 +32,7 @@ import logging import os +import warnings from typing import Optional, Tuple import numpy as np @@ -42,6 +43,7 @@ from pyaudio3dtools import ( audiofile, binauralrenderer, hoadecoder, + masarenderer, spatialaudioformat, spatialmetadata, ) @@ -59,7 +61,6 @@ def spatial_audio_convert( in_fs: Optional[int] = None, in_nchans: Optional[int] = None, in_meta_files: Optional[list] = None, - in_ls_layout_file: Optional[str] = None, out_format: Optional[str] = None, out_fs: Optional[int] = None, out_fc: Optional[int] = None, @@ -68,7 +69,7 @@ def spatial_audio_convert( limit_output: Optional[bool] = False, cut_preamble_s: Optional[int] = None, trajectory: Optional[str] = None, - bin_rend_include_LFE: Optional[bool] = False, + bin_rend_include_LFE: Optional[bool] = True, bin_rend_LFE_gain: Optional[float] = 10 ** (5.5 / 20), binaural_dataset: Optional[str] = "orange53", ) -> Tuple[np.ndarray, int]: @@ -88,8 +89,6 @@ def spatial_audio_convert( input sampling frequency in_nchans: Optional[int] input number of channels (deduced for .wav) - in_ls_layout_file: Optional[str] - input loudspeaker layout file out_format: Optional[str] output spatial audio format @@ -122,76 +121,76 @@ def spatial_audio_convert( Returns ------- - out_spfmt.name: str - output spatial audio format name - out_fs: int + out_sig : np.ndarray + output signal + out_fs : int output sampling frequency """ + + """ get spatial input and audio format configurations """ + if in_format is None: + in_format = spatialaudioformat.Format.detect_format(in_nchans) + logger.info(f" Input spatial audio format detected: {in_format}") + else: + logger.info(f" Input spatial audio format: {in_format}") + in_spfmt = spatialaudioformat.Format(in_format) + + if out_format is None: + out_format = in_format + logger.info( + f" Output spatial audio format not specified, defaulting to pass-through: {out_format}" + ) + out_spfmt = spatialaudioformat.Format(out_format) + + """ read input file """ # Input is either waveform file (.pcm or .wav) or iis metadata (.txt) _, input_ext = os.path.splitext(os.path.basename(in_file)) - """ read input file """ if input_ext == ".pcm": if in_fs is None: - if out_fs is not None: + if out_fs: in_fs = out_fs else: - raise Exception("Input and output fs not defined.") + raise ValueError("Input and output fs not defined.") if in_nchans is None: - if in_format is not None: - in_spfmt = spatialaudioformat.Format( - in_format=in_format, ls_layout_file=in_ls_layout_file - ) + if in_spfmt is not None: in_nchans = in_spfmt.nchannels - elif out_format is not None: - out_spfmt = spatialaudioformat.Format(in_format=out_format) - in_nchans = out_spfmt.nchannels else: - raise Exception( - "Number if input channels not defined and can't be deduced." + raise ValueError( + "Number of input channels not defined and can't be deduced." ) in_sig, in_fs = audiofile.readfile(in_file, fs=in_fs, nchannels=in_nchans) elif input_ext == ".wav": in_sig, in_fs = audiofile.readfile(in_file) - if in_format is not None: - in_spfmt = spatialaudioformat.Format( - in_format=in_format, ls_layout_file=in_ls_layout_file - ) - # Adjust number of channels if case of HOA, zeroed vert channels if planar - if in_spfmt.ambi_order > 0: - in_sig = audioarray.convert(in_sig, out_nchans=in_spfmt.nchannels) + # Adjust number of channels if case of HOA, zeroed vert channels if planar + if in_spfmt.ambi_order > 0: + in_sig = audioarray.convert(in_sig, out_nchans=in_spfmt.nchannels) elif input_ext == ".txt": metadata_obj = spatialmetadata.Metadata(in_file, audio_fs=in_fs) in_sig, in_fs = metadata_obj.get_audio_array() - if in_format != "META": + if in_spfmt.name != "META": logger.info( - f" {in_format} specified with .txt input file: overriding to META format" + f" {in_spfmt.name} specified with .txt input file: overriding to META format" ) in_format = "META" + in_spfmt = spatialaudioformat.Format(in_format) else: raise Exception(f"Not supported file {input_ext}") _, in_nchans = in_sig.shape - """ attempt to detect input format if not specified """ - if in_format is None: - in_format = spatialaudioformat.Format.detect_format(in_nchans) - logger.info(f" Input spatial audio format detected: {in_format}") - else: - logger.info(f" Input spatial audio format: {in_format}") - - """ convert metadata based formats directly to output format """ - if in_format.startswith("META") or in_format.startswith("ISM"): - if out_format is None: + """ convert metadata based formats (ISM / META) directly to output format """ + if in_spfmt.name.startswith("META") or in_spfmt.name.startswith("ISM"): + if out_spfmt.name.startswith("META"): raise Exception("out format must be specified for META (.txt) or ISM input") - if in_format.startswith("ISM"): + if in_spfmt.name.startswith("ISM"): if in_meta_files is None: raise ValueError( - f"Please specify a list of metadata files for {in_format}" + f"Please specify a list of metadata files for {in_spfmt.name}" ) - if len(in_meta_files) != int(in_format[-1]): + if len(in_meta_files) != int(in_spfmt.name[-1]): raise ValueError( - f"Mismatch between number of streams and number of specified metadata files for {in_format}" + f"Mismatch between number of streams and number of specified metadata files for {in_spfmt.name}" ) # initialise metadata object for ISM @@ -199,22 +198,17 @@ def spatial_audio_convert( metadata_obj.init_for_ism(in_file, in_fs, in_meta_files) # TODO alternative paths for binaural rendering for now - if out_format.startswith("BINAURAL_ROOM"): + if out_spfmt.name.startswith("BINAURAL_ROOM"): in_format = "7_1_4" - elif out_format.startswith("BINAURAL"): + elif out_spfmt.name.startswith("BINAURAL"): in_format = "HOA3" else: in_format = out_format - in_spfmt = spatialaudioformat.Format(in_format) - out_spfmt = spatialaudioformat.Format(out_format) else: # set input format to output format # render_meta() handles all conversions - in_spfmt = spatialaudioformat.Format(in_format) - out_spfmt = spatialaudioformat.Format(out_format) - in_format = out_format in_spfmt = out_spfmt @@ -224,12 +218,9 @@ def spatial_audio_convert( dataset=binaural_dataset, fs=in_fs, trajectory=trajectory, - in_ls_layout_file=in_ls_layout_file, include_LFE=bin_rend_include_LFE, LFE_gain=bin_rend_LFE_gain, ) - elif in_format.startswith("MASA"): - raise NotImplementedError(f"Rendering of MASA is not yet supported!") """ cut preamble """ if cut_preamble_s is not None: @@ -238,27 +229,21 @@ def spatial_audio_convert( logger.info(f" Cut preample by {samples_to_cut} samples") in_sig = audioarray.cut(in_sig, (samples_to_cut, -1)) - """ get spatial input and audio format configurations """ - in_spfmt = spatialaudioformat.Format( - in_format=in_format, ls_layout_file=in_ls_layout_file - ) - if out_format is None: - out_format = in_format - out_spfmt = spatialaudioformat.Format(in_format=out_format) - """ zero non-planar input ambisonics channels """ if in_spfmt.ambi_order > 0 and in_spfmt.isplanar: in_sig = spatialaudioformat.Format.zero_vert_hoa_channels(in_sig) """ Spatial audio format conversion """ out_sig = in_sig - if (out_format != in_format) and not ( + if (in_spfmt.name != out_spfmt.name) and not ( in_spfmt.isheadphones and out_spfmt.isheadphones ): logger.info(f" {in_spfmt.name} -> {out_spfmt.name}") - # binaural output - if out_spfmt.name.startswith("BINAURAL"): + # binaural output (except MASA) + if out_spfmt.name.startswith("BINAURAL") and not in_spfmt.name.startswith( + "MASA" + ): out_sig = binauralrenderer.binaural_rendering( in_sig, in_spfmt, @@ -266,7 +251,6 @@ def spatial_audio_convert( dataset=binaural_dataset, fs=in_fs, trajectory=trajectory, - in_ls_layout_file=in_ls_layout_file, include_LFE=bin_rend_include_LFE, LFE_gain=bin_rend_LFE_gain, ) @@ -279,14 +263,9 @@ def spatial_audio_convert( elif in_spfmt.isloudspeaker: out_sig = convert_mc(in_sig, in_spfmt, out_spfmt) - # ISM conversion - elif in_spfmt.name.startswith("ISM"): - out_sig = convert_ism(in_sig, in_fs, in_spfmt, out_spfmt) - # MASA conversion elif in_spfmt.name.startswith("MASA"): - raise AssertionError(f"Shouldn't execute!") # TODO remove - out_sig = convert_masa(in_sig, in_spfmt, out_spfmt) + out_sig = convert_masa(in_sig, in_fs, in_meta_files, in_spfmt, out_spfmt) else: raise NotImplementedError( f"{in_spfmt.name} -> {out_spfmt.name}: format conversion not implemented" @@ -358,13 +337,25 @@ def convert_mc( try: MC2LS = IVAS_MC_CONVERSION[in_spfmt.name][out_spfmt.name] except KeyError: - panner = EFAP.EFAP(in_spfmt.ls_azi, in_spfmt.ls_ele) - MC2LS = np.vstack( - [panner.pan(a, e) for a, e in zip(out_spfmt.ls_azi, out_spfmt.ls_ele)] - ).T + ls_azi_woLFE = np.delete(out_spfmt.ls_azi, out_spfmt.lfe_index).astype( + float + ) + ls_ele_woLFE = np.delete(out_spfmt.ls_ele, out_spfmt.lfe_index).astype( + float + ) + + panner = EFAP.EFAP(ls_azi_woLFE, ls_ele_woLFE) + MC2LS = np.vstack( + [ + panner.pan(a, e).T + for i, (a, e) in enumerate(zip(in_spfmt.ls_azi, in_spfmt.ls_ele)) + if i not in in_spfmt.lfe_index + ] + ) # pass-through for LFE - MC2LS[in_spfmt.lfe_index, :] = 0 + MC2LS = np.insert(MC2LS, in_spfmt.lfe_index, 0, axis=0) + MC2LS = np.insert(MC2LS, out_spfmt.lfe_index, 0, axis=1) MC2LS[in_spfmt.lfe_index, out_spfmt.lfe_index] = 1 return in_sig @ MC2LS @@ -373,7 +364,8 @@ def convert_mc( # SH response for loudspeaker positions MC2HOA = np.hstack( [ - hoadecoder.getRSH([a], [e], out_spfmt.ambi_order) + # TODO getRSH in IVAS casts to int16_t , decide on final behaviour for scripts + hoadecoder.getRSH([int(a)], [int(e)], out_spfmt.ambi_order) for a, e in zip(in_spfmt.ls_azi, in_spfmt.ls_ele) ] ).T @@ -434,7 +426,10 @@ def convert_ism( gains = gains[:, np.newaxis] # ISM -> HOA elif out_spfmt.ambi_order > 0: - gains = hoadecoder.getRSH([pos[0]], [pos[1]], out_spfmt.ambi_order) + # TODO getRSH in IVAS casts to int16_t , decide on final behaviour for scripts + gains = hoadecoder.getRSH( + [int(pos[0])], [int(pos[1])], out_spfmt.ambi_order + ) else: raise NotImplementedError( f"{in_spfmt.name} -> {out_spfmt.name}: format conversion not implemented" @@ -443,9 +438,9 @@ def convert_ism( if gains_old is None: gains_old = gains.copy() - out_frame[:] = (in_frame @ gains.T) * fade_in + ( - in_frame @ gains_old.T - ) * fade_out + out_frame[:] = (fade_in * in_frame @ gains.T) + ( + fade_out * in_frame @ gains_old.T + ) gains_old = gains.copy() @@ -454,28 +449,48 @@ def convert_ism( def convert_masa( in_sig: np.ndarray, + in_fs: int, + in_meta: str, in_spfmt: spatialaudioformat.Format, out_spfmt: spatialaudioformat.Format, ) -> np.ndarray: """Convert a MASA signal to the requested output format""" + + if in_fs != 48000: + raise ValueError(f"{in_spfmt.name} rendering only support for 48kHz!") + + tmp_spfmt = out_spfmt + # MASA -> LS if out_spfmt.isloudspeaker: - # TODO - raise NotImplementedError( - f"{in_spfmt.name} -> {out_spfmt.name}: format conversion not implemented" - ) + if not (out_spfmt.name == "5_1" or out_spfmt.name == "7_1_4"): + tmp_spfmt = spatialaudioformat.Format("7_1_4") + warnings.warn( + f"{out_spfmt.name} not natively supported by masaRenderer, using {tmp_spfmt.name} as intermediate format" + ) # MASA -> HOA elif out_spfmt.ambi_order > 0: - # TODO - raise NotImplementedError( - f"{in_spfmt.name} -> {out_spfmt.name}: format conversion not implemented" + tmp_spfmt = spatialaudioformat.Format("7_1_4") + warnings.warn( + f"{out_spfmt.name} not natively supported by masaRenderer, using {tmp_spfmt.name} as intermediate format" + ) + elif out_spfmt.name == "BINAURAL": + warnings.warn( + f"Using masaRenderer for rendering; any binaural_dataset setting will be ignored!" ) else: raise NotImplementedError( f"{in_spfmt.name} -> {out_spfmt.name}: format conversion not implemented" ) - return out_sig + out_sig = masarenderer.render_masa(in_sig, in_meta, in_spfmt, tmp_spfmt) + + # conversion done + if tmp_spfmt.name == out_spfmt.name: + return out_sig + # only rendered an intermediate format, more conversion needed + else: + return convert_mc(out_sig, tmp_spfmt, out_spfmt) def render_meta( @@ -484,7 +499,6 @@ def render_meta( dataset: str, fs: int, trajectory: str, - in_ls_layout_file: str, include_LFE: bool = False, LFE_gain: float = 10 ** (5.5 / 20), ) -> np.ndarray: @@ -499,6 +513,9 @@ def render_meta( start = object["track_index"] stop = start + object["nb_tracks"] obj_sig = metadata_obj.audio_array[:, start:stop] + # apply gain + if hasattr(object, "gain"): + obj_sig *= object["gain"] if dest_fmt.name.startswith("BINAURAL"): if object["input_type"] == "ism": @@ -520,7 +537,6 @@ def render_meta( trajectory=trajectory, include_LFE=include_LFE, LFE_gain=LFE_gain, - in_ls_layout_file=in_ls_layout_file, in_pos=positions, ) else: @@ -530,10 +546,10 @@ def render_meta( obj_sig, fs, object["positions"], src_format, dest_fmt ) elif object["input_type"] == "sba": - src_format = spatialaudioformat.Format(f"SBA{object['order']}") + src_format = object["format"] out_sig += convert_sba(obj_sig, src_format, dest_fmt) elif object["input_type"] == "mc": - src_format = spatialaudioformat.Format(f"CICP{object['cicp_index']}") + src_format = object["format"] out_sig += convert_mc(obj_sig, src_format, dest_fmt) return out_sig diff --git a/scripts/pyaudio3dtools/spatialaudioformat.py b/scripts/pyaudio3dtools/spatialaudioformat.py index 83eb4b6802..01721f4329 100644 --- a/scripts/pyaudio3dtools/spatialaudioformat.py +++ b/scripts/pyaudio3dtools/spatialaudioformat.py @@ -30,6 +30,8 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ +import os + import numpy as np _format_configs = { @@ -363,28 +365,18 @@ _vert_hoa_channels = np.array([2, 5, 6, 7, 10, 11, 12, 13, 14]) class Format: - def __init__(self, in_format: str = "FOA", ls_layout_file: str = None): + def __init__(self, in_format: str = "FOA"): self.name = None + self.altname = None self.ambi_order = -1 self.nchannels = None self.isloudspeaker = False + self.isheadphones = False self.lfe_index = [] - for config_name, config_dict in _format_configs.items(): - if ( - in_format.upper() == config_name - or in_format.upper() == config_dict["altname"].upper() - ): - for k, v in _format_configs[config_name].items(): - setattr(self, k, v) - - if not self.name: - raise SystemExit( - "Spatial audio format not supported. If 'EXT' is used, please change to ISM or MASA. Ensure it is same as 'in_format'" - ) - - if self.name == "CUSTOM_LS" and ls_layout_file is not None: - with open(ls_layout_file, "r") as f_ls: + # if it is a path, then treat as custom layout + if not isinstance(in_format, str) or in_format[-4:].lower() == ".txt": + with open(in_format, "r") as f_ls: self.ls_azi = [ float(x.strip()) for x in f_ls.readline().strip().split(",") ] @@ -402,6 +394,27 @@ class Format: [self.ls_azi.insert(i, 0.0) for i in self.lfe_index] [self.ls_ele.insert(i, 0.0) for i in self.lfe_index] + self.name = os.path.basename(in_format).replace(".txt", "") + self.altname = "CUSTOM_LS" + self.config_file = str(in_format) + self.isloudspeaker = True + self.nchannels = len(self.ls_azi) + self.isplanar = np.all([e == 0.0 for e in self.ls_ele]) + # search in predefined dictionary + else: + for config_name, config_dict in _format_configs.items(): + if ( + in_format.upper() == config_name + or in_format.upper() == config_dict["altname"].upper() + ): + for k, v in _format_configs[config_name].items(): + setattr(self, k, v) + + if not self.name: + raise SystemExit( + f"Spatial audio format '{in_format}' not supported. If 'EXT' is used, please change to ISM or MASA. Ensure it is same as 'in_format'" + ) + def get_nchannels(self): return self.nchannels diff --git a/scripts/pyaudio3dtools/spatialmetadata.py b/scripts/pyaudio3dtools/spatialmetadata.py index 829bd298bc..4bbb4b95fe 100644 --- a/scripts/pyaudio3dtools/spatialmetadata.py +++ b/scripts/pyaudio3dtools/spatialmetadata.py @@ -294,6 +294,7 @@ def read_ism_input(file_handle: TextIO, dirname: str) -> dict: ism["track_index"] = int(file_handle.readline()) - 1 ism["nb_tracks"] = 1 ism["positions"] = [] + ism["gain"] = 1 line = file_handle.readline() try: @@ -307,6 +308,7 @@ def read_ism_input(file_handle: TextIO, dirname: str) -> dict: pos["azimuth"] = int(azimuth) pos["elevation"] = int(elevation) ism["positions"].append(pos) + ism["gain"] = read_gain_value(file_handle) except: meta_csv = os.path.join(dirname, line.strip()) pos_idx = 0 @@ -380,8 +382,10 @@ def write_ism_input( def read_sba_input(file_handle: TextIO) -> dict: sba = {"input_type": "sba"} sba["track_index"] = int(file_handle.readline()) - 1 - sba["order"] = int(file_handle.readline()) + sba["format"] = spatialaudioformat.Format(f"SBA{int(file_handle.readline())}") + sba["order"] = sba["format"].ambi_order sba["nb_tracks"] = (sba["order"] + 1) ** 2 + sba["gain"] = read_gain_value(file_handle) return sba @@ -396,10 +400,9 @@ def write_sba_input(file_handle: TextIO, sba_dict: dict) -> None: def read_mc_input(file_handle: TextIO) -> dict: mc = {"input_type": "mc"} mc["track_index"] = int(file_handle.readline()) - 1 - mc["cicp_index"] = int( - file_handle.readline() - ) # TODO try to support custom LS files? - mc["nb_tracks"] = spatialaudioformat.Format(f"CICP{mc['cicp_index']}").nchannels + mc["format"] = spatialaudioformat.Format(file_handle.readline().strip()) + mc["nb_tracks"] = mc["format"].nchannels + mc["gain"] = read_gain_value(file_handle) return mc @@ -407,9 +410,19 @@ def write_mc_input(file_handle: TextIO, mc_dict: dict) -> None: file_handle.write("MC\n") track_index = mc_dict["track_index"] file_handle.write(f"{str(track_index + 1)}\n") - order = mc_dict["order"] - file_handle.write(f"{str(order)}\n") + name = mc_dict["format"].name + file_handle.write(f"{name}\n") + +def read_gain_value(file_handle: TextIO) -> float: + original_pos = file_handle.tell() + gain = file_handle.readline().lower() + if gain.startswith("gain_db"): + gain = float(gain.replace("gain_db", "")) + return 10 ** (gain / 20) + else: + file_handle.seek(original_pos) + return 1 ################################################## # Helper functions for ISM IVAS metadata diff --git a/scripts/pyivastest/IvasModeRunner.py b/scripts/pyivastest/IvasModeRunner.py old mode 100755 new mode 100644 diff --git a/scripts/sector_filters.bin b/scripts/sector_filters.bin new file mode 100644 index 0000000000..88adf401ba --- /dev/null +++ b/scripts/sector_filters.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4ff3f7d925b868aa98e366318c1bb2530ad9738ff53a187dafa5dcebcf3ec68 +size 288 diff --git a/scripts/td_object_renderer/object_renderer_standalone/Makefile b/scripts/td_object_renderer/object_renderer_standalone/Makefile index 1f7571b867..c8a43fc6f1 100644 --- a/scripts/td_object_renderer/object_renderer_standalone/Makefile +++ b/scripts/td_object_renderer/object_renderer_standalone/Makefile @@ -5,12 +5,13 @@ SRC_LIBCOM = ../../../lib_com SRC_LIBDEBUG = ../../../lib_debug SRC_LIBDEC = ../../../lib_dec SRC_LIBENC = ../../../lib_enc +SRC_LIBREND = ../../../lib_rend SRC_LIBUTIL = ../../../lib_util SRC_APP = ./object_renderer_standalone BUILD = build OBJDIR = obj -SRC_DIRS = $(sort -u $(SRC_LIBCOM) $(SRC_LIBDEBUG) $(SRC_LIBDEC) $(SRC_LIBENC) $(SRC_LIBUTIL) $(SRC_APP)) +SRC_DIRS = $(sort -u $(SRC_LIBCOM) $(SRC_LIBDEBUG) $(SRC_LIBDEC) $(SRC_LIBENC) $(SRC_LIBREND) $(SRC_LIBUTIL) $(SRC_APP)) # Name of CLI binaries CLI_REN ?= renderer_standalone @@ -18,6 +19,7 @@ LIB_LIBCOM ?= libivascom.a LIB_LIBDEBUG ?= libivasdebug.a LIB_LIBDEC ?= libivasdec.a LIB_LIBENC ?= libivasenc.a +LIB_LIBREND ?= libivasrend.a LIB_LIBUTIL ?= libivasutil.a # Default tool settings @@ -117,12 +119,14 @@ SRCS_LIBCOM = $(foreach DIR,$(SRC_LIBCOM),$(patsubst $(DIR)/%,%,$(wildcard $(D SRCS_LIBDEBUG = $(foreach DIR,$(SRC_LIBDEBUG),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_LIBDEC = $(foreach DIR,$(SRC_LIBDEC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_LIBENC = $(foreach DIR,$(SRC_LIBENC),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) +SRCS_LIBREND = $(foreach DIR,$(SRC_LIBREND),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) SRCS_LIBUTIL = $(foreach DIR,$(SRC_LIBUTIL),$(patsubst $(DIR)/%,%,$(wildcard $(DIR)/*.c))) OBJS_LIBCOM = $(addprefix $(OBJDIR)/,$(SRCS_LIBCOM:.c=.o)) OBJS_LIBDEBUG = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEBUG:.c=.o)) OBJS_LIBDEC = $(addprefix $(OBJDIR)/,$(SRCS_LIBDEC:.c=.o)) OBJS_LIBENC = $(addprefix $(OBJDIR)/,$(SRCS_LIBENC:.c=.o)) +OBJS_LIBREND = $(addprefix $(OBJDIR)/,$(SRCS_LIBREND:.c=.o)) OBJS_LIBUTIL = $(addprefix $(OBJDIR)/,$(SRCS_LIBUTIL:.c=.o)) OBJS_REN = $(OBJDIR)/renderer_standalone.o @@ -145,19 +149,22 @@ $(LIB_LIBCOM): $(OBJS_LIBCOM) $(LIB_LIBDEBUG): $(OBJS_LIBDEBUG) $(QUIET_AR)$(AR) rcs $@ $^ -$(LIB_LIBDEC): $(OBJS_LIBDEC) +$(LIB_LIBDEC): $(OBJS_LIBDEC) $(OBJS_LIBREND) $(QUIET_AR)$(AR) rcs $@ $^ $(LIB_LIBENC): $(OBJS_LIBENC) $(QUIET_AR)$(AR) rcs $@ $^ +$(LIB_LIBREND): $(OBJS_LIBREND) + $(QUIET_AR)$(AR) rcs $@ $^ + $(LIB_LIBUTIL): $(OBJS_LIBUTIL) $(QUIET_AR)$(AR) rcs $@ $^ $(CLI_REN): $(LIB_LIBENC) $(LIB_LIBDEC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(OBJS_REN) $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_REN) -L. -livasdebug -livasutil -livasenc -livasdec -livascom $(LDLIBS) -o $(CLI_REN) -libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) +libs: $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBREND) $(LIB_LIBUTIL) clean: $(QUIET)$(RM) $(OBJS_LIBENC) $(OBJS_LIBDEC) $(OBJS_REN) $(DEPS) @@ -165,7 +172,7 @@ clean: $(QUIET)test ! -d $(OBJDIR) || rm -rf $(OBJDIR) clean_all: clean - $(QUIET)$(RM) $(CLI_REN) $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) + $(QUIET)$(RM) $(CLI_REN) $(LIB_LIBENC) $(LIB_LIBDEBUG) $(LIB_LIBCOM) $(LIB_LIBDEC) $(LIB_LIBUTIL) $(LIB_LIBREND) $(OBJDIR)/%.o : %.c | $(OBJDIR) $(QUIET_CC)$(CC) $(CFLAGS) -c -MD -o $@ $< diff --git a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone.sln b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone.sln index 18c18b0ace..72b9350406 100644 --- a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone.sln +++ b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone.sln @@ -3,16 +3,18 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.28307.136 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "object_renderer_standalone", "object_renderer_standalone.vcxproj", "{75AE3898-3FDF-4AE2-86A1-838D0E78545E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_util", "..\..\..\Workspace_msvc\lib_util.vcxproj", "{2FA8F384-0775-F3B7-F8C3-85209222FC70}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_dec", "..\..\..\Workspace_msvc\lib_dec.vcxproj", "{E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_com", "..\..\..\Workspace_msvc\lib_com.vcxproj", "{39EC200D-7795-4FF8-B214-B24EDA5526AE}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_rend", "..\..\..\Workspace_msvc\lib_rend.vcxproj", "{718DE063-A18B-BB72-9150-62B892E6FFA6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_util", "..\..\..\Workspace_msvc\lib_util.vcxproj", "{2FA8F384-0775-F3B7-F8C3-85209222FC70}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_debug", "..\..\..\Workspace_msvc\lib_debug.vcxproj", "{54509728-928B-44D9-A118-A6F92F08B34F}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "object_renderer_standalone", "object_renderer_standalone.vcxproj", "{75AE3898-3FDF-4AE2-86A1-838D0E78545E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -50,6 +52,12 @@ Global {54509728-928B-44D9-A118-A6F92F08B34F}.Release|Win32.Build.0 = Release|Win32 {54509728-928B-44D9-A118-A6F92F08B34F}.Unittests|Win32.ActiveCfg = Unittests|Win32 {54509728-928B-44D9-A118-A6F92F08B34F}.Unittests|Win32.Build.0 = Unittests|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Debug|Win32.ActiveCfg = Debug|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Debug|Win32.Build.0 = Debug|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Release|Win32.ActiveCfg = Release|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Release|Win32.Build.0 = Release|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Unittests|Win32.ActiveCfg = Unittests|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Unittests|Win32.Build.0 = Unittests|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/scripts/pyaudio3dtools/rotateMC.py b/scripts/tests/__init__.py similarity index 50% rename from scripts/pyaudio3dtools/rotateMC.py rename to scripts/tests/__init__.py index 65b47b9b18..c2c14754b4 100644 --- a/scripts/pyaudio3dtools/rotateMC.py +++ b/scripts/tests/__init__.py @@ -25,72 +25,3 @@ accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and the United Nations Convention on Contracts on the International Sales of Goods. """ - -import numpy as np - -from pyaudio3dtools import EFAP, spatialaudioformat -from pyaudio3dtools.constants import * -from pyaudio3dtools.quaternions.functions import Quat2RotMat, rotateAziEle - - -def rotateMC(x: np.ndarray, trajectory: str, layout: spatialaudioformat) -> np.ndarray: - """Rotate MC signal by applying a rotation matrix calculated from the current quaternion - in each subframe - - Parameters: - ---------- - x: np.ndarray - input multichannel signal - trajectory: str - path to trajectory file - - Returns: - ---------- - y: np.ndarray - rotated multichannel signal - """ - - # TODO needs optimization, currently slow - trj_data = np.genfromtxt(trajectory, delimiter=",") - trj_frames = trj_data.shape[0] - - sig_len = x.shape[0] - sig_dim = x.shape[1] - frame_len = (IVAS_FRAME_LEN_MS // 4) * 48000 - N_frames = int(sig_len / frame_len) - - y = np.zeros([sig_len, sig_dim]) - - panner = EFAP.EFAP(layout.ls_azi, layout.ls_ele) - - a = np.linspace(0, 1.0, frame_len, endpoint=False)[:, np.newaxis] - b = 1.0 - a - - R = np.eye(layout.nchannels) - R_old = np.eye(layout.nchannels) - - for i_frame in range(N_frames): - - start = i_frame * frame_len - end = (i_frame + 1) * frame_len - - q = trj_data[i_frame % trj_frames, 1:] - - rotated_pos = np.array( - [ - rotateAziEle(a, e, Quat2RotMat(q)) - for a, e in zip(layout.ls_azi, layout.ls_ele) - ] - ) - R = panner.pan(rotated_pos[:, 0], rotated_pos[:, 1]) - R[:, layout.lfe_index] = np.zeros([layout.nchannels, 1]) - R[layout.lfe_index, layout.lfe_index] = 1 - - frame_in = x[start:end, :] - frame_out = y[start:end, :] - - frame_out[:, :] = (frame_in @ R_old) * b + (frame_in @ R) * a - - R_old = R.copy() - - return y diff --git a/scripts/tests/compare_audio.py b/scripts/tests/compare_audio.py new file mode 100644 index 0000000000..56f35735fc --- /dev/null +++ b/scripts/tests/compare_audio.py @@ -0,0 +1,69 @@ +import warnings +from typing import Tuple + +import numpy as np +from pyaudio3dtools.audioarray import getdelay + + +def compare_audio_arrays( + left: np.ndarray, left_fs: int, right: np.ndarray, right_fs: int +) -> Tuple[float, float]: + + if left_fs != right_fs: + return ValueError(f"Differing samplerates: {left_fs} vs {right_fs}!") + + if left.shape[1] != right.shape[1]: + cmp_ch = min(left.shape[1], right.shape[1]) + warnings.warn( + f"Differing number of channels: {left.shape[1]} vs {right.shape[1]}! Comparing first {cmp_ch} channel(s)", + category=RuntimeWarning, + ) + left = left[:, :cmp_ch] + right = right[:, cmp_ch] + + if left.shape[0] != right.shape[0]: + cmp_smp = min(left.shape[0], right.shape[0]) + warnings.warn( + f"Warning - different durations: {left.shape[0] / left_fs:.2f}s vs {right.shape[0] / right_fs:.2f}s! Comparing first {cmp_smp / left_fs : .2f} sample(s)", + category=RuntimeWarning, + ) + left = left[:cmp_smp, :] + right = right[:cmp_smp, :] + + if not np.array_equal(left, right): + delay = getdelay(left, right) + delay_abs = np.abs(delay) + # getdelay can return large values if signals are quite different + # limit any delay compensation to 20 ms + if delay != 0 and (delay_abs < left_fs / 50): + warnings.warn( + f"File B is delayed by {delay} samples ({delay*1000 / left_fs : .2f}ms)!", + category=RuntimeWarning, + ) + + # shift array + left = np.roll(left, delay, axis=0) + + # zero shifted out samples + if delay < 0: + left[-np.abs(delay) :, :] = 0 + elif delay > 0: + left[: np.abs(delay), :] = 0 + """ + http://www-mmsp.ece.mcgill.ca/Documents/Software/Packages/AFsp/AFsp/CompAudio.html + """ + num = np.sum(left * right) + den = np.sqrt(np.sum(left**2) * np.sum(right**2)) + if den > 0: + r = num / den + else: + r = np.inf + snr = 10 * np.log10(1 / (1 - (r**2))) + gain_b = num / np.sum(right**2) + max_diff = np.abs(np.max(left - right)) + else: + snr = np.inf + gain_b = 1 + max_diff = 0 + + return snr, gain_b, max_diff diff --git a/scripts/tests/constants.py b/scripts/tests/constants.py new file mode 100644 index 0000000000..07a5cbc5a9 --- /dev/null +++ b/scripts/tests/constants.py @@ -0,0 +1,189 @@ +#!/usr/bin/env python3 + +""" + (C) 2022 Baseline Development Group with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The Baseline Development Group consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., and VoiceAge Corporation retain full ownership + rights in their respective contributions in the software. No license of any kind, including but not + limited to patent license, of any foregoing parties is hereby granted by implication, estoppel or + otherwise. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and/or fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +from pathlib import PurePath + +""" Set up paths """ +TESTS_DIR = PurePath(__file__).parent +TEST_VECTOR_DIR = TESTS_DIR.joinpath("data") + +OUTPUT_PATH_REF = TESTS_DIR.joinpath("ref") +OUTPUT_PATH_CUT = TESTS_DIR.joinpath("cut") + +CUSTOM_LAYOUT_DIR = TEST_VECTOR_DIR.parent.parent.joinpath("ls_layouts") +HR_TRAJECTORY_DIR = TEST_VECTOR_DIR.parent.parent.joinpath("trajectories") + +""" Renderer commandline template """ +RENDERER_CMD = [ + str(TESTS_DIR.parent.parent.joinpath("IVAS_rend")), + "-i", + "", # 2 -> input file + "-if", + "", # 4 -> input format + "-o", + "/dev/null", # 6 -> output file + "-of", + "", # 8 -> output format + "-fs", + "48", # 10 -> input fs + "-q", + # "-ndl", +] + +""" Format to file mappings """ +NCHAN_TO_FILE = { + 1: TEST_VECTOR_DIR.joinpath("spectral_test_1ch_48kHz.wav"), + 2: TEST_VECTOR_DIR.joinpath("spectral_test_2ch_48kHz.wav"), + 3: TEST_VECTOR_DIR.joinpath("spectral_test_3ch_48kHz.wav"), + 4: TEST_VECTOR_DIR.joinpath("spectral_test_4ch_48kHz.wav"), + 5: TEST_VECTOR_DIR.joinpath("spectral_test_5ch_48kHz.wav"), + 6: TEST_VECTOR_DIR.joinpath("spectral_test_6ch_48kHz.wav"), + 8: TEST_VECTOR_DIR.joinpath("spectral_test_8ch_48kHz.wav"), + 9: TEST_VECTOR_DIR.joinpath("spectral_test_9ch_48kHz.wav"), + 10: TEST_VECTOR_DIR.joinpath("spectral_test_10ch_48kHz.wav"), + 11: TEST_VECTOR_DIR.joinpath("spectral_test_11ch_48kHz.wav"), + 12: TEST_VECTOR_DIR.joinpath("spectral_test_12ch_48kHz.wav"), + 15: TEST_VECTOR_DIR.joinpath("spectral_test_15ch_48kHz.wav"), + 16: TEST_VECTOR_DIR.joinpath("spectral_test_16ch_48kHz.wav"), +} + +FORMAT_TO_FILE = { + "MONO": NCHAN_TO_FILE[1], + "STEREO": NCHAN_TO_FILE[2], + "5_1": NCHAN_TO_FILE[6], + "7_1": NCHAN_TO_FILE[8], + "5_1_2": NCHAN_TO_FILE[8], + "5_1_4": NCHAN_TO_FILE[10], + "7_1_4": NCHAN_TO_FILE[12], + "FOA": NCHAN_TO_FILE[4], + "HOA2": NCHAN_TO_FILE[9], + "HOA3": NCHAN_TO_FILE[16], + "ISM1": NCHAN_TO_FILE[1], + "ISM2": NCHAN_TO_FILE[2], + "ISM3": NCHAN_TO_FILE[3], + "ISM4": NCHAN_TO_FILE[4], + # "ISM1": TEST_VECTOR_DIR.joinpath("spectral_test_ism1.txt"), + # "ISM2": TEST_VECTOR_DIR.joinpath("spectral_test_ism2.txt"), + # "ISM3": TEST_VECTOR_DIR.joinpath("spectral_test_ism3.txt"), + # "ISM4": TEST_VECTOR_DIR.joinpath("spectral_test_ism4.txt"), + "MASA1": NCHAN_TO_FILE[1], + "MASA2": NCHAN_TO_FILE[2], + # "MASA1": TEST_VECTOR_DIR.joinpath("stv_IVASMASA_1dir1TC.pcm"), + # "MASA2": TEST_VECTOR_DIR.joinpath("stv_IVASMASA_2dir2TC.pcm"), + "META": TEST_VECTOR_DIR.joinpath("mixed_scene.txt"), + # Custom loudspeaker inputs (WIP) + "16ch_8+4+4": NCHAN_TO_FILE[16], + "4d0": NCHAN_TO_FILE[4], + "4d4": NCHAN_TO_FILE[8], + "cicp1": NCHAN_TO_FILE[1], + "cicp20": NCHAN_TO_FILE[15], + "cicp2": NCHAN_TO_FILE[2], + "custom1": NCHAN_TO_FILE[11], + "itu_4+5+1": NCHAN_TO_FILE[11], + "t_design_4": NCHAN_TO_FILE[12], +} + +FORMAT_TO_METADATA_FILES = { + "ISM1": [str(TEST_VECTOR_DIR.joinpath("stvISM1.csv"))], + "ISM2": [ + str(TEST_VECTOR_DIR.joinpath("stvISM1.csv")), + str(TEST_VECTOR_DIR.joinpath("stvISM2.csv")), + ], + "ISM3": [ + str(TEST_VECTOR_DIR.joinpath("stvISM1.csv")), + str(TEST_VECTOR_DIR.joinpath("stvISM2.csv")), + str(TEST_VECTOR_DIR.joinpath("stvISM3.csv")), + ], + "ISM4": [ + str(TEST_VECTOR_DIR.joinpath("stvISM1.csv")), + str(TEST_VECTOR_DIR.joinpath("stvISM2.csv")), + str(TEST_VECTOR_DIR.joinpath("stvISM3.csv")), + str(TEST_VECTOR_DIR.joinpath("stvISM4.csv")), + ], + "MASA1": [str(TEST_VECTOR_DIR.joinpath("stv_IVASMASAQ_1dir1TC.met"))], + "MASA2": [str(TEST_VECTOR_DIR.joinpath("stv_IVASMASAQ_2dir2TC.met"))], +} + +""" Input formats """ +INPUT_FORMATS_AMBI = ["FOA", "HOA2", "HOA3"] +INPUT_FORMATS_MC = ["MONO", "STEREO", "5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"] +INPUT_FORMATS_ISM = ["ISM1", "ISM2", "ISM3", "ISM4"] +INPUT_FORMATS_MASA = ["MASA1", "MASA2"] + +""" Non binaural / parametric output formats """ +OUTPUT_FORMATS = [ + "MONO", + "STEREO", + "5_1", + "5_1_2", + "5_1_4", + "7_1", + "7_1_4", + "FOA", + "HOA2", + "HOA3", +] + +""" Custom loudspeaker input/output """ +CUSTOM_LS_TO_TEST = [ + # "cicp1", + # "cicp2", + "t_design_4", + # "4d0", + "4d4", + "itu_4+5+1", + "custom1", + # "cicp20", + "16ch_8+4+4", +] + +""" Mixed scene ( metadata ) rendering """ +METADATA_SCENES_TO_TEST = ["mixed_scene"] + +""" Binaural rendering """ +INPUT_FORMATS_BINAURAL = OUTPUT_FORMATS[2:] +INPUT_FORMATS_BINAURAL.extend( + [ + "ISM1", + "ISM2", + "ISM3", + "ISM4", + # "MASA1", + # "MASA2", + ] + ) +OUTPUT_FORMATS_BINAURAL = [ + "BINAURAL", + # "BINAURAL_ROOM" # TODO +] +HR_TRAJECTORIES_TO_TEST = [ + # "const000", + # "full_circle_in_15s", + "full_circle_in_15s-Euler", + "rotate_yaw_pitch_roll1", +] diff --git a/scripts/tests/cut/.gitignore b/scripts/tests/cut/.gitignore new file mode 100644 index 0000000000..f935021a8f --- /dev/null +++ b/scripts/tests/cut/.gitignore @@ -0,0 +1 @@ +!.gitignore diff --git a/scripts/prerenderer_configs/IVAS_ISM_metadata_-30_0.csv b/scripts/tests/data/IVAS_ISM_metadata_-30_0.csv similarity index 100% rename from scripts/prerenderer_configs/IVAS_ISM_metadata_-30_0.csv rename to scripts/tests/data/IVAS_ISM_metadata_-30_0.csv diff --git a/scripts/prerenderer_configs/IVAS_ISM_metadata_0_0.csv b/scripts/tests/data/IVAS_ISM_metadata_0_0.csv similarity index 100% rename from scripts/prerenderer_configs/IVAS_ISM_metadata_0_0.csv rename to scripts/tests/data/IVAS_ISM_metadata_0_0.csv diff --git a/scripts/prerenderer_configs/IVAS_ISM_metadata_30_0.csv b/scripts/tests/data/IVAS_ISM_metadata_30_0.csv similarity index 100% rename from scripts/prerenderer_configs/IVAS_ISM_metadata_30_0.csv rename to scripts/tests/data/IVAS_ISM_metadata_30_0.csv diff --git a/scripts/prerenderer_configs/IVAS_ISM_metadata_circle.csv b/scripts/tests/data/IVAS_ISM_metadata_circle.csv similarity index 100% rename from scripts/prerenderer_configs/IVAS_ISM_metadata_circle.csv rename to scripts/tests/data/IVAS_ISM_metadata_circle.csv diff --git a/scripts/prerenderer_configs/ism1_ivas_mtdt_config.txt b/scripts/tests/data/ism1_ivas_mtdt_config.txt similarity index 100% rename from scripts/prerenderer_configs/ism1_ivas_mtdt_config.txt rename to scripts/tests/data/ism1_ivas_mtdt_config.txt diff --git a/scripts/prerenderer_configs/ism1_shorthand_config.txt b/scripts/tests/data/ism1_shorthand_config.txt similarity index 100% rename from scripts/prerenderer_configs/ism1_shorthand_config.txt rename to scripts/tests/data/ism1_shorthand_config.txt diff --git a/scripts/prerenderer_configs/ism2_ivas_mtdt_config.txt b/scripts/tests/data/ism2_ivas_mtdt_config.txt similarity index 100% rename from scripts/prerenderer_configs/ism2_ivas_mtdt_config.txt rename to scripts/tests/data/ism2_ivas_mtdt_config.txt diff --git a/scripts/prerenderer_configs/ism2_shorthand_config.txt b/scripts/tests/data/ism2_shorthand_config.txt similarity index 100% rename from scripts/prerenderer_configs/ism2_shorthand_config.txt rename to scripts/tests/data/ism2_shorthand_config.txt diff --git a/scripts/prerenderer_configs/ism3_ivas_mtdt_config.txt b/scripts/tests/data/ism3_ivas_mtdt_config.txt similarity index 100% rename from scripts/prerenderer_configs/ism3_ivas_mtdt_config.txt rename to scripts/tests/data/ism3_ivas_mtdt_config.txt diff --git a/scripts/prerenderer_configs/ism3_shorthand_config.txt b/scripts/tests/data/ism3_shorthand_config.txt similarity index 100% rename from scripts/prerenderer_configs/ism3_shorthand_config.txt rename to scripts/tests/data/ism3_shorthand_config.txt diff --git a/scripts/prerenderer_configs/ism4_ivas_mtdt_config.txt b/scripts/tests/data/ism4_ivas_mtdt_config.txt similarity index 100% rename from scripts/prerenderer_configs/ism4_ivas_mtdt_config.txt rename to scripts/tests/data/ism4_ivas_mtdt_config.txt diff --git a/scripts/prerenderer_configs/ism4_shorthand_config.txt b/scripts/tests/data/ism4_shorthand_config.txt similarity index 100% rename from scripts/prerenderer_configs/ism4_shorthand_config.txt rename to scripts/tests/data/ism4_shorthand_config.txt diff --git a/scripts/tests/data/ism_-90a_0e.csv b/scripts/tests/data/ism_-90a_0e.csv new file mode 100644 index 0000000000..766ba1023f --- /dev/null +++ b/scripts/tests/data/ism_-90a_0e.csv @@ -0,0 +1,750 @@ +0,-90,0,1,0,1 +1,-90,0,1,0,1 +2,-90,0,1,0,1 +3,-90,0,1,0,1 +4,-90,0,1,0,1 +5,-90,0,1,0,1 +6,-90,0,1,0,1 +7,-90,0,1,0,1 +8,-90,0,1,0,1 +9,-90,0,1,0,1 +10,-90,0,1,0,1 +11,-90,0,1,0,1 +12,-90,0,1,0,1 +13,-90,0,1,0,1 +14,-90,0,1,0,1 +15,-90,0,1,0,1 +16,-90,0,1,0,1 +17,-90,0,1,0,1 +18,-90,0,1,0,1 +19,-90,0,1,0,1 +20,-90,0,1,0,1 +21,-90,0,1,0,1 +22,-90,0,1,0,1 +23,-90,0,1,0,1 +24,-90,0,1,0,1 +25,-90,0,1,0,1 +26,-90,0,1,0,1 +27,-90,0,1,0,1 +28,-90,0,1,0,1 +29,-90,0,1,0,1 +30,-90,0,1,0,1 +31,-90,0,1,0,1 +32,-90,0,1,0,1 +33,-90,0,1,0,1 +34,-90,0,1,0,1 +35,-90,0,1,0,1 +36,-90,0,1,0,1 +37,-90,0,1,0,1 +38,-90,0,1,0,1 +39,-90,0,1,0,1 +40,-90,0,1,0,1 +41,-90,0,1,0,1 +42,-90,0,1,0,1 +43,-90,0,1,0,1 +44,-90,0,1,0,1 +45,-90,0,1,0,1 +46,-90,0,1,0,1 +47,-90,0,1,0,1 +48,-90,0,1,0,1 +49,-90,0,1,0,1 +50,-90,0,1,0,1 +51,-90,0,1,0,1 +52,-90,0,1,0,1 +53,-90,0,1,0,1 +54,-90,0,1,0,1 +55,-90,0,1,0,1 +56,-90,0,1,0,1 +57,-90,0,1,0,1 +58,-90,0,1,0,1 +59,-90,0,1,0,1 +60,-90,0,1,0,1 +61,-90,0,1,0,1 +62,-90,0,1,0,1 +63,-90,0,1,0,1 +64,-90,0,1,0,1 +65,-90,0,1,0,1 +66,-90,0,1,0,1 +67,-90,0,1,0,1 +68,-90,0,1,0,1 +69,-90,0,1,0,1 +70,-90,0,1,0,1 +71,-90,0,1,0,1 +72,-90,0,1,0,1 +73,-90,0,1,0,1 +74,-90,0,1,0,1 +75,-90,0,1,0,1 +76,-90,0,1,0,1 +77,-90,0,1,0,1 +78,-90,0,1,0,1 +79,-90,0,1,0,1 +80,-90,0,1,0,1 +81,-90,0,1,0,1 +82,-90,0,1,0,1 +83,-90,0,1,0,1 +84,-90,0,1,0,1 +85,-90,0,1,0,1 +86,-90,0,1,0,1 +87,-90,0,1,0,1 +88,-90,0,1,0,1 +89,-90,0,1,0,1 +90,-90,0,1,0,1 +91,-90,0,1,0,1 +92,-90,0,1,0,1 +93,-90,0,1,0,1 +94,-90,0,1,0,1 +95,-90,0,1,0,1 +96,-90,0,1,0,1 +97,-90,0,1,0,1 +98,-90,0,1,0,1 +99,-90,0,1,0,1 +100,-90,0,1,0,1 +101,-90,0,1,0,1 +102,-90,0,1,0,1 +103,-90,0,1,0,1 +104,-90,0,1,0,1 +105,-90,0,1,0,1 +106,-90,0,1,0,1 +107,-90,0,1,0,1 +108,-90,0,1,0,1 +109,-90,0,1,0,1 +110,-90,0,1,0,1 +111,-90,0,1,0,1 +112,-90,0,1,0,1 +113,-90,0,1,0,1 +114,-90,0,1,0,1 +115,-90,0,1,0,1 +116,-90,0,1,0,1 +117,-90,0,1,0,1 +118,-90,0,1,0,1 +119,-90,0,1,0,1 +120,-90,0,1,0,1 +121,-90,0,1,0,1 +122,-90,0,1,0,1 +123,-90,0,1,0,1 +124,-90,0,1,0,1 +125,-90,0,1,0,1 +126,-90,0,1,0,1 +127,-90,0,1,0,1 +128,-90,0,1,0,1 +129,-90,0,1,0,1 +130,-90,0,1,0,1 +131,-90,0,1,0,1 +132,-90,0,1,0,1 +133,-90,0,1,0,1 +134,-90,0,1,0,1 +135,-90,0,1,0,1 +136,-90,0,1,0,1 +137,-90,0,1,0,1 +138,-90,0,1,0,1 +139,-90,0,1,0,1 +140,-90,0,1,0,1 +141,-90,0,1,0,1 +142,-90,0,1,0,1 +143,-90,0,1,0,1 +144,-90,0,1,0,1 +145,-90,0,1,0,1 +146,-90,0,1,0,1 +147,-90,0,1,0,1 +148,-90,0,1,0,1 +149,-90,0,1,0,1 +150,-90,0,1,0,1 +151,-90,0,1,0,1 +152,-90,0,1,0,1 +153,-90,0,1,0,1 +154,-90,0,1,0,1 +155,-90,0,1,0,1 +156,-90,0,1,0,1 +157,-90,0,1,0,1 +158,-90,0,1,0,1 +159,-90,0,1,0,1 +160,-90,0,1,0,1 +161,-90,0,1,0,1 +162,-90,0,1,0,1 +163,-90,0,1,0,1 +164,-90,0,1,0,1 +165,-90,0,1,0,1 +166,-90,0,1,0,1 +167,-90,0,1,0,1 +168,-90,0,1,0,1 +169,-90,0,1,0,1 +170,-90,0,1,0,1 +171,-90,0,1,0,1 +172,-90,0,1,0,1 +173,-90,0,1,0,1 +174,-90,0,1,0,1 +175,-90,0,1,0,1 +176,-90,0,1,0,1 +177,-90,0,1,0,1 +178,-90,0,1,0,1 +179,-90,0,1,0,1 +180,-90,0,1,0,1 +181,-90,0,1,0,1 +182,-90,0,1,0,1 +183,-90,0,1,0,1 +184,-90,0,1,0,1 +185,-90,0,1,0,1 +186,-90,0,1,0,1 +187,-90,0,1,0,1 +188,-90,0,1,0,1 +189,-90,0,1,0,1 +190,-90,0,1,0,1 +191,-90,0,1,0,1 +192,-90,0,1,0,1 +193,-90,0,1,0,1 +194,-90,0,1,0,1 +195,-90,0,1,0,1 +196,-90,0,1,0,1 +197,-90,0,1,0,1 +198,-90,0,1,0,1 +199,-90,0,1,0,1 +200,-90,0,1,0,1 +201,-90,0,1,0,1 +202,-90,0,1,0,1 +203,-90,0,1,0,1 +204,-90,0,1,0,1 +205,-90,0,1,0,1 +206,-90,0,1,0,1 +207,-90,0,1,0,1 +208,-90,0,1,0,1 +209,-90,0,1,0,1 +210,-90,0,1,0,1 +211,-90,0,1,0,1 +212,-90,0,1,0,1 +213,-90,0,1,0,1 +214,-90,0,1,0,1 +215,-90,0,1,0,1 +216,-90,0,1,0,1 +217,-90,0,1,0,1 +218,-90,0,1,0,1 +219,-90,0,1,0,1 +220,-90,0,1,0,1 +221,-90,0,1,0,1 +222,-90,0,1,0,1 +223,-90,0,1,0,1 +224,-90,0,1,0,1 +225,-90,0,1,0,1 +226,-90,0,1,0,1 +227,-90,0,1,0,1 +228,-90,0,1,0,1 +229,-90,0,1,0,1 +230,-90,0,1,0,1 +231,-90,0,1,0,1 +232,-90,0,1,0,1 +233,-90,0,1,0,1 +234,-90,0,1,0,1 +235,-90,0,1,0,1 +236,-90,0,1,0,1 +237,-90,0,1,0,1 +238,-90,0,1,0,1 +239,-90,0,1,0,1 +240,-90,0,1,0,1 +241,-90,0,1,0,1 +242,-90,0,1,0,1 +243,-90,0,1,0,1 +244,-90,0,1,0,1 +245,-90,0,1,0,1 +246,-90,0,1,0,1 +247,-90,0,1,0,1 +248,-90,0,1,0,1 +249,-90,0,1,0,1 +250,-90,0,1,0,1 +251,-90,0,1,0,1 +252,-90,0,1,0,1 +253,-90,0,1,0,1 +254,-90,0,1,0,1 +255,-90,0,1,0,1 +256,-90,0,1,0,1 +257,-90,0,1,0,1 +258,-90,0,1,0,1 +259,-90,0,1,0,1 +260,-90,0,1,0,1 +261,-90,0,1,0,1 +262,-90,0,1,0,1 +263,-90,0,1,0,1 +264,-90,0,1,0,1 +265,-90,0,1,0,1 +266,-90,0,1,0,1 +267,-90,0,1,0,1 +268,-90,0,1,0,1 +269,-90,0,1,0,1 +270,-90,0,1,0,1 +271,-90,0,1,0,1 +272,-90,0,1,0,1 +273,-90,0,1,0,1 +274,-90,0,1,0,1 +275,-90,0,1,0,1 +276,-90,0,1,0,1 +277,-90,0,1,0,1 +278,-90,0,1,0,1 +279,-90,0,1,0,1 +280,-90,0,1,0,1 +281,-90,0,1,0,1 +282,-90,0,1,0,1 +283,-90,0,1,0,1 +284,-90,0,1,0,1 +285,-90,0,1,0,1 +286,-90,0,1,0,1 +287,-90,0,1,0,1 +288,-90,0,1,0,1 +289,-90,0,1,0,1 +290,-90,0,1,0,1 +291,-90,0,1,0,1 +292,-90,0,1,0,1 +293,-90,0,1,0,1 +294,-90,0,1,0,1 +295,-90,0,1,0,1 +296,-90,0,1,0,1 +297,-90,0,1,0,1 +298,-90,0,1,0,1 +299,-90,0,1,0,1 +300,-90,0,1,0,1 +301,-90,0,1,0,1 +302,-90,0,1,0,1 +303,-90,0,1,0,1 +304,-90,0,1,0,1 +305,-90,0,1,0,1 +306,-90,0,1,0,1 +307,-90,0,1,0,1 +308,-90,0,1,0,1 +309,-90,0,1,0,1 +310,-90,0,1,0,1 +311,-90,0,1,0,1 +312,-90,0,1,0,1 +313,-90,0,1,0,1 +314,-90,0,1,0,1 +315,-90,0,1,0,1 +316,-90,0,1,0,1 +317,-90,0,1,0,1 +318,-90,0,1,0,1 +319,-90,0,1,0,1 +320,-90,0,1,0,1 +321,-90,0,1,0,1 +322,-90,0,1,0,1 +323,-90,0,1,0,1 +324,-90,0,1,0,1 +325,-90,0,1,0,1 +326,-90,0,1,0,1 +327,-90,0,1,0,1 +328,-90,0,1,0,1 +329,-90,0,1,0,1 +330,-90,0,1,0,1 +331,-90,0,1,0,1 +332,-90,0,1,0,1 +333,-90,0,1,0,1 +334,-90,0,1,0,1 +335,-90,0,1,0,1 +336,-90,0,1,0,1 +337,-90,0,1,0,1 +338,-90,0,1,0,1 +339,-90,0,1,0,1 +340,-90,0,1,0,1 +341,-90,0,1,0,1 +342,-90,0,1,0,1 +343,-90,0,1,0,1 +344,-90,0,1,0,1 +345,-90,0,1,0,1 +346,-90,0,1,0,1 +347,-90,0,1,0,1 +348,-90,0,1,0,1 +349,-90,0,1,0,1 +350,-90,0,1,0,1 +351,-90,0,1,0,1 +352,-90,0,1,0,1 +353,-90,0,1,0,1 +354,-90,0,1,0,1 +355,-90,0,1,0,1 +356,-90,0,1,0,1 +357,-90,0,1,0,1 +358,-90,0,1,0,1 +359,-90,0,1,0,1 +360,-90,0,1,0,1 +361,-90,0,1,0,1 +362,-90,0,1,0,1 +363,-90,0,1,0,1 +364,-90,0,1,0,1 +365,-90,0,1,0,1 +366,-90,0,1,0,1 +367,-90,0,1,0,1 +368,-90,0,1,0,1 +369,-90,0,1,0,1 +370,-90,0,1,0,1 +371,-90,0,1,0,1 +372,-90,0,1,0,1 +373,-90,0,1,0,1 +374,-90,0,1,0,1 +375,-90,0,1,0,1 +376,-90,0,1,0,1 +377,-90,0,1,0,1 +378,-90,0,1,0,1 +379,-90,0,1,0,1 +380,-90,0,1,0,1 +381,-90,0,1,0,1 +382,-90,0,1,0,1 +383,-90,0,1,0,1 +384,-90,0,1,0,1 +385,-90,0,1,0,1 +386,-90,0,1,0,1 +387,-90,0,1,0,1 +388,-90,0,1,0,1 +389,-90,0,1,0,1 +390,-90,0,1,0,1 +391,-90,0,1,0,1 +392,-90,0,1,0,1 +393,-90,0,1,0,1 +394,-90,0,1,0,1 +395,-90,0,1,0,1 +396,-90,0,1,0,1 +397,-90,0,1,0,1 +398,-90,0,1,0,1 +399,-90,0,1,0,1 +400,-90,0,1,0,1 +401,-90,0,1,0,1 +402,-90,0,1,0,1 +403,-90,0,1,0,1 +404,-90,0,1,0,1 +405,-90,0,1,0,1 +406,-90,0,1,0,1 +407,-90,0,1,0,1 +408,-90,0,1,0,1 +409,-90,0,1,0,1 +410,-90,0,1,0,1 +411,-90,0,1,0,1 +412,-90,0,1,0,1 +413,-90,0,1,0,1 +414,-90,0,1,0,1 +415,-90,0,1,0,1 +416,-90,0,1,0,1 +417,-90,0,1,0,1 +418,-90,0,1,0,1 +419,-90,0,1,0,1 +420,-90,0,1,0,1 +421,-90,0,1,0,1 +422,-90,0,1,0,1 +423,-90,0,1,0,1 +424,-90,0,1,0,1 +425,-90,0,1,0,1 +426,-90,0,1,0,1 +427,-90,0,1,0,1 +428,-90,0,1,0,1 +429,-90,0,1,0,1 +430,-90,0,1,0,1 +431,-90,0,1,0,1 +432,-90,0,1,0,1 +433,-90,0,1,0,1 +434,-90,0,1,0,1 +435,-90,0,1,0,1 +436,-90,0,1,0,1 +437,-90,0,1,0,1 +438,-90,0,1,0,1 +439,-90,0,1,0,1 +440,-90,0,1,0,1 +441,-90,0,1,0,1 +442,-90,0,1,0,1 +443,-90,0,1,0,1 +444,-90,0,1,0,1 +445,-90,0,1,0,1 +446,-90,0,1,0,1 +447,-90,0,1,0,1 +448,-90,0,1,0,1 +449,-90,0,1,0,1 +450,-90,0,1,0,1 +451,-90,0,1,0,1 +452,-90,0,1,0,1 +453,-90,0,1,0,1 +454,-90,0,1,0,1 +455,-90,0,1,0,1 +456,-90,0,1,0,1 +457,-90,0,1,0,1 +458,-90,0,1,0,1 +459,-90,0,1,0,1 +460,-90,0,1,0,1 +461,-90,0,1,0,1 +462,-90,0,1,0,1 +463,-90,0,1,0,1 +464,-90,0,1,0,1 +465,-90,0,1,0,1 +466,-90,0,1,0,1 +467,-90,0,1,0,1 +468,-90,0,1,0,1 +469,-90,0,1,0,1 +470,-90,0,1,0,1 +471,-90,0,1,0,1 +472,-90,0,1,0,1 +473,-90,0,1,0,1 +474,-90,0,1,0,1 +475,-90,0,1,0,1 +476,-90,0,1,0,1 +477,-90,0,1,0,1 +478,-90,0,1,0,1 +479,-90,0,1,0,1 +480,-90,0,1,0,1 +481,-90,0,1,0,1 +482,-90,0,1,0,1 +483,-90,0,1,0,1 +484,-90,0,1,0,1 +485,-90,0,1,0,1 +486,-90,0,1,0,1 +487,-90,0,1,0,1 +488,-90,0,1,0,1 +489,-90,0,1,0,1 +490,-90,0,1,0,1 +491,-90,0,1,0,1 +492,-90,0,1,0,1 +493,-90,0,1,0,1 +494,-90,0,1,0,1 +495,-90,0,1,0,1 +496,-90,0,1,0,1 +497,-90,0,1,0,1 +498,-90,0,1,0,1 +499,-90,0,1,0,1 +500,-90,0,1,0,1 +501,-90,0,1,0,1 +502,-90,0,1,0,1 +503,-90,0,1,0,1 +504,-90,0,1,0,1 +505,-90,0,1,0,1 +506,-90,0,1,0,1 +507,-90,0,1,0,1 +508,-90,0,1,0,1 +509,-90,0,1,0,1 +510,-90,0,1,0,1 +511,-90,0,1,0,1 +512,-90,0,1,0,1 +513,-90,0,1,0,1 +514,-90,0,1,0,1 +515,-90,0,1,0,1 +516,-90,0,1,0,1 +517,-90,0,1,0,1 +518,-90,0,1,0,1 +519,-90,0,1,0,1 +520,-90,0,1,0,1 +521,-90,0,1,0,1 +522,-90,0,1,0,1 +523,-90,0,1,0,1 +524,-90,0,1,0,1 +525,-90,0,1,0,1 +526,-90,0,1,0,1 +527,-90,0,1,0,1 +528,-90,0,1,0,1 +529,-90,0,1,0,1 +530,-90,0,1,0,1 +531,-90,0,1,0,1 +532,-90,0,1,0,1 +533,-90,0,1,0,1 +534,-90,0,1,0,1 +535,-90,0,1,0,1 +536,-90,0,1,0,1 +537,-90,0,1,0,1 +538,-90,0,1,0,1 +539,-90,0,1,0,1 +540,-90,0,1,0,1 +541,-90,0,1,0,1 +542,-90,0,1,0,1 +543,-90,0,1,0,1 +544,-90,0,1,0,1 +545,-90,0,1,0,1 +546,-90,0,1,0,1 +547,-90,0,1,0,1 +548,-90,0,1,0,1 +549,-90,0,1,0,1 +550,-90,0,1,0,1 +551,-90,0,1,0,1 +552,-90,0,1,0,1 +553,-90,0,1,0,1 +554,-90,0,1,0,1 +555,-90,0,1,0,1 +556,-90,0,1,0,1 +557,-90,0,1,0,1 +558,-90,0,1,0,1 +559,-90,0,1,0,1 +560,-90,0,1,0,1 +561,-90,0,1,0,1 +562,-90,0,1,0,1 +563,-90,0,1,0,1 +564,-90,0,1,0,1 +565,-90,0,1,0,1 +566,-90,0,1,0,1 +567,-90,0,1,0,1 +568,-90,0,1,0,1 +569,-90,0,1,0,1 +570,-90,0,1,0,1 +571,-90,0,1,0,1 +572,-90,0,1,0,1 +573,-90,0,1,0,1 +574,-90,0,1,0,1 +575,-90,0,1,0,1 +576,-90,0,1,0,1 +577,-90,0,1,0,1 +578,-90,0,1,0,1 +579,-90,0,1,0,1 +580,-90,0,1,0,1 +581,-90,0,1,0,1 +582,-90,0,1,0,1 +583,-90,0,1,0,1 +584,-90,0,1,0,1 +585,-90,0,1,0,1 +586,-90,0,1,0,1 +587,-90,0,1,0,1 +588,-90,0,1,0,1 +589,-90,0,1,0,1 +590,-90,0,1,0,1 +591,-90,0,1,0,1 +592,-90,0,1,0,1 +593,-90,0,1,0,1 +594,-90,0,1,0,1 +595,-90,0,1,0,1 +596,-90,0,1,0,1 +597,-90,0,1,0,1 +598,-90,0,1,0,1 +599,-90,0,1,0,1 +600,-90,0,1,0,1 +601,-90,0,1,0,1 +602,-90,0,1,0,1 +603,-90,0,1,0,1 +604,-90,0,1,0,1 +605,-90,0,1,0,1 +606,-90,0,1,0,1 +607,-90,0,1,0,1 +608,-90,0,1,0,1 +609,-90,0,1,0,1 +610,-90,0,1,0,1 +611,-90,0,1,0,1 +612,-90,0,1,0,1 +613,-90,0,1,0,1 +614,-90,0,1,0,1 +615,-90,0,1,0,1 +616,-90,0,1,0,1 +617,-90,0,1,0,1 +618,-90,0,1,0,1 +619,-90,0,1,0,1 +620,-90,0,1,0,1 +621,-90,0,1,0,1 +622,-90,0,1,0,1 +623,-90,0,1,0,1 +624,-90,0,1,0,1 +625,-90,0,1,0,1 +626,-90,0,1,0,1 +627,-90,0,1,0,1 +628,-90,0,1,0,1 +629,-90,0,1,0,1 +630,-90,0,1,0,1 +631,-90,0,1,0,1 +632,-90,0,1,0,1 +633,-90,0,1,0,1 +634,-90,0,1,0,1 +635,-90,0,1,0,1 +636,-90,0,1,0,1 +637,-90,0,1,0,1 +638,-90,0,1,0,1 +639,-90,0,1,0,1 +640,-90,0,1,0,1 +641,-90,0,1,0,1 +642,-90,0,1,0,1 +643,-90,0,1,0,1 +644,-90,0,1,0,1 +645,-90,0,1,0,1 +646,-90,0,1,0,1 +647,-90,0,1,0,1 +648,-90,0,1,0,1 +649,-90,0,1,0,1 +650,-90,0,1,0,1 +651,-90,0,1,0,1 +652,-90,0,1,0,1 +653,-90,0,1,0,1 +654,-90,0,1,0,1 +655,-90,0,1,0,1 +656,-90,0,1,0,1 +657,-90,0,1,0,1 +658,-90,0,1,0,1 +659,-90,0,1,0,1 +660,-90,0,1,0,1 +661,-90,0,1,0,1 +662,-90,0,1,0,1 +663,-90,0,1,0,1 +664,-90,0,1,0,1 +665,-90,0,1,0,1 +666,-90,0,1,0,1 +667,-90,0,1,0,1 +668,-90,0,1,0,1 +669,-90,0,1,0,1 +670,-90,0,1,0,1 +671,-90,0,1,0,1 +672,-90,0,1,0,1 +673,-90,0,1,0,1 +674,-90,0,1,0,1 +675,-90,0,1,0,1 +676,-90,0,1,0,1 +677,-90,0,1,0,1 +678,-90,0,1,0,1 +679,-90,0,1,0,1 +680,-90,0,1,0,1 +681,-90,0,1,0,1 +682,-90,0,1,0,1 +683,-90,0,1,0,1 +684,-90,0,1,0,1 +685,-90,0,1,0,1 +686,-90,0,1,0,1 +687,-90,0,1,0,1 +688,-90,0,1,0,1 +689,-90,0,1,0,1 +690,-90,0,1,0,1 +691,-90,0,1,0,1 +692,-90,0,1,0,1 +693,-90,0,1,0,1 +694,-90,0,1,0,1 +695,-90,0,1,0,1 +696,-90,0,1,0,1 +697,-90,0,1,0,1 +698,-90,0,1,0,1 +699,-90,0,1,0,1 +700,-90,0,1,0,1 +701,-90,0,1,0,1 +702,-90,0,1,0,1 +703,-90,0,1,0,1 +704,-90,0,1,0,1 +705,-90,0,1,0,1 +706,-90,0,1,0,1 +707,-90,0,1,0,1 +708,-90,0,1,0,1 +709,-90,0,1,0,1 +710,-90,0,1,0,1 +711,-90,0,1,0,1 +712,-90,0,1,0,1 +713,-90,0,1,0,1 +714,-90,0,1,0,1 +715,-90,0,1,0,1 +716,-90,0,1,0,1 +717,-90,0,1,0,1 +718,-90,0,1,0,1 +719,-90,0,1,0,1 +720,-90,0,1,0,1 +721,-90,0,1,0,1 +722,-90,0,1,0,1 +723,-90,0,1,0,1 +724,-90,0,1,0,1 +725,-90,0,1,0,1 +726,-90,0,1,0,1 +727,-90,0,1,0,1 +728,-90,0,1,0,1 +729,-90,0,1,0,1 +730,-90,0,1,0,1 +731,-90,0,1,0,1 +732,-90,0,1,0,1 +733,-90,0,1,0,1 +734,-90,0,1,0,1 +735,-90,0,1,0,1 +736,-90,0,1,0,1 +737,-90,0,1,0,1 +738,-90,0,1,0,1 +739,-90,0,1,0,1 +740,-90,0,1,0,1 +741,-90,0,1,0,1 +742,-90,0,1,0,1 +743,-90,0,1,0,1 +744,-90,0,1,0,1 +745,-90,0,1,0,1 +746,-90,0,1,0,1 +747,-90,0,1,0,1 +748,-90,0,1,0,1 +749,-90,0,1,0,1 diff --git a/scripts/tests/data/ism_0a_0e.csv b/scripts/tests/data/ism_0a_0e.csv new file mode 100644 index 0000000000..fa12ec7c33 --- /dev/null +++ b/scripts/tests/data/ism_0a_0e.csv @@ -0,0 +1,750 @@ +0,0,0,1,0,1 +1,0,0,1,0,1 +2,0,0,1,0,1 +3,0,0,1,0,1 +4,0,0,1,0,1 +5,0,0,1,0,1 +6,0,0,1,0,1 +7,0,0,1,0,1 +8,0,0,1,0,1 +9,0,0,1,0,1 +10,0,0,1,0,1 +11,0,0,1,0,1 +12,0,0,1,0,1 +13,0,0,1,0,1 +14,0,0,1,0,1 +15,0,0,1,0,1 +16,0,0,1,0,1 +17,0,0,1,0,1 +18,0,0,1,0,1 +19,0,0,1,0,1 +20,0,0,1,0,1 +21,0,0,1,0,1 +22,0,0,1,0,1 +23,0,0,1,0,1 +24,0,0,1,0,1 +25,0,0,1,0,1 +26,0,0,1,0,1 +27,0,0,1,0,1 +28,0,0,1,0,1 +29,0,0,1,0,1 +30,0,0,1,0,1 +31,0,0,1,0,1 +32,0,0,1,0,1 +33,0,0,1,0,1 +34,0,0,1,0,1 +35,0,0,1,0,1 +36,0,0,1,0,1 +37,0,0,1,0,1 +38,0,0,1,0,1 +39,0,0,1,0,1 +40,0,0,1,0,1 +41,0,0,1,0,1 +42,0,0,1,0,1 +43,0,0,1,0,1 +44,0,0,1,0,1 +45,0,0,1,0,1 +46,0,0,1,0,1 +47,0,0,1,0,1 +48,0,0,1,0,1 +49,0,0,1,0,1 +50,0,0,1,0,1 +51,0,0,1,0,1 +52,0,0,1,0,1 +53,0,0,1,0,1 +54,0,0,1,0,1 +55,0,0,1,0,1 +56,0,0,1,0,1 +57,0,0,1,0,1 +58,0,0,1,0,1 +59,0,0,1,0,1 +60,0,0,1,0,1 +61,0,0,1,0,1 +62,0,0,1,0,1 +63,0,0,1,0,1 +64,0,0,1,0,1 +65,0,0,1,0,1 +66,0,0,1,0,1 +67,0,0,1,0,1 +68,0,0,1,0,1 +69,0,0,1,0,1 +70,0,0,1,0,1 +71,0,0,1,0,1 +72,0,0,1,0,1 +73,0,0,1,0,1 +74,0,0,1,0,1 +75,0,0,1,0,1 +76,0,0,1,0,1 +77,0,0,1,0,1 +78,0,0,1,0,1 +79,0,0,1,0,1 +80,0,0,1,0,1 +81,0,0,1,0,1 +82,0,0,1,0,1 +83,0,0,1,0,1 +84,0,0,1,0,1 +85,0,0,1,0,1 +86,0,0,1,0,1 +87,0,0,1,0,1 +88,0,0,1,0,1 +89,0,0,1,0,1 +90,0,0,1,0,1 +91,0,0,1,0,1 +92,0,0,1,0,1 +93,0,0,1,0,1 +94,0,0,1,0,1 +95,0,0,1,0,1 +96,0,0,1,0,1 +97,0,0,1,0,1 +98,0,0,1,0,1 +99,0,0,1,0,1 +100,0,0,1,0,1 +101,0,0,1,0,1 +102,0,0,1,0,1 +103,0,0,1,0,1 +104,0,0,1,0,1 +105,0,0,1,0,1 +106,0,0,1,0,1 +107,0,0,1,0,1 +108,0,0,1,0,1 +109,0,0,1,0,1 +110,0,0,1,0,1 +111,0,0,1,0,1 +112,0,0,1,0,1 +113,0,0,1,0,1 +114,0,0,1,0,1 +115,0,0,1,0,1 +116,0,0,1,0,1 +117,0,0,1,0,1 +118,0,0,1,0,1 +119,0,0,1,0,1 +120,0,0,1,0,1 +121,0,0,1,0,1 +122,0,0,1,0,1 +123,0,0,1,0,1 +124,0,0,1,0,1 +125,0,0,1,0,1 +126,0,0,1,0,1 +127,0,0,1,0,1 +128,0,0,1,0,1 +129,0,0,1,0,1 +130,0,0,1,0,1 +131,0,0,1,0,1 +132,0,0,1,0,1 +133,0,0,1,0,1 +134,0,0,1,0,1 +135,0,0,1,0,1 +136,0,0,1,0,1 +137,0,0,1,0,1 +138,0,0,1,0,1 +139,0,0,1,0,1 +140,0,0,1,0,1 +141,0,0,1,0,1 +142,0,0,1,0,1 +143,0,0,1,0,1 +144,0,0,1,0,1 +145,0,0,1,0,1 +146,0,0,1,0,1 +147,0,0,1,0,1 +148,0,0,1,0,1 +149,0,0,1,0,1 +150,0,0,1,0,1 +151,0,0,1,0,1 +152,0,0,1,0,1 +153,0,0,1,0,1 +154,0,0,1,0,1 +155,0,0,1,0,1 +156,0,0,1,0,1 +157,0,0,1,0,1 +158,0,0,1,0,1 +159,0,0,1,0,1 +160,0,0,1,0,1 +161,0,0,1,0,1 +162,0,0,1,0,1 +163,0,0,1,0,1 +164,0,0,1,0,1 +165,0,0,1,0,1 +166,0,0,1,0,1 +167,0,0,1,0,1 +168,0,0,1,0,1 +169,0,0,1,0,1 +170,0,0,1,0,1 +171,0,0,1,0,1 +172,0,0,1,0,1 +173,0,0,1,0,1 +174,0,0,1,0,1 +175,0,0,1,0,1 +176,0,0,1,0,1 +177,0,0,1,0,1 +178,0,0,1,0,1 +179,0,0,1,0,1 +180,0,0,1,0,1 +181,0,0,1,0,1 +182,0,0,1,0,1 +183,0,0,1,0,1 +184,0,0,1,0,1 +185,0,0,1,0,1 +186,0,0,1,0,1 +187,0,0,1,0,1 +188,0,0,1,0,1 +189,0,0,1,0,1 +190,0,0,1,0,1 +191,0,0,1,0,1 +192,0,0,1,0,1 +193,0,0,1,0,1 +194,0,0,1,0,1 +195,0,0,1,0,1 +196,0,0,1,0,1 +197,0,0,1,0,1 +198,0,0,1,0,1 +199,0,0,1,0,1 +200,0,0,1,0,1 +201,0,0,1,0,1 +202,0,0,1,0,1 +203,0,0,1,0,1 +204,0,0,1,0,1 +205,0,0,1,0,1 +206,0,0,1,0,1 +207,0,0,1,0,1 +208,0,0,1,0,1 +209,0,0,1,0,1 +210,0,0,1,0,1 +211,0,0,1,0,1 +212,0,0,1,0,1 +213,0,0,1,0,1 +214,0,0,1,0,1 +215,0,0,1,0,1 +216,0,0,1,0,1 +217,0,0,1,0,1 +218,0,0,1,0,1 +219,0,0,1,0,1 +220,0,0,1,0,1 +221,0,0,1,0,1 +222,0,0,1,0,1 +223,0,0,1,0,1 +224,0,0,1,0,1 +225,0,0,1,0,1 +226,0,0,1,0,1 +227,0,0,1,0,1 +228,0,0,1,0,1 +229,0,0,1,0,1 +230,0,0,1,0,1 +231,0,0,1,0,1 +232,0,0,1,0,1 +233,0,0,1,0,1 +234,0,0,1,0,1 +235,0,0,1,0,1 +236,0,0,1,0,1 +237,0,0,1,0,1 +238,0,0,1,0,1 +239,0,0,1,0,1 +240,0,0,1,0,1 +241,0,0,1,0,1 +242,0,0,1,0,1 +243,0,0,1,0,1 +244,0,0,1,0,1 +245,0,0,1,0,1 +246,0,0,1,0,1 +247,0,0,1,0,1 +248,0,0,1,0,1 +249,0,0,1,0,1 +250,0,0,1,0,1 +251,0,0,1,0,1 +252,0,0,1,0,1 +253,0,0,1,0,1 +254,0,0,1,0,1 +255,0,0,1,0,1 +256,0,0,1,0,1 +257,0,0,1,0,1 +258,0,0,1,0,1 +259,0,0,1,0,1 +260,0,0,1,0,1 +261,0,0,1,0,1 +262,0,0,1,0,1 +263,0,0,1,0,1 +264,0,0,1,0,1 +265,0,0,1,0,1 +266,0,0,1,0,1 +267,0,0,1,0,1 +268,0,0,1,0,1 +269,0,0,1,0,1 +270,0,0,1,0,1 +271,0,0,1,0,1 +272,0,0,1,0,1 +273,0,0,1,0,1 +274,0,0,1,0,1 +275,0,0,1,0,1 +276,0,0,1,0,1 +277,0,0,1,0,1 +278,0,0,1,0,1 +279,0,0,1,0,1 +280,0,0,1,0,1 +281,0,0,1,0,1 +282,0,0,1,0,1 +283,0,0,1,0,1 +284,0,0,1,0,1 +285,0,0,1,0,1 +286,0,0,1,0,1 +287,0,0,1,0,1 +288,0,0,1,0,1 +289,0,0,1,0,1 +290,0,0,1,0,1 +291,0,0,1,0,1 +292,0,0,1,0,1 +293,0,0,1,0,1 +294,0,0,1,0,1 +295,0,0,1,0,1 +296,0,0,1,0,1 +297,0,0,1,0,1 +298,0,0,1,0,1 +299,0,0,1,0,1 +300,0,0,1,0,1 +301,0,0,1,0,1 +302,0,0,1,0,1 +303,0,0,1,0,1 +304,0,0,1,0,1 +305,0,0,1,0,1 +306,0,0,1,0,1 +307,0,0,1,0,1 +308,0,0,1,0,1 +309,0,0,1,0,1 +310,0,0,1,0,1 +311,0,0,1,0,1 +312,0,0,1,0,1 +313,0,0,1,0,1 +314,0,0,1,0,1 +315,0,0,1,0,1 +316,0,0,1,0,1 +317,0,0,1,0,1 +318,0,0,1,0,1 +319,0,0,1,0,1 +320,0,0,1,0,1 +321,0,0,1,0,1 +322,0,0,1,0,1 +323,0,0,1,0,1 +324,0,0,1,0,1 +325,0,0,1,0,1 +326,0,0,1,0,1 +327,0,0,1,0,1 +328,0,0,1,0,1 +329,0,0,1,0,1 +330,0,0,1,0,1 +331,0,0,1,0,1 +332,0,0,1,0,1 +333,0,0,1,0,1 +334,0,0,1,0,1 +335,0,0,1,0,1 +336,0,0,1,0,1 +337,0,0,1,0,1 +338,0,0,1,0,1 +339,0,0,1,0,1 +340,0,0,1,0,1 +341,0,0,1,0,1 +342,0,0,1,0,1 +343,0,0,1,0,1 +344,0,0,1,0,1 +345,0,0,1,0,1 +346,0,0,1,0,1 +347,0,0,1,0,1 +348,0,0,1,0,1 +349,0,0,1,0,1 +350,0,0,1,0,1 +351,0,0,1,0,1 +352,0,0,1,0,1 +353,0,0,1,0,1 +354,0,0,1,0,1 +355,0,0,1,0,1 +356,0,0,1,0,1 +357,0,0,1,0,1 +358,0,0,1,0,1 +359,0,0,1,0,1 +360,0,0,1,0,1 +361,0,0,1,0,1 +362,0,0,1,0,1 +363,0,0,1,0,1 +364,0,0,1,0,1 +365,0,0,1,0,1 +366,0,0,1,0,1 +367,0,0,1,0,1 +368,0,0,1,0,1 +369,0,0,1,0,1 +370,0,0,1,0,1 +371,0,0,1,0,1 +372,0,0,1,0,1 +373,0,0,1,0,1 +374,0,0,1,0,1 +375,0,0,1,0,1 +376,0,0,1,0,1 +377,0,0,1,0,1 +378,0,0,1,0,1 +379,0,0,1,0,1 +380,0,0,1,0,1 +381,0,0,1,0,1 +382,0,0,1,0,1 +383,0,0,1,0,1 +384,0,0,1,0,1 +385,0,0,1,0,1 +386,0,0,1,0,1 +387,0,0,1,0,1 +388,0,0,1,0,1 +389,0,0,1,0,1 +390,0,0,1,0,1 +391,0,0,1,0,1 +392,0,0,1,0,1 +393,0,0,1,0,1 +394,0,0,1,0,1 +395,0,0,1,0,1 +396,0,0,1,0,1 +397,0,0,1,0,1 +398,0,0,1,0,1 +399,0,0,1,0,1 +400,0,0,1,0,1 +401,0,0,1,0,1 +402,0,0,1,0,1 +403,0,0,1,0,1 +404,0,0,1,0,1 +405,0,0,1,0,1 +406,0,0,1,0,1 +407,0,0,1,0,1 +408,0,0,1,0,1 +409,0,0,1,0,1 +410,0,0,1,0,1 +411,0,0,1,0,1 +412,0,0,1,0,1 +413,0,0,1,0,1 +414,0,0,1,0,1 +415,0,0,1,0,1 +416,0,0,1,0,1 +417,0,0,1,0,1 +418,0,0,1,0,1 +419,0,0,1,0,1 +420,0,0,1,0,1 +421,0,0,1,0,1 +422,0,0,1,0,1 +423,0,0,1,0,1 +424,0,0,1,0,1 +425,0,0,1,0,1 +426,0,0,1,0,1 +427,0,0,1,0,1 +428,0,0,1,0,1 +429,0,0,1,0,1 +430,0,0,1,0,1 +431,0,0,1,0,1 +432,0,0,1,0,1 +433,0,0,1,0,1 +434,0,0,1,0,1 +435,0,0,1,0,1 +436,0,0,1,0,1 +437,0,0,1,0,1 +438,0,0,1,0,1 +439,0,0,1,0,1 +440,0,0,1,0,1 +441,0,0,1,0,1 +442,0,0,1,0,1 +443,0,0,1,0,1 +444,0,0,1,0,1 +445,0,0,1,0,1 +446,0,0,1,0,1 +447,0,0,1,0,1 +448,0,0,1,0,1 +449,0,0,1,0,1 +450,0,0,1,0,1 +451,0,0,1,0,1 +452,0,0,1,0,1 +453,0,0,1,0,1 +454,0,0,1,0,1 +455,0,0,1,0,1 +456,0,0,1,0,1 +457,0,0,1,0,1 +458,0,0,1,0,1 +459,0,0,1,0,1 +460,0,0,1,0,1 +461,0,0,1,0,1 +462,0,0,1,0,1 +463,0,0,1,0,1 +464,0,0,1,0,1 +465,0,0,1,0,1 +466,0,0,1,0,1 +467,0,0,1,0,1 +468,0,0,1,0,1 +469,0,0,1,0,1 +470,0,0,1,0,1 +471,0,0,1,0,1 +472,0,0,1,0,1 +473,0,0,1,0,1 +474,0,0,1,0,1 +475,0,0,1,0,1 +476,0,0,1,0,1 +477,0,0,1,0,1 +478,0,0,1,0,1 +479,0,0,1,0,1 +480,0,0,1,0,1 +481,0,0,1,0,1 +482,0,0,1,0,1 +483,0,0,1,0,1 +484,0,0,1,0,1 +485,0,0,1,0,1 +486,0,0,1,0,1 +487,0,0,1,0,1 +488,0,0,1,0,1 +489,0,0,1,0,1 +490,0,0,1,0,1 +491,0,0,1,0,1 +492,0,0,1,0,1 +493,0,0,1,0,1 +494,0,0,1,0,1 +495,0,0,1,0,1 +496,0,0,1,0,1 +497,0,0,1,0,1 +498,0,0,1,0,1 +499,0,0,1,0,1 +500,0,0,1,0,1 +501,0,0,1,0,1 +502,0,0,1,0,1 +503,0,0,1,0,1 +504,0,0,1,0,1 +505,0,0,1,0,1 +506,0,0,1,0,1 +507,0,0,1,0,1 +508,0,0,1,0,1 +509,0,0,1,0,1 +510,0,0,1,0,1 +511,0,0,1,0,1 +512,0,0,1,0,1 +513,0,0,1,0,1 +514,0,0,1,0,1 +515,0,0,1,0,1 +516,0,0,1,0,1 +517,0,0,1,0,1 +518,0,0,1,0,1 +519,0,0,1,0,1 +520,0,0,1,0,1 +521,0,0,1,0,1 +522,0,0,1,0,1 +523,0,0,1,0,1 +524,0,0,1,0,1 +525,0,0,1,0,1 +526,0,0,1,0,1 +527,0,0,1,0,1 +528,0,0,1,0,1 +529,0,0,1,0,1 +530,0,0,1,0,1 +531,0,0,1,0,1 +532,0,0,1,0,1 +533,0,0,1,0,1 +534,0,0,1,0,1 +535,0,0,1,0,1 +536,0,0,1,0,1 +537,0,0,1,0,1 +538,0,0,1,0,1 +539,0,0,1,0,1 +540,0,0,1,0,1 +541,0,0,1,0,1 +542,0,0,1,0,1 +543,0,0,1,0,1 +544,0,0,1,0,1 +545,0,0,1,0,1 +546,0,0,1,0,1 +547,0,0,1,0,1 +548,0,0,1,0,1 +549,0,0,1,0,1 +550,0,0,1,0,1 +551,0,0,1,0,1 +552,0,0,1,0,1 +553,0,0,1,0,1 +554,0,0,1,0,1 +555,0,0,1,0,1 +556,0,0,1,0,1 +557,0,0,1,0,1 +558,0,0,1,0,1 +559,0,0,1,0,1 +560,0,0,1,0,1 +561,0,0,1,0,1 +562,0,0,1,0,1 +563,0,0,1,0,1 +564,0,0,1,0,1 +565,0,0,1,0,1 +566,0,0,1,0,1 +567,0,0,1,0,1 +568,0,0,1,0,1 +569,0,0,1,0,1 +570,0,0,1,0,1 +571,0,0,1,0,1 +572,0,0,1,0,1 +573,0,0,1,0,1 +574,0,0,1,0,1 +575,0,0,1,0,1 +576,0,0,1,0,1 +577,0,0,1,0,1 +578,0,0,1,0,1 +579,0,0,1,0,1 +580,0,0,1,0,1 +581,0,0,1,0,1 +582,0,0,1,0,1 +583,0,0,1,0,1 +584,0,0,1,0,1 +585,0,0,1,0,1 +586,0,0,1,0,1 +587,0,0,1,0,1 +588,0,0,1,0,1 +589,0,0,1,0,1 +590,0,0,1,0,1 +591,0,0,1,0,1 +592,0,0,1,0,1 +593,0,0,1,0,1 +594,0,0,1,0,1 +595,0,0,1,0,1 +596,0,0,1,0,1 +597,0,0,1,0,1 +598,0,0,1,0,1 +599,0,0,1,0,1 +600,0,0,1,0,1 +601,0,0,1,0,1 +602,0,0,1,0,1 +603,0,0,1,0,1 +604,0,0,1,0,1 +605,0,0,1,0,1 +606,0,0,1,0,1 +607,0,0,1,0,1 +608,0,0,1,0,1 +609,0,0,1,0,1 +610,0,0,1,0,1 +611,0,0,1,0,1 +612,0,0,1,0,1 +613,0,0,1,0,1 +614,0,0,1,0,1 +615,0,0,1,0,1 +616,0,0,1,0,1 +617,0,0,1,0,1 +618,0,0,1,0,1 +619,0,0,1,0,1 +620,0,0,1,0,1 +621,0,0,1,0,1 +622,0,0,1,0,1 +623,0,0,1,0,1 +624,0,0,1,0,1 +625,0,0,1,0,1 +626,0,0,1,0,1 +627,0,0,1,0,1 +628,0,0,1,0,1 +629,0,0,1,0,1 +630,0,0,1,0,1 +631,0,0,1,0,1 +632,0,0,1,0,1 +633,0,0,1,0,1 +634,0,0,1,0,1 +635,0,0,1,0,1 +636,0,0,1,0,1 +637,0,0,1,0,1 +638,0,0,1,0,1 +639,0,0,1,0,1 +640,0,0,1,0,1 +641,0,0,1,0,1 +642,0,0,1,0,1 +643,0,0,1,0,1 +644,0,0,1,0,1 +645,0,0,1,0,1 +646,0,0,1,0,1 +647,0,0,1,0,1 +648,0,0,1,0,1 +649,0,0,1,0,1 +650,0,0,1,0,1 +651,0,0,1,0,1 +652,0,0,1,0,1 +653,0,0,1,0,1 +654,0,0,1,0,1 +655,0,0,1,0,1 +656,0,0,1,0,1 +657,0,0,1,0,1 +658,0,0,1,0,1 +659,0,0,1,0,1 +660,0,0,1,0,1 +661,0,0,1,0,1 +662,0,0,1,0,1 +663,0,0,1,0,1 +664,0,0,1,0,1 +665,0,0,1,0,1 +666,0,0,1,0,1 +667,0,0,1,0,1 +668,0,0,1,0,1 +669,0,0,1,0,1 +670,0,0,1,0,1 +671,0,0,1,0,1 +672,0,0,1,0,1 +673,0,0,1,0,1 +674,0,0,1,0,1 +675,0,0,1,0,1 +676,0,0,1,0,1 +677,0,0,1,0,1 +678,0,0,1,0,1 +679,0,0,1,0,1 +680,0,0,1,0,1 +681,0,0,1,0,1 +682,0,0,1,0,1 +683,0,0,1,0,1 +684,0,0,1,0,1 +685,0,0,1,0,1 +686,0,0,1,0,1 +687,0,0,1,0,1 +688,0,0,1,0,1 +689,0,0,1,0,1 +690,0,0,1,0,1 +691,0,0,1,0,1 +692,0,0,1,0,1 +693,0,0,1,0,1 +694,0,0,1,0,1 +695,0,0,1,0,1 +696,0,0,1,0,1 +697,0,0,1,0,1 +698,0,0,1,0,1 +699,0,0,1,0,1 +700,0,0,1,0,1 +701,0,0,1,0,1 +702,0,0,1,0,1 +703,0,0,1,0,1 +704,0,0,1,0,1 +705,0,0,1,0,1 +706,0,0,1,0,1 +707,0,0,1,0,1 +708,0,0,1,0,1 +709,0,0,1,0,1 +710,0,0,1,0,1 +711,0,0,1,0,1 +712,0,0,1,0,1 +713,0,0,1,0,1 +714,0,0,1,0,1 +715,0,0,1,0,1 +716,0,0,1,0,1 +717,0,0,1,0,1 +718,0,0,1,0,1 +719,0,0,1,0,1 +720,0,0,1,0,1 +721,0,0,1,0,1 +722,0,0,1,0,1 +723,0,0,1,0,1 +724,0,0,1,0,1 +725,0,0,1,0,1 +726,0,0,1,0,1 +727,0,0,1,0,1 +728,0,0,1,0,1 +729,0,0,1,0,1 +730,0,0,1,0,1 +731,0,0,1,0,1 +732,0,0,1,0,1 +733,0,0,1,0,1 +734,0,0,1,0,1 +735,0,0,1,0,1 +736,0,0,1,0,1 +737,0,0,1,0,1 +738,0,0,1,0,1 +739,0,0,1,0,1 +740,0,0,1,0,1 +741,0,0,1,0,1 +742,0,0,1,0,1 +743,0,0,1,0,1 +744,0,0,1,0,1 +745,0,0,1,0,1 +746,0,0,1,0,1 +747,0,0,1,0,1 +748,0,0,1,0,1 +749,0,0,1,0,1 diff --git a/scripts/tests/data/ism_180a_0e.csv b/scripts/tests/data/ism_180a_0e.csv new file mode 100644 index 0000000000..2db0f1a477 --- /dev/null +++ b/scripts/tests/data/ism_180a_0e.csv @@ -0,0 +1,750 @@ +0,180,0,1,0,1 +1,180,0,1,0,1 +2,180,0,1,0,1 +3,180,0,1,0,1 +4,180,0,1,0,1 +5,180,0,1,0,1 +6,180,0,1,0,1 +7,180,0,1,0,1 +8,180,0,1,0,1 +9,180,0,1,0,1 +10,180,0,1,0,1 +11,180,0,1,0,1 +12,180,0,1,0,1 +13,180,0,1,0,1 +14,180,0,1,0,1 +15,180,0,1,0,1 +16,180,0,1,0,1 +17,180,0,1,0,1 +18,180,0,1,0,1 +19,180,0,1,0,1 +20,180,0,1,0,1 +21,180,0,1,0,1 +22,180,0,1,0,1 +23,180,0,1,0,1 +24,180,0,1,0,1 +25,180,0,1,0,1 +26,180,0,1,0,1 +27,180,0,1,0,1 +28,180,0,1,0,1 +29,180,0,1,0,1 +30,180,0,1,0,1 +31,180,0,1,0,1 +32,180,0,1,0,1 +33,180,0,1,0,1 +34,180,0,1,0,1 +35,180,0,1,0,1 +36,180,0,1,0,1 +37,180,0,1,0,1 +38,180,0,1,0,1 +39,180,0,1,0,1 +40,180,0,1,0,1 +41,180,0,1,0,1 +42,180,0,1,0,1 +43,180,0,1,0,1 +44,180,0,1,0,1 +45,180,0,1,0,1 +46,180,0,1,0,1 +47,180,0,1,0,1 +48,180,0,1,0,1 +49,180,0,1,0,1 +50,180,0,1,0,1 +51,180,0,1,0,1 +52,180,0,1,0,1 +53,180,0,1,0,1 +54,180,0,1,0,1 +55,180,0,1,0,1 +56,180,0,1,0,1 +57,180,0,1,0,1 +58,180,0,1,0,1 +59,180,0,1,0,1 +60,180,0,1,0,1 +61,180,0,1,0,1 +62,180,0,1,0,1 +63,180,0,1,0,1 +64,180,0,1,0,1 +65,180,0,1,0,1 +66,180,0,1,0,1 +67,180,0,1,0,1 +68,180,0,1,0,1 +69,180,0,1,0,1 +70,180,0,1,0,1 +71,180,0,1,0,1 +72,180,0,1,0,1 +73,180,0,1,0,1 +74,180,0,1,0,1 +75,180,0,1,0,1 +76,180,0,1,0,1 +77,180,0,1,0,1 +78,180,0,1,0,1 +79,180,0,1,0,1 +80,180,0,1,0,1 +81,180,0,1,0,1 +82,180,0,1,0,1 +83,180,0,1,0,1 +84,180,0,1,0,1 +85,180,0,1,0,1 +86,180,0,1,0,1 +87,180,0,1,0,1 +88,180,0,1,0,1 +89,180,0,1,0,1 +90,180,0,1,0,1 +91,180,0,1,0,1 +92,180,0,1,0,1 +93,180,0,1,0,1 +94,180,0,1,0,1 +95,180,0,1,0,1 +96,180,0,1,0,1 +97,180,0,1,0,1 +98,180,0,1,0,1 +99,180,0,1,0,1 +100,180,0,1,0,1 +101,180,0,1,0,1 +102,180,0,1,0,1 +103,180,0,1,0,1 +104,180,0,1,0,1 +105,180,0,1,0,1 +106,180,0,1,0,1 +107,180,0,1,0,1 +108,180,0,1,0,1 +109,180,0,1,0,1 +110,180,0,1,0,1 +111,180,0,1,0,1 +112,180,0,1,0,1 +113,180,0,1,0,1 +114,180,0,1,0,1 +115,180,0,1,0,1 +116,180,0,1,0,1 +117,180,0,1,0,1 +118,180,0,1,0,1 +119,180,0,1,0,1 +120,180,0,1,0,1 +121,180,0,1,0,1 +122,180,0,1,0,1 +123,180,0,1,0,1 +124,180,0,1,0,1 +125,180,0,1,0,1 +126,180,0,1,0,1 +127,180,0,1,0,1 +128,180,0,1,0,1 +129,180,0,1,0,1 +130,180,0,1,0,1 +131,180,0,1,0,1 +132,180,0,1,0,1 +133,180,0,1,0,1 +134,180,0,1,0,1 +135,180,0,1,0,1 +136,180,0,1,0,1 +137,180,0,1,0,1 +138,180,0,1,0,1 +139,180,0,1,0,1 +140,180,0,1,0,1 +141,180,0,1,0,1 +142,180,0,1,0,1 +143,180,0,1,0,1 +144,180,0,1,0,1 +145,180,0,1,0,1 +146,180,0,1,0,1 +147,180,0,1,0,1 +148,180,0,1,0,1 +149,180,0,1,0,1 +150,180,0,1,0,1 +151,180,0,1,0,1 +152,180,0,1,0,1 +153,180,0,1,0,1 +154,180,0,1,0,1 +155,180,0,1,0,1 +156,180,0,1,0,1 +157,180,0,1,0,1 +158,180,0,1,0,1 +159,180,0,1,0,1 +160,180,0,1,0,1 +161,180,0,1,0,1 +162,180,0,1,0,1 +163,180,0,1,0,1 +164,180,0,1,0,1 +165,180,0,1,0,1 +166,180,0,1,0,1 +167,180,0,1,0,1 +168,180,0,1,0,1 +169,180,0,1,0,1 +170,180,0,1,0,1 +171,180,0,1,0,1 +172,180,0,1,0,1 +173,180,0,1,0,1 +174,180,0,1,0,1 +175,180,0,1,0,1 +176,180,0,1,0,1 +177,180,0,1,0,1 +178,180,0,1,0,1 +179,180,0,1,0,1 +180,180,0,1,0,1 +181,180,0,1,0,1 +182,180,0,1,0,1 +183,180,0,1,0,1 +184,180,0,1,0,1 +185,180,0,1,0,1 +186,180,0,1,0,1 +187,180,0,1,0,1 +188,180,0,1,0,1 +189,180,0,1,0,1 +190,180,0,1,0,1 +191,180,0,1,0,1 +192,180,0,1,0,1 +193,180,0,1,0,1 +194,180,0,1,0,1 +195,180,0,1,0,1 +196,180,0,1,0,1 +197,180,0,1,0,1 +198,180,0,1,0,1 +199,180,0,1,0,1 +200,180,0,1,0,1 +201,180,0,1,0,1 +202,180,0,1,0,1 +203,180,0,1,0,1 +204,180,0,1,0,1 +205,180,0,1,0,1 +206,180,0,1,0,1 +207,180,0,1,0,1 +208,180,0,1,0,1 +209,180,0,1,0,1 +210,180,0,1,0,1 +211,180,0,1,0,1 +212,180,0,1,0,1 +213,180,0,1,0,1 +214,180,0,1,0,1 +215,180,0,1,0,1 +216,180,0,1,0,1 +217,180,0,1,0,1 +218,180,0,1,0,1 +219,180,0,1,0,1 +220,180,0,1,0,1 +221,180,0,1,0,1 +222,180,0,1,0,1 +223,180,0,1,0,1 +224,180,0,1,0,1 +225,180,0,1,0,1 +226,180,0,1,0,1 +227,180,0,1,0,1 +228,180,0,1,0,1 +229,180,0,1,0,1 +230,180,0,1,0,1 +231,180,0,1,0,1 +232,180,0,1,0,1 +233,180,0,1,0,1 +234,180,0,1,0,1 +235,180,0,1,0,1 +236,180,0,1,0,1 +237,180,0,1,0,1 +238,180,0,1,0,1 +239,180,0,1,0,1 +240,180,0,1,0,1 +241,180,0,1,0,1 +242,180,0,1,0,1 +243,180,0,1,0,1 +244,180,0,1,0,1 +245,180,0,1,0,1 +246,180,0,1,0,1 +247,180,0,1,0,1 +248,180,0,1,0,1 +249,180,0,1,0,1 +250,180,0,1,0,1 +251,180,0,1,0,1 +252,180,0,1,0,1 +253,180,0,1,0,1 +254,180,0,1,0,1 +255,180,0,1,0,1 +256,180,0,1,0,1 +257,180,0,1,0,1 +258,180,0,1,0,1 +259,180,0,1,0,1 +260,180,0,1,0,1 +261,180,0,1,0,1 +262,180,0,1,0,1 +263,180,0,1,0,1 +264,180,0,1,0,1 +265,180,0,1,0,1 +266,180,0,1,0,1 +267,180,0,1,0,1 +268,180,0,1,0,1 +269,180,0,1,0,1 +270,180,0,1,0,1 +271,180,0,1,0,1 +272,180,0,1,0,1 +273,180,0,1,0,1 +274,180,0,1,0,1 +275,180,0,1,0,1 +276,180,0,1,0,1 +277,180,0,1,0,1 +278,180,0,1,0,1 +279,180,0,1,0,1 +280,180,0,1,0,1 +281,180,0,1,0,1 +282,180,0,1,0,1 +283,180,0,1,0,1 +284,180,0,1,0,1 +285,180,0,1,0,1 +286,180,0,1,0,1 +287,180,0,1,0,1 +288,180,0,1,0,1 +289,180,0,1,0,1 +290,180,0,1,0,1 +291,180,0,1,0,1 +292,180,0,1,0,1 +293,180,0,1,0,1 +294,180,0,1,0,1 +295,180,0,1,0,1 +296,180,0,1,0,1 +297,180,0,1,0,1 +298,180,0,1,0,1 +299,180,0,1,0,1 +300,180,0,1,0,1 +301,180,0,1,0,1 +302,180,0,1,0,1 +303,180,0,1,0,1 +304,180,0,1,0,1 +305,180,0,1,0,1 +306,180,0,1,0,1 +307,180,0,1,0,1 +308,180,0,1,0,1 +309,180,0,1,0,1 +310,180,0,1,0,1 +311,180,0,1,0,1 +312,180,0,1,0,1 +313,180,0,1,0,1 +314,180,0,1,0,1 +315,180,0,1,0,1 +316,180,0,1,0,1 +317,180,0,1,0,1 +318,180,0,1,0,1 +319,180,0,1,0,1 +320,180,0,1,0,1 +321,180,0,1,0,1 +322,180,0,1,0,1 +323,180,0,1,0,1 +324,180,0,1,0,1 +325,180,0,1,0,1 +326,180,0,1,0,1 +327,180,0,1,0,1 +328,180,0,1,0,1 +329,180,0,1,0,1 +330,180,0,1,0,1 +331,180,0,1,0,1 +332,180,0,1,0,1 +333,180,0,1,0,1 +334,180,0,1,0,1 +335,180,0,1,0,1 +336,180,0,1,0,1 +337,180,0,1,0,1 +338,180,0,1,0,1 +339,180,0,1,0,1 +340,180,0,1,0,1 +341,180,0,1,0,1 +342,180,0,1,0,1 +343,180,0,1,0,1 +344,180,0,1,0,1 +345,180,0,1,0,1 +346,180,0,1,0,1 +347,180,0,1,0,1 +348,180,0,1,0,1 +349,180,0,1,0,1 +350,180,0,1,0,1 +351,180,0,1,0,1 +352,180,0,1,0,1 +353,180,0,1,0,1 +354,180,0,1,0,1 +355,180,0,1,0,1 +356,180,0,1,0,1 +357,180,0,1,0,1 +358,180,0,1,0,1 +359,180,0,1,0,1 +360,180,0,1,0,1 +361,180,0,1,0,1 +362,180,0,1,0,1 +363,180,0,1,0,1 +364,180,0,1,0,1 +365,180,0,1,0,1 +366,180,0,1,0,1 +367,180,0,1,0,1 +368,180,0,1,0,1 +369,180,0,1,0,1 +370,180,0,1,0,1 +371,180,0,1,0,1 +372,180,0,1,0,1 +373,180,0,1,0,1 +374,180,0,1,0,1 +375,180,0,1,0,1 +376,180,0,1,0,1 +377,180,0,1,0,1 +378,180,0,1,0,1 +379,180,0,1,0,1 +380,180,0,1,0,1 +381,180,0,1,0,1 +382,180,0,1,0,1 +383,180,0,1,0,1 +384,180,0,1,0,1 +385,180,0,1,0,1 +386,180,0,1,0,1 +387,180,0,1,0,1 +388,180,0,1,0,1 +389,180,0,1,0,1 +390,180,0,1,0,1 +391,180,0,1,0,1 +392,180,0,1,0,1 +393,180,0,1,0,1 +394,180,0,1,0,1 +395,180,0,1,0,1 +396,180,0,1,0,1 +397,180,0,1,0,1 +398,180,0,1,0,1 +399,180,0,1,0,1 +400,180,0,1,0,1 +401,180,0,1,0,1 +402,180,0,1,0,1 +403,180,0,1,0,1 +404,180,0,1,0,1 +405,180,0,1,0,1 +406,180,0,1,0,1 +407,180,0,1,0,1 +408,180,0,1,0,1 +409,180,0,1,0,1 +410,180,0,1,0,1 +411,180,0,1,0,1 +412,180,0,1,0,1 +413,180,0,1,0,1 +414,180,0,1,0,1 +415,180,0,1,0,1 +416,180,0,1,0,1 +417,180,0,1,0,1 +418,180,0,1,0,1 +419,180,0,1,0,1 +420,180,0,1,0,1 +421,180,0,1,0,1 +422,180,0,1,0,1 +423,180,0,1,0,1 +424,180,0,1,0,1 +425,180,0,1,0,1 +426,180,0,1,0,1 +427,180,0,1,0,1 +428,180,0,1,0,1 +429,180,0,1,0,1 +430,180,0,1,0,1 +431,180,0,1,0,1 +432,180,0,1,0,1 +433,180,0,1,0,1 +434,180,0,1,0,1 +435,180,0,1,0,1 +436,180,0,1,0,1 +437,180,0,1,0,1 +438,180,0,1,0,1 +439,180,0,1,0,1 +440,180,0,1,0,1 +441,180,0,1,0,1 +442,180,0,1,0,1 +443,180,0,1,0,1 +444,180,0,1,0,1 +445,180,0,1,0,1 +446,180,0,1,0,1 +447,180,0,1,0,1 +448,180,0,1,0,1 +449,180,0,1,0,1 +450,180,0,1,0,1 +451,180,0,1,0,1 +452,180,0,1,0,1 +453,180,0,1,0,1 +454,180,0,1,0,1 +455,180,0,1,0,1 +456,180,0,1,0,1 +457,180,0,1,0,1 +458,180,0,1,0,1 +459,180,0,1,0,1 +460,180,0,1,0,1 +461,180,0,1,0,1 +462,180,0,1,0,1 +463,180,0,1,0,1 +464,180,0,1,0,1 +465,180,0,1,0,1 +466,180,0,1,0,1 +467,180,0,1,0,1 +468,180,0,1,0,1 +469,180,0,1,0,1 +470,180,0,1,0,1 +471,180,0,1,0,1 +472,180,0,1,0,1 +473,180,0,1,0,1 +474,180,0,1,0,1 +475,180,0,1,0,1 +476,180,0,1,0,1 +477,180,0,1,0,1 +478,180,0,1,0,1 +479,180,0,1,0,1 +480,180,0,1,0,1 +481,180,0,1,0,1 +482,180,0,1,0,1 +483,180,0,1,0,1 +484,180,0,1,0,1 +485,180,0,1,0,1 +486,180,0,1,0,1 +487,180,0,1,0,1 +488,180,0,1,0,1 +489,180,0,1,0,1 +490,180,0,1,0,1 +491,180,0,1,0,1 +492,180,0,1,0,1 +493,180,0,1,0,1 +494,180,0,1,0,1 +495,180,0,1,0,1 +496,180,0,1,0,1 +497,180,0,1,0,1 +498,180,0,1,0,1 +499,180,0,1,0,1 +500,180,0,1,0,1 +501,180,0,1,0,1 +502,180,0,1,0,1 +503,180,0,1,0,1 +504,180,0,1,0,1 +505,180,0,1,0,1 +506,180,0,1,0,1 +507,180,0,1,0,1 +508,180,0,1,0,1 +509,180,0,1,0,1 +510,180,0,1,0,1 +511,180,0,1,0,1 +512,180,0,1,0,1 +513,180,0,1,0,1 +514,180,0,1,0,1 +515,180,0,1,0,1 +516,180,0,1,0,1 +517,180,0,1,0,1 +518,180,0,1,0,1 +519,180,0,1,0,1 +520,180,0,1,0,1 +521,180,0,1,0,1 +522,180,0,1,0,1 +523,180,0,1,0,1 +524,180,0,1,0,1 +525,180,0,1,0,1 +526,180,0,1,0,1 +527,180,0,1,0,1 +528,180,0,1,0,1 +529,180,0,1,0,1 +530,180,0,1,0,1 +531,180,0,1,0,1 +532,180,0,1,0,1 +533,180,0,1,0,1 +534,180,0,1,0,1 +535,180,0,1,0,1 +536,180,0,1,0,1 +537,180,0,1,0,1 +538,180,0,1,0,1 +539,180,0,1,0,1 +540,180,0,1,0,1 +541,180,0,1,0,1 +542,180,0,1,0,1 +543,180,0,1,0,1 +544,180,0,1,0,1 +545,180,0,1,0,1 +546,180,0,1,0,1 +547,180,0,1,0,1 +548,180,0,1,0,1 +549,180,0,1,0,1 +550,180,0,1,0,1 +551,180,0,1,0,1 +552,180,0,1,0,1 +553,180,0,1,0,1 +554,180,0,1,0,1 +555,180,0,1,0,1 +556,180,0,1,0,1 +557,180,0,1,0,1 +558,180,0,1,0,1 +559,180,0,1,0,1 +560,180,0,1,0,1 +561,180,0,1,0,1 +562,180,0,1,0,1 +563,180,0,1,0,1 +564,180,0,1,0,1 +565,180,0,1,0,1 +566,180,0,1,0,1 +567,180,0,1,0,1 +568,180,0,1,0,1 +569,180,0,1,0,1 +570,180,0,1,0,1 +571,180,0,1,0,1 +572,180,0,1,0,1 +573,180,0,1,0,1 +574,180,0,1,0,1 +575,180,0,1,0,1 +576,180,0,1,0,1 +577,180,0,1,0,1 +578,180,0,1,0,1 +579,180,0,1,0,1 +580,180,0,1,0,1 +581,180,0,1,0,1 +582,180,0,1,0,1 +583,180,0,1,0,1 +584,180,0,1,0,1 +585,180,0,1,0,1 +586,180,0,1,0,1 +587,180,0,1,0,1 +588,180,0,1,0,1 +589,180,0,1,0,1 +590,180,0,1,0,1 +591,180,0,1,0,1 +592,180,0,1,0,1 +593,180,0,1,0,1 +594,180,0,1,0,1 +595,180,0,1,0,1 +596,180,0,1,0,1 +597,180,0,1,0,1 +598,180,0,1,0,1 +599,180,0,1,0,1 +600,180,0,1,0,1 +601,180,0,1,0,1 +602,180,0,1,0,1 +603,180,0,1,0,1 +604,180,0,1,0,1 +605,180,0,1,0,1 +606,180,0,1,0,1 +607,180,0,1,0,1 +608,180,0,1,0,1 +609,180,0,1,0,1 +610,180,0,1,0,1 +611,180,0,1,0,1 +612,180,0,1,0,1 +613,180,0,1,0,1 +614,180,0,1,0,1 +615,180,0,1,0,1 +616,180,0,1,0,1 +617,180,0,1,0,1 +618,180,0,1,0,1 +619,180,0,1,0,1 +620,180,0,1,0,1 +621,180,0,1,0,1 +622,180,0,1,0,1 +623,180,0,1,0,1 +624,180,0,1,0,1 +625,180,0,1,0,1 +626,180,0,1,0,1 +627,180,0,1,0,1 +628,180,0,1,0,1 +629,180,0,1,0,1 +630,180,0,1,0,1 +631,180,0,1,0,1 +632,180,0,1,0,1 +633,180,0,1,0,1 +634,180,0,1,0,1 +635,180,0,1,0,1 +636,180,0,1,0,1 +637,180,0,1,0,1 +638,180,0,1,0,1 +639,180,0,1,0,1 +640,180,0,1,0,1 +641,180,0,1,0,1 +642,180,0,1,0,1 +643,180,0,1,0,1 +644,180,0,1,0,1 +645,180,0,1,0,1 +646,180,0,1,0,1 +647,180,0,1,0,1 +648,180,0,1,0,1 +649,180,0,1,0,1 +650,180,0,1,0,1 +651,180,0,1,0,1 +652,180,0,1,0,1 +653,180,0,1,0,1 +654,180,0,1,0,1 +655,180,0,1,0,1 +656,180,0,1,0,1 +657,180,0,1,0,1 +658,180,0,1,0,1 +659,180,0,1,0,1 +660,180,0,1,0,1 +661,180,0,1,0,1 +662,180,0,1,0,1 +663,180,0,1,0,1 +664,180,0,1,0,1 +665,180,0,1,0,1 +666,180,0,1,0,1 +667,180,0,1,0,1 +668,180,0,1,0,1 +669,180,0,1,0,1 +670,180,0,1,0,1 +671,180,0,1,0,1 +672,180,0,1,0,1 +673,180,0,1,0,1 +674,180,0,1,0,1 +675,180,0,1,0,1 +676,180,0,1,0,1 +677,180,0,1,0,1 +678,180,0,1,0,1 +679,180,0,1,0,1 +680,180,0,1,0,1 +681,180,0,1,0,1 +682,180,0,1,0,1 +683,180,0,1,0,1 +684,180,0,1,0,1 +685,180,0,1,0,1 +686,180,0,1,0,1 +687,180,0,1,0,1 +688,180,0,1,0,1 +689,180,0,1,0,1 +690,180,0,1,0,1 +691,180,0,1,0,1 +692,180,0,1,0,1 +693,180,0,1,0,1 +694,180,0,1,0,1 +695,180,0,1,0,1 +696,180,0,1,0,1 +697,180,0,1,0,1 +698,180,0,1,0,1 +699,180,0,1,0,1 +700,180,0,1,0,1 +701,180,0,1,0,1 +702,180,0,1,0,1 +703,180,0,1,0,1 +704,180,0,1,0,1 +705,180,0,1,0,1 +706,180,0,1,0,1 +707,180,0,1,0,1 +708,180,0,1,0,1 +709,180,0,1,0,1 +710,180,0,1,0,1 +711,180,0,1,0,1 +712,180,0,1,0,1 +713,180,0,1,0,1 +714,180,0,1,0,1 +715,180,0,1,0,1 +716,180,0,1,0,1 +717,180,0,1,0,1 +718,180,0,1,0,1 +719,180,0,1,0,1 +720,180,0,1,0,1 +721,180,0,1,0,1 +722,180,0,1,0,1 +723,180,0,1,0,1 +724,180,0,1,0,1 +725,180,0,1,0,1 +726,180,0,1,0,1 +727,180,0,1,0,1 +728,180,0,1,0,1 +729,180,0,1,0,1 +730,180,0,1,0,1 +731,180,0,1,0,1 +732,180,0,1,0,1 +733,180,0,1,0,1 +734,180,0,1,0,1 +735,180,0,1,0,1 +736,180,0,1,0,1 +737,180,0,1,0,1 +738,180,0,1,0,1 +739,180,0,1,0,1 +740,180,0,1,0,1 +741,180,0,1,0,1 +742,180,0,1,0,1 +743,180,0,1,0,1 +744,180,0,1,0,1 +745,180,0,1,0,1 +746,180,0,1,0,1 +747,180,0,1,0,1 +748,180,0,1,0,1 +749,180,0,1,0,1 diff --git a/scripts/tests/data/ism_90a_0e.csv b/scripts/tests/data/ism_90a_0e.csv new file mode 100644 index 0000000000..bcd91364fe --- /dev/null +++ b/scripts/tests/data/ism_90a_0e.csv @@ -0,0 +1,750 @@ +0,90,0,1,0,1 +1,90,0,1,0,1 +2,90,0,1,0,1 +3,90,0,1,0,1 +4,90,0,1,0,1 +5,90,0,1,0,1 +6,90,0,1,0,1 +7,90,0,1,0,1 +8,90,0,1,0,1 +9,90,0,1,0,1 +10,90,0,1,0,1 +11,90,0,1,0,1 +12,90,0,1,0,1 +13,90,0,1,0,1 +14,90,0,1,0,1 +15,90,0,1,0,1 +16,90,0,1,0,1 +17,90,0,1,0,1 +18,90,0,1,0,1 +19,90,0,1,0,1 +20,90,0,1,0,1 +21,90,0,1,0,1 +22,90,0,1,0,1 +23,90,0,1,0,1 +24,90,0,1,0,1 +25,90,0,1,0,1 +26,90,0,1,0,1 +27,90,0,1,0,1 +28,90,0,1,0,1 +29,90,0,1,0,1 +30,90,0,1,0,1 +31,90,0,1,0,1 +32,90,0,1,0,1 +33,90,0,1,0,1 +34,90,0,1,0,1 +35,90,0,1,0,1 +36,90,0,1,0,1 +37,90,0,1,0,1 +38,90,0,1,0,1 +39,90,0,1,0,1 +40,90,0,1,0,1 +41,90,0,1,0,1 +42,90,0,1,0,1 +43,90,0,1,0,1 +44,90,0,1,0,1 +45,90,0,1,0,1 +46,90,0,1,0,1 +47,90,0,1,0,1 +48,90,0,1,0,1 +49,90,0,1,0,1 +50,90,0,1,0,1 +51,90,0,1,0,1 +52,90,0,1,0,1 +53,90,0,1,0,1 +54,90,0,1,0,1 +55,90,0,1,0,1 +56,90,0,1,0,1 +57,90,0,1,0,1 +58,90,0,1,0,1 +59,90,0,1,0,1 +60,90,0,1,0,1 +61,90,0,1,0,1 +62,90,0,1,0,1 +63,90,0,1,0,1 +64,90,0,1,0,1 +65,90,0,1,0,1 +66,90,0,1,0,1 +67,90,0,1,0,1 +68,90,0,1,0,1 +69,90,0,1,0,1 +70,90,0,1,0,1 +71,90,0,1,0,1 +72,90,0,1,0,1 +73,90,0,1,0,1 +74,90,0,1,0,1 +75,90,0,1,0,1 +76,90,0,1,0,1 +77,90,0,1,0,1 +78,90,0,1,0,1 +79,90,0,1,0,1 +80,90,0,1,0,1 +81,90,0,1,0,1 +82,90,0,1,0,1 +83,90,0,1,0,1 +84,90,0,1,0,1 +85,90,0,1,0,1 +86,90,0,1,0,1 +87,90,0,1,0,1 +88,90,0,1,0,1 +89,90,0,1,0,1 +90,90,0,1,0,1 +91,90,0,1,0,1 +92,90,0,1,0,1 +93,90,0,1,0,1 +94,90,0,1,0,1 +95,90,0,1,0,1 +96,90,0,1,0,1 +97,90,0,1,0,1 +98,90,0,1,0,1 +99,90,0,1,0,1 +100,90,0,1,0,1 +101,90,0,1,0,1 +102,90,0,1,0,1 +103,90,0,1,0,1 +104,90,0,1,0,1 +105,90,0,1,0,1 +106,90,0,1,0,1 +107,90,0,1,0,1 +108,90,0,1,0,1 +109,90,0,1,0,1 +110,90,0,1,0,1 +111,90,0,1,0,1 +112,90,0,1,0,1 +113,90,0,1,0,1 +114,90,0,1,0,1 +115,90,0,1,0,1 +116,90,0,1,0,1 +117,90,0,1,0,1 +118,90,0,1,0,1 +119,90,0,1,0,1 +120,90,0,1,0,1 +121,90,0,1,0,1 +122,90,0,1,0,1 +123,90,0,1,0,1 +124,90,0,1,0,1 +125,90,0,1,0,1 +126,90,0,1,0,1 +127,90,0,1,0,1 +128,90,0,1,0,1 +129,90,0,1,0,1 +130,90,0,1,0,1 +131,90,0,1,0,1 +132,90,0,1,0,1 +133,90,0,1,0,1 +134,90,0,1,0,1 +135,90,0,1,0,1 +136,90,0,1,0,1 +137,90,0,1,0,1 +138,90,0,1,0,1 +139,90,0,1,0,1 +140,90,0,1,0,1 +141,90,0,1,0,1 +142,90,0,1,0,1 +143,90,0,1,0,1 +144,90,0,1,0,1 +145,90,0,1,0,1 +146,90,0,1,0,1 +147,90,0,1,0,1 +148,90,0,1,0,1 +149,90,0,1,0,1 +150,90,0,1,0,1 +151,90,0,1,0,1 +152,90,0,1,0,1 +153,90,0,1,0,1 +154,90,0,1,0,1 +155,90,0,1,0,1 +156,90,0,1,0,1 +157,90,0,1,0,1 +158,90,0,1,0,1 +159,90,0,1,0,1 +160,90,0,1,0,1 +161,90,0,1,0,1 +162,90,0,1,0,1 +163,90,0,1,0,1 +164,90,0,1,0,1 +165,90,0,1,0,1 +166,90,0,1,0,1 +167,90,0,1,0,1 +168,90,0,1,0,1 +169,90,0,1,0,1 +170,90,0,1,0,1 +171,90,0,1,0,1 +172,90,0,1,0,1 +173,90,0,1,0,1 +174,90,0,1,0,1 +175,90,0,1,0,1 +176,90,0,1,0,1 +177,90,0,1,0,1 +178,90,0,1,0,1 +179,90,0,1,0,1 +180,90,0,1,0,1 +181,90,0,1,0,1 +182,90,0,1,0,1 +183,90,0,1,0,1 +184,90,0,1,0,1 +185,90,0,1,0,1 +186,90,0,1,0,1 +187,90,0,1,0,1 +188,90,0,1,0,1 +189,90,0,1,0,1 +190,90,0,1,0,1 +191,90,0,1,0,1 +192,90,0,1,0,1 +193,90,0,1,0,1 +194,90,0,1,0,1 +195,90,0,1,0,1 +196,90,0,1,0,1 +197,90,0,1,0,1 +198,90,0,1,0,1 +199,90,0,1,0,1 +200,90,0,1,0,1 +201,90,0,1,0,1 +202,90,0,1,0,1 +203,90,0,1,0,1 +204,90,0,1,0,1 +205,90,0,1,0,1 +206,90,0,1,0,1 +207,90,0,1,0,1 +208,90,0,1,0,1 +209,90,0,1,0,1 +210,90,0,1,0,1 +211,90,0,1,0,1 +212,90,0,1,0,1 +213,90,0,1,0,1 +214,90,0,1,0,1 +215,90,0,1,0,1 +216,90,0,1,0,1 +217,90,0,1,0,1 +218,90,0,1,0,1 +219,90,0,1,0,1 +220,90,0,1,0,1 +221,90,0,1,0,1 +222,90,0,1,0,1 +223,90,0,1,0,1 +224,90,0,1,0,1 +225,90,0,1,0,1 +226,90,0,1,0,1 +227,90,0,1,0,1 +228,90,0,1,0,1 +229,90,0,1,0,1 +230,90,0,1,0,1 +231,90,0,1,0,1 +232,90,0,1,0,1 +233,90,0,1,0,1 +234,90,0,1,0,1 +235,90,0,1,0,1 +236,90,0,1,0,1 +237,90,0,1,0,1 +238,90,0,1,0,1 +239,90,0,1,0,1 +240,90,0,1,0,1 +241,90,0,1,0,1 +242,90,0,1,0,1 +243,90,0,1,0,1 +244,90,0,1,0,1 +245,90,0,1,0,1 +246,90,0,1,0,1 +247,90,0,1,0,1 +248,90,0,1,0,1 +249,90,0,1,0,1 +250,90,0,1,0,1 +251,90,0,1,0,1 +252,90,0,1,0,1 +253,90,0,1,0,1 +254,90,0,1,0,1 +255,90,0,1,0,1 +256,90,0,1,0,1 +257,90,0,1,0,1 +258,90,0,1,0,1 +259,90,0,1,0,1 +260,90,0,1,0,1 +261,90,0,1,0,1 +262,90,0,1,0,1 +263,90,0,1,0,1 +264,90,0,1,0,1 +265,90,0,1,0,1 +266,90,0,1,0,1 +267,90,0,1,0,1 +268,90,0,1,0,1 +269,90,0,1,0,1 +270,90,0,1,0,1 +271,90,0,1,0,1 +272,90,0,1,0,1 +273,90,0,1,0,1 +274,90,0,1,0,1 +275,90,0,1,0,1 +276,90,0,1,0,1 +277,90,0,1,0,1 +278,90,0,1,0,1 +279,90,0,1,0,1 +280,90,0,1,0,1 +281,90,0,1,0,1 +282,90,0,1,0,1 +283,90,0,1,0,1 +284,90,0,1,0,1 +285,90,0,1,0,1 +286,90,0,1,0,1 +287,90,0,1,0,1 +288,90,0,1,0,1 +289,90,0,1,0,1 +290,90,0,1,0,1 +291,90,0,1,0,1 +292,90,0,1,0,1 +293,90,0,1,0,1 +294,90,0,1,0,1 +295,90,0,1,0,1 +296,90,0,1,0,1 +297,90,0,1,0,1 +298,90,0,1,0,1 +299,90,0,1,0,1 +300,90,0,1,0,1 +301,90,0,1,0,1 +302,90,0,1,0,1 +303,90,0,1,0,1 +304,90,0,1,0,1 +305,90,0,1,0,1 +306,90,0,1,0,1 +307,90,0,1,0,1 +308,90,0,1,0,1 +309,90,0,1,0,1 +310,90,0,1,0,1 +311,90,0,1,0,1 +312,90,0,1,0,1 +313,90,0,1,0,1 +314,90,0,1,0,1 +315,90,0,1,0,1 +316,90,0,1,0,1 +317,90,0,1,0,1 +318,90,0,1,0,1 +319,90,0,1,0,1 +320,90,0,1,0,1 +321,90,0,1,0,1 +322,90,0,1,0,1 +323,90,0,1,0,1 +324,90,0,1,0,1 +325,90,0,1,0,1 +326,90,0,1,0,1 +327,90,0,1,0,1 +328,90,0,1,0,1 +329,90,0,1,0,1 +330,90,0,1,0,1 +331,90,0,1,0,1 +332,90,0,1,0,1 +333,90,0,1,0,1 +334,90,0,1,0,1 +335,90,0,1,0,1 +336,90,0,1,0,1 +337,90,0,1,0,1 +338,90,0,1,0,1 +339,90,0,1,0,1 +340,90,0,1,0,1 +341,90,0,1,0,1 +342,90,0,1,0,1 +343,90,0,1,0,1 +344,90,0,1,0,1 +345,90,0,1,0,1 +346,90,0,1,0,1 +347,90,0,1,0,1 +348,90,0,1,0,1 +349,90,0,1,0,1 +350,90,0,1,0,1 +351,90,0,1,0,1 +352,90,0,1,0,1 +353,90,0,1,0,1 +354,90,0,1,0,1 +355,90,0,1,0,1 +356,90,0,1,0,1 +357,90,0,1,0,1 +358,90,0,1,0,1 +359,90,0,1,0,1 +360,90,0,1,0,1 +361,90,0,1,0,1 +362,90,0,1,0,1 +363,90,0,1,0,1 +364,90,0,1,0,1 +365,90,0,1,0,1 +366,90,0,1,0,1 +367,90,0,1,0,1 +368,90,0,1,0,1 +369,90,0,1,0,1 +370,90,0,1,0,1 +371,90,0,1,0,1 +372,90,0,1,0,1 +373,90,0,1,0,1 +374,90,0,1,0,1 +375,90,0,1,0,1 +376,90,0,1,0,1 +377,90,0,1,0,1 +378,90,0,1,0,1 +379,90,0,1,0,1 +380,90,0,1,0,1 +381,90,0,1,0,1 +382,90,0,1,0,1 +383,90,0,1,0,1 +384,90,0,1,0,1 +385,90,0,1,0,1 +386,90,0,1,0,1 +387,90,0,1,0,1 +388,90,0,1,0,1 +389,90,0,1,0,1 +390,90,0,1,0,1 +391,90,0,1,0,1 +392,90,0,1,0,1 +393,90,0,1,0,1 +394,90,0,1,0,1 +395,90,0,1,0,1 +396,90,0,1,0,1 +397,90,0,1,0,1 +398,90,0,1,0,1 +399,90,0,1,0,1 +400,90,0,1,0,1 +401,90,0,1,0,1 +402,90,0,1,0,1 +403,90,0,1,0,1 +404,90,0,1,0,1 +405,90,0,1,0,1 +406,90,0,1,0,1 +407,90,0,1,0,1 +408,90,0,1,0,1 +409,90,0,1,0,1 +410,90,0,1,0,1 +411,90,0,1,0,1 +412,90,0,1,0,1 +413,90,0,1,0,1 +414,90,0,1,0,1 +415,90,0,1,0,1 +416,90,0,1,0,1 +417,90,0,1,0,1 +418,90,0,1,0,1 +419,90,0,1,0,1 +420,90,0,1,0,1 +421,90,0,1,0,1 +422,90,0,1,0,1 +423,90,0,1,0,1 +424,90,0,1,0,1 +425,90,0,1,0,1 +426,90,0,1,0,1 +427,90,0,1,0,1 +428,90,0,1,0,1 +429,90,0,1,0,1 +430,90,0,1,0,1 +431,90,0,1,0,1 +432,90,0,1,0,1 +433,90,0,1,0,1 +434,90,0,1,0,1 +435,90,0,1,0,1 +436,90,0,1,0,1 +437,90,0,1,0,1 +438,90,0,1,0,1 +439,90,0,1,0,1 +440,90,0,1,0,1 +441,90,0,1,0,1 +442,90,0,1,0,1 +443,90,0,1,0,1 +444,90,0,1,0,1 +445,90,0,1,0,1 +446,90,0,1,0,1 +447,90,0,1,0,1 +448,90,0,1,0,1 +449,90,0,1,0,1 +450,90,0,1,0,1 +451,90,0,1,0,1 +452,90,0,1,0,1 +453,90,0,1,0,1 +454,90,0,1,0,1 +455,90,0,1,0,1 +456,90,0,1,0,1 +457,90,0,1,0,1 +458,90,0,1,0,1 +459,90,0,1,0,1 +460,90,0,1,0,1 +461,90,0,1,0,1 +462,90,0,1,0,1 +463,90,0,1,0,1 +464,90,0,1,0,1 +465,90,0,1,0,1 +466,90,0,1,0,1 +467,90,0,1,0,1 +468,90,0,1,0,1 +469,90,0,1,0,1 +470,90,0,1,0,1 +471,90,0,1,0,1 +472,90,0,1,0,1 +473,90,0,1,0,1 +474,90,0,1,0,1 +475,90,0,1,0,1 +476,90,0,1,0,1 +477,90,0,1,0,1 +478,90,0,1,0,1 +479,90,0,1,0,1 +480,90,0,1,0,1 +481,90,0,1,0,1 +482,90,0,1,0,1 +483,90,0,1,0,1 +484,90,0,1,0,1 +485,90,0,1,0,1 +486,90,0,1,0,1 +487,90,0,1,0,1 +488,90,0,1,0,1 +489,90,0,1,0,1 +490,90,0,1,0,1 +491,90,0,1,0,1 +492,90,0,1,0,1 +493,90,0,1,0,1 +494,90,0,1,0,1 +495,90,0,1,0,1 +496,90,0,1,0,1 +497,90,0,1,0,1 +498,90,0,1,0,1 +499,90,0,1,0,1 +500,90,0,1,0,1 +501,90,0,1,0,1 +502,90,0,1,0,1 +503,90,0,1,0,1 +504,90,0,1,0,1 +505,90,0,1,0,1 +506,90,0,1,0,1 +507,90,0,1,0,1 +508,90,0,1,0,1 +509,90,0,1,0,1 +510,90,0,1,0,1 +511,90,0,1,0,1 +512,90,0,1,0,1 +513,90,0,1,0,1 +514,90,0,1,0,1 +515,90,0,1,0,1 +516,90,0,1,0,1 +517,90,0,1,0,1 +518,90,0,1,0,1 +519,90,0,1,0,1 +520,90,0,1,0,1 +521,90,0,1,0,1 +522,90,0,1,0,1 +523,90,0,1,0,1 +524,90,0,1,0,1 +525,90,0,1,0,1 +526,90,0,1,0,1 +527,90,0,1,0,1 +528,90,0,1,0,1 +529,90,0,1,0,1 +530,90,0,1,0,1 +531,90,0,1,0,1 +532,90,0,1,0,1 +533,90,0,1,0,1 +534,90,0,1,0,1 +535,90,0,1,0,1 +536,90,0,1,0,1 +537,90,0,1,0,1 +538,90,0,1,0,1 +539,90,0,1,0,1 +540,90,0,1,0,1 +541,90,0,1,0,1 +542,90,0,1,0,1 +543,90,0,1,0,1 +544,90,0,1,0,1 +545,90,0,1,0,1 +546,90,0,1,0,1 +547,90,0,1,0,1 +548,90,0,1,0,1 +549,90,0,1,0,1 +550,90,0,1,0,1 +551,90,0,1,0,1 +552,90,0,1,0,1 +553,90,0,1,0,1 +554,90,0,1,0,1 +555,90,0,1,0,1 +556,90,0,1,0,1 +557,90,0,1,0,1 +558,90,0,1,0,1 +559,90,0,1,0,1 +560,90,0,1,0,1 +561,90,0,1,0,1 +562,90,0,1,0,1 +563,90,0,1,0,1 +564,90,0,1,0,1 +565,90,0,1,0,1 +566,90,0,1,0,1 +567,90,0,1,0,1 +568,90,0,1,0,1 +569,90,0,1,0,1 +570,90,0,1,0,1 +571,90,0,1,0,1 +572,90,0,1,0,1 +573,90,0,1,0,1 +574,90,0,1,0,1 +575,90,0,1,0,1 +576,90,0,1,0,1 +577,90,0,1,0,1 +578,90,0,1,0,1 +579,90,0,1,0,1 +580,90,0,1,0,1 +581,90,0,1,0,1 +582,90,0,1,0,1 +583,90,0,1,0,1 +584,90,0,1,0,1 +585,90,0,1,0,1 +586,90,0,1,0,1 +587,90,0,1,0,1 +588,90,0,1,0,1 +589,90,0,1,0,1 +590,90,0,1,0,1 +591,90,0,1,0,1 +592,90,0,1,0,1 +593,90,0,1,0,1 +594,90,0,1,0,1 +595,90,0,1,0,1 +596,90,0,1,0,1 +597,90,0,1,0,1 +598,90,0,1,0,1 +599,90,0,1,0,1 +600,90,0,1,0,1 +601,90,0,1,0,1 +602,90,0,1,0,1 +603,90,0,1,0,1 +604,90,0,1,0,1 +605,90,0,1,0,1 +606,90,0,1,0,1 +607,90,0,1,0,1 +608,90,0,1,0,1 +609,90,0,1,0,1 +610,90,0,1,0,1 +611,90,0,1,0,1 +612,90,0,1,0,1 +613,90,0,1,0,1 +614,90,0,1,0,1 +615,90,0,1,0,1 +616,90,0,1,0,1 +617,90,0,1,0,1 +618,90,0,1,0,1 +619,90,0,1,0,1 +620,90,0,1,0,1 +621,90,0,1,0,1 +622,90,0,1,0,1 +623,90,0,1,0,1 +624,90,0,1,0,1 +625,90,0,1,0,1 +626,90,0,1,0,1 +627,90,0,1,0,1 +628,90,0,1,0,1 +629,90,0,1,0,1 +630,90,0,1,0,1 +631,90,0,1,0,1 +632,90,0,1,0,1 +633,90,0,1,0,1 +634,90,0,1,0,1 +635,90,0,1,0,1 +636,90,0,1,0,1 +637,90,0,1,0,1 +638,90,0,1,0,1 +639,90,0,1,0,1 +640,90,0,1,0,1 +641,90,0,1,0,1 +642,90,0,1,0,1 +643,90,0,1,0,1 +644,90,0,1,0,1 +645,90,0,1,0,1 +646,90,0,1,0,1 +647,90,0,1,0,1 +648,90,0,1,0,1 +649,90,0,1,0,1 +650,90,0,1,0,1 +651,90,0,1,0,1 +652,90,0,1,0,1 +653,90,0,1,0,1 +654,90,0,1,0,1 +655,90,0,1,0,1 +656,90,0,1,0,1 +657,90,0,1,0,1 +658,90,0,1,0,1 +659,90,0,1,0,1 +660,90,0,1,0,1 +661,90,0,1,0,1 +662,90,0,1,0,1 +663,90,0,1,0,1 +664,90,0,1,0,1 +665,90,0,1,0,1 +666,90,0,1,0,1 +667,90,0,1,0,1 +668,90,0,1,0,1 +669,90,0,1,0,1 +670,90,0,1,0,1 +671,90,0,1,0,1 +672,90,0,1,0,1 +673,90,0,1,0,1 +674,90,0,1,0,1 +675,90,0,1,0,1 +676,90,0,1,0,1 +677,90,0,1,0,1 +678,90,0,1,0,1 +679,90,0,1,0,1 +680,90,0,1,0,1 +681,90,0,1,0,1 +682,90,0,1,0,1 +683,90,0,1,0,1 +684,90,0,1,0,1 +685,90,0,1,0,1 +686,90,0,1,0,1 +687,90,0,1,0,1 +688,90,0,1,0,1 +689,90,0,1,0,1 +690,90,0,1,0,1 +691,90,0,1,0,1 +692,90,0,1,0,1 +693,90,0,1,0,1 +694,90,0,1,0,1 +695,90,0,1,0,1 +696,90,0,1,0,1 +697,90,0,1,0,1 +698,90,0,1,0,1 +699,90,0,1,0,1 +700,90,0,1,0,1 +701,90,0,1,0,1 +702,90,0,1,0,1 +703,90,0,1,0,1 +704,90,0,1,0,1 +705,90,0,1,0,1 +706,90,0,1,0,1 +707,90,0,1,0,1 +708,90,0,1,0,1 +709,90,0,1,0,1 +710,90,0,1,0,1 +711,90,0,1,0,1 +712,90,0,1,0,1 +713,90,0,1,0,1 +714,90,0,1,0,1 +715,90,0,1,0,1 +716,90,0,1,0,1 +717,90,0,1,0,1 +718,90,0,1,0,1 +719,90,0,1,0,1 +720,90,0,1,0,1 +721,90,0,1,0,1 +722,90,0,1,0,1 +723,90,0,1,0,1 +724,90,0,1,0,1 +725,90,0,1,0,1 +726,90,0,1,0,1 +727,90,0,1,0,1 +728,90,0,1,0,1 +729,90,0,1,0,1 +730,90,0,1,0,1 +731,90,0,1,0,1 +732,90,0,1,0,1 +733,90,0,1,0,1 +734,90,0,1,0,1 +735,90,0,1,0,1 +736,90,0,1,0,1 +737,90,0,1,0,1 +738,90,0,1,0,1 +739,90,0,1,0,1 +740,90,0,1,0,1 +741,90,0,1,0,1 +742,90,0,1,0,1 +743,90,0,1,0,1 +744,90,0,1,0,1 +745,90,0,1,0,1 +746,90,0,1,0,1 +747,90,0,1,0,1 +748,90,0,1,0,1 +749,90,0,1,0,1 diff --git a/scripts/prerenderer_configs/mixed_ivas_mtdt_config.txt b/scripts/tests/data/mixed_ivas_mtdt_config.txt similarity index 93% rename from scripts/prerenderer_configs/mixed_ivas_mtdt_config.txt rename to scripts/tests/data/mixed_ivas_mtdt_config.txt index 851d507f9d..de4d877f73 100644 --- a/scripts/prerenderer_configs/mixed_ivas_mtdt_config.txt +++ b/scripts/tests/data/mixed_ivas_mtdt_config.txt @@ -11,4 +11,4 @@ SBA 1 MC 7 -2 \ No newline at end of file +STEREO diff --git a/scripts/prerenderer_configs/mixed_ivas_mtdt_gain_config.txt b/scripts/tests/data/mixed_ivas_mtdt_gain_config.txt similarity index 95% rename from scripts/prerenderer_configs/mixed_ivas_mtdt_gain_config.txt rename to scripts/tests/data/mixed_ivas_mtdt_gain_config.txt index 3d4e576fcc..fea4161535 100644 --- a/scripts/prerenderer_configs/mixed_ivas_mtdt_gain_config.txt +++ b/scripts/tests/data/mixed_ivas_mtdt_gain_config.txt @@ -13,4 +13,4 @@ SBA gain_dB:0.5 MC 7 -2 \ No newline at end of file +CICP2 diff --git a/scripts/tests/data/mixed_scene.txt b/scripts/tests/data/mixed_scene.txt new file mode 100644 index 0000000000..2501c75383 --- /dev/null +++ b/scripts/tests/data/mixed_scene.txt @@ -0,0 +1,15 @@ +spectral_test_16ch_48kHz.wav +4 +ISM +1 +ism_0a_0e.csv +ISM +2 +1 +1,-30,0 +SBA +3 +1 +MC +7 +5_1_4 diff --git a/scripts/prerenderer_configs/mixed_shorthand_config.txt b/scripts/tests/data/mixed_shorthand_config.txt similarity index 89% rename from scripts/prerenderer_configs/mixed_shorthand_config.txt rename to scripts/tests/data/mixed_shorthand_config.txt index edb510e237..b674960789 100644 --- a/scripts/prerenderer_configs/mixed_shorthand_config.txt +++ b/scripts/tests/data/mixed_shorthand_config.txt @@ -13,4 +13,4 @@ SBA 1 MC 7 -2 \ No newline at end of file +STEREO diff --git a/scripts/prerenderer_configs/mixed_shorthand_gain_config.txt b/scripts/tests/data/mixed_shorthand_gain_config.txt similarity index 91% rename from scripts/prerenderer_configs/mixed_shorthand_gain_config.txt rename to scripts/tests/data/mixed_shorthand_gain_config.txt index b0cd5770a2..cb1c9fa156 100644 --- a/scripts/prerenderer_configs/mixed_shorthand_gain_config.txt +++ b/scripts/tests/data/mixed_shorthand_gain_config.txt @@ -15,4 +15,5 @@ SBA gain_dB:0.5 MC 7 -2 \ No newline at end of file +STEREO + diff --git a/scripts/prerenderer_configs/mixed_shorthand_limiter_config.txt b/scripts/tests/data/mixed_shorthand_limiter_config.txt similarity index 83% rename from scripts/prerenderer_configs/mixed_shorthand_limiter_config.txt rename to scripts/tests/data/mixed_shorthand_limiter_config.txt index 7e39b33737..55bf08aeef 100644 --- a/scripts/prerenderer_configs/mixed_shorthand_limiter_config.txt +++ b/scripts/tests/data/mixed_shorthand_limiter_config.txt @@ -16,5 +16,5 @@ SBA gain_dB:20 MC 7 -2 -gain_dB:20 \ No newline at end of file +STEREO +gain_dB:20 diff --git a/scripts/tests/data/pink_noise_10ch_48kHz.wav b/scripts/tests/data/pink_noise_10ch_48kHz.wav new file mode 100644 index 0000000000..d62a4a2e45 --- /dev/null +++ b/scripts/tests/data/pink_noise_10ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d91e0bde3e5efd507b50ab9635504918936f406be5655a33859ecc7cce8e6578 +size 960044 diff --git a/scripts/tests/data/pink_noise_11ch_48kHz.wav b/scripts/tests/data/pink_noise_11ch_48kHz.wav new file mode 100644 index 0000000000..1d6de74f3c --- /dev/null +++ b/scripts/tests/data/pink_noise_11ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91c84157cb13d5c61493f907e4b38302d1e838a04610e708186e67a066ebb0c2 +size 1056044 diff --git a/scripts/tests/data/pink_noise_12ch_48kHz.wav b/scripts/tests/data/pink_noise_12ch_48kHz.wav new file mode 100644 index 0000000000..a6ec8c67ae --- /dev/null +++ b/scripts/tests/data/pink_noise_12ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90ea167b7228a7ec54658bf4d0d61814fbe288bf4e7bd5a72a6ab3ef691f2008 +size 1152044 diff --git a/scripts/tests/data/pink_noise_13ch_48kHz.wav b/scripts/tests/data/pink_noise_13ch_48kHz.wav new file mode 100644 index 0000000000..222397e8e1 --- /dev/null +++ b/scripts/tests/data/pink_noise_13ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b3afeddf57940780add178ff098515940556752758f87ac160386ff7125071e +size 1248044 diff --git a/scripts/tests/data/pink_noise_14ch_48kHz.wav b/scripts/tests/data/pink_noise_14ch_48kHz.wav new file mode 100644 index 0000000000..098b57d3dd --- /dev/null +++ b/scripts/tests/data/pink_noise_14ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c542f1421067546614e47b17715c89d5e705f904faf41bdbd1d439e0abd9e1e0 +size 1344044 diff --git a/scripts/tests/data/pink_noise_15ch_48kHz.wav b/scripts/tests/data/pink_noise_15ch_48kHz.wav new file mode 100644 index 0000000000..f059f92c69 --- /dev/null +++ b/scripts/tests/data/pink_noise_15ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9becb4e4c271590ead4c898992e593baaf4678887f67153e91a8de87c7b5c3ca +size 1440044 diff --git a/scripts/tests/data/pink_noise_16ch_48kHz.wav b/scripts/tests/data/pink_noise_16ch_48kHz.wav new file mode 100644 index 0000000000..3ee7f71d89 --- /dev/null +++ b/scripts/tests/data/pink_noise_16ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90027b3f8b8514bafb2e1dee80a77fc200bafcf45219852b3b7bd97ca60369c2 +size 1536044 diff --git a/scripts/tests/data/pink_noise_1ch_48kHz.wav b/scripts/tests/data/pink_noise_1ch_48kHz.wav new file mode 100644 index 0000000000..5ed1fe6292 --- /dev/null +++ b/scripts/tests/data/pink_noise_1ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54ee3a0aa4cbb5295a33fe0637a1854900d2b14813911c7316193cab53b609dc +size 96044 diff --git a/scripts/tests/data/pink_noise_2ch_48kHz.wav b/scripts/tests/data/pink_noise_2ch_48kHz.wav new file mode 100644 index 0000000000..0e0e43f682 --- /dev/null +++ b/scripts/tests/data/pink_noise_2ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce34623cf87d56cf5d695e79388d1229f74ba266e0977c18cdf03df174675e3d +size 192044 diff --git a/scripts/tests/data/pink_noise_3ch_48kHz.wav b/scripts/tests/data/pink_noise_3ch_48kHz.wav new file mode 100644 index 0000000000..a9ae37feb4 --- /dev/null +++ b/scripts/tests/data/pink_noise_3ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de99e669d4300cd94d3f4966f96ba0f2ca85c40c7cc6cfeb8d09058050ab0909 +size 288044 diff --git a/scripts/tests/data/pink_noise_4ch_48kHz.wav b/scripts/tests/data/pink_noise_4ch_48kHz.wav new file mode 100644 index 0000000000..7881c149f0 --- /dev/null +++ b/scripts/tests/data/pink_noise_4ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9310f2e04af7f544f70dfd7360b93c9bafff7e35d9c919e003b27ed549974d8 +size 384044 diff --git a/scripts/tests/data/pink_noise_5ch_48kHz.wav b/scripts/tests/data/pink_noise_5ch_48kHz.wav new file mode 100644 index 0000000000..f99dc847d9 --- /dev/null +++ b/scripts/tests/data/pink_noise_5ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be89b959d794e780a04956637d3a6f0128452e54153ad7f54e516b2596b52589 +size 480044 diff --git a/scripts/tests/data/pink_noise_6ch_48kHz.wav b/scripts/tests/data/pink_noise_6ch_48kHz.wav new file mode 100644 index 0000000000..deaea297fe --- /dev/null +++ b/scripts/tests/data/pink_noise_6ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6bfe70996dee2eb3bad563eed9bfaf6824449cbec165d666670de2641660b6d +size 576044 diff --git a/scripts/tests/data/pink_noise_7ch_48kHz.wav b/scripts/tests/data/pink_noise_7ch_48kHz.wav new file mode 100644 index 0000000000..70a4cf75da --- /dev/null +++ b/scripts/tests/data/pink_noise_7ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e582f2584abdce32381f1f1366c73171f71a08334751c3c6114ec2f49945b2c +size 672044 diff --git a/scripts/tests/data/pink_noise_8ch_48kHz.wav b/scripts/tests/data/pink_noise_8ch_48kHz.wav new file mode 100644 index 0000000000..3b42c83e48 --- /dev/null +++ b/scripts/tests/data/pink_noise_8ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:418a1cc37dec9dc9a51efd208afe7b6843787e3ed64c86fa69c5780cfb5d3c18 +size 768044 diff --git a/scripts/tests/data/pink_noise_9ch_48kHz.wav b/scripts/tests/data/pink_noise_9ch_48kHz.wav new file mode 100644 index 0000000000..6c5859184d --- /dev/null +++ b/scripts/tests/data/pink_noise_9ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1ef5804949cabfb17ce103010ff33c6229e5c6e28d2cd93c7c8c6060a894023 +size 864044 diff --git a/scripts/prerenderer_configs/prerenderer_config_format_readme.txt b/scripts/tests/data/renderer_config_format_readme.txt similarity index 94% rename from scripts/prerenderer_configs/prerenderer_config_format_readme.txt rename to scripts/tests/data/renderer_config_format_readme.txt index 9f78ca4327..790d52bfc5 100644 --- a/scripts/prerenderer_configs/prerenderer_config_format_readme.txt +++ b/scripts/tests/data/renderer_config_format_readme.txt @@ -43,12 +43,8 @@ channel 5 - an object and channels 6-11 - a 5.1 channel bed. The path given must be relative to the location of the config file. -This path has lower priority than the one given on the command line: -* The path in the config file is ignored if the --inputAudio argument to the - pre-renderer executable is specified. -* When running together with the encoder using EVS_cod_prerenderer.sh, the path in - the config file is ignored and the one provided as script argument is used - instead. +This path has lower priority than the one given on the command line: it is +ignored if the --inputAudio argument to the renderer executable is specified. ------------------------------------ Line 2: ------------------------------------ Contains number of inputs. An input can either be an Ambisonics scene, an @@ -78,7 +74,7 @@ Ambisonics order MC Index of the first channel of this input in the multitrack file (1-indexed) -CICP index of the speaker layout +Name of speaker layout (X_Y_Z or CICPx format) ISM Index of this input's audio in the multitrack file (1-indexed) @@ -133,7 +129,7 @@ SBA gain_dB:-6 MC 5 -6 +5_1 ISM 11 2 diff --git a/scripts/tests/data/spectral_test_10ch_48kHz.wav b/scripts/tests/data/spectral_test_10ch_48kHz.wav new file mode 100644 index 0000000000..4f96b5075c --- /dev/null +++ b/scripts/tests/data/spectral_test_10ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dff871cc4787b53ef73920e9611938c85ab698024cb58384c29d74eb089cfe0 +size 960080 diff --git a/scripts/tests/data/spectral_test_11ch_48kHz.wav b/scripts/tests/data/spectral_test_11ch_48kHz.wav new file mode 100644 index 0000000000..4406f9e2fa --- /dev/null +++ b/scripts/tests/data/spectral_test_11ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79501e014bb57ae483875fd0626b0135d1a3f5273584acd7b8f367a332fc9228 +size 1056044 diff --git a/scripts/tests/data/spectral_test_12ch_48kHz.wav b/scripts/tests/data/spectral_test_12ch_48kHz.wav new file mode 100644 index 0000000000..4ee3e1d862 --- /dev/null +++ b/scripts/tests/data/spectral_test_12ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17b2c1303af29e39ff72075b12b58dc0595411711bdcfdf52ebcc30074d1e987 +size 1152080 diff --git a/scripts/tests/data/spectral_test_15ch_48kHz.wav b/scripts/tests/data/spectral_test_15ch_48kHz.wav new file mode 100644 index 0000000000..b74d476014 --- /dev/null +++ b/scripts/tests/data/spectral_test_15ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ab7acc0e905b617a3f1053fb1c61e8ac9f4da9c7f22d1290ad4fe457e933b35 +size 1440044 diff --git a/scripts/tests/data/spectral_test_16ch_48kHz.wav b/scripts/tests/data/spectral_test_16ch_48kHz.wav new file mode 100644 index 0000000000..9a367181c9 --- /dev/null +++ b/scripts/tests/data/spectral_test_16ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0df9a7fc7739481190e8a04bbe31dc352481e362114fcbca827f54b7bc32a9e8 +size 1536080 diff --git a/scripts/tests/data/spectral_test_1ch_48kHz.wav b/scripts/tests/data/spectral_test_1ch_48kHz.wav new file mode 100644 index 0000000000..ae67b5138c --- /dev/null +++ b/scripts/tests/data/spectral_test_1ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd111053f9742063020e4ffb0f2705971ccaa87b5fbb78bb34626e0e3f7742e7 +size 96044 diff --git a/scripts/tests/data/spectral_test_2ch_48kHz.wav b/scripts/tests/data/spectral_test_2ch_48kHz.wav new file mode 100644 index 0000000000..334a479916 --- /dev/null +++ b/scripts/tests/data/spectral_test_2ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f612f319abdd28cf859d75ae912364fd73b2b591200e307ab6903c629bc10e4 +size 192044 diff --git a/scripts/tests/data/spectral_test_3ch_48kHz.wav b/scripts/tests/data/spectral_test_3ch_48kHz.wav new file mode 100644 index 0000000000..b68e211f2e --- /dev/null +++ b/scripts/tests/data/spectral_test_3ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16559e4b0603e7d1079c9df98fd5763b84194e882b3e6d8086f6ddd6455bbb4f +size 288080 diff --git a/scripts/tests/data/spectral_test_4ch_48kHz.wav b/scripts/tests/data/spectral_test_4ch_48kHz.wav new file mode 100644 index 0000000000..6b9296e281 --- /dev/null +++ b/scripts/tests/data/spectral_test_4ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80437a0e2cbb2adb8d9b6ca8a8fab8da229d88af6a14ce64f1cd703f4645bebf +size 384080 diff --git a/scripts/tests/data/spectral_test_5ch_48kHz.wav b/scripts/tests/data/spectral_test_5ch_48kHz.wav new file mode 100644 index 0000000000..f76de9fb58 --- /dev/null +++ b/scripts/tests/data/spectral_test_5ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36254bd6bbc80967d9148635286ae9b192c05c31fe8ae0f2c88203cacf1789ce +size 480044 diff --git a/scripts/tests/data/spectral_test_6ch_48kHz.wav b/scripts/tests/data/spectral_test_6ch_48kHz.wav new file mode 100644 index 0000000000..41ed7967c9 --- /dev/null +++ b/scripts/tests/data/spectral_test_6ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28c44d1f897897fa8331889ab4de4464f7cee9bd80ea0936f715e4e9860b1c9f +size 576080 diff --git a/scripts/tests/data/spectral_test_8ch_48kHz.wav b/scripts/tests/data/spectral_test_8ch_48kHz.wav new file mode 100644 index 0000000000..6bf42f52fa --- /dev/null +++ b/scripts/tests/data/spectral_test_8ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:220829574ff2adebece2c38afa607f0e2df00443519c5ffe795ce6db9a329666 +size 768080 diff --git a/scripts/tests/data/spectral_test_9ch_48kHz.wav b/scripts/tests/data/spectral_test_9ch_48kHz.wav new file mode 100644 index 0000000000..5c7d9f2a71 --- /dev/null +++ b/scripts/tests/data/spectral_test_9ch_48kHz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a99522fe24aa91c8be4cca8aaa9b6817e85bdf3e255f8705dee1b82b4e39dbab +size 864080 diff --git a/scripts/tests/data/spectral_test_ism1.txt b/scripts/tests/data/spectral_test_ism1.txt new file mode 100644 index 0000000000..84b3b25268 --- /dev/null +++ b/scripts/tests/data/spectral_test_ism1.txt @@ -0,0 +1,5 @@ +spectral_test_1ch_48kHz.wav +1 +ISM +1 +stvISM1.csv diff --git a/scripts/tests/data/spectral_test_ism2.txt b/scripts/tests/data/spectral_test_ism2.txt new file mode 100644 index 0000000000..18f3e7a24c --- /dev/null +++ b/scripts/tests/data/spectral_test_ism2.txt @@ -0,0 +1,8 @@ +spectral_test_2ch_48kHz.wav +2 +ISM +1 +stvISM1.csv +ISM +2 +stvISM2.csv diff --git a/scripts/tests/data/spectral_test_ism3.txt b/scripts/tests/data/spectral_test_ism3.txt new file mode 100644 index 0000000000..c25d0d0dff --- /dev/null +++ b/scripts/tests/data/spectral_test_ism3.txt @@ -0,0 +1,11 @@ +spectral_test_3ch_48kHz.wav +3 +ISM +1 +stvISM1.csv +ISM +2 +stvISM2.csv +ISM +3 +stvISM3.csv diff --git a/scripts/tests/data/spectral_test_ism4.txt b/scripts/tests/data/spectral_test_ism4.txt new file mode 100644 index 0000000000..f4a95d1e09 --- /dev/null +++ b/scripts/tests/data/spectral_test_ism4.txt @@ -0,0 +1,14 @@ +spectral_test_4ch_48kHz.wav +4 +ISM +1 +stvISM1.csv +ISM +2 +stvISM2.csv +ISM +3 +stvISM3.csv +ISM +4 +stvISM4.csv diff --git a/scripts/tests/data/stvISM1.csv b/scripts/tests/data/stvISM1.csv new file mode 100644 index 0000000000..574c537028 --- /dev/null +++ b/scripts/tests/data/stvISM1.csv @@ -0,0 +1,1500 @@ +0,0.00,0.00,1.00,0.00,1.00 +1,4.80,0.00,1.00,0.00,1.00 +2,9.60,0.00,1.00,0.00,1.00 +3,14.40,0.00,1.00,0.00,1.00 +4,19.20,0.00,1.00,0.00,1.00 +5,24.00,0.00,1.00,0.00,1.00 +6,28.80,0.00,1.00,0.00,1.00 +7,33.60,0.00,1.00,0.00,1.00 +8,38.40,0.00,1.00,0.00,1.00 +9,43.20,0.00,1.00,0.00,1.00 +10,48.00,0.00,1.00,0.00,1.00 +11,52.80,0.00,1.00,0.00,1.00 +12,57.60,0.00,1.00,0.00,1.00 +13,62.40,0.00,1.00,0.00,1.00 +14,67.20,0.00,1.00,0.00,1.00 +15,72.00,0.00,1.00,0.00,1.00 +16,76.80,0.00,1.00,0.00,1.00 +17,81.60,0.00,1.00,0.00,1.00 +18,86.40,0.00,1.00,0.00,1.00 +19,91.20,0.00,1.00,0.00,1.00 +20,96.00,0.00,1.00,0.00,1.00 +21,100.80,0.00,1.00,0.00,1.00 +22,105.60,0.00,1.00,0.00,1.00 +23,110.40,0.00,1.00,0.00,1.00 +24,115.20,0.00,1.00,0.00,1.00 +25,120.00,0.00,1.00,0.00,1.00 +26,124.80,0.00,1.00,0.00,1.00 +27,129.60,0.00,1.00,0.00,1.00 +28,134.40,0.00,1.00,0.00,1.00 +29,139.20,0.00,1.00,0.00,1.00 +30,144.00,0.00,1.00,0.00,1.00 +31,148.80,0.00,1.00,0.00,1.00 +32,153.60,0.00,1.00,0.00,1.00 +33,158.40,0.00,1.00,0.00,1.00 +34,163.20,0.00,1.00,0.00,1.00 +35,168.00,0.00,1.00,0.00,1.00 +36,172.80,0.00,1.00,0.00,1.00 +37,177.60,0.00,1.00,0.00,1.00 +38,-177.60,0.00,1.00,0.00,1.00 +39,-172.80,0.00,1.00,0.00,1.00 +40,-168.00,0.00,1.00,0.00,1.00 +41,-163.20,0.00,1.00,0.00,1.00 +42,-158.40,0.00,1.00,0.00,1.00 +43,-153.60,0.00,1.00,0.00,1.00 +44,-148.80,0.00,1.00,0.00,1.00 +45,-144.00,0.00,1.00,0.00,1.00 +46,-139.20,0.00,1.00,0.00,1.00 +47,-134.40,0.00,1.00,0.00,1.00 +48,-129.60,0.00,1.00,0.00,1.00 +49,-124.80,0.00,1.00,0.00,1.00 +50,-120.00,0.00,1.00,0.00,1.00 +51,-115.20,0.00,1.00,0.00,1.00 +52,-110.40,0.00,1.00,0.00,1.00 +53,-105.60,0.00,1.00,0.00,1.00 +54,-100.80,0.00,1.00,0.00,1.00 +55,-96.00,0.00,1.00,0.00,1.00 +56,-91.20,0.00,1.00,0.00,1.00 +57,-86.40,0.00,1.00,0.00,1.00 +58,-81.60,0.00,1.00,0.00,1.00 +59,-76.80,0.00,1.00,0.00,1.00 +60,-72.00,0.00,1.00,0.00,1.00 +61,-67.20,0.00,1.00,0.00,1.00 +62,-62.40,0.00,1.00,0.00,1.00 +63,-57.60,0.00,1.00,0.00,1.00 +64,-52.80,0.00,1.00,0.00,1.00 +65,-48.00,0.00,1.00,0.00,1.00 +66,-43.20,0.00,1.00,0.00,1.00 +67,-38.40,0.00,1.00,0.00,1.00 +68,-33.60,0.00,1.00,0.00,1.00 +69,-28.80,0.00,1.00,0.00,1.00 +70,-24.00,0.00,1.00,0.00,1.00 +71,-19.20,0.00,1.00,0.00,1.00 +72,-14.40,0.00,1.00,0.00,1.00 +73,-9.60,0.00,1.00,0.00,1.00 +74,-4.80,0.00,1.00,0.00,1.00 +75,0.00,0.00,1.00,0.00,1.00 +76,4.80,-0.00,1.00,0.00,1.00 +77,9.60,-0.00,1.00,0.00,1.00 +78,14.40,-0.00,1.00,0.00,1.00 +79,19.20,-0.00,1.00,0.00,1.00 +80,24.00,-0.00,1.00,0.00,1.00 +81,28.80,-0.00,1.00,0.00,1.00 +82,33.60,-4.80,1.00,0.00,1.00 +83,38.40,-4.80,1.00,0.00,1.00 +84,43.20,-4.80,1.00,0.00,1.00 +85,48.00,-4.80,1.00,0.00,1.00 +86,52.80,-4.80,1.00,0.00,1.00 +87,57.60,-4.80,1.00,0.00,1.00 +88,62.40,-4.80,1.00,0.00,1.00 +89,67.20,-4.80,1.00,0.00,1.00 +90,72.00,-4.80,1.00,0.00,1.00 +91,76.80,-4.80,1.00,0.00,1.00 +92,81.60,-4.80,1.00,0.00,1.00 +93,86.40,-4.80,1.00,0.00,1.00 +94,91.20,-4.80,1.00,0.00,1.00 +95,96.00,-4.80,1.00,0.00,1.00 +96,100.80,-4.80,1.00,0.00,1.00 +97,105.60,-4.80,1.00,0.00,1.00 +98,110.40,-4.80,1.00,0.00,1.00 +99,115.20,-4.80,1.00,0.00,1.00 +100,120.00,-4.80,1.00,0.00,1.00 +101,124.80,-4.80,1.00,0.00,1.00 +102,129.60,-4.80,1.00,0.00,1.00 +103,134.40,-4.80,1.00,0.00,1.00 +104,139.20,-4.80,1.00,0.00,1.00 +105,144.00,-4.80,1.00,0.00,1.00 +106,148.80,-4.80,1.00,0.00,1.00 +107,153.60,-0.00,1.00,0.00,1.00 +108,158.40,-0.00,1.00,0.00,1.00 +109,163.20,-0.00,1.00,0.00,1.00 +110,168.00,-0.00,1.00,0.00,1.00 +111,172.80,-0.00,1.00,0.00,1.00 +112,177.60,-0.00,1.00,0.00,1.00 +113,-177.60,0.00,1.00,0.00,1.00 +114,-172.80,0.00,1.00,0.00,1.00 +115,-168.00,0.00,1.00,0.00,1.00 +116,-163.20,0.00,1.00,0.00,1.00 +117,-158.40,0.00,1.00,0.00,1.00 +118,-153.60,0.00,1.00,0.00,1.00 +119,-148.80,4.80,1.00,0.00,1.00 +120,-144.00,4.80,1.00,0.00,1.00 +121,-139.20,4.80,1.00,0.00,1.00 +122,-134.40,4.80,1.00,0.00,1.00 +123,-129.60,4.80,1.00,0.00,1.00 +124,-124.80,4.80,1.00,0.00,1.00 +125,-120.00,4.80,1.00,0.00,1.00 +126,-115.20,4.80,1.00,0.00,1.00 +127,-110.40,4.80,1.00,0.00,1.00 +128,-105.60,4.80,1.00,0.00,1.00 +129,-100.80,4.80,1.00,0.00,1.00 +130,-96.00,4.80,1.00,0.00,1.00 +131,-91.20,4.80,1.00,0.00,1.00 +132,-86.40,4.80,1.00,0.00,1.00 +133,-81.60,4.80,1.00,0.00,1.00 +134,-76.80,4.80,1.00,0.00,1.00 +135,-72.00,4.80,1.00,0.00,1.00 +136,-67.20,4.80,1.00,0.00,1.00 +137,-62.40,4.80,1.00,0.00,1.00 +138,-57.60,4.80,1.00,0.00,1.00 +139,-52.80,4.80,1.00,0.00,1.00 +140,-48.00,4.80,1.00,0.00,1.00 +141,-43.20,4.80,1.00,0.00,1.00 +142,-38.40,4.80,1.00,0.00,1.00 +143,-33.60,4.80,1.00,0.00,1.00 +144,-28.80,0.00,1.00,0.00,1.00 +145,-24.00,0.00,1.00,0.00,1.00 +146,-19.20,0.00,1.00,0.00,1.00 +147,-14.40,0.00,1.00,0.00,1.00 +148,-9.60,0.00,1.00,0.00,1.00 +149,-4.80,0.00,1.00,0.00,1.00 +150,0.00,0.00,1.00,0.00,1.00 +151,4.80,-0.00,1.00,0.00,1.00 +152,9.60,-0.00,1.00,0.00,1.00 +153,14.40,-0.00,1.00,0.00,1.00 +154,19.20,-4.80,1.00,0.00,1.00 +155,24.00,-4.80,1.00,0.00,1.00 +156,28.80,-4.80,1.00,0.00,1.00 +157,33.60,-4.80,1.00,0.00,1.00 +158,38.40,-4.80,1.00,0.00,1.00 +159,43.20,-4.80,1.00,0.00,1.00 +160,48.00,-4.80,1.00,0.00,1.00 +161,52.80,-9.60,1.00,0.00,1.00 +162,57.60,-9.60,1.00,0.00,1.00 +163,62.40,-9.60,1.00,0.00,1.00 +164,67.20,-9.60,1.00,0.00,1.00 +165,72.00,-9.60,1.00,0.00,1.00 +166,76.80,-9.60,1.00,0.00,1.00 +167,81.60,-9.60,1.00,0.00,1.00 +168,86.40,-9.60,1.00,0.00,1.00 +169,91.20,-9.60,1.00,0.00,1.00 +170,96.00,-9.60,1.00,0.00,1.00 +171,100.80,-9.60,1.00,0.00,1.00 +172,105.60,-9.60,1.00,0.00,1.00 +173,110.40,-9.60,1.00,0.00,1.00 +174,115.20,-9.60,1.00,0.00,1.00 +175,120.00,-9.60,1.00,0.00,1.00 +176,124.80,-9.60,1.00,0.00,1.00 +177,129.60,-9.60,1.00,0.00,1.00 +178,134.40,-4.80,1.00,0.00,1.00 +179,139.20,-4.80,1.00,0.00,1.00 +180,144.00,-4.80,1.00,0.00,1.00 +181,148.80,-4.80,1.00,0.00,1.00 +182,153.60,-4.80,1.00,0.00,1.00 +183,158.40,-4.80,1.00,0.00,1.00 +184,163.20,-4.80,1.00,0.00,1.00 +185,168.00,-0.00,1.00,0.00,1.00 +186,172.80,-0.00,1.00,0.00,1.00 +187,177.60,-0.00,1.00,0.00,1.00 +188,-177.60,0.00,1.00,0.00,1.00 +189,-172.80,0.00,1.00,0.00,1.00 +190,-168.00,0.00,1.00,0.00,1.00 +191,-163.20,4.80,1.00,0.00,1.00 +192,-158.40,4.80,1.00,0.00,1.00 +193,-153.60,4.80,1.00,0.00,1.00 +194,-148.80,4.80,1.00,0.00,1.00 +195,-144.00,4.80,1.00,0.00,1.00 +196,-139.20,4.80,1.00,0.00,1.00 +197,-134.40,4.80,1.00,0.00,1.00 +198,-129.60,9.60,1.00,0.00,1.00 +199,-124.80,9.60,1.00,0.00,1.00 +200,-120.00,9.60,1.00,0.00,1.00 +201,-115.20,9.60,1.00,0.00,1.00 +202,-110.40,9.60,1.00,0.00,1.00 +203,-105.60,9.60,1.00,0.00,1.00 +204,-100.80,9.60,1.00,0.00,1.00 +205,-96.00,9.60,1.00,0.00,1.00 +206,-91.20,9.60,1.00,0.00,1.00 +207,-86.40,9.60,1.00,0.00,1.00 +208,-81.60,9.60,1.00,0.00,1.00 +209,-76.80,9.60,1.00,0.00,1.00 +210,-72.00,9.60,1.00,0.00,1.00 +211,-67.20,9.60,1.00,0.00,1.00 +212,-62.40,9.60,1.00,0.00,1.00 +213,-57.60,9.60,1.00,0.00,1.00 +214,-52.80,9.60,1.00,0.00,1.00 +215,-48.00,4.80,1.00,0.00,1.00 +216,-43.20,4.80,1.00,0.00,1.00 +217,-38.40,4.80,1.00,0.00,1.00 +218,-33.60,4.80,1.00,0.00,1.00 +219,-28.80,4.80,1.00,0.00,1.00 +220,-24.00,4.80,1.00,0.00,1.00 +221,-19.20,4.80,1.00,0.00,1.00 +222,-14.40,0.00,1.00,0.00,1.00 +223,-9.60,0.00,1.00,0.00,1.00 +224,-4.80,0.00,1.00,0.00,1.00 +225,0.00,0.00,1.00,0.00,1.00 +226,4.80,-0.00,1.00,0.00,1.00 +227,9.60,-0.00,1.00,0.00,1.00 +228,14.40,-4.80,1.00,0.00,1.00 +229,19.20,-4.80,1.00,0.00,1.00 +230,24.00,-4.80,1.00,0.00,1.00 +231,28.80,-4.80,1.00,0.00,1.00 +232,33.60,-9.60,1.00,0.00,1.00 +233,38.40,-9.60,1.00,0.00,1.00 +234,43.20,-9.60,1.00,0.00,1.00 +235,48.00,-9.60,1.00,0.00,1.00 +236,52.80,-9.60,1.00,0.00,1.00 +237,57.60,-14.40,1.00,0.00,1.00 +238,62.40,-14.40,1.00,0.00,1.00 +239,67.20,-14.40,1.00,0.00,1.00 +240,72.00,-14.40,1.00,0.00,1.00 +241,76.80,-14.40,1.00,0.00,1.00 +242,81.60,-14.40,1.00,0.00,1.00 +243,86.40,-14.40,1.00,0.00,1.00 +244,91.20,-14.40,1.00,0.00,1.00 +245,96.00,-14.40,1.00,0.00,1.00 +246,100.80,-14.40,1.00,0.00,1.00 +247,105.60,-14.40,1.00,0.00,1.00 +248,110.40,-14.40,1.00,0.00,1.00 +249,115.20,-14.40,1.00,0.00,1.00 +250,120.00,-14.40,1.00,0.00,1.00 +251,124.80,-9.60,1.00,0.00,1.00 +252,129.60,-9.60,1.00,0.00,1.00 +253,134.40,-9.60,1.00,0.00,1.00 +254,139.20,-9.60,1.00,0.00,1.00 +255,144.00,-9.60,1.00,0.00,1.00 +256,148.80,-9.60,1.00,0.00,1.00 +257,153.60,-4.80,1.00,0.00,1.00 +258,158.40,-4.80,1.00,0.00,1.00 +259,163.20,-4.80,1.00,0.00,1.00 +260,168.00,-4.80,1.00,0.00,1.00 +261,172.80,-0.00,1.00,0.00,1.00 +262,177.60,-0.00,1.00,0.00,1.00 +263,-177.60,0.00,1.00,0.00,1.00 +264,-172.80,0.00,1.00,0.00,1.00 +265,-168.00,4.80,1.00,0.00,1.00 +266,-163.20,4.80,1.00,0.00,1.00 +267,-158.40,4.80,1.00,0.00,1.00 +268,-153.60,4.80,1.00,0.00,1.00 +269,-148.80,9.60,1.00,0.00,1.00 +270,-144.00,9.60,1.00,0.00,1.00 +271,-139.20,9.60,1.00,0.00,1.00 +272,-134.40,9.60,1.00,0.00,1.00 +273,-129.60,9.60,1.00,0.00,1.00 +274,-124.80,9.60,1.00,0.00,1.00 +275,-120.00,14.40,1.00,0.00,1.00 +276,-115.20,14.40,1.00,0.00,1.00 +277,-110.40,14.40,1.00,0.00,1.00 +278,-105.60,14.40,1.00,0.00,1.00 +279,-100.80,14.40,1.00,0.00,1.00 +280,-96.00,14.40,1.00,0.00,1.00 +281,-91.20,14.40,1.00,0.00,1.00 +282,-86.40,14.40,1.00,0.00,1.00 +283,-81.60,14.40,1.00,0.00,1.00 +284,-76.80,14.40,1.00,0.00,1.00 +285,-72.00,14.40,1.00,0.00,1.00 +286,-67.20,14.40,1.00,0.00,1.00 +287,-62.40,14.40,1.00,0.00,1.00 +288,-57.60,14.40,1.00,0.00,1.00 +289,-52.80,9.60,1.00,0.00,1.00 +290,-48.00,9.60,1.00,0.00,1.00 +291,-43.20,9.60,1.00,0.00,1.00 +292,-38.40,9.60,1.00,0.00,1.00 +293,-33.60,9.60,1.00,0.00,1.00 +294,-28.80,4.80,1.00,0.00,1.00 +295,-24.00,4.80,1.00,0.00,1.00 +296,-19.20,4.80,1.00,0.00,1.00 +297,-14.40,4.80,1.00,0.00,1.00 +298,-9.60,0.00,1.00,0.00,1.00 +299,-4.80,0.00,1.00,0.00,1.00 +300,0.00,0.00,1.00,0.00,1.00 +301,4.80,-0.00,1.00,0.00,1.00 +302,9.60,-4.80,1.00,0.00,1.00 +303,14.40,-4.80,1.00,0.00,1.00 +304,19.20,-4.80,1.00,0.00,1.00 +305,24.00,-9.60,1.00,0.00,1.00 +306,28.80,-9.60,1.00,0.00,1.00 +307,33.60,-9.60,1.00,0.00,1.00 +308,38.40,-9.60,1.00,0.00,1.00 +309,43.20,-14.40,1.00,0.00,1.00 +310,48.00,-14.40,1.00,0.00,1.00 +311,52.80,-14.40,1.00,0.00,1.00 +312,57.60,-14.40,1.00,0.00,1.00 +313,62.40,-19.20,1.00,0.00,1.00 +314,67.20,-19.20,1.00,0.00,1.00 +315,72.00,-19.20,1.00,0.00,1.00 +316,76.80,-19.20,1.00,0.00,1.00 +317,81.60,-19.20,1.00,0.00,1.00 +318,86.40,-19.20,1.00,0.00,1.00 +319,91.20,-19.20,1.00,0.00,1.00 +320,96.00,-19.20,1.00,0.00,1.00 +321,100.80,-19.20,1.00,0.00,1.00 +322,105.60,-19.20,1.00,0.00,1.00 +323,110.40,-19.20,1.00,0.00,1.00 +324,115.20,-19.20,1.00,0.00,1.00 +325,120.00,-14.40,1.00,0.00,1.00 +326,124.80,-14.40,1.00,0.00,1.00 +327,129.60,-14.40,1.00,0.00,1.00 +328,134.40,-14.40,1.00,0.00,1.00 +329,139.20,-14.40,1.00,0.00,1.00 +330,144.00,-9.60,1.00,0.00,1.00 +331,148.80,-9.60,1.00,0.00,1.00 +332,153.60,-9.60,1.00,0.00,1.00 +333,158.40,-4.80,1.00,0.00,1.00 +334,163.20,-4.80,1.00,0.00,1.00 +335,168.00,-4.80,1.00,0.00,1.00 +336,172.80,-0.00,1.00,0.00,1.00 +337,177.60,-0.00,1.00,0.00,1.00 +338,-177.60,0.00,1.00,0.00,1.00 +339,-172.80,0.00,1.00,0.00,1.00 +340,-168.00,4.80,1.00,0.00,1.00 +341,-163.20,4.80,1.00,0.00,1.00 +342,-158.40,4.80,1.00,0.00,1.00 +343,-153.60,9.60,1.00,0.00,1.00 +344,-148.80,9.60,1.00,0.00,1.00 +345,-144.00,9.60,1.00,0.00,1.00 +346,-139.20,14.40,1.00,0.00,1.00 +347,-134.40,14.40,1.00,0.00,1.00 +348,-129.60,14.40,1.00,0.00,1.00 +349,-124.80,14.40,1.00,0.00,1.00 +350,-120.00,14.40,1.00,0.00,1.00 +351,-115.20,19.20,1.00,0.00,1.00 +352,-110.40,19.20,1.00,0.00,1.00 +353,-105.60,19.20,1.00,0.00,1.00 +354,-100.80,19.20,1.00,0.00,1.00 +355,-96.00,19.20,1.00,0.00,1.00 +356,-91.20,19.20,1.00,0.00,1.00 +357,-86.40,19.20,1.00,0.00,1.00 +358,-81.60,19.20,1.00,0.00,1.00 +359,-76.80,19.20,1.00,0.00,1.00 +360,-72.00,19.20,1.00,0.00,1.00 +361,-67.20,19.20,1.00,0.00,1.00 +362,-62.40,19.20,1.00,0.00,1.00 +363,-57.60,14.40,1.00,0.00,1.00 +364,-52.80,14.40,1.00,0.00,1.00 +365,-48.00,14.40,1.00,0.00,1.00 +366,-43.20,14.40,1.00,0.00,1.00 +367,-38.40,9.60,1.00,0.00,1.00 +368,-33.60,9.60,1.00,0.00,1.00 +369,-28.80,9.60,1.00,0.00,1.00 +370,-24.00,9.60,1.00,0.00,1.00 +371,-19.20,4.80,1.00,0.00,1.00 +372,-14.40,4.80,1.00,0.00,1.00 +373,-9.60,4.80,1.00,0.00,1.00 +374,-4.80,0.00,1.00,0.00,1.00 +375,0.00,0.00,1.00,0.00,1.00 +376,4.80,-0.00,1.00,0.00,1.00 +377,9.60,-4.80,1.00,0.00,1.00 +378,14.40,-4.80,1.00,0.00,1.00 +379,19.20,-9.60,1.00,0.00,1.00 +380,24.00,-9.60,1.00,0.00,1.00 +381,28.80,-9.60,1.00,0.00,1.00 +382,33.60,-14.40,1.00,0.00,1.00 +383,33.60,-14.40,1.00,0.00,1.00 +384,38.40,-14.40,1.00,0.00,1.00 +385,43.20,-19.20,1.00,0.00,1.00 +386,48.00,-19.20,1.00,0.00,1.00 +387,57.60,-19.20,1.00,0.00,1.00 +388,62.40,-19.20,1.00,0.00,1.00 +389,67.20,-24.00,1.00,0.00,1.00 +390,72.00,-24.00,1.00,0.00,1.00 +391,76.80,-24.00,1.00,0.00,1.00 +392,81.60,-24.00,1.00,0.00,1.00 +393,86.40,-24.00,1.00,0.00,1.00 +394,91.20,-24.00,1.00,0.00,1.00 +395,96.00,-24.00,1.00,0.00,1.00 +396,100.80,-24.00,1.00,0.00,1.00 +397,105.60,-24.00,1.00,0.00,1.00 +398,110.40,-24.00,1.00,0.00,1.00 +399,115.20,-19.20,1.00,0.00,1.00 +400,120.00,-19.20,1.00,0.00,1.00 +401,129.60,-19.20,1.00,0.00,1.00 +402,134.40,-19.20,1.00,0.00,1.00 +403,139.20,-19.20,1.00,0.00,1.00 +404,144.00,-14.40,1.00,0.00,1.00 +405,148.80,-14.40,1.00,0.00,1.00 +406,148.80,-14.40,1.00,0.00,1.00 +407,153.60,-9.60,1.00,0.00,1.00 +408,158.40,-9.60,1.00,0.00,1.00 +409,163.20,-4.80,1.00,0.00,1.00 +410,168.00,-4.80,1.00,0.00,1.00 +411,172.80,-4.80,1.00,0.00,1.00 +412,177.60,-0.00,1.00,0.00,1.00 +413,-177.60,0.00,1.00,0.00,1.00 +414,-172.80,4.80,1.00,0.00,1.00 +415,-168.00,4.80,1.00,0.00,1.00 +416,-163.20,4.80,1.00,0.00,1.00 +417,-158.40,9.60,1.00,0.00,1.00 +418,-153.60,9.60,1.00,0.00,1.00 +419,-148.80,14.40,1.00,0.00,1.00 +420,-148.80,14.40,1.00,0.00,1.00 +421,-144.00,14.40,1.00,0.00,1.00 +422,-139.20,19.20,1.00,0.00,1.00 +423,-134.40,19.20,1.00,0.00,1.00 +424,-129.60,19.20,1.00,0.00,1.00 +425,-120.00,19.20,1.00,0.00,1.00 +426,-115.20,19.20,1.00,0.00,1.00 +427,-110.40,24.00,1.00,0.00,1.00 +428,-105.60,24.00,1.00,0.00,1.00 +429,-100.80,24.00,1.00,0.00,1.00 +430,-96.00,24.00,1.00,0.00,1.00 +431,-91.20,24.00,1.00,0.00,1.00 +432,-86.40,24.00,1.00,0.00,1.00 +433,-81.60,24.00,1.00,0.00,1.00 +434,-76.80,24.00,1.00,0.00,1.00 +435,-72.00,24.00,1.00,0.00,1.00 +436,-67.20,24.00,1.00,0.00,1.00 +437,-62.40,19.20,1.00,0.00,1.00 +438,-57.60,19.20,1.00,0.00,1.00 +439,-48.00,19.20,1.00,0.00,1.00 +440,-43.20,19.20,1.00,0.00,1.00 +441,-38.40,14.40,1.00,0.00,1.00 +442,-33.60,14.40,1.00,0.00,1.00 +443,-33.60,14.40,1.00,0.00,1.00 +444,-28.80,9.60,1.00,0.00,1.00 +445,-24.00,9.60,1.00,0.00,1.00 +446,-19.20,9.60,1.00,0.00,1.00 +447,-14.40,4.80,1.00,0.00,1.00 +448,-9.60,4.80,1.00,0.00,1.00 +449,-4.80,0.00,1.00,0.00,1.00 +450,0.00,0.00,1.00,0.00,1.00 +451,4.80,-0.00,1.00,0.00,1.00 +452,9.60,-4.80,1.00,0.00,1.00 +453,14.40,-4.80,1.00,0.00,1.00 +454,19.20,-9.60,1.00,0.00,1.00 +455,19.20,-9.60,1.00,0.00,1.00 +456,24.00,-14.40,1.00,0.00,1.00 +457,28.80,-14.40,1.00,0.00,1.00 +458,33.60,-19.20,1.00,0.00,1.00 +459,38.40,-19.20,1.00,0.00,1.00 +460,43.20,-19.20,1.00,0.00,1.00 +461,48.00,-24.00,1.00,0.00,1.00 +462,52.80,-24.00,1.00,0.00,1.00 +463,57.60,-24.00,1.00,0.00,1.00 +464,62.40,-24.00,1.00,0.00,1.00 +465,72.00,-28.80,1.00,0.00,1.00 +466,76.80,-28.80,1.00,0.00,1.00 +467,81.60,-28.80,1.00,0.00,1.00 +468,86.40,-28.80,1.00,0.00,1.00 +469,91.20,-28.80,1.00,0.00,1.00 +470,96.00,-28.80,1.00,0.00,1.00 +471,100.80,-28.80,1.00,0.00,1.00 +472,105.60,-28.80,1.00,0.00,1.00 +473,115.20,-28.80,1.00,0.00,1.00 +474,120.00,-24.00,1.00,0.00,1.00 +475,124.80,-24.00,1.00,0.00,1.00 +476,129.60,-24.00,1.00,0.00,1.00 +477,134.40,-24.00,1.00,0.00,1.00 +478,139.20,-19.20,1.00,0.00,1.00 +479,144.00,-19.20,1.00,0.00,1.00 +480,148.80,-14.40,1.00,0.00,1.00 +481,153.60,-14.40,1.00,0.00,1.00 +482,158.40,-14.40,1.00,0.00,1.00 +483,163.20,-9.60,1.00,0.00,1.00 +484,163.20,-9.60,1.00,0.00,1.00 +485,168.00,-4.80,1.00,0.00,1.00 +486,172.80,-4.80,1.00,0.00,1.00 +487,177.60,-0.00,1.00,0.00,1.00 +488,-177.60,0.00,1.00,0.00,1.00 +489,-172.80,4.80,1.00,0.00,1.00 +490,-168.00,4.80,1.00,0.00,1.00 +491,-163.20,9.60,1.00,0.00,1.00 +492,-163.20,9.60,1.00,0.00,1.00 +493,-158.40,14.40,1.00,0.00,1.00 +494,-153.60,14.40,1.00,0.00,1.00 +495,-148.80,14.40,1.00,0.00,1.00 +496,-144.00,19.20,1.00,0.00,1.00 +497,-139.20,19.20,1.00,0.00,1.00 +498,-134.40,24.00,1.00,0.00,1.00 +499,-129.60,24.00,1.00,0.00,1.00 +500,-124.80,24.00,1.00,0.00,1.00 +501,-120.00,24.00,1.00,0.00,1.00 +502,-115.20,28.80,1.00,0.00,1.00 +503,-105.60,28.80,1.00,0.00,1.00 +504,-100.80,28.80,1.00,0.00,1.00 +505,-96.00,28.80,1.00,0.00,1.00 +506,-91.20,28.80,1.00,0.00,1.00 +507,-86.40,28.80,1.00,0.00,1.00 +508,-81.60,28.80,1.00,0.00,1.00 +509,-76.80,28.80,1.00,0.00,1.00 +510,-72.00,28.80,1.00,0.00,1.00 +511,-62.40,24.00,1.00,0.00,1.00 +512,-57.60,24.00,1.00,0.00,1.00 +513,-52.80,24.00,1.00,0.00,1.00 +514,-48.00,24.00,1.00,0.00,1.00 +515,-43.20,19.20,1.00,0.00,1.00 +516,-38.40,19.20,1.00,0.00,1.00 +517,-33.60,19.20,1.00,0.00,1.00 +518,-28.80,14.40,1.00,0.00,1.00 +519,-24.00,14.40,1.00,0.00,1.00 +520,-19.20,9.60,1.00,0.00,1.00 +521,-19.20,9.60,1.00,0.00,1.00 +522,-14.40,4.80,1.00,0.00,1.00 +523,-9.60,4.80,1.00,0.00,1.00 +524,-4.80,0.00,1.00,0.00,1.00 +525,0.00,0.00,1.00,0.00,1.00 +526,4.80,-4.80,1.00,0.00,1.00 +527,9.60,-4.80,1.00,0.00,1.00 +528,14.40,-9.60,1.00,0.00,1.00 +529,14.40,-9.60,1.00,0.00,1.00 +530,19.20,-14.40,1.00,0.00,1.00 +531,24.00,-14.40,1.00,0.00,1.00 +532,28.80,-19.20,1.00,0.00,1.00 +533,33.60,-19.20,1.00,0.00,1.00 +534,38.40,-24.00,1.00,0.00,1.00 +535,43.20,-24.00,1.00,0.00,1.00 +536,48.00,-24.00,1.00,0.00,1.00 +537,52.80,-28.80,1.00,0.00,1.00 +538,57.60,-28.80,1.00,0.00,1.00 +539,62.40,-28.80,1.00,0.00,1.00 +540,67.20,-33.60,1.00,0.00,1.00 +541,72.00,-33.60,1.00,0.00,1.00 +542,81.60,-33.60,1.00,0.00,1.00 +543,86.40,-33.60,1.00,0.00,1.00 +544,91.20,-33.60,1.00,0.00,1.00 +545,96.00,-33.60,1.00,0.00,1.00 +546,100.80,-33.60,1.00,0.00,1.00 +547,110.40,-33.60,1.00,0.00,1.00 +548,115.20,-33.60,1.00,0.00,1.00 +549,120.00,-28.80,1.00,0.00,1.00 +550,124.80,-28.80,1.00,0.00,1.00 +551,129.60,-28.80,1.00,0.00,1.00 +552,134.40,-24.00,1.00,0.00,1.00 +553,139.20,-24.00,1.00,0.00,1.00 +554,144.00,-19.20,1.00,0.00,1.00 +555,148.80,-19.20,1.00,0.00,1.00 +556,153.60,-14.40,1.00,0.00,1.00 +557,158.40,-14.40,1.00,0.00,1.00 +558,163.20,-9.60,1.00,0.00,1.00 +559,168.00,-9.60,1.00,0.00,1.00 +560,168.00,-4.80,1.00,0.00,1.00 +561,172.80,-4.80,1.00,0.00,1.00 +562,177.60,-0.00,1.00,0.00,1.00 +563,-177.60,0.00,1.00,0.00,1.00 +564,-172.80,4.80,1.00,0.00,1.00 +565,-168.00,4.80,1.00,0.00,1.00 +566,-168.00,9.60,1.00,0.00,1.00 +567,-163.20,9.60,1.00,0.00,1.00 +568,-158.40,14.40,1.00,0.00,1.00 +569,-153.60,14.40,1.00,0.00,1.00 +570,-148.80,19.20,1.00,0.00,1.00 +571,-144.00,19.20,1.00,0.00,1.00 +572,-139.20,24.00,1.00,0.00,1.00 +573,-134.40,24.00,1.00,0.00,1.00 +574,-129.60,28.80,1.00,0.00,1.00 +575,-124.80,28.80,1.00,0.00,1.00 +576,-120.00,28.80,1.00,0.00,1.00 +577,-115.20,33.60,1.00,0.00,1.00 +578,-110.40,33.60,1.00,0.00,1.00 +579,-100.80,33.60,1.00,0.00,1.00 +580,-96.00,33.60,1.00,0.00,1.00 +581,-91.20,33.60,1.00,0.00,1.00 +582,-86.40,33.60,1.00,0.00,1.00 +583,-81.60,33.60,1.00,0.00,1.00 +584,-72.00,33.60,1.00,0.00,1.00 +585,-67.20,33.60,1.00,0.00,1.00 +586,-62.40,28.80,1.00,0.00,1.00 +587,-57.60,28.80,1.00,0.00,1.00 +588,-52.80,28.80,1.00,0.00,1.00 +589,-48.00,24.00,1.00,0.00,1.00 +590,-43.20,24.00,1.00,0.00,1.00 +591,-38.40,24.00,1.00,0.00,1.00 +592,-33.60,19.20,1.00,0.00,1.00 +593,-28.80,19.20,1.00,0.00,1.00 +594,-24.00,14.40,1.00,0.00,1.00 +595,-19.20,14.40,1.00,0.00,1.00 +596,-14.40,9.60,1.00,0.00,1.00 +597,-14.40,9.60,1.00,0.00,1.00 +598,-9.60,4.80,1.00,0.00,1.00 +599,-4.80,4.80,1.00,0.00,1.00 +600,0.00,0.00,1.00,0.00,1.00 +601,4.80,-4.80,1.00,0.00,1.00 +602,9.60,-4.80,1.00,0.00,1.00 +603,9.60,-9.60,1.00,0.00,1.00 +604,14.40,-9.60,1.00,0.00,1.00 +605,19.20,-14.40,1.00,0.00,1.00 +606,24.00,-19.20,1.00,0.00,1.00 +607,28.80,-19.20,1.00,0.00,1.00 +608,33.60,-24.00,1.00,0.00,1.00 +609,38.40,-24.00,1.00,0.00,1.00 +610,43.20,-28.80,1.00,0.00,1.00 +611,48.00,-28.80,1.00,0.00,1.00 +612,52.80,-33.60,1.00,0.00,1.00 +613,57.60,-33.60,1.00,0.00,1.00 +614,62.40,-33.60,1.00,0.00,1.00 +615,67.20,-38.40,1.00,0.00,1.00 +616,72.00,-38.40,1.00,0.00,1.00 +617,81.60,-38.40,1.00,0.00,1.00 +618,86.40,-38.40,1.00,0.00,1.00 +619,91.20,-38.40,1.00,0.00,1.00 +620,96.00,-38.40,1.00,0.00,1.00 +621,105.60,-38.40,1.00,0.00,1.00 +622,110.40,-38.40,1.00,0.00,1.00 +623,115.20,-33.60,1.00,0.00,1.00 +624,120.00,-33.60,1.00,0.00,1.00 +625,124.80,-33.60,1.00,0.00,1.00 +626,129.60,-28.80,1.00,0.00,1.00 +627,134.40,-28.80,1.00,0.00,1.00 +628,139.20,-24.00,1.00,0.00,1.00 +629,144.00,-24.00,1.00,0.00,1.00 +630,148.80,-19.20,1.00,0.00,1.00 +631,153.60,-19.20,1.00,0.00,1.00 +632,158.40,-14.40,1.00,0.00,1.00 +633,163.20,-14.40,1.00,0.00,1.00 +634,168.00,-9.60,1.00,0.00,1.00 +635,172.80,-9.60,1.00,0.00,1.00 +636,172.80,-4.80,1.00,0.00,1.00 +637,177.60,-0.00,1.00,0.00,1.00 +638,-177.60,0.00,1.00,0.00,1.00 +639,-172.80,4.80,1.00,0.00,1.00 +640,-172.80,9.60,1.00,0.00,1.00 +641,-168.00,9.60,1.00,0.00,1.00 +642,-163.20,14.40,1.00,0.00,1.00 +643,-158.40,14.40,1.00,0.00,1.00 +644,-153.60,19.20,1.00,0.00,1.00 +645,-148.80,19.20,1.00,0.00,1.00 +646,-144.00,24.00,1.00,0.00,1.00 +647,-139.20,24.00,1.00,0.00,1.00 +648,-134.40,28.80,1.00,0.00,1.00 +649,-129.60,28.80,1.00,0.00,1.00 +650,-124.80,33.60,1.00,0.00,1.00 +651,-120.00,33.60,1.00,0.00,1.00 +652,-115.20,33.60,1.00,0.00,1.00 +653,-110.40,38.40,1.00,0.00,1.00 +654,-105.60,38.40,1.00,0.00,1.00 +655,-96.00,38.40,1.00,0.00,1.00 +656,-91.20,38.40,1.00,0.00,1.00 +657,-86.40,38.40,1.00,0.00,1.00 +658,-81.60,38.40,1.00,0.00,1.00 +659,-72.00,38.40,1.00,0.00,1.00 +660,-67.20,38.40,1.00,0.00,1.00 +661,-62.40,33.60,1.00,0.00,1.00 +662,-57.60,33.60,1.00,0.00,1.00 +663,-52.80,33.60,1.00,0.00,1.00 +664,-48.00,28.80,1.00,0.00,1.00 +665,-43.20,28.80,1.00,0.00,1.00 +666,-38.40,24.00,1.00,0.00,1.00 +667,-33.60,24.00,1.00,0.00,1.00 +668,-28.80,19.20,1.00,0.00,1.00 +669,-24.00,19.20,1.00,0.00,1.00 +670,-19.20,14.40,1.00,0.00,1.00 +671,-14.40,9.60,1.00,0.00,1.00 +672,-9.60,9.60,1.00,0.00,1.00 +673,-9.60,4.80,1.00,0.00,1.00 +674,-4.80,4.80,1.00,0.00,1.00 +675,0.00,0.00,1.00,0.00,1.00 +676,4.80,-4.80,1.00,0.00,1.00 +677,4.80,-4.80,1.00,0.00,1.00 +678,9.60,-9.60,1.00,0.00,1.00 +679,14.40,-14.40,1.00,0.00,1.00 +680,19.20,-14.40,1.00,0.00,1.00 +681,24.00,-19.20,1.00,0.00,1.00 +682,24.00,-24.00,1.00,0.00,1.00 +683,28.80,-24.00,1.00,0.00,1.00 +684,33.60,-28.80,1.00,0.00,1.00 +685,38.40,-28.80,1.00,0.00,1.00 +686,43.20,-33.60,1.00,0.00,1.00 +687,48.00,-33.60,1.00,0.00,1.00 +688,52.80,-38.40,1.00,0.00,1.00 +689,62.40,-38.40,1.00,0.00,1.00 +690,67.20,-38.40,1.00,0.00,1.00 +691,72.00,-43.20,1.00,0.00,1.00 +692,76.80,-43.20,1.00,0.00,1.00 +693,86.40,-43.20,1.00,0.00,1.00 +694,91.20,-43.20,1.00,0.00,1.00 +695,96.00,-43.20,1.00,0.00,1.00 +696,105.60,-43.20,1.00,0.00,1.00 +697,110.40,-43.20,1.00,0.00,1.00 +698,115.20,-38.40,1.00,0.00,1.00 +699,124.80,-38.40,1.00,0.00,1.00 +700,129.60,-38.40,1.00,0.00,1.00 +701,134.40,-33.60,1.00,0.00,1.00 +702,139.20,-33.60,1.00,0.00,1.00 +703,144.00,-28.80,1.00,0.00,1.00 +704,148.80,-28.80,1.00,0.00,1.00 +705,153.60,-24.00,1.00,0.00,1.00 +706,158.40,-19.20,1.00,0.00,1.00 +707,158.40,-19.20,1.00,0.00,1.00 +708,163.20,-14.40,1.00,0.00,1.00 +709,168.00,-9.60,1.00,0.00,1.00 +710,172.80,-9.60,1.00,0.00,1.00 +711,172.80,-4.80,1.00,0.00,1.00 +712,177.60,-0.00,1.00,0.00,1.00 +713,-177.60,0.00,1.00,0.00,1.00 +714,-172.80,4.80,1.00,0.00,1.00 +715,-172.80,9.60,1.00,0.00,1.00 +716,-168.00,9.60,1.00,0.00,1.00 +717,-163.20,14.40,1.00,0.00,1.00 +718,-158.40,19.20,1.00,0.00,1.00 +719,-158.40,19.20,1.00,0.00,1.00 +720,-153.60,24.00,1.00,0.00,1.00 +721,-148.80,28.80,1.00,0.00,1.00 +722,-144.00,28.80,1.00,0.00,1.00 +723,-139.20,33.60,1.00,0.00,1.00 +724,-134.40,33.60,1.00,0.00,1.00 +725,-129.60,38.40,1.00,0.00,1.00 +726,-124.80,38.40,1.00,0.00,1.00 +727,-115.20,38.40,1.00,0.00,1.00 +728,-110.40,43.20,1.00,0.00,1.00 +729,-105.60,43.20,1.00,0.00,1.00 +730,-96.00,43.20,1.00,0.00,1.00 +731,-91.20,43.20,1.00,0.00,1.00 +732,-86.40,43.20,1.00,0.00,1.00 +733,-76.80,43.20,1.00,0.00,1.00 +734,-72.00,43.20,1.00,0.00,1.00 +735,-67.20,38.40,1.00,0.00,1.00 +736,-62.40,38.40,1.00,0.00,1.00 +737,-52.80,38.40,1.00,0.00,1.00 +738,-48.00,33.60,1.00,0.00,1.00 +739,-43.20,33.60,1.00,0.00,1.00 +740,-38.40,28.80,1.00,0.00,1.00 +741,-33.60,28.80,1.00,0.00,1.00 +742,-28.80,24.00,1.00,0.00,1.00 +743,-24.00,24.00,1.00,0.00,1.00 +744,-24.00,19.20,1.00,0.00,1.00 +745,-19.20,14.40,1.00,0.00,1.00 +746,-14.40,14.40,1.00,0.00,1.00 +747,-9.60,9.60,1.00,0.00,1.00 +748,-4.80,4.80,1.00,0.00,1.00 +749,-4.80,4.80,1.00,0.00,1.00 +750,0.00,0.00,1.00,0.00,1.00 +751,4.80,-4.80,1.00,0.00,1.00 +752,4.80,-4.80,1.00,0.00,1.00 +753,9.60,-9.60,1.00,0.00,1.00 +754,14.40,-14.40,1.00,0.00,1.00 +755,14.40,-19.20,1.00,0.00,1.00 +756,19.20,-19.20,1.00,0.00,1.00 +757,24.00,-24.00,1.00,0.00,1.00 +758,28.80,-28.80,1.00,0.00,1.00 +759,33.60,-28.80,1.00,0.00,1.00 +760,38.40,-33.60,1.00,0.00,1.00 +761,43.20,-38.40,1.00,0.00,1.00 +762,48.00,-38.40,1.00,0.00,1.00 +763,52.80,-43.20,1.00,0.00,1.00 +764,57.60,-43.20,1.00,0.00,1.00 +765,62.40,-43.20,1.00,0.00,1.00 +766,72.00,-48.00,1.00,0.00,1.00 +767,76.80,-48.00,1.00,0.00,1.00 +768,86.40,-48.00,1.00,0.00,1.00 +769,91.20,-48.00,1.00,0.00,1.00 +770,100.80,-48.00,1.00,0.00,1.00 +771,105.60,-48.00,1.00,0.00,1.00 +772,110.40,-48.00,1.00,0.00,1.00 +773,120.00,-43.20,1.00,0.00,1.00 +774,124.80,-43.20,1.00,0.00,1.00 +775,129.60,-38.40,1.00,0.00,1.00 +776,134.40,-38.40,1.00,0.00,1.00 +777,139.20,-33.60,1.00,0.00,1.00 +778,144.00,-33.60,1.00,0.00,1.00 +779,148.80,-28.80,1.00,0.00,1.00 +780,153.60,-24.00,1.00,0.00,1.00 +781,158.40,-24.00,1.00,0.00,1.00 +782,163.20,-19.20,1.00,0.00,1.00 +783,163.20,-14.40,1.00,0.00,1.00 +784,168.00,-14.40,1.00,0.00,1.00 +785,172.80,-9.60,1.00,0.00,1.00 +786,172.80,-4.80,1.00,0.00,1.00 +787,177.60,-0.00,1.00,0.00,1.00 +788,-177.60,0.00,1.00,0.00,1.00 +789,-172.80,4.80,1.00,0.00,1.00 +790,-172.80,9.60,1.00,0.00,1.00 +791,-168.00,14.40,1.00,0.00,1.00 +792,-163.20,14.40,1.00,0.00,1.00 +793,-163.20,19.20,1.00,0.00,1.00 +794,-158.40,24.00,1.00,0.00,1.00 +795,-153.60,24.00,1.00,0.00,1.00 +796,-148.80,28.80,1.00,0.00,1.00 +797,-144.00,33.60,1.00,0.00,1.00 +798,-139.20,33.60,1.00,0.00,1.00 +799,-134.40,38.40,1.00,0.00,1.00 +800,-129.60,38.40,1.00,0.00,1.00 +801,-124.80,43.20,1.00,0.00,1.00 +802,-120.00,43.20,1.00,0.00,1.00 +803,-110.40,48.00,1.00,0.00,1.00 +804,-105.60,48.00,1.00,0.00,1.00 +805,-100.80,48.00,1.00,0.00,1.00 +806,-91.20,48.00,1.00,0.00,1.00 +807,-86.40,48.00,1.00,0.00,1.00 +808,-76.80,48.00,1.00,0.00,1.00 +809,-72.00,48.00,1.00,0.00,1.00 +810,-62.40,43.20,1.00,0.00,1.00 +811,-57.60,43.20,1.00,0.00,1.00 +812,-52.80,43.20,1.00,0.00,1.00 +813,-48.00,38.40,1.00,0.00,1.00 +814,-43.20,38.40,1.00,0.00,1.00 +815,-38.40,33.60,1.00,0.00,1.00 +816,-33.60,28.80,1.00,0.00,1.00 +817,-28.80,28.80,1.00,0.00,1.00 +818,-24.00,24.00,1.00,0.00,1.00 +819,-19.20,19.20,1.00,0.00,1.00 +820,-14.40,19.20,1.00,0.00,1.00 +821,-14.40,14.40,1.00,0.00,1.00 +822,-9.60,9.60,1.00,0.00,1.00 +823,-4.80,4.80,1.00,0.00,1.00 +824,-4.80,4.80,1.00,0.00,1.00 +825,0.00,0.00,1.00,0.00,1.00 +826,4.80,-4.80,1.00,0.00,1.00 +827,4.80,-9.60,1.00,0.00,1.00 +828,9.60,-9.60,1.00,0.00,1.00 +829,9.60,-14.40,1.00,0.00,1.00 +830,14.40,-19.20,1.00,0.00,1.00 +831,19.20,-24.00,1.00,0.00,1.00 +832,24.00,-24.00,1.00,0.00,1.00 +833,24.00,-28.80,1.00,0.00,1.00 +834,28.80,-33.60,1.00,0.00,1.00 +835,33.60,-38.40,1.00,0.00,1.00 +836,38.40,-38.40,1.00,0.00,1.00 +837,43.20,-43.20,1.00,0.00,1.00 +838,48.00,-43.20,1.00,0.00,1.00 +839,52.80,-48.00,1.00,0.00,1.00 +840,62.40,-48.00,1.00,0.00,1.00 +841,67.20,-52.80,1.00,0.00,1.00 +842,76.80,-52.80,1.00,0.00,1.00 +843,86.40,-52.80,1.00,0.00,1.00 +844,91.20,-52.80,1.00,0.00,1.00 +845,100.80,-52.80,1.00,0.00,1.00 +846,105.60,-52.80,1.00,0.00,1.00 +847,115.20,-48.00,1.00,0.00,1.00 +848,120.00,-48.00,1.00,0.00,1.00 +849,129.60,-48.00,1.00,0.00,1.00 +850,134.40,-43.20,1.00,0.00,1.00 +851,139.20,-43.20,1.00,0.00,1.00 +852,144.00,-38.40,1.00,0.00,1.00 +853,148.80,-33.60,1.00,0.00,1.00 +854,153.60,-33.60,1.00,0.00,1.00 +855,158.40,-28.80,1.00,0.00,1.00 +856,158.40,-24.00,1.00,0.00,1.00 +857,163.20,-19.20,1.00,0.00,1.00 +858,168.00,-19.20,1.00,0.00,1.00 +859,168.00,-14.40,1.00,0.00,1.00 +860,172.80,-9.60,1.00,0.00,1.00 +861,177.60,-4.80,1.00,0.00,1.00 +862,177.60,-0.00,1.00,0.00,1.00 +863,-177.60,0.00,1.00,0.00,1.00 +864,-177.60,4.80,1.00,0.00,1.00 +865,-172.80,9.60,1.00,0.00,1.00 +866,-168.00,14.40,1.00,0.00,1.00 +867,-168.00,19.20,1.00,0.00,1.00 +868,-163.20,19.20,1.00,0.00,1.00 +869,-158.40,24.00,1.00,0.00,1.00 +870,-158.40,28.80,1.00,0.00,1.00 +871,-153.60,33.60,1.00,0.00,1.00 +872,-148.80,33.60,1.00,0.00,1.00 +873,-144.00,38.40,1.00,0.00,1.00 +874,-139.20,43.20,1.00,0.00,1.00 +875,-134.40,43.20,1.00,0.00,1.00 +876,-129.60,48.00,1.00,0.00,1.00 +877,-120.00,48.00,1.00,0.00,1.00 +878,-115.20,48.00,1.00,0.00,1.00 +879,-105.60,52.80,1.00,0.00,1.00 +880,-100.80,52.80,1.00,0.00,1.00 +881,-91.20,52.80,1.00,0.00,1.00 +882,-86.40,52.80,1.00,0.00,1.00 +883,-76.80,52.80,1.00,0.00,1.00 +884,-67.20,52.80,1.00,0.00,1.00 +885,-62.40,48.00,1.00,0.00,1.00 +886,-52.80,48.00,1.00,0.00,1.00 +887,-48.00,43.20,1.00,0.00,1.00 +888,-43.20,43.20,1.00,0.00,1.00 +889,-38.40,38.40,1.00,0.00,1.00 +890,-33.60,38.40,1.00,0.00,1.00 +891,-28.80,33.60,1.00,0.00,1.00 +892,-24.00,28.80,1.00,0.00,1.00 +893,-24.00,24.00,1.00,0.00,1.00 +894,-19.20,24.00,1.00,0.00,1.00 +895,-14.40,19.20,1.00,0.00,1.00 +896,-9.60,14.40,1.00,0.00,1.00 +897,-9.60,9.60,1.00,0.00,1.00 +898,-4.80,9.60,1.00,0.00,1.00 +899,-4.80,4.80,1.00,0.00,1.00 +900,0.00,0.00,1.00,0.00,1.00 +901,4.80,-4.80,1.00,0.00,1.00 +902,4.80,-9.60,1.00,0.00,1.00 +903,9.60,-14.40,1.00,0.00,1.00 +904,9.60,-14.40,1.00,0.00,1.00 +905,14.40,-19.20,1.00,0.00,1.00 +906,14.40,-24.00,1.00,0.00,1.00 +907,19.20,-28.80,1.00,0.00,1.00 +908,24.00,-33.60,1.00,0.00,1.00 +909,28.80,-33.60,1.00,0.00,1.00 +910,28.80,-38.40,1.00,0.00,1.00 +911,33.60,-43.20,1.00,0.00,1.00 +912,38.40,-43.20,1.00,0.00,1.00 +913,48.00,-48.00,1.00,0.00,1.00 +914,52.80,-52.80,1.00,0.00,1.00 +915,57.60,-52.80,1.00,0.00,1.00 +916,67.20,-57.60,1.00,0.00,1.00 +917,76.80,-57.60,1.00,0.00,1.00 +918,81.60,-57.60,1.00,0.00,1.00 +919,91.20,-57.60,1.00,0.00,1.00 +920,100.80,-57.60,1.00,0.00,1.00 +921,110.40,-57.60,1.00,0.00,1.00 +922,115.20,-52.80,1.00,0.00,1.00 +923,124.80,-52.80,1.00,0.00,1.00 +924,129.60,-48.00,1.00,0.00,1.00 +925,139.20,-48.00,1.00,0.00,1.00 +926,144.00,-43.20,1.00,0.00,1.00 +927,148.80,-38.40,1.00,0.00,1.00 +928,153.60,-38.40,1.00,0.00,1.00 +929,153.60,-33.60,1.00,0.00,1.00 +930,158.40,-28.80,1.00,0.00,1.00 +931,163.20,-24.00,1.00,0.00,1.00 +932,163.20,-24.00,1.00,0.00,1.00 +933,168.00,-19.20,1.00,0.00,1.00 +934,172.80,-14.40,1.00,0.00,1.00 +935,172.80,-9.60,1.00,0.00,1.00 +936,177.60,-4.80,1.00,0.00,1.00 +937,177.60,-0.00,1.00,0.00,1.00 +938,-177.60,0.00,1.00,0.00,1.00 +939,-177.60,4.80,1.00,0.00,1.00 +940,-172.80,9.60,1.00,0.00,1.00 +941,-172.80,14.40,1.00,0.00,1.00 +942,-168.00,19.20,1.00,0.00,1.00 +943,-163.20,24.00,1.00,0.00,1.00 +944,-163.20,24.00,1.00,0.00,1.00 +945,-158.40,28.80,1.00,0.00,1.00 +946,-153.60,33.60,1.00,0.00,1.00 +947,-153.60,38.40,1.00,0.00,1.00 +948,-148.80,38.40,1.00,0.00,1.00 +949,-144.00,43.20,1.00,0.00,1.00 +950,-139.20,48.00,1.00,0.00,1.00 +951,-129.60,48.00,1.00,0.00,1.00 +952,-124.80,52.80,1.00,0.00,1.00 +953,-115.20,52.80,1.00,0.00,1.00 +954,-110.40,57.60,1.00,0.00,1.00 +955,-100.80,57.60,1.00,0.00,1.00 +956,-91.20,57.60,1.00,0.00,1.00 +957,-81.60,57.60,1.00,0.00,1.00 +958,-76.80,57.60,1.00,0.00,1.00 +959,-67.20,57.60,1.00,0.00,1.00 +960,-57.60,52.80,1.00,0.00,1.00 +961,-52.80,52.80,1.00,0.00,1.00 +962,-48.00,48.00,1.00,0.00,1.00 +963,-38.40,43.20,1.00,0.00,1.00 +964,-33.60,43.20,1.00,0.00,1.00 +965,-28.80,38.40,1.00,0.00,1.00 +966,-28.80,33.60,1.00,0.00,1.00 +967,-24.00,33.60,1.00,0.00,1.00 +968,-19.20,28.80,1.00,0.00,1.00 +969,-14.40,24.00,1.00,0.00,1.00 +970,-14.40,19.20,1.00,0.00,1.00 +971,-9.60,14.40,1.00,0.00,1.00 +972,-9.60,14.40,1.00,0.00,1.00 +973,-4.80,9.60,1.00,0.00,1.00 +974,-4.80,4.80,1.00,0.00,1.00 +975,0.00,0.00,1.00,0.00,1.00 +976,0.00,-4.80,1.00,0.00,1.00 +977,4.80,-9.60,1.00,0.00,1.00 +978,4.80,-14.40,1.00,0.00,1.00 +979,9.60,-19.20,1.00,0.00,1.00 +980,9.60,-19.20,1.00,0.00,1.00 +981,14.40,-24.00,1.00,0.00,1.00 +982,19.20,-28.80,1.00,0.00,1.00 +983,19.20,-33.60,1.00,0.00,1.00 +984,24.00,-38.40,1.00,0.00,1.00 +985,28.80,-43.20,1.00,0.00,1.00 +986,33.60,-43.20,1.00,0.00,1.00 +987,38.40,-48.00,1.00,0.00,1.00 +988,43.20,-52.80,1.00,0.00,1.00 +989,48.00,-52.80,1.00,0.00,1.00 +990,52.80,-57.60,1.00,0.00,1.00 +991,62.40,-57.60,1.00,0.00,1.00 +992,72.00,-62.40,1.00,0.00,1.00 +993,81.60,-62.40,1.00,0.00,1.00 +994,91.20,-62.40,1.00,0.00,1.00 +995,100.80,-62.40,1.00,0.00,1.00 +996,110.40,-62.40,1.00,0.00,1.00 +997,120.00,-57.60,1.00,0.00,1.00 +998,129.60,-57.60,1.00,0.00,1.00 +999,134.40,-52.80,1.00,0.00,1.00 +1000,139.20,-48.00,1.00,0.00,1.00 +1001,144.00,-48.00,1.00,0.00,1.00 +1002,148.80,-43.20,1.00,0.00,1.00 +1003,153.60,-38.40,1.00,0.00,1.00 +1004,158.40,-33.60,1.00,0.00,1.00 +1005,163.20,-33.60,1.00,0.00,1.00 +1006,163.20,-28.80,1.00,0.00,1.00 +1007,168.00,-24.00,1.00,0.00,1.00 +1008,168.00,-19.20,1.00,0.00,1.00 +1009,172.80,-14.40,1.00,0.00,1.00 +1010,172.80,-9.60,1.00,0.00,1.00 +1011,177.60,-4.80,1.00,0.00,1.00 +1012,177.60,-0.00,1.00,0.00,1.00 +1013,-177.60,0.00,1.00,0.00,1.00 +1014,-177.60,4.80,1.00,0.00,1.00 +1015,-172.80,9.60,1.00,0.00,1.00 +1016,-172.80,14.40,1.00,0.00,1.00 +1017,-168.00,19.20,1.00,0.00,1.00 +1018,-168.00,24.00,1.00,0.00,1.00 +1019,-163.20,28.80,1.00,0.00,1.00 +1020,-163.20,33.60,1.00,0.00,1.00 +1021,-158.40,33.60,1.00,0.00,1.00 +1022,-153.60,38.40,1.00,0.00,1.00 +1023,-148.80,43.20,1.00,0.00,1.00 +1024,-144.00,48.00,1.00,0.00,1.00 +1025,-139.20,48.00,1.00,0.00,1.00 +1026,-134.40,52.80,1.00,0.00,1.00 +1027,-129.60,57.60,1.00,0.00,1.00 +1028,-120.00,57.60,1.00,0.00,1.00 +1029,-110.40,62.40,1.00,0.00,1.00 +1030,-100.80,62.40,1.00,0.00,1.00 +1031,-91.20,62.40,1.00,0.00,1.00 +1032,-81.60,62.40,1.00,0.00,1.00 +1033,-72.00,62.40,1.00,0.00,1.00 +1034,-62.40,57.60,1.00,0.00,1.00 +1035,-52.80,57.60,1.00,0.00,1.00 +1036,-48.00,52.80,1.00,0.00,1.00 +1037,-43.20,52.80,1.00,0.00,1.00 +1038,-38.40,48.00,1.00,0.00,1.00 +1039,-33.60,43.20,1.00,0.00,1.00 +1040,-28.80,43.20,1.00,0.00,1.00 +1041,-24.00,38.40,1.00,0.00,1.00 +1042,-19.20,33.60,1.00,0.00,1.00 +1043,-19.20,28.80,1.00,0.00,1.00 +1044,-14.40,24.00,1.00,0.00,1.00 +1045,-9.60,19.20,1.00,0.00,1.00 +1046,-9.60,19.20,1.00,0.00,1.00 +1047,-4.80,14.40,1.00,0.00,1.00 +1048,-4.80,9.60,1.00,0.00,1.00 +1049,-0.00,4.80,1.00,0.00,1.00 +1050,0.00,0.00,1.00,0.00,1.00 +1051,0.00,-4.80,1.00,0.00,1.00 +1052,4.80,-9.60,1.00,0.00,1.00 +1053,4.80,-14.40,1.00,0.00,1.00 +1054,9.60,-19.20,1.00,0.00,1.00 +1055,9.60,-24.00,1.00,0.00,1.00 +1056,14.40,-24.00,1.00,0.00,1.00 +1057,14.40,-28.80,1.00,0.00,1.00 +1058,19.20,-33.60,1.00,0.00,1.00 +1059,19.20,-38.40,1.00,0.00,1.00 +1060,24.00,-43.20,1.00,0.00,1.00 +1061,28.80,-48.00,1.00,0.00,1.00 +1062,33.60,-52.80,1.00,0.00,1.00 +1063,38.40,-52.80,1.00,0.00,1.00 +1064,43.20,-57.60,1.00,0.00,1.00 +1065,48.00,-62.40,1.00,0.00,1.00 +1066,57.60,-62.40,1.00,0.00,1.00 +1067,67.20,-67.20,1.00,0.00,1.00 +1068,81.60,-67.20,1.00,0.00,1.00 +1069,91.20,-67.20,1.00,0.00,1.00 +1070,105.60,-67.20,1.00,0.00,1.00 +1071,115.20,-67.20,1.00,0.00,1.00 +1072,124.80,-62.40,1.00,0.00,1.00 +1073,134.40,-57.60,1.00,0.00,1.00 +1074,139.20,-57.60,1.00,0.00,1.00 +1075,144.00,-52.80,1.00,0.00,1.00 +1076,148.80,-48.00,1.00,0.00,1.00 +1077,153.60,-43.20,1.00,0.00,1.00 +1078,158.40,-43.20,1.00,0.00,1.00 +1079,163.20,-38.40,1.00,0.00,1.00 +1080,163.20,-33.60,1.00,0.00,1.00 +1081,168.00,-28.80,1.00,0.00,1.00 +1082,168.00,-24.00,1.00,0.00,1.00 +1083,172.80,-19.20,1.00,0.00,1.00 +1084,172.80,-14.40,1.00,0.00,1.00 +1085,177.60,-9.60,1.00,0.00,1.00 +1086,177.60,-4.80,1.00,0.00,1.00 +1087,177.60,-0.00,1.00,0.00,1.00 +1088,-177.60,0.00,1.00,0.00,1.00 +1089,-177.60,4.80,1.00,0.00,1.00 +1090,-177.60,9.60,1.00,0.00,1.00 +1091,-172.80,14.40,1.00,0.00,1.00 +1092,-172.80,19.20,1.00,0.00,1.00 +1093,-168.00,24.00,1.00,0.00,1.00 +1094,-168.00,28.80,1.00,0.00,1.00 +1095,-163.20,33.60,1.00,0.00,1.00 +1096,-163.20,38.40,1.00,0.00,1.00 +1097,-158.40,43.20,1.00,0.00,1.00 +1098,-153.60,43.20,1.00,0.00,1.00 +1099,-148.80,48.00,1.00,0.00,1.00 +1100,-144.00,52.80,1.00,0.00,1.00 +1101,-139.20,57.60,1.00,0.00,1.00 +1102,-134.40,57.60,1.00,0.00,1.00 +1103,-124.80,62.40,1.00,0.00,1.00 +1104,-115.20,67.20,1.00,0.00,1.00 +1105,-105.60,67.20,1.00,0.00,1.00 +1106,-91.20,67.20,1.00,0.00,1.00 +1107,-81.60,67.20,1.00,0.00,1.00 +1108,-67.20,67.20,1.00,0.00,1.00 +1109,-57.60,62.40,1.00,0.00,1.00 +1110,-48.00,62.40,1.00,0.00,1.00 +1111,-43.20,57.60,1.00,0.00,1.00 +1112,-38.40,52.80,1.00,0.00,1.00 +1113,-33.60,52.80,1.00,0.00,1.00 +1114,-28.80,48.00,1.00,0.00,1.00 +1115,-24.00,43.20,1.00,0.00,1.00 +1116,-19.20,38.40,1.00,0.00,1.00 +1117,-19.20,33.60,1.00,0.00,1.00 +1118,-14.40,28.80,1.00,0.00,1.00 +1119,-14.40,24.00,1.00,0.00,1.00 +1120,-9.60,24.00,1.00,0.00,1.00 +1121,-9.60,19.20,1.00,0.00,1.00 +1122,-4.80,14.40,1.00,0.00,1.00 +1123,-4.80,9.60,1.00,0.00,1.00 +1124,-0.00,4.80,1.00,0.00,1.00 +1125,0.00,0.00,1.00,0.00,1.00 +1126,0.00,-4.80,1.00,0.00,1.00 +1127,4.80,-9.60,1.00,0.00,1.00 +1128,4.80,-14.40,1.00,0.00,1.00 +1129,4.80,-19.20,1.00,0.00,1.00 +1130,9.60,-24.00,1.00,0.00,1.00 +1131,9.60,-28.80,1.00,0.00,1.00 +1132,9.60,-33.60,1.00,0.00,1.00 +1133,14.40,-38.40,1.00,0.00,1.00 +1134,14.40,-38.40,1.00,0.00,1.00 +1135,19.20,-43.20,1.00,0.00,1.00 +1136,24.00,-48.00,1.00,0.00,1.00 +1137,24.00,-52.80,1.00,0.00,1.00 +1138,28.80,-57.60,1.00,0.00,1.00 +1139,38.40,-62.40,1.00,0.00,1.00 +1140,43.20,-62.40,1.00,0.00,1.00 +1141,52.80,-67.20,1.00,0.00,1.00 +1142,62.40,-72.00,1.00,0.00,1.00 +1143,76.80,-72.00,1.00,0.00,1.00 +1144,96.00,-72.00,1.00,0.00,1.00 +1145,110.40,-72.00,1.00,0.00,1.00 +1146,120.00,-67.20,1.00,0.00,1.00 +1147,134.40,-67.20,1.00,0.00,1.00 +1148,139.20,-62.40,1.00,0.00,1.00 +1149,148.80,-57.60,1.00,0.00,1.00 +1150,153.60,-57.60,1.00,0.00,1.00 +1151,158.40,-52.80,1.00,0.00,1.00 +1152,158.40,-48.00,1.00,0.00,1.00 +1153,163.20,-43.20,1.00,0.00,1.00 +1154,163.20,-38.40,1.00,0.00,1.00 +1155,168.00,-33.60,1.00,0.00,1.00 +1156,168.00,-28.80,1.00,0.00,1.00 +1157,172.80,-24.00,1.00,0.00,1.00 +1158,172.80,-19.20,1.00,0.00,1.00 +1159,172.80,-14.40,1.00,0.00,1.00 +1160,177.60,-9.60,1.00,0.00,1.00 +1161,177.60,-4.80,1.00,0.00,1.00 +1162,177.60,-0.00,1.00,0.00,1.00 +1163,-177.60,0.00,1.00,0.00,1.00 +1164,-177.60,4.80,1.00,0.00,1.00 +1165,-177.60,9.60,1.00,0.00,1.00 +1166,-172.80,14.40,1.00,0.00,1.00 +1167,-172.80,19.20,1.00,0.00,1.00 +1168,-172.80,24.00,1.00,0.00,1.00 +1169,-168.00,28.80,1.00,0.00,1.00 +1170,-168.00,33.60,1.00,0.00,1.00 +1171,-163.20,38.40,1.00,0.00,1.00 +1172,-163.20,43.20,1.00,0.00,1.00 +1173,-158.40,48.00,1.00,0.00,1.00 +1174,-158.40,52.80,1.00,0.00,1.00 +1175,-153.60,57.60,1.00,0.00,1.00 +1176,-148.80,57.60,1.00,0.00,1.00 +1177,-139.20,62.40,1.00,0.00,1.00 +1178,-134.40,67.20,1.00,0.00,1.00 +1179,-120.00,67.20,1.00,0.00,1.00 +1180,-110.40,72.00,1.00,0.00,1.00 +1181,-96.00,72.00,1.00,0.00,1.00 +1182,-76.80,72.00,1.00,0.00,1.00 +1183,-62.40,72.00,1.00,0.00,1.00 +1184,-52.80,67.20,1.00,0.00,1.00 +1185,-43.20,62.40,1.00,0.00,1.00 +1186,-38.40,62.40,1.00,0.00,1.00 +1187,-28.80,57.60,1.00,0.00,1.00 +1188,-24.00,52.80,1.00,0.00,1.00 +1189,-24.00,48.00,1.00,0.00,1.00 +1190,-19.20,43.20,1.00,0.00,1.00 +1191,-14.40,38.40,1.00,0.00,1.00 +1192,-14.40,38.40,1.00,0.00,1.00 +1193,-9.60,33.60,1.00,0.00,1.00 +1194,-9.60,28.80,1.00,0.00,1.00 +1195,-9.60,24.00,1.00,0.00,1.00 +1196,-4.80,19.20,1.00,0.00,1.00 +1197,-4.80,14.40,1.00,0.00,1.00 +1198,-4.80,9.60,1.00,0.00,1.00 +1199,-0.00,4.80,1.00,0.00,1.00 +1200,0.00,0.00,1.00,0.00,1.00 +1201,0.00,-4.80,1.00,0.00,1.00 +1202,0.00,-9.60,1.00,0.00,1.00 +1203,4.80,-14.40,1.00,0.00,1.00 +1204,4.80,-19.20,1.00,0.00,1.00 +1205,4.80,-24.00,1.00,0.00,1.00 +1206,4.80,-28.80,1.00,0.00,1.00 +1207,9.60,-33.60,1.00,0.00,1.00 +1208,9.60,-38.40,1.00,0.00,1.00 +1209,14.40,-43.20,1.00,0.00,1.00 +1210,14.40,-48.00,1.00,0.00,1.00 +1211,14.40,-52.80,1.00,0.00,1.00 +1212,19.20,-57.60,1.00,0.00,1.00 +1213,24.00,-57.60,1.00,0.00,1.00 +1214,28.80,-62.40,1.00,0.00,1.00 +1215,33.60,-67.20,1.00,0.00,1.00 +1216,43.20,-72.00,1.00,0.00,1.00 +1217,57.60,-72.00,1.00,0.00,1.00 +1218,76.80,-76.80,1.00,0.00,1.00 +1219,96.00,-76.80,1.00,0.00,1.00 +1220,115.20,-76.80,1.00,0.00,1.00 +1221,129.60,-72.00,1.00,0.00,1.00 +1222,139.20,-72.00,1.00,0.00,1.00 +1223,148.80,-67.20,1.00,0.00,1.00 +1224,153.60,-62.40,1.00,0.00,1.00 +1225,158.40,-57.60,1.00,0.00,1.00 +1226,163.20,-52.80,1.00,0.00,1.00 +1227,163.20,-48.00,1.00,0.00,1.00 +1228,168.00,-43.20,1.00,0.00,1.00 +1229,168.00,-38.40,1.00,0.00,1.00 +1230,172.80,-33.60,1.00,0.00,1.00 +1231,172.80,-28.80,1.00,0.00,1.00 +1232,172.80,-24.00,1.00,0.00,1.00 +1233,172.80,-19.20,1.00,0.00,1.00 +1234,177.60,-14.40,1.00,0.00,1.00 +1235,177.60,-9.60,1.00,0.00,1.00 +1236,177.60,-4.80,1.00,0.00,1.00 +1237,177.60,-0.00,1.00,0.00,1.00 +1238,-177.60,0.00,1.00,0.00,1.00 +1239,-177.60,4.80,1.00,0.00,1.00 +1240,-177.60,9.60,1.00,0.00,1.00 +1241,-177.60,14.40,1.00,0.00,1.00 +1242,-172.80,19.20,1.00,0.00,1.00 +1243,-172.80,24.00,1.00,0.00,1.00 +1244,-172.80,28.80,1.00,0.00,1.00 +1245,-172.80,33.60,1.00,0.00,1.00 +1246,-168.00,38.40,1.00,0.00,1.00 +1247,-168.00,43.20,1.00,0.00,1.00 +1248,-163.20,48.00,1.00,0.00,1.00 +1249,-163.20,52.80,1.00,0.00,1.00 +1250,-158.40,57.60,1.00,0.00,1.00 +1251,-153.60,62.40,1.00,0.00,1.00 +1252,-148.80,67.20,1.00,0.00,1.00 +1253,-139.20,72.00,1.00,0.00,1.00 +1254,-129.60,72.00,1.00,0.00,1.00 +1255,-115.20,76.80,1.00,0.00,1.00 +1256,-96.00,76.80,1.00,0.00,1.00 +1257,-76.80,76.80,1.00,0.00,1.00 +1258,-57.60,72.00,1.00,0.00,1.00 +1259,-43.20,72.00,1.00,0.00,1.00 +1260,-33.60,67.20,1.00,0.00,1.00 +1261,-28.80,62.40,1.00,0.00,1.00 +1262,-24.00,57.60,1.00,0.00,1.00 +1263,-19.20,57.60,1.00,0.00,1.00 +1264,-14.40,52.80,1.00,0.00,1.00 +1265,-14.40,48.00,1.00,0.00,1.00 +1266,-14.40,43.20,1.00,0.00,1.00 +1267,-9.60,38.40,1.00,0.00,1.00 +1268,-9.60,33.60,1.00,0.00,1.00 +1269,-4.80,28.80,1.00,0.00,1.00 +1270,-4.80,24.00,1.00,0.00,1.00 +1271,-4.80,19.20,1.00,0.00,1.00 +1272,-4.80,14.40,1.00,0.00,1.00 +1273,-0.00,9.60,1.00,0.00,1.00 +1274,-0.00,4.80,1.00,0.00,1.00 +1275,0.00,0.00,1.00,0.00,1.00 +1276,0.00,-4.80,1.00,0.00,1.00 +1277,0.00,-9.60,1.00,0.00,1.00 +1278,0.00,-14.40,1.00,0.00,1.00 +1279,4.80,-19.20,1.00,0.00,1.00 +1280,4.80,-24.00,1.00,0.00,1.00 +1281,4.80,-28.80,1.00,0.00,1.00 +1282,4.80,-33.60,1.00,0.00,1.00 +1283,4.80,-38.40,1.00,0.00,1.00 +1284,9.60,-43.20,1.00,0.00,1.00 +1285,9.60,-48.00,1.00,0.00,1.00 +1286,9.60,-52.80,1.00,0.00,1.00 +1287,14.40,-57.60,1.00,0.00,1.00 +1288,14.40,-62.40,1.00,0.00,1.00 +1289,19.20,-67.20,1.00,0.00,1.00 +1290,24.00,-72.00,1.00,0.00,1.00 +1291,33.60,-72.00,1.00,0.00,1.00 +1292,43.20,-76.80,1.00,0.00,1.00 +1293,67.20,-81.60,1.00,0.00,1.00 +1294,96.00,-81.60,1.00,0.00,1.00 +1295,124.80,-81.60,1.00,0.00,1.00 +1296,144.00,-76.80,1.00,0.00,1.00 +1297,153.60,-72.00,1.00,0.00,1.00 +1298,158.40,-67.20,1.00,0.00,1.00 +1299,163.20,-62.40,1.00,0.00,1.00 +1300,168.00,-57.60,1.00,0.00,1.00 +1301,168.00,-52.80,1.00,0.00,1.00 +1302,168.00,-48.00,1.00,0.00,1.00 +1303,172.80,-43.20,1.00,0.00,1.00 +1304,172.80,-38.40,1.00,0.00,1.00 +1305,172.80,-33.60,1.00,0.00,1.00 +1306,172.80,-28.80,1.00,0.00,1.00 +1307,177.60,-24.00,1.00,0.00,1.00 +1308,177.60,-19.20,1.00,0.00,1.00 +1309,177.60,-14.40,1.00,0.00,1.00 +1310,177.60,-9.60,1.00,0.00,1.00 +1311,177.60,-4.80,1.00,0.00,1.00 +1312,177.60,-0.00,1.00,0.00,1.00 +1313,-177.60,0.00,1.00,0.00,1.00 +1314,-177.60,4.80,1.00,0.00,1.00 +1315,-177.60,9.60,1.00,0.00,1.00 +1316,-177.60,14.40,1.00,0.00,1.00 +1317,-177.60,19.20,1.00,0.00,1.00 +1318,-177.60,24.00,1.00,0.00,1.00 +1319,-172.80,28.80,1.00,0.00,1.00 +1320,-172.80,33.60,1.00,0.00,1.00 +1321,-172.80,38.40,1.00,0.00,1.00 +1322,-172.80,43.20,1.00,0.00,1.00 +1323,-168.00,48.00,1.00,0.00,1.00 +1324,-168.00,52.80,1.00,0.00,1.00 +1325,-168.00,57.60,1.00,0.00,1.00 +1326,-163.20,62.40,1.00,0.00,1.00 +1327,-158.40,67.20,1.00,0.00,1.00 +1328,-153.60,72.00,1.00,0.00,1.00 +1329,-144.00,76.80,1.00,0.00,1.00 +1330,-124.80,81.60,1.00,0.00,1.00 +1331,-96.00,81.60,1.00,0.00,1.00 +1332,-67.20,81.60,1.00,0.00,1.00 +1333,-43.20,76.80,1.00,0.00,1.00 +1334,-33.60,72.00,1.00,0.00,1.00 +1335,-24.00,72.00,1.00,0.00,1.00 +1336,-19.20,67.20,1.00,0.00,1.00 +1337,-14.40,62.40,1.00,0.00,1.00 +1338,-14.40,57.60,1.00,0.00,1.00 +1339,-9.60,52.80,1.00,0.00,1.00 +1340,-9.60,48.00,1.00,0.00,1.00 +1341,-9.60,43.20,1.00,0.00,1.00 +1342,-4.80,38.40,1.00,0.00,1.00 +1343,-4.80,33.60,1.00,0.00,1.00 +1344,-4.80,28.80,1.00,0.00,1.00 +1345,-4.80,24.00,1.00,0.00,1.00 +1346,-4.80,19.20,1.00,0.00,1.00 +1347,-0.00,14.40,1.00,0.00,1.00 +1348,-0.00,9.60,1.00,0.00,1.00 +1349,-0.00,4.80,1.00,0.00,1.00 +1350,0.00,0.00,1.00,0.00,1.00 +1351,0.00,-4.80,1.00,0.00,1.00 +1352,0.00,-9.60,1.00,0.00,1.00 +1353,0.00,-14.40,1.00,0.00,1.00 +1354,0.00,-19.20,1.00,0.00,1.00 +1355,0.00,-24.00,1.00,0.00,1.00 +1356,0.00,-28.80,1.00,0.00,1.00 +1357,0.00,-33.60,1.00,0.00,1.00 +1358,4.80,-38.40,1.00,0.00,1.00 +1359,4.80,-43.20,1.00,0.00,1.00 +1360,4.80,-48.00,1.00,0.00,1.00 +1361,4.80,-52.80,1.00,0.00,1.00 +1362,4.80,-57.60,1.00,0.00,1.00 +1363,4.80,-62.40,1.00,0.00,1.00 +1364,9.60,-67.20,1.00,0.00,1.00 +1365,9.60,-72.00,1.00,0.00,1.00 +1366,14.40,-76.80,1.00,0.00,1.00 +1367,24.00,-81.60,1.00,0.00,1.00 +1368,43.20,-86.40,1.00,0.00,1.00 +1369,110.40,-86.40,1.00,0.00,1.00 +1370,148.80,-81.60,1.00,0.00,1.00 +1371,163.20,-76.80,1.00,0.00,1.00 +1372,168.00,-72.00,1.00,0.00,1.00 +1373,172.80,-67.20,1.00,0.00,1.00 +1374,172.80,-62.40,1.00,0.00,1.00 +1375,172.80,-57.60,1.00,0.00,1.00 +1376,172.80,-52.80,1.00,0.00,1.00 +1377,177.60,-48.00,1.00,0.00,1.00 +1378,177.60,-43.20,1.00,0.00,1.00 +1379,177.60,-38.40,1.00,0.00,1.00 +1380,177.60,-33.60,1.00,0.00,1.00 +1381,177.60,-28.80,1.00,0.00,1.00 +1382,177.60,-24.00,1.00,0.00,1.00 +1383,177.60,-19.20,1.00,0.00,1.00 +1384,177.60,-14.40,1.00,0.00,1.00 +1385,177.60,-9.60,1.00,0.00,1.00 +1386,177.60,-4.80,1.00,0.00,1.00 +1387,177.60,-0.00,1.00,0.00,1.00 +1388,-177.60,0.00,1.00,0.00,1.00 +1389,-177.60,4.80,1.00,0.00,1.00 +1390,-177.60,9.60,1.00,0.00,1.00 +1391,-177.60,14.40,1.00,0.00,1.00 +1392,-177.60,19.20,1.00,0.00,1.00 +1393,-177.60,24.00,1.00,0.00,1.00 +1394,-177.60,28.80,1.00,0.00,1.00 +1395,-177.60,33.60,1.00,0.00,1.00 +1396,-177.60,38.40,1.00,0.00,1.00 +1397,-177.60,43.20,1.00,0.00,1.00 +1398,-177.60,48.00,1.00,0.00,1.00 +1399,-172.80,52.80,1.00,0.00,1.00 +1400,-172.80,57.60,1.00,0.00,1.00 +1401,-172.80,62.40,1.00,0.00,1.00 +1402,-172.80,67.20,1.00,0.00,1.00 +1403,-168.00,72.00,1.00,0.00,1.00 +1404,-163.20,76.80,1.00,0.00,1.00 +1405,-148.80,81.60,1.00,0.00,1.00 +1406,-110.40,86.40,1.00,0.00,1.00 +1407,-43.20,86.40,1.00,0.00,1.00 +1408,-24.00,81.60,1.00,0.00,1.00 +1409,-14.40,76.80,1.00,0.00,1.00 +1410,-9.60,72.00,1.00,0.00,1.00 +1411,-9.60,67.20,1.00,0.00,1.00 +1412,-4.80,62.40,1.00,0.00,1.00 +1413,-4.80,57.60,1.00,0.00,1.00 +1414,-4.80,52.80,1.00,0.00,1.00 +1415,-4.80,48.00,1.00,0.00,1.00 +1416,-4.80,43.20,1.00,0.00,1.00 +1417,-4.80,38.40,1.00,0.00,1.00 +1418,-0.00,33.60,1.00,0.00,1.00 +1419,-0.00,28.80,1.00,0.00,1.00 +1420,-0.00,24.00,1.00,0.00,1.00 +1421,-0.00,19.20,1.00,0.00,1.00 +1422,-0.00,14.40,1.00,0.00,1.00 +1423,-0.00,9.60,1.00,0.00,1.00 +1424,-0.00,4.80,1.00,0.00,1.00 +1425,-0.00,0.00,1.00,0.00,1.00 +1426,-0.00,-4.80,1.00,0.00,1.00 +1427,-0.00,-9.60,1.00,0.00,1.00 +1428,-0.00,-14.40,1.00,0.00,1.00 +1429,-0.00,-19.20,1.00,0.00,1.00 +1430,-0.00,-24.00,1.00,0.00,1.00 +1431,-0.00,-28.80,1.00,0.00,1.00 +1432,-0.00,-33.60,1.00,0.00,1.00 +1433,-0.00,-38.40,1.00,0.00,1.00 +1434,-0.00,-43.20,1.00,0.00,1.00 +1435,-0.00,-48.00,1.00,0.00,1.00 +1436,-0.00,-52.80,1.00,0.00,1.00 +1437,-0.00,-57.60,1.00,0.00,1.00 +1438,-0.00,-62.40,1.00,0.00,1.00 +1439,-4.80,-67.20,1.00,0.00,1.00 +1440,-4.80,-72.00,1.00,0.00,1.00 +1441,-4.80,-76.80,1.00,0.00,1.00 +1442,-9.60,-81.60,1.00,0.00,1.00 +1443,-19.20,-86.40,1.00,0.00,1.00 +1444,-134.40,-86.40,1.00,0.00,1.00 +1445,-168.00,-81.60,1.00,0.00,1.00 +1446,-172.80,-76.80,1.00,0.00,1.00 +1447,-177.60,-72.00,1.00,0.00,1.00 +1448,-177.60,-67.20,1.00,0.00,1.00 +1449,-177.60,-62.40,1.00,0.00,1.00 +1450,-177.60,-57.60,1.00,0.00,1.00 +1451,-177.60,-52.80,1.00,0.00,1.00 +1452,-177.60,-48.00,1.00,0.00,1.00 +1453,-177.60,-43.20,1.00,0.00,1.00 +1454,-177.60,-38.40,1.00,0.00,1.00 +1455,-177.60,-33.60,1.00,0.00,1.00 +1456,-177.60,-28.80,1.00,0.00,1.00 +1457,-177.60,-24.00,1.00,0.00,1.00 +1458,-177.60,-19.20,1.00,0.00,1.00 +1459,-177.60,-14.40,1.00,0.00,1.00 +1460,-177.60,-9.60,1.00,0.00,1.00 +1461,-177.60,-4.80,1.00,0.00,1.00 +1462,-177.60,-0.00,1.00,0.00,1.00 +1463,177.60,0.00,1.00,0.00,1.00 +1464,177.60,4.80,1.00,0.00,1.00 +1465,177.60,9.60,1.00,0.00,1.00 +1466,177.60,14.40,1.00,0.00,1.00 +1467,177.60,19.20,1.00,0.00,1.00 +1468,177.60,24.00,1.00,0.00,1.00 +1469,177.60,28.80,1.00,0.00,1.00 +1470,177.60,33.60,1.00,0.00,1.00 +1471,177.60,38.40,1.00,0.00,1.00 +1472,177.60,43.20,1.00,0.00,1.00 +1473,177.60,48.00,1.00,0.00,1.00 +1474,177.60,52.80,1.00,0.00,1.00 +1475,177.60,57.60,1.00,0.00,1.00 +1476,177.60,62.40,1.00,0.00,1.00 +1477,177.60,67.20,1.00,0.00,1.00 +1478,177.60,72.00,1.00,0.00,1.00 +1479,172.80,76.80,1.00,0.00,1.00 +1480,168.00,81.60,1.00,0.00,1.00 +1481,134.40,86.40,1.00,0.00,1.00 +1482,19.20,86.40,1.00,0.00,1.00 +1483,9.60,81.60,1.00,0.00,1.00 +1484,4.80,76.80,1.00,0.00,1.00 +1485,4.80,72.00,1.00,0.00,1.00 +1486,4.80,67.20,1.00,0.00,1.00 +1487,0.00,62.40,1.00,0.00,1.00 +1488,0.00,57.60,1.00,0.00,1.00 +1489,0.00,52.80,1.00,0.00,1.00 +1490,0.00,48.00,1.00,0.00,1.00 +1491,0.00,43.20,1.00,0.00,1.00 +1492,0.00,38.40,1.00,0.00,1.00 +1493,0.00,33.60,1.00,0.00,1.00 +1494,0.00,28.80,1.00,0.00,1.00 +1495,0.00,24.00,1.00,0.00,1.00 +1496,0.00,19.20,1.00,0.00,1.00 +1497,0.00,14.40,1.00,0.00,1.00 +1498,0.00,9.60,1.00,0.00,1.00 +1499,0.00,4.80,1.00,0.00,1.00 diff --git a/scripts/tests/data/stvISM2.csv b/scripts/tests/data/stvISM2.csv new file mode 100644 index 0000000000..9fd14fdf63 --- /dev/null +++ b/scripts/tests/data/stvISM2.csv @@ -0,0 +1,1500 @@ +0,0.00,4.80,1.00,0.00,1.00 +1,0.00,9.60,1.00,0.00,1.00 +2,0.00,14.40,1.00,0.00,1.00 +3,0.00,19.20,1.00,0.00,1.00 +4,0.00,24.00,1.00,0.00,1.00 +5,0.00,28.80,1.00,0.00,1.00 +6,0.00,33.60,1.00,0.00,1.00 +7,0.00,38.40,1.00,0.00,1.00 +8,0.00,43.20,1.00,0.00,1.00 +9,0.00,48.00,1.00,0.00,1.00 +10,0.00,52.80,1.00,0.00,1.00 +11,0.00,57.60,1.00,0.00,1.00 +12,0.00,62.40,1.00,0.00,1.00 +13,4.80,67.20,1.00,0.00,1.00 +14,4.80,72.00,1.00,0.00,1.00 +15,4.80,76.80,1.00,0.00,1.00 +16,9.60,81.60,1.00,0.00,1.00 +17,19.20,86.40,1.00,0.00,1.00 +18,134.40,86.40,1.00,0.00,1.00 +19,168.00,81.60,1.00,0.00,1.00 +20,172.80,76.80,1.00,0.00,1.00 +21,177.60,72.00,1.00,0.00,1.00 +22,177.60,67.20,1.00,0.00,1.00 +23,177.60,62.40,1.00,0.00,1.00 +24,177.60,57.60,1.00,0.00,1.00 +25,177.60,52.80,1.00,0.00,1.00 +26,177.60,48.00,1.00,0.00,1.00 +27,177.60,43.20,1.00,0.00,1.00 +28,177.60,38.40,1.00,0.00,1.00 +29,177.60,33.60,1.00,0.00,1.00 +30,177.60,28.80,1.00,0.00,1.00 +31,177.60,24.00,1.00,0.00,1.00 +32,177.60,19.20,1.00,0.00,1.00 +33,177.60,14.40,1.00,0.00,1.00 +34,177.60,9.60,1.00,0.00,1.00 +35,177.60,4.80,1.00,0.00,1.00 +36,177.60,0.00,1.00,0.00,1.00 +37,-177.60,-0.00,1.00,0.00,1.00 +38,-177.60,-4.80,1.00,0.00,1.00 +39,-177.60,-9.60,1.00,0.00,1.00 +40,-177.60,-14.40,1.00,0.00,1.00 +41,-177.60,-19.20,1.00,0.00,1.00 +42,-177.60,-24.00,1.00,0.00,1.00 +43,-177.60,-28.80,1.00,0.00,1.00 +44,-177.60,-33.60,1.00,0.00,1.00 +45,-177.60,-38.40,1.00,0.00,1.00 +46,-177.60,-43.20,1.00,0.00,1.00 +47,-177.60,-48.00,1.00,0.00,1.00 +48,-177.60,-52.80,1.00,0.00,1.00 +49,-177.60,-57.60,1.00,0.00,1.00 +50,-177.60,-62.40,1.00,0.00,1.00 +51,-177.60,-67.20,1.00,0.00,1.00 +52,-177.60,-72.00,1.00,0.00,1.00 +53,-172.80,-76.80,1.00,0.00,1.00 +54,-168.00,-81.60,1.00,0.00,1.00 +55,-134.40,-86.40,1.00,0.00,1.00 +56,-19.20,-86.40,1.00,0.00,1.00 +57,-9.60,-81.60,1.00,0.00,1.00 +58,-4.80,-76.80,1.00,0.00,1.00 +59,-4.80,-72.00,1.00,0.00,1.00 +60,-4.80,-67.20,1.00,0.00,1.00 +61,-0.00,-62.40,1.00,0.00,1.00 +62,-0.00,-57.60,1.00,0.00,1.00 +63,-0.00,-52.80,1.00,0.00,1.00 +64,-0.00,-48.00,1.00,0.00,1.00 +65,-0.00,-43.20,1.00,0.00,1.00 +66,-0.00,-38.40,1.00,0.00,1.00 +67,-0.00,-33.60,1.00,0.00,1.00 +68,-0.00,-28.80,1.00,0.00,1.00 +69,-0.00,-24.00,1.00,0.00,1.00 +70,-0.00,-19.20,1.00,0.00,1.00 +71,-0.00,-14.40,1.00,0.00,1.00 +72,-0.00,-9.60,1.00,0.00,1.00 +73,-0.00,-4.80,1.00,0.00,1.00 +74,-0.00,0.00,1.00,0.00,1.00 +75,-0.00,4.80,1.00,0.00,1.00 +76,-0.00,9.60,1.00,0.00,1.00 +77,-0.00,14.40,1.00,0.00,1.00 +78,-0.00,19.20,1.00,0.00,1.00 +79,-0.00,24.00,1.00,0.00,1.00 +80,-0.00,28.80,1.00,0.00,1.00 +81,-0.00,33.60,1.00,0.00,1.00 +82,-4.80,38.40,1.00,0.00,1.00 +83,-4.80,43.20,1.00,0.00,1.00 +84,-4.80,48.00,1.00,0.00,1.00 +85,-4.80,52.80,1.00,0.00,1.00 +86,-4.80,57.60,1.00,0.00,1.00 +87,-4.80,62.40,1.00,0.00,1.00 +88,-9.60,67.20,1.00,0.00,1.00 +89,-9.60,72.00,1.00,0.00,1.00 +90,-14.40,76.80,1.00,0.00,1.00 +91,-24.00,81.60,1.00,0.00,1.00 +92,-43.20,86.40,1.00,0.00,1.00 +93,-110.40,86.40,1.00,0.00,1.00 +94,-148.80,81.60,1.00,0.00,1.00 +95,-163.20,76.80,1.00,0.00,1.00 +96,-168.00,72.00,1.00,0.00,1.00 +97,-172.80,67.20,1.00,0.00,1.00 +98,-172.80,62.40,1.00,0.00,1.00 +99,-172.80,57.60,1.00,0.00,1.00 +100,-172.80,52.80,1.00,0.00,1.00 +101,-177.60,48.00,1.00,0.00,1.00 +102,-177.60,43.20,1.00,0.00,1.00 +103,-177.60,38.40,1.00,0.00,1.00 +104,-177.60,33.60,1.00,0.00,1.00 +105,-177.60,28.80,1.00,0.00,1.00 +106,-177.60,24.00,1.00,0.00,1.00 +107,-177.60,19.20,1.00,0.00,1.00 +108,-177.60,14.40,1.00,0.00,1.00 +109,-177.60,9.60,1.00,0.00,1.00 +110,-177.60,4.80,1.00,0.00,1.00 +111,-177.60,0.00,1.00,0.00,1.00 +112,177.60,-0.00,1.00,0.00,1.00 +113,177.60,-4.80,1.00,0.00,1.00 +114,177.60,-9.60,1.00,0.00,1.00 +115,177.60,-14.40,1.00,0.00,1.00 +116,177.60,-19.20,1.00,0.00,1.00 +117,177.60,-24.00,1.00,0.00,1.00 +118,177.60,-28.80,1.00,0.00,1.00 +119,177.60,-33.60,1.00,0.00,1.00 +120,177.60,-38.40,1.00,0.00,1.00 +121,177.60,-43.20,1.00,0.00,1.00 +122,177.60,-48.00,1.00,0.00,1.00 +123,172.80,-52.80,1.00,0.00,1.00 +124,172.80,-57.60,1.00,0.00,1.00 +125,172.80,-62.40,1.00,0.00,1.00 +126,172.80,-67.20,1.00,0.00,1.00 +127,168.00,-72.00,1.00,0.00,1.00 +128,163.20,-76.80,1.00,0.00,1.00 +129,148.80,-81.60,1.00,0.00,1.00 +130,110.40,-86.40,1.00,0.00,1.00 +131,43.20,-86.40,1.00,0.00,1.00 +132,24.00,-81.60,1.00,0.00,1.00 +133,14.40,-76.80,1.00,0.00,1.00 +134,9.60,-72.00,1.00,0.00,1.00 +135,9.60,-67.20,1.00,0.00,1.00 +136,4.80,-62.40,1.00,0.00,1.00 +137,4.80,-57.60,1.00,0.00,1.00 +138,4.80,-52.80,1.00,0.00,1.00 +139,4.80,-48.00,1.00,0.00,1.00 +140,4.80,-43.20,1.00,0.00,1.00 +141,4.80,-38.40,1.00,0.00,1.00 +142,0.00,-33.60,1.00,0.00,1.00 +143,0.00,-28.80,1.00,0.00,1.00 +144,0.00,-24.00,1.00,0.00,1.00 +145,0.00,-19.20,1.00,0.00,1.00 +146,0.00,-14.40,1.00,0.00,1.00 +147,0.00,-9.60,1.00,0.00,1.00 +148,0.00,-4.80,1.00,0.00,1.00 +149,0.00,0.00,1.00,0.00,1.00 +150,-0.00,4.80,1.00,0.00,1.00 +151,-0.00,9.60,1.00,0.00,1.00 +152,-0.00,14.40,1.00,0.00,1.00 +153,-4.80,19.20,1.00,0.00,1.00 +154,-4.80,24.00,1.00,0.00,1.00 +155,-4.80,28.80,1.00,0.00,1.00 +156,-4.80,33.60,1.00,0.00,1.00 +157,-4.80,38.40,1.00,0.00,1.00 +158,-9.60,43.20,1.00,0.00,1.00 +159,-9.60,48.00,1.00,0.00,1.00 +160,-9.60,52.80,1.00,0.00,1.00 +161,-14.40,57.60,1.00,0.00,1.00 +162,-14.40,62.40,1.00,0.00,1.00 +163,-19.20,67.20,1.00,0.00,1.00 +164,-24.00,72.00,1.00,0.00,1.00 +165,-33.60,72.00,1.00,0.00,1.00 +166,-43.20,76.80,1.00,0.00,1.00 +167,-67.20,81.60,1.00,0.00,1.00 +168,-96.00,81.60,1.00,0.00,1.00 +169,-124.80,81.60,1.00,0.00,1.00 +170,-144.00,76.80,1.00,0.00,1.00 +171,-153.60,72.00,1.00,0.00,1.00 +172,-158.40,67.20,1.00,0.00,1.00 +173,-163.20,62.40,1.00,0.00,1.00 +174,-168.00,57.60,1.00,0.00,1.00 +175,-168.00,52.80,1.00,0.00,1.00 +176,-168.00,48.00,1.00,0.00,1.00 +177,-172.80,43.20,1.00,0.00,1.00 +178,-172.80,38.40,1.00,0.00,1.00 +179,-172.80,33.60,1.00,0.00,1.00 +180,-172.80,28.80,1.00,0.00,1.00 +181,-177.60,24.00,1.00,0.00,1.00 +182,-177.60,19.20,1.00,0.00,1.00 +183,-177.60,14.40,1.00,0.00,1.00 +184,-177.60,9.60,1.00,0.00,1.00 +185,-177.60,4.80,1.00,0.00,1.00 +186,-177.60,0.00,1.00,0.00,1.00 +187,177.60,-0.00,1.00,0.00,1.00 +188,177.60,-4.80,1.00,0.00,1.00 +189,177.60,-9.60,1.00,0.00,1.00 +190,177.60,-14.40,1.00,0.00,1.00 +191,177.60,-19.20,1.00,0.00,1.00 +192,177.60,-24.00,1.00,0.00,1.00 +193,172.80,-28.80,1.00,0.00,1.00 +194,172.80,-33.60,1.00,0.00,1.00 +195,172.80,-38.40,1.00,0.00,1.00 +196,172.80,-43.20,1.00,0.00,1.00 +197,168.00,-48.00,1.00,0.00,1.00 +198,168.00,-52.80,1.00,0.00,1.00 +199,168.00,-57.60,1.00,0.00,1.00 +200,163.20,-62.40,1.00,0.00,1.00 +201,158.40,-67.20,1.00,0.00,1.00 +202,153.60,-72.00,1.00,0.00,1.00 +203,144.00,-76.80,1.00,0.00,1.00 +204,124.80,-81.60,1.00,0.00,1.00 +205,96.00,-81.60,1.00,0.00,1.00 +206,67.20,-81.60,1.00,0.00,1.00 +207,43.20,-76.80,1.00,0.00,1.00 +208,33.60,-72.00,1.00,0.00,1.00 +209,24.00,-72.00,1.00,0.00,1.00 +210,19.20,-67.20,1.00,0.00,1.00 +211,14.40,-62.40,1.00,0.00,1.00 +212,14.40,-57.60,1.00,0.00,1.00 +213,9.60,-52.80,1.00,0.00,1.00 +214,9.60,-48.00,1.00,0.00,1.00 +215,9.60,-43.20,1.00,0.00,1.00 +216,4.80,-38.40,1.00,0.00,1.00 +217,4.80,-33.60,1.00,0.00,1.00 +218,4.80,-28.80,1.00,0.00,1.00 +219,4.80,-24.00,1.00,0.00,1.00 +220,4.80,-19.20,1.00,0.00,1.00 +221,0.00,-14.40,1.00,0.00,1.00 +222,0.00,-9.60,1.00,0.00,1.00 +223,0.00,-4.80,1.00,0.00,1.00 +224,0.00,0.00,1.00,0.00,1.00 +225,-0.00,4.80,1.00,0.00,1.00 +226,-0.00,9.60,1.00,0.00,1.00 +227,-4.80,14.40,1.00,0.00,1.00 +228,-4.80,19.20,1.00,0.00,1.00 +229,-4.80,24.00,1.00,0.00,1.00 +230,-4.80,28.80,1.00,0.00,1.00 +231,-9.60,33.60,1.00,0.00,1.00 +232,-9.60,38.40,1.00,0.00,1.00 +233,-14.40,43.20,1.00,0.00,1.00 +234,-14.40,48.00,1.00,0.00,1.00 +235,-14.40,52.80,1.00,0.00,1.00 +236,-19.20,57.60,1.00,0.00,1.00 +237,-24.00,57.60,1.00,0.00,1.00 +238,-28.80,62.40,1.00,0.00,1.00 +239,-33.60,67.20,1.00,0.00,1.00 +240,-43.20,72.00,1.00,0.00,1.00 +241,-57.60,72.00,1.00,0.00,1.00 +242,-76.80,76.80,1.00,0.00,1.00 +243,-96.00,76.80,1.00,0.00,1.00 +244,-115.20,76.80,1.00,0.00,1.00 +245,-129.60,72.00,1.00,0.00,1.00 +246,-139.20,72.00,1.00,0.00,1.00 +247,-148.80,67.20,1.00,0.00,1.00 +248,-153.60,62.40,1.00,0.00,1.00 +249,-158.40,57.60,1.00,0.00,1.00 +250,-163.20,52.80,1.00,0.00,1.00 +251,-163.20,48.00,1.00,0.00,1.00 +252,-168.00,43.20,1.00,0.00,1.00 +253,-168.00,38.40,1.00,0.00,1.00 +254,-172.80,33.60,1.00,0.00,1.00 +255,-172.80,28.80,1.00,0.00,1.00 +256,-172.80,24.00,1.00,0.00,1.00 +257,-172.80,19.20,1.00,0.00,1.00 +258,-177.60,14.40,1.00,0.00,1.00 +259,-177.60,9.60,1.00,0.00,1.00 +260,-177.60,4.80,1.00,0.00,1.00 +261,-177.60,0.00,1.00,0.00,1.00 +262,177.60,-0.00,1.00,0.00,1.00 +263,177.60,-4.80,1.00,0.00,1.00 +264,177.60,-9.60,1.00,0.00,1.00 +265,177.60,-14.40,1.00,0.00,1.00 +266,172.80,-19.20,1.00,0.00,1.00 +267,172.80,-24.00,1.00,0.00,1.00 +268,172.80,-28.80,1.00,0.00,1.00 +269,172.80,-33.60,1.00,0.00,1.00 +270,168.00,-38.40,1.00,0.00,1.00 +271,168.00,-43.20,1.00,0.00,1.00 +272,163.20,-48.00,1.00,0.00,1.00 +273,163.20,-52.80,1.00,0.00,1.00 +274,158.40,-57.60,1.00,0.00,1.00 +275,153.60,-62.40,1.00,0.00,1.00 +276,148.80,-67.20,1.00,0.00,1.00 +277,139.20,-72.00,1.00,0.00,1.00 +278,129.60,-72.00,1.00,0.00,1.00 +279,115.20,-76.80,1.00,0.00,1.00 +280,96.00,-76.80,1.00,0.00,1.00 +281,76.80,-76.80,1.00,0.00,1.00 +282,57.60,-72.00,1.00,0.00,1.00 +283,43.20,-72.00,1.00,0.00,1.00 +284,33.60,-67.20,1.00,0.00,1.00 +285,28.80,-62.40,1.00,0.00,1.00 +286,24.00,-57.60,1.00,0.00,1.00 +287,19.20,-57.60,1.00,0.00,1.00 +288,14.40,-52.80,1.00,0.00,1.00 +289,14.40,-48.00,1.00,0.00,1.00 +290,14.40,-43.20,1.00,0.00,1.00 +291,9.60,-38.40,1.00,0.00,1.00 +292,9.60,-33.60,1.00,0.00,1.00 +293,4.80,-28.80,1.00,0.00,1.00 +294,4.80,-24.00,1.00,0.00,1.00 +295,4.80,-19.20,1.00,0.00,1.00 +296,4.80,-14.40,1.00,0.00,1.00 +297,0.00,-9.60,1.00,0.00,1.00 +298,0.00,-4.80,1.00,0.00,1.00 +299,0.00,0.00,1.00,0.00,1.00 +300,-0.00,4.80,1.00,0.00,1.00 +301,-4.80,9.60,1.00,0.00,1.00 +302,-4.80,14.40,1.00,0.00,1.00 +303,-4.80,19.20,1.00,0.00,1.00 +304,-9.60,24.00,1.00,0.00,1.00 +305,-9.60,28.80,1.00,0.00,1.00 +306,-9.60,33.60,1.00,0.00,1.00 +307,-14.40,38.40,1.00,0.00,1.00 +308,-14.40,38.40,1.00,0.00,1.00 +309,-19.20,43.20,1.00,0.00,1.00 +310,-24.00,48.00,1.00,0.00,1.00 +311,-24.00,52.80,1.00,0.00,1.00 +312,-28.80,57.60,1.00,0.00,1.00 +313,-38.40,62.40,1.00,0.00,1.00 +314,-43.20,62.40,1.00,0.00,1.00 +315,-52.80,67.20,1.00,0.00,1.00 +316,-62.40,72.00,1.00,0.00,1.00 +317,-76.80,72.00,1.00,0.00,1.00 +318,-96.00,72.00,1.00,0.00,1.00 +319,-110.40,72.00,1.00,0.00,1.00 +320,-120.00,67.20,1.00,0.00,1.00 +321,-134.40,67.20,1.00,0.00,1.00 +322,-139.20,62.40,1.00,0.00,1.00 +323,-148.80,57.60,1.00,0.00,1.00 +324,-153.60,57.60,1.00,0.00,1.00 +325,-158.40,52.80,1.00,0.00,1.00 +326,-158.40,48.00,1.00,0.00,1.00 +327,-163.20,43.20,1.00,0.00,1.00 +328,-163.20,38.40,1.00,0.00,1.00 +329,-168.00,33.60,1.00,0.00,1.00 +330,-168.00,28.80,1.00,0.00,1.00 +331,-172.80,24.00,1.00,0.00,1.00 +332,-172.80,19.20,1.00,0.00,1.00 +333,-172.80,14.40,1.00,0.00,1.00 +334,-177.60,9.60,1.00,0.00,1.00 +335,-177.60,4.80,1.00,0.00,1.00 +336,-177.60,0.00,1.00,0.00,1.00 +337,177.60,-0.00,1.00,0.00,1.00 +338,177.60,-4.80,1.00,0.00,1.00 +339,177.60,-9.60,1.00,0.00,1.00 +340,172.80,-14.40,1.00,0.00,1.00 +341,172.80,-19.20,1.00,0.00,1.00 +342,172.80,-24.00,1.00,0.00,1.00 +343,168.00,-28.80,1.00,0.00,1.00 +344,168.00,-33.60,1.00,0.00,1.00 +345,163.20,-38.40,1.00,0.00,1.00 +346,163.20,-43.20,1.00,0.00,1.00 +347,158.40,-48.00,1.00,0.00,1.00 +348,158.40,-52.80,1.00,0.00,1.00 +349,153.60,-57.60,1.00,0.00,1.00 +350,148.80,-57.60,1.00,0.00,1.00 +351,139.20,-62.40,1.00,0.00,1.00 +352,134.40,-67.20,1.00,0.00,1.00 +353,120.00,-67.20,1.00,0.00,1.00 +354,110.40,-72.00,1.00,0.00,1.00 +355,96.00,-72.00,1.00,0.00,1.00 +356,76.80,-72.00,1.00,0.00,1.00 +357,62.40,-72.00,1.00,0.00,1.00 +358,52.80,-67.20,1.00,0.00,1.00 +359,43.20,-62.40,1.00,0.00,1.00 +360,38.40,-62.40,1.00,0.00,1.00 +361,28.80,-57.60,1.00,0.00,1.00 +362,24.00,-52.80,1.00,0.00,1.00 +363,24.00,-48.00,1.00,0.00,1.00 +364,19.20,-43.20,1.00,0.00,1.00 +365,14.40,-38.40,1.00,0.00,1.00 +366,14.40,-38.40,1.00,0.00,1.00 +367,9.60,-33.60,1.00,0.00,1.00 +368,9.60,-28.80,1.00,0.00,1.00 +369,9.60,-24.00,1.00,0.00,1.00 +370,4.80,-19.20,1.00,0.00,1.00 +371,4.80,-14.40,1.00,0.00,1.00 +372,4.80,-9.60,1.00,0.00,1.00 +373,0.00,-4.80,1.00,0.00,1.00 +374,0.00,0.00,1.00,0.00,1.00 +375,-0.00,4.80,1.00,0.00,1.00 +376,-4.80,9.60,1.00,0.00,1.00 +377,-4.80,14.40,1.00,0.00,1.00 +378,-9.60,19.20,1.00,0.00,1.00 +379,-9.60,24.00,1.00,0.00,1.00 +380,-14.40,24.00,1.00,0.00,1.00 +381,-14.40,28.80,1.00,0.00,1.00 +382,-19.20,33.60,1.00,0.00,1.00 +383,-19.20,38.40,1.00,0.00,1.00 +384,-24.00,43.20,1.00,0.00,1.00 +385,-28.80,48.00,1.00,0.00,1.00 +386,-33.60,52.80,1.00,0.00,1.00 +387,-38.40,52.80,1.00,0.00,1.00 +388,-43.20,57.60,1.00,0.00,1.00 +389,-48.00,62.40,1.00,0.00,1.00 +390,-57.60,62.40,1.00,0.00,1.00 +391,-67.20,67.20,1.00,0.00,1.00 +392,-81.60,67.20,1.00,0.00,1.00 +393,-91.20,67.20,1.00,0.00,1.00 +394,-105.60,67.20,1.00,0.00,1.00 +395,-115.20,67.20,1.00,0.00,1.00 +396,-124.80,62.40,1.00,0.00,1.00 +397,-134.40,57.60,1.00,0.00,1.00 +398,-139.20,57.60,1.00,0.00,1.00 +399,-144.00,52.80,1.00,0.00,1.00 +400,-148.80,48.00,1.00,0.00,1.00 +401,-153.60,43.20,1.00,0.00,1.00 +402,-158.40,43.20,1.00,0.00,1.00 +403,-163.20,38.40,1.00,0.00,1.00 +404,-163.20,33.60,1.00,0.00,1.00 +405,-168.00,28.80,1.00,0.00,1.00 +406,-168.00,24.00,1.00,0.00,1.00 +407,-172.80,19.20,1.00,0.00,1.00 +408,-172.80,14.40,1.00,0.00,1.00 +409,-177.60,9.60,1.00,0.00,1.00 +410,-177.60,4.80,1.00,0.00,1.00 +411,-177.60,0.00,1.00,0.00,1.00 +412,177.60,-0.00,1.00,0.00,1.00 +413,177.60,-4.80,1.00,0.00,1.00 +414,177.60,-9.60,1.00,0.00,1.00 +415,172.80,-14.40,1.00,0.00,1.00 +416,172.80,-19.20,1.00,0.00,1.00 +417,168.00,-24.00,1.00,0.00,1.00 +418,168.00,-28.80,1.00,0.00,1.00 +419,163.20,-33.60,1.00,0.00,1.00 +420,163.20,-38.40,1.00,0.00,1.00 +421,158.40,-43.20,1.00,0.00,1.00 +422,153.60,-43.20,1.00,0.00,1.00 +423,148.80,-48.00,1.00,0.00,1.00 +424,144.00,-52.80,1.00,0.00,1.00 +425,139.20,-57.60,1.00,0.00,1.00 +426,134.40,-57.60,1.00,0.00,1.00 +427,124.80,-62.40,1.00,0.00,1.00 +428,115.20,-67.20,1.00,0.00,1.00 +429,105.60,-67.20,1.00,0.00,1.00 +430,91.20,-67.20,1.00,0.00,1.00 +431,81.60,-67.20,1.00,0.00,1.00 +432,67.20,-67.20,1.00,0.00,1.00 +433,57.60,-62.40,1.00,0.00,1.00 +434,48.00,-62.40,1.00,0.00,1.00 +435,43.20,-57.60,1.00,0.00,1.00 +436,38.40,-52.80,1.00,0.00,1.00 +437,33.60,-52.80,1.00,0.00,1.00 +438,28.80,-48.00,1.00,0.00,1.00 +439,24.00,-43.20,1.00,0.00,1.00 +440,19.20,-38.40,1.00,0.00,1.00 +441,19.20,-33.60,1.00,0.00,1.00 +442,14.40,-28.80,1.00,0.00,1.00 +443,14.40,-24.00,1.00,0.00,1.00 +444,9.60,-24.00,1.00,0.00,1.00 +445,9.60,-19.20,1.00,0.00,1.00 +446,4.80,-14.40,1.00,0.00,1.00 +447,4.80,-9.60,1.00,0.00,1.00 +448,0.00,-4.80,1.00,0.00,1.00 +449,0.00,0.00,1.00,0.00,1.00 +450,-0.00,4.80,1.00,0.00,1.00 +451,-4.80,9.60,1.00,0.00,1.00 +452,-4.80,14.40,1.00,0.00,1.00 +453,-9.60,19.20,1.00,0.00,1.00 +454,-9.60,19.20,1.00,0.00,1.00 +455,-14.40,24.00,1.00,0.00,1.00 +456,-19.20,28.80,1.00,0.00,1.00 +457,-19.20,33.60,1.00,0.00,1.00 +458,-24.00,38.40,1.00,0.00,1.00 +459,-28.80,43.20,1.00,0.00,1.00 +460,-33.60,43.20,1.00,0.00,1.00 +461,-38.40,48.00,1.00,0.00,1.00 +462,-43.20,52.80,1.00,0.00,1.00 +463,-48.00,52.80,1.00,0.00,1.00 +464,-52.80,57.60,1.00,0.00,1.00 +465,-62.40,57.60,1.00,0.00,1.00 +466,-72.00,62.40,1.00,0.00,1.00 +467,-81.60,62.40,1.00,0.00,1.00 +468,-91.20,62.40,1.00,0.00,1.00 +469,-100.80,62.40,1.00,0.00,1.00 +470,-110.40,62.40,1.00,0.00,1.00 +471,-120.00,57.60,1.00,0.00,1.00 +472,-129.60,57.60,1.00,0.00,1.00 +473,-134.40,52.80,1.00,0.00,1.00 +474,-139.20,48.00,1.00,0.00,1.00 +475,-144.00,48.00,1.00,0.00,1.00 +476,-148.80,43.20,1.00,0.00,1.00 +477,-153.60,38.40,1.00,0.00,1.00 +478,-158.40,33.60,1.00,0.00,1.00 +479,-163.20,33.60,1.00,0.00,1.00 +480,-163.20,28.80,1.00,0.00,1.00 +481,-168.00,24.00,1.00,0.00,1.00 +482,-168.00,19.20,1.00,0.00,1.00 +483,-172.80,14.40,1.00,0.00,1.00 +484,-172.80,9.60,1.00,0.00,1.00 +485,-177.60,4.80,1.00,0.00,1.00 +486,-177.60,0.00,1.00,0.00,1.00 +487,177.60,-0.00,1.00,0.00,1.00 +488,177.60,-4.80,1.00,0.00,1.00 +489,172.80,-9.60,1.00,0.00,1.00 +490,172.80,-14.40,1.00,0.00,1.00 +491,168.00,-19.20,1.00,0.00,1.00 +492,168.00,-24.00,1.00,0.00,1.00 +493,163.20,-28.80,1.00,0.00,1.00 +494,163.20,-33.60,1.00,0.00,1.00 +495,158.40,-33.60,1.00,0.00,1.00 +496,153.60,-38.40,1.00,0.00,1.00 +497,148.80,-43.20,1.00,0.00,1.00 +498,144.00,-48.00,1.00,0.00,1.00 +499,139.20,-48.00,1.00,0.00,1.00 +500,134.40,-52.80,1.00,0.00,1.00 +501,129.60,-57.60,1.00,0.00,1.00 +502,120.00,-57.60,1.00,0.00,1.00 +503,110.40,-62.40,1.00,0.00,1.00 +504,100.80,-62.40,1.00,0.00,1.00 +505,91.20,-62.40,1.00,0.00,1.00 +506,81.60,-62.40,1.00,0.00,1.00 +507,72.00,-62.40,1.00,0.00,1.00 +508,62.40,-57.60,1.00,0.00,1.00 +509,52.80,-57.60,1.00,0.00,1.00 +510,48.00,-52.80,1.00,0.00,1.00 +511,43.20,-52.80,1.00,0.00,1.00 +512,38.40,-48.00,1.00,0.00,1.00 +513,33.60,-43.20,1.00,0.00,1.00 +514,28.80,-43.20,1.00,0.00,1.00 +515,24.00,-38.40,1.00,0.00,1.00 +516,19.20,-33.60,1.00,0.00,1.00 +517,19.20,-28.80,1.00,0.00,1.00 +518,14.40,-24.00,1.00,0.00,1.00 +519,9.60,-19.20,1.00,0.00,1.00 +520,9.60,-19.20,1.00,0.00,1.00 +521,4.80,-14.40,1.00,0.00,1.00 +522,4.80,-9.60,1.00,0.00,1.00 +523,0.00,-4.80,1.00,0.00,1.00 +524,0.00,0.00,1.00,0.00,1.00 +525,-4.80,4.80,1.00,0.00,1.00 +526,-4.80,9.60,1.00,0.00,1.00 +527,-9.60,14.40,1.00,0.00,1.00 +528,-9.60,14.40,1.00,0.00,1.00 +529,-14.40,19.20,1.00,0.00,1.00 +530,-14.40,24.00,1.00,0.00,1.00 +531,-19.20,28.80,1.00,0.00,1.00 +532,-24.00,33.60,1.00,0.00,1.00 +533,-28.80,33.60,1.00,0.00,1.00 +534,-28.80,38.40,1.00,0.00,1.00 +535,-33.60,43.20,1.00,0.00,1.00 +536,-38.40,43.20,1.00,0.00,1.00 +537,-48.00,48.00,1.00,0.00,1.00 +538,-52.80,52.80,1.00,0.00,1.00 +539,-57.60,52.80,1.00,0.00,1.00 +540,-67.20,57.60,1.00,0.00,1.00 +541,-76.80,57.60,1.00,0.00,1.00 +542,-81.60,57.60,1.00,0.00,1.00 +543,-91.20,57.60,1.00,0.00,1.00 +544,-100.80,57.60,1.00,0.00,1.00 +545,-110.40,57.60,1.00,0.00,1.00 +546,-115.20,52.80,1.00,0.00,1.00 +547,-124.80,52.80,1.00,0.00,1.00 +548,-129.60,48.00,1.00,0.00,1.00 +549,-139.20,48.00,1.00,0.00,1.00 +550,-144.00,43.20,1.00,0.00,1.00 +551,-148.80,38.40,1.00,0.00,1.00 +552,-153.60,38.40,1.00,0.00,1.00 +553,-153.60,33.60,1.00,0.00,1.00 +554,-158.40,28.80,1.00,0.00,1.00 +555,-163.20,24.00,1.00,0.00,1.00 +556,-163.20,24.00,1.00,0.00,1.00 +557,-168.00,19.20,1.00,0.00,1.00 +558,-172.80,14.40,1.00,0.00,1.00 +559,-172.80,9.60,1.00,0.00,1.00 +560,-177.60,4.80,1.00,0.00,1.00 +561,-177.60,0.00,1.00,0.00,1.00 +562,177.60,-0.00,1.00,0.00,1.00 +563,177.60,-4.80,1.00,0.00,1.00 +564,172.80,-9.60,1.00,0.00,1.00 +565,172.80,-14.40,1.00,0.00,1.00 +566,168.00,-19.20,1.00,0.00,1.00 +567,163.20,-24.00,1.00,0.00,1.00 +568,163.20,-24.00,1.00,0.00,1.00 +569,158.40,-28.80,1.00,0.00,1.00 +570,153.60,-33.60,1.00,0.00,1.00 +571,153.60,-38.40,1.00,0.00,1.00 +572,148.80,-38.40,1.00,0.00,1.00 +573,144.00,-43.20,1.00,0.00,1.00 +574,139.20,-48.00,1.00,0.00,1.00 +575,129.60,-48.00,1.00,0.00,1.00 +576,124.80,-52.80,1.00,0.00,1.00 +577,115.20,-52.80,1.00,0.00,1.00 +578,110.40,-57.60,1.00,0.00,1.00 +579,100.80,-57.60,1.00,0.00,1.00 +580,91.20,-57.60,1.00,0.00,1.00 +581,81.60,-57.60,1.00,0.00,1.00 +582,76.80,-57.60,1.00,0.00,1.00 +583,67.20,-57.60,1.00,0.00,1.00 +584,57.60,-52.80,1.00,0.00,1.00 +585,52.80,-52.80,1.00,0.00,1.00 +586,48.00,-48.00,1.00,0.00,1.00 +587,38.40,-43.20,1.00,0.00,1.00 +588,33.60,-43.20,1.00,0.00,1.00 +589,28.80,-38.40,1.00,0.00,1.00 +590,28.80,-33.60,1.00,0.00,1.00 +591,24.00,-33.60,1.00,0.00,1.00 +592,19.20,-28.80,1.00,0.00,1.00 +593,14.40,-24.00,1.00,0.00,1.00 +594,14.40,-19.20,1.00,0.00,1.00 +595,9.60,-14.40,1.00,0.00,1.00 +596,9.60,-14.40,1.00,0.00,1.00 +597,4.80,-9.60,1.00,0.00,1.00 +598,4.80,-4.80,1.00,0.00,1.00 +599,0.00,0.00,1.00,0.00,1.00 +600,-4.80,4.80,1.00,0.00,1.00 +601,-4.80,9.60,1.00,0.00,1.00 +602,-9.60,9.60,1.00,0.00,1.00 +603,-9.60,14.40,1.00,0.00,1.00 +604,-14.40,19.20,1.00,0.00,1.00 +605,-19.20,24.00,1.00,0.00,1.00 +606,-24.00,24.00,1.00,0.00,1.00 +607,-24.00,28.80,1.00,0.00,1.00 +608,-28.80,33.60,1.00,0.00,1.00 +609,-33.60,38.40,1.00,0.00,1.00 +610,-38.40,38.40,1.00,0.00,1.00 +611,-43.20,43.20,1.00,0.00,1.00 +612,-48.00,43.20,1.00,0.00,1.00 +613,-52.80,48.00,1.00,0.00,1.00 +614,-62.40,48.00,1.00,0.00,1.00 +615,-67.20,52.80,1.00,0.00,1.00 +616,-76.80,52.80,1.00,0.00,1.00 +617,-86.40,52.80,1.00,0.00,1.00 +618,-91.20,52.80,1.00,0.00,1.00 +619,-100.80,52.80,1.00,0.00,1.00 +620,-105.60,52.80,1.00,0.00,1.00 +621,-115.20,48.00,1.00,0.00,1.00 +622,-120.00,48.00,1.00,0.00,1.00 +623,-129.60,48.00,1.00,0.00,1.00 +624,-134.40,43.20,1.00,0.00,1.00 +625,-139.20,43.20,1.00,0.00,1.00 +626,-144.00,38.40,1.00,0.00,1.00 +627,-148.80,33.60,1.00,0.00,1.00 +628,-153.60,33.60,1.00,0.00,1.00 +629,-158.40,28.80,1.00,0.00,1.00 +630,-158.40,24.00,1.00,0.00,1.00 +631,-163.20,19.20,1.00,0.00,1.00 +632,-168.00,19.20,1.00,0.00,1.00 +633,-168.00,14.40,1.00,0.00,1.00 +634,-172.80,9.60,1.00,0.00,1.00 +635,-177.60,4.80,1.00,0.00,1.00 +636,-177.60,0.00,1.00,0.00,1.00 +637,177.60,-0.00,1.00,0.00,1.00 +638,177.60,-4.80,1.00,0.00,1.00 +639,172.80,-9.60,1.00,0.00,1.00 +640,168.00,-14.40,1.00,0.00,1.00 +641,168.00,-19.20,1.00,0.00,1.00 +642,163.20,-19.20,1.00,0.00,1.00 +643,158.40,-24.00,1.00,0.00,1.00 +644,158.40,-28.80,1.00,0.00,1.00 +645,153.60,-33.60,1.00,0.00,1.00 +646,148.80,-33.60,1.00,0.00,1.00 +647,144.00,-38.40,1.00,0.00,1.00 +648,139.20,-43.20,1.00,0.00,1.00 +649,134.40,-43.20,1.00,0.00,1.00 +650,129.60,-48.00,1.00,0.00,1.00 +651,120.00,-48.00,1.00,0.00,1.00 +652,115.20,-48.00,1.00,0.00,1.00 +653,105.60,-52.80,1.00,0.00,1.00 +654,100.80,-52.80,1.00,0.00,1.00 +655,91.20,-52.80,1.00,0.00,1.00 +656,86.40,-52.80,1.00,0.00,1.00 +657,76.80,-52.80,1.00,0.00,1.00 +658,67.20,-52.80,1.00,0.00,1.00 +659,62.40,-48.00,1.00,0.00,1.00 +660,52.80,-48.00,1.00,0.00,1.00 +661,48.00,-43.20,1.00,0.00,1.00 +662,43.20,-43.20,1.00,0.00,1.00 +663,38.40,-38.40,1.00,0.00,1.00 +664,33.60,-38.40,1.00,0.00,1.00 +665,28.80,-33.60,1.00,0.00,1.00 +666,24.00,-28.80,1.00,0.00,1.00 +667,24.00,-24.00,1.00,0.00,1.00 +668,19.20,-24.00,1.00,0.00,1.00 +669,14.40,-19.20,1.00,0.00,1.00 +670,9.60,-14.40,1.00,0.00,1.00 +671,9.60,-9.60,1.00,0.00,1.00 +672,4.80,-9.60,1.00,0.00,1.00 +673,4.80,-4.80,1.00,0.00,1.00 +674,0.00,0.00,1.00,0.00,1.00 +675,-4.80,4.80,1.00,0.00,1.00 +676,-4.80,4.80,1.00,0.00,1.00 +677,-9.60,9.60,1.00,0.00,1.00 +678,-14.40,14.40,1.00,0.00,1.00 +679,-14.40,19.20,1.00,0.00,1.00 +680,-19.20,19.20,1.00,0.00,1.00 +681,-24.00,24.00,1.00,0.00,1.00 +682,-28.80,28.80,1.00,0.00,1.00 +683,-33.60,28.80,1.00,0.00,1.00 +684,-38.40,33.60,1.00,0.00,1.00 +685,-43.20,38.40,1.00,0.00,1.00 +686,-48.00,38.40,1.00,0.00,1.00 +687,-52.80,43.20,1.00,0.00,1.00 +688,-57.60,43.20,1.00,0.00,1.00 +689,-62.40,43.20,1.00,0.00,1.00 +690,-72.00,48.00,1.00,0.00,1.00 +691,-76.80,48.00,1.00,0.00,1.00 +692,-86.40,48.00,1.00,0.00,1.00 +693,-91.20,48.00,1.00,0.00,1.00 +694,-100.80,48.00,1.00,0.00,1.00 +695,-105.60,48.00,1.00,0.00,1.00 +696,-110.40,48.00,1.00,0.00,1.00 +697,-120.00,43.20,1.00,0.00,1.00 +698,-124.80,43.20,1.00,0.00,1.00 +699,-129.60,38.40,1.00,0.00,1.00 +700,-134.40,38.40,1.00,0.00,1.00 +701,-139.20,33.60,1.00,0.00,1.00 +702,-144.00,33.60,1.00,0.00,1.00 +703,-148.80,28.80,1.00,0.00,1.00 +704,-153.60,24.00,1.00,0.00,1.00 +705,-158.40,24.00,1.00,0.00,1.00 +706,-163.20,19.20,1.00,0.00,1.00 +707,-163.20,14.40,1.00,0.00,1.00 +708,-168.00,14.40,1.00,0.00,1.00 +709,-172.80,9.60,1.00,0.00,1.00 +710,-172.80,4.80,1.00,0.00,1.00 +711,-177.60,0.00,1.00,0.00,1.00 +712,177.60,-0.00,1.00,0.00,1.00 +713,172.80,-4.80,1.00,0.00,1.00 +714,172.80,-9.60,1.00,0.00,1.00 +715,168.00,-14.40,1.00,0.00,1.00 +716,163.20,-14.40,1.00,0.00,1.00 +717,163.20,-19.20,1.00,0.00,1.00 +718,158.40,-24.00,1.00,0.00,1.00 +719,153.60,-24.00,1.00,0.00,1.00 +720,148.80,-28.80,1.00,0.00,1.00 +721,144.00,-33.60,1.00,0.00,1.00 +722,139.20,-33.60,1.00,0.00,1.00 +723,134.40,-38.40,1.00,0.00,1.00 +724,129.60,-38.40,1.00,0.00,1.00 +725,124.80,-43.20,1.00,0.00,1.00 +726,120.00,-43.20,1.00,0.00,1.00 +727,110.40,-48.00,1.00,0.00,1.00 +728,105.60,-48.00,1.00,0.00,1.00 +729,100.80,-48.00,1.00,0.00,1.00 +730,91.20,-48.00,1.00,0.00,1.00 +731,86.40,-48.00,1.00,0.00,1.00 +732,76.80,-48.00,1.00,0.00,1.00 +733,72.00,-48.00,1.00,0.00,1.00 +734,62.40,-43.20,1.00,0.00,1.00 +735,57.60,-43.20,1.00,0.00,1.00 +736,52.80,-43.20,1.00,0.00,1.00 +737,48.00,-38.40,1.00,0.00,1.00 +738,43.20,-38.40,1.00,0.00,1.00 +739,38.40,-33.60,1.00,0.00,1.00 +740,33.60,-28.80,1.00,0.00,1.00 +741,28.80,-28.80,1.00,0.00,1.00 +742,24.00,-24.00,1.00,0.00,1.00 +743,19.20,-19.20,1.00,0.00,1.00 +744,14.40,-19.20,1.00,0.00,1.00 +745,14.40,-14.40,1.00,0.00,1.00 +746,9.60,-9.60,1.00,0.00,1.00 +747,4.80,-4.80,1.00,0.00,1.00 +748,4.80,-4.80,1.00,0.00,1.00 +749,0.00,0.00,1.00,0.00,1.00 +750,-4.80,4.80,1.00,0.00,1.00 +751,-4.80,4.80,1.00,0.00,1.00 +752,-9.60,9.60,1.00,0.00,1.00 +753,-14.40,14.40,1.00,0.00,1.00 +754,-19.20,14.40,1.00,0.00,1.00 +755,-24.00,19.20,1.00,0.00,1.00 +756,-24.00,24.00,1.00,0.00,1.00 +757,-28.80,24.00,1.00,0.00,1.00 +758,-33.60,28.80,1.00,0.00,1.00 +759,-38.40,28.80,1.00,0.00,1.00 +760,-43.20,33.60,1.00,0.00,1.00 +761,-48.00,33.60,1.00,0.00,1.00 +762,-52.80,38.40,1.00,0.00,1.00 +763,-62.40,38.40,1.00,0.00,1.00 +764,-67.20,38.40,1.00,0.00,1.00 +765,-72.00,43.20,1.00,0.00,1.00 +766,-76.80,43.20,1.00,0.00,1.00 +767,-86.40,43.20,1.00,0.00,1.00 +768,-91.20,43.20,1.00,0.00,1.00 +769,-96.00,43.20,1.00,0.00,1.00 +770,-105.60,43.20,1.00,0.00,1.00 +771,-110.40,43.20,1.00,0.00,1.00 +772,-115.20,38.40,1.00,0.00,1.00 +773,-124.80,38.40,1.00,0.00,1.00 +774,-129.60,38.40,1.00,0.00,1.00 +775,-134.40,33.60,1.00,0.00,1.00 +776,-139.20,33.60,1.00,0.00,1.00 +777,-144.00,28.80,1.00,0.00,1.00 +778,-148.80,28.80,1.00,0.00,1.00 +779,-153.60,24.00,1.00,0.00,1.00 +780,-158.40,19.20,1.00,0.00,1.00 +781,-158.40,19.20,1.00,0.00,1.00 +782,-163.20,14.40,1.00,0.00,1.00 +783,-168.00,9.60,1.00,0.00,1.00 +784,-172.80,9.60,1.00,0.00,1.00 +785,-172.80,4.80,1.00,0.00,1.00 +786,-177.60,0.00,1.00,0.00,1.00 +787,177.60,-0.00,1.00,0.00,1.00 +788,172.80,-4.80,1.00,0.00,1.00 +789,172.80,-9.60,1.00,0.00,1.00 +790,168.00,-9.60,1.00,0.00,1.00 +791,163.20,-14.40,1.00,0.00,1.00 +792,158.40,-19.20,1.00,0.00,1.00 +793,158.40,-19.20,1.00,0.00,1.00 +794,153.60,-24.00,1.00,0.00,1.00 +795,148.80,-28.80,1.00,0.00,1.00 +796,144.00,-28.80,1.00,0.00,1.00 +797,139.20,-33.60,1.00,0.00,1.00 +798,134.40,-33.60,1.00,0.00,1.00 +799,129.60,-38.40,1.00,0.00,1.00 +800,124.80,-38.40,1.00,0.00,1.00 +801,115.20,-38.40,1.00,0.00,1.00 +802,110.40,-43.20,1.00,0.00,1.00 +803,105.60,-43.20,1.00,0.00,1.00 +804,96.00,-43.20,1.00,0.00,1.00 +805,91.20,-43.20,1.00,0.00,1.00 +806,86.40,-43.20,1.00,0.00,1.00 +807,76.80,-43.20,1.00,0.00,1.00 +808,72.00,-43.20,1.00,0.00,1.00 +809,67.20,-38.40,1.00,0.00,1.00 +810,62.40,-38.40,1.00,0.00,1.00 +811,52.80,-38.40,1.00,0.00,1.00 +812,48.00,-33.60,1.00,0.00,1.00 +813,43.20,-33.60,1.00,0.00,1.00 +814,38.40,-28.80,1.00,0.00,1.00 +815,33.60,-28.80,1.00,0.00,1.00 +816,28.80,-24.00,1.00,0.00,1.00 +817,24.00,-24.00,1.00,0.00,1.00 +818,24.00,-19.20,1.00,0.00,1.00 +819,19.20,-14.40,1.00,0.00,1.00 +820,14.40,-14.40,1.00,0.00,1.00 +821,9.60,-9.60,1.00,0.00,1.00 +822,4.80,-4.80,1.00,0.00,1.00 +823,4.80,-4.80,1.00,0.00,1.00 +824,0.00,0.00,1.00,0.00,1.00 +825,-4.80,4.80,1.00,0.00,1.00 +826,-9.60,4.80,1.00,0.00,1.00 +827,-9.60,9.60,1.00,0.00,1.00 +828,-14.40,9.60,1.00,0.00,1.00 +829,-19.20,14.40,1.00,0.00,1.00 +830,-24.00,19.20,1.00,0.00,1.00 +831,-28.80,19.20,1.00,0.00,1.00 +832,-33.60,24.00,1.00,0.00,1.00 +833,-38.40,24.00,1.00,0.00,1.00 +834,-43.20,28.80,1.00,0.00,1.00 +835,-48.00,28.80,1.00,0.00,1.00 +836,-52.80,33.60,1.00,0.00,1.00 +837,-57.60,33.60,1.00,0.00,1.00 +838,-62.40,33.60,1.00,0.00,1.00 +839,-67.20,38.40,1.00,0.00,1.00 +840,-72.00,38.40,1.00,0.00,1.00 +841,-81.60,38.40,1.00,0.00,1.00 +842,-86.40,38.40,1.00,0.00,1.00 +843,-91.20,38.40,1.00,0.00,1.00 +844,-96.00,38.40,1.00,0.00,1.00 +845,-105.60,38.40,1.00,0.00,1.00 +846,-110.40,38.40,1.00,0.00,1.00 +847,-115.20,33.60,1.00,0.00,1.00 +848,-120.00,33.60,1.00,0.00,1.00 +849,-124.80,33.60,1.00,0.00,1.00 +850,-129.60,28.80,1.00,0.00,1.00 +851,-134.40,28.80,1.00,0.00,1.00 +852,-139.20,24.00,1.00,0.00,1.00 +853,-144.00,24.00,1.00,0.00,1.00 +854,-148.80,19.20,1.00,0.00,1.00 +855,-153.60,19.20,1.00,0.00,1.00 +856,-158.40,14.40,1.00,0.00,1.00 +857,-163.20,14.40,1.00,0.00,1.00 +858,-168.00,9.60,1.00,0.00,1.00 +859,-172.80,9.60,1.00,0.00,1.00 +860,-172.80,4.80,1.00,0.00,1.00 +861,-177.60,0.00,1.00,0.00,1.00 +862,177.60,-0.00,1.00,0.00,1.00 +863,172.80,-4.80,1.00,0.00,1.00 +864,172.80,-9.60,1.00,0.00,1.00 +865,168.00,-9.60,1.00,0.00,1.00 +866,163.20,-14.40,1.00,0.00,1.00 +867,158.40,-14.40,1.00,0.00,1.00 +868,153.60,-19.20,1.00,0.00,1.00 +869,148.80,-19.20,1.00,0.00,1.00 +870,144.00,-24.00,1.00,0.00,1.00 +871,139.20,-24.00,1.00,0.00,1.00 +872,134.40,-28.80,1.00,0.00,1.00 +873,129.60,-28.80,1.00,0.00,1.00 +874,124.80,-33.60,1.00,0.00,1.00 +875,120.00,-33.60,1.00,0.00,1.00 +876,115.20,-33.60,1.00,0.00,1.00 +877,110.40,-38.40,1.00,0.00,1.00 +878,105.60,-38.40,1.00,0.00,1.00 +879,96.00,-38.40,1.00,0.00,1.00 +880,91.20,-38.40,1.00,0.00,1.00 +881,86.40,-38.40,1.00,0.00,1.00 +882,81.60,-38.40,1.00,0.00,1.00 +883,72.00,-38.40,1.00,0.00,1.00 +884,67.20,-38.40,1.00,0.00,1.00 +885,62.40,-33.60,1.00,0.00,1.00 +886,57.60,-33.60,1.00,0.00,1.00 +887,52.80,-33.60,1.00,0.00,1.00 +888,48.00,-28.80,1.00,0.00,1.00 +889,43.20,-28.80,1.00,0.00,1.00 +890,38.40,-24.00,1.00,0.00,1.00 +891,33.60,-24.00,1.00,0.00,1.00 +892,28.80,-19.20,1.00,0.00,1.00 +893,24.00,-19.20,1.00,0.00,1.00 +894,19.20,-14.40,1.00,0.00,1.00 +895,14.40,-9.60,1.00,0.00,1.00 +896,9.60,-9.60,1.00,0.00,1.00 +897,9.60,-4.80,1.00,0.00,1.00 +898,4.80,-4.80,1.00,0.00,1.00 +899,0.00,0.00,1.00,0.00,1.00 +900,-4.80,4.80,1.00,0.00,1.00 +901,-9.60,4.80,1.00,0.00,1.00 +902,-14.40,9.60,1.00,0.00,1.00 +903,-14.40,9.60,1.00,0.00,1.00 +904,-19.20,14.40,1.00,0.00,1.00 +905,-24.00,14.40,1.00,0.00,1.00 +906,-28.80,19.20,1.00,0.00,1.00 +907,-33.60,19.20,1.00,0.00,1.00 +908,-38.40,24.00,1.00,0.00,1.00 +909,-43.20,24.00,1.00,0.00,1.00 +910,-48.00,24.00,1.00,0.00,1.00 +911,-52.80,28.80,1.00,0.00,1.00 +912,-57.60,28.80,1.00,0.00,1.00 +913,-62.40,28.80,1.00,0.00,1.00 +914,-67.20,33.60,1.00,0.00,1.00 +915,-72.00,33.60,1.00,0.00,1.00 +916,-81.60,33.60,1.00,0.00,1.00 +917,-86.40,33.60,1.00,0.00,1.00 +918,-91.20,33.60,1.00,0.00,1.00 +919,-96.00,33.60,1.00,0.00,1.00 +920,-100.80,33.60,1.00,0.00,1.00 +921,-110.40,33.60,1.00,0.00,1.00 +922,-115.20,33.60,1.00,0.00,1.00 +923,-120.00,28.80,1.00,0.00,1.00 +924,-124.80,28.80,1.00,0.00,1.00 +925,-129.60,28.80,1.00,0.00,1.00 +926,-134.40,24.00,1.00,0.00,1.00 +927,-139.20,24.00,1.00,0.00,1.00 +928,-144.00,19.20,1.00,0.00,1.00 +929,-148.80,19.20,1.00,0.00,1.00 +930,-153.60,14.40,1.00,0.00,1.00 +931,-158.40,14.40,1.00,0.00,1.00 +932,-163.20,9.60,1.00,0.00,1.00 +933,-168.00,9.60,1.00,0.00,1.00 +934,-168.00,4.80,1.00,0.00,1.00 +935,-172.80,4.80,1.00,0.00,1.00 +936,-177.60,0.00,1.00,0.00,1.00 +937,177.60,-0.00,1.00,0.00,1.00 +938,172.80,-4.80,1.00,0.00,1.00 +939,168.00,-4.80,1.00,0.00,1.00 +940,168.00,-9.60,1.00,0.00,1.00 +941,163.20,-9.60,1.00,0.00,1.00 +942,158.40,-14.40,1.00,0.00,1.00 +943,153.60,-14.40,1.00,0.00,1.00 +944,148.80,-19.20,1.00,0.00,1.00 +945,144.00,-19.20,1.00,0.00,1.00 +946,139.20,-24.00,1.00,0.00,1.00 +947,134.40,-24.00,1.00,0.00,1.00 +948,129.60,-28.80,1.00,0.00,1.00 +949,124.80,-28.80,1.00,0.00,1.00 +950,120.00,-28.80,1.00,0.00,1.00 +951,115.20,-33.60,1.00,0.00,1.00 +952,110.40,-33.60,1.00,0.00,1.00 +953,100.80,-33.60,1.00,0.00,1.00 +954,96.00,-33.60,1.00,0.00,1.00 +955,91.20,-33.60,1.00,0.00,1.00 +956,86.40,-33.60,1.00,0.00,1.00 +957,81.60,-33.60,1.00,0.00,1.00 +958,72.00,-33.60,1.00,0.00,1.00 +959,67.20,-33.60,1.00,0.00,1.00 +960,62.40,-28.80,1.00,0.00,1.00 +961,57.60,-28.80,1.00,0.00,1.00 +962,52.80,-28.80,1.00,0.00,1.00 +963,48.00,-24.00,1.00,0.00,1.00 +964,43.20,-24.00,1.00,0.00,1.00 +965,38.40,-24.00,1.00,0.00,1.00 +966,33.60,-19.20,1.00,0.00,1.00 +967,28.80,-19.20,1.00,0.00,1.00 +968,24.00,-14.40,1.00,0.00,1.00 +969,19.20,-14.40,1.00,0.00,1.00 +970,14.40,-9.60,1.00,0.00,1.00 +971,14.40,-9.60,1.00,0.00,1.00 +972,9.60,-4.80,1.00,0.00,1.00 +973,4.80,-4.80,1.00,0.00,1.00 +974,0.00,0.00,1.00,0.00,1.00 +975,-4.80,0.00,1.00,0.00,1.00 +976,-9.60,4.80,1.00,0.00,1.00 +977,-14.40,4.80,1.00,0.00,1.00 +978,-19.20,9.60,1.00,0.00,1.00 +979,-19.20,9.60,1.00,0.00,1.00 +980,-24.00,14.40,1.00,0.00,1.00 +981,-28.80,14.40,1.00,0.00,1.00 +982,-33.60,19.20,1.00,0.00,1.00 +983,-38.40,19.20,1.00,0.00,1.00 +984,-43.20,19.20,1.00,0.00,1.00 +985,-48.00,24.00,1.00,0.00,1.00 +986,-52.80,24.00,1.00,0.00,1.00 +987,-57.60,24.00,1.00,0.00,1.00 +988,-62.40,24.00,1.00,0.00,1.00 +989,-72.00,28.80,1.00,0.00,1.00 +990,-76.80,28.80,1.00,0.00,1.00 +991,-81.60,28.80,1.00,0.00,1.00 +992,-86.40,28.80,1.00,0.00,1.00 +993,-91.20,28.80,1.00,0.00,1.00 +994,-96.00,28.80,1.00,0.00,1.00 +995,-100.80,28.80,1.00,0.00,1.00 +996,-105.60,28.80,1.00,0.00,1.00 +997,-115.20,28.80,1.00,0.00,1.00 +998,-120.00,24.00,1.00,0.00,1.00 +999,-124.80,24.00,1.00,0.00,1.00 +1000,-129.60,24.00,1.00,0.00,1.00 +1001,-134.40,24.00,1.00,0.00,1.00 +1002,-139.20,19.20,1.00,0.00,1.00 +1003,-144.00,19.20,1.00,0.00,1.00 +1004,-148.80,14.40,1.00,0.00,1.00 +1005,-153.60,14.40,1.00,0.00,1.00 +1006,-158.40,14.40,1.00,0.00,1.00 +1007,-163.20,9.60,1.00,0.00,1.00 +1008,-163.20,9.60,1.00,0.00,1.00 +1009,-168.00,4.80,1.00,0.00,1.00 +1010,-172.80,4.80,1.00,0.00,1.00 +1011,-177.60,0.00,1.00,0.00,1.00 +1012,177.60,-0.00,1.00,0.00,1.00 +1013,172.80,-4.80,1.00,0.00,1.00 +1014,168.00,-4.80,1.00,0.00,1.00 +1015,163.20,-9.60,1.00,0.00,1.00 +1016,163.20,-9.60,1.00,0.00,1.00 +1017,158.40,-14.40,1.00,0.00,1.00 +1018,153.60,-14.40,1.00,0.00,1.00 +1019,148.80,-14.40,1.00,0.00,1.00 +1020,144.00,-19.20,1.00,0.00,1.00 +1021,139.20,-19.20,1.00,0.00,1.00 +1022,134.40,-24.00,1.00,0.00,1.00 +1023,129.60,-24.00,1.00,0.00,1.00 +1024,124.80,-24.00,1.00,0.00,1.00 +1025,120.00,-24.00,1.00,0.00,1.00 +1026,115.20,-28.80,1.00,0.00,1.00 +1027,105.60,-28.80,1.00,0.00,1.00 +1028,100.80,-28.80,1.00,0.00,1.00 +1029,96.00,-28.80,1.00,0.00,1.00 +1030,91.20,-28.80,1.00,0.00,1.00 +1031,86.40,-28.80,1.00,0.00,1.00 +1032,81.60,-28.80,1.00,0.00,1.00 +1033,76.80,-28.80,1.00,0.00,1.00 +1034,72.00,-28.80,1.00,0.00,1.00 +1035,62.40,-24.00,1.00,0.00,1.00 +1036,57.60,-24.00,1.00,0.00,1.00 +1037,52.80,-24.00,1.00,0.00,1.00 +1038,48.00,-24.00,1.00,0.00,1.00 +1039,43.20,-19.20,1.00,0.00,1.00 +1040,38.40,-19.20,1.00,0.00,1.00 +1041,33.60,-19.20,1.00,0.00,1.00 +1042,28.80,-14.40,1.00,0.00,1.00 +1043,24.00,-14.40,1.00,0.00,1.00 +1044,19.20,-9.60,1.00,0.00,1.00 +1045,19.20,-9.60,1.00,0.00,1.00 +1046,14.40,-4.80,1.00,0.00,1.00 +1047,9.60,-4.80,1.00,0.00,1.00 +1048,4.80,-0.00,1.00,0.00,1.00 +1049,0.00,0.00,1.00,0.00,1.00 +1050,-4.80,0.00,1.00,0.00,1.00 +1051,-9.60,4.80,1.00,0.00,1.00 +1052,-14.40,4.80,1.00,0.00,1.00 +1053,-19.20,9.60,1.00,0.00,1.00 +1054,-24.00,9.60,1.00,0.00,1.00 +1055,-28.80,9.60,1.00,0.00,1.00 +1056,-33.60,14.40,1.00,0.00,1.00 +1057,-33.60,14.40,1.00,0.00,1.00 +1058,-38.40,14.40,1.00,0.00,1.00 +1059,-43.20,19.20,1.00,0.00,1.00 +1060,-48.00,19.20,1.00,0.00,1.00 +1061,-57.60,19.20,1.00,0.00,1.00 +1062,-62.40,19.20,1.00,0.00,1.00 +1063,-67.20,24.00,1.00,0.00,1.00 +1064,-72.00,24.00,1.00,0.00,1.00 +1065,-76.80,24.00,1.00,0.00,1.00 +1066,-81.60,24.00,1.00,0.00,1.00 +1067,-86.40,24.00,1.00,0.00,1.00 +1068,-91.20,24.00,1.00,0.00,1.00 +1069,-96.00,24.00,1.00,0.00,1.00 +1070,-100.80,24.00,1.00,0.00,1.00 +1071,-105.60,24.00,1.00,0.00,1.00 +1072,-110.40,24.00,1.00,0.00,1.00 +1073,-115.20,19.20,1.00,0.00,1.00 +1074,-120.00,19.20,1.00,0.00,1.00 +1075,-129.60,19.20,1.00,0.00,1.00 +1076,-134.40,19.20,1.00,0.00,1.00 +1077,-139.20,19.20,1.00,0.00,1.00 +1078,-144.00,14.40,1.00,0.00,1.00 +1079,-148.80,14.40,1.00,0.00,1.00 +1080,-148.80,14.40,1.00,0.00,1.00 +1081,-153.60,9.60,1.00,0.00,1.00 +1082,-158.40,9.60,1.00,0.00,1.00 +1083,-163.20,4.80,1.00,0.00,1.00 +1084,-168.00,4.80,1.00,0.00,1.00 +1085,-172.80,4.80,1.00,0.00,1.00 +1086,-177.60,0.00,1.00,0.00,1.00 +1087,177.60,-0.00,1.00,0.00,1.00 +1088,172.80,-4.80,1.00,0.00,1.00 +1089,168.00,-4.80,1.00,0.00,1.00 +1090,163.20,-4.80,1.00,0.00,1.00 +1091,158.40,-9.60,1.00,0.00,1.00 +1092,153.60,-9.60,1.00,0.00,1.00 +1093,148.80,-14.40,1.00,0.00,1.00 +1094,148.80,-14.40,1.00,0.00,1.00 +1095,144.00,-14.40,1.00,0.00,1.00 +1096,139.20,-19.20,1.00,0.00,1.00 +1097,134.40,-19.20,1.00,0.00,1.00 +1098,129.60,-19.20,1.00,0.00,1.00 +1099,120.00,-19.20,1.00,0.00,1.00 +1100,115.20,-19.20,1.00,0.00,1.00 +1101,110.40,-24.00,1.00,0.00,1.00 +1102,105.60,-24.00,1.00,0.00,1.00 +1103,100.80,-24.00,1.00,0.00,1.00 +1104,96.00,-24.00,1.00,0.00,1.00 +1105,91.20,-24.00,1.00,0.00,1.00 +1106,86.40,-24.00,1.00,0.00,1.00 +1107,81.60,-24.00,1.00,0.00,1.00 +1108,76.80,-24.00,1.00,0.00,1.00 +1109,72.00,-24.00,1.00,0.00,1.00 +1110,67.20,-24.00,1.00,0.00,1.00 +1111,62.40,-19.20,1.00,0.00,1.00 +1112,57.60,-19.20,1.00,0.00,1.00 +1113,48.00,-19.20,1.00,0.00,1.00 +1114,43.20,-19.20,1.00,0.00,1.00 +1115,38.40,-14.40,1.00,0.00,1.00 +1116,33.60,-14.40,1.00,0.00,1.00 +1117,33.60,-14.40,1.00,0.00,1.00 +1118,28.80,-9.60,1.00,0.00,1.00 +1119,24.00,-9.60,1.00,0.00,1.00 +1120,19.20,-9.60,1.00,0.00,1.00 +1121,14.40,-4.80,1.00,0.00,1.00 +1122,9.60,-4.80,1.00,0.00,1.00 +1123,4.80,-0.00,1.00,0.00,1.00 +1124,0.00,0.00,1.00,0.00,1.00 +1125,-4.80,0.00,1.00,0.00,1.00 +1126,-9.60,4.80,1.00,0.00,1.00 +1127,-14.40,4.80,1.00,0.00,1.00 +1128,-19.20,4.80,1.00,0.00,1.00 +1129,-24.00,9.60,1.00,0.00,1.00 +1130,-28.80,9.60,1.00,0.00,1.00 +1131,-33.60,9.60,1.00,0.00,1.00 +1132,-38.40,9.60,1.00,0.00,1.00 +1133,-43.20,14.40,1.00,0.00,1.00 +1134,-48.00,14.40,1.00,0.00,1.00 +1135,-52.80,14.40,1.00,0.00,1.00 +1136,-57.60,14.40,1.00,0.00,1.00 +1137,-62.40,19.20,1.00,0.00,1.00 +1138,-67.20,19.20,1.00,0.00,1.00 +1139,-72.00,19.20,1.00,0.00,1.00 +1140,-76.80,19.20,1.00,0.00,1.00 +1141,-81.60,19.20,1.00,0.00,1.00 +1142,-86.40,19.20,1.00,0.00,1.00 +1143,-91.20,19.20,1.00,0.00,1.00 +1144,-96.00,19.20,1.00,0.00,1.00 +1145,-100.80,19.20,1.00,0.00,1.00 +1146,-105.60,19.20,1.00,0.00,1.00 +1147,-110.40,19.20,1.00,0.00,1.00 +1148,-115.20,19.20,1.00,0.00,1.00 +1149,-120.00,14.40,1.00,0.00,1.00 +1150,-124.80,14.40,1.00,0.00,1.00 +1151,-129.60,14.40,1.00,0.00,1.00 +1152,-134.40,14.40,1.00,0.00,1.00 +1153,-139.20,14.40,1.00,0.00,1.00 +1154,-144.00,9.60,1.00,0.00,1.00 +1155,-148.80,9.60,1.00,0.00,1.00 +1156,-153.60,9.60,1.00,0.00,1.00 +1157,-158.40,4.80,1.00,0.00,1.00 +1158,-163.20,4.80,1.00,0.00,1.00 +1159,-168.00,4.80,1.00,0.00,1.00 +1160,-172.80,0.00,1.00,0.00,1.00 +1161,-177.60,0.00,1.00,0.00,1.00 +1162,177.60,-0.00,1.00,0.00,1.00 +1163,172.80,-0.00,1.00,0.00,1.00 +1164,168.00,-4.80,1.00,0.00,1.00 +1165,163.20,-4.80,1.00,0.00,1.00 +1166,158.40,-4.80,1.00,0.00,1.00 +1167,153.60,-9.60,1.00,0.00,1.00 +1168,148.80,-9.60,1.00,0.00,1.00 +1169,144.00,-9.60,1.00,0.00,1.00 +1170,139.20,-14.40,1.00,0.00,1.00 +1171,134.40,-14.40,1.00,0.00,1.00 +1172,129.60,-14.40,1.00,0.00,1.00 +1173,124.80,-14.40,1.00,0.00,1.00 +1174,120.00,-14.40,1.00,0.00,1.00 +1175,115.20,-19.20,1.00,0.00,1.00 +1176,110.40,-19.20,1.00,0.00,1.00 +1177,105.60,-19.20,1.00,0.00,1.00 +1178,100.80,-19.20,1.00,0.00,1.00 +1179,96.00,-19.20,1.00,0.00,1.00 +1180,91.20,-19.20,1.00,0.00,1.00 +1181,86.40,-19.20,1.00,0.00,1.00 +1182,81.60,-19.20,1.00,0.00,1.00 +1183,76.80,-19.20,1.00,0.00,1.00 +1184,72.00,-19.20,1.00,0.00,1.00 +1185,67.20,-19.20,1.00,0.00,1.00 +1186,62.40,-19.20,1.00,0.00,1.00 +1187,57.60,-14.40,1.00,0.00,1.00 +1188,52.80,-14.40,1.00,0.00,1.00 +1189,48.00,-14.40,1.00,0.00,1.00 +1190,43.20,-14.40,1.00,0.00,1.00 +1191,38.40,-9.60,1.00,0.00,1.00 +1192,33.60,-9.60,1.00,0.00,1.00 +1193,28.80,-9.60,1.00,0.00,1.00 +1194,24.00,-9.60,1.00,0.00,1.00 +1195,19.20,-4.80,1.00,0.00,1.00 +1196,14.40,-4.80,1.00,0.00,1.00 +1197,9.60,-4.80,1.00,0.00,1.00 +1198,4.80,-0.00,1.00,0.00,1.00 +1199,0.00,0.00,1.00,0.00,1.00 +1200,-4.80,0.00,1.00,0.00,1.00 +1201,-9.60,0.00,1.00,0.00,1.00 +1202,-14.40,4.80,1.00,0.00,1.00 +1203,-19.20,4.80,1.00,0.00,1.00 +1204,-24.00,4.80,1.00,0.00,1.00 +1205,-28.80,4.80,1.00,0.00,1.00 +1206,-33.60,9.60,1.00,0.00,1.00 +1207,-38.40,9.60,1.00,0.00,1.00 +1208,-43.20,9.60,1.00,0.00,1.00 +1209,-48.00,9.60,1.00,0.00,1.00 +1210,-52.80,9.60,1.00,0.00,1.00 +1211,-57.60,14.40,1.00,0.00,1.00 +1212,-62.40,14.40,1.00,0.00,1.00 +1213,-67.20,14.40,1.00,0.00,1.00 +1214,-72.00,14.40,1.00,0.00,1.00 +1215,-76.80,14.40,1.00,0.00,1.00 +1216,-81.60,14.40,1.00,0.00,1.00 +1217,-86.40,14.40,1.00,0.00,1.00 +1218,-91.20,14.40,1.00,0.00,1.00 +1219,-96.00,14.40,1.00,0.00,1.00 +1220,-100.80,14.40,1.00,0.00,1.00 +1221,-105.60,14.40,1.00,0.00,1.00 +1222,-110.40,14.40,1.00,0.00,1.00 +1223,-115.20,14.40,1.00,0.00,1.00 +1224,-120.00,14.40,1.00,0.00,1.00 +1225,-124.80,9.60,1.00,0.00,1.00 +1226,-129.60,9.60,1.00,0.00,1.00 +1227,-134.40,9.60,1.00,0.00,1.00 +1228,-139.20,9.60,1.00,0.00,1.00 +1229,-144.00,9.60,1.00,0.00,1.00 +1230,-148.80,9.60,1.00,0.00,1.00 +1231,-153.60,4.80,1.00,0.00,1.00 +1232,-158.40,4.80,1.00,0.00,1.00 +1233,-163.20,4.80,1.00,0.00,1.00 +1234,-168.00,4.80,1.00,0.00,1.00 +1235,-172.80,0.00,1.00,0.00,1.00 +1236,-177.60,0.00,1.00,0.00,1.00 +1237,177.60,-0.00,1.00,0.00,1.00 +1238,172.80,-0.00,1.00,0.00,1.00 +1239,168.00,-4.80,1.00,0.00,1.00 +1240,163.20,-4.80,1.00,0.00,1.00 +1241,158.40,-4.80,1.00,0.00,1.00 +1242,153.60,-4.80,1.00,0.00,1.00 +1243,148.80,-9.60,1.00,0.00,1.00 +1244,144.00,-9.60,1.00,0.00,1.00 +1245,139.20,-9.60,1.00,0.00,1.00 +1246,134.40,-9.60,1.00,0.00,1.00 +1247,129.60,-9.60,1.00,0.00,1.00 +1248,124.80,-9.60,1.00,0.00,1.00 +1249,120.00,-14.40,1.00,0.00,1.00 +1250,115.20,-14.40,1.00,0.00,1.00 +1251,110.40,-14.40,1.00,0.00,1.00 +1252,105.60,-14.40,1.00,0.00,1.00 +1253,100.80,-14.40,1.00,0.00,1.00 +1254,96.00,-14.40,1.00,0.00,1.00 +1255,91.20,-14.40,1.00,0.00,1.00 +1256,86.40,-14.40,1.00,0.00,1.00 +1257,81.60,-14.40,1.00,0.00,1.00 +1258,76.80,-14.40,1.00,0.00,1.00 +1259,72.00,-14.40,1.00,0.00,1.00 +1260,67.20,-14.40,1.00,0.00,1.00 +1261,62.40,-14.40,1.00,0.00,1.00 +1262,57.60,-14.40,1.00,0.00,1.00 +1263,52.80,-9.60,1.00,0.00,1.00 +1264,48.00,-9.60,1.00,0.00,1.00 +1265,43.20,-9.60,1.00,0.00,1.00 +1266,38.40,-9.60,1.00,0.00,1.00 +1267,33.60,-9.60,1.00,0.00,1.00 +1268,28.80,-4.80,1.00,0.00,1.00 +1269,24.00,-4.80,1.00,0.00,1.00 +1270,19.20,-4.80,1.00,0.00,1.00 +1271,14.40,-4.80,1.00,0.00,1.00 +1272,9.60,-0.00,1.00,0.00,1.00 +1273,4.80,-0.00,1.00,0.00,1.00 +1274,0.00,0.00,1.00,0.00,1.00 +1275,-4.80,0.00,1.00,0.00,1.00 +1276,-9.60,0.00,1.00,0.00,1.00 +1277,-14.40,0.00,1.00,0.00,1.00 +1278,-19.20,4.80,1.00,0.00,1.00 +1279,-24.00,4.80,1.00,0.00,1.00 +1280,-28.80,4.80,1.00,0.00,1.00 +1281,-33.60,4.80,1.00,0.00,1.00 +1282,-38.40,4.80,1.00,0.00,1.00 +1283,-43.20,4.80,1.00,0.00,1.00 +1284,-48.00,4.80,1.00,0.00,1.00 +1285,-52.80,9.60,1.00,0.00,1.00 +1286,-57.60,9.60,1.00,0.00,1.00 +1287,-62.40,9.60,1.00,0.00,1.00 +1288,-67.20,9.60,1.00,0.00,1.00 +1289,-72.00,9.60,1.00,0.00,1.00 +1290,-76.80,9.60,1.00,0.00,1.00 +1291,-81.60,9.60,1.00,0.00,1.00 +1292,-86.40,9.60,1.00,0.00,1.00 +1293,-91.20,9.60,1.00,0.00,1.00 +1294,-96.00,9.60,1.00,0.00,1.00 +1295,-100.80,9.60,1.00,0.00,1.00 +1296,-105.60,9.60,1.00,0.00,1.00 +1297,-110.40,9.60,1.00,0.00,1.00 +1298,-115.20,9.60,1.00,0.00,1.00 +1299,-120.00,9.60,1.00,0.00,1.00 +1300,-124.80,9.60,1.00,0.00,1.00 +1301,-129.60,9.60,1.00,0.00,1.00 +1302,-134.40,4.80,1.00,0.00,1.00 +1303,-139.20,4.80,1.00,0.00,1.00 +1304,-144.00,4.80,1.00,0.00,1.00 +1305,-148.80,4.80,1.00,0.00,1.00 +1306,-153.60,4.80,1.00,0.00,1.00 +1307,-158.40,4.80,1.00,0.00,1.00 +1308,-163.20,4.80,1.00,0.00,1.00 +1309,-168.00,0.00,1.00,0.00,1.00 +1310,-172.80,0.00,1.00,0.00,1.00 +1311,-177.60,0.00,1.00,0.00,1.00 +1312,177.60,-0.00,1.00,0.00,1.00 +1313,172.80,-0.00,1.00,0.00,1.00 +1314,168.00,-0.00,1.00,0.00,1.00 +1315,163.20,-4.80,1.00,0.00,1.00 +1316,158.40,-4.80,1.00,0.00,1.00 +1317,153.60,-4.80,1.00,0.00,1.00 +1318,148.80,-4.80,1.00,0.00,1.00 +1319,144.00,-4.80,1.00,0.00,1.00 +1320,139.20,-4.80,1.00,0.00,1.00 +1321,134.40,-4.80,1.00,0.00,1.00 +1322,129.60,-9.60,1.00,0.00,1.00 +1323,124.80,-9.60,1.00,0.00,1.00 +1324,120.00,-9.60,1.00,0.00,1.00 +1325,115.20,-9.60,1.00,0.00,1.00 +1326,110.40,-9.60,1.00,0.00,1.00 +1327,105.60,-9.60,1.00,0.00,1.00 +1328,100.80,-9.60,1.00,0.00,1.00 +1329,96.00,-9.60,1.00,0.00,1.00 +1330,91.20,-9.60,1.00,0.00,1.00 +1331,86.40,-9.60,1.00,0.00,1.00 +1332,81.60,-9.60,1.00,0.00,1.00 +1333,76.80,-9.60,1.00,0.00,1.00 +1334,72.00,-9.60,1.00,0.00,1.00 +1335,67.20,-9.60,1.00,0.00,1.00 +1336,62.40,-9.60,1.00,0.00,1.00 +1337,57.60,-9.60,1.00,0.00,1.00 +1338,52.80,-9.60,1.00,0.00,1.00 +1339,48.00,-4.80,1.00,0.00,1.00 +1340,43.20,-4.80,1.00,0.00,1.00 +1341,38.40,-4.80,1.00,0.00,1.00 +1342,33.60,-4.80,1.00,0.00,1.00 +1343,28.80,-4.80,1.00,0.00,1.00 +1344,24.00,-4.80,1.00,0.00,1.00 +1345,19.20,-4.80,1.00,0.00,1.00 +1346,14.40,-0.00,1.00,0.00,1.00 +1347,9.60,-0.00,1.00,0.00,1.00 +1348,4.80,-0.00,1.00,0.00,1.00 +1349,0.00,0.00,1.00,0.00,1.00 +1350,-4.80,0.00,1.00,0.00,1.00 +1351,-9.60,0.00,1.00,0.00,1.00 +1352,-14.40,0.00,1.00,0.00,1.00 +1353,-19.20,0.00,1.00,0.00,1.00 +1354,-24.00,0.00,1.00,0.00,1.00 +1355,-28.80,0.00,1.00,0.00,1.00 +1356,-33.60,4.80,1.00,0.00,1.00 +1357,-38.40,4.80,1.00,0.00,1.00 +1358,-43.20,4.80,1.00,0.00,1.00 +1359,-48.00,4.80,1.00,0.00,1.00 +1360,-52.80,4.80,1.00,0.00,1.00 +1361,-57.60,4.80,1.00,0.00,1.00 +1362,-62.40,4.80,1.00,0.00,1.00 +1363,-67.20,4.80,1.00,0.00,1.00 +1364,-72.00,4.80,1.00,0.00,1.00 +1365,-76.80,4.80,1.00,0.00,1.00 +1366,-81.60,4.80,1.00,0.00,1.00 +1367,-86.40,4.80,1.00,0.00,1.00 +1368,-91.20,4.80,1.00,0.00,1.00 +1369,-96.00,4.80,1.00,0.00,1.00 +1370,-100.80,4.80,1.00,0.00,1.00 +1371,-105.60,4.80,1.00,0.00,1.00 +1372,-110.40,4.80,1.00,0.00,1.00 +1373,-115.20,4.80,1.00,0.00,1.00 +1374,-120.00,4.80,1.00,0.00,1.00 +1375,-124.80,4.80,1.00,0.00,1.00 +1376,-129.60,4.80,1.00,0.00,1.00 +1377,-134.40,4.80,1.00,0.00,1.00 +1378,-139.20,4.80,1.00,0.00,1.00 +1379,-144.00,4.80,1.00,0.00,1.00 +1380,-148.80,4.80,1.00,0.00,1.00 +1381,-153.60,0.00,1.00,0.00,1.00 +1382,-158.40,0.00,1.00,0.00,1.00 +1383,-163.20,0.00,1.00,0.00,1.00 +1384,-168.00,0.00,1.00,0.00,1.00 +1385,-172.80,0.00,1.00,0.00,1.00 +1386,-177.60,0.00,1.00,0.00,1.00 +1387,177.60,-0.00,1.00,0.00,1.00 +1388,172.80,-0.00,1.00,0.00,1.00 +1389,168.00,-0.00,1.00,0.00,1.00 +1390,163.20,-0.00,1.00,0.00,1.00 +1391,158.40,-0.00,1.00,0.00,1.00 +1392,153.60,-0.00,1.00,0.00,1.00 +1393,148.80,-4.80,1.00,0.00,1.00 +1394,144.00,-4.80,1.00,0.00,1.00 +1395,139.20,-4.80,1.00,0.00,1.00 +1396,134.40,-4.80,1.00,0.00,1.00 +1397,129.60,-4.80,1.00,0.00,1.00 +1398,124.80,-4.80,1.00,0.00,1.00 +1399,120.00,-4.80,1.00,0.00,1.00 +1400,115.20,-4.80,1.00,0.00,1.00 +1401,110.40,-4.80,1.00,0.00,1.00 +1402,105.60,-4.80,1.00,0.00,1.00 +1403,100.80,-4.80,1.00,0.00,1.00 +1404,96.00,-4.80,1.00,0.00,1.00 +1405,91.20,-4.80,1.00,0.00,1.00 +1406,86.40,-4.80,1.00,0.00,1.00 +1407,81.60,-4.80,1.00,0.00,1.00 +1408,76.80,-4.80,1.00,0.00,1.00 +1409,72.00,-4.80,1.00,0.00,1.00 +1410,67.20,-4.80,1.00,0.00,1.00 +1411,62.40,-4.80,1.00,0.00,1.00 +1412,57.60,-4.80,1.00,0.00,1.00 +1413,52.80,-4.80,1.00,0.00,1.00 +1414,48.00,-4.80,1.00,0.00,1.00 +1415,43.20,-4.80,1.00,0.00,1.00 +1416,38.40,-4.80,1.00,0.00,1.00 +1417,33.60,-4.80,1.00,0.00,1.00 +1418,28.80,-0.00,1.00,0.00,1.00 +1419,24.00,-0.00,1.00,0.00,1.00 +1420,19.20,-0.00,1.00,0.00,1.00 +1421,14.40,-0.00,1.00,0.00,1.00 +1422,9.60,-0.00,1.00,0.00,1.00 +1423,4.80,-0.00,1.00,0.00,1.00 +1424,0.00,0.00,1.00,0.00,1.00 +1425,-4.80,0.00,1.00,0.00,1.00 +1426,-9.60,0.00,1.00,0.00,1.00 +1427,-14.40,0.00,1.00,0.00,1.00 +1428,-19.20,0.00,1.00,0.00,1.00 +1429,-24.00,0.00,1.00,0.00,1.00 +1430,-28.80,0.00,1.00,0.00,1.00 +1431,-33.60,0.00,1.00,0.00,1.00 +1432,-38.40,0.00,1.00,0.00,1.00 +1433,-43.20,0.00,1.00,0.00,1.00 +1434,-48.00,0.00,1.00,0.00,1.00 +1435,-52.80,0.00,1.00,0.00,1.00 +1436,-57.60,0.00,1.00,0.00,1.00 +1437,-62.40,0.00,1.00,0.00,1.00 +1438,-67.20,0.00,1.00,0.00,1.00 +1439,-72.00,0.00,1.00,0.00,1.00 +1440,-76.80,0.00,1.00,0.00,1.00 +1441,-81.60,0.00,1.00,0.00,1.00 +1442,-86.40,0.00,1.00,0.00,1.00 +1443,-91.20,0.00,1.00,0.00,1.00 +1444,-96.00,0.00,1.00,0.00,1.00 +1445,-100.80,0.00,1.00,0.00,1.00 +1446,-105.60,0.00,1.00,0.00,1.00 +1447,-110.40,0.00,1.00,0.00,1.00 +1448,-115.20,0.00,1.00,0.00,1.00 +1449,-120.00,0.00,1.00,0.00,1.00 +1450,-124.80,0.00,1.00,0.00,1.00 +1451,-129.60,0.00,1.00,0.00,1.00 +1452,-134.40,0.00,1.00,0.00,1.00 +1453,-139.20,0.00,1.00,0.00,1.00 +1454,-144.00,0.00,1.00,0.00,1.00 +1455,-148.80,0.00,1.00,0.00,1.00 +1456,-153.60,0.00,1.00,0.00,1.00 +1457,-158.40,0.00,1.00,0.00,1.00 +1458,-163.20,0.00,1.00,0.00,1.00 +1459,-168.00,0.00,1.00,0.00,1.00 +1460,-172.80,0.00,1.00,0.00,1.00 +1461,-177.60,0.00,1.00,0.00,1.00 +1462,177.60,0.00,1.00,0.00,1.00 +1463,172.80,0.00,1.00,0.00,1.00 +1464,168.00,0.00,1.00,0.00,1.00 +1465,163.20,0.00,1.00,0.00,1.00 +1466,158.40,0.00,1.00,0.00,1.00 +1467,153.60,0.00,1.00,0.00,1.00 +1468,148.80,0.00,1.00,0.00,1.00 +1469,144.00,0.00,1.00,0.00,1.00 +1470,139.20,0.00,1.00,0.00,1.00 +1471,134.40,0.00,1.00,0.00,1.00 +1472,129.60,0.00,1.00,0.00,1.00 +1473,124.80,0.00,1.00,0.00,1.00 +1474,120.00,0.00,1.00,0.00,1.00 +1475,115.20,0.00,1.00,0.00,1.00 +1476,110.40,0.00,1.00,0.00,1.00 +1477,105.60,0.00,1.00,0.00,1.00 +1478,100.80,0.00,1.00,0.00,1.00 +1479,96.00,0.00,1.00,0.00,1.00 +1480,91.20,0.00,1.00,0.00,1.00 +1481,86.40,0.00,1.00,0.00,1.00 +1482,81.60,0.00,1.00,0.00,1.00 +1483,76.80,0.00,1.00,0.00,1.00 +1484,72.00,0.00,1.00,0.00,1.00 +1485,67.20,0.00,1.00,0.00,1.00 +1486,62.40,0.00,1.00,0.00,1.00 +1487,57.60,0.00,1.00,0.00,1.00 +1488,52.80,0.00,1.00,0.00,1.00 +1489,48.00,0.00,1.00,0.00,1.00 +1490,43.20,0.00,1.00,0.00,1.00 +1491,38.40,0.00,1.00,0.00,1.00 +1492,33.60,0.00,1.00,0.00,1.00 +1493,28.80,0.00,1.00,0.00,1.00 +1494,24.00,0.00,1.00,0.00,1.00 +1495,19.20,0.00,1.00,0.00,1.00 +1496,14.40,0.00,1.00,0.00,1.00 +1497,9.60,0.00,1.00,0.00,1.00 +1498,4.80,0.00,1.00,0.00,1.00 +1499,0.00,0.00,1.00,0.00,1.00 diff --git a/scripts/tests/data/stvISM3.csv b/scripts/tests/data/stvISM3.csv new file mode 100644 index 0000000000..6b57caab12 --- /dev/null +++ b/scripts/tests/data/stvISM3.csv @@ -0,0 +1,1500 @@ +0,0.00,0.00,1.00,0.00,1.00 +1,-177.60,-4.80,1.00,0.00,1.00 +2,4.80,4.80,1.00,0.00,1.00 +3,-168.00,-9.60,1.00,0.00,1.00 +4,14.40,14.40,1.00,0.00,1.00 +5,-163.20,-14.40,1.00,0.00,1.00 +6,19.20,19.20,1.00,0.00,1.00 +7,-153.60,-24.00,1.00,0.00,1.00 +8,28.80,24.00,1.00,0.00,1.00 +9,-148.80,-28.80,1.00,0.00,1.00 +10,38.40,33.60,1.00,0.00,1.00 +11,-139.20,-33.60,1.00,0.00,1.00 +12,48.00,38.40,1.00,0.00,1.00 +13,-124.80,-38.40,1.00,0.00,1.00 +14,57.60,38.40,1.00,0.00,1.00 +15,-115.20,-43.20,1.00,0.00,1.00 +16,72.00,43.20,1.00,0.00,1.00 +17,-100.80,-43.20,1.00,0.00,1.00 +18,86.40,43.20,1.00,0.00,1.00 +19,-86.40,-43.20,1.00,0.00,1.00 +20,100.80,43.20,1.00,0.00,1.00 +21,-76.80,-43.20,1.00,0.00,1.00 +22,110.40,43.20,1.00,0.00,1.00 +23,-62.40,-43.20,1.00,0.00,1.00 +24,124.80,38.40,1.00,0.00,1.00 +25,-52.80,-38.40,1.00,0.00,1.00 +26,134.40,33.60,1.00,0.00,1.00 +27,-38.40,-33.60,1.00,0.00,1.00 +28,144.00,28.80,1.00,0.00,1.00 +29,-33.60,-28.80,1.00,0.00,1.00 +30,153.60,24.00,1.00,0.00,1.00 +31,-24.00,-19.20,1.00,0.00,1.00 +32,158.40,19.20,1.00,0.00,1.00 +33,-14.40,-14.40,1.00,0.00,1.00 +34,168.00,9.60,1.00,0.00,1.00 +35,-9.60,-9.60,1.00,0.00,1.00 +36,172.80,4.80,1.00,0.00,1.00 +37,-0.00,-0.00,1.00,0.00,1.00 +38,-177.60,-0.00,1.00,0.00,1.00 +39,4.80,4.80,1.00,0.00,1.00 +40,-172.80,-9.60,1.00,0.00,1.00 +41,14.40,9.60,1.00,0.00,1.00 +42,-163.20,-14.40,1.00,0.00,1.00 +43,19.20,19.20,1.00,0.00,1.00 +44,-158.40,-19.20,1.00,0.00,1.00 +45,28.80,24.00,1.00,0.00,1.00 +46,-148.80,-28.80,1.00,0.00,1.00 +47,33.60,28.80,1.00,0.00,1.00 +48,-139.20,-33.60,1.00,0.00,1.00 +49,43.20,33.60,1.00,0.00,1.00 +50,-129.60,-38.40,1.00,0.00,1.00 +51,57.60,38.40,1.00,0.00,1.00 +52,-120.00,-43.20,1.00,0.00,1.00 +53,67.20,43.20,1.00,0.00,1.00 +54,-105.60,-43.20,1.00,0.00,1.00 +55,81.60,43.20,1.00,0.00,1.00 +56,-91.20,-43.20,1.00,0.00,1.00 +57,96.00,43.20,1.00,0.00,1.00 +58,-76.80,-43.20,1.00,0.00,1.00 +59,110.40,43.20,1.00,0.00,1.00 +60,-67.20,-43.20,1.00,0.00,1.00 +61,120.00,38.40,1.00,0.00,1.00 +62,-52.80,-38.40,1.00,0.00,1.00 +63,129.60,38.40,1.00,0.00,1.00 +64,-43.20,-33.60,1.00,0.00,1.00 +65,144.00,33.60,1.00,0.00,1.00 +66,-33.60,-28.80,1.00,0.00,1.00 +67,148.80,24.00,1.00,0.00,1.00 +68,-24.00,-24.00,1.00,0.00,1.00 +69,158.40,19.20,1.00,0.00,1.00 +70,-19.20,-14.40,1.00,0.00,1.00 +71,168.00,14.40,1.00,0.00,1.00 +72,-9.60,-9.60,1.00,0.00,1.00 +73,172.80,4.80,1.00,0.00,1.00 +74,-4.80,-4.80,1.00,0.00,1.00 +75,0.00,0.00,1.00,0.00,1.00 +76,-177.60,-4.80,1.00,0.00,1.00 +77,9.60,4.80,1.00,0.00,1.00 +78,-168.00,-9.60,1.00,0.00,1.00 +79,14.40,14.40,1.00,0.00,1.00 +80,-163.20,-14.40,1.00,0.00,1.00 +81,24.00,19.20,1.00,0.00,1.00 +82,-153.60,-19.20,1.00,0.00,1.00 +83,28.80,24.00,1.00,0.00,1.00 +84,-144.00,-24.00,1.00,0.00,1.00 +85,38.40,28.80,1.00,0.00,1.00 +86,-134.40,-28.80,1.00,0.00,1.00 +87,48.00,33.60,1.00,0.00,1.00 +88,-124.80,-33.60,1.00,0.00,1.00 +89,62.40,38.40,1.00,0.00,1.00 +90,-115.20,-38.40,1.00,0.00,1.00 +91,72.00,38.40,1.00,0.00,1.00 +92,-100.80,-38.40,1.00,0.00,1.00 +93,86.40,38.40,1.00,0.00,1.00 +94,-86.40,-38.40,1.00,0.00,1.00 +95,96.00,38.40,1.00,0.00,1.00 +96,-76.80,-38.40,1.00,0.00,1.00 +97,110.40,38.40,1.00,0.00,1.00 +98,-62.40,-38.40,1.00,0.00,1.00 +99,120.00,33.60,1.00,0.00,1.00 +100,-52.80,-33.60,1.00,0.00,1.00 +101,134.40,33.60,1.00,0.00,1.00 +102,-43.20,-28.80,1.00,0.00,1.00 +103,144.00,28.80,1.00,0.00,1.00 +104,-33.60,-24.00,1.00,0.00,1.00 +105,148.80,24.00,1.00,0.00,1.00 +106,-24.00,-19.20,1.00,0.00,1.00 +107,158.40,14.40,1.00,0.00,1.00 +108,-19.20,-14.40,1.00,0.00,1.00 +109,168.00,9.60,1.00,0.00,1.00 +110,-9.60,-9.60,1.00,0.00,1.00 +111,172.80,4.80,1.00,0.00,1.00 +112,-0.00,-0.00,1.00,0.00,1.00 +113,-177.60,-0.00,1.00,0.00,1.00 +114,4.80,4.80,1.00,0.00,1.00 +115,-172.80,-9.60,1.00,0.00,1.00 +116,14.40,9.60,1.00,0.00,1.00 +117,-163.20,-14.40,1.00,0.00,1.00 +118,19.20,14.40,1.00,0.00,1.00 +119,-153.60,-19.20,1.00,0.00,1.00 +120,28.80,24.00,1.00,0.00,1.00 +121,-148.80,-24.00,1.00,0.00,1.00 +122,38.40,28.80,1.00,0.00,1.00 +123,-139.20,-28.80,1.00,0.00,1.00 +124,48.00,33.60,1.00,0.00,1.00 +125,-124.80,-33.60,1.00,0.00,1.00 +126,57.60,33.60,1.00,0.00,1.00 +127,-115.20,-38.40,1.00,0.00,1.00 +128,72.00,38.40,1.00,0.00,1.00 +129,-105.60,-38.40,1.00,0.00,1.00 +130,81.60,38.40,1.00,0.00,1.00 +131,-91.20,-38.40,1.00,0.00,1.00 +132,96.00,38.40,1.00,0.00,1.00 +133,-76.80,-38.40,1.00,0.00,1.00 +134,105.60,38.40,1.00,0.00,1.00 +135,-67.20,-38.40,1.00,0.00,1.00 +136,120.00,38.40,1.00,0.00,1.00 +137,-57.60,-33.60,1.00,0.00,1.00 +138,129.60,33.60,1.00,0.00,1.00 +139,-43.20,-28.80,1.00,0.00,1.00 +140,139.20,28.80,1.00,0.00,1.00 +141,-33.60,-24.00,1.00,0.00,1.00 +142,148.80,24.00,1.00,0.00,1.00 +143,-28.80,-19.20,1.00,0.00,1.00 +144,158.40,19.20,1.00,0.00,1.00 +145,-19.20,-14.40,1.00,0.00,1.00 +146,163.20,14.40,1.00,0.00,1.00 +147,-9.60,-9.60,1.00,0.00,1.00 +148,172.80,4.80,1.00,0.00,1.00 +149,-4.80,-4.80,1.00,0.00,1.00 +150,0.00,0.00,1.00,0.00,1.00 +151,-177.60,-4.80,1.00,0.00,1.00 +152,9.60,4.80,1.00,0.00,1.00 +153,-168.00,-9.60,1.00,0.00,1.00 +154,14.40,9.60,1.00,0.00,1.00 +155,-158.40,-14.40,1.00,0.00,1.00 +156,24.00,14.40,1.00,0.00,1.00 +157,-153.60,-19.20,1.00,0.00,1.00 +158,33.60,19.20,1.00,0.00,1.00 +159,-144.00,-24.00,1.00,0.00,1.00 +160,43.20,24.00,1.00,0.00,1.00 +161,-134.40,-28.80,1.00,0.00,1.00 +162,52.80,28.80,1.00,0.00,1.00 +163,-124.80,-28.80,1.00,0.00,1.00 +164,62.40,33.60,1.00,0.00,1.00 +165,-110.40,-33.60,1.00,0.00,1.00 +166,72.00,33.60,1.00,0.00,1.00 +167,-100.80,-33.60,1.00,0.00,1.00 +168,86.40,33.60,1.00,0.00,1.00 +169,-86.40,-33.60,1.00,0.00,1.00 +170,96.00,33.60,1.00,0.00,1.00 +171,-76.80,-33.60,1.00,0.00,1.00 +172,110.40,33.60,1.00,0.00,1.00 +173,-67.20,-33.60,1.00,0.00,1.00 +174,120.00,33.60,1.00,0.00,1.00 +175,-52.80,-28.80,1.00,0.00,1.00 +176,129.60,28.80,1.00,0.00,1.00 +177,-43.20,-28.80,1.00,0.00,1.00 +178,139.20,24.00,1.00,0.00,1.00 +179,-33.60,-24.00,1.00,0.00,1.00 +180,148.80,19.20,1.00,0.00,1.00 +181,-24.00,-19.20,1.00,0.00,1.00 +182,158.40,14.40,1.00,0.00,1.00 +183,-19.20,-14.40,1.00,0.00,1.00 +184,168.00,9.60,1.00,0.00,1.00 +185,-9.60,-4.80,1.00,0.00,1.00 +186,172.80,4.80,1.00,0.00,1.00 +187,-0.00,-0.00,1.00,0.00,1.00 +188,-177.60,-0.00,1.00,0.00,1.00 +189,4.80,4.80,1.00,0.00,1.00 +190,-168.00,-4.80,1.00,0.00,1.00 +191,14.40,9.60,1.00,0.00,1.00 +192,-163.20,-14.40,1.00,0.00,1.00 +193,24.00,14.40,1.00,0.00,1.00 +194,-153.60,-19.20,1.00,0.00,1.00 +195,28.80,19.20,1.00,0.00,1.00 +196,-144.00,-24.00,1.00,0.00,1.00 +197,38.40,24.00,1.00,0.00,1.00 +198,-134.40,-28.80,1.00,0.00,1.00 +199,48.00,28.80,1.00,0.00,1.00 +200,-124.80,-28.80,1.00,0.00,1.00 +201,62.40,33.60,1.00,0.00,1.00 +202,-115.20,-33.60,1.00,0.00,1.00 +203,72.00,33.60,1.00,0.00,1.00 +204,-100.80,-33.60,1.00,0.00,1.00 +205,81.60,33.60,1.00,0.00,1.00 +206,-91.20,-33.60,1.00,0.00,1.00 +207,96.00,33.60,1.00,0.00,1.00 +208,-81.60,-33.60,1.00,0.00,1.00 +209,105.60,33.60,1.00,0.00,1.00 +210,-67.20,-33.60,1.00,0.00,1.00 +211,115.20,33.60,1.00,0.00,1.00 +212,-57.60,-28.80,1.00,0.00,1.00 +213,129.60,28.80,1.00,0.00,1.00 +214,-48.00,-28.80,1.00,0.00,1.00 +215,139.20,24.00,1.00,0.00,1.00 +216,-38.40,-24.00,1.00,0.00,1.00 +217,148.80,19.20,1.00,0.00,1.00 +218,-28.80,-19.20,1.00,0.00,1.00 +219,153.60,14.40,1.00,0.00,1.00 +220,-19.20,-14.40,1.00,0.00,1.00 +221,163.20,9.60,1.00,0.00,1.00 +222,-9.60,-9.60,1.00,0.00,1.00 +223,172.80,4.80,1.00,0.00,1.00 +224,-4.80,-4.80,1.00,0.00,1.00 +225,0.00,0.00,1.00,0.00,1.00 +226,-177.60,-4.80,1.00,0.00,1.00 +227,9.60,4.80,1.00,0.00,1.00 +228,-168.00,-9.60,1.00,0.00,1.00 +229,14.40,9.60,1.00,0.00,1.00 +230,-158.40,-9.60,1.00,0.00,1.00 +231,24.00,14.40,1.00,0.00,1.00 +232,-148.80,-14.40,1.00,0.00,1.00 +233,33.60,19.20,1.00,0.00,1.00 +234,-139.20,-19.20,1.00,0.00,1.00 +235,43.20,24.00,1.00,0.00,1.00 +236,-129.60,-24.00,1.00,0.00,1.00 +237,52.80,24.00,1.00,0.00,1.00 +238,-120.00,-28.80,1.00,0.00,1.00 +239,62.40,28.80,1.00,0.00,1.00 +240,-110.40,-28.80,1.00,0.00,1.00 +241,76.80,28.80,1.00,0.00,1.00 +242,-100.80,-28.80,1.00,0.00,1.00 +243,86.40,28.80,1.00,0.00,1.00 +244,-86.40,-28.80,1.00,0.00,1.00 +245,96.00,28.80,1.00,0.00,1.00 +246,-76.80,-28.80,1.00,0.00,1.00 +247,105.60,28.80,1.00,0.00,1.00 +248,-67.20,-28.80,1.00,0.00,1.00 +249,120.00,28.80,1.00,0.00,1.00 +250,-57.60,-24.00,1.00,0.00,1.00 +251,129.60,24.00,1.00,0.00,1.00 +252,-48.00,-24.00,1.00,0.00,1.00 +253,139.20,19.20,1.00,0.00,1.00 +254,-38.40,-19.20,1.00,0.00,1.00 +255,148.80,19.20,1.00,0.00,1.00 +256,-28.80,-14.40,1.00,0.00,1.00 +257,158.40,14.40,1.00,0.00,1.00 +258,-19.20,-9.60,1.00,0.00,1.00 +259,163.20,9.60,1.00,0.00,1.00 +260,-9.60,-4.80,1.00,0.00,1.00 +261,172.80,4.80,1.00,0.00,1.00 +262,-0.00,-0.00,1.00,0.00,1.00 +263,-177.60,-0.00,1.00,0.00,1.00 +264,4.80,4.80,1.00,0.00,1.00 +265,-168.00,-4.80,1.00,0.00,1.00 +266,14.40,9.60,1.00,0.00,1.00 +267,-163.20,-9.60,1.00,0.00,1.00 +268,24.00,14.40,1.00,0.00,1.00 +269,-153.60,-14.40,1.00,0.00,1.00 +270,33.60,19.20,1.00,0.00,1.00 +271,-144.00,-19.20,1.00,0.00,1.00 +272,43.20,19.20,1.00,0.00,1.00 +273,-134.40,-24.00,1.00,0.00,1.00 +274,52.80,24.00,1.00,0.00,1.00 +275,-124.80,-24.00,1.00,0.00,1.00 +276,62.40,28.80,1.00,0.00,1.00 +277,-115.20,-28.80,1.00,0.00,1.00 +278,72.00,28.80,1.00,0.00,1.00 +279,-100.80,-28.80,1.00,0.00,1.00 +280,81.60,28.80,1.00,0.00,1.00 +281,-91.20,-28.80,1.00,0.00,1.00 +282,96.00,28.80,1.00,0.00,1.00 +283,-81.60,-28.80,1.00,0.00,1.00 +284,105.60,28.80,1.00,0.00,1.00 +285,-67.20,-28.80,1.00,0.00,1.00 +286,115.20,28.80,1.00,0.00,1.00 +287,-57.60,-28.80,1.00,0.00,1.00 +288,124.80,24.00,1.00,0.00,1.00 +289,-48.00,-24.00,1.00,0.00,1.00 +290,134.40,24.00,1.00,0.00,1.00 +291,-38.40,-19.20,1.00,0.00,1.00 +292,144.00,19.20,1.00,0.00,1.00 +293,-28.80,-14.40,1.00,0.00,1.00 +294,153.60,14.40,1.00,0.00,1.00 +295,-19.20,-9.60,1.00,0.00,1.00 +296,163.20,9.60,1.00,0.00,1.00 +297,-14.40,-9.60,1.00,0.00,1.00 +298,172.80,4.80,1.00,0.00,1.00 +299,-4.80,-4.80,1.00,0.00,1.00 +300,0.00,0.00,1.00,0.00,1.00 +301,-177.60,-0.00,1.00,0.00,1.00 +302,9.60,4.80,1.00,0.00,1.00 +303,-168.00,-4.80,1.00,0.00,1.00 +304,19.20,9.60,1.00,0.00,1.00 +305,-158.40,-9.60,1.00,0.00,1.00 +306,24.00,14.40,1.00,0.00,1.00 +307,-148.80,-14.40,1.00,0.00,1.00 +308,33.60,14.40,1.00,0.00,1.00 +309,-139.20,-19.20,1.00,0.00,1.00 +310,43.20,19.20,1.00,0.00,1.00 +311,-129.60,-19.20,1.00,0.00,1.00 +312,52.80,19.20,1.00,0.00,1.00 +313,-120.00,-24.00,1.00,0.00,1.00 +314,67.20,24.00,1.00,0.00,1.00 +315,-110.40,-24.00,1.00,0.00,1.00 +316,76.80,24.00,1.00,0.00,1.00 +317,-100.80,-24.00,1.00,0.00,1.00 +318,86.40,24.00,1.00,0.00,1.00 +319,-86.40,-24.00,1.00,0.00,1.00 +320,96.00,24.00,1.00,0.00,1.00 +321,-76.80,-24.00,1.00,0.00,1.00 +322,105.60,24.00,1.00,0.00,1.00 +323,-67.20,-24.00,1.00,0.00,1.00 +324,115.20,24.00,1.00,0.00,1.00 +325,-57.60,-24.00,1.00,0.00,1.00 +326,129.60,19.20,1.00,0.00,1.00 +327,-48.00,-19.20,1.00,0.00,1.00 +328,139.20,19.20,1.00,0.00,1.00 +329,-38.40,-14.40,1.00,0.00,1.00 +330,148.80,14.40,1.00,0.00,1.00 +331,-28.80,-14.40,1.00,0.00,1.00 +332,153.60,9.60,1.00,0.00,1.00 +333,-19.20,-9.60,1.00,0.00,1.00 +334,163.20,9.60,1.00,0.00,1.00 +335,-9.60,-4.80,1.00,0.00,1.00 +336,172.80,4.80,1.00,0.00,1.00 +337,-0.00,-0.00,1.00,0.00,1.00 +338,-177.60,-0.00,1.00,0.00,1.00 +339,4.80,4.80,1.00,0.00,1.00 +340,-168.00,-4.80,1.00,0.00,1.00 +341,14.40,9.60,1.00,0.00,1.00 +342,-158.40,-9.60,1.00,0.00,1.00 +343,24.00,9.60,1.00,0.00,1.00 +344,-153.60,-14.40,1.00,0.00,1.00 +345,33.60,14.40,1.00,0.00,1.00 +346,-144.00,-14.40,1.00,0.00,1.00 +347,43.20,19.20,1.00,0.00,1.00 +348,-134.40,-19.20,1.00,0.00,1.00 +349,52.80,19.20,1.00,0.00,1.00 +350,-124.80,-24.00,1.00,0.00,1.00 +351,62.40,24.00,1.00,0.00,1.00 +352,-110.40,-24.00,1.00,0.00,1.00 +353,72.00,24.00,1.00,0.00,1.00 +354,-100.80,-24.00,1.00,0.00,1.00 +355,81.60,24.00,1.00,0.00,1.00 +356,-91.20,-24.00,1.00,0.00,1.00 +357,96.00,24.00,1.00,0.00,1.00 +358,-81.60,-24.00,1.00,0.00,1.00 +359,105.60,24.00,1.00,0.00,1.00 +360,-72.00,-24.00,1.00,0.00,1.00 +361,115.20,24.00,1.00,0.00,1.00 +362,-57.60,-24.00,1.00,0.00,1.00 +363,124.80,19.20,1.00,0.00,1.00 +364,-48.00,-19.20,1.00,0.00,1.00 +365,134.40,19.20,1.00,0.00,1.00 +366,-38.40,-19.20,1.00,0.00,1.00 +367,144.00,14.40,1.00,0.00,1.00 +368,-28.80,-14.40,1.00,0.00,1.00 +369,153.60,14.40,1.00,0.00,1.00 +370,-24.00,-9.60,1.00,0.00,1.00 +371,163.20,9.60,1.00,0.00,1.00 +372,-14.40,-4.80,1.00,0.00,1.00 +373,172.80,4.80,1.00,0.00,1.00 +374,-4.80,-0.00,1.00,0.00,1.00 +375,0.00,0.00,1.00,0.00,1.00 +376,-177.60,-0.00,1.00,0.00,1.00 +377,9.60,4.80,1.00,0.00,1.00 +378,-168.00,-4.80,1.00,0.00,1.00 +379,19.20,4.80,1.00,0.00,1.00 +380,-158.40,-9.60,1.00,0.00,1.00 +381,28.80,9.60,1.00,0.00,1.00 +382,-148.80,-9.60,1.00,0.00,1.00 +383,38.40,14.40,1.00,0.00,1.00 +384,-139.20,-14.40,1.00,0.00,1.00 +385,48.00,14.40,1.00,0.00,1.00 +386,-129.60,-14.40,1.00,0.00,1.00 +387,57.60,19.20,1.00,0.00,1.00 +388,-120.00,-19.20,1.00,0.00,1.00 +389,67.20,19.20,1.00,0.00,1.00 +390,-110.40,-19.20,1.00,0.00,1.00 +391,76.80,19.20,1.00,0.00,1.00 +392,-100.80,-19.20,1.00,0.00,1.00 +393,86.40,19.20,1.00,0.00,1.00 +394,-86.40,-19.20,1.00,0.00,1.00 +395,96.00,19.20,1.00,0.00,1.00 +396,-76.80,-19.20,1.00,0.00,1.00 +397,105.60,19.20,1.00,0.00,1.00 +398,-67.20,-19.20,1.00,0.00,1.00 +399,115.20,19.20,1.00,0.00,1.00 +400,-57.60,-19.20,1.00,0.00,1.00 +401,124.80,19.20,1.00,0.00,1.00 +402,-48.00,-14.40,1.00,0.00,1.00 +403,134.40,14.40,1.00,0.00,1.00 +404,-38.40,-14.40,1.00,0.00,1.00 +405,144.00,14.40,1.00,0.00,1.00 +406,-28.80,-9.60,1.00,0.00,1.00 +407,153.60,9.60,1.00,0.00,1.00 +408,-19.20,-9.60,1.00,0.00,1.00 +409,163.20,4.80,1.00,0.00,1.00 +410,-9.60,-4.80,1.00,0.00,1.00 +411,172.80,4.80,1.00,0.00,1.00 +412,-0.00,-0.00,1.00,0.00,1.00 +413,-177.60,-0.00,1.00,0.00,1.00 +414,4.80,4.80,1.00,0.00,1.00 +415,-168.00,-4.80,1.00,0.00,1.00 +416,14.40,4.80,1.00,0.00,1.00 +417,-158.40,-9.60,1.00,0.00,1.00 +418,24.00,9.60,1.00,0.00,1.00 +419,-148.80,-9.60,1.00,0.00,1.00 +420,33.60,14.40,1.00,0.00,1.00 +421,-139.20,-14.40,1.00,0.00,1.00 +422,43.20,14.40,1.00,0.00,1.00 +423,-129.60,-14.40,1.00,0.00,1.00 +424,52.80,19.20,1.00,0.00,1.00 +425,-120.00,-19.20,1.00,0.00,1.00 +426,62.40,19.20,1.00,0.00,1.00 +427,-110.40,-19.20,1.00,0.00,1.00 +428,72.00,19.20,1.00,0.00,1.00 +429,-100.80,-19.20,1.00,0.00,1.00 +430,81.60,19.20,1.00,0.00,1.00 +431,-91.20,-19.20,1.00,0.00,1.00 +432,96.00,19.20,1.00,0.00,1.00 +433,-81.60,-19.20,1.00,0.00,1.00 +434,105.60,19.20,1.00,0.00,1.00 +435,-72.00,-19.20,1.00,0.00,1.00 +436,115.20,19.20,1.00,0.00,1.00 +437,-62.40,-19.20,1.00,0.00,1.00 +438,124.80,19.20,1.00,0.00,1.00 +439,-52.80,-14.40,1.00,0.00,1.00 +440,134.40,14.40,1.00,0.00,1.00 +441,-43.20,-14.40,1.00,0.00,1.00 +442,144.00,14.40,1.00,0.00,1.00 +443,-33.60,-9.60,1.00,0.00,1.00 +444,153.60,9.60,1.00,0.00,1.00 +445,-24.00,-9.60,1.00,0.00,1.00 +446,163.20,4.80,1.00,0.00,1.00 +447,-14.40,-4.80,1.00,0.00,1.00 +448,172.80,4.80,1.00,0.00,1.00 +449,-4.80,-0.00,1.00,0.00,1.00 +450,0.00,0.00,1.00,0.00,1.00 +451,-177.60,-0.00,1.00,0.00,1.00 +452,9.60,4.80,1.00,0.00,1.00 +453,-168.00,-4.80,1.00,0.00,1.00 +454,19.20,4.80,1.00,0.00,1.00 +455,-158.40,-4.80,1.00,0.00,1.00 +456,28.80,9.60,1.00,0.00,1.00 +457,-148.80,-9.60,1.00,0.00,1.00 +458,38.40,9.60,1.00,0.00,1.00 +459,-139.20,-9.60,1.00,0.00,1.00 +460,48.00,9.60,1.00,0.00,1.00 +461,-129.60,-14.40,1.00,0.00,1.00 +462,57.60,14.40,1.00,0.00,1.00 +463,-120.00,-14.40,1.00,0.00,1.00 +464,67.20,14.40,1.00,0.00,1.00 +465,-110.40,-14.40,1.00,0.00,1.00 +466,76.80,14.40,1.00,0.00,1.00 +467,-100.80,-14.40,1.00,0.00,1.00 +468,86.40,14.40,1.00,0.00,1.00 +469,-86.40,-14.40,1.00,0.00,1.00 +470,96.00,14.40,1.00,0.00,1.00 +471,-76.80,-14.40,1.00,0.00,1.00 +472,105.60,14.40,1.00,0.00,1.00 +473,-67.20,-14.40,1.00,0.00,1.00 +474,115.20,14.40,1.00,0.00,1.00 +475,-57.60,-14.40,1.00,0.00,1.00 +476,124.80,14.40,1.00,0.00,1.00 +477,-48.00,-14.40,1.00,0.00,1.00 +478,134.40,9.60,1.00,0.00,1.00 +479,-38.40,-9.60,1.00,0.00,1.00 +480,144.00,9.60,1.00,0.00,1.00 +481,-28.80,-9.60,1.00,0.00,1.00 +482,153.60,4.80,1.00,0.00,1.00 +483,-19.20,-4.80,1.00,0.00,1.00 +484,163.20,4.80,1.00,0.00,1.00 +485,-9.60,-4.80,1.00,0.00,1.00 +486,172.80,0.00,1.00,0.00,1.00 +487,-0.00,-0.00,1.00,0.00,1.00 +488,-177.60,-0.00,1.00,0.00,1.00 +489,4.80,0.00,1.00,0.00,1.00 +490,-168.00,-4.80,1.00,0.00,1.00 +491,14.40,4.80,1.00,0.00,1.00 +492,-158.40,-4.80,1.00,0.00,1.00 +493,24.00,4.80,1.00,0.00,1.00 +494,-148.80,-9.60,1.00,0.00,1.00 +495,33.60,9.60,1.00,0.00,1.00 +496,-139.20,-9.60,1.00,0.00,1.00 +497,43.20,9.60,1.00,0.00,1.00 +498,-129.60,-14.40,1.00,0.00,1.00 +499,52.80,14.40,1.00,0.00,1.00 +500,-120.00,-14.40,1.00,0.00,1.00 +501,62.40,14.40,1.00,0.00,1.00 +502,-110.40,-14.40,1.00,0.00,1.00 +503,72.00,14.40,1.00,0.00,1.00 +504,-100.80,-14.40,1.00,0.00,1.00 +505,81.60,14.40,1.00,0.00,1.00 +506,-91.20,-14.40,1.00,0.00,1.00 +507,96.00,14.40,1.00,0.00,1.00 +508,-81.60,-14.40,1.00,0.00,1.00 +509,105.60,14.40,1.00,0.00,1.00 +510,-72.00,-14.40,1.00,0.00,1.00 +511,115.20,14.40,1.00,0.00,1.00 +512,-62.40,-14.40,1.00,0.00,1.00 +513,124.80,14.40,1.00,0.00,1.00 +514,-52.80,-14.40,1.00,0.00,1.00 +515,134.40,9.60,1.00,0.00,1.00 +516,-43.20,-9.60,1.00,0.00,1.00 +517,144.00,9.60,1.00,0.00,1.00 +518,-33.60,-9.60,1.00,0.00,1.00 +519,153.60,9.60,1.00,0.00,1.00 +520,-24.00,-4.80,1.00,0.00,1.00 +521,163.20,4.80,1.00,0.00,1.00 +522,-14.40,-4.80,1.00,0.00,1.00 +523,172.80,4.80,1.00,0.00,1.00 +524,-4.80,-0.00,1.00,0.00,1.00 +525,0.00,0.00,1.00,0.00,1.00 +526,-177.60,-0.00,1.00,0.00,1.00 +527,9.60,0.00,1.00,0.00,1.00 +528,-168.00,-4.80,1.00,0.00,1.00 +529,19.20,4.80,1.00,0.00,1.00 +530,-158.40,-4.80,1.00,0.00,1.00 +531,28.80,4.80,1.00,0.00,1.00 +532,-148.80,-4.80,1.00,0.00,1.00 +533,38.40,4.80,1.00,0.00,1.00 +534,-139.20,-9.60,1.00,0.00,1.00 +535,48.00,9.60,1.00,0.00,1.00 +536,-129.60,-9.60,1.00,0.00,1.00 +537,57.60,9.60,1.00,0.00,1.00 +538,-120.00,-9.60,1.00,0.00,1.00 +539,67.20,9.60,1.00,0.00,1.00 +540,-110.40,-9.60,1.00,0.00,1.00 +541,76.80,9.60,1.00,0.00,1.00 +542,-100.80,-9.60,1.00,0.00,1.00 +543,86.40,9.60,1.00,0.00,1.00 +544,-86.40,-9.60,1.00,0.00,1.00 +545,96.00,9.60,1.00,0.00,1.00 +546,-76.80,-9.60,1.00,0.00,1.00 +547,105.60,9.60,1.00,0.00,1.00 +548,-67.20,-9.60,1.00,0.00,1.00 +549,115.20,9.60,1.00,0.00,1.00 +550,-57.60,-9.60,1.00,0.00,1.00 +551,124.80,9.60,1.00,0.00,1.00 +552,-48.00,-9.60,1.00,0.00,1.00 +553,134.40,9.60,1.00,0.00,1.00 +554,-38.40,-9.60,1.00,0.00,1.00 +555,144.00,4.80,1.00,0.00,1.00 +556,-28.80,-4.80,1.00,0.00,1.00 +557,153.60,4.80,1.00,0.00,1.00 +558,-19.20,-4.80,1.00,0.00,1.00 +559,163.20,4.80,1.00,0.00,1.00 +560,-9.60,-0.00,1.00,0.00,1.00 +561,172.80,0.00,1.00,0.00,1.00 +562,-0.00,-0.00,1.00,0.00,1.00 +563,-177.60,-0.00,1.00,0.00,1.00 +564,4.80,0.00,1.00,0.00,1.00 +565,-168.00,-0.00,1.00,0.00,1.00 +566,14.40,4.80,1.00,0.00,1.00 +567,-158.40,-4.80,1.00,0.00,1.00 +568,24.00,4.80,1.00,0.00,1.00 +569,-148.80,-4.80,1.00,0.00,1.00 +570,33.60,4.80,1.00,0.00,1.00 +571,-139.20,-9.60,1.00,0.00,1.00 +572,43.20,9.60,1.00,0.00,1.00 +573,-129.60,-9.60,1.00,0.00,1.00 +574,52.80,9.60,1.00,0.00,1.00 +575,-120.00,-9.60,1.00,0.00,1.00 +576,62.40,9.60,1.00,0.00,1.00 +577,-110.40,-9.60,1.00,0.00,1.00 +578,72.00,9.60,1.00,0.00,1.00 +579,-100.80,-9.60,1.00,0.00,1.00 +580,81.60,9.60,1.00,0.00,1.00 +581,-91.20,-9.60,1.00,0.00,1.00 +582,96.00,9.60,1.00,0.00,1.00 +583,-81.60,-9.60,1.00,0.00,1.00 +584,105.60,9.60,1.00,0.00,1.00 +585,-72.00,-9.60,1.00,0.00,1.00 +586,115.20,9.60,1.00,0.00,1.00 +587,-62.40,-9.60,1.00,0.00,1.00 +588,124.80,9.60,1.00,0.00,1.00 +589,-52.80,-9.60,1.00,0.00,1.00 +590,134.40,9.60,1.00,0.00,1.00 +591,-43.20,-9.60,1.00,0.00,1.00 +592,144.00,4.80,1.00,0.00,1.00 +593,-33.60,-4.80,1.00,0.00,1.00 +594,153.60,4.80,1.00,0.00,1.00 +595,-24.00,-4.80,1.00,0.00,1.00 +596,163.20,4.80,1.00,0.00,1.00 +597,-14.40,-4.80,1.00,0.00,1.00 +598,172.80,0.00,1.00,0.00,1.00 +599,-4.80,-0.00,1.00,0.00,1.00 +600,0.00,0.00,1.00,0.00,1.00 +601,-177.60,-0.00,1.00,0.00,1.00 +602,9.60,0.00,1.00,0.00,1.00 +603,-168.00,-0.00,1.00,0.00,1.00 +604,19.20,0.00,1.00,0.00,1.00 +605,-158.40,-4.80,1.00,0.00,1.00 +606,28.80,4.80,1.00,0.00,1.00 +607,-148.80,-4.80,1.00,0.00,1.00 +608,38.40,4.80,1.00,0.00,1.00 +609,-139.20,-4.80,1.00,0.00,1.00 +610,48.00,4.80,1.00,0.00,1.00 +611,-129.60,-4.80,1.00,0.00,1.00 +612,57.60,4.80,1.00,0.00,1.00 +613,-120.00,-4.80,1.00,0.00,1.00 +614,67.20,4.80,1.00,0.00,1.00 +615,-110.40,-4.80,1.00,0.00,1.00 +616,76.80,4.80,1.00,0.00,1.00 +617,-100.80,-4.80,1.00,0.00,1.00 +618,86.40,4.80,1.00,0.00,1.00 +619,-86.40,-4.80,1.00,0.00,1.00 +620,96.00,4.80,1.00,0.00,1.00 +621,-76.80,-4.80,1.00,0.00,1.00 +622,105.60,4.80,1.00,0.00,1.00 +623,-67.20,-4.80,1.00,0.00,1.00 +624,115.20,4.80,1.00,0.00,1.00 +625,-57.60,-4.80,1.00,0.00,1.00 +626,124.80,4.80,1.00,0.00,1.00 +627,-48.00,-4.80,1.00,0.00,1.00 +628,134.40,4.80,1.00,0.00,1.00 +629,-38.40,-4.80,1.00,0.00,1.00 +630,144.00,4.80,1.00,0.00,1.00 +631,-28.80,-4.80,1.00,0.00,1.00 +632,153.60,4.80,1.00,0.00,1.00 +633,-19.20,-4.80,1.00,0.00,1.00 +634,163.20,0.00,1.00,0.00,1.00 +635,-9.60,-0.00,1.00,0.00,1.00 +636,172.80,0.00,1.00,0.00,1.00 +637,-0.00,-0.00,1.00,0.00,1.00 +638,-177.60,-0.00,1.00,0.00,1.00 +639,4.80,0.00,1.00,0.00,1.00 +640,-168.00,-0.00,1.00,0.00,1.00 +641,14.40,0.00,1.00,0.00,1.00 +642,-158.40,-4.80,1.00,0.00,1.00 +643,24.00,4.80,1.00,0.00,1.00 +644,-148.80,-4.80,1.00,0.00,1.00 +645,33.60,4.80,1.00,0.00,1.00 +646,-139.20,-4.80,1.00,0.00,1.00 +647,43.20,4.80,1.00,0.00,1.00 +648,-129.60,-4.80,1.00,0.00,1.00 +649,52.80,4.80,1.00,0.00,1.00 +650,-120.00,-4.80,1.00,0.00,1.00 +651,62.40,4.80,1.00,0.00,1.00 +652,-110.40,-4.80,1.00,0.00,1.00 +653,72.00,4.80,1.00,0.00,1.00 +654,-100.80,-4.80,1.00,0.00,1.00 +655,81.60,4.80,1.00,0.00,1.00 +656,-91.20,-4.80,1.00,0.00,1.00 +657,96.00,4.80,1.00,0.00,1.00 +658,-81.60,-4.80,1.00,0.00,1.00 +659,105.60,4.80,1.00,0.00,1.00 +660,-72.00,-4.80,1.00,0.00,1.00 +661,115.20,4.80,1.00,0.00,1.00 +662,-62.40,-4.80,1.00,0.00,1.00 +663,124.80,4.80,1.00,0.00,1.00 +664,-52.80,-4.80,1.00,0.00,1.00 +665,134.40,4.80,1.00,0.00,1.00 +666,-43.20,-4.80,1.00,0.00,1.00 +667,144.00,4.80,1.00,0.00,1.00 +668,-33.60,-4.80,1.00,0.00,1.00 +669,153.60,4.80,1.00,0.00,1.00 +670,-24.00,-4.80,1.00,0.00,1.00 +671,163.20,0.00,1.00,0.00,1.00 +672,-14.40,-0.00,1.00,0.00,1.00 +673,172.80,0.00,1.00,0.00,1.00 +674,-4.80,-0.00,1.00,0.00,1.00 +675,0.00,0.00,1.00,0.00,1.00 +676,-177.60,-0.00,1.00,0.00,1.00 +677,9.60,0.00,1.00,0.00,1.00 +678,-168.00,-0.00,1.00,0.00,1.00 +679,19.20,0.00,1.00,0.00,1.00 +680,-158.40,-0.00,1.00,0.00,1.00 +681,28.80,0.00,1.00,0.00,1.00 +682,-148.80,-0.00,1.00,0.00,1.00 +683,38.40,0.00,1.00,0.00,1.00 +684,-139.20,-0.00,1.00,0.00,1.00 +685,48.00,0.00,1.00,0.00,1.00 +686,-129.60,-0.00,1.00,0.00,1.00 +687,57.60,0.00,1.00,0.00,1.00 +688,-120.00,-0.00,1.00,0.00,1.00 +689,67.20,0.00,1.00,0.00,1.00 +690,-110.40,-0.00,1.00,0.00,1.00 +691,76.80,0.00,1.00,0.00,1.00 +692,-100.80,-0.00,1.00,0.00,1.00 +693,86.40,0.00,1.00,0.00,1.00 +694,-86.40,-0.00,1.00,0.00,1.00 +695,96.00,0.00,1.00,0.00,1.00 +696,-76.80,-0.00,1.00,0.00,1.00 +697,105.60,0.00,1.00,0.00,1.00 +698,-67.20,-0.00,1.00,0.00,1.00 +699,115.20,0.00,1.00,0.00,1.00 +700,-57.60,-0.00,1.00,0.00,1.00 +701,124.80,0.00,1.00,0.00,1.00 +702,-48.00,-0.00,1.00,0.00,1.00 +703,134.40,0.00,1.00,0.00,1.00 +704,-38.40,-0.00,1.00,0.00,1.00 +705,144.00,0.00,1.00,0.00,1.00 +706,-28.80,-0.00,1.00,0.00,1.00 +707,153.60,0.00,1.00,0.00,1.00 +708,-19.20,-0.00,1.00,0.00,1.00 +709,163.20,0.00,1.00,0.00,1.00 +710,-9.60,-0.00,1.00,0.00,1.00 +711,172.80,0.00,1.00,0.00,1.00 +712,-0.00,-0.00,1.00,0.00,1.00 +713,-177.60,-0.00,1.00,0.00,1.00 +714,4.80,0.00,1.00,0.00,1.00 +715,-168.00,-0.00,1.00,0.00,1.00 +716,14.40,0.00,1.00,0.00,1.00 +717,-158.40,-0.00,1.00,0.00,1.00 +718,24.00,0.00,1.00,0.00,1.00 +719,-148.80,-0.00,1.00,0.00,1.00 +720,33.60,0.00,1.00,0.00,1.00 +721,-139.20,-0.00,1.00,0.00,1.00 +722,43.20,0.00,1.00,0.00,1.00 +723,-129.60,-0.00,1.00,0.00,1.00 +724,52.80,0.00,1.00,0.00,1.00 +725,-120.00,-0.00,1.00,0.00,1.00 +726,62.40,0.00,1.00,0.00,1.00 +727,-110.40,-0.00,1.00,0.00,1.00 +728,72.00,0.00,1.00,0.00,1.00 +729,-100.80,-0.00,1.00,0.00,1.00 +730,81.60,0.00,1.00,0.00,1.00 +731,-91.20,-0.00,1.00,0.00,1.00 +732,96.00,0.00,1.00,0.00,1.00 +733,-81.60,-0.00,1.00,0.00,1.00 +734,105.60,0.00,1.00,0.00,1.00 +735,-72.00,-0.00,1.00,0.00,1.00 +736,115.20,0.00,1.00,0.00,1.00 +737,-62.40,-0.00,1.00,0.00,1.00 +738,124.80,0.00,1.00,0.00,1.00 +739,-52.80,-0.00,1.00,0.00,1.00 +740,134.40,0.00,1.00,0.00,1.00 +741,-43.20,-0.00,1.00,0.00,1.00 +742,144.00,0.00,1.00,0.00,1.00 +743,-33.60,-0.00,1.00,0.00,1.00 +744,153.60,0.00,1.00,0.00,1.00 +745,-24.00,-0.00,1.00,0.00,1.00 +746,163.20,0.00,1.00,0.00,1.00 +747,-14.40,-0.00,1.00,0.00,1.00 +748,172.80,0.00,1.00,0.00,1.00 +749,-4.80,-0.00,1.00,0.00,1.00 +750,0.00,0.00,1.00,0.00,1.00 +751,-177.60,0.00,1.00,0.00,1.00 +752,9.60,-0.00,1.00,0.00,1.00 +753,-168.00,0.00,1.00,0.00,1.00 +754,19.20,-0.00,1.00,0.00,1.00 +755,-158.40,0.00,1.00,0.00,1.00 +756,28.80,-0.00,1.00,0.00,1.00 +757,-148.80,0.00,1.00,0.00,1.00 +758,38.40,-0.00,1.00,0.00,1.00 +759,-139.20,0.00,1.00,0.00,1.00 +760,48.00,-0.00,1.00,0.00,1.00 +761,-129.60,0.00,1.00,0.00,1.00 +762,57.60,-4.80,1.00,0.00,1.00 +763,-120.00,4.80,1.00,0.00,1.00 +764,67.20,-4.80,1.00,0.00,1.00 +765,-110.40,4.80,1.00,0.00,1.00 +766,76.80,-4.80,1.00,0.00,1.00 +767,-100.80,4.80,1.00,0.00,1.00 +768,86.40,-4.80,1.00,0.00,1.00 +769,-86.40,4.80,1.00,0.00,1.00 +770,96.00,-4.80,1.00,0.00,1.00 +771,-76.80,4.80,1.00,0.00,1.00 +772,105.60,-4.80,1.00,0.00,1.00 +773,-67.20,4.80,1.00,0.00,1.00 +774,115.20,-4.80,1.00,0.00,1.00 +775,-57.60,4.80,1.00,0.00,1.00 +776,124.80,-4.80,1.00,0.00,1.00 +777,-48.00,0.00,1.00,0.00,1.00 +778,134.40,-0.00,1.00,0.00,1.00 +779,-38.40,0.00,1.00,0.00,1.00 +780,144.00,-0.00,1.00,0.00,1.00 +781,-28.80,0.00,1.00,0.00,1.00 +782,153.60,-0.00,1.00,0.00,1.00 +783,-19.20,0.00,1.00,0.00,1.00 +784,163.20,-0.00,1.00,0.00,1.00 +785,-9.60,0.00,1.00,0.00,1.00 +786,172.80,-0.00,1.00,0.00,1.00 +787,-0.00,0.00,1.00,0.00,1.00 +788,-177.60,0.00,1.00,0.00,1.00 +789,4.80,-0.00,1.00,0.00,1.00 +790,-168.00,0.00,1.00,0.00,1.00 +791,14.40,-0.00,1.00,0.00,1.00 +792,-158.40,0.00,1.00,0.00,1.00 +793,24.00,-0.00,1.00,0.00,1.00 +794,-148.80,0.00,1.00,0.00,1.00 +795,33.60,-0.00,1.00,0.00,1.00 +796,-139.20,0.00,1.00,0.00,1.00 +797,43.20,-0.00,1.00,0.00,1.00 +798,-129.60,0.00,1.00,0.00,1.00 +799,52.80,-4.80,1.00,0.00,1.00 +800,-120.00,4.80,1.00,0.00,1.00 +801,62.40,-4.80,1.00,0.00,1.00 +802,-110.40,4.80,1.00,0.00,1.00 +803,72.00,-4.80,1.00,0.00,1.00 +804,-100.80,4.80,1.00,0.00,1.00 +805,81.60,-4.80,1.00,0.00,1.00 +806,-91.20,4.80,1.00,0.00,1.00 +807,96.00,-4.80,1.00,0.00,1.00 +808,-81.60,4.80,1.00,0.00,1.00 +809,105.60,-4.80,1.00,0.00,1.00 +810,-72.00,4.80,1.00,0.00,1.00 +811,115.20,-4.80,1.00,0.00,1.00 +812,-62.40,4.80,1.00,0.00,1.00 +813,124.80,-4.80,1.00,0.00,1.00 +814,-52.80,0.00,1.00,0.00,1.00 +815,134.40,-0.00,1.00,0.00,1.00 +816,-43.20,0.00,1.00,0.00,1.00 +817,144.00,-0.00,1.00,0.00,1.00 +818,-33.60,0.00,1.00,0.00,1.00 +819,153.60,-0.00,1.00,0.00,1.00 +820,-24.00,0.00,1.00,0.00,1.00 +821,163.20,-0.00,1.00,0.00,1.00 +822,-14.40,0.00,1.00,0.00,1.00 +823,172.80,-0.00,1.00,0.00,1.00 +824,-4.80,0.00,1.00,0.00,1.00 +825,0.00,0.00,1.00,0.00,1.00 +826,-177.60,0.00,1.00,0.00,1.00 +827,9.60,-0.00,1.00,0.00,1.00 +828,-168.00,0.00,1.00,0.00,1.00 +829,19.20,-4.80,1.00,0.00,1.00 +830,-158.40,4.80,1.00,0.00,1.00 +831,28.80,-4.80,1.00,0.00,1.00 +832,-148.80,4.80,1.00,0.00,1.00 +833,38.40,-4.80,1.00,0.00,1.00 +834,-139.20,4.80,1.00,0.00,1.00 +835,48.00,-4.80,1.00,0.00,1.00 +836,-129.60,4.80,1.00,0.00,1.00 +837,57.60,-4.80,1.00,0.00,1.00 +838,-120.00,4.80,1.00,0.00,1.00 +839,67.20,-4.80,1.00,0.00,1.00 +840,-110.40,9.60,1.00,0.00,1.00 +841,76.80,-9.60,1.00,0.00,1.00 +842,-100.80,9.60,1.00,0.00,1.00 +843,86.40,-9.60,1.00,0.00,1.00 +844,-86.40,9.60,1.00,0.00,1.00 +845,96.00,-9.60,1.00,0.00,1.00 +846,-76.80,9.60,1.00,0.00,1.00 +847,105.60,-9.60,1.00,0.00,1.00 +848,-67.20,9.60,1.00,0.00,1.00 +849,115.20,-4.80,1.00,0.00,1.00 +850,-57.60,4.80,1.00,0.00,1.00 +851,124.80,-4.80,1.00,0.00,1.00 +852,-48.00,4.80,1.00,0.00,1.00 +853,134.40,-4.80,1.00,0.00,1.00 +854,-38.40,4.80,1.00,0.00,1.00 +855,144.00,-4.80,1.00,0.00,1.00 +856,-28.80,4.80,1.00,0.00,1.00 +857,153.60,-4.80,1.00,0.00,1.00 +858,-19.20,4.80,1.00,0.00,1.00 +859,163.20,-0.00,1.00,0.00,1.00 +860,-9.60,0.00,1.00,0.00,1.00 +861,172.80,-0.00,1.00,0.00,1.00 +862,-0.00,0.00,1.00,0.00,1.00 +863,-177.60,0.00,1.00,0.00,1.00 +864,4.80,-0.00,1.00,0.00,1.00 +865,-168.00,0.00,1.00,0.00,1.00 +866,14.40,-0.00,1.00,0.00,1.00 +867,-158.40,4.80,1.00,0.00,1.00 +868,24.00,-4.80,1.00,0.00,1.00 +869,-148.80,4.80,1.00,0.00,1.00 +870,33.60,-4.80,1.00,0.00,1.00 +871,-139.20,4.80,1.00,0.00,1.00 +872,43.20,-4.80,1.00,0.00,1.00 +873,-129.60,4.80,1.00,0.00,1.00 +874,52.80,-4.80,1.00,0.00,1.00 +875,-120.00,4.80,1.00,0.00,1.00 +876,62.40,-4.80,1.00,0.00,1.00 +877,-110.40,9.60,1.00,0.00,1.00 +878,72.00,-9.60,1.00,0.00,1.00 +879,-100.80,9.60,1.00,0.00,1.00 +880,81.60,-9.60,1.00,0.00,1.00 +881,-91.20,9.60,1.00,0.00,1.00 +882,96.00,-9.60,1.00,0.00,1.00 +883,-81.60,9.60,1.00,0.00,1.00 +884,105.60,-9.60,1.00,0.00,1.00 +885,-72.00,9.60,1.00,0.00,1.00 +886,115.20,-4.80,1.00,0.00,1.00 +887,-62.40,4.80,1.00,0.00,1.00 +888,124.80,-4.80,1.00,0.00,1.00 +889,-52.80,4.80,1.00,0.00,1.00 +890,134.40,-4.80,1.00,0.00,1.00 +891,-43.20,4.80,1.00,0.00,1.00 +892,144.00,-4.80,1.00,0.00,1.00 +893,-33.60,4.80,1.00,0.00,1.00 +894,153.60,-4.80,1.00,0.00,1.00 +895,-24.00,4.80,1.00,0.00,1.00 +896,163.20,-4.80,1.00,0.00,1.00 +897,-14.40,0.00,1.00,0.00,1.00 +898,172.80,-0.00,1.00,0.00,1.00 +899,-4.80,0.00,1.00,0.00,1.00 +900,0.00,0.00,1.00,0.00,1.00 +901,-177.60,0.00,1.00,0.00,1.00 +902,9.60,-0.00,1.00,0.00,1.00 +903,-168.00,4.80,1.00,0.00,1.00 +904,19.20,-4.80,1.00,0.00,1.00 +905,-158.40,4.80,1.00,0.00,1.00 +906,28.80,-4.80,1.00,0.00,1.00 +907,-148.80,4.80,1.00,0.00,1.00 +908,38.40,-9.60,1.00,0.00,1.00 +909,-139.20,9.60,1.00,0.00,1.00 +910,48.00,-9.60,1.00,0.00,1.00 +911,-129.60,9.60,1.00,0.00,1.00 +912,57.60,-9.60,1.00,0.00,1.00 +913,-120.00,9.60,1.00,0.00,1.00 +914,67.20,-9.60,1.00,0.00,1.00 +915,-110.40,9.60,1.00,0.00,1.00 +916,76.80,-14.40,1.00,0.00,1.00 +917,-100.80,14.40,1.00,0.00,1.00 +918,86.40,-14.40,1.00,0.00,1.00 +919,-86.40,14.40,1.00,0.00,1.00 +920,96.00,-14.40,1.00,0.00,1.00 +921,-76.80,14.40,1.00,0.00,1.00 +922,105.60,-14.40,1.00,0.00,1.00 +923,-67.20,9.60,1.00,0.00,1.00 +924,115.20,-9.60,1.00,0.00,1.00 +925,-57.60,9.60,1.00,0.00,1.00 +926,124.80,-9.60,1.00,0.00,1.00 +927,-48.00,9.60,1.00,0.00,1.00 +928,134.40,-9.60,1.00,0.00,1.00 +929,-38.40,9.60,1.00,0.00,1.00 +930,144.00,-9.60,1.00,0.00,1.00 +931,-28.80,4.80,1.00,0.00,1.00 +932,153.60,-4.80,1.00,0.00,1.00 +933,-19.20,4.80,1.00,0.00,1.00 +934,163.20,-4.80,1.00,0.00,1.00 +935,-9.60,4.80,1.00,0.00,1.00 +936,172.80,-0.00,1.00,0.00,1.00 +937,-0.00,0.00,1.00,0.00,1.00 +938,-177.60,0.00,1.00,0.00,1.00 +939,4.80,-0.00,1.00,0.00,1.00 +940,-168.00,4.80,1.00,0.00,1.00 +941,14.40,-4.80,1.00,0.00,1.00 +942,-158.40,4.80,1.00,0.00,1.00 +943,24.00,-4.80,1.00,0.00,1.00 +944,-148.80,4.80,1.00,0.00,1.00 +945,33.60,-9.60,1.00,0.00,1.00 +946,-139.20,9.60,1.00,0.00,1.00 +947,43.20,-9.60,1.00,0.00,1.00 +948,-129.60,9.60,1.00,0.00,1.00 +949,52.80,-9.60,1.00,0.00,1.00 +950,-120.00,9.60,1.00,0.00,1.00 +951,62.40,-9.60,1.00,0.00,1.00 +952,-110.40,9.60,1.00,0.00,1.00 +953,72.00,-14.40,1.00,0.00,1.00 +954,-100.80,14.40,1.00,0.00,1.00 +955,81.60,-14.40,1.00,0.00,1.00 +956,-91.20,14.40,1.00,0.00,1.00 +957,96.00,-14.40,1.00,0.00,1.00 +958,-81.60,14.40,1.00,0.00,1.00 +959,105.60,-14.40,1.00,0.00,1.00 +960,-72.00,9.60,1.00,0.00,1.00 +961,115.20,-9.60,1.00,0.00,1.00 +962,-62.40,9.60,1.00,0.00,1.00 +963,124.80,-9.60,1.00,0.00,1.00 +964,-52.80,9.60,1.00,0.00,1.00 +965,134.40,-9.60,1.00,0.00,1.00 +966,-43.20,9.60,1.00,0.00,1.00 +967,144.00,-9.60,1.00,0.00,1.00 +968,-33.60,4.80,1.00,0.00,1.00 +969,153.60,-4.80,1.00,0.00,1.00 +970,-24.00,4.80,1.00,0.00,1.00 +971,163.20,-4.80,1.00,0.00,1.00 +972,-14.40,4.80,1.00,0.00,1.00 +973,172.80,-0.00,1.00,0.00,1.00 +974,-4.80,0.00,1.00,0.00,1.00 +975,0.00,0.00,1.00,0.00,1.00 +976,-177.60,0.00,1.00,0.00,1.00 +977,9.60,-4.80,1.00,0.00,1.00 +978,-168.00,4.80,1.00,0.00,1.00 +979,19.20,-4.80,1.00,0.00,1.00 +980,-158.40,4.80,1.00,0.00,1.00 +981,28.80,-9.60,1.00,0.00,1.00 +982,-148.80,9.60,1.00,0.00,1.00 +983,38.40,-9.60,1.00,0.00,1.00 +984,-139.20,9.60,1.00,0.00,1.00 +985,48.00,-14.40,1.00,0.00,1.00 +986,-129.60,14.40,1.00,0.00,1.00 +987,57.60,-14.40,1.00,0.00,1.00 +988,-120.00,14.40,1.00,0.00,1.00 +989,67.20,-14.40,1.00,0.00,1.00 +990,-110.40,14.40,1.00,0.00,1.00 +991,76.80,-19.20,1.00,0.00,1.00 +992,-100.80,19.20,1.00,0.00,1.00 +993,86.40,-19.20,1.00,0.00,1.00 +994,-86.40,19.20,1.00,0.00,1.00 +995,96.00,-19.20,1.00,0.00,1.00 +996,-76.80,19.20,1.00,0.00,1.00 +997,105.60,-14.40,1.00,0.00,1.00 +998,-67.20,14.40,1.00,0.00,1.00 +999,115.20,-14.40,1.00,0.00,1.00 +1000,-57.60,14.40,1.00,0.00,1.00 +1001,124.80,-14.40,1.00,0.00,1.00 +1002,-48.00,14.40,1.00,0.00,1.00 +1003,134.40,-14.40,1.00,0.00,1.00 +1004,-38.40,9.60,1.00,0.00,1.00 +1005,144.00,-9.60,1.00,0.00,1.00 +1006,-28.80,9.60,1.00,0.00,1.00 +1007,153.60,-9.60,1.00,0.00,1.00 +1008,-19.20,4.80,1.00,0.00,1.00 +1009,163.20,-4.80,1.00,0.00,1.00 +1010,-9.60,4.80,1.00,0.00,1.00 +1011,172.80,-0.00,1.00,0.00,1.00 +1012,-0.00,0.00,1.00,0.00,1.00 +1013,-177.60,0.00,1.00,0.00,1.00 +1014,4.80,-0.00,1.00,0.00,1.00 +1015,-168.00,4.80,1.00,0.00,1.00 +1016,14.40,-4.80,1.00,0.00,1.00 +1017,-158.40,4.80,1.00,0.00,1.00 +1018,24.00,-9.60,1.00,0.00,1.00 +1019,-148.80,9.60,1.00,0.00,1.00 +1020,33.60,-9.60,1.00,0.00,1.00 +1021,-139.20,9.60,1.00,0.00,1.00 +1022,43.20,-14.40,1.00,0.00,1.00 +1023,-129.60,14.40,1.00,0.00,1.00 +1024,52.80,-14.40,1.00,0.00,1.00 +1025,-120.00,14.40,1.00,0.00,1.00 +1026,62.40,-14.40,1.00,0.00,1.00 +1027,-110.40,14.40,1.00,0.00,1.00 +1028,72.00,-14.40,1.00,0.00,1.00 +1029,-100.80,19.20,1.00,0.00,1.00 +1030,81.60,-19.20,1.00,0.00,1.00 +1031,-91.20,19.20,1.00,0.00,1.00 +1032,96.00,-19.20,1.00,0.00,1.00 +1033,-81.60,19.20,1.00,0.00,1.00 +1034,105.60,-19.20,1.00,0.00,1.00 +1035,-72.00,14.40,1.00,0.00,1.00 +1036,115.20,-14.40,1.00,0.00,1.00 +1037,-62.40,14.40,1.00,0.00,1.00 +1038,124.80,-14.40,1.00,0.00,1.00 +1039,-52.80,14.40,1.00,0.00,1.00 +1040,134.40,-14.40,1.00,0.00,1.00 +1041,-43.20,9.60,1.00,0.00,1.00 +1042,144.00,-9.60,1.00,0.00,1.00 +1043,-33.60,9.60,1.00,0.00,1.00 +1044,153.60,-9.60,1.00,0.00,1.00 +1045,-24.00,4.80,1.00,0.00,1.00 +1046,163.20,-4.80,1.00,0.00,1.00 +1047,-14.40,4.80,1.00,0.00,1.00 +1048,172.80,-4.80,1.00,0.00,1.00 +1049,-4.80,0.00,1.00,0.00,1.00 +1050,0.00,0.00,1.00,0.00,1.00 +1051,-177.60,0.00,1.00,0.00,1.00 +1052,9.60,-4.80,1.00,0.00,1.00 +1053,-168.00,4.80,1.00,0.00,1.00 +1054,19.20,-4.80,1.00,0.00,1.00 +1055,-158.40,9.60,1.00,0.00,1.00 +1056,28.80,-9.60,1.00,0.00,1.00 +1057,-148.80,14.40,1.00,0.00,1.00 +1058,38.40,-14.40,1.00,0.00,1.00 +1059,-139.20,14.40,1.00,0.00,1.00 +1060,48.00,-14.40,1.00,0.00,1.00 +1061,-129.60,19.20,1.00,0.00,1.00 +1062,57.60,-19.20,1.00,0.00,1.00 +1063,-120.00,19.20,1.00,0.00,1.00 +1064,67.20,-19.20,1.00,0.00,1.00 +1065,-110.40,19.20,1.00,0.00,1.00 +1066,76.80,-19.20,1.00,0.00,1.00 +1067,-100.80,24.00,1.00,0.00,1.00 +1068,86.40,-24.00,1.00,0.00,1.00 +1069,-86.40,24.00,1.00,0.00,1.00 +1070,96.00,-24.00,1.00,0.00,1.00 +1071,-76.80,24.00,1.00,0.00,1.00 +1072,105.60,-19.20,1.00,0.00,1.00 +1073,-67.20,19.20,1.00,0.00,1.00 +1074,115.20,-19.20,1.00,0.00,1.00 +1075,-57.60,19.20,1.00,0.00,1.00 +1076,124.80,-19.20,1.00,0.00,1.00 +1077,-48.00,19.20,1.00,0.00,1.00 +1078,134.40,-14.40,1.00,0.00,1.00 +1079,-38.40,14.40,1.00,0.00,1.00 +1080,144.00,-14.40,1.00,0.00,1.00 +1081,-28.80,9.60,1.00,0.00,1.00 +1082,153.60,-9.60,1.00,0.00,1.00 +1083,-19.20,9.60,1.00,0.00,1.00 +1084,163.20,-4.80,1.00,0.00,1.00 +1085,-9.60,4.80,1.00,0.00,1.00 +1086,172.80,-4.80,1.00,0.00,1.00 +1087,-0.00,0.00,1.00,0.00,1.00 +1088,-177.60,0.00,1.00,0.00,1.00 +1089,4.80,-4.80,1.00,0.00,1.00 +1090,-168.00,4.80,1.00,0.00,1.00 +1091,14.40,-4.80,1.00,0.00,1.00 +1092,-158.40,9.60,1.00,0.00,1.00 +1093,24.00,-9.60,1.00,0.00,1.00 +1094,-148.80,9.60,1.00,0.00,1.00 +1095,33.60,-14.40,1.00,0.00,1.00 +1096,-139.20,14.40,1.00,0.00,1.00 +1097,43.20,-14.40,1.00,0.00,1.00 +1098,-129.60,19.20,1.00,0.00,1.00 +1099,52.80,-19.20,1.00,0.00,1.00 +1100,-120.00,19.20,1.00,0.00,1.00 +1101,62.40,-19.20,1.00,0.00,1.00 +1102,-110.40,19.20,1.00,0.00,1.00 +1103,72.00,-19.20,1.00,0.00,1.00 +1104,-100.80,24.00,1.00,0.00,1.00 +1105,81.60,-24.00,1.00,0.00,1.00 +1106,-91.20,24.00,1.00,0.00,1.00 +1107,96.00,-24.00,1.00,0.00,1.00 +1108,-81.60,24.00,1.00,0.00,1.00 +1109,105.60,-19.20,1.00,0.00,1.00 +1110,-72.00,19.20,1.00,0.00,1.00 +1111,115.20,-19.20,1.00,0.00,1.00 +1112,-62.40,19.20,1.00,0.00,1.00 +1113,124.80,-19.20,1.00,0.00,1.00 +1114,-52.80,19.20,1.00,0.00,1.00 +1115,134.40,-14.40,1.00,0.00,1.00 +1116,-43.20,14.40,1.00,0.00,1.00 +1117,144.00,-14.40,1.00,0.00,1.00 +1118,-33.60,14.40,1.00,0.00,1.00 +1119,153.60,-9.60,1.00,0.00,1.00 +1120,-24.00,9.60,1.00,0.00,1.00 +1121,163.20,-4.80,1.00,0.00,1.00 +1122,-14.40,4.80,1.00,0.00,1.00 +1123,172.80,-4.80,1.00,0.00,1.00 +1124,-4.80,0.00,1.00,0.00,1.00 +1125,0.00,0.00,1.00,0.00,1.00 +1126,-177.60,0.00,1.00,0.00,1.00 +1127,9.60,-4.80,1.00,0.00,1.00 +1128,-168.00,4.80,1.00,0.00,1.00 +1129,19.20,-9.60,1.00,0.00,1.00 +1130,-158.40,9.60,1.00,0.00,1.00 +1131,24.00,-14.40,1.00,0.00,1.00 +1132,-148.80,14.40,1.00,0.00,1.00 +1133,33.60,-14.40,1.00,0.00,1.00 +1134,-139.20,19.20,1.00,0.00,1.00 +1135,43.20,-19.20,1.00,0.00,1.00 +1136,-129.60,19.20,1.00,0.00,1.00 +1137,52.80,-24.00,1.00,0.00,1.00 +1138,-120.00,24.00,1.00,0.00,1.00 +1139,62.40,-24.00,1.00,0.00,1.00 +1140,-110.40,24.00,1.00,0.00,1.00 +1141,76.80,-24.00,1.00,0.00,1.00 +1142,-100.80,28.80,1.00,0.00,1.00 +1143,86.40,-28.80,1.00,0.00,1.00 +1144,-86.40,28.80,1.00,0.00,1.00 +1145,96.00,-28.80,1.00,0.00,1.00 +1146,-76.80,28.80,1.00,0.00,1.00 +1147,105.60,-24.00,1.00,0.00,1.00 +1148,-67.20,24.00,1.00,0.00,1.00 +1149,120.00,-24.00,1.00,0.00,1.00 +1150,-57.60,24.00,1.00,0.00,1.00 +1151,129.60,-24.00,1.00,0.00,1.00 +1152,-48.00,19.20,1.00,0.00,1.00 +1153,139.20,-19.20,1.00,0.00,1.00 +1154,-38.40,19.20,1.00,0.00,1.00 +1155,148.80,-14.40,1.00,0.00,1.00 +1156,-28.80,14.40,1.00,0.00,1.00 +1157,158.40,-9.60,1.00,0.00,1.00 +1158,-19.20,9.60,1.00,0.00,1.00 +1159,163.20,-9.60,1.00,0.00,1.00 +1160,-9.60,4.80,1.00,0.00,1.00 +1161,172.80,-4.80,1.00,0.00,1.00 +1162,-0.00,0.00,1.00,0.00,1.00 +1163,-177.60,0.00,1.00,0.00,1.00 +1164,4.80,-4.80,1.00,0.00,1.00 +1165,-168.00,4.80,1.00,0.00,1.00 +1166,14.40,-9.60,1.00,0.00,1.00 +1167,-158.40,9.60,1.00,0.00,1.00 +1168,24.00,-9.60,1.00,0.00,1.00 +1169,-153.60,14.40,1.00,0.00,1.00 +1170,33.60,-14.40,1.00,0.00,1.00 +1171,-144.00,19.20,1.00,0.00,1.00 +1172,43.20,-19.20,1.00,0.00,1.00 +1173,-134.40,19.20,1.00,0.00,1.00 +1174,52.80,-24.00,1.00,0.00,1.00 +1175,-124.80,24.00,1.00,0.00,1.00 +1176,62.40,-24.00,1.00,0.00,1.00 +1177,-110.40,24.00,1.00,0.00,1.00 +1178,72.00,-24.00,1.00,0.00,1.00 +1179,-100.80,28.80,1.00,0.00,1.00 +1180,81.60,-28.80,1.00,0.00,1.00 +1181,-91.20,28.80,1.00,0.00,1.00 +1182,96.00,-28.80,1.00,0.00,1.00 +1183,-81.60,28.80,1.00,0.00,1.00 +1184,105.60,-24.00,1.00,0.00,1.00 +1185,-72.00,24.00,1.00,0.00,1.00 +1186,115.20,-24.00,1.00,0.00,1.00 +1187,-57.60,24.00,1.00,0.00,1.00 +1188,124.80,-24.00,1.00,0.00,1.00 +1189,-48.00,19.20,1.00,0.00,1.00 +1190,134.40,-19.20,1.00,0.00,1.00 +1191,-38.40,19.20,1.00,0.00,1.00 +1192,144.00,-14.40,1.00,0.00,1.00 +1193,-28.80,14.40,1.00,0.00,1.00 +1194,153.60,-14.40,1.00,0.00,1.00 +1195,-24.00,9.60,1.00,0.00,1.00 +1196,163.20,-9.60,1.00,0.00,1.00 +1197,-14.40,4.80,1.00,0.00,1.00 +1198,172.80,-4.80,1.00,0.00,1.00 +1199,-4.80,0.00,1.00,0.00,1.00 +1200,0.00,0.00,1.00,0.00,1.00 +1201,-177.60,4.80,1.00,0.00,1.00 +1202,9.60,-4.80,1.00,0.00,1.00 +1203,-168.00,9.60,1.00,0.00,1.00 +1204,14.40,-9.60,1.00,0.00,1.00 +1205,-158.40,14.40,1.00,0.00,1.00 +1206,24.00,-14.40,1.00,0.00,1.00 +1207,-148.80,19.20,1.00,0.00,1.00 +1208,33.60,-19.20,1.00,0.00,1.00 +1209,-139.20,19.20,1.00,0.00,1.00 +1210,43.20,-24.00,1.00,0.00,1.00 +1211,-129.60,24.00,1.00,0.00,1.00 +1212,52.80,-28.80,1.00,0.00,1.00 +1213,-120.00,28.80,1.00,0.00,1.00 +1214,62.40,-28.80,1.00,0.00,1.00 +1215,-110.40,28.80,1.00,0.00,1.00 +1216,76.80,-28.80,1.00,0.00,1.00 +1217,-100.80,33.60,1.00,0.00,1.00 +1218,86.40,-33.60,1.00,0.00,1.00 +1219,-86.40,33.60,1.00,0.00,1.00 +1220,96.00,-33.60,1.00,0.00,1.00 +1221,-76.80,28.80,1.00,0.00,1.00 +1222,110.40,-28.80,1.00,0.00,1.00 +1223,-67.20,28.80,1.00,0.00,1.00 +1224,120.00,-28.80,1.00,0.00,1.00 +1225,-57.60,28.80,1.00,0.00,1.00 +1226,129.60,-24.00,1.00,0.00,1.00 +1227,-48.00,24.00,1.00,0.00,1.00 +1228,139.20,-24.00,1.00,0.00,1.00 +1229,-38.40,19.20,1.00,0.00,1.00 +1230,148.80,-19.20,1.00,0.00,1.00 +1231,-28.80,14.40,1.00,0.00,1.00 +1232,158.40,-14.40,1.00,0.00,1.00 +1233,-19.20,9.60,1.00,0.00,1.00 +1234,168.00,-9.60,1.00,0.00,1.00 +1235,-9.60,4.80,1.00,0.00,1.00 +1236,172.80,-4.80,1.00,0.00,1.00 +1237,-0.00,0.00,1.00,0.00,1.00 +1238,-177.60,0.00,1.00,0.00,1.00 +1239,4.80,-4.80,1.00,0.00,1.00 +1240,-168.00,4.80,1.00,0.00,1.00 +1241,14.40,-9.60,1.00,0.00,1.00 +1242,-163.20,9.60,1.00,0.00,1.00 +1243,24.00,-14.40,1.00,0.00,1.00 +1244,-153.60,14.40,1.00,0.00,1.00 +1245,33.60,-19.20,1.00,0.00,1.00 +1246,-144.00,19.20,1.00,0.00,1.00 +1247,43.20,-24.00,1.00,0.00,1.00 +1248,-134.40,24.00,1.00,0.00,1.00 +1249,52.80,-24.00,1.00,0.00,1.00 +1250,-124.80,28.80,1.00,0.00,1.00 +1251,62.40,-28.80,1.00,0.00,1.00 +1252,-115.20,28.80,1.00,0.00,1.00 +1253,72.00,-28.80,1.00,0.00,1.00 +1254,-100.80,28.80,1.00,0.00,1.00 +1255,81.60,-33.60,1.00,0.00,1.00 +1256,-91.20,33.60,1.00,0.00,1.00 +1257,96.00,-33.60,1.00,0.00,1.00 +1258,-81.60,33.60,1.00,0.00,1.00 +1259,105.60,-28.80,1.00,0.00,1.00 +1260,-67.20,28.80,1.00,0.00,1.00 +1261,115.20,-28.80,1.00,0.00,1.00 +1262,-57.60,28.80,1.00,0.00,1.00 +1263,124.80,-28.80,1.00,0.00,1.00 +1264,-48.00,24.00,1.00,0.00,1.00 +1265,134.40,-24.00,1.00,0.00,1.00 +1266,-38.40,19.20,1.00,0.00,1.00 +1267,144.00,-19.20,1.00,0.00,1.00 +1268,-28.80,19.20,1.00,0.00,1.00 +1269,153.60,-14.40,1.00,0.00,1.00 +1270,-19.20,14.40,1.00,0.00,1.00 +1271,163.20,-9.60,1.00,0.00,1.00 +1272,-14.40,9.60,1.00,0.00,1.00 +1273,172.80,-4.80,1.00,0.00,1.00 +1274,-4.80,4.80,1.00,0.00,1.00 +1275,0.00,0.00,1.00,0.00,1.00 +1276,-177.60,4.80,1.00,0.00,1.00 +1277,9.60,-4.80,1.00,0.00,1.00 +1278,-168.00,9.60,1.00,0.00,1.00 +1279,14.40,-9.60,1.00,0.00,1.00 +1280,-158.40,14.40,1.00,0.00,1.00 +1281,24.00,-14.40,1.00,0.00,1.00 +1282,-153.60,19.20,1.00,0.00,1.00 +1283,33.60,-24.00,1.00,0.00,1.00 +1284,-144.00,24.00,1.00,0.00,1.00 +1285,43.20,-24.00,1.00,0.00,1.00 +1286,-134.40,28.80,1.00,0.00,1.00 +1287,52.80,-28.80,1.00,0.00,1.00 +1288,-124.80,33.60,1.00,0.00,1.00 +1289,62.40,-33.60,1.00,0.00,1.00 +1290,-110.40,33.60,1.00,0.00,1.00 +1291,72.00,-33.60,1.00,0.00,1.00 +1292,-100.80,38.40,1.00,0.00,1.00 +1293,86.40,-38.40,1.00,0.00,1.00 +1294,-86.40,38.40,1.00,0.00,1.00 +1295,96.00,-38.40,1.00,0.00,1.00 +1296,-76.80,33.60,1.00,0.00,1.00 +1297,110.40,-33.60,1.00,0.00,1.00 +1298,-67.20,33.60,1.00,0.00,1.00 +1299,120.00,-33.60,1.00,0.00,1.00 +1300,-52.80,28.80,1.00,0.00,1.00 +1301,129.60,-28.80,1.00,0.00,1.00 +1302,-43.20,28.80,1.00,0.00,1.00 +1303,139.20,-24.00,1.00,0.00,1.00 +1304,-33.60,24.00,1.00,0.00,1.00 +1305,148.80,-19.20,1.00,0.00,1.00 +1306,-24.00,19.20,1.00,0.00,1.00 +1307,158.40,-14.40,1.00,0.00,1.00 +1308,-19.20,14.40,1.00,0.00,1.00 +1309,168.00,-9.60,1.00,0.00,1.00 +1310,-9.60,4.80,1.00,0.00,1.00 +1311,172.80,-4.80,1.00,0.00,1.00 +1312,-0.00,0.00,1.00,0.00,1.00 +1313,-177.60,0.00,1.00,0.00,1.00 +1314,4.80,-4.80,1.00,0.00,1.00 +1315,-168.00,4.80,1.00,0.00,1.00 +1316,14.40,-9.60,1.00,0.00,1.00 +1317,-163.20,14.40,1.00,0.00,1.00 +1318,24.00,-14.40,1.00,0.00,1.00 +1319,-153.60,19.20,1.00,0.00,1.00 +1320,28.80,-19.20,1.00,0.00,1.00 +1321,-144.00,24.00,1.00,0.00,1.00 +1322,38.40,-24.00,1.00,0.00,1.00 +1323,-134.40,28.80,1.00,0.00,1.00 +1324,48.00,-28.80,1.00,0.00,1.00 +1325,-124.80,28.80,1.00,0.00,1.00 +1326,57.60,-33.60,1.00,0.00,1.00 +1327,-115.20,33.60,1.00,0.00,1.00 +1328,72.00,-33.60,1.00,0.00,1.00 +1329,-105.60,33.60,1.00,0.00,1.00 +1330,81.60,-38.40,1.00,0.00,1.00 +1331,-91.20,38.40,1.00,0.00,1.00 +1332,96.00,-38.40,1.00,0.00,1.00 +1333,-81.60,38.40,1.00,0.00,1.00 +1334,105.60,-33.60,1.00,0.00,1.00 +1335,-67.20,33.60,1.00,0.00,1.00 +1336,120.00,-33.60,1.00,0.00,1.00 +1337,-57.60,33.60,1.00,0.00,1.00 +1338,129.60,-28.80,1.00,0.00,1.00 +1339,-48.00,28.80,1.00,0.00,1.00 +1340,139.20,-24.00,1.00,0.00,1.00 +1341,-38.40,24.00,1.00,0.00,1.00 +1342,148.80,-24.00,1.00,0.00,1.00 +1343,-28.80,19.20,1.00,0.00,1.00 +1344,158.40,-14.40,1.00,0.00,1.00 +1345,-19.20,14.40,1.00,0.00,1.00 +1346,163.20,-9.60,1.00,0.00,1.00 +1347,-9.60,9.60,1.00,0.00,1.00 +1348,172.80,-4.80,1.00,0.00,1.00 +1349,-4.80,4.80,1.00,0.00,1.00 +1350,0.00,0.00,1.00,0.00,1.00 +1351,-177.60,4.80,1.00,0.00,1.00 +1352,9.60,-4.80,1.00,0.00,1.00 +1353,-168.00,9.60,1.00,0.00,1.00 +1354,14.40,-14.40,1.00,0.00,1.00 +1355,-163.20,14.40,1.00,0.00,1.00 +1356,24.00,-19.20,1.00,0.00,1.00 +1357,-153.60,19.20,1.00,0.00,1.00 +1358,28.80,-24.00,1.00,0.00,1.00 +1359,-144.00,28.80,1.00,0.00,1.00 +1360,38.40,-28.80,1.00,0.00,1.00 +1361,-134.40,33.60,1.00,0.00,1.00 +1362,48.00,-33.60,1.00,0.00,1.00 +1363,-124.80,33.60,1.00,0.00,1.00 +1364,62.40,-38.40,1.00,0.00,1.00 +1365,-115.20,38.40,1.00,0.00,1.00 +1366,72.00,-38.40,1.00,0.00,1.00 +1367,-100.80,43.20,1.00,0.00,1.00 +1368,86.40,-43.20,1.00,0.00,1.00 +1369,-86.40,43.20,1.00,0.00,1.00 +1370,96.00,-43.20,1.00,0.00,1.00 +1371,-76.80,38.40,1.00,0.00,1.00 +1372,110.40,-38.40,1.00,0.00,1.00 +1373,-62.40,38.40,1.00,0.00,1.00 +1374,120.00,-38.40,1.00,0.00,1.00 +1375,-52.80,33.60,1.00,0.00,1.00 +1376,134.40,-33.60,1.00,0.00,1.00 +1377,-43.20,28.80,1.00,0.00,1.00 +1378,144.00,-28.80,1.00,0.00,1.00 +1379,-33.60,24.00,1.00,0.00,1.00 +1380,153.60,-24.00,1.00,0.00,1.00 +1381,-24.00,19.20,1.00,0.00,1.00 +1382,158.40,-19.20,1.00,0.00,1.00 +1383,-14.40,14.40,1.00,0.00,1.00 +1384,168.00,-9.60,1.00,0.00,1.00 +1385,-9.60,9.60,1.00,0.00,1.00 +1386,172.80,-4.80,1.00,0.00,1.00 +1387,-0.00,0.00,1.00,0.00,1.00 +1388,-177.60,0.00,1.00,0.00,1.00 +1389,4.80,-4.80,1.00,0.00,1.00 +1390,-172.80,9.60,1.00,0.00,1.00 +1391,14.40,-9.60,1.00,0.00,1.00 +1392,-163.20,14.40,1.00,0.00,1.00 +1393,19.20,-19.20,1.00,0.00,1.00 +1394,-153.60,19.20,1.00,0.00,1.00 +1395,28.80,-24.00,1.00,0.00,1.00 +1396,-148.80,24.00,1.00,0.00,1.00 +1397,38.40,-28.80,1.00,0.00,1.00 +1398,-139.20,28.80,1.00,0.00,1.00 +1399,48.00,-33.60,1.00,0.00,1.00 +1400,-129.60,33.60,1.00,0.00,1.00 +1401,57.60,-38.40,1.00,0.00,1.00 +1402,-115.20,38.40,1.00,0.00,1.00 +1403,67.20,-38.40,1.00,0.00,1.00 +1404,-105.60,38.40,1.00,0.00,1.00 +1405,81.60,-43.20,1.00,0.00,1.00 +1406,-91.20,43.20,1.00,0.00,1.00 +1407,96.00,-43.20,1.00,0.00,1.00 +1408,-76.80,43.20,1.00,0.00,1.00 +1409,105.60,-38.40,1.00,0.00,1.00 +1410,-67.20,38.40,1.00,0.00,1.00 +1411,120.00,-38.40,1.00,0.00,1.00 +1412,-52.80,33.60,1.00,0.00,1.00 +1413,129.60,-33.60,1.00,0.00,1.00 +1414,-43.20,33.60,1.00,0.00,1.00 +1415,139.20,-28.80,1.00,0.00,1.00 +1416,-33.60,28.80,1.00,0.00,1.00 +1417,148.80,-24.00,1.00,0.00,1.00 +1418,-28.80,19.20,1.00,0.00,1.00 +1419,158.40,-19.20,1.00,0.00,1.00 +1420,-19.20,14.40,1.00,0.00,1.00 +1421,163.20,-14.40,1.00,0.00,1.00 +1422,-9.60,9.60,1.00,0.00,1.00 +1423,172.80,-4.80,1.00,0.00,1.00 +1424,-4.80,4.80,1.00,0.00,1.00 +1425,0.00,0.00,1.00,0.00,1.00 +1426,-177.60,4.80,1.00,0.00,1.00 +1427,4.80,-4.80,1.00,0.00,1.00 +1428,-168.00,9.60,1.00,0.00,1.00 +1429,14.40,-14.40,1.00,0.00,1.00 +1430,-163.20,19.20,1.00,0.00,1.00 +1431,19.20,-19.20,1.00,0.00,1.00 +1432,-153.60,24.00,1.00,0.00,1.00 +1433,28.80,-28.80,1.00,0.00,1.00 +1434,-148.80,28.80,1.00,0.00,1.00 +1435,38.40,-33.60,1.00,0.00,1.00 +1436,-139.20,33.60,1.00,0.00,1.00 +1437,48.00,-38.40,1.00,0.00,1.00 +1438,-124.80,38.40,1.00,0.00,1.00 +1439,57.60,-43.20,1.00,0.00,1.00 +1440,-115.20,43.20,1.00,0.00,1.00 +1441,72.00,-43.20,1.00,0.00,1.00 +1442,-100.80,43.20,1.00,0.00,1.00 +1443,86.40,-48.00,1.00,0.00,1.00 +1444,-86.40,48.00,1.00,0.00,1.00 +1445,100.80,-48.00,1.00,0.00,1.00 +1446,-76.80,43.20,1.00,0.00,1.00 +1447,110.40,-43.20,1.00,0.00,1.00 +1448,-62.40,43.20,1.00,0.00,1.00 +1449,124.80,-38.40,1.00,0.00,1.00 +1450,-48.00,38.40,1.00,0.00,1.00 +1451,134.40,-38.40,1.00,0.00,1.00 +1452,-38.40,33.60,1.00,0.00,1.00 +1453,144.00,-28.80,1.00,0.00,1.00 +1454,-28.80,28.80,1.00,0.00,1.00 +1455,153.60,-24.00,1.00,0.00,1.00 +1456,-24.00,24.00,1.00,0.00,1.00 +1457,163.20,-19.20,1.00,0.00,1.00 +1458,-14.40,14.40,1.00,0.00,1.00 +1459,168.00,-14.40,1.00,0.00,1.00 +1460,-9.60,9.60,1.00,0.00,1.00 +1461,172.80,-4.80,1.00,0.00,1.00 +1462,-0.00,0.00,1.00,0.00,1.00 +1463,-177.60,0.00,1.00,0.00,1.00 +1464,4.80,-4.80,1.00,0.00,1.00 +1465,-172.80,9.60,1.00,0.00,1.00 +1466,9.60,-14.40,1.00,0.00,1.00 +1467,-163.20,14.40,1.00,0.00,1.00 +1468,19.20,-19.20,1.00,0.00,1.00 +1469,-158.40,24.00,1.00,0.00,1.00 +1470,28.80,-24.00,1.00,0.00,1.00 +1471,-148.80,28.80,1.00,0.00,1.00 +1472,33.60,-28.80,1.00,0.00,1.00 +1473,-139.20,33.60,1.00,0.00,1.00 +1474,43.20,-38.40,1.00,0.00,1.00 +1475,-129.60,38.40,1.00,0.00,1.00 +1476,57.60,-38.40,1.00,0.00,1.00 +1477,-120.00,43.20,1.00,0.00,1.00 +1478,67.20,-43.20,1.00,0.00,1.00 +1479,-105.60,43.20,1.00,0.00,1.00 +1480,81.60,-48.00,1.00,0.00,1.00 +1481,-91.20,48.00,1.00,0.00,1.00 +1482,96.00,-48.00,1.00,0.00,1.00 +1483,-76.80,43.20,1.00,0.00,1.00 +1484,110.40,-43.20,1.00,0.00,1.00 +1485,-67.20,43.20,1.00,0.00,1.00 +1486,120.00,-43.20,1.00,0.00,1.00 +1487,-52.80,38.40,1.00,0.00,1.00 +1488,134.40,-38.40,1.00,0.00,1.00 +1489,-43.20,33.60,1.00,0.00,1.00 +1490,144.00,-33.60,1.00,0.00,1.00 +1491,-33.60,28.80,1.00,0.00,1.00 +1492,153.60,-28.80,1.00,0.00,1.00 +1493,-24.00,24.00,1.00,0.00,1.00 +1494,158.40,-19.20,1.00,0.00,1.00 +1495,-19.20,19.20,1.00,0.00,1.00 +1496,168.00,-14.40,1.00,0.00,1.00 +1497,-9.60,9.60,1.00,0.00,1.00 +1498,172.80,-4.80,1.00,0.00,1.00 +1499,-4.80,4.80,1.00,0.00,1.00 diff --git a/scripts/tests/data/stvISM4.csv b/scripts/tests/data/stvISM4.csv new file mode 100644 index 0000000000..f3a2884ff0 --- /dev/null +++ b/scripts/tests/data/stvISM4.csv @@ -0,0 +1,1500 @@ +0,-0.00,0.00,1.00,0.00,1.00 +1,-0.00,4.80,1.00,0.00,1.00 +2,-0.00,9.60,1.00,0.00,1.00 +3,-0.00,14.40,1.00,0.00,1.00 +4,-0.00,19.20,1.00,0.00,1.00 +5,-0.00,24.00,1.00,0.00,1.00 +6,-0.00,28.80,1.00,0.00,1.00 +7,-0.00,33.60,1.00,0.00,1.00 +8,-0.00,38.40,1.00,0.00,1.00 +9,-0.00,43.20,1.00,0.00,1.00 +10,-0.00,48.00,1.00,0.00,1.00 +11,-0.00,52.80,1.00,0.00,1.00 +12,-0.00,57.60,1.00,0.00,1.00 +13,-0.00,62.40,1.00,0.00,1.00 +14,-0.00,67.20,1.00,0.00,1.00 +15,-0.00,72.00,1.00,0.00,1.00 +16,-0.00,76.80,1.00,0.00,1.00 +17,-0.00,81.60,1.00,0.00,1.00 +18,-0.00,86.40,1.00,0.00,1.00 +19,-177.60,91.20,1.00,0.00,1.00 +20,-177.60,86.40,1.00,0.00,1.00 +21,-177.60,81.60,1.00,0.00,1.00 +22,-177.60,76.80,1.00,0.00,1.00 +23,-177.60,72.00,1.00,0.00,1.00 +24,-177.60,67.20,1.00,0.00,1.00 +25,177.60,62.40,1.00,0.00,1.00 +26,177.60,57.60,1.00,0.00,1.00 +27,177.60,52.80,1.00,0.00,1.00 +28,177.60,48.00,1.00,0.00,1.00 +29,177.60,43.20,1.00,0.00,1.00 +30,177.60,38.40,1.00,0.00,1.00 +31,177.60,33.60,1.00,0.00,1.00 +32,177.60,28.80,1.00,0.00,1.00 +33,177.60,24.00,1.00,0.00,1.00 +34,177.60,19.20,1.00,0.00,1.00 +35,177.60,14.40,1.00,0.00,1.00 +36,177.60,9.60,1.00,0.00,1.00 +37,177.60,4.80,1.00,0.00,1.00 +38,-177.60,-0.00,1.00,0.00,1.00 +39,-177.60,-4.80,1.00,0.00,1.00 +40,-177.60,-9.60,1.00,0.00,1.00 +41,-177.60,-14.40,1.00,0.00,1.00 +42,-177.60,-19.20,1.00,0.00,1.00 +43,-177.60,-24.00,1.00,0.00,1.00 +44,-177.60,-28.80,1.00,0.00,1.00 +45,-177.60,-33.60,1.00,0.00,1.00 +46,-177.60,-38.40,1.00,0.00,1.00 +47,-177.60,-48.00,1.00,0.00,1.00 +48,-177.60,-48.00,1.00,0.00,1.00 +49,-177.60,-52.80,1.00,0.00,1.00 +50,-177.60,-57.60,1.00,0.00,1.00 +51,177.60,-62.40,1.00,0.00,1.00 +52,177.60,-67.20,1.00,0.00,1.00 +53,177.60,-76.80,1.00,0.00,1.00 +54,177.60,-76.80,1.00,0.00,1.00 +55,177.60,-86.40,1.00,0.00,1.00 +56,177.60,-91.20,1.00,0.00,1.00 +57,0.00,-86.40,1.00,0.00,1.00 +58,0.00,-81.60,1.00,0.00,1.00 +59,0.00,-76.80,1.00,0.00,1.00 +60,0.00,-72.00,1.00,0.00,1.00 +61,0.00,-67.20,1.00,0.00,1.00 +62,0.00,-62.40,1.00,0.00,1.00 +63,0.00,-57.60,1.00,0.00,1.00 +64,0.00,-52.80,1.00,0.00,1.00 +65,0.00,-48.00,1.00,0.00,1.00 +66,0.00,-43.20,1.00,0.00,1.00 +67,0.00,-38.40,1.00,0.00,1.00 +68,0.00,-33.60,1.00,0.00,1.00 +69,0.00,-28.80,1.00,0.00,1.00 +70,0.00,-24.00,1.00,0.00,1.00 +71,0.00,-19.20,1.00,0.00,1.00 +72,0.00,-14.40,1.00,0.00,1.00 +73,0.00,-9.60,1.00,0.00,1.00 +74,0.00,-4.80,1.00,0.00,1.00 +75,0.00,0.00,1.00,0.00,1.00 +76,0.00,4.80,1.00,0.00,1.00 +77,0.00,9.60,1.00,0.00,1.00 +78,0.00,14.40,1.00,0.00,1.00 +79,0.00,19.20,1.00,0.00,1.00 +80,0.00,24.00,1.00,0.00,1.00 +81,4.80,28.80,1.00,0.00,1.00 +82,4.80,33.60,1.00,0.00,1.00 +83,4.80,38.40,1.00,0.00,1.00 +84,4.80,43.20,1.00,0.00,1.00 +85,4.80,48.00,1.00,0.00,1.00 +86,4.80,52.80,1.00,0.00,1.00 +87,9.60,57.60,1.00,0.00,1.00 +88,9.60,62.40,1.00,0.00,1.00 +89,9.60,67.20,1.00,0.00,1.00 +90,14.40,72.00,1.00,0.00,1.00 +91,19.20,76.80,1.00,0.00,1.00 +92,28.80,81.60,1.00,0.00,1.00 +93,52.80,86.40,1.00,0.00,1.00 +94,105.60,86.40,1.00,0.00,1.00 +95,139.20,81.60,1.00,0.00,1.00 +96,158.40,76.80,1.00,0.00,1.00 +97,163.20,72.00,1.00,0.00,1.00 +98,168.00,67.20,1.00,0.00,1.00 +99,168.00,62.40,1.00,0.00,1.00 +100,172.80,57.60,1.00,0.00,1.00 +101,172.80,52.80,1.00,0.00,1.00 +102,172.80,48.00,1.00,0.00,1.00 +103,172.80,43.20,1.00,0.00,1.00 +104,177.60,38.40,1.00,0.00,1.00 +105,177.60,33.60,1.00,0.00,1.00 +106,177.60,28.80,1.00,0.00,1.00 +107,177.60,24.00,1.00,0.00,1.00 +108,177.60,19.20,1.00,0.00,1.00 +109,177.60,14.40,1.00,0.00,1.00 +110,177.60,9.60,1.00,0.00,1.00 +111,177.60,4.80,1.00,0.00,1.00 +112,177.60,0.00,1.00,0.00,1.00 +113,-177.60,-0.00,1.00,0.00,1.00 +114,-177.60,-4.80,1.00,0.00,1.00 +115,-177.60,-9.60,1.00,0.00,1.00 +116,-177.60,-14.40,1.00,0.00,1.00 +117,-177.60,-19.20,1.00,0.00,1.00 +118,-177.60,-24.00,1.00,0.00,1.00 +119,-177.60,-28.80,1.00,0.00,1.00 +120,-177.60,-33.60,1.00,0.00,1.00 +121,-177.60,-38.40,1.00,0.00,1.00 +122,-172.80,-43.20,1.00,0.00,1.00 +123,-172.80,-48.00,1.00,0.00,1.00 +124,-172.80,-52.80,1.00,0.00,1.00 +125,-172.80,-57.60,1.00,0.00,1.00 +126,-168.00,-62.40,1.00,0.00,1.00 +127,-168.00,-67.20,1.00,0.00,1.00 +128,-163.20,-72.00,1.00,0.00,1.00 +129,-158.40,-76.80,1.00,0.00,1.00 +130,-139.20,-81.60,1.00,0.00,1.00 +131,-105.60,-86.40,1.00,0.00,1.00 +132,-52.80,-86.40,1.00,0.00,1.00 +133,-28.80,-81.60,1.00,0.00,1.00 +134,-19.20,-76.80,1.00,0.00,1.00 +135,-14.40,-72.00,1.00,0.00,1.00 +136,-9.60,-67.20,1.00,0.00,1.00 +137,-9.60,-62.40,1.00,0.00,1.00 +138,-9.60,-57.60,1.00,0.00,1.00 +139,-4.80,-52.80,1.00,0.00,1.00 +140,-4.80,-48.00,1.00,0.00,1.00 +141,-4.80,-43.20,1.00,0.00,1.00 +142,-4.80,-38.40,1.00,0.00,1.00 +143,-4.80,-33.60,1.00,0.00,1.00 +144,-4.80,-28.80,1.00,0.00,1.00 +145,-0.00,-24.00,1.00,0.00,1.00 +146,-0.00,-19.20,1.00,0.00,1.00 +147,-0.00,-14.40,1.00,0.00,1.00 +148,-0.00,-9.60,1.00,0.00,1.00 +149,-0.00,-4.80,1.00,0.00,1.00 +150,0.00,0.00,1.00,0.00,1.00 +151,0.00,4.80,1.00,0.00,1.00 +152,0.00,9.60,1.00,0.00,1.00 +153,4.80,14.40,1.00,0.00,1.00 +154,4.80,19.20,1.00,0.00,1.00 +155,4.80,24.00,1.00,0.00,1.00 +156,4.80,28.80,1.00,0.00,1.00 +157,4.80,33.60,1.00,0.00,1.00 +158,9.60,38.40,1.00,0.00,1.00 +159,9.60,43.20,1.00,0.00,1.00 +160,9.60,48.00,1.00,0.00,1.00 +161,14.40,52.80,1.00,0.00,1.00 +162,14.40,57.60,1.00,0.00,1.00 +163,19.20,62.40,1.00,0.00,1.00 +164,24.00,67.20,1.00,0.00,1.00 +165,28.80,72.00,1.00,0.00,1.00 +166,33.60,72.00,1.00,0.00,1.00 +167,48.00,76.80,1.00,0.00,1.00 +168,67.20,81.60,1.00,0.00,1.00 +169,96.00,81.60,1.00,0.00,1.00 +170,120.00,76.80,1.00,0.00,1.00 +171,139.20,76.80,1.00,0.00,1.00 +172,148.80,72.00,1.00,0.00,1.00 +173,153.60,67.20,1.00,0.00,1.00 +174,158.40,62.40,1.00,0.00,1.00 +175,163.20,57.60,1.00,0.00,1.00 +176,168.00,52.80,1.00,0.00,1.00 +177,168.00,48.00,1.00,0.00,1.00 +178,168.00,43.20,1.00,0.00,1.00 +179,172.80,38.40,1.00,0.00,1.00 +180,172.80,33.60,1.00,0.00,1.00 +181,172.80,28.80,1.00,0.00,1.00 +182,177.60,24.00,1.00,0.00,1.00 +183,177.60,19.20,1.00,0.00,1.00 +184,177.60,14.40,1.00,0.00,1.00 +185,177.60,9.60,1.00,0.00,1.00 +186,177.60,4.80,1.00,0.00,1.00 +187,177.60,0.00,1.00,0.00,1.00 +188,-177.60,-0.00,1.00,0.00,1.00 +189,-177.60,-4.80,1.00,0.00,1.00 +190,-177.60,-9.60,1.00,0.00,1.00 +191,-177.60,-14.40,1.00,0.00,1.00 +192,-177.60,-19.20,1.00,0.00,1.00 +193,-177.60,-24.00,1.00,0.00,1.00 +194,-172.80,-28.80,1.00,0.00,1.00 +195,-172.80,-33.60,1.00,0.00,1.00 +196,-172.80,-38.40,1.00,0.00,1.00 +197,-168.00,-43.20,1.00,0.00,1.00 +198,-168.00,-48.00,1.00,0.00,1.00 +199,-168.00,-52.80,1.00,0.00,1.00 +200,-163.20,-57.60,1.00,0.00,1.00 +201,-158.40,-62.40,1.00,0.00,1.00 +202,-153.60,-67.20,1.00,0.00,1.00 +203,-148.80,-72.00,1.00,0.00,1.00 +204,-139.20,-76.80,1.00,0.00,1.00 +205,-120.00,-76.80,1.00,0.00,1.00 +206,-96.00,-81.60,1.00,0.00,1.00 +207,-67.20,-81.60,1.00,0.00,1.00 +208,-48.00,-76.80,1.00,0.00,1.00 +209,-33.60,-72.00,1.00,0.00,1.00 +210,-28.80,-72.00,1.00,0.00,1.00 +211,-24.00,-67.20,1.00,0.00,1.00 +212,-19.20,-62.40,1.00,0.00,1.00 +213,-14.40,-57.60,1.00,0.00,1.00 +214,-14.40,-52.80,1.00,0.00,1.00 +215,-9.60,-48.00,1.00,0.00,1.00 +216,-9.60,-43.20,1.00,0.00,1.00 +217,-9.60,-38.40,1.00,0.00,1.00 +218,-4.80,-33.60,1.00,0.00,1.00 +219,-4.80,-28.80,1.00,0.00,1.00 +220,-4.80,-24.00,1.00,0.00,1.00 +221,-4.80,-19.20,1.00,0.00,1.00 +222,-4.80,-14.40,1.00,0.00,1.00 +223,-0.00,-9.60,1.00,0.00,1.00 +224,-0.00,-4.80,1.00,0.00,1.00 +225,0.00,0.00,1.00,0.00,1.00 +226,0.00,4.80,1.00,0.00,1.00 +227,4.80,9.60,1.00,0.00,1.00 +228,4.80,14.40,1.00,0.00,1.00 +229,4.80,19.20,1.00,0.00,1.00 +230,4.80,24.00,1.00,0.00,1.00 +231,9.60,28.80,1.00,0.00,1.00 +232,9.60,33.60,1.00,0.00,1.00 +233,9.60,38.40,1.00,0.00,1.00 +234,14.40,43.20,1.00,0.00,1.00 +235,14.40,48.00,1.00,0.00,1.00 +236,19.20,52.80,1.00,0.00,1.00 +237,19.20,52.80,1.00,0.00,1.00 +238,24.00,57.60,1.00,0.00,1.00 +239,28.80,62.40,1.00,0.00,1.00 +240,38.40,67.20,1.00,0.00,1.00 +241,48.00,72.00,1.00,0.00,1.00 +242,57.60,72.00,1.00,0.00,1.00 +243,76.80,76.80,1.00,0.00,1.00 +244,96.00,76.80,1.00,0.00,1.00 +245,115.20,76.80,1.00,0.00,1.00 +246,129.60,72.00,1.00,0.00,1.00 +247,139.20,67.20,1.00,0.00,1.00 +248,144.00,67.20,1.00,0.00,1.00 +249,153.60,62.40,1.00,0.00,1.00 +250,158.40,57.60,1.00,0.00,1.00 +251,158.40,52.80,1.00,0.00,1.00 +252,163.20,48.00,1.00,0.00,1.00 +253,168.00,43.20,1.00,0.00,1.00 +254,168.00,38.40,1.00,0.00,1.00 +255,168.00,33.60,1.00,0.00,1.00 +256,172.80,28.80,1.00,0.00,1.00 +257,172.80,24.00,1.00,0.00,1.00 +258,172.80,19.20,1.00,0.00,1.00 +259,177.60,14.40,1.00,0.00,1.00 +260,177.60,9.60,1.00,0.00,1.00 +261,177.60,4.80,1.00,0.00,1.00 +262,177.60,0.00,1.00,0.00,1.00 +263,-177.60,-0.00,1.00,0.00,1.00 +264,-177.60,-4.80,1.00,0.00,1.00 +265,-177.60,-9.60,1.00,0.00,1.00 +266,-177.60,-14.40,1.00,0.00,1.00 +267,-172.80,-19.20,1.00,0.00,1.00 +268,-172.80,-24.00,1.00,0.00,1.00 +269,-172.80,-28.80,1.00,0.00,1.00 +270,-168.00,-33.60,1.00,0.00,1.00 +271,-168.00,-38.40,1.00,0.00,1.00 +272,-168.00,-43.20,1.00,0.00,1.00 +273,-163.20,-48.00,1.00,0.00,1.00 +274,-158.40,-52.80,1.00,0.00,1.00 +275,-158.40,-57.60,1.00,0.00,1.00 +276,-153.60,-62.40,1.00,0.00,1.00 +277,-144.00,-67.20,1.00,0.00,1.00 +278,-139.20,-67.20,1.00,0.00,1.00 +279,-129.60,-72.00,1.00,0.00,1.00 +280,-115.20,-76.80,1.00,0.00,1.00 +281,-96.00,-76.80,1.00,0.00,1.00 +282,-76.80,-76.80,1.00,0.00,1.00 +283,-57.60,-72.00,1.00,0.00,1.00 +284,-48.00,-72.00,1.00,0.00,1.00 +285,-38.40,-67.20,1.00,0.00,1.00 +286,-28.80,-62.40,1.00,0.00,1.00 +287,-24.00,-57.60,1.00,0.00,1.00 +288,-19.20,-52.80,1.00,0.00,1.00 +289,-19.20,-52.80,1.00,0.00,1.00 +290,-14.40,-48.00,1.00,0.00,1.00 +291,-14.40,-43.20,1.00,0.00,1.00 +292,-9.60,-38.40,1.00,0.00,1.00 +293,-9.60,-33.60,1.00,0.00,1.00 +294,-9.60,-28.80,1.00,0.00,1.00 +295,-4.80,-24.00,1.00,0.00,1.00 +296,-4.80,-19.20,1.00,0.00,1.00 +297,-4.80,-14.40,1.00,0.00,1.00 +298,-4.80,-9.60,1.00,0.00,1.00 +299,-0.00,-4.80,1.00,0.00,1.00 +300,0.00,0.00,1.00,0.00,1.00 +301,0.00,4.80,1.00,0.00,1.00 +302,4.80,9.60,1.00,0.00,1.00 +303,4.80,14.40,1.00,0.00,1.00 +304,4.80,19.20,1.00,0.00,1.00 +305,9.60,24.00,1.00,0.00,1.00 +306,9.60,28.80,1.00,0.00,1.00 +307,14.40,33.60,1.00,0.00,1.00 +308,14.40,33.60,1.00,0.00,1.00 +309,19.20,38.40,1.00,0.00,1.00 +310,19.20,43.20,1.00,0.00,1.00 +311,24.00,48.00,1.00,0.00,1.00 +312,28.80,52.80,1.00,0.00,1.00 +313,33.60,57.60,1.00,0.00,1.00 +314,38.40,62.40,1.00,0.00,1.00 +315,43.20,62.40,1.00,0.00,1.00 +316,52.80,67.20,1.00,0.00,1.00 +317,67.20,67.20,1.00,0.00,1.00 +318,76.80,72.00,1.00,0.00,1.00 +319,96.00,72.00,1.00,0.00,1.00 +320,105.60,72.00,1.00,0.00,1.00 +321,120.00,67.20,1.00,0.00,1.00 +322,129.60,67.20,1.00,0.00,1.00 +323,139.20,62.40,1.00,0.00,1.00 +324,144.00,57.60,1.00,0.00,1.00 +325,148.80,52.80,1.00,0.00,1.00 +326,153.60,52.80,1.00,0.00,1.00 +327,158.40,48.00,1.00,0.00,1.00 +328,163.20,43.20,1.00,0.00,1.00 +329,163.20,38.40,1.00,0.00,1.00 +330,168.00,33.60,1.00,0.00,1.00 +331,168.00,28.80,1.00,0.00,1.00 +332,172.80,24.00,1.00,0.00,1.00 +333,172.80,19.20,1.00,0.00,1.00 +334,172.80,14.40,1.00,0.00,1.00 +335,177.60,9.60,1.00,0.00,1.00 +336,177.60,4.80,1.00,0.00,1.00 +337,177.60,0.00,1.00,0.00,1.00 +338,-177.60,-0.00,1.00,0.00,1.00 +339,-177.60,-4.80,1.00,0.00,1.00 +340,-177.60,-9.60,1.00,0.00,1.00 +341,-172.80,-14.40,1.00,0.00,1.00 +342,-172.80,-19.20,1.00,0.00,1.00 +343,-172.80,-24.00,1.00,0.00,1.00 +344,-168.00,-28.80,1.00,0.00,1.00 +345,-168.00,-33.60,1.00,0.00,1.00 +346,-163.20,-38.40,1.00,0.00,1.00 +347,-163.20,-43.20,1.00,0.00,1.00 +348,-158.40,-48.00,1.00,0.00,1.00 +349,-153.60,-52.80,1.00,0.00,1.00 +350,-148.80,-52.80,1.00,0.00,1.00 +351,-144.00,-57.60,1.00,0.00,1.00 +352,-139.20,-62.40,1.00,0.00,1.00 +353,-129.60,-67.20,1.00,0.00,1.00 +354,-120.00,-67.20,1.00,0.00,1.00 +355,-105.60,-72.00,1.00,0.00,1.00 +356,-96.00,-72.00,1.00,0.00,1.00 +357,-76.80,-72.00,1.00,0.00,1.00 +358,-67.20,-67.20,1.00,0.00,1.00 +359,-52.80,-67.20,1.00,0.00,1.00 +360,-43.20,-62.40,1.00,0.00,1.00 +361,-38.40,-62.40,1.00,0.00,1.00 +362,-33.60,-57.60,1.00,0.00,1.00 +363,-28.80,-52.80,1.00,0.00,1.00 +364,-24.00,-48.00,1.00,0.00,1.00 +365,-19.20,-43.20,1.00,0.00,1.00 +366,-19.20,-38.40,1.00,0.00,1.00 +367,-14.40,-33.60,1.00,0.00,1.00 +368,-14.40,-33.60,1.00,0.00,1.00 +369,-9.60,-28.80,1.00,0.00,1.00 +370,-9.60,-24.00,1.00,0.00,1.00 +371,-4.80,-19.20,1.00,0.00,1.00 +372,-4.80,-14.40,1.00,0.00,1.00 +373,-4.80,-9.60,1.00,0.00,1.00 +374,-0.00,-4.80,1.00,0.00,1.00 +375,0.00,0.00,1.00,0.00,1.00 +376,0.00,4.80,1.00,0.00,1.00 +377,4.80,9.60,1.00,0.00,1.00 +378,4.80,14.40,1.00,0.00,1.00 +379,9.60,19.20,1.00,0.00,1.00 +380,9.60,24.00,1.00,0.00,1.00 +381,14.40,24.00,1.00,0.00,1.00 +382,14.40,28.80,1.00,0.00,1.00 +383,19.20,33.60,1.00,0.00,1.00 +384,19.20,38.40,1.00,0.00,1.00 +385,24.00,43.20,1.00,0.00,1.00 +386,28.80,48.00,1.00,0.00,1.00 +387,33.60,52.80,1.00,0.00,1.00 +388,38.40,52.80,1.00,0.00,1.00 +389,43.20,57.60,1.00,0.00,1.00 +390,52.80,62.40,1.00,0.00,1.00 +391,62.40,62.40,1.00,0.00,1.00 +392,72.00,62.40,1.00,0.00,1.00 +393,81.60,67.20,1.00,0.00,1.00 +394,91.20,67.20,1.00,0.00,1.00 +395,105.60,67.20,1.00,0.00,1.00 +396,115.20,62.40,1.00,0.00,1.00 +397,124.80,62.40,1.00,0.00,1.00 +398,134.40,57.60,1.00,0.00,1.00 +399,139.20,57.60,1.00,0.00,1.00 +400,144.00,52.80,1.00,0.00,1.00 +401,148.80,48.00,1.00,0.00,1.00 +402,153.60,43.20,1.00,0.00,1.00 +403,158.40,38.40,1.00,0.00,1.00 +404,158.40,38.40,1.00,0.00,1.00 +405,163.20,33.60,1.00,0.00,1.00 +406,168.00,28.80,1.00,0.00,1.00 +407,168.00,24.00,1.00,0.00,1.00 +408,172.80,19.20,1.00,0.00,1.00 +409,172.80,14.40,1.00,0.00,1.00 +410,172.80,9.60,1.00,0.00,1.00 +411,177.60,4.80,1.00,0.00,1.00 +412,177.60,0.00,1.00,0.00,1.00 +413,-177.60,-0.00,1.00,0.00,1.00 +414,-177.60,-4.80,1.00,0.00,1.00 +415,-172.80,-9.60,1.00,0.00,1.00 +416,-172.80,-14.40,1.00,0.00,1.00 +417,-172.80,-19.20,1.00,0.00,1.00 +418,-168.00,-24.00,1.00,0.00,1.00 +419,-168.00,-28.80,1.00,0.00,1.00 +420,-163.20,-33.60,1.00,0.00,1.00 +421,-158.40,-38.40,1.00,0.00,1.00 +422,-158.40,-38.40,1.00,0.00,1.00 +423,-153.60,-43.20,1.00,0.00,1.00 +424,-148.80,-48.00,1.00,0.00,1.00 +425,-144.00,-52.80,1.00,0.00,1.00 +426,-139.20,-57.60,1.00,0.00,1.00 +427,-134.40,-57.60,1.00,0.00,1.00 +428,-124.80,-62.40,1.00,0.00,1.00 +429,-115.20,-62.40,1.00,0.00,1.00 +430,-105.60,-67.20,1.00,0.00,1.00 +431,-91.20,-67.20,1.00,0.00,1.00 +432,-81.60,-67.20,1.00,0.00,1.00 +433,-72.00,-62.40,1.00,0.00,1.00 +434,-62.40,-62.40,1.00,0.00,1.00 +435,-52.80,-62.40,1.00,0.00,1.00 +436,-43.20,-57.60,1.00,0.00,1.00 +437,-38.40,-52.80,1.00,0.00,1.00 +438,-33.60,-52.80,1.00,0.00,1.00 +439,-28.80,-48.00,1.00,0.00,1.00 +440,-24.00,-43.20,1.00,0.00,1.00 +441,-19.20,-38.40,1.00,0.00,1.00 +442,-19.20,-33.60,1.00,0.00,1.00 +443,-14.40,-28.80,1.00,0.00,1.00 +444,-14.40,-24.00,1.00,0.00,1.00 +445,-9.60,-24.00,1.00,0.00,1.00 +446,-9.60,-19.20,1.00,0.00,1.00 +447,-4.80,-14.40,1.00,0.00,1.00 +448,-4.80,-9.60,1.00,0.00,1.00 +449,-0.00,-4.80,1.00,0.00,1.00 +450,0.00,0.00,1.00,0.00,1.00 +451,0.00,4.80,1.00,0.00,1.00 +452,4.80,9.60,1.00,0.00,1.00 +453,4.80,14.40,1.00,0.00,1.00 +454,9.60,14.40,1.00,0.00,1.00 +455,14.40,19.20,1.00,0.00,1.00 +456,14.40,24.00,1.00,0.00,1.00 +457,19.20,28.80,1.00,0.00,1.00 +458,19.20,33.60,1.00,0.00,1.00 +459,24.00,38.40,1.00,0.00,1.00 +460,28.80,38.40,1.00,0.00,1.00 +461,33.60,43.20,1.00,0.00,1.00 +462,38.40,48.00,1.00,0.00,1.00 +463,43.20,52.80,1.00,0.00,1.00 +464,48.00,52.80,1.00,0.00,1.00 +465,57.60,57.60,1.00,0.00,1.00 +466,62.40,57.60,1.00,0.00,1.00 +467,72.00,62.40,1.00,0.00,1.00 +468,81.60,62.40,1.00,0.00,1.00 +469,91.20,62.40,1.00,0.00,1.00 +470,100.80,62.40,1.00,0.00,1.00 +471,110.40,57.60,1.00,0.00,1.00 +472,120.00,57.60,1.00,0.00,1.00 +473,129.60,57.60,1.00,0.00,1.00 +474,134.40,52.80,1.00,0.00,1.00 +475,139.20,48.00,1.00,0.00,1.00 +476,144.00,48.00,1.00,0.00,1.00 +477,148.80,43.20,1.00,0.00,1.00 +478,153.60,38.40,1.00,0.00,1.00 +479,158.40,33.60,1.00,0.00,1.00 +480,158.40,28.80,1.00,0.00,1.00 +481,163.20,28.80,1.00,0.00,1.00 +482,168.00,24.00,1.00,0.00,1.00 +483,168.00,19.20,1.00,0.00,1.00 +484,172.80,14.40,1.00,0.00,1.00 +485,172.80,9.60,1.00,0.00,1.00 +486,177.60,4.80,1.00,0.00,1.00 +487,177.60,0.00,1.00,0.00,1.00 +488,-177.60,-0.00,1.00,0.00,1.00 +489,-177.60,-4.80,1.00,0.00,1.00 +490,-172.80,-9.60,1.00,0.00,1.00 +491,-172.80,-14.40,1.00,0.00,1.00 +492,-168.00,-19.20,1.00,0.00,1.00 +493,-168.00,-24.00,1.00,0.00,1.00 +494,-163.20,-28.80,1.00,0.00,1.00 +495,-158.40,-28.80,1.00,0.00,1.00 +496,-158.40,-33.60,1.00,0.00,1.00 +497,-153.60,-38.40,1.00,0.00,1.00 +498,-148.80,-43.20,1.00,0.00,1.00 +499,-144.00,-48.00,1.00,0.00,1.00 +500,-139.20,-48.00,1.00,0.00,1.00 +501,-134.40,-52.80,1.00,0.00,1.00 +502,-129.60,-57.60,1.00,0.00,1.00 +503,-120.00,-57.60,1.00,0.00,1.00 +504,-110.40,-57.60,1.00,0.00,1.00 +505,-100.80,-62.40,1.00,0.00,1.00 +506,-91.20,-62.40,1.00,0.00,1.00 +507,-81.60,-62.40,1.00,0.00,1.00 +508,-72.00,-62.40,1.00,0.00,1.00 +509,-62.40,-57.60,1.00,0.00,1.00 +510,-57.60,-57.60,1.00,0.00,1.00 +511,-48.00,-52.80,1.00,0.00,1.00 +512,-43.20,-52.80,1.00,0.00,1.00 +513,-38.40,-48.00,1.00,0.00,1.00 +514,-33.60,-43.20,1.00,0.00,1.00 +515,-28.80,-38.40,1.00,0.00,1.00 +516,-24.00,-38.40,1.00,0.00,1.00 +517,-19.20,-33.60,1.00,0.00,1.00 +518,-19.20,-28.80,1.00,0.00,1.00 +519,-14.40,-24.00,1.00,0.00,1.00 +520,-14.40,-19.20,1.00,0.00,1.00 +521,-9.60,-14.40,1.00,0.00,1.00 +522,-4.80,-14.40,1.00,0.00,1.00 +523,-4.80,-9.60,1.00,0.00,1.00 +524,-0.00,-4.80,1.00,0.00,1.00 +525,0.00,0.00,1.00,0.00,1.00 +526,4.80,4.80,1.00,0.00,1.00 +527,4.80,9.60,1.00,0.00,1.00 +528,9.60,9.60,1.00,0.00,1.00 +529,9.60,14.40,1.00,0.00,1.00 +530,14.40,19.20,1.00,0.00,1.00 +531,19.20,24.00,1.00,0.00,1.00 +532,19.20,28.80,1.00,0.00,1.00 +533,24.00,28.80,1.00,0.00,1.00 +534,28.80,33.60,1.00,0.00,1.00 +535,33.60,38.40,1.00,0.00,1.00 +536,38.40,43.20,1.00,0.00,1.00 +537,43.20,43.20,1.00,0.00,1.00 +538,48.00,48.00,1.00,0.00,1.00 +539,52.80,48.00,1.00,0.00,1.00 +540,57.60,52.80,1.00,0.00,1.00 +541,67.20,52.80,1.00,0.00,1.00 +542,76.80,57.60,1.00,0.00,1.00 +543,81.60,57.60,1.00,0.00,1.00 +544,91.20,57.60,1.00,0.00,1.00 +545,100.80,57.60,1.00,0.00,1.00 +546,110.40,52.80,1.00,0.00,1.00 +547,115.20,52.80,1.00,0.00,1.00 +548,124.80,52.80,1.00,0.00,1.00 +549,129.60,48.00,1.00,0.00,1.00 +550,134.40,48.00,1.00,0.00,1.00 +551,139.20,43.20,1.00,0.00,1.00 +552,144.00,38.40,1.00,0.00,1.00 +553,148.80,38.40,1.00,0.00,1.00 +554,153.60,33.60,1.00,0.00,1.00 +555,158.40,28.80,1.00,0.00,1.00 +556,163.20,24.00,1.00,0.00,1.00 +557,163.20,24.00,1.00,0.00,1.00 +558,168.00,19.20,1.00,0.00,1.00 +559,172.80,14.40,1.00,0.00,1.00 +560,172.80,9.60,1.00,0.00,1.00 +561,177.60,4.80,1.00,0.00,1.00 +562,177.60,0.00,1.00,0.00,1.00 +563,-177.60,-0.00,1.00,0.00,1.00 +564,-177.60,-4.80,1.00,0.00,1.00 +565,-172.80,-9.60,1.00,0.00,1.00 +566,-172.80,-14.40,1.00,0.00,1.00 +567,-168.00,-19.20,1.00,0.00,1.00 +568,-163.20,-24.00,1.00,0.00,1.00 +569,-163.20,-24.00,1.00,0.00,1.00 +570,-158.40,-28.80,1.00,0.00,1.00 +571,-153.60,-33.60,1.00,0.00,1.00 +572,-148.80,-38.40,1.00,0.00,1.00 +573,-144.00,-38.40,1.00,0.00,1.00 +574,-139.20,-43.20,1.00,0.00,1.00 +575,-134.40,-48.00,1.00,0.00,1.00 +576,-129.60,-48.00,1.00,0.00,1.00 +577,-124.80,-52.80,1.00,0.00,1.00 +578,-115.20,-52.80,1.00,0.00,1.00 +579,-110.40,-52.80,1.00,0.00,1.00 +580,-100.80,-57.60,1.00,0.00,1.00 +581,-91.20,-57.60,1.00,0.00,1.00 +582,-81.60,-57.60,1.00,0.00,1.00 +583,-76.80,-57.60,1.00,0.00,1.00 +584,-67.20,-52.80,1.00,0.00,1.00 +585,-57.60,-52.80,1.00,0.00,1.00 +586,-52.80,-48.00,1.00,0.00,1.00 +587,-48.00,-48.00,1.00,0.00,1.00 +588,-43.20,-43.20,1.00,0.00,1.00 +589,-38.40,-43.20,1.00,0.00,1.00 +590,-33.60,-38.40,1.00,0.00,1.00 +591,-28.80,-33.60,1.00,0.00,1.00 +592,-24.00,-28.80,1.00,0.00,1.00 +593,-19.20,-28.80,1.00,0.00,1.00 +594,-19.20,-24.00,1.00,0.00,1.00 +595,-14.40,-19.20,1.00,0.00,1.00 +596,-9.60,-14.40,1.00,0.00,1.00 +597,-9.60,-9.60,1.00,0.00,1.00 +598,-4.80,-9.60,1.00,0.00,1.00 +599,-4.80,-4.80,1.00,0.00,1.00 +600,0.00,0.00,1.00,0.00,1.00 +601,4.80,4.80,1.00,0.00,1.00 +602,4.80,9.60,1.00,0.00,1.00 +603,9.60,9.60,1.00,0.00,1.00 +604,14.40,14.40,1.00,0.00,1.00 +605,14.40,19.20,1.00,0.00,1.00 +606,19.20,24.00,1.00,0.00,1.00 +607,24.00,24.00,1.00,0.00,1.00 +608,24.00,28.80,1.00,0.00,1.00 +609,28.80,33.60,1.00,0.00,1.00 +610,33.60,33.60,1.00,0.00,1.00 +611,38.40,38.40,1.00,0.00,1.00 +612,43.20,43.20,1.00,0.00,1.00 +613,48.00,43.20,1.00,0.00,1.00 +614,57.60,48.00,1.00,0.00,1.00 +615,62.40,48.00,1.00,0.00,1.00 +616,67.20,48.00,1.00,0.00,1.00 +617,76.80,52.80,1.00,0.00,1.00 +618,86.40,52.80,1.00,0.00,1.00 +619,91.20,52.80,1.00,0.00,1.00 +620,100.80,52.80,1.00,0.00,1.00 +621,105.60,48.00,1.00,0.00,1.00 +622,115.20,48.00,1.00,0.00,1.00 +623,120.00,48.00,1.00,0.00,1.00 +624,124.80,43.20,1.00,0.00,1.00 +625,134.40,43.20,1.00,0.00,1.00 +626,139.20,38.40,1.00,0.00,1.00 +627,144.00,38.40,1.00,0.00,1.00 +628,148.80,33.60,1.00,0.00,1.00 +629,153.60,28.80,1.00,0.00,1.00 +630,153.60,28.80,1.00,0.00,1.00 +631,158.40,24.00,1.00,0.00,1.00 +632,163.20,19.20,1.00,0.00,1.00 +633,168.00,14.40,1.00,0.00,1.00 +634,168.00,14.40,1.00,0.00,1.00 +635,172.80,9.60,1.00,0.00,1.00 +636,177.60,4.80,1.00,0.00,1.00 +637,177.60,0.00,1.00,0.00,1.00 +638,-177.60,-0.00,1.00,0.00,1.00 +639,-177.60,-4.80,1.00,0.00,1.00 +640,-172.80,-9.60,1.00,0.00,1.00 +641,-168.00,-14.40,1.00,0.00,1.00 +642,-168.00,-14.40,1.00,0.00,1.00 +643,-163.20,-19.20,1.00,0.00,1.00 +644,-158.40,-24.00,1.00,0.00,1.00 +645,-153.60,-28.80,1.00,0.00,1.00 +646,-153.60,-28.80,1.00,0.00,1.00 +647,-148.80,-33.60,1.00,0.00,1.00 +648,-144.00,-38.40,1.00,0.00,1.00 +649,-139.20,-38.40,1.00,0.00,1.00 +650,-134.40,-43.20,1.00,0.00,1.00 +651,-124.80,-43.20,1.00,0.00,1.00 +652,-120.00,-48.00,1.00,0.00,1.00 +653,-115.20,-48.00,1.00,0.00,1.00 +654,-105.60,-48.00,1.00,0.00,1.00 +655,-100.80,-52.80,1.00,0.00,1.00 +656,-91.20,-52.80,1.00,0.00,1.00 +657,-86.40,-52.80,1.00,0.00,1.00 +658,-76.80,-52.80,1.00,0.00,1.00 +659,-67.20,-48.00,1.00,0.00,1.00 +660,-62.40,-48.00,1.00,0.00,1.00 +661,-57.60,-48.00,1.00,0.00,1.00 +662,-48.00,-43.20,1.00,0.00,1.00 +663,-43.20,-43.20,1.00,0.00,1.00 +664,-38.40,-38.40,1.00,0.00,1.00 +665,-33.60,-33.60,1.00,0.00,1.00 +666,-28.80,-33.60,1.00,0.00,1.00 +667,-24.00,-28.80,1.00,0.00,1.00 +668,-24.00,-24.00,1.00,0.00,1.00 +669,-19.20,-24.00,1.00,0.00,1.00 +670,-14.40,-19.20,1.00,0.00,1.00 +671,-14.40,-14.40,1.00,0.00,1.00 +672,-9.60,-9.60,1.00,0.00,1.00 +673,-4.80,-9.60,1.00,0.00,1.00 +674,-4.80,-4.80,1.00,0.00,1.00 +675,0.00,0.00,1.00,0.00,1.00 +676,4.80,4.80,1.00,0.00,1.00 +677,4.80,4.80,1.00,0.00,1.00 +678,9.60,9.60,1.00,0.00,1.00 +679,14.40,14.40,1.00,0.00,1.00 +680,19.20,19.20,1.00,0.00,1.00 +681,19.20,19.20,1.00,0.00,1.00 +682,24.00,24.00,1.00,0.00,1.00 +683,28.80,28.80,1.00,0.00,1.00 +684,33.60,28.80,1.00,0.00,1.00 +685,38.40,33.60,1.00,0.00,1.00 +686,43.20,33.60,1.00,0.00,1.00 +687,48.00,38.40,1.00,0.00,1.00 +688,52.80,38.40,1.00,0.00,1.00 +689,57.60,43.20,1.00,0.00,1.00 +690,62.40,43.20,1.00,0.00,1.00 +691,72.00,43.20,1.00,0.00,1.00 +692,76.80,48.00,1.00,0.00,1.00 +693,86.40,48.00,1.00,0.00,1.00 +694,91.20,48.00,1.00,0.00,1.00 +695,100.80,48.00,1.00,0.00,1.00 +696,105.60,48.00,1.00,0.00,1.00 +697,110.40,43.20,1.00,0.00,1.00 +698,120.00,43.20,1.00,0.00,1.00 +699,124.80,43.20,1.00,0.00,1.00 +700,129.60,38.40,1.00,0.00,1.00 +701,134.40,38.40,1.00,0.00,1.00 +702,139.20,33.60,1.00,0.00,1.00 +703,144.00,33.60,1.00,0.00,1.00 +704,148.80,28.80,1.00,0.00,1.00 +705,153.60,24.00,1.00,0.00,1.00 +706,158.40,24.00,1.00,0.00,1.00 +707,163.20,19.20,1.00,0.00,1.00 +708,163.20,14.40,1.00,0.00,1.00 +709,168.00,14.40,1.00,0.00,1.00 +710,172.80,9.60,1.00,0.00,1.00 +711,172.80,4.80,1.00,0.00,1.00 +712,177.60,0.00,1.00,0.00,1.00 +713,-177.60,-0.00,1.00,0.00,1.00 +714,-172.80,-4.80,1.00,0.00,1.00 +715,-172.80,-9.60,1.00,0.00,1.00 +716,-168.00,-14.40,1.00,0.00,1.00 +717,-163.20,-14.40,1.00,0.00,1.00 +718,-163.20,-19.20,1.00,0.00,1.00 +719,-158.40,-24.00,1.00,0.00,1.00 +720,-153.60,-24.00,1.00,0.00,1.00 +721,-148.80,-28.80,1.00,0.00,1.00 +722,-144.00,-33.60,1.00,0.00,1.00 +723,-139.20,-33.60,1.00,0.00,1.00 +724,-134.40,-38.40,1.00,0.00,1.00 +725,-129.60,-38.40,1.00,0.00,1.00 +726,-124.80,-43.20,1.00,0.00,1.00 +727,-120.00,-43.20,1.00,0.00,1.00 +728,-110.40,-43.20,1.00,0.00,1.00 +729,-105.60,-48.00,1.00,0.00,1.00 +730,-100.80,-48.00,1.00,0.00,1.00 +731,-91.20,-48.00,1.00,0.00,1.00 +732,-86.40,-48.00,1.00,0.00,1.00 +733,-76.80,-48.00,1.00,0.00,1.00 +734,-72.00,-43.20,1.00,0.00,1.00 +735,-62.40,-43.20,1.00,0.00,1.00 +736,-57.60,-43.20,1.00,0.00,1.00 +737,-52.80,-38.40,1.00,0.00,1.00 +738,-48.00,-38.40,1.00,0.00,1.00 +739,-43.20,-33.60,1.00,0.00,1.00 +740,-38.40,-33.60,1.00,0.00,1.00 +741,-33.60,-28.80,1.00,0.00,1.00 +742,-28.80,-28.80,1.00,0.00,1.00 +743,-24.00,-24.00,1.00,0.00,1.00 +744,-19.20,-19.20,1.00,0.00,1.00 +745,-19.20,-19.20,1.00,0.00,1.00 +746,-14.40,-14.40,1.00,0.00,1.00 +747,-9.60,-9.60,1.00,0.00,1.00 +748,-4.80,-4.80,1.00,0.00,1.00 +749,-4.80,-4.80,1.00,0.00,1.00 +750,0.00,0.00,1.00,0.00,1.00 +751,4.80,4.80,1.00,0.00,1.00 +752,4.80,4.80,1.00,0.00,1.00 +753,9.60,9.60,1.00,0.00,1.00 +754,14.40,14.40,1.00,0.00,1.00 +755,19.20,14.40,1.00,0.00,1.00 +756,24.00,19.20,1.00,0.00,1.00 +757,24.00,24.00,1.00,0.00,1.00 +758,28.80,24.00,1.00,0.00,1.00 +759,33.60,28.80,1.00,0.00,1.00 +760,38.40,28.80,1.00,0.00,1.00 +761,43.20,33.60,1.00,0.00,1.00 +762,48.00,33.60,1.00,0.00,1.00 +763,52.80,38.40,1.00,0.00,1.00 +764,62.40,38.40,1.00,0.00,1.00 +765,67.20,38.40,1.00,0.00,1.00 +766,72.00,38.40,1.00,0.00,1.00 +767,76.80,43.20,1.00,0.00,1.00 +768,86.40,43.20,1.00,0.00,1.00 +769,91.20,43.20,1.00,0.00,1.00 +770,96.00,43.20,1.00,0.00,1.00 +771,105.60,43.20,1.00,0.00,1.00 +772,110.40,38.40,1.00,0.00,1.00 +773,115.20,38.40,1.00,0.00,1.00 +774,120.00,38.40,1.00,0.00,1.00 +775,129.60,33.60,1.00,0.00,1.00 +776,134.40,33.60,1.00,0.00,1.00 +777,139.20,28.80,1.00,0.00,1.00 +778,144.00,28.80,1.00,0.00,1.00 +779,148.80,24.00,1.00,0.00,1.00 +780,153.60,24.00,1.00,0.00,1.00 +781,153.60,19.20,1.00,0.00,1.00 +782,158.40,19.20,1.00,0.00,1.00 +783,163.20,14.40,1.00,0.00,1.00 +784,168.00,9.60,1.00,0.00,1.00 +785,172.80,9.60,1.00,0.00,1.00 +786,172.80,4.80,1.00,0.00,1.00 +787,177.60,0.00,1.00,0.00,1.00 +788,-177.60,-0.00,1.00,0.00,1.00 +789,-172.80,-4.80,1.00,0.00,1.00 +790,-172.80,-9.60,1.00,0.00,1.00 +791,-168.00,-9.60,1.00,0.00,1.00 +792,-163.20,-14.40,1.00,0.00,1.00 +793,-158.40,-19.20,1.00,0.00,1.00 +794,-153.60,-19.20,1.00,0.00,1.00 +795,-153.60,-24.00,1.00,0.00,1.00 +796,-148.80,-24.00,1.00,0.00,1.00 +797,-144.00,-28.80,1.00,0.00,1.00 +798,-139.20,-28.80,1.00,0.00,1.00 +799,-134.40,-33.60,1.00,0.00,1.00 +800,-129.60,-33.60,1.00,0.00,1.00 +801,-120.00,-38.40,1.00,0.00,1.00 +802,-115.20,-38.40,1.00,0.00,1.00 +803,-110.40,-38.40,1.00,0.00,1.00 +804,-105.60,-43.20,1.00,0.00,1.00 +805,-96.00,-43.20,1.00,0.00,1.00 +806,-91.20,-43.20,1.00,0.00,1.00 +807,-86.40,-43.20,1.00,0.00,1.00 +808,-76.80,-43.20,1.00,0.00,1.00 +809,-72.00,-38.40,1.00,0.00,1.00 +810,-67.20,-38.40,1.00,0.00,1.00 +811,-62.40,-38.40,1.00,0.00,1.00 +812,-52.80,-38.40,1.00,0.00,1.00 +813,-48.00,-33.60,1.00,0.00,1.00 +814,-43.20,-33.60,1.00,0.00,1.00 +815,-38.40,-28.80,1.00,0.00,1.00 +816,-33.60,-28.80,1.00,0.00,1.00 +817,-28.80,-24.00,1.00,0.00,1.00 +818,-24.00,-24.00,1.00,0.00,1.00 +819,-24.00,-19.20,1.00,0.00,1.00 +820,-19.20,-14.40,1.00,0.00,1.00 +821,-14.40,-14.40,1.00,0.00,1.00 +822,-9.60,-9.60,1.00,0.00,1.00 +823,-4.80,-4.80,1.00,0.00,1.00 +824,-4.80,-4.80,1.00,0.00,1.00 +825,0.00,0.00,1.00,0.00,1.00 +826,4.80,4.80,1.00,0.00,1.00 +827,9.60,4.80,1.00,0.00,1.00 +828,9.60,9.60,1.00,0.00,1.00 +829,14.40,9.60,1.00,0.00,1.00 +830,19.20,14.40,1.00,0.00,1.00 +831,24.00,19.20,1.00,0.00,1.00 +832,28.80,19.20,1.00,0.00,1.00 +833,33.60,24.00,1.00,0.00,1.00 +834,38.40,24.00,1.00,0.00,1.00 +835,43.20,28.80,1.00,0.00,1.00 +836,48.00,28.80,1.00,0.00,1.00 +837,52.80,28.80,1.00,0.00,1.00 +838,57.60,33.60,1.00,0.00,1.00 +839,62.40,33.60,1.00,0.00,1.00 +840,67.20,33.60,1.00,0.00,1.00 +841,72.00,38.40,1.00,0.00,1.00 +842,81.60,38.40,1.00,0.00,1.00 +843,86.40,38.40,1.00,0.00,1.00 +844,91.20,38.40,1.00,0.00,1.00 +845,96.00,38.40,1.00,0.00,1.00 +846,105.60,38.40,1.00,0.00,1.00 +847,110.40,33.60,1.00,0.00,1.00 +848,115.20,33.60,1.00,0.00,1.00 +849,120.00,33.60,1.00,0.00,1.00 +850,124.80,33.60,1.00,0.00,1.00 +851,129.60,28.80,1.00,0.00,1.00 +852,134.40,28.80,1.00,0.00,1.00 +853,139.20,24.00,1.00,0.00,1.00 +854,144.00,24.00,1.00,0.00,1.00 +855,148.80,19.20,1.00,0.00,1.00 +856,153.60,19.20,1.00,0.00,1.00 +857,158.40,14.40,1.00,0.00,1.00 +858,163.20,14.40,1.00,0.00,1.00 +859,168.00,9.60,1.00,0.00,1.00 +860,168.00,9.60,1.00,0.00,1.00 +861,172.80,4.80,1.00,0.00,1.00 +862,177.60,0.00,1.00,0.00,1.00 +863,-177.60,-0.00,1.00,0.00,1.00 +864,-172.80,-4.80,1.00,0.00,1.00 +865,-168.00,-9.60,1.00,0.00,1.00 +866,-168.00,-9.60,1.00,0.00,1.00 +867,-163.20,-14.40,1.00,0.00,1.00 +868,-158.40,-14.40,1.00,0.00,1.00 +869,-153.60,-19.20,1.00,0.00,1.00 +870,-148.80,-19.20,1.00,0.00,1.00 +871,-144.00,-24.00,1.00,0.00,1.00 +872,-139.20,-24.00,1.00,0.00,1.00 +873,-134.40,-28.80,1.00,0.00,1.00 +874,-129.60,-28.80,1.00,0.00,1.00 +875,-124.80,-33.60,1.00,0.00,1.00 +876,-120.00,-33.60,1.00,0.00,1.00 +877,-115.20,-33.60,1.00,0.00,1.00 +878,-110.40,-33.60,1.00,0.00,1.00 +879,-105.60,-38.40,1.00,0.00,1.00 +880,-96.00,-38.40,1.00,0.00,1.00 +881,-91.20,-38.40,1.00,0.00,1.00 +882,-86.40,-38.40,1.00,0.00,1.00 +883,-81.60,-38.40,1.00,0.00,1.00 +884,-72.00,-38.40,1.00,0.00,1.00 +885,-67.20,-33.60,1.00,0.00,1.00 +886,-62.40,-33.60,1.00,0.00,1.00 +887,-57.60,-33.60,1.00,0.00,1.00 +888,-52.80,-28.80,1.00,0.00,1.00 +889,-48.00,-28.80,1.00,0.00,1.00 +890,-43.20,-28.80,1.00,0.00,1.00 +891,-38.40,-24.00,1.00,0.00,1.00 +892,-33.60,-24.00,1.00,0.00,1.00 +893,-28.80,-19.20,1.00,0.00,1.00 +894,-24.00,-19.20,1.00,0.00,1.00 +895,-19.20,-14.40,1.00,0.00,1.00 +896,-14.40,-9.60,1.00,0.00,1.00 +897,-9.60,-9.60,1.00,0.00,1.00 +898,-9.60,-4.80,1.00,0.00,1.00 +899,-4.80,-4.80,1.00,0.00,1.00 +900,0.00,0.00,1.00,0.00,1.00 +901,4.80,4.80,1.00,0.00,1.00 +902,9.60,4.80,1.00,0.00,1.00 +903,14.40,9.60,1.00,0.00,1.00 +904,14.40,9.60,1.00,0.00,1.00 +905,19.20,14.40,1.00,0.00,1.00 +906,24.00,14.40,1.00,0.00,1.00 +907,28.80,19.20,1.00,0.00,1.00 +908,33.60,19.20,1.00,0.00,1.00 +909,38.40,19.20,1.00,0.00,1.00 +910,43.20,24.00,1.00,0.00,1.00 +911,48.00,24.00,1.00,0.00,1.00 +912,52.80,28.80,1.00,0.00,1.00 +913,57.60,28.80,1.00,0.00,1.00 +914,62.40,28.80,1.00,0.00,1.00 +915,67.20,28.80,1.00,0.00,1.00 +916,76.80,33.60,1.00,0.00,1.00 +917,81.60,33.60,1.00,0.00,1.00 +918,86.40,33.60,1.00,0.00,1.00 +919,91.20,33.60,1.00,0.00,1.00 +920,96.00,33.60,1.00,0.00,1.00 +921,100.80,33.60,1.00,0.00,1.00 +922,110.40,28.80,1.00,0.00,1.00 +923,115.20,28.80,1.00,0.00,1.00 +924,120.00,28.80,1.00,0.00,1.00 +925,124.80,28.80,1.00,0.00,1.00 +926,129.60,24.00,1.00,0.00,1.00 +927,134.40,24.00,1.00,0.00,1.00 +928,139.20,24.00,1.00,0.00,1.00 +929,144.00,19.20,1.00,0.00,1.00 +930,148.80,19.20,1.00,0.00,1.00 +931,153.60,14.40,1.00,0.00,1.00 +932,158.40,14.40,1.00,0.00,1.00 +933,163.20,9.60,1.00,0.00,1.00 +934,168.00,9.60,1.00,0.00,1.00 +935,168.00,4.80,1.00,0.00,1.00 +936,172.80,4.80,1.00,0.00,1.00 +937,177.60,0.00,1.00,0.00,1.00 +938,-177.60,-0.00,1.00,0.00,1.00 +939,-172.80,-4.80,1.00,0.00,1.00 +940,-168.00,-4.80,1.00,0.00,1.00 +941,-168.00,-9.60,1.00,0.00,1.00 +942,-163.20,-9.60,1.00,0.00,1.00 +943,-158.40,-14.40,1.00,0.00,1.00 +944,-153.60,-14.40,1.00,0.00,1.00 +945,-148.80,-19.20,1.00,0.00,1.00 +946,-144.00,-19.20,1.00,0.00,1.00 +947,-139.20,-24.00,1.00,0.00,1.00 +948,-134.40,-24.00,1.00,0.00,1.00 +949,-129.60,-24.00,1.00,0.00,1.00 +950,-124.80,-28.80,1.00,0.00,1.00 +951,-120.00,-28.80,1.00,0.00,1.00 +952,-115.20,-28.80,1.00,0.00,1.00 +953,-110.40,-28.80,1.00,0.00,1.00 +954,-100.80,-33.60,1.00,0.00,1.00 +955,-96.00,-33.60,1.00,0.00,1.00 +956,-91.20,-33.60,1.00,0.00,1.00 +957,-86.40,-33.60,1.00,0.00,1.00 +958,-81.60,-33.60,1.00,0.00,1.00 +959,-76.80,-33.60,1.00,0.00,1.00 +960,-67.20,-28.80,1.00,0.00,1.00 +961,-62.40,-28.80,1.00,0.00,1.00 +962,-57.60,-28.80,1.00,0.00,1.00 +963,-52.80,-28.80,1.00,0.00,1.00 +964,-48.00,-24.00,1.00,0.00,1.00 +965,-43.20,-24.00,1.00,0.00,1.00 +966,-38.40,-19.20,1.00,0.00,1.00 +967,-33.60,-19.20,1.00,0.00,1.00 +968,-28.80,-19.20,1.00,0.00,1.00 +969,-24.00,-14.40,1.00,0.00,1.00 +970,-19.20,-14.40,1.00,0.00,1.00 +971,-14.40,-9.60,1.00,0.00,1.00 +972,-14.40,-9.60,1.00,0.00,1.00 +973,-9.60,-4.80,1.00,0.00,1.00 +974,-4.80,-4.80,1.00,0.00,1.00 +975,0.00,0.00,1.00,0.00,1.00 +976,4.80,0.00,1.00,0.00,1.00 +977,9.60,4.80,1.00,0.00,1.00 +978,14.40,4.80,1.00,0.00,1.00 +979,19.20,9.60,1.00,0.00,1.00 +980,19.20,9.60,1.00,0.00,1.00 +981,24.00,14.40,1.00,0.00,1.00 +982,28.80,14.40,1.00,0.00,1.00 +983,33.60,14.40,1.00,0.00,1.00 +984,38.40,19.20,1.00,0.00,1.00 +985,43.20,19.20,1.00,0.00,1.00 +986,48.00,24.00,1.00,0.00,1.00 +987,52.80,24.00,1.00,0.00,1.00 +988,57.60,24.00,1.00,0.00,1.00 +989,62.40,24.00,1.00,0.00,1.00 +990,72.00,24.00,1.00,0.00,1.00 +991,76.80,28.80,1.00,0.00,1.00 +992,81.60,28.80,1.00,0.00,1.00 +993,86.40,28.80,1.00,0.00,1.00 +994,91.20,28.80,1.00,0.00,1.00 +995,96.00,28.80,1.00,0.00,1.00 +996,100.80,28.80,1.00,0.00,1.00 +997,105.60,28.80,1.00,0.00,1.00 +998,110.40,24.00,1.00,0.00,1.00 +999,120.00,24.00,1.00,0.00,1.00 +1000,124.80,24.00,1.00,0.00,1.00 +1001,129.60,24.00,1.00,0.00,1.00 +1002,134.40,19.20,1.00,0.00,1.00 +1003,139.20,19.20,1.00,0.00,1.00 +1004,144.00,19.20,1.00,0.00,1.00 +1005,148.80,14.40,1.00,0.00,1.00 +1006,153.60,14.40,1.00,0.00,1.00 +1007,158.40,9.60,1.00,0.00,1.00 +1008,158.40,9.60,1.00,0.00,1.00 +1009,163.20,9.60,1.00,0.00,1.00 +1010,168.00,4.80,1.00,0.00,1.00 +1011,172.80,4.80,1.00,0.00,1.00 +1012,177.60,0.00,1.00,0.00,1.00 +1013,-177.60,-0.00,1.00,0.00,1.00 +1014,-172.80,-4.80,1.00,0.00,1.00 +1015,-168.00,-4.80,1.00,0.00,1.00 +1016,-163.20,-9.60,1.00,0.00,1.00 +1017,-158.40,-9.60,1.00,0.00,1.00 +1018,-158.40,-9.60,1.00,0.00,1.00 +1019,-153.60,-14.40,1.00,0.00,1.00 +1020,-148.80,-14.40,1.00,0.00,1.00 +1021,-144.00,-19.20,1.00,0.00,1.00 +1022,-139.20,-19.20,1.00,0.00,1.00 +1023,-134.40,-19.20,1.00,0.00,1.00 +1024,-129.60,-24.00,1.00,0.00,1.00 +1025,-124.80,-24.00,1.00,0.00,1.00 +1026,-120.00,-24.00,1.00,0.00,1.00 +1027,-110.40,-24.00,1.00,0.00,1.00 +1028,-105.60,-28.80,1.00,0.00,1.00 +1029,-100.80,-28.80,1.00,0.00,1.00 +1030,-96.00,-28.80,1.00,0.00,1.00 +1031,-91.20,-28.80,1.00,0.00,1.00 +1032,-86.40,-28.80,1.00,0.00,1.00 +1033,-81.60,-28.80,1.00,0.00,1.00 +1034,-76.80,-28.80,1.00,0.00,1.00 +1035,-72.00,-24.00,1.00,0.00,1.00 +1036,-62.40,-24.00,1.00,0.00,1.00 +1037,-57.60,-24.00,1.00,0.00,1.00 +1038,-52.80,-24.00,1.00,0.00,1.00 +1039,-48.00,-24.00,1.00,0.00,1.00 +1040,-43.20,-19.20,1.00,0.00,1.00 +1041,-38.40,-19.20,1.00,0.00,1.00 +1042,-33.60,-14.40,1.00,0.00,1.00 +1043,-28.80,-14.40,1.00,0.00,1.00 +1044,-24.00,-14.40,1.00,0.00,1.00 +1045,-19.20,-9.60,1.00,0.00,1.00 +1046,-19.20,-9.60,1.00,0.00,1.00 +1047,-14.40,-4.80,1.00,0.00,1.00 +1048,-9.60,-4.80,1.00,0.00,1.00 +1049,-4.80,-0.00,1.00,0.00,1.00 +1050,0.00,0.00,1.00,0.00,1.00 +1051,4.80,0.00,1.00,0.00,1.00 +1052,9.60,4.80,1.00,0.00,1.00 +1053,14.40,4.80,1.00,0.00,1.00 +1054,19.20,9.60,1.00,0.00,1.00 +1055,24.00,9.60,1.00,0.00,1.00 +1056,28.80,9.60,1.00,0.00,1.00 +1057,33.60,14.40,1.00,0.00,1.00 +1058,38.40,14.40,1.00,0.00,1.00 +1059,43.20,14.40,1.00,0.00,1.00 +1060,48.00,14.40,1.00,0.00,1.00 +1061,52.80,19.20,1.00,0.00,1.00 +1062,57.60,19.20,1.00,0.00,1.00 +1063,62.40,19.20,1.00,0.00,1.00 +1064,67.20,19.20,1.00,0.00,1.00 +1065,72.00,24.00,1.00,0.00,1.00 +1066,76.80,24.00,1.00,0.00,1.00 +1067,81.60,24.00,1.00,0.00,1.00 +1068,86.40,24.00,1.00,0.00,1.00 +1069,91.20,24.00,1.00,0.00,1.00 +1070,96.00,24.00,1.00,0.00,1.00 +1071,100.80,24.00,1.00,0.00,1.00 +1072,105.60,24.00,1.00,0.00,1.00 +1073,110.40,19.20,1.00,0.00,1.00 +1074,115.20,19.20,1.00,0.00,1.00 +1075,120.00,19.20,1.00,0.00,1.00 +1076,124.80,19.20,1.00,0.00,1.00 +1077,129.60,19.20,1.00,0.00,1.00 +1078,134.40,14.40,1.00,0.00,1.00 +1079,139.20,14.40,1.00,0.00,1.00 +1080,144.00,14.40,1.00,0.00,1.00 +1081,148.80,9.60,1.00,0.00,1.00 +1082,153.60,9.60,1.00,0.00,1.00 +1083,158.40,9.60,1.00,0.00,1.00 +1084,163.20,4.80,1.00,0.00,1.00 +1085,168.00,4.80,1.00,0.00,1.00 +1086,172.80,4.80,1.00,0.00,1.00 +1087,177.60,0.00,1.00,0.00,1.00 +1088,-177.60,-0.00,1.00,0.00,1.00 +1089,-172.80,-4.80,1.00,0.00,1.00 +1090,-168.00,-4.80,1.00,0.00,1.00 +1091,-163.20,-4.80,1.00,0.00,1.00 +1092,-158.40,-9.60,1.00,0.00,1.00 +1093,-153.60,-9.60,1.00,0.00,1.00 +1094,-148.80,-9.60,1.00,0.00,1.00 +1095,-144.00,-14.40,1.00,0.00,1.00 +1096,-139.20,-14.40,1.00,0.00,1.00 +1097,-134.40,-14.40,1.00,0.00,1.00 +1098,-129.60,-19.20,1.00,0.00,1.00 +1099,-124.80,-19.20,1.00,0.00,1.00 +1100,-120.00,-19.20,1.00,0.00,1.00 +1101,-115.20,-19.20,1.00,0.00,1.00 +1102,-110.40,-19.20,1.00,0.00,1.00 +1103,-105.60,-24.00,1.00,0.00,1.00 +1104,-100.80,-24.00,1.00,0.00,1.00 +1105,-96.00,-24.00,1.00,0.00,1.00 +1106,-91.20,-24.00,1.00,0.00,1.00 +1107,-86.40,-24.00,1.00,0.00,1.00 +1108,-81.60,-24.00,1.00,0.00,1.00 +1109,-76.80,-24.00,1.00,0.00,1.00 +1110,-72.00,-24.00,1.00,0.00,1.00 +1111,-67.20,-19.20,1.00,0.00,1.00 +1112,-62.40,-19.20,1.00,0.00,1.00 +1113,-57.60,-19.20,1.00,0.00,1.00 +1114,-52.80,-19.20,1.00,0.00,1.00 +1115,-48.00,-14.40,1.00,0.00,1.00 +1116,-43.20,-14.40,1.00,0.00,1.00 +1117,-38.40,-14.40,1.00,0.00,1.00 +1118,-33.60,-14.40,1.00,0.00,1.00 +1119,-28.80,-9.60,1.00,0.00,1.00 +1120,-24.00,-9.60,1.00,0.00,1.00 +1121,-19.20,-9.60,1.00,0.00,1.00 +1122,-14.40,-4.80,1.00,0.00,1.00 +1123,-9.60,-4.80,1.00,0.00,1.00 +1124,-4.80,-0.00,1.00,0.00,1.00 +1125,0.00,0.00,1.00,0.00,1.00 +1126,4.80,0.00,1.00,0.00,1.00 +1127,9.60,4.80,1.00,0.00,1.00 +1128,14.40,4.80,1.00,0.00,1.00 +1129,19.20,4.80,1.00,0.00,1.00 +1130,24.00,9.60,1.00,0.00,1.00 +1131,28.80,9.60,1.00,0.00,1.00 +1132,33.60,9.60,1.00,0.00,1.00 +1133,38.40,9.60,1.00,0.00,1.00 +1134,43.20,14.40,1.00,0.00,1.00 +1135,48.00,14.40,1.00,0.00,1.00 +1136,52.80,14.40,1.00,0.00,1.00 +1137,57.60,14.40,1.00,0.00,1.00 +1138,62.40,14.40,1.00,0.00,1.00 +1139,67.20,14.40,1.00,0.00,1.00 +1140,72.00,19.20,1.00,0.00,1.00 +1141,76.80,19.20,1.00,0.00,1.00 +1142,81.60,19.20,1.00,0.00,1.00 +1143,86.40,19.20,1.00,0.00,1.00 +1144,91.20,19.20,1.00,0.00,1.00 +1145,96.00,19.20,1.00,0.00,1.00 +1146,100.80,19.20,1.00,0.00,1.00 +1147,105.60,19.20,1.00,0.00,1.00 +1148,110.40,19.20,1.00,0.00,1.00 +1149,115.20,14.40,1.00,0.00,1.00 +1150,120.00,14.40,1.00,0.00,1.00 +1151,124.80,14.40,1.00,0.00,1.00 +1152,129.60,14.40,1.00,0.00,1.00 +1153,134.40,14.40,1.00,0.00,1.00 +1154,139.20,9.60,1.00,0.00,1.00 +1155,144.00,9.60,1.00,0.00,1.00 +1156,148.80,9.60,1.00,0.00,1.00 +1157,153.60,9.60,1.00,0.00,1.00 +1158,158.40,4.80,1.00,0.00,1.00 +1159,163.20,4.80,1.00,0.00,1.00 +1160,168.00,4.80,1.00,0.00,1.00 +1161,172.80,0.00,1.00,0.00,1.00 +1162,177.60,0.00,1.00,0.00,1.00 +1163,-177.60,-0.00,1.00,0.00,1.00 +1164,-172.80,-0.00,1.00,0.00,1.00 +1165,-168.00,-4.80,1.00,0.00,1.00 +1166,-163.20,-4.80,1.00,0.00,1.00 +1167,-158.40,-4.80,1.00,0.00,1.00 +1168,-153.60,-9.60,1.00,0.00,1.00 +1169,-148.80,-9.60,1.00,0.00,1.00 +1170,-144.00,-9.60,1.00,0.00,1.00 +1171,-139.20,-9.60,1.00,0.00,1.00 +1172,-134.40,-14.40,1.00,0.00,1.00 +1173,-129.60,-14.40,1.00,0.00,1.00 +1174,-124.80,-14.40,1.00,0.00,1.00 +1175,-120.00,-14.40,1.00,0.00,1.00 +1176,-115.20,-14.40,1.00,0.00,1.00 +1177,-110.40,-19.20,1.00,0.00,1.00 +1178,-105.60,-19.20,1.00,0.00,1.00 +1179,-100.80,-19.20,1.00,0.00,1.00 +1180,-96.00,-19.20,1.00,0.00,1.00 +1181,-91.20,-19.20,1.00,0.00,1.00 +1182,-86.40,-19.20,1.00,0.00,1.00 +1183,-81.60,-19.20,1.00,0.00,1.00 +1184,-76.80,-19.20,1.00,0.00,1.00 +1185,-72.00,-19.20,1.00,0.00,1.00 +1186,-67.20,-14.40,1.00,0.00,1.00 +1187,-62.40,-14.40,1.00,0.00,1.00 +1188,-57.60,-14.40,1.00,0.00,1.00 +1189,-52.80,-14.40,1.00,0.00,1.00 +1190,-48.00,-14.40,1.00,0.00,1.00 +1191,-43.20,-14.40,1.00,0.00,1.00 +1192,-38.40,-9.60,1.00,0.00,1.00 +1193,-33.60,-9.60,1.00,0.00,1.00 +1194,-28.80,-9.60,1.00,0.00,1.00 +1195,-24.00,-9.60,1.00,0.00,1.00 +1196,-19.20,-4.80,1.00,0.00,1.00 +1197,-14.40,-4.80,1.00,0.00,1.00 +1198,-9.60,-4.80,1.00,0.00,1.00 +1199,-4.80,-0.00,1.00,0.00,1.00 +1200,0.00,0.00,1.00,0.00,1.00 +1201,4.80,0.00,1.00,0.00,1.00 +1202,9.60,0.00,1.00,0.00,1.00 +1203,14.40,4.80,1.00,0.00,1.00 +1204,19.20,4.80,1.00,0.00,1.00 +1205,24.00,4.80,1.00,0.00,1.00 +1206,28.80,4.80,1.00,0.00,1.00 +1207,33.60,9.60,1.00,0.00,1.00 +1208,38.40,9.60,1.00,0.00,1.00 +1209,43.20,9.60,1.00,0.00,1.00 +1210,48.00,9.60,1.00,0.00,1.00 +1211,52.80,9.60,1.00,0.00,1.00 +1212,57.60,9.60,1.00,0.00,1.00 +1213,62.40,9.60,1.00,0.00,1.00 +1214,67.20,14.40,1.00,0.00,1.00 +1215,72.00,14.40,1.00,0.00,1.00 +1216,76.80,14.40,1.00,0.00,1.00 +1217,81.60,14.40,1.00,0.00,1.00 +1218,86.40,14.40,1.00,0.00,1.00 +1219,91.20,14.40,1.00,0.00,1.00 +1220,96.00,14.40,1.00,0.00,1.00 +1221,100.80,14.40,1.00,0.00,1.00 +1222,105.60,14.40,1.00,0.00,1.00 +1223,110.40,14.40,1.00,0.00,1.00 +1224,115.20,9.60,1.00,0.00,1.00 +1225,120.00,9.60,1.00,0.00,1.00 +1226,124.80,9.60,1.00,0.00,1.00 +1227,129.60,9.60,1.00,0.00,1.00 +1228,134.40,9.60,1.00,0.00,1.00 +1229,139.20,9.60,1.00,0.00,1.00 +1230,144.00,9.60,1.00,0.00,1.00 +1231,148.80,4.80,1.00,0.00,1.00 +1232,153.60,4.80,1.00,0.00,1.00 +1233,158.40,4.80,1.00,0.00,1.00 +1234,163.20,4.80,1.00,0.00,1.00 +1235,168.00,4.80,1.00,0.00,1.00 +1236,172.80,0.00,1.00,0.00,1.00 +1237,177.60,0.00,1.00,0.00,1.00 +1238,-177.60,-0.00,1.00,0.00,1.00 +1239,-172.80,-0.00,1.00,0.00,1.00 +1240,-168.00,-4.80,1.00,0.00,1.00 +1241,-163.20,-4.80,1.00,0.00,1.00 +1242,-158.40,-4.80,1.00,0.00,1.00 +1243,-153.60,-4.80,1.00,0.00,1.00 +1244,-148.80,-4.80,1.00,0.00,1.00 +1245,-144.00,-9.60,1.00,0.00,1.00 +1246,-139.20,-9.60,1.00,0.00,1.00 +1247,-134.40,-9.60,1.00,0.00,1.00 +1248,-129.60,-9.60,1.00,0.00,1.00 +1249,-124.80,-9.60,1.00,0.00,1.00 +1250,-120.00,-9.60,1.00,0.00,1.00 +1251,-115.20,-9.60,1.00,0.00,1.00 +1252,-110.40,-14.40,1.00,0.00,1.00 +1253,-105.60,-14.40,1.00,0.00,1.00 +1254,-100.80,-14.40,1.00,0.00,1.00 +1255,-96.00,-14.40,1.00,0.00,1.00 +1256,-91.20,-14.40,1.00,0.00,1.00 +1257,-86.40,-14.40,1.00,0.00,1.00 +1258,-81.60,-14.40,1.00,0.00,1.00 +1259,-76.80,-14.40,1.00,0.00,1.00 +1260,-72.00,-14.40,1.00,0.00,1.00 +1261,-67.20,-14.40,1.00,0.00,1.00 +1262,-62.40,-9.60,1.00,0.00,1.00 +1263,-57.60,-9.60,1.00,0.00,1.00 +1264,-52.80,-9.60,1.00,0.00,1.00 +1265,-48.00,-9.60,1.00,0.00,1.00 +1266,-43.20,-9.60,1.00,0.00,1.00 +1267,-38.40,-9.60,1.00,0.00,1.00 +1268,-33.60,-9.60,1.00,0.00,1.00 +1269,-28.80,-4.80,1.00,0.00,1.00 +1270,-24.00,-4.80,1.00,0.00,1.00 +1271,-19.20,-4.80,1.00,0.00,1.00 +1272,-14.40,-4.80,1.00,0.00,1.00 +1273,-9.60,-0.00,1.00,0.00,1.00 +1274,-4.80,-0.00,1.00,0.00,1.00 +1275,0.00,0.00,1.00,0.00,1.00 +1276,4.80,0.00,1.00,0.00,1.00 +1277,9.60,0.00,1.00,0.00,1.00 +1278,14.40,0.00,1.00,0.00,1.00 +1279,19.20,4.80,1.00,0.00,1.00 +1280,24.00,4.80,1.00,0.00,1.00 +1281,28.80,4.80,1.00,0.00,1.00 +1282,33.60,4.80,1.00,0.00,1.00 +1283,38.40,4.80,1.00,0.00,1.00 +1284,43.20,4.80,1.00,0.00,1.00 +1285,48.00,4.80,1.00,0.00,1.00 +1286,52.80,4.80,1.00,0.00,1.00 +1287,57.60,4.80,1.00,0.00,1.00 +1288,62.40,9.60,1.00,0.00,1.00 +1289,67.20,9.60,1.00,0.00,1.00 +1290,72.00,9.60,1.00,0.00,1.00 +1291,76.80,9.60,1.00,0.00,1.00 +1292,81.60,9.60,1.00,0.00,1.00 +1293,86.40,9.60,1.00,0.00,1.00 +1294,91.20,9.60,1.00,0.00,1.00 +1295,96.00,9.60,1.00,0.00,1.00 +1296,100.80,9.60,1.00,0.00,1.00 +1297,105.60,9.60,1.00,0.00,1.00 +1298,110.40,9.60,1.00,0.00,1.00 +1299,115.20,9.60,1.00,0.00,1.00 +1300,120.00,9.60,1.00,0.00,1.00 +1301,124.80,4.80,1.00,0.00,1.00 +1302,129.60,4.80,1.00,0.00,1.00 +1303,134.40,4.80,1.00,0.00,1.00 +1304,139.20,4.80,1.00,0.00,1.00 +1305,144.00,4.80,1.00,0.00,1.00 +1306,148.80,4.80,1.00,0.00,1.00 +1307,153.60,4.80,1.00,0.00,1.00 +1308,158.40,4.80,1.00,0.00,1.00 +1309,163.20,4.80,1.00,0.00,1.00 +1310,168.00,0.00,1.00,0.00,1.00 +1311,172.80,0.00,1.00,0.00,1.00 +1312,177.60,0.00,1.00,0.00,1.00 +1313,-177.60,-0.00,1.00,0.00,1.00 +1314,-172.80,-0.00,1.00,0.00,1.00 +1315,-168.00,-0.00,1.00,0.00,1.00 +1316,-163.20,-4.80,1.00,0.00,1.00 +1317,-158.40,-4.80,1.00,0.00,1.00 +1318,-153.60,-4.80,1.00,0.00,1.00 +1319,-148.80,-4.80,1.00,0.00,1.00 +1320,-144.00,-4.80,1.00,0.00,1.00 +1321,-139.20,-4.80,1.00,0.00,1.00 +1322,-134.40,-4.80,1.00,0.00,1.00 +1323,-129.60,-4.80,1.00,0.00,1.00 +1324,-124.80,-4.80,1.00,0.00,1.00 +1325,-120.00,-9.60,1.00,0.00,1.00 +1326,-115.20,-9.60,1.00,0.00,1.00 +1327,-110.40,-9.60,1.00,0.00,1.00 +1328,-105.60,-9.60,1.00,0.00,1.00 +1329,-100.80,-9.60,1.00,0.00,1.00 +1330,-96.00,-9.60,1.00,0.00,1.00 +1331,-91.20,-9.60,1.00,0.00,1.00 +1332,-86.40,-9.60,1.00,0.00,1.00 +1333,-81.60,-9.60,1.00,0.00,1.00 +1334,-76.80,-9.60,1.00,0.00,1.00 +1335,-72.00,-9.60,1.00,0.00,1.00 +1336,-67.20,-9.60,1.00,0.00,1.00 +1337,-62.40,-9.60,1.00,0.00,1.00 +1338,-57.60,-4.80,1.00,0.00,1.00 +1339,-52.80,-4.80,1.00,0.00,1.00 +1340,-48.00,-4.80,1.00,0.00,1.00 +1341,-43.20,-4.80,1.00,0.00,1.00 +1342,-38.40,-4.80,1.00,0.00,1.00 +1343,-33.60,-4.80,1.00,0.00,1.00 +1344,-28.80,-4.80,1.00,0.00,1.00 +1345,-24.00,-4.80,1.00,0.00,1.00 +1346,-19.20,-4.80,1.00,0.00,1.00 +1347,-14.40,-0.00,1.00,0.00,1.00 +1348,-9.60,-0.00,1.00,0.00,1.00 +1349,-4.80,-0.00,1.00,0.00,1.00 +1350,0.00,0.00,1.00,0.00,1.00 +1351,4.80,0.00,1.00,0.00,1.00 +1352,9.60,0.00,1.00,0.00,1.00 +1353,14.40,0.00,1.00,0.00,1.00 +1354,19.20,0.00,1.00,0.00,1.00 +1355,24.00,0.00,1.00,0.00,1.00 +1356,28.80,0.00,1.00,0.00,1.00 +1357,33.60,0.00,1.00,0.00,1.00 +1358,38.40,0.00,1.00,0.00,1.00 +1359,43.20,4.80,1.00,0.00,1.00 +1360,48.00,4.80,1.00,0.00,1.00 +1361,52.80,4.80,1.00,0.00,1.00 +1362,57.60,4.80,1.00,0.00,1.00 +1363,62.40,4.80,1.00,0.00,1.00 +1364,67.20,4.80,1.00,0.00,1.00 +1365,72.00,4.80,1.00,0.00,1.00 +1366,76.80,4.80,1.00,0.00,1.00 +1367,81.60,4.80,1.00,0.00,1.00 +1368,86.40,4.80,1.00,0.00,1.00 +1369,91.20,4.80,1.00,0.00,1.00 +1370,96.00,4.80,1.00,0.00,1.00 +1371,100.80,4.80,1.00,0.00,1.00 +1372,105.60,4.80,1.00,0.00,1.00 +1373,110.40,4.80,1.00,0.00,1.00 +1374,115.20,4.80,1.00,0.00,1.00 +1375,120.00,4.80,1.00,0.00,1.00 +1376,124.80,4.80,1.00,0.00,1.00 +1377,129.60,4.80,1.00,0.00,1.00 +1378,134.40,4.80,1.00,0.00,1.00 +1379,139.20,0.00,1.00,0.00,1.00 +1380,144.00,0.00,1.00,0.00,1.00 +1381,148.80,0.00,1.00,0.00,1.00 +1382,153.60,0.00,1.00,0.00,1.00 +1383,158.40,0.00,1.00,0.00,1.00 +1384,163.20,0.00,1.00,0.00,1.00 +1385,168.00,0.00,1.00,0.00,1.00 +1386,172.80,0.00,1.00,0.00,1.00 +1387,177.60,0.00,1.00,0.00,1.00 +1388,-177.60,-0.00,1.00,0.00,1.00 +1389,-172.80,-0.00,1.00,0.00,1.00 +1390,-168.00,-0.00,1.00,0.00,1.00 +1391,-163.20,-0.00,1.00,0.00,1.00 +1392,-158.40,-0.00,1.00,0.00,1.00 +1393,-153.60,-0.00,1.00,0.00,1.00 +1394,-148.80,-0.00,1.00,0.00,1.00 +1395,-144.00,-0.00,1.00,0.00,1.00 +1396,-139.20,-0.00,1.00,0.00,1.00 +1397,-134.40,-4.80,1.00,0.00,1.00 +1398,-129.60,-4.80,1.00,0.00,1.00 +1399,-124.80,-4.80,1.00,0.00,1.00 +1400,-120.00,-4.80,1.00,0.00,1.00 +1401,-115.20,-4.80,1.00,0.00,1.00 +1402,-110.40,-4.80,1.00,0.00,1.00 +1403,-105.60,-4.80,1.00,0.00,1.00 +1404,-100.80,-4.80,1.00,0.00,1.00 +1405,-96.00,-4.80,1.00,0.00,1.00 +1406,-91.20,-4.80,1.00,0.00,1.00 +1407,-86.40,-4.80,1.00,0.00,1.00 +1408,-81.60,-4.80,1.00,0.00,1.00 +1409,-76.80,-4.80,1.00,0.00,1.00 +1410,-72.00,-4.80,1.00,0.00,1.00 +1411,-67.20,-4.80,1.00,0.00,1.00 +1412,-62.40,-4.80,1.00,0.00,1.00 +1413,-57.60,-4.80,1.00,0.00,1.00 +1414,-52.80,-4.80,1.00,0.00,1.00 +1415,-48.00,-4.80,1.00,0.00,1.00 +1416,-43.20,-4.80,1.00,0.00,1.00 +1417,-38.40,-0.00,1.00,0.00,1.00 +1418,-33.60,-0.00,1.00,0.00,1.00 +1419,-28.80,-0.00,1.00,0.00,1.00 +1420,-24.00,-0.00,1.00,0.00,1.00 +1421,-19.20,-0.00,1.00,0.00,1.00 +1422,-14.40,-0.00,1.00,0.00,1.00 +1423,-9.60,-0.00,1.00,0.00,1.00 +1424,-4.80,-0.00,1.00,0.00,1.00 +1425,0.00,0.00,1.00,0.00,1.00 +1426,4.80,-0.00,1.00,0.00,1.00 +1427,9.60,-0.00,1.00,0.00,1.00 +1428,14.40,-0.00,1.00,0.00,1.00 +1429,19.20,-0.00,1.00,0.00,1.00 +1430,24.00,-0.00,1.00,0.00,1.00 +1431,28.80,-0.00,1.00,0.00,1.00 +1432,33.60,-0.00,1.00,0.00,1.00 +1433,38.40,-0.00,1.00,0.00,1.00 +1434,43.20,-0.00,1.00,0.00,1.00 +1435,48.00,-0.00,1.00,0.00,1.00 +1436,52.80,-0.00,1.00,0.00,1.00 +1437,57.60,-0.00,1.00,0.00,1.00 +1438,62.40,-0.00,1.00,0.00,1.00 +1439,67.20,-0.00,1.00,0.00,1.00 +1440,72.00,-0.00,1.00,0.00,1.00 +1441,76.80,-0.00,1.00,0.00,1.00 +1442,81.60,-0.00,1.00,0.00,1.00 +1443,86.40,-0.00,1.00,0.00,1.00 +1444,91.20,-0.00,1.00,0.00,1.00 +1445,96.00,-0.00,1.00,0.00,1.00 +1446,100.80,-0.00,1.00,0.00,1.00 +1447,105.60,-0.00,1.00,0.00,1.00 +1448,110.40,-0.00,1.00,0.00,1.00 +1449,115.20,-0.00,1.00,0.00,1.00 +1450,120.00,-0.00,1.00,0.00,1.00 +1451,124.80,-0.00,1.00,0.00,1.00 +1452,129.60,-0.00,1.00,0.00,1.00 +1453,134.40,-0.00,1.00,0.00,1.00 +1454,139.20,-0.00,1.00,0.00,1.00 +1455,144.00,-0.00,1.00,0.00,1.00 +1456,148.80,-0.00,1.00,0.00,1.00 +1457,153.60,-0.00,1.00,0.00,1.00 +1458,158.40,-0.00,1.00,0.00,1.00 +1459,163.20,-0.00,1.00,0.00,1.00 +1460,168.00,-0.00,1.00,0.00,1.00 +1461,172.80,-0.00,1.00,0.00,1.00 +1462,177.60,-0.00,1.00,0.00,1.00 +1463,-177.60,0.00,1.00,0.00,1.00 +1464,-172.80,0.00,1.00,0.00,1.00 +1465,-168.00,0.00,1.00,0.00,1.00 +1466,-163.20,0.00,1.00,0.00,1.00 +1467,-158.40,0.00,1.00,0.00,1.00 +1468,-153.60,0.00,1.00,0.00,1.00 +1469,-148.80,0.00,1.00,0.00,1.00 +1470,-144.00,0.00,1.00,0.00,1.00 +1471,-139.20,0.00,1.00,0.00,1.00 +1472,-134.40,0.00,1.00,0.00,1.00 +1473,-129.60,0.00,1.00,0.00,1.00 +1474,-124.80,0.00,1.00,0.00,1.00 +1475,-120.00,0.00,1.00,0.00,1.00 +1476,-115.20,0.00,1.00,0.00,1.00 +1477,-110.40,0.00,1.00,0.00,1.00 +1478,-105.60,0.00,1.00,0.00,1.00 +1479,-100.80,0.00,1.00,0.00,1.00 +1480,-96.00,0.00,1.00,0.00,1.00 +1481,-91.20,0.00,1.00,0.00,1.00 +1482,-86.40,0.00,1.00,0.00,1.00 +1483,-81.60,0.00,1.00,0.00,1.00 +1484,-76.80,0.00,1.00,0.00,1.00 +1485,-72.00,0.00,1.00,0.00,1.00 +1486,-67.20,0.00,1.00,0.00,1.00 +1487,-62.40,0.00,1.00,0.00,1.00 +1488,-57.60,0.00,1.00,0.00,1.00 +1489,-52.80,0.00,1.00,0.00,1.00 +1490,-48.00,0.00,1.00,0.00,1.00 +1491,-43.20,0.00,1.00,0.00,1.00 +1492,-38.40,0.00,1.00,0.00,1.00 +1493,-33.60,0.00,1.00,0.00,1.00 +1494,-28.80,0.00,1.00,0.00,1.00 +1495,-24.00,0.00,1.00,0.00,1.00 +1496,-19.20,0.00,1.00,0.00,1.00 +1497,-14.40,0.00,1.00,0.00,1.00 +1498,-9.60,0.00,1.00,0.00,1.00 +1499,-4.80,0.00,1.00,0.00,1.00 diff --git a/scripts/tests/data/stv_IVASMASA_1dir1TC.met b/scripts/tests/data/stv_IVASMASA_1dir1TC.met new file mode 100644 index 0000000000..f2ce23bd20 --- /dev/null +++ b/scripts/tests/data/stv_IVASMASA_1dir1TC.met @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6349efe3448d28979b80744bcdc29d57f1c025704939b42d7b913d7fc3f23ccc +size 102300 diff --git a/scripts/tests/data/stv_IVASMASA_1dir1TC.pcm b/scripts/tests/data/stv_IVASMASA_1dir1TC.pcm new file mode 100644 index 0000000000..8f2bfc54e0 --- /dev/null +++ b/scripts/tests/data/stv_IVASMASA_1dir1TC.pcm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dbbaa5c75c36bc74a100bc5721bc3cf2af4e22e2854a5b85c93532556afc776 +size 288000 diff --git a/scripts/tests/data/stv_IVASMASA_1dir2TC.met b/scripts/tests/data/stv_IVASMASA_1dir2TC.met new file mode 100644 index 0000000000..00acdae539 --- /dev/null +++ b/scripts/tests/data/stv_IVASMASA_1dir2TC.met @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a1f87bfe360dbd221a94583aa68a58ef050e968a63351730d643f2dc2cac4e1 +size 204600 diff --git a/scripts/tests/data/stv_IVASMASA_1dir2TC.pcm b/scripts/tests/data/stv_IVASMASA_1dir2TC.pcm new file mode 100644 index 0000000000..491e75f868 --- /dev/null +++ b/scripts/tests/data/stv_IVASMASA_1dir2TC.pcm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd34c99b89d9c1ed3514c3f8e32faf6b82fbc8bf364bc464904fc1c745266350 +size 1152000 diff --git a/scripts/tests/data/stv_IVASMASA_2dir1TC.met b/scripts/tests/data/stv_IVASMASA_2dir1TC.met new file mode 100644 index 0000000000..6468877408 --- /dev/null +++ b/scripts/tests/data/stv_IVASMASA_2dir1TC.met @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d125a4c4e3989ac55f9c2617f464431feae4ede9b2e15d087d3271c0a4a56303 +size 319800 diff --git a/scripts/tests/data/stv_IVASMASA_2dir1TC.pcm b/scripts/tests/data/stv_IVASMASA_2dir1TC.pcm new file mode 100644 index 0000000000..7c7209de2d --- /dev/null +++ b/scripts/tests/data/stv_IVASMASA_2dir1TC.pcm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5afc7014451a8599f8399e3a503a29b23d22843ef482c0a701d4c46f6329ebc4 +size 576000 diff --git a/scripts/tests/data/stv_IVASMASA_2dir2TC.met b/scripts/tests/data/stv_IVASMASA_2dir2TC.met new file mode 100644 index 0000000000..1b62022af5 --- /dev/null +++ b/scripts/tests/data/stv_IVASMASA_2dir2TC.met @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2eb412d646d7a32c77413dea54dc44cf45dc49e6d8c2de19abe4f4b93a91fa4a +size 159900 diff --git a/scripts/tests/data/stv_IVASMASA_2dir2TC.pcm b/scripts/tests/data/stv_IVASMASA_2dir2TC.pcm new file mode 100644 index 0000000000..ac8d4d341a --- /dev/null +++ b/scripts/tests/data/stv_IVASMASA_2dir2TC.pcm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d6c264295987b7db2a9a6a1352dd0b9c91a824fcc37c5631e0ba39e92df33f8 +size 576000 diff --git a/scripts/tests/ref/.gitignore b/scripts/tests/ref/.gitignore new file mode 100644 index 0000000000..f935021a8f --- /dev/null +++ b/scripts/tests/ref/.gitignore @@ -0,0 +1 @@ +!.gitignore diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py new file mode 100644 index 0000000000..d976f8f210 --- /dev/null +++ b/scripts/tests/test_renderer.py @@ -0,0 +1,387 @@ +#!/usr/bin/env python3 + +""" + (C) 2022 Baseline Development Group with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The Baseline Development Group consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., and VoiceAge Corporation retain full ownership + rights in their respective contributions in the software. No license of any kind, including but not + limited to patent license, of any foregoing parties is hereby granted by implication, estoppel or + otherwise. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and/or fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +import subprocess as sp +import pyaudio3dtools +import pytest +import numpy as np +from pathlib import PurePath +from typing import Optional, Tuple + +from .compare_audio import compare_audio_arrays +from .constants import * + + +def check_BE( + ref: np.ndarray, ref_fs: int, cut: np.ndarray, cut_fs: int, snr_min: float = np.inf +): + + if ref is None or np.array_equal(ref, np.zeros_like(ref)): + pytest.fail("REF signal does not exist or is zero!") + + if cut is None or np.array_equal(cut, np.zeros_like(cut)): + pytest.fail("CuT signal does not exist or is zero!") + + snr, gain_b, max_diff = compare_audio_arrays(ref, ref_fs, cut, cut_fs) + + if np.isnan(snr) or gain_b == 0: + pytest.fail("Invalid comparison result, check your signals!") + + if not np.allclose(ref, cut, rtol=0, atol=2) and snr < snr_min: + pytest.fail( + f"CuT not BE to REF! SNR : {snr:3.2f} dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" + ) + + +def run_pyscripts( + in_fmt, + out_fmt, + metadata_input: Optional[str] = None, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +) -> Tuple[np.ndarray, int]: + """Reference rendering with pyaudio3dtools""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + if metadata_input is not None: + in_file = metadata_input + in_name = metadata_input.stem + elif isinstance(in_fmt, PurePath): + in_file = FORMAT_TO_FILE[in_fmt.stem] + in_name = in_fmt.stem + else: + in_file = FORMAT_TO_FILE[in_fmt] + in_name = in_fmt + + out_file = str(OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) + + pyaudio3dtools.spatialaudioconvert.spatial_audio_convert( + in_file, + out_file, + in_format=in_fmt, + out_format=out_fmt, + in_meta_files=in_meta_files, + trajectory=trj_file, + limit_output=True, + ) + + return pyaudio3dtools.audiofile.readfile(out_file) + + +# TODO include sampling rate, ndl ? +def run_renderer( + in_fmt: str, + out_fmt: str, + metadata_input: Optional[str] = None, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +) -> Tuple[np.ndarray, int]: + """CuT creation with standalone renderer""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + if metadata_input is not None: + in_file = metadata_input + in_name = metadata_input.stem + elif not isinstance(in_fmt, str): + in_file = FORMAT_TO_FILE[in_fmt.stem] + in_name = in_fmt.stem + else: + in_file = FORMAT_TO_FILE[in_fmt] + in_name = in_fmt + + out_file = str(OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) + + cmd = RENDERER_CMD[:] + cmd[2] = str(in_file) + cmd[4] = str(in_fmt) + cmd[6] = str(out_file) + cmd[8] = str(out_fmt) + + if in_meta_files is not None: + cmd[5:5] = in_meta_files + + if trj_file is not None: + cmd.extend(["-tf", str(trj_file)]) + + try: + sp.run(cmd, check=True, capture_output=True, text=True) + except sp.CalledProcessError as e: + pytest.fail( + f"Command returned non-zero exit status ({e.returncode})!\n{' '.join(e.cmd)}\n{e.stderr}\n{e.stdout}\n{e.output}" + ) + + return pyaudio3dtools.audiofile.readfile(out_file) + + +# Ambisonics / loudspeaker based input formats +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics(in_fmt, out_fmt): + ref, ref_fs = run_pyscripts(in_fmt, out_fmt) + + cut, cut_fs = run_renderer(in_fmt, out_fmt) + + check_BE(ref, ref_fs, cut, cut_fs) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel(in_fmt, out_fmt): + ref, ref_fs = run_pyscripts(in_fmt, out_fmt) + + cut, cut_fs = run_renderer(in_fmt, out_fmt) + + if out_fmt in ["MONO", "STEREO"]: + check_BE(ref, ref_fs, cut, cut_fs, snr_min=10) + else: + check_BE(ref, ref_fs, cut, cut_fs) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) +def test_custom_ls_input(in_layout, out_fmt): + ref, ref_fs = run_pyscripts( + CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), + out_fmt, + ) + + cut, cut_fs = run_renderer(CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt) + + check_BE(ref, ref_fs, cut, cut_fs) + + +@pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) +@pytest.mark.parametrize("in_fmt", OUTPUT_FORMATS) +def test_custom_ls_output(in_fmt, out_fmt): + ref, ref_fs = run_pyscripts( + in_fmt, + CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), + ) + + cut, cut_fs = run_renderer(in_fmt, CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt")) + + check_BE(ref, ref_fs, cut, cut_fs) + + +@pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) +@pytest.mark.parametrize("in_fmt", CUSTOM_LS_TO_TEST) +def test_custom_ls_input_output(in_fmt, out_fmt): + ref, ref_fs = run_pyscripts( + CUSTOM_LAYOUT_DIR.joinpath(f"{in_fmt}.txt"), + CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), + ) + + cut, cut_fs = run_renderer( + CUSTOM_LAYOUT_DIR.joinpath(f"{in_fmt}.txt"), + CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), + ) + + check_BE(ref, ref_fs, cut, cut_fs) + + +# Metadata / parametric input formats +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) +def test_ism(in_fmt, out_fmt): + ref, ref_fs = run_pyscripts( + in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] + ) + cut, cut_fs = run_renderer( + in_fmt, + out_fmt, + in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], + ) + + check_BE(ref, ref_fs, cut, cut_fs, snr_min=38) + + +@pytest.mark.skip(reason="MASA rendering is currently not implemented") +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MASA) +def test_masa(in_fmt, out_fmt): + ref, ref_fs = run_pyscripts( + in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] + ) + + cut, cut_fs = run_renderer( + in_fmt, + out_fmt, + in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], + ) + + check_BE(ref, ref_fs, cut, cut_fs) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST) +def test_metadata(in_fmt, out_fmt): + ref, ref_fs = run_pyscripts( + "META", out_fmt, metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt") + ) + + cut, cut_fs = run_renderer( + "META", + out_fmt, + metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), + ) + + check_BE(ref, ref_fs, cut, cut_fs, snr_min=11) + + +# Binaural rendering (static) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics_binaural_static(in_fmt, out_fmt): + ref, ref_fs = run_pyscripts(in_fmt, out_fmt) + + cut, cut_fs = run_renderer(in_fmt, out_fmt) + + check_BE(ref, ref_fs, cut, cut_fs, snr_min=89) + + +@pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer") +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) +def test_ism_binaural_static(in_fmt, out_fmt): + try: + in_meta_files = FORMAT_TO_METADATA_FILES[in_fmt] + except: + in_meta_files = None + + ref, ref_fs = run_pyscripts(in_fmt, out_fmt, in_meta_files=in_meta_files) + + cut, cut_fs = run_renderer(in_fmt, out_fmt, in_meta_files=in_meta_files) + + check_BE(ref, ref_fs, cut, cut_fs) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) +def test_multichannel_binaural_static(in_fmt, out_fmt): + ref, ref_fs = run_pyscripts(in_fmt, out_fmt) + + cut, cut_fs = run_renderer(in_fmt, out_fmt) + + check_BE(ref, ref_fs, cut, cut_fs, snr_min=11) + + +# Binaural rendering (head rotation) +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics_binaural_headrotation(in_fmt, out_fmt, trj_file): + ref, ref_fs = run_pyscripts( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + cut, cut_fs = run_renderer( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + check_BE(ref, ref_fs, cut, cut_fs, snr_min=42) + + +@pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer") +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) +def test_ism_binaural_headrotation(in_fmt, out_fmt, trj_file): + try: + in_meta_files = FORMAT_TO_METADATA_FILES[in_fmt] + except: + in_meta_files = None + + ref, ref_fs = run_pyscripts( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + in_meta_files=in_meta_files, + ) + + cut, cut_fs = run_renderer( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + in_meta_files=in_meta_files, + ) + + check_BE(ref, ref_fs, cut, cut_fs) + + +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize( + "in_fmt", + [ + pytest.param( + "5_1", + marks=pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer"), + ), + pytest.param( + "7_1", + marks=pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer"), + ), + "5_1_2", + "5_1_4", + "7_1_4", + ], +) +def test_multichannel_binaural_headrotation(in_fmt, out_fmt, trj_file): + ref, ref_fs = run_pyscripts( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + cut, cut_fs = run_renderer( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + check_BE(ref, ref_fs, cut, cut_fs, snr_min=4.5) diff --git a/scripts/vbap_51_table.bin b/scripts/vbap_51_table.bin new file mode 100644 index 0000000000..2477f1194a --- /dev/null +++ b/scripts/vbap_51_table.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5182e9d0d86d47871e34d8a2821ebef94d8f25d08c51cd0bd618d66a59e4fab +size 3620 diff --git a/scripts/vbap_714_table.bin b/scripts/vbap_714_table.bin new file mode 100644 index 0000000000..1541c1fdee --- /dev/null +++ b/scripts/vbap_714_table.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac34d9a81d62ac12094aab948047650017019377059fdf425614ef9f345954f7 +size 294668 diff --git a/scripts/vbap_bin_table.bin b/scripts/vbap_bin_table.bin new file mode 100644 index 0000000000..1bf371c9c5 --- /dev/null +++ b/scripts/vbap_bin_table.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab7bfe8d1c01359213362e8dcce21f42b50c07ed7f7a4a8ff972f516283df027 +size 428608 -- GitLab From 7bec4a3bfe2253cd251a53891f29a1260f241952 Mon Sep 17 00:00:00 2001 From: sagnowski Date: Wed, 10 Aug 2022 16:25:59 +0000 Subject: [PATCH 014/479] Fix .gitlab-ci.yml file --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 91ddc62ad5..750b00eb7c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -229,6 +229,7 @@ external-renderer-make-pytest: - .test-job-linux - .rules-merge-request needs: [ "build-codec-linux-make" ] + stage: test script: - make -j IVAS_rend - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto @@ -239,6 +240,7 @@ external-renderer-cmake-asan-pytest: - .test-job-linux - .rules-merge-request needs: [ "build-codec-linux-cmake" ] + stage: test script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan - cmake --build cmake-build -- -j @@ -250,6 +252,7 @@ external-renderer-cmake-msan-pytest: - .test-job-linux - .rules-merge-request needs: [ "build-codec-linux-cmake" ] + stage: test script: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan - cmake --build cmake-build -- -j -- GitLab From eed28acdb5e3de343682cf66dddc1b9e5bf42cca Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Fri, 12 Aug 2022 09:18:47 +0200 Subject: [PATCH 015/479] Added fix FIX_I74_BW_LIMITATION to address deviation between bitrate limited BW and '-max_band' limited BW. --- lib_com/options.h | 2 ++ lib_enc/lib_enc.c | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index da537889ed..2d3b47ce23 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,6 +149,8 @@ #define DIRAC_DRCT_GAIN_TUNING /* issue 64: tuning of DirAC energy-compensation gains */ +#define FIX_I74_BW_LIMITATION /* Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate */ + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 760ae0d353..dbca263fbd 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1572,16 +1572,26 @@ static ivas_error printConfigInfo_enc( if ( hEncoderConfig->ivas_total_brate < ACELP_9k60 ) { fprintf( stdout, "Switching to WB.\n" ); +#ifdef FIX_I74_BW_LIMITATION + hEncoderConfig->max_bwidth = WB; +#endif } else { fprintf( stdout, "Switching to SWB.\n" ); +#ifdef FIX_I74_BW_LIMITATION + hEncoderConfig->max_bwidth = SWB; +#endif + } } if ( hEncoderConfig->max_bwidth == SWB && hEncoderConfig->ivas_total_brate < ACELP_9k60 ) { fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.", ACELP_9k60 / 1000.f ); +#ifdef FIX_I74_BW_LIMITATION + hEncoderConfig->max_bwidth = WB; +#endif } /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ @@ -1596,6 +1606,9 @@ static ivas_error printConfigInfo_enc( if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) { fprintf( stdout, "\nFB coding not supported below %.2f kbps. Switching to SWB.\n", MIN_BRATE_FB_STEREO / 1000.f ); +#ifdef FIX_I74_BW_LIMITATION + hEncoderConfig->max_bwidth = SWB; +#endif } } -- GitLab From a579bfe20f7bae7eccc7b3216cf67e0c44153efa Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 16 Aug 2022 14:36:59 +0200 Subject: [PATCH 016/479] disable FIX_I74_BW_LIMITATION --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 2d3b47ce23..083968c1e2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,7 @@ #define DIRAC_DRCT_GAIN_TUNING /* issue 64: tuning of DirAC energy-compensation gains */ -#define FIX_I74_BW_LIMITATION /* Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate */ +/*#define FIX_I74_BW_LIMITATION*/ /* Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate */ /* ################## End DEVELOPMENT switches ######################### */ -- GitLab From 41b2da0fc4fcb6eb7687c534fed245adeb0165e4 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 16 Aug 2022 14:45:12 +0200 Subject: [PATCH 017/479] [cleaning] issue 74: remove redundant function call in ivas_cpe_enc(); under FIX_I74_CLEANING --- lib_com/options.h | 4 ++-- lib_enc/ivas_cpe_enc.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 083968c1e2..97c8dfe87a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,8 +149,8 @@ #define DIRAC_DRCT_GAIN_TUNING /* issue 64: tuning of DirAC energy-compensation gains */ -/*#define FIX_I74_BW_LIMITATION*/ /* Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate */ - +/*#define FIX_I74_BW_LIMITATION*/ /* issue 74: Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate */ +#define FIX_I74_CLEANING /* issue 74: remove redundant function call in ivas_cpe_enc() */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index f2d3241979..321ff1fdfa 100755 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -343,11 +343,13 @@ ivas_error ivas_cpe_enc( sts[0]->total_brate = ( sts[0]->bits_frame_nominal + 10 ) * FRAMES_PER_SEC; /* add small overhead; st[0]->total_brate used in coder_type_modif() */ +#ifndef FIX_I74_CLEANING if ( ( sts[0]->last_bwidth < max_bwidth ) || ( sts[0]->last_core_brate <= SID_2k40 ) ) /* IVAS_fmToDo: TBV - BWD output is not known here yet !!! */ { /* reconfigure in case of BW switching or if last frame was a SID/NO_DATA with coarse partitioning */ hCPE->hStereoDft->nbands = stereo_dft_band_config( hCPE->hStereoDft->band_limits, hCPE->hStereoDft->hConfig->band_res, hCPE->hStereoDft->NFFT, ENC ); } +#endif /* Update DFT Stereo memories */ stereo_dft_enc_update( hCPE->hStereoDft, sts[0]->max_bwidth -- GitLab From 40f3499aad47b87d90ed7bbe4ee9bae664c9a7cd Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Tue, 16 Aug 2022 18:02:39 +0200 Subject: [PATCH 018/479] Update external renderer and corresponding tests Includes: - Bug fixes - Improvements to tests - Fix for build issues with Make - Framework changes in preparation for MASA rendering --- .gitlab-ci.yml | 2 + Makefile | 2 +- apps/renderer.c | 161 ++++++++- ci/disable_ram_counting.py | 20 ++ lib_rend/lib_rend.c | 334 +++++++++++++++--- lib_rend/lib_rend.h | 22 ++ scripts/pyaudio3dtools/binauralrenderer.py | 3 +- scripts/pyaudio3dtools/rotation.py | 6 +- scripts/pyaudio3dtools/spatialaudioconvert.py | 3 +- scripts/tests/constants.py | 5 +- scripts/tests/data/masa_scene.txt | 6 + .../data/renderer_config_format_readme.txt | 18 +- scripts/tests/data/stv_IVASMASA_2dir2TC.wav | 3 + scripts/tests/test_renderer.py | 23 +- 14 files changed, 521 insertions(+), 87 deletions(-) create mode 100644 ci/disable_ram_counting.py create mode 100644 scripts/tests/data/masa_scene.txt create mode 100644 scripts/tests/data/stv_IVASMASA_2dir2TC.wav diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 750b00eb7c..d6cb4c70b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -242,6 +242,7 @@ external-renderer-cmake-asan-pytest: needs: [ "build-codec-linux-cmake" ] stage: test script: + - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan - cmake --build cmake-build -- -j - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto @@ -254,6 +255,7 @@ external-renderer-cmake-msan-pytest: needs: [ "build-codec-linux-cmake" ] stage: test script: + - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan - cmake --build cmake-build -- -j - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto diff --git a/Makefile b/Makefile index 8eafa71deb..e2bdf99b86 100644 --- a/Makefile +++ b/Makefile @@ -185,7 +185,7 @@ $(CLI_APIDEC): $(OBJS_CLI_APIDEC) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(L $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APIDEC) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(CLI_APIDEC) $(CLI_APIREND): $(OBJS_CLI_APPREND) $(LIB_LIBREND) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) - $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livascom -livasutil -livasdebug $(LDLIBS) -o $(CLI_APIREND) + $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livasutil -livascom -livasdebug $(LDLIBS) -o $(CLI_APIREND) $(CLI_UTESTS_CREND): $(OBJS_CLI_UTESTS_CREND) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_UTESTS_CREND) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(UTESTS_CREND_DIR)/$(CLI_UTESTS_CREND) diff --git a/apps/renderer.c b/apps/renderer.c index 38c28e3dc4..38f1a7c16c 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -42,6 +42,7 @@ #include "lib_rend.h" #include "ls_custom_file_reader.h" #include "render_config_reader.h" +#include "masa_file_reader.h" #include "ivas_stat_dec.h" #include "prot.h" #ifdef WMOPS @@ -178,6 +179,9 @@ static IVAS_REND_Ambisonics ambisonicsOrderToEnum( static IVAS_REND_Ambisonics audioCfgToAmbiEnum( AUDIO_CONFIG cfg ); +static IVAS_REND_MasaTc audioCfgToMasaEnum( + AUDIO_CONFIG cfg ); + static IVAS_REND_SpeakerLayout speakerLayoutCicpToEnum( int32_t cicpIndex ); @@ -196,7 +200,8 @@ static void parseConfigFile( char *path, char *audioFilePath, IVAS_REND_InputConfig *inConfig, - IsmPositionProvider *positionProvider ); + IsmPositionProvider *positionProvider, + char *masaMetadataFilePath ); static void parseCustomLayoutFile( char *filePath, @@ -271,11 +276,17 @@ static void parseMc( IVAS_REND_InputConfig *inConfig, int32_t idx ); +static void parseMasa( + char *line, + IVAS_REND_InputConfig *inConfig, + char *masaMetadataFilePath ); + static void parseMetadata( char *metadataString, char *inDir, IVAS_REND_InputConfig *inConfig, - IsmPositionProvider *positionProvider ); + IsmPositionProvider *positionProvider, + char *masaMetadataFilePath ); static void convert_backslash( char *str ); @@ -294,6 +305,7 @@ int32_t main( int32_t argc, char **argv ) IsmPositionProvider *positionProvider; RenderConfigReader *renderConfigReader = NULL; char audioFilePath[FILENAME_MAX]; + char masaMetadataFilePath[FILENAME_MAX]; AudioFileReader *audioReader = NULL; int16_t numInChannels; AudioFileWriter *audioWriter; @@ -332,6 +344,8 @@ int32_t main( int32_t argc, char **argv ) hIvasRend = IVAS_REND_Open(); positionProvider = IsmPositionProvider_open(); + masaMetadataFilePath[0] = '\0'; + convert_backslash( args.inputFilePath ); convert_backslash( args.outputFilePath ); convert_backslash( args.trajectoryFile ); @@ -355,7 +369,7 @@ int32_t main( int32_t argc, char **argv ) if ( args.inputFormat == AUDIO_CONFIG_INVALID || args.inputFormat == AUDIO_CONFIG_META ) { /* Only parse config file if input config is none */ - parseConfigFile( args.inputFilePath, audioFilePath, &args.inConfig, positionProvider ); + parseConfigFile( args.inputFilePath, audioFilePath, &args.inConfig, positionProvider, masaMetadataFilePath ); } else { @@ -415,6 +429,21 @@ int32_t main( int32_t argc, char **argv ) } /* === Process === */ + MasaFileReader *masaReader = NULL; + IVAS_MASA_METADATA_HANDLE hMasaMetadata = NULL; + + if ( masaMetadataFilePath[0] != '\0' ) + { + masaReader = MasaFileReader_open( masaMetadataFilePath ); + if ( masaReader == NULL ) + { + fprintf( stderr, "Could not open MASA metadata file %s\n", masaMetadataFilePath ); + exit( -1 ); + } + + hMasaMetadata = MasaFileReader_getMetadataHandle( masaReader ); + } + if ( AudioFileWriter_open( &audioWriter, args.outputFilePath, args.sampleRate, IVAS_REND_GetOutChannels( hIvasRend ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Failed to open file: %s\n", args.outputFilePath ); @@ -490,6 +519,17 @@ int32_t main( int32_t argc, char **argv ) } } + if ( masaReader != NULL ) + { + MasaFileReader_readNextFrame( masaReader ); + + if ( ( error = IVAS_REND_FeedMasaMetadata(hIvasRend, hMasaMetadata) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + } + IVAS_REND_AudioObjectMetadataBuffer mtdBuffer; IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer ); @@ -582,6 +622,7 @@ int32_t main( int32_t argc, char **argv ) count_free( inFloatBuffer ); count_free( outInt16Buffer ); count_free( outFloatBuffer ); + MasaFileReader_close( &masaReader ); AudioFileReader_close( &audioReader ); AudioFileWriter_close( &audioWriter ); HeadRotationFileReader_close( &headRotReader ); @@ -611,6 +652,17 @@ static int8_t setInConfig( int16_t numChannels, AUDIO_CONFIG input_config, IVAS_ success = 1; + if ( input_config == AUDIO_CONFIG_META ) + { + /* inConfig already set from metadata file, return early */ + return 0; + } + + inConfig->numAudioObjects = 0; + inConfig->numAmbisonicsBuses = 0; + inConfig->numMultiChannelBuses = 0; + inConfig->numMasaBuses = 0; + switch ( input_config ) { case AUDIO_CONFIG_MONO: @@ -621,8 +673,6 @@ static int8_t setInConfig( int16_t numChannels, AUDIO_CONFIG input_config, IVAS_ case AUDIO_CONFIG_5_1_4: case AUDIO_CONFIG_7_1_4: case AUDIO_CONFIG_LS_CUSTOM: - inConfig->numAudioObjects = 0; - inConfig->numAmbisonicsBuses = 0; inConfig->numMultiChannelBuses = 1; inConfig->multiChannelBuses[0].speakerLayout = audioCfgToMcEnum( input_config ); inConfig->multiChannelBuses[0].inputChannelIndex = 0; @@ -631,8 +681,6 @@ static int8_t setInConfig( int16_t numChannels, AUDIO_CONFIG input_config, IVAS_ case AUDIO_CONFIG_FOA: case AUDIO_CONFIG_HOA2: case AUDIO_CONFIG_HOA3: - inConfig->numAudioObjects = 0; - inConfig->numMultiChannelBuses = 0; inConfig->numAmbisonicsBuses = 1; inConfig->ambisonicsBuses[0].ambisonicsConfig = audioCfgToAmbiEnum( input_config ); inConfig->ambisonicsBuses[0].inputChannelIndex = 0; @@ -642,8 +690,6 @@ static int8_t setInConfig( int16_t numChannels, AUDIO_CONFIG input_config, IVAS_ case AUDIO_CONFIG_ISM2: case AUDIO_CONFIG_ISM3: case AUDIO_CONFIG_ISM4: - inConfig->numAmbisonicsBuses = 0; - inConfig->numMultiChannelBuses = 0; inConfig->numAudioObjects = numChannels; positionProvider->numObjects = numChannels; @@ -665,7 +711,12 @@ static int8_t setInConfig( int16_t numChannels, AUDIO_CONFIG input_config, IVAS_ positionProvider->positionDurations[i][0] = 1; } break; - case AUDIO_CONFIG_META: + case AUDIO_CONFIG_MASA1: + case AUDIO_CONFIG_MASA2: + inConfig->numMasaBuses = 1; + inConfig->masaBus.numTc = audioCfgToMasaEnum( input_config ); + inConfig->masaBus.inputChannelIndex = 0; + inConfig->masaBus.gain_dB = 0; break; default: success = 0; @@ -714,6 +765,21 @@ static IVAS_REND_Ambisonics audioCfgToAmbiEnum( AUDIO_CONFIG cfg ) return IVAS_REND_AMBISONICS_NONE; } +static IVAS_REND_MasaTc audioCfgToMasaEnum( AUDIO_CONFIG cfg ) +{ + switch ( cfg ) + { + case AUDIO_CONFIG_MASA1: + return IVAS_REND_MASA_TC_1; + case AUDIO_CONFIG_MASA2: + return IVAS_REND_MASA_TC_2; + default: + break; + } + + return IVAS_REND_MASA_TC_NONE; +} + static IVAS_REND_SpeakerLayout speakerLayoutCicpToEnum( int32_t cicpIndex ) { switch ( cicpIndex ) @@ -833,8 +899,15 @@ static AUDIO_CONFIG parseStrToAudioCfg( char *config_str ) } else if ( strncmp( format, "MASA", 4 ) == 0 ) { - parseUint8( &format[4], &numObjects ); - return AUDIO_CONFIG_MASA1 + numObjects - 1; + switch ( format[4] ) + { + case '1': + return AUDIO_CONFIG_MASA1; + case '2': + return AUDIO_CONFIG_MASA2; + default: + return AUDIO_CONFIG_INVALID; + } } else if ( strncmp( format, "META", 4 ) == 0 ) { @@ -900,6 +973,7 @@ static int8_t parseInFormat( char **optionValues, CmdlnArgs *args ) case AUDIO_CONFIG_EXTERNAL: fprintf( stderr, "No rendering possible for EXT format!\n" ); success = 0; + break; default: args->numAudioObjects = 0; } @@ -942,6 +1016,7 @@ static int8_t parseOutConfig( char *configString, IVAS_REND_OutputConfig *outCon case AUDIO_CONFIG_LS_CUSTOM: outConfig->speakerLayout = IVAS_REND_SPEAKER_LAYOUT_CUSTOM; parseCustomLayoutFile( configString, &outConfig->outSetupCustom ); + break; case AUDIO_CONFIG_FOA: case AUDIO_CONFIG_HOA2: case AUDIO_CONFIG_HOA3: @@ -1546,7 +1621,7 @@ static void parseOptionalInputValues( parse_pos = readNextMetadataChunk( line, "\n" ); /* Look for optional metadata until end of string or next input identifier is found */ - while ( parse_pos != NULL && strcmp( line, "MC" ) != 0 && strcmp( line, "SBA" ) != 0 && strcmp( line, "ISM" ) != 0 ) + while ( parse_pos != NULL && strcmp( line, "MC" ) != 0 && strcmp( line, "SBA" ) != 0 && strcmp( line, "ISM" ) != 0 && strcmp( line, "MASA" ) != 0 ) { key = strtok( line, ":" ); value = strtok( NULL, "\n" ); @@ -1692,6 +1767,36 @@ static void parseMc( char *line, parseOptionalInputValues( line, &inConfig->multiChannelBuses[idx].gain_dB ); } +static void parseMasa( + char *line, + IVAS_REND_InputConfig *inConfig, + char *masaMetadataFilePath ) +{ + AUDIO_CONFIG cfg; + + readNextMetadataChunk( line, "\n" ); + parseUint8( line, &inConfig->masaBus.inputChannelIndex ); + --inConfig->masaBus.inputChannelIndex; /* Convert from 1-indexing */ + + readNextMetadataChunk( line, "\n" ); + + /* Allow both just the number of TCs or MASAx. parseStrToAudioCfg() only accepts MASAx, so prepend if necessary. */ + if ( strncmp( line, "MASA", 4 ) != 0 ) + { + char numTcs = *line; + sprintf( line, "MASA%c", numTcs ); + } + + cfg = parseStrToAudioCfg( line ); + inConfig->masaBus.numTc = audioCfgToMasaEnum( cfg ); + + readNextMetadataChunk( line, "\n" ); + strcpy( masaMetadataFilePath, line ); + + /* Read optional values */ + parseOptionalInputValues( line, &inConfig->masaBus.gain_dB ); +} + static void parseCustomLayoutFile( char *filePath, IVAS_LSSETUP_CUSTOM_HANDLE *hLsSetupCustom ) @@ -1735,7 +1840,8 @@ static void parseMetadata( char *metadataString, char *inDir, IVAS_REND_InputConfig *inConfig, - IsmPositionProvider *positionProvider ) + IsmPositionProvider *positionProvider, + char *masaMetadataFilePath ) { char line[RENDERER_MAX_METADATA_LINE_LENGTH]; char *delimiter; @@ -1744,6 +1850,7 @@ static void parseMetadata( uint8_t counterChannelAudioObjects; uint8_t counterAmbisonicsAudioObjects; uint8_t counterMonoAudioObjects; + uint8_t counterMasaInputs; uint8_t num_parsed_inputs; delimiter = "\n"; @@ -1771,6 +1878,7 @@ static void parseMetadata( counterChannelAudioObjects = 0; counterAmbisonicsAudioObjects = 0; counterMonoAudioObjects = 0; + counterMasaInputs = 0; readNextMetadataChunk( line, delimiter ); @@ -1807,6 +1915,16 @@ static void parseMetadata( } parseIsm( line, inDir, inConfig, positionProvider, counterMonoAudioObjects - 1 ); } + else if ( strcmp( line, "MASA" ) == 0 ) + { + ++counterMasaInputs; + if ( counterMasaInputs > RENDERER_MAX_MASA_INPUTS ) + { + fprintf( stderr, "Metadata exceeds the supported number of MASA inputs\n" ); + exit( -1 ); + } + parseMasa( line, inConfig, masaMetadataFilePath ); + } else if ( line[0] == '\0' ) { fprintf( stderr, "Metadata string too short - expected %d inputs, found %d.\n", totalNumberOfAudioObjects, num_parsed_inputs ); @@ -1824,6 +1942,7 @@ static void parseMetadata( inConfig->numAudioObjects = counterMonoAudioObjects; inConfig->numAmbisonicsBuses = counterAmbisonicsAudioObjects; inConfig->numMultiChannelBuses = counterChannelAudioObjects; + inConfig->numMasaBuses = counterMasaInputs; positionProvider->numObjects = counterMonoAudioObjects; /* check for trailing text */ @@ -1835,15 +1954,17 @@ static void parseMetadata( } } -void parseConfigFile( char *path, char *audioFilePath, IVAS_REND_InputConfig *inConfig, IsmPositionProvider *positionProvider ) +void parseConfigFile( char *path, char *audioFilePath, IVAS_REND_InputConfig *inConfig, IsmPositionProvider *positionProvider, char *masaMetadataFilePath ) { uint32_t inAudioFilePathLen; char inAudioFilePath[FILENAME_MAX]; + char inMasaFilePath[FILENAME_MAX]; uint32_t mtdStrLen; char mtdStr[RENDERER_MAX_METADATA_LENGTH]; char inDir[FILENAME_MAX]; char *lastSlash = NULL; + inMasaFilePath[0] = '\0'; inAudioFilePathLen = FILENAME_MAX; mtdStrLen = RENDERER_MAX_METADATA_LENGTH; splitConfigFile( path, @@ -1868,7 +1989,15 @@ void parseConfigFile( char *path, char *audioFilePath, IVAS_REND_InputConfig *in strcpy( audioFilePath, inDir ); strncat( audioFilePath, inAudioFilePath, inAudioFilePathLen ); - parseMetadata( mtdStr, inDir, inConfig, positionProvider ); + parseMetadata( mtdStr, inDir, inConfig, positionProvider, inMasaFilePath ); + + /* Append MASA file path (relative to config file location) + * to config file location path to get full absolute path */ + if ( inMasaFilePath[0] != '\0' ) + { + strcpy( masaMetadataFilePath, inDir ); + strcat( masaMetadataFilePath, inMasaFilePath ); + } } static void convert_backslash( char *str ) diff --git a/ci/disable_ram_counting.py b/ci/disable_ram_counting.py new file mode 100644 index 0000000000..3c89153508 --- /dev/null +++ b/ci/disable_ram_counting.py @@ -0,0 +1,20 @@ +import re +import os + +FILE_PATH = os.path.join(os.path.dirname(__file__), "..", "lib_com", "options.h") +RE_TO_COMMENT_OUT = re.compile(r"#define\s+RAM_COUNTING_TOOL") + + +def main(): + with open(FILE_PATH, "r", encoding="utf-8") as file: + lines = file.readlines() + + for i, line in enumerate(lines): + lines[i] = RE_TO_COMMENT_OUT.sub(lambda x: f"/* {x.group(0)} */", line) + + with open(FILE_PATH, "w", encoding="utf-8") as file: + file.writelines(lines) + + +if __name__ == "__main__": + main() diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 2d568e8837..903e27fe19 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -81,6 +81,7 @@ struct IVAS_REND int16_t numInChannelsObj; /* Total number of input channels of object inputs */ int16_t numInChannelsAmbi; /* Total number of input channels of ambisonics inputs */ int16_t numInChannelsMc; /* Total number of input channels of multichannel inputs */ + int16_t numInChannelsMasa; /* Total number of input channels of MASA inputs */ /* For each channel of MC inputs mcPassThrough contains the corresponding * output channel index if a passthrough is possible, otherwise contains -1 */ @@ -99,10 +100,14 @@ struct IVAS_REND /* Ambisonics decoding matrix */ float *ambi_dec_mtx; + /* =========== MASA rendering handles/structs =========== */ + MASA_METADATA_FRAME masaMetadata; /* TODO @ Nokia: add more MASA related handles here if needed */ + /* Dummy decoders for binaural rendering */ DecoderDummy *decDummyAmbiBin; DecoderDummy *decDummyObjBin; DecoderDummy *decDummyMcBin; + DecoderDummy *decDummyMasaBin; /* Head rotation data */ int8_t enableHeadRotation; /* head rotation flag */ @@ -129,6 +134,11 @@ static void renderObjectsToAmbi( const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, IVAS_REND_AudioBuffer outAudio ); +static void renderMasaToAmbi( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ); + static void renderAmbiToChannels( const IVAS_REND_HANDLE st, const IVAS_REND_AudioBuffer inAudio, @@ -145,6 +155,11 @@ static void renderObjectsToChannels( const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, IVAS_REND_AudioBuffer outAudio ); +static void renderMasaToChannels( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ); + static void renderAmbiToBinaural( const IVAS_REND_HANDLE st, const IVAS_REND_AudioBuffer inAudio, @@ -161,6 +176,11 @@ static void renderObjectsToBinaural( const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, IVAS_REND_AudioBuffer outAudio ); +static void renderMasaToBinaural( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ); + static void renderSingleObjectToAmbi( IVAS_REND_HANDLE st, const IVAS_REND_AudioBuffer inAudio, @@ -292,6 +312,7 @@ IVAS_REND_HANDLE IVAS_REND_Open() st->decDummyAmbiBin = NULL; st->decDummyMcBin = NULL; st->decDummyObjBin = NULL; + st->decDummyMasaBin = NULL; st->enableHeadRotation = 0; for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) @@ -311,6 +332,7 @@ static DecoderDummy *allocDecoderDummy( int32_t sampleRate, int16_t numOutChanne decDummy->hDecoderConfig = count_malloc( sizeof( DECODER_CONFIG ) ); decDummy->hDecoderConfig->output_Fs = sampleRate; decDummy->hDecoderConfig->nchan_out = numOutChannels; + decDummy->hDecoderConfig->Opt_Headrotation = enableHeadRotation; ivas_render_config_open( &decDummy->hRenderConfig ); decDummy->hRenderConfig->roomAcoustics.late_reverb_on = 0; @@ -341,6 +363,42 @@ static DecoderDummy *allocDecoderDummy( int32_t sampleRate, int16_t numOutChanne return decDummy; } +static ivas_error initDecoderDummyForMasaToAmbi( DecoderDummy *decDummyMasaAmbi, IVAS_REND_InputConfig inConfig ) +{ + ivas_error error; + error = IVAS_ERR_OK; + + /* TODO @ Nokia: set relevant members of decDummy */ + (void)decDummyMasaAmbi; + (void)inConfig; + + return error; +} + +static ivas_error initDecoderDummyForMasaToChannels( DecoderDummy *decDummyMasaChannels, IVAS_REND_InputConfig inConfig ) +{ + ivas_error error; + error = IVAS_ERR_OK; + + /* TODO @ Nokia: set relevant members of decDummy */ + (void)decDummyMasaChannels; + (void)inConfig; + + return error; +} + +static ivas_error initDecoderDummyForMasaToBinaural( DecoderDummy *decDummyMasaBin, IVAS_REND_InputConfig inConfig ) +{ + ivas_error error; + error = IVAS_ERR_OK; + + /* TODO @ Nokia: set relevant members of decDummy */ + (void)decDummyMasaBin; + (void)inConfig; + + return error; +} + static ivas_error initDecoderDummyForAmbiToBinaural( DecoderDummy *decDummyAmbiBin, IVAS_REND_InputConfig inConfig ) { ivas_error error; @@ -413,6 +471,7 @@ static ivas_error initDecoderDummyForMcToBinaural( DecoderDummy *decDummyMcBin, decDummyMcBin->hHrtf = NULL; decDummyMcBin->hHrtfTD = NULL; decDummyMcBin->hBinRenderer = NULL; + decDummyMcBin->hEFAPdata = NULL; decDummyMcBin->ivas_format = MC_FORMAT; decDummyMcBin->mc_mode = MC_MODE_MCT; @@ -505,7 +564,11 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, /* ============================= Error checks ============================= */ assert( st != NULL && "Can't configure renderer - pointer is NULL" ); assert( !st->isConfigured && "Re-configuring a renderer is not supported" ); - assert( !( inConfig.numAudioObjects == 0 && inConfig.numMultiChannelBuses == 0 && inConfig.numAmbisonicsBuses == 0 ) && "At least one input must be active" ); + assert( !( inConfig.numAudioObjects == 0 && + inConfig.numMultiChannelBuses == 0 && + inConfig.numAmbisonicsBuses == 0 && + inConfig.numMasaBuses == 0 ) && + "At least one input must be active" ); numActiveOutputs = ( outConfig.ambisonics == IVAS_REND_AMBISONICS_NONE ? 0 : 1 ) + @@ -545,8 +608,11 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, /* Save total number of channels of audio object inputs */ st->numInChannelsObj = st->inConfig.numAudioObjects; + /* Save total number of channels of MASA inputs */ + st->numInChannelsMasa = st->inConfig.numMasaBuses == 1 ? (int16_t) st->inConfig.masaBus.numTc : 0; + /* Save total number of input channels */ - st->numInChannels = st->numInChannelsObj + st->numInChannelsAmbi + st->numInChannelsMc; + st->numInChannels = st->numInChannelsObj + st->numInChannelsAmbi + st->numInChannelsMc + st->numInChannelsMasa; if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) { @@ -628,6 +694,37 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, } } + /* Prepare MASA processing */ + if ( st->inConfig.numMasaBuses != 0 ) + { + st->decDummyMasaBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation ); + + /* TODO @ Nokia: initialize decoder dummy for MASA rendering depending on output config. + Feel free to clean this up if some other structure works better. */ + if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) + { + if ( ( error = initDecoderDummyForMasaToAmbi( st->decDummyMasaBin, st->inConfig ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) + { + if ( ( error = initDecoderDummyForMasaToChannels( st->decDummyMasaBin, st->inConfig ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st->outConfig.binaural ) + { + if ( ( error = initDecoderDummyForMasaToBinaural( st->decDummyMasaBin, st->inConfig ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } + + /* Prepare binaural rendering if enabled */ if ( st->outConfig.binaural ) { if ( headRotationEnabled ) @@ -702,6 +799,25 @@ void IVAS_REND_SetHeadRotation( } } +ivas_error IVAS_REND_FeedMasaMetadata( + IVAS_REND_HANDLE st, + IVAS_MASA_METADATA_HANDLE hMasaMetadata ) +{ + if ( !st->isConfigured ) + { + return IVAS_ERR_NOT_CONFIGURED; + } + + if ( st->inConfig.numMasaBuses == 0 ) + { + return IVAS_ERR_METADATA_NOT_EXPECTED; + } + + st->masaMetadata = *hMasaMetadata; + + return IVAS_ERR_OK; +} + void IVAS_REND_Render( IVAS_REND_HANDLE st, const IVAS_REND_AudioBuffer inAudio, @@ -744,6 +860,11 @@ void IVAS_REND_Render( { renderObjectsToAmbi( st, inAudio, metadataBuffer, outAudio ); } + + if ( st->inConfig.numMasaBuses != 0 ) + { + renderMasaToAmbi( st, inAudio, outAudio ); + } } /* Render target format: multichannel */ else if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) { @@ -761,6 +882,11 @@ void IVAS_REND_Render( { renderObjectsToChannels( st, inAudio, metadataBuffer, outAudio ); } + + if ( st->inConfig.numMasaBuses != 0 ) + { + renderMasaToChannels( st, inAudio, outAudio ); + } } /* Render target format: binaural */ else if ( st->outConfig.binaural ) { @@ -783,6 +909,11 @@ void IVAS_REND_Render( { renderObjectsToBinaural( st, inAudio, metadataBuffer, outAudio ); } + + if ( st->inConfig.numMasaBuses != 0 ) + { + renderMasaToBinaural( st, inAudio, outAudio ); + } } /* Apply limiting in place */ @@ -956,6 +1087,10 @@ void IVAS_REND_Close( IVAS_REND_HANDLE *st ) { count_free( hIvasRend->decDummyMcBin->hHeadTrackData ); } + if ( hIvasRend->decDummyMcBin->hEFAPdata ) + { + efap_free_data( &hIvasRend->decDummyMcBin->hEFAPdata ); + } count_free( hIvasRend->decDummyMcBin ); } @@ -978,6 +1113,21 @@ void IVAS_REND_Close( IVAS_REND_HANDLE *st ) count_free( hIvasRend->decDummyObjBin ); } + if ( hIvasRend->decDummyMasaBin != NULL ) + { + ivas_render_config_close( &hIvasRend->decDummyMasaBin->hRenderConfig ); + count_free( hIvasRend->decDummyMasaBin->hDecoderConfig ); + + if ( hIvasRend->enableHeadRotation ) + { + count_free( hIvasRend->decDummyMasaBin->hHeadTrackData ); + } + + /* TODO @ Nokia: free any other memory allocated in the dummy decoder */ + + count_free( hIvasRend->decDummyMasaBin ); + } + ivas_limiter_close( &hIvasRend->hLimiter ); count_free( hIvasRend ); @@ -1033,6 +1183,57 @@ static float *get_smpl_ptr( IVAS_REND_AudioBuffer buffer, uint32_t chnlIdx, uint return buffer.data + chnlIdx * buffer.config.bufferSize + smplIdx; } +static void applyGainToBuffer( const IVAS_REND_AudioBuffer buffer, const uint32_t bufChIdx, float gain_lin ) +{ + int32_t smplIdx, chnlIdx; + float *smplPtr; + + /* TODO(sgi): Fix channel indexing - provide range of channels to be modified */ + /* Return early for now, this function is buggy */ + return; + + smplPtr = buffer.data + bufChIdx; + for ( chnlIdx = 0; chnlIdx < buffer.config.numChannels; ++chnlIdx ) + { + for ( smplIdx = 0; smplIdx < buffer.config.bufferSize; ++smplIdx ) + { + *smplPtr++ *= gain_lin; + } + } +} + +static void copyBufferTo2dArray( const IVAS_REND_AudioBuffer buffer, const uint32_t chInIdx, const uint32_t numCh, float array[MAX_OUTPUT_CHANNELS][L_FRAME48k] ) +{ + int32_t smplIdx; + uint32_t chnlIdx; + const float *readPtr; + + readPtr = buffer.data + chInIdx * buffer.config.bufferSize; + for ( chnlIdx = 0; chnlIdx < numCh; ++chnlIdx ) + { + for ( smplIdx = 0; smplIdx < buffer.config.bufferSize; ++smplIdx ) + { + array[chnlIdx][smplIdx] = *readPtr++; + } + } +} + +static void copy2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME48k], IVAS_REND_AudioBuffer *buffer, const uint32_t chOutIdx, const uint32_t numCh ) +{ + int32_t smplIdx; + uint32_t chnlIdx; + float *writePtr; + + writePtr = buffer->data + chOutIdx * buffer->config.bufferSize; + for ( chnlIdx = 0; chnlIdx < numCh; ++chnlIdx ) + { + for ( smplIdx = 0; smplIdx < buffer->config.bufferSize; ++smplIdx ) + { + *writePtr++ = array[chnlIdx][smplIdx]; + } + } +} + static void renderAmbiToAmbi( const IVAS_REND_HANDLE st, const IVAS_REND_AudioBuffer inAudio, IVAS_REND_AudioBuffer outAudio ) @@ -1208,6 +1409,27 @@ static void renderObjectsToAmbi( #endif } +static void renderMasaToAmbi( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ) +{ + uint32_t inMasaChannelIdx; + float gain_lin; + float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + + inMasaChannelIdx = st->inConfig.masaBus.inputChannelIndex; + gain_lin = dBToLin( st->inConfig.masaBus.gain_dB ); + + applyGainToBuffer( inAudio, inMasaChannelIdx, gain_lin ); + copyBufferTo2dArray( inAudio, inMasaChannelIdx, st->numInChannelsMasa, tmpBuffer ); + + /* TODO @ Nokia: Process audio in-place in tmpBuffer. MASA metadata for current frame already available in st->masaMetadata. */ + memset( tmpBuffer, 0, sizeof( tmpBuffer ) ); + + copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); +} + static void renderAmbiToChannels( const IVAS_REND_HANDLE st, const IVAS_REND_AudioBuffer inAudio, IVAS_REND_AudioBuffer outAudio ) @@ -1417,51 +1639,6 @@ static void renderObjectsToChannels( #endif } -static void applyGainToBuffer( const IVAS_REND_AudioBuffer buffer, const uint32_t bufChIdx, float gain_lin ) -{ - int32_t smplIdx, chnlIdx; - float *smplPtr; - - smplPtr = buffer.data + bufChIdx; - for ( chnlIdx = 0; chnlIdx < buffer.config.numChannels; ++chnlIdx ) - { - for ( smplIdx = 0; smplIdx < buffer.config.bufferSize; ++smplIdx ) - { - *smplPtr++ *= gain_lin; - } - } -} - -static void copyBufferTo2dArray( const IVAS_REND_AudioBuffer buffer, const uint32_t bufChIdx, float array[MAX_OUTPUT_CHANNELS][L_FRAME48k] ) -{ - int32_t smplIdx, chnlIdx; - const float *readPtr; - - readPtr = buffer.data + bufChIdx; - for ( chnlIdx = 0; chnlIdx < buffer.config.numChannels; ++chnlIdx ) - { - for ( smplIdx = 0; smplIdx < buffer.config.bufferSize; ++smplIdx ) - { - array[chnlIdx][smplIdx] = *readPtr++; - } - } -} - -static void copy2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME48k], IVAS_REND_AudioBuffer *buffer, const uint32_t bufChIdx ) -{ - int32_t smplIdx, chnlIdx; - float *writePtr; - - writePtr = buffer->data + bufChIdx; - for ( chnlIdx = 0; chnlIdx < buffer->config.numChannels; ++chnlIdx ) - { - for ( smplIdx = 0; smplIdx < buffer->config.bufferSize; ++smplIdx ) - { - *writePtr++ = array[chnlIdx][smplIdx]; - } - } -} - static void copyHeadRotToDecDummy( const IVAS_QUATERNION *headRot, DecoderDummy *decDummy ) { int16_t i; @@ -1482,6 +1659,27 @@ static void copyHeadRotToDecDummy( const IVAS_QUATERNION *headRot, DecoderDummy decDummy->hDecoderConfig->Opt_Headrotation = 0; } +static void renderMasaToChannels( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ) +{ + uint32_t inMasaChannelIdx; + float gain_lin; + float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + + inMasaChannelIdx = st->inConfig.masaBus.inputChannelIndex; + gain_lin = dBToLin( st->inConfig.masaBus.gain_dB ); + + applyGainToBuffer( inAudio, inMasaChannelIdx, gain_lin ); + copyBufferTo2dArray( inAudio, inMasaChannelIdx, st->numInChannelsMasa, tmpBuffer ); + + /* TODO @ Nokia: Process audio in-place in tmpBuffer. MASA metadata for current frame already available in st->masaMetadata. */ + memset( tmpBuffer, 0, sizeof( tmpBuffer ) ); + + copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); +} + static void renderAmbiToBinaural( const IVAS_REND_HANDLE st, const IVAS_REND_AudioBuffer inAudio, @@ -1493,6 +1691,7 @@ static void renderAmbiToBinaural( uint32_t inAmbiChannelIdx; float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; float gain_lin; + int32_t numInChannels; #ifdef WMOPS wmops_sub_start( "renderAmbiToBinaural" ); @@ -1508,9 +1707,10 @@ static void renderAmbiToBinaural( { inAmbiChannelIdx = st->inConfig.ambisonicsBuses[ambiIdx].inputChannelIndex; gain_lin = dBToLin( st->inConfig.ambisonicsBuses[ambiIdx].gain_dB ); + numInChannels = getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ); applyGainToBuffer( inAudio, inAmbiChannelIdx, gain_lin ); - copyBufferTo2dArray( inAudio, inAmbiChannelIdx, tmpBuffer ); + copyBufferTo2dArray( inAudio, inAmbiChannelIdx, numInChannels, tmpBuffer ); if ( st->enableHeadRotation ) { @@ -1522,7 +1722,7 @@ static void renderAmbiToBinaural( ivas_crend_process( st->decDummyAmbiBin, tmpBuffer ); - copy2dArrayToBuffer( tmpBuffer, &outAudio, inAmbiChannelIdx ); + copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); } @@ -1545,6 +1745,7 @@ static void renderChannelsToBinaural( float tmpLfeBuffer[L_FRAME48k]; float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; float gain_lin; + int32_t numInChannels; #ifdef WMOPS wmops_sub_start( "renderChannelsToBinaural" ); @@ -1560,9 +1761,10 @@ static void renderChannelsToBinaural( { inMcChannelIdx = st->inConfig.multiChannelBuses[mcIdx].inputChannelIndex; gain_lin = dBToLin( st->inConfig.multiChannelBuses[mcIdx].gain_dB ); + numInChannels = getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); applyGainToBuffer( inAudio, inMcChannelIdx, gain_lin ); - copyBufferTo2dArray( inAudio, inMcChannelIdx, tmpBuffer ); + copyBufferTo2dArray( inAudio, inMcChannelIdx, numInChannels, tmpBuffer ); /* Rotation in spatial domain */ if ( st->enableHeadRotation ) @@ -1602,7 +1804,7 @@ static void renderChannelsToBinaural( mvr2r( &tmpLfeBuffer[lfeLpDelay], &tmpBuffer[lfeChIdx][0], L_FRAME48k - lfeLpDelay ); ivas_binaural_add_LFE( st->decDummyMcBin, L_FRAME48k, tmpBuffer ); - copy2dArrayToBuffer( tmpBuffer, &outAudio, inMcChannelIdx ); + copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); } @@ -1621,6 +1823,7 @@ static void renderObjectsToBinaural( int16_t tmpAzi, tmpEle; float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; float gain_lin; + uint32_t inIsmIdx; #ifdef WMOPS wmops_sub_start( "renderObjectsToBinaural" ); @@ -1658,21 +1861,46 @@ static void renderObjectsToBinaural( st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth = (float) tmpAzi; st->decDummyObjBin->hIsmMetaData[objIdx]->elevation = (float) tmpEle; } + + inIsmIdx = st->inConfig.audioObjects[objIdx].inputChannelIndex; + + /* Copy input audio to tmp buffer for processing */ + copyBufferTo2dArray( inAudio, inIsmIdx, 1, &tmpBuffer[objIdx] ); } /* TODO tmu : enable per-object gains */ gain_lin = dBToLin( st->inConfig.audioObjects[0].gain_dB ); applyGainToBuffer( inAudio, 0, gain_lin ); - copyBufferTo2dArray( inAudio, 0, tmpBuffer ); ObjRenderIVASFrame( st->decDummyObjBin, tmpBuffer, inAudio.config.bufferSize ); - copy2dArrayToBuffer( tmpBuffer, &outAudio, 0 ); + copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); #ifdef WMOPS wmops_sub_end(); #endif } +static void renderMasaToBinaural( + IVAS_REND_HANDLE st, + const IVAS_REND_AudioBuffer inAudio, + IVAS_REND_AudioBuffer outAudio ) +{ + uint32_t inMasaChannelIdx; + float gain_lin; + float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + + inMasaChannelIdx = st->inConfig.masaBus.inputChannelIndex; + gain_lin = dBToLin( st->inConfig.masaBus.gain_dB ); + + applyGainToBuffer( inAudio, inMasaChannelIdx, gain_lin ); + copyBufferTo2dArray( inAudio, inMasaChannelIdx, st->numInChannelsMasa, tmpBuffer ); + + /* TODO @ Nokia: Process audio in-place in tmpBuffer. MASA metadata for current frame already available in st->masaMetadata. */ + memset( tmpBuffer, 0, sizeof( tmpBuffer ) ); + + copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); +} + static void renderSingleObjectToAmbi( IVAS_REND_HANDLE st, const IVAS_REND_AudioBuffer inAudio, diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 536a6da997..5b8f42f2da 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -44,6 +44,7 @@ #define RENDERER_MAX_ISM_INPUTS 4 #define RENDERER_MAX_MC_INPUTS 1 #define RENDERER_MAX_SBA_INPUTS 1 +#define RENDERER_MAX_MASA_INPUTS 1 #define RENDERER_HEAD_POSITIONS_PER_FRAME 4 @@ -69,6 +70,13 @@ typedef enum IVAS_REND_SpeakerLayout IVAS_REND_SPEAKER_LAYOUT_7_1_4 = 19 } IVAS_REND_SpeakerLayout; /* Numerical value corresponds to CICP index */ +typedef enum IVAS_REND_MasaTc +{ + IVAS_REND_MASA_TC_NONE = -1, + IVAS_REND_MASA_TC_1 = 1, + IVAS_REND_MASA_TC_2 = 2, +} IVAS_REND_MasaTc; /* Numerical value corresponds to number of transport channels */ + typedef struct IVAS_REND_AudioObjectPosition { float azimuth; @@ -107,6 +115,13 @@ typedef struct IVAS_REND_MultiChannelBus float gain_dB; } IVAS_REND_MultiChannelBus; +typedef struct IVAS_REND_MasaBus +{ + IVAS_REND_MasaTc numTc; + uint8_t inputChannelIndex; + float gain_dB; +} IVAS_REND_MasaBus; + typedef struct IVAS_REND_AudioBufferConfig { int32_t sampleRate; @@ -129,6 +144,8 @@ typedef struct IVAS_REND_InputConfig IVAS_REND_AmbisonicsBus ambisonicsBuses[RENDERER_MAX_SBA_INPUTS]; uint16_t numAmbisonicsBuses; IVAS_LSSETUP_CUSTOM_HANDLE inSetupCustom; + IVAS_REND_MasaBus masaBus; /* Support one MASA input for now. Multiple inputs will be easier to implement after API rework. */ + uint16_t numMasaBuses; /* Keep for framework consistency for now. Again - this will not be necessary after API rework */ } IVAS_REND_InputConfig; typedef struct IVAS_REND_OutputConfig @@ -167,6 +184,11 @@ void IVAS_REND_SetHeadRotation( const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] ); +ivas_error IVAS_REND_FeedMasaMetadata( + IVAS_REND_HANDLE st, + IVAS_MASA_METADATA_HANDLE hMasaMetadata +); + /*! Renders one frame of audio samples */ void IVAS_REND_Render( IVAS_REND_HANDLE st, /* i : Renderer state */ diff --git a/scripts/pyaudio3dtools/binauralrenderer.py b/scripts/pyaudio3dtools/binauralrenderer.py index 52fc800242..d34d59babe 100644 --- a/scripts/pyaudio3dtools/binauralrenderer.py +++ b/scripts/pyaudio3dtools/binauralrenderer.py @@ -394,7 +394,8 @@ def binaural_fftconv_framewise( y = np.zeros([sig_len + T_rev, 2]) y0 = np.zeros([N_rev, sig_len + T_rev, 2]) - fade_in = np.linspace(0.0, 1.0, frame_len, endpoint=False) + fade_in = np.arange(frame_len) / (frame_len - 1) + fade_in = fade_in[:, np.newaxis] fade_out = 1.0 - fade_in for i_ear in [0, 1]: diff --git a/scripts/pyaudio3dtools/rotation.py b/scripts/pyaudio3dtools/rotation.py index 0457f6b8e9..4e94a640ad 100644 --- a/scripts/pyaudio3dtools/rotation.py +++ b/scripts/pyaudio3dtools/rotation.py @@ -228,7 +228,8 @@ def rotateHOA(x: np.ndarray, trajectory: str) -> np.ndarray: y = np.zeros([sig_len, sig_dim]) - fade_in = np.linspace(0, 1.0, frame_len, endpoint=False)[:, np.newaxis] + fade_in = np.arange(frame_len) / (frame_len - 1) + fade_in = fade_in[:, np.newaxis] fade_out = 1.0 - fade_in R = np.eye(sig_dim) @@ -311,7 +312,8 @@ def rotateMC(x: np.ndarray, trajectory: str, layout: spatialaudioformat) -> np.n # TODO LFE handling here panner = EFAP.EFAP(layout.ls_azi, layout.ls_ele) - fade_in = np.linspace(0, 1.0, frame_len, endpoint=False)[:, np.newaxis] + fade_in = np.arange(frame_len) / (frame_len - 1) + fade_in = fade_in[:, np.newaxis] fade_out = 1.0 - fade_in R = np.eye(layout.nchannels) diff --git a/scripts/pyaudio3dtools/spatialaudioconvert.py b/scripts/pyaudio3dtools/spatialaudioconvert.py index 259a01159e..3d4a4d95d5 100644 --- a/scripts/pyaudio3dtools/spatialaudioconvert.py +++ b/scripts/pyaudio3dtools/spatialaudioconvert.py @@ -401,7 +401,8 @@ def convert_ism( out_sig = np.zeros([sig_len, out_spfmt.nchannels]) - fade_in = np.linspace(0, 1.0, frame_len, endpoint=False)[:, np.newaxis] + fade_in = np.arange(frame_len) / (frame_len - 1) + fade_in = fade_in[:, np.newaxis] fade_out = 1.0 - fade_in if out_spfmt.isloudspeaker: diff --git a/scripts/tests/constants.py b/scripts/tests/constants.py index 07a5cbc5a9..8345dc6f4b 100644 --- a/scripts/tests/constants.py +++ b/scripts/tests/constants.py @@ -51,8 +51,9 @@ RENDERER_CMD = [ "", # 8 -> output format "-fs", "48", # 10 -> input fs - "-q", + # "--no_delay_cmp", # "-ndl", + "-q", ] """ Format to file mappings """ @@ -96,7 +97,6 @@ FORMAT_TO_FILE = { # "MASA1": TEST_VECTOR_DIR.joinpath("stv_IVASMASA_1dir1TC.pcm"), # "MASA2": TEST_VECTOR_DIR.joinpath("stv_IVASMASA_2dir2TC.pcm"), "META": TEST_VECTOR_DIR.joinpath("mixed_scene.txt"), - # Custom loudspeaker inputs (WIP) "16ch_8+4+4": NCHAN_TO_FILE[16], "4d0": NCHAN_TO_FILE[4], "4d4": NCHAN_TO_FILE[8], @@ -164,6 +164,7 @@ CUSTOM_LS_TO_TEST = [ """ Mixed scene ( metadata ) rendering """ METADATA_SCENES_TO_TEST = ["mixed_scene"] +METADATA_SCENES_TO_TEST_NO_BE = ["masa_scene"] """ Binaural rendering """ INPUT_FORMATS_BINAURAL = OUTPUT_FORMATS[2:] diff --git a/scripts/tests/data/masa_scene.txt b/scripts/tests/data/masa_scene.txt new file mode 100644 index 0000000000..46baa475c1 --- /dev/null +++ b/scripts/tests/data/masa_scene.txt @@ -0,0 +1,6 @@ +stv_IVASMASA_2dir2TC.wav +1 +MASA +1 +2 +stv_IVASMASA_2dir2TC.met diff --git a/scripts/tests/data/renderer_config_format_readme.txt b/scripts/tests/data/renderer_config_format_readme.txt index 790d52bfc5..adf4f01362 100644 --- a/scripts/tests/data/renderer_config_format_readme.txt +++ b/scripts/tests/data/renderer_config_format_readme.txt @@ -31,9 +31,9 @@ *******************************************************************************************************/ -######################## Pre-renderer config file format ######################## +########################## Renderer config file format ########################## -To run, the pre-renderer requires a config file describing the input scene. +To run, the renderer requires a config file describing the input scene. The expected format of the config file is as follows: ------------------------------------ Line 1: ------------------------------------ @@ -52,10 +52,11 @@ object or a channel bed. This is NOT the total number of channels in the input audio file. -The pre-renderer currently supports simultaneously: - * Up to 2 SBA inputs - * Up to 2 MC inputs - * Up to 16 ISM inputs +The renderer currently supports simultaneously: + * 1 SBA input + * 1 MC input + * 1 MASA input + * Up to 4 ISM inputs These limits can be freely changed with pre-processor macros, if needed. @@ -76,6 +77,11 @@ MC Index of the first channel of this input in the multitrack file (1-indexed) Name of speaker layout (X_Y_Z or CICPx format) +MASA +Index of the first channel of this input in the multitrack file (1-indexed) +Number of transport channels +Path to MASA metadata file (must be relative to config file location) + ISM Index of this input's audio in the multitrack file (1-indexed) Path to ISM metadata file (must be relative to config file location) diff --git a/scripts/tests/data/stv_IVASMASA_2dir2TC.wav b/scripts/tests/data/stv_IVASMASA_2dir2TC.wav new file mode 100644 index 0000000000..e159c4f9ae --- /dev/null +++ b/scripts/tests/data/stv_IVASMASA_2dir2TC.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60a713ed1b97cf94b16849806951ef83d8f41c8ee455b267ec0a292c695cbbc1 +size 576044 diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index d976f8f210..8159832aa1 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -233,16 +233,19 @@ def test_ism(in_fmt, out_fmt): in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], ) + # ISM to Ambisonics has differences due to optimizations in ivas_dirac_dec_get_response() + # additionally, positions parsed from the metadata files in C seem to be different + # due to (float) atof() reading being subsequently cast to int16_t check_BE(ref, ref_fs, cut, cut_fs, snr_min=38) -@pytest.mark.skip(reason="MASA rendering is currently not implemented") @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MASA) def test_masa(in_fmt, out_fmt): - ref, ref_fs = run_pyscripts( - in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] - ) + # TODO: implement MASA in Python, compare BE + # ref, ref_fs = run_pyscripts( + # in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] + # ) cut, cut_fs = run_renderer( in_fmt, @@ -250,7 +253,7 @@ def test_masa(in_fmt, out_fmt): in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], ) - check_BE(ref, ref_fs, cut, cut_fs) + # check_BE(ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @@ -268,6 +271,16 @@ def test_metadata(in_fmt, out_fmt): check_BE(ref, ref_fs, cut, cut_fs, snr_min=11) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST_NO_BE) +def test_metadata_masa(in_fmt, out_fmt): + # TODO: unify with test_metadata once Python supports MASA + cut, cut_fs = run_renderer( + "META", + out_fmt, + metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), + ) + # Binaural rendering (static) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) -- GitLab From 7df47684ab46abb18c83f32a2c03942ff628744d Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 18 Aug 2022 10:55:42 +0200 Subject: [PATCH 019/479] alternative patch within FIX_I74_BW_LIMITATION_ALT: sanitize the bandwidth before entering the encoding function --- lib_com/options.h | 1 + lib_enc/ivas_stat_enc.h | 3 ++ lib_enc/lib_enc.c | 106 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 97c8dfe87a..b1f230a73a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -150,6 +150,7 @@ #define DIRAC_DRCT_GAIN_TUNING /* issue 64: tuning of DirAC energy-compensation gains */ /*#define FIX_I74_BW_LIMITATION*/ /* issue 74: Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate */ +#define FIX_I74_BW_LIMITATION_ALT /* issue 74: Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate; alternative fix */ #define FIX_I74_CLEANING /* issue 74: remove redundant function call in ivas_cpe_enc() */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 331e1a75e7..151efe2c09 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -989,6 +989,9 @@ typedef struct encoder_config_structure int32_t input_Fs; /* input signal sampling frequency in Hz */ int16_t nchan_inp; /* number of input audio channels */ int16_t max_bwidth; /* maximum encoded bandwidth */ +#ifdef FIX_I74_BW_LIMITATION_ALT + int16_t max_bwidth_api; /* maximum encoded bandwidth, as set on API level */ +#endif IVAS_FORMAT ivas_format; /* IVAS format */ int16_t element_mode_init; /* element mode used at initialization */ diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index dbca263fbd..76832e7b0a 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -78,6 +78,7 @@ static int16_t getInputBufferSize( const Encoder_Struct *st_ivas ); static ivas_error doCommonConfigureChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error doCommonSetterChecks( IVAS_ENC_HANDLE hIvasEnc ); static void updateBandwidthFromFs( const ENCODER_CONFIG_HANDLE hEncoderConfig ); +static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ); static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error bandwidthApiToInternal( const IVAS_ENC_BANDWIDTH maxBandwidth, int16_t *internalMaxBandwidth ); @@ -1025,6 +1026,13 @@ ivas_error IVAS_ENC_EncodeFrameToSerial( return IVAS_ERR_INVALID_INPUT_BUFFER_SIZE; } +#ifdef FIX_I74_BW_LIMITATION_ALT + if ( ( error = sanitizeBandwidth( hIvasEnc ) ) != IVAS_ERR_OK ) + { + return error; + } +#endif + if ( hEncoderConfig->ivas_format == ISM_FORMAT ) { for ( i = 0; i < hEncoderConfig->nchan_inp; ++i ) @@ -1844,6 +1852,100 @@ static void updateBandwidthFromFs( } +#ifdef FIX_I74_BW_LIMITATION_ALT +/*---------------------------------------------------------------------* + * sanitizeBandwidth() + * + * + *---------------------------------------------------------------------*/ +static ivas_error sanitizeBandwidth( + const IVAS_ENC_HANDLE hIvasEnc ) +{ + ENCODER_CONFIG_HANDLE hEncoderConfig; + int16_t max_bwidth_tmp; + + hEncoderConfig = hIvasEnc->st_ivas->hEncoderConfig; + + max_bwidth_tmp = hEncoderConfig->max_bwidth_api; + + /* Prevent st_ivas->max_bwidth from being higher than Fs/2 */ + if ( hEncoderConfig->input_Fs == 8000 && max_bwidth_tmp > NB ) + { + max_bwidth_tmp = NB; + } + else if ( hEncoderConfig->input_Fs == 16000 && max_bwidth_tmp > WB ) + { + max_bwidth_tmp = WB; + } + else if ( hEncoderConfig->input_Fs == 32000 && max_bwidth_tmp > SWB ) + { + max_bwidth_tmp = SWB; + } + + /* NB coding not supported in IVAS. Switching to WB. */ + if ( max_bwidth_tmp == NB && hEncoderConfig->ivas_format != UNDEFINED_FORMAT && hEncoderConfig->ivas_format != MONO_FORMAT ) + { + if ( hEncoderConfig->input_Fs >= 16000 ) + { + max_bwidth_tmp = WB; + } + else + { + return IVAS_ERR_INVALID_BITRATE; + } + } + + if ( hEncoderConfig->ivas_format == MONO_FORMAT ) + { + if ( max_bwidth_tmp == FB && hEncoderConfig->ivas_total_brate < ACELP_16k40 ) + { + if ( hEncoderConfig->ivas_total_brate < ACELP_9k60 ) + { + max_bwidth_tmp = WB; + } + else + { + max_bwidth_tmp = SWB; + } + } + + if ( max_bwidth_tmp == SWB && hEncoderConfig->ivas_total_brate < ACELP_9k60 ) + { + max_bwidth_tmp = WB; + } + + /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ + if ( ( max_bwidth_tmp == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) + { + if ( hEncoderConfig->input_Fs >= 16000 ) + { + max_bwidth_tmp = WB; + } + else + { + return IVAS_ERR_INVALID_BITRATE; + } + } + } + else + { + if ( max_bwidth_tmp == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) + { + max_bwidth_tmp = SWB; + } + } + + if ( hEncoderConfig->max_bwidth != max_bwidth_tmp ) + { + hEncoderConfig->max_bwidth = max_bwidth_tmp; + hIvasEnc->switchingActive = true; + } + + return IVAS_ERR_OK; +} +#endif + + /*---------------------------------------------------------------------* * setBandwidth() * @@ -1866,6 +1968,10 @@ static ivas_error setBandwidth( return error; } +#ifdef FIX_I74_BW_LIMITATION_ALT + hEncoderConfig->max_bwidth_api = newBandwidth; +#endif + /* NB coding not supported in IVAS. Switching to WB. */ if ( newBandwidth == NB && hEncoderConfig->ivas_format != UNDEFINED_FORMAT && hEncoderConfig->ivas_format != MONO_FORMAT ) { -- GitLab From 55a760d31f1380395d36a45c0ef474db2a81cb5e Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 18 Aug 2022 12:33:50 +0200 Subject: [PATCH 020/479] Remove obsolete initial fix FIX_I74_BW_LIMITATION --- lib_com/options.h | 1 - lib_enc/lib_enc.c | 13 ------------- 2 files changed, 14 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index b1f230a73a..da7ed8d239 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,6 @@ #define DIRAC_DRCT_GAIN_TUNING /* issue 64: tuning of DirAC energy-compensation gains */ -/*#define FIX_I74_BW_LIMITATION*/ /* issue 74: Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate */ #define FIX_I74_BW_LIMITATION_ALT /* issue 74: Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate; alternative fix */ #define FIX_I74_CLEANING /* issue 74: remove redundant function call in ivas_cpe_enc() */ diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 76832e7b0a..0af18e48d4 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1580,26 +1580,16 @@ static ivas_error printConfigInfo_enc( if ( hEncoderConfig->ivas_total_brate < ACELP_9k60 ) { fprintf( stdout, "Switching to WB.\n" ); -#ifdef FIX_I74_BW_LIMITATION - hEncoderConfig->max_bwidth = WB; -#endif } else { fprintf( stdout, "Switching to SWB.\n" ); -#ifdef FIX_I74_BW_LIMITATION - hEncoderConfig->max_bwidth = SWB; -#endif - } } if ( hEncoderConfig->max_bwidth == SWB && hEncoderConfig->ivas_total_brate < ACELP_9k60 ) { fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.", ACELP_9k60 / 1000.f ); -#ifdef FIX_I74_BW_LIMITATION - hEncoderConfig->max_bwidth = WB; -#endif } /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ @@ -1614,9 +1604,6 @@ static ivas_error printConfigInfo_enc( if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) { fprintf( stdout, "\nFB coding not supported below %.2f kbps. Switching to SWB.\n", MIN_BRATE_FB_STEREO / 1000.f ); -#ifdef FIX_I74_BW_LIMITATION - hEncoderConfig->max_bwidth = SWB; -#endif } } -- GitLab From 6f84f648942d451472beda349e21214c6f8f2a92 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 18 Aug 2022 13:23:17 +0200 Subject: [PATCH 021/479] Update external renderer Updates include: - Fix for raw PCM input - Fix for build with Make on some platforms - Implementation of BINAURAL_ROOM output config --- Makefile | 2 +- apps/renderer.c | 56 +-- lib_com/ivas_prot.h | 10 + lib_rend/ivas_sba_rendering.c | 8 +- lib_rend/lib_rend.c | 416 ++++++++++++++------ lib_rend/lib_rend.h | 20 +- scripts/tests/constants.py | 5 +- scripts/tests/data/masa_scene.txt | 2 +- scripts/tests/data/stv_IVASMASA_2dir2TC.wav | 3 - scripts/tests/test_renderer.py | 36 +- 10 files changed, 378 insertions(+), 180 deletions(-) delete mode 100644 scripts/tests/data/stv_IVASMASA_2dir2TC.wav diff --git a/Makefile b/Makefile index e2bdf99b86..9514e9a582 100644 --- a/Makefile +++ b/Makefile @@ -185,7 +185,7 @@ $(CLI_APIDEC): $(OBJS_CLI_APIDEC) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(L $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APIDEC) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(CLI_APIDEC) $(CLI_APIREND): $(OBJS_CLI_APPREND) $(LIB_LIBREND) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) - $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livasutil -livascom -livasdebug $(LDLIBS) -o $(CLI_APIREND) + $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_APPREND) -L. -livasrend -livasutil -livasdebug -livascom $(LDLIBS) -o $(CLI_APIREND) $(CLI_UTESTS_CREND): $(OBJS_CLI_UTESTS_CREND) $(LIB_LIBDEC) $(LIB_LIBCOM) $(LIB_LIBUTIL) $(LIB_LIBDEBUG) $(QUIET_LINK)$(CC) $(LDFLAGS) $(OBJS_CLI_UTESTS_CREND) -L. -livasdec -livascom -livasutil -livasdebug $(LDLIBS) -o $(UTESTS_CREND_DIR)/$(CLI_UTESTS_CREND) diff --git a/apps/renderer.c b/apps/renderer.c index 38f1a7c16c..4ffa2ed427 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -168,7 +168,6 @@ typedef struct CmdlnArgs } CmdlnArgs; static int8_t setInConfig( - int16_t numChannels, AUDIO_CONFIG input_config, IVAS_REND_InputConfig *inConfig, IsmPositionProvider *positionProvider ); @@ -307,7 +306,6 @@ int32_t main( int32_t argc, char **argv ) char audioFilePath[FILENAME_MAX]; char masaMetadataFilePath[FILENAME_MAX]; AudioFileReader *audioReader = NULL; - int16_t numInChannels; AudioFileWriter *audioWriter; int16_t inBufferSize; int32_t outBufferSize; @@ -392,19 +390,12 @@ int32_t main( int32_t argc, char **argv ) if ( args.inputFormat != AUDIO_CONFIG_INVALID ) { - numInChannels = AudioFileReader_getNumChannels( audioReader ); - if ( numInChannels == 0 ) - { - fprintf( stderr, "File does not contain number of channels metadata, probably a raw file: %s\n", audioFilePath ); - exit( -1 ); - } - for ( i = 0; i < args.numAudioObjects; i++ ) { positionProvider->ismReaders[i] = IsmFileReader_open( args.metaDataFiles[i] ); } - if ( setInConfig( numInChannels, args.inputFormat, &args.inConfig, positionProvider ) != 0 ) + if ( setInConfig( args.inputFormat, &args.inConfig, positionProvider ) != 0 ) { fprintf( stderr, "File cannot be used: %s\n", audioFilePath ); exit( -1 ); @@ -412,7 +403,7 @@ int32_t main( int32_t argc, char **argv ) } /* === Configure === */ - if ( ( error = IVAS_REND_Configure( hIvasRend, args.inConfig, args.outConfig, args.sampleRate, args.trajectoryFile[0] != '\0' ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_Configure( hIvasRend, args.inConfig, args.outConfig, args.sampleRate, args.trajectoryFile[0] != '\0', args.renderConfigFile[0] != '\0' ) ) != IVAS_ERR_OK ) { exit( -1 ); } @@ -422,7 +413,8 @@ int32_t main( int32_t argc, char **argv ) IVAS_REND_SetNeverDropLfe( hIvasRend, 1 ); } - if ( IVAS_REND_GetInChannels( hIvasRend ) != AudioFileReader_getNumChannels( audioReader ) ) + if ( AudioFileReader_getNumChannels( audioReader ) != 0 /* If input file is raw PCM, audio reader has no info about number of channels */ + && IVAS_REND_GetInChannels( hIvasRend ) != AudioFileReader_getNumChannels( audioReader ) ) { fprintf( stderr, "Number of channels in input file does not match selected configuration\n" ); exit( -1 ); @@ -523,7 +515,7 @@ int32_t main( int32_t argc, char **argv ) { MasaFileReader_readNextFrame( masaReader ); - if ( ( error = IVAS_REND_FeedMasaMetadata(hIvasRend, hMasaMetadata) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_FeedMasaMetadata( hIvasRend, hMasaMetadata ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); @@ -645,7 +637,7 @@ int32_t main( int32_t argc, char **argv ) return 0; } -static int8_t setInConfig( int16_t numChannels, AUDIO_CONFIG input_config, IVAS_REND_InputConfig *inConfig, IsmPositionProvider *positionProvider ) +static int8_t setInConfig( AUDIO_CONFIG input_config, IVAS_REND_InputConfig *inConfig, IsmPositionProvider *positionProvider ) { int8_t success; /* flag */ int16_t i; @@ -690,10 +682,10 @@ static int8_t setInConfig( int16_t numChannels, AUDIO_CONFIG input_config, IVAS_ case AUDIO_CONFIG_ISM2: case AUDIO_CONFIG_ISM3: case AUDIO_CONFIG_ISM4: - inConfig->numAudioObjects = numChannels; - positionProvider->numObjects = numChannels; + inConfig->numAudioObjects = input_config - AUDIO_CONFIG_ISM1 + 1; /* TODO(sgi): Don't do arithemtic on enums, find a better way */ + positionProvider->numObjects = inConfig->numAudioObjects; - for ( i = 0; i < numChannels; ++i ) + for ( i = 0; i < inConfig->numAudioObjects; ++i ) { inConfig->audioObjects[i].inputChannelIndex = i; inConfig->audioObjects[i].gain_dB = 0; @@ -765,6 +757,20 @@ static IVAS_REND_Ambisonics audioCfgToAmbiEnum( AUDIO_CONFIG cfg ) return IVAS_REND_AMBISONICS_NONE; } +static IVAS_REND_BinauralFormat audioCfgToBinauralEnum( AUDIO_CONFIG cfg ) +{ + if ( cfg == AUDIO_CONFIG_BINAURAL ) + { + return IVAS_REND_BINAURAL_DIRECT; + } + else if ( cfg == AUDIO_CONFIG_BINAURAL_ROOM ) + { + return IVAS_REND_BINAURAL_ROOM; + } + + return IVAS_REND_BINAURAL_NONE; +} + static IVAS_REND_MasaTc audioCfgToMasaEnum( AUDIO_CONFIG cfg ) { switch ( cfg ) @@ -895,7 +901,7 @@ static AUDIO_CONFIG parseStrToAudioCfg( char *config_str ) else if ( strncmp( format, "ISM", 3 ) == 0 ) { parseUint8( &format[3], &numObjects ); - return AUDIO_CONFIG_ISM1 + numObjects - 1; + return AUDIO_CONFIG_ISM1 + numObjects - 1; /* TODO(sgi): Don't do arithemtic on enums, find a better way */ } else if ( strncmp( format, "MASA", 4 ) == 0 ) { @@ -1024,7 +1030,7 @@ static int8_t parseOutConfig( char *configString, IVAS_REND_OutputConfig *outCon break; case AUDIO_CONFIG_BINAURAL: case AUDIO_CONFIG_BINAURAL_ROOM: - outConfig->binaural = 1; + outConfig->binauralFormat = audioCfgToBinauralEnum( outCfg ); break; case AUDIO_CONFIG_META: /* handled by parseConfigFile() */ @@ -1116,24 +1122,18 @@ static CmdlnArgs defaultArgs( void ) args.outputFilePath[0] = '\0'; args.sampleRate = -1; -#ifdef RAM_COUNTING_TOOL - /* Zero-initialize entire input and output config struct. This is only needed when RAM counting - is active - when freeing memory, it reads all bytes from these structs, which results in msan - failures without full initialization. Without RAM counting the uninitialized struct members will - not be accessed. */ - memset( &args.inConfig, 0, sizeof( args.inConfig ) ); - memset( &args.outConfig, 0, sizeof( args.outConfig ) ); -#endif args.inConfig.inSetupCustom = NULL; args.inConfig.numAudioObjects = 0; args.inConfig.numAmbisonicsBuses = 0; args.inConfig.numMultiChannelBuses = 0; + args.inConfig.numMasaBuses = 0; args.outConfig.ambisonics = IVAS_REND_AMBISONICS_NONE; args.outConfig.speakerLayout = IVAS_REND_SPEAKER_LAYOUT_NONE; args.outConfig.outSetupCustom = NULL; - args.outConfig.binaural = 0; + args.outConfig.binauralFormat = IVAS_REND_BINAURAL_NONE; + args.orientationTracking = IVAS_ORIENT_TRK_REF; args.trajectoryFile[0] = '\0'; args.customHrtfFile[0] = '\0'; diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 576bf1c684..a125d558a3 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3099,6 +3099,16 @@ ivas_error ivas_sba_get_hoa_dec_matrix( const int16_t ambisonics_order /* i : Ambisonics order */ ); +#ifdef EXT_RENDERER +void ivas_sba_mtx_mult( + float output_f[][L_FRAME48k], /* i/o: synthesized core-corder transport channels/DirAC output */ + const int16_t output_frame, /* i : frame length per channel */ + const int16_t nchan_in, /* i : Number of ambisonic channels */ + IVAS_OUTPUT_SETUP output_setup, /* i : Output configuration */ + const float *mtx_hoa_decoder /* o : HOA decoding matrix */ +); +#endif + /*----------------------------------------------------------------------------------* * DirAC prototypes *----------------------------------------------------------------------------------*/ diff --git a/lib_rend/ivas_sba_rendering.c b/lib_rend/ivas_sba_rendering.c index 1e8b61caca..dbcec392a5 100644 --- a/lib_rend/ivas_sba_rendering.c +++ b/lib_rend/ivas_sba_rendering.c @@ -46,7 +46,9 @@ * Local function prototypes *-----------------------------------------------------------------------*/ +#ifndef EXT_RENDERER static void ivas_sba_mtx_mult( float output_f[][L_FRAME48k], const int16_t output_frame, const int16_t nchan_in, IVAS_OUTPUT_SETUP output_setup, const float *mtx_hoa_decoder ); +#endif static void ivas_sba_dmx_dec( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); #ifdef DEBUG_MODE_DIRAC @@ -530,12 +532,16 @@ ivas_error ivas_sba_linear_renderer( * HOA decoding with LFE insertion *-------------------------------------------------------------------*/ +#ifdef EXT_RENDERER +void ivas_sba_mtx_mult( +#else static void ivas_sba_mtx_mult( +#endif float output_f[][L_FRAME48k], /* i/o: synthesized core-coder transport channels/DirAC output */ const int16_t output_frame, /* i : output frame length per channel */ const int16_t nchan_in, /* i : Number of ambisonic channels */ IVAS_OUTPUT_SETUP output_setup, /* i : Output configuration */ - const float *mtx_hoa_decoder /* i : Hoa decoding mtx */ + const float *mtx_hoa_decoder /* o : HOA decoding mtx */ ) { int16_t i, k, ch_idx; diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 903e27fe19..18f556a56f 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -112,6 +112,9 @@ struct IVAS_REND /* Head rotation data */ int8_t enableHeadRotation; /* head rotation flag */ IVAS_QUATERNION headRotationData[RENDERER_HEAD_POSITIONS_PER_FRAME]; + + /* Configurable rendering */ + int8_t rendererConfigEnabled; }; /*---------------------------------------------------------------------* @@ -279,6 +282,9 @@ static float dBToLin( const float gain_dB ); static AUDIO_CONFIG mapRendLayoutToAudioConfig( IVAS_REND_SpeakerLayout speakerLayout ); +static AUDIO_CONFIG mapRendAmbisonicsToAudioConfig( + IVAS_REND_Ambisonics ambisonics ); + /* clang-on */ /* ========================================================================== */ @@ -314,6 +320,7 @@ IVAS_REND_HANDLE IVAS_REND_Open() st->decDummyObjBin = NULL; st->decDummyMasaBin = NULL; st->enableHeadRotation = 0; + st->rendererConfigEnabled = 0; for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) { @@ -323,7 +330,7 @@ IVAS_REND_HANDLE IVAS_REND_Open() return st; } -static DecoderDummy *allocDecoderDummy( int32_t sampleRate, int16_t numOutChannels, const uint8_t enableHeadRotation ) +static DecoderDummy *allocDecoderDummy( int32_t sampleRate, int16_t numOutChannels, const uint8_t enableHeadRotation, const uint8_t enableRenderConfig ) { int16_t i; DecoderDummy *decDummy; @@ -334,9 +341,10 @@ static DecoderDummy *allocDecoderDummy( int32_t sampleRate, int16_t numOutChanne decDummy->hDecoderConfig->nchan_out = numOutChannels; decDummy->hDecoderConfig->Opt_Headrotation = enableHeadRotation; - ivas_render_config_open( &decDummy->hRenderConfig ); - decDummy->hRenderConfig->roomAcoustics.late_reverb_on = 0; - decDummy->hRenderConfig->roomAcoustics.use_brir = 0; + decDummy->hBinRenderer = NULL; + decDummy->hEFAPdata = NULL; + decDummy->hHrtf = NULL; + decDummy->hHrtfTD = NULL; if ( enableHeadRotation ) { @@ -358,6 +366,17 @@ static DecoderDummy *allocDecoderDummy( int32_t sampleRate, int16_t numOutChanne decDummy->hHeadTrackData = NULL; } + if ( enableRenderConfig ) + { + ivas_render_config_open( &decDummy->hRenderConfig ); + decDummy->hRenderConfig->roomAcoustics.late_reverb_on = 0; + decDummy->hRenderConfig->roomAcoustics.use_brir = 0; + } + else + { + decDummy->hRenderConfig = NULL; + } + decDummy->renderer_type = RENDERER_DISABLE; return decDummy; @@ -369,8 +388,8 @@ static ivas_error initDecoderDummyForMasaToAmbi( DecoderDummy *decDummyMasaAmbi, error = IVAS_ERR_OK; /* TODO @ Nokia: set relevant members of decDummy */ - (void)decDummyMasaAmbi; - (void)inConfig; + (void) decDummyMasaAmbi; + (void) inConfig; return error; } @@ -381,8 +400,8 @@ static ivas_error initDecoderDummyForMasaToChannels( DecoderDummy *decDummyMasaC error = IVAS_ERR_OK; /* TODO @ Nokia: set relevant members of decDummy */ - (void)decDummyMasaChannels; - (void)inConfig; + (void) decDummyMasaChannels; + (void) inConfig; return error; } @@ -393,27 +412,27 @@ static ivas_error initDecoderDummyForMasaToBinaural( DecoderDummy *decDummyMasaB error = IVAS_ERR_OK; /* TODO @ Nokia: set relevant members of decDummy */ - (void)decDummyMasaBin; - (void)inConfig; + (void) decDummyMasaBin; + (void) inConfig; return error; } -static ivas_error initDecoderDummyForAmbiToBinaural( DecoderDummy *decDummyAmbiBin, IVAS_REND_InputConfig inConfig ) +static ivas_error initDecoderDummyForAmbiToBinaural( DecoderDummy *decDummyAmbiBin, IVAS_REND_InputConfig inConfig, IVAS_REND_BinauralFormat binauralFormat ) { ivas_error error; assert( inConfig.numAmbisonicsBuses == 1 && "For now only 1 ambisonics input is supported" ); error = IVAS_ERR_OK; - decDummyAmbiBin->renderer_type = RENDERER_BINAURAL_MIXER_CONV; - decDummyAmbiBin->hHrtf = NULL; - decDummyAmbiBin->hBinRenderer = NULL; - decDummyAmbiBin->intern_config = decDummyAmbiBin->transport_config = - inConfig.ambisonicsBuses[0].ambisonicsConfig == IVAS_REND_AMBISONICS_FOA ? AUDIO_CONFIG_FOA - : inConfig.ambisonicsBuses[0].ambisonicsConfig == IVAS_REND_AMBISONICS_SOA ? AUDIO_CONFIG_HOA2 - : inConfig.ambisonicsBuses[0].ambisonicsConfig == IVAS_REND_AMBISONICS_TOA ? AUDIO_CONFIG_HOA3 - : AUDIO_CONFIG_INVALID; + decDummyAmbiBin->renderer_type = binauralFormat == IVAS_REND_BINAURAL_ROOM ? RENDERER_BINAURAL_MIXER_CONV_ROOM : RENDERER_BINAURAL_MIXER_CONV; + decDummyAmbiBin->intern_config = decDummyAmbiBin->transport_config = mapRendAmbisonicsToAudioConfig( inConfig.ambisonicsBuses[0].ambisonicsConfig ); + + /* BINAURAL_ROOM requires intermediate rendering to 7_1_4 */ + if ( binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + decDummyAmbiBin->intern_config = AUDIO_CONFIG_7_1_4; + } ivas_output_init( &decDummyAmbiBin->hIntSetup, decDummyAmbiBin->intern_config ); ivas_output_init( &decDummyAmbiBin->hTransSetup, decDummyAmbiBin->transport_config ); @@ -426,7 +445,7 @@ static ivas_error initDecoderDummyForAmbiToBinaural( DecoderDummy *decDummyAmbiB return error; } -static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin, IVAS_REND_InputConfig inConfig ) +static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin, IVAS_REND_InputConfig inConfig, IVAS_REND_BinauralFormat binauralFormat ) { ivas_error error; int32_t n; @@ -435,9 +454,6 @@ static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin error = IVAS_ERR_OK; - decDummyObjBin->renderer_type = RENDERER_BINAURAL_OBJECTS_TD; - decDummyObjBin->hHrtfTD = NULL; - decDummyObjBin->hBinRenderer = NULL; decDummyObjBin->ivas_format = ISM_FORMAT; decDummyObjBin->nSCE = inConfig.numAudioObjects; decDummyObjBin->nchan_transport = inConfig.numAudioObjects; @@ -451,15 +467,33 @@ static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin decDummyObjBin->hIsmMetaData[n] = NULL; } - if ( ( error = ivas_td_binaural_open( decDummyObjBin ) ) != IVAS_ERR_OK ) + /* BINAURAL_ROOM requires intermediate rendering to 7_1_4 */ + if ( binauralFormat == IVAS_REND_BINAURAL_ROOM ) { - return error; + decDummyObjBin->hBinRendererTd = NULL; + decDummyObjBin->renderer_type = RENDERER_BINAURAL_MIXER_CONV_ROOM; + decDummyObjBin->intern_config = AUDIO_CONFIG_7_1_4; + ivas_output_init( &decDummyObjBin->hIntSetup, decDummyObjBin->intern_config ); + + if ( ( error = ivas_crend_open( decDummyObjBin ) != IVAS_ERR_OK ) ) + { + return error; + } + } + else + { + decDummyObjBin->hCrend = NULL; + decDummyObjBin->renderer_type = RENDERER_BINAURAL_OBJECTS_TD; + if ( ( error = ivas_td_binaural_open( decDummyObjBin ) ) != IVAS_ERR_OK ) + { + return error; + } } return error; } -static ivas_error initDecoderDummyForMcToBinaural( DecoderDummy *decDummyMcBin, IVAS_REND_InputConfig inConfig, const uint8_t enableHeadRotation ) +static ivas_error initDecoderDummyForMcToBinaural( DecoderDummy *decDummyMcBin, IVAS_REND_InputConfig inConfig, IVAS_REND_BinauralFormat binauralFormat, const uint8_t enableHeadRotation ) { ivas_error error; IVAS_REND_SpeakerLayout spkLayout; @@ -468,39 +502,11 @@ static ivas_error initDecoderDummyForMcToBinaural( DecoderDummy *decDummyMcBin, error = IVAS_ERR_OK; - decDummyMcBin->hHrtf = NULL; - decDummyMcBin->hHrtfTD = NULL; - decDummyMcBin->hBinRenderer = NULL; - decDummyMcBin->hEFAPdata = NULL; decDummyMcBin->ivas_format = MC_FORMAT; decDummyMcBin->mc_mode = MC_MODE_MCT; spkLayout = inConfig.multiChannelBuses[0].speakerLayout; - - switch ( spkLayout ) - { - case IVAS_REND_SPEAKER_LAYOUT_5_1: - decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_5_1; - break; - case IVAS_REND_SPEAKER_LAYOUT_7_1: - decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_7_1; - break; - case IVAS_REND_SPEAKER_LAYOUT_5_1_2: - decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_5_1_2; - break; - case IVAS_REND_SPEAKER_LAYOUT_5_1_4: - decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_5_1_4; - break; - case IVAS_REND_SPEAKER_LAYOUT_7_1_4: - decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_7_1_4; - break; - case IVAS_REND_SPEAKER_LAYOUT_CUSTOM: - decDummyMcBin->intern_config = decDummyMcBin->transport_config = AUDIO_CONFIG_LS_CUSTOM; - break; - default: - assert( false && "Not supported yet" ); - break; - } + decDummyMcBin->intern_config = decDummyMcBin->transport_config = mapRendLayoutToAudioConfig( spkLayout ); if ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) { @@ -523,10 +529,12 @@ static ivas_error initDecoderDummyForMcToBinaural( DecoderDummy *decDummyMcBin, return error; } - /* Use TD binaural renderer only for 5_1 and 7_1 with headrotation or Custom LS */ - if ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM || - ( ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_5_1 || spkLayout == IVAS_REND_SPEAKER_LAYOUT_7_1 ) && enableHeadRotation ) ) + /* Use TD binaural renderer only for HRIRs for Custom LS or 5_1 and 7_1 with headrotation */ + if ( ( binauralFormat != IVAS_REND_BINAURAL_ROOM ) && + ( ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) || + ( enableHeadRotation && ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_5_1 || spkLayout == IVAS_REND_SPEAKER_LAYOUT_7_1 ) ) ) ) { + decDummyMcBin->renderer_type = RENDERER_BINAURAL_OBJECTS_TD; decDummyMcBin->hCrend = NULL; if ( ( error = ivas_td_binaural_open( decDummyMcBin ) ) != IVAS_ERR_OK ) @@ -536,7 +544,12 @@ static ivas_error initDecoderDummyForMcToBinaural( DecoderDummy *decDummyMcBin, } else { - decDummyMcBin->renderer_type = RENDERER_BINAURAL_MIXER_CONV; + /* TODO tmu : rendering custom layouts to BINAURAL_ROOM needs implementation */ + if ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM && binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + fprintf( stderr, "Warning! BINAURAL_ROOM output not supported for custom loudspeaker input! Overriding to BINAURAL.\n" ); + } + decDummyMcBin->renderer_type = binauralFormat == IVAS_REND_BINAURAL_ROOM ? RENDERER_BINAURAL_MIXER_CONV_ROOM : RENDERER_BINAURAL_MIXER_CONV; decDummyMcBin->hBinRendererTd = NULL; if ( ( error = ivas_crend_open( decDummyMcBin ) ) != IVAS_ERR_OK ) { @@ -551,7 +564,8 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, const IVAS_REND_InputConfig inConfig, const IVAS_REND_OutputConfig outConfig, uint32_t sampleRate, - bool headRotationEnabled ) + bool headRotationEnabled, + bool rendererConfigEnabled ) { uint32_t i; int32_t j; @@ -573,7 +587,7 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, numActiveOutputs = ( outConfig.ambisonics == IVAS_REND_AMBISONICS_NONE ? 0 : 1 ) + ( outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_NONE ? 0 : 1 ) + - ( outConfig.binaural == 0 ? 0 : 1 ); + ( outConfig.binauralFormat == IVAS_REND_BINAURAL_NONE ? 0 : 1 ); assert( numActiveOutputs == 1 && "Only one output must be selected" ); /* ========================== Store useful values ========================= */ @@ -619,7 +633,7 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, /* Save number of output channels */ st->numOutChannels = getNumChannelsAmbisonics( st->outConfig.ambisonics ); } - else if ( st->outConfig.binaural ) + else if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) { st->numOutChannels = 2; } @@ -661,7 +675,15 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, } /* Allocate temporary pan/enc buffer to avoid allocations during rendering */ - st->tmpGainBuffer = count_calloc( st->numOutChannels, sizeof( float ) ); + if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + st->tmpGainBuffer = count_calloc( getNumChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), sizeof( float ) ); + st->noLfePanBuffer = count_calloc( getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), sizeof( float ) ); + } + else + { + st->tmpGainBuffer = count_calloc( st->numOutChannels, sizeof( float ) ); + } /* Allocate temporary buffer for panning gains with lfe omitted */ if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) @@ -690,14 +712,21 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, for ( i = 0; i < st->inConfig.numAudioObjects; ++i ) { - st->objPanInfo[i].panGains = count_calloc( st->numOutChannels, sizeof( float ) ); + if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + st->objPanInfo[i].panGains = count_calloc( getNumChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), sizeof( float ) ); + } + else + { + st->objPanInfo[i].panGains = count_calloc( st->numOutChannels, sizeof( float ) ); + } } } /* Prepare MASA processing */ if ( st->inConfig.numMasaBuses != 0 ) { - st->decDummyMasaBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation ); + st->decDummyMasaBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation, st->rendererConfigEnabled ); /* TODO @ Nokia: initialize decoder dummy for MASA rendering depending on output config. Feel free to clean this up if some other structure works better. */ @@ -715,7 +744,7 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, return error; } } - else if ( st->outConfig.binaural ) + else if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) { if ( ( error = initDecoderDummyForMasaToBinaural( st->decDummyMasaBin, st->inConfig ) ) != IVAS_ERR_OK ) { @@ -725,38 +754,71 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, } /* Prepare binaural rendering if enabled */ - if ( st->outConfig.binaural ) + if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) { if ( headRotationEnabled ) { st->enableHeadRotation = 1; } + if ( rendererConfigEnabled ) + { + st->rendererConfigEnabled = 1; + } + + if ( st->inConfig.numAmbisonicsBuses != 0 ) { - st->decDummyAmbiBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation ); - if ( ( error = initDecoderDummyForAmbiToBinaural( st->decDummyAmbiBin, st->inConfig ) ) != IVAS_ERR_OK ) + st->decDummyAmbiBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation, st->rendererConfigEnabled ); + if ( ( error = initDecoderDummyForAmbiToBinaural( st->decDummyAmbiBin, st->inConfig, st->outConfig.binauralFormat ) ) != IVAS_ERR_OK ) { return error; } + + /* init ALLRAD for intermediate rendering to 7_1_4 for BINAURAL_ROOM */ + if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + if ( ( error = getHoaRenderMtx( st->outConfig, &st->ambi_dec_mtx, 3 ) ) != IVAS_ERR_OK ) + { + return error; + } + } } - if ( st->inConfig.numMultiChannelBuses != 0 ) + if ( st->inConfig.numAudioObjects != 0 ) { - st->decDummyMcBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation ); - if ( ( error = initDecoderDummyForMcToBinaural( st->decDummyMcBin, st->inConfig, st->enableHeadRotation ) ) != IVAS_ERR_OK ) + st->decDummyObjBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation, st->rendererConfigEnabled ); + if ( ( error = initDecoderDummyForObjToBinaural( st->decDummyObjBin, st->inConfig, st->outConfig.binauralFormat ) ) != IVAS_ERR_OK ) { return error; } + + /* init EFAP for intermediate rendering to 7_1_4 for BINAURAL_ROOM */ + if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + if ( ( error = efap_init_data( &st->efapRenderer, getSpeakerAzimuths( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), getSpeakerElevations( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + { + return error; + } + } } - if ( st->inConfig.numAudioObjects != 0 ) + if ( st->inConfig.numMultiChannelBuses != 0 ) { - st->decDummyObjBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation ); - if ( ( error = initDecoderDummyForObjToBinaural( st->decDummyObjBin, st->inConfig ) ) != IVAS_ERR_OK ) + st->decDummyMcBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation, st->rendererConfigEnabled ); + if ( ( error = initDecoderDummyForMcToBinaural( st->decDummyMcBin, st->inConfig, st->outConfig.binauralFormat, st->enableHeadRotation ) ) != IVAS_ERR_OK ) { return error; } + + /* init EFAP for BINAURAL_ROOM via 7_1_4 */ + if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + if ( ( error = efap_init_data( &st->efapRenderer, getSpeakerAzimuths( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), getSpeakerElevations( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + { + return error; + } + } } } @@ -888,7 +950,7 @@ void IVAS_REND_Render( renderMasaToChannels( st, inAudio, outAudio ); } } /* Render target format: binaural */ - else if ( st->outConfig.binaural ) + else if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) { /* Rendering to binaural using dummy IVAS decoders */ assert( inAudio.config.bufferSize == st->sampleRate / FRAMES_PER_SEC && "Using IVAS components requires frame size of 20 ms" ); @@ -1079,6 +1141,10 @@ void IVAS_REND_Close( IVAS_REND_HANDLE *st ) if ( hIvasRend->decDummyMcBin != NULL ) { + if ( hIvasRend->decDummyMcBin->hEFAPdata != NULL ) + { + efap_free_data( &hIvasRend->decDummyMcBin->hEFAPdata ); + } ivas_crend_close( hIvasRend->decDummyMcBin ); ivas_td_binaural_close( &hIvasRend->decDummyMcBin->hBinRendererTd ); ivas_render_config_close( &hIvasRend->decDummyMcBin->hRenderConfig ); @@ -1096,6 +1162,7 @@ void IVAS_REND_Close( IVAS_REND_HANDLE *st ) if ( hIvasRend->decDummyObjBin != NULL ) { + ivas_crend_close( hIvasRend->decDummyObjBin ); ivas_td_binaural_close( &hIvasRend->decDummyObjBin->hBinRendererTd ); ivas_render_config_close( &hIvasRend->decDummyObjBin->hRenderConfig ); count_free( hIvasRend->decDummyObjBin->hDecoderConfig ); @@ -1146,7 +1213,7 @@ ivas_error IVAS_REND_GetDelay( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - if ( st->outConfig.binaural ) + if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) { if ( ( st->decDummyAmbiBin != NULL && st->decDummyAmbiBin->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) || ( st->decDummyObjBin != NULL && st->decDummyObjBin->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) || @@ -1154,18 +1221,28 @@ ivas_error IVAS_REND_GetDelay( { *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) IVAS_FB_DEC_DELAY_NS + 0.5f ) ); } - else if ( ( st->decDummyAmbiBin != NULL && st->decDummyAmbiBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) ) + else if ( ( st->decDummyAmbiBin != NULL ) && + ( ( st->decDummyAmbiBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) || + ( st->decDummyAmbiBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) ) { *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyAmbiBin->binaural_latency_ns + 0.5f ) ); } - else if ( st->decDummyObjBin != NULL && st->decDummyObjBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) + else if ( ( st->decDummyObjBin != NULL ) && + ( ( st->decDummyObjBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) || + ( st->decDummyObjBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) ) { *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyObjBin->binaural_latency_ns + 0.5f ) ); } - else if ( st->decDummyMcBin != NULL && st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) + else if ( ( st->decDummyMcBin != NULL ) && + ( ( st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) || + ( st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) ) { *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyMcBin->binaural_latency_ns + 0.5f ) ); } + else + { + *nSamples = 0; + } } else { @@ -1712,11 +1789,27 @@ static void renderAmbiToBinaural( applyGainToBuffer( inAudio, inAmbiChannelIdx, gain_lin ); copyBufferTo2dArray( inAudio, inAmbiChannelIdx, numInChannels, tmpBuffer ); - if ( st->enableHeadRotation ) + if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) { - for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) + /* Convert SBA to 7_1_4 for BINAURAL_ROOM */ + ivas_sba_mtx_mult( tmpBuffer, inAudio.config.bufferSize, getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ), st->decDummyAmbiBin->hIntSetup, st->ambi_dec_mtx ); + + if ( st->enableHeadRotation ) + { + for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) + { + rotateFrame_sd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, st->sampleRate, subFrameLength, st->decDummyAmbiBin->hIntSetup, st->decDummyAmbiBin->hEFAPdata, i ); + } + } + } + else /* IVAS_REND_BINAURAL_DIRECT */ + { + if ( st->enableHeadRotation ) { - rotateFrame_shd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, st->sampleRate, subFrameLength, st->decDummyAmbiBin->hTransSetup, i ); + for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) + { + rotateFrame_shd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, st->sampleRate, subFrameLength, st->decDummyAmbiBin->hTransSetup, i ); + } } } @@ -1725,7 +1818,6 @@ static void renderAmbiToBinaural( copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); } - #ifdef WMOPS wmops_sub_end(); #endif @@ -1776,8 +1868,8 @@ static void renderChannelsToBinaural( } /* TD object renderer initialised only for 7_1 and 5_1 with headrotation or custom layout input */ - if ( ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) || - ( st->decDummyMcBin->hBinRendererTd != NULL && st->enableHeadRotation ) ) + if ( ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_ROOM ) && ( ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) || + ( st->decDummyMcBin->hBinRendererTd != NULL && st->enableHeadRotation ) ) ) { ObjRenderIVASFrame( st->decDummyMcBin, tmpBuffer, inAudio.config.bufferSize ); /* TODO tmu : needs delay compensation otherwise LFE is added out of alignment */ @@ -1797,7 +1889,8 @@ static void renderChannelsToBinaural( { lfeChIdx = LFE_CHANNEL; } - // TODO tmu verify + + /* TODO tmu : needs verification */ mvr2r( tmpBuffer[lfeChIdx], tmpLfeBuffer, L_FRAME48k ); ivas_filter_process( &st->lfeLpFilter, tmpLfeBuffer, L_FRAME48k ); set_zero( tmpBuffer[lfeChIdx], L_FRAME48k ); @@ -1821,16 +1914,24 @@ static void renderObjectsToBinaural( { int16_t objIdx; int16_t tmpAzi, tmpEle; + int16_t chInIdx, smplIdx; float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + float tmpBuffer2[MAX_OUTPUT_CHANNELS][L_FRAME48k]; float gain_lin; + float fadeIn, fadeOut; + float *swapPtr; uint32_t inIsmIdx; #ifdef WMOPS wmops_sub_start( "renderObjectsToBinaural" ); #endif + for ( chInIdx = 0; chInIdx < MAX_OUTPUT_CHANNELS; ++chInIdx ) + { + set_zero( tmpBuffer[chInIdx], L_FRAME48k ); + set_zero( tmpBuffer2[chInIdx], L_FRAME48k ); + } assert( st->inConfig.numAudioObjects == metadataBuffer.numObjects && "Metadata provided for a different number of objects than found in input" ); - if ( st->enableHeadRotation ) { copyHeadRotToDecDummy( st->headRotationData, st->decDummyObjBin ); @@ -1840,7 +1941,6 @@ static void renderObjectsToBinaural( for ( objIdx = 0; objIdx < metadataBuffer.numObjects; ++objIdx ) { /* Apply head rotation directly to object positions */ - /* TODO tmu 20ms only right now... */ if ( st->enableHeadRotation ) { /* save original positions */ @@ -1861,20 +1961,56 @@ static void renderObjectsToBinaural( st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth = (float) tmpAzi; st->decDummyObjBin->hIsmMetaData[objIdx]->elevation = (float) tmpEle; } + else if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth = metadataBuffer.positions[objIdx].azimuth; + st->decDummyObjBin->hIsmMetaData[objIdx]->elevation = metadataBuffer.positions[objIdx].elevation; + } inIsmIdx = st->inConfig.audioObjects[objIdx].inputChannelIndex; + gain_lin = dBToLin( st->inConfig.audioObjects[objIdx].gain_dB ); + applyGainToBuffer( inAudio, objIdx, gain_lin ); + /* Copy input audio to tmp buffer for processing */ copyBufferTo2dArray( inAudio, inIsmIdx, 1, &tmpBuffer[objIdx] ); } - /* TODO tmu : enable per-object gains */ - gain_lin = dBToLin( st->inConfig.audioObjects[0].gain_dB ); - applyGainToBuffer( inAudio, 0, gain_lin ); + if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + for ( objIdx = 0; objIdx < metadataBuffer.numObjects; ++objIdx ) + { + /* Convert ISM to 7_1_4 for BINAURAL_ROOM */ + getSpeakerGains( st, st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth, st->decDummyObjBin->hIsmMetaData[objIdx]->elevation, st->tmpGainBuffer ); - ObjRenderIVASFrame( st->decDummyObjBin, tmpBuffer, inAudio.config.bufferSize ); - copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); + for ( chInIdx = 0; chInIdx < getNumChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ); ++chInIdx ) + { + if ( fabsf( st->tmpGainBuffer[chInIdx] ) > 0.0f || fabsf( st->objPanInfo[objIdx].panGains[chInIdx] ) > 0.0f ) + { + for ( smplIdx = 0; smplIdx < L_FRAME48k; ++smplIdx ) + { + fadeIn = st->crossfade[smplIdx]; + fadeOut = 1.0f - fadeIn; + tmpBuffer2[chInIdx][smplIdx] += ( fadeIn * st->tmpGainBuffer[chInIdx] + fadeOut * st->objPanInfo[objIdx].panGains[chInIdx] ) * tmpBuffer[objIdx][smplIdx]; + } + } + } + /* move old gains to st->objPanInfo */ + swapPtr = st->objPanInfo[objIdx].panGains; + st->objPanInfo[objIdx].panGains = st->tmpGainBuffer; + st->tmpGainBuffer = swapPtr; + } + + /* render from buffer with 7_1_4 format */ + ivas_crend_process( st->decDummyObjBin, tmpBuffer2 ); + copy2dArrayToBuffer( tmpBuffer2, &outAudio, 0, st->numOutChannels ); + } + else /* IVAS_REND_BINAURAL_DIRECT */ + { + ObjRenderIVASFrame( st->decDummyObjBin, tmpBuffer, inAudio.config.bufferSize ); + copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); + } #ifdef WMOPS wmops_sub_end(); #endif @@ -2136,12 +2272,13 @@ static void prepareLfeHandling( /* Pan LFE to L and R with -3dB gain */ if ( st->numOutChannels > 1 ) { + /* TODO tmu : not guaranteed to be L and R for custom layouts without LFE */ st->lfePanGains[0] = sqrtf( 0.5f ); st->lfePanGains[1] = sqrtf( 0.5f ); } else { - /* Put LFE in center channel, do not add 10dB gain to avoid clipping */ + /* Put LFE in center channel */ st->lfePanGains[0] = 1.f; } } @@ -2167,7 +2304,7 @@ static void prepareMcPanGains( IVAS_REND_HANDLE st ) wmops_sub_start( "prepareMcPanGains" ); #endif /* No gains required for binaural output */ - if ( ( st->outConfig.binaural ) && + if ( ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) && ( st->outConfig.ambisonics == IVAS_REND_AMBISONICS_NONE || st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_NONE ) ) { st->speakerPanGains = NULL; @@ -2511,7 +2648,15 @@ static void getSpeakerGains( const IVAS_REND_HANDLE st, /* EFAP returns an array of gains only for non-LFE speakers */ efap_determine_gains( st->efapRenderer, st->noLfePanBuffer, azi, ele, EFAP_MODE_EFAP ); - speakerLayout = st->outConfig.speakerLayout; + if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + speakerLayout = IVAS_REND_SPEAKER_LAYOUT_7_1_4; + } + else + { + speakerLayout = st->outConfig.speakerLayout; + } + if ( speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) { uint32_t lfeIdx; @@ -2732,37 +2877,38 @@ static ivas_error getHoaRenderMtx( wmops_sub_start( "getHoaRenderMtx" ); #endif - switch ( outConfig.speakerLayout ) + if ( outConfig.binauralFormat == IVAS_REND_BINAURAL_NONE ) { - case IVAS_REND_SPEAKER_LAYOUT_MONO: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_MONO ); - hOutSetup.ls_azimuth = ls_azimuth_CICP1; - hOutSetup.ls_elevation = ls_elevation_CICP1; - break; - case IVAS_REND_SPEAKER_LAYOUT_STEREO: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_STEREO ); - break; - case IVAS_REND_SPEAKER_LAYOUT_5_1: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_5_1 ); - break; - case IVAS_REND_SPEAKER_LAYOUT_7_1: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_7_1 ); - break; - case IVAS_REND_SPEAKER_LAYOUT_5_1_2: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_5_1_2 ); - break; - case IVAS_REND_SPEAKER_LAYOUT_5_1_4: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_5_1_4 ); - break; - case IVAS_REND_SPEAKER_LAYOUT_7_1_4: - ivas_output_init( &hOutSetup, AUDIO_CONFIG_7_1_4 ); - break; - case IVAS_REND_SPEAKER_LAYOUT_CUSTOM: - ivas_ls_custom_setup( &hOutSetup, outConfig.outSetupCustom ); - break; - default: - assert( !"Invalid speaker config" ); - return IVAS_ERR_WRONG_PARAMS; + switch ( outConfig.speakerLayout ) + { + case IVAS_REND_SPEAKER_LAYOUT_MONO: + hOutSetup.ls_azimuth = ls_azimuth_CICP1; + hOutSetup.ls_elevation = ls_elevation_CICP1; + case IVAS_REND_SPEAKER_LAYOUT_STEREO: + case IVAS_REND_SPEAKER_LAYOUT_5_1: + case IVAS_REND_SPEAKER_LAYOUT_7_1: + case IVAS_REND_SPEAKER_LAYOUT_5_1_2: + case IVAS_REND_SPEAKER_LAYOUT_5_1_4: + case IVAS_REND_SPEAKER_LAYOUT_7_1_4: + ivas_output_init( &hOutSetup, mapRendLayoutToAudioConfig( outConfig.speakerLayout ) ); + break; + case IVAS_REND_SPEAKER_LAYOUT_CUSTOM: + ivas_ls_custom_setup( &hOutSetup, outConfig.outSetupCustom ); + break; + default: + assert( !"Invalid speaker config" ); + return IVAS_ERR_WRONG_PARAMS; + } + } + /* intermediate rendering to 7_1_4 for BINAURAL_ROOM */ + else if ( outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + { + ivas_output_init( &hOutSetup, AUDIO_CONFIG_7_1_4 ); + } + else + { + assert( !"Invalid configuration" ); + return IVAS_ERR_WRONG_PARAMS; } if ( ( error = ivas_sba_get_hoa_dec_matrix( hOutSetup, decMtx, (int16_t) ambiOrder ) ) != IVAS_ERR_OK ) @@ -2898,3 +3044,19 @@ static AUDIO_CONFIG mapRendLayoutToAudioConfig( IVAS_REND_SpeakerLayout speakerL return AUDIO_CONFIG_INVALID; } } + +static AUDIO_CONFIG mapRendAmbisonicsToAudioConfig( IVAS_REND_Ambisonics ambisonics ) +{ + switch ( ambisonics ) + { + case IVAS_REND_AMBISONICS_FOA: + return AUDIO_CONFIG_FOA; + case IVAS_REND_AMBISONICS_SOA: + return AUDIO_CONFIG_HOA2; + case IVAS_REND_AMBISONICS_TOA: + return AUDIO_CONFIG_HOA3; + case IVAS_REND_AMBISONICS_NONE: + default: + return AUDIO_CONFIG_INVALID; + } +} diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 5b8f42f2da..6c5ae79fa4 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -41,9 +41,9 @@ #include "common_api_types.h" #include "ivas_error.h" -#define RENDERER_MAX_ISM_INPUTS 4 -#define RENDERER_MAX_MC_INPUTS 1 -#define RENDERER_MAX_SBA_INPUTS 1 +#define RENDERER_MAX_ISM_INPUTS 4 +#define RENDERER_MAX_MC_INPUTS 1 +#define RENDERER_MAX_SBA_INPUTS 1 #define RENDERER_MAX_MASA_INPUTS 1 #define RENDERER_HEAD_POSITIONS_PER_FRAME 4 @@ -70,6 +70,13 @@ typedef enum IVAS_REND_SpeakerLayout IVAS_REND_SPEAKER_LAYOUT_7_1_4 = 19 } IVAS_REND_SpeakerLayout; /* Numerical value corresponds to CICP index */ +typedef enum IVAS_REND_BinauralFormat +{ + IVAS_REND_BINAURAL_NONE = -1, + IVAS_REND_BINAURAL_DIRECT = 0, + IVAS_REND_BINAURAL_ROOM = 2 +} IVAS_REND_BinauralFormat; + typedef enum IVAS_REND_MasaTc { IVAS_REND_MASA_TC_NONE = -1, @@ -145,15 +152,15 @@ typedef struct IVAS_REND_InputConfig uint16_t numAmbisonicsBuses; IVAS_LSSETUP_CUSTOM_HANDLE inSetupCustom; IVAS_REND_MasaBus masaBus; /* Support one MASA input for now. Multiple inputs will be easier to implement after API rework. */ - uint16_t numMasaBuses; /* Keep for framework consistency for now. Again - this will not be necessary after API rework */ + uint16_t numMasaBuses; /* Keep for framework consistency for now. Again - this will not be necessary after API rework */ } IVAS_REND_InputConfig; typedef struct IVAS_REND_OutputConfig { IVAS_REND_SpeakerLayout speakerLayout; IVAS_REND_Ambisonics ambisonics; + IVAS_REND_BinauralFormat binauralFormat; IVAS_LSSETUP_CUSTOM_HANDLE outSetupCustom; - uint8_t binaural; /* flag */ } IVAS_REND_OutputConfig; typedef struct IVAS_REND *IVAS_REND_HANDLE; @@ -176,7 +183,8 @@ ivas_error IVAS_REND_Configure( const IVAS_REND_InputConfig inConfig, /* i : Input configuration */ const IVAS_REND_OutputConfig outConfig, /* i : Output configuration */ uint32_t sampleRate, /* i : Processing sampling rate */ - bool headRotationEnabled /* i : enable head rotation for binaural output, ignored for other output formats */ + bool headRotationEnabled, /* i : enable head rotation for binaural output, ignored for other output formats */ + bool rendererConfigEnabled /* i : flag indicating if a renderer configuration file was supplied */ ); void IVAS_REND_SetHeadRotation( diff --git a/scripts/tests/constants.py b/scripts/tests/constants.py index 8345dc6f4b..7893bedd61 100644 --- a/scripts/tests/constants.py +++ b/scripts/tests/constants.py @@ -178,10 +178,7 @@ INPUT_FORMATS_BINAURAL.extend( # "MASA2", ] ) -OUTPUT_FORMATS_BINAURAL = [ - "BINAURAL", - # "BINAURAL_ROOM" # TODO -] +OUTPUT_FORMATS_BINAURAL = ["BINAURAL", "BINAURAL_ROOM"] HR_TRAJECTORIES_TO_TEST = [ # "const000", # "full_circle_in_15s", diff --git a/scripts/tests/data/masa_scene.txt b/scripts/tests/data/masa_scene.txt index 46baa475c1..b304b168d2 100644 --- a/scripts/tests/data/masa_scene.txt +++ b/scripts/tests/data/masa_scene.txt @@ -1,4 +1,4 @@ -stv_IVASMASA_2dir2TC.wav +stv_IVASMASA_2dir2TC.pcm 1 MASA 1 diff --git a/scripts/tests/data/stv_IVASMASA_2dir2TC.wav b/scripts/tests/data/stv_IVASMASA_2dir2TC.wav deleted file mode 100644 index e159c4f9ae..0000000000 --- a/scripts/tests/data/stv_IVASMASA_2dir2TC.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60a713ed1b97cf94b16849806951ef83d8f41c8ee455b267ec0a292c695cbbc1 -size 576044 diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index 8159832aa1..7acd2a9028 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -233,7 +233,7 @@ def test_ism(in_fmt, out_fmt): in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], ) - # ISM to Ambisonics has differences due to optimizations in ivas_dirac_dec_get_response() + # ISM to Ambisonics has differences due to optimizations in ivas_dirac_dec_get_response() # additionally, positions parsed from the metadata files in C seem to be different # due to (float) atof() reading being subsequently cast to int16_t check_BE(ref, ref_fs, cut, cut_fs, snr_min=38) @@ -271,6 +271,7 @@ def test_metadata(in_fmt, out_fmt): check_BE(ref, ref_fs, cut, cut_fs, snr_min=11) + @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST_NO_BE) def test_metadata_masa(in_fmt, out_fmt): @@ -290,7 +291,7 @@ def test_ambisonics_binaural_static(in_fmt, out_fmt): cut, cut_fs = run_renderer(in_fmt, out_fmt) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=89) + check_BE(ref, ref_fs, cut, cut_fs, snr_min=0.1) @pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer") @@ -316,7 +317,7 @@ def test_multichannel_binaural_static(in_fmt, out_fmt): cut, cut_fs = run_renderer(in_fmt, out_fmt) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=11) + check_BE(ref, ref_fs, cut, cut_fs, snr_min=4.5) # Binaural rendering (head rotation) @@ -336,12 +337,20 @@ def test_ambisonics_binaural_headrotation(in_fmt, out_fmt, trj_file): trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), ) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=42) + check_BE(ref, ref_fs, cut, cut_fs, snr_min=0.04) -@pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer") @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize( + "out_fmt", + [ + pytest.param( + "BINAURAL", + marks=pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer"), + ), + "BINAURAL_ROOM", + ], +) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) def test_ism_binaural_headrotation(in_fmt, out_fmt, trj_file): try: @@ -363,11 +372,20 @@ def test_ism_binaural_headrotation(in_fmt, out_fmt, trj_file): in_meta_files=in_meta_files, ) - check_BE(ref, ref_fs, cut, cut_fs) + check_BE(ref, ref_fs, cut, cut_fs, snr_min=1.3) @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize( + "out_fmt", + [ + pytest.param( + "BINAURAL", + marks=pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer"), + ), + "BINAURAL_ROOM", + ], +) @pytest.mark.parametrize( "in_fmt", [ @@ -397,4 +415,4 @@ def test_multichannel_binaural_headrotation(in_fmt, out_fmt, trj_file): trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), ) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=4.5) + check_BE(ref, ref_fs, cut, cut_fs, snr_min=2.3) -- GitLab From 8ee76816f2b8e11391250ce7e1497c08692b5d47 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 18 Aug 2022 14:02:32 +0200 Subject: [PATCH 022/479] Fix sanitizer issue due to unset ivas_format --- lib_rend/lib_rend.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 18f556a56f..f64f707230 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -339,7 +339,7 @@ static DecoderDummy *allocDecoderDummy( int32_t sampleRate, int16_t numOutChanne decDummy->hDecoderConfig = count_malloc( sizeof( DECODER_CONFIG ) ); decDummy->hDecoderConfig->output_Fs = sampleRate; decDummy->hDecoderConfig->nchan_out = numOutChannels; - decDummy->hDecoderConfig->Opt_Headrotation = enableHeadRotation; + decDummy->hDecoderConfig->Opt_Headrotation = 0; decDummy->hBinRenderer = NULL; decDummy->hEFAPdata = NULL; @@ -425,6 +425,7 @@ static ivas_error initDecoderDummyForAmbiToBinaural( DecoderDummy *decDummyAmbiB error = IVAS_ERR_OK; + decDummyAmbiBin->ivas_format = SBA_FORMAT; decDummyAmbiBin->renderer_type = binauralFormat == IVAS_REND_BINAURAL_ROOM ? RENDERER_BINAURAL_MIXER_CONV_ROOM : RENDERER_BINAURAL_MIXER_CONV; decDummyAmbiBin->intern_config = decDummyAmbiBin->transport_config = mapRendAmbisonicsToAudioConfig( inConfig.ambisonicsBuses[0].ambisonicsConfig ); -- GitLab From f3c759b086004cbe6c83c71e731f8b9dee0b1fe7 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 18 Aug 2022 18:25:18 +0200 Subject: [PATCH 023/479] CMake: make copying executables to source dir optional --- CMakeLists.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e333918c91..806f1f3e2a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,7 +167,9 @@ endif() add_executable(IVAS_rend apps/renderer.c) target_link_libraries(IVAS_rend lib_rend lib_util) -# Copy executables to root directory after build -add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") -add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") -add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") \ No newline at end of file +if(COPY_EXECUTABLES_TO_ROOT) + # Optionally copy executables to root directory after build + add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") + add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") + add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") +endif() \ No newline at end of file -- GitLab From 40e572cea6329aea2e7ae1b56442580892ca8981 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Fri, 19 Aug 2022 10:33:29 +0200 Subject: [PATCH 024/479] Fix ext renderer tests that build with CMake --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d6cb4c70b7..8b650c203b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -243,7 +243,7 @@ external-renderer-cmake-asan-pytest: stage: test script: - python3 ci/disable_ram_counting.py - - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan + - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_TO_ROOT=true - cmake --build cmake-build -- -j - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto @@ -256,7 +256,7 @@ external-renderer-cmake-msan-pytest: stage: test script: - python3 ci/disable_ram_counting.py - - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan + - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_TO_ROOT=true - cmake --build cmake-build -- -j - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto -- GitLab From fa408b98071c68974b1202c7003d1da8f7b13bab Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Tue, 23 Aug 2022 13:46:28 +0200 Subject: [PATCH 025/479] move max_bwidth_api from encoder_config_struct to IVAS_ENC-struct, rename to newBandwidthApi --- lib_enc/ivas_stat_enc.h | 3 --- lib_enc/lib_enc.c | 7 +++++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 151efe2c09..331e1a75e7 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -989,9 +989,6 @@ typedef struct encoder_config_structure int32_t input_Fs; /* input signal sampling frequency in Hz */ int16_t nchan_inp; /* number of input audio channels */ int16_t max_bwidth; /* maximum encoded bandwidth */ -#ifdef FIX_I74_BW_LIMITATION_ALT - int16_t max_bwidth_api; /* maximum encoded bandwidth, as set on API level */ -#endif IVAS_FORMAT ivas_format; /* IVAS format */ int16_t element_mode_init; /* element mode used at initialization */ diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 0af18e48d4..2890ae5c73 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -64,6 +64,9 @@ struct IVAS_ENC int16_t rf_fec_offset_loc; bool ismMetadataProvided[MAX_NUM_OBJECTS]; bool maxBandwidthUser; /* Was a specific max bandwith selected by the user? */ +#ifdef FIX_I74_BW_LIMITATION_ALT + IVAS_ENC_BANDWIDTH newBandwidthApi; /* maximum encoded bandwidth, as set on API level */ +#endif }; /*---------------------------------------------------------------------* @@ -1853,7 +1856,7 @@ static ivas_error sanitizeBandwidth( hEncoderConfig = hIvasEnc->st_ivas->hEncoderConfig; - max_bwidth_tmp = hEncoderConfig->max_bwidth_api; + max_bwidth_tmp = hIvasEnc->newBandwidthApi; /* Prevent st_ivas->max_bwidth from being higher than Fs/2 */ if ( hEncoderConfig->input_Fs == 8000 && max_bwidth_tmp > NB ) @@ -1956,7 +1959,7 @@ static ivas_error setBandwidth( } #ifdef FIX_I74_BW_LIMITATION_ALT - hEncoderConfig->max_bwidth_api = newBandwidth; + hIvasEnc->newBandwidthApi = newBandwidth; #endif /* NB coding not supported in IVAS. Switching to WB. */ -- GitLab From cfd5b3e545e2275a5c2c43402868e5dfed71bc68 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 24 Aug 2022 13:56:24 +0200 Subject: [PATCH 026/479] update igf noise seed correctly in MDCT-St PLC --- lib_dec/tonalMDCTconcealment.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index ac666c9ff9..77ab9c6336 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -513,7 +513,11 @@ void TonalMDCTConceal_InsertNoise( wmops_sub_start( "InsertNoise" ); g = 1.0f - crossfadeGain; +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed && concealment_noise != NULL ) +#else if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) +#endif { rnd = 1977; } @@ -1108,6 +1112,8 @@ void TonalMdctConceal_create_concealment_noise( *rnd_c = save_rnd_c; } + st->seed_tcx_plc = *rnd; + wmops_sub_end(); return; -- GitLab From 2a3945985e35bd6381ac21ed1b86b99b646ad4d0 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 24 Aug 2022 14:24:12 +0200 Subject: [PATCH 027/479] do not apply igf gain damping for bfi frames --- lib_com/ivas_prot.h | 5 +++++ lib_dec/dec_tcx.c | 4 ++++ lib_dec/igf_dec.c | 23 +++++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 753976cb88..395af77dac 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2086,7 +2086,12 @@ void IGFDecApplyStereo( const int16_t igfGridIdx, /* i : in case of CELP->TCX switching, use 1.25 framelength */ const int16_t *coreMsMask, const int16_t restrict_hopsize, +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ + const int16_t element_mode /* i : decoder element mode */ +#else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ +#endif ); void IGFEncStereoEncoder( diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index ddd35a0274..c29638cbe7 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -2005,7 +2005,11 @@ void decoder_tcx_IGF_stereo( igfGridIdx = ( sts[0]->last_core == ACELP_CORE || ( left_rect && bfi ) ) ? IGF_GRID_LB_TRAN : IGF_GRID_LB_NORM; } +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, sts[0]->element_mode ); +#else IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi ); +#endif } return; diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index 55e526d665..9344bfd9e4 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -679,7 +679,12 @@ static void IGF_appl( float *pSpectralData, /* i/o: Q31 | MDCT spectrum */ const float *igf_spec, /* i : Q31 | prepared IGF spectrum */ float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ + const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ +#else int16_t *flag_sparse /* o : Q0 | temp flattening indicator */ +#endif ) { H_IGF_GRID hGrid; @@ -855,7 +860,11 @@ static void IGF_appl( for ( sfb = start_sfb; sfb < stop_sfb; sfb++ ) { +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( bfi_apply_damping && hPrivateData->frameLossCounter > 0 ) +#else if ( hPrivateData->frameLossCounter > 0 ) +#endif { gain[sfb] = min( gain[sfb], 12.f ); @@ -1212,7 +1221,11 @@ void IGFDecApplyMono( /* apply IGF in three steps: */ IGF_prep( hPrivateData, igfGridIdx, hIGFDec->infoTCXNoise, igf_spec, hPrivateData->pSpecFlat, element_mode ); IGF_calc( hPrivateData, igfGridIdx, spectrum, igf_spec ); +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse, element_mode != IVAS_CPE_MDCT ); +#else IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse ); +#endif } /* reset TCX noise indicator vector */ @@ -1238,7 +1251,12 @@ void IGFDecApplyStereo( const int16_t igfGridIdx, /* i : in case of CELP->TCX switching, use 1.25 framelength */ const int16_t *coreMsMask, const int16_t restrict_hopsize, +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ + const int16_t element_mode +#else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ +#endif ) { IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR; @@ -1335,8 +1353,13 @@ void IGFDecApplyStereo( IGF_calc( hPrivateDataL, igfGridIdx, spectrumL, igf_specL ); IGF_calc( hPrivateDataR, igfGridIdx, spectrumR, igf_specR ); +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, element_mode != IVAS_CPE_MDCT ); + IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, element_mode != IVAS_CPE_MDCT ); +#else IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse ); IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse ); +#endif } /* reset TCX noise indicator vector */ -- GitLab From e22382ca104a64a6e5721c43f1e7d062b8d84157 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 25 Aug 2022 09:13:46 +0200 Subject: [PATCH 028/479] remove cng gain scaling which did not make sense --- lib_dec/er_dec_tcx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 13e3a45461..5907326997 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -463,7 +463,7 @@ void con_tcx( #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( A_cng != NULL ) { - gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_cng, L_frame / 4, st->preemph_fac, 1 ) / 4.f; + gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_cng, L_frame / 4, st->preemph_fac, 1 ); } else { -- GitLab From b5eed8b0f52b7b86f31e7233e0096153567fe23b Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 25 Aug 2022 14:44:19 +0200 Subject: [PATCH 029/479] use slower fade for scalefactors --- lib_dec/ivas_mdct_core_dec.c | 12 +++++++----- lib_dec/stat_dec.h | 1 + lib_dec/tonalMDCTconcealment.c | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index e9a86304bb..96548bb02c 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -1116,14 +1116,15 @@ void ivas_mdct_core_tns_ns( #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( !isMCT && st->hTcxDec->cummulative_damping_tcx != 1.f ) { - float *scf_last; - float *scf_bg; - float fade_in; - float fade_out; + float *scf_last, *scf_bg; + float fade_in, fade_out; scf_last = &st->hTonalMDCTConc->lastBlockData.scaleFactors[0]; scf_bg = &st->hTonalMDCTConc->scaleFactorsBackground[0]; - fade_out = st->hTcxDec->cummulative_damping_tcx; + + st->hTonalMDCTConc->scf_fadeout *= 0.95f; + + fade_out = st->hTonalMDCTConc->scf_fadeout; fade_in = 1 - fade_out; for ( int16_t i = 0; i < st->hTonalMDCTConc->nScaleFactors; i++ ) @@ -1133,6 +1134,7 @@ void ivas_mdct_core_tns_ns( } else { + st->hTonalMDCTConc->scf_fadeout = 1.0f; mvr2r( st->hTonalMDCTConc->lastBlockData.scaleFactors, &sns_int_scf[0], st->hTonalMDCTConc->nScaleFactors ); } #else diff --git a/lib_dec/stat_dec.h b/lib_dec/stat_dec.h index 4762b1b166..0afc05562b 100644 --- a/lib_dec/stat_dec.h +++ b/lib_dec/stat_dec.h @@ -206,6 +206,7 @@ typedef struct #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float scaleFactorsBackground[FDNS_NPTS]; + float scf_fadeout; PsychoacousticParameters *psychParams; /* could be stored only once, since the same for all channels (always at 16Khz fs) */ PsychoacousticParameters psychParamsTCX20; diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 77ab9c6336..58ae215506 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -95,6 +95,7 @@ ivas_error TonalMDCTConceal_Init( #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE set_zero( hTonalMDCTConc->scaleFactorsBackground, FDNS_NPTS ); + hTonalMDCTConc->scf_fadeout = 1.0f; PsychoacousticParameters_Init( INT_FS_16k, L_FRAME16k, 64, 1, 1, &hTonalMDCTConc->psychParamsTCX20 ); PsychoacousticParameters_Init( INT_FS_16k, L_FRAME16k / 2, 64, 0, 1, &hTonalMDCTConc->psychParamsTCX10 ); hTonalMDCTConc->psychParams = NULL; -- GitLab From 1af1f798122affb025069e546f6a3485a982a5d9 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 25 Aug 2022 16:52:59 +0200 Subject: [PATCH 030/479] [renderer] - enabled support for BINAURAL_ROOM output - fix a bug in ISM binaural rendering - position data was not copied for TD Object Renderer without headtracking - fix differing crossfades for ambisonics to binaural with and without headrotation (changes BE for rotateFrame_sd() / rotateFrame_shd() calls) - add initial version of delay compensation for LFE in binaural rendering - fix support for raw PCM input - CLI improvements, make some options required and edit the printout - temporary fix for TD Renderer init bug [pyaudio3dtools] - various bugfixes - update ISM binaural rendering for pyaudio3dtools to use nearest filter on sphere [tests] - don't xfail tests on a function level to avoid masking run errors - enable per-testcase SNR thresholds and xfail tests accordingly instead of allowing them to pass --- .gitlab-ci-custom.yml | 2 +- .gitlab-ci.yml | 6 +- apps/renderer.c | 7 +- lib_com/options.h | 5 +- lib_dec/ivas_sba_dec.c | 1 - lib_rend/ivas_objectRenderer.c | 2 +- lib_rend/ivas_rom_rend.c | 25 -- lib_rend/ivas_rotation.c | 42 +++- lib_rend/lib_rend.c | 140 ++++++++--- scripts/pyaudio3dtools/audiofile.py | 19 +- scripts/pyaudio3dtools/binauralrenderer.py | 32 ++- scripts/pyaudio3dtools/spatialaudioconvert.py | 16 +- scripts/pyaudio3dtools/spatialaudioformat.py | 7 +- scripts/tests/test_renderer.py | 236 ++++++++++++------ 14 files changed, 352 insertions(+), 188 deletions(-) diff --git a/.gitlab-ci-custom.yml b/.gitlab-ci-custom.yml index 86c1f487e0..d39886c69c 100644 --- a/.gitlab-ci-custom.yml +++ b/.gitlab-ci-custom.yml @@ -1,4 +1,4 @@ include: - project: $CUSTOM_CI_PROJECT - ref: $CUSTOM_CI_REF + ref: external-renderer-ci file: $CUSTOM_CI_FILE diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8b650c203b..6e279c76b0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -232,7 +232,7 @@ external-renderer-make-pytest: stage: test script: - make -j IVAS_rend - - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto + - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto # test external renderer executable with cmake + asan external-renderer-cmake-asan-pytest: @@ -245,7 +245,7 @@ external-renderer-cmake-asan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_TO_ROOT=true - cmake --build cmake-build -- -j - - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto + - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto # test external renderer executable with cmake + msan external-renderer-cmake-msan-pytest: @@ -258,7 +258,7 @@ external-renderer-cmake-msan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_TO_ROOT=true - cmake --build cmake-build -- -j - - python3 -m pytest scripts/tests/test_renderer.py --capture=no --tb=no -n auto + - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto # compare bit exactness between target and source branch self-test-on-merge-request: diff --git a/apps/renderer.c b/apps/renderer.c index 4ffa2ed427..5787cb143e 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -1259,13 +1259,15 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) .id = CmdLnOptionId_inputFile, .match = "input_file", .matchShort = "i", + .isRequired = 1, .description = "Path to the input file", }, { .id = CmdLnOptionId_inputFormat, .match = "input_format", .matchShort = "if", - .description = "Format of input file", + .isRequired = 1, + .description = "Format of input file\nIn case of a metadata format this should be followed by a list of metadata file paths or NULL", }, { .id = CmdLnOptionId_outputFile, @@ -1278,6 +1280,7 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) .id = CmdLnOptionId_outputFormat, .match = "output_format", .matchShort = "of", + .isRequired = 1, .description = "Output format to render.\nAlternatively, can be a custom loudspeaker layout file", }, { @@ -1308,7 +1311,7 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) { .id = CmdLnOptionId_noDiegeticPan, .match = "no_diegetic_pan", - .matchShort = "ndl", + .matchShort = "ndp", .description = "Panning mono no dietic sound to stereo -1<= pan <= 1\nleft or l or 1->left, right or r or -1->right, center or c or 0 ->middle", }, { diff --git a/lib_com/options.h b/lib_com/options.h index 65f3ec1990..8bb532f8fb 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,10 +149,11 @@ #define LBR_SBA_CORE_CODING_TUNING /* Contribution "3 Core Coder Tuning for low bitrate SBA with 2 TCs" */ -#define FIX_WRONG_NBANDS_IN_ITD_ESTIMATION /* Issue 85: fix incorrect setting of nbands in calc_mean_E_ratio() if bwidth is limited on commandline*/ - #define EXT_RENDERER /* FhG: external renderer library and standalone application */ #define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ + +#define FIX_WRONG_NBANDS_IN_ITD_ESTIMATION /* Issue 85: fix incorrect setting of nbands in calc_mean_E_ratio() if bwidth is limited on commandline*/ + #define FIX_I87 /* fix for issue 86: incorrect Ambisonics order set for head rotation in SBA */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 640e5cc85f..b79c598801 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -608,7 +608,6 @@ void ivas_sba_upmixer_renderer( } } - wmops_sub_end(); return; diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index 8dac9b71bf..153c6d7f2d 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -142,7 +142,7 @@ ivas_error ivas_td_binaural_open( ls_azimuth = ls_azimuth_CICP19; ls_elevation = ls_elevation_CICP19; break; -#ifdef EXT_RENDERER /* TODO tmu : possibly could be adopted for the above cases too ? */ +#ifdef EXT_RENDERER case AUDIO_CONFIG_LS_CUSTOM: ls_azimuth = st_ivas->hTransSetup.ls_azimuth; ls_elevation = st_ivas->hTransSetup.ls_elevation; diff --git a/lib_rend/ivas_rom_rend.c b/lib_rend/ivas_rom_rend.c index 0f680f929d..dd252a9969 100644 --- a/lib_rend/ivas_rom_rend.c +++ b/lib_rend/ivas_rom_rend.c @@ -436,7 +436,6 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp6[] = {43, 0.849999964f} }; -#ifdef FIX_I54_LS_CONVERSION const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp12[] = { /* First row indicates the number of non-zero elements */ @@ -451,7 +450,6 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp12[] = {48, 0.849999964f}, {57, 0.849999964f} }; -#endif const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp6[] = { @@ -493,7 +491,6 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp14[] = /* First row indicates the number of non-zero elements */ {10, 0.0f}, /* Index of non-zero element, value of non-zero element*/ -#ifdef FIX_I54_LS_CONVERSION {0, 1.000000000f}, {9, 1.000000000f}, {18, 1.000000000f}, @@ -504,18 +501,6 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp14[] = {63, 1.000000000f}, {68, 0.849999964f}, {77, 0.849999964f}, -#else - {0, 1.000000000f}, - {11, 1.000000000f}, - {22, 1.000000000f}, - {33, 1.000000000f}, - {44, 1.000000000f}, - {48, 0.849999964f}, - {55, 1.000000000f}, - {59, 0.849999964f}, - {66, 1.000000000f}, - {77, 1.000000000f}, -#endif }; const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp6[] = @@ -633,7 +618,6 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp16[] = {75, 1.0f} }; -#ifdef FIX_I54_LS_CONVERSION const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp19[] = { /* First row indicates the number of non-zero elements */ @@ -648,7 +632,6 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp19[] = {76, 1.0f}, {89, 1.0f} }; -#endif const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp19[] = { @@ -708,11 +691,7 @@ const LS_CONVERSION_MAPPING ls_conversion_mapping[LS_SETUP_CONVERSION_NUM_MAPPIN {AUDIO_CONFIG_7_1, AUDIO_CONFIG_5_1, ls_conversion_cicp12_cicp6}, {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_5_1, ls_conversion_cicp14_cicp6}, -#ifdef FIX_I54_LS_CONVERSION {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_7_1, ls_conversion_cicp14_cicp12}, -#else - {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_7_1, ls_conversion_cicp14_cicp6}, -#endif {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_5_1, ls_conversion_cicp16_cicp6}, {AUDIO_CONFIG_5_1_4, AUDIO_CONFIG_7_1, ls_conversion_cicp16_cicp12}, @@ -740,11 +719,7 @@ const LS_CONVERSION_MAPPING ls_conversion_mapping[LS_SETUP_CONVERSION_NUM_MAPPIN {AUDIO_CONFIG_7_1, AUDIO_CONFIG_5_1_2, ls_conversion_cicp12_cicp14}, {AUDIO_CONFIG_7_1, AUDIO_CONFIG_5_1_4, ls_conversion_cicp12_cicp16}, -#ifdef FIX_I54_LS_CONVERSION {AUDIO_CONFIG_7_1, AUDIO_CONFIG_7_1_4, ls_conversion_cicp12_cicp19}, -#else - {AUDIO_CONFIG_7_1, AUDIO_CONFIG_7_1_4, NULL}, -#endif {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_5_1_4, NULL}, {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_7_1_4, ls_conversion_cicp14_cicp19}, diff --git a/lib_rend/ivas_rotation.c b/lib_rend/ivas_rotation.c index d141025ab6..6cf8c65b5d 100644 --- a/lib_rend/ivas_rotation.c +++ b/lib_rend/ivas_rotation.c @@ -310,25 +310,33 @@ void rotateFrame_shd( { int16_t i, l, n, m; int16_t m1, m2; +#ifdef EXT_RENDERER + int16_t shd_rot_max_order; +#else int16_t shd_rot_max_order, fade_len_smp; +#endif float tmp; float tmpRot[2 * HEADROT_ORDER + 1]; float SHrotmat_prev[HEADROT_SHMAT_DIM][HEADROT_SHMAT_DIM]; float SHrotmat[HEADROT_SHMAT_DIM][HEADROT_SHMAT_DIM]; +#ifdef EXT_RENDERER + float cross_fade[L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES]; +#else float cross_fade[IVAS_FB_1MS_48K_SAMP]; +#endif shd_rot_max_order = hTransSetup.ambisonics_order; - /* 1ms linear crossfade */ - fade_len_smp = NS2SA( output_fs, 1000000 ); #ifdef EXT_RENDERER - tmp = 1.0f / (fade_len_smp - 1); - for ( i = 0; i < fade_len_smp; i++ ) + tmp = 1.0f / ( subframe_len - 1 ); + for ( i = 0; i < subframe_len; i++ ) { cross_fade[i] = i * tmp; } #else + /* 1ms linear crossfade */ + fade_len_smp = NS2SA( output_fs, 1000000 ); tmp = 1.0f / fade_len_smp; for ( i = 0; i < fade_len_smp; i++ ) { @@ -368,14 +376,18 @@ void rotateFrame_shd( for ( m = m1; m < m2; m++ ) { /* crossfade with previous rotation gains */ +#ifndef EXT_RENDERER if ( i < fade_len_smp ) { +#endif tmpRot[n - m1] += cross_fade[i] * SHrotmat[n][m] * output[m][subframe_idx * subframe_len + i] + ( 1 - cross_fade[i] ) * SHrotmat_prev[n][m] * output[m][subframe_idx * subframe_len + i]; +#ifndef EXT_RENDERER } else { tmpRot[n - m1] += SHrotmat[n][m] * output[m][subframe_idx * subframe_len + i]; } +#endif } } /* write back the result */ @@ -434,29 +446,35 @@ void rotateFrame_sd( int16_t nchan, index_lfe; int16_t ch_in, ch_in_woLFE, ch_out, ch_out_woLFE; int16_t azimuth, elevation; +#ifndef EXT_RENDERER int16_t fade_len_smp; +#endif float tmp; float tmp_gains[MAX_CICP_CHANNELS - 1]; float gains[MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; float gains_prev[MAX_CICP_CHANNELS][MAX_CICP_CHANNELS]; float output_tmp[MAX_CICP_CHANNELS][L_FRAME48k]; +#ifdef EXT_RENDERER + float cross_fade[L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES]; +#else float cross_fade[IVAS_FB_1MS_48K_SAMP]; +#endif wmops_sub_start( "rotateFrame_sd" ); nchan = hTransSetup.nchan_out_woLFE + hTransSetup.num_lfe; index_lfe = hTransSetup.index_lfe[0]; - /* 1ms linear crossfade */ - fade_len_smp = NS2SA( output_Fs, 1000000 ); #ifdef EXT_RENDERER - tmp = 1.0f / (fade_len_smp - 1); - for ( i = 0; i < fade_len_smp; i++ ) + tmp = 1.0f / ( subframe_len - 1 ); + for ( i = 0; i < subframe_len; i++ ) { cross_fade[i] = i * tmp; } #else + /* 1ms linear crossfade */ + fade_len_smp = NS2SA( output_Fs, 1000000 ); tmp = 1.0f / fade_len_smp; for ( i = 0; i < fade_len_smp; i++ ) { @@ -539,15 +557,21 @@ void rotateFrame_sd( { for ( ch_in = 0; ch_in < nchan; ch_in++ ) { - /* crossfade with previous rotation gains */ +/* crossfade with previous rotation gains */ +#ifdef EXT_RENDERER + for ( i = subframe_idx * subframe_len, j = 0; j < subframe_len; i++, j++ ) +#else for ( i = subframe_idx * subframe_len, j = 0; j < fade_len_smp; i++, j++ ) +#endif { output_tmp[ch_out][i] += ( cross_fade[j] ) * gains[ch_in][ch_out] * output[ch_in][i] + ( 1 - cross_fade[j] ) * gains_prev[ch_in][ch_out] * output[ch_in][i]; } +#ifndef EXT_RENDERER for ( ; i < ( subframe_idx + 1 ) * subframe_len; i++ ) { output_tmp[ch_out][i] += gains[ch_in][ch_out] * output[ch_in][i]; } +#endif } } diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index f64f707230..52acf50aab 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -76,12 +76,13 @@ struct IVAS_REND /* =============================== */ /* Helpers */ - int16_t numOutChannels; /* Total number of output channels */ - int16_t numInChannels; /* Total number of input channels */ - int16_t numInChannelsObj; /* Total number of input channels of object inputs */ - int16_t numInChannelsAmbi; /* Total number of input channels of ambisonics inputs */ - int16_t numInChannelsMc; /* Total number of input channels of multichannel inputs */ - int16_t numInChannelsMasa; /* Total number of input channels of MASA inputs */ + int16_t numOutChannels; /* Total number of output channels */ + int16_t numInChannels; /* Total number of input channels */ + int16_t numInChannelsObj; /* Total number of input channels of object inputs */ + int16_t numInChannelsAmbi; /* Total number of input channels of ambisonics inputs */ + int16_t numInChannelsMc; /* Total number of input channels of multichannel inputs */ + int16_t numInChannelsMasa; /* Total number of input channels of MASA inputs */ + float delayOffsetBuffer[MAX_OUTPUT_CHANNELS][NS2SA( 48000, IVAS_FB_DEC_DELAY_NS )]; /* Buffer for delay compensation */ /* For each channel of MC inputs mcPassThrough contains the corresponding * output channel index if a passthrough is possible, otherwise contains -1 */ @@ -90,7 +91,8 @@ struct IVAS_REND /* =========== LFE Handling =========== */ /* Do not drop LFE when rendering to a layout that does not have * an LFE channel - render LFE into other channels*/ - int8_t neverDropLfe; /* flag */ + int8_t neverDropLfe; /* flag */ + int8_t forceBinLfeLpf; /* flag : force low-pass filtering for LFE channel in binaural rendering */ float *lfePanGains; ivas_filters_process_state_t lfeLpFilter; @@ -321,12 +323,18 @@ IVAS_REND_HANDLE IVAS_REND_Open() st->decDummyMasaBin = NULL; st->enableHeadRotation = 0; st->rendererConfigEnabled = 0; + st->forceBinLfeLpf = 0; for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) { st->headRotationData[i] = quaternionInit(); } + for ( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) + { + set_zero( st->delayOffsetBuffer[i], L_FRAME48k ); + } + return st; } @@ -446,6 +454,24 @@ static ivas_error initDecoderDummyForAmbiToBinaural( DecoderDummy *decDummyAmbiB return error; } +/* Fixes initialization issues in TD renderer. Should get fixed properly soon. + See issue: https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec/-/issues/81 */ +static void tmpFixBuggyTdBinRendInit(BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd) +{ + int32_t i, j; + + for (i=0; i < hBinRendererTd->NumOfSrcs; ++i) + { + for (j=0; j < SPAT_BIN_MAX_INPUT_CHANNELS; ++j) + { + hBinRendererTd->Sources[i]->SrcRend_p->SfxSpatBin_p[j].LeftFilter_p = NULL; + hBinRendererTd->Sources[i]->SrcRend_p->SfxSpatBin_p[j].LeftFilterIncr_p = NULL; + hBinRendererTd->Sources[i]->SrcRend_p->SfxSpatBin_p[j].RightFilter_p = NULL; + hBinRendererTd->Sources[i]->SrcRend_p->SfxSpatBin_p[j].RightFilterIncr_p = NULL; + } + } +} + static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin, IVAS_REND_InputConfig inConfig, IVAS_REND_BinauralFormat binauralFormat ) { ivas_error error; @@ -489,6 +515,7 @@ static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin { return error; } + tmpFixBuggyTdBinRendInit(decDummyObjBin->hBinRendererTd); } return error; @@ -681,7 +708,7 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, st->tmpGainBuffer = count_calloc( getNumChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), sizeof( float ) ); st->noLfePanBuffer = count_calloc( getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), sizeof( float ) ); } - else + else if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_NONE ) { st->tmpGainBuffer = count_calloc( st->numOutChannels, sizeof( float ) ); } @@ -717,7 +744,7 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, { st->objPanInfo[i].panGains = count_calloc( getNumChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), sizeof( float ) ); } - else + else if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_NONE ) { st->objPanInfo[i].panGains = count_calloc( st->numOutChannels, sizeof( float ) ); } @@ -1238,7 +1265,16 @@ ivas_error IVAS_REND_GetDelay( ( ( st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) || ( st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) ) { - *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyMcBin->binaural_latency_ns + 0.5f ) ); + if ( st->forceBinLfeLpf ) + { + *nSamples = max( + NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyMcBin->binaural_latency_ns + 0.5f ) ), + NS2SA( st->sampleRate, ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L ) ); + } + else + { + *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyMcBin->binaural_latency_ns + 0.5f ) ); + } } else { @@ -1830,21 +1866,22 @@ static void renderChannelsToBinaural( IVAS_REND_AudioBuffer outAudio ) { int16_t i; - int16_t subFrameLength; - int16_t lfeLpDelay; - uint32_t mcIdx; - uint32_t inMcChannelIdx; - uint32_t lfeChIdx; - float tmpLfeBuffer[L_FRAME48k]; - float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - float gain_lin; + int16_t lfeChIdx; + int16_t frameLength, subFrameLength; + int16_t binauralDelaySmp, lfeDelaySmp; + int16_t offset; + uint32_t mcIdx, inMcChannelIdx; int32_t numInChannels; + float gain_lin; + float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + float tmpLfeBuffer[L_FRAME48k + NS2SA( 48000, ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L )]; #ifdef WMOPS wmops_sub_start( "renderChannelsToBinaural" ); #endif - subFrameLength = (int16_t) ( st->sampleRate / FRAMES_PER_SEC / RENDERER_HEAD_POSITIONS_PER_FRAME ); + frameLength = (int16_t) ( st->sampleRate / FRAMES_PER_SEC ); + subFrameLength = (int16_t) ( frameLength / RENDERER_HEAD_POSITIONS_PER_FRAME ); if ( st->enableHeadRotation ) { copyHeadRotToDecDummy( st->headRotationData, st->decDummyMcBin ); @@ -1880,24 +1917,52 @@ static void renderChannelsToBinaural( ivas_crend_process( st->decDummyMcBin, tmpBuffer ); } - /* Low-pass filter the LFE channel with delay compensation */ - lfeLpDelay = (int16_t) ( ivas_lfe_lpf_delay[1] * (float) st->sampleRate ); - if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) - { - lfeChIdx = st->inConfig.inSetupCustom->lfe_idx[0]; - } - else + /* TODO tmu : this is always disabled */ + if ( st->forceBinLfeLpf ) { - lfeChIdx = LFE_CHANNEL; + if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + { + lfeChIdx = st->inConfig.inSetupCustom->lfe_idx[0]; + } + else + { + lfeChIdx = LFE_CHANNEL; + } + set_zero( tmpLfeBuffer, frameLength ); + mvr2r( tmpBuffer[lfeChIdx], tmpLfeBuffer, frameLength ); + + /* Low pass filtering */ + ivas_filter_process( &st->lfeLpFilter, tmpLfeBuffer, frameLength ); + + /* Delay adjustment */ + lfeDelaySmp = NS2SA( st->sampleRate, ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L ); + binauralDelaySmp = NS2SA( st->sampleRate, st->decDummyMcBin->binaural_latency_ns ); + + if ( lfeDelaySmp > binauralDelaySmp ) + { + /* delay binauralised signal */ + offset = lfeDelaySmp - binauralDelaySmp; + for ( i = 0; i < numInChannels; ++i ) + { + if ( i == lfeChIdx ) + { + continue; + } + delay_signal( tmpBuffer[i], frameLength, st->delayOffsetBuffer[i], offset ); + } + } + else if ( lfeDelaySmp < binauralDelaySmp ) + { + /* delay LFE signal */ + offset = binauralDelaySmp - lfeDelaySmp; + delay_signal( tmpLfeBuffer, frameLength, st->delayOffsetBuffer[lfeChIdx], offset ); + } + + mvr2r( tmpLfeBuffer, tmpBuffer[lfeChIdx], frameLength ); } - /* TODO tmu : needs verification */ - mvr2r( tmpBuffer[lfeChIdx], tmpLfeBuffer, L_FRAME48k ); - ivas_filter_process( &st->lfeLpFilter, tmpLfeBuffer, L_FRAME48k ); - set_zero( tmpBuffer[lfeChIdx], L_FRAME48k ); - mvr2r( &tmpLfeBuffer[lfeLpDelay], &tmpBuffer[lfeChIdx][0], L_FRAME48k - lfeLpDelay ); + ivas_binaural_add_LFE( st->decDummyMcBin, frameLength, tmpBuffer ); - ivas_binaural_add_LFE( st->decDummyMcBin, L_FRAME48k, tmpBuffer ); copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); } @@ -1962,7 +2027,7 @@ static void renderObjectsToBinaural( st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth = (float) tmpAzi; st->decDummyObjBin->hIsmMetaData[objIdx]->elevation = (float) tmpEle; } - else if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + else { st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth = metadataBuffer.positions[objIdx].azimuth; st->decDummyObjBin->hIsmMetaData[objIdx]->elevation = metadataBuffer.positions[objIdx].elevation; @@ -1982,13 +2047,14 @@ static void renderObjectsToBinaural( for ( objIdx = 0; objIdx < metadataBuffer.numObjects; ++objIdx ) { /* Convert ISM to 7_1_4 for BINAURAL_ROOM */ + /* TODO tmu : subframe rotation can be enabled here */ getSpeakerGains( st, st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth, st->decDummyObjBin->hIsmMetaData[objIdx]->elevation, st->tmpGainBuffer ); for ( chInIdx = 0; chInIdx < getNumChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ); ++chInIdx ) { if ( fabsf( st->tmpGainBuffer[chInIdx] ) > 0.0f || fabsf( st->objPanInfo[objIdx].panGains[chInIdx] ) > 0.0f ) { - for ( smplIdx = 0; smplIdx < L_FRAME48k; ++smplIdx ) + for ( smplIdx = 0; smplIdx < inAudio.config.bufferSize; ++smplIdx ) { fadeIn = st->crossfade[smplIdx]; fadeOut = 1.0f - fadeIn; @@ -2273,7 +2339,7 @@ static void prepareLfeHandling( /* Pan LFE to L and R with -3dB gain */ if ( st->numOutChannels > 1 ) { - /* TODO tmu : not guaranteed to be L and R for custom layouts without LFE */ + /* TODO tmu : not guaranteed to be L and R for custom layouts without LFE! */ st->lfePanGains[0] = sqrtf( 0.5f ); st->lfePanGains[1] = sqrtf( 0.5f ); } @@ -2885,6 +2951,8 @@ static ivas_error getHoaRenderMtx( case IVAS_REND_SPEAKER_LAYOUT_MONO: hOutSetup.ls_azimuth = ls_azimuth_CICP1; hOutSetup.ls_elevation = ls_elevation_CICP1; + ivas_output_init( &hOutSetup, mapRendLayoutToAudioConfig( outConfig.speakerLayout ) ); + break; case IVAS_REND_SPEAKER_LAYOUT_STEREO: case IVAS_REND_SPEAKER_LAYOUT_5_1: case IVAS_REND_SPEAKER_LAYOUT_7_1: diff --git a/scripts/pyaudio3dtools/audiofile.py b/scripts/pyaudio3dtools/audiofile.py index 32d8460e1d..b03b472ae9 100644 --- a/scripts/pyaudio3dtools/audiofile.py +++ b/scripts/pyaudio3dtools/audiofile.py @@ -35,6 +35,7 @@ import platform import shutil import struct import subprocess as sp +import warnings from importlib import import_module from tempfile import TemporaryDirectory from typing import Optional, Tuple @@ -73,6 +74,18 @@ def readfile( if file_extension == ".wav": fs, data = wav.read(filename) + if data.dtype == np.int32: + data = np.interp( + data, + (np.iinfo(np.int32).min, np.iinfo(np.int32).max), + (np.iinfo(np.int16).min, np.iinfo(np.int16).max), + ) + elif data.dtype == np.float32: + data = np.interp( + data, + (-1, 1), + (np.iinfo(np.int16).min, np.iinfo(np.int16).max), + ) x = np.array(data, dtype=outdtype) file_len = x.shape[0] if x.ndim == 1: @@ -107,9 +120,11 @@ def writefile(filename: str, x: np.ndarray, fs: int = 48000) -> None: """ _, file_extension = os.path.splitext(os.path.basename(filename)) - clipped_samples = np.sum(np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max)) + clipped_samples = np.sum( + np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max) + ) if clipped_samples > 0: - print(" Warning: %i samples clipped"%clipped_samples) + warnings.warn(f" Warning: {clipped_samples} samples clipped") x = np.clip(x, np.iinfo(np.int16).min, np.iinfo(np.int16).max) if file_extension == ".wav": diff --git a/scripts/pyaudio3dtools/binauralrenderer.py b/scripts/pyaudio3dtools/binauralrenderer.py index d34d59babe..23f476a5fd 100644 --- a/scripts/pyaudio3dtools/binauralrenderer.py +++ b/scripts/pyaudio3dtools/binauralrenderer.py @@ -304,8 +304,8 @@ def binaural_fftconv_framewise( [np.repeat(ele, N_frames // len(ele)), ele[: N_frames % len(ele)]] ) - iGs = np.zeros([N_frames], dtype=int) - mGs = np.zeros([N_frames], dtype=int) + iGs = np.zeros([N_frames + 1], dtype=int) + mGs = np.zeros([N_frames + 1], dtype=int) # store trajectory as a sequence of indices of source positions # on the HRTF database in a compressed format such that, for @@ -427,8 +427,9 @@ def binaural_fftconv_framewise( np.squeeze(x[i1:i2]), G_n_m ) - y[i1:i2p, i_ear] += ( - fade_out * y0[0, i1:i2p, i_ear] + fade_in * y0[1, i1:i2p, i_ear] + y[i1:i2p, i_ear] = ( + np.squeeze(fade_out) * y0[0, i1:i2p, i_ear] + + np.squeeze(fade_in) * y0[1, i1:i2p, i_ear] ) t1 = timeit.default_timer() @@ -466,7 +467,8 @@ def binaural_fftconv_framewise( y0[1, j1:j2p, i_ear] += sig.oaconvolve(np.squeeze(x[j1:j2]), G1) y[i1:i2, i_ear] = ( - fade_out * y0[0, i1:i2, i_ear] + fade_in * y0[1, i1:i2, i_ear] + np.squeeze(fade_out) * y0[0, i1:i2, i_ear] + + np.squeeze(fade_in) * y0[1, i1:i2, i_ear] ) t1 = timeit.default_timer() @@ -492,7 +494,6 @@ def binaural_render_LFE( fs: int = 48000, lfe_index: list = [3], LFE_gain: float = 10 ** (5.5 / 20), - hrir_latency_smp: float = 0, ) -> np.ndarray: lfe = x[:, lfe_index].copy() @@ -511,8 +512,8 @@ def binaural_render_LFE( filter_delay = int(3.5 * fs / 1000) # delay adjustment - lfe = np.roll(lfe, filter_delay, axis=0) - lfe[:filter_delay, :] = 0 + lfe = np.roll(lfe, -filter_delay, axis=0) + lfe[-filter_delay:, :] = 0 # apply gain lfe *= LFE_gain @@ -583,7 +584,6 @@ def render_custom_ls_binaural( def render_ism_binaural( x: np.ndarray, fs: int, - in_format: spatialaudioformat.Format, IR: np.ndarray, SourcePosition: np.ndarray, trajectory: np.ndarray, @@ -606,8 +606,7 @@ def render_ism_binaural( # extract positions only according to the audio duration pos_data = pos_data[:N_frames, :] - if trajectory is not None: - azi, ele = rotateISM(pos_data[:, 0], pos_data[:, 1], trajectory=trajectory) + azi, ele = rotateISM(pos_data[:, 0], pos_data[:, 1], trajectory=trajectory) y = np.zeros([sig_len, 2]) y += binaural_fftconv_framewise( @@ -706,7 +705,7 @@ def binaural_rendering( # prepare LFE signal to be added to output if include_LFE and in_format.isloudspeaker: - lfe = binaural_render_LFE(x, 48000, in_format.lfe_index, LFE_gain, latency_smp) + lfe = binaural_render_LFE(x, 48000, in_format.lfe_index, LFE_gain) # get binauralized signal based on format if in_format.name.startswith("CUSTOM_LS"): @@ -717,7 +716,6 @@ def binaural_rendering( y = render_ism_binaural( x, fs, - in_format, IR, SourcePosition, trajectory, @@ -732,14 +730,14 @@ def binaural_rendering( f"{in_format.name} -> {out_format.name}: format conversion not implemented" ) - # add LFE signal to output - if include_LFE and in_format.isloudspeaker: - y += lfe - # HRTF delay compensation y = np.roll(y, -latency_smp, axis=0) y[-latency_smp:, :] = 0 + # add LFE signal to output + if include_LFE and in_format.isloudspeaker: + y += lfe + # resample back to original rate y = audioarray.resample(y, 48000, fs) diff --git a/scripts/pyaudio3dtools/spatialaudioconvert.py b/scripts/pyaudio3dtools/spatialaudioconvert.py index 3d4a4d95d5..28f9298924 100644 --- a/scripts/pyaudio3dtools/spatialaudioconvert.py +++ b/scripts/pyaudio3dtools/spatialaudioconvert.py @@ -129,11 +129,13 @@ def spatial_audio_convert( """ get spatial input and audio format configurations """ if in_format is None: - in_format = spatialaudioformat.Format.detect_format(in_nchans) - logger.info(f" Input spatial audio format detected: {in_format}") + if in_nchans is not None: + in_format = spatialaudioformat.Format.detect_format(in_nchans) + in_spfmt = spatialaudioformat.Format(in_format) + logger.info(f" Input spatial audio format detected: {in_format}") else: logger.info(f" Input spatial audio format: {in_format}") - in_spfmt = spatialaudioformat.Format(in_format) + in_spfmt = spatialaudioformat.Format(in_format) if out_format is None: out_format = in_format @@ -162,6 +164,10 @@ def spatial_audio_convert( in_sig, in_fs = audiofile.readfile(in_file, fs=in_fs, nchannels=in_nchans) elif input_ext == ".wav": in_sig, in_fs = audiofile.readfile(in_file) + if in_format is None: + in_format = spatialaudioformat.Format.detect_format(in_sig.shape[1]) + in_spfmt = spatialaudioformat.Format(in_format) + # Adjust number of channels if case of HOA, zeroed vert channels if planar if in_spfmt.ambi_order > 0: in_sig = audioarray.convert(in_sig, out_nchans=in_spfmt.nchannels) @@ -197,11 +203,9 @@ def spatial_audio_convert( metadata_obj = spatialmetadata.Metadata() metadata_obj.init_for_ism(in_file, in_fs, in_meta_files) - # TODO alternative paths for binaural rendering for now + # TODO decide on reference path for BINAURAL_ROOM if out_spfmt.name.startswith("BINAURAL_ROOM"): in_format = "7_1_4" - elif out_spfmt.name.startswith("BINAURAL"): - in_format = "HOA3" else: in_format = out_format in_spfmt = spatialaudioformat.Format(in_format) diff --git a/scripts/pyaudio3dtools/spatialaudioformat.py b/scripts/pyaudio3dtools/spatialaudioformat.py index 01721f4329..9125d80b64 100644 --- a/scripts/pyaudio3dtools/spatialaudioformat.py +++ b/scripts/pyaudio3dtools/spatialaudioformat.py @@ -452,10 +452,9 @@ class Format: def detect_format(nchannels: int) -> str: config_name = None - for config_name in _format_configs: - dictionary = _format_configs[config_name] - if dictionary["nchannels"] == nchannels: - config_name = dictionary["name"] + for k, v in _format_configs.items(): + if v["nchannels"] == nchannels: + config_name = v["name"] break if config_name is None: diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index 7acd2a9028..c66a4747d6 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -27,18 +27,23 @@ """ import subprocess as sp -import pyaudio3dtools -import pytest -import numpy as np from pathlib import PurePath from typing import Optional, Tuple +import numpy as np +import pyaudio3dtools +import pytest + from .compare_audio import compare_audio_arrays from .constants import * def check_BE( - ref: np.ndarray, ref_fs: int, cut: np.ndarray, cut_fs: int, snr_min: float = np.inf + test_info, + ref: np.ndarray, + ref_fs: int, + cut: np.ndarray, + cut_fs: int, ): if ref is None or np.array_equal(ref, np.zeros_like(ref)): @@ -52,10 +57,22 @@ def check_BE( if np.isnan(snr) or gain_b == 0: pytest.fail("Invalid comparison result, check your signals!") - if not np.allclose(ref, cut, rtol=0, atol=2) and snr < snr_min: - pytest.fail( - f"CuT not BE to REF! SNR : {snr:3.2f} dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" - ) + # try to get a minimum SNR from the config + if test_info.node.name in pass_snr: + snr_min = pass_snr.get(test_info.node.name) + else: + snr_min = np.inf + + # check max_diff as well, since compare_audio_arrays will try to adjust for small delay differences + if not np.allclose(ref, cut, rtol=0, atol=2) and max_diff > 2: + if snr >= snr_min: + pytest.xfail( + f"xfailed with minimum SNR {snr_min} vs {snr:3.2f}dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" + ) + else: + pytest.fail( + f"CuT not BE to REF! SNR : {snr:3.2f} dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" + ) def run_pyscripts( @@ -101,7 +118,6 @@ def run_pyscripts( return pyaudio3dtools.audiofile.readfile(out_file) -# TODO include sampling rate, ndl ? def run_renderer( in_fmt: str, out_fmt: str, @@ -154,33 +170,39 @@ def run_renderer( return pyaudio3dtools.audiofile.readfile(out_file) +# fixture returns test information, enabling per-testcase SNR +@pytest.fixture +def test_info(request): + return request + + # Ambisonics / loudspeaker based input formats @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) -def test_ambisonics(in_fmt, out_fmt): +def test_ambisonics(test_info, in_fmt, out_fmt): ref, ref_fs = run_pyscripts(in_fmt, out_fmt) cut, cut_fs = run_renderer(in_fmt, out_fmt) - check_BE(ref, ref_fs, cut, cut_fs) + check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) -def test_multichannel(in_fmt, out_fmt): +def test_multichannel(test_info, in_fmt, out_fmt): ref, ref_fs = run_pyscripts(in_fmt, out_fmt) cut, cut_fs = run_renderer(in_fmt, out_fmt) if out_fmt in ["MONO", "STEREO"]: - check_BE(ref, ref_fs, cut, cut_fs, snr_min=10) + check_BE(test_info, ref, ref_fs, cut, cut_fs) else: - check_BE(ref, ref_fs, cut, cut_fs) + check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) -def test_custom_ls_input(in_layout, out_fmt): +def test_custom_ls_input(test_info, in_layout, out_fmt): ref, ref_fs = run_pyscripts( CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt, @@ -188,12 +210,12 @@ def test_custom_ls_input(in_layout, out_fmt): cut, cut_fs = run_renderer(CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt) - check_BE(ref, ref_fs, cut, cut_fs) + check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) @pytest.mark.parametrize("in_fmt", OUTPUT_FORMATS) -def test_custom_ls_output(in_fmt, out_fmt): +def test_custom_ls_output(test_info, in_fmt, out_fmt): ref, ref_fs = run_pyscripts( in_fmt, CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), @@ -201,12 +223,12 @@ def test_custom_ls_output(in_fmt, out_fmt): cut, cut_fs = run_renderer(in_fmt, CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt")) - check_BE(ref, ref_fs, cut, cut_fs) + check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) @pytest.mark.parametrize("in_fmt", CUSTOM_LS_TO_TEST) -def test_custom_ls_input_output(in_fmt, out_fmt): +def test_custom_ls_input_output(test_info, in_fmt, out_fmt): ref, ref_fs = run_pyscripts( CUSTOM_LAYOUT_DIR.joinpath(f"{in_fmt}.txt"), CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), @@ -217,13 +239,13 @@ def test_custom_ls_input_output(in_fmt, out_fmt): CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), ) - check_BE(ref, ref_fs, cut, cut_fs) + check_BE(test_info, ref, ref_fs, cut, cut_fs) # Metadata / parametric input formats @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) -def test_ism(in_fmt, out_fmt): +def test_ism(test_info, in_fmt, out_fmt): ref, ref_fs = run_pyscripts( in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] ) @@ -233,15 +255,12 @@ def test_ism(in_fmt, out_fmt): in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], ) - # ISM to Ambisonics has differences due to optimizations in ivas_dirac_dec_get_response() - # additionally, positions parsed from the metadata files in C seem to be different - # due to (float) atof() reading being subsequently cast to int16_t - check_BE(ref, ref_fs, cut, cut_fs, snr_min=38) + check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MASA) -def test_masa(in_fmt, out_fmt): +def test_masa(test_info, in_fmt, out_fmt): # TODO: implement MASA in Python, compare BE # ref, ref_fs = run_pyscripts( # in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] @@ -253,12 +272,12 @@ def test_masa(in_fmt, out_fmt): in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], ) - # check_BE(ref, ref_fs, cut, cut_fs) + # check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST) -def test_metadata(in_fmt, out_fmt): +def test_metadata(test_info, in_fmt, out_fmt): ref, ref_fs = run_pyscripts( "META", out_fmt, metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt") ) @@ -269,12 +288,12 @@ def test_metadata(in_fmt, out_fmt): metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), ) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=11) + check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST_NO_BE) -def test_metadata_masa(in_fmt, out_fmt): +def test_metadata_masa(test_info, in_fmt, out_fmt): # TODO: unify with test_metadata once Python supports MASA cut, cut_fs = run_renderer( "META", @@ -286,18 +305,17 @@ def test_metadata_masa(in_fmt, out_fmt): # Binaural rendering (static) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) -def test_ambisonics_binaural_static(in_fmt, out_fmt): +def test_ambisonics_binaural_static(test_info, in_fmt, out_fmt): ref, ref_fs = run_pyscripts(in_fmt, out_fmt) cut, cut_fs = run_renderer(in_fmt, out_fmt) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=0.1) + check_BE(test_info, ref, ref_fs, cut, cut_fs) -@pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer") @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) -def test_ism_binaural_static(in_fmt, out_fmt): +def test_ism_binaural_static(test_info, in_fmt, out_fmt): try: in_meta_files = FORMAT_TO_METADATA_FILES[in_fmt] except: @@ -307,24 +325,24 @@ def test_ism_binaural_static(in_fmt, out_fmt): cut, cut_fs = run_renderer(in_fmt, out_fmt, in_meta_files=in_meta_files) - check_BE(ref, ref_fs, cut, cut_fs) + check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) -def test_multichannel_binaural_static(in_fmt, out_fmt): +def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): ref, ref_fs = run_pyscripts(in_fmt, out_fmt) cut, cut_fs = run_renderer(in_fmt, out_fmt) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=4.5) + check_BE(test_info, ref, ref_fs, cut, cut_fs) # Binaural rendering (head rotation) @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) -def test_ambisonics_binaural_headrotation(in_fmt, out_fmt, trj_file): +def test_ambisonics_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): ref, ref_fs = run_pyscripts( in_fmt, out_fmt, @@ -337,22 +355,13 @@ def test_ambisonics_binaural_headrotation(in_fmt, out_fmt, trj_file): trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), ) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=0.04) + check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) -@pytest.mark.parametrize( - "out_fmt", - [ - pytest.param( - "BINAURAL", - marks=pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer"), - ), - "BINAURAL_ROOM", - ], -) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) -def test_ism_binaural_headrotation(in_fmt, out_fmt, trj_file): +def test_ism_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): try: in_meta_files = FORMAT_TO_METADATA_FILES[in_fmt] except: @@ -372,37 +381,13 @@ def test_ism_binaural_headrotation(in_fmt, out_fmt, trj_file): in_meta_files=in_meta_files, ) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=1.3) + check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) -@pytest.mark.parametrize( - "out_fmt", - [ - pytest.param( - "BINAURAL", - marks=pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer"), - ), - "BINAURAL_ROOM", - ], -) -@pytest.mark.parametrize( - "in_fmt", - [ - pytest.param( - "5_1", - marks=pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer"), - ), - pytest.param( - "7_1", - marks=pytest.mark.xfail(reason="Python cannot be BE to TD Object Renderer"), - ), - "5_1_2", - "5_1_4", - "7_1_4", - ], -) -def test_multichannel_binaural_headrotation(in_fmt, out_fmt, trj_file): +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) +def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): ref, ref_fs = run_pyscripts( in_fmt, out_fmt, @@ -415,4 +400,97 @@ def test_multichannel_binaural_headrotation(in_fmt, out_fmt, trj_file): trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), ) - check_BE(ref, ref_fs, cut, cut_fs, snr_min=2.3) + check_BE(test_info, ref, ref_fs, cut, cut_fs) + + +# per-testcase passing SNR +pass_snr = { + "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0.6, + "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0.1, + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0.4, + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0.04, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0.4, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0.05, + "test_ambisonics_binaural_static[FOA-BINAURAL_ROOM]": 0.6, + "test_ambisonics_binaural_static[HOA2-BINAURAL_ROOM]": 0.5, + "test_ambisonics_binaural_static[HOA3-BINAURAL_ROOM]": 0.1, + "test_ism[ISM1-FOA]": 45, + "test_ism[ISM1-HOA2]": 41, + "test_ism[ISM1-HOA3]": 38, + "test_ism[ISM2-FOA]": 45, + "test_ism[ISM2-HOA2]": 41, + "test_ism[ISM2-HOA3]": 38, + "test_ism[ISM3-FOA]": 45, + "test_ism[ISM3-HOA2]": 41, + "test_ism[ISM3-HOA3]": 38, + "test_ism[ISM4-FOA]": 45, + "test_ism[ISM4-HOA2]": 41, + "test_ism[ISM4-HOA3]": 38, + "test_ism_binaural_headrotation[ISM1-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_ism_binaural_headrotation[ISM1-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-full_circle_in_15s-Euler]": 7, + "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, + "test_ism_binaural_headrotation[ISM2-BINAURAL-full_circle_in_15s-Euler]": 0.34, + "test_ism_binaural_headrotation[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-full_circle_in_15s-Euler]": 4, + "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, + "test_ism_binaural_headrotation[ISM3-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_ism_binaural_headrotation[ISM3-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-full_circle_in_15s-Euler]": 4, + "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, + "test_ism_binaural_headrotation[ISM4-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_ism_binaural_headrotation[ISM4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-full_circle_in_15s-Euler]": 4, + "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, + "test_ism_binaural_static[ISM1-BINAURAL]": 0.00, + "test_ism_binaural_static[ISM1-BINAURAL_ROOM]": 18, + "test_ism_binaural_static[ISM2-BINAURAL]": 0, + "test_ism_binaural_static[ISM2-BINAURAL_ROOM]": 19, + "test_ism_binaural_static[ISM3-BINAURAL]": 0, + "test_ism_binaural_static[ISM3-BINAURAL_ROOM]": 19, + "test_ism_binaural_static[ISM4-BINAURAL]": 0, + "test_ism_binaural_static[ISM4-BINAURAL_ROOM]": 19, + "test_metadata[mixed_scene-5_1_4]": 11, + "test_metadata[mixed_scene-MONO]": 13, + "test_metadata[mixed_scene-STEREO]": 12, + "test_multichannel[5_1-MONO]": 11, + "test_multichannel[5_1-STEREO]": 10, + "test_multichannel[5_1_2-MONO]": 13, + "test_multichannel[5_1_2-STEREO]": 12, + "test_multichannel[5_1_4-MONO]": 14, + "test_multichannel[5_1_4-STEREO]": 13, + "test_multichannel[7_1-MONO]": 13, + "test_multichannel[7_1-STEREO]": 12, + "test_multichannel[7_1_4-MONO]": 13, + "test_multichannel[7_1_4-STEREO]": 12, + "test_multichannel_binaural_headrotation[5_1-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[5_1-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-full_circle_in_15s-Euler]": 4, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 6, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-full_circle_in_15s-Euler]": 5, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 6, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, + "test_multichannel_binaural_headrotation[7_1-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[7_1-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-full_circle_in_15s-Euler]": 4, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 5, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, + "test_multichannel_binaural_static[5_1-BINAURAL]": 8, + "test_multichannel_binaural_static[5_1-BINAURAL_ROOM]": 1, + "test_multichannel_binaural_static[5_1_2-BINAURAL]": 9, + "test_multichannel_binaural_static[5_1_2-BINAURAL_ROOM]": 1, + "test_multichannel_binaural_static[5_1_4-BINAURAL]": 10, + "test_multichannel_binaural_static[5_1_4-BINAURAL_ROOM]": 2, + "test_multichannel_binaural_static[7_1-BINAURAL]": 7, + "test_multichannel_binaural_static[7_1-BINAURAL_ROOM]": 1, + "test_multichannel_binaural_static[7_1_4-BINAURAL]": 9, + "test_multichannel_binaural_static[7_1_4-BINAURAL_ROOM]": 1, +} -- GitLab From b560fbd92097e67afee61bbabce386782e082ef4 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 25 Aug 2022 17:35:33 +0200 Subject: [PATCH 031/479] fix compiler error for rotateFrame_() --- lib_com/ivas_prot.h | 4 ++++ lib_rend/ivas_crend.c | 8 ++++++++ lib_rend/ivas_rotation.c | 4 ++++ lib_rend/lib_rend.c | 6 +++--- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 3fc39a8011..cb94e2c1ac 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4516,7 +4516,9 @@ ivas_error ivas_headTrack_open( void rotateFrame_shd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated HOA3 signal buffer in TD */ +#ifndef EXT_RENDERER const int32_t output_fs, /* i : output sampling frequency */ +#endif const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ const int16_t subframe_idx /* i : subframe index */ @@ -4525,7 +4527,9 @@ void rotateFrame_shd( void rotateFrame_sd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated SD signal buffer in TD */ +#ifndef EXT_RENDERER const int32_t output_fs, /* i : output sampling frequency */ +#endif const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ const EFAP_HANDLE hEFAPdata, /* i : EFAP structure */ diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index 177e14ec81..45a9e121ca 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1073,12 +1073,20 @@ ivas_error ivas_crend_process( */ if ( intern_config == AUDIO_CONFIG_FOA || intern_config == AUDIO_CONFIG_HOA2 || intern_config == AUDIO_CONFIG_HOA3 ) { +#ifdef EXT_RENDERER + rotateFrame_shd( st_ivas->hHeadTrackData, output, subframe_len, st_ivas->hIntSetup, subframe_idx ); +#else rotateFrame_shd( st_ivas->hHeadTrackData, output, st_ivas->hDecoderConfig->output_Fs, subframe_len, st_ivas->hIntSetup, subframe_idx ); +#endif } /* Rotation in SD for MC -> BINAURAL_ROOM */ else if ( st_ivas->ivas_format != ISM_FORMAT && st_ivas->hIntSetup.is_loudspeaker_setup ) { +#ifdef EXT_RENDERER + rotateFrame_sd( st_ivas->hHeadTrackData, output, subframe_len, st_ivas->hIntSetup, st_ivas->hEFAPdata, subframe_idx ); +#else rotateFrame_sd( st_ivas->hHeadTrackData, output, st_ivas->hDecoderConfig->output_Fs, subframe_len, st_ivas->hIntSetup, st_ivas->hEFAPdata, subframe_idx ); +#endif } } diff --git a/lib_rend/ivas_rotation.c b/lib_rend/ivas_rotation.c index 6cf8c65b5d..49c937844c 100644 --- a/lib_rend/ivas_rotation.c +++ b/lib_rend/ivas_rotation.c @@ -302,7 +302,9 @@ void rotateAziEle_DirAC( void rotateFrame_shd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated HOA3 signal buffer in TD */ +#ifndef EXT_RENDERER const int32_t output_fs, /* i : output sampling frequency */ +#endif const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ const int16_t subframe_idx /* i : subframe index */ @@ -435,7 +437,9 @@ void rotateFrame_shd( void rotateFrame_sd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated SD signal buffer in TD */ +#ifndef EXT_RENDERER const int32_t output_Fs, /* i : output sampling frequency */ +#endif const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ const EFAP_HANDLE hEFAPdata, /* i : EFAP structure */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 52acf50aab..f8284c685a 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -1835,7 +1835,7 @@ static void renderAmbiToBinaural( { for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) { - rotateFrame_sd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, st->sampleRate, subFrameLength, st->decDummyAmbiBin->hIntSetup, st->decDummyAmbiBin->hEFAPdata, i ); + rotateFrame_sd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, subFrameLength, st->decDummyAmbiBin->hIntSetup, st->decDummyAmbiBin->hEFAPdata, i ); } } } @@ -1845,7 +1845,7 @@ static void renderAmbiToBinaural( { for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) { - rotateFrame_shd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, st->sampleRate, subFrameLength, st->decDummyAmbiBin->hTransSetup, i ); + rotateFrame_shd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, subFrameLength, st->decDummyAmbiBin->hTransSetup, i ); } } } @@ -1901,7 +1901,7 @@ static void renderChannelsToBinaural( { for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) { - rotateFrame_sd( st->decDummyMcBin->hHeadTrackData, tmpBuffer, st->sampleRate, subFrameLength, st->decDummyMcBin->hTransSetup, st->decDummyMcBin->hEFAPdata, i ); + rotateFrame_sd( st->decDummyMcBin->hHeadTrackData, tmpBuffer, subFrameLength, st->decDummyMcBin->hTransSetup, st->decDummyMcBin->hEFAPdata, i ); } } -- GitLab From d5ac7778a13ed8978f3c871affd77f6a81817fb3 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 26 Aug 2022 17:01:22 +0200 Subject: [PATCH 032/479] fix wrong noise shapes by avoiding double whitening --- lib_com/ivas_cnst.h | 5 +++ lib_com/ivas_prot.h | 6 ++++ lib_dec/fd_cng_dec.c | 57 ++++++++++++---------------------- lib_dec/ivas_core_dec.c | 15 +++++++++ lib_dec/tonalMDCTconcealment.c | 50 +++++++++++++++++++++++++++++ 5 files changed, 95 insertions(+), 38 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 054ed5e01e..408984f319 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -807,6 +807,11 @@ typedef enum { TCX10_IN_0_TCX20_IN_1, TCX20_IN_0_TCX10_IN_1, } TONALMDCTCONC_NOISE_GEN_MODE; + +typedef enum { + ON_FIRST_LOST_FRAME, + ON_FIRST_GOOD_FRAME, +} TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE; #endif diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 6e83860082..3ae4b1d07b 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5454,6 +5454,12 @@ void TonalMdctConceal_create_concealment_noise( const int16_t crossfade_gain, const TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode ); + +void TonalMdctConceal_whiten_noise_shape( + Decoder_State *st, + const int16_t L_frame, + const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE +); #endif float rand_triangular_signed( diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index 1fa2c0b740..6f27464c66 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -496,55 +496,36 @@ void ApplyFdCng( } } +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( concealWholeFrame == 1 ) && ( st->nbLostCmpt == 1 ) && sum_f( cngNoiseLevel + hFdCngCom->startBand, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) > 0.01f ) { -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0 ); #else - if ( st->element_mode == IVAS_CPE_MDCT && st->core != ACELP_CORE ) - { - float scf[SNS_NPTS]; - float scf_int[FDNS_NPTS]; - float whitenend_noise_shape[L_FRAME16k]; - int16_t inc, start_idx, stop_idx; - float *noiseLevelPtr; - - wmops_sub_start( "get scfs for bg" ); + if ( ( concealWholeFrame == 1 ) && ( st->nbLostCmpt == 1 ) ) + { + /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ - inc = ( st->core > TCX_20 ) ? 2 : 1; - start_idx = hFdCngCom->startBand / inc; - stop_idx = L_frame / inc; - noiseLevelPtr = cngNoiseLevel; + /* always set psychParameters ... */ + if ( st->hTonalMDCTConc != NULL ) + { + st->hTonalMDCTConc->psychParams = ( st->core == TCX_20_CORE ) ? &st->hTonalMDCTConc->psychParamsTCX20 : &st->hTonalMDCTConc->psychParamsTCX10; + } - set_zero( whitenend_noise_shape, start_idx ); - for ( j = start_idx; j < stop_idx; j++, noiseLevelPtr += inc ) - { - whitenend_noise_shape[j] = *noiseLevelPtr; - } - if ( st->core == TCX_20_CORE ) + /* ... but do actual computations only if sufficient energy in noise shape */ + if ( sum_f( cngNoiseLevel + hFdCngCom->startBand, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) > 0.01f ) + { + if ( st->element_mode == IVAS_CPE_MDCT && st->core != ACELP_CORE ) { - st->hTonalMDCTConc->psychParams = &st->hTonalMDCTConc->psychParamsTCX20; + TonalMdctConceal_whiten_noise_shape( st, L_frame, ON_FIRST_LOST_FRAME ); } - else + else if ( st->element_mode != IVAS_CPE_MDCT ) { - st->hTonalMDCTConc->psychParams = &st->hTonalMDCTConc->psychParamsTCX10; + lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0.f ); + a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); + mvr2r( lsp_cng, st->lspold_cng, M ); + lsp2lsf( lsp_cng, st->lsf_cng, M, sr_core ); } - - sns_compute_scf( whitenend_noise_shape, st->hTonalMDCTConc->psychParams, L_frame, scf ); - sns_interpolate_scalefactors( scf_int, scf, ENC ); - sns_interpolate_scalefactors( st->hTonalMDCTConc->scaleFactorsBackground, scf, DEC ); - sns_shape_spectrum( whitenend_noise_shape, st->hTonalMDCTConc->psychParams, scf_int, L_frame ); - - mvr2r( whitenend_noise_shape + start_idx, cngNoiseLevel, stop_idx - start_idx ); - wmops_sub_end(); - } - else if ( st->element_mode != IVAS_CPE_MDCT ) - { - lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0.f ); - a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); - mvr2r( lsp_cng, st->lspold_cng, M ); - lsp2lsf( lsp_cng, st->lsf_cng, M, sr_core ); } #endif diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index a1674e46e9..917d64bf20 100755 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -428,6 +428,21 @@ ivas_error ivas_core_dec( { updateBuffersForDmxMdctStereo( hCPE, output_frame, output, synth ); } + +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( sts[0]->bfi == 0 && sts[0]->prev_bfi == 1 ) + { + /* On first good frame after frameloss undo the whitening of the bg noise shape */ + for ( n = 0; n < n_channels; ++n ) + { + if ( sts[n]->last_core != ACELP_CORE ) + { + TonalMdctConceal_whiten_noise_shape( sts[n], L_FRAME16k, ON_FIRST_GOOD_FRAME ); + } + } + } +#endif + } /*---------------------------------------------------------------------* diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 58ae215506..b5e14f58ab 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -1119,4 +1119,54 @@ void TonalMdctConceal_create_concealment_noise( return; } + +void TonalMdctConceal_whiten_noise_shape( + Decoder_State *st, + const int16_t L_frame, + const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE whitening_mode +) +{ + float scf[SNS_NPTS]; + float scfs_int[FDNS_NPTS]; + float whitenend_noise_shape[L_FRAME16k]; + int16_t inc, start_idx, stop_idx; + float *noiseLevelPtr, *scfs_bg, *scfs_for_shaping; + PsychoacousticParameters **psychParams; + HANDLE_FD_CNG_COM hFdCngCom; + + wmops_sub_start( "apply_sns_on_noise_shape" ); + + scfs_bg = &st->hTonalMDCTConc->scaleFactorsBackground[0]; + psychParams = &st->hTonalMDCTConc->psychParams; + hFdCngCom = st->hFdCngDec->hFdCngCom; + + inc = ( ( whitening_mode == ON_FIRST_LOST_FRAME ? st->core : st->last_core ) > TCX_20_CORE ) ? 2 : 1; + start_idx = hFdCngCom->startBand / inc; + stop_idx = L_frame / inc; + noiseLevelPtr = hFdCngCom->cngNoiseLevel; + + set_zero( whitenend_noise_shape, start_idx ); + for ( int16_t j = start_idx; j < stop_idx; j++, noiseLevelPtr += inc ) + { + whitenend_noise_shape[j] = *noiseLevelPtr; + } + + if ( whitening_mode == ON_FIRST_LOST_FRAME ) + { + sns_compute_scf( whitenend_noise_shape, *psychParams, L_frame, scf ); + sns_interpolate_scalefactors( scfs_int, scf, ENC ); + sns_interpolate_scalefactors( scfs_bg, scf, DEC ); + scfs_for_shaping = &scfs_int[0]; + } + else if ( whitening_mode == ON_FIRST_GOOD_FRAME ) + { + scfs_for_shaping = &scfs_bg[0]; + } + + sns_shape_spectrum( whitenend_noise_shape, *psychParams, scfs_for_shaping, L_frame ); + + mvr2r( whitenend_noise_shape + start_idx, hFdCngCom->cngNoiseLevel, stop_idx - start_idx ); + wmops_sub_end(); +} + #endif -- GitLab From 25a154f2172239d6c24a949bd1158af233092949 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 26 Aug 2022 17:57:26 +0200 Subject: [PATCH 033/479] small cleanup and optimization --- lib_dec/tonalMDCTconcealment.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index b5e14f58ab..63b2849d6e 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -1054,7 +1054,6 @@ void TonalMdctConceal_create_concealment_noise( c_inv = sqrtf( 1 - hStereoMdct->lastCoh ); /* pre-compute the noise shape for later weighting of the noise spectra */ - /* TODO: optimize by intertwining with later loop */ cngNoiseLevelPtr = &hFdCngCom->cngNoiseLevel[0]; inc = ( st->core > TCX_20_CORE ) ? 2 : 1; start_idx = hFdCngCom->startBand / inc; @@ -1126,8 +1125,6 @@ void TonalMdctConceal_whiten_noise_shape( const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE whitening_mode ) { - float scf[SNS_NPTS]; - float scfs_int[FDNS_NPTS]; float whitenend_noise_shape[L_FRAME16k]; int16_t inc, start_idx, stop_idx; float *noiseLevelPtr, *scfs_bg, *scfs_for_shaping; @@ -1153,6 +1150,9 @@ void TonalMdctConceal_whiten_noise_shape( if ( whitening_mode == ON_FIRST_LOST_FRAME ) { + float scf[SNS_NPTS]; + float scfs_int[FDNS_NPTS]; + sns_compute_scf( whitenend_noise_shape, *psychParams, L_frame, scf ); sns_interpolate_scalefactors( scfs_int, scf, ENC ); sns_interpolate_scalefactors( scfs_bg, scf, DEC ); @@ -1163,9 +1163,16 @@ void TonalMdctConceal_whiten_noise_shape( scfs_for_shaping = &scfs_bg[0]; } - sns_shape_spectrum( whitenend_noise_shape, *psychParams, scfs_for_shaping, L_frame ); + if ( sum_f( scfs_for_shaping, FDNS_NPTS ) > 0.0f ) + { + sns_shape_spectrum( whitenend_noise_shape, *psychParams, scfs_for_shaping, L_frame ); + mvr2r( whitenend_noise_shape + start_idx, hFdCngCom->cngNoiseLevel, stop_idx - start_idx ); + } + else + { + set_zero( hFdCngCom->cngNoiseLevel, stop_idx - start_idx ); + } - mvr2r( whitenend_noise_shape + start_idx, hFdCngCom->cngNoiseLevel, stop_idx - start_idx ); wmops_sub_end(); } -- GitLab From d1c0b7561096acbda003d7c47c882965bea93c80 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Mon, 29 Aug 2022 15:29:27 +0200 Subject: [PATCH 034/479] fix compilation error on MSVC --- lib_rend/lib_rend.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index f8284c685a..581515efa4 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -1874,7 +1874,7 @@ static void renderChannelsToBinaural( int32_t numInChannels; float gain_lin; float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - float tmpLfeBuffer[L_FRAME48k + NS2SA( 48000, ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L )]; + float tmpLfeBuffer[L_FRAME48k_EXT]; #ifdef WMOPS wmops_sub_start( "renderChannelsToBinaural" ); -- GitLab From 4ce71960cf3a85ae7ecfd4dbe5de977e7c68df5a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 29 Aug 2022 16:40:36 +0200 Subject: [PATCH 035/479] FIX_I74_BW_LIMITATION_ALT: no need for updateBandwidthFromFs() anymore --- lib_enc/lib_enc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 2890ae5c73..8bae7b8fa7 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -80,7 +80,9 @@ static ivas_error setChannelAwareConfig( IVAS_ENC_HANDLE hIvasEnc, const IVAS_EN static int16_t getInputBufferSize( const Encoder_Struct *st_ivas ); static ivas_error doCommonConfigureChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error doCommonSetterChecks( IVAS_ENC_HANDLE hIvasEnc ); +#ifndef FIX_I74_BW_LIMITATION_ALT static void updateBandwidthFromFs( const ENCODER_CONFIG_HANDLE hEncoderConfig ); +#endif static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ); static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); @@ -826,7 +828,9 @@ static ivas_error configureEncoder( hEncoderConfig->input_Fs = inputFs; +#ifndef FIX_I74_BW_LIMITATION_ALT updateBandwidthFromFs( hEncoderConfig ); +#endif /*-----------------------------------------------------------------* * Channel-aware mode @@ -1814,7 +1818,7 @@ static ivas_error doCommonSetterChecks( return IVAS_ERR_OK; } - +#ifndef FIX_I74_BW_LIMITATION_ALT /*---------------------------------------------------------------------* * updateBandwidthFromFs() * @@ -1840,7 +1844,7 @@ static void updateBandwidthFromFs( return; } - +#endif #ifdef FIX_I74_BW_LIMITATION_ALT /*---------------------------------------------------------------------* @@ -1974,12 +1978,14 @@ static ivas_error setBandwidth( hIvasEnc->switchingActive = true; } +#ifndef FIX_I74_BW_LIMITATION_ALT /* Limit bandwidth to half of sampling rate - only possible if * sampling rate has already been set via configure function */ if ( hIvasEnc->isConfigured ) { updateBandwidthFromFs( hIvasEnc->st_ivas->hEncoderConfig ); } +#endif return IVAS_ERR_OK; } -- GitLab From 2f43d13928d482cdb6544d5797f96a3450db19c0 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Tue, 30 Aug 2022 07:46:37 +0200 Subject: [PATCH 036/479] Added initialization of {Left,Right}Filter{,Incr}_p in TDREND_SFX_SpatBin_Initialize --- lib_com/options.h | 1 + lib_rend/ivas_objectRenderer_sfx.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 8bb532f8fb..62fb445552 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -155,6 +155,7 @@ #define FIX_WRONG_NBANDS_IN_ITD_ESTIMATION /* Issue 85: fix incorrect setting of nbands in calc_mean_E_ratio() if bwidth is limited on commandline*/ #define FIX_I87 /* fix for issue 86: incorrect Ambisonics order set for head rotation in SBA */ +#define FIX_I81 /* Fix for issue 81: Initialize HR filter pointers */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_rend/ivas_objectRenderer_sfx.c b/lib_rend/ivas_objectRenderer_sfx.c index 4f03ada392..45ac83a4ae 100644 --- a/lib_rend/ivas_objectRenderer_sfx.c +++ b/lib_rend/ivas_objectRenderer_sfx.c @@ -1208,6 +1208,12 @@ ivas_error TDREND_SFX_SpatBin_Initialize( SfxSpatBin_p->TurningOnEffect = FALSE; /* Init during next SetParams-call */ SfxSpatBin_p->InitializeParams = TRUE; +#ifdef FIX_I81 + SfxSpatBin_p->LeftFilter_p = NULL; + SfxSpatBin_p->LeftFilterIncr_p = NULL; + SfxSpatBin_p->RightFilter_p = NULL; + SfxSpatBin_p->RightFilterIncr_p = NULL; +#endif /* Init MaxTargetTime and MaxBlockLength */ switch ( output_Fs ) -- GitLab From 4ef049bb8e8e191b6d3954efe69660657e264516 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 30 Aug 2022 13:28:44 +0200 Subject: [PATCH 037/479] remove tmpFixBuggyTdBinRendInit() under FIX_I81 as well --- lib_rend/lib_rend.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 581515efa4..b62ff9490b 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -454,6 +454,7 @@ static ivas_error initDecoderDummyForAmbiToBinaural( DecoderDummy *decDummyAmbiB return error; } +#ifndef FIX_I81 /* Fixes initialization issues in TD renderer. Should get fixed properly soon. See issue: https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec/-/issues/81 */ static void tmpFixBuggyTdBinRendInit(BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd) @@ -471,6 +472,7 @@ static void tmpFixBuggyTdBinRendInit(BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRend } } } +#endif static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin, IVAS_REND_InputConfig inConfig, IVAS_REND_BinauralFormat binauralFormat ) { @@ -515,7 +517,9 @@ static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin { return error; } +#ifndef FIX_I81 tmpFixBuggyTdBinRendInit(decDummyObjBin->hBinRendererTd); +#endif } return error; -- GitLab From db80a309ef89c422fb9aaf8c9a70a05d36f0c222 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 31 Aug 2022 11:47:13 +0200 Subject: [PATCH 038/479] Add leftover merge change --- lib_rend/ivas_sba_rendering.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib_rend/ivas_sba_rendering.c b/lib_rend/ivas_sba_rendering.c index dbcec392a5..03db2203c9 100644 --- a/lib_rend/ivas_sba_rendering.c +++ b/lib_rend/ivas_sba_rendering.c @@ -274,7 +274,11 @@ int16_t ivas_sba_remapTCs( if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { +#ifndef SBA_ORDER_BITSTREAM ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_order, st_ivas->sba_planar, output_frame ); +#else + ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->sba_planar, output_frame ); +#endif } return ( nchan_remapped ); } -- GitLab From 43bd3cf68a160f3ed566aecab927bcd595779bc9 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 31 Aug 2022 11:47:42 +0200 Subject: [PATCH 039/479] Revert "Add leftover merge change" This reverts commit db80a309ef89c422fb9aaf8c9a70a05d36f0c222. --- lib_rend/ivas_sba_rendering.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib_rend/ivas_sba_rendering.c b/lib_rend/ivas_sba_rendering.c index 03db2203c9..dbcec392a5 100644 --- a/lib_rend/ivas_sba_rendering.c +++ b/lib_rend/ivas_sba_rendering.c @@ -274,11 +274,7 @@ int16_t ivas_sba_remapTCs( if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { -#ifndef SBA_ORDER_BITSTREAM ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_order, st_ivas->sba_planar, output_frame ); -#else - ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->sba_planar, output_frame ); -#endif } return ( nchan_remapped ); } -- GitLab From c3694594fe90a5e5ee1f159c5a33d917d1b493e2 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 31 Aug 2022 13:21:13 +0200 Subject: [PATCH 040/479] Update external renderer Changes: - Add clipping of samples before float to int conversion - Minor improvements to command line parsing - Merge recent main --- apps/renderer.c | 40 +++++-- lib_com/bitstream.c | 18 ++++ lib_com/ivas_dirac_com.c | 8 ++ lib_com/ivas_prot.h | 18 ++-- lib_com/ivas_stereo_mdct_stereo_com.c | 4 - lib_com/options.h | 8 +- lib_dec/ivas_cpe_dec.c | 17 --- lib_dec/ivas_dirac_dec.c | 8 ++ lib_dec/ivas_init_dec.c | 30 ++++++ lib_dec/ivas_mct_dec_mct.c | 4 - lib_dec/ivas_sba_dec.c | 24 ++++- lib_dec/ivas_spar_decoder.c | 9 +- lib_dec/ivas_spar_md_dec.c | 6 +- lib_dec/ivas_stat_dec.h | 11 +- lib_dec/ivas_stereo_mdct_core_dec.c | 27 +---- lib_dec/ivas_stereo_mdct_stereo_dec.c | 4 - lib_dec/lib_dec.c | 4 + lib_enc/ivas_cpe_enc.c | 16 +-- lib_enc/ivas_mct_enc.c | 20 ++++ lib_enc/ivas_mdct_core_enc.c | 6 +- lib_enc/ivas_rom_enc.c | 2 + lib_enc/ivas_rom_enc.h | 2 + lib_enc/ivas_sba_enc.c | 18 +++- lib_enc/ivas_spar_encoder.c | 33 +++++- lib_enc/ivas_spar_md_enc.c | 53 +++++++-- lib_enc/ivas_stat_enc.h | 7 +- lib_enc/ivas_stereo_dmx_evs.c | 136 ++++++++++++++++++++++-- lib_enc/ivas_stereo_mdct_core_enc.c | 17 +-- lib_enc/ivas_stereo_switching_enc.c | 6 +- lib_enc/lib_enc.c | 15 ++- lib_rend/ivas_output_init.c | 6 +- lib_rend/ivas_sba_rendering.c | 4 + lib_rend/lib_rend.c | 73 +++++++++++-- lib_rend/lib_rend.h | 11 ++ scripts/cut_bs.py | 122 +++++++++++++++++++++ scripts/pyivastest/IvasScriptsCommon.py | 4 +- 36 files changed, 623 insertions(+), 168 deletions(-) mode change 100755 => 100644 lib_com/options.h mode change 100755 => 100644 lib_enc/ivas_cpe_enc.c mode change 100755 => 100644 lib_enc/ivas_stereo_mdct_core_enc.c create mode 100755 scripts/cut_bs.py diff --git a/apps/renderer.c b/apps/renderer.c index 5787cb143e..8197b05bd8 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -607,7 +607,19 @@ int32_t main( int32_t argc, char **argv ) fprintf( stdout, "\nRenderer delay: %-5u [samples] - Timescale: %5u\n", delayNumSamples_orig, delayTimeScale ); } - fprintf( stdout, "\n\nRendering of %d frames finished\n", frame ); + fprintf( stdout, "\n\nRendering of %d frames finished\n\n", frame ); + +#ifdef DEBUGGING + int32_t cnt_frames_limited, noClipping; + if ( ( cnt_frames_limited = IVAS_REND_GetCntFramesLimited( hIvasRend ) ) > 0 ) + { + fprintf( stdout, "Limiter applied in %d frames.\n\n", cnt_frames_limited ); + } + if ( ( noClipping = IVAS_REND_GetNoCLipping( hIvasRend ) ) > 0 ) + { + fprintf( stdout, "Clipping (saturation) detected: %d samples clipped!!!\n\n", noClipping ); + } +#endif /* === Close === */ count_free( inpInt16Buffer ); @@ -1170,6 +1182,7 @@ typedef enum CmdLnOptionId_neverDropLfe, CmdLnOptionId_noDelayCmp, CmdLnOptionId_quietModeEnabled, + CmdLnOptionId_inputMetadata, } CmdLnOptionId; static void parseOption( int32_t optionId, char **optionValues, int16_t numOptionValues, void *pOutputStruct ) @@ -1260,15 +1273,22 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) .match = "input_file", .matchShort = "i", .isRequired = 1, - .description = "Path to the input file", + .description = "Path to the input file (WAV, raw PCM or scene description file)", }, { .id = CmdLnOptionId_inputFormat, .match = "input_format", .matchShort = "if", .isRequired = 1, + // .description = "Audio format of input file (e.g. 5_1 or HOA3 or META)", /* TODO(sgi): Add additional flag for listing all available formats */ .description = "Format of input file\nIn case of a metadata format this should be followed by a list of metadata file paths or NULL", }, + // { /* TODO(sgi): move metadata file paths from input_format to this separate flag */ + // .id = CmdLnOptionId_inputMetadata, + // .match = "input_metadata", + // .matchShort = "im", + // .description = "Space-separated list of path to metadata files for ISM or MASA inputs", + // }, { .id = CmdLnOptionId_outputFile, .match = "output_file", @@ -1287,40 +1307,42 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) .id = CmdLnOptionId_sampleRate, .match = "sample_rate", .matchShort = "fs", - .isRequired = 1, - .description = "Input sampling rate in kHz", + .isRequired = 1, /* TODO(sgi): Shouldn't be required */ + .description = "Input sampling rate in kHz (16, 32, 48)", /* TODO(sgi): Add sampling rate to scene description files */ }, { .id = CmdLnOptionId_trajFile, .match = "trajectory_file", .matchShort = "tf", - .description = "Head rotation trajectory file", + .description = "Head rotation trajectory file for simulation of head tracking (only for BINAURAL and BINAURAL_ROOM outputs)", }, { .id = CmdLnOptionId_customHrtfFile, .match = "custom_hrtf", .matchShort = "hrtf", - .description = "Custom HRTF file for binaural rendering", + .description = "Custom HRTF file for binaural rendering (only for BINAURAL and BINAURAL_ROOM outputs)", }, { .id = CmdLnOptionId_renderConfigFile, .match = "render_config", .matchShort = "rc", - .description = "Renderer configuration file", + .description = "Binaural renderer configuration file (only for BINAURAL and BINAURAL_ROOM outputs)", }, { .id = CmdLnOptionId_noDiegeticPan, .match = "no_diegetic_pan", .matchShort = "ndp", - .description = "Panning mono no dietic sound to stereo -1<= pan <= 1\nleft or l or 1->left, right or r or -1->right, center or c or 0 ->middle", + .description = "Panning mono no diegetic sound to stereo -1<= pan <= 1\nleft or l or 1->left, right or r or -1->right, center or c or 0 ->middle\n(todo: implementation)", }, { .id = CmdLnOptionId_orientationTracking, .match = "tracking_type", .matchShort = "otr", - .description = "Head orientation tracking type: 'ref' or 'avg' (only for binaural rendering)", + .description = "Head orientation tracking type: 'ref' or 'avg' (only for BINAURAL and BINAURAL_ROOM) (todo: check implementation)", }, { + /* TODO(sgi): Replace with more configurable input, e.g. ask for a list of triplets: (gain, azimuth, elevation) to place LFE signal */ + /* rename to "lfeHandling" */ .id = CmdLnOptionId_neverDropLfe, .match = "neverDropLfe", .matchShort = "ndl", diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index 3a4ebc80cb..4e81fc9166 100755 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -1975,11 +1975,29 @@ ivas_error preview_indices( } else if ( st_ivas->ivas_format == SBA_FORMAT ) { + /* Read SBA planar flag and SBA order */ st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA] == 1 ); +#ifndef SBA_ORDER_BITSTREAM st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 ); st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 ); +#else + st_ivas->hDecoderConfig->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 ); + st_ivas->hDecoderConfig->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 ); + st_ivas->sba_analysis_order = st_ivas->hDecoderConfig->sba_order; +#endif +#ifdef SBA_ORDER_BITSTREAM + /*Hard coding the the sba_oder as 1 as higher not supported below 256k bitrate*/ + if ( total_brate < IVAS_256k ) + { + st_ivas->sba_analysis_order = 1; + } +#endif +#ifdef SBA_ORDER_BITSTREAM + ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); +#else ivas_sba_config( total_brate, st_ivas->sba_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); +#endif } } diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index 8cade5dee4..849e889739 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -82,7 +82,11 @@ ivas_error ivas_dirac_config( nCPE = &( (Encoder_Struct *) st_ivas )->nCPE; element_mode = &( (Encoder_Struct *) st_ivas )->hEncoderConfig->element_mode_init; nchan_transport = &( (Encoder_Struct *) st_ivas )->nchan_transport; +#ifndef SBA_ORDER_BITSTREAM sba_order = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_order; +#else + sba_order = ( (Encoder_Struct *) st_ivas )->sba_analysis_order; +#endif sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar; ivas_total_brate = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->ivas_total_brate; Fs = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->input_Fs; @@ -107,7 +111,11 @@ ivas_error ivas_dirac_config( nCPE = &( (Decoder_Struct *) st_ivas )->nCPE; element_mode = &( (Decoder_Struct *) st_ivas )->element_mode_init; nchan_transport = &( (Decoder_Struct *) st_ivas )->nchan_transport; +#ifndef SBA_ORDER_BITSTREAM sba_order = ( (Decoder_Struct *) st_ivas )->sba_order; +#else + sba_order = ( (Decoder_Struct *) st_ivas )->sba_analysis_order; +#endif sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar; ivas_total_brate = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->ivas_total_brate; Fs = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->output_Fs; diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index cb94e2c1ac..3003b9f785 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2155,9 +2155,7 @@ void stereo_mdct_core_dec( void splitAvailableBits( const int16_t total_bits, /* i : total available bits for TCX coding */ const int16_t split_ratio, /* i : split ratio */ -#ifdef LBR_SBA_CORE_CODING_TUNING const int16_t isSBAStereoMode, /* i : signal core coding for sba */ -#endif int16_t *bits_ch0, /* o : bits for channel 0 */ int16_t *bits_ch1 /* o : bits for channel 1 */ ); @@ -2175,9 +2173,7 @@ void parse_stereo_from_bitstream( STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct, /* i/o: MDCT stereo decoder structure */ Decoder_State **sts, /* i/o: decoder state structure */ const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ -#ifdef LBR_SBA_CORE_CODING_TUNING const int16_t isSBAStereoMode, /* i: flag core coding for sba */ -#endif Decoder_State *st0, /* i/o: decoder state structure for Bstr */ int16_t ms_mask[NB_DIV][MAX_SFB] /* o : bandwise MS mask */ ); @@ -2513,10 +2509,8 @@ ivas_error stereo_memory_enc( const int16_t max_bwidth, /* i : maximum audio bandwidth */ float *tdm_last_ratio, /* o : TD stereo last ratio */ const IVAS_FORMAT ivas_format /* i : IVAS format */ -#ifdef LBR_SBA_CORE_CODING_TUNING , const int16_t nchan_transport /* i : number transport chans */ -#endif ); @@ -3013,11 +3007,7 @@ void ivas_dirac_param_est_enc( *----------------------------------------------------------------------------------*/ /*! r: SBA format mode */ -#ifdef LBR_SBA_CORE_CODING_TUNING SBA_MODE ivas_sba_mode_select( -#else -int16_t ivas_sba_mode_select( -#endif const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); @@ -3876,6 +3866,10 @@ void ivas_spar_dec_upmixer( ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig /* i : configuration structure */ +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif ); void ivas_spar_md_enc_close( @@ -3888,6 +3882,10 @@ ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_in_buf_t *pIn_buf, BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ const int16_t dtx_silence_mode +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif ); void ivas_compute_spar_params( diff --git a/lib_com/ivas_stereo_mdct_stereo_com.c b/lib_com/ivas_stereo_mdct_stereo_com.c index 1b8caa0c7c..73cd2fd579 100644 --- a/lib_com/ivas_stereo_mdct_stereo_com.c +++ b/lib_com/ivas_stereo_mdct_stereo_com.c @@ -46,9 +46,7 @@ void splitAvailableBits( const int16_t total_bits, /* i : total available bits for TCX coding */ const int16_t split_ratio, /* i : split ratio */ -#ifdef LBR_SBA_CORE_CODING_TUNING const int16_t isSBAStereoMode, /* i : signal core coding for sba */ -#endif int16_t *bits_ch0, /* o : bits for channel 0 */ int16_t *bits_ch1 /* o : bits for channel 1 */ ) @@ -56,13 +54,11 @@ void splitAvailableBits( assert( split_ratio >= 1 && split_ratio < SMDCT_BITRATE_RATIO_RANGE ); *bits_ch0 = split_ratio * total_bits / SMDCT_BITRATE_RATIO_RANGE; -#ifdef LBR_SBA_CORE_CODING_TUNING /* for SBA mode bias the distribution towards the W channel */ if ( split_ratio < 7 && isSBAStereoMode ) { *bits_ch0 += (int16_t) ( 0.2 * *bits_ch0 ); } -#endif *bits_ch1 = total_bits - *bits_ch0; return; diff --git a/lib_com/options.h b/lib_com/options.h old mode 100755 new mode 100644 index 62fb445552..054eca6526 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -147,15 +147,17 @@ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define LBR_SBA_CORE_CODING_TUNING /* Contribution "3 Core Coder Tuning for low bitrate SBA with 2 TCs" */ - #define EXT_RENDERER /* FhG: external renderer library and standalone application */ #define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ #define FIX_WRONG_NBANDS_IN_ITD_ESTIMATION /* Issue 85: fix incorrect setting of nbands in calc_mean_E_ratio() if bwidth is limited on commandline*/ #define FIX_I87 /* fix for issue 86: incorrect Ambisonics order set for head rotation in SBA */ -#define FIX_I81 /* Fix for issue 81: Initialize HR filter pointers */ +#define SBA_ORDER_BITSTREAM /* issue 76: Use input sba order for bitstream coding */ + +/* NTT switches */ +#define NTT_UPDATE_ITD_SW /* contribution 4: Update of ITD switch in stereo downmix for EVS */ +#define NTT_REMOVE_EPS_ROM /* contribution 4: Reduction of ROM size in stereo downmix for EVS */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index c75ece2bce..7223b38761 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -361,27 +361,10 @@ ivas_error ivas_cpe_dec( if ( hCPE->element_mode != IVAS_CPE_DFT || ( hCPE->nchan_out == 1 && hCPE->hStereoDft->hConfig->res_cod_mode == STEREO_DFT_RES_COD_OFF ) ) { -#ifndef LBR_SBA_CORE_CODING_TUNING - if ( st_ivas->renderer_type == RENDERER_MC_PARAMMC && ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_MONO || st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ) ) - { - if ( ( error = ivas_core_dec( st_ivas, NULL, hCPE, st_ivas->hMCT, n_channels, output, outputHB, NULL, 0 ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else - { - if ( ( error = ivas_core_dec( NULL, NULL, hCPE, st_ivas->hMCT, n_channels, output, outputHB, NULL, 0 ) ) != IVAS_ERR_OK ) - { - return error; - } - } -#else if ( ( error = ivas_core_dec( st_ivas, NULL, hCPE, st_ivas->hMCT, n_channels, output, outputHB, NULL, 0 ) ) != IVAS_ERR_OK ) { return error; } -#endif } if ( st_ivas->hMCT ) diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index a8022aaa5d..074f635133 100755 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -186,7 +186,11 @@ ivas_error ivas_dirac_dec_config( nchan_transport_orig = st_ivas->nchan_transport; if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR && !( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) { +#ifdef SBA_ORDER_BITSTREAM + st_ivas->nchan_transport = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); +#else st_ivas->nchan_transport = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); +#endif } nchan_transport = st_ivas->nchan_transport; if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 ) @@ -197,7 +201,11 @@ ivas_error ivas_dirac_dec_config( if ( flag_config == DIRAC_RECONFIGURE && st_ivas->ivas_format == SBA_FORMAT ) { int16_t tmp1, tmp2, tmp3; +#ifdef SBA_ORDER_BITSTREAM + ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC ); +#else ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC ); +#endif } /*-----------------------------------------------------------------* diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index a682cd3c58..b12aa28e40 100755 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -119,8 +119,18 @@ ivas_error ivas_dec_setup( num_bits_read += SBA_PLANAR_BITS; /* read Ambisonic (SBA) order */ +#ifndef SBA_ORDER_BITSTREAM st_ivas->sba_order = st_ivas->bit_stream[num_bits_read + 1]; st_ivas->sba_order += 2 * st_ivas->bit_stream[num_bits_read]; +#else + st_ivas->hDecoderConfig->sba_order = st_ivas->bit_stream[num_bits_read + 1]; + st_ivas->hDecoderConfig->sba_order += 2 * st_ivas->bit_stream[num_bits_read]; + st_ivas->sba_analysis_order = st_ivas->hDecoderConfig->sba_order; + if ( ivas_total_brate < IVAS_256k ) + { + st_ivas->sba_analysis_order = 1; + } +#endif num_bits_read += SBA_ORDER_BITS; if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_4k4 ) { @@ -131,7 +141,11 @@ ivas_error ivas_dec_setup( } else { +#ifndef SBA_ORDER_BITSTREAM ivas_sba_config( ivas_total_brate, st_ivas->sba_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); +#else + ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); +#endif } } else if ( st_ivas->ivas_format == MASA_FORMAT ) @@ -408,10 +422,17 @@ static ivas_error ivas_read_format( tc_mode_offset = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); idx = st_ivas->bit_stream[tc_mode_offset]; // TBD: needs more work for HOA +#ifndef SBA_ORDER_BITSTREAM if ( st_ivas->sba_order == 0 ) { st_ivas->sba_order = 1; } +#else + if ( st_ivas->sba_analysis_order == 0 ) + { + st_ivas->sba_analysis_order = 1; + } +#endif if ( idx == 0 ) { st_ivas->sid_format = SID_SBA_1TC; @@ -852,8 +873,13 @@ ivas_error ivas_init_decoder( return error; } } +#ifndef SBA_ORDER_BITSTREAM if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) +#else + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, + st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -887,7 +913,11 @@ ivas_error ivas_init_decoder( } else { +#ifndef SBA_ORDER_BITSTREAM if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#else + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#endif { return error; } diff --git a/lib_dec/ivas_mct_dec_mct.c b/lib_dec/ivas_mct_dec_mct.c index 1d1ccb0a3a..00eff03dac 100644 --- a/lib_dec/ivas_mct_dec_mct.c +++ b/lib_dec/ivas_mct_dec_mct.c @@ -147,11 +147,7 @@ void ivas_mct_dec_mct( p_st[0] = sts[hBlock->ch1]; p_st[1] = sts[hBlock->ch2]; -#ifdef LBR_SBA_CORE_CODING_TUNING parse_stereo_from_bitstream( hBlock->hStereoMdct, p_st, 1, 0, sts[0], hBlock->mask ); -#else - parse_stereo_from_bitstream( hBlock->hStereoMdct, p_st, 1, sts[0], hBlock->mask ); -#endif } return; diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index b79c598801..4aaddd028b 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -90,8 +90,11 @@ ivas_error ivas_sba_dec_reconfigure( nCPE_old = st_ivas->nCPE; nchan_transport_old = st_ivas->nchan_transport; sba_dirac_stereo_flag_old = st_ivas->sba_dirac_stereo_flag; - +#ifndef SBA_ORDER_BITSTREAM ivas_sba_config( sba_total_brate, st_ivas->sba_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); +#else + ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); +#endif st_ivas->nchan_transport = nchan_transport; /* renderer might have changed */ @@ -107,7 +110,11 @@ ivas_error ivas_sba_dec_reconfigure( if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ); +#ifndef SBA_ORDER_BITSTREAM if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#else + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -115,11 +122,19 @@ ivas_error ivas_sba_dec_reconfigure( else { int16_t sba_order_internal; +#ifndef SBA_ORDER_BITSTREAM sba_order_internal = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); +#else + sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif ivas_spar_config( st_ivas->hDecoderConfig->ivas_total_brate, sba_order_internal, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->hSpar->core_nominal_brate, st_ivas->sid_format ); - +#ifndef SBA_ORDER_BITSTREAM if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) +#else + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, + st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -557,8 +572,11 @@ void ivas_sba_upmixer_renderer( int16_t nchan_internal; wmops_sub_start( "ivas_sba_upmixer_renderer" ); - +#ifndef SBA_ORDER_BITSTREAM nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); +#else + nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); +#endif nchan_out = st_ivas->hDecoderConfig->nchan_out; for ( ch = 0; ch < nchan_remapped; ch++ ) diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 9842097187..cc625f2605 100755 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -71,7 +71,11 @@ ivas_error ivas_spar_dec_open( int32_t output_Fs; error = IVAS_ERR_OK; +#ifndef SBA_ORDER_BITSTREAM sba_order_internal = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); +#else + sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif num_channels_internal = ivas_sba_get_nchan_metadata( sba_order_internal ); /* SPAR decoder handle */ @@ -619,8 +623,11 @@ static void ivas_spar_dec_MD( /*---------------------------------------------------------------------* * Initialization *---------------------------------------------------------------------*/ - +#ifndef SBA_ORDER_BITSTREAM sba_order = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); +#else + sba_order = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif bfi = st_ivas->bfi; ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; num_channels = ivas_sba_get_nchan_metadata( sba_order ); diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 21c244292a..be1b3fcb10 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -2577,9 +2577,11 @@ void ivas_spar_to_dirac( int16_t pred_idx; int16_t *dirac_to_spar_md_bands; int16_t enc_param_start_band; - +#ifndef SBA_ORDER_BITSTREAM sba_order_internal = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); - +#else + sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif start_band = 0; end_band = min( num_bands_out, SPAR_DIRAC_SPLIT_START_BAND ); diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 8e4a18457a..29ae9867ca 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -325,9 +325,7 @@ typedef struct stereo_mdct_dec_data_structure int16_t noise_seeds_channels[CPE_CHANNELS]; int16_t noise_seed_common; #endif -#ifdef LBR_SBA_CORE_CODING_TUNING int16_t isSBAStereoMode; -#endif } STEREO_MDCT_DEC_DATA, *STEREO_MDCT_DEC_DATA_HANDLE; @@ -1856,7 +1854,9 @@ typedef struct decoder_config_structure int32_t output_Fs; /* output signal sampling frequency in Hz */ int16_t nchan_out; /* number of output audio channels */ AUDIO_CONFIG output_config; /* output audio configuration */ - +#ifdef SBA_ORDER_BITSTREAM + int16_t sba_order; +#endif int16_t Opt_LsCustom; /* indicates whether loudspeaker custom setup is used */ int16_t Opt_HRTF_binary; /* indicates whether HRTF binary file is used */ int16_t Opt_Headrotation; /* indicates whether head-rotation is used */ @@ -1929,8 +1929,11 @@ typedef struct Decoder_Struct ISM_MODE ism_mode; /* ISM format mode */ SBA_MODE sba_mode; /* SBA format mode */ MC_MODE mc_mode; /* MC format mode */ - +#ifdef SBA_ORDER_BITSTREAM + int16_t sba_analysis_order; /* Ambisonic (SBA) order */ +#else int16_t sba_order; /* Ambisonic (SBA) order */ +#endif int16_t sba_planar; /* Ambisonic (SBA) planar flag */ int16_t sba_dirac_stereo_flag; /* flag indicating stereo output for SBA DirAC modes with 1 TC */ diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index faf86eeb06..3d4c38f272 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -116,20 +116,12 @@ static void stereo_mdct_dec_stereo( sts = hCPE->hCoreCoder; -#ifdef LBR_SBA_CORE_CODING_TUNING parse_stereo_from_bitstream( hCPE->hStereoMdct, hCPE->hCoreCoder, 0, hCPE->hStereoMdct->isSBAStereoMode, hCPE->hCoreCoder[0], ms_mask ); -#else - parse_stereo_from_bitstream( hCPE->hStereoMdct, hCPE->hCoreCoder, 0, hCPE->hCoreCoder[0], ms_mask ); -#endif /*Split available bits between channels */ availableBits = sts[0]->bits_frame_channel + sts[1]->bits_frame_channel - sts[0]->next_bit_pos - sts[0]->core * ( NF_GAIN_BITS + SMDCT_MINIMUM_ARITH_BITS ) - sts[1]->core * ( NF_GAIN_BITS + SMDCT_MINIMUM_ARITH_BITS ); -#ifdef LBR_SBA_CORE_CODING_TUNING splitAvailableBits( availableBits, hCPE->hStereoMdct->split_ratio, hCPE->hStereoMdct->isSBAStereoMode, &sts[0]->bits_frame_channel, &sts[1]->bits_frame_channel ); -#else - splitAvailableBits( availableBits, hCPE->hStereoMdct->split_ratio, &sts[0]->bits_frame_channel, &sts[1]->bits_frame_channel ); -#endif sts[0]->bits_frame_channel += sts[0]->core * SMDCT_MINIMUM_ARITH_BITS; sts[1]->bits_frame_channel += sts[1]->core * SMDCT_MINIMUM_ARITH_BITS; @@ -225,14 +217,12 @@ void stereo_mdct_core_dec( initMdctStereoDecData( hCPE->hStereoMdct, sts[0]->igf, sts[0]->hIGFDec->igfData.igfInfo.grid, hCPE->element_brate, sts[0]->bwidth ); -#ifdef LBR_SBA_CORE_CODING_TUNING - hCPE->hStereoMdct->isSBAStereoMode = ( (st_ivas->ivas_format == SBA_FORMAT) && (st_ivas->nchan_transport == 2) ); + hCPE->hStereoMdct->isSBAStereoMode = ( ( st_ivas->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); /*to prevent unitialized values during condition checks for stereo IGF*/ if ( hCPE->hStereoMdct->isSBAStereoMode ) { set_s( hCPE->hStereoMdct->IGFStereoMode, -1, 2 ); } -#endif if ( !bfi ) { @@ -304,11 +294,7 @@ void stereo_mdct_core_dec( for ( k = 0; k < nSubframes[0]; k++ ) { - if ( ( hCPE->hStereoMdct->IGFStereoMode[k] != SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[k] != SMDCT_DUAL_MONO ) -#ifdef LBR_SBA_CORE_CODING_TUNING - && !hCPE->hStereoMdct->isSBAStereoMode -#endif - ) + if ( ( hCPE->hStereoMdct->IGFStereoMode[k] != SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[k] != SMDCT_DUAL_MONO ) && !hCPE->hStereoMdct->isSBAStereoMode ) { assert( ( sts[0]->core == sts[1]->core ) || ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); @@ -384,11 +370,7 @@ void stereo_mdct_core_dec( mvs2s( ms_mask[1], hCPE->hStereoMdct->prev_ms_mask[1], MAX_SFB ); } - if ( ( !bfi || !( sts[0]->core == ACELP_CORE && sts[1]->core == ACELP_CORE ) ) -#ifdef LBR_SBA_CORE_CODING_TUNING - && !hCPE->hStereoMdct->isSBAStereoMode -#endif - ) + if ( ( !bfi || !( sts[0]->core == ACELP_CORE && sts[1]->core == ACELP_CORE ) ) && !hCPE->hStereoMdct->isSBAStereoMode ) { #ifdef DEBUGGING assert( ( sts[0]->core == sts[1]->core ) || ( ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) && ( hCPE->hStereoMdct->mdct_stereo_mode[1] == SMDCT_DUAL_MONO ) ) ); @@ -400,9 +382,6 @@ void stereo_mdct_core_dec( ivas_mdct_core_tns_ns( hCPE, 0, fUseTns, tnsData, x, Aq, 0 ); if ( -#ifndef LBR_SBA_CORE_CODING_TUNING - st_ivas != NULL && -#endif st_ivas->renderer_type == RENDERER_MC_PARAMMC && ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_MONO || st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ) ) { ivas_ls_setup_conversion_process_mdct_param_mc( st_ivas, x ); diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 05c9c12ae2..f797eaf289 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -57,9 +57,7 @@ void parse_stereo_from_bitstream( STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct, /* i/o: MDCT stereo decoder structure */ Decoder_State **sts, /* i/o: decoder state structure */ const int16_t mct_on, /* i : flag mct block (1) or stereo (0)*/ -#ifdef LBR_SBA_CORE_CODING_TUNING const int16_t isSBAStereoMode, /* i : flag core coding for sba */ -#endif Decoder_State *st0, /* i/o: decoder state structure for Bstr*/ int16_t ms_mask[NB_DIV][MAX_SFB] /* o : bandwise MS mask */ ) @@ -69,9 +67,7 @@ void parse_stereo_from_bitstream( #ifdef DEBUGGING int16_t nbits_start = st0->next_bit_pos; #endif -#ifdef LBR_SBA_CORE_CODING_TUNING if ( !isSBAStereoMode ) -#endif { nSubframes = ( sts[0]->core == TCX_10_CORE || ( sts[0]->core != sts[1]->core ) ) ? NB_DIV : 1; sfbConf = ( sts[0]->core == TCX_20_CORE ) ? &hStereoMdct->stbParamsTCX20 : &hStereoMdct->stbParamsTCX10; diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index fd27442c37..c12a356146 100755 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -169,7 +169,11 @@ ivas_error IVAS_DEC_Open( hIvasDec->st_ivas->ini_frame = 0; hIvasDec->st_ivas->ini_active_frame = 0; hIvasDec->st_ivas->writeFECoffset = 0; +#ifndef SBA_ORDER_BITSTREAM hIvasDec->st_ivas->sba_order = 0; +#else + hIvasDec->st_ivas->sba_analysis_order = 0; +#endif hIvasDec->st_ivas->sba_planar = 0; /*initialize pointers*/ diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c old mode 100755 new mode 100644 index 25cba61cc4..b543761491 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -187,11 +187,7 @@ ivas_error ivas_cpe_enc( * dynamically allocate data structures depending on the actual stereo mode *----------------------------------------------------------------*/ -#ifdef LBR_SBA_CORE_CODING_TUNING if ( ( error = stereo_memory_enc( hCPE, input_Fs, max_bwidth, &tdm_last_ratio, ivas_format, st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) -#else - if ( ( error = stereo_memory_enc( hCPE, input_Fs, max_bwidth, &tdm_last_ratio, ivas_format ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -323,9 +319,7 @@ ivas_error ivas_cpe_enc( hCPE->hStereoMdct->mdct_stereo_mode_cmdl = hEncoderConfig->stereo_mode_cmdl; #endif initMdctStereoEncData( hCPE->hStereoMdct, ivas_format, hCPE->element_mode, hCPE->element_brate, max_bwidth, 0, NULL, 0 ); -#ifdef LBR_SBA_CORE_CODING_TUNING - hCPE->hStereoMdct->isSBAStereoMode = ( (ivas_format == SBA_FORMAT) && (st_ivas->nchan_transport == 2) ); -#endif + hCPE->hStereoMdct->isSBAStereoMode = ( ( ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); } } @@ -495,9 +489,7 @@ ivas_error ivas_cpe_enc( if ( sts[0]->bwidth != sts[0]->last_bwidth || ( ( hCPE->last_element_brate != hCPE->element_brate || hCPE->last_element_mode != hCPE->element_mode ) && sts[0]->bwidth != sts[0]->max_bwidth ) ) { initMdctStereoEncData( hCPE->hStereoMdct, ivas_format, hCPE->element_mode, hCPE->element_brate, sts[0]->bwidth, 0, NULL, 0 ); -#ifdef LBR_SBA_CORE_CODING_TUNING - hCPE->hStereoMdct->isSBAStereoMode = ( (ivas_format == SBA_FORMAT) && (st_ivas->nchan_transport == 2) ); -#endif + hCPE->hStereoMdct->isSBAStereoMode = ( ( ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); if ( hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_format == STEREO_FORMAT ) { @@ -957,9 +949,7 @@ ivas_error create_cpe_enc( hCPE->hStereoMdct->mdct_stereo_mode_cmdl = st_ivas->hEncoderConfig->mdct_stereo_mode_cmdl; #endif initMdctStereoEncData( hCPE->hStereoMdct, ivas_format, hCPE->element_mode, hCPE->element_brate, max_bwidth, 0, NULL, 1 ); -#ifdef LBR_SBA_CORE_CODING_TUNING - hCPE->hStereoMdct->isSBAStereoMode = ( (ivas_format == SBA_FORMAT) && (st_ivas->nchan_transport == 2) ); -#endif + hCPE->hStereoMdct->isSBAStereoMode = ( ( ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); if ( hCPE->element_mode == IVAS_CPE_MDCT && element_brate <= MAX_MDCT_ITD_BRATE && ivas_format == STEREO_FORMAT ) { diff --git a/lib_enc/ivas_mct_enc.c b/lib_enc/ivas_mct_enc.c index 3f93bbce6b..20a2856654 100644 --- a/lib_enc/ivas_mct_enc.c +++ b/lib_enc/ivas_mct_enc.c @@ -195,13 +195,21 @@ ivas_error create_mct_enc( } else if ( ivas_format == SBA_FORMAT && st_ivas->hSpar ) { +#ifndef SBA_ORDER_BITSTREAM hMCT->nchan_out_woLFE = ivas_get_spar_num_TCs( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); +#else + hMCT->nchan_out_woLFE = ivas_get_spar_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); +#endif hMCT->num_lfe = FALSE; } else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) { +#ifndef SBA_ORDER_BITSTREAM hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); +#else + hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#endif hMCT->num_lfe = FALSE; } else if ( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_PARAMMC ) @@ -211,7 +219,11 @@ ivas_error create_mct_enc( } else if ( ivas_format == SBA_FORMAT ) { +#ifndef SBA_ORDER_BITSTREAM hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); +#else + hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#endif hMCT->num_lfe = FALSE; } else @@ -339,12 +351,20 @@ ivas_error mct_enc_reconfigure( } else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) { +#ifndef SBA_ORDER_BITSTREAM hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); +#else + hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#endif hMCT->num_lfe = FALSE; } else if ( ivas_format == SBA_FORMAT ) { +#ifndef SBA_ORDER_BITSTREAM hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); +#else + hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#endif hMCT->num_lfe = FALSE; } else diff --git a/lib_enc/ivas_mdct_core_enc.c b/lib_enc/ivas_mdct_core_enc.c index ceea41bcac..4d9d1f2577 100644 --- a/lib_enc/ivas_mdct_core_enc.c +++ b/lib_enc/ivas_mdct_core_enc.c @@ -713,11 +713,7 @@ void ivas_mdct_core_whitening_enc( sts[0]->hTcxEnc->fUseTns[1] = 0; - if ( sts[0]->element_brate < IVAS_80k && sts[0]->core == sts[1]->core && sts[0]->element_mode == IVAS_CPE_MDCT && !mct_on -#ifdef LBR_SBA_CORE_CODING_TUNING - && !hCPE->hStereoMdct->isSBAStereoMode -#endif - ) + if ( sts[0]->element_brate < IVAS_80k && sts[0]->core == sts[1]->core && sts[0]->element_mode == IVAS_CPE_MDCT && !mct_on && !hCPE->hStereoMdct->isSBAStereoMode ) { int16_t nSampCore; int32_t totalRate; diff --git a/lib_enc/ivas_rom_enc.c b/lib_enc/ivas_rom_enc.c index 783085fb86..e8048b8f1a 100644 --- a/lib_enc/ivas_rom_enc.c +++ b/lib_enc/ivas_rom_enc.c @@ -534,6 +534,7 @@ const float ari_bit_estimate_s17_LC[RANGE_N_CONTEXT][RANGE_N_SYMBOLS] = * Stereo downmix to EVS ROM tables *----------------------------------------------------------------------------------*/ +#ifndef NTT_REMOVE_EPS_ROM const float Stereo_dmx_s_wnd_coef_eps_16k[L_FRAME16k * 3 / 4] = { 0.00000000f, 0.000385506690f, 0.000770864717f, 0.00115592557f, 0.00154054083f, 0.00192456215f, 0.00230784155f, 0.00269023119f, 0.00307158381f, 0.00345175178f, 0.00383058959f, 0.00420795102f, 0.00458368938f, 0.00495766103f, 0.00532972161f, 0.00569972629f, 0.00606753491f, 0.00643300405f, 0.00679599261f, 0.00715636183f, @@ -686,6 +687,7 @@ const float Stereo_dmx_s_wnd_coef_eps_48k[L_FRAME48k * 3 / 4] = { -0.00648899190f, -0.00649444433f, -0.00649961829f, -0.00650451379f, -0.00650913082f, -0.00651346892f, -0.00651752809f, -0.00652130833f, -0.00652480870f, -0.00652803015f, -0.00653097173f, -0.00653363345f, -0.00653601484f, -0.00653811684f, -0.00653993897f, -0.00654148031f, -0.00654274225f, -0.00654372340f, -0.00654442422f, -0.00654484471f }; +#endif const float Stereo_dmx_s_wnd_coef_16k[L_FRAME16k >> 4] = { 0.00154133327f, 0.0138150426f, 0.0380602330f, 0.0736799166f, 0.119797014f, 0.175276011f, 0.238750681f, 0.308658302f, 0.383277327f, 0.460770488f, diff --git a/lib_enc/ivas_rom_enc.h b/lib_enc/ivas_rom_enc.h index 7194264225..2a4f71b8b9 100644 --- a/lib_enc/ivas_rom_enc.h +++ b/lib_enc/ivas_rom_enc.h @@ -120,9 +120,11 @@ extern const uint16_t ECSQ_tab_vals[ECSQ_PARAM_COUNT - 1][1 + ECSQ_TAB_VALS_SIZE * Stereo downmix to EVS ROM tables *----------------------------------------------------------------------------------*/ +#ifndef NTT_REMOVE_EPS_ROM extern const float Stereo_dmx_s_wnd_coef_eps_16k[L_FRAME16k * 3 / 4]; extern const float Stereo_dmx_s_wnd_coef_eps_32k[L_FRAME32k * 3 / 4]; extern const float Stereo_dmx_s_wnd_coef_eps_48k[L_FRAME48k * 3 / 4]; +#endif extern const float Stereo_dmx_s_wnd_coef_16k[L_FRAME16k >> 4]; extern const float Stereo_dmx_s_wnd_coef_32k[L_FRAME32k >> 4]; extern const float Stereo_dmx_s_wnd_coef_48k[L_FRAME48k >> 4]; diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index acce4615af..b267cd2e66 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -62,12 +62,18 @@ void ivas_sba_getTCs( const int16_t input_frame /* i : frame length */ ) { +#ifndef SBA_ORDER_BITSTREAM ivas_sba_zero_vert_comp( sba_data, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar, input_frame ); - +#else + ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar, input_frame ); +#endif if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { +#ifndef SBA_ORDER_BITSTREAM st_ivas->nchan_transport = ivas_get_spar_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); - +#else + st_ivas->nchan_transport = ivas_get_spar_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order ); +#endif if ( st_ivas->nchan_transport >= 3 ) { /*convert WYZX downmix to WYXZ*/ @@ -83,7 +89,11 @@ void ivas_sba_getTCs( } else { +#ifndef SBA_ORDER_BITSTREAM st_ivas->nchan_transport = ivas_dirac_getNumTransportChannels( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); +#else + st_ivas->nchan_transport = ivas_dirac_getNumTransportChannels( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#endif ivas_sba_dmx_enc( sba_data, st_ivas->nchan_transport, input_frame ); } @@ -516,9 +526,7 @@ ivas_error ivas_sba_enc_reconfigure( } initMdctStereoEncData( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct, st_ivas->hEncoderConfig->ivas_format, st_ivas->hCPE[st_ivas->nCPE - 1]->element_mode, st_ivas->hCPE[st_ivas->nCPE - 1]->element_brate, st_ivas->hEncoderConfig->max_bwidth, 0, NULL, 1 ); -#ifdef LBR_SBA_CORE_CODING_TUNING - st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->isSBAStereoMode = ( (st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT) && (st_ivas->nchan_transport == 2) ); -#endif + st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->isSBAStereoMode = ( ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); } } } diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index ae9328404d..03e16833e3 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -79,8 +79,11 @@ ivas_error ivas_spar_enc_open( } input_Fs = hEncoderConfig->input_Fs; - +#ifndef SBA_ORDER_BITSTREAM sba_order_internal = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); +#else + sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif nchan_inp = ivas_sba_get_nchan_metadata( sba_order_internal ); assert( nchan_inp <= hEncoderConfig->nchan_inp ); ivas_total_brate = hEncoderConfig->ivas_total_brate; @@ -91,7 +94,11 @@ ivas_error ivas_spar_enc_open( // ivas_set_bitrate_config(&hSpar->hMdEnc->spar_md_cfg, table_idx); /* MD handle */ +#ifndef SBA_ORDER_BITSTREAM if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig ) ) != IVAS_ERR_OK ) +#else + if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig, sba_order_internal ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -142,9 +149,13 @@ ivas_error ivas_spar_enc_open( /*-----------------------------------------------------------------* * Configuration - set SPAR high-level parameters *-----------------------------------------------------------------*/ - +#ifdef SBA_ORDER_BITSTREAM + ivas_spar_config( hEncoderConfig->ivas_total_brate, min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ), + &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &hSpar->core_nominal_brate, -1 ); +#else ivas_spar_config( hEncoderConfig->ivas_total_brate, min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ), &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &hSpar->core_nominal_brate, -1 ); +#endif if ( st_ivas->nchan_transport == 1 ) { @@ -302,7 +313,11 @@ ivas_error ivas_spar_enc( if ( hEncoderConfig->sba_planar ) { +#ifndef SBA_ORDER_BITSTREAM ivas_sba_zero_vert_comp( data_f, hEncoderConfig->sba_order, hEncoderConfig->sba_planar, input_frame ); +#else + ivas_sba_zero_vert_comp( data_f, st_ivas->sba_analysis_order, hEncoderConfig->sba_planar, input_frame ); +#endif } if ( ( error = ivas_spar_enc_process( st_ivas, hEncoderConfig, hMetaData, st_ivas->hSpar->front_vad_flag, data_f ) ) != IVAS_ERR_OK ) @@ -312,7 +327,11 @@ ivas_error ivas_spar_enc( if ( hEncoderConfig->sba_planar ) { +#ifndef SBA_ORDER_BITSTREAM ivas_sba_zero_vert_comp( data_f, hEncoderConfig->sba_order, hEncoderConfig->sba_planar, input_frame ); // TODO tmu: do we need a second call to this function ? +#else + ivas_sba_zero_vert_comp( data_f, st_ivas->sba_analysis_order, hEncoderConfig->sba_planar, input_frame ); // TODO tmu: do we need a second call to this function ? +#endif } *nb_bits_metadata = hMetaData->nb_bits_tot; @@ -438,7 +457,11 @@ static ivas_error ivas_spar_enc_process( num_del_samples = hSpar->hFbMixer->fb_cfg->fb_latency; input_frame = (int16_t) ( input_Fs / FRAMES_PER_SEC ); +#ifndef SBA_ORDER_BITSTREAM sba_order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); +#else + sba_order = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif nchan_inp = ivas_sba_get_nchan_metadata( sba_order ); assert( nchan_inp <= hEncoderConfig->nchan_inp ); @@ -677,9 +700,11 @@ static ivas_error ivas_spar_enc_process( md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); md_in_buf.dtx_vad = dtx_vad; - +#ifndef SBA_ORDER_BITSTREAM ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode ); - +#else + ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); +#endif if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 39f8746004..dc7c3677dd 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -84,7 +84,12 @@ static void ivas_store_prior_coeffs( ivas_spar_md_enc_state_t *hMdEnc, const int static void ivas_write_parameter_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); -static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *pState, const ENCODER_CONFIG_HANDLE hEncoderConfig ); +static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *pState, const ENCODER_CONFIG_HANDLE hEncoderConfig +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif +); static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, float **ppValues, const int16_t ndm, int16_t **ppIndex, const int16_t dim1, float **ppQuant ); @@ -108,22 +113,33 @@ static void ivas_quant_pred_coeffs_per_band( ivas_band_coeffs_t *pband_coeffs, i ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc_in, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig /* i : configuration structure */ +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif ) { ivas_spar_md_enc_state_t *hMdEnc; ivas_error error; +#ifndef SBA_ORDER_BITSTREAM int16_t num_channels, i, j, order; +#else + int16_t num_channels, i, j; +#endif +#ifndef SBA_ORDER_BITSTREAM order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); - +#endif error = IVAS_ERR_OK; if ( ( hMdEnc = (ivas_spar_md_enc_state_t *) count_malloc( sizeof( ivas_spar_md_enc_state_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR MD encoder" ); } - +#ifndef SBA_ORDER_BITSTREAM num_channels = 2 * order + 2; - +#else + num_channels = 2 * sba_order + 2; +#endif if ( ( hMdEnc->spar_md.band_coeffs = (ivas_band_coeffs_t *) count_malloc( IVAS_MAX_NUM_BANDS * sizeof( ivas_band_coeffs_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for band_coeffs in SPAR MD" ); @@ -203,8 +219,11 @@ ivas_error ivas_spar_md_enc_open( } } } - +#ifndef SBA_ORDER_BITSTREAM if ( ( error = ivas_spar_md_enc_init( hMdEnc, hEncoderConfig ) ) != IVAS_ERR_OK ) +#else + if ( ( error = ivas_spar_md_enc_init( hMdEnc, hEncoderConfig, sba_order ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -310,16 +329,22 @@ void ivas_spar_md_enc_close( static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *pState, /* o : MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig /* i : configuration structure */ +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif ) { float pFC[IVAS_MAX_NUM_BANDS]; int16_t table_idx; float PR_minmax[2]; +#ifndef SBA_ORDER_BITSTREAM int16_t sba_order; +#endif int16_t num_channels, i, j, k; - +#ifndef SBA_ORDER_BITSTREAM sba_order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); - +#endif num_channels = ivas_sba_get_nchan_metadata( sba_order ); table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); @@ -559,7 +584,12 @@ ivas_error ivas_spar_md_enc_process( const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ ivas_spar_md_enc_in_buf_t *pIn_buf, BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ - const int16_t dtx_silence_mode ) + const int16_t dtx_silence_mode +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif +) { float pred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; float dm_fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; @@ -568,7 +598,11 @@ ivas_error ivas_spar_md_enc_process( int16_t j, planarCP; int16_t num_bands = pIn_buf->num_bands; int16_t dtx_vad = pIn_buf->dtx_vad; +#ifndef SBA_ORDER_BITSTREAM int16_t active_w, nchan_transport, dmx_switch, strat, sba_order; +#else + int16_t active_w, nchan_transport, dmx_switch, strat; +#endif int16_t nB, bands_bw, packed_ok = 0; ivas_strats_t cs[MAX_CODING_STRATS]; int16_t code_strat; @@ -578,8 +612,9 @@ ivas_error ivas_spar_md_enc_process( float Wscale[IVAS_MAX_NUM_BANDS]; ivas_spar_md_enc_state_t *pState = hMdEnc; int16_t num_quant_strats = pState->spar_md_cfg.num_quant_strats; - +#ifndef SBA_ORDER_BITSTREAM sba_order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); +#endif num_ch = ivas_sba_get_nchan_metadata( sba_order ); active_w = pState->spar_md_cfg.active_w; nchan_transport = pState->spar_md_cfg.nchan_transport; diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 170c03d997..58b6970d58 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -311,9 +311,7 @@ typedef struct stereo_mdct_enc_data_structure int16_t sw_uncorr; -#ifdef LBR_SBA_CORE_CODING_TUNING int16_t isSBAStereoMode; -#endif } STEREO_MDCT_ENC_DATA, *STEREO_MDCT_ENC_DATA_HANDLE; @@ -998,7 +996,6 @@ typedef struct encoder_config_structure int16_t element_mode_init; /* element mode used at initialization */ int16_t stereo_dmx_evs; /* flag to indicate that stereo downmix for EVS encoder */ - int16_t sba_order; /* Ambisonic (SBA) order */ int16_t sba_planar; /* Ambisonic (SBA) planar flag */ MC_LS_SETUP mc_input_setup; /* multichannel input ls setup */ @@ -1043,7 +1040,9 @@ typedef struct /* high-level encoder parameters */ int16_t nchan_transport; /* number of transport channels */ - +#ifdef SBA_ORDER_BITSTREAM + int16_t sba_analysis_order; /*Ambisonic(SBA) order*/ +#endif int16_t codec_mode; /* Mode1 or Mode2 of core codec */ int16_t last_codec_mode; /* previous frame Mode 1 or 2 */ diff --git a/lib_enc/ivas_stereo_dmx_evs.c b/lib_enc/ivas_stereo_dmx_evs.c index af3430766a..409b7b0d56 100644 --- a/lib_enc/ivas_stereo_dmx_evs.c +++ b/lib_enc/ivas_stereo_dmx_evs.c @@ -63,6 +63,8 @@ #define STEREO_DMX_EVS_DMX_EGY_FORGETTING 0.25f #define STEREO_DMX_EVS_CORR_FORGETTING 0.78f +#define Q_BAND 0.25f + /*-----------------------------------------------------------------------* * Local function prototypes *-----------------------------------------------------------------------*/ @@ -150,26 +152,34 @@ static void calc_poc( { int16_t i, n1, n2; int16_t n0, *itdLR; - const float *c, *s; +#ifndef NTT_REMOVE_EPS_ROM + const float *c; +#endif + const float *s; float *P; float tmp1, tmp2, Lr, Li, Rr, Ri, gamma, igamma, iN; float specPOr[L_FRAME48k], specPOi[L_FRAME48k]; float tmpPOC1[L_FRAME48k], tmpPOC2[L_FRAME48k]; float rfft_buf[L_FRAME48k]; int16_t step, bias; +#ifdef NTT_REMOVE_EPS_ROM + int16_t i_for; + int16_t cos_step, cos_max; + float eps_cos, eps_sin, EPS; +#endif /* Initialization */ iN = 1.0f / (float) input_frame; +#ifndef NTT_REMOVE_EPS_ROM c = hPOC->sin + ( input_frame >> 2 ); +#endif s = hPOC->sin; P = hPOC->P; n0 = input_frame / 2; itdLR = hPOC->itdLR; igamma = STEREO_DMX_EVS_POC_GAMMA * iN; gamma = 1.0f - igamma; - set_zero( tmpPOC1, L_FRAME48k ); - set_zero( tmpPOC2, L_FRAME48k ); if ( input_frame == L_FRAME16k ) { @@ -185,6 +195,65 @@ static void calc_poc( specPOr[0] = sign( specLr[0] ) * sign( specRr[0] ) * wnd[bias]; specPOi[0] = 0.0f; +#ifdef NTT_REMOVE_EPS_ROM + EPS = hPOC->eps; + + if ( input_frame == L_FRAME16k ) + { + cos_step = 4; + cos_max = input_frame; + } + else /* for 32 kHz & 48 kHz */ + { + cos_step = 2; + cos_max = n0; + } + + for ( i = 1; i < n0 / 2; i++ ) + { + Lr = specLr[i]; + Li = specLi[i]; + Rr = specRr[i]; + Ri = specRi[i]; + i_for = i * cos_step; + eps_cos = s[cos_max - i_for] * EPS; + eps_sin = s[i_for] * EPS; + Lr += ( specRr[i] * eps_cos + specRi[i] * eps_sin ); + Li += ( -specRr[i] * eps_sin + specRi[i] * eps_cos ); + Rr += ( specLr[i] * eps_cos + specLi[i] * eps_sin ); + Ri += ( -specLr[i] * eps_sin + specLi[i] * eps_cos ); + tmp1 = wnd[i * step + bias] * gamma / ( sqrtf( ( ( Lr * Lr + Li * Li ) ) * ( ( Rr * Rr + Ri * Ri ) ) ) + EPS ); + + specPOr[i] = ( Lr * Rr + Li * Ri ) * tmp1; + specPOi[i] = ( Lr * Ri - Li * Rr ) * tmp1; + + gamma -= igamma; + } + + for ( i = n0 >> 1; i < n0; i++ ) + { + Lr = specLr[i]; + Li = specLi[i]; + Rr = specRr[i]; + Ri = specRi[i]; + + i_for = ( n0 - i ) * cos_step; + eps_cos = s[cos_max - i_for] * EPS; + eps_sin = s[i_for] * EPS; + + Lr += ( -specRr[i] * eps_cos + specRi[i] * eps_sin ); + Li += ( -specRr[i] * eps_sin - specRi[i] * eps_cos ); + Rr += ( -specLr[i] * eps_cos + specLi[i] * eps_sin ); + Ri += ( -specLr[i] * eps_sin - specLi[i] * eps_cos ); + + tmp1 = wnd[i * step + bias] * gamma / ( sqrtf( ( ( Lr * Lr + Li * Li ) ) * ( ( Rr * Rr + Ri * Ri ) ) ) + EPS ); + + specPOr[i] = ( Lr * Rr + Li * Ri ) * tmp1; + specPOi[i] = ( Lr * Ri - Li * Rr ) * tmp1; + gamma -= igamma; + } + // end NTT_REMOVE_EPS_ROM +#else for ( i = 1; i < n0; i++ ) { Lr = specLr[i]; @@ -204,6 +273,8 @@ static void calc_poc( gamma -= igamma; } +#endif // end !NTT_REMOVE_EPS_ROM + specPOr[n0] = sign( specLr[i] ) * sign( specRr[i] ) * wnd[i * step + bias] * gamma; rfft_buf[0] = specPOr[0]; @@ -305,7 +376,7 @@ static float find_poc_peak( itd_cand[0] = itd_cand[1] = 0; P = hPOC->P; - for ( i = 1; i < hPOC->shift_limit; i++ ) + for ( i = 1; i < hPOC->shift_limit; i++ ) /*find peaks of POC P[] with positive and negative ITD */ { if ( P[Lh - i] > Q[0] ) { @@ -340,7 +411,7 @@ static float find_poc_peak( Q[n] = ( 1.0f - ( cQ[n] / ( peak_range * 2 + 1 ) + eps2 ) / ( Q[n] + eps2 ) ); Q[n] = max( Q[n], 0.0f ); - if ( on[n] ) + if ( on[n] ) /*if channel n was active (likely to be preceding) in the previous frame*/ { tmpf = ( 0.3f - 0.2f * (float) abs( itd_cand[n] ) / (float) hPOC->shift_limit ) * peakQ[n]; if ( Q[n] < tmpf ) @@ -357,7 +428,7 @@ static float find_poc_peak( peakQ[n] = max( peakQ[n], Q[n] ); } - else + else /*if channel n was not active (not likely to be preceding) in the previous frame*/ { tmpf = ( 0.75f - 0.2f * (float) abs( itd_cand[n] ) / (float) hPOC->shift_limit ); @@ -374,6 +445,7 @@ static float find_poc_peak( } } +#ifndef NTT_UPDATE_ITD_SW if ( on[0] && prev_off[0] ) { *itd = (float) itdLR[0]; @@ -386,8 +458,38 @@ static float find_poc_peak( { *itd = ( *itd > 0 ) ? (float) itdLR[0] : (float) itdLR[1]; } +#else + if ( ( on[0] && prev_off[0] ) && ( on[1] && prev_off[1] ) ) /*if both channels have newly detected as active (possibility of preceding), select channel by peakness Q[] of POC */ + { + *itd = ( Q[0] > Q[1] ) ? (float) itdLR[0] : (float) itdLR[1]; + } + else if ( ( on[0] && prev_off[0] ) && ( Q[0] > ( Q[1] - 0.1 ) ) ) /* if channel 0 becomes active, select channel 0*/ + { + *itd = (float) itdLR[0]; + } + else if ( ( on[1] && prev_off[1] ) && ( Q[1] > ( Q[0] - 0.1 ) ) ) /*if channel 1 becomes active, selsect channel 1*/ + { + *itd = (float) itdLR[1]; + } + else if ( Q[0] > ( Q[1] + Q_BAND ) ) /* if no status change, use Q[]*/ + { + *itd = (float) itdLR[0]; + } + else if ( Q[1] > ( Q[0] + Q_BAND ) ) /* if no status change, use Q[]*/ + { + *itd = (float) itdLR[1]; + } + else if ( *itd == 0.0 ) /*if no channels are likely to be preceding, follow the status of the previous frame*/ + { + *itd = 0; + } + else /*follow the status of the previous frame*/ + { + *itd = ( *itd > 0 ) ? (float) itdLR[0] : (float) itdLR[1]; + } +#endif - cconfidence = sqrtf( fabsf( Q[0] - Q[1] ) ); + cconfidence = sqrtf( fabsf( Q[0] - Q[1] ) ); /*higher value indicates higher confidence for one preceding channel*/ return hPOC->confidence = hPOC->confidence * STEREO_DMX_EVS_CORR_FORGETTING + cconfidence * ( 1.0f - STEREO_DMX_EVS_CORR_FORGETTING ); } @@ -766,6 +868,24 @@ ivas_error stereo_dmx_evs_init_encoder( } hStereoDmxEVS->hPOC->eps = 2.0f * EVS_PI / ( (float) input_frame ); +#ifdef NTT_REMOVE_EPS_ROM + if ( input_frame == L_FRAME16k ) + { + hStereoDmxEVS->hPOC->sin = dft_trigo_32k; + } + else if ( input_frame == L_FRAME32k ) + { + hStereoDmxEVS->hPOC->sin = dft_trigo_32k; + } + else if ( input_frame == L_FRAME48k ) + { + hStereoDmxEVS->hPOC->sin = dft_trigo_48k; + } + else + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "invalid frame length\n" ); + } +#else if ( input_frame == L_FRAME16k ) { hStereoDmxEVS->hPOC->sin = Stereo_dmx_s_wnd_coef_eps_16k; @@ -782,6 +902,8 @@ ivas_error stereo_dmx_evs_init_encoder( { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "invalid frame length\n" ); } +#endif + hStereoDmxEVS->hPOC->confidence = 0.0f; *hStereoDmxEVS_out = hStereoDmxEVS; diff --git a/lib_enc/ivas_stereo_mdct_core_enc.c b/lib_enc/ivas_stereo_mdct_core_enc.c old mode 100755 new mode 100644 index 00a47e3706..c41df7b24e --- a/lib_enc/ivas_stereo_mdct_core_enc.c +++ b/lib_enc/ivas_stereo_mdct_core_enc.c @@ -253,9 +253,7 @@ void stereo_mdct_core_enc( /*--------------------------------------------------------------* * Stereo Processing *---------------------------------------------------------------*/ -#ifdef LBR_SBA_CORE_CODING_TUNING if ( !hStereoMdct->isSBAStereoMode ) -#endif { stereo_coder_tcx( hStereoMdct, sts, ms_mask, mdst_spectrum, inv_spectrum, inv_mdst_spectrum, 0 ); } @@ -350,11 +348,8 @@ void stereo_mdct_core_enc( for ( n = 0; n < nSubframes; n++ ) { if ( ( hStereoMdct->mdct_stereo_mode[n] != hStereoMdct->IGFStereoMode[n] || - hStereoMdct->mdct_stereo_mode[n] == SMDCT_BW_MS ) -#ifdef LBR_SBA_CORE_CODING_TUNING - && !hStereoMdct->isSBAStereoMode -#endif - ) + hStereoMdct->mdct_stereo_mode[n] == SMDCT_BW_MS ) && + !hStereoMdct->isSBAStereoMode ) { ProcessStereoIGF( hStereoMdct, sts, ms_mask, orig_spectrum, powerSpec, powerSpecMsInv, inv_spectrum, n, hCPE->hCoreCoder[0]->sp_aud_decision0, hCPE->hCoreCoder[0]->element_brate, 0 ); } @@ -402,18 +397,14 @@ void stereo_mdct_core_enc( /* correct side bits per channel*/ sts[0]->side_bits_frame_channel -= SMDCT_NBBITS_SPLIT_RATIO; -#ifdef LBR_SBA_CORE_CODING_TUNING if ( !hStereoMdct->isSBAStereoMode ) -#endif { stereo_bits = write_stereo_to_bitstream( hStereoMdct, sts, ms_mask, 0, hBstr ); } -#ifdef LBR_SBA_CORE_CODING_TUNING else { stereo_bits = 0; } -#endif /*--------------------------------------------------------------* * Split available bits between channels *---------------------------------------------------------------*/ @@ -429,11 +420,7 @@ void stereo_mdct_core_enc( nAvailBits -= meta_bits; nAvailBits -= SMDCT_NBBITS_SPLIT_RATIO; -#ifdef LBR_SBA_CORE_CODING_TUNING splitAvailableBits( nAvailBits, hStereoMdct->split_ratio, hStereoMdct->isSBAStereoMode, &sts[0]->bits_frame_channel, &sts[1]->bits_frame_channel ); -#else - splitAvailableBits( nAvailBits, hStereoMdct->split_ratio, &sts[0]->bits_frame_channel, &sts[1]->bits_frame_channel ); -#endif #ifdef DEBUG_MODE_MDCT dbgwrite( &nAvailBits, sizeof( int16_t ), 1, 1, "./res/nAvailBits" ); #endif diff --git a/lib_enc/ivas_stereo_switching_enc.c b/lib_enc/ivas_stereo_switching_enc.c index 8654299545..9075d73595 100644 --- a/lib_enc/ivas_stereo_switching_enc.c +++ b/lib_enc/ivas_stereo_switching_enc.c @@ -223,10 +223,8 @@ ivas_error stereo_memory_enc( const int16_t max_bwidth, /* i : maximum audio bandwidth */ float *tdm_last_ratio, /* o : TD stereo last ratio */ const IVAS_FORMAT ivas_format /* i : ivas format */ -#ifdef LBR_SBA_CORE_CODING_TUNING , const int16_t nchan_transport /* i : number transport chans */ -#endif ) { Encoder_State *st; @@ -540,9 +538,7 @@ ivas_error stereo_memory_enc( #endif initMdctStereoEncData( hCPE->hStereoMdct, ivas_format, hCPE->element_mode, hCPE->element_brate, hCPE->hCoreCoder[0]->max_bwidth, 0, NULL, 1 ); -#ifdef LBR_SBA_CORE_CODING_TUNING - hCPE->hStereoMdct->isSBAStereoMode = ( (ivas_format == SBA_FORMAT) && (nchan_transport == 2) ); -#endif + hCPE->hStereoMdct->isSBAStereoMode = ( ( ivas_format == SBA_FORMAT ) && ( nchan_transport == 2 ) ); if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_format == STEREO_FORMAT ) { diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 760ae0d353..b9d4dde032 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -460,10 +460,8 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( hEncoderConfig->element_mode_init = IVAS_SCE; /* Just needs to be something not mono, will be set later */ hEncoderConfig->sba_planar = isPlanar; hEncoderConfig->sba_order = order; - /* Input in ACN/SN3D in all cases (3D and planar): get number of channels */ hEncoderConfig->nchan_inp = ivas_sba_get_nchan( hEncoderConfig->sba_order, 0 ); /*planar input arg. deliberately set to zero since input always in ACN/SN3D*/ - hEncoderConfig->Opt_AGC_ON = (int16_t) Opt_AGC_ON; hEncoderConfig->Opt_PCA_ON = (int16_t) Opt_PCA_ON; @@ -641,7 +639,9 @@ static ivas_error configureEncoder( st_ivas = hIvasEnc->st_ivas; hEncoderConfig = st_ivas->hEncoderConfig; - +#ifdef SBA_ORDER_BITSTREAM + st_ivas->sba_analysis_order = hEncoderConfig->sba_order; +#endif /*-----------------------------------------------------------------* * Bandwidth limitation *-----------------------------------------------------------------*/ @@ -776,7 +776,11 @@ static ivas_error configureEncoder( { /* set SBA order to 1 for bit rates below 256kbps for correct handling of input with higher order */ /* IVAS_fmToDo: needs more work in case of bitrate switching */ +#ifndef SBA_ORDER_BITSTREAM hEncoderConfig->sba_order = 1; +#else + st_ivas->sba_analysis_order = 1; +#endif } } else if ( hEncoderConfig->ivas_format == MASA_FORMAT ) @@ -882,8 +886,11 @@ static ivas_error configureEncoder( { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "AGC supported in SBA format at bitrates >= 24.4 kbps only." ); } - +#ifndef SBA_ORDER_BITSTREAM if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && hEncoderConfig->sba_order == 1 ) ) +#else + if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && st_ivas->sba_analysis_order == 1 ) ) +#endif { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "PCA supported at SBA FOA 256 kbps only." ); } diff --git a/lib_rend/ivas_output_init.c b/lib_rend/ivas_output_init.c index c21cbafda3..fcaa6f9442 100644 --- a/lib_rend/ivas_output_init.c +++ b/lib_rend/ivas_output_init.c @@ -263,7 +263,7 @@ void ivas_renderer_select( AUDIO_CONFIG output_config; AUDIO_CONFIG transport_config; - #ifdef FIX_I87 +#ifdef FIX_I87 int16_t nchan_internal; #endif @@ -361,7 +361,11 @@ void ivas_renderer_select( { #ifdef FIX_I87 +#ifdef SBA_ORDER_BITSTREAM + nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); +#else nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); +#endif if ( nchan_internal == 2 ) { st_ivas->hHeadTrackData->shd_rot_max_order = 1; diff --git a/lib_rend/ivas_sba_rendering.c b/lib_rend/ivas_sba_rendering.c index dbcec392a5..03db2203c9 100644 --- a/lib_rend/ivas_sba_rendering.c +++ b/lib_rend/ivas_sba_rendering.c @@ -274,7 +274,11 @@ int16_t ivas_sba_remapTCs( if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { +#ifndef SBA_ORDER_BITSTREAM ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_order, st_ivas->sba_planar, output_frame ); +#else + ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->sba_planar, output_frame ); +#endif } return ( nchan_remapped ); } diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index b62ff9490b..ce35e8019d 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -98,6 +98,9 @@ struct IVAS_REND /* =========== limiter handle =========== */ IVAS_LIMITER_HANDLE hLimiter; +#ifdef DEBUGGING + int32_t numClipping; /* Counter of clipped output samples */ +#endif /* Ambisonics decoding matrix */ float *ambi_dec_mtx; @@ -272,7 +275,7 @@ static void getHoaDecVecForAmbiChnl( const float *decMtx, float *decCoeffs ); -static void ivas_limiter_renderer( +static int32_t ivas_limiter_renderer( IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ float *output, /* i/o: I/O buffer */ const int16_t output_frame, /* i : number of samples per channel in the buffer */ @@ -324,6 +327,9 @@ IVAS_REND_HANDLE IVAS_REND_Open() st->enableHeadRotation = 0; st->rendererConfigEnabled = 0; st->forceBinLfeLpf = 0; +#ifdef DEBUGGING + st->numClipping = 0; +#endif for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) { @@ -1011,6 +1017,9 @@ void IVAS_REND_Render( } /* Apply limiting in place */ +#ifdef DEBUGGING + st->numClipping += +#endif ivas_limiter_renderer( st->hLimiter, outAudio.data, @@ -1295,6 +1304,27 @@ ivas_error IVAS_REND_GetDelay( return IVAS_ERR_OK; } +#ifdef DEBUGGING +int32_t IVAS_REND_GetNoCLipping( + IVAS_REND_HANDLE st /* i : Renderer state */ +) +{ + return st->numClipping; +} + +int32_t IVAS_REND_GetCntFramesLimited( + IVAS_REND_HANDLE st /* i : Renderer state */ +) +{ + if (st->hLimiter == NULL) + { + return 0; + } + + return st->hLimiter->cnt_frames_limited; +} +#endif + /* ============================= Local functions ============================ */ static float *get_smpl_ptr( IVAS_REND_AudioBuffer buffer, uint32_t chnlIdx, uint32_t smplIdx ) { @@ -2355,8 +2385,17 @@ static void prepareLfeHandling( } /* Low-pass filter */ - ivas_lfe_lpf_select_filt_coeff( st->sampleRate, IVAS_FILTER_ORDER_4, &filtCoeff ); - ivas_filters_init( &st->lfeLpFilter, filtCoeff, IVAS_FILTER_ORDER_4 ); + /* TODO: More discussion needed on LFE filtering: + - introduces delay + - introduces phase shift + + Should we do any filtering? + */ + if (st->forceBinLfeLpf) + { + ivas_lfe_lpf_select_filt_coeff( st->sampleRate, IVAS_FILTER_ORDER_4, &filtCoeff ); + ivas_filters_init( &st->lfeLpFilter, filtCoeff, IVAS_FILTER_ORDER_4 ); + } #ifdef WMOPS wmops_sub_end(); @@ -3056,35 +3095,51 @@ void getHoaDecVecForAmbiChnl( * ivas_limiter_renderer() * * In-place saturation control for multichannel buffers with adaptive release time + * + * r: number of clipped output samples *-------------------------------------------------------------------*/ -static void ivas_limiter_renderer( +static int32_t ivas_limiter_renderer( IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ float *output, /* i/o: I/O buffer */ const int16_t output_frame, /* i : number of samples per channel in the buffer */ const float threshold /* i : signal amplitude above which limiting starts to be applied */ ) { - int16_t c; + int16_t i; float **channels; int16_t num_channels; + uint32_t numClipping = 0; /* return early if given bad parameters */ if ( hLimiter == NULL || output == NULL || output_frame <= 0 ) { - return; + return 0; } channels = hLimiter->channel_ptrs; num_channels = hLimiter->num_channels; - for ( c = 0; c < num_channels; ++c ) + for ( i = 0; i < num_channels; ++i ) { - channels[c] = output + c * output_frame; + channels[i] = output + i * output_frame; } limiter_process( hLimiter, output_frame, threshold, 0, NULL ); - return; + /* Apply clipping to buffer in case the limiter let through some samples > 1.0f */ + for ( i = 0; i < output_frame * num_channels; ++i ) + { +#ifdef DEBUGGING + if ( output[i] > 1.0f || output[i] < -1.0f ) + { + ++numClipping; + } +#endif + + output[i] = min( max( -1.0f, output[i] ), 1.0f ); + } + + return numClipping; } static float dBToLin( const float gain_dB ) diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 6c5ae79fa4..dfcf0ec57a 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -237,6 +237,17 @@ int16_t IVAS_REND_GetOutChannels( void IVAS_REND_Close( IVAS_REND_HANDLE* st /* i : Renderer state */ ); + +#ifdef DEBUGGING +int32_t IVAS_REND_GetNoCLipping( + IVAS_REND_HANDLE st /* i : Renderer state */ +); + +int32_t IVAS_REND_GetCntFramesLimited( + IVAS_REND_HANDLE st /* i : Renderer state */ +); +#endif + /* clang-format on */ #endif /* LIB_REND_H */ diff --git a/scripts/cut_bs.py b/scripts/cut_bs.py new file mode 100755 index 0000000000..261a66bc9f --- /dev/null +++ b/scripts/cut_bs.py @@ -0,0 +1,122 @@ +#!/usr/bin/env python3 + +""" + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +import struct +import argparse +import os.path +import sys + +SID_BITS = {35, 48, 88, 100} +SYNC_WORDS = {b"!k", b" k"} + + +def cut_bs(fp, fp_out, start_frame=0, start_with_sid=False): + # cut until start frame + fr_cnt = 0 + cut_cnt = 0 + for cur_frame in range(start_frame): + sync_word = fp.read(2) + if sync_word == b"": + return (fr_cnt, cut_cnt) + if sync_word not in SYNC_WORDS: + raise ValueError("Bad Sync word!") + n_bits = struct.unpack("h", fp.read(2))[0] + fp.read(n_bits * 2) + fr_cnt += 1 + cut_cnt += 1 + if start_with_sid: + found = False + while not found: + sync_word = fp.read(2) + if sync_word == b"": + return (fr_cnt, cut_cnt) + if sync_word not in SYNC_WORDS: + raise ValueError("Bad Sync word!") + n_bits_bs = fp.read(2) + n_bits = struct.unpack("h", n_bits_bs)[0] + if n_bits in SID_BITS: + found = True + fp_out.write(sync_word) + fp_out.write(n_bits_bs) + fp_out.write(fp.read(n_bits * 2)) + else: + fp.read(n_bits * 2) + cut_cnt += 1 + fr_cnt += 1 + + # transfer remaining frames + while True: + sync_word = fp.read(2) + if sync_word == b"": + break + if sync_word not in SYNC_WORDS: + raise ValueError("Bad Sync word!") + n_bits_bs = fp.read(2) + n_bits = struct.unpack("h", n_bits_bs)[0] + fp_out.write(sync_word) + fp_out.write(n_bits_bs) + fp_out.write(fp.read(n_bits * 2)) + fr_cnt += 1 + + return (fr_cnt, cut_cnt) + + +if __name__ == "__main__": + my_parser = argparse.ArgumentParser( + description="Cut frames from the beginning of a G.192 bit stream file" + ) + my_parser.add_argument( + "--sid", "-s", help="Cut until the first SID frame", action="store_true" + ) + my_parser.add_argument( + "--frame", "-f", type=int, help="Number of frames to cut.", default=0 + ) + my_parser.add_argument("bs_in", type=str, help="G.192 bit stream file name to cut") + my_parser.add_argument("bs_out", type=str, help="Cut G.192 bit stream file name") + my_args = my_parser.parse_args() + if not os.path.exists(os.path.realpath(my_args.bs_in)): + print(f"\nInput file {my_args.bs_in} does not exist!") + sys.exit(-1) + if not os.path.exists(os.path.realpath(my_args.bs_out)): + print(f"\nOutput file {my_args.bs_out} does not exist, creating it!") + else: + print(f"\nOutput file {my_args.bs_out} does exist, overwriting it!") + + with open(my_args.bs_in, "rb") as fp_in: + with open(my_args.bs_out, "wb") as fp_out: + fr_cnt, cut_cnt = cut_bs( + fp_in, fp_out, start_frame=my_args.frame, start_with_sid=my_args.sid + ) + + if my_args.sid and (fr_cnt == cut_cnt): + print("Warning! No SID frame found in bitstream!") + print(f"Cut {cut_cnt} of {fr_cnt} frames from {my_args.bs_in}") diff --git a/scripts/pyivastest/IvasScriptsCommon.py b/scripts/pyivastest/IvasScriptsCommon.py index 7e84efc215..45631566e9 100644 --- a/scripts/pyivastest/IvasScriptsCommon.py +++ b/scripts/pyivastest/IvasScriptsCommon.py @@ -596,7 +596,7 @@ def runner_setup(runner, args): if args["sidstart"]: sidstart_cmd = [ - os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "cut_bs.py"), + os.path.join(constants.SCRIPTS_BASE_DIR, "cut_bs.py"), "--sid", "{in_file}", "{out_file}", @@ -686,7 +686,7 @@ def analyzer_setup(analyzer, args): if args["sidstart"]: sidstart_cmd = [ - os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "cut_bs.py"), + os.path.join(constants.SCRIPTS_BASE_DIR, "cut_bs.py"), "--sid", "{in_file}", "{out_file}", -- GitLab From 4ac16bb1b5a3353a928ae5dd87334386a4effb2c Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 31 Aug 2022 14:43:50 +0200 Subject: [PATCH 041/479] do correct scalign also for tonal PLC --- lib_com/prot.h | 1 + lib_dec/dec_tcx.c | 4 ++-- lib_dec/stat_dec.h | 2 +- lib_dec/tonalMDCTconcealment.c | 26 ++++++++++++++++++++++++-- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/lib_com/prot.h b/lib_com/prot.h index 0b16926f32..f5d7eb5ef3 100644 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -9571,6 +9571,7 @@ void TonalMDCTConceal_InsertNoise( const float crossfadeGain, #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const float concealment_noise[L_FRAME48k], + const float cngLevelBackgroundTrace_bfi, #endif const int16_t crossOverFreq ); diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index c29638cbe7..ae647f21d0 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1316,11 +1316,11 @@ void decoder_tcx_noisefilling( #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) { - TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, infoIGFStartLine ); + TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, st->hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); } else { - TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, NULL, infoIGFStartLine ); + TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, NULL, hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); } #else TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, infoIGFStartLine ); diff --git a/lib_dec/stat_dec.h b/lib_dec/stat_dec.h index 0afc05562b..0c7a836cb4 100644 --- a/lib_dec/stat_dec.h +++ b/lib_dec/stat_dec.h @@ -208,12 +208,12 @@ typedef struct float scaleFactorsBackground[FDNS_NPTS]; float scf_fadeout; PsychoacousticParameters *psychParams; - /* could be stored only once, since the same for all channels (always at 16Khz fs) */ PsychoacousticParameters psychParamsTCX20; PsychoacousticParameters psychParamsTCX10; float last_block_nrg; float curr_noise_nrg; + float faded_signal_nrg; #endif float nFramesLost; diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 63b2849d6e..8bb2c118c1 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -102,6 +102,7 @@ ivas_error TonalMDCTConceal_Init( hTonalMDCTConc->last_block_nrg = 0.0f; hTonalMDCTConc->curr_noise_nrg = 0.0f; + hTonalMDCTConc->faded_signal_nrg = 0.0f; #endif /* Offset the pointer to the end of buffer, so that pTCI is not destroyed when @@ -503,6 +504,7 @@ void TonalMDCTConceal_InsertNoise( const float crossfadeGain, #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const float concealment_noise[L_FRAME48k], + const float cngLevelBackgroundTrace_bfi, #endif const int16_t crossOverFreq ) { @@ -510,6 +512,9 @@ void TonalMDCTConceal_InsertNoise( float x, y; Word16 rnd; float g, nrgNoiseInLastFrame, nrgWhiteNoise, tiltFactor, tilt; +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + float last_block_nrg_correct; +#endif wmops_sub_start( "InsertNoise" ); @@ -534,6 +539,8 @@ void TonalMDCTConceal_InsertNoise( tilt = 1.0f; nrgNoiseInLastFrame = 0.0f; nrgWhiteNoise = 0.0f; + hTonalMDCTConc->faded_signal_nrg = 0.0f; + last_block_nrg_correct = 0.0f; #endif if ( !hTonalMDCTConc->lastBlockData.blockIsValid ) @@ -569,7 +576,7 @@ void TonalMDCTConceal_InsertNoise( /* actual fadeout is done in this case */ else { - g *= (float) sqrt( hTonalMDCTConc->last_block_nrg / hTonalMDCTConc->curr_noise_nrg ); + g *= (float) sqrt( cngLevelBackgroundTrace_bfi / hTonalMDCTConc->curr_noise_nrg ); for ( i = 0; i < crossOverFreq; i++ ) { @@ -584,6 +591,8 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[i] = g * y - crossfadeGain * x; } + + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[i] * mdctSpectrum[i]; } for ( l = crossOverFreq; l < hTonalMDCTConc->lastBlockData.nSamples; l++ ) { @@ -603,7 +612,9 @@ void TonalMDCTConceal_InsertNoise( { for ( l = hTonalMDCTConc->pTCI->lowerIndex[i]; l <= hTonalMDCTConc->pTCI->upperIndex[i]; l++ ) { + last_block_nrg_correct += hTonalMDCTConc->lastBlockData.spectralData[l] * hTonalMDCTConc->lastBlockData.spectralData[l]; mdctSpectrum[l] = 0; + hTonalMDCTConc->curr_noise_nrg -= concealment_noise[l] * concealment_noise[l]; } } @@ -656,7 +667,7 @@ void TonalMDCTConceal_InsertNoise( /* actual fadeout is done in this case */ else { - g *= (float) sqrt( hTonalMDCTConc->last_block_nrg / hTonalMDCTConc->curr_noise_nrg ); + g *= (float) sqrt( cngLevelBackgroundTrace_bfi / hTonalMDCTConc->curr_noise_nrg ); for ( l = 0; l < hTonalMDCTConc->pTCI->lowerIndex[0]; l++ ) { @@ -671,6 +682,7 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[i] * mdctSpectrum[i]; } for ( i = 1; i < hTonalMDCTConc->pTCI->numIndexes; i++ ) { @@ -687,6 +699,7 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[i] * mdctSpectrum[i]; } } @@ -703,6 +716,7 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[i] * mdctSpectrum[i]; } for ( l = crossOverFreq; l < hTonalMDCTConc->lastBlockData.nSamples; l++ ) @@ -711,6 +725,14 @@ void TonalMDCTConceal_InsertNoise( } } } + + if ( hTonalMDCTConc->faded_signal_nrg > 0.0f ) + { + float nrg_corr_factor; + + nrg_corr_factor = sqrtf( ( hTonalMDCTConc->last_block_nrg - last_block_nrg_correct ) / hTonalMDCTConc->faded_signal_nrg ); + v_multc( mdctSpectrum, nrg_corr_factor, mdctSpectrum, crossOverFreq ); + } } #endif else -- GitLab From 0d2980c4704e22002f19dc5d1127512fe506ef1e Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 31 Aug 2022 15:07:18 +0200 Subject: [PATCH 042/479] no nrg correction when noise level is at min --- lib_com/ivas_cnst.h | 1 + lib_dec/tonalMDCTconcealment.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 408984f319..84f6b11316 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -801,6 +801,7 @@ enum fea_names #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ #define MDCT_ST_PLC_FADEOUT_START_FRAME 3 +#define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f typedef enum { EQUAL_CORES, diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 8bb2c118c1..f10c7985a4 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -726,7 +726,7 @@ void TonalMDCTConceal_InsertNoise( } } - if ( hTonalMDCTConc->faded_signal_nrg > 0.0f ) + if ( hTonalMDCTConc->faded_signal_nrg > 0.0f && hTonalMDCTConc->curr_noise_nrg > MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG ) { float nrg_corr_factor; @@ -1098,7 +1098,7 @@ void TonalMdctConceal_create_concealment_noise( } /* fill the noise vector */ - hTonalMDCTConc->curr_noise_nrg = 0.001f; + hTonalMDCTConc->curr_noise_nrg = MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG; if ( noise_gen_mode == EQUAL_CORES || ( ( noise_gen_mode == TCX20_IN_0_TCX10_IN_1 && idchan == 0 ) || ( noise_gen_mode == TCX10_IN_0_TCX20_IN_1 && idchan == 1 ) ) ) { /* current channel is TCX20 -> generate noise for "full-length" spectrum */ -- GitLab From bf1bf0477064aac37ce267baa54fe5131e50b0df Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 1 Sep 2022 10:34:35 +0200 Subject: [PATCH 043/479] only calculate energy correction on lines below IGF starting freq --- lib_dec/tonalMDCTconcealment.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index f10c7985a4..2c29e955c4 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -612,9 +612,12 @@ void TonalMDCTConceal_InsertNoise( { for ( l = hTonalMDCTConc->pTCI->lowerIndex[i]; l <= hTonalMDCTConc->pTCI->upperIndex[i]; l++ ) { - last_block_nrg_correct += hTonalMDCTConc->lastBlockData.spectralData[l] * hTonalMDCTConc->lastBlockData.spectralData[l]; mdctSpectrum[l] = 0; - hTonalMDCTConc->curr_noise_nrg -= concealment_noise[l] * concealment_noise[l]; + if ( l < crossOverFreq ) + { + last_block_nrg_correct += hTonalMDCTConc->lastBlockData.spectralData[l] * hTonalMDCTConc->lastBlockData.spectralData[l]; + hTonalMDCTConc->curr_noise_nrg -= concealment_noise[l] * concealment_noise[l]; + } } } -- GitLab From a94ea3b837207440cb977eb87b5d50026293a1bb Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 1 Sep 2022 11:02:05 +0200 Subject: [PATCH 044/479] Switch to using float range INT16_MIN:INT16_MAX --- apps/renderer.c | 105 ++++++++++++++++++++++++++++++++------------ lib_rend/lib_rend.c | 4 +- 2 files changed, 78 insertions(+), 31 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index 8197b05bd8..c8d1ee7bd6 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -293,6 +293,17 @@ static void convert_backslash( static void remove_cr( char *str ); +static void convertInputBuffer( const int16_t *intBuffer, + int32_t numIntSamplesPerChannel, /* Number of samples per channel in the int buffer */ + int32_t numFloatSamplesPerChannel, /* Per-channel length of the float buffer. If > numIntSamplesPerChannel, remaining samples will be set to 0. */ + int32_t numChannels, + float *floatBuffer ); + +static void convertOutputBuffer( const float *floatBuffer, + int32_t numSamplesPerChannel, + int32_t numChannels, + int16_t *intBuffer ); + /* ============================================================================ */ @@ -475,10 +486,8 @@ int32_t main( int32_t argc, char **argv ) while ( 1 ) { - int32_t chnl, smpl; int32_t num_in_channels; num_in_channels = inBuffer.config.numChannels; - i = 0; /* Read the input data */ if ( ( error = AudioFileReader_read( audioReader, inpInt16Buffer, inBufferSize, &numSamplesRead ) ) != IVAS_ERR_OK ) @@ -494,22 +503,7 @@ int32_t main( int32_t argc, char **argv ) } /* Convert from int to float and from interleaved to packed */ - for ( smpl = 0; smpl < frameSize_smpls; ++smpl ) - { - for ( chnl = 0; chnl < num_in_channels; ++chnl ) - { - if ( i < numSamplesRead ) - { - inFloatBuffer[chnl * frameSize_smpls + smpl] = (float) inpInt16Buffer[i] / INT16_MAX; - } - else - { - inFloatBuffer[chnl * frameSize_smpls + smpl] = 0.f; - } - - ++i; - } - } + convertInputBuffer( inpInt16Buffer, numSamplesRead, frameSize_smpls, num_in_channels, inFloatBuffer ); if ( masaReader != NULL ) { @@ -537,18 +531,10 @@ int32_t main( int32_t argc, char **argv ) int32_t num_out_channels; num_out_channels = outBuffer.config.numChannels; - i = 0; - /* Convert from float to int and from packed to interleaved */ - for ( smpl = 0; smpl < frameSize_smpls; ++smpl ) - { - for ( chnl = 0; chnl < num_out_channels; ++chnl ) - { - outInt16Buffer[i] = (int16_t) ( outFloatBuffer[chnl * frameSize_smpls + smpl] * INT16_MAX ); - - ++i; - } - } + /* Convert from float to int and from packed to interleaved. + * Values in outFloatBuffer are guaranteed to be within range INT16_MIN:INT16_MAX */ + convertOutputBuffer( outFloatBuffer, frameSize_smpls, num_out_channels, outInt16Buffer ); /* TODO tmu : delay compensation not finalized yet */ if ( delayNumSamples == -1 ) @@ -2064,3 +2050,64 @@ static void remove_cr( char *str ) return; } + +/*--------------------------------------------------------------------------* + * convertInputBuffer() + * + * Convert input buffer from WAV/PCM file (int16_t, interleaved) to a format + * accepted by the renderer (float, packed) + *--------------------------------------------------------------------------*/ +static void convertInputBuffer( const int16_t *intBuffer, + int32_t numIntSamplesPerChannel, + int32_t numFloatSamplesPerChannel, + int32_t numChannels, + float *floatBuffer ) +{ + int32_t chnl, smpl, i; + + i = 0; + + + for ( smpl = 0; smpl < numFloatSamplesPerChannel; ++smpl ) + { + for ( chnl = 0; chnl < numChannels; ++chnl ) + { + if ( i < numIntSamplesPerChannel ) + { + floatBuffer[chnl * numFloatSamplesPerChannel + smpl] = (float) intBuffer[i]; + } + else + { + floatBuffer[chnl * numFloatSamplesPerChannel + smpl] = 0.f; + } + + ++i; + } + } +} + +/*--------------------------------------------------------------------------* + * convertOutputBuffer() + * + * Convert output buffer from the renderer (float, packed) to a format ready + * for writing to a WAV/PCM file (int16_t, interleaved) + *--------------------------------------------------------------------------*/ +static void convertOutputBuffer( const float *floatBuffer, + int32_t numSamplesPerChannel, + int32_t numChannels, + int16_t *intBuffer ) +{ + int32_t chnl, smpl, i; + + i = 0; + + for ( smpl = 0; smpl < numSamplesPerChannel; ++smpl ) + { + for ( chnl = 0; chnl < numChannels; ++chnl ) + { + intBuffer[i] = (int16_t) roundf( floatBuffer[chnl * numSamplesPerChannel + smpl] ); + + ++i; + } + } +} diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index ce35e8019d..9658883460 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -46,7 +46,7 @@ #include -#define LIMITER_THRESHOLD 0.9988493699f /* -0.01 dBFS */ +#define LIMITER_THRESHOLD ( 0.9988493699f * INT16_MAX ) /* -0.01 dBFS */ /* Due to API of some rendering methods, the renderer has to use the decoder struct. Only struct members relevant for rendering will be initialized, therefore typedef as "dummy" decoder struct */ @@ -3136,7 +3136,7 @@ static int32_t ivas_limiter_renderer( } #endif - output[i] = min( max( -1.0f, output[i] ), 1.0f ); + output[i] = min( max( INT16_MIN, output[i] ), INT16_MAX ); } return numClipping; -- GitLab From ff7a8064923d9c8218092df671c5ff3d5fa48e6c Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 1 Sep 2022 11:21:49 +0200 Subject: [PATCH 045/479] fix asan error --- lib_dec/tonalMDCTconcealment.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 2c29e955c4..20f80e2826 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -1155,6 +1155,7 @@ void TonalMdctConceal_whiten_noise_shape( float *noiseLevelPtr, *scfs_bg, *scfs_for_shaping; PsychoacousticParameters **psychParams; HANDLE_FD_CNG_COM hFdCngCom; + float scfs_int[FDNS_NPTS]; wmops_sub_start( "apply_sns_on_noise_shape" ); @@ -1176,7 +1177,6 @@ void TonalMdctConceal_whiten_noise_shape( if ( whitening_mode == ON_FIRST_LOST_FRAME ) { float scf[SNS_NPTS]; - float scfs_int[FDNS_NPTS]; sns_compute_scf( whitenend_noise_shape, *psychParams, L_frame, scf ); sns_interpolate_scalefactors( scfs_int, scf, ENC ); -- GitLab From 1fa6ffe1e64e2e6d15e27eae488a0e570e7b1814 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 1 Sep 2022 14:46:26 +0200 Subject: [PATCH 046/479] fix bug in nrg correction for tonal concealment also zero-out noise above IGF starting freq when generating concealment noise -> could lead to wrong energy if tonal components are detected in the IGF region --- lib_dec/tonalMDCTconcealment.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 20f80e2826..31cad74a15 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -685,7 +685,7 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } - hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[i] * mdctSpectrum[i]; + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[l] * mdctSpectrum[l]; } for ( i = 1; i < hTonalMDCTConc->pTCI->numIndexes; i++ ) { @@ -702,7 +702,7 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } - hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[i] * mdctSpectrum[i]; + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[l] * mdctSpectrum[l]; } } @@ -719,7 +719,7 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } - hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[i] * mdctSpectrum[i]; + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[l] * mdctSpectrum[l]; } for ( l = crossOverFreq; l < hTonalMDCTConc->lastBlockData.nSamples; l++ ) @@ -1129,6 +1129,14 @@ void TonalMdctConceal_create_concealment_noise( } } + if ( st->tonal_mdct_plc_active ) + { + for ( i = crossOverFreq; i < max( crossOverFreq, hTonalMDCTConc->pTCI->lowerIndex[hTonalMDCTConc->pTCI->numIndexes - 1] ); ++i ) + { + concealment_noise[i] *= 0.0f; + } + } + /* restore common seed - after finishing the first channel - after a first subframe if the current channel is TCX10 */ -- GitLab From 0f38b815d0697e4ba829dc2723898fb2c37358da Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 1 Sep 2022 15:29:37 +0200 Subject: [PATCH 047/479] Revert "remove cng gain scaling which did not make sense" This reverts commit e22382ca104a64a6e5721c43f1e7d062b8d84157. --- lib_dec/er_dec_tcx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 5907326997..13e3a45461 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -463,7 +463,7 @@ void con_tcx( #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( A_cng != NULL ) { - gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_cng, L_frame / 4, st->preemph_fac, 1 ); + gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_cng, L_frame / 4, st->preemph_fac, 1 ) / 4.f; } else { -- GitLab From a4058bdf3436bcdcd9556c07a269ccfeadb6c752 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 1 Sep 2022 16:06:18 +0200 Subject: [PATCH 048/479] remove fadeout delay --- lib_com/ivas_cnst.h | 1 - lib_com/ivas_prot.h | 3 --- lib_dec/dec_tcx.c | 25 ------------------------- lib_dec/er_dec_tcx.c | 24 ------------------------ lib_dec/ivas_mdct_core_dec.c | 4 ---- 5 files changed, 57 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 84f6b11316..bc4b0f0ae6 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -800,7 +800,6 @@ enum fea_names #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ -#define MDCT_ST_PLC_FADEOUT_START_FRAME 3 #define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f typedef enum { diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 3ae4b1d07b..08c25258e4 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -1946,9 +1946,6 @@ void decoder_tcx_invQ( const int16_t **prm_sqQ, int16_t *nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - const int16_t isMCT, -#endif const int16_t frame_cnt /* i : frame counter in the super frame */ ); diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index ae647f21d0..41f3570662 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -98,11 +98,7 @@ void decoder_tcx( init_tcx_info( st, L_frame_glob, L_frameTCX_glob, frame_cnt, bfi, &tcx_offset, &tcx_offsetFB, &L_frame, &L_frameTCX, &left_rect, &L_spec ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - decoder_tcx_invQ( st, prm, A, Aind, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &xn_buf[0], &fUseTns, &tnsData, &gain_tcx, &prm_sqQ, &nf_seed, bfi, 0, /* <- isMCT */ frame_cnt ); -#else decoder_tcx_invQ( st, prm, A, Aind, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &xn_buf[0], &fUseTns, &tnsData, &gain_tcx, &prm_sqQ, &nf_seed, bfi, frame_cnt ); -#endif #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_noisefilling( st, NULL, A, L_frameTCX_glob, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, 0, frame_cnt ); @@ -696,9 +692,6 @@ void decoder_tcx_invQ( const int16_t **prm_sqQ1, int16_t *nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - const int16_t isMCT, -#endif const int16_t frame_cnt /* i : frame counter in the super frame */ ) { @@ -913,25 +906,7 @@ void decoder_tcx_invQ( hTcxDec->damping = 1; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - else if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) - { - if ( st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) - { - *gain_tcx = hTcxDec->old_gaintcx_bfi; - hTcxDec->damping = Damping_fact( st->coder_type, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), st->last_core ); - } - else - { - - *gain_tcx = hTcxDec->old_gaintcx_bfi; - hTcxDec->damping = 1.0f; - } - } - else if ( st->element_mode != IVAS_CPE_MDCT || isMCT ) -#else else -#endif { *gain_tcx = hTcxDec->old_gaintcx_bfi; hTcxDec->damping = Damping_fact( st->coder_type, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), st->last_core ); diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 13e3a45461..436189f3a9 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -280,19 +280,7 @@ void con_tcx( st->bpf_gain_param = 0; /* PLC: calculate damping factor */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - alpha = 1.0f; - if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME && A_cng != NULL ) - { - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); - } - else if ( A_cng == NULL ) - { - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); - } -#else alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); -#endif if ( st->nbLostCmpt == 1 ) { @@ -351,19 +339,7 @@ void con_tcx( set_f( pitch_buf, (float) L_SUBFR, st->nb_subfr ); /* PLC: calculate damping factor */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - alpha = 1.0f; - if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME && A_cng != NULL ) - { - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); - } - else if ( A_cng == NULL ) - { - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); - } -#else alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); -#endif } /*-----------------------------------------------------------------* diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index 76a3d0844c..0c77176766 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -728,11 +728,7 @@ void ivas_mdct_core_invQ( } nf_seed = 0; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - decoder_tcx_invQ( st, prm[ch], Aq[ch], Aind[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, xn_buf, &fUseTns[ch][k], &tnsData[ch][k], &gain_tcx, &prm_sqQ, &nf_seed, bfi, isMCT, k ); -#else decoder_tcx_invQ( st, prm[ch], Aq[ch], Aind[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, xn_buf, &fUseTns[ch][k], &tnsData[ch][k], &gain_tcx, &prm_sqQ, &nf_seed, bfi, k ); -#endif mvr2r( x[ch][k], x_0[ch][k], L_frameTCX[ch] ); -- GitLab From f562a8b1f6439263de06c49958bec3d11f27ee1f Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 2 Sep 2022 12:44:49 +0200 Subject: [PATCH 049/479] still apply IGF gain fading for MCT modes --- lib_com/ivas_prot.h | 7 ++++++- lib_dec/dec_tcx.c | 9 +++++++-- lib_dec/igf_dec.c | 6 +++--- lib_dec/ivas_mct_dec_mct.c | 4 ++++ lib_dec/ivas_stereo_mdct_core_dec.c | 4 ++++ 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 3602d6ae58..b96f45c905 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2051,7 +2051,12 @@ void decoder_tcx_IGF_stereo( const int16_t L_frame, /* i : frame length */ const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + const int16_t bfi, /* i : bad frame indicator */ + const int16_t is_mct /* i : flag to signal MCT or SMDCT */ +#else const int16_t bfi /* i : bad frame indicator */ +#endif ); void ms_processing( @@ -2086,7 +2091,7 @@ void IGFDecApplyStereo( const int16_t restrict_hopsize, #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t element_mode /* i : decoder element mode */ + const int16_t apply_damping_bfi /* i : decoder element mode */ #else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ #endif diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 41f3570662..b9c098b952 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1927,7 +1927,12 @@ void decoder_tcx_IGF_stereo( const int16_t L_frame, /* i : frame length */ const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ - const int16_t bfi /* i : bad frame indicator */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + const int16_t bfi, /* i : bad frame indicator */ + const int16_t is_mct /* i : flag to signal MCT or SMDCT */ +#else + const int16_t bfi, /* i : bad frame indicator */ +#endif ) { int16_t coreMsMask[N_MAX]; @@ -1981,7 +1986,7 @@ void decoder_tcx_IGF_stereo( } #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, sts[0]->element_mode ); + IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, is_mct ); #else IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi ); #endif diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index 9344bfd9e4..ede8975992 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -1253,7 +1253,7 @@ void IGFDecApplyStereo( const int16_t restrict_hopsize, #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t element_mode + const int16_t apply_damping_bfi #else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ #endif @@ -1354,8 +1354,8 @@ void IGFDecApplyStereo( IGF_calc( hPrivateDataL, igfGridIdx, spectrumL, igf_specL ); IGF_calc( hPrivateDataR, igfGridIdx, spectrumR, igf_specR ); #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, element_mode != IVAS_CPE_MDCT ); - IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, element_mode != IVAS_CPE_MDCT ); + IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, apply_damping_bfi ); + IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, apply_damping_bfi ); #else IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse ); IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse ); diff --git a/lib_dec/ivas_mct_dec_mct.c b/lib_dec/ivas_mct_dec_mct.c index 00eff03dac..ec19acb602 100644 --- a/lib_dec/ivas_mct_dec_mct.c +++ b/lib_dec/ivas_mct_dec_mct.c @@ -283,7 +283,11 @@ void mctStereoIGF_dec( /* stereo IGF decoding */ assert( ( sts[0]->core == sts[1]->core ) || ( hMCT->hBlockData[b]->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi, 1 /* <- is_mct */ ); +#else decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi ); +#endif } else { diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index ff94a59589..dc0bc915c9 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -299,7 +299,11 @@ void stereo_mdct_core_dec( assert( ( sts[0]->core == sts[1]->core ) || ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); /* stereo IGF decoding */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi, 0 /* <- is_mct */ ); +#else decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi ); +#endif } else { -- GitLab From f5fb28cebf8a673286f7af8dc47971e19cbdd461 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 2 Sep 2022 13:13:26 +0200 Subject: [PATCH 050/479] call sanitizeBandwidth() also in front of ivas_init_encoder() --- lib_enc/lib_enc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 85ad2a5526..345053eefc 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -890,6 +890,13 @@ static ivas_error configureEncoder( return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "PCA supported at SBA FOA 256 kbps only." ); } +#ifdef FIX_I74_BW_LIMITATION_ALT + if ( ( error = sanitizeBandwidth( hIvasEnc ) ) != IVAS_ERR_OK ) + { + return error; + } +#endif + /*-----------------------------------------------------------------* * Finalize initialization *-----------------------------------------------------------------*/ -- GitLab From 54ce653ff14896af6cb451791b1c6a960e68103d Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 2 Sep 2022 14:35:22 +0200 Subject: [PATCH 051/479] fix compilation error --- lib_dec/dec_tcx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index b9c098b952..7c948506c6 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1931,7 +1931,7 @@ void decoder_tcx_IGF_stereo( const int16_t bfi, /* i : bad frame indicator */ const int16_t is_mct /* i : flag to signal MCT or SMDCT */ #else - const int16_t bfi, /* i : bad frame indicator */ + const int16_t bfi /* i : bad frame indicator */ #endif ) { -- GitLab From 6fd5cf2eb55087a08ed71f5c484ccd139f661609 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 2 Sep 2022 15:28:31 +0200 Subject: [PATCH 052/479] tiny cleanup --- lib_dec/dec_tcx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 7c948506c6..65effab983 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1291,7 +1291,7 @@ void decoder_tcx_noisefilling( #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) { - TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, st->hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); + TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); } else { -- GitLab From 0a070491f1f793fec637402bb272febde65bd2e5 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 2 Sep 2022 15:29:56 +0200 Subject: [PATCH 053/479] fix non-BE in non-MDCT Stereo TCX modes --- lib_dec/fd_cng_dec.c | 7 ++++--- lib_dec/igf_dec.c | 4 ++-- lib_dec/tonalMDCTconcealment.c | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index 6f27464c66..06ebedcd27 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -506,8 +506,8 @@ void ApplyFdCng( { /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ - /* always set psychParameters ... */ - if ( st->hTonalMDCTConc != NULL ) + /* always set psychParameters for MDCT-Stereo ... */ + if ( st->element_mode == IVAS_CPE_MDCT && st->hTonalMDCTConc != NULL ) { st->hTonalMDCTConc->psychParams = ( st->core == TCX_20_CORE ) ? &st->hTonalMDCTConc->psychParamsTCX20 : &st->hTonalMDCTConc->psychParamsTCX10; } @@ -526,6 +526,7 @@ void ApplyFdCng( mvr2r( lsp_cng, st->lspold_cng, M ); lsp2lsf( lsp_cng, st->lsf_cng, M, sr_core ); } + st->plcBackgroundNoiseUpdated = 1; } #endif @@ -534,8 +535,8 @@ void ApplyFdCng( mvr2r( lsp_cng, st->lspold_cng, M ); lsp2lsf( lsp_cng, st->lsf_cng, M, st->sr_core ); -#endif st->plcBackgroundNoiseUpdated = 1; +#endif } break; diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index ede8975992..063463093b 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -681,7 +681,7 @@ static void IGF_appl( float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ - const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ + const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ #else int16_t *flag_sparse /* o : Q0 | temp flattening indicator */ #endif @@ -1222,7 +1222,7 @@ void IGFDecApplyMono( IGF_prep( hPrivateData, igfGridIdx, hIGFDec->infoTCXNoise, igf_spec, hPrivateData->pSpecFlat, element_mode ); IGF_calc( hPrivateData, igfGridIdx, spectrum, igf_spec ); #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse, element_mode != IVAS_CPE_MDCT ); + IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse, 1 ); #else IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse ); #endif diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 31cad74a15..4a63761d16 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -520,7 +520,7 @@ void TonalMDCTConceal_InsertNoise( g = 1.0f - crossfadeGain; #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed && concealment_noise != NULL ) + if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) #else if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) #endif -- GitLab From 6fb9241da0dfc9758b631f6bc6f3f9163dc721fd Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 2 Sep 2022 16:03:34 +0200 Subject: [PATCH 054/479] cleanup and refactoring --- lib_com/ivas_prot.h | 8 ++++++- lib_com/ivas_stereo_psychlpc_com.c | 3 +-- lib_com/options.h | 2 +- lib_dec/core_dec_init.c | 1 - lib_dec/dec_tcx.c | 18 +------------- lib_dec/er_dec_tcx.c | 6 +---- lib_dec/fd_cng_dec.c | 2 +- lib_dec/igf_dec.c | 37 ++++++++++++++++++++++++++--- lib_dec/ivas_mdct_core_dec.c | 22 +---------------- lib_dec/ivas_stereo_mdct_core_dec.c | 22 +---------------- 10 files changed, 48 insertions(+), 73 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index b96f45c905..29f833c093 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2091,7 +2091,7 @@ void IGFDecApplyStereo( const int16_t restrict_hopsize, #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t apply_damping_bfi /* i : decoder element mode */ + const int16_t bfi_apply_damping /* i : decoder element mode */ #else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ #endif @@ -5448,6 +5448,12 @@ void TonalMdctConceal_whiten_noise_shape( const int16_t L_frame, const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE ); + +int16_t get_igf_startline( + Decoder_State *st, + int16_t L_frame, + int16_t L_frameTCX +); #endif float rand_triangular_signed( diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index cdc48f5f98..4ca10255a7 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -71,8 +71,7 @@ static void SpectrumWeighting_Init( #ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE static #endif - ivas_error - PsychoacousticParameters_Init( +ivas_error PsychoacousticParameters_Init( const int32_t sr_core, /* i : sampling rate of core-coder */ const int16_t nBins, /* i : Number of bins (spectral lines) */ const int8_t nBands, /* i : Number of spectrum subbands */ diff --git a/lib_com/options.h b/lib_com/options.h index 16e8370398..78f5eee7ad 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -143,7 +143,7 @@ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -/*#define MDCT_STEREO_PLC_FADE_2_BG_NOISE*/ /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ +/*#define MDCT_STEREO_PLC_FADE_2_BG_NOISE*/ /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define FIX_ADAP_STEFI_SHIFT /* Issue 89: fix bug in parameter shift of adaptive stereo filling */ diff --git a/lib_dec/core_dec_init.c b/lib_dec/core_dec_init.c index 53e0939477..bc8d95e24f 100644 --- a/lib_dec/core_dec_init.c +++ b/lib_dec/core_dec_init.c @@ -553,7 +553,6 @@ void open_decoder_LPD( st->hTcxDec->prev_widow_left_rect = 0; #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - /* Todo: should be considered for other stereo modes as well */ if ( is_init || is_mct || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV; diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 65effab983..4aea664192 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1104,23 +1104,7 @@ void decoder_tcx_noisefilling( *-----------------------------------------------------------------*/ /* Init lengths */ - if ( st->igf == 0 ) - { - if ( st->narrowBand == 0 ) - { - /* minimum needed for output with sampling rates lower then the - nominal sampling rate */ - infoIGFStartLine = min( L_frameTCX, L_frame ); - } - else - { - infoIGFStartLine = L_frameTCX; - } - } - else - { - infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX ); - } + infoIGFStartLine = get_igf_startline( st, L_frame, L_frameTCX ); noiseFillingSize = L_spec; if ( st->igf ) diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 5ba52bbff7..4d2a030492 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -560,11 +560,8 @@ void con_tcx( if ( alpha != 1.0f ) { - float lsp_local[M]; - float lsp_fade[M]; - float alpha_inv; + float lsp_local[M], lsp_fade[M], alpha_inv; - wmops_sub_start( "Fade LSPs" ); alpha_inv = 1.0f - alpha; a2lsp_stab( A_local, lsp_local, lsp_local ); @@ -575,7 +572,6 @@ void con_tcx( } lsp2a_stab( lsp_fade, A_local, M ); - wmops_sub_end(); } } #endif diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index 06ebedcd27..ffbb785351 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -529,8 +529,8 @@ void ApplyFdCng( st->plcBackgroundNoiseUpdated = 1; } #endif - #ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE + a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); mvr2r( lsp_cng, st->lspold_cng, M ); diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index 063463093b..4e1e7ebd0a 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -1253,7 +1253,7 @@ void IGFDecApplyStereo( const int16_t restrict_hopsize, #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t apply_damping_bfi + const int16_t bfi_apply_damping #else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ #endif @@ -1354,8 +1354,8 @@ void IGFDecApplyStereo( IGF_calc( hPrivateDataL, igfGridIdx, spectrumL, igf_specL ); IGF_calc( hPrivateDataR, igfGridIdx, spectrumR, igf_specR ); #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, apply_damping_bfi ); - IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, apply_damping_bfi ); + IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, bfi_apply_damping ); + IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, bfi_apply_damping ); #else IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse ); IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse ); @@ -1611,3 +1611,34 @@ void init_igf_dec( return; } + +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +int16_t get_igf_startline( + Decoder_State *st, + int16_t L_frame, + int16_t L_frameTCX +) +{ + int16_t igf_startline; + + if ( st->igf == 0 ) + { + if ( st->narrowBand == 0 ) + { + /* minimum needed for output with sampling rates lower then the + nominal sampling rate */ + igf_startline = min( L_frameTCX, L_frame ); + } + else + { + igf_startline = L_frameTCX; + } + } + else + { + igf_startline = min( st->hIGFDec->infoIGFStartLine, L_frameTCX ); + } + + return igf_startline; +} +#endif \ No newline at end of file diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index 0c77176766..d05024c565 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -1067,27 +1067,7 @@ void ivas_mdct_core_tns_ns( #endif { #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - int16_t infoIGFStartLine; - - if ( st->igf == 0 ) - { - if ( st->narrowBand == 0 ) - { - /* minimum needed for output with sampling rates lower then the - nominal sampling rate */ - infoIGFStartLine = min( L_frameTCX[ch], L_frame[ch] ); - } - else - { - infoIGFStartLine = L_frameTCX[ch]; - } - } - else - { - infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX[ch] ); - } - - TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], infoIGFStartLine ); + TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], get_igf_startline( st, L_frame[ch], L_frameTCX[ch] ) ); #else TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0] ); #endif diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index dc0bc915c9..9bbb343c21 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -340,27 +340,7 @@ void stereo_mdct_core_dec( #endif { #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - int16_t infoIGFStartLine; - - if ( st->igf == 0 ) - { - if ( st->narrowBand == 0 ) - { - /* minimum needed for output with sampling rates lower then the - nominal sampling rate */ - infoIGFStartLine = min( L_frameTCX[ch], L_frame[ch] ); - } - else - { - infoIGFStartLine = L_frameTCX[ch]; - } - } - else - { - infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX[ch] ); - } - - TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], infoIGFStartLine ); + TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], get_igf_startline( st, L_frame[ch], L_frameTCX[ch] ) ); #else TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0] ); #endif -- GitLab From d6917ed6fe2344231a24f7b5b9f91c06978a2238 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 2 Sep 2022 16:18:39 +0200 Subject: [PATCH 055/479] fix compilation error and warning --- lib_dec/dec_tcx.c | 20 ++++++++++++++++++++ lib_dec/igf_dec.c | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 4aea664192..0614c5e0db 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1104,7 +1104,27 @@ void decoder_tcx_noisefilling( *-----------------------------------------------------------------*/ /* Init lengths */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE infoIGFStartLine = get_igf_startline( st, L_frame, L_frameTCX ); +#else + if ( st->igf == 0 ) + { + if ( st->narrowBand == 0 ) + { + /* minimum needed for output with sampling rates lower then the + nominal sampling rate */ + infoIGFStartLine = min( L_frameTCX, L_frame ); + } + else + { + infoIGFStartLine = L_frameTCX; + } + } + else + { + infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX ); + } +#endif noiseFillingSize = L_spec; if ( st->igf ) diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index 4e1e7ebd0a..fecc8e96df 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -1641,4 +1641,4 @@ int16_t get_igf_startline( return igf_startline; } -#endif \ No newline at end of file +#endif -- GitLab From bfe8f7daed419a91c13828fc5c92f953b8af855c Mon Sep 17 00:00:00 2001 From: rtyag Date: Mon, 5 Sep 2022 17:50:51 +1000 Subject: [PATCH 056/479] fix for issue 91: Improvements to SBA high bitrate HOA3 coding --- lib_com/ivas_prot.h | 16 +++++ lib_com/ivas_spar_com.c | 3 +- lib_com/options.h | 4 +- lib_dec/ivas_spar_decoder.c | 37 +++++++++- lib_dec/ivas_spar_md_dec.c | 124 ++++++++++++++++++++++++++++++--- lib_dec/ivas_stat_dec.h | 4 +- lib_enc/ivas_dirac_enc.c | 45 +++++++++++- lib_enc/ivas_entropy_coder.c | 18 +++++ lib_enc/ivas_mcmasa_enc.c | 10 ++- lib_enc/ivas_mct_core_enc.c | 2 +- lib_enc/ivas_spar_encoder.c | 66 ++++++++++++++++-- lib_enc/ivas_spar_md_enc.c | 130 ++++++++++++++++++++++++++++++++--- lib_enc/ivas_stat_enc.h | 4 +- 13 files changed, 424 insertions(+), 39 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 88e83ded12..15b0cb4459 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2999,6 +2999,10 @@ void ivas_dirac_param_est_enc( float **pp_fr_real, float **pp_fr_imag, const int16_t input_frame +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t merged_sba_mode +#endif ); /*----------------------------------------------------------------------------------* @@ -3866,6 +3870,10 @@ ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ const int16_t sba_order /* i : Ambisonic (SBA) order */ +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t spar_hoa_md_flag /* i : flag to send HOA MD for all bands */ +#endif ); void ivas_spar_md_enc_close( @@ -3941,6 +3949,10 @@ ivas_error ivas_spar_md_dec_open( ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels /* i : number of internal channels */ +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t spar_hoa_md_flag /* i : flag to send HOA MD for all bands */ +#endif ); void ivas_spar_md_dec_close( @@ -4766,6 +4778,10 @@ void computeReferencePower_enc( float *reference_power, /* o : Estimated power */ const int16_t enc_param_start_band, /* i : first band to process */ const int16_t num_freq_bands /* i : Number of frequency bands */ +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t merged_sba_mode +#endif ); diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index 46f6b3dc41..b06b8e02b7 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -1731,10 +1731,11 @@ void ivas_get_spar_md_from_dirac( /*SPAR from DirAC*/ set_f( response_avg, 0.0f, MAX_OUTPUT_CHANNELS ); +#ifndef SBA_HOA_HBR_IMPROV set_f( hSpar_md->band_coeffs[band + i_ts * IVAS_MAX_NUM_BANDS].pred_re, 0.0f, IVAS_SPAR_MAX_CH - 1 ); set_f( &hSpar_md->band_coeffs[band + i_ts * IVAS_MAX_NUM_BANDS].C_re[0][0], 0.0f, ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ) * ( IVAS_SPAR_MAX_DMX_CHS - 1 ) ); set_f( &hSpar_md->band_coeffs[band + i_ts * IVAS_MAX_NUM_BANDS].P_re[0], 0.0f, ( IVAS_SPAR_MAX_CH - 1 ) ); - +#endif if ( n_ts > 1 ) { ivas_dirac_dec_get_response( (int16_t) azi_dirac[band][i_ts], (int16_t) ele_dirac[band][i_ts], response_avg, order ); diff --git a/lib_com/options.h b/lib_com/options.h index bce8d45d02..95881685c8 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -148,8 +148,8 @@ #define FIX_ADAP_STEFI_SHIFT /* Issue 89: fix bug in parameter shift of adaptive stereo filling */ #define SPAR_SCALING_HARMONIZATION /* issue 80: Changes to harmonize scaling in spar */ +#define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ - - /* ################## End DEVELOPMENT switches ######################### */ +/* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 4f48e10a09..56834b4a78 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -69,6 +69,9 @@ ivas_error ivas_spar_dec_open( IVAS_FB_CFG *fb_cfg; int16_t i, j, b, active_w_mixing; int32_t output_Fs; +#ifdef SBA_HOA_HBR_IMPROV + int16_t spar_hoa_md_flag; +#endif error = IVAS_ERR_OK; sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); @@ -80,6 +83,17 @@ ivas_error ivas_spar_dec_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR decoder" ); } +#ifdef SBA_HOA_HBR_IMPROV + if ( st_ivas->sba_order > 1 && st_ivas->hDecoderConfig->ivas_total_brate >= IVAS_256k ) + { + spar_hoa_md_flag = 1; + } + else + { + spar_hoa_md_flag = 0; + } +#endif + output_Fs = st_ivas->hDecoderConfig->output_Fs; /* TD decorr. */ @@ -89,7 +103,12 @@ ivas_error ivas_spar_dec_open( } /* MD handle */ - if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal +#ifdef SBA_HOA_HBR_IMPROV + , + spar_hoa_md_flag +#endif + ) ) != IVAS_ERR_OK ) { return error; } @@ -632,7 +651,16 @@ static void ivas_spar_dec_MD( { ivas_parse_spar_header( hDecoderConfig->ivas_total_brate, sba_order, st0, &table_idx ); - hSpar->hMdDec->spar_md.num_bands = min( SPAR_DIRAC_SPLIT_START_BAND, IVAS_MAX_NUM_BANDS ); +#ifdef SBA_HOA_HBR_IMPROV + if ( hSpar->hMdDec->spar_hoa_md_flag ) + { + hSpar->hMdDec->spar_md.num_bands = IVAS_MAX_NUM_BANDS; + } + else +#endif + { + hSpar->hMdDec->spar_md.num_bands = min( SPAR_DIRAC_SPLIT_START_BAND, IVAS_MAX_NUM_BANDS ); + } if ( hSpar->hMdDec->table_idx != table_idx ) { @@ -775,7 +803,12 @@ void ivas_spar_get_parameters( weight = ivas_spar_get_cldfb_slot_gain( hSpar, hDecoderConfig, ts, &ts0, &ts1, &weight_20ms ); +#ifdef SBA_HOA_HBR_IMPROV + split_band = hSpar->hMdDec->spar_md.num_bands; +#else split_band = SPAR_DIRAC_SPLIT_START_BAND; +#endif + for ( spar_band = 0; spar_band < num_spar_bands; spar_band++ ) { for ( out_ch = 0; out_ch < num_ch_out; out_ch++ ) diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index e597ced274..db7959d92f 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -252,6 +252,10 @@ ivas_error ivas_spar_md_dec_open( ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels /* i : number of internal channels */ +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t spar_hoa_md_flag /* i : flag to send HOA MD for all bands */ +#endif ) { ivas_spar_md_dec_state_t *hMdDec; @@ -269,6 +273,9 @@ ivas_error ivas_spar_md_dec_open( return error; } +#ifdef SBA_HOA_HBR_IMPROV + hMdDec->spar_hoa_md_flag = spar_hoa_md_flag; +#endif hMdDec->table_idx = 0; /* just to initialize state variables*/ if ( ( error = ivas_spar_md_dec_init( hMdDec, hDecoderConfig, num_channels ) ) != IVAS_ERR_OK ) @@ -440,7 +447,13 @@ ivas_error ivas_spar_md_dec_init( float pFC[IVAS_MAX_NUM_BANDS], PR_minmax[2]; hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? - ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) ); + ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, +#ifdef SBA_HOA_HBR_IMPROV + ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) +#else + min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) +#endif + ); nchan_transport = hMdDec->spar_md_cfg.nchan_transport; @@ -525,7 +538,11 @@ ivas_error ivas_spar_md_dec_init( ivas_clear_band_coeff_idx( hMdDec->spar_md_prev.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); hMdDec->spar_md.dtx_vad = 0; +#ifdef SBA_HOA_HBR_IMPROV + hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); +#else hMdDec->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); +#endif hMdDec->td_decorr_flag = 1; set_f( hMdDec->spar_md.en_ratio_slow, 0.0f, IVAS_MAX_NUM_BANDS ); @@ -668,7 +685,7 @@ void ivas_spar_md_dec_process( #endif /* SPAR to DirAC and DirAC to SPAR conversion */ // VE2DB: -> "DirAC to SPAR conversion" only? - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete { ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); @@ -683,7 +700,11 @@ void ivas_spar_md_dec_process( /* expand DirAC MD to all time slots */ for ( i_ts = 1; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) { +#ifdef SBA_HOA_HBR_IMPROV + for ( b = 0; b < hMdDec->spar_md.num_bands; b++ ) +#else for ( b = 0; b < min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); b++ ) +#endif { for ( j = 0; j < IVAS_SPAR_MAX_CH - 1; j++ ) { @@ -1802,6 +1823,15 @@ static void ivas_decode_arith_bs( ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_cell_dims[i].dim1 = ndm + ndec - 1; +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdDec->spar_hoa_md_flag ) + { + if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) + { + pred_cell_dims[i].dim1 -= ( FOA_CHANNELS - 1 ); + } + } +#endif pred_cell_dims[i].dim2 = 1; drct_cell_dims[i].dim1 = ndec; drct_cell_dims[i].dim2 = ndm - 1; @@ -1822,6 +1852,23 @@ static void ivas_decode_arith_bs( if ( any_diff == 1 ) { +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdDec->spar_hoa_md_flag ) + { + int16_t j; + for ( i = 0; i < nB; i++ ) + { + if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) + { + for ( j = 0; j < pred_cell_dims[i].dim1; j++ ) + { + hMdDec->spar_md_prev.band_coeffs_idx_mapped[i].pred_index_re[j] = + hMdDec->spar_md_prev.band_coeffs_idx_mapped[i].pred_index_re[j + ( FOA_CHANNELS - 1 )]; + } + } + } + } +#endif ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, pred_cell_dims, PRED_COEFF, planarCP ); } @@ -1830,6 +1877,28 @@ static void ivas_decode_arith_bs( ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdDec->spar_hoa_md_flag ) + { + int16_t j; + for ( i = 0; i < nB; i++ ) + { + if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) + { + for ( j = pred_cell_dims[i].dim1 - 1; j >= 0; j-- ) + { + hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j + ( FOA_CHANNELS - 1 )] = + hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; + } + for ( j = 0; j < FOA_CHANNELS - 1; j++ ) + { + hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] = 0; + } + } + } + } +#endif + if ( any_diff == 1 ) { ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, drct_cell_dims, DRCT_COEFF, planarCP ); @@ -2069,7 +2138,7 @@ static void ivas_decode_huffman_bs( for ( i = 0; i < nB; i++ ) { int16_t ndm, ndec; - int16_t pred_dim, drct_dim, decd_dim; + int16_t pred_dim, drct_dim, decd_dim, pred_offset; ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; @@ -2077,13 +2146,36 @@ static void ivas_decode_huffman_bs( pred_dim = ndec + ndm - 1; drct_dim = ndec * ( ndm - 1 ); decd_dim = ndec; + pred_offset = 0; +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdDec->spar_hoa_md_flag ) + { + if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) + { + pred_offset = FOA_CHANNELS - 1; + } + } +#endif - for ( j = 0; j < pred_dim; j++ ) + for ( j = pred_offset; j < pred_dim; j++ ) { ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); } +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdDec->spar_hoa_md_flag ) + { + if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) + { + for ( j = 0; j < pred_offset; j++ ) + { + hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] = 0; + } + } + } +#endif + for ( j = 0; j < drct_dim; j++ ) { if ( planarCP && !keep_planar[(int16_t) floor( j / ( ndm - 1 ) )] ) @@ -2240,10 +2332,10 @@ static void ivas_spar_md_fill_invalid_bands( /*-----------------------------------------------------------------------------------------* -* Function ivas_spar_dec_compute_ramp_down_post_matrix() -* -* -*-----------------------------------------------------------------------------------------*/ + * Function ivas_spar_dec_compute_ramp_down_post_matrix() + * + * + *-----------------------------------------------------------------------------------------*/ static void ivas_spar_dec_compute_ramp_down_post_matrix( ivas_spar_md_dec_state_t *hMdDec, @@ -2761,7 +2853,13 @@ void ivas_spar_to_dirac( if ( hMdDec->spar_md_cfg.nchan_transport > 1 ) { ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, - end_band, num_bands_out, sba_order_internal, dtx_vad, NULL ); + end_band, num_bands_out, +#ifdef SBA_HOA_HBR_IMPROV + ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, +#else + sba_order_internal, +#endif + dtx_vad, NULL ); /* temporarily copy frame-wise prediction coefficients in DirAC bands*/ for ( pred_idx = 0; pred_idx < FOA_CHANNELS - 1; pred_idx++ ) @@ -2774,7 +2872,13 @@ void ivas_spar_to_dirac( } ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, MAX_PARAM_SPATIAL_SUBFRAMES, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, - end_band, num_bands_out, sba_order_internal, dtx_vad, NULL ); + end_band, num_bands_out, +#ifdef SBA_HOA_HBR_IMPROV + ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, +#else + sba_order_internal, +#endif + dtx_vad, NULL ); /* expand DirAC TC 20ms MD for residual channels to all subframes*/ for ( block = 0; block < MAX_PARAM_SPATIAL_SUBFRAMES; block++ ) diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index c773491d41..3752487268 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -809,7 +809,9 @@ typedef struct ivas_spar_md_dec_state_t ivas_huff_coeffs_t huff_coeffs; int16_t table_idx; int16_t dtx_vad; - +#ifdef SBA_HOA_HBR_IMPROV + int16_t spar_hoa_md_flag; +#endif } ivas_spar_md_dec_state_t; diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 557cb109ca..bbb8c7ff5e 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -337,7 +337,12 @@ void ivas_dirac_enc( set_zero( data_f[2], input_frame ); } - ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame ); + ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame +#ifdef SBA_HOA_HBR_IMPROV + , + 0 +#endif + ); /* encode parameters */ if ( sba_planar || hQMetaData->useLowerRes ) { @@ -481,17 +486,32 @@ void computeReferencePower_enc( float *reference_power, /* o : Estimated power */ const int16_t enc_param_start_band, /* i : first band to process */ const int16_t num_freq_bands /* i : Number of frequency bands */ +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t merged_sba_mode +#endif ) { int16_t brange[2]; int16_t ch_idx, i, j; +#ifdef SBA_HOA_HBR_IMPROV + float reference_power_W[DIRAC_MAX_NBANDS]; +#endif + for ( i = 0; i < num_freq_bands; i++ ) { brange[0] = band_grouping[i + enc_param_start_band]; brange[1] = band_grouping[i + enc_param_start_band + 1]; reference_power[i] = 0; +#ifdef SBA_HOA_HBR_IMPROV + reference_power_W[i] = 0; + for ( j = brange[0]; j < brange[1]; j++ ) + { + reference_power_W[i] += ( Cldfb_RealBuffer[0][j] * Cldfb_RealBuffer[0][j] ) + ( Cldfb_ImagBuffer[0][j] * Cldfb_ImagBuffer[0][j] ); + } +#endif for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) { /* abs()^2 */ @@ -503,6 +523,15 @@ void computeReferencePower_enc( } v_multc( reference_power, 0.5f, reference_power, num_freq_bands ); +#ifdef SBA_HOA_HBR_IMPROV + if ( merged_sba_mode ) + { + for ( i = 0; i < num_freq_bands; i++ ) + { + reference_power[i] = max( reference_power[i], reference_power_W[i] ); + } + } +#endif return; } @@ -519,7 +548,12 @@ void ivas_dirac_param_est_enc( float data_f[][L_FRAME48k], float **pp_fr_real, float **pp_fr_imag, - const int16_t input_frame ) + const int16_t input_frame +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t merged_sba_mode +#endif +) { int16_t i, d, ts, index, l_ts, num_freq_bands; int16_t band_m_idx, block_m_idx; @@ -617,7 +651,12 @@ void ivas_dirac_param_est_enc( Cldfb_ImagBuffer, reference_power[ts], hDirAC->hConfig->enc_param_start_band, - num_freq_bands ); + num_freq_bands +#ifdef SBA_HOA_HBR_IMPROV + , + merged_sba_mode +#endif + ); computeIntensityVector_enc( hDirAC, diff --git a/lib_enc/ivas_entropy_coder.c b/lib_enc/ivas_entropy_coder.c index 1c1d1d564f..7f5ab7b996 100644 --- a/lib_enc/ivas_entropy_coder.c +++ b/lib_enc/ivas_entropy_coder.c @@ -316,11 +316,17 @@ void ivas_arith_encode_cmplx_cell_array( int16_t input[IVAS_MAX_INPUT_LEN]; ivas_cell_dim_t cell_dim[IVAS_MAX_NUM_BANDS], cell_dim_diff[IVAS_MAX_NUM_BANDS]; int16_t len, idx, i, j, idx1; +#ifdef SBA_HOA_HBR_IMPROV + int16_t total_len; +#endif idx1 = 0; if ( any_diff == 1 ) { idx = 0; +#ifdef SBA_HOA_HBR_IMPROV + total_len = 0; +#endif for ( i = 0; i < nB; i++ ) { len = ( pCell_dims[i].dim1 * pCell_dims[i].dim2 ); @@ -328,8 +334,13 @@ void ivas_arith_encode_cmplx_cell_array( { for ( j = 0; j < len; j++ ) { +#ifdef SBA_HOA_HBR_IMPROV + input_old[idx] = pSymbol_old_re[total_len + j]; + input_new[idx++] = pSymbol_re[total_len + j]; +#else input_old[idx] = pSymbol_old_re[i * len + j]; input_new[idx++] = pSymbol_re[i * len + j]; +#endif } cell_dim_diff[i].dim1 = pCell_dims[i].dim1; cell_dim_diff[i].dim2 = pCell_dims[i].dim2; @@ -340,13 +351,20 @@ void ivas_arith_encode_cmplx_cell_array( { for ( j = 0; j < len; j++ ) { +#ifdef SBA_HOA_HBR_IMPROV + input[idx1++] = pSymbol_re[total_len + j]; +#else input[idx1++] = pSymbol_re[i * len + j]; +#endif } cell_dim_diff[i].dim1 = 0; cell_dim_diff[i].dim2 = 0; cell_dim[i].dim1 = pCell_dims[i].dim1; cell_dim[i].dim2 = pCell_dims[i].dim2; } +#ifdef SBA_HOA_HBR_IMPROV + total_len += len; +#endif } #ifdef SPAR_HOA_DBG /*if ( 0 )*/ /*(pCell_dims[0].dim1 == 12)*/ diff --git a/lib_enc/ivas_mcmasa_enc.c b/lib_enc/ivas_mcmasa_enc.c index 8be1836de5..6b38f6a588 100644 --- a/lib_enc/ivas_mcmasa_enc.c +++ b/lib_enc/ivas_mcmasa_enc.c @@ -70,8 +70,7 @@ static void ivas_mcmasa_dmx( MCMASA_ENC_HANDLE hMcMasa, float data_f[][L_FRAME48 static void compute_cov_mtx( float sr[MCMASA_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], float si[MCMASA_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], const int16_t freq, const int16_t N, CovarianceMatrix *COVls ); -static void computeIntensityVector_enc( const int16_t *band_grouping, float Cldfb_RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], float Cldfb_ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], - const int16_t enc_param_start_band, const int16_t num_frequency_bands, float intensity_real[DIRAC_NUM_DIMS][MASA_FREQUENCY_BANDS] ); +static void computeIntensityVector_enc( const int16_t *band_grouping, float Cldfb_RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], float Cldfb_ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], const int16_t enc_param_start_band, const int16_t num_frequency_bands, float intensity_real[DIRAC_NUM_DIMS][MASA_FREQUENCY_BANDS] ); static void computeVerticalDiffuseness( float **buffer_intensity, const float *buffer_energy, const int16_t averaging_length, const int16_t num_freq_bands, float *diffuseness ); @@ -893,7 +892,12 @@ void ivas_mcmasa_param_est_enc( intensity_even_real ); computeReferencePower_enc( hMcMasa->band_grouping, FoaEven_RealBuffer, FoaEven_ImagBuffer, reference_power[ts], 0, - num_freq_bands ); + num_freq_bands +#ifdef SBA_HOA_HBR_IMPROV + , + 0 +#endif + ); /* Fill buffers of length "averaging_length" time slots for intensity and energy */ hMcMasa->index_buffer_intensity = ( hMcMasa->index_buffer_intensity % hMcMasa->no_col_avg_diff ) + 1; /* averaging_length = 32 */ diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c index 1a30b231e1..b3edbc4f6c 100644 --- a/lib_enc/ivas_mct_core_enc.c +++ b/lib_enc/ivas_mct_core_enc.c @@ -171,7 +171,7 @@ static void AdjustChannelRatios( } chBitRatios[1] += ratio_diff; -#ifdef FIX_I1_113 +#ifdef SBA_HOA_HBR_IMPROV /* make sure final ratios are within range*/ sum_ratio = 0.0f; for ( i = 0; i < nchan; i++ ) diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index bb97dadbd1..529590ff25 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -68,6 +68,9 @@ ivas_error ivas_spar_enc_open( int16_t table_idx, active_w_mixing; int32_t input_Fs, ivas_total_brate; ivas_error error; +#ifdef SBA_HOA_HBR_IMPROV + int16_t spar_hoa_md_flag; +#endif hEncoderConfig = st_ivas->hEncoderConfig; error = IVAS_ERR_OK; @@ -78,6 +81,17 @@ ivas_error ivas_spar_enc_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR encoder" ); } +#ifdef SBA_HOA_HBR_IMPROV + if ( hEncoderConfig->sba_order > 1 && hEncoderConfig->ivas_total_brate >= IVAS_256k ) + { + spar_hoa_md_flag = 1; + } + else + { + spar_hoa_md_flag = 0; + } +#endif + input_Fs = hEncoderConfig->input_Fs; sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); nchan_inp = ivas_sba_get_nchan_metadata( sba_order_internal ); @@ -90,7 +104,12 @@ ivas_error ivas_spar_enc_open( // ivas_set_bitrate_config(&hSpar->hMdEnc->spar_md_cfg, table_idx); /* MD handle */ - if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig, sba_order_internal ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig, sba_order_internal +#ifdef SBA_HOA_HBR_IMPROV + , + spar_hoa_md_flag +#endif + ) ) != IVAS_ERR_OK ) { return error; } @@ -515,7 +534,12 @@ static ivas_error ivas_spar_enc_process( *-----------------------------------------------------------------------------------------*/ ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, - data_f, cov_in_buf.ppIn_FR_real, cov_in_buf.ppIn_FR_imag, input_frame ); + data_f, cov_in_buf.ppIn_FR_real, cov_in_buf.ppIn_FR_imag, input_frame +#ifdef SBA_HOA_HBR_IMPROV + , + 1 +#endif + ); if ( hQMetaData->q_direction->cfg.nbands > 0 ) { @@ -633,7 +657,13 @@ static ivas_error ivas_spar_enc_process( if ( hSpar->hMdEnc->table_idx != table_idx ) { hSpar->hMdEnc->table_idx = table_idx; - ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, SPAR_DIRAC_SPLIT_START_BAND ); + ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, +#ifdef SBA_HOA_HBR_IMPROV + ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND +#else + SPAR_DIRAC_SPLIT_START_BAND +#endif + ); } nchan_transport = hSpar->hMdEnc->spar_md_cfg.nchan_transport; @@ -674,12 +704,22 @@ static ivas_error ivas_spar_enc_process( } md_in_buf.num_bands = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW ); - md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); +#ifdef SBA_HOA_HBR_IMPROV + if ( hSpar->hMdEnc->spar_hoa_md_flag == 0 ) +#endif + { + md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); + } md_in_buf.dtx_vad = dtx_vad; - ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); +#ifdef SBA_HOA_HBR_IMPROV + if ( hSpar->hMdEnc->spar_hoa_md_flag == 0 ) +#endif + { + ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); + } - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete { float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; float ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; @@ -724,9 +764,21 @@ static ivas_error ivas_spar_enc_process( } ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, - d_start_band, d_end_band, sba_order, dtx_vad, Wscale_d ); + d_start_band, d_end_band, +#ifdef SBA_HOA_HBR_IMPROV + ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, +#else + sba_order, +#endif + dtx_vad, Wscale_d ); } +#ifdef SBA_HOA_HBR_IMPROV + if ( hSpar->hMdEnc->spar_hoa_md_flag ) + { + ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); + } +#endif /*-----------------------------------------------------------------------------------------* * FB mixer diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index a63f3af172..cd4dd00155 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -109,6 +109,10 @@ ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc_in, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ const int16_t sba_order /* i : Ambisonic (SBA) order */ +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t spar_hoa_md_flag /* i : flag to send HOA MD for all bands */ +#endif ) { ivas_spar_md_enc_state_t *hMdEnc; @@ -124,6 +128,10 @@ ivas_error ivas_spar_md_enc_open( num_channels = 2 * sba_order + 2; +#ifdef SBA_HOA_HBR_IMPROV + hMdEnc->spar_hoa_md_flag = spar_hoa_md_flag; +#endif + if ( ( hMdEnc->spar_md.band_coeffs = (ivas_band_coeffs_t *) count_malloc( IVAS_MAX_NUM_BANDS * sizeof( ivas_band_coeffs_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for band_coeffs in SPAR MD" ); @@ -323,7 +331,13 @@ static ivas_error ivas_spar_md_enc_init( table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); hMdEnc->spar_md_cfg.gen_bs = 1; - ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, SPAR_DIRAC_SPLIT_START_BAND ); + ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, +#ifdef SBA_HOA_HBR_IMPROV + ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND +#else + SPAR_DIRAC_SPLIT_START_BAND +#endif + ); /* get FB coefficients */ for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) @@ -556,14 +570,16 @@ ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_state_t *hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ ivas_spar_md_enc_in_buf_t *pIn_buf, - BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ + BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ const int16_t dtx_silence_mode, - const int16_t sba_order /* i : Ambisonic (SBA) order */ + const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { float pred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; float dm_fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; - +#ifdef SBA_HOA_HBR_IMPROV + float pred_coeffs_re_local[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; +#endif int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; int16_t j, planarCP; int16_t num_bands = pIn_buf->num_bands; @@ -576,7 +592,7 @@ ivas_error ivas_spar_md_enc_process( BSTR_ENC_DATA hMetaData_tmp; Indice ind_list_tmp[MAX_BITS_METADATA]; // IVAS_fmToDo: size to be optimized float Wscale[IVAS_MAX_NUM_BANDS]; - + num_quant_strats = hMdEnc->spar_md_cfg.num_quant_strats; num_ch = ivas_sba_get_nchan_metadata( sba_order ); active_w = hMdEnc->spar_md_cfg.active_w; @@ -615,6 +631,20 @@ ivas_error ivas_spar_md_enc_process( bands_bw = 1; } +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdEnc->spar_hoa_md_flag ) + { + for ( b = SPAR_DIRAC_SPLIT_START_BAND; b < num_bands; b++ ) + { + for ( i = 0; i < FOA_CHANNELS - 1; i++ ) + { + pred_coeffs_re_local[i][b] = + hMdEnc->spar_md.band_coeffs[b].pred_re[i]; + } + } + } +#endif + ivas_compute_spar_params( pIn_buf->cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); @@ -765,6 +795,24 @@ ivas_error ivas_spar_md_enc_process( } } +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdEnc->spar_hoa_md_flag ) + { + for ( b = SPAR_DIRAC_SPLIT_START_BAND; b < num_bands; b++ ) + { + for ( i = 0; i < FOA_CHANNELS - 1; i++ ) + { + /* Use the prediction coeffs computed based on DirAC MD + to generate mixer matrix */ + pred_coeffs_re[i][b] = + pred_coeffs_re_local[i][b]; + hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i] = 0; + hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re[i] = 0; + } + } + } +#endif + ivas_create_fullr_dmx_mat( pred_coeffs_re, dm_fv_re, hMdEnc->mixer_mat, num_ch, 0, num_bands, active_w, &hMdEnc->spar_md_cfg ); for ( b = 0; b < num_bands; b++ ) @@ -1245,6 +1293,7 @@ static void ivas_get_huffman_coded_bs( const int16_t planarCP ) { int16_t i, j; + int16_t pred_coeff_dim, pred_offset; for ( i = 0; i < nB; i++ ) { @@ -1252,9 +1301,21 @@ static void ivas_get_huffman_coded_bs( int16_t ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[i]; int16_t ndec = hMdEnc->spar_md_cfg.num_decorr_per_band[i]; + pred_coeff_dim = ndm + ndec - 1; + pred_offset = 0; +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdEnc->spar_hoa_md_flag ) + { + if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) + { + pred_offset = FOA_CHANNELS - 1; + } + } +#endif + if ( planarCP ) { - for ( j = 0; j < ndm + ndec - 1; j++ ) + for ( j = pred_offset; j < pred_coeff_dim; j++ ) { ivas_huffman_encode( &hMdEnc->huff_coeffs.pred_huff_re[qsi], hMdEnc->spar_md.band_coeffs_idx[i].pred_index_re[j], &code, &len ); push_next_indice( hMetaData, code, len ); @@ -1280,7 +1341,7 @@ static void ivas_get_huffman_coded_bs( } else { - for ( j = 0; j < ndm + ndec - 1; j++ ) + for ( j = pred_offset; j < pred_coeff_dim; j++ ) { ivas_huffman_encode( &hMdEnc->huff_coeffs.pred_huff_re[qsi], hMdEnc->spar_md.band_coeffs_idx[i].pred_index_re[j], &code, &len ); push_next_indice( hMetaData, code, len ); @@ -1333,6 +1394,15 @@ static void ivas_get_arith_coded_bs( ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; ndec = hMdEnc->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_cell_dims[i].dim1 = ndm + ndec - 1; +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdEnc->spar_hoa_md_flag ) + { + if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) + { + pred_cell_dims[i].dim1 -= ( FOA_CHANNELS - 1 ); + } + } +#endif pred_cell_dims[i].dim2 = 1; drct_cell_dims[i].dim1 = ndec; drct_cell_dims[i].dim2 = ndm - 1; @@ -1351,7 +1421,28 @@ static void ivas_get_arith_coded_bs( break; } } - +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdEnc->spar_hoa_md_flag ) + { + int16_t j; + for ( i = 0; i < nB; i++ ) + { + if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) + { + for ( j = 0; j < pred_cell_dims[i].dim1; j++ ) + { + hMdEnc->spar_md.band_coeffs_idx[i].pred_index_re[j] = + hMdEnc->spar_md.band_coeffs_idx[i].pred_index_re[j + ( FOA_CHANNELS - 1 )]; + if ( any_diff == 1 ) + { + hMdEnc->spar_md_prior.band_coeffs_idx_mapped[i].pred_index_re[j] = + hMdEnc->spar_md_prior.band_coeffs_idx_mapped[i].pred_index_re[j + ( FOA_CHANNELS - 1 )]; + } + } + } + } + } +#endif ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); if ( any_diff == 1 ) @@ -1362,6 +1453,29 @@ static void ivas_get_arith_coded_bs( ivas_arith_encode_cmplx_cell_array( &hMdEnc->arith_coeffs.pred_arith_re[qsi], &hMdEnc->arith_coeffs.pred_arith_re_diff[qsi], pDo_diff, nB, symbol_arr_re, symbol_arr_old_re, pred_cell_dims, hMetaData, any_diff ); + +#ifdef SBA_HOA_HBR_IMPROV + if ( hMdEnc->spar_hoa_md_flag ) + { + int16_t j; + for ( i = 0; i < nB; i++ ) + { + if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) + { + for ( j = pred_cell_dims[i].dim1 - 1; j >= 0; j-- ) + { + hMdEnc->spar_md.band_coeffs_idx[i].pred_index_re[j + ( FOA_CHANNELS - 1 )] = + hMdEnc->spar_md.band_coeffs_idx[i].pred_index_re[j]; + } + for ( j = 0; j < FOA_CHANNELS - 1; j++ ) + { + hMdEnc->spar_md.band_coeffs_idx[i].pred_index_re[j] = 0; + } + } + } + } +#endif + #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n band_indexes:\n"); for (int16_t j = 1; j < drct_cell_dims[0].dim1 * drct_cell_dims[0].dim2; j++) diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 2ed6a0ff91..99c974ff3f 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -654,7 +654,9 @@ typedef struct ivas_spar_md_enc_state_t ivas_arith_coeffs_t arith_coeffs; ivas_huff_coeffs_t huff_coeffs; int16_t table_idx; - +#ifdef SBA_HOA_HBR_IMPROV + int16_t spar_hoa_md_flag; +#endif } ivas_spar_md_enc_state_t; typedef struct ivas_spar_md_enc_in_buf_t -- GitLab From f033b2175bf4e6da1116a29768f5d1fc10929264 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Tue, 6 Sep 2022 09:11:38 +0200 Subject: [PATCH 057/479] remove unnecessary double pointer which also fixes instrumented build --- lib_dec/tonalMDCTconcealment.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 4a63761d16..872cf1efa9 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -1158,17 +1158,17 @@ void TonalMdctConceal_whiten_noise_shape( const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE whitening_mode ) { - float whitenend_noise_shape[L_FRAME16k]; int16_t inc, start_idx, stop_idx; float *noiseLevelPtr, *scfs_bg, *scfs_for_shaping; - PsychoacousticParameters **psychParams; HANDLE_FD_CNG_COM hFdCngCom; + float whitenend_noise_shape[L_FRAME16k]; float scfs_int[FDNS_NPTS]; + const PsychoacousticParameters *psychParams; wmops_sub_start( "apply_sns_on_noise_shape" ); scfs_bg = &st->hTonalMDCTConc->scaleFactorsBackground[0]; - psychParams = &st->hTonalMDCTConc->psychParams; + psychParams = st->hTonalMDCTConc->psychParams; hFdCngCom = st->hFdCngDec->hFdCngCom; inc = ( ( whitening_mode == ON_FIRST_LOST_FRAME ? st->core : st->last_core ) > TCX_20_CORE ) ? 2 : 1; @@ -1186,7 +1186,7 @@ void TonalMdctConceal_whiten_noise_shape( { float scf[SNS_NPTS]; - sns_compute_scf( whitenend_noise_shape, *psychParams, L_frame, scf ); + sns_compute_scf( whitenend_noise_shape, psychParams, L_frame, scf ); sns_interpolate_scalefactors( scfs_int, scf, ENC ); sns_interpolate_scalefactors( scfs_bg, scf, DEC ); scfs_for_shaping = &scfs_int[0]; @@ -1198,7 +1198,7 @@ void TonalMdctConceal_whiten_noise_shape( if ( sum_f( scfs_for_shaping, FDNS_NPTS ) > 0.0f ) { - sns_shape_spectrum( whitenend_noise_shape, *psychParams, scfs_for_shaping, L_frame ); + sns_shape_spectrum( whitenend_noise_shape, psychParams, scfs_for_shaping, L_frame ); mvr2r( whitenend_noise_shape + start_idx, hFdCngCom->cngNoiseLevel, stop_idx - start_idx ); } else -- GitLab From 3d76e64f9c7ab75e1ca5659fc3c37bb8dff30612 Mon Sep 17 00:00:00 2001 From: rtyag Date: Fri, 9 Sep 2022 16:11:58 +1000 Subject: [PATCH 058/479] changes to fix review comments --- lib_com/ivas_prot.h | 18 +++++++++++------- lib_com/ivas_sba_config.c | 25 +++++++++++++++++++++++++ lib_dec/ivas_spar_decoder.c | 16 +--------------- lib_dec/ivas_spar_md_dec.c | 18 ++++++++++-------- lib_enc/ivas_dirac_enc.c | 15 ++++++++++----- lib_enc/ivas_mcmasa_enc.c | 2 +- lib_enc/ivas_spar_encoder.c | 23 ++--------------------- lib_enc/ivas_spar_md_enc.c | 6 +----- 8 files changed, 61 insertions(+), 62 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 15b0cb4459..c66f063107 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3001,7 +3001,7 @@ void ivas_dirac_param_est_enc( const int16_t input_frame #ifdef SBA_HOA_HBR_IMPROV , - const int16_t merged_sba_mode + const SBA_MODE sba_mode #endif ); @@ -3063,6 +3063,14 @@ int16_t ivas_sba_get_nchan_metadata( const int16_t sba_order /* i : Ambisonic (SBA) order */ ); +#ifdef SBA_HOA_HBR_IMPROV +/*! r: get the flag to code SPAR HOA MD for all band */ +int16_t ivas_sba_get_spar_hoa_md_flag( + const int16_t sba_order, /* i : Ambisonic (SBA) order */ + const int32_t ivas_total_brate /* i : IVAS total bitrate */ +); +#endif + void ivas_sba_zero_vert_comp( float sba_data[][L_FRAME48k], /* i/o: SBA data frame */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ @@ -3870,10 +3878,6 @@ ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ const int16_t sba_order /* i : Ambisonic (SBA) order */ -#ifdef SBA_HOA_HBR_IMPROV - , - const int16_t spar_hoa_md_flag /* i : flag to send HOA MD for all bands */ -#endif ); void ivas_spar_md_enc_close( @@ -3951,7 +3955,7 @@ ivas_error ivas_spar_md_dec_open( const int16_t num_channels /* i : number of internal channels */ #ifdef SBA_HOA_HBR_IMPROV , - const int16_t spar_hoa_md_flag /* i : flag to send HOA MD for all bands */ + const int16_t sba_order /* i : flag to send HOA MD for all bands */ #endif ); @@ -4780,7 +4784,7 @@ void computeReferencePower_enc( const int16_t num_freq_bands /* i : Number of frequency bands */ #ifdef SBA_HOA_HBR_IMPROV , - const int16_t merged_sba_mode + const SBA_MODE sba_mode /* i : SBA mode */ #endif ); diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index 2ea07710bc..34c3a811a2 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -289,6 +289,31 @@ int16_t ivas_sba_get_nchan_metadata( return ( nb_channels ); } +#ifdef SBA_HOA_HBR_IMPROV +/*-------------------------------------------------------------------* + * ivas_sba_get_spar_hoa_md_flag() + * + * et the flag to code SPAR HOA MD for all band + *-------------------------------------------------------------------*/ + +/*! r: get the flag to code SPAR HOA MD for all band */ +int16_t ivas_sba_get_spar_hoa_md_flag( + const int16_t sba_order, /* i : Ambisonic (SBA) order */ + const int32_t ivas_total_brate /* i : IVAS total bitrate */ +) +{ + int16_t spar_hoa_md_flag = 0; + if ( sba_order > 1 && ivas_total_brate >= IVAS_256k ) + { + spar_hoa_md_flag = 1; + } + else + { + spar_hoa_md_flag = 0; + } + return spar_hoa_md_flag; +} +#endif /*-------------------------------------------------------------------* * ivas_sba_zero_vert_comp() diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 56834b4a78..29f0d9c674 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -69,9 +69,6 @@ ivas_error ivas_spar_dec_open( IVAS_FB_CFG *fb_cfg; int16_t i, j, b, active_w_mixing; int32_t output_Fs; -#ifdef SBA_HOA_HBR_IMPROV - int16_t spar_hoa_md_flag; -#endif error = IVAS_ERR_OK; sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); @@ -83,17 +80,6 @@ ivas_error ivas_spar_dec_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR decoder" ); } -#ifdef SBA_HOA_HBR_IMPROV - if ( st_ivas->sba_order > 1 && st_ivas->hDecoderConfig->ivas_total_brate >= IVAS_256k ) - { - spar_hoa_md_flag = 1; - } - else - { - spar_hoa_md_flag = 0; - } -#endif - output_Fs = st_ivas->hDecoderConfig->output_Fs; /* TD decorr. */ @@ -106,7 +92,7 @@ ivas_error ivas_spar_dec_open( if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal #ifdef SBA_HOA_HBR_IMPROV , - spar_hoa_md_flag + sba_order_internal #endif ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index db7959d92f..76da72bd41 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -254,7 +254,7 @@ ivas_error ivas_spar_md_dec_open( const int16_t num_channels /* i : number of internal channels */ #ifdef SBA_HOA_HBR_IMPROV , - const int16_t spar_hoa_md_flag /* i : flag to send HOA MD for all bands */ + const int16_t sba_order /* i : SBA order */ #endif ) { @@ -274,7 +274,7 @@ ivas_error ivas_spar_md_dec_open( } #ifdef SBA_HOA_HBR_IMPROV - hMdDec->spar_hoa_md_flag = spar_hoa_md_flag; + hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); #endif hMdDec->table_idx = 0; /* just to initialize state variables*/ @@ -447,9 +447,16 @@ ivas_error ivas_spar_md_dec_init( float pFC[IVAS_MAX_NUM_BANDS], PR_minmax[2]; hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? + +#ifdef SBA_HOA_HBR_IMPROV + hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); +#else + hMdDec->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); +#endif + ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, #ifdef SBA_HOA_HBR_IMPROV - ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) + hMdDec->spar_md.num_bands #else min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) #endif @@ -538,11 +545,6 @@ ivas_error ivas_spar_md_dec_init( ivas_clear_band_coeff_idx( hMdDec->spar_md_prev.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); hMdDec->spar_md.dtx_vad = 0; -#ifdef SBA_HOA_HBR_IMPROV - hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); -#else - hMdDec->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); -#endif hMdDec->td_decorr_flag = 1; set_f( hMdDec->spar_md.en_ratio_slow, 0.0f, IVAS_MAX_NUM_BANDS ); diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index bbb8c7ff5e..50e2255572 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -340,7 +340,7 @@ void ivas_dirac_enc( ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame #ifdef SBA_HOA_HBR_IMPROV , - 0 + SBA_MODE_DIRAC #endif ); /* encode parameters */ @@ -488,7 +488,7 @@ void computeReferencePower_enc( const int16_t num_freq_bands /* i : Number of frequency bands */ #ifdef SBA_HOA_HBR_IMPROV , - const int16_t merged_sba_mode + const SBA_MODE sba_mode #endif ) { @@ -511,8 +511,13 @@ void computeReferencePower_enc( { reference_power_W[i] += ( Cldfb_RealBuffer[0][j] * Cldfb_RealBuffer[0][j] ) + ( Cldfb_ImagBuffer[0][j] * Cldfb_ImagBuffer[0][j] ); } + reference_power[i] += reference_power_W[i]; #endif +#ifdef SBA_HOA_HBR_IMPROV + for ( ch_idx = 1; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) +#else for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) +#endif { /* abs()^2 */ for ( j = brange[0]; j < brange[1]; j++ ) @@ -524,7 +529,7 @@ void computeReferencePower_enc( v_multc( reference_power, 0.5f, reference_power, num_freq_bands ); #ifdef SBA_HOA_HBR_IMPROV - if ( merged_sba_mode ) + if ( sba_mode == SBA_MODE_SPAR ) { for ( i = 0; i < num_freq_bands; i++ ) { @@ -551,7 +556,7 @@ void ivas_dirac_param_est_enc( const int16_t input_frame #ifdef SBA_HOA_HBR_IMPROV , - const int16_t merged_sba_mode + const SBA_MODE sba_mode #endif ) { @@ -654,7 +659,7 @@ void ivas_dirac_param_est_enc( num_freq_bands #ifdef SBA_HOA_HBR_IMPROV , - merged_sba_mode + sba_mode #endif ); diff --git a/lib_enc/ivas_mcmasa_enc.c b/lib_enc/ivas_mcmasa_enc.c index 6b38f6a588..1329e572ae 100644 --- a/lib_enc/ivas_mcmasa_enc.c +++ b/lib_enc/ivas_mcmasa_enc.c @@ -895,7 +895,7 @@ void ivas_mcmasa_param_est_enc( num_freq_bands #ifdef SBA_HOA_HBR_IMPROV , - 0 + SBA_MODE_NONE #endif ); diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 529590ff25..413b202597 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -68,9 +68,6 @@ ivas_error ivas_spar_enc_open( int16_t table_idx, active_w_mixing; int32_t input_Fs, ivas_total_brate; ivas_error error; -#ifdef SBA_HOA_HBR_IMPROV - int16_t spar_hoa_md_flag; -#endif hEncoderConfig = st_ivas->hEncoderConfig; error = IVAS_ERR_OK; @@ -81,17 +78,6 @@ ivas_error ivas_spar_enc_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR encoder" ); } -#ifdef SBA_HOA_HBR_IMPROV - if ( hEncoderConfig->sba_order > 1 && hEncoderConfig->ivas_total_brate >= IVAS_256k ) - { - spar_hoa_md_flag = 1; - } - else - { - spar_hoa_md_flag = 0; - } -#endif - input_Fs = hEncoderConfig->input_Fs; sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); nchan_inp = ivas_sba_get_nchan_metadata( sba_order_internal ); @@ -104,12 +90,7 @@ ivas_error ivas_spar_enc_open( // ivas_set_bitrate_config(&hSpar->hMdEnc->spar_md_cfg, table_idx); /* MD handle */ - if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig, sba_order_internal -#ifdef SBA_HOA_HBR_IMPROV - , - spar_hoa_md_flag -#endif - ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig, sba_order_internal ) ) != IVAS_ERR_OK ) { return error; } @@ -537,7 +518,7 @@ static ivas_error ivas_spar_enc_process( data_f, cov_in_buf.ppIn_FR_real, cov_in_buf.ppIn_FR_imag, input_frame #ifdef SBA_HOA_HBR_IMPROV , - 1 + st_ivas->sba_mode #endif ); diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index cd4dd00155..e3ded8f3a7 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -109,10 +109,6 @@ ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc_in, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ const int16_t sba_order /* i : Ambisonic (SBA) order */ -#ifdef SBA_HOA_HBR_IMPROV - , - const int16_t spar_hoa_md_flag /* i : flag to send HOA MD for all bands */ -#endif ) { ivas_spar_md_enc_state_t *hMdEnc; @@ -129,7 +125,7 @@ ivas_error ivas_spar_md_enc_open( num_channels = 2 * sba_order + 2; #ifdef SBA_HOA_HBR_IMPROV - hMdEnc->spar_hoa_md_flag = spar_hoa_md_flag; + hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); #endif if ( ( hMdEnc->spar_md.band_coeffs = (ivas_band_coeffs_t *) count_malloc( IVAS_MAX_NUM_BANDS * sizeof( ivas_band_coeffs_t ) ) ) == NULL ) -- GitLab From 9d5d5c463b9273020ab812e6001cf84c1060eaa9 Mon Sep 17 00:00:00 2001 From: muxe6256 Date: Mon, 12 Sep 2022 17:51:23 +0200 Subject: [PATCH 059/479] make sure exe are copied to root and print command --- CMakeLists.txt | 2 ++ scripts/tests/test_renderer.py | 1 + 2 files changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 806f1f3e2a..abcad632f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,6 +167,8 @@ endif() add_executable(IVAS_rend apps/renderer.c) target_link_libraries(IVAS_rend lib_rend lib_util) +set (COPY_EXECUTABLES_TO_ROOT TRUE) + if(COPY_EXECUTABLES_TO_ROOT) # Optionally copy executables to root directory after build add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index c66a4747d6..88cc770c08 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -161,6 +161,7 @@ def run_renderer( cmd.extend(["-tf", str(trj_file)]) try: + print (' '.join(cmd)) sp.run(cmd, check=True, capture_output=True, text=True) except sp.CalledProcessError as e: pytest.fail( -- GitLab From ea5ce9b0e07428cfd631eed7778fca00528cec97 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 12 Sep 2022 18:55:14 +0200 Subject: [PATCH 060/479] reintroduce warning print-out that bandwidth was reduced automatically due to bitrate; also remove redundant printout of "Bandwidth limited to XX." as the same info is already present in "Max. encoded bandwidth: XX"; changes are under FIX_I74_BW_LIMITATION_ALT --- lib_enc/lib_enc.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 345053eefc..704121b563 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1413,7 +1413,9 @@ static ivas_error printConfigInfo_enc( { Encoder_Struct *st_ivas; ENCODER_CONFIG_HANDLE hEncoderConfig; +#ifndef FIX_I74_BW_LIMITATION_ALT char max_bwidth_string[4]; +#endif st_ivas = hIvasEnc->st_ivas; hEncoderConfig = st_ivas->hEncoderConfig; @@ -1554,6 +1556,7 @@ static ivas_error printConfigInfo_enc( * Print potential limitation of audio bandwidth *-----------------------------------------------------------------*/ +#ifndef FIX_I74_BW_LIMITATION_ALT switch ( hEncoderConfig->max_bwidth ) { case NB: @@ -1569,19 +1572,43 @@ static ivas_error printConfigInfo_enc( strncpy( max_bwidth_string, "FB\0", sizeof( max_bwidth_string ) ); break; } +#endif if ( st_ivas->hEncoderConfig->Opt_SC_VBR && !hEncoderConfig->Opt_DTX_ON ) { return IVAS_ERROR( IVAS_ERR_WRONG_PARAMS, "\nError: SC-VBR 5900 bps not supported without DTX\n\n" ); } +#ifndef FIX_I74_BW_LIMITATION_ALT if ( hIvasEnc->maxBandwidthUser ) { fprintf( stdout, "\nBandwidth limited to %s.\n", max_bwidth_string ); } +#endif if ( hEncoderConfig->ivas_format == MONO_FORMAT ) { +#ifdef FIX_I74_BW_LIMITATION_ALT + if ( hIvasEnc->newBandwidthApi != hEncoderConfig->max_bwidth ) + { + if ( hIvasEnc->newBandwidthApi == FB ) + { + fprintf( stdout, "\nFB coding not supported below %.2f kbps. ", ACELP_16k40 / 1000.f ); + if ( hEncoderConfig->max_bwidth == WB ) + { + fprintf( stdout, "Switching to WB.\n" ); + } + else + { + fprintf( stdout, "Switching to SWB.\n" ); + } + } + else if ( hIvasEnc->newBandwidthApi == SWB ) + { + fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.\n", ACELP_9k60 / 1000.f ); + } + } +#else if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < ACELP_16k40 ) { fprintf( stdout, "\nFB coding not supported below %.2f kbps. ", ACELP_16k40 / 1000.f ); @@ -1599,9 +1626,14 @@ static ivas_error printConfigInfo_enc( { fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.", ACELP_9k60 / 1000.f ); } +#endif /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ +#ifdef FIX_I74_BW_LIMITATION_ALT + if ( ( hIvasEnc->newBandwidthApi == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) +#else if ( ( hEncoderConfig->max_bwidth == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) +#endif { fprintf( stdout, "\nError: Unsupported mode NB %d bps, NB mode supports rates 5900-24400 bps\n\n", hEncoderConfig->ivas_total_brate ); return IVAS_ERR_INVALID_BITRATE; @@ -1609,7 +1641,11 @@ static ivas_error printConfigInfo_enc( } else { +#ifdef FIX_I74_BW_LIMITATION_ALT + if ( hIvasEnc->newBandwidthApi != hEncoderConfig->max_bwidth ) +#else if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) +#endif { fprintf( stdout, "\nFB coding not supported below %.2f kbps. Switching to SWB.\n", MIN_BRATE_FB_STEREO / 1000.f ); } -- GitLab From 883bc1c984b92eeb695840bbf30f3ea594c39010 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 12 Sep 2022 19:06:17 +0200 Subject: [PATCH 061/479] fix Linux builds --- lib_enc/lib_enc.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 704121b563..ab34209495 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1415,6 +1415,9 @@ static ivas_error printConfigInfo_enc( ENCODER_CONFIG_HANDLE hEncoderConfig; #ifndef FIX_I74_BW_LIMITATION_ALT char max_bwidth_string[4]; +#else + int16_t newBandwidthApi; + ivas_error error; #endif st_ivas = hIvasEnc->st_ivas; @@ -1556,7 +1559,12 @@ static ivas_error printConfigInfo_enc( * Print potential limitation of audio bandwidth *-----------------------------------------------------------------*/ -#ifndef FIX_I74_BW_LIMITATION_ALT +#ifdef FIX_I74_BW_LIMITATION_ALT + if ( ( error = bandwidthApiToInternal( hIvasEnc->newBandwidthApi, &newBandwidthApi ) ) != IVAS_ERR_OK ) + { + return error; + } +#else switch ( hEncoderConfig->max_bwidth ) { case NB: @@ -1589,9 +1597,9 @@ static ivas_error printConfigInfo_enc( if ( hEncoderConfig->ivas_format == MONO_FORMAT ) { #ifdef FIX_I74_BW_LIMITATION_ALT - if ( hIvasEnc->newBandwidthApi != hEncoderConfig->max_bwidth ) + if ( newBandwidthApi != hEncoderConfig->max_bwidth ) { - if ( hIvasEnc->newBandwidthApi == FB ) + if ( newBandwidthApi == FB ) { fprintf( stdout, "\nFB coding not supported below %.2f kbps. ", ACELP_16k40 / 1000.f ); if ( hEncoderConfig->max_bwidth == WB ) @@ -1630,7 +1638,7 @@ static ivas_error printConfigInfo_enc( /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ #ifdef FIX_I74_BW_LIMITATION_ALT - if ( ( hIvasEnc->newBandwidthApi == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) + if ( ( newBandwidthApi == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) #else if ( ( hEncoderConfig->max_bwidth == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) #endif -- GitLab From 35303c95a94298a1c1d54d42690949006237a737 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 12 Sep 2022 19:13:14 +0200 Subject: [PATCH 062/479] fix Linux builds --- lib_enc/lib_enc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index ab34209495..5651e1e962 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1611,7 +1611,7 @@ static ivas_error printConfigInfo_enc( fprintf( stdout, "Switching to SWB.\n" ); } } - else if ( hIvasEnc->newBandwidthApi == SWB ) + else if ( newBandwidthApi == SWB ) { fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.\n", ACELP_9k60 / 1000.f ); } @@ -1650,7 +1650,7 @@ static ivas_error printConfigInfo_enc( else { #ifdef FIX_I74_BW_LIMITATION_ALT - if ( hIvasEnc->newBandwidthApi != hEncoderConfig->max_bwidth ) + if ( newBandwidthApi != hEncoderConfig->max_bwidth ) #else if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) #endif -- GitLab From c7f9fef4a46b854e2096a9b9e35274285d0c883d Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 14 Sep 2022 10:52:55 +0200 Subject: [PATCH 063/479] Added SWB TBE target fix under FIX_I102_SWB_TBE_SWITCH --- lib_com/options.h | 1 + lib_dec/acelp_core_dec.c | 9 ++++- lib_enc/acelp_core_enc.c | 7 ++++ lib_enc/swb_pre_proc.c | 71 ++++++++++++++++++++++++++++++++-------- 4 files changed, 73 insertions(+), 15 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index dede5c1480..263d5efc8e 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,6 +149,7 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ +//#define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c index 7951f10d54..b98312a133 100644 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -701,7 +701,14 @@ ivas_error acelp_core_dec( mvr2r( old_exc_s + st->L_frame - M, st->mem_syn2, M ); residu( Aq, M, old_exc_s, old_exc + L_EXC_MEM_DEC - st->L_frame, st->L_frame ); } - +#ifdef FIX_I102_SWB_TBE_SWITCH + if ( st->last_core != ACELP_CORE && st->element_mode > EVS_MONO ) + { + /* Prepare ACB memory of old_bwe_exc */ + lerp( old_exc, old_bwe_exc, L_EXC_MEM_DEC * HIBND_ACB_L_FAC, L_EXC_MEM_DEC ); + + } +#endif /*-----------------------------------------------------------------* * FEC - first good frame after lost frame(s) (possibility to correct the ACB) *-----------------------------------------------------------------*/ diff --git a/lib_enc/acelp_core_enc.c b/lib_enc/acelp_core_enc.c index 8420810339..e4ce289a9e 100644 --- a/lib_enc/acelp_core_enc.c +++ b/lib_enc/acelp_core_enc.c @@ -472,6 +472,13 @@ ivas_error acelp_core_enc( mvr2r( hLPDmem->old_exc + st->L_frame - M, hLPDmem->mem_syn, M ); residu( Aq, M, hLPDmem->old_exc, old_exc, st->L_frame ); } +#ifdef FIX_I102_SWB_TBE_SWITCH + if ( st->last_core != ACELP_CORE && st->element_mode > EVS_MONO ) + { + /* Prepare ACB memory of old_bwe_exc */ + lerp( old_exc, old_bwe_exc, L_EXC_MEM_DEC * HIBND_ACB_L_FAC, L_EXC_MEM_DEC ); + } +#endif /*---------------------------------------------------------------* * Calculation of LP residual (filtering through A[z] filter) diff --git a/lib_enc/swb_pre_proc.c b/lib_enc/swb_pre_proc.c index 99c410ed47..e4779d0920 100644 --- a/lib_enc/swb_pre_proc.c +++ b/lib_enc/swb_pre_proc.c @@ -288,6 +288,10 @@ void swb_pre_proc( int32_t inner_Fs, input_Fs; float old_input[NS2SA( 48000, DELAY_FD_BWE_ENC_NS + DELAY_FIR_RESAMPL_NS ) + L_FRAME48k]; float spchTmp[640]; +#ifdef FIX_I102_SWB_TBE_SWITCH + float spchTmp2[640]; + int16_t L_resamp; +#endif int16_t i, j; int16_t startB, endB; float *realBufferFlipped[CLDFB_NO_COL_MAX]; @@ -677,6 +681,7 @@ void swb_pre_proc( } else { +#ifndef FIX_I102_SWB_TBE_SWITCH if ( st->bwidth == FB || st->core == ACELP_CORE || ( st->element_mode == IVAS_CPE_DFT && input_Fs == 48000 ) ) { set_f( hBWE_TD->old_speech_shb, 0, L_LOOK_16k + L_SUBFR16k ); @@ -697,39 +702,77 @@ void swb_pre_proc( } else { - /* flip the spectrm */ +#else + if ( st->L_frame == L_FRAME ) + { + L_resamp = 560; /* 6.4 kHz core -> 6 - 14 kHz band target -> 560 samples in 28 kHz sample rate */ + } + else + { + L_resamp = 620; /* 8 kHz core -> 7.5 - 15.5 kHz band target -> 620 samples in 31 kHz sample rate */ + } + + /* Dirty downsampling to match Nyquist to upper frequency limit of target */ + lerp( st->input, new_swb_speech, L_resamp, (int16_t) ( input_Fs / 50 ) ); + + /* flip the spectrum */ + mvr2r( new_swb_speech, spchTmp, L_resamp ); + for ( i = 0; i < L_resamp; i = i + 2 ) + { + spchTmp[i] = -spchTmp[i]; + } + + /* Dirty upsampling to match Nyquist to lower frequency limit of target (reversed spectrum)*/ + lerp( spchTmp, spchTmp2, L_FRAME32k, L_resamp ); + mvr2r( spchTmp2, spchTmp, L_FRAME32k ); +#endif +#ifndef FIX_I102_SWB_TBE_SWITCH + /* flip the spectrm */ mvr2r( new_swb_speech, spchTmp, L_FRAME32k ); for ( i = 0; i < L_FRAME32k; i = i + 2 ) { spchTmp[i] = -spchTmp[i]; } +#endif + Decimate_allpass_steep( spchTmp, hBWE_TD->state_ana_filt_shb, L_FRAME32k, shb_speech ); - Decimate_allpass_steep( spchTmp, hBWE_TD->state_ana_filt_shb, L_FRAME32k, shb_speech ); - mvr2r( shb_speech + L_FRAME16k - ( L_LOOK_16k + L_SUBFR16k ), hBWE_TD->old_speech_shb, L_LOOK_16k + L_SUBFR16k ); + mvr2r( shb_speech + L_FRAME16k - ( L_LOOK_16k + L_SUBFR16k ), hBWE_TD->old_speech_shb, L_LOOK_16k + L_SUBFR16k ); - /*Compute the past overlap for potential next iDFTs SHB*/ - if ( st->element_mode == IVAS_CPE_DFT ) + /*Compute the past overlap for potential next iDFTs SHB*/ + if ( st->element_mode == IVAS_CPE_DFT ) + { + for ( i = 0; i < STEREO_DFT_OVL_16k; i++ ) { - for ( i = 0; i < STEREO_DFT_OVL_16k; i++ ) - { - hCPE->hStereoDft->output_mem_dmx_16k_shb[i] = shb_speech[20 + i] * hCPE->hStereoDft->win_ana_16k[STEREO_DFT_OVL_16k - 1 - i] * hCPE->hStereoDft->win_ana_16k[STEREO_DFT_OVL_16k - 1 - i]; - } + hCPE->hStereoDft->output_mem_dmx_16k_shb[i] = shb_speech[20 + i] * hCPE->hStereoDft->win_ana_16k[STEREO_DFT_OVL_16k - 1 - i] * hCPE->hStereoDft->win_ana_16k[STEREO_DFT_OVL_16k - 1 - i]; } } +#ifndef FIX_I102_SWB_TBE_SWITCH + } +#endif - if ( st->element_mode != IVAS_CPE_DFT ) - { - /* Reset CLDFB synthesis buffer */ - set_f( st->cldfbSynTd->cldfb_state, 0.0f, st->cldfbSynTd->p_filter_length ); - } + if ( st->element_mode != IVAS_CPE_DFT ) + { + /* Reset CLDFB synthesis buffer */ + set_f( st->cldfbSynTd->cldfb_state, 0.0f, st->cldfbSynTd->p_filter_length ); + } +#ifdef FIX_I102_SWB_TBE_SWITCH + else + { + hCPE->hStereoDft->flip_sign = -hCPE->hStereoDft->flip_sign; /* Make sure sign is updated even if DFT SHB target is not generated */ } +#endif +} /* Memory reset to compensate for 0.9375 ms offset when transitioning from IO to SWB */ /* When switching from n >1 to n = 1, we keep the enc/dec delay as 8.75/3.25 and below code not needed; only when n = 1 start, it will be 9.6875/2.3125 in that case this reset is needed for IO->BWE.*/ +#ifdef FIX_I102_SWB_TBE_SWITCH + if ( st->last_extl == -1 && st->element_mode == EVS_MONO ) +#else /* IVAS_fmToDo: revisit for IVAS (the condition is currently entered for both TD and DFT stereo - is it desirable?) */ if ( st->last_extl == -1 ) +#endif { delay = NS2SA( input_Fs, DELAY_FIR_RESAMPL_NS ); for ( i = 0; i < delay; i++ ) -- GitLab From 999e2b00045a426d0747ad438daaf639a6bf8029 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 14 Sep 2022 16:39:37 +0200 Subject: [PATCH 064/479] Enable FIX_I102_SWB_TBE_SWITCH --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 263d5efc8e..eb92020943 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,7 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ -//#define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ +#define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ -- GitLab From 580c79fad96dfa6fd6b26c1ea4d384fca4f94937 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 15 Sep 2022 15:35:32 +0200 Subject: [PATCH 065/479] create test jobs for sanitizer scheduling --- .gitlab-ci.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 624322e87b..8e14dc322f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -492,6 +492,29 @@ sanitizer-test-on-main-scheduled: - "./*/logs" +# --------------------------------------------------------------- +# Scheduled sanitizer tests on main +# --------------------------------------------------------------- +sanitizer-test-mono: + extends: + - .test-job-linux-needs-testv-dir + stage: test + rules: + - if: $IS_SANITIZER_TEST_RUN + script: + - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests CLANG1 CLANG2 + +sanitizer-test-stereo: + extends: + - .test-job-linux-needs-testv-dir + stage: test + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 20 minutes + script: + - python3 ci/run_scheduled_sanitizer_test.py stereo stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 --tests CLANG1 CLANG2 + # --------------------------------------------------------------- # Other jobs # --------------------------------------------------------------- -- GitLab From f8b66c791a4ad3796fd925feea78af30d4a6bfac Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 15 Sep 2022 15:36:40 +0200 Subject: [PATCH 066/479] allow scheduled pipelines also on non-main branches --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e14dc322f..3b669889b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,6 +13,7 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' # Runs for merge requests - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main + - if: $CI_PIPELINE_SOURCE == 'schedule' # temporary: any scheduled pipeline (for testing on other branch than main) stages: -- GitLab From 068c61a19fef831ecd89e138d999621c047b858e Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 15 Sep 2022 15:51:12 +0200 Subject: [PATCH 067/479] add tags for scheduled jobs --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3b669889b1..5b5f7c52b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -500,6 +500,8 @@ sanitizer-test-mono: extends: - .test-job-linux-needs-testv-dir stage: test + tags: + - sanitizer_test_main rules: - if: $IS_SANITIZER_TEST_RUN script: @@ -509,6 +511,8 @@ sanitizer-test-stereo: extends: - .test-job-linux-needs-testv-dir stage: test + tags: + - sanitizer_test_main rules: - if: $IS_SANITIZER_TEST_RUN when: delayed -- GitLab From e80b8a3f2f0a3f205f367988219148ca3c736d25 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 16 Sep 2022 09:13:08 +0200 Subject: [PATCH 068/479] add jobs for all input formats to sanitizer pipeline --- .gitlab-ci.yml | 176 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 148 insertions(+), 28 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5b5f7c52b1..36923fb48d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ variables: TESTV_DIR: "/usr/local/testv" BUILD_OUTPUT: "build_output.txt" EVS_BE_TEST_DIR: "/usr/local/be_2_evs_test" + SANITIZER_TESTS: "CLANG1 CLANG2" # This sets when pipelines are created. Jobs have more specific rules to restrict them. @@ -464,39 +465,117 @@ codec-comparison-on-main-push: junit: report-junit.xml -# parameterizable job for sanitizer tests per format -# how to set up: create a schedule (CI/CD -> schedules) and enter the respective values for the environment variables: -# - SANITIZER_TEST_IN_FMT: input format -# - SANITIZER_TEST_OUT_FMTS: list of output formats, blank-separated, e.g.: stereo mono 5_1 -# - SANITIZER_TEST_TESTS: list of checks to do, can be one of CLANG1, CLANG2, CLANG3, VALGRIND -sanitizer-test-on-main-scheduled: - extends: +# --------------------------------------------------------------- +# Scheduled sanitizer tests on main +# --------------------------------------------------------------- +.sanitizer-test-template: + extends: - .test-job-linux-needs-testv-dir - # this next one is maybe not really needed, since there is the rule checking for the existence of the env vars below, but use for clarity - - .rules-main-scheduled + stage: test tags: - sanitizer_test_main + +sanitizer-test-mono: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + script: + - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS + +sanitizer-test-stereo: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 20 minutes + script: + - python3 ci/run_scheduled_sanitizer_test.py stereo stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 --tests $SANITIZER_TESTS + +sanitizer-test-stereodmxevs: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 40 minutes + script: + - python3 ci/run_scheduled_sanitizer_test.py StereoDmxEvs mono --tests $SANITIZER_TESTS + +sanitizer-test-ism1: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 1 hour + script: + - python3 ci/run_scheduled_sanitizer_test.py ISM1 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + +sanitizer-test-ism2: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 1 hour 30 minutes + script: + - python3 ci/run_scheduled_sanitizer_test.py ISM2 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + +sanitizer-test-ism3: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 2 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py ISM3 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + +sanitizer-test-ism4: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 2 hours 30 minutes + script: + - python3 ci/run_scheduled_sanitizer_test.py ISM4 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + +sanitizer-test-mc-5_1: + extends: + - .test-job-linux-needs-testv-dir stage: test + tags: + - sanitizer_test_main rules: - # only run in scheduled pipeline that passes this env vars - - if: $SANITIZER_TEST_IN_FMT && $SANITIZER_TEST_OUT_FMTS && $SANITIZER_TEST_TESTS + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 3 hours script: - - *print-common-info - - echo "Running scheduled sanitizer tests $SANITIZER_TEST_TESTS for input format $SANITIZER_TEST_IN_FMT and output format(s) $SANITIZER_TEST_OUT_FMTS" + - python3 ci/run_scheduled_sanitizer_test.py 5_1 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS - - python3 ci/run_scheduled_sanitizer_test.py $SANITIZER_TEST_IN_FMT $SANITIZER_TEST_OUT_FMTS --tests $SANITIZER_TEST_TESTS - artifacts: - name: "sanitizer-test-results-and-error_pattern-$SANITIZER_TEST_IN_FMT-in-$SANITIZER_TEST_OUT_FMTS-out" - when: always - paths: - - ep_015.g192 - - "./*/logs" +sanitizer-test-mc-5_1_2: + extends: + - .test-job-linux-needs-testv-dir + stage: test + tags: + - sanitizer_test_main + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 4 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS +sanitizer-test-mc-5_1_4: + extends: + - .test-job-linux-needs-testv-dir + stage: test + tags: + - sanitizer_test_main + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 5 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS -# --------------------------------------------------------------- -# Scheduled sanitizer tests on main -# --------------------------------------------------------------- -sanitizer-test-mono: +sanitizer-test-mc-7_1: extends: - .test-job-linux-needs-testv-dir stage: test @@ -504,10 +583,12 @@ sanitizer-test-mono: - sanitizer_test_main rules: - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 6 hours script: - - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests CLANG1 CLANG2 + - python3 ci/run_scheduled_sanitizer_test.py 7_1 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS -sanitizer-test-stereo: +sanitizer-test-mc-7_1_4: extends: - .test-job-linux-needs-testv-dir stage: test @@ -516,9 +597,48 @@ sanitizer-test-stereo: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 20 minutes + start_in: 7 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS + +sanitizer-test-masa: + extends: + - .test-job-linux-needs-testv-dir + stage: test + tags: + - sanitizer_test_main + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 8 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py MASA stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + +sanitizer-test-mc-sba: + extends: + - .test-job-linux-needs-testv-dir + stage: test + tags: + - sanitizer_test_main + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 9 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py SBA stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS + +sanitizer-test-mc-planarsba: + extends: + - .test-job-linux-needs-testv-dir + stage: test + tags: + - sanitizer_test_main + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 10 hours script: - - python3 ci/run_scheduled_sanitizer_test.py stereo stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 --tests CLANG1 CLANG2 + - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS # --------------------------------------------------------------- # Other jobs -- GitLab From c8fb106258d4808be2ad802f6d5cda2521e099a6 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 16 Sep 2022 11:30:47 +0200 Subject: [PATCH 069/479] test whether pipeline will continue if one of the jobs fails --- .gitlab-ci.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 36923fb48d..5805573311 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -481,13 +481,16 @@ sanitizer-test-mono: - if: $IS_SANITIZER_TEST_RUN script: - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS + - exit 1 # test whether this already fails the whole pipeline (I guess it should) sanitizer-test-stereo: extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 20 minutes + # TODO: change back + # start_in: 20 minutes + start_in: 5 minutes script: - python3 ci/run_scheduled_sanitizer_test.py stereo stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 --tests $SANITIZER_TESTS -- GitLab From 4f5c36150f7b49e43f789144bed968e4e858c437 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 16 Sep 2022 11:56:18 +0200 Subject: [PATCH 070/479] change testing values back to intended ones --- .gitlab-ci.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5805573311..36923fb48d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -481,16 +481,13 @@ sanitizer-test-mono: - if: $IS_SANITIZER_TEST_RUN script: - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS - - exit 1 # test whether this already fails the whole pipeline (I guess it should) sanitizer-test-stereo: extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - # TODO: change back - # start_in: 20 minutes - start_in: 5 minutes + start_in: 20 minutes script: - python3 ci/run_scheduled_sanitizer_test.py stereo stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 --tests $SANITIZER_TESTS -- GitLab From 8018526c1bbef914ebe60c204dba83b88d7fada2 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 16 Sep 2022 12:18:47 +0200 Subject: [PATCH 071/479] use variables for output formats --- .gitlab-ci.yml | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 36923fb48d..d3309a1719 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,11 @@ variables: BUILD_OUTPUT: "build_output.txt" EVS_BE_TEST_DIR: "/usr/local/be_2_evs_test" SANITIZER_TESTS: "CLANG1 CLANG2" + OUT_FORMATS_CHANNEL_BASED: "stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4" + OUT_FORMATS_SCENE_BASED: "FOA HOA2 HOA3" + OUT_FORMATS_BINAURAL: "BINAURAL BINAURAL_ROOM" + OUT_FORMATS_ALL_NO_EXT: "$OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL" + OUT_FORMATS_ALL: "$OUT_FORMATS_ALL_NO_EXT EXT" # This sets when pipelines are created. Jobs have more specific rules to restrict them. @@ -489,7 +494,7 @@ sanitizer-test-stereo: when: delayed start_in: 20 minutes script: - - python3 ci/run_scheduled_sanitizer_test.py stereo stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py stereo $OUT_FORMATS_CHANNEL_BASED --tests $SANITIZER_TESTS sanitizer-test-stereodmxevs: extends: .sanitizer-test-template @@ -507,7 +512,7 @@ sanitizer-test-ism1: when: delayed start_in: 1 hour script: - - python3 ci/run_scheduled_sanitizer_test.py ISM1 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py ISM1 $OUT_FORMATS_ALL --tests $SANITIZER_TESTS sanitizer-test-ism2: extends: .sanitizer-test-template @@ -516,7 +521,7 @@ sanitizer-test-ism2: when: delayed start_in: 1 hour 30 minutes script: - - python3 ci/run_scheduled_sanitizer_test.py ISM2 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py ISM2 $OUT_FORMATS_ALL --tests $SANITIZER_TESTS sanitizer-test-ism3: extends: .sanitizer-test-template @@ -525,7 +530,7 @@ sanitizer-test-ism3: when: delayed start_in: 2 hours script: - - python3 ci/run_scheduled_sanitizer_test.py ISM3 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py ISM3 $OUT_FORMATS_ALL --tests $SANITIZER_TESTS sanitizer-test-ism4: extends: .sanitizer-test-template @@ -534,7 +539,7 @@ sanitizer-test-ism4: when: delayed start_in: 2 hours 30 minutes script: - - python3 ci/run_scheduled_sanitizer_test.py ISM4 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_ALL --tests $SANITIZER_TESTS sanitizer-test-mc-5_1: extends: @@ -547,7 +552,7 @@ sanitizer-test-mc-5_1: when: delayed start_in: 3 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 5_1 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 5_1 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_2: extends: @@ -560,7 +565,7 @@ sanitizer-test-mc-5_1_2: when: delayed start_in: 4 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_4: extends: @@ -573,7 +578,7 @@ sanitizer-test-mc-5_1_4: when: delayed start_in: 5 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS sanitizer-test-mc-7_1: extends: @@ -586,7 +591,7 @@ sanitizer-test-mc-7_1: when: delayed start_in: 6 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 7_1 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS sanitizer-test-mc-7_1_4: extends: @@ -599,7 +604,7 @@ sanitizer-test-mc-7_1_4: when: delayed start_in: 7 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS sanitizer-test-masa: extends: @@ -612,7 +617,7 @@ sanitizer-test-masa: when: delayed start_in: 8 hours script: - - python3 ci/run_scheduled_sanitizer_test.py MASA stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_ALL --tests $SANITIZER_TESTS sanitizer-test-mc-sba: extends: @@ -625,7 +630,7 @@ sanitizer-test-mc-sba: when: delayed start_in: 9 hours script: - - python3 ci/run_scheduled_sanitizer_test.py SBA stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS sanitizer-test-mc-planarsba: extends: @@ -638,7 +643,7 @@ sanitizer-test-mc-planarsba: when: delayed start_in: 10 hours script: - - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4 FOA HOA2 HOA3 BINAURAL BINAURAL_ROOM --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS # --------------------------------------------------------------- # Other jobs -- GitLab From 5c472e0af2d8f58c599c60235e8260ac27a9e718 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 16 Sep 2022 14:24:17 +0200 Subject: [PATCH 072/479] fix variables in sanitizer jobs --- .gitlab-ci.yml | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d3309a1719..cb6a0d6bc2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,8 +6,6 @@ variables: OUT_FORMATS_CHANNEL_BASED: "stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4" OUT_FORMATS_SCENE_BASED: "FOA HOA2 HOA3" OUT_FORMATS_BINAURAL: "BINAURAL BINAURAL_ROOM" - OUT_FORMATS_ALL_NO_EXT: "$OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL" - OUT_FORMATS_ALL: "$OUT_FORMATS_ALL_NO_EXT EXT" # This sets when pipelines are created. Jobs have more specific rules to restrict them. @@ -512,7 +510,7 @@ sanitizer-test-ism1: when: delayed start_in: 1 hour script: - - python3 ci/run_scheduled_sanitizer_test.py ISM1 $OUT_FORMATS_ALL --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py ISM1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-ism2: extends: .sanitizer-test-template @@ -521,7 +519,7 @@ sanitizer-test-ism2: when: delayed start_in: 1 hour 30 minutes script: - - python3 ci/run_scheduled_sanitizer_test.py ISM2 $OUT_FORMATS_ALL --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py ISM2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-ism3: extends: .sanitizer-test-template @@ -530,7 +528,7 @@ sanitizer-test-ism3: when: delayed start_in: 2 hours script: - - python3 ci/run_scheduled_sanitizer_test.py ISM3 $OUT_FORMATS_ALL --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py ISM3 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-ism4: extends: .sanitizer-test-template @@ -539,7 +537,7 @@ sanitizer-test-ism4: when: delayed start_in: 2 hours 30 minutes script: - - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_ALL --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-mc-5_1: extends: @@ -552,7 +550,7 @@ sanitizer-test-mc-5_1: when: delayed start_in: 3 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 5_1 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 5_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_2: extends: @@ -565,7 +563,7 @@ sanitizer-test-mc-5_1_2: when: delayed start_in: 4 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_4: extends: @@ -578,7 +576,7 @@ sanitizer-test-mc-5_1_4: when: delayed start_in: 5 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-7_1: extends: @@ -591,7 +589,7 @@ sanitizer-test-mc-7_1: when: delayed start_in: 6 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-7_1_4: extends: @@ -604,7 +602,7 @@ sanitizer-test-mc-7_1_4: when: delayed start_in: 7 hours script: - - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-masa: extends: @@ -617,7 +615,7 @@ sanitizer-test-masa: when: delayed start_in: 8 hours script: - - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_ALL --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-mc-sba: extends: @@ -630,7 +628,7 @@ sanitizer-test-mc-sba: when: delayed start_in: 9 hours script: - - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-planarsba: extends: @@ -643,7 +641,7 @@ sanitizer-test-mc-planarsba: when: delayed start_in: 10 hours script: - - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA $OUT_FORMATS_ALL_NO_EXT --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS # --------------------------------------------------------------- # Other jobs -- GitLab From d535bd11d698a6837b531a580c96110ee455f533 Mon Sep 17 00:00:00 2001 From: norvell Date: Fri, 16 Sep 2022 17:15:46 +0000 Subject: [PATCH 073/479] Added self_test_evs.prm check, allowing differences if [EVS Non-BE] is specified. --- .gitlab-ci.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 624322e87b..244fb8e3b6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -298,13 +298,15 @@ self-test-on-merge-request: ### run selftest - ls -altr scripts/testv - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test | tee test_output.txt - + - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test scripts/config/self_test_evs.psm | tee test_output_evs.txt ### analyse test output # some helper variables - "|| true" to prevent failures from grep not finding anything + - evs_non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]non[ -]*be\]") || true - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true - run_errors=$(cat test_output.txt | grep -c "test conditions had run errors") || true - bitexact=$(cat test_output.txt | grep -c "All [0-9]* tests are bitexact") || true + - bitexact_evs=$(cat test_output_evs.txt | grep -c "All [0-9]* tests are bitexact") || true - EXIT_CODE_NON_BE=123 - EXIT_CODE_FAIL=1 @@ -313,9 +315,13 @@ self-test-on-merge-request: # check for crashes during the test, if any happened, fail the test - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; exit $EXIT_CODE_FAIL; fi + # check for non bitexact EVS output + - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag == 0 ] ; then echo "Non-bitexact EVS cases without EVS-non-BE tag encountered"; selftest_evs_exit_code=$EXIT_CODE_FAIL; fi + - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag != 0 ] ; then echo "Non-bitexact EVS cases with EVS-non-BE tag encountered"; selftest_evs_exit_code=$EXIT_CODE_NON_BE; fi + # check for non bitexact output and store exit code to also always run the SBA pytest - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_FAIL; fi - - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_NON_BE; fi + - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=selftest_evs_exit_code; fi ### run SBA pytest - exit_code=0 -- GitLab From 6a58fa425802a5f8169a9e9d51d85af6a06c8156 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Fri, 16 Sep 2022 19:29:44 +0200 Subject: [PATCH 074/479] Updated .gitlab-ci.yml to run EVS self_test. Correct bug in case of failed self_test.py and self_test_b.py passes --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 244fb8e3b6..d020b99227 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -321,14 +321,14 @@ self-test-on-merge-request: # check for non bitexact output and store exit code to also always run the SBA pytest - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_FAIL; fi - - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=selftest_evs_exit_code; fi + - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=$selftest_evs_exit_code; fi ### run SBA pytest - exit_code=0 - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi + - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $selftest_exit_code; fi - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; exit $EXIT_CODE_FAIL; fi; # return exit code from selftest if everything went well with the pytest run - exit $selftest_exit_code -- GitLab From 18c9e310b12b1dc4610f839ca42ea6d48d499ffc Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Fri, 16 Sep 2022 22:41:18 +0200 Subject: [PATCH 075/479] Corrected spelling error on self_test_evs.prm --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d020b99227..dcc553bbcb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -298,7 +298,7 @@ self-test-on-merge-request: ### run selftest - ls -altr scripts/testv - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test | tee test_output.txt - - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test scripts/config/self_test_evs.psm | tee test_output_evs.txt + - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test scripts/config/self_test_evs.prm | tee test_output_evs.txt ### analyse test output # some helper variables - "|| true" to prevent failures from grep not finding anything -- GitLab From a7e51ba7b735d0051c684713be69bdbd89e55b05 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Fri, 16 Sep 2022 22:48:49 +0200 Subject: [PATCH 076/479] Added test_output_evs.txt artifact --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dcc553bbcb..3059664d00 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -340,6 +340,7 @@ self-test-on-merge-request: when: always paths: - test_output.txt + - test_output_evs.txt - scripts/test/logs/ - scripts/ref/logs/ - report-junit.xml -- GitLab From 776681f6c483c008b79356c3b05f8dcd9f160bb8 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Fri, 16 Sep 2022 22:56:02 +0200 Subject: [PATCH 077/479] Included test_output_evs.txt in run error check --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3059664d00..b958f3a321 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -304,7 +304,7 @@ self-test-on-merge-request: # some helper variables - "|| true" to prevent failures from grep not finding anything - evs_non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]non[ -]*be\]") || true - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true - - run_errors=$(cat test_output.txt | grep -c "test conditions had run errors") || true + - run_errors=$(cat test_output.txt test_output_evs.txt | grep -c "test conditions had run errors") || true - bitexact=$(cat test_output.txt | grep -c "All [0-9]* tests are bitexact") || true - bitexact_evs=$(cat test_output_evs.txt | grep -c "All [0-9]* tests are bitexact") || true - EXIT_CODE_NON_BE=123 -- GitLab From 18acab3bd9ce397eef49f11bf85a7b68e0a13f3e Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Sat, 17 Sep 2022 19:12:26 +0200 Subject: [PATCH 078/479] Removed JBM cases from self_test_evs.prm -- networkSimulator_g192 not available. --- scripts/config/self_test_evs.prm | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/scripts/config/self_test_evs.prm b/scripts/config/self_test_evs.prm index 02227154d8..4f6908be4c 100644 --- a/scripts/config/self_test_evs.prm +++ b/scripts/config/self_test_evs.prm @@ -219,18 +219,3 @@ ../IVAS_dec 32 bit testv/stv32c_AMR_WB_19k85_32-32.tst - -// Codec A at 13.20 kbps, 32kHz in, 32kHz out, DTX, JBM Prof 5 -../IVAS_cod -dtx 13200 32 testv/stv32c.pcm bit -networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 -../IVAS_dec -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_13k20_32-32_DTX_JBM5.tst - -// Codec B at 16.40 kbps, 32kHz in, 32kHz out, DTX, JBM Prof 5 -../IVAS_cod -dtx 16400 32 testv/stv32c.pcm bit -networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 -../IVAS_dec -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_16k40_32-32_DTX_JBM5.tst - -// Codec B at 13.20 kbps, 32kHz in, 32kHz out, JBM Prof 9, Channel aware -../IVAS_cod -rf 13200 32 testv/stv32c.pcm bit -networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 -../IVAS_dec -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_13k20_CA_32-32_JBM9.tst -- GitLab From 8e21881eec1de2342d9c8dde7faea5a52b5b41b9 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Sun, 18 Sep 2022 10:37:16 +0200 Subject: [PATCH 079/479] Corrected logic for the three subtests --- .gitlab-ci.yml | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b958f3a321..0a8acac9f9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -309,29 +309,37 @@ self-test-on-merge-request: - bitexact_evs=$(cat test_output_evs.txt | grep -c "All [0-9]* tests are bitexact") || true - EXIT_CODE_NON_BE=123 - EXIT_CODE_FAIL=1 - - - selftest_exit_code=0 + - expected_nonbe_1=0 + - expected_nonbe_2=0 + - expected_nonbe_3=0 + - fail_1=0 + - fail_2=0 + - fail_3=0 # check for crashes during the test, if any happened, fail the test - - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; exit $EXIT_CODE_FAIL; fi - - # check for non bitexact EVS output - - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag == 0 ] ; then echo "Non-bitexact EVS cases without EVS-non-BE tag encountered"; selftest_evs_exit_code=$EXIT_CODE_FAIL; fi - - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag != 0 ] ; then echo "Non-bitexact EVS cases with EVS-non-BE tag encountered"; selftest_evs_exit_code=$EXIT_CODE_NON_BE; fi + - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; fail_1=$EXIT_CODE_FAIL; fi # check for non bitexact output and store exit code to also always run the SBA pytest - - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_FAIL; fi - - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=$selftest_evs_exit_code; fi + - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; fail_1=1; fi + - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; expected_nonbe_1=1; fi + + # check for non bitexact EVS output + - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag == 0 ] ; then echo "Non-bitexact EVS cases without EVS-non-BE tag encountered"; fail_2=1; fi + - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag != 0 ] ; then echo "Non-bitexact EVS cases with EVS-non-BE tag encountered"; expected_nonbe_2=1; fi ### run SBA pytest - exit_code=0 - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? - - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi + - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; fail_3=1; fi - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $selftest_exit_code; fi - - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; exit $EXIT_CODE_FAIL; fi; - # return exit code from selftest if everything went well with the pytest run - - exit $selftest_exit_code + - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; expected_nonbe_3=1; fi + - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; fail_3=1; fi; + + # Check results from all three tests + - if [ $fail_1 -eq 1 ] || [ $fail_2 -eq 1 ] || [ $fail_3 -eq 1 ]; then exit $EXIT_CODE_FAIL; fi + - if [ $expected_nonbe_1 -eq 1 ] || [ $expected_nonbe_2 -eq 1 ] || [ $expected_nonbe_3 -eq 1 ]; then exit $EXIT_CODE_NON_BE; fi + - exit 0 + allow_failure: exit_codes: - 123 -- GitLab From 0efbabe9ceab5456297d75f10d81b9ad39717708 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 19 Sep 2022 10:20:21 +0200 Subject: [PATCH 080/479] fix name of job --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cb6a0d6bc2..316098f06b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -617,7 +617,7 @@ sanitizer-test-masa: script: - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS -sanitizer-test-mc-sba: +sanitizer-test-sba: extends: - .test-job-linux-needs-testv-dir stage: test @@ -630,7 +630,7 @@ sanitizer-test-mc-sba: script: - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS -sanitizer-test-mc-planarsba: +sanitizer-test-planarsba: extends: - .test-job-linux-needs-testv-dir stage: test -- GitLab From 3179088aa067474932247e20473475669f78d641 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 19 Sep 2022 11:39:57 +0200 Subject: [PATCH 081/479] fix mode selection and exclude rate sw for SBA --- ci/run_scheduled_sanitizer_test.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index 073f9f70bf..1ffaaf55a8 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -32,16 +32,27 @@ def main(args): def get_modes(in_format: str) -> list: - cmd = [SCRIPT_DIR.joinpath("runIvasCodec.py"), "-l"] + + cmd = [ + SCRIPT_DIR.joinpath("runIvasCodec.py"), + "-C", + "MC" if in_format in MC_MODES else in_format, + "-l" + ] list_process = subprocess.run(cmd, capture_output=True) output = list_process.stdout.decode("utf8") # correction for multichannel modes to avoid selecting some mono modes... if in_format in MC_MODES: - in_format = "MC_" + in_format + in_format = "MC_" + in_format + "_b" + + mode_list = [m for m in output.splitlines() if in_format in m] + if "SBA" in in_format: + # rate switching not implemented yet + mode_list = [m for m in mode_list if not "_rs" in m] - return [m for m in output.splitlines() if in_format in m] + return mode_list def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True): -- GitLab From 06f1edda3046713f74c6336b2f7393fa50bc3ada Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 19 Sep 2022 11:43:45 +0200 Subject: [PATCH 082/479] remove temporary hack --- .gitlab-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 316098f06b..a82753e8f9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,7 +17,6 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' # Runs for merge requests - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main - - if: $CI_PIPELINE_SOURCE == 'schedule' # temporary: any scheduled pipeline (for testing on other branch than main) stages: -- GitLab From 2c440902e78fbdd9ad01e1c7d05dc1cb5611b2af Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 19 Sep 2022 14:24:34 +0200 Subject: [PATCH 083/479] Corrected tests in self-test-on-merge-request for self_test_b.py --- .gitlab-ci.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0a8acac9f9..0aeb3ceec9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -317,7 +317,7 @@ self-test-on-merge-request: - fail_3=0 # check for crashes during the test, if any happened, fail the test - - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; fail_1=$EXIT_CODE_FAIL; fi + - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; fail_1=1; fi # check for non bitexact output and store exit code to also always run the SBA pytest - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; fail_1=1; fi @@ -330,10 +330,12 @@ self-test-on-merge-request: ### run SBA pytest - exit_code=0 - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? - - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; fail_3=1; fi - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; expected_nonbe_3=1; fi - - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; fail_3=1; fi; + + - if [ $zero_errors != 1 ]; then echo "Run errors in SBA pytest"; fail_3=1; fi + + - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures without non-BE tag encountered"; fail_3=1; fi + - if [ $exit_code -eq 1 ] && [ $non_be_flag == 1 ]; then echo "pytest run had failures with non-BE tag encountered"; expected_nonbe_3=1; fi # Check results from all three tests - if [ $fail_1 -eq 1 ] || [ $fail_2 -eq 1 ] || [ $fail_3 -eq 1 ]; then exit $EXIT_CODE_FAIL; fi -- GitLab From 5c260121d96eea6c9316eb85d3b9ec4426496d61 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 19 Sep 2022 15:16:49 +0200 Subject: [PATCH 084/479] mechanically unify SID frame rate BE for non-DTX modes, DTX modes still broken --- lib_com/bitstream.c | 10 +++++++ lib_com/ivas_cnst.h | 10 ++++++- lib_com/ivas_dirac_com.c | 12 ++++++++ lib_com/ivas_rom_com.c | 4 +++ lib_com/ivas_spar_com.c | 12 ++++++++ lib_com/ivas_stereo_dft_com.c | 4 +++ lib_com/ivas_tools.c | 4 +++ lib_com/options.h | 1 + lib_dec/acelp_core_dec.c | 4 +++ lib_dec/core_switching_dec.c | 4 +++ lib_dec/fd_cng_dec.c | 4 +++ lib_dec/ivas_cpe_dec.c | 40 +++++++++++++++++++++++++++ lib_dec/ivas_dec.c | 11 ++++++-- lib_dec/ivas_dirac_dec.c | 32 +++++++++++++++++++++ lib_dec/ivas_init_dec.c | 20 ++++++++++++++ lib_dec/ivas_ism_metadata_dec.c | 9 ++++++ lib_dec/ivas_ism_param_dec.c | 8 ++++++ lib_dec/ivas_masa_dec.c | 32 +++++++++++++++++++++ lib_dec/ivas_output_init.c | 4 +++ lib_dec/ivas_qmetadata_dec.c | 12 ++++++++ lib_dec/ivas_sba_dec.c | 11 ++++++-- lib_dec/ivas_sce_dec.c | 12 ++++++++ lib_dec/ivas_spar_decoder.c | 12 ++++++++ lib_dec/ivas_spar_md_dec.c | 4 +++ lib_dec/ivas_stereo_cng_dec.c | 16 +++++++++++ lib_dec/ivas_stereo_dft_dec.c | 40 +++++++++++++++++++++++++++ lib_dec/ivas_stereo_mdct_stereo_dec.c | 22 ++++++++++++++- lib_dec/ivas_stereo_switching_dec.c | 24 ++++++++++++++++ lib_dec/lib_dec.c | 4 +++ lib_enc/ivas_cpe_enc.c | 8 ++++++ lib_enc/ivas_ism_enc.c | 4 +++ lib_enc/ivas_qmetadata_enc.c | 16 +++++++++++ lib_enc/ivas_stereo_cng_enc.c | 4 +++ lib_enc/ivas_stereo_dft_enc.c | 8 ++++++ 34 files changed, 416 insertions(+), 6 deletions(-) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index 761ad816bd..d774c4eff7 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -1820,7 +1820,11 @@ ivas_error preview_indices( break; } } +#ifdef ALIGN_SID_SIZE + else if ( total_brate == IVAS_SID_5k2 ) +#else else if ( total_brate == IVAS_SID_4k4 ) +#endif { /* read SID format */ st_ivas->sid_format = 0; @@ -1884,6 +1888,7 @@ ivas_error preview_indices( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format ); } } +#ifndef ALIGN_SID_SIZE else if ( total_brate == IVAS_SID_5k ) { /* SBA SID frame */ @@ -1892,6 +1897,7 @@ ivas_error preview_indices( st_ivas->sba_mode = SBA_MODE_SPAR; st_ivas->element_mode_init = IVAS_SCE; } +#endif /* only read element mode from active frames */ if ( is_DTXrate( total_brate ) == 0 ) @@ -2063,6 +2069,9 @@ ivas_error read_indices( } else if ( k == SIZE_IVAS_BRATE_TBL ) { +#ifdef ALIGN_SID_SIZE + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); +#else /*temp change for SPAR DTX*/ if ( total_brate == IVAS_SID_5k ) { @@ -2072,6 +2081,7 @@ ivas_error read_indices( { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); } +#endif } else { diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 29416d2c50..df7a2d076d 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -195,9 +195,12 @@ typedef enum /*----------------------------------------------------------------------------------* * IVAS Bitrates *----------------------------------------------------------------------------------*/ - +#ifdef ALIGN_SID_SIZE +#define IVAS_SID_5k2 5200 /* SID frame bitrate */ +#else #define IVAS_SID_4k4 4400 /* SID frame bitrate */ #define IVAS_SID_5k 5000 /* SBA SID frame bitrate */ +#endif #define IVAS_13k2 13200 #define IVAS_16k4 16400 #define IVAS_24k4 24400 @@ -215,8 +218,13 @@ typedef enum #define IVAS_BRATE_MAX IVAS_512k +#ifdef ALIGN_SID_SIZE +#define SIZE_IVAS_BRATE_TBL 16 +#define IVAS_NUM_ACTIVE_BRATES (SIZE_IVAS_BRATE_TBL - 2) +#else #define SIZE_IVAS_BRATE_TBL 17 #define IVAS_NUM_ACTIVE_BRATES (SIZE_IVAS_BRATE_TBL - 3) +#endif /*----------------------------------------------------------------------------------* * IVAS modes : IVAS SCE, IVAS CPE modes (DFT, TD, MDCT stereo) diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index 872c9bbba4..80ca92e18c 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -323,7 +323,11 @@ ivas_error ivas_dirac_sba_config( if ( sba_mode == SBA_MODE_SPAR ) { /*map the bitrate for SID frame*/ +#ifdef ALIGN_SID_SIZE + if ( sba_total_brate == IVAS_SID_5k2 ) +#else if ( sba_total_brate == IVAS_SID_5k ) +#endif { if ( *element_mode == IVAS_SCE ) { @@ -420,11 +424,19 @@ ivas_error ivas_dirac_sba_config( return error; } +#ifdef ALIGN_SID_SIZE + if ( sba_total_brate > IVAS_SID_5k2 ) +#else if ( sba_total_brate > IVAS_SID_4k4 ) +#endif { *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); } +#ifdef ALIGN_SID_SIZE + else if ( sba_total_brate == IVAS_SID_5k2 ) +#else else if ( sba_total_brate == IVAS_SID_4k4 ) +#endif { switch ( *element_mode ) { diff --git a/lib_com/ivas_rom_com.c b/lib_com/ivas_rom_com.c index 4ab1a1d927..4a82259296 100644 --- a/lib_com/ivas_rom_com.c +++ b/lib_com/ivas_rom_com.c @@ -49,7 +49,11 @@ const int32_t ivas_brate_tbl[SIZE_IVAS_BRATE_TBL] = { +#ifdef ALIGN_SID_SIZE + FRAME_NO_DATA, IVAS_SID_5k2, +#else FRAME_NO_DATA, IVAS_SID_4k4, IVAS_SID_5k, +#endif IVAS_13k2, IVAS_16k4, IVAS_24k4, IVAS_32k, IVAS_48k, IVAS_64k, IVAS_80k, IVAS_96k, IVAS_128k, IVAS_160k, IVAS_192k, IVAS_256k, IVAS_384k, IVAS_512k diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index 46f6b3dc41..4955f9f9e2 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -311,7 +311,11 @@ void ivas_spar_config( const int16_t sid_format /* i : IVAS format indicator from SID frame */ ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_5k ) +#endif { if ( sid_format == SID_SBA_1TC ) { @@ -333,7 +337,11 @@ void ivas_spar_config( if ( *nchan_transport == 1 ) { /* map SPAR SID bitrate to SPAR active bitrate */ +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_5k ) +#endif { ivas_total_brate = IVAS_32k; } @@ -422,7 +430,11 @@ int16_t ivas_get_spar_num_TCs( { int16_t table_idx, nchan_transport; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_5k ) +#endif { nchan_transport = 1; } diff --git a/lib_com/ivas_stereo_dft_com.c b/lib_com/ivas_stereo_dft_com.c index 918fd27b35..7de3144f63 100644 --- a/lib_com/ivas_stereo_dft_com.c +++ b/lib_com/ivas_stereo_dft_com.c @@ -82,7 +82,11 @@ void stereo_dft_config( hConfig->res_cod_mode = STEREO_DFT_RES_COD_OFF; } } +#ifdef ALIGN_SID_SIZE + else if ( brate == IVAS_SID_5k2 ) +#else else if ( brate == IVAS_SID_4k4 ) +#endif { *bits_frame_nominal = SID_2k40 / FRAMES_PER_SEC; if ( hConfig != NULL ) diff --git a/lib_com/ivas_tools.c b/lib_com/ivas_tools.c index 079af159bc..6b0c0eb297 100644 --- a/lib_com/ivas_tools.c +++ b/lib_com/ivas_tools.c @@ -1172,8 +1172,12 @@ int16_t is_SIDrate( if ( ( ivas_total_brate == SID_1k75 ) || ( ivas_total_brate == SID_2k40 ) || +#ifdef ALIGN_SID_SIZE + ( ivas_total_brate == IVAS_SID_5k2 ) ) +#else ( ivas_total_brate == IVAS_SID_4k4 ) || ( ivas_total_brate == IVAS_SID_5k ) ) +#endif { sid_rate_flag = 1; } diff --git a/lib_com/options.h b/lib_com/options.h index 54d2700014..9926a5438f 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -150,6 +150,7 @@ #define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ +#define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c index 7951f10d54..5c601c5825 100644 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -125,7 +125,11 @@ ivas_error acelp_core_dec( error = IVAS_ERR_OK; +#ifdef ALIGN_SID_SIZE + if ( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_5k2 ) +#else if ( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_4k4 ) +#endif { /* In MDCT-Stereo DTX with mono output, we can skip CNG for the second channel, except for the first inactive frame following an active period */ return error; diff --git a/lib_dec/core_switching_dec.c b/lib_dec/core_switching_dec.c index 61537f76e3..e8c74bc2ef 100644 --- a/lib_dec/core_switching_dec.c +++ b/lib_dec/core_switching_dec.c @@ -1048,7 +1048,11 @@ void bw_switching_pre_proc( if ( st->element_mode > EVS_MONO ) { +#ifdef ALIGN_SID_SIZE + if ( st->core == ACELP_CORE && !( st->bfi == 1 && st->con_tcx == 1 ) && st->hBWE_FD != NULL && !( st->core_brate <= SID_2k40 && st->element_mode == IVAS_CPE_DFT && nchan_out == 2 ) && !( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_5k2 ) ) +#else if ( st->core == ACELP_CORE && !( st->bfi == 1 && st->con_tcx == 1 ) && st->hBWE_FD != NULL && !( st->core_brate <= SID_2k40 && st->element_mode == IVAS_CPE_DFT && nchan_out == 2 ) && !( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_4k4 ) ) +#endif { /* Calculate tilt of the ACELP core synthesis - needed in SWB BWE decoding */ calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame ); diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index 4f0e8574f0..ead5efa10f 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -2122,7 +2122,11 @@ void FdCngDecodeMDCTStereoSID( lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, sts[ch]->preemph_fac ); } +#ifdef ALIGN_SID_SIZE + if ( hCPE->nchan_out == 1 && hCPE->last_element_brate <= IVAS_SID_5k2 ) +#else if ( hCPE->nchan_out == 1 && hCPE->last_element_brate <= IVAS_SID_4k4 ) +#endif { /* create proper M noise shape in channel zero after gains have been applied */ for ( p = 0; p < N; p++ ) diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 680839e121..313e0d6172 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -160,14 +160,22 @@ ivas_error ivas_cpe_dec( if ( hCPE->element_mode != IVAS_CPE_MDCT && ( hCPE->element_brate != hCPE->last_element_brate || hCPE->last_element_mode != hCPE->element_mode || sts[0]->ini_frame == 0 || ( ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) ) ) { +#ifdef ALIGN_SID_SIZE + if ( st_ivas->hQMetaData != NULL && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->hQMetaData != NULL && ivas_total_brate > IVAS_SID_4k4 ) +#endif { stereo_dft_config( hCPE->hStereoDft == NULL ? NULL : hCPE->hStereoDft->hConfig, st_ivas->hQMetaData->bits_frame_nominal * FRAMES_PER_SEC, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); } else { /* Note: This only works for stereo operation. If DTX would be applied for multiple CPEs a different bitrate signaling is needed */ +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( ivas_total_brate <= IVAS_SID_4k4 ) +#endif { stereo_dft_config( hCPE->hStereoDft == NULL ? NULL : hCPE->hStereoDft->hConfig, ivas_total_brate, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); } @@ -203,7 +211,11 @@ ivas_error ivas_cpe_dec( /* Update DFT Stereo memories */ stereo_dft_dec_update( hCPE->hStereoDft, output_frame, 0 ); +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) +#endif { if ( ivas_total_brate == FRAME_NO_DATA ) { @@ -220,13 +232,21 @@ ivas_error ivas_cpe_dec( nb_bits = (int16_t) ( ( hCPE->element_brate ) / FRAMES_PER_SEC - 0.8f * sts[0]->bits_frame_nominal ); sts[1]->bit_stream = sts[0]->bit_stream + ivas_total_brate / FRAMES_PER_SEC - 1 - nb_bits_metadata; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_4k4 ) +#endif { nb_bits -= SID_FORMAT_NBITS; sts[1]->bit_stream -= SID_FORMAT_NBITS; } +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 ) +#endif { sts[0]->total_brate = hCPE->element_brate; /* Only mono downmix was transmitted in this case */ } @@ -266,7 +286,11 @@ ivas_error ivas_cpe_dec( /* this is just for initialization, the true values of "total_brate" and "bits_frame_channel" are set later */ for ( n = 0; n < n_channels; n++ ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) +#endif { sts[n]->total_brate = SID_2k40; @@ -283,7 +307,11 @@ ivas_error ivas_cpe_dec( if ( !st_ivas->hMCT ) { +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == SBA_FORMAT && ivas_total_brate == IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == SBA_FORMAT && ivas_total_brate == IVAS_SID_5k ) +#endif { for ( n = 0; n < n_channels; n++ ) { @@ -587,7 +615,11 @@ ivas_error create_cpe_dec( hCPE->nchan_out = min( CPE_CHANNELS, st_ivas->hDecoderConfig->nchan_out ); } +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) +#endif { hCPE->nchan_out = 1; } @@ -923,7 +955,11 @@ static void read_stereo_mode_and_bwidth( * BFI or NO_DATA frame: Use stereo parameters from last (active) frame *-----------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( st_ivas->bfi || st_ivas->hDecoderConfig->ivas_total_brate < IVAS_SID_5k2 ) +#else if ( st_ivas->bfi || st_ivas->hDecoderConfig->ivas_total_brate < IVAS_SID_4k4 ) +#endif { hCPE->element_mode = hCPE->last_element_mode; @@ -933,7 +969,11 @@ static void read_stereo_mode_and_bwidth( * SID frame: get element mode from SID side info *-----------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + else if ( st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_4k4 || st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_5k ) +#endif { switch ( st_ivas->sid_format ) { diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index 22f841728e..ff6df585ef 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -290,8 +290,11 @@ ivas_error ivas_dec( nchan_remapped = CPE_CHANNELS; ivas_sba_dirac_stereo_dec( st_ivas, output, output_frame ); } - else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && - ( ivas_total_brate > IVAS_SID_4k4 || ( ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) +#ifdef ALIGN_SID_SIZE + else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ( ivas_total_brate > IVAS_SID_5k2 || ( ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) +#else + else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ( ivas_total_brate > IVAS_SID_4k4 || ( ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) +#endif { nchan_remapped = 1; /* Only one channel transported */ } @@ -575,7 +578,11 @@ ivas_error ivas_dec( st_ivas->ini_frame++; } +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_5k2 ) /* needed in MASA decoder in case the first active frame is BFI, and there were SID-frames decoded before */ +#else if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_4k4 ) /* needed in MASA decoder in case the first active frame is BFI, and there were SID-frames decoded before */ +#endif { st_ivas->ini_active_frame++; } diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 8dd47fe774..f3992e8677 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -190,7 +190,11 @@ ivas_error ivas_dirac_dec_config( } nchan_transport = st_ivas->nchan_transport; +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 ) +#endif { nchan_transport = 1; } @@ -1280,7 +1284,11 @@ void ivas_dirac_dec_read_BS( int16_t next_bit_pos_orig; *nb_bits = 0; +#ifdef ALIGN_SID_SIZE + if ( !st->bfi && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( !st->bfi && ivas_total_brate > IVAS_SID_4k4 ) +#endif { next_bit_pos_orig = st->next_bit_pos; st->next_bit_pos = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); @@ -1291,7 +1299,11 @@ void ivas_dirac_dec_read_BS( if ( sba_mode == SBA_MODE_SPAR ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_5k ) +#endif { b = 1; } @@ -1384,7 +1396,11 @@ void ivas_dirac_dec_read_BS( st->next_bit_pos = next_bit_pos_orig; } +#ifdef ALIGN_SID_SIZE + else if ( !st->bfi && ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( !st->bfi && ivas_total_brate == IVAS_SID_4k4 ) +#endif { next_bit_pos_orig = st->next_bit_pos; @@ -1451,7 +1467,11 @@ void ivas_qmetadata_to_dirac( q_direction = &( hQMetaData->q_direction[0] ); hDirAC->numSimultaneousDirections = hQMetaData->no_directions; +#ifdef ALIGN_SID_SIZE + if ( hMasa != NULL && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( hMasa != NULL && ivas_total_brate > IVAS_SID_4k4 ) +#endif { band_mapping = hMasa->data.band_mapping; @@ -1527,7 +1547,11 @@ void ivas_qmetadata_to_dirac( nbands = hDirAC->band_grouping[hDirAC->hConfig->nbands]; band_grouping = hDirAC->band_grouping; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate <= IVAS_SID_5k2 && sba_mode != SBA_MODE_SPAR ) +#else if ( ivas_total_brate <= IVAS_SID_4k4 && sba_mode != SBA_MODE_SPAR ) +#endif { /* SID/zero-frame: 1 direction, 5 bands, nblocks re-generated out of SID decoder*/ start_band = 0; @@ -1623,7 +1647,11 @@ void ivas_qmetadata_to_dirac( ele = min( 90, ele ); ele = max( -90, ele ); +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 && q_direction->coherence_band_data != NULL ) +#else if ( ivas_total_brate > IVAS_SID_4k4 && q_direction->coherence_band_data != NULL ) +#endif { hDirAC->spreadCoherence[tmp_write_idx_band][b] = q_direction->coherence_band_data[qBand_idx].spread_coherence[block] / 255.0f; } @@ -1632,7 +1660,11 @@ void ivas_qmetadata_to_dirac( hDirAC->spreadCoherence[tmp_write_idx_band][b] = 0.0f; } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 && q_direction->coherence_band_data != NULL ) +#else if ( ivas_total_brate > IVAS_SID_4k4 && q_direction->coherence_band_data != NULL ) +#endif { hDirAC->surroundingCoherence[tmp_write_idx_band][b] = hQMetaData->surcoh_band_data[qBand_idx].surround_coherence[0] / 255.0f; } diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 87b48cd0d8..d32e362562 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -126,7 +126,11 @@ ivas_error ivas_dec_setup( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); num_bits_read += SBA_ORDER_BITS; +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_4k4 ) +#endif { if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) { @@ -154,7 +158,11 @@ ivas_error ivas_dec_setup( if ( st_ivas->ini_frame > 0 ) { /* reconfigure in case a change of operation mode is detected */ +#ifdef ALIGN_SID_SIZE + if ( ( ivas_total_brate > IVAS_SID_5k2 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) || ( st_ivas->ini_active_frame == 0 ) ) +#else if ( ( ivas_total_brate > IVAS_SID_4k4 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) || ( st_ivas->ini_active_frame == 0 ) ) +#endif { if ( st_ivas->ini_active_frame == 0 && ivas_total_brate != FRAME_NO_DATA && ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->nCPE == 1 ) { @@ -213,7 +221,11 @@ ivas_error ivas_dec_setup( } } } +#ifdef ALIGN_SID_SIZE + else if ( ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) +#endif { switch ( st_ivas->sid_format ) { @@ -349,7 +361,11 @@ static ivas_error ivas_read_format( break; } } +#ifdef ALIGN_SID_SIZE + else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_4k4 ) +#endif { /* read IVAS format in SID frame */ idx = 0; @@ -406,7 +422,11 @@ static ivas_error ivas_read_format( st_ivas->bit_stream += ( *num_bits_read ); ( *num_bits_read ) = 0; } +#ifdef ALIGN_SID_SIZE + else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k ) +#endif { int16_t tc_mode_offset; tc_mode_offset = ( int16_t )( ivas_total_brate / FRAMES_PER_SEC - 1 ); diff --git a/lib_dec/ivas_ism_metadata_dec.c b/lib_dec/ivas_ism_metadata_dec.c index 9d940705f3..c8ce447875 100644 --- a/lib_dec/ivas_ism_metadata_dec.c +++ b/lib_dec/ivas_ism_metadata_dec.c @@ -78,7 +78,11 @@ ivas_error ivas_ism_metadata_dec( wmops_sub_start( "ism_meta_dec" ); +#ifdef ALIGN_SID_SIZE + if ( ism_total_brate == IVAS_SID_5k2 || ism_total_brate == FRAME_NO_DATA ) +#else if ( ism_total_brate == IVAS_SID_4k4 || ism_total_brate == FRAME_NO_DATA ) +#endif { /* no metadata decoding in CNG */ for ( ch = 0; ch < *nchan_transport; ch++ ) @@ -87,7 +91,12 @@ ivas_error ivas_ism_metadata_dec( } /* set padding bits as metadata bits to keep later bitrate checks valid */ +#ifdef ALIGN_SID_SIZE + /* TODO: include padding bits here? */ + nb_bits_metadata[0] = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC; +#else nb_bits_metadata[0] = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC; +#endif #ifdef DEBUGGING /* sanity check */ diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index 108d406845..d394c3c729 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1027,7 +1027,11 @@ ivas_error ivas_ism_dec_config( /* store last frame ISM mode */ last_ism_mode = st_ivas->ism_mode; +#ifdef ALIGN_SID_SIZE + if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_5k2 && ivas_total_brate != FRAME_NO_DATA ) +#else if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_4k4 && ivas_total_brate != FRAME_NO_DATA ) +#endif { /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( num_obj, ivas_total_brate ); @@ -1052,7 +1056,11 @@ ivas_error ivas_ism_dec_config( } } } +#ifdef ALIGN_SID_SIZE + else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_4k4 ) +#endif { st_ivas->nchan_transport = num_obj; } diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index 91b79a614e..b4aa18f2a1 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -115,7 +115,11 @@ ivas_error ivas_masa_decode( *nb_bits_read = 0; next_bit_pos_orig = st->next_bit_pos; +#ifdef ALIGN_SID_SIZE + if ( masa_brate == IVAS_SID_5k2 ) +#else if ( masa_brate == IVAS_SID_4k4 ) +#endif { st->next_bit_pos = (int16_t) ( ( masa_brate / FRAMES_PER_SEC ) - 1 - SID_FORMAT_NBITS ); } @@ -124,7 +128,11 @@ ivas_error ivas_masa_decode( st->next_bit_pos = (int16_t) ( ( masa_brate / FRAMES_PER_SEC ) - 1 ); } +#ifdef ALIGN_SID_SIZE + if ( !st->bfi && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( !st->bfi && ivas_total_brate > IVAS_SID_4k4 ) +#endif { if ( !( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_MCMASA ) ) { @@ -216,7 +224,11 @@ ivas_error ivas_masa_decode( replicate_subframes( hQMetaData ); } } +#ifdef ALIGN_SID_SIZE + else if ( !st->bfi && ivas_format == MASA_FORMAT && ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( !st->bfi && ivas_format == MASA_FORMAT && ivas_total_brate == IVAS_SID_4k4 ) +#endif { if ( hQMetaData->q_direction == NULL ) { @@ -229,7 +241,11 @@ ivas_error ivas_masa_decode( ivas_masa_set_elements( ivas_total_brate, st_ivas->mc_mode, st_ivas->nchan_transport, hQMetaData, &st_ivas->element_mode_init, &st_ivas->nSCE, &st_ivas->nCPE ); +#ifdef ALIGN_SID_SIZE + hQMetaData->metadata_max_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC; +#else hQMetaData->metadata_max_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC; +#endif if ( ( error = ivas_qmetadata_allocate_memory( hQMetaData, 5, 1, 0 ) ) != IVAS_ERR_OK ) { @@ -285,7 +301,11 @@ ivas_error ivas_masa_decode( { st_ivas->hCPE[0]->hStereoDft->hConfig->force_mono_transmission = ivas_total_brate < MASA_STEREO_MIN_BITRATE ? 1 : 0; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( ivas_total_brate <= IVAS_SID_4k4 ) +#endif { st_ivas->hCPE[0]->hStereoDft->hConfig->force_mono_transmission = 0; } @@ -295,11 +315,19 @@ ivas_error ivas_masa_decode( { st_ivas->hCPE[0]->hCoreCoder[0]->masa_sid_format = 0; +#ifdef ALIGN_SID_SIZE + if ( st_ivas->hDecoderConfig->last_ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( st_ivas->hDecoderConfig->last_ivas_total_brate <= IVAS_SID_4k4 ) +#endif { st_ivas->hCPE[0]->hCoreCoder[0]->masa_sid_format = 1; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate >= IVAS_SID_5k2 ) +#else if ( ivas_total_brate >= IVAS_SID_4k4 ) +#endif { st_ivas->hCPE[0]->element_brate = ivas_total_brate; } @@ -479,7 +507,11 @@ void ivas_masa_prerender( const int16_t output_frame /* i : output frame length per channel */ ) { +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_transport == 2 && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_transport == 2 && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) +#endif { if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) { diff --git a/lib_dec/ivas_output_init.c b/lib_dec/ivas_output_init.c index af74b7571c..e1d96ff57d 100644 --- a/lib_dec/ivas_output_init.c +++ b/lib_dec/ivas_output_init.c @@ -530,7 +530,11 @@ void ivas_renderer_select( { *renderer_type = RENDERER_DISABLE; } +#ifdef ALIGN_SID_SIZE + else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) ) +#else else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) ) +#endif { *renderer_type = RENDERER_DISABLE; } diff --git a/lib_dec/ivas_qmetadata_dec.c b/lib_dec/ivas_qmetadata_dec.c index 2270d32eba..f0646759ef 100644 --- a/lib_dec/ivas_qmetadata_dec.c +++ b/lib_dec/ivas_qmetadata_dec.c @@ -721,17 +721,29 @@ int16_t ivas_qmetadata_dec_sid_decode( { if ( sba_mode == SBA_MODE_SPAR ) { +#ifdef ALIGN_SID_SIZE + metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ +#else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ +#endif } else { /* keep 13.2 and 16.4 sid bitrate as 4.4 kbps for now*/ +#ifdef ALIGN_SID_SIZE + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } } else { +#ifdef ALIGN_SID_SIZE + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } start_index = *index; diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 2eebf6967a..204b91b89d 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -523,8 +523,11 @@ ivas_error ivas_sba_dec_reconfigure( } } - if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && - ( last_ivas_total_brate > IVAS_SID_4k4 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#ifdef ALIGN_SID_SIZE + if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_5k2 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#else + if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_4k4 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#endif { if ( st_ivas->hDirAC != NULL ) { @@ -896,7 +899,11 @@ ivas_error ivas_sba_dec_reconfigure( } /* special case, if the decoder goes from 1TC DTX to 2TC active frame (in case the bitstream started with an SBA SID frame), allocate DTX memories */ +#ifdef ALIGN_SID_SIZE + if ( last_ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE >= 1 ) +#else if ( last_ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE >= 1 ) +#endif { if ( ( error = initMdctStereoDtxData( st_ivas->hCPE[0] ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_sce_dec.c b/lib_dec/ivas_sce_dec.c index 5b83a41f81..b3a73706df 100644 --- a/lib_dec/ivas_sce_dec.c +++ b/lib_dec/ivas_sce_dec.c @@ -82,7 +82,11 @@ ivas_error ivas_sce_dec( *-----------------------------------------------------------------*/ /* set total_brate - needed in DTX */ +#ifdef ALIGN_SID_SIZE + if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_5k2 ) ) +#else if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) ) +#endif { st->total_brate = ivas_total_brate - nb_bits_metadata * FRAMES_PER_SEC; assert( st->total_brate == SID_2k40 && "SCE SID must be 2.4kbps!" ); @@ -91,7 +95,11 @@ ivas_error ivas_sce_dec( { st->total_brate = ivas_total_brate; } +#ifdef ALIGN_SID_SIZE + else if ( !st_ivas->bfi && ( last_ivas_total_brate <= SID_2k40 || last_ivas_total_brate == IVAS_SID_5k2 ) ) +#else else if ( !st_ivas->bfi && ( last_ivas_total_brate <= SID_2k40 || last_ivas_total_brate == IVAS_SID_4k4 ) ) +#endif { st->total_brate = hSCE->element_brate - nb_bits_metadata * FRAMES_PER_SEC; } @@ -161,7 +169,11 @@ ivas_error ivas_sce_dec( } /* set "total_brate" */ +#ifdef ALIGN_SID_SIZE + if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_5k2 ) ) +#else if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) ) +#endif { st->total_brate = ivas_total_brate - nb_bits_metadata * FRAMES_PER_SEC; } diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 4f48e10a09..cae7c8f27b 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -628,7 +628,11 @@ static void ivas_spar_dec_MD( if ( ivas_total_brate > FRAME_NO_DATA && !bfi ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 ) +#else if ( ivas_total_brate > IVAS_SID_5k ) +#endif { ivas_parse_spar_header( hDecoderConfig->ivas_total_brate, sba_order, st0, &table_idx ); @@ -662,7 +666,11 @@ static void ivas_spar_dec_MD( * Read AGC bits *---------------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 && !bfi && hSpar->hMdDec->dtx_vad ) +#else if ( ivas_total_brate > IVAS_SID_5k && !bfi && hSpar->hMdDec->dtx_vad ) +#endif { hSpar->AGC_flag = get_next_indice( st0, 1 ); @@ -673,7 +681,11 @@ static void ivas_spar_dec_MD( * MD smoothing *---------------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( st0->m_old_frame_type == ZERO_FRAME && ivas_total_brate == IVAS_SID_5k2 && st0->prev_bfi == 0 && hSpar->hMdDec->spar_md_cfg.nchan_transport == 1 ) +#else if ( st0->m_old_frame_type == ZERO_FRAME && ivas_total_brate == IVAS_SID_5k && st0->prev_bfi == 0 && hSpar->hMdDec->spar_md_cfg.nchan_transport == 1 ) +#endif { ivas_spar_setup_md_smoothing( hSpar->hMdDec, num_bands_out ); } diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index cdc6ab57a6..1929cd6aa5 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -1446,7 +1446,11 @@ static void ivas_spar_dec_parse_md_bs( if ( hMdDec->spar_md_cfg.gen_bs == 1 ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 ) +#else if ( ivas_total_brate > IVAS_SID_5k ) +#endif { if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) { diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index 05e9222ddb..fb32bcd90c 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -90,7 +90,11 @@ void stereo_dft_dec_sid_coh( int16_t bits_tmp; int16_t b; +#ifdef ALIGN_SID_SIZE + nr_of_sid_stereo_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif /* If the coherence is not encoded due to lack of bits set alpha to zero which leads to that the coherence */ /* from the previous frame is used. */ @@ -653,9 +657,17 @@ void stereo_dtf_cng( hCPE->hStereoCng->nr_dft_frames++; } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( ivas_total_brate <= IVAS_SID_4k4 ) +#endif { +#ifdef ALIGN_SID_SIZE + if ( hCPE->hStereoCng->nr_sid_frames < SID_INIT && ivas_total_brate == IVAS_SID_5k2 ) +#else if ( hCPE->hStereoCng->nr_sid_frames < SID_INIT && ivas_total_brate == IVAS_SID_4k4 ) +#endif { hCPE->hStereoCng->nr_sid_frames++; } @@ -707,7 +719,11 @@ void stereo_cng_dec_update( if ( hCPE->element_mode == IVAS_CPE_DFT ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) +#else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == FRAME_NO_DATA ) +#endif { hCPE->hStereoCng->prev_sid_nodata = 1; } diff --git a/lib_dec/ivas_stereo_dft_dec.c b/lib_dec/ivas_stereo_dft_dec.c index 074efaa1a2..b0db814511 100644 --- a/lib_dec/ivas_stereo_dft_dec.c +++ b/lib_dec/ivas_stereo_dft_dec.c @@ -1746,7 +1746,11 @@ void stereo_dft_dec_read_BS( * Initialization *-----------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_4k4 ) +#endif { if ( ivas_format == MASA_FORMAT ) { @@ -1760,7 +1764,11 @@ void stereo_dft_dec_read_BS( hStereoDft->frame_nodata = 0; hStereoDft->frame_sid_nodata = 1; hStereoDft->frame_sid = 1; +#ifdef ALIGN_SID_SIZE + *nb_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else *nb_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } } else if ( ivas_total_brate == FRAME_NO_DATA ) @@ -1803,7 +1811,11 @@ void stereo_dft_dec_read_BS( k_offset = STEREO_DFT_OFFSET; N_div = STEREO_DFT_NBDIV; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 ) +#else if ( ivas_total_brate > IVAS_SID_4k4 ) +#endif { mvr2r( hStereoDft->side_gain + 2 * STEREO_DFT_BAND_MAX, sg_tmp, STEREO_DFT_BAND_MAX ); mvr2r( hStereoDft->res_pred_gain + 2 * STEREO_DFT_BAND_MAX, res_pred_gain_tmp, STEREO_DFT_BAND_MAX ); @@ -1893,7 +1905,11 @@ void stereo_dft_dec_read_BS( fprintf( pF, "ITD: %d ", hStereoDft->hConfig->itd_mode ); #endif +#ifdef ALIGN_SID_SIZE + if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) +#else if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) +#endif { /*------------------------------------------------------------------* * read Side gains @@ -1974,7 +1990,11 @@ void stereo_dft_dec_read_BS( #endif } } +#ifdef ALIGN_SID_SIZE + else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 - SID_FORMAT_NBITS ) ) +#else else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 - SID_FORMAT_NBITS ) ) +#endif { itd_mode = get_next_indice( st, STEREO_DFT_ITD_MODE_NBITS ); ( *nb_bits ) += STEREO_DFT_ITD_MODE_NBITS; /*ITD mode flag: 1bit*/ @@ -2016,7 +2036,11 @@ void stereo_dft_dec_read_BS( stereo_dft_dequantize_ipd( &ind1_ipd[0], hStereoDft->gipd + ( k + k_offset ), 1, STEREO_DFT_GIPD_NBITS ); } } +#ifdef ALIGN_SID_SIZE + else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS - SID_FORMAT_NBITS ) ) +#else else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS - SID_FORMAT_NBITS ) ) +#endif { /* SID frame, only read IPD only if enough bits left in bitstream */ hStereoDft->no_ipd_flag = st->bit_stream[nb]; @@ -2177,7 +2201,11 @@ void stereo_dft_dec_read_BS( #endif } +#ifdef ALIGN_SID_SIZE + if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) +#else if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) +#endif { if ( hStereoDft->side_gain_flag_1 != 2 ) { @@ -2185,7 +2213,11 @@ void stereo_dft_dec_read_BS( } } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 ) +#else if ( ivas_total_brate > IVAS_SID_4k4 ) +#endif { hStereoDft->recovery_flg = stereo_dft_sg_recovery( hStereoDft ); @@ -2252,12 +2284,20 @@ void stereo_dft_dec_read_BS( #endif } +#ifdef ALIGN_SID_SIZE + if ( hStereoDft->frame_sid && !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) +#else if ( hStereoDft->frame_sid && !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) +#endif { stereo_dft_dec_sid_coh( st, hStereoDft->nbands, coh, nb_bits ); } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 && ivas_format != MASA_FORMAT ) +#else if ( ivas_total_brate == IVAS_SID_4k4 && ivas_format != MASA_FORMAT ) +#endif { *nb_bits = (int16_t) ( ( element_brate - SID_2k40 ) / FRAMES_PER_SEC ); /* => hCPE->hCoreCoder[0]->total_brate = SID_2k40; */ } diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 064784e705..12d1fc8d66 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -559,13 +559,21 @@ void updateBuffersForDmxMdctStereo( sts[1] = hCPE->hCoreCoder[1]; /* synch buffers for inactive frames, but not for transition frames */ +#ifdef ALIGN_SID_SIZE + if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) +#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) +#endif { mvr2r( output[0], output[1], output_frame ); mvr2r( synth[0], synth[1], output_frame ); } +#ifdef ALIGN_SID_SIZE + if ( hCPE->element_brate == IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) +#else if ( hCPE->element_brate == IVAS_SID_4k4 && hCPE->last_element_brate > IVAS_SID_4k4 ) +#endif { /* in the first SID frame after an active frame, create mid noise shape here, in SID frames that follow inactive frames, it is done directly in the SID decoding since the mid shape is being used in CNG then */ for ( int16_t p = 0; p < sts[0]->hFdCngDec->hFdCngCom->npart; p++ ) @@ -575,7 +583,11 @@ void updateBuffersForDmxMdctStereo( } /* for transition of active->inactive frame, apply passive downmix on buffers */ +#ifdef ALIGN_SID_SIZE + if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) +#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) +#endif { delta = 1; if ( output_frame == L_FRAME16k ) @@ -641,13 +653,21 @@ void applyDmxMdctStereo( fade = 1.f; dmx_len = output_frame; +#ifdef ALIGN_SID_SIZE + if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) +#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) +#endif { crossfade_len = NS2SA( hCPE->hCoreCoder[0]->output_Fs, IVAS_DEC_DELAY_NS - DELAY_CLDFB_NS ); step /= crossfade_len; } /* for first inactive CNG frame after active decoding we have to do a fade-OUT FROM the passive DMX */ - else if ( hCPE->element_brate <= IVAS_SID_4k4 && hCPE->last_element_brate > IVAS_SID_4k4 ) +#ifdef ALIGN_SID_SIZE + else if ( hCPE->element_brate <= IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) +#else + if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) +#endif { crossfade_len = output_frame / 4; step /= -crossfade_len; diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index b2b7889569..80736dd425 100644 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -832,7 +832,11 @@ ivas_error stereo_memory_dec( if ( ivas_format == STEREO_FORMAT && hCPE->element_mode == IVAS_CPE_MDCT ) { +#ifdef ALIGN_SID_SIZE + if ( hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_total_brate > IVAS_SID_4k4 ) +#endif { if ( hCPE->hStereoMdct->use_itd == 0 ) { @@ -852,13 +856,21 @@ ivas_error stereo_memory_dec( else { /* de-allocate TCA data structure */ +#ifdef ALIGN_SID_SIZE + if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate > IVAS_SID_5k2 && hCPE->hStereoTCA != NULL ) +#else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate > IVAS_SID_4k4 && hCPE->hStereoTCA != NULL ) +#endif { count_free( hCPE->hStereoTCA ); hCPE->hStereoTCA = NULL; hCPE->hStereoMdct->use_itd = 0; } +#ifdef ALIGN_SID_SIZE + else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate <= IVAS_SID_5k2 ) +#else else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate <= IVAS_SID_4k4 ) +#endif { hCPE->hStereoMdct->itd = 0.0f; } @@ -1011,7 +1023,11 @@ void synchro_synthesis( if ( use_cldfb_for_last_dft ) { +#ifdef ALIGN_SID_SIZE + if ( hCPE->element_mode == IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_TD && ( ivas_total_brate > IVAS_SID_5k2 || hCPE->nchan_out == 2 ) ) +#else if ( hCPE->element_mode == IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_TD && ( ivas_total_brate > IVAS_SID_4k4 || hCPE->nchan_out == 2 ) ) +#endif { stereo_tca_scale_R_channel( hCPE, output[0], output_frame ); } @@ -1349,7 +1365,11 @@ void stereo_switching_dec( mvr2r( hCPE->input_mem[n], hCPE->output_mem[n], dft32ms_ovl ); } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 || n == 0 || hCPE->last_element_mode != IVAS_CPE_TD || hCPE->nchan_out == 1 ) +#else if ( ivas_total_brate > IVAS_SID_4k4 || n == 0 || hCPE->last_element_mode != IVAS_CPE_TD || hCPE->nchan_out == 1 ) +#endif { for ( i = 0; i < dft32ms_ovl; i++ ) { @@ -1423,7 +1443,11 @@ void stereo_switching_dec( /* no secondary channel in the previous frame -> memory resets */ if ( hCPE->element_mode > IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_DFT ) { +#ifdef ALIGN_SID_SIZE + if ( hCPE->last_element_brate <= IVAS_SID_5k2 && hCPE->nchan_out == 2 ) +#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 && hCPE->nchan_out == 2 ) +#endif { /* reset CLDFB memories */ cldfb_reset_memory( sts[0]->cldfbAna ); diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 2d41945563..2641e86541 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1156,7 +1156,11 @@ static bool isSidFrame( { return true; /* EVS SID */ } +#ifdef ALIGN_SID_SIZE + else if ( size == IVAS_SID_5k2 / FRAMES_PER_SEC ) +#else else if ( size == IVAS_SID_4k4 / FRAMES_PER_SEC ) +#endif { return true; /* IVAS SID */ } diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index b543761491..af11ccb4c8 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -560,7 +560,11 @@ ivas_error ivas_cpe_enc( /* Reconfigure DFT Stereo for inactive frames */ if ( sts[0]->core_brate == SID_2k40 ) { +#ifdef ALIGN_SID_SIZE + stereo_dft_config( hCPE->hStereoDft->hConfig, IVAS_SID_5k2, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); +#else stereo_dft_config( hCPE->hStereoDft->hConfig, IVAS_SID_4k4, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); +#endif } else { @@ -604,7 +608,11 @@ ivas_error ivas_cpe_enc( if ( sts[0]->core_brate == FRAME_NO_DATA || sts[0]->core_brate == SID_2k40 ) { +#ifdef ALIGN_SID_SIZE + assert( ( nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) ) && "Stereo DFT CNG: bit budget is violated" ); +#else assert( ( nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) ) && "Stereo DFT CNG: bit budget is violated" ); +#endif } else { diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 2653829d13..2433c01802 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -214,7 +214,11 @@ ivas_error ivas_ism_enc( ivas_write_format_sid( st_ivas->hEncoderConfig->ivas_format, IVAS_SCE, st->hBstr ); /* write unused bits */ +#ifdef ALIGN_SID_SIZE + nBits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else nBits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif while ( nBits > 0 ) { i = min( nBits, 16 ); diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index 613d59f1be..4f552ca365 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -684,17 +684,29 @@ void ivas_qmetadata_enc_sid_encode( { if ( sba_mode == SBA_MODE_SPAR ) { +#ifdef ALIGN_SID_SIZE + metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ +#else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ +#endif } else { /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ +#ifdef ALIGN_SID_SIZE + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } } else { +#ifdef ALIGN_SID_SIZE + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } #ifdef DEBUG_MODE_QMETADATA @@ -946,7 +958,11 @@ void reset_metadata_spatial( hMetaData->ind_list[i].nb_bits = -1; } hMetaData->last_ind = hMetaData->next_ind; +#ifdef ALIGN_SID_SIZE + assert( ( hMetaData->nb_bits_tot == ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) && "Problem of SID metadata in SCE" ); +#else assert( ( hMetaData->nb_bits_tot == ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) && "Problem of SID metadata in SCE" ); +#endif } } else diff --git a/lib_enc/ivas_stereo_cng_enc.c b/lib_enc/ivas_stereo_cng_enc.c index 860cdbe88f..c16b54efeb 100644 --- a/lib_enc/ivas_stereo_cng_enc.c +++ b/lib_enc/ivas_stereo_cng_enc.c @@ -148,7 +148,11 @@ void stereo_dft_enc_sid_coh( int16_t alpha_level; int16_t n; +#ifdef ALIGN_SID_SIZE + nr_of_sid_stereo_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif zeropad = 0; /* Encode coherence vector. Find best fixed predictor by minimizing prediction error on input vector. diff --git a/lib_enc/ivas_stereo_dft_enc.c b/lib_enc/ivas_stereo_dft_enc.c index 2e81bd99bc..402003be6c 100644 --- a/lib_enc/ivas_stereo_dft_enc.c +++ b/lib_enc/ivas_stereo_dft_enc.c @@ -2317,7 +2317,11 @@ void stereo_dft_enc_write_BS( { stereo_dft_enc_sid_calc_coh( hStereoDft, hCPE->hStereoCng->coh_crossfade, &hCPE->hStereoCng->td_active, &hCPE->hStereoCng->first_SID, cohBand ); +#ifdef ALIGN_SID_SIZE + if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 ) ) +#else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 ) ) +#endif { if ( hStereoDft->hItd->itd[k_offset] != 0 ) { @@ -2393,7 +2397,11 @@ void stereo_dft_enc_write_BS( nb += STEREO_DFT_GIPD_NBITS; } } +#ifdef ALIGN_SID_SIZE + else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS ) ) +#else else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS ) ) +#endif { push_indice( hBstr, IND_STEREO_DFT_NO_IPD_FLAG, hStereoDft->no_ipd_flag, STEREO_DFT_FLAG_BITS ); nb += STEREO_DFT_FLAG_BITS; /*IPD mode flag: 1bit*/ -- GitLab From f61c8965d62eaa0bce4f8330a5d82cce913461c5 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 19 Sep 2022 17:01:04 +0200 Subject: [PATCH 085/479] implement DTX @ 5.2kbps for MDCT-Stereo --- lib_com/bitstream.c | 12 ++++++++++++ lib_com/ivas_prot.h | 7 +++++++ lib_dec/fd_cng_dec.c | 4 ++++ lib_dec/ivas_stereo_mdct_stereo_dec.c | 2 +- lib_enc/fd_cng_enc.c | 5 +++++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index d774c4eff7..dd44d4f907 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -2975,4 +2975,16 @@ void evs_dec_previewFrame( } +#ifdef ALIGN_SID_SIZE +void dtx_read_padding_bits( + DEC_CORE_HANDLE st, + int16_t num_bits ) +{ + /* TODO: temporary hack, need to decide what to do with core-coder bitrate */ + st->total_brate = 3200; + get_next_indice(st, num_bits); + st->total_brate = 2400; +} +#endif + #undef WMC_TOOL_MAN diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index c4e93a9545..d453205933 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5449,4 +5449,11 @@ float rand_triangular_signed( /* clang-format on */ +#ifdef ALIGN_SID_SIZE +void dtx_read_padding_bits( + DEC_CORE_HANDLE st, + int16_t num_bits +); +#endif + #endif /* IVAS_PROT_H */ diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index ead5efa10f..974d046368 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -2099,6 +2099,10 @@ void FdCngDecodeMDCTStereoSID( msvq_dec( cdk_37bits_ivas, NULL, NULL, stages, N, FD_CNG_maxN_37bits, indices, ms_ptr[ch], NULL ); } +#ifdef ALIGN_SID_SIZE + dtx_read_padding_bits( sts[1], ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); +#endif + if ( sts[0]->hFdCngDec->hFdCngCom->no_side_flag ) { set_zero( ms_ptr[1], NPART ); diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 12d1fc8d66..10b9688be2 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -666,7 +666,7 @@ void applyDmxMdctStereo( #ifdef ALIGN_SID_SIZE else if ( hCPE->element_brate <= IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) #else - if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) + else if ( hCPE->element_brate <= IVAS_SID_4k4 && hCPE->last_element_brate > IVAS_SID_4k4 ) #endif { crossfade_len = output_frame / 4; diff --git a/lib_enc/fd_cng_enc.c b/lib_enc/fd_cng_enc.c index c2dfb1969f..670a202df2 100644 --- a/lib_enc/fd_cng_enc.c +++ b/lib_enc/fd_cng_enc.c @@ -1128,6 +1128,11 @@ void FdCngEncodeMDCTStereoSID( push_indice( sts[ch]->hBstr, IND_ENERGY, gain_idx[ch], 7 ); } +#ifdef ALIGN_SID_SIZE + /* pad with zeros to reach common SID frame size */ + push_indice( sts[1]->hBstr, IND_ENERGY, 0, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); +#endif + return; } -- GitLab From 8f013f70326c48c23bd0fa953bba546fda5627e4 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 19 Sep 2022 17:23:57 +0200 Subject: [PATCH 086/479] make DFT-Stereo DTX use 5.2kbps SIDs with padding only --- lib_com/bitstream.c | 6 ++++-- lib_dec/ivas_stereo_cng_dec.c | 6 +++++- lib_enc/ivas_stereo_cng_enc.c | 7 ++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index dd44d4f907..d4304d3649 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -2981,9 +2981,11 @@ void dtx_read_padding_bits( int16_t num_bits ) { /* TODO: temporary hack, need to decide what to do with core-coder bitrate */ - st->total_brate = 3200; + int16_t tmp; + tmp = st->total_brate; + st->total_brate = st->total_brate + num_bits * FRAMES_PER_SEC; get_next_indice(st, num_bits); - st->total_brate = 2400; + st->total_brate = tmp; } #endif diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index fb32bcd90c..fea12053c3 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -91,7 +91,8 @@ void stereo_dft_dec_sid_coh( int16_t b; #ifdef ALIGN_SID_SIZE - nr_of_sid_stereo_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + /* TODO: still use old number of bits to keep bitexactness in output */ + nr_of_sid_stereo_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -177,6 +178,9 @@ void stereo_dft_dec_sid_coh( ( *nb_bits )++; } +#ifdef ALIGN_SID_SIZE + dtx_read_padding_bits( st, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); +#endif return; } diff --git a/lib_enc/ivas_stereo_cng_enc.c b/lib_enc/ivas_stereo_cng_enc.c index c16b54efeb..5db60b5238 100644 --- a/lib_enc/ivas_stereo_cng_enc.c +++ b/lib_enc/ivas_stereo_cng_enc.c @@ -149,7 +149,8 @@ void stereo_dft_enc_sid_coh( int16_t n; #ifdef ALIGN_SID_SIZE - nr_of_sid_stereo_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + /* TODO: still use old number of bits to keep bitexactness in output */ + nr_of_sid_stereo_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -307,6 +308,10 @@ void stereo_dft_enc_sid_coh( ( *nb_bits )++; } +#ifdef ALIGN_SID_SIZE + push_next_indice( hBstr, zeropad, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); +#endif + return; } -- GitLab From e70e8f0d7455e454ed286d74ecb9b1f17d48ff7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 19 Sep 2022 17:55:11 +0200 Subject: [PATCH 087/479] pytest: added option --param_file to specify .prm file --- tests/conftest.py | 12 ++++++++++-- tests/test_param_file.py | 4 ++-- tests/testconfig.py | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 tests/testconfig.py diff --git a/tests/conftest.py b/tests/conftest.py index 7e06c43db7..c49b6d3d83 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -35,7 +35,7 @@ from subprocess import run import textwrap from typing import Optional import os - +import testconfig import pytest logger = logging.getLogger(__name__) @@ -114,6 +114,12 @@ def pytest_addoption(parser): help="If specified, use given directory as base data directory for dut files.", ) + parser.addoption( + "--param_file", + action="store", + help="If specified, use given param file in test_param_file.", + ) + @pytest.fixture(scope="session", autouse=True) def update_ref(request): @@ -332,7 +338,7 @@ class DecoderFrontend: # add mandatory parameters # output_config is mandatory for IVAS; EVS does not have this parameter, indicated by "" - if output_config is not "": + if output_config != "": command += [output_config] command += [ str(output_sampling_rate), @@ -473,3 +479,5 @@ def pytest_configure(config): config.addinivalue_line( "markers", "create_ref_part2: reference creation test that depends on create_ref references" ) + if config.option.param_file: + testconfig.PARAM_FILE = config.option.param_file diff --git a/tests/test_param_file.py b/tests/test_param_file.py index a068243d0d..be4ffe62ec 100644 --- a/tests/test_param_file.py +++ b/tests/test_param_file.py @@ -33,8 +33,8 @@ import errno import pytest from cmp_custom import cmp_custom from conftest import EncoderFrontend, DecoderFrontend +from testconfig import PARAM_FILE -PARAM_FILE = "scripts/config/self_test.prm" param_file_test_dict = {} with open(PARAM_FILE, "r", encoding="UTF-8") as fp: @@ -179,7 +179,7 @@ def test_param_file_tests( # the output file is not the real output filename # -> construct output filename - if output_config is not "": + if output_config != "": output_file = f"{testv_base}_{tag_str}.dec.{output_config_name}.pcm" else: # EVS decoder command lines do not have an output_config: use "MONO" in the output filename diff --git a/tests/testconfig.py b/tests/testconfig.py new file mode 100644 index 0000000000..9837764910 --- /dev/null +++ b/tests/testconfig.py @@ -0,0 +1,35 @@ +__license__ = """ +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. +""" + +__doc__ = """ +To configure test modules. +""" + +PARAM_FILE = "scripts/config/self_test.prm" -- GitLab From 83926636c0e4de9b2ba70c2bea8e1d302f4b193c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 19 Sep 2022 18:01:20 +0200 Subject: [PATCH 088/479] pytest: added new script rub_pytests.py - replaces self_test_b.py --- tests/create_short_testvectors.py | 24 ++- tests/run_pytests.py | 128 ++++++++++++++ tests/self_test_b.py | 273 ------------------------------ 3 files changed, 144 insertions(+), 281 deletions(-) create mode 100755 tests/run_pytests.py delete mode 100755 tests/self_test_b.py diff --git a/tests/create_short_testvectors.py b/tests/create_short_testvectors.py index a5f50c6969..8cff1566b3 100755 --- a/tests/create_short_testvectors.py +++ b/tests/create_short_testvectors.py @@ -36,6 +36,7 @@ __doc__ = \ Create short (5sec) testvectors. """ +import sys from pathlib import Path from cut_pcm import cut_samples @@ -45,11 +46,18 @@ TEST_VECTOR_DIR = str(HERE.joinpath("../scripts/testv").resolve()) NUM_CHANNELS = "4" # currently only FOA CUT_FROM = "0.0" CUT_LEN = "5.0" -for fs in ['48', '32', '16']: - in_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c.pcm" - cut_gain = "1.0" - cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut.pcm" - cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) - cut_gain = "16.0" - cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" - cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) + + +def create_short_testvectors(): + for fs in ['48', '32', '16']: + in_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c.pcm" + cut_gain = "1.0" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut.pcm" + cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) + cut_gain = "16.0" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" + cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) + + +if __name__ == "__main__": + sys.exit(create_short_testvectors()) diff --git a/tests/run_pytests.py b/tests/run_pytests.py new file mode 100755 index 0000000000..cd94d27a1f --- /dev/null +++ b/tests/run_pytests.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 + +""" + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +""" +Script to run the pytest tests. + +Test prerequisites are checked for and check failures are reported. +When prerequisites are met, the pytest test is executed. +""" + +import os +import sys +import argparse +import subprocess +import platform +from pathlib import Path + +sys.path.append('tests/') +from create_short_testvectors import create_short_testvectors + +BIN_EXT = ".exe" if platform.system() == "Windows" else "" +HERE = Path(__file__).parent.resolve() +DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../IVAS_cod{BIN_EXT}").resolve()) +DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../IVAS_dec{BIN_EXT}").resolve()) +DEFAULT_ENCODER_REF = str(HERE.joinpath(f"../IVAS_cod_ref{BIN_EXT}").resolve()) +DEFAULT_DECODER_REF = str(HERE.joinpath(f"../IVAS_dec_ref{BIN_EXT}").resolve()) +REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) + + +def main(argv): + # check for python >= 3.7 + if sys.version_info[0] < 3 or sys.version_info[1] < 7: + sys.exit("This script is written for Python >= 3.7. Found: " + platform.python_version()) + + parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument( + "--create_only", + action="store_true", + default=False, + help="Create references when needed, but don't run the tests" + ) + parser.add_argument( + "--numprocesses", + action="store", + default="auto", + help="Number of processes to use in pytest (default: auto)", + ) + + args = parser.parse_args(argv[1:]) + + # check for DUT binaries + if not os.path.exists(DEFAULT_ENCODER_DUT) or not os.path.exists(DEFAULT_DECODER_DUT): + sys.exit(f"Need DUT binaries {DEFAULT_ENCODER_DUT} and {DEFAULT_DECODER_DUT}. Please create the binaries.") + + # check for references + if os.path.exists(REFERENCE_DIR): + print(f"Using existing references directory {REFERENCE_DIR}") + else: + # check for REF binaries + print(f"References directory {REFERENCE_DIR} does not exist.") + if not os.path.exists(DEFAULT_ENCODER_REF) or not os.path.exists(DEFAULT_DECODER_REF): + sys.exit(f"Need REF binaries {DEFAULT_ENCODER_REF} and {DEFAULT_DECODER_REF}. Please create the binaries.") + + # create references + print(f"Creating references within the references directory {REFERENCE_DIR}") + create_short_testvectors() + if platform.system() == "Windows": + base_cmd = ["pytest"] + else: + base_cmd = ["python3", "-m", "pytest"] + base_cmd += [ + "tests", + "-n", + args.numprocesses, + "--update_ref", + "1", + ] + subprocess.run(base_cmd + ["-m", "create_ref"], check=False) + subprocess.run(base_cmd + ["-m", "create_ref_part2"], check=False) + + if args.create_only: + return + + # run pytest + if platform.system() == "Windows": + cmd = ["pytest"] + else: + cmd = ["python3", "-m", "pytest"] + cmd += [ + "tests", + "-n", + args.numprocesses, + ] + result = subprocess.run(cmd, check=False) + return result.returncode + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/tests/self_test_b.py b/tests/self_test_b.py deleted file mode 100755 index dbebf59817..0000000000 --- a/tests/self_test_b.py +++ /dev/null @@ -1,273 +0,0 @@ -#!/usr/bin/env python3 - -""" - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. -""" - -""" -Script to run the pytest tests. - -Step 1: Set the stage for the pytest run. - -Step 2: Run pytest. -""" - -import os -import sys -import argparse -import subprocess -import platform -from pathlib import Path - -sys.path.append('tests/') -from cut_pcm import cut_samples - -BIN_EXT = ".exe" if platform.system() == "Windows" else "" -HERE = Path(__file__).parent.resolve() -DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../IVAS_cod{BIN_EXT}").resolve()) -DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../IVAS_dec{BIN_EXT}").resolve()) -DEFAULT_ENCODER_REF = str(HERE.joinpath(f"../IVAS_cod_ref{BIN_EXT}").resolve()) -DEFAULT_DECODER_REF = str(HERE.joinpath(f"../IVAS_dec_ref{BIN_EXT}").resolve()) -CREND_UNITTEST_REF = str(HERE.joinpath(f"../scripts/ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test_ref{BIN_EXT}").resolve()) -TEST_VECTOR_DIR = str(HERE.joinpath("../scripts/testv").resolve()) -REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) -DUT_BASE_DIR = str(HERE.joinpath("dut").resolve()) - - -def build_enc_and_dec(src_dir): - """ - Build the encoder and decoder binaries. - """ - if platform.system() == "Windows": - olddir = os.getcwd() - os.chdir(src_dir) - os.chdir("Workspace_msvc") - command = ["MSBuild.exe", "Workspace_msvc.sln", "/t:Clean", "/p:configuration=Release", "/p:Platform=Win32"] - subprocess.run(command, check=True) - command = ["MSBuild.exe", "Workspace_msvc.sln", "/property:configuration=Release", "/p:Platform=Win32"] - subprocess.run(command, check=True) - os.chdir(olddir) - else: - command = ["make", "-C", src_dir, "clean"] - subprocess.run(command, check=True) - command = ["make", "-C", src_dir] - subprocess.run(command, check=True) - - -def build_crend_unittest(src_dir): - """ - Build the crend unit test binary. - """ - crend_dir = f"{src_dir}/scripts/ivas_pytests/tests/unit_tests/crend" - if platform.system() == "Windows": - olddir = os.getcwd() - os.chdir(crend_dir) - # command = ["MSBuild.exe", "ivas_crend_unit_test.sln", "/t:Clean", "/p:configuration=Release", "/p:Platform=Win32"] - # subprocess.run(command, check=True) - command = ["MSBuild.exe", "ivas_crend_unit_test.sln", "/property:configuration=Release", "/p:Platform=Win32"] - subprocess.run(command, check=True) - os.chdir(olddir) - else: - # command = ["make", "-C", src_dir, "clean"] - # subprocess.run(command, check=True) - command = ["make", "-C", src_dir, "IVAS_crend_unit_test"] - subprocess.run(command, check=True) - - -def build_dut_binaries(): - """ - Build the DUT binaries. - """ - print("Building the DUT binaries") - dut_src_dir = str(HERE.joinpath("..").resolve()) - build_enc_and_dec(dut_src_dir) - build_crend_unittest(dut_src_dir) - - -def create_short_testvectors(): - """ - Create short (5sec) testvectors. - """ - print("Creating short (5sec) testvectors") - num_channels = "4" # currently only FOA - cut_from = "0.0" - cut_len = "5.0" - for fs in ['48', '32', '16']: - in_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c.pcm" - cut_gain = "1.0" - cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut.pcm" - cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) - cut_gain = "16.0" - cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" - cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) - - -def main(argv): - # check for python >= 3.7 - if sys.version_info[0] < 3 or sys.version_info[1] < 7: - sys.exit("This script is written for Python >= 3.7. Found: " + platform.python_version()) - - parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument( - "--create_only", - action="store_true", - default=False, - help="Create references when needed, but don't run the tests" - ) - parser.add_argument( - "--numprocesses", - action="store", - default="auto", - help="Number of processes to use in pytest (default: auto)", - ) - parser.add_argument("--encref", help=f"REF encoder binary (default:{DEFAULT_ENCODER_REF})") - parser.add_argument("--decref", help=f"REF decoder binary (default:{DEFAULT_DECODER_REF})") - parser.add_argument("--encdut", help=f"DUT encoder binary (default:{DEFAULT_ENCODER_DUT})") - parser.add_argument("--decdut", help=f"DUT decoder binary (default:{DEFAULT_DECODER_DUT})") - - args = parser.parse_args(argv[1:]) - - # check for DUT binaries - if args.encdut: - encdut_path = os.path.realpath(args.encdut) - if not os.path.exists(encdut_path): - sys.exit(f"DUT encoder binary {encdut_path} does not exist.") - else: - encdut_path = DEFAULT_ENCODER_DUT - if args.decdut: - decdut_path = os.path.realpath(args.decdut) - if not os.path.exists(decdut_path): - sys.exit(f"DUT encoder binary {decdut_path} does not exist.") - else: - decdut_path = DEFAULT_DECODER_DUT - if not os.path.exists(encdut_path) or not os.path.exists(decdut_path): - build_dut_binaries() - - if not os.path.exists(REFERENCE_DIR): - # check for REF binaries - if args.encref: - encref_path = os.path.realpath(args.encref) - if not os.path.exists(encref_path): - sys.exit(f"REF encoder binary {encref_path} does not exist.") - else: - encref_path = DEFAULT_ENCODER_REF - if args.decref: - decref_path = os.path.realpath(args.decref) - if not os.path.exists(decref_path): - sys.exit(f"REF encoder binary {decref_path} does not exist.") - else: - decref_path = DEFAULT_DECODER_REF - if not os.path.exists(encref_path) or not os.path.exists(decref_path): - sys.exit("Reference binaries do not exist.") - - # check for test vectors - if not os.path.exists(TEST_VECTOR_DIR): - sys.exit(f"Test vector directory {TEST_VECTOR_DIR} does not exist.") - - # check for references - if os.path.exists(REFERENCE_DIR): - print(f"Using existing references directory {REFERENCE_DIR}") - else: - # create references - print(f"Creating references within the references directory {REFERENCE_DIR}") - create_short_testvectors() - if platform.system() == "Windows": - base_cmd = ["pytest"] - else: - base_cmd = ["python3", "-m", "pytest"] - base_cmd += [ - "tests", - "-n", - args.numprocesses, - "--update_ref", - "1", - "-v", - "--test_vector_path", - TEST_VECTOR_DIR, - "--reference_path", - REFERENCE_DIR, - "--dut_base_path", - DUT_BASE_DIR, - "--ref_encoder_path", - encref_path, - "--ref_decoder_path", - decref_path, - "--dut_encoder_path", - encdut_path, - "--dut_decoder_path", - decdut_path, - ] - # work-around in unit tests via environment variable - # TESTVECTOR_PATH_REL_GROUPB: to specify the test vector directory relative to ivas_pytests folder - # TESTVECTOR_PATH_REL_TRUNK: to specify the test vector directory relative to trunk - my_env = os.environ.copy() - my_env["TESTVECTOR_PATH_REL_GROUPB"] = "testv/" - my_env["TESTVECTOR_PATH_REL_TRUNK"] = "/scripts/ivas_pytests/testv/" # leading "/" is important - my_env["CREND_UNIT_TEST_BIN"] = CREND_UNITTEST_REF - print("pytest command line to be executed from project root folder:") - print(" ".join(base_cmd + ["-m", "create_ref"])) - subprocess.run(base_cmd + ["-m", "create_ref"], check=False, env=my_env) - print("pytest command line to be executed from project root folder:") - print(" ".join(base_cmd + ["-m", "create_ref_part2"])) - subprocess.run(base_cmd + ["-m", "create_ref_part2"], check=False, env=my_env) - - if args.create_only: - return - - # run pytest - if platform.system() == "Windows": - cmd = ["pytest"] - else: - cmd = ["python3", "-m", "pytest"] - cmd += [ - "tests", - "-n", - args.numprocesses, - "-v", - "--test_vector_path", - TEST_VECTOR_DIR, - "--reference_path", - REFERENCE_DIR, - "--dut_base_path", - DUT_BASE_DIR, - "--dut_encoder_path", - encdut_path, - "--dut_decoder_path", - decdut_path, - "--junit-xml=report-junit.xml", - ] - # print pytest commandline - print("pytest command line to be executed from project root folder:") - print(" ".join(cmd)) - result = subprocess.run(cmd, check=False) - return result.returncode - - -if __name__ == "__main__": - sys.exit(main(sys.argv)) -- GitLab From 6fa1b9f7105f13684aa7060c06c1f3dc10c24664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 19 Sep 2022 18:34:52 +0200 Subject: [PATCH 089/479] pytest: removed pinning of python modules to specific versions in requirements.txt (mentioned versions have small bugs and latest versions seem to work fine) --- tests/requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/requirements.txt b/tests/requirements.txt index 764694dfc0..2eb090f4fb 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,4 +1,4 @@ -pytest==5.3.5 -pytest-xdist==1.31.0 -scipy==1.5.2 -numpy==1.19.2 +pytest>=5.3.5 +pytest-xdist>=1.31.0 +scipy>=1.5.2 +numpy>=1.19.2 -- GitLab From 9ef8ba2743eed4a036162e70317e5c4b87b9dfa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 19 Sep 2022 18:39:10 +0200 Subject: [PATCH 090/479] pytest: update of README.md (addressed feedback, fixed typos and added custom options) --- tests/README.md | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/tests/README.md b/tests/README.md index dc22492fae..78ef9b2212 100644 --- a/tests/README.md +++ b/tests/README.md @@ -47,18 +47,20 @@ python3 tests/create_short_testvectors.py ``` The tests rely on references which need to be generated upfront using reference binaries. -When the reference binaries are named `IVAS_cod_ref(.exe)` and `IVAS_dec_ref.(exe)`, pytest will find and use them. +When the reference binaries are named `IVAS_cod_ref(.exe)` and `IVAS_dec_ref(.exe)`, pytest will find and use them. When the reference binaries are named differently, you need to specify them via the `--ref_encoder_path` and `--ref_decoder_path` options. -The tests will used the binaries `IVAS_cod(.exe)` and `IVAS_dec.(exe)` for testing. Please make sure that the binaries have been built before running the tests. +The tests will used the binaries `IVAS_cod(.exe)` and `IVAS_dec(.exe)` for testing. Please make sure that the binaries have been built before running the tests. +When different test binaries are to be used, they can be specified via the `--dut_encoder_path` and `--dut_decoder_path` options. +(DUT: Device Under Test) ```bash # create references -# the following binaies need to be present: +# the following binaries need to be present: # - IVAS_cod(.exe) -# - IVAS_dec.(exe) +# - IVAS_dec(.exe) # - IVAS_cod_ref(.exe) -# - IVAS_dec_ref.(exe) +# - IVAS_dec_ref(.exe) # pytest command lines to be executed from project root folder: pytest tests -n auto --update_ref 1 -m create_ref pytest tests -n auto --update_ref 1 -m create_ref_part2 @@ -105,3 +107,23 @@ When there a many test failures, you can use the `-x` (or `--exitfirst`) option Commonly used options like `-n auto` can be added to addopts within the [pytest] section in `pytest.ini`. This saves some typing when calling `pytest`. The `-v` (or `--verbose`) option is usually helpful to see what is going on. Therefore, `-v` is currently part of addopts in `pytest.ini`. If you don't like this verbosity, you can specify the `-q` (`--quiet`) option when running `pytest`. + +## Custom options + +`Note:` +The custom options are listed as part of the pytest help `pytest -h`. + +```text +--update_ref=UPDATE_REF Indicate whether references shall be updated. + 0: Only DUT processing, no reference generation, references need to be present. + 1: Only reference generation (unconditionally), no DUT processing. + 2: DUT processing, references are generated when not present (not supported by all tests). +--dut_encoder_path=DUT_ENCODER_PATH If specified, use given binary as DUT encoder. +--dut_decoder_path=DUT_DECODER_PATH If specified, use given binary as DUT decoder. +--ref_encoder_path=REF_ENCODER_PATH If specified, use given binary as REF encoder. +--ref_decoder_path=REF_DECODER_PATH If specified, use given binary as REF decoder. +--test_vector_path=TEST_VECTOR_PATH If specified, use given directory as base directory for test vector files. +--reference_path=REFERENCE_PATH If specified, use given directory as base directory for reference files. +--dut_base_path=DUT_BASE_PATH If specified, use given directory as base data directory for dut files. +--param_file=PARAM_FILE If specified, use given param file in test_param_file. +``` -- GitLab From 2bbffc6853e34ecd5e2076e942294437e4f9defe Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 19 Sep 2022 18:40:24 +0200 Subject: [PATCH 091/479] add 5.2kbps SID for remaining formats, SBA not BE, rest is --- lib_dec/ivas_ism_metadata_dec.c | 1 - lib_dec/ivas_qmetadata_dec.c | 27 ++++++++++++++++++++++++--- lib_enc/ivas_cpe_enc.c | 4 ++++ lib_enc/ivas_qmetadata_enc.c | 29 ++++++++++++++++++++++++++--- 4 files changed, 54 insertions(+), 7 deletions(-) diff --git a/lib_dec/ivas_ism_metadata_dec.c b/lib_dec/ivas_ism_metadata_dec.c index c8ce447875..dee9b6489f 100644 --- a/lib_dec/ivas_ism_metadata_dec.c +++ b/lib_dec/ivas_ism_metadata_dec.c @@ -92,7 +92,6 @@ ivas_error ivas_ism_metadata_dec( /* set padding bits as metadata bits to keep later bitrate checks valid */ #ifdef ALIGN_SID_SIZE - /* TODO: include padding bits here? */ nb_bits_metadata[0] = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC; #else nb_bits_metadata[0] = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC; diff --git a/lib_dec/ivas_qmetadata_dec.c b/lib_dec/ivas_qmetadata_dec.c index f0646759ef..b81d5cfd97 100644 --- a/lib_dec/ivas_qmetadata_dec.c +++ b/lib_dec/ivas_qmetadata_dec.c @@ -722,7 +722,8 @@ int16_t ivas_qmetadata_dec_sid_decode( if ( sba_mode == SBA_MODE_SPAR ) { #ifdef ALIGN_SID_SIZE - metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = (int16_t) ( 5000/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ #else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ #endif @@ -731,7 +732,8 @@ int16_t ivas_qmetadata_dec_sid_decode( { /* keep 13.2 and 16.4 sid bitrate as 4.4 kbps for now*/ #ifdef ALIGN_SID_SIZE - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -740,7 +742,8 @@ int16_t ivas_qmetadata_dec_sid_decode( else { #ifdef ALIGN_SID_SIZE - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -862,6 +865,24 @@ int16_t ivas_qmetadata_dec_sid_decode( } } } +#ifdef ALIGN_SID_SIZE + /* TODO: temporary hack to keep BE */ + if ( ivas_format == SBA_FORMAT ) + { + if ( sba_mode == SBA_MODE_SPAR ) + { + metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ + } + else + { + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + } + } + else + { + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + } +#endif /*Read filling bits*/ while ( start_index - *index < metadata_sid_bits ) diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index af11ccb4c8..ca817c9640 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -541,7 +541,11 @@ ivas_error ivas_cpe_enc( * Write IVAS format signaling in SID frames *----------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( sts[0]->core_brate == SID_2k40 ) +#else if ( sts[0]->core_brate == SID_2k40 && ( ivas_format != SBA_FORMAT || st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#endif { ivas_write_format_sid( ivas_format, hCPE->element_mode, sts[0]->hBstr ); } diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index 4f552ca365..492114987f 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -685,7 +685,8 @@ void ivas_qmetadata_enc_sid_encode( if ( sba_mode == SBA_MODE_SPAR ) { #ifdef ALIGN_SID_SIZE - metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = (int16_t) ( 5000/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ #else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ #endif @@ -694,7 +695,8 @@ void ivas_qmetadata_enc_sid_encode( { /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ #ifdef ALIGN_SID_SIZE - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -703,7 +705,8 @@ void ivas_qmetadata_enc_sid_encode( else { #ifdef ALIGN_SID_SIZE - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -885,6 +888,26 @@ void ivas_qmetadata_enc_sid_encode( } #endif +#ifdef ALIGN_SID_SIZE + /* TODO: temporary to keep BE */ + if ( ivas_format == SBA_FORMAT ) + { + if ( sba_mode == SBA_MODE_SPAR ) + { + metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ + } + else + { + /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + } + } + else + { + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + } +#endif + /* fill bits*/ assert( ( hMetaData->nb_bits_tot - bit_pos_start ) <= metadata_sid_bits && "Too many written bits!" ); while ( ( hMetaData->nb_bits_tot - bit_pos_start ) < metadata_sid_bits ) -- GitLab From bb2e79c3d97f93a3ae4e650e708a78c9fe5627dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 19 Sep 2022 18:42:06 +0200 Subject: [PATCH 092/479] pytest: update of .gitignore and pytest.ini (adjusted JUnit reporting) --- .gitignore | 2 ++ pytest.ini | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9000be58a1..aecd59fd31 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,8 @@ scripts/ref/ scripts/test/ scripts/out/ scripts/self_test_summary.txt +tests/dut +tests/ref # Python files that pop up when running scripts __pycache__/ diff --git a/pytest.ini b/pytest.ini index 9d9a3bbf8e..9ffbd0f806 100644 --- a/pytest.ini +++ b/pytest.ini @@ -2,7 +2,12 @@ # note: per convention, this file is placed in the root directory of the repository [pytest] addopts = -ra --tb=short --basetemp=./tmp -v -junit_family=xunit1 +# Write captured system-out log messages to JUnit report. +junit_logging = system-out +# Do not capture log information for passing tests to JUnit report. +junit_log_passing_tests = False +junit_duration_report = call +junit_family = xunit1 log_file_level = DEBUG log_format = %(asctime)s %(levelname)s %(message)s log_date_format = %Y-%m-%d %H:%M:%S -- GitLab From 2d6706f3a920230e9e28c556668ff1d1ff1be271 Mon Sep 17 00:00:00 2001 From: Eleni Fotopoulou Date: Mon, 19 Sep 2022 20:15:15 +0200 Subject: [PATCH 093/479] [fix] for Issue 13 --- lib_com/options.h | 2 ++ lib_dec/dec_tcx.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 54d2700014..71d797cc7a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -150,6 +150,8 @@ #define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ +#define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index ae5faa4d73..fe29fc068f 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1546,7 +1546,11 @@ void decoder_tcx_tns( if ( ( L_frame == st->L_frame >> 1 ) && st->tcxonly && isTCX5 ) { +#ifndef FIX_I13_TCX_TNS_ISSUE tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); +#else + tcx5TnsUngrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); +#endif } } -- GitLab From 1cc2ac306701fead017cea1cc6eff3b0c9670da0 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Tue, 20 Sep 2022 18:19:57 +1000 Subject: [PATCH 094/479] Pointer variables clean up for ivas_quantise_real_values() and ivas_deindex_real_index() These functions were originally written to quantise/unquantise two dimensional arrays but currently they are being used to quantise either one variable at a time OR one dimensional arrays. Hence code has been simplified to handle both one dimensional arrays and single variables, removing unnecessary pointer manipulation --- lib_com/ivas_prot.h | 32 +++-- lib_com/ivas_spar_com_quant_util.c | 59 +++++++-- lib_com/options.h | 1 + lib_dec/ivas_spar_md_dec.c | 186 ++++++++++++++++++++++++++--- lib_enc/ivas_spar_md_enc.c | 178 ++++++++++++++++++++++----- 5 files changed, 387 insertions(+), 69 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index c4e93a9545..e32e7bff96 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4242,17 +4242,31 @@ int16_t ivas_map_num_drct_r_to_idx( const int16_t num_quant_points_drct_r ); int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ); /* Quantization utilities */ -void ivas_quantise_real_values( - float **values, - const int16_t q_levels, - const float min_value, - const float max_value, - int16_t **index, - float **quant, - const int16_t dim1, - const int16_t dim2 +void ivas_quantise_real_values( +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + const float *values, +#else + float **values, +#endif + const int16_t q_levels, + const float min_value, + const float max_value, +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + int16_t *index, + float *quant, +#else + int16_t **index, + float **quant, +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + const int16_t dim +#else + const int16_t dim1, + const int16_t dim2 +#endif ); + void ivas_spar_get_uniform_quant_strat( ivas_spar_md_com_cfg *pSpar_md_com_cfg, const int16_t table_idx diff --git a/lib_com/ivas_spar_com_quant_util.c b/lib_com/ivas_spar_com_quant_util.c index 5755f05324..4feca8c98a 100644 --- a/lib_com/ivas_spar_com_quant_util.c +++ b/lib_com/ivas_spar_com_quant_util.c @@ -41,7 +41,7 @@ #include "ivas_rom_com.h" #include #include "wmops.h" - +#ifndef QUANTISE_REAL_FCN_CLEAN_UP /*-----------------------------------------------------------------------------------------* * Function ivas_limit_values() * @@ -56,7 +56,6 @@ static void ivas_limit_values( const int16_t dim2 ) { int16_t i, j; - for ( i = 0; i < dim1; i++ ) { for ( j = 0; j < dim2; j++ ) @@ -64,48 +63,73 @@ static void ivas_limit_values( ppValues[i][j] = max( min_value, min( ppValues[i][j], max_value ) ); } } - return; } - +#endif /*-----------------------------------------------------------------------------------------* * Function ivas_quantise_real_values() * * Quantize real values *-----------------------------------------------------------------------------------------*/ - void ivas_quantise_real_values( +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + const float *values, +#else float **values, +#endif const int16_t q_levels, const float min_value, const float max_value, +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + int16_t *index, + float *quant, +#else int16_t **index, float **quant, +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + const int16_t dim +#else const int16_t dim1, - const int16_t dim2 ) + const int16_t dim2 +#endif +) { +#ifndef QUANTISE_REAL_FCN_CLEAN_UP int16_t i, j; +#else + int16_t i; +#endif float q_step, one_by_q_step; - if ( q_levels == 1 ) { +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim1; i++ ) { for ( j = 0; j < dim2; j++ ) { + quant[i][j] = 0; index[i][j] = 0; } } +#else + for ( i = 0; i < dim; i++ ) + { + quant[i] = 0; + index[i] = 0; + } +#endif } else if ( q_levels && max_value != min_value ) { +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ivas_limit_values( values, min_value, max_value, dim1, dim2 ); - +#endif q_step = ( max_value - min_value ) / ( q_levels - 1 ); one_by_q_step = ( q_levels - 1 ) / ( max_value - min_value ); - +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim1; i++ ) { for ( j = 0; j < dim2; j++ ) @@ -114,9 +138,19 @@ void ivas_quantise_real_values( quant[i][j] = index[i][j] * q_step; } } +#else + float val; + for ( i = 0; i < dim; i++ ) + { + val = max( min_value, min( values[i], max_value ) ); + index[i] = (int16_t) round( one_by_q_step * val ); + quant[i] = index[i] * q_step; + } +#endif } else { +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim1; i++ ) { for ( j = 0; j < dim2; j++ ) @@ -124,8 +158,13 @@ void ivas_quantise_real_values( quant[i][j] = values[i][j]; } } +#else + for ( i = 0; i < dim; i++ ) + { + quant[i] = values[i]; + } +#endif } - return; } diff --git a/lib_com/options.h b/lib_com/options.h index 54d2700014..db358692a9 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -150,6 +150,7 @@ #define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ +#define QUANTISE_REAL_FCN_CLEAN_UP /*Clean up the ivas_quantise_real_values() function*/ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index cdc6ab57a6..36954e110c 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -82,9 +82,11 @@ static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coe static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ); static void ivas_parse_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, Decoder_State *st, const int16_t bw, const int16_t num_bands, int16_t *num_dmx_per_band, int16_t *num_dec_per_band ); - +#ifdef QUANTISE_REAL_FCN_CLEAN_UP +static ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, float *quant, const int16_t num_ch_dim2 ); +#else static ivas_error ivas_deindex_real_index( int16_t **index, const int16_t q_levels, const float min_value, const float max_value, float **quant, const int16_t num_ch, const int16_t dim2 ); - +#endif static void ivas_spar_dec_parse_md_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, int16_t *nB, int16_t *bands_bw, int16_t *dtx_vad, const int32_t ivas_total_brate, const int16_t use_planar_coeff, const int16_t sba_inactive_mode ); @@ -1601,23 +1603,31 @@ static void ivas_spar_dec_parse_md_bs( for ( i = 0; i < *nB; i++ ) { int16_t ii, jj; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP int16_t *index_scratch[IVAS_SPAR_P_LOWERTRI]; float *quant_scratch[IVAS_SPAR_P_LOWERTRI]; +#endif int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP int16_t **index = (int16_t **) &index_scratch[0]; float **quant = (float **) &quant_scratch[0]; float coeff_decd[IVAS_SPAR_MAX_CH - 1]; float coeff_decx_re[IVAS_SPAR_P_LOWERTRI]; + int16_t decx_index_re[IVAS_SPAR_P_LOWERTRI]; int16_t pred_index_re[IVAS_SPAR_MAX_CH - 1]; int16_t drct_index_re[IVAS_SPAR_MAX_C_COEFF]; int16_t decd_index_re[IVAS_SPAR_MAX_CH - 1]; - int16_t decx_index_re[IVAS_SPAR_P_LOWERTRI]; +#else + float quant[IVAS_SPAR_MAX_C_COEFF]; +#endif +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( j = 0; j < ndm + ndec - 1; j++ ) { pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; } + for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) { drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; @@ -1626,10 +1636,14 @@ static void ivas_spar_dec_parse_md_bs( { decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; } - +#endif +#ifndef QUANTISE_REAL_FCN_CLEAN_UP index[0] = &pred_index_re[0]; quant[0] = &hMdDec->spar_md.band_coeffs[i].pred_re[0]; - +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); +#else ivas_deindex_real_index( index, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, quant, 1, ndm + ndec - 1 ); for ( ii = 0; ii < ndec; ii++ ) { @@ -1638,7 +1652,19 @@ static void ivas_spar_dec_parse_md_bs( hMdDec->spar_md.band_coeffs[i].C_re[ii][jj] = 0; } } +#endif + j = 0; +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + for ( ii = 0; ii < ndec; ii++ ) + { + for ( jj = 0; jj < ndm - 1; jj++ ) + { + quant[j] = hMdDec->spar_md.band_coeffs[i].C_re[ii][jj]; + j++; + } + } +#else for ( ii = 0; ii < ndec; ii++ ) { for ( jj = 0; jj < ndm - 1; jj++ ) @@ -1648,29 +1674,76 @@ static void ivas_spar_dec_parse_md_bs( j++; } } +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); +#else ivas_deindex_real_index( index, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ), 1 ); - +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + j = 0; + for ( ii = 0; ii < ndec; ii++ ) + { + for ( jj = 0; jj < ndm - 1; jj++ ) + { + hMdDec->spar_md.band_coeffs[i].C_re[ii][jj] = quant[j]; + j++; + } + } +#endif +#ifndef QUANTISE_REAL_FCN_CLEAN_UP index[0] = &decd_index_re[0]; quant[0] = &coeff_decd[0]; +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); +#else ivas_deindex_real_index( index, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, quant, 1, ndm + ndec - 1 ); - +#endif +#ifndef QUANTISE_REAL_FCN_CLEAN_UP index[0] = &decx_index_re[0]; quant[0] = &coeff_decx_re[0]; +#endif +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ivas_deindex_real_index( index, qs.P_c.q_levels[0], qs.P_c.min, qs.P_c.max, quant, 1, ndec * ( ndec - 1 ) >> 2 ); - +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + /* Store prior coefficient indices */ + for ( j = 0; j < ndm + ndec - 1; j++ ) + { + hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; + } +#else /* Store prior coefficient indices */ for ( j = 0; j < ndm + ndec - 1; j++ ) { hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = pred_index_re[j]; } +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) + { + hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; + } +#else for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) { hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = drct_index_re[j]; } +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + for ( j = 0; j < ndec; j++ ) + { + hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; + } +#else for ( j = 0; j < ndec; j++ ) { hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = decd_index_re[j]; } +#endif + +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( k = 0; k < ndec; k++ ) { hMdDec->spar_md.band_coeffs[i].P_re[k] = 0; @@ -1680,7 +1753,7 @@ static void ivas_spar_dec_parse_md_bs( /* Don't bother adding in the decx parameters */ hMdDec->spar_md.band_coeffs[i].P_re[j] = coeff_decd[j]; } - +#endif hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } } @@ -2324,35 +2397,58 @@ static void ivas_spar_unquant_dtx_indicies( { int16_t i, b; int16_t q_lvl; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP float **ppVal, *pVal, val; int16_t **ppIdx, *pIdx, idx; +#else + float val; + int16_t idx; +#endif float pr_min_max[2]; pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; - +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ppVal = (float **) &pVal; ppIdx = (int16_t **) &pIdx; ppVal[0] = (float *) &val; ppIdx[0] = (int16_t *) &idx; - +#endif for ( b = 0; b < nB; b++ ) { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) { q_lvl = dtx_pr_real_q_levels[ndm_per_band[bw * b] - 1][i]; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ppIdx[0][0] = pSpar_md->band_coeffs_idx[b].pred_index_re[i]; +#else + idx = pSpar_md->band_coeffs_idx[b].pred_index_re[i]; +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_deindex_real_index( &idx, q_lvl, pr_min_max[0], pr_min_max[1], &val, 1 ); + pSpar_md->band_coeffs[b].pred_re[i] = val; +#else ivas_deindex_real_index( ppIdx, q_lvl, pr_min_max[0], pr_min_max[1], ppVal, 1, 1 ); pSpar_md->band_coeffs[b].pred_re[i] = ppVal[0][0]; +#endif } for ( i = 0; i < FOA_CHANNELS - ndm_per_band[bw * b]; i++ ) { q_lvl = dtx_pd_real_q_levels[ndm_per_band[bw * b] - 1][i]; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ppIdx[0][0] = pSpar_md->band_coeffs_idx[b].decd_index_re[i]; +#else + idx = pSpar_md->band_coeffs_idx[b].decd_index_re[i]; +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_deindex_real_index( &idx, q_lvl, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &val, 1 ); + pSpar_md->band_coeffs[b].P_re[i] = val; +#else ivas_deindex_real_index( ppIdx, q_lvl, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppVal, 1, 1 ); pSpar_md->band_coeffs[b].P_re[i] = ppVal[0][0]; +#endif } } @@ -2375,19 +2471,25 @@ static void ivas_parse_parameter_bitstream_dtx( int16_t *num_dec_per_band ) { int16_t i, j; +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + float val; + int16_t idx; +#else float **ppVal, *pVal, val; int16_t **ppIdx, *pIdx, idx; +#endif float pr_min_max[2]; int16_t pr_q_lvls, pr, pd, pd_q_lvls, pr_pd_bits; int16_t pr_q_lvls1, pr_q_lvls2, pr_idx1, pr_idx2, pr_pr_bits; int16_t zero_pad_bits, sid_bits_len; sid_bits_len = st0->next_bit_pos; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ppVal = (float **) &pVal; ppIdx = (int16_t **) &pIdx; ppVal[0] = (float *) &val; ppIdx[0] = (int16_t *) &idx; - +#endif pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; @@ -2427,16 +2529,26 @@ static void ivas_parse_parameter_bitstream_dtx( pr = (int16_t) floor( value / pd_q_lvls ); pd = value - pr * pd_q_lvls; - +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + val = dtx_pd_real_min_max[0]; + ivas_quantise_real_values( &val, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &idx, &val, 1 ); +#else ppVal[0][0] = dtx_pd_real_min_max[0]; ivas_quantise_real_values( ppVal, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppVal, 1, 1 ); +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + pd = pd + idx; + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + pr = pr + idx; +#else pd = pd + ppIdx[0][0]; ppVal[0][0] = pr_min_max[0]; ivas_quantise_real_values( ppVal, pr_q_lvls, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - pr = pr + ppIdx[0][0]; +#endif if ( ( j + 1 ) <= ndec ) { @@ -2456,7 +2568,17 @@ static void ivas_parse_parameter_bitstream_dtx( pr_idx2 = (int16_t) floor( value / pr_q_lvls1 ); pr_idx1 = value - pr_idx2 * pr_q_lvls1; +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls1, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + pr_idx1 += idx; + + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls2, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + + pr_idx2 += idx; +#else ppVal[0][0] = pr_min_max[0]; ivas_quantise_real_values( ppVal, pr_q_lvls1, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); @@ -2466,7 +2588,7 @@ static void ivas_parse_parameter_bitstream_dtx( ivas_quantise_real_values( ppVal, pr_q_lvls2, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); pr_idx2 += ppIdx[0][0]; - +#endif pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_1 - 1] = pr_idx1; pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1] = pr_idx2; } @@ -2495,15 +2617,32 @@ static void ivas_parse_parameter_bitstream_dtx( *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_deindex_real_index( +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + const int16_t *index, +#else int16_t **index, +#endif const int16_t q_levels, const float min_value, const float max_value, +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + float *quant, +#else float **quant, +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + const int16_t dim +#else const int16_t num_ch, - const int16_t dim2 ) + const int16_t dim2 +#endif +) { +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + int16_t i; +#else int16_t i, j; +#endif float q_step; if ( q_levels == 0 ) @@ -2513,6 +2652,12 @@ static ivas_error ivas_deindex_real_index( if ( q_levels == 1 ) { +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + for ( i = 0; i < dim; i++ ) + { + quant[i] = 0; + } +#else for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < dim2; j++ ) @@ -2520,11 +2665,17 @@ static ivas_error ivas_deindex_real_index( quant[i][j] = 0; } } +#endif } else { q_step = ( max_value - min_value ) / ( q_levels - 1 ); - +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + for ( i = 0; i < dim; i++ ) + { + quant[i] = index[i] * q_step; + } +#else for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < dim2; j++ ) @@ -2532,6 +2683,7 @@ static ivas_error ivas_deindex_real_index( quant[i][j] = index[i][j] * q_step; } } +#endif } return IVAS_ERR_OK; diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index de0c37c925..78028deef2 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -85,11 +85,16 @@ static void ivas_store_prior_coeffs( ivas_spar_md_enc_state_t *hMdEnc, const int static void ivas_write_parameter_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *hMdEnc, const ENCODER_CONFIG_HANDLE hEncoderConfig, const int16_t sba_order ); - +#ifdef QUANTISE_REAL_FCN_CLEAN_UP +static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, const float *pValues, const int16_t ndm, int16_t *pIndex, const int16_t dim1, float *pQuant ); +#else static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, float **ppValues, const int16_t ndm, int16_t **ppIndex, const int16_t dim1, float **ppQuant ); - +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP +static void ivas_quant_p_per_band_dtx( float *pP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float *pP_out, const int16_t num_ch ); +#else static void ivas_quant_p_per_band_dtx( float **ppP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float **ppP_out, const int16_t num_ch ); - +#endif static void ivas_write_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, BSTR_ENC_HANDLE hMetaData, int16_t *num_dmx, int16_t *num_dec, const int16_t num_bands ); static void ivas_quant_p_per_band( ivas_band_coeffs_t *pband_coeffs, ivas_band_coeffs_ind_t *pBand_coeffs_idx, ivas_quant_strat_t *pQs, const int16_t num_ch ); @@ -721,39 +726,51 @@ ivas_error ivas_spar_md_enc_process( } else { +#ifndef QUANTISE_REAL_FCN_CLEAN_UP float **ppPred_re, **ppPred_quant, *pPred_re, *pPred_quant; int16_t **ppPred_idx, *pPred_re_idx; +#endif if ( ndm != num_ch ) { +#ifndef QUANTISE_REAL_FCN_CLEAN_UP float *P_re[IVAS_SPAR_MAX_CH - 1], *P_re_quant[IVAS_SPAR_MAX_CH - 1]; float **ppP_re = (float **) &P_re[0]; float **ppP_re_quant = (float **) &P_re_quant[0]; +#endif +#ifndef QUANTISE_REAL_FCN_CLEAN_UP int16_t *ppP_idx = &hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[0]; for ( i = 0; i < ndec; i++ ) { + ppP_re[i] = hMdEnc->spar_md.band_coeffs[b].P_re; ppP_re_quant[i] = hMdEnc->spar_md.band_coeffs[b].P_quant_re; } - +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_quant_p_per_band_dtx( hMdEnc->spar_md.band_coeffs[b].P_re, ndec, ndm, &hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[0], hMdEnc->spar_md.band_coeffs[b].P_quant_re, num_ch ); +#else ivas_quant_p_per_band_dtx( ppP_re, ndec, ndm, ppP_idx, ppP_re_quant, num_ch ); +#endif } - +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ppPred_idx = (int16_t **) &pPred_re_idx; ppPred_re = (float **) &pPred_re; ppPred_quant = (float **) &pPred_quant; - ppPred_re[0] = hMdEnc->spar_md.band_coeffs[b].pred_re; ppPred_idx[0] = hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re; ppPred_quant[0] = hMdEnc->spar_md.band_coeffs[b].pred_quant_re; - +#endif for ( i = 0; i < num_ch - 1; i++ ) { hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i] = 0; } - +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_spar_quant_pred_coeffs_dtx( &hMdEnc->spar_md, hMdEnc->spar_md.band_coeffs[b].pred_re, ndm, hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re, num_ch - 1, hMdEnc->spar_md.band_coeffs[b].pred_quant_re ); +#else ivas_spar_quant_pred_coeffs_dtx( &hMdEnc->spar_md, ppPred_re, ndm, ppPred_idx, num_ch - 1, ppPred_quant ); +#endif } } @@ -1525,27 +1542,44 @@ static void ivas_store_prior_coeffs( static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + const float *pValues, +#else float **ppValues, +#endif const int16_t ndm, +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + int16_t *pIndex, +#else int16_t **ppIndex, +#endif const int16_t dim1, - float **ppQuant ) +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + float *pQuant +#else + float **ppQuant +#endif +) { int16_t i; int16_t q_lvl; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP float *pVal, val, **ppVal; int16_t *pIdx, idx, **ppIdx; +#endif float pr_min_max[2]; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ppVal = (float **) &pVal; ppIdx = (int16_t **) &pIdx; ppVal[0] = (float *) &val; ppIdx[0] = (int16_t *) &idx; - +#endif pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim1; i++ ) { q_lvl = dtx_pr_real_q_levels[ndm - 1][i]; @@ -1555,7 +1589,13 @@ static void ivas_spar_quant_pred_coeffs_dtx( ppIndex[0][i] = ppIdx[0][0]; ppQuant[0][i] = ppVal[0][0]; } - +#else + for ( i = 0; i < dim1; i++ ) + { + q_lvl = dtx_pr_real_q_levels[ndm - 1][i]; + ivas_quantise_real_values( &pValues[i], q_lvl, pr_min_max[0], pr_min_max[1], &pIndex[i], &pQuant[i], 1 ); + } +#endif return; } @@ -1567,31 +1607,48 @@ static void ivas_spar_quant_pred_coeffs_dtx( *-----------------------------------------------------------------------------------------*/ static void ivas_quant_p_per_band_dtx( +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + float *pP_mat, +#else float **ppP_mat, +#endif const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + float *pP_out, +#else float **ppP_out, +#endif const int16_t num_ch ) { int16_t i; +#ifndef QUANTISE_REAL_FCN_CLEAN_UP float **ppPd, *pPd, pd; int16_t **ppIdx, *pIdx, idx; +#endif int16_t dim = num_ch - num_dmx; - +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ppPd = (float **) &pPd; ppIdx = (int16_t **) &pIdx; ppPd[0] = (float *) &pd; ppIdx[0] = (int16_t *) &idx; - +#endif if ( num_dec == num_ch - 1 ) { for ( i = 0; i < dim; i++ ) { +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + if ( pP_mat[i] < pr_boost_range[1] && pP_mat[i] > pr_boost_range[0] ) + { + pP_mat[i] = pr_boost_range[1]; + } +#else if ( ppP_mat[i][i] < pr_boost_range[1] && ppP_mat[i][i] > pr_boost_range[0] ) { ppP_mat[i][i] = pr_boost_range[1]; } +#endif } } @@ -1599,21 +1656,23 @@ static void ivas_quant_p_per_band_dtx( { assert( !"Not Supported!" ); } - +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim; i++ ) { ppPd[0][0] = ppP_mat[i][i]; - ivas_quantise_real_values( ppPd, dtx_pd_real_q_levels[num_ch - num_dec - 1][i], dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppPd, 1, 1 ); - ppP_out[i][i] = ppPd[0][0]; ppIdx_pd[i] = ppIdx[0][0]; } - +#else + for ( i = 0; i < dim; i++ ) + { + ivas_quantise_real_values( &pP_mat[i], dtx_pd_real_q_levels[num_ch - num_dec - 1][i], dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &ppIdx_pd[i], &pP_out[i], 1 ); + } +#endif return; } - /*-----------------------------------------------------------------------------------------* * Function ivas_write_parameter_bitstream_dtx() * @@ -1628,18 +1687,23 @@ static void ivas_write_parameter_bitstream_dtx( const int16_t num_bands ) { int16_t i, j; +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + float val; + int16_t idx; +#else float **ppVal, *pVal, val; int16_t **ppIdx, *pIdx, idx; +#endif float pr_min_max[2]; int16_t zero_pad_bits, sid_bits_len; sid_bits_len = hMetaData->nb_bits_tot; - +#ifndef QUANTISE_REAL_FCN_CLEAN_UP ppVal = (float **) &pVal; ppIdx = (int16_t **) &pIdx; ppVal[0] = (float *) &val; ppIdx[0] = (int16_t *) &idx; - +#endif pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; @@ -1677,7 +1741,17 @@ static void ivas_write_parameter_bitstream_dtx( pd_q_lvls = dtx_pd_real_q_levels[ndm - 1][pd_idx_2 - 1]; pd = pSpar_md->band_coeffs_idx[i].decd_index_re[pd_idx_2 - 1]; } +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + val = dtx_pd_real_min_max[0]; + ivas_quantise_real_values( &val, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &idx, &val, 1 ); + + pd -= idx; + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + + pr -= idx; +#else ppVal[0][0] = dtx_pd_real_min_max[0]; ivas_quantise_real_values( ppVal, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppVal, 1, 1 ); @@ -1687,7 +1761,7 @@ static void ivas_write_parameter_bitstream_dtx( ivas_quantise_real_values( ppVal, pr_q_lvls, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); pr -= ppIdx[0][0]; - +#endif pr_pd_bits = ivas_get_bits_to_encode( pd_q_lvls * pr_q_lvls ); value = (uint16_t) ( pr * pd_q_lvls + pd ); @@ -1700,7 +1774,21 @@ static void ivas_write_parameter_bitstream_dtx( int16_t pr_idx1, pr_idx2, pr_pr_bits; pr_q_lvls1 = dtx_pr_real_q_levels[ndm - 1][pr_idx_1 - 1]; pr_q_lvls2 = dtx_pr_real_q_levels[ndm - 1][pr_idx_2 - 1]; +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls1, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + + pr_idx1 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_1 - 1]; + + pr_idx1 -= idx; + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls2, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + + pr_idx2 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1]; + + pr_idx2 -= idx; +#else ppVal[0][0] = pr_min_max[0]; ivas_quantise_real_values( ppVal, pr_q_lvls1, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); @@ -1714,7 +1802,7 @@ static void ivas_write_parameter_bitstream_dtx( pr_idx2 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1]; pr_idx2 -= ppIdx[0][0]; - +#endif value = (uint16_t) ( pr_idx2 * pr_q_lvls1 + pr_idx1 ); pr_pr_bits = ivas_get_bits_to_encode( pr_q_lvls1 * pr_q_lvls2 ); @@ -1751,6 +1839,7 @@ static void ivas_quant_pred_coeffs_per_band( ivas_quant_strat_t *pQs, const int16_t num_ch ) { +#ifndef QUANTISE_REAL_FCN_CLEAN_UP float *pQuant_re, *pCoeff_re; int16_t *pIdx_re; float **ppPred_coeffs_re = (float **) &pCoeff_re; @@ -1760,9 +1849,12 @@ static void ivas_quant_pred_coeffs_per_band( ppPred_idx_re[0] = &pBand_coeffs_idx->pred_index_re[0]; ppPred_coeffs_re[0] = &pband_coeffs->pred_re[0]; ppPred_quant_re[0] = &pband_coeffs->pred_quant_re[0]; - +#endif +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_quantise_real_values( pband_coeffs->pred_re, pQs->PR.q_levels[0], pQs->PR.min, pQs->PR.max, pBand_coeffs_idx->pred_index_re, pband_coeffs->pred_quant_re, ( num_ch - 1 ) ); +#else ivas_quantise_real_values( ppPred_coeffs_re, pQs->PR.q_levels[0], pQs->PR.min, pQs->PR.max, ppPred_idx_re, ppPred_quant_re, 1, ( num_ch - 1 ) ); - +#endif return; } @@ -1783,6 +1875,18 @@ static void ivas_quant_c_per_band( int16_t i; int16_t j, k; float C_re[IVAS_SPAR_MAX_C_COEFF]; +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + + k = 0; + for ( i = 0; i < ndec; i++ ) + { + for ( j = 0; j < ndm - 1; j++ ) + { + C_re[k] = pband_coeffs->C_re[i][j]; + k++; + } + } +#else float *pC_re[IVAS_SPAR_MAX_C_COEFF]; int16_t *pIdx_re[IVAS_SPAR_MAX_C_COEFF]; float **ppC_re = (float **) &pC_re[0]; @@ -1803,7 +1907,7 @@ static void ivas_quant_c_per_band( k++; } } - +#endif #ifdef SPAR_HOA_DBG /*for (i = 0; i < ndec; i++) { @@ -1813,9 +1917,11 @@ static void ivas_quant_c_per_band( } }*/ #endif - +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_quantise_real_values( C_re, pQs->C.q_levels[0], pQs->C.min, pQs->C.max, pBand_coeffs_idx->drct_index_re, C_re, ndec * ( ndm - 1 ) ); +#else ivas_quantise_real_values( ppC_re, pQs->C.q_levels[0], pQs->C.min, pQs->C.max, ppIdx_re, ppC_re, ndec * ( ndm - 1 ), 1 ); - +#endif k = 0; for ( i = 0; i < ndec; i++ ) { @@ -1854,6 +1960,7 @@ static void ivas_quant_p_per_band( ivas_quant_strat_t *pQs, const int16_t num_ch ) { +#ifndef QUANTISE_REAL_FCN_CLEAN_UP float P_re_diag[IVAS_SPAR_MAX_CH - 1]; int16_t i; int16_t dim = num_ch - 1; @@ -1861,18 +1968,20 @@ static void ivas_quant_p_per_band( int16_t *pDecd_idx[IVAS_SPAR_MAX_CH - 1]; float **ppP_diag = (float **) &pP_diag[0]; int16_t **ppDecd_idx = (int16_t **) &pDecd_idx[0]; - +#endif +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim; i++ ) { ppP_diag[i] = &P_re_diag[i]; ppDecd_idx[i] = &pBand_coeffs_idx->decd_index_re[i]; } - +#endif +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim; i++ ) { P_re_diag[i] = pband_coeffs->P_re[i]; } - +#endif #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n P_d:\n"); for (i = 0; i < dim; i++) @@ -1881,13 +1990,16 @@ static void ivas_quant_p_per_band( } fprintf(stderr, "\n\n");*/ #endif - +#ifdef QUANTISE_REAL_FCN_CLEAN_UP + ivas_quantise_real_values( pband_coeffs->P_re, pQs->P_r.q_levels[0], pQs->P_r.min, pQs->P_r.max, pBand_coeffs_idx->decd_index_re, pband_coeffs->P_quant_re, num_ch - 1 ); +#else ivas_quantise_real_values( ppP_diag, pQs->P_r.q_levels[0], pQs->P_r.min, pQs->P_r.max, ppDecd_idx, ppP_diag, num_ch - 1, 1 ); - +#endif +#ifndef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim; i++ ) { pband_coeffs->P_quant_re[i] = P_re_diag[i]; } - +#endif return; } -- GitLab From 7e124cb4e55d614ed3891f95c58ba65755c4f3fb Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Tue, 20 Sep 2022 14:05:37 +0200 Subject: [PATCH 095/479] Fix for EVS mono BE --- lib_com/options.h | 1 - lib_enc/swb_pre_proc.c | 103 +++++++++++++++++++++++------------------ 2 files changed, 58 insertions(+), 46 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 7e5be74f65..12464ed19e 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -148,7 +148,6 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ -#define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ #define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ diff --git a/lib_enc/swb_pre_proc.c b/lib_enc/swb_pre_proc.c index e4779d0920..3f2a47d2a5 100644 --- a/lib_enc/swb_pre_proc.c +++ b/lib_enc/swb_pre_proc.c @@ -681,8 +681,11 @@ void swb_pre_proc( } else { -#ifndef FIX_I102_SWB_TBE_SWITCH +#ifdef FIX_I102_SWB_TBE_SWITCH + if ( ( st->bwidth == FB || st->core == ACELP_CORE ) && ( st->element_mode == EVS_MONO ) ) +#else if ( st->bwidth == FB || st->core == ACELP_CORE || ( st->element_mode == IVAS_CPE_DFT && input_Fs == 48000 ) ) +#endif { set_f( hBWE_TD->old_speech_shb, 0, L_LOOK_16k + L_SUBFR16k ); set_f( shb_speech, 0, L_FRAME16k ); /* shb_speech for FB/SWB BWE_HIGHRATE is not used at 64kbps */ @@ -702,32 +705,44 @@ void swb_pre_proc( } else { -#else - if ( st->L_frame == L_FRAME ) - { - L_resamp = 560; /* 6.4 kHz core -> 6 - 14 kHz band target -> 560 samples in 28 kHz sample rate */ - } - else - { - L_resamp = 620; /* 8 kHz core -> 7.5 - 15.5 kHz band target -> 620 samples in 31 kHz sample rate */ - } +#ifdef FIX_I102_SWB_TBE_SWITCH + if ( st->element_mode == IVAS_CPE_DFT ) + { + if ( st->L_frame == L_FRAME ) + { + L_resamp = 560; /* 6.4 kHz core -> 6 - 14 kHz band target -> 560 samples in 28 kHz sample rate */ + } + else + { + L_resamp = 620; /* 8 kHz core -> 7.5 - 15.5 kHz band target -> 620 samples in 31 kHz sample rate */ + } - /* Dirty downsampling to match Nyquist to upper frequency limit of target */ - lerp( st->input, new_swb_speech, L_resamp, (int16_t) ( input_Fs / 50 ) ); + /* Dirty downsampling to match Nyquist to upper frequency limit of target */ + lerp( st->input, new_swb_speech, L_resamp, (int16_t) ( input_Fs / 50 ) ); - /* flip the spectrum */ - mvr2r( new_swb_speech, spchTmp, L_resamp ); - for ( i = 0; i < L_resamp; i = i + 2 ) - { - spchTmp[i] = -spchTmp[i]; - } - - /* Dirty upsampling to match Nyquist to lower frequency limit of target (reversed spectrum)*/ - lerp( spchTmp, spchTmp2, L_FRAME32k, L_resamp ); - mvr2r( spchTmp2, spchTmp, L_FRAME32k ); -#endif -#ifndef FIX_I102_SWB_TBE_SWITCH - /* flip the spectrm */ + /* flip the spectrum */ + mvr2r( new_swb_speech, spchTmp, L_resamp ); + for ( i = 0; i < L_resamp; i = i + 2 ) + { + spchTmp[i] = -spchTmp[i]; + } + + /* Dirty upsampling to match Nyquist to lower frequency limit of target (reversed spectrum)*/ + lerp( spchTmp, spchTmp2, L_FRAME32k, L_resamp ); + mvr2r( spchTmp2, spchTmp, L_FRAME32k ); + } + else + { + /* flip the spectrum */ + mvr2r( new_swb_speech, spchTmp, L_FRAME32k ); + + for ( i = 0; i < L_FRAME32k; i = i + 2 ) + { + spchTmp[i] = -spchTmp[i]; + } + } +#else + /* flip the spectrm */ mvr2r( new_swb_speech, spchTmp, L_FRAME32k ); for ( i = 0; i < L_FRAME32k; i = i + 2 ) @@ -735,34 +750,32 @@ void swb_pre_proc( spchTmp[i] = -spchTmp[i]; } #endif - Decimate_allpass_steep( spchTmp, hBWE_TD->state_ana_filt_shb, L_FRAME32k, shb_speech ); + Decimate_allpass_steep( spchTmp, hBWE_TD->state_ana_filt_shb, L_FRAME32k, shb_speech ); - mvr2r( shb_speech + L_FRAME16k - ( L_LOOK_16k + L_SUBFR16k ), hBWE_TD->old_speech_shb, L_LOOK_16k + L_SUBFR16k ); + mvr2r( shb_speech + L_FRAME16k - ( L_LOOK_16k + L_SUBFR16k ), hBWE_TD->old_speech_shb, L_LOOK_16k + L_SUBFR16k ); - /*Compute the past overlap for potential next iDFTs SHB*/ - if ( st->element_mode == IVAS_CPE_DFT ) - { - for ( i = 0; i < STEREO_DFT_OVL_16k; i++ ) + /*Compute the past overlap for potential next iDFTs SHB*/ + if ( st->element_mode == IVAS_CPE_DFT ) { - hCPE->hStereoDft->output_mem_dmx_16k_shb[i] = shb_speech[20 + i] * hCPE->hStereoDft->win_ana_16k[STEREO_DFT_OVL_16k - 1 - i] * hCPE->hStereoDft->win_ana_16k[STEREO_DFT_OVL_16k - 1 - i]; + for ( i = 0; i < STEREO_DFT_OVL_16k; i++ ) + { + hCPE->hStereoDft->output_mem_dmx_16k_shb[i] = shb_speech[20 + i] * hCPE->hStereoDft->win_ana_16k[STEREO_DFT_OVL_16k - 1 - i] * hCPE->hStereoDft->win_ana_16k[STEREO_DFT_OVL_16k - 1 - i]; + } } } -#ifndef FIX_I102_SWB_TBE_SWITCH - } -#endif - if ( st->element_mode != IVAS_CPE_DFT ) - { - /* Reset CLDFB synthesis buffer */ - set_f( st->cldfbSynTd->cldfb_state, 0.0f, st->cldfbSynTd->p_filter_length ); - } + if ( st->element_mode != IVAS_CPE_DFT ) + { + /* Reset CLDFB synthesis buffer */ + set_f( st->cldfbSynTd->cldfb_state, 0.0f, st->cldfbSynTd->p_filter_length ); + } #ifdef FIX_I102_SWB_TBE_SWITCH - else - { - hCPE->hStereoDft->flip_sign = -hCPE->hStereoDft->flip_sign; /* Make sure sign is updated even if DFT SHB target is not generated */ - } + else + { + hCPE->hStereoDft->flip_sign = -hCPE->hStereoDft->flip_sign; /* Make sure sign is updated even if DFT SHB target is not generated */ + } #endif -} + } /* Memory reset to compensate for 0.9375 ms offset when transitioning from IO to SWB */ /* When switching from n >1 to n = 1, we keep the enc/dec delay as 8.75/3.25 and below code not needed; -- GitLab From cd40c09376ce20648ef17556608807700becfca9 Mon Sep 17 00:00:00 2001 From: Eleni Fotopoulou Date: Tue, 20 Sep 2022 16:26:00 +0200 Subject: [PATCH 096/479] [fix] for issue 13 under FIX_I13_TCX_TNS_ISSUE --- lib_com/ivas_prot.h | 4 ++++ lib_com/options.h | 1 - lib_com/prot.h | 4 ++++ lib_dec/dec_LPD.c | 14 ++++++++++++-- lib_dec/dec_tcx.c | 27 ++++++++++++++++++++++++--- lib_dec/ivas_mdct_core_dec.c | 14 ++++++++++++-- lib_dec/ivas_tcx_core_dec.c | 14 ++++++++++++-- 7 files changed, 68 insertions(+), 10 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index c4e93a9545..54c67e6987 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2005,6 +2005,10 @@ void decoder_tcx_tns( const int16_t bfi, /* i : Bad frame indicator */ const int16_t frame_cnt, /* i : frame counter in the super frame */ const int16_t whitenedDomain +#ifdef FIX_I13_TCX_TNS_ISSUE + , + const int16_t isEvsMono /*i: EVS mono flag */ +#endif ); void decoder_tcx_imdct( diff --git a/lib_com/options.h b/lib_com/options.h index 71d797cc7a..1efcb3fa0b 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,6 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ - #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ diff --git a/lib_com/prot.h b/lib_com/prot.h index 4c91c8cd52..a6fabef068 100644 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -7885,6 +7885,10 @@ void decoder_tcx( const int16_t bfi, /* i : Bad frame indicator */ const int16_t frame_cnt, /* i : frame counter in the super_frame */ const int16_t sba_dirac_stereo_flag /* i : signal stereo output for SBA DirAC */ +#ifdef FIX_I13_TCX_TNS_ISSUE + , + const int16_t isEvsMono /*i: EVS mono flag */ +#endif ); void decoder_tcx_post( diff --git a/lib_dec/dec_LPD.c b/lib_dec/dec_LPD.c index 422104ac43..fb7ffdc263 100644 --- a/lib_dec/dec_LPD.c +++ b/lib_dec/dec_LPD.c @@ -595,7 +595,12 @@ void decoder_LPD( } /* TCX decoder */ - decoder_tcx( st, prm, Aq, Aind, &synth[0], &synthFB[0], bfi, 0, 0 ); + decoder_tcx( st, prm, Aq, Aind, &synth[0], &synthFB[0], bfi, 0, 0 +#ifdef FIX_I13_TCX_TNS_ISSUE + , + 1 +#endif + ); } /*--------------------------------------------------------------------------------* @@ -621,7 +626,12 @@ void decoder_LPD( IGFDecRestoreTCX10SubFrameData( st->hIGFDec, k ); /* TCX decoder */ - decoder_tcx( st, prm, Aq, Aind, &synth[k * L_frame / 2], &synthFB[k * L_frameTCX / 2], bfi, k, 0 ); + decoder_tcx( st, prm, Aq, Aind, &synth[k * L_frame / 2], &synthFB[k * L_frameTCX / 2], bfi, k, 0 +#ifdef FIX_I13_TCX_TNS_ISSUE + , + 1 +#endif + ); } } diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index fe29fc068f..004c226f08 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -68,6 +68,10 @@ void decoder_tcx( const int16_t bfi, /* i : Bad frame indicator */ const int16_t frame_cnt, /* i : frame counter in the super frame */ const int16_t sba_dirac_stereo_flag /* i : signal stereo output for SBA DirAC */ +#ifdef FIX_I13_TCX_TNS_ISSUE + , + const int16_t isEvsMono /*i: EVS mono flag */ +#endif ) { float x[N_MAX]; @@ -112,7 +116,12 @@ void decoder_tcx( decoder_tcx_noiseshaping_igf( st, L_spec, L_frame, L_frameTCX, left_rect, &x[0], &gainlpc2[0], &tmp_concealment_method, bfi ); - decoder_tcx_tns( st, L_frame_glob, L_spec, L_frame, L_frameTCX, &x[0], fUseTns, &tnsData, bfi, frame_cnt, 0 ); + decoder_tcx_tns( st, L_frame_glob, L_spec, L_frame, L_frameTCX, &x[0], fUseTns, &tnsData, bfi, frame_cnt, 0 +#ifdef FIX_I13_TCX_TNS_ISSUE + , + isEvsMono +#endif + ); decoder_tcx_imdct( st, L_frame_glob, L_frameTCX_glob, L_spec, tcx_offset, tcx_offsetFB, L_frame, L_frameTCX, left_rect, &x[0], &xn_buf[0], MDCT_IV, fUseTns, &synth[0], &synthFB[0], bfi, frame_cnt, 0, sba_dirac_stereo_flag ); @@ -1486,7 +1495,12 @@ void decoder_tcx_tns( STnsData *tnsData, const int16_t bfi, /* i : Bad frame indicator */ const int16_t frame_cnt, /* i : frame counter in the super frame */ - const int16_t whitenedDomain ) + const int16_t whitenedDomain +#ifdef FIX_I13_TCX_TNS_ISSUE + , + const int16_t isEvsMono /*i: EVS mono flag */ +#endif +) { int16_t index, isTCX5, L; TCX_CONFIG_HANDLE hTcxCfg = st->hTcxCfg; @@ -1549,7 +1563,14 @@ void decoder_tcx_tns( #ifndef FIX_I13_TCX_TNS_ISSUE tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); #else - tcx5TnsUngrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); + if ( isEvsMono ) /*TODO: this is temporary to maintain EVS BE, this is a bug and should be fixed also for EVS (see issue 13) */ + { + tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); + } + else + { + tcx5TnsUngrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); + } #endif } } diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index ed5114c651..d0c4c8abfc 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -1130,13 +1130,23 @@ void ivas_mdct_core_tns_ns( } decoder_tcx_tns( st, L_frame_global[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], &x[ch][k][0], - fUseTns[ch][k], &tnsData[ch][k], bfi, k, 1 ); + fUseTns[ch][k], &tnsData[ch][k], bfi, k, 1 +#ifdef FIX_I13_TCX_TNS_ISSUE + , + 0 +#endif + ); sns_shape_spectrum( x[ch][k], st->hTcxCfg->psychParamsCurrent, &sns_int_scf[0], st->hTcxCfg->psychParamsCurrent->nBins ); v_multc( x[ch][k] + st->hTcxCfg->psychParamsCurrent->nBins, sns_int_scf[FDNS_NPTS - 1], x[ch][k] + st->hTcxCfg->psychParamsCurrent->nBins, L_spec[ch] - st->hTcxCfg->psychParamsCurrent->nBins ); decoder_tcx_tns( st, L_frame_global[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], &x[ch][k][0], - fUseTns[ch][k], &tnsData[ch][k], bfi, k, 0 ); + fUseTns[ch][k], &tnsData[ch][k], bfi, k, 0 +#ifdef FIX_I13_TCX_TNS_ISSUE + , + 0 +#endif + ); } if ( bfi && st->tonal_mdct_plc_active ) diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index e3462f21bc..6481009011 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -528,7 +528,12 @@ void stereo_tcx_core_dec( } /* TCX decoder */ - decoder_tcx( st, prm, Aq, Aind, &synth[0], &synthFB[0], bfi, 0, sba_dirac_stereo_flag ); + decoder_tcx( st, prm, Aq, Aind, &synth[0], &synthFB[0], bfi, 0, sba_dirac_stereo_flag +#ifdef FIX_I13_TCX_TNS_ISSUE + , + 0 +#endif + ); } /*--------------------------------------------------------------------------------* @@ -556,7 +561,12 @@ void stereo_tcx_core_dec( } /* TCX decoder */ - decoder_tcx( st, prm, Aq, Aind, &synth[k * st->L_frame / 2], &synthFB[k * hTcxDec->L_frameTCX / 2], bfi, k, sba_dirac_stereo_flag ); + decoder_tcx( st, prm, Aq, Aind, &synth[k * st->L_frame / 2], &synthFB[k * hTcxDec->L_frameTCX / 2], bfi, k, sba_dirac_stereo_flag +#ifdef FIX_I13_TCX_TNS_ISSUE + , + 0 +#endif + ); } } -- GitLab From 2f19f341e7977b632313a9933b2240d6e10eb4ad Mon Sep 17 00:00:00 2001 From: Eleni Fotopoulou Date: Wed, 21 Sep 2022 09:46:39 +0200 Subject: [PATCH 097/479] rephrase comment in fix --- lib_dec/dec_tcx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 004c226f08..3891ba0212 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1563,7 +1563,7 @@ void decoder_tcx_tns( #ifndef FIX_I13_TCX_TNS_ISSUE tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); #else - if ( isEvsMono ) /*TODO: this is temporary to maintain EVS BE, this is a bug and should be fixed also for EVS (see issue 13) */ + if ( isEvsMono ) /*tbc: this is temporary to maintain EVS BE, this is a bug and should be fixed also for EVS (see issue 13) */ { tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); } -- GitLab From 96598c476f92a408311dad4b77f5e62660c8a644 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 21 Sep 2022 10:54:42 +0200 Subject: [PATCH 098/479] 5 ms update rate for headrotation under define FIX_I106_TDREND_5MS --- lib_com/ivas_cnst.h | 3 + lib_com/ivas_prot.h | 13 ++ lib_com/options.h | 2 +- lib_dec/ivas_objectRenderer.c | 208 ++++++++++++++++++++++++++- lib_dec/ivas_objectRenderer_hrFilt.c | 33 +++++ lib_dec/ivas_objectRenderer_sfx.c | 28 +++- 6 files changed, 275 insertions(+), 12 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 29416d2c50..dbb04643bd 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -823,6 +823,9 @@ typedef enum { *----------------------------------------------------------------------------------*/ // VE: this should be renamed to e.g. N_SPATIAL_SUBFRAMES #define MAX_PARAM_SPATIAL_SUBFRAMES 4 /* Maximum number of subframes for parameteric spatial coding */ +#ifdef FIX_I106_TDREND_5MS +#define L_SPATIAL_SUBFR_48k (L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES) +#endif /*----------------------------------------------------------------------------------* diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index c4e93a9545..13012128ae 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4936,12 +4936,21 @@ void TDREND_HRFILT_SetFiltSet( #endif ivas_error TDREND_REND_RenderSourceHRFilt( +#ifdef FIX_I106_TDREND_5MS + TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ +#else const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ +#endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif +#ifdef FIX_I106_TDREND_5MS + float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ + const int16_t subframe_length, /* i : Subframe length in use */ +#else float output_buf[][L_FRAME48k], /* o : Output buffer */ const int16_t output_frame, /* i : Output frame length in use */ +#endif const int32_t output_Fs /* i : Output sample rate */ ); @@ -5081,7 +5090,11 @@ void TDREND_SFX_SpatBin_SetParams( void TDREND_SFX_SpatBin_Execute_Main( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters handle */ const float *InBuffer_p, /* i : Input buffer */ +#ifdef FIX_I106_TDREND_5MS + const int16_t subframe_length, /* i : subframe length */ +#else const int16_t output_frame, /* i : frame length */ +#endif float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ diff --git a/lib_com/options.h b/lib_com/options.h index 54d2700014..93c29607ad 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,7 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ - +#define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_objectRenderer.c b/lib_dec/ivas_objectRenderer.c index fe33031ad6..f4b024b38a 100644 --- a/lib_dec/ivas_objectRenderer.c +++ b/lib_dec/ivas_objectRenderer.c @@ -46,9 +46,16 @@ * Local function prototypes *---------------------------------------------------------------------*/ +#ifdef FIX_I106_TDREND_5MS +static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t subframe_length, const int32_t output_Fs, const int16_t subframe_idx ); +#else static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t output_frame, const int32_t output_Fs ); +#endif static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); - +#ifdef FIX_I106_TDREND_5MS +static void TDREND_Update_listener_orientation( Decoder_Struct *st_ivas, const int16_t subframe_idx ); +static void TDREND_Update_object_positions( Decoder_Struct *st_ivas, float output[][L_FRAME48k] ); +#endif /*---------------------------------------------------------------------* * ivas_td_binaural_open() @@ -220,6 +227,7 @@ void ObjRenderIVASFrame( const int16_t output_frame /* i : output frame length */ ) { +#ifndef FIX_I106_TDREND_5MS TDREND_DirAtten_t *DirAtten_p; int16_t nS; float Pos[3]; @@ -228,9 +236,15 @@ void ObjRenderIVASFrame( float UpVec[3]; float Rmat[3][3]; int16_t c_indx; +#else + int16_t subframe_length; +#endif int16_t subframe_idx; float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; +#ifdef FIX_I106_TDREND_5MS + subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; +#else DirAtten_p = st_ivas->hBinRendererTd->DirAtten_p; /* Update the listener's location/orientation */ @@ -302,8 +316,16 @@ void ObjRenderIVASFrame( TDREND_MIX_SRC_SetPlayState( st_ivas->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); } } +#endif if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { + +#ifdef FIX_I106_TDREND_5MS + if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on && ( st_ivas->ini_frame == 0 ) ) + { + ivas_reverb_open( &st_ivas->hCrend->hReverb, st_ivas->transport_config, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); + } +#else if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) { if ( st_ivas->ini_frame == 0 ) @@ -315,10 +337,31 @@ void ObjRenderIVASFrame( ivas_reverb_process( st_ivas->hCrend->hReverb, st_ivas->transport_config, 0, output, reverb_signal, subframe_idx ); } } +#endif } +#ifdef FIX_I106_TDREND_5MS + /* Update object position(s) */ + TDREND_Update_object_positions( st_ivas, output ); + + for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) + { + /* Update the listener's location/orientation */ + TDREND_Update_listener_orientation( st_ivas, subframe_idx ); + + if ( ( st_ivas->hRenderConfig != NULL ) && ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) + { + ivas_reverb_process( st_ivas->hCrend->hReverb, st_ivas->transport_config, 0, output, reverb_signal, subframe_idx ); + } + + /* Render subframe */ + TDREND_GetMix( st_ivas->hBinRendererTd, output, subframe_length, st_ivas->hDecoderConfig->output_Fs, subframe_idx ); + } +#else /* Call the renderer */ TDREND_GetMix( st_ivas->hBinRendererTd, output, output_frame, st_ivas->hDecoderConfig->output_Fs ); +#endif + if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) @@ -333,17 +376,30 @@ void ObjRenderIVASFrame( } +#ifdef FIX_I106_TDREND_5MS +/*---------------------------------------------------------------------* + * TDREND_GetMix() + * + * Render one 5 ms subframe from the mixer + *---------------------------------------------------------------------*/ +#else /*---------------------------------------------------------------------* * TDREND_GetMix() * * Render one output frame from the mixer *---------------------------------------------------------------------*/ - +#endif static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ float output[][L_FRAME48k], /* i/o: ISm object synth / rendered output in 0,1 */ - const int16_t output_frame, /* i/o: Output frame length */ - const int32_t output_Fs /* i : Output sampling rate */ +#ifdef FIX_I106_TDREND_5MS + const int16_t subframe_length, /* i/o: subframe length */ + const int32_t output_Fs, /* i : Output sampling rate */ + const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ +#else + const int16_t output_frame, /* i/o: Output frame length */ + const int32_t output_Fs /* i : Output sampling rate */ +#endif ) { int16_t i; @@ -351,13 +407,22 @@ static ivas_error TDREND_GetMix( TDREND_SRC_SPATIAL_t *SrcSpatial_p; TDREND_SRC_REND_t *SrcRend_p; ivas_error error; +#ifdef FIX_I106_TDREND_5MS + float output_buf[2][L_SPATIAL_SUBFR_48k]; /* Temp buffer for left/right rendered signal */ +#else float output_buf[2][L_FRAME48k]; /* Temp buffer for left/right rendered signal */ - +#endif error = IVAS_ERR_OK; +#ifdef FIX_I106_TDREND_5MS + /* Clear the output buffer to accumulate rendered sources */ + set_f( output_buf[0], 0.0f, subframe_length ); + set_f( output_buf[1], 0.0f, subframe_length ); +#else /* Zero out the output buffer since objects are accumulated. */ set_f( output_buf[0], 0.0f, output_frame ); set_f( output_buf[1], 0.0f, output_frame ); +#endif /* Create the mix */ /* Loop through the source list and render each source */ @@ -376,20 +441,39 @@ static ivas_error TDREND_GetMix( /* Render source if needed */ if ( ( SrcRend_p->InputAvailable == TRUE ) && ( SrcRend_p->PlayStatus == TDREND_PLAYSTATUS_PLAYING ) ) { +#ifdef FIX_I106_TDREND_5MS +#ifdef TDREND_HRTF_TABLE_METHODS + error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, subframe_length, output_Fs ); +#else + error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, subframe_length, output_Fs ); +#endif +#else #ifdef TDREND_HRTF_TABLE_METHODS error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, output_frame, output_Fs ); #else error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, output_frame, output_Fs ); +#endif #endif } +#ifndef FIX_I106_TDREND_5MS SrcRend_p->InputAvailable = FALSE; +#endif } /* Populate output variable */ +#ifdef FIX_I106_TDREND_5MS + mvr2r( output_buf[0], output[0] + subframe_idx * subframe_length, subframe_length ); /* Left */ + mvr2r( output_buf[1], output[1] + subframe_idx * subframe_length, subframe_length ); /* Right */ +#else mvr2r( output_buf[0], output[0], output_frame ); /* Left */ mvr2r( output_buf[1], output[1], output_frame ); /* Right */ +#endif +#ifdef FIX_I106_TDREND_5MS + /* Clear the PoseUpdated and Source position update flags */ +#else /* Clear the mixer update flags */ +#endif TDREND_Clear_Update_flags( hBinRendererTd ); return error; @@ -417,3 +501,117 @@ static void TDREND_Clear_Update_flags( return; } + +#ifdef FIX_I106_TDREND_5MS +/*---------------------------------------------------------------------* + * TDREND_Update_object_positions() + * + * Update object position(s) + *---------------------------------------------------------------------*/ + +static void TDREND_Update_object_positions( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + float output[][L_FRAME48k] /* i/o: SCE/MC channels */ +) +{ + TDREND_DirAtten_t *DirAtten_p; + int16_t nS; + float Pos[3]; + float Dir[3]; + int16_t c_indx; + + DirAtten_p = st_ivas->hBinRendererTd->DirAtten_p; + + /* For each source, write the frame data to the source object*/ + c_indx = 0; + for ( nS = 0; nS < st_ivas->nchan_transport; nS++ ) + { + if ( !( st_ivas->ivas_format == MC_FORMAT && nS == LFE_CHANNEL ) ) /* Skip LFE for MC */ + { + st_ivas->hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; + st_ivas->hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; + c_indx++; + } + + if ( st_ivas->ivas_format == ISM_FORMAT ) + { + + /* Update the source positions */ + /* Source position and direction */ + Pos[0] = cosf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ) * cosf( st_ivas->hIsmMetaData[nS]->azimuth * PI_OVER_180 ); + Pos[1] = cosf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ) * sinf( st_ivas->hIsmMetaData[nS]->azimuth * PI_OVER_180 ); + Pos[2] = sinf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ); + Dir[0] = 1.0f; + Dir[1] = 0.0f; + Dir[2] = 0.0f; + + /* Source directivity info */ + DirAtten_p->ConeInnerAngle = 360.0f; + DirAtten_p->ConeOuterAngle = 360.0f; + DirAtten_p->ConeOuterGain = 1.0f; + + TDREND_MIX_SRC_SetPos( st_ivas->hBinRendererTd, nS, Pos ); + TDREND_MIX_SRC_SetDirAtten( st_ivas->hBinRendererTd, nS, DirAtten_p ); + TDREND_MIX_SRC_SetPlayState( st_ivas->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); + + TDREND_MIX_SRC_SetDir( st_ivas->hBinRendererTd, nS, Dir ); + } + } + + return; +} + +/*---------------------------------------------------------------------* + * TDREND_Update_listener_orientation() + * + * Update listener orientation (s) + *---------------------------------------------------------------------*/ + +static void TDREND_Update_listener_orientation( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t subframe_idx /* i: subframe index*/ +) +{ + float Pos[3]; + float FrontVec[3]; + float UpVec[3]; + float Rmat[3][3]; + + /* Update the listener's location/orientation */ + /* Listener at the origin */ + Pos[0] = 0.0f; + Pos[1] = 0.0f; + Pos[2] = 0.0f; + + if ( st_ivas->hHeadTrackData != NULL ) + { + /* Obtain head rotation matrix */ + QuatToRotMat( st_ivas->hHeadTrackData->Quaternions[subframe_idx], Rmat ); + /* Apply rotation matrix to looking vector [1;0;0] */ + FrontVec[0] = Rmat[0][0]; + FrontVec[1] = Rmat[0][1]; + FrontVec[2] = Rmat[0][2]; + /* Apply rotation matrix to up vector [0;0;1] */ + UpVec[0] = Rmat[2][0]; + UpVec[1] = Rmat[2][1]; + UpVec[2] = Rmat[2][2]; + } + else + { + /* Oriented with looking vector along the x axis */ + FrontVec[0] = 1.0f; + FrontVec[1] = 0.0f; + FrontVec[2] = 0.0f; + /* Oriented with up vector along the z axis */ + UpVec[0] = 0.0f; + UpVec[1] = 0.0f; + UpVec[2] = 1.0f; + } + + /* Set the listener position and orientation:*/ + TDREND_MIX_LIST_SetPos( st_ivas->hBinRendererTd, Pos ); + TDREND_MIX_LIST_SetOrient( st_ivas->hBinRendererTd, FrontVec, UpVec ); + + return; +} +#endif diff --git a/lib_dec/ivas_objectRenderer_hrFilt.c b/lib_dec/ivas_objectRenderer_hrFilt.c index b665f409ae..1c0afd9eda 100644 --- a/lib_dec/ivas_objectRenderer_hrFilt.c +++ b/lib_dec/ivas_objectRenderer_hrFilt.c @@ -343,23 +343,42 @@ void TDREND_HRFILT_SetFiltSet( --------------------------------------------------------------------*/ ivas_error TDREND_REND_RenderSourceHRFilt( +#ifdef FIX_I106_TDREND_5MS + TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ +#else const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ +#endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif +#ifdef FIX_I106_TDREND_5MS + float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ + const int16_t subframe_length, /* i : Subframe length in use */ +#else float output_buf[][L_FRAME48k], /* o : Output buffer */ const int16_t output_frame, /* i : Output frame length in use */ +#endif + const int32_t output_Fs /* i : Output sample rate */ ) { TDREND_SRC_REND_t *SrcRend_p; +#ifdef FIX_I106_TDREND_5MS + const float *InFrame_nIC_p; +#else int16_t nS; float *InFrame_nIC_p; +#endif int16_t NoOfUsedInputSamples, NoOfDeliveredOutputSamples; +#ifdef FIX_I106_TDREND_5MS + float LeftOutputFrame[L_SPATIAL_SUBFR_48k]; + float RightOutputFrame[L_SPATIAL_SUBFR_48k]; +#else float LeftOutputFrame[L_FRAME48k]; float RightOutputFrame[L_FRAME48k]; float *LeftOutputFrame_p, *RightOutputFrame_p; float *LeftAccOutputFrame_p, *RightAccOutputFrame_p; +#endif /* Input channel rendering loop */ InFrame_nIC_p = Src_p->InputFrame_p; @@ -369,7 +388,11 @@ ivas_error TDREND_REND_RenderSourceHRFilt( /* SrcGain = Mix_p->Gain * ( *SrcRend_p->SrcGain_p ); */ /* SrcGain *= ( *SrcRend_p->DirGain_p ) * ( *SrcRend_p->DistGain_p ); */ +#ifdef FIX_I106_TDREND_5MS + TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, subframe_length, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); +#else TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, output_frame, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); +#endif #ifdef TDREND_HRTF_TABLE_METHODS if ( hBinRendererTd->HrFiltSet_p->FilterMethod != TDREND_HRFILT_Method_BSplineModel ) @@ -379,15 +402,25 @@ ivas_error TDREND_REND_RenderSourceHRFilt( #endif /* Copy to accumulative output frame */ +#ifdef FIX_I106_TDREND_5MS + v_add( LeftOutputFrame, output_buf[0], output_buf[0], subframe_length ); + v_add( RightOutputFrame, output_buf[1], output_buf[1], subframe_length ); + + Src_p->InputFrame_p += subframe_length; /* Increment input pointer -- todo: should we remove this and input the current subframe instead? */ + +#else LeftOutputFrame_p = LeftOutputFrame; RightOutputFrame_p = RightOutputFrame; LeftAccOutputFrame_p = output_buf[0]; RightAccOutputFrame_p = output_buf[1]; + for ( nS = 0; nS < output_frame; nS++ ) { *LeftAccOutputFrame_p++ += *LeftOutputFrame_p++; *RightAccOutputFrame_p++ += *RightOutputFrame_p++; } +#endif + return IVAS_ERR_OK; } diff --git a/lib_dec/ivas_objectRenderer_sfx.c b/lib_dec/ivas_objectRenderer_sfx.c index 381506e249..b8d2befc37 100644 --- a/lib_dec/ivas_objectRenderer_sfx.c +++ b/lib_dec/ivas_objectRenderer_sfx.c @@ -928,9 +928,13 @@ static void TDREND_SFX_SpatBin_UpdateParams( --------------------------------------------------------------------*/ void TDREND_SFX_SpatBin_Execute_Main( - SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ - const float *InBuffer_p, /* i : Input buffer */ - const int16_t output_frame, /* i : frame length */ + SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ + const float *InBuffer_p, /* i : Input buffer */ +#ifdef FIX_I106_TDREND_5MS + const int16_t subframe_length, /* i : subframe length */ +#else + const int16_t output_frame, /* i : frame length */ +#endif float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ @@ -948,7 +952,11 @@ void TDREND_SFX_SpatBin_Execute_Main( /* Make sure the blocks are not longer than 6 msec. */ NoOfBlocks = 1; +#ifdef FIX_I106_TDREND_5MS + TempNoOfRequestedOutputSamples = subframe_length; +#else TempNoOfRequestedOutputSamples = output_frame; +#endif while ( TempNoOfRequestedOutputSamples > SfxSpatBin_p->MaxBlockLength ) { NoOfBlocks = NoOfBlocks << 1; @@ -962,7 +970,11 @@ void TDREND_SFX_SpatBin_Execute_Main( RightOutBufferPointer_p = RightOutBuffer_p; *NoOfUsedInputSamples_p = 0; *NoOfDeliveredOutputSamples_p = 0; +#ifdef FIX_I106_TDREND_5MS + TempNoOfInputSamples = subframe_length; +#else TempNoOfInputSamples = output_frame; +#endif for ( i = 0; i < NoOfBlocks; i++ ) { @@ -991,7 +1003,11 @@ void TDREND_SFX_SpatBin_Execute_Main( if ( i == NoOfBlocks - 2 ) { /* The last block should produce the remaining number of samples */ +#ifdef FIX_I106_TDREND_5MS + TempNoOfRequestedOutputSamples = subframe_length - *NoOfDeliveredOutputSamples_p; +#else TempNoOfRequestedOutputSamples = output_frame - *NoOfDeliveredOutputSamples_p; +#endif } *NoOfUsedInputSamples_p = *NoOfUsedInputSamples_p + TempNoOfUsedInputSamples; TempNoOfInputSamples = TempNoOfInputSamples - TempNoOfUsedInputSamples; @@ -1009,10 +1025,10 @@ void TDREND_SFX_SpatBin_Execute_Main( --------------------------------------------------------------------*/ static void TDREND_SFX_SpatBin_Execute( - SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ - const float *InBuffer_p, /* i : Input buffer */ + SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ + const float *InBuffer_p, /* i : Input buffer */ #ifdef DEBUGGING - const int16_t NoOfInputSamples, /* i : Length of input buffer */ + const int16_t NoOfInputSamples, /* i : Length of input buffer */ #endif const int16_t NoOfRequestedOutputSamples, /* i : Length of output */ float *LeftOutBuffer_p, /* o : Rendered left channel */ -- GitLab From 65edca7afc5601d31475fd4617779b9624b2342d Mon Sep 17 00:00:00 2001 From: rtyag Date: Wed, 21 Sep 2022 16:31:38 +0200 Subject: [PATCH 099/479] SBA fixes after DTX bitrate alignment --- lib_com/bitstream.c | 2 +- lib_dec/ivas_dirac_dec.c | 47 +++++++++++++++++++++++++++++++++--- lib_dec/ivas_init_dec.c | 34 ++++++++++++++++++++------ lib_dec/ivas_qmetadata_dec.c | 13 ++++++---- lib_dec/ivas_spar_decoder.c | 17 +++++++++++++ lib_enc/ivas_dirac_enc.c | 4 +++ lib_enc/ivas_qmetadata_enc.c | 25 +++++++++++++++---- lib_enc/ivas_sce_enc.c | 5 +++- 8 files changed, 124 insertions(+), 23 deletions(-) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index d4304d3649..1d8ed20b33 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -2984,7 +2984,7 @@ void dtx_read_padding_bits( int16_t tmp; tmp = st->total_brate; st->total_brate = st->total_brate + num_bits * FRAMES_PER_SEC; - get_next_indice(st, num_bits); + get_next_indice( st, num_bits ); st->total_brate = tmp; } #endif diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index f3992e8677..162002852b 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -1297,18 +1297,19 @@ void ivas_dirac_dec_read_BS( b = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; +#ifndef ALIGN_SID_SIZE if ( sba_mode == SBA_MODE_SPAR ) { -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate == IVAS_SID_5k2 ) -#else + if ( ivas_total_brate == IVAS_SID_5k ) -#endif { b = 1; } } else +#else + if ( sba_mode != SBA_MODE_SPAR ) +#endif { assert( ( b == 0 ) || ( hQMetaData->q_direction[0].cfg.start_band > 0 ) ); } @@ -1406,6 +1407,13 @@ void ivas_dirac_dec_read_BS( /* subtract mode signaling bits, since bitstream was moved after mode reading */ st->next_bit_pos = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 - SID_FORMAT_NBITS ); +#ifdef ALIGN_SID_SIZE + /* 1 bit flag for SPAR/DirAC, already read in read format function */ + b = st->bit_stream[( st->next_bit_pos )--]; + ( *nb_bits )++; + hQMetaData->sba_inactive_mode = 1; + orig_dirac_bands = hQMetaData->q_direction[0].cfg.nbands; +#endif /* if we start with a SID frame, we need to init the azi/ele arrays.*/ if ( st->ini_frame == 0 ) @@ -1420,8 +1428,39 @@ void ivas_dirac_dec_read_BS( } } +#ifdef ALIGN_SID_SIZE + *nb_bits += ivas_qmetadata_dec_sid_decode( hQMetaData, st->bit_stream, &( st->next_bit_pos ), 0, NULL, SBA_FORMAT, sba_mode ); + + if ( sba_mode == SBA_MODE_SPAR ) + { + for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) + { + hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].azimuth[i] = hQMetaData->q_direction[0].band_data[1].azimuth[0]; + hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].elevation[i] = hQMetaData->q_direction[0].band_data[1].elevation[0]; + hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio[0]; + } + for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) + { + for ( j = orig_dirac_bands - 2; j >= 0; j-- ) + { + hQMetaData->q_direction[0].band_data[j].azimuth[i] = hQMetaData->q_direction[0].band_data[0].azimuth[0]; + hQMetaData->q_direction[0].band_data[j].elevation[i] = hQMetaData->q_direction[0].band_data[0].elevation[0]; + hQMetaData->q_direction[0].band_data[j].energy_ratio[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio[0]; + } + } + + hQMetaData->q_direction->cfg.nbands = orig_dirac_bands; + } + else + { + *nb_bits += SID_FORMAT_NBITS; + } +#else *nb_bits += ivas_qmetadata_dec_sid_decode( hQMetaData, st->bit_stream, &( st->next_bit_pos ), 0, NULL, SBA_FORMAT, SBA_MODE_DIRAC ); + *nb_bits += SID_FORMAT_NBITS; +#endif + st->next_bit_pos = next_bit_pos_orig; } diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index d32e362562..d0f4e7ceb1 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -103,7 +103,7 @@ ivas_error ivas_dec_setup( /* read the number of objects */ st_ivas->nchan_transport = 1; num_obj = 1; - k = ( int16_t )( ( ivas_total_brate / FRAMES_PER_SEC ) - 1 ); + k = (int16_t) ( ( ivas_total_brate / FRAMES_PER_SEC ) - 1 ); while ( st_ivas->bit_stream[k] && num_obj < MAX_NUM_OBJECTS ) { num_obj++; @@ -418,18 +418,37 @@ static ivas_error ivas_read_format( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format ); } +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == SBA_FORMAT ) + { + int16_t tc_mode_offset; + tc_mode_offset = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); + idx = st_ivas->bit_stream[tc_mode_offset]; + // TBD: needs more work for HOA + if ( st_ivas->sba_analysis_order == 0 ) + { + st_ivas->sba_analysis_order = 1; + } + if ( idx == 1 ) + { + st_ivas->sba_mode = SBA_MODE_SPAR; + } + else + { + st_ivas->sba_mode = SBA_MODE_DIRAC; + } + } +#endif + /* reset bitstream handle to avoid BER detection after reading the 2400 kbps for ch0 */ st_ivas->bit_stream += ( *num_bits_read ); ( *num_bits_read ) = 0; } -#ifdef ALIGN_SID_SIZE - else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) -#else +#ifndef ALIGN_SID_SIZE else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k ) -#endif { int16_t tc_mode_offset; - tc_mode_offset = ( int16_t )( ivas_total_brate / FRAMES_PER_SEC - 1 ); + tc_mode_offset = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); idx = st_ivas->bit_stream[tc_mode_offset]; // TBD: needs more work for HOA @@ -453,6 +472,7 @@ static ivas_error ivas_read_format( st_ivas->element_mode_init = IVAS_CPE_MDCT; } } +#endif else { /* In SID/NO_DATA frames, use the previous frame IVAS format */ @@ -890,7 +910,7 @@ ivas_error ivas_init_decoder( st_ivas->hSpar->enc_param_start_band = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); - ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, ( int16_t )( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), + ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, (int16_t) ( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); } } diff --git a/lib_dec/ivas_qmetadata_dec.c b/lib_dec/ivas_qmetadata_dec.c index b81d5cfd97..2a144cb852 100644 --- a/lib_dec/ivas_qmetadata_dec.c +++ b/lib_dec/ivas_qmetadata_dec.c @@ -723,7 +723,7 @@ int16_t ivas_qmetadata_dec_sid_decode( { #ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = (int16_t) ( 5000/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ + metadata_sid_bits = (int16_t) ( 5000 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ #else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ #endif @@ -733,7 +733,7 @@ int16_t ivas_qmetadata_dec_sid_decode( /* keep 13.2 and 16.4 sid bitrate as 4.4 kbps for now*/ #ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -743,7 +743,7 @@ int16_t ivas_qmetadata_dec_sid_decode( { #ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -871,11 +871,14 @@ int16_t ivas_qmetadata_dec_sid_decode( { if ( sba_mode == SBA_MODE_SPAR ) { - metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ +#if 0 + /*This would break BE for SPAR modes, hence disabling it for now*/ + metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1 - SID_FORMAT_NBITS; /* -1 for inactive mode header bit*/ +#endif } else { - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - 1; /* -1 for spar/dirac indicator*/ } } else diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index cae7c8f27b..459a6f2193 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -241,6 +241,12 @@ ivas_error ivas_spar_dec( next_bit_pos_orig = st0->next_bit_pos; last_bit_pos = (int16_t) ( ( hDecoderConfig->ivas_total_brate / FRAMES_PER_SEC ) - 1 ); +#ifdef ALIGN_SID_SIZE + if ( !st0->bfi && hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) + { + last_bit_pos -= SID_FORMAT_NBITS; + } +#endif nb_bits_read_orig = *nb_bits_read; last_bit_pos -= nb_bits_read_orig; @@ -260,6 +266,17 @@ ivas_error ivas_spar_dec( st0->bit_stream = bit_stream_orig; st0->next_bit_pos = next_bit_pos_orig; +#ifdef ALIGN_SID_SIZE + if ( !st0->bfi && hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) + { + int16_t zero_pad_bits; + *nb_bits_read += SID_FORMAT_NBITS; + zero_pad_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - *nb_bits_read; + assert( zero_pad_bits <= 1 ); + *nb_bits_read += zero_pad_bits; + } +#endif + wmops_sub_end(); return error; diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 557cb109ca..754aa6d57c 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -429,6 +429,10 @@ void ivas_dirac_enc( } else { +#ifdef ALIGN_SID_SIZE + /*indicate whether SPAR or DiRAC mode*/ + push_next_indice( hMetaData, 0, 1 ); +#endif /* encode SID parameters */ ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, SBA_FORMAT, diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index 492114987f..c9af2b7cff 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -686,7 +686,7 @@ void ivas_qmetadata_enc_sid_encode( { #ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = (int16_t) ( 5000/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ + metadata_sid_bits = (int16_t) ( 5000 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ #else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ #endif @@ -696,7 +696,7 @@ void ivas_qmetadata_enc_sid_encode( /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ #ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -706,7 +706,7 @@ void ivas_qmetadata_enc_sid_encode( { #ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif @@ -894,12 +894,15 @@ void ivas_qmetadata_enc_sid_encode( { if ( sba_mode == SBA_MODE_SPAR ) { - metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ +#if 0 + /*This would break BE for SPAR modes, hence disabling it for now*/ + metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1 - SID_FORMAT_NBITS; /* -1 for inactive mode header bit*/ +#endif } else { /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - 1; /* -1 for spar/dirac indicator*/ } } else @@ -936,6 +939,9 @@ void reset_metadata_spatial( ) { int16_t i, next_ind_sid, last_ind_sid; +#ifdef ALIGN_SID_SIZE + int16_t metadata_sid_bits; +#endif if ( core_brate == SID_2k40 || core_brate == FRAME_NO_DATA ) { @@ -944,6 +950,14 @@ void reset_metadata_spatial( if ( sba_mode == SBA_MODE_SPAR ) { assert( hMetaData->ind_list[0].nb_bits == 1 ); +#ifdef ALIGN_SID_SIZE + hMetaData->ind_list[0].value = 1; + metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + while ( hMetaData->nb_bits_tot < metadata_sid_bits ) + { + push_next_indice( hMetaData, 0, 1 ); /*fill bit*/ + } +#else if ( element_mode > IVAS_SCE ) { hMetaData->ind_list[0].value = 1; @@ -952,6 +966,7 @@ void reset_metadata_spatial( { hMetaData->ind_list[0].value = 0; } +#endif } else { diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 942dd14c99..d3707945af 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -205,8 +205,11 @@ ivas_error ivas_sce_enc( /*----------------------------------------------------------------* * Write IVAS format signaling in SID frames *----------------------------------------------------------------*/ - +#ifdef ALIGN_SID_SIZE + if ( st->core_brate == SID_2k40 ) +#else if ( st->core_brate == SID_2k40 && ( ivas_format != SBA_FORMAT || st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#endif { ivas_write_format_sid( ivas_format, IVAS_SCE, st->hBstr ); } -- GitLab From 4d7905745114f2fc9fc94d5d5888788a4ddb3350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Wed, 21 Sep 2022 17:18:26 +0200 Subject: [PATCH 100/479] fix junit entry to get both reports --- .gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a6c4600fce..aa0d518a93 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -355,8 +355,9 @@ pytest-on-merge-request: - report-junit-evs.xml expose_as: 'pytest results' reports: - junit: report-junit.xml - junit: report-junit-evs.xml + junit: + - report-junit.xml + - report-junit-evs.xml # --------------------------------------------------------------- -- GitLab From 6192e299d54f6053c7069e2052b298e9abde7f6c Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 21 Sep 2022 18:45:24 +0200 Subject: [PATCH 101/479] temporary fix to keep EVS bit-exactness --- lib_enc/lib_enc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 9420d47a07..ede42ddeaf 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1950,6 +1950,7 @@ static ivas_error sanitizeBandwidth( if ( hEncoderConfig->ivas_format == MONO_FORMAT ) { +#if 0 // IVAS_fmToDo: temporary disabled to keep EVS bit-exactness -> to be verified if ( max_bwidth_tmp == FB && hEncoderConfig->ivas_total_brate < ACELP_16k40 ) { if ( hEncoderConfig->ivas_total_brate < ACELP_9k60 ) @@ -1966,6 +1967,7 @@ static ivas_error sanitizeBandwidth( { max_bwidth_tmp = WB; } +#endif /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ if ( ( max_bwidth_tmp == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) -- GitLab From 181740eb1d238130ac42dd97f507f08b929e6a19 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 21 Sep 2022 20:16:28 +0200 Subject: [PATCH 102/479] fix 'st_ivas' deallocation; under FIX_I98_HANDLES_TO_NULL --- apps/decoder.c | 8 ++++---- lib_dec/lib_dec.c | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index cb81edc24b..968dc79ec2 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -427,25 +427,25 @@ int main( /* sanity check */ if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM ) { - fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" ); + fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n\n" ); goto cleanup; } if ( ( error = IVAS_DEC_GetRenderConfig( hIvasDec, &renderConfig ) ) != IVAS_ERR_OK ) { - fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); + fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK ) { - fprintf( stderr, "Failed to read renderer configuration from file %s\n", arg.renderConfigFilename ); + fprintf( stderr, "Failed to read renderer configuration from file %s\n\n", arg.renderConfigFilename ); goto cleanup; } if ( ( error = IVAS_DEC_FeedRenderConfig( hIvasDec, renderConfig ) ) != IVAS_ERR_OK ) { - fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); + fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } } diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 2d41945563..f4566b4c50 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -250,9 +250,20 @@ void IVAS_DEC_Close( if ( ( *phIvasDec )->hVoIP ) { IVAS_DEC_Close_VoIP( ( *phIvasDec )->hVoIP ); +#ifdef FIX_I98_HANDLES_TO_NULL + ( *phIvasDec )->hVoIP = NULL; +#else count_free( ( *phIvasDec )->hVoIP ); +#endif } +#ifdef FIX_I98_HANDLES_TO_NULL + if ( ( *phIvasDec )->st_ivas ) + { + ivas_destroy_dec( ( *phIvasDec )->st_ivas ); + ( *phIvasDec )->st_ivas = NULL; + } +#else if ( ( *phIvasDec )->isInitialized ) { if ( ( *phIvasDec )->st_ivas ) @@ -268,7 +279,7 @@ void IVAS_DEC_Close( ( *phIvasDec )->st_ivas->hDecoderConfig = NULL; } -#ifndef FIX_I98_HANDLES_TO_NULL + if ( ( *phIvasDec )->st_ivas->hHeadTrackData != NULL ) { count_free( ( *phIvasDec )->st_ivas->hHeadTrackData ); @@ -278,11 +289,11 @@ void IVAS_DEC_Close( ivas_render_config_close( &( ( *phIvasDec )->st_ivas->hRenderConfig ) ); ivas_HRTF_binary_close( &( *phIvasDec )->st_ivas->hHrtfTD ); -#endif count_free( ( *phIvasDec )->st_ivas ); } ( *phIvasDec )->st_ivas = NULL; +#endif count_free( *phIvasDec ); *phIvasDec = NULL; @@ -1489,6 +1500,10 @@ static void IVAS_DEC_Close_VoIP( pcmdsp_fifo_destroy( &hVoIP->hFifoAfterTimeScaler ); +#ifdef FIX_I98_HANDLES_TO_NULL + count_free( hVoIP ); +#endif + return; } -- GitLab From 4d43b592102caf86fe05724724bc1f74c414693b Mon Sep 17 00:00:00 2001 From: ragot Date: Thu, 22 Sep 2022 02:12:51 +0200 Subject: [PATCH 103/479] fixed handling of PCA input/output --- lib_com/ivas_cnst.h | 4 ++++ lib_dec/ivas_spar_decoder.c | 12 ------------ lib_enc/ivas_spar_encoder.c | 12 ------------ 3 files changed, 4 insertions(+), 24 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 6cfb9fb305..6d37913a10 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1004,7 +1004,11 @@ enum /* IVAS PCA */ #define IVAS_PCA_NB_SUBR 20 /* 80 -> 0.25 ms, 40 -> 0.5 ms... */ +#ifdef SPAR_SCALING_HARMONIZATION +#define IVAS_PCA_COV_THRES 3e-5f +#else #define IVAS_PCA_COV_THRES 1e-9f +#endif #define IVAS_PCA_QUAT_EPS 1e-7f #define IVAS_PCA_QBITS 19 #define IVAS_PCA_N1 91 diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 4f48e10a09..493ca539a0 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -971,22 +971,10 @@ void ivas_spar_dec_upmixer( if ( hSpar->hPCA != NULL ) { -#ifdef SPAR_SCALING_HARMONIZATION - for ( out_ch = 0; out_ch < num_in_ingest; out_ch++ ) - { - v_multc( output[out_ch], MDFT_NORM_SCALING, output[out_ch], output_frame ); - } -#endif ivas_pca_dec( hSpar->hPCA, output_frame, num_in_ingest, hDecoderConfig->ivas_total_brate, hDecoderConfig->last_ivas_total_brate, st_ivas->bfi, output ); #ifdef DEBUG_SBA_AUDIO_DUMP /* Dump audio signal after ivas_pca_dec */ ivas_spar_dump_signal_wav( output_frame, NULL, output, num_in_ingest, spar_foa_dec_wav[2], "ivas_pca_dec()" ); -#endif -#ifdef SPAR_SCALING_HARMONIZATION - for ( out_ch = 0; out_ch < num_in_ingest; out_ch++ ) - { - v_multc( output[out_ch], PCM16_TO_FLT_FAC, output[out_ch], output_frame ); - } #endif } diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 6e05d741ad..46e957a3f1 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -789,19 +789,7 @@ static ivas_error ivas_spar_enc_process( if ( hSpar->hPCA != NULL ) { -#ifdef SPAR_SCALING_HARMONIZATION - for ( int16_t out_ch = 0; out_ch < FOA_CHANNELS; out_ch++ ) - { - v_multc( p_pcm_tmp[out_ch], MDFT_NORM_SCALING, p_pcm_tmp[out_ch], input_frame ); - } -#endif ivas_pca_enc( hEncoderConfig, hSpar->hPCA, hMetaData, p_pcm_tmp, input_frame, FOA_CHANNELS ); -#ifdef SPAR_SCALING_HARMONIZATION - for ( int16_t out_ch = 0; out_ch < FOA_CHANNELS; out_ch++ ) - { - v_multc( p_pcm_tmp[out_ch], PCM16_TO_FLT_FAC, p_pcm_tmp[out_ch], input_frame ); - } -#endif } else { -- GitLab From 4e43ae51db9262eb156a77ac951290e3bf82030a Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Sep 2022 10:04:45 +0200 Subject: [PATCH 104/479] fix bugs in TD-PLC and whitening of noise shape --- lib_dec/er_dec_tcx.c | 18 +++++------------- lib_dec/fd_cng_dec.c | 2 +- lib_dec/ivas_core_dec.c | 2 +- 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 4d2a030492..7ff9190f4c 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -34,6 +34,8 @@ EVS Codec 3GPP TS26.443 Nov 04, 2021. Version 12.14.0 / 13.10.0 / 14.6.0 / 15.4.0 / 16.3.0 ====================================================================================*/ +#include "cnst.h" +#include "ivas_cnst.h" #include #include #include "options.h" @@ -279,7 +281,7 @@ void con_tcx( st->bpf_gain_param = 0; /* PLC: calculate damping factor */ - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), ACELP_CORE ); if ( st->nbLostCmpt == 1 ) { @@ -338,7 +340,7 @@ void con_tcx( set_f( pitch_buf, (float) L_SUBFR, st->nb_subfr ); /* PLC: calculate damping factor */ - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), ACELP_CORE ); } /*-----------------------------------------------------------------* @@ -548,17 +550,7 @@ void con_tcx( #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( A_cng != NULL ) { - if ( ( st->nbLostCmpt == 1 && st->idchan == 0 ) || ( st->nbLostCmpt == 2 && st->idchan == 1 ) ) - { - float lsp_cng[M]; - - lpc_from_spectrum( st->hFdCngDec->hFdCngCom, st->hFdCngDec->hFdCngCom->startBand, st->hFdCngDec->hFdCngCom->stopFFTbin, 0.f ); - - a2lsp_stab( st->hFdCngDec->hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); - mvr2r( lsp_cng, st->lspold_cng, M ); - } - - if ( alpha != 1.0f ) + if ( st->plcBackgroundNoiseUpdated && alpha != 1.0f ) { float lsp_local[M], lsp_fade[M], alpha_inv; diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index ffbb785351..56bd2ff99e 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -519,7 +519,7 @@ void ApplyFdCng( { TonalMdctConceal_whiten_noise_shape( st, L_frame, ON_FIRST_LOST_FRAME ); } - else if ( st->element_mode != IVAS_CPE_MDCT ) + else if ( st->element_mode != IVAS_CPE_MDCT || st->core == ACELP_CORE ) { lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0.f ); a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index 917d64bf20..ad350f4e30 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -435,7 +435,7 @@ ivas_error ivas_core_dec( /* On first good frame after frameloss undo the whitening of the bg noise shape */ for ( n = 0; n < n_channels; ++n ) { - if ( sts[n]->last_core != ACELP_CORE ) + if ( sts[n]->last_core_bfi != ACELP_CORE ) { TonalMdctConceal_whiten_noise_shape( sts[n], L_FRAME16k, ON_FIRST_GOOD_FRAME ); } -- GitLab From 9d26ba657ec3ba7366e230416af306e10151503b Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Sep 2022 10:44:01 +0200 Subject: [PATCH 105/479] fix compiler warning --- lib_com/ivas_prot.h | 4 ++++ lib_enc/ivas_cpe_enc.c | 8 ++++++++ lib_enc/ivas_qmetadata_enc.c | 4 ++++ lib_enc/ivas_sce_enc.c | 7 +++++-- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index d453205933..758a704151 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2773,8 +2773,12 @@ void reset_metadata_spatial( int32_t *total_brate, /* o : total bitrate */ const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ +#ifndef ALIGN_SID_SIZE const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t element_mode /* i : element mode */ +#else + const SBA_MODE sba_mode /* i : SBA mode */ +#endif ); /*! r: number of bits written */ diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index ca817c9640..608fcca417 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -460,7 +460,11 @@ ivas_error ivas_cpe_enc( { if ( hCPE->element_mode == IVAS_CPE_DFT || hCPE->element_mode == IVAS_CPE_TD ) { +#ifdef ALIGN_SID_SIZE + reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode ); +#else reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode, hCPE->element_mode ); +#endif } } @@ -472,7 +476,11 @@ ivas_error ivas_cpe_enc( /* Reset metadata */ if ( sts[0]->cng_sba_flag || ( ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR ) ) { +#ifdef ALIGN_SID_SIZE + reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode ); +#else reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode, hCPE->element_mode ); +#endif } } diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index c9af2b7cff..9470b2f0dc 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -934,8 +934,12 @@ void reset_metadata_spatial( int32_t *total_brate, /* o : total bitrate */ const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ +#ifndef ALIGN_SID_SIZE const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t element_mode /* i : element mode */ +#else + const SBA_MODE sba_mode /* i : SBA mode */ +#endif ) { int16_t i, next_ind_sid, last_ind_sid; diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index d3707945af..1657665f99 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -199,8 +199,11 @@ ivas_error ivas_sce_enc( * Reset metadata *----------------------------------------------------------------*/ - reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode, - IVAS_SCE ); +#ifdef ALIGN_SID_SIZE + reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode ); +#else + reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode, IVAS_SCE ); +#endif /*----------------------------------------------------------------* * Write IVAS format signaling in SID frames -- GitLab From 9b1614d9f9e58b8ad59300936a0a3017665279ea Mon Sep 17 00:00:00 2001 From: rtyag Date: Thu, 22 Sep 2022 13:03:27 +0200 Subject: [PATCH 106/479] windows warning fix in encoder --- lib_com/bitstream.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index 1d8ed20b33..d221b9cf92 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -2981,7 +2981,7 @@ void dtx_read_padding_bits( int16_t num_bits ) { /* TODO: temporary hack, need to decide what to do with core-coder bitrate */ - int16_t tmp; + int32_t tmp; tmp = st->total_brate; st->total_brate = st->total_brate + num_bits * FRAMES_PER_SEC; get_next_indice( st, num_bits ); -- GitLab From a7b56ff5fb7896d1b90649efae707c30b009477f Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Sep 2022 13:17:23 +0200 Subject: [PATCH 107/479] add JBM conditions back and networkSim binary for Mac --- scripts/config/self_test_evs.prm | 15 +++++++++++++++ scripts/tools/Darwin/networkSimulator_g192 | Bin 0 -> 154584 bytes 2 files changed, 15 insertions(+) create mode 100755 scripts/tools/Darwin/networkSimulator_g192 diff --git a/scripts/config/self_test_evs.prm b/scripts/config/self_test_evs.prm index 4f6908be4c..02227154d8 100644 --- a/scripts/config/self_test_evs.prm +++ b/scripts/config/self_test_evs.prm @@ -219,3 +219,18 @@ ../IVAS_dec 32 bit testv/stv32c_AMR_WB_19k85_32-32.tst + +// Codec A at 13.20 kbps, 32kHz in, 32kHz out, DTX, JBM Prof 5 +../IVAS_cod -dtx 13200 32 testv/stv32c.pcm bit +networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 +../IVAS_dec -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_13k20_32-32_DTX_JBM5.tst + +// Codec B at 16.40 kbps, 32kHz in, 32kHz out, DTX, JBM Prof 5 +../IVAS_cod -dtx 16400 32 testv/stv32c.pcm bit +networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 +../IVAS_dec -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_16k40_32-32_DTX_JBM5.tst + +// Codec B at 13.20 kbps, 32kHz in, 32kHz out, JBM Prof 9, Channel aware +../IVAS_cod -rf 13200 32 testv/stv32c.pcm bit +networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0 +../IVAS_dec -Tracefile tracefile_dec -VOIP 32 netsimoutput testv/stv32c_13k20_CA_32-32_JBM9.tst diff --git a/scripts/tools/Darwin/networkSimulator_g192 b/scripts/tools/Darwin/networkSimulator_g192 new file mode 100755 index 0000000000000000000000000000000000000000..ba96e89897224de381218eadd10096c693ef566e GIT binary patch literal 154584 zcmX^A>+L^w1_nlE1_lNu1_lN}1_p)-HU@^)21N!CkYr$B@L*tIh>s6&ba#z%4e|$x zqGCo=E><4MoC+q8IU%kQA*f0q`XMAj2Eu1$U|;}YcBn*rd`W6W36ukN7pi#&Oc)qI zI^%ak)PVRb5GI6VVQ7FbAY^=eaY<=XF@%G~JcSPs^Ui?`Wnf@{@nIS`pyshb1t8|d zXQbv7q!wW@@54ukc|B0`KzvZRL$xz7K+S{kl2Z#x;!6^f;^R^MTk{!W z-V3NFL3|YRUxQsOi7((Q>4d=nrWzU{P(H|b5C)ko0M?(LkMJcZ9b-3d0?arDMh1|67#Ea2 zd|@20dFbJWYTg6}i2Dkl&I0j~%|kK@%tZAkSO`KmK+J*r(*bHA7Jq^?#K-3(#ur!S zCgtbE7nBq+#K(i&1(JbcsCgNnfB^|Pp!yS(Pvb%2P#hnhl2`(Ze6YV!&C76txQ_#> z9>gc)Pe^&>f#BFO@;=DIgr%GzyRWdjJ$ChL_$QNJ_idZF)%b3fLINT3<{up z-N49jfQ5nKK?@^;0WSlCz$8Y702T&@glUWn2|SRpQG$VifnzBnLp&1$!-}(v37#JAdGeWQ~0|SE$69a=YR2&=i;}j#q8Y~igAh$3uFz_%iFzA;S7wP9@ zCh4bC=A=N?N;5DpfZX8}f6CIr&cJ!9^UI7!g$wzNp!z_5WaH;z0AUat5|)WfS_}*f zpmYp1hCzdYp#fyh1ACYVga+9Q3Kx(ZIEoqDm_eZjcS}xYQnI$To}pe!Wlm-i*qs(o zH-XeMrZBRis}HU$E=kSRbAoCCTciec&w)jZ3=T{T44P0r!%{{DSXuxp93@6WU^E0q zLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$( zGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!n zhD8X3dUQVZ=&b$W(OLSzqucdIH-|^J>j!HN{z-=#9x?K7I~033O^;u`1?*XVc?Pih z#y1O?7#KXdS@TYVC68dsqDZ|KFo?>jDtfy%o&s-Mi!O|Npx{E7D(lWCSU0 z1qpa`JG}7d-NOoEzsO`}VCZOV{`>#`OOP#HVCD)&{#MYwrI%5l4OHE%JYbtFJi4bs z%r$*}h=IZIWXFjYYI_(Mz#5OWZvXrLKg03Xj=%r^gVyf9WCz*U**f9x|Nos+dqB>D zxaS2M3j@PT9Y&}|4~VEo@76hg|Nnn+a~A`HM`vpV%t0RAV73P+XgptdFrM(}JpSSe zC;&QJ3y>6n*dEP482DR2i}5|W_kseVyA@<+XKM@C_N^f51qUSYGUC&HwxVKYyzk14s#ot-{E^?SMz)5m0Q$9tH=pNB3S(aK2F4$-uzR?a_JM zqjPEkDAbIZ85myF>;j1*5=`0zaC&Ke697wNouO|)$;_kkphx4u72xL67Ex5+2>97d$%oJem(UcyzXb)ixg!@aSee08-O@fWxD^_JT)e=?Ra{ zV;Gs?yz|tH9XmiSa@_&-zUvNf9JdC6W61RaB3bMMZTSMFjT0~#s=+}fwDciYY)6o6J}s|3EJZ1(R?HT9@4DWk25fMz&(2Gh2;*Y zTVZaw;K2&^Pv`L$YtiItAG~PT4vGzM9EEOpF^Q3Z0UjR$;P~jS{qbV869WSzo|}&d z#2$vmmjPV9+X<2^K^s~;x>-ezgR))cDUVLq7apCV4_?YMFfhD0W(N+V4<5a>A71Qq z0&^hJpd9Vd?fSr@+xLY>r|S)m&J!Npp*K95j~K)rhLtDHZxq1xLCYYIZVwKR&O_iB z0@>pG;6*FQ%x>QY9@ZTEEkfX+2bEW~FJ8=cVqkd5i!5U43<|X)3JCK-HV5RHyOFyD%^WywC!f)ybmr;`=rR2AF#sJUVMXcyyM&@aV4n z;L&RuzmI|8g&A0->jRJG+6N5$t*T&8vwk`X$~YDt-Ju|bmirhOHZZ&p+|Iyo%=JIR z%UDDq=X%Zq6oQ?{_klJV?E;mMFWzqhdE^HJw6IlTWMJUm?t0EvF`I#bzXh~~)uWqr z0@Q|HQ&x!So3}wt{||CPuj>U5R!|9#Y5W9;@r-bzT;WE&+zWPS2F$1}3}CBo*b1mK zF!1+5JtqoL&%ZtNhDWdID~KKwm>$qhRQ~O*H#!e`9DK;=(Ru!bGswbDP_A^n0M>-$ z;}=ZZ7#LhY>RmbydRU%-J8HubNC@_tE`wNbc`MX^pv3LbUHihLxAejbP-wi|`VUlM z*FJbL7ovu-%k@7j`#8iNhQ%MD^c)%lvJzW*&JIFP&z!-aI6_X(jc+c10v?e>UU>AH zO6_G}cp*E^t`+Ut>pdj#eJkXN8Cm|6g;xIu321+iWn z+YAcA1E3)E==D8-O-BY?2ZYs{@c;k+7rmPq7(9A;9rl631`;kv&YT(n*92j;27ok0 zfHZZ3Lef(p&86FsBh97Lb)QGC?>?Bt$YyxJ&49349YAJ?AerIO4Qc{h@aPT_aN*zX z#o+?-SScvXc7hD@=-g@nHshQ}cQ1t1Y5+3h!X^fWZr3}_2N*kD@4P$!YTt_#V5s5EwLjSSd$<@F7@BK;u=Drb z2j$3a)|3NK&$@o_=oawkHNCbI?B9lsAaPz-u(YK|uj#*?3=EyE6951I-@x!92_mZw zm*w3Bk`;l-xevkzqlg+@gJP=t9i0oOotP5C{10wrs14t9^ zdbn&HSe6AMdu9XJ)Bpef|Nrs_D@Y~CQw|*9y1yID768?fpdN!qw}S+@eus!FfZB8r z@d}L>*&7%bI$h6z1F97q6<}2r1}_3ZGOY|C8$flq;ek#F2NclVU}mT5iRRifjQmZI zpgzOI-=+=;>Yw0DW6>RY#-rEtCnT69k(}%ba&oWh25`Tw}<0#H%)@&XIEd|lBQy5!|05WBawR0oAt$BP#l3W+69kZQ_-EEmRiS&7p&`{&O`IdJ!X*d+6Iqa zQx1^Y121l`gR1oC-3uzEUgUxLNuan$JKmc1|NnmmhU4IJ3nX;BH3lpK5(AY^5U~)b zSa&Ok)p^jPx3{&o<01uAlpA7shF`)Kp zH`v;=&Q=>xsoV=HGqb0HOcr6h*x3sz$+~+%+|F}g1O9=$)Y%Fu=(>AB&TBr%*a>EI z_k!HW?0cf~WakNw-r5Zwovk-Oj^YM8YAcBC(b;+dRK0h8Fgyt=0{4P>-@ikYUwd(Y znSr63qqEoK|NsBZdqE@ve@`p}%oE+dXACcW|H!}oVCS)3mTlc&b)CmL&-b!y?`#DZ zoRDDk=mi(3FE+sYfl8nh4T*kO&?kcul^LjN25SW+LXYm+hHkL$`M39i0>lMU9=mjd z%XE)!u*dng7jPVW$L!Jhpwqyk*ED211B0vKC6|s1FaE57MlZNo3JLk<1B`~3zL%b9 z{>8xG3fhR?ycZO143JiK8Z`Wy4=|>6f};Wv>)oxO5Cs+fU;uxD~JiMBtX4Qk8W0--Jrw>OS|j0LDQ}$%*n@H!G$j@AA)=Ky{(``3d!CF zKyi5<68##W+NygmSm+HzNC6@Qk=Y97^@=jQ|Ns9*Hxo2aJi1G7zyg2TH&FiF4|8r; zD~Jiozo5bk>{GP7RL%g(1~Tx(4`RU+{|1oToI!ov?p_cZocPVb=?1J0lK7p#3M^hE zt%f=XY)^M9NC`NUL5!CR|NsAw8Wu1&8^Kc(c-%x7l%znVlNDSXE~E|@0v(qCO5QI_ zKtfOj8(ye^c%TgZ5_FzHx9cB|#v`CAF!r!VckPN7>MP-$nW-y4o-_OW|36ZF-TVg8 zzdRidZoLYCYF8Hq$oLVm{OlVMR}CW8k=o(WYR-Fzk_^9lD?uO@+#Gq(2q>m>B{eP=S*he-X^#y6mz4cwWX zp)WukYmeU2A1`}py~@i<2WxuFf`yuuiY`=*ua@yy(96g_R@uD;I ziAOhh6bm#qcEh9d*bBC0(7*?mCZN9Ti_E2npg!@U`u+d^hygo9`xz9w$RnPyFE76P z{~sa`OaCA>Aa}Svc(LUjv<(FwDCs=@!W7~%1+dFLz=lXVkH3%sNp#nKc=2!v$Q=l~ z!Q&yQ?R^f9ZrF%x?90ag2>TJ`3+MnD4`>QNlrNC*2Dz`BcP6Nd*L+aGqZ5=8Kn>Ox zua>||P>k7;>0cr^cH z@aXitz~90N7OlPT!W5(vnr$E+uYK@h4#-A#uo93-6Coynnwj7L>-NZinsfqg(uo(Z zL7HIJgOYvN5?FM@qVvOxS&Koz2(AS~54>3O7CAbh{g>u93E;v66duQ2KY&eauBZTw z+aKU>xeRgD0nkvEM|VMmM>p>>Q17tQ_l8F=s6iWgfSpvJ$1`u{>FsC8cZ;Dw4L1H((uAv_=>Ut9wj*LnO!#1c@)05Y`N z?YaYO3^;W|jq&JqJ>YTNp#tn;aB7q=ywrIO?Ag){9^IiE{$B*U0c`342?mCj;K~ow zR{)nw%|{Zzb=HL!#fuQZwBkkUoB#h2=?zPIo`M+IcYOc~`qahXpvO$lJ|GEDdKLuR zfGs^Yzk!S|!s{dsun$}x{0}q$jka{U-g)s@3KYV=4?H>>K?PaYM9_F`!z0Fy(DxqQ zJ3&G(K1hLvYC+{}M+(G_YmQ$iQHD05p^X8dJFL(Rt3J z^VEw6QrJYfq#+i60~^A~-vTzbV*)4xL&BW_qyT1XE9j6wkK?WnK=K~F;6c>~FZO^+f^JY7?1o3DV}S?6RgfOO z>kW_QiUJP)CNxJvBMZfm1uss`hdUCgfbpd?%oo^`9mshe%|{%-gH4brPH_Fx_~rqq zG2Z#Zr<=EX9Rq`JH>Xdh?+=g8t)Nc0N9R;fcebgm`pL-SH1Jvj!@gUQ~g7+zJx$=-vTR{$jZVsCRS)q@%kREYVz9!NA{Q z0vcV~3leAG?*}*4oA-jOX5eoHomc144K)Q+ocs?o02iN-u!2~B{1~X)_#y*TF7|^v z+aM>m9_Vb{0&-7_E^L&e8!XWLf|0*P16_;>l3u`bS;xU0WKhO^3F@~&xZr^iP>eyi zpdrJTSX}W)oPpsbCn#KD&aS9vhIkG%cMNh+A2_~}TR}ed;9uVg@~cN@>jF?e40QM! zBop?6`5;Glbc5x(r-D1`-FrcO5m2K?dmeNI5{omULC$CbrweH4RaCrSm?*)zJ zg7lk>U%kWHZE{{u85(F!)L8;&71jUet+!f(JaT;Q@;X zuso>Mc@7d0VROK0z{bH`aonR58qOAAS=OVgK#DNJ88m|7(Rc(Dnz4sp?3)b^XQbs0 z4v_vt;~UVaj~?Bubx>o#0Sz7^^XP^QLO_~R;Bj&OR(|kkKnZj-;AJOxhzTs`(G1S< z(D}9(c_JWZfn~ZoKu4N3KNJ8DepN&A322xd)c9B?3R2e#;hy*CYy}Nuyx0H{1+l?H z3ZP!ui_0?+N$^PR{32W51&s(?o9x6Nc==-vuqS{_4oCa9Qr`3T@s>x<_zp-Bn1@;jtNvQ7Avp#d2A#)W6oaE45}u%9r4=-s|DqNm3Sxt&IeI}k z^5s;JWe_L9s*DmLQ1F5?8!X%c13bD5Jv=l&d2~(%X=?^&JqG^1Xpqgx&@nC(Hpm^_tsu1?{Ob>TFhg=9WRUgcH;~a#mvtV0u@9mR;zv+A z1&^|KKtw@oa5~+CqzRh5x&s_Mx;;ERI`={gQjbnZg$f-yPK6kOFc>sm`(i&t6vPI* z5~8_xD>zo5HF7t!7U>1o5uFEpy1{kW3u9qW0D?wQ;R!F$1DvWgKY1i?1xsjt@?ZuB zB{W1KF^kkl1XoC~bX`^9p$(2NkIr*DKqhu2QaG zI;?4l$VHt+0Un)29*CCae?E9z9&ZE{C!mZBZp|KVg_TC#V3tQW?2Q7T(e2v-svD*Yg8EXRRR{Xuq~O}&(d+vTG$q@32o!LjCUxU6 z22sk z!9tK)7&d(fYN&X8{|TP8I_?UZ*az?6gPtQT1Vpo+5d zqKCHc1JL3!(29kF4;ehVq4o7KP|u=#D#RLiC+#(oe>K1s!VCq~X)l(7g&^gw=0UL0 zouGMXh%4Gbvdo}GIiUx@ankKs;n8^;>ue=ms}CJi4cXRCshAeBsIi@*l)?mHZ40 z{QE3ke4hjk>6e$l zbc3Wl96Y)M0>DZ%KY1`-^yu^eDF%tcdzFVgI>EEr{H>scb34GjlTL7EdJ)XHiFPnL8}1=Z~y zoxR|isdFo+I(Xp#DsE6B98_Pt&;$vCJjLu-;L!~>$)g)G=h6)^rWFxz- z^XOzz@#uA(;L+)#!tp|t9~AdXnroLZL#Cy`;RP}j)b4<}y7Tx89xiAwbsm4=zzaz@ z`zC-ipLy92NxBojNgNckkV)W9UIqpau(NyNRTAjPZMYR+rJ#D~MI1;e$X2irsE7B$ z8zcnQ?K{Dv8&czRL;Hn?Uet0ToU@S!;v9XbbKr$BxI}&_4sjj0SZISPWq~LKyQK5@ zi~FEB1eJ`IC-_^%7+^I(Xa}Om=ivmc!8p_D3R<$@(Rc(@Fe5LB0QYAh<4+$tOF?Td zKX^dP>j(TTpCE1k4{#NMECUrjAiuiac=3rF2SULqLiC~p)2$<|Gr=R`wITQ_|b=C6MPJ)^EkvN38+nH`jE`H^uiEq z#-$E{?$S4%rGLPS1i?Z7VtpUjNuYTx@H#}qm>p!ir}51LkYhV*(SvLOw2I4v81V84 zXm+u?cEO8Yu+^>$KxMonC`opLN>?bKA6%f`=mv$~oEJuYpm3SfdF+J%)K>{0%eo<$4Bh;fh- zeFr#0Ld=f=ncwXT(%=DFJ(UCDPXNVo%PUApy8zy11&z@`je4O3Q3=)A@xlng?*O&D zIzfw(AQni2g+niRfGk0-R~CVS$lCP+e+#&kpxq0OgO`njJc{ zk~2HVr>+a24PbZ~w!ovaw!s6GX2Eszi`g6?bx;pND*p_qkWaU#1GvOv4om>erF(RP zTZ%s2U}YYiQ$ba>4`|`(L7!gN9k8w)q+mJ$DVXN)f}DNCquY0fM|bD~a7F|#OL(CK zwgt=v1tz2|90i5OO^MF(}Z% zL-T@1r|Sxj?n(!b?$8w;-LMYWhaOM|%yk9S;7X{$=Ru=VV3VpLCN1#jF5Lk(4IB;N z8XhvR@Zv2S$S#yhzw^+G>5vxD0)!q=JK)6!NQnbUVc=B{FV2GXgX?EdI)jZSoO>~a z2Re=V;!zjGzo23PoV~#W*sCpD{vu|jK(2fMUVGem{DmkBB>$|2XaX%Ymh>W`7OkJ0^B{WFFZOy>*0^T0EL7{Zz;&4 z3m%<^zn)^W8 zL!j$QL9;2oH(r3oDm=Pt!E=)AhxR^We5TXcXv$M<*jB%#nQ$i$7|c2aiusI2?ZgZeoI?6goeLX`g`M zfzD%)IlI~)FF==qK;}3h^;7d3$owWKJ%aoPPGc8dOn`b1v@{>oF9V02>xmcOzDu|7 z3D5*+bL|TT{uUijaCX;TcmWy#1}&-Vu6^P1jis{QfeSsU0E0UY@cVP7|7u-gK*=o&=_ zl6|1C0p*QO-v{7D0-!}6ogM;^eFz>BpjkAJP7ejF_JQI9rXLi(5WNN-ogNxc{TARU z16X=N&L7<%50!p+0bWZ3&eg~%43@t^}ZOSa^UgbAhPA79Ii~ zy{-^F-Jp3E#DH1_$W@S3g~;#CZxjp!-j0NF5j{z1rVV3XegYCof{mqIO1JAEJcfcDaW-3(1X-M$ZeK+|#E7SL({v=Zch zfCi+@PlIjY1NR3I_Tx_fV6z=0u({6z(w_hY$OjK-9wXL04*1;z3PX750S_;Tec<&x z$V0NAb;$g!vl0EG7vSa?c+%D64``o;?+f^Vi6OYia|O+fz5oyNfjW`khG3y=-=mf3b2hB?RUhwI3J>df${qcR_(On8@19jJ4@ac9v;nVGVz^6M_ zz@s}>!l&ENqqBAgs4d;?yThkbM#ZBuMg_FmdxKAB=nBXGVG172M-rkPzKb^HdI!nKRs)26b zFCN_i5+2DvJs5v^bOzu`-vXdL0JVQQYk$0GY5+AAe{>#uk*_$${P3QgHYj<4Dim-T zSqSMDbyp^MG=gs7VgQHE@fYuY{Qv(Fbk!6{uLndaBqMZJ7N9CU3{r|TMuFs(6=1ix zet_f-P{5&v54a?UlsBMy6)8ZV^%Z*j8NlNYEjvNf(=9(p;K&c4@)cY&f%X&ne(+%S z0JR-JZiUnjNbw2U2n*^pxqf(Y5Y*D|W@Q5PlUc!`1PX9)I~BYd5mYx}mKUJ%7aVrJ zA3Q+weF7fco*ba9C*46WJUV#}&*$75TBy;-9U;rej=O^Td5|sRkaiV{2-p{(#eLx321t*e@2hvj^KL>J&rqqI$aDN#~s0!?}3)>fGqJi?g$$40f|GGX+Z<6`DKGg zr|*FmcR>R+oyeP^J6$2Wem_HGHh?=3;B|YTor9empq<$s$D1IRMKUmW9B=vovI$iD z9B%>*Pk?wH$D2TxOhTF9_<<<60TO~RLA%00Jdfi|;FZr1QP9*qRCEW3hKPd7L=ey8 zcoS%$0+hJ`L_-wJKrlg}3F3JiZ-Rxj$ML2H(CiaLZ3Th}yG_#LcvA*K6tprPYC;4; zGyuW$Krlg5YEZQn2vN|eEmRaVYy)K~AQVU-m;wkUXwCqn_IML0gFslI1_+3CtO>O8 zjp0}mXk8n_u_n;cFUb5>=d~BhKx0E7RUW;db;h8*&MRIxg35#L+7%tH%U@VmLD!&l zxh{wINI<~@UM}8Udg4Vg!id@nFH}E)j(%{R0gHXm;L;3_&JIwS1=8~3RVCCwk8aS& z6L=oth5V=g|5X@0x_wVT7BoVtnod{HLgtrtpwNe~!6vMLnE+eNcLGwRfmej?0$tAN z(Rm!U9JKjJ0eIc#i5JRnZD9X)*S>g>Q30CI1h2*ko$#XS5b}yyaQhfkKKIuC@PICO z0VOO@;{j3(B6lDl^$nyi0%~wT`0)Gkkje7!}BKptyv{H@|V{tOd1mnjifAf1>kX^9yV68tC>bpg8Mg zl?SIJ-wPheA{`!#hyFkE=w)qb0`>M?f4uw(QS%1Ie+uE>gYmCI_!nUOqY(aK7=J5- zzYWG;3gJsPK+T^D;m?H0w?g=`^-%dz2)_m)_8-v9sq=OOXm{rmqPS-;=^|NoKo%c1G7L(`9JFF9ntIV976_P7Az^?xDc#3#wu}&%L+^+ARXEWHI-5!0NjfpjCdb423g2gU+_`P-uS0 z3R+(^6@CH)IKOw+g2p-#;|ra&KOk!hPIz>lLhb=W>vvdw0=2uKmHhD+pp^^gB?MeO zsC$X1?|W-+>;jeIpjA_yt_NOh2c;pa{67HN5(Zi|xe#P+cP(TS{}zxO z=**Aa+5;Zlr3*lAR$vBYg4!35=3ng$P%Fv@WFTaGcESsLh=Lg&-K7&i8bC7*P}hQY zwXlG975A2ct$eYv7*?h9)*g7l44PAb?JM%=bluSzy2S$|@d~z73~EyCju+`g2!D6H zsN4hIY=lUk9?0?ANz`~PXgm)Rzu@*bq>Kg653B|iC*W2#B7H%|Gq9@%-MbDMBSBUV z&L7}92%g>^K@3Jo@X+)ID!;pt#_!SjaR1f*cyStT48lH;dQe>f_6xKR18T{Ex)`1u z9-W|VcThHHcMf;ZW{c<~pU z+(FYokkSjX_#D0efZRU-#Q}H>8oo!DC{G_6K-E z`U*@2I)?*ppMX2DAj{6Z*aDO9JpN+GFVNTo=zJU38!w_k`4&16)DKbg!K2%O13cQ$ z$q1e-OFstI@B&oI>;|i;eeog)G|>$1q#*(Tn*Nc~cQ-^CxCiY5-+u}T577BX;QZEk z{KaHYKInA)@ZuJP0o!u<;zi^eaN8C#JpwMfx)~rj6jb8EX3{eA85m&W@o@V=eY@i? zK#g~3%>e7Kf$|3=|AX6zr5|2Q2Bi!f@d-;0AoqHMoCj8i$gjxu!OMpvh(avo!wb-E zWl)Ylga@d60nHbFfaOn=@B*bL@Sybn|Nrd?)Q7~BmoT&HvF2~ku+|I69vRS79e7wn z^Mc30A573dgl89Q;SKjcp7|)`@FK>&kno3;XWgLIH*~(n|Mma>@ZJ%$007Nh5}L0; zIu8vtehx0%!H1%OS~DJ zJCDB*2T%0+Vw=QTsAG1}qr3D6 zxFYs_@FE?;C)joJ33|0<3bglNmi@%xRM&*YWlQKY!I@nR}SAGkz8WM*Xl85kaL>_klY zf(jXMqX;yk75V|R?)TtNCQ!x%O~*kBOCwLs6P^bjF!?YZ^XN440FOTRLCQ? zY*0i(qYs;Zq3(zD&!LG*5VWKYZ+it{AJi@a>qS861={`qm%|spD?>oXL0CHq@V9^) zg`o93XF*vGB-|Y+;L&{Ok4I-9GAKX`PPzQF50Q2OXB{eVsIig9>*ALJfLc@HrUv3?I*e-xHJ5%z=CzjzEf)didu zP}fty(i=!UsEvLQqD}x~{S?6$DFaZK z8dREs&QR&ZGCt)GQGj!N3UnGC=oB8v_!M&@^7xc6sGo~%eCikG_|)-ugugpp+*~;% z$EU!13m~-syu`&(AAs^dYW)CBzqLPJ+y+$zU}F&N0g!r7UIXW4PniUWOk=x5?eYI3|z;)cwqou4DJeE zyZ|~#o$z?oK9~+r(typEfyb*ORDH zjPa`Q&7e>NEn`0Rf*Wj5?TZ(SKn!qQg=peJ(*wNx2c>t2GPL>u5+0zsr5ltVI*-3d z2Ggz|UTD1o4-p{7t5)6w3lJEu+8G0?Bq8I4aQh+Y6*RpLZ7ae050Ls3WIuQtGdLa* z`4L$^qzBY_`~~=cbV#a)M>vXqi5qX?NAB{V=!dl*iCRw$9&3Q7r4Lxgmsp^lhC3IQ zKC$|b`1+Y({wIDsDE1*ZZYdcLl7bjP#CQ;k2P2m8Ac!caEl%_CpnOQ%8`LL9>yIJI zS9p7A5kfIM0wL*zxbdJ(IQ0`V9%KT_h0tOFy#E3`EeDQyP>TX|!$Be_$AZ`7AA13w zbVe%-knA;BoK)3uycYpt8~-R>3+|A!fLEZw2T9PzKNcWNqR03L3)b-u79z$! zK=I|#dF}-_!3fWpTOy1|I)H+}`Ot{=x$^un1|%!RiM@`HgM<47NWFoW2i&HWa|> zzZY|EfT}R)no<8}pms87*)QXZW{3o+8T;ae8C=4V!=v#aq+RZN;zb-p5okrh36I{= z2OhnlH(r3xt^!Y_!`f@;+wtw*kc;wXu>_X6f%VRG* zz--X*te_^p>xmbTt^J^s=6c|T6sX#VIuAPDh*=(h!V@&c1zL-MwLOb-ycJr0h`ay= zC8&HlnJl>rmVN;* zh;DdvmR@*a`v@dldjouCaOa^HYhQt@Uhv&M*z0@9`Mu!dK_N*B-dIC!{~*F2>}C%R z(55c%N(#^nleOy${uan#sfb51PFJU1k7EhmIVOVQ}o@dmy(EpWX{W*J7=?iWJ8Apo#%hI(0I>m<*AC zr1vnm1ZsNEgD65x@8Cr#&;$kRzk$jdr1T1EuR-RiVe|QD`*RWD3vSnC6`7UTY9bCZTT7O9W^t=+Z-UQ^d=7S%Q z)AK>FI3zu%{=}7@ANtTLJum$A|No0Smyp63a!4yE-!Q&743U7OXYhOsIH9Aa=XnrC zsOcG_{KnE>qk8&oc>qctkn{~Y@)CR$D5R%$;zc;9;SNjR;8W9~*$rBLBiAROG6B{< z(+3&adHjVrsEh%{AddbSq<*EWyayM|kn$eOcn#)!FSvaMnx%Dp@xmOzdGNvu#K{Dm zoeY}2dH|U@1SPy1FZe-H5YJtBQ8eTKe-F623kY>5UOWdo25k6&7r#IpxH>`|pB|8E z$iy#l`HwY!CtN^EdzZmw5PJUhg}C^|izQ$NXnNQX(*A(t?_Q8~pl&+&Zoxw@!0Ivb zH>iFFwM{`~BXqAV&ic38;srSUKq@n=?IZAt6=Zpk`KaTapz;zno`qxm)69KfbH4wB zj8fq$kKp5P#JBIjJ#b>(2PyBsi|8R*u-4zW^Q$!|VxS`ei1|f?|KaXWf+z$H{=lt( zjOTd3+Lxd>0_Q)x?Sq-H+}L~&R8PEsq=yqP3PC5jf^+$?7pCy}Q1te}M0aA!Q-pts z>(7AH)1rUC?9prD0PZ8aV0sL#A~4q~?sWro5U{t;u+_Kt(knc^s4>6z4xFh$>rGvE zytoJ+X#$rj8=&W>)Z$wI4$c~&sSwcm_ZyIu13LK~Y5hCMec%aWFyR53Esu9W%(Ja{ zQP@X#e$f}?K-l{CgvluLi;l?ii!LBJP!)hQzjy$m0A>CA8*m37?8yl)?n4ydoL`gx zw}4^m-{-m@&o3?p%}ZdLU+lu1UrcvK_`BmpWiKt~7qOp@11aA@`4?2iLh}r`KL$Qi z2wEb;$_Je34|IPis6+>sM2PwWq#kZIsEvqwelRl>ynTdb^MipL9-RT8Yb*pjIz3?P z<3a9&m0Kjt_nmMAt&{^TUUEfWpFSHT1)A@x0S$nVzdk+oGN@TZjrqP{P+A6;^N8s# zr2aYD`b0!}0EG*y!ZrSfDi|6C^x9^KIb#(|P;_`1};m`gAKu8yeKm{@~GD`r^gTz2IgM zf%(3Z4xln0wZ8~5pKkMcs~~`jD)V`e_AM-rgO>tA`ml`$p;ZB7{j@G<=Kwf6fVZKL zvwr&3QAqHD*H6cS#t<>rPs2+Ql=-sEQ0Tpr7a&cJ4KL<_3M0e-zB&##65liAO8!2)RNfSSJ3ncI^PKrp2uGl;ZqMuudw(4=V91*8Dzb*2)JMY zotSd$#SYMBVa)k4$hLh*mrNBDP-vM4;eTlPi7}oIvL9qOq{~9y`etuX4G)_7u{_8R zTi+bx!NBms3FL#!T5y!^1C=Z|g;Q2R5{|?fghmP!V7DV6s)7~2jalhq0AZygQeg%$6}i`x&Rt10*?%!#XtJ^ zGp_UsN~@si3HSO}TW}i~wAT*WjRl|V^TG`rprD(jRpFYY0dO zq-a2jF8Fu`BELi3gB%~-;PtF{`=6lx3}pNf+Lpt+-V@S)gZ6(wV;JBIyFo`YUGP9% z&uR;jT&V>AhyKJON3+@bmm3P5>nV=&+X$_4&zH9^yrAUE#qoC$?H|Wff4<3-4u3x+ZIj{5h3pUWgInW6koserUzJbKM_d*UA zKjzU5z8Cxd1^C`N@CaLP?T;5{K?-|8-DU8N6fgFI_}zO!$B~03MbCk}JP*`jhh2Kv z4?Vr=2Y5>zDBeJc476(*H1gA3df)|zDFegHERY^hlLR@&L4yrDJV4f#ffnU;x`NK) zec%B)!?+)M!`d;AUeK-e=RG>XhnTS=muXxw!@=WB*>#z zoS(4_<5bICfPSDS!>)b)XfwktSTp_(D8wt@~A23<73 z1JVD(19~Gf#A5KhBH+XUzF7yfu+*m;yh{>n9Qf2=(1>yOUeGnpK9Cz%e7dKCPRaM^ z1YiE-1G-}md}oPI=Os_jZb9fR-7G2|-K`%$V~yaG?c0sO_n(4J`~ja()9~V^A$&9j ze6iSz7uBfeWgzyy*Zz3XZ3xc0DCI4vya5F!uJutMc~JcU%Gh9apauoBOnTt~DxDxJ zj$z|1@cClU891)sLz=+n34?BPMdW;N^Bj5IL7EZS`z;XVAIy!Q5Cr9O(D_8Z7hZs_ zLIag>pj-}JUkAEn7PQ;;#Ea#ic^6QA1|6mm1uE>p1v7j;66Al>@peRg2M!OgMX>$? zs1b^7YbB!o>#POsRYB(e@My06A;3TV0Qejd@MHl>`HpCBfcC$GCh{OvJ*51F*QemJ zANPC$C=Nk4O@h}KfDM4?$K}87+8>af3aAi-6xZOI95llKKDe#+!;6gu$VU!A%!9cH zVjpDh3;z9)5dT5dzc{E5OQR6;pzZ^m*VK6M1*kOW1fR$NOK)&_ockLQ{Y%i81v@XO zNCd430NtSoq91s4JAigyya1gw@!~n;DuW-OWAHi!J-P!pJUT&V8i15I3V`>Z9DykL zfI|s5ZNt+~^Bc(dY9RlC(kH0q>Mi~7qMrw;rQr@Q(!kqX9=uoxvI2a8YUzg;DacB} zMI)%T0gX(6My$Vqi-+Sc^gvobD>OiNwSXrzPCz{d+VBNBTLM%c?Ev2dEyM%5BYg#9 zhwpa&R&X;1abhW`(%k_%)cr*b)Z{538Z;K&dCa5Rb;bV+9j@EET(`q(Sa6R5bU$-8 zNMYyk7mGoa1L!)OPS*u5!a#!H1O1`57DGohL7U40AOR{2x}+~26t|#5S5gtWXS|Sr z=$--FGXWbDh3kF*zVG4Xd5{sH>cInid>0~rLHd)>_BE&>1RbD+HnnGfECcVo1RXAZ z0?Kg;hh{h0952$K-Q4P_DvYw*x4d|#g@Dg*7 z6`&*nZ9jpJHE%uO0l6-VzXfy(EhHmC@6H3?xd=Kg1WlBQzXfzc-%C}{sXf_{))eSE zUQopas>@y+2K5X(kH7d0I^P0xH7@in9WL-Ll1?uUNWyUvc&W<_zBmNbRDldcfsfOF z@dz9%pgZqDC-h7ORctRnr%Hh;KTw?jZe@Y*ym?^`waXtwgAzaV0y=vTA9}+JC|!YX z&G~(7*%OaBwT{#V=47uk$$gJ_*BEai;zwWl3`(BcnLnU0AvBgub|fDi(sgc-5j872XiJ!%A*szGY^990RfqU?o3c~ z7~C@a4_apcS}y>1CP)~IGrU>O`t*uxycKfdYS=l@-~Cw7IM8isO{Y0 z(G9wr$F%{v@pJ~XeKy0RySBrl8+1k2p%PJK&w-;3kz%cQ2?p^@1H@8z@JB z8o3Y$LYk;xw}S5>gt`ILc7(e4g-18^=Ekj{`?oy0r$XA7;0r8Y7=R3IJOawk;O5zm z7gic*%`?v;%=t1zdjgdCq210SfOfV%cvyqh zx2eG5$J+G+HKIfI;i4qjt`ECK~o3p7+7ym$nf z3xb5oh8I&Ic5EQVnc(FA1XK=yLd65NI0ajK4s<>)s4W7nM-cT@;~P-6^gx`)ji^eX z^#VAmn`K;O_%p^$XgB3gY!UA+q!daO{J7u&$t{FX#*x@UicZ z&W@{q2dEX?4LTq#bO-20trux(3=A*Nf=UWd#kzqJUKE3m4gepD0BJm|gw!z)K#>nA zok6$nzK8*>!vlw6E9jcV7d{|<_g)Yibb4Jk_;y94R03{@fQ|w|#MDf%$-Xx{8V`aF zwg>G}cv%c-C~SDK2XrMGsGGYP#DIjr1^(Vi5IxK8WAF7sLkjQyjkj|Nk-&GO}<3#U~3u z)1RPo{XoSr=z6#pS3pGtD5-bCO0XBOt9pBDH@vtCTg?c)6|j3NxX|i6^x~^B$XDQ- z2jLeMfiCj_75&f-wd)FK`@^Ff`6iwh4WQ5iT_gtzc5Tr0O|77&1^9?7P&tj#MFw|u zAr1uJ2-giZ67RkC zWz_x|a(fum|7r*C3Iip&~y3fcLY48Km ze@Bo1bkOiExLt!P4~k##{LzaSAs{8-v1`ya-xn`jKzztq!r)RItQ*$fYJ3Ae`UV#5 zpeO}R>4T~rP&ZrSFVZnT-`x z-x)8afKqAa@fT+gkgV#JjV~4QeV(jY4LydPX; zcDeS$>uAsk;b616Ye8i}!wbGY|Nq1LNT6%)u=PA{yl@A1?ObWj%xt*3t>1tEBB8+-rl#tTNI%j1xe!OJh8A!Lx- z7@!PjMg8IdsJ;g`fWTWc8jpZdHMkeC;>8zfL@xr=8F|5+1{&mr%dF_P`I0=D!?K?brLr=W$e*gbJQnRiN)Z74h89I;=)fPX~^zma5oy%vYhcE2{cOCdHlsJ@X9MZdF926?LT2*8hXQ{@esIh z?+gX?$WMSTnFQab(+Y}N&wn zgIZ{y*5eCvklmm_hu$`=4&p;+U_b>8xHpU?^T6{;CMbb}T4A7|fF{^SpsiG$$6rYO zfCa7q{7z_W+5W_f0MKwkZ|#d0>OcPfe+lX_f`$MgIcdiWr_cZYzXZ)0gSR?BTnlPM zzNmy+wDCK#MIb5cIpf5O=b$73%8&cL!zOV-j)#?$H(qA{1xGQcnD78a`7uzj49gFY zLByg157Q`o@q;TR~m=<1ZXRkqRD2MtBHTUqaev zAiLn}gTUQ9h%ev^0HFRstAF9`IY=`LVLGfn1y!UVvvJP{fyYu|;S=o9_y%-Eg-5rm zfUDsp*UroE(~&`^H+O$a*0oO}(WLUL=1(@^29+X+W=?g{tWU_oQFE0qrI2JpMuj+~EWH8q^KPQj)=a z9R=!teIea08q~w7|XDg)ZwiQhEf@kYrd}c$~e#4`8 zFQ}vRf)Ak&>_(4n*cctiaUR{^F*+Ye2hFD&(uM2>kB0hmPX%=qeY)pDMtUFnbVf_~ zbOsCfbWa62$)|fRs0ZuQ8O`C-DeTedtnflt6zT#*+)B+heslD)`8Du_Wr79?GZvfxX z3-V(YI3<9_%o#uj{(1C*mKK0c?Fa3eUGO3sybl<}2Tc?$KpNVCE|CGvD_wZ03QEBs z<9346FUi1)p z;zcWHmZ=jwUIM?v1k{#*xi7(^GxUc?r|$HMiSebd@odnFnH&5q|3G$unjN5) z>C*Q|E(Z-4f|DX>;S3~wp8#DO^+F#satOLx^Ospa|H3 z6anD2Kd5c82&AO*_={VhJPis8&@~#pAVE;~2K(qZNZ+e>|Np~Asvo?VgV4R=g+E01 z3Svf)A%zF1H8vAu;1^IT0;hcB>KZye()b2+HI+xVtAS5%sDe*#EU0+^itZoa= zjpqa4nHk805vc7CTISRM8Vu?L4YGNF=GPZ^bc6R^9e~^r?z_RK+jWLdx9@@%+K@Qv z@aPPk@bW&$@ZQ=BFHAw>*`QLii`3!>XXmJuV@;3Os5L()b5#-0>GGpzc~X zsEZ4(NnbnxiFZSnJz!^Xb8O*6p4*TK#>Jr;(=cNgU7g_>p4O56VQP+cykU>UI}<~ zf{wceos9~@r9WN}R9_33M1ajL;aBhA(HZ)|qZ70?8g$`j?TZ(OK~V#_TIRxwZD0;) zSClVk6%9C9z1RpA1SOl&6QBqJug3>xxMMF|K}~E>lM=kJ29bne?OC+>FVKLh?+*`6 z)HUZ1Jeq4CFz~m5hUmbh4QS3jGxPzZzX(2dub&S*gZRQD(-$JlcmmSMMX4{K?ORy; z6}~6PiEK>Tk$-*`R_B zG?%3X(hu2s2CXzfYgE<1shTVt<-{NK(zi8C_#hoTmaX_;PaI}yzl}U z4jQEfMQ|rH`Jv9=!tL__olXN8V}q=qgVcv`c?XWz!&u@U)V2e;5#l$nKheq)(Eg?e zpgt@{;(#nDy6{37c~CSMly!S+AG~-ADxo@$zjzAjJb~8=xbAqd0wf3?fWuL6K6s%D zY864$Z+HP};l7*<5&?~Wg65LJ*Uo`5H3)}-S^xpa`3shi5eXMmtw7E<=ne(ltp$$( zaQYx!J+$ltr6W+O1-%^x6z0gm3(N2DvK8c9(861g`X8Wsi%_Ejt{zsl!p#Ty4$;0r z-_HRl4?q<(=t5=4nloWgh=WJ9kzItE9uB?$-2n;@3wU_|F%RNLP^H;h`s0N%=&%DE z=E3jhf;a)xBm^ZVaQC40#6D09{KaEXk^r@HK@9;=W6|gtQj-g`AQ0N#gw_5#JV5u0 zbeHaUu>!PUxzqIr=;A^Ka6t`j8`Q3VnA{05c>`$P5` z@uCH0GE&16)cXdtIzYW|km?4HZpeCQkM7Wh7XnZn;0aUM_GUx~L-Ic){2+k=nGN{x zq8T*g1PK*z27?sFF!iAO*dXdbl2c@^AY0r~6z)Mv;G3qkG%xgQk# zpvE7_KP#Xuz73!j-wRiWp+CS2kvc$zfzl~xX`nU82HZ;nK}9UM*^4}X2N~~18Ds)A z&_NvoowFbZgNLCXfX9iXAp)TFk2kRIfDo68(!#vtpE=Pd-Q_W8NB!nKD6lg3uBNm zz2F8fxRLr8B#yU{+6^%WRQZD|g{|P)`Soc~0D`A$zyrP3U?zVrWQY>v4v4+Uj}Uj< z-|)}|s{#cBXyHOTC{8=U4R83G0`*B>6R0b@jVhu7br`Vo?U5rrQ(54?B{ z8T$io_Jb@KcRldp8blDZ6&2L41^ zfSdsIWVaJCY8XX3Yb&_lNw-B3ry;ONj)%W049yVqzRZb1CthD(h5x4fJr+r=>R63 zz@!V9bOVzfVA2ar`hZD4Fc|Kq3Ybg-lNn$# z3ryyK$viMw049q9K!X83y|RS?3=EFJ|5ZEr7#JpGfUeGY`RxDy{~0l$jc<2AEKm#S zruolHCVl34yL|-2!6ygIKFTtX>dn0f==P#F_?Ty#cX$KrBwsB5+W9 zBSQzo0+sU_{vZ};*f0Y$<@+)Pq;4TdEDFQ|?OS{anrF_q1rl=uiG2aFY(Oj_&|roU zh@}N$fdWTQc1Tp(5nhy@zH&u9d(K>HOkCV*IP{{8=-F(1SN zttZb|3u1x#4;gzwEYSMQjME_25slui(0mS+WVl4x)SU>|Vb3iQ6T^TPY zfmli)u?`T+5X7nju^d6Hl7IjI|DUbOD8mrMz!2oJk&$5^BTpX-;}ymoj2jsldYET0 zGQjSf|36!kQGp?lfgw=7iHTt*BTpX_!yZPPSxgKInS7d<8Q(G~BB_;R6c7-0U{Ka$ zUxW>%DaE&==G7G~-mWzz9Ss2c82*2WB_{hOCn~!lP=U(Pl91M$i zd0w+H?B(U0%))Simvc5B<4s-(28NGd<}Y3YxOEI5KS(hYGB6bKPGw}6!^ruMk?|ZO z=Tt_9>x{+-Weopk%Q6a?2xKz2m@qI@@XTanY+*#WjDg|*e?|@g9%BX>QwE0rvlSU7 zE87-t480tZ}0AvR*BS#cd8e@zCl9(x@E<+XrL)K)LORNk{tep2)85Xm0USef< z%F4Nmjj@@H?-DD+95xVpDI47R|7Y`p9B;%ZqlRRbAS3rTM)}oDj8mBm;KE?Pi8J^x zF!%`6F~n#xFtjpqE@ouxLk;WLVEA$G~uwk@Gbp<26)uyo?-L zyuOU)NcR3`k1@hL0ro>UM)dftf>zNpKGI6e9WBknA!?d1>;XkVl+-A4L%$(E|g_3-Q{DRax zg_P8s#7c$4ycC7hqN4mFg@U5|w9K4TD+SeJE(V0!g2bZYR9uP`bQM5)6jE~wN-7~b zi;|EugDrB`Gqf~P$jmD!Em26yEGaH2N=?j#DE7=NOU%hk!IUg7%Fjzza0h8DuFOkT zD9NX<)8$WMdn13AG;AvrNGFTX^gC^a!fA+0DeH&vlHvnrK~ z!41sLELJGV&sWGvEJ{zc0?XK{l58RuLpg@;f>REuFT0QD7AVM$S9a;ice*cZhCsYL;a$=RtT3eov#X~n4}v0MxaFnv}E zaDXFjL5jigfTUDG0pfbFI3j)^@tT*In+nndaSO683~z%xqySS7b~Lhb1+WOR=izG6 zy=JA5SDKrYS_Fz;a6A?(6r>g@6hQo~VW^{EqzQHtH~^3>DbC1DE76Apj6x>P6b_Pt z8my6$nwD6aQ(~oHpvlD$nwMHpkeXbQnu5;>RtlhmQ;wd>Asz&U0wifGLlU89igi&* zL2zoJUp|NtQfyt6To#g3S9E953t zWagIUDioI%6yz6y{0vgZz@V7z7hGZ-A8%-Al9X7SnH-;)2FbCW$$r7{hK9)*iAC`x zMTwau#h%HouCA^OF!ja|^`Ia~Dow+w9Ne6eVPIfjW?*0doyY(x#6WvanZP9(sDZ`6 zsK~&?n8CovaKMCt0dxi{XkD}dcn3Lz|G|WTq2@CKgMv8&!;;So3I&S zd|_ZHNMm4l0-`e*7=CppSup;~N7*K|ce7 z&Nl{zgeeRRAs~7#14G6)28Mun3=B0OdLaYDgl`NC3QHImmVnf+WMJ3mje+69Y6b?D?+gq98yFaLzB4cwY-eC__|Cu}u#}h6Yv!mIs$AwiOXaf2ZPgMbkO;|5~}1_KiY z#siiNOb%8Ij2CPem;!7W7!TMpFbFs^Fa|g?Ff4FpU^H-HU?^~7U`%jlU=Z+NU=Z+R zVEo|2z!2cez*rE(z;GdmfpI}N1A{^Y1LK4U28IU_42%p>3=A7UIGTZRK|BKkLjnWi zf(!-*g-iy<37HHG4?uJd1A{^?17kuy1H*@W2F48~3=9sX42&B|yEes3+tqhC}tqcqdZ43+xIvE%Rx)>M&x)>NQbTcpr z^e`|w^fNFxOlDx*FpGiV!z>2IhB*uj4f7co7A#_5WLUz$?691Hk&%Hh5R&8(Rs-p!5Z(IJ$jER--Us_P}TqNhA*Fs2UKr=MThw5E~i4fZAUG zbswl40QpD3527A4wgTc`2!!wpLLl^mPza4|7Kr^J3RQeT0xJJPB7_ff*B%`10+}_6 zM?+vV1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ON zU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU z1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz11N1TKAo z>djRc62b~`QqCw|QfM_|Wd_z7&e?cCE4k&=o3Q#&A2g1JqRcG)T z!f&_>p*OsQ(4cc8K;{PAf$$S@p)}N-4@D3@===}>e(9|{;z zOfZGm4Y4|@G!2LCrln~)`Q;!NtRPFjSw(SrYDu1JKynU4!waZO{*!A|K`F>6Z;)9M z zGFOI%2@uDHc%mmmhK3cW?guG>djRU#Fh4_s`1s_Cio~SMGD9PS`1s$%!DDV8eJAWY&JA1$&ZH=*OdjSu9JSyCgV5HI5j`bwG6K*pkgH+ zqzuh6BXE8-Fpf{k&(AS5ijOZTDou?qOUx++MM)8=myP1%i}JyRT6%JdC%Dpyk1sDu zEQrr6NiFgWK#px!S6A1N_+V2gVkj;^2|eTZ_?-Om)S~#L{L;J>&!7Oeq#$o({lUiZ zu9!A}Qw^91F^CU#1fd}B5X1P8cvRmT!(Ez_npQ%BQ!$JwE=f$vNsTYgFDfC;m9DO3 z5I2UzgZyC%3L;R-hgH$Rj`6OBrYV_eX{kl2dC94ebQa(j>=JKi0FD5NNDhXRN(%~T z7jTdQHZ3zJ6?feZs@{rH6I0@I^HV^{1T|)fGQkLxa576$$v46zzaTZwHNZPL3oU?% zvELM2lA-4r6L_jA%1qB7DcLj#pag>5un z0hxiER-9T?l9``JS+Zt8^R#)qODeR0Pjybr$w@6TGLMf>$&XKg3&&?9=B0qL6R5}! zD9c5SI!psB!TOUEb8=h*&b#)DPjfa+NZt)?8 z@xkuII}B?H4+;X1V^IBX7VqjBYyq>$5^R$rR-4jOOX5pXa|`l|5{oM1lS)B_DN3UQ zza{e0*_1PG$*I&@XG{ovzTl^31%H_@LC{(%e*r2@J&?kZ~YrCkRx^L;6zS&T)Kler|4lo~KWep{pxM z4m?&6k33)mYSb_k3!s={2I_U?q*`Vq7RRS0Ca0EwlD|Pbcwk}zL$L%_#ihlm*c4kp z6bF|W8s_AuXC}vkhpC*6Kus}_`*$$H6o9)v(6mNisLBZ9>H}oxEh=^m$^=<_164DT zgC5RMs~?c1+Xbro028vOp~3BJ=o;i5Y!DA}+zD(7Amcs^#V=4K;Ugg?nR%Hd;C2r~ z@dxZmOp|j`6N_B4Kvw)fQ9^K}1m^SxW|-6A!#U2N;fe_i#T^i-;1bJ{)S}$Xyu^~! zGLTI>z~b@A6^Ze%_FjByMRIBZs7(n{Z~&noDK$MaFFrZ3Bsl{la{?g)YSqP;=A~8? zq$Zc7rhsHGAY@bXKx1Q2T{jToX+^22sFpoINP=?%$e7 z$p@#HA0Q5FP=lekfknt6J}oV$v>5Ev4lozg%K&Md0Ol1GW#*Nnf%r4Pd{8e4#9IL6 zfphQ*FsC>*H5(+g0nW<@ad&{ZC8;?%VD14hx4bB`1g!N0h?@%zRFL8eU~Xz|azQ1C zdjrY^wRJ)K2T*=-Y6)lrhB2Ojm4PXqK`=KlGmqf{69ZFjMto{TYI12wYJ5g&B50sS zGm1f%2{hi!V#r`;#ITvskKrm)2t%_t1Cx1jer`cxQ7U}ErWmb9ZWzz7j?onCR%A8M zVjEU*A$Q_YM_<7Gc2{sYahi#l;Xoz>1Ct3T1YJ^d5-T0^Qd~g;-T_7VpprkpJ2?o= z*^bS52mIaMW*h2$(XnqSX9{(XLY~my2 zUS!pMd@L**nwc0Fm(!qPB@iGhV>0hqk748(r00z@9T2O=*#U}9ik zF<@9HI6$5J7SRFk*>{N!((b${0~0x8H~$3VF%{2jPPl40FZdbN3AY#2J`~ z9h~?i4(&4IZwRG=t=de2Xg)x=tGS%OFlZc4DQTxeopU}1UD%)-EMAk$z2 z%LHbHf&_&IMu7v&2_IMu6chwD@F_q*!UQG*0|f2q-i#8VDE|I2afN7&s^x7z8MQj0;du2vB&yXduwQ z7+|1a5MUtifKkDqfl8z(61X^}ts0k8uM3Lw@`U<}y6C?Jqv-~h5m z!N33%Bn?ak4U7xe6%-5{3=#w!KtTd_JIGND%nk+y4IBmsm=!*72!NG4K!QlYp@D4y zn}C9VLIEhC53ng1d|-5Vz_@_%0Mh|x0|SGC0s#ewfCr2Y1_ln`csDQrDKt4_^7~~im7!E-Bv!HwjD~S3{Q1t>f5dH@!KfxZt*A|1AKLN^5 zhVnN+`Q=dl1t`B8$`^2l=-&$E8$kKbq5J?SUrroiegTvp0_9JD^4p;N4N(3DDE|VK ze-Fz40Oc!6K+Fs9fY@IIS`Ao?pMA>pY2 z<*$eGFF^Tkq5Ka}zOocVeSkMaefjV z!f%A~F9bsPm!SND5C~sY2BQB#D1;vi<$s8R@Ml5!3lbpw>rnoML3Vv5cLI6em|6d0m{D$M7|Oo@ z|3!!|442XFvp?n7@|2dQ&0OgA)Li86v`R-8u2PnS*%2&vQn0E-uH-Pdv zl_2^PpnQ8Me*%=>0OenR^7ldc3|SEK?m+nlP(F_`#JmP5UkA$H0Ok8Y`5&PC8Yo{N z8)DvkDBl6fKLO4qs`~y(FfC|LE2T;BRlrNA2F|QcPH-PfjL-`3%{wpYd1C+0( z3Nh~jl%ELYe}M95LirBRdzG%j_|SWsK12BpP`kP%6|;y7eM*O8j$>S0m{$NfSC877-HXi zC|{ri!ru<%8$kK2nh^aBP`;HWME`|yi26tT6p9bX%K>4?z`~)apTnnOq0hDh8 z|{xK-u0m^?0KmZ^3Vn!q6QKN^Q27l| z{(Go=0QCMXbpwe02~d8D0aSk@#Qqsjd4VPf{}hyO0Oh}c@)MwZbwh}G4N!gpl)nMW zZ-Md;K>1Ig{0C4zhY>_SLo>uaS14Zr%I|^l4WRtJP`(3{{~gM2fbxxuA?9s>^7Ekl z3sC+tDE|SJf6W-;e}fi?{d^`6{S2)Tems0S z0m^TM@*UbB=AVP|1E72nGl=>LP<|qmzW~Z#1La?U@-IR82JH~@en9yXpnNHFh=`XTONw}+@Nm;m8>LHQG){C0atcrAePuR!H5 zK>1n@5d91jA^NkRd;=(d3Y6~v<==3Cm=^%$D>_2>1yFvTBgDK7Q2tXW{{fUQ;{=fx zm;|ve0m?Uk^4B;)%yWS9ze42`pnPLzh&%)IUcq8#hiGg7@(xhG zC6pfk7Ef{0mUNOAtiA z!2*c>=}^7{l>Y(BPk{1yf+6Y)pnS7nNO&%Q@-v|F3JW3T&4cm-p!`Qr{sSmqBm`m} z!y<@!KPbNe%HIv;Z-DYOLLuq}7DLpxL-__!{z@p{0m{D}3UOZnlrI_v(f1CP5dQ=$hv+{DmA?SxD@Q@}e}MAipnQQ95cPARd;=)|43zHx zM8mj&Rl%Jji z(a*3BV*cVJh<*bo|07gB0LnK>hRA<_@+*@e`VFA>?;eE88*G4>$CLt*-vH(NK=~J- z{7Fzg!$yeuzfiscl&_Nt(eD7|mqGanQ2vQjhH1k8$kI=c@X^xP`*Eu-vH$= zgYpkR`4^%54^X~BK19F3E{ORaP`(3{KOM?X*awln59K#N`FsTs{R^OcODO*Wl-~j6 z3+#vJ{|)6kK>2xvQ2kK;HYk4sl>Z0H{{ZDD7eUlB9DtbD4dp99`S+oG2Pog97@|G_ z$}fQO8=(9nQ2qoc{|}UZ0m|1bf#_#|-m{$vQ=ohYDE|PIp8(}Qhw%?X+$&rP zF>e8sZvf?Afbvg5`3%r|yZ=D>A5KE_Ta-ccH=Kj;YoYuJQ2tgZ{{WQ#0Lp&=<*SrK z^edc)==X>61EBmID8B&8XRUy!-vH%DK=}`#{MAr?zy*kTU!eR1DBrpgqJIID-wEY! zfby?G`46Ccjw*Z_rA11SF*l%D|QbF@IzPk{1$q5K0-em#``0Lotl<$r+kjani4 z6<$E>>w@wfpnTCbh4XF&NpUm^Cd zf%09T`~y&a1eAXT$}fQOUqJa&p!`2j{vIe_pc~@93sAlal>Y$Aw}A4$K>0pUKF2qR zdlI009Vov9$`66^JD~gwD1Q!=UjyZDfbu6m`A4AqB~bniD1Qf({|3rG1LZUHK-~WT z$`^t1S-wNurvc^bK>0RMz5|pW0Of~3`6*C-29#d`<<~&@Jy8Ab46GR@g+?t<}fuR68|LnuSzyRVOFoD=t z0_6ul=d1TY`5&P2EQ}!a4GaO$_OmmTp8y?Ss)h15K*!hDL-`HR`6AGoO@77(h63n( z6AKg6yaI^*`cS?Clpg@)2SDeu3ZeW9Q1hli`3Io$A^V|xgVzxA*q9;aH$dx~WGH_F zw0v3tI0zl)ifwS0Xlzn4aSGMPn;E^{sVM=DhSG7-~+M08_F+u1>s+W z@&!&o_*rZa{STn+p#xAp19bfJKa{TkKqVxhX)Y(eNaBb zeF$HT6Cy9L6T(k}@*SYb6^MKZ7exI5X#FnA4dFXL`&-RWegJel@(q-~06O2| z&BMUJ&)LB60-7G{q5J?Se+!7u*1)g_n%-YP`8`m+EHB7D0njD^aQZg{^BEW(K-WK* z^Mc(8O4eXC?hrmGtAP3KX#90({HtjE_h@_$KCt<4^K8-hMQHrxX#Bfqdh zQ_=WW(D>W}sQR7I_%UewA~gOiH2yX;{v|X%lOU>nVrYCVG`IH@$Jy~GE58%vP=vNa!d>i@=Od2pBWh#zA!Q{dl_`T9W^Rk%8eSBLl-PMh1r8j0_Ba85tPCI$u`CI$vx zCI$vRP+i5uz#zcHz#z!Pz#zoLz@Wp#0NxWN%*4PT!omgCY|H!yiTl20bPQ24f}$1`{R*1`8$z21`gRHZU+SfUz|b1A`3{1A{FS z1A{jc1A{LU1A`yb-Z&-(hS9JmJ?s@2;^U(Xsk6@wWD+s^>f+<0jHt7X4P+AKo9aL( z(V^{kBV}U;7VSiCAi<&&%T68SO(Y;4kUe??PjJGg6m|0w9+l`jpKvRM?y#Cg~Qy&RvR+j|zeB0wi+R9f}@e_w<1@!M7fg zU=dso@fKm8DH0DpZzMh*^(Z4y974MgpaPQQLyVC0L(kK}dVCQUW!Mfb0x83OWD!&b z^U!UG1PO;2fzI0|Srh1}9g;PHP8}ju6XcvEBwa)vkOV)-n{=(nXLysP8*ywm>Dp0_ z>?U11_*^K`wSiAnLTH1gT=+>)7&71^pb(QK%kx5h`4U2wW@tGBKI$$$J}L!t$as8w6zE)W5LKQF z3Z1<2T(r}}<3Z;`V?E{zDuaB!7gPxSU@xdJ;zTc~0NPPrP*KPkUh(nR4k|}Eqa1vs z7m5hv)N-&8;ff%53xG;`Jhh!XZH9}k^>ud-*A}b3NAF$)h z38uBY64x@4G$fb#f)2n$8A@_>D=Tw_ngbb8gSGXrG>R+>N{ch%lM<7&U4y()9E(Sj zX=-jkNhOLEhQtL5w7db`CXkmN4^Cn5GwHw{M|Cis<|2y2gAL=sx}gmfn9~WhZB3v@ z)`Q}fM6H<>uHdZZV`vob9~@ksSm2pgVrW(Zat4Z+u@NLxQ9XtwCcvllfn0*B5>F7| z&_T%8aBXN_#$yw5KoRXcSP=Q4>cHZ4xJon^VNr_PC4{_5qGK!}0FCO}hgv5S(Ch}CMGnwLVBMram{LW>qW zv5!Lsme@g4No=72Z3m;*h$Iy$F#iy1CyrW}NIRjrp73P4o4-+z=Hf@&;=AGX$ASko}kfm#DzYt$R#szZZs*b%mdvWM5EW?^Y+d_hT(r+IvQv74ulYk*rO zlP%}FguEs8Hr%gjqm z^$Z4`P#+Nz4>{jBJwHDszNjoQC%z~(4RRp{vQO~3#=IysClz#~5Tt1YDPaxqYC+Fx zcojPv(bu;=CZLuk=xqAT09eqwy1M#~y?bZ9M-SK?E1Qgc1w!Q+!@;OdiP;OgoO zaZMT64kRNG?f@lXgiG)_#S|8@Nao;niW^d7`D7ZxofB*lkKr1k0@gGwv#1!>-iIV= z+_uAf1P=()`1tfxRNVx!1hkTc6&`rAglSP~acT)D_alW3QNA)OPEF27YnkBo7S=$; z;x!*j_+TKYm!`sw5at05Je5*nNz16DvG(AU+E=jt@3QHXAAns|7r1=LM=6hUo-)G<(XM8|wV zK}iv+6~t;aEdXDZhhi;eYBhkgCsp(`p*#uK7P8XX& zt~7u+*gHAcG#=b*h7E`i9ZIR777#RqA&J4qI5#uTGZ!OUKm!7&i;Ob!kX#cKYzhiU z^Y|dt+7)U#Qnt#?B`RCx=DLEjRW53_BHE+rNu{|3&}JUgD@5x}MM{Q{Kq6Xe0j9M$ zL(n+C6q*9T5sE7aiM882J|1Fw4pNywaHI@hvU>6*{qr%q%^%BqtxW=Z0{+v!Sc6U$8;E zX?%QMVhJ?&LE{weLuVtLiik@sps>tM%ubEZO(`xZ0#%fdRDdfilTpJ9o=nhF5lla! zIUy5p4-%!Oft!g%4iP-bWxgQ>@geb^pn+vjYC|1vMs=p4aeO?|B(W!!Q6kIuc*rC| z0ZNGu8~MVb1JZ(oUZ@qHpO+e+SOPM`(<{gubbUmbOM!m~aL~mhTSO^Qk0lioR|!{rv)@88Eg!#Rv~HD z&{K00U`0hM#zzb=(K@j5l^qt7)w`;^q@i;6(HRJXCqh8y<(6i3^aU* z32V@>6IyVCvXOaaUP)?tQDRO!STZrM#4`zeBa|zS$UwSxH_H_{0$p9p0>vy26I8u8@iXB@K`s!0^#dXqkq`1W=e3r6%X+=7I*oQKAI>I=C#* zU<69oxw<+Vy5^#_(GbZIR21MzjYe2fqaiVt!V@52?^z@#79=KTqRp~FdV83SUJ}wG zV$FS!H!M3sokK*?jWw?un&g${rWR!;$LD0`g08L4aRv2RQPKiYWfJJxarjNr1ab(v z<5A)l;YpP0j@a@XHA_H42T}*+A`iGhMyW{36Gos__?bz`1qJcwfd>69LvD0@N-=G=p40 zgO{KIMf71*VyXZOXqB7_F55{iuF&!wG^7!3gEYTE^*C}3Kuic>qyT8>VodbD`|;IUe4%_!Wg1OI0uWLK#>d*Hl%a_8)OJd!Q=|5FCin@ z!N!6u@b&Vpu6ZTJMWD_l=vq*4OA>tTaIjH4sKpJse;J~%xX9Qr zvpBw_D6=dxF(;=Id_^*(=?T)1nUs_23BIlwqTIC%I`IT*j0RhR7C8h3TcWhzO+eT3 zdIo@souCl-z%;aQ!WYOU@$reUK+a1ohb*Om&P?FZ2U@|MnOByWlbHgFp2VCS_^sE) z&{!gDxv?RV<;nSZC7J1^`K866fGA1K%u6kD4e&0544ns?LcB}ZP?MCzl0>KzAn6=F z%a=vW)E?@50Wsw^yr~Saj;Qu0bR{WrNkU}13~}{4xc&;rf|MfAfFa6q^hOE^?gnM{ zlvK!d+R&cAYXD^Mgkn>0=P(0TSCj=1#8mUmeqy0YEX)z!!_9_JXB329?oP+MGGkq1gZi}sA-!J}QqpxQCW8~A!A>t^R|eE6W(xDc*Yz|u#7nnlkBhuD10D-`1Fh2An=G7*)ane z!$E1VfTv-~2$gtPqYkM|gM}y32pJ?lfL1pVGfDu5T1gx5}_(V zEijDk7Ss{g(kN;+ff|Cd_CPfOYAmjN0yT_;AV!aA(oMjq_hCk0Yj!~0kLoE%PC=#JT!O?L&HyIp17gReprMOq9_}K6n5r9;++jl~ zkfqls!w)3XASR@aR)Je-pyG|X<5l2hU9e@mt1Dyxim34_gmR?uD&zQIM-U1Mc7zPz zKqA@)I$i~h4p28B1in-gT3!$n^u&x_LG1vA60~?jbaKFl#E>$Ig~u@BMzhR7dzFIC zAb~-=Pw|XuL7ha**cNmU4H5?=Rao#QEg5>r8S8?3$`xf$1T^O#5NrhPe?o(gB#)rC zK*;b9sHg)EE|n&iz{kK)*T<6NBwXg49KM)GF0c**R(U5?pEIf@$tOlX9Dj`V= zR*Yd;?}4_;5WO8uSO;kC32B8FXctOueja!ajVrq0*t~+x21B$~B`8uYK%0)z5=(PR z;xqFyOX5os(;>5k=uJ&xEkSQ^kzxs=LyK1zD1NZDoJg9;M6EQkkUB!nMxecHhS)*| zd$P?!j}bfx1HH6G8y3Y9ZKUhKRw@&=2Wwe{JpK>!6*Rk{1|X!Jg`P6eY$ZV_w&aFS zJJr)RKFcUc<2W0_sNo5Up#^|ae-nBG0PAr3<+}E zOC&4+K=u-7lmp4PkbI1P6#%k!ymL%MEd@X}4Xb0&5*n#l3o#2$aB3gfDcEuX_8OhU z>X%BB{K#%aTE0MdrXN`&Hcz5fd4yVYs3strjnx0aQsiQcZzF5Pnhc1Y@g{5#dS4dD zWG%@F4LUhQ#N0PQH)2m|=u_JSjlt1U05vKxR)7#R45OEfBixWGD14~{Z^=Q)>@>1R zV2O~ZDQXmrq|H+!YsH#+QF9ff%EZ}lK{El_a3l|5%TPI6(5%TUlH7544r@L624 z0|cXjfSE+Cf`sU7U>F|{K2RgG1hi`hbxa-9v@I`6ECBBi@lh(SEc{t^?& z5q`+2ItS!Z@HXurZ{*W)P)>S7*5DT$Z)6%DUzA!>T9g-GlA2qPUzAu>3C%H}UGLy& zTD0S#vD%y%?22gnLPH7p%s5i4g&rpdnl4A0rX<@J@WwqX;h_XPYE*;Hb4^8A8HLri zpmpq^9p%&tXZVqlkhV26{0LFF9F)2jbodC$Y95Ni97`+J$H*8* zsfOPzKA=--F}AS9m*#DRJ?-< z3UUq$Hja071s@g++Q*!O^PFH5yG`Tci&IO`qdzwQB`xBtWU%=KUa>&RYgoea!v+GRXW%ZRKp<^Fmw#Y2=kx})N%;Cq&gY3 zPl!=3k(4&EpE{1>MyRFW_5t?J7H9=3a=}VY8pKxPqc{Un4!Y)oB8WI=kW#**_rgih zi=*97PAH(ZQ6S|rY7!v3Re~?^VQGn=+G-geUr>~v3_5rjIp;&t9`P}Pr{REh$f%Eb zVoF(JUUDjE#Vo#38+6=ePzd<=ep65f8TmLs&?qcs?-VJe`dFl77MBod4al1qR$%S_ z27@;uAlqXGxiy*y&xFLI9?Aht17=03WvNBQso;J-$d9OXA*ct9*4M|>0rCKz7yvbL zK!-mex!WQ>J~OW@wWtJijDHg9q-rpzG2?9L3fpf1aVWGgfl~Zp*bAg27L*nbcq|Vzyoa(Er?|*GvpBvuF&C0bjG(s)fcIJ>ZWI8IK*09e7+Ij4 z4U?Q-P#K?CT%4H>K9j~X*c`qu$29=Nft=zW06Og4DL&W&vb6;2RnX#u(mY(FFRqBA zVsNNO%}Hp!D=s47R8U(A;w#qxP+UM<|H=(30S69Da!+1=WfI?9(uy9 zhoC!=je+39=}E7)k%3s4C89An@X zOB55d7-R@ae~w@V0qKD5w1Y$!zDgQxovx2%d_2vnchJz1Sy5tMN`7v9Vlt@70qSUfM?n^^s@U=>?qxcBA7N37X zLsY1yA-7k+H6vP1NlYB*2ALt~q`vr~#Ju#>V#+*k06OhEJwHA@IR#WEgv19Mf)G-Y z!r9FRWgUF8Q{b+qyR&nAY6a+w#P|}>X^4gl=psfKBIXz(hGrN-My41-#+Zg18)K@% zG|L#%Mq>*Mjiv?|LS~pY8X8z)C^Iy~^rRscKN%XCVCu!CYW(#jKzJ% z=9n>VY=OmI3oPbYV1|LQC1zNeU3DFb+J-d@6P0l20G5}X`=oh_!yJ;X#AzThsg8w#7 Ski)^3JQoyYmL-;?G5`Q4*EXvF literal 0 HcmV?d00001 -- GitLab From d86338f7802df57314b9d923e191e41fd2b74002 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Thu, 22 Sep 2022 13:23:32 +0200 Subject: [PATCH 108/479] add network sim binary for Linux --- scripts/tools/Linux/networkSimulator_g192 | Bin 0 -> 77160 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 scripts/tools/Linux/networkSimulator_g192 diff --git a/scripts/tools/Linux/networkSimulator_g192 b/scripts/tools/Linux/networkSimulator_g192 new file mode 100755 index 0000000000000000000000000000000000000000..0ceabd4306f7c02a39468c530a1b2a2260db0cee GIT binary patch literal 77160 zcmb<-^>JfjWMqH=W(GS35O0AnM8p9?F=(iQL?Ijp1`7sW1_uU31_cH-1_lNe1_lP0 zI&}I56GRV;=74Y+n4$V4Knw;326S2mst!iOYzNUG`=HVo)B`?<5R7IJfbc>3SV2rE zA0`f?T~k4l3=A+DCJxdEwyyyq&wxfx(1D1k$usN^>B7a~HDjfm!cL9`!=>r89 zNZ$>pz8g?|Fj@elfPsMlM#I7rkE$;>OQ(5J!WC&Iu0PWK@7`yVOC`PDoVa`L;>bYEyZ&&Oe}1rGIxaHwC7!#ycD z%rU|tZjVE}28a19IMl1+5I=##{oy#&>*5gS#vy(Uhxt)B#6js7lrP{33d(qfL;YbK z;Q-15*vtVHx7fsEakzgy4)ebcs^vvRt)S?hy=bZe!)R4raoK%P$ zcA2Q)5+j57_>zpG{POsm)V%bPjQG@|qWq!&?_`GfsNfRwynL`ELwuB9aAr}lYfvVL z=^b2RnUq+ZnH-;)U+kG2Tw-XLoRL@*Us9BqSyJqo?CP3amgHK-5FeG26Hu1R5FeFS zo*M+x1vM|e1Y}HbiJ=M9n6%=OqSVA(tY$eIx(0ZIEHRGv%rB1jFG$VH%}+@MnE)~p zY61?20~zd^)Vvg! zTSD{7GxJj7gHnr2b5o&;(=tKss!C4uSG{fLbLt0|OVs9B3uT$iT`_3YAY_U|=ZxF`bElfsd3`o3sKt67$}iEJ!~v?6Z^6xHW|#z(1NllMGm{sT+n+(jwoIJH2CDTx zK>4LonVbv^OboxF`eE%nSozQZs`MEc7*0UT6PUOIRGb5?Jc03V><8J-0B&D{>UIc^ zf#Cs?ILs`N+zTXeDUbjZe?StKg^GcwA4uYIAOR>AfVu}%?ny$$KoqPz1hsdN%S~8$ z2ohHYDTHCD`Jm<;$SjyJ2a-56$iPwpNaCP24_FY?FF+CpwU1!p3P|E0yJ6xQNaCRO z5lq|wNgU)Rn79R!I44XH)Sp2T=Ry+qKoaLh5)VKU=Rp#WKoaLg5>G%9hjv-OvKdI? z{9q9XQGg^4s$(Id3=9=W;({Hh_f<|7=SmKg)Xf74Uz7#KeNS3SLsfq`G1 z0i-?yWa_7v5C8xFKLN}KW$;fgFT(ktjQ#25K{y|jp+CLc2183D4=VURy-bAjK^gbc%Ro3Elwm);bcFLk8THdkLpUFlK|j4z zg!4fe^V3T~I3JWDKfPpx^FbN$)60+lVEzSVz)vq9!ug<#_vz(DI3JYZKD|5$=YulZ zrY46pinT#&<>I+oJJJk@<#i zJv%SPd2~MVXnyh`AjH-1fZ<7xUfb_%3=IE8rPnYpd`Z*emxm0fc=Xyju3=#C=w-D6 zQI_~pSPScjpsN3X3QNMWxj7l_jQ=h6AWMue;?d1|7HR;;{|9OO@-7SvF#VwX-(Y)pH3I`fsdlJGvuzWI>CySLgvX=XcG+qM zh8LB8|NnoH^8f$;W2{?OGcYj59_E)v(f_ji|Ns9WgF-zzpL%rG{_yB5{ov8<`lDOG zqucdEH-qIN{z(U755trMdo;cQ_2)f0_n!Fs|G!7))&qb4|4;GgW>M8(U|{g*bbVoX zz@xhtEZN)o;P3zcyFf*TN9Q?@&f_mC|NZ~(0TK3K1r4Nt1Xce2|KD<;B*deel@sLG z?x_&nysxuBCW18X02O;LPXGP?e>aHrayA14LwDTU%&$D{Ka z$lNu&pvagCQU$XUB60c8|NkD{0v^q;Bs{u>JQy#4RQrKlQM%FtX2$Us3waqBS`L)x zcyzNCtYTpBfIF-S&0$6`hrMRq4Jwe~)*XK#{^$Sy&Kn-xp)XQAv_-&yRHE@(5fq*t zorjSWzWWUd&Kn@7ID=xX5A4X;A1C2q@6r6m!K1VGghyxT0pt+>0Sa-~6CS;yDqwek zJs%I!-syV7qq+75Ln+7$YgdB25PHI+mzN2w4iT_LfBydm2l2}eMzEqA9=)#DJUTD# z0{Lbis7?X7D;s2H>jC~L2U-r4hPYI$_CT7#_WJh)3A$)WaOdyl`UhuQa90_^W@*8|XGJDHn-;bjFVqjZPTV2|cE9v+>wJ3Kl|Hy|ema0YbU;L$6}47LlL90GoUQWtV^n714p(;GZ` zc^_wh0u&Jz$-iL90W?%|-1Q1LTsj#U7`j8Rcyzn&fVy-cH%K2SFhJNrfPcFK2mkg1 z%?J28T~By)hk{bk33w_3wLCzf*$Q$>H%Le54GhVQU;qE79d|t>#sJlS2(AQ{3SFW4 z`L{c;@NYlRdHluVAOHWSb-EsbYB_?TMF^^;+kvC=_=_h${{QcEJp)yJ2Cf?Bz$ZWd z|3B_}0pw|@nhO|e4*UcaA)pL^lvX`@SxwSFL2~@X0*L$rk8Vh?q;fPGgywbju*mU=kH?y=k->QT2Kkx%_Hl3b_~b0j64;9xxdVk1O}7gR|wk`g(nlD_Z%|L^|)|NsA&pveZ0ZfF=daCmgK zdVoR@E+XL3*&2W%BH_{58i69B;L+KdfF#mA;B16B*t!BE24ycfh^D%11mX02Y#z|cJv#P{gsT?Y;gL=4$| zgZYP@1ys+r7J!`7dHjVaD~LN4%y03fV6Z&yxuG726hv;fXn|1N`$Q$AV)Os1yKy8`X1e^+ZTb- z{8VsQ_3}!BH6T1u`4#2~b%?fQo}o*9Xn5Ag3^PPX)Q78yv}u7r-qJ zaLjZbe<24}dC;Tt#x8JK_x+-fs=uuo1wGS1)NGiBtwN;cPq#f zU~S*Gf)WV-`c@Ftc?i{+Amt!uUhwD*z2E^3JFubeIT#pTvmbZ80Ll;^-Jq(~fg|nU z3ugZ9AG%#HICdWBuD!v(-SrCp_7hMac0=R#4M&)3=RwELA0EA?6H`FN!*OsrezErR z|NkD%M+6{lYd*k;WhqwP3+bb#Q2+Td`(aW0r1(c`{d34_M=sf@88c4i*D!3p3>jVeo8+fi_2j{BSA;()y zpb74^diPWi8{!kNa#oOMx*0%e*yq##|IJ{vjNNk)%8tL-$%gQ7>0WS)8|Jn!kQ6xW z9)A%6&a%+7a{NU+3j+gsOE>7XH@u|_$vC2HpqNJpf-^rCD~cf8NFGqh(g|*5>VNwG z|3%eDP_2Mm3n6t`J|KE2$fDqC#`OoN;Ilkb%m(V!yk-IQaEMS|i(Ps18v(El-L5}C z;rNA#fnmbQ!{G54a5oA~egy&fBme*Z$EUxF8Nc~@1mp>s51LTNXa5%B%m>9O*!xJm zNJ!v+AQ<@Fu0N2X0~UUeuIL9)7>k3_UFRWCyg?hE5^NZuV&KtPdjq*C4Cxtx)6ZS7 z0j{9FEtua3;lJ?c4gKKJ>-qv}DjPU^ptieN-XpiWJy2cu!=pQZ1MIAB2LTVuLnVd~ zjt5jQ^aHf(`x;~+D8+O;aCr0vfV$T|JURn7UMqn$bRK^Jw!8D7M|UX5l|P{R9N5wP z2?}1YIWT)UJUTCUXr2HM8+0D>*s*#Q1bFbTKZF#jAbpS!{o&Eg0k);{0;q?>c){b~ z17;7#6S26{a1prdfu#2~4m20RLImWh&f_m;;FIr$`n((AY9Ih}|sL7aqL<97yIpf<)8@5416j71+#!3_^B>zVPS< z70kz990lnHr2${$l97!QTn@n#4k#kQ6$!j1291$OfIREbS^5BM7$h;g0Cmejg|!W+ z?Fp)1o`L)evcdI*M>n_xc>ygx?tx@L?tqlrpr*qMaJg*&)4K|!qVq7={LbSqUW2&@ zA>3O~Q`ERX%|eK8u7HM3x=~s&M8ydc57-QhFid$tUYu+Ky8|j4N8)N=<7 zbGfbn1pz-Oaymi7ZlN1IdR-Sl^N|Zg_yR;rC~V}c5F&g7GKLBo>T#U`G9?(4OhBRH z3aXP?JV31h*Bc&;pwzSinv@oSIv~egAAq_oU}HOvzwl;)^&l32jA;NF-)#UMZ~_l3 z-UNvngG4)BA9ysoJ^+<-V0R0m>U0CC0gX9@KJe%+J>k&_*7*|>2B0jo!lOHMg-3Ug zfQNSI0gr>fSUkFY4?tbk4IbP91rumw4`M}k=mSu00goDjidC@ZZg?<)nsO^VIs*hI zfHF#ohc;vap@j9t)TgjUK0F`8+gzYBxbyf6P|8KAwV+ww<2Wc#7{Ep2aR<=61B?xt zHe{H9TB1)tF1aBo4UtTnYdY;?2W4LWcS%nV`x zyx4-(2T;E`L8LLvr-$FJa)GlShTTN_?HI%WTzo!3xgPdkP+Q4&o8 z*J7YC>kFXn1>*tGG#RLy0L{R?JWP|8q zv{(YwDBxl#3{|HxNDW4@bPW<9n8i}(MUR6&nLTzP^@J`Wl~emcGlt;e97{O`Dx;CR zMNt3ZDX^YAfE8Hqv;is;Anm&kkS_2Kk4^#P;s;VhU^K$O9ns@2+&~`d7C>r0K}0a? z>Wl~I^&4nT2s}mT(HXh}y?*NrJ>b#ndIDNG$#H?_H`ykk*odI1{kk|3voxyN55gJKCbKPc(Z9l8S?=-nU-!F{?2 zZU%(MUa2_T#~MfA<|4=>@W2HmQZRD#DbScQ*kQ=6PZeIY zvJ#>jBT7NV0%}`W2Q)8@rL8jO9(r67(N@{-k5oc@0fiFbw#r_R129X7PY_}B5<;F2 z)V6TNC?Ph3vnZ$@zu?i!1DZ7jRkmo2l?5P0XpNOa-~tLX+zD>1=z`40C>0(+90P8w zfZE*PQlSG?=Vy=_j8b74NEB3_Kyo;8V}%Kv9wAE+m_TMhl-%&>#B8keiXeFj@fRn-i5}FcdEn7`Y(J>|^rHP0XgKn%a zcQA)XC!=@hZjfS2*9S#H9#DtKf*fM$`k;&tCc@3bzyKaaetVSRKf!lZaXMtV9m)VP;)Y90pp9k&p`PDEhl?)I}3PpI)Zv+DCrkuGBNoz0bB*c zGoANK{Q1@PIwZEqDk8oCO8IT#WoW>p4gVdVYQU;{SgSl>B-f)OJP5uSYp? z zN9PIfT*e9TTn40f0xFtd?bIAlng9((fLE=7CLut*deAzV0FKvoptuK>U7c4zDGX#F zsK$Q)ttXN=85mx~U4<-^^yobNV$xMm_5sf$O~3m8KeP%283JubLP8c)fWc=1K*L37 zt_1ffet^d!A;gBF^Bb%9iaoPaEQ8+|MuS_ps)K*TFXSY!49KfxBYK=7i z;NzbMT3#pP0g9AvUr-zH2DF7gkAs2X-WQ~=&l8= zGP~f>4IbRR;o14q6Vd|^0+mGFs67C?%b=)5&gh_e2$Uy0x*a%B!!H81%o5ax^62#4 z;M3{40y7*z{UF$?y?vml!|X1BhW0?K8bQSz*hf1dX&Kbcdf;L0x}na&qq}y6N4M_= zNPnpmBy+;E6FjpFUX6k(4eA%&fJ%G*|NsBBfk(G5XiyH+X#(p7rDGpZUkV`()&vqa z0f|Eb6XtMMki$W}FmUe=)--w#S}_M2eXQN#(H(lgqZ{I`|D`Mbmu^4=^cs+P%|}30 z25M+uxQHIwpmd3~e#-vz|39qpa%?|n5#9^A2mk+fNMCn(70%3yNM-tpzDY zsi{;!4ne7@gn4n*RJCANfD$kwL?BHv%swYkElZsXl(sCHNN!n1ff~-_)^grFglaix z&kIz|AZJ(DIskChcERJ|1168}H$WpA;BFX7VD*E_LvR8^o%s5H4is33kO!qja7oR8 zl>XqgJV*xAs{?f$I*-3N0d5jw)DPga3>hW_uT_GUgL+_ZBB@3lXT;I$j>WGFJPZNv z(!v`0l3-uKtpa(fv-AVr2D9r6@boBXJOn;lcBY<4v$?BflyY^BJsX1 zP>tGIy5nUdhyh+yeF$TuwU>2y8EEw7m`CUJ7cpl+tqxaE-FyMGSxnKRH*|+buPOq~a^w}JJ=)zc`60b9g(LlQkSy|eLvN768&7Mwjm>t`^AV}C#! zFHxt#D<)t%LB&6)>IN@~_vj48Qe}hY=3tX>@?SywPWW57LDN>ft~=m^F`^)WPS+DJ zK?~m@)iQX@6E*{v$_N@ak&54`x+zyb?7@#+o%^jNePpl10DzFZw2kbd(DV3A;)qGRQ-V}9#}xbM!0a6v!LZg zX!8b)CqSEnJbF<|+tZ-F8{%f|nkSA)u%Q6@xFpGx?Blsuv#J5+2|N=kXUd zTnr4Joku)+UBN>jx?BtlKAq1zI*_^llK1PG~GblYlZPfu=14^&pZv1j^TNh+2)c0Up6F_AL zcorSht^@@D*j5LKt)Q(^Cm_vXkki4#KTM!jQm5+$ACNWOwV+WakTOuiAJnql;oEr- z+9H;O45H2O&<3XiaHwg6x+Di7dO=gyrJ&q)0ioyV-~az#vrNE}@VSp;N%){GST{fk zAKZ`a^gRIWoWQz8TS3Ezo#2_84;bY+Xh0FP-OTle$8pyepuM%=5oz#Uj50(>Js1H*)ue4vE~-L4%T)~*8eZcqbffMX0YK>riu zgHG26Py=Upbc4nlLH3q{?L`=PNq~XjC8$`1lz^_F)V2Uzs~vYe0nJa)?L4j%Jgi+i z!1-wcXfg|_^9owa0qz5BfYvUOpyUhk4QPP{hz-t9;N|~kK}(-OMRzIG#o&~^39JY- zK?|Ds0%cfm%7(1lbG-o0PaWvCUhwD!FO7%QN{b=uyd*#c{vEJ2p!@_W|G`{PegX#o zba93NIMabV9SZXJ3aINpfXo4BZr2GO+Mv!0C=WDvbk~Ax1oaj{hHUU?e#7y4@xN38MbA=Dqq+GAs7u!2p$)3?j)T(*vbCWz zJi1Fkt7s0O>rRL2#;AC@55w{wye2?zVV@ENrMlxUA_PHQ1El&1G6Dl`LO>cD$Sv%B z=&C_g3!-g`quuuwT^H6_o*keq4gdfDX9rhz;L)bzFC>LP&UF2Nw%XVS+)D;+bpy4a zpu0m^UrauPQv1QiDG)UnSOjhnk~l_V3$&c}_zTbqa1Tq@5B$>)@NYW+YUhDBQ%ZTj z%-{#fma)FLdGP=L7bOQl!R`uK1_|0PcMzqOg{?B~1P|nZ3ojo*NKFiCgmxZ(VGE8R z(4g=OP>R+Ab3v)&f=A~;pUy`fo%dd7g9OoQX;>QrxikXx<95JX(V)&7G<^L)CV&cE z)YaT?&Vzh{5x&L;i3(qsMU;duWF_`0E@=2x9{B(Ng~$Prt1ue2$6r(*ASIwH1W*Dx z6O?bk0~6qYjskPh0y-Qd2n%TBJcXM6K@GCb<1aRXRD-+Bpm7$^GA&RHu0<9N;6SQW zFeZqg=JX=#0F@D72mU$#|9>}wM>43^122R}HVN7h_2>+Jfz%lVH3Bh4<~cxf1+ej> z<1c=KTa@5Y=&9&S5kaPc`itER9=!peacii*koO)S)F4GWR1hHoa)}1ov?;jZxfxsw z!jt=?ay|kzYS_g;i=(>&YN~*%XlS>@8tfxb{R{5TZh*F;J@`Rg zt&Vbcpv zJFYKY=YtCe(DERV%RudIa5n+8ngKRu4^A84eunP@k6w7w{uLi6eoNFKYpFrws36_P zUwD9q_(5Y<+O8iwnqM%2D%01XEj1rNERW{e7Yy}X&{-sufC%4>77!%*X(u>E5$C5L zpp*fgQvweUz?Q*AK>Wl7+G+-J?Q0cu-(`Wu+|hi8$4||>(EJ1{ED+5VXaoy@5(~H| z0cr3+a}YNlS|p=t?(}`|+6J_U!2@gzI9^3TD=k1}0eE%|wh?LCJ5cTcci&;-FAkt) zO>gKAq>^ddBk*kO3-EkW=`s&U@E|Xo@_UD+mIDo;!B?%}nsEX3TtO!?xITDY2{ss9 zc7UCn^#1>UQ2)OhWnjbSJ!r)2um`HB8CdifV&25{glFeT&&~@zoex2)OFECgSO95H zfaX3xsTDR*5&#lLT_$(zA=tkU!2acLO$B8MR254=DnKW3Kn7i4Gc5Js&L!x?6wu5M zXygE93pk)bH93l38bHC{c?{aM0=W#-_dNlgivb<70Co8@0dNt8IveA(<3DI?YyiqI zh)44qP^hEyWqmqbQPvEC$|BHW8*r$9cnKcx0+k_{Beyp^Aakwz5^Kmn#zY%c%Xr}PTvbYovtT*I(-kkTm>2t zg_J>{NoH7ySoa?^(pusL8?EaD+j9KHY%mR~&B5bEkFTI;DE+9jn4!cB$0s(I^OWGcD=yg!Uf_%8$G*0V++l>7bL(1D`*7(qLK!k-Ub@V z1W#E&)t?4$O+WtP2AGCNKncj0&f_oEfQ4~I1Z0vQmfxn|1v^^KquCW~J!tq3oL`_d z7^n^SIu$mwE5ypc@G=~htvipu2m@OMcflv{p7G-^w7|l+TmUL_tX(gZ@Ops!{E{8C zcMv=Rh#Ym$1DCKSbq`RXV(ogO4m8Pf0z8Nn?a^F&f}z9@GGXounv91{%jkldGo7H8 zA!sfDCCRJ=9a{j&GN6VcEX%O)F)+LY9Tx^lZ?CJM)(O-{cr@2uU?}m1S^`>D0o$o| z0@SL2Sn>jNXbhy)0Zx}8kjCE)&|D38^(177?Hy>c88mNj<25MWLDI+uc6~>wsd4tm zp(7shpvDfkP1bq*g(1jB%pQ3ZxbKV6BVV`?ROrD=De(9P=E_yrXoWnYBL;0iBN{`X z{#_>#BOdmk`k{>V#q$mS|G#M304njpBOXkkg89=16ps@a@krrC>4=Ad+F_vT8&oPB zf8hq^qIJZbL4vT3IIL)ex7wk8XyZj`xnXodq49x|Ji&3U4Vt6`s_2wBi}vkNFa6v$8-)KUDDISR`{Ik+p;L7PJ{hs;r&%K>(7 z=nqU~=R|0 zMF3UF=Fu6(0a54%+5rP@mK4DiUVs~kq7c;AM`=d+uLYGT@T}EYi#*7K5~Q%x7QnHR z#|oZ{#vA%8uAzlK+!kbWQM*O+uOd4KPYi&)oA(w+D-7-~JSKo!6*_PeaKs_#_^u96 zYpt`k!=tmb!J~6(1?B->9=)Lr9=)y|&^d*-SHU$kk4JYaNbyTmP+bdF0_Hfl^TVSn=`^ zD4=`6?w9~g1z{l1fD}PZ>U5p)G88l{gDM7|oCZhFD^T=wha!hk5NN*_c#9KKC{=NxD@)AWjfoP=4OL2DyK6R^|wflsIF4WCZm3oqwD0_+EPA|32$aI0rAq|0Fs zIr-=Ki@%_q1)axVaDiqIKqFsxDkSir@QUaE|G&0{jF}yOu@9>KG?+dJSuM*5SpbAm zO~Eu|f)qBp-T!n5 z9^g6znJ@>nLcxAs2|mUM5#HG53PFdofY-%C7YP2ph-e9dsvO)sf6$4%;9C{yN?@U=C&Yy43CV++!XEIw zohW^aHH$%olIstIG_+5FoM%uvLpdnBuhCt-?jdrU4=xKHXFvWT;0(w%21NeC?8<_2 zBFb2P88b>aAU8Lm-7`>r1GOeV9R={_KWrT?P&)`#;%MGLb0o_2z-w(to(4@Jf!oK2 zpMaYH;N1yJKtuiDv8UrNW`Nn?qtsv~yFCIGTBZ9y0~pBr0ST?q#%3VWCiE6HDDo7uj>V9-x74s z)HJy01JE9SQ2IhX&E)t36sKSmx)^bMm=Pt8L2ifCis;v`Uz!45!50BnW#bX;Us%@9SRT12_Bkz%IV*<^eq1dJf z5+T91`F~LSHUZSsKonk$e~@hhAE}LE+h&k*blc$h6q=)|-jW!B#tbMCNI1qp_uZis z1E6(9;I!!h8ea!ZDnmweu;pdfA0D6~o)T9qgD0TVJJ3c-zJqH8&;SNxy5@yP=O^$$ z|M?ed=Ya|&^r01m21e9TA#xl^%m|MfR%bxt4de#!JsO~8YlxdtKx_O)@n{H)hQMeD zjE2By2#kinXb6mkz-R~z?hpXoy$W-oVm1SVTViHTYKlThz5?i)T7{IEo_S@7IhiS#O3I7!^U@XELE4Ke^O6$&4r{Rbc4%M zlS}f8tgPaFxY#-pu{~{{$xk1JAtw|6g!2FzC$t|DOZ2!FJyN{~BBj3^|}4I~M~(&%FQtGq@NS zR?qwYe+L%>!>xJ$|KH$ZV0bg{|NkFc3=B&1|NocZW?<-=|Np-Q=w|5!|NnzdgmhZ) z|9=HH14F@r|Nm!jGce3q@c;h~ZU%-u3;zGV!Og(HxA6b}KimuqVGIBNSKwh_Xj=IH zzXJ~g!=i=%|ARJ@ep&ece+v%-gUzD<|5xxZFk~$H|NjIJ14GB6|Nmd`FfhDY^#4B( zF9Umj3@Az{kLFZ|VR4C43AFTFd_bpTft$ zP_^v;|1EqB3_F+o|9^##f#KV-|Np=6F)+9-|NmcvpMl}uivRyD_!$`FR{sAV!Oy@D zu=4-^3VsHLgq8pQ&){cZn6>i%{~i1c3~N^Y|9^v@f#KH5|NnpRGcf#G`TxI!00V>0 zs{j8j1Q-}>R{j4UA;7>;w(9?X&?cacRsa9b5MW@~w(9@?9Rdst*H-=ie?x$Qfn)Xm z|33s67$jEz|1TlPz!0?h|9=ZX28NW?|Nn#b%S~GS|9^!b1H*;Y|NqYrWMEjg_W%Dq zf(#7j*Z%*1N05O*ZQcL>e?a=y|NpNd#K4fU{{Md$AqIv;>;L~x5n^EYwEqA979j?P zH5>o`Um?W6AhhZK{}VzC3?`fY|9>IGz~Hv&|9=i)28M`D|Nm+NhUP8*|9=o>VA!?g|9=4y28J_R z{{J@+VPLqu<^TTx5e5d{t^fZQh%hi%Z2kX#f(QeH`_}*eH;6DWRBrwM|AGhu!;-E4 z|9=o+VA#C%|9=5d28O3w|Nl1-Wnkdn_Wyr?CU-rw*CJG@ zul@i3e~@5cFgWo4zknnIL+XM5{|zJ=7%C3@{~sX9z_8}P|NjM&3=9WA+sq^x82%pk z|9^ud1B1Z9|Nk#YGBB7O{Qv)hBm+ar!T=ng9PCWEdDeo%#PiMTUU^bpAz)3n+5i8S$S^Rpo&Ep+hztY6 zm$U!>KLN>~`~ROqmVsf(x&Qw)WEmLVo%{daLzaPo_5A<;8L|uvF6aOM?~r9+$TyF35?H-IkIzWe|G0tE&JiM#**A5dUmsJ;9D z{{saEh9`Ib|7THTU|_oU|G$bN1B1xD|NmVS85k<>{r{h$$iOfiv?y4Sfnnvn|NoaL zGB6n4|NsApA_If-{r~@;C^9gF-v9rfMTvnS{r>;|DoP9tmG}SucTr+scz*x?{|qGt zhF|yp|L;&@V9;L~9R2dlBUjP4}pvu6o?{`UX>1~mqTA8-HvU!cao!1wO|{{w0a3<~f5|9_yyz|i;Z|9=*B28KWH{{Pod zXJE(zO>U?&Fm$~C|362afnn$S|Nnc`85mx@|NnoDIs-%hhyVZ2s53BtuAl}rWErc1 z7#J%A7^QjGIY8@;K;oeL);rq&{|DVa$Kb*aJ_%2Sfq?;ZyWxlC|NjqwZc*hEaO0Ek z;^!{sXkf6HveGgJ#Tvxi7zPH0j@JL6P23XevmL@Re%pTB-m&FHDX|phJ^>n-yq!5{{MdsBLf4=V>t%68$6ns znX?(e27%le!pOjIqvQX7(5V7&HO#C`AO)bTQ^Lr=aIEY9{|3;Vn=p5{HZwC9ft7&6 zVg@4vgUpow|G{_L!_&R2S*AhPF^rEFub0OJMC~VGcf#`{Qp1b z%6531c_PAFgPDQh&E)_8O+kqS79TkXc@Jg=2BsK^ss`Nf#J}U|NnK7#yCzu%+E=>9VA9QCZ-2F)idC(GcaVp+%X494U#))a@(WlQ7}%!a)_;JNfq@T?{s*iK3_{azr#l8V28N<(|Nr|S zyN}5k>;O=@RbXRam^bbJ{{R$uceuO*8w10+Y5)J*BFmS6rNRD709~;-4ST)4;*f~Ic zWMOAuxH}!UA5_>G7=Ga}ALIuYb_NEm8UO!p2i0e=Gyp2kSAvTla5!YJGcfF%i9Owe z+|U7)H$rw}CL#=0urn}RnEC%dKeD_VLjD9h1H*xt|NmPe%NHQzLFfD2nu$FgK=yNh z`tURV{|DWU4o`=v2>luy3=AOsxauPhs5~zBgKo2XgU9_H91IM1@VI{k2Lr=5Jnlci z!NBkWkNaOh_2Y6s2PedQT<+K4WMJT!g**H`I2jmz;Bh}_EJJ7(?(heVaj?w79sVmg z85ltNvE?&R8U&4r7|iwwxn24aY^8Dx(f!k!Q=1_rgcxcyoJ9rwZJ7f@OR-Kk+V z7khpN`E?5y14G)}|NnQQ=eN}eH-N@^{>=OTA9N2LJUp0U!F~bR0U85xnvXjyKx0EL z^KttDG-hOmLmuQt&{&ej{Qv(!^%&fKP`L&vTES&P4QLz*hZ{g<%;9EWh?xKX|9j;4 z0GaU+>>=3cL&qYw(!wz{|ie8;|)3ybKI$@tEJh%fPT5NBDu# zzye+dhE)sx|BpoWKPU}&L&5;0<_IqX!-EC5(+Nn;3tk3>)eHas4?#BvsSe@cV_>+m z5O-S8;bUOnf#Kak+-=-7d<+b~7h`WZkUVI7RAVvrekdp`O+e$O zi~s-ELN9-05akbOOjTtGZZkk*tx`+=|Bpa7!wX@?9DW7{zoq~GJ0iQ&wVAmXns@i` zGcXh^#a@Pi+);3@xw7#NCI{Qqx- z9DbmNI|Bm)D2*QwVqoZ9@&A7&viYF)NHo|Aa2!7oVqmzm^8f#QWHXo`14ke;ScDlE zlve%!?}se!-oxC?QU{I*kQ&gOfzPV{|E0v6{iXl`QJdff2=nzPul9(Q^L&1IZgk2^ns<~T$);LeYr zxevAt|Nnz-Zh@y)f3O$9VGWuS`M3W6|5W6#WQqYR0EHuHuEco*TG6JB2b!` zBErDXwgI;rw}>z>T)^YTD!P`5B@N3{y8^ zuj@cz1ezn-vJv;V!3|Lch8-Jmmy16{85q`X#2(L}Fpv;qV3@!0|9^jE_kr3S5HEn; z2%3jFwGn%N0b~Yfeu{C^|Nlzpc~b$z?=yRC6FJM zh%+!;-}e9iQe-vEb3oGIGVq8v14GOX{BiX{oPnWZ2lloE$Q>LK3=AuG{Qqx=YzL?u zRR&uFj&B_a28L}rahu^I!N72R=l}mz=w{>~%mB?9>hAvkpC4HbGaFa|$giNeM43If z^FC;fF>Md_bPLiCntP1cgS&hJ%}ECA!CgLq<|?P|!Jqd{BpDcP?D_v+4mnOk!BGkh zrw~a7hHH4-SR%>5Z~})LKz^7a$-uz77q|IaBpDdE_u>wNE1>z*J^%lMw$vliG^B6> zng0beAB#u7h!g`uI39TuDFy~lJn|t@3=E*-4Y7@-gVI`w6a$0qUbONToaP~oaF82k zNHH*!d4XmvKn#ZbV0eb@EN6--eyF<9g z6hYGj?1%sVH$%zGy70UlBg4QTcjW(nLu5Z>fQ<*2TQxEa4Ejg@{}({k4=Qt*z(#=8 zERbPfkUok#t$_Rjns-kx1=Laa?11kR$%7@8At)m)s0~&AW1{y%)8#JB;k_&+HLE~2- zegTvZ8m|KJCqVh2@hK301C$RMj{@;8K>48YClLPwln)wj0`Ua|K_mkMXnYC8GJx_y z<4GWX0F)0JKLYU!pnTAH5r{tl$_I@Pf%qGse9(9hh<^df2eC=P9N^P-5IWqQovjo! zLX%4KN=g+B4fTxl40H`GOTm0YO{fS$IR*=qY*-jR{zsPpr6WcL7KR>ZM1#s+kQ&f9 z88-ExbjHLWzyKQG0I7pvkUo$&d?6E50<`fNB#vGlc!J9S83qlgKSAyTX$b|3i!+=+ zOCL21pgbhN04rZWYC#y(wq|4ygO>v!F%SmrpT_2Xkg<#mLJSp%YdcJA^i%Y@FA()P7j0_A)3<3-RN)Qq7d@KV418D9XBt8o~0nGp! zmIN#K1XZ5_ZjdlAfX4Yj5}N;Q>^9 zGidP{0|Nuh8;;Bn^(i(G_251W0|P@lGr|oJ83+kFk_2S$EvP$T?%xPCXB&8N8Uq7( zZWE-11!BGoXfYfE0|R(Gg@J(~7Amd-6#%cXV_;yYgNiQ#FBoB9fKm*zq2f=V{(_kg zTIT|C&j;|rAqEEU`T)@Se5iUEa6^oN0lcP;fq_AT72+Q56p-T(ew+*y-wX|BsIwS; zLB)@OG86*?19%+>sNP|Nn6suBVh%JK7($`q=<%`$DqaQ+XYe{E1_lPu+6=J!p%DlR z&%aRh9Z-8={so;a3{sy3Ug!i#Hy{^)ZmI!^3qjov9#>;vV9@7)xU&sBz{J1+o(E-M zVCaF0@6rJ2M)+$BR6GD0zp(JU2Njotii77X85kHOIU(kAf(NJ>7{K$C3=9l5P;mpa zbe;kg?}Wx9D1U-nFc~zz&mh3i39X>PYZMt67 zH^jd&;DsiL^cD#f{|zcg85kJAYX}$^7*0XOS0q5p2hZa$Ffe@LW?&FxkYKm~Dj30K z9Yh{1ixQ}~ z5;Wn%(s?6PTnsz`#J~Vv)4;&MaGMttK0*u((DEGAO$V9y3aWk?G`?Ww{Dq3Efjedh zd*%5MY><8!cHx7#vlP5Qf`I`%4#2>`a11Jb7(6(RD6f?HA?g#L=^q;X3^7pgWblAL z0|R(Ggn@zK4OCnLTCl<5kyij>P61lJ@PLXNLJfxHBT)Mb6#fd(c!b6890Bb9+6gsh zwKv44;JFx3IuV4}>jVvdSpMyVile)86;!;t0Ada_SQ+?*K;}TikV!4jo)ZQEhBeUq z3tA%#l8*ta7hvdth660VN}%F7(0Tzp$IHOL@BwTNNGB>*1I$VGv;GgVqb6b{oiEFQ~Xg5Qv8;$6BG{n$U6^R?ggm ziob(~KeQTS&=7;T^8vIW0A61MIt~pgo(2_%Ml(Y`RQv)oLqn50L$??xd?0Q?CbvS> z3nfBCVd3)6}v%qTUOdk6`J?7Ak%YnsA`iFheU; zd;?lOT@4klfvSgv|0hZ8;mIilv3Dc1y#XFiWnf^~02O}*t=C}o3P?lLqnB^WQ1MOB zga9p`7(nBspl~}0^$>Wx6jcApFfb@GNizsQ%V$_WHbMqsegm|D1N8>OGN|}jXhH_H z??EA`C<{@40-A2Y^Le0l5L7$?n*L$+W;axP1JpyX{Js+^j$V&|_WFR_?*k1VX!2z+ zl!MqS1`S|XdP{?fqqq0EpyKH9cu9_dL5N9^0XBXC@)HQ(0EvSbX!tACoPE#?1WW%K z@(}j~LHz}-4jJsA;_T3T3Tp?}LB*q>5dvP{%fP^}P9A$YIRI5}1#PFn%AdPXaT}x18Ba0g}**jJSPI; z9`Jl3Xq*Wuehk_kfEvf}0V-|=P2kXIW6)QInva&R!=d8n?UNL!I3u*&gBr&$87kfZ zjTdOMfZ-rie0wg$oiKmtszB^jg$h8kA43;Z{1LRB30k`a()kH0ZUc>9X!d4MP=%P& z0QD#=d=jDJ(a?q`cs`ebf#Dled@i(Hg<8*$tp+hCp%7#nA`Q%iicdfbpHoorPf&-z z(v_P!#GHN5`WL*;g@J*g7AlV3-q-*Y_XAI8Gcag@`_&8#-_1d85MWpU?GQkV6$Td# zi22u{2@O`Bw`hRWL)?x`PRAj>5^9bY)Zwu9|0Sq+A=F>c>Yu?!6JqZwXgY+|<8@GR zCD1?$0|Nti%?twr!!J$j?%~&hnDYgiPQdGv85kI9pyEu>b_F!r7~Vp~1<=A@SsP-G z2{fEx;S&fI*MRy9md^X3;^_U&i%{`1o*vZC)rXkh18t|l#+{R) z;@N2Fa~@Ru0<_}}>whsDU=IgT1Bm(P<(MrF^?p$GTcG6<%srh@ad&9F0}KD%P;mul zyA)Oqs2f7;m4a5_(B=_?7gU@B+8%(Xf2jBzXnui(+YP9=G&J6!(ZC>Pgx$XZMi6^l z(AqP5pyHnHknjhuYhz$w@HU314}un)uz0V8il2anKdgVc0xFIkzf2|&bC%~o%m>fC zGB7aAhKgH2>v3o_GyH>!KXZVnhoy5%Q;0bSpbZvSJI4(w{tp^3F!4yJcnMS-=FVEE zczG1WeDE3<1_lOkGwk7}Wd^Z#H#A;g@f!#gFN2mdF!6~{arAcD8L0SqXgLGb#_-4t z)bEyIP(W)peub)E2(6D`=~>wv;+_U*`w-U84S|XqK@$|LebNOLFM%dNXmm1sG>44m zppPf~1B=Tr7(m?v2_*&wW($bDYoG}MN-^j_#nIgp3l(1r?QeqD`G5?wgqRZwtsi0G z=4c5De*tiR3#1IZmz9Bmp&Y8d06N|XYZtA8ildJsJ%EbOfsS`UhdCG|tRVLCLC0gk zbCjU*Tc|i2w7&yQ)(jV|K<)v#1QkDps^@~{cW80L5NHiC{~pwxFn`U2ilf)>$Drb; zpdB@6vSzps6_0>sXqY*2HrU-`ZUeDb4{89^dWJ-(_y=eO1WH81L=Rno>K|A8$_2~=@4AyoKbI{B4 z1yFJH@r@l&@l(+DJS?3&hKlz?+ttwOpTXZAVm^95s}3q&0Bvu8#{EG)ly!ipM<0iD zcL2qU0D~Dc!-4l$gT~dt;vk)5i)Am;yvCLCCMFC8jw0j=*~>2N7j z+z8tKhm}A3pyKG`B=?}=A<+B?9Ts8WbB5Sk2CWxh=_JM(6rQMI2I3Xq5buVX!w;>$ zpv@+RlTdN={s@N)cJnn{Anrl0XPcnnr=Z~gYX`1|iU&c{Kg?fxt`KwHLGv}N|CIn0 ze+_N_!~8oPDh@j10pw3;vw-0!RD3S9K!Qd;!(*tpd>lwM0|R*NBLf3NzZ=Bfh0ux= z7GGze;^_7DZ>TtWIUwy0F=rDrVxi4(hE%9Hx;rOB#l4^j2eelYFyOrk3=9nJeh~F1 zpa~G(9)^mexA!JO#f8w+@At!=uFgT#&xN+@VCJ*?L+nNG-?{o@Hzyvd9(_FFI8^*I zG^4}%n@Rx?^Y23A1s0Dv0oc zYY7#%fL0W+bhrpAZUpTwz|@}%#O}_QF!gBl0z+_eQHh~mK0|zbVp3*&Nn$!fa#2Zf zNoiV|UNS>UYEf!>W^qYsQG7{md~!~HUTQHze0)lNe0olPQesYgN=bfEaeQKF1w(Rv zZb43JNotCo0d^JfX_v&o z3ypX6fC_rJ1Tn8U00AqDZ^gZn_?2GMF6 zAD^CA8lPNIVQ3y7pO;^ho0t=yS&~`=QsNn4Xb>D!QUEy$65)(s!+4Mr4C7s0T?-1R zWRSC=Ymj%a5q=*Vn#2c#(p*t$PJVJ?Nvdl=ut9vVF$e{LTvcLdo|#vYnqHKc6Q7)) zS6q^qSK^uElVs=$j_2SKL&Ny^V z0F(_}Ens>)k;B8)H6SEDz&qF^KG-}y*c9aO;1UzCxj_MLNkQJoii3^fU0wbCf=dj| zic&#p;)_z#Qj1dal2biH;$2NjDhpCw{e#Wp88S-p^NJnZeLS6<gpP79Pb)p5FZjBY#ASH0W#dr8s- zA&KN9zL^?(d7(;^;$k~*T#9tMWvBzuo);o{V;qAO#tA$i7hW>xguwvEUzqA zS5Ve5h)2#kNXDWS(uU?32c~)=vLK<@1QlE#7&+m%x|W5+2Rnk|7d2bu zW_ku>VT7!!t6y+DwnQ2NGQri*G$k_)S_sC23&0@nV2k)*aKc9lP?T~MTJ^z`C$eAA z3I=FIxVj(;OZ?TOIjj=R%q_@?Pf09Egr<$)5{r13)Z&t&{7Tf21cwJCnS%=uJe4p? zWeqh9)Leo@lVyB-3e18mNH80N;@i+1RFotZrNXP>Vzi3I5Tq=)#Ly%@9#$*HC&n9k zW@Wkh1(#T+<|QWOq{e5ac}5f$1(z6^#K&hA$0uc$lxG&F!gPR?c!tE6xtf+G=9GeJ zRU=rP1ghRl;)6}%gMt%1Lk!|w8RAnxAp?qkkgZ9H#hJ4AgxGcJ+|mIG>Z3)PtHh9&W_JX&2!BS@Joq3tL$R21uMF}uyJ&aHSDsiD& zQL4)sCLp@_~l!NNE+|;7<)cE53 zqLTRX%#sXHV<;`Ph#DarY#a|Nh~Z^7wl+Q};W&YlE2xd+25RBJOCv-mfs+g(Z$sM) zps+)3Z{Ud>NS7Z}%NCa>7Q`1N=B1|=Q^k+yX&oHoX_OnCSnpiU{T*1RK80CZsXmA1AXf!g2kB781a#HisOETiY z*9!%BCqs%Nl&%Dh@)cKQ66HrID6sTpA%2ffDbA12NX$#gNd*N2Qa1)x20;Bt)X)`F z53DRiYCxils^H6j@QxZd2ZNe$;Nc>0T}X{wMOxJdX^XqZ2SbosJgzDb>T`Ij2}{=- zR?`_-;vMfm%_0OEeV}dwB4rzZ+nAti2pZA}0S#0_%LPOpM9=9^hr3!phl)}`om22A zJdz%4xeKZhk>){efps~t4}N3IJFuPtl5IHpp2(xVhVh^wCvb65hB|DOSyb#Al!=z7 zf=f(5tqatlRVfmCKeZGrh`Wx66=#Y3qNyHS?bc6Py6Jb*+h%9Pkgncv=JdT6n074cS#$$J)D{KfA zHgq0bVrUQ#8rLgH1kD!^Fc-xQNH!4HWxyDd0}bF4>~*<>>lLM@>BYyVS5(9oq!tzD zgPM&cmGNZ;pkfl?3TT56a~>xPR6QHT2Z07W@z3I5X@8+)6xuezObQY+(S}oVT%8R; zLr0mQsU%lWVGW&6A+C9WsJuYk0O*J#rdC+U!P_e!)v%@s?$Q7`Xkdw$%mjqg=E%(j z*V2R^CC0g#d7inhLEhl85!mnuu89&u%(4MAIDf|*N7)8xHkZFP763}23q@@WS)dDX|08KGM z+MOr^TzW>9kn#+XX~7i_ia($&KyaWSS_xS7L8A#{&?pPsK1OO?LKT{VZ^uN>d$6Vj z)MBJzOxQRta*jufJ!Ge2wrapZiBiR8fd=Ei89BHFTo-1P=4C^>ahdsf;PDq~G(2;V z`g7Q4RY5fdyh9g^cfEw*h(31EZqRqmKs_zK(hv3mV;)y;T-fl3Lcq<4RN~$ zAXS9mCOwXsC(sl=XrKvHWx^(AqCm67$gPt^aKVEd`PjUPoB|MK5GZsLJ;Cc1pwsz~ zd0j-K1TxHu(%c|m6{yJz_dckmho)FpSMdfYY%1eWIe8ns% zE+IK3BtF;;go3<5T{Yxv3|kZfp8o*N*2GgU^?-&Jv8SG(93oai;Fw^=7WSCkBY3zV z25mueXqf9Vpw$oQbq{F93N)w~1nE2mmlzp<7F(5|r(R_Dx(1g(TaqF1Irs-v4Dt1i z4ddf8^B`@6;u6p_F4f9ka*AJQ9cKou_447fz!*!C43XFAfY%`fgXT%nl5_HlQ_-3= zdF8nf5tK0>w2?;aGseLsmhth4DP`2^H|4mNL7Eu^XQA*ln4r}J+L$3y*$GXv*sDF{ zWJJM8xGVBVcuGz{SuWC?iXOC?0}EsnJ7L8fbr-fEN@BS0K@;PU8FJ7(7Gx9`#U-FD z3!5TG9q}bPfqD{;0jzy&ke3BuVBw%7?_ zKRi$o#UP$QP0sNI&7$Ba3qeByh-w^VTme)LLW)69e}jmE05OgRDh0sJUWB932j7q* zA9+z$FwXHUgjvu4Aif&{n)AcDdI=OVINC`l-4Jht}^(OLr@^$%Qi?3Mk#Y(6**{_4$%Px^~>NZ z>Omz7;aT$JvLw`Lay=tMaOV}&-GMK+hju8a)nP>MP#Btl+QP-DMWD?egSHtATJ{cY z9;dp3M!QL=^6>O-P@6yGrWD9<57G=Gbt20z*a+4?#ond`r8#H^6})KxGJWU{>Zw9z z5FrkOtWEP##jZf#+?(i8nqcKOb!u0s%kc9$m>HAp$^yO0coC5Tkg8TySbds}zu<1Kij^ zNhhFC1((X0bqCh+2lqTZ*dFAud93>3)e~q+1RCU^G5W*`)G_+vl9be75RR-XZV))uz(C|5^ zIs@lI(1HliU<|cpxj~~o;DwZ+JvrbdXP~BKQ3*qQY944|C`!u^>OQPPjW`3s$P;@& zfF^+BA@jeGL=JDip`;zM(|E9XJUOX6*d5f^10{6uYH0XMWfVt&=JbeJu54rgS{CP- zS5R8wlvz@gnwaaBnUjjTBn}p+(6Loe1&fi&k<@@zCxFujI2(d?HGwM(f?81X1Z1iM zIc#wyMdWdrfMDqUDbSD>^0+cQRf1AG2;(0PaYbzgB%yRouxz74b|(n~)<_+v0w32L zhO~mB%)F8`%=~Uh<)JcgZ3`M>wTy>s-EanV9Y8UQocXc&1QyYV-ZYXY;JrU^(;pt8 z;PMu^^no?Ran3Nn)>{#B4Yv6XxFf*JL5ots6JDD9B_RQo^Nr|CgKrU(ggbyr!pN=M-9gp${X&TU?;co5;-sXzIaIa3UIc zpgn6S$rWoRBx4JkWqhzRXn7KzDl*tG9%Ho#B!(e%BWV44erX96=eM%pB0V`J&X4(xSY0{Bw$~ptYUg5Jos1Yv&kSMUU8Jjb#xZT7{1= z9vU)4j#LpG;6=_TXn7uWW+k}9A|(@ayhAco#(zQEHVmz1KFVwKC!hx(@ zL}~^Qy)X=IrV5&{5u)IZFQk$LB^>DXV)$-JP4rm8Cs5=H< zm4H3xAlgjuK?g{611UA(qrk{H3^dkBU_cnWaT>XtL+k6H7>8&yBSI70!iI)1OrB7g zg={DyVSt8YU~9Y!2+i}u3omeN!j`{-`c6pAK59e{IW0X%f=3G@6i-7dbKJ`n2n<6* zLfSI~w0#nG)=-GAGw7tD5YWm7xC@}E8~f&YWG6v7Vqkm5HGdY->Mu1EIwb!Yt(ZE%cU97V2)=TyVV$PEN?_5nE3X+1*I#2e}yn z8dd`h+kjjRs{)~}gEfqxJw2q2Bw6^zE(~Bh&LCln!%%Q*3pPOJihAM>M57_7dM0!X zfU}`%fH&xT0ONSi{Ni~3g4Dd+{1oV{5z5jI8ZP}p>Wd;OF;Gtc7LYXP1c3HKo6%@D zG&uZ0W0kN*5W-iW!w#@j^h6(TfL!F^D?-7&EO=`i)Rx8U&clKiR!E?fbx^m1hHNwQ zJabT&RfEjJKVynz2?56N7)thnIReYVDp(x~+5eIQY8Rj%p+TKZFDAG*y@1+~n44Zq z;)B7*fq~lF@$ryuB76vy3Z+X9X*<0jH8ye|5ma?U#sY{MhP8D1x|IKmI3CeBA~@o&_ldHsSi35jk3BAn!izwN(wdr?>YmGV1o`!GDJEs zDGfYAfZ82GuGWyF2v)bD?q$GHS3w#PAft$Bs$egL;M<@xNvJz%SZ5)599*u&BQ+~f zrzya@Q5fQ*^2&3AK(qGHvt8m#AR&#YWDzY4Xfqc)lE$D{T$x*vn8cu0Tv7y~Ghi&x zv3f-X40?I_C8>Jpd8K*B-6QsTIko1tsy|6|)diA!kfN z%z&{$=75}`SCkKSa$;^~GJ_sSltC}4xR^mNIX^cyH4l1DIp_>nN-*fYV9=Exu=_bB zp!c7`XxM$hFgrkMVQdf$x<&?cM=wmj1ynzbHUKF?!mxXfU_zjCaFO+AK=s3D*txne z^{{*AV0_Rq+{pT2_qW1m(0!~hwICW@Kj_@mZ~y=2!`u(M2N_1g+|LHmjC8Lsl*<4* zejju-F-$+~o@5xE0QC>Zji9iD`5$(!F6ex3kP?`F*uBdz8g|bz%s!AAFgAz=9hVEb z!x*L?c5gA91}Q?i#~G#$M%OVgFo5nvhVfzdBEx9dG5;X z!|rK@(Xe}((Zdhs|LIWuu=B=Y_ddgD*ger8{h+JkVD`iGFNEIJ2$Bc833hJ@lm?}5 zusDL8+^GwvZQnD_=X z`#(VS!{`kl!y#J0BupQS-if9kc3%&So(@W&V4V;GrVqknVAzkQA9gPnjOK+Ygwp8Y zcND507XJ*;`ypYp5}F2B{6URlIE$tqcAqbdz5+^kFvZZcg2ZLGji&!cH$)aj%b*ni z==MKF(=P(Oe;7uC?pubK2qDqD!|pbnZ-7+5?qNRwH3!{37#~J6GeYhxh3SXg z_k4m#{h<4BKuH9q{{r;>(hE@iAUTk`U>Kbby1yBec47Kq_a@(f>KA}UEG!ye?uMnK z)zI*R>4)9({$d@(MhP?vVftaTD)?Sz1_qdZ23Uau$`}lYd)*m$ zx&s*IZ&>-o$$;c{uucf^;v$4*g5Ki-;eqbdhOr Date: Thu, 22 Sep 2022 13:29:09 +0200 Subject: [PATCH 109/479] sba_code == SBA_MODE_SPAR clean up --- lib_dec/ivas_qmetadata_dec.c | 9 +-------- lib_enc/ivas_qmetadata_enc.c | 15 ++++----------- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/lib_dec/ivas_qmetadata_dec.c b/lib_dec/ivas_qmetadata_dec.c index 2a144cb852..15f33799d6 100644 --- a/lib_dec/ivas_qmetadata_dec.c +++ b/lib_dec/ivas_qmetadata_dec.c @@ -869,14 +869,7 @@ int16_t ivas_qmetadata_dec_sid_decode( /* TODO: temporary hack to keep BE */ if ( ivas_format == SBA_FORMAT ) { - if ( sba_mode == SBA_MODE_SPAR ) - { -#if 0 - /*This would break BE for SPAR modes, hence disabling it for now*/ - metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1 - SID_FORMAT_NBITS; /* -1 for inactive mode header bit*/ -#endif - } - else + if ( sba_mode != SBA_MODE_SPAR ) { metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - 1; /* -1 for spar/dirac indicator*/ } diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index 9470b2f0dc..6042c9e10a 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -892,14 +892,7 @@ void ivas_qmetadata_enc_sid_encode( /* TODO: temporary to keep BE */ if ( ivas_format == SBA_FORMAT ) { - if ( sba_mode == SBA_MODE_SPAR ) - { -#if 0 - /*This would break BE for SPAR modes, hence disabling it for now*/ - metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1 - SID_FORMAT_NBITS; /* -1 for inactive mode header bit*/ -#endif - } - else + if ( sba_mode != SBA_MODE_SPAR ) { /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - 1; /* -1 for spar/dirac indicator*/ @@ -935,10 +928,10 @@ void reset_metadata_spatial( const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ #ifndef ALIGN_SID_SIZE - const SBA_MODE sba_mode, /* i : SBA mode */ - const int16_t element_mode /* i : element mode */ + const SBA_MODE sba_mode, /* i : SBA mode */ + const int16_t element_mode /* i : element mode */ #else - const SBA_MODE sba_mode /* i : SBA mode */ + const SBA_MODE sba_mode /* i : SBA mode */ #endif ) { -- GitLab From 959add561c0f2d5efcaf95a51d9968f2a6ea0dc6 Mon Sep 17 00:00:00 2001 From: Vladimir Malenovsky Date: Thu, 22 Sep 2022 13:43:27 +0200 Subject: [PATCH 110/479] Changing all 1 / sqrt() to inv_sqrt() --- lib_com/ivas_pca_tools.c | 8 ++++++++ lib_com/options.h | 1 + lib_com/swb_bwe_com.c | 4 ++++ lib_com/vlpc_2st_com.c | 12 ++++++++++++ lib_dec/ivas_dirac_dec.c | 8 ++++++++ lib_dec/ivas_dirac_dec_binaural_functions.c | 14 ++++++++++++++ lib_dec/ivas_dirac_output_synthesis_dec.c | 4 ++++ lib_dec/ivas_efap.c | 8 ++++++++ lib_dec/ivas_init_dec.c | 4 ++++ lib_dec/ivas_mdct_core_dec.c | 4 ++++ lib_dec/ivas_objectRenderer_vec.c | 4 ++++ lib_dec/ivas_reverb.c | 4 ++++ lib_dec/ivas_stereo_cng_dec.c | 16 ++++++++++++++++ lib_dec/ivas_vbap.c | 4 ++++ lib_dec/swb_tbe_dec.c | 4 ++++ lib_enc/core_enc_ol.c | 4 ++++ lib_enc/eval_pit_contr.c | 4 ++++ lib_enc/frame_spec_dif_cor_rate.c | 4 ++++ lib_enc/igf_enc.c | 8 ++++++++ lib_enc/ivas_stereo_dft_enc.c | 4 ++++ lib_enc/ivas_stereo_ica_enc.c | 4 ++++ lib_enc/ivas_tcx_core_enc.c | 4 ++++ lib_enc/pit_enc.c | 2 -- lib_enc/voiced_enc.c | 4 ++++ 24 files changed, 135 insertions(+), 2 deletions(-) diff --git a/lib_com/ivas_pca_tools.c b/lib_com/ivas_pca_tools.c index 3f96e81294..123bcb26b8 100644 --- a/lib_com/ivas_pca_tools.c +++ b/lib_com/ivas_pca_tools.c @@ -152,7 +152,11 @@ static void house_refl( pu[0] -= 1; } +#ifdef FIX_I120_INV_SQRT + _rcp = inv_sqrt( fabsf( pu[0] ) ); +#else _rcp = 1.f / sqrtf( fabsf( pu[0] ) ); +#endif for ( i = 0; i < sizex; i++ ) { @@ -645,7 +649,11 @@ static void norm_quat( norm_q = dotp( q, q, IVAS_PCA_INTERP ); +#ifdef FIX_I120_INV_SQRT + norm_q = inv_sqrt( norm_q ); // VE: TBV: possible division by 0 +#else norm_q = 1 / sqrtf( norm_q ); // VE: TBV: possible division by 0 +#endif for ( i = 0; i < IVAS_PCA_INTERP; i++ ) { diff --git a/lib_com/options.h b/lib_com/options.h index db358692a9..0666e82d07 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,6 +149,7 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ +#define FIX_I120_INV_SQRT /* Issue 120: inv_sqrt() shall be used instead of 1 / sqrt() to measure the correct complexity */ #define QUANTISE_REAL_FCN_CLEAN_UP /*Clean up the ivas_quantise_real_values() function*/ diff --git a/lib_com/swb_bwe_com.c b/lib_com/swb_bwe_com.c index 4e692fc22b..1d8ba7869b 100644 --- a/lib_com/swb_bwe_com.c +++ b/lib_com/swb_bwe_com.c @@ -308,7 +308,11 @@ void calc_tilt_bwe( } } +#ifdef FIX_I120_INV_SQRT + *tilt = r1 * inv_sqrt( r0 ); +#else *tilt = (float) ( r1 / sqrt( r0 ) ); +#endif return; } diff --git a/lib_com/vlpc_2st_com.c b/lib_com/vlpc_2st_com.c index 86fdf68c5f..79981bab0b 100644 --- a/lib_com/vlpc_2st_com.c +++ b/lib_com/vlpc_2st_com.c @@ -74,15 +74,27 @@ void lsf_weight_2st( if ( mode == 0 ) { +#ifdef FIX_I120_INV_SQRT + w[i] = (float) ( 60.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* abs */ +#else w[i] = (float) ( 60.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* abs */ +#endif } else if ( mode == 1 ) { +#ifdef FIX_I120_INV_SQRT + w[i] = (float) ( 65.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* mid */ +#else w[i] = (float) ( 65.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* mid */ +#endif } else { +#ifdef FIX_I120_INV_SQRT + w[i] = (float) ( 63.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* rel2 */ +#else w[i] = (float) ( 63.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* rel2 */ +#endif } } diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 8dd47fe774..621b92a375 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -2514,7 +2514,11 @@ static void initDiffuseResponses( if ( output_config == AUDIO_CONFIG_MONO ) { diffuse_response_function[0] = 1.0f; +#ifdef FIX_I120_INV_SQRT + diffuse_response_function[1] = inv_sqrt( 3.0f ); +#else diffuse_response_function[1] = 1.0f / sqrtf( 3.0f ); +#endif } else if ( !( output_config == AUDIO_CONFIG_FOA || output_config == AUDIO_CONFIG_HOA2 || output_config == AUDIO_CONFIG_HOA3 ) ) { @@ -2596,7 +2600,11 @@ static void initDiffuseResponses( { for ( k = 0; k < ( 2 * l + 1 ); k++ ) { +#ifdef FIX_I120_INV_SQRT + diffuse_response_function[idx++] = inv_sqrt( 2.0f * l + 1.0f ); +#else diffuse_response_function[idx++] = 1.0f / sqrtf( 2.0f * l + 1.0f ); +#endif } } } diff --git a/lib_dec/ivas_dirac_dec_binaural_functions.c b/lib_dec/ivas_dirac_dec_binaural_functions.c index 5e698ab289..6d7bdf2491 100644 --- a/lib_dec/ivas_dirac_dec_binaural_functions.c +++ b/lib_dec/ivas_dirac_dec_binaural_functions.c @@ -431,8 +431,13 @@ static void ivas_dirac_dec_binaural_internal( { /* At mono input duplicate the channel to dual-mono, and apply gain correction to ensure same overall level as in stereo mode */ +#ifdef FIX_I120_INV_SQRT + v_multc( Cldfb_RealBuffer_in[0][slot], INV_SQRT_2, Cldfb_RealBuffer_in[0][slot], nBins ); + v_multc( Cldfb_ImagBuffer_in[0][slot], INV_SQRT_2, Cldfb_ImagBuffer_in[0][slot], nBins ); +#else v_multc( Cldfb_RealBuffer_in[0][slot], 1.0f / SQRT2, Cldfb_RealBuffer_in[0][slot], nBins ); v_multc( Cldfb_ImagBuffer_in[0][slot], 1.0f / SQRT2, Cldfb_ImagBuffer_in[0][slot], nBins ); +#endif mvr2r( Cldfb_RealBuffer_in[0][slot], Cldfb_RealBuffer_in[1][slot], nBins ); mvr2r( Cldfb_ImagBuffer_in[0][slot], Cldfb_ImagBuffer_in[1][slot], nBins ); } @@ -449,8 +454,13 @@ static void ivas_dirac_dec_binaural_internal( nBins, st_ivas->cldfbAnaDec[ch] ); if ( st_ivas->nchan_transport == 1 && st_ivas->ivas_format == SBA_FORMAT ) { +#ifdef FIX_I120_INV_SQRT + v_multc( Cldfb_RealBuffer_in[ch][slot], INV_SQRT_2, Cldfb_RealBuffer_in[ch][slot], nBins ); + v_multc( Cldfb_ImagBuffer_in[ch][slot], INV_SQRT_2, Cldfb_ImagBuffer_in[ch][slot], nBins ); +#else v_multc( Cldfb_RealBuffer_in[ch][slot], 1.0f / SQRT2, Cldfb_RealBuffer_in[ch][slot], nBins ); v_multc( Cldfb_ImagBuffer_in[ch][slot], 1.0f / SQRT2, Cldfb_ImagBuffer_in[ch][slot], nBins ); +#endif } } } @@ -762,7 +772,11 @@ static void ivas_dirac_dec_binaural_formulate_input_and_target_covariance_matric { /* 0.5f <= spreadCoh < 1.0f */ centerMul = 2.0f - ( 2.0f * spreadCoh ); +#ifdef FIX_I120_INV_SQRT + sidesMul = inv_sqrt( centerMul + 2.0f ); +#else sidesMul = 1.0f / sqrtf( centerMul + 2.0f ); +#endif centerMul *= sidesMul; } diff --git a/lib_dec/ivas_dirac_output_synthesis_dec.c b/lib_dec/ivas_dirac_output_synthesis_dec.c index e5c396d07b..dfda59fde9 100644 --- a/lib_dec/ivas_dirac_output_synthesis_dec.c +++ b/lib_dec/ivas_dirac_output_synthesis_dec.c @@ -2078,7 +2078,11 @@ static void spreadCoherencePanningVbap( if ( hVBAPdata == NULL ) { /* Distribute signal to all channels if VBAP is not properly initialized. */ +#ifdef FIX_I120_INV_SQRT + set_f( direct_response, inv_sqrt( num_channels_dir ), num_channels_dir ); +#else set_f( direct_response, 1.0f / sqrtf( num_channels_dir ), num_channels_dir ); +#endif return; } diff --git a/lib_dec/ivas_efap.c b/lib_dec/ivas_efap.c index efd7795dfe..7999264eb3 100644 --- a/lib_dec/ivas_efap.c +++ b/lib_dec/ivas_efap.c @@ -266,7 +266,11 @@ void efap_determine_gains( } normBuffer = normBuffer + hEFAPdata->bufferShort[j] * hEFAPdata->bufferShort[j]; } +#ifdef FIX_I120_INV_SQRT + normBuffer = inv_sqrt( normBuffer ); +#else normBuffer = 1.f / sqrtf( normBuffer ); +#endif for ( j = 0; j < hEFAPdata->numSpk; ++j ) { @@ -1628,7 +1632,11 @@ static float point_plane_distance( /* Dot Product */ tmpNorm = dotp( resultCross, resultCross, 3 ); +#ifdef FIX_I120_INV_SQRT + tmpNorm = inv_sqrt( tmpNorm ); +#else tmpNorm = 1.f / sqrtf( tmpNorm ); +#endif v_sub( X, P1, tmpDot1, 3 ); v_multc( resultCross, tmpNorm, tmpDot2, 3 ); dist = dotp( tmpDot1, tmpDot2, 3 ); diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 87b48cd0d8..afd25c6600 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -1084,7 +1084,11 @@ ivas_error ivas_init_decoder( if ( st_ivas->hVBAPdata == NULL ) { /* Distribute signal to all channels if VBAP is not properly initialized. */ +#ifdef FIX_I120_INV_SQRT + set_f( st_ivas->hLsSetupCustom->separate_ch_gains, inv_sqrt( st_ivas->hLsSetupCustom->num_spk ), st_ivas->hLsSetupCustom->num_spk ); +#else set_f( st_ivas->hLsSetupCustom->separate_ch_gains, 1 / sqrtf( st_ivas->hLsSetupCustom->num_spk ), st_ivas->hLsSetupCustom->num_spk ); +#endif } else { diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index ed5114c651..ab9105c513 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -991,7 +991,11 @@ void ivas_mdct_core_reconstruct( xcorr += signal_outFB[0][i] * signal_outFB[1][i]; } +#ifdef FIX_I120_INV_SQRT + hCPE->hStereoMdct->lastCoh = fabsf( xcorr ) * inv_sqrt( nrgL * nrgR ); +#else hCPE->hStereoMdct->lastCoh = fabsf( xcorr ) / sqrtf( nrgL * nrgR ); +#endif hCPE->hStereoMdct->lastCoh = min( hCPE->hStereoMdct->lastCoh, 1.f ); } diff --git a/lib_dec/ivas_objectRenderer_vec.c b/lib_dec/ivas_objectRenderer_vec.c index a3bd94683b..54f7c51727 100644 --- a/lib_dec/ivas_objectRenderer_vec.c +++ b/lib_dec/ivas_objectRenderer_vec.c @@ -89,7 +89,11 @@ void TDREND_SPATIAL_VecNormalize( { float scaler; +#ifdef FIX_I120_INV_SQRT + scaler = inv_sqrt( Vec_p[0] * Vec_p[0] + Vec_p[1] * Vec_p[1] + Vec_p[2] * Vec_p[2] ); +#else scaler = 1.0f / sqrtf( Vec_p[0] * Vec_p[0] + Vec_p[1] * Vec_p[1] + Vec_p[2] * Vec_p[2] ); +#endif VecNorm_p[0] = scaler * Vec_p[0]; VecNorm_p[1] = scaler * Vec_p[1]; VecNorm_p[2] = scaler * Vec_p[2]; diff --git a/lib_dec/ivas_reverb.c b/lib_dec/ivas_reverb.c index e25eacff54..955b7c0d50 100644 --- a/lib_dec/ivas_reverb.c +++ b/lib_dec/ivas_reverb.c @@ -156,7 +156,11 @@ static ivas_error compute_feedback_matrix( { return IVAS_ERR_INTERNAL; /* n must be 4, 6, 8 or 16, else ERROR */ } +#ifdef FIX_I120_INV_SQRT + u = inv_sqrt( n ); +#else u = 1.0f / sqrtf( n ); +#endif if ( n == 4 ) { u = -u; diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index 05e9222ddb..72af40a341 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -343,7 +343,11 @@ static void stereo_dft_generate_comfort_noise( ptr2 = ptr1 + 1; for ( i = 0; i < st->L_frame / 2 - 1; i++ ) { +#ifdef FIX_I120_INV_SQRT + *ptr0++ = 2.0f * sqrtf( st->lp_ener / st->L_frame * 0.5f ) * inv_sqrt( *ptr1 * *ptr1 + *ptr2 * *ptr2 ); +#else *ptr0++ = 2.0f * sqrtf( st->lp_ener / st->L_frame * 0.5f ) / sqrtf( *ptr1 * *ptr1 + *ptr2 * *ptr2 ); +#endif ptr1 += 2; ptr2 += 2; } @@ -769,7 +773,11 @@ void stereo_cng_compute_PScorr( enrS += *outputSptr * *outputSptr; dotPS += *outputPptr++ * *outputSptr++; } +#ifdef FIX_I120_INV_SQRT + c_PS = ( dotPS + EPSILON ) * inv_sqrt( enrP * enrS + EPSILON ); +#else c_PS = ( dotPS + EPSILON ) / sqrtf( enrP * enrS + EPSILON ); +#endif *c_PS_LT = STEREO_TD_PS_CORR_FILT * *c_PS_LT + ( 1 - STEREO_TD_PS_CORR_FILT ) * c_PS; return; @@ -806,7 +814,11 @@ static void stereo_cng_compute_LRcorr( dotLR += output[0][i] * output[1][i]; } +#ifdef FIX_I120_INV_SQRT + c_LR = fabsf( dotLR + EPSILON ) * inv_sqrt( enrL * enrR + EPSILON ); +#else c_LR = fabsf( dotLR + EPSILON ) / sqrtf( enrL * enrR + EPSILON ); +#endif c = ( enrL + DELTA ) / ( enrR + DELTA ); hCPE->hStereoTD->c_LR_LT = STEREO_TD_PS_CORR_FILT * hCPE->hStereoTD->c_LR_LT + ( 1 - STEREO_TD_PS_CORR_FILT ) * c_LR; hCPE->hStereoCng->c_LR_LT = hCPE->hStereoTD->c_LR_LT; @@ -930,7 +942,11 @@ void stereo_cna_update_params( } /* estimate L/R correlation factor and ILD in time domain */ +#ifdef FIX_I120_INV_SQRT + c_LR = fabsf( dotLR + EPSILON ) * inv_sqrt( enrL * enrR + EPSILON ); +#else c_LR = fabsf( dotLR + EPSILON ) / sqrtf( enrL * enrR + EPSILON ); +#endif c = ( enrL + DELTA ) / ( enrR + DELTA ); c_ILD = ( c - 1 ) / ( c + 1 ); } diff --git a/lib_dec/ivas_vbap.c b/lib_dec/ivas_vbap.c index a173e627ee..0417fd742f 100644 --- a/lib_dec/ivas_vbap.c +++ b/lib_dec/ivas_vbap.c @@ -436,7 +436,11 @@ void vbap_determine_gains( gain_ene += gain_triplet[ch] * gain_triplet[ch]; } +#ifdef FIX_I120_INV_SQRT + norm_value = inv_sqrt( gain_ene ); +#else norm_value = 1.0f / sqrtf( gain_ene ); +#endif for ( ch = 0; ch < 3; ch++ ) { diff --git a/lib_dec/swb_tbe_dec.c b/lib_dec/swb_tbe_dec.c index 2664aaa08d..cbf1dddceb 100644 --- a/lib_dec/swb_tbe_dec.c +++ b/lib_dec/swb_tbe_dec.c @@ -832,7 +832,11 @@ void swb_tbe_dec( { if ( st->codec_mode == MODE1 && st->element_mode == EVS_MONO ) { +#ifdef FIX_I120_INV_SQRT + scale = (float) ( hBWE_TD->prev1_shb_ener_sf * inv_sqrt( ( hBWE_TD->prev2_shb_ener_sf * hBWE_TD->prev3_shb_ener_sf ) + 0.0001f ) ); +#else scale = (float) ( hBWE_TD->prev1_shb_ener_sf / sqrt( ( hBWE_TD->prev2_shb_ener_sf * hBWE_TD->prev3_shb_ener_sf ) + 0.0001 ) ); +#endif scale = hBWE_TD->prev_res_shb_gshape * min( scale, 1.0f ); if ( hBWE_TD->prev2_shb_ener_sf > 2.0f * hBWE_TD->prev1_shb_ener_sf || hBWE_TD->prev3_shb_ener_sf > 2.0f * hBWE_TD->prev2_shb_ener_sf ) { diff --git a/lib_enc/core_enc_ol.c b/lib_enc/core_enc_ol.c index a761893653..19c793a381 100644 --- a/lib_enc/core_enc_ol.c +++ b/lib_enc/core_enc_ol.c @@ -789,7 +789,11 @@ void core_acelp_tcx20_switching( for ( i = 0; i < L_frame; i++ ) { +#ifdef FIX_I120_INV_SQRT + x[i] *= (float) ( L_frame * inv_sqrt( 2 * NORM_MDCT_FACTOR ) ); +#else x[i] *= (float) ( L_frame / sqrt( 2 * NORM_MDCT_FACTOR ) ); +#endif } weight_a( A_q_tcx, Ap, st->gamma, M ); diff --git a/lib_enc/eval_pit_contr.c b/lib_enc/eval_pit_contr.c index d7eb087e57..465e7781c9 100644 --- a/lib_enc/eval_pit_contr.c +++ b/lib_enc/eval_pit_contr.c @@ -120,7 +120,11 @@ int16_t Pit_exc_contribution_len( ener_pit += dct_pitex[j + freq] * dct_pitex[j + freq]; } +#ifdef FIX_I120_INV_SQRT + corr_dct_pit[i] = (float) ( corr_tmp * inv_sqrt( ener_res * ener_pit ) ); +#else corr_dct_pit[i] = (float) ( corr_tmp / sqrt( ener_res * ener_pit ) ); +#endif freq += mfreq_bindiv_loc[i]; } diff --git a/lib_enc/frame_spec_dif_cor_rate.c b/lib_enc/frame_spec_dif_cor_rate.c index 1922964416..a9a85e4356 100644 --- a/lib_enc/frame_spec_dif_cor_rate.c +++ b/lib_enc/frame_spec_dif_cor_rate.c @@ -81,7 +81,11 @@ void frame_spec_dif_cor_rate( } /* 1073741.824 = 0.001 * 32768 * 32768 */ +#ifdef FIX_I120_INV_SQRT + spec_low_dif_cor_rate = (float) ( m * inv_sqrt( ( dx * dy + 1073741.824f ) ) ); +#else spec_low_dif_cor_rate = (float) ( m / sqrt( ( dx * dy + 1073741.824f ) ) ); +#endif spec_dif_cor_rate = spec_low_dif_cor_rate; f_tonality_rate[0] = spec_dif_cor_rate; diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c index 2cf98207bb..be55a8cc88 100644 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -130,7 +130,11 @@ static float IGF_getCrest_new( if ( x_eff > 0 && x_max > 0 ) { +#ifdef FIX_I120_INV_SQRT + crest = max( 1.f, (float) x_max * inv_sqrt( (float) x_eff ) ); +#else crest = max( 1.f, (float) x_max / sqrtf( (float) x_eff ) ); +#endif } return crest; @@ -312,7 +316,11 @@ static float IGF_getCrest( if ( x_eff > 0 && x_max > 0 ) { +#ifdef FIX_I120_INV_SQRT + crest = max( 1.f, (float) x_max * inv_sqrt( (float) x_eff ) ); +#else crest = max( 1.f, (float) x_max / sqrtf( (float) x_eff ) ); +#endif } return crest; diff --git a/lib_enc/ivas_stereo_dft_enc.c b/lib_enc/ivas_stereo_dft_enc.c index 2e81bd99bc..7b3d6af832 100644 --- a/lib_enc/ivas_stereo_dft_enc.c +++ b/lib_enc/ivas_stereo_dft_enc.c @@ -1644,7 +1644,11 @@ void stereo_dft_enc_process( dot_prod_real2 += pDFT_L[2 * j] * pDFT_R[2 * j] + pDFT_L[2 * j + 1] * pDFT_R[2 * j + 1]; } sum_nrg_Mid = max( 0.f, sum_nrg_L2 + sum_nrg_R2 + 2.f * dot_prod_real2 ); +#ifdef FIX_I120_INV_SQRT + wL = 0.5f * max( sqrtf( sum_nrg_L2 ) + sqrtf( sum_nrg_R2 ) - sqrtf( sum_nrg_Mid ), 0 ) * inv_sqrt( sum_nrg_L2 + EPSILON ); +#else wL = 0.5f * max( sqrtf( sum_nrg_L2 ) + sqrtf( sum_nrg_R2 ) - sqrtf( sum_nrg_Mid ), 0 ) / sqrtf( sum_nrg_L2 + EPSILON ); +#endif wS = 1; if ( hStereoDft->res_cod_sw_flag ) { diff --git a/lib_enc/ivas_stereo_ica_enc.c b/lib_enc/ivas_stereo_ica_enc.c index d63c8b217c..0e1b1a9af1 100644 --- a/lib_enc/ivas_stereo_ica_enc.c +++ b/lib_enc/ivas_stereo_ica_enc.c @@ -345,7 +345,11 @@ static void utilCrossCorr( temp = sum2_f( tempBuf1, len ); temp *= sum2_f( tempBuf2, len ); +#ifdef FIX_I120_INV_SQRT + scale = ( temp == 0 ) ? 1.0f : inv_sqrt( temp ); +#else scale = ( temp == 0 ) ? 1.0f : 1.0f / sqrtf( temp ); +#endif /* starting point of lag search range should be less than the ending point */ assert( lagSearchRange[0] <= lagSearchRange[1] ); diff --git a/lib_enc/ivas_tcx_core_enc.c b/lib_enc/ivas_tcx_core_enc.c index 79bb2f04a7..784973d1c4 100644 --- a/lib_enc/ivas_tcx_core_enc.c +++ b/lib_enc/ivas_tcx_core_enc.c @@ -680,7 +680,11 @@ int16_t ivas_acelp_tcx20_switching( for ( i = 0; i < L_frame; i++ ) { +#ifdef FIX_I120_INV_SQRT + x[i] *= (float) L_frame * inv_sqrt( 2 * NORM_MDCT_FACTOR ); +#else x[i] *= (float) L_frame / sqrtf( 2 * NORM_MDCT_FACTOR ); +#endif y[i] = x[i]; } diff --git a/lib_enc/pit_enc.c b/lib_enc/pit_enc.c index f2c518bd3d..454da71966 100644 --- a/lib_enc/pit_enc.c +++ b/lib_enc/pit_enc.c @@ -622,7 +622,6 @@ void norm_corr( for ( t = t_min; t <= t_max; t++ ) { /* Compute correlation between xn[] and excf[] */ - ps = 0.0f; for ( j = 0; j < L_subfr; ++j ) { @@ -630,7 +629,6 @@ void norm_corr( } /* Compute 1/sqrt(energie of excf[]) */ - alp = 0.01f; for ( j = 0; j < L_subfr; ++j ) { diff --git a/lib_enc/voiced_enc.c b/lib_enc/voiced_enc.c index 55ee77a476..21c6993096 100644 --- a/lib_enc/voiced_enc.c +++ b/lib_enc/voiced_enc.c @@ -189,7 +189,11 @@ static double DTFS_freq_corr( tmp = 0.001; } +#ifdef FIX_I120_INV_SQRT + return corr * inv_sqrt( tmp ); +#else return corr / sqrt( tmp ); +#endif } /*-------------------------------------------------------------------* -- GitLab From 229b5e7ad9d08c64c332d32efc74b98a8e3ec5e7 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 22 Sep 2022 14:01:08 +0200 Subject: [PATCH 111/479] add binary for windows --- scripts/tools/Win32/networkSimulator_g192.exe | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 scripts/tools/Win32/networkSimulator_g192.exe diff --git a/scripts/tools/Win32/networkSimulator_g192.exe b/scripts/tools/Win32/networkSimulator_g192.exe new file mode 100755 index 0000000000..c17aff5249 --- /dev/null +++ b/scripts/tools/Win32/networkSimulator_g192.exe @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b81ea0575fb6b40f48c22b59f90820774054e82708750f9350cf9c0ec2674231 +size 578574 -- GitLab From 05869a29aa7d4051125d0c6a23cd522626c14b07 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Thu, 22 Sep 2022 15:24:27 +0200 Subject: [PATCH 112/479] use network simulator with wine on Linux --- scripts/self_test.py | 24 ++++++++++++++++------ scripts/tools/Linux/networkSimulator_g192 | Bin 77160 -> 0 bytes 2 files changed, 18 insertions(+), 6 deletions(-) delete mode 100755 scripts/tools/Linux/networkSimulator_g192 diff --git a/scripts/self_test.py b/scripts/self_test.py index 0f7b8b3697..c1f93c6253 100755 --- a/scripts/self_test.py +++ b/scripts/self_test.py @@ -75,15 +75,17 @@ MODES = { "-MASA": {"1": "MASA1TC", "2": "MASA2TC"}, } SNR_ID_SET = {"SNR", "SegSNR", "WSegSNR"} +TOOLS_DIR_WIN = os.path.realpath( + os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Win32") +) +TOOLS_DIR_LINUX = os.path.realpath( + os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Linux") +) if platform.system() == "Windows": - TOOLS_DIR = os.path.realpath( - os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Win32") - ) + TOOLS_DIR = TOOLS_DIR_WIN elif platform.system() == "Linux": - TOOLS_DIR = os.path.realpath( - os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Linux") - ) + TOOLS_DIR = TOOLS_DIR_LINUX elif platform.system() == "Darwin": if platform.uname().machine.endswith("64"): TOOLS_DIR = os.path.realpath( @@ -988,7 +990,17 @@ class SelfTest(IvasScriptsCommon.IvasScript): proc_cmd = mode[1].pop(0).split() if proc_cmd[0] == "networkSimulator_g192": suffix = "nws" + proc_cmd[0] = os.path.join(TOOLS_DIR, proc_cmd[0]) + print("before: ", proc_cmd) + if suffix == "nws" and TOOLS_DIR == TOOLS_DIR_LINUX: + # use wine + proc_cmd[0] = os.path.join(TOOLS_DIR_WIN, "networkSimulator_g192.exe") + print("during: ", proc_cmd) + proc_cmd = ["wine"] + proc_cmd + + print("after: ", proc_cmd) + proc_cmd = [ "{in_file}" if x == in_file else self.test_for_file(x) for x in proc_cmd ] diff --git a/scripts/tools/Linux/networkSimulator_g192 b/scripts/tools/Linux/networkSimulator_g192 deleted file mode 100755 index 0ceabd4306f7c02a39468c530a1b2a2260db0cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77160 zcmb<-^>JfjWMqH=W(GS35O0AnM8p9?F=(iQL?Ijp1`7sW1_uU31_cH-1_lNe1_lP0 zI&}I56GRV;=74Y+n4$V4Knw;326S2mst!iOYzNUG`=HVo)B`?<5R7IJfbc>3SV2rE zA0`f?T~k4l3=A+DCJxdEwyyyq&wxfx(1D1k$usN^>B7a~HDjfm!cL9`!=>r89 zNZ$>pz8g?|Fj@elfPsMlM#I7rkE$;>OQ(5J!WC&Iu0PWK@7`yVOC`PDoVa`L;>bYEyZ&&Oe}1rGIxaHwC7!#ycD z%rU|tZjVE}28a19IMl1+5I=##{oy#&>*5gS#vy(Uhxt)B#6js7lrP{33d(qfL;YbK z;Q-15*vtVHx7fsEakzgy4)ebcs^vvRt)S?hy=bZe!)R4raoK%P$ zcA2Q)5+j57_>zpG{POsm)V%bPjQG@|qWq!&?_`GfsNfRwynL`ELwuB9aAr}lYfvVL z=^b2RnUq+ZnH-;)U+kG2Tw-XLoRL@*Us9BqSyJqo?CP3amgHK-5FeG26Hu1R5FeFS zo*M+x1vM|e1Y}HbiJ=M9n6%=OqSVA(tY$eIx(0ZIEHRGv%rB1jFG$VH%}+@MnE)~p zY61?20~zd^)Vvg! zTSD{7GxJj7gHnr2b5o&;(=tKss!C4uSG{fLbLt0|OVs9B3uT$iT`_3YAY_U|=ZxF`bElfsd3`o3sKt67$}iEJ!~v?6Z^6xHW|#z(1NllMGm{sT+n+(jwoIJH2CDTx zK>4LonVbv^OboxF`eE%nSozQZs`MEc7*0UT6PUOIRGb5?Jc03V><8J-0B&D{>UIc^ zf#Cs?ILs`N+zTXeDUbjZe?StKg^GcwA4uYIAOR>AfVu}%?ny$$KoqPz1hsdN%S~8$ z2ohHYDTHCD`Jm<;$SjyJ2a-56$iPwpNaCP24_FY?FF+CpwU1!p3P|E0yJ6xQNaCRO z5lq|wNgU)Rn79R!I44XH)Sp2T=Ry+qKoaLh5)VKU=Rp#WKoaLg5>G%9hjv-OvKdI? z{9q9XQGg^4s$(Id3=9=W;({Hh_f<|7=SmKg)Xf74Uz7#KeNS3SLsfq`G1 z0i-?yWa_7v5C8xFKLN}KW$;fgFT(ktjQ#25K{y|jp+CLc2183D4=VURy-bAjK^gbc%Ro3Elwm);bcFLk8THdkLpUFlK|j4z zg!4fe^V3T~I3JWDKfPpx^FbN$)60+lVEzSVz)vq9!ug<#_vz(DI3JYZKD|5$=YulZ zrY46pinT#&<>I+oJJJk@<#i zJv%SPd2~MVXnyh`AjH-1fZ<7xUfb_%3=IE8rPnYpd`Z*emxm0fc=Xyju3=#C=w-D6 zQI_~pSPScjpsN3X3QNMWxj7l_jQ=h6AWMue;?d1|7HR;;{|9OO@-7SvF#VwX-(Y)pH3I`fsdlJGvuzWI>CySLgvX=XcG+qM zh8LB8|NnoH^8f$;W2{?OGcYj59_E)v(f_ji|Ns9WgF-zzpL%rG{_yB5{ov8<`lDOG zqucdEH-qIN{z(U755trMdo;cQ_2)f0_n!Fs|G!7))&qb4|4;GgW>M8(U|{g*bbVoX zz@xhtEZN)o;P3zcyFf*TN9Q?@&f_mC|NZ~(0TK3K1r4Nt1Xce2|KD<;B*deel@sLG z?x_&nysxuBCW18X02O;LPXGP?e>aHrayA14LwDTU%&$D{Ka z$lNu&pvagCQU$XUB60c8|NkD{0v^q;Bs{u>JQy#4RQrKlQM%FtX2$Us3waqBS`L)x zcyzNCtYTpBfIF-S&0$6`hrMRq4Jwe~)*XK#{^$Sy&Kn-xp)XQAv_-&yRHE@(5fq*t zorjSWzWWUd&Kn@7ID=xX5A4X;A1C2q@6r6m!K1VGghyxT0pt+>0Sa-~6CS;yDqwek zJs%I!-syV7qq+75Ln+7$YgdB25PHI+mzN2w4iT_LfBydm2l2}eMzEqA9=)#DJUTD# z0{Lbis7?X7D;s2H>jC~L2U-r4hPYI$_CT7#_WJh)3A$)WaOdyl`UhuQa90_^W@*8|XGJDHn-;bjFVqjZPTV2|cE9v+>wJ3Kl|Hy|ema0YbU;L$6}47LlL90GoUQWtV^n714p(;GZ` zc^_wh0u&Jz$-iL90W?%|-1Q1LTsj#U7`j8Rcyzn&fVy-cH%K2SFhJNrfPcFK2mkg1 z%?J28T~By)hk{bk33w_3wLCzf*$Q$>H%Le54GhVQU;qE79d|t>#sJlS2(AQ{3SFW4 z`L{c;@NYlRdHluVAOHWSb-EsbYB_?TMF^^;+kvC=_=_h${{QcEJp)yJ2Cf?Bz$ZWd z|3B_}0pw|@nhO|e4*UcaA)pL^lvX`@SxwSFL2~@X0*L$rk8Vh?q;fPGgywbju*mU=kH?y=k->QT2Kkx%_Hl3b_~b0j64;9xxdVk1O}7gR|wk`g(nlD_Z%|L^|)|NsA&pveZ0ZfF=daCmgK zdVoR@E+XL3*&2W%BH_{58i69B;L+KdfF#mA;B16B*t!BE24ycfh^D%11mX02Y#z|cJv#P{gsT?Y;gL=4$| zgZYP@1ys+r7J!`7dHjVaD~LN4%y03fV6Z&yxuG726hv;fXn|1N`$Q$AV)Os1yKy8`X1e^+ZTb- z{8VsQ_3}!BH6T1u`4#2~b%?fQo}o*9Xn5Ag3^PPX)Q78yv}u7r-qJ zaLjZbe<24}dC;Tt#x8JK_x+-fs=uuo1wGS1)NGiBtwN;cPq#f zU~S*Gf)WV-`c@Ftc?i{+Amt!uUhwD*z2E^3JFubeIT#pTvmbZ80Ll;^-Jq(~fg|nU z3ugZ9AG%#HICdWBuD!v(-SrCp_7hMac0=R#4M&)3=RwELA0EA?6H`FN!*OsrezErR z|NkD%M+6{lYd*k;WhqwP3+bb#Q2+Td`(aW0r1(c`{d34_M=sf@88c4i*D!3p3>jVeo8+fi_2j{BSA;()y zpb74^diPWi8{!kNa#oOMx*0%e*yq##|IJ{vjNNk)%8tL-$%gQ7>0WS)8|Jn!kQ6xW z9)A%6&a%+7a{NU+3j+gsOE>7XH@u|_$vC2HpqNJpf-^rCD~cf8NFGqh(g|*5>VNwG z|3%eDP_2Mm3n6t`J|KE2$fDqC#`OoN;Ilkb%m(V!yk-IQaEMS|i(Ps18v(El-L5}C z;rNA#fnmbQ!{G54a5oA~egy&fBme*Z$EUxF8Nc~@1mp>s51LTNXa5%B%m>9O*!xJm zNJ!v+AQ<@Fu0N2X0~UUeuIL9)7>k3_UFRWCyg?hE5^NZuV&KtPdjq*C4Cxtx)6ZS7 z0j{9FEtua3;lJ?c4gKKJ>-qv}DjPU^ptieN-XpiWJy2cu!=pQZ1MIAB2LTVuLnVd~ zjt5jQ^aHf(`x;~+D8+O;aCr0vfV$T|JURn7UMqn$bRK^Jw!8D7M|UX5l|P{R9N5wP z2?}1YIWT)UJUTCUXr2HM8+0D>*s*#Q1bFbTKZF#jAbpS!{o&Eg0k);{0;q?>c){b~ z17;7#6S26{a1prdfu#2~4m20RLImWh&f_m;;FIr$`n((AY9Ih}|sL7aqL<97yIpf<)8@5416j71+#!3_^B>zVPS< z70kz990lnHr2${$l97!QTn@n#4k#kQ6$!j1291$OfIREbS^5BM7$h;g0Cmejg|!W+ z?Fp)1o`L)evcdI*M>n_xc>ygx?tx@L?tqlrpr*qMaJg*&)4K|!qVq7={LbSqUW2&@ zA>3O~Q`ERX%|eK8u7HM3x=~s&M8ydc57-QhFid$tUYu+Ky8|j4N8)N=<7 zbGfbn1pz-Oaymi7ZlN1IdR-Sl^N|Zg_yR;rC~V}c5F&g7GKLBo>T#U`G9?(4OhBRH z3aXP?JV31h*Bc&;pwzSinv@oSIv~egAAq_oU}HOvzwl;)^&l32jA;NF-)#UMZ~_l3 z-UNvngG4)BA9ysoJ^+<-V0R0m>U0CC0gX9@KJe%+J>k&_*7*|>2B0jo!lOHMg-3Ug zfQNSI0gr>fSUkFY4?tbk4IbP91rumw4`M}k=mSu00goDjidC@ZZg?<)nsO^VIs*hI zfHF#ohc;vap@j9t)TgjUK0F`8+gzYBxbyf6P|8KAwV+ww<2Wc#7{Ep2aR<=61B?xt zHe{H9TB1)tF1aBo4UtTnYdY;?2W4LWcS%nV`x zyx4-(2T;E`L8LLvr-$FJa)GlShTTN_?HI%WTzo!3xgPdkP+Q4&o8 z*J7YC>kFXn1>*tGG#RLy0L{R?JWP|8q zv{(YwDBxl#3{|HxNDW4@bPW<9n8i}(MUR6&nLTzP^@J`Wl~emcGlt;e97{O`Dx;CR zMNt3ZDX^YAfE8Hqv;is;Anm&kkS_2Kk4^#P;s;VhU^K$O9ns@2+&~`d7C>r0K}0a? z>Wl~I^&4nT2s}mT(HXh}y?*NrJ>b#ndIDNG$#H?_H`ykk*odI1{kk|3voxyN55gJKCbKPc(Z9l8S?=-nU-!F{?2 zZU%(MUa2_T#~MfA<|4=>@W2HmQZRD#DbScQ*kQ=6PZeIY zvJ#>jBT7NV0%}`W2Q)8@rL8jO9(r67(N@{-k5oc@0fiFbw#r_R129X7PY_}B5<;F2 z)V6TNC?Ph3vnZ$@zu?i!1DZ7jRkmo2l?5P0XpNOa-~tLX+zD>1=z`40C>0(+90P8w zfZE*PQlSG?=Vy=_j8b74NEB3_Kyo;8V}%Kv9wAE+m_TMhl-%&>#B8keiXeFj@fRn-i5}FcdEn7`Y(J>|^rHP0XgKn%a zcQA)XC!=@hZjfS2*9S#H9#DtKf*fM$`k;&tCc@3bzyKaaetVSRKf!lZaXMtV9m)VP;)Y90pp9k&p`PDEhl?)I}3PpI)Zv+DCrkuGBNoz0bB*c zGoANK{Q1@PIwZEqDk8oCO8IT#WoW>p4gVdVYQU;{SgSl>B-f)OJP5uSYp? z zN9PIfT*e9TTn40f0xFtd?bIAlng9((fLE=7CLut*deAzV0FKvoptuK>U7c4zDGX#F zsK$Q)ttXN=85mx~U4<-^^yobNV$xMm_5sf$O~3m8KeP%283JubLP8c)fWc=1K*L37 zt_1ffet^d!A;gBF^Bb%9iaoPaEQ8+|MuS_ps)K*TFXSY!49KfxBYK=7i z;NzbMT3#pP0g9AvUr-zH2DF7gkAs2X-WQ~=&l8= zGP~f>4IbRR;o14q6Vd|^0+mGFs67C?%b=)5&gh_e2$Uy0x*a%B!!H81%o5ax^62#4 z;M3{40y7*z{UF$?y?vml!|X1BhW0?K8bQSz*hf1dX&Kbcdf;L0x}na&qq}y6N4M_= zNPnpmBy+;E6FjpFUX6k(4eA%&fJ%G*|NsBBfk(G5XiyH+X#(p7rDGpZUkV`()&vqa z0f|Eb6XtMMki$W}FmUe=)--w#S}_M2eXQN#(H(lgqZ{I`|D`Mbmu^4=^cs+P%|}30 z25M+uxQHIwpmd3~e#-vz|39qpa%?|n5#9^A2mk+fNMCn(70%3yNM-tpzDY zsi{;!4ne7@gn4n*RJCANfD$kwL?BHv%swYkElZsXl(sCHNN!n1ff~-_)^grFglaix z&kIz|AZJ(DIskChcERJ|1168}H$WpA;BFX7VD*E_LvR8^o%s5H4is33kO!qja7oR8 zl>XqgJV*xAs{?f$I*-3N0d5jw)DPga3>hW_uT_GUgL+_ZBB@3lXT;I$j>WGFJPZNv z(!v`0l3-uKtpa(fv-AVr2D9r6@boBXJOn;lcBY<4v$?BflyY^BJsX1 zP>tGIy5nUdhyh+yeF$TuwU>2y8EEw7m`CUJ7cpl+tqxaE-FyMGSxnKRH*|+buPOq~a^w}JJ=)zc`60b9g(LlQkSy|eLvN768&7Mwjm>t`^AV}C#! zFHxt#D<)t%LB&6)>IN@~_vj48Qe}hY=3tX>@?SywPWW57LDN>ft~=m^F`^)WPS+DJ zK?~m@)iQX@6E*{v$_N@ak&54`x+zyb?7@#+o%^jNePpl10DzFZw2kbd(DV3A;)qGRQ-V}9#}xbM!0a6v!LZg zX!8b)CqSEnJbF<|+tZ-F8{%f|nkSA)u%Q6@xFpGx?Blsuv#J5+2|N=kXUd zTnr4Joku)+UBN>jx?BtlKAq1zI*_^llK1PG~GblYlZPfu=14^&pZv1j^TNh+2)c0Up6F_AL zcorSht^@@D*j5LKt)Q(^Cm_vXkki4#KTM!jQm5+$ACNWOwV+WakTOuiAJnql;oEr- z+9H;O45H2O&<3XiaHwg6x+Di7dO=gyrJ&q)0ioyV-~az#vrNE}@VSp;N%){GST{fk zAKZ`a^gRIWoWQz8TS3Ezo#2_84;bY+Xh0FP-OTle$8pyepuM%=5oz#Uj50(>Js1H*)ue4vE~-L4%T)~*8eZcqbffMX0YK>riu zgHG26Py=Upbc4nlLH3q{?L`=PNq~XjC8$`1lz^_F)V2Uzs~vYe0nJa)?L4j%Jgi+i z!1-wcXfg|_^9owa0qz5BfYvUOpyUhk4QPP{hz-t9;N|~kK}(-OMRzIG#o&~^39JY- zK?|Ds0%cfm%7(1lbG-o0PaWvCUhwD!FO7%QN{b=uyd*#c{vEJ2p!@_W|G`{PegX#o zba93NIMabV9SZXJ3aINpfXo4BZr2GO+Mv!0C=WDvbk~Ax1oaj{hHUU?e#7y4@xN38MbA=Dqq+GAs7u!2p$)3?j)T(*vbCWz zJi1Fkt7s0O>rRL2#;AC@55w{wye2?zVV@ENrMlxUA_PHQ1El&1G6Dl`LO>cD$Sv%B z=&C_g3!-g`quuuwT^H6_o*keq4gdfDX9rhz;L)bzFC>LP&UF2Nw%XVS+)D;+bpy4a zpu0m^UrauPQv1QiDG)UnSOjhnk~l_V3$&c}_zTbqa1Tq@5B$>)@NYW+YUhDBQ%ZTj z%-{#fma)FLdGP=L7bOQl!R`uK1_|0PcMzqOg{?B~1P|nZ3ojo*NKFiCgmxZ(VGE8R z(4g=OP>R+Ab3v)&f=A~;pUy`fo%dd7g9OoQX;>QrxikXx<95JX(V)&7G<^L)CV&cE z)YaT?&Vzh{5x&L;i3(qsMU;duWF_`0E@=2x9{B(Ng~$Prt1ue2$6r(*ASIwH1W*Dx z6O?bk0~6qYjskPh0y-Qd2n%TBJcXM6K@GCb<1aRXRD-+Bpm7$^GA&RHu0<9N;6SQW zFeZqg=JX=#0F@D72mU$#|9>}wM>43^122R}HVN7h_2>+Jfz%lVH3Bh4<~cxf1+ej> z<1c=KTa@5Y=&9&S5kaPc`itER9=!peacii*koO)S)F4GWR1hHoa)}1ov?;jZxfxsw z!jt=?ay|kzYS_g;i=(>&YN~*%XlS>@8tfxb{R{5TZh*F;J@`Rg zt&Vbcpv zJFYKY=YtCe(DERV%RudIa5n+8ngKRu4^A84eunP@k6w7w{uLi6eoNFKYpFrws36_P zUwD9q_(5Y<+O8iwnqM%2D%01XEj1rNERW{e7Yy}X&{-sufC%4>77!%*X(u>E5$C5L zpp*fgQvweUz?Q*AK>Wl7+G+-J?Q0cu-(`Wu+|hi8$4||>(EJ1{ED+5VXaoy@5(~H| z0cr3+a}YNlS|p=t?(}`|+6J_U!2@gzI9^3TD=k1}0eE%|wh?LCJ5cTcci&;-FAkt) zO>gKAq>^ddBk*kO3-EkW=`s&U@E|Xo@_UD+mIDo;!B?%}nsEX3TtO!?xITDY2{ss9 zc7UCn^#1>UQ2)OhWnjbSJ!r)2um`HB8CdifV&25{glFeT&&~@zoex2)OFECgSO95H zfaX3xsTDR*5&#lLT_$(zA=tkU!2acLO$B8MR254=DnKW3Kn7i4Gc5Js&L!x?6wu5M zXygE93pk)bH93l38bHC{c?{aM0=W#-_dNlgivb<70Co8@0dNt8IveA(<3DI?YyiqI zh)44qP^hEyWqmqbQPvEC$|BHW8*r$9cnKcx0+k_{Beyp^Aakwz5^Kmn#zY%c%Xr}PTvbYovtT*I(-kkTm>2t zg_J>{NoH7ySoa?^(pusL8?EaD+j9KHY%mR~&B5bEkFTI;DE+9jn4!cB$0s(I^OWGcD=yg!Uf_%8$G*0V++l>7bL(1D`*7(qLK!k-Ub@V z1W#E&)t?4$O+WtP2AGCNKncj0&f_oEfQ4~I1Z0vQmfxn|1v^^KquCW~J!tq3oL`_d z7^n^SIu$mwE5ypc@G=~htvipu2m@OMcflv{p7G-^w7|l+TmUL_tX(gZ@Ops!{E{8C zcMv=Rh#Ym$1DCKSbq`RXV(ogO4m8Pf0z8Nn?a^F&f}z9@GGXounv91{%jkldGo7H8 zA!sfDCCRJ=9a{j&GN6VcEX%O)F)+LY9Tx^lZ?CJM)(O-{cr@2uU?}m1S^`>D0o$o| z0@SL2Sn>jNXbhy)0Zx}8kjCE)&|D38^(177?Hy>c88mNj<25MWLDI+uc6~>wsd4tm zp(7shpvDfkP1bq*g(1jB%pQ3ZxbKV6BVV`?ROrD=De(9P=E_yrXoWnYBL;0iBN{`X z{#_>#BOdmk`k{>V#q$mS|G#M304njpBOXkkg89=16ps@a@krrC>4=Ad+F_vT8&oPB zf8hq^qIJZbL4vT3IIL)ex7wk8XyZj`xnXodq49x|Ji&3U4Vt6`s_2wBi}vkNFa6v$8-)KUDDISR`{Ik+p;L7PJ{hs;r&%K>(7 z=nqU~=R|0 zMF3UF=Fu6(0a54%+5rP@mK4DiUVs~kq7c;AM`=d+uLYGT@T}EYi#*7K5~Q%x7QnHR z#|oZ{#vA%8uAzlK+!kbWQM*O+uOd4KPYi&)oA(w+D-7-~JSKo!6*_PeaKs_#_^u96 zYpt`k!=tmb!J~6(1?B->9=)Lr9=)y|&^d*-SHU$kk4JYaNbyTmP+bdF0_Hfl^TVSn=`^ zD4=`6?w9~g1z{l1fD}PZ>U5p)G88l{gDM7|oCZhFD^T=wha!hk5NN*_c#9KKC{=NxD@)AWjfoP=4OL2DyK6R^|wflsIF4WCZm3oqwD0_+EPA|32$aI0rAq|0Fs zIr-=Ki@%_q1)axVaDiqIKqFsxDkSir@QUaE|G&0{jF}yOu@9>KG?+dJSuM*5SpbAm zO~Eu|f)qBp-T!n5 z9^g6znJ@>nLcxAs2|mUM5#HG53PFdofY-%C7YP2ph-e9dsvO)sf6$4%;9C{yN?@U=C&Yy43CV++!XEIw zohW^aHH$%olIstIG_+5FoM%uvLpdnBuhCt-?jdrU4=xKHXFvWT;0(w%21NeC?8<_2 zBFb2P88b>aAU8Lm-7`>r1GOeV9R={_KWrT?P&)`#;%MGLb0o_2z-w(to(4@Jf!oK2 zpMaYH;N1yJKtuiDv8UrNW`Nn?qtsv~yFCIGTBZ9y0~pBr0ST?q#%3VWCiE6HDDo7uj>V9-x74s z)HJy01JE9SQ2IhX&E)t36sKSmx)^bMm=Pt8L2ifCis;v`Uz!45!50BnW#bX;Us%@9SRT12_Bkz%IV*<^eq1dJf z5+T91`F~LSHUZSsKonk$e~@hhAE}LE+h&k*blc$h6q=)|-jW!B#tbMCNI1qp_uZis z1E6(9;I!!h8ea!ZDnmweu;pdfA0D6~o)T9qgD0TVJJ3c-zJqH8&;SNxy5@yP=O^$$ z|M?ed=Ya|&^r01m21e9TA#xl^%m|MfR%bxt4de#!JsO~8YlxdtKx_O)@n{H)hQMeD zjE2By2#kinXb6mkz-R~z?hpXoy$W-oVm1SVTViHTYKlThz5?i)T7{IEo_S@7IhiS#O3I7!^U@XELE4Ke^O6$&4r{Rbc4%M zlS}f8tgPaFxY#-pu{~{{$xk1JAtw|6g!2FzC$t|DOZ2!FJyN{~BBj3^|}4I~M~(&%FQtGq@NS zR?qwYe+L%>!>xJ$|KH$ZV0bg{|NkFc3=B&1|NocZW?<-=|Np-Q=w|5!|NnzdgmhZ) z|9=HH14F@r|Nm!jGce3q@c;h~ZU%-u3;zGV!Og(HxA6b}KimuqVGIBNSKwh_Xj=IH zzXJ~g!=i=%|ARJ@ep&ece+v%-gUzD<|5xxZFk~$H|NjIJ14GB6|Nmd`FfhDY^#4B( zF9Umj3@Az{kLFZ|VR4C43AFTFd_bpTft$ zP_^v;|1EqB3_F+o|9^##f#KV-|Np=6F)+9-|NmcvpMl}uivRyD_!$`FR{sAV!Oy@D zu=4-^3VsHLgq8pQ&){cZn6>i%{~i1c3~N^Y|9^v@f#KH5|NnpRGcf#G`TxI!00V>0 zs{j8j1Q-}>R{j4UA;7>;w(9?X&?cacRsa9b5MW@~w(9@?9Rdst*H-=ie?x$Qfn)Xm z|33s67$jEz|1TlPz!0?h|9=ZX28NW?|Nn#b%S~GS|9^!b1H*;Y|NqYrWMEjg_W%Dq zf(#7j*Z%*1N05O*ZQcL>e?a=y|NpNd#K4fU{{Md$AqIv;>;L~x5n^EYwEqA979j?P zH5>o`Um?W6AhhZK{}VzC3?`fY|9>IGz~Hv&|9=i)28M`D|Nm+NhUP8*|9=o>VA!?g|9=4y28J_R z{{J@+VPLqu<^TTx5e5d{t^fZQh%hi%Z2kX#f(QeH`_}*eH;6DWRBrwM|AGhu!;-E4 z|9=o+VA#C%|9=5d28O3w|Nl1-Wnkdn_Wyr?CU-rw*CJG@ zul@i3e~@5cFgWo4zknnIL+XM5{|zJ=7%C3@{~sX9z_8}P|NjM&3=9WA+sq^x82%pk z|9^ud1B1Z9|Nk#YGBB7O{Qv)hBm+ar!T=ng9PCWEdDeo%#PiMTUU^bpAz)3n+5i8S$S^Rpo&Ep+hztY6 zm$U!>KLN>~`~ROqmVsf(x&Qw)WEmLVo%{daLzaPo_5A<;8L|uvF6aOM?~r9+$TyF35?H-IkIzWe|G0tE&JiM#**A5dUmsJ;9D z{{saEh9`Ib|7THTU|_oU|G$bN1B1xD|NmVS85k<>{r{h$$iOfiv?y4Sfnnvn|NoaL zGB6n4|NsApA_If-{r~@;C^9gF-v9rfMTvnS{r>;|DoP9tmG}SucTr+scz*x?{|qGt zhF|yp|L;&@V9;L~9R2dlBUjP4}pvu6o?{`UX>1~mqTA8-HvU!cao!1wO|{{w0a3<~f5|9_yyz|i;Z|9=*B28KWH{{Pod zXJE(zO>U?&Fm$~C|362afnn$S|Nnc`85mx@|NnoDIs-%hhyVZ2s53BtuAl}rWErc1 z7#J%A7^QjGIY8@;K;oeL);rq&{|DVa$Kb*aJ_%2Sfq?;ZyWxlC|NjqwZc*hEaO0Ek z;^!{sXkf6HveGgJ#Tvxi7zPH0j@JL6P23XevmL@Re%pTB-m&FHDX|phJ^>n-yq!5{{MdsBLf4=V>t%68$6ns znX?(e27%le!pOjIqvQX7(5V7&HO#C`AO)bTQ^Lr=aIEY9{|3;Vn=p5{HZwC9ft7&6 zVg@4vgUpow|G{_L!_&R2S*AhPF^rEFub0OJMC~VGcf#`{Qp1b z%6531c_PAFgPDQh&E)_8O+kqS79TkXc@Jg=2BsK^ss`Nf#J}U|NnK7#yCzu%+E=>9VA9QCZ-2F)idC(GcaVp+%X494U#))a@(WlQ7}%!a)_;JNfq@T?{s*iK3_{azr#l8V28N<(|Nr|S zyN}5k>;O=@RbXRam^bbJ{{R$uceuO*8w10+Y5)J*BFmS6rNRD709~;-4ST)4;*f~Ic zWMOAuxH}!UA5_>G7=Ga}ALIuYb_NEm8UO!p2i0e=Gyp2kSAvTla5!YJGcfF%i9Owe z+|U7)H$rw}CL#=0urn}RnEC%dKeD_VLjD9h1H*xt|NmPe%NHQzLFfD2nu$FgK=yNh z`tURV{|DWU4o`=v2>luy3=AOsxauPhs5~zBgKo2XgU9_H91IM1@VI{k2Lr=5Jnlci z!NBkWkNaOh_2Y6s2PedQT<+K4WMJT!g**H`I2jmz;Bh}_EJJ7(?(heVaj?w79sVmg z85ltNvE?&R8U&4r7|iwwxn24aY^8Dx(f!k!Q=1_rgcxcyoJ9rwZJ7f@OR-Kk+V z7khpN`E?5y14G)}|NnQQ=eN}eH-N@^{>=OTA9N2LJUp0U!F~bR0U85xnvXjyKx0EL z^KttDG-hOmLmuQt&{&ej{Qv(!^%&fKP`L&vTES&P4QLz*hZ{g<%;9EWh?xKX|9j;4 z0GaU+>>=3cL&qYw(!wz{|ie8;|)3ybKI$@tEJh%fPT5NBDu# zzye+dhE)sx|BpoWKPU}&L&5;0<_IqX!-EC5(+Nn;3tk3>)eHas4?#BvsSe@cV_>+m z5O-S8;bUOnf#Kak+-=-7d<+b~7h`WZkUVI7RAVvrekdp`O+e$O zi~s-ELN9-05akbOOjTtGZZkk*tx`+=|Bpa7!wX@?9DW7{zoq~GJ0iQ&wVAmXns@i` zGcXh^#a@Pi+);3@xw7#NCI{Qqx- z9DbmNI|Bm)D2*QwVqoZ9@&A7&viYF)NHo|Aa2!7oVqmzm^8f#QWHXo`14ke;ScDlE zlve%!?}se!-oxC?QU{I*kQ&gOfzPV{|E0v6{iXl`QJdff2=nzPul9(Q^L&1IZgk2^ns<~T$);LeYr zxevAt|Nnz-Zh@y)f3O$9VGWuS`M3W6|5W6#WQqYR0EHuHuEco*TG6JB2b!` zBErDXwgI;rw}>z>T)^YTD!P`5B@N3{y8^ zuj@cz1ezn-vJv;V!3|Lch8-Jmmy16{85q`X#2(L}Fpv;qV3@!0|9^jE_kr3S5HEn; z2%3jFwGn%N0b~Yfeu{C^|Nlzpc~b$z?=yRC6FJM zh%+!;-}e9iQe-vEb3oGIGVq8v14GOX{BiX{oPnWZ2lloE$Q>LK3=AuG{Qqx=YzL?u zRR&uFj&B_a28L}rahu^I!N72R=l}mz=w{>~%mB?9>hAvkpC4HbGaFa|$giNeM43If z^FC;fF>Md_bPLiCntP1cgS&hJ%}ECA!CgLq<|?P|!Jqd{BpDcP?D_v+4mnOk!BGkh zrw~a7hHH4-SR%>5Z~})LKz^7a$-uz77q|IaBpDdE_u>wNE1>z*J^%lMw$vliG^B6> zng0beAB#u7h!g`uI39TuDFy~lJn|t@3=E*-4Y7@-gVI`w6a$0qUbONToaP~oaF82k zNHH*!d4XmvKn#ZbV0eb@EN6--eyF<9g z6hYGj?1%sVH$%zGy70UlBg4QTcjW(nLu5Z>fQ<*2TQxEa4Ejg@{}({k4=Qt*z(#=8 zERbPfkUok#t$_Rjns-kx1=Laa?11kR$%7@8At)m)s0~&AW1{y%)8#JB;k_&+HLE~2- zegTvZ8m|KJCqVh2@hK301C$RMj{@;8K>48YClLPwln)wj0`Ua|K_mkMXnYC8GJx_y z<4GWX0F)0JKLYU!pnTAH5r{tl$_I@Pf%qGse9(9hh<^df2eC=P9N^P-5IWqQovjo! zLX%4KN=g+B4fTxl40H`GOTm0YO{fS$IR*=qY*-jR{zsPpr6WcL7KR>ZM1#s+kQ&f9 z88-ExbjHLWzyKQG0I7pvkUo$&d?6E50<`fNB#vGlc!J9S83qlgKSAyTX$b|3i!+=+ zOCL21pgbhN04rZWYC#y(wq|4ygO>v!F%SmrpT_2Xkg<#mLJSp%YdcJA^i%Y@FA()P7j0_A)3<3-RN)Qq7d@KV418D9XBt8o~0nGp! zmIN#K1XZ5_ZjdlAfX4Yj5}N;Q>^9 zGidP{0|Nuh8;;Bn^(i(G_251W0|P@lGr|oJ83+kFk_2S$EvP$T?%xPCXB&8N8Uq7( zZWE-11!BGoXfYfE0|R(Gg@J(~7Amd-6#%cXV_;yYgNiQ#FBoB9fKm*zq2f=V{(_kg zTIT|C&j;|rAqEEU`T)@Se5iUEa6^oN0lcP;fq_AT72+Q56p-T(ew+*y-wX|BsIwS; zLB)@OG86*?19%+>sNP|Nn6suBVh%JK7($`q=<%`$DqaQ+XYe{E1_lPu+6=J!p%DlR z&%aRh9Z-8={so;a3{sy3Ug!i#Hy{^)ZmI!^3qjov9#>;vV9@7)xU&sBz{J1+o(E-M zVCaF0@6rJ2M)+$BR6GD0zp(JU2Njotii77X85kHOIU(kAf(NJ>7{K$C3=9l5P;mpa zbe;kg?}Wx9D1U-nFc~zz&mh3i39X>PYZMt67 zH^jd&;DsiL^cD#f{|zcg85kJAYX}$^7*0XOS0q5p2hZa$Ffe@LW?&FxkYKm~Dj30K z9Yh{1ixQ}~ z5;Wn%(s?6PTnsz`#J~Vv)4;&MaGMttK0*u((DEGAO$V9y3aWk?G`?Ww{Dq3Efjedh zd*%5MY><8!cHx7#vlP5Qf`I`%4#2>`a11Jb7(6(RD6f?HA?g#L=^q;X3^7pgWblAL z0|R(Ggn@zK4OCnLTCl<5kyij>P61lJ@PLXNLJfxHBT)Mb6#fd(c!b6890Bb9+6gsh zwKv44;JFx3IuV4}>jVvdSpMyVile)86;!;t0Ada_SQ+?*K;}TikV!4jo)ZQEhBeUq z3tA%#l8*ta7hvdth660VN}%F7(0Tzp$IHOL@BwTNNGB>*1I$VGv;GgVqb6b{oiEFQ~Xg5Qv8;$6BG{n$U6^R?ggm ziob(~KeQTS&=7;T^8vIW0A61MIt~pgo(2_%Ml(Y`RQv)oLqn50L$??xd?0Q?CbvS> z3nfBCVd3)6}v%qTUOdk6`J?7Ak%YnsA`iFheU; zd;?lOT@4klfvSgv|0hZ8;mIilv3Dc1y#XFiWnf^~02O}*t=C}o3P?lLqnB^WQ1MOB zga9p`7(nBspl~}0^$>Wx6jcApFfb@GNizsQ%V$_WHbMqsegm|D1N8>OGN|}jXhH_H z??EA`C<{@40-A2Y^Le0l5L7$?n*L$+W;axP1JpyX{Js+^j$V&|_WFR_?*k1VX!2z+ zl!MqS1`S|XdP{?fqqq0EpyKH9cu9_dL5N9^0XBXC@)HQ(0EvSbX!tACoPE#?1WW%K z@(}j~LHz}-4jJsA;_T3T3Tp?}LB*q>5dvP{%fP^}P9A$YIRI5}1#PFn%AdPXaT}x18Ba0g}**jJSPI; z9`Jl3Xq*Wuehk_kfEvf}0V-|=P2kXIW6)QInva&R!=d8n?UNL!I3u*&gBr&$87kfZ zjTdOMfZ-rie0wg$oiKmtszB^jg$h8kA43;Z{1LRB30k`a()kH0ZUc>9X!d4MP=%P& z0QD#=d=jDJ(a?q`cs`ebf#Dled@i(Hg<8*$tp+hCp%7#nA`Q%iicdfbpHoorPf&-z z(v_P!#GHN5`WL*;g@J*g7AlV3-q-*Y_XAI8Gcag@`_&8#-_1d85MWpU?GQkV6$Td# zi22u{2@O`Bw`hRWL)?x`PRAj>5^9bY)Zwu9|0Sq+A=F>c>Yu?!6JqZwXgY+|<8@GR zCD1?$0|Nti%?twr!!J$j?%~&hnDYgiPQdGv85kI9pyEu>b_F!r7~Vp~1<=A@SsP-G z2{fEx;S&fI*MRy9md^X3;^_U&i%{`1o*vZC)rXkh18t|l#+{R) z;@N2Fa~@Ru0<_}}>whsDU=IgT1Bm(P<(MrF^?p$GTcG6<%srh@ad&9F0}KD%P;mul zyA)Oqs2f7;m4a5_(B=_?7gU@B+8%(Xf2jBzXnui(+YP9=G&J6!(ZC>Pgx$XZMi6^l z(AqP5pyHnHknjhuYhz$w@HU314}un)uz0V8il2anKdgVc0xFIkzf2|&bC%~o%m>fC zGB7aAhKgH2>v3o_GyH>!KXZVnhoy5%Q;0bSpbZvSJI4(w{tp^3F!4yJcnMS-=FVEE zczG1WeDE3<1_lOkGwk7}Wd^Z#H#A;g@f!#gFN2mdF!6~{arAcD8L0SqXgLGb#_-4t z)bEyIP(W)peub)E2(6D`=~>wv;+_U*`w-U84S|XqK@$|LebNOLFM%dNXmm1sG>44m zppPf~1B=Tr7(m?v2_*&wW($bDYoG}MN-^j_#nIgp3l(1r?QeqD`G5?wgqRZwtsi0G z=4c5De*tiR3#1IZmz9Bmp&Y8d06N|XYZtA8ildJsJ%EbOfsS`UhdCG|tRVLCLC0gk zbCjU*Tc|i2w7&yQ)(jV|K<)v#1QkDps^@~{cW80L5NHiC{~pwxFn`U2ilf)>$Drb; zpdB@6vSzps6_0>sXqY*2HrU-`ZUeDb4{89^dWJ-(_y=eO1WH81L=Rno>K|A8$_2~=@4AyoKbI{B4 z1yFJH@r@l&@l(+DJS?3&hKlz?+ttwOpTXZAVm^95s}3q&0Bvu8#{EG)ly!ipM<0iD zcL2qU0D~Dc!-4l$gT~dt;vk)5i)Am;yvCLCCMFC8jw0j=*~>2N7j z+z8tKhm}A3pyKG`B=?}=A<+B?9Ts8WbB5Sk2CWxh=_JM(6rQMI2I3Xq5buVX!w;>$ zpv@+RlTdN={s@N)cJnn{Anrl0XPcnnr=Z~gYX`1|iU&c{Kg?fxt`KwHLGv}N|CIn0 ze+_N_!~8oPDh@j10pw3;vw-0!RD3S9K!Qd;!(*tpd>lwM0|R*NBLf3NzZ=Bfh0ux= z7GGze;^_7DZ>TtWIUwy0F=rDrVxi4(hE%9Hx;rOB#l4^j2eelYFyOrk3=9nJeh~F1 zpa~G(9)^mexA!JO#f8w+@At!=uFgT#&xN+@VCJ*?L+nNG-?{o@Hzyvd9(_FFI8^*I zG^4}%n@Rx?^Y23A1s0Dv0oc zYY7#%fL0W+bhrpAZUpTwz|@}%#O}_QF!gBl0z+_eQHh~mK0|zbVp3*&Nn$!fa#2Zf zNoiV|UNS>UYEf!>W^qYsQG7{md~!~HUTQHze0)lNe0olPQesYgN=bfEaeQKF1w(Rv zZb43JNotCo0d^JfX_v&o z3ypX6fC_rJ1Tn8U00AqDZ^gZn_?2GMF6 zAD^CA8lPNIVQ3y7pO;^ho0t=yS&~`=QsNn4Xb>D!QUEy$65)(s!+4Mr4C7s0T?-1R zWRSC=Ymj%a5q=*Vn#2c#(p*t$PJVJ?Nvdl=ut9vVF$e{LTvcLdo|#vYnqHKc6Q7)) zS6q^qSK^uElVs=$j_2SKL&Ny^V z0F(_}Ens>)k;B8)H6SEDz&qF^KG-}y*c9aO;1UzCxj_MLNkQJoii3^fU0wbCf=dj| zic&#p;)_z#Qj1dal2biH;$2NjDhpCw{e#Wp88S-p^NJnZeLS6<gpP79Pb)p5FZjBY#ASH0W#dr8s- zA&KN9zL^?(d7(;^;$k~*T#9tMWvBzuo);o{V;qAO#tA$i7hW>xguwvEUzqA zS5Ve5h)2#kNXDWS(uU?32c~)=vLK<@1QlE#7&+m%x|W5+2Rnk|7d2bu zW_ku>VT7!!t6y+DwnQ2NGQri*G$k_)S_sC23&0@nV2k)*aKc9lP?T~MTJ^z`C$eAA z3I=FIxVj(;OZ?TOIjj=R%q_@?Pf09Egr<$)5{r13)Z&t&{7Tf21cwJCnS%=uJe4p? zWeqh9)Leo@lVyB-3e18mNH80N;@i+1RFotZrNXP>Vzi3I5Tq=)#Ly%@9#$*HC&n9k zW@Wkh1(#T+<|QWOq{e5ac}5f$1(z6^#K&hA$0uc$lxG&F!gPR?c!tE6xtf+G=9GeJ zRU=rP1ghRl;)6}%gMt%1Lk!|w8RAnxAp?qkkgZ9H#hJ4AgxGcJ+|mIG>Z3)PtHh9&W_JX&2!BS@Joq3tL$R21uMF}uyJ&aHSDsiD& zQL4)sCLp@_~l!NNE+|;7<)cE53 zqLTRX%#sXHV<;`Ph#DarY#a|Nh~Z^7wl+Q};W&YlE2xd+25RBJOCv-mfs+g(Z$sM) zps+)3Z{Ud>NS7Z}%NCa>7Q`1N=B1|=Q^k+yX&oHoX_OnCSnpiU{T*1RK80CZsXmA1AXf!g2kB781a#HisOETiY z*9!%BCqs%Nl&%Dh@)cKQ66HrID6sTpA%2ffDbA12NX$#gNd*N2Qa1)x20;Bt)X)`F z53DRiYCxils^H6j@QxZd2ZNe$;Nc>0T}X{wMOxJdX^XqZ2SbosJgzDb>T`Ij2}{=- zR?`_-;vMfm%_0OEeV}dwB4rzZ+nAti2pZA}0S#0_%LPOpM9=9^hr3!phl)}`om22A zJdz%4xeKZhk>){efps~t4}N3IJFuPtl5IHpp2(xVhVh^wCvb65hB|DOSyb#Al!=z7 zf=f(5tqatlRVfmCKeZGrh`Wx66=#Y3qNyHS?bc6Py6Jb*+h%9Pkgncv=JdT6n074cS#$$J)D{KfA zHgq0bVrUQ#8rLgH1kD!^Fc-xQNH!4HWxyDd0}bF4>~*<>>lLM@>BYyVS5(9oq!tzD zgPM&cmGNZ;pkfl?3TT56a~>xPR6QHT2Z07W@z3I5X@8+)6xuezObQY+(S}oVT%8R; zLr0mQsU%lWVGW&6A+C9WsJuYk0O*J#rdC+U!P_e!)v%@s?$Q7`Xkdw$%mjqg=E%(j z*V2R^CC0g#d7inhLEhl85!mnuu89&u%(4MAIDf|*N7)8xHkZFP763}23q@@WS)dDX|08KGM z+MOr^TzW>9kn#+XX~7i_ia($&KyaWSS_xS7L8A#{&?pPsK1OO?LKT{VZ^uN>d$6Vj z)MBJzOxQRta*jufJ!Ge2wrapZiBiR8fd=Ei89BHFTo-1P=4C^>ahdsf;PDq~G(2;V z`g7Q4RY5fdyh9g^cfEw*h(31EZqRqmKs_zK(hv3mV;)y;T-fl3Lcq<4RN~$ zAXS9mCOwXsC(sl=XrKvHWx^(AqCm67$gPt^aKVEd`PjUPoB|MK5GZsLJ;Cc1pwsz~ zd0j-K1TxHu(%c|m6{yJz_dckmho)FpSMdfYY%1eWIe8ns% zE+IK3BtF;;go3<5T{Yxv3|kZfp8o*N*2GgU^?-&Jv8SG(93oai;Fw^=7WSCkBY3zV z25mueXqf9Vpw$oQbq{F93N)w~1nE2mmlzp<7F(5|r(R_Dx(1g(TaqF1Irs-v4Dt1i z4ddf8^B`@6;u6p_F4f9ka*AJQ9cKou_447fz!*!C43XFAfY%`fgXT%nl5_HlQ_-3= zdF8nf5tK0>w2?;aGseLsmhth4DP`2^H|4mNL7Eu^XQA*ln4r}J+L$3y*$GXv*sDF{ zWJJM8xGVBVcuGz{SuWC?iXOC?0}EsnJ7L8fbr-fEN@BS0K@;PU8FJ7(7Gx9`#U-FD z3!5TG9q}bPfqD{;0jzy&ke3BuVBw%7?_ zKRi$o#UP$QP0sNI&7$Ba3qeByh-w^VTme)LLW)69e}jmE05OgRDh0sJUWB932j7q* zA9+z$FwXHUgjvu4Aif&{n)AcDdI=OVINC`l-4Jht}^(OLr@^$%Qi?3Mk#Y(6**{_4$%Px^~>NZ z>Omz7;aT$JvLw`Lay=tMaOV}&-GMK+hju8a)nP>MP#Btl+QP-DMWD?egSHtATJ{cY z9;dp3M!QL=^6>O-P@6yGrWD9<57G=Gbt20z*a+4?#ond`r8#H^6})KxGJWU{>Zw9z z5FrkOtWEP##jZf#+?(i8nqcKOb!u0s%kc9$m>HAp$^yO0coC5Tkg8TySbds}zu<1Kij^ zNhhFC1((X0bqCh+2lqTZ*dFAud93>3)e~q+1RCU^G5W*`)G_+vl9be75RR-XZV))uz(C|5^ zIs@lI(1HliU<|cpxj~~o;DwZ+JvrbdXP~BKQ3*qQY944|C`!u^>OQPPjW`3s$P;@& zfF^+BA@jeGL=JDip`;zM(|E9XJUOX6*d5f^10{6uYH0XMWfVt&=JbeJu54rgS{CP- zS5R8wlvz@gnwaaBnUjjTBn}p+(6Loe1&fi&k<@@zCxFujI2(d?HGwM(f?81X1Z1iM zIc#wyMdWdrfMDqUDbSD>^0+cQRf1AG2;(0PaYbzgB%yRouxz74b|(n~)<_+v0w32L zhO~mB%)F8`%=~Uh<)JcgZ3`M>wTy>s-EanV9Y8UQocXc&1QyYV-ZYXY;JrU^(;pt8 z;PMu^^no?Ran3Nn)>{#B4Yv6XxFf*JL5ots6JDD9B_RQo^Nr|CgKrU(ggbyr!pN=M-9gp${X&TU?;co5;-sXzIaIa3UIc zpgn6S$rWoRBx4JkWqhzRXn7KzDl*tG9%Ho#B!(e%BWV44erX96=eM%pB0V`J&X4(xSY0{Bw$~ptYUg5Jos1Yv&kSMUU8Jjb#xZT7{1= z9vU)4j#LpG;6=_TXn7uWW+k}9A|(@ayhAco#(zQEHVmz1KFVwKC!hx(@ zL}~^Qy)X=IrV5&{5u)IZFQk$LB^>DXV)$-JP4rm8Cs5=H< zm4H3xAlgjuK?g{611UA(qrk{H3^dkBU_cnWaT>XtL+k6H7>8&yBSI70!iI)1OrB7g zg={DyVSt8YU~9Y!2+i}u3omeN!j`{-`c6pAK59e{IW0X%f=3G@6i-7dbKJ`n2n<6* zLfSI~w0#nG)=-GAGw7tD5YWm7xC@}E8~f&YWG6v7Vqkm5HGdY->Mu1EIwb!Yt(ZE%cU97V2)=TyVV$PEN?_5nE3X+1*I#2e}yn z8dd`h+kjjRs{)~}gEfqxJw2q2Bw6^zE(~Bh&LCln!%%Q*3pPOJihAM>M57_7dM0!X zfU}`%fH&xT0ONSi{Ni~3g4Dd+{1oV{5z5jI8ZP}p>Wd;OF;Gtc7LYXP1c3HKo6%@D zG&uZ0W0kN*5W-iW!w#@j^h6(TfL!F^D?-7&EO=`i)Rx8U&clKiR!E?fbx^m1hHNwQ zJabT&RfEjJKVynz2?56N7)thnIReYVDp(x~+5eIQY8Rj%p+TKZFDAG*y@1+~n44Zq z;)B7*fq~lF@$ryuB76vy3Z+X9X*<0jH8ye|5ma?U#sY{MhP8D1x|IKmI3CeBA~@o&_ldHsSi35jk3BAn!izwN(wdr?>YmGV1o`!GDJEs zDGfYAfZ82GuGWyF2v)bD?q$GHS3w#PAft$Bs$egL;M<@xNvJz%SZ5)599*u&BQ+~f zrzya@Q5fQ*^2&3AK(qGHvt8m#AR&#YWDzY4Xfqc)lE$D{T$x*vn8cu0Tv7y~Ghi&x zv3f-X40?I_C8>Jpd8K*B-6QsTIko1tsy|6|)diA!kfN z%z&{$=75}`SCkKSa$;^~GJ_sSltC}4xR^mNIX^cyH4l1DIp_>nN-*fYV9=Exu=_bB zp!c7`XxM$hFgrkMVQdf$x<&?cM=wmj1ynzbHUKF?!mxXfU_zjCaFO+AK=s3D*txne z^{{*AV0_Rq+{pT2_qW1m(0!~hwICW@Kj_@mZ~y=2!`u(M2N_1g+|LHmjC8Lsl*<4* zejju-F-$+~o@5xE0QC>Zji9iD`5$(!F6ex3kP?`F*uBdz8g|bz%s!AAFgAz=9hVEb z!x*L?c5gA91}Q?i#~G#$M%OVgFo5nvhVfzdBEx9dG5;X z!|rK@(Xe}((Zdhs|LIWuu=B=Y_ddgD*ger8{h+JkVD`iGFNEIJ2$Bc833hJ@lm?}5 zusDL8+^GwvZQnD_=X z`#(VS!{`kl!y#J0BupQS-if9kc3%&So(@W&V4V;GrVqknVAzkQA9gPnjOK+Ygwp8Y zcND507XJ*;`ypYp5}F2B{6URlIE$tqcAqbdz5+^kFvZZcg2ZLGji&!cH$)aj%b*ni z==MKF(=P(Oe;7uC?pubK2qDqD!|pbnZ-7+5?qNRwH3!{37#~J6GeYhxh3SXg z_k4m#{h<4BKuH9q{{r;>(hE@iAUTk`U>Kbby1yBec47Kq_a@(f>KA}UEG!ye?uMnK z)zI*R>4)9({$d@(MhP?vVftaTD)?Sz1_qdZ23Uau$`}lYd)*m$ zx&s*IZ&>-o$$;c{uucf^;v$4*g5Ki-;eqbdhOr Date: Thu, 22 Sep 2022 15:59:08 +0200 Subject: [PATCH 113/479] remove forgotton debug printouts --- scripts/self_test.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/self_test.py b/scripts/self_test.py index c1f93c6253..05c6944ddd 100755 --- a/scripts/self_test.py +++ b/scripts/self_test.py @@ -992,15 +992,11 @@ class SelfTest(IvasScriptsCommon.IvasScript): suffix = "nws" proc_cmd[0] = os.path.join(TOOLS_DIR, proc_cmd[0]) - print("before: ", proc_cmd) if suffix == "nws" and TOOLS_DIR == TOOLS_DIR_LINUX: # use wine proc_cmd[0] = os.path.join(TOOLS_DIR_WIN, "networkSimulator_g192.exe") - print("during: ", proc_cmd) proc_cmd = ["wine"] + proc_cmd - print("after: ", proc_cmd) - proc_cmd = [ "{in_file}" if x == in_file else self.test_for_file(x) for x in proc_cmd ] -- GitLab From 9f29538337abe80ec71e2333ec272031ce0d0467 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 22 Sep 2022 16:42:49 +0200 Subject: [PATCH 114/479] extend temporary fix to keep EVS bit-exactness --- lib_enc/bw_detect.c | 1 - lib_enc/ivas_init_enc.c | 1 + lib_enc/lib_enc.c | 4 +++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib_enc/bw_detect.c b/lib_enc/bw_detect.c index c1357a7f74..c2955f1f39 100644 --- a/lib_enc/bw_detect.c +++ b/lib_enc/bw_detect.c @@ -494,7 +494,6 @@ void bw_detect( st->input_bwidth = st->max_bwidth; } - if ( st->element_mode == EVS_MONO ) { set_bw( -1, -1, st, st->codec_mode ); diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index 34868ebefc..8d9f7e445e 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -233,6 +233,7 @@ void copy_encoder_config( st->force = st_ivas->hEncoderConfig->force; #endif st->element_mode = st_ivas->hEncoderConfig->element_mode_init; + return; } diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index ede42ddeaf..ef5c621fec 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1905,12 +1905,14 @@ static void updateBandwidthFromFs( } #endif + #ifdef FIX_I74_BW_LIMITATION_ALT /*---------------------------------------------------------------------* * sanitizeBandwidth() * * *---------------------------------------------------------------------*/ + static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ) { @@ -1967,7 +1969,6 @@ static ivas_error sanitizeBandwidth( { max_bwidth_tmp = WB; } -#endif /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ if ( ( max_bwidth_tmp == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) @@ -1981,6 +1982,7 @@ static ivas_error sanitizeBandwidth( return IVAS_ERR_INVALID_BITRATE; } } +#endif } else { -- GitLab From 7495d19eacff08d7e83d783e4bc81897fe72980c Mon Sep 17 00:00:00 2001 From: norvell Date: Fri, 23 Sep 2022 09:29:40 +0000 Subject: [PATCH 115/479] Changed "\[evs[ -]non[ -]*be\]" to "\[evs[ -]*non[ -]*be\]" to allow any combinations of spaces/hyphens between EVS and non-be in the tag. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bdfefff19d..93fe2a758b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -305,7 +305,7 @@ self-test-on-merge-request: ### analyse test output # some helper variables - "|| true" to prevent failures from grep not finding anything - - evs_non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]non[ -]*be\]") || true + - evs_non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]*non[ -]*be\]") || true - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true - run_errors=$(cat test_output.txt test_output_evs.txt | grep -c "test conditions had run errors") || true - bitexact=$(cat test_output.txt | grep -c "All [0-9]* tests are bitexact") || true -- GitLab From 51f37f4f04575786f8b966280a162a8a01897593 Mon Sep 17 00:00:00 2001 From: Eleni Fotopoulou Date: Fri, 23 Sep 2022 12:14:46 +0200 Subject: [PATCH 116/479] [fix] move TCX5 grouping under proper conditions. Under FIX_I13_TCX_TNS_ISSUE. Differences with fix before are negligible --- lib_dec/dec_tcx.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 3891ba0212..760fdf8e5b 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1531,11 +1531,12 @@ void decoder_tcx_tns( isTCX5 = 1; tcx5SpectrumDeinterleaving( L >> 1, x ); - +#ifndef FIX_I13_TCX_TNS_ISSUE if ( hTcxCfg->fIsTNSAllowed && fUseTns != 0 && bfi != 1 && tnsData->tnsOnWhitenedSpectra == whitenedDomain ) { tcx5TnsGrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x ); } +#endif } } @@ -1553,6 +1554,13 @@ void decoder_tcx_tns( /* Apply TNS to get the reconstructed signal */ SetTnsConfig( hTcxCfg, L_frame_glob == st->L_frame, ( st->last_core == ACELP_CORE ) && ( frame_cnt == 0 ) ); +#ifdef FIX_I13_TCX_TNS_ISSUE + if ( ( L_frame == st->L_frame >> 1 ) && st->tcxonly && isTCX5 ) + { + tcx5TnsGrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x ); + } +#endif + ApplyTnsFilter( hTcxCfg->pCurrentTnsConfig, tnsData, x, 0 ); #ifdef DEBUG_PLOT sendDebout( "tnsSpec2", L_frameTCX, 1, "aftTNS", MTV_FLOAT, x ); -- GitLab From 87bbe681b3a9085a7d2ccf1cc7a3dce39c142539 Mon Sep 17 00:00:00 2001 From: Vladimir Malenovsky Date: Fri, 23 Sep 2022 13:25:59 +0200 Subject: [PATCH 117/479] Restricting modifications to keep EVS BE --- lib_com/prot.h | 35 ++++++++++++++++++++++- lib_com/swb_bwe_com.c | 17 +++++++++-- lib_com/vlpc_2st_com.c | 45 ++++++++++++++++++++++------- lib_dec/core_switching_dec.c | 13 +++++++-- lib_dec/dlpc_avq.c | 25 +++++++++++++--- lib_dec/dlpc_stoch.c | 7 ++++- lib_dec/swb_bwe_dec_hr.c | 7 ++++- lib_dec/swb_tbe_dec.c | 21 +++++++++++--- lib_dec/updt_dec.c | 7 ++++- lib_dec/vlpc_2st_dec.c | 10 ++++++- lib_enc/core_enc_ol.c | 13 +++++++-- lib_enc/eval_pit_contr.c | 13 +++++++-- lib_enc/frame_spec_dif_cor_rate.c | 17 +++++++++-- lib_enc/igf_enc.c | 47 +++++++++++++++++++++++++------ lib_enc/pre_proc.c | 6 +++- lib_enc/qlpc_avq.c | 24 ++++++++++++++-- lib_enc/qlpc_stoch.c | 7 +++-- lib_enc/swb_bwe_enc.c | 14 +++++++-- lib_enc/vad_proc.c | 10 ++++++- lib_enc/vlpc_2st_cod.c | 18 ++++++++++-- lib_enc/voiced_enc.c | 4 --- 21 files changed, 300 insertions(+), 60 deletions(-) diff --git a/lib_com/prot.h b/lib_com/prot.h index 4c91c8cd52..d354c9db2d 100644 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -2784,6 +2784,10 @@ void calc_tilt_bwe( const float *sp, /* i : input signal */ float *tilt, /* o : signal tilt */ const int16_t N /* i : signal length */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i : IVAS element mode */ +#endif ); void fd_bwe_enc_init( @@ -7083,6 +7087,10 @@ void qlpc_avq( int16_t *nbbits, /* o : Number of quantization bits */ const int16_t core, /* i : core */ const int32_t sr_core /* i : internal sampling rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i" IVAS element mode */ +#endif ); int16_t encode_lpc_avq( @@ -7098,6 +7106,10 @@ int16_t dlpc_avq( float *LSF_Q, /* o : Quantized LSF vectors */ const int16_t numlpc, /* i : Number of sets of lpc */ const int32_t sr_core /* i : internal sampling rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i: IVAS element mode */ +#endif ); int16_t decode_lpc_avq( @@ -7124,6 +7136,10 @@ int16_t vlpc_2st_cod( int16_t *indx, /* o : index[] (4 bits per words) */ const int16_t mode, /* i : 0=abs, >0=rel */ const int32_t sr_core /* i : internal sampling rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i" IVAS element mode */ +#endif ); void vlpc_2st_dec( @@ -7131,13 +7147,22 @@ void vlpc_2st_dec( int16_t *indx, /* i : index[] (4 bits per words) */ const int16_t mode, /* i : 0=abs, >0=rel */ const int32_t sr_core /* i : internal sampling rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i: IVAS element mode */ +#endif ); void lsf_weight_2st( const float *lsfq, float *w, const int16_t mode, - const int32_t sr_core ); + const int32_t sr_core +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode +#endif +); void mdct_window_sine( float *window, @@ -8367,6 +8392,10 @@ int16_t vad_proc( VAD_CLDFB_HANDLE hVAD_CLDFB, /* i/o: CLDFB VAD state */ int16_t *cldfb_addition, const int16_t vada_flag /* i : VAD flag */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i: IVAS element mode */ +#endif ); void subband_FFT( @@ -8389,6 +8418,10 @@ void frame_spec_dif_cor_rate( float spec_amp[], /* i : spectral amplitude */ float pre_spec_low_dif[], /* i/o: low spectrum different */ float f_tonality_rate[] /* o : tonality rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i: IVAS element mode */ +#endif ); void ltd_stable( diff --git a/lib_com/swb_bwe_com.c b/lib_com/swb_bwe_com.c index 1d8ba7869b..c54d343b97 100644 --- a/lib_com/swb_bwe_com.c +++ b/lib_com/swb_bwe_com.c @@ -288,6 +288,10 @@ void calc_tilt_bwe( const float *sp, /* i : input signal */ float *tilt, /* o : signal tilt */ const int16_t N /* i : signal length */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i : IVAS element mode */ +#endif ) { int16_t i; @@ -309,9 +313,16 @@ void calc_tilt_bwe( } #ifdef FIX_I120_INV_SQRT - *tilt = r1 * inv_sqrt( r0 ); -#else - *tilt = (float) ( r1 / sqrt( r0 ) ); + if ( element_mode != EVS_MONO ) + { + *tilt = r1 * inv_sqrt( r0 ); + } + else + { +#endif + *tilt = (float) ( r1 / sqrt( r0 ) ); +#ifdef FIX_I120_INV_SQRT + } #endif return; diff --git a/lib_com/vlpc_2st_com.c b/lib_com/vlpc_2st_com.c index 79981bab0b..3753565678 100644 --- a/lib_com/vlpc_2st_com.c +++ b/lib_com/vlpc_2st_com.c @@ -52,7 +52,11 @@ void lsf_weight_2st( const float *lsfq, float *w, const int16_t mode, - const int32_t sr_core ) + const int32_t sr_core +#ifdef FIX_I120_INV_SQRT + ,const int16_t element_mode +#endif +) { int16_t i; float d[M + 1]; @@ -75,25 +79,46 @@ void lsf_weight_2st( if ( mode == 0 ) { #ifdef FIX_I120_INV_SQRT - w[i] = (float) ( 60.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* abs */ -#else - w[i] = (float) ( 60.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* abs */ + if ( element_mode != EVS_MONO ) + { + w[i] = (float) ( 60.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* abs */ + } + else + { +#endif + w[i] = (float) ( 60.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* abs */ +#ifdef FIX_I120_INV_SQRT + } #endif } else if ( mode == 1 ) { #ifdef FIX_I120_INV_SQRT - w[i] = (float) ( 65.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* mid */ -#else - w[i] = (float) ( 65.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* mid */ + if ( element_mode != EVS_MONO ) + { + w[i] = (float) ( 65.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* mid */ + } + else + { +#endif + w[i] = (float) ( 65.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* mid */ +#ifdef FIX_I120_INV_SQRT + } #endif } else { #ifdef FIX_I120_INV_SQRT - w[i] = (float) ( 63.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* rel2 */ -#else - w[i] = (float) ( 63.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* rel2 */ + if ( element_mode != EVS_MONO ) + { + w[i] = (float) ( 63.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* rel2 */ + } + else + { +#endif + w[i] = (float) ( 63.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* rel2 */ +#ifdef FIX_I120_INV_SQRT + } #endif } } diff --git a/lib_dec/core_switching_dec.c b/lib_dec/core_switching_dec.c index 61537f76e3..1f8c34b2e5 100644 --- a/lib_dec/core_switching_dec.c +++ b/lib_dec/core_switching_dec.c @@ -1051,7 +1051,11 @@ void bw_switching_pre_proc( if ( st->core == ACELP_CORE && !( st->bfi == 1 && st->con_tcx == 1 ) && st->hBWE_FD != NULL && !( st->core_brate <= SID_2k40 && st->element_mode == IVAS_CPE_DFT && nchan_out == 2 ) && !( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_4k4 ) ) { /* Calculate tilt of the ACELP core synthesis - needed in SWB BWE decoding */ - calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame ); + calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame +#ifdef FIX_I120_INV_SQRT + ,st->element_mode +#endif + ); } return; @@ -1063,7 +1067,12 @@ void bw_switching_pre_proc( * Calculate tilt of the ACELP core synthesis *----------------------------------------------------------------------*/ - calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame ); + calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame +#ifdef FIX_I120_INV_SQRT + , + st->element_mode +#endif + ); /*-------------------------------------------------------------------------------* * Calculate frequency energy of 0~3.2kHz and 3.2~6.4kHz the ACELP core synthesis diff --git a/lib_dec/dlpc_avq.c b/lib_dec/dlpc_avq.c index 83a0029fb3..b32315ec38 100644 --- a/lib_dec/dlpc_avq.c +++ b/lib_dec/dlpc_avq.c @@ -51,13 +51,16 @@ int16_t dlpc_avq( float *LSF_Q, /* o : Quantized LSF vectors */ const int16_t numlpc, /* i : Number of sets of lpc */ const int32_t sr_core /* i : internal sampling rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i: IVAS element mode */ +#endif ) { int16_t i, nbi, last; int16_t *p_index, q_type; /* Last LPC index */ - if ( numlpc == 1 ) { last = 0; @@ -77,7 +80,11 @@ int16_t dlpc_avq( vlpc_1st_dec( p_index[0], &LSF_Q[last], sr_core ); p_index++; - vlpc_2st_dec( &LSF_Q[last], &p_index[0], 0, sr_core ); + vlpc_2st_dec( &LSF_Q[last], &p_index[0], 0, sr_core +#ifdef FIX_I120_INV_SQRT + ,element_mode +#endif + ); nbi = 2 + p_index[0] + p_index[1]; p_index += nbi; @@ -97,7 +104,12 @@ int16_t dlpc_avq( } vlpc_1st_dec( p_index[0], &LSF_Q[0], sr_core ); p_index++; - vlpc_2st_dec( &LSF_Q[0], &p_index[0], 0, sr_core ); + vlpc_2st_dec( &LSF_Q[0], &p_index[0], 0, sr_core +#ifdef FIX_I120_INV_SQRT + , + element_mode +#endif + ); } else if ( q_type == 1 ) { @@ -106,7 +118,12 @@ int16_t dlpc_avq( LSF_Q[i] = LSF_Q[M + i]; } - vlpc_2st_dec( &LSF_Q[0], &p_index[0], 3, sr_core ); + vlpc_2st_dec( &LSF_Q[0], &p_index[0], 3, sr_core +#ifdef FIX_I120_INV_SQRT + , + element_mode +#endif + ); } nbi = 2 + p_index[0] + p_index[1]; diff --git a/lib_dec/dlpc_stoch.c b/lib_dec/dlpc_stoch.c index 59ec142c0a..07d0de95a9 100644 --- a/lib_dec/dlpc_stoch.c +++ b/lib_dec/dlpc_stoch.c @@ -70,7 +70,12 @@ void lpc_unquantize( nb_indices = 0; if ( st->lpcQuantization == 0 ) { - nb_indices = dlpc_avq( param_lpc, &lsf[M], st->numlpc, st->sr_core ); + nb_indices = dlpc_avq( param_lpc, &lsf[M], st->numlpc, st->sr_core +#ifdef FIX_I120_INV_SQRT + ,st->element_mode +#endif + ); + for ( k = 0; k < st->numlpc; k++ ) { lsf2lsp( &lsf[( k + 1 ) * M], &lsp[( k + 1 ) * M], M, st->sr_core ); diff --git a/lib_dec/swb_bwe_dec_hr.c b/lib_dec/swb_bwe_dec_hr.c index edfaaf67be..b42ad33adf 100644 --- a/lib_dec/swb_bwe_dec_hr.c +++ b/lib_dec/swb_bwe_dec_hr.c @@ -103,7 +103,12 @@ void swb_bwe_dec_hr( * calculate tilt of the core synthesis *---------------------------------------------------------------------*/ - calc_tilt_bwe( syn_12k8_16k, &tilt_wb, L_FRAME16k ); + calc_tilt_bwe( syn_12k8_16k, &tilt_wb, L_FRAME16k +#ifdef FIX_I120_INV_SQRT + , + st->element_mode +#endif + ); pitch = sum_f( pitch_buf, NB_SUBFR16k ) + EPSILON; /*---------------------------------------------------------------------* diff --git a/lib_dec/swb_tbe_dec.c b/lib_dec/swb_tbe_dec.c index cbf1dddceb..f4c81147a5 100644 --- a/lib_dec/swb_tbe_dec.c +++ b/lib_dec/swb_tbe_dec.c @@ -529,7 +529,12 @@ void swb_tbe_dec( } /* find tilt */ - calc_tilt_bwe( old_syn_12k8_16k, &tilt_swb_fec, L_FRAME ); + calc_tilt_bwe( old_syn_12k8_16k, &tilt_swb_fec, L_FRAME +#ifdef FIX_I120_INV_SQRT + , + st->element_mode +#endif + ); if ( st->bfi && st->clas_dec != UNVOICED_CLAS ) { @@ -833,10 +838,18 @@ void swb_tbe_dec( if ( st->codec_mode == MODE1 && st->element_mode == EVS_MONO ) { #ifdef FIX_I120_INV_SQRT - scale = (float) ( hBWE_TD->prev1_shb_ener_sf * inv_sqrt( ( hBWE_TD->prev2_shb_ener_sf * hBWE_TD->prev3_shb_ener_sf ) + 0.0001f ) ); -#else - scale = (float) ( hBWE_TD->prev1_shb_ener_sf / sqrt( ( hBWE_TD->prev2_shb_ener_sf * hBWE_TD->prev3_shb_ener_sf ) + 0.0001 ) ); + if ( st->element_mode != EVS_MONO ) + { + scale = (float) ( hBWE_TD->prev1_shb_ener_sf * inv_sqrt( ( hBWE_TD->prev2_shb_ener_sf * hBWE_TD->prev3_shb_ener_sf ) + 0.0001f ) ); + } + else + { #endif + scale = (float) ( hBWE_TD->prev1_shb_ener_sf / sqrt( ( hBWE_TD->prev2_shb_ener_sf * hBWE_TD->prev3_shb_ener_sf ) + 0.0001 ) ); +#ifdef FIX_I120_INV_SQRT + } +#endif + scale = hBWE_TD->prev_res_shb_gshape * min( scale, 1.0f ); if ( hBWE_TD->prev2_shb_ener_sf > 2.0f * hBWE_TD->prev1_shb_ener_sf || hBWE_TD->prev3_shb_ener_sf > 2.0f * hBWE_TD->prev2_shb_ener_sf ) { diff --git a/lib_dec/updt_dec.c b/lib_dec/updt_dec.c index 2c3eed80e3..4d1d9793cc 100644 --- a/lib_dec/updt_dec.c +++ b/lib_dec/updt_dec.c @@ -363,7 +363,12 @@ void updt_bw_switching( { if ( st->output_Fs == 32000 && st->bwidth == SWB ) { - calc_tilt_bwe( synth, &( st->tilt_swb ), L_FRAME32k ); + calc_tilt_bwe( synth, &( st->tilt_swb ), L_FRAME32k +#ifdef FIX_I120_INV_SQRT + , + st->element_mode +#endif + ); } st->prev_enerLH = st->enerLH; diff --git a/lib_dec/vlpc_2st_dec.c b/lib_dec/vlpc_2st_dec.c index 83163cda78..b77be1a1a0 100644 --- a/lib_dec/vlpc_2st_dec.c +++ b/lib_dec/vlpc_2st_dec.c @@ -50,6 +50,10 @@ void vlpc_2st_dec( int16_t *indx, /* i : index[] (4 bits per words) */ const int16_t mode, /* i : 0=abs, >0=rel */ const int32_t sr_core /* i : internal sampling rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i: IVAS element mode */ +#endif ) { int16_t i; @@ -58,7 +62,11 @@ void vlpc_2st_dec( float scale = ( (float) sr_core ) / INT_FS_12k8; /* weighting from the 1st stage */ - lsf_weight_2st( lsfq, w, mode, sr_core ); + lsf_weight_2st( lsfq, w, mode, sr_core +#ifdef FIX_I120_INV_SQRT + ,element_mode +#endif + ); /* quantize */ AVQ_dec_lpc( indx, xq, 2 ); diff --git a/lib_enc/core_enc_ol.c b/lib_enc/core_enc_ol.c index 19c793a381..4b98d1088f 100644 --- a/lib_enc/core_enc_ol.c +++ b/lib_enc/core_enc_ol.c @@ -790,9 +790,16 @@ void core_acelp_tcx20_switching( for ( i = 0; i < L_frame; i++ ) { #ifdef FIX_I120_INV_SQRT - x[i] *= (float) ( L_frame * inv_sqrt( 2 * NORM_MDCT_FACTOR ) ); -#else - x[i] *= (float) ( L_frame / sqrt( 2 * NORM_MDCT_FACTOR ) ); + if ( st->element_mode != EVS_MONO ) + { + x[i] *= (float) ( L_frame * inv_sqrt( 2 * NORM_MDCT_FACTOR ) ); + } + else + { +#endif + x[i] *= (float) ( L_frame / sqrt( 2 * NORM_MDCT_FACTOR ) ); +#ifdef FIX_I120_INV_SQRT + } #endif } diff --git a/lib_enc/eval_pit_contr.c b/lib_enc/eval_pit_contr.c index 465e7781c9..e6d08feb01 100644 --- a/lib_enc/eval_pit_contr.c +++ b/lib_enc/eval_pit_contr.c @@ -121,9 +121,16 @@ int16_t Pit_exc_contribution_len( } #ifdef FIX_I120_INV_SQRT - corr_dct_pit[i] = (float) ( corr_tmp * inv_sqrt( ener_res * ener_pit ) ); -#else - corr_dct_pit[i] = (float) ( corr_tmp / sqrt( ener_res * ener_pit ) ); + if ( st->element_mode != EVS_MONO ) + { + corr_dct_pit[i] = (float) ( corr_tmp * inv_sqrt( ener_res * ener_pit ) ); + } + else + { +#endif + corr_dct_pit[i] = (float) ( corr_tmp / sqrt( ener_res * ener_pit ) ); +#ifdef FIX_I120_INV_SQRT + } #endif freq += mfreq_bindiv_loc[i]; } diff --git a/lib_enc/frame_spec_dif_cor_rate.c b/lib_enc/frame_spec_dif_cor_rate.c index a9a85e4356..f344979097 100644 --- a/lib_enc/frame_spec_dif_cor_rate.c +++ b/lib_enc/frame_spec_dif_cor_rate.c @@ -50,6 +50,10 @@ void frame_spec_dif_cor_rate( float spec_amp[], /* i : spectral amplitude */ float pre_spec_low_dif[], /* i/o: low spectrum different */ float f_tonality_rate[] /* o : tonality rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i: IVAS element mode */ +#endif ) { int16_t i; @@ -82,9 +86,16 @@ void frame_spec_dif_cor_rate( /* 1073741.824 = 0.001 * 32768 * 32768 */ #ifdef FIX_I120_INV_SQRT - spec_low_dif_cor_rate = (float) ( m * inv_sqrt( ( dx * dy + 1073741.824f ) ) ); -#else - spec_low_dif_cor_rate = (float) ( m / sqrt( ( dx * dy + 1073741.824f ) ) ); + if ( element_mode != EVS_MONO ) + { + spec_low_dif_cor_rate = (float) ( m * inv_sqrt( ( dx * dy + 1073741.824f ) ) ); + } + else + { +#endif + spec_low_dif_cor_rate = (float) ( m / sqrt( ( dx * dy + 1073741.824f ) ) ); +#ifdef FIX_I120_INV_SQRT + } #endif spec_dif_cor_rate = spec_low_dif_cor_rate; diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c index be55a8cc88..ac1ee5aa38 100644 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -107,6 +107,10 @@ static float IGF_getCrest_new( const int16_t *logSpec, /* i : power spectrum */ const int16_t start, /* i : start subband index */ const int16_t stop /* i : stop subband index */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i: IVAS element mode */ +#endif ) { int16_t i; @@ -131,9 +135,16 @@ static float IGF_getCrest_new( if ( x_eff > 0 && x_max > 0 ) { #ifdef FIX_I120_INV_SQRT - crest = max( 1.f, (float) x_max * inv_sqrt( (float) x_eff ) ); -#else - crest = max( 1.f, (float) x_max / sqrtf( (float) x_eff ) ); + if ( element_mode != EVS_MONO ) + { + crest = max( 1.f, (float) x_max * inv_sqrt( (float) x_eff ) ); + } + else + { +#endif + crest = max( 1.f, (float) x_max / sqrtf( (float) x_eff ) ); +#ifdef FIX_I120_INV_SQRT + } #endif } @@ -470,8 +481,16 @@ static void IGF_CalculateEnvelope( float diffSFM; float shiftedSFM = 0.f; - tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); - tmp_sb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, tmp, strt_cpy ) / IGF_getCrest_new( hPrivateData->logSpec, tmp, strt_cpy ); + tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] +#ifdef FIX_I120_INV_SQRT + ,element_mode +#endif + ); + tmp_sb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, tmp, strt_cpy ) / IGF_getCrest_new( hPrivateData->logSpec, tmp, strt_cpy +#ifdef FIX_I120_INV_SQRT + ,element_mode +#endif + ); if ( last_core_acelp || hPrivateData->wasTransient ) { @@ -502,12 +521,20 @@ static void IGF_CalculateEnvelope( if ( slope < -threshold ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift +#ifdef FIX_I120_INV_SQRT + ,element_mode +#endif + ); } else if ( ( slope > 1.f * threshold ) && ( sfb != hGrid->sfbWrap[hGrid->nTiles] - 1 ) ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift +#ifdef FIX_I120_INV_SQRT + ,element_mode +#endif + ); } if ( shiftedSFM > 0.04f ) @@ -1134,7 +1161,11 @@ static void IGF_Whitening( } else { - tmp = IGF_getSFM_new( powerSpectrum, hPrivateData->logSpec, hGrid->tile[p], hGrid->tile[p + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, hGrid->tile[p], hGrid->tile[p + 1] ); + tmp = IGF_getSFM_new( powerSpectrum, hPrivateData->logSpec, hGrid->tile[p], hGrid->tile[p + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, hGrid->tile[p], hGrid->tile[p + 1] +#ifdef FIX_I120_INV_SQRT + ,element_mode +#endif + ); } if ( last_core_acelp || hPrivateData->wasTransient ) diff --git a/lib_enc/pre_proc.c b/lib_enc/pre_proc.c index a17612290f..47d58c293b 100644 --- a/lib_enc/pre_proc.c +++ b/lib_enc/pre_proc.c @@ -198,7 +198,11 @@ void pre_proc( noise_est_pre( *Etot, st->ini_frame, st->hNoiseEst, 0, EVS_MONO, EVS_MONO ); st->vad_flag = wb_vad( st, fr_bands, &noisy_speech_HO, &clean_speech_HO, &NB_speech_HO, &snr_sum_he, &localVAD_HE_SAD, &( st->flag_noisy_speech_snr ), NULL, NULL, -1000.0f, -1000.0f ); - vad_flag_cldfb = vad_proc( realBuffer, imagBuffer, enerBuffer, st->cldfbAnaEnc->no_channels, st->hVAD_CLDFB, &cldfb_addition, st->vad_flag ); + vad_flag_cldfb = vad_proc( realBuffer, imagBuffer, enerBuffer, st->cldfbAnaEnc->no_channels, st->hVAD_CLDFB, &cldfb_addition, st->vad_flag +#ifdef FIX_I120_INV_SQRT + ,st->element_mode +#endif + ); if ( st->Pos_relE_cnt < 20 ) /* Ensure the level is high enough and cldfb decision is reliable */ { diff --git a/lib_enc/qlpc_avq.c b/lib_enc/qlpc_avq.c index 03aeab128e..5506e43f72 100644 --- a/lib_enc/qlpc_avq.c +++ b/lib_enc/qlpc_avq.c @@ -56,6 +56,10 @@ void qlpc_avq( int16_t *nbbits, /* o : Number of quantization bits */ const int16_t core, /* i : core */ const int32_t sr_core /* i : internal sampling rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i" IVAS element mode */ +#endif ) { int16_t i; @@ -72,7 +76,11 @@ void qlpc_avq( tmp_index[0] = vlpc_1st_cod( lsf, lsf_q, sr_core, dummy ); - nbt = vlpc_2st_cod( lsf, lsf_q, &tmp_index[1], 0, sr_core ); + nbt = vlpc_2st_cod( lsf, lsf_q, &tmp_index[1], 0, sr_core +#ifdef FIX_I120_INV_SQRT + ,element_mode +#endif + ); nit = 1 + 2 + index[1] + index[2]; tmp_index += nit; @@ -92,7 +100,12 @@ void qlpc_avq( tmp_index[0] = vlpc_1st_cod( lsfmid, lsfmid_q, sr_core, dummy ); - nbits = vlpc_2st_cod( lsfmid, lsfmid_q, &tmp_index[1], 0, sr_core ); + nbits = vlpc_2st_cod( lsfmid, lsfmid_q, &tmp_index[1], 0, sr_core +#ifdef FIX_I120_INV_SQRT + , + element_mode +#endif + ); nbt = 8 + nbits; nit = 1 + 2 + tmp_index[1] + tmp_index[2]; @@ -103,7 +116,12 @@ void qlpc_avq( lsfmid_q0[i] = lsf_q[i]; } - nbits = vlpc_2st_cod( lsfmid, lsfmid_q0, indxt, 3, sr_core ); + nbits = vlpc_2st_cod( lsfmid, lsfmid_q0, indxt, 3, sr_core +#ifdef FIX_I120_INV_SQRT + , + element_mode +#endif + ); if ( nbits < nbt ) { diff --git a/lib_enc/qlpc_stoch.c b/lib_enc/qlpc_stoch.c index 7723f507ec..33571d4d03 100644 --- a/lib_enc/qlpc_stoch.c +++ b/lib_enc/qlpc_stoch.c @@ -88,7 +88,11 @@ void lpc_quantization( lsp2lsf( lspmid, lsfmid, M, st->sr_core ); } - qlpc_avq( lsf, lsfmid, lsf_q, lsfmid_q, param_lpc, &nb_indices, nbits_lpc, st->core, st->sr_core ); + qlpc_avq( lsf, lsfmid, lsf_q, lsfmid_q, param_lpc, &nb_indices, nbits_lpc, st->core, st->sr_core +#ifdef FIX_I120_INV_SQRT + ,st->element_mode +#endif + ); lsf2lsp( lsf_q, lsp_q, M, st->sr_core ); @@ -101,7 +105,6 @@ void lpc_quantization( } /****** Low-rate LPC quantizer *******/ - else if ( st->lpcQuantization == 1 ) { diff --git a/lib_enc/swb_bwe_enc.c b/lib_enc/swb_bwe_enc.c index b54fbede57..6f6de03025 100644 --- a/lib_enc/swb_bwe_enc.c +++ b/lib_enc/swb_bwe_enc.c @@ -596,7 +596,12 @@ void swb_bwe_enc( * Calculate tilt of the input signal and the ACELP core synthesis *----------------------------------------------------------------------*/ - calc_tilt_bwe( old_input_lp, &tilt_nb, L_FRAME ); + calc_tilt_bwe( old_input_lp, &tilt_nb, L_FRAME +#ifdef FIX_I120_INV_SQRT + , + st->element_mode +#endif + ); /*---------------------------------------------------------------------* * SWB BWE encoding @@ -1361,7 +1366,12 @@ static int16_t SWB_BWE_encoding( st->hBWE_FD->EnergyLF = energy; } - calc_tilt_bwe( insig, &tilt, L_FRAME32k ); + calc_tilt_bwe( insig, &tilt, L_FRAME32k +#ifdef FIX_I120_INV_SQRT + , + st->element_mode +#endif + ); if ( IsTransient == 1 && ( tilt > 8.0 || st->clas > 1 ) ) { IsTransient = 0; diff --git a/lib_enc/vad_proc.c b/lib_enc/vad_proc.c index f40ca2cb5f..2c491c7801 100644 --- a/lib_enc/vad_proc.c +++ b/lib_enc/vad_proc.c @@ -226,6 +226,10 @@ int16_t vad_proc( VAD_CLDFB_HANDLE hVAD_CLDFB, /* i/o: CLDFB VAD state */ int16_t *cldfb_addition, const int16_t vada_flag /* i : VAD flag */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i: IVAS element mode */ +#endif ) { float frame_energy, frame_energy2; @@ -269,7 +273,11 @@ int16_t vad_proc( spec_flatness( spec_amp, hVAD_CLDFB->smooth_spec_amp, hVAD_CLDFB->sfm ); - frame_spec_dif_cor_rate( spec_amp, hVAD_CLDFB->pre_spec_low_dif, hVAD_CLDFB->f_tonality_rate ); + frame_spec_dif_cor_rate( spec_amp, hVAD_CLDFB->pre_spec_low_dif, hVAD_CLDFB->f_tonality_rate +#ifdef FIX_I120_INV_SQRT + ,element_mode +#endif + ); bg_music_decision( hVAD_CLDFB, &music_backgound_f, frame_energy ); diff --git a/lib_enc/vlpc_2st_cod.c b/lib_enc/vlpc_2st_cod.c index 86abfec1b0..acb5beddca 100644 --- a/lib_enc/vlpc_2st_cod.c +++ b/lib_enc/vlpc_2st_cod.c @@ -53,6 +53,10 @@ int16_t vlpc_2st_cod( int16_t *indx, /* o : index[] (4 bits per words) */ const int16_t mode, /* i : 0=abs, >0=rel */ const int32_t sr_core /* i : internal sampling rate */ +#ifdef FIX_I120_INV_SQRT + , + const int16_t element_mode /* i" IVAS element mode */ +#endif ) { int16_t i, nbits; @@ -63,7 +67,12 @@ int16_t vlpc_2st_cod( /* 0 bit with true weighting: save 0.5 bit */ - lsf_weight_2st( lsf, w, 1, sr_core ); + lsf_weight_2st( lsf, w, 1, sr_core +#ifdef FIX_I120_INV_SQRT + , + element_mode +#endif + ); for ( i = 0; i < M; i++ ) { @@ -91,7 +100,12 @@ int16_t vlpc_2st_cod( } /* weighting from the 1st stage */ - lsf_weight_2st( lsfq, w, mode, sr_core ); + lsf_weight_2st( lsfq, w, mode, sr_core +#ifdef FIX_I120_INV_SQRT + , + element_mode +#endif + ); /* find lsf residual */ diff --git a/lib_enc/voiced_enc.c b/lib_enc/voiced_enc.c index 21c6993096..55ee77a476 100644 --- a/lib_enc/voiced_enc.c +++ b/lib_enc/voiced_enc.c @@ -189,11 +189,7 @@ static double DTFS_freq_corr( tmp = 0.001; } -#ifdef FIX_I120_INV_SQRT - return corr * inv_sqrt( tmp ); -#else return corr / sqrt( tmp ); -#endif } /*-------------------------------------------------------------------* -- GitLab From ce9ca835ef789ee53323d5778bc6aa4087d6ce62 Mon Sep 17 00:00:00 2001 From: rtyag Date: Fri, 23 Sep 2022 14:08:44 +0200 Subject: [PATCH 118/479] accept switches QUANTISE_REAL_FCN_CLEAN_UP and SBA_INTERN_CONFIG_FIX_HOA2 --- lib_com/ivas_prot.h | 26 +- lib_com/ivas_spar_com_quant_util.c | 83 +----- lib_com/options.h | 8 +- lib_dec/ivas_output_init.c | 4 - lib_dec/ivas_spar_md_dec.c | 454 ++++++++--------------------- lib_enc/ivas_spar_md_enc.c | 371 +++++------------------ 6 files changed, 195 insertions(+), 751 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 87981b316e..ecf4e35a2b 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4247,27 +4247,13 @@ int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ); /* Quantization utilities */ void ivas_quantise_real_values( -#ifdef QUANTISE_REAL_FCN_CLEAN_UP - const float *values, -#else - float **values, -#endif - const int16_t q_levels, - const float min_value, - const float max_value, -#ifdef QUANTISE_REAL_FCN_CLEAN_UP - int16_t *index, - float *quant, -#else - int16_t **index, - float **quant, -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP + const float *values, + const int16_t q_levels, + const float min_value, + const float max_value, + int16_t *index, + float *quant, const int16_t dim -#else - const int16_t dim1, - const int16_t dim2 -#endif ); diff --git a/lib_com/ivas_spar_com_quant_util.c b/lib_com/ivas_spar_com_quant_util.c index 4feca8c98a..c095e20107 100644 --- a/lib_com/ivas_spar_com_quant_util.c +++ b/lib_com/ivas_spar_com_quant_util.c @@ -41,31 +41,6 @@ #include "ivas_rom_com.h" #include #include "wmops.h" -#ifndef QUANTISE_REAL_FCN_CLEAN_UP -/*-----------------------------------------------------------------------------------------* - * Function ivas_limit_values() - * - * Limit values within given range - *-----------------------------------------------------------------------------------------*/ - -static void ivas_limit_values( - float **ppValues, - const float min_value, - const float max_value, - const int16_t dim1, - const int16_t dim2 ) -{ - int16_t i, j; - for ( i = 0; i < dim1; i++ ) - { - for ( j = 0; j < dim2; j++ ) - { - ppValues[i][j] = max( min_value, min( ppValues[i][j], max_value ) ); - } - } - return; -} -#endif /*-----------------------------------------------------------------------------------------* * Function ivas_quantise_real_values() @@ -73,72 +48,28 @@ static void ivas_limit_values( * Quantize real values *-----------------------------------------------------------------------------------------*/ void ivas_quantise_real_values( -#ifdef QUANTISE_REAL_FCN_CLEAN_UP const float *values, -#else - float **values, -#endif const int16_t q_levels, const float min_value, const float max_value, -#ifdef QUANTISE_REAL_FCN_CLEAN_UP int16_t *index, float *quant, -#else - int16_t **index, - float **quant, -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP - const int16_t dim -#else - const int16_t dim1, - const int16_t dim2 -#endif -) + const int16_t dim ) { -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - int16_t i, j; -#else int16_t i; -#endif float q_step, one_by_q_step; if ( q_levels == 1 ) { -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - for ( i = 0; i < dim1; i++ ) - { - for ( j = 0; j < dim2; j++ ) - { - - quant[i][j] = 0; - index[i][j] = 0; - } - } -#else for ( i = 0; i < dim; i++ ) { quant[i] = 0; index[i] = 0; } -#endif } else if ( q_levels && max_value != min_value ) { -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - ivas_limit_values( values, min_value, max_value, dim1, dim2 ); -#endif q_step = ( max_value - min_value ) / ( q_levels - 1 ); one_by_q_step = ( q_levels - 1 ) / ( max_value - min_value ); -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - for ( i = 0; i < dim1; i++ ) - { - for ( j = 0; j < dim2; j++ ) - { - index[i][j] = (int16_t) round( one_by_q_step * values[i][j] ); - quant[i][j] = index[i][j] * q_step; - } - } -#else float val; for ( i = 0; i < dim; i++ ) { @@ -146,24 +77,13 @@ void ivas_quantise_real_values( index[i] = (int16_t) round( one_by_q_step * val ); quant[i] = index[i] * q_step; } -#endif } else { -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - for ( i = 0; i < dim1; i++ ) - { - for ( j = 0; j < dim2; j++ ) - { - quant[i][j] = values[i][j]; - } - } -#else for ( i = 0; i < dim; i++ ) { quant[i] = values[i]; } -#endif } return; } @@ -425,7 +345,6 @@ void ivas_clear_band_coeff_idx( for ( i = 0; i < num_bands; i++ ) { set_s( pband_coeff_idx[i].pred_index_re, 0, ( IVAS_SPAR_MAX_CH - 1 ) ); - set_s( pband_coeff_idx[i].drct_index_re, 0, IVAS_SPAR_MAX_C_COEFF ); set_s( pband_coeff_idx[i].decd_index_re, 0, ( IVAS_SPAR_MAX_CH - 1 ) ); } diff --git a/lib_com/options.h b/lib_com/options.h index c27d1aa3eb..c68ab1e6ed 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -31,14 +31,14 @@ *******************************************************************************************************/ /*==================================================================================== - EVS Codec 3GPP TS26.443 Nov 04, 2021. Version 12.14.0 / 13.10.0 / 14.6.0 / 15.4.0 / 16.3.0 + EVS Codec 3GPP TS26.443 Nov 04, 2021. Version 12.14.0 / 13.10.0 / 14.6.0 / 15.4.0 / 16.3.0 ====================================================================================*/ #ifndef OPTIONS_H #define OPTIONS_H /* clang-format off */ -/* ################### Start compiler switches ######################## */ + /* ################### Start compiler switches ######################## */ #define SUPPORT_JBM_TRACEFILE /* support for JBM tracefile, which is needed for 3GPP objective/subjective testing, but not relevant for real-world implementations */ #define RAM_COUNTING_TOOL /* tool to automatically count the dynamically alocated static memory consumption */ @@ -147,12 +147,8 @@ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ -#define SBA_INTERN_CONFIG_FIX_HOA2 /* Issue 99 : Fix for incorrect internal_config when output format is HOA2 or FOA*/ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ -#define QUANTISE_REAL_FCN_CLEAN_UP /*Clean up the ivas_quantise_real_values() function*/ - - #define FIX_I74_BW_LIMITATION_ALT /* issue 74: Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate; alternative fix */ #define FIX_I74_CLEANING /* issue 74: remove redundant function call in ivas_cpe_enc() */ diff --git a/lib_dec/ivas_output_init.c b/lib_dec/ivas_output_init.c index e1d96ff57d..b7af932861 100644 --- a/lib_dec/ivas_output_init.c +++ b/lib_dec/ivas_output_init.c @@ -511,7 +511,6 @@ void ivas_renderer_select( if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR && ( output_config != AUDIO_CONFIG_5_1 && output_config != AUDIO_CONFIG_5_1_2 && output_config != AUDIO_CONFIG_5_1_4 && output_config != AUDIO_CONFIG_7_1 && output_config != AUDIO_CONFIG_7_1_4 && output_config != AUDIO_CONFIG_LS_CUSTOM ) ) { -#ifdef SBA_INTERN_CONFIG_FIX_HOA2 if ( output_config == AUDIO_CONFIG_HOA2 || output_config == AUDIO_CONFIG_FOA ) { *internal_config = output_config; @@ -520,9 +519,6 @@ void ivas_renderer_select( { *internal_config = AUDIO_CONFIG_HOA3; } -#else - *internal_config = AUDIO_CONFIG_HOA3; -#endif st_ivas->renderer_type = RENDERER_SBA_LINEAR_DEC; } else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->nchan_transport == 1 ) || diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index f4ac432bf4..62ee92c375 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -82,11 +82,7 @@ static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coe static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ); static void ivas_parse_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, Decoder_State *st, const int16_t bw, const int16_t num_bands, int16_t *num_dmx_per_band, int16_t *num_dec_per_band ); -#ifdef QUANTISE_REAL_FCN_CLEAN_UP static ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, float *quant, const int16_t num_ch_dim2 ); -#else -static ivas_error ivas_deindex_real_index( int16_t **index, const int16_t q_levels, const float min_value, const float max_value, float **quant, const int16_t num_ch, const int16_t dim2 ); -#endif static void ivas_spar_dec_parse_md_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, int16_t *nB, int16_t *bands_bw, int16_t *dtx_vad, const int32_t ivas_total_brate, const int16_t use_planar_coeff, const int16_t sba_inactive_mode ); @@ -983,15 +979,15 @@ static void ivas_get_spar_matrices( #ifdef SPAR_HOA_DBG /*for (b = 0; b < BANDS_12; b++) { - for (i = 0; i < IVAS_SPAR_MAX_CH - 1; i++) - { - hMdDec->spar_md.band_coeffs[b].pred_re[i] = (float)(i + 1)/10; - for (j = 0; j < IVAS_SPAR_MAX_CH - 1; j++) + for (i = 0; i < IVAS_SPAR_MAX_CH - 1; i++) { - hMdDec->spar_md.band_coeffs[b].C_re[i][j] = (float)(i + j * 20 + 1)/10; - hMdDec->spar_md.band_coeffs[b].P_re[i][j] = (float)(i + j * 20 + 1)/10; + hMdDec->spar_md.band_coeffs[b].pred_re[i] = (float)(i + 1)/10; + for (j = 0; j < IVAS_SPAR_MAX_CH - 1; j++) + { + hMdDec->spar_md.band_coeffs[b].C_re[i][j] = (float)(i + j * 20 + 1)/10; + hMdDec->spar_md.band_coeffs[b].P_re[i][j] = (float)(i + j * 20 + 1)/10; + } } - } }*/ #endif @@ -1149,21 +1145,21 @@ static void ivas_get_spar_matrices( /*fprintf(stdout, "C matrix1: %d x %d\n\n", numch_out, dmx_ch); for (j = 0; j < numch_out; j++) { - for (k = 0; k < dmx_ch; k++) - { - fprintf(stdout, "%f, ", tmpC_re[j][k]); - } - fprintf(stdout, "\n"); + for (k = 0; k < dmx_ch; k++) + { + fprintf(stdout, "%f, ", tmpC_re[j][k]); + } + fprintf(stdout, "\n"); } fprintf(stdout, "Mixer Mat: %d x %d\n\n", numch_out, numch_out); for ( j = 0; j < numch_out; j++) { - for (k = 0; k < numch_out; k++) - { - fprintf(stdout, "%f, ", hMdDec->mixer_mat[j][k][0][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", hMdDec->mixer_mat[j][k][0][b]); + } + fprintf(stdout, "\n"); }*/ #endif @@ -1184,26 +1180,26 @@ static void ivas_get_spar_matrices( #ifdef SPAR_HOA_DBG /*if (b == 0) { - fprintf(stdout, "tmp_P matrix: %d x %d\n\n", numch_out, dmx_ch); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) + fprintf(stdout, "tmp_P matrix: %d x %d\n\n", numch_out, dmx_ch); + for (j = 0; j < numch_out; j++) { - fprintf(stdout, "%f, ", tmpP_re[j][k]); - } - fprintf(stdout, "\n"); + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", tmpP_re[j][k]); + } + fprintf(stdout, "\n"); - } - fprintf(stdout, "Mixer Mat: %d x %d\n\n", numch_out, numch_out); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) - { - fprintf(stdout, "%f, ", hMdDec->mixer_mat[j][k][0][b]); } - fprintf(stdout, "\n"); + fprintf(stdout, "Mixer Mat: %d x %d\n\n", numch_out, numch_out); + for (j = 0; j < numch_out; j++) + { + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", hMdDec->mixer_mat[j][k][0][b]); + } + fprintf(stdout, "\n"); - } + } }*/ #endif for ( j = 1; j < numch_out; j++ ) @@ -1234,11 +1230,11 @@ static void ivas_get_spar_matrices( /*fprintf(stdout, "C matrix1: %d x %d\n\n", numch_out, dmx_ch); for (j = 0; j < numch_out; j++) { - for (k = 0; k < dmx_ch; k++) - { - fprintf(stdout, "%f, ", hMdDec->spar_coeffs.C_re[j][k][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < dmx_ch; k++) + { + fprintf(stdout, "%f, ", hMdDec->spar_coeffs.C_re[j][k][b]); + } + fprintf(stdout, "\n"); }*/ #endif @@ -1249,27 +1245,27 @@ static void ivas_get_spar_matrices( #ifdef SPAR_HOA_DBG /* for (b = 0; b < 1; b++) { - fprintf(stdout, "C matrix: %d x %d band %d\n\n", numch_out, dmx_ch, b); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) + fprintf(stdout, "C matrix: %d x %d band %d\n\n", numch_out, dmx_ch, b); + for (j = 0; j < numch_out; j++) { - fprintf(stdout, "%f, ", hMdDec->spar_coeffs.C_re[j][k][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", hMdDec->spar_coeffs.C_re[j][k][b]); + } + fprintf(stdout, "\n"); - } - fprintf(stdout, "\nP matrix: %d x %d\n\n", numch_out, numch_out); + } + fprintf(stdout, "\nP matrix: %d x %d\n\n", numch_out, numch_out); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) + for (j = 0; j < numch_out; j++) { - fprintf(stdout, "%f, ", hMdDec->spar_coeffs.P_re[j][k][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", hMdDec->spar_coeffs.P_re[j][k][b]); + } + fprintf(stdout, "\n"); - } + } }*/ #endif @@ -1399,16 +1395,16 @@ void ivas_spar_dec_gen_umx_mat( /* for ( b = 0; b < 1; b++) { - fprintf( stdout, "\n\nMixer Matrix band %d\n\n", b ); - for ( i = 0; i < num_out_ch; i++ ) - { - for ( j = 0; j < num_out_ch; j++ ) + fprintf( stdout, "\n\nMixer Matrix band %d\n\n", b ); + for ( i = 0; i < num_out_ch; i++ ) { - fprintf( stdout, "%.2f,\t", hMdDec->mixer_mat[i][j][0][b] ); + for ( j = 0; j < num_out_ch; j++ ) + { + fprintf( stdout, "%.2f,\t", hMdDec->mixer_mat[i][j][0][b] ); + } + fprintf( stdout, "\n" ); } fprintf( stdout, "\n" ); - } - fprintf( stdout, "\n" ); }*/ #endif @@ -1607,59 +1603,12 @@ static void ivas_spar_dec_parse_md_bs( for ( i = 0; i < *nB; i++ ) { int16_t ii, jj; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - int16_t *index_scratch[IVAS_SPAR_P_LOWERTRI]; - float *quant_scratch[IVAS_SPAR_P_LOWERTRI]; -#endif int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - int16_t **index = (int16_t **) &index_scratch[0]; - float **quant = (float **) &quant_scratch[0]; - float coeff_decd[IVAS_SPAR_MAX_CH - 1]; - float coeff_decx_re[IVAS_SPAR_P_LOWERTRI]; - int16_t decx_index_re[IVAS_SPAR_P_LOWERTRI]; - int16_t pred_index_re[IVAS_SPAR_MAX_CH - 1]; - int16_t drct_index_re[IVAS_SPAR_MAX_C_COEFF]; - int16_t decd_index_re[IVAS_SPAR_MAX_CH - 1]; -#else float quant[IVAS_SPAR_MAX_C_COEFF]; -#endif -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - - for ( j = 0; j < ndm + ndec - 1; j++ ) - { - pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; - } - - for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) - { - drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; - } - for ( j = 0; j < ndec; j++ ) - { - decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; - } -#endif -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - index[0] = &pred_index_re[0]; - quant[0] = &hMdDec->spar_md.band_coeffs[i].pred_re[0]; -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); -#else - ivas_deindex_real_index( index, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, quant, 1, ndm + ndec - 1 ); - for ( ii = 0; ii < ndec; ii++ ) - { - for ( jj = 0; jj < ndm - 1; jj++ ) - { - hMdDec->spar_md.band_coeffs[i].C_re[ii][jj] = 0; - } - } -#endif j = 0; -#ifdef QUANTISE_REAL_FCN_CLEAN_UP for ( ii = 0; ii < ndec; ii++ ) { for ( jj = 0; jj < ndm - 1; jj++ ) @@ -1668,23 +1617,7 @@ static void ivas_spar_dec_parse_md_bs( j++; } } -#else - for ( ii = 0; ii < ndec; ii++ ) - { - for ( jj = 0; jj < ndm - 1; jj++ ) - { - index[j] = &drct_index_re[j]; - quant[j] = &hMdDec->spar_md.band_coeffs[i].C_re[ii][jj]; - j++; - } - } -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); -#else - ivas_deindex_real_index( index, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ), 1 ); -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP j = 0; for ( ii = 0; ii < ndec; ii++ ) { @@ -1694,70 +1627,20 @@ static void ivas_spar_dec_parse_md_bs( j++; } } -#endif -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - index[0] = &decd_index_re[0]; - quant[0] = &coeff_decd[0]; -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); -#else - ivas_deindex_real_index( index, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, quant, 1, ndm + ndec - 1 ); -#endif -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - index[0] = &decx_index_re[0]; - quant[0] = &coeff_decx_re[0]; -#endif -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - ivas_deindex_real_index( index, qs.P_c.q_levels[0], qs.P_c.min, qs.P_c.max, quant, 1, ndec * ( ndec - 1 ) >> 2 ); -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP /* Store prior coefficient indices */ for ( j = 0; j < ndm + ndec - 1; j++ ) { hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; } -#else - /* Store prior coefficient indices */ - for ( j = 0; j < ndm + ndec - 1; j++ ) - { - hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = pred_index_re[j]; - } -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) { hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; } -#else - for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) - { - hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = drct_index_re[j]; - } -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP for ( j = 0; j < ndec; j++ ) { hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; } -#else - for ( j = 0; j < ndec; j++ ) - { - hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = decd_index_re[j]; - } -#endif - -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - for ( k = 0; k < ndec; k++ ) - { - hMdDec->spar_md.band_coeffs[i].P_re[k] = 0; - } - for ( j = 0; j < ndec; j++ ) - { - /* Don't bother adding in the decx parameters */ - hMdDec->spar_md.band_coeffs[i].P_re[j] = coeff_decd[j]; - } -#endif hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } } @@ -1777,70 +1660,70 @@ static void ivas_spar_dec_parse_md_bs( b = 0; /* if (0) { - for ( b = 0; b < *nB; b++ ) - { - int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[(*bands_bw) * b]; - int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[(*bands_bw) * b]; - fprintf(stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi); - for (i = 0; i < ndm + ndec - 1; i++) - { - fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, - hMdDec->spar_md.band_coeffs[b].pred_re[i], - hMdDec->spar_md_prev.band_coeffs_idx[b].pred_index_re[i], - hMdDec->spar_md.band_coeffs_idx[b].pred_index_re[i]); - } - fprintf(stdout, "\n\n METADATA C: band %d\n\n", b); - k = 0; - for (i = 0; i < ndec; i++) + for ( b = 0; b < *nB; b++ ) { - for (j = 0; j < (ndm - 1); j++) - { - fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, - hMdDec->spar_md.band_coeffs[b].C_re[i][j], - hMdDec->spar_md_prev.band_coeffs_idx[b].drct_index_re[k], - hMdDec->spar_md.band_coeffs_idx[b].drct_index_re[k]); - k++; - } - } - fprintf(stdout, "\n\n METADATA Pd: band %d\n\n", b); - for (i = 0; i < ndec; i++) - { - fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, - hMdDec->spar_md.band_coeffs[b].P_re[i][i], - hMdDec->spar_md_prev.band_coeffs_idx[b].decd_index_re[i], - hMdDec->spar_md.band_coeffs_idx[b].decd_index_re[i]); - } - fprintf(stdout, "\n\n"); - int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; - int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; - fprintf( stdout, "\n\n Metadata PR (15x1), C(15x15), P(15x15): band %d\n", b ); - for ( i = 0; i < ndm + ndec - 1; i++ ) - { - fprintf( stdout, "i: %d -- %.2f\t|\t", i, hMdDec->spar_md.band_coeffs[b].pred_re[i] ); - if ( i < ndec ) - { - if ( keep_planar[i] == 1 ) + int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[(*bands_bw) * b]; + int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[(*bands_bw) * b]; + fprintf(stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi); + for (i = 0; i < ndm + ndec - 1; i++) { - fprintf( stdout, ">>" ); + fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, + hMdDec->spar_md.band_coeffs[b].pred_re[i], + hMdDec->spar_md_prev.band_coeffs_idx[b].pred_index_re[i], + hMdDec->spar_md.band_coeffs_idx[b].pred_index_re[i]); } - else + fprintf(stdout, "\n\n METADATA C: band %d\n\n", b); + k = 0; + for (i = 0; i < ndec; i++) { - fprintf( stdout, " " ); + for (j = 0; j < (ndm - 1); j++) + { + fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, + hMdDec->spar_md.band_coeffs[b].C_re[i][j], + hMdDec->spar_md_prev.band_coeffs_idx[b].drct_index_re[k], + hMdDec->spar_md.band_coeffs_idx[b].drct_index_re[k]); + k++; + } } - for ( j = 0; j < ndm - 1; j++ ) + fprintf(stdout, "\n\n METADATA Pd: band %d\n\n", b); + for (i = 0; i < ndec; i++) { - fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].C_re[i][j] ); + fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, + hMdDec->spar_md.band_coeffs[b].P_re[i][i], + hMdDec->spar_md_prev.band_coeffs_idx[b].decd_index_re[i], + hMdDec->spar_md.band_coeffs_idx[b].decd_index_re[i]); } - fprintf( stdout, "|\t" ); - for ( j = 0; j < ndec; j++ ) + fprintf(stdout, "\n\n"); + int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; + int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; + fprintf( stdout, "\n\n Metadata PR (15x1), C(15x15), P(15x15): band %d\n", b ); + for ( i = 0; i < ndm + ndec - 1; i++ ) { - fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].P_re[i][j] ); + fprintf( stdout, "i: %d -- %.2f\t|\t", i, hMdDec->spar_md.band_coeffs[b].pred_re[i] ); + if ( i < ndec ) + { + if ( keep_planar[i] == 1 ) + { + fprintf( stdout, ">>" ); + } + else + { + fprintf( stdout, " " ); + } + for ( j = 0; j < ndm - 1; j++ ) + { + fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].C_re[i][j] ); + } + fprintf( stdout, "|\t" ); + for ( j = 0; j < ndec; j++ ) + { + fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].P_re[i][j] ); + } + } + fprintf( stdout, "\n" ); } - } - fprintf( stdout, "\n" ); + fprintf( stdout, "\n" ); } - fprintf( stdout, "\n" ); - } }*/ #endif @@ -2401,58 +2284,28 @@ static void ivas_spar_unquant_dtx_indicies( { int16_t i, b; int16_t q_lvl; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - float **ppVal, *pVal, val; - int16_t **ppIdx, *pIdx, idx; -#else float val; int16_t idx; -#endif float pr_min_max[2]; pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - ppVal = (float **) &pVal; - ppIdx = (int16_t **) &pIdx; - - ppVal[0] = (float *) &val; - ppIdx[0] = (int16_t *) &idx; -#endif for ( b = 0; b < nB; b++ ) { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) { q_lvl = dtx_pr_real_q_levels[ndm_per_band[bw * b] - 1][i]; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - ppIdx[0][0] = pSpar_md->band_coeffs_idx[b].pred_index_re[i]; -#else idx = pSpar_md->band_coeffs_idx[b].pred_index_re[i]; -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_deindex_real_index( &idx, q_lvl, pr_min_max[0], pr_min_max[1], &val, 1 ); pSpar_md->band_coeffs[b].pred_re[i] = val; -#else - ivas_deindex_real_index( ppIdx, q_lvl, pr_min_max[0], pr_min_max[1], ppVal, 1, 1 ); - pSpar_md->band_coeffs[b].pred_re[i] = ppVal[0][0]; -#endif } for ( i = 0; i < FOA_CHANNELS - ndm_per_band[bw * b]; i++ ) { q_lvl = dtx_pd_real_q_levels[ndm_per_band[bw * b] - 1][i]; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - ppIdx[0][0] = pSpar_md->band_coeffs_idx[b].decd_index_re[i]; -#else idx = pSpar_md->band_coeffs_idx[b].decd_index_re[i]; -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_deindex_real_index( &idx, q_lvl, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &val, 1 ); pSpar_md->band_coeffs[b].P_re[i] = val; -#else - ivas_deindex_real_index( ppIdx, q_lvl, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppVal, 1, 1 ); - pSpar_md->band_coeffs[b].P_re[i] = ppVal[0][0]; -#endif } } @@ -2475,25 +2328,13 @@ static void ivas_parse_parameter_bitstream_dtx( int16_t *num_dec_per_band ) { int16_t i, j; -#ifdef QUANTISE_REAL_FCN_CLEAN_UP float val; int16_t idx; -#else - float **ppVal, *pVal, val; - int16_t **ppIdx, *pIdx, idx; -#endif float pr_min_max[2]; int16_t pr_q_lvls, pr, pd, pd_q_lvls, pr_pd_bits; int16_t pr_q_lvls1, pr_q_lvls2, pr_idx1, pr_idx2, pr_pr_bits; int16_t zero_pad_bits, sid_bits_len; sid_bits_len = st0->next_bit_pos; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - ppVal = (float **) &pVal; - ppIdx = (int16_t **) &pIdx; - - ppVal[0] = (float *) &val; - ppIdx[0] = (int16_t *) &idx; -#endif pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; @@ -2533,26 +2374,13 @@ static void ivas_parse_parameter_bitstream_dtx( pr = (int16_t) floor( value / pd_q_lvls ); pd = value - pr * pd_q_lvls; -#ifdef QUANTISE_REAL_FCN_CLEAN_UP val = dtx_pd_real_min_max[0]; ivas_quantise_real_values( &val, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &idx, &val, 1 ); -#else - ppVal[0][0] = dtx_pd_real_min_max[0]; - ivas_quantise_real_values( ppVal, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppVal, 1, 1 ); -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP pd = pd + idx; val = pr_min_max[0]; ivas_quantise_real_values( &val, pr_q_lvls, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); pr = pr + idx; -#else - pd = pd + ppIdx[0][0]; - - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - pr = pr + ppIdx[0][0]; -#endif if ( ( j + 1 ) <= ndec ) { @@ -2572,7 +2400,6 @@ static void ivas_parse_parameter_bitstream_dtx( pr_idx2 = (int16_t) floor( value / pr_q_lvls1 ); pr_idx1 = value - pr_idx2 * pr_q_lvls1; -#ifdef QUANTISE_REAL_FCN_CLEAN_UP val = pr_min_max[0]; ivas_quantise_real_values( &val, pr_q_lvls1, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); @@ -2582,17 +2409,6 @@ static void ivas_parse_parameter_bitstream_dtx( ivas_quantise_real_values( &val, pr_q_lvls2, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); pr_idx2 += idx; -#else - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls1, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - - pr_idx1 += ppIdx[0][0]; - - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls2, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - - pr_idx2 += ppIdx[0][0]; -#endif pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_1 - 1] = pr_idx1; pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1] = pr_idx2; } @@ -2621,32 +2437,14 @@ static void ivas_parse_parameter_bitstream_dtx( *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_deindex_real_index( -#ifdef QUANTISE_REAL_FCN_CLEAN_UP const int16_t *index, -#else - int16_t **index, -#endif const int16_t q_levels, const float min_value, const float max_value, -#ifdef QUANTISE_REAL_FCN_CLEAN_UP float *quant, -#else - float **quant, -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP - const int16_t dim -#else - const int16_t num_ch, - const int16_t dim2 -#endif -) + const int16_t dim ) { -#ifdef QUANTISE_REAL_FCN_CLEAN_UP int16_t i; -#else - int16_t i, j; -#endif float q_step; if ( q_levels == 0 ) @@ -2656,38 +2454,18 @@ static ivas_error ivas_deindex_real_index( if ( q_levels == 1 ) { -#ifdef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim; i++ ) { quant[i] = 0; } -#else - for ( i = 0; i < num_ch; i++ ) - { - for ( j = 0; j < dim2; j++ ) - { - quant[i][j] = 0; - } - } -#endif } else { q_step = ( max_value - min_value ) / ( q_levels - 1 ); -#ifdef QUANTISE_REAL_FCN_CLEAN_UP for ( i = 0; i < dim; i++ ) { quant[i] = index[i] * q_step; } -#else - for ( i = 0; i < num_ch; i++ ) - { - for ( j = 0; j < dim2; j++ ) - { - quant[i][j] = index[i][j] * q_step; - } - } -#endif } return IVAS_ERR_OK; diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 78028deef2..ed0d3f7e7e 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -85,16 +85,8 @@ static void ivas_store_prior_coeffs( ivas_spar_md_enc_state_t *hMdEnc, const int static void ivas_write_parameter_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *hMdEnc, const ENCODER_CONFIG_HANDLE hEncoderConfig, const int16_t sba_order ); -#ifdef QUANTISE_REAL_FCN_CLEAN_UP static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, const float *pValues, const int16_t ndm, int16_t *pIndex, const int16_t dim1, float *pQuant ); -#else -static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, float **ppValues, const int16_t ndm, int16_t **ppIndex, const int16_t dim1, float **ppQuant ); -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP static void ivas_quant_p_per_band_dtx( float *pP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float *pP_out, const int16_t num_ch ); -#else -static void ivas_quant_p_per_band_dtx( float **ppP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float **ppP_out, const int16_t num_ch ); -#endif static void ivas_write_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, BSTR_ENC_HANDLE hMetaData, int16_t *num_dmx, int16_t *num_dec, const int16_t num_bands ); static void ivas_quant_p_per_band( ivas_band_coeffs_t *pband_coeffs, ivas_band_coeffs_ind_t *pBand_coeffs_idx, ivas_quant_strat_t *pQs, const int16_t num_ch ); @@ -339,15 +331,15 @@ static ivas_error ivas_spar_md_enc_init( ivas_spar_set_enc_config( hMdEnc, hMdEnc->spar_md_cfg.max_freq_per_chan, hMdEnc->spar_md_cfg.nchan_transport, pFC, num_channels ); /* if(hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) + || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 + || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 + || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) { - hMdEnc->spar_md_cfg.gen_bs = 0; + hMdEnc->spar_md_cfg.gen_bs = 0; } else if(0 != hMdEnc->spar_md_cfg.gen_bs) { - hMdEnc->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); + hMdEnc->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); } */ @@ -686,11 +678,11 @@ ivas_error ivas_spar_md_enc_process( for (i = 0; i < ndec; i++) { - for (j = 0; j < ndec; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]);//, hMdEnc->spar_md.band_coeffs[b].P_im[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndec; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]);//, hMdEnc->spar_md.band_coeffs[b].P_im[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif @@ -709,11 +701,11 @@ ivas_error ivas_spar_md_enc_process( /*fprintf(stderr, "\n\n Planar P coefficients: band %d\n", b); for (i = 0; i < ndec; i++) { - for (j = 0; j < ndec; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]); //, hMdEnc->spar_md.band_coeffs[b].C_im[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndec; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]); //, hMdEnc->spar_md.band_coeffs[b].C_im[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif @@ -726,51 +718,16 @@ ivas_error ivas_spar_md_enc_process( } else { -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - float **ppPred_re, **ppPred_quant, *pPred_re, *pPred_quant; - int16_t **ppPred_idx, *pPred_re_idx; -#endif if ( ndm != num_ch ) { -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - float *P_re[IVAS_SPAR_MAX_CH - 1], *P_re_quant[IVAS_SPAR_MAX_CH - 1]; - float **ppP_re = (float **) &P_re[0]; - float **ppP_re_quant = (float **) &P_re_quant[0]; -#endif -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - int16_t *ppP_idx = &hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[0]; - - for ( i = 0; i < ndec; i++ ) - { - - ppP_re[i] = hMdEnc->spar_md.band_coeffs[b].P_re; - ppP_re_quant[i] = hMdEnc->spar_md.band_coeffs[b].P_quant_re; - } -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_quant_p_per_band_dtx( hMdEnc->spar_md.band_coeffs[b].P_re, ndec, ndm, &hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[0], hMdEnc->spar_md.band_coeffs[b].P_quant_re, num_ch ); -#else - ivas_quant_p_per_band_dtx( ppP_re, ndec, ndm, ppP_idx, ppP_re_quant, num_ch ); -#endif } -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - ppPred_idx = (int16_t **) &pPred_re_idx; - ppPred_re = (float **) &pPred_re; - ppPred_quant = (float **) &pPred_quant; - ppPred_re[0] = hMdEnc->spar_md.band_coeffs[b].pred_re; - ppPred_idx[0] = hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re; - ppPred_quant[0] = hMdEnc->spar_md.band_coeffs[b].pred_quant_re; -#endif for ( i = 0; i < num_ch - 1; i++ ) { hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i] = 0; } -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_spar_quant_pred_coeffs_dtx( &hMdEnc->spar_md, hMdEnc->spar_md.band_coeffs[b].pred_re, ndm, hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re, num_ch - 1, hMdEnc->spar_md.band_coeffs[b].pred_quant_re ); -#else - ivas_spar_quant_pred_coeffs_dtx( &hMdEnc->spar_md, ppPred_re, ndm, ppPred_idx, num_ch - 1, ppPred_quant ); -#endif } } @@ -802,11 +759,11 @@ ivas_error ivas_spar_md_enc_process( for (i = 0; i < num_ch - ndm; i++) { - for (j = 0; j < ndm - 1; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].C_re[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndm - 1; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].C_re[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif @@ -827,11 +784,11 @@ ivas_error ivas_spar_md_enc_process( for (i = 0; i < num_ch - ndm; i++) { - for (j = 0; j < ndm - 1; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].C_re[i][j]); // , hMdEnc->spar_md.band_coeffs[band_idx].C_im[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndm - 1; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].C_re[i][j]); // , hMdEnc->spar_md.band_coeffs[band_idx].C_im[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif @@ -844,7 +801,7 @@ ivas_error ivas_spar_md_enc_process( for (i = 0; i < ndec * (ndm-1); i++) { - fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[b].drct_index_re[i]); + fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[b].drct_index_re[i]); } fprintf(stderr, "\n\n");*/ #endif @@ -912,40 +869,40 @@ ivas_error ivas_spar_md_enc_process( #ifdef SPAR_HOA_DBG /*if ( strat >= 4 ) { - for ( b = 0; b < nB; b++ ) - { - b = 0; - fprintf( stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi ); - for ( i = 0; i < num_ch - 1; i++ ) - { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //hMdEnc->spar_md.band_coeffs[b].pred_re[i], - hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i], - hMdEnc->spar_md_prior.band_coeffs_idx[b].pred_index_re[i], - hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re[i] ); - } - fprintf( stdout, "\n\n METADATA C: band %d\n\n", b ); - int16_t k = 0; - for ( i = 0; i < ndec; i++ ) + for ( b = 0; b < nB; b++ ) { - for ( j = 0; j < ( ndm - 1 ); j++ ) - { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, // hMdEnc->spar_md.band_coeffs[b].C_re[i][j], - hMdEnc->spar_md.band_coeffs[b].C_quant_re[i][j], - hMdEnc->spar_md_prior.band_coeffs_idx[b].drct_index_re[k], - hMdEnc->spar_md.band_coeffs_idx[b].drct_index_re[k] ); - k++; - } - } - fprintf( stdout, "\n\n METADATA Pd: band %d\n\n", b ); - for ( i = 0; i < num_ch - ndm; i++ ) - { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //hMdEnc->spar_md.band_coeffs[b].P_re[i][i], - hMdEnc->spar_md.band_coeffs[b].P_quant_re[i][i], - hMdEnc->spar_md_prior.band_coeffs_idx[b].decd_index_re[i], - hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[i] ); + b = 0; + fprintf( stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi ); + for ( i = 0; i < num_ch - 1; i++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //hMdEnc->spar_md.band_coeffs[b].pred_re[i], + hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i], + hMdEnc->spar_md_prior.band_coeffs_idx[b].pred_index_re[i], + hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re[i] ); + } + fprintf( stdout, "\n\n METADATA C: band %d\n\n", b ); + int16_t k = 0; + for ( i = 0; i < ndec; i++ ) + { + for ( j = 0; j < ( ndm - 1 ); j++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, // hMdEnc->spar_md.band_coeffs[b].C_re[i][j], + hMdEnc->spar_md.band_coeffs[b].C_quant_re[i][j], + hMdEnc->spar_md_prior.band_coeffs_idx[b].drct_index_re[k], + hMdEnc->spar_md.band_coeffs_idx[b].drct_index_re[k] ); + k++; + } + } + fprintf( stdout, "\n\n METADATA Pd: band %d\n\n", b ); + for ( i = 0; i < num_ch - ndm; i++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //hMdEnc->spar_md.band_coeffs[b].P_re[i][i], + hMdEnc->spar_md.band_coeffs[b].P_quant_re[i][i], + hMdEnc->spar_md_prior.band_coeffs_idx[b].decd_index_re[i], + hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[i] ); + } + fprintf( stdout, "\n\n" ); } - fprintf( stdout, "\n\n" ); - } }*/ b = 0; ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; @@ -1382,7 +1339,7 @@ static void ivas_get_arith_coded_bs( #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n band_indexes:\n"); for (int16_t j = 1; j < drct_cell_dims[0].dim1 * drct_cell_dims[0].dim2; j++) - fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[0].drct_index_re[j]); + fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[0].drct_index_re[j]); fprintf(stderr, "\n\n"); */ #endif ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md.band_coeffs_idx, nB, symbol_arr_re, drct_cell_dims, DRCT_COEFF, planarCP ); @@ -1542,60 +1499,22 @@ static void ivas_store_prior_coeffs( static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, -#ifdef QUANTISE_REAL_FCN_CLEAN_UP const float *pValues, -#else - float **ppValues, -#endif const int16_t ndm, -#ifdef QUANTISE_REAL_FCN_CLEAN_UP int16_t *pIndex, -#else - int16_t **ppIndex, -#endif const int16_t dim1, -#ifdef QUANTISE_REAL_FCN_CLEAN_UP - float *pQuant -#else - float **ppQuant -#endif -) + float *pQuant ) { int16_t i; int16_t q_lvl; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - float *pVal, val, **ppVal; - int16_t *pIdx, idx, **ppIdx; -#endif float pr_min_max[2]; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - - ppVal = (float **) &pVal; - ppIdx = (int16_t **) &pIdx; - - ppVal[0] = (float *) &val; - ppIdx[0] = (int16_t *) &idx; -#endif pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; - -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - for ( i = 0; i < dim1; i++ ) - { - q_lvl = dtx_pr_real_q_levels[ndm - 1][i]; - ppVal[0][0] = ppValues[0][i]; - - ivas_quantise_real_values( ppVal, q_lvl, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - ppIndex[0][i] = ppIdx[0][0]; - ppQuant[0][i] = ppVal[0][0]; - } -#else for ( i = 0; i < dim1; i++ ) { q_lvl = dtx_pr_real_q_levels[ndm - 1][i]; ivas_quantise_real_values( &pValues[i], q_lvl, pr_min_max[0], pr_min_max[1], &pIndex[i], &pQuant[i], 1 ); } -#endif return; } @@ -1607,48 +1526,23 @@ static void ivas_spar_quant_pred_coeffs_dtx( *-----------------------------------------------------------------------------------------*/ static void ivas_quant_p_per_band_dtx( -#ifdef QUANTISE_REAL_FCN_CLEAN_UP float *pP_mat, -#else - float **ppP_mat, -#endif const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, -#ifdef QUANTISE_REAL_FCN_CLEAN_UP float *pP_out, -#else - float **ppP_out, -#endif const int16_t num_ch ) { int16_t i; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - float **ppPd, *pPd, pd; - int16_t **ppIdx, *pIdx, idx; -#endif int16_t dim = num_ch - num_dmx; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - ppPd = (float **) &pPd; - ppIdx = (int16_t **) &pIdx; - ppPd[0] = (float *) &pd; - ppIdx[0] = (int16_t *) &idx; -#endif if ( num_dec == num_ch - 1 ) { for ( i = 0; i < dim; i++ ) { -#ifdef QUANTISE_REAL_FCN_CLEAN_UP if ( pP_mat[i] < pr_boost_range[1] && pP_mat[i] > pr_boost_range[0] ) { pP_mat[i] = pr_boost_range[1]; } -#else - if ( ppP_mat[i][i] < pr_boost_range[1] && ppP_mat[i][i] > pr_boost_range[0] ) - { - ppP_mat[i][i] = pr_boost_range[1]; - } -#endif } } @@ -1656,20 +1550,10 @@ static void ivas_quant_p_per_band_dtx( { assert( !"Not Supported!" ); } -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - for ( i = 0; i < dim; i++ ) - { - ppPd[0][0] = ppP_mat[i][i]; - ivas_quantise_real_values( ppPd, dtx_pd_real_q_levels[num_ch - num_dec - 1][i], dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppPd, 1, 1 ); - ppP_out[i][i] = ppPd[0][0]; - ppIdx_pd[i] = ppIdx[0][0]; - } -#else for ( i = 0; i < dim; i++ ) { ivas_quantise_real_values( &pP_mat[i], dtx_pd_real_q_levels[num_ch - num_dec - 1][i], dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &ppIdx_pd[i], &pP_out[i], 1 ); } -#endif return; } @@ -1687,23 +1571,11 @@ static void ivas_write_parameter_bitstream_dtx( const int16_t num_bands ) { int16_t i, j; -#ifdef QUANTISE_REAL_FCN_CLEAN_UP float val; int16_t idx; -#else - float **ppVal, *pVal, val; - int16_t **ppIdx, *pIdx, idx; -#endif float pr_min_max[2]; int16_t zero_pad_bits, sid_bits_len; sid_bits_len = hMetaData->nb_bits_tot; -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - ppVal = (float **) &pVal; - ppIdx = (int16_t **) &pIdx; - - ppVal[0] = (float *) &val; - ppIdx[0] = (int16_t *) &idx; -#endif pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; @@ -1741,7 +1613,6 @@ static void ivas_write_parameter_bitstream_dtx( pd_q_lvls = dtx_pd_real_q_levels[ndm - 1][pd_idx_2 - 1]; pd = pSpar_md->band_coeffs_idx[i].decd_index_re[pd_idx_2 - 1]; } -#ifdef QUANTISE_REAL_FCN_CLEAN_UP val = dtx_pd_real_min_max[0]; ivas_quantise_real_values( &val, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &idx, &val, 1 ); @@ -1751,17 +1622,6 @@ static void ivas_write_parameter_bitstream_dtx( ivas_quantise_real_values( &val, pr_q_lvls, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); pr -= idx; -#else - ppVal[0][0] = dtx_pd_real_min_max[0]; - ivas_quantise_real_values( ppVal, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppVal, 1, 1 ); - - pd -= ppIdx[0][0]; - - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - - pr -= ppIdx[0][0]; -#endif pr_pd_bits = ivas_get_bits_to_encode( pd_q_lvls * pr_q_lvls ); value = (uint16_t) ( pr * pd_q_lvls + pd ); @@ -1774,7 +1634,6 @@ static void ivas_write_parameter_bitstream_dtx( int16_t pr_idx1, pr_idx2, pr_pr_bits; pr_q_lvls1 = dtx_pr_real_q_levels[ndm - 1][pr_idx_1 - 1]; pr_q_lvls2 = dtx_pr_real_q_levels[ndm - 1][pr_idx_2 - 1]; -#ifdef QUANTISE_REAL_FCN_CLEAN_UP val = pr_min_max[0]; ivas_quantise_real_values( &val, pr_q_lvls1, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); @@ -1788,21 +1647,6 @@ static void ivas_write_parameter_bitstream_dtx( pr_idx2 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1]; pr_idx2 -= idx; -#else - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls1, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - - pr_idx1 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_1 - 1]; - - pr_idx1 -= ppIdx[0][0]; - - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls2, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - - pr_idx2 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1]; - - pr_idx2 -= ppIdx[0][0]; -#endif value = (uint16_t) ( pr_idx2 * pr_q_lvls1 + pr_idx1 ); pr_pr_bits = ivas_get_bits_to_encode( pr_q_lvls1 * pr_q_lvls2 ); @@ -1839,22 +1683,7 @@ static void ivas_quant_pred_coeffs_per_band( ivas_quant_strat_t *pQs, const int16_t num_ch ) { -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - float *pQuant_re, *pCoeff_re; - int16_t *pIdx_re; - float **ppPred_coeffs_re = (float **) &pCoeff_re; - float **ppPred_quant_re = (float **) &pQuant_re; - int16_t **ppPred_idx_re = (int16_t **) &pIdx_re; - - ppPred_idx_re[0] = &pBand_coeffs_idx->pred_index_re[0]; - ppPred_coeffs_re[0] = &pband_coeffs->pred_re[0]; - ppPred_quant_re[0] = &pband_coeffs->pred_quant_re[0]; -#endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_quantise_real_values( pband_coeffs->pred_re, pQs->PR.q_levels[0], pQs->PR.min, pQs->PR.max, pBand_coeffs_idx->pred_index_re, pband_coeffs->pred_quant_re, ( num_ch - 1 ) ); -#else - ivas_quantise_real_values( ppPred_coeffs_re, pQs->PR.q_levels[0], pQs->PR.min, pQs->PR.max, ppPred_idx_re, ppPred_quant_re, 1, ( num_ch - 1 ) ); -#endif return; } @@ -1875,29 +1704,6 @@ static void ivas_quant_c_per_band( int16_t i; int16_t j, k; float C_re[IVAS_SPAR_MAX_C_COEFF]; -#ifdef QUANTISE_REAL_FCN_CLEAN_UP - - k = 0; - for ( i = 0; i < ndec; i++ ) - { - for ( j = 0; j < ndm - 1; j++ ) - { - C_re[k] = pband_coeffs->C_re[i][j]; - k++; - } - } -#else - float *pC_re[IVAS_SPAR_MAX_C_COEFF]; - int16_t *pIdx_re[IVAS_SPAR_MAX_C_COEFF]; - float **ppC_re = (float **) &pC_re[0]; - int16_t **ppIdx_re = (int16_t **) &pIdx_re[0]; - - for ( i = 0; i < ndec * ( ndm - 1 ); i++ ) - { - ppC_re[i] = &C_re[i]; - ppIdx_re[i] = &pBand_coeffs_idx->drct_index_re[i]; - } - k = 0; for ( i = 0; i < ndec; i++ ) { @@ -1907,21 +1713,16 @@ static void ivas_quant_c_per_band( k++; } } -#endif #ifdef SPAR_HOA_DBG /*for (i = 0; i < ndec; i++) { - for (j = 0; j < ndm - 1; j++) - { - ppIdx_re[i][j] = 100; - } + for (j = 0; j < ndm - 1; j++) + { + ppIdx_re[i][j] = 100; + } }*/ #endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_quantise_real_values( C_re, pQs->C.q_levels[0], pQs->C.min, pQs->C.max, pBand_coeffs_idx->drct_index_re, C_re, ndec * ( ndm - 1 ) ); -#else - ivas_quantise_real_values( ppC_re, pQs->C.q_levels[0], pQs->C.min, pQs->C.max, ppIdx_re, ppC_re, ndec * ( ndm - 1 ), 1 ); -#endif k = 0; for ( i = 0; i < ndec; i++ ) { @@ -1936,11 +1737,11 @@ static void ivas_quant_c_per_band( k = 0; for (i = 0; i < ndec; i++) { - for (j = 0; j < ndm - 1; j++) - { - fprintf(stderr, "%d,%d: %f, %f, %d\n", i, j, pband_coeffs->C_re[i][j], pband_coeffs->C_quant_re[i][j], pBand_coeffs_idx->drct_index_re[k]); - k++; - } + for (j = 0; j < ndm - 1; j++) + { + fprintf(stderr, "%d,%d: %f, %f, %d\n", i, j, pband_coeffs->C_re[i][j], pband_coeffs->C_quant_re[i][j], pBand_coeffs_idx->drct_index_re[k]); + k++; + } }*/ #endif @@ -1960,46 +1761,14 @@ static void ivas_quant_p_per_band( ivas_quant_strat_t *pQs, const int16_t num_ch ) { -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - float P_re_diag[IVAS_SPAR_MAX_CH - 1]; - int16_t i; - int16_t dim = num_ch - 1; - float *pP_diag[IVAS_SPAR_MAX_CH - 1]; - int16_t *pDecd_idx[IVAS_SPAR_MAX_CH - 1]; - float **ppP_diag = (float **) &pP_diag[0]; - int16_t **ppDecd_idx = (int16_t **) &pDecd_idx[0]; -#endif -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - for ( i = 0; i < dim; i++ ) - { - ppP_diag[i] = &P_re_diag[i]; - ppDecd_idx[i] = &pBand_coeffs_idx->decd_index_re[i]; - } -#endif -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - for ( i = 0; i < dim; i++ ) - { - P_re_diag[i] = pband_coeffs->P_re[i]; - } -#endif #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n P_d:\n"); for (i = 0; i < dim; i++) { - fprintf(stderr, "%f, ", P_re_diag[i]); + fprintf(stderr, "%f, ", P_re_diag[i]); } fprintf(stderr, "\n\n");*/ #endif -#ifdef QUANTISE_REAL_FCN_CLEAN_UP ivas_quantise_real_values( pband_coeffs->P_re, pQs->P_r.q_levels[0], pQs->P_r.min, pQs->P_r.max, pBand_coeffs_idx->decd_index_re, pband_coeffs->P_quant_re, num_ch - 1 ); -#else - ivas_quantise_real_values( ppP_diag, pQs->P_r.q_levels[0], pQs->P_r.min, pQs->P_r.max, ppDecd_idx, ppP_diag, num_ch - 1, 1 ); -#endif -#ifndef QUANTISE_REAL_FCN_CLEAN_UP - for ( i = 0; i < dim; i++ ) - { - pband_coeffs->P_quant_re[i] = P_re_diag[i]; - } -#endif return; } -- GitLab From f299ed35e2a39a18aee542f7e7462f7c65c7f3b6 Mon Sep 17 00:00:00 2001 From: rtyag Date: Fri, 23 Sep 2022 14:16:15 +0200 Subject: [PATCH 119/479] formatting changes --- lib_com/options.h | 4 +- lib_dec/ivas_spar_md_dec.c | 110 ++++++++++++++++++------------------- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index c68ab1e6ed..ff89003349 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -31,14 +31,14 @@ *******************************************************************************************************/ /*==================================================================================== - EVS Codec 3GPP TS26.443 Nov 04, 2021. Version 12.14.0 / 13.10.0 / 14.6.0 / 15.4.0 / 16.3.0 + EVS Codec 3GPP TS26.443 Nov 04, 2021. Version 12.14.0 / 13.10.0 / 14.6.0 / 15.4.0 / 16.3.0 ====================================================================================*/ #ifndef OPTIONS_H #define OPTIONS_H /* clang-format off */ - /* ################### Start compiler switches ######################## */ +/* ################### Start compiler switches ######################## */ #define SUPPORT_JBM_TRACEFILE /* support for JBM tracefile, which is needed for 3GPP objective/subjective testing, but not relevant for real-world implementations */ #define RAM_COUNTING_TOOL /* tool to automatically count the dynamically alocated static memory consumption */ diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 62ee92c375..c0682c58a2 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -1658,72 +1658,72 @@ static void ivas_spar_dec_parse_md_bs( #ifdef SPAR_HOA_DBG int16_t b; b = 0; - /* if (0) + /*if ( 0 ) { - for ( b = 0; b < *nB; b++ ) + for ( b = 0; b < *nB; b++ ) + { + int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; + int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; + fprintf( stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi ); + for ( i = 0; i < ndm + ndec - 1; i++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, + hMdDec->spar_md.band_coeffs[b].pred_re[i], + hMdDec->spar_md_prev.band_coeffs_idx[b].pred_index_re[i], + hMdDec->spar_md.band_coeffs_idx[b].pred_index_re[i] ); + } + fprintf( stdout, "\n\n METADATA C: band %d\n\n", b ); + k = 0; + for ( i = 0; i < ndec; i++ ) + { + for ( j = 0; j < ( ndm - 1 ); j++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, + hMdDec->spar_md.band_coeffs[b].C_re[i][j], + hMdDec->spar_md_prev.band_coeffs_idx[b].drct_index_re[k], + hMdDec->spar_md.band_coeffs_idx[b].drct_index_re[k] ); + k++; + } + } + fprintf( stdout, "\n\n METADATA Pd: band %d\n\n", b ); + for ( i = 0; i < ndec; i++ ) { - int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[(*bands_bw) * b]; - int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[(*bands_bw) * b]; - fprintf(stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi); - for (i = 0; i < ndm + ndec - 1; i++) + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, + hMdDec->spar_md.band_coeffs[b].P_re[i][i], + hMdDec->spar_md_prev.band_coeffs_idx[b].decd_index_re[i], + hMdDec->spar_md.band_coeffs_idx[b].decd_index_re[i] ); + } + fprintf( stdout, "\n\n" ); + int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; + int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; + fprintf( stdout, "\n\n Metadata PR (15x1), C(15x15), P(15x15): band %d\n", b ); + for ( i = 0; i < ndm + ndec - 1; i++ ) + { + fprintf( stdout, "i: %d -- %.2f\t|\t", i, hMdDec->spar_md.band_coeffs[b].pred_re[i] ); + if ( i < ndec ) + { + if ( keep_planar[i] == 1 ) { - fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, - hMdDec->spar_md.band_coeffs[b].pred_re[i], - hMdDec->spar_md_prev.band_coeffs_idx[b].pred_index_re[i], - hMdDec->spar_md.band_coeffs_idx[b].pred_index_re[i]); + fprintf( stdout, ">>" ); } - fprintf(stdout, "\n\n METADATA C: band %d\n\n", b); - k = 0; - for (i = 0; i < ndec; i++) + else { - for (j = 0; j < (ndm - 1); j++) - { - fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, - hMdDec->spar_md.band_coeffs[b].C_re[i][j], - hMdDec->spar_md_prev.band_coeffs_idx[b].drct_index_re[k], - hMdDec->spar_md.band_coeffs_idx[b].drct_index_re[k]); - k++; - } + fprintf( stdout, " " ); } - fprintf(stdout, "\n\n METADATA Pd: band %d\n\n", b); - for (i = 0; i < ndec; i++) + for ( j = 0; j < ndm - 1; j++ ) { - fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, - hMdDec->spar_md.band_coeffs[b].P_re[i][i], - hMdDec->spar_md_prev.band_coeffs_idx[b].decd_index_re[i], - hMdDec->spar_md.band_coeffs_idx[b].decd_index_re[i]); + fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].C_re[i][j] ); } - fprintf(stdout, "\n\n"); - int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; - int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; - fprintf( stdout, "\n\n Metadata PR (15x1), C(15x15), P(15x15): band %d\n", b ); - for ( i = 0; i < ndm + ndec - 1; i++ ) + fprintf( stdout, "|\t" ); + for ( j = 0; j < ndec; j++ ) { - fprintf( stdout, "i: %d -- %.2f\t|\t", i, hMdDec->spar_md.band_coeffs[b].pred_re[i] ); - if ( i < ndec ) - { - if ( keep_planar[i] == 1 ) - { - fprintf( stdout, ">>" ); - } - else - { - fprintf( stdout, " " ); - } - for ( j = 0; j < ndm - 1; j++ ) - { - fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].C_re[i][j] ); - } - fprintf( stdout, "|\t" ); - for ( j = 0; j < ndec; j++ ) - { - fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].P_re[i][j] ); - } - } - fprintf( stdout, "\n" ); + fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].P_re[i][j] ); } - fprintf( stdout, "\n" ); + } + fprintf( stdout, "\n" ); } + fprintf( stdout, "\n" ); + } }*/ #endif -- GitLab From 46d03e6a3bfc9f6326858cc315e14b5160811d12 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Mon, 26 Sep 2022 10:27:23 +0200 Subject: [PATCH 120/479] use template for sanitizer tests consistently and archive ep file --- .gitlab-ci.yml | 53 +++++++++++++------------------------------------- 1 file changed, 13 insertions(+), 40 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 93fe2a758b..6eaa76e627 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -492,6 +492,11 @@ codec-comparison-on-main-push: stage: test tags: - sanitizer_test_main + artifacts: + name: "$CI_JOB_NAME--main--sha-$CI_COMMIT_SHORT_SBA" + when: always + paths: + - ep_015.g192 sanitizer-test-mono: extends: .sanitizer-test-template @@ -555,11 +560,7 @@ sanitizer-test-ism4: - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-mc-5_1: - extends: - - .test-job-linux-needs-testv-dir - stage: test - tags: - - sanitizer_test_main + extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed @@ -568,11 +569,7 @@ sanitizer-test-mc-5_1: - python3 ci/run_scheduled_sanitizer_test.py 5_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_2: - extends: - - .test-job-linux-needs-testv-dir - stage: test - tags: - - sanitizer_test_main + extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed @@ -581,11 +578,7 @@ sanitizer-test-mc-5_1_2: - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_4: - extends: - - .test-job-linux-needs-testv-dir - stage: test - tags: - - sanitizer_test_main + extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed @@ -594,11 +587,7 @@ sanitizer-test-mc-5_1_4: - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-7_1: - extends: - - .test-job-linux-needs-testv-dir - stage: test - tags: - - sanitizer_test_main + extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed @@ -607,11 +596,7 @@ sanitizer-test-mc-7_1: - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-7_1_4: - extends: - - .test-job-linux-needs-testv-dir - stage: test - tags: - - sanitizer_test_main + extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed @@ -620,11 +605,7 @@ sanitizer-test-mc-7_1_4: - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-masa: - extends: - - .test-job-linux-needs-testv-dir - stage: test - tags: - - sanitizer_test_main + extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed @@ -633,11 +614,7 @@ sanitizer-test-masa: - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-sba: - extends: - - .test-job-linux-needs-testv-dir - stage: test - tags: - - sanitizer_test_main + extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed @@ -646,11 +623,7 @@ sanitizer-test-sba: - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-planarsba: - extends: - - .test-job-linux-needs-testv-dir - stage: test - tags: - - sanitizer_test_main + extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN when: delayed -- GitLab From fbe976df314d65a738edd3916bbfd15a00184b0c Mon Sep 17 00:00:00 2001 From: kiene Date: Mon, 26 Sep 2022 09:39:44 +0000 Subject: [PATCH 121/479] fix typo --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6eaa76e627..cbd61ad2dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -493,7 +493,7 @@ codec-comparison-on-main-push: tags: - sanitizer_test_main artifacts: - name: "$CI_JOB_NAME--main--sha-$CI_COMMIT_SHORT_SBA" + name: "$CI_JOB_NAME--main--sha-$CI_COMMIT_SHORT_SHA" when: always paths: - ep_015.g192 -- GitLab From 8bdcaf00291019d3fffe6fb2f0bf4816de2c016b Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 16 Sep 2022 16:15:17 +0200 Subject: [PATCH 122/479] fade to complete zero after 2 seconds --- lib_com/ivas_cnst.h | 4 ++++ lib_com/options.h | 1 + lib_dec/dec_tcx.c | 14 ++++++++++++++ lib_dec/er_dec_tcx.c | 14 ++++++++++++++ 4 files changed, 33 insertions(+) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 6cddb98120..d7702ca3b6 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -801,6 +801,10 @@ enum fea_names #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ #define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f +#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS +#define MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME 1 * FRAMES_PER_SEC +#define MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN 20 +#endif typedef enum { EQUAL_CORES, diff --git a/lib_com/options.h b/lib_com/options.h index abaf5a49d3..9b6e33bb7b 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,6 +144,7 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define MDCT_STEREO_PLC_FADE_2_BG_NOISE*/ /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ +/*#define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS*/ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 0614c5e0db..502433517e 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -202,6 +202,20 @@ void decoder_tcx_post( if ( st->tcxonly ) { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / ( level_syn + 0.01f ); +#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS + + if ( st->element_mode == IVAS_CPE_MDCT && ! isMCT ) + { + if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME + MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN ) + { + gainCNG = 0.f; + } + else if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) + { + gainCNG *= 1.f - (float) ( st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) / MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN; + } + } +#endif } else { diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 7ff9190f4c..d72e88da5f 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -452,6 +452,20 @@ void con_tcx( if ( st->tcxonly ) { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / gainSynthDeemph; + +#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS + if ( st->element_mode == IVAS_CPE_MDCT && A_cng != NULL ) + { + if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME + MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN ) + { + gainCNG = 0.f; + } + else if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) + { + gainCNG *= 1.f - (float) ( st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) / MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN; + } + } +#endif } else { -- GitLab From b3e6e7ffb03d87f129cd3dacda1cb78d9f66d9d7 Mon Sep 17 00:00:00 2001 From: muxe6256 Date: Mon, 26 Sep 2022 14:08:05 +0200 Subject: [PATCH 123/479] correction lfe handling in MC to binaural case, bugs fix --- .gitignore | 7 +- CMakeLists.txt | 8 + apps/renderer.c | 31 +++- lib_com/ivas_cnst.h | 2 + lib_rend/ivas_limiter.c | 12 +- lib_rend/ivas_rom_rend.c | 14 +- lib_rend/ivas_rom_rend.h | 14 +- lib_rend/lib_rend.c | 155 ++++++++---------- lib_rend/lib_rend.h | 3 +- .../unit_tests/crend/ivas_crend_io_parse.h | 2 + .../unit_tests/crend/ivas_crend_unit_test.c | 4 + .../unit_tests/crend/ivas_crend_utest_utils.c | 76 ++++----- .../unit_tests/crend/ivas_dec_parse_io.h | 5 +- scripts/pyaudio3dtools/binauralrenderer.py | 42 +++-- scripts/pyaudio3dtools/spatialaudioconvert.py | 10 +- scripts/tests/constants.py | 53 ++++++ scripts/tests/data/dirac_12ch_48khz.wav | 3 + scripts/tests/test_renderer.py | 63 +++++++ 18 files changed, 325 insertions(+), 179 deletions(-) create mode 100644 scripts/tests/data/dirac_12ch_48khz.wav diff --git a/.gitignore b/.gitignore index 6b784623d5..16832d2879 100644 --- a/.gitignore +++ b/.gitignore @@ -4,18 +4,20 @@ IVAS_cod IVAS_dec IVAS_rend +IVAS_crend_unit_test obj/ *.a *.o *.P # default CMake -build/**/* +build*/**/* # Compiler output VS2017 IVAS_cod.exe IVAS_dec.exe IVAS_rend.exe +IVAS_crend_unit_test.exe *.user .vs/ Debug_*/ @@ -50,3 +52,6 @@ scripts/tests/ref/ __pycache__/ *.py[cod] *$py.class + +#history +.history/ diff --git a/CMakeLists.txt b/CMakeLists.txt index abcad632f4..9c917bd88e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,6 +152,13 @@ file(GLOB libUtilSrcs "lib_util/*.c") file(GLOB libUtilHeaders "lib_util/*.h") add_library(lib_util ${libUtilSrcs} ${libUtilHeaders}) +file(GLOB libCRendSrcs "scripts/ivas_pytests/tests/unit_tests/crend/*.c") +file(GLOB libCRendHeaders "scripts/ivas_pytests/tests/unit_tests/crend/*.h") +message(${libCRendSrcs}) +message(${libCRendHeaders}) +add_executable(IVAS_crend_unit_test ${libCRendSrcs} ${libCRendHeaders}) +target_link_libraries(IVAS_crend_unit_test lib_dec lib_rend lib_util lib_com lib_debug) + add_executable(IVAS_cod apps/encoder.c) target_link_libraries(IVAS_cod lib_enc lib_util) if(WIN32) @@ -174,4 +181,5 @@ if(COPY_EXECUTABLES_TO_ROOT) add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") + add_custom_command(TARGET IVAS_crend_unit_test POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") endif() \ No newline at end of file diff --git a/apps/renderer.c b/apps/renderer.c index c8d1ee7bd6..5e1f042a70 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -165,6 +165,7 @@ typedef struct CmdlnArgs bool neverDropLfe; /* flag */ bool delayCompensationEnabled; /* flag */ bool quietModeEnabled; + bool lpLfeEnabled; } CmdlnArgs; static int8_t setInConfig( @@ -319,7 +320,7 @@ int32_t main( int32_t argc, char **argv ) AudioFileReader *audioReader = NULL; AudioFileWriter *audioWriter; int16_t inBufferSize; - int32_t outBufferSize; + int16_t outBufferSize; int16_t *inpInt16Buffer; float *inFloatBuffer; int16_t *outInt16Buffer; @@ -414,7 +415,7 @@ int32_t main( int32_t argc, char **argv ) } /* === Configure === */ - if ( ( error = IVAS_REND_Configure( hIvasRend, args.inConfig, args.outConfig, args.sampleRate, args.trajectoryFile[0] != '\0', args.renderConfigFile[0] != '\0' ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_Configure( hIvasRend, args.inConfig, args.outConfig, args.sampleRate, args.trajectoryFile[0] != '\0', args.renderConfigFile[0] != '\0', args.lpLfeEnabled ) ) != IVAS_ERR_OK ) { exit( -1 ); } @@ -680,7 +681,7 @@ static int8_t setInConfig( AUDIO_CONFIG input_config, IVAS_REND_InputConfig *inC case AUDIO_CONFIG_ISM2: case AUDIO_CONFIG_ISM3: case AUDIO_CONFIG_ISM4: - inConfig->numAudioObjects = input_config - AUDIO_CONFIG_ISM1 + 1; /* TODO(sgi): Don't do arithemtic on enums, find a better way */ + inConfig->numAudioObjects = (uint16_t)input_config - (uint16_t)AUDIO_CONFIG_ISM1 + 1; /* TODO(sgi): Don't do arithemtic on enums, find a better way */ positionProvider->numObjects = inConfig->numAudioObjects; for ( i = 0; i < inConfig->numAudioObjects; ++i ) @@ -1144,6 +1145,7 @@ static CmdlnArgs defaultArgs( void ) args.neverDropLfe = false; args.delayCompensationEnabled = true; args.quietModeEnabled = false; + args.lpLfeEnabled = false; for ( size_t i = 0; i < RENDERER_MAX_ISM_INPUTS; i++ ) { @@ -1168,7 +1170,8 @@ typedef enum CmdLnOptionId_neverDropLfe, CmdLnOptionId_noDelayCmp, CmdLnOptionId_quietModeEnabled, - CmdLnOptionId_inputMetadata, + CmdLnOptionId_lpLfeEnabled, +// CmdLnOptionId_inputMetadata, } CmdLnOptionId; static void parseOption( int32_t optionId, char **optionValues, int16_t numOptionValues, void *pOutputStruct ) @@ -1245,6 +1248,10 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio assert( numOptionValues == 0 ); args->quietModeEnabled = true; break; + case CmdLnOptionId_lpLfeEnabled: + assert( numOptionValues == 0 ); + args->lpLfeEnabled = true; + break; default: /* Unreachable */ break; @@ -1346,6 +1353,18 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) .matchShort = "q", .description = "[flag] Limit printouts to terminal", }, + { + .id = CmdLnOptionId_lpLfeEnabled, + .match = "lowpass_lfe", + .matchShort = "lp_lfe", + .description = "[flag] Apply lowpass filter to lfe", + }, + // { /* TODO(sgi): move metadata file paths from input_format to this separate flag */ + // .id = CmdLnOptionId_inputMetadata, + // .match = "input_metadata", + // .matchShort = "im", + // .description = "Space-separated list of path to metadata files for ISM or MASA inputs", + // }, }; CmdlnArgs parsedArgs = defaultArgs(); @@ -1529,7 +1548,7 @@ static void splitConfigFile( const char *mdfFilePath, fprintf( stderr, "Error reading metadata\n" ); exit( -1 ); } - *wavFileNameLength = strlen( wavFileName ); + *wavFileNameLength = (uint32_t)strlen( wavFileName ); mdlength = bufferlength - currentPositionIdxs; /* "+1" for null termination */ @@ -2013,7 +2032,7 @@ void parseConfigFile( char *path, char *audioFilePath, IVAS_REND_InputConfig *in static void convert_backslash( char *str ) { - int i, len; + size_t i, len; /* check that all backslashes are correct on the given platform */ len = strlen( str ); diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 223f3fa490..daff91d365 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -196,6 +196,8 @@ typedef enum #define IVAS_MAX_SBA_ORDER 3 /* Maximum supported Ambisonics order */ +#define IVAS_LIMITER_THRESHOLD 32729 /* -0.01 dBFS */ +#define IVAS_LIMITER_ATTACK_SECONDS 0.005f /*----------------------------------------------------------------------------------* * IVAS Bitrates diff --git a/lib_rend/ivas_limiter.c b/lib_rend/ivas_limiter.c index e483318be8..c0ffd7aa4a 100644 --- a/lib_rend/ivas_limiter.c +++ b/lib_rend/ivas_limiter.c @@ -43,10 +43,6 @@ * Local constants *----------------------------------------------------------------------------------*/ -#define LIMITER_THRESHOLD 32729 /* -0.01 dBFS */ -#define LIMITER_ATTACK_SECONDS 0.005f - - /*-------------------------------------------------------------------* * detect_strong_saturations() * @@ -71,11 +67,11 @@ static int16_t detect_strong_saturations( *strong_saturation_cnt = 50; apply_strong_limiting = 1; } - else if ( max_val > 3 * LIMITER_THRESHOLD && *strong_saturation_cnt > 0 ) + else if ( max_val > 3 * IVAS_LIMITER_THRESHOLD && *strong_saturation_cnt > 0 ) { apply_strong_limiting = 1; } - else if ( max_val > 10 * LIMITER_THRESHOLD ) + else if ( max_val > 10 * IVAS_LIMITER_THRESHOLD ) { *strong_saturation_cnt += 20; *strong_saturation_cnt = min( *strong_saturation_cnt, 50 ); @@ -130,7 +126,7 @@ IVAS_LIMITER_HANDLE ivas_limiter_open( hLimiter->sampling_rate = sampling_rate; hLimiter->gain = 1.f; hLimiter->release_heuristic = 0.f; - hLimiter->attack_constant = powf( 0.01f, 1.0f / ( LIMITER_ATTACK_SECONDS * sampling_rate ) ); + hLimiter->attack_constant = powf( 0.01f, 1.0f / ( IVAS_LIMITER_ATTACK_SECONDS * sampling_rate ) ); hLimiter->strong_saturation_count = 0; #ifdef DEBUGGING hLimiter->cnt_frames_limited = 0; @@ -202,7 +198,7 @@ void ivas_limiter_dec( channels[c] = output[c]; } - limiter_process( hLimiter, output_frame, LIMITER_THRESHOLD, BER_detect, &hLimiter->strong_saturation_count ); + limiter_process( hLimiter, output_frame, IVAS_LIMITER_THRESHOLD, BER_detect, &hLimiter->strong_saturation_count ); return; } diff --git a/lib_rend/ivas_rom_rend.c b/lib_rend/ivas_rom_rend.c index dd252a9969..663c25f1cf 100644 --- a/lib_rend/ivas_rom_rend.c +++ b/lib_rend/ivas_rom_rend.c @@ -333,25 +333,25 @@ const float ivas_reverb_default_DSR[IVAS_REVERB_DEFAULT_N_BANDS] = /* CICP1 - Mono */ const float ls_azimuth_CICP1[1] = { 0.0f }; const float ls_elevation_CICP1[1] = { 0.0f }; -const uint32_t ls_LFE_last_idx_CICP1[1] = { 0 }; +const uint16_t ls_LFE_last_idx_CICP1[1] = { 0 }; /* CICP2 - Stereo */ -const uint32_t ls_LFE_last_idx_CICP2[2] = { 0, 1 }; +const uint16_t ls_LFE_last_idx_CICP2[2] = { 0, 1 }; /* CICP6 - 5.1 */ -const uint32_t ls_LFE_last_idx_CICP6[6] = { 0, 1, 2, 4, 5, 3 }; +const uint16_t ls_LFE_last_idx_CICP6[6] = { 0, 1, 2, 4, 5, 3 }; /* CICP12 - 7.1 */ -const uint32_t ls_LFE_last_idx_CICP12[8] = { 0, 1, 2, 4, 5, 6, 7, 3 }; +const uint16_t ls_LFE_last_idx_CICP12[8] = { 0, 1, 2, 4, 5, 6, 7, 3 }; /* CICP14 - 5.1.2 */ -const uint32_t ls_LFE_last_idx_CICP14[8] = { 0, 1, 2, 4, 5, 6, 7, 3 }; +const uint16_t ls_LFE_last_idx_CICP14[8] = { 0, 1, 2, 4, 5, 6, 7, 3 }; /* CICP16 - 5.1.4 */ -const uint32_t ls_LFE_last_idx_CICP16[10] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 3 }; +const uint16_t ls_LFE_last_idx_CICP16[10] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 3 }; /* CICP19 - 7.1.4 */ -const uint32_t ls_LFE_last_idx_CICP19[12] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 3 }; +const uint16_t ls_LFE_last_idx_CICP19[12] = { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 3 }; /*----------------------------------------------------------------------------------* * LS Renderer ROM tables diff --git a/lib_rend/ivas_rom_rend.h b/lib_rend/ivas_rom_rend.h index 166e417692..5e2cc14fa1 100644 --- a/lib_rend/ivas_rom_rend.h +++ b/lib_rend/ivas_rom_rend.h @@ -99,13 +99,13 @@ extern const float ivas_reverb_default_DSR[]; extern const float hoa_dec_mtx_CICP1[16]; extern const float ls_azimuth_CICP1[1]; extern const float ls_elevation_CICP1[1]; -extern const uint32_t ls_LFE_last_idx_CICP1[1]; -extern const uint32_t ls_LFE_last_idx_CICP2[2]; -extern const uint32_t ls_LFE_last_idx_CICP6[6]; -extern const uint32_t ls_LFE_last_idx_CICP12[8]; -extern const uint32_t ls_LFE_last_idx_CICP14[8]; -extern const uint32_t ls_LFE_last_idx_CICP16[10]; -extern const uint32_t ls_LFE_last_idx_CICP19[12]; +extern const uint16_t ls_LFE_last_idx_CICP1[1]; +extern const uint16_t ls_LFE_last_idx_CICP2[2]; +extern const uint16_t ls_LFE_last_idx_CICP6[6]; +extern const uint16_t ls_LFE_last_idx_CICP12[8]; +extern const uint16_t ls_LFE_last_idx_CICP14[8]; +extern const uint16_t ls_LFE_last_idx_CICP16[10]; +extern const uint16_t ls_LFE_last_idx_CICP19[12]; /*----------------------------------------------------------------------------------* * LS Configuration Converter ROM tables diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 9658883460..52f74a05ae 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -46,7 +46,6 @@ #include -#define LIMITER_THRESHOLD ( 0.9988493699f * INT16_MAX ) /* -0.01 dBFS */ /* Due to API of some rendering methods, the renderer has to use the decoder struct. Only struct members relevant for rendering will be initialized, therefore typedef as "dummy" decoder struct */ @@ -257,12 +256,12 @@ static const float *getSpeakerAzimuths( static const float *getSpeakerElevations( IVAS_REND_SpeakerLayout layout ); -static const uint32_t *getReorderedChannelIndices( +static const uint16_t *getReorderedChannelIndices( IVAS_REND_SpeakerLayout layout ); -static int32_t reverseChannelIndexMapping( int32_t originalChannelIndex, - const uint32_t *channelReorderingMap, - uint32_t numNonLfeSpeakers ); +static int16_t reverseChannelIndexMapping( int16_t originalChannelIndex, + const uint16_t *channelReorderingMap, + uint16_t numNonLfeSpeakers ); static ivas_error getHoaRenderMtx( const IVAS_REND_OutputConfig outConfig, @@ -510,7 +509,8 @@ static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin decDummyObjBin->intern_config = AUDIO_CONFIG_7_1_4; ivas_output_init( &decDummyObjBin->hIntSetup, decDummyObjBin->intern_config ); - if ( ( error = ivas_crend_open( decDummyObjBin ) != IVAS_ERR_OK ) ) + error = ivas_crend_open( decDummyObjBin); + if ( error != IVAS_ERR_OK ) { return error; } @@ -603,7 +603,8 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, const IVAS_REND_OutputConfig outConfig, uint32_t sampleRate, bool headRotationEnabled, - bool rendererConfigEnabled ) + bool rendererConfigEnabled, + bool lpLfeEnabled ) { uint32_t i; int32_t j; @@ -634,6 +635,7 @@ ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, st->firstFrame = 1; st->inConfig = inConfig; st->outConfig = outConfig; + st->forceBinLfeLpf = lpLfeEnabled; /* Save total number of channels in ambisonics inputs */ st->numInChannelsAmbi = 0; @@ -1024,7 +1026,7 @@ void IVAS_REND_Render( st->hLimiter, outAudio.data, outAudio.config.bufferSize, - LIMITER_THRESHOLD ); + IVAS_LIMITER_THRESHOLD ); if ( st->firstFrame ) { @@ -1280,9 +1282,8 @@ ivas_error IVAS_REND_GetDelay( { if ( st->forceBinLfeLpf ) { - *nSamples = max( - NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyMcBin->binaural_latency_ns + 0.5f ) ), - NS2SA( st->sampleRate, ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L ) ); + *nSamples = + NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyMcBin->binaural_latency_ns + ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L ) ) ; } else { @@ -1435,13 +1436,13 @@ static void renderChannelsToAmbi( IVAS_REND_HANDLE st, const IVAS_REND_AudioBuffer inAudio, IVAS_REND_AudioBuffer outAudio ) { - const uint32_t *lfeLastIdxs; - uint32_t inMcChannelIdx; - uint32_t numNonLfeInChannels; - uint32_t numInChannels; - uint32_t mcIdx; - uint32_t inChIdx; - uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; + const uint16_t *lfeLastIdxs; + uint16_t inMcChannelIdx; + uint16_t numNonLfeInChannels; + uint16_t numInChannels; + uint16_t mcIdx; + uint16_t inChIdx; + uint16_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; float gain_lin; #ifdef WMOPS @@ -1629,14 +1630,14 @@ static void renderChannelsToChannels( const IVAS_REND_AudioBuffer inAudio, IVAS_REND_AudioBuffer outAudio ) { - const uint32_t *lfeLastIdxs; - uint32_t inMcChannelIdx; - uint32_t numNonLfeInChannels; - uint32_t numInChannels; - uint32_t passThroughIdx; - uint32_t mcIdx; - uint32_t inChIdx; - uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; + const uint16_t *lfeLastIdxs; + uint16_t inMcChannelIdx; + uint16_t numNonLfeInChannels; + uint16_t numInChannels; + uint16_t passThroughIdx; + uint16_t mcIdx; + uint16_t inChIdx; + uint16_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; float gain_lin; #ifdef WMOPS @@ -1902,13 +1903,11 @@ static void renderChannelsToBinaural( int16_t i; int16_t lfeChIdx; int16_t frameLength, subFrameLength; - int16_t binauralDelaySmp, lfeDelaySmp; - int16_t offset; + int16_t delaySmp; uint32_t mcIdx, inMcChannelIdx; int32_t numInChannels; float gain_lin; float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - float tmpLfeBuffer[L_FRAME48k_EXT]; #ifdef WMOPS wmops_sub_start( "renderChannelsToBinaural" ); @@ -1952,47 +1951,27 @@ static void renderChannelsToBinaural( } /* TODO tmu : this is always disabled */ - if ( st->forceBinLfeLpf ) + if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) { - if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) - { - lfeChIdx = st->inConfig.inSetupCustom->lfe_idx[0]; - } - else - { - lfeChIdx = LFE_CHANNEL; - } - set_zero( tmpLfeBuffer, frameLength ); - mvr2r( tmpBuffer[lfeChIdx], tmpLfeBuffer, frameLength ); - - /* Low pass filtering */ - ivas_filter_process( &st->lfeLpFilter, tmpLfeBuffer, frameLength ); + lfeChIdx = st->inConfig.inSetupCustom->lfe_idx[0]; + } + else + { + lfeChIdx = LFE_CHANNEL; + } + if ( st->forceBinLfeLpf ) + { /* Delay adjustment */ - lfeDelaySmp = NS2SA( st->sampleRate, ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L ); - binauralDelaySmp = NS2SA( st->sampleRate, st->decDummyMcBin->binaural_latency_ns ); - - if ( lfeDelaySmp > binauralDelaySmp ) - { - /* delay binauralised signal */ - offset = lfeDelaySmp - binauralDelaySmp; - for ( i = 0; i < numInChannels; ++i ) - { - if ( i == lfeChIdx ) - { - continue; - } - delay_signal( tmpBuffer[i], frameLength, st->delayOffsetBuffer[i], offset ); - } - } - else if ( lfeDelaySmp < binauralDelaySmp ) + delaySmp = (int16_t) roundf( st->decDummyMcBin->hHrtf->latency_s * st->sampleRate ); + delay_signal( tmpBuffer[lfeChIdx], frameLength, st->delayOffsetBuffer[lfeChIdx], delaySmp); + /* Low pass filtering */ + ivas_filter_process( &st->lfeLpFilter, tmpBuffer[lfeChIdx], frameLength ); + delaySmp = NS2SA( st->sampleRate, ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L ); + for ( i = 0; i < outAudio.config.numChannels; i++ ) { - /* delay LFE signal */ - offset = binauralDelaySmp - lfeDelaySmp; - delay_signal( tmpLfeBuffer, frameLength, st->delayOffsetBuffer[lfeChIdx], offset ); + delay_signal( tmpBuffer[i], frameLength, st->delayOffsetBuffer[i], delaySmp); } - - mvr2r( tmpLfeBuffer, tmpBuffer[lfeChIdx], frameLength ); } ivas_binaural_add_LFE( st->decDummyMcBin, frameLength, tmpBuffer ); @@ -2404,9 +2383,9 @@ static void prepareLfeHandling( static void prepareMcPanGains( IVAS_REND_HANDLE st ) { - uint32_t mcIdx; - int32_t spkIdx; - int32_t numNonLfeChannelsIn; + uint16_t mcIdx; + uint16_t spkIdx; + uint16_t numNonLfeChannelsIn; const float *spkAzi; const float *spkEle; @@ -2475,7 +2454,7 @@ static void prepareMcPanGains( IVAS_REND_HANDLE st ) int16_t index; int16_t nchan_out; float value; - const uint32_t *lfeLastIdxMap; + const uint16_t *lfeLastIdxMap; const LS_CONVERSION_MATRIX *conversion_matrix; AUDIO_CONFIG input_config, output_config; IVAS_REND_SpeakerLayout spkLayoutIn; @@ -2577,23 +2556,23 @@ static void prepareMcPassthrough( IVAS_REND_HANDLE st ) /* Output config */ const float *outSpkAzi; const float *outSpkEle; - const uint32_t *lfeLastIdxs; - uint32_t numNonLfeOutChannels; - uint32_t numOutChannels; - uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; + const uint16_t *lfeLastIdxs; + uint16_t numNonLfeOutChannels; + uint16_t numOutChannels; + uint16_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; /* Input config */ const float *inSpkAzi; const float *inSpkEle; - uint32_t numInChannels; - uint32_t numNonLfeInChannels; + uint16_t numInChannels; + uint16_t numNonLfeInChannels; /* Input channel index */ - uint32_t passThroughIdx; + uint16_t passThroughIdx; - uint32_t mcIdx; - uint32_t inChIdx; - uint32_t outChIdx; + uint16_t mcIdx; + uint16_t inChIdx; + uint16_t outChIdx; #ifdef WMOPS wmops_sub_start( "prepareMcPassthrough" ); @@ -2746,7 +2725,7 @@ static void getSpeakerGains( const IVAS_REND_HANDLE st, const float ele, float *const spkGains ) { - const uint32_t *lfeLastIdxs; + const uint16_t *lfeLastIdxs; int16_t numNonLfeOutChannels; int16_t noLfeIdx; IVAS_REND_SpeakerLayout speakerLayout; @@ -2933,7 +2912,7 @@ const float *getSpeakerElevations( IVAS_REND_SpeakerLayout layout ) return NULL; } -static const uint32_t *getReorderedChannelIndices( IVAS_REND_SpeakerLayout layout ) +static const uint16_t *getReorderedChannelIndices( IVAS_REND_SpeakerLayout layout ) { switch ( layout ) { @@ -2958,15 +2937,15 @@ static const uint32_t *getReorderedChannelIndices( IVAS_REND_SpeakerLayout layou return NULL; } -static int32_t reverseChannelIndexMapping( int32_t originalChannelIndex, const uint32_t *channelReorderingMap, uint32_t numNonLfeSpeakers ) +static int16_t reverseChannelIndexMapping( int16_t originalChannelIndex, const uint16_t *channelReorderingMap, uint16_t numNonLfeSpeakers ) { - int32_t i; + uint16_t i; - for ( i = 0; i < (int32_t) numNonLfeSpeakers; ++i ) + for ( i = 0; i < numNonLfeSpeakers; ++i ) { - if ( (int32_t) channelReorderingMap[i] == originalChannelIndex ) + if ( channelReorderingMap[i] == (uint16_t)originalChannelIndex ) { - return i; + return (int16_t)i; } } @@ -3043,7 +3022,7 @@ void getHoaDecVecForAmbiChnl( float *decCoeffs ) { - const uint32_t *lfeLastIdxs; + const uint16_t *lfeLastIdxs; int16_t numNonLfeChannels; int16_t nonLfeChIdx; @@ -3124,7 +3103,7 @@ static int32_t ivas_limiter_renderer( channels[i] = output + i * output_frame; } - limiter_process( hLimiter, output_frame, threshold, 0, NULL ); + limiter_process( hLimiter, output_frame, threshold, 0, &hLimiter->strong_saturation_count ); /* Apply clipping to buffer in case the limiter let through some samples > 1.0f */ for ( i = 0; i < output_frame * num_channels; ++i ) diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index dfcf0ec57a..191376f8be 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -184,7 +184,8 @@ ivas_error IVAS_REND_Configure( const IVAS_REND_OutputConfig outConfig, /* i : Output configuration */ uint32_t sampleRate, /* i : Processing sampling rate */ bool headRotationEnabled, /* i : enable head rotation for binaural output, ignored for other output formats */ - bool rendererConfigEnabled /* i : flag indicating if a renderer configuration file was supplied */ + bool rendererConfigEnabled, /* i : flag indicating if a renderer configuration file was supplied */ + bool lpLfeEnabled /* i : flag lowpass filter enabled */ ); void IVAS_REND_SetHeadRotation( diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h index 21b59ad06f..53a4f452cc 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h @@ -46,6 +46,7 @@ #define IVAS_IN_FMT_510 "510" #define IVAS_IN_FMT_710 "710" #define IVAS_IN_FMT_512 "512" +#define IVAS_IN_FMT_514 "514" #define IVAS_IN_FMT_714 "714" #define IVAS_IN_FMT_FOA "HOA1S" @@ -60,6 +61,7 @@ typedef enum ivas_in_out_fmt_struct_t MULT_CH_5_1, MULT_CH_7_1, MULT_CH_5_1_2, + MULT_CH_5_1_4, MULT_CH_7_1_4, HOA_9, HOA_16, diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c index b2a24534c0..0e32e634fe 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c @@ -416,6 +416,10 @@ static ivas_result_t ivas_crend_binaural_test( ivas_crend_io_params_t *pIo_param { test_case = "CREND_512_TO_BIN"; } + else if ( pIo_params->in_fmt == MULT_CH_5_1_4 ) + { + test_case = "CREND_514_TO_BIN"; + } else if ( pIo_params->in_fmt == MULT_CH_7_1_4 ) { test_case = "CREND_714_TO_BIN"; diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c index d993405b11..00f00560e7 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c @@ -149,6 +149,8 @@ AUDIO_CONFIG ivas_crend_map_out_fmt( return AUDIO_CONFIG_7_1; case MULT_CH_5_1_2: return AUDIO_CONFIG_5_1_2; + case MULT_CH_5_1_4: + return AUDIO_CONFIG_5_1_4; case MULT_CH_7_1_4: return AUDIO_CONFIG_7_1_4; default: @@ -166,6 +168,7 @@ const char *ivas_crend_map_in_fmt( case MULT_CH_5_1: case MULT_CH_7_1: case MULT_CH_5_1_2: + case MULT_CH_5_1_4: case MULT_CH_7_1_4: return IVAS_IN_FMT_COMBINED; case FOA_4: @@ -213,6 +216,9 @@ int16_t ivas_get_num_channels( case MULT_CH_5_1_2: num_channels = 8; break; + case MULT_CH_5_1_4: + num_channels = 10; + break; case MULT_CH_7_1_4: num_channels = 12; break; @@ -561,7 +567,7 @@ ivas_result_t ivas_crend_parse_io_params( int argc, char **argv, ivas_crend_io_p else if ( strcmp( to_upper( argv[i] ), "-IFMT" ) == 0 ) { pIo_params->in_fmt = atoi( argv[++i] ); - if ( ( pIo_params->in_fmt != MONO_1 ) && ( pIo_params->in_fmt != STEREO_2 ) && ( pIo_params->in_fmt != BIN_2 ) && ( pIo_params->in_fmt != FOA_4 ) && ( pIo_params->in_fmt != HOA_9 ) && ( pIo_params->in_fmt != HOA_16 ) && ( pIo_params->in_fmt != MULT_CH_5_1 ) && ( pIo_params->in_fmt != MULT_CH_7_1 ) && ( pIo_params->in_fmt != MULT_CH_5_1_2 ) && ( pIo_params->in_fmt != MULT_CH_7_1_4 ) && ( pIo_params->in_fmt != OBA ) ) + if ( ( pIo_params->in_fmt != MONO_1 ) && ( pIo_params->in_fmt != STEREO_2 ) && ( pIo_params->in_fmt != BIN_2 ) && ( pIo_params->in_fmt != FOA_4 ) && ( pIo_params->in_fmt != HOA_9 ) && ( pIo_params->in_fmt != HOA_16 ) && ( pIo_params->in_fmt != MULT_CH_5_1 ) && ( pIo_params->in_fmt != MULT_CH_7_1 ) && ( pIo_params->in_fmt != MULT_CH_5_1_2 ) && ( pIo_params->in_fmt != MULT_CH_5_1_4 ) && ( pIo_params->in_fmt != MULT_CH_7_1_4 ) && ( pIo_params->in_fmt != OBA ) ) { fprintf( stderr, "Error: Invalid input format\n\n" ); ivas_crend_unit_test_usage(); @@ -575,7 +581,7 @@ ivas_result_t ivas_crend_parse_io_params( int argc, char **argv, ivas_crend_io_p else if ( strcmp( to_upper( argv[i] ), "-OFMT" ) == 0 ) { pIo_params->out_fmt = atoi( argv[++i] ); - if ( ( pIo_params->out_fmt != MONO_1 ) && ( pIo_params->out_fmt != STEREO_2 ) && ( pIo_params->out_fmt != BIN_2 ) && ( pIo_params->out_fmt != FOA_4 ) && ( pIo_params->out_fmt != HOA_9 ) && ( pIo_params->out_fmt != HOA_16 ) && ( pIo_params->out_fmt != MULT_CH_5_1 ) && ( pIo_params->out_fmt != MULT_CH_7_1 ) && ( pIo_params->out_fmt != MULT_CH_5_1_2 ) && ( pIo_params->out_fmt != MULT_CH_7_1_4 ) ) + if ( ( pIo_params->out_fmt != MONO_1 ) && ( pIo_params->out_fmt != STEREO_2 ) && ( pIo_params->out_fmt != BIN_2 ) && ( pIo_params->out_fmt != FOA_4 ) && ( pIo_params->out_fmt != HOA_9 ) && ( pIo_params->out_fmt != HOA_16 ) && ( pIo_params->out_fmt != MULT_CH_5_1 ) && ( pIo_params->out_fmt != MULT_CH_7_1 ) && ( pIo_params->out_fmt != MULT_CH_5_1_2 ) && ( pIo_params->out_fmt != MULT_CH_5_1_4 ) && ( pIo_params->out_fmt != MULT_CH_7_1_4 ) ) { fprintf( stderr, "Error: Invalid output format\n\n" ); ivas_crend_unit_test_usage(); @@ -875,7 +881,7 @@ static ivas_result_t ivas_wrapper_get_in_buf( ivas_crend_io_params_t *pIo_params #endif { ppPcm_in[i][j] = (float) tmp; - ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); + // ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); samples_read += 1; } else @@ -913,7 +919,7 @@ static ivas_result_t ivas_wrapper_get_in_buf( ivas_crend_io_params_t *pIo_params #endif { ppPcm_in[i][j] = (float) tmp; - ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); + // ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); samples_read += 1; } else @@ -999,6 +1005,7 @@ static void ivas_copy_io_params_to_dec_io_params( ivas_crend_io_params_t *pIo_pa case MULT_CH_5_1: case MULT_CH_7_1: case MULT_CH_5_1_2: + case MULT_CH_5_1_4: case MULT_CH_7_1_4: pDec_io_params->lfe_ch_idx = IVAS_DEFAULT_LFE_CH_IDX; break; @@ -1398,36 +1405,24 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl return IVAS_IO_ERROR; } - if ( pIo_params->lfe_lp_enable ) { - int32_t idx = 0; - for ( i = 0; i < in_ch; i++ ) + /* ADD delay to make overall max(block_offset, 11.5)*/ + if ( st_ivas.hLFE->lfe_addl_delay > 0 ) { - if ( i != lfe_ch_idx ) - { - delay_signal( ppPcm_in[idx], frame_len, ppDelay_lines[idx], delay_lp ); - idx++; - } + delay_signal( ppPcm_in[lfe_ch_idx], frame_len, st_ivas.hLFE->lfe_delay_buf, st_ivas.hLFE->lfe_addl_delay ); } + ivas_filter_process( &st_ivas.hLFE->filter_state, ppPcm_in[lfe_ch_idx], frame_len ); } if ( pIo_params->test == FASTCONV_BIN_TEST ) { ivas_binaural_cldfb( &st_ivas, ppPcm_in ); - for ( i = 0; i < out_ch; i++ ) - { - mvr2r( ppPcm_in[i], ppPcm_out[i], frame_len ); - } } else if ( pIo_params->test == TD_BIN_TEST ) { ObjRenderIVASFrame( &st_ivas, ppPcm_in, frame_len ); - for ( i = 0; i < out_ch; i++ ) - { - mvr2r( ppPcm_in[i], ppPcm_out[i], frame_len ); - } } else if ( pIo_params->test == PARAM_BIN_TEST ) { @@ -1482,11 +1477,6 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl cldfbSynthesis( &outSlotRePr, &outSlotImPr, &( ppPcm_in[ch][slot_idx * maxBand] ), maxBand, st_ivas.cldfbSynDec[ch] ); } } - - for ( i = 0; i < out_ch; i++ ) - { - mvr2r( ppPcm_in[i], ppPcm_out[i], frame_len ); - } } else @@ -1495,7 +1485,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { ivas_crend_mixer( ppPcm_in, ppPcm_out, in_ch, out_ch, mixer, frame_len ); } - else + else { ivas_crend_process( &st_ivas, ppPcm_in ); } @@ -1503,19 +1493,12 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl if ( mixer == NULL ) { - if ( st_ivas.hLFE ) + if ( pIo_params->lfe_lp_enable ) { - /* if ( st_ivas.hLFE->filter_state.order > 0 ) - { - - ivas_filter_process( &st_ivas.hLFE->filter_state, ppPcm_in[lfe_ch_idx], frame_len ); - }*/ - - /* ADD delay to make overall max(block_offset, 11.5)*/ - if ( st_ivas.hLFE->lfe_addl_delay > 0 ) - { - delay_signal( ppPcm_in[lfe_ch_idx], frame_len, st_ivas.hLFE->lfe_delay_buf, st_ivas.hLFE->lfe_addl_delay ); - } + for ( i = 0; i < out_ch; i++ ) + { + delay_signal( ppPcm_in[i], frame_len, ppDelay_lines[i], delay_lp ); + } ivas_binaural_add_LFE( &st_ivas, frame_len, ppPcm_in ); } @@ -1525,7 +1508,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl } if ( pIo_params->limiter_enable ) { - ivas_limiter_dec( st_ivas.hLimiter, ppPcm_out, out_ch, frame_len, FALSE ); + ivas_limiter_dec( st_ivas.hLimiter, ppPcm_out, out_ch, frame_len, 0 ); } } @@ -1540,7 +1523,8 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl } for ( i = 0; i < out_ch; i++ ) { - float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); +// float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); + float temp; #ifdef _FIND_MAX_ valMaxLoc = ( ppPcm_out[i][j] > valMaxLoc ) ? ppPcm_out[i][j] : ( ppPcm_out[i][j] < -valMaxLoc ) ? -ppPcm_out[i][j] : valMaxLoc; @@ -1549,9 +1533,10 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl valMax = valMaxLoc; valEner += ppPcm_out[i][j] * ppPcm_out[i][j]; #endif - pcm[i] = ( temp > MAX16B ) ? MAX16B : ( temp < MIN16B_FLT ) ? MIN16B - : (short) temp; - clip = max( clip, fabs( ppPcm_out[i][j] ) ); + temp = ( ppPcm_out[i][j] > MAX16B_FLT ) ? MAX16B_FLT : ( ppPcm_out[i][j] < MIN16B_FLT ) ? MIN16B_FLT + : ppPcm_out[i][j]; + pcm[i] = (short) roundf(temp); + clip = max( clip, fabsf( ppPcm_out[i][j] ) ); } @@ -1566,7 +1551,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl if ( write_flag == 0 ) skipped_samples++; } - if ( clip > 1.0f ) + if ( clip > MAX16B_FLT ) { fprintf( stdout, "IVAS Common Renderer Clipped: max gain = %f\n", clip ); } @@ -1769,7 +1754,8 @@ ivas_result_t ivas_object_mixer_renderer( ivas_crend_io_params_t *pIo_params, in for ( i = 0; i < out_ch; i++ ) { - float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); +// float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); + float temp = roundf( ppPcm_out[i][j] ); #ifdef _FIND_MAX_ valMaxLoc = ( ppPcm_out[i][j] > valMaxLoc ) ? ppPcm_out[i][j] : ( ppPcm_out[i][j] < -valMaxLoc ) ? -ppPcm_out[i][j] diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h index fe05a96f4f..65ed31c930 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h @@ -82,8 +82,9 @@ #define IVAS_IN_FMT_510 "510" #define IVAS_IN_FMT_710 "710" -#define IVAS_IN_FMT_512 "512" -#define IVAS_IN_FMT_714 "714" +#define IVAS_IN_FMT_512 "512" +#define IVAS_IN_FMT_514 "514" +#define IVAS_IN_FMT_714 "714" #define IVAS_IN_FMT_FOA "HOA1S" #define IVAS_IN_FMT_HOA_2 "HOA2S" #define IVAS_IN_FMT_HOA_3 "HOA3S" diff --git a/scripts/pyaudio3dtools/binauralrenderer.py b/scripts/pyaudio3dtools/binauralrenderer.py index 23f476a5fd..fd5501c782 100644 --- a/scripts/pyaudio3dtools/binauralrenderer.py +++ b/scripts/pyaudio3dtools/binauralrenderer.py @@ -88,7 +88,7 @@ def get_IR( in_format: spatialaudioformat.Format, out_format: spatialaudioformat.Format, dataset: str, -) -> Tuple[np.ndarray, np.ndarray]: +) -> Tuple[np.ndarray, np.ndarray, float]: """get_IR Parameters @@ -135,6 +135,8 @@ def get_IR( ) IR, SourcePosition = read_hrirs_from_mat("_".join([prefix, suffix])) + + latency_smp = float(np.min(np.argmax(np.sum(np.abs(IR),axis=(1)),axis=(0)))) if in_format.name.startswith("MONO"): IR = IR[:, :, :1] # use omni/W from SBA @@ -147,8 +149,8 @@ def get_IR( IR = np.zeros([IR_tmp.shape[0], IR_tmp.shape[1], in_format.nchannels]) ir_index = 0 - for i in range(tmpformat.nchannels): - for j in range(in_format.nchannels): + for j in range(in_format.nchannels): + for i in range(tmpformat.nchannels): if ( tmpformat.ls_azi[i] == in_format.ls_azi[j] and tmpformat.ls_ele[i] == in_format.ls_ele[j] @@ -157,7 +159,7 @@ def get_IR( IR[:, :, ir_index] = IR_tmp[:, :, i] ir_index += 1 - return IR, SourcePosition + return IR, SourcePosition, latency_smp def FindFilter(SourcePosition: np.ndarray, azi: float, ele: float) -> int: @@ -509,11 +511,11 @@ def binaural_render_LFE( raise NotImplementedError("Only 48 kHz supported at the moment!") # 3.5ms LP filter delay from IVAS ROM - filter_delay = int(3.5 * fs / 1000) + # filter_delay = int(3.5 * fs / 1000) # delay adjustment - lfe = np.roll(lfe, -filter_delay, axis=0) - lfe[-filter_delay:, :] = 0 + # lfe = np.roll(lfe, -filter_delay, axis=0) + # lfe[-filter_delay:, :] = 0 # apply gain lfe *= LFE_gain @@ -700,12 +702,23 @@ def binaural_rendering( y = audioarray.resample(x, fs, 48000) # get IR corresponding to the input and output formats - IR, SourcePosition = get_IR(in_format, out_format, dataset) - latency_smp = np.argmax(np.sum(np.abs(IR), axis=(1, 2))) + IR, SourcePosition,latency_smp = get_IR(in_format, out_format, dataset) + # latency_smp_test = float(np.argmax(np.sum(np.abs(IR), axis=(1, 2)))) + # if (out_format.name == 'BINAURAL_ROOM') and (data,axis=(1)set == 'orange53'): + # latency_smp = latency_smp - 7; + latency_ns = latency_smp / float(fs) * 1000000000.0 # prepare LFE signal to be added to output + lfe_delay = 0; + lfe_delay_ns = 0; if include_LFE and in_format.isloudspeaker: lfe = binaural_render_LFE(x, 48000, in_format.lfe_index, LFE_gain) + # 3.5ms LP filter delay from IVAS ROM + lfe_delay_ns = 0.0035 * 1000000000.0 + lfe_delay = round(lfe_delay_ns * fs / 1000000000.0) + lfe = np.roll(lfe, round(latency_smp), axis=0) + lfe[0:round(latency_smp), :] = 0 + # get binauralized signal based on format if in_format.name.startswith("CUSTOM_LS"): @@ -730,9 +743,12 @@ def binaural_rendering( f"{in_format.name} -> {out_format.name}: format conversion not implemented" ) - # HRTF delay compensation - y = np.roll(y, -latency_smp, axis=0) - y[-latency_smp:, :] = 0 + if include_LFE and in_format.isloudspeaker: + # HRTF delay compensation + # y = np.roll(y, -latency_smp, axis=0) + # y[-latency_smp:, :] = 0 + y = np.roll(y, lfe_delay, axis=0) + y[0:lfe_delay, :] = 0 # add LFE signal to output if include_LFE and in_format.isloudspeaker: @@ -741,4 +757,4 @@ def binaural_rendering( # resample back to original rate y = audioarray.resample(y, 48000, fs) - return y + return y,lfe_delay_ns + latency_ns diff --git a/scripts/pyaudio3dtools/spatialaudioconvert.py b/scripts/pyaudio3dtools/spatialaudioconvert.py index 28f9298924..4bab33a0ff 100644 --- a/scripts/pyaudio3dtools/spatialaudioconvert.py +++ b/scripts/pyaudio3dtools/spatialaudioconvert.py @@ -53,6 +53,8 @@ main_logger = logging.getLogger("__main__") logger = main_logger.getChild(__name__) logger.setLevel(logging.DEBUG) +def NS2SA( fs, x ): + return (int(int( fs / 100 ) * ( ( x ) / 100 ) / 100000 )) def spatial_audio_convert( in_file: str, @@ -239,6 +241,7 @@ def spatial_audio_convert( """ Spatial audio format conversion """ out_sig = in_sig + delay = 0 if (in_spfmt.name != out_spfmt.name) and not ( in_spfmt.isheadphones and out_spfmt.isheadphones ): @@ -248,7 +251,7 @@ def spatial_audio_convert( if out_spfmt.name.startswith("BINAURAL") and not in_spfmt.name.startswith( "MASA" ): - out_sig = binauralrenderer.binaural_rendering( + out_sig,delay_ns = binauralrenderer.binaural_rendering( in_sig, in_spfmt, out_spfmt, @@ -306,6 +309,11 @@ def spatial_audio_convert( ) out_sig *= scale_factor + + delay = NS2SA(out_fs, int(delay_ns)) + out_sig = np.roll(out_sig, -delay, axis=0) + out_sig[-delay:, :] = 0 + audiofile.writefile(out_file, out_sig, out_fs) return out_sig, out_fs diff --git a/scripts/tests/constants.py b/scripts/tests/constants.py index 7893bedd61..897d1aeee8 100644 --- a/scripts/tests/constants.py +++ b/scripts/tests/constants.py @@ -53,9 +53,30 @@ RENDERER_CMD = [ "48", # 10 -> input fs # "--no_delay_cmp", # "-ndl", + "-lp_lfe", "-q", ] +""" Renderer crend commandline template """ +RENDERER_CREND_CMD = [ + str(TESTS_DIR.parent.parent.joinpath("IVAS_crend_unit_test")), + "-test", + "1", + "-sr", + "48", + "-ifmt", + "", # 4 -> input format + "-ofmt", + "", # 8 -> output format + "-i", + "", # 2 -> input file + "-o", + "/dev/null", # 6 -> output file + "-lp_lfe", + "-limiter" + # "-no_delay_cmp" +] + """ Format to file mappings """ NCHAN_TO_FILE = { 1: TEST_VECTOR_DIR.joinpath("spectral_test_1ch_48kHz.wav"), @@ -68,6 +89,7 @@ NCHAN_TO_FILE = { 9: TEST_VECTOR_DIR.joinpath("spectral_test_9ch_48kHz.wav"), 10: TEST_VECTOR_DIR.joinpath("spectral_test_10ch_48kHz.wav"), 11: TEST_VECTOR_DIR.joinpath("spectral_test_11ch_48kHz.wav"), + # 12: TEST_VECTOR_DIR.joinpath("dirac_12ch_48kHz.wav"), 12: TEST_VECTOR_DIR.joinpath("spectral_test_12ch_48kHz.wav"), 15: TEST_VECTOR_DIR.joinpath("spectral_test_15ch_48kHz.wav"), 16: TEST_VECTOR_DIR.joinpath("spectral_test_16ch_48kHz.wav"), @@ -185,3 +207,34 @@ HR_TRAJECTORIES_TO_TEST = [ "full_circle_in_15s-Euler", "rotate_yaw_pitch_roll1", ] + + +def FORMAT_2_CREND_FORMAT( + in_fmt +) : + if in_fmt == "MONO": + return "0" + if in_fmt == "STEREO": + return "1" + if in_fmt == "BINAURAL": + return "2" + if in_fmt == "BINAURAL_ROOM": + return "2" + if in_fmt == "FOA": + return "3" + if in_fmt == "5_1": + return "4" + if in_fmt == "7_1": + return "5" + if in_fmt == "5_1_2": + return "6" + if in_fmt == "5_1_4": + return "7" + if in_fmt == "7_1_4": + return "8" + if in_fmt == "HOA2": + return "9" + if in_fmt == "HOA3": + return "10" + + return "" \ No newline at end of file diff --git a/scripts/tests/data/dirac_12ch_48khz.wav b/scripts/tests/data/dirac_12ch_48khz.wav new file mode 100644 index 0000000000..49a781a4b0 --- /dev/null +++ b/scripts/tests/data/dirac_12ch_48khz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:880a478b7b6001dff4570e38a8a1928e0d78a78d223f49555e9023598e5ee4fb +size 13824068 diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index 88cc770c08..4f26e5b913 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -170,6 +170,59 @@ def run_renderer( return pyaudio3dtools.audiofile.readfile(out_file) +def run_renderer_crend( + in_fmt: str, + out_fmt: str, + metadata_input: Optional[str] = None, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +) -> Tuple[np.ndarray, int]: + """CuT creation with standalone renderer""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + if metadata_input is not None: + in_file = metadata_input + in_name = metadata_input.stem + elif not isinstance(in_fmt, str): + in_file = FORMAT_TO_FILE[in_fmt.stem] + in_name = in_fmt.stem + else: + in_file = FORMAT_TO_FILE[in_fmt] + in_name = in_fmt + + out_file = str(OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}_crend.wav")) + + cmd = RENDERER_CREND_CMD[:] + cmd[6] = FORMAT_2_CREND_FORMAT(str(in_fmt)) + cmd[8] = FORMAT_2_CREND_FORMAT(str(out_fmt)) + cmd[10] = str(in_file) + cmd[12] = str(out_file) + if (str(out_fmt)=="BINAURAL_ROOM"): + cmd.append("-BRIR") + + + # if in_meta_files is not None: + # cmd[5:5] = in_meta_files + + # if trj_file is not None: + # cmd.extend(["-tf", str(trj_file)]) + + try: + sp.run(cmd, check=True, capture_output=True, text=True) + except sp.CalledProcessError as e: + pytest.fail( + f"Command returned non-zero exit status ({e.returncode})!\n{' '.join(e.cmd)}\n{e.stderr}\n{e.stdout}\n{e.output}" + ) + + return pyaudio3dtools.audiofile.readfile(out_file) # fixture returns test information, enabling per-testcase SNR @pytest.fixture @@ -338,6 +391,16 @@ def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): check_BE(test_info, ref, ref_fs, cut, cut_fs) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) +def test_multichannel_binaural_static_vs_crend_unitest(test_info, in_fmt, out_fmt): + + cut, cut_fs = run_renderer(in_fmt, out_fmt) + + crend, crend_fs = run_renderer_crend(in_fmt, out_fmt) + + check_BE(test_info, cut, cut_fs, crend, crend_fs) + # Binaural rendering (head rotation) @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) -- GitLab From 017cb80fb3903a4301b37c0c68ecd593900378a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Mon, 26 Sep 2022 17:06:42 +0200 Subject: [PATCH 124/479] pytest reporting improvements - cmp_custom() returns reason (str) in addition to retval (int) - reason is part of the assert and will show up in the short test summary - SBA tests now do a single comparison on the interleaved PCM; il2mm.py is removed --- tests/cmp_custom.py | 36 ++++++++++----------- tests/il2mm.py | 61 ------------------------------------ tests/test_param_file.py | 4 +-- tests/test_sba_bs_dec_plc.py | 45 ++++++++++---------------- tests/test_sba_bs_enc.py | 52 ++++++++++-------------------- 5 files changed, 53 insertions(+), 145 deletions(-) delete mode 100644 tests/il2mm.py diff --git a/tests/cmp_custom.py b/tests/cmp_custom.py index 1999d7ccc5..408d6408cd 100755 --- a/tests/cmp_custom.py +++ b/tests/cmp_custom.py @@ -89,7 +89,7 @@ class CompareSamples: self.file_1.seek(0) self.file_2.seek(0) - def print_summary(self): + def print_summary(self) -> (int, str): """ Print the summary of the comparison. """ @@ -105,19 +105,18 @@ class CompareSamples: if not self.diff_present: print("Comparison success") print("") - return 0 - else: - print( - f"First unmatched diff ==> {self.first_diff}", - f"at sample num {self.first_diff_sample_num}", - ) - print( - f"MAXIMUM ABS DIFF ==> {self.max_diff} at sample num {self.max_diff_sample_num}" - ) - print("Comparison failed") - print("") - return 1 - return 1 + return 0, "Comparison success" + + # comparison failed + print( + f"First unmatched diff ==> {self.first_diff}", + f"at sample num {self.first_diff_sample_num}", + ) + diff_msg = f"MAXIMUM ABS DIFF ==> {self.max_diff} at sample num {self.max_diff_sample_num}" + print(diff_msg) + print("Comparison failed") + print("") + return 1, f"Comparison failed, {diff_msg}" def compare_next_sample(self): """ @@ -148,7 +147,7 @@ class CompareSamples: def usage(): print(__doc__) - return 1 + return 1, "" def cmp_custom( @@ -157,7 +156,7 @@ def cmp_custom( sample_size_in_bytes_str, tolerance_str, end_samples_to_skip_str="0", -): +) -> (int, str): """ Function to compare the samples in 2 PCM files. """ @@ -191,10 +190,11 @@ def cmp_custom( return cmp_samples.print_summary() -def main(argv): +def main(argv) -> int: if len(argv) < 5: return usage() - return cmp_custom(*argv[1:]) + retval, reason = cmp_custom(*argv[1:]) + return retval if __name__ == "__main__": diff --git a/tests/il2mm.py b/tests/il2mm.py deleted file mode 100644 index eb09593bdb..0000000000 --- a/tests/il2mm.py +++ /dev/null @@ -1,61 +0,0 @@ -""" - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. -""" - -import os - - -def il2mm(file_in, num_ch, b_delete=True): - """ - Convert interleaved input file to multiple mono output files. - """ - num_bytes_per_sample = 2 - num_bytes_per_frame = num_bytes_per_sample * num_ch - num_bytes_per_channel = os.path.getsize(file_in) / num_ch - - with open(file_in, "rb") as fid_in: - out_path = os.path.splitext(file_in)[0] - for chan in range(num_ch): - file_out = out_path + str(chan + 1) + "ch.raw" - with open(file_out, "wb") as fid_out: - bytes_written = 0 - offset = chan * num_bytes_per_sample - fid_in.seek(offset, 0) - while bytes_written < num_bytes_per_channel: - data = fid_in.read(num_bytes_per_sample) - fid_in.seek(num_bytes_per_frame - num_bytes_per_sample, 1) - written = fid_out.write(bytes(data)) - assert ( - written == num_bytes_per_sample - ), f"Error writing data: {written} != {num_bytes_per_sample}" - bytes_written += num_bytes_per_sample - - # delete interleaved input file - if b_delete: - os.remove(file_in) diff --git a/tests/test_param_file.py b/tests/test_param_file.py index be4ffe62ec..d376f93bb8 100644 --- a/tests/test_param_file.py +++ b/tests/test_param_file.py @@ -317,5 +317,5 @@ def compare( """ sample_size = "2" # 16-bit samples tolerance = "0" # zero tolerance for BE testing - cmp_result = cmp_custom(pcm_file_1, pcm_file_2, sample_size, tolerance) - assert cmp_result == 0 + cmp_result, reason = cmp_custom(pcm_file_1, pcm_file_2, sample_size, tolerance) + assert cmp_result == 0, reason diff --git a/tests/test_sba_bs_dec_plc.py b/tests/test_sba_bs_dec_plc.py index b76975c28e..aa317fa07f 100644 --- a/tests/test_sba_bs_dec_plc.py +++ b/tests/test_sba_bs_dec_plc.py @@ -30,10 +30,8 @@ import os import pytest -import shutil import errno -from il2mm import il2mm from cmp_custom import cmp_custom from conftest import DecoderFrontend @@ -45,7 +43,6 @@ ivas_br_list = ['32000', '64000', '96000', '256000'] sampling_rate_list = ['48', '32', '16'] agc_list = [0, 1] -ch_count_foa = 4 AbsTol = '3' @@ -88,7 +85,7 @@ def test_sba_plc_system( tag = tag + fs + 'c' #dec - sba_dec_plc(dut_decoder_frontend, test_vector_path, reference_path, dut_base_path, ref_decoder_path, tag, ch_count_foa, fs, ivas_br, dtx, plc_pattern, update_ref, agc) + sba_dec_plc(dut_decoder_frontend, test_vector_path, reference_path, dut_base_path, ref_decoder_path, tag, fs, ivas_br, dtx, plc_pattern, update_ref, agc) ######################################################### @@ -100,7 +97,6 @@ def sba_dec_plc( dut_base_path, ref_decoder_path, tag, - ch_count, sampling_rate, ivas_br, dtx, @@ -116,8 +112,8 @@ def sba_dec_plc( tag_out += '_AGC1' plc_tag_out = f"{tag_out}_{plc_pattern}" - dut_out_dir = f"{dut_base_path}/sba_bs/raw/{plc_tag_out}" - ref_out_dir = f"{reference_path}/sba_bs/raw/{plc_tag_out}" + dut_out_dir = f"{dut_base_path}/sba_bs/raw" + ref_out_dir = f"{reference_path}/sba_bs/raw" check_and_makedir(dut_out_dir) check_and_makedir(ref_out_dir) @@ -126,6 +122,9 @@ def sba_dec_plc( ref_in_pkt = f"{reference_path}/sba_bs/pkt/{tag_out}.pkt" ref_in_pkt_dutenc = f"{reference_path}/sba_bs/pkt/{tag_out}_dutenc.pkt" + dut_out_raw = f"{dut_out_dir}/{plc_tag_out}.raw" + ref_out_raw = f"{ref_out_dir}/{plc_tag_out}.raw" + if ref_decoder_path: ref_decoder = DecoderFrontend(ref_decoder_path, "REF") @@ -134,44 +133,34 @@ def sba_dec_plc( "FOA", sampling_rate, ref_in_pkt, - f"{ref_out_dir}/out.raw", + ref_out_raw, plc_file=plc_file, ) - # convert REF interleaved to multi-mono - il2mm(f"{ref_out_dir}/out.raw", ch_count) - if update_ref == 0: # call DUT decoder decoder_frontend.run( "FOA", sampling_rate, ref_in_pkt_dutenc, - f"{dut_out_dir}/out.raw", + dut_out_raw, plc_file=plc_file, ) - il2mm(f"{dut_out_dir}/out.raw", ch_count) - ######### compare cmd ##################################### end_skip_samples = '0' - test_fail = False - for count in range(ch_count): - ch_id = str(count + 1) - - if cmp_custom( - f"{dut_out_dir}/out{ch_id}ch.raw", - f"{ref_out_dir}/out{ch_id}ch.raw", - "2", - AbsTol, - end_skip_samples - ) != 0: - test_fail = True + cmp_result, reason = cmp_custom( + dut_out_raw, + ref_out_raw, + "2", + AbsTol, + end_skip_samples + ) ##File removal## - shutil.rmtree(dut_out_dir, ignore_errors=True) + os.remove(dut_out_raw) ##report failure - assert not test_fail + assert cmp_result == 0, reason diff --git a/tests/test_sba_bs_enc.py b/tests/test_sba_bs_enc.py index 3a37b5db42..15973b5332 100644 --- a/tests/test_sba_bs_enc.py +++ b/tests/test_sba_bs_enc.py @@ -36,9 +36,7 @@ The outputs are compared with C generated references. import os import pytest import errno -import shutil -from il2mm import il2mm from cmp_custom import cmp_custom from cut_pcm import cut_samples from conftest import EncoderFrontend, DecoderFrontend @@ -64,7 +62,6 @@ agc_list = [0, 1] sample_rate_bw_idx_list = [('48', 'SWB'), ('48', 'WB'), ('32', 'WB')] AbsTol = '4' -ch_count_foa = 4 def check_and_makedir(dir_path): @@ -129,7 +126,6 @@ def test_bypass_enc( reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -199,7 +195,6 @@ def test_sba_enc_system( reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -261,7 +256,6 @@ def test_spar_hoa2_enc_system( reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -323,7 +317,6 @@ def test_spar_hoa3_enc_system( reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -386,7 +379,6 @@ def test_sba_enc_BWforce_system( reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -515,7 +507,6 @@ def sba_dec( reference_path, dut_base_path, tag, - ch_count, sampling_rate, ivas_br, dtx, @@ -546,12 +537,15 @@ def sba_dec( # to avoid conflicting names in case of parallel test execution, differentiate all cases long_tag_ext = f"_AGC{agc}_pca{bypass}" - dut_out_dir = f"{dut_base_path}/sba_bs/raw/{tag_out}{long_tag_ext}" - ref_out_dir = f"{reference_path}/sba_bs/raw/{tag_out}{short_tag_ext}" + dut_out_dir = f"{dut_base_path}/sba_bs/raw" + ref_out_dir = f"{reference_path}/sba_bs/raw" dut_in_pkt = f"{dut_base_path}/sba_bs/pkt/{tag_out}{long_tag_ext}.pkt" ref_in_pkt = f"{reference_path}/sba_bs/pkt/{tag_out}{short_tag_ext}.pkt" + dut_out_raw = f"{dut_out_dir}/{tag_out}{long_tag_ext}.raw" + ref_out_raw = f"{ref_out_dir}/{tag_out}{short_tag_ext}.raw" + check_and_makedir(dut_out_dir) check_and_makedir(ref_out_dir) @@ -563,48 +557,34 @@ def sba_dec( output_config, sampling_rate, ref_in_pkt, - f"{ref_out_dir}/out.raw", + ref_out_raw, ) - # convert REF interleaved to multi-mono - il2mm(f"{ref_out_dir}/out.raw", ch_count, b_delete=not keep_files) - if update_ref == 0: # call DUT decoder decoder_frontend.run( output_config, sampling_rate, dut_in_pkt, - f"{dut_out_dir}/out.raw", + dut_out_raw, ) - il2mm(f"{dut_out_dir}/out.raw", ch_count, b_delete=not keep_files) - ######### compare cmd ##################################### end_skip_samples = '0' - test_fail = False - for count in range(ch_count): - ch_id = str(count + 1) - - # TEST - fsize1 = os.path.getsize(f"{dut_out_dir}/out{ch_id}ch.raw") - fsize2 = os.path.getsize(f"{ref_out_dir}/out{ch_id}ch.raw") - print(f"Want to compare {dut_out_dir}/out{ch_id}ch.raw ({fsize1} bytes) with {ref_out_dir}/out{ch_id}ch.raw ({fsize2} bytes)") - if cmp_custom( - f"{dut_out_dir}/out{ch_id}ch.raw", - f"{ref_out_dir}/out{ch_id}ch.raw", - "2", - AbsTol, - end_skip_samples - ) != 0: - test_fail = True + cmp_result, reason = cmp_custom( + dut_out_raw, + ref_out_raw, + "2", + AbsTol, + end_skip_samples + ) ##File removal## if not keep_files: os.remove(dut_in_pkt) - shutil.rmtree(dut_out_dir, ignore_errors=True) + os.remove(dut_out_raw) ##report failure - assert not test_fail + assert cmp_result == 0, reason -- GitLab From 84a5a1072dcc250b71344783db29bd1a6c243d60 Mon Sep 17 00:00:00 2001 From: knj Date: Tue, 27 Sep 2022 10:35:59 +0200 Subject: [PATCH 125/479] add testcases for ISM1 DTX to self_test.prm --- scripts/config/self_test.prm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index ffafdb3776..a7b6465ae0 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -276,6 +276,18 @@ ../IVAS_cod -ism 1 testv/stvISM1.csv 13200 48 testv/stv1ISM48s.pcm bit ../IVAS_dec MONO 48 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst +// 1 ISm with metadata at 13.2 kbps, 48 kHz in, 48 kHz out, DTX on, MONO out, random FEC at 5% +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 13200 48 testv/stv48n.pcm bit +../IVAS_dec -fec 5 MONO 48 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst + +// 1 ISm with metadata at 16.4 kbps, 32 kHz in, 16 kHz out, DTX on, MONO out +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 32000 32 testv/stv32n.pcm bit +../IVAS_dec MONO 16 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst + +// 1 ISm with metadata at 32 kbps, 32 kHz in, 32 kHz out, DTX on, MONO out +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 32000 32 testv/stv32n.pcm bit +../IVAS_dec MONO 32 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst + // 2 ISm with metadata at 16.4 kbps, 48 kHz in, 48 kHz out, STEREO out ../IVAS_cod -ism 2 testv/stvISM1.csv testv/stvISM2.csv 16400 48 testv/stv2ISM48s.pcm bit ../IVAS_dec STEREO 48 bit testv/stv2ISM48s.pcm_16400_48-48_STEREO.tst -- GitLab From e6609ed819cdac707db728b2dad3bf75fac3b508 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 27 Sep 2022 09:13:39 +0000 Subject: [PATCH 126/479] Update self_test.prm for 1ISM DTX --- scripts/config/self_test.prm | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index a7b6465ae0..721e93a457 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -276,17 +276,13 @@ ../IVAS_cod -ism 1 testv/stvISM1.csv 13200 48 testv/stv1ISM48s.pcm bit ../IVAS_dec MONO 48 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst -// 1 ISm with metadata at 13.2 kbps, 48 kHz in, 48 kHz out, DTX on, MONO out, random FEC at 5% +// 1 ISm with metadata at 13.2 kbps, 48 kHz in, 48 kHz out, DTX on, BINAURAL out, random FEC at 5% ../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 13200 48 testv/stv48n.pcm bit -../IVAS_dec -fec 5 MONO 48 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst - -// 1 ISm with metadata at 16.4 kbps, 32 kHz in, 16 kHz out, DTX on, MONO out -../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 32000 32 testv/stv32n.pcm bit -../IVAS_dec MONO 16 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst +../IVAS_dec -fec 5 BINAURAL 48 bit testv/stv48n.pcm_13200_48-48_DTX_FEC5_BINAURAL.tst // 1 ISm with metadata at 32 kbps, 32 kHz in, 32 kHz out, DTX on, MONO out ../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 32000 32 testv/stv32n.pcm bit -../IVAS_dec MONO 32 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst +../IVAS_dec MONO 32 bit testv/stv32n.pcm_32000_32-32_DTX_MONO.tst // 2 ISm with metadata at 16.4 kbps, 48 kHz in, 48 kHz out, STEREO out ../IVAS_cod -ism 2 testv/stvISM1.csv testv/stvISM2.csv 16400 48 testv/stv2ISM48s.pcm bit -- GitLab From e0c0125bb1c88b596dc844adabd34e58d1446392 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Tue, 27 Sep 2022 14:28:45 +0200 Subject: [PATCH 127/479] Minor cleanup: remove unreachable code --- lib_enc/swb_pre_proc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib_enc/swb_pre_proc.c b/lib_enc/swb_pre_proc.c index 3f2a47d2a5..5774395b00 100644 --- a/lib_enc/swb_pre_proc.c +++ b/lib_enc/swb_pre_proc.c @@ -697,11 +697,12 @@ void swb_pre_proc( st->hBWE_TD->prev_pow_exc16kWhtnd = 1.0f; st->hBWE_TD->prev_mix_factor = 1.0f; st->hBWE_TD->prev_Env_error = 0.0f; - +#ifndef FIX_I102_SWB_TBE_SWITCH if ( st->element_mode == IVAS_CPE_DFT ) { set_f( hCPE->hStereoDft->output_mem_dmx_16k_shb, 0, STEREO_DFT_OVL_16k ); } +#endif } else { -- GitLab From d7a35bdfb53cbf594810bd00c5dc79d774b5fc9a Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Tue, 27 Sep 2022 14:52:02 +0200 Subject: [PATCH 128/479] Editorial: corrected comment --- lib_enc/swb_pre_proc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/swb_pre_proc.c b/lib_enc/swb_pre_proc.c index 5774395b00..04589e664f 100644 --- a/lib_enc/swb_pre_proc.c +++ b/lib_enc/swb_pre_proc.c @@ -728,7 +728,7 @@ void swb_pre_proc( spchTmp[i] = -spchTmp[i]; } - /* Dirty upsampling to match Nyquist to lower frequency limit of target (reversed spectrum)*/ + /* Dirty upsampling to match Nyquist/2 to lower frequency limit of target (reversed spectrum)*/ lerp( spchTmp, spchTmp2, L_FRAME32k, L_resamp ); mvr2r( spchTmp2, spchTmp, L_FRAME32k ); } -- GitLab From 6de27e94ed1017c79fc1bac763145ab1065d8fd4 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 27 Sep 2022 14:59:27 +0200 Subject: [PATCH 129/479] Issue 133: support bitrate switching in core-coder; under CORECODER_BITRATE_SWITCHING --- Workspace_msvc/lib_dec.vcxproj | 1 + Workspace_msvc/lib_dec.vcxproj.filters | 3 + Workspace_msvc/lib_enc.vcxproj | 1 + Workspace_msvc/lib_enc.vcxproj.filters | 3 + lib_com/ivas_prot.h | 41 ++- lib_com/options.h | 4 + lib_dec/ivas_corecoder_dec_reconfig.c | 403 +++++++++++++++++++++++++ lib_dec/ivas_init_dec.c | 6 + lib_dec/ivas_sba_dec.c | 43 ++- lib_enc/ivas_core_enc.c | 19 +- lib_enc/ivas_core_pre_proc.c | 16 +- lib_enc/ivas_corecoder_enc_reconfig.c | 396 ++++++++++++++++++++++++ lib_enc/ivas_cpe_enc.c | 4 + lib_enc/ivas_dirac_enc.c | 31 ++ lib_enc/ivas_init_enc.c | 1 - lib_enc/ivas_ism_enc.c | 4 + lib_enc/ivas_sba_enc.c | 29 +- lib_enc/ivas_sce_enc.c | 28 +- lib_enc/ivas_stat_enc.h | 3 + 19 files changed, 994 insertions(+), 42 deletions(-) create mode 100644 lib_dec/ivas_corecoder_dec_reconfig.c create mode 100644 lib_enc/ivas_corecoder_enc_reconfig.c diff --git a/Workspace_msvc/lib_dec.vcxproj b/Workspace_msvc/lib_dec.vcxproj index 3bde19ca47..5860b0a970 100644 --- a/Workspace_msvc/lib_dec.vcxproj +++ b/Workspace_msvc/lib_dec.vcxproj @@ -267,6 +267,7 @@ + diff --git a/Workspace_msvc/lib_dec.vcxproj.filters b/Workspace_msvc/lib_dec.vcxproj.filters index 155b8dfc45..5476cf5588 100644 --- a/Workspace_msvc/lib_dec.vcxproj.filters +++ b/Workspace_msvc/lib_dec.vcxproj.filters @@ -581,6 +581,9 @@ dec_ivas_c + + dec_ivas_c + diff --git a/Workspace_msvc/lib_enc.vcxproj b/Workspace_msvc/lib_enc.vcxproj index 40302c56cd..c1144daf31 100644 --- a/Workspace_msvc/lib_enc.vcxproj +++ b/Workspace_msvc/lib_enc.vcxproj @@ -206,6 +206,7 @@ + diff --git a/Workspace_msvc/lib_enc.vcxproj.filters b/Workspace_msvc/lib_enc.vcxproj.filters index 471a5f9a64..1d7ee5594f 100644 --- a/Workspace_msvc/lib_enc.vcxproj.filters +++ b/Workspace_msvc/lib_enc.vcxproj.filters @@ -581,6 +581,9 @@ enc_ivas_c + + enc_ivas_c + diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 6996e4a298..bd587c1e68 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -119,6 +119,19 @@ void destroy_cpe_enc( CPE_ENC_HANDLE hCPE /* i/o: CPE encoder structure */ ); +void ivas_mct_enc_close( + MCT_ENC_HANDLE hMCT /* i/o: MCT encoder structure */ +); + +#ifdef CORECODER_BITRATE_SWITCHING +ivas_error ivas_corecoder_enc_reconfig( + Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ + const int16_t nSCE_old, /* i : number of SCEs in previous frame */ + const int16_t nCPE_old, /* i : number of CPEs in previous frame */ + const int16_t nchan_transport_old /* i : number of TCs in previous frame */ +); +#endif + ivas_error ivas_sce_enc( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ const int16_t sce_id, /* i : SCE # identifier */ @@ -191,6 +204,9 @@ ivas_error pre_proc_ivas( Encoder_State *st, /* i/o: encoder state structure */ const int16_t last_element_mode, /* i : last element mode */ const int32_t element_brate, /* i : element bitrate */ +#ifdef CORECODER_BITRATE_SWITCHING + const int32_t last_element_brate, /* i : last element bitrate */ +#endif const int16_t input_frame, /* i : frame length */ float old_inp_12k8[], /* i/o: buffer of old input signal */ float old_inp_16k[], /* i/o: buffer of old input signal @ 16kHz */ @@ -317,6 +333,21 @@ void ivas_mct_dec_close( MCT_DEC_HANDLE *hMCT /* i/o: MCT decoder structure */ ); +#ifdef CORECODER_BITRATE_SWITCHING +ivas_error ivas_corecoder_dec_reconfig( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t nSCE_old, /* i : number of SCEs in previous frame */ + const int16_t nCPE_old, /* i : number of CPEs in previous frame */ + const int16_t nchan_transport_old, /* i : number of TCs in previous frame */ + const int16_t sba_dirac_stereo_flag_old /* i : signal stereo output for SBA DirAC in previous frame */ +); + +ivas_error ivas_hp20_dec_reconfig( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t nchan_hp20_old /* i : number of HP20 filters in previous frame*/ +); +#endif + ivas_error ivas_sce_dec( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int16_t sce_id, /* i : SCE # identifier */ @@ -387,6 +418,9 @@ ivas_error ivas_core_enc( float enerBuffer[CPE_CHANNELS][CLDFB_NO_CHANNELS_MAX], /* i : energy buffer */ float fft_buff[CPE_CHANNELS][2 * L_FFT], /* i : FFT buffer */ const int16_t tdm_SM_flag, /* i : channel combination scheme flag */ +#ifdef CORECODER_BITRATE_SWITCHING + const int16_t ivas_format, /* i : IVAS format */ +#endif const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ ); @@ -2736,10 +2770,6 @@ void mctStereoIGF_dec( const int16_t bfi /* i : bad frame flag */ ); -void ivas_mct_enc_close( - MCT_ENC_HANDLE hMCT /* i/o: MCT encoder structure */ -); - void ivas_mdct_tcx10_bit_distribution( int16_t target_bitsTCX10[NB_DIV], /* o : target bit distribution */ const int16_t bits_frame_channel, /* i : bits frame channel */ @@ -5469,8 +5499,7 @@ float rand_triangular_signed( #ifdef ALIGN_SID_SIZE void dtx_read_padding_bits( DEC_CORE_HANDLE st, - int16_t num_bits -); + int16_t num_bits ); #endif #endif /* IVAS_PROT_H */ diff --git a/lib_com/options.h b/lib_com/options.h index 222333bc33..7556ecb139 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -158,6 +158,10 @@ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ + +#define CORECODER_BITRATE_SWITCHING /* Issue 133: support bitrate switching in core-coder */ + + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_dec/ivas_corecoder_dec_reconfig.c b/lib_dec/ivas_corecoder_dec_reconfig.c new file mode 100644 index 0000000000..8f0ba78857 --- /dev/null +++ b/lib_dec/ivas_corecoder_dec_reconfig.c @@ -0,0 +1,403 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + +#include "options.h" +#include "ivas_cnst.h" +#include "ivas_prot.h" +#include "ivas_rom_com.h" +#include "ivas_stat_enc.h" +#include "lib_dec.h" +#include "prot.h" +#include +#include +#include +#ifdef DEBUGGING +#include "debug.h" +#endif +#include "wmops.h" + + +#ifdef CORECODER_BITRATE_SWITCHING +/*-------------------------------------------------------------------* + * ivas_corecoder_dec_reconfig() + * + * Allocate, initalize, and configure SCE/CPE/MCT handles in case of bitrate switching + *-------------------------------------------------------------------*/ + +ivas_error ivas_corecoder_dec_reconfig( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t nSCE_old, /* i : number of SCEs in previous frame */ + const int16_t nCPE_old, /* i : number of CPEs in previous frame */ + const int16_t nchan_transport_old, /* i : number of TCs in previous frame */ + const int16_t sba_dirac_stereo_flag_old /* i : signal stereo output for SBA DirAC in previous frame */ +) +{ + int16_t n, sce_id, cpe_id, output_frame; + int16_t nSCE_existing, nCPE_existing; + int32_t ivas_total_brate; + DECODER_CONFIG_HANDLE hDecoderConfig; + ivas_error error; + + /*-----------------------------------------------------------------* + * Initialization + *-----------------------------------------------------------------*/ + + hDecoderConfig = st_ivas->hDecoderConfig; + ivas_total_brate = hDecoderConfig->ivas_total_brate; + error = IVAS_ERR_OK; + + output_frame = (int16_t) ( hDecoderConfig->output_Fs / FRAMES_PER_SEC ); + + /*-----------------------------------------------------------------* + * Allocate, initalize, and configure SCE/CPE/MCT handles + *-----------------------------------------------------------------*/ + + /* remove dummy CPE element for DFT stereo-like upmix */ + if ( st_ivas->ivas_format == SBA_FORMAT && sba_dirac_stereo_flag_old && !st_ivas->sba_dirac_stereo_flag ) + { + st_ivas->hCPE[0]->hCoreCoder[0] = NULL; + st_ivas->hCPE[0]->hCoreCoder[1] = NULL; + destroy_cpe_dec( st_ivas->hCPE[0] ); + st_ivas->hCPE[0] = NULL; + + if ( st_ivas->hSCE[0] != NULL ) + { + count_free( st_ivas->hSCE[0]->save_synth ); + st_ivas->hSCE[0]->save_synth = NULL; + + count_free( st_ivas->hSCE[0]->save_hb_synth ); + st_ivas->hSCE[0]->save_hb_synth = NULL; + } + } + + if ( st_ivas->nchan_transport == nchan_transport_old ) + { + for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) + { + st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; + + /* prepare bitstream buffers */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + } + + if ( st_ivas->nCPE > 1 ) + { + if ( ( error = mct_dec_reconfigure( st_ivas, 0 ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } + else + { + nSCE_existing = min( nSCE_old, st_ivas->nSCE ); + nCPE_existing = min( nCPE_old, st_ivas->nCPE ); + + // VE: TBV - try to reuse the CoreCoder + /* destroy superfluous core coder elements */ + for ( sce_id = st_ivas->nSCE; sce_id < nSCE_old; sce_id++ ) + { + destroy_sce_dec( st_ivas->hSCE[sce_id] ); + st_ivas->hSCE[sce_id] = NULL; + } + + for ( cpe_id = st_ivas->nCPE; cpe_id < nCPE_old; cpe_id++ ) + { + destroy_cpe_dec( st_ivas->hCPE[cpe_id] ); + st_ivas->hCPE[cpe_id] = NULL; + } + + if ( st_ivas->nCPE <= 1 && st_ivas->hMCT != NULL ) + { + ivas_mct_dec_close( &st_ivas->hMCT ); + } + + /* special case, if we have MCT now and had a single CPE before, remove the MDCT Stereo handles from the first CPE*/ + if ( st_ivas->nCPE > 1 && nCPE_old == 1 ) + { + count_free( st_ivas->hCPE[0]->hStereoMdct ); + st_ivas->hCPE[0]->hStereoMdct = NULL; + } + + for ( sce_id = 0; sce_id < nSCE_existing; sce_id++ ) + { + st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + for ( ; sce_id < st_ivas->nSCE; sce_id++ ) + { + if ( ( error = create_sce_dec( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + for ( cpe_id = 0; cpe_id < nCPE_existing; cpe_id++ ) + { + st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; + + /* prepare bitstream buffers */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + } + for ( ; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + if ( st_ivas->nCPE > 1 && nCPE_old <= 1 ) + { + if ( nCPE_old == 1 ) + { + /* set correct nominal bitrates and igf config already here, needed for the correct init of the MDCT Stereo handles for MCT */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[0]->hCoreCoder[n]->total_brate = st_ivas->hCPE[0]->element_brate; + st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[0]->element_brate / FRAMES_PER_SEC ); + st_ivas->hCPE[0]->hCoreCoder[n]->igf = 0; + } + } + + if ( ( error = create_mct_dec( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->hMCT != NULL && st_ivas->nCPE > 1 ) + { + if ( ( error = mct_dec_reconfigure( st_ivas, st_ivas->nchan_transport != nchan_transport_old ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + /* special case, if we have a single CPE and had MCT before we need to init the MDCT stereo handles here */ + if ( st_ivas->nCPE == 1 && nCPE_old > 1 ) + { + if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct = (STEREO_MDCT_DEC_DATA_HANDLE) count_malloc( sizeof( STEREO_MDCT_DEC_DATA ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MDCT Stereo \n" ) ); + } + + st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->use_itd = 0; + st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->reverse_dmx = 0; + st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->smooth_ratio = 1.f; + + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + /* reset mct_chan_mode */ + st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode = MCT_CHAN_MODE_REGULAR; + } + } + } + + /* create dummy CPE element for DFT stereo-like upmix */ + if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_dirac_stereo_flag && !sba_dirac_stereo_flag_old ) + { + if ( ( error = create_cpe_dec( st_ivas, 0, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) + { + return error; + } + + // VE: TBV - just reset for now + set_f( st_ivas->hCPE[0]->hStereoDft->buff_LBTCX_mem, 0, NS2SA( 16000, STEREO_DFT32MS_OVL_NS ) ); + + st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ + st_ivas->hCPE[0]->hCoreCoder[1] = NULL; + + if ( st_ivas->hSCE[0]->save_synth == NULL ) + { + if ( ( st_ivas->hSCE[0]->save_synth = (float *) count_malloc( sizeof( float ) * output_frame ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for stereo output\n" ) ); + } + set_zero( st_ivas->hSCE[0]->save_synth, output_frame ); + } + + if ( st_ivas->hSCE[0]->save_hb_synth == NULL ) + { + if ( ( st_ivas->hSCE[0]->save_hb_synth = (float *) count_malloc( sizeof( float ) * output_frame ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate HB memory for stereo output\n" ) ); + } + set_zero( st_ivas->hSCE[0]->save_hb_synth, output_frame ); + } + } + + /*-----------------------------------------------------------------* + * Set CNA/CNG flags + *-----------------------------------------------------------------*/ + + /// VE: this could be merged with part of ivas_init_decoder() + if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->nchan_transport == 1 ) + { + /* skip as done in init function */ + } + else if ( st_ivas->nchan_transport == 1 && ( ( st_ivas->renderer_type == RENDERER_DIRAC && st_ivas->hDirAC->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD ) || ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) ) + { + st_ivas->hSCE[0]->hCoreCoder[0]->cna_dirac_flag = 1; + st_ivas->hSCE[0]->hCoreCoder[0]->cng_sba_flag = 1; + } + else if ( st_ivas->nchan_transport == 2 ) + { + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[0]->hCoreCoder[n]->cna_dirac_flag = 0; + st_ivas->hCPE[0]->hCoreCoder[n]->cng_sba_flag = 1; + } + } + else + { + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cna_dirac_flag = 0; + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 0; + } + } + } + + /* special case, if the decoder goes from 1TC DTX to 2TC active frame (in case the bitstream started with an SBA SID frame), allocate DTX memories */ +#ifdef ALIGN_SID_SIZE + if ( hDecoderConfig->last_ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE >= 1 ) +#else + if ( hDecoderConfig->last_ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE >= 1 ) +#endif + { + if ( ( error = initMdctStereoDtxData( st_ivas->hCPE[0] ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + return error; +} + + +/*-------------------------------------------------------------------* + * ivas_hp20_dec_reconfig() + * + * Allocate, initalize, and configure HP20 memory handles in case of bitrate switching + *-------------------------------------------------------------------*/ + +ivas_error ivas_hp20_dec_reconfig( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t nchan_hp20_old /* i : number of HP20 filters in previous frame */ +) +{ + int16_t i, nchan_hp20; + float **old_mem_hp20_out; + ivas_error error; + + error = IVAS_ERR_OK; + + /*-----------------------------------------------------------------* + * HP20 memories + *-----------------------------------------------------------------*/ + + nchan_hp20 = getNumChanSynthesis( st_ivas ); + + if ( nchan_hp20 > nchan_hp20_old ) + { + /* save old mem_hp_20 pointer */ + old_mem_hp20_out = st_ivas->mem_hp20_out; + st_ivas->mem_hp20_out = NULL; + + if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( nchan_hp20 * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + + for ( i = 0; i < nchan_hp20_old; i++ ) + { + st_ivas->mem_hp20_out[i] = old_mem_hp20_out[i]; + old_mem_hp20_out[i] = NULL; + } + /* create additional hp20 memories */ + for ( ; i < nchan_hp20; i++ ) + { + if ( ( st_ivas->mem_hp20_out[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + + set_f( st_ivas->mem_hp20_out[i], 0.0f, L_HP20_MEM ); + } + + count_free( old_mem_hp20_out ); + old_mem_hp20_out = NULL; + } + else if ( nchan_hp20 < nchan_hp20_old ) + { + /* save old mem_hp_20 pointer */ + old_mem_hp20_out = st_ivas->mem_hp20_out; + st_ivas->mem_hp20_out = NULL; + + if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( nchan_hp20 * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + + for ( i = 0; i < nchan_hp20; i++ ) + { + st_ivas->mem_hp20_out[i] = old_mem_hp20_out[i]; + old_mem_hp20_out[i] = NULL; + } + /* remove superfluous hp20 memories */ + for ( ; i < nchan_hp20_old; i++ ) + { + count_free( old_mem_hp20_out[i] ); + old_mem_hp20_out[i] = NULL; + } + + count_free( old_mem_hp20_out ); + old_mem_hp20_out = NULL; + } + + return error; +} +#endif diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index d0f4e7ceb1..c587f69f8d 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -988,6 +988,9 @@ ivas_error ivas_init_decoder( } st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ +#ifdef CORECODER_BITRATE_SWITCHING + st_ivas->hCPE[0]->hCoreCoder[1] = NULL; +#endif } if ( st_ivas->nCPE > 1 ) @@ -1184,6 +1187,9 @@ ivas_error ivas_init_decoder( } st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ +#ifdef CORECODER_BITRATE_SWITCHING + st_ivas->hCPE[0]->hCoreCoder[1] = NULL; +#endif } /* set CNA/CNG flags */ diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 204b91b89d..f1eb494e34 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -451,20 +451,18 @@ ivas_error ivas_sba_dec_reconfigure( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ) { - int16_t n; - int16_t sce_id, cpe_id; - int16_t nchan_transport; - int16_t nchan_transport_old; - int32_t sba_total_brate; - int16_t nSCE_old; - int16_t nCPE_old; +#ifdef CORECODER_BITRATE_SWITCHING + int16_t i; + int16_t nchan_transport, nchan_transport_old; + int16_t nSCE_old, nCPE_old, nchan_hp20_old; +#else + int16_t i, n, sce_id, cpe_id; + int16_t nchan_transport, nchan_transport_old; + int16_t nSCE_old, nCPE_old; +#endif AUDIO_CONFIG intern_config_old; - int16_t numCldfbAnalyses_old; - int16_t numCldfbAnalyses; - int16_t numCldfbSyntheses; - int16_t numCldfbSyntheses_old; + int16_t numCldfbAnalyses_old, numCldfbAnalyses, numCldfbSyntheses, numCldfbSyntheses_old; int16_t sba_dirac_stereo_flag_old; - uint16_t i; int32_t ivas_total_brate, last_ivas_total_brate; ivas_error error; @@ -479,7 +477,10 @@ ivas_error ivas_sba_dec_reconfigure( ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); numCldfbAnalyses = 0; - sba_total_brate = ivas_total_brate; + +#ifdef CORECODER_BITRATE_SWITCHING + nchan_hp20_old = getNumChanSynthesis( st_ivas ); +#endif nSCE_old = st_ivas->nSCE; nCPE_old = st_ivas->nCPE; @@ -488,7 +489,7 @@ ivas_error ivas_sba_dec_reconfigure( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); - ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); + ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); st_ivas->nchan_transport = nchan_transport; /* renderer might have changed */ @@ -558,11 +559,20 @@ ivas_error ivas_sba_dec_reconfigure( } } - /*-----------------------------------------------------------------* * Allocate, initalize, and configure SCE/CPE/MCT handles *-----------------------------------------------------------------*/ +#ifdef CORECODER_BITRATE_SWITCHING + ivas_corecoder_dec_reconfig( st_ivas, nSCE_old, nCPE_old, nchan_transport_old, sba_dirac_stereo_flag_old ); + + /*-----------------------------------------------------------------* + * HP20 memories + *-----------------------------------------------------------------*/ + + ivas_hp20_dec_reconfig( st_ivas, nchan_hp20_old ); +#else + if ( nchan_transport == nchan_transport_old ) { for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) @@ -805,6 +815,7 @@ ivas_error ivas_sba_dec_reconfigure( old_mem_hp20_out = NULL; } } +#endif /*-----------------------------------------------------------------* * CLDFB instances @@ -865,6 +876,7 @@ ivas_error ivas_sba_dec_reconfigure( } } +#ifndef CORECODER_BITRATE_SWITCHING /*-----------------------------------------------------------------* * Set CNA/CNG flags *-----------------------------------------------------------------*/ @@ -910,6 +922,7 @@ ivas_error ivas_sba_dec_reconfigure( return error; } } +#endif /*-------------------------------------------------------------------* * Reallocate and initialize binaural rendering handles diff --git a/lib_enc/ivas_core_enc.c b/lib_enc/ivas_core_enc.c index 42a17cb9cb..3f9cb84b51 100644 --- a/lib_enc/ivas_core_enc.c +++ b/lib_enc/ivas_core_enc.c @@ -79,7 +79,10 @@ ivas_error ivas_core_enc( float enerBuffer[CPE_CHANNELS][CLDFB_NO_CHANNELS_MAX], /* i : energy buffer */ float fft_buff[CPE_CHANNELS][2 * L_FFT], /* i : FFT buffer */ const int16_t tdm_SM_or_LRTD_Pri, /* i : channel combination scheme flag in TD stereo OR LRTD primary channel */ - const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ +#ifdef CORECODER_BITRATE_SWITCHING + const int16_t ivas_format, /* i : IVAS format */ +#endif + const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ ) { int16_t n, input_frame; @@ -101,7 +104,11 @@ ivas_error ivas_core_enc( int16_t unbits[CPE_CHANNELS]; float tdm_lspQ_PCh[M], tdm_lsfQ_PCh[M]; int16_t last_element_mode, tdm_Pitch_reuse_flag; +#ifdef CORECODER_BITRATE_SWITCHING + int32_t element_brate, last_element_brate, input_Fs; +#else int32_t element_brate, input_Fs; +#endif ivas_error error; wmops_sub_start( "ivas_core_enc" ); @@ -120,6 +127,9 @@ ivas_error ivas_core_enc( hStereoTD = NULL; hStereoICBWE = NULL; element_brate = hSCE->element_brate; +#ifdef CORECODER_BITRATE_SWITCHING + last_element_brate = hSCE->last_element_brate; +#endif last_element_mode = IVAS_SCE; tdm_Pitch_reuse_flag = -1; } @@ -134,6 +144,9 @@ ivas_error ivas_core_enc( sts = hCPE->hCoreCoder; hStereoICBWE = hCPE->hStereoICBWE; element_brate = hCPE->element_brate; +#ifdef CORECODER_BITRATE_SWITCHING + last_element_brate = hCPE->last_element_brate; +#endif last_element_mode = hCPE->last_element_mode; if ( hCPE->hStereoTD != NULL ) @@ -174,7 +187,11 @@ ivas_error ivas_core_enc( * Pre-processing, incl. Decision matrix *---------------------------------------------------------------------*/ +#ifdef CORECODER_BITRATE_SWITCHING + if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, ivas_format == SBA_FORMAT ? last_element_brate : element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], is_MCT, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) +#else if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], is_MCT, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) +#endif { return error; } diff --git a/lib_enc/ivas_core_pre_proc.c b/lib_enc/ivas_core_pre_proc.c index 4ae384d5ff..ded3df2235 100644 --- a/lib_enc/ivas_core_pre_proc.c +++ b/lib_enc/ivas_core_pre_proc.c @@ -52,9 +52,12 @@ *--------------------------------------------------------------------*/ ivas_error pre_proc_ivas( - Encoder_State *st, /* i/o: encoder state structure */ - const int16_t last_element_mode, /* i : last element mode */ - const int32_t element_brate, /* i : element bitrate */ + Encoder_State *st, /* i/o: encoder state structure */ + const int16_t last_element_mode, /* i : last element mode */ + const int32_t element_brate, /* i : element bitrate */ +#ifdef CORECODER_BITRATE_SWITCHING + const int32_t last_element_brate, /* i : last element bitrate */ +#endif const int16_t input_frame, /* i : frame length */ float old_inp_12k8[], /* i/o: buffer of old input signal */ float old_inp_16k[], /* i/o: buffer of old input signal @ 16kHz */ @@ -275,6 +278,13 @@ ivas_error pre_proc_ivas( { st->hTcxEnc->tfm_mem = 0.75f; } +#ifdef CORECODER_BITRATE_SWITCHING + else if ( element_brate != last_element_brate ) + { + SetModeIndex( st, st->bits_frame_nominal * FRAMES_PER_SEC, element_mode, is_mct ); + } +#endif + /*-----------------------------------------------------------------* * Update of ACELP harmonicity counter (used in ACELP transform codebook @32kbps) diff --git a/lib_enc/ivas_corecoder_enc_reconfig.c b/lib_enc/ivas_corecoder_enc_reconfig.c new file mode 100644 index 0000000000..f4b302eefd --- /dev/null +++ b/lib_enc/ivas_corecoder_enc_reconfig.c @@ -0,0 +1,396 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + +#include +#include +#include "options.h" +#include "ivas_cnst.h" +#include "prot.h" +#include "ivas_prot.h" +#include "ivas_stat_enc.h" +#ifdef DEBUGGING +#include "debug.h" +#endif +#include "wmops.h" + + +#ifdef CORECODER_BITRATE_SWITCHING +/*-------------------------------------------------------------------* + * ivas_corecoder_enc_reconfig() + * + * Allocate, initalize, and configure SCE/CPE/MCT handles in case of bitrate switching + *-------------------------------------------------------------------*/ + +ivas_error ivas_corecoder_enc_reconfig( + Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ + const int16_t nSCE_old, /* i : number of SCEs in previous frame */ + const int16_t nCPE_old, /* i : number of CPEs in previous frame */ + const int16_t nchan_transport_old /* i : number of TCs in previous frame */ +) +{ + int16_t n, sce_id, cpe_id; + int16_t len_inp_memory, n_CoreCoder_existing, nSCE_existing, nCPE_existing; + float input_buff[MCT_MAX_BLOCKS][L_FRAME48k + NS2SA( 48000, IVAS_FB_ENC_DELAY_NS )]; + BSTR_ENC_HANDLE hBstr, hMetaData; + Indice *ind_list, *ind_list_metadata; + int16_t nb_bits_tot, next_ind, last_ind; + int32_t ivas_total_brate; + ENCODER_CONFIG_HANDLE hEncoderConfig; + ivas_error error; + + /*-----------------------------------------------------------------* + * Initialization + *-----------------------------------------------------------------*/ + + hEncoderConfig = st_ivas->hEncoderConfig; + ivas_total_brate = hEncoderConfig->ivas_total_brate; + error = IVAS_ERR_OK; + + len_inp_memory = (int16_t) ( hEncoderConfig->input_Fs / FRAMES_PER_SEC ); + if ( hEncoderConfig->ivas_format == SBA_FORMAT ) + { + len_inp_memory += NS2SA( hEncoderConfig->input_Fs, IVAS_FB_ENC_DELAY_NS ); + } + + /*-----------------------------------------------------------------* + * Switching between SCE(s)/CPE(s)/MCT + *-----------------------------------------------------------------*/ + + if ( st_ivas->nchan_transport == nchan_transport_old ) + { + for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) + { + copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); + st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; + + /* prepare bitstream buffers */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + copy_encoder_config( st_ivas, st_ivas->hCPE[cpe_id]->hCoreCoder[n], 0 ); + + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + } + + if ( st_ivas->nCPE > 1 ) + { + if ( ( error = mct_enc_reconfigure( st_ivas, 0 ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } + else + { + ind_list = NULL; + hBstr = NULL; + hMetaData = NULL; + + /* get the index list pointers */ + if ( nSCE_old ) + { + hBstr = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr; + hMetaData = st_ivas->hSCE[0]->hMetaData; + } + else if ( nCPE_old ) + { + hBstr = st_ivas->hCPE[0]->hCoreCoder[0]->hBstr; + hMetaData = st_ivas->hCPE[nCPE_old - 1]->hMetaData; + } +#ifdef DEBUGGING + else + { + assert( 0 && "At least one SCE or one CPE should have existed before!\n" ); + } +#endif + + /* save bitstream information */ + ind_list = hBstr->ind_list; + nb_bits_tot = hBstr->nb_bits_tot; + next_ind = hBstr->next_ind; + last_ind = hBstr->last_ind; + ind_list_metadata = hMetaData->ind_list; + + n_CoreCoder_existing = min( st_ivas->nchan_transport, nchan_transport_old ); + + /* destroy superfluous core-coder elements */ + for ( sce_id = st_ivas->nSCE; sce_id < nSCE_old; sce_id++ ) + { + /* save input audio buffers */ + if ( n_CoreCoder_existing > sce_id ) + { + mvr2r( st_ivas->hSCE[sce_id]->hCoreCoder[0]->input_buff, input_buff[sce_id], len_inp_memory ); + } + + destroy_sce_enc( st_ivas->hSCE[sce_id] ); + st_ivas->hSCE[sce_id] = NULL; + } + + for ( cpe_id = st_ivas->nCPE; cpe_id < nCPE_old; cpe_id++ ) + { + /* save input audio buffers */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + if ( n_CoreCoder_existing > cpe_id * CPE_CHANNELS + n ) + { + mvr2r( st_ivas->hCPE[cpe_id]->hCoreCoder[0]->input_buff, input_buff[( cpe_id - st_ivas->nCPE ) * CPE_CHANNELS + n], len_inp_memory ); + } + } + + destroy_cpe_enc( st_ivas->hCPE[cpe_id] ); + st_ivas->hCPE[cpe_id] = NULL; + } + + if ( st_ivas->nCPE <= 1 && st_ivas->hMCT != NULL ) + { + ivas_mct_enc_close( st_ivas->hMCT ); + st_ivas->hMCT = NULL; + } + + /* special case, if we have MCT now and had a single CPE before, remove the MDCT Stereo handles */ + if ( st_ivas->nCPE > 1 && nCPE_old == 1 ) + { + count_free( st_ivas->hCPE[0]->hStereoMdct ); + st_ivas->hCPE[0]->hStereoMdct = NULL; + } + + /* create missing core coder elements and set element bitrates for alrady existing ones */ + if ( st_ivas->nSCE > 0 ) + { + nSCE_existing = min( nSCE_old, st_ivas->nSCE ); + + for ( sce_id = 0; sce_id < nSCE_existing; sce_id++ ) + { + copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); + st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + + for ( sce_id = nSCE_existing; sce_id < st_ivas->nSCE; sce_id++ ) + { + if ( ( error = create_sce_enc( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) + { + return error; + } + + /* propagate input audio buffers */ + if ( n_CoreCoder_existing > sce_id ) + { + mvr2r( input_buff[sce_id], st_ivas->hSCE[sce_id]->hCoreCoder[0]->input_buff, len_inp_memory ); + } + + /* prepare bitstream buffers */ + st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list + sce_id * MAX_NUM_INDICES; + + /* only reset indices if it is not the first index list, this already contains the IVAS format bits */ + if ( sce_id > 0 ) + { + reset_indices_enc( st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES ); + } + else + { + st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->last_ind = last_ind; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->nb_bits_tot = nb_bits_tot; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->next_ind = next_ind; + } + + st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + sce_id * MAX_BITS_METADATA; + reset_indices_enc( st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA ); + } + } + + if ( st_ivas->nCPE > 0 ) + { + nCPE_existing = min( nCPE_old, st_ivas->nCPE ); + + for ( cpe_id = 0; cpe_id < nCPE_existing; cpe_id++ ) + { + st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; + + /* prepare bitstream buffers */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + copy_encoder_config( st_ivas, st_ivas->hCPE[cpe_id]->hCoreCoder[n], 0 ); + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + } + + for ( cpe_id = nCPE_existing; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + if ( ( error = create_cpe_enc( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) + { + return error; + } + + /* propagate input audio buffers */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + if ( n_CoreCoder_existing > cpe_id * CPE_CHANNELS + n ) + { + mvr2r( input_buff[n], st_ivas->hCPE[cpe_id]->hCoreCoder[0]->input_buff, len_inp_memory ); + } + } + + /* prepare bitstream buffers */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->ind_list = ind_list + ( cpe_id * CPE_CHANNELS + n ) * MAX_NUM_INDICES; + if ( cpe_id * CPE_CHANNELS + n > 0 ) + { + reset_indices_enc( st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr, MAX_NUM_INDICES ); + } + else + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->last_ind = last_ind; + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->nb_bits_tot = nb_bits_tot; + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->next_ind = next_ind; + } + + if ( hEncoderConfig->Opt_DTX_ON ) + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 1; + } + } + } + } + + if ( st_ivas->nCPE > 1 && nCPE_old <= 1 ) + { + if ( nCPE_old == 1 ) + { + /* set correct nominal bitrates and igf config already here, needed for the correct init of the MDCT Stereo handles for MCT */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[0]->hCoreCoder[n]->total_brate = st_ivas->hCPE[0]->element_brate; + + st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[0]->element_brate / FRAMES_PER_SEC ); + st_ivas->hCPE[0]->hCoreCoder[n]->igf = getIgfPresent( st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, + st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal * FRAMES_PER_SEC, + st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, + st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode, + st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode ); + + if ( st_ivas->hCPE[0]->hCoreCoder[n]->igf ) + { + IGFEncSetMode( st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, + st_ivas->hCPE[0]->element_brate, + st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, + st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, + st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); + } + } + } + + if ( ( error = create_mct_enc( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->hMCT != NULL && st_ivas->nCPE > 1 ) + { + if ( ( error = mct_enc_reconfigure( st_ivas, st_ivas->nchan_transport != nchan_transport_old ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + /* metadata handling for CPEs */ + if ( st_ivas->nCPE > 0 ) + { + if ( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData == NULL ) + { + if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData = (BSTR_ENC_HANDLE) count_malloc( sizeof( BSTR_ENC_DATA ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MetaData structure\n" ) ); + } + } + + st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->ind_list = ind_list_metadata; + reset_indices_enc( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData, MAX_BITS_METADATA ); + + for ( cpe_id = 0; cpe_id < st_ivas->nCPE - 1; cpe_id++ ) + { + if ( st_ivas->hCPE[cpe_id]->hMetaData != NULL ) + { + count_free( st_ivas->hCPE[cpe_id]->hMetaData ); + st_ivas->hCPE[cpe_id]->hMetaData = NULL; + } + } + } + + /* special case, if we have a single CPE and had MCT before we need to init the MDCT stereo handles here */ + if ( st_ivas->nCPE == 1 && nCPE_old > 1 ) + { + if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct = (STEREO_MDCT_ENC_DATA_HANDLE) count_malloc( sizeof( STEREO_MDCT_ENC_DATA ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MDCT Stereo \n" ) ); + } + + /* set correct nominal bitrates and igf config already here, needed for the correct init of the MDCT Stereo handle */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[0]->hCoreCoder[n]->total_brate = st_ivas->hCPE[0]->element_brate; + + st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[0]->element_brate / FRAMES_PER_SEC ); + st_ivas->hCPE[0]->hCoreCoder[n]->igf = getIgfPresent( st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, + st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal * FRAMES_PER_SEC, + st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, + st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode, + st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode ); + + if ( st_ivas->hCPE[0]->hCoreCoder[n]->igf ) + { + IGFEncSetMode( st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, + st_ivas->hCPE[0]->element_brate, + st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, + st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, + st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); + } + + /* reset mct_chan_mode */ + st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode = MCT_CHAN_MODE_REGULAR; + } + + initMdctStereoEncData( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct, hEncoderConfig->ivas_format, st_ivas->hCPE[st_ivas->nCPE - 1]->element_mode, st_ivas->hCPE[st_ivas->nCPE - 1]->element_brate, hEncoderConfig->max_bwidth, 0, NULL, 1 ); + st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->isSBAStereoMode = ( ( hEncoderConfig->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); + } + } + + return error; +} +#endif diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index df94fe44ab..0d229f3306 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -644,7 +644,11 @@ ivas_error ivas_cpe_enc( * Core Encoder *----------------------------------------------------------------*/ +#ifdef CORECODER_BITRATE_SWITCHING + if ( ( error = ivas_core_enc( NULL, hCPE, st_ivas->hMCT, n_CoreChannels, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, tdm_SM_or_LRTD_Pri, ivas_format, 0 ) ) != IVAS_ERR_OK ) +#else if ( ( error = ivas_core_enc( NULL, hCPE, st_ivas->hMCT, n_CoreChannels, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, tdm_SM_or_LRTD_Pri, 0 ) ) != IVAS_ERR_OK ) +#endif { return error; } diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 754aa6d57c..c89aa0eea7 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -461,6 +461,37 @@ void ivas_dirac_enc_spar_delay_synchro( int16_t ch_idx; float tmp_buffer[L_FRAME48k]; +#ifdef CORECODER_BITRATE_SWITCHING + /* check last sba_mode */ + if ( ivas_sba_mode_select( st_ivas->hEncoderConfig->last_ivas_total_brate ) == SBA_MODE_SPAR ) + { + Encoder_State *sts[MCT_MAX_BLOCKS]; + int16_t i_chan = 0; + + /* initializations */ + for ( int16_t sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) + { + sts[sce_id] = st_ivas->hSCE[sce_id]->hCoreCoder[0]; + i_chan++; + } + + for ( int16_t cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + for ( int16_t ch = 0; ch < CPE_CHANNELS; ch++ ) + { + sts[i_chan] = st_ivas->hCPE[cpe_id]->hCoreCoder[ch]; + i_chan++; + } + } + + for ( ch_idx = 0; ch_idx < i_chan; ch_idx++ ) + { + mvr2r( sts[ch_idx]->input, st_ivas->hDirAC->sba_synchro_buffer[ch_idx], st_ivas->hDirAC->num_samples_synchro_delay ); + } + } +#endif + + for ( ch_idx = 0; ch_idx < st_ivas->hEncoderConfig->nchan_inp; ch_idx++ ) { mvr2r( data_f[ch_idx], tmp_buffer, input_frame ); diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index 8d9f7e445e..6ac7f76649 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -1054,4 +1054,3 @@ void ivas_destroy_enc( return; } - diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 2433c01802..5d51a6b39b 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -266,7 +266,11 @@ ivas_error ivas_ism_enc( * Encoder *----------------------------------------------------------------*/ +#ifdef CORECODER_BITRATE_SWITCHING + if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8[sce_id], old_inp_16k[sce_id], Etot[sce_id], ener[sce_id], A[sce_id], Aw[sce_id], epsP[sce_id], lsp_new[sce_id], lsp_mid[sce_id], vad_hover_flag[sce_id], attack_flag[sce_id], realBuffer[sce_id], imagBuffer[sce_id], old_wsp[sce_id], loc_harm[sce_id], cor_map_sum[sce_id], vad_flag_dtx[sce_id], enerBuffer[sce_id], fft_buff[sce_id], 0, ISM_FORMAT, 0 ) ) != IVAS_ERR_OK ) +#else if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8[sce_id], old_inp_16k[sce_id], Etot[sce_id], ener[sce_id], A[sce_id], Aw[sce_id], epsP[sce_id], lsp_new[sce_id], lsp_mid[sce_id], vad_hover_flag[sce_id], attack_flag[sce_id], realBuffer[sce_id], imagBuffer[sce_id], old_wsp[sce_id], loc_harm[sce_id], cor_map_sum[sce_id], vad_flag_dtx[sce_id], enerBuffer[sce_id], fft_buff[sce_id], 0, 0 ) ) != IVAS_ERR_OK ) +#endif { return error; } diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index 62fc6d0667..665d7900fd 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -216,14 +216,11 @@ ivas_error ivas_sba_enc_reconfigure( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ ) { - int16_t ntransport; - int16_t ntransport_old; - int16_t nSCE_old; - int16_t nCPE_old; - int16_t sce_id; - int16_t cpe_id; - int16_t n; + int16_t nSCE_old, nCPE_old, nchan_transport_old; +#ifndef CORECODER_BITRATE_SWITCHING + int16_t n, sce_id, cpe_id; Indice *ind_list_metadata; +#endif int32_t ivas_total_brate; ivas_error error; @@ -233,18 +230,27 @@ ivas_error ivas_sba_enc_reconfigure( if ( ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate ) { - ntransport = st_ivas->nchan_transport; - ntransport_old = st_ivas->nchan_transport; + nchan_transport_old = st_ivas->nchan_transport; nCPE_old = st_ivas->nCPE; nSCE_old = st_ivas->nSCE; +#ifndef CORECODER_BITRATE_SWITCHING ind_list_metadata = NULL; +#endif st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); ivas_dirac_enc_reconfigure( st_ivas ); - ntransport = st_ivas->nchan_transport; - if ( ntransport == ntransport_old ) + +#ifdef CORECODER_BITRATE_SWITCHING + /*-----------------------------------------------------------------* + * Allocate, initalize, and configure SCE/CPE/MCT handles + *-----------------------------------------------------------------*/ + + ivas_corecoder_enc_reconfig( st_ivas, nSCE_old, nCPE_old, nchan_transport_old ); +#else + + if ( hEncoderConfig->nchan_transport == nchan_transport_old ) { for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) { @@ -521,6 +527,7 @@ ivas_error ivas_sba_enc_reconfigure( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->isSBAStereoMode = ( ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); } } +#endif } return error; diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 1657665f99..095f88976e 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -165,12 +165,20 @@ ivas_error ivas_sce_enc( /* set "total_brate" */ st->total_brate = hSCE->element_brate - nb_bits_metadata * FRAMES_PER_SEC; -#ifdef DEBUG_MODE_INFO - dbgwrite( st->input - NS2SA( st->input_Fs, ACELP_LOOK_NS ), 4, input_frame, 1, "res/input_DMX" ); -#endif /* set flag for sampling rate of OL S/M classifier */ +#ifdef CORECODER_BITRATE_SWITCHING // VE2EF: TBV whether it can be done more efficiently + flag_16k_smc = 0; + if ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT && ( st_ivas->hEncoderConfig->ivas_total_brate == IVAS_24k4 || st_ivas->hEncoderConfig->ivas_total_brate == IVAS_32k ) && hSCE->element_brate == hSCE->last_element_brate ) + { + flag_16k_smc = 1; + } +#else flag_16k_smc = ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT && ( st_ivas->hEncoderConfig->ivas_total_brate == IVAS_24k4 || st_ivas->hEncoderConfig->ivas_total_brate == IVAS_32k ) ); +#endif +#ifdef DEBUG_MODE_INFO + dbgwrite( st->input - NS2SA( st->input_Fs, ACELP_LOOK_NS ), 4, input_frame, 1, "res/input_DMX" ); +#endif /*----------------------------------------------------------------* * Front Pre-processing *----------------------------------------------------------------*/ @@ -238,8 +246,11 @@ ivas_error ivas_sce_enc( * Encoder *----------------------------------------------------------------*/ - if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, - flag_16k_smc ) ) != IVAS_ERR_OK ) +#ifdef CORECODER_BITRATE_SWITCHING + if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, ivas_format, flag_16k_smc ) ) != IVAS_ERR_OK ) +#else + if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, flag_16k_smc ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -252,6 +263,10 @@ ivas_error ivas_sce_enc( /* update input samples buffer */ mvr2r( st->input, st->old_input_signal, input_frame ); +#ifdef CORECODER_BITRATE_SWITCHING + hSCE->last_element_brate = hSCE->element_brate; +#endif + wmops_sub_end(); return error; @@ -291,6 +306,9 @@ ivas_error create_sce_enc( hSCE->sce_id = sce_id; hSCE->element_brate = element_brate; +#ifdef CORECODER_BITRATE_SWITCHING + hSCE->last_element_brate = hSCE->element_brate; +#endif /*-----------------------------------------------------------------* * Metadata: allocate and initialize diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 2ed6a0ff91..7fcc35ea9e 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -841,6 +841,9 @@ typedef struct sce_enc_data_structure { int16_t sce_id; /* SCE # identifier */ int32_t element_brate; /* SCE element total bitrate in bps */ +#ifdef CORECODER_BITRATE_SWITCHING + int32_t last_element_brate; /* last SCE element bitrate in bps */ +#endif BSTR_ENC_HANDLE hMetaData; /* Metadata bitstream handle */ -- GitLab From c664f7059cd0a763c0fb32d0b1bc61246498d057 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 27 Sep 2022 15:04:29 +0200 Subject: [PATCH 130/479] updates within DEBUG_MODE_INFO to correctly output core-decoder synthesis in case of SCE/CPE/MCT switching --- lib_dec/ivas_cpe_dec.c | 7 +++++-- lib_dec/ivas_mct_dec.c | 13 +++++++++++++ lib_dec/ivas_sce_dec.c | 6 +++++- lib_enc/ivas_cpe_enc.c | 8 +++++--- lib_enc/ivas_sce_enc.c | 12 +++++++++++- 5 files changed, 39 insertions(+), 7 deletions(-) diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 313e0d6172..f34df44936 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -524,7 +524,7 @@ ivas_error ivas_cpe_dec( #ifdef DEBUG_MODE_INFO { - float tmpF = ivas_total_brate / 1000.0f; + float tmpF = hCPE->element_brate / 1000.0f; n = 1; if ( st_ivas->ini_frame == 0 && frame > 0 ) @@ -536,12 +536,15 @@ ivas_error ivas_cpe_dec( for ( i = 0; i < n; i++ ) { dbgwrite( &tmpF, sizeof( float ), 1, output_frame, fname( debug_dir, "element_brate", 0, cpe_id, DEC ) ); - dbgwrite( &hCPE->element_mode, 2, 1, output_frame, fname( debug_dir, "element_mode", 0, cpe_id, DEC ) ); + dbgwrite( &hCPE->element_mode, sizeof( int16_t ), 1, output_frame, fname( debug_dir, "element_mode", 0, cpe_id, DEC ) ); for ( int16_t j = 0; j < CPE_CHANNELS; j++ ) { dbgwrite( output[j], sizeof( float ), output_frame, 1, fname( debug_dir, "output.cpe", j, cpe_id, DEC ) ); } + tmpF = 0; + dbgwrite( &tmpF, sizeof( float ), 1, output_frame, fname( debug_dir, "output.sce", 0, cpe_id, DEC ) ); + dbgwrite( &tmpF, sizeof( float ), 1, output_frame, fname( debug_dir, "output.mct", 0, cpe_id, DEC ) ); } } #endif diff --git a/lib_dec/ivas_mct_dec.c b/lib_dec/ivas_mct_dec.c index 31f3208429..b4a4da3e3c 100644 --- a/lib_dec/ivas_mct_dec.c +++ b/lib_dec/ivas_mct_dec.c @@ -250,6 +250,19 @@ ivas_error ivas_mct_dec( #endif } +#ifdef DEBUG_MODE_INFO + for ( cpe_id = 0; cpe_id < nCPE; cpe_id++ ) + { + float tmpF = st_ivas->hCPE[cpe_id]->element_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, output_frame, fname( debug_dir, "element_brate", 0, cpe_id, DEC ) ); + + dbgwrite( output[0], sizeof( float ), output_frame, 1, fname( debug_dir, "output.mct", 0, cpe_id, DEC ) ); + tmpF = 0; + dbgwrite( &tmpF, sizeof( float ), 1, output_frame, fname( debug_dir, "output.sce", 0, cpe_id, DEC ) ); + dbgwrite( &tmpF, sizeof( float ), 1, output_frame, fname( debug_dir, "output.cpe", 0, cpe_id, DEC ) ); + } +#endif + wmops_sub_end(); return error; } diff --git a/lib_dec/ivas_sce_dec.c b/lib_dec/ivas_sce_dec.c index b3a73706df..bebb0f4cf5 100644 --- a/lib_dec/ivas_sce_dec.c +++ b/lib_dec/ivas_sce_dec.c @@ -286,13 +286,17 @@ ivas_error ivas_sce_dec( for ( i = 0; i < n; i++ ) { dbgwrite( &tmpF, sizeof( float ), 1, output_frame, fname( debug_dir, "element_brate", 0, sce_id, DEC ) ); - dbgwrite( &st->element_mode, 2, 1, output_frame, fname( debug_dir, "element_mode", 0, sce_id, DEC ) ); + dbgwrite( &st->element_mode, sizeof( int16_t ), 1, output_frame, fname( debug_dir, "element_mode", 0, sce_id, DEC ) ); dbgwrite( output, sizeof( float ), output_frame, 1, fname( debug_dir, "output.sce", 0, sce_id, DEC ) ); + tmpF = 0; + dbgwrite( &tmpF, sizeof( float ), 1, output_frame, fname( debug_dir, "output.cpe", 0, sce_id, DEC ) ); + dbgwrite( &tmpF, sizeof( float ), 1, output_frame, fname( debug_dir, "output.mct", 0, sce_id, DEC ) ); } } #endif + wmops_sub_end(); return error; } diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 0d229f3306..4c7daa3e03 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -425,9 +425,11 @@ ivas_error ivas_cpe_enc( } #ifdef DEBUG_MODE_INFO - dbgwrite( sts[0]->input - NS2SA( sts[0]->input_Fs, ACELP_LOOK_NS ), 4, input_frame, 1, "res/input_DMX" ); - dbgwrite( sts[1]->input - NS2SA( sts[1]->input_Fs, ACELP_LOOK_NS ), 4, input_frame, 1, "res/input_DMX.ch2" ); - dbgwrite( &hCPE->element_mode, 2, 1, input_frame, "res/element_mode" ); + for ( n = 0; n < n_CoreChannels; n++ ) + { + dbgwrite( sts[0]->input - NS2SA( sts[0]->input_Fs, ACELP_LOOK_NS ), sizeof( float ), input_frame, 1, fname( debug_dir, "input_DMX", n, sts[n]->id_element, ENC ) ); + } + dbgwrite( &hCPE->element_mode, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "element_mode", 0, sts[0]->id_element, ENC ) ); #endif /*----------------------------------------------------------------* diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 095f88976e..07879852b3 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -177,8 +177,10 @@ ivas_error ivas_sce_enc( #endif #ifdef DEBUG_MODE_INFO - dbgwrite( st->input - NS2SA( st->input_Fs, ACELP_LOOK_NS ), 4, input_frame, 1, "res/input_DMX" ); + dbgwrite( st->input - NS2SA( st->input_Fs, ACELP_LOOK_NS ), sizeof( float ), input_frame, 1, "res/input_DMX" ); + dbgwrite( &st->element_mode, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "element_mode", 0, st->id_element, ENC ) ); #endif + /*----------------------------------------------------------------* * Front Pre-processing *----------------------------------------------------------------*/ @@ -216,6 +218,7 @@ ivas_error ivas_sce_enc( /*----------------------------------------------------------------* * Write IVAS format signaling in SID frames *----------------------------------------------------------------*/ + #ifdef ALIGN_SID_SIZE if ( st->core_brate == SID_2k40 ) #else @@ -267,6 +270,13 @@ ivas_error ivas_sce_enc( hSCE->last_element_brate = hSCE->element_brate; #endif +#ifdef DEBUG_MODE_INFO + { + float tmpF = hSCE->element_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, fname( debug_dir, "element_brate", 0, sce_id, ENC ) ); + } +#endif + wmops_sub_end(); return error; -- GitLab From 75256a50ae81d83544b3f5c6940ace55b0272a4e Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 28 Sep 2022 11:18:20 +0200 Subject: [PATCH 131/479] fix usage of uninit value in PLC for SBA with MDCT-ST core --- lib_com/options.h | 2 ++ lib_dec/ivas_cpe_dec.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 222333bc33..1db9d4c2cf 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -158,6 +158,8 @@ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ +#define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 313e0d6172..390da9c6ac 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -823,6 +823,10 @@ ivas_error create_cpe_dec( set_s( hCPE->hStereoMdct->prev_ms_mask[0], 0, MAX_SFB ); set_s( hCPE->hStereoMdct->prev_ms_mask[1], 0, MAX_SFB ); hCPE->hStereoMdct->lastCoh = 1.f; +#ifdef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED + hCPE->hStereoMdct->mdct_stereo_mode[0] = SMDCT_DUAL_MONO; + hCPE->hStereoMdct->mdct_stereo_mode[1] = SMDCT_DUAL_MONO; +#endif } /*-----------------------------------------------------------------* -- GitLab From 790a54834515dacf3a8fd46e24705d4f61abb7d6 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 28 Sep 2022 13:00:05 +0200 Subject: [PATCH 132/479] initialize IGF stereo mode in same manner --- lib_dec/ivas_cpe_dec.c | 2 ++ lib_dec/ivas_stereo_mdct_core_dec.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 390da9c6ac..d034d08db6 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -826,6 +826,8 @@ ivas_error create_cpe_dec( #ifdef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED hCPE->hStereoMdct->mdct_stereo_mode[0] = SMDCT_DUAL_MONO; hCPE->hStereoMdct->mdct_stereo_mode[1] = SMDCT_DUAL_MONO; + hCPE->hStereoMdct->IGFStereoMode[0] = -1; + hCPE->hStereoMdct->IGFStereoMode[1] = -1; #endif } diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index d626d1ca6a..32e9fe103c 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -218,11 +218,13 @@ void stereo_mdct_core_dec( initMdctStereoDecData( hCPE->hStereoMdct, sts[0]->igf, sts[0]->hIGFDec->igfData.igfInfo.grid, hCPE->element_brate, sts[0]->bwidth ); hCPE->hStereoMdct->isSBAStereoMode = ( ( st_ivas->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); +#ifndef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /*to prevent unitialized values during condition checks for stereo IGF*/ if ( hCPE->hStereoMdct->isSBAStereoMode ) { set_s( hCPE->hStereoMdct->IGFStereoMode, -1, 2 ); } +#endif if ( !bfi ) { -- GitLab From d3f28017277a44bc26fbab15ad2b2d715ead7558 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 28 Sep 2022 14:07:21 +0200 Subject: [PATCH 133/479] Revert "fix for 24 bit wav files in pyaudio3dtools" This reverts commit 3f7bbf9a778480d657290db5a517bebc98f50297. --- scripts/pyaudio3dtools/audiofile.py | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/scripts/pyaudio3dtools/audiofile.py b/scripts/pyaudio3dtools/audiofile.py index b03b472ae9..46bb452082 100755 --- a/scripts/pyaudio3dtools/audiofile.py +++ b/scripts/pyaudio3dtools/audiofile.py @@ -35,7 +35,6 @@ import platform import shutil import struct import subprocess as sp -import warnings from importlib import import_module from tempfile import TemporaryDirectory from typing import Optional, Tuple @@ -74,18 +73,6 @@ def readfile( if file_extension == ".wav": fs, data = wav.read(filename) - if data.dtype == np.int32: - data = np.interp( - data, - (np.iinfo(np.int32).min, np.iinfo(np.int32).max), - (np.iinfo(np.int16).min, np.iinfo(np.int16).max), - ) - elif data.dtype == np.float32: - data = np.interp( - data, - (-1, 1), - (np.iinfo(np.int16).min, np.iinfo(np.int16).max), - ) x = np.array(data, dtype=outdtype) file_len = x.shape[0] if x.ndim == 1: @@ -120,11 +107,9 @@ def writefile(filename: str, x: np.ndarray, fs: int = 48000) -> None: """ _, file_extension = os.path.splitext(os.path.basename(filename)) - clipped_samples = np.sum( - np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max) - ) + clipped_samples = np.sum(np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max)) if clipped_samples > 0: - warnings.warn(f" Warning: {clipped_samples} samples clipped") + print(" Warning: %i samples clipped"%clipped_samples) x = np.clip(x, np.iinfo(np.int16).min, np.iinfo(np.int16).max) if file_extension == ".wav": @@ -504,6 +489,7 @@ def loudnessinfo( in_sig: np.ndarray, in_fs: Optional[int] = 48000, in_format: Optional[str] = "MONO", + in_ls_layout_file: Optional[str] = None, output_loudness: Optional[int] = -26, loudness_tool: Optional[str] = "bs1770demo", use_rms: Optional[bool] = False, @@ -538,10 +524,13 @@ def loudnessinfo( else: null_file = "/dev/null" + # check for binary if shutil.which(loudness_tool) is None: raise FileNotFoundError(f"The binary {loudness_tool} was not found in path!") - in_spfmt = spatialaudioformat.Format(in_format=in_format) + in_spfmt = spatialaudioformat.Format( + in_format=in_format, ls_layout_file=in_ls_layout_file + ) if not (in_spfmt.isheadphones or in_spfmt.isloudspeaker or in_spfmt.ambi_order > 1): raise NotImplementedError( @@ -554,7 +543,7 @@ def loudnessinfo( ) with TemporaryDirectory() as tmp_dir: - tmp_file = os.path.join(tmp_dir, "tmp_loudness.pcm") + tmp_file = os.path.join(tmp_dir, "tmp.pcm") if "bs1770demo" in loudness_tool: """ -- GitLab From 1145b9b285afa59fd0efa80bf48ba4909aaeff05 Mon Sep 17 00:00:00 2001 From: norvell Date: Wed, 28 Sep 2022 16:51:53 +0000 Subject: [PATCH 134/479] Split self-test-on-merge-request into three separate jobs --- .gitlab-ci.yml | 190 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 124 insertions(+), 66 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cbd61ad2dc..bd2f89c554 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -41,6 +41,43 @@ stages: .get-previous-merge-commit-sha: &get-previous-merge-commit-sha - previous_merge_commit=$(git --no-pager log --merges HEAD~1 -n 1 --pretty=format:%H) +.merge_request_comparison_setup: &merge_request_comparison_setup + ### build test binaries, initial clean for paranoia reasons + - make clean + - mkdir build + - cd build + - cmake .. + - make -j + - mv IVAS_cod ../IVAS_cod_test + - mv IVAS_dec ../IVAS_dec_test + - cd .. + - rm -rf build/* + + ### store the current commit hash + - source_branch_commit_sha=$(git rev-parse HEAD) + + ### checkout version to compare against + # first delete local target branch to avoid conflicts when branch is cached and there are merge conflicts during fetching + # depending on chaching, the branch may not be there, so prevent failure of this command -> should maybe be done smarter later + - git branch -D $CI_MERGE_REQUEST_TARGET_BRANCH_NAME || true + # needed when depth is lower than the number of commits in the branch + - git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME + + ### compare to last target branch commit before pipeline was created + - target_commit=$(git log $CI_MERGE_REQUEST_TARGET_BRANCH_NAME -1 --oneline --before=${CI_PIPELINE_CREATED_AT} --format=%H) + - git checkout $target_commit + + ### build reference binaries + - cd build + - cmake .. + - make -j + - mv IVAS_cod ../IVAS_cod_ref + - mv IVAS_dec ../IVAS_dec_ref + - cd .. + + ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) + - git checkout $source_branch_commit_sha + # --------------------------------------------------------------- # Job templates @@ -252,8 +289,8 @@ asan-on-merge-request-linux: expose_as: 'Asan selftest results' -# compare bit exactness between target and source branch -self-test-on-merge-request: +# compare bit exactness between target and source branch -- IVAS self_test cases +self-test-ivas-on-merge-request: extends: - .test-job-linux - .rules-merge-request @@ -262,89 +299,68 @@ self-test-on-merge-request: timeout: "10 minutes" script: - *print-common-info - ### build test binaries, initial clean for paranoia reasons - - make clean - - mkdir build - - cd build - - cmake .. - - make -j - - mv IVAS_cod ../IVAS_cod_test - - mv IVAS_dec ../IVAS_dec_test - - cd .. - - rm -rf build/* - - ### store the current commit hash - - source_branch_commit_sha=$(git rev-parse HEAD) - - ### checkout version to compare against - # first delete local target branch to avoid conflicts when branch is cached and there are merge conflicts during fetching - # depending on chaching, the branch may not be there, so prevent failure of this command -> should maybe be done smarter later - - git branch -D $CI_MERGE_REQUEST_TARGET_BRANCH_NAME || true - # needed when depth is lower than the number of commits in the branch - - git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME - - ### compare to last target branch commit before pipeline was created - - target_commit=$(git log $CI_MERGE_REQUEST_TARGET_BRANCH_NAME -1 --oneline --before=${CI_PIPELINE_CREATED_AT} --format=%H) - - git checkout $target_commit - - ### build reference binaries - - cd build - - cmake .. - - make -j - - mv IVAS_cod ../IVAS_cod_ref - - mv IVAS_dec ../IVAS_dec_ref - - cd .. - - ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) - - git checkout $source_branch_commit_sha + - *merge_request_comparison_setup ### run selftest - ls -altr scripts/testv - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test | tee test_output.txt - - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test scripts/config/self_test_evs.prm | tee test_output_evs.txt + ### analyse test output # some helper variables - "|| true" to prevent failures from grep not finding anything - - evs_non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]*non[ -]*be\]") || true - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true - run_errors=$(cat test_output.txt test_output_evs.txt | grep -c "test conditions had run errors") || true - bitexact=$(cat test_output.txt | grep -c "All [0-9]* tests are bitexact") || true - - bitexact_evs=$(cat test_output_evs.txt | grep -c "All [0-9]* tests are bitexact") || true - EXIT_CODE_NON_BE=123 - EXIT_CODE_FAIL=1 - - expected_nonbe_1=0 - - expected_nonbe_2=0 - - expected_nonbe_3=0 - - fail_1=0 - - fail_2=0 - - fail_3=0 # check for crashes during the test, if any happened, fail the test - - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; fail_1=1; fi + - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; exit $EXIT_CODE_FAIL; fi # check for non bitexact output and store exit code to also always run the SBA pytest - - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; fail_1=1; fi - - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; expected_nonbe_1=1; fi + - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; exit $EXIT_CODE_FAIL; fi + - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; exit $EXIT_CODE_NON_BE; fi + - exit 0 + + allow_failure: + exit_codes: + - 123 + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" + when: always + paths: + - test_output.txt + - test_output_evs.txt + - scripts/test/logs/ + - scripts/ref/logs/ + expose_as: 'Self test IVAS results' - # check for non bitexact EVS output - - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag == 0 ] ; then echo "Non-bitexact EVS cases without EVS-non-BE tag encountered"; fail_2=1; fi - - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag != 0 ] ; then echo "Non-bitexact EVS cases with EVS-non-BE tag encountered"; expected_nonbe_2=1; fi +# compare bit exactness between target and source branch -- SBA self_test cases +self-test-sba-on-merge-request: + extends: + - .test-job-linux + - .rules-merge-request + stage: compare + needs: [ "build-codec-linux-cmake", "codec-smoke-test" ] + timeout: "10 minutes" + script: + - *print-common-info + - *merge_request_comparison_setup ### run SBA pytest + - EXIT_CODE_NON_BE=123 + - EXIT_CODE_FAIL=1 - exit_code=0 - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - - if [ $zero_errors != 1 ]; then echo "Run errors in SBA pytest"; fail_3=1; fi - - - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures without non-BE tag encountered"; fail_3=1; fi - - if [ $exit_code -eq 1 ] && [ $non_be_flag == 1 ]; then echo "pytest run had failures with non-BE tag encountered"; expected_nonbe_3=1; fi - - # Check results from all three tests - - if [ $fail_1 -eq 1 ] || [ $fail_2 -eq 1 ] || [ $fail_3 -eq 1 ]; then exit $EXIT_CODE_FAIL; fi - - if [ $expected_nonbe_1 -eq 1 ] || [ $expected_nonbe_2 -eq 1 ] || [ $expected_nonbe_3 -eq 1 ]; then exit $EXIT_CODE_NON_BE; fi + - if [ $zero_errors != 1 ]; then echo "Run errors in SBA pytest"; exit $EXIT_CODE_FAIL; fi + + - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures without non-BE tag encountered"; exit $EXIT_CODE_FAIL; fi + - if [ $exit_code -eq 1 ] && [ $non_be_flag == 1 ]; then echo "pytest run had failures with non-BE tag encountered"; exit $EXIT_CODE_NON_BE; fi + - exit 0 - + allow_failure: exit_codes: - 123 @@ -352,16 +368,58 @@ self-test-on-merge-request: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" when: always paths: - - test_output.txt - - test_output_evs.txt - - scripts/test/logs/ - - scripts/ref/logs/ - report-junit.xml - expose_as: 'Self test results' + expose_as: 'SBA test results' reports: junit: report-junit.xml +# compare bit exactness between target and source branch -- EVS self_test cases +self-test-evs-on-merge-request: + extends: + - .test-job-linux + - .rules-merge-request + stage: compare + needs: [ "build-codec-linux-cmake", "codec-smoke-test" ] + timeout: "10 minutes" + script: + - *print-common-info + - *merge_request_comparison_setup + + ### run selftest + - ls -altr scripts/testv + - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test scripts/config/self_test_evs.prm | tee test_output_evs.txt + ### analyse test output + + # some helper variables - "|| true" to prevent failures from grep not finding anything + - evs_non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]*non[ -]*be\]") || true + - run_errors=$(cat test_output_evs.txt | grep -c "test conditions had run errors") || true + - bitexact_evs=$(cat test_output_evs.txt | grep -c "All [0-9]* tests are bitexact") || true + - EXIT_CODE_NON_BE=123 + - EXIT_CODE_FAIL=1 + + # check for crashes during the test, if any happened, fail the test + - if [ $run_errors != 0 ] ; then echo "Run errors in self_test_evs.py"; exit $EXIT_CODE_FAIL; fi + + # check for non bitexact EVS output + - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag == 0 ] ; then echo "Non-bitexact EVS cases without EVS-non-BE tag encountered"; exit $EXIT_CODE_FAIL; fi + - if [ $bitexact_evs == 0 ] && [ $evs_non_be_flag != 0 ] ; then echo "Non-bitexact EVS cases with EVS-non-BE tag encountered"; exit $EXIT_CODE_NON_BE; fi + + - exit 0 + + allow_failure: + exit_codes: + - 123 + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" + when: always + paths: + - test_output_evs.txt + - scripts/test/logs/ + - scripts/ref/logs/ + expose_as: 'Self test EVS results' + + # --------------------------------------------------------------- # Test jobs for main branch # --------------------------------------------------------------- -- GitLab From b3fbb38a428c0df2a4d5b0cd01a0456800feae50 Mon Sep 17 00:00:00 2001 From: norvell Date: Wed, 28 Sep 2022 17:06:25 +0000 Subject: [PATCH 135/479] Correct some errors in self_test_b.py test and remove self_test_evs.txt artifact from IVAS test job. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bd2f89c554..5eed1cb726 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -330,7 +330,6 @@ self-test-ivas-on-merge-request: when: always paths: - test_output.txt - - test_output_evs.txt - scripts/test/logs/ - scripts/ref/logs/ expose_as: 'Self test IVAS results' @@ -353,6 +352,7 @@ self-test-sba-on-merge-request: - exit_code=0 - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true + - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true - if [ $zero_errors != 1 ]; then echo "Run errors in SBA pytest"; exit $EXIT_CODE_FAIL; fi -- GitLab From 7638cd85538a441e7da913d70399467a308db9b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Thu, 29 Sep 2022 10:43:51 +0200 Subject: [PATCH 136/479] pytest: add network simulator call to fix new JBM tests --- tests/test_param_file.py | 142 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 134 insertions(+), 8 deletions(-) diff --git a/tests/test_param_file.py b/tests/test_param_file.py index d376f93bb8..e2b1ba7aa1 100644 --- a/tests/test_param_file.py +++ b/tests/test_param_file.py @@ -31,11 +31,29 @@ the United Nations Convention on Contracts on the International Sales of Goods. import os import errno import pytest +import platform +from subprocess import run from cmp_custom import cmp_custom from conftest import EncoderFrontend, DecoderFrontend from testconfig import PARAM_FILE +VALID_DEC_OUTPUT_CONF = [ + "MONO", + "STEREO", + "5_1", + "7_1", + "5_1_2", + "5_1_4", + "7_1_4", + "FOA", + "HOA2", + "HOA3", + "BINAURAL", + "BINAURAL_ROOM", + "EXT", +] + param_file_test_dict = {} with open(PARAM_FILE, "r", encoding="UTF-8") as fp: data = fp.read() @@ -44,6 +62,7 @@ with open(PARAM_FILE, "r", encoding="UTF-8") as fp: tag = "" enc_opts = "" dec_opts = "" + sim_opts = "" for line in block.split("\n"): if line.startswith("// "): tag = line[3:] @@ -51,13 +70,15 @@ with open(PARAM_FILE, "r", encoding="UTF-8") as fp: enc_opts = line[12:] if line.startswith("../IVAS_dec "): dec_opts = line[12:] + if line.startswith("networkSimulator_g192 "): + sim_opts = line[22:] if tag == "" or enc_opts == "" or dec_opts == "": # no complete parameter set continue if tag in param_file_test_dict: print("non-unique tag found - ignoring new entry") continue - param_file_test_dict[tag] = (enc_opts, dec_opts) + param_file_test_dict[tag] = (enc_opts, dec_opts, sim_opts) def check_and_makedir(dir_path): @@ -101,9 +122,10 @@ def test_param_file_tests( dut_base_path, test_vector_path, update_ref, + rootdir, test_tag, ): - enc_opts, dec_opts = param_file_test_dict[test_tag] + enc_opts, dec_opts, sim_opts = param_file_test_dict[test_tag] tag_str = convert_test_string_to_tag(test_tag) @@ -148,6 +170,36 @@ def test_param_file_tests( update_ref, ) + # check for networkSimulator_g192 command line + if sim_opts != "": + sim_split = sim_opts.split() + assert len(sim_split) == 6, "networkSimulator_g192 binary expects 6 parameters" + # [sim_profile, sim_input, sim_output, sim_trace, sim_nFPP, sim_offset] = sim_split + if sim_split[0].startswith(("../")): + # remove leading "../" + sim_split[0] = sim_split[0][3:] + assert sim_split[1] == "bit" + # in the parameter file, only "bit" is used as bitstream file name + # -> re-use bitstream filename from encoder call + sim_split[1] = bitstream_file + assert sim_split[2] == "netsimoutput" + # in the parameter file, only "netsimoutput" is used as netsim output file name + # -> construct netsim output file name + netsim_outfile = f"{testv_base}_{tag_str}.netsimout" + sim_split[2] = netsim_outfile + assert sim_split[3] == "tracefile_sim" + # in the parameter file, only "tracefile_sim" is used as trace output file name + # -> construct trace output file name + netsim_trace_outfile = f"{testv_base}_{tag_str}.netsimtrace" + sim_split[3] = netsim_trace_outfile + simulate( + reference_path, + dut_base_path, + sim_split, + update_ref, + rootdir, + ) + # evaluate decoder options dec_split = dec_opts.split() assert len(dec_split) >= 3 @@ -165,6 +217,11 @@ def test_param_file_tests( sampling_rate = int(dec_split.pop()) if len(dec_split) > 0: output_config = dec_split.pop() + if output_config.upper() not in VALID_DEC_OUTPUT_CONF: + if not output_config.endswith(".txt"): + # must be EVS tests with additional parameters - put param back + dec_split.append(output_config) + output_config = "" else: output_config = "" @@ -173,9 +230,17 @@ def test_param_file_tests( # the output config is a file output_config_name = os.path.splitext(os.path.basename(output_config))[0] - assert bitstream_file_dec == "bit" - # in the parameter file, only "bit" is used as bitstream file name - # -> re-use bitstream filename from encoder call + tracefile_dec = "" + if sim_opts != "": + assert bitstream_file_dec == "netsimoutput" + # in the parameter file, only "netsimoutput" is used as bitstream file name + # -> re-use netsim_outfile + bitstream_file = netsim_outfile + tracefile_dec = f"{testv_base}_{tag_str}.dectrace" + else: + assert bitstream_file_dec == "bit" + # in the parameter file, only "bit" is used as bitstream file name + # -> re-use bitstream filename from encoder call # the output file is not the real output filename # -> construct output filename @@ -196,6 +261,7 @@ def test_param_file_tests( output_file, dec_split, update_ref, + tracefile_dec, ) # compare @@ -222,7 +288,7 @@ def encode( update_ref, ): """ - Call REF and/or DUT decoder. + Call REF and/or DUT encoder. """ # directories dut_out_dir = f"{dut_base_path}/param_file/enc" @@ -256,6 +322,53 @@ def encode( ) +def simulate( + reference_path, + dut_base_path, + sim_opts_list, + update_ref, + rootdir, +): + """ + Call network simulator on REF and/or DUT encoder output. + """ + # directories + dut_out_dir = f"{dut_base_path}/param_file/enc" + ref_out_dir = f"{reference_path}/param_file/enc" + + netsim_infile = sim_opts_list[1] + netsim_outfile = sim_opts_list[2] + netsim_tracefile = sim_opts_list[3] + ref_out_file = f"{ref_out_dir}/{netsim_outfile}" + + if platform.system() == "Windows": + netsim = [os.path.join(rootdir, "scripts", "tools", "Win32", "networkSimulator_g192.exe")] + elif platform.system() == "Linux": + # there is no Linux binary available -> use the Win32 binary via wine + netsim = [ + "wine", + os.path.join(rootdir, "scripts", "tools", "Win32", "networkSimulator_g192.exe"), + ] + elif platform.system() == "Darwin": + netsim = [os.path.join(rootdir, "scripts", "tools", "Darwin", "networkSimulator_g192")] + + if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): + # call network simulator on REF encoder output + cmd_opts = sim_opts_list + cmd_opts[1] = f"{ref_out_dir}/{netsim_infile}" + cmd_opts[2] = f"{ref_out_dir}/{netsim_outfile}" # ref_out_file + cmd_opts[3] = f"{ref_out_dir}/{netsim_tracefile}" + run(netsim + cmd_opts, check=False) + + if update_ref in [0, 2]: + # call network simulator on DUT encoder output + cmd_opts = sim_opts_list + cmd_opts[1] = f"{dut_out_dir}/{netsim_infile}" + cmd_opts[2] = f"{dut_out_dir}/{netsim_outfile}" # dut_out_file + cmd_opts[3] = f"{dut_out_dir}/{netsim_tracefile}" + run(netsim + cmd_opts, check=False) + + def decode( decoder_frontend, ref_decoder_path, @@ -267,6 +380,7 @@ def decode( output_file, dec_opts_list, update_ref, + tracefile_dec, ): """ Call REF and/or DUT decoder. @@ -282,6 +396,12 @@ def decode( if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): check_and_makedir(ref_out_dir) + add_option_list = dec_opts_list + if tracefile_dec != "": + add_option_list = [ + x if x != "tracefile_dec" else f"{ref_out_dir}/{tracefile_dec}" + for x in dec_opts_list + ] # call REF decoder assert ref_decoder_path ref_decoder = DecoderFrontend(ref_decoder_path, "REF") @@ -290,18 +410,24 @@ def decode( sampling_rate, ref_in_file, ref_out_file, - add_option_list=dec_opts_list, + add_option_list=add_option_list, ) if update_ref in [0, 2]: check_and_makedir(dut_out_dir) + add_option_list = dec_opts_list + if tracefile_dec != "": + add_option_list = [ + x if x != "tracefile_dec" else f"{dut_out_dir}/{tracefile_dec}" + for x in dec_opts_list + ] # call DUT decoder decoder_frontend.run( output_config, sampling_rate, dut_in_file, dut_out_file, - add_option_list=dec_opts_list, + add_option_list=add_option_list, ) -- GitLab From f55e8847ced033209274be7dc4a4cdd7812777ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Thu, 29 Sep 2022 12:04:53 +0200 Subject: [PATCH 137/479] pytest: change default options (add '-n auto', remove '-v') --- .gitlab-ci.yml | 16 ++++++++-------- pytest.ini | 2 +- tests/README.md | 12 ++++++------ 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8bea76dedd..0f62a3ab76 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -315,13 +315,13 @@ pytest-on-merge-request: - mv IVAS_cod_test IVAS_cod - mv IVAS_dec_test IVAS_dec # create references - - python3 -m pytest tests -n auto --update_ref 1 -m create_ref - - python3 -m pytest tests -n auto --update_ref 1 -m create_ref_part2 - - python3 -m pytest tests/test_param_file.py -n auto --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm + - python3 -m pytest tests -v --update_ref 1 -m create_ref + - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 + - python3 -m pytest tests/test_param_file.py -v --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm ### run pytest - exit_code=0 - - python3 -m pytest tests -n auto --junit-xml=report-junit.xml || exit_code=$? + - python3 -m pytest tests -v --junit-xml=report-junit.xml || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - if [ $zero_errors != 1 ]; then echo "Run errors in pytest"; fail_1=1; fi @@ -331,7 +331,7 @@ pytest-on-merge-request: ### run pytest for EVS cases - exit_code=0 - - python3 -m pytest tests/test_param_file.py -n auto --param_file scripts/config/self_test_evs.prm --junit-xml=report-junit-evs.xml || exit_code=$? + - python3 -m pytest tests/test_param_file.py -v --param_file scripts/config/self_test_evs.prm --junit-xml=report-junit-evs.xml || exit_code=$? - zero_errors=$(cat report-junit-evs.xml | grep -c 'errors="0"') || true - if [ $zero_errors != 1 ]; then echo "Run errors in pytest for EVS"; fail_2=1; fi @@ -444,12 +444,12 @@ codec-comparison-on-main-push: - mv IVAS_cod_test IVAS_cod - mv IVAS_dec_test IVAS_dec # create references - - python3 -m pytest tests -n auto --update_ref 1 -m create_ref - - python3 -m pytest tests -n auto --update_ref 1 -m create_ref_part2 + - python3 -m pytest tests -v --update_ref 1 -m create_ref + - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 ### run pytest - exit_code=0 - - python3 -m pytest tests -n auto --junit-xml=report-junit.xml || exit_code=$? + - python3 -m pytest tests -v --junit-xml=report-junit.xml || exit_code=$? - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi diff --git a/pytest.ini b/pytest.ini index 9ffbd0f806..c4ed77a9f6 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,7 +1,7 @@ # pytest.ini # note: per convention, this file is placed in the root directory of the repository [pytest] -addopts = -ra --tb=short --basetemp=./tmp -v +addopts = -ra --tb=short --basetemp=./tmp -n auto # Write captured system-out log messages to JUnit report. junit_logging = system-out # Do not capture log information for passing tests to JUnit report. diff --git a/tests/README.md b/tests/README.md index 78ef9b2212..12f0fe73f5 100644 --- a/tests/README.md +++ b/tests/README.md @@ -62,8 +62,8 @@ When different test binaries are to be used, they can be specified via the `--du # - IVAS_cod_ref(.exe) # - IVAS_dec_ref(.exe) # pytest command lines to be executed from project root folder: -pytest tests -n auto --update_ref 1 -m create_ref -pytest tests -n auto --update_ref 1 -m create_ref_part2 +pytest tests --update_ref 1 -m create_ref +pytest tests --update_ref 1 -m create_ref_part2 ``` ## Running the tests @@ -72,7 +72,7 @@ To run all tests from the tests folder: ```bash # pytest command line to be executed from project root folder: -pytest tests -n auto +pytest tests ``` ## Re-running some tests @@ -81,7 +81,7 @@ When there are test failures, you may want to run, after having fixed the code, ```bash # rerun only the tests that failed at the last run -pytest tests -n auto --last-failed +pytest tests --last-failed ``` To run a specific test case, you can e.g. pick a test case from the `short test summary info` and use that test case as an argument to `pytest`. E.g. @@ -104,9 +104,9 @@ pytest tests/test_sba_bs_dec_plc.py::test_sba_plc_system When there a many test failures, you can use the `-x` (or `--exitfirst`) option to stop testing on the first failure. -Commonly used options like `-n auto` can be added to addopts within the [pytest] section in `pytest.ini`. This saves some typing when calling `pytest`. +Commonly used options like `-n auto` are added to addopts within the [pytest] section in `pytest.ini`. This saves some typing when calling `pytest`. -The `-v` (or `--verbose`) option is usually helpful to see what is going on. Therefore, `-v` is currently part of addopts in `pytest.ini`. If you don't like this verbosity, you can specify the `-q` (`--quiet`) option when running `pytest`. +The `-v` (or `--verbose`) option is helpful to see what is going on. ## Custom options -- GitLab From e41bd7f7528efac1144965588d3d1d76679174f6 Mon Sep 17 00:00:00 2001 From: rtyag Date: Thu, 29 Sep 2022 12:52:46 +0200 Subject: [PATCH 138/479] SBA DTX code coverage improvement --- scripts/ivas_pytests/self_test_b.py | 4 +++- .../tests/system_tests/test_spar_foa_bs_enc.py | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/ivas_pytests/self_test_b.py b/scripts/ivas_pytests/self_test_b.py index 941739435e..9cca946556 100755 --- a/scripts/ivas_pytests/self_test_b.py +++ b/scripts/ivas_pytests/self_test_b.py @@ -126,7 +126,9 @@ def create_short_testvectors(): cut_gain = "16.0" cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) - + cut_gain = ".004" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" + cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) def main(argv): # check for python >= 3.7 diff --git a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py b/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py index df5d018ce5..78a824ea98 100644 --- a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py +++ b/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py @@ -170,11 +170,12 @@ def test_spar_foa_enc_system( bypass = -1 sba_order = "+1" output_config = "FOA" - if agc == 1: + if agc == '1': cut_gain = "16.0" + elif dtx == '1': + cut_gain = ".004" else: - cut_gain = "1.0" - + cut_gain = "1.0" # enc spar_foa_enc( dut_encoder_frontend, -- GitLab From 7623bbeae9a58d41cad414dca25fd660f175a000 Mon Sep 17 00:00:00 2001 From: rtyag Date: Thu, 29 Sep 2022 14:28:36 +0200 Subject: [PATCH 139/479] fix AGC gain application to as it was before --- scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py b/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py index 78a824ea98..83dc488bb2 100644 --- a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py +++ b/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py @@ -170,7 +170,7 @@ def test_spar_foa_enc_system( bypass = -1 sba_order = "+1" output_config = "FOA" - if agc == '1': + if agc == 1: cut_gain = "16.0" elif dtx == '1': cut_gain = ".004" -- GitLab From bb107b99c6d554776268e77a13b9569699f21377 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 29 Sep 2022 14:43:59 +0200 Subject: [PATCH 140/479] Clean out accepted switches --- lib_com/ivas_cnst.h | 6 +- lib_com/ivas_prot.h | 8 +-- lib_com/options.h | 12 +--- lib_dec/ivas_dec.c | 6 +- lib_dec/ivas_init_dec.c | 94 ++++--------------------- lib_dec/ivas_sba_rendering.c | 48 +------------ lib_dec/lib_dec.c | 38 ---------- lib_enc/ivas_agc_enc.c | 20 ------ lib_enc/ivas_cpe_enc.c | 8 --- lib_enc/ivas_init_enc.c | 61 +--------------- lib_enc/ivas_spar_encoder.c | 30 ++------ lib_enc/lib_enc.c | 133 ++--------------------------------- 12 files changed, 35 insertions(+), 429 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 2df702fade..2db2a46511 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1013,13 +1013,9 @@ enum #define IVAS_DECORR_PARM_LOOKAHEAD_TAU 2e-3f #define IVAS_DECORR_PARM_APD_TAU 20e-3f -/* IVAS PCA */ +/* IVAS SBA PCA */ #define IVAS_PCA_NB_SUBR 20 /* 80 -> 0.25 ms, 40 -> 0.5 ms... */ -#ifdef SPAR_SCALING_HARMONIZATION #define IVAS_PCA_COV_THRES 3e-5f -#else -#define IVAS_PCA_COV_THRES 1e-9f -#endif #define IVAS_PCA_QUAT_EPS 1e-7f #define IVAS_PCA_QBITS 19 #define IVAS_PCA_N1 91 diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 6996e4a298..10516239c9 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -238,11 +238,9 @@ uint32_t ivas_syn_output( int16_t *synth_out /* o : integer 16 bits synthesis signal */ ); -#ifdef FIX_I98_HANDLES_TO_NULL void ivas_initialize_handles_enc( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ ); -#endif ivas_error ivas_init_encoder( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ @@ -3724,9 +3722,6 @@ void ivas_spar_config( void ivas_sba_upmixer_renderer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ float output[][L_FRAME48k], /* i/o: transport/output audio channels */ -#ifndef SPAR_SCALING_HARMONIZATION - const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ -#endif const int16_t output_frame /* i : output frame length */ ); @@ -5469,8 +5464,7 @@ float rand_triangular_signed( #ifdef ALIGN_SID_SIZE void dtx_read_padding_bits( DEC_CORE_HANDLE st, - int16_t num_bits -); + int16_t num_bits ); #endif #endif /* IVAS_PROT_H */ diff --git a/lib_com/options.h b/lib_com/options.h index 1db9d4c2cf..7f07d86a9c 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -141,24 +141,16 @@ #endif #define DISABLE_ADAP_RES_COD_TMP /* temporary fix for IVAS-403, disables adaptive residual coding */ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ - /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_IVAS_185_MDCT_ST_PLC_FADEOUT*/ /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ -#define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ #define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ -#define QUANTISE_REAL_FCN_CLEAN_UP /*Clean up the ivas_quantise_real_values() function*/ - -#define FIX_I74_BW_LIMITATION_ALT /* issue 74: Propagate bitrate induced BW limitation to hEncoderConfig. Ensures BE between explicit BW limitation using "-max_band " and BW limited by bitrate; alternative fix */ -#define FIX_I74_CLEANING /* issue 74: remove redundant function call in ivas_cpe_enc() */ +#define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ +#define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ -#define SPAR_SCALING_HARMONIZATION /* issue 80: Changes to harmonize scaling in spar */ -#define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ -#define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index ff6df585ef..7d54047014 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -348,11 +348,7 @@ ivas_error ivas_dec( } else /* SBA_MODE_SPAR */ { - ivas_sba_upmixer_renderer( st_ivas, output, -#ifndef SPAR_SCALING_HARMONIZATION - nchan_remapped, -#endif - output_frame ); /* Note: ivas_sba_linear_renderer() or ivas_dirac_dec() are called internally */ + ivas_sba_upmixer_renderer( st_ivas, output, output_frame ); /* Note: ivas_sba_linear_renderer() or ivas_dirac_dec() are called internally */ } } else if ( st_ivas->ivas_format == MC_FORMAT ) diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index d0f4e7ceb1..5b42032201 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -719,61 +719,6 @@ ivas_error ivas_init_decoder( } } -#ifndef FIX_I98_HANDLES_TO_NULL -#if 0 - /*-----------------------------------------------------------------* - * Dummy pointers to decoder handles - *-----------------------------------------------------------------*/ - - for ( i = 0; i < MAX_SCE; i++ ) - { - st_ivas->hSCE[i] = NULL; - } - - for ( i = 0; i < MAX_CPE; i++ ) - { - st_ivas->hCPE[i] = NULL; - } - - /* ISm metadata handles */ - for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) - { - st_ivas->hIsmMetaData[n] = NULL; - } - - /* DirAC handle */ - st_ivas->hDirAC = NULL; - st_ivas->sba_dirac_stereo_flag = 0; - - /* SPAR handle */ - st_ivas->hSpar = NULL; - - /* MASA decoder structure */ - st_ivas->hMasa = NULL; - - /* Q metadata handle */ - st_ivas->hQMetaData = NULL; - - /* MCT handles */ - st_ivas->hMCT = NULL; - st_ivas->hParamMC = NULL; - - /* LFE handle */ - st_ivas->hLFE = NULL; - - /* renderers handles */ - st_ivas->hBinRenderer = NULL; /* fastconf binaural renderer */ - st_ivas->hDiracDecBin = NULL; /* parametric binaural renderer */ - st_ivas->hLsSetUpConversion = NULL; /* MC converter */ - st_ivas->hEFAPdata = NULL; /* EFAP handle */ - st_ivas->hVBAPdata = NULL; /* VBAP handle */ - st_ivas->hIsmRendererData = NULL; /* ISm renderer */ - st_ivas->hBinRendererTd = NULL; /* TD ISm binaural renderer */ - st_ivas->hMonoDmxRenderer = NULL; /* Mono downmix renderer */ - st_ivas->hHrtf = NULL; /* Crend hrtf data */ - st_ivas->hCrend = NULL; /* Crend renderer */ -#endif -#endif /*-----------------------------------------------------------------* * Allocate and initalize SCE/CPE and other handles *-----------------------------------------------------------------*/ @@ -810,6 +755,7 @@ ivas_error ivas_init_decoder( { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); } + /* init EFAP for custom LS output and set hTransSetup */ if ( output_config == AUDIO_CONFIG_LS_CUSTOM ) { @@ -856,11 +802,10 @@ ivas_error ivas_init_decoder( } else if ( st_ivas->ivas_format == SBA_FORMAT || st_ivas->ivas_format == MASA_FORMAT ) { + + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { - if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) - { - return error; - } + return error; } if ( st_ivas->ivas_format == MASA_FORMAT ) @@ -878,6 +823,7 @@ ivas_error ivas_init_decoder( { return error; } + if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC && st_ivas->hOutSetup.is_loudspeaker_setup ) { if ( ( error = ivas_sba_get_hoa_dec_matrix( st_ivas->hOutSetup, &st_ivas->hoa_dec_mtx, st_ivas->hIntSetup.ambisonics_order ) ) != IVAS_ERR_OK ) @@ -898,6 +844,7 @@ ivas_error ivas_init_decoder( { return error; } + for ( k = 0; k < DIRAC_MAX_NBANDS; k++ ) { st_ivas->hSpar->dirac_to_spar_md_bands[k] = st_ivas->hDirAC->dirac_to_spar_md_bands[k]; @@ -962,6 +909,7 @@ ivas_error ivas_init_decoder( { return error; } + reset_indices_dec( st_ivas->hSCE[sce_id]->hCoreCoder[0] ); } @@ -972,7 +920,6 @@ ivas_error ivas_init_decoder( return error; } - for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1043,7 +990,6 @@ ivas_error ivas_init_decoder( return error; } - for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1065,12 +1011,12 @@ ivas_error ivas_init_decoder( return error; } } + if ( ( error = ivas_param_mc_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } - for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) { if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) @@ -1078,7 +1024,6 @@ ivas_error ivas_init_decoder( return error; } - for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1107,7 +1052,6 @@ ivas_error ivas_init_decoder( return error; } - st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && output_config == AUDIO_CONFIG_STEREO ); if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_MCMASA_MONO_STEREO ) @@ -1148,6 +1092,7 @@ ivas_error ivas_init_decoder( return error; } } + reset_indices_dec( st_ivas->hSCE[sce_id]->hCoreCoder[0] ); } @@ -1156,6 +1101,7 @@ ivas_error ivas_init_decoder( if ( st_ivas->hOutSetup.separateChannelEnabled ) { st_ivas->element_mode_init = IVAS_CPE_MDCT; + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate - st_ivas->hSCE[0]->element_brate ) ) != IVAS_ERR_OK ) { return error; @@ -1164,11 +1110,13 @@ ivas_error ivas_init_decoder( else { st_ivas->element_mode_init = IVAS_CPE_MDCT; + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) { return error; } } + for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1256,6 +1204,7 @@ ivas_error ivas_init_decoder( { return error; } + if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) { if ( ( st_ivas->hCrend = (CREND_HANDLE) count_malloc( sizeof( CREND_DATA ) ) ) == NULL ) @@ -1545,12 +1494,7 @@ void ivas_initialize_handles_dec( st_ivas->hCPE[i] = NULL; } -#ifdef FIX_I98_HANDLES_TO_NULL st_ivas->bit_stream = NULL; -#else - st_ivas->nSCE = 0; - st_ivas->nCPE = 0; -#endif st_ivas->mem_hp20_out = NULL; st_ivas->hLimiter = NULL; @@ -1561,9 +1505,6 @@ void ivas_initialize_handles_dec( } /* spatial coding handles */ -#ifndef FIX_I98_HANDLES_TO_NULL - st_ivas->hIsmRendererData = NULL; -#endif st_ivas->hDirAC = NULL; st_ivas->hSpar = NULL; st_ivas->hMasa = NULL; @@ -1856,7 +1797,6 @@ void ivas_init_dec_get_num_cldfb_instances( { *numCldfbAnalyses = st_ivas->hSpar->hFbMixer->fb_cfg->num_in_chans; - if ( st_ivas->hOutSetup.is_loudspeaker_setup && st_ivas->renderer_type == RENDERER_DIRAC ) { *numCldfbSyntheses = st_ivas->hOutSetup.nchan_out_woLFE; @@ -2062,17 +2002,9 @@ static ivas_error doSanityChecks_IVAS( #endif #ifdef DEBUGGING -#ifdef FIX_I98_HANDLES_TO_NULL if ( ( st_ivas->hDecoderConfig->Opt_HRTF_binary || st_ivas->hDecoderConfig->force_rend == FORCE_TD_RENDERER ) && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) || ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode != MC_MODE_MCT ) ) ) #else - if ( ( st_ivas->hHrtfTD != NULL || st_ivas->hDecoderConfig->force_rend == FORCE_TD_RENDERER ) && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) || ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode != MC_MODE_MCT ) ) ) -#endif -#else -#ifdef FIX_I98_HANDLES_TO_NULL if ( st_ivas->hDecoderConfig->Opt_HRTF_binary && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) ) ) -#else - if ( st_ivas->hHrtfTD != NULL && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) ) ) -#endif #endif { return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration: Time Domain object renderer not supported in this configuration" ); diff --git a/lib_dec/ivas_sba_rendering.c b/lib_dec/ivas_sba_rendering.c index 49f3555c6f..92e50de535 100644 --- a/lib_dec/ivas_sba_rendering.c +++ b/lib_dec/ivas_sba_rendering.c @@ -205,49 +205,16 @@ static void ivas_sba_mtx_mult( void ivas_sba_upmixer_renderer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ float output[][L_FRAME48k], /* i/o: transport/output audio channels */ -#ifndef SPAR_SCALING_HARMONIZATION - const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ -#endif - const int16_t output_frame /* i : output frame length */ + const int16_t output_frame /* i : output frame length */ ) { -#ifdef SPAR_SCALING_HARMONIZATION - int16_t i; -#else - int16_t i, ch, nchan_out; -#endif + int16_t i, nchan_internal; float temp; - int16_t nchan_internal; wmops_sub_start( "ivas_sba_upmixer_renderer" ); nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); -#ifndef SPAR_SCALING_HARMONIZATION - nchan_out = st_ivas->hDecoderConfig->nchan_out; -#endif -#ifndef SPAR_SCALING_HARMONIZATION - for ( ch = 0; ch < nchan_remapped; ch++ ) - { - for ( i = 0; i < output_frame; i++ ) - { - temp = output[ch][i]; - temp = floorf( temp + 0.5f ); - - if ( temp > MAX16B_FLT ) - { - temp = MAX16B_FLT; - } - else if ( temp < ( -1.0f * PCM16_TO_FLT_FAC ) ) - { - temp = ( -1.0f * PCM16_TO_FLT_FAC ); - } - temp *= ( 1.0f / PCM16_TO_FLT_FAC ); - output[ch][i] = temp; - } - } -#endif - if ( st_ivas->nchan_transport >= 3 ) { /*convert WYZX downmix to WYXZ*/ @@ -267,17 +234,6 @@ void ivas_sba_upmixer_renderer( ivas_sba_linear_renderer( output, output_frame, st_ivas->hIntSetup.nchan_out_woLFE, st_ivas->hDecoderConfig->output_config, st_ivas->hOutSetup, st_ivas->hoa_dec_mtx ); } -#ifndef SPAR_SCALING_HARMONIZATION - for ( ch = 0; ch < nchan_out; ch++ ) - { - for ( i = 0; i < output_frame; i++ ) - { - output[ch][i] = output[ch][i] * PCM16_TO_FLT_FAC; - } - } -#endif - - wmops_sub_end(); return; diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 52e54a5663..fa2bb2b763 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -250,50 +250,14 @@ void IVAS_DEC_Close( if ( ( *phIvasDec )->hVoIP ) { IVAS_DEC_Close_VoIP( ( *phIvasDec )->hVoIP ); -#ifdef FIX_I98_HANDLES_TO_NULL ( *phIvasDec )->hVoIP = NULL; -#else - count_free( ( *phIvasDec )->hVoIP ); -#endif } -#ifdef FIX_I98_HANDLES_TO_NULL if ( ( *phIvasDec )->st_ivas ) { ivas_destroy_dec( ( *phIvasDec )->st_ivas ); ( *phIvasDec )->st_ivas = NULL; } -#else - if ( ( *phIvasDec )->isInitialized ) - { - if ( ( *phIvasDec )->st_ivas ) - { - ivas_destroy_dec( ( *phIvasDec )->st_ivas ); - } - } - else - { - if ( ( *phIvasDec )->st_ivas->hDecoderConfig != NULL ) - { - count_free( ( *phIvasDec )->st_ivas->hDecoderConfig ); - ( *phIvasDec )->st_ivas->hDecoderConfig = NULL; - } - - - if ( ( *phIvasDec )->st_ivas->hHeadTrackData != NULL ) - { - count_free( ( *phIvasDec )->st_ivas->hHeadTrackData ); - ( *phIvasDec )->st_ivas->hHeadTrackData = NULL; - } - - ivas_render_config_close( &( ( *phIvasDec )->st_ivas->hRenderConfig ) ); - - ivas_HRTF_binary_close( &( *phIvasDec )->st_ivas->hHrtfTD ); - count_free( ( *phIvasDec )->st_ivas ); - } - - ( *phIvasDec )->st_ivas = NULL; -#endif count_free( *phIvasDec ); *phIvasDec = NULL; @@ -1504,9 +1468,7 @@ static void IVAS_DEC_Close_VoIP( pcmdsp_fifo_destroy( &hVoIP->hFifoAfterTimeScaler ); -#ifdef FIX_I98_HANDLES_TO_NULL count_free( hVoIP ); -#endif return; } diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index c3c68efc72..3ed7bb6d2f 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -242,11 +242,7 @@ void ivas_agc_enc_process( if ( !isClipped ) { -#ifdef SPAR_SCALING_HARMONIZATION if ( ( ppPcm_out[i][j] > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( ppPcm_out[i][j] < MIN16B_FLT ) ) -#else - if ( ( ppPcm_out[i][j] > ( 1.f - pState->minDelta ) ) || ( ppPcm_out[i][j] < -1.f ) ) -#endif { if ( j < offset ) { @@ -282,11 +278,7 @@ void ivas_agc_enc_process( maxGain = max( smoothedMaxAbsVal, MaxAbsVal ) * pState->gain_state[i].lastGain * 2.f; -#ifdef SPAR_SCALING_HARMONIZATION if ( maxGain < ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) -#else - if ( maxGain < 1.f - pState->minDelta ) -#endif { pState->gain_state[i].gainExpVal = -1; } @@ -321,11 +313,7 @@ void ivas_agc_enc_process( { int16_t isCompensated = FALSE; pState->gain_data[i].gainException = FALSE; -#ifdef SPAR_SCALING_HARMONIZATION pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[MaxAbsValIdx] ) ); -#else - pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal ) / logf( pState->agc_com.winFunc[MaxAbsValIdx] ) ); -#endif while ( !isCompensated ) { @@ -336,11 +324,7 @@ void ivas_agc_enc_process( { tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[idx], (float) pState->gain_state[i].gainExpVal ); -#ifdef SPAR_SCALING_HARMONIZATION if ( ( tmpSignal > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( tmpSignal < MIN16B_FLT ) ) -#else - if ( ( tmpSignal > ( 1.f - pState->minDelta ) ) || ( tmpSignal < -1.f ) ) -#endif { isCompensated = FALSE; break; @@ -390,11 +374,7 @@ void ivas_agc_enc_process( } else { -#ifdef SPAR_SCALING_HARMONIZATION pState->gain_state[i].gainExpVal = (int16_t) ( -floorf( -logf( ( actualMaxAbsVal + pState->minDelta ) * MDFT_NORM_SCALING ) * INV_LOG_2 ) ); -#else - pState->gain_state[i].gainExpVal = (int16_t) ( -floorf( -logf( actualMaxAbsVal + pState->minDelta ) * INV_LOG_2 ) ); -#endif pState->gain_state[i].gainExpVal = min( gainExpValMaxRange, pState->gain_state[i].gainExpVal ); gain = powf( 2.0f, -1.0f * pState->gain_state[i].gainExpVal ); diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index df94fe44ab..96b5ba8777 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -344,14 +344,6 @@ ivas_error ivas_cpe_enc( sts[0]->total_brate = ( sts[0]->bits_frame_nominal + 10 ) * FRAMES_PER_SEC; /* add small overhead; st[0]->total_brate used in coder_type_modif() */ -#ifndef FIX_I74_CLEANING - if ( ( sts[0]->last_bwidth < max_bwidth ) || ( sts[0]->last_core_brate <= SID_2k40 ) ) /* IVAS_fmToDo: TBV - BWD output is not known here yet !!! */ - { - /* reconfigure in case of BW switching or if last frame was a SID/NO_DATA with coarse partitioning */ - hCPE->hStereoDft->nbands = stereo_dft_band_config( hCPE->hStereoDft->band_limits, hCPE->hStereoDft->hConfig->band_res, hCPE->hStereoDft->NFFT, ENC ); - } -#endif - /* Update DFT Stereo memories */ stereo_dft_enc_update( hCPE->hStereoDft, sts[0]->max_bwidth #ifdef DEBUG_MODE_DFT diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index 8d9f7e445e..e4db2ce2a1 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -238,7 +238,6 @@ void copy_encoder_config( } -#ifdef FIX_I98_HANDLES_TO_NULL /*------------------------------------------------------------------------- * ivas_initialize_handles_enc() * @@ -298,7 +297,6 @@ void ivas_initialize_handles_enc( return; } -#endif /*-------------------------------------------------------------------* @@ -339,58 +337,7 @@ ivas_error ivas_init_encoder( st_ivas->mc_mode = MC_MODE_NONE; st_ivas->sba_mode = SBA_MODE_NONE; -#ifdef FIX_I98_HANDLES_TO_NULL st_ivas->nchan_transport = -1; -#else - /*-----------------------------------------------------------------* - * Dummy pointers to max. number of SCEs and CPEs - *-----------------------------------------------------------------*/ - - st_ivas->nchan_transport = -1; - - for ( i = 0; i < MAX_SCE; i++ ) - { - st_ivas->hSCE[i] = NULL; - } - - for ( i = 0; i < MAX_CPE; i++ ) - { - st_ivas->hCPE[i] = NULL; - } - - /* ISm metadata handles */ - for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) - { - st_ivas->hIsmMetaData[n] = NULL; - } - - /* Q Metadata handle */ - st_ivas->hQMetaData = NULL; - - /* DirAC handle */ - st_ivas->hDirAC = NULL; - - /* SPAR handle */ - st_ivas->hSpar = NULL; - - /* MASA encoder handle */ - st_ivas->hMasa = NULL; - - /* MCT handle */ - st_ivas->hMCT = NULL; - - /* Parametric MC handle */ - st_ivas->hParamMC = NULL; - - /* Multi-channel MASA handle */ - st_ivas->hMcMasa = NULL; - - /* Stereo downmix for EVS encoder handle */ - st_ivas->hStereoDmxEVS = NULL; - - /* LFE handle */ - st_ivas->hLFE = NULL; -#endif /*-----------------------------------------------------------------* * Allocate and initialize SCE/CPE and other handles @@ -480,11 +427,9 @@ ivas_error ivas_init_encoder( } else if ( ivas_format == SBA_FORMAT || ivas_format == MASA_FORMAT ) { + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { - if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) - { - return error; - } + return error; } if ( ivas_format == SBA_FORMAT ) @@ -651,6 +596,7 @@ ivas_error ivas_init_encoder( else if ( st_ivas->mc_mode == MC_MODE_MCMASA ) { ivas_mcmasa_setNumTransportChannels( &( st_ivas->nchan_transport ), &( hEncoderConfig->element_mode_init ), ivas_total_brate ); + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { return error; @@ -1054,4 +1000,3 @@ void ivas_destroy_enc( return; } - diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 46e957a3f1..a0fa6d4b4a 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -278,9 +278,6 @@ ivas_error ivas_spar_enc( ) { ENCODER_CONFIG_HANDLE hEncoderConfig; -#ifndef SPAR_SCALING_HARMONIZATION - int16_t ch; -#endif ivas_error error; error = IVAS_ERR_OK; @@ -292,14 +289,6 @@ ivas_error ivas_spar_enc( return error; } -#ifndef SPAR_SCALING_HARMONIZATION - /* normalize input channels */ - for ( ch = 0; ch < hEncoderConfig->nchan_inp; ch++ ) - { - v_multc( data_f[ch], MDFT_NORM_SCALING, data_f[ch], input_frame ); - } -#endif - if ( hEncoderConfig->sba_planar ) { ivas_sba_zero_vert_comp( data_f, st_ivas->sba_analysis_order, hEncoderConfig->sba_planar, input_frame ); @@ -880,20 +869,13 @@ static ivas_error ivas_spar_enc_process( order = remix_order_set[hSpar->hMdEnc->spar_md_cfg.remix_unmix_order]; - for ( i = 0; i < input_frame; i++ ) + for ( j = 0; j < nchan_transport; j++ ) { - for ( j = 0; j < nchan_transport; j++ ) - { -#ifndef SPAR_SCALING_HARMONIZATION - data_f[order[j]][i] = p_pcm_tmp[j][i] * PCM16_TO_FLT_FAC; -#else - data_f[order[j]][i] = p_pcm_tmp[j][i]; -#endif - } - for ( ; j < IVAS_SPAR_MAX_DMX_CHS; j++ ) - { - data_f[order[j]][i] = 0; - } + mvr2r( p_pcm_tmp[j], data_f[order[j]], input_frame ); + } + for ( ; j < IVAS_SPAR_MAX_DMX_CHS; j++ ) + { + set_f( data_f[order[j]], 0.0f, input_frame ); } wmops_sub_end(); diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index ef5c621fec..0525c7c1db 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -62,10 +62,8 @@ struct IVAS_ENC int16_t Opt_RF_ON_loc; int16_t rf_fec_offset_loc; bool ismMetadataProvided[MAX_NUM_OBJECTS]; - bool maxBandwidthUser; /* Was a specific max bandwith selected by the user? */ -#ifdef FIX_I74_BW_LIMITATION_ALT - IVAS_ENC_BANDWIDTH newBandwidthApi; /* maximum encoded bandwidth, as set on API level */ -#endif + bool maxBandwidthUser; /* Was a specific max bandwith selected by the user? */ + IVAS_ENC_BANDWIDTH newBandwidthApi; /* maximum encoded bandwidth, as set on API level */ }; /*---------------------------------------------------------------------* @@ -79,9 +77,6 @@ static ivas_error setChannelAwareConfig( IVAS_ENC_HANDLE hIvasEnc, const IVAS_EN static int16_t getInputBufferSize( const Encoder_Struct *st_ivas ); static ivas_error doCommonConfigureChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error doCommonSetterChecks( IVAS_ENC_HANDLE hIvasEnc ); -#ifndef FIX_I74_BW_LIMITATION_ALT -static void updateBandwidthFromFs( const ENCODER_CONFIG_HANDLE hEncoderConfig ); -#endif static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ); static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); @@ -177,14 +172,8 @@ ivas_error IVAS_ENC_Open( /* initialize encoder Config. handle */ init_encoder_config( st_ivas->hEncoderConfig ); -#ifdef FIX_I98_HANDLES_TO_NULL /* initialize pointers to handles to NULL */ ivas_initialize_handles_enc( st_ivas ); -#else - st_ivas->hEncoderConfig->ivas_total_brate = ACELP_12k65; - st_ivas->hEncoderConfig->Opt_SC_VBR = 0; - st_ivas->hEncoderConfig->last_Opt_SC_VBR = 0; -#endif /* set high-level parameters */ st_ivas->mc_mode = MC_MODE_NONE; @@ -836,10 +825,6 @@ static ivas_error configureEncoder( hEncoderConfig->input_Fs = inputFs; -#ifndef FIX_I74_BW_LIMITATION_ALT - updateBandwidthFromFs( hEncoderConfig ); -#endif - /*-----------------------------------------------------------------* * Channel-aware mode *-----------------------------------------------------------------*/ @@ -904,12 +889,10 @@ static ivas_error configureEncoder( return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "PCA supported at SBA FOA 256 kbps only." ); } -#ifdef FIX_I74_BW_LIMITATION_ALT if ( ( error = sanitizeBandwidth( hIvasEnc ) ) != IVAS_ERR_OK ) { return error; } -#endif /*-----------------------------------------------------------------* * Finalize initialization @@ -963,7 +946,7 @@ ivas_error IVAS_ENC_GetDelay( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - *delay = NS2SA( hEncoderConfig->input_Fs, ( int32_t )( get_delay( ENC, hEncoderConfig->input_Fs, hEncoderConfig->ivas_format, NULL, RENDERER_DISABLE, 0 ) + 0.5f ) ); + *delay = NS2SA( hEncoderConfig->input_Fs, (int32_t) ( get_delay( ENC, hEncoderConfig->input_Fs, hEncoderConfig->ivas_format, NULL, RENDERER_DISABLE, 0 ) + 0.5f ) ); *delay *= hEncoderConfig->nchan_inp; @@ -981,7 +964,7 @@ static int16_t getInputBufferSize( const Encoder_Struct *st_ivas /* i : IVAS encoder handle */ ) { - return ( int16_t )( st_ivas->hEncoderConfig->input_Fs * st_ivas->hEncoderConfig->nchan_inp / FRAMES_PER_SEC ); + return (int16_t) ( st_ivas->hEncoderConfig->input_Fs * st_ivas->hEncoderConfig->nchan_inp / FRAMES_PER_SEC ); } @@ -1048,12 +1031,10 @@ ivas_error IVAS_ENC_EncodeFrameToSerial( return IVAS_ERR_INVALID_INPUT_BUFFER_SIZE; } -#ifdef FIX_I74_BW_LIMITATION_ALT if ( ( error = sanitizeBandwidth( hIvasEnc ) ) != IVAS_ERR_OK ) { return error; } -#endif if ( hEncoderConfig->ivas_format == ISM_FORMAT ) { @@ -1427,12 +1408,8 @@ static ivas_error printConfigInfo_enc( { Encoder_Struct *st_ivas; ENCODER_CONFIG_HANDLE hEncoderConfig; -#ifndef FIX_I74_BW_LIMITATION_ALT - char max_bwidth_string[4]; -#else int16_t newBandwidthApi; ivas_error error; -#endif st_ivas = hIvasEnc->st_ivas; hEncoderConfig = st_ivas->hEncoderConfig; @@ -1573,44 +1550,18 @@ static ivas_error printConfigInfo_enc( * Print potential limitation of audio bandwidth *-----------------------------------------------------------------*/ -#ifdef FIX_I74_BW_LIMITATION_ALT if ( ( error = bandwidthApiToInternal( hIvasEnc->newBandwidthApi, &newBandwidthApi ) ) != IVAS_ERR_OK ) { return error; } -#else - switch ( hEncoderConfig->max_bwidth ) - { - case NB: - strncpy( max_bwidth_string, "NB\0", sizeof( max_bwidth_string ) ); - break; - case WB: - strncpy( max_bwidth_string, "WB\0", sizeof( max_bwidth_string ) ); - break; - case SWB: - strncpy( max_bwidth_string, "SWB\0", sizeof( max_bwidth_string ) ); - break; - case FB: - strncpy( max_bwidth_string, "FB\0", sizeof( max_bwidth_string ) ); - break; - } -#endif if ( st_ivas->hEncoderConfig->Opt_SC_VBR && !hEncoderConfig->Opt_DTX_ON ) { return IVAS_ERROR( IVAS_ERR_WRONG_PARAMS, "\nError: SC-VBR 5900 bps not supported without DTX\n\n" ); } -#ifndef FIX_I74_BW_LIMITATION_ALT - if ( hIvasEnc->maxBandwidthUser ) - { - fprintf( stdout, "\nBandwidth limited to %s.\n", max_bwidth_string ); - } -#endif - if ( hEncoderConfig->ivas_format == MONO_FORMAT ) { -#ifdef FIX_I74_BW_LIMITATION_ALT if ( newBandwidthApi != hEncoderConfig->max_bwidth ) { if ( newBandwidthApi == FB ) @@ -1630,32 +1581,9 @@ static ivas_error printConfigInfo_enc( fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.\n", ACELP_9k60 / 1000.f ); } } -#else - if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < ACELP_16k40 ) - { - fprintf( stdout, "\nFB coding not supported below %.2f kbps. ", ACELP_16k40 / 1000.f ); - if ( hEncoderConfig->ivas_total_brate < ACELP_9k60 ) - { - fprintf( stdout, "Switching to WB.\n" ); - } - else - { - fprintf( stdout, "Switching to SWB.\n" ); - } - } - - if ( hEncoderConfig->max_bwidth == SWB && hEncoderConfig->ivas_total_brate < ACELP_9k60 ) - { - fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.", ACELP_9k60 / 1000.f ); - } -#endif /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ -#ifdef FIX_I74_BW_LIMITATION_ALT if ( ( newBandwidthApi == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) -#else - if ( ( hEncoderConfig->max_bwidth == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) -#endif { fprintf( stdout, "\nError: Unsupported mode NB %d bps, NB mode supports rates 5900-24400 bps\n\n", hEncoderConfig->ivas_total_brate ); return IVAS_ERR_INVALID_BITRATE; @@ -1663,11 +1591,7 @@ static ivas_error printConfigInfo_enc( } else { -#ifdef FIX_I74_BW_LIMITATION_ALT if ( newBandwidthApi != hEncoderConfig->max_bwidth ) -#else - if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) -#endif { fprintf( stdout, "\nFB coding not supported below %.2f kbps. Switching to SWB.\n", MIN_BRATE_FB_STEREO / 1000.f ); } @@ -1877,36 +1801,7 @@ static ivas_error doCommonSetterChecks( return IVAS_ERR_OK; } -#ifndef FIX_I74_BW_LIMITATION_ALT -/*---------------------------------------------------------------------* - * updateBandwidthFromFs() - * - * - *---------------------------------------------------------------------*/ -static void updateBandwidthFromFs( - const ENCODER_CONFIG_HANDLE hEncoderConfig ) -{ - /* Prevent st_ivas->max_bwidth from being higher than Fs/2 */ - if ( hEncoderConfig->input_Fs == 8000 && hEncoderConfig->max_bwidth > NB ) - { - hEncoderConfig->max_bwidth = NB; - } - else if ( hEncoderConfig->input_Fs == 16000 && hEncoderConfig->max_bwidth > WB ) - { - hEncoderConfig->max_bwidth = WB; - } - else if ( hEncoderConfig->input_Fs == 32000 && hEncoderConfig->max_bwidth > SWB ) - { - hEncoderConfig->max_bwidth = SWB; - } - - return; -} -#endif - - -#ifdef FIX_I74_BW_LIMITATION_ALT /*---------------------------------------------------------------------* * sanitizeBandwidth() * @@ -1915,7 +1810,7 @@ static void updateBandwidthFromFs( static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ) -{ +{ ENCODER_CONFIG_HANDLE hEncoderConfig; int16_t max_bwidth_tmp; @@ -1940,7 +1835,7 @@ static ivas_error sanitizeBandwidth( /* NB coding not supported in IVAS. Switching to WB. */ if ( max_bwidth_tmp == NB && hEncoderConfig->ivas_format != UNDEFINED_FORMAT && hEncoderConfig->ivas_format != MONO_FORMAT ) { - if ( hEncoderConfig->input_Fs >= 16000 ) + if ( hEncoderConfig->input_Fs >= 16000 ) { max_bwidth_tmp = WB; } @@ -2000,7 +1895,6 @@ static ivas_error sanitizeBandwidth( return IVAS_ERR_OK; } -#endif /*---------------------------------------------------------------------* @@ -2025,9 +1919,7 @@ static ivas_error setBandwidth( return error; } -#ifdef FIX_I74_BW_LIMITATION_ALT hIvasEnc->newBandwidthApi = newBandwidth; -#endif /* NB coding not supported in IVAS. Switching to WB. */ if ( newBandwidth == NB && hEncoderConfig->ivas_format != UNDEFINED_FORMAT && hEncoderConfig->ivas_format != MONO_FORMAT ) @@ -2041,15 +1933,6 @@ static ivas_error setBandwidth( hIvasEnc->switchingActive = true; } -#ifndef FIX_I74_BW_LIMITATION_ALT - /* Limit bandwidth to half of sampling rate - only possible if - * sampling rate has already been set via configure function */ - if ( hIvasEnc->isConfigured ) - { - updateBandwidthFromFs( hIvasEnc->st_ivas->hEncoderConfig ); - } -#endif - return IVAS_ERR_OK; } @@ -2217,18 +2100,14 @@ static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig /* o : configuration structure */ ) { -#ifdef FIX_I98_HANDLES_TO_NULL hEncoderConfig->ivas_total_brate = ACELP_12k65; -#endif hEncoderConfig->max_bwidth = SWB; hEncoderConfig->input_Fs = 16000; hEncoderConfig->nchan_inp = 1; hEncoderConfig->element_mode_init = EVS_MONO; hEncoderConfig->ivas_format = UNDEFINED_FORMAT; -#ifdef FIX_I98_HANDLES_TO_NULL hEncoderConfig->Opt_SC_VBR = 0; hEncoderConfig->last_Opt_SC_VBR = 0; -#endif hEncoderConfig->Opt_AMR_WB = 0; hEncoderConfig->Opt_DTX_ON = 0; hEncoderConfig->Opt_RF_ON = 0; -- GitLab From b47a17effeb0828d498f8850b53b1d47a49b1948 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 29 Sep 2022 14:55:03 +0200 Subject: [PATCH 141/479] formatting - clang-format --- lib_dec/ivas_objectRenderer.c | 20 ++++++++++---------- lib_dec/ivas_objectRenderer_hrFilt.c | 8 ++++---- lib_dec/ivas_objectRenderer_sfx.c | 6 +++--- lib_dec/ivas_stereo_cng_dec.c | 2 +- lib_enc/ivas_cpe_enc.c | 1 - lib_enc/ivas_sce_enc.c | 4 +--- lib_enc/ivas_stereo_cng_enc.c | 2 +- 7 files changed, 20 insertions(+), 23 deletions(-) diff --git a/lib_dec/ivas_objectRenderer.c b/lib_dec/ivas_objectRenderer.c index f4b024b38a..eb7ee0d733 100644 --- a/lib_dec/ivas_objectRenderer.c +++ b/lib_dec/ivas_objectRenderer.c @@ -394,11 +394,11 @@ static ivas_error TDREND_GetMix( float output[][L_FRAME48k], /* i/o: ISm object synth / rendered output in 0,1 */ #ifdef FIX_I106_TDREND_5MS const int16_t subframe_length, /* i/o: subframe length */ - const int32_t output_Fs, /* i : Output sampling rate */ - const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ + const int32_t output_Fs, /* i : Output sampling rate */ + const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ #else const int16_t output_frame, /* i/o: Output frame length */ - const int32_t output_Fs /* i : Output sampling rate */ + const int32_t output_Fs /* i : Output sampling rate */ #endif ) { @@ -472,7 +472,7 @@ static ivas_error TDREND_GetMix( #ifdef FIX_I106_TDREND_5MS /* Clear the PoseUpdated and Source position update flags */ #else - /* Clear the mixer update flags */ + /* Clear the mixer update flags */ #endif TDREND_Clear_Update_flags( hBinRendererTd ); @@ -510,8 +510,8 @@ static void TDREND_Clear_Update_flags( *---------------------------------------------------------------------*/ static void TDREND_Update_object_positions( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - float output[][L_FRAME48k] /* i/o: SCE/MC channels */ + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + float output[][L_FRAME48k] /* i/o: SCE/MC channels */ ) { TDREND_DirAtten_t *DirAtten_p; @@ -553,11 +553,11 @@ static void TDREND_Update_object_positions( TDREND_MIX_SRC_SetPos( st_ivas->hBinRendererTd, nS, Pos ); TDREND_MIX_SRC_SetDirAtten( st_ivas->hBinRendererTd, nS, DirAtten_p ); TDREND_MIX_SRC_SetPlayState( st_ivas->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); - + TDREND_MIX_SRC_SetDir( st_ivas->hBinRendererTd, nS, Dir ); } } - + return; } @@ -568,8 +568,8 @@ static void TDREND_Update_object_positions( *---------------------------------------------------------------------*/ static void TDREND_Update_listener_orientation( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - const int16_t subframe_idx /* i: subframe index*/ + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t subframe_idx /* i: subframe index*/ ) { float Pos[3]; diff --git a/lib_dec/ivas_objectRenderer_hrFilt.c b/lib_dec/ivas_objectRenderer_hrFilt.c index 1c0afd9eda..404be200e2 100644 --- a/lib_dec/ivas_objectRenderer_hrFilt.c +++ b/lib_dec/ivas_objectRenderer_hrFilt.c @@ -344,9 +344,9 @@ void TDREND_HRFILT_SetFiltSet( ivas_error TDREND_REND_RenderSourceHRFilt( #ifdef FIX_I106_TDREND_5MS - TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ + TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ #else - const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ + const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ #endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ @@ -359,7 +359,7 @@ ivas_error TDREND_REND_RenderSourceHRFilt( const int16_t output_frame, /* i : Output frame length in use */ #endif - const int32_t output_Fs /* i : Output sample rate */ + const int32_t output_Fs /* i : Output sample rate */ ) { TDREND_SRC_REND_t *SrcRend_p; @@ -406,7 +406,7 @@ ivas_error TDREND_REND_RenderSourceHRFilt( v_add( LeftOutputFrame, output_buf[0], output_buf[0], subframe_length ); v_add( RightOutputFrame, output_buf[1], output_buf[1], subframe_length ); - Src_p->InputFrame_p += subframe_length; /* Increment input pointer -- todo: should we remove this and input the current subframe instead? */ + Src_p->InputFrame_p += subframe_length; /* Increment input pointer -- todo: should we remove this and input the current subframe instead? */ #else LeftOutputFrame_p = LeftOutputFrame; diff --git a/lib_dec/ivas_objectRenderer_sfx.c b/lib_dec/ivas_objectRenderer_sfx.c index b8d2befc37..442091db0f 100644 --- a/lib_dec/ivas_objectRenderer_sfx.c +++ b/lib_dec/ivas_objectRenderer_sfx.c @@ -1025,10 +1025,10 @@ void TDREND_SFX_SpatBin_Execute_Main( --------------------------------------------------------------------*/ static void TDREND_SFX_SpatBin_Execute( - SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ - const float *InBuffer_p, /* i : Input buffer */ + SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ + const float *InBuffer_p, /* i : Input buffer */ #ifdef DEBUGGING - const int16_t NoOfInputSamples, /* i : Length of input buffer */ + const int16_t NoOfInputSamples, /* i : Length of input buffer */ #endif const int16_t NoOfRequestedOutputSamples, /* i : Length of output */ float *LeftOutBuffer_p, /* o : Rendered left channel */ diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index fea12053c3..491a88da3f 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -92,7 +92,7 @@ void stereo_dft_dec_sid_coh( #ifdef ALIGN_SID_SIZE /* TODO: still use old number of bits to keep bitexactness in output */ - nr_of_sid_stereo_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + nr_of_sid_stereo_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 96b5ba8777..08c45af220 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -115,7 +115,6 @@ ivas_error ivas_cpe_enc( input_Fs = hEncoderConfig->input_Fs; ivas_total_brate = hEncoderConfig->ivas_total_brate; - /*------------------------------------------------------------------* * Initialization - general *-----------------------------------------------------------------*/ diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 1657665f99..4a4c24fa4e 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -238,13 +238,11 @@ ivas_error ivas_sce_enc( * Encoder *----------------------------------------------------------------*/ - if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, - flag_16k_smc ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, flag_16k_smc ) ) != IVAS_ERR_OK ) { return error; } - /*----------------------------------------------------------------* * Common updates *----------------------------------------------------------------*/ diff --git a/lib_enc/ivas_stereo_cng_enc.c b/lib_enc/ivas_stereo_cng_enc.c index 5db60b5238..9176f9ad2f 100644 --- a/lib_enc/ivas_stereo_cng_enc.c +++ b/lib_enc/ivas_stereo_cng_enc.c @@ -150,7 +150,7 @@ void stereo_dft_enc_sid_coh( #ifdef ALIGN_SID_SIZE /* TODO: still use old number of bits to keep bitexactness in output */ - nr_of_sid_stereo_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + nr_of_sid_stereo_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; #endif -- GitLab From 629a214804ed5a45a79243e47c5380b55b18b1b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Thu, 29 Sep 2022 16:18:54 +0200 Subject: [PATCH 142/479] pytest: adjust coverage-test-on-main-scheduled to use pytest --- .gitlab-ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0f62a3ab76..a16cdc3666 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -629,9 +629,10 @@ coverage-test-on-main-scheduled: script: - *print-common-info - make GCOV=1 -j - - ./scripts/self_test.py --create -t 1 - - ./scripts/self_test.py --create -t 1 scripts/config/self_test_evs.prm - - ./scripts/ivas_pytests/self_test_b.py --create_only --numprocesses 1 --encref IVAS_cod --decref IVAS_dec --encdut IVAS_cod --decdut IVAS_dec + - python3 tests/create_short_testvectors.py + - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref --ref_encoder_path IVAS_cod --ref_decoder_path IVAS_dec + - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref_part2 --ref_encoder_path IVAS_cod --ref_decoder_path IVAS_dec + - python3 -m pytest tests/test_param_file.py -v -n 0 --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path IVAS_cod --ref_decoder_path IVAS_dec - lcov -c -d obj -o coverage.info - genhtml coverage.info -o coverage artifacts: -- GitLab From 8c63cd97dbb4fa0ec03a60aa522b4724c9d8b131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Thu, 29 Sep 2022 19:50:42 +0200 Subject: [PATCH 143/479] pytest: add --keep_files option --- tests/README.md | 2 ++ tests/conftest.py | 20 +++++++++++++++++ tests/test_param_file.py | 22 ++++++++++++------ tests/test_sba_bs_dec_plc.py | 38 ++++++++++++++++++++++++------- tests/test_sba_bs_enc.py | 43 ++++++++++++++++++++++-------------- 5 files changed, 94 insertions(+), 31 deletions(-) diff --git a/tests/README.md b/tests/README.md index 12f0fe73f5..470542760d 100644 --- a/tests/README.md +++ b/tests/README.md @@ -126,4 +126,6 @@ The custom options are listed as part of the pytest help `pytest -h`. --reference_path=REFERENCE_PATH If specified, use given directory as base directory for reference files. --dut_base_path=DUT_BASE_PATH If specified, use given directory as base data directory for dut files. --param_file=PARAM_FILE If specified, use given param file in test_param_file. +--keep_files By default, the DUT output files of successful tests are deleted. + Use --keep_files to prevent these deletions. ``` diff --git a/tests/conftest.py b/tests/conftest.py index c49b6d3d83..1decc4c7f7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -28,6 +28,11 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ +__doc__ = \ +""" +Pytest customization (configuration and fixtures) for the IVAS codec test suite. +""" + import logging from pathlib import Path import platform @@ -120,6 +125,13 @@ def pytest_addoption(parser): help="If specified, use given param file in test_param_file.", ) + parser.addoption( + "--keep_files", + action="store_true", + help="By default, the DUT output files of successful tests are deleted." + " Use --keep_files to prevent these deletions.", + ) + @pytest.fixture(scope="session", autouse=True) def update_ref(request): @@ -132,6 +144,14 @@ def update_ref(request): return int(request.config.getoption("--update_ref")) +@pytest.fixture(scope="session") +def keep_files(request) -> bool: + """ + Return indication to not delete DUT output files. + """ + return request.config.option.keep_files + + @pytest.fixture(scope="session") def dut_encoder_path(request) -> str: """ diff --git a/tests/test_param_file.py b/tests/test_param_file.py index e2b1ba7aa1..f690c67fec 100644 --- a/tests/test_param_file.py +++ b/tests/test_param_file.py @@ -1,7 +1,3 @@ -""" -Execute tests specified via a parameter file. -""" - __copyright__ = """ (C) 2022 Baseline Development Group with portions copyright Dolby International AB, Ericsson AB, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., @@ -28,11 +24,16 @@ accordance with the laws of the Federal Republic of Germany excluding its confli the United Nations Convention on Contracts on the International Sales of Goods. """ +__doc__ = \ +""" +Execute tests specified via a parameter file. +""" + import os import errno -import pytest import platform from subprocess import run +import pytest from cmp_custom import cmp_custom from conftest import EncoderFrontend, DecoderFrontend from testconfig import PARAM_FILE @@ -123,6 +124,7 @@ def test_param_file_tests( test_vector_path, update_ref, rootdir, + keep_files, test_tag, ): enc_opts, dec_opts, sim_opts = param_file_test_dict[test_tag] @@ -271,8 +273,14 @@ def test_param_file_tests( f"{reference_path}/param_file/dec/{output_file}", ) - # clean-up - # TODO: consider removing DUT output files when test result is OK (to save disk space) + # remove DUT output files when test result is OK (to save disk space) + if not keep_files: + os.remove(f"{dut_base_path}/param_file/enc/{bitstream_file}") + os.remove(f"{dut_base_path}/param_file/dec/{output_file}") + if sim_opts != "": + os.remove(f"{dut_base_path}/param_file/enc/{testv_base}_{tag_str}.192") + os.remove(f"{dut_base_path}/param_file/enc/{netsim_trace_outfile}") + os.remove(f"{dut_base_path}/param_file/dec/{tracefile_dec}") def encode( diff --git a/tests/test_sba_bs_dec_plc.py b/tests/test_sba_bs_dec_plc.py index aa317fa07f..3922eed840 100644 --- a/tests/test_sba_bs_dec_plc.py +++ b/tests/test_sba_bs_dec_plc.py @@ -28,11 +28,16 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ +__doc__ = \ +""" +Execute SBA decoder tests using different PLC patterns. +""" + import os -import pytest import errno +import pytest -from cmp_custom import cmp_custom +from cmp_custom import cmp_custom from conftest import DecoderFrontend #params @@ -75,6 +80,7 @@ def test_sba_plc_system( dut_base_path, ref_decoder_path, update_ref, + keep_files, ivas_br, dtx, tag, @@ -85,7 +91,21 @@ def test_sba_plc_system( tag = tag + fs + 'c' #dec - sba_dec_plc(dut_decoder_frontend, test_vector_path, reference_path, dut_base_path, ref_decoder_path, tag, fs, ivas_br, dtx, plc_pattern, update_ref, agc) + sba_dec_plc( + dut_decoder_frontend, + test_vector_path, + reference_path, + dut_base_path, + ref_decoder_path, + tag, + fs, + ivas_br, + dtx, + plc_pattern, + update_ref, + agc, + keep_files, + ) ######################################################### @@ -102,7 +122,8 @@ def sba_dec_plc( dtx, plc_pattern, update_ref, - agc + agc, + keep_files, ): ######### run cmd ##################################### @@ -159,8 +180,9 @@ def sba_dec_plc( end_skip_samples ) - ##File removal## - os.remove(dut_out_raw) - - ##report failure + # report compare result assert cmp_result == 0, reason + + # remove DUT output files when test result is OK (to save disk space) + if not keep_files: + os.remove(dut_out_raw) diff --git a/tests/test_sba_bs_enc.py b/tests/test_sba_bs_enc.py index 15973b5332..048a7e46ab 100644 --- a/tests/test_sba_bs_enc.py +++ b/tests/test_sba_bs_enc.py @@ -28,14 +28,15 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ +__doc__ = \ """ Test file to run C encoder and decoder code. The outputs are compared with C generated references. """ import os -import pytest import errno +import pytest from cmp_custom import cmp_custom from cut_pcm import cut_samples @@ -86,9 +87,10 @@ def test_bypass_enc( ref_encoder_path, ref_decoder_path, update_ref, + keep_files, tag, fs, - bypass + bypass, ): if update_ref == 1 and bypass == 1: pytest.skip() @@ -133,7 +135,8 @@ def test_bypass_enc( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) @@ -152,11 +155,12 @@ def test_sba_enc_system( ref_encoder_path, ref_decoder_path, update_ref, + keep_files, ivas_br, dtx, tag, fs, - agc + agc, ): tag = tag + fs + 'c' max_bw = "FB" @@ -202,7 +206,8 @@ def test_sba_enc_system( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) @pytest.mark.create_ref @@ -217,8 +222,9 @@ def test_spar_hoa2_enc_system( ref_encoder_path, ref_decoder_path, update_ref, + keep_files, ivas_br, - tag + tag, ): fs = '48' dtx = '0' @@ -263,7 +269,8 @@ def test_spar_hoa2_enc_system( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) @pytest.mark.create_ref @@ -278,8 +285,9 @@ def test_spar_hoa3_enc_system( ref_encoder_path, ref_decoder_path, update_ref, + keep_files, ivas_br, - tag + tag, ): fs = '48' dtx = '0' @@ -324,7 +332,8 @@ def test_spar_hoa3_enc_system( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) @pytest.mark.create_ref @@ -341,10 +350,11 @@ def test_sba_enc_BWforce_system( ref_encoder_path, ref_decoder_path, update_ref, + keep_files, ivas_br, dtx, tag, - sample_rate_bw_idx + sample_rate_bw_idx, ): fs = sample_rate_bw_idx[0] bw = sample_rate_bw_idx[1] @@ -386,7 +396,8 @@ def test_sba_enc_BWforce_system( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) @@ -515,7 +526,7 @@ def sba_dec( agc, output_config, update_ref, - keep_files=False + keep_files, ): ######### run cmd ##################################### @@ -581,10 +592,10 @@ def sba_dec( end_skip_samples ) - ##File removal## + # report compare result + assert cmp_result == 0, reason + + # remove DUT output files when test result is OK (to save disk space) if not keep_files: os.remove(dut_in_pkt) os.remove(dut_out_raw) - - ##report failure - assert cmp_result == 0, reason -- GitLab From 48cd18779e99edd3be394932b7f931ae522bf4ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Thu, 29 Sep 2022 20:32:34 +0200 Subject: [PATCH 144/479] pytest: remove leading whitespace in copyright notice to reduce the number of pylint warnings --- tests/cmp_custom.py | 58 +++++++++++++++---------------- tests/conftest.py | 55 +++++++++++++++-------------- tests/create_short_testvectors.py | 56 ++++++++++++++--------------- tests/cut_pcm.py | 6 ++-- tests/run_pytests.py | 56 +++++++++++++++-------------- tests/test_param_file.py | 27 ++++++++------ tests/test_sba_bs_dec_plc.py | 55 +++++++++++++++-------------- tests/test_sba_bs_enc.py | 55 +++++++++++++++-------------- tests/testconfig.py | 6 ++-- 9 files changed, 194 insertions(+), 180 deletions(-) diff --git a/tests/cmp_custom.py b/tests/cmp_custom.py index 408d6408cd..ab22bc0ceb 100755 --- a/tests/cmp_custom.py +++ b/tests/cmp_custom.py @@ -1,34 +1,34 @@ #!/usr/bin/env python3 -__license__ = \ +__copyright__ = \ """ - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. """ __doc__ = \ @@ -193,7 +193,7 @@ def cmp_custom( def main(argv) -> int: if len(argv) < 5: return usage() - retval, reason = cmp_custom(*argv[1:]) + retval, _reason = cmp_custom(*argv[1:]) return retval diff --git a/tests/conftest.py b/tests/conftest.py index 1decc4c7f7..da1c26e54a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,31 +1,32 @@ +__copyright__ = \ """ - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. """ __doc__ = \ diff --git a/tests/create_short_testvectors.py b/tests/create_short_testvectors.py index 8cff1566b3..13afe8a422 100755 --- a/tests/create_short_testvectors.py +++ b/tests/create_short_testvectors.py @@ -1,34 +1,34 @@ #!/usr/bin/env python3 -__license__ = \ +__copyright__ = \ """ - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. """ __doc__ = \ diff --git a/tests/cut_pcm.py b/tests/cut_pcm.py index 62af257a73..938cb6fc43 100755 --- a/tests/cut_pcm.py +++ b/tests/cut_pcm.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 -__license__ = """ +__copyright__ = \ +""" (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, @@ -30,7 +31,8 @@ accordance with the laws of the Federal Republic of Germany excluding its confli the United Nations Convention on Contracts on the International Sales of Goods. """ -__doc__ = """ +__doc__ = \ +""" Script to cut samples from a 16-bit PCM file. USAGE : cut_pcm.py in_file_pcm out_file_pcm num_channels sample_rate start duration [gain] diff --git a/tests/run_pytests.py b/tests/run_pytests.py index cd94d27a1f..b23be3fa14 100755 --- a/tests/run_pytests.py +++ b/tests/run_pytests.py @@ -1,35 +1,37 @@ #!/usr/bin/env python3 +__copyright__ = \ """ - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. """ +__doc__ = \ """ Script to run the pytest tests. diff --git a/tests/test_param_file.py b/tests/test_param_file.py index f690c67fec..730acd5c00 100644 --- a/tests/test_param_file.py +++ b/tests/test_param_file.py @@ -1,22 +1,27 @@ -__copyright__ = """ -(C) 2022 Baseline Development Group with portions copyright Dolby International AB, Ericsson AB, +__copyright__ = \ +""" +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, -Panasonic Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation. All Rights Reserved. +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. This software is protected by copyright law and by international treaties. -The Baseline Development Group consisting of Dolby International AB, Ericsson AB, +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, -Panasonic Corporation, Qualcomm Technologies, Inc., and VoiceAge Corporation retain full ownership -rights in their respective contributions in the software. No license of any kind, including but not -limited to patent license, of any foregoing parties is hereby granted by implication, estoppel or -otherwise. +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. This software is provided "AS IS", without any express or implied warranties. The software is in the development stage. It is intended exclusively for experts who have experience with such software and solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and/or fitness for a particular purpose are hereby disclaimed and excluded. +and fitness for a particular purpose are hereby disclaimed and excluded. Any dispute, controversy or claim arising under or in relation to providing this software shall be submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in diff --git a/tests/test_sba_bs_dec_plc.py b/tests/test_sba_bs_dec_plc.py index 3922eed840..58be07ec33 100644 --- a/tests/test_sba_bs_dec_plc.py +++ b/tests/test_sba_bs_dec_plc.py @@ -1,31 +1,32 @@ +__copyright__ = \ """ - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. """ __doc__ = \ diff --git a/tests/test_sba_bs_enc.py b/tests/test_sba_bs_enc.py index 048a7e46ab..3999164020 100644 --- a/tests/test_sba_bs_enc.py +++ b/tests/test_sba_bs_enc.py @@ -1,31 +1,32 @@ +__copyright__ = \ """ - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. """ __doc__ = \ diff --git a/tests/testconfig.py b/tests/testconfig.py index 9837764910..f4827a004f 100644 --- a/tests/testconfig.py +++ b/tests/testconfig.py @@ -1,4 +1,5 @@ -__license__ = """ +__copyright__ = \ +""" (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, @@ -28,7 +29,8 @@ accordance with the laws of the Federal Republic of Germany excluding its confli the United Nations Convention on Contracts on the International Sales of Goods. """ -__doc__ = """ +__doc__ = \ +""" To configure test modules. """ -- GitLab From b2ca4103c85832476f66ecaf32fc4e14f9b13fad Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 30 Sep 2022 10:52:22 +0200 Subject: [PATCH 145/479] correct start of fade to zero --- lib_com/ivas_cnst.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index a70e69b32a..020d1bdc1d 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -810,7 +810,7 @@ enum fea_names #define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f #ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS -#define MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME 1 * FRAMES_PER_SEC +#define MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME 2 * FRAMES_PER_SEC #define MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN 20 #endif -- GitLab From b63baaeffd9fce0718286f6be9c34d0faca600c2 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 30 Sep 2022 10:54:25 +0200 Subject: [PATCH 146/479] activate MDCT-ST fadeout contribution switches --- lib_com/options.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 7a6569aa31..3c30e33d86 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -142,8 +142,8 @@ #define DISABLE_ADAP_RES_COD_TMP /* temporary fix for IVAS-403, disables adaptive residual coding */ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -/*#define MDCT_STEREO_PLC_FADE_2_BG_NOISE*/ /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ -/*#define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS*/ +#define MDCT_STEREO_PLC_FADE_2_BG_NOISE /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ +#define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ -- GitLab From 688b860cfae2e130c589236086de584731d03613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Fri, 30 Sep 2022 11:47:25 +0200 Subject: [PATCH 147/479] pytest: add prepare_pytests.py to complement modified run_pytests.py for local development --- tests/README.md | 41 ++++++++++++- tests/prepare_pytests.py | 123 +++++++++++++++++++++++++++++++++++++++ tests/run_pytests.py | 60 +++++-------------- 3 files changed, 178 insertions(+), 46 deletions(-) create mode 100755 tests/prepare_pytests.py diff --git a/tests/README.md b/tests/README.md index 470542760d..b87587798d 100644 --- a/tests/README.md +++ b/tests/README.md @@ -50,7 +50,7 @@ The tests rely on references which need to be generated upfront using reference When the reference binaries are named `IVAS_cod_ref(.exe)` and `IVAS_dec_ref(.exe)`, pytest will find and use them. When the reference binaries are named differently, you need to specify them via the `--ref_encoder_path` and `--ref_decoder_path` options. -The tests will used the binaries `IVAS_cod(.exe)` and `IVAS_dec(.exe)` for testing. Please make sure that the binaries have been built before running the tests. +The tests will use the binaries `IVAS_cod(.exe)` and `IVAS_dec(.exe)` for testing. Please make sure that the binaries have been built before running the tests. When different test binaries are to be used, they can be specified via the `--dut_encoder_path` and `--dut_decoder_path` options. (DUT: Device Under Test) @@ -129,3 +129,42 @@ The custom options are listed as part of the pytest help `pytest -h`. --keep_files By default, the DUT output files of successful tests are deleted. Use --keep_files to prevent these deletions. ``` + +## Helper scripts + +To help with running the tests during development, two scripts are available in the `tests` folder: + +- prepare_pytests.py +- run_pytests.py + +The envisioned development workflow is: + +```bash +# 1. create a new git branch and switch to the branch +git checkout -b new_branch + +# 2. build the REF binaries (here: example for Linux) +make -j + +# 3. use the binaries to generate the references for future tests +# assumption: you want to test your development against the start of the development +tests/prepare_pytests.py +# Note: the script will use the binaries IVAS_cod and IVAS_dec in case IVAS_cod_ref and IVAS_dec_ref are not present + +# 3a. (optional) store REF binaries in case you want to re-run the reference generation at a later stage +cp IVAS_cod IVAS_cod_ref +cp IVAS_dec IVAS_dec_ref + +# 4. do the development changes +edit ... + +# 5. build the DUT binaries (here: example for Linux) +make -j + +# 6. run the tests +tests/run_pytests.py + +# 7. depending on the test result +# - either go back to 4. +# - or commit and push your changes +``` diff --git a/tests/prepare_pytests.py b/tests/prepare_pytests.py new file mode 100755 index 0000000000..dec9d63fa9 --- /dev/null +++ b/tests/prepare_pytests.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 + +__copyright__ = """ +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. +""" + +__doc__ = """ +Script to prepare the pytest tests. +""" + +import os +import sys +import argparse +import subprocess +import platform + +from pathlib import Path +from create_short_testvectors import create_short_testvectors + +BIN_EXT = ".exe" if platform.system() == "Windows" else "" +HERE = Path(__file__).parent.resolve() +DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../IVAS_cod{BIN_EXT}").resolve()) +DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../IVAS_dec{BIN_EXT}").resolve()) +DEFAULT_ENCODER_REF = str(HERE.joinpath(f"../IVAS_cod_ref{BIN_EXT}").resolve()) +DEFAULT_DECODER_REF = str(HERE.joinpath(f"../IVAS_dec_ref{BIN_EXT}").resolve()) +REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) + + +def main(argv): + """ + Prepare the pytest tests. + """ + # check for python >= 3.7 + if sys.version_info[0] < 3 or sys.version_info[1] < 7: + sys.exit("This script is written for Python >= 3.7. Found: " + platform.python_version()) + + parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument( + "--numprocesses", + action="store", + default="auto", + help="Number of processes to use in pytest (default: auto)", + ) + + args = parser.parse_args(argv[1:]) + + use_dut_binaries = False + + # check for existing references + if os.path.exists(REFERENCE_DIR): + sys.exit( + f"Found existing references directory {REFERENCE_DIR}.\n" + "Please delete this directory if you want the references to be recreated." + ) + + # check for DUT binaries + if not os.path.exists(DEFAULT_ENCODER_DUT) or not os.path.exists(DEFAULT_DECODER_DUT): + sys.exit( + f"Need DUT binaries {DEFAULT_ENCODER_DUT} and {DEFAULT_DECODER_DUT}.\n" + "Please create the binaries." + ) + + # check for REF binaries + if not os.path.exists(DEFAULT_ENCODER_REF) or not os.path.exists(DEFAULT_DECODER_REF): + print(f"REF binaries {DEFAULT_ENCODER_REF} and {DEFAULT_DECODER_REF} not found.") + print("DUT binaries will be used for reference generation.") + use_dut_binaries = True + + # create references + print(f"Creating references within the references directory {REFERENCE_DIR}.") + create_short_testvectors() + if platform.system() == "Windows": + base_cmd = ["pytest"] + else: + base_cmd = ["python3", "-m", "pytest"] + base_cmd += [ + "tests", + "-n", + args.numprocesses, + "--update_ref", + "1", + ] + if use_dut_binaries: + base_cmd += [ + "--ref_encoder_path", + DEFAULT_ENCODER_DUT, + "--ref_decoder_path", + DEFAULT_DECODER_DUT, + ] + + result = subprocess.run(base_cmd + ["-m", "create_ref"], check=False) + result = subprocess.run(base_cmd + ["-m", "create_ref_part2"], check=False) + return result.returncode + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/tests/run_pytests.py b/tests/run_pytests.py index b23be3fa14..4d693f3559 100755 --- a/tests/run_pytests.py +++ b/tests/run_pytests.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 -__copyright__ = \ -""" +__copyright__ = """ (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, @@ -31,8 +30,7 @@ accordance with the laws of the Federal Republic of Germany excluding its confli the United Nations Convention on Contracts on the International Sales of Goods. """ -__doc__ = \ -""" +__doc__ = """ Script to run the pytest tests. Test prerequisites are checked for and check failures are reported. @@ -46,30 +44,22 @@ import subprocess import platform from pathlib import Path -sys.path.append('tests/') -from create_short_testvectors import create_short_testvectors - BIN_EXT = ".exe" if platform.system() == "Windows" else "" HERE = Path(__file__).parent.resolve() DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../IVAS_cod{BIN_EXT}").resolve()) DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../IVAS_dec{BIN_EXT}").resolve()) -DEFAULT_ENCODER_REF = str(HERE.joinpath(f"../IVAS_cod_ref{BIN_EXT}").resolve()) -DEFAULT_DECODER_REF = str(HERE.joinpath(f"../IVAS_dec_ref{BIN_EXT}").resolve()) REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) def main(argv): + """ + Run the pytest tests. + """ # check for python >= 3.7 if sys.version_info[0] < 3 or sys.version_info[1] < 7: sys.exit("This script is written for Python >= 3.7. Found: " + platform.python_version()) parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument( - "--create_only", - action="store_true", - default=False, - help="Create references when needed, but don't run the tests" - ) parser.add_argument( "--numprocesses", action="store", @@ -79,38 +69,18 @@ def main(argv): args = parser.parse_args(argv[1:]) + # check for references + if not os.path.exists(REFERENCE_DIR): + sys.exit( + f"References directory {REFERENCE_DIR} not found.\n" "Please create the references." + ) + # check for DUT binaries if not os.path.exists(DEFAULT_ENCODER_DUT) or not os.path.exists(DEFAULT_DECODER_DUT): - sys.exit(f"Need DUT binaries {DEFAULT_ENCODER_DUT} and {DEFAULT_DECODER_DUT}. Please create the binaries.") - - # check for references - if os.path.exists(REFERENCE_DIR): - print(f"Using existing references directory {REFERENCE_DIR}") - else: - # check for REF binaries - print(f"References directory {REFERENCE_DIR} does not exist.") - if not os.path.exists(DEFAULT_ENCODER_REF) or not os.path.exists(DEFAULT_DECODER_REF): - sys.exit(f"Need REF binaries {DEFAULT_ENCODER_REF} and {DEFAULT_DECODER_REF}. Please create the binaries.") - - # create references - print(f"Creating references within the references directory {REFERENCE_DIR}") - create_short_testvectors() - if platform.system() == "Windows": - base_cmd = ["pytest"] - else: - base_cmd = ["python3", "-m", "pytest"] - base_cmd += [ - "tests", - "-n", - args.numprocesses, - "--update_ref", - "1", - ] - subprocess.run(base_cmd + ["-m", "create_ref"], check=False) - subprocess.run(base_cmd + ["-m", "create_ref_part2"], check=False) - - if args.create_only: - return + sys.exit( + f"Need DUT binaries {DEFAULT_ENCODER_DUT} and {DEFAULT_DECODER_DUT}.\n" + "Please create the binaries." + ) # run pytest if platform.system() == "Windows": -- GitLab From 13d7dce233ffc71317ce90b1b54254c7656edfc5 Mon Sep 17 00:00:00 2001 From: rhb Date: Fri, 30 Sep 2022 12:13:00 +0200 Subject: [PATCH 148/479] reduce dynamic RAM consumption in MCT IGF --- lib_com/options.h | 2 +- lib_com/prot.h | 8 ++++++++ lib_enc/igf_enc.c | 4 ++++ lib_enc/ivas_mct_enc_mct.c | 9 +++++++++ lib_enc/ivas_stereo_mdct_core_enc.c | 9 +++++++++ lib_enc/tcx_utils_enc.c | 4 ++++ 6 files changed, 35 insertions(+), 1 deletion(-) mode change 100644 => 100755 lib_com/options.h mode change 100644 => 100755 lib_com/prot.h mode change 100644 => 100755 lib_enc/igf_enc.c mode change 100644 => 100755 lib_enc/ivas_mct_enc_mct.c mode change 100644 => 100755 lib_enc/ivas_stereo_mdct_core_enc.c mode change 100644 => 100755 lib_enc/tcx_utils_enc.c diff --git a/lib_com/options.h b/lib_com/options.h old mode 100644 new mode 100755 index 3c30e33d86..b0c3079cd5 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -150,7 +150,7 @@ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ - +#define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_com/prot.h b/lib_com/prot.h old mode 100644 new mode 100755 index f793d75bb7..1d3b55633c --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -7396,7 +7396,11 @@ void ProcessStereoIGF( Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ +#ifdef DRAM_REDUCTION_MCT_IGF + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ +#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i : inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subframe*/ @@ -9794,7 +9798,11 @@ void IGFEncApplyStereo( const IGF_ENC_INSTANCE_HANDLE hIGFEnc[CPE_CHANNELS], /* i : instance handle of IGF Encoder */ const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ +#ifdef DRAM_REDUCTION_MCT_IGF + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i/o: inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subframe */ diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c old mode 100644 new mode 100755 index 2cf98207bb..ac69fa2ed8 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -1852,7 +1852,11 @@ void IGFEncApplyStereo( const IGF_ENC_INSTANCE_HANDLE hIGFEnc[CPE_CHANNELS], /* i : instance handle of IGF Encoder */ const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ +#ifdef DRAM_REDUCTION_MCT_IGF + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i/o: inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subfr. */ diff --git a/lib_enc/ivas_mct_enc_mct.c b/lib_enc/ivas_mct_enc_mct.c old mode 100644 new mode 100755 index 62ff9be888..309a023fe7 --- a/lib_enc/ivas_mct_enc_mct.c +++ b/lib_enc/ivas_mct_enc_mct.c @@ -834,7 +834,11 @@ void mctStereoIGF_enc( float *p_powerSpecMsInv[CPE_CHANNELS][NB_DIV]; float *p_inv_spectrum[CPE_CHANNELS][NB_DIV]; float *p_orig_spectrum[CPE_CHANNELS][NB_DIV]; +#ifdef DRAM_REDUCTION_MCT_IGF + float *p_powerSpec[NB_DIV]; +#else float p_powerSpec[NB_DIV][N_MAX]; +#endif int16_t singleChEle[MCT_MAX_CHANNELS]; L_subframeTCX = 0; /* to avoid compilation warning */ @@ -855,10 +859,15 @@ void mctStereoIGF_enc( p_st[0] = sts[ch1]; p_st[1] = sts[ch2]; +#ifdef DRAM_REDUCTION_MCT_IGF + p_powerSpec[0] = powerSpec[ch1]; + p_powerSpec[1] = powerSpec[ch2]; +#else mvr2r( powerSpec[ch1], p_powerSpec[0], L_FRAME48k ); set_f( &p_powerSpec[0][L_FRAME48k], 0.f, N_MAX - L_FRAME48k ); mvr2r( powerSpec[ch2], p_powerSpec[1], L_FRAME48k ); set_f( &p_powerSpec[1][L_FRAME48k], 0.f, N_MAX - L_FRAME48k ); +#endif /* Band-wise M/S for MDST */ nSubframes = p_st[0]->hTcxEnc->tcxMode == TCX_20 ? 1 : NB_DIV; diff --git a/lib_enc/ivas_stereo_mdct_core_enc.c b/lib_enc/ivas_stereo_mdct_core_enc.c old mode 100644 new mode 100755 index c41df7b24e..664998967c --- a/lib_enc/ivas_stereo_mdct_core_enc.c +++ b/lib_enc/ivas_stereo_mdct_core_enc.c @@ -129,6 +129,9 @@ void stereo_mdct_core_enc( float *p_orig_spectrum_long[CPE_CHANNELS], orig_spectrum_long[CPE_CHANNELS][N_MAX]; /* MDCT output (L/R). */ float *orig_spectrum[CPE_CHANNELS][2]; /* Pointers to MDCT output for a short block (L/R) */ float powerSpec[CPE_CHANNELS][N_MAX]; +#ifdef DRAM_REDUCTION_MCT_IGF + float *p_powerSpec[CPE_CHANNELS]; +#endif float powerSpecMsInv_long[CPE_CHANNELS][N_MAX]; /* MS inv power spectrum, also inverse MDST spectrum */ float *powerSpecMsInv[CPE_CHANNELS][2]; float quantized_spectrum_long[CPE_CHANNELS][N_MAX]; /* quantized MDCT spectrum, inv ms mask mdst spectrum, scratch for MS spectra in the MS decision */ @@ -351,7 +354,13 @@ void stereo_mdct_core_enc( hStereoMdct->mdct_stereo_mode[n] == SMDCT_BW_MS ) && !hStereoMdct->isSBAStereoMode ) { +#ifdef DRAM_REDUCTION_MCT_IGF + p_powerSpec[0] = powerSpec[0]; + p_powerSpec[1] = powerSpec[1]; + ProcessStereoIGF( hStereoMdct, sts, ms_mask, orig_spectrum, p_powerSpec, powerSpecMsInv, inv_spectrum, n, hCPE->hCoreCoder[0]->sp_aud_decision0, hCPE->hCoreCoder[0]->element_brate, 0 ); +#else ProcessStereoIGF( hStereoMdct, sts, ms_mask, orig_spectrum, powerSpec, powerSpecMsInv, inv_spectrum, n, hCPE->hCoreCoder[0]->sp_aud_decision0, hCPE->hCoreCoder[0]->element_brate, 0 ); +#endif } else { diff --git a/lib_enc/tcx_utils_enc.c b/lib_enc/tcx_utils_enc.c old mode 100644 new mode 100755 index ca88663355..6ced5b3f94 --- a/lib_enc/tcx_utils_enc.c +++ b/lib_enc/tcx_utils_enc.c @@ -1509,7 +1509,11 @@ void ProcessStereoIGF( Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ +#ifdef DRAM_REDUCTION_MCT_IGF + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ +#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i : inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subfr. */ -- GitLab From 37cc900f79603ba5675b6c4a59273eab8b71fc7e Mon Sep 17 00:00:00 2001 From: rhb Date: Fri, 30 Sep 2022 12:19:33 +0200 Subject: [PATCH 149/479] some minor formatting --- lib_com/prot.h | 6 +++--- lib_enc/igf_enc.c | 4 ++-- lib_enc/tcx_utils_enc.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib_com/prot.h b/lib_com/prot.h index 1d3b55633c..86e9e172e3 100755 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -7397,7 +7397,7 @@ void ProcessStereoIGF( int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ #ifdef DRAM_REDUCTION_MCT_IGF - float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ #else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ #endif @@ -7406,7 +7406,7 @@ void ProcessStereoIGF( const int16_t frameno, /* i : flag indicating index of current subframe*/ const int16_t sp_aud_decision0, /* i : sp_aud_decision0 */ const int32_t element_brate, /* i : element bitrate */ - const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ + const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ ); void AnalyzePowerSpectrum( @@ -9799,7 +9799,7 @@ void IGFEncApplyStereo( const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ #ifdef DRAM_REDUCTION_MCT_IGF - float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ #else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ #endif diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c index ac69fa2ed8..7b658908b5 100755 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -1853,7 +1853,7 @@ void IGFEncApplyStereo( const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ #ifdef DRAM_REDUCTION_MCT_IGF - float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ #else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ #endif @@ -1862,7 +1862,7 @@ void IGFEncApplyStereo( const int16_t frameno, /* i : flag indicating index of current subfr. */ const int16_t sp_aud_decision0, /* i : sp_aud_decision0 */ const int32_t element_brate, /* i : element bitrate */ - const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ + const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ ) { float *pPowerSpectrumParameter[2]; /* If it is NULL it informs a function that specific handling is needed */ diff --git a/lib_enc/tcx_utils_enc.c b/lib_enc/tcx_utils_enc.c index 6ced5b3f94..9b272f0dee 100755 --- a/lib_enc/tcx_utils_enc.c +++ b/lib_enc/tcx_utils_enc.c @@ -1510,7 +1510,7 @@ void ProcessStereoIGF( int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ #ifdef DRAM_REDUCTION_MCT_IGF - float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ #else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ #endif -- GitLab From c5372f0b9e9c66ed2b70da4083670a6c84eeb599 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 30 Sep 2022 12:34:32 +0200 Subject: [PATCH 150/479] fix warnings on windows --- lib_com/ivas_prot.h | 2 +- lib_dec/tonalMDCTconcealment.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index eafa392c8c..bfef844788 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -5458,7 +5458,7 @@ void TonalMdctConceal_create_concealment_noise( const int16_t idchan, const int16_t subframe_idx, const int16_t core, - const int16_t crossfade_gain, + const float crossfade_gain, const TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode ); diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 872cf1efa9..776d28bcb5 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -1001,7 +1001,7 @@ void TonalMdctConceal_create_concealment_noise( const int16_t idchan, const int16_t subframe_idx, const int16_t core, - const int16_t crossfade_gain, + const float crossfade_gain, const TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode ) { STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct; @@ -1191,7 +1191,7 @@ void TonalMdctConceal_whiten_noise_shape( sns_interpolate_scalefactors( scfs_bg, scf, DEC ); scfs_for_shaping = &scfs_int[0]; } - else if ( whitening_mode == ON_FIRST_GOOD_FRAME ) + else /* whitening_mode == ON_FIRST_GOOD_FRAME */ { scfs_for_shaping = &scfs_bg[0]; } -- GitLab From 797a55fc906374ad5c841af1b0519be740ae62b0 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 30 Sep 2022 12:52:19 +0200 Subject: [PATCH 151/479] FIX_I106_TDREND_5MS: Refactoring of new internal functions to remove dependency on decoder struct --- lib_dec/ivas_objectRenderer.c | 54 +++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/lib_dec/ivas_objectRenderer.c b/lib_dec/ivas_objectRenderer.c index eb7ee0d733..a6a3f3be70 100644 --- a/lib_dec/ivas_objectRenderer.c +++ b/lib_dec/ivas_objectRenderer.c @@ -53,8 +53,8 @@ static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRenderer #endif static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); #ifdef FIX_I106_TDREND_5MS -static void TDREND_Update_listener_orientation( Decoder_Struct *st_ivas, const int16_t subframe_idx ); -static void TDREND_Update_object_positions( Decoder_Struct *st_ivas, float output[][L_FRAME48k] ); +static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, const Quaternion headPosition ); +static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t numSources, const IVAS_FORMAT in_format, const ISM_METADATA_HANDLE *hIsmMetaData, float output[][L_FRAME48k] ); #endif /*---------------------------------------------------------------------* @@ -342,12 +342,12 @@ void ObjRenderIVASFrame( #ifdef FIX_I106_TDREND_5MS /* Update object position(s) */ - TDREND_Update_object_positions( st_ivas, output ); + TDREND_Update_object_positions( st_ivas->hBinRendererTd, st_ivas->nchan_transport, st_ivas->ivas_format, st_ivas->hIsmMetaData, output ); for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { /* Update the listener's location/orientation */ - TDREND_Update_listener_orientation( st_ivas, subframe_idx ); + TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, st_ivas->hDecoderConfig->Opt_Headrotation, st_ivas->hHeadTrackData->Quaternions[subframe_idx] ); if ( ( st_ivas->hRenderConfig != NULL ) && ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) { @@ -510,8 +510,11 @@ static void TDREND_Clear_Update_flags( *---------------------------------------------------------------------*/ static void TDREND_Update_object_positions( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - float output[][L_FRAME48k] /* i/o: SCE/MC channels */ + BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o : TD Renderer handle */ + const int16_t numSources, /* i : Number of sources to render */ + const IVAS_FORMAT in_format, /* i : Format of input sources */ + const ISM_METADATA_HANDLE *hIsmMetaData, /* i : Input metadata for ISM objects */ + float output[][L_FRAME48k] /* i/o: SCE/MC channels */ ) { TDREND_DirAtten_t *DirAtten_p; @@ -520,27 +523,27 @@ static void TDREND_Update_object_positions( float Dir[3]; int16_t c_indx; - DirAtten_p = st_ivas->hBinRendererTd->DirAtten_p; + DirAtten_p = hBinRendererTd->DirAtten_p; /* For each source, write the frame data to the source object*/ c_indx = 0; - for ( nS = 0; nS < st_ivas->nchan_transport; nS++ ) + for ( nS = 0; nS < numSources; nS++ ) { - if ( !( st_ivas->ivas_format == MC_FORMAT && nS == LFE_CHANNEL ) ) /* Skip LFE for MC */ + if ( !( in_format == MC_FORMAT && nS == LFE_CHANNEL ) ) /* Skip LFE for MC */ { - st_ivas->hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; - st_ivas->hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; + hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; + hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; c_indx++; } - if ( st_ivas->ivas_format == ISM_FORMAT ) + if ( in_format == ISM_FORMAT ) { /* Update the source positions */ /* Source position and direction */ - Pos[0] = cosf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ) * cosf( st_ivas->hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[1] = cosf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ) * sinf( st_ivas->hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[2] = sinf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ); + Pos[0] = cosf( hIsmMetaData[nS]->elevation * PI_OVER_180 ) * cosf( hIsmMetaData[nS]->azimuth * PI_OVER_180 ); + Pos[1] = cosf( hIsmMetaData[nS]->elevation * PI_OVER_180 ) * sinf( hIsmMetaData[nS]->azimuth * PI_OVER_180 ); + Pos[2] = sinf( hIsmMetaData[nS]->elevation * PI_OVER_180 ); Dir[0] = 1.0f; Dir[1] = 0.0f; Dir[2] = 0.0f; @@ -550,11 +553,11 @@ static void TDREND_Update_object_positions( DirAtten_p->ConeOuterAngle = 360.0f; DirAtten_p->ConeOuterGain = 1.0f; - TDREND_MIX_SRC_SetPos( st_ivas->hBinRendererTd, nS, Pos ); - TDREND_MIX_SRC_SetDirAtten( st_ivas->hBinRendererTd, nS, DirAtten_p ); - TDREND_MIX_SRC_SetPlayState( st_ivas->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); + TDREND_MIX_SRC_SetPos( hBinRendererTd, nS, Pos ); + TDREND_MIX_SRC_SetDirAtten( hBinRendererTd, nS, DirAtten_p ); + TDREND_MIX_SRC_SetPlayState( hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); - TDREND_MIX_SRC_SetDir( st_ivas->hBinRendererTd, nS, Dir ); + TDREND_MIX_SRC_SetDir( hBinRendererTd, nS, Dir ); } } @@ -568,8 +571,9 @@ static void TDREND_Update_object_positions( *---------------------------------------------------------------------*/ static void TDREND_Update_listener_orientation( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - const int16_t subframe_idx /* i: subframe index*/ + BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ + const int16_t headRotEnabled, /* i : Headrotation flag */ + const Quaternion headPosition /* i : Head Position */ ) { float Pos[3]; @@ -583,10 +587,10 @@ static void TDREND_Update_listener_orientation( Pos[1] = 0.0f; Pos[2] = 0.0f; - if ( st_ivas->hHeadTrackData != NULL ) + if ( headRotEnabled ) { /* Obtain head rotation matrix */ - QuatToRotMat( st_ivas->hHeadTrackData->Quaternions[subframe_idx], Rmat ); + QuatToRotMat( headPosition, Rmat ); /* Apply rotation matrix to looking vector [1;0;0] */ FrontVec[0] = Rmat[0][0]; FrontVec[1] = Rmat[0][1]; @@ -609,8 +613,8 @@ static void TDREND_Update_listener_orientation( } /* Set the listener position and orientation:*/ - TDREND_MIX_LIST_SetPos( st_ivas->hBinRendererTd, Pos ); - TDREND_MIX_LIST_SetOrient( st_ivas->hBinRendererTd, FrontVec, UpVec ); + TDREND_MIX_LIST_SetPos( hBinRendererTd, Pos ); + TDREND_MIX_LIST_SetOrient( hBinRendererTd, FrontVec, UpVec ); return; } -- GitLab From de3ed031e49b83ee382af97fe3a68ecc3e9eb3ee Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 30 Sep 2022 13:37:20 +0200 Subject: [PATCH 152/479] [fix] use a Quaternion pointer instead --- lib_dec/ivas_objectRenderer.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib_dec/ivas_objectRenderer.c b/lib_dec/ivas_objectRenderer.c index a6a3f3be70..f4df437487 100644 --- a/lib_dec/ivas_objectRenderer.c +++ b/lib_dec/ivas_objectRenderer.c @@ -53,7 +53,7 @@ static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRenderer #endif static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); #ifdef FIX_I106_TDREND_5MS -static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, const Quaternion headPosition ); +static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, const Quaternion *headPosition ); static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t numSources, const IVAS_FORMAT in_format, const ISM_METADATA_HANDLE *hIsmMetaData, float output[][L_FRAME48k] ); #endif @@ -347,7 +347,9 @@ void ObjRenderIVASFrame( for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { /* Update the listener's location/orientation */ - TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, st_ivas->hDecoderConfig->Opt_Headrotation, st_ivas->hHeadTrackData->Quaternions[subframe_idx] ); + TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, + st_ivas->hDecoderConfig->Opt_Headrotation, + ( st_ivas->hHeadTrackData != NULL ) ? &st_ivas->hHeadTrackData->Quaternions[subframe_idx] : NULL ); if ( ( st_ivas->hRenderConfig != NULL ) && ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) { @@ -573,7 +575,7 @@ static void TDREND_Update_object_positions( static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ const int16_t headRotEnabled, /* i : Headrotation flag */ - const Quaternion headPosition /* i : Head Position */ + const Quaternion *headPosition /* i : Head Position */ ) { float Pos[3]; @@ -590,7 +592,7 @@ static void TDREND_Update_listener_orientation( if ( headRotEnabled ) { /* Obtain head rotation matrix */ - QuatToRotMat( headPosition, Rmat ); + QuatToRotMat( *headPosition, Rmat ); /* Apply rotation matrix to looking vector [1;0;0] */ FrontVec[0] = Rmat[0][0]; FrontVec[1] = Rmat[0][1]; -- GitLab From 811bb182562faefba4e19b866272cb105e4bb033 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Fri, 30 Sep 2022 16:20:13 +0200 Subject: [PATCH 153/479] pytest: add --param_file option to prepare_pytests.py and run_pytests.py --- tests/README.md | 3 +++ tests/prepare_pytests.py | 13 +++++++++++-- tests/run_pytests.py | 18 ++++++++++++------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/tests/README.md b/tests/README.md index b87587798d..6ba72e4ace 100644 --- a/tests/README.md +++ b/tests/README.md @@ -168,3 +168,6 @@ tests/run_pytests.py # - either go back to 4. # - or commit and push your changes ``` + +Both scripts allow to restrict the reference generation or the testing to test_param_file tests +with a custom `.prm` file via the `--param_file` option. diff --git a/tests/prepare_pytests.py b/tests/prepare_pytests.py index dec9d63fa9..d1f7495f07 100755 --- a/tests/prepare_pytests.py +++ b/tests/prepare_pytests.py @@ -67,6 +67,11 @@ def main(argv): default="auto", help="Number of processes to use in pytest (default: auto)", ) + parser.add_argument( + "--param_file", + action="store", + help="Restrict reference generation to test_param_file with specified param file.", + ) args = parser.parse_args(argv[1:]) @@ -99,8 +104,11 @@ def main(argv): base_cmd = ["pytest"] else: base_cmd = ["python3", "-m", "pytest"] + if args.param_file: + base_cmd += ["tests/test_param_file.py", "--param_file", args.param_file] + else: + base_cmd += ["tests"] base_cmd += [ - "tests", "-n", args.numprocesses, "--update_ref", @@ -115,7 +123,8 @@ def main(argv): ] result = subprocess.run(base_cmd + ["-m", "create_ref"], check=False) - result = subprocess.run(base_cmd + ["-m", "create_ref_part2"], check=False) + if not args.param_file: + result = subprocess.run(base_cmd + ["-m", "create_ref_part2"], check=False) return result.returncode diff --git a/tests/run_pytests.py b/tests/run_pytests.py index 4d693f3559..1fc6614762 100755 --- a/tests/run_pytests.py +++ b/tests/run_pytests.py @@ -66,13 +66,18 @@ def main(argv): default="auto", help="Number of processes to use in pytest (default: auto)", ) + parser.add_argument( + "--param_file", + action="store", + help="Restrict test run to test_param_file with specified param file.", + ) args = parser.parse_args(argv[1:]) # check for references if not os.path.exists(REFERENCE_DIR): sys.exit( - f"References directory {REFERENCE_DIR} not found.\n" "Please create the references." + f"References directory {REFERENCE_DIR} not found.\nPlease create the references." ) # check for DUT binaries @@ -87,11 +92,12 @@ def main(argv): cmd = ["pytest"] else: cmd = ["python3", "-m", "pytest"] - cmd += [ - "tests", - "-n", - args.numprocesses, - ] + if args.param_file: + cmd += ["tests/test_param_file.py", "--param_file", args.param_file] + else: + cmd += ["tests"] + cmd += ["-n", args.numprocesses] + result = subprocess.run(cmd, check=False) return result.returncode -- GitLab From a984e260a0ccc269a5d8e3595dfbe9f34ee91429 Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Fri, 30 Sep 2022 17:38:07 +0300 Subject: [PATCH 154/479] Implement check for validating that branch is up to date. --- .gitlab-ci.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cbd61ad2dc..be1f78934e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,6 +20,7 @@ workflow: stages: - maintenance + - validate - build - test - compare @@ -105,6 +106,21 @@ stages: - 123 +# --------------------------------------------------------------- +# Validation jobs +# --------------------------------------------------------------- + +check-if-branch-is-up-to-date-with-main: + extends: + - .rules-merge-request + stage: validate + tags: + - ivas-linux + script: + - commits_behind_count=$(git rev-list --count $CI_COMMIT_SHA..$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) + - [ $commits_behind_count -eq 0 ] + + # --------------------------------------------------------------- # Build jobs # --------------------------------------------------------------- -- GitLab From 8c18f38e3717d9d8214c250e94e1e05b123de80c Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Fri, 30 Sep 2022 18:06:24 +0300 Subject: [PATCH 155/479] Update if condition to work better. --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index be1f78934e..519cfd1c08 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -118,7 +118,8 @@ check-if-branch-is-up-to-date-with-main: - ivas-linux script: - commits_behind_count=$(git rev-list --count $CI_COMMIT_SHA..$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) - - [ $commits_behind_count -eq 0 ] + - echo $commits_behind_count + - if [ $commits_behind_count -eq 0 ]; then exit 0; else exit 1; fi; # --------------------------------------------------------------- -- GitLab From 39cb1dbbcef53ead4dedb06d9ee17e8cdbd39191 Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Fri, 30 Sep 2022 18:11:12 +0300 Subject: [PATCH 156/479] Add echo of the branch names in validation --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 519cfd1c08..1ed30fb9b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -117,6 +117,8 @@ check-if-branch-is-up-to-date-with-main: tags: - ivas-linux script: + - echo $CI_COMMIT_SHA + - echo $CI_MERGE_REQUEST_TARGET_BRANCH_NAME - commits_behind_count=$(git rev-list --count $CI_COMMIT_SHA..$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) - echo $commits_behind_count - if [ $commits_behind_count -eq 0 ]; then exit 0; else exit 1; fi; -- GitLab From 3d9e768954c50870fa837777cee11bd082153e32 Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Fri, 30 Sep 2022 18:19:18 +0300 Subject: [PATCH 157/479] Move validate stage as last one but allow up-to-date check start early. --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1ed30fb9b1..24ad1bb366 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,10 +20,10 @@ workflow: stages: - maintenance - - validate - build - test - compare + - validate # --------------------------------------------------------------- # Generic script anchors @@ -114,6 +114,7 @@ check-if-branch-is-up-to-date-with-main: extends: - .rules-merge-request stage: validate + needs: [] tags: - ivas-linux script: -- GitLab From 54eb67468e581eb257a9c78a3e37bd566ef10ed8 Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Fri, 30 Sep 2022 18:39:22 +0300 Subject: [PATCH 158/479] Add origin to the branches when checking commit count --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 24ad1bb366..e9b46c6e7a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -120,7 +120,7 @@ check-if-branch-is-up-to-date-with-main: script: - echo $CI_COMMIT_SHA - echo $CI_MERGE_REQUEST_TARGET_BRANCH_NAME - - commits_behind_count=$(git rev-list --count $CI_COMMIT_SHA..$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) + - commits_behind_count=$(git rev-list --count origin/$CI_COMMIT_SHA..origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) - echo $commits_behind_count - if [ $commits_behind_count -eq 0 ]; then exit 0; else exit 1; fi; -- GitLab From c93282ffe81b50d43e9f681ad974ff600beb22d9 Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Fri, 30 Sep 2022 18:42:04 +0300 Subject: [PATCH 159/479] Change commit SHA to commit branch --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e9b46c6e7a..03fd9911f7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -120,7 +120,7 @@ check-if-branch-is-up-to-date-with-main: script: - echo $CI_COMMIT_SHA - echo $CI_MERGE_REQUEST_TARGET_BRANCH_NAME - - commits_behind_count=$(git rev-list --count origin/$CI_COMMIT_SHA..origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) + - commits_behind_count=$(git rev-list --count origin/$CI_COMMIT_BRANCH..origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) - echo $commits_behind_count - if [ $commits_behind_count -eq 0 ]; then exit 0; else exit 1; fi; -- GitLab From de7912d5d86295e2593dfaae38d24047da32d55d Mon Sep 17 00:00:00 2001 From: Tapani Pihlajakuja Date: Mon, 3 Oct 2022 10:41:15 +0300 Subject: [PATCH 160/479] Revert to using commit SHA but combine with remote target branch. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 03fd9911f7..0b5e5d7d98 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -120,7 +120,7 @@ check-if-branch-is-up-to-date-with-main: script: - echo $CI_COMMIT_SHA - echo $CI_MERGE_REQUEST_TARGET_BRANCH_NAME - - commits_behind_count=$(git rev-list --count origin/$CI_COMMIT_BRANCH..origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) + - commits_behind_count=$(git rev-list --count $CI_COMMIT_SHA..origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME) - echo $commits_behind_count - if [ $commits_behind_count -eq 0 ]; then exit 0; else exit 1; fi; -- GitLab From e1e29cce98d32e0978293e41e4d410f614a5895a Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 3 Oct 2022 12:59:44 +0200 Subject: [PATCH 161/479] Issue 117: fix controllable SID update rate mechanism; under FIX_CONTROLLABLE_SID_UPDATE_RATE --- lib_com/options.h | 2 +- lib_enc/fd_cng_enc.c | 31 +++++++++++-------------------- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 3c30e33d86..b8567b1503 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,7 @@ #define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ - +#define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ diff --git a/lib_enc/fd_cng_enc.c b/lib_enc/fd_cng_enc.c index 670a202df2..2f98addc8d 100644 --- a/lib_enc/fd_cng_enc.c +++ b/lib_enc/fd_cng_enc.c @@ -902,6 +902,12 @@ void stereoFdCngCoherence( sts[0]->core_brate = SID_2k40; sts[1]->core_brate = SID_2k40; } + +#ifdef FIX_CONTROLLABLE_SID_UPDATE_RATE + /* synchronize SID counters */ + sts[0]->hDtxEnc->cnt_SID = min( sts[0]->hDtxEnc->cnt_SID, sts[1]->hDtxEnc->cnt_SID ); + sts[1]->hDtxEnc->cnt_SID = sts[0]->hDtxEnc->cnt_SID; +#endif } pt_fftL = fft_buff[0]; @@ -1002,11 +1008,7 @@ void FdCngEncodeMDCTStereoSID( convertToMS( N, ms_ptr[0], ms_ptr[1], 0.5f ); } - side_energy = 0.0f; - for ( p = 0; p < N; p++ ) - { - side_energy += ms_ptr[1][p] * ms_ptr[1][p]; - } + side_energy = sum2_f( ms_ptr[1], N ); /* do not transmit side shape if initial noise shapes are very similar */ if ( side_energy <= 0.1f ) @@ -1186,18 +1188,11 @@ void FdCngEncodeDiracMDCTStereoSID( /* M/S transform on log envelopes */ convertToMS( NPART, ms_ptr[0], ms_ptr[1], 0.5f ); - E[0] = 0.0f; - for ( p = 0; p < NPART; p++ ) - { - E[0] += ms_ptr[0][p]; - } + E[0] = sum_f( ms_ptr[0], NPART ); + /* Quantize M noise shape */ /* Normalize MSVW input */ - gain[0] = 0.f; - for ( p = N_GAIN_MIN; p < N_GAIN_MAX; p++ ) - { - gain[0] += ms_ptr[0][p]; - } + gain[0] = sum_f( ms_ptr[0] + N_GAIN_MIN, N_GAIN_MAX - N_GAIN_MIN ); gain[0] /= (float) ( N_GAIN_MAX - N_GAIN_MIN ); for ( p = 0; p < N[0]; p++ ) @@ -1213,11 +1208,7 @@ void FdCngEncodeDiracMDCTStereoSID( set_zero( ms_ptr[1], NPART ); /* compute M gain */ - gain[0] = 0.f; - for ( p = 0; p < NPART; p++ ) - { - gain[0] += ms_ptr[0][p]; - } + gain[0] = sum_f( ms_ptr[0], NPART ); gain[0] = ( E[0] - gain[0] ) / (float) N[0]; apply_scale( &gain[0], sts[0]->hFdCngEnc->hFdCngCom->CngBandwidth, sts[0]->hDtxEnc->last_active_brate, scaleTableStereo, SIZE_SCALE_TABLE_STEREO ); -- GitLab From 9152905dde0f20f8080543dec10cd5de4e44657b Mon Sep 17 00:00:00 2001 From: Vladimir Malenovsky Date: Mon, 3 Oct 2022 15:41:24 +0200 Subject: [PATCH 162/479] delimit modifications to IVAS only --- lib_com/prot.h | 32 ------------------- lib_com/swb_bwe_com.c | 17 +---------- lib_com/vlpc_2st_com.c | 42 ++----------------------- lib_dec/core_switching_dec.c | 13 ++------ lib_dec/dlpc_avq.c | 24 ++------------- lib_dec/dlpc_stoch.c | 6 +--- lib_dec/swb_bwe_dec_hr.c | 7 +---- lib_dec/swb_tbe_dec.c | 22 ++----------- lib_dec/updt_dec.c | 7 +---- lib_dec/vlpc_2st_dec.c | 10 +----- lib_enc/core_enc_ol.c | 13 +------- lib_enc/eval_pit_contr.c | 13 +------- lib_enc/frame_spec_dif_cor_rate.c | 18 +---------- lib_enc/igf_enc.c | 51 ++++--------------------------- lib_enc/pre_proc.c | 6 +--- lib_enc/qlpc_avq.c | 24 ++------------- lib_enc/qlpc_stoch.c | 6 +--- lib_enc/swb_bwe_enc.c | 16 +++------- lib_enc/vad_proc.c | 10 +----- lib_enc/vlpc_2st_cod.c | 18 ++--------- 20 files changed, 37 insertions(+), 318 deletions(-) diff --git a/lib_com/prot.h b/lib_com/prot.h index d354c9db2d..974ff88df3 100644 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -2784,10 +2784,6 @@ void calc_tilt_bwe( const float *sp, /* i : input signal */ float *tilt, /* o : signal tilt */ const int16_t N /* i : signal length */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i : IVAS element mode */ -#endif ); void fd_bwe_enc_init( @@ -7087,10 +7083,6 @@ void qlpc_avq( int16_t *nbbits, /* o : Number of quantization bits */ const int16_t core, /* i : core */ const int32_t sr_core /* i : internal sampling rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i" IVAS element mode */ -#endif ); int16_t encode_lpc_avq( @@ -7106,10 +7098,6 @@ int16_t dlpc_avq( float *LSF_Q, /* o : Quantized LSF vectors */ const int16_t numlpc, /* i : Number of sets of lpc */ const int32_t sr_core /* i : internal sampling rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i: IVAS element mode */ -#endif ); int16_t decode_lpc_avq( @@ -7136,10 +7124,6 @@ int16_t vlpc_2st_cod( int16_t *indx, /* o : index[] (4 bits per words) */ const int16_t mode, /* i : 0=abs, >0=rel */ const int32_t sr_core /* i : internal sampling rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i" IVAS element mode */ -#endif ); void vlpc_2st_dec( @@ -7147,10 +7131,6 @@ void vlpc_2st_dec( int16_t *indx, /* i : index[] (4 bits per words) */ const int16_t mode, /* i : 0=abs, >0=rel */ const int32_t sr_core /* i : internal sampling rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i: IVAS element mode */ -#endif ); void lsf_weight_2st( @@ -7158,10 +7138,6 @@ void lsf_weight_2st( float *w, const int16_t mode, const int32_t sr_core -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode -#endif ); void mdct_window_sine( @@ -8392,10 +8368,6 @@ int16_t vad_proc( VAD_CLDFB_HANDLE hVAD_CLDFB, /* i/o: CLDFB VAD state */ int16_t *cldfb_addition, const int16_t vada_flag /* i : VAD flag */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i: IVAS element mode */ -#endif ); void subband_FFT( @@ -8418,10 +8390,6 @@ void frame_spec_dif_cor_rate( float spec_amp[], /* i : spectral amplitude */ float pre_spec_low_dif[], /* i/o: low spectrum different */ float f_tonality_rate[] /* o : tonality rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i: IVAS element mode */ -#endif ); void ltd_stable( diff --git a/lib_com/swb_bwe_com.c b/lib_com/swb_bwe_com.c index c54d343b97..4e692fc22b 100644 --- a/lib_com/swb_bwe_com.c +++ b/lib_com/swb_bwe_com.c @@ -288,10 +288,6 @@ void calc_tilt_bwe( const float *sp, /* i : input signal */ float *tilt, /* o : signal tilt */ const int16_t N /* i : signal length */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i : IVAS element mode */ -#endif ) { int16_t i; @@ -312,18 +308,7 @@ void calc_tilt_bwe( } } -#ifdef FIX_I120_INV_SQRT - if ( element_mode != EVS_MONO ) - { - *tilt = r1 * inv_sqrt( r0 ); - } - else - { -#endif - *tilt = (float) ( r1 / sqrt( r0 ) ); -#ifdef FIX_I120_INV_SQRT - } -#endif + *tilt = (float) ( r1 / sqrt( r0 ) ); return; } diff --git a/lib_com/vlpc_2st_com.c b/lib_com/vlpc_2st_com.c index 3753565678..f027ecd8ea 100644 --- a/lib_com/vlpc_2st_com.c +++ b/lib_com/vlpc_2st_com.c @@ -53,9 +53,6 @@ void lsf_weight_2st( float *w, const int16_t mode, const int32_t sr_core -#ifdef FIX_I120_INV_SQRT - ,const int16_t element_mode -#endif ) { int16_t i; @@ -78,48 +75,15 @@ void lsf_weight_2st( if ( mode == 0 ) { -#ifdef FIX_I120_INV_SQRT - if ( element_mode != EVS_MONO ) - { - w[i] = (float) ( 60.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* abs */ - } - else - { -#endif - w[i] = (float) ( 60.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* abs */ -#ifdef FIX_I120_INV_SQRT - } -#endif + w[i] = (float) ( 60.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* abs */ } else if ( mode == 1 ) { -#ifdef FIX_I120_INV_SQRT - if ( element_mode != EVS_MONO ) - { - w[i] = (float) ( 65.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* mid */ - } - else - { -#endif - w[i] = (float) ( 65.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* mid */ -#ifdef FIX_I120_INV_SQRT - } -#endif + w[i] = (float) ( 65.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* mid */ } else { -#ifdef FIX_I120_INV_SQRT - if ( element_mode != EVS_MONO ) - { - w[i] = (float) ( 63.0f / ( freq_div * inv_sqrt( d[i] * d[i + 1] ) ) ); /* rel2 */ - } - else - { -#endif - w[i] = (float) ( 63.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* rel2 */ -#ifdef FIX_I120_INV_SQRT - } -#endif + w[i] = (float) ( 63.0f / ( freq_div / sqrt( d[i] * d[i + 1] ) ) ); /* rel2 */ } } diff --git a/lib_dec/core_switching_dec.c b/lib_dec/core_switching_dec.c index fe7989ea54..e8c74bc2ef 100644 --- a/lib_dec/core_switching_dec.c +++ b/lib_dec/core_switching_dec.c @@ -1055,11 +1055,7 @@ void bw_switching_pre_proc( #endif { /* Calculate tilt of the ACELP core synthesis - needed in SWB BWE decoding */ - calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame -#ifdef FIX_I120_INV_SQRT - ,st->element_mode -#endif - ); + calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame ); } return; @@ -1071,12 +1067,7 @@ void bw_switching_pre_proc( * Calculate tilt of the ACELP core synthesis *----------------------------------------------------------------------*/ - calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame -#ifdef FIX_I120_INV_SQRT - , - st->element_mode -#endif - ); + calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame ); /*-------------------------------------------------------------------------------* * Calculate frequency energy of 0~3.2kHz and 3.2~6.4kHz the ACELP core synthesis diff --git a/lib_dec/dlpc_avq.c b/lib_dec/dlpc_avq.c index b32315ec38..2a89cdb35c 100644 --- a/lib_dec/dlpc_avq.c +++ b/lib_dec/dlpc_avq.c @@ -51,10 +51,6 @@ int16_t dlpc_avq( float *LSF_Q, /* o : Quantized LSF vectors */ const int16_t numlpc, /* i : Number of sets of lpc */ const int32_t sr_core /* i : internal sampling rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i: IVAS element mode */ -#endif ) { int16_t i, nbi, last; @@ -80,11 +76,7 @@ int16_t dlpc_avq( vlpc_1st_dec( p_index[0], &LSF_Q[last], sr_core ); p_index++; - vlpc_2st_dec( &LSF_Q[last], &p_index[0], 0, sr_core -#ifdef FIX_I120_INV_SQRT - ,element_mode -#endif - ); + vlpc_2st_dec( &LSF_Q[last], &p_index[0], 0, sr_core ); nbi = 2 + p_index[0] + p_index[1]; p_index += nbi; @@ -104,12 +96,7 @@ int16_t dlpc_avq( } vlpc_1st_dec( p_index[0], &LSF_Q[0], sr_core ); p_index++; - vlpc_2st_dec( &LSF_Q[0], &p_index[0], 0, sr_core -#ifdef FIX_I120_INV_SQRT - , - element_mode -#endif - ); + vlpc_2st_dec( &LSF_Q[0], &p_index[0], 0, sr_core ); } else if ( q_type == 1 ) { @@ -118,12 +105,7 @@ int16_t dlpc_avq( LSF_Q[i] = LSF_Q[M + i]; } - vlpc_2st_dec( &LSF_Q[0], &p_index[0], 3, sr_core -#ifdef FIX_I120_INV_SQRT - , - element_mode -#endif - ); + vlpc_2st_dec( &LSF_Q[0], &p_index[0], 3, sr_core ); } nbi = 2 + p_index[0] + p_index[1]; diff --git a/lib_dec/dlpc_stoch.c b/lib_dec/dlpc_stoch.c index 07d0de95a9..21b1ab2d8d 100644 --- a/lib_dec/dlpc_stoch.c +++ b/lib_dec/dlpc_stoch.c @@ -70,11 +70,7 @@ void lpc_unquantize( nb_indices = 0; if ( st->lpcQuantization == 0 ) { - nb_indices = dlpc_avq( param_lpc, &lsf[M], st->numlpc, st->sr_core -#ifdef FIX_I120_INV_SQRT - ,st->element_mode -#endif - ); + nb_indices = dlpc_avq( param_lpc, &lsf[M], st->numlpc, st->sr_core ); for ( k = 0; k < st->numlpc; k++ ) { diff --git a/lib_dec/swb_bwe_dec_hr.c b/lib_dec/swb_bwe_dec_hr.c index b42ad33adf..edfaaf67be 100644 --- a/lib_dec/swb_bwe_dec_hr.c +++ b/lib_dec/swb_bwe_dec_hr.c @@ -103,12 +103,7 @@ void swb_bwe_dec_hr( * calculate tilt of the core synthesis *---------------------------------------------------------------------*/ - calc_tilt_bwe( syn_12k8_16k, &tilt_wb, L_FRAME16k -#ifdef FIX_I120_INV_SQRT - , - st->element_mode -#endif - ); + calc_tilt_bwe( syn_12k8_16k, &tilt_wb, L_FRAME16k ); pitch = sum_f( pitch_buf, NB_SUBFR16k ) + EPSILON; /*---------------------------------------------------------------------* diff --git a/lib_dec/swb_tbe_dec.c b/lib_dec/swb_tbe_dec.c index f4c81147a5..5b602bbfd6 100644 --- a/lib_dec/swb_tbe_dec.c +++ b/lib_dec/swb_tbe_dec.c @@ -529,12 +529,7 @@ void swb_tbe_dec( } /* find tilt */ - calc_tilt_bwe( old_syn_12k8_16k, &tilt_swb_fec, L_FRAME -#ifdef FIX_I120_INV_SQRT - , - st->element_mode -#endif - ); + calc_tilt_bwe( old_syn_12k8_16k, &tilt_swb_fec, L_FRAME ); if ( st->bfi && st->clas_dec != UNVOICED_CLAS ) { @@ -837,20 +832,9 @@ void swb_tbe_dec( { if ( st->codec_mode == MODE1 && st->element_mode == EVS_MONO ) { -#ifdef FIX_I120_INV_SQRT - if ( st->element_mode != EVS_MONO ) - { - scale = (float) ( hBWE_TD->prev1_shb_ener_sf * inv_sqrt( ( hBWE_TD->prev2_shb_ener_sf * hBWE_TD->prev3_shb_ener_sf ) + 0.0001f ) ); - } - else - { -#endif - scale = (float) ( hBWE_TD->prev1_shb_ener_sf / sqrt( ( hBWE_TD->prev2_shb_ener_sf * hBWE_TD->prev3_shb_ener_sf ) + 0.0001 ) ); -#ifdef FIX_I120_INV_SQRT - } -#endif - + scale = (float) ( hBWE_TD->prev1_shb_ener_sf / sqrt( ( hBWE_TD->prev2_shb_ener_sf * hBWE_TD->prev3_shb_ener_sf ) + 0.0001 ) ); scale = hBWE_TD->prev_res_shb_gshape * min( scale, 1.0f ); + if ( hBWE_TD->prev2_shb_ener_sf > 2.0f * hBWE_TD->prev1_shb_ener_sf || hBWE_TD->prev3_shb_ener_sf > 2.0f * hBWE_TD->prev2_shb_ener_sf ) { shb_ener_sf = 0.5f * scale * hBWE_TD->prev1_shb_ener_sf; diff --git a/lib_dec/updt_dec.c b/lib_dec/updt_dec.c index 4d1d9793cc..2c3eed80e3 100644 --- a/lib_dec/updt_dec.c +++ b/lib_dec/updt_dec.c @@ -363,12 +363,7 @@ void updt_bw_switching( { if ( st->output_Fs == 32000 && st->bwidth == SWB ) { - calc_tilt_bwe( synth, &( st->tilt_swb ), L_FRAME32k -#ifdef FIX_I120_INV_SQRT - , - st->element_mode -#endif - ); + calc_tilt_bwe( synth, &( st->tilt_swb ), L_FRAME32k ); } st->prev_enerLH = st->enerLH; diff --git a/lib_dec/vlpc_2st_dec.c b/lib_dec/vlpc_2st_dec.c index b77be1a1a0..83163cda78 100644 --- a/lib_dec/vlpc_2st_dec.c +++ b/lib_dec/vlpc_2st_dec.c @@ -50,10 +50,6 @@ void vlpc_2st_dec( int16_t *indx, /* i : index[] (4 bits per words) */ const int16_t mode, /* i : 0=abs, >0=rel */ const int32_t sr_core /* i : internal sampling rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i: IVAS element mode */ -#endif ) { int16_t i; @@ -62,11 +58,7 @@ void vlpc_2st_dec( float scale = ( (float) sr_core ) / INT_FS_12k8; /* weighting from the 1st stage */ - lsf_weight_2st( lsfq, w, mode, sr_core -#ifdef FIX_I120_INV_SQRT - ,element_mode -#endif - ); + lsf_weight_2st( lsfq, w, mode, sr_core ); /* quantize */ AVQ_dec_lpc( indx, xq, 2 ); diff --git a/lib_enc/core_enc_ol.c b/lib_enc/core_enc_ol.c index 4b98d1088f..a761893653 100644 --- a/lib_enc/core_enc_ol.c +++ b/lib_enc/core_enc_ol.c @@ -789,18 +789,7 @@ void core_acelp_tcx20_switching( for ( i = 0; i < L_frame; i++ ) { -#ifdef FIX_I120_INV_SQRT - if ( st->element_mode != EVS_MONO ) - { - x[i] *= (float) ( L_frame * inv_sqrt( 2 * NORM_MDCT_FACTOR ) ); - } - else - { -#endif - x[i] *= (float) ( L_frame / sqrt( 2 * NORM_MDCT_FACTOR ) ); -#ifdef FIX_I120_INV_SQRT - } -#endif + x[i] *= (float) ( L_frame / sqrt( 2 * NORM_MDCT_FACTOR ) ); } weight_a( A_q_tcx, Ap, st->gamma, M ); diff --git a/lib_enc/eval_pit_contr.c b/lib_enc/eval_pit_contr.c index e6d08feb01..d7eb087e57 100644 --- a/lib_enc/eval_pit_contr.c +++ b/lib_enc/eval_pit_contr.c @@ -120,18 +120,7 @@ int16_t Pit_exc_contribution_len( ener_pit += dct_pitex[j + freq] * dct_pitex[j + freq]; } -#ifdef FIX_I120_INV_SQRT - if ( st->element_mode != EVS_MONO ) - { - corr_dct_pit[i] = (float) ( corr_tmp * inv_sqrt( ener_res * ener_pit ) ); - } - else - { -#endif - corr_dct_pit[i] = (float) ( corr_tmp / sqrt( ener_res * ener_pit ) ); -#ifdef FIX_I120_INV_SQRT - } -#endif + corr_dct_pit[i] = (float) ( corr_tmp / sqrt( ener_res * ener_pit ) ); freq += mfreq_bindiv_loc[i]; } diff --git a/lib_enc/frame_spec_dif_cor_rate.c b/lib_enc/frame_spec_dif_cor_rate.c index f344979097..9b3329c5c1 100644 --- a/lib_enc/frame_spec_dif_cor_rate.c +++ b/lib_enc/frame_spec_dif_cor_rate.c @@ -50,10 +50,6 @@ void frame_spec_dif_cor_rate( float spec_amp[], /* i : spectral amplitude */ float pre_spec_low_dif[], /* i/o: low spectrum different */ float f_tonality_rate[] /* o : tonality rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i: IVAS element mode */ -#endif ) { int16_t i; @@ -85,19 +81,7 @@ void frame_spec_dif_cor_rate( } /* 1073741.824 = 0.001 * 32768 * 32768 */ -#ifdef FIX_I120_INV_SQRT - if ( element_mode != EVS_MONO ) - { - spec_low_dif_cor_rate = (float) ( m * inv_sqrt( ( dx * dy + 1073741.824f ) ) ); - } - else - { -#endif - spec_low_dif_cor_rate = (float) ( m / sqrt( ( dx * dy + 1073741.824f ) ) ); -#ifdef FIX_I120_INV_SQRT - } -#endif - + spec_low_dif_cor_rate = (float) ( m / sqrt( ( dx * dy + 1073741.824f ) ) ); spec_dif_cor_rate = spec_low_dif_cor_rate; f_tonality_rate[0] = spec_dif_cor_rate; f_tonality_rate[1] = f_tonality_rate[1] * 0.96f + spec_dif_cor_rate * 0.04f; diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c index ac1ee5aa38..623288ff88 100644 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -107,10 +107,6 @@ static float IGF_getCrest_new( const int16_t *logSpec, /* i : power spectrum */ const int16_t start, /* i : start subband index */ const int16_t stop /* i : stop subband index */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i: IVAS element mode */ -#endif ) { int16_t i; @@ -134,18 +130,7 @@ static float IGF_getCrest_new( if ( x_eff > 0 && x_max > 0 ) { -#ifdef FIX_I120_INV_SQRT - if ( element_mode != EVS_MONO ) - { - crest = max( 1.f, (float) x_max * inv_sqrt( (float) x_eff ) ); - } - else - { -#endif - crest = max( 1.f, (float) x_max / sqrtf( (float) x_eff ) ); -#ifdef FIX_I120_INV_SQRT - } -#endif + crest = max( 1.f, (float) x_max / sqrtf( (float) x_eff ) ); } return crest; @@ -327,11 +312,7 @@ static float IGF_getCrest( if ( x_eff > 0 && x_max > 0 ) { -#ifdef FIX_I120_INV_SQRT - crest = max( 1.f, (float) x_max * inv_sqrt( (float) x_eff ) ); -#else crest = max( 1.f, (float) x_max / sqrtf( (float) x_eff ) ); -#endif } return crest; @@ -481,16 +462,8 @@ static void IGF_CalculateEnvelope( float diffSFM; float shiftedSFM = 0.f; - tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] -#ifdef FIX_I120_INV_SQRT - ,element_mode -#endif - ); - tmp_sb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, tmp, strt_cpy ) / IGF_getCrest_new( hPrivateData->logSpec, tmp, strt_cpy -#ifdef FIX_I120_INV_SQRT - ,element_mode -#endif - ); + tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); + tmp_sb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, tmp, strt_cpy ) / IGF_getCrest_new( hPrivateData->logSpec, tmp, strt_cpy ); if ( last_core_acelp || hPrivateData->wasTransient ) { @@ -521,20 +494,12 @@ static void IGF_CalculateEnvelope( if ( slope < -threshold ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift -#ifdef FIX_I120_INV_SQRT - ,element_mode -#endif - ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); } else if ( ( slope > 1.f * threshold ) && ( sfb != hGrid->sfbWrap[hGrid->nTiles] - 1 ) ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift -#ifdef FIX_I120_INV_SQRT - ,element_mode -#endif - ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); } if ( shiftedSFM > 0.04f ) @@ -1161,11 +1126,7 @@ static void IGF_Whitening( } else { - tmp = IGF_getSFM_new( powerSpectrum, hPrivateData->logSpec, hGrid->tile[p], hGrid->tile[p + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, hGrid->tile[p], hGrid->tile[p + 1] -#ifdef FIX_I120_INV_SQRT - ,element_mode -#endif - ); + tmp = IGF_getSFM_new( powerSpectrum, hPrivateData->logSpec, hGrid->tile[p], hGrid->tile[p + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, hGrid->tile[p], hGrid->tile[p + 1] ); } if ( last_core_acelp || hPrivateData->wasTransient ) diff --git a/lib_enc/pre_proc.c b/lib_enc/pre_proc.c index 47d58c293b..a17612290f 100644 --- a/lib_enc/pre_proc.c +++ b/lib_enc/pre_proc.c @@ -198,11 +198,7 @@ void pre_proc( noise_est_pre( *Etot, st->ini_frame, st->hNoiseEst, 0, EVS_MONO, EVS_MONO ); st->vad_flag = wb_vad( st, fr_bands, &noisy_speech_HO, &clean_speech_HO, &NB_speech_HO, &snr_sum_he, &localVAD_HE_SAD, &( st->flag_noisy_speech_snr ), NULL, NULL, -1000.0f, -1000.0f ); - vad_flag_cldfb = vad_proc( realBuffer, imagBuffer, enerBuffer, st->cldfbAnaEnc->no_channels, st->hVAD_CLDFB, &cldfb_addition, st->vad_flag -#ifdef FIX_I120_INV_SQRT - ,st->element_mode -#endif - ); + vad_flag_cldfb = vad_proc( realBuffer, imagBuffer, enerBuffer, st->cldfbAnaEnc->no_channels, st->hVAD_CLDFB, &cldfb_addition, st->vad_flag ); if ( st->Pos_relE_cnt < 20 ) /* Ensure the level is high enough and cldfb decision is reliable */ { diff --git a/lib_enc/qlpc_avq.c b/lib_enc/qlpc_avq.c index 5506e43f72..03aeab128e 100644 --- a/lib_enc/qlpc_avq.c +++ b/lib_enc/qlpc_avq.c @@ -56,10 +56,6 @@ void qlpc_avq( int16_t *nbbits, /* o : Number of quantization bits */ const int16_t core, /* i : core */ const int32_t sr_core /* i : internal sampling rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i" IVAS element mode */ -#endif ) { int16_t i; @@ -76,11 +72,7 @@ void qlpc_avq( tmp_index[0] = vlpc_1st_cod( lsf, lsf_q, sr_core, dummy ); - nbt = vlpc_2st_cod( lsf, lsf_q, &tmp_index[1], 0, sr_core -#ifdef FIX_I120_INV_SQRT - ,element_mode -#endif - ); + nbt = vlpc_2st_cod( lsf, lsf_q, &tmp_index[1], 0, sr_core ); nit = 1 + 2 + index[1] + index[2]; tmp_index += nit; @@ -100,12 +92,7 @@ void qlpc_avq( tmp_index[0] = vlpc_1st_cod( lsfmid, lsfmid_q, sr_core, dummy ); - nbits = vlpc_2st_cod( lsfmid, lsfmid_q, &tmp_index[1], 0, sr_core -#ifdef FIX_I120_INV_SQRT - , - element_mode -#endif - ); + nbits = vlpc_2st_cod( lsfmid, lsfmid_q, &tmp_index[1], 0, sr_core ); nbt = 8 + nbits; nit = 1 + 2 + tmp_index[1] + tmp_index[2]; @@ -116,12 +103,7 @@ void qlpc_avq( lsfmid_q0[i] = lsf_q[i]; } - nbits = vlpc_2st_cod( lsfmid, lsfmid_q0, indxt, 3, sr_core -#ifdef FIX_I120_INV_SQRT - , - element_mode -#endif - ); + nbits = vlpc_2st_cod( lsfmid, lsfmid_q0, indxt, 3, sr_core ); if ( nbits < nbt ) { diff --git a/lib_enc/qlpc_stoch.c b/lib_enc/qlpc_stoch.c index 33571d4d03..403132b6e8 100644 --- a/lib_enc/qlpc_stoch.c +++ b/lib_enc/qlpc_stoch.c @@ -88,11 +88,7 @@ void lpc_quantization( lsp2lsf( lspmid, lsfmid, M, st->sr_core ); } - qlpc_avq( lsf, lsfmid, lsf_q, lsfmid_q, param_lpc, &nb_indices, nbits_lpc, st->core, st->sr_core -#ifdef FIX_I120_INV_SQRT - ,st->element_mode -#endif - ); + qlpc_avq( lsf, lsfmid, lsf_q, lsfmid_q, param_lpc, &nb_indices, nbits_lpc, st->core, st->sr_core ); lsf2lsp( lsf_q, lsp_q, M, st->sr_core ); diff --git a/lib_enc/swb_bwe_enc.c b/lib_enc/swb_bwe_enc.c index 6f6de03025..54e786d761 100644 --- a/lib_enc/swb_bwe_enc.c +++ b/lib_enc/swb_bwe_enc.c @@ -596,12 +596,7 @@ void swb_bwe_enc( * Calculate tilt of the input signal and the ACELP core synthesis *----------------------------------------------------------------------*/ - calc_tilt_bwe( old_input_lp, &tilt_nb, L_FRAME -#ifdef FIX_I120_INV_SQRT - , - st->element_mode -#endif - ); + calc_tilt_bwe( old_input_lp, &tilt_nb, L_FRAME ); /*---------------------------------------------------------------------* * SWB BWE encoding @@ -1366,12 +1361,9 @@ static int16_t SWB_BWE_encoding( st->hBWE_FD->EnergyLF = energy; } - calc_tilt_bwe( insig, &tilt, L_FRAME32k -#ifdef FIX_I120_INV_SQRT - , - st->element_mode -#endif - ); + + calc_tilt_bwe( insig, &tilt, L_FRAME32k ); + if ( IsTransient == 1 && ( tilt > 8.0 || st->clas > 1 ) ) { IsTransient = 0; diff --git a/lib_enc/vad_proc.c b/lib_enc/vad_proc.c index 2c491c7801..f40ca2cb5f 100644 --- a/lib_enc/vad_proc.c +++ b/lib_enc/vad_proc.c @@ -226,10 +226,6 @@ int16_t vad_proc( VAD_CLDFB_HANDLE hVAD_CLDFB, /* i/o: CLDFB VAD state */ int16_t *cldfb_addition, const int16_t vada_flag /* i : VAD flag */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i: IVAS element mode */ -#endif ) { float frame_energy, frame_energy2; @@ -273,11 +269,7 @@ int16_t vad_proc( spec_flatness( spec_amp, hVAD_CLDFB->smooth_spec_amp, hVAD_CLDFB->sfm ); - frame_spec_dif_cor_rate( spec_amp, hVAD_CLDFB->pre_spec_low_dif, hVAD_CLDFB->f_tonality_rate -#ifdef FIX_I120_INV_SQRT - ,element_mode -#endif - ); + frame_spec_dif_cor_rate( spec_amp, hVAD_CLDFB->pre_spec_low_dif, hVAD_CLDFB->f_tonality_rate ); bg_music_decision( hVAD_CLDFB, &music_backgound_f, frame_energy ); diff --git a/lib_enc/vlpc_2st_cod.c b/lib_enc/vlpc_2st_cod.c index acb5beddca..86abfec1b0 100644 --- a/lib_enc/vlpc_2st_cod.c +++ b/lib_enc/vlpc_2st_cod.c @@ -53,10 +53,6 @@ int16_t vlpc_2st_cod( int16_t *indx, /* o : index[] (4 bits per words) */ const int16_t mode, /* i : 0=abs, >0=rel */ const int32_t sr_core /* i : internal sampling rate */ -#ifdef FIX_I120_INV_SQRT - , - const int16_t element_mode /* i" IVAS element mode */ -#endif ) { int16_t i, nbits; @@ -67,12 +63,7 @@ int16_t vlpc_2st_cod( /* 0 bit with true weighting: save 0.5 bit */ - lsf_weight_2st( lsf, w, 1, sr_core -#ifdef FIX_I120_INV_SQRT - , - element_mode -#endif - ); + lsf_weight_2st( lsf, w, 1, sr_core ); for ( i = 0; i < M; i++ ) { @@ -100,12 +91,7 @@ int16_t vlpc_2st_cod( } /* weighting from the 1st stage */ - lsf_weight_2st( lsfq, w, mode, sr_core -#ifdef FIX_I120_INV_SQRT - , - element_mode -#endif - ); + lsf_weight_2st( lsfq, w, mode, sr_core ); /* find lsf residual */ -- GitLab From bb5ad452ac6079dab70a0f0f234d5af0928e9a8f Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Tue, 4 Oct 2022 09:01:27 +0200 Subject: [PATCH 163/479] Updated comment regarding SHB target --- lib_enc/swb_pre_proc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_enc/swb_pre_proc.c b/lib_enc/swb_pre_proc.c index 04589e664f..52d3099c41 100644 --- a/lib_enc/swb_pre_proc.c +++ b/lib_enc/swb_pre_proc.c @@ -711,11 +711,11 @@ void swb_pre_proc( { if ( st->L_frame == L_FRAME ) { - L_resamp = 560; /* 6.4 kHz core -> 6 - 14 kHz band target -> 560 samples in 28 kHz sample rate */ + L_resamp = 560; /* 6.4 kHz core -> 6 - 14 kHz SHB target. 20 ms is 560 samples in 28 kHz sample rate */ } else { - L_resamp = 620; /* 8 kHz core -> 7.5 - 15.5 kHz band target -> 620 samples in 31 kHz sample rate */ + L_resamp = 620; /* 8 kHz core -> 7.5 - 15.5 kHz SHB target. 20 ms is 620 samples in 31 kHz sample rate */ } /* Dirty downsampling to match Nyquist to upper frequency limit of target */ -- GitLab From 8d2b4e1fcc1e0d902cd5359768550f21afff1e97 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 4 Oct 2022 11:38:24 +0200 Subject: [PATCH 164/479] - FIX_DIRAC_CHANNELS - lower number of DirAC analysis channels - FIX_CREND_CHANNELS - fix number of Crend channels - HARMONIZE_SBA_NCHAN_TRANSPORT harmonize setting of number of transport channels in SBA --- lib_com/bitstream.c | 5 ++++- lib_com/ivas_cnst.h | 9 ++++++++ lib_com/ivas_dirac_com.c | 20 ++++++++++++----- lib_com/ivas_prot.h | 14 ++++++++++-- lib_com/ivas_sba_config.c | 11 ++++++++-- lib_com/ivas_spar_com.c | 21 ++++++++++++++++++ lib_com/options.h | 5 +++-- lib_dec/ivas_crend.c | 12 +++++++++++ lib_dec/ivas_dirac_dec.c | 9 +++++++- lib_dec/ivas_init_dec.c | 13 +++++++++++ lib_dec/ivas_reverb.c | 7 ++++++ lib_dec/ivas_sba_dec.c | 43 ++++++++++++++++++++++++++++++++++++- lib_dec/ivas_stat_dec.h | 22 +++++++++++++++++++ lib_enc/ivas_dirac_enc.c | 30 ++++++++++++++++++++------ lib_enc/ivas_masa_enc.c | 4 +--- lib_enc/ivas_mct_enc.c | 22 +++++++++++++++++++ lib_enc/ivas_sba_enc.c | 27 ++++++++++++++++++++++- lib_enc/ivas_spar_encoder.c | 5 +++++ lib_enc/ivas_stat_enc.h | 4 ++++ 19 files changed, 259 insertions(+), 24 deletions(-) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index d221b9cf92..9ee771fb6b 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -1981,7 +1981,6 @@ ivas_error preview_indices( } else if ( st_ivas->ivas_format == SBA_FORMAT ) { - /* Read SBA planar flag and SBA order */ st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA] == 1 ); st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 ); @@ -1989,7 +1988,11 @@ ivas_error preview_indices( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ) ); +#else ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); +#endif } } diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 72af37ef8a..b75fdeca54 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -165,7 +165,9 @@ typedef enum #define HEAD_ROTATION_HOA_ORDER 3 /* HOA 3rd order */ #define MAX_CICP_CHANNELS 16 /* max channels for loudspeaker layouts (16 for custom layouts)*/ #define MAX_OUTPUT_CHANNELS 16 /* Maximum number of output channels (HOA 3rd order) */ +#ifndef FIX_CREND_CHANNELS #define IVAS_MAX_NUM_CH 16 /* == MAX_OUTPUT_CHANNELS */ +#endif #define FOA_CHANNELS 4 /* number of FOA channels */ @@ -867,8 +869,15 @@ typedef enum * DirAC Constants *----------------------------------------------------------------------------------*/ +#ifdef FIX_DIRAC_CHANNELS +#define DIRAC_MAX_ANA_CHANS FOA_CHANNELS /* Maximum number of channels for DirAC analysis */ +#else #define DIRAC_MAX_ANA_CHANS 4 /* Maximum number of channels for DirAC analysis */ +#endif + +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT #define DIRAC_MAX_TRANS_CHANS 8 /* Maximum number of transport channels for DirAC */ +#endif #define DIRAC_MIN_BITRATE_8_TRANS_CHAN IVAS_384k #define DIRAC_MIN_BITRATE_6_TRANS_CHAN IVAS_256k diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index 80ca92e18c..56e623b019 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -142,8 +142,12 @@ ivas_error ivas_dirac_config( if ( ivas_format == SBA_FORMAT ) /* skip for MASA decoder */ { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) +#else if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_planar, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -307,9 +311,11 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* i/o: element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ - const int16_t sba_planar, /* i : SBA planar flag */ - const SBA_MODE sba_mode, /* i : SBA mode */ - const int16_t nbands /* i : number of frequency bands */ +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT + const int16_t sba_planar, /* i : SBA planar flag */ +#endif + const SBA_MODE sba_mode, /* i : SBA mode */ + const int16_t nbands /* i : number of frequency bands */ ) { int16_t i; @@ -430,7 +436,11 @@ ivas_error ivas_dirac_sba_config( if ( sba_total_brate > IVAS_SID_4k4 ) #endif { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); +#else *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); +#endif } #ifdef ALIGN_SID_SIZE else if ( sba_total_brate == IVAS_SID_5k2 ) @@ -575,7 +585,7 @@ ivas_error ivas_dirac_sba_config( return error; } - +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*------------------------------------------------------------------------- * ivas_dirac_getNumTransportChannels() * @@ -647,7 +657,7 @@ int16_t ivas_dirac_getNumTransportChannels( return num_channels; } - +#endif /*------------------------------------------------------------------------- * computeDirectionVectors() diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index bfef844788..22b7d37d2f 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3033,8 +3033,10 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ - int16_t *element_mode, /* o : element mode of the core coder */ + int16_t *element_mode /* o : element mode of the core coder */ +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT const SBA_MODE sba_mode /* i : SBA mode */ +#endif ); ivas_error ivas_sba_dec_reconfigure( @@ -3173,18 +3175,21 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* o : element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT const int16_t sba_planar, /* i : SBA planar flag */ +#endif const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t nbands /* i : number of frequency bands */ ); +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*! r: number of IVAS transport channels */ int16_t ivas_dirac_getNumTransportChannels( const int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : SBA order */ const int16_t sba_planar /* i : SBA Planar flag */ ); - +#endif ivas_error ivas_dirac_dec_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); @@ -3827,7 +3832,12 @@ int16_t ivas_get_spar_table_idx( int16_t *ind /* o : indice */ ); +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT +/*! r: number of transport channels */ +int16_t ivas_get_sba_num_TCs( +#else int16_t ivas_get_spar_num_TCs( +#endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : IVAS SBA order */ ); diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index 2ea07710bc..58cd80bc37 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -87,8 +87,11 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA Planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ - int16_t *element_mode, /* o : element mode of the core coder */ - const SBA_MODE sba_mode /* i : SBA mode */ + int16_t *element_mode /* o : element mode of the core coder */ +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT + , + const SBA_MODE sba_mode /* i : SBA mode */ +#endif ) { if ( ( sba_order < 0 ) && ( nb_channels < 0 ) ) @@ -117,6 +120,9 @@ void ivas_sba_config( if ( nchan_transport != NULL ) { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); +#else if ( sba_mode == SBA_MODE_SPAR ) { *nchan_transport = ivas_get_spar_num_TCs( sba_total_brate, sba_order ); @@ -125,6 +131,7 @@ void ivas_sba_config( { *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); } +#endif } /* Configure core coder number of elements*/ diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index 4955f9f9e2..ce4e742401 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -328,7 +328,11 @@ void ivas_spar_config( } else { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + *nchan_transport = ivas_get_sba_num_TCs( ivas_total_brate, sba_order ); +#else *nchan_transport = ivas_get_spar_num_TCs( ivas_total_brate, sba_order ); +#endif } *nCPE = ( *nchan_transport > 1 ) ? ( *nchan_transport + 1 ) >> 1 : 0; @@ -416,6 +420,16 @@ int16_t ivas_get_spar_table_idx( } +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT +/*-------------------------------------------------------------------* + * ivas_get_sba_num_TCs() + * + * Return number of TCs in SBA format + *-------------------------------------------------------------------*/ + +/*! r: number of transport channels */ +int16_t ivas_get_sba_num_TCs( +#else /*-------------------------------------------------------------------* * ivas_get_spar_num_TCs() * @@ -424,6 +438,7 @@ int16_t ivas_get_spar_table_idx( /*! r: number of transport channels */ int16_t ivas_get_spar_num_TCs( +#endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : Ambisonic (SBA) order */ ) @@ -438,6 +453,12 @@ int16_t ivas_get_spar_num_TCs( { nchan_transport = 1; } +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + else if ( ivas_sba_mode_select( ivas_total_brate ) == SBA_MODE_DIRAC ) + { + nchan_transport = 1; + } +#endif else { table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); diff --git a/lib_com/options.h b/lib_com/options.h index 3c30e33d86..967bf5bd4a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,8 +149,9 @@ #define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ - - +#define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ +#define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ +#define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_crend.c b/lib_dec/ivas_crend.c index 8048d8106f..f83125fcbb 100644 --- a/lib_dec/ivas_crend.c +++ b/lib_dec/ivas_crend.c @@ -68,7 +68,11 @@ static ivas_error ivas_hrtf_init( hHrtf->gain_lfe = 0; hHrtf->index_frequency_max_diffuse = 0; +#ifdef FIX_CREND_CHANNELS + for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { hHrtf->inv_diffuse_weight[i] = 0; for ( j = 0; j < BINAURAL_CHANNELS; j++ ) @@ -673,7 +677,11 @@ ivas_error ivas_crend_open( hCrend->lfe_delay_line = NULL; +#ifdef FIX_CREND_CHANNELS + for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { hCrend->freq_buffer_re[i] = NULL; hCrend->freq_buffer_im[i] = NULL; @@ -824,7 +832,11 @@ ivas_error ivas_crend_close( { if ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) { +#ifdef FIX_CREND_CHANNELS + for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { if ( st_ivas->hCrend->freq_buffer_re[i] != NULL ) { diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 162002852b..ef4527ea8f 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -202,7 +202,11 @@ ivas_error ivas_dirac_dec_config( if ( flag_config == DIRAC_RECONFIGURE && st_ivas->ivas_format == SBA_FORMAT ) { int16_t tmp1, tmp2, tmp3; +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3 ); +#else ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC ); +#endif } /*-----------------------------------------------------------------* @@ -760,7 +764,6 @@ ivas_error ivas_dirac_dec_config( mvs2s( DirAC_block_grouping, hDirAC->block_grouping, MAX_PARAM_SPATIAL_SUBFRAMES + 1 ); - if ( flag_config == DIRAC_OPEN ) { hDirAC->dirac_md_buffer_length = 0; @@ -1858,7 +1861,11 @@ void ivas_dirac_dec( #ifdef DEBUG_MODE_DIRAC { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + int16_t n, tmp[1 * L_FRAME48k]; +#else int16_t n, tmp[DIRAC_MAX_TRANS_CHANS * L_FRAME48k]; +#endif char file_name[50] = { 0 }; const int16_t output_frame = st_ivas->output_Fs / FRAMES_PER_SEC; diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 5b42032201..f084b25b9b 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -139,7 +139,11 @@ ivas_error ivas_dec_setup( } else { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); +#else ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); +#endif } } else if ( st_ivas->ivas_format == MASA_FORMAT ) @@ -832,8 +836,13 @@ ivas_error ivas_init_decoder( } } +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + +#else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -863,7 +872,11 @@ ivas_error ivas_init_decoder( } else { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#endif { return error; } diff --git a/lib_dec/ivas_reverb.c b/lib_dec/ivas_reverb.c index e25eacff54..854f0685cd 100644 --- a/lib_dec/ivas_reverb.c +++ b/lib_dec/ivas_reverb.c @@ -795,10 +795,17 @@ static void set_reverb_acoustic_data( { int16_t nr_out_ch, hrtf_idx, offset, iter_idx, bin_idx; float ln_1e6_inverted, delay_diff, exp_argument; +#ifdef FIX_CREND_CHANNELS + float *pHrtf_set_l_re[MAX_TRANSPORT_CHANNELS]; + float *pHrtf_set_l_im[MAX_TRANSPORT_CHANNELS]; + float *pHrtf_set_r_re[MAX_TRANSPORT_CHANNELS]; + float *pHrtf_set_r_im[MAX_TRANSPORT_CHANNELS]; +#else float *pHrtf_set_l_re[IVAS_MAX_NUM_CH]; float *pHrtf_set_l_im[IVAS_MAX_NUM_CH]; float *pHrtf_set_r_re[IVAS_MAX_NUM_CH]; float *pHrtf_set_r_im[IVAS_MAX_NUM_CH]; +#endif /* use crend hrtf filters */ if ( hHrtf != NULL ) diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 204b91b89d..9090588b55 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -48,7 +48,9 @@ * Local function prototypes *-----------------------------------------------------------------------*/ +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT static void ivas_sba_dmx_dec( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); +#endif #ifdef DEBUG_MODE_DIRAC static void debug_mode_dirac( float output[MAX_OUTPUT_CHANNELS][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); @@ -246,6 +248,25 @@ int16_t ivas_sba_remapTCs( } } +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( st_ivas->nchan_transport >= 3 ) + { + int16_t i = 0; + float temp; + + /*convert WYXZ downmix to WYZX*/ + for ( i = 0; i < output_frame; i++ ) + { + temp = sba_data[2][i]; + sba_data[2][i] = sba_data[3][i]; + sba_data[3][i] = temp; + if ( st_ivas->nchan_transport == 3 ) + { + sba_data[2][i] = 0; + } + } + } +#else if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { int16_t i = 0; @@ -268,8 +289,13 @@ int16_t ivas_sba_remapTCs( } else { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + /* do nothing; simply use omni */ +#else ivas_sba_dmx_dec( sba_data, nchan_remapped, output_frame ); +#endif } +#endif if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { @@ -280,6 +306,7 @@ int16_t ivas_sba_remapTCs( } +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*-------------------------------------------------------------------* * ivas_sba_dmx_dec() * @@ -373,7 +400,7 @@ static void ivas_sba_dmx_dec( assert( 0 && "SBA: number of transport channels not supported." ); } } - +#endif /*-------------------------------------------------------------------------* * ivas_ism2sba() @@ -488,7 +515,11 @@ ivas_error ivas_sba_dec_reconfigure( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); +#else ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); +#endif st_ivas->nchan_transport = nchan_transport; /* renderer might have changed */ @@ -504,7 +535,12 @@ ivas_error ivas_sba_dec_reconfigure( if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ); + +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -516,8 +552,13 @@ ivas_error ivas_sba_dec_reconfigure( sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); ivas_spar_config( st_ivas->hDecoderConfig->ivas_total_brate, sba_order_internal, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->hSpar->core_nominal_brate, st_ivas->sid_format ); +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + +#else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) +#endif { return error; } diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index e5195cba5a..16af0c47aa 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1682,19 +1682,36 @@ typedef struct ivas_binaural_td_rendering_struct typedef struct ivas_hrtfs_structure { +#ifdef FIX_CREND_CHANNELS + float *pOut_to_bin_re[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; + float *pOut_to_bin_im[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; +#else float *pOut_to_bin_re[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; float *pOut_to_bin_im[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; +#endif float *pOut_to_bin_diffuse_re[BINAURAL_CHANNELS]; float *pOut_to_bin_diffuse_im[BINAURAL_CHANNELS]; float latency_s; +#ifdef FIX_CREND_CHANNELS + uint16_t num_iterations[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; +#else uint16_t num_iterations[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; +#endif uint16_t num_iterations_diffuse[BINAURAL_CHANNELS]; +#ifdef FIX_CREND_CHANNELS + uint16_t *pIndex_frequency_max[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; +#else uint16_t *pIndex_frequency_max[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; +#endif uint16_t *pIndex_frequency_max_diffuse[BINAURAL_CHANNELS]; uint16_t index_frequency_max_diffuse; int16_t max_num_ir; int16_t max_num_iterations; +#ifdef FIX_CREND_CHANNELS + float inv_diffuse_weight[MAX_TRANSPORT_CHANNELS]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ +#else float inv_diffuse_weight[IVAS_MAX_NUM_CH]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ +#endif float gain_lfe; } HRTFS_DATA, *HRTFS_HANDLE; @@ -1835,8 +1852,13 @@ typedef struct ivas_orient_trk_state_t /* Crend structures */ typedef struct ivas_crend_state_t { +#ifdef FIX_CREND_CHANNELS + float *freq_buffer_re[MAX_TRANSPORT_CHANNELS]; + float *freq_buffer_im[MAX_TRANSPORT_CHANNELS]; +#else float *freq_buffer_re[IVAS_MAX_NUM_CH]; float *freq_buffer_im[IVAS_MAX_NUM_CH]; +#endif float *freq_buffer_re_diffuse; float *freq_buffer_im_diffuse; float *prev_out_buffer[BINAURAL_CHANNELS]; diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 754aa6d57c..9d5893622d 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -122,19 +122,29 @@ ivas_error ivas_dirac_enc_open( if ( st_ivas->sba_mode == SBA_MODE_DIRAC ) { hDirAC->num_samples_synchro_delay = NS2SA( input_Fs, IVAS_FB_ENC_DELAY_NS ); +#ifdef FIX_DIRAC_CHANNELS + for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) +#else for ( i = 0; i < st_ivas->hEncoderConfig->nchan_inp; i++ ) +#endif { hDirAC->sba_synchro_buffer[i] = (float *) count_malloc( hDirAC->num_samples_synchro_delay * sizeof( float ) ); set_zero( hDirAC->sba_synchro_buffer[i], hDirAC->num_samples_synchro_delay ); } +#ifndef FIX_DIRAC_CHANNELS for ( ; i < IVAS_MAX_NUM_CH; i++ ) { hDirAC->sba_synchro_buffer[i] = NULL; } +#endif } else { +#ifdef FIX_DIRAC_CHANNELS + for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { hDirAC->sba_synchro_buffer[i] = NULL; } @@ -242,7 +252,11 @@ void ivas_dirac_enc_close( ivas_FB_mixer_close( &hDirAC->hFbMixer, input_Fs ); } +#ifdef FIX_DIRAC_CHANNELS + for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { if ( hDirAC->sba_synchro_buffer[i] != NULL ) { @@ -412,9 +426,7 @@ void ivas_dirac_enc( } /* encode SID parameters */ - ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, - SBA_FORMAT, - SBA_MODE_DIRAC ); + ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, SBA_FORMAT, SBA_MODE_DIRAC ); /* restore original metadata */ hDirAC->hConfig->nbands = nbands; @@ -434,9 +446,7 @@ void ivas_dirac_enc( push_next_indice( hMetaData, 0, 1 ); #endif /* encode SID parameters */ - ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, - SBA_FORMAT, - SBA_MODE_DIRAC ); + ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, SBA_FORMAT, SBA_MODE_DIRAC ); } } } @@ -446,6 +456,7 @@ void ivas_dirac_enc( return; } + /*------------------------------------------------------------------------- * computeReferencePower_enc() * @@ -461,7 +472,11 @@ void ivas_dirac_enc_spar_delay_synchro( int16_t ch_idx; float tmp_buffer[L_FRAME48k]; +#ifdef FIX_DIRAC_CHANNELS + for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) +#else for ( ch_idx = 0; ch_idx < st_ivas->hEncoderConfig->nchan_inp; ch_idx++ ) +#endif { mvr2r( data_f[ch_idx], tmp_buffer, input_frame ); mvr2r( st_ivas->hDirAC->sba_synchro_buffer[ch_idx], data_f[ch_idx], st_ivas->hDirAC->num_samples_synchro_delay ); @@ -472,6 +487,7 @@ void ivas_dirac_enc_spar_delay_synchro( return; } + /*------------------------------------------------------------------------- * computeReferencePower_enc() * @@ -511,11 +527,13 @@ void computeReferencePower_enc( return; } + /*------------------------------------------------------------------------- * ivas_dirac_param_est_enc() * * *------------------------------------------------------------------------*/ + void ivas_dirac_param_est_enc( DIRAC_ENC_HANDLE hDirAC, IVAS_QDIRECTION *q_direction, diff --git a/lib_enc/ivas_masa_enc.c b/lib_enc/ivas_masa_enc.c index 2e233bbc6d..c2649adc56 100644 --- a/lib_enc/ivas_masa_enc.c +++ b/lib_enc/ivas_masa_enc.c @@ -350,9 +350,7 @@ void ivas_masa_encode( count_free( h_orig_metadata ); - ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, masa_sid_descriptor, - ivas_format, - SBA_MODE_NONE ); + ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, masa_sid_descriptor, ivas_format, SBA_MODE_NONE ); /* restore old values */ hMasa->config.numCodingBands = numCodingBands; diff --git a/lib_enc/ivas_mct_enc.c b/lib_enc/ivas_mct_enc.c index bcf5482da9..9aa5fe04c5 100644 --- a/lib_enc/ivas_mct_enc.c +++ b/lib_enc/ivas_mct_enc.c @@ -193,6 +193,14 @@ ivas_error create_mct_enc( hMCT->nchan_out_woLFE = st_ivas->hEncoderConfig->nchan_inp - 1; /* LFE channel is coded separately */ hMCT->num_lfe = TRUE; } +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + else if ( ivas_format == SBA_FORMAT ) + { + hMCT->nchan_out_woLFE = ivas_get_sba_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); + + hMCT->num_lfe = FALSE; + } +#else else if ( ivas_format == SBA_FORMAT && st_ivas->hSpar ) { hMCT->nchan_out_woLFE = ivas_get_spar_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); @@ -204,6 +212,7 @@ ivas_error create_mct_enc( hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); hMCT->num_lfe = FALSE; } +#endif else if ( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_PARAMMC ) { hMCT->nchan_out_woLFE = ivas_param_mc_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->mc_input_setup ); @@ -337,6 +346,18 @@ ivas_error mct_enc_reconfigure( hMCT->nchan_out_woLFE = st_ivas->hEncoderConfig->nchan_inp - 1; /* LFE channel is coded separately */ hMCT->num_lfe = TRUE; } +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) // VE: this condition to be reviewed together with the following one + { + hMCT->nchan_out_woLFE = ivas_get_sba_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); + hMCT->num_lfe = FALSE; + } + else if ( ivas_format == SBA_FORMAT ) + { + hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); + hMCT->num_lfe = FALSE; + } +#else else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) { hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); @@ -347,6 +368,7 @@ ivas_error mct_enc_reconfigure( hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); hMCT->num_lfe = FALSE; } +#endif else { assert( !"IVAS format currently not supported for MCT" ); diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index 62fc6d0667..40b502fd70 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -45,11 +45,13 @@ #endif #include "wmops.h" +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*-----------------------------------------------------------------------* * Local function prototypes *-----------------------------------------------------------------------*/ static void ivas_sba_dmx_enc( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t input_frame ); +#endif /*-------------------------------------------------------------------* * ivas_sba_getTCs() @@ -65,6 +67,23 @@ void ivas_sba_getTCs( { ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar, input_frame ); +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + st_ivas->nchan_transport = ivas_get_sba_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order ); + + if ( st_ivas->nchan_transport >= 3 ) + { + /*convert WYZX downmix to WYXZ*/ + int16_t i = 0; + float temp; + for ( i = 0; i < input_frame; i++ ) + { + temp = sba_data[2][i]; + sba_data[2][i] = sba_data[3][i]; + sba_data[3][i] = temp; + } + } + +#else if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { st_ivas->nchan_transport = ivas_get_spar_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order ); @@ -84,8 +103,13 @@ void ivas_sba_getTCs( else { st_ivas->nchan_transport = ivas_dirac_getNumTransportChannels( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + /* do nothing; simply use omni */ +#else ivas_sba_dmx_enc( sba_data, st_ivas->nchan_transport, input_frame ); +#endif } +#endif #ifdef DEBUG_MODE_DIRAC for ( int16_t n = 0; n < st_ivas->nchan_transport; n++ ) @@ -106,6 +130,7 @@ void ivas_sba_getTCs( } +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*-------------------------------------------------------------------* * ivas_sba_dmx_enc() * @@ -204,7 +229,7 @@ static void ivas_sba_dmx_enc( return; } - +#endif /*-------------------------------------------------------------------* * ivas_sba_enc_reconfigure() diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index a0fa6d4b4a..14f9f08a54 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -83,7 +83,12 @@ ivas_error ivas_spar_enc_open( nchan_inp = ivas_sba_get_nchan_metadata( sba_order_internal ); assert( nchan_inp <= hEncoderConfig->nchan_inp ); ivas_total_brate = hEncoderConfig->ivas_total_brate; + +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + nchan_transport = ivas_get_sba_num_TCs( hEncoderConfig->ivas_total_brate, sba_order_internal ); +#else nchan_transport = ivas_get_spar_num_TCs( hEncoderConfig->ivas_total_brate, sba_order_internal ); +#endif // bw = ivas_get_bw_idx_from_sample_rate(pCfg->input_Fs); table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order_internal, SPAR_CONFIG_BW, NULL, NULL ); diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 2ed6a0ff91..2169cac9bd 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -571,7 +571,11 @@ typedef struct ivas_dirac_enc_data_structure PARAM_ISM_CONFIG_HANDLE hParamIsm; /* Parametric ISM handle */ IVAS_FB_MIXER_HANDLE hFbMixer; +#ifdef FIX_DIRAC_CHANNELS + float *sba_synchro_buffer[DIRAC_MAX_ANA_CHANS]; +#else float *sba_synchro_buffer[IVAS_MAX_NUM_CH]; // VE: all 16 buffers not needed ? +#endif int16_t num_samples_synchro_delay; /* DirAC parameter estimation */ -- GitLab From 5d150fe42c40f38c7803d85a48b7ea26d93aca90 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 4 Oct 2022 12:01:46 +0200 Subject: [PATCH 165/479] fix Unit test build --- .../unit_tests/crend/ivas_crend_io_parse.h | 4 ++- .../unit_tests/crend/ivas_dec_parse_io.h | 30 ++++++++++--------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h index 21b59ad06f..abc8b1e463 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h @@ -49,6 +49,8 @@ #define IVAS_IN_FMT_714 "714" #define IVAS_IN_FMT_FOA "HOA1S" +#define IVAS_MAX_NUM_CH 16 + #define IVAS_MAX_PATH_LEN ( 2000 ) typedef enum ivas_in_out_fmt_struct_t @@ -65,7 +67,7 @@ typedef enum ivas_in_out_fmt_struct_t HOA_16, OBA, } ivas_in_out_fmt_t, - IVAS_IN_OUT_FMT_CONFIG; + IVAS_IN_OUT_FMT_CONFIG; #define CREND_MAND_ARGS 6 /* Tests */ diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h index fe05a96f4f..ed4071d8ca 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h @@ -54,14 +54,14 @@ #define IVAS_IN_FMT_COMBINED "Combined" #define IVAS_IN_FMT_HOA_3 "HOA3S" -#define MAX_PCM_OUT_FILES ( IVAS_MAX_NUM_CH ) +#define MAX_PCM_OUT_FILES ( IVAS_MAX_NUM_CH ) #define REQ_DEC_CMD_LINE_PARAMS ( 7 ) #define IVAS_MAX_PATH_LEN ( 2000 ) #define IVAS_EXT_ADD_DELAY_MS ( 2 ) -#define MAX_OUT_FILE_LEN ( 1000 ) -#define MAX_CH_IDX_TAG_LEN ( 10 ) +#define MAX_OUT_FILE_LEN ( 1000 ) +#define MAX_CH_IDX_TAG_LEN ( 10 ) /*------------------------------------------------------------------------------------------* * Global variables @@ -73,22 +73,24 @@ /* IVAS decoder output formats */ #define IVAS_NO_RENDERER ( -1 ) /* no renderer required */ -#define IVAS_DEFAULT_QUIET_MODE ( 0 ) +#define IVAS_DEFAULT_QUIET_MODE ( 0 ) #define IVAS_DEFAULT_NO_DELAY_COMP_MODE ( 0 ) -#define IVAS_DEFAULT_BS_FORMAT ( IVAS_G192 ) -#define IVAS_DEFAULT_FMT ( IVAS_NO_RENDERER ) -#define IVAS_DEFAULT_LFE_CH_IDX ( 3 ) /* ch count starting from 0 */ -#define IVAS_DEFAULT_AGC ( 0 ) - -#define IVAS_IN_FMT_510 "510" -#define IVAS_IN_FMT_710 "710" -#define IVAS_IN_FMT_512 "512" -#define IVAS_IN_FMT_714 "714" -#define IVAS_IN_FMT_FOA "HOA1S" +#define IVAS_DEFAULT_BS_FORMAT ( IVAS_G192 ) +#define IVAS_DEFAULT_FMT ( IVAS_NO_RENDERER ) +#define IVAS_DEFAULT_LFE_CH_IDX ( 3 ) /* ch count starting from 0 */ +#define IVAS_DEFAULT_AGC ( 0 ) + +#define IVAS_IN_FMT_510 "510" +#define IVAS_IN_FMT_710 "710" +#define IVAS_IN_FMT_512 "512" +#define IVAS_IN_FMT_714 "714" +#define IVAS_IN_FMT_FOA "HOA1S" #define IVAS_IN_FMT_HOA_2 "HOA2S" #define IVAS_IN_FMT_HOA_3 "HOA3S" #define IVAS_IN_FMT_HOA_4 "HOA4S" +#define IVAS_MAX_NUM_CH 16 + /*------------------------------------------------------------------------------------------* * Structure definitions *------------------------------------------------------------------------------------------*/ -- GitLab From 63b73ac517998ea6be227ef448368a498e204ac8 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 4 Oct 2022 12:08:33 +0200 Subject: [PATCH 166/479] fix build warning --- lib_com/ivas_dirac_com.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index 56e623b019..fe344e6423 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -60,7 +60,11 @@ ivas_error ivas_dirac_config( ) { IVAS_FORMAT ivas_format; +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + int16_t sba_order; +#else int16_t sba_order, sba_planar; +#endif int16_t *nSCE, *nCPE, *element_mode, *nchan_transport; int32_t ivas_total_brate; DIRAC_CONFIG_DATA_HANDLE hConfig; @@ -83,7 +87,9 @@ ivas_error ivas_dirac_config( element_mode = &( (Encoder_Struct *) st_ivas )->hEncoderConfig->element_mode_init; nchan_transport = &( (Encoder_Struct *) st_ivas )->nchan_transport; sba_order = ( (Encoder_Struct *) st_ivas )->sba_analysis_order; +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar; +#endif ivas_total_brate = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->ivas_total_brate; Fs = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->input_Fs; band_grouping = ( (Encoder_Struct *) st_ivas )->hDirAC->band_grouping; @@ -108,7 +114,9 @@ ivas_error ivas_dirac_config( element_mode = &( (Decoder_Struct *) st_ivas )->element_mode_init; nchan_transport = &( (Decoder_Struct *) st_ivas )->nchan_transport; sba_order = ( (Decoder_Struct *) st_ivas )->sba_analysis_order; +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar; +#endif ivas_total_brate = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->ivas_total_brate; Fs = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->output_Fs; band_grouping = ( (Decoder_Struct *) st_ivas )->hDirAC->band_grouping; -- GitLab From ba3bb07a6f5423c0bfd71a121c93636496b78b5d Mon Sep 17 00:00:00 2001 From: rtyag Date: Tue, 4 Oct 2022 13:12:59 +0200 Subject: [PATCH 167/479] add -48 dB gain support in create_short_testvectors.py --- tests/create_short_testvectors.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/create_short_testvectors.py b/tests/create_short_testvectors.py index 13afe8a422..46e7dd85f3 100755 --- a/tests/create_short_testvectors.py +++ b/tests/create_short_testvectors.py @@ -57,6 +57,9 @@ def create_short_testvectors(): cut_gain = "16.0" cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) + cut_gain = ".004" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" + cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) if __name__ == "__main__": -- GitLab From bfeeb9947ee2029c502d070b9544b291c3eca2e7 Mon Sep 17 00:00:00 2001 From: rtyag Date: Tue, 4 Oct 2022 13:15:25 +0200 Subject: [PATCH 168/479] minor correction in create_short_testvectors.py --- tests/create_short_testvectors.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/create_short_testvectors.py b/tests/create_short_testvectors.py index 46e7dd85f3..56c41d49b8 100755 --- a/tests/create_short_testvectors.py +++ b/tests/create_short_testvectors.py @@ -59,7 +59,7 @@ def create_short_testvectors(): cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) cut_gain = ".004" cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" - cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) + cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) if __name__ == "__main__": -- GitLab From b5803bdf2a1a6f12d97ff3e9708373cdd01b2257 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 4 Oct 2022 18:19:13 +0200 Subject: [PATCH 169/479] Revert "Merge branch 'main' of forge.3gpp.org:ivas-codec-pc/ivas-codec into FhG/external-renderer" This reverts commit de89fb6c4ea9609b5b34d5d3daab5bd7cfe81478, reversing changes made to a94ea3b837207440cb977eb87b5d50026293a1bb. --- .gitignore | 3 - .gitlab-ci.yml | 344 ++------- apps/decoder.c | 8 +- apps/encoder.c | 2 +- ci/check_for_warnings.py | 2 +- ci/run_evs_be_test.py | 76 -- ci/run_scheduled_sanitizer_test.py | 130 ---- lib_com/bitstream.c | 53 +- lib_com/cnst.h | 3 +- lib_com/ivas_cnst.h | 42 +- lib_com/ivas_dirac_com.c | 48 +- lib_com/ivas_entropy_coder_common.c | 0 lib_com/ivas_fb_mixer.c | 4 +- lib_com/ivas_mdft_imdft.c | 0 lib_com/ivas_prot.h | 180 ++--- lib_com/ivas_rom_com.c | 34 +- lib_com/ivas_sba_config.c | 39 +- lib_com/ivas_sns_com.c | 4 +- lib_com/ivas_spar_com.c | 43 +- lib_com/ivas_spar_com_quant_util.c | 78 +- lib_com/ivas_stat_com.h | 4 +- lib_com/ivas_stereo_dft_com.c | 4 - lib_com/ivas_stereo_mdct_stereo_com.c | 2 +- lib_com/ivas_stereo_psychlpc_com.c | 5 +- lib_com/ivas_tools.c | 4 - lib_com/options.h | 23 +- lib_com/prot.h | 51 +- lib_debug/sba_debug.c | 0 lib_dec/acelp_core_dec.c | 12 +- lib_dec/acelp_core_switch_dec.c | 2 +- lib_dec/amr_wb_dec.c | 2 +- lib_dec/core_dec_init.c | 7 +- lib_dec/core_dec_switch.c | 6 +- lib_dec/core_switching_dec.c | 4 - lib_dec/dec_LPD.c | 4 +- lib_dec/dec_acelp_tcx_main.c | 2 +- lib_dec/dec_prm.c | 6 +- lib_dec/dec_tcx.c | 69 +- lib_dec/er_dec_tcx.c | 73 +- lib_dec/evs_dec.c | 2 +- lib_dec/fd_cng_dec.c | 94 ++- lib_dec/igf_dec.c | 54 -- lib_dec/init_dec.c | 6 +- lib_dec/ivas_core_dec.c | 21 +- lib_dec/ivas_cpe_dec.c | 50 +- lib_dec/ivas_dec.c | 17 +- lib_dec/ivas_dirac_dec.c | 87 +-- lib_dec/ivas_init_dec.c | 214 +++--- lib_dec/ivas_ism_metadata_dec.c | 8 - lib_dec/ivas_ism_param_dec.c | 8 - lib_dec/ivas_masa_dec.c | 32 - lib_dec/ivas_mc_param_dec.c | 2 +- lib_dec/ivas_mct_dec_mct.c | 4 - lib_dec/ivas_mdct_core_dec.c | 66 +- lib_dec/ivas_out_setup_conversion.c | 4 + lib_dec/ivas_qmetadata_dec.c | 35 +- lib_dec/ivas_sba_dec.c | 460 +---------- lib_dec/ivas_sce_dec.c | 14 +- lib_dec/ivas_spar_decoder.c | 48 +- lib_dec/ivas_spar_md_dec.c | 722 ++++++++++-------- lib_dec/ivas_stat_dec.h | 41 +- lib_dec/ivas_stereo_cng_dec.c | 20 - lib_dec/ivas_stereo_dft_dec.c | 40 - lib_dec/ivas_stereo_mdct_core_dec.c | 40 +- lib_dec/ivas_stereo_mdct_stereo_dec.c | 22 +- lib_dec/ivas_stereo_switching_dec.c | 32 +- lib_dec/ivas_tcx_core_dec.c | 12 +- lib_dec/lib_dec.c | 116 +-- lib_dec/stat_dec.h | 5 +- lib_dec/swb_tbe_dec.c | 11 +- lib_dec/tonalMDCTconcealment.c | 123 +-- lib_enc/bw_detect.c | 1 + lib_enc/enc_prm.c | 6 +- lib_enc/fd_cng_enc.c | 36 +- lib_enc/igf_enc.c | 6 +- lib_enc/ivas_agc_enc.c | 10 +- lib_enc/ivas_cpe_enc.c | 27 +- lib_enc/ivas_dirac_enc.c | 34 +- lib_enc/ivas_enc.c | 0 lib_enc/ivas_init_enc.c | 108 ++- lib_enc/ivas_ism_enc.c | 4 - lib_enc/ivas_masa_enc.c | 4 +- lib_enc/ivas_mcmasa_enc.c | 4 +- lib_enc/ivas_mct_core_enc.c | 0 lib_enc/ivas_mct_enc.c | 42 +- lib_enc/ivas_mct_enc_mct.c | 9 - lib_enc/ivas_mdct_core_enc.c | 6 +- lib_enc/ivas_qmetadata_enc.c | 59 +- lib_enc/ivas_rom_enc.c | 154 ++++ lib_enc/ivas_rom_enc.h | 5 + lib_enc/ivas_sba_enc.c | 43 +- lib_enc/ivas_sce_enc.c | 16 +- lib_enc/ivas_sns_enc.c | 2 +- lib_enc/ivas_spar_encoder.c | 66 +- lib_enc/ivas_spar_md_enc.c | 544 ++++++++----- lib_enc/ivas_stat_enc.h | 8 +- lib_enc/ivas_stereo_cng_enc.c | 9 - lib_enc/ivas_stereo_dft_enc.c | 16 +- lib_enc/ivas_stereo_dft_enc_itd.c | 15 + lib_enc/ivas_stereo_dmx_evs.c | 61 +- lib_enc/ivas_stereo_mdct_core_enc.c | 9 - lib_enc/ivas_stereo_switching_enc.c | 15 +- lib_enc/ivas_tcx_core_enc.c | 2 +- lib_enc/lib_enc.c | 244 +++--- lib_enc/tcx_utils_enc.c | 4 - lib_rend/ivas_crend.c | 14 - lib_rend/ivas_hrtf.c | 4 +- lib_rend/ivas_objectRenderer.c | 236 +----- lib_rend/ivas_objectRenderer_hrFilt.c | 44 +- lib_rend/ivas_objectRenderer_mix.c | 9 +- lib_rend/ivas_objectRenderer_sfx.c | 47 +- lib_rend/ivas_objectRenderer_sources.c | 12 +- lib_rend/ivas_output_init.c | 38 +- lib_rend/ivas_reverb.c | 7 - lib_util/hrtf_file_reader.c | 3 +- pytest.ini | 9 +- readme.txt | 2 +- scripts/IvasBuildAndRunChecks.py | 25 +- scripts/config/ci_linux.json | 2 +- scripts/config/self_test.prm | 8 - {tests => scripts/ivas_pytests}/conftest.py | 231 ++---- scripts/ivas_pytests/self_test_b.py | 273 +++++++ .../ivas_pytests/tests}/cmp_custom.py | 92 ++- .../ivas_pytests/tests}/cut_pcm.py | 6 +- scripts/ivas_pytests/tests/il2mm.py | 61 ++ scripts/ivas_pytests/tests/requirements.txt | 4 + .../system_tests/test_spar_foa_bs_dec_plc.py | 180 +++++ .../system_tests/test_spar_foa_bs_enc.py | 214 +++--- .../unit_tests/crend/ivas_crend_io_parse.h | 4 +- .../unit_tests/crend/ivas_dec_parse_io.h | 30 +- scripts/pyivastest/IvasModeRunner.py | 2 +- scripts/self_test.py | 20 +- scripts/tools/Darwin/networkSimulator_g192 | Bin 154584 -> 0 bytes scripts/tools/Win32/networkSimulator_g192.exe | 3 - tests/README.md | 173 ----- tests/create_short_testvectors.py | 66 -- tests/prepare_pytests.py | 132 ---- tests/requirements.txt | 4 - tests/run_pytests.py | 106 --- tests/test_param_file.py | 460 ----------- tests/test_sba_bs_dec_plc.py | 189 ----- tests/testconfig.py | 37 - 142 files changed, 2945 insertions(+), 5154 deletions(-) mode change 100644 => 100755 apps/encoder.c delete mode 100755 ci/run_evs_be_test.py delete mode 100644 ci/run_scheduled_sanitizer_test.py mode change 100644 => 100755 lib_com/bitstream.c mode change 100644 => 100755 lib_com/ivas_entropy_coder_common.c mode change 100644 => 100755 lib_com/ivas_mdft_imdft.c mode change 100644 => 100755 lib_com/ivas_spar_com.c mode change 100755 => 100644 lib_com/prot.h mode change 100644 => 100755 lib_debug/sba_debug.c mode change 100644 => 100755 lib_dec/acelp_core_dec.c mode change 100644 => 100755 lib_dec/evs_dec.c mode change 100644 => 100755 lib_dec/ivas_core_dec.c mode change 100644 => 100755 lib_dec/ivas_dirac_dec.c mode change 100644 => 100755 lib_dec/ivas_init_dec.c mode change 100644 => 100755 lib_dec/ivas_spar_decoder.c mode change 100644 => 100755 lib_dec/ivas_stereo_switching_dec.c mode change 100644 => 100755 lib_dec/lib_dec.c mode change 100644 => 100755 lib_dec/swb_tbe_dec.c mode change 100755 => 100644 lib_enc/igf_enc.c mode change 100644 => 100755 lib_enc/ivas_enc.c mode change 100644 => 100755 lib_enc/ivas_mct_core_enc.c mode change 100755 => 100644 lib_enc/ivas_mct_enc_mct.c mode change 100644 => 100755 lib_enc/ivas_stereo_dft_enc_itd.c mode change 100644 => 100755 lib_enc/lib_enc.c mode change 100755 => 100644 lib_enc/tcx_utils_enc.c rename {tests => scripts/ivas_pytests}/conftest.py (57%) create mode 100755 scripts/ivas_pytests/self_test_b.py rename {tests => scripts/ivas_pytests/tests}/cmp_custom.py (62%) mode change 100755 => 100644 rename {tests => scripts/ivas_pytests/tests}/cut_pcm.py (99%) create mode 100644 scripts/ivas_pytests/tests/il2mm.py create mode 100644 scripts/ivas_pytests/tests/requirements.txt create mode 100644 scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py rename tests/test_sba_bs_enc.py => scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py (71%) delete mode 100755 scripts/tools/Darwin/networkSimulator_g192 delete mode 100755 scripts/tools/Win32/networkSimulator_g192.exe delete mode 100644 tests/README.md delete mode 100755 tests/create_short_testvectors.py delete mode 100755 tests/prepare_pytests.py delete mode 100644 tests/requirements.txt delete mode 100755 tests/run_pytests.py delete mode 100644 tests/test_param_file.py delete mode 100644 tests/test_sba_bs_dec_plc.py delete mode 100644 tests/testconfig.py diff --git a/.gitignore b/.gitignore index 23179ca444..6b784623d5 100644 --- a/.gitignore +++ b/.gitignore @@ -42,12 +42,9 @@ scripts/c-code_instrument/ scripts/ifdef_instrument.list scripts/ref/ scripts/test/ -scripts/out/ scripts/self_test_summary.txt scripts/tests/cut/ scripts/tests/ref/ -tests/dut -tests/ref # Python files that pop up when running scripts __pycache__/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 62ee3cfdc3..6e279c76b0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,13 +1,6 @@ variables: TESTV_DIR: "/usr/local/testv" BUILD_OUTPUT: "build_output.txt" - EVS_BE_TEST_DIR: "/usr/local/be_2_evs_test" - SANITIZER_TESTS: "CLANG1 CLANG2" - OUT_FORMATS_CHANNEL_BASED: "stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4" - OUT_FORMATS_SCENE_BASED: "FOA HOA2 HOA3" - OUT_FORMATS_BINAURAL: "BINAURAL BINAURAL_ROOM" - EXIT_CODE_NON_BE: 123 - EXIT_CODE_FAIL: 1 # This sets when pipelines are created. Jobs have more specific rules to restrict them. @@ -20,6 +13,7 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main + stages: - maintenance - build @@ -57,8 +51,6 @@ stages: rules: - if: $MIRROR_ACCESS_TOKEN # Don't run in the mirror update pipeline (only then MIRROR_ACCESS_TOKEN is defined) when: never - - if: $CI_PIPELINE_SOURCE == 'schedule' # Don't run in any scheduled pipelines by default (use schedule templates below to enable again for certain conditions) - when: never - when: on_success .rules-merge-request: @@ -214,12 +206,6 @@ msan-on-merge-request-linux: - python3 scripts/self_test.py --create | tee test_output.txt - run_errors=$(cat test_output.txt | grep -ic "run errors") || true - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py with Clang memory-sanitizer"; exit 1; fi - artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" - paths: - - scripts/ref/logs/ - - test_output.txt - expose_as: 'Msan selftest results' # code selftest testvectors with address-sanitizer binaries @@ -236,12 +222,6 @@ asan-on-merge-request-linux: - python3 scripts/self_test.py --create | tee test_output.txt - run_errors=$(cat test_output.txt | grep -ic "run errors") || true - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py with Clang address-sanitizer"; exit 1; fi - artifacts: - name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" - paths: - - scripts/ref/logs/ - - test_output.txt - expose_as: 'Asan selftest results' # test external renderer executable external-renderer-make-pytest: @@ -281,7 +261,7 @@ external-renderer-cmake-msan-pytest: - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto # compare bit exactness between target and source branch -pytest-on-merge-request: +self-test-on-merge-request: extends: - .test-job-linux - .rules-merge-request @@ -323,53 +303,40 @@ pytest-on-merge-request: - mv IVAS_dec ../IVAS_dec_ref - cd .. - ### re-checkout the commit from the source branch to have up-to-date test scripts and test vectors (and actually everything) + ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) - git checkout $source_branch_commit_sha - # some helper variables - "|| true" to prevent failures from grep not finding anything - - evs_non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]*non[ -]*be\]") || true - - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true - - expected_nonbe_1=0 - - expected_nonbe_2=0 - - fail_1=0 - - fail_2=0 - - ### prepare pytest - # create short test vectors - - python3 tests/create_short_testvectors.py - # rename test binaries back - - mv IVAS_cod_test IVAS_cod - - mv IVAS_dec_test IVAS_dec - # create references - - python3 -m pytest tests -v --update_ref 1 -m create_ref - - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 - - python3 -m pytest tests/test_param_file.py -v --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm - - ### run pytest - - exit_code=0 - - python3 -m pytest tests -v --junit-xml=report-junit.xml || exit_code=$? - - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - - - if [ $zero_errors != 1 ]; then echo "Run errors in pytest"; fail_1=1; fi + ### run selftest + - ls -altr scripts/testv + - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test | tee test_output.txt - - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures without non-BE tag encountered"; fail_1=1; fi - - if [ $exit_code -eq 1 ] && [ $non_be_flag != 0 ]; then echo "pytest run had failures with non-BE tag encountered"; expected_nonbe_1=1; fi + ### analyse test output - ### run pytest for EVS cases - - exit_code=0 - - python3 -m pytest tests/test_param_file.py -v --param_file scripts/config/self_test_evs.prm --junit-xml=report-junit-evs.xml || exit_code=$? - - zero_errors=$(cat report-junit-evs.xml | grep -c 'errors="0"') || true + # some helper variables - "|| true" to prevent failures from grep not finding anything + - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true + - run_errors=$(cat test_output.txt | grep -c "test conditions had run errors") || true + - bitexact=$(cat test_output.txt | grep -c "All [0-9]* tests are bitexact") || true + - EXIT_CODE_NON_BE=123 + - EXIT_CODE_FAIL=1 - - if [ $zero_errors != 1 ]; then echo "Run errors in pytest for EVS"; fail_2=1; fi + - selftest_exit_code=0 - - if [ $exit_code -eq 1 ] && [ $evs_non_be_flag == 0 ]; then echo "Non-bitexact EVS cases without EVS-non-BE tag encountered"; fail_2=1; fi - - if [ $exit_code -eq 1 ] && [ $evs_non_be_flag != 0 ]; then echo "Non-bitexact EVS cases with EVS-non-BE tag encountered"; expected_nonbe_2=1; fi + # check for crashes during the test, if any happened, fail the test + - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; exit $EXIT_CODE_FAIL; fi - # Check results from both tests - - if [ $fail_1 -eq 1 ] || [ $fail_2 -eq 1 ]; then exit $EXIT_CODE_FAIL; fi - - if [ $expected_nonbe_1 -eq 1 ] || [ $expected_nonbe_2 -eq 1 ]; then exit $EXIT_CODE_NON_BE; fi - - exit 0 + # check for non bitexact output and store exit code to also always run the SBA pytest + - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_FAIL; fi + - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_NON_BE; fi + ### run SBA pytest + - exit_code=0 + - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? + - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi + - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true + - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi + - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; exit $EXIT_CODE_FAIL; fi; + # return exit code from selftest if everything went well with the pytest run + - exit $selftest_exit_code allow_failure: exit_codes: - 123 @@ -377,47 +344,19 @@ pytest-on-merge-request: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" when: always paths: + - test_output.txt + - scripts/test/logs/ + - scripts/ref/logs/ - report-junit.xml - - report-junit-evs.xml - expose_as: 'pytest results' + expose_as: 'Self test results' reports: - junit: - - report-junit.xml - - report-junit-evs.xml + junit: report-junit.xml # --------------------------------------------------------------- # Test jobs for main branch # --------------------------------------------------------------- -# check bitexactness to EVS -be-2-evs-linux: - extends: - - .test-job-linux - - .rules-main-push - tags: - - be-2-evs-temp - stage: test - needs: [ "build-codec-linux-cmake" ] - timeout: "20 minutes" # To be revisited - script: - - *print-common-info - - - mkdir build - - cd build - - cmake .. - - make -j - - cd .. - - # copy over to never change the testvector dir - - cp -r $EVS_BE_TEST_DIR ./evs_be_test - - cp build/IVAS_cod ./evs_be_test/bin/EVS_cod - - cp build/IVAS_dec ./evs_be_test/bin/EVS_dec - - - cd evs_be_test - - python3 ../ci/run_evs_be_test.py - - codec-comparison-on-main-push: extends: - .test-job-linux @@ -460,26 +399,37 @@ codec-comparison-on-main-push: ### re-checkout the latest commit in the main branch - git checkout $latest_commit - # helper variable - "|| true" to prevent failures from grep not finding anything + ### run selftest + - ls -altr scripts/testv + - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test | tee test_output.txt + + ### analyse test output + + # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true + - run_errors=$(cat test_output.txt | grep -c "test conditions had run errors") || true + - bitexact=$(cat test_output.txt | grep -c "All [0-9]* tests are bitexact") || true + - EXIT_CODE_NON_BE=123 + - EXIT_CODE_FAIL=1 + + - selftest_exit_code=0 + + # check for crashes during the test, if any happened, fail the test + - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; exit $EXIT_CODE_FAIL; fi - ### prepare pytest - # create short test vectors - - python3 tests/create_short_testvectors.py - # rename test binaries back - - mv IVAS_cod_test IVAS_cod - - mv IVAS_dec_test IVAS_dec - # create references - - python3 -m pytest tests -v --update_ref 1 -m create_ref - - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 - - ### run pytest + # check for non bitexact output and store exit code to also always run the SBA pytest + - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_FAIL; fi + - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_NON_BE; fi + + ### run SBA pytest - exit_code=0 - - python3 -m pytest tests -v --junit-xml=report-junit.xml || exit_code=$? + - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; exit $EXIT_CODE_FAIL; fi; + # return exit code from selftest if everything went well with the pytest run + - exit $selftest_exit_code allow_failure: exit_codes: - 123 @@ -487,186 +437,26 @@ codec-comparison-on-main-push: name: "main-push--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" when: always paths: + - test_output.txt + - scripts/test/logs/ + - scripts/ref/logs/ - report-junit.xml expose_as: 'Results of comparison to previous merge commit' reports: junit: report-junit.xml -# --------------------------------------------------------------- -# Scheduled jobs on main -# --------------------------------------------------------------- -.sanitizer-test-template: - extends: - - .test-job-linux-needs-testv-dir - stage: test - tags: - - sanitizer_test_main - artifacts: - name: "$CI_JOB_NAME--main--sha-$CI_COMMIT_SHORT_SHA" - when: always - paths: - - ep_015.g192 - -sanitizer-test-mono: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - script: - - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS - -sanitizer-test-stereo: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 20 minutes - script: - - python3 ci/run_scheduled_sanitizer_test.py stereo $OUT_FORMATS_CHANNEL_BASED --tests $SANITIZER_TESTS - -sanitizer-test-stereodmxevs: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 40 minutes - script: - - python3 ci/run_scheduled_sanitizer_test.py StereoDmxEvs mono --tests $SANITIZER_TESTS - -sanitizer-test-ism1: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 1 hour - script: - - python3 ci/run_scheduled_sanitizer_test.py ISM1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS - -sanitizer-test-ism2: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 1 hour 30 minutes - script: - - python3 ci/run_scheduled_sanitizer_test.py ISM2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS - -sanitizer-test-ism3: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 2 hours - script: - - python3 ci/run_scheduled_sanitizer_test.py ISM3 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS - -sanitizer-test-ism4: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 2 hours 30 minutes - script: - - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS - -sanitizer-test-mc-5_1: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 3 hours - script: - - python3 ci/run_scheduled_sanitizer_test.py 5_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS - -sanitizer-test-mc-5_1_2: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 4 hours - script: - - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS - -sanitizer-test-mc-5_1_4: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 5 hours - script: - - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS - -sanitizer-test-mc-7_1: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 6 hours - script: - - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS - -sanitizer-test-mc-7_1_4: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 7 hours - script: - - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS - -sanitizer-test-masa: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 8 hours - script: - - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS - -sanitizer-test-sba: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 9 hours - script: - - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS - -sanitizer-test-planarsba: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 10 hours - script: - - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS - -# GCOV/LCOV coverage analysis of self_test suite -coverage-test-on-main-scheduled: - extends: - - .test-job-linux-needs-testv-dir - - .rules-main-scheduled - tags: - - coverage-test +sanitizer-test-on-main-scheduled: + extends: .test-job-linux-needs-testv-dir stage: test rules: - # only run in scheduled pipeline that passes this env vars - - if: $COVERAGE_TEST + # only run in scheduled pipeline that passes this env var + - if: $SANITIZER_TEST_IN_FMT script: - *print-common-info - - make GCOV=1 -j - - python3 tests/create_short_testvectors.py - - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref --ref_encoder_path IVAS_cod --ref_decoder_path IVAS_dec - - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref_part2 --ref_encoder_path IVAS_cod --ref_decoder_path IVAS_dec - - python3 -m pytest tests/test_param_file.py -v -n 0 --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path IVAS_cod --ref_decoder_path IVAS_dec - - lcov -c -d obj -o coverage.info - - genhtml coverage.info -o coverage - artifacts: - name: "main-coverage-sha-$CI_COMMIT_SHORT_SHA" - when: always - paths: - - coverage.info - - coverage + - echo "Running scheduled sanitizer" + # - python3 ci/run_scheduled_sanitizer_test.py $SANITIZER_TEST_IN_FMT $SANITIZER_TEST_OUT_FMTS + # --------------------------------------------------------------- # Other jobs diff --git a/apps/decoder.c b/apps/decoder.c index 3b53540bc3..953df8d6b8 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -426,25 +426,25 @@ int main( /* sanity check */ if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM ) { - fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n\n" ); + fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" ); goto cleanup; } if ( ( error = IVAS_DEC_GetRenderConfig( hIvasDec, &renderConfig ) ) != IVAS_ERR_OK ) { - fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); + fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK ) { - fprintf( stderr, "Failed to read renderer configuration from file %s\n\n", arg.renderConfigFilename ); + fprintf( stderr, "Failed to read renderer configuration from file %s\n", arg.renderConfigFilename ); goto cleanup; } if ( ( error = IVAS_DEC_FeedRenderConfig( hIvasDec, renderConfig ) ) != IVAS_ERR_OK ) { - fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); + fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } } diff --git a/apps/encoder.c b/apps/encoder.c old mode 100644 new mode 100755 index b1abc36d2f..47a6d42e30 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -1618,7 +1618,7 @@ static void usage_enc( void ) fprintf( stdout, " where 0 = adaptive, 3-100 = fixed in number of frames,\n" ); fprintf( stdout, " default is deactivated\n" ); fprintf( stdout, "-dtx : Activate DTX mode with a SID update rate of 8 frames\n" ); - fprintf( stdout, " Note: DTX is currently supported in EVS, stereo, 1 ISm, \n" ); + fprintf( stdout, " Note: DTX is currently supported in EVS, DFT/TD stereo, 1 ISm, \n" ); fprintf( stdout, " SBA (up to 128kbps) and MASA (up to 128kbps)\n" ); fprintf( stdout, "-rf p o : Activate channel-aware mode for WB and SWB signal at 13.2kbps, \n" ); fprintf( stdout, " where FEC indicator, p: LO or HI, and FEC offset, o: 2, 3, 5, or 7 in number of frames.\n" ); diff --git a/ci/check_for_warnings.py b/ci/check_for_warnings.py index cc658b3d40..c9240e040a 100755 --- a/ci/check_for_warnings.py +++ b/ci/check_for_warnings.py @@ -3,7 +3,7 @@ import argparse import sys -SEARCH_FOR = "warning" +SEARCH_FOR = "warning:" RETURN_FOUND = 123 diff --git a/ci/run_evs_be_test.py b/ci/run_evs_be_test.py deleted file mode 100755 index 9fa64877f2..0000000000 --- a/ci/run_evs_be_test.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env python3 -import subprocess -import pathlib -import sys -import concurrent.futures -from threading import Lock - - -README_FILES_PARALLEL = [ - "Readme_AMRWB_IO_enc.txt", - "Readme_AMRWB_IO_dec.txt", - "Readme_EVS_enc.txt", - "Readme_EVS_dec.txt", -] -README_FILES_JBM = ["Readme_JBM_dec.txt"] -README_FILES = README_FILES_PARALLEL + README_FILES_JBM -BINARY_PATHS = ["./bin/EVS_cod", "./bin/EVS_dec"] -FOLDER_PATHS = ["testv"] -BIN_PATHS = BINARY_PATHS * 2 - -def main(): - - if not environment_is_correct(): - return 1 - - result_dict = dict() - # run first part in parallel - with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor: - executor.map( - run_file, README_FILES_PARALLEL, BIN_PATHS, [result_dict] * len(README_FILES_PARALLEL) - ) - - # JBM test can not run concurrently with the others - run_file(README_FILES_JBM[0], BINARY_PATHS[1], result_dict) - - return analyze_results(result_dict) - - -def analyze_results(result_dict): - ret = 0 - - for filename, ret_code in result_dict.items(): - if ret_code != 0: - print(f"========= Test for {filename} failed! See log below: ==========") - with open(filename.replace("Readme", "Log")) as f: - print(f.read()) - ret = 1 - - return ret - - -def run_file(filename: str, bin_path: str, result_dict: dict): - ret_code = subprocess.call(["bash", filename, bin_path]) - with Lock(): - result_dict[filename] = ret_code - - -def environment_is_correct(): - """ - Check that the folder with the test resources is set up correctly: - - all Readme files there - - EVS binaries available in bin/ - - testv and switchPaths folder exist - Content is not checked, though - """ - ret = True - - for path in README_FILES + BINARY_PATHS + FOLDER_PATHS: - if not pathlib.Path(path).exists(): - print(f"Environment setup is incorrect - {path} not found.") - ret = False - - return ret - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py deleted file mode 100644 index 1ffaaf55a8..0000000000 --- a/ci/run_scheduled_sanitizer_test.py +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import sys -import subprocess -import pathlib - - -DURATION = "120" -CFG = "ci_linux.json" -SUPPORTED_TESTS = ["CLANG1", "CLANG2", "CLANG3", "VALGRIND"] -EP_FILE = "ep_015.g192" -GENPATT_CMD = f"gen-patt -tailstat -fer -g192 -gamma 0 -rate 0.15 -tol 0.001 -reset -n {int(DURATION) * 50} {EP_FILE}" -EIDXOR_CMD = "eid-xor -vbr -fer {bitstream} {ep_file} {out_file}" -MC_MODES = ["5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"] - -SCRIPT_DIR = pathlib.Path("./scripts").resolve() - - -def main(args): - in_format = args.in_format - out_formats = args.out_formats - tests = args.tests - run_fec = not args.skip_fec - - assert all([t in SUPPORTED_TESTS for t in tests]) - - modes = get_modes(in_format) - returncode = run_check(modes, out_formats, tests, run_fec=run_fec) - - sys.exit(returncode) - - -def get_modes(in_format: str) -> list: - - cmd = [ - SCRIPT_DIR.joinpath("runIvasCodec.py"), - "-C", - "MC" if in_format in MC_MODES else in_format, - "-l" - ] - list_process = subprocess.run(cmd, capture_output=True) - - output = list_process.stdout.decode("utf8") - - # correction for multichannel modes to avoid selecting some mono modes... - if in_format in MC_MODES: - in_format = "MC_" + in_format + "_b" - - mode_list = [m for m in output.splitlines() if in_format in m] - if "SBA" in in_format: - # rate switching not implemented yet - mode_list = [m for m in mode_list if not "_rs" in m] - - return mode_list - - -def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True): - - ### always run encoder and decoder with no frameloss - cmd_no_fec = [ - str(SCRIPT_DIR.joinpath("IvasBuildAndRunChecks.py")), - "-U", - DURATION, - "-p", - CFG, - "--checks", - *tests, - "-m", - *modes, - "--oc", - *out_formats, - ] - - print("======== Script command line WITHOUT plc: ========\n{}".format(" ".join(cmd_no_fec))) - - proc = subprocess.Popen(cmd_no_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - for c in iter(lambda: proc.stdout.read(1), b""): - sys.stdout.buffer.write(c) - proc.wait() - - if proc.returncode not in [0, 101]: - raise IvasBuildAndRunFailed("Failed at first run (no PLC)") - - returncode_no_fec = proc.returncode - - if not run_fec: - return returncode_no_fec - - ### second run: decoder only with disturbed bitstream - - # generate error pattern - subprocess.call(GENPATT_CMD.split()) - - # cleanup to avoid script errors - # we want "logs" and "dec" subfolders to be empty -> delete and recreate them - cleanup_folders = ["logs", "dec"] - for t in tests: - for fol in cleanup_folders: - for fi in pathlib.Path(t).joinpath(fol).iterdir(): - fi.unlink() - - cmd_fec = cmd_no_fec + ["--decoder_only", "-f", EP_FILE] - print("======== Script command line WITH plc: ========\n{}".format(" ".join(cmd_no_fec))) - - proc = subprocess.Popen(cmd_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - for c in iter(lambda: proc.stdout.read(1), b""): - sys.stdout.buffer.write(c) - proc.wait() - - returncode_fec = proc.returncode - - if returncode_fec not in [0, 101]: - raise IvasBuildAndRunFailed("failed at second run (PLC)") - - return 101 if 101 in [returncode_no_fec, returncode_fec] else 0 - - -class IvasBuildAndRunFailed(Exception): - pass - - -if __name__ == "__main__": - parser = argparse.ArgumentParser() - parser.add_argument("in_format", type=str) - parser.add_argument("out_formats", type=str, nargs="+") - parser.add_argument("--tests", type=str, nargs="+", default=["CLANG1", "CLANG2"]) - parser.add_argument("--skip_fec", action="store_true") - - sys.exit(main(parser.parse_args())) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c old mode 100644 new mode 100755 index 89ba17f84e..4e81fc9166 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -1820,11 +1820,7 @@ ivas_error preview_indices( break; } } -#ifdef ALIGN_SID_SIZE - else if ( total_brate == IVAS_SID_5k2 ) -#else else if ( total_brate == IVAS_SID_4k4 ) -#endif { /* read SID format */ st_ivas->sid_format = 0; @@ -1888,7 +1884,6 @@ ivas_error preview_indices( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format ); } } -#ifndef ALIGN_SID_SIZE else if ( total_brate == IVAS_SID_5k ) { /* SBA SID frame */ @@ -1897,7 +1892,6 @@ ivas_error preview_indices( st_ivas->sba_mode = SBA_MODE_SPAR; st_ivas->element_mode_init = IVAS_SCE; } -#endif /* only read element mode from active frames */ if ( is_DTXrate( total_brate ) == 0 ) @@ -1987,13 +1981,22 @@ ivas_error preview_indices( #ifndef SBA_ORDER_BITSTREAM st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 ); st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 ); - - st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); - -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ) ); #else + st_ivas->hDecoderConfig->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 ); + st_ivas->hDecoderConfig->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 ); + st_ivas->sba_analysis_order = st_ivas->hDecoderConfig->sba_order; +#endif +#ifdef SBA_ORDER_BITSTREAM + /*Hard coding the the sba_oder as 1 as higher not supported below 256k bitrate*/ + if ( total_brate < IVAS_256k ) + { + st_ivas->sba_analysis_order = 1; + } +#endif +#ifdef SBA_ORDER_BITSTREAM ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); +#else + ivas_sba_config( total_brate, st_ivas->sba_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); #endif } } @@ -2074,10 +2077,7 @@ ivas_error read_indices( } else if ( k == SIZE_IVAS_BRATE_TBL ) { -#ifdef ALIGN_SID_SIZE - return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); -#else - /*temp change for SPAR DTX*/ + /*temp change for spar DTX*/ if ( total_brate == IVAS_SID_5k ) { st_ivas->element_mode_init = -1; @@ -2086,7 +2086,6 @@ ivas_error read_indices( { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); } -#endif } else { @@ -2131,7 +2130,7 @@ ivas_error read_indices( } else { - sid_upd_bad = 1; /* this frame type may happen in ETSI/3GPP CS cases, a corrupt SID frames */ + sid_upd_bad = 1; /* this frame type may happen in ETSI/3GPP CS cases , a corrupt sid frames */ } } @@ -2216,7 +2215,7 @@ ivas_error read_indices( /* total_brate= 0 */ } - /* handle bad/lost speech frame(and CS bad SID frame) in the decoders CNG synthesis settings pair (total_brate, bfi) */ + /* handle bad/lost speech frame(and CS bad sid frame) in the decoders CNG synthesis settings pair (total_brate, bfi) */ if ( ( ( *CNG != 0 ) && ( ( speech_bad != 0 ) || ( speech_lost != 0 ) ) ) || /* SP_BAD or SPEECH_LOST) --> stay in CNG */ ( sid_upd_bad != 0 ) ) /* SID_UPD_BAD --> start CNG */ { @@ -2335,7 +2334,7 @@ static Word32 read_indices_mime_handle_dtx( { if ( st->bfi ) { - sid_upd_bad = 1; /* corrupt sid_first, signaled as bad SID */ + sid_upd_bad = 1; /* corrupt sid_first, signaled as bad sid */ } else { @@ -2393,7 +2392,7 @@ static Word32 read_indices_mime_handle_dtx( } /* in CNG */ - /* handle bad speech frame(and bad SID frame) in the decoders CNG synthesis settings pair (total_brate, bfi) */ + /* handle bad speech frame(and bad sid frame) in the decoders CNG synthesis settings pair (total_brate, bfi) */ if ( ( *CNG != 0 && ( speech_bad || speech_lost || no_data ) ) || /* SP_BAD or SPEECH_LOST) --> stay in CNG */ sid_upd_bad ) /* SID_UPD_BAD --> start/stay CNG */ { @@ -2980,18 +2979,4 @@ void evs_dec_previewFrame( } -#ifdef ALIGN_SID_SIZE -void dtx_read_padding_bits( - DEC_CORE_HANDLE st, - int16_t num_bits ) -{ - /* TODO: temporary hack, need to decide what to do with core-coder bitrate */ - int32_t tmp; - tmp = st->total_brate; - st->total_brate = st->total_brate + num_bits * FRAMES_PER_SEC; - get_next_indice( st, num_bits ); - st->total_brate = tmp; -} -#endif - #undef WMC_TOOL_MAN diff --git a/lib_com/cnst.h b/lib_com/cnst.h index 40a4710579..8e4c7c9908 100644 --- a/lib_com/cnst.h +++ b/lib_com/cnst.h @@ -67,7 +67,8 @@ #define MAX16B_FLT 32767.0f #define MIN16B_FLT ( -32768.0f ) #define PCM16_TO_FLT_FAC 32768.0f -#define MDFT_NORM_SCALING ( 1.0f / PCM16_TO_FLT_FAC ) + + #define MAX_FRAME_COUNTER 200 #define MAX_BITS_PER_FRAME 10240 /* Bits per frame for max. bitrate 512kbps */ diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 43b60566dc..223f3fa490 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -170,9 +170,7 @@ typedef enum #define HEAD_ROTATION_HOA_ORDER 3 /* HOA 3rd order */ #define MAX_CICP_CHANNELS 16 /* max channels for loudspeaker layouts (16 for custom layouts)*/ #define MAX_OUTPUT_CHANNELS 16 /* Maximum number of output channels (HOA 3rd order) */ -#ifndef FIX_CREND_CHANNELS #define IVAS_MAX_NUM_CH 16 /* == MAX_OUTPUT_CHANNELS */ -#endif #define FOA_CHANNELS 4 /* number of FOA channels */ @@ -202,12 +200,9 @@ typedef enum /*----------------------------------------------------------------------------------* * IVAS Bitrates *----------------------------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE -#define IVAS_SID_5k2 5200 /* SID frame bitrate */ -#else + #define IVAS_SID_4k4 4400 /* SID frame bitrate */ #define IVAS_SID_5k 5000 /* SBA SID frame bitrate */ -#endif #define IVAS_13k2 13200 #define IVAS_16k4 16400 #define IVAS_24k4 24400 @@ -225,13 +220,8 @@ typedef enum #define IVAS_BRATE_MAX IVAS_512k -#ifdef ALIGN_SID_SIZE -#define SIZE_IVAS_BRATE_TBL 16 -#define IVAS_NUM_ACTIVE_BRATES (SIZE_IVAS_BRATE_TBL - 2) -#else #define SIZE_IVAS_BRATE_TBL 17 #define IVAS_NUM_ACTIVE_BRATES (SIZE_IVAS_BRATE_TBL - 3) -#endif /*----------------------------------------------------------------------------------* * IVAS modes : IVAS SCE, IVAS CPE modes (DFT, TD, MDCT stereo) @@ -812,25 +802,16 @@ enum fea_names #define MAX_MDCT_ITD_BRATE IVAS_64k #define SNS_LOW_BR_MODE -1 -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ -#define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f -#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS -#define MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME 2 * FRAMES_PER_SEC -#define MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN 20 -#endif +#define MDCT_ST_PLC_FADEOUT_START_FRAME 3 typedef enum { EQUAL_CORES, TCX10_IN_0_TCX20_IN_1, TCX20_IN_0_TCX10_IN_1, } TONALMDCTCONC_NOISE_GEN_MODE; - -typedef enum { - ON_FIRST_LOST_FRAME, - ON_FIRST_GOOD_FRAME, -} TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE; #endif @@ -847,9 +828,6 @@ typedef enum { *----------------------------------------------------------------------------------*/ // VE: this should be renamed to e.g. N_SPATIAL_SUBFRAMES #define MAX_PARAM_SPATIAL_SUBFRAMES 4 /* Maximum number of subframes for parameteric spatial coding */ -#ifdef FIX_I106_TDREND_5MS -#define L_SPATIAL_SUBFR_48k (L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES) -#endif /*----------------------------------------------------------------------------------* @@ -858,7 +836,6 @@ typedef enum { #define SBA_PLANAR_BITS 1 #define SBA_ORDER_BITS 2 -#define SBA_MIN_BRATE_HOA IVAS_256k #define SBA_NHARM_HOA3 16 #define SBA_T_DESIGN_11_SIZE 70 @@ -874,15 +851,8 @@ typedef enum * DirAC Constants *----------------------------------------------------------------------------------*/ -#ifdef FIX_DIRAC_CHANNELS -#define DIRAC_MAX_ANA_CHANS FOA_CHANNELS /* Maximum number of channels for DirAC analysis */ -#else #define DIRAC_MAX_ANA_CHANS 4 /* Maximum number of channels for DirAC analysis */ -#endif - -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT #define DIRAC_MAX_TRANS_CHANS 8 /* Maximum number of transport channels for DirAC */ -#endif #define DIRAC_MIN_BITRATE_8_TRANS_CHAN IVAS_384k #define DIRAC_MIN_BITRATE_6_TRANS_CHAN IVAS_256k @@ -1036,9 +1006,9 @@ enum #define IVAS_DECORR_PARM_LOOKAHEAD_TAU 2e-3f #define IVAS_DECORR_PARM_APD_TAU 20e-3f -/* IVAS SBA PCA */ +/* IVAS PCA */ #define IVAS_PCA_NB_SUBR 20 /* 80 -> 0.25 ms, 40 -> 0.5 ms... */ -#define IVAS_PCA_COV_THRES 3e-5f +#define IVAS_PCA_COV_THRES 1e-9f #define IVAS_PCA_QUAT_EPS 1e-7f #define IVAS_PCA_QBITS 19 #define IVAS_PCA_N1 91 @@ -1169,7 +1139,7 @@ enum #define MASA_STEREO_MIN_BITRATE IVAS_24k4 #define MASA_BIT_REDUCT_PARAM 10 -#define MASA_MAXIMUM_TWO_DIR_BANDS 18 + typedef enum { MASA_STEREO_NOT_DEFINED, diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index fe344e6423..849e889739 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -60,11 +60,7 @@ ivas_error ivas_dirac_config( ) { IVAS_FORMAT ivas_format; -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - int16_t sba_order; -#else int16_t sba_order, sba_planar; -#endif int16_t *nSCE, *nCPE, *element_mode, *nchan_transport; int32_t ivas_total_brate; DIRAC_CONFIG_DATA_HANDLE hConfig; @@ -86,10 +82,12 @@ ivas_error ivas_dirac_config( nCPE = &( (Encoder_Struct *) st_ivas )->nCPE; element_mode = &( (Encoder_Struct *) st_ivas )->hEncoderConfig->element_mode_init; nchan_transport = &( (Encoder_Struct *) st_ivas )->nchan_transport; +#ifndef SBA_ORDER_BITSTREAM + sba_order = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_order; +#else sba_order = ( (Encoder_Struct *) st_ivas )->sba_analysis_order; -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar; #endif + sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar; ivas_total_brate = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->ivas_total_brate; Fs = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->input_Fs; band_grouping = ( (Encoder_Struct *) st_ivas )->hDirAC->band_grouping; @@ -113,10 +111,12 @@ ivas_error ivas_dirac_config( nCPE = &( (Decoder_Struct *) st_ivas )->nCPE; element_mode = &( (Decoder_Struct *) st_ivas )->element_mode_init; nchan_transport = &( (Decoder_Struct *) st_ivas )->nchan_transport; +#ifndef SBA_ORDER_BITSTREAM + sba_order = ( (Decoder_Struct *) st_ivas )->sba_order; +#else sba_order = ( (Decoder_Struct *) st_ivas )->sba_analysis_order; -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar; #endif + sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar; ivas_total_brate = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->ivas_total_brate; Fs = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->output_Fs; band_grouping = ( (Decoder_Struct *) st_ivas )->hDirAC->band_grouping; @@ -150,12 +150,8 @@ ivas_error ivas_dirac_config( if ( ivas_format == SBA_FORMAT ) /* skip for MASA decoder */ { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) -#else if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_planar, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -319,11 +315,9 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* i/o: element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - const int16_t sba_planar, /* i : SBA planar flag */ -#endif - const SBA_MODE sba_mode, /* i : SBA mode */ - const int16_t nbands /* i : number of frequency bands */ + const int16_t sba_planar, /* i : SBA planar flag */ + const SBA_MODE sba_mode, /* i : SBA mode */ + const int16_t nbands /* i : number of frequency bands */ ) { int16_t i; @@ -337,11 +331,7 @@ ivas_error ivas_dirac_sba_config( if ( sba_mode == SBA_MODE_SPAR ) { /*map the bitrate for SID frame*/ -#ifdef ALIGN_SID_SIZE - if ( sba_total_brate == IVAS_SID_5k2 ) -#else if ( sba_total_brate == IVAS_SID_5k ) -#endif { if ( *element_mode == IVAS_SCE ) { @@ -438,23 +428,11 @@ ivas_error ivas_dirac_sba_config( return error; } -#ifdef ALIGN_SID_SIZE - if ( sba_total_brate > IVAS_SID_5k2 ) -#else if ( sba_total_brate > IVAS_SID_4k4 ) -#endif { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); -#else *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); -#endif } -#ifdef ALIGN_SID_SIZE - else if ( sba_total_brate == IVAS_SID_5k2 ) -#else else if ( sba_total_brate == IVAS_SID_4k4 ) -#endif { switch ( *element_mode ) { @@ -593,7 +571,7 @@ ivas_error ivas_dirac_sba_config( return error; } -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT + /*------------------------------------------------------------------------- * ivas_dirac_getNumTransportChannels() * @@ -665,7 +643,7 @@ int16_t ivas_dirac_getNumTransportChannels( return num_channels; } -#endif + /*------------------------------------------------------------------------- * computeDirectionVectors() diff --git a/lib_com/ivas_entropy_coder_common.c b/lib_com/ivas_entropy_coder_common.c old mode 100644 new mode 100755 diff --git a/lib_com/ivas_fb_mixer.c b/lib_com/ivas_fb_mixer.c index 53ad90d01f..11746c64ef 100644 --- a/lib_com/ivas_fb_mixer.c +++ b/lib_com/ivas_fb_mixer.c @@ -1098,8 +1098,8 @@ static ivas_error ivas_filterbank_setup( for ( j = 0; j < IVAS_MAX_NUM_FB_BANDS; j++ ) { - pFb->fb_bin_to_band.p_short_stride_num_bins_per_band[j] = 0; /* aka num_active_bins per SPAR band */ - pFb->fb_bin_to_band.p_short_stride_start_bin_per_band[j] = 0; /* first considered bin index per SPAR band */ + pFb->fb_bin_to_band.p_short_stride_num_bins_per_band[j] = 0; /* aka num_active_bins per spar band */ + pFb->fb_bin_to_band.p_short_stride_start_bin_per_band[j] = 0; /* first considered bin index per spar band */ pFb->fb_bin_to_band.pp_short_stride_bin_to_band[j] = NULL; for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ ) { diff --git a/lib_com/ivas_mdft_imdft.c b/lib_com/ivas_mdft_imdft.c old mode 100644 new mode 100755 diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index b5bcfd5fb1..3003b9f785 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -238,10 +238,6 @@ uint32_t ivas_syn_output( int16_t *synth_out /* o : integer 16 bits synthesis signal */ ); -void ivas_initialize_handles_enc( - Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ -); - ivas_error ivas_init_encoder( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ Indice ind_list[][MAX_NUM_INDICES], /* i : indices list */ @@ -798,8 +794,8 @@ void ivas_param_ism_enc( ); void ivas_param_ism_enc_close( - DIRAC_ENC_HANDLE hDirAC, /* i/o: encoder DirAC handle */ - const int32_t input_Fs /* i : input sampling_rate */ + DIRAC_ENC_HANDLE hDirAC /* i/o: encoder DirAC handle */ + ,const int32_t input_Fs /* i : input sampling_rate */ ); void ivas_param_ism_stereo_dmx( @@ -1849,7 +1845,7 @@ void TNSAnalysisStereo( int16_t tnsSize[MCT_MAX_CHANNELS][NB_DIV], /* i : number of tns parameters put into prm */ int16_t tnsBits[MCT_MAX_CHANNELS][NB_DIV], /* i : number of tns bits in the frame */ int16_t param_core[][NB_DIV * NPRM_DIV], /* o : quantized noise filling level */ - const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ + const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ ); void InternalTCXDecoder( @@ -1950,12 +1946,15 @@ void decoder_tcx_invQ( const int16_t **prm_sqQ, int16_t *nf_seed, const int16_t bfi, /* i : Bad frame indicator */ +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + const int16_t isMCT, +#endif const int16_t frame_cnt /* i : frame counter in the super frame */ ); void decoder_tcx_noisefilling( Decoder_State *st, /* i/o: coder memory state */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT float concealment_noise[L_FRAME48k], #endif const float A[], /* i : coefficients NxAz[M+1] */ @@ -1970,7 +1969,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const int16_t isMCT, #endif const int16_t frame_cnt /* i : frame counter in the super frame */ @@ -2014,7 +2013,7 @@ void decoder_tcx_imdct( const int16_t left_rect, float x[N_MAX], float xn_buf[], - const uint16_t kernelType, /* i : TCX transform kernel type */ + const uint16_t kernelType, /* i : TCX transform kernel type */ const int16_t fUseTns, /* i : flag that is set if TNS data is present */ float synth[], /* i/o: synth[-M..L_frame] */ float synthFB[], @@ -2055,12 +2054,7 @@ void decoder_tcx_IGF_stereo( const int16_t L_frame, /* i : frame length */ const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - const int16_t bfi, /* i : bad frame indicator */ - const int16_t is_mct /* i : flag to signal MCT or SMDCT */ -#else const int16_t bfi /* i : bad frame indicator */ -#endif ); void ms_processing( @@ -2093,12 +2087,7 @@ void IGFDecApplyStereo( const int16_t igfGridIdx, /* i : in case of CELP->TCX switching, use 1.25 framelength */ const int16_t *coreMsMask, const int16_t restrict_hopsize, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t bfi_apply_damping /* i : decoder element mode */ -#else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ -#endif ); void IGFEncStereoEncoder( @@ -2166,7 +2155,7 @@ void stereo_mdct_core_dec( void splitAvailableBits( const int16_t total_bits, /* i : total available bits for TCX coding */ const int16_t split_ratio, /* i : split ratio */ - const int16_t isSBAStereoMode, /* i : signal core coding for SBA */ + const int16_t isSBAStereoMode, /* i : signal core coding for sba */ int16_t *bits_ch0, /* o : bits for channel 0 */ int16_t *bits_ch1 /* o : bits for channel 1 */ ); @@ -2184,7 +2173,7 @@ void parse_stereo_from_bitstream( STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct, /* i/o: MDCT stereo decoder structure */ Decoder_State **sts, /* i/o: decoder state structure */ const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ - const int16_t isSBAStereoMode, /* i : flag core coding for SBA */ + const int16_t isSBAStereoMode, /* i: flag core coding for sba */ Decoder_State *st0, /* i/o: decoder state structure for Bstr */ int16_t ms_mask[NB_DIV][MAX_SFB] /* o : bandwise MS mask */ ); @@ -2519,7 +2508,8 @@ ivas_error stereo_memory_enc( const int32_t input_Fs, /* i : input sampling rate */ const int16_t max_bwidth, /* i : maximum audio bandwidth */ float *tdm_last_ratio, /* o : TD stereo last ratio */ - const IVAS_FORMAT ivas_format, /* i : IVAS format */ + const IVAS_FORMAT ivas_format /* i : IVAS format */ + , const int16_t nchan_transport /* i : number transport chans */ ); @@ -2778,12 +2768,8 @@ void reset_metadata_spatial( int32_t *total_brate, /* o : total bitrate */ const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ -#ifndef ALIGN_SID_SIZE const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t element_mode /* i : element mode */ -#else - const SBA_MODE sba_mode /* i : SBA mode */ -#endif ); /*! r: number of bits written */ @@ -3033,10 +3019,8 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ - int16_t *element_mode /* o : element mode of the core coder */ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT + int16_t *element_mode, /* o : element mode of the core coder */ const SBA_MODE sba_mode /* i : SBA mode */ -#endif ); ivas_error ivas_sba_dec_reconfigure( @@ -3049,23 +3033,15 @@ void ivas_init_dec_get_num_cldfb_instances( int16_t *numCldfbSyntheses /* o : number of CLDFB synthesis instances */ ); -/*! r: Ambisonic (SBA) order */ int16_t ivas_sba_get_order( const int16_t nb_channels, /* i : Number of ambisonic channels */ const int16_t sba_planar /* i : SBA planar flag */ ); -/*! r: Ambisonic (SBA) order used for analysis and coding */ -int16_t ivas_sba_get_analysis_order( - const int32_t ivas_total_brate, /* i : IVAS total bitrate */ - const int16_t sba_order /* i : Ambisonic (SBA) order */ -); - int16_t ivas_sba_get_order_transport( const int16_t nchan_transport /* i : Number of transport channels */ ); -/*!r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ @@ -3185,21 +3161,18 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* o : element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT const int16_t sba_planar, /* i : SBA planar flag */ -#endif const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t nbands /* i : number of frequency bands */ ); -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*! r: number of IVAS transport channels */ int16_t ivas_dirac_getNumTransportChannels( const int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : SBA order */ const int16_t sba_planar /* i : SBA Planar flag */ ); -#endif + ivas_error ivas_dirac_dec_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); @@ -3392,8 +3365,8 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls( float RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],/* i : LS signals */ float ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],/* i : LS signals */ DIRAC_DEC_HANDLE hDirAC, /* i/o: DirAC handle */ - float *reference_power_smooth, - float qualityBasedSmFactor + float *reference_power_smooth + , float qualityBasedSmFactor ); void ivas_dirac_dec_get_response( @@ -3744,13 +3717,13 @@ void ivas_spar_config( void ivas_sba_upmixer_renderer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ float output[][L_FRAME48k], /* i/o: transport/output audio channels */ + const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ const int16_t output_frame /* i : output frame length */ ); void ivas_sba_mix_matrix_determiner( - SPAR_DEC_HANDLE hSpar, /* i/o: SPAR decoder handle */ - float output[][L_FRAME48k], /* i/o: transport/output audio channels */ - const int16_t bfi, /* i : BFI flag */ + Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ + float in_out[][L_FRAME48k], /* i/o: transport/output audio channels */ const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ const int16_t output_frame /* i : output frame length */ ); @@ -3842,12 +3815,7 @@ int16_t ivas_get_spar_table_idx( int16_t *ind /* o : indice */ ); -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT -/*! r: number of transport channels */ -int16_t ivas_get_sba_num_TCs( -#else int16_t ivas_get_spar_num_TCs( -#endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : IVAS SBA order */ ); @@ -3897,8 +3865,11 @@ void ivas_spar_dec_upmixer( /* MD module */ ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc, /* i/o: SPAR MD encoder handle */ - const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ - const int16_t sba_order /* i : Ambisonic (SBA) order */ + const ENCODER_CONFIG_HANDLE hEncoderConfig /* i : configuration structure */ +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif ); void ivas_spar_md_enc_close( @@ -3910,8 +3881,11 @@ ivas_error ivas_spar_md_enc_process( const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ ivas_spar_md_enc_in_buf_t *pIn_buf, BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ - const int16_t dtx_silence_mode, - const int16_t sba_order /* i : Ambisonic (SBA) order */ + const int16_t dtx_silence_mode +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif ); void ivas_compute_spar_params( @@ -4268,17 +4242,17 @@ int16_t ivas_map_num_drct_r_to_idx( const int16_t num_quant_points_drct_r ); int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ); /* Quantization utilities */ -void ivas_quantise_real_values( - const float *values, - const int16_t q_levels, - const float min_value, - const float max_value, - int16_t *index, - float *quant, - const int16_t dim +void ivas_quantise_real_values( + float **values, + const int16_t q_levels, + const float min_value, + const float max_value, + int16_t **index, + float **quant, + const int16_t dim1, + const int16_t dim2 ); - void ivas_spar_get_uniform_quant_strat( ivas_spar_md_com_cfg *pSpar_md_com_cfg, const int16_t table_idx @@ -4450,10 +4424,10 @@ void ivas_masa_prerender( void ivas_spar_param_to_masa_param_mapping( Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ - float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i : Input audio in CLDFB domain, real */ - float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i : Input audio in CLDFB domain, imag */ - const int16_t firstSubframe, /* i : First subframe to map */ - const int16_t nSubframes /* i : Number of subframes to map */ + float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i: Input audio in CLDFB domain, real */ + float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i: Input audio in CLDFB domain, imag */ + const int16_t firstSubframe, /* i: First subframe to map */ + const int16_t nSubframes /* i: Number of subframes to map */ ); @@ -4669,9 +4643,9 @@ void vbap_determine_gains( ); void v_sort_ind( - float *x, /* i/o: Vector to be sorted */ - int16_t *idx, /* o : Original index positions */ - const int16_t len /* i : vector length */ + float *x, /* i/o: Vector to be sorted */ + int16_t *idx, /* o : Original index positions */ + const int16_t len /* i : vector length */ ); /*----------------------------------------------------------------------------------* @@ -4706,7 +4680,7 @@ void ivas_lssetupconversion_process_param_mc( Decoder_Struct *st_ivas, /* i/o: LS setup conversion renderer handle */ float Cldfb_RealBuffer_InOut[MAX_CICP_CHANNELS][PARAM_MC_MAX_NSLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /* i/o: LS signals */ float Cldfb_ImagBuffer_InOut[MAX_CICP_CHANNELS][PARAM_MC_MAX_NSLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /* i/o: LS signals */ - int16_t channel_active[MAX_CICP_CHANNELS] /* i : bitmap indicating which output channels are active */ + int16_t channel_active[MAX_CICP_CHANNELS] /* i : bitmap indicating which output channels are active */ ); @@ -4912,7 +4886,8 @@ void ivas_HRTF_binary_close( TDREND_HRFILT_FiltSet_t **hHrtfTD /* i/o: TD renderer HRTF handle */ ); -void DefaultBSplineModel( +/*! r: TD Renderer result code. */ +ivas_error DefaultBSplineModel( TDREND_HRFILT_FiltSet_t *HrFiltSet_p, /* o : Loaded HR filter set */ const int32_t output_Fs /* i : Output sampling rate */ ); @@ -4925,7 +4900,7 @@ void ivas_td_binaural_close( BINAURAL_TD_OBJECT_RENDERER_HANDLE *hBinRendererTd /* i/o: TD binaural object renderer handle */ ); -void ObjRenderIVASFrame( +ivas_error ObjRenderIVASFrame( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ const int16_t output_frame /* i : output frame length */ @@ -4966,50 +4941,46 @@ void TDREND_HRFILT_SetFiltSet( #endif ivas_error TDREND_REND_RenderSourceHRFilt( -#ifdef FIX_I106_TDREND_5MS - TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#else const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif -#ifdef FIX_I106_TDREND_5MS - float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ - const int16_t subframe_length, /* i : Subframe length in use */ -#else float output_buf[][L_FRAME48k], /* o : Output buffer */ const int16_t output_frame, /* i : Output frame length in use */ -#endif const int32_t output_Fs /* i : Output sample rate */ ); /* ----- Object renderer - sources ----- */ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetPos( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const float *Vec_p /* i : Position vector */ ); +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetDir( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const float *Vec_p /* i : Direction vector */ ); +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetDirAtten( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const TDREND_DirAtten_t *DirAtten_p /* i : Directional attenuation specifier */ ); +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetPlayState( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const TDREND_PlayStatus_t PlayStatus /* i : Play state */ ); + void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ TDREND_SRC_REND_t *SrcRend_p, /* i/o: Source object */ @@ -5017,6 +4988,7 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( const int32_t output_Fs /* i : Output sample rate */ ); +/*! r: TD Renderer result code. */ ivas_error TDREND_SRC_Alloc( TDREND_SRC_t **Src_pp /* i/o: Source */ ); @@ -5070,6 +5042,7 @@ int16_t TDREND_SPATIAL_EvalOrthonormOrient( /* ----- Object renderer - mix ----- */ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_AddSrc( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ int16_t *SrcInd, /* o : Source index */ @@ -5077,16 +5050,19 @@ ivas_error TDREND_MIX_AddSrc( const int32_t output_Fs /* i : Output sampling rate */ ); +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SetDistAttenModel( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const TDREND_DistAttenModel_t DistAttenModel /* i : Distance attenuation model */ ); -void TDREND_MIX_LIST_SetPos( +/*! r: TD Renderer result code. */ +ivas_error TDREND_MIX_LIST_SetPos( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const float *Pos_p /* i : Listener's position */ ); +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_LIST_SetOrient( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const float *FrontVec_p, /* i : Listener's orientation front vector */ @@ -5097,6 +5073,7 @@ void TDREND_MIX_Dealloc( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd /* i/o: TD renderer handle */ ); +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_Init( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ TDREND_HRFILT_FiltSet_t **hHrtfTD, /* i/o: HRTF data (initialized in case of NULL) */ @@ -5106,25 +5083,24 @@ ivas_error TDREND_MIX_Init( /* ----- Object renderer - sfx ----- */ +/*! r: TD Renderer result code. */ ivas_error TDREND_SFX_SpatBin_Initialize( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters handle */ const int32_t output_Fs /* i : Output sampling rate */ ); -void TDREND_SFX_SpatBin_SetParams( +/*! r: TD Renderer result code. */ +ivas_error TDREND_SFX_SpatBin_SetParams( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct to be updated */ const SFX_SpatBin_Params_t *NewParam_p, /* i : New parameters struct */ const int32_t output_Fs /* i : Output sample rate */ ); -void TDREND_SFX_SpatBin_Execute_Main( +/*! r: TD Renderer result code. */ +ivas_error TDREND_SFX_SpatBin_Execute_Main( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters handle */ const float *InBuffer_p, /* i : Input buffer */ -#ifdef FIX_I106_TDREND_5MS - const int16_t subframe_length, /* i : subframe length */ -#else const int16_t output_frame, /* i : frame length */ -#endif float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ @@ -5473,7 +5449,7 @@ ivas_error ivas_orient_trk_GetTrackedOrientation( float *roll ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT void TonalMdctConceal_create_concealment_noise( float concealment_noise[L_FRAME48k], CPE_DEC_HANDLE hCPE, @@ -5482,21 +5458,9 @@ void TonalMdctConceal_create_concealment_noise( const int16_t idchan, const int16_t subframe_idx, const int16_t core, - const float crossfade_gain, + const int16_t crossfade_gain, const TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode ); - -void TonalMdctConceal_whiten_noise_shape( - Decoder_State *st, - const int16_t L_frame, - const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE -); - -int16_t get_igf_startline( - Decoder_State *st, - int16_t L_frame, - int16_t L_frameTCX -); #endif float rand_triangular_signed( @@ -5504,10 +5468,4 @@ float rand_triangular_signed( /* clang-format on */ -#ifdef ALIGN_SID_SIZE -void dtx_read_padding_bits( - DEC_CORE_HANDLE st, - int16_t num_bits ); -#endif - #endif /* IVAS_PROT_H */ diff --git a/lib_com/ivas_rom_com.c b/lib_com/ivas_rom_com.c index 4a82259296..e2ba9b8233 100644 --- a/lib_com/ivas_rom_com.c +++ b/lib_com/ivas_rom_com.c @@ -49,11 +49,7 @@ const int32_t ivas_brate_tbl[SIZE_IVAS_BRATE_TBL] = { -#ifdef ALIGN_SID_SIZE - FRAME_NO_DATA, IVAS_SID_5k2, -#else FRAME_NO_DATA, IVAS_SID_4k4, IVAS_SID_5k, -#endif IVAS_13k2, IVAS_16k4, IVAS_24k4, IVAS_32k, IVAS_48k, IVAS_64k, IVAS_80k, IVAS_96k, IVAS_128k, IVAS_160k, IVAS_192k, IVAS_256k, IVAS_384k, IVAS_512k @@ -907,11 +903,11 @@ const ivas_spar_br_table_t ivas_spar_br_table_consts[IVAS_SPAR_BR_TABLE_LEN] = { /* When AGC is ON additional (AGC_BITS_PER_CH+1) bits may be taken from each core-coder channel so minimum core-coder bitrate per channel can be min core-coder bitrates as per the table - AGC_BITS_PER_CH */ - { 24400, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{ { 16400, 14850, 24350 } }, + { 24400, 0, 1, FB, 24000, 1, WYXZ, 1, 0, + { { 16400, 14850, 24350 } }, { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, - { 32000, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{ { 24000, 20450, 31950 } }, - { { 21, 1, 5, 1 },{ 15, 1, 5, 1 },{ 15, 1, 3, 1 } }, 0, 0, 0 }, + { 32000, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{{ 24000, 20450, 31950 }},{ { 21, 1, 5, 1 },{ 15, 1, 5, 1 },{ 15, 1, 3, 1 } }, 0, 0, 0 }, { 48000, 0, 1, FB, 24000, 2, WYXZ, 0, 0,{ { 24000, 21000, 31950 },{ 16000, 15000, 20400 } }, { { 15, 7, 5, 1 },{ 15, 7, 3, 1 },{ 7, 7, 3, 1 } }, 1, 0, 0 }, @@ -959,6 +955,8 @@ const ivas_spar_br_table_t ivas_spar_br_table_consts[IVAS_SPAR_BR_TABLE_LEN] = { 512000, 0, 3, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 127200, 122550, 128000 },{ 76300, 73550, 128000 } }, // not yet optimized { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, + + }; const ivas_freq_models_t ivas_arith_pred_r_consts[TOTAL_PRED_QUANT_STRATS_ARITH] = @@ -1138,7 +1136,7 @@ const ivas_freq_models_t ivas_arith_pred_r_consts[TOTAL_PRED_QUANT_STRATS_ARITH] } }; -const ivas_freq_models_t ivas_arith_drct_r_consts[TOTAL_DRCT_QUANT_STRATS] = + const ivas_freq_models_t ivas_arith_drct_r_consts[TOTAL_DRCT_QUANT_STRATS] = { /* entry for 1 quantization points */ { @@ -1225,7 +1223,7 @@ const ivas_freq_models_t ivas_arith_drct_r_consts[TOTAL_DRCT_QUANT_STRATS] = } }; -const ivas_freq_models_t ivas_arith_decd_r_consts[TOTAL_DECD_QUANT_STRATS] = + const ivas_freq_models_t ivas_arith_decd_r_consts[TOTAL_DECD_QUANT_STRATS] = { /* entry for 1 quantization points */ { @@ -2735,7 +2733,7 @@ const uint8_t masa_twodir_bands[IVAS_NUM_ACTIVE_BRATES] = const uint8_t masa_twodir_bands_joined[IVAS_NUM_ACTIVE_BRATES] = { - 0, 0, 0, 0, 0, 2, 2, 3, 4, 6, 8, 9, 12, MASA_MAXIMUM_TWO_DIR_BANDS + 0, 0, 0, 0, 0, 2, 2, 3, 4, 6, 8, 9, 12, 18 }; @@ -3365,8 +3363,7 @@ const float ivas_mdft_coeff_cos_twid_960[IVAS_960_PT_LEN + 1] = 0.00654493796735196f, 0.00490871880799808f, 0.00327248650652671f, 0.00163624544362412f, 0.00000000000000000f }; - -const float ivas_mdft_coeff_cos_twid_640[IVAS_640_PT_LEN + 1] = +const float ivas_mdft_coeff_cos_twid_640[IVAS_640_PT_LEN +1] = { 1.00000000000000f, 0.999996988037278f, 0.999987952167257f, 0.999972892444367f, 0.999951808959328f, 0.999924701839145f, 0.999891571247108f, 0.999852417382795f, @@ -3527,10 +3524,9 @@ const float ivas_mdft_coeff_cos_twid_640[IVAS_640_PT_LEN + 1] = 0.0392598157590687f, 0.0368072229413588f, 0.0343544083996823f, 0.0319013869096110f, 0.0294481732479634f, 0.0269947821927155f, 0.0245412285229123f, 0.0220875270185784f, 0.0196336924606283f, 0.0171797396307788f, 0.0147256833114584f, 0.0122715382857199f, - 0.00981731933714973f, 0.00736304124977978f, 0.00490871880799808f, 0.00245436679646048f, - 0.00000000000000000f + 0.00981731933714973f, 0.00736304124977978f, 0.00490871880799808f, 0.00245436679646048f + ,0.00000000000000000f }; - const float ivas_mdft_coeff_cos_twid_320[IVAS_320_PT_LEN + 1] = { 1.00000000000000f, 0.999987952167257f, 0.999951808959328f, 0.999891571247108f, @@ -3612,10 +3608,9 @@ const float ivas_mdft_coeff_cos_twid_320[IVAS_320_PT_LEN + 1] = 0.0784590957278450f, 0.0735645635996675f, 0.0686682588843738f, 0.0637702995616845f, 0.0588708036511890f, 0.0539698892095020f, 0.0490676743274181f, 0.0441642771270675f, 0.0392598157590687f, 0.0343544083996823f, 0.0294481732479634f, 0.0245412285229123f, - 0.0196336924606283f, 0.0147256833114584f, 0.00981731933714973f, 0.00490871880799808f, - 0.0000000000000000f + 0.0196336924606283f, 0.0147256833114584f, 0.00981731933714973f, 0.00490871880799808f + ,0.0000000000000000f }; - const float ivas_mdft_coeff_cos_twid_240[IVAS_240_PT_LEN + 1] = { 1.0000000000f, 0.9999785817f, 0.9999143276f, 0.9998072405f, 0.9996573250f, 0.9994645875f, @@ -3690,7 +3685,6 @@ const float ivas_mdft_coeff_cos_twid_160[IVAS_160_PT_LEN + 1] = 0.0980171403f, 0.0882423705f, 0.0784590957f, 0.0686682589f, 0.0588708037f, 0.0490676743f, 0.0392598158f, 0.0294481732f, 0.0196336925f, 0.0098173193f, 0.000000000f }; - const float ivas_mdft_coeff_cos_twid_80[IVAS_80_PT_LEN + 1] = { 1.0000000000f, 0.9998072405f, 0.9992290362f, 0.9982656102f, 0.9969173337f, 0.9951847267f, @@ -3708,7 +3702,6 @@ const float ivas_mdft_coeff_cos_twid_80[IVAS_80_PT_LEN + 1] = 0.1564344650f, 0.1370123417f, 0.1175373975f, 0.0980171403f, 0.0784590957f, 0.0588708037f, 0.0392598158f, 0.0196336925f, 0.000000000f }; - const float ivas_mdft_coeff_cos_twid_40[IVAS_40_PT_LEN + 1] = { 1.0000000000f, 0.9992290362f, 0.9969173337f, 0.9930684570f, 0.9876883406f, 0.9807852804f, @@ -3719,7 +3712,6 @@ const float ivas_mdft_coeff_cos_twid_40[IVAS_40_PT_LEN + 1] = 0.3826834324f, 0.3461170571f, 0.3090169944f, 0.2714404499f, 0.2334453639f, 0.1950903220f, 0.1564344650f, 0.1175373975f, 0.0784590957f, 0.0392598158f, 0.000000000f }; - const float ivas_sin_twiddle_480[IVAS_480_PT_LEN >> 1] = { -0.000818122995607253f, -0.00736304124977957f, -0.0139076440957708f, -0.0204516511845773f, diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index 58cd80bc37..28a66df68f 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -87,11 +87,8 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA Planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ - int16_t *element_mode /* o : element mode of the core coder */ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - , - const SBA_MODE sba_mode /* i : SBA mode */ -#endif + int16_t *element_mode, /* o : element mode of the core coder */ + const SBA_MODE sba_mode /* i : SBA mode */ ) { if ( ( sba_order < 0 ) && ( nb_channels < 0 ) ) @@ -120,9 +117,6 @@ void ivas_sba_config( if ( nchan_transport != NULL ) { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); -#else if ( sba_mode == SBA_MODE_SPAR ) { *nchan_transport = ivas_get_spar_num_TCs( sba_total_brate, sba_order ); @@ -131,7 +125,6 @@ void ivas_sba_config( { *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); } -#endif } /* Configure core coder number of elements*/ @@ -165,7 +158,6 @@ void ivas_sba_config( * Get Ambisonic order from number of ambisonic channels *-------------------------------------------------------------------*/ -/*! r: Ambisonic (SBA) order */ int16_t ivas_sba_get_order( const int16_t nb_channels, /* i : Number of ambisonic channels */ const int16_t sba_planar /* i : SBA Planar flag */ @@ -190,32 +182,6 @@ int16_t ivas_sba_get_order( } -/*-------------------------------------------------------------------* - * ivas_sba_get_analysis_order() - * - * Get Ambisonic order used for analysis and coding - *-------------------------------------------------------------------*/ - -/*! r: Ambisonic (SBA) order used for analysis and coding */ -int16_t ivas_sba_get_analysis_order( - const int32_t ivas_total_brate, /* i : IVAS total bitrate */ - const int16_t sba_order /* i : Ambisonic (SBA) order */ -) -{ - int16_t sba_analysis_order; - - sba_analysis_order = sba_order; - - if ( ivas_total_brate < SBA_MIN_BRATE_HOA ) - { - /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ - sba_analysis_order = 1; - } - - return sba_analysis_order; -} - - /*-------------------------------------------------------------------* * ivas_sba_get_order_transport() * @@ -249,7 +215,6 @@ int16_t ivas_sba_get_order_transport( * Get number of Ambisonic channels *-------------------------------------------------------------------*/ -/*!r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ diff --git a/lib_com/ivas_sns_com.c b/lib_com/ivas_sns_com.c index b1555a038b..51f5fcee64 100644 --- a/lib_com/ivas_sns_com.c +++ b/lib_com/ivas_sns_com.c @@ -37,7 +37,7 @@ #include "ivas_prot.h" #include "rom_com.h" #include -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT #include #endif #ifdef DEBUGGING @@ -45,7 +45,7 @@ #endif #include "wmops.h" -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT /*------------------------------------------------------------------- * sns_compute_scf() diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c old mode 100644 new mode 100755 index ce4e742401..3c908c7980 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -137,23 +137,23 @@ void ivas_get_twid_factors( float ivas_get_mdct_scaling_gain( const int16_t dct_len_by_2 ) { - float gain = 0.0f; + float result = 0.0f; switch ( dct_len_by_2 ) { case L_FRAME48k >> 2: { - gain = IVAS_MDCT_SCALING_GAIN_48k; + result = IVAS_MDCT_SCALING_GAIN_48k; break; } case L_FRAME32k >> 2: { - gain = IVAS_MDCT_SCALING_GAIN_32k; + result = IVAS_MDCT_SCALING_GAIN_32k; break; } case L_FRAME16k >> 2: { - gain = IVAS_MDCT_SCALING_GAIN_16k; + result = IVAS_MDCT_SCALING_GAIN_16k; break; } default: @@ -163,7 +163,7 @@ float ivas_get_mdct_scaling_gain( } } - return gain; + return result; } @@ -311,11 +311,7 @@ void ivas_spar_config( const int16_t sid_format /* i : IVAS format indicator from SID frame */ ) { -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate == IVAS_SID_5k2 ) -#else if ( ivas_total_brate == IVAS_SID_5k ) -#endif { if ( sid_format == SID_SBA_1TC ) { @@ -328,11 +324,7 @@ void ivas_spar_config( } else { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - *nchan_transport = ivas_get_sba_num_TCs( ivas_total_brate, sba_order ); -#else *nchan_transport = ivas_get_spar_num_TCs( ivas_total_brate, sba_order ); -#endif } *nCPE = ( *nchan_transport > 1 ) ? ( *nchan_transport + 1 ) >> 1 : 0; @@ -341,11 +333,7 @@ void ivas_spar_config( if ( *nchan_transport == 1 ) { /* map SPAR SID bitrate to SPAR active bitrate */ -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate == IVAS_SID_5k2 ) -#else if ( ivas_total_brate == IVAS_SID_5k ) -#endif { ivas_total_brate = IVAS_32k; } @@ -420,16 +408,6 @@ int16_t ivas_get_spar_table_idx( } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT -/*-------------------------------------------------------------------* - * ivas_get_sba_num_TCs() - * - * Return number of TCs in SBA format - *-------------------------------------------------------------------*/ - -/*! r: number of transport channels */ -int16_t ivas_get_sba_num_TCs( -#else /*-------------------------------------------------------------------* * ivas_get_spar_num_TCs() * @@ -438,27 +416,16 @@ int16_t ivas_get_sba_num_TCs( /*! r: number of transport channels */ int16_t ivas_get_spar_num_TCs( -#endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { int16_t table_idx, nchan_transport; -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate == IVAS_SID_5k2 ) -#else if ( ivas_total_brate == IVAS_SID_5k ) -#endif { nchan_transport = 1; } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - else if ( ivas_sba_mode_select( ivas_total_brate ) == SBA_MODE_DIRAC ) - { - nchan_transport = 1; - } -#endif else { table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); diff --git a/lib_com/ivas_spar_com_quant_util.c b/lib_com/ivas_spar_com_quant_util.c index c095e20107..9b0a936018 100644 --- a/lib_com/ivas_spar_com_quant_util.c +++ b/lib_com/ivas_spar_com_quant_util.c @@ -42,49 +42,90 @@ #include #include "wmops.h" +/*-----------------------------------------------------------------------------------------* + * Function ivas_limit_values() + * + * Limit values within given range + *-----------------------------------------------------------------------------------------*/ + +static void ivas_limit_values( + float **ppValues, + const float min_value, + const float max_value, + const int16_t dim1, + const int16_t dim2 ) +{ + int16_t i, j; + + for ( i = 0; i < dim1; i++ ) + { + for ( j = 0; j < dim2; j++ ) + { + ppValues[i][j] = max( min_value, min( ppValues[i][j], max_value ) ); + } + } + + return; +} + + /*-----------------------------------------------------------------------------------------* * Function ivas_quantise_real_values() * * Quantize real values *-----------------------------------------------------------------------------------------*/ + void ivas_quantise_real_values( - const float *values, + float **values, const int16_t q_levels, const float min_value, const float max_value, - int16_t *index, - float *quant, - const int16_t dim ) + int16_t **index, + float **quant, + const int16_t dim1, + const int16_t dim2 ) { - int16_t i; + int16_t i, j; float q_step, one_by_q_step; + if ( q_levels == 1 ) { - for ( i = 0; i < dim; i++ ) + for ( i = 0; i < dim1; i++ ) { - quant[i] = 0; - index[i] = 0; + for ( j = 0; j < dim2; j++ ) + { + quant[i][j] = 0; + index[i][j] = 0; + } } } else if ( q_levels && max_value != min_value ) { + ivas_limit_values( values, min_value, max_value, dim1, dim2 ); + q_step = ( max_value - min_value ) / ( q_levels - 1 ); one_by_q_step = ( q_levels - 1 ) / ( max_value - min_value ); - float val; - for ( i = 0; i < dim; i++ ) + + for ( i = 0; i < dim1; i++ ) { - val = max( min_value, min( values[i], max_value ) ); - index[i] = (int16_t) round( one_by_q_step * val ); - quant[i] = index[i] * q_step; + for ( j = 0; j < dim2; j++ ) + { + index[i][j] = (int16_t) round( one_by_q_step * values[i][j] ); + quant[i][j] = index[i][j] * q_step; + } } } else { - for ( i = 0; i < dim; i++ ) + for ( i = 0; i < dim1; i++ ) { - quant[i] = values[i]; + for ( j = 0; j < dim2; j++ ) + { + quant[i][j] = values[i][j]; + } } } + return; } @@ -218,7 +259,7 @@ void ivas_map_prior_coeffs_quant( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_quant_dtx_init() * - * Init SPAR MD with minmax vals + * Init spar md with minmax vals *-----------------------------------------------------------------------------------------*/ void ivas_spar_quant_dtx_init( @@ -306,7 +347,7 @@ void ivas_copy_band_coeffs_idx_to_arr( /*-----------------------------------------------------------------------------------------* * Function ivas_clear_band_coeffs() * - * clear band coeffs array in SPAR MD + * clear band coeffs array in spar MD *-----------------------------------------------------------------------------------------*/ void ivas_clear_band_coeffs( @@ -333,7 +374,7 @@ void ivas_clear_band_coeffs( /*-----------------------------------------------------------------------------------------* * Function ivas_clear_band_coeff_idx() * - * clear band coeffs index array in SPAR MD + * clear band coeffs index array in spar MD *-----------------------------------------------------------------------------------------*/ void ivas_clear_band_coeff_idx( @@ -345,6 +386,7 @@ void ivas_clear_band_coeff_idx( for ( i = 0; i < num_bands; i++ ) { set_s( pband_coeff_idx[i].pred_index_re, 0, ( IVAS_SPAR_MAX_CH - 1 ) ); + set_s( pband_coeff_idx[i].drct_index_re, 0, IVAS_SPAR_MAX_C_COEFF ); set_s( pband_coeff_idx[i].decd_index_re, 0, ( IVAS_SPAR_MAX_CH - 1 ) ); } diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index e19d30dc71..8c54421f04 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -692,8 +692,8 @@ typedef struct ivas_fb_bin_to_band_data_t float *pFb_bin_to_band[IVAS_MAX_NUM_FB_BANDS]; const int16_t *pFb_start_bin_per_band; const int16_t *pFb_active_bins_per_band; - float pp_cldfb_weights_per_spar_band[CLDFB_NO_CHANNELS_MAX][IVAS_MAX_NUM_FB_BANDS]; /* weights for linear combination of parameters from different SPAR bands*/ - int16_t p_spar_start_bands[CLDFB_NO_CHANNELS_MAX]; /* the first SPAR band per CLFB band when the weight is > 0 */ + float pp_cldfb_weights_per_spar_band[CLDFB_NO_CHANNELS_MAX][IVAS_MAX_NUM_FB_BANDS]; /* weights for linear combination of parameters from different spar bands*/ + int16_t p_spar_start_bands[CLDFB_NO_CHANNELS_MAX]; /* the first spar band per CLFB band when the weight is > 0 */ int16_t p_cldfb_map_to_spar_band[CLDFB_NO_CHANNELS_MAX]; /* a direct mapping from CLDFB band to SPAR band */ int16_t p_short_stride_start_bin_per_band[IVAS_MAX_NUM_FB_BANDS]; int16_t p_short_stride_num_bins_per_band[IVAS_MAX_NUM_FB_BANDS]; diff --git a/lib_com/ivas_stereo_dft_com.c b/lib_com/ivas_stereo_dft_com.c index 7de3144f63..918fd27b35 100644 --- a/lib_com/ivas_stereo_dft_com.c +++ b/lib_com/ivas_stereo_dft_com.c @@ -82,11 +82,7 @@ void stereo_dft_config( hConfig->res_cod_mode = STEREO_DFT_RES_COD_OFF; } } -#ifdef ALIGN_SID_SIZE - else if ( brate == IVAS_SID_5k2 ) -#else else if ( brate == IVAS_SID_4k4 ) -#endif { *bits_frame_nominal = SID_2k40 / FRAMES_PER_SEC; if ( hConfig != NULL ) diff --git a/lib_com/ivas_stereo_mdct_stereo_com.c b/lib_com/ivas_stereo_mdct_stereo_com.c index cbb1423cd1..73cd2fd579 100644 --- a/lib_com/ivas_stereo_mdct_stereo_com.c +++ b/lib_com/ivas_stereo_mdct_stereo_com.c @@ -46,7 +46,7 @@ void splitAvailableBits( const int16_t total_bits, /* i : total available bits for TCX coding */ const int16_t split_ratio, /* i : split ratio */ - const int16_t isSBAStereoMode, /* i : signal core coding for SBA */ + const int16_t isSBAStereoMode, /* i : signal core coding for sba */ int16_t *bits_ch0, /* o : bits for channel 0 */ int16_t *bits_ch1 /* o : bits for channel 1 */ ) diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index 4ca10255a7..7093a91093 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -68,10 +68,11 @@ static void SpectrumWeighting_Init( * initialize a PsychoacousticParameters structure *-------------------------------------------------------------------*/ -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT static #endif -ivas_error PsychoacousticParameters_Init( + ivas_error + PsychoacousticParameters_Init( const int32_t sr_core, /* i : sampling rate of core-coder */ const int16_t nBins, /* i : Number of bins (spectral lines) */ const int8_t nBands, /* i : Number of spectrum subbands */ diff --git a/lib_com/ivas_tools.c b/lib_com/ivas_tools.c index 6b0c0eb297..079af159bc 100644 --- a/lib_com/ivas_tools.c +++ b/lib_com/ivas_tools.c @@ -1172,12 +1172,8 @@ int16_t is_SIDrate( if ( ( ivas_total_brate == SID_1k75 ) || ( ivas_total_brate == SID_2k40 ) || -#ifdef ALIGN_SID_SIZE - ( ivas_total_brate == IVAS_SID_5k2 ) ) -#else ( ivas_total_brate == IVAS_SID_4k4 ) || ( ivas_total_brate == IVAS_SID_5k ) ) -#endif { sid_rate_flag = 1; } diff --git a/lib_com/options.h b/lib_com/options.h index e3ead5c21a..054eca6526 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -141,23 +141,24 @@ #endif #define DISABLE_ADAP_RES_COD_TMP /* temporary fix for IVAS-403, disables adaptive residual coding */ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ + /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -#define MDCT_STEREO_PLC_FADE_2_BG_NOISE /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ -#define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS +/*#define FIX_IVAS_185_MDCT_ST_PLC_FADEOUT*/ /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ -#define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ -#define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ -#define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ -#define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ -#define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ -#define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ -#define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ - #define EXT_RENDERER /* FhG: external renderer library and standalone application */ #define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ + +#define FIX_WRONG_NBANDS_IN_ITD_ESTIMATION /* Issue 85: fix incorrect setting of nbands in calc_mean_E_ratio() if bwidth is limited on commandline*/ + +#define FIX_I87 /* fix for issue 86: incorrect Ambisonics order set for head rotation in SBA */ +#define SBA_ORDER_BITSTREAM /* issue 76: Use input sba order for bitstream coding */ + +/* NTT switches */ +#define NTT_UPDATE_ITD_SW /* contribution 4: Update of ITD switch in stereo downmix for EVS */ +#define NTT_REMOVE_EPS_ROM /* contribution 4: Reduction of ROM size in stereo downmix for EVS */ + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_com/prot.h b/lib_com/prot.h old mode 100755 new mode 100644 index 86e9e172e3..d9b238bdf0 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -2773,11 +2773,13 @@ void fb_tbe_enc( ); void fb_tbe_dec( - Decoder_State *st, /* i/o: decoder state structure */ - const float fb_exc[], /* i : FB excitation from the SWB part */ - float *hb_synth, /* i/o: high-band synthesis */ - float *fb_synth_ref, /* o : high-band synthesis 16-20 kHz */ - const int16_t output_frame /* i : output frame length */ + Decoder_State *st, /* i/o: decoder state structure */ + const float fb_exc[], /* i : FB excitation from the SWB part */ + float *hb_synth, /* i/o: high-band synthesis */ + float *fb_synth_ref /* o : high-band synthesis 16-20 kHz */ + , + const int16_t output_frame /* i: output frame length */ + ); void calc_tilt_bwe( @@ -5145,7 +5147,7 @@ void decod_amr_wb( ivas_error init_decoder( Decoder_State *st, /* o : Decoder static variables structure */ const int16_t idchan /* i : channel ID */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const MC_MODE mc_mode /* i : MC mode */ #endif @@ -6776,7 +6778,7 @@ void enc_acelp_tcx_main( void getTCXMode( Decoder_State *st, /* i/o: decoder memory state */ Decoder_State *st0 /* i : bitstream */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const int16_t MCT_flag #endif @@ -7181,7 +7183,7 @@ void WindowSignal( float out[], /* o : output windowed signal */ const int16_t truncate_aldo, /* i : nonzero to truncate long ALDO slope */ const int16_t fullband, /* i : fullband flag */ - const int16_t isLfe /* i : LFE flag */ + const int16_t isLfe /* i: LFE flag */ ); void HBAutocorrelation( @@ -7396,17 +7398,13 @@ void ProcessStereoIGF( Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ -#ifdef DRAM_REDUCTION_MCT_IGF - float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ -#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i : inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subframe*/ const int16_t sp_aud_decision0, /* i : sp_aud_decision0 */ const int32_t element_brate, /* i : element bitrate */ - const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ + const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ ); void AnalyzePowerSpectrum( @@ -7897,7 +7895,7 @@ void decoder_tcx_post( float *synthFB, float *A, const int16_t bfi -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const int16_t isMCT #endif @@ -7953,7 +7951,7 @@ void decoder_acelp( void writeTCXMode( Encoder_State *st, /* i/o: encoder state structure */ BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const int16_t is_mct, #endif int16_t *nbits_start /* o : nbits start */ @@ -8144,7 +8142,7 @@ void con_tcx( const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left /* i : TD-PLC only in left channel */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const float *A_cng #endif @@ -8693,7 +8691,7 @@ void configureFdCngDec( void ApplyFdCng( float *timeDomainInput, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT float *powerSpectrum, #endif float **realBuffer, /* i/o: Real part of the buffer */ @@ -8704,7 +8702,7 @@ void ApplyFdCng( void perform_noise_estimation_dec( const float *timeDomainInput, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT float *power_spectrum, #endif HANDLE_FD_CNG_DEC hFdCngDec, /* i/o: FD_CNG structure */ @@ -9206,7 +9204,7 @@ void open_decoder_LPD( const int32_t last_total_brate, /* i : last total bitrate */ const int16_t bwidth, /* i : audio bandwidth */ const int16_t is_mct, /* i : MCT mode flag */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const int16_t last_element_mode, #endif const int16_t is_init /* i : indicate call during initialization */ @@ -9249,9 +9247,9 @@ void mode_switch_decoder_LPD( const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ const int16_t is_mct /* i : MCT mode flag */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , - const int16_t last_element_mode /* i : last element mode */ + const int16_t last_element_mode #endif ); @@ -9533,7 +9531,7 @@ void TonalMDCTConceal_SaveFreqSignal( const uint16_t numSamples, const uint16_t nNewSamplesCore, const float *scaleFactors -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const int16_t infoIGFStartLine #endif @@ -9571,9 +9569,8 @@ void TonalMDCTConceal_InsertNoise( int16_t *pSeed, /*IN/OUT*/ const float tiltCompFactor, const float crossfadeGain, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const float concealment_noise[L_FRAME48k], - const float cngLevelBackgroundTrace_bfi, #endif const int16_t crossOverFreq ); @@ -9609,7 +9606,7 @@ void RefineTonalComponents( float floorPowerSpectrum, const PsychoacousticParameters *psychParamsCurrent ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ivas_error PsychoacousticParameters_Init( const int32_t sr_core, /* i : sampling rate of core-coder */ const int16_t nBins, /* i : Number of bins (spectral lines) */ @@ -9798,11 +9795,7 @@ void IGFEncApplyStereo( const IGF_ENC_INSTANCE_HANDLE hIGFEnc[CPE_CHANNELS], /* i : instance handle of IGF Encoder */ const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ -#ifdef DRAM_REDUCTION_MCT_IGF - float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i/o: inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subframe */ diff --git a/lib_debug/sba_debug.c b/lib_debug/sba_debug.c old mode 100644 new mode 100755 diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c old mode 100644 new mode 100755 index 684c12b57e..7951f10d54 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -125,11 +125,7 @@ ivas_error acelp_core_dec( error = IVAS_ERR_OK; -#ifdef ALIGN_SID_SIZE - if ( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_5k2 ) -#else if ( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_4k4 ) -#endif { /* In MDCT-Stereo DTX with mono output, we can skip CNG for the second channel, except for the first inactive frame following an active period */ return error; @@ -160,7 +156,7 @@ ivas_error acelp_core_dec( st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] = STEREO_DFT_FD_FILT * st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] + ( 1 - STEREO_DFT_FD_FILT ) * st->hFdCngDec->hFdCngCom->sidNoiseEst[i]; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ApplyFdCng( NULL, NULL, NULL, NULL, st, 0, 0 ); #else ApplyFdCng( NULL, NULL, NULL, st, 0, 0 ); @@ -534,7 +530,7 @@ ivas_error acelp_core_dec( { st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] = STEREO_DFT_FD_FILT * st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] + ( 1 - STEREO_DFT_FD_FILT ) * st->hFdCngDec->hFdCngCom->sidNoiseEst[i]; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); #else ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); @@ -1123,7 +1119,7 @@ ivas_error acelp_core_dec( if ( st->element_mode != IVAS_CPE_TD ) { /*Noise estimate*/ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); #else ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); @@ -1192,7 +1188,7 @@ ivas_error acelp_core_dec( /*Noise estimate*/ if ( st->idchan == 0 && ( nchan_out == 2 || ( st->core_brate != FRAME_NO_DATA && st->core_brate != SID_2k40 ) ) ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); #else ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); diff --git a/lib_dec/acelp_core_switch_dec.c b/lib_dec/acelp_core_switch_dec.c index 98854527e6..9daac37b74 100644 --- a/lib_dec/acelp_core_switch_dec.c +++ b/lib_dec/acelp_core_switch_dec.c @@ -534,7 +534,7 @@ ivas_error acelp_core_switch_dec_bfi( /*-------------------------------------------------------------------* * decod_gen_voic_core_switch() * - * Decode excitation signal in the first ACELP->HQ switching frame + * Decode excitation signal in teh first ACELP->HQ switching frame *-------------------------------------------------------------------*/ static void decod_gen_voic_core_switch( diff --git a/lib_dec/amr_wb_dec.c b/lib_dec/amr_wb_dec.c index 907d90e9ab..c220c8201e 100644 --- a/lib_dec/amr_wb_dec.c +++ b/lib_dec/amr_wb_dec.c @@ -621,7 +621,7 @@ ivas_error amr_wb_dec( /*VAD only for non inactive frame*/ st->VAD = ( st->VAD && ( st->coder_type != INACTIVE ) ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ApplyFdCng( syn, NULL, NULL, NULL, st, 0, 0 ); #else ApplyFdCng( syn, NULL, NULL, st, 0, 0 ); diff --git a/lib_dec/core_dec_init.c b/lib_dec/core_dec_init.c index bc8d95e24f..d2d94799ef 100644 --- a/lib_dec/core_dec_init.c +++ b/lib_dec/core_dec_init.c @@ -57,7 +57,7 @@ void open_decoder_LPD( const int32_t last_total_brate, const int16_t bwidth, const int16_t is_mct, /* i : MCT mode flag */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const int16_t last_element_mode, #endif const int16_t is_init /* i : indicate call from init_decoder() to avoid double TC initialization */ @@ -552,8 +552,9 @@ void open_decoder_LPD( { st->hTcxDec->prev_widow_left_rect = 0; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - if ( is_init || is_mct || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + /* Todo: should be considered for other stereo modes as well */ + if ( is_init || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV; st->hTcxDec->NoiseLevelIndex_bfi = PLC_MIN_STAT_BUFF_SIZE - 1; diff --git a/lib_dec/core_dec_switch.c b/lib_dec/core_dec_switch.c index c2084f3f12..637c185f32 100644 --- a/lib_dec/core_dec_switch.c +++ b/lib_dec/core_dec_switch.c @@ -57,9 +57,9 @@ void mode_switch_decoder_LPD( const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ const int16_t is_mct /* i : MCT mode flag */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , - const int16_t last_element_mode /* i : last element mode */ + const int16_t last_element_mode #endif ) { @@ -109,7 +109,7 @@ void mode_switch_decoder_LPD( if ( fscale != st->fscale || switchWB || bSwitchFromAmrwbIO || st->last_codec_mode == MODE1 || st->force_lpd_reset ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT open_decoder_LPD( st, total_brate, last_total_brate, bwidth, is_mct, last_element_mode, 0 ); #else open_decoder_LPD( st, total_brate, last_total_brate, bwidth, is_mct, 0 ); diff --git a/lib_dec/core_switching_dec.c b/lib_dec/core_switching_dec.c index e8c74bc2ef..61537f76e3 100644 --- a/lib_dec/core_switching_dec.c +++ b/lib_dec/core_switching_dec.c @@ -1048,11 +1048,7 @@ void bw_switching_pre_proc( if ( st->element_mode > EVS_MONO ) { -#ifdef ALIGN_SID_SIZE - if ( st->core == ACELP_CORE && !( st->bfi == 1 && st->con_tcx == 1 ) && st->hBWE_FD != NULL && !( st->core_brate <= SID_2k40 && st->element_mode == IVAS_CPE_DFT && nchan_out == 2 ) && !( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_5k2 ) ) -#else if ( st->core == ACELP_CORE && !( st->bfi == 1 && st->con_tcx == 1 ) && st->hBWE_FD != NULL && !( st->core_brate <= SID_2k40 && st->element_mode == IVAS_CPE_DFT && nchan_out == 2 ) && !( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_4k4 ) ) -#endif { /* Calculate tilt of the ACELP core synthesis - needed in SWB BWE decoding */ calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame ); diff --git a/lib_dec/dec_LPD.c b/lib_dec/dec_LPD.c index a28630886e..422104ac43 100644 --- a/lib_dec/dec_LPD.c +++ b/lib_dec/dec_LPD.c @@ -478,7 +478,7 @@ void decoder_LPD( if ( bfi && st->last_core != ACELP_CORE ) { /* PLC: [TCX: TD PLC] */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); #else con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); @@ -650,7 +650,7 @@ void decoder_LPD( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, L_frameTCX ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT decoder_tcx_post( st, synth, synthFB, Aq, bfi, 0 ); #else decoder_tcx_post( st, synth, synthFB, Aq, bfi ); diff --git a/lib_dec/dec_acelp_tcx_main.c b/lib_dec/dec_acelp_tcx_main.c index 1ca75fff20..b1bfd3e225 100644 --- a/lib_dec/dec_acelp_tcx_main.c +++ b/lib_dec/dec_acelp_tcx_main.c @@ -198,7 +198,7 @@ static void decode_frame_type( st->rate_switching_init = 1; /* Reconf Core */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT mode_switch_decoder_LPD( st, st->bwidth, st->total_brate, st->last_total_brate, frame_size_index, 0, st->element_mode ); #else mode_switch_decoder_LPD( st, st->bwidth, st->total_brate, st->last_total_brate, frame_size_index, 0 ); diff --git a/lib_dec/dec_prm.c b/lib_dec/dec_prm.c index 925b561fd6..37c64f18a3 100644 --- a/lib_dec/dec_prm.c +++ b/lib_dec/dec_prm.c @@ -55,7 +55,7 @@ void getTCXMode( Decoder_State *st, /* i/o: decoder memory state */ Decoder_State *st0 /* i : bitstream */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const int16_t MCT_flag #endif @@ -94,7 +94,7 @@ void getTCXMode( } st->coder_type = INACTIVE; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) { st->VAD = get_next_indice( st0, 1 ); @@ -793,7 +793,7 @@ void dec_prm( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT getTCXMode( st, st, 0 /* <- MCT_flag */ ); #else getTCXMode( st, st ); diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 502433517e..ae5faa4d73 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -98,9 +98,13 @@ void decoder_tcx( init_tcx_info( st, L_frame_glob, L_frameTCX_glob, frame_cnt, bfi, &tcx_offset, &tcx_offsetFB, &L_frame, &L_frameTCX, &left_rect, &L_spec ); +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + decoder_tcx_invQ( st, prm, A, Aind, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &xn_buf[0], &fUseTns, &tnsData, &gain_tcx, &prm_sqQ, &nf_seed, bfi, 0, /* <- isMCT */ frame_cnt ); +#else decoder_tcx_invQ( st, prm, A, Aind, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &xn_buf[0], &fUseTns, &tnsData, &gain_tcx, &prm_sqQ, &nf_seed, bfi, frame_cnt ); +#endif -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT decoder_tcx_noisefilling( st, NULL, A, L_frameTCX_glob, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, 0, frame_cnt ); #else decoder_tcx_noisefilling( st, A, L_frameTCX_glob, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, frame_cnt ); @@ -129,7 +133,7 @@ void decoder_tcx_post( float *synthFB, float *A, const int16_t bfi -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const int16_t isMCT #endif @@ -184,7 +188,7 @@ void decoder_tcx_post( /* PLC: [TCX: Fade-out] * PLC: update or retrieve the background level */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( bfi == 0 && st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) && st->clas_dec == UNVOICED_CLAS ) #else if ( bfi == 0 && st->tcxonly && st->clas_dec == UNVOICED_CLAS ) @@ -202,20 +206,6 @@ void decoder_tcx_post( if ( st->tcxonly ) { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / ( level_syn + 0.01f ); -#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS - - if ( st->element_mode == IVAS_CPE_MDCT && ! isMCT ) - { - if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME + MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN ) - { - gainCNG = 0.f; - } - else if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) - { - gainCNG *= 1.f - (float) ( st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) / MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN; - } - } -#endif } else { @@ -706,6 +696,9 @@ void decoder_tcx_invQ( const int16_t **prm_sqQ1, int16_t *nf_seed, const int16_t bfi, /* i : Bad frame indicator */ +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + const int16_t isMCT, +#endif const int16_t frame_cnt /* i : frame counter in the super frame */ ) { @@ -920,7 +913,16 @@ void decoder_tcx_invQ( hTcxDec->damping = 1; } +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + else if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) + { + *gain_tcx = hTcxDec->old_gaintcx_bfi; + hTcxDec->damping = Damping_fact( st->coder_type, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), st->last_core ); + } + else if ( st->element_mode != IVAS_CPE_MDCT || !isMCT ) +#else else +#endif { *gain_tcx = hTcxDec->old_gaintcx_bfi; hTcxDec->damping = Damping_fact( st->coder_type, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), st->last_core ); @@ -1077,7 +1079,7 @@ void decoder_tcx_invQ( void decoder_tcx_noisefilling( Decoder_State *st, /* i/o: coder memory state */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT float concealment_noise[L_FRAME48k], #endif const float A[], /* i : coefficients NxAz[M+1] */ @@ -1092,7 +1094,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const int16_t isMCT, #endif const int16_t frame_cnt /* i : frame counter in the super frame*/ @@ -1118,9 +1120,6 @@ void decoder_tcx_noisefilling( *-----------------------------------------------------------------*/ /* Init lengths */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - infoIGFStartLine = get_igf_startline( st, L_frame, L_frameTCX ); -#else if ( st->igf == 0 ) { if ( st->narrowBand == 0 ) @@ -1138,7 +1137,6 @@ void decoder_tcx_noisefilling( { infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX ); } -#endif noiseFillingSize = L_spec; if ( st->igf ) @@ -1250,7 +1248,7 @@ void decoder_tcx_noisefilling( if ( !bfi && st->element_mode != IVAS_CPE_MDCT ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x, L_frameTCX, L_frame, gainlpc2, infoIGFStartLine ); #else TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x, L_frameTCX, L_frame, gainlpc2 ); @@ -1263,8 +1261,8 @@ void decoder_tcx_noisefilling( { /* set f to 1 to not fade out */ /* set f to 0 to immediately switch to white noise */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - if ( st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) ) +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + if ( st->tcxonly && st->element_mode != IVAS_CPE_MDCT ) #else if ( st->tcxonly ) #endif @@ -1306,14 +1304,14 @@ void decoder_tcx_noisefilling( noiseTiltFactor = 1.0f; tcxGetNoiseFillingTilt( A, L_frame, ( total_brate >= ACELP_13k20 && !st->rf_flag ), &noiseTiltFactor ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) { - TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); + TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, infoIGFStartLine ); } else { - TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, NULL, hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); + TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, NULL, infoIGFStartLine ); } #else TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, infoIGFStartLine ); @@ -1395,7 +1393,7 @@ void decoder_tcx_noiseshaping_igf( * Noise shaping in frequency domain (1/Wz) * *-----------------------------------------------------------*/ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( st->igf && ( !bfi || ( st->element_mode == IVAS_CPE_MDCT && st->prev_bfi ) ) ) #else if ( st->igf && !bfi ) @@ -1945,12 +1943,7 @@ void decoder_tcx_IGF_stereo( const int16_t L_frame, /* i : frame length */ const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - const int16_t bfi, /* i : bad frame indicator */ - const int16_t is_mct /* i : flag to signal MCT or SMDCT */ -#else - const int16_t bfi /* i : bad frame indicator */ -#endif + const int16_t bfi /* i : bad frame indicator */ ) { int16_t coreMsMask[N_MAX]; @@ -2003,11 +1996,7 @@ void decoder_tcx_IGF_stereo( igfGridIdx = ( sts[0]->last_core == ACELP_CORE || ( left_rect && bfi ) ) ? IGF_GRID_LB_TRAN : IGF_GRID_LB_NORM; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, is_mct ); -#else IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi ); -#endif } return; diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index d72e88da5f..2fb4a8979a 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -34,8 +34,6 @@ EVS Codec 3GPP TS26.443 Nov 04, 2021. Version 12.14.0 / 13.10.0 / 14.6.0 / 15.4.0 / 16.3.0 ====================================================================================*/ -#include "cnst.h" -#include "ivas_cnst.h" #include #include #include "options.h" @@ -54,12 +52,13 @@ *-----------------------------------------------------------------*/ void con_tcx( - Decoder_State *st, /* i/o: coder memory state */ - float synth[], /* i/o: synth[] */ + Decoder_State *st, /* i/o: coder memory state */ + float synth[] /* i/o: synth[] */ + , const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left /* i : TD-PLC only in left channel */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const float *A_cng #endif @@ -281,7 +280,19 @@ void con_tcx( st->bpf_gain_param = 0; /* PLC: calculate damping factor */ - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), ACELP_CORE ); +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + alpha = 1.0f; + if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) + { + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); + } + else if ( st->element_mode != IVAS_CPE_MDCT ) + { + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); + } +#else + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); +#endif if ( st->nbLostCmpt == 1 ) { @@ -340,7 +351,19 @@ void con_tcx( set_f( pitch_buf, (float) L_SUBFR, st->nb_subfr ); /* PLC: calculate damping factor */ - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), ACELP_CORE ); +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + alpha = 1.0f; + if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) + { + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); + } + else if ( st->element_mode != IVAS_CPE_MDCT ) + { + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); + } +#else + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); +#endif } /*-----------------------------------------------------------------* @@ -437,7 +460,7 @@ void con_tcx( /* PLC: [TCX: Fade-out] retrieve background level */ tmp = 1.0f; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( A_cng != NULL ) { gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_cng, L_frame / 4, st->preemph_fac, 1 ) / 4.f; @@ -452,20 +475,6 @@ void con_tcx( if ( st->tcxonly ) { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / gainSynthDeemph; - -#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS - if ( st->element_mode == IVAS_CPE_MDCT && A_cng != NULL ) - { - if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME + MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN ) - { - gainCNG = 0.f; - } - else if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) - { - gainCNG *= 1.f - (float) ( st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) / MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN; - } - } -#endif } else { @@ -561,13 +570,26 @@ void con_tcx( mvr2r( buf, mem_syn, M ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( A_cng != NULL ) { - if ( st->plcBackgroundNoiseUpdated && alpha != 1.0f ) + if ( ( st->nbLostCmpt == 1 && st->idchan == 0 ) || ( st->nbLostCmpt == 2 && st->idchan == 1 ) ) + { + float lsp_cng[M]; + + lpc_from_spectrum( st->hFdCngDec->hFdCngCom, st->hFdCngDec->hFdCngCom->startBand, st->hFdCngDec->hFdCngCom->stopFFTbin, 0.f ); + + a2lsp_stab( st->hFdCngDec->hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); + mvr2r( lsp_cng, st->lspold_cng, M ); + } + + if ( alpha != 1.0f ) { - float lsp_local[M], lsp_fade[M], alpha_inv; + float lsp_local[M]; + float lsp_fade[M]; + float alpha_inv; + wmops_sub_start( "Fade LSPs" ); alpha_inv = 1.0f - alpha; a2lsp_stab( A_local, lsp_local, lsp_local ); @@ -578,6 +600,7 @@ void con_tcx( } lsp2a_stab( lsp_fade, A_local, M ); + wmops_sub_end(); } } #endif diff --git a/lib_dec/evs_dec.c b/lib_dec/evs_dec.c old mode 100644 new mode 100755 index e03b2ff2bc..b51ed8d6ea --- a/lib_dec/evs_dec.c +++ b/lib_dec/evs_dec.c @@ -676,7 +676,7 @@ ivas_error evs_dec( st->lp_noise = st->hFdCngDec->lp_noise; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ApplyFdCng( output, NULL, realBuffer, imagBuffer, st, concealWholeFrame, 0 ); #else ApplyFdCng( output, realBuffer, imagBuffer, st, concealWholeFrame, 0 ); diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index 85d82d953c..4f0e8574f0 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -368,7 +368,7 @@ void deleteFdCngDec( void ApplyFdCng( float *timeDomainInput, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT float *powerSpectrum, #endif float **realBuffer, /* i/o: Real part of the buffer */ @@ -384,7 +384,7 @@ void ApplyFdCng( int16_t j, k; float factor; float lsp_cng[M]; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT int16_t L_frame, last_L_frame; int32_t sr_core; @@ -419,7 +419,7 @@ void ApplyFdCng( /* set noise estimation inactive during concealment, as no update with noise generated by concealment should be performed. */ /* set noise estimation inactive when we have bit errors, as no update with noise generated by corrupt frame (biterror) should be performed. */ if ( concealWholeFrame == 0 && -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ( timeDomainInput == NULL || ( *timeDomainInput( -FLT_MAX ) && *( timeDomainInput + hFdCngCom->frameSize - 1 ) < FLT_MAX && @@ -435,7 +435,7 @@ void ApplyFdCng( ( !st->BER_detect ) ) { /* Perform noise estimation at the decoder */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); #else perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); @@ -471,7 +471,7 @@ void ApplyFdCng( } } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( st->element_mode == IVAS_CPE_MDCT && timeDomainInput == NULL ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = sqrtf( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / NORM_MDCT_FACTOR ); @@ -488,7 +488,7 @@ void ApplyFdCng( if ( hFdCngCom->active_frame_counter > 0 ) { /* Perform noise estimation in active frames in the decoder for downward updates */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); #else perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); @@ -496,47 +496,65 @@ void ApplyFdCng( } } -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( concealWholeFrame == 1 ) && ( st->nbLostCmpt == 1 ) && sum_f( cngNoiseLevel + hFdCngCom->startBand, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) > 0.01f ) { +#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0 ); #else - if ( ( concealWholeFrame == 1 ) && ( st->nbLostCmpt == 1 ) ) - { - /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ - - /* always set psychParameters for MDCT-Stereo ... */ - if ( st->element_mode == IVAS_CPE_MDCT && st->hTonalMDCTConc != NULL ) + if ( st->element_mode == IVAS_CPE_MDCT && st->core != ACELP_CORE ) { - st->hTonalMDCTConc->psychParams = ( st->core == TCX_20_CORE ) ? &st->hTonalMDCTConc->psychParamsTCX20 : &st->hTonalMDCTConc->psychParamsTCX10; - } + float scf[SNS_NPTS]; + float scf_int[FDNS_NPTS]; + float whitenend_noise_shape[L_FRAME16k]; + int16_t inc, start_idx, stop_idx; + float *noiseLevelPtr; - /* ... but do actual computations only if sufficient energy in noise shape */ - if ( sum_f( cngNoiseLevel + hFdCngCom->startBand, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) > 0.01f ) - { - if ( st->element_mode == IVAS_CPE_MDCT && st->core != ACELP_CORE ) + wmops_sub_start( "get scfs for bg" ); + + inc = ( st->core > TCX_20 ) ? 2 : 1; + start_idx = hFdCngCom->startBand / inc; + stop_idx = L_frame / inc; + noiseLevelPtr = cngNoiseLevel; + + set_zero( whitenend_noise_shape, start_idx ); + for ( j = start_idx; j < stop_idx; j++, noiseLevelPtr += inc ) { - TonalMdctConceal_whiten_noise_shape( st, L_frame, ON_FIRST_LOST_FRAME ); + whitenend_noise_shape[j] = *noiseLevelPtr; } - else if ( st->element_mode != IVAS_CPE_MDCT || st->core == ACELP_CORE ) + if ( st->core == TCX_20_CORE ) { - lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0.f ); - a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); - mvr2r( lsp_cng, st->lspold_cng, M ); - lsp2lsf( lsp_cng, st->lsf_cng, M, sr_core ); + st->hTonalMDCTConc->psychParams = &st->hTonalMDCTConc->psychParamsTCX20; } - st->plcBackgroundNoiseUpdated = 1; + else + { + st->hTonalMDCTConc->psychParams = &st->hTonalMDCTConc->psychParamsTCX10; + } + + sns_compute_scf( whitenend_noise_shape, st->hTonalMDCTConc->psychParams, L_frame, scf ); + sns_interpolate_scalefactors( scf_int, scf, ENC ); + sns_interpolate_scalefactors( st->hTonalMDCTConc->scaleFactorsBackground, scf, DEC ); + sns_shape_spectrum( whitenend_noise_shape, st->hTonalMDCTConc->psychParams, scf_int, L_frame ); + + mvr2r( whitenend_noise_shape + start_idx, cngNoiseLevel, stop_idx - start_idx ); + wmops_sub_end(); + } + else if ( st->element_mode != IVAS_CPE_MDCT ) + { + lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0.f ); + a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); + mvr2r( lsp_cng, st->lspold_cng, M ); + lsp2lsf( lsp_cng, st->lsf_cng, M, sr_core ); } #endif -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); mvr2r( lsp_cng, st->lspold_cng, M ); lsp2lsf( lsp_cng, st->lsf_cng, M, st->sr_core ); - st->plcBackgroundNoiseUpdated = 1; #endif + st->plcBackgroundNoiseUpdated = 1; } break; @@ -549,7 +567,7 @@ void ApplyFdCng( if ( st != NULL && st->cng_type == LP_CNG ) { /* Perform noise estimation on inactive phase at the decoder */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); #else perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); @@ -564,7 +582,7 @@ void ApplyFdCng( /* This sets the new CNG levels until a SID update overwrites it */ mvr2r( hFdCngDec->bandNoiseShape, cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ); /* This sets the new CNG levels until a SID update overwrites it */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT st->cngTDLevel = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / L_frame ); #else st->cngTDLevel = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / st->L_frame ); @@ -650,7 +668,7 @@ void ApplyFdCng( default: break; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT wmops_sub_end(); #endif @@ -667,7 +685,7 @@ void ApplyFdCng( void perform_noise_estimation_dec( const float *timeDomainInput, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT float *power_spectrum, #endif HANDLE_FD_CNG_DEC hFdCngDec, /* i/o: FD_CNG structure containing all buffers and variables */ @@ -702,7 +720,7 @@ void perform_noise_estimation_dec( float temp, ftemp, delta; float wght; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( !( element_mode == IVAS_CPE_MDCT && power_spectrum != NULL ) ) { /* Perform STFT analysis */ @@ -944,7 +962,7 @@ void perform_noise_estimation_dec( } else { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( element_mode == IVAS_CPE_MDCT && power_spectrum != NULL ) { /* use power spectrum calculated in the MDCT-domain instead of calculating new power spectrum */ @@ -2081,10 +2099,6 @@ void FdCngDecodeMDCTStereoSID( msvq_dec( cdk_37bits_ivas, NULL, NULL, stages, N, FD_CNG_maxN_37bits, indices, ms_ptr[ch], NULL ); } -#ifdef ALIGN_SID_SIZE - dtx_read_padding_bits( sts[1], ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); -#endif - if ( sts[0]->hFdCngDec->hFdCngCom->no_side_flag ) { set_zero( ms_ptr[1], NPART ); @@ -2108,11 +2122,7 @@ void FdCngDecodeMDCTStereoSID( lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, sts[ch]->preemph_fac ); } -#ifdef ALIGN_SID_SIZE - if ( hCPE->nchan_out == 1 && hCPE->last_element_brate <= IVAS_SID_5k2 ) -#else if ( hCPE->nchan_out == 1 && hCPE->last_element_brate <= IVAS_SID_4k4 ) -#endif { /* create proper M noise shape in channel zero after gains have been applied */ for ( p = 0; p < N; p++ ) diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index fecc8e96df..55e526d665 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -679,12 +679,7 @@ static void IGF_appl( float *pSpectralData, /* i/o: Q31 | MDCT spectrum */ const float *igf_spec, /* i : Q31 | prepared IGF spectrum */ float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ - const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ -#else int16_t *flag_sparse /* o : Q0 | temp flattening indicator */ -#endif ) { H_IGF_GRID hGrid; @@ -860,11 +855,7 @@ static void IGF_appl( for ( sfb = start_sfb; sfb < stop_sfb; sfb++ ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - if ( bfi_apply_damping && hPrivateData->frameLossCounter > 0 ) -#else if ( hPrivateData->frameLossCounter > 0 ) -#endif { gain[sfb] = min( gain[sfb], 12.f ); @@ -1221,11 +1212,7 @@ void IGFDecApplyMono( /* apply IGF in three steps: */ IGF_prep( hPrivateData, igfGridIdx, hIGFDec->infoTCXNoise, igf_spec, hPrivateData->pSpecFlat, element_mode ); IGF_calc( hPrivateData, igfGridIdx, spectrum, igf_spec ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse, 1 ); -#else IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse ); -#endif } /* reset TCX noise indicator vector */ @@ -1251,12 +1238,7 @@ void IGFDecApplyStereo( const int16_t igfGridIdx, /* i : in case of CELP->TCX switching, use 1.25 framelength */ const int16_t *coreMsMask, const int16_t restrict_hopsize, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t bfi_apply_damping -#else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ -#endif ) { IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR; @@ -1353,13 +1335,8 @@ void IGFDecApplyStereo( IGF_calc( hPrivateDataL, igfGridIdx, spectrumL, igf_specL ); IGF_calc( hPrivateDataR, igfGridIdx, spectrumR, igf_specR ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, bfi_apply_damping ); - IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, bfi_apply_damping ); -#else IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse ); IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse ); -#endif } /* reset TCX noise indicator vector */ @@ -1611,34 +1588,3 @@ void init_igf_dec( return; } - -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE -int16_t get_igf_startline( - Decoder_State *st, - int16_t L_frame, - int16_t L_frameTCX -) -{ - int16_t igf_startline; - - if ( st->igf == 0 ) - { - if ( st->narrowBand == 0 ) - { - /* minimum needed for output with sampling rates lower then the - nominal sampling rate */ - igf_startline = min( L_frameTCX, L_frame ); - } - else - { - igf_startline = L_frameTCX; - } - } - else - { - igf_startline = min( st->hIGFDec->infoIGFStartLine, L_frameTCX ); - } - - return igf_startline; -} -#endif diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 2e31017eaa..40c65d9503 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -54,7 +54,7 @@ ivas_error init_decoder( Decoder_State *st, /* o : Decoder static variables structure */ const int16_t idchan /* i : channel ID */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const MC_MODE mc_mode /* i : MC mode */ #endif @@ -691,7 +691,7 @@ ivas_error init_decoder( st->enablePlcWaveadjust = 0; /* Init Core Decoder */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, st->element_mode, 1 ); #else open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, 1 ); @@ -714,7 +714,7 @@ ivas_error init_decoder( * FD-CNG decoder *-----------------------------------------------------------------*/ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( ( st->element_mode == IVAS_CPE_MDCT || idchan == 0 ) && mc_mode != MC_MODE_MCT ) #else if ( idchan == 0 && st->element_mode != IVAS_CPE_MDCT ) diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c old mode 100644 new mode 100755 index ad350f4e30..de87b4c557 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -35,7 +35,7 @@ #ifdef DEBUGGING #include "debug.h" #endif -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT #include #endif #include @@ -183,7 +183,7 @@ ivas_error ivas_core_dec( st->flagGuidedAcelp = 0; } -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->element_mode != IVAS_CPE_MDCT ) { @@ -201,7 +201,7 @@ ivas_error ivas_core_dec( } #else /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ - if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && hMCT == NULL ) + if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) ) { float gain; if ( st->hPlcInfo != NULL ) @@ -428,21 +428,6 @@ ivas_error ivas_core_dec( { updateBuffersForDmxMdctStereo( hCPE, output_frame, output, synth ); } - -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - if ( sts[0]->bfi == 0 && sts[0]->prev_bfi == 1 ) - { - /* On first good frame after frameloss undo the whitening of the bg noise shape */ - for ( n = 0; n < n_channels; ++n ) - { - if ( sts[n]->last_core_bfi != ACELP_CORE ) - { - TonalMdctConceal_whiten_noise_shape( sts[n], L_FRAME16k, ON_FIRST_GOOD_FRAME ); - } - } - } -#endif - } /*---------------------------------------------------------------------* diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index da0911ee5b..7223b38761 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -160,22 +160,14 @@ ivas_error ivas_cpe_dec( if ( hCPE->element_mode != IVAS_CPE_MDCT && ( hCPE->element_brate != hCPE->last_element_brate || hCPE->last_element_mode != hCPE->element_mode || sts[0]->ini_frame == 0 || ( ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) ) ) { -#ifdef ALIGN_SID_SIZE - if ( st_ivas->hQMetaData != NULL && ivas_total_brate > IVAS_SID_5k2 ) -#else if ( st_ivas->hQMetaData != NULL && ivas_total_brate > IVAS_SID_4k4 ) -#endif { stereo_dft_config( hCPE->hStereoDft == NULL ? NULL : hCPE->hStereoDft->hConfig, st_ivas->hQMetaData->bits_frame_nominal * FRAMES_PER_SEC, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); } else { /* Note: This only works for stereo operation. If DTX would be applied for multiple CPEs a different bitrate signaling is needed */ -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate <= IVAS_SID_5k2 ) -#else if ( ivas_total_brate <= IVAS_SID_4k4 ) -#endif { stereo_dft_config( hCPE->hStereoDft == NULL ? NULL : hCPE->hStereoDft->hConfig, ivas_total_brate, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); } @@ -211,11 +203,7 @@ ivas_error ivas_cpe_dec( /* Update DFT Stereo memories */ stereo_dft_dec_update( hCPE->hStereoDft, output_frame, 0 ); -#ifdef ALIGN_SID_SIZE - if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) -#else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) -#endif { if ( ivas_total_brate == FRAME_NO_DATA ) { @@ -232,21 +220,13 @@ ivas_error ivas_cpe_dec( nb_bits = (int16_t) ( ( hCPE->element_brate ) / FRAMES_PER_SEC - 0.8f * sts[0]->bits_frame_nominal ); sts[1]->bit_stream = sts[0]->bit_stream + ivas_total_brate / FRAMES_PER_SEC - 1 - nb_bits_metadata; -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate == IVAS_SID_5k2 ) -#else if ( ivas_total_brate == IVAS_SID_4k4 ) -#endif { nb_bits -= SID_FORMAT_NBITS; sts[1]->bit_stream -= SID_FORMAT_NBITS; } -#ifdef ALIGN_SID_SIZE - if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_5k2 ) -#else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 ) -#endif { sts[0]->total_brate = hCPE->element_brate; /* Only mono downmix was transmitted in this case */ } @@ -286,11 +266,7 @@ ivas_error ivas_cpe_dec( /* this is just for initialization, the true values of "total_brate" and "bits_frame_channel" are set later */ for ( n = 0; n < n_channels; n++ ) { -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate == IVAS_SID_5k2 ) -#else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) -#endif { sts[n]->total_brate = SID_2k40; @@ -307,11 +283,7 @@ ivas_error ivas_cpe_dec( if ( !st_ivas->hMCT ) { -#ifdef ALIGN_SID_SIZE - if ( st_ivas->ivas_format == SBA_FORMAT && ivas_total_brate == IVAS_SID_5k2 ) -#else if ( st_ivas->ivas_format == SBA_FORMAT && ivas_total_brate == IVAS_SID_5k ) -#endif { for ( n = 0; n < n_channels; n++ ) { @@ -615,11 +587,7 @@ ivas_error create_cpe_dec( hCPE->nchan_out = min( CPE_CHANNELS, st_ivas->hDecoderConfig->nchan_out ); } -#ifdef ALIGN_SID_SIZE - if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) -#else if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) -#endif { hCPE->nchan_out = 1; } @@ -718,7 +686,7 @@ ivas_error create_cpe_dec( st->mct_chan_mode = MCT_CHAN_MODE_LFE; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( ( error = init_decoder( st, n, st_ivas->mc_mode ) ) != IVAS_ERR_OK ) #else if ( ( error = init_decoder( st, n ) ) != IVAS_ERR_OK ) @@ -823,12 +791,6 @@ ivas_error create_cpe_dec( set_s( hCPE->hStereoMdct->prev_ms_mask[0], 0, MAX_SFB ); set_s( hCPE->hStereoMdct->prev_ms_mask[1], 0, MAX_SFB ); hCPE->hStereoMdct->lastCoh = 1.f; -#ifdef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED - hCPE->hStereoMdct->mdct_stereo_mode[0] = SMDCT_DUAL_MONO; - hCPE->hStereoMdct->mdct_stereo_mode[1] = SMDCT_DUAL_MONO; - hCPE->hStereoMdct->IGFStereoMode[0] = -1; - hCPE->hStereoMdct->IGFStereoMode[1] = -1; -#endif } /*-----------------------------------------------------------------* @@ -961,11 +923,7 @@ static void read_stereo_mode_and_bwidth( * BFI or NO_DATA frame: Use stereo parameters from last (active) frame *-----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE - if ( st_ivas->bfi || st_ivas->hDecoderConfig->ivas_total_brate < IVAS_SID_5k2 ) -#else if ( st_ivas->bfi || st_ivas->hDecoderConfig->ivas_total_brate < IVAS_SID_4k4 ) -#endif { hCPE->element_mode = hCPE->last_element_mode; @@ -975,11 +933,7 @@ static void read_stereo_mode_and_bwidth( * SID frame: get element mode from SID side info *-----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE - else if ( st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) -#else else if ( st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_4k4 || st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_5k ) -#endif { switch ( st_ivas->sid_format ) { @@ -997,7 +951,7 @@ static void read_stereo_mode_and_bwidth( hCPE->element_mode = IVAS_CPE_MDCT; break; case SID_SBA_1TC: - assert( "Forbidden value for SID format in CPE (SBA 1TC), should have already been adressed earlier" ); + assert( "Forbidden value for sid format in CPE (SBA 1TC), should have already been adressed earlier" ); break; case SID_MASA_1TC: hCPE->element_mode = IVAS_SCE; diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index 7d54047014..a103c9f45f 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -290,11 +290,8 @@ ivas_error ivas_dec( nchan_remapped = CPE_CHANNELS; ivas_sba_dirac_stereo_dec( st_ivas, output, output_frame ); } -#ifdef ALIGN_SID_SIZE - else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ( ivas_total_brate > IVAS_SID_5k2 || ( ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) -#else - else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ( ivas_total_brate > IVAS_SID_4k4 || ( ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) -#endif + else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && + ( ivas_total_brate > IVAS_SID_4k4 || ( ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) { nchan_remapped = 1; /* Only one channel transported */ } @@ -312,7 +309,7 @@ ivas_error ivas_dec( if ( st_ivas->sba_mode == SBA_MODE_SPAR && ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) { - ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame ); + ivas_sba_mix_matrix_determiner( st_ivas, output, nchan_remapped, output_frame ); } } @@ -348,7 +345,7 @@ ivas_error ivas_dec( } else /* SBA_MODE_SPAR */ { - ivas_sba_upmixer_renderer( st_ivas, output, output_frame ); /* Note: ivas_sba_linear_renderer() or ivas_dirac_dec() are called internally */ + ivas_sba_upmixer_renderer( st_ivas, output, nchan_remapped, output_frame ); /* Note: ivas_sba_linear_renderer() or ivas_dirac_dec() are called internally */ } } else if ( st_ivas->ivas_format == MC_FORMAT ) @@ -574,11 +571,7 @@ ivas_error ivas_dec( st_ivas->ini_frame++; } -#ifdef ALIGN_SID_SIZE - if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_5k2 ) /* needed in MASA decoder in case the first active frame is BFI, and there were SID-frames decoded before */ -#else - if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_4k4 ) /* needed in MASA decoder in case the first active frame is BFI, and there were SID-frames decoded before */ -#endif + if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_4k4 ) // VE: looks strange: ini_frame -> ini_frame_active ? { st_ivas->ini_active_frame++; } diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c old mode 100644 new mode 100755 index ef4527ea8f..074f635133 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -186,15 +186,14 @@ ivas_error ivas_dirac_dec_config( nchan_transport_orig = st_ivas->nchan_transport; if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR && !( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) { +#ifdef SBA_ORDER_BITSTREAM st_ivas->nchan_transport = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); +#else + st_ivas->nchan_transport = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); +#endif } - nchan_transport = st_ivas->nchan_transport; -#ifdef ALIGN_SID_SIZE - if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_5k2 ) -#else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 ) -#endif { nchan_transport = 1; } @@ -202,10 +201,10 @@ ivas_error ivas_dirac_dec_config( if ( flag_config == DIRAC_RECONFIGURE && st_ivas->ivas_format == SBA_FORMAT ) { int16_t tmp1, tmp2, tmp3; -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3 ); -#else +#ifdef SBA_ORDER_BITSTREAM ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC ); +#else + ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC ); #endif } @@ -764,6 +763,7 @@ ivas_error ivas_dirac_dec_config( mvs2s( DirAC_block_grouping, hDirAC->block_grouping, MAX_PARAM_SPATIAL_SUBFRAMES + 1 ); + if ( flag_config == DIRAC_OPEN ) { hDirAC->dirac_md_buffer_length = 0; @@ -1287,11 +1287,7 @@ void ivas_dirac_dec_read_BS( int16_t next_bit_pos_orig; *nb_bits = 0; -#ifdef ALIGN_SID_SIZE - if ( !st->bfi && ivas_total_brate > IVAS_SID_5k2 ) -#else if ( !st->bfi && ivas_total_brate > IVAS_SID_4k4 ) -#endif { next_bit_pos_orig = st->next_bit_pos; st->next_bit_pos = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); @@ -1300,19 +1296,14 @@ void ivas_dirac_dec_read_BS( b = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; -#ifndef ALIGN_SID_SIZE if ( sba_mode == SBA_MODE_SPAR ) { - if ( ivas_total_brate == IVAS_SID_5k ) { b = 1; } } else -#else - if ( sba_mode != SBA_MODE_SPAR ) -#endif { assert( ( b == 0 ) || ( hQMetaData->q_direction[0].cfg.start_band > 0 ) ); } @@ -1400,23 +1391,12 @@ void ivas_dirac_dec_read_BS( st->next_bit_pos = next_bit_pos_orig; } -#ifdef ALIGN_SID_SIZE - else if ( !st->bfi && ivas_total_brate == IVAS_SID_5k2 ) -#else else if ( !st->bfi && ivas_total_brate == IVAS_SID_4k4 ) -#endif { next_bit_pos_orig = st->next_bit_pos; /* subtract mode signaling bits, since bitstream was moved after mode reading */ st->next_bit_pos = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 - SID_FORMAT_NBITS ); -#ifdef ALIGN_SID_SIZE - /* 1 bit flag for SPAR/DirAC, already read in read format function */ - b = st->bit_stream[( st->next_bit_pos )--]; - ( *nb_bits )++; - hQMetaData->sba_inactive_mode = 1; - orig_dirac_bands = hQMetaData->q_direction[0].cfg.nbands; -#endif /* if we start with a SID frame, we need to init the azi/ele arrays.*/ if ( st->ini_frame == 0 ) @@ -1431,39 +1411,8 @@ void ivas_dirac_dec_read_BS( } } -#ifdef ALIGN_SID_SIZE - *nb_bits += ivas_qmetadata_dec_sid_decode( hQMetaData, st->bit_stream, &( st->next_bit_pos ), 0, NULL, SBA_FORMAT, sba_mode ); - - if ( sba_mode == SBA_MODE_SPAR ) - { - for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) - { - hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].azimuth[i] = hQMetaData->q_direction[0].band_data[1].azimuth[0]; - hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].elevation[i] = hQMetaData->q_direction[0].band_data[1].elevation[0]; - hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio[0]; - } - for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) - { - for ( j = orig_dirac_bands - 2; j >= 0; j-- ) - { - hQMetaData->q_direction[0].band_data[j].azimuth[i] = hQMetaData->q_direction[0].band_data[0].azimuth[0]; - hQMetaData->q_direction[0].band_data[j].elevation[i] = hQMetaData->q_direction[0].band_data[0].elevation[0]; - hQMetaData->q_direction[0].band_data[j].energy_ratio[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio[0]; - } - } - - hQMetaData->q_direction->cfg.nbands = orig_dirac_bands; - } - else - { - *nb_bits += SID_FORMAT_NBITS; - } -#else *nb_bits += ivas_qmetadata_dec_sid_decode( hQMetaData, st->bit_stream, &( st->next_bit_pos ), 0, NULL, SBA_FORMAT, SBA_MODE_DIRAC ); - *nb_bits += SID_FORMAT_NBITS; -#endif - st->next_bit_pos = next_bit_pos_orig; } @@ -1509,11 +1458,7 @@ void ivas_qmetadata_to_dirac( q_direction = &( hQMetaData->q_direction[0] ); hDirAC->numSimultaneousDirections = hQMetaData->no_directions; -#ifdef ALIGN_SID_SIZE - if ( hMasa != NULL && ivas_total_brate > IVAS_SID_5k2 ) -#else if ( hMasa != NULL && ivas_total_brate > IVAS_SID_4k4 ) -#endif { band_mapping = hMasa->data.band_mapping; @@ -1589,11 +1534,7 @@ void ivas_qmetadata_to_dirac( nbands = hDirAC->band_grouping[hDirAC->hConfig->nbands]; band_grouping = hDirAC->band_grouping; -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate <= IVAS_SID_5k2 && sba_mode != SBA_MODE_SPAR ) -#else if ( ivas_total_brate <= IVAS_SID_4k4 && sba_mode != SBA_MODE_SPAR ) -#endif { /* SID/zero-frame: 1 direction, 5 bands, nblocks re-generated out of SID decoder*/ start_band = 0; @@ -1689,11 +1630,7 @@ void ivas_qmetadata_to_dirac( ele = min( 90, ele ); ele = max( -90, ele ); -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate > IVAS_SID_5k2 && q_direction->coherence_band_data != NULL ) -#else if ( ivas_total_brate > IVAS_SID_4k4 && q_direction->coherence_band_data != NULL ) -#endif { hDirAC->spreadCoherence[tmp_write_idx_band][b] = q_direction->coherence_band_data[qBand_idx].spread_coherence[block] / 255.0f; } @@ -1702,11 +1639,7 @@ void ivas_qmetadata_to_dirac( hDirAC->spreadCoherence[tmp_write_idx_band][b] = 0.0f; } -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate > IVAS_SID_5k2 && q_direction->coherence_band_data != NULL ) -#else if ( ivas_total_brate > IVAS_SID_4k4 && q_direction->coherence_band_data != NULL ) -#endif { hDirAC->surroundingCoherence[tmp_write_idx_band][b] = hQMetaData->surcoh_band_data[qBand_idx].surround_coherence[0] / 255.0f; } @@ -1861,11 +1794,7 @@ void ivas_dirac_dec( #ifdef DEBUG_MODE_DIRAC { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - int16_t n, tmp[1 * L_FRAME48k]; -#else int16_t n, tmp[DIRAC_MAX_TRANS_CHANS * L_FRAME48k]; -#endif char file_name[50] = { 0 }; const int16_t output_frame = st_ivas->output_Fs / FRAMES_PER_SEC; diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c old mode 100644 new mode 100755 index 9ee3993b76..b12aa28e40 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -122,16 +122,17 @@ ivas_error ivas_dec_setup( #ifndef SBA_ORDER_BITSTREAM st_ivas->sba_order = st_ivas->bit_stream[num_bits_read + 1]; st_ivas->sba_order += 2 * st_ivas->bit_stream[num_bits_read]; - - /* set Ambisonic (SBA) order used for analysis and coding */ - st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); - - num_bits_read += SBA_ORDER_BITS; -#ifdef ALIGN_SID_SIZE - if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_5k2 ) #else - if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_4k4 ) + st_ivas->hDecoderConfig->sba_order = st_ivas->bit_stream[num_bits_read + 1]; + st_ivas->hDecoderConfig->sba_order += 2 * st_ivas->bit_stream[num_bits_read]; + st_ivas->sba_analysis_order = st_ivas->hDecoderConfig->sba_order; + if ( ivas_total_brate < IVAS_256k ) + { + st_ivas->sba_analysis_order = 1; + } #endif + num_bits_read += SBA_ORDER_BITS; + if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_4k4 ) { if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) { @@ -140,8 +141,8 @@ ivas_error ivas_dec_setup( } else { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); +#ifndef SBA_ORDER_BITSTREAM + ivas_sba_config( ivas_total_brate, st_ivas->sba_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); #else ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); #endif @@ -163,11 +164,7 @@ ivas_error ivas_dec_setup( if ( st_ivas->ini_frame > 0 ) { /* reconfigure in case a change of operation mode is detected */ -#ifdef ALIGN_SID_SIZE - if ( ( ivas_total_brate > IVAS_SID_5k2 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) || ( st_ivas->ini_active_frame == 0 ) ) -#else if ( ( ivas_total_brate > IVAS_SID_4k4 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) || ( st_ivas->ini_active_frame == 0 ) ) -#endif { if ( st_ivas->ini_active_frame == 0 && ivas_total_brate != FRAME_NO_DATA && ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->nCPE == 1 ) { @@ -226,11 +223,7 @@ ivas_error ivas_dec_setup( } } } -#ifdef ALIGN_SID_SIZE - else if ( ivas_total_brate == IVAS_SID_5k2 ) -#else else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) -#endif { switch ( st_ivas->sid_format ) { @@ -366,11 +359,7 @@ static ivas_error ivas_read_format( break; } } -#ifdef ALIGN_SID_SIZE - else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) -#else else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_4k4 ) -#endif { /* read IVAS format in SID frame */ idx = 0; @@ -423,44 +412,27 @@ static ivas_error ivas_read_format( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format ); } -#ifdef ALIGN_SID_SIZE - if ( st_ivas->ivas_format == SBA_FORMAT ) - { - int16_t tc_mode_offset; - tc_mode_offset = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); - idx = st_ivas->bit_stream[tc_mode_offset]; - // TBD: needs more work for HOA - if ( st_ivas->sba_analysis_order == 0 ) - { - st_ivas->sba_analysis_order = 1; - } - if ( idx == 1 ) - { - st_ivas->sba_mode = SBA_MODE_SPAR; - } - else - { - st_ivas->sba_mode = SBA_MODE_DIRAC; - } - } -#endif - /* reset bitstream handle to avoid BER detection after reading the 2400 kbps for ch0 */ st_ivas->bit_stream += ( *num_bits_read ); ( *num_bits_read ) = 0; } -#ifndef ALIGN_SID_SIZE else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k ) { int16_t tc_mode_offset; tc_mode_offset = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); idx = st_ivas->bit_stream[tc_mode_offset]; - // TBD: needs more work for HOA +#ifndef SBA_ORDER_BITSTREAM + if ( st_ivas->sba_order == 0 ) + { + st_ivas->sba_order = 1; + } +#else if ( st_ivas->sba_analysis_order == 0 ) { st_ivas->sba_analysis_order = 1; } +#endif if ( idx == 0 ) { st_ivas->sid_format = SID_SBA_1TC; @@ -476,7 +448,6 @@ static ivas_error ivas_read_format( st_ivas->element_mode_init = IVAS_CPE_MDCT; } } -#endif else { /* In SID/NO_DATA frames, use the previous frame IVAS format */ @@ -555,6 +526,29 @@ ivas_error ivas_init_decoder_front( error = IVAS_ERR_OK; +#ifdef DEBUGGING + st_ivas->noClipping = 0; +#endif + + /* Custom loudspeaker layout structure */ + st_ivas->hLsSetupCustom = NULL; + + /* TD renderer HRTF data structure */ + st_ivas->hHrtfTD = NULL; + + /* Head track data structure */ + st_ivas->hHeadTrackData = NULL; + + /* Renderer configuration structure */ + st_ivas->hRenderConfig = NULL; + + /* HRTF binauralization latency in ns */ + st_ivas->binaural_latency_ns = 0; + +#ifdef DEBUGGING + st_ivas->hDecoderConfig->force_rend = -1; +#endif + /*-----------------------------------------------------------------* * Resets *-----------------------------------------------------------------*/ @@ -567,16 +561,9 @@ ivas_error ivas_init_decoder_front( st_ivas->mc_mode = MC_MODE_NONE; st_ivas->sba_mode = SBA_MODE_NONE; - st_ivas->sba_dirac_stereo_flag = 0; - - /* HRTF binauralization latency in ns */ - st_ivas->binaural_latency_ns = 0; - -#ifdef DEBUGGING - st_ivas->noClipping = 0; + st_ivas->hLimiter = NULL; + st_ivas->hoa_dec_mtx = NULL; - st_ivas->hDecoderConfig->force_rend = -1; -#endif /*-------------------------------------------------------------------* * Allocate and initialize Custom loudspeaker layout handle @@ -723,6 +710,58 @@ ivas_error ivas_init_decoder( } } + /*-----------------------------------------------------------------* + * Dummy pointers to decoder handles + *-----------------------------------------------------------------*/ + + for ( i = 0; i < MAX_SCE; i++ ) + { + st_ivas->hSCE[i] = NULL; + } + + for ( i = 0; i < MAX_CPE; i++ ) + { + st_ivas->hCPE[i] = NULL; + } + + /* ISm metadata handles */ + for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) + { + st_ivas->hIsmMetaData[n] = NULL; + } + + /* DirAC handle */ + st_ivas->hDirAC = NULL; + st_ivas->sba_dirac_stereo_flag = 0; + + /* SPAR handle */ + st_ivas->hSpar = NULL; + + /* MASA decoder structure */ + st_ivas->hMasa = NULL; + + /* Q metadata handle */ + st_ivas->hQMetaData = NULL; + + /* MCT handles */ + st_ivas->hMCT = NULL; + st_ivas->hParamMC = NULL; + + /* LFE handle */ + st_ivas->hLFE = NULL; + + /* renderers handles */ + st_ivas->hBinRenderer = NULL; /* fastconf binaural renderer */ + st_ivas->hDiracDecBin = NULL; /* parametric binaural renderer */ + st_ivas->hLsSetUpConversion = NULL; /* MC converter */ + st_ivas->hEFAPdata = NULL; /* EFAP handle */ + st_ivas->hVBAPdata = NULL; /* VBAP handle */ + st_ivas->hIsmRendererData = NULL; /* ISm renderer */ + st_ivas->hBinRendererTd = NULL; /* TD ISm binaural renderer */ + st_ivas->hMonoDmxRenderer = NULL; /* Mono downmix renderer */ + st_ivas->hHrtf = NULL; /* Crend hrtf data */ + st_ivas->hCrend = NULL; /* Crend renderer */ + /*-----------------------------------------------------------------* * Allocate and initalize SCE/CPE and other handles *-----------------------------------------------------------------*/ @@ -759,7 +798,6 @@ ivas_error ivas_init_decoder( { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); } - /* init EFAP for custom LS output and set hTransSetup */ if ( output_config == AUDIO_CONFIG_LS_CUSTOM ) { @@ -806,10 +844,11 @@ ivas_error ivas_init_decoder( } else if ( st_ivas->ivas_format == SBA_FORMAT || st_ivas->ivas_format == MASA_FORMAT ) { - - if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { - return error; + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) + { + return error; + } } if ( st_ivas->ivas_format == MASA_FORMAT ) @@ -827,7 +866,6 @@ ivas_error ivas_init_decoder( { return error; } - if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC && st_ivas->hOutSetup.is_loudspeaker_setup ) { if ( ( error = ivas_sba_get_hoa_dec_matrix( st_ivas->hOutSetup, &st_ivas->hoa_dec_mtx, st_ivas->hIntSetup.ambisonics_order ) ) != IVAS_ERR_OK ) @@ -835,10 +873,9 @@ ivas_error ivas_init_decoder( return error; } } - -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) - +#ifndef SBA_ORDER_BITSTREAM + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, + st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) @@ -846,14 +883,12 @@ ivas_error ivas_init_decoder( { return error; } - if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) { if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } - for ( k = 0; k < DIRAC_MAX_NBANDS; k++ ) { st_ivas->hSpar->dirac_to_spar_md_bands[k] = st_ivas->hDirAC->dirac_to_spar_md_bands[k]; @@ -866,14 +901,20 @@ ivas_error ivas_init_decoder( st_ivas->hSpar->enc_param_start_band = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); - ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, (int16_t) ( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), - st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); + ivas_dirac_config_bands( + band_grouping, + IVAS_MAX_NUM_BANDS, + (int16_t) ( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), + st_ivas->hSpar->dirac_to_spar_md_bands, + st_ivas->hQMetaData->useLowerBandRes, + st_ivas->hSpar->enc_param_start_band, + 0 ); } } else { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#ifndef SBA_ORDER_BITSTREAM + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) #endif @@ -922,7 +963,6 @@ ivas_error ivas_init_decoder( { return error; } - reset_indices_dec( st_ivas->hSCE[sce_id]->hCoreCoder[0] ); } @@ -933,6 +973,7 @@ ivas_error ivas_init_decoder( return error; } + for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1003,6 +1044,7 @@ ivas_error ivas_init_decoder( return error; } + for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1024,12 +1066,12 @@ ivas_error ivas_init_decoder( return error; } } - if ( ( error = ivas_param_mc_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) { if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) @@ -1037,6 +1079,7 @@ ivas_error ivas_init_decoder( return error; } + for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1065,6 +1108,7 @@ ivas_error ivas_init_decoder( return error; } + st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && output_config == AUDIO_CONFIG_STEREO ); if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_MCMASA_MONO_STEREO ) @@ -1105,7 +1149,6 @@ ivas_error ivas_init_decoder( return error; } } - reset_indices_dec( st_ivas->hSCE[sce_id]->hCoreCoder[0] ); } @@ -1114,7 +1157,6 @@ ivas_error ivas_init_decoder( if ( st_ivas->hOutSetup.separateChannelEnabled ) { st_ivas->element_mode_init = IVAS_CPE_MDCT; - if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate - st_ivas->hSCE[0]->element_brate ) ) != IVAS_ERR_OK ) { return error; @@ -1123,13 +1165,11 @@ ivas_error ivas_init_decoder( else { st_ivas->element_mode_init = IVAS_CPE_MDCT; - if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) { return error; } } - for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1217,7 +1257,6 @@ ivas_error ivas_init_decoder( { return error; } - if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) { if ( ( st_ivas->hCrend = (CREND_HANDLE) count_malloc( sizeof( CREND_DATA ) ) ) == NULL ) @@ -1324,8 +1363,9 @@ ivas_error ivas_init_decoder( * Allocate and initialize limiter struct *-----------------------------------------------------------------*/ - st_ivas->hLimiter = ivas_limiter_open( hDecoderConfig->nchan_out, output_Fs ); - + { + st_ivas->hLimiter = ivas_limiter_open( hDecoderConfig->nchan_out, output_Fs ); + } return error; } @@ -1507,9 +1547,9 @@ void ivas_initialize_handles_dec( st_ivas->hCPE[i] = NULL; } - st_ivas->bit_stream = NULL; + st_ivas->nSCE = 0; + st_ivas->nCPE = 0; st_ivas->mem_hp20_out = NULL; - st_ivas->hLimiter = NULL; /* ISM metadata handles */ for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) @@ -1518,6 +1558,7 @@ void ivas_initialize_handles_dec( } /* spatial coding handles */ + st_ivas->hIsmRendererData = NULL; st_ivas->hDirAC = NULL; st_ivas->hSpar = NULL; st_ivas->hMasa = NULL; @@ -1537,12 +1578,11 @@ void ivas_initialize_handles_dec( st_ivas->hMonoDmxRenderer = NULL; st_ivas->hCrend = NULL; st_ivas->hHrtf = NULL; - st_ivas->hoa_dec_mtx = NULL; st_ivas->hHeadTrackData = NULL; st_ivas->hHrtfTD = NULL; + st_ivas->hLimiter = NULL; st_ivas->hLsSetupCustom = NULL; - st_ivas->hRenderConfig = NULL; return; } @@ -1810,6 +1850,7 @@ void ivas_init_dec_get_num_cldfb_instances( { *numCldfbAnalyses = st_ivas->hSpar->hFbMixer->fb_cfg->num_in_chans; + if ( st_ivas->hOutSetup.is_loudspeaker_setup && st_ivas->renderer_type == RENDERER_DIRAC ) { *numCldfbSyntheses = st_ivas->hOutSetup.nchan_out_woLFE; @@ -2015,10 +2056,11 @@ static ivas_error doSanityChecks_IVAS( #endif #ifdef DEBUGGING - if ( ( st_ivas->hDecoderConfig->Opt_HRTF_binary || st_ivas->hDecoderConfig->force_rend == FORCE_TD_RENDERER ) && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) || ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode != MC_MODE_MCT ) ) ) + if ( ( st_ivas->hHrtfTD != NULL || st_ivas->hDecoderConfig->force_rend == FORCE_TD_RENDERER ) && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) || ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode != MC_MODE_MCT ) ) ) #else - if ( st_ivas->hDecoderConfig->Opt_HRTF_binary && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) ) ) + if ( st_ivas->hHrtfTD != NULL && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) ) ) #endif + { return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration: Time Domain object renderer not supported in this configuration" ); } diff --git a/lib_dec/ivas_ism_metadata_dec.c b/lib_dec/ivas_ism_metadata_dec.c index dee9b6489f..9d940705f3 100644 --- a/lib_dec/ivas_ism_metadata_dec.c +++ b/lib_dec/ivas_ism_metadata_dec.c @@ -78,11 +78,7 @@ ivas_error ivas_ism_metadata_dec( wmops_sub_start( "ism_meta_dec" ); -#ifdef ALIGN_SID_SIZE - if ( ism_total_brate == IVAS_SID_5k2 || ism_total_brate == FRAME_NO_DATA ) -#else if ( ism_total_brate == IVAS_SID_4k4 || ism_total_brate == FRAME_NO_DATA ) -#endif { /* no metadata decoding in CNG */ for ( ch = 0; ch < *nchan_transport; ch++ ) @@ -91,11 +87,7 @@ ivas_error ivas_ism_metadata_dec( } /* set padding bits as metadata bits to keep later bitrate checks valid */ -#ifdef ALIGN_SID_SIZE - nb_bits_metadata[0] = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC; -#else nb_bits_metadata[0] = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC; -#endif #ifdef DEBUGGING /* sanity check */ diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index d394c3c729..108d406845 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1027,11 +1027,7 @@ ivas_error ivas_ism_dec_config( /* store last frame ISM mode */ last_ism_mode = st_ivas->ism_mode; -#ifdef ALIGN_SID_SIZE - if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_5k2 && ivas_total_brate != FRAME_NO_DATA ) -#else if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_4k4 && ivas_total_brate != FRAME_NO_DATA ) -#endif { /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( num_obj, ivas_total_brate ); @@ -1056,11 +1052,7 @@ ivas_error ivas_ism_dec_config( } } } -#ifdef ALIGN_SID_SIZE - else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) -#else else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_4k4 ) -#endif { st_ivas->nchan_transport = num_obj; } diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index b4aa18f2a1..91b79a614e 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -115,11 +115,7 @@ ivas_error ivas_masa_decode( *nb_bits_read = 0; next_bit_pos_orig = st->next_bit_pos; -#ifdef ALIGN_SID_SIZE - if ( masa_brate == IVAS_SID_5k2 ) -#else if ( masa_brate == IVAS_SID_4k4 ) -#endif { st->next_bit_pos = (int16_t) ( ( masa_brate / FRAMES_PER_SEC ) - 1 - SID_FORMAT_NBITS ); } @@ -128,11 +124,7 @@ ivas_error ivas_masa_decode( st->next_bit_pos = (int16_t) ( ( masa_brate / FRAMES_PER_SEC ) - 1 ); } -#ifdef ALIGN_SID_SIZE - if ( !st->bfi && ivas_total_brate > IVAS_SID_5k2 ) -#else if ( !st->bfi && ivas_total_brate > IVAS_SID_4k4 ) -#endif { if ( !( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_MCMASA ) ) { @@ -224,11 +216,7 @@ ivas_error ivas_masa_decode( replicate_subframes( hQMetaData ); } } -#ifdef ALIGN_SID_SIZE - else if ( !st->bfi && ivas_format == MASA_FORMAT && ivas_total_brate == IVAS_SID_5k2 ) -#else else if ( !st->bfi && ivas_format == MASA_FORMAT && ivas_total_brate == IVAS_SID_4k4 ) -#endif { if ( hQMetaData->q_direction == NULL ) { @@ -241,11 +229,7 @@ ivas_error ivas_masa_decode( ivas_masa_set_elements( ivas_total_brate, st_ivas->mc_mode, st_ivas->nchan_transport, hQMetaData, &st_ivas->element_mode_init, &st_ivas->nSCE, &st_ivas->nCPE ); -#ifdef ALIGN_SID_SIZE - hQMetaData->metadata_max_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC; -#else hQMetaData->metadata_max_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC; -#endif if ( ( error = ivas_qmetadata_allocate_memory( hQMetaData, 5, 1, 0 ) ) != IVAS_ERR_OK ) { @@ -301,11 +285,7 @@ ivas_error ivas_masa_decode( { st_ivas->hCPE[0]->hStereoDft->hConfig->force_mono_transmission = ivas_total_brate < MASA_STEREO_MIN_BITRATE ? 1 : 0; -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate <= IVAS_SID_5k2 ) -#else if ( ivas_total_brate <= IVAS_SID_4k4 ) -#endif { st_ivas->hCPE[0]->hStereoDft->hConfig->force_mono_transmission = 0; } @@ -315,19 +295,11 @@ ivas_error ivas_masa_decode( { st_ivas->hCPE[0]->hCoreCoder[0]->masa_sid_format = 0; -#ifdef ALIGN_SID_SIZE - if ( st_ivas->hDecoderConfig->last_ivas_total_brate <= IVAS_SID_5k2 ) -#else if ( st_ivas->hDecoderConfig->last_ivas_total_brate <= IVAS_SID_4k4 ) -#endif { st_ivas->hCPE[0]->hCoreCoder[0]->masa_sid_format = 1; -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate >= IVAS_SID_5k2 ) -#else if ( ivas_total_brate >= IVAS_SID_4k4 ) -#endif { st_ivas->hCPE[0]->element_brate = ivas_total_brate; } @@ -507,11 +479,7 @@ void ivas_masa_prerender( const int16_t output_frame /* i : output frame length per channel */ ) { -#ifdef ALIGN_SID_SIZE - if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_transport == 2 && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) -#else if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_transport == 2 && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) -#endif { if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) { diff --git a/lib_dec/ivas_mc_param_dec.c b/lib_dec/ivas_mc_param_dec.c index 29e2ce4002..e1df8f2a7d 100644 --- a/lib_dec/ivas_mc_param_dec.c +++ b/lib_dec/ivas_mc_param_dec.c @@ -263,6 +263,7 @@ ivas_error ivas_param_mc_dec_open( return error; } + /* convert the ls conv dmx matrix into column order matrix format (nchan_out_cldfb x nchan_out) */ if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_LS_CONV_COV || hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) { @@ -296,7 +297,6 @@ ivas_error ivas_param_mc_dec_open( matrix_product( hParamMC->ls_conv_dmx_matrix, nchan_out_cov, nchan_out_transport, 0, ivas_param_mc_conf[config_index].dmx_fac, nchan_out_transport, nchan_transport, 0, proto_matrix ); - if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) { proto_mtx_norm = 1.f; diff --git a/lib_dec/ivas_mct_dec_mct.c b/lib_dec/ivas_mct_dec_mct.c index ec19acb602..00eff03dac 100644 --- a/lib_dec/ivas_mct_dec_mct.c +++ b/lib_dec/ivas_mct_dec_mct.c @@ -283,11 +283,7 @@ void mctStereoIGF_dec( /* stereo IGF decoding */ assert( ( sts[0]->core == sts[1]->core ) || ( hMCT->hBlockData[b]->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi, 1 /* <- is_mct */ ); -#else decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi ); -#endif } else { diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index d05024c565..ed5114c651 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -102,7 +102,7 @@ static void dec_prm_tcx_sidebits( int16_t p_param[NB_DIV], /* o : pointer to parameters for next round of bs reading*/ int16_t nTnsBitsTCX10[NB_DIV], /* o : number of TNS bits per TCX10 subframe */ Decoder_State *st0, /* i/o: core decoder state handle - for bitstream */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const int16_t MCT_flag, #endif const int16_t ch /* i : channel */ @@ -134,7 +134,7 @@ static void dec_prm_tcx_sidebits( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT getTCXMode( st, st0, MCT_flag ); #else getTCXMode( st, st0 ); @@ -381,7 +381,7 @@ void ivas_mdct_dec_side_bits_frame_channel( tmp = 3; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT dec_prm_tcx_sidebits( param[ch], st, ( ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) ? sts[0]->hTcxDec->tnsActive : NULL ), p_param[ch], nTnsBitsTCX10[ch], st0, MCT_flag, tmp ); #else dec_prm_tcx_sidebits( param[ch], st, ( ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) ? sts[0]->hTcxDec->tnsActive : NULL ), p_param[ch], nTnsBitsTCX10[ch], st0, tmp ); @@ -481,7 +481,7 @@ void ivas_mdct_core_invQ( const int16_t *prm_sqQ; int16_t L_frameTCX_global[CPE_CHANNELS]; float tmp_ms_sig[CPE_CHANNELS][N_MAX]; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT float concealment_noise[CPE_CHANNELS][L_FRAME48k]; TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode_bfi; #endif @@ -490,7 +490,7 @@ void ivas_mdct_core_invQ( sts = hCPE->hCoreCoder; bfi = sts[0]->bfi; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT noise_gen_mode_bfi = -1; #endif @@ -514,7 +514,7 @@ void ivas_mdct_core_invQ( sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 1 ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( bfi ) { if ( sts[0]->core == sts[1]->core ) @@ -728,11 +728,15 @@ void ivas_mdct_core_invQ( } nf_seed = 0; +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + decoder_tcx_invQ( st, prm[ch], Aq[ch], Aind[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, xn_buf, &fUseTns[ch][k], &tnsData[ch][k], &gain_tcx, &prm_sqQ, &nf_seed, bfi, isMCT, k ); +#else decoder_tcx_invQ( st, prm[ch], Aq[ch], Aind[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, xn_buf, &fUseTns[ch][k], &tnsData[ch][k], &gain_tcx, &prm_sqQ, &nf_seed, bfi, k ); +#endif mvr2r( x[ch][k], x_0[ch][k], L_frameTCX[ch] ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( bfi && !isMCT ) { TonalMdctConceal_create_concealment_noise( concealment_noise[ch], hCPE, L_frameTCX[ch], L_frame[ch], ch, k, st->core, st->hTcxDec->cummulative_damping_tcx, noise_gen_mode_bfi ); @@ -857,7 +861,7 @@ void ivas_mdct_core_reconstruct( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, L_frameTCX[ch] ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT decoder_tcx_post( st, synth, synthFB, NULL, bfi, isMCT ); #else decoder_tcx_post( st, synth, synthFB, NULL, bfi ); @@ -869,7 +873,7 @@ void ivas_mdct_core_reconstruct( /* PLC: [TCX: TD PLC] */ if ( isMCT ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); #else con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); @@ -877,7 +881,7 @@ void ivas_mdct_core_reconstruct( } else { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT con_tcx( st, &synthFB[0], hCPE->hStereoMdct->lastCoh, &sts[0]->seed_acelp, ( sts[1]->core != ACELP_CORE ) ? 1 : 0, &st->hFdCngDec->hFdCngCom->A_cng[0] ); #else con_tcx( st, &synthFB[0], hCPE->hStereoMdct->lastCoh, &sts[0]->seed_acelp, ( sts[1]->core != ACELP_CORE ) ? 1 : 0 ); @@ -1060,14 +1064,34 @@ void ivas_mdct_core_tns_ns( { sns_interpolate_scalefactors( &sns_int_scf[0], &Aq[ch][k * M], DEC ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( isMCT && st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) #else if ( isMCT && st->hTonalMDCTConc != NULL ) #endif { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], get_igf_startline( st, L_frame[ch], L_frameTCX[ch] ) ); +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + int16_t infoIGFStartLine; + + if ( st->igf == 0 ) + { + if ( st->narrowBand == 0 ) + { + /* minimum needed for output with sampling rates lower then the + nominal sampling rate */ + infoIGFStartLine = min( L_frameTCX[ch], L_frame[ch] ); + } + else + { + infoIGFStartLine = L_frameTCX[ch]; + } + } + else + { + infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX[ch] ); + } + + TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], infoIGFStartLine ); #else TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0] ); #endif @@ -1077,18 +1101,17 @@ void ivas_mdct_core_tns_ns( { if ( st->hTonalMDCTConc != NULL ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - if ( !isMCT && st->hTcxDec->cummulative_damping_tcx != 1.f ) +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + if ( st->hTcxDec->cummulative_damping_tcx != 1.f ) { - float *scf_last, *scf_bg; - float fade_in, fade_out; + float *scf_last; + float *scf_bg; + float fade_in; + float fade_out; scf_last = &st->hTonalMDCTConc->lastBlockData.scaleFactors[0]; scf_bg = &st->hTonalMDCTConc->scaleFactorsBackground[0]; - - st->hTonalMDCTConc->scf_fadeout *= 0.95f; - - fade_out = st->hTonalMDCTConc->scf_fadeout; + fade_out = st->hTcxDec->cummulative_damping_tcx; fade_in = 1 - fade_out; for ( int16_t i = 0; i < st->hTonalMDCTConc->nScaleFactors; i++ ) @@ -1098,7 +1121,6 @@ void ivas_mdct_core_tns_ns( } else { - st->hTonalMDCTConc->scf_fadeout = 1.0f; mvr2r( st->hTonalMDCTConc->lastBlockData.scaleFactors, &sns_int_scf[0], st->hTonalMDCTConc->nScaleFactors ); } #else diff --git a/lib_dec/ivas_out_setup_conversion.c b/lib_dec/ivas_out_setup_conversion.c index 9ed27e56c3..c8008fa129 100644 --- a/lib_dec/ivas_out_setup_conversion.c +++ b/lib_dec/ivas_out_setup_conversion.c @@ -312,6 +312,8 @@ ivas_error ivas_ls_setup_conversion_open( int32_t output_Fs; int16_t nchan_out; + wmops_sub_start( "LS_Renderer" ); + output_Fs = st_ivas->hDecoderConfig->output_Fs; nchan_out = st_ivas->hDecoderConfig->nchan_out; output_frame = (int16_t) ( output_Fs / FRAMES_PER_SEC ); @@ -1070,6 +1072,8 @@ void ivas_ls_setup_conversion_process_mdct_param_mc( } } + wmops_sub_end(); + return; } diff --git a/lib_dec/ivas_qmetadata_dec.c b/lib_dec/ivas_qmetadata_dec.c index 15f33799d6..628e4ca6b8 100644 --- a/lib_dec/ivas_qmetadata_dec.c +++ b/lib_dec/ivas_qmetadata_dec.c @@ -721,32 +721,17 @@ int16_t ivas_qmetadata_dec_sid_decode( { if ( sba_mode == SBA_MODE_SPAR ) { -#ifdef ALIGN_SID_SIZE - /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = (int16_t) ( 5000 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ -#else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ -#endif } else { /* keep 13.2 and 16.4 sid bitrate as 4.4 kbps for now*/ -#ifdef ALIGN_SID_SIZE - /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } } else { -#ifdef ALIGN_SID_SIZE - /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } start_index = *index; @@ -865,20 +850,6 @@ int16_t ivas_qmetadata_dec_sid_decode( } } } -#ifdef ALIGN_SID_SIZE - /* TODO: temporary hack to keep BE */ - if ( ivas_format == SBA_FORMAT ) - { - if ( sba_mode != SBA_MODE_SPAR ) - { - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - 1; /* -1 for spar/dirac indicator*/ - } - } - else - { - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; - } -#endif /*Read filling bits*/ while ( start_index - *index < metadata_sid_bits ) @@ -889,9 +860,9 @@ int16_t ivas_qmetadata_dec_sid_decode( #ifdef DEBUG_MODE_QMETADATA fprintf( pF, "frame %d: all %d ", frame, start_index - *index ); - fprintf( pF_azi, "frame %d SID: ", frame ); - fprintf( pF_ele, "frame %d SID: ", frame ); - fprintf( pF_ratio, "frame %d SID: ", frame ); + fprintf( pF_azi, "frame %d sid: ", frame ); + fprintf( pF_ele, "frame %d sid: ", frame ); + fprintf( pF_ratio, "frame %d sid: ", frame ); for ( b = start_band; b < nbands; b++ ) { diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 5ea87f3f02..4aaddd028b 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -45,430 +45,6 @@ #include "wmops.h" -/*-----------------------------------------------------------------------* - * Local function prototypes - *-----------------------------------------------------------------------*/ - -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT -static void ivas_sba_dmx_dec( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); -#endif - -#ifdef DEBUG_MODE_DIRAC -static void debug_mode_dirac( float output[MAX_OUTPUT_CHANNELS][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); -#endif - - -/*-------------------------------------------------------------------------* - * ivas_mc2sba() - * - * MC signals transformed into SBA in TD domain - *-------------------------------------------------------------------------*/ - -void ivas_mc2sba( - IVAS_OUTPUT_SETUP hIntSetup, /* i : Format of decoder output */ - float buffer_td[][L_FRAME48k], /* i/o: MC signals (on input) and the HOA3 (on output) */ - const int16_t output_frame, /* i : output frame length per channel */ - const int16_t sba_order, /* i : Ambisonic (SBA) order */ - const float gain_lfe /* i : gain for LFE, 0 = ignore LFE */ -) -{ - int16_t i, j, k; - int16_t idx_lfe, idx_in; - float buffer_tmp[16][L_FRAME48k]; - float gains[16]; - int16_t azimuth, elevation; - int16_t sba_num_chans; - - assert( ( sba_order <= 3 ) && "Only order up to 3 is supported!" ); - - /* Init*/ - sba_num_chans = ( sba_order + 1 ) * ( sba_order + 1 ); - for ( j = 0; j < sba_num_chans; j++ ) - { - set_zero( buffer_tmp[j], output_frame ); - } - - /* HOA encoding*/ - idx_lfe = 0; - idx_in = 0; - for ( i = 0; i < hIntSetup.nchan_out_woLFE + hIntSetup.num_lfe; i++ ) - { - if ( ( hIntSetup.num_lfe > 0 ) && ( i == hIntSetup.index_lfe[idx_lfe] ) ) - { - if ( gain_lfe > 0.f ) - { - /* Add LFE to omni W with gain*/ - for ( k = 0; k < output_frame; k++ ) - { - buffer_tmp[0][k] += gain_lfe * buffer_td[i][k]; - } - } - - if ( idx_lfe < ( hIntSetup.num_lfe - 1 ) ) - { - idx_lfe++; - } - } - else - { - azimuth = (int16_t) ( hIntSetup.ls_azimuth[idx_in] ); - elevation = (int16_t) ( hIntSetup.ls_elevation[idx_in] ); - idx_in++; - - /* get HOA response for direction (ACN/SN3D)*/ - ivas_dirac_dec_get_response( - azimuth, - elevation, - gains, - sba_order ); - - for ( j = 0; j < sba_num_chans; j++ ) - { - for ( k = 0; k < output_frame; k++ ) - { - buffer_tmp[j][k] += gains[j] * buffer_td[i][k]; - } - } - } - } - - for ( j = 0; j < sba_num_chans; j++ ) - { - mvr2r( buffer_tmp[j], buffer_td[j], output_frame ); - } - - return; -} - - -/*-------------------------------------------------------------------------* - * ivas_sba2MC_cldfb() - * - * SBA signals transformed into MC in CLDFB domain - *-------------------------------------------------------------------------*/ - -void ivas_sba2mc_cldfb( - IVAS_OUTPUT_SETUP hInSetup, /* i : Format of input layout */ - float RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb real part */ - float ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb imag part */ - const int16_t nb_channels_out, /* i : nb of output channels */ - const int16_t nb_bands, /* i : nb of CLDFB bands to process */ - const float *hoa_dec_mtx /* i : HOA decoding mtx */ -) -{ - int16_t iBlock, iBand, n, m; - float realOut[16][MAX_PARAM_SPATIAL_SUBFRAMES * CLDFB_NO_CHANNELS_MAX], imagOut[16][MAX_PARAM_SPATIAL_SUBFRAMES * CLDFB_NO_CHANNELS_MAX]; - float g; - float *p_real, *p_imag, *p_realOut, *p_imagOut; - int16_t nb_channels_in; - - wmops_sub_start( "ivas_sba2mc_cldfb" ); - - nb_channels_in = hInSetup.nchan_out_woLFE; - assert( ( nb_channels_in == 16 ) && ( nb_channels_out == 11 ) && "ivas_sba2mc_cldfb; only HOA3 to CICP19 is for now supported!" ); - - for ( n = 0; n < nb_channels_out; n++ ) - { - set_zero( realOut[n], MAX_PARAM_SPATIAL_SUBFRAMES * nb_bands ); - set_zero( imagOut[n], MAX_PARAM_SPATIAL_SUBFRAMES * nb_bands ); - - for ( m = 0; m < nb_channels_in; m++ ) - { - g = hoa_dec_mtx[SBA_NHARM_HOA3 * n + m]; - p_realOut = realOut[n]; - p_imagOut = imagOut[n]; - for ( iBlock = 0; iBlock < MAX_PARAM_SPATIAL_SUBFRAMES; iBlock++ ) - { - p_real = RealBuffer[m][iBlock]; - p_imag = ImagBuffer[m][iBlock]; - for ( iBand = 0; iBand < nb_bands; iBand++ ) - { - *p_realOut = *p_realOut + g * *( p_real++ ); - *p_imagOut = *p_imagOut + g * *( p_imag++ ); - p_realOut++; - p_imagOut++; - } - } - } - } - - for ( n = 0; n < nb_channels_out; n++ ) - { - p_realOut = realOut[n]; - p_imagOut = imagOut[n]; - for ( iBlock = 0; iBlock < MAX_PARAM_SPATIAL_SUBFRAMES; iBlock++ ) - { - p_real = RealBuffer[n][iBlock]; - p_imag = ImagBuffer[n][iBlock]; - for ( iBand = 0; iBand < nb_bands; iBand++ ) - { - *( p_real++ ) = *p_realOut++; - *( p_imag++ ) = *p_imagOut++; - } - } - } - - wmops_sub_end(); - - return; -} - -/*-------------------------------------------------------------------* - * ivas_sba_remapTCs() - * - * Get TCs from Ambisonics signal in ACN - *-------------------------------------------------------------------*/ - -int16_t ivas_sba_remapTCs( - float sba_data[][L_FRAME48k], /* i/o: SBA signals */ - Decoder_Struct *st_ivas, /* i/o: decoder struct */ - const int16_t output_frame /* i : frame length */ -) -{ - int16_t nchan_remapped; - -#ifdef DEBUG_MODE_DIRAC - debug_mode_dirac( sba_data, st_ivas->nchan_transport, output_frame ); -#endif - - nchan_remapped = st_ivas->nchan_transport; - if ( ( st_ivas->sba_mode != SBA_MODE_SPAR && st_ivas->sba_planar && nchan_remapped >= 3 ) || - ( ( st_ivas->sba_mode == SBA_MODE_SPAR ) && nchan_remapped == 3 ) ) - { - - nchan_remapped++; - if ( st_ivas->sba_mode != SBA_MODE_SPAR ) - { - assert( ( ( st_ivas->nchan_transport == 3 ) || ( st_ivas->nchan_transport == 5 ) || ( st_ivas->nchan_transport == 7 ) ) && "Number of channels must be odd for SBA planar!" ); - } - - if ( nchan_remapped == 4 ) - { - /*For planar A-format channel 2 and 3 are identical -> Z=0*/ - mvr2r( sba_data[2], sba_data[3], output_frame ); - } - } - -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - if ( st_ivas->nchan_transport >= 3 ) - { - int16_t i = 0; - float temp; - - /*convert WYXZ downmix to WYZX*/ - for ( i = 0; i < output_frame; i++ ) - { - temp = sba_data[2][i]; - sba_data[2][i] = sba_data[3][i]; - sba_data[3][i] = temp; - if ( st_ivas->nchan_transport == 3 ) - { - sba_data[2][i] = 0; - } - } - } -#else - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) - { - int16_t i = 0; - float temp; - - if ( st_ivas->nchan_transport >= 3 ) - { - /*convert WYXZ downmix to WYZX*/ - for ( i = 0; i < output_frame; i++ ) - { - temp = sba_data[2][i]; - sba_data[2][i] = sba_data[3][i]; - sba_data[3][i] = temp; - if ( st_ivas->nchan_transport == 3 ) - { - sba_data[2][i] = 0; - } - } - } - } - else - { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - /* do nothing; simply use omni */ -#else - ivas_sba_dmx_dec( sba_data, nchan_remapped, output_frame ); -#endif - } -#endif - - if ( st_ivas->sba_mode != SBA_MODE_SPAR ) - { - ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->sba_planar, output_frame ); - } - - return ( nchan_remapped ); -} - - -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT -/*-------------------------------------------------------------------* - * ivas_sba_dmx_dec() - * - * - *-------------------------------------------------------------------*/ - -static void ivas_sba_dmx_dec( - float sba_data[][L_FRAME48k], /* i : SBA signals */ - const int16_t nchan_transport, /* i : number of transport channels */ - const int16_t output_frame /* i : frame length */ -) -{ - int16_t i; - float tmp_f[DIRAC_MAX_TRANS_CHANS]; - - if ( nchan_transport >= 7 ) - { - for ( i = 0; i < output_frame; i++ ) - { - tmp_f[0] = 0.506415f * sba_data[0][i] + 0.506415f * sba_data[1][i] + 0.506415f * sba_data[2][i] + 0.506415f * sba_data[3][i] + 0.506415f * sba_data[4][i] + 0.506415f * sba_data[5][i] + 0.506415f * sba_data[6][i]; - tmp_f[1] = -0.000000f * sba_data[0][i] + 0.531020f * sba_data[1][i] + 0.662171f * sba_data[2][i] + 0.294694f * sba_data[3][i] + -0.294694f * sba_data[4][i] + -0.662171f * sba_data[5][i] + -0.531020f * sba_data[6][i]; - tmp_f[2] = 0.679200f * sba_data[0][i] + 0.423475f * sba_data[1][i] + -0.151136f * sba_data[2][i] + -0.611938f * sba_data[3][i] + -0.611938f * sba_data[4][i] + -0.151136f * sba_data[5][i] + 0.423475f * sba_data[6][i]; - tmp_f[3] = 0.000000f * sba_data[0][i] + 0.833385f * sba_data[1][i] + -0.370891f * sba_data[2][i] + -0.668323f * sba_data[3][i] + 0.668323f * sba_data[4][i] + 0.370891f * sba_data[5][i] + -0.833385f * sba_data[6][i]; - tmp_f[4] = 0.854817f * sba_data[0][i] + -0.190215f * sba_data[1][i] + -0.770164f * sba_data[2][i] + 0.532970f * sba_data[3][i] + 0.532970f * sba_data[4][i] + -0.770164f * sba_data[5][i] + -0.190215f * sba_data[6][i]; - tmp_f[5] = 0.000000f * sba_data[0][i] + 0.691125f * sba_data[1][i] + -1.245365f * sba_data[2][i] + 1.552944f * sba_data[3][i] + -1.552944f * sba_data[4][i] + 1.245365f * sba_data[5][i] + -0.691125f * sba_data[6][i]; - tmp_f[6] = 1.592881f * sba_data[0][i] + -1.435137f * sba_data[1][i] + 0.993145f * sba_data[2][i] + -0.354449f * sba_data[3][i] + -0.354449f * sba_data[4][i] + 0.993145f * sba_data[5][i] + -1.435137f * sba_data[6][i]; - - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = sba_data[7][i]; - sba_data[3][i] = tmp_f[2]; - sba_data[4][i] = tmp_f[3]; - sba_data[8][i] = tmp_f[4]; - sba_data[9][i] = tmp_f[5]; - sba_data[15][i] = tmp_f[6]; - } - - return; - } - else if ( nchan_transport >= 5 ) - { - for ( i = 0; i < output_frame; i++ ) - { - tmp_f[0] = 0.708982f * sba_data[0][i] + 0.708982f * sba_data[1][i] + 0.708982f * sba_data[2][i] + 0.708982f * sba_data[3][i] + 0.708982f * sba_data[4][i]; - tmp_f[1] = 0.000000f * sba_data[0][i] + 1.005966f * sba_data[1][i] + 0.621721f * sba_data[2][i] + -0.621721f * sba_data[3][i] + -1.005966f * sba_data[4][i]; - tmp_f[2] = 1.057735f * sba_data[0][i] + 0.326858f * sba_data[1][i] + -0.855726f * sba_data[2][i] + -0.855726f * sba_data[3][i] + 0.326858f * sba_data[4][i]; - tmp_f[3] = 0.000000f * sba_data[0][i] + 1.079884f * sba_data[1][i] + -1.747289f * sba_data[2][i] + 1.747289f * sba_data[3][i] + -1.079884f * sba_data[4][i]; - tmp_f[4] = 1.837208f * sba_data[0][i] + -1.486333f * sba_data[1][i] + 0.567729f * sba_data[2][i] + 0.567729f * sba_data[3][i] + -1.486333f * sba_data[4][i]; - - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = sba_data[5][i]; - sba_data[3][i] = tmp_f[2]; - sba_data[4][i] = tmp_f[3]; - sba_data[8][i] = tmp_f[4]; - } - - return; - } - else if ( nchan_transport >= 3 ) - { - - /*A-format to ACN/SN3D*/ - for ( i = 0; i < output_frame; i++ ) - { - tmp_f[0] = 0.5f * ( sba_data[0][i] + sba_data[1][i] + sba_data[2][i] + sba_data[3][i] ); - tmp_f[1] = sba_data[0][i] - sba_data[1][i]; - tmp_f[2] = sba_data[2][i] - sba_data[3][i]; - tmp_f[3] = sba_data[0][i] + sba_data[1][i] - sba_data[2][i] - sba_data[3][i]; - - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = tmp_f[2]; - sba_data[3][i] = tmp_f[3]; - } - - return; - } - else if ( nchan_transport == 2 ) - { - /* do nothing for stereo DMX, upmix done in DirAC*/ - return; - } - else if ( nchan_transport == 1 ) - { - /* do nothing; simply use omni */ - return; - } - else - { - assert( 0 && "SBA: number of transport channels not supported." ); - } -} -#endif - -/*-------------------------------------------------------------------------* - * ivas_ism2sba() - * - * ISM transformed into SBA in TD domain. - *-------------------------------------------------------------------------*/ - -void ivas_ism2sba( - float buffer_td[][L_FRAME48k], /* i/o: TD signal buffers */ - ISM_RENDERER_HANDLE hIsmRendererData, /* i/o: renderer data */ - const ISM_METADATA_HANDLE hIsmMetaData[], /* i : object metadata */ - const int16_t num_objects, /* i : number of objects */ - const int16_t output_frame, /* i : output frame length per channel */ - const int16_t sba_order /* i : Ambisonic (SBA) order */ -) -{ - int16_t i, j, k; - float buffer_tmp[16][L_FRAME48k]; - float gains[16]; - float g1, g2; - int16_t azimuth, elevation; - int16_t sba_num_chans; - - assert( ( sba_order <= 3 ) && "Only order up to 3 is supported!" ); - assert( hIsmRendererData != NULL && "hIsmRendererData not allocated!" ); - - /* Init*/ - sba_num_chans = ( sba_order + 1 ) * ( sba_order + 1 ); - for ( j = 0; j < sba_num_chans; j++ ) - { - set_zero( buffer_tmp[j], output_frame ); - } - - for ( i = 0; i < num_objects; i++ ) - { - azimuth = (int16_t) ( hIsmMetaData[i]->azimuth + 0.5f ); - elevation = (int16_t) ( hIsmMetaData[i]->elevation + 0.5f ); - - /*get HOA gets for direction (ACN/SN3D)*/ - ivas_dirac_dec_get_response( - azimuth, - elevation, - gains, - sba_order ); - - for ( j = 0; j < sba_num_chans; j++ ) - { - g2 = 0.f; - for ( k = 0; k < output_frame; k++ ) - { - g2 += 1.f / output_frame; - g1 = 1.0f - g2; - buffer_tmp[j][k] += ( g2 * gains[j] + g1 * hIsmRendererData->prev_gains[i][j] ) * buffer_td[i][k]; - } - hIsmRendererData->prev_gains[i][j] = gains[j]; - } - } - - for ( j = 0; j < sba_num_chans; j++ ) - { - mvr2r( buffer_tmp[j], buffer_td[j], output_frame ); - } - - return; -} - - /*-------------------------------------------------------------------* * ivas_sba_dec_decoder() * @@ -509,15 +85,13 @@ ivas_error ivas_sba_dec_reconfigure( numCldfbAnalyses = 0; sba_total_brate = ivas_total_brate; + nSCE_old = st_ivas->nSCE; nCPE_old = st_ivas->nCPE; nchan_transport_old = st_ivas->nchan_transport; sba_dirac_stereo_flag_old = st_ivas->sba_dirac_stereo_flag; - - st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); - -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); +#ifndef SBA_ORDER_BITSTREAM + ivas_sba_config( sba_total_brate, st_ivas->sba_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); #else ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); #endif @@ -536,9 +110,8 @@ ivas_error ivas_sba_dec_reconfigure( if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ); - -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#ifndef SBA_ORDER_BITSTREAM + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) #endif @@ -549,13 +122,15 @@ ivas_error ivas_sba_dec_reconfigure( else { int16_t sba_order_internal; - +#ifndef SBA_ORDER_BITSTREAM + sba_order_internal = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); +#else sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif ivas_spar_config( st_ivas->hDecoderConfig->ivas_total_brate, sba_order_internal, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->hSpar->core_nominal_brate, st_ivas->sid_format ); - -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) - +#ifndef SBA_ORDER_BITSTREAM + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, + st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) @@ -565,11 +140,8 @@ ivas_error ivas_sba_dec_reconfigure( } } -#ifdef ALIGN_SID_SIZE - if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_5k2 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) -#else - if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_4k4 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) -#endif + if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && + ( last_ivas_total_brate > IVAS_SID_4k4 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) { if ( st_ivas->hDirAC != NULL ) { @@ -941,11 +513,7 @@ ivas_error ivas_sba_dec_reconfigure( } /* special case, if the decoder goes from 1TC DTX to 2TC active frame (in case the bitstream started with an SBA SID frame), allocate DTX memories */ -#ifdef ALIGN_SID_SIZE - if ( last_ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE >= 1 ) -#else if ( last_ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE >= 1 ) -#endif { if ( ( error = initMdctStereoDtxData( st_ivas->hCPE[0] ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_sce_dec.c b/lib_dec/ivas_sce_dec.c index b24d60505b..5b83a41f81 100644 --- a/lib_dec/ivas_sce_dec.c +++ b/lib_dec/ivas_sce_dec.c @@ -82,11 +82,7 @@ ivas_error ivas_sce_dec( *-----------------------------------------------------------------*/ /* set total_brate - needed in DTX */ -#ifdef ALIGN_SID_SIZE - if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_5k2 ) ) -#else if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) ) -#endif { st->total_brate = ivas_total_brate - nb_bits_metadata * FRAMES_PER_SEC; assert( st->total_brate == SID_2k40 && "SCE SID must be 2.4kbps!" ); @@ -95,11 +91,7 @@ ivas_error ivas_sce_dec( { st->total_brate = ivas_total_brate; } -#ifdef ALIGN_SID_SIZE - else if ( !st_ivas->bfi && ( last_ivas_total_brate <= SID_2k40 || last_ivas_total_brate == IVAS_SID_5k2 ) ) -#else else if ( !st_ivas->bfi && ( last_ivas_total_brate <= SID_2k40 || last_ivas_total_brate == IVAS_SID_4k4 ) ) -#endif { st->total_brate = hSCE->element_brate - nb_bits_metadata * FRAMES_PER_SEC; } @@ -169,11 +161,7 @@ ivas_error ivas_sce_dec( } /* set "total_brate" */ -#ifdef ALIGN_SID_SIZE - if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_5k2 ) ) -#else if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) ) -#endif { st->total_brate = ivas_total_brate - nb_bits_metadata * FRAMES_PER_SEC; } @@ -350,7 +338,7 @@ ivas_error create_sce_dec( st->total_brate = hSCE->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ st->mct_chan_mode = MCT_CHAN_MODE_REGULAR; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( ( error = init_decoder( st, 0, st_ivas->mc_mode ) ) != IVAS_ERR_OK ) #else if ( ( error = init_decoder( st, 0 ) ) != IVAS_ERR_OK ) diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c old mode 100644 new mode 100755 index 2e48c11745..cc625f2605 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -71,7 +71,11 @@ ivas_error ivas_spar_dec_open( int32_t output_Fs; error = IVAS_ERR_OK; +#ifndef SBA_ORDER_BITSTREAM + sba_order_internal = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); +#else sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif num_channels_internal = ivas_sba_get_nchan_metadata( sba_order_internal ); /* SPAR decoder handle */ @@ -241,12 +245,6 @@ ivas_error ivas_spar_dec( next_bit_pos_orig = st0->next_bit_pos; last_bit_pos = (int16_t) ( ( hDecoderConfig->ivas_total_brate / FRAMES_PER_SEC ) - 1 ); -#ifdef ALIGN_SID_SIZE - if ( !st0->bfi && hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) - { - last_bit_pos -= SID_FORMAT_NBITS; - } -#endif nb_bits_read_orig = *nb_bits_read; last_bit_pos -= nb_bits_read_orig; @@ -266,17 +264,6 @@ ivas_error ivas_spar_dec( st0->bit_stream = bit_stream_orig; st0->next_bit_pos = next_bit_pos_orig; -#ifdef ALIGN_SID_SIZE - if ( !st0->bfi && hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) - { - int16_t zero_pad_bits; - *nb_bits_read += SID_FORMAT_NBITS; - zero_pad_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - *nb_bits_read; - assert( zero_pad_bits <= 1 ); - *nb_bits_read += zero_pad_bits; - } -#endif - wmops_sub_end(); return error; @@ -636,8 +623,11 @@ static void ivas_spar_dec_MD( /*---------------------------------------------------------------------* * Initialization *---------------------------------------------------------------------*/ - +#ifndef SBA_ORDER_BITSTREAM + sba_order = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); +#else sba_order = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif bfi = st_ivas->bfi; ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; num_channels = ivas_sba_get_nchan_metadata( sba_order ); @@ -645,11 +635,7 @@ static void ivas_spar_dec_MD( if ( ivas_total_brate > FRAME_NO_DATA && !bfi ) { -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate > IVAS_SID_5k2 ) -#else if ( ivas_total_brate > IVAS_SID_5k ) -#endif { ivas_parse_spar_header( hDecoderConfig->ivas_total_brate, sba_order, st0, &table_idx ); @@ -683,11 +669,7 @@ static void ivas_spar_dec_MD( * Read AGC bits *---------------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate > IVAS_SID_5k2 && !bfi && hSpar->hMdDec->dtx_vad ) -#else if ( ivas_total_brate > IVAS_SID_5k && !bfi && hSpar->hMdDec->dtx_vad ) -#endif { hSpar->AGC_flag = get_next_indice( st0, 1 ); @@ -698,11 +680,7 @@ static void ivas_spar_dec_MD( * MD smoothing *---------------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE - if ( st0->m_old_frame_type == ZERO_FRAME && ivas_total_brate == IVAS_SID_5k2 && st0->prev_bfi == 0 && hSpar->hMdDec->spar_md_cfg.nchan_transport == 1 ) -#else if ( st0->m_old_frame_type == ZERO_FRAME && ivas_total_brate == IVAS_SID_5k && st0->prev_bfi == 0 && hSpar->hMdDec->spar_md_cfg.nchan_transport == 1 ) -#endif { ivas_spar_setup_md_smoothing( hSpar->hMdDec, num_bands_out ); } @@ -994,8 +972,9 @@ void ivas_spar_dec_upmixer( /*---------------------------------------------------------------------* * PCA decoder *---------------------------------------------------------------------*/ + #ifdef DEBUG_SBA_AUDIO_DUMP - hSpar->pca_ingest_channels = num_in_ingest; + pState->pca_ingest_channels = num_in_ingest; #endif if ( hSpar->hPCA != NULL ) @@ -1007,7 +986,6 @@ void ivas_spar_dec_upmixer( #endif } - /*---------------------------------------------------------------------* * TD decorrelation *---------------------------------------------------------------------*/ @@ -1186,7 +1164,7 @@ void ivas_spar_dec_upmixer( } } #ifdef DEBUG_SBA_AUDIO_DUMP - hSpar->numOutChannels = outchannels; + pState->numOutChannels = outchannels; #endif } else @@ -1205,12 +1183,12 @@ void ivas_spar_dec_upmixer( } } #ifdef DEBUG_SBA_AUDIO_DUMP - hSpar->numOutChannels = numch_out_dirac; + pState->numOutChannels = numch_out_dirac; #endif } #ifdef DEBUG_SBA_AUDIO_DUMP /* Dump audio signal after cldfbSynthesis */ - ivas_spar_dump_signal_wav( output_frame, NULL, output, hSpar->numOutChannels, spar_foa_dec_wav[3], "cldfbSynthesis()" ); + ivas_spar_dump_signal_wav( output_frame, NULL, output, pState->numOutChannels, spar_foa_dec_wav[3], "cldfbSynthesis()" ); #endif split_band = SPAR_DIRAC_SPLIT_START_BAND; diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index c0682c58a2..be1b3fcb10 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -63,11 +63,11 @@ static const int16_t ivas_spar_dec_plc_spatial_target[IVAS_SPAR_MAX_CH] = { 1, 0 * Static functions declaration *------------------------------------------------------------------------------------------*/ -static void ivas_get_spar_matrices( ivas_spar_md_dec_state_t *hMdDec, const int16_t num_bands_out, const int16_t n_ts, const int16_t bw, const int16_t dtx_vad, const int16_t nB, const int16_t sba_order ); +static void ivas_get_spar_matrices( ivas_spar_md_dec_state_t *pState, const int16_t num_bands_out, const int16_t n_ts, const int16_t bw, const int16_t dtx_vad, const int16_t nB, const int16_t sba_order ); -static void ivas_decode_arith_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, const uint16_t qsi, const int16_t nB, const int16_t bands_bw, int16_t *pDo_diff, const int16_t freq_diff, const int16_t planarCP ); +static void ivas_decode_arith_bs( ivas_spar_md_dec_state_t *pState, Decoder_State *st, const uint16_t qsi, const int16_t nB, const int16_t bands_bw, int16_t *pDo_diff, const int16_t freq_diff, const int16_t planarCP ); -static void ivas_decode_huffman_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, const uint16_t qsi, const int16_t nB, const int16_t bands_bw, const int16_t planarCP ); +static void ivas_decode_huffman_bs( ivas_spar_md_dec_state_t *pState, Decoder_State *st, const uint16_t qsi, const int16_t nB, const int16_t bands_bw, const int16_t planarCP ); static void ivas_fill_band_coeffs_idx( ivas_band_coeffs_ind_t *pBands_idx, const int16_t nB, int16_t *pSymbol_re, ivas_cell_dim_t *pCell_dims, ivas_coeffs_type_t coeff_type, const int16_t planarCP ); @@ -75,14 +75,16 @@ static void ivas_get_band_idx_from_differential( ivas_spar_md_t *pSpar_md, const static void ivas_mat_col_rearrange( float in_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], const int16_t order[IVAS_SPAR_MAX_CH], const int16_t i_ts, float ***mixer_mat, const int16_t bands, const int16_t num_ch ); -static void ivas_spar_dec_compute_ramp_down_post_matrix( ivas_spar_md_dec_state_t *hMdDec, const int16_t num_bands, const int16_t bfi ); +static void ivas_spar_dec_compute_ramp_down_post_matrix( ivas_spar_md_dec_state_t *pState, const int16_t num_bands, const int16_t bfi ); -static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coeffs, ivas_spar_dec_matrices_t *pSpar_coeffs_prev, const int16_t *valid_bands, int16_t *base_band_age, const int16_t num_bands, const int16_t sba_order ); +static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coeffs, ivas_spar_dec_matrices_t *pSpar_coeffs_prev, int16_t *valid_bands, int16_t *base_band_age, const int16_t num_bands, const int16_t sba_order ); -static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ); +static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *pState, const int16_t nchan_transport, float *pFC ); static void ivas_parse_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, Decoder_State *st, const int16_t bw, const int16_t num_bands, int16_t *num_dmx_per_band, int16_t *num_dec_per_band ); -static ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, float *quant, const int16_t num_ch_dim2 ); + +static ivas_error ivas_deindex_real_index( int16_t **index, const int16_t q_levels, const float min_value, const float max_value, float **quant, const int16_t num_ch, const int16_t dim2 ); + static void ivas_spar_dec_parse_md_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, int16_t *nB, int16_t *bands_bw, int16_t *dtx_vad, const int32_t ivas_total_brate, const int16_t use_planar_coeff, const int16_t sba_inactive_mode ); @@ -424,7 +426,7 @@ void ivas_spar_md_dec_close( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_md_dec_init() * - * SPAR MD decoder initialization + * Init call for md dec process *-----------------------------------------------------------------------------------------*/ ivas_error ivas_spar_md_dec_init( @@ -436,11 +438,12 @@ ivas_error ivas_spar_md_dec_init( int16_t i, j, k; int16_t nchan_transport; float pFC[IVAS_MAX_NUM_BANDS], PR_minmax[2]; + ivas_spar_md_dec_state_t *pState = hMdDec; - hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? - ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) ); + pState->spar_md_cfg.gen_bs = 1; + ivas_spar_set_bitrate_config( &pState->spar_md_cfg, pState->table_idx, min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) ); - nchan_transport = hMdDec->spar_md_cfg.nchan_transport; + nchan_transport = pState->spar_md_cfg.nchan_transport; /* get FB coefficients */ for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) @@ -448,28 +451,28 @@ ivas_error ivas_spar_md_dec_init( pFC[i] = ivas_fb_fcs_12band_1ms[i] * hDecoderConfig->output_Fs * 0.5f; } - ivas_spar_set_dec_config( hMdDec, nchan_transport, pFC ); + ivas_spar_set_dec_config( pState, nchan_transport, pFC ); - if ( nchan_transport != 2 && ( ( hMdDec->spar_md_cfg.remix_unmix_order == 2 ) || ( hMdDec->spar_md_cfg.remix_unmix_order == 1 ) ) ) + if ( nchan_transport != 2 && ( ( pState->spar_md_cfg.remix_unmix_order == 2 ) || ( pState->spar_md_cfg.remix_unmix_order == 1 ) ) ) { return IVAS_ERR_INTERNAL; } /* DTX quant init */ - PR_minmax[0] = hMdDec->spar_md_cfg.quant_strat[0].PR.min; - PR_minmax[1] = hMdDec->spar_md_cfg.quant_strat[0].PR.max; - ivas_spar_quant_dtx_init( &hMdDec->spar_md, PR_minmax ); + PR_minmax[0] = pState->spar_md_cfg.quant_strat[0].PR.min; + PR_minmax[1] = pState->spar_md_cfg.quant_strat[0].PR.max; + ivas_spar_quant_dtx_init( &pState->spar_md, PR_minmax ); - ivas_spar_arith_coeffs_com_init( &hMdDec->arith_coeffs, &hMdDec->spar_md_cfg, hMdDec->table_idx, DEC ); - ivas_spar_huff_coeffs_com_init( &hMdDec->huff_coeffs, &hMdDec->spar_md_cfg, hMdDec->table_idx, DEC ); + ivas_spar_arith_coeffs_com_init( &pState->arith_coeffs, &pState->spar_md_cfg, pState->table_idx, DEC ); + ivas_spar_huff_coeffs_com_init( &pState->huff_coeffs, &pState->spar_md_cfg, pState->table_idx, DEC ); - hMdDec->spar_md_cfg.prev_quant_idx = -1; + pState->spar_md_cfg.prev_quant_idx = -1; /* initialize PLC state */ - set_s( hMdDec->valid_bands, 0, IVAS_MAX_NUM_BANDS ); - set_s( hMdDec->base_band_age, 0, IVAS_MAX_NUM_BANDS ); - hMdDec->spar_plc_num_lost_frames = 0; - hMdDec->spar_plc_enable_fadeout_flag = 1; + set_s( pState->valid_bands, 0, IVAS_MAX_NUM_BANDS ); + set_s( pState->base_band_age, 0, IVAS_MAX_NUM_BANDS ); + pState->spar_plc_num_lost_frames = 0; + pState->spar_plc_enable_fadeout_flag = 1; for ( i = 0; i < num_channels; i++ ) { @@ -477,7 +480,7 @@ ivas_error ivas_spar_md_dec_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - hMdDec->spar_coeffs_prev.C_re[i][j][k] = 0; + pState->spar_coeffs_prev.C_re[i][j][k] = 0; } } } @@ -488,7 +491,7 @@ ivas_error ivas_spar_md_dec_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - hMdDec->spar_coeffs_prev.P_re[i][j][k] = 0; + pState->spar_coeffs_prev.P_re[i][j][k] = 0; } } } @@ -499,7 +502,7 @@ ivas_error ivas_spar_md_dec_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - hMdDec->spar_coeffs_tar.C_re[i][j][k] = 0; + pState->spar_coeffs_tar.C_re[i][j][k] = 0; } } } @@ -510,24 +513,24 @@ ivas_error ivas_spar_md_dec_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - hMdDec->spar_coeffs_tar.P_re[i][j][k] = 0; + pState->spar_coeffs_tar.P_re[i][j][k] = 0; } } } - hMdDec->dtx_md_smoothing_cntr = 1; + pState->dtx_md_smoothing_cntr = 1; - ivas_clear_band_coeffs( hMdDec->spar_md.band_coeffs, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( hMdDec->spar_md.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( hMdDec->spar_md_prev.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( hMdDec->spar_md_prev.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeffs( pState->spar_md.band_coeffs, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( pState->spar_md.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( pState->spar_md_prev.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( pState->spar_md_prev.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); - hMdDec->spar_md.dtx_vad = 0; - hMdDec->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); - hMdDec->td_decorr_flag = 1; + pState->spar_md.dtx_vad = 0; + pState->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); + pState->td_decorr_flag = 1; - set_f( hMdDec->spar_md.en_ratio_slow, 0.0f, IVAS_MAX_NUM_BANDS ); - set_f( hMdDec->spar_md.ref_pow_slow, 0.0f, IVAS_MAX_NUM_BANDS ); + set_f( pState->spar_md.en_ratio_slow, 0.0f, IVAS_MAX_NUM_BANDS ); + set_f( pState->spar_md.ref_pow_slow, 0.0f, IVAS_MAX_NUM_BANDS ); return IVAS_ERR_OK; } @@ -536,11 +539,11 @@ ivas_error ivas_spar_md_dec_init( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_set_dec_config() * - * Set configuration for SPAR MD decoder + * Set configuration for SPAR md dec *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_spar_set_dec_config( - ivas_spar_md_dec_state_t *hMdDec, + ivas_spar_md_dec_state_t *pState, const int16_t nchan_transport, float *pFC ) { @@ -548,31 +551,31 @@ static ivas_error ivas_spar_set_dec_config( for ( i = 0; i < nchan_transport; i++ ) { - hMdDec->spar_md_cfg.max_freq_per_chan[i] = ivas_spar_br_table_consts[hMdDec->table_idx].fpcs; + pState->spar_md_cfg.max_freq_per_chan[i] = ivas_spar_br_table_consts[pState->table_idx].fpcs; } - nchan = ivas_sba_get_nchan_metadata( ivas_spar_br_table_consts[hMdDec->table_idx].sba_order ); + nchan = ivas_sba_get_nchan_metadata( ivas_spar_br_table_consts[pState->table_idx].sba_order ); switch ( nchan ) { case 4: /* FOA_CHANNELS */ - hMdDec->num_decorr = IVAS_TD_DECORR_OUT_3CH; + pState->num_decorr = IVAS_TD_DECORR_OUT_3CH; break; case 9: /* IVAS_HOA_2_CH */ // VE: is this relevant? - hMdDec->num_decorr = IVAS_TD_DECORR_OUT_5CH; + pState->num_decorr = IVAS_TD_DECORR_OUT_5CH; break; case 16: /* IVAS_HOA_3_CH */ // VE: is this relevant? - hMdDec->num_decorr = IVAS_TD_DECORR_OUT_12CH; + pState->num_decorr = IVAS_TD_DECORR_OUT_12CH; break; case 6: /* IVAS_HOA_2_CH */ - hMdDec->num_decorr = IVAS_TD_DECORR_OUT_2CH; + pState->num_decorr = IVAS_TD_DECORR_OUT_2CH; break; case 8: /* IVAS_HOA_3_CH */ - hMdDec->num_decorr = IVAS_TD_DECORR_OUT_4CH; + pState->num_decorr = IVAS_TD_DECORR_OUT_4CH; break; } - hMdDec->spar_md_cfg.num_umx_chs = nchan; + pState->spar_md_cfg.num_umx_chs = nchan; dmx_ch = 0; for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) @@ -580,17 +583,17 @@ static ivas_error ivas_spar_set_dec_config( dmx_ch = 0; for ( j = 0; j < nchan_transport; j++ ) { - if ( pFC[i] < hMdDec->spar_md_cfg.max_freq_per_chan[j] ) + if ( pFC[i] < pState->spar_md_cfg.max_freq_per_chan[j] ) { dmx_ch += 1; } } - hMdDec->spar_md_cfg.num_dmx_chans_per_band[i] = hMdDec->spar_md_cfg.nchan_transport; - hMdDec->spar_md_cfg.num_decorr_per_band[i] = nchan - hMdDec->spar_md_cfg.nchan_transport; + pState->spar_md_cfg.num_dmx_chans_per_band[i] = pState->spar_md_cfg.nchan_transport; + pState->spar_md_cfg.num_decorr_per_band[i] = nchan - pState->spar_md_cfg.nchan_transport; } - hMdDec->spar_md_cfg.nchan_transport = dmx_ch; + pState->spar_md_cfg.nchan_transport = dmx_ch; return IVAS_ERR_OK; } @@ -609,10 +612,8 @@ void ivas_spar_md_dec_process( const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { - int16_t j, k, b, bw, dtx_vad, nB, i_ts; - ivas_spar_md_dec_state_t *hMdDec; - - hMdDec = st_ivas->hSpar->hMdDec; + int16_t j, b, bw, dtx_vad, nB, i_ts; + ivas_spar_md_dec_state_t *hMdDec = st_ivas->hSpar->hMdDec; ivas_spar_dec_parse_md_bs( hMdDec, st0, &nB, &bw, &dtx_vad, st_ivas->hDecoderConfig->ivas_total_brate, ivas_spar_br_table_consts[hMdDec->table_idx].usePlanarCoeff, st_ivas->hQMetaData->sba_inactive_mode ); @@ -665,8 +666,8 @@ void ivas_spar_md_dec_process( } #endif - /* SPAR to DirAC and DirAC to SPAR conversion */ // VE2DB: -> "DirAC to SPAR conversion" only? - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete + /* SPAR to DirAC and DirAC to SPAR conversion */ + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); @@ -690,7 +691,7 @@ void ivas_spar_md_dec_process( for ( j = 0; j < IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS; j++ ) { - for ( k = 0; k < IVAS_SPAR_MAX_DMX_CHS - 1; k++ ) + for ( int16_t k = 0; k < IVAS_SPAR_MAX_DMX_CHS - 1; k++ ) { hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].C_re[j][k] = hMdDec->spar_md.band_coeffs[b].C_re[j][k]; } @@ -735,7 +736,6 @@ void ivas_spar_md_dec_process( * * Smooth MD during no data frame during DTX *-----------------------------------------------------------------------------------------*/ - #ifdef SPAR_HOA_DBG /* NOTE: No changes here as DTX only operates below 160kbps */ #endif @@ -744,23 +744,26 @@ void ivas_spar_smooth_md_dtx( const int16_t num_bands_out /* i : number of output bands */ ) { - int16_t j, k, b, dmx_ch; + int16_t j, k, b; + int16_t dmx_ch; + ivas_spar_md_dec_state_t *pState = hMdDec; float ramp, tar, prev, new_val; - ramp = (float) hMdDec->dtx_md_smoothing_cntr / IVAS_DEFAULT_DTX_CNG_RAMP; + ramp = (float) pState->dtx_md_smoothing_cntr / IVAS_DEFAULT_DTX_CNG_RAMP; for ( b = 0; b < num_bands_out; b++ ) { - dmx_ch = hMdDec->spar_md_cfg.num_dmx_chans_per_band[b]; + dmx_ch = pState->spar_md_cfg.num_dmx_chans_per_band[b]; for ( j = 1; j < FOA_CHANNELS; j++ ) { for ( k = dmx_ch; k < FOA_CHANNELS; k++ ) + { - prev = hMdDec->spar_coeffs_prev.P_re[j][k][b]; - tar = hMdDec->spar_coeffs_tar.P_re[j][k][b]; + prev = pState->spar_coeffs_prev.P_re[j][k][b]; + tar = pState->spar_coeffs_tar.P_re[j][k][b]; new_val = prev + ( ramp * ( tar - prev ) ); - hMdDec->spar_coeffs.P_re[j][k][b] = new_val; + pState->spar_coeffs.P_re[j][k][b] = new_val; } } @@ -768,10 +771,10 @@ void ivas_spar_smooth_md_dtx( { for ( k = 0; k < dmx_ch; k++ ) { - prev = hMdDec->spar_coeffs_prev.C_re[j][k][b]; - tar = hMdDec->spar_coeffs_tar.C_re[j][k][b]; + prev = pState->spar_coeffs_prev.C_re[j][k][b]; + tar = pState->spar_coeffs_tar.C_re[j][k][b]; new_val = prev + ( ramp * ( tar - prev ) ); - hMdDec->spar_coeffs.C_re[j][k][b] = new_val; + pState->spar_coeffs.C_re[j][k][b] = new_val; } } } @@ -781,14 +784,14 @@ void ivas_spar_smooth_md_dtx( { for ( b = 0; b < num_bands_out; b++ ) { - dmx_ch = hMdDec->spar_md_cfg.num_dmx_chans_per_band[b]; + dmx_ch = pState->spar_md_cfg.num_dmx_chans_per_band[b]; for ( j = 1; j < FOA_CHANNELS; j++ ) { for ( k = dmx_ch; k < FOA_CHANNELS; k++ ) { - hMdDec->spar_coeffs.P_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.P_re[j][k][b]; + pState->spar_coeffs.P_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.P_re[j][k][b]; } } @@ -796,13 +799,13 @@ void ivas_spar_smooth_md_dtx( { for ( k = 0; k < dmx_ch; k++ ) { - hMdDec->spar_coeffs.C_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.C_re[j][k][b]; + pState->spar_coeffs.C_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.C_re[j][k][b]; } } } } - hMdDec->dtx_md_smoothing_cntr = min( hMdDec->dtx_md_smoothing_cntr + 1, IVAS_DEFAULT_DTX_CNG_RAMP ); + pState->dtx_md_smoothing_cntr = min( pState->dtx_md_smoothing_cntr + 1, IVAS_DEFAULT_DTX_CNG_RAMP ); return; } @@ -942,7 +945,7 @@ void ivas_spar_update_md_hist( *-----------------------------------------------------------------------------------------*/ static void ivas_get_spar_matrices( - ivas_spar_md_dec_state_t *hMdDec, + ivas_spar_md_dec_state_t *pState, const int16_t num_bands_out, const int16_t n_ts, const int16_t bw, @@ -950,15 +953,16 @@ static void ivas_get_spar_matrices( const int16_t nB, const int16_t sba_order ) { - int16_t numch_out, num_bands, dmx_ch, split_band; + int16_t numch_out, num_bands, dmx_ch; int16_t i, j, k, m, b, i_ts, active_w; const int16_t *order; float active_w_dm_fac, re; + int16_t split_band; numch_out = ivas_sba_get_nchan_metadata( sba_order ); num_bands = num_bands_out; - order = remix_order_set[hMdDec->spar_md_cfg.remix_unmix_order]; + order = remix_order_set[pState->spar_md_cfg.remix_unmix_order]; split_band = SPAR_DIRAC_SPLIT_START_BAND; if ( split_band >= IVAS_MAX_NUM_BANDS ) @@ -970,7 +974,7 @@ static void ivas_get_spar_matrices( { for ( b = 0; b < num_bands; b++ ) { - hMdDec->mixer_mat_prev[0][i][j][b] = hMdDec->mixer_mat[i][j][b]; + pState->mixer_mat_prev[0][i][j][b] = pState->mixer_mat[i][j][b]; } } } @@ -979,19 +983,19 @@ static void ivas_get_spar_matrices( #ifdef SPAR_HOA_DBG /*for (b = 0; b < BANDS_12; b++) { - for (i = 0; i < IVAS_SPAR_MAX_CH - 1; i++) + for (i = 0; i < IVAS_SPAR_MAX_CH - 1; i++) + { + pState->spar_md.band_coeffs[b].pred_re[i] = (float)(i + 1)/10; + for (j = 0; j < IVAS_SPAR_MAX_CH - 1; j++) { - hMdDec->spar_md.band_coeffs[b].pred_re[i] = (float)(i + 1)/10; - for (j = 0; j < IVAS_SPAR_MAX_CH - 1; j++) - { - hMdDec->spar_md.band_coeffs[b].C_re[i][j] = (float)(i + j * 20 + 1)/10; - hMdDec->spar_md.band_coeffs[b].P_re[i][j] = (float)(i + j * 20 + 1)/10; - } + pState->spar_md.band_coeffs[b].C_re[i][j] = (float)(i + j * 20 + 1)/10; + pState->spar_md.band_coeffs[b].P_re[i][j] = (float)(i + j * 20 + 1)/10; } + } }*/ #endif - active_w = hMdDec->spar_md_cfg.active_w; + active_w = pState->spar_md_cfg.active_w; active_w_dm_fac = ( dtx_vad == 0 ) ? IVAS_ACTIVEW_DM_F_SCALE_DTX : IVAS_ACTIVEW_DM_F_SCALE; for ( i_ts = 0; i_ts < n_ts; i_ts++ ) @@ -1000,8 +1004,8 @@ static void ivas_get_spar_matrices( { for ( j = 0; j < numch_out; j++ ) { - set_zero( &hMdDec->spar_coeffs.C_re[i][j][i_ts * IVAS_MAX_NUM_BANDS], IVAS_MAX_NUM_BANDS ); - set_zero( &hMdDec->spar_coeffs.P_re[i][j][i_ts * IVAS_MAX_NUM_BANDS], IVAS_MAX_NUM_BANDS ); + set_zero( &pState->spar_coeffs.C_re[i][j][i_ts * IVAS_MAX_NUM_BANDS], IVAS_MAX_NUM_BANDS ); + set_zero( &pState->spar_coeffs.P_re[i][j][i_ts * IVAS_MAX_NUM_BANDS], IVAS_MAX_NUM_BANDS ); } } @@ -1018,7 +1022,7 @@ static void ivas_get_spar_matrices( float tmp_C2_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; float tmp_dm_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; - dmx_ch = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bw * b]; + dmx_ch = pState->spar_md_cfg.num_dmx_chans_per_band[bw * b]; for ( j = 0; j < numch_out; j++ ) { @@ -1033,14 +1037,14 @@ static void ivas_get_spar_matrices( for ( j = 1; j < numch_out; j++ ) { - tmp_C1_re[j][0] = hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].pred_re[j - 1]; + tmp_C1_re[j][0] = pState->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].pred_re[j - 1]; } if ( active_w == 1 ) { for ( j = 1; j < numch_out; j++ ) { - tmp_C2_re[0][j] = active_w_dm_fac * -hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].pred_re[j - 1]; + tmp_C2_re[0][j] = active_w_dm_fac * -pState->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].pred_re[j - 1]; } IVAS_RMULT_FLOAT( tmp_C2_re[0][1], tmp_C1_re[1][0], re ); @@ -1064,9 +1068,9 @@ static void ivas_get_spar_matrices( tmp_dm_re[3][0] = tmp_C1_re[3][0]; - if ( hMdDec->spar_md_cfg.remix_unmix_order != 3 ) + if ( pState->spar_md_cfg.remix_unmix_order != 3 ) { - ivas_mat_col_rearrange( tmp_dm_re, order, i_ts, hMdDec->mixer_mat, b, numch_out ); + ivas_mat_col_rearrange( tmp_dm_re, order, i_ts, pState->mixer_mat, b, numch_out ); } else { @@ -1074,24 +1078,24 @@ static void ivas_get_spar_matrices( for ( i = 0; i < FOA_CHANNELS; i++ ) { /* row 0 */ - hMdDec->mixer_mat[i][0][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][0]; + pState->mixer_mat[i][0][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][0]; /* row 1 */ - hMdDec->mixer_mat[i][1][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][1]; + pState->mixer_mat[i][1][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][1]; /* row 3 */ - hMdDec->mixer_mat[i][2][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][1]; + pState->mixer_mat[i][2][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][1]; /* row 4 */ - hMdDec->mixer_mat[i][3][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][2]; + pState->mixer_mat[i][3][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][2]; } } } else { - if ( hMdDec->spar_md_cfg.remix_unmix_order != 3 ) + if ( pState->spar_md_cfg.remix_unmix_order != 3 ) { - ivas_mat_col_rearrange( tmp_C1_re, order, i_ts, hMdDec->mixer_mat, b, numch_out ); + ivas_mat_col_rearrange( tmp_C1_re, order, i_ts, pState->mixer_mat, b, numch_out ); } else { @@ -1099,16 +1103,16 @@ static void ivas_get_spar_matrices( for ( i = 0; i < FOA_CHANNELS; i++ ) { /* row 0 */ - hMdDec->mixer_mat[i][0][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][0]; + pState->mixer_mat[i][0][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][0]; /* row 1 */ - hMdDec->mixer_mat[i][1][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][1]; + pState->mixer_mat[i][1][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][1]; /* row 3 */ - hMdDec->mixer_mat[i][2][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][1]; + pState->mixer_mat[i][2][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][1]; /* row 4 */ - hMdDec->mixer_mat[i][3][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][2]; + pState->mixer_mat[i][3][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][2]; } } } @@ -1138,28 +1142,28 @@ static void ivas_get_spar_matrices( { for ( k = 1; k < dmx_ch; k++ ) { - tmpC_re[j][k] = hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].C_re[j - dmx_ch][k - 1]; + tmpC_re[j][k] = pState->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].C_re[j - dmx_ch][k - 1]; } } #ifdef SPAR_HOA_DBG /*fprintf(stdout, "C matrix1: %d x %d\n\n", numch_out, dmx_ch); for (j = 0; j < numch_out; j++) { - for (k = 0; k < dmx_ch; k++) - { - fprintf(stdout, "%f, ", tmpC_re[j][k]); - } - fprintf(stdout, "\n"); + for (k = 0; k < dmx_ch; k++) + { + fprintf(stdout, "%f, ", tmpC_re[j][k]); + } + fprintf(stdout, "\n"); } fprintf(stdout, "Mixer Mat: %d x %d\n\n", numch_out, numch_out); for ( j = 0; j < numch_out; j++) { - for (k = 0; k < numch_out; k++) - { - fprintf(stdout, "%f, ", hMdDec->mixer_mat[j][k][0][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", pState->mixer_mat[j][k][0][b]); + } + fprintf(stdout, "\n"); }*/ #endif @@ -1169,7 +1173,7 @@ static void ivas_get_spar_matrices( { if ( ( j - dmx_ch ) == ( k - dmx_ch ) ) { - tmpP_re[j][k] = hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].P_re[k - dmx_ch]; + tmpP_re[j][k] = pState->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].P_re[k - dmx_ch]; } else { @@ -1180,26 +1184,26 @@ static void ivas_get_spar_matrices( #ifdef SPAR_HOA_DBG /*if (b == 0) { - fprintf(stdout, "tmp_P matrix: %d x %d\n\n", numch_out, dmx_ch); - for (j = 0; j < numch_out; j++) + fprintf(stdout, "tmp_P matrix: %d x %d\n\n", numch_out, dmx_ch); + for (j = 0; j < numch_out; j++) + { + for (k = 0; k < numch_out; k++) { - for (k = 0; k < numch_out; k++) - { - fprintf(stdout, "%f, ", tmpP_re[j][k]); - } - fprintf(stdout, "\n"); - + fprintf(stdout, "%f, ", tmpP_re[j][k]); } - fprintf(stdout, "Mixer Mat: %d x %d\n\n", numch_out, numch_out); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) - { - fprintf(stdout, "%f, ", hMdDec->mixer_mat[j][k][0][b]); - } - fprintf(stdout, "\n"); + fprintf(stdout, "\n"); + } + fprintf(stdout, "Mixer Mat: %d x %d\n\n", numch_out, numch_out); + for (j = 0; j < numch_out; j++) + { + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", pState->mixer_mat[j][k][0][b]); } + fprintf(stdout, "\n"); + + } }*/ #endif for ( j = 1; j < numch_out; j++ ) @@ -1209,8 +1213,8 @@ static void ivas_get_spar_matrices( { for ( m = 0; m < numch_out; m++ ) { - IVAS_RMULT_FLOAT( hMdDec->mixer_mat[j][m][b + i_ts * IVAS_MAX_NUM_BANDS], tmpP_re[m][k], re ); - hMdDec->spar_coeffs.P_re[j][k][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] += re; + IVAS_RMULT_FLOAT( pState->mixer_mat[j][m][b + i_ts * IVAS_MAX_NUM_BANDS], tmpP_re[m][k], re ); + pState->spar_coeffs.P_re[j][k][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] += re; } } } @@ -1221,8 +1225,8 @@ static void ivas_get_spar_matrices( { for ( m = 0; m < numch_out; m++ ) { - IVAS_RMULT_FLOAT( hMdDec->mixer_mat[j][m][b + i_ts * IVAS_MAX_NUM_BANDS], tmpC_re[m][k], re ); - hMdDec->spar_coeffs.C_re[j][k][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] += re; + IVAS_RMULT_FLOAT( pState->mixer_mat[j][m][b + i_ts * IVAS_MAX_NUM_BANDS], tmpC_re[m][k], re ); + pState->spar_coeffs.C_re[j][k][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] += re; } } } @@ -1230,42 +1234,42 @@ static void ivas_get_spar_matrices( /*fprintf(stdout, "C matrix1: %d x %d\n\n", numch_out, dmx_ch); for (j = 0; j < numch_out; j++) { - for (k = 0; k < dmx_ch; k++) - { - fprintf(stdout, "%f, ", hMdDec->spar_coeffs.C_re[j][k][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < dmx_ch; k++) + { + fprintf(stdout, "%f, ", pState->spar_coeffs.C_re[j][k][b]); + } + fprintf(stdout, "\n"); }*/ #endif - hMdDec->spar_coeffs.C_re[0][0][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] = - max( 0, hMdDec->spar_coeffs.C_re[0][0][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] ); + pState->spar_coeffs.C_re[0][0][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] = + max( 0, pState->spar_coeffs.C_re[0][0][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] ); } } #ifdef SPAR_HOA_DBG /* for (b = 0; b < 1; b++) { - fprintf(stdout, "C matrix: %d x %d band %d\n\n", numch_out, dmx_ch, b); - for (j = 0; j < numch_out; j++) + fprintf(stdout, "C matrix: %d x %d band %d\n\n", numch_out, dmx_ch, b); + for (j = 0; j < numch_out; j++) + { + for (k = 0; k < numch_out; k++) { - for (k = 0; k < numch_out; k++) - { - fprintf(stdout, "%f, ", hMdDec->spar_coeffs.C_re[j][k][b]); - } - fprintf(stdout, "\n"); - + fprintf(stdout, "%f, ", pState->spar_coeffs.C_re[j][k][b]); } - fprintf(stdout, "\nP matrix: %d x %d\n\n", numch_out, numch_out); + fprintf(stdout, "\n"); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) - { - fprintf(stdout, "%f, ", hMdDec->spar_coeffs.P_re[j][k][b]); - } - fprintf(stdout, "\n"); + } + fprintf(stdout, "\nP matrix: %d x %d\n\n", numch_out, numch_out); + for (j = 0; j < numch_out; j++) + { + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", pState->spar_coeffs.P_re[j][k][b]); } + fprintf(stdout, "\n"); + + } }*/ #endif @@ -1274,12 +1278,12 @@ static void ivas_get_spar_matrices( { for ( b = 0; b < num_bands_out; b = b + bw ) { - dmx_ch = hMdDec->spar_md_cfg.num_dmx_chans_per_band[b]; + dmx_ch = pState->spar_md_cfg.num_dmx_chans_per_band[b]; for ( j = 0; j < numch_out; j++ ) { for ( k = dmx_ch; k < numch_out; k++ ) { - hMdDec->spar_coeffs.P_re[j][k][( b + 1 ) + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.P_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS]; + pState->spar_coeffs.P_re[j][k][( b + 1 ) + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.P_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS]; } } @@ -1287,7 +1291,7 @@ static void ivas_get_spar_matrices( { for ( k = 0; k < dmx_ch; k++ ) { - hMdDec->spar_coeffs.C_re[j][k][( b + 1 ) + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.C_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS]; + pState->spar_coeffs.C_re[j][k][( b + 1 ) + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.C_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS]; } } } @@ -1341,14 +1345,14 @@ void ivas_spar_dec_gen_umx_mat( const int16_t bfi /* i : bad frame indicator */ ) { - int16_t i, j, b, i_ts, num_out_ch; - int16_t fb_ducking_flag = 0; // VE2DB: always 0 - can it be removed? - - num_out_ch = hMdDec->spar_md_cfg.num_umx_chs; + int16_t i, j, b, i_ts; + int16_t fb_ducking_flag = 0; + int16_t num_out_ch = hMdDec->spar_md_cfg.num_umx_chs; + ivas_spar_md_dec_state_t *pState = hMdDec; for ( i_ts = 0; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) { - if ( hMdDec->td_decorr_flag == 1 ) + if ( pState->td_decorr_flag == 1 ) { for ( i = 0; i < num_out_ch; i++ ) { @@ -1356,7 +1360,7 @@ void ivas_spar_dec_gen_umx_mat( { for ( b = 0; b < num_bands_out; b++ ) { - hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.C_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; + pState->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.C_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; } } } @@ -1367,7 +1371,7 @@ void ivas_spar_dec_gen_umx_mat( { for ( b = 0; b < num_bands_out; b++ ) { - hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.P_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; + pState->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.P_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; } } } @@ -1385,7 +1389,7 @@ void ivas_spar_dec_gen_umx_mat( { for ( b = 0; b < num_bands_out; b++ ) { - hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.C_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; + pState->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.C_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; } } } @@ -1395,20 +1399,20 @@ void ivas_spar_dec_gen_umx_mat( /* for ( b = 0; b < 1; b++) { - fprintf( stdout, "\n\nMixer Matrix band %d\n\n", b ); - for ( i = 0; i < num_out_ch; i++ ) + fprintf( stdout, "\n\nMixer Matrix band %d\n\n", b ); + for ( i = 0; i < num_out_ch; i++ ) + { + for ( j = 0; j < num_out_ch; j++ ) { - for ( j = 0; j < num_out_ch; j++ ) - { - fprintf( stdout, "%.2f,\t", hMdDec->mixer_mat[i][j][0][b] ); - } - fprintf( stdout, "\n" ); + fprintf( stdout, "%.2f,\t", pState->mixer_mat[i][j][0][b] ); } fprintf( stdout, "\n" ); + } + fprintf( stdout, "\n" ); }*/ #endif - ivas_spar_dec_compute_ramp_down_post_matrix( hMdDec, num_bands_out, bfi ); + ivas_spar_dec_compute_ramp_down_post_matrix( pState, num_bands_out, bfi ); return; } @@ -1417,7 +1421,7 @@ void ivas_spar_dec_gen_umx_mat( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_dec_parse_md_bs() * - * Parse SPAR MD bitstream + * Parses SPAR MD bitstream *-----------------------------------------------------------------------------------------*/ static void ivas_spar_dec_parse_md_bs( @@ -1433,6 +1437,7 @@ static void ivas_spar_dec_parse_md_bs( int16_t i, j, k, num_bands; uint16_t qsi; ivas_quant_strat_t qs; + ivas_spar_md_dec_state_t *pState = hMdDec; int16_t strat, freq_diff, no_ec; int16_t do_diff[IVAS_MAX_NUM_BANDS]; int16_t planarCP = 0; @@ -1440,17 +1445,13 @@ static void ivas_spar_dec_parse_md_bs( *dtx_vad = 1; *bands_bw = 1; qsi = 0; - num_bands = hMdDec->spar_md.num_bands; + num_bands = pState->spar_md.num_bands; - if ( hMdDec->spar_md_cfg.gen_bs == 1 ) + if ( pState->spar_md_cfg.gen_bs == 1 ) { -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate > IVAS_SID_5k2 ) -#else if ( ivas_total_brate > IVAS_SID_5k ) -#endif { - if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) + if ( pState->spar_md_cfg.quant_strat_bits > 0 ) { if ( ivas_total_brate >= BRATE_SPAR_Q_STRAT ) { @@ -1466,11 +1467,11 @@ static void ivas_spar_dec_parse_md_bs( if ( sba_inactive_mode == 1 ) { *dtx_vad = 0; - qsi = hMdDec->spar_md_cfg.quant_strat_bits + 1; + qsi = pState->spar_md_cfg.quant_strat_bits + 1; } else { - qsi = get_next_indice( st0, hMdDec->spar_md_cfg.quant_strat_bits ); + qsi = get_next_indice( st0, pState->spar_md_cfg.quant_strat_bits ); } } } @@ -1495,10 +1496,10 @@ static void ivas_spar_dec_parse_md_bs( { for ( j = 0; j < IVAS_SPAR_MAX_CH - 1; j++ ) { - hMdDec->spar_md.band_coeffs[i].pred_re[j] = 0; - hMdDec->spar_md.band_coeffs[i].P_re[j] = 0; + pState->spar_md.band_coeffs[i].pred_re[j] = 0; + pState->spar_md.band_coeffs[i].P_re[j] = 0; } - hMdDec->valid_bands[i] = 1; + pState->valid_bands[i] = 1; } for ( i = 0; i < num_bands; i++ ) { @@ -1506,31 +1507,31 @@ static void ivas_spar_dec_parse_md_bs( { for ( k = 0; k < ( IVAS_SPAR_MAX_DMX_CHS - 1 ); k++ ) { - hMdDec->spar_md.band_coeffs[i].C_re[j][k] = 0; + pState->spar_md.band_coeffs[i].C_re[j][k] = 0; } } } - ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, - hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); + ivas_parse_parameter_bitstream_dtx( &pState->spar_md, st0, *bands_bw, *nB, + pState->spar_md_cfg.num_dmx_chans_per_band, pState->spar_md_cfg.num_decorr_per_band ); { int16_t ndec, b, idx; for ( i = *nB - 1; i >= 0; i-- ) { - ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; + ndec = pState->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; for ( b = *bands_bw - 1; b >= 0; b-- ) { idx = i * *bands_bw + b; for ( j = 0; j < FOA_CHANNELS - 1; j++ ) { - hMdDec->spar_md.band_coeffs[idx].pred_re[j] = hMdDec->spar_md.band_coeffs[i].pred_re[j]; + pState->spar_md.band_coeffs[idx].pred_re[j] = pState->spar_md.band_coeffs[i].pred_re[j]; } for ( j = 0; j < ndec; j++ ) { - hMdDec->spar_md.band_coeffs[idx].P_re[j] = hMdDec->spar_md.band_coeffs[i].P_re[j]; + pState->spar_md.band_coeffs[idx].P_re[j] = pState->spar_md.band_coeffs[i].P_re[j]; } - hMdDec->valid_bands[idx] = 1; + pState->valid_bands[idx] = 1; } } *nB = num_bands; @@ -1540,7 +1541,7 @@ static void ivas_spar_dec_parse_md_bs( return; } - qs = hMdDec->spar_md_cfg.quant_strat[qsi]; + qs = pState->spar_md_cfg.quant_strat[qsi]; if ( ( qsi == 2 ) && ( use_planar_coeff ) ) { planarCP = 1; @@ -1584,122 +1585,164 @@ static void ivas_spar_dec_parse_md_bs( do_diff[i] = ( ( ( i + 1 ) & 3 ) != strat - 4 ); } - ivas_map_prior_coeffs_quant( &hMdDec->spar_md_prev, &hMdDec->spar_md_cfg, qsi, *nB ); + ivas_map_prior_coeffs_quant( &pState->spar_md_prev, &pState->spar_md_cfg, qsi, *nB ); } #ifdef SPAR_HOA_DBG fprintf( stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat ); #endif - hMdDec->spar_md_cfg.prev_quant_idx = qsi; + pState->spar_md_cfg.prev_quant_idx = qsi; if ( no_ec == 0 ) { - ivas_decode_arith_bs( hMdDec, st0, qsi, *nB, *bands_bw, do_diff, freq_diff, planarCP ); + ivas_decode_arith_bs( pState, st0, qsi, *nB, *bands_bw, do_diff, freq_diff, planarCP ); } else { - ivas_decode_huffman_bs( hMdDec, st0, qsi, *nB, *bands_bw, planarCP ); + ivas_decode_huffman_bs( pState, st0, qsi, *nB, *bands_bw, planarCP ); } for ( i = 0; i < *nB; i++ ) { int16_t ii, jj; - int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; - int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; - float quant[IVAS_SPAR_MAX_C_COEFF]; - ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); + int16_t *index_scratch[IVAS_SPAR_P_LOWERTRI]; + float *quant_scratch[IVAS_SPAR_P_LOWERTRI]; + int16_t ndec = pState->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; + int16_t ndm = pState->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; + int16_t **index = (int16_t **) &index_scratch[0]; + float **quant = (float **) &quant_scratch[0]; + float coeff_decd[IVAS_SPAR_MAX_CH - 1]; + float coeff_decx_re[IVAS_SPAR_P_LOWERTRI]; + int16_t pred_index_re[IVAS_SPAR_MAX_CH - 1]; + int16_t drct_index_re[IVAS_SPAR_MAX_C_COEFF]; + int16_t decd_index_re[IVAS_SPAR_MAX_CH - 1]; + int16_t decx_index_re[IVAS_SPAR_P_LOWERTRI]; - j = 0; + for ( j = 0; j < ndm + ndec - 1; j++ ) + { + pred_index_re[j] = pState->spar_md.band_coeffs_idx[i].pred_index_re[j]; + } + for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) + { + drct_index_re[j] = pState->spar_md.band_coeffs_idx[i].drct_index_re[j]; + } + for ( j = 0; j < ndec; j++ ) + { + decd_index_re[j] = pState->spar_md.band_coeffs_idx[i].decd_index_re[j]; + } + + index[0] = &pred_index_re[0]; + quant[0] = &pState->spar_md.band_coeffs[i].pred_re[0]; + + ivas_deindex_real_index( index, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, quant, 1, ndm + ndec - 1 ); for ( ii = 0; ii < ndec; ii++ ) { for ( jj = 0; jj < ndm - 1; jj++ ) { - quant[j] = hMdDec->spar_md.band_coeffs[i].C_re[ii][jj]; - j++; + pState->spar_md.band_coeffs[i].C_re[ii][jj] = 0; } } - ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); j = 0; for ( ii = 0; ii < ndec; ii++ ) { for ( jj = 0; jj < ndm - 1; jj++ ) { - hMdDec->spar_md.band_coeffs[i].C_re[ii][jj] = quant[j]; + index[j] = &drct_index_re[j]; + quant[j] = &pState->spar_md.band_coeffs[i].C_re[ii][jj]; j++; } } - ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); + ivas_deindex_real_index( index, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ), 1 ); + + index[0] = &decd_index_re[0]; + quant[0] = &coeff_decd[0]; + ivas_deindex_real_index( index, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, quant, 1, ndm + ndec - 1 ); + + index[0] = &decx_index_re[0]; + quant[0] = &coeff_decx_re[0]; + ivas_deindex_real_index( index, qs.P_c.q_levels[0], qs.P_c.min, qs.P_c.max, quant, 1, ndec * ( ndec - 1 ) >> 2 ); + /* Store prior coefficient indices */ for ( j = 0; j < ndm + ndec - 1; j++ ) { - hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; + pState->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = pred_index_re[j]; } for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) { - hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; + pState->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = drct_index_re[j]; + } + for ( j = 0; j < ndec; j++ ) + { + pState->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = decd_index_re[j]; + } + for ( k = 0; k < ndec; k++ ) + { + pState->spar_md.band_coeffs[i].P_re[k] = 0; } for ( j = 0; j < ndec; j++ ) { - hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; + /* Don't bother adding in the decx parameters */ + pState->spar_md.band_coeffs[i].P_re[j] = coeff_decd[j]; } - hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; + + pState->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } } else { - *dtx_vad = hMdDec->spar_md.dtx_vad; + *dtx_vad = pState->spar_md.dtx_vad; *nB = num_bands; *bands_bw = num_bands / *nB; for ( i = 0; i < *nB; i++ ) { - hMdDec->valid_bands[i] = 1; + pState->valid_bands[i] = 1; } } #ifdef SPAR_HOA_DBG int16_t b; b = 0; - /*if ( 0 ) + /* if (0) { for ( b = 0; b < *nB; b++ ) { - int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; - int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; - fprintf( stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi ); - for ( i = 0; i < ndm + ndec - 1; i++ ) + int16_t ndec = pState->spar_md_cfg.num_decorr_per_band[(*bands_bw) * b]; + int16_t ndm = pState->spar_md_cfg.num_dmx_chans_per_band[(*bands_bw) * b]; + fprintf(stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi); + for (i = 0; i < ndm + ndec - 1; i++) { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, - hMdDec->spar_md.band_coeffs[b].pred_re[i], - hMdDec->spar_md_prev.band_coeffs_idx[b].pred_index_re[i], - hMdDec->spar_md.band_coeffs_idx[b].pred_index_re[i] ); + fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, + pState->spar_md.band_coeffs[b].pred_re[i], + pState->spar_md_prev.band_coeffs_idx[b].pred_index_re[i], + pState->spar_md.band_coeffs_idx[b].pred_index_re[i]); } - fprintf( stdout, "\n\n METADATA C: band %d\n\n", b ); + fprintf(stdout, "\n\n METADATA C: band %d\n\n", b); k = 0; - for ( i = 0; i < ndec; i++ ) + for (i = 0; i < ndec; i++) { - for ( j = 0; j < ( ndm - 1 ); j++ ) + for (j = 0; j < (ndm - 1); j++) { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, - hMdDec->spar_md.band_coeffs[b].C_re[i][j], - hMdDec->spar_md_prev.band_coeffs_idx[b].drct_index_re[k], - hMdDec->spar_md.band_coeffs_idx[b].drct_index_re[k] ); + fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, + pState->spar_md.band_coeffs[b].C_re[i][j], + pState->spar_md_prev.band_coeffs_idx[b].drct_index_re[k], + pState->spar_md.band_coeffs_idx[b].drct_index_re[k]); k++; } } - fprintf( stdout, "\n\n METADATA Pd: band %d\n\n", b ); - for ( i = 0; i < ndec; i++ ) + fprintf(stdout, "\n\n METADATA Pd: band %d\n\n", b); + for (i = 0; i < ndec; i++) { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, - hMdDec->spar_md.band_coeffs[b].P_re[i][i], - hMdDec->spar_md_prev.band_coeffs_idx[b].decd_index_re[i], - hMdDec->spar_md.band_coeffs_idx[b].decd_index_re[i] ); + fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, + pState->spar_md.band_coeffs[b].P_re[i][i], + pState->spar_md_prev.band_coeffs_idx[b].decd_index_re[i], + pState->spar_md.band_coeffs_idx[b].decd_index_re[i]); } - fprintf( stdout, "\n\n" ); - int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; - int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; + fprintf(stdout, "\n\n"); + int16_t ndec = pState->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; + int16_t ndm = pState->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; fprintf( stdout, "\n\n Metadata PR (15x1), C(15x15), P(15x15): band %d\n", b ); for ( i = 0; i < ndm + ndec - 1; i++ ) { - fprintf( stdout, "i: %d -- %.2f\t|\t", i, hMdDec->spar_md.band_coeffs[b].pred_re[i] ); + fprintf( stdout, "i: %d -- %.2f\t|\t", i, pState->spar_md.band_coeffs[b].pred_re[i] ); if ( i < ndec ) { if ( keep_planar[i] == 1 ) @@ -1712,12 +1755,12 @@ static void ivas_spar_dec_parse_md_bs( } for ( j = 0; j < ndm - 1; j++ ) { - fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].C_re[i][j] ); + fprintf( stdout, "%.2f\t", pState->spar_md.band_coeffs[b].C_re[i][j] ); } fprintf( stdout, "|\t" ); for ( j = 0; j < ndec; j++ ) { - fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].P_re[i][j] ); + fprintf( stdout, "%.2f\t", pState->spar_md.band_coeffs[b].P_re[i][j] ); } } fprintf( stdout, "\n" ); @@ -1734,11 +1777,11 @@ static void ivas_spar_dec_parse_md_bs( /*-----------------------------------------------------------------------------------------* * Function ivas_decode_arith_bs() * - * Decode bitstream with arith decoder + * decode bitstream with arith decoder *-----------------------------------------------------------------------------------------*/ static void ivas_decode_arith_bs( - ivas_spar_md_dec_state_t *hMdDec, + ivas_spar_md_dec_state_t *pState, Decoder_State *st0, /* i/o: decoder state structure - for bitstream handling*/ const uint16_t qsi, const int16_t nB, @@ -1758,8 +1801,8 @@ static void ivas_decode_arith_bs( for ( i = 0; i < nB; i++ ) { - ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; - ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; + ndm = pState->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; + ndec = pState->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_cell_dims[i].dim1 = ndm + ndec - 1; pred_cell_dims[i].dim2 = 1; @@ -1782,17 +1825,17 @@ static void ivas_decode_arith_bs( if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, pred_cell_dims, PRED_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( pState->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, pred_cell_dims, PRED_COEFF, planarCP ); } - ivas_arith_decode_cmplx_cell_array( &hMdDec->arith_coeffs.pred_arith_re[qsi], &hMdDec->arith_coeffs.pred_arith_re_diff[qsi], + ivas_arith_decode_cmplx_cell_array( &pState->arith_coeffs.pred_arith_re[qsi], &pState->arith_coeffs.pred_arith_re_diff[qsi], st0, pred_cell_dims, pDo_diff, nB, symbol_arr_re, symbol_arr_old_re ); - ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); + ivas_fill_band_coeffs_idx( pState->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, drct_cell_dims, DRCT_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( pState->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, drct_cell_dims, DRCT_COEFF, planarCP ); } if ( planarCP ) @@ -1803,14 +1846,14 @@ static void ivas_decode_arith_bs( } } - ivas_arith_decode_cmplx_cell_array( &hMdDec->arith_coeffs.drct_arith_re[qsi], &hMdDec->arith_coeffs.drct_arith_re_diff[qsi], + ivas_arith_decode_cmplx_cell_array( &pState->arith_coeffs.drct_arith_re[qsi], &pState->arith_coeffs.drct_arith_re_diff[qsi], st0, drct_cell_dims, pDo_diff, nB, symbol_arr_re, symbol_arr_old_re ); - ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, drct_cell_dims, DRCT_COEFF, planarCP ); + ivas_fill_band_coeffs_idx( pState->spar_md.band_coeffs_idx, nB, symbol_arr_re, drct_cell_dims, DRCT_COEFF, planarCP ); if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decd_cell_dims, DECD_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( pState->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decd_cell_dims, DECD_COEFF, planarCP ); } if ( planarCP ) @@ -1821,27 +1864,27 @@ static void ivas_decode_arith_bs( } } - ivas_arith_decode_cmplx_cell_array( &hMdDec->arith_coeffs.decd_arith_re[qsi], &hMdDec->arith_coeffs.decd_arith_re_diff[qsi], + ivas_arith_decode_cmplx_cell_array( &pState->arith_coeffs.decd_arith_re[qsi], &pState->arith_coeffs.decd_arith_re_diff[qsi], st0, decd_cell_dims, pDo_diff, nB, symbol_arr_re, symbol_arr_old_re ); - ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, decd_cell_dims, DECD_COEFF, planarCP ); + ivas_fill_band_coeffs_idx( pState->spar_md.band_coeffs_idx, nB, symbol_arr_re, decd_cell_dims, DECD_COEFF, planarCP ); if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decx_cell_dims, DECX_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( pState->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decx_cell_dims, DECX_COEFF, planarCP ); } - ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, decx_cell_dims, DECX_COEFF, planarCP ); + ivas_fill_band_coeffs_idx( pState->spar_md.band_coeffs_idx, nB, symbol_arr_re, decx_cell_dims, DECX_COEFF, planarCP ); if ( freq_diff == 1 ) { #ifdef SPAR_HOA_DBG /* NOTE: This is currently unused code, and SPAR_HOA changes have not been made here. */ #endif - ivas_get_band_idx_from_differential( &hMdDec->spar_md, hMdDec->spar_md_cfg.quant_strat->PR.q_levels, 0, nB, PRED_COEFF ); - ivas_get_band_idx_from_differential( &hMdDec->spar_md, hMdDec->spar_md_cfg.quant_strat->C.q_levels, 0, nB, DRCT_COEFF ); - ivas_get_band_idx_from_differential( &hMdDec->spar_md, hMdDec->spar_md_cfg.quant_strat->P_r.q_levels, 1, nB, DECD_COEFF ); - ivas_get_band_idx_from_differential( &hMdDec->spar_md, hMdDec->spar_md_cfg.quant_strat->P_c.q_levels, 0, nB, DECX_COEFF ); + ivas_get_band_idx_from_differential( &pState->spar_md, pState->spar_md_cfg.quant_strat->PR.q_levels, 0, nB, PRED_COEFF ); + ivas_get_band_idx_from_differential( &pState->spar_md, pState->spar_md_cfg.quant_strat->C.q_levels, 0, nB, DRCT_COEFF ); + ivas_get_band_idx_from_differential( &pState->spar_md, pState->spar_md_cfg.quant_strat->P_r.q_levels, 1, nB, DECD_COEFF ); + ivas_get_band_idx_from_differential( &pState->spar_md, pState->spar_md_cfg.quant_strat->P_c.q_levels, 0, nB, DECX_COEFF ); } return; @@ -1853,7 +1896,6 @@ static void ivas_decode_arith_bs( * * *-----------------------------------------------------------------------------------------*/ - #ifdef SPAR_HOA_DBG /* NOTE: No changes here as frequency differential coding is unused. */ #endif @@ -2013,11 +2055,11 @@ static void ivas_fill_band_coeffs_idx( /*-----------------------------------------------------------------------------------------* * Function ivas_decode_huffman_bs() * - * Decode bitstream with huffman decoder + * decode bitstream with huffman decoder *-----------------------------------------------------------------------------------------*/ static void ivas_decode_huffman_bs( - ivas_spar_md_dec_state_t *hMdDec, + ivas_spar_md_dec_state_t *pState, Decoder_State *st0, /* i/o: decoder state structure - for bitstream handling*/ const uint16_t qsi, const int16_t nB, @@ -2031,8 +2073,8 @@ static void ivas_decode_huffman_bs( int16_t ndm, ndec; int16_t pred_dim, drct_dim, decd_dim; - ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; - ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; + ndm = pState->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; + ndec = pState->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_dim = ndec + ndm - 1; drct_dim = ndec * ( ndm - 1 ); @@ -2040,20 +2082,20 @@ static void ivas_decode_huffman_bs( for ( j = 0; j < pred_dim; j++ ) { - ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); + ivas_huffman_decode( &pState->huff_coeffs.pred_huff_re[qsi], st0, + &pState->spar_md.band_coeffs_idx[i].pred_index_re[j] ); } for ( j = 0; j < drct_dim; j++ ) { if ( planarCP && !keep_planar[(int16_t) floor( j / ( ndm - 1 ) )] ) { - hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] = 0; + pState->spar_md.band_coeffs_idx[i].drct_index_re[j] = 0; } else { - ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); + ivas_huffman_decode( &pState->huff_coeffs.drct_huff_re[qsi], st0, + &pState->spar_md.band_coeffs_idx[i].drct_index_re[j] ); } } @@ -2061,12 +2103,12 @@ static void ivas_decode_huffman_bs( { if ( planarCP && !keep_planar[j] ) { - hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] = 0; + pState->spar_md.band_coeffs_idx[i].decd_index_re[j] = 0; } else { - ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); + ivas_huffman_decode( &pState->huff_coeffs.decd_huff_re[qsi], st0, + &pState->spar_md.band_coeffs_idx[i].decd_index_re[j] ); } } } @@ -2078,14 +2120,14 @@ static void ivas_decode_huffman_bs( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_md_fill_invalid_bands() * - * Fill invalid bands in interpolation/extrapolation of valid bands + * fill invalid bands in interpolation/extrapolation of valid bands * when PLC is to be done with partial time differential coding *-----------------------------------------------------------------------------------------*/ static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coeffs, ivas_spar_dec_matrices_t *pSpar_coeffs_prev, - const int16_t *valid_bands, + int16_t *valid_bands, int16_t *base_band_age, const int16_t num_bands, const int16_t sba_order /* i : SBA order */ @@ -2200,43 +2242,44 @@ static void ivas_spar_md_fill_invalid_bands( /*-----------------------------------------------------------------------------------------* - * Function ivas_spar_dec_compute_ramp_down_post_matrix() - * - * - *-----------------------------------------------------------------------------------------*/ +* Function ivas_spar_dec_compute_ramp_down_post_matrix() +* +* ivas_spar_dec_compute_ramp_down_post_matrix + +*-----------------------------------------------------------------------------------------*/ static void ivas_spar_dec_compute_ramp_down_post_matrix( - ivas_spar_md_dec_state_t *hMdDec, + ivas_spar_md_dec_state_t *pState, const int16_t num_bands_out, const int16_t bfi ) { int16_t num_in_ch, num_out_ch, i, j, b; - num_in_ch = hMdDec->spar_md_cfg.num_umx_chs; - num_out_ch = hMdDec->spar_md_cfg.num_umx_chs; + num_in_ch = pState->spar_md_cfg.num_umx_chs; + num_out_ch = pState->spar_md_cfg.num_umx_chs; if ( bfi == 0 ) { - hMdDec->spar_plc_num_lost_frames = 0; + pState->spar_plc_num_lost_frames = 0; } else { - if ( hMdDec->td_decorr_flag == 0 ) + if ( pState->td_decorr_flag == 0 ) { assert( 0 ); } - hMdDec->spar_plc_num_lost_frames += 1; - hMdDec->spar_plc_num_lost_frames = min( hMdDec->spar_plc_num_lost_frames, 100 ); + pState->spar_plc_num_lost_frames += 1; + pState->spar_plc_num_lost_frames = min( pState->spar_plc_num_lost_frames, 100 ); - if ( hMdDec->spar_plc_num_lost_frames > ivas_spar_dec_plc_num_frames_keep ) + if ( pState->spar_plc_num_lost_frames > ivas_spar_dec_plc_num_frames_keep ) { int16_t num_fade_frames; int16_t gain_dB; float gain; float post_matrix[IVAS_SPAR_MAX_CH]; - num_fade_frames = max( hMdDec->spar_plc_num_lost_frames - ivas_spar_dec_plc_num_frames_keep, 0 ); + num_fade_frames = max( pState->spar_plc_num_lost_frames - ivas_spar_dec_plc_num_frames_keep, 0 ); gain_dB = -min( num_fade_frames, ivas_spar_dec_plc_max_num_frames_ramp_down ) * ivas_spar_dec_plc_per_frame_ramp_down_gain_dB; gain = powf( 10, ( ( (float) gain_dB ) / 20 ) ); @@ -2255,7 +2298,7 @@ static void ivas_spar_dec_compute_ramp_down_post_matrix( { for ( b = 0; b < num_bands_out; b++ ) { - hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] *= post_matrix[i]; + pState->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] *= post_matrix[i]; } } } @@ -2270,7 +2313,7 @@ static void ivas_spar_dec_compute_ramp_down_post_matrix( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_unquant_dtx_indicies() * - * Unquantize SPAR MD DYX indices + * Unquantize spar md DYX indices *-----------------------------------------------------------------------------------------*/ #ifdef SPAR_HOA_DBG @@ -2284,28 +2327,35 @@ static void ivas_spar_unquant_dtx_indicies( { int16_t i, b; int16_t q_lvl; - float val; - int16_t idx; + float **ppVal, *pVal, val; + int16_t **ppIdx, *pIdx, idx; float pr_min_max[2]; pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; + + ppVal = (float **) &pVal; + ppIdx = (int16_t **) &pIdx; + + ppVal[0] = (float *) &val; + ppIdx[0] = (int16_t *) &idx; + for ( b = 0; b < nB; b++ ) { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) { q_lvl = dtx_pr_real_q_levels[ndm_per_band[bw * b] - 1][i]; - idx = pSpar_md->band_coeffs_idx[b].pred_index_re[i]; - ivas_deindex_real_index( &idx, q_lvl, pr_min_max[0], pr_min_max[1], &val, 1 ); - pSpar_md->band_coeffs[b].pred_re[i] = val; + ppIdx[0][0] = pSpar_md->band_coeffs_idx[b].pred_index_re[i]; + ivas_deindex_real_index( ppIdx, q_lvl, pr_min_max[0], pr_min_max[1], ppVal, 1, 1 ); + pSpar_md->band_coeffs[b].pred_re[i] = ppVal[0][0]; } for ( i = 0; i < FOA_CHANNELS - ndm_per_band[bw * b]; i++ ) { q_lvl = dtx_pd_real_q_levels[ndm_per_band[bw * b] - 1][i]; - idx = pSpar_md->band_coeffs_idx[b].decd_index_re[i]; - ivas_deindex_real_index( &idx, q_lvl, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &val, 1 ); - pSpar_md->band_coeffs[b].P_re[i] = val; + ppIdx[0][0] = pSpar_md->band_coeffs_idx[b].decd_index_re[i]; + ivas_deindex_real_index( ppIdx, q_lvl, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppVal, 1, 1 ); + pSpar_md->band_coeffs[b].P_re[i] = ppVal[0][0]; } } @@ -2328,13 +2378,19 @@ static void ivas_parse_parameter_bitstream_dtx( int16_t *num_dec_per_band ) { int16_t i, j; - float val; - int16_t idx; + float **ppVal, *pVal, val; + int16_t **ppIdx, *pIdx, idx; float pr_min_max[2]; int16_t pr_q_lvls, pr, pd, pd_q_lvls, pr_pd_bits; int16_t pr_q_lvls1, pr_q_lvls2, pr_idx1, pr_idx2, pr_pr_bits; int16_t zero_pad_bits, sid_bits_len; sid_bits_len = st0->next_bit_pos; + ppVal = (float **) &pVal; + ppIdx = (int16_t **) &pIdx; + + ppVal[0] = (float *) &val; + ppIdx[0] = (int16_t *) &idx; + pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; @@ -2374,13 +2430,16 @@ static void ivas_parse_parameter_bitstream_dtx( pr = (int16_t) floor( value / pd_q_lvls ); pd = value - pr * pd_q_lvls; - val = dtx_pd_real_min_max[0]; - ivas_quantise_real_values( &val, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &idx, &val, 1 ); - pd = pd + idx; - val = pr_min_max[0]; - ivas_quantise_real_values( &val, pr_q_lvls, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); - pr = pr + idx; + ppVal[0][0] = dtx_pd_real_min_max[0]; + ivas_quantise_real_values( ppVal, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppVal, 1, 1 ); + + pd = pd + ppIdx[0][0]; + + ppVal[0][0] = pr_min_max[0]; + ivas_quantise_real_values( ppVal, pr_q_lvls, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); + + pr = pr + ppIdx[0][0]; if ( ( j + 1 ) <= ndec ) { @@ -2400,15 +2459,17 @@ static void ivas_parse_parameter_bitstream_dtx( pr_idx2 = (int16_t) floor( value / pr_q_lvls1 ); pr_idx1 = value - pr_idx2 * pr_q_lvls1; - val = pr_min_max[0]; - ivas_quantise_real_values( &val, pr_q_lvls1, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); - pr_idx1 += idx; + ppVal[0][0] = pr_min_max[0]; + ivas_quantise_real_values( ppVal, pr_q_lvls1, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); + + pr_idx1 += ppIdx[0][0]; - val = pr_min_max[0]; - ivas_quantise_real_values( &val, pr_q_lvls2, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + ppVal[0][0] = pr_min_max[0]; + ivas_quantise_real_values( ppVal, pr_q_lvls2, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); + + pr_idx2 += ppIdx[0][0]; - pr_idx2 += idx; pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_1 - 1] = pr_idx1; pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1] = pr_idx2; } @@ -2433,18 +2494,19 @@ static void ivas_parse_parameter_bitstream_dtx( /*-----------------------------------------------------------------------------------------* * Function ivas_deindex_real_index() * - * Deindex real index + * deindex real index *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_deindex_real_index( - const int16_t *index, + int16_t **index, const int16_t q_levels, const float min_value, const float max_value, - float *quant, - const int16_t dim ) + float **quant, + const int16_t num_ch, + const int16_t dim2 ) { - int16_t i; + int16_t i, j; float q_step; if ( q_levels == 0 ) @@ -2454,17 +2516,24 @@ static ivas_error ivas_deindex_real_index( if ( q_levels == 1 ) { - for ( i = 0; i < dim; i++ ) + for ( i = 0; i < num_ch; i++ ) { - quant[i] = 0; + for ( j = 0; j < dim2; j++ ) + { + quant[i][j] = 0; + } } } else { q_step = ( max_value - min_value ) / ( q_levels - 1 ); - for ( i = 0; i < dim; i++ ) + + for ( i = 0; i < num_ch; i++ ) { - quant[i] = index[i] * q_step; + for ( j = 0; j < dim2; j++ ) + { + quant[i][j] = index[i][j] * q_step; + } } } @@ -2508,8 +2577,11 @@ void ivas_spar_to_dirac( int16_t pred_idx; int16_t *dirac_to_spar_md_bands; int16_t enc_param_start_band; - +#ifndef SBA_ORDER_BITSTREAM + sba_order_internal = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); +#else sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif start_band = 0; end_band = min( num_bands_out, SPAR_DIRAC_SPLIT_START_BAND ); diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 020f0df5eb..29ae9867ca 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -254,7 +254,7 @@ typedef struct stereo_dec_cng int16_t xfade_length; /* number of frames to perform xfade */ int16_t nr_dft_frames; /* dft frame counter */ int16_t nr_corr_frames; /* correlation frame counter */ - int16_t nr_sid_frames; /* SID frame counter */ + int16_t nr_sid_frames; /* sid frame counter */ int16_t last_act_element_mode; /* Element mode of last active frame */ float olapBufferSynth22[FFTLEN]; /* overlap buffer for secondary channel CNA */ int16_t flag_cna_fade; /* flag enabling CNA fade out */ @@ -321,7 +321,7 @@ typedef struct stereo_mdct_dec_data_structure int16_t prev_ms_mask[NB_DIV][MAX_SFB]; float lastCoh; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT int16_t noise_seeds_channels[CPE_CHANNELS]; int16_t noise_seed_common; #endif @@ -1630,36 +1630,19 @@ typedef struct ivas_binaural_td_rendering_struct typedef struct ivas_hrtfs_structure { -#ifdef FIX_CREND_CHANNELS - float *pOut_to_bin_re[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; - float *pOut_to_bin_im[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; -#else float *pOut_to_bin_re[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; float *pOut_to_bin_im[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; -#endif float *pOut_to_bin_diffuse_re[BINAURAL_CHANNELS]; float *pOut_to_bin_diffuse_im[BINAURAL_CHANNELS]; float latency_s; -#ifdef FIX_CREND_CHANNELS - uint16_t num_iterations[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; -#else uint16_t num_iterations[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; -#endif uint16_t num_iterations_diffuse[BINAURAL_CHANNELS]; -#ifdef FIX_CREND_CHANNELS - uint16_t *pIndex_frequency_max[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; -#else uint16_t *pIndex_frequency_max[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; -#endif uint16_t *pIndex_frequency_max_diffuse[BINAURAL_CHANNELS]; uint16_t index_frequency_max_diffuse; int16_t max_num_ir; int16_t max_num_iterations; -#ifdef FIX_CREND_CHANNELS - float inv_diffuse_weight[MAX_TRANSPORT_CHANNELS]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ -#else float inv_diffuse_weight[IVAS_MAX_NUM_CH]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ -#endif float gain_lfe; } HRTFS_DATA, *HRTFS_HANDLE; @@ -1800,13 +1783,8 @@ typedef struct ivas_orient_trk_state_t /* Crend structures */ typedef struct ivas_crend_state_t { -#ifdef FIX_CREND_CHANNELS - float *freq_buffer_re[MAX_TRANSPORT_CHANNELS]; - float *freq_buffer_im[MAX_TRANSPORT_CHANNELS]; -#else float *freq_buffer_re[IVAS_MAX_NUM_CH]; float *freq_buffer_im[IVAS_MAX_NUM_CH]; -#endif float *freq_buffer_re_diffuse; float *freq_buffer_im_diffuse; float *prev_out_buffer[BINAURAL_CHANNELS]; @@ -1876,10 +1854,13 @@ typedef struct decoder_config_structure int32_t output_Fs; /* output signal sampling frequency in Hz */ int16_t nchan_out; /* number of output audio channels */ AUDIO_CONFIG output_config; /* output audio configuration */ - int16_t Opt_LsCustom; /* indicates whether loudspeaker custom setup is used */ - int16_t Opt_HRTF_binary; /* indicates whether HRTF binary file is used */ - int16_t Opt_Headrotation; /* indicates whether head-rotation is used */ - int16_t orientation_tracking; /* indicates orientation tracking type */ +#ifdef SBA_ORDER_BITSTREAM + int16_t sba_order; +#endif + int16_t Opt_LsCustom; /* indicates whether loudspeaker custom setup is used */ + int16_t Opt_HRTF_binary; /* indicates whether HRTF binary file is used */ + int16_t Opt_Headrotation; /* indicates whether head-rotation is used */ + int16_t orientation_tracking; /* indicates orientation tracking type */ float no_diegetic_pan; int16_t Opt_AMR_WB; /* flag indicating AMR-WB IO mode */ @@ -1948,10 +1929,12 @@ typedef struct Decoder_Struct ISM_MODE ism_mode; /* ISM format mode */ SBA_MODE sba_mode; /* SBA format mode */ MC_MODE mc_mode; /* MC format mode */ +#ifdef SBA_ORDER_BITSTREAM + int16_t sba_analysis_order; /* Ambisonic (SBA) order */ +#else int16_t sba_order; /* Ambisonic (SBA) order */ #endif int16_t sba_planar; /* Ambisonic (SBA) planar flag */ - int16_t sba_analysis_order; /* Ambisonic (SBA) order used for analysis and coding */ int16_t sba_dirac_stereo_flag; /* flag indicating stereo output for SBA DirAC modes with 1 TC */ /* rendering modules */ diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index 491a88da3f..05e9222ddb 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -90,12 +90,7 @@ void stereo_dft_dec_sid_coh( int16_t bits_tmp; int16_t b; -#ifdef ALIGN_SID_SIZE - /* TODO: still use old number of bits to keep bitexactness in output */ - nr_of_sid_stereo_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif /* If the coherence is not encoded due to lack of bits set alpha to zero which leads to that the coherence */ /* from the previous frame is used. */ @@ -178,9 +173,6 @@ void stereo_dft_dec_sid_coh( ( *nb_bits )++; } -#ifdef ALIGN_SID_SIZE - dtx_read_padding_bits( st, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); -#endif return; } @@ -661,17 +653,9 @@ void stereo_dtf_cng( hCPE->hStereoCng->nr_dft_frames++; } -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate <= IVAS_SID_5k2 ) -#else if ( ivas_total_brate <= IVAS_SID_4k4 ) -#endif { -#ifdef ALIGN_SID_SIZE - if ( hCPE->hStereoCng->nr_sid_frames < SID_INIT && ivas_total_brate == IVAS_SID_5k2 ) -#else if ( hCPE->hStereoCng->nr_sid_frames < SID_INIT && ivas_total_brate == IVAS_SID_4k4 ) -#endif { hCPE->hStereoCng->nr_sid_frames++; } @@ -723,11 +707,7 @@ void stereo_cng_dec_update( if ( hCPE->element_mode == IVAS_CPE_DFT ) { -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) -#else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == FRAME_NO_DATA ) -#endif { hCPE->hStereoCng->prev_sid_nodata = 1; } diff --git a/lib_dec/ivas_stereo_dft_dec.c b/lib_dec/ivas_stereo_dft_dec.c index b0db814511..074efaa1a2 100644 --- a/lib_dec/ivas_stereo_dft_dec.c +++ b/lib_dec/ivas_stereo_dft_dec.c @@ -1746,11 +1746,7 @@ void stereo_dft_dec_read_BS( * Initialization *-----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate == IVAS_SID_5k2 ) -#else if ( ivas_total_brate == IVAS_SID_4k4 ) -#endif { if ( ivas_format == MASA_FORMAT ) { @@ -1764,11 +1760,7 @@ void stereo_dft_dec_read_BS( hStereoDft->frame_nodata = 0; hStereoDft->frame_sid_nodata = 1; hStereoDft->frame_sid = 1; -#ifdef ALIGN_SID_SIZE - *nb_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else *nb_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } } else if ( ivas_total_brate == FRAME_NO_DATA ) @@ -1811,11 +1803,7 @@ void stereo_dft_dec_read_BS( k_offset = STEREO_DFT_OFFSET; N_div = STEREO_DFT_NBDIV; -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate > IVAS_SID_5k2 ) -#else if ( ivas_total_brate > IVAS_SID_4k4 ) -#endif { mvr2r( hStereoDft->side_gain + 2 * STEREO_DFT_BAND_MAX, sg_tmp, STEREO_DFT_BAND_MAX ); mvr2r( hStereoDft->res_pred_gain + 2 * STEREO_DFT_BAND_MAX, res_pred_gain_tmp, STEREO_DFT_BAND_MAX ); @@ -1905,11 +1893,7 @@ void stereo_dft_dec_read_BS( fprintf( pF, "ITD: %d ", hStereoDft->hConfig->itd_mode ); #endif -#ifdef ALIGN_SID_SIZE - if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) -#else if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) -#endif { /*------------------------------------------------------------------* * read Side gains @@ -1990,11 +1974,7 @@ void stereo_dft_dec_read_BS( #endif } } -#ifdef ALIGN_SID_SIZE - else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 - SID_FORMAT_NBITS ) ) -#else else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 - SID_FORMAT_NBITS ) ) -#endif { itd_mode = get_next_indice( st, STEREO_DFT_ITD_MODE_NBITS ); ( *nb_bits ) += STEREO_DFT_ITD_MODE_NBITS; /*ITD mode flag: 1bit*/ @@ -2036,11 +2016,7 @@ void stereo_dft_dec_read_BS( stereo_dft_dequantize_ipd( &ind1_ipd[0], hStereoDft->gipd + ( k + k_offset ), 1, STEREO_DFT_GIPD_NBITS ); } } -#ifdef ALIGN_SID_SIZE - else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS - SID_FORMAT_NBITS ) ) -#else else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS - SID_FORMAT_NBITS ) ) -#endif { /* SID frame, only read IPD only if enough bits left in bitstream */ hStereoDft->no_ipd_flag = st->bit_stream[nb]; @@ -2201,11 +2177,7 @@ void stereo_dft_dec_read_BS( #endif } -#ifdef ALIGN_SID_SIZE - if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) -#else if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) -#endif { if ( hStereoDft->side_gain_flag_1 != 2 ) { @@ -2213,11 +2185,7 @@ void stereo_dft_dec_read_BS( } } -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate > IVAS_SID_5k2 ) -#else if ( ivas_total_brate > IVAS_SID_4k4 ) -#endif { hStereoDft->recovery_flg = stereo_dft_sg_recovery( hStereoDft ); @@ -2284,20 +2252,12 @@ void stereo_dft_dec_read_BS( #endif } -#ifdef ALIGN_SID_SIZE - if ( hStereoDft->frame_sid && !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) -#else if ( hStereoDft->frame_sid && !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) -#endif { stereo_dft_dec_sid_coh( st, hStereoDft->nbands, coh, nb_bits ); } -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate == IVAS_SID_5k2 && ivas_format != MASA_FORMAT ) -#else if ( ivas_total_brate == IVAS_SID_4k4 && ivas_format != MASA_FORMAT ) -#endif { *nb_bits = (int16_t) ( ( element_brate - SID_2k40 ) / FRAMES_PER_SEC ); /* => hCPE->hCoreCoder[0]->total_brate = SID_2k40; */ } diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index 5e850204a5..3d4c38f272 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -50,7 +50,7 @@ *-------------------------------------------------------------------------*/ static void apply_dmx_weights( CPE_DEC_HANDLE hCPE, float *x[CPE_CHANNELS][NB_DIV], int16_t transform_type_left[NB_DIV], int16_t transform_type_right[NB_DIV] ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT static void run_min_stats( Decoder_State **sts, float *x[CPE_CHANNELS][NB_DIV] ); #endif @@ -218,7 +218,6 @@ void stereo_mdct_core_dec( initMdctStereoDecData( hCPE->hStereoMdct, sts[0]->igf, sts[0]->hIGFDec->igfData.igfInfo.grid, hCPE->element_brate, sts[0]->bwidth ); hCPE->hStereoMdct->isSBAStereoMode = ( ( st_ivas->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); -#ifndef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /*to prevent unitialized values during condition checks for stereo IGF*/ if ( hCPE->hStereoMdct->isSBAStereoMode ) { @@ -300,11 +299,7 @@ void stereo_mdct_core_dec( assert( ( sts[0]->core == sts[1]->core ) || ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); /* stereo IGF decoding */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi, 0 /* <- is_mct */ ); -#else decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi ); -#endif } else { @@ -334,14 +329,34 @@ void stereo_mdct_core_dec( sns_interpolate_scalefactors( &sns_int_scf[0], &Aq[ch][k * M], DEC ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) #else if ( st->hTonalMDCTConc != NULL ) #endif { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], get_igf_startline( st, L_frame[ch], L_frameTCX[ch] ) ); +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT + int16_t infoIGFStartLine; + + if ( st->igf == 0 ) + { + if ( st->narrowBand == 0 ) + { + /* minimum needed for output with sampling rates lower then the + nominal sampling rate */ + infoIGFStartLine = min( L_frameTCX[ch], L_frame[ch] ); + } + else + { + infoIGFStartLine = L_frameTCX[ch]; + } + } + else + { + infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX[ch] ); + } + + TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], infoIGFStartLine ); #else TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0] ); #endif @@ -366,12 +381,13 @@ void stereo_mdct_core_dec( ivas_mdct_core_tns_ns( hCPE, 0, fUseTns, tnsData, x, Aq, 0 ); - if ( st_ivas->renderer_type == RENDERER_MC_PARAMMC && ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_MONO || st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ) ) + if ( + st_ivas->renderer_type == RENDERER_MC_PARAMMC && ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_MONO || st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ) ) { ivas_ls_setup_conversion_process_mdct_param_mc( st_ivas, x ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT run_min_stats( sts, x ); #endif @@ -592,7 +608,7 @@ static void apply_dmx_weights( return; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT /*-------------------------------------------------------------------* * run_min_stats() * diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 10b9688be2..f797eaf289 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -57,7 +57,7 @@ void parse_stereo_from_bitstream( STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct, /* i/o: MDCT stereo decoder structure */ Decoder_State **sts, /* i/o: decoder state structure */ const int16_t mct_on, /* i : flag mct block (1) or stereo (0)*/ - const int16_t isSBAStereoMode, /* i : flag core coding for SBA */ + const int16_t isSBAStereoMode, /* i : flag core coding for sba */ Decoder_State *st0, /* i/o: decoder state structure for Bstr*/ int16_t ms_mask[NB_DIV][MAX_SFB] /* o : bandwise MS mask */ ) @@ -559,21 +559,13 @@ void updateBuffersForDmxMdctStereo( sts[1] = hCPE->hCoreCoder[1]; /* synch buffers for inactive frames, but not for transition frames */ -#ifdef ALIGN_SID_SIZE - if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) -#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) -#endif { mvr2r( output[0], output[1], output_frame ); mvr2r( synth[0], synth[1], output_frame ); } -#ifdef ALIGN_SID_SIZE - if ( hCPE->element_brate == IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) -#else if ( hCPE->element_brate == IVAS_SID_4k4 && hCPE->last_element_brate > IVAS_SID_4k4 ) -#endif { /* in the first SID frame after an active frame, create mid noise shape here, in SID frames that follow inactive frames, it is done directly in the SID decoding since the mid shape is being used in CNG then */ for ( int16_t p = 0; p < sts[0]->hFdCngDec->hFdCngCom->npart; p++ ) @@ -583,11 +575,7 @@ void updateBuffersForDmxMdctStereo( } /* for transition of active->inactive frame, apply passive downmix on buffers */ -#ifdef ALIGN_SID_SIZE - if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) -#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) -#endif { delta = 1; if ( output_frame == L_FRAME16k ) @@ -653,21 +641,13 @@ void applyDmxMdctStereo( fade = 1.f; dmx_len = output_frame; -#ifdef ALIGN_SID_SIZE - if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) -#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) -#endif { crossfade_len = NS2SA( hCPE->hCoreCoder[0]->output_Fs, IVAS_DEC_DELAY_NS - DELAY_CLDFB_NS ); step /= crossfade_len; } /* for first inactive CNG frame after active decoding we have to do a fade-OUT FROM the passive DMX */ -#ifdef ALIGN_SID_SIZE - else if ( hCPE->element_brate <= IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) -#else else if ( hCPE->element_brate <= IVAS_SID_4k4 && hCPE->last_element_brate > IVAS_SID_4k4 ) -#endif { crossfade_len = output_frame / 4; step /= -crossfade_len; diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c old mode 100644 new mode 100755 index 2e32b8e85a..b2b7889569 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -424,7 +424,7 @@ ivas_error stereo_memory_dec( if ( hCPE->last_element_mode == IVAS_CPE_MDCT ) { cpy_tcx_ltp_data( hCPE->hCoreCoder[1]->hTcxLtpDec, hCPE->hStereoDft->hTcxLtpDec, output_Fs ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT deleteFdCngDec( &hCPE->hCoreCoder[1]->hFdCngDec ); #endif } @@ -489,7 +489,7 @@ ivas_error stereo_memory_dec( /* deallocated TCX/IGF structures for second channel */ deallocate_CoreCoder_TCX( hCPE->hCoreCoder[1] ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( hCPE->last_element_mode == IVAS_CPE_MDCT ) { deleteFdCngDec( &hCPE->hCoreCoder[1]->hFdCngDec ); @@ -675,7 +675,7 @@ ivas_error stereo_memory_dec( /* deallocate core-decoder substructures */ deallocate_CoreCoder( st ); -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT /* deallocate FD_CNG substructure */ deleteFdCngDec( &st->hFdCngDec ); #endif @@ -702,7 +702,7 @@ ivas_error stereo_memory_dec( } } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT /* allocate Fd-Cng structure for second channel */ if ( ( error = createFdCngDec( &st->hFdCngDec ) ) != IVAS_ERR_OK ) { @@ -832,11 +832,7 @@ ivas_error stereo_memory_dec( if ( ivas_format == STEREO_FORMAT && hCPE->element_mode == IVAS_CPE_MDCT ) { -#ifdef ALIGN_SID_SIZE - if ( hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_total_brate > IVAS_SID_5k2 ) -#else if ( hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_total_brate > IVAS_SID_4k4 ) -#endif { if ( hCPE->hStereoMdct->use_itd == 0 ) { @@ -856,21 +852,13 @@ ivas_error stereo_memory_dec( else { /* de-allocate TCA data structure */ -#ifdef ALIGN_SID_SIZE - if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate > IVAS_SID_5k2 && hCPE->hStereoTCA != NULL ) -#else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate > IVAS_SID_4k4 && hCPE->hStereoTCA != NULL ) -#endif { count_free( hCPE->hStereoTCA ); hCPE->hStereoTCA = NULL; hCPE->hStereoMdct->use_itd = 0; } -#ifdef ALIGN_SID_SIZE - else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate <= IVAS_SID_5k2 ) -#else else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate <= IVAS_SID_4k4 ) -#endif { hCPE->hStereoMdct->itd = 0.0f; } @@ -1023,11 +1011,7 @@ void synchro_synthesis( if ( use_cldfb_for_last_dft ) { -#ifdef ALIGN_SID_SIZE - if ( hCPE->element_mode == IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_TD && ( ivas_total_brate > IVAS_SID_5k2 || hCPE->nchan_out == 2 ) ) -#else if ( hCPE->element_mode == IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_TD && ( ivas_total_brate > IVAS_SID_4k4 || hCPE->nchan_out == 2 ) ) -#endif { stereo_tca_scale_R_channel( hCPE, output[0], output_frame ); } @@ -1365,11 +1349,7 @@ void stereo_switching_dec( mvr2r( hCPE->input_mem[n], hCPE->output_mem[n], dft32ms_ovl ); } -#ifdef ALIGN_SID_SIZE - if ( ivas_total_brate > IVAS_SID_5k2 || n == 0 || hCPE->last_element_mode != IVAS_CPE_TD || hCPE->nchan_out == 1 ) -#else if ( ivas_total_brate > IVAS_SID_4k4 || n == 0 || hCPE->last_element_mode != IVAS_CPE_TD || hCPE->nchan_out == 1 ) -#endif { for ( i = 0; i < dft32ms_ovl; i++ ) { @@ -1443,11 +1423,7 @@ void stereo_switching_dec( /* no secondary channel in the previous frame -> memory resets */ if ( hCPE->element_mode > IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_DFT ) { -#ifdef ALIGN_SID_SIZE - if ( hCPE->last_element_brate <= IVAS_SID_5k2 && hCPE->nchan_out == 2 ) -#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 && hCPE->nchan_out == 2 ) -#endif { /* reset CLDFB memories */ cldfb_reset_memory( sts[0]->cldfbAna ); diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index e46c32ddbb..e3462f21bc 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -150,7 +150,7 @@ void stereo_tcx_init_dec( } /* Reconfigure Core */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct, last_element_mode ); #else mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct ); @@ -457,7 +457,7 @@ void stereo_tcx_core_dec( } /* PLC: [TCX: TD PLC] */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); #else con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); @@ -589,7 +589,7 @@ void stereo_tcx_core_dec( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, hTcxDec->L_frameTCX ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT decoder_tcx_post( st, synth, synthFB, Aq, bfi, 0 ); #else decoder_tcx_post( st, synth, synthFB, Aq, bfi ); @@ -750,7 +750,7 @@ void stereo_tcx_core_dec( if ( st->element_mode != IVAS_CPE_TD ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ApplyFdCng( signal_out, NULL, NULL, NULL, st, st->bfi, 0 ); #else ApplyFdCng( signal_out, NULL, NULL, st, st->bfi, 0 ); @@ -779,7 +779,7 @@ void stereo_tcx_core_dec( if ( st->element_mode == IVAS_CPE_TD && st->idchan == 0 ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT ApplyFdCng( signal_out, NULL, NULL, NULL, st, st->bfi, 0 ); #else ApplyFdCng( signal_out, NULL, NULL, st, st->bfi, 0 ); @@ -867,7 +867,7 @@ static void dec_prm_tcx( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT getTCXMode( st, st, 0 /* <- MCT_flag */ ); #else getTCXMode( st, st ); diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c old mode 100644 new mode 100755 index fa2bb2b763..c12a356146 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -110,17 +110,12 @@ ivas_error IVAS_DEC_Open( float no_diegetic_pan ) { IVAS_DEC_HANDLE hIvasDec; - Decoder_Struct *st_ivas; if ( phIvasDec == NULL ) { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - /*-----------------------------------------------------------------* - * Allocate and initialize IVAS application decoder handle - *-----------------------------------------------------------------*/ - if ( ( *phIvasDec = (IVAS_DEC_HANDLE) count_malloc( sizeof( struct IVAS_DEC ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS decoder handle" ); @@ -133,16 +128,6 @@ ivas_error IVAS_DEC_Open( hIvasDec->mode = mode; - hIvasDec->bitstreamformat = G192; - hIvasDec->Opt_VOIP = 0; - hIvasDec->amrwb_rfc4867_flag = -1; - hIvasDec->prev_ft_speech = 1; /* RXDTX handler previous frametype flag for G.192 format AMRWB SID_FIRST detection */ - hIvasDec->CNG = 0; /* RXDTX handler CNG = 1, no CNG = 0*/ - - /*-----------------------------------------------------------------* - * Initialize IVAS-codec decoder state - *-----------------------------------------------------------------*/ - if ( ( hIvasDec->st_ivas = (Decoder_Struct *) count_malloc( sizeof( Decoder_Struct ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS decoder structure" ); @@ -153,49 +138,50 @@ ivas_error IVAS_DEC_Open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for Decoder config structure" ); } - /*-----------------------------------------------------------------* - * Initialize IVAS-codec decoder state - *-----------------------------------------------------------------*/ - - st_ivas = hIvasDec->st_ivas; - - /* initialize Decoder Config. handle */ init_decoder_config( hIvasDec->st_ivas->hDecoderConfig, orientation_tracking, no_diegetic_pan ); - /* initialize pointers to handles to NULL */ - ivas_initialize_handles_dec( st_ivas ); + hIvasDec->bitstreamformat = G192; + hIvasDec->Opt_VOIP = 0; + hIvasDec->amrwb_rfc4867_flag = -1; + hIvasDec->prev_ft_speech = 1; /* RXDTX handeler previous frametype flag for G.192 format AMRWB SID_FIRST detection */ + hIvasDec->CNG = 0; /* RXDTX handler CNG = 1, no CNG = 0*/ - /* set high-level parameters */ if ( mode == IVAS_DEC_MODE_EVS ) { - st_ivas->codec_mode = 0; /* unknown before first frame */ - st_ivas->element_mode_init = EVS_MONO; - st_ivas->ivas_format = MONO_FORMAT; - st_ivas->transport_config = AUDIO_CONFIG_INVALID; - st_ivas->intern_config = AUDIO_CONFIG_INVALID; - st_ivas->writeFECoffset = 0; + /* EVS - do alloc etc. */ + hIvasDec->st_ivas->codec_mode = 0; /* unknown before first frame */ + hIvasDec->st_ivas->element_mode_init = EVS_MONO; + hIvasDec->st_ivas->ivas_format = MONO_FORMAT; + hIvasDec->st_ivas->transport_config = AUDIO_CONFIG_INVALID; + hIvasDec->st_ivas->intern_config = AUDIO_CONFIG_INVALID; + hIvasDec->st_ivas->writeFECoffset = 0; return IVAS_ERR_OK; } else if ( mode == IVAS_DEC_MODE_IVAS ) { - st_ivas->codec_mode = 0; /* unknown before first frame */ - st_ivas->element_mode_init = -1; - st_ivas->ivas_format = UNDEFINED_FORMAT; - st_ivas->transport_config = AUDIO_CONFIG_INVALID; - st_ivas->intern_config = AUDIO_CONFIG_INVALID; - st_ivas->renderer_type = RENDERER_DISABLE; - st_ivas->ini_frame = 0; - st_ivas->ini_active_frame = 0; - st_ivas->writeFECoffset = 0; + hIvasDec->st_ivas->codec_mode = 0; /* unknown before first frame */ + hIvasDec->st_ivas->element_mode_init = -1; + hIvasDec->st_ivas->ivas_format = UNDEFINED_FORMAT; + hIvasDec->st_ivas->transport_config = AUDIO_CONFIG_INVALID; + hIvasDec->st_ivas->intern_config = AUDIO_CONFIG_INVALID; + hIvasDec->st_ivas->renderer_type = RENDERER_DISABLE; + hIvasDec->st_ivas->ini_frame = 0; + hIvasDec->st_ivas->ini_active_frame = 0; + hIvasDec->st_ivas->writeFECoffset = 0; +#ifndef SBA_ORDER_BITSTREAM + hIvasDec->st_ivas->sba_order = 0; +#else + hIvasDec->st_ivas->sba_analysis_order = 0; +#endif + hIvasDec->st_ivas->sba_planar = 0; - st_ivas->ism_mode = ISM_MODE_NONE; - st_ivas->sba_mode = SBA_MODE_NONE; - st_ivas->mc_mode = MC_MODE_NONE; + /*initialize pointers*/ + ivas_initialize_handles_dec( hIvasDec->st_ivas ); - st_ivas->sba_order = 0; - st_ivas->sba_planar = 0; - st_ivas->sba_analysis_order = 0; + hIvasDec->st_ivas->ism_mode = ISM_MODE_NONE; + hIvasDec->st_ivas->sba_mode = SBA_MODE_NONE; + hIvasDec->st_ivas->mc_mode = MC_MODE_NONE; return IVAS_ERR_OK; } @@ -250,14 +236,38 @@ void IVAS_DEC_Close( if ( ( *phIvasDec )->hVoIP ) { IVAS_DEC_Close_VoIP( ( *phIvasDec )->hVoIP ); - ( *phIvasDec )->hVoIP = NULL; + count_free( ( *phIvasDec )->hVoIP ); } - if ( ( *phIvasDec )->st_ivas ) + if ( ( *phIvasDec )->isInitialized ) { - ivas_destroy_dec( ( *phIvasDec )->st_ivas ); - ( *phIvasDec )->st_ivas = NULL; + if ( ( *phIvasDec )->st_ivas ) + { + ivas_destroy_dec( ( *phIvasDec )->st_ivas ); + } } + else + { + if ( ( *phIvasDec )->st_ivas->hDecoderConfig != NULL ) + { + count_free( ( *phIvasDec )->st_ivas->hDecoderConfig ); + ( *phIvasDec )->st_ivas->hDecoderConfig = NULL; + } + + if ( ( *phIvasDec )->st_ivas->hHeadTrackData != NULL ) + { + count_free( ( *phIvasDec )->st_ivas->hHeadTrackData ); + ( *phIvasDec )->st_ivas->hHeadTrackData = NULL; + } + + ivas_render_config_close( &( ( *phIvasDec )->st_ivas->hRenderConfig ) ); + + ivas_HRTF_binary_close( &( *phIvasDec )->st_ivas->hHrtfTD ); + + count_free( ( *phIvasDec )->st_ivas ); + } + + ( *phIvasDec )->st_ivas = NULL; count_free( *phIvasDec ); *phIvasDec = NULL; @@ -1131,11 +1141,7 @@ static bool isSidFrame( { return true; /* EVS SID */ } -#ifdef ALIGN_SID_SIZE - else if ( size == IVAS_SID_5k2 / FRAMES_PER_SEC ) -#else else if ( size == IVAS_SID_4k4 / FRAMES_PER_SEC ) -#endif { return true; /* IVAS SID */ } @@ -1468,8 +1474,6 @@ static void IVAS_DEC_Close_VoIP( pcmdsp_fifo_destroy( &hVoIP->hFifoAfterTimeScaler ); - count_free( hVoIP ); - return; } diff --git a/lib_dec/stat_dec.h b/lib_dec/stat_dec.h index 0c7a836cb4..8fc8ec5282 100644 --- a/lib_dec/stat_dec.h +++ b/lib_dec/stat_dec.h @@ -204,16 +204,15 @@ typedef struct Float32 *secondLastPcmOut; float *secondLastPowerSpectrum; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT float scaleFactorsBackground[FDNS_NPTS]; - float scf_fadeout; PsychoacousticParameters *psychParams; + /* could be stored only once, since the same for all channels (always at 16Khz fs) */ PsychoacousticParameters psychParamsTCX20; PsychoacousticParameters psychParamsTCX10; float last_block_nrg; float curr_noise_nrg; - float faded_signal_nrg; #endif float nFramesLost; diff --git a/lib_dec/swb_tbe_dec.c b/lib_dec/swb_tbe_dec.c old mode 100644 new mode 100755 index 2664aaa08d..03d9162e34 --- a/lib_dec/swb_tbe_dec.c +++ b/lib_dec/swb_tbe_dec.c @@ -1973,11 +1973,12 @@ static void dequantizeSHBparams( *-------------------------------------------------------------------*/ void fb_tbe_dec( - Decoder_State *st, /* i/o: decoder state structure */ - const float fb_exc[], /* i : FB excitation from the SWB part */ - float *hb_synth, /* o : high-band synthesis */ - float *fb_synth_ref, /* o : high-band synthesis 16-20 kHz */ - const int16_t output_frame /* i : output frame length */ + Decoder_State *st, /* i/o: decoder state structure */ + const float fb_exc[], /* i : FB excitation from the SWB part */ + float *hb_synth, /* o : high-band synthesis */ + float *fb_synth_ref /* o : high-band synthesis 16-20 kHz */ + , + const int16_t output_frame /* i: output frame length */ ) { int16_t i; diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 776d28bcb5..b43f85b8f9 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -93,16 +93,14 @@ ivas_error TonalMDCTConceal_Init( hTonalMDCTConc->nSamplesCore = nSamplesCore; hTonalMDCTConc->nScaleFactors = nScaleFactors; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT set_zero( hTonalMDCTConc->scaleFactorsBackground, FDNS_NPTS ); - hTonalMDCTConc->scf_fadeout = 1.0f; PsychoacousticParameters_Init( INT_FS_16k, L_FRAME16k, 64, 1, 1, &hTonalMDCTConc->psychParamsTCX20 ); PsychoacousticParameters_Init( INT_FS_16k, L_FRAME16k / 2, 64, 0, 1, &hTonalMDCTConc->psychParamsTCX10 ); hTonalMDCTConc->psychParams = NULL; hTonalMDCTConc->last_block_nrg = 0.0f; hTonalMDCTConc->curr_noise_nrg = 0.0f; - hTonalMDCTConc->faded_signal_nrg = 0.0f; #endif /* Offset the pointer to the end of buffer, so that pTCI is not destroyed when @@ -125,7 +123,7 @@ void TonalMDCTConceal_SaveFreqSignal( const uint16_t nNewSamples, const uint16_t nNewSamplesCore, const float *scaleFactors -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT , const int16_t infoIGFStartLine #endif @@ -170,7 +168,7 @@ void TonalMDCTConceal_SaveFreqSignal( if ( ( nNewSamples > 0 ) && ( nNewSamples <= 2 * L_FRAME_MAX ) ) { /* Store new data */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT int16_t i; hTonalMDCTConc->last_block_nrg = 0.0f; @@ -502,9 +500,8 @@ void TonalMDCTConceal_InsertNoise( int16_t *pSeed, const float tiltCompFactor, const float crossfadeGain, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const float concealment_noise[L_FRAME48k], - const float cngLevelBackgroundTrace_bfi, #endif const int16_t crossOverFreq ) { @@ -512,18 +509,11 @@ void TonalMDCTConceal_InsertNoise( float x, y; Word16 rnd; float g, nrgNoiseInLastFrame, nrgWhiteNoise, tiltFactor, tilt; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - float last_block_nrg_correct; -#endif wmops_sub_start( "InsertNoise" ); g = 1.0f - crossfadeGain; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) -#else if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) -#endif { rnd = 1977; } @@ -532,15 +522,13 @@ void TonalMDCTConceal_InsertNoise( rnd = *pSeed; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT /* based on what is done in tcx_noise_filling() */ /* always initialize these to avoid compiler warnings */ tiltFactor = (float) pow( max( 0.375f, tiltCompFactor ), 1.0f / hTonalMDCTConc->lastBlockData.nSamples ); tilt = 1.0f; nrgNoiseInLastFrame = 0.0f; nrgWhiteNoise = 0.0f; - hTonalMDCTConc->faded_signal_nrg = 0.0f; - last_block_nrg_correct = 0.0f; #endif if ( !hTonalMDCTConc->lastBlockData.blockIsValid ) @@ -548,7 +536,7 @@ void TonalMDCTConceal_InsertNoise( /* may just become active if the very first frame is lost */ set_f( mdctSpectrum, 0.0f, hTonalMDCTConc->nSamples ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT else if ( concealment_noise != NULL ) { if ( !tonalConcealmentActive ) @@ -576,7 +564,7 @@ void TonalMDCTConceal_InsertNoise( /* actual fadeout is done in this case */ else { - g *= (float) sqrt( cngLevelBackgroundTrace_bfi / hTonalMDCTConc->curr_noise_nrg ); + g *= (float) sqrt( hTonalMDCTConc->last_block_nrg / hTonalMDCTConc->curr_noise_nrg ); for ( i = 0; i < crossOverFreq; i++ ) { @@ -591,8 +579,6 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[i] = g * y - crossfadeGain * x; } - - hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[i] * mdctSpectrum[i]; } for ( l = crossOverFreq; l < hTonalMDCTConc->lastBlockData.nSamples; l++ ) { @@ -613,11 +599,6 @@ void TonalMDCTConceal_InsertNoise( for ( l = hTonalMDCTConc->pTCI->lowerIndex[i]; l <= hTonalMDCTConc->pTCI->upperIndex[i]; l++ ) { mdctSpectrum[l] = 0; - if ( l < crossOverFreq ) - { - last_block_nrg_correct += hTonalMDCTConc->lastBlockData.spectralData[l] * hTonalMDCTConc->lastBlockData.spectralData[l]; - hTonalMDCTConc->curr_noise_nrg -= concealment_noise[l] * concealment_noise[l]; - } } } @@ -670,7 +651,7 @@ void TonalMDCTConceal_InsertNoise( /* actual fadeout is done in this case */ else { - g *= (float) sqrt( cngLevelBackgroundTrace_bfi / hTonalMDCTConc->curr_noise_nrg ); + g *= (float) sqrt( hTonalMDCTConc->last_block_nrg / hTonalMDCTConc->curr_noise_nrg ); for ( l = 0; l < hTonalMDCTConc->pTCI->lowerIndex[0]; l++ ) { @@ -685,7 +666,6 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } - hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[l] * mdctSpectrum[l]; } for ( i = 1; i < hTonalMDCTConc->pTCI->numIndexes; i++ ) { @@ -702,7 +682,6 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } - hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[l] * mdctSpectrum[l]; } } @@ -719,7 +698,6 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } - hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[l] * mdctSpectrum[l]; } for ( l = crossOverFreq; l < hTonalMDCTConc->lastBlockData.nSamples; l++ ) @@ -728,19 +706,11 @@ void TonalMDCTConceal_InsertNoise( } } } - - if ( hTonalMDCTConc->faded_signal_nrg > 0.0f && hTonalMDCTConc->curr_noise_nrg > MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG ) - { - float nrg_corr_factor; - - nrg_corr_factor = sqrtf( ( hTonalMDCTConc->last_block_nrg - last_block_nrg_correct ) / hTonalMDCTConc->faded_signal_nrg ); - v_multc( mdctSpectrum, nrg_corr_factor, mdctSpectrum, crossOverFreq ); - } } #endif else { -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT /* based on what is done in tcx_noise_filling() */ tiltFactor = (float) pow( max( 0.375f, tiltCompFactor ), 1.0f / hTonalMDCTConc->lastBlockData.nSamples ); tilt = 1.0f; @@ -992,7 +962,7 @@ void TonalMDCTConceal_SaveTimeSignal( return; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT void TonalMdctConceal_create_concealment_noise( float concealment_noise[L_FRAME48k], CPE_DEC_HANDLE hCPE, @@ -1001,7 +971,7 @@ void TonalMdctConceal_create_concealment_noise( const int16_t idchan, const int16_t subframe_idx, const int16_t core, - const float crossfade_gain, + const int16_t crossfade_gain, const TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode ) { STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct; @@ -1079,6 +1049,7 @@ void TonalMdctConceal_create_concealment_noise( c_inv = sqrtf( 1 - hStereoMdct->lastCoh ); /* pre-compute the noise shape for later weighting of the noise spectra */ + /* TODO: optimize by intertwining with later loop */ cngNoiseLevelPtr = &hFdCngCom->cngNoiseLevel[0]; inc = ( st->core > TCX_20_CORE ) ? 2 : 1; start_idx = hFdCngCom->startBand / inc; @@ -1101,7 +1072,7 @@ void TonalMdctConceal_create_concealment_noise( } /* fill the noise vector */ - hTonalMDCTConc->curr_noise_nrg = MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG; + hTonalMDCTConc->curr_noise_nrg = 0.001f; if ( noise_gen_mode == EQUAL_CORES || ( ( noise_gen_mode == TCX20_IN_0_TCX10_IN_1 && idchan == 0 ) || ( noise_gen_mode == TCX10_IN_0_TCX20_IN_1 && idchan == 1 ) ) ) { /* current channel is TCX20 -> generate noise for "full-length" spectrum */ @@ -1129,14 +1100,6 @@ void TonalMdctConceal_create_concealment_noise( } } - if ( st->tonal_mdct_plc_active ) - { - for ( i = crossOverFreq; i < max( crossOverFreq, hTonalMDCTConc->pTCI->lowerIndex[hTonalMDCTConc->pTCI->numIndexes - 1] ); ++i ) - { - concealment_noise[i] *= 0.0f; - } - } - /* restore common seed - after finishing the first channel - after a first subframe if the current channel is TCX10 */ @@ -1145,68 +1108,8 @@ void TonalMdctConceal_create_concealment_noise( *rnd_c = save_rnd_c; } - st->seed_tcx_plc = *rnd; - wmops_sub_end(); return; } - -void TonalMdctConceal_whiten_noise_shape( - Decoder_State *st, - const int16_t L_frame, - const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE whitening_mode -) -{ - int16_t inc, start_idx, stop_idx; - float *noiseLevelPtr, *scfs_bg, *scfs_for_shaping; - HANDLE_FD_CNG_COM hFdCngCom; - float whitenend_noise_shape[L_FRAME16k]; - float scfs_int[FDNS_NPTS]; - const PsychoacousticParameters *psychParams; - - wmops_sub_start( "apply_sns_on_noise_shape" ); - - scfs_bg = &st->hTonalMDCTConc->scaleFactorsBackground[0]; - psychParams = st->hTonalMDCTConc->psychParams; - hFdCngCom = st->hFdCngDec->hFdCngCom; - - inc = ( ( whitening_mode == ON_FIRST_LOST_FRAME ? st->core : st->last_core ) > TCX_20_CORE ) ? 2 : 1; - start_idx = hFdCngCom->startBand / inc; - stop_idx = L_frame / inc; - noiseLevelPtr = hFdCngCom->cngNoiseLevel; - - set_zero( whitenend_noise_shape, start_idx ); - for ( int16_t j = start_idx; j < stop_idx; j++, noiseLevelPtr += inc ) - { - whitenend_noise_shape[j] = *noiseLevelPtr; - } - - if ( whitening_mode == ON_FIRST_LOST_FRAME ) - { - float scf[SNS_NPTS]; - - sns_compute_scf( whitenend_noise_shape, psychParams, L_frame, scf ); - sns_interpolate_scalefactors( scfs_int, scf, ENC ); - sns_interpolate_scalefactors( scfs_bg, scf, DEC ); - scfs_for_shaping = &scfs_int[0]; - } - else /* whitening_mode == ON_FIRST_GOOD_FRAME */ - { - scfs_for_shaping = &scfs_bg[0]; - } - - if ( sum_f( scfs_for_shaping, FDNS_NPTS ) > 0.0f ) - { - sns_shape_spectrum( whitenend_noise_shape, psychParams, scfs_for_shaping, L_frame ); - mvr2r( whitenend_noise_shape + start_idx, hFdCngCom->cngNoiseLevel, stop_idx - start_idx ); - } - else - { - set_zero( hFdCngCom->cngNoiseLevel, stop_idx - start_idx ); - } - - wmops_sub_end(); -} - #endif diff --git a/lib_enc/bw_detect.c b/lib_enc/bw_detect.c index c2955f1f39..c1357a7f74 100644 --- a/lib_enc/bw_detect.c +++ b/lib_enc/bw_detect.c @@ -494,6 +494,7 @@ void bw_detect( st->input_bwidth = st->max_bwidth; } + if ( st->element_mode == EVS_MONO ) { set_bw( -1, -1, st, st->codec_mode ); diff --git a/lib_enc/enc_prm.c b/lib_enc/enc_prm.c index 33c9d6fc7b..062069ceee 100644 --- a/lib_enc/enc_prm.c +++ b/lib_enc/enc_prm.c @@ -55,7 +55,7 @@ void writeTCXMode( Encoder_State *st, /* i/o: encoder state structure */ BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const int16_t is_mct, #endif int16_t *nbits_start /* o : nbits start */ @@ -88,7 +88,7 @@ void writeTCXMode( push_next_indice( hBstr, index, 2 ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT if ( st->element_mode == IVAS_CPE_MDCT && !is_mct ) { push_next_indice( hBstr, st->vad_flag, 1 ); @@ -792,7 +792,7 @@ void enc_prm( /* EVS header */ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT writeTCXMode( st, st->hBstr, 0, /* <- is_mct */ &nbits_start ); #else writeTCXMode( st, st->hBstr, &nbits_start ); diff --git a/lib_enc/fd_cng_enc.c b/lib_enc/fd_cng_enc.c index 2f98addc8d..c2dfb1969f 100644 --- a/lib_enc/fd_cng_enc.c +++ b/lib_enc/fd_cng_enc.c @@ -902,12 +902,6 @@ void stereoFdCngCoherence( sts[0]->core_brate = SID_2k40; sts[1]->core_brate = SID_2k40; } - -#ifdef FIX_CONTROLLABLE_SID_UPDATE_RATE - /* synchronize SID counters */ - sts[0]->hDtxEnc->cnt_SID = min( sts[0]->hDtxEnc->cnt_SID, sts[1]->hDtxEnc->cnt_SID ); - sts[1]->hDtxEnc->cnt_SID = sts[0]->hDtxEnc->cnt_SID; -#endif } pt_fftL = fft_buff[0]; @@ -1008,7 +1002,11 @@ void FdCngEncodeMDCTStereoSID( convertToMS( N, ms_ptr[0], ms_ptr[1], 0.5f ); } - side_energy = sum2_f( ms_ptr[1], N ); + side_energy = 0.0f; + for ( p = 0; p < N; p++ ) + { + side_energy += ms_ptr[1][p] * ms_ptr[1][p]; + } /* do not transmit side shape if initial noise shapes are very similar */ if ( side_energy <= 0.1f ) @@ -1130,11 +1128,6 @@ void FdCngEncodeMDCTStereoSID( push_indice( sts[ch]->hBstr, IND_ENERGY, gain_idx[ch], 7 ); } -#ifdef ALIGN_SID_SIZE - /* pad with zeros to reach common SID frame size */ - push_indice( sts[1]->hBstr, IND_ENERGY, 0, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); -#endif - return; } @@ -1188,11 +1181,18 @@ void FdCngEncodeDiracMDCTStereoSID( /* M/S transform on log envelopes */ convertToMS( NPART, ms_ptr[0], ms_ptr[1], 0.5f ); - E[0] = sum_f( ms_ptr[0], NPART ); - + E[0] = 0.0f; + for ( p = 0; p < NPART; p++ ) + { + E[0] += ms_ptr[0][p]; + } /* Quantize M noise shape */ /* Normalize MSVW input */ - gain[0] = sum_f( ms_ptr[0] + N_GAIN_MIN, N_GAIN_MAX - N_GAIN_MIN ); + gain[0] = 0.f; + for ( p = N_GAIN_MIN; p < N_GAIN_MAX; p++ ) + { + gain[0] += ms_ptr[0][p]; + } gain[0] /= (float) ( N_GAIN_MAX - N_GAIN_MIN ); for ( p = 0; p < N[0]; p++ ) @@ -1208,7 +1208,11 @@ void FdCngEncodeDiracMDCTStereoSID( set_zero( ms_ptr[1], NPART ); /* compute M gain */ - gain[0] = sum_f( ms_ptr[0], NPART ); + gain[0] = 0.f; + for ( p = 0; p < NPART; p++ ) + { + gain[0] += ms_ptr[0][p]; + } gain[0] = ( E[0] - gain[0] ) / (float) N[0]; apply_scale( &gain[0], sts[0]->hFdCngEnc->hFdCngCom->CngBandwidth, sts[0]->hDtxEnc->last_active_brate, scaleTableStereo, SIZE_SCALE_TABLE_STEREO ); diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c old mode 100755 new mode 100644 index 7b658908b5..2cf98207bb --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -1852,17 +1852,13 @@ void IGFEncApplyStereo( const IGF_ENC_INSTANCE_HANDLE hIGFEnc[CPE_CHANNELS], /* i : instance handle of IGF Encoder */ const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ -#ifdef DRAM_REDUCTION_MCT_IGF - float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i/o: inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subfr. */ const int16_t sp_aud_decision0, /* i : sp_aud_decision0 */ const int32_t element_brate, /* i : element bitrate */ - const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ + const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ ) { float *pPowerSpectrumParameter[2]; /* If it is NULL it informs a function that specific handling is needed */ diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 3ed7bb6d2f..493d1ac071 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -242,7 +242,7 @@ void ivas_agc_enc_process( if ( !isClipped ) { - if ( ( ppPcm_out[i][j] > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( ppPcm_out[i][j] < MIN16B_FLT ) ) + if ( ( ppPcm_out[i][j] > ( 1.f - pState->minDelta ) ) || ( ppPcm_out[i][j] < -1.f ) ) { if ( j < offset ) { @@ -278,7 +278,7 @@ void ivas_agc_enc_process( maxGain = max( smoothedMaxAbsVal, MaxAbsVal ) * pState->gain_state[i].lastGain * 2.f; - if ( maxGain < ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) + if ( maxGain < 1.f - pState->minDelta ) { pState->gain_state[i].gainExpVal = -1; } @@ -313,7 +313,7 @@ void ivas_agc_enc_process( { int16_t isCompensated = FALSE; pState->gain_data[i].gainException = FALSE; - pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[MaxAbsValIdx] ) ); + pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal ) / logf( pState->agc_com.winFunc[MaxAbsValIdx] ) ); while ( !isCompensated ) { @@ -324,7 +324,7 @@ void ivas_agc_enc_process( { tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[idx], (float) pState->gain_state[i].gainExpVal ); - if ( ( tmpSignal > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( tmpSignal < MIN16B_FLT ) ) + if ( ( tmpSignal > ( 1.f - pState->minDelta ) ) || ( tmpSignal < -1.f ) ) { isCompensated = FALSE; break; @@ -374,7 +374,7 @@ void ivas_agc_enc_process( } else { - pState->gain_state[i].gainExpVal = (int16_t) ( -floorf( -logf( ( actualMaxAbsVal + pState->minDelta ) * MDFT_NORM_SCALING ) * INV_LOG_2 ) ); + pState->gain_state[i].gainExpVal = (int16_t) ( -floorf( -logf( actualMaxAbsVal + pState->minDelta ) * INV_LOG_2 ) ); pState->gain_state[i].gainExpVal = min( gainExpValMaxRange, pState->gain_state[i].gainExpVal ); gain = powf( 2.0f, -1.0f * pState->gain_state[i].gainExpVal ); diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 08c45af220..b543761491 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -115,6 +115,7 @@ ivas_error ivas_cpe_enc( input_Fs = hEncoderConfig->input_Fs; ivas_total_brate = hEncoderConfig->ivas_total_brate; + /*------------------------------------------------------------------* * Initialization - general *-----------------------------------------------------------------*/ @@ -343,6 +344,12 @@ ivas_error ivas_cpe_enc( sts[0]->total_brate = ( sts[0]->bits_frame_nominal + 10 ) * FRAMES_PER_SEC; /* add small overhead; st[0]->total_brate used in coder_type_modif() */ + if ( ( sts[0]->last_bwidth < max_bwidth ) || ( sts[0]->last_core_brate <= SID_2k40 ) ) /* IVAS_fmToDo: TBV - BWD output is not known here yet !!! */ + { + /* reconfigure in case of BW switching or if last frame was a SID/NO_DATA with coarse partitioning */ + hCPE->hStereoDft->nbands = stereo_dft_band_config( hCPE->hStereoDft->band_limits, hCPE->hStereoDft->hConfig->band_res, hCPE->hStereoDft->NFFT, ENC ); + } + /* Update DFT Stereo memories */ stereo_dft_enc_update( hCPE->hStereoDft, sts[0]->max_bwidth #ifdef DEBUG_MODE_DFT @@ -453,11 +460,7 @@ ivas_error ivas_cpe_enc( { if ( hCPE->element_mode == IVAS_CPE_DFT || hCPE->element_mode == IVAS_CPE_TD ) { -#ifdef ALIGN_SID_SIZE - reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode ); -#else reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode, hCPE->element_mode ); -#endif } } @@ -469,11 +472,7 @@ ivas_error ivas_cpe_enc( /* Reset metadata */ if ( sts[0]->cng_sba_flag || ( ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR ) ) { -#ifdef ALIGN_SID_SIZE - reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode ); -#else reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode, hCPE->element_mode ); -#endif } } @@ -542,11 +541,7 @@ ivas_error ivas_cpe_enc( * Write IVAS format signaling in SID frames *----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE - if ( sts[0]->core_brate == SID_2k40 ) -#else if ( sts[0]->core_brate == SID_2k40 && ( ivas_format != SBA_FORMAT || st_ivas->sba_mode != SBA_MODE_SPAR ) ) -#endif { ivas_write_format_sid( ivas_format, hCPE->element_mode, sts[0]->hBstr ); } @@ -565,11 +560,7 @@ ivas_error ivas_cpe_enc( /* Reconfigure DFT Stereo for inactive frames */ if ( sts[0]->core_brate == SID_2k40 ) { -#ifdef ALIGN_SID_SIZE - stereo_dft_config( hCPE->hStereoDft->hConfig, IVAS_SID_5k2, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); -#else stereo_dft_config( hCPE->hStereoDft->hConfig, IVAS_SID_4k4, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); -#endif } else { @@ -613,11 +604,7 @@ ivas_error ivas_cpe_enc( if ( sts[0]->core_brate == FRAME_NO_DATA || sts[0]->core_brate == SID_2k40 ) { -#ifdef ALIGN_SID_SIZE - assert( ( nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) ) && "Stereo DFT CNG: bit budget is violated" ); -#else assert( ( nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) ) && "Stereo DFT CNG: bit budget is violated" ); -#endif } else { diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 9d5893622d..557cb109ca 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -122,29 +122,19 @@ ivas_error ivas_dirac_enc_open( if ( st_ivas->sba_mode == SBA_MODE_DIRAC ) { hDirAC->num_samples_synchro_delay = NS2SA( input_Fs, IVAS_FB_ENC_DELAY_NS ); -#ifdef FIX_DIRAC_CHANNELS - for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) -#else for ( i = 0; i < st_ivas->hEncoderConfig->nchan_inp; i++ ) -#endif { hDirAC->sba_synchro_buffer[i] = (float *) count_malloc( hDirAC->num_samples_synchro_delay * sizeof( float ) ); set_zero( hDirAC->sba_synchro_buffer[i], hDirAC->num_samples_synchro_delay ); } -#ifndef FIX_DIRAC_CHANNELS for ( ; i < IVAS_MAX_NUM_CH; i++ ) { hDirAC->sba_synchro_buffer[i] = NULL; } -#endif } else { -#ifdef FIX_DIRAC_CHANNELS - for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) -#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { hDirAC->sba_synchro_buffer[i] = NULL; } @@ -252,11 +242,7 @@ void ivas_dirac_enc_close( ivas_FB_mixer_close( &hDirAC->hFbMixer, input_Fs ); } -#ifdef FIX_DIRAC_CHANNELS - for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) -#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { if ( hDirAC->sba_synchro_buffer[i] != NULL ) { @@ -426,7 +412,9 @@ void ivas_dirac_enc( } /* encode SID parameters */ - ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, SBA_FORMAT, SBA_MODE_DIRAC ); + ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, + SBA_FORMAT, + SBA_MODE_DIRAC ); /* restore original metadata */ hDirAC->hConfig->nbands = nbands; @@ -441,12 +429,10 @@ void ivas_dirac_enc( } else { -#ifdef ALIGN_SID_SIZE - /*indicate whether SPAR or DiRAC mode*/ - push_next_indice( hMetaData, 0, 1 ); -#endif /* encode SID parameters */ - ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, SBA_FORMAT, SBA_MODE_DIRAC ); + ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, + SBA_FORMAT, + SBA_MODE_DIRAC ); } } } @@ -456,7 +442,6 @@ void ivas_dirac_enc( return; } - /*------------------------------------------------------------------------- * computeReferencePower_enc() * @@ -472,11 +457,7 @@ void ivas_dirac_enc_spar_delay_synchro( int16_t ch_idx; float tmp_buffer[L_FRAME48k]; -#ifdef FIX_DIRAC_CHANNELS - for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) -#else for ( ch_idx = 0; ch_idx < st_ivas->hEncoderConfig->nchan_inp; ch_idx++ ) -#endif { mvr2r( data_f[ch_idx], tmp_buffer, input_frame ); mvr2r( st_ivas->hDirAC->sba_synchro_buffer[ch_idx], data_f[ch_idx], st_ivas->hDirAC->num_samples_synchro_delay ); @@ -487,7 +468,6 @@ void ivas_dirac_enc_spar_delay_synchro( return; } - /*------------------------------------------------------------------------- * computeReferencePower_enc() * @@ -527,13 +507,11 @@ void computeReferencePower_enc( return; } - /*------------------------------------------------------------------------- * ivas_dirac_param_est_enc() * * *------------------------------------------------------------------------*/ - void ivas_dirac_param_est_enc( DIRAC_ENC_HANDLE hDirAC, IVAS_QDIRECTION *q_direction, diff --git a/lib_enc/ivas_enc.c b/lib_enc/ivas_enc.c old mode 100644 new mode 100755 diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index e4db2ce2a1..21a7eb839f 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -233,22 +233,53 @@ void copy_encoder_config( st->force = st_ivas->hEncoderConfig->force; #endif st->element_mode = st_ivas->hEncoderConfig->element_mode_init; - return; } -/*------------------------------------------------------------------------- - * ivas_initialize_handles_enc() +/*-------------------------------------------------------------------* + * ivas_init_encoder() * - * NULL initialization of handles - *-------------------------------------------------------------------------*/ + * Initialize IVAS encoder state structure + *-------------------------------------------------------------------*/ -void ivas_initialize_handles_enc( - Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ +ivas_error ivas_init_encoder( + Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ + Indice ind_list[][MAX_NUM_INDICES], /* o : bitstream indices */ + Indice ind_list_metadata[][MAX_BITS_METADATA] /* o : bitstream indices metadata */ ) { - int16_t i; + int16_t i, n; + int16_t sce_id, cpe_id; + IVAS_FORMAT ivas_format; + int32_t input_Fs, ivas_total_brate; + ENCODER_CONFIG_HANDLE hEncoderConfig; + ivas_error error; + + error = IVAS_ERR_OK; + + hEncoderConfig = st_ivas->hEncoderConfig; + ivas_format = hEncoderConfig->ivas_format; + input_Fs = hEncoderConfig->input_Fs; + ivas_total_brate = hEncoderConfig->ivas_total_brate; + + hEncoderConfig->last_ivas_total_brate = ivas_total_brate; + + if ( ivas_format != MONO_FORMAT ) + { + /* In IVAS, ensure that minimum coded bandwidth is WB */ + hEncoderConfig->max_bwidth = max( hEncoderConfig->max_bwidth, WB ); + } + + st_ivas->ism_mode = ISM_MODE_NONE; + st_ivas->mc_mode = MC_MODE_NONE; + st_ivas->sba_mode = SBA_MODE_NONE; + + /*-----------------------------------------------------------------* + * Dummy pointers to max. number of SCEs and CPEs + *-----------------------------------------------------------------*/ + + st_ivas->nchan_transport = -1; for ( i = 0; i < MAX_SCE; i++ ) { @@ -260,12 +291,10 @@ void ivas_initialize_handles_enc( st_ivas->hCPE[i] = NULL; } - st_ivas->mem_hp20_in = NULL; - /* ISm metadata handles */ - for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) + for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) { - st_ivas->hIsmMetaData[i] = NULL; + st_ivas->hIsmMetaData[n] = NULL; } /* Q Metadata handle */ @@ -295,50 +324,6 @@ void ivas_initialize_handles_enc( /* LFE handle */ st_ivas->hLFE = NULL; - return; -} - - -/*-------------------------------------------------------------------* - * ivas_init_encoder() - * - * Initialize IVAS encoder state structure - *-------------------------------------------------------------------*/ - -ivas_error ivas_init_encoder( - Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ - Indice ind_list[][MAX_NUM_INDICES], /* o : bitstream indices */ - Indice ind_list_metadata[][MAX_BITS_METADATA] /* o : bitstream indices metadata */ -) -{ - int16_t i, n; - int16_t sce_id, cpe_id; - IVAS_FORMAT ivas_format; - int32_t input_Fs, ivas_total_brate; - ENCODER_CONFIG_HANDLE hEncoderConfig; - ivas_error error; - - error = IVAS_ERR_OK; - - hEncoderConfig = st_ivas->hEncoderConfig; - ivas_format = hEncoderConfig->ivas_format; - input_Fs = hEncoderConfig->input_Fs; - ivas_total_brate = hEncoderConfig->ivas_total_brate; - - hEncoderConfig->last_ivas_total_brate = ivas_total_brate; - - if ( ivas_format != MONO_FORMAT ) - { - /* In IVAS, ensure that minimum coded bandwidth is WB */ - hEncoderConfig->max_bwidth = max( hEncoderConfig->max_bwidth, WB ); - } - - st_ivas->ism_mode = ISM_MODE_NONE; - st_ivas->mc_mode = MC_MODE_NONE; - st_ivas->sba_mode = SBA_MODE_NONE; - - st_ivas->nchan_transport = -1; - /*-----------------------------------------------------------------* * Allocate and initialize SCE/CPE and other handles *-----------------------------------------------------------------*/ @@ -427,17 +412,17 @@ ivas_error ivas_init_encoder( } else if ( ivas_format == SBA_FORMAT || ivas_format == MASA_FORMAT ) { - if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { - return error; + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) + { + return error; + } } if ( ivas_format == SBA_FORMAT ) { st_ivas->sba_mode = ivas_sba_mode_select( ivas_total_brate ); - st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { if ( ( error = ivas_spar_enc_open( st_ivas ) ) != IVAS_ERR_OK ) @@ -596,7 +581,6 @@ ivas_error ivas_init_encoder( else if ( st_ivas->mc_mode == MC_MODE_MCMASA ) { ivas_mcmasa_setNumTransportChannels( &( st_ivas->nchan_transport ), &( hEncoderConfig->element_mode_init ), ivas_total_brate ); - if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { return error; @@ -884,7 +868,7 @@ void ivas_destroy_enc( if ( st_ivas->hSCE[i] != NULL ) { destroy_sce_enc( st_ivas->hSCE[i] ); - st_ivas->hSCE[i] = NULL; + st_ivas->hSCE[0] = NULL; } } diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 2433c01802..2653829d13 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -214,11 +214,7 @@ ivas_error ivas_ism_enc( ivas_write_format_sid( st_ivas->hEncoderConfig->ivas_format, IVAS_SCE, st->hBstr ); /* write unused bits */ -#ifdef ALIGN_SID_SIZE - nBits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else nBits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif while ( nBits > 0 ) { i = min( nBits, 16 ); diff --git a/lib_enc/ivas_masa_enc.c b/lib_enc/ivas_masa_enc.c index c2649adc56..2e233bbc6d 100644 --- a/lib_enc/ivas_masa_enc.c +++ b/lib_enc/ivas_masa_enc.c @@ -350,7 +350,9 @@ void ivas_masa_encode( count_free( h_orig_metadata ); - ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, masa_sid_descriptor, ivas_format, SBA_MODE_NONE ); + ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, masa_sid_descriptor, + ivas_format, + SBA_MODE_NONE ); /* restore old values */ hMasa->config.numCodingBands = numCodingBands; diff --git a/lib_enc/ivas_mcmasa_enc.c b/lib_enc/ivas_mcmasa_enc.c index a281ec4760..595f758e51 100644 --- a/lib_enc/ivas_mcmasa_enc.c +++ b/lib_enc/ivas_mcmasa_enc.c @@ -70,7 +70,9 @@ static void ivas_mcmasa_dmx( MCMASA_ENC_HANDLE hMcMasa, float data_f[][L_FRAME48 static void compute_cov_mtx( float sr[MCMASA_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], float si[MCMASA_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], const int16_t freq, const int16_t N, CovarianceMatrix *COVls ); -static void computeIntensityVector_enc( const int16_t *band_grouping, float Cldfb_RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], float Cldfb_ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], const int16_t enc_param_start_band, const int16_t num_frequency_bands, float intensity_real[DIRAC_NUM_DIMS][MASA_FREQUENCY_BANDS] ); +static void computeIntensityVector_enc( const int16_t *band_grouping, float Cldfb_RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], float Cldfb_ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], const int16_t enc_param_start_band, /* i: first band to process */ + const int16_t num_frequency_bands, + float intensity_real[DIRAC_NUM_DIMS][MASA_FREQUENCY_BANDS] ); static void computeVerticalDiffuseness( float **buffer_intensity, const float *buffer_energy, const int16_t averaging_length, const int16_t num_freq_bands, float *diffuseness ); diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c old mode 100644 new mode 100755 diff --git a/lib_enc/ivas_mct_enc.c b/lib_enc/ivas_mct_enc.c index 9aa5fe04c5..20a2856654 100644 --- a/lib_enc/ivas_mct_enc.c +++ b/lib_enc/ivas_mct_enc.c @@ -193,26 +193,25 @@ ivas_error create_mct_enc( hMCT->nchan_out_woLFE = st_ivas->hEncoderConfig->nchan_inp - 1; /* LFE channel is coded separately */ hMCT->num_lfe = TRUE; } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - else if ( ivas_format == SBA_FORMAT ) - { - hMCT->nchan_out_woLFE = ivas_get_sba_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); - - hMCT->num_lfe = FALSE; - } -#else else if ( ivas_format == SBA_FORMAT && st_ivas->hSpar ) { +#ifndef SBA_ORDER_BITSTREAM + hMCT->nchan_out_woLFE = ivas_get_spar_num_TCs( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); +#else hMCT->nchan_out_woLFE = ivas_get_spar_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); +#endif hMCT->num_lfe = FALSE; } else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) { +#ifndef SBA_ORDER_BITSTREAM + hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); +#else hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#endif hMCT->num_lfe = FALSE; } -#endif else if ( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_PARAMMC ) { hMCT->nchan_out_woLFE = ivas_param_mc_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->mc_input_setup ); @@ -220,7 +219,11 @@ ivas_error create_mct_enc( } else if ( ivas_format == SBA_FORMAT ) { +#ifndef SBA_ORDER_BITSTREAM + hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); +#else hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#endif hMCT->num_lfe = FALSE; } else @@ -346,29 +349,24 @@ ivas_error mct_enc_reconfigure( hMCT->nchan_out_woLFE = st_ivas->hEncoderConfig->nchan_inp - 1; /* LFE channel is coded separately */ hMCT->num_lfe = TRUE; } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) // VE: this condition to be reviewed together with the following one - { - hMCT->nchan_out_woLFE = ivas_get_sba_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); - hMCT->num_lfe = FALSE; - } - else if ( ivas_format == SBA_FORMAT ) - { - hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); - hMCT->num_lfe = FALSE; - } -#else else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) { +#ifndef SBA_ORDER_BITSTREAM + hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); +#else hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#endif hMCT->num_lfe = FALSE; } else if ( ivas_format == SBA_FORMAT ) { +#ifndef SBA_ORDER_BITSTREAM + hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); +#else hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); +#endif hMCT->num_lfe = FALSE; } -#endif else { assert( !"IVAS format currently not supported for MCT" ); diff --git a/lib_enc/ivas_mct_enc_mct.c b/lib_enc/ivas_mct_enc_mct.c old mode 100755 new mode 100644 index 309a023fe7..62ff9be888 --- a/lib_enc/ivas_mct_enc_mct.c +++ b/lib_enc/ivas_mct_enc_mct.c @@ -834,11 +834,7 @@ void mctStereoIGF_enc( float *p_powerSpecMsInv[CPE_CHANNELS][NB_DIV]; float *p_inv_spectrum[CPE_CHANNELS][NB_DIV]; float *p_orig_spectrum[CPE_CHANNELS][NB_DIV]; -#ifdef DRAM_REDUCTION_MCT_IGF - float *p_powerSpec[NB_DIV]; -#else float p_powerSpec[NB_DIV][N_MAX]; -#endif int16_t singleChEle[MCT_MAX_CHANNELS]; L_subframeTCX = 0; /* to avoid compilation warning */ @@ -859,15 +855,10 @@ void mctStereoIGF_enc( p_st[0] = sts[ch1]; p_st[1] = sts[ch2]; -#ifdef DRAM_REDUCTION_MCT_IGF - p_powerSpec[0] = powerSpec[ch1]; - p_powerSpec[1] = powerSpec[ch2]; -#else mvr2r( powerSpec[ch1], p_powerSpec[0], L_FRAME48k ); set_f( &p_powerSpec[0][L_FRAME48k], 0.f, N_MAX - L_FRAME48k ); mvr2r( powerSpec[ch2], p_powerSpec[1], L_FRAME48k ); set_f( &p_powerSpec[1][L_FRAME48k], 0.f, N_MAX - L_FRAME48k ); -#endif /* Band-wise M/S for MDST */ nSubframes = p_st[0]->hTcxEnc->tcxMode == TCX_20 ? 1 : NB_DIV; diff --git a/lib_enc/ivas_mdct_core_enc.c b/lib_enc/ivas_mdct_core_enc.c index 0d2f5817d6..4d9d1f2577 100644 --- a/lib_enc/ivas_mdct_core_enc.c +++ b/lib_enc/ivas_mdct_core_enc.c @@ -63,7 +63,7 @@ static void enc_prm_pre_mdct( int16_t param[], /* i : parameters */ const int16_t *no_param_tns, /* i : number of TNS parameters per subframe */ int16_t p_param[2], /* o : pointer to parameters for next round of bs writing */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT const int16_t is_mct, #endif BSTR_ENC_HANDLE hBstr /* i/o: encoder bitstream handle */ @@ -80,7 +80,7 @@ static void enc_prm_pre_mdct( * Header *--------------------------------------------------------------------------------*/ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT writeTCXMode( st, hBstr, is_mct, &nbits_start ); #else writeTCXMode( st, hBstr, &nbits_start ); @@ -1065,7 +1065,7 @@ void ivas_mdct_core_whitening_enc( continue; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT enc_prm_pre_mdct( st, param_core[ch], ( ( ( ch > 0 ) && ( sts[0]->hTcxEnc->fUseTns[0] + sts[0]->hTcxEnc->fUseTns[1] > 0 ) && !mct_on ) ? tnsSize[ch] : NULL ), p_param[ch], mct_on, hBstr ); #else enc_prm_pre_mdct( st, param_core[ch], ( ( ( ch > 0 ) && ( sts[0]->hTcxEnc->fUseTns[0] + sts[0]->hTcxEnc->fUseTns[1] > 0 ) && !mct_on ) ? tnsSize[ch] : NULL ), p_param[ch], hBstr ); diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index 6042c9e10a..f62b61e4ef 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -150,7 +150,7 @@ ivas_error ivas_qmetadata_enc_encode( int16_t diff_bits, bits_ec, next_ind_raw_flag; int16_t dfRatio_bits[MASA_MAXIMUM_CODING_SUBBANDS]; int16_t bits_surround_coh, no_TF; - int16_t dir2_bands[MASA_MAXIMUM_TWO_DIR_BANDS]; + int16_t dir2_bands[MASA_MAXIMUM_CODING_SUBBANDS / 2]; int16_t ind_order[MASA_MAXIMUM_CODING_SUBBANDS]; int16_t reduce_bits; ivas_error error; @@ -684,32 +684,17 @@ void ivas_qmetadata_enc_sid_encode( { if ( sba_mode == SBA_MODE_SPAR ) { -#ifdef ALIGN_SID_SIZE - /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = (int16_t) ( 5000 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ -#else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ -#endif } else { - /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ -#ifdef ALIGN_SID_SIZE - /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else + /* keep 13.2 and 16.4 sid bitrate as 4.4 kbps for now*/ metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } } else { -#ifdef ALIGN_SID_SIZE - /* TODO: still use old sid frame size to keep bitexactness */ - metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } #ifdef DEBUG_MODE_QMETADATA @@ -888,22 +873,6 @@ void ivas_qmetadata_enc_sid_encode( } #endif -#ifdef ALIGN_SID_SIZE - /* TODO: temporary to keep BE */ - if ( ivas_format == SBA_FORMAT ) - { - if ( sba_mode != SBA_MODE_SPAR ) - { - /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - 1; /* -1 for spar/dirac indicator*/ - } - } - else - { - metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; - } -#endif - /* fill bits*/ assert( ( hMetaData->nb_bits_tot - bit_pos_start ) <= metadata_sid_bits && "Too many written bits!" ); while ( ( hMetaData->nb_bits_tot - bit_pos_start ) < metadata_sid_bits ) @@ -927,18 +896,11 @@ void reset_metadata_spatial( int32_t *total_brate, /* o : total bitrate */ const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ -#ifndef ALIGN_SID_SIZE - const SBA_MODE sba_mode, /* i : SBA mode */ - const int16_t element_mode /* i : element mode */ -#else - const SBA_MODE sba_mode /* i : SBA mode */ -#endif + const SBA_MODE sba_mode, /* i : SBA mode */ + const int16_t element_mode /* i : element mode */ ) { int16_t i, next_ind_sid, last_ind_sid; -#ifdef ALIGN_SID_SIZE - int16_t metadata_sid_bits; -#endif if ( core_brate == SID_2k40 || core_brate == FRAME_NO_DATA ) { @@ -947,14 +909,6 @@ void reset_metadata_spatial( if ( sba_mode == SBA_MODE_SPAR ) { assert( hMetaData->ind_list[0].nb_bits == 1 ); -#ifdef ALIGN_SID_SIZE - hMetaData->ind_list[0].value = 1; - metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; - while ( hMetaData->nb_bits_tot < metadata_sid_bits ) - { - push_next_indice( hMetaData, 0, 1 ); /*fill bit*/ - } -#else if ( element_mode > IVAS_SCE ) { hMetaData->ind_list[0].value = 1; @@ -963,7 +917,6 @@ void reset_metadata_spatial( { hMetaData->ind_list[0].value = 0; } -#endif } else { @@ -993,11 +946,7 @@ void reset_metadata_spatial( hMetaData->ind_list[i].nb_bits = -1; } hMetaData->last_ind = hMetaData->next_ind; -#ifdef ALIGN_SID_SIZE - assert( ( hMetaData->nb_bits_tot == ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) && "Problem of SID metadata in SCE" ); -#else assert( ( hMetaData->nb_bits_tot == ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) && "Problem of SID metadata in SCE" ); -#endif } } else diff --git a/lib_enc/ivas_rom_enc.c b/lib_enc/ivas_rom_enc.c index ebc4ee6bc3..e8048b8f1a 100644 --- a/lib_enc/ivas_rom_enc.c +++ b/lib_enc/ivas_rom_enc.c @@ -534,6 +534,160 @@ const float ari_bit_estimate_s17_LC[RANGE_N_CONTEXT][RANGE_N_SYMBOLS] = * Stereo downmix to EVS ROM tables *----------------------------------------------------------------------------------*/ +#ifndef NTT_REMOVE_EPS_ROM +const float Stereo_dmx_s_wnd_coef_eps_16k[L_FRAME16k * 3 / 4] = { + 0.00000000f, 0.000385506690f, 0.000770864717f, 0.00115592557f, 0.00154054083f, 0.00192456215f, 0.00230784155f, 0.00269023119f, 0.00307158381f, 0.00345175178f, + 0.00383058959f, 0.00420795102f, 0.00458368938f, 0.00495766103f, 0.00532972161f, 0.00569972629f, 0.00606753491f, 0.00643300405f, 0.00679599261f, 0.00715636183f, + 0.00751397246f, 0.00786868576f, 0.00822036527f, 0.00856887549f, 0.00891408324f, 0.00925585348f, 0.00959405676f, 0.00992856082f, 0.0102592362f, 0.0105859563f, + 0.0109085962f, 0.0112270303f, 0.0115411365f, 0.0118507938f, 0.0121558821f, 0.0124562839f, 0.0127518829f, 0.0130425673f, 0.0133282226f, 0.0136087397f, + 0.0138840098f, 0.0141539266f, 0.0144183896f, 0.0146772927f, 0.0149305379f, 0.0151780248f, 0.0154196629f, 0.0156553555f, 0.0158850122f, 0.0161085464f, + 0.0163258687f, 0.0165368970f, 0.0167415515f, 0.0169397499f, 0.0171314199f, 0.0173164830f, 0.0174948741f, 0.0176665168f, 0.0178313497f, 0.0179893095f, + 0.0181403328f, 0.0182843637f, 0.0184213445f, 0.0185512230f, 0.0186739527f, 0.0187894795f, 0.0188977662f, 0.0189987645f, 0.0190924387f, 0.0191787537f, + 0.0192576759f, 0.0193291716f, 0.0193932168f, 0.0194497835f, 0.0194988549f, 0.0195404068f, 0.0195744261f, 0.0196008999f, 0.0196198169f, 0.0196311697f, + 0.0196349546f, 0.0196311697f, 0.0196198169f, 0.0196008999f, 0.0195744261f, 0.0195404068f, 0.0194988549f, 0.0194497835f, 0.0193932150f, 0.0193291716f, + 0.0192576740f, 0.0191787537f, 0.0190924387f, 0.0189987645f, 0.0188977644f, 0.0187894795f, 0.0186739508f, 0.0185512230f, 0.0184213426f, 0.0182843637f, + 0.0181403328f, 0.0179893095f, 0.0178313479f, 0.0176665168f, 0.0174948722f, 0.0173164830f, 0.0171314199f, 0.0169397499f, 0.0167415496f, 0.0165368970f, + 0.0163258687f, 0.0161085445f, 0.0158850104f, 0.0156553555f, 0.0154196629f, 0.0151780220f, 0.0149305360f, 0.0146772927f, 0.0144183887f, 0.0141539248f, + 0.0138840098f, 0.0136087388f, 0.0133282207f, 0.0130425654f, 0.0127518829f, 0.0124562830f, 0.0121558802f, 0.0118507929f, 0.0115411356f, 0.0112270294f, + 0.0109085953f, 0.0105859553f, 0.0102592343f, 0.00992855709f, 0.00959405396f, 0.00925585162f, 0.00891408045f, 0.00856887735f, 0.00822036248f, 0.00786868297f, + 0.00751396874f, 0.00715636322f, 0.00679598982f, 0.00643300032f, 0.00606753537f, 0.00569972722f, 0.00532971695f, 0.00495765638f, 0.00458368938f, 0.00420795055f, + 0.00383058493f, 0.00345175178f, 0.00307158334f, 0.00269023073f, 0.00230784062f, 0.00192456122f, 0.00154053967f, 0.00115592428f, 0.000770863262f, 0.000385505118f, + -1.71654224e-09f, -0.000385508552f, -0.000770866696f, -0.00115592312f, -0.00154053851f, -0.00192456460f, -0.00230784412f, -0.00269023376f, -0.00307158637f, -0.00345175504f, + -0.00383058819f, -0.00420794915f, -0.00458368799f, -0.00495766429f, -0.00532972487f, -0.00569973048f, -0.00606753910f, -0.00643300358f, -0.00679599261f, -0.00715636183f, + -0.00751397153f, -0.00786868948f, -0.00822036993f, -0.00856888015f, -0.00891408417f, -0.00925585441f, -0.00959405676f, -0.00992856082f, -0.0102592362f, -0.0105859619f, + -0.0109086009f, -0.0112270284f, -0.0115411393f, -0.0118507957f, -0.0121558839f, -0.0124562858f, -0.0127518848f, -0.0130425720f, -0.0133282207f, -0.0136087369f, + -0.0138840117f, -0.0141539304f, -0.0144183915f, -0.0146772945f, -0.0149305388f, -0.0151780248f, -0.0154196648f, -0.0156553555f, -0.0158850141f, -0.0161085445f, + -0.0163258705f, -0.0165369026f, -0.0167415477f, -0.0169397499f, -0.0171314217f, -0.0173164848f, -0.0174948759f, -0.0176665168f, -0.0178313479f, -0.0179893095f, + -0.0181403328f, -0.0182843637f, -0.0184213463f, -0.0185512248f, -0.0186739527f, -0.0187894795f, -0.0188977644f, -0.0189987663f, -0.0190924387f, -0.0191787556f, + -0.0192576759f, -0.0193291716f, -0.0193932150f, -0.0194497835f, -0.0194988549f, -0.0195404068f, -0.0195744261f, -0.0196008999f, -0.0196198169f, -0.0196311697f +}; + +const float Stereo_dmx_s_wnd_coef_eps_32k[L_FRAME32k * 3 / 4] = { + 0.00000000f, 9.63813145e-05f, 0.000192753345f, 0.000289106771f, 0.000385432359f, 0.000481720810f, 0.000577962783f, 0.000674149080f, 0.000770270417f, 0.000866317423f, + 0.000962281076f, 0.00105815195f, 0.00115392078f, 0.00124957843f, 0.00134511560f, 0.00144052308f, 0.00153579190f, 0.00163091265f, 0.00172587589f, 0.00182067312f, + 0.00191529479f, 0.00200973195f, 0.00210397551f, 0.00219801581f, 0.00229184469f, 0.00238545262f, 0.00247883052f, 0.00257196953f, 0.00266486080f, 0.00275749480f, + 0.00284986314f, 0.00294195698f, 0.00303376745f, 0.00312528526f, 0.00321650202f, 0.00330740865f, 0.00339799630f, 0.00348825660f, 0.00357818091f, 0.00366776017f, + 0.00375698623f, 0.00384584931f, 0.00393434288f, 0.00402245624f, 0.00411018264f, 0.00419751229f, 0.00428443775f, 0.00437095016f, 0.00445704162f, 0.00454270327f, + 0.00462792674f, 0.00471270457f, 0.00479702838f, 0.00488088885f, 0.00496428041f, 0.00504719233f, 0.00512961810f, 0.00521154935f, 0.00529297814f, 0.00537389703f, + 0.00545429811f, 0.00553417346f, 0.00561351515f, 0.00569231622f, 0.00577056827f, 0.00584826432f, 0.00592539692f, 0.00600195816f, 0.00607794104f, 0.00615333812f, + 0.00622814195f, 0.00630234554f, 0.00637594145f, 0.00644892361f, 0.00652128365f, 0.00659301504f, 0.00666411128f, 0.00673456443f, 0.00680436986f, 0.00687351823f, + 0.00694200490f, 0.00700982194f, 0.00707696332f, 0.00714342389f, 0.00720919482f, 0.00727427099f, 0.00733864633f, 0.00740231434f, 0.00746526895f, 0.00752750318f, + 0.00758901238f, 0.00764979096f, 0.00770983147f, 0.00776912877f, 0.00782767776f, 0.00788547192f, 0.00794250611f, 0.00799877476f, 0.00805427320f, 0.00810899399f, + 0.00816293433f, 0.00821608771f, 0.00826844852f, 0.00832001306f, 0.00837077573f, 0.00842073187f, 0.00846987497f, 0.00851820316f, 0.00856570993f, 0.00861239061f, + 0.00865824148f, 0.00870325882f, 0.00874743704f, 0.00879077055f, 0.00883325841f, 0.00887489505f, 0.00891567487f, 0.00895559601f, 0.00899465475f, 0.00903284643f, + 0.00907016639f, 0.00910661276f, 0.00914218184f, 0.00917686895f, 0.00921067223f, 0.00924358703f, 0.00927561149f, 0.00930674188f, 0.00933697633f, 0.00936630927f, + 0.00939473975f, 0.00942226499f, 0.00944888312f, 0.00947458949f, 0.00949938223f, 0.00952325948f, 0.00954621937f, 0.00956825912f, 0.00958937686f, 0.00960957073f, + 0.00962883793f, 0.00964717567f, 0.00966458581f, 0.00968106277f, 0.00969660841f, 0.00971121807f, 0.00972489174f, 0.00973762851f, 0.00974942744f, 0.00976028573f, + 0.00977020338f, 0.00977917947f, 0.00978721306f, 0.00979430322f, 0.00980044995f, 0.00980565138f, 0.00980990846f, 0.00981321931f, 0.00981558487f, 0.00981700420f, + 0.00981747732f, 0.00981700420f, 0.00981558487f, 0.00981321931f, 0.00980990846f, 0.00980565138f, 0.00980044995f, 0.00979430322f, 0.00978721306f, 0.00977917947f, + 0.00977020338f, 0.00976028573f, 0.00974942744f, 0.00973762851f, 0.00972489174f, 0.00971121807f, 0.00969660748f, 0.00968106277f, 0.00966458581f, 0.00964717567f, + 0.00962883700f, 0.00960956980f, 0.00958937686f, 0.00956825912f, 0.00954621937f, 0.00952325948f, 0.00949938223f, 0.00947458856f, 0.00944888219f, 0.00942226499f, + 0.00939473975f, 0.00936630927f, 0.00933697540f, 0.00930674188f, 0.00927561149f, 0.00924358703f, 0.00921067130f, 0.00917686801f, 0.00914218184f, 0.00910661276f, + 0.00907016639f, 0.00903284550f, 0.00899465475f, 0.00895559601f, 0.00891567394f, 0.00887489505f, 0.00883325841f, 0.00879077055f, 0.00874743611f, 0.00870325882f, + 0.00865824148f, 0.00861238968f, 0.00856570993f, 0.00851820316f, 0.00846987497f, 0.00842073094f, 0.00837077480f, 0.00832001306f, 0.00826844852f, 0.00821608678f, + 0.00816293433f, 0.00810899399f, 0.00805427227f, 0.00799877476f, 0.00794250518f, 0.00788547192f, 0.00782767776f, 0.00776912784f, 0.00770983147f, 0.00764979003f, + 0.00758901099f, 0.00752750272f, 0.00746526802f, 0.00740231294f, 0.00733864633f, 0.00727427006f, 0.00720919436f, 0.00714342296f, 0.00707696239f, 0.00700982334f, + 0.00694200490f, 0.00687351730f, 0.00680436939f, 0.00673456397f, 0.00666411035f, 0.00659301365f, 0.00652128272f, 0.00644892408f, 0.00637594145f, 0.00630234415f, + 0.00622814149f, 0.00615333673f, 0.00607794011f, 0.00600195862f, 0.00592539646f, 0.00584826525f, 0.00577056780f, 0.00569231436f, 0.00561351469f, 0.00553417206f, + 0.00545429764f, 0.00537389750f, 0.00529297767f, 0.00521154935f, 0.00512961717f, 0.00504719047f, 0.00496427855f, 0.00488088885f, 0.00479702698f, 0.00471270457f, + 0.00462792581f, 0.00454270281f, 0.00445704022f, 0.00437094783f, 0.00428443868f, 0.00419751182f, 0.00411018124f, 0.00402245624f, 0.00393434148f, 0.00384584907f, + 0.00375698437f, 0.00366775948f, 0.00357818161f, 0.00348825636f, 0.00339799491f, 0.00330740795f, 0.00321650016f, 0.00312528457f, 0.00303376769f, 0.00294195651f, + 0.00284986361f, 0.00275749387f, 0.00266485848f, 0.00257196836f, 0.00247882819f, 0.00238545146f, 0.00229184469f, 0.00219801464f, 0.00210397528f, 0.00200973079f, + 0.00191529247f, 0.00182067417f, 0.00172587589f, 0.00163091114f, 0.00153579167f, 0.00144052168f, 0.00134511536f, 0.00124957680f, 0.00115392031f, 0.00105815264f, + 0.000962280610f, 0.000866315851f, 0.000770269835f, 0.000674147333f, 0.000577962142f, 0.000481721276f, 0.000385431631f, 0.000289107207f, 0.000192752559f, 9.63793209e-05f, + -8.58271121e-10f, -9.63833809e-05f, -0.000192754276f, -0.000289106567f, -0.000385433348f, -0.000481720665f, -0.000577961560f, -0.000674149022f, -0.000770269253f, -0.000866317481f, + -0.000962282298f, -0.00105815206f, -0.00115392206f, -0.00124957855f, -0.00134511688f, -0.00144052564f, -0.00153579318f, -0.00163091510f, -0.00172587752f, -0.00182067591f, + -0.00191529409f, -0.00200973242f, -0.00210397458f, -0.00219801627f, -0.00229184399f, -0.00238545309f, -0.00247883215f, -0.00257196999f, -0.00266486243f, -0.00275749573f, + -0.00284986524f, -0.00294196024f, -0.00303376955f, -0.00312528410f, -0.00321650179f, -0.00330740749f, -0.00339799630f, -0.00348825776f, -0.00357818091f, -0.00366776134f, + -0.00375698577f, -0.00384585070f, -0.00393434474f, -0.00402245764f, -0.00411018496f, -0.00419751368f, -0.00428444007f, -0.00437094970f, -0.00445704209f, -0.00454270234f, + -0.00462792721f, -0.00471270364f, -0.00479702838f, -0.00488089072f, -0.00496428041f, -0.00504719326f, -0.00512961810f, -0.00521155121f, -0.00529298093f, -0.00537389843f, + -0.00545430044f, -0.00553417299f, -0.00561351422f, -0.00569231622f, -0.00577056967f, -0.00584826432f, -0.00592539785f, -0.00600195816f, -0.00607794197f, -0.00615333952f, + -0.00622814288f, -0.00630234741f, -0.00637594238f, -0.00644892501f, -0.00652128598f, -0.00659301504f, -0.00666411035f, -0.00673456537f, -0.00680436846f, -0.00687351823f, + -0.00694200583f, -0.00700982241f, -0.00707696518f, -0.00714342389f, -0.00720919576f, -0.00727427332f, -0.00733864726f, -0.00740231574f, -0.00746526942f, -0.00752750272f, + -0.00758901238f, -0.00764979143f, -0.00770983240f, -0.00776912784f, -0.00782767776f, -0.00788547192f, -0.00794250704f, -0.00799877662f, -0.00805427227f, -0.00810899492f, + -0.00816293526f, -0.00821608957f, -0.00826845132f, -0.00832001399f, -0.00837077387f, -0.00842073094f, -0.00846987497f, -0.00851820316f, -0.00856571086f, -0.00861239061f, + -0.00865824241f, -0.00870325882f, -0.00874743797f, -0.00879077241f, -0.00883325841f, -0.00887489505f, -0.00891567394f, -0.00895559601f, -0.00899465475f, -0.00903284643f, + -0.00907016639f, -0.00910661276f, -0.00914218184f, -0.00917686988f, -0.00921067316f, -0.00924358703f, -0.00927561242f, -0.00930674374f, -0.00933697633f, -0.00936631020f, + -0.00939473975f, -0.00942226499f, -0.00944888219f, -0.00947458949f, -0.00949938316f, -0.00952326041f, -0.00954621937f, -0.00956825912f, -0.00958937779f, -0.00960957073f, + -0.00962883793f, -0.00964717567f, -0.00966458581f, -0.00968106370f, -0.00969660748f, -0.00971121807f, -0.00972489174f, -0.00973762851f, -0.00974942744f, -0.00976028573f, + -0.00977020338f, -0.00977917947f, -0.00978721306f, -0.00979430322f, -0.00980044995f, -0.00980565138f, -0.00980990846f, -0.00981321931f, -0.00981558487f, -0.00981700420f +}; + +const float Stereo_dmx_s_wnd_coef_eps_48k[L_FRAME48k * 3 / 4] = { + 0.00000000f, 4.28365238e-05f, 8.56712068e-05f, 0.000128502230f, 0.000171327745f, 0.000214145897f, 0.000256954925f, 0.000299752894f, 0.000342538056f, 0.000385308522f, + 0.000428062514f, 0.000470798172f, 0.000513513631f, 0.000556207087f, 0.000598876737f, 0.000641520717f, 0.000684137223f, 0.000726724451f, 0.000769280537f, 0.000811803620f, + 0.000854292011f, 0.000896743732f, 0.000939157035f, 0.000981530058f, 0.00102386123f, 0.00106614840f, 0.00110838993f, 0.00115058408f, 0.00119272876f, 0.00123482244f, + 0.00127686327f, 0.00131884927f, 0.00136077893f, 0.00140265026f, 0.00144446141f, 0.00148621085f, 0.00152789650f, 0.00156951661f, 0.00161106954f, 0.00165255368f, + 0.00169396668f, 0.00173530739f, 0.00177657383f, 0.00181776390f, 0.00185887620f, 0.00189990876f, 0.00194086006f, 0.00198172848f, 0.00202251156f, 0.00206320849f, + 0.00210381625f, 0.00214433460f, 0.00218476099f, 0.00222509354f, 0.00226533110f, 0.00230547134f, 0.00234551285f, 0.00238545402f, 0.00242529274f, 0.00246502785f, + 0.00250465749f, 0.00254417956f, 0.00258359266f, 0.00262289518f, 0.00266208523f, 0.00270116120f, 0.00274012191f, 0.00277896458f, 0.00281768874f, 0.00285629183f, + 0.00289477292f, 0.00293312967f, 0.00297136116f, 0.00300946506f, 0.00304743997f, 0.00308528449f, 0.00312299700f, 0.00316057540f, 0.00319801876f, 0.00323532475f, + 0.00327249244f, 0.00330952019f, 0.00334640569f, 0.00338314800f, 0.00341974548f, 0.00345619628f, 0.00349249900f, 0.00352865248f, 0.00356465438f, 0.00360050355f, + 0.00363619882f, 0.00367173832f, 0.00370712043f, 0.00374234351f, 0.00377740664f, 0.00381230796f, 0.00384704559f, 0.00388161885f, 0.00391602563f, 0.00395026430f, + 0.00398433441f, 0.00401823362f, 0.00405196054f, 0.00408551423f, 0.00411889236f, 0.00415209495f, 0.00418511871f, 0.00421796367f, 0.00425062794f, 0.00428310968f, + 0.00431540888f, 0.00434752228f, 0.00437944988f, 0.00441118982f, 0.00444274070f, 0.00447410159f, 0.00450527016f, 0.00453624642f, 0.00456702849f, 0.00459761405f, + 0.00462800311f, 0.00465819426f, 0.00468818564f, 0.00471797585f, 0.00474756397f, 0.00477694906f, 0.00480613019f, 0.00483510410f, 0.00486387173f, 0.00489243073f, + 0.00492078019f, 0.00494891917f, 0.00497684581f, 0.00500455918f, 0.00503205787f, 0.00505934143f, 0.00508640893f, 0.00511325756f, 0.00513988733f, 0.00516629731f, + 0.00519248564f, 0.00521845184f, 0.00524419453f, 0.00526971230f, 0.00529500423f, 0.00532006938f, 0.00534490682f, 0.00536951516f, 0.00539389346f, 0.00541804079f, + 0.00544195622f, 0.00546563789f, 0.00548908627f, 0.00551229948f, 0.00553527568f, 0.00555801531f, 0.00558051746f, 0.00560277933f, 0.00562480185f, 0.00564658362f, + 0.00566812325f, 0.00568941981f, 0.00571047375f, 0.00573128136f, 0.00575184496f, 0.00577216130f, 0.00579223083f, 0.00581205217f, 0.00583162485f, 0.00585094700f, + 0.00587001862f, 0.00588883879f, 0.00590740750f, 0.00592572242f, 0.00594378356f, 0.00596159045f, 0.00597914122f, 0.00599643635f, 0.00601347443f, 0.00603025546f, + 0.00604677759f, 0.00606304128f, 0.00607904466f, 0.00609478820f, 0.00611026958f, 0.00612549018f, 0.00614044815f, 0.00615514303f, 0.00616957434f, 0.00618374115f, + 0.00619764347f, 0.00621127989f, 0.00622465089f, 0.00623775460f, 0.00625059102f, 0.00626316015f, 0.00627546059f, 0.00628749235f, 0.00629925495f, 0.00631074747f, + 0.00632196991f, 0.00633292133f, 0.00634360174f, 0.00635401066f, 0.00636414625f, 0.00637401035f, 0.00638360064f, 0.00639291806f, 0.00640196120f, 0.00641073054f, + 0.00641922513f, 0.00642744405f, 0.00643538870f, 0.00644305674f, 0.00645044958f, 0.00645756535f, 0.00646440545f, 0.00647096802f, 0.00647725351f, 0.00648326147f, + 0.00648899190f, 0.00649444386f, 0.00649961783f, 0.00650451379f, 0.00650913082f, 0.00651346892f, 0.00651752809f, 0.00652130833f, 0.00652480870f, 0.00652803015f, + 0.00653097173f, 0.00653363345f, 0.00653601484f, 0.00653811684f, 0.00653993897f, 0.00654148031f, 0.00654274225f, 0.00654372340f, 0.00654442422f, 0.00654484471f, + 0.00654498488f, 0.00654484471f, 0.00654442422f, 0.00654372340f, 0.00654274225f, 0.00654148031f, 0.00653993897f, 0.00653811684f, 0.00653601484f, 0.00653363345f, + 0.00653097173f, 0.00652802968f, 0.00652480870f, 0.00652130833f, 0.00651752809f, 0.00651346892f, 0.00650913082f, 0.00650451332f, 0.00649961783f, 0.00649444386f, + 0.00648899190f, 0.00648326147f, 0.00647725351f, 0.00647096802f, 0.00646440499f, 0.00645756535f, 0.00645044912f, 0.00644305674f, 0.00643538870f, 0.00642744405f, + 0.00641922466f, 0.00641073054f, 0.00640196120f, 0.00639291806f, 0.00638360064f, 0.00637400988f, 0.00636414625f, 0.00635401020f, 0.00634360174f, 0.00633292086f, + 0.00632196991f, 0.00631074747f, 0.00629925495f, 0.00628749235f, 0.00627546012f, 0.00626315968f, 0.00625059055f, 0.00623775413f, 0.00622465042f, 0.00621127989f, + 0.00619764347f, 0.00618374115f, 0.00616957434f, 0.00615514303f, 0.00614044769f, 0.00612549018f, 0.00611027004f, 0.00609478774f, 0.00607904419f, 0.00606304081f, + 0.00604677759f, 0.00603025500f, 0.00601347489f, 0.00599643635f, 0.00597914122f, 0.00596158998f, 0.00594378309f, 0.00592572149f, 0.00590740703f, 0.00588883879f, + 0.00587001862f, 0.00585094653f, 0.00583162392f, 0.00581205124f, 0.00579223037f, 0.00577216130f, 0.00575184496f, 0.00573128182f, 0.00571047282f, 0.00568941981f, + 0.00566812325f, 0.00564658316f, 0.00562480185f, 0.00560277933f, 0.00558051653f, 0.00555801531f, 0.00553527661f, 0.00551229948f, 0.00548908627f, 0.00546563789f, + 0.00544195622f, 0.00541804079f, 0.00539389299f, 0.00536951469f, 0.00534490682f, 0.00532006891f, 0.00529500330f, 0.00526971091f, 0.00524419360f, 0.00521845091f, + 0.00519248564f, 0.00516629778f, 0.00513988733f, 0.00511325756f, 0.00508640800f, 0.00505934190f, 0.00503205787f, 0.00500455871f, 0.00497684488f, 0.00494891871f, + 0.00492077926f, 0.00489242980f, 0.00486387173f, 0.00483510457f, 0.00480612973f, 0.00477694906f, 0.00474756444f, 0.00471797585f, 0.00468818471f, 0.00465819333f, + 0.00462800311f, 0.00459761359f, 0.00456702709f, 0.00453624595f, 0.00450526970f, 0.00447410066f, 0.00444273977f, 0.00441119028f, 0.00437944988f, 0.00434752181f, + 0.00431540795f, 0.00428310968f, 0.00425062748f, 0.00421796273f, 0.00418511871f, 0.00415209448f, 0.00411889143f, 0.00408551283f, 0.00405196007f, 0.00401823269f, + 0.00398433302f, 0.00395026430f, 0.00391602563f, 0.00388161885f, 0.00384704513f, 0.00381230796f, 0.00377740664f, 0.00374234305f, 0.00370711950f, 0.00367173809f, + 0.00363619835f, 0.00360050285f, 0.00356465275f, 0.00352865178f, 0.00349249784f, 0.00345619605f, 0.00341974595f, 0.00338314800f, 0.00334640522f, 0.00330951903f, + 0.00327249290f, 0.00323532452f, 0.00319801806f, 0.00316057424f, 0.00312299654f, 0.00308528380f, 0.00304743880f, 0.00300946319f, 0.00297135999f, 0.00293312967f, + 0.00289477245f, 0.00285629253f, 0.00281768874f, 0.00277896435f, 0.00274012075f, 0.00270116120f, 0.00266208476f, 0.00262289424f, 0.00258359103f, 0.00254417886f, + 0.00250465632f, 0.00246502645f, 0.00242529227f, 0.00238545449f, 0.00234551262f, 0.00230547064f, 0.00226533134f, 0.00222509331f, 0.00218476006f, 0.00214433344f, + 0.00210381625f, 0.00206320756f, 0.00202251016f, 0.00198172801f, 0.00194085937f, 0.00189990760f, 0.00185887585f, 0.00181776448f, 0.00177657383f, 0.00173530704f, + 0.00169396598f, 0.00165255368f, 0.00161106919f, 0.00156951568f, 0.00152789650f, 0.00148621027f, 0.00144446036f, 0.00140264863f, 0.00136077835f, 0.00131884834f, + 0.00127686316f, 0.00123482186f, 0.00119272911f, 0.00115058396f, 0.00110838923f, 0.00106614875f, 0.00102386111f, 0.000981529476f, 0.000939155812f, 0.000896743557f, + 0.000854291196f, 0.000811802340f, 0.000769278675f, 0.000726723636f, 0.000684137398f, 0.000641520426f, 0.000598877436f, 0.000556207204f, 0.000513513223f, 0.000470797240f, + 0.000428062631f, 0.000385308114f, 0.000342537096f, 0.000299751409f, 0.000256954430f, 0.000214144908f, 0.000171326188f, 0.000128500149f, 8.56717088e-05f, 4.28364874e-05f, + -5.72180747e-10f, -4.28360690e-05f, -8.56712868e-05f, -0.000128502856f, -0.000171328895f, -0.000214146057f, -0.000256955565f, -0.000299754087f, -0.000342539803f, -0.000385309249f, + -0.000428063737f, -0.000470799918f, -0.000513512816f, -0.000556206855f, -0.000598876970f, -0.000641521532f, -0.000684137049f, -0.000726724742f, -0.000769281352f, -0.000811805017f, + -0.000854292419f, -0.000896744605f, -0.000939158490f, -0.000981530524f, -0.00102386216f, -0.00106614991f, -0.00110839040f, -0.00115058350f, -0.00119272876f, -0.00123482291f, + -0.00127686432f, -0.00131884939f, -0.00136077951f, -0.00140265131f, -0.00144446141f, -0.00148621143f, -0.00152789755f, -0.00156951835f, -0.00161107024f, -0.00165255321f, + -0.00169396691f, -0.00173530797f, -0.00177657336f, -0.00181776413f, -0.00185887702f, -0.00189990853f, -0.00194086053f, -0.00198172918f, -0.00202251296f, -0.00206320873f, + -0.00210381718f, -0.00214433600f, -0.00218476262f, -0.00222509308f, -0.00226533087f, -0.00230547180f, -0.00234551216f, -0.00238545402f, -0.00242529344f, -0.00246502901f, + -0.00250465726f, -0.00254418002f, -0.00258359360f, -0.00262289657f, -0.00266208570f, -0.00270116236f, -0.00274012331f, -0.00277896388f, -0.00281768828f, -0.00285629206f, + -0.00289477338f, -0.00293312944f, -0.00297136139f, -0.00300946552f, -0.00304744113f, -0.00308528473f, -0.00312299770f, -0.00316057657f, -0.00319802039f, -0.00323532545f, + -0.00327249360f, -0.00330952019f, -0.00334640499f, -0.00338314800f, -0.00341974548f, -0.00345619721f, -0.00349249900f, -0.00352865248f, -0.00356465508f, -0.00360050471f, + -0.00363619928f, -0.00367173925f, -0.00370712159f, -0.00374234398f, -0.00377740758f, -0.00381230772f, -0.00384704629f, -0.00388161838f, -0.00391602563f, -0.00395026524f, + -0.00398433534f, -0.00401823409f, -0.00405196147f, -0.00408551469f, -0.00411889283f, -0.00415209495f, -0.00418511964f, -0.00421796506f, -0.00425062841f, -0.00428310968f, + -0.00431540888f, -0.00434752274f, -0.00437944988f, -0.00441119028f, -0.00444274163f, -0.00447410159f, -0.00450527063f, -0.00453624688f, -0.00456702895f, -0.00459761452f, + -0.00462800404f, -0.00465819519f, -0.00468818611f, -0.00471797585f, -0.00474756444f, -0.00477694953f, -0.00480612973f, -0.00483510410f, -0.00486387173f, -0.00489243167f, + -0.00492078019f, -0.00494891917f, -0.00497684628f, -0.00500456011f, -0.00503205974f, -0.00505934376f, -0.00508640893f, -0.00511325803f, -0.00513988826f, -0.00516629638f, + -0.00519248517f, -0.00521845184f, -0.00524419453f, -0.00526971230f, -0.00529500470f, -0.00532007031f, -0.00534490822f, -0.00536951516f, -0.00539389392f, -0.00541804126f, + -0.00544195529f, -0.00546563743f, -0.00548908627f, -0.00551229948f, -0.00553527614f, -0.00555801624f, -0.00558051793f, -0.00560278073f, -0.00562480185f, -0.00564658362f, + -0.00566812325f, -0.00568942074f, -0.00571047375f, -0.00573128276f, -0.00575184450f, -0.00577216130f, -0.00579223130f, -0.00581205264f, -0.00583162485f, -0.00585094653f, + -0.00587001862f, -0.00588883925f, -0.00590740610f, -0.00592572149f, -0.00594378309f, -0.00596158998f, -0.00597914122f, -0.00599643681f, -0.00601347489f, -0.00603025593f, + -0.00604677759f, -0.00606304081f, -0.00607904466f, -0.00609478820f, -0.00611027051f, -0.00612549065f, -0.00614044908f, -0.00615514303f, -0.00616957434f, -0.00618374161f, + -0.00619764347f, -0.00621128036f, -0.00622465089f, -0.00623775553f, -0.00625059241f, -0.00626316015f, -0.00627546106f, -0.00628749281f, -0.00629925542f, -0.00631074747f, + -0.00632197037f, -0.00633292180f, -0.00634360127f, -0.00635400973f, -0.00636414625f, -0.00637400988f, -0.00638360064f, -0.00639291806f, -0.00640196120f, -0.00641073007f, + -0.00641922466f, -0.00642744405f, -0.00643538870f, -0.00644305721f, -0.00645045005f, -0.00645756582f, -0.00646440592f, -0.00647096802f, -0.00647725351f, -0.00648326147f, + -0.00648899190f, -0.00649444433f, -0.00649961829f, -0.00650451379f, -0.00650913082f, -0.00651346892f, -0.00651752809f, -0.00652130833f, -0.00652480870f, -0.00652803015f, + -0.00653097173f, -0.00653363345f, -0.00653601484f, -0.00653811684f, -0.00653993897f, -0.00654148031f, -0.00654274225f, -0.00654372340f, -0.00654442422f, -0.00654484471f +}; +#endif const float Stereo_dmx_s_wnd_coef_16k[L_FRAME16k >> 4] = { 0.00154133327f, 0.0138150426f, 0.0380602330f, 0.0736799166f, 0.119797014f, 0.175276011f, 0.238750681f, 0.308658302f, 0.383277327f, 0.460770488f, diff --git a/lib_enc/ivas_rom_enc.h b/lib_enc/ivas_rom_enc.h index 8bcad95506..2a4f71b8b9 100644 --- a/lib_enc/ivas_rom_enc.h +++ b/lib_enc/ivas_rom_enc.h @@ -120,6 +120,11 @@ extern const uint16_t ECSQ_tab_vals[ECSQ_PARAM_COUNT - 1][1 + ECSQ_TAB_VALS_SIZE * Stereo downmix to EVS ROM tables *----------------------------------------------------------------------------------*/ +#ifndef NTT_REMOVE_EPS_ROM +extern const float Stereo_dmx_s_wnd_coef_eps_16k[L_FRAME16k * 3 / 4]; +extern const float Stereo_dmx_s_wnd_coef_eps_32k[L_FRAME32k * 3 / 4]; +extern const float Stereo_dmx_s_wnd_coef_eps_48k[L_FRAME48k * 3 / 4]; +#endif extern const float Stereo_dmx_s_wnd_coef_16k[L_FRAME16k >> 4]; extern const float Stereo_dmx_s_wnd_coef_32k[L_FRAME32k >> 4]; extern const float Stereo_dmx_s_wnd_coef_48k[L_FRAME48k >> 4]; diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index 40b502fd70..b267cd2e66 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -45,13 +45,10 @@ #endif #include "wmops.h" -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*-----------------------------------------------------------------------* * Local function prototypes *-----------------------------------------------------------------------*/ - static void ivas_sba_dmx_enc( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t input_frame ); -#endif /*-------------------------------------------------------------------* * ivas_sba_getTCs() @@ -65,28 +62,18 @@ void ivas_sba_getTCs( const int16_t input_frame /* i : frame length */ ) { - ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar, input_frame ); - -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - st_ivas->nchan_transport = ivas_get_sba_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order ); - - if ( st_ivas->nchan_transport >= 3 ) - { - /*convert WYZX downmix to WYXZ*/ - int16_t i = 0; - float temp; - for ( i = 0; i < input_frame; i++ ) - { - temp = sba_data[2][i]; - sba_data[2][i] = sba_data[3][i]; - sba_data[3][i] = temp; - } - } - +#ifndef SBA_ORDER_BITSTREAM + ivas_sba_zero_vert_comp( sba_data, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar, input_frame ); #else + ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar, input_frame ); +#endif if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { +#ifndef SBA_ORDER_BITSTREAM + st_ivas->nchan_transport = ivas_get_spar_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); +#else st_ivas->nchan_transport = ivas_get_spar_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order ); +#endif if ( st_ivas->nchan_transport >= 3 ) { /*convert WYZX downmix to WYXZ*/ @@ -102,14 +89,13 @@ void ivas_sba_getTCs( } else { - st_ivas->nchan_transport = ivas_dirac_getNumTransportChannels( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - /* do nothing; simply use omni */ +#ifndef SBA_ORDER_BITSTREAM + st_ivas->nchan_transport = ivas_dirac_getNumTransportChannels( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); #else - ivas_sba_dmx_enc( sba_data, st_ivas->nchan_transport, input_frame ); + st_ivas->nchan_transport = ivas_dirac_getNumTransportChannels( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); #endif + ivas_sba_dmx_enc( sba_data, st_ivas->nchan_transport, input_frame ); } -#endif #ifdef DEBUG_MODE_DIRAC for ( int16_t n = 0; n < st_ivas->nchan_transport; n++ ) @@ -130,7 +116,6 @@ void ivas_sba_getTCs( } -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*-------------------------------------------------------------------* * ivas_sba_dmx_enc() * @@ -229,7 +214,7 @@ static void ivas_sba_dmx_enc( return; } -#endif + /*-------------------------------------------------------------------* * ivas_sba_enc_reconfigure() @@ -264,8 +249,6 @@ ivas_error ivas_sba_enc_reconfigure( nSCE_old = st_ivas->nSCE; ind_list_metadata = NULL; - st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); - ivas_dirac_enc_reconfigure( st_ivas ); ntransport = st_ivas->nchan_transport; diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 4a4c24fa4e..942dd14c99 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -199,20 +199,14 @@ ivas_error ivas_sce_enc( * Reset metadata *----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE - reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode ); -#else - reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode, IVAS_SCE ); -#endif + reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode, + IVAS_SCE ); /*----------------------------------------------------------------* * Write IVAS format signaling in SID frames *----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE - if ( st->core_brate == SID_2k40 ) -#else + if ( st->core_brate == SID_2k40 && ( ivas_format != SBA_FORMAT || st_ivas->sba_mode != SBA_MODE_SPAR ) ) -#endif { ivas_write_format_sid( ivas_format, IVAS_SCE, st->hBstr ); } @@ -238,11 +232,13 @@ ivas_error ivas_sce_enc( * Encoder *----------------------------------------------------------------*/ - if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, flag_16k_smc ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, + flag_16k_smc ) ) != IVAS_ERR_OK ) { return error; } + /*----------------------------------------------------------------* * Common updates *----------------------------------------------------------------*/ diff --git a/lib_enc/ivas_sns_enc.c b/lib_enc/ivas_sns_enc.c index 87019b8d91..1aeac19c57 100644 --- a/lib_enc/ivas_sns_enc.c +++ b/lib_enc/ivas_sns_enc.c @@ -43,7 +43,7 @@ #endif #include "wmops.h" -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ /*------------------------------------------------------------------- diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 727f4c04cd..03e16833e3 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -79,23 +79,26 @@ ivas_error ivas_spar_enc_open( } input_Fs = hEncoderConfig->input_Fs; +#ifndef SBA_ORDER_BITSTREAM + sba_order_internal = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); +#else sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif nchan_inp = ivas_sba_get_nchan_metadata( sba_order_internal ); assert( nchan_inp <= hEncoderConfig->nchan_inp ); ivas_total_brate = hEncoderConfig->ivas_total_brate; - -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - nchan_transport = ivas_get_sba_num_TCs( hEncoderConfig->ivas_total_brate, sba_order_internal ); -#else nchan_transport = ivas_get_spar_num_TCs( hEncoderConfig->ivas_total_brate, sba_order_internal ); -#endif // bw = ivas_get_bw_idx_from_sample_rate(pCfg->input_Fs); table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order_internal, SPAR_CONFIG_BW, NULL, NULL ); // ivas_set_bitrate_config(&hSpar->hMdEnc->spar_md_cfg, table_idx); /* MD handle */ +#ifndef SBA_ORDER_BITSTREAM + if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig ) ) != IVAS_ERR_OK ) +#else if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig, sba_order_internal ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -146,9 +149,12 @@ ivas_error ivas_spar_enc_open( /*-----------------------------------------------------------------* * Configuration - set SPAR high-level parameters *-----------------------------------------------------------------*/ - +#ifdef SBA_ORDER_BITSTREAM ivas_spar_config( hEncoderConfig->ivas_total_brate, min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ), &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &hSpar->core_nominal_brate, -1 ); +#else + ivas_spar_config( hEncoderConfig->ivas_total_brate, min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ), + &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &hSpar->core_nominal_brate, -1 ); #endif if ( st_ivas->nchan_transport == 1 ) @@ -284,6 +290,7 @@ ivas_error ivas_spar_enc( ) { ENCODER_CONFIG_HANDLE hEncoderConfig; + int16_t i, ch; ivas_error error; error = IVAS_ERR_OK; @@ -295,9 +302,22 @@ ivas_error ivas_spar_enc( return error; } + /* normalize input channels */ + for ( ch = 0; ch < hEncoderConfig->nchan_inp; ch++ ) + { + for ( i = 0; i < input_frame; i++ ) + { + data_f[ch][i] *= ( 1.0 / PCM16_TO_FLT_FAC ); + } + } + if ( hEncoderConfig->sba_planar ) { +#ifndef SBA_ORDER_BITSTREAM + ivas_sba_zero_vert_comp( data_f, hEncoderConfig->sba_order, hEncoderConfig->sba_planar, input_frame ); +#else ivas_sba_zero_vert_comp( data_f, st_ivas->sba_analysis_order, hEncoderConfig->sba_planar, input_frame ); +#endif } if ( ( error = ivas_spar_enc_process( st_ivas, hEncoderConfig, hMetaData, st_ivas->hSpar->front_vad_flag, data_f ) ) != IVAS_ERR_OK ) @@ -307,7 +327,11 @@ ivas_error ivas_spar_enc( if ( hEncoderConfig->sba_planar ) { +#ifndef SBA_ORDER_BITSTREAM + ivas_sba_zero_vert_comp( data_f, hEncoderConfig->sba_order, hEncoderConfig->sba_planar, input_frame ); // TODO tmu: do we need a second call to this function ? +#else ivas_sba_zero_vert_comp( data_f, st_ivas->sba_analysis_order, hEncoderConfig->sba_planar, input_frame ); // TODO tmu: do we need a second call to this function ? +#endif } *nb_bits_metadata = hMetaData->nb_bits_tot; @@ -433,7 +457,11 @@ static ivas_error ivas_spar_enc_process( num_del_samples = hSpar->hFbMixer->fb_cfg->fb_latency; input_frame = (int16_t) ( input_Fs / FRAMES_PER_SEC ); +#ifndef SBA_ORDER_BITSTREAM + sba_order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); +#else sba_order = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); +#endif nchan_inp = ivas_sba_get_nchan_metadata( sba_order ); assert( nchan_inp <= hEncoderConfig->nchan_inp ); @@ -533,7 +561,7 @@ static ivas_error ivas_spar_enc_process( set_zero( avg_dir, 3 ); energySum = 0.0f; - /* combine all DirAC bands except the last one, handle last band separately, last band covers BW above WB */ + /*combine all dirac bands except the last one, handle last band separately, last band covers BW above WB*/ for ( j = 0; j < orig_dirac_bands - 1; j++ ) { ivas_qmetadata_azimuth_elevation_to_direction_vector( hQMetaData->q_direction[0].band_data[j].azimuth[i], hQMetaData->q_direction[0].band_data[j].elevation[i], &dir[0] ); @@ -603,7 +631,7 @@ static ivas_error ivas_spar_enc_process( /* use just VAD function to get VAD flags */ dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; - dtx_silence_mode = 0; // VE2DB: this variable is always 0 - please review or remove it + dtx_silence_mode = 0; bwidth = ivas_get_bw_idx_from_sample_rate( input_Fs ); bwidth = min( bwidth, hEncoderConfig->max_bwidth ); @@ -672,9 +700,12 @@ static ivas_error ivas_spar_enc_process( md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); md_in_buf.dtx_vad = dtx_vad; +#ifndef SBA_ORDER_BITSTREAM + ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode ); +#else ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); - - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete +#endif + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; float ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; @@ -875,13 +906,16 @@ static ivas_error ivas_spar_enc_process( order = remix_order_set[hSpar->hMdEnc->spar_md_cfg.remix_unmix_order]; - for ( j = 0; j < nchan_transport; j++ ) - { - mvr2r( p_pcm_tmp[j], data_f[order[j]], input_frame ); - } - for ( ; j < IVAS_SPAR_MAX_DMX_CHS; j++ ) + for ( i = 0; i < input_frame; i++ ) { - set_f( data_f[order[j]], 0.0f, input_frame ); + for ( j = 0; j < nchan_transport; j++ ) + { + data_f[order[j]][i] = p_pcm_tmp[j][i] * PCM16_TO_FLT_FAC; + } + for ( ; j < IVAS_SPAR_MAX_DMX_CHS; j++ ) + { + data_f[order[j]][i] = 0; + } } wmops_sub_end(); diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index ed0d3f7e7e..dc7c3677dd 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -72,11 +72,11 @@ static void ivas_band_mixer( float *cov_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], static void ivas_get_band_differential_index( ivas_band_coeffs_ind_t *pBand_idx, const int16_t q_levels[2], const int16_t one_sided, const int16_t nB, const int16_t complex_cov, const int16_t dim, const ivas_coeffs_type_t coeff_type ); -static void ivas_get_huffman_coded_bs( ivas_spar_md_enc_state_t *hMdEnc, BSTR_ENC_HANDLE hMetaData, const int16_t nB, const int16_t qsi, const int16_t planarCP ); +static void ivas_get_huffman_coded_bs( ivas_spar_md_enc_state_t *pState, BSTR_ENC_HANDLE hMetaData, const int16_t nB, const int16_t qsi, const int16_t planarCP ); -static void ivas_get_arith_coded_bs( ivas_spar_md_enc_state_t *hMdEnc, BSTR_ENC_HANDLE hMetaData, const int16_t *pDo_diff, const int16_t bands_bw, const int16_t nB, const int16_t qsi, const int16_t planarCP ); +static void ivas_get_arith_coded_bs( ivas_spar_md_enc_state_t *pState, BSTR_ENC_HANDLE hMetaData, const int16_t *pDo_diff, const int16_t bands_bw, const int16_t nB, const int16_t qsi, const int16_t planarCP ); -static ivas_error ivas_spar_set_enc_config( ivas_spar_md_enc_state_t *hMdEnc, int16_t *max_freq_per_chan, const int16_t nchan_transport, float *pFC, const int16_t nchan_inp ); +static ivas_error ivas_spar_set_enc_config( ivas_spar_md_enc_state_t *pState, int16_t *max_freq_per_chan, const int16_t nchan_transport, float *pFC, const int16_t nchan_inp ); static void ivas_select_next_strat( ivas_strats_t prior_strat, ivas_strats_t cs[MAX_QUANT_STRATS], const int16_t dmx_switch, const int16_t dtx_vad ); @@ -84,9 +84,17 @@ static void ivas_store_prior_coeffs( ivas_spar_md_enc_state_t *hMdEnc, const int static void ivas_write_parameter_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); -static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *hMdEnc, const ENCODER_CONFIG_HANDLE hEncoderConfig, const int16_t sba_order ); -static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, const float *pValues, const int16_t ndm, int16_t *pIndex, const int16_t dim1, float *pQuant ); -static void ivas_quant_p_per_band_dtx( float *pP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float *pP_out, const int16_t num_ch ); +static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *pState, const ENCODER_CONFIG_HANDLE hEncoderConfig +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif +); + +static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, float **ppValues, const int16_t ndm, int16_t **ppIndex, const int16_t dim1, float **ppQuant ); + +static void ivas_quant_p_per_band_dtx( float **ppP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float **ppP_out, const int16_t num_ch ); + static void ivas_write_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, BSTR_ENC_HANDLE hMetaData, int16_t *num_dmx, int16_t *num_dec, const int16_t num_bands ); static void ivas_quant_p_per_band( ivas_band_coeffs_t *pband_coeffs, ivas_band_coeffs_ind_t *pBand_coeffs_idx, ivas_quant_strat_t *pQs, const int16_t num_ch ); @@ -103,24 +111,35 @@ static void ivas_quant_pred_coeffs_per_band( ivas_band_coeffs_t *pband_coeffs, i *------------------------------------------------------------------------*/ ivas_error ivas_spar_md_enc_open( - ivas_spar_md_enc_state_t **hMdEnc_in, /* i/o: SPAR MD encoder handle */ - const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ - const int16_t sba_order /* i : Ambisonic (SBA) order */ + ivas_spar_md_enc_state_t **hMdEnc_in, /* i/o: SPAR MD encoder handle */ + const ENCODER_CONFIG_HANDLE hEncoderConfig /* i : configuration structure */ +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif ) { ivas_spar_md_enc_state_t *hMdEnc; ivas_error error; +#ifndef SBA_ORDER_BITSTREAM + int16_t num_channels, i, j, order; +#else int16_t num_channels, i, j; - +#endif +#ifndef SBA_ORDER_BITSTREAM + order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); +#endif error = IVAS_ERR_OK; if ( ( hMdEnc = (ivas_spar_md_enc_state_t *) count_malloc( sizeof( ivas_spar_md_enc_state_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR MD encoder" ); } - +#ifndef SBA_ORDER_BITSTREAM + num_channels = 2 * order + 2; +#else num_channels = 2 * sba_order + 2; - +#endif if ( ( hMdEnc->spar_md.band_coeffs = (ivas_band_coeffs_t *) count_malloc( IVAS_MAX_NUM_BANDS * sizeof( ivas_band_coeffs_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for band_coeffs in SPAR MD" ); @@ -200,8 +219,11 @@ ivas_error ivas_spar_md_enc_open( } } } - +#ifndef SBA_ORDER_BITSTREAM + if ( ( error = ivas_spar_md_enc_init( hMdEnc, hEncoderConfig ) ) != IVAS_ERR_OK ) +#else if ( ( error = ivas_spar_md_enc_init( hMdEnc, hEncoderConfig, sba_order ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -301,26 +323,34 @@ void ivas_spar_md_enc_close( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_md_enc_init() * - * SPAR MD encoder initialization + * Init call for md gen process *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_spar_md_enc_init( - ivas_spar_md_enc_state_t *hMdEnc, /* o : MD encoder handle */ - const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ - const int16_t sba_order /* i : Ambisonic (SBA) order */ + ivas_spar_md_enc_state_t *pState, /* o : MD encoder handle */ + const ENCODER_CONFIG_HANDLE hEncoderConfig /* i : configuration structure */ +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif ) { float pFC[IVAS_MAX_NUM_BANDS]; int16_t table_idx; float PR_minmax[2]; +#ifndef SBA_ORDER_BITSTREAM + int16_t sba_order; +#endif int16_t num_channels, i, j, k; - +#ifndef SBA_ORDER_BITSTREAM + sba_order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); +#endif num_channels = ivas_sba_get_nchan_metadata( sba_order ); table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); - hMdEnc->spar_md_cfg.gen_bs = 1; - ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, SPAR_DIRAC_SPLIT_START_BAND ); + pState->spar_md_cfg.gen_bs = 1; + ivas_spar_set_bitrate_config( &pState->spar_md_cfg, table_idx, SPAR_DIRAC_SPLIT_START_BAND ); /* get FB coefficients */ for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) @@ -328,39 +358,39 @@ static ivas_error ivas_spar_md_enc_init( pFC[i] = ivas_fb_fcs_12band_1ms[i] * hEncoderConfig->input_Fs * 0.5f; } - ivas_spar_set_enc_config( hMdEnc, hMdEnc->spar_md_cfg.max_freq_per_chan, hMdEnc->spar_md_cfg.nchan_transport, pFC, num_channels ); + ivas_spar_set_enc_config( pState, pState->spar_md_cfg.max_freq_per_chan, pState->spar_md_cfg.nchan_transport, pFC, num_channels ); /* - if(hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) + if(pState->spar_md_cfg.quant_strat[0].C.q_levels[0] == 0 || pState->spar_md_cfg.quant_strat[0].C.q_levels[1] == 0 + || pState->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || pState->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 + || pState->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || pState->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 + || pState->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || pState->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) { - hMdEnc->spar_md_cfg.gen_bs = 0; + pState->spar_md_cfg.gen_bs = 0; } - else if(0 != hMdEnc->spar_md_cfg.gen_bs) + else if(0 != pState->spar_md_cfg.gen_bs) { - hMdEnc->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); + pState->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); } */ - if ( hMdEnc->spar_md_cfg.nchan_transport != 2 && ( ( hMdEnc->spar_md_cfg.remix_unmix_order == 1 ) || ( hMdEnc->spar_md_cfg.remix_unmix_order == 2 ) ) ) + if ( pState->spar_md_cfg.nchan_transport != 2 && ( ( pState->spar_md_cfg.remix_unmix_order == 1 ) || ( pState->spar_md_cfg.remix_unmix_order == 2 ) ) ) { return IVAS_ERR_INTERNAL; } - ivas_spar_arith_coeffs_com_init( &hMdEnc->arith_coeffs, &hMdEnc->spar_md_cfg, table_idx, ENC ); - ivas_spar_huff_coeffs_com_init( &hMdEnc->huff_coeffs, NULL, table_idx, ENC ); + ivas_spar_arith_coeffs_com_init( &pState->arith_coeffs, &pState->spar_md_cfg, table_idx, ENC ); + ivas_spar_huff_coeffs_com_init( &pState->huff_coeffs, NULL, table_idx, ENC ); if ( hEncoderConfig->Opt_DTX_ON == 1 ) { /* DTX quant init */ - PR_minmax[0] = hMdEnc->spar_md_cfg.quant_strat[0].PR.min; - PR_minmax[1] = hMdEnc->spar_md_cfg.quant_strat[0].PR.max; - ivas_spar_quant_dtx_init( &hMdEnc->spar_md, PR_minmax ); + PR_minmax[0] = pState->spar_md_cfg.quant_strat[0].PR.min; + PR_minmax[1] = pState->spar_md_cfg.quant_strat[0].PR.max; + ivas_spar_quant_dtx_init( &pState->spar_md, PR_minmax ); } - hMdEnc->spar_md_cfg.prior_strat = START; - hMdEnc->spar_md_cfg.prev_quant_idx = -1; + pState->spar_md_cfg.prior_strat = START; + pState->spar_md_cfg.prev_quant_idx = -1; for ( i = 0; i < num_channels; i++ ) { @@ -368,7 +398,7 @@ static ivas_error ivas_spar_md_enc_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - hMdEnc->mixer_mat[i][j][k] = 0; + pState->mixer_mat[i][j][k] = 0; } } } @@ -379,16 +409,16 @@ static ivas_error ivas_spar_md_enc_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - hMdEnc->cov_real[i][j][k] = 0; - hMdEnc->cov_dtx_real[i][j][k] = 0; + pState->cov_real[i][j][k] = 0; + pState->cov_dtx_real[i][j][k] = 0; } } } - ivas_clear_band_coeffs( hMdEnc->spar_md.band_coeffs, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( hMdEnc->spar_md.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( hMdEnc->spar_md_prior.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( hMdEnc->spar_md_prior.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeffs( pState->spar_md.band_coeffs, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( pState->spar_md.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( pState->spar_md_prior.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( pState->spar_md_prior.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); return IVAS_ERR_OK; } @@ -397,11 +427,11 @@ static ivas_error ivas_spar_md_enc_init( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_set_enc_config() * - * Set configuration for SPAR MD encoder + * Set configuration for SPAR MD gen *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_spar_set_enc_config( - ivas_spar_md_enc_state_t *hMdEnc, + ivas_spar_md_enc_state_t *pState, int16_t *max_freq_per_chan, const int16_t nchan_transport, float *pFC, @@ -414,29 +444,29 @@ static ivas_error ivas_spar_set_enc_config( { if ( max_freq_per_chan != NULL ) { - hMdEnc->spar_md_cfg.max_freq_per_chan[i] = ( max_freq_per_chan[i] != 0 ) ? max_freq_per_chan[i] : max_freq_per_chan[0]; + pState->spar_md_cfg.max_freq_per_chan[i] = ( max_freq_per_chan[i] != 0 ) ? max_freq_per_chan[i] : max_freq_per_chan[0]; } else { - hMdEnc->spar_md_cfg.max_freq_per_chan[i] = IVAS_SPAR_FOA_DFLT_FREQ_PER_CHAN; + pState->spar_md_cfg.max_freq_per_chan[i] = IVAS_SPAR_FOA_DFLT_FREQ_PER_CHAN; } } - hMdEnc->num_umx_ch = nchan_inp; - hMdEnc->num_decorr = nchan_inp - 1; + pState->num_umx_ch = nchan_inp; + pState->num_decorr = nchan_inp - 1; for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) { tmp_dmx_ch = 0; for ( j = 0; j < nchan_transport; j++ ) { - if ( pFC[i] < hMdEnc->spar_md_cfg.max_freq_per_chan[j] ) + if ( pFC[i] < pState->spar_md_cfg.max_freq_per_chan[j] ) { tmp_dmx_ch += 1; } } - hMdEnc->spar_md_cfg.num_dmx_chans_per_band[i] = tmp_dmx_ch; - hMdEnc->spar_md_cfg.num_decorr_per_band[i] = hMdEnc->num_umx_ch - tmp_dmx_ch; + pState->spar_md_cfg.num_dmx_chans_per_band[i] = tmp_dmx_ch; + pState->spar_md_cfg.num_decorr_per_band[i] = pState->num_umx_ch - tmp_dmx_ch; } return IVAS_ERR_OK; @@ -553,19 +583,26 @@ ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_state_t *hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ ivas_spar_md_enc_in_buf_t *pIn_buf, - BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ - const int16_t dtx_silence_mode, - const int16_t sba_order /* i : Ambisonic (SBA) order */ + BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ + const int16_t dtx_silence_mode +#ifdef SBA_ORDER_BITSTREAM + , + int16_t sba_order +#endif ) { float pred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; float dm_fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; - int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; + int16_t i, b, qsi, ndm, ndec, num_ch; int16_t j, planarCP; int16_t num_bands = pIn_buf->num_bands; int16_t dtx_vad = pIn_buf->dtx_vad; +#ifndef SBA_ORDER_BITSTREAM + int16_t active_w, nchan_transport, dmx_switch, strat, sba_order; +#else int16_t active_w, nchan_transport, dmx_switch, strat; +#endif int16_t nB, bands_bw, packed_ok = 0; ivas_strats_t cs[MAX_CODING_STRATS]; int16_t code_strat; @@ -573,11 +610,14 @@ ivas_error ivas_spar_md_enc_process( BSTR_ENC_DATA hMetaData_tmp; Indice ind_list_tmp[MAX_BITS_METADATA]; // IVAS_fmToDo: size to be optimized float Wscale[IVAS_MAX_NUM_BANDS]; - - num_quant_strats = hMdEnc->spar_md_cfg.num_quant_strats; + ivas_spar_md_enc_state_t *pState = hMdEnc; + int16_t num_quant_strats = pState->spar_md_cfg.num_quant_strats; +#ifndef SBA_ORDER_BITSTREAM + sba_order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); +#endif num_ch = ivas_sba_get_nchan_metadata( sba_order ); - active_w = hMdEnc->spar_md_cfg.active_w; - nchan_transport = hMdEnc->spar_md_cfg.nchan_transport; + active_w = pState->spar_md_cfg.active_w; + nchan_transport = pState->spar_md_cfg.nchan_transport; if ( hEncoderConfig->ivas_total_brate == BRATE_SPAR_Q_STRAT && sba_order == 1 ) { @@ -612,8 +652,8 @@ ivas_error ivas_spar_md_enc_process( bands_bw = 1; } - ivas_compute_spar_params( pIn_buf->cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, - bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); + ivas_compute_spar_params( pIn_buf->cov_real, dm_fv_re, 0, pState->mixer_mat, 0, nB, dtx_vad, num_ch, + bands_bw, active_w, &pState->spar_md_cfg, &pState->spar_md, Wscale, 0 ); for ( i = 0; i < num_ch; i++ ) { @@ -621,7 +661,7 @@ ivas_error ivas_spar_md_enc_process( { for ( b = 0; b < num_bands; b++ ) { - hMdEnc->mixer_mat_local[i][j][b] = hMdEnc->mixer_mat[i][j][b]; + hMdEnc->mixer_mat_local[i][j][b] = pState->mixer_mat[i][j][b]; } } } @@ -640,7 +680,7 @@ ivas_error ivas_spar_md_enc_process( #ifdef SPAR_HOA_DBG fprintf( stdout, "qsi = %d\n", qsi ); #endif - if ( qsi == 2 && ivas_spar_br_table_consts[hMdEnc->table_idx].usePlanarCoeff ) + if ( qsi == 2 && ivas_spar_br_table_consts[pState->table_idx].usePlanarCoeff ) { planarCP = 1; #ifdef SPAR_HOA_DBG @@ -656,18 +696,18 @@ ivas_error ivas_spar_md_enc_process( { for ( b = 0; b < num_bands; b++ ) { - ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; + ndm = pState->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; if ( ndm != num_ch ) { - ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); + ivas_calc_c_p_coeffs( &pState->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); } } } for ( b = 0; b < num_bands; b++ ) { - ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; - ndec = hMdEnc->spar_md_cfg.num_decorr_per_band[b * bands_bw]; + ndm = pState->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; + ndec = pState->spar_md_cfg.num_decorr_per_band[b * bands_bw]; if ( dtx_vad == 1 ) { @@ -678,11 +718,11 @@ ivas_error ivas_spar_md_enc_process( for (i = 0; i < ndec; i++) { - for (j = 0; j < ndec; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]);//, hMdEnc->spar_md.band_coeffs[b].P_im[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndec; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]);//, hMdEnc->spar_md.band_coeffs[b].P_im[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif @@ -701,33 +741,56 @@ ivas_error ivas_spar_md_enc_process( /*fprintf(stderr, "\n\n Planar P coefficients: band %d\n", b); for (i = 0; i < ndec; i++) { - for (j = 0; j < ndec; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]); //, hMdEnc->spar_md.band_coeffs[b].C_im[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndec; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]); //, hMdEnc->spar_md.band_coeffs[b].C_im[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif } - ivas_quant_p_per_band( &hMdEnc->spar_md.band_coeffs[b], &hMdEnc->spar_md.band_coeffs_idx[b], &hMdEnc->spar_md_cfg.quant_strat[qsi], num_ch ); + ivas_quant_p_per_band( &pState->spar_md.band_coeffs[b], &pState->spar_md.band_coeffs_idx[b], &pState->spar_md_cfg.quant_strat[qsi], num_ch ); } - ivas_quant_pred_coeffs_per_band( &hMdEnc->spar_md.band_coeffs[b], &hMdEnc->spar_md.band_coeffs_idx[b], &hMdEnc->spar_md_cfg.quant_strat[qsi], num_ch ); + ivas_quant_pred_coeffs_per_band( &pState->spar_md.band_coeffs[b], &pState->spar_md.band_coeffs_idx[b], &pState->spar_md_cfg.quant_strat[qsi], num_ch ); } else { + float **ppPred_re, **ppPred_quant, *pPred_re, *pPred_quant; + int16_t **ppPred_idx, *pPred_re_idx; if ( ndm != num_ch ) { - ivas_quant_p_per_band_dtx( hMdEnc->spar_md.band_coeffs[b].P_re, ndec, ndm, &hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[0], hMdEnc->spar_md.band_coeffs[b].P_quant_re, num_ch ); + float *P_re[IVAS_SPAR_MAX_CH - 1], *P_re_quant[IVAS_SPAR_MAX_CH - 1]; + float **ppP_re = (float **) &P_re[0]; + float **ppP_re_quant = (float **) &P_re_quant[0]; + int16_t *ppP_idx = &pState->spar_md.band_coeffs_idx[b].decd_index_re[0]; + + for ( i = 0; i < ndec; i++ ) + { + ppP_re[i] = pState->spar_md.band_coeffs[b].P_re; + ppP_re_quant[i] = pState->spar_md.band_coeffs[b].P_quant_re; + } + + ivas_quant_p_per_band_dtx( ppP_re, ndec, ndm, ppP_idx, ppP_re_quant, num_ch ); } + + ppPred_idx = (int16_t **) &pPred_re_idx; + ppPred_re = (float **) &pPred_re; + ppPred_quant = (float **) &pPred_quant; + + ppPred_re[0] = pState->spar_md.band_coeffs[b].pred_re; + ppPred_idx[0] = pState->spar_md.band_coeffs_idx[b].pred_index_re; + ppPred_quant[0] = pState->spar_md.band_coeffs[b].pred_quant_re; + for ( i = 0; i < num_ch - 1; i++ ) { - hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i] = 0; + pState->spar_md.band_coeffs[b].pred_quant_re[i] = 0; } - ivas_spar_quant_pred_coeffs_dtx( &hMdEnc->spar_md, hMdEnc->spar_md.band_coeffs[b].pred_re, ndm, hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re, num_ch - 1, hMdEnc->spar_md.band_coeffs[b].pred_quant_re ); + + ivas_spar_quant_pred_coeffs_dtx( &pState->spar_md, ppPred_re, ndm, ppPred_idx, num_ch - 1, ppPred_quant ); } } @@ -735,35 +798,35 @@ ivas_error ivas_spar_md_enc_process( { for ( b = 0; b < num_bands; b++ ) { - pred_coeffs_re[i][b] = Wscale[b] * hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i]; + pred_coeffs_re[i][b] = Wscale[b] * pState->spar_md.band_coeffs[b].pred_quant_re[i]; } } - ivas_create_fullr_dmx_mat( pred_coeffs_re, dm_fv_re, hMdEnc->mixer_mat, num_ch, 0, num_bands, active_w, &hMdEnc->spar_md_cfg ); + ivas_create_fullr_dmx_mat( pred_coeffs_re, dm_fv_re, pState->mixer_mat, num_ch, 0, num_bands, active_w, &pState->spar_md_cfg ); for ( b = 0; b < num_bands; b++ ) { - ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; - ndec = hMdEnc->spar_md_cfg.num_decorr_per_band[b * bands_bw]; + ndm = pState->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; + ndec = pState->spar_md_cfg.num_decorr_per_band[b * bands_bw]; for ( i = 0; i < num_ch; i++ ) { - hMdEnc->mixer_mat[0][i][b] *= Wscale[b]; + pState->mixer_mat[0][i][b] *= Wscale[b]; } if ( ( ndm != num_ch ) && ( ndm != 1 ) ) { - ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); + ivas_calc_c_p_coeffs( &pState->spar_md, pIn_buf->cov_real, 0, pState->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n C coefficients: band %d\n", b); for (i = 0; i < num_ch - ndm; i++) { - for (j = 0; j < ndm - 1; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].C_re[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndm - 1; j++) + { + fprintf(stderr, "%f, ", pState->spar_md.band_coeffs[b].C_re[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif @@ -775,7 +838,7 @@ ivas_error ivas_spar_md_enc_process( { for ( j = 0; j < ndm - 1; j++ ) { - hMdEnc->spar_md.band_coeffs[b].C_re[i][j] = 0.0f; + pState->spar_md.band_coeffs[b].C_re[i][j] = 0.0f; } } } @@ -784,24 +847,24 @@ ivas_error ivas_spar_md_enc_process( for (i = 0; i < num_ch - ndm; i++) { - for (j = 0; j < ndm - 1; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].C_re[i][j]); // , hMdEnc->spar_md.band_coeffs[band_idx].C_im[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndm - 1; j++) + { + fprintf(stderr, "%f, ", pState->spar_md.band_coeffs[b].C_re[i][j]); // , pState->spar_md.band_coeffs[band_idx].C_im[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif } - ivas_quant_c_per_band( &hMdEnc->spar_md.band_coeffs[b], &hMdEnc->spar_md.band_coeffs_idx[b], - &hMdEnc->spar_md_cfg.quant_strat[qsi], ndec, ndm ); + ivas_quant_c_per_band( &pState->spar_md.band_coeffs[b], &pState->spar_md.band_coeffs_idx[b], + &pState->spar_md_cfg.quant_strat[qsi], ndec, ndm ); #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n quantised C indexes: band %d\n", b); for (i = 0; i < ndec * (ndm-1); i++) { - fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[b].drct_index_re[i]); + fprintf(stderr, "%d, ", pState->spar_md.band_coeffs_idx[b].drct_index_re[i]); } fprintf(stderr, "\n\n");*/ #endif @@ -809,26 +872,26 @@ ivas_error ivas_spar_md_enc_process( } /* band limit downmix matrix */ - ivas_band_limit_dmx_matrix( hMdEnc, num_ch, num_bands, bands_bw ); + ivas_band_limit_dmx_matrix( pState, num_ch, num_bands, bands_bw ); /* band mixing */ if ( bands_bw > 1 ) { - ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, pIn_buf->num_bands ); + ivas_band_mixing( pState, num_ch, num_bands, nchan_transport, pIn_buf->num_bands ); } - if ( hMdEnc->spar_md_cfg.gen_bs == 0 ) + if ( pState->spar_md_cfg.gen_bs == 0 ) { break; } if ( dtx_vad == 0 ) { - ivas_write_parameter_bitstream_dtx( &hMdEnc->spar_md, hMetaData, hMdEnc->spar_md_cfg.num_dmx_chans_per_band, hMdEnc->spar_md_cfg.num_decorr_per_band, num_bands ); + ivas_write_parameter_bitstream_dtx( &pState->spar_md, hMetaData, pState->spar_md_cfg.num_dmx_chans_per_band, pState->spar_md_cfg.num_decorr_per_band, num_bands ); break; } - ivas_select_next_strat( hMdEnc->spar_md_cfg.prior_strat, cs, dmx_switch, dtx_vad ); + ivas_select_next_strat( pState->spar_md_cfg.prior_strat, cs, dmx_switch, dtx_vad ); for ( i = 0; i < MAX_CODING_STRATS; i++ ) { @@ -837,13 +900,13 @@ ivas_error ivas_spar_md_enc_process( { reset_indices_enc( &hMetaData_tmp, MAX_BITS_METADATA ); - ivas_write_parameter_bitstream( hMdEnc, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, dtx_silence_mode, strat, qsi, planarCP ); + ivas_write_parameter_bitstream( pState, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, dtx_silence_mode, strat, qsi, planarCP ); if ( hMetaData->nb_bits_tot == bit_pos_start || hMetaData_tmp.nb_bits_tot < ( hMetaData->nb_bits_tot - bit_pos_start ) ) { write_metadata_buffer( &hMetaData_tmp, hMetaData, bit_pos_start, next_ind_start, last_ind_start ); code_strat = strat; } - if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.tgt_bits_per_blk ) + if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= pState->spar_md_cfg.tgt_bits_per_blk ) { packed_ok = 1; break; @@ -856,7 +919,7 @@ ivas_error ivas_spar_md_enc_process( break; } - if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.max_bits_per_blk ) + if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= pState->spar_md_cfg.max_bits_per_blk ) { break; } @@ -869,48 +932,48 @@ ivas_error ivas_spar_md_enc_process( #ifdef SPAR_HOA_DBG /*if ( strat >= 4 ) { - for ( b = 0; b < nB; b++ ) + for ( b = 0; b < nB; b++ ) + { + b = 0; + fprintf( stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi ); + for ( i = 0; i < num_ch - 1; i++ ) { - b = 0; - fprintf( stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi ); - for ( i = 0; i < num_ch - 1; i++ ) - { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //hMdEnc->spar_md.band_coeffs[b].pred_re[i], - hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i], - hMdEnc->spar_md_prior.band_coeffs_idx[b].pred_index_re[i], - hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re[i] ); - } - fprintf( stdout, "\n\n METADATA C: band %d\n\n", b ); - int16_t k = 0; - for ( i = 0; i < ndec; i++ ) - { - for ( j = 0; j < ( ndm - 1 ); j++ ) - { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, // hMdEnc->spar_md.band_coeffs[b].C_re[i][j], - hMdEnc->spar_md.band_coeffs[b].C_quant_re[i][j], - hMdEnc->spar_md_prior.band_coeffs_idx[b].drct_index_re[k], - hMdEnc->spar_md.band_coeffs_idx[b].drct_index_re[k] ); - k++; - } - } - fprintf( stdout, "\n\n METADATA Pd: band %d\n\n", b ); - for ( i = 0; i < num_ch - ndm; i++ ) - { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //hMdEnc->spar_md.band_coeffs[b].P_re[i][i], - hMdEnc->spar_md.band_coeffs[b].P_quant_re[i][i], - hMdEnc->spar_md_prior.band_coeffs_idx[b].decd_index_re[i], - hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[i] ); - } - fprintf( stdout, "\n\n" ); + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //pState->spar_md.band_coeffs[b].pred_re[i], + pState->spar_md.band_coeffs[b].pred_quant_re[i], + pState->spar_md_prior.band_coeffs_idx[b].pred_index_re[i], + pState->spar_md.band_coeffs_idx[b].pred_index_re[i] ); + } + fprintf( stdout, "\n\n METADATA C: band %d\n\n", b ); + int16_t k = 0; + for ( i = 0; i < ndec; i++ ) + { + for ( j = 0; j < ( ndm - 1 ); j++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, // pState->spar_md.band_coeffs[b].C_re[i][j], + pState->spar_md.band_coeffs[b].C_quant_re[i][j], + pState->spar_md_prior.band_coeffs_idx[b].drct_index_re[k], + pState->spar_md.band_coeffs_idx[b].drct_index_re[k] ); + k++; + } } + fprintf( stdout, "\n\n METADATA Pd: band %d\n\n", b ); + for ( i = 0; i < num_ch - ndm; i++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //pState->spar_md.band_coeffs[b].P_re[i][i], + pState->spar_md.band_coeffs[b].P_quant_re[i][i], + pState->spar_md_prior.band_coeffs_idx[b].decd_index_re[i], + pState->spar_md.band_coeffs_idx[b].decd_index_re[i] ); + } + fprintf( stdout, "\n\n" ); + } }*/ b = 0; - ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; + ndm = pState->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; fprintf( stdout, "\n\n Metadata PR (15x1), C(15x15), P(15x15): band %d\n", b ); for ( i = 0; i < num_ch - 1; i++ ) { - fprintf( stdout, "i: %d -- %.2f\t|\t", i, hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i] ); + fprintf( stdout, "i: %d -- %.2f\t|\t", i, pState->spar_md.band_coeffs[b].pred_quant_re[i] ); if ( i < num_ch - ndm ) { if ( keep_planar[i] == 1 ) @@ -923,12 +986,12 @@ ivas_error ivas_spar_md_enc_process( } for ( j = 0; j < ndm - 1; j++ ) { - fprintf( stdout, "%.2f\t", hMdEnc->spar_md.band_coeffs[b].C_quant_re[i][j] ); + fprintf( stdout, "%.2f\t", pState->spar_md.band_coeffs[b].C_quant_re[i][j] ); } fprintf( stdout, "|\t" ); for ( j = 0; j < num_ch - ndm; j++ ) { - fprintf( stdout, "%.2f\t", hMdEnc->spar_md.band_coeffs[b].P_quant_re[j] ); + fprintf( stdout, "%.2f\t", pState->spar_md.band_coeffs[b].P_quant_re[j] ); } } fprintf( stdout, "\n" ); @@ -965,7 +1028,7 @@ ivas_error ivas_spar_md_enc_process( ( b == 0 && frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false; for ( i = 0; i < num_ch - 1; i++ ) { - dbgwrite( &hMdEnc->spar_md.band_coeffs[b].pred_re[i], sizeof( float ), 1, 1, f_name ); + dbgwrite( &pState->spar_md.band_coeffs[b].pred_re[i], sizeof( float ), 1, 1, f_name ); } sprintf( f_name, "spar_band_C_coeffs.bin" ); ( b == 0 && frame == 0 ) ? dbgwrite( &nB, sizeof( nB ), 1, 1, f_name ) : false; @@ -978,7 +1041,7 @@ ivas_error ivas_spar_md_enc_process( { for ( j = 0; j < ( ndm - 1 ); j++ ) { - dbgwrite( &hMdEnc->spar_md.band_coeffs[b].C_re[i][j], sizeof( float ), 1, 1, f_name ); + dbgwrite( &pState->spar_md.band_coeffs[b].C_re[i][j], sizeof( float ), 1, 1, f_name ); } } sprintf( f_name, "spar_band_P_coeffs.bin" ); @@ -990,7 +1053,7 @@ ivas_error ivas_spar_md_enc_process( ( b == 0 && frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false; for ( i = 0; i < num_ch - ndm; i++ ) { - dbgwrite( &hMdEnc->spar_md.band_coeffs[b].P_re[i], sizeof( float ), 1, 1, f_name ); + dbgwrite( &pState->spar_md.band_coeffs[b].P_re[i], sizeof( float ), 1, 1, f_name ); } sprintf( f_name, "spar_band_pred_coeffs_quant.bin" ); ( b == 0 && frame == 0 ) ? dbgwrite( &nB, sizeof( nB ), 1, 1, f_name ) : false; @@ -1001,7 +1064,7 @@ ivas_error ivas_spar_md_enc_process( ( b == 0 && frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false; for ( i = 0; i < num_ch - 1; i++ ) { - dbgwrite( &hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i], sizeof( float ), 1, 1, f_name ); + dbgwrite( &pState->spar_md.band_coeffs[b].pred_quant_re[i], sizeof( float ), 1, 1, f_name ); } sprintf( f_name, "spar_band_C_coeffs_quant.bin" ); ( b == 0 && frame == 0 ) ? dbgwrite( &nB, sizeof( nB ), 1, 1, f_name ) : false; @@ -1014,7 +1077,7 @@ ivas_error ivas_spar_md_enc_process( { for ( j = 0; j < ( ndm - 1 ); j++ ) { - dbgwrite( &hMdEnc->spar_md.band_coeffs[b].C_quant_re[i][j], sizeof( float ), 1, 1, f_name ); + dbgwrite( &pState->spar_md.band_coeffs[b].C_quant_re[i][j], sizeof( float ), 1, 1, f_name ); } } sprintf( f_name, "spar_band_P_coeffs_quant.bin" ); @@ -1026,7 +1089,7 @@ ivas_error ivas_spar_md_enc_process( ( b == 0 && frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false; for ( i = 0; i < num_ch - ndm; i++ ) { - dbgwrite( &hMdEnc->spar_md.band_coeffs[b].P_quant_re[i], sizeof( float ), 1, 1, f_name ); + dbgwrite( &pState->spar_md.band_coeffs[b].P_quant_re[i], sizeof( float ), 1, 1, f_name ); } } } @@ -1039,13 +1102,13 @@ ivas_error ivas_spar_md_enc_process( fclose( fp ); #endif - if ( hMdEnc->spar_md_cfg.gen_bs == 1 ) + if ( pState->spar_md_cfg.gen_bs == 1 ) { - ivas_store_prior_coeffs( hMdEnc, num_bands, bands_bw, code_strat, dtx_vad, qsi ); + ivas_store_prior_coeffs( pState, num_bands, bands_bw, code_strat, dtx_vad, qsi ); } - hMdEnc->spar_md.dtx_vad = dtx_vad; - hMdEnc->spar_md.num_bands = num_bands; + pState->spar_md.dtx_vad = dtx_vad; + pState->spar_md.num_bands = num_bands; return IVAS_ERR_OK; } @@ -1339,7 +1402,7 @@ static void ivas_get_arith_coded_bs( #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n band_indexes:\n"); for (int16_t j = 1; j < drct_cell_dims[0].dim1 * drct_cell_dims[0].dim2; j++) - fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[0].drct_index_re[j]); + fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[0].drct_index_re[j]); fprintf(stderr, "\n\n"); */ #endif ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md.band_coeffs_idx, nB, symbol_arr_re, drct_cell_dims, DRCT_COEFF, planarCP ); @@ -1499,22 +1562,37 @@ static void ivas_store_prior_coeffs( static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, - const float *pValues, + float **ppValues, const int16_t ndm, - int16_t *pIndex, + int16_t **ppIndex, const int16_t dim1, - float *pQuant ) + float **ppQuant ) { int16_t i; int16_t q_lvl; + float *pVal, val, **ppVal; + int16_t *pIdx, idx, **ppIdx; float pr_min_max[2]; + + ppVal = (float **) &pVal; + ppIdx = (int16_t **) &pIdx; + + ppVal[0] = (float *) &val; + ppIdx[0] = (int16_t *) &idx; + pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; + for ( i = 0; i < dim1; i++ ) { q_lvl = dtx_pr_real_q_levels[ndm - 1][i]; - ivas_quantise_real_values( &pValues[i], q_lvl, pr_min_max[0], pr_min_max[1], &pIndex[i], &pQuant[i], 1 ); + ppVal[0][0] = ppValues[0][i]; + + ivas_quantise_real_values( ppVal, q_lvl, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); + ppIndex[0][i] = ppIdx[0][0]; + ppQuant[0][i] = ppVal[0][0]; } + return; } @@ -1526,22 +1604,30 @@ static void ivas_spar_quant_pred_coeffs_dtx( *-----------------------------------------------------------------------------------------*/ static void ivas_quant_p_per_band_dtx( - float *pP_mat, + float **ppP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, - float *pP_out, + float **ppP_out, const int16_t num_ch ) { int16_t i; + float **ppPd, *pPd, pd; + int16_t **ppIdx, *pIdx, idx; int16_t dim = num_ch - num_dmx; + + ppPd = (float **) &pPd; + ppIdx = (int16_t **) &pIdx; + ppPd[0] = (float *) &pd; + ppIdx[0] = (int16_t *) &idx; + if ( num_dec == num_ch - 1 ) { for ( i = 0; i < dim; i++ ) { - if ( pP_mat[i] < pr_boost_range[1] && pP_mat[i] > pr_boost_range[0] ) + if ( ppP_mat[i][i] < pr_boost_range[1] && ppP_mat[i][i] > pr_boost_range[0] ) { - pP_mat[i] = pr_boost_range[1]; + ppP_mat[i][i] = pr_boost_range[1]; } } } @@ -1550,13 +1636,21 @@ static void ivas_quant_p_per_band_dtx( { assert( !"Not Supported!" ); } + for ( i = 0; i < dim; i++ ) { - ivas_quantise_real_values( &pP_mat[i], dtx_pd_real_q_levels[num_ch - num_dec - 1][i], dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &ppIdx_pd[i], &pP_out[i], 1 ); + ppPd[0][0] = ppP_mat[i][i]; + + ivas_quantise_real_values( ppPd, dtx_pd_real_q_levels[num_ch - num_dec - 1][i], dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppPd, 1, 1 ); + + ppP_out[i][i] = ppPd[0][0]; + ppIdx_pd[i] = ppIdx[0][0]; } + return; } + /*-----------------------------------------------------------------------------------------* * Function ivas_write_parameter_bitstream_dtx() * @@ -1571,11 +1665,18 @@ static void ivas_write_parameter_bitstream_dtx( const int16_t num_bands ) { int16_t i, j; - float val; - int16_t idx; + float **ppVal, *pVal, val; + int16_t **ppIdx, *pIdx, idx; float pr_min_max[2]; int16_t zero_pad_bits, sid_bits_len; sid_bits_len = hMetaData->nb_bits_tot; + + ppVal = (float **) &pVal; + ppIdx = (int16_t **) &pIdx; + + ppVal[0] = (float *) &val; + ppIdx[0] = (int16_t *) &idx; + pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; @@ -1613,15 +1714,17 @@ static void ivas_write_parameter_bitstream_dtx( pd_q_lvls = dtx_pd_real_q_levels[ndm - 1][pd_idx_2 - 1]; pd = pSpar_md->band_coeffs_idx[i].decd_index_re[pd_idx_2 - 1]; } - val = dtx_pd_real_min_max[0]; - ivas_quantise_real_values( &val, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &idx, &val, 1 ); - pd -= idx; + ppVal[0][0] = dtx_pd_real_min_max[0]; + ivas_quantise_real_values( ppVal, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppVal, 1, 1 ); + + pd -= ppIdx[0][0]; - val = pr_min_max[0]; - ivas_quantise_real_values( &val, pr_q_lvls, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + ppVal[0][0] = pr_min_max[0]; + ivas_quantise_real_values( ppVal, pr_q_lvls, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); + + pr -= ppIdx[0][0]; - pr -= idx; pr_pd_bits = ivas_get_bits_to_encode( pd_q_lvls * pr_q_lvls ); value = (uint16_t) ( pr * pd_q_lvls + pd ); @@ -1634,19 +1737,21 @@ static void ivas_write_parameter_bitstream_dtx( int16_t pr_idx1, pr_idx2, pr_pr_bits; pr_q_lvls1 = dtx_pr_real_q_levels[ndm - 1][pr_idx_1 - 1]; pr_q_lvls2 = dtx_pr_real_q_levels[ndm - 1][pr_idx_2 - 1]; - val = pr_min_max[0]; - ivas_quantise_real_values( &val, pr_q_lvls1, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + + ppVal[0][0] = pr_min_max[0]; + ivas_quantise_real_values( ppVal, pr_q_lvls1, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); pr_idx1 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_1 - 1]; - pr_idx1 -= idx; + pr_idx1 -= ppIdx[0][0]; - val = pr_min_max[0]; - ivas_quantise_real_values( &val, pr_q_lvls2, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + ppVal[0][0] = pr_min_max[0]; + ivas_quantise_real_values( ppVal, pr_q_lvls2, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); pr_idx2 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1]; - pr_idx2 -= idx; + pr_idx2 -= ppIdx[0][0]; + value = (uint16_t) ( pr_idx2 * pr_q_lvls1 + pr_idx1 ); pr_pr_bits = ivas_get_bits_to_encode( pr_q_lvls1 * pr_q_lvls2 ); @@ -1683,7 +1788,18 @@ static void ivas_quant_pred_coeffs_per_band( ivas_quant_strat_t *pQs, const int16_t num_ch ) { - ivas_quantise_real_values( pband_coeffs->pred_re, pQs->PR.q_levels[0], pQs->PR.min, pQs->PR.max, pBand_coeffs_idx->pred_index_re, pband_coeffs->pred_quant_re, ( num_ch - 1 ) ); + float *pQuant_re, *pCoeff_re; + int16_t *pIdx_re; + float **ppPred_coeffs_re = (float **) &pCoeff_re; + float **ppPred_quant_re = (float **) &pQuant_re; + int16_t **ppPred_idx_re = (int16_t **) &pIdx_re; + + ppPred_idx_re[0] = &pBand_coeffs_idx->pred_index_re[0]; + ppPred_coeffs_re[0] = &pband_coeffs->pred_re[0]; + ppPred_quant_re[0] = &pband_coeffs->pred_quant_re[0]; + + ivas_quantise_real_values( ppPred_coeffs_re, pQs->PR.q_levels[0], pQs->PR.min, pQs->PR.max, ppPred_idx_re, ppPred_quant_re, 1, ( num_ch - 1 ) ); + return; } @@ -1704,6 +1820,17 @@ static void ivas_quant_c_per_band( int16_t i; int16_t j, k; float C_re[IVAS_SPAR_MAX_C_COEFF]; + float *pC_re[IVAS_SPAR_MAX_C_COEFF]; + int16_t *pIdx_re[IVAS_SPAR_MAX_C_COEFF]; + float **ppC_re = (float **) &pC_re[0]; + int16_t **ppIdx_re = (int16_t **) &pIdx_re[0]; + + for ( i = 0; i < ndec * ( ndm - 1 ); i++ ) + { + ppC_re[i] = &C_re[i]; + ppIdx_re[i] = &pBand_coeffs_idx->drct_index_re[i]; + } + k = 0; for ( i = 0; i < ndec; i++ ) { @@ -1713,16 +1840,19 @@ static void ivas_quant_c_per_band( k++; } } + #ifdef SPAR_HOA_DBG /*for (i = 0; i < ndec; i++) { - for (j = 0; j < ndm - 1; j++) - { - ppIdx_re[i][j] = 100; - } + for (j = 0; j < ndm - 1; j++) + { + ppIdx_re[i][j] = 100; + } }*/ #endif - ivas_quantise_real_values( C_re, pQs->C.q_levels[0], pQs->C.min, pQs->C.max, pBand_coeffs_idx->drct_index_re, C_re, ndec * ( ndm - 1 ) ); + + ivas_quantise_real_values( ppC_re, pQs->C.q_levels[0], pQs->C.min, pQs->C.max, ppIdx_re, ppC_re, ndec * ( ndm - 1 ), 1 ); + k = 0; for ( i = 0; i < ndec; i++ ) { @@ -1737,11 +1867,11 @@ static void ivas_quant_c_per_band( k = 0; for (i = 0; i < ndec; i++) { - for (j = 0; j < ndm - 1; j++) - { - fprintf(stderr, "%d,%d: %f, %f, %d\n", i, j, pband_coeffs->C_re[i][j], pband_coeffs->C_quant_re[i][j], pBand_coeffs_idx->drct_index_re[k]); - k++; - } + for (j = 0; j < ndm - 1; j++) + { + fprintf(stderr, "%d,%d: %f, %f, %d\n", i, j, pband_coeffs->C_re[i][j], pband_coeffs->C_quant_re[i][j], pBand_coeffs_idx->drct_index_re[k]); + k++; + } }*/ #endif @@ -1761,14 +1891,40 @@ static void ivas_quant_p_per_band( ivas_quant_strat_t *pQs, const int16_t num_ch ) { + float P_re_diag[IVAS_SPAR_MAX_CH - 1]; + int16_t i; + int16_t dim = num_ch - 1; + float *pP_diag[IVAS_SPAR_MAX_CH - 1]; + int16_t *pDecd_idx[IVAS_SPAR_MAX_CH - 1]; + float **ppP_diag = (float **) &pP_diag[0]; + int16_t **ppDecd_idx = (int16_t **) &pDecd_idx[0]; + + for ( i = 0; i < dim; i++ ) + { + ppP_diag[i] = &P_re_diag[i]; + ppDecd_idx[i] = &pBand_coeffs_idx->decd_index_re[i]; + } + + for ( i = 0; i < dim; i++ ) + { + P_re_diag[i] = pband_coeffs->P_re[i]; + } + #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n P_d:\n"); for (i = 0; i < dim; i++) { - fprintf(stderr, "%f, ", P_re_diag[i]); + fprintf(stderr, "%f, ", P_re_diag[i]); } fprintf(stderr, "\n\n");*/ #endif - ivas_quantise_real_values( pband_coeffs->P_re, pQs->P_r.q_levels[0], pQs->P_r.min, pQs->P_r.max, pBand_coeffs_idx->decd_index_re, pband_coeffs->P_quant_re, num_ch - 1 ); + + ivas_quantise_real_values( ppP_diag, pQs->P_r.q_levels[0], pQs->P_r.min, pQs->P_r.max, ppDecd_idx, ppP_diag, num_ch - 1, 1 ); + + for ( i = 0; i < dim; i++ ) + { + pband_coeffs->P_quant_re[i] = P_re_diag[i]; + } + return; } diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 2169cac9bd..58b6970d58 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -571,11 +571,7 @@ typedef struct ivas_dirac_enc_data_structure PARAM_ISM_CONFIG_HANDLE hParamIsm; /* Parametric ISM handle */ IVAS_FB_MIXER_HANDLE hFbMixer; -#ifdef FIX_DIRAC_CHANNELS - float *sba_synchro_buffer[DIRAC_MAX_ANA_CHANS]; -#else float *sba_synchro_buffer[IVAS_MAX_NUM_CH]; // VE: all 16 buffers not needed ? -#endif int16_t num_samples_synchro_delay; /* DirAC parameter estimation */ @@ -1044,7 +1040,9 @@ typedef struct /* high-level encoder parameters */ int16_t nchan_transport; /* number of transport channels */ - int16_t sba_analysis_order; /* Ambisonic (SBA) order used for analysis and coding */ +#ifdef SBA_ORDER_BITSTREAM + int16_t sba_analysis_order; /*Ambisonic(SBA) order*/ +#endif int16_t codec_mode; /* Mode1 or Mode2 of core codec */ int16_t last_codec_mode; /* previous frame Mode 1 or 2 */ diff --git a/lib_enc/ivas_stereo_cng_enc.c b/lib_enc/ivas_stereo_cng_enc.c index 9176f9ad2f..860cdbe88f 100644 --- a/lib_enc/ivas_stereo_cng_enc.c +++ b/lib_enc/ivas_stereo_cng_enc.c @@ -148,12 +148,7 @@ void stereo_dft_enc_sid_coh( int16_t alpha_level; int16_t n; -#ifdef ALIGN_SID_SIZE - /* TODO: still use old number of bits to keep bitexactness in output */ - nr_of_sid_stereo_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif zeropad = 0; /* Encode coherence vector. Find best fixed predictor by minimizing prediction error on input vector. @@ -308,10 +303,6 @@ void stereo_dft_enc_sid_coh( ( *nb_bits )++; } -#ifdef ALIGN_SID_SIZE - push_next_indice( hBstr, zeropad, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); -#endif - return; } diff --git a/lib_enc/ivas_stereo_dft_enc.c b/lib_enc/ivas_stereo_dft_enc.c index 402003be6c..b6a7e0685d 100644 --- a/lib_enc/ivas_stereo_dft_enc.c +++ b/lib_enc/ivas_stereo_dft_enc.c @@ -2317,11 +2317,7 @@ void stereo_dft_enc_write_BS( { stereo_dft_enc_sid_calc_coh( hStereoDft, hCPE->hStereoCng->coh_crossfade, &hCPE->hStereoCng->td_active, &hCPE->hStereoCng->first_SID, cohBand ); -#ifdef ALIGN_SID_SIZE - if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 ) ) -#else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 ) ) -#endif { if ( hStereoDft->hItd->itd[k_offset] != 0 ) { @@ -2397,11 +2393,7 @@ void stereo_dft_enc_write_BS( nb += STEREO_DFT_GIPD_NBITS; } } -#ifdef ALIGN_SID_SIZE - else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS ) ) -#else else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS ) ) -#endif { push_indice( hBstr, IND_STEREO_DFT_NO_IPD_FLAG, hStereoDft->no_ipd_flag, STEREO_DFT_FLAG_BITS ); nb += STEREO_DFT_FLAG_BITS; /*IPD mode flag: 1bit*/ @@ -2951,11 +2943,7 @@ static void stereo_dft_enc_compute_prm( /* parameters for bred0 <= b < bpred1 are estimated from parameters of the remaining bands with ptrans0 <= b < btrans1. */ - bpred1 = ( hStereoDft->nbands > 10 ) ? STEREO_DFT_RES_PRED_BAND_MAX - 2 : hStereoDft->nbands; - if ( hStereoDft->band_res[k_offset] == STEREO_DFT_BAND_RES_LOW ) - { - bpred1 = min( bpred1, 6 ); - } + bpred1 = ( hStereoDft->nbands > 10 ) ? hStereoDft->nbands - 2 : hStereoDft->nbands; bpred0 = bpred1 - STEREO_DFT_RES_PRED_BAND_MIN_CONST; /* get estimate (currently the maximal index) */ @@ -2975,7 +2963,7 @@ static void stereo_dft_enc_compute_prm( if ( hStereoDft->reverb_flag && hStereoDft->nbands > 10 ) /*SWB and FB*/ { - for ( b = STEREO_DFT_RES_PRED_BAND_MAX - 1; b >= STEREO_DFT_RES_PRED_BAND_MAX - 2; b-- ) + for ( b = hStereoDft->nbands - 1; b >= hStereoDft->nbands - 2; b-- ) { hStereoDft->res_pred_index_EC[b - STEREO_DFT_RES_PRED_BAND_MIN_CONST] = hStereoDft->res_pred_index_EC[b]; } diff --git a/lib_enc/ivas_stereo_dft_enc_itd.c b/lib_enc/ivas_stereo_dft_enc_itd.c old mode 100644 new mode 100755 index 594137993e..fd39db32d3 --- a/lib_enc/ivas_stereo_dft_enc_itd.c +++ b/lib_enc/ivas_stereo_dft_enc_itd.c @@ -446,6 +446,9 @@ static float calc_mean_E_ratio( ITD_DATA_HANDLE hItd, int16_t nbands, int16_t band_limits[], +#ifndef FIX_WRONG_NBANDS_IN_ITD_ESTIMATION + const int16_t NFFT, +#endif const float sfm, const float nrg_L[STEREO_DFT_N_32k_ENC / 2], const float nrg_R[STEREO_DFT_N_32k_ENC / 2], @@ -466,7 +469,11 @@ static float calc_mean_E_ratio( grand_sum_xcorr_img = 0.0f; /*take bands up to 32kHz bandwidth as ITD is always calculated at 32kHz sampling rate*/ +#ifdef FIX_WRONG_NBANDS_IN_ITD_ESTIMATION nbands -= ( band_limits[nbands] > STEREO_DFT_N_32k_ENC / 2 ); +#else + nbands -= ( NFFT > STEREO_DFT_N_32k_ENC ); +#endif sum_Er = 0; for ( b = 0; b < nbands; b++ ) @@ -1237,7 +1244,11 @@ void stereo_dft_enc_compute_itd( /*calculate mean E ratio of main to background signal for cohSNR*/ if ( hCPE->element_mode == IVAS_CPE_DFT ) { +#ifdef FIX_WRONG_NBANDS_IN_ITD_ESTIMATION mEr = calc_mean_E_ratio( hItd, hStereoDft->nbands, hStereoDft->band_limits, sfm_L, pNrgL, pNrgR, &total_mEr ); +#else + mEr = calc_mean_E_ratio( hItd, hStereoDft->nbands, hStereoDft->band_limits, hStereoDft->NFFT, sfm_L, pNrgL, pNrgR, &total_mEr ); +#endif } else { @@ -1246,7 +1257,11 @@ void stereo_dft_enc_compute_itd( set_s( band_limits, 0, STEREO_DFT_BAND_MAX + 1 ); set_band_limits( &nbands, band_limits, hCPE->hStereoMdct->hDft_ana->NFFT ); +#ifdef FIX_WRONG_NBANDS_IN_ITD_ESTIMATION mEr = calc_mean_E_ratio( hItd, nbands, band_limits, sfm_L, pNrgL, pNrgR, &total_mEr ); +#else + mEr = calc_mean_E_ratio( hItd, nbands, band_limits, hCPE->hStereoMdct->hDft_ana->NFFT, sfm_L, pNrgL, pNrgR, &total_mEr ); +#endif } /*calculate total cohSNR for frame in dB*/ diff --git a/lib_enc/ivas_stereo_dmx_evs.c b/lib_enc/ivas_stereo_dmx_evs.c index 4e25a90633..409b7b0d56 100644 --- a/lib_enc/ivas_stereo_dmx_evs.c +++ b/lib_enc/ivas_stereo_dmx_evs.c @@ -152,6 +152,9 @@ static void calc_poc( { int16_t i, n1, n2; int16_t n0, *itdLR; +#ifndef NTT_REMOVE_EPS_ROM + const float *c; +#endif const float *s; float *P; float tmp1, tmp2, Lr, Li, Rr, Ri, gamma, igamma, iN; @@ -159,13 +162,18 @@ static void calc_poc( float tmpPOC1[L_FRAME48k], tmpPOC2[L_FRAME48k]; float rfft_buf[L_FRAME48k]; int16_t step, bias; +#ifdef NTT_REMOVE_EPS_ROM int16_t i_for; int16_t cos_step, cos_max; float eps_cos, eps_sin, EPS; +#endif /* Initialization */ iN = 1.0f / (float) input_frame; +#ifndef NTT_REMOVE_EPS_ROM + c = hPOC->sin + ( input_frame >> 2 ); +#endif s = hPOC->sin; P = hPOC->P; n0 = input_frame / 2; @@ -187,6 +195,7 @@ static void calc_poc( specPOr[0] = sign( specLr[0] ) * sign( specRr[0] ) * wnd[bias]; specPOi[0] = 0.0f; +#ifdef NTT_REMOVE_EPS_ROM EPS = hPOC->eps; if ( input_frame == L_FRAME16k ) @@ -243,6 +252,28 @@ static void calc_poc( specPOi[i] = ( Lr * Ri - Li * Rr ) * tmp1; gamma -= igamma; } + // end NTT_REMOVE_EPS_ROM +#else + for ( i = 1; i < n0; i++ ) + { + Lr = specLr[i]; + Li = specLi[i]; + Rr = specRr[i]; + Ri = specRi[i]; + + Lr += ( specRr[i] * c[i] + specRi[i] * s[i] ); + Li += ( -specRr[i] * s[i] + specRi[i] * c[i] ); + Rr += ( specLr[i] * c[i] + specLi[i] * s[i] ); + Ri += ( -specLr[i] * s[i] + specLi[i] * c[i] ); + + tmp1 = wnd[i * step + bias] * gamma / ( sqrtf( ( ( Lr * Lr + Li * Li ) ) * ( ( Rr * Rr + Ri * Ri ) ) ) + hPOC->eps ); + + specPOr[i] = ( Lr * Rr + Li * Ri ) * tmp1; + specPOi[i] = ( Lr * Ri - Li * Rr ) * tmp1; + + gamma -= igamma; + } +#endif // end !NTT_REMOVE_EPS_ROM specPOr[n0] = sign( specLr[i] ) * sign( specRr[i] ) * wnd[i * step + bias] * gamma; @@ -414,31 +445,16 @@ static float find_poc_peak( } } - if ( ( on[0] && prev_off[0] ) && ( on[1] && prev_off[1] ) ) /*if both channels have newly detected as active (possibility of preceding), select channel by peakness Q[] of POC */ - { - *itd = ( Q[0] > Q[1] ) ? (float) itdLR[0] : (float) itdLR[1]; - } - else if ( ( on[0] && prev_off[0] ) && ( Q[0] > ( Q[1] - 0.1 ) ) ) /* if channel 0 becomes active, select channel 0*/ - { - *itd = (float) itdLR[0]; - } - else if ( ( on[1] && prev_off[1] ) && ( Q[1] > ( Q[0] - 0.1 ) ) ) /*if channel 1 becomes active, selsect channel 1*/ - { - *itd = (float) itdLR[1]; - } - else if ( Q[0] > ( Q[1] + Q_BAND ) ) /* if no status change, use Q[]*/ +#ifndef NTT_UPDATE_ITD_SW + if ( on[0] && prev_off[0] ) { *itd = (float) itdLR[0]; } - else if ( Q[1] > ( Q[0] + Q_BAND ) ) /* if no status change, use Q[]*/ + else if ( on[1] && prev_off[1] ) { *itd = (float) itdLR[1]; } - else if ( *itd == 0.0 ) /*if no channels are likely to be preceding, follow the status of the previous frame*/ - { - *itd = 0; - } - else /*follow the status of the previous frame*/ + else { *itd = ( *itd > 0 ) ? (float) itdLR[0] : (float) itdLR[1]; } @@ -872,20 +888,21 @@ ivas_error stereo_dmx_evs_init_encoder( #else if ( input_frame == L_FRAME16k ) { - hStereoDmxEVS->hPOC->sin = dft_trigo_32k; + hStereoDmxEVS->hPOC->sin = Stereo_dmx_s_wnd_coef_eps_16k; } else if ( input_frame == L_FRAME32k ) { - hStereoDmxEVS->hPOC->sin = dft_trigo_32k; + hStereoDmxEVS->hPOC->sin = Stereo_dmx_s_wnd_coef_eps_32k; } else if ( input_frame == L_FRAME48k ) { - hStereoDmxEVS->hPOC->sin = dft_trigo_48k; + hStereoDmxEVS->hPOC->sin = Stereo_dmx_s_wnd_coef_eps_48k; } else { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "invalid frame length\n" ); } +#endif hStereoDmxEVS->hPOC->confidence = 0.0f; diff --git a/lib_enc/ivas_stereo_mdct_core_enc.c b/lib_enc/ivas_stereo_mdct_core_enc.c index 664998967c..c41df7b24e 100644 --- a/lib_enc/ivas_stereo_mdct_core_enc.c +++ b/lib_enc/ivas_stereo_mdct_core_enc.c @@ -129,9 +129,6 @@ void stereo_mdct_core_enc( float *p_orig_spectrum_long[CPE_CHANNELS], orig_spectrum_long[CPE_CHANNELS][N_MAX]; /* MDCT output (L/R). */ float *orig_spectrum[CPE_CHANNELS][2]; /* Pointers to MDCT output for a short block (L/R) */ float powerSpec[CPE_CHANNELS][N_MAX]; -#ifdef DRAM_REDUCTION_MCT_IGF - float *p_powerSpec[CPE_CHANNELS]; -#endif float powerSpecMsInv_long[CPE_CHANNELS][N_MAX]; /* MS inv power spectrum, also inverse MDST spectrum */ float *powerSpecMsInv[CPE_CHANNELS][2]; float quantized_spectrum_long[CPE_CHANNELS][N_MAX]; /* quantized MDCT spectrum, inv ms mask mdst spectrum, scratch for MS spectra in the MS decision */ @@ -354,13 +351,7 @@ void stereo_mdct_core_enc( hStereoMdct->mdct_stereo_mode[n] == SMDCT_BW_MS ) && !hStereoMdct->isSBAStereoMode ) { -#ifdef DRAM_REDUCTION_MCT_IGF - p_powerSpec[0] = powerSpec[0]; - p_powerSpec[1] = powerSpec[1]; - ProcessStereoIGF( hStereoMdct, sts, ms_mask, orig_spectrum, p_powerSpec, powerSpecMsInv, inv_spectrum, n, hCPE->hCoreCoder[0]->sp_aud_decision0, hCPE->hCoreCoder[0]->element_brate, 0 ); -#else ProcessStereoIGF( hStereoMdct, sts, ms_mask, orig_spectrum, powerSpec, powerSpecMsInv, inv_spectrum, n, hCPE->hCoreCoder[0]->sp_aud_decision0, hCPE->hCoreCoder[0]->element_brate, 0 ); -#endif } else { diff --git a/lib_enc/ivas_stereo_switching_enc.c b/lib_enc/ivas_stereo_switching_enc.c index d0201784a6..9075d73595 100644 --- a/lib_enc/ivas_stereo_switching_enc.c +++ b/lib_enc/ivas_stereo_switching_enc.c @@ -218,12 +218,13 @@ static void deallocate_CoreCoder_enc( *-------------------------------------------------------------------*/ ivas_error stereo_memory_enc( - CPE_ENC_HANDLE hCPE, /* i : CPE encoder structure */ - const int32_t input_Fs, /* i : input sampling rate */ - const int16_t max_bwidth, /* i : maximum audio bandwidth */ - float *tdm_last_ratio, /* o : TD stereo last ratio */ - const IVAS_FORMAT ivas_format, /* i : ivas format */ - const int16_t nchan_transport /* i : number transport chans */ + CPE_ENC_HANDLE hCPE, /* i : CPE encoder structure */ + const int32_t input_Fs, /* i : input sampling rate */ + const int16_t max_bwidth, /* i : maximum audio bandwidth */ + float *tdm_last_ratio, /* o : TD stereo last ratio */ + const IVAS_FORMAT ivas_format /* i : ivas format */ + , + const int16_t nchan_transport /* i : number transport chans */ ) { Encoder_State *st; @@ -537,7 +538,7 @@ ivas_error stereo_memory_enc( #endif initMdctStereoEncData( hCPE->hStereoMdct, ivas_format, hCPE->element_mode, hCPE->element_brate, hCPE->hCoreCoder[0]->max_bwidth, 0, NULL, 1 ); - hCPE->hStereoMdct->isSBAStereoMode = ( ivas_format == SBA_FORMAT && nchan_transport == 2 ); + hCPE->hStereoMdct->isSBAStereoMode = ( ( ivas_format == SBA_FORMAT ) && ( nchan_transport == 2 ) ); if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_format == STEREO_FORMAT ) { diff --git a/lib_enc/ivas_tcx_core_enc.c b/lib_enc/ivas_tcx_core_enc.c index ce2d74ec9a..79bb2f04a7 100644 --- a/lib_enc/ivas_tcx_core_enc.c +++ b/lib_enc/ivas_tcx_core_enc.c @@ -268,7 +268,7 @@ void stereo_tcx_core_enc( *--------------------------------------------------------------------------------*/ /* TCX20/TCX10 and coder type */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT writeTCXMode( st, hBstr, 0, /* <- is_mct */ &nbits_start ); #else writeTCXMode( st, hBstr, &nbits_start ); diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c old mode 100644 new mode 100755 index f313a2bcc9..b9d4dde032 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -54,6 +54,7 @@ struct IVAS_ENC Indice ind_list[MAX_NUM_DATA][MAX_NUM_INDICES]; /* list of indices */ Indice ind_list_metadata[MAX_NUM_METADATA][MAX_BITS_METADATA]; /* list of indices for metadata */ ENC_CORE_HANDLE hCoreCoder; + /* Some of these can be moved to Encoder_Struct, but for now leave them here to keep merging simpler */ bool isConfigured; #ifdef DEBUGGING bool cmd_stereo; @@ -62,8 +63,7 @@ struct IVAS_ENC int16_t Opt_RF_ON_loc; int16_t rf_fec_offset_loc; bool ismMetadataProvided[MAX_NUM_OBJECTS]; - bool maxBandwidthUser; /* Was a specific max bandwith selected by the user? */ - IVAS_ENC_BANDWIDTH newBandwidthApi; /* maximum encoded bandwidth, as set on API level */ + bool maxBandwidthUser; /* Was a specific max bandwith selected by the user? */ }; /*---------------------------------------------------------------------* @@ -77,7 +77,7 @@ static ivas_error setChannelAwareConfig( IVAS_ENC_HANDLE hIvasEnc, const IVAS_EN static int16_t getInputBufferSize( const Encoder_Struct *st_ivas ); static ivas_error doCommonConfigureChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error doCommonSetterChecks( IVAS_ENC_HANDLE hIvasEnc ); -static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ); +static void updateBandwidthFromFs( const ENCODER_CONFIG_HANDLE hEncoderConfig ); static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error bandwidthApiToInternal( const IVAS_ENC_BANDWIDTH maxBandwidth, int16_t *internalMaxBandwidth ); @@ -105,10 +105,6 @@ ivas_error IVAS_ENC_Open( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - /*-----------------------------------------------------------------* - * Allocate and initialize IVAS application encoder handle - *-----------------------------------------------------------------*/ - #ifdef BITSTREAM_INDICES_MEMORY if ( ( *phIvasEnc = (IVAS_ENC_HANDLE) dynamic_malloc( sizeof( struct IVAS_ENC ) ) ) == NULL ) #else @@ -118,14 +114,15 @@ ivas_error IVAS_ENC_Open( return IVAS_ERR_FAILED_ALLOC; } - ( *phIvasEnc )->hCoreCoder = NULL; - ( *phIvasEnc )->isConfigured = false; -#ifdef DEBUGGING - ( *phIvasEnc )->cmd_stereo = false; -#endif - ( *phIvasEnc )->switchingActive = false; - ( *phIvasEnc )->maxBandwidthUser = false; - resetIsmMetadataProvidedFlags( *phIvasEnc ); + if ( ( ( *phIvasEnc )->st_ivas = (Encoder_Struct *) count_malloc( sizeof( Encoder_Struct ) ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS encoder structure" ); + } + + if ( ( ( *phIvasEnc )->st_ivas->hEncoderConfig = (ENCODER_CONFIG_HANDLE) count_malloc( sizeof( ENCODER_CONFIG ) ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for Encoder config structure" ); + } /*-----------------------------------------------------------------* * Initialize indices @@ -150,36 +147,29 @@ ivas_error IVAS_ENC_Open( } /*-----------------------------------------------------------------* - * Allocate IVAS-codec encoder state - *-----------------------------------------------------------------*/ - - if ( ( ( *phIvasEnc )->st_ivas = (Encoder_Struct *) count_malloc( sizeof( Encoder_Struct ) ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS encoder structure" ); - } - - if ( ( ( *phIvasEnc )->st_ivas->hEncoderConfig = (ENCODER_CONFIG_HANDLE) count_malloc( sizeof( ENCODER_CONFIG ) ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for Encoder config structure" ); - } - - /*-----------------------------------------------------------------* - * Initialize IVAS-codec encoder state + * Initialize encoder state *-----------------------------------------------------------------*/ st_ivas = ( *phIvasEnc )->st_ivas; + st_ivas->hEncoderConfig->ivas_total_brate = ACELP_12k65; + st_ivas->hEncoderConfig->Opt_SC_VBR = 0; + st_ivas->hEncoderConfig->last_Opt_SC_VBR = 0; - /* initialize encoder Config. handle */ - init_encoder_config( st_ivas->hEncoderConfig ); - - /* initialize pointers to handles to NULL */ - ivas_initialize_handles_enc( st_ivas ); - - /* set high-level parameters */ st_ivas->mc_mode = MC_MODE_NONE; st_ivas->ism_mode = ISM_MODE_NONE; st_ivas->sba_mode = SBA_MODE_NONE; - st_ivas->sba_analysis_order = 0; + + init_encoder_config( st_ivas->hEncoderConfig ); + + ( *phIvasEnc )->hCoreCoder = NULL; + ( *phIvasEnc )->isConfigured = false; +#ifdef DEBUGGING + ( *phIvasEnc )->cmd_stereo = false; +#endif + ( *phIvasEnc )->switchingActive = false; + ( *phIvasEnc )->maxBandwidthUser = false; + resetIsmMetadataProvidedFlags( *phIvasEnc ); + return IVAS_ERR_OK; } @@ -782,7 +772,16 @@ static ivas_error configureEncoder( } else if ( hEncoderConfig->ivas_format == SBA_FORMAT ) { - /* nothing */ + if ( hEncoderConfig->ivas_total_brate < IVAS_256k ) + { + /* set SBA order to 1 for bit rates below 256kbps for correct handling of input with higher order */ + /* IVAS_fmToDo: needs more work in case of bitrate switching */ +#ifndef SBA_ORDER_BITSTREAM + hEncoderConfig->sba_order = 1; +#else + st_ivas->sba_analysis_order = 1; +#endif + } } else if ( hEncoderConfig->ivas_format == MASA_FORMAT ) { @@ -827,6 +826,8 @@ static ivas_error configureEncoder( hEncoderConfig->input_Fs = inputFs; + updateBandwidthFromFs( hEncoderConfig ); + /*-----------------------------------------------------------------* * Channel-aware mode *-----------------------------------------------------------------*/ @@ -854,7 +855,7 @@ static ivas_error configureEncoder( } } - if ( hEncoderConfig->ivas_total_brate == IVAS_13k2 && hEncoderConfig->Opt_RF_ON == 1 ) + if ( hEncoderConfig->ivas_total_brate == 13200 && hEncoderConfig->Opt_RF_ON == 1 ) { st_ivas->codec_mode = MODE2; } @@ -894,11 +895,6 @@ static ivas_error configureEncoder( return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "PCA supported at SBA FOA 256 kbps only." ); } - if ( ( error = sanitizeBandwidth( hIvasEnc ) ) != IVAS_ERR_OK ) - { - return error; - } - /*-----------------------------------------------------------------* * Finalize initialization *-----------------------------------------------------------------*/ @@ -966,7 +962,7 @@ ivas_error IVAS_ENC_GetDelay( *---------------------------------------------------------------------*/ static int16_t getInputBufferSize( - const Encoder_Struct *st_ivas /* i : IVAS encoder handle */ + const Encoder_Struct *st_ivas /* i: IVAS encoder handle */ ) { return (int16_t) ( st_ivas->hEncoderConfig->input_Fs * st_ivas->hEncoderConfig->nchan_inp / FRAMES_PER_SEC ); @@ -1036,11 +1032,6 @@ ivas_error IVAS_ENC_EncodeFrameToSerial( return IVAS_ERR_INVALID_INPUT_BUFFER_SIZE; } - if ( ( error = sanitizeBandwidth( hIvasEnc ) ) != IVAS_ERR_OK ) - { - return error; - } - if ( hEncoderConfig->ivas_format == ISM_FORMAT ) { for ( i = 0; i < hEncoderConfig->nchan_inp; ++i ) @@ -1413,8 +1404,7 @@ static ivas_error printConfigInfo_enc( { Encoder_Struct *st_ivas; ENCODER_CONFIG_HANDLE hEncoderConfig; - int16_t newBandwidthApi; - ivas_error error; + char max_bwidth_string[4]; st_ivas = hIvasEnc->st_ivas; hEncoderConfig = st_ivas->hEncoderConfig; @@ -1555,9 +1545,20 @@ static ivas_error printConfigInfo_enc( * Print potential limitation of audio bandwidth *-----------------------------------------------------------------*/ - if ( ( error = bandwidthApiToInternal( hIvasEnc->newBandwidthApi, &newBandwidthApi ) ) != IVAS_ERR_OK ) + switch ( hEncoderConfig->max_bwidth ) { - return error; + case NB: + strncpy( max_bwidth_string, "NB\0", sizeof( max_bwidth_string ) ); + break; + case WB: + strncpy( max_bwidth_string, "WB\0", sizeof( max_bwidth_string ) ); + break; + case SWB: + strncpy( max_bwidth_string, "SWB\0", sizeof( max_bwidth_string ) ); + break; + case FB: + strncpy( max_bwidth_string, "FB\0", sizeof( max_bwidth_string ) ); + break; } if ( st_ivas->hEncoderConfig->Opt_SC_VBR && !hEncoderConfig->Opt_DTX_ON ) @@ -1565,30 +1566,33 @@ static ivas_error printConfigInfo_enc( return IVAS_ERROR( IVAS_ERR_WRONG_PARAMS, "\nError: SC-VBR 5900 bps not supported without DTX\n\n" ); } + if ( hIvasEnc->maxBandwidthUser ) + { + fprintf( stdout, "\nBandwidth limited to %s.\n", max_bwidth_string ); + } + if ( hEncoderConfig->ivas_format == MONO_FORMAT ) { - if ( newBandwidthApi != hEncoderConfig->max_bwidth ) + if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < ACELP_16k40 ) { - if ( newBandwidthApi == FB ) + fprintf( stdout, "\nFB coding not supported below %.2f kbps. ", ACELP_16k40 / 1000.f ); + if ( hEncoderConfig->ivas_total_brate < ACELP_9k60 ) { - fprintf( stdout, "\nFB coding not supported below %.2f kbps. ", ACELP_16k40 / 1000.f ); - if ( hEncoderConfig->max_bwidth == WB ) - { - fprintf( stdout, "Switching to WB.\n" ); - } - else - { - fprintf( stdout, "Switching to SWB.\n" ); - } + fprintf( stdout, "Switching to WB.\n" ); } - else if ( newBandwidthApi == SWB ) + else { - fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.\n", ACELP_9k60 / 1000.f ); + fprintf( stdout, "Switching to SWB.\n" ); } } + if ( hEncoderConfig->max_bwidth == SWB && hEncoderConfig->ivas_total_brate < ACELP_9k60 ) + { + fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.", ACELP_9k60 / 1000.f ); + } + /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ - if ( ( newBandwidthApi == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) + if ( ( hEncoderConfig->max_bwidth == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) { fprintf( stdout, "\nError: Unsupported mode NB %d bps, NB mode supports rates 5900-24400 bps\n\n", hEncoderConfig->ivas_total_brate ); return IVAS_ERR_INVALID_BITRATE; @@ -1596,7 +1600,7 @@ static ivas_error printConfigInfo_enc( } else { - if ( newBandwidthApi != hEncoderConfig->max_bwidth ) + if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) { fprintf( stdout, "\nFB coding not supported below %.2f kbps. Switching to SWB.\n", MIN_BRATE_FB_STEREO / 1000.f ); } @@ -1808,97 +1812,29 @@ static ivas_error doCommonSetterChecks( /*---------------------------------------------------------------------* - * sanitizeBandwidth() + * updateBandwidthFromFs() * * *---------------------------------------------------------------------*/ -static ivas_error sanitizeBandwidth( - const IVAS_ENC_HANDLE hIvasEnc ) +static void updateBandwidthFromFs( + const ENCODER_CONFIG_HANDLE hEncoderConfig ) { - ENCODER_CONFIG_HANDLE hEncoderConfig; - int16_t max_bwidth_tmp; - - hEncoderConfig = hIvasEnc->st_ivas->hEncoderConfig; - - max_bwidth_tmp = hIvasEnc->newBandwidthApi; - /* Prevent st_ivas->max_bwidth from being higher than Fs/2 */ - if ( hEncoderConfig->input_Fs == 8000 && max_bwidth_tmp > NB ) - { - max_bwidth_tmp = NB; - } - else if ( hEncoderConfig->input_Fs == 16000 && max_bwidth_tmp > WB ) - { - max_bwidth_tmp = WB; - } - else if ( hEncoderConfig->input_Fs == 32000 && max_bwidth_tmp > SWB ) - { - max_bwidth_tmp = SWB; - } - - /* NB coding not supported in IVAS. Switching to WB. */ - if ( max_bwidth_tmp == NB && hEncoderConfig->ivas_format != UNDEFINED_FORMAT && hEncoderConfig->ivas_format != MONO_FORMAT ) - { - if ( hEncoderConfig->input_Fs >= 16000 ) - { - max_bwidth_tmp = WB; - } - else - { - return IVAS_ERR_INVALID_BITRATE; - } - } - - if ( hEncoderConfig->ivas_format == MONO_FORMAT ) + if ( hEncoderConfig->input_Fs == 8000 && hEncoderConfig->max_bwidth > NB ) { -#if 0 // IVAS_fmToDo: temporary disabled to keep EVS bit-exactness -> to be verified - if ( max_bwidth_tmp == FB && hEncoderConfig->ivas_total_brate < ACELP_16k40 ) - { - if ( hEncoderConfig->ivas_total_brate < ACELP_9k60 ) - { - max_bwidth_tmp = WB; - } - else - { - max_bwidth_tmp = SWB; - } - } - - if ( max_bwidth_tmp == SWB && hEncoderConfig->ivas_total_brate < ACELP_9k60 ) - { - max_bwidth_tmp = WB; - } - - /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ - if ( ( max_bwidth_tmp == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) - { - if ( hEncoderConfig->input_Fs >= 16000 ) - { - max_bwidth_tmp = WB; - } - else - { - return IVAS_ERR_INVALID_BITRATE; - } - } -#endif + hEncoderConfig->max_bwidth = NB; } - else + else if ( hEncoderConfig->input_Fs == 16000 && hEncoderConfig->max_bwidth > WB ) { - if ( max_bwidth_tmp == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) - { - max_bwidth_tmp = SWB; - } + hEncoderConfig->max_bwidth = WB; } - - if ( hEncoderConfig->max_bwidth != max_bwidth_tmp ) + else if ( hEncoderConfig->input_Fs == 32000 && hEncoderConfig->max_bwidth > SWB ) { - hEncoderConfig->max_bwidth = max_bwidth_tmp; - hIvasEnc->switchingActive = true; + hEncoderConfig->max_bwidth = SWB; } - return IVAS_ERR_OK; + return; } @@ -1924,8 +1860,6 @@ static ivas_error setBandwidth( return error; } - hIvasEnc->newBandwidthApi = newBandwidth; - /* NB coding not supported in IVAS. Switching to WB. */ if ( newBandwidth == NB && hEncoderConfig->ivas_format != UNDEFINED_FORMAT && hEncoderConfig->ivas_format != MONO_FORMAT ) { @@ -1938,6 +1872,13 @@ static ivas_error setBandwidth( hIvasEnc->switchingActive = true; } + /* Limit bandwidth to half of sampling rate - only possible if + * sampling rate has already been set via configure function */ + if ( hIvasEnc->isConfigured ) + { + updateBandwidthFromFs( hIvasEnc->st_ivas->hEncoderConfig ); + } + return IVAS_ERR_OK; } @@ -2105,14 +2046,11 @@ static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig /* o : configuration structure */ ) { - hEncoderConfig->ivas_total_brate = ACELP_12k65; hEncoderConfig->max_bwidth = SWB; hEncoderConfig->input_Fs = 16000; hEncoderConfig->nchan_inp = 1; hEncoderConfig->element_mode_init = EVS_MONO; hEncoderConfig->ivas_format = UNDEFINED_FORMAT; - hEncoderConfig->Opt_SC_VBR = 0; - hEncoderConfig->last_Opt_SC_VBR = 0; hEncoderConfig->Opt_AMR_WB = 0; hEncoderConfig->Opt_DTX_ON = 0; hEncoderConfig->Opt_RF_ON = 0; diff --git a/lib_enc/tcx_utils_enc.c b/lib_enc/tcx_utils_enc.c old mode 100755 new mode 100644 index 9b272f0dee..ca88663355 --- a/lib_enc/tcx_utils_enc.c +++ b/lib_enc/tcx_utils_enc.c @@ -1509,11 +1509,7 @@ void ProcessStereoIGF( Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ -#ifdef DRAM_REDUCTION_MCT_IGF - float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ -#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i : inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subfr. */ diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index 785678535f..45a9e121ca 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -68,11 +68,7 @@ static ivas_error ivas_hrtf_init( hHrtf->gain_lfe = 0; hHrtf->index_frequency_max_diffuse = 0; -#ifdef FIX_CREND_CHANNELS - for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) -#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { hHrtf->inv_diffuse_weight[i] = 0; for ( j = 0; j < BINAURAL_CHANNELS; j++ ) @@ -677,11 +673,7 @@ ivas_error ivas_crend_open( hCrend->lfe_delay_line = NULL; -#ifdef FIX_CREND_CHANNELS - for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) -#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { hCrend->freq_buffer_re[i] = NULL; hCrend->freq_buffer_im[i] = NULL; @@ -832,11 +824,7 @@ ivas_error ivas_crend_close( { if ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) { -#ifdef FIX_CREND_CHANNELS - for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) -#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { if ( st_ivas->hCrend->freq_buffer_re[i] != NULL ) { @@ -1135,7 +1123,5 @@ ivas_error ivas_crend_process( mvr2r( pcm_tmp[i], output[i], output_frame ); } - wmops_sub_end(); - return IVAS_ERR_OK; } diff --git a/lib_rend/ivas_hrtf.c b/lib_rend/ivas_hrtf.c index 7c4183b0e8..8b5f1ba217 100644 --- a/lib_rend/ivas_hrtf.c +++ b/lib_rend/ivas_hrtf.c @@ -74,7 +74,7 @@ void BSplineModelEvalAlloc( * Init default HRTF model --------------------------------------------------------------------*/ -void DefaultBSplineModel( +ivas_error DefaultBSplineModel( TDREND_HRFILT_FiltSet_t *HrFiltSet_p, /* o : Loaded HR filter set */ const int32_t output_Fs /* i : Output sampling rate */ ) @@ -215,7 +215,7 @@ void DefaultBSplineModel( HrFiltSet_p->FiltLength = HrFiltSet_p->ModelParams.K; BSplineModelEvalAlloc( &HrFiltSet_p->ModelParams, &HrFiltSet_p->ModelEval ); - return; + return IVAS_ERR_OK; } diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index b4c784edfa..153c6d7f2d 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -45,17 +45,8 @@ /*---------------------------------------------------------------------* * Local function prototypes *---------------------------------------------------------------------*/ - -#ifdef FIX_I106_TDREND_5MS -static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t subframe_length, const int32_t output_Fs, const int16_t subframe_idx ); -#else static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t output_frame, const int32_t output_Fs ); -#endif static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); -#ifdef FIX_I106_TDREND_5MS -static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, const Quaternion *headPosition ); -static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t numSources, const IVAS_FORMAT in_format, const ISM_METADATA_HANDLE *hIsmMetaData, float output[][L_FRAME48k] ); -#endif /*---------------------------------------------------------------------* * ivas_td_binaural_open() @@ -63,6 +54,7 @@ static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE h * Open and initialize TD Object binaural renderer *---------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error ivas_td_binaural_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ) @@ -227,13 +219,13 @@ void ivas_td_binaural_close( * and renders the current frame. *---------------------------------------------------------------------*/ -void ObjRenderIVASFrame( +/*! r: TD Renderer result code. */ +ivas_error ObjRenderIVASFrame( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ const int16_t output_frame /* i : output frame length */ ) { -#ifndef FIX_I106_TDREND_5MS TDREND_DirAtten_t *DirAtten_p; int16_t nS; float Pos[3]; @@ -242,15 +234,9 @@ void ObjRenderIVASFrame( float UpVec[3]; float Rmat[3][3]; int16_t c_indx; -#else - int16_t subframe_length; -#endif int16_t subframe_idx; float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; -#ifdef FIX_I106_TDREND_5MS - subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; -#else DirAtten_p = st_ivas->hBinRendererTd->DirAtten_p; /* Update the listener's location/orientation */ @@ -328,16 +314,8 @@ void ObjRenderIVASFrame( TDREND_MIX_SRC_SetPlayState( st_ivas->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); } } -#endif if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { - -#ifdef FIX_I106_TDREND_5MS - if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on && ( st_ivas->ini_frame == 0 ) ) - { - ivas_reverb_open( &st_ivas->hCrend->hReverb, st_ivas->transport_config, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); - } -#else if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) { if ( st_ivas->ini_frame == 0 ) @@ -349,33 +327,10 @@ void ObjRenderIVASFrame( ivas_reverb_process( st_ivas->hCrend->hReverb, st_ivas->transport_config, 0, output, reverb_signal, subframe_idx ); } } -#endif } -#ifdef FIX_I106_TDREND_5MS - /* Update object position(s) */ - TDREND_Update_object_positions( st_ivas->hBinRendererTd, st_ivas->nchan_transport, st_ivas->ivas_format, st_ivas->hIsmMetaData, output ); - - for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) - { - /* Update the listener's location/orientation */ - TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, - st_ivas->hDecoderConfig->Opt_Headrotation, - ( st_ivas->hHeadTrackData != NULL ) ? &st_ivas->hHeadTrackData->Quaternions[subframe_idx] : NULL ); - - if ( ( st_ivas->hRenderConfig != NULL ) && ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) - { - ivas_reverb_process( st_ivas->hCrend->hReverb, st_ivas->transport_config, 0, output, reverb_signal, subframe_idx ); - } - - /* Render subframe */ - TDREND_GetMix( st_ivas->hBinRendererTd, output, subframe_length, st_ivas->hDecoderConfig->output_Fs, subframe_idx ); - } -#else /* Call the renderer */ TDREND_GetMix( st_ivas->hBinRendererTd, output, output_frame, st_ivas->hDecoderConfig->output_Fs ); -#endif - if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) @@ -385,58 +340,36 @@ void ObjRenderIVASFrame( v_add( reverb_signal[1], output[1], output[1], output_frame ); } } - - return; + return IVAS_ERR_OK; } -#ifdef FIX_I106_TDREND_5MS -/*---------------------------------------------------------------------* - * TDREND_GetMix() - * - * Render one 5 ms subframe from the mixer - *---------------------------------------------------------------------*/ -#else /*---------------------------------------------------------------------* * TDREND_GetMix() * * Render one output frame from the mixer *---------------------------------------------------------------------*/ -#endif + +/*! r: TD Renderer result code. */ static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ float output[][L_FRAME48k], /* i/o: ISm object synth / rendered output in 0,1 */ -#ifdef FIX_I106_TDREND_5MS - const int16_t subframe_length, /* i/o: subframe length */ - const int32_t output_Fs, /* i : Output sampling rate */ - const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ -#else - const int16_t output_frame, /* i/o: Output frame length */ - const int32_t output_Fs /* i : Output sampling rate */ -#endif + const int16_t output_frame, /* i/o: Output frame length */ + const int32_t output_Fs /* i : Output sampling rate */ ) { int16_t i; TDREND_SRC_t *Src_p; TDREND_SRC_SPATIAL_t *SrcSpatial_p; TDREND_SRC_REND_t *SrcRend_p; - ivas_error error; -#ifdef FIX_I106_TDREND_5MS - float output_buf[2][L_SPATIAL_SUBFR_48k]; /* Temp buffer for left/right rendered signal */ -#else + ivas_error result; float output_buf[2][L_FRAME48k]; /* Temp buffer for left/right rendered signal */ -#endif - error = IVAS_ERR_OK; -#ifdef FIX_I106_TDREND_5MS - /* Clear the output buffer to accumulate rendered sources */ - set_f( output_buf[0], 0.0f, subframe_length ); - set_f( output_buf[1], 0.0f, subframe_length ); -#else + result = IVAS_ERR_OK; + /* Zero out the output buffer since objects are accumulated. */ set_f( output_buf[0], 0.0f, output_frame ); set_f( output_buf[1], 0.0f, output_frame ); -#endif /* Create the mix */ /* Loop through the source list and render each source */ @@ -455,42 +388,23 @@ static ivas_error TDREND_GetMix( /* Render source if needed */ if ( ( SrcRend_p->InputAvailable == TRUE ) && ( SrcRend_p->PlayStatus == TDREND_PLAYSTATUS_PLAYING ) ) { -#ifdef FIX_I106_TDREND_5MS -#ifdef TDREND_HRTF_TABLE_METHODS - error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, subframe_length, output_Fs ); -#else - error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, subframe_length, output_Fs ); -#endif -#else #ifdef TDREND_HRTF_TABLE_METHODS - error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, output_frame, output_Fs ); + result = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, output_frame, output_Fs ); #else - error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, output_frame, output_Fs ); -#endif + result = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, output_frame, output_Fs ); #endif } -#ifndef FIX_I106_TDREND_5MS SrcRend_p->InputAvailable = FALSE; -#endif } /* Populate output variable */ -#ifdef FIX_I106_TDREND_5MS - mvr2r( output_buf[0], output[0] + subframe_idx * subframe_length, subframe_length ); /* Left */ - mvr2r( output_buf[1], output[1] + subframe_idx * subframe_length, subframe_length ); /* Right */ -#else mvr2r( output_buf[0], output[0], output_frame ); /* Left */ mvr2r( output_buf[1], output[1], output_frame ); /* Right */ -#endif -#ifdef FIX_I106_TDREND_5MS - /* Clear the PoseUpdated and Source position update flags */ -#else - /* Clear the mixer update flags */ -#endif + /* Clear the mixer update flags */ TDREND_Clear_Update_flags( hBinRendererTd ); - return error; + return result; } @@ -507,129 +421,9 @@ static void TDREND_Clear_Update_flags( int16_t i; hBinRendererTd->Listener_p->PoseUpdated = FALSE; - for ( i = 0; i < hBinRendererTd->NumOfSrcs; i++ ) { hBinRendererTd->Sources[i]->SrcSpatial_p->Updated = FALSE; } - - return; -} - -#ifdef FIX_I106_TDREND_5MS -/*---------------------------------------------------------------------* - * TDREND_Update_object_positions() - * - * Update object position(s) - *---------------------------------------------------------------------*/ - -static void TDREND_Update_object_positions( - BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o : TD Renderer handle */ - const int16_t numSources, /* i : Number of sources to render */ - const IVAS_FORMAT in_format, /* i : Format of input sources */ - const ISM_METADATA_HANDLE *hIsmMetaData, /* i : Input metadata for ISM objects */ - float output[][L_FRAME48k] /* i/o: SCE/MC channels */ -) -{ - TDREND_DirAtten_t *DirAtten_p; - int16_t nS; - float Pos[3]; - float Dir[3]; - int16_t c_indx; - - DirAtten_p = hBinRendererTd->DirAtten_p; - - /* For each source, write the frame data to the source object*/ - c_indx = 0; - for ( nS = 0; nS < numSources; nS++ ) - { - if ( !( in_format == MC_FORMAT && nS == LFE_CHANNEL ) ) /* Skip LFE for MC */ - { - hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; - hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; - c_indx++; - } - - if ( in_format == ISM_FORMAT ) - { - - /* Update the source positions */ - /* Source position and direction */ - Pos[0] = cosf( hIsmMetaData[nS]->elevation * PI_OVER_180 ) * cosf( hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[1] = cosf( hIsmMetaData[nS]->elevation * PI_OVER_180 ) * sinf( hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[2] = sinf( hIsmMetaData[nS]->elevation * PI_OVER_180 ); - Dir[0] = 1.0f; - Dir[1] = 0.0f; - Dir[2] = 0.0f; - - /* Source directivity info */ - DirAtten_p->ConeInnerAngle = 360.0f; - DirAtten_p->ConeOuterAngle = 360.0f; - DirAtten_p->ConeOuterGain = 1.0f; - - TDREND_MIX_SRC_SetPos( hBinRendererTd, nS, Pos ); - TDREND_MIX_SRC_SetDirAtten( hBinRendererTd, nS, DirAtten_p ); - TDREND_MIX_SRC_SetPlayState( hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); - - TDREND_MIX_SRC_SetDir( hBinRendererTd, nS, Dir ); - } - } - - return; -} - -/*---------------------------------------------------------------------* - * TDREND_Update_listener_orientation() - * - * Update listener orientation (s) - *---------------------------------------------------------------------*/ - -static void TDREND_Update_listener_orientation( - BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ - const int16_t headRotEnabled, /* i : Headrotation flag */ - const Quaternion *headPosition /* i : Head Position */ -) -{ - float Pos[3]; - float FrontVec[3]; - float UpVec[3]; - float Rmat[3][3]; - - /* Update the listener's location/orientation */ - /* Listener at the origin */ - Pos[0] = 0.0f; - Pos[1] = 0.0f; - Pos[2] = 0.0f; - - if ( headRotEnabled ) - { - /* Obtain head rotation matrix */ - QuatToRotMat( *headPosition, Rmat ); - /* Apply rotation matrix to looking vector [1;0;0] */ - FrontVec[0] = Rmat[0][0]; - FrontVec[1] = Rmat[0][1]; - FrontVec[2] = Rmat[0][2]; - /* Apply rotation matrix to up vector [0;0;1] */ - UpVec[0] = Rmat[2][0]; - UpVec[1] = Rmat[2][1]; - UpVec[2] = Rmat[2][2]; - } - else - { - /* Oriented with looking vector along the x axis */ - FrontVec[0] = 1.0f; - FrontVec[1] = 0.0f; - FrontVec[2] = 0.0f; - /* Oriented with up vector along the z axis */ - UpVec[0] = 0.0f; - UpVec[1] = 0.0f; - UpVec[2] = 1.0f; - } - - /* Set the listener position and orientation:*/ - TDREND_MIX_LIST_SetPos( hBinRendererTd, Pos ); - TDREND_MIX_LIST_SetOrient( hBinRendererTd, FrontVec, UpVec ); - return; } -#endif diff --git a/lib_rend/ivas_objectRenderer_hrFilt.c b/lib_rend/ivas_objectRenderer_hrFilt.c index eb69350d48..4ece382b4f 100644 --- a/lib_rend/ivas_objectRenderer_hrFilt.c +++ b/lib_rend/ivas_objectRenderer_hrFilt.c @@ -343,42 +343,24 @@ void TDREND_HRFILT_SetFiltSet( --------------------------------------------------------------------*/ ivas_error TDREND_REND_RenderSourceHRFilt( -#ifdef FIX_I106_TDREND_5MS - TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#else - const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#endif + const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif -#ifdef FIX_I106_TDREND_5MS - float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ - const int16_t subframe_length, /* i : Subframe length in use */ -#else float output_buf[][L_FRAME48k], /* o : Output buffer */ const int16_t output_frame, /* i : Output frame length in use */ -#endif - - const int32_t output_Fs /* i : Output sample rate */ + const int32_t output_Fs /* i : Output sample rate */ ) { + ivas_error SFX_Result; TDREND_SRC_REND_t *SrcRend_p; -#ifdef FIX_I106_TDREND_5MS - const float *InFrame_nIC_p; -#else int16_t nS; float *InFrame_nIC_p; -#endif int16_t NoOfUsedInputSamples, NoOfDeliveredOutputSamples; -#ifdef FIX_I106_TDREND_5MS - float LeftOutputFrame[L_SPATIAL_SUBFR_48k]; - float RightOutputFrame[L_SPATIAL_SUBFR_48k]; -#else float LeftOutputFrame[L_FRAME48k]; float RightOutputFrame[L_FRAME48k]; float *LeftOutputFrame_p, *RightOutputFrame_p; float *LeftAccOutputFrame_p, *RightAccOutputFrame_p; -#endif /* Input channel rendering loop */ InFrame_nIC_p = Src_p->InputFrame_p; @@ -388,11 +370,9 @@ ivas_error TDREND_REND_RenderSourceHRFilt( /* SrcGain = Mix_p->Gain * ( *SrcRend_p->SrcGain_p ); */ /* SrcGain *= ( *SrcRend_p->DirGain_p ) * ( *SrcRend_p->DistGain_p ); */ -#ifdef FIX_I106_TDREND_5MS - TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, subframe_length, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); -#else - TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, output_frame, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); -#endif + SFX_Result = TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, output_frame, + LeftOutputFrame, RightOutputFrame, + &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); #ifdef TDREND_HRTF_TABLE_METHODS if ( hBinRendererTd->HrFiltSet_p->FilterMethod != TDREND_HRFILT_Method_BSplineModel ) @@ -402,27 +382,17 @@ ivas_error TDREND_REND_RenderSourceHRFilt( #endif /* Copy to accumulative output frame */ -#ifdef FIX_I106_TDREND_5MS - v_add( LeftOutputFrame, output_buf[0], output_buf[0], subframe_length ); - v_add( RightOutputFrame, output_buf[1], output_buf[1], subframe_length ); - - Src_p->InputFrame_p += subframe_length; /* Increment input pointer -- todo: should we remove this and input the current subframe instead? */ - -#else LeftOutputFrame_p = LeftOutputFrame; RightOutputFrame_p = RightOutputFrame; LeftAccOutputFrame_p = output_buf[0]; RightAccOutputFrame_p = output_buf[1]; - for ( nS = 0; nS < output_frame; nS++ ) { *LeftAccOutputFrame_p++ += *LeftOutputFrame_p++; *RightAccOutputFrame_p++ += *RightOutputFrame_p++; } -#endif - - return IVAS_ERR_OK; + return SFX_Result; } diff --git a/lib_rend/ivas_objectRenderer_mix.c b/lib_rend/ivas_objectRenderer_mix.c index df190b91b1..61553ca4fc 100644 --- a/lib_rend/ivas_objectRenderer_mix.c +++ b/lib_rend/ivas_objectRenderer_mix.c @@ -46,7 +46,8 @@ * Sets the listener's position in the specified mixer unit. --------------------------------------------------------------------*/ -void TDREND_MIX_LIST_SetPos( +/*! r: TD Renderer result code. */ +ivas_error TDREND_MIX_LIST_SetPos( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const float *Pos_p /* i : Listener's position */ ) @@ -64,7 +65,7 @@ void TDREND_MIX_LIST_SetPos( Listener_p->PoseUpdated = TRUE; } - return; + return IVAS_ERR_OK; } @@ -74,6 +75,7 @@ void TDREND_MIX_LIST_SetPos( * Sets the listener's orientation vectors in the specified mixer unit. --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_LIST_SetOrient( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const float *FrontVec_p, /* i : Listener's orientation front vector */ @@ -191,6 +193,7 @@ void TDREND_MIX_Dealloc( * Initializes the mixer and sets HRTF --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_Init( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ TDREND_HRFILT_FiltSet_t **hHrtfTD, /* i/o: HRTF data (initialized in case of NULL) */ @@ -253,6 +256,7 @@ ivas_error TDREND_MIX_Init( * Set the distance attenuation model of the mixer --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SetDistAttenModel( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const TDREND_DistAttenModel_t DistAttenModel /* i : Distance attenuation model */ @@ -287,6 +291,7 @@ ivas_error TDREND_MIX_SetDistAttenModel( * Adds the specified input source unit to the specified mixer unit. --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_AddSrc( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ int16_t *SrcInd, /* o : Source index */ diff --git a/lib_rend/ivas_objectRenderer_sfx.c b/lib_rend/ivas_objectRenderer_sfx.c index 08239e8565..45ac83a4ae 100644 --- a/lib_rend/ivas_objectRenderer_sfx.c +++ b/lib_rend/ivas_objectRenderer_sfx.c @@ -70,7 +70,7 @@ static void TDREND_FirFilterRev( float *OutputFrame_p, float *FirFilterRev_p, co #ifdef TDREND_HRTF_TABLE_METHODS static void TDREND_FirFilterRevInterp( float *OutputFrame_p, float *FirFilterRev_p, const int16_t FirFilterLength, float *InputFrame_p, const int16_t NumOfSamples, float *FilterStored ); #endif -static void TDREND_SFX_SpatBin_Clear( SFX_SpatBin_t *SfxSpatBin_p, const int32_t output_Fs ); +static ivas_error TDREND_SFX_SpatBin_Clear( SFX_SpatBin_t *SfxSpatBin_p, const int32_t output_Fs ); /*-------------------------------------------------------------------* @@ -352,7 +352,8 @@ static void TDREND_SFX_SpatBin_Resampling( * --------------------------------------------------------------------*/ -void TDREND_SFX_SpatBin_SetParams( +/*! r: TD Renderer result code. */ +ivas_error TDREND_SFX_SpatBin_SetParams( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct to be updated */ const SFX_SpatBin_Params_t *NewParam_p, /* i : New parameters struct */ const int32_t output_Fs /* i : Output sample rate */ @@ -396,7 +397,7 @@ void TDREND_SFX_SpatBin_SetParams( SfxSpatBin_p->OpMode = SFX_OFF; } - return; + return IVAS_ERR_OK; } @@ -553,7 +554,6 @@ static void TDREND_SFX_SpatBin_SetParamsInitializeOff( SfxSpatBin_p->NoOfLeftOldBufferSamples = SFX_SPAT_BIN_SINC_M - 1 + TDREND_MaxITD[i]; SfxSpatBin_p->NoOfRightOldBufferSamples = SFX_SPAT_BIN_SINC_M - 1 + TDREND_MaxITD[i]; SfxSpatBin_p->Left_Tf = 0.0; - return; } @@ -925,16 +925,14 @@ static void TDREND_SFX_SpatBin_UpdateParams( * TDREND_SFX_SpatBin_Execute_Main() * * The main rendering function that is called from the Audio Mixer. + * --------------------------------------------------------------------*/ -void TDREND_SFX_SpatBin_Execute_Main( - SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ - const float *InBuffer_p, /* i : Input buffer */ -#ifdef FIX_I106_TDREND_5MS - const int16_t subframe_length, /* i : subframe length */ -#else - const int16_t output_frame, /* i : frame length */ -#endif +/*! r: TD Renderer result code. */ +ivas_error TDREND_SFX_SpatBin_Execute_Main( + SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ + const float *InBuffer_p, /* i : Input buffer */ + const int16_t output_frame, /* i : frame length */ float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ @@ -952,11 +950,7 @@ void TDREND_SFX_SpatBin_Execute_Main( /* Make sure the blocks are not longer than 6 msec. */ NoOfBlocks = 1; -#ifdef FIX_I106_TDREND_5MS - TempNoOfRequestedOutputSamples = subframe_length; -#else TempNoOfRequestedOutputSamples = output_frame; -#endif while ( TempNoOfRequestedOutputSamples > SfxSpatBin_p->MaxBlockLength ) { NoOfBlocks = NoOfBlocks << 1; @@ -970,11 +964,7 @@ void TDREND_SFX_SpatBin_Execute_Main( RightOutBufferPointer_p = RightOutBuffer_p; *NoOfUsedInputSamples_p = 0; *NoOfDeliveredOutputSamples_p = 0; -#ifdef FIX_I106_TDREND_5MS - TempNoOfInputSamples = subframe_length; -#else TempNoOfInputSamples = output_frame; -#endif for ( i = 0; i < NoOfBlocks; i++ ) { @@ -1003,17 +993,13 @@ void TDREND_SFX_SpatBin_Execute_Main( if ( i == NoOfBlocks - 2 ) { /* The last block should produce the remaining number of samples */ -#ifdef FIX_I106_TDREND_5MS - TempNoOfRequestedOutputSamples = subframe_length - *NoOfDeliveredOutputSamples_p; -#else TempNoOfRequestedOutputSamples = output_frame - *NoOfDeliveredOutputSamples_p; -#endif } *NoOfUsedInputSamples_p = *NoOfUsedInputSamples_p + TempNoOfUsedInputSamples; TempNoOfInputSamples = TempNoOfInputSamples - TempNoOfUsedInputSamples; } - return; + return IVAS_ERR_OK; } @@ -1196,7 +1182,7 @@ static void TDREND_SFX_SpatBin_Execute( } /* Update number of old samples */ - SfxSpatBin_p->NoOfRightOldBufferSamples = *NoOfUsedInputSamples_p - Ind; + SfxSpatBin_p->NoOfRightOldBufferSamples = *NoOfUsedInputSamples_p - (int16_t) Ind; return; } @@ -1209,6 +1195,7 @@ static void TDREND_SFX_SpatBin_Execute( * --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_SFX_SpatBin_Initialize( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ const int32_t output_Fs /* i : Output sampling rate */ @@ -1291,21 +1278,19 @@ ivas_error TDREND_SFX_SpatBin_Initialize( * --------------------------------------------------------------------*/ -static void TDREND_SFX_SpatBin_Clear( +/*! r: TD Renderer result code. */ +static ivas_error TDREND_SFX_SpatBin_Clear( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ const int32_t output_Fs /* i : Output sample rate */ ) { int16_t i; int16_t MaxITD = TDREND_MaxITD[2]; - SfxSpatBin_p->OpMode = SFX_OFF; SfxSpatBin_p->TurningOffEffect = FALSE; SfxSpatBin_p->TurningOnEffect = FALSE; - /* Init during next SetParams-call */ SfxSpatBin_p->InitializeParams = TRUE; - /* Fill old buffers with zeros */ switch ( output_Fs ) { @@ -1331,7 +1316,7 @@ static void TDREND_SFX_SpatBin_Clear( SfxSpatBin_p->ResampledBufferRight[i] = 0.0f; } - return; + return IVAS_ERR_OK; } diff --git a/lib_rend/ivas_objectRenderer_sources.c b/lib_rend/ivas_objectRenderer_sources.c index a9e88602ca..b24708a195 100644 --- a/lib_rend/ivas_objectRenderer_sources.c +++ b/lib_rend/ivas_objectRenderer_sources.c @@ -55,13 +55,14 @@ static void TDREND_SRC_REND_Init( TDREND_SRC_REND_t *SrcRend_p, const int32_t ou /*-------------------------------------------------------------------* - * TDREND_MIX_SRC_SetPos() + * TDREND_MIX_SetSrcPos() * * Set source position --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetPos( - BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ + BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const float *Vec_p /* i : Position vector */ ) @@ -93,6 +94,7 @@ ivas_error TDREND_MIX_SRC_SetPos( * Set source direciton --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetDir( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ @@ -127,6 +129,7 @@ ivas_error TDREND_MIX_SRC_SetDir( * Set directional attenuation for the mixer. --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetDirAtten( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ @@ -143,7 +146,6 @@ ivas_error TDREND_MIX_SRC_SetDirAtten( SrcSpatial_p = hBinRendererTd->Sources[SrcInd]->SrcSpatial_p; TDREND_SRC_SPATIAL_SetDirAtten( SrcSpatial_p, DirAtten_p ); } - return IVAS_ERR_OK; } @@ -154,6 +156,7 @@ ivas_error TDREND_MIX_SRC_SetDirAtten( * Set play state for the source. --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetPlayState( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ @@ -178,6 +181,7 @@ ivas_error TDREND_MIX_SRC_SetPlayState( * Renderer allocation --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ static ivas_error TDREND_SRC_REND_Alloc( TDREND_SRC_REND_t **SrcRend_pp /* i/o: Source object */ ) @@ -437,6 +441,7 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( * Allocatie spatial properties of a source. --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ static ivas_error TDREND_SRC_SPATIAL_Alloc( TDREND_SRC_SPATIAL_t **SrcSpatial_pp /* i/o: Source spatial parameters */ ) @@ -646,6 +651,7 @@ static float TDREND_SRC_SPATIAL_GetDistGain( * Allocate a source. --------------------------------------------------------------------*/ +/*! r: TD Renderer result code. */ ivas_error TDREND_SRC_Alloc( TDREND_SRC_t **Src_pp /* i/o: Source */ ) diff --git a/lib_rend/ivas_output_init.c b/lib_rend/ivas_output_init.c index b7af932861..fcaa6f9442 100644 --- a/lib_rend/ivas_output_init.c +++ b/lib_rend/ivas_output_init.c @@ -263,7 +263,9 @@ void ivas_renderer_select( AUDIO_CONFIG output_config; AUDIO_CONFIG transport_config; +#ifdef FIX_I87 int16_t nchan_internal; +#endif renderer_type = &( st_ivas->renderer_type ); internal_config = &( st_ivas->intern_config ); @@ -358,7 +360,12 @@ void ivas_renderer_select( if ( st_ivas->hDecoderConfig->Opt_Headrotation ) { +#ifdef FIX_I87 +#ifdef SBA_ORDER_BITSTREAM nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); +#else + nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); +#endif if ( nchan_internal == 2 ) { st_ivas->hHeadTrackData->shd_rot_max_order = 1; @@ -375,6 +382,24 @@ void ivas_renderer_select( { st_ivas->hHeadTrackData->shd_rot_max_order = 3; } +#else + if ( st_ivas->nchan_transport == 2 ) + { + st_ivas->hHeadTrackData->shd_rot_max_order = 1; + } + else if ( st_ivas->nchan_transport == 4 || st_ivas->nchan_transport == 3 ) + { + st_ivas->hHeadTrackData->shd_rot_max_order = 0; + } + else if ( st_ivas->nchan_transport == 6 || st_ivas->nchan_transport == 5 ) + { + st_ivas->hHeadTrackData->shd_rot_max_order = 2; + } + else if ( st_ivas->nchan_transport == 8 || st_ivas->nchan_transport == 7 ) + { + st_ivas->hHeadTrackData->shd_rot_max_order = 3; + } +#endif } } else if ( st_ivas->ivas_format == MC_FORMAT ) @@ -511,14 +536,7 @@ void ivas_renderer_select( if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR && ( output_config != AUDIO_CONFIG_5_1 && output_config != AUDIO_CONFIG_5_1_2 && output_config != AUDIO_CONFIG_5_1_4 && output_config != AUDIO_CONFIG_7_1 && output_config != AUDIO_CONFIG_7_1_4 && output_config != AUDIO_CONFIG_LS_CUSTOM ) ) { - if ( output_config == AUDIO_CONFIG_HOA2 || output_config == AUDIO_CONFIG_FOA ) - { - *internal_config = output_config; - } - else - { - *internal_config = AUDIO_CONFIG_HOA3; - } + *internal_config = AUDIO_CONFIG_HOA3; st_ivas->renderer_type = RENDERER_SBA_LINEAR_DEC; } else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->nchan_transport == 1 ) || @@ -526,11 +544,7 @@ void ivas_renderer_select( { *renderer_type = RENDERER_DISABLE; } -#ifdef ALIGN_SID_SIZE - else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) ) -#else else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) ) -#endif { *renderer_type = RENDERER_DISABLE; } diff --git a/lib_rend/ivas_reverb.c b/lib_rend/ivas_reverb.c index 9bee3214d7..7073169bcc 100644 --- a/lib_rend/ivas_reverb.c +++ b/lib_rend/ivas_reverb.c @@ -795,17 +795,10 @@ static void set_reverb_acoustic_data( { int16_t nr_out_ch, hrtf_idx, offset, iter_idx, bin_idx; float ln_1e6_inverted, delay_diff, exp_argument; -#ifdef FIX_CREND_CHANNELS - float *pHrtf_set_l_re[MAX_TRANSPORT_CHANNELS]; - float *pHrtf_set_l_im[MAX_TRANSPORT_CHANNELS]; - float *pHrtf_set_r_re[MAX_TRANSPORT_CHANNELS]; - float *pHrtf_set_r_im[MAX_TRANSPORT_CHANNELS]; -#else float *pHrtf_set_l_re[IVAS_MAX_NUM_CH]; float *pHrtf_set_l_im[IVAS_MAX_NUM_CH]; float *pHrtf_set_r_re[IVAS_MAX_NUM_CH]; float *pHrtf_set_r_im[IVAS_MAX_NUM_CH]; -#endif /* use crend hrtf filters */ if ( hHrtf != NULL ) diff --git a/lib_util/hrtf_file_reader.c b/lib_util/hrtf_file_reader.c index 92b0058436..1dc481c84e 100644 --- a/lib_util/hrtf_file_reader.c +++ b/lib_util/hrtf_file_reader.c @@ -165,7 +165,6 @@ static void LoadBSplineBinaryITD( modelITD->W = (const float *) modelITD->W_dyn; modelITD->azimBsShape = (const float *) modelITD->azimBsShape_dyn; modelITD->elevBsShape = (const float *) modelITD->elevBsShape_dyn; - return; } @@ -311,7 +310,7 @@ static ivas_error LoadBSplineBinary( * * Load HRTF model or table from file --------------------------------------------------------------------*/ - +/*! r: TD Renderer result code. */ static ivas_error TDREND_MIX_LoadHRTF( FILE *f_hrtf, /* i/o: File pointer to HRTF file */ IVAS_DEC_HRTF_HANDLE HrFiltSet_p /* o : Loaded HR filter set */ diff --git a/pytest.ini b/pytest.ini index c4ed77a9f6..9d9a3bbf8e 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,13 +1,8 @@ # pytest.ini # note: per convention, this file is placed in the root directory of the repository [pytest] -addopts = -ra --tb=short --basetemp=./tmp -n auto -# Write captured system-out log messages to JUnit report. -junit_logging = system-out -# Do not capture log information for passing tests to JUnit report. -junit_log_passing_tests = False -junit_duration_report = call -junit_family = xunit1 +addopts = -ra --tb=short --basetemp=./tmp -v +junit_family=xunit1 log_file_level = DEBUG log_format = %(asctime)s %(levelname)s %(message)s log_date_format = %Y-%m-%d %H:%M:%S diff --git a/readme.txt b/readme.txt index 86e223b32c..4d4de5864a 100644 --- a/readme.txt +++ b/readme.txt @@ -195,7 +195,7 @@ EVS mono is default, for IVAS choose one of the following: -stereo, -ism, -sba, where 0 = adaptive, 3-100 = fixed in number of frames, default is deactivated -dtx : Activate DTX mode with a SID update rate of 8 frames - Note: DTX is currently supported in EVS, stereo, 1 ISm, + Note: DTX is currently supported in EVS, DFT/TD stereo, 1 ISm, SBA (up to 128kbps) and MASA (up to 128kbps) -rf p o : Activate channel-aware mode for WB and SWB signal at 13.2kbps, where FEC indicator, p: LO or HI, and FEC offset, o: 2, 3, 5, or 7 in number of frames. diff --git a/scripts/IvasBuildAndRunChecks.py b/scripts/IvasBuildAndRunChecks.py index 1cf4a868db..fe1953a603 100755 --- a/scripts/IvasBuildAndRunChecks.py +++ b/scripts/IvasBuildAndRunChecks.py @@ -36,9 +36,7 @@ import sys from pyivastest.IvasSvnBuilder import * from pyivastest import IvasScriptsCommon import pyivastest.constants as constants - - -RET_CODE_FAILURE = 101 +from pyivastest import ivas_svn class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): @@ -171,10 +169,14 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): for check in checks: br.run(check) if self.args["create_html_output"]: - cmd = ["git", "rev-parse", "HEAD"] - commit_hash = subprocess.run(cmd, capture_output=True).stdout.decode("utf8") + revision = ivas_svn.get_local_svn_info(self.args["srcdir"], self.logger) + if revision is None: + print("Could not get revision from local copy") + revision = -1 + else: + revision = revision["commit_revision"] br.build_and_run_dict[check]["analyzer"].write_html_file( - check, self.args["create_html_output"], commit_hash + check, self.args["create_html_output"], revision ) for r in br.build_and_run_dict[check]["runner"].results: self.logger.console(r[0]) @@ -193,16 +195,7 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): self.args["create_complexity_tables"] ) - for check in checks: - runner = br.build_and_run_dict[check]["runner"] - failed_encs = runner.failed_modes["enc"] - failed_decs = runner.failed_modes["dec"] - if len(failed_encs) > 0 or len(failed_decs) > 0: - return RET_CODE_FAILURE - else: - return 0 - if __name__ == "__main__": script = IvasBuildAndRunChecks() - sys.exit(script.run()) + script.run() diff --git a/scripts/config/ci_linux.json b/scripts/config/ci_linux.json index 6279d3f89d..23aee75ba7 100644 --- a/scripts/config/ci_linux.json +++ b/scripts/config/ci_linux.json @@ -1,6 +1,6 @@ { "afspPath": "not_needed", - "utilPath": "/tools", + "utilPath": "not_needed", "inpaths": { "MONO": "/usr/local/testv/test_mono.wav", "STEREO": "/usr/local/testv/test_stereo.wav", diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 721e93a457..ffafdb3776 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -276,14 +276,6 @@ ../IVAS_cod -ism 1 testv/stvISM1.csv 13200 48 testv/stv1ISM48s.pcm bit ../IVAS_dec MONO 48 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst -// 1 ISm with metadata at 13.2 kbps, 48 kHz in, 48 kHz out, DTX on, BINAURAL out, random FEC at 5% -../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 13200 48 testv/stv48n.pcm bit -../IVAS_dec -fec 5 BINAURAL 48 bit testv/stv48n.pcm_13200_48-48_DTX_FEC5_BINAURAL.tst - -// 1 ISm with metadata at 32 kbps, 32 kHz in, 32 kHz out, DTX on, MONO out -../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 32000 32 testv/stv32n.pcm bit -../IVAS_dec MONO 32 bit testv/stv32n.pcm_32000_32-32_DTX_MONO.tst - // 2 ISm with metadata at 16.4 kbps, 48 kHz in, 48 kHz out, STEREO out ../IVAS_cod -ism 2 testv/stvISM1.csv testv/stvISM2.csv 16400 48 testv/stv2ISM48s.pcm bit ../IVAS_dec STEREO 48 bit testv/stv2ISM48s.pcm_16400_48-48_STEREO.tst diff --git a/tests/conftest.py b/scripts/ivas_pytests/conftest.py similarity index 57% rename from tests/conftest.py rename to scripts/ivas_pytests/conftest.py index da1c26e54a..2cc74689af 100644 --- a/tests/conftest.py +++ b/scripts/ivas_pytests/conftest.py @@ -1,37 +1,31 @@ -__copyright__ = \ """ -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. -""" - -__doc__ = \ -""" -Pytest customization (configuration and fixtures) for the IVAS codec test suite. + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. """ import logging @@ -41,7 +35,7 @@ from subprocess import run import textwrap from typing import Optional import os -import testconfig + import pytest logger = logging.getLogger(__name__) @@ -60,104 +54,75 @@ def log_dbg_msg(message): @pytest.fixture(scope="session", autouse=True) def rootdir(request): - """ - Return root directory for tests. - """ return str(request.config.rootdir) def pytest_addoption(parser): - parser.addoption( - "--update_ref", - action="store", - help="""Indicate whether references shall be updated. - 0: Only DUT processing, no reference generation, references need to be present. - 1: Only reference generation (unconditionally), no DUT processing. - 2: DUT processing, references are generated when not present (not supported by all tests). - """, - default="0", - ) + parser.addoption("--update_ref", action="store", default="0") + parser.addoption("--p4_CL", action="store") + parser.addoption("--p4cmd_active", action="store", default="0") parser.addoption( "--dut_encoder_path", action="store", - help="If specified, use given binary as DUT encoder.", + help="If specified, use given binary as DUT encoder." ) parser.addoption( "--dut_decoder_path", action="store", - help="If specified, use given binary as DUT decoder.", + help="If specified, use given binary as DUT decoder." ) parser.addoption( "--ref_encoder_path", action="store", - help="If specified, use given binary as REF encoder.", + help="If specified, use given binary as REF encoder." ) parser.addoption( "--ref_decoder_path", action="store", - help="If specified, use given binary as REF decoder.", + help="If specified, use given binary as REF decoder." ) + # TODO: rename to test_vector_path parser.addoption( - "--test_vector_path", + "--data_system_tests_path", action="store", - help="If specified, use given directory as base directory for test vector files.", + help="If specified, use given directory as base data directory for system tests." ) parser.addoption( "--reference_path", action="store", - help="If specified, use given directory as base directory for reference files.", + help="If specified, use given directory as base directory for reference files." ) parser.addoption( "--dut_base_path", action="store", - help="If specified, use given directory as base data directory for dut files.", - ) - - parser.addoption( - "--param_file", - action="store", - help="If specified, use given param file in test_param_file.", - ) - - parser.addoption( - "--keep_files", - action="store_true", - help="By default, the DUT output files of successful tests are deleted." - " Use --keep_files to prevent these deletions.", + help="If specified, use given directory as base data directory for dut files." ) @pytest.fixture(scope="session", autouse=True) def update_ref(request): - """ - Return indication whether references shall be updated. - 0: Only DUT processing, no reference generation. - 1: Only reference generation (unconditionally), no DUT processing. - 2: DUT processing, references are generated when not present. - """ return int(request.config.getoption("--update_ref")) -@pytest.fixture(scope="session") -def keep_files(request) -> bool: - """ - Return indication to not delete DUT output files. - """ - return request.config.option.keep_files +@pytest.fixture(scope="session", autouse=True) +def p4_CL(request): + return request.config.option.p4_CL + + +@pytest.fixture(scope="session", autouse=True) +def p4cmd_active(request): + return int(request.config.getoption("--p4cmd_active")) @pytest.fixture(scope="session") -def dut_encoder_path(request) -> str: - """ - Return path of DUT encoder binary. - """ +def dut_encoder_path(request) -> Path: if request.config.option.dut_encoder_path: return request.config.option.dut_encoder_path @@ -165,16 +130,15 @@ def dut_encoder_path(request) -> str: system = platform.system() if system == "Windows": - path = here.joinpath("../IVAS_cod.exe") + path = here.joinpath("../../IVAS_cod.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../IVAS_cod") + path = here.joinpath("../../IVAS_cod") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - if not os.path.isfile(path): - pytest.exit(f"\nDUT encoder binary {path} not found!\n!") + assert os.path.isfile(path) return path @@ -199,7 +163,6 @@ class EncoderFrontend: agc_op: Optional[int] = None, bypass_mode: Optional[int] = None, quiet_mode: Optional[bool] = True, - add_option_list: Optional[list] = None, ) -> None: command = [self._path] @@ -222,9 +185,6 @@ class EncoderFrontend: if quiet_mode: command.extend(["-q"]) - if add_option_list is not None: - command.extend(add_option_list) - # add mandatory parameters command += [ str(bitrate), @@ -261,9 +221,6 @@ class EncoderFrontend: @pytest.fixture(scope="function") def dut_encoder_frontend(dut_encoder_path) -> EncoderFrontend: - """ - Return a :class:`conftest.EncoderFrontend` instance as DUT for the test session. - """ encoder = EncoderFrontend(dut_encoder_path, "DUT") yield encoder @@ -272,40 +229,34 @@ def dut_encoder_frontend(dut_encoder_path) -> EncoderFrontend: @pytest.fixture(scope="session") -def ref_encoder_path(request) -> str: - """ - Return path of REF encoder binary. - """ +def ref_encoder_path(request) -> Path: if request.config.option.ref_encoder_path: return request.config.option.ref_encoder_path - if request.config.option.update_ref == "0": + update_ref = int(request.config.getoption("--update_ref")) + if not update_ref: return None - # assume specifically named encoder when update_ref is selected, but no ref_encoder_path is specified + # assume default encoder when update_ref is selected, but no ref_encoder_path is specified here = Path(__file__).parent.resolve() system = platform.system() if system == "Windows": - path = here.joinpath("../IVAS_cod_ref.exe") + path = here.joinpath("../../IVAS_cod.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../IVAS_cod_ref") + path = here.joinpath("../../IVAS_cod") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - if not os.path.isfile(path): - pytest.exit(f"\nREF encoder binary {path} not found!\n!") + assert os.path.isfile(path) return path @pytest.fixture(scope="session") -def dut_decoder_path(request) -> str: - """ - Return path of DUT decoder binary. - """ +def dut_decoder_path(request) -> Path: if request.config.option.dut_decoder_path: return request.config.option.dut_decoder_path @@ -313,16 +264,15 @@ def dut_decoder_path(request) -> str: system = platform.system() if system == "Windows": - path = here.joinpath("../IVAS_dec.exe") + path = here.joinpath("../../IVAS_dec.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../IVAS_dec") + path = here.joinpath("../../IVAS_dec") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - if not os.path.isfile(path): - pytest.exit(f"\nDUT decoder binary {path} not found!\n!") + assert os.path.isfile(path) return path @@ -343,7 +293,6 @@ class DecoderFrontend: output_path: Path, quiet_mode: Optional[bool] = True, plc_file: Optional[Path] = None, - add_option_list: Optional[list] = None, ) -> None: command = [self._path] @@ -354,14 +303,9 @@ class DecoderFrontend: if plc_file is not None: command.extend(["-fec", str(plc_file)]) - if add_option_list is not None: - command.extend(add_option_list) - # add mandatory parameters - # output_config is mandatory for IVAS; EVS does not have this parameter, indicated by "" - if output_config != "": - command += [output_config] command += [ + output_config, str(output_sampling_rate), str(input_bitstream_path), str(output_path), @@ -395,9 +339,6 @@ class DecoderFrontend: @pytest.fixture(scope="function") def dut_decoder_frontend(dut_decoder_path) -> DecoderFrontend: - """ - Return a :class:`conftest.DecoderFrontend` instance as DUT for the test session. - """ decoder = DecoderFrontend(dut_decoder_path, "DUT") yield decoder @@ -406,46 +347,40 @@ def dut_decoder_frontend(dut_decoder_path) -> DecoderFrontend: @pytest.fixture(scope="session") -def ref_decoder_path(request) -> str: - """ - Return path of REF decoder binary. - """ +def ref_decoder_path(request) -> Path: if request.config.option.ref_decoder_path: return request.config.option.ref_decoder_path - if request.config.option.update_ref == "0": + update_ref = int(request.config.getoption("--update_ref")) + if not update_ref: return None - # assume specifically named decoder when update_ref is selected, but no ref_decoder_path is specified + # assume default decoder when update_ref is selected, but no ref_decoder_path is specified here = Path(__file__).parent.resolve() system = platform.system() if system == "Windows": - path = here.joinpath("../IVAS_dec_ref.exe") + path = here.joinpath("../../IVAS_dec.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../IVAS_dec_ref") + path = here.joinpath("../../IVAS_dec") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - if not os.path.isfile(path): - pytest.exit(f"\nREF decoder binary {path} not found!\n!") + assert os.path.isfile(path) return path @pytest.fixture(scope="session") -def test_vector_path(request) -> str: - """ - Return base directory of test vector files. - """ - if request.config.option.test_vector_path: - return request.config.option.test_vector_path +def data_system_tests_path(request) -> Path: + if request.config.option.data_system_tests_path: + return request.config.option.data_system_tests_path here = Path(__file__).parent.resolve() - path = here.joinpath("../scripts/testv") + path = here.joinpath("testv") path = str(path.resolve()) @@ -453,10 +388,7 @@ def test_vector_path(request) -> str: @pytest.fixture(scope="session") -def reference_path(request) -> str: - """ - Return base directory of reference files. - """ +def reference_path(request) -> Path: if request.config.option.reference_path: return request.config.option.reference_path @@ -466,18 +398,11 @@ def reference_path(request) -> str: path = str(path.resolve()) - if request.config.option.update_ref == "0": - if not os.path.isdir(path): - pytest.exit(f"\nREF path {path} not found!\nPlease generate the references, first!\n!") - return path @pytest.fixture(scope="session") -def dut_base_path(request) -> str: - """ - Return base data directory for dut files. - """ +def dut_base_path(request) -> Path: if request.config.option.dut_base_path: return request.config.option.dut_base_path @@ -500,5 +425,3 @@ def pytest_configure(config): config.addinivalue_line( "markers", "create_ref_part2: reference creation test that depends on create_ref references" ) - if config.option.param_file: - testconfig.PARAM_FILE = config.option.param_file diff --git a/scripts/ivas_pytests/self_test_b.py b/scripts/ivas_pytests/self_test_b.py new file mode 100755 index 0000000000..941739435e --- /dev/null +++ b/scripts/ivas_pytests/self_test_b.py @@ -0,0 +1,273 @@ +#!/usr/bin/env python3 + +""" + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +""" +Script to run the pytest tests. + +Step 1: Set the stage for the pytest run. + +Step 2: Run pytest. +""" + +import os +import sys +import argparse +import subprocess +import platform +from pathlib import Path + +sys.path.append('scripts/ivas_pytests/tests/') +from cut_pcm import cut_samples + +BIN_EXT = ".exe" if platform.system() == "Windows" else "" +HERE = Path(__file__).parent.resolve() +DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../../IVAS_cod{BIN_EXT}").resolve()) +DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../../IVAS_dec{BIN_EXT}").resolve()) +DEFAULT_ENCODER_REF = str(HERE.joinpath(f"../../IVAS_cod_ref{BIN_EXT}").resolve()) +DEFAULT_DECODER_REF = str(HERE.joinpath(f"../../IVAS_dec_ref{BIN_EXT}").resolve()) +CREND_UNITTEST_REF = str(HERE.joinpath(f"tests/unit_tests/crend/IVAS_crend_unit_test_ref{BIN_EXT}").resolve()) +TEST_VECTOR_DIR = str(HERE.joinpath("../testv").resolve()) +REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) +DUT_BASE_DIR = str(HERE.joinpath("dut").resolve()) + + +def build_enc_and_dec(src_dir): + """ + Build the encoder and decoder binaries. + """ + if platform.system() == "Windows": + olddir = os.getcwd() + os.chdir(src_dir) + os.chdir("Workspace_msvc") + command = ["MSBuild.exe", "Workspace_msvc.sln", "/t:Clean", "/p:configuration=Release", "/p:Platform=Win32"] + subprocess.run(command, check=True) + command = ["MSBuild.exe", "Workspace_msvc.sln", "/property:configuration=Release", "/p:Platform=Win32"] + subprocess.run(command, check=True) + os.chdir(olddir) + else: + command = ["make", "-C", src_dir, "clean"] + subprocess.run(command, check=True) + command = ["make", "-C", src_dir] + subprocess.run(command, check=True) + + +def build_crend_unittest(src_dir): + """ + Build the crend unit test binary. + """ + crend_dir = f"{src_dir}/scripts/ivas_pytests/tests/unit_tests/crend" + if platform.system() == "Windows": + olddir = os.getcwd() + os.chdir(crend_dir) + # command = ["MSBuild.exe", "ivas_crend_unit_test.sln", "/t:Clean", "/p:configuration=Release", "/p:Platform=Win32"] + # subprocess.run(command, check=True) + command = ["MSBuild.exe", "ivas_crend_unit_test.sln", "/property:configuration=Release", "/p:Platform=Win32"] + subprocess.run(command, check=True) + os.chdir(olddir) + else: + # command = ["make", "-C", src_dir, "clean"] + # subprocess.run(command, check=True) + command = ["make", "-C", src_dir, "IVAS_crend_unit_test"] + subprocess.run(command, check=True) + + +def build_dut_binaries(): + """ + Build the DUT binaries. + """ + print("Building the DUT binaries") + dut_src_dir = str(HERE.joinpath("../..").resolve()) + build_enc_and_dec(dut_src_dir) + build_crend_unittest(dut_src_dir) + + +def create_short_testvectors(): + """ + Create short (5sec) testvectors. + """ + print("Creating short (5sec) testvectors") + num_channels = "4" # currently only FOA + cut_from = "0.0" + cut_len = "5.0" + for fs in ['48', '32', '16']: + in_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c.pcm" + cut_gain = "1.0" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut.pcm" + cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) + cut_gain = "16.0" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" + cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) + + +def main(argv): + # check for python >= 3.7 + if sys.version_info[0] < 3 or sys.version_info[1] < 7: + sys.exit("This script is written for Python >= 3.7. Found: " + platform.python_version()) + + parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument( + "--create_only", + action="store_true", + default=False, + help="Create references when needed, but don't run the tests" + ) + parser.add_argument( + "--numprocesses", + action="store", + default="auto", + help="Number of processes to use in pytest (default: auto)", + ) + parser.add_argument("--encref", help=f"REF encoder binary (default:{DEFAULT_ENCODER_REF})") + parser.add_argument("--decref", help=f"REF decoder binary (default:{DEFAULT_DECODER_REF})") + parser.add_argument("--encdut", help=f"DUT encoder binary (default:{DEFAULT_ENCODER_DUT})") + parser.add_argument("--decdut", help=f"DUT decoder binary (default:{DEFAULT_DECODER_DUT})") + + args = parser.parse_args(argv[1:]) + + # check for DUT binaries + if args.encdut: + encdut_path = os.path.realpath(args.encdut) + if not os.path.exists(encdut_path): + sys.exit(f"DUT encoder binary {encdut_path} does not exist.") + else: + encdut_path = DEFAULT_ENCODER_DUT + if args.decdut: + decdut_path = os.path.realpath(args.decdut) + if not os.path.exists(decdut_path): + sys.exit(f"DUT encoder binary {decdut_path} does not exist.") + else: + decdut_path = DEFAULT_DECODER_DUT + if not os.path.exists(encdut_path) or not os.path.exists(decdut_path): + build_dut_binaries() + + if not os.path.exists(REFERENCE_DIR): + # check for REF binaries + if args.encref: + encref_path = os.path.realpath(args.encref) + if not os.path.exists(encref_path): + sys.exit(f"REF encoder binary {encref_path} does not exist.") + else: + encref_path = DEFAULT_ENCODER_REF + if args.decref: + decref_path = os.path.realpath(args.decref) + if not os.path.exists(decref_path): + sys.exit(f"REF encoder binary {decref_path} does not exist.") + else: + decref_path = DEFAULT_DECODER_REF + if not os.path.exists(encref_path) or not os.path.exists(decref_path): + sys.exit("Reference binaries do not exist.") + + # check for test vectors + if not os.path.exists(TEST_VECTOR_DIR): + sys.exit(f"Test vector directory {TEST_VECTOR_DIR} does not exist.") + + # check for references + if os.path.exists(REFERENCE_DIR): + print(f"Using existing references directory {REFERENCE_DIR}") + else: + # create references + print(f"Creating references within the references directory {REFERENCE_DIR}") + create_short_testvectors() + if platform.system() == "Windows": + base_cmd = ["pytest"] + else: + base_cmd = ["python3", "-m", "pytest"] + base_cmd += [ + "scripts/ivas_pytests/tests", + "-n", + args.numprocesses, + "--update_ref", + "1", + "-v", + "--data_system_tests_path", + TEST_VECTOR_DIR, + "--reference_path", + REFERENCE_DIR, + "--dut_base_path", + DUT_BASE_DIR, + "--ref_encoder_path", + encref_path, + "--ref_decoder_path", + decref_path, + "--dut_encoder_path", + encdut_path, + "--dut_decoder_path", + decdut_path, + ] + # work-around in unit tests via environment variable + # TESTVECTOR_PATH_REL_GROUPB: to specify the test vector directory relative to ivas_pytests folder + # TESTVECTOR_PATH_REL_TRUNK: to specify the test vector directory relative to trunk + my_env = os.environ.copy() + my_env["TESTVECTOR_PATH_REL_GROUPB"] = "testv/" + my_env["TESTVECTOR_PATH_REL_TRUNK"] = "/scripts/ivas_pytests/testv/" # leading "/" is important + my_env["CREND_UNIT_TEST_BIN"] = CREND_UNITTEST_REF + print("pytest command line to be executed from project root folder:") + print(" ".join(base_cmd + ["-m", "create_ref"])) + subprocess.run(base_cmd + ["-m", "create_ref"], check=False, env=my_env) + print("pytest command line to be executed from project root folder:") + print(" ".join(base_cmd + ["-m", "create_ref_part2"])) + subprocess.run(base_cmd + ["-m", "create_ref_part2"], check=False, env=my_env) + + if args.create_only: + return + + # run pytest + if platform.system() == "Windows": + cmd = ["pytest"] + else: + cmd = ["python3", "-m", "pytest"] + cmd += [ + "scripts/ivas_pytests/tests", + "-n", + args.numprocesses, + "-v", + "--data_system_tests_path", + TEST_VECTOR_DIR, + "--reference_path", + REFERENCE_DIR, + "--dut_base_path", + DUT_BASE_DIR, + "--dut_encoder_path", + encdut_path, + "--dut_decoder_path", + decdut_path, + "--junit-xml=report-junit.xml", + ] + # print pytest commandline + print("pytest command line to be executed from project root folder:") + print(" ".join(cmd)) + result = subprocess.run(cmd, check=False) + return result.returncode + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/tests/cmp_custom.py b/scripts/ivas_pytests/tests/cmp_custom.py old mode 100755 new mode 100644 similarity index 62% rename from tests/cmp_custom.py rename to scripts/ivas_pytests/tests/cmp_custom.py index ab22bc0ceb..e52d6df46c --- a/tests/cmp_custom.py +++ b/scripts/ivas_pytests/tests/cmp_custom.py @@ -1,37 +1,35 @@ #!/usr/bin/env python3 -__copyright__ = \ """ -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. """ -__doc__ = \ """ Script to compare samples in 2 PCM files. @@ -89,7 +87,7 @@ class CompareSamples: self.file_1.seek(0) self.file_2.seek(0) - def print_summary(self) -> (int, str): + def print_summary(self): """ Print the summary of the comparison. """ @@ -105,18 +103,19 @@ class CompareSamples: if not self.diff_present: print("Comparison success") print("") - return 0, "Comparison success" - - # comparison failed - print( - f"First unmatched diff ==> {self.first_diff}", - f"at sample num {self.first_diff_sample_num}", - ) - diff_msg = f"MAXIMUM ABS DIFF ==> {self.max_diff} at sample num {self.max_diff_sample_num}" - print(diff_msg) - print("Comparison failed") - print("") - return 1, f"Comparison failed, {diff_msg}" + return 0 + else: + print( + f"First unmatched diff ==> {self.first_diff}", + f"at sample num {self.first_diff_sample_num}", + ) + print( + f"MAXIMUM ABS DIFF ==> {self.max_diff} at sample num {self.max_diff_sample_num}" + ) + print("Comparison failed") + print("") + return 1 + return 1 def compare_next_sample(self): """ @@ -147,7 +146,7 @@ class CompareSamples: def usage(): print(__doc__) - return 1, "" + return 1 def cmp_custom( @@ -156,7 +155,7 @@ def cmp_custom( sample_size_in_bytes_str, tolerance_str, end_samples_to_skip_str="0", -) -> (int, str): +): """ Function to compare the samples in 2 PCM files. """ @@ -190,11 +189,10 @@ def cmp_custom( return cmp_samples.print_summary() -def main(argv) -> int: +def main(argv): if len(argv) < 5: return usage() - retval, _reason = cmp_custom(*argv[1:]) - return retval + return cmp_custom(*argv[1:]) if __name__ == "__main__": diff --git a/tests/cut_pcm.py b/scripts/ivas_pytests/tests/cut_pcm.py similarity index 99% rename from tests/cut_pcm.py rename to scripts/ivas_pytests/tests/cut_pcm.py index 938cb6fc43..62af257a73 100755 --- a/tests/cut_pcm.py +++ b/scripts/ivas_pytests/tests/cut_pcm.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 -__copyright__ = \ -""" +__license__ = """ (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, @@ -31,8 +30,7 @@ accordance with the laws of the Federal Republic of Germany excluding its confli the United Nations Convention on Contracts on the International Sales of Goods. """ -__doc__ = \ -""" +__doc__ = """ Script to cut samples from a 16-bit PCM file. USAGE : cut_pcm.py in_file_pcm out_file_pcm num_channels sample_rate start duration [gain] diff --git a/scripts/ivas_pytests/tests/il2mm.py b/scripts/ivas_pytests/tests/il2mm.py new file mode 100644 index 0000000000..eb09593bdb --- /dev/null +++ b/scripts/ivas_pytests/tests/il2mm.py @@ -0,0 +1,61 @@ +""" + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +import os + + +def il2mm(file_in, num_ch, b_delete=True): + """ + Convert interleaved input file to multiple mono output files. + """ + num_bytes_per_sample = 2 + num_bytes_per_frame = num_bytes_per_sample * num_ch + num_bytes_per_channel = os.path.getsize(file_in) / num_ch + + with open(file_in, "rb") as fid_in: + out_path = os.path.splitext(file_in)[0] + for chan in range(num_ch): + file_out = out_path + str(chan + 1) + "ch.raw" + with open(file_out, "wb") as fid_out: + bytes_written = 0 + offset = chan * num_bytes_per_sample + fid_in.seek(offset, 0) + while bytes_written < num_bytes_per_channel: + data = fid_in.read(num_bytes_per_sample) + fid_in.seek(num_bytes_per_frame - num_bytes_per_sample, 1) + written = fid_out.write(bytes(data)) + assert ( + written == num_bytes_per_sample + ), f"Error writing data: {written} != {num_bytes_per_sample}" + bytes_written += num_bytes_per_sample + + # delete interleaved input file + if b_delete: + os.remove(file_in) diff --git a/scripts/ivas_pytests/tests/requirements.txt b/scripts/ivas_pytests/tests/requirements.txt new file mode 100644 index 0000000000..764694dfc0 --- /dev/null +++ b/scripts/ivas_pytests/tests/requirements.txt @@ -0,0 +1,4 @@ +pytest==5.3.5 +pytest-xdist==1.31.0 +scipy==1.5.2 +numpy==1.19.2 diff --git a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py b/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py new file mode 100644 index 0000000000..fa17fd1d80 --- /dev/null +++ b/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py @@ -0,0 +1,180 @@ +""" + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +import os +import pytest +import shutil +import errno +import sys + +sys.path.append('scripts/ivas_pytests/') +sys.path.append('scripts/ivas_pytests/tests/') +from il2mm import il2mm +from cmp_custom import cmp_custom +from conftest import EncoderFrontend, DecoderFrontend + +#params +tag_list = ['stvFOA'] +plc_patterns = ['PLperc12mblen5', 'PLperc40mblen50', 'PLperc42mblen2'] +dtx_set = ['0', '1'] +ivas_br_list = ['32000', '64000', '96000', '256000'] +sampling_rate_list = ['48', '32', '16'] +agc_list = [0, 1] + +ch_count_foa = 4 +AbsTol = '3' + + +def check_and_makedir(dir_path): + if not os.path.exists(dir_path): + try: + os.makedirs(dir_path) + except OSError as e: + if e.errno != errno.EEXIST: + raise # raises the error again + + +# assumption: +# - the needed reference bitstreams are created by test_spar_foa_enc_system +# -> reference bitstreams are not any longer created as part of this test +# -> the parameters of this test (except additional parameter plc_pattern) need to be a subset of the parameters in test_spar_foa_enc_system +# -> the reference generation for this test (reference decoder output) needs to be done after completion of test_spar_foa_enc_system +# -> therefore the marker create_ref_part2 +@pytest.mark.create_ref_part2 +@pytest.mark.parametrize("ivas_br", ivas_br_list) +@pytest.mark.parametrize("dtx", dtx_set) +@pytest.mark.parametrize("tag", tag_list) +@pytest.mark.parametrize("plc_pattern", plc_patterns) +@pytest.mark.parametrize("fs", sampling_rate_list) +@pytest.mark.parametrize("agc", agc_list) +def test_spar_foa_plc_system( + dut_decoder_frontend: DecoderFrontend, + data_system_tests_path, + reference_path, + dut_base_path, + ref_decoder_path, + update_ref, + ivas_br, + dtx, + tag, + plc_pattern, + fs, + agc +): + tag = tag + fs + 'c' + + #dec + spar_foa_dec_plc(dut_decoder_frontend, data_system_tests_path, reference_path, dut_base_path, ref_decoder_path, tag, ch_count_foa, fs, ivas_br, dtx, plc_pattern, update_ref, agc) + + +######################################################### +############ test function ############################## +def spar_foa_dec_plc( + decoder_frontend, + test_vector_path, + reference_path, + dut_base_path, + ref_decoder_path, + tag, + ch_count, + sampling_rate, + ivas_br, + dtx, + plc_pattern, + update_ref, + agc +): + + ######### run cmd ##################################### + + tag_out = f"{tag}_ivasbr{ivas_br[:-3]}k_DTX{dtx}" + if agc == 1: + tag_out += '_AGC1' + plc_tag_out = f"{tag_out}_{plc_pattern}" + + dut_out_dir = f"{dut_base_path}/spar_foa_bs/raw/{plc_tag_out}" + ref_out_dir = f"{reference_path}/spar_foa_bs/raw/{plc_tag_out}" + + check_and_makedir(dut_out_dir) + check_and_makedir(ref_out_dir) + + plc_file = f"{test_vector_path}/{plc_pattern}.g192" + ref_in_pkt = f"{reference_path}/spar_foa_bs/pkt/{tag_out}.pkt" + ref_in_pkt_dutenc = f"{reference_path}/spar_foa_bs/pkt/{tag_out}_dutenc.pkt" + + if ref_decoder_path: + ref_decoder = DecoderFrontend(ref_decoder_path, "REF") + + # call REF decoder + ref_decoder.run( + "FOA", + sampling_rate, + ref_in_pkt, + f"{ref_out_dir}/out.raw", + plc_file=plc_file, + ) + + # convert REF interleaved to multi-mono + il2mm(f"{ref_out_dir}/out.raw", ch_count) + + if update_ref == 0: + # call DUT decoder + decoder_frontend.run( + "FOA", + sampling_rate, + ref_in_pkt_dutenc, + f"{dut_out_dir}/out.raw", + plc_file=plc_file, + ) + + il2mm(f"{dut_out_dir}/out.raw", ch_count) + + ######### compare cmd ##################################### + + end_skip_samples = '0' + + test_fail = False + for count in range(ch_count): + ch_id = str(count + 1) + + if cmp_custom( + f"{dut_out_dir}/out{ch_id}ch.raw", + f"{ref_out_dir}/out{ch_id}ch.raw", + "2", + AbsTol, + end_skip_samples + ) != 0: + test_fail = True + + ##File removal## + shutil.rmtree(dut_out_dir, ignore_errors=True) + + ##report failure + assert not test_fail diff --git a/tests/test_sba_bs_enc.py b/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py similarity index 71% rename from tests/test_sba_bs_enc.py rename to scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py index 95cfea1d19..df5d018ce5 100644 --- a/tests/test_sba_bs_enc.py +++ b/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py @@ -1,44 +1,47 @@ -__copyright__ = \ """ -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. """ -__doc__ = \ """ Test file to run C encoder and decoder code. The outputs are compared with C generated references. """ import os -import errno import pytest +import errno +import shutil +import sys +sys.path.append('scripts/ivas_pytests/') +sys.path.append('scripts/ivas_pytests/tests/') +from il2mm import il2mm from cmp_custom import cmp_custom from cut_pcm import cut_samples from conftest import EncoderFrontend, DecoderFrontend @@ -64,6 +67,7 @@ agc_list = [0, 1] sample_rate_bw_idx_list = [('48', 'SWB'), ('48', 'WB'), ('32', 'WB')] AbsTol = '4' +ch_count_foa = 4 def check_and_makedir(dir_path): @@ -82,16 +86,15 @@ def check_and_makedir(dir_path): def test_bypass_enc( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - test_vector_path, + data_system_tests_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, - keep_files, tag, fs, - bypass, + bypass ): if update_ref == 1 and bypass == 1: pytest.skip() @@ -105,9 +108,9 @@ def test_bypass_enc( output_config = "FOA" # enc - sba_enc( + spar_foa_enc( dut_encoder_frontend, - test_vector_path, + data_system_tests_path, ref_encoder_path, reference_path, dut_base_path, @@ -123,12 +126,13 @@ def test_bypass_enc( ) # dec - sba_dec( + spar_foa_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, + ch_count_foa, fs, ivas_br, dtx, @@ -136,8 +140,7 @@ def test_bypass_enc( bypass, agc, output_config, - update_ref, - keep_files, + update_ref ) @@ -147,21 +150,20 @@ def test_bypass_enc( @pytest.mark.parametrize("tag", tag_list) @pytest.mark.parametrize("fs", sample_rate_list) @pytest.mark.parametrize("agc", agc_list) -def test_sba_enc_system( +def test_spar_foa_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - test_vector_path, + data_system_tests_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, - keep_files, ivas_br, dtx, tag, fs, - agc, + agc ): tag = tag + fs + 'c' max_bw = "FB" @@ -170,14 +172,13 @@ def test_sba_enc_system( output_config = "FOA" if agc == 1: cut_gain = "16.0" - elif dtx == '1': - cut_gain = ".004" else: - cut_gain = "1.0" + cut_gain = "1.0" + # enc - sba_enc( + spar_foa_enc( dut_encoder_frontend, - test_vector_path, + data_system_tests_path, ref_encoder_path, reference_path, dut_base_path, @@ -195,12 +196,13 @@ def test_sba_enc_system( ) # dec - sba_dec( + spar_foa_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, + ch_count_foa, fs, ivas_br, dtx, @@ -208,8 +210,7 @@ def test_sba_enc_system( bypass, agc, output_config, - update_ref, - keep_files, + update_ref ) @pytest.mark.create_ref @@ -218,15 +219,14 @@ def test_sba_enc_system( def test_spar_hoa2_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - test_vector_path, + data_system_tests_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, - keep_files, ivas_br, - tag, + tag ): fs = '48' dtx = '0' @@ -239,9 +239,9 @@ def test_spar_hoa2_enc_system( output_config = "HOA2" # enc - sba_enc( + spar_foa_enc( dut_encoder_frontend, - test_vector_path, + data_system_tests_path, ref_encoder_path, reference_path, dut_base_path, @@ -258,12 +258,13 @@ def test_spar_hoa2_enc_system( ) # dec - sba_dec( + spar_foa_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, + ch_count_foa, fs, ivas_br, dtx, @@ -271,8 +272,7 @@ def test_spar_hoa2_enc_system( bypass, agc, output_config, - update_ref, - keep_files, + update_ref ) @pytest.mark.create_ref @@ -281,15 +281,14 @@ def test_spar_hoa2_enc_system( def test_spar_hoa3_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - test_vector_path, + data_system_tests_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, - keep_files, ivas_br, - tag, + tag ): fs = '48' dtx = '0' @@ -302,9 +301,9 @@ def test_spar_hoa3_enc_system( output_config = "HOA3" # enc - sba_enc( + spar_foa_enc( dut_encoder_frontend, - test_vector_path, + data_system_tests_path, ref_encoder_path, reference_path, dut_base_path, @@ -321,12 +320,13 @@ def test_spar_hoa3_enc_system( ) # dec - sba_dec( + spar_foa_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, + ch_count_foa, fs, ivas_br, dtx, @@ -334,8 +334,7 @@ def test_spar_hoa3_enc_system( bypass, agc, output_config, - update_ref, - keep_files, + update_ref ) @pytest.mark.create_ref @@ -343,20 +342,19 @@ def test_spar_hoa3_enc_system( @pytest.mark.parametrize("dtx", dtx_set) @pytest.mark.parametrize("tag", tag_list_bw_force) @pytest.mark.parametrize("sample_rate_bw_idx", sample_rate_bw_idx_list) -def test_sba_enc_BWforce_system( +def test_spar_foa_enc_BWforce_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - test_vector_path, + data_system_tests_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, - keep_files, ivas_br, dtx, tag, - sample_rate_bw_idx, + sample_rate_bw_idx ): fs = sample_rate_bw_idx[0] bw = sample_rate_bw_idx[1] @@ -367,9 +365,9 @@ def test_sba_enc_BWforce_system( output_config = "FOA" # enc - sba_enc( + spar_foa_enc( dut_encoder_frontend, - test_vector_path, + data_system_tests_path, ref_encoder_path, reference_path, dut_base_path, @@ -385,12 +383,13 @@ def test_sba_enc_BWforce_system( ) # dec - sba_dec( + spar_foa_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, + ch_count_foa, fs, ivas_br, dtx, @@ -398,14 +397,13 @@ def test_sba_enc_BWforce_system( bypass, agc, output_config, - update_ref, - keep_files, + update_ref ) ######################################################### ############ test function ############################## -def sba_enc( +def spar_foa_enc( encoder_frontend, test_vector_path, ref_encoder_path, @@ -426,8 +424,8 @@ def sba_enc( ): ######### run cmd ##################################### - dut_out_dir = f"{dut_base_path}/sba_bs/pkt" - ref_out_dir = f"{reference_path}/sba_bs/pkt" + dut_out_dir = f"{dut_base_path}/spar_foa_bs/pkt" + ref_out_dir = f"{reference_path}/spar_foa_bs/pkt" check_and_makedir(dut_out_dir) check_and_makedir(ref_out_dir) @@ -514,12 +512,13 @@ def sba_enc( ) -def sba_dec( +def spar_foa_dec( decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, + ch_count, sampling_rate, ivas_br, dtx, @@ -528,7 +527,7 @@ def sba_dec( agc, output_config, update_ref, - keep_files, + keep_files=False ): ######### run cmd ##################################### @@ -550,14 +549,11 @@ def sba_dec( # to avoid conflicting names in case of parallel test execution, differentiate all cases long_tag_ext = f"_AGC{agc}_pca{bypass}" - dut_out_dir = f"{dut_base_path}/sba_bs/raw" - ref_out_dir = f"{reference_path}/sba_bs/raw" + dut_out_dir = f"{dut_base_path}/spar_foa_bs/raw/{tag_out}{long_tag_ext}" + ref_out_dir = f"{reference_path}/spar_foa_bs/raw/{tag_out}{short_tag_ext}" - dut_in_pkt = f"{dut_base_path}/sba_bs/pkt/{tag_out}{long_tag_ext}.pkt" - ref_in_pkt = f"{reference_path}/sba_bs/pkt/{tag_out}{short_tag_ext}.pkt" - - dut_out_raw = f"{dut_out_dir}/{tag_out}{long_tag_ext}.raw" - ref_out_raw = f"{ref_out_dir}/{tag_out}{short_tag_ext}.raw" + dut_in_pkt = f"{dut_base_path}/spar_foa_bs/pkt/{tag_out}{long_tag_ext}.pkt" + ref_in_pkt = f"{reference_path}/spar_foa_bs/pkt/{tag_out}{short_tag_ext}.pkt" check_and_makedir(dut_out_dir) check_and_makedir(ref_out_dir) @@ -570,34 +566,48 @@ def sba_dec( output_config, sampling_rate, ref_in_pkt, - ref_out_raw, + f"{ref_out_dir}/out.raw", ) + # convert REF interleaved to multi-mono + il2mm(f"{ref_out_dir}/out.raw", ch_count, b_delete=not keep_files) + if update_ref == 0: # call DUT decoder decoder_frontend.run( output_config, sampling_rate, dut_in_pkt, - dut_out_raw, + f"{dut_out_dir}/out.raw", ) + il2mm(f"{dut_out_dir}/out.raw", ch_count, b_delete=not keep_files) + ######### compare cmd ##################################### end_skip_samples = '0' - cmp_result, reason = cmp_custom( - dut_out_raw, - ref_out_raw, - "2", - AbsTol, - end_skip_samples - ) - - # report compare result - assert cmp_result == 0, reason - - # remove DUT output files when test result is OK (to save disk space) + test_fail = False + for count in range(ch_count): + ch_id = str(count + 1) + + # TEST + fsize1 = os.path.getsize(f"{dut_out_dir}/out{ch_id}ch.raw") + fsize2 = os.path.getsize(f"{ref_out_dir}/out{ch_id}ch.raw") + print(f"Want to compare {dut_out_dir}/out{ch_id}ch.raw ({fsize1} bytes) with {ref_out_dir}/out{ch_id}ch.raw ({fsize2} bytes)") + if cmp_custom( + f"{dut_out_dir}/out{ch_id}ch.raw", + f"{ref_out_dir}/out{ch_id}ch.raw", + "2", + AbsTol, + end_skip_samples + ) != 0: + test_fail = True + + ##File removal## if not keep_files: os.remove(dut_in_pkt) - os.remove(dut_out_raw) + shutil.rmtree(dut_out_dir, ignore_errors=True) + + ##report failure + assert not test_fail diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h index abc8b1e463..21b59ad06f 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h @@ -49,8 +49,6 @@ #define IVAS_IN_FMT_714 "714" #define IVAS_IN_FMT_FOA "HOA1S" -#define IVAS_MAX_NUM_CH 16 - #define IVAS_MAX_PATH_LEN ( 2000 ) typedef enum ivas_in_out_fmt_struct_t @@ -67,7 +65,7 @@ typedef enum ivas_in_out_fmt_struct_t HOA_16, OBA, } ivas_in_out_fmt_t, - IVAS_IN_OUT_FMT_CONFIG; + IVAS_IN_OUT_FMT_CONFIG; #define CREND_MAND_ARGS 6 /* Tests */ diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h index ed4071d8ca..fe05a96f4f 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h @@ -54,14 +54,14 @@ #define IVAS_IN_FMT_COMBINED "Combined" #define IVAS_IN_FMT_HOA_3 "HOA3S" -#define MAX_PCM_OUT_FILES ( IVAS_MAX_NUM_CH ) +#define MAX_PCM_OUT_FILES ( IVAS_MAX_NUM_CH ) #define REQ_DEC_CMD_LINE_PARAMS ( 7 ) #define IVAS_MAX_PATH_LEN ( 2000 ) #define IVAS_EXT_ADD_DELAY_MS ( 2 ) -#define MAX_OUT_FILE_LEN ( 1000 ) -#define MAX_CH_IDX_TAG_LEN ( 10 ) +#define MAX_OUT_FILE_LEN ( 1000 ) +#define MAX_CH_IDX_TAG_LEN ( 10 ) /*------------------------------------------------------------------------------------------* * Global variables @@ -73,24 +73,22 @@ /* IVAS decoder output formats */ #define IVAS_NO_RENDERER ( -1 ) /* no renderer required */ -#define IVAS_DEFAULT_QUIET_MODE ( 0 ) +#define IVAS_DEFAULT_QUIET_MODE ( 0 ) #define IVAS_DEFAULT_NO_DELAY_COMP_MODE ( 0 ) -#define IVAS_DEFAULT_BS_FORMAT ( IVAS_G192 ) -#define IVAS_DEFAULT_FMT ( IVAS_NO_RENDERER ) -#define IVAS_DEFAULT_LFE_CH_IDX ( 3 ) /* ch count starting from 0 */ -#define IVAS_DEFAULT_AGC ( 0 ) - -#define IVAS_IN_FMT_510 "510" -#define IVAS_IN_FMT_710 "710" -#define IVAS_IN_FMT_512 "512" -#define IVAS_IN_FMT_714 "714" -#define IVAS_IN_FMT_FOA "HOA1S" +#define IVAS_DEFAULT_BS_FORMAT ( IVAS_G192 ) +#define IVAS_DEFAULT_FMT ( IVAS_NO_RENDERER ) +#define IVAS_DEFAULT_LFE_CH_IDX ( 3 ) /* ch count starting from 0 */ +#define IVAS_DEFAULT_AGC ( 0 ) + +#define IVAS_IN_FMT_510 "510" +#define IVAS_IN_FMT_710 "710" +#define IVAS_IN_FMT_512 "512" +#define IVAS_IN_FMT_714 "714" +#define IVAS_IN_FMT_FOA "HOA1S" #define IVAS_IN_FMT_HOA_2 "HOA2S" #define IVAS_IN_FMT_HOA_3 "HOA3S" #define IVAS_IN_FMT_HOA_4 "HOA4S" -#define IVAS_MAX_NUM_CH 16 - /*------------------------------------------------------------------------------------------* * Structure definitions *------------------------------------------------------------------------------------------*/ diff --git a/scripts/pyivastest/IvasModeRunner.py b/scripts/pyivastest/IvasModeRunner.py index 63bf58cb59..246e8139ad 100644 --- a/scripts/pyivastest/IvasModeRunner.py +++ b/scripts/pyivastest/IvasModeRunner.py @@ -638,7 +638,7 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): self.lock.acquire() os.remove(pcm_name_lock) # os.remove(pcm_name_res_tmp) - if do_limit_duration and cut_len_samples < in_len: + if do_limit_duration: os.remove(pcm_name_cpy_tmp) self.logger.info( "PCM file {} successfully created!".format(pcm_name) diff --git a/scripts/self_test.py b/scripts/self_test.py index 05c6944ddd..0f7b8b3697 100755 --- a/scripts/self_test.py +++ b/scripts/self_test.py @@ -75,17 +75,15 @@ MODES = { "-MASA": {"1": "MASA1TC", "2": "MASA2TC"}, } SNR_ID_SET = {"SNR", "SegSNR", "WSegSNR"} -TOOLS_DIR_WIN = os.path.realpath( - os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Win32") -) -TOOLS_DIR_LINUX = os.path.realpath( - os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Linux") -) if platform.system() == "Windows": - TOOLS_DIR = TOOLS_DIR_WIN + TOOLS_DIR = os.path.realpath( + os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Win32") + ) elif platform.system() == "Linux": - TOOLS_DIR = TOOLS_DIR_LINUX + TOOLS_DIR = os.path.realpath( + os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Linux") + ) elif platform.system() == "Darwin": if platform.uname().machine.endswith("64"): TOOLS_DIR = os.path.realpath( @@ -990,13 +988,7 @@ class SelfTest(IvasScriptsCommon.IvasScript): proc_cmd = mode[1].pop(0).split() if proc_cmd[0] == "networkSimulator_g192": suffix = "nws" - proc_cmd[0] = os.path.join(TOOLS_DIR, proc_cmd[0]) - if suffix == "nws" and TOOLS_DIR == TOOLS_DIR_LINUX: - # use wine - proc_cmd[0] = os.path.join(TOOLS_DIR_WIN, "networkSimulator_g192.exe") - proc_cmd = ["wine"] + proc_cmd - proc_cmd = [ "{in_file}" if x == in_file else self.test_for_file(x) for x in proc_cmd ] diff --git a/scripts/tools/Darwin/networkSimulator_g192 b/scripts/tools/Darwin/networkSimulator_g192 deleted file mode 100755 index ba96e89897224de381218eadd10096c693ef566e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154584 zcmX^A>+L^w1_nlE1_lNu1_lN}1_p)-HU@^)21N!CkYr$B@L*tIh>s6&ba#z%4e|$x zqGCo=E><4MoC+q8IU%kQA*f0q`XMAj2Eu1$U|;}YcBn*rd`W6W36ukN7pi#&Oc)qI zI^%ak)PVRb5GI6VVQ7FbAY^=eaY<=XF@%G~JcSPs^Ui?`Wnf@{@nIS`pyshb1t8|d zXQbv7q!wW@@54ukc|B0`KzvZRL$xz7K+S{kl2Z#x;!6^f;^R^MTk{!W z-V3NFL3|YRUxQsOi7((Q>4d=nrWzU{P(H|b5C)ko0M?(LkMJcZ9b-3d0?arDMh1|67#Ea2 zd|@20dFbJWYTg6}i2Dkl&I0j~%|kK@%tZAkSO`KmK+J*r(*bHA7Jq^?#K-3(#ur!S zCgtbE7nBq+#K(i&1(JbcsCgNnfB^|Pp!yS(Pvb%2P#hnhl2`(Ze6YV!&C76txQ_#> z9>gc)Pe^&>f#BFO@;=DIgr%GzyRWdjJ$ChL_$QNJ_idZF)%b3fLINT3<{up z-N49jfQ5nKK?@^;0WSlCz$8Y702T&@glUWn2|SRpQG$VifnzBnLp&1$!-}(v37#JAdGeWQ~0|SE$69a=YR2&=i;}j#q8Y~igAh$3uFz_%iFzA;S7wP9@ zCh4bC=A=N?N;5DpfZX8}f6CIr&cJ!9^UI7!g$wzNp!z_5WaH;z0AUat5|)WfS_}*f zpmYp1hCzdYp#fyh1ACYVga+9Q3Kx(ZIEoqDm_eZjcS}xYQnI$To}pe!Wlm-i*qs(o zH-XeMrZBRis}HU$E=kSRbAoCCTciec&w)jZ3=T{T44P0r!%{{DSXuxp93@6WU^E0q zLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$( zGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!n zhD8X3dUQVZ=&b$W(OLSzqucdIH-|^J>j!HN{z-=#9x?K7I~033O^;u`1?*XVc?Pih z#y1O?7#KXdS@TYVC68dsqDZ|KFo?>jDtfy%o&s-Mi!O|Npx{E7D(lWCSU0 z1qpa`JG}7d-NOoEzsO`}VCZOV{`>#`OOP#HVCD)&{#MYwrI%5l4OHE%JYbtFJi4bs z%r$*}h=IZIWXFjYYI_(Mz#5OWZvXrLKg03Xj=%r^gVyf9WCz*U**f9x|Nos+dqB>D zxaS2M3j@PT9Y&}|4~VEo@76hg|Nnn+a~A`HM`vpV%t0RAV73P+XgptdFrM(}JpSSe zC;&QJ3y>6n*dEP482DR2i}5|W_kseVyA@<+XKM@C_N^f51qUSYGUC&HwxVKYyzk14s#ot-{E^?SMz)5m0Q$9tH=pNB3S(aK2F4$-uzR?a_JM zqjPEkDAbIZ85myF>;j1*5=`0zaC&Ke697wNouO|)$;_kkphx4u72xL67Ex5+2>97d$%oJem(UcyzXb)ixg!@aSee08-O@fWxD^_JT)e=?Ra{ zV;Gs?yz|tH9XmiSa@_&-zUvNf9JdC6W61RaB3bMMZTSMFjT0~#s=+}fwDciYY)6o6J}s|3EJZ1(R?HT9@4DWk25fMz&(2Gh2;*Y zTVZaw;K2&^Pv`L$YtiItAG~PT4vGzM9EEOpF^Q3Z0UjR$;P~jS{qbV869WSzo|}&d z#2$vmmjPV9+X<2^K^s~;x>-ezgR))cDUVLq7apCV4_?YMFfhD0W(N+V4<5a>A71Qq z0&^hJpd9Vd?fSr@+xLY>r|S)m&J!Npp*K95j~K)rhLtDHZxq1xLCYYIZVwKR&O_iB z0@>pG;6*FQ%x>QY9@ZTEEkfX+2bEW~FJ8=cVqkd5i!5U43<|X)3JCK-HV5RHyOFyD%^WywC!f)ybmr;`=rR2AF#sJUVMXcyyM&@aV4n z;L&RuzmI|8g&A0->jRJG+6N5$t*T&8vwk`X$~YDt-Ju|bmirhOHZZ&p+|Iyo%=JIR z%UDDq=X%Zq6oQ?{_klJV?E;mMFWzqhdE^HJw6IlTWMJUm?t0EvF`I#bzXh~~)uWqr z0@Q|HQ&x!So3}wt{||CPuj>U5R!|9#Y5W9;@r-bzT;WE&+zWPS2F$1}3}CBo*b1mK zF!1+5JtqoL&%ZtNhDWdID~KKwm>$qhRQ~O*H#!e`9DK;=(Ru!bGswbDP_A^n0M>-$ z;}=ZZ7#LhY>RmbydRU%-J8HubNC@_tE`wNbc`MX^pv3LbUHihLxAejbP-wi|`VUlM z*FJbL7ovu-%k@7j`#8iNhQ%MD^c)%lvJzW*&JIFP&z!-aI6_X(jc+c10v?e>UU>AH zO6_G}cp*E^t`+Ut>pdj#eJkXN8Cm|6g;xIu321+iWn z+YAcA1E3)E==D8-O-BY?2ZYs{@c;k+7rmPq7(9A;9rl631`;kv&YT(n*92j;27ok0 zfHZZ3Lef(p&86FsBh97Lb)QGC?>?Bt$YyxJ&49349YAJ?AerIO4Qc{h@aPT_aN*zX z#o+?-SScvXc7hD@=-g@nHshQ}cQ1t1Y5+3h!X^fWZr3}_2N*kD@4P$!YTt_#V5s5EwLjSSd$<@F7@BK;u=Drb z2j$3a)|3NK&$@o_=oawkHNCbI?B9lsAaPz-u(YK|uj#*?3=EyE6951I-@x!92_mZw zm*w3Bk`;l-xevkzqlg+@gJP=t9i0oOotP5C{10wrs14t9^ zdbn&HSe6AMdu9XJ)Bpef|Nrs_D@Y~CQw|*9y1yID768?fpdN!qw}S+@eus!FfZB8r z@d}L>*&7%bI$h6z1F97q6<}2r1}_3ZGOY|C8$flq;ek#F2NclVU}mT5iRRifjQmZI zpgzOI-=+=;>Yw0DW6>RY#-rEtCnT69k(}%ba&oWh25`Tw}<0#H%)@&XIEd|lBQy5!|05WBawR0oAt$BP#l3W+69kZQ_-EEmRiS&7p&`{&O`IdJ!X*d+6Iqa zQx1^Y121l`gR1oC-3uzEUgUxLNuan$JKmc1|NnmmhU4IJ3nX;BH3lpK5(AY^5U~)b zSa&Ok)p^jPx3{&o<01uAlpA7shF`)Kp zH`v;=&Q=>xsoV=HGqb0HOcr6h*x3sz$+~+%+|F}g1O9=$)Y%Fu=(>AB&TBr%*a>EI z_k!HW?0cf~WakNw-r5Zwovk-Oj^YM8YAcBC(b;+dRK0h8Fgyt=0{4P>-@ikYUwd(Y znSr63qqEoK|NsBZdqE@ve@`p}%oE+dXACcW|H!}oVCS)3mTlc&b)CmL&-b!y?`#DZ zoRDDk=mi(3FE+sYfl8nh4T*kO&?kcul^LjN25SW+LXYm+hHkL$`M39i0>lMU9=mjd z%XE)!u*dng7jPVW$L!Jhpwqyk*ED211B0vKC6|s1FaE57MlZNo3JLk<1B`~3zL%b9 z{>8xG3fhR?ycZO143JiK8Z`Wy4=|>6f};Wv>)oxO5Cs+fU;uxD~JiMBtX4Qk8W0--Jrw>OS|j0LDQ}$%*n@H!G$j@AA)=Ky{(``3d!CF zKyi5<68##W+NygmSm+HzNC6@Qk=Y97^@=jQ|Ns9*Hxo2aJi1G7zyg2TH&FiF4|8r; zD~Jiozo5bk>{GP7RL%g(1~Tx(4`RU+{|1oToI!ov?p_cZocPVb=?1J0lK7p#3M^hE zt%f=XY)^M9NC`NUL5!CR|NsAw8Wu1&8^Kc(c-%x7l%znVlNDSXE~E|@0v(qCO5QI_ zKtfOj8(ye^c%TgZ5_FzHx9cB|#v`CAF!r!VckPN7>MP-$nW-y4o-_OW|36ZF-TVg8 zzdRidZoLYCYF8Hq$oLVm{OlVMR}CW8k=o(WYR-Fzk_^9lD?uO@+#Gq(2q>m>B{eP=S*he-X^#y6mz4cwWX zp)WukYmeU2A1`}py~@i<2WxuFf`yuuiY`=*ua@yy(96g_R@uD;I ziAOhh6bm#qcEh9d*bBC0(7*?mCZN9Ti_E2npg!@U`u+d^hygo9`xz9w$RnPyFE76P z{~sa`OaCA>Aa}Svc(LUjv<(FwDCs=@!W7~%1+dFLz=lXVkH3%sNp#nKc=2!v$Q=l~ z!Q&yQ?R^f9ZrF%x?90ag2>TJ`3+MnD4`>QNlrNC*2Dz`BcP6Nd*L+aGqZ5=8Kn>Ox zua>||P>k7;>0cr^cH z@aXitz~90N7OlPT!W5(vnr$E+uYK@h4#-A#uo93-6Coynnwj7L>-NZinsfqg(uo(Z zL7HIJgOYvN5?FM@qVvOxS&Koz2(AS~54>3O7CAbh{g>u93E;v66duQ2KY&eauBZTw z+aKU>xeRgD0nkvEM|VMmM>p>>Q17tQ_l8F=s6iWgfSpvJ$1`u{>FsC8cZ;Dw4L1H((uAv_=>Ut9wj*LnO!#1c@)05Y`N z?YaYO3^;W|jq&JqJ>YTNp#tn;aB7q=ywrIO?Ag){9^IiE{$B*U0c`342?mCj;K~ow zR{)nw%|{Zzb=HL!#fuQZwBkkUoB#h2=?zPIo`M+IcYOc~`qahXpvO$lJ|GEDdKLuR zfGs^Yzk!S|!s{dsun$}x{0}q$jka{U-g)s@3KYV=4?H>>K?PaYM9_F`!z0Fy(DxqQ zJ3&G(K1hLvYC+{}M+(G_YmQ$iQHD05p^X8dJFL(Rt3J z^VEw6QrJYfq#+i60~^A~-vTzbV*)4xL&BW_qyT1XE9j6wkK?WnK=K~F;6c>~FZO^+f^JY7?1o3DV}S?6RgfOO z>kW_QiUJP)CNxJvBMZfm1uss`hdUCgfbpd?%oo^`9mshe%|{%-gH4brPH_Fx_~rqq zG2Z#Zr<=EX9Rq`JH>Xdh?+=g8t)Nc0N9R;fcebgm`pL-SH1Jvj!@gUQ~g7+zJx$=-vTR{$jZVsCRS)q@%kREYVz9!NA{Q z0vcV~3leAG?*}*4oA-jOX5eoHomc144K)Q+ocs?o02iN-u!2~B{1~X)_#y*TF7|^v z+aM>m9_Vb{0&-7_E^L&e8!XWLf|0*P16_;>l3u`bS;xU0WKhO^3F@~&xZr^iP>eyi zpdrJTSX}W)oPpsbCn#KD&aS9vhIkG%cMNh+A2_~}TR}ed;9uVg@~cN@>jF?e40QM! zBop?6`5;Glbc5x(r-D1`-FrcO5m2K?dmeNI5{omULC$CbrweH4RaCrSm?*)zJ zg7lk>U%kWHZE{{u85(F!)L8;&71jUet+!f(JaT;Q@;X zuso>Mc@7d0VROK0z{bH`aonR58qOAAS=OVgK#DNJ88m|7(Rc(Dnz4sp?3)b^XQbs0 z4v_vt;~UVaj~?Bubx>o#0Sz7^^XP^QLO_~R;Bj&OR(|kkKnZj-;AJOxhzTs`(G1S< z(D}9(c_JWZfn~ZoKu4N3KNJ8DepN&A322xd)c9B?3R2e#;hy*CYy}Nuyx0H{1+l?H z3ZP!ui_0?+N$^PR{32W51&s(?o9x6Nc==-vuqS{_4oCa9Qr`3T@s>x<_zp-Bn1@;jtNvQ7Avp#d2A#)W6oaE45}u%9r4=-s|DqNm3Sxt&IeI}k z^5s;JWe_L9s*DmLQ1F5?8!X%c13bD5Jv=l&d2~(%X=?^&JqG^1Xpqgx&@nC(Hpm^_tsu1?{Ob>TFhg=9WRUgcH;~a#mvtV0u@9mR;zv+A z1&^|KKtw@oa5~+CqzRh5x&s_Mx;;ERI`={gQjbnZg$f-yPK6kOFc>sm`(i&t6vPI* z5~8_xD>zo5HF7t!7U>1o5uFEpy1{kW3u9qW0D?wQ;R!F$1DvWgKY1i?1xsjt@?ZuB zB{W1KF^kkl1XoC~bX`^9p$(2NkIr*DKqhu2QaG zI;?4l$VHt+0Un)29*CCae?E9z9&ZE{C!mZBZp|KVg_TC#V3tQW?2Q7T(e2v-svD*Yg8EXRRR{Xuq~O}&(d+vTG$q@32o!LjCUxU6 z22sk z!9tK)7&d(fYN&X8{|TP8I_?UZ*az?6gPtQT1Vpo+5d zqKCHc1JL3!(29kF4;ehVq4o7KP|u=#D#RLiC+#(oe>K1s!VCq~X)l(7g&^gw=0UL0 zouGMXh%4Gbvdo}GIiUx@ankKs;n8^;>ue=ms}CJi4cXRCshAeBsIi@*l)?mHZ40 z{QE3ke4hjk>6e$l zbc3Wl96Y)M0>DZ%KY1`-^yu^eDF%tcdzFVgI>EEr{H>scb34GjlTL7EdJ)XHiFPnL8}1=Z~y zoxR|isdFo+I(Xp#DsE6B98_Pt&;$vCJjLu-;L!~>$)g)G=h6)^rWFxz- z^XOzz@#uA(;L+)#!tp|t9~AdXnroLZL#Cy`;RP}j)b4<}y7Tx89xiAwbsm4=zzaz@ z`zC-ipLy92NxBojNgNckkV)W9UIqpau(NyNRTAjPZMYR+rJ#D~MI1;e$X2irsE7B$ z8zcnQ?K{Dv8&czRL;Hn?Uet0ToU@S!;v9XbbKr$BxI}&_4sjj0SZISPWq~LKyQK5@ zi~FEB1eJ`IC-_^%7+^I(Xa}Om=ivmc!8p_D3R<$@(Rc(@Fe5LB0QYAh<4+$tOF?Td zKX^dP>j(TTpCE1k4{#NMECUrjAiuiac=3rF2SULqLiC~p)2$<|Gr=R`wITQ_|b=C6MPJ)^EkvN38+nH`jE`H^uiEq z#-$E{?$S4%rGLPS1i?Z7VtpUjNuYTx@H#}qm>p!ir}51LkYhV*(SvLOw2I4v81V84 zXm+u?cEO8Yu+^>$KxMonC`opLN>?bKA6%f`=mv$~oEJuYpm3SfdF+J%)K>{0%eo<$4Bh;fh- zeFr#0Ld=f=ncwXT(%=DFJ(UCDPXNVo%PUApy8zy11&z@`je4O3Q3=)A@xlng?*O&D zIzfw(AQni2g+niRfGk0-R~CVS$lCP+e+#&kpxq0OgO`njJc{ zk~2HVr>+a24PbZ~w!ovaw!s6GX2Eszi`g6?bx;pND*p_qkWaU#1GvOv4om>erF(RP zTZ%s2U}YYiQ$ba>4`|`(L7!gN9k8w)q+mJ$DVXN)f}DNCquY0fM|bD~a7F|#OL(CK zwgt=v1tz2|90i5OO^MF(}Z% zL-T@1r|Sxj?n(!b?$8w;-LMYWhaOM|%yk9S;7X{$=Ru=VV3VpLCN1#jF5Lk(4IB;N z8XhvR@Zv2S$S#yhzw^+G>5vxD0)!q=JK)6!NQnbUVc=B{FV2GXgX?EdI)jZSoO>~a z2Re=V;!zjGzo23PoV~#W*sCpD{vu|jK(2fMUVGem{DmkBB>$|2XaX%Ymh>W`7OkJ0^B{WFFZOy>*0^T0EL7{Zz;&4 z3m%<^zn)^W8 zL!j$QL9;2oH(r3oDm=Pt!E=)AhxR^We5TXcXv$M<*jB%#nQ$i$7|c2aiusI2?ZgZeoI?6goeLX`g`M zfzD%)IlI~)FF==qK;}3h^;7d3$owWKJ%aoPPGc8dOn`b1v@{>oF9V02>xmcOzDu|7 z3D5*+bL|TT{uUijaCX;TcmWy#1}&-Vu6^P1jis{QfeSsU0E0UY@cVP7|7u-gK*=o&=_ zl6|1C0p*QO-v{7D0-!}6ogM;^eFz>BpjkAJP7ejF_JQI9rXLi(5WNN-ogNxc{TARU z16X=N&L7<%50!p+0bWZ3&eg~%43@t^}ZOSa^UgbAhPA79Ii~ zy{-^F-Jp3E#DH1_$W@S3g~;#CZxjp!-j0NF5j{z1rVV3XegYCof{mqIO1JAEJcfcDaW-3(1X-M$ZeK+|#E7SL({v=Zch zfCi+@PlIjY1NR3I_Tx_fV6z=0u({6z(w_hY$OjK-9wXL04*1;z3PX750S_;Tec<&x z$V0NAb;$g!vl0EG7vSa?c+%D64``o;?+f^Vi6OYia|O+fz5oyNfjW`khG3y=-=mf3b2hB?RUhwI3J>df${qcR_(On8@19jJ4@ac9v;nVGVz^6M_ zz@s}>!l&ENqqBAgs4d;?yThkbM#ZBuMg_FmdxKAB=nBXGVG172M-rkPzKb^HdI!nKRs)26b zFCN_i5+2DvJs5v^bOzu`-vXdL0JVQQYk$0GY5+AAe{>#uk*_$${P3QgHYj<4Dim-T zSqSMDbyp^MG=gs7VgQHE@fYuY{Qv(Fbk!6{uLndaBqMZJ7N9CU3{r|TMuFs(6=1ix zet_f-P{5&v54a?UlsBMy6)8ZV^%Z*j8NlNYEjvNf(=9(p;K&c4@)cY&f%X&ne(+%S z0JR-JZiUnjNbw2U2n*^pxqf(Y5Y*D|W@Q5PlUc!`1PX9)I~BYd5mYx}mKUJ%7aVrJ zA3Q+weF7fco*ba9C*46WJUV#}&*$75TBy;-9U;rej=O^Td5|sRkaiV{2-p{(#eLx321t*e@2hvj^KL>J&rqqI$aDN#~s0!?}3)>fGqJi?g$$40f|GGX+Z<6`DKGg zr|*FmcR>R+oyeP^J6$2Wem_HGHh?=3;B|YTor9empq<$s$D1IRMKUmW9B=vovI$iD z9B%>*Pk?wH$D2TxOhTF9_<<<60TO~RLA%00Jdfi|;FZr1QP9*qRCEW3hKPd7L=ey8 zcoS%$0+hJ`L_-wJKrlg}3F3JiZ-Rxj$ML2H(CiaLZ3Th}yG_#LcvA*K6tprPYC;4; zGyuW$Krlg5YEZQn2vN|eEmRaVYy)K~AQVU-m;wkUXwCqn_IML0gFslI1_+3CtO>O8 zjp0}mXk8n_u_n;cFUb5>=d~BhKx0E7RUW;db;h8*&MRIxg35#L+7%tH%U@VmLD!&l zxh{wINI<~@UM}8Udg4Vg!id@nFH}E)j(%{R0gHXm;L;3_&JIwS1=8~3RVCCwk8aS& z6L=oth5V=g|5X@0x_wVT7BoVtnod{HLgtrtpwNe~!6vMLnE+eNcLGwRfmej?0$tAN z(Rm!U9JKjJ0eIc#i5JRnZD9X)*S>g>Q30CI1h2*ko$#XS5b}yyaQhfkKKIuC@PICO z0VOO@;{j3(B6lDl^$nyi0%~wT`0)Gkkje7!}BKptyv{H@|V{tOd1mnjifAf1>kX^9yV68tC>bpg8Mg zl?SIJ-wPheA{`!#hyFkE=w)qb0`>M?f4uw(QS%1Ie+uE>gYmCI_!nUOqY(aK7=J5- zzYWG;3gJsPK+T^D;m?H0w?g=`^-%dz2)_m)_8-v9sq=OOXm{rmqPS-;=^|NoKo%c1G7L(`9JFF9ntIV976_P7Az^?xDc#3#wu}&%L+^+ARXEWHI-5!0NjfpjCdb423g2gU+_`P-uS0 z3R+(^6@CH)IKOw+g2p-#;|ra&KOk!hPIz>lLhb=W>vvdw0=2uKmHhD+pp^^gB?MeO zsC$X1?|W-+>;jeIpjA_yt_NOh2c;pa{67HN5(Zi|xe#P+cP(TS{}zxO z=**Aa+5;Zlr3*lAR$vBYg4!35=3ng$P%Fv@WFTaGcESsLh=Lg&-K7&i8bC7*P}hQY zwXlG975A2ct$eYv7*?h9)*g7l44PAb?JM%=bluSzy2S$|@d~z73~EyCju+`g2!D6H zsN4hIY=lUk9?0?ANz`~PXgm)Rzu@*bq>Kg653B|iC*W2#B7H%|Gq9@%-MbDMBSBUV z&L7}92%g>^K@3Jo@X+)ID!;pt#_!SjaR1f*cyStT48lH;dQe>f_6xKR18T{Ex)`1u z9-W|VcThHHcMf;ZW{c<~pU z+(FYokkSjX_#D0efZRU-#Q}H>8oo!DC{G_6K-E z`U*@2I)?*ppMX2DAj{6Z*aDO9JpN+GFVNTo=zJU38!w_k`4&16)DKbg!K2%O13cQ$ z$q1e-OFstI@B&oI>;|i;eeog)G|>$1q#*(Tn*Nc~cQ-^CxCiY5-+u}T577BX;QZEk z{KaHYKInA)@ZuJP0o!u<;zi^eaN8C#JpwMfx)~rj6jb8EX3{eA85m&W@o@V=eY@i? zK#g~3%>e7Kf$|3=|AX6zr5|2Q2Bi!f@d-;0AoqHMoCj8i$gjxu!OMpvh(avo!wb-E zWl)Ylga@d60nHbFfaOn=@B*bL@Sybn|Nrd?)Q7~BmoT&HvF2~ku+|I69vRS79e7wn z^Mc30A573dgl89Q;SKjcp7|)`@FK>&kno3;XWgLIH*~(n|Mma>@ZJ%$007Nh5}L0; zIu8vtehx0%!H1%OS~DJ zJCDB*2T%0+Vw=QTsAG1}qr3D6 zxFYs_@FE?;C)joJ33|0<3bglNmi@%xRM&*YWlQKY!I@nR}SAGkz8WM*Xl85kaL>_klY zf(jXMqX;yk75V|R?)TtNCQ!x%O~*kBOCwLs6P^bjF!?YZ^XN440FOTRLCQ? zY*0i(qYs;Zq3(zD&!LG*5VWKYZ+it{AJi@a>qS861={`qm%|spD?>oXL0CHq@V9^) zg`o93XF*vGB-|Y+;L&{Ok4I-9GAKX`PPzQF50Q2OXB{eVsIig9>*ALJfLc@HrUv3?I*e-xHJ5%z=CzjzEf)didu zP}fty(i=!UsEvLQqD}x~{S?6$DFaZK z8dREs&QR&ZGCt)GQGj!N3UnGC=oB8v_!M&@^7xc6sGo~%eCikG_|)-ugugpp+*~;% z$EU!13m~-syu`&(AAs^dYW)CBzqLPJ+y+$zU}F&N0g!r7UIXW4PniUWOk=x5?eYI3|z;)cwqou4DJeE zyZ|~#o$z?oK9~+r(typEfyb*ORDH zjPa`Q&7e>NEn`0Rf*Wj5?TZ(SKn!qQg=peJ(*wNx2c>t2GPL>u5+0zsr5ltVI*-3d z2Ggz|UTD1o4-p{7t5)6w3lJEu+8G0?Bq8I4aQh+Y6*RpLZ7ae050Ls3WIuQtGdLa* z`4L$^qzBY_`~~=cbV#a)M>vXqi5qX?NAB{V=!dl*iCRw$9&3Q7r4Lxgmsp^lhC3IQ zKC$|b`1+Y({wIDsDE1*ZZYdcLl7bjP#CQ;k2P2m8Ac!caEl%_CpnOQ%8`LL9>yIJI zS9p7A5kfIM0wL*zxbdJ(IQ0`V9%KT_h0tOFy#E3`EeDQyP>TX|!$Be_$AZ`7AA13w zbVe%-knA;BoK)3uycYpt8~-R>3+|A!fLEZw2T9PzKNcWNqR03L3)b-u79z$! zK=I|#dF}-_!3fWpTOy1|I)H+}`Ot{=x$^un1|%!RiM@`HgM<47NWFoW2i&HWa|> zzZY|EfT}R)no<8}pms87*)QXZW{3o+8T;ae8C=4V!=v#aq+RZN;zb-p5okrh36I{= z2OhnlH(r3xt^!Y_!`f@;+wtw*kc;wXu>_X6f%VRG* zz--X*te_^p>xmbTt^J^s=6c|T6sX#VIuAPDh*=(h!V@&c1zL-MwLOb-ycJr0h`ay= zC8&HlnJl>rmVN;* zh;DdvmR@*a`v@dldjouCaOa^HYhQt@Uhv&M*z0@9`Mu!dK_N*B-dIC!{~*F2>}C%R z(55c%N(#^nleOy${uan#sfb51PFJU1k7EhmIVOVQ}o@dmy(EpWX{W*J7=?iWJ8Apo#%hI(0I>m<*AC zr1vnm1ZsNEgD65x@8Cr#&;$kRzk$jdr1T1EuR-RiVe|QD`*RWD3vSnC6`7UTY9bCZTT7O9W^t=+Z-UQ^d=7S%Q z)AK>FI3zu%{=}7@ANtTLJum$A|No0Smyp63a!4yE-!Q&743U7OXYhOsIH9Aa=XnrC zsOcG_{KnE>qk8&oc>qctkn{~Y@)CR$D5R%$;zc;9;SNjR;8W9~*$rBLBiAROG6B{< z(+3&adHjVrsEh%{AddbSq<*EWyayM|kn$eOcn#)!FSvaMnx%Dp@xmOzdGNvu#K{Dm zoeY}2dH|U@1SPy1FZe-H5YJtBQ8eTKe-F623kY>5UOWdo25k6&7r#IpxH>`|pB|8E z$iy#l`HwY!CtN^EdzZmw5PJUhg}C^|izQ$NXnNQX(*A(t?_Q8~pl&+&Zoxw@!0Ivb zH>iFFwM{`~BXqAV&ic38;srSUKq@n=?IZAt6=Zpk`KaTapz;zno`qxm)69KfbH4wB zj8fq$kKp5P#JBIjJ#b>(2PyBsi|8R*u-4zW^Q$!|VxS`ei1|f?|KaXWf+z$H{=lt( zjOTd3+Lxd>0_Q)x?Sq-H+}L~&R8PEsq=yqP3PC5jf^+$?7pCy}Q1te}M0aA!Q-pts z>(7AH)1rUC?9prD0PZ8aV0sL#A~4q~?sWro5U{t;u+_Kt(knc^s4>6z4xFh$>rGvE zytoJ+X#$rj8=&W>)Z$wI4$c~&sSwcm_ZyIu13LK~Y5hCMec%aWFyR53Esu9W%(Ja{ zQP@X#e$f}?K-l{CgvluLi;l?ii!LBJP!)hQzjy$m0A>CA8*m37?8yl)?n4ydoL`gx zw}4^m-{-m@&o3?p%}ZdLU+lu1UrcvK_`BmpWiKt~7qOp@11aA@`4?2iLh}r`KL$Qi z2wEb;$_Je34|IPis6+>sM2PwWq#kZIsEvqwelRl>ynTdb^MipL9-RT8Yb*pjIz3?P z<3a9&m0Kjt_nmMAt&{^TUUEfWpFSHT1)A@x0S$nVzdk+oGN@TZjrqP{P+A6;^N8s# zr2aYD`b0!}0EG*y!ZrSfDi|6C^x9^KIb#(|P;_`1};m`gAKu8yeKm{@~GD`r^gTz2IgM zf%(3Z4xln0wZ8~5pKkMcs~~`jD)V`e_AM-rgO>tA`ml`$p;ZB7{j@G<=Kwf6fVZKL zvwr&3QAqHD*H6cS#t<>rPs2+Ql=-sEQ0Tpr7a&cJ4KL<_3M0e-zB&##65liAO8!2)RNfSSJ3ncI^PKrp2uGl;ZqMuudw(4=V91*8Dzb*2)JMY zotSd$#SYMBVa)k4$hLh*mrNBDP-vM4;eTlPi7}oIvL9qOq{~9y`etuX4G)_7u{_8R zTi+bx!NBms3FL#!T5y!^1C=Z|g;Q2R5{|?fghmP!V7DV6s)7~2jalhq0AZygQeg%$6}i`x&Rt10*?%!#XtJ^ zGp_UsN~@si3HSO}TW}i~wAT*WjRl|V^TG`rprD(jRpFYY0dO zq-a2jF8Fu`BELi3gB%~-;PtF{`=6lx3}pNf+Lpt+-V@S)gZ6(wV;JBIyFo`YUGP9% z&uR;jT&V>AhyKJON3+@bmm3P5>nV=&+X$_4&zH9^yrAUE#qoC$?H|Wff4<3-4u3x+ZIj{5h3pUWgInW6koserUzJbKM_d*UA zKjzU5z8Cxd1^C`N@CaLP?T;5{K?-|8-DU8N6fgFI_}zO!$B~03MbCk}JP*`jhh2Kv z4?Vr=2Y5>zDBeJc476(*H1gA3df)|zDFegHERY^hlLR@&L4yrDJV4f#ffnU;x`NK) zec%B)!?+)M!`d;AUeK-e=RG>XhnTS=muXxw!@=WB*>#z zoS(4_<5bICfPSDS!>)b)XfwktSTp_(D8wt@~A23<73 z1JVD(19~Gf#A5KhBH+XUzF7yfu+*m;yh{>n9Qf2=(1>yOUeGnpK9Cz%e7dKCPRaM^ z1YiE-1G-}md}oPI=Os_jZb9fR-7G2|-K`%$V~yaG?c0sO_n(4J`~ja()9~V^A$&9j ze6iSz7uBfeWgzyy*Zz3XZ3xc0DCI4vya5F!uJutMc~JcU%Gh9apauoBOnTt~DxDxJ zj$z|1@cClU891)sLz=+n34?BPMdW;N^Bj5IL7EZS`z;XVAIy!Q5Cr9O(D_8Z7hZs_ zLIag>pj-}JUkAEn7PQ;;#Ea#ic^6QA1|6mm1uE>p1v7j;66Al>@peRg2M!OgMX>$? zs1b^7YbB!o>#POsRYB(e@My06A;3TV0Qejd@MHl>`HpCBfcC$GCh{OvJ*51F*QemJ zANPC$C=Nk4O@h}KfDM4?$K}87+8>af3aAi-6xZOI95llKKDe#+!;6gu$VU!A%!9cH zVjpDh3;z9)5dT5dzc{E5OQR6;pzZ^m*VK6M1*kOW1fR$NOK)&_ockLQ{Y%i81v@XO zNCd430NtSoq91s4JAigyya1gw@!~n;DuW-OWAHi!J-P!pJUT&V8i15I3V`>Z9DykL zfI|s5ZNt+~^Bc(dY9RlC(kH0q>Mi~7qMrw;rQr@Q(!kqX9=uoxvI2a8YUzg;DacB} zMI)%T0gX(6My$Vqi-+Sc^gvobD>OiNwSXrzPCz{d+VBNBTLM%c?Ev2dEyM%5BYg#9 zhwpa&R&X;1abhW`(%k_%)cr*b)Z{538Z;K&dCa5Rb;bV+9j@EET(`q(Sa6R5bU$-8 zNMYyk7mGoa1L!)OPS*u5!a#!H1O1`57DGohL7U40AOR{2x}+~26t|#5S5gtWXS|Sr z=$--FGXWbDh3kF*zVG4Xd5{sH>cInid>0~rLHd)>_BE&>1RbD+HnnGfECcVo1RXAZ z0?Kg;hh{h0952$K-Q4P_DvYw*x4d|#g@Dg*7 z6`&*nZ9jpJHE%uO0l6-VzXfy(EhHmC@6H3?xd=Kg1WlBQzXfzc-%C}{sXf_{))eSE zUQopas>@y+2K5X(kH7d0I^P0xH7@in9WL-Ll1?uUNWyUvc&W<_zBmNbRDldcfsfOF z@dz9%pgZqDC-h7ORctRnr%Hh;KTw?jZe@Y*ym?^`waXtwgAzaV0y=vTA9}+JC|!YX z&G~(7*%OaBwT{#V=47uk$$gJ_*BEai;zwWl3`(BcnLnU0AvBgub|fDi(sgc-5j872XiJ!%A*szGY^990RfqU?o3c~ z7~C@a4_apcS}y>1CP)~IGrU>O`t*uxycKfdYS=l@-~Cw7IM8isO{Y0 z(G9wr$F%{v@pJ~XeKy0RySBrl8+1k2p%PJK&w-;3kz%cQ2?p^@1H@8z@JB z8o3Y$LYk;xw}S5>gt`ILc7(e4g-18^=Ekj{`?oy0r$XA7;0r8Y7=R3IJOawk;O5zm z7gic*%`?v;%=t1zdjgdCq210SfOfV%cvyqh zx2eG5$J+G+HKIfI;i4qjt`ECK~o3p7+7ym$nf z3xb5oh8I&Ic5EQVnc(FA1XK=yLd65NI0ajK4s<>)s4W7nM-cT@;~P-6^gx`)ji^eX z^#VAmn`K;O_%p^$XgB3gY!UA+q!daO{J7u&$t{FX#*x@UicZ z&W@{q2dEX?4LTq#bO-20trux(3=A*Nf=UWd#kzqJUKE3m4gepD0BJm|gw!z)K#>nA zok6$nzK8*>!vlw6E9jcV7d{|<_g)Yibb4Jk_;y94R03{@fQ|w|#MDf%$-Xx{8V`aF zwg>G}cv%c-C~SDK2XrMGsGGYP#DIjr1^(Vi5IxK8WAF7sLkjQyjkj|Nk-&GO}<3#U~3u z)1RPo{XoSr=z6#pS3pGtD5-bCO0XBOt9pBDH@vtCTg?c)6|j3NxX|i6^x~^B$XDQ- z2jLeMfiCj_75&f-wd)FK`@^Ff`6iwh4WQ5iT_gtzc5Tr0O|77&1^9?7P&tj#MFw|u zAr1uJ2-giZ67RkC zWz_x|a(fum|7r*C3Iip&~y3fcLY48Km ze@Bo1bkOiExLt!P4~k##{LzaSAs{8-v1`ya-xn`jKzztq!r)RItQ*$fYJ3Ae`UV#5 zpeO}R>4T~rP&ZrSFVZnT-`x z-x)8afKqAa@fT+gkgV#JjV~4QeV(jY4LydPX; zcDeS$>uAsk;b616Ye8i}!wbGY|Nq1LNT6%)u=PA{yl@A1?ObWj%xt*3t>1tEBB8+-rl#tTNI%j1xe!OJh8A!Lx- z7@!PjMg8IdsJ;g`fWTWc8jpZdHMkeC;>8zfL@xr=8F|5+1{&mr%dF_P`I0=D!?K?brLr=W$e*gbJQnRiN)Z74h89I;=)fPX~^zma5oy%vYhcE2{cOCdHlsJ@X9MZdF926?LT2*8hXQ{@esIh z?+gX?$WMSTnFQab(+Y}N&wn zgIZ{y*5eCvklmm_hu$`=4&p;+U_b>8xHpU?^T6{;CMbb}T4A7|fF{^SpsiG$$6rYO zfCa7q{7z_W+5W_f0MKwkZ|#d0>OcPfe+lX_f`$MgIcdiWr_cZYzXZ)0gSR?BTnlPM zzNmy+wDCK#MIb5cIpf5O=b$73%8&cL!zOV-j)#?$H(qA{1xGQcnD78a`7uzj49gFY zLByg157Q`o@q;TR~m=<1ZXRkqRD2MtBHTUqaev zAiLn}gTUQ9h%ev^0HFRstAF9`IY=`LVLGfn1y!UVvvJP{fyYu|;S=o9_y%-Eg-5rm zfUDsp*UroE(~&`^H+O$a*0oO}(WLUL=1(@^29+X+W=?g{tWU_oQFE0qrI2JpMuj+~EWH8q^KPQj)=a z9R=!teIea08q~w7|XDg)ZwiQhEf@kYrd}c$~e#4`8 zFQ}vRf)Ak&>_(4n*cctiaUR{^F*+Ye2hFD&(uM2>kB0hmPX%=qeY)pDMtUFnbVf_~ zbOsCfbWa62$)|fRs0ZuQ8O`C-DeTedtnflt6zT#*+)B+heslD)`8Du_Wr79?GZvfxX z3-V(YI3<9_%o#uj{(1C*mKK0c?Fa3eUGO3sybl<}2Tc?$KpNVCE|CGvD_wZ03QEBs z<9346FUi1)p z;zcWHmZ=jwUIM?v1k{#*xi7(^GxUc?r|$HMiSebd@odnFnH&5q|3G$unjN5) z>C*Q|E(Z-4f|DX>;S3~wp8#DO^+F#satOLx^Ospa|H3 z6anD2Kd5c82&AO*_={VhJPis8&@~#pAVE;~2K(qZNZ+e>|Np~Asvo?VgV4R=g+E01 z3Svf)A%zF1H8vAu;1^IT0;hcB>KZye()b2+HI+xVtAS5%sDe*#EU0+^itZoa= zjpqa4nHk805vc7CTISRM8Vu?L4YGNF=GPZ^bc6R^9e~^r?z_RK+jWLdx9@@%+K@Qv z@aPPk@bW&$@ZQ=BFHAw>*`QLii`3!>XXmJuV@;3Os5L()b5#-0>GGpzc~X zsEZ4(NnbnxiFZSnJz!^Xb8O*6p4*TK#>Jr;(=cNgU7g_>p4O56VQP+cykU>UI}<~ zf{wceos9~@r9WN}R9_33M1ajL;aBhA(HZ)|qZ70?8g$`j?TZ(OK~V#_TIRxwZD0;) zSClVk6%9C9z1RpA1SOl&6QBqJug3>xxMMF|K}~E>lM=kJ29bne?OC+>FVKLh?+*`6 z)HUZ1Jeq4CFz~m5hUmbh4QS3jGxPzZzX(2dub&S*gZRQD(-$JlcmmSMMX4{K?ORy; z6}~6PiEK>Tk$-*`R_B zG?%3X(hu2s2CXzfYgE<1shTVt<-{NK(zi8C_#hoTmaX_;PaI}yzl}U z4jQEfMQ|rH`Jv9=!tL__olXN8V}q=qgVcv`c?XWz!&u@U)V2e;5#l$nKheq)(Eg?e zpgt@{;(#nDy6{37c~CSMly!S+AG~-ADxo@$zjzAjJb~8=xbAqd0wf3?fWuL6K6s%D zY864$Z+HP};l7*<5&?~Wg65LJ*Uo`5H3)}-S^xpa`3shi5eXMmtw7E<=ne(ltp$$( zaQYx!J+$ltr6W+O1-%^x6z0gm3(N2DvK8c9(861g`X8Wsi%_Ejt{zsl!p#Ty4$;0r z-_HRl4?q<(=t5=4nloWgh=WJ9kzItE9uB?$-2n;@3wU_|F%RNLP^H;h`s0N%=&%DE z=E3jhf;a)xBm^ZVaQC40#6D09{KaEXk^r@HK@9;=W6|gtQj-g`AQ0N#gw_5#JV5u0 zbeHaUu>!PUxzqIr=;A^Ka6t`j8`Q3VnA{05c>`$P5` z@uCH0GE&16)cXdtIzYW|km?4HZpeCQkM7Wh7XnZn;0aUM_GUx~L-Ic){2+k=nGN{x zq8T*g1PK*z27?sFF!iAO*dXdbl2c@^AY0r~6z)Mv;G3qkG%xgQk# zpvE7_KP#Xuz73!j-wRiWp+CS2kvc$zfzl~xX`nU82HZ;nK}9UM*^4}X2N~~18Ds)A z&_NvoowFbZgNLCXfX9iXAp)TFk2kRIfDo68(!#vtpE=Pd-Q_W8NB!nKD6lg3uBNm zz2F8fxRLr8B#yU{+6^%WRQZD|g{|P)`Soc~0D`A$zyrP3U?zVrWQY>v4v4+Uj}Uj< z-|)}|s{#cBXyHOTC{8=U4R83G0`*B>6R0b@jVhu7br`Vo?U5rrQ(54?B{ z8T$io_Jb@KcRldp8blDZ6&2L41^ zfSdsIWVaJCY8XX3Yb&_lNw-B3ry;ONj)%W049yVqzRZb1CthD(h5x4fJr+r=>R63 zz@!V9bOVzfVA2ar`hZD4Fc|Kq3Ybg-lNn$# z3ryyK$viMw049q9K!X83y|RS?3=EFJ|5ZEr7#JpGfUeGY`RxDy{~0l$jc<2AEKm#S zruolHCVl34yL|-2!6ygIKFTtX>dn0f==P#F_?Ty#cX$KrBwsB5+W9 zBSQzo0+sU_{vZ};*f0Y$<@+)Pq;4TdEDFQ|?OS{anrF_q1rl=uiG2aFY(Oj_&|roU zh@}N$fdWTQc1Tp(5nhy@zH&u9d(K>HOkCV*IP{{8=-F(1SN zttZb|3u1x#4;gzwEYSMQjME_25slui(0mS+WVl4x)SU>|Vb3iQ6T^TPY zfmli)u?`T+5X7nju^d6Hl7IjI|DUbOD8mrMz!2oJk&$5^BTpX-;}ymoj2jsldYET0 zGQjSf|36!kQGp?lfgw=7iHTt*BTpX_!yZPPSxgKInS7d<8Q(G~BB_;R6c7-0U{Ka$ zUxW>%DaE&==G7G~-mWzz9Ss2c82*2WB_{hOCn~!lP=U(Pl91M$i zd0w+H?B(U0%))Simvc5B<4s-(28NGd<}Y3YxOEI5KS(hYGB6bKPGw}6!^ruMk?|ZO z=Tt_9>x{+-Weopk%Q6a?2xKz2m@qI@@XTanY+*#WjDg|*e?|@g9%BX>QwE0rvlSU7 zE87-t480tZ}0AvR*BS#cd8e@zCl9(x@E<+XrL)K)LORNk{tep2)85Xm0USef< z%F4Nmjj@@H?-DD+95xVpDI47R|7Y`p9B;%ZqlRRbAS3rTM)}oDj8mBm;KE?Pi8J^x zF!%`6F~n#xFtjpqE@ouxLk;WLVEA$G~uwk@Gbp<26)uyo?-L zyuOU)NcR3`k1@hL0ro>UM)dftf>zNpKGI6e9WBknA!?d1>;XkVl+-A4L%$(E|g_3-Q{DRax zg_P8s#7c$4ycC7hqN4mFg@U5|w9K4TD+SeJE(V0!g2bZYR9uP`bQM5)6jE~wN-7~b zi;|EugDrB`Gqf~P$jmD!Em26yEGaH2N=?j#DE7=NOU%hk!IUg7%Fjzza0h8DuFOkT zD9NX<)8$WMdn13AG;AvrNGFTX^gC^a!fA+0DeH&vlHvnrK~ z!41sLELJGV&sWGvEJ{zc0?XK{l58RuLpg@;f>REuFT0QD7AVM$S9a;ice*cZhCsYL;a$=RtT3eov#X~n4}v0MxaFnv}E zaDXFjL5jigfTUDG0pfbFI3j)^@tT*In+nndaSO683~z%xqySS7b~Lhb1+WOR=izG6 zy=JA5SDKrYS_Fz;a6A?(6r>g@6hQo~VW^{EqzQHtH~^3>DbC1DE76Apj6x>P6b_Pt z8my6$nwD6aQ(~oHpvlD$nwMHpkeXbQnu5;>RtlhmQ;wd>Asz&U0wifGLlU89igi&* zL2zoJUp|NtQfyt6To#g3S9E953t zWagIUDioI%6yz6y{0vgZz@V7z7hGZ-A8%-Al9X7SnH-;)2FbCW$$r7{hK9)*iAC`x zMTwau#h%HouCA^OF!ja|^`Ia~Dow+w9Ne6eVPIfjW?*0doyY(x#6WvanZP9(sDZ`6 zsK~&?n8CovaKMCt0dxi{XkD}dcn3Lz|G|WTq2@CKgMv8&!;;So3I&S zd|_ZHNMm4l0-`e*7=CppSup;~N7*K|ce7 z&Nl{zgeeRRAs~7#14G6)28Mun3=B0OdLaYDgl`NC3QHImmVnf+WMJ3mje+69Y6b?D?+gq98yFaLzB4cwY-eC__|Cu}u#}h6Yv!mIs$AwiOXaf2ZPgMbkO;|5~}1_KiY z#siiNOb%8Ij2CPem;!7W7!TMpFbFs^Fa|g?Ff4FpU^H-HU?^~7U`%jlU=Z+NU=Z+R zVEo|2z!2cez*rE(z;GdmfpI}N1A{^Y1LK4U28IU_42%p>3=A7UIGTZRK|BKkLjnWi zf(!-*g-iy<37HHG4?uJd1A{^?17kuy1H*@W2F48~3=9sX42&B|yEes3+tqhC}tqcqdZ43+xIvE%Rx)>M&x)>NQbTcpr z^e`|w^fNFxOlDx*FpGiV!z>2IhB*uj4f7co7A#_5WLUz$?691Hk&%Hh5R&8(Rs-p!5Z(IJ$jER--Us_P}TqNhA*Fs2UKr=MThw5E~i4fZAUG zbswl40QpD3527A4wgTc`2!!wpLLl^mPza4|7Kr^J3RQeT0xJJPB7_ff*B%`10+}_6 zM?+vV1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ON zU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU z1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz11N1TKAo z>djRc62b~`QqCw|QfM_|Wd_z7&e?cCE4k&=o3Q#&A2g1JqRcG)T z!f&_>p*OsQ(4cc8K;{PAf$$S@p)}N-4@D3@===}>e(9|{;z zOfZGm4Y4|@G!2LCrln~)`Q;!NtRPFjSw(SrYDu1JKynU4!waZO{*!A|K`F>6Z;)9M z zGFOI%2@uDHc%mmmhK3cW?guG>djRU#Fh4_s`1s_Cio~SMGD9PS`1s$%!DDV8eJAWY&JA1$&ZH=*OdjSu9JSyCgV5HI5j`bwG6K*pkgH+ zqzuh6BXE8-Fpf{k&(AS5ijOZTDou?qOUx++MM)8=myP1%i}JyRT6%JdC%Dpyk1sDu zEQrr6NiFgWK#px!S6A1N_+V2gVkj;^2|eTZ_?-Om)S~#L{L;J>&!7Oeq#$o({lUiZ zu9!A}Qw^91F^CU#1fd}B5X1P8cvRmT!(Ez_npQ%BQ!$JwE=f$vNsTYgFDfC;m9DO3 z5I2UzgZyC%3L;R-hgH$Rj`6OBrYV_eX{kl2dC94ebQa(j>=JKi0FD5NNDhXRN(%~T z7jTdQHZ3zJ6?feZs@{rH6I0@I^HV^{1T|)fGQkLxa576$$v46zzaTZwHNZPL3oU?% zvELM2lA-4r6L_jA%1qB7DcLj#pag>5un z0hxiER-9T?l9``JS+Zt8^R#)qODeR0Pjybr$w@6TGLMf>$&XKg3&&?9=B0qL6R5}! zD9c5SI!psB!TOUEb8=h*&b#)DPjfa+NZt)?8 z@xkuII}B?H4+;X1V^IBX7VqjBYyq>$5^R$rR-4jOOX5pXa|`l|5{oM1lS)B_DN3UQ zza{e0*_1PG$*I&@XG{ovzTl^31%H_@LC{(%e*r2@J&?kZ~YrCkRx^L;6zS&T)Kler|4lo~KWep{pxM z4m?&6k33)mYSb_k3!s={2I_U?q*`Vq7RRS0Ca0EwlD|Pbcwk}zL$L%_#ihlm*c4kp z6bF|W8s_AuXC}vkhpC*6Kus}_`*$$H6o9)v(6mNisLBZ9>H}oxEh=^m$^=<_164DT zgC5RMs~?c1+Xbro028vOp~3BJ=o;i5Y!DA}+zD(7Amcs^#V=4K;Ugg?nR%Hd;C2r~ z@dxZmOp|j`6N_B4Kvw)fQ9^K}1m^SxW|-6A!#U2N;fe_i#T^i-;1bJ{)S}$Xyu^~! zGLTI>z~b@A6^Ze%_FjByMRIBZs7(n{Z~&noDK$MaFFrZ3Bsl{la{?g)YSqP;=A~8? zq$Zc7rhsHGAY@bXKx1Q2T{jToX+^22sFpoINP=?%$e7 z$p@#HA0Q5FP=lekfknt6J}oV$v>5Ev4lozg%K&Md0Ol1GW#*Nnf%r4Pd{8e4#9IL6 zfphQ*FsC>*H5(+g0nW<@ad&{ZC8;?%VD14hx4bB`1g!N0h?@%zRFL8eU~Xz|azQ1C zdjrY^wRJ)K2T*=-Y6)lrhB2Ojm4PXqK`=KlGmqf{69ZFjMto{TYI12wYJ5g&B50sS zGm1f%2{hi!V#r`;#ITvskKrm)2t%_t1Cx1jer`cxQ7U}ErWmb9ZWzz7j?onCR%A8M zVjEU*A$Q_YM_<7Gc2{sYahi#l;Xoz>1Ct3T1YJ^d5-T0^Qd~g;-T_7VpprkpJ2?o= z*^bS52mIaMW*h2$(XnqSX9{(XLY~my2 zUS!pMd@L**nwc0Fm(!qPB@iGhV>0hqk748(r00z@9T2O=*#U}9ik zF<@9HI6$5J7SRFk*>{N!((b${0~0x8H~$3VF%{2jPPl40FZdbN3AY#2J`~ z9h~?i4(&4IZwRG=t=de2Xg)x=tGS%OFlZc4DQTxeopU}1UD%)-EMAk$z2 z%LHbHf&_&IMu7v&2_IMu6chwD@F_q*!UQG*0|f2q-i#8VDE|I2afN7&s^x7z8MQj0;du2vB&yXduwQ z7+|1a5MUtifKkDqfl8z(61X^}ts0k8uM3Lw@`U<}y6C?Jqv-~h5m z!N33%Bn?ak4U7xe6%-5{3=#w!KtTd_JIGND%nk+y4IBmsm=!*72!NG4K!QlYp@D4y zn}C9VLIEhC53ng1d|-5Vz_@_%0Mh|x0|SGC0s#ewfCr2Y1_ln`csDQrDKt4_^7~~im7!E-Bv!HwjD~S3{Q1t>f5dH@!KfxZt*A|1AKLN^5 zhVnN+`Q=dl1t`B8$`^2l=-&$E8$kKbq5J?SUrroiegTvp0_9JD^4p;N4N(3DDE|VK ze-Fz40Oc!6K+Fs9fY@IIS`Ao?pMA>pY2 z<*$eGFF^Tkq5Ka}zOocVeSkMaefjV z!f%A~F9bsPm!SND5C~sY2BQB#D1;vi<$s8R@Ml5!3lbpw>rnoML3Vv5cLI6em|6d0m{D$M7|Oo@ z|3!!|442XFvp?n7@|2dQ&0OgA)Li86v`R-8u2PnS*%2&vQn0E-uH-Pdv zl_2^PpnQ8Me*%=>0OenR^7ldc3|SEK?m+nlP(F_`#JmP5UkA$H0Ok8Y`5&PC8Yo{N z8)DvkDBl6fKLO4qs`~y(FfC|LE2T;BRlrNA2F|QcPH-PfjL-`3%{wpYd1C+0( z3Nh~jl%ELYe}M95LirBRdzG%j_|SWsK12BpP`kP%6|;y7eM*O8j$>S0m{$NfSC877-HXi zC|{ri!ru<%8$kK2nh^aBP`;HWME`|yi26tT6p9bX%K>4?z`~)apTnnOq0hDh8 z|{xK-u0m^?0KmZ^3Vn!q6QKN^Q27l| z{(Go=0QCMXbpwe02~d8D0aSk@#Qqsjd4VPf{}hyO0Oh}c@)MwZbwh}G4N!gpl)nMW zZ-Md;K>1Ig{0C4zhY>_SLo>uaS14Zr%I|^l4WRtJP`(3{{~gM2fbxxuA?9s>^7Ekl z3sC+tDE|SJf6W-;e}fi?{d^`6{S2)Tems0S z0m^TM@*UbB=AVP|1E72nGl=>LP<|qmzW~Z#1La?U@-IR82JH~@en9yXpnNHFh=`XTONw}+@Nm;m8>LHQG){C0atcrAePuR!H5 zK>1n@5d91jA^NkRd;=(d3Y6~v<==3Cm=^%$D>_2>1yFvTBgDK7Q2tXW{{fUQ;{=fx zm;|ve0m?Uk^4B;)%yWS9ze42`pnPLzh&%)IUcq8#hiGg7@(xhG zC6pfk7Ef{0mUNOAtiA z!2*c>=}^7{l>Y(BPk{1yf+6Y)pnS7nNO&%Q@-v|F3JW3T&4cm-p!`Qr{sSmqBm`m} z!y<@!KPbNe%HIv;Z-DYOLLuq}7DLpxL-__!{z@p{0m{D}3UOZnlrI_v(f1CP5dQ=$hv+{DmA?SxD@Q@}e}MAipnQQ95cPARd;=)|43zHx zM8mj&Rl%Jji z(a*3BV*cVJh<*bo|07gB0LnK>hRA<_@+*@e`VFA>?;eE88*G4>$CLt*-vH(NK=~J- z{7Fzg!$yeuzfiscl&_Nt(eD7|mqGanQ2vQjhH1k8$kI=c@X^xP`*Eu-vH$= zgYpkR`4^%54^X~BK19F3E{ORaP`(3{KOM?X*awln59K#N`FsTs{R^OcODO*Wl-~j6 z3+#vJ{|)6kK>2xvQ2kK;HYk4sl>Z0H{{ZDD7eUlB9DtbD4dp99`S+oG2Pog97@|G_ z$}fQO8=(9nQ2qoc{|}UZ0m|1bf#_#|-m{$vQ=ohYDE|PIp8(}Qhw%?X+$&rP zF>e8sZvf?Afbvg5`3%r|yZ=D>A5KE_Ta-ccH=Kj;YoYuJQ2tgZ{{WQ#0Lp&=<*SrK z^edc)==X>61EBmID8B&8XRUy!-vH%DK=}`#{MAr?zy*kTU!eR1DBrpgqJIID-wEY! zfby?G`46Ccjw*Z_rA11SF*l%D|QbF@IzPk{1$q5K0-em#``0Lotl<$r+kjani4 z6<$E>>w@wfpnTCbh4XF&NpUm^Cd zf%09T`~y&a1eAXT$}fQOUqJa&p!`2j{vIe_pc~@93sAlal>Y$Aw}A4$K>0pUKF2qR zdlI009Vov9$`66^JD~gwD1Q!=UjyZDfbu6m`A4AqB~bniD1Qf({|3rG1LZUHK-~WT z$`^t1S-wNurvc^bK>0RMz5|pW0Of~3`6*C-29#d`<<~&@Jy8Ab46GR@g+?t<}fuR68|LnuSzyRVOFoD=t z0_6ul=d1TY`5&P2EQ}!a4GaO$_OmmTp8y?Ss)h15K*!hDL-`HR`6AGoO@77(h63n( z6AKg6yaI^*`cS?Clpg@)2SDeu3ZeW9Q1hli`3Io$A^V|xgVzxA*q9;aH$dx~WGH_F zw0v3tI0zl)ifwS0Xlzn4aSGMPn;E^{sVM=DhSG7-~+M08_F+u1>s+W z@&!&o_*rZa{STn+p#xAp19bfJKa{TkKqVxhX)Y(eNaBb zeF$HT6Cy9L6T(k}@*SYb6^MKZ7exI5X#FnA4dFXL`&-RWegJel@(q-~06O2| z&BMUJ&)LB60-7G{q5J?Se+!7u*1)g_n%-YP`8`m+EHB7D0njD^aQZg{^BEW(K-WK* z^Mc(8O4eXC?hrmGtAP3KX#90({HtjE_h@_$KCt<4^K8-hMQHrxX#Bfqdh zQ_=WW(D>W}sQR7I_%UewA~gOiH2yX;{v|X%lOU>nVrYCVG`IH@$Jy~GE58%vP=vNa!d>i@=Od2pBWh#zA!Q{dl_`T9W^Rk%8eSBLl-PMh1r8j0_Ba85tPCI$u`CI$vx zCI$vRP+i5uz#zcHz#z!Pz#zoLz@Wp#0NxWN%*4PT!omgCY|H!yiTl20bPQ24f}$1`{R*1`8$z21`gRHZU+SfUz|b1A`3{1A{FS z1A{jc1A{LU1A`yb-Z&-(hS9JmJ?s@2;^U(Xsk6@wWD+s^>f+<0jHt7X4P+AKo9aL( z(V^{kBV}U;7VSiCAi<&&%T68SO(Y;4kUe??PjJGg6m|0w9+l`jpKvRM?y#Cg~Qy&RvR+j|zeB0wi+R9f}@e_w<1@!M7fg zU=dso@fKm8DH0DpZzMh*^(Z4y974MgpaPQQLyVC0L(kK}dVCQUW!Mfb0x83OWD!&b z^U!UG1PO;2fzI0|Srh1}9g;PHP8}ju6XcvEBwa)vkOV)-n{=(nXLysP8*ywm>Dp0_ z>?U11_*^K`wSiAnLTH1gT=+>)7&71^pb(QK%kx5h`4U2wW@tGBKI$$$J}L!t$as8w6zE)W5LKQF z3Z1<2T(r}}<3Z;`V?E{zDuaB!7gPxSU@xdJ;zTc~0NPPrP*KPkUh(nR4k|}Eqa1vs z7m5hv)N-&8;ff%53xG;`Jhh!XZH9}k^>ud-*A}b3NAF$)h z38uBY64x@4G$fb#f)2n$8A@_>D=Tw_ngbb8gSGXrG>R+>N{ch%lM<7&U4y()9E(Sj zX=-jkNhOLEhQtL5w7db`CXkmN4^Cn5GwHw{M|Cis<|2y2gAL=sx}gmfn9~WhZB3v@ z)`Q}fM6H<>uHdZZV`vob9~@ksSm2pgVrW(Zat4Z+u@NLxQ9XtwCcvllfn0*B5>F7| z&_T%8aBXN_#$yw5KoRXcSP=Q4>cHZ4xJon^VNr_PC4{_5qGK!}0FCO}hgv5S(Ch}CMGnwLVBMram{LW>qW zv5!Lsme@g4No=72Z3m;*h$Iy$F#iy1CyrW}NIRjrp73P4o4-+z=Hf@&;=AGX$ASko}kfm#DzYt$R#szZZs*b%mdvWM5EW?^Y+d_hT(r+IvQv74ulYk*rO zlP%}FguEs8Hr%gjqm z^$Z4`P#+Nz4>{jBJwHDszNjoQC%z~(4RRp{vQO~3#=IysClz#~5Tt1YDPaxqYC+Fx zcojPv(bu;=CZLuk=xqAT09eqwy1M#~y?bZ9M-SK?E1Qgc1w!Q+!@;OdiP;OgoO zaZMT64kRNG?f@lXgiG)_#S|8@Nao;niW^d7`D7ZxofB*lkKr1k0@gGwv#1!>-iIV= z+_uAf1P=()`1tfxRNVx!1hkTc6&`rAglSP~acT)D_alW3QNA)OPEF27YnkBo7S=$; z;x!*j_+TKYm!`sw5at05Je5*nNz16DvG(AU+E=jt@3QHXAAns|7r1=LM=6hUo-)G<(XM8|wV zK}iv+6~t;aEdXDZhhi;eYBhkgCsp(`p*#uK7P8XX& zt~7u+*gHAcG#=b*h7E`i9ZIR777#RqA&J4qI5#uTGZ!OUKm!7&i;Ob!kX#cKYzhiU z^Y|dt+7)U#Qnt#?B`RCx=DLEjRW53_BHE+rNu{|3&}JUgD@5x}MM{Q{Kq6Xe0j9M$ zL(n+C6q*9T5sE7aiM882J|1Fw4pNywaHI@hvU>6*{qr%q%^%BqtxW=Z0{+v!Sc6U$8;E zX?%QMVhJ?&LE{weLuVtLiik@sps>tM%ubEZO(`xZ0#%fdRDdfilTpJ9o=nhF5lla! zIUy5p4-%!Oft!g%4iP-bWxgQ>@geb^pn+vjYC|1vMs=p4aeO?|B(W!!Q6kIuc*rC| z0ZNGu8~MVb1JZ(oUZ@qHpO+e+SOPM`(<{gubbUmbOM!m~aL~mhTSO^Qk0lioR|!{rv)@88Eg!#Rv~HD z&{K00U`0hM#zzb=(K@j5l^qt7)w`;^q@i;6(HRJXCqh8y<(6i3^aU* z32V@>6IyVCvXOaaUP)?tQDRO!STZrM#4`zeBa|zS$UwSxH_H_{0$p9p0>vy26I8u8@iXB@K`s!0^#dXqkq`1W=e3r6%X+=7I*oQKAI>I=C#* zU<69oxw<+Vy5^#_(GbZIR21MzjYe2fqaiVt!V@52?^z@#79=KTqRp~FdV83SUJ}wG zV$FS!H!M3sokK*?jWw?un&g${rWR!;$LD0`g08L4aRv2RQPKiYWfJJxarjNr1ab(v z<5A)l;YpP0j@a@XHA_H42T}*+A`iGhMyW{36Gos__?bz`1qJcwfd>69LvD0@N-=G=p40 zgO{KIMf71*VyXZOXqB7_F55{iuF&!wG^7!3gEYTE^*C}3Kuic>qyT8>VodbD`|;IUe4%_!Wg1OI0uWLK#>d*Hl%a_8)OJd!Q=|5FCin@ z!N!6u@b&Vpu6ZTJMWD_l=vq*4OA>tTaIjH4sKpJse;J~%xX9Qr zvpBw_D6=dxF(;=Id_^*(=?T)1nUs_23BIlwqTIC%I`IT*j0RhR7C8h3TcWhzO+eT3 zdIo@souCl-z%;aQ!WYOU@$reUK+a1ohb*Om&P?FZ2U@|MnOByWlbHgFp2VCS_^sE) z&{!gDxv?RV<;nSZC7J1^`K866fGA1K%u6kD4e&0544ns?LcB}ZP?MCzl0>KzAn6=F z%a=vW)E?@50Wsw^yr~Saj;Qu0bR{WrNkU}13~}{4xc&;rf|MfAfFa6q^hOE^?gnM{ zlvK!d+R&cAYXD^Mgkn>0=P(0TSCj=1#8mUmeqy0YEX)z!!_9_JXB329?oP+MGGkq1gZi}sA-!J}QqpxQCW8~A!A>t^R|eE6W(xDc*Yz|u#7nnlkBhuD10D-`1Fh2An=G7*)ane z!$E1VfTv-~2$gtPqYkM|gM}y32pJ?lfL1pVGfDu5T1gx5}_(V zEijDk7Ss{g(kN;+ff|Cd_CPfOYAmjN0yT_;AV!aA(oMjq_hCk0Yj!~0kLoE%PC=#JT!O?L&HyIp17gReprMOq9_}K6n5r9;++jl~ zkfqls!w)3XASR@aR)Je-pyG|X<5l2hU9e@mt1Dyxim34_gmR?uD&zQIM-U1Mc7zPz zKqA@)I$i~h4p28B1in-gT3!$n^u&x_LG1vA60~?jbaKFl#E>$Ig~u@BMzhR7dzFIC zAb~-=Pw|XuL7ha**cNmU4H5?=Rao#QEg5>r8S8?3$`xf$1T^O#5NrhPe?o(gB#)rC zK*;b9sHg)EE|n&iz{kK)*T<6NBwXg49KM)GF0c**R(U5?pEIf@$tOlX9Dj`V= zR*Yd;?}4_;5WO8uSO;kC32B8FXctOueja!ajVrq0*t~+x21B$~B`8uYK%0)z5=(PR z;xqFyOX5os(;>5k=uJ&xEkSQ^kzxs=LyK1zD1NZDoJg9;M6EQkkUB!nMxecHhS)*| zd$P?!j}bfx1HH6G8y3Y9ZKUhKRw@&=2Wwe{JpK>!6*Rk{1|X!Jg`P6eY$ZV_w&aFS zJJr)RKFcUc<2W0_sNo5Up#^|ae-nBG0PAr3<+}E zOC&4+K=u-7lmp4PkbI1P6#%k!ymL%MEd@X}4Xb0&5*n#l3o#2$aB3gfDcEuX_8OhU z>X%BB{K#%aTE0MdrXN`&Hcz5fd4yVYs3strjnx0aQsiQcZzF5Pnhc1Y@g{5#dS4dD zWG%@F4LUhQ#N0PQH)2m|=u_JSjlt1U05vKxR)7#R45OEfBixWGD14~{Z^=Q)>@>1R zV2O~ZDQXmrq|H+!YsH#+QF9ff%EZ}lK{El_a3l|5%TPI6(5%TUlH7544r@L624 z0|cXjfSE+Cf`sU7U>F|{K2RgG1hi`hbxa-9v@I`6ECBBi@lh(SEc{t^?& z5q`+2ItS!Z@HXurZ{*W)P)>S7*5DT$Z)6%DUzA!>T9g-GlA2qPUzAu>3C%H}UGLy& zTD0S#vD%y%?22gnLPH7p%s5i4g&rpdnl4A0rX<@J@WwqX;h_XPYE*;Hb4^8A8HLri zpmpq^9p%&tXZVqlkhV26{0LFF9F)2jbodC$Y95Ni97`+J$H*8* zsfOPzKA=--F}AS9m*#DRJ?-< z3UUq$Hja071s@g++Q*!O^PFH5yG`Tci&IO`qdzwQB`xBtWU%=KUa>&RYgoea!v+GRXW%ZRKp<^Fmw#Y2=kx})N%;Cq&gY3 zPl!=3k(4&EpE{1>MyRFW_5t?J7H9=3a=}VY8pKxPqc{Un4!Y)oB8WI=kW#**_rgih zi=*97PAH(ZQ6S|rY7!v3Re~?^VQGn=+G-geUr>~v3_5rjIp;&t9`P}Pr{REh$f%Eb zVoF(JUUDjE#Vo#38+6=ePzd<=ep65f8TmLs&?qcs?-VJe`dFl77MBod4al1qR$%S_ z27@;uAlqXGxiy*y&xFLI9?Aht17=03WvNBQso;J-$d9OXA*ct9*4M|>0rCKz7yvbL zK!-mex!WQ>J~OW@wWtJijDHg9q-rpzG2?9L3fpf1aVWGgfl~Zp*bAg27L*nbcq|Vzyoa(Er?|*GvpBvuF&C0bjG(s)fcIJ>ZWI8IK*09e7+Ij4 z4U?Q-P#K?CT%4H>K9j~X*c`qu$29=Nft=zW06Og4DL&W&vb6;2RnX#u(mY(FFRqBA zVsNNO%}Hp!D=s47R8U(A;w#qxP+UM<|H=(30S69Da!+1=WfI?9(uy9 zhoC!=je+39=}E7)k%3s4C89An@X zOB55d7-R@ae~w@V0qKD5w1Y$!zDgQxovx2%d_2vnchJz1Sy5tMN`7v9Vlt@70qSUfM?n^^s@U=>?qxcBA7N37X zLsY1yA-7k+H6vP1NlYB*2ALt~q`vr~#Ju#>V#+*k06OhEJwHA@IR#WEgv19Mf)G-Y z!r9FRWgUF8Q{b+qyR&nAY6a+w#P|}>X^4gl=psfKBIXz(hGrN-My41-#+Zg18)K@% zG|L#%Mq>*Mjiv?|LS~pY8X8z)C^Iy~^rRscKN%XCVCu!CYW(#jKzJ% z=9n>VY=OmI3oPbYV1|LQC1zNeU3DFb+J-d@6P0l20G5}X`=oh_!yJ;X#AzThsg8w#7 Ski)^3JQoyYmL-;?G5`Q4*EXvF diff --git a/scripts/tools/Win32/networkSimulator_g192.exe b/scripts/tools/Win32/networkSimulator_g192.exe deleted file mode 100755 index c17aff5249..0000000000 --- a/scripts/tools/Win32/networkSimulator_g192.exe +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b81ea0575fb6b40f48c22b59f90820774054e82708750f9350cf9c0ec2674231 -size 578574 diff --git a/tests/README.md b/tests/README.md deleted file mode 100644 index 6ba72e4ace..0000000000 --- a/tests/README.md +++ /dev/null @@ -1,173 +0,0 @@ -# IVAS tests - -The IVAS tests are using the [pytest](https://docs.pytest.org/) framework. - -## Installing test dependencies - -To use the `pytest` framework, you will need a few Python packages (in addition to Python itself). -As with other Python packages, there are different possibilities to install those packages. -Please chose the option that works best for you. - -`Note`: -The installation of Python is not described, here. -In the following, it is assumed that `Python >= 3.7` is already installed / present. - -### Global install - -```bash -pip install -r tests/requirements.txt -``` - -### User install - -```bash -pip install --user -r tests/requirements.txt -``` - -### Virtual environment install - -```bash -# set up virtual environment -python3 -m venv VENV_NAME -# change to virtual environment -source VENV_NAME/bin/activate -# install required packages -pip install -r tests/requirements.txt -``` - -## Preparing the tests - -`Note:` -Currently, shortened test vectors are used to speed up the testing. -Those shortened test vectors, some with gain adjustment, need to be created, once. - -```bash -# create shortened test vectors -python3 tests/create_short_testvectors.py -``` - -The tests rely on references which need to be generated upfront using reference binaries. -When the reference binaries are named `IVAS_cod_ref(.exe)` and `IVAS_dec_ref(.exe)`, pytest will find and use them. -When the reference binaries are named differently, you need to specify them via the `--ref_encoder_path` and `--ref_decoder_path` options. - -The tests will use the binaries `IVAS_cod(.exe)` and `IVAS_dec(.exe)` for testing. Please make sure that the binaries have been built before running the tests. -When different test binaries are to be used, they can be specified via the `--dut_encoder_path` and `--dut_decoder_path` options. -(DUT: Device Under Test) - -```bash -# create references -# the following binaries need to be present: -# - IVAS_cod(.exe) -# - IVAS_dec(.exe) -# - IVAS_cod_ref(.exe) -# - IVAS_dec_ref(.exe) -# pytest command lines to be executed from project root folder: -pytest tests --update_ref 1 -m create_ref -pytest tests --update_ref 1 -m create_ref_part2 -``` - -## Running the tests - -To run all tests from the tests folder: - -```bash -# pytest command line to be executed from project root folder: -pytest tests -``` - -## Re-running some tests - -When there are test failures, you may want to run, after having fixed the code, only those test cases which had failures. This can be achieved using the `--last-failed` option. - -```bash -# rerun only the tests that failed at the last run -pytest tests --last-failed -``` - -To run a specific test case, you can e.g. pick a test case from the `short test summary info` and use that test case as an argument to `pytest`. E.g. - -```bash -# run a specific test case -pytest tests/test_sba_bs_dec_plc.py::test_sba_plc_system[0-48-PLperc12mblen5-stvFOA-0-32000] -``` - -More ways to select which tests to run: - -```bash -# run all tests within a module -pytest tests/test_sba_bs_dec_plc.py -# run a specific test from a module -pytest tests/test_sba_bs_dec_plc.py::test_sba_plc_system -``` - -## Some pytest hints - -When there a many test failures, you can use the `-x` (or `--exitfirst`) option to stop testing on the first failure. - -Commonly used options like `-n auto` are added to addopts within the [pytest] section in `pytest.ini`. This saves some typing when calling `pytest`. - -The `-v` (or `--verbose`) option is helpful to see what is going on. - -## Custom options - -`Note:` -The custom options are listed as part of the pytest help `pytest -h`. - -```text ---update_ref=UPDATE_REF Indicate whether references shall be updated. - 0: Only DUT processing, no reference generation, references need to be present. - 1: Only reference generation (unconditionally), no DUT processing. - 2: DUT processing, references are generated when not present (not supported by all tests). ---dut_encoder_path=DUT_ENCODER_PATH If specified, use given binary as DUT encoder. ---dut_decoder_path=DUT_DECODER_PATH If specified, use given binary as DUT decoder. ---ref_encoder_path=REF_ENCODER_PATH If specified, use given binary as REF encoder. ---ref_decoder_path=REF_DECODER_PATH If specified, use given binary as REF decoder. ---test_vector_path=TEST_VECTOR_PATH If specified, use given directory as base directory for test vector files. ---reference_path=REFERENCE_PATH If specified, use given directory as base directory for reference files. ---dut_base_path=DUT_BASE_PATH If specified, use given directory as base data directory for dut files. ---param_file=PARAM_FILE If specified, use given param file in test_param_file. ---keep_files By default, the DUT output files of successful tests are deleted. - Use --keep_files to prevent these deletions. -``` - -## Helper scripts - -To help with running the tests during development, two scripts are available in the `tests` folder: - -- prepare_pytests.py -- run_pytests.py - -The envisioned development workflow is: - -```bash -# 1. create a new git branch and switch to the branch -git checkout -b new_branch - -# 2. build the REF binaries (here: example for Linux) -make -j - -# 3. use the binaries to generate the references for future tests -# assumption: you want to test your development against the start of the development -tests/prepare_pytests.py -# Note: the script will use the binaries IVAS_cod and IVAS_dec in case IVAS_cod_ref and IVAS_dec_ref are not present - -# 3a. (optional) store REF binaries in case you want to re-run the reference generation at a later stage -cp IVAS_cod IVAS_cod_ref -cp IVAS_dec IVAS_dec_ref - -# 4. do the development changes -edit ... - -# 5. build the DUT binaries (here: example for Linux) -make -j - -# 6. run the tests -tests/run_pytests.py - -# 7. depending on the test result -# - either go back to 4. -# - or commit and push your changes -``` - -Both scripts allow to restrict the reference generation or the testing to test_param_file tests -with a custom `.prm` file via the `--param_file` option. diff --git a/tests/create_short_testvectors.py b/tests/create_short_testvectors.py deleted file mode 100755 index 56c41d49b8..0000000000 --- a/tests/create_short_testvectors.py +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env python3 - -__copyright__ = \ -""" -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. -""" - -__doc__ = \ -""" -Create short (5sec) testvectors. -""" - -import sys -from pathlib import Path -from cut_pcm import cut_samples - -HERE = Path(__file__).parent.resolve() -TEST_VECTOR_DIR = str(HERE.joinpath("../scripts/testv").resolve()) - -NUM_CHANNELS = "4" # currently only FOA -CUT_FROM = "0.0" -CUT_LEN = "5.0" - - -def create_short_testvectors(): - for fs in ['48', '32', '16']: - in_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c.pcm" - cut_gain = "1.0" - cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut.pcm" - cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) - cut_gain = "16.0" - cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" - cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) - cut_gain = ".004" - cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" - cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) - - -if __name__ == "__main__": - sys.exit(create_short_testvectors()) diff --git a/tests/prepare_pytests.py b/tests/prepare_pytests.py deleted file mode 100755 index d1f7495f07..0000000000 --- a/tests/prepare_pytests.py +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/env python3 - -__copyright__ = """ -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. -""" - -__doc__ = """ -Script to prepare the pytest tests. -""" - -import os -import sys -import argparse -import subprocess -import platform - -from pathlib import Path -from create_short_testvectors import create_short_testvectors - -BIN_EXT = ".exe" if platform.system() == "Windows" else "" -HERE = Path(__file__).parent.resolve() -DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../IVAS_cod{BIN_EXT}").resolve()) -DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../IVAS_dec{BIN_EXT}").resolve()) -DEFAULT_ENCODER_REF = str(HERE.joinpath(f"../IVAS_cod_ref{BIN_EXT}").resolve()) -DEFAULT_DECODER_REF = str(HERE.joinpath(f"../IVAS_dec_ref{BIN_EXT}").resolve()) -REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) - - -def main(argv): - """ - Prepare the pytest tests. - """ - # check for python >= 3.7 - if sys.version_info[0] < 3 or sys.version_info[1] < 7: - sys.exit("This script is written for Python >= 3.7. Found: " + platform.python_version()) - - parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument( - "--numprocesses", - action="store", - default="auto", - help="Number of processes to use in pytest (default: auto)", - ) - parser.add_argument( - "--param_file", - action="store", - help="Restrict reference generation to test_param_file with specified param file.", - ) - - args = parser.parse_args(argv[1:]) - - use_dut_binaries = False - - # check for existing references - if os.path.exists(REFERENCE_DIR): - sys.exit( - f"Found existing references directory {REFERENCE_DIR}.\n" - "Please delete this directory if you want the references to be recreated." - ) - - # check for DUT binaries - if not os.path.exists(DEFAULT_ENCODER_DUT) or not os.path.exists(DEFAULT_DECODER_DUT): - sys.exit( - f"Need DUT binaries {DEFAULT_ENCODER_DUT} and {DEFAULT_DECODER_DUT}.\n" - "Please create the binaries." - ) - - # check for REF binaries - if not os.path.exists(DEFAULT_ENCODER_REF) or not os.path.exists(DEFAULT_DECODER_REF): - print(f"REF binaries {DEFAULT_ENCODER_REF} and {DEFAULT_DECODER_REF} not found.") - print("DUT binaries will be used for reference generation.") - use_dut_binaries = True - - # create references - print(f"Creating references within the references directory {REFERENCE_DIR}.") - create_short_testvectors() - if platform.system() == "Windows": - base_cmd = ["pytest"] - else: - base_cmd = ["python3", "-m", "pytest"] - if args.param_file: - base_cmd += ["tests/test_param_file.py", "--param_file", args.param_file] - else: - base_cmd += ["tests"] - base_cmd += [ - "-n", - args.numprocesses, - "--update_ref", - "1", - ] - if use_dut_binaries: - base_cmd += [ - "--ref_encoder_path", - DEFAULT_ENCODER_DUT, - "--ref_decoder_path", - DEFAULT_DECODER_DUT, - ] - - result = subprocess.run(base_cmd + ["-m", "create_ref"], check=False) - if not args.param_file: - result = subprocess.run(base_cmd + ["-m", "create_ref_part2"], check=False) - return result.returncode - - -if __name__ == "__main__": - sys.exit(main(sys.argv)) diff --git a/tests/requirements.txt b/tests/requirements.txt deleted file mode 100644 index 2eb090f4fb..0000000000 --- a/tests/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -pytest>=5.3.5 -pytest-xdist>=1.31.0 -scipy>=1.5.2 -numpy>=1.19.2 diff --git a/tests/run_pytests.py b/tests/run_pytests.py deleted file mode 100755 index 1fc6614762..0000000000 --- a/tests/run_pytests.py +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env python3 - -__copyright__ = """ -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. -""" - -__doc__ = """ -Script to run the pytest tests. - -Test prerequisites are checked for and check failures are reported. -When prerequisites are met, the pytest test is executed. -""" - -import os -import sys -import argparse -import subprocess -import platform -from pathlib import Path - -BIN_EXT = ".exe" if platform.system() == "Windows" else "" -HERE = Path(__file__).parent.resolve() -DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../IVAS_cod{BIN_EXT}").resolve()) -DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../IVAS_dec{BIN_EXT}").resolve()) -REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) - - -def main(argv): - """ - Run the pytest tests. - """ - # check for python >= 3.7 - if sys.version_info[0] < 3 or sys.version_info[1] < 7: - sys.exit("This script is written for Python >= 3.7. Found: " + platform.python_version()) - - parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument( - "--numprocesses", - action="store", - default="auto", - help="Number of processes to use in pytest (default: auto)", - ) - parser.add_argument( - "--param_file", - action="store", - help="Restrict test run to test_param_file with specified param file.", - ) - - args = parser.parse_args(argv[1:]) - - # check for references - if not os.path.exists(REFERENCE_DIR): - sys.exit( - f"References directory {REFERENCE_DIR} not found.\nPlease create the references." - ) - - # check for DUT binaries - if not os.path.exists(DEFAULT_ENCODER_DUT) or not os.path.exists(DEFAULT_DECODER_DUT): - sys.exit( - f"Need DUT binaries {DEFAULT_ENCODER_DUT} and {DEFAULT_DECODER_DUT}.\n" - "Please create the binaries." - ) - - # run pytest - if platform.system() == "Windows": - cmd = ["pytest"] - else: - cmd = ["python3", "-m", "pytest"] - if args.param_file: - cmd += ["tests/test_param_file.py", "--param_file", args.param_file] - else: - cmd += ["tests"] - cmd += ["-n", args.numprocesses] - - result = subprocess.run(cmd, check=False) - return result.returncode - - -if __name__ == "__main__": - sys.exit(main(sys.argv)) diff --git a/tests/test_param_file.py b/tests/test_param_file.py deleted file mode 100644 index 730acd5c00..0000000000 --- a/tests/test_param_file.py +++ /dev/null @@ -1,460 +0,0 @@ -__copyright__ = \ -""" -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. -""" - -__doc__ = \ -""" -Execute tests specified via a parameter file. -""" - -import os -import errno -import platform -from subprocess import run -import pytest -from cmp_custom import cmp_custom -from conftest import EncoderFrontend, DecoderFrontend -from testconfig import PARAM_FILE - - -VALID_DEC_OUTPUT_CONF = [ - "MONO", - "STEREO", - "5_1", - "7_1", - "5_1_2", - "5_1_4", - "7_1_4", - "FOA", - "HOA2", - "HOA3", - "BINAURAL", - "BINAURAL_ROOM", - "EXT", -] - -param_file_test_dict = {} -with open(PARAM_FILE, "r", encoding="UTF-8") as fp: - data = fp.read() - blocks = data.split("\n\n") - for block in blocks: - tag = "" - enc_opts = "" - dec_opts = "" - sim_opts = "" - for line in block.split("\n"): - if line.startswith("// "): - tag = line[3:] - if line.startswith("../IVAS_cod "): - enc_opts = line[12:] - if line.startswith("../IVAS_dec "): - dec_opts = line[12:] - if line.startswith("networkSimulator_g192 "): - sim_opts = line[22:] - if tag == "" or enc_opts == "" or dec_opts == "": - # no complete parameter set - continue - if tag in param_file_test_dict: - print("non-unique tag found - ignoring new entry") - continue - param_file_test_dict[tag] = (enc_opts, dec_opts, sim_opts) - - -def check_and_makedir(dir_path): - if not os.path.exists(dir_path): - try: - os.makedirs(dir_path) - except OSError as e: - if e.errno != errno.EEXIST: - raise # raises the error again - - -def convert_test_string_to_tag(test_string): - """ - Convert a test string (i.e. the test tag from the parameter file) to a tag string. - Example: - in: "DFT stereo at 13.2 kbps, 16kHz in, 16kHz out, DTX on, random FEC at 5%" - out: "DFT_stereo_at_13_2_kbps_16kHz_in_16kHz_out_DTX_on_random_FEC_at_5_" - """ - # replace certain characters by "_" or remove them - tag_str = "" - replace_chars = " %.-()" - remove_chars = "," - for char in test_string: - if char in replace_chars: - tag_str += "_" - elif char not in remove_chars: - tag_str += char - # replace double underscore by single one - tag_str = "_".join(tag_str.split("__")) - return tag_str - - -@pytest.mark.create_ref -@pytest.mark.parametrize("test_tag", list(param_file_test_dict.keys())) -def test_param_file_tests( - dut_encoder_frontend: EncoderFrontend, - dut_decoder_frontend: DecoderFrontend, - ref_encoder_path, - ref_decoder_path, - reference_path, - dut_base_path, - test_vector_path, - update_ref, - rootdir, - keep_files, - test_tag, -): - enc_opts, dec_opts, sim_opts = param_file_test_dict[test_tag] - - tag_str = convert_test_string_to_tag(test_tag) - - # evaluate encoder options - enc_split = enc_opts.split() - assert len(enc_split) >= 4 - - # replace "testv/" by test vector path - enc_split = [ - x.replace("testv", f"{test_vector_path}", 1) if x.startswith("testv/") else x - for x in enc_split - ] - - bitstream_file = enc_split.pop() - testv_file = enc_split.pop() - sampling_rate = int(enc_split.pop()) - bitrate = enc_split.pop() - - # bitrate can be a filename: remove leading "../" - if bitrate.startswith("../"): - bitrate = bitrate[3:] - - testv_base = testv_file.split("/")[-1] - if testv_base.endswith(".pcm"): - testv_base = testv_base[:-4] - - assert bitstream_file == "bit" - # in the parameter file, only "bit" is used as bitstream file name - # -> construct bitstream filename - bitstream_file = f"{testv_base}_{tag_str}.192" - - encode( - dut_encoder_frontend, - ref_encoder_path, - reference_path, - dut_base_path, - bitrate, - sampling_rate, - testv_file, - bitstream_file, - enc_split, - update_ref, - ) - - # check for networkSimulator_g192 command line - if sim_opts != "": - sim_split = sim_opts.split() - assert len(sim_split) == 6, "networkSimulator_g192 binary expects 6 parameters" - # [sim_profile, sim_input, sim_output, sim_trace, sim_nFPP, sim_offset] = sim_split - if sim_split[0].startswith(("../")): - # remove leading "../" - sim_split[0] = sim_split[0][3:] - assert sim_split[1] == "bit" - # in the parameter file, only "bit" is used as bitstream file name - # -> re-use bitstream filename from encoder call - sim_split[1] = bitstream_file - assert sim_split[2] == "netsimoutput" - # in the parameter file, only "netsimoutput" is used as netsim output file name - # -> construct netsim output file name - netsim_outfile = f"{testv_base}_{tag_str}.netsimout" - sim_split[2] = netsim_outfile - assert sim_split[3] == "tracefile_sim" - # in the parameter file, only "tracefile_sim" is used as trace output file name - # -> construct trace output file name - netsim_trace_outfile = f"{testv_base}_{tag_str}.netsimtrace" - sim_split[3] = netsim_trace_outfile - simulate( - reference_path, - dut_base_path, - sim_split, - update_ref, - rootdir, - ) - - # evaluate decoder options - dec_split = dec_opts.split() - assert len(dec_split) >= 3 - - # replace "testv/" by test vector path - dec_split = [ - x.replace("testv", f"{test_vector_path}", 1) if x.startswith("testv/") else x - for x in dec_split - ] - # remove leading "../" - dec_split = [x[3:] if x.startswith("../") else x for x in dec_split] - - output_file = dec_split.pop() - bitstream_file_dec = dec_split.pop() - sampling_rate = int(dec_split.pop()) - if len(dec_split) > 0: - output_config = dec_split.pop() - if output_config.upper() not in VALID_DEC_OUTPUT_CONF: - if not output_config.endswith(".txt"): - # must be EVS tests with additional parameters - put param back - dec_split.append(output_config) - output_config = "" - else: - output_config = "" - - output_config_name = output_config - if "/" in output_config: - # the output config is a file - output_config_name = os.path.splitext(os.path.basename(output_config))[0] - - tracefile_dec = "" - if sim_opts != "": - assert bitstream_file_dec == "netsimoutput" - # in the parameter file, only "netsimoutput" is used as bitstream file name - # -> re-use netsim_outfile - bitstream_file = netsim_outfile - tracefile_dec = f"{testv_base}_{tag_str}.dectrace" - else: - assert bitstream_file_dec == "bit" - # in the parameter file, only "bit" is used as bitstream file name - # -> re-use bitstream filename from encoder call - - # the output file is not the real output filename - # -> construct output filename - if output_config != "": - output_file = f"{testv_base}_{tag_str}.dec.{output_config_name}.pcm" - else: - # EVS decoder command lines do not have an output_config: use "MONO" in the output filename - output_file = f"{testv_base}_{tag_str}.dec.MONO.pcm" - - decode( - dut_decoder_frontend, - ref_decoder_path, - reference_path, - dut_base_path, - output_config, - sampling_rate, - bitstream_file, - output_file, - dec_split, - update_ref, - tracefile_dec, - ) - - # compare - if update_ref in [0, 2]: - compare( - f"{dut_base_path}/param_file/dec/{output_file}", - f"{reference_path}/param_file/dec/{output_file}", - ) - - # remove DUT output files when test result is OK (to save disk space) - if not keep_files: - os.remove(f"{dut_base_path}/param_file/enc/{bitstream_file}") - os.remove(f"{dut_base_path}/param_file/dec/{output_file}") - if sim_opts != "": - os.remove(f"{dut_base_path}/param_file/enc/{testv_base}_{tag_str}.192") - os.remove(f"{dut_base_path}/param_file/enc/{netsim_trace_outfile}") - os.remove(f"{dut_base_path}/param_file/dec/{tracefile_dec}") - - -def encode( - encoder_frontend, - ref_encoder_path, - reference_path, - dut_base_path, - bitrate, - sampling_rate, - testv_file, - bitstream_file, - enc_opts_list, - update_ref, -): - """ - Call REF and/or DUT encoder. - """ - # directories - dut_out_dir = f"{dut_base_path}/param_file/enc" - ref_out_dir = f"{reference_path}/param_file/enc" - - ref_out_file = f"{ref_out_dir}/{bitstream_file}" - dut_out_file = f"{dut_out_dir}/{bitstream_file}" - - if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): - check_and_makedir(ref_out_dir) - # call REF encoder - assert ref_encoder_path - ref_encoder = EncoderFrontend(ref_encoder_path, "REF") - ref_encoder.run( - bitrate, - sampling_rate, - testv_file, - ref_out_file, - add_option_list=enc_opts_list, - ) - - if update_ref in [0, 2]: - check_and_makedir(dut_out_dir) - # call DUT encoder - encoder_frontend.run( - bitrate, - sampling_rate, - testv_file, - dut_out_file, - add_option_list=enc_opts_list, - ) - - -def simulate( - reference_path, - dut_base_path, - sim_opts_list, - update_ref, - rootdir, -): - """ - Call network simulator on REF and/or DUT encoder output. - """ - # directories - dut_out_dir = f"{dut_base_path}/param_file/enc" - ref_out_dir = f"{reference_path}/param_file/enc" - - netsim_infile = sim_opts_list[1] - netsim_outfile = sim_opts_list[2] - netsim_tracefile = sim_opts_list[3] - ref_out_file = f"{ref_out_dir}/{netsim_outfile}" - - if platform.system() == "Windows": - netsim = [os.path.join(rootdir, "scripts", "tools", "Win32", "networkSimulator_g192.exe")] - elif platform.system() == "Linux": - # there is no Linux binary available -> use the Win32 binary via wine - netsim = [ - "wine", - os.path.join(rootdir, "scripts", "tools", "Win32", "networkSimulator_g192.exe"), - ] - elif platform.system() == "Darwin": - netsim = [os.path.join(rootdir, "scripts", "tools", "Darwin", "networkSimulator_g192")] - - if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): - # call network simulator on REF encoder output - cmd_opts = sim_opts_list - cmd_opts[1] = f"{ref_out_dir}/{netsim_infile}" - cmd_opts[2] = f"{ref_out_dir}/{netsim_outfile}" # ref_out_file - cmd_opts[3] = f"{ref_out_dir}/{netsim_tracefile}" - run(netsim + cmd_opts, check=False) - - if update_ref in [0, 2]: - # call network simulator on DUT encoder output - cmd_opts = sim_opts_list - cmd_opts[1] = f"{dut_out_dir}/{netsim_infile}" - cmd_opts[2] = f"{dut_out_dir}/{netsim_outfile}" # dut_out_file - cmd_opts[3] = f"{dut_out_dir}/{netsim_tracefile}" - run(netsim + cmd_opts, check=False) - - -def decode( - decoder_frontend, - ref_decoder_path, - reference_path, - dut_base_path, - output_config, - sampling_rate, - bitstream_file, - output_file, - dec_opts_list, - update_ref, - tracefile_dec, -): - """ - Call REF and/or DUT decoder. - """ - # directories - dut_out_dir = f"{dut_base_path}/param_file/dec" - ref_out_dir = f"{reference_path}/param_file/dec" - - dut_in_file = f"{dut_base_path}/param_file/enc/{bitstream_file}" - ref_in_file = f"{reference_path}/param_file/enc/{bitstream_file}" - dut_out_file = f"{dut_out_dir}/{output_file}" - ref_out_file = f"{ref_out_dir}/{output_file}" - - if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): - check_and_makedir(ref_out_dir) - add_option_list = dec_opts_list - if tracefile_dec != "": - add_option_list = [ - x if x != "tracefile_dec" else f"{ref_out_dir}/{tracefile_dec}" - for x in dec_opts_list - ] - # call REF decoder - assert ref_decoder_path - ref_decoder = DecoderFrontend(ref_decoder_path, "REF") - ref_decoder.run( - output_config, - sampling_rate, - ref_in_file, - ref_out_file, - add_option_list=add_option_list, - ) - - if update_ref in [0, 2]: - check_and_makedir(dut_out_dir) - add_option_list = dec_opts_list - if tracefile_dec != "": - add_option_list = [ - x if x != "tracefile_dec" else f"{dut_out_dir}/{tracefile_dec}" - for x in dec_opts_list - ] - # call DUT decoder - decoder_frontend.run( - output_config, - sampling_rate, - dut_in_file, - dut_out_file, - add_option_list=add_option_list, - ) - - -def compare( - pcm_file_1, - pcm_file_2, -): - """ - Compare two PCM files. - Currently, both PCM files are treated like mono files. - This is just fine when checking for bit-exactness. - More advanced comparisons are possible and might come with a future update. - """ - sample_size = "2" # 16-bit samples - tolerance = "0" # zero tolerance for BE testing - cmp_result, reason = cmp_custom(pcm_file_1, pcm_file_2, sample_size, tolerance) - assert cmp_result == 0, reason diff --git a/tests/test_sba_bs_dec_plc.py b/tests/test_sba_bs_dec_plc.py deleted file mode 100644 index 58be07ec33..0000000000 --- a/tests/test_sba_bs_dec_plc.py +++ /dev/null @@ -1,189 +0,0 @@ -__copyright__ = \ -""" -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. -""" - -__doc__ = \ -""" -Execute SBA decoder tests using different PLC patterns. -""" - -import os -import errno -import pytest - -from cmp_custom import cmp_custom -from conftest import DecoderFrontend - -#params -tag_list = ['stvFOA'] -plc_patterns = ['PLperc12mblen5', 'PLperc40mblen50', 'PLperc42mblen2'] -dtx_set = ['0', '1'] -ivas_br_list = ['32000', '64000', '96000', '256000'] -sampling_rate_list = ['48', '32', '16'] -agc_list = [0, 1] - -AbsTol = '3' - - -def check_and_makedir(dir_path): - if not os.path.exists(dir_path): - try: - os.makedirs(dir_path) - except OSError as e: - if e.errno != errno.EEXIST: - raise # raises the error again - - -# assumption: -# - the needed reference bitstreams are created by test_sba_enc_system -# -> reference bitstreams are not any longer created as part of this test -# -> the parameters of this test (except additional parameter plc_pattern) need to be a subset of the parameters in test_sba_enc_system -# -> the reference generation for this test (reference decoder output) needs to be done after completion of test_sba_enc_system -# -> therefore the marker create_ref_part2 -@pytest.mark.create_ref_part2 -@pytest.mark.parametrize("ivas_br", ivas_br_list) -@pytest.mark.parametrize("dtx", dtx_set) -@pytest.mark.parametrize("tag", tag_list) -@pytest.mark.parametrize("plc_pattern", plc_patterns) -@pytest.mark.parametrize("fs", sampling_rate_list) -@pytest.mark.parametrize("agc", agc_list) -def test_sba_plc_system( - dut_decoder_frontend: DecoderFrontend, - test_vector_path, - reference_path, - dut_base_path, - ref_decoder_path, - update_ref, - keep_files, - ivas_br, - dtx, - tag, - plc_pattern, - fs, - agc -): - tag = tag + fs + 'c' - - #dec - sba_dec_plc( - dut_decoder_frontend, - test_vector_path, - reference_path, - dut_base_path, - ref_decoder_path, - tag, - fs, - ivas_br, - dtx, - plc_pattern, - update_ref, - agc, - keep_files, - ) - - -######################################################### -############ test function ############################## -def sba_dec_plc( - decoder_frontend, - test_vector_path, - reference_path, - dut_base_path, - ref_decoder_path, - tag, - sampling_rate, - ivas_br, - dtx, - plc_pattern, - update_ref, - agc, - keep_files, -): - - ######### run cmd ##################################### - - tag_out = f"{tag}_ivasbr{ivas_br[:-3]}k_DTX{dtx}" - if agc == 1: - tag_out += '_AGC1' - plc_tag_out = f"{tag_out}_{plc_pattern}" - - dut_out_dir = f"{dut_base_path}/sba_bs/raw" - ref_out_dir = f"{reference_path}/sba_bs/raw" - - check_and_makedir(dut_out_dir) - check_and_makedir(ref_out_dir) - - plc_file = f"{test_vector_path}/{plc_pattern}.g192" - ref_in_pkt = f"{reference_path}/sba_bs/pkt/{tag_out}.pkt" - ref_in_pkt_dutenc = f"{reference_path}/sba_bs/pkt/{tag_out}_dutenc.pkt" - - dut_out_raw = f"{dut_out_dir}/{plc_tag_out}.raw" - ref_out_raw = f"{ref_out_dir}/{plc_tag_out}.raw" - - if ref_decoder_path: - ref_decoder = DecoderFrontend(ref_decoder_path, "REF") - - # call REF decoder - ref_decoder.run( - "FOA", - sampling_rate, - ref_in_pkt, - ref_out_raw, - plc_file=plc_file, - ) - - if update_ref == 0: - # call DUT decoder - decoder_frontend.run( - "FOA", - sampling_rate, - ref_in_pkt_dutenc, - dut_out_raw, - plc_file=plc_file, - ) - - ######### compare cmd ##################################### - - end_skip_samples = '0' - - cmp_result, reason = cmp_custom( - dut_out_raw, - ref_out_raw, - "2", - AbsTol, - end_skip_samples - ) - - # report compare result - assert cmp_result == 0, reason - - # remove DUT output files when test result is OK (to save disk space) - if not keep_files: - os.remove(dut_out_raw) diff --git a/tests/testconfig.py b/tests/testconfig.py deleted file mode 100644 index f4827a004f..0000000000 --- a/tests/testconfig.py +++ /dev/null @@ -1,37 +0,0 @@ -__copyright__ = \ -""" -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. -""" - -__doc__ = \ -""" -To configure test modules. -""" - -PARAM_FILE = "scripts/config/self_test.prm" -- GitLab From 157959e89cd04594ed408c1fb737cf6324de94c9 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 4 Oct 2022 19:00:30 +0200 Subject: [PATCH 170/479] manually fix merge, pipeline failures can be ignored until v2 is merged in --- apps/decoder.c | 9 +- apps/encoder.c | 2 +- ci/check_for_warnings.py | 2 +- ci/disable_ram_counting.py | 0 ci/run_evs_be_test.py | 76 +++ ci/run_scheduled_sanitizer_test.py | 130 +++++ lib_com/bitstream.c | 55 +- lib_com/cnst.h | 3 +- lib_com/ivas_cnst.h | 42 +- lib_com/ivas_dirac_com.c | 48 +- lib_com/ivas_fb_mixer.c | 4 +- lib_com/ivas_prot.h | 180 +++--- lib_com/ivas_rom_com.c | 34 +- lib_com/ivas_sba_config.c | 39 +- lib_com/ivas_sns_com.c | 4 +- lib_com/ivas_spar_com.c | 43 +- lib_com/ivas_spar_com_quant_util.c | 78 +-- lib_com/ivas_stat_com.h | 4 +- lib_com/ivas_stereo_dft_com.c | 4 + lib_com/ivas_stereo_mdct_stereo_com.c | 2 +- lib_com/ivas_stereo_psychlpc_com.c | 5 +- lib_com/ivas_tools.c | 4 + lib_com/options.h | 23 +- lib_com/prot.h | 51 +- lib_dec/acelp_core_dec.c | 12 +- lib_dec/acelp_core_switch_dec.c | 2 +- lib_dec/amr_wb_dec.c | 2 +- lib_dec/core_dec_init.c | 7 +- lib_dec/core_dec_switch.c | 6 +- lib_dec/core_switching_dec.c | 4 + lib_dec/dec_LPD.c | 4 +- lib_dec/dec_acelp_tcx_main.c | 2 +- lib_dec/dec_prm.c | 6 +- lib_dec/dec_tcx.c | 69 ++- lib_dec/er_dec_tcx.c | 73 +-- lib_dec/evs_dec.c | 2 +- lib_dec/fd_cng_dec.c | 94 ++-- lib_dec/igf_dec.c | 54 ++ lib_dec/init_dec.c | 6 +- lib_dec/ivas_core_dec.c | 21 +- lib_dec/ivas_cpe_dec.c | 50 +- lib_dec/ivas_dec.c | 17 +- lib_dec/ivas_dirac_dec.c | 87 ++- lib_dec/ivas_init_dec.c | 216 +++----- lib_dec/ivas_ism_metadata_dec.c | 8 + lib_dec/ivas_ism_param_dec.c | 8 + lib_dec/ivas_masa_dec.c | 32 ++ lib_dec/ivas_mc_param_dec.c | 2 +- lib_dec/ivas_mct_dec_mct.c | 4 + lib_dec/ivas_mdct_core_dec.c | 66 +-- lib_dec/ivas_out_setup_conversion.c | 4 - lib_dec/ivas_qmetadata_dec.c | 35 +- lib_dec/ivas_sba_dec.c | 93 ++-- lib_dec/ivas_sce_dec.c | 14 +- lib_dec/ivas_spar_decoder.c | 48 +- lib_dec/ivas_spar_md_dec.c | 722 +++++++++++-------------- lib_dec/ivas_stat_dec.h | 42 +- lib_dec/ivas_stereo_cng_dec.c | 20 + lib_dec/ivas_stereo_dft_dec.c | 40 ++ lib_dec/ivas_stereo_mdct_core_dec.c | 41 +- lib_dec/ivas_stereo_mdct_stereo_dec.c | 22 +- lib_dec/ivas_stereo_switching_dec.c | 32 +- lib_dec/ivas_tcx_core_dec.c | 12 +- lib_dec/lib_dec.c | 116 ++-- lib_dec/stat_dec.h | 5 +- lib_dec/swb_tbe_dec.c | 11 +- lib_dec/tonalMDCTconcealment.c | 123 ++++- lib_enc/bw_detect.c | 1 - lib_enc/enc_prm.c | 6 +- lib_enc/fd_cng_enc.c | 36 +- lib_enc/igf_enc.c | 6 +- lib_enc/ivas_agc_enc.c | 10 +- lib_enc/ivas_cpe_enc.c | 27 +- lib_enc/ivas_dirac_enc.c | 34 +- lib_enc/ivas_init_enc.c | 108 ++-- lib_enc/ivas_ism_enc.c | 4 + lib_enc/ivas_masa_enc.c | 4 +- lib_enc/ivas_mcmasa_enc.c | 4 +- lib_enc/ivas_mct_enc.c | 42 +- lib_enc/ivas_mct_enc_mct.c | 9 + lib_enc/ivas_mdct_core_enc.c | 6 +- lib_enc/ivas_qmetadata_enc.c | 59 +- lib_enc/ivas_rom_enc.c | 154 ------ lib_enc/ivas_rom_enc.h | 5 - lib_enc/ivas_sba_enc.c | 43 +- lib_enc/ivas_sce_enc.c | 16 +- lib_enc/ivas_sns_enc.c | 2 +- lib_enc/ivas_spar_encoder.c | 67 +-- lib_enc/ivas_spar_md_enc.c | 544 +++++++------------ lib_enc/ivas_stat_enc.h | 8 +- lib_enc/ivas_stereo_cng_enc.c | 9 + lib_enc/ivas_stereo_dft_enc.c | 16 +- lib_enc/ivas_stereo_dft_enc_itd.c | 15 - lib_enc/ivas_stereo_dmx_evs.c | 65 --- lib_enc/ivas_stereo_mdct_core_enc.c | 9 + lib_enc/ivas_stereo_switching_enc.c | 15 +- lib_enc/ivas_tcx_core_enc.c | 2 +- lib_enc/lib_enc.c | 253 +++++---- lib_enc/tcx_utils_enc.c | 4 + lib_rend/ivas_crend.c | 14 + lib_rend/ivas_hrtf.c | 4 +- lib_rend/ivas_objectRenderer.c | 236 +++++++- lib_rend/ivas_objectRenderer_hrFilt.c | 44 +- lib_rend/ivas_objectRenderer_mix.c | 9 +- lib_rend/ivas_objectRenderer_sfx.c | 47 +- lib_rend/ivas_objectRenderer_sources.c | 12 +- lib_rend/ivas_output_init.c | 38 +- lib_rend/ivas_reverb.c | 7 + lib_rend/ivas_sba_rendering.c | 46 +- lib_util/hrtf_file_reader.c | 3 +- 110 files changed, 2933 insertions(+), 2186 deletions(-) mode change 100644 => 100755 ci/disable_ram_counting.py create mode 100755 ci/run_evs_be_test.py create mode 100755 ci/run_scheduled_sanitizer_test.py diff --git a/apps/decoder.c b/apps/decoder.c index 953df8d6b8..968dc79ec2 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -158,6 +158,7 @@ static void print_mem_dec( size_t SRAM_size ) fprintf( stdout, "PROM size (common): %d words (or instructions)\n", PROM_Size_lib_com ); fprintf( stdout, "Stack size (decoder): %ld words in %s() in frame #%d\n", ( ( ptr_base_stack - ptr_max_stack ) * sizeof( int16_t ) ) / sizeof( float ), location_max_stack, wc_frame ); fprintf( stdout, "Table ROM size (decoder): %ld words\n", ( Const_Data_Size_rom_dec() + Const_Data_Size_ivas_rom_dec() ) / sizeof( float ) ); + fprintf( stdout, "Table ROM size (binaural renderer): %ld words\n", ( Const_Data_Size_ivas_rom_binauralRen() + Const_Data_Size_ivas_rom_TdBinauralR() + Const_Data_Size_ivas_rom_binaural_cr() ) / sizeof( float ) ); fprintf( stdout, "Table ROM size (common): %ld words\n", ( Const_Data_Size_rom_com() + Const_Data_Size_ivas_rom_com() ) / sizeof( float ) ); #ifdef RAM_COUNTING_TOOL fprintf( stdout, "Static RAM size (decoder): %ld words\n\n", SRAM_size ); @@ -426,25 +427,25 @@ int main( /* sanity check */ if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM ) { - fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" ); + fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n\n" ); goto cleanup; } if ( ( error = IVAS_DEC_GetRenderConfig( hIvasDec, &renderConfig ) ) != IVAS_ERR_OK ) { - fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); + fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK ) { - fprintf( stderr, "Failed to read renderer configuration from file %s\n", arg.renderConfigFilename ); + fprintf( stderr, "Failed to read renderer configuration from file %s\n\n", arg.renderConfigFilename ); goto cleanup; } if ( ( error = IVAS_DEC_FeedRenderConfig( hIvasDec, renderConfig ) ) != IVAS_ERR_OK ) { - fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed: %s\n", IVAS_DEC_GetErrorMessage( error ) ); + fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } } diff --git a/apps/encoder.c b/apps/encoder.c index 47a6d42e30..b1abc36d2f 100755 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -1618,7 +1618,7 @@ static void usage_enc( void ) fprintf( stdout, " where 0 = adaptive, 3-100 = fixed in number of frames,\n" ); fprintf( stdout, " default is deactivated\n" ); fprintf( stdout, "-dtx : Activate DTX mode with a SID update rate of 8 frames\n" ); - fprintf( stdout, " Note: DTX is currently supported in EVS, DFT/TD stereo, 1 ISm, \n" ); + fprintf( stdout, " Note: DTX is currently supported in EVS, stereo, 1 ISm, \n" ); fprintf( stdout, " SBA (up to 128kbps) and MASA (up to 128kbps)\n" ); fprintf( stdout, "-rf p o : Activate channel-aware mode for WB and SWB signal at 13.2kbps, \n" ); fprintf( stdout, " where FEC indicator, p: LO or HI, and FEC offset, o: 2, 3, 5, or 7 in number of frames.\n" ); diff --git a/ci/check_for_warnings.py b/ci/check_for_warnings.py index c9240e040a..cc658b3d40 100755 --- a/ci/check_for_warnings.py +++ b/ci/check_for_warnings.py @@ -3,7 +3,7 @@ import argparse import sys -SEARCH_FOR = "warning:" +SEARCH_FOR = "warning" RETURN_FOUND = 123 diff --git a/ci/disable_ram_counting.py b/ci/disable_ram_counting.py old mode 100644 new mode 100755 diff --git a/ci/run_evs_be_test.py b/ci/run_evs_be_test.py new file mode 100755 index 0000000000..9fa64877f2 --- /dev/null +++ b/ci/run_evs_be_test.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +import subprocess +import pathlib +import sys +import concurrent.futures +from threading import Lock + + +README_FILES_PARALLEL = [ + "Readme_AMRWB_IO_enc.txt", + "Readme_AMRWB_IO_dec.txt", + "Readme_EVS_enc.txt", + "Readme_EVS_dec.txt", +] +README_FILES_JBM = ["Readme_JBM_dec.txt"] +README_FILES = README_FILES_PARALLEL + README_FILES_JBM +BINARY_PATHS = ["./bin/EVS_cod", "./bin/EVS_dec"] +FOLDER_PATHS = ["testv"] +BIN_PATHS = BINARY_PATHS * 2 + +def main(): + + if not environment_is_correct(): + return 1 + + result_dict = dict() + # run first part in parallel + with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor: + executor.map( + run_file, README_FILES_PARALLEL, BIN_PATHS, [result_dict] * len(README_FILES_PARALLEL) + ) + + # JBM test can not run concurrently with the others + run_file(README_FILES_JBM[0], BINARY_PATHS[1], result_dict) + + return analyze_results(result_dict) + + +def analyze_results(result_dict): + ret = 0 + + for filename, ret_code in result_dict.items(): + if ret_code != 0: + print(f"========= Test for {filename} failed! See log below: ==========") + with open(filename.replace("Readme", "Log")) as f: + print(f.read()) + ret = 1 + + return ret + + +def run_file(filename: str, bin_path: str, result_dict: dict): + ret_code = subprocess.call(["bash", filename, bin_path]) + with Lock(): + result_dict[filename] = ret_code + + +def environment_is_correct(): + """ + Check that the folder with the test resources is set up correctly: + - all Readme files there + - EVS binaries available in bin/ + - testv and switchPaths folder exist - Content is not checked, though + """ + ret = True + + for path in README_FILES + BINARY_PATHS + FOLDER_PATHS: + if not pathlib.Path(path).exists(): + print(f"Environment setup is incorrect - {path} not found.") + ret = False + + return ret + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py new file mode 100755 index 0000000000..1ffaaf55a8 --- /dev/null +++ b/ci/run_scheduled_sanitizer_test.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python3 + +import argparse +import sys +import subprocess +import pathlib + + +DURATION = "120" +CFG = "ci_linux.json" +SUPPORTED_TESTS = ["CLANG1", "CLANG2", "CLANG3", "VALGRIND"] +EP_FILE = "ep_015.g192" +GENPATT_CMD = f"gen-patt -tailstat -fer -g192 -gamma 0 -rate 0.15 -tol 0.001 -reset -n {int(DURATION) * 50} {EP_FILE}" +EIDXOR_CMD = "eid-xor -vbr -fer {bitstream} {ep_file} {out_file}" +MC_MODES = ["5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"] + +SCRIPT_DIR = pathlib.Path("./scripts").resolve() + + +def main(args): + in_format = args.in_format + out_formats = args.out_formats + tests = args.tests + run_fec = not args.skip_fec + + assert all([t in SUPPORTED_TESTS for t in tests]) + + modes = get_modes(in_format) + returncode = run_check(modes, out_formats, tests, run_fec=run_fec) + + sys.exit(returncode) + + +def get_modes(in_format: str) -> list: + + cmd = [ + SCRIPT_DIR.joinpath("runIvasCodec.py"), + "-C", + "MC" if in_format in MC_MODES else in_format, + "-l" + ] + list_process = subprocess.run(cmd, capture_output=True) + + output = list_process.stdout.decode("utf8") + + # correction for multichannel modes to avoid selecting some mono modes... + if in_format in MC_MODES: + in_format = "MC_" + in_format + "_b" + + mode_list = [m for m in output.splitlines() if in_format in m] + if "SBA" in in_format: + # rate switching not implemented yet + mode_list = [m for m in mode_list if not "_rs" in m] + + return mode_list + + +def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True): + + ### always run encoder and decoder with no frameloss + cmd_no_fec = [ + str(SCRIPT_DIR.joinpath("IvasBuildAndRunChecks.py")), + "-U", + DURATION, + "-p", + CFG, + "--checks", + *tests, + "-m", + *modes, + "--oc", + *out_formats, + ] + + print("======== Script command line WITHOUT plc: ========\n{}".format(" ".join(cmd_no_fec))) + + proc = subprocess.Popen(cmd_no_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + for c in iter(lambda: proc.stdout.read(1), b""): + sys.stdout.buffer.write(c) + proc.wait() + + if proc.returncode not in [0, 101]: + raise IvasBuildAndRunFailed("Failed at first run (no PLC)") + + returncode_no_fec = proc.returncode + + if not run_fec: + return returncode_no_fec + + ### second run: decoder only with disturbed bitstream + + # generate error pattern + subprocess.call(GENPATT_CMD.split()) + + # cleanup to avoid script errors + # we want "logs" and "dec" subfolders to be empty -> delete and recreate them + cleanup_folders = ["logs", "dec"] + for t in tests: + for fol in cleanup_folders: + for fi in pathlib.Path(t).joinpath(fol).iterdir(): + fi.unlink() + + cmd_fec = cmd_no_fec + ["--decoder_only", "-f", EP_FILE] + print("======== Script command line WITH plc: ========\n{}".format(" ".join(cmd_no_fec))) + + proc = subprocess.Popen(cmd_fec, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + for c in iter(lambda: proc.stdout.read(1), b""): + sys.stdout.buffer.write(c) + proc.wait() + + returncode_fec = proc.returncode + + if returncode_fec not in [0, 101]: + raise IvasBuildAndRunFailed("failed at second run (PLC)") + + return 101 if 101 in [returncode_no_fec, returncode_fec] else 0 + + +class IvasBuildAndRunFailed(Exception): + pass + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("in_format", type=str) + parser.add_argument("out_formats", type=str, nargs="+") + parser.add_argument("--tests", type=str, nargs="+", default=["CLANG1", "CLANG2"]) + parser.add_argument("--skip_fec", action="store_true") + + sys.exit(main(parser.parse_args())) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index 4e81fc9166..9ee771fb6b 100755 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -1820,7 +1820,11 @@ ivas_error preview_indices( break; } } +#ifdef ALIGN_SID_SIZE + else if ( total_brate == IVAS_SID_5k2 ) +#else else if ( total_brate == IVAS_SID_4k4 ) +#endif { /* read SID format */ st_ivas->sid_format = 0; @@ -1884,6 +1888,7 @@ ivas_error preview_indices( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format ); } } +#ifndef ALIGN_SID_SIZE else if ( total_brate == IVAS_SID_5k ) { /* SBA SID frame */ @@ -1892,6 +1897,7 @@ ivas_error preview_indices( st_ivas->sba_mode = SBA_MODE_SPAR; st_ivas->element_mode_init = IVAS_SCE; } +#endif /* only read element mode from active frames */ if ( is_DTXrate( total_brate ) == 0 ) @@ -1975,28 +1981,17 @@ ivas_error preview_indices( } else if ( st_ivas->ivas_format == SBA_FORMAT ) { - /* Read SBA planar flag and SBA order */ st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA] == 1 ); -#ifndef SBA_ORDER_BITSTREAM st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 ); st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 ); + + st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); + +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ) ); #else - st_ivas->hDecoderConfig->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 ); - st_ivas->hDecoderConfig->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 ); - st_ivas->sba_analysis_order = st_ivas->hDecoderConfig->sba_order; -#endif -#ifdef SBA_ORDER_BITSTREAM - /*Hard coding the the sba_oder as 1 as higher not supported below 256k bitrate*/ - if ( total_brate < IVAS_256k ) - { - st_ivas->sba_analysis_order = 1; - } -#endif -#ifdef SBA_ORDER_BITSTREAM ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); -#else - ivas_sba_config( total_brate, st_ivas->sba_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); #endif } } @@ -2077,7 +2072,10 @@ ivas_error read_indices( } else if ( k == SIZE_IVAS_BRATE_TBL ) { - /*temp change for spar DTX*/ +#ifdef ALIGN_SID_SIZE + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); +#else + /*temp change for SPAR DTX*/ if ( total_brate == IVAS_SID_5k ) { st_ivas->element_mode_init = -1; @@ -2086,6 +2084,7 @@ ivas_error read_indices( { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); } +#endif } else { @@ -2130,7 +2129,7 @@ ivas_error read_indices( } else { - sid_upd_bad = 1; /* this frame type may happen in ETSI/3GPP CS cases , a corrupt sid frames */ + sid_upd_bad = 1; /* this frame type may happen in ETSI/3GPP CS cases, a corrupt SID frames */ } } @@ -2215,7 +2214,7 @@ ivas_error read_indices( /* total_brate= 0 */ } - /* handle bad/lost speech frame(and CS bad sid frame) in the decoders CNG synthesis settings pair (total_brate, bfi) */ + /* handle bad/lost speech frame(and CS bad SID frame) in the decoders CNG synthesis settings pair (total_brate, bfi) */ if ( ( ( *CNG != 0 ) && ( ( speech_bad != 0 ) || ( speech_lost != 0 ) ) ) || /* SP_BAD or SPEECH_LOST) --> stay in CNG */ ( sid_upd_bad != 0 ) ) /* SID_UPD_BAD --> start CNG */ { @@ -2334,7 +2333,7 @@ static Word32 read_indices_mime_handle_dtx( { if ( st->bfi ) { - sid_upd_bad = 1; /* corrupt sid_first, signaled as bad sid */ + sid_upd_bad = 1; /* corrupt sid_first, signaled as bad SID */ } else { @@ -2392,7 +2391,7 @@ static Word32 read_indices_mime_handle_dtx( } /* in CNG */ - /* handle bad speech frame(and bad sid frame) in the decoders CNG synthesis settings pair (total_brate, bfi) */ + /* handle bad speech frame(and bad SID frame) in the decoders CNG synthesis settings pair (total_brate, bfi) */ if ( ( *CNG != 0 && ( speech_bad || speech_lost || no_data ) ) || /* SP_BAD or SPEECH_LOST) --> stay in CNG */ sid_upd_bad ) /* SID_UPD_BAD --> start/stay CNG */ { @@ -2979,4 +2978,18 @@ void evs_dec_previewFrame( } +#ifdef ALIGN_SID_SIZE +void dtx_read_padding_bits( + DEC_CORE_HANDLE st, + int16_t num_bits ) +{ + /* TODO: temporary hack, need to decide what to do with core-coder bitrate */ + int32_t tmp; + tmp = st->total_brate; + st->total_brate = st->total_brate + num_bits * FRAMES_PER_SEC; + get_next_indice( st, num_bits ); + st->total_brate = tmp; +} +#endif + #undef WMC_TOOL_MAN diff --git a/lib_com/cnst.h b/lib_com/cnst.h index 8e4c7c9908..40a4710579 100644 --- a/lib_com/cnst.h +++ b/lib_com/cnst.h @@ -67,8 +67,7 @@ #define MAX16B_FLT 32767.0f #define MIN16B_FLT ( -32768.0f ) #define PCM16_TO_FLT_FAC 32768.0f - - +#define MDFT_NORM_SCALING ( 1.0f / PCM16_TO_FLT_FAC ) #define MAX_FRAME_COUNTER 200 #define MAX_BITS_PER_FRAME 10240 /* Bits per frame for max. bitrate 512kbps */ diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 223f3fa490..43b60566dc 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -170,7 +170,9 @@ typedef enum #define HEAD_ROTATION_HOA_ORDER 3 /* HOA 3rd order */ #define MAX_CICP_CHANNELS 16 /* max channels for loudspeaker layouts (16 for custom layouts)*/ #define MAX_OUTPUT_CHANNELS 16 /* Maximum number of output channels (HOA 3rd order) */ +#ifndef FIX_CREND_CHANNELS #define IVAS_MAX_NUM_CH 16 /* == MAX_OUTPUT_CHANNELS */ +#endif #define FOA_CHANNELS 4 /* number of FOA channels */ @@ -200,9 +202,12 @@ typedef enum /*----------------------------------------------------------------------------------* * IVAS Bitrates *----------------------------------------------------------------------------------*/ - +#ifdef ALIGN_SID_SIZE +#define IVAS_SID_5k2 5200 /* SID frame bitrate */ +#else #define IVAS_SID_4k4 4400 /* SID frame bitrate */ #define IVAS_SID_5k 5000 /* SBA SID frame bitrate */ +#endif #define IVAS_13k2 13200 #define IVAS_16k4 16400 #define IVAS_24k4 24400 @@ -220,8 +225,13 @@ typedef enum #define IVAS_BRATE_MAX IVAS_512k +#ifdef ALIGN_SID_SIZE +#define SIZE_IVAS_BRATE_TBL 16 +#define IVAS_NUM_ACTIVE_BRATES (SIZE_IVAS_BRATE_TBL - 2) +#else #define SIZE_IVAS_BRATE_TBL 17 #define IVAS_NUM_ACTIVE_BRATES (SIZE_IVAS_BRATE_TBL - 3) +#endif /*----------------------------------------------------------------------------------* * IVAS modes : IVAS SCE, IVAS CPE modes (DFT, TD, MDCT stereo) @@ -802,16 +812,25 @@ enum fea_names #define MAX_MDCT_ITD_BRATE IVAS_64k #define SNS_LOW_BR_MODE -1 -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ -#define MDCT_ST_PLC_FADEOUT_START_FRAME 3 +#define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f +#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS +#define MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME 2 * FRAMES_PER_SEC +#define MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN 20 +#endif typedef enum { EQUAL_CORES, TCX10_IN_0_TCX20_IN_1, TCX20_IN_0_TCX10_IN_1, } TONALMDCTCONC_NOISE_GEN_MODE; + +typedef enum { + ON_FIRST_LOST_FRAME, + ON_FIRST_GOOD_FRAME, +} TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE; #endif @@ -828,6 +847,9 @@ typedef enum { *----------------------------------------------------------------------------------*/ // VE: this should be renamed to e.g. N_SPATIAL_SUBFRAMES #define MAX_PARAM_SPATIAL_SUBFRAMES 4 /* Maximum number of subframes for parameteric spatial coding */ +#ifdef FIX_I106_TDREND_5MS +#define L_SPATIAL_SUBFR_48k (L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES) +#endif /*----------------------------------------------------------------------------------* @@ -836,6 +858,7 @@ typedef enum { #define SBA_PLANAR_BITS 1 #define SBA_ORDER_BITS 2 +#define SBA_MIN_BRATE_HOA IVAS_256k #define SBA_NHARM_HOA3 16 #define SBA_T_DESIGN_11_SIZE 70 @@ -851,8 +874,15 @@ typedef enum * DirAC Constants *----------------------------------------------------------------------------------*/ +#ifdef FIX_DIRAC_CHANNELS +#define DIRAC_MAX_ANA_CHANS FOA_CHANNELS /* Maximum number of channels for DirAC analysis */ +#else #define DIRAC_MAX_ANA_CHANS 4 /* Maximum number of channels for DirAC analysis */ +#endif + +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT #define DIRAC_MAX_TRANS_CHANS 8 /* Maximum number of transport channels for DirAC */ +#endif #define DIRAC_MIN_BITRATE_8_TRANS_CHAN IVAS_384k #define DIRAC_MIN_BITRATE_6_TRANS_CHAN IVAS_256k @@ -1006,9 +1036,9 @@ enum #define IVAS_DECORR_PARM_LOOKAHEAD_TAU 2e-3f #define IVAS_DECORR_PARM_APD_TAU 20e-3f -/* IVAS PCA */ +/* IVAS SBA PCA */ #define IVAS_PCA_NB_SUBR 20 /* 80 -> 0.25 ms, 40 -> 0.5 ms... */ -#define IVAS_PCA_COV_THRES 1e-9f +#define IVAS_PCA_COV_THRES 3e-5f #define IVAS_PCA_QUAT_EPS 1e-7f #define IVAS_PCA_QBITS 19 #define IVAS_PCA_N1 91 @@ -1139,7 +1169,7 @@ enum #define MASA_STEREO_MIN_BITRATE IVAS_24k4 #define MASA_BIT_REDUCT_PARAM 10 - +#define MASA_MAXIMUM_TWO_DIR_BANDS 18 typedef enum { MASA_STEREO_NOT_DEFINED, diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index 849e889739..fe344e6423 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -60,7 +60,11 @@ ivas_error ivas_dirac_config( ) { IVAS_FORMAT ivas_format; +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + int16_t sba_order; +#else int16_t sba_order, sba_planar; +#endif int16_t *nSCE, *nCPE, *element_mode, *nchan_transport; int32_t ivas_total_brate; DIRAC_CONFIG_DATA_HANDLE hConfig; @@ -82,12 +86,10 @@ ivas_error ivas_dirac_config( nCPE = &( (Encoder_Struct *) st_ivas )->nCPE; element_mode = &( (Encoder_Struct *) st_ivas )->hEncoderConfig->element_mode_init; nchan_transport = &( (Encoder_Struct *) st_ivas )->nchan_transport; -#ifndef SBA_ORDER_BITSTREAM - sba_order = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_order; -#else sba_order = ( (Encoder_Struct *) st_ivas )->sba_analysis_order; -#endif +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar; +#endif ivas_total_brate = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->ivas_total_brate; Fs = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->input_Fs; band_grouping = ( (Encoder_Struct *) st_ivas )->hDirAC->band_grouping; @@ -111,12 +113,10 @@ ivas_error ivas_dirac_config( nCPE = &( (Decoder_Struct *) st_ivas )->nCPE; element_mode = &( (Decoder_Struct *) st_ivas )->element_mode_init; nchan_transport = &( (Decoder_Struct *) st_ivas )->nchan_transport; -#ifndef SBA_ORDER_BITSTREAM - sba_order = ( (Decoder_Struct *) st_ivas )->sba_order; -#else sba_order = ( (Decoder_Struct *) st_ivas )->sba_analysis_order; -#endif +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar; +#endif ivas_total_brate = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->ivas_total_brate; Fs = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->output_Fs; band_grouping = ( (Decoder_Struct *) st_ivas )->hDirAC->band_grouping; @@ -150,8 +150,12 @@ ivas_error ivas_dirac_config( if ( ivas_format == SBA_FORMAT ) /* skip for MASA decoder */ { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) +#else if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_planar, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) +#endif { return error; } @@ -315,9 +319,11 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* i/o: element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ - const int16_t sba_planar, /* i : SBA planar flag */ - const SBA_MODE sba_mode, /* i : SBA mode */ - const int16_t nbands /* i : number of frequency bands */ +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT + const int16_t sba_planar, /* i : SBA planar flag */ +#endif + const SBA_MODE sba_mode, /* i : SBA mode */ + const int16_t nbands /* i : number of frequency bands */ ) { int16_t i; @@ -331,7 +337,11 @@ ivas_error ivas_dirac_sba_config( if ( sba_mode == SBA_MODE_SPAR ) { /*map the bitrate for SID frame*/ +#ifdef ALIGN_SID_SIZE + if ( sba_total_brate == IVAS_SID_5k2 ) +#else if ( sba_total_brate == IVAS_SID_5k ) +#endif { if ( *element_mode == IVAS_SCE ) { @@ -428,11 +438,23 @@ ivas_error ivas_dirac_sba_config( return error; } +#ifdef ALIGN_SID_SIZE + if ( sba_total_brate > IVAS_SID_5k2 ) +#else if ( sba_total_brate > IVAS_SID_4k4 ) +#endif { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); +#else *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); +#endif } +#ifdef ALIGN_SID_SIZE + else if ( sba_total_brate == IVAS_SID_5k2 ) +#else else if ( sba_total_brate == IVAS_SID_4k4 ) +#endif { switch ( *element_mode ) { @@ -571,7 +593,7 @@ ivas_error ivas_dirac_sba_config( return error; } - +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*------------------------------------------------------------------------- * ivas_dirac_getNumTransportChannels() * @@ -643,7 +665,7 @@ int16_t ivas_dirac_getNumTransportChannels( return num_channels; } - +#endif /*------------------------------------------------------------------------- * computeDirectionVectors() diff --git a/lib_com/ivas_fb_mixer.c b/lib_com/ivas_fb_mixer.c index 11746c64ef..53ad90d01f 100644 --- a/lib_com/ivas_fb_mixer.c +++ b/lib_com/ivas_fb_mixer.c @@ -1098,8 +1098,8 @@ static ivas_error ivas_filterbank_setup( for ( j = 0; j < IVAS_MAX_NUM_FB_BANDS; j++ ) { - pFb->fb_bin_to_band.p_short_stride_num_bins_per_band[j] = 0; /* aka num_active_bins per spar band */ - pFb->fb_bin_to_band.p_short_stride_start_bin_per_band[j] = 0; /* first considered bin index per spar band */ + pFb->fb_bin_to_band.p_short_stride_num_bins_per_band[j] = 0; /* aka num_active_bins per SPAR band */ + pFb->fb_bin_to_band.p_short_stride_start_bin_per_band[j] = 0; /* first considered bin index per SPAR band */ pFb->fb_bin_to_band.pp_short_stride_bin_to_band[j] = NULL; for ( i = 0; i < CLDFB_NO_CHANNELS_MAX; i++ ) { diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 3003b9f785..b5bcfd5fb1 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -238,6 +238,10 @@ uint32_t ivas_syn_output( int16_t *synth_out /* o : integer 16 bits synthesis signal */ ); +void ivas_initialize_handles_enc( + Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ +); + ivas_error ivas_init_encoder( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ Indice ind_list[][MAX_NUM_INDICES], /* i : indices list */ @@ -794,8 +798,8 @@ void ivas_param_ism_enc( ); void ivas_param_ism_enc_close( - DIRAC_ENC_HANDLE hDirAC /* i/o: encoder DirAC handle */ - ,const int32_t input_Fs /* i : input sampling_rate */ + DIRAC_ENC_HANDLE hDirAC, /* i/o: encoder DirAC handle */ + const int32_t input_Fs /* i : input sampling_rate */ ); void ivas_param_ism_stereo_dmx( @@ -1845,7 +1849,7 @@ void TNSAnalysisStereo( int16_t tnsSize[MCT_MAX_CHANNELS][NB_DIV], /* i : number of tns parameters put into prm */ int16_t tnsBits[MCT_MAX_CHANNELS][NB_DIV], /* i : number of tns bits in the frame */ int16_t param_core[][NB_DIV * NPRM_DIV], /* o : quantized noise filling level */ - const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ + const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ ); void InternalTCXDecoder( @@ -1946,15 +1950,12 @@ void decoder_tcx_invQ( const int16_t **prm_sqQ, int16_t *nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - const int16_t isMCT, -#endif const int16_t frame_cnt /* i : frame counter in the super frame */ ); void decoder_tcx_noisefilling( Decoder_State *st, /* i/o: coder memory state */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float concealment_noise[L_FRAME48k], #endif const float A[], /* i : coefficients NxAz[M+1] */ @@ -1969,7 +1970,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t isMCT, #endif const int16_t frame_cnt /* i : frame counter in the super frame */ @@ -2013,7 +2014,7 @@ void decoder_tcx_imdct( const int16_t left_rect, float x[N_MAX], float xn_buf[], - const uint16_t kernelType, /* i : TCX transform kernel type */ + const uint16_t kernelType, /* i : TCX transform kernel type */ const int16_t fUseTns, /* i : flag that is set if TNS data is present */ float synth[], /* i/o: synth[-M..L_frame] */ float synthFB[], @@ -2054,7 +2055,12 @@ void decoder_tcx_IGF_stereo( const int16_t L_frame, /* i : frame length */ const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + const int16_t bfi, /* i : bad frame indicator */ + const int16_t is_mct /* i : flag to signal MCT or SMDCT */ +#else const int16_t bfi /* i : bad frame indicator */ +#endif ); void ms_processing( @@ -2087,7 +2093,12 @@ void IGFDecApplyStereo( const int16_t igfGridIdx, /* i : in case of CELP->TCX switching, use 1.25 framelength */ const int16_t *coreMsMask, const int16_t restrict_hopsize, +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ + const int16_t bfi_apply_damping /* i : decoder element mode */ +#else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ +#endif ); void IGFEncStereoEncoder( @@ -2155,7 +2166,7 @@ void stereo_mdct_core_dec( void splitAvailableBits( const int16_t total_bits, /* i : total available bits for TCX coding */ const int16_t split_ratio, /* i : split ratio */ - const int16_t isSBAStereoMode, /* i : signal core coding for sba */ + const int16_t isSBAStereoMode, /* i : signal core coding for SBA */ int16_t *bits_ch0, /* o : bits for channel 0 */ int16_t *bits_ch1 /* o : bits for channel 1 */ ); @@ -2173,7 +2184,7 @@ void parse_stereo_from_bitstream( STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct, /* i/o: MDCT stereo decoder structure */ Decoder_State **sts, /* i/o: decoder state structure */ const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ - const int16_t isSBAStereoMode, /* i: flag core coding for sba */ + const int16_t isSBAStereoMode, /* i : flag core coding for SBA */ Decoder_State *st0, /* i/o: decoder state structure for Bstr */ int16_t ms_mask[NB_DIV][MAX_SFB] /* o : bandwise MS mask */ ); @@ -2508,8 +2519,7 @@ ivas_error stereo_memory_enc( const int32_t input_Fs, /* i : input sampling rate */ const int16_t max_bwidth, /* i : maximum audio bandwidth */ float *tdm_last_ratio, /* o : TD stereo last ratio */ - const IVAS_FORMAT ivas_format /* i : IVAS format */ - , + const IVAS_FORMAT ivas_format, /* i : IVAS format */ const int16_t nchan_transport /* i : number transport chans */ ); @@ -2768,8 +2778,12 @@ void reset_metadata_spatial( int32_t *total_brate, /* o : total bitrate */ const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ +#ifndef ALIGN_SID_SIZE const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t element_mode /* i : element mode */ +#else + const SBA_MODE sba_mode /* i : SBA mode */ +#endif ); /*! r: number of bits written */ @@ -3019,8 +3033,10 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ - int16_t *element_mode, /* o : element mode of the core coder */ + int16_t *element_mode /* o : element mode of the core coder */ +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT const SBA_MODE sba_mode /* i : SBA mode */ +#endif ); ivas_error ivas_sba_dec_reconfigure( @@ -3033,15 +3049,23 @@ void ivas_init_dec_get_num_cldfb_instances( int16_t *numCldfbSyntheses /* o : number of CLDFB synthesis instances */ ); +/*! r: Ambisonic (SBA) order */ int16_t ivas_sba_get_order( const int16_t nb_channels, /* i : Number of ambisonic channels */ const int16_t sba_planar /* i : SBA planar flag */ ); +/*! r: Ambisonic (SBA) order used for analysis and coding */ +int16_t ivas_sba_get_analysis_order( + const int32_t ivas_total_brate, /* i : IVAS total bitrate */ + const int16_t sba_order /* i : Ambisonic (SBA) order */ +); + int16_t ivas_sba_get_order_transport( const int16_t nchan_transport /* i : Number of transport channels */ ); +/*!r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ @@ -3161,18 +3185,21 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* o : element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT const int16_t sba_planar, /* i : SBA planar flag */ +#endif const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t nbands /* i : number of frequency bands */ ); +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*! r: number of IVAS transport channels */ int16_t ivas_dirac_getNumTransportChannels( const int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : SBA order */ const int16_t sba_planar /* i : SBA Planar flag */ ); - +#endif ivas_error ivas_dirac_dec_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); @@ -3365,8 +3392,8 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls( float RealBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],/* i : LS signals */ float ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX],/* i : LS signals */ DIRAC_DEC_HANDLE hDirAC, /* i/o: DirAC handle */ - float *reference_power_smooth - , float qualityBasedSmFactor + float *reference_power_smooth, + float qualityBasedSmFactor ); void ivas_dirac_dec_get_response( @@ -3717,13 +3744,13 @@ void ivas_spar_config( void ivas_sba_upmixer_renderer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ float output[][L_FRAME48k], /* i/o: transport/output audio channels */ - const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ const int16_t output_frame /* i : output frame length */ ); void ivas_sba_mix_matrix_determiner( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ - float in_out[][L_FRAME48k], /* i/o: transport/output audio channels */ + SPAR_DEC_HANDLE hSpar, /* i/o: SPAR decoder handle */ + float output[][L_FRAME48k], /* i/o: transport/output audio channels */ + const int16_t bfi, /* i : BFI flag */ const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ const int16_t output_frame /* i : output frame length */ ); @@ -3815,7 +3842,12 @@ int16_t ivas_get_spar_table_idx( int16_t *ind /* o : indice */ ); +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT +/*! r: number of transport channels */ +int16_t ivas_get_sba_num_TCs( +#else int16_t ivas_get_spar_num_TCs( +#endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : IVAS SBA order */ ); @@ -3865,11 +3897,8 @@ void ivas_spar_dec_upmixer( /* MD module */ ivas_error ivas_spar_md_enc_open( ivas_spar_md_enc_state_t **hMdEnc, /* i/o: SPAR MD encoder handle */ - const ENCODER_CONFIG_HANDLE hEncoderConfig /* i : configuration structure */ -#ifdef SBA_ORDER_BITSTREAM - , - int16_t sba_order -#endif + const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ + const int16_t sba_order /* i : Ambisonic (SBA) order */ ); void ivas_spar_md_enc_close( @@ -3881,11 +3910,8 @@ ivas_error ivas_spar_md_enc_process( const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ ivas_spar_md_enc_in_buf_t *pIn_buf, BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ - const int16_t dtx_silence_mode -#ifdef SBA_ORDER_BITSTREAM - , - int16_t sba_order -#endif + const int16_t dtx_silence_mode, + const int16_t sba_order /* i : Ambisonic (SBA) order */ ); void ivas_compute_spar_params( @@ -4242,17 +4268,17 @@ int16_t ivas_map_num_drct_r_to_idx( const int16_t num_quant_points_drct_r ); int16_t ivas_map_num_decd_r_to_idx( const int16_t num_quant_points_decd_r ); /* Quantization utilities */ -void ivas_quantise_real_values( - float **values, - const int16_t q_levels, - const float min_value, - const float max_value, - int16_t **index, - float **quant, - const int16_t dim1, - const int16_t dim2 +void ivas_quantise_real_values( + const float *values, + const int16_t q_levels, + const float min_value, + const float max_value, + int16_t *index, + float *quant, + const int16_t dim ); + void ivas_spar_get_uniform_quant_strat( ivas_spar_md_com_cfg *pSpar_md_com_cfg, const int16_t table_idx @@ -4424,10 +4450,10 @@ void ivas_masa_prerender( void ivas_spar_param_to_masa_param_mapping( Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ - float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i: Input audio in CLDFB domain, real */ - float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i: Input audio in CLDFB domain, imag */ - const int16_t firstSubframe, /* i: First subframe to map */ - const int16_t nSubframes /* i: Number of subframes to map */ + float inRe[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i : Input audio in CLDFB domain, real */ + float inIm[][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], /* i : Input audio in CLDFB domain, imag */ + const int16_t firstSubframe, /* i : First subframe to map */ + const int16_t nSubframes /* i : Number of subframes to map */ ); @@ -4643,9 +4669,9 @@ void vbap_determine_gains( ); void v_sort_ind( - float *x, /* i/o: Vector to be sorted */ - int16_t *idx, /* o : Original index positions */ - const int16_t len /* i : vector length */ + float *x, /* i/o: Vector to be sorted */ + int16_t *idx, /* o : Original index positions */ + const int16_t len /* i : vector length */ ); /*----------------------------------------------------------------------------------* @@ -4680,7 +4706,7 @@ void ivas_lssetupconversion_process_param_mc( Decoder_Struct *st_ivas, /* i/o: LS setup conversion renderer handle */ float Cldfb_RealBuffer_InOut[MAX_CICP_CHANNELS][PARAM_MC_MAX_NSLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /* i/o: LS signals */ float Cldfb_ImagBuffer_InOut[MAX_CICP_CHANNELS][PARAM_MC_MAX_NSLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX], /* i/o: LS signals */ - int16_t channel_active[MAX_CICP_CHANNELS] /* i : bitmap indicating which output channels are active */ + int16_t channel_active[MAX_CICP_CHANNELS] /* i : bitmap indicating which output channels are active */ ); @@ -4886,8 +4912,7 @@ void ivas_HRTF_binary_close( TDREND_HRFILT_FiltSet_t **hHrtfTD /* i/o: TD renderer HRTF handle */ ); -/*! r: TD Renderer result code. */ -ivas_error DefaultBSplineModel( +void DefaultBSplineModel( TDREND_HRFILT_FiltSet_t *HrFiltSet_p, /* o : Loaded HR filter set */ const int32_t output_Fs /* i : Output sampling rate */ ); @@ -4900,7 +4925,7 @@ void ivas_td_binaural_close( BINAURAL_TD_OBJECT_RENDERER_HANDLE *hBinRendererTd /* i/o: TD binaural object renderer handle */ ); -ivas_error ObjRenderIVASFrame( +void ObjRenderIVASFrame( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ const int16_t output_frame /* i : output frame length */ @@ -4941,46 +4966,50 @@ void TDREND_HRFILT_SetFiltSet( #endif ivas_error TDREND_REND_RenderSourceHRFilt( +#ifdef FIX_I106_TDREND_5MS + TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ +#else const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ +#endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif +#ifdef FIX_I106_TDREND_5MS + float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ + const int16_t subframe_length, /* i : Subframe length in use */ +#else float output_buf[][L_FRAME48k], /* o : Output buffer */ const int16_t output_frame, /* i : Output frame length in use */ +#endif const int32_t output_Fs /* i : Output sample rate */ ); /* ----- Object renderer - sources ----- */ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetPos( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const float *Vec_p /* i : Position vector */ ); -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetDir( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const float *Vec_p /* i : Direction vector */ ); -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetDirAtten( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const TDREND_DirAtten_t *DirAtten_p /* i : Directional attenuation specifier */ ); -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetPlayState( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const TDREND_PlayStatus_t PlayStatus /* i : Play state */ ); - void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ TDREND_SRC_REND_t *SrcRend_p, /* i/o: Source object */ @@ -4988,7 +5017,6 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( const int32_t output_Fs /* i : Output sample rate */ ); -/*! r: TD Renderer result code. */ ivas_error TDREND_SRC_Alloc( TDREND_SRC_t **Src_pp /* i/o: Source */ ); @@ -5042,7 +5070,6 @@ int16_t TDREND_SPATIAL_EvalOrthonormOrient( /* ----- Object renderer - mix ----- */ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_AddSrc( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ int16_t *SrcInd, /* o : Source index */ @@ -5050,19 +5077,16 @@ ivas_error TDREND_MIX_AddSrc( const int32_t output_Fs /* i : Output sampling rate */ ); -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SetDistAttenModel( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const TDREND_DistAttenModel_t DistAttenModel /* i : Distance attenuation model */ ); -/*! r: TD Renderer result code. */ -ivas_error TDREND_MIX_LIST_SetPos( +void TDREND_MIX_LIST_SetPos( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const float *Pos_p /* i : Listener's position */ ); -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_LIST_SetOrient( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const float *FrontVec_p, /* i : Listener's orientation front vector */ @@ -5073,7 +5097,6 @@ void TDREND_MIX_Dealloc( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd /* i/o: TD renderer handle */ ); -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_Init( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ TDREND_HRFILT_FiltSet_t **hHrtfTD, /* i/o: HRTF data (initialized in case of NULL) */ @@ -5083,24 +5106,25 @@ ivas_error TDREND_MIX_Init( /* ----- Object renderer - sfx ----- */ -/*! r: TD Renderer result code. */ ivas_error TDREND_SFX_SpatBin_Initialize( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters handle */ const int32_t output_Fs /* i : Output sampling rate */ ); -/*! r: TD Renderer result code. */ -ivas_error TDREND_SFX_SpatBin_SetParams( +void TDREND_SFX_SpatBin_SetParams( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct to be updated */ const SFX_SpatBin_Params_t *NewParam_p, /* i : New parameters struct */ const int32_t output_Fs /* i : Output sample rate */ ); -/*! r: TD Renderer result code. */ -ivas_error TDREND_SFX_SpatBin_Execute_Main( +void TDREND_SFX_SpatBin_Execute_Main( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters handle */ const float *InBuffer_p, /* i : Input buffer */ +#ifdef FIX_I106_TDREND_5MS + const int16_t subframe_length, /* i : subframe length */ +#else const int16_t output_frame, /* i : frame length */ +#endif float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ @@ -5449,7 +5473,7 @@ ivas_error ivas_orient_trk_GetTrackedOrientation( float *roll ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE void TonalMdctConceal_create_concealment_noise( float concealment_noise[L_FRAME48k], CPE_DEC_HANDLE hCPE, @@ -5458,9 +5482,21 @@ void TonalMdctConceal_create_concealment_noise( const int16_t idchan, const int16_t subframe_idx, const int16_t core, - const int16_t crossfade_gain, + const float crossfade_gain, const TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode ); + +void TonalMdctConceal_whiten_noise_shape( + Decoder_State *st, + const int16_t L_frame, + const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE +); + +int16_t get_igf_startline( + Decoder_State *st, + int16_t L_frame, + int16_t L_frameTCX +); #endif float rand_triangular_signed( @@ -5468,4 +5504,10 @@ float rand_triangular_signed( /* clang-format on */ +#ifdef ALIGN_SID_SIZE +void dtx_read_padding_bits( + DEC_CORE_HANDLE st, + int16_t num_bits ); +#endif + #endif /* IVAS_PROT_H */ diff --git a/lib_com/ivas_rom_com.c b/lib_com/ivas_rom_com.c index e2ba9b8233..4a82259296 100644 --- a/lib_com/ivas_rom_com.c +++ b/lib_com/ivas_rom_com.c @@ -49,7 +49,11 @@ const int32_t ivas_brate_tbl[SIZE_IVAS_BRATE_TBL] = { +#ifdef ALIGN_SID_SIZE + FRAME_NO_DATA, IVAS_SID_5k2, +#else FRAME_NO_DATA, IVAS_SID_4k4, IVAS_SID_5k, +#endif IVAS_13k2, IVAS_16k4, IVAS_24k4, IVAS_32k, IVAS_48k, IVAS_64k, IVAS_80k, IVAS_96k, IVAS_128k, IVAS_160k, IVAS_192k, IVAS_256k, IVAS_384k, IVAS_512k @@ -903,11 +907,11 @@ const ivas_spar_br_table_t ivas_spar_br_table_consts[IVAS_SPAR_BR_TABLE_LEN] = { /* When AGC is ON additional (AGC_BITS_PER_CH+1) bits may be taken from each core-coder channel so minimum core-coder bitrate per channel can be min core-coder bitrates as per the table - AGC_BITS_PER_CH */ - { 24400, 0, 1, FB, 24000, 1, WYXZ, 1, 0, - { { 16400, 14850, 24350 } }, + { 24400, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{ { 16400, 14850, 24350 } }, { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, - { 32000, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{{ 24000, 20450, 31950 }},{ { 21, 1, 5, 1 },{ 15, 1, 5, 1 },{ 15, 1, 3, 1 } }, 0, 0, 0 }, + { 32000, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{ { 24000, 20450, 31950 } }, + { { 21, 1, 5, 1 },{ 15, 1, 5, 1 },{ 15, 1, 3, 1 } }, 0, 0, 0 }, { 48000, 0, 1, FB, 24000, 2, WYXZ, 0, 0,{ { 24000, 21000, 31950 },{ 16000, 15000, 20400 } }, { { 15, 7, 5, 1 },{ 15, 7, 3, 1 },{ 7, 7, 3, 1 } }, 1, 0, 0 }, @@ -955,8 +959,6 @@ const ivas_spar_br_table_t ivas_spar_br_table_consts[IVAS_SPAR_BR_TABLE_LEN] = { 512000, 0, 3, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 127200, 122550, 128000 },{ 76300, 73550, 128000 } }, // not yet optimized { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - - }; const ivas_freq_models_t ivas_arith_pred_r_consts[TOTAL_PRED_QUANT_STRATS_ARITH] = @@ -1136,7 +1138,7 @@ const ivas_freq_models_t ivas_arith_pred_r_consts[TOTAL_PRED_QUANT_STRATS_ARITH] } }; - const ivas_freq_models_t ivas_arith_drct_r_consts[TOTAL_DRCT_QUANT_STRATS] = +const ivas_freq_models_t ivas_arith_drct_r_consts[TOTAL_DRCT_QUANT_STRATS] = { /* entry for 1 quantization points */ { @@ -1223,7 +1225,7 @@ const ivas_freq_models_t ivas_arith_pred_r_consts[TOTAL_PRED_QUANT_STRATS_ARITH] } }; - const ivas_freq_models_t ivas_arith_decd_r_consts[TOTAL_DECD_QUANT_STRATS] = +const ivas_freq_models_t ivas_arith_decd_r_consts[TOTAL_DECD_QUANT_STRATS] = { /* entry for 1 quantization points */ { @@ -2733,7 +2735,7 @@ const uint8_t masa_twodir_bands[IVAS_NUM_ACTIVE_BRATES] = const uint8_t masa_twodir_bands_joined[IVAS_NUM_ACTIVE_BRATES] = { - 0, 0, 0, 0, 0, 2, 2, 3, 4, 6, 8, 9, 12, 18 + 0, 0, 0, 0, 0, 2, 2, 3, 4, 6, 8, 9, 12, MASA_MAXIMUM_TWO_DIR_BANDS }; @@ -3363,7 +3365,8 @@ const float ivas_mdft_coeff_cos_twid_960[IVAS_960_PT_LEN + 1] = 0.00654493796735196f, 0.00490871880799808f, 0.00327248650652671f, 0.00163624544362412f, 0.00000000000000000f }; -const float ivas_mdft_coeff_cos_twid_640[IVAS_640_PT_LEN +1] = + +const float ivas_mdft_coeff_cos_twid_640[IVAS_640_PT_LEN + 1] = { 1.00000000000000f, 0.999996988037278f, 0.999987952167257f, 0.999972892444367f, 0.999951808959328f, 0.999924701839145f, 0.999891571247108f, 0.999852417382795f, @@ -3524,9 +3527,10 @@ const float ivas_mdft_coeff_cos_twid_640[IVAS_640_PT_LEN +1] = 0.0392598157590687f, 0.0368072229413588f, 0.0343544083996823f, 0.0319013869096110f, 0.0294481732479634f, 0.0269947821927155f, 0.0245412285229123f, 0.0220875270185784f, 0.0196336924606283f, 0.0171797396307788f, 0.0147256833114584f, 0.0122715382857199f, - 0.00981731933714973f, 0.00736304124977978f, 0.00490871880799808f, 0.00245436679646048f - ,0.00000000000000000f + 0.00981731933714973f, 0.00736304124977978f, 0.00490871880799808f, 0.00245436679646048f, + 0.00000000000000000f }; + const float ivas_mdft_coeff_cos_twid_320[IVAS_320_PT_LEN + 1] = { 1.00000000000000f, 0.999987952167257f, 0.999951808959328f, 0.999891571247108f, @@ -3608,9 +3612,10 @@ const float ivas_mdft_coeff_cos_twid_320[IVAS_320_PT_LEN + 1] = 0.0784590957278450f, 0.0735645635996675f, 0.0686682588843738f, 0.0637702995616845f, 0.0588708036511890f, 0.0539698892095020f, 0.0490676743274181f, 0.0441642771270675f, 0.0392598157590687f, 0.0343544083996823f, 0.0294481732479634f, 0.0245412285229123f, - 0.0196336924606283f, 0.0147256833114584f, 0.00981731933714973f, 0.00490871880799808f - ,0.0000000000000000f + 0.0196336924606283f, 0.0147256833114584f, 0.00981731933714973f, 0.00490871880799808f, + 0.0000000000000000f }; + const float ivas_mdft_coeff_cos_twid_240[IVAS_240_PT_LEN + 1] = { 1.0000000000f, 0.9999785817f, 0.9999143276f, 0.9998072405f, 0.9996573250f, 0.9994645875f, @@ -3685,6 +3690,7 @@ const float ivas_mdft_coeff_cos_twid_160[IVAS_160_PT_LEN + 1] = 0.0980171403f, 0.0882423705f, 0.0784590957f, 0.0686682589f, 0.0588708037f, 0.0490676743f, 0.0392598158f, 0.0294481732f, 0.0196336925f, 0.0098173193f, 0.000000000f }; + const float ivas_mdft_coeff_cos_twid_80[IVAS_80_PT_LEN + 1] = { 1.0000000000f, 0.9998072405f, 0.9992290362f, 0.9982656102f, 0.9969173337f, 0.9951847267f, @@ -3702,6 +3708,7 @@ const float ivas_mdft_coeff_cos_twid_80[IVAS_80_PT_LEN + 1] = 0.1564344650f, 0.1370123417f, 0.1175373975f, 0.0980171403f, 0.0784590957f, 0.0588708037f, 0.0392598158f, 0.0196336925f, 0.000000000f }; + const float ivas_mdft_coeff_cos_twid_40[IVAS_40_PT_LEN + 1] = { 1.0000000000f, 0.9992290362f, 0.9969173337f, 0.9930684570f, 0.9876883406f, 0.9807852804f, @@ -3712,6 +3719,7 @@ const float ivas_mdft_coeff_cos_twid_40[IVAS_40_PT_LEN + 1] = 0.3826834324f, 0.3461170571f, 0.3090169944f, 0.2714404499f, 0.2334453639f, 0.1950903220f, 0.1564344650f, 0.1175373975f, 0.0784590957f, 0.0392598158f, 0.000000000f }; + const float ivas_sin_twiddle_480[IVAS_480_PT_LEN >> 1] = { -0.000818122995607253f, -0.00736304124977957f, -0.0139076440957708f, -0.0204516511845773f, diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index 28a66df68f..58cd80bc37 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -87,8 +87,11 @@ void ivas_sba_config( const int16_t sba_planar, /* i : SBA Planar flag */ int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ - int16_t *element_mode, /* o : element mode of the core coder */ - const SBA_MODE sba_mode /* i : SBA mode */ + int16_t *element_mode /* o : element mode of the core coder */ +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT + , + const SBA_MODE sba_mode /* i : SBA mode */ +#endif ) { if ( ( sba_order < 0 ) && ( nb_channels < 0 ) ) @@ -117,6 +120,9 @@ void ivas_sba_config( if ( nchan_transport != NULL ) { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); +#else if ( sba_mode == SBA_MODE_SPAR ) { *nchan_transport = ivas_get_spar_num_TCs( sba_total_brate, sba_order ); @@ -125,6 +131,7 @@ void ivas_sba_config( { *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); } +#endif } /* Configure core coder number of elements*/ @@ -158,6 +165,7 @@ void ivas_sba_config( * Get Ambisonic order from number of ambisonic channels *-------------------------------------------------------------------*/ +/*! r: Ambisonic (SBA) order */ int16_t ivas_sba_get_order( const int16_t nb_channels, /* i : Number of ambisonic channels */ const int16_t sba_planar /* i : SBA Planar flag */ @@ -182,6 +190,32 @@ int16_t ivas_sba_get_order( } +/*-------------------------------------------------------------------* + * ivas_sba_get_analysis_order() + * + * Get Ambisonic order used for analysis and coding + *-------------------------------------------------------------------*/ + +/*! r: Ambisonic (SBA) order used for analysis and coding */ +int16_t ivas_sba_get_analysis_order( + const int32_t ivas_total_brate, /* i : IVAS total bitrate */ + const int16_t sba_order /* i : Ambisonic (SBA) order */ +) +{ + int16_t sba_analysis_order; + + sba_analysis_order = sba_order; + + if ( ivas_total_brate < SBA_MIN_BRATE_HOA ) + { + /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ + sba_analysis_order = 1; + } + + return sba_analysis_order; +} + + /*-------------------------------------------------------------------* * ivas_sba_get_order_transport() * @@ -215,6 +249,7 @@ int16_t ivas_sba_get_order_transport( * Get number of Ambisonic channels *-------------------------------------------------------------------*/ +/*!r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ diff --git a/lib_com/ivas_sns_com.c b/lib_com/ivas_sns_com.c index 51f5fcee64..b1555a038b 100644 --- a/lib_com/ivas_sns_com.c +++ b/lib_com/ivas_sns_com.c @@ -37,7 +37,7 @@ #include "ivas_prot.h" #include "rom_com.h" #include -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #include #endif #ifdef DEBUGGING @@ -45,7 +45,7 @@ #endif #include "wmops.h" -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /*------------------------------------------------------------------- * sns_compute_scf() diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index 3c908c7980..ce4e742401 100755 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -137,23 +137,23 @@ void ivas_get_twid_factors( float ivas_get_mdct_scaling_gain( const int16_t dct_len_by_2 ) { - float result = 0.0f; + float gain = 0.0f; switch ( dct_len_by_2 ) { case L_FRAME48k >> 2: { - result = IVAS_MDCT_SCALING_GAIN_48k; + gain = IVAS_MDCT_SCALING_GAIN_48k; break; } case L_FRAME32k >> 2: { - result = IVAS_MDCT_SCALING_GAIN_32k; + gain = IVAS_MDCT_SCALING_GAIN_32k; break; } case L_FRAME16k >> 2: { - result = IVAS_MDCT_SCALING_GAIN_16k; + gain = IVAS_MDCT_SCALING_GAIN_16k; break; } default: @@ -163,7 +163,7 @@ float ivas_get_mdct_scaling_gain( } } - return result; + return gain; } @@ -311,7 +311,11 @@ void ivas_spar_config( const int16_t sid_format /* i : IVAS format indicator from SID frame */ ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_5k ) +#endif { if ( sid_format == SID_SBA_1TC ) { @@ -324,7 +328,11 @@ void ivas_spar_config( } else { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + *nchan_transport = ivas_get_sba_num_TCs( ivas_total_brate, sba_order ); +#else *nchan_transport = ivas_get_spar_num_TCs( ivas_total_brate, sba_order ); +#endif } *nCPE = ( *nchan_transport > 1 ) ? ( *nchan_transport + 1 ) >> 1 : 0; @@ -333,7 +341,11 @@ void ivas_spar_config( if ( *nchan_transport == 1 ) { /* map SPAR SID bitrate to SPAR active bitrate */ +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_5k ) +#endif { ivas_total_brate = IVAS_32k; } @@ -408,6 +420,16 @@ int16_t ivas_get_spar_table_idx( } +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT +/*-------------------------------------------------------------------* + * ivas_get_sba_num_TCs() + * + * Return number of TCs in SBA format + *-------------------------------------------------------------------*/ + +/*! r: number of transport channels */ +int16_t ivas_get_sba_num_TCs( +#else /*-------------------------------------------------------------------* * ivas_get_spar_num_TCs() * @@ -416,16 +438,27 @@ int16_t ivas_get_spar_table_idx( /*! r: number of transport channels */ int16_t ivas_get_spar_num_TCs( +#endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { int16_t table_idx, nchan_transport; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_5k ) +#endif { nchan_transport = 1; } +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + else if ( ivas_sba_mode_select( ivas_total_brate ) == SBA_MODE_DIRAC ) + { + nchan_transport = 1; + } +#endif else { table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); diff --git a/lib_com/ivas_spar_com_quant_util.c b/lib_com/ivas_spar_com_quant_util.c index 9b0a936018..c095e20107 100644 --- a/lib_com/ivas_spar_com_quant_util.c +++ b/lib_com/ivas_spar_com_quant_util.c @@ -42,90 +42,49 @@ #include #include "wmops.h" -/*-----------------------------------------------------------------------------------------* - * Function ivas_limit_values() - * - * Limit values within given range - *-----------------------------------------------------------------------------------------*/ - -static void ivas_limit_values( - float **ppValues, - const float min_value, - const float max_value, - const int16_t dim1, - const int16_t dim2 ) -{ - int16_t i, j; - - for ( i = 0; i < dim1; i++ ) - { - for ( j = 0; j < dim2; j++ ) - { - ppValues[i][j] = max( min_value, min( ppValues[i][j], max_value ) ); - } - } - - return; -} - - /*-----------------------------------------------------------------------------------------* * Function ivas_quantise_real_values() * * Quantize real values *-----------------------------------------------------------------------------------------*/ - void ivas_quantise_real_values( - float **values, + const float *values, const int16_t q_levels, const float min_value, const float max_value, - int16_t **index, - float **quant, - const int16_t dim1, - const int16_t dim2 ) + int16_t *index, + float *quant, + const int16_t dim ) { - int16_t i, j; + int16_t i; float q_step, one_by_q_step; - if ( q_levels == 1 ) { - for ( i = 0; i < dim1; i++ ) + for ( i = 0; i < dim; i++ ) { - for ( j = 0; j < dim2; j++ ) - { - quant[i][j] = 0; - index[i][j] = 0; - } + quant[i] = 0; + index[i] = 0; } } else if ( q_levels && max_value != min_value ) { - ivas_limit_values( values, min_value, max_value, dim1, dim2 ); - q_step = ( max_value - min_value ) / ( q_levels - 1 ); one_by_q_step = ( q_levels - 1 ) / ( max_value - min_value ); - - for ( i = 0; i < dim1; i++ ) + float val; + for ( i = 0; i < dim; i++ ) { - for ( j = 0; j < dim2; j++ ) - { - index[i][j] = (int16_t) round( one_by_q_step * values[i][j] ); - quant[i][j] = index[i][j] * q_step; - } + val = max( min_value, min( values[i], max_value ) ); + index[i] = (int16_t) round( one_by_q_step * val ); + quant[i] = index[i] * q_step; } } else { - for ( i = 0; i < dim1; i++ ) + for ( i = 0; i < dim; i++ ) { - for ( j = 0; j < dim2; j++ ) - { - quant[i][j] = values[i][j]; - } + quant[i] = values[i]; } } - return; } @@ -259,7 +218,7 @@ void ivas_map_prior_coeffs_quant( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_quant_dtx_init() * - * Init spar md with minmax vals + * Init SPAR MD with minmax vals *-----------------------------------------------------------------------------------------*/ void ivas_spar_quant_dtx_init( @@ -347,7 +306,7 @@ void ivas_copy_band_coeffs_idx_to_arr( /*-----------------------------------------------------------------------------------------* * Function ivas_clear_band_coeffs() * - * clear band coeffs array in spar MD + * clear band coeffs array in SPAR MD *-----------------------------------------------------------------------------------------*/ void ivas_clear_band_coeffs( @@ -374,7 +333,7 @@ void ivas_clear_band_coeffs( /*-----------------------------------------------------------------------------------------* * Function ivas_clear_band_coeff_idx() * - * clear band coeffs index array in spar MD + * clear band coeffs index array in SPAR MD *-----------------------------------------------------------------------------------------*/ void ivas_clear_band_coeff_idx( @@ -386,7 +345,6 @@ void ivas_clear_band_coeff_idx( for ( i = 0; i < num_bands; i++ ) { set_s( pband_coeff_idx[i].pred_index_re, 0, ( IVAS_SPAR_MAX_CH - 1 ) ); - set_s( pband_coeff_idx[i].drct_index_re, 0, IVAS_SPAR_MAX_C_COEFF ); set_s( pband_coeff_idx[i].decd_index_re, 0, ( IVAS_SPAR_MAX_CH - 1 ) ); } diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index 8c54421f04..e19d30dc71 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -692,8 +692,8 @@ typedef struct ivas_fb_bin_to_band_data_t float *pFb_bin_to_band[IVAS_MAX_NUM_FB_BANDS]; const int16_t *pFb_start_bin_per_band; const int16_t *pFb_active_bins_per_band; - float pp_cldfb_weights_per_spar_band[CLDFB_NO_CHANNELS_MAX][IVAS_MAX_NUM_FB_BANDS]; /* weights for linear combination of parameters from different spar bands*/ - int16_t p_spar_start_bands[CLDFB_NO_CHANNELS_MAX]; /* the first spar band per CLFB band when the weight is > 0 */ + float pp_cldfb_weights_per_spar_band[CLDFB_NO_CHANNELS_MAX][IVAS_MAX_NUM_FB_BANDS]; /* weights for linear combination of parameters from different SPAR bands*/ + int16_t p_spar_start_bands[CLDFB_NO_CHANNELS_MAX]; /* the first SPAR band per CLFB band when the weight is > 0 */ int16_t p_cldfb_map_to_spar_band[CLDFB_NO_CHANNELS_MAX]; /* a direct mapping from CLDFB band to SPAR band */ int16_t p_short_stride_start_bin_per_band[IVAS_MAX_NUM_FB_BANDS]; int16_t p_short_stride_num_bins_per_band[IVAS_MAX_NUM_FB_BANDS]; diff --git a/lib_com/ivas_stereo_dft_com.c b/lib_com/ivas_stereo_dft_com.c index 918fd27b35..7de3144f63 100644 --- a/lib_com/ivas_stereo_dft_com.c +++ b/lib_com/ivas_stereo_dft_com.c @@ -82,7 +82,11 @@ void stereo_dft_config( hConfig->res_cod_mode = STEREO_DFT_RES_COD_OFF; } } +#ifdef ALIGN_SID_SIZE + else if ( brate == IVAS_SID_5k2 ) +#else else if ( brate == IVAS_SID_4k4 ) +#endif { *bits_frame_nominal = SID_2k40 / FRAMES_PER_SEC; if ( hConfig != NULL ) diff --git a/lib_com/ivas_stereo_mdct_stereo_com.c b/lib_com/ivas_stereo_mdct_stereo_com.c index 73cd2fd579..cbb1423cd1 100644 --- a/lib_com/ivas_stereo_mdct_stereo_com.c +++ b/lib_com/ivas_stereo_mdct_stereo_com.c @@ -46,7 +46,7 @@ void splitAvailableBits( const int16_t total_bits, /* i : total available bits for TCX coding */ const int16_t split_ratio, /* i : split ratio */ - const int16_t isSBAStereoMode, /* i : signal core coding for sba */ + const int16_t isSBAStereoMode, /* i : signal core coding for SBA */ int16_t *bits_ch0, /* o : bits for channel 0 */ int16_t *bits_ch1 /* o : bits for channel 1 */ ) diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index 7093a91093..4ca10255a7 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -68,11 +68,10 @@ static void SpectrumWeighting_Init( * initialize a PsychoacousticParameters structure *-------------------------------------------------------------------*/ -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE static #endif - ivas_error - PsychoacousticParameters_Init( +ivas_error PsychoacousticParameters_Init( const int32_t sr_core, /* i : sampling rate of core-coder */ const int16_t nBins, /* i : Number of bins (spectral lines) */ const int8_t nBands, /* i : Number of spectrum subbands */ diff --git a/lib_com/ivas_tools.c b/lib_com/ivas_tools.c index 079af159bc..6b0c0eb297 100644 --- a/lib_com/ivas_tools.c +++ b/lib_com/ivas_tools.c @@ -1172,8 +1172,12 @@ int16_t is_SIDrate( if ( ( ivas_total_brate == SID_1k75 ) || ( ivas_total_brate == SID_2k40 ) || +#ifdef ALIGN_SID_SIZE + ( ivas_total_brate == IVAS_SID_5k2 ) ) +#else ( ivas_total_brate == IVAS_SID_4k4 ) || ( ivas_total_brate == IVAS_SID_5k ) ) +#endif { sid_rate_flag = 1; } diff --git a/lib_com/options.h b/lib_com/options.h index 054eca6526..e3ead5c21a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -141,24 +141,23 @@ #endif #define DISABLE_ADAP_RES_COD_TMP /* temporary fix for IVAS-403, disables adaptive residual coding */ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ - /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -/*#define FIX_IVAS_185_MDCT_ST_PLC_FADEOUT*/ /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ +#define MDCT_STEREO_PLC_FADE_2_BG_NOISE /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ +#define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ +#define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ +#define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ +#define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ +#define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ +#define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ +#define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ +#define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ +#define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ + #define EXT_RENDERER /* FhG: external renderer library and standalone application */ #define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ - -#define FIX_WRONG_NBANDS_IN_ITD_ESTIMATION /* Issue 85: fix incorrect setting of nbands in calc_mean_E_ratio() if bwidth is limited on commandline*/ - -#define FIX_I87 /* fix for issue 86: incorrect Ambisonics order set for head rotation in SBA */ -#define SBA_ORDER_BITSTREAM /* issue 76: Use input sba order for bitstream coding */ - -/* NTT switches */ -#define NTT_UPDATE_ITD_SW /* contribution 4: Update of ITD switch in stereo downmix for EVS */ -#define NTT_REMOVE_EPS_ROM /* contribution 4: Reduction of ROM size in stereo downmix for EVS */ - /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_com/prot.h b/lib_com/prot.h index d9b238bdf0..86e9e172e3 100644 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -2773,13 +2773,11 @@ void fb_tbe_enc( ); void fb_tbe_dec( - Decoder_State *st, /* i/o: decoder state structure */ - const float fb_exc[], /* i : FB excitation from the SWB part */ - float *hb_synth, /* i/o: high-band synthesis */ - float *fb_synth_ref /* o : high-band synthesis 16-20 kHz */ - , - const int16_t output_frame /* i: output frame length */ - + Decoder_State *st, /* i/o: decoder state structure */ + const float fb_exc[], /* i : FB excitation from the SWB part */ + float *hb_synth, /* i/o: high-band synthesis */ + float *fb_synth_ref, /* o : high-band synthesis 16-20 kHz */ + const int16_t output_frame /* i : output frame length */ ); void calc_tilt_bwe( @@ -5147,7 +5145,7 @@ void decod_amr_wb( ivas_error init_decoder( Decoder_State *st, /* o : Decoder static variables structure */ const int16_t idchan /* i : channel ID */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const MC_MODE mc_mode /* i : MC mode */ #endif @@ -6778,7 +6776,7 @@ void enc_acelp_tcx_main( void getTCXMode( Decoder_State *st, /* i/o: decoder memory state */ Decoder_State *st0 /* i : bitstream */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t MCT_flag #endif @@ -7183,7 +7181,7 @@ void WindowSignal( float out[], /* o : output windowed signal */ const int16_t truncate_aldo, /* i : nonzero to truncate long ALDO slope */ const int16_t fullband, /* i : fullband flag */ - const int16_t isLfe /* i: LFE flag */ + const int16_t isLfe /* i : LFE flag */ ); void HBAutocorrelation( @@ -7398,13 +7396,17 @@ void ProcessStereoIGF( Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ +#ifdef DRAM_REDUCTION_MCT_IGF + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ +#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i : inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subframe*/ const int16_t sp_aud_decision0, /* i : sp_aud_decision0 */ const int32_t element_brate, /* i : element bitrate */ - const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ + const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ ); void AnalyzePowerSpectrum( @@ -7895,7 +7897,7 @@ void decoder_tcx_post( float *synthFB, float *A, const int16_t bfi -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t isMCT #endif @@ -7951,7 +7953,7 @@ void decoder_acelp( void writeTCXMode( Encoder_State *st, /* i/o: encoder state structure */ BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t is_mct, #endif int16_t *nbits_start /* o : nbits start */ @@ -8142,7 +8144,7 @@ void con_tcx( const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left /* i : TD-PLC only in left channel */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const float *A_cng #endif @@ -8691,7 +8693,7 @@ void configureFdCngDec( void ApplyFdCng( float *timeDomainInput, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *powerSpectrum, #endif float **realBuffer, /* i/o: Real part of the buffer */ @@ -8702,7 +8704,7 @@ void ApplyFdCng( void perform_noise_estimation_dec( const float *timeDomainInput, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *power_spectrum, #endif HANDLE_FD_CNG_DEC hFdCngDec, /* i/o: FD_CNG structure */ @@ -9204,7 +9206,7 @@ void open_decoder_LPD( const int32_t last_total_brate, /* i : last total bitrate */ const int16_t bwidth, /* i : audio bandwidth */ const int16_t is_mct, /* i : MCT mode flag */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t last_element_mode, #endif const int16_t is_init /* i : indicate call during initialization */ @@ -9247,9 +9249,9 @@ void mode_switch_decoder_LPD( const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ const int16_t is_mct /* i : MCT mode flag */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , - const int16_t last_element_mode + const int16_t last_element_mode /* i : last element mode */ #endif ); @@ -9531,7 +9533,7 @@ void TonalMDCTConceal_SaveFreqSignal( const uint16_t numSamples, const uint16_t nNewSamplesCore, const float *scaleFactors -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t infoIGFStartLine #endif @@ -9569,8 +9571,9 @@ void TonalMDCTConceal_InsertNoise( int16_t *pSeed, /*IN/OUT*/ const float tiltCompFactor, const float crossfadeGain, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const float concealment_noise[L_FRAME48k], + const float cngLevelBackgroundTrace_bfi, #endif const int16_t crossOverFreq ); @@ -9606,7 +9609,7 @@ void RefineTonalComponents( float floorPowerSpectrum, const PsychoacousticParameters *psychParamsCurrent ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ivas_error PsychoacousticParameters_Init( const int32_t sr_core, /* i : sampling rate of core-coder */ const int16_t nBins, /* i : Number of bins (spectral lines) */ @@ -9795,7 +9798,11 @@ void IGFEncApplyStereo( const IGF_ENC_INSTANCE_HANDLE hIGFEnc[CPE_CHANNELS], /* i : instance handle of IGF Encoder */ const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ +#ifdef DRAM_REDUCTION_MCT_IGF + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i/o: inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subframe */ diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c index 7951f10d54..684c12b57e 100755 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -125,7 +125,11 @@ ivas_error acelp_core_dec( error = IVAS_ERR_OK; +#ifdef ALIGN_SID_SIZE + if ( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_5k2 ) +#else if ( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_4k4 ) +#endif { /* In MDCT-Stereo DTX with mono output, we can skip CNG for the second channel, except for the first inactive frame following an active period */ return error; @@ -156,7 +160,7 @@ ivas_error acelp_core_dec( st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] = STEREO_DFT_FD_FILT * st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] + ( 1 - STEREO_DFT_FD_FILT ) * st->hFdCngDec->hFdCngCom->sidNoiseEst[i]; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( NULL, NULL, NULL, NULL, st, 0, 0 ); #else ApplyFdCng( NULL, NULL, NULL, st, 0, 0 ); @@ -530,7 +534,7 @@ ivas_error acelp_core_dec( { st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] = STEREO_DFT_FD_FILT * st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] + ( 1 - STEREO_DFT_FD_FILT ) * st->hFdCngDec->hFdCngCom->sidNoiseEst[i]; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); #else ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); @@ -1119,7 +1123,7 @@ ivas_error acelp_core_dec( if ( st->element_mode != IVAS_CPE_TD ) { /*Noise estimate*/ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); #else ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); @@ -1188,7 +1192,7 @@ ivas_error acelp_core_dec( /*Noise estimate*/ if ( st->idchan == 0 && ( nchan_out == 2 || ( st->core_brate != FRAME_NO_DATA && st->core_brate != SID_2k40 ) ) ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); #else ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); diff --git a/lib_dec/acelp_core_switch_dec.c b/lib_dec/acelp_core_switch_dec.c index 9daac37b74..98854527e6 100644 --- a/lib_dec/acelp_core_switch_dec.c +++ b/lib_dec/acelp_core_switch_dec.c @@ -534,7 +534,7 @@ ivas_error acelp_core_switch_dec_bfi( /*-------------------------------------------------------------------* * decod_gen_voic_core_switch() * - * Decode excitation signal in teh first ACELP->HQ switching frame + * Decode excitation signal in the first ACELP->HQ switching frame *-------------------------------------------------------------------*/ static void decod_gen_voic_core_switch( diff --git a/lib_dec/amr_wb_dec.c b/lib_dec/amr_wb_dec.c index c220c8201e..907d90e9ab 100644 --- a/lib_dec/amr_wb_dec.c +++ b/lib_dec/amr_wb_dec.c @@ -621,7 +621,7 @@ ivas_error amr_wb_dec( /*VAD only for non inactive frame*/ st->VAD = ( st->VAD && ( st->coder_type != INACTIVE ) ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, NULL, NULL, st, 0, 0 ); #else ApplyFdCng( syn, NULL, NULL, st, 0, 0 ); diff --git a/lib_dec/core_dec_init.c b/lib_dec/core_dec_init.c index d2d94799ef..bc8d95e24f 100644 --- a/lib_dec/core_dec_init.c +++ b/lib_dec/core_dec_init.c @@ -57,7 +57,7 @@ void open_decoder_LPD( const int32_t last_total_brate, const int16_t bwidth, const int16_t is_mct, /* i : MCT mode flag */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t last_element_mode, #endif const int16_t is_init /* i : indicate call from init_decoder() to avoid double TC initialization */ @@ -552,9 +552,8 @@ void open_decoder_LPD( { st->hTcxDec->prev_widow_left_rect = 0; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - /* Todo: should be considered for other stereo modes as well */ - if ( is_init || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( is_init || is_mct || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV; st->hTcxDec->NoiseLevelIndex_bfi = PLC_MIN_STAT_BUFF_SIZE - 1; diff --git a/lib_dec/core_dec_switch.c b/lib_dec/core_dec_switch.c index 637c185f32..c2084f3f12 100644 --- a/lib_dec/core_dec_switch.c +++ b/lib_dec/core_dec_switch.c @@ -57,9 +57,9 @@ void mode_switch_decoder_LPD( const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ const int16_t is_mct /* i : MCT mode flag */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , - const int16_t last_element_mode + const int16_t last_element_mode /* i : last element mode */ #endif ) { @@ -109,7 +109,7 @@ void mode_switch_decoder_LPD( if ( fscale != st->fscale || switchWB || bSwitchFromAmrwbIO || st->last_codec_mode == MODE1 || st->force_lpd_reset ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE open_decoder_LPD( st, total_brate, last_total_brate, bwidth, is_mct, last_element_mode, 0 ); #else open_decoder_LPD( st, total_brate, last_total_brate, bwidth, is_mct, 0 ); diff --git a/lib_dec/core_switching_dec.c b/lib_dec/core_switching_dec.c index 61537f76e3..e8c74bc2ef 100644 --- a/lib_dec/core_switching_dec.c +++ b/lib_dec/core_switching_dec.c @@ -1048,7 +1048,11 @@ void bw_switching_pre_proc( if ( st->element_mode > EVS_MONO ) { +#ifdef ALIGN_SID_SIZE + if ( st->core == ACELP_CORE && !( st->bfi == 1 && st->con_tcx == 1 ) && st->hBWE_FD != NULL && !( st->core_brate <= SID_2k40 && st->element_mode == IVAS_CPE_DFT && nchan_out == 2 ) && !( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_5k2 ) ) +#else if ( st->core == ACELP_CORE && !( st->bfi == 1 && st->con_tcx == 1 ) && st->hBWE_FD != NULL && !( st->core_brate <= SID_2k40 && st->element_mode == IVAS_CPE_DFT && nchan_out == 2 ) && !( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_4k4 ) ) +#endif { /* Calculate tilt of the ACELP core synthesis - needed in SWB BWE decoding */ calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame ); diff --git a/lib_dec/dec_LPD.c b/lib_dec/dec_LPD.c index 422104ac43..a28630886e 100644 --- a/lib_dec/dec_LPD.c +++ b/lib_dec/dec_LPD.c @@ -478,7 +478,7 @@ void decoder_LPD( if ( bfi && st->last_core != ACELP_CORE ) { /* PLC: [TCX: TD PLC] */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); #else con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); @@ -650,7 +650,7 @@ void decoder_LPD( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, L_frameTCX ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_post( st, synth, synthFB, Aq, bfi, 0 ); #else decoder_tcx_post( st, synth, synthFB, Aq, bfi ); diff --git a/lib_dec/dec_acelp_tcx_main.c b/lib_dec/dec_acelp_tcx_main.c index b1bfd3e225..1ca75fff20 100644 --- a/lib_dec/dec_acelp_tcx_main.c +++ b/lib_dec/dec_acelp_tcx_main.c @@ -198,7 +198,7 @@ static void decode_frame_type( st->rate_switching_init = 1; /* Reconf Core */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE mode_switch_decoder_LPD( st, st->bwidth, st->total_brate, st->last_total_brate, frame_size_index, 0, st->element_mode ); #else mode_switch_decoder_LPD( st, st->bwidth, st->total_brate, st->last_total_brate, frame_size_index, 0 ); diff --git a/lib_dec/dec_prm.c b/lib_dec/dec_prm.c index 37c64f18a3..925b561fd6 100644 --- a/lib_dec/dec_prm.c +++ b/lib_dec/dec_prm.c @@ -55,7 +55,7 @@ void getTCXMode( Decoder_State *st, /* i/o: decoder memory state */ Decoder_State *st0 /* i : bitstream */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t MCT_flag #endif @@ -94,7 +94,7 @@ void getTCXMode( } st->coder_type = INACTIVE; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) { st->VAD = get_next_indice( st0, 1 ); @@ -793,7 +793,7 @@ void dec_prm( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE getTCXMode( st, st, 0 /* <- MCT_flag */ ); #else getTCXMode( st, st ); diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index ae5faa4d73..502433517e 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -98,13 +98,9 @@ void decoder_tcx( init_tcx_info( st, L_frame_glob, L_frameTCX_glob, frame_cnt, bfi, &tcx_offset, &tcx_offsetFB, &L_frame, &L_frameTCX, &left_rect, &L_spec ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - decoder_tcx_invQ( st, prm, A, Aind, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &xn_buf[0], &fUseTns, &tnsData, &gain_tcx, &prm_sqQ, &nf_seed, bfi, 0, /* <- isMCT */ frame_cnt ); -#else decoder_tcx_invQ( st, prm, A, Aind, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &xn_buf[0], &fUseTns, &tnsData, &gain_tcx, &prm_sqQ, &nf_seed, bfi, frame_cnt ); -#endif -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_noisefilling( st, NULL, A, L_frameTCX_glob, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, 0, frame_cnt ); #else decoder_tcx_noisefilling( st, A, L_frameTCX_glob, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, frame_cnt ); @@ -133,7 +129,7 @@ void decoder_tcx_post( float *synthFB, float *A, const int16_t bfi -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t isMCT #endif @@ -188,7 +184,7 @@ void decoder_tcx_post( /* PLC: [TCX: Fade-out] * PLC: update or retrieve the background level */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi == 0 && st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) && st->clas_dec == UNVOICED_CLAS ) #else if ( bfi == 0 && st->tcxonly && st->clas_dec == UNVOICED_CLAS ) @@ -206,6 +202,20 @@ void decoder_tcx_post( if ( st->tcxonly ) { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / ( level_syn + 0.01f ); +#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS + + if ( st->element_mode == IVAS_CPE_MDCT && ! isMCT ) + { + if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME + MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN ) + { + gainCNG = 0.f; + } + else if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) + { + gainCNG *= 1.f - (float) ( st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) / MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN; + } + } +#endif } else { @@ -696,9 +706,6 @@ void decoder_tcx_invQ( const int16_t **prm_sqQ1, int16_t *nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - const int16_t isMCT, -#endif const int16_t frame_cnt /* i : frame counter in the super frame */ ) { @@ -913,16 +920,7 @@ void decoder_tcx_invQ( hTcxDec->damping = 1; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - else if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) - { - *gain_tcx = hTcxDec->old_gaintcx_bfi; - hTcxDec->damping = Damping_fact( st->coder_type, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), st->last_core ); - } - else if ( st->element_mode != IVAS_CPE_MDCT || !isMCT ) -#else else -#endif { *gain_tcx = hTcxDec->old_gaintcx_bfi; hTcxDec->damping = Damping_fact( st->coder_type, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), st->last_core ); @@ -1079,7 +1077,7 @@ void decoder_tcx_invQ( void decoder_tcx_noisefilling( Decoder_State *st, /* i/o: coder memory state */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float concealment_noise[L_FRAME48k], #endif const float A[], /* i : coefficients NxAz[M+1] */ @@ -1094,7 +1092,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t isMCT, #endif const int16_t frame_cnt /* i : frame counter in the super frame*/ @@ -1120,6 +1118,9 @@ void decoder_tcx_noisefilling( *-----------------------------------------------------------------*/ /* Init lengths */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + infoIGFStartLine = get_igf_startline( st, L_frame, L_frameTCX ); +#else if ( st->igf == 0 ) { if ( st->narrowBand == 0 ) @@ -1137,6 +1138,7 @@ void decoder_tcx_noisefilling( { infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX ); } +#endif noiseFillingSize = L_spec; if ( st->igf ) @@ -1248,7 +1250,7 @@ void decoder_tcx_noisefilling( if ( !bfi && st->element_mode != IVAS_CPE_MDCT ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x, L_frameTCX, L_frame, gainlpc2, infoIGFStartLine ); #else TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x, L_frameTCX, L_frame, gainlpc2 ); @@ -1261,8 +1263,8 @@ void decoder_tcx_noisefilling( { /* set f to 1 to not fade out */ /* set f to 0 to immediately switch to white noise */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - if ( st->tcxonly && st->element_mode != IVAS_CPE_MDCT ) +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) ) #else if ( st->tcxonly ) #endif @@ -1304,14 +1306,14 @@ void decoder_tcx_noisefilling( noiseTiltFactor = 1.0f; tcxGetNoiseFillingTilt( A, L_frame, ( total_brate >= ACELP_13k20 && !st->rf_flag ), &noiseTiltFactor ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) { - TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, infoIGFStartLine ); + TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); } else { - TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, NULL, infoIGFStartLine ); + TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, NULL, hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); } #else TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, infoIGFStartLine ); @@ -1393,7 +1395,7 @@ void decoder_tcx_noiseshaping_igf( * Noise shaping in frequency domain (1/Wz) * *-----------------------------------------------------------*/ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->igf && ( !bfi || ( st->element_mode == IVAS_CPE_MDCT && st->prev_bfi ) ) ) #else if ( st->igf && !bfi ) @@ -1943,7 +1945,12 @@ void decoder_tcx_IGF_stereo( const int16_t L_frame, /* i : frame length */ const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ - const int16_t bfi /* i : bad frame indicator */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + const int16_t bfi, /* i : bad frame indicator */ + const int16_t is_mct /* i : flag to signal MCT or SMDCT */ +#else + const int16_t bfi /* i : bad frame indicator */ +#endif ) { int16_t coreMsMask[N_MAX]; @@ -1996,7 +2003,11 @@ void decoder_tcx_IGF_stereo( igfGridIdx = ( sts[0]->last_core == ACELP_CORE || ( left_rect && bfi ) ) ? IGF_GRID_LB_TRAN : IGF_GRID_LB_NORM; } +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, is_mct ); +#else IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi ); +#endif } return; diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 2fb4a8979a..d72e88da5f 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -34,6 +34,8 @@ EVS Codec 3GPP TS26.443 Nov 04, 2021. Version 12.14.0 / 13.10.0 / 14.6.0 / 15.4.0 / 16.3.0 ====================================================================================*/ +#include "cnst.h" +#include "ivas_cnst.h" #include #include #include "options.h" @@ -52,13 +54,12 @@ *-----------------------------------------------------------------*/ void con_tcx( - Decoder_State *st, /* i/o: coder memory state */ - float synth[] /* i/o: synth[] */ - , + Decoder_State *st, /* i/o: coder memory state */ + float synth[], /* i/o: synth[] */ const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left /* i : TD-PLC only in left channel */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const float *A_cng #endif @@ -280,19 +281,7 @@ void con_tcx( st->bpf_gain_param = 0; /* PLC: calculate damping factor */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - alpha = 1.0f; - if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) - { - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); - } - else if ( st->element_mode != IVAS_CPE_MDCT ) - { - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); - } -#else - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); -#endif + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), ACELP_CORE ); if ( st->nbLostCmpt == 1 ) { @@ -351,19 +340,7 @@ void con_tcx( set_f( pitch_buf, (float) L_SUBFR, st->nb_subfr ); /* PLC: calculate damping factor */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - alpha = 1.0f; - if ( st->element_mode == IVAS_CPE_MDCT && st->nbLostCmpt >= MDCT_ST_PLC_FADEOUT_START_FRAME ) - { - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_START_FRAME, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); - } - else if ( st->element_mode != IVAS_CPE_MDCT ) - { - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); - } -#else - alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), 0 ); -#endif + alpha = Damping_fact( st->core_ext_mode, st->nbLostCmpt, st->last_good, st->stab_fac, &( st->lp_gainp ), ACELP_CORE ); } /*-----------------------------------------------------------------* @@ -460,7 +437,7 @@ void con_tcx( /* PLC: [TCX: Fade-out] retrieve background level */ tmp = 1.0f; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( A_cng != NULL ) { gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_cng, L_frame / 4, st->preemph_fac, 1 ) / 4.f; @@ -475,6 +452,20 @@ void con_tcx( if ( st->tcxonly ) { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / gainSynthDeemph; + +#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS + if ( st->element_mode == IVAS_CPE_MDCT && A_cng != NULL ) + { + if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME + MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN ) + { + gainCNG = 0.f; + } + else if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) + { + gainCNG *= 1.f - (float) ( st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) / MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN; + } + } +#endif } else { @@ -570,26 +561,13 @@ void con_tcx( mvr2r( buf, mem_syn, M ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( A_cng != NULL ) { - if ( ( st->nbLostCmpt == 1 && st->idchan == 0 ) || ( st->nbLostCmpt == 2 && st->idchan == 1 ) ) - { - float lsp_cng[M]; - - lpc_from_spectrum( st->hFdCngDec->hFdCngCom, st->hFdCngDec->hFdCngCom->startBand, st->hFdCngDec->hFdCngCom->stopFFTbin, 0.f ); - - a2lsp_stab( st->hFdCngDec->hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); - mvr2r( lsp_cng, st->lspold_cng, M ); - } - - if ( alpha != 1.0f ) + if ( st->plcBackgroundNoiseUpdated && alpha != 1.0f ) { - float lsp_local[M]; - float lsp_fade[M]; - float alpha_inv; + float lsp_local[M], lsp_fade[M], alpha_inv; - wmops_sub_start( "Fade LSPs" ); alpha_inv = 1.0f - alpha; a2lsp_stab( A_local, lsp_local, lsp_local ); @@ -600,7 +578,6 @@ void con_tcx( } lsp2a_stab( lsp_fade, A_local, M ); - wmops_sub_end(); } } #endif diff --git a/lib_dec/evs_dec.c b/lib_dec/evs_dec.c index b51ed8d6ea..e03b2ff2bc 100755 --- a/lib_dec/evs_dec.c +++ b/lib_dec/evs_dec.c @@ -676,7 +676,7 @@ ivas_error evs_dec( st->lp_noise = st->hFdCngDec->lp_noise; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( output, NULL, realBuffer, imagBuffer, st, concealWholeFrame, 0 ); #else ApplyFdCng( output, realBuffer, imagBuffer, st, concealWholeFrame, 0 ); diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index 4f0e8574f0..85d82d953c 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -368,7 +368,7 @@ void deleteFdCngDec( void ApplyFdCng( float *timeDomainInput, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *powerSpectrum, #endif float **realBuffer, /* i/o: Real part of the buffer */ @@ -384,7 +384,7 @@ void ApplyFdCng( int16_t j, k; float factor; float lsp_cng[M]; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t L_frame, last_L_frame; int32_t sr_core; @@ -419,7 +419,7 @@ void ApplyFdCng( /* set noise estimation inactive during concealment, as no update with noise generated by concealment should be performed. */ /* set noise estimation inactive when we have bit errors, as no update with noise generated by corrupt frame (biterror) should be performed. */ if ( concealWholeFrame == 0 && -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ( timeDomainInput == NULL || ( *timeDomainInput( -FLT_MAX ) && *( timeDomainInput + hFdCngCom->frameSize - 1 ) < FLT_MAX && @@ -435,7 +435,7 @@ void ApplyFdCng( ( !st->BER_detect ) ) { /* Perform noise estimation at the decoder */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); #else perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); @@ -471,7 +471,7 @@ void ApplyFdCng( } } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && timeDomainInput == NULL ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = sqrtf( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / NORM_MDCT_FACTOR ); @@ -488,7 +488,7 @@ void ApplyFdCng( if ( hFdCngCom->active_frame_counter > 0 ) { /* Perform noise estimation in active frames in the decoder for downward updates */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); #else perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); @@ -496,65 +496,47 @@ void ApplyFdCng( } } +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( concealWholeFrame == 1 ) && ( st->nbLostCmpt == 1 ) && sum_f( cngNoiseLevel + hFdCngCom->startBand, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) > 0.01f ) { -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0 ); #else - if ( st->element_mode == IVAS_CPE_MDCT && st->core != ACELP_CORE ) - { - float scf[SNS_NPTS]; - float scf_int[FDNS_NPTS]; - float whitenend_noise_shape[L_FRAME16k]; - int16_t inc, start_idx, stop_idx; - float *noiseLevelPtr; - - wmops_sub_start( "get scfs for bg" ); + if ( ( concealWholeFrame == 1 ) && ( st->nbLostCmpt == 1 ) ) + { + /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ - inc = ( st->core > TCX_20 ) ? 2 : 1; - start_idx = hFdCngCom->startBand / inc; - stop_idx = L_frame / inc; - noiseLevelPtr = cngNoiseLevel; + /* always set psychParameters for MDCT-Stereo ... */ + if ( st->element_mode == IVAS_CPE_MDCT && st->hTonalMDCTConc != NULL ) + { + st->hTonalMDCTConc->psychParams = ( st->core == TCX_20_CORE ) ? &st->hTonalMDCTConc->psychParamsTCX20 : &st->hTonalMDCTConc->psychParamsTCX10; + } - set_zero( whitenend_noise_shape, start_idx ); - for ( j = start_idx; j < stop_idx; j++, noiseLevelPtr += inc ) - { - whitenend_noise_shape[j] = *noiseLevelPtr; - } - if ( st->core == TCX_20_CORE ) + /* ... but do actual computations only if sufficient energy in noise shape */ + if ( sum_f( cngNoiseLevel + hFdCngCom->startBand, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) > 0.01f ) + { + if ( st->element_mode == IVAS_CPE_MDCT && st->core != ACELP_CORE ) { - st->hTonalMDCTConc->psychParams = &st->hTonalMDCTConc->psychParamsTCX20; + TonalMdctConceal_whiten_noise_shape( st, L_frame, ON_FIRST_LOST_FRAME ); } - else + else if ( st->element_mode != IVAS_CPE_MDCT || st->core == ACELP_CORE ) { - st->hTonalMDCTConc->psychParams = &st->hTonalMDCTConc->psychParamsTCX10; + lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0.f ); + a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); + mvr2r( lsp_cng, st->lspold_cng, M ); + lsp2lsf( lsp_cng, st->lsf_cng, M, sr_core ); } - - sns_compute_scf( whitenend_noise_shape, st->hTonalMDCTConc->psychParams, L_frame, scf ); - sns_interpolate_scalefactors( scf_int, scf, ENC ); - sns_interpolate_scalefactors( st->hTonalMDCTConc->scaleFactorsBackground, scf, DEC ); - sns_shape_spectrum( whitenend_noise_shape, st->hTonalMDCTConc->psychParams, scf_int, L_frame ); - - mvr2r( whitenend_noise_shape + start_idx, cngNoiseLevel, stop_idx - start_idx ); - wmops_sub_end(); - } - else if ( st->element_mode != IVAS_CPE_MDCT ) - { - lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0.f ); - a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); - mvr2r( lsp_cng, st->lspold_cng, M ); - lsp2lsf( lsp_cng, st->lsf_cng, M, sr_core ); + st->plcBackgroundNoiseUpdated = 1; } #endif +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); mvr2r( lsp_cng, st->lspold_cng, M ); lsp2lsf( lsp_cng, st->lsf_cng, M, st->sr_core ); -#endif st->plcBackgroundNoiseUpdated = 1; +#endif } break; @@ -567,7 +549,7 @@ void ApplyFdCng( if ( st != NULL && st->cng_type == LP_CNG ) { /* Perform noise estimation on inactive phase at the decoder */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); #else perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); @@ -582,7 +564,7 @@ void ApplyFdCng( /* This sets the new CNG levels until a SID update overwrites it */ mvr2r( hFdCngDec->bandNoiseShape, cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ); /* This sets the new CNG levels until a SID update overwrites it */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE st->cngTDLevel = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / L_frame ); #else st->cngTDLevel = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / st->L_frame ); @@ -668,7 +650,7 @@ void ApplyFdCng( default: break; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE wmops_sub_end(); #endif @@ -685,7 +667,7 @@ void ApplyFdCng( void perform_noise_estimation_dec( const float *timeDomainInput, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *power_spectrum, #endif HANDLE_FD_CNG_DEC hFdCngDec, /* i/o: FD_CNG structure containing all buffers and variables */ @@ -720,7 +702,7 @@ void perform_noise_estimation_dec( float temp, ftemp, delta; float wght; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( !( element_mode == IVAS_CPE_MDCT && power_spectrum != NULL ) ) { /* Perform STFT analysis */ @@ -962,7 +944,7 @@ void perform_noise_estimation_dec( } else { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( element_mode == IVAS_CPE_MDCT && power_spectrum != NULL ) { /* use power spectrum calculated in the MDCT-domain instead of calculating new power spectrum */ @@ -2099,6 +2081,10 @@ void FdCngDecodeMDCTStereoSID( msvq_dec( cdk_37bits_ivas, NULL, NULL, stages, N, FD_CNG_maxN_37bits, indices, ms_ptr[ch], NULL ); } +#ifdef ALIGN_SID_SIZE + dtx_read_padding_bits( sts[1], ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); +#endif + if ( sts[0]->hFdCngDec->hFdCngCom->no_side_flag ) { set_zero( ms_ptr[1], NPART ); @@ -2122,7 +2108,11 @@ void FdCngDecodeMDCTStereoSID( lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, sts[ch]->preemph_fac ); } +#ifdef ALIGN_SID_SIZE + if ( hCPE->nchan_out == 1 && hCPE->last_element_brate <= IVAS_SID_5k2 ) +#else if ( hCPE->nchan_out == 1 && hCPE->last_element_brate <= IVAS_SID_4k4 ) +#endif { /* create proper M noise shape in channel zero after gains have been applied */ for ( p = 0; p < N; p++ ) diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index 55e526d665..fecc8e96df 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -679,7 +679,12 @@ static void IGF_appl( float *pSpectralData, /* i/o: Q31 | MDCT spectrum */ const float *igf_spec, /* i : Q31 | prepared IGF spectrum */ float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ + const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ +#else int16_t *flag_sparse /* o : Q0 | temp flattening indicator */ +#endif ) { H_IGF_GRID hGrid; @@ -855,7 +860,11 @@ static void IGF_appl( for ( sfb = start_sfb; sfb < stop_sfb; sfb++ ) { +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( bfi_apply_damping && hPrivateData->frameLossCounter > 0 ) +#else if ( hPrivateData->frameLossCounter > 0 ) +#endif { gain[sfb] = min( gain[sfb], 12.f ); @@ -1212,7 +1221,11 @@ void IGFDecApplyMono( /* apply IGF in three steps: */ IGF_prep( hPrivateData, igfGridIdx, hIGFDec->infoTCXNoise, igf_spec, hPrivateData->pSpecFlat, element_mode ); IGF_calc( hPrivateData, igfGridIdx, spectrum, igf_spec ); +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse, 1 ); +#else IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse ); +#endif } /* reset TCX noise indicator vector */ @@ -1238,7 +1251,12 @@ void IGFDecApplyStereo( const int16_t igfGridIdx, /* i : in case of CELP->TCX switching, use 1.25 framelength */ const int16_t *coreMsMask, const int16_t restrict_hopsize, +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ + const int16_t bfi_apply_damping +#else const int16_t bfi /* i : frame loss == 1, frame good == 0 */ +#endif ) { IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR; @@ -1335,8 +1353,13 @@ void IGFDecApplyStereo( IGF_calc( hPrivateDataL, igfGridIdx, spectrumL, igf_specL ); IGF_calc( hPrivateDataR, igfGridIdx, spectrumR, igf_specR ); +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, bfi_apply_damping ); + IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, bfi_apply_damping ); +#else IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse ); IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse ); +#endif } /* reset TCX noise indicator vector */ @@ -1588,3 +1611,34 @@ void init_igf_dec( return; } + +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE +int16_t get_igf_startline( + Decoder_State *st, + int16_t L_frame, + int16_t L_frameTCX +) +{ + int16_t igf_startline; + + if ( st->igf == 0 ) + { + if ( st->narrowBand == 0 ) + { + /* minimum needed for output with sampling rates lower then the + nominal sampling rate */ + igf_startline = min( L_frameTCX, L_frame ); + } + else + { + igf_startline = L_frameTCX; + } + } + else + { + igf_startline = min( st->hIGFDec->infoIGFStartLine, L_frameTCX ); + } + + return igf_startline; +} +#endif diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 40c65d9503..2e31017eaa 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -54,7 +54,7 @@ ivas_error init_decoder( Decoder_State *st, /* o : Decoder static variables structure */ const int16_t idchan /* i : channel ID */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const MC_MODE mc_mode /* i : MC mode */ #endif @@ -691,7 +691,7 @@ ivas_error init_decoder( st->enablePlcWaveadjust = 0; /* Init Core Decoder */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, st->element_mode, 1 ); #else open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, 1 ); @@ -714,7 +714,7 @@ ivas_error init_decoder( * FD-CNG decoder *-----------------------------------------------------------------*/ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( st->element_mode == IVAS_CPE_MDCT || idchan == 0 ) && mc_mode != MC_MODE_MCT ) #else if ( idchan == 0 && st->element_mode != IVAS_CPE_MDCT ) diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index de87b4c557..ad350f4e30 100755 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -35,7 +35,7 @@ #ifdef DEBUGGING #include "debug.h" #endif -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #include #endif #include @@ -183,7 +183,7 @@ ivas_error ivas_core_dec( st->flagGuidedAcelp = 0; } -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->element_mode != IVAS_CPE_MDCT ) { @@ -201,7 +201,7 @@ ivas_error ivas_core_dec( } #else /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ - if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) ) + if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && hMCT == NULL ) { float gain; if ( st->hPlcInfo != NULL ) @@ -428,6 +428,21 @@ ivas_error ivas_core_dec( { updateBuffersForDmxMdctStereo( hCPE, output_frame, output, synth ); } + +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( sts[0]->bfi == 0 && sts[0]->prev_bfi == 1 ) + { + /* On first good frame after frameloss undo the whitening of the bg noise shape */ + for ( n = 0; n < n_channels; ++n ) + { + if ( sts[n]->last_core_bfi != ACELP_CORE ) + { + TonalMdctConceal_whiten_noise_shape( sts[n], L_FRAME16k, ON_FIRST_GOOD_FRAME ); + } + } + } +#endif + } /*---------------------------------------------------------------------* diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 7223b38761..da0911ee5b 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -160,14 +160,22 @@ ivas_error ivas_cpe_dec( if ( hCPE->element_mode != IVAS_CPE_MDCT && ( hCPE->element_brate != hCPE->last_element_brate || hCPE->last_element_mode != hCPE->element_mode || sts[0]->ini_frame == 0 || ( ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) ) ) { +#ifdef ALIGN_SID_SIZE + if ( st_ivas->hQMetaData != NULL && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->hQMetaData != NULL && ivas_total_brate > IVAS_SID_4k4 ) +#endif { stereo_dft_config( hCPE->hStereoDft == NULL ? NULL : hCPE->hStereoDft->hConfig, st_ivas->hQMetaData->bits_frame_nominal * FRAMES_PER_SEC, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); } else { /* Note: This only works for stereo operation. If DTX would be applied for multiple CPEs a different bitrate signaling is needed */ +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( ivas_total_brate <= IVAS_SID_4k4 ) +#endif { stereo_dft_config( hCPE->hStereoDft == NULL ? NULL : hCPE->hStereoDft->hConfig, ivas_total_brate, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); } @@ -203,7 +211,11 @@ ivas_error ivas_cpe_dec( /* Update DFT Stereo memories */ stereo_dft_dec_update( hCPE->hStereoDft, output_frame, 0 ); +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) +#endif { if ( ivas_total_brate == FRAME_NO_DATA ) { @@ -220,13 +232,21 @@ ivas_error ivas_cpe_dec( nb_bits = (int16_t) ( ( hCPE->element_brate ) / FRAMES_PER_SEC - 0.8f * sts[0]->bits_frame_nominal ); sts[1]->bit_stream = sts[0]->bit_stream + ivas_total_brate / FRAMES_PER_SEC - 1 - nb_bits_metadata; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_4k4 ) +#endif { nb_bits -= SID_FORMAT_NBITS; sts[1]->bit_stream -= SID_FORMAT_NBITS; } +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 ) +#endif { sts[0]->total_brate = hCPE->element_brate; /* Only mono downmix was transmitted in this case */ } @@ -266,7 +286,11 @@ ivas_error ivas_cpe_dec( /* this is just for initialization, the true values of "total_brate" and "bits_frame_channel" are set later */ for ( n = 0; n < n_channels; n++ ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) +#endif { sts[n]->total_brate = SID_2k40; @@ -283,7 +307,11 @@ ivas_error ivas_cpe_dec( if ( !st_ivas->hMCT ) { +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == SBA_FORMAT && ivas_total_brate == IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == SBA_FORMAT && ivas_total_brate == IVAS_SID_5k ) +#endif { for ( n = 0; n < n_channels; n++ ) { @@ -587,7 +615,11 @@ ivas_error create_cpe_dec( hCPE->nchan_out = min( CPE_CHANNELS, st_ivas->hDecoderConfig->nchan_out ); } +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) +#endif { hCPE->nchan_out = 1; } @@ -686,7 +718,7 @@ ivas_error create_cpe_dec( st->mct_chan_mode = MCT_CHAN_MODE_LFE; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( error = init_decoder( st, n, st_ivas->mc_mode ) ) != IVAS_ERR_OK ) #else if ( ( error = init_decoder( st, n ) ) != IVAS_ERR_OK ) @@ -791,6 +823,12 @@ ivas_error create_cpe_dec( set_s( hCPE->hStereoMdct->prev_ms_mask[0], 0, MAX_SFB ); set_s( hCPE->hStereoMdct->prev_ms_mask[1], 0, MAX_SFB ); hCPE->hStereoMdct->lastCoh = 1.f; +#ifdef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED + hCPE->hStereoMdct->mdct_stereo_mode[0] = SMDCT_DUAL_MONO; + hCPE->hStereoMdct->mdct_stereo_mode[1] = SMDCT_DUAL_MONO; + hCPE->hStereoMdct->IGFStereoMode[0] = -1; + hCPE->hStereoMdct->IGFStereoMode[1] = -1; +#endif } /*-----------------------------------------------------------------* @@ -923,7 +961,11 @@ static void read_stereo_mode_and_bwidth( * BFI or NO_DATA frame: Use stereo parameters from last (active) frame *-----------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( st_ivas->bfi || st_ivas->hDecoderConfig->ivas_total_brate < IVAS_SID_5k2 ) +#else if ( st_ivas->bfi || st_ivas->hDecoderConfig->ivas_total_brate < IVAS_SID_4k4 ) +#endif { hCPE->element_mode = hCPE->last_element_mode; @@ -933,7 +975,11 @@ static void read_stereo_mode_and_bwidth( * SID frame: get element mode from SID side info *-----------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + else if ( st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_4k4 || st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_5k ) +#endif { switch ( st_ivas->sid_format ) { @@ -951,7 +997,7 @@ static void read_stereo_mode_and_bwidth( hCPE->element_mode = IVAS_CPE_MDCT; break; case SID_SBA_1TC: - assert( "Forbidden value for sid format in CPE (SBA 1TC), should have already been adressed earlier" ); + assert( "Forbidden value for SID format in CPE (SBA 1TC), should have already been adressed earlier" ); break; case SID_MASA_1TC: hCPE->element_mode = IVAS_SCE; diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index a103c9f45f..7d54047014 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -290,8 +290,11 @@ ivas_error ivas_dec( nchan_remapped = CPE_CHANNELS; ivas_sba_dirac_stereo_dec( st_ivas, output, output_frame ); } - else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && - ( ivas_total_brate > IVAS_SID_4k4 || ( ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) +#ifdef ALIGN_SID_SIZE + else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ( ivas_total_brate > IVAS_SID_5k2 || ( ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) +#else + else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ( ivas_total_brate > IVAS_SID_4k4 || ( ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) +#endif { nchan_remapped = 1; /* Only one channel transported */ } @@ -309,7 +312,7 @@ ivas_error ivas_dec( if ( st_ivas->sba_mode == SBA_MODE_SPAR && ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) { - ivas_sba_mix_matrix_determiner( st_ivas, output, nchan_remapped, output_frame ); + ivas_sba_mix_matrix_determiner( st_ivas->hSpar, output, st_ivas->bfi, nchan_remapped, output_frame ); } } @@ -345,7 +348,7 @@ ivas_error ivas_dec( } else /* SBA_MODE_SPAR */ { - ivas_sba_upmixer_renderer( st_ivas, output, nchan_remapped, output_frame ); /* Note: ivas_sba_linear_renderer() or ivas_dirac_dec() are called internally */ + ivas_sba_upmixer_renderer( st_ivas, output, output_frame ); /* Note: ivas_sba_linear_renderer() or ivas_dirac_dec() are called internally */ } } else if ( st_ivas->ivas_format == MC_FORMAT ) @@ -571,7 +574,11 @@ ivas_error ivas_dec( st_ivas->ini_frame++; } - if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_4k4 ) // VE: looks strange: ini_frame -> ini_frame_active ? +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_5k2 ) /* needed in MASA decoder in case the first active frame is BFI, and there were SID-frames decoded before */ +#else + if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_4k4 ) /* needed in MASA decoder in case the first active frame is BFI, and there were SID-frames decoded before */ +#endif { st_ivas->ini_active_frame++; } diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 074f635133..ef4527ea8f 100755 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -186,14 +186,15 @@ ivas_error ivas_dirac_dec_config( nchan_transport_orig = st_ivas->nchan_transport; if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR && !( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) { -#ifdef SBA_ORDER_BITSTREAM st_ivas->nchan_transport = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); -#else - st_ivas->nchan_transport = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); -#endif } + nchan_transport = st_ivas->nchan_transport; +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 ) +#endif { nchan_transport = 1; } @@ -201,10 +202,10 @@ ivas_error ivas_dirac_dec_config( if ( flag_config == DIRAC_RECONFIGURE && st_ivas->ivas_format == SBA_FORMAT ) { int16_t tmp1, tmp2, tmp3; -#ifdef SBA_ORDER_BITSTREAM - ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC ); +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3 ); #else - ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC ); + ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC ); #endif } @@ -763,7 +764,6 @@ ivas_error ivas_dirac_dec_config( mvs2s( DirAC_block_grouping, hDirAC->block_grouping, MAX_PARAM_SPATIAL_SUBFRAMES + 1 ); - if ( flag_config == DIRAC_OPEN ) { hDirAC->dirac_md_buffer_length = 0; @@ -1287,7 +1287,11 @@ void ivas_dirac_dec_read_BS( int16_t next_bit_pos_orig; *nb_bits = 0; +#ifdef ALIGN_SID_SIZE + if ( !st->bfi && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( !st->bfi && ivas_total_brate > IVAS_SID_4k4 ) +#endif { next_bit_pos_orig = st->next_bit_pos; st->next_bit_pos = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); @@ -1296,14 +1300,19 @@ void ivas_dirac_dec_read_BS( b = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; +#ifndef ALIGN_SID_SIZE if ( sba_mode == SBA_MODE_SPAR ) { + if ( ivas_total_brate == IVAS_SID_5k ) { b = 1; } } else +#else + if ( sba_mode != SBA_MODE_SPAR ) +#endif { assert( ( b == 0 ) || ( hQMetaData->q_direction[0].cfg.start_band > 0 ) ); } @@ -1391,12 +1400,23 @@ void ivas_dirac_dec_read_BS( st->next_bit_pos = next_bit_pos_orig; } +#ifdef ALIGN_SID_SIZE + else if ( !st->bfi && ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( !st->bfi && ivas_total_brate == IVAS_SID_4k4 ) +#endif { next_bit_pos_orig = st->next_bit_pos; /* subtract mode signaling bits, since bitstream was moved after mode reading */ st->next_bit_pos = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 - SID_FORMAT_NBITS ); +#ifdef ALIGN_SID_SIZE + /* 1 bit flag for SPAR/DirAC, already read in read format function */ + b = st->bit_stream[( st->next_bit_pos )--]; + ( *nb_bits )++; + hQMetaData->sba_inactive_mode = 1; + orig_dirac_bands = hQMetaData->q_direction[0].cfg.nbands; +#endif /* if we start with a SID frame, we need to init the azi/ele arrays.*/ if ( st->ini_frame == 0 ) @@ -1411,8 +1431,39 @@ void ivas_dirac_dec_read_BS( } } +#ifdef ALIGN_SID_SIZE + *nb_bits += ivas_qmetadata_dec_sid_decode( hQMetaData, st->bit_stream, &( st->next_bit_pos ), 0, NULL, SBA_FORMAT, sba_mode ); + + if ( sba_mode == SBA_MODE_SPAR ) + { + for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) + { + hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].azimuth[i] = hQMetaData->q_direction[0].band_data[1].azimuth[0]; + hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].elevation[i] = hQMetaData->q_direction[0].band_data[1].elevation[0]; + hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].energy_ratio[i] = hQMetaData->q_direction[0].band_data[1].energy_ratio[0]; + } + for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) + { + for ( j = orig_dirac_bands - 2; j >= 0; j-- ) + { + hQMetaData->q_direction[0].band_data[j].azimuth[i] = hQMetaData->q_direction[0].band_data[0].azimuth[0]; + hQMetaData->q_direction[0].band_data[j].elevation[i] = hQMetaData->q_direction[0].band_data[0].elevation[0]; + hQMetaData->q_direction[0].band_data[j].energy_ratio[i] = hQMetaData->q_direction[0].band_data[0].energy_ratio[0]; + } + } + + hQMetaData->q_direction->cfg.nbands = orig_dirac_bands; + } + else + { + *nb_bits += SID_FORMAT_NBITS; + } +#else *nb_bits += ivas_qmetadata_dec_sid_decode( hQMetaData, st->bit_stream, &( st->next_bit_pos ), 0, NULL, SBA_FORMAT, SBA_MODE_DIRAC ); + *nb_bits += SID_FORMAT_NBITS; +#endif + st->next_bit_pos = next_bit_pos_orig; } @@ -1458,7 +1509,11 @@ void ivas_qmetadata_to_dirac( q_direction = &( hQMetaData->q_direction[0] ); hDirAC->numSimultaneousDirections = hQMetaData->no_directions; +#ifdef ALIGN_SID_SIZE + if ( hMasa != NULL && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( hMasa != NULL && ivas_total_brate > IVAS_SID_4k4 ) +#endif { band_mapping = hMasa->data.band_mapping; @@ -1534,7 +1589,11 @@ void ivas_qmetadata_to_dirac( nbands = hDirAC->band_grouping[hDirAC->hConfig->nbands]; band_grouping = hDirAC->band_grouping; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate <= IVAS_SID_5k2 && sba_mode != SBA_MODE_SPAR ) +#else if ( ivas_total_brate <= IVAS_SID_4k4 && sba_mode != SBA_MODE_SPAR ) +#endif { /* SID/zero-frame: 1 direction, 5 bands, nblocks re-generated out of SID decoder*/ start_band = 0; @@ -1630,7 +1689,11 @@ void ivas_qmetadata_to_dirac( ele = min( 90, ele ); ele = max( -90, ele ); +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 && q_direction->coherence_band_data != NULL ) +#else if ( ivas_total_brate > IVAS_SID_4k4 && q_direction->coherence_band_data != NULL ) +#endif { hDirAC->spreadCoherence[tmp_write_idx_band][b] = q_direction->coherence_band_data[qBand_idx].spread_coherence[block] / 255.0f; } @@ -1639,7 +1702,11 @@ void ivas_qmetadata_to_dirac( hDirAC->spreadCoherence[tmp_write_idx_band][b] = 0.0f; } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 && q_direction->coherence_band_data != NULL ) +#else if ( ivas_total_brate > IVAS_SID_4k4 && q_direction->coherence_band_data != NULL ) +#endif { hDirAC->surroundingCoherence[tmp_write_idx_band][b] = hQMetaData->surcoh_band_data[qBand_idx].surround_coherence[0] / 255.0f; } @@ -1794,7 +1861,11 @@ void ivas_dirac_dec( #ifdef DEBUG_MODE_DIRAC { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + int16_t n, tmp[1 * L_FRAME48k]; +#else int16_t n, tmp[DIRAC_MAX_TRANS_CHANS * L_FRAME48k]; +#endif char file_name[50] = { 0 }; const int16_t output_frame = st_ivas->output_Fs / FRAMES_PER_SEC; diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index b12aa28e40..f084b25b9b 100755 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -119,20 +119,18 @@ ivas_error ivas_dec_setup( num_bits_read += SBA_PLANAR_BITS; /* read Ambisonic (SBA) order */ -#ifndef SBA_ORDER_BITSTREAM st_ivas->sba_order = st_ivas->bit_stream[num_bits_read + 1]; st_ivas->sba_order += 2 * st_ivas->bit_stream[num_bits_read]; -#else - st_ivas->hDecoderConfig->sba_order = st_ivas->bit_stream[num_bits_read + 1]; - st_ivas->hDecoderConfig->sba_order += 2 * st_ivas->bit_stream[num_bits_read]; - st_ivas->sba_analysis_order = st_ivas->hDecoderConfig->sba_order; - if ( ivas_total_brate < IVAS_256k ) - { - st_ivas->sba_analysis_order = 1; - } -#endif + + /* set Ambisonic (SBA) order used for analysis and coding */ + st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); + num_bits_read += SBA_ORDER_BITS; +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_4k4 ) +#endif { if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) { @@ -141,8 +139,8 @@ ivas_error ivas_dec_setup( } else { -#ifndef SBA_ORDER_BITSTREAM - ivas_sba_config( ivas_total_brate, st_ivas->sba_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); #else ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); #endif @@ -164,7 +162,11 @@ ivas_error ivas_dec_setup( if ( st_ivas->ini_frame > 0 ) { /* reconfigure in case a change of operation mode is detected */ +#ifdef ALIGN_SID_SIZE + if ( ( ivas_total_brate > IVAS_SID_5k2 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) || ( st_ivas->ini_active_frame == 0 ) ) +#else if ( ( ivas_total_brate > IVAS_SID_4k4 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) || ( st_ivas->ini_active_frame == 0 ) ) +#endif { if ( st_ivas->ini_active_frame == 0 && ivas_total_brate != FRAME_NO_DATA && ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->nCPE == 1 ) { @@ -223,7 +225,11 @@ ivas_error ivas_dec_setup( } } } +#ifdef ALIGN_SID_SIZE + else if ( ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) +#endif { switch ( st_ivas->sid_format ) { @@ -359,7 +365,11 @@ static ivas_error ivas_read_format( break; } } +#ifdef ALIGN_SID_SIZE + else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_4k4 ) +#endif { /* read IVAS format in SID frame */ idx = 0; @@ -412,27 +422,45 @@ static ivas_error ivas_read_format( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format ); } +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == SBA_FORMAT ) + { + int16_t tc_mode_offset; + tc_mode_offset = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); + idx = st_ivas->bit_stream[tc_mode_offset]; + // TBD: needs more work for HOA + if ( st_ivas->sba_analysis_order == 0 ) + { + st_ivas->sba_analysis_order = 1; + } + if ( idx == 1 ) + { + st_ivas->sba_mode = SBA_MODE_SPAR; + } + else + { + st_ivas->sba_mode = SBA_MODE_DIRAC; + } + } +#endif + /* reset bitstream handle to avoid BER detection after reading the 2400 kbps for ch0 */ st_ivas->bit_stream += ( *num_bits_read ); ( *num_bits_read ) = 0; } +#ifndef ALIGN_SID_SIZE else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k ) { int16_t tc_mode_offset; tc_mode_offset = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); idx = st_ivas->bit_stream[tc_mode_offset]; + // TBD: needs more work for HOA -#ifndef SBA_ORDER_BITSTREAM - if ( st_ivas->sba_order == 0 ) - { - st_ivas->sba_order = 1; - } -#else if ( st_ivas->sba_analysis_order == 0 ) { st_ivas->sba_analysis_order = 1; } -#endif + if ( idx == 0 ) { st_ivas->sid_format = SID_SBA_1TC; @@ -448,6 +476,7 @@ static ivas_error ivas_read_format( st_ivas->element_mode_init = IVAS_CPE_MDCT; } } +#endif else { /* In SID/NO_DATA frames, use the previous frame IVAS format */ @@ -526,29 +555,6 @@ ivas_error ivas_init_decoder_front( error = IVAS_ERR_OK; -#ifdef DEBUGGING - st_ivas->noClipping = 0; -#endif - - /* Custom loudspeaker layout structure */ - st_ivas->hLsSetupCustom = NULL; - - /* TD renderer HRTF data structure */ - st_ivas->hHrtfTD = NULL; - - /* Head track data structure */ - st_ivas->hHeadTrackData = NULL; - - /* Renderer configuration structure */ - st_ivas->hRenderConfig = NULL; - - /* HRTF binauralization latency in ns */ - st_ivas->binaural_latency_ns = 0; - -#ifdef DEBUGGING - st_ivas->hDecoderConfig->force_rend = -1; -#endif - /*-----------------------------------------------------------------* * Resets *-----------------------------------------------------------------*/ @@ -561,9 +567,16 @@ ivas_error ivas_init_decoder_front( st_ivas->mc_mode = MC_MODE_NONE; st_ivas->sba_mode = SBA_MODE_NONE; - st_ivas->hLimiter = NULL; - st_ivas->hoa_dec_mtx = NULL; + st_ivas->sba_dirac_stereo_flag = 0; + /* HRTF binauralization latency in ns */ + st_ivas->binaural_latency_ns = 0; + +#ifdef DEBUGGING + st_ivas->noClipping = 0; + + st_ivas->hDecoderConfig->force_rend = -1; +#endif /*-------------------------------------------------------------------* * Allocate and initialize Custom loudspeaker layout handle @@ -710,58 +723,6 @@ ivas_error ivas_init_decoder( } } - /*-----------------------------------------------------------------* - * Dummy pointers to decoder handles - *-----------------------------------------------------------------*/ - - for ( i = 0; i < MAX_SCE; i++ ) - { - st_ivas->hSCE[i] = NULL; - } - - for ( i = 0; i < MAX_CPE; i++ ) - { - st_ivas->hCPE[i] = NULL; - } - - /* ISm metadata handles */ - for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) - { - st_ivas->hIsmMetaData[n] = NULL; - } - - /* DirAC handle */ - st_ivas->hDirAC = NULL; - st_ivas->sba_dirac_stereo_flag = 0; - - /* SPAR handle */ - st_ivas->hSpar = NULL; - - /* MASA decoder structure */ - st_ivas->hMasa = NULL; - - /* Q metadata handle */ - st_ivas->hQMetaData = NULL; - - /* MCT handles */ - st_ivas->hMCT = NULL; - st_ivas->hParamMC = NULL; - - /* LFE handle */ - st_ivas->hLFE = NULL; - - /* renderers handles */ - st_ivas->hBinRenderer = NULL; /* fastconf binaural renderer */ - st_ivas->hDiracDecBin = NULL; /* parametric binaural renderer */ - st_ivas->hLsSetUpConversion = NULL; /* MC converter */ - st_ivas->hEFAPdata = NULL; /* EFAP handle */ - st_ivas->hVBAPdata = NULL; /* VBAP handle */ - st_ivas->hIsmRendererData = NULL; /* ISm renderer */ - st_ivas->hBinRendererTd = NULL; /* TD ISm binaural renderer */ - st_ivas->hMonoDmxRenderer = NULL; /* Mono downmix renderer */ - st_ivas->hHrtf = NULL; /* Crend hrtf data */ - st_ivas->hCrend = NULL; /* Crend renderer */ - /*-----------------------------------------------------------------* * Allocate and initalize SCE/CPE and other handles *-----------------------------------------------------------------*/ @@ -798,6 +759,7 @@ ivas_error ivas_init_decoder( { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); } + /* init EFAP for custom LS output and set hTransSetup */ if ( output_config == AUDIO_CONFIG_LS_CUSTOM ) { @@ -844,11 +806,10 @@ ivas_error ivas_init_decoder( } else if ( st_ivas->ivas_format == SBA_FORMAT || st_ivas->ivas_format == MASA_FORMAT ) { + + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { - if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) - { - return error; - } + return error; } if ( st_ivas->ivas_format == MASA_FORMAT ) @@ -866,6 +827,7 @@ ivas_error ivas_init_decoder( { return error; } + if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC && st_ivas->hOutSetup.is_loudspeaker_setup ) { if ( ( error = ivas_sba_get_hoa_dec_matrix( st_ivas->hOutSetup, &st_ivas->hoa_dec_mtx, st_ivas->hIntSetup.ambisonics_order ) ) != IVAS_ERR_OK ) @@ -873,9 +835,10 @@ ivas_error ivas_init_decoder( return error; } } -#ifndef SBA_ORDER_BITSTREAM - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, - st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + #else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) @@ -883,12 +846,14 @@ ivas_error ivas_init_decoder( { return error; } + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) { if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } + for ( k = 0; k < DIRAC_MAX_NBANDS; k++ ) { st_ivas->hSpar->dirac_to_spar_md_bands[k] = st_ivas->hDirAC->dirac_to_spar_md_bands[k]; @@ -901,20 +866,14 @@ ivas_error ivas_init_decoder( st_ivas->hSpar->enc_param_start_band = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); - ivas_dirac_config_bands( - band_grouping, - IVAS_MAX_NUM_BANDS, - (int16_t) ( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), - st_ivas->hSpar->dirac_to_spar_md_bands, - st_ivas->hQMetaData->useLowerBandRes, - st_ivas->hSpar->enc_param_start_band, - 0 ); + ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, (int16_t) ( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), + st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); } } else { -#ifndef SBA_ORDER_BITSTREAM - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) #endif @@ -963,6 +922,7 @@ ivas_error ivas_init_decoder( { return error; } + reset_indices_dec( st_ivas->hSCE[sce_id]->hCoreCoder[0] ); } @@ -973,7 +933,6 @@ ivas_error ivas_init_decoder( return error; } - for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1044,7 +1003,6 @@ ivas_error ivas_init_decoder( return error; } - for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1066,12 +1024,12 @@ ivas_error ivas_init_decoder( return error; } } + if ( ( error = ivas_param_mc_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } - for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) { if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) @@ -1079,7 +1037,6 @@ ivas_error ivas_init_decoder( return error; } - for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1108,7 +1065,6 @@ ivas_error ivas_init_decoder( return error; } - st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && output_config == AUDIO_CONFIG_STEREO ); if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_MCMASA_MONO_STEREO ) @@ -1149,6 +1105,7 @@ ivas_error ivas_init_decoder( return error; } } + reset_indices_dec( st_ivas->hSCE[sce_id]->hCoreCoder[0] ); } @@ -1157,6 +1114,7 @@ ivas_error ivas_init_decoder( if ( st_ivas->hOutSetup.separateChannelEnabled ) { st_ivas->element_mode_init = IVAS_CPE_MDCT; + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate - st_ivas->hSCE[0]->element_brate ) ) != IVAS_ERR_OK ) { return error; @@ -1165,11 +1123,13 @@ ivas_error ivas_init_decoder( else { st_ivas->element_mode_init = IVAS_CPE_MDCT; + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) { return error; } } + for ( n = 0; n < CPE_CHANNELS; n++ ) { reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); @@ -1257,6 +1217,7 @@ ivas_error ivas_init_decoder( { return error; } + if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) { if ( ( st_ivas->hCrend = (CREND_HANDLE) count_malloc( sizeof( CREND_DATA ) ) ) == NULL ) @@ -1363,9 +1324,8 @@ ivas_error ivas_init_decoder( * Allocate and initialize limiter struct *-----------------------------------------------------------------*/ - { - st_ivas->hLimiter = ivas_limiter_open( hDecoderConfig->nchan_out, output_Fs ); - } + st_ivas->hLimiter = ivas_limiter_open( hDecoderConfig->nchan_out, output_Fs ); + return error; } @@ -1547,9 +1507,9 @@ void ivas_initialize_handles_dec( st_ivas->hCPE[i] = NULL; } - st_ivas->nSCE = 0; - st_ivas->nCPE = 0; + st_ivas->bit_stream = NULL; st_ivas->mem_hp20_out = NULL; + st_ivas->hLimiter = NULL; /* ISM metadata handles */ for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) @@ -1558,7 +1518,6 @@ void ivas_initialize_handles_dec( } /* spatial coding handles */ - st_ivas->hIsmRendererData = NULL; st_ivas->hDirAC = NULL; st_ivas->hSpar = NULL; st_ivas->hMasa = NULL; @@ -1578,11 +1537,12 @@ void ivas_initialize_handles_dec( st_ivas->hMonoDmxRenderer = NULL; st_ivas->hCrend = NULL; st_ivas->hHrtf = NULL; + st_ivas->hoa_dec_mtx = NULL; st_ivas->hHeadTrackData = NULL; st_ivas->hHrtfTD = NULL; - st_ivas->hLimiter = NULL; st_ivas->hLsSetupCustom = NULL; + st_ivas->hRenderConfig = NULL; return; } @@ -1850,7 +1810,6 @@ void ivas_init_dec_get_num_cldfb_instances( { *numCldfbAnalyses = st_ivas->hSpar->hFbMixer->fb_cfg->num_in_chans; - if ( st_ivas->hOutSetup.is_loudspeaker_setup && st_ivas->renderer_type == RENDERER_DIRAC ) { *numCldfbSyntheses = st_ivas->hOutSetup.nchan_out_woLFE; @@ -2056,11 +2015,10 @@ static ivas_error doSanityChecks_IVAS( #endif #ifdef DEBUGGING - if ( ( st_ivas->hHrtfTD != NULL || st_ivas->hDecoderConfig->force_rend == FORCE_TD_RENDERER ) && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) || ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode != MC_MODE_MCT ) ) ) + if ( ( st_ivas->hDecoderConfig->Opt_HRTF_binary || st_ivas->hDecoderConfig->force_rend == FORCE_TD_RENDERER ) && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) || ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode != MC_MODE_MCT ) ) ) #else - if ( st_ivas->hHrtfTD != NULL && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) ) ) + if ( st_ivas->hDecoderConfig->Opt_HRTF_binary && ( ( st_ivas->ivas_format != MC_FORMAT && st_ivas->ivas_format != ISM_FORMAT ) || output_config != AUDIO_CONFIG_BINAURAL || ( st_ivas->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) ) ) #endif - { return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration: Time Domain object renderer not supported in this configuration" ); } diff --git a/lib_dec/ivas_ism_metadata_dec.c b/lib_dec/ivas_ism_metadata_dec.c index 9d940705f3..dee9b6489f 100644 --- a/lib_dec/ivas_ism_metadata_dec.c +++ b/lib_dec/ivas_ism_metadata_dec.c @@ -78,7 +78,11 @@ ivas_error ivas_ism_metadata_dec( wmops_sub_start( "ism_meta_dec" ); +#ifdef ALIGN_SID_SIZE + if ( ism_total_brate == IVAS_SID_5k2 || ism_total_brate == FRAME_NO_DATA ) +#else if ( ism_total_brate == IVAS_SID_4k4 || ism_total_brate == FRAME_NO_DATA ) +#endif { /* no metadata decoding in CNG */ for ( ch = 0; ch < *nchan_transport; ch++ ) @@ -87,7 +91,11 @@ ivas_error ivas_ism_metadata_dec( } /* set padding bits as metadata bits to keep later bitrate checks valid */ +#ifdef ALIGN_SID_SIZE + nb_bits_metadata[0] = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC; +#else nb_bits_metadata[0] = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC; +#endif #ifdef DEBUGGING /* sanity check */ diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index 108d406845..d394c3c729 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1027,7 +1027,11 @@ ivas_error ivas_ism_dec_config( /* store last frame ISM mode */ last_ism_mode = st_ivas->ism_mode; +#ifdef ALIGN_SID_SIZE + if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_5k2 && ivas_total_brate != FRAME_NO_DATA ) +#else if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_4k4 && ivas_total_brate != FRAME_NO_DATA ) +#endif { /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( num_obj, ivas_total_brate ); @@ -1052,7 +1056,11 @@ ivas_error ivas_ism_dec_config( } } } +#ifdef ALIGN_SID_SIZE + else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_4k4 ) +#endif { st_ivas->nchan_transport = num_obj; } diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index 91b79a614e..b4aa18f2a1 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -115,7 +115,11 @@ ivas_error ivas_masa_decode( *nb_bits_read = 0; next_bit_pos_orig = st->next_bit_pos; +#ifdef ALIGN_SID_SIZE + if ( masa_brate == IVAS_SID_5k2 ) +#else if ( masa_brate == IVAS_SID_4k4 ) +#endif { st->next_bit_pos = (int16_t) ( ( masa_brate / FRAMES_PER_SEC ) - 1 - SID_FORMAT_NBITS ); } @@ -124,7 +128,11 @@ ivas_error ivas_masa_decode( st->next_bit_pos = (int16_t) ( ( masa_brate / FRAMES_PER_SEC ) - 1 ); } +#ifdef ALIGN_SID_SIZE + if ( !st->bfi && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( !st->bfi && ivas_total_brate > IVAS_SID_4k4 ) +#endif { if ( !( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_MCMASA ) ) { @@ -216,7 +224,11 @@ ivas_error ivas_masa_decode( replicate_subframes( hQMetaData ); } } +#ifdef ALIGN_SID_SIZE + else if ( !st->bfi && ivas_format == MASA_FORMAT && ivas_total_brate == IVAS_SID_5k2 ) +#else else if ( !st->bfi && ivas_format == MASA_FORMAT && ivas_total_brate == IVAS_SID_4k4 ) +#endif { if ( hQMetaData->q_direction == NULL ) { @@ -229,7 +241,11 @@ ivas_error ivas_masa_decode( ivas_masa_set_elements( ivas_total_brate, st_ivas->mc_mode, st_ivas->nchan_transport, hQMetaData, &st_ivas->element_mode_init, &st_ivas->nSCE, &st_ivas->nCPE ); +#ifdef ALIGN_SID_SIZE + hQMetaData->metadata_max_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC; +#else hQMetaData->metadata_max_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC; +#endif if ( ( error = ivas_qmetadata_allocate_memory( hQMetaData, 5, 1, 0 ) ) != IVAS_ERR_OK ) { @@ -285,7 +301,11 @@ ivas_error ivas_masa_decode( { st_ivas->hCPE[0]->hStereoDft->hConfig->force_mono_transmission = ivas_total_brate < MASA_STEREO_MIN_BITRATE ? 1 : 0; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( ivas_total_brate <= IVAS_SID_4k4 ) +#endif { st_ivas->hCPE[0]->hStereoDft->hConfig->force_mono_transmission = 0; } @@ -295,11 +315,19 @@ ivas_error ivas_masa_decode( { st_ivas->hCPE[0]->hCoreCoder[0]->masa_sid_format = 0; +#ifdef ALIGN_SID_SIZE + if ( st_ivas->hDecoderConfig->last_ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( st_ivas->hDecoderConfig->last_ivas_total_brate <= IVAS_SID_4k4 ) +#endif { st_ivas->hCPE[0]->hCoreCoder[0]->masa_sid_format = 1; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate >= IVAS_SID_5k2 ) +#else if ( ivas_total_brate >= IVAS_SID_4k4 ) +#endif { st_ivas->hCPE[0]->element_brate = ivas_total_brate; } @@ -479,7 +507,11 @@ void ivas_masa_prerender( const int16_t output_frame /* i : output frame length per channel */ ) { +#ifdef ALIGN_SID_SIZE + if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_transport == 2 && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) +#else if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_transport == 2 && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) +#endif { if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) { diff --git a/lib_dec/ivas_mc_param_dec.c b/lib_dec/ivas_mc_param_dec.c index e1df8f2a7d..29e2ce4002 100644 --- a/lib_dec/ivas_mc_param_dec.c +++ b/lib_dec/ivas_mc_param_dec.c @@ -263,7 +263,6 @@ ivas_error ivas_param_mc_dec_open( return error; } - /* convert the ls conv dmx matrix into column order matrix format (nchan_out_cldfb x nchan_out) */ if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_LS_CONV_COV || hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) { @@ -297,6 +296,7 @@ ivas_error ivas_param_mc_dec_open( matrix_product( hParamMC->ls_conv_dmx_matrix, nchan_out_cov, nchan_out_transport, 0, ivas_param_mc_conf[config_index].dmx_fac, nchan_out_transport, nchan_transport, 0, proto_matrix ); + if ( hParamMC->synthesis_conf == PARAM_MC_SYNTH_MONO_STEREO ) { proto_mtx_norm = 1.f; diff --git a/lib_dec/ivas_mct_dec_mct.c b/lib_dec/ivas_mct_dec_mct.c index 00eff03dac..ec19acb602 100644 --- a/lib_dec/ivas_mct_dec_mct.c +++ b/lib_dec/ivas_mct_dec_mct.c @@ -283,7 +283,11 @@ void mctStereoIGF_dec( /* stereo IGF decoding */ assert( ( sts[0]->core == sts[1]->core ) || ( hMCT->hBlockData[b]->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi, 1 /* <- is_mct */ ); +#else decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi ); +#endif } else { diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index ed5114c651..d05024c565 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -102,7 +102,7 @@ static void dec_prm_tcx_sidebits( int16_t p_param[NB_DIV], /* o : pointer to parameters for next round of bs reading*/ int16_t nTnsBitsTCX10[NB_DIV], /* o : number of TNS bits per TCX10 subframe */ Decoder_State *st0, /* i/o: core decoder state handle - for bitstream */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t MCT_flag, #endif const int16_t ch /* i : channel */ @@ -134,7 +134,7 @@ static void dec_prm_tcx_sidebits( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE getTCXMode( st, st0, MCT_flag ); #else getTCXMode( st, st0 ); @@ -381,7 +381,7 @@ void ivas_mdct_dec_side_bits_frame_channel( tmp = 3; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE dec_prm_tcx_sidebits( param[ch], st, ( ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) ? sts[0]->hTcxDec->tnsActive : NULL ), p_param[ch], nTnsBitsTCX10[ch], st0, MCT_flag, tmp ); #else dec_prm_tcx_sidebits( param[ch], st, ( ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) ? sts[0]->hTcxDec->tnsActive : NULL ), p_param[ch], nTnsBitsTCX10[ch], st0, tmp ); @@ -481,7 +481,7 @@ void ivas_mdct_core_invQ( const int16_t *prm_sqQ; int16_t L_frameTCX_global[CPE_CHANNELS]; float tmp_ms_sig[CPE_CHANNELS][N_MAX]; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float concealment_noise[CPE_CHANNELS][L_FRAME48k]; TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode_bfi; #endif @@ -490,7 +490,7 @@ void ivas_mdct_core_invQ( sts = hCPE->hCoreCoder; bfi = sts[0]->bfi; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE noise_gen_mode_bfi = -1; #endif @@ -514,7 +514,7 @@ void ivas_mdct_core_invQ( sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 1 ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi ) { if ( sts[0]->core == sts[1]->core ) @@ -728,15 +728,11 @@ void ivas_mdct_core_invQ( } nf_seed = 0; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - decoder_tcx_invQ( st, prm[ch], Aq[ch], Aind[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, xn_buf, &fUseTns[ch][k], &tnsData[ch][k], &gain_tcx, &prm_sqQ, &nf_seed, bfi, isMCT, k ); -#else decoder_tcx_invQ( st, prm[ch], Aq[ch], Aind[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, xn_buf, &fUseTns[ch][k], &tnsData[ch][k], &gain_tcx, &prm_sqQ, &nf_seed, bfi, k ); -#endif mvr2r( x[ch][k], x_0[ch][k], L_frameTCX[ch] ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi && !isMCT ) { TonalMdctConceal_create_concealment_noise( concealment_noise[ch], hCPE, L_frameTCX[ch], L_frame[ch], ch, k, st->core, st->hTcxDec->cummulative_damping_tcx, noise_gen_mode_bfi ); @@ -861,7 +857,7 @@ void ivas_mdct_core_reconstruct( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, L_frameTCX[ch] ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_post( st, synth, synthFB, NULL, bfi, isMCT ); #else decoder_tcx_post( st, synth, synthFB, NULL, bfi ); @@ -873,7 +869,7 @@ void ivas_mdct_core_reconstruct( /* PLC: [TCX: TD PLC] */ if ( isMCT ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); #else con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); @@ -881,7 +877,7 @@ void ivas_mdct_core_reconstruct( } else { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], hCPE->hStereoMdct->lastCoh, &sts[0]->seed_acelp, ( sts[1]->core != ACELP_CORE ) ? 1 : 0, &st->hFdCngDec->hFdCngCom->A_cng[0] ); #else con_tcx( st, &synthFB[0], hCPE->hStereoMdct->lastCoh, &sts[0]->seed_acelp, ( sts[1]->core != ACELP_CORE ) ? 1 : 0 ); @@ -1064,34 +1060,14 @@ void ivas_mdct_core_tns_ns( { sns_interpolate_scalefactors( &sns_int_scf[0], &Aq[ch][k * M], DEC ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( isMCT && st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) #else if ( isMCT && st->hTonalMDCTConc != NULL ) #endif { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - int16_t infoIGFStartLine; - - if ( st->igf == 0 ) - { - if ( st->narrowBand == 0 ) - { - /* minimum needed for output with sampling rates lower then the - nominal sampling rate */ - infoIGFStartLine = min( L_frameTCX[ch], L_frame[ch] ); - } - else - { - infoIGFStartLine = L_frameTCX[ch]; - } - } - else - { - infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX[ch] ); - } - - TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], infoIGFStartLine ); +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], get_igf_startline( st, L_frame[ch], L_frameTCX[ch] ) ); #else TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0] ); #endif @@ -1101,17 +1077,18 @@ void ivas_mdct_core_tns_ns( { if ( st->hTonalMDCTConc != NULL ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - if ( st->hTcxDec->cummulative_damping_tcx != 1.f ) +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( !isMCT && st->hTcxDec->cummulative_damping_tcx != 1.f ) { - float *scf_last; - float *scf_bg; - float fade_in; - float fade_out; + float *scf_last, *scf_bg; + float fade_in, fade_out; scf_last = &st->hTonalMDCTConc->lastBlockData.scaleFactors[0]; scf_bg = &st->hTonalMDCTConc->scaleFactorsBackground[0]; - fade_out = st->hTcxDec->cummulative_damping_tcx; + + st->hTonalMDCTConc->scf_fadeout *= 0.95f; + + fade_out = st->hTonalMDCTConc->scf_fadeout; fade_in = 1 - fade_out; for ( int16_t i = 0; i < st->hTonalMDCTConc->nScaleFactors; i++ ) @@ -1121,6 +1098,7 @@ void ivas_mdct_core_tns_ns( } else { + st->hTonalMDCTConc->scf_fadeout = 1.0f; mvr2r( st->hTonalMDCTConc->lastBlockData.scaleFactors, &sns_int_scf[0], st->hTonalMDCTConc->nScaleFactors ); } #else diff --git a/lib_dec/ivas_out_setup_conversion.c b/lib_dec/ivas_out_setup_conversion.c index c8008fa129..9ed27e56c3 100644 --- a/lib_dec/ivas_out_setup_conversion.c +++ b/lib_dec/ivas_out_setup_conversion.c @@ -312,8 +312,6 @@ ivas_error ivas_ls_setup_conversion_open( int32_t output_Fs; int16_t nchan_out; - wmops_sub_start( "LS_Renderer" ); - output_Fs = st_ivas->hDecoderConfig->output_Fs; nchan_out = st_ivas->hDecoderConfig->nchan_out; output_frame = (int16_t) ( output_Fs / FRAMES_PER_SEC ); @@ -1072,8 +1070,6 @@ void ivas_ls_setup_conversion_process_mdct_param_mc( } } - wmops_sub_end(); - return; } diff --git a/lib_dec/ivas_qmetadata_dec.c b/lib_dec/ivas_qmetadata_dec.c index 628e4ca6b8..15f33799d6 100644 --- a/lib_dec/ivas_qmetadata_dec.c +++ b/lib_dec/ivas_qmetadata_dec.c @@ -721,17 +721,32 @@ int16_t ivas_qmetadata_dec_sid_decode( { if ( sba_mode == SBA_MODE_SPAR ) { +#ifdef ALIGN_SID_SIZE + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = (int16_t) ( 5000 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ +#else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ +#endif } else { /* keep 13.2 and 16.4 sid bitrate as 4.4 kbps for now*/ +#ifdef ALIGN_SID_SIZE + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } } else { +#ifdef ALIGN_SID_SIZE + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } start_index = *index; @@ -850,6 +865,20 @@ int16_t ivas_qmetadata_dec_sid_decode( } } } +#ifdef ALIGN_SID_SIZE + /* TODO: temporary hack to keep BE */ + if ( ivas_format == SBA_FORMAT ) + { + if ( sba_mode != SBA_MODE_SPAR ) + { + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - 1; /* -1 for spar/dirac indicator*/ + } + } + else + { + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + } +#endif /*Read filling bits*/ while ( start_index - *index < metadata_sid_bits ) @@ -860,9 +889,9 @@ int16_t ivas_qmetadata_dec_sid_decode( #ifdef DEBUG_MODE_QMETADATA fprintf( pF, "frame %d: all %d ", frame, start_index - *index ); - fprintf( pF_azi, "frame %d sid: ", frame ); - fprintf( pF_ele, "frame %d sid: ", frame ); - fprintf( pF_ratio, "frame %d sid: ", frame ); + fprintf( pF_azi, "frame %d SID: ", frame ); + fprintf( pF_ele, "frame %d SID: ", frame ); + fprintf( pF_ratio, "frame %d SID: ", frame ); for ( b = start_band; b < nbands; b++ ) { diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 4aaddd028b..6d91bd23f4 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -85,13 +85,15 @@ ivas_error ivas_sba_dec_reconfigure( numCldfbAnalyses = 0; sba_total_brate = ivas_total_brate; - nSCE_old = st_ivas->nSCE; nCPE_old = st_ivas->nCPE; nchan_transport_old = st_ivas->nchan_transport; sba_dirac_stereo_flag_old = st_ivas->sba_dirac_stereo_flag; -#ifndef SBA_ORDER_BITSTREAM - ivas_sba_config( sba_total_brate, st_ivas->sba_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); + + st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); + +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); #else ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); #endif @@ -110,8 +112,9 @@ ivas_error ivas_sba_dec_reconfigure( if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ); -#ifndef SBA_ORDER_BITSTREAM - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) + +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) #else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) #endif @@ -122,15 +125,13 @@ ivas_error ivas_sba_dec_reconfigure( else { int16_t sba_order_internal; -#ifndef SBA_ORDER_BITSTREAM - sba_order_internal = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); -#else + sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); -#endif ivas_spar_config( st_ivas->hDecoderConfig->ivas_total_brate, sba_order_internal, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->hSpar->core_nominal_brate, st_ivas->sid_format ); -#ifndef SBA_ORDER_BITSTREAM - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_order, st_ivas->sba_planar, - st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + #else if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) @@ -140,8 +141,11 @@ ivas_error ivas_sba_dec_reconfigure( } } - if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && - ( last_ivas_total_brate > IVAS_SID_4k4 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#ifdef ALIGN_SID_SIZE + if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_5k2 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#else + if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_4k4 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#endif { if ( st_ivas->hDirAC != NULL ) { @@ -513,7 +517,11 @@ ivas_error ivas_sba_dec_reconfigure( } /* special case, if the decoder goes from 1TC DTX to 2TC active frame (in case the bitstream started with an SBA SID frame), allocate DTX memories */ +#ifdef ALIGN_SID_SIZE + if ( last_ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE >= 1 ) +#else if ( last_ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE >= 1 ) +#endif { if ( ( error = initMdctStereoDtxData( st_ivas->hCPE[0] ) ) != IVAS_ERR_OK ) { @@ -557,47 +565,21 @@ ivas_error ivas_sba_dec_reconfigure( /*-------------------------------------------------------------------* * ivas_sba_upmixer_renderer() * - * SBA upmix rendering + * SBA upmix & rendering *-------------------------------------------------------------------*/ void ivas_sba_upmixer_renderer( Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ float output[][L_FRAME48k], /* i/o: transport/output audio channels */ - const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ const int16_t output_frame /* i : output frame length */ ) { - int16_t i, ch, nchan_out; + int16_t i, nchan_internal; float temp; - int16_t nchan_internal; wmops_sub_start( "ivas_sba_upmixer_renderer" ); -#ifndef SBA_ORDER_BITSTREAM - nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); -#else - nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); -#endif - nchan_out = st_ivas->hDecoderConfig->nchan_out; - for ( ch = 0; ch < nchan_remapped; ch++ ) - { - for ( i = 0; i < output_frame; i++ ) - { - temp = output[ch][i]; - temp = floorf( temp + 0.5f ); - - if ( temp > MAX16B_FLT ) - { - temp = MAX16B_FLT; - } - else if ( temp < ( -1.0f * PCM16_TO_FLT_FAC ) ) - { - temp = ( -1.0f * PCM16_TO_FLT_FAC ); - } - temp *= ( 1.0f / PCM16_TO_FLT_FAC ); - output[ch][i] = temp; - } - } + nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); if ( st_ivas->nchan_transport >= 3 ) { @@ -618,21 +600,12 @@ void ivas_sba_upmixer_renderer( ivas_sba_linear_renderer( output, output_frame, st_ivas->hIntSetup.nchan_out_woLFE, st_ivas->hDecoderConfig->output_config, st_ivas->hOutSetup, st_ivas->hoa_dec_mtx ); } - for ( ch = 0; ch < nchan_out; ch++ ) - { - for ( i = 0; i < output_frame; i++ ) - { - output[ch][i] = output[ch][i] * PCM16_TO_FLT_FAC; - } - } - wmops_sub_end(); return; } - /*-------------------------------------------------------------------* * ivas_sba_mix_matrix_determiner() * @@ -640,15 +613,15 @@ void ivas_sba_upmixer_renderer( *-------------------------------------------------------------------*/ void ivas_sba_mix_matrix_determiner( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ + SPAR_DEC_HANDLE hSpar, /* i/o: SPAR decoder handle */ float output[][L_FRAME48k], /* i/o: transport/output audio channels */ + const int16_t bfi, /* i : BFI flag */ const int16_t nchan_remapped, /* i : num channels after remapping of TCs */ const int16_t output_frame /* i : output frame length */ ) { int16_t i, ch; float temp; - SPAR_DEC_HANDLE pState; int16_t num_bands_out, nchan_transport, nchan_out; /* Convert numeric range */ @@ -673,10 +646,9 @@ void ivas_sba_mix_matrix_determiner( } /* AGC */ - pState = st_ivas->hSpar; - nchan_transport = pState->hMdDec->spar_md_cfg.nchan_transport; + nchan_transport = hSpar->hMdDec->spar_md_cfg.nchan_transport; nchan_out = nchan_transport; - ivas_agc_dec_process( pState->hAgcDec, output, output, nchan_transport, output_frame ); + ivas_agc_dec_process( hSpar->hAgcDec, output, output, nchan_transport, output_frame ); /* Convert numeric range back */ for ( ch = 0; ch < nchan_out; ch++ ) @@ -688,16 +660,13 @@ void ivas_sba_mix_matrix_determiner( } /* Mixing matrix determiner */ - num_bands_out = pState->hFbMixer->pFb->filterbank_num_bands; - ivas_spar_dec_gen_umx_mat( pState->hMdDec, nchan_transport, num_bands_out, st_ivas->bfi ); - - wmops_sub_end(); + num_bands_out = hSpar->hFbMixer->pFb->filterbank_num_bands; + ivas_spar_dec_gen_umx_mat( hSpar->hMdDec, nchan_transport, num_bands_out, bfi ); return; } - /*-------------------------------------------------------------------* * ivas_sba_prototype_renderer() * diff --git a/lib_dec/ivas_sce_dec.c b/lib_dec/ivas_sce_dec.c index 5b83a41f81..b24d60505b 100644 --- a/lib_dec/ivas_sce_dec.c +++ b/lib_dec/ivas_sce_dec.c @@ -82,7 +82,11 @@ ivas_error ivas_sce_dec( *-----------------------------------------------------------------*/ /* set total_brate - needed in DTX */ +#ifdef ALIGN_SID_SIZE + if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_5k2 ) ) +#else if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) ) +#endif { st->total_brate = ivas_total_brate - nb_bits_metadata * FRAMES_PER_SEC; assert( st->total_brate == SID_2k40 && "SCE SID must be 2.4kbps!" ); @@ -91,7 +95,11 @@ ivas_error ivas_sce_dec( { st->total_brate = ivas_total_brate; } +#ifdef ALIGN_SID_SIZE + else if ( !st_ivas->bfi && ( last_ivas_total_brate <= SID_2k40 || last_ivas_total_brate == IVAS_SID_5k2 ) ) +#else else if ( !st_ivas->bfi && ( last_ivas_total_brate <= SID_2k40 || last_ivas_total_brate == IVAS_SID_4k4 ) ) +#endif { st->total_brate = hSCE->element_brate - nb_bits_metadata * FRAMES_PER_SEC; } @@ -161,7 +169,11 @@ ivas_error ivas_sce_dec( } /* set "total_brate" */ +#ifdef ALIGN_SID_SIZE + if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_5k2 ) ) +#else if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) ) +#endif { st->total_brate = ivas_total_brate - nb_bits_metadata * FRAMES_PER_SEC; } @@ -338,7 +350,7 @@ ivas_error create_sce_dec( st->total_brate = hSCE->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ st->mct_chan_mode = MCT_CHAN_MODE_REGULAR; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( error = init_decoder( st, 0, st_ivas->mc_mode ) ) != IVAS_ERR_OK ) #else if ( ( error = init_decoder( st, 0 ) ) != IVAS_ERR_OK ) diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index cc625f2605..2e48c11745 100755 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -71,11 +71,7 @@ ivas_error ivas_spar_dec_open( int32_t output_Fs; error = IVAS_ERR_OK; -#ifndef SBA_ORDER_BITSTREAM - sba_order_internal = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); -#else sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); -#endif num_channels_internal = ivas_sba_get_nchan_metadata( sba_order_internal ); /* SPAR decoder handle */ @@ -245,6 +241,12 @@ ivas_error ivas_spar_dec( next_bit_pos_orig = st0->next_bit_pos; last_bit_pos = (int16_t) ( ( hDecoderConfig->ivas_total_brate / FRAMES_PER_SEC ) - 1 ); +#ifdef ALIGN_SID_SIZE + if ( !st0->bfi && hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) + { + last_bit_pos -= SID_FORMAT_NBITS; + } +#endif nb_bits_read_orig = *nb_bits_read; last_bit_pos -= nb_bits_read_orig; @@ -264,6 +266,17 @@ ivas_error ivas_spar_dec( st0->bit_stream = bit_stream_orig; st0->next_bit_pos = next_bit_pos_orig; +#ifdef ALIGN_SID_SIZE + if ( !st0->bfi && hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) + { + int16_t zero_pad_bits; + *nb_bits_read += SID_FORMAT_NBITS; + zero_pad_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - *nb_bits_read; + assert( zero_pad_bits <= 1 ); + *nb_bits_read += zero_pad_bits; + } +#endif + wmops_sub_end(); return error; @@ -623,11 +636,8 @@ static void ivas_spar_dec_MD( /*---------------------------------------------------------------------* * Initialization *---------------------------------------------------------------------*/ -#ifndef SBA_ORDER_BITSTREAM - sba_order = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); -#else + sba_order = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); -#endif bfi = st_ivas->bfi; ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; num_channels = ivas_sba_get_nchan_metadata( sba_order ); @@ -635,7 +645,11 @@ static void ivas_spar_dec_MD( if ( ivas_total_brate > FRAME_NO_DATA && !bfi ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 ) +#else if ( ivas_total_brate > IVAS_SID_5k ) +#endif { ivas_parse_spar_header( hDecoderConfig->ivas_total_brate, sba_order, st0, &table_idx ); @@ -669,7 +683,11 @@ static void ivas_spar_dec_MD( * Read AGC bits *---------------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 && !bfi && hSpar->hMdDec->dtx_vad ) +#else if ( ivas_total_brate > IVAS_SID_5k && !bfi && hSpar->hMdDec->dtx_vad ) +#endif { hSpar->AGC_flag = get_next_indice( st0, 1 ); @@ -680,7 +698,11 @@ static void ivas_spar_dec_MD( * MD smoothing *---------------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( st0->m_old_frame_type == ZERO_FRAME && ivas_total_brate == IVAS_SID_5k2 && st0->prev_bfi == 0 && hSpar->hMdDec->spar_md_cfg.nchan_transport == 1 ) +#else if ( st0->m_old_frame_type == ZERO_FRAME && ivas_total_brate == IVAS_SID_5k && st0->prev_bfi == 0 && hSpar->hMdDec->spar_md_cfg.nchan_transport == 1 ) +#endif { ivas_spar_setup_md_smoothing( hSpar->hMdDec, num_bands_out ); } @@ -972,9 +994,8 @@ void ivas_spar_dec_upmixer( /*---------------------------------------------------------------------* * PCA decoder *---------------------------------------------------------------------*/ - #ifdef DEBUG_SBA_AUDIO_DUMP - pState->pca_ingest_channels = num_in_ingest; + hSpar->pca_ingest_channels = num_in_ingest; #endif if ( hSpar->hPCA != NULL ) @@ -986,6 +1007,7 @@ void ivas_spar_dec_upmixer( #endif } + /*---------------------------------------------------------------------* * TD decorrelation *---------------------------------------------------------------------*/ @@ -1164,7 +1186,7 @@ void ivas_spar_dec_upmixer( } } #ifdef DEBUG_SBA_AUDIO_DUMP - pState->numOutChannels = outchannels; + hSpar->numOutChannels = outchannels; #endif } else @@ -1183,12 +1205,12 @@ void ivas_spar_dec_upmixer( } } #ifdef DEBUG_SBA_AUDIO_DUMP - pState->numOutChannels = numch_out_dirac; + hSpar->numOutChannels = numch_out_dirac; #endif } #ifdef DEBUG_SBA_AUDIO_DUMP /* Dump audio signal after cldfbSynthesis */ - ivas_spar_dump_signal_wav( output_frame, NULL, output, pState->numOutChannels, spar_foa_dec_wav[3], "cldfbSynthesis()" ); + ivas_spar_dump_signal_wav( output_frame, NULL, output, hSpar->numOutChannels, spar_foa_dec_wav[3], "cldfbSynthesis()" ); #endif split_band = SPAR_DIRAC_SPLIT_START_BAND; diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index be1b3fcb10..c0682c58a2 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -63,11 +63,11 @@ static const int16_t ivas_spar_dec_plc_spatial_target[IVAS_SPAR_MAX_CH] = { 1, 0 * Static functions declaration *------------------------------------------------------------------------------------------*/ -static void ivas_get_spar_matrices( ivas_spar_md_dec_state_t *pState, const int16_t num_bands_out, const int16_t n_ts, const int16_t bw, const int16_t dtx_vad, const int16_t nB, const int16_t sba_order ); +static void ivas_get_spar_matrices( ivas_spar_md_dec_state_t *hMdDec, const int16_t num_bands_out, const int16_t n_ts, const int16_t bw, const int16_t dtx_vad, const int16_t nB, const int16_t sba_order ); -static void ivas_decode_arith_bs( ivas_spar_md_dec_state_t *pState, Decoder_State *st, const uint16_t qsi, const int16_t nB, const int16_t bands_bw, int16_t *pDo_diff, const int16_t freq_diff, const int16_t planarCP ); +static void ivas_decode_arith_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, const uint16_t qsi, const int16_t nB, const int16_t bands_bw, int16_t *pDo_diff, const int16_t freq_diff, const int16_t planarCP ); -static void ivas_decode_huffman_bs( ivas_spar_md_dec_state_t *pState, Decoder_State *st, const uint16_t qsi, const int16_t nB, const int16_t bands_bw, const int16_t planarCP ); +static void ivas_decode_huffman_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, const uint16_t qsi, const int16_t nB, const int16_t bands_bw, const int16_t planarCP ); static void ivas_fill_band_coeffs_idx( ivas_band_coeffs_ind_t *pBands_idx, const int16_t nB, int16_t *pSymbol_re, ivas_cell_dim_t *pCell_dims, ivas_coeffs_type_t coeff_type, const int16_t planarCP ); @@ -75,16 +75,14 @@ static void ivas_get_band_idx_from_differential( ivas_spar_md_t *pSpar_md, const static void ivas_mat_col_rearrange( float in_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], const int16_t order[IVAS_SPAR_MAX_CH], const int16_t i_ts, float ***mixer_mat, const int16_t bands, const int16_t num_ch ); -static void ivas_spar_dec_compute_ramp_down_post_matrix( ivas_spar_md_dec_state_t *pState, const int16_t num_bands, const int16_t bfi ); +static void ivas_spar_dec_compute_ramp_down_post_matrix( ivas_spar_md_dec_state_t *hMdDec, const int16_t num_bands, const int16_t bfi ); -static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coeffs, ivas_spar_dec_matrices_t *pSpar_coeffs_prev, int16_t *valid_bands, int16_t *base_band_age, const int16_t num_bands, const int16_t sba_order ); +static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coeffs, ivas_spar_dec_matrices_t *pSpar_coeffs_prev, const int16_t *valid_bands, int16_t *base_band_age, const int16_t num_bands, const int16_t sba_order ); -static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *pState, const int16_t nchan_transport, float *pFC ); +static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ); static void ivas_parse_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, Decoder_State *st, const int16_t bw, const int16_t num_bands, int16_t *num_dmx_per_band, int16_t *num_dec_per_band ); - -static ivas_error ivas_deindex_real_index( int16_t **index, const int16_t q_levels, const float min_value, const float max_value, float **quant, const int16_t num_ch, const int16_t dim2 ); - +static ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, float *quant, const int16_t num_ch_dim2 ); static void ivas_spar_dec_parse_md_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, int16_t *nB, int16_t *bands_bw, int16_t *dtx_vad, const int32_t ivas_total_brate, const int16_t use_planar_coeff, const int16_t sba_inactive_mode ); @@ -426,7 +424,7 @@ void ivas_spar_md_dec_close( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_md_dec_init() * - * Init call for md dec process + * SPAR MD decoder initialization *-----------------------------------------------------------------------------------------*/ ivas_error ivas_spar_md_dec_init( @@ -438,12 +436,11 @@ ivas_error ivas_spar_md_dec_init( int16_t i, j, k; int16_t nchan_transport; float pFC[IVAS_MAX_NUM_BANDS], PR_minmax[2]; - ivas_spar_md_dec_state_t *pState = hMdDec; - pState->spar_md_cfg.gen_bs = 1; - ivas_spar_set_bitrate_config( &pState->spar_md_cfg, pState->table_idx, min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) ); + hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? + ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) ); - nchan_transport = pState->spar_md_cfg.nchan_transport; + nchan_transport = hMdDec->spar_md_cfg.nchan_transport; /* get FB coefficients */ for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) @@ -451,28 +448,28 @@ ivas_error ivas_spar_md_dec_init( pFC[i] = ivas_fb_fcs_12band_1ms[i] * hDecoderConfig->output_Fs * 0.5f; } - ivas_spar_set_dec_config( pState, nchan_transport, pFC ); + ivas_spar_set_dec_config( hMdDec, nchan_transport, pFC ); - if ( nchan_transport != 2 && ( ( pState->spar_md_cfg.remix_unmix_order == 2 ) || ( pState->spar_md_cfg.remix_unmix_order == 1 ) ) ) + if ( nchan_transport != 2 && ( ( hMdDec->spar_md_cfg.remix_unmix_order == 2 ) || ( hMdDec->spar_md_cfg.remix_unmix_order == 1 ) ) ) { return IVAS_ERR_INTERNAL; } /* DTX quant init */ - PR_minmax[0] = pState->spar_md_cfg.quant_strat[0].PR.min; - PR_minmax[1] = pState->spar_md_cfg.quant_strat[0].PR.max; - ivas_spar_quant_dtx_init( &pState->spar_md, PR_minmax ); + PR_minmax[0] = hMdDec->spar_md_cfg.quant_strat[0].PR.min; + PR_minmax[1] = hMdDec->spar_md_cfg.quant_strat[0].PR.max; + ivas_spar_quant_dtx_init( &hMdDec->spar_md, PR_minmax ); - ivas_spar_arith_coeffs_com_init( &pState->arith_coeffs, &pState->spar_md_cfg, pState->table_idx, DEC ); - ivas_spar_huff_coeffs_com_init( &pState->huff_coeffs, &pState->spar_md_cfg, pState->table_idx, DEC ); + ivas_spar_arith_coeffs_com_init( &hMdDec->arith_coeffs, &hMdDec->spar_md_cfg, hMdDec->table_idx, DEC ); + ivas_spar_huff_coeffs_com_init( &hMdDec->huff_coeffs, &hMdDec->spar_md_cfg, hMdDec->table_idx, DEC ); - pState->spar_md_cfg.prev_quant_idx = -1; + hMdDec->spar_md_cfg.prev_quant_idx = -1; /* initialize PLC state */ - set_s( pState->valid_bands, 0, IVAS_MAX_NUM_BANDS ); - set_s( pState->base_band_age, 0, IVAS_MAX_NUM_BANDS ); - pState->spar_plc_num_lost_frames = 0; - pState->spar_plc_enable_fadeout_flag = 1; + set_s( hMdDec->valid_bands, 0, IVAS_MAX_NUM_BANDS ); + set_s( hMdDec->base_band_age, 0, IVAS_MAX_NUM_BANDS ); + hMdDec->spar_plc_num_lost_frames = 0; + hMdDec->spar_plc_enable_fadeout_flag = 1; for ( i = 0; i < num_channels; i++ ) { @@ -480,7 +477,7 @@ ivas_error ivas_spar_md_dec_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - pState->spar_coeffs_prev.C_re[i][j][k] = 0; + hMdDec->spar_coeffs_prev.C_re[i][j][k] = 0; } } } @@ -491,7 +488,7 @@ ivas_error ivas_spar_md_dec_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - pState->spar_coeffs_prev.P_re[i][j][k] = 0; + hMdDec->spar_coeffs_prev.P_re[i][j][k] = 0; } } } @@ -502,7 +499,7 @@ ivas_error ivas_spar_md_dec_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - pState->spar_coeffs_tar.C_re[i][j][k] = 0; + hMdDec->spar_coeffs_tar.C_re[i][j][k] = 0; } } } @@ -513,24 +510,24 @@ ivas_error ivas_spar_md_dec_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - pState->spar_coeffs_tar.P_re[i][j][k] = 0; + hMdDec->spar_coeffs_tar.P_re[i][j][k] = 0; } } } - pState->dtx_md_smoothing_cntr = 1; + hMdDec->dtx_md_smoothing_cntr = 1; - ivas_clear_band_coeffs( pState->spar_md.band_coeffs, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( pState->spar_md.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( pState->spar_md_prev.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( pState->spar_md_prev.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeffs( hMdDec->spar_md.band_coeffs, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( hMdDec->spar_md.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( hMdDec->spar_md_prev.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( hMdDec->spar_md_prev.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); - pState->spar_md.dtx_vad = 0; - pState->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); - pState->td_decorr_flag = 1; + hMdDec->spar_md.dtx_vad = 0; + hMdDec->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); + hMdDec->td_decorr_flag = 1; - set_f( pState->spar_md.en_ratio_slow, 0.0f, IVAS_MAX_NUM_BANDS ); - set_f( pState->spar_md.ref_pow_slow, 0.0f, IVAS_MAX_NUM_BANDS ); + set_f( hMdDec->spar_md.en_ratio_slow, 0.0f, IVAS_MAX_NUM_BANDS ); + set_f( hMdDec->spar_md.ref_pow_slow, 0.0f, IVAS_MAX_NUM_BANDS ); return IVAS_ERR_OK; } @@ -539,11 +536,11 @@ ivas_error ivas_spar_md_dec_init( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_set_dec_config() * - * Set configuration for SPAR md dec + * Set configuration for SPAR MD decoder *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_spar_set_dec_config( - ivas_spar_md_dec_state_t *pState, + ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ) { @@ -551,31 +548,31 @@ static ivas_error ivas_spar_set_dec_config( for ( i = 0; i < nchan_transport; i++ ) { - pState->spar_md_cfg.max_freq_per_chan[i] = ivas_spar_br_table_consts[pState->table_idx].fpcs; + hMdDec->spar_md_cfg.max_freq_per_chan[i] = ivas_spar_br_table_consts[hMdDec->table_idx].fpcs; } - nchan = ivas_sba_get_nchan_metadata( ivas_spar_br_table_consts[pState->table_idx].sba_order ); + nchan = ivas_sba_get_nchan_metadata( ivas_spar_br_table_consts[hMdDec->table_idx].sba_order ); switch ( nchan ) { case 4: /* FOA_CHANNELS */ - pState->num_decorr = IVAS_TD_DECORR_OUT_3CH; + hMdDec->num_decorr = IVAS_TD_DECORR_OUT_3CH; break; case 9: /* IVAS_HOA_2_CH */ // VE: is this relevant? - pState->num_decorr = IVAS_TD_DECORR_OUT_5CH; + hMdDec->num_decorr = IVAS_TD_DECORR_OUT_5CH; break; case 16: /* IVAS_HOA_3_CH */ // VE: is this relevant? - pState->num_decorr = IVAS_TD_DECORR_OUT_12CH; + hMdDec->num_decorr = IVAS_TD_DECORR_OUT_12CH; break; case 6: /* IVAS_HOA_2_CH */ - pState->num_decorr = IVAS_TD_DECORR_OUT_2CH; + hMdDec->num_decorr = IVAS_TD_DECORR_OUT_2CH; break; case 8: /* IVAS_HOA_3_CH */ - pState->num_decorr = IVAS_TD_DECORR_OUT_4CH; + hMdDec->num_decorr = IVAS_TD_DECORR_OUT_4CH; break; } - pState->spar_md_cfg.num_umx_chs = nchan; + hMdDec->spar_md_cfg.num_umx_chs = nchan; dmx_ch = 0; for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) @@ -583,17 +580,17 @@ static ivas_error ivas_spar_set_dec_config( dmx_ch = 0; for ( j = 0; j < nchan_transport; j++ ) { - if ( pFC[i] < pState->spar_md_cfg.max_freq_per_chan[j] ) + if ( pFC[i] < hMdDec->spar_md_cfg.max_freq_per_chan[j] ) { dmx_ch += 1; } } - pState->spar_md_cfg.num_dmx_chans_per_band[i] = pState->spar_md_cfg.nchan_transport; - pState->spar_md_cfg.num_decorr_per_band[i] = nchan - pState->spar_md_cfg.nchan_transport; + hMdDec->spar_md_cfg.num_dmx_chans_per_band[i] = hMdDec->spar_md_cfg.nchan_transport; + hMdDec->spar_md_cfg.num_decorr_per_band[i] = nchan - hMdDec->spar_md_cfg.nchan_transport; } - pState->spar_md_cfg.nchan_transport = dmx_ch; + hMdDec->spar_md_cfg.nchan_transport = dmx_ch; return IVAS_ERR_OK; } @@ -612,8 +609,10 @@ void ivas_spar_md_dec_process( const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { - int16_t j, b, bw, dtx_vad, nB, i_ts; - ivas_spar_md_dec_state_t *hMdDec = st_ivas->hSpar->hMdDec; + int16_t j, k, b, bw, dtx_vad, nB, i_ts; + ivas_spar_md_dec_state_t *hMdDec; + + hMdDec = st_ivas->hSpar->hMdDec; ivas_spar_dec_parse_md_bs( hMdDec, st0, &nB, &bw, &dtx_vad, st_ivas->hDecoderConfig->ivas_total_brate, ivas_spar_br_table_consts[hMdDec->table_idx].usePlanarCoeff, st_ivas->hQMetaData->sba_inactive_mode ); @@ -666,8 +665,8 @@ void ivas_spar_md_dec_process( } #endif - /* SPAR to DirAC and DirAC to SPAR conversion */ - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) + /* SPAR to DirAC and DirAC to SPAR conversion */ // VE2DB: -> "DirAC to SPAR conversion" only? + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete { ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); @@ -691,7 +690,7 @@ void ivas_spar_md_dec_process( for ( j = 0; j < IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS; j++ ) { - for ( int16_t k = 0; k < IVAS_SPAR_MAX_DMX_CHS - 1; k++ ) + for ( k = 0; k < IVAS_SPAR_MAX_DMX_CHS - 1; k++ ) { hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].C_re[j][k] = hMdDec->spar_md.band_coeffs[b].C_re[j][k]; } @@ -736,6 +735,7 @@ void ivas_spar_md_dec_process( * * Smooth MD during no data frame during DTX *-----------------------------------------------------------------------------------------*/ + #ifdef SPAR_HOA_DBG /* NOTE: No changes here as DTX only operates below 160kbps */ #endif @@ -744,26 +744,23 @@ void ivas_spar_smooth_md_dtx( const int16_t num_bands_out /* i : number of output bands */ ) { - int16_t j, k, b; - int16_t dmx_ch; - ivas_spar_md_dec_state_t *pState = hMdDec; + int16_t j, k, b, dmx_ch; float ramp, tar, prev, new_val; - ramp = (float) pState->dtx_md_smoothing_cntr / IVAS_DEFAULT_DTX_CNG_RAMP; + ramp = (float) hMdDec->dtx_md_smoothing_cntr / IVAS_DEFAULT_DTX_CNG_RAMP; for ( b = 0; b < num_bands_out; b++ ) { - dmx_ch = pState->spar_md_cfg.num_dmx_chans_per_band[b]; + dmx_ch = hMdDec->spar_md_cfg.num_dmx_chans_per_band[b]; for ( j = 1; j < FOA_CHANNELS; j++ ) { for ( k = dmx_ch; k < FOA_CHANNELS; k++ ) - { - prev = pState->spar_coeffs_prev.P_re[j][k][b]; - tar = pState->spar_coeffs_tar.P_re[j][k][b]; + prev = hMdDec->spar_coeffs_prev.P_re[j][k][b]; + tar = hMdDec->spar_coeffs_tar.P_re[j][k][b]; new_val = prev + ( ramp * ( tar - prev ) ); - pState->spar_coeffs.P_re[j][k][b] = new_val; + hMdDec->spar_coeffs.P_re[j][k][b] = new_val; } } @@ -771,10 +768,10 @@ void ivas_spar_smooth_md_dtx( { for ( k = 0; k < dmx_ch; k++ ) { - prev = pState->spar_coeffs_prev.C_re[j][k][b]; - tar = pState->spar_coeffs_tar.C_re[j][k][b]; + prev = hMdDec->spar_coeffs_prev.C_re[j][k][b]; + tar = hMdDec->spar_coeffs_tar.C_re[j][k][b]; new_val = prev + ( ramp * ( tar - prev ) ); - pState->spar_coeffs.C_re[j][k][b] = new_val; + hMdDec->spar_coeffs.C_re[j][k][b] = new_val; } } } @@ -784,14 +781,14 @@ void ivas_spar_smooth_md_dtx( { for ( b = 0; b < num_bands_out; b++ ) { - dmx_ch = pState->spar_md_cfg.num_dmx_chans_per_band[b]; + dmx_ch = hMdDec->spar_md_cfg.num_dmx_chans_per_band[b]; for ( j = 1; j < FOA_CHANNELS; j++ ) { for ( k = dmx_ch; k < FOA_CHANNELS; k++ ) { - pState->spar_coeffs.P_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.P_re[j][k][b]; + hMdDec->spar_coeffs.P_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.P_re[j][k][b]; } } @@ -799,13 +796,13 @@ void ivas_spar_smooth_md_dtx( { for ( k = 0; k < dmx_ch; k++ ) { - pState->spar_coeffs.C_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.C_re[j][k][b]; + hMdDec->spar_coeffs.C_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.C_re[j][k][b]; } } } } - pState->dtx_md_smoothing_cntr = min( pState->dtx_md_smoothing_cntr + 1, IVAS_DEFAULT_DTX_CNG_RAMP ); + hMdDec->dtx_md_smoothing_cntr = min( hMdDec->dtx_md_smoothing_cntr + 1, IVAS_DEFAULT_DTX_CNG_RAMP ); return; } @@ -945,7 +942,7 @@ void ivas_spar_update_md_hist( *-----------------------------------------------------------------------------------------*/ static void ivas_get_spar_matrices( - ivas_spar_md_dec_state_t *pState, + ivas_spar_md_dec_state_t *hMdDec, const int16_t num_bands_out, const int16_t n_ts, const int16_t bw, @@ -953,16 +950,15 @@ static void ivas_get_spar_matrices( const int16_t nB, const int16_t sba_order ) { - int16_t numch_out, num_bands, dmx_ch; + int16_t numch_out, num_bands, dmx_ch, split_band; int16_t i, j, k, m, b, i_ts, active_w; const int16_t *order; float active_w_dm_fac, re; - int16_t split_band; numch_out = ivas_sba_get_nchan_metadata( sba_order ); num_bands = num_bands_out; - order = remix_order_set[pState->spar_md_cfg.remix_unmix_order]; + order = remix_order_set[hMdDec->spar_md_cfg.remix_unmix_order]; split_band = SPAR_DIRAC_SPLIT_START_BAND; if ( split_band >= IVAS_MAX_NUM_BANDS ) @@ -974,7 +970,7 @@ static void ivas_get_spar_matrices( { for ( b = 0; b < num_bands; b++ ) { - pState->mixer_mat_prev[0][i][j][b] = pState->mixer_mat[i][j][b]; + hMdDec->mixer_mat_prev[0][i][j][b] = hMdDec->mixer_mat[i][j][b]; } } } @@ -983,19 +979,19 @@ static void ivas_get_spar_matrices( #ifdef SPAR_HOA_DBG /*for (b = 0; b < BANDS_12; b++) { - for (i = 0; i < IVAS_SPAR_MAX_CH - 1; i++) - { - pState->spar_md.band_coeffs[b].pred_re[i] = (float)(i + 1)/10; - for (j = 0; j < IVAS_SPAR_MAX_CH - 1; j++) + for (i = 0; i < IVAS_SPAR_MAX_CH - 1; i++) { - pState->spar_md.band_coeffs[b].C_re[i][j] = (float)(i + j * 20 + 1)/10; - pState->spar_md.band_coeffs[b].P_re[i][j] = (float)(i + j * 20 + 1)/10; + hMdDec->spar_md.band_coeffs[b].pred_re[i] = (float)(i + 1)/10; + for (j = 0; j < IVAS_SPAR_MAX_CH - 1; j++) + { + hMdDec->spar_md.band_coeffs[b].C_re[i][j] = (float)(i + j * 20 + 1)/10; + hMdDec->spar_md.band_coeffs[b].P_re[i][j] = (float)(i + j * 20 + 1)/10; + } } - } }*/ #endif - active_w = pState->spar_md_cfg.active_w; + active_w = hMdDec->spar_md_cfg.active_w; active_w_dm_fac = ( dtx_vad == 0 ) ? IVAS_ACTIVEW_DM_F_SCALE_DTX : IVAS_ACTIVEW_DM_F_SCALE; for ( i_ts = 0; i_ts < n_ts; i_ts++ ) @@ -1004,8 +1000,8 @@ static void ivas_get_spar_matrices( { for ( j = 0; j < numch_out; j++ ) { - set_zero( &pState->spar_coeffs.C_re[i][j][i_ts * IVAS_MAX_NUM_BANDS], IVAS_MAX_NUM_BANDS ); - set_zero( &pState->spar_coeffs.P_re[i][j][i_ts * IVAS_MAX_NUM_BANDS], IVAS_MAX_NUM_BANDS ); + set_zero( &hMdDec->spar_coeffs.C_re[i][j][i_ts * IVAS_MAX_NUM_BANDS], IVAS_MAX_NUM_BANDS ); + set_zero( &hMdDec->spar_coeffs.P_re[i][j][i_ts * IVAS_MAX_NUM_BANDS], IVAS_MAX_NUM_BANDS ); } } @@ -1022,7 +1018,7 @@ static void ivas_get_spar_matrices( float tmp_C2_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; float tmp_dm_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; - dmx_ch = pState->spar_md_cfg.num_dmx_chans_per_band[bw * b]; + dmx_ch = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bw * b]; for ( j = 0; j < numch_out; j++ ) { @@ -1037,14 +1033,14 @@ static void ivas_get_spar_matrices( for ( j = 1; j < numch_out; j++ ) { - tmp_C1_re[j][0] = pState->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].pred_re[j - 1]; + tmp_C1_re[j][0] = hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].pred_re[j - 1]; } if ( active_w == 1 ) { for ( j = 1; j < numch_out; j++ ) { - tmp_C2_re[0][j] = active_w_dm_fac * -pState->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].pred_re[j - 1]; + tmp_C2_re[0][j] = active_w_dm_fac * -hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].pred_re[j - 1]; } IVAS_RMULT_FLOAT( tmp_C2_re[0][1], tmp_C1_re[1][0], re ); @@ -1068,9 +1064,9 @@ static void ivas_get_spar_matrices( tmp_dm_re[3][0] = tmp_C1_re[3][0]; - if ( pState->spar_md_cfg.remix_unmix_order != 3 ) + if ( hMdDec->spar_md_cfg.remix_unmix_order != 3 ) { - ivas_mat_col_rearrange( tmp_dm_re, order, i_ts, pState->mixer_mat, b, numch_out ); + ivas_mat_col_rearrange( tmp_dm_re, order, i_ts, hMdDec->mixer_mat, b, numch_out ); } else { @@ -1078,24 +1074,24 @@ static void ivas_get_spar_matrices( for ( i = 0; i < FOA_CHANNELS; i++ ) { /* row 0 */ - pState->mixer_mat[i][0][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][0]; + hMdDec->mixer_mat[i][0][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][0]; /* row 1 */ - pState->mixer_mat[i][1][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][1]; + hMdDec->mixer_mat[i][1][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][1]; /* row 3 */ - pState->mixer_mat[i][2][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][1]; + hMdDec->mixer_mat[i][2][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][1]; /* row 4 */ - pState->mixer_mat[i][3][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][2]; + hMdDec->mixer_mat[i][3][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_dm_re[i][2]; } } } else { - if ( pState->spar_md_cfg.remix_unmix_order != 3 ) + if ( hMdDec->spar_md_cfg.remix_unmix_order != 3 ) { - ivas_mat_col_rearrange( tmp_C1_re, order, i_ts, pState->mixer_mat, b, numch_out ); + ivas_mat_col_rearrange( tmp_C1_re, order, i_ts, hMdDec->mixer_mat, b, numch_out ); } else { @@ -1103,16 +1099,16 @@ static void ivas_get_spar_matrices( for ( i = 0; i < FOA_CHANNELS; i++ ) { /* row 0 */ - pState->mixer_mat[i][0][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][0]; + hMdDec->mixer_mat[i][0][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][0]; /* row 1 */ - pState->mixer_mat[i][1][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][1]; + hMdDec->mixer_mat[i][1][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][1]; /* row 3 */ - pState->mixer_mat[i][2][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][1]; + hMdDec->mixer_mat[i][2][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][1]; /* row 4 */ - pState->mixer_mat[i][3][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][2]; + hMdDec->mixer_mat[i][3][b + i_ts * IVAS_MAX_NUM_BANDS] = tmp_C1_re[i][2]; } } } @@ -1142,28 +1138,28 @@ static void ivas_get_spar_matrices( { for ( k = 1; k < dmx_ch; k++ ) { - tmpC_re[j][k] = pState->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].C_re[j - dmx_ch][k - 1]; + tmpC_re[j][k] = hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].C_re[j - dmx_ch][k - 1]; } } #ifdef SPAR_HOA_DBG /*fprintf(stdout, "C matrix1: %d x %d\n\n", numch_out, dmx_ch); for (j = 0; j < numch_out; j++) { - for (k = 0; k < dmx_ch; k++) - { - fprintf(stdout, "%f, ", tmpC_re[j][k]); - } - fprintf(stdout, "\n"); + for (k = 0; k < dmx_ch; k++) + { + fprintf(stdout, "%f, ", tmpC_re[j][k]); + } + fprintf(stdout, "\n"); } fprintf(stdout, "Mixer Mat: %d x %d\n\n", numch_out, numch_out); for ( j = 0; j < numch_out; j++) { - for (k = 0; k < numch_out; k++) - { - fprintf(stdout, "%f, ", pState->mixer_mat[j][k][0][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", hMdDec->mixer_mat[j][k][0][b]); + } + fprintf(stdout, "\n"); }*/ #endif @@ -1173,7 +1169,7 @@ static void ivas_get_spar_matrices( { if ( ( j - dmx_ch ) == ( k - dmx_ch ) ) { - tmpP_re[j][k] = pState->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].P_re[k - dmx_ch]; + tmpP_re[j][k] = hMdDec->spar_md.band_coeffs[b + i_ts * IVAS_MAX_NUM_BANDS].P_re[k - dmx_ch]; } else { @@ -1184,26 +1180,26 @@ static void ivas_get_spar_matrices( #ifdef SPAR_HOA_DBG /*if (b == 0) { - fprintf(stdout, "tmp_P matrix: %d x %d\n\n", numch_out, dmx_ch); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) + fprintf(stdout, "tmp_P matrix: %d x %d\n\n", numch_out, dmx_ch); + for (j = 0; j < numch_out; j++) { - fprintf(stdout, "%f, ", tmpP_re[j][k]); - } - fprintf(stdout, "\n"); + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", tmpP_re[j][k]); + } + fprintf(stdout, "\n"); - } - fprintf(stdout, "Mixer Mat: %d x %d\n\n", numch_out, numch_out); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) - { - fprintf(stdout, "%f, ", pState->mixer_mat[j][k][0][b]); } - fprintf(stdout, "\n"); + fprintf(stdout, "Mixer Mat: %d x %d\n\n", numch_out, numch_out); + for (j = 0; j < numch_out; j++) + { + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", hMdDec->mixer_mat[j][k][0][b]); + } + fprintf(stdout, "\n"); - } + } }*/ #endif for ( j = 1; j < numch_out; j++ ) @@ -1213,8 +1209,8 @@ static void ivas_get_spar_matrices( { for ( m = 0; m < numch_out; m++ ) { - IVAS_RMULT_FLOAT( pState->mixer_mat[j][m][b + i_ts * IVAS_MAX_NUM_BANDS], tmpP_re[m][k], re ); - pState->spar_coeffs.P_re[j][k][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] += re; + IVAS_RMULT_FLOAT( hMdDec->mixer_mat[j][m][b + i_ts * IVAS_MAX_NUM_BANDS], tmpP_re[m][k], re ); + hMdDec->spar_coeffs.P_re[j][k][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] += re; } } } @@ -1225,8 +1221,8 @@ static void ivas_get_spar_matrices( { for ( m = 0; m < numch_out; m++ ) { - IVAS_RMULT_FLOAT( pState->mixer_mat[j][m][b + i_ts * IVAS_MAX_NUM_BANDS], tmpC_re[m][k], re ); - pState->spar_coeffs.C_re[j][k][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] += re; + IVAS_RMULT_FLOAT( hMdDec->mixer_mat[j][m][b + i_ts * IVAS_MAX_NUM_BANDS], tmpC_re[m][k], re ); + hMdDec->spar_coeffs.C_re[j][k][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] += re; } } } @@ -1234,42 +1230,42 @@ static void ivas_get_spar_matrices( /*fprintf(stdout, "C matrix1: %d x %d\n\n", numch_out, dmx_ch); for (j = 0; j < numch_out; j++) { - for (k = 0; k < dmx_ch; k++) - { - fprintf(stdout, "%f, ", pState->spar_coeffs.C_re[j][k][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < dmx_ch; k++) + { + fprintf(stdout, "%f, ", hMdDec->spar_coeffs.C_re[j][k][b]); + } + fprintf(stdout, "\n"); }*/ #endif - pState->spar_coeffs.C_re[0][0][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] = - max( 0, pState->spar_coeffs.C_re[0][0][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] ); + hMdDec->spar_coeffs.C_re[0][0][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] = + max( 0, hMdDec->spar_coeffs.C_re[0][0][( b * bw ) + i_ts * IVAS_MAX_NUM_BANDS] ); } } #ifdef SPAR_HOA_DBG /* for (b = 0; b < 1; b++) { - fprintf(stdout, "C matrix: %d x %d band %d\n\n", numch_out, dmx_ch, b); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) + fprintf(stdout, "C matrix: %d x %d band %d\n\n", numch_out, dmx_ch, b); + for (j = 0; j < numch_out; j++) { - fprintf(stdout, "%f, ", pState->spar_coeffs.C_re[j][k][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", hMdDec->spar_coeffs.C_re[j][k][b]); + } + fprintf(stdout, "\n"); - } - fprintf(stdout, "\nP matrix: %d x %d\n\n", numch_out, numch_out); + } + fprintf(stdout, "\nP matrix: %d x %d\n\n", numch_out, numch_out); - for (j = 0; j < numch_out; j++) - { - for (k = 0; k < numch_out; k++) + for (j = 0; j < numch_out; j++) { - fprintf(stdout, "%f, ", pState->spar_coeffs.P_re[j][k][b]); - } - fprintf(stdout, "\n"); + for (k = 0; k < numch_out; k++) + { + fprintf(stdout, "%f, ", hMdDec->spar_coeffs.P_re[j][k][b]); + } + fprintf(stdout, "\n"); - } + } }*/ #endif @@ -1278,12 +1274,12 @@ static void ivas_get_spar_matrices( { for ( b = 0; b < num_bands_out; b = b + bw ) { - dmx_ch = pState->spar_md_cfg.num_dmx_chans_per_band[b]; + dmx_ch = hMdDec->spar_md_cfg.num_dmx_chans_per_band[b]; for ( j = 0; j < numch_out; j++ ) { for ( k = dmx_ch; k < numch_out; k++ ) { - pState->spar_coeffs.P_re[j][k][( b + 1 ) + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.P_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS]; + hMdDec->spar_coeffs.P_re[j][k][( b + 1 ) + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.P_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS]; } } @@ -1291,7 +1287,7 @@ static void ivas_get_spar_matrices( { for ( k = 0; k < dmx_ch; k++ ) { - pState->spar_coeffs.C_re[j][k][( b + 1 ) + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.C_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS]; + hMdDec->spar_coeffs.C_re[j][k][( b + 1 ) + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.C_re[j][k][b + i_ts * IVAS_MAX_NUM_BANDS]; } } } @@ -1345,14 +1341,14 @@ void ivas_spar_dec_gen_umx_mat( const int16_t bfi /* i : bad frame indicator */ ) { - int16_t i, j, b, i_ts; - int16_t fb_ducking_flag = 0; - int16_t num_out_ch = hMdDec->spar_md_cfg.num_umx_chs; - ivas_spar_md_dec_state_t *pState = hMdDec; + int16_t i, j, b, i_ts, num_out_ch; + int16_t fb_ducking_flag = 0; // VE2DB: always 0 - can it be removed? + + num_out_ch = hMdDec->spar_md_cfg.num_umx_chs; for ( i_ts = 0; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) { - if ( pState->td_decorr_flag == 1 ) + if ( hMdDec->td_decorr_flag == 1 ) { for ( i = 0; i < num_out_ch; i++ ) { @@ -1360,7 +1356,7 @@ void ivas_spar_dec_gen_umx_mat( { for ( b = 0; b < num_bands_out; b++ ) { - pState->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.C_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; + hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.C_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; } } } @@ -1371,7 +1367,7 @@ void ivas_spar_dec_gen_umx_mat( { for ( b = 0; b < num_bands_out; b++ ) { - pState->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.P_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; + hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.P_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; } } } @@ -1389,7 +1385,7 @@ void ivas_spar_dec_gen_umx_mat( { for ( b = 0; b < num_bands_out; b++ ) { - pState->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = pState->spar_coeffs.C_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; + hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] = hMdDec->spar_coeffs.C_re[i][j][b + i_ts * IVAS_MAX_NUM_BANDS]; } } } @@ -1399,20 +1395,20 @@ void ivas_spar_dec_gen_umx_mat( /* for ( b = 0; b < 1; b++) { - fprintf( stdout, "\n\nMixer Matrix band %d\n\n", b ); - for ( i = 0; i < num_out_ch; i++ ) - { - for ( j = 0; j < num_out_ch; j++ ) + fprintf( stdout, "\n\nMixer Matrix band %d\n\n", b ); + for ( i = 0; i < num_out_ch; i++ ) { - fprintf( stdout, "%.2f,\t", pState->mixer_mat[i][j][0][b] ); + for ( j = 0; j < num_out_ch; j++ ) + { + fprintf( stdout, "%.2f,\t", hMdDec->mixer_mat[i][j][0][b] ); + } + fprintf( stdout, "\n" ); } fprintf( stdout, "\n" ); - } - fprintf( stdout, "\n" ); }*/ #endif - ivas_spar_dec_compute_ramp_down_post_matrix( pState, num_bands_out, bfi ); + ivas_spar_dec_compute_ramp_down_post_matrix( hMdDec, num_bands_out, bfi ); return; } @@ -1421,7 +1417,7 @@ void ivas_spar_dec_gen_umx_mat( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_dec_parse_md_bs() * - * Parses SPAR MD bitstream + * Parse SPAR MD bitstream *-----------------------------------------------------------------------------------------*/ static void ivas_spar_dec_parse_md_bs( @@ -1437,7 +1433,6 @@ static void ivas_spar_dec_parse_md_bs( int16_t i, j, k, num_bands; uint16_t qsi; ivas_quant_strat_t qs; - ivas_spar_md_dec_state_t *pState = hMdDec; int16_t strat, freq_diff, no_ec; int16_t do_diff[IVAS_MAX_NUM_BANDS]; int16_t planarCP = 0; @@ -1445,13 +1440,17 @@ static void ivas_spar_dec_parse_md_bs( *dtx_vad = 1; *bands_bw = 1; qsi = 0; - num_bands = pState->spar_md.num_bands; + num_bands = hMdDec->spar_md.num_bands; - if ( pState->spar_md_cfg.gen_bs == 1 ) + if ( hMdDec->spar_md_cfg.gen_bs == 1 ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 ) +#else if ( ivas_total_brate > IVAS_SID_5k ) +#endif { - if ( pState->spar_md_cfg.quant_strat_bits > 0 ) + if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) { if ( ivas_total_brate >= BRATE_SPAR_Q_STRAT ) { @@ -1467,11 +1466,11 @@ static void ivas_spar_dec_parse_md_bs( if ( sba_inactive_mode == 1 ) { *dtx_vad = 0; - qsi = pState->spar_md_cfg.quant_strat_bits + 1; + qsi = hMdDec->spar_md_cfg.quant_strat_bits + 1; } else { - qsi = get_next_indice( st0, pState->spar_md_cfg.quant_strat_bits ); + qsi = get_next_indice( st0, hMdDec->spar_md_cfg.quant_strat_bits ); } } } @@ -1496,10 +1495,10 @@ static void ivas_spar_dec_parse_md_bs( { for ( j = 0; j < IVAS_SPAR_MAX_CH - 1; j++ ) { - pState->spar_md.band_coeffs[i].pred_re[j] = 0; - pState->spar_md.band_coeffs[i].P_re[j] = 0; + hMdDec->spar_md.band_coeffs[i].pred_re[j] = 0; + hMdDec->spar_md.band_coeffs[i].P_re[j] = 0; } - pState->valid_bands[i] = 1; + hMdDec->valid_bands[i] = 1; } for ( i = 0; i < num_bands; i++ ) { @@ -1507,31 +1506,31 @@ static void ivas_spar_dec_parse_md_bs( { for ( k = 0; k < ( IVAS_SPAR_MAX_DMX_CHS - 1 ); k++ ) { - pState->spar_md.band_coeffs[i].C_re[j][k] = 0; + hMdDec->spar_md.band_coeffs[i].C_re[j][k] = 0; } } } - ivas_parse_parameter_bitstream_dtx( &pState->spar_md, st0, *bands_bw, *nB, - pState->spar_md_cfg.num_dmx_chans_per_band, pState->spar_md_cfg.num_decorr_per_band ); + ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, + hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); { int16_t ndec, b, idx; for ( i = *nB - 1; i >= 0; i-- ) { - ndec = pState->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; + ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; for ( b = *bands_bw - 1; b >= 0; b-- ) { idx = i * *bands_bw + b; for ( j = 0; j < FOA_CHANNELS - 1; j++ ) { - pState->spar_md.band_coeffs[idx].pred_re[j] = pState->spar_md.band_coeffs[i].pred_re[j]; + hMdDec->spar_md.band_coeffs[idx].pred_re[j] = hMdDec->spar_md.band_coeffs[i].pred_re[j]; } for ( j = 0; j < ndec; j++ ) { - pState->spar_md.band_coeffs[idx].P_re[j] = pState->spar_md.band_coeffs[i].P_re[j]; + hMdDec->spar_md.band_coeffs[idx].P_re[j] = hMdDec->spar_md.band_coeffs[i].P_re[j]; } - pState->valid_bands[idx] = 1; + hMdDec->valid_bands[idx] = 1; } } *nB = num_bands; @@ -1541,7 +1540,7 @@ static void ivas_spar_dec_parse_md_bs( return; } - qs = pState->spar_md_cfg.quant_strat[qsi]; + qs = hMdDec->spar_md_cfg.quant_strat[qsi]; if ( ( qsi == 2 ) && ( use_planar_coeff ) ) { planarCP = 1; @@ -1585,164 +1584,122 @@ static void ivas_spar_dec_parse_md_bs( do_diff[i] = ( ( ( i + 1 ) & 3 ) != strat - 4 ); } - ivas_map_prior_coeffs_quant( &pState->spar_md_prev, &pState->spar_md_cfg, qsi, *nB ); + ivas_map_prior_coeffs_quant( &hMdDec->spar_md_prev, &hMdDec->spar_md_cfg, qsi, *nB ); } #ifdef SPAR_HOA_DBG fprintf( stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat ); #endif - pState->spar_md_cfg.prev_quant_idx = qsi; + hMdDec->spar_md_cfg.prev_quant_idx = qsi; if ( no_ec == 0 ) { - ivas_decode_arith_bs( pState, st0, qsi, *nB, *bands_bw, do_diff, freq_diff, planarCP ); + ivas_decode_arith_bs( hMdDec, st0, qsi, *nB, *bands_bw, do_diff, freq_diff, planarCP ); } else { - ivas_decode_huffman_bs( pState, st0, qsi, *nB, *bands_bw, planarCP ); + ivas_decode_huffman_bs( hMdDec, st0, qsi, *nB, *bands_bw, planarCP ); } for ( i = 0; i < *nB; i++ ) { int16_t ii, jj; - int16_t *index_scratch[IVAS_SPAR_P_LOWERTRI]; - float *quant_scratch[IVAS_SPAR_P_LOWERTRI]; - int16_t ndec = pState->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; - int16_t ndm = pState->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; - int16_t **index = (int16_t **) &index_scratch[0]; - float **quant = (float **) &quant_scratch[0]; - float coeff_decd[IVAS_SPAR_MAX_CH - 1]; - float coeff_decx_re[IVAS_SPAR_P_LOWERTRI]; - int16_t pred_index_re[IVAS_SPAR_MAX_CH - 1]; - int16_t drct_index_re[IVAS_SPAR_MAX_C_COEFF]; - int16_t decd_index_re[IVAS_SPAR_MAX_CH - 1]; - int16_t decx_index_re[IVAS_SPAR_P_LOWERTRI]; + int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; + int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; + float quant[IVAS_SPAR_MAX_C_COEFF]; + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); - for ( j = 0; j < ndm + ndec - 1; j++ ) - { - pred_index_re[j] = pState->spar_md.band_coeffs_idx[i].pred_index_re[j]; - } - for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) - { - drct_index_re[j] = pState->spar_md.band_coeffs_idx[i].drct_index_re[j]; - } - for ( j = 0; j < ndec; j++ ) - { - decd_index_re[j] = pState->spar_md.band_coeffs_idx[i].decd_index_re[j]; - } - - index[0] = &pred_index_re[0]; - quant[0] = &pState->spar_md.band_coeffs[i].pred_re[0]; - - ivas_deindex_real_index( index, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, quant, 1, ndm + ndec - 1 ); + j = 0; for ( ii = 0; ii < ndec; ii++ ) { for ( jj = 0; jj < ndm - 1; jj++ ) { - pState->spar_md.band_coeffs[i].C_re[ii][jj] = 0; + quant[j] = hMdDec->spar_md.band_coeffs[i].C_re[ii][jj]; + j++; } } + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); j = 0; for ( ii = 0; ii < ndec; ii++ ) { for ( jj = 0; jj < ndm - 1; jj++ ) { - index[j] = &drct_index_re[j]; - quant[j] = &pState->spar_md.band_coeffs[i].C_re[ii][jj]; + hMdDec->spar_md.band_coeffs[i].C_re[ii][jj] = quant[j]; j++; } } - ivas_deindex_real_index( index, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ), 1 ); - - index[0] = &decd_index_re[0]; - quant[0] = &coeff_decd[0]; - ivas_deindex_real_index( index, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, quant, 1, ndm + ndec - 1 ); - - index[0] = &decx_index_re[0]; - quant[0] = &coeff_decx_re[0]; - ivas_deindex_real_index( index, qs.P_c.q_levels[0], qs.P_c.min, qs.P_c.max, quant, 1, ndec * ( ndec - 1 ) >> 2 ); - + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); /* Store prior coefficient indices */ for ( j = 0; j < ndm + ndec - 1; j++ ) { - pState->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = pred_index_re[j]; + hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; } for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) { - pState->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = drct_index_re[j]; - } - for ( j = 0; j < ndec; j++ ) - { - pState->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = decd_index_re[j]; - } - for ( k = 0; k < ndec; k++ ) - { - pState->spar_md.band_coeffs[i].P_re[k] = 0; + hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; } for ( j = 0; j < ndec; j++ ) { - /* Don't bother adding in the decx parameters */ - pState->spar_md.band_coeffs[i].P_re[j] = coeff_decd[j]; + hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; } - - pState->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; + hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } } else { - *dtx_vad = pState->spar_md.dtx_vad; + *dtx_vad = hMdDec->spar_md.dtx_vad; *nB = num_bands; *bands_bw = num_bands / *nB; for ( i = 0; i < *nB; i++ ) { - pState->valid_bands[i] = 1; + hMdDec->valid_bands[i] = 1; } } #ifdef SPAR_HOA_DBG int16_t b; b = 0; - /* if (0) + /*if ( 0 ) { for ( b = 0; b < *nB; b++ ) { - int16_t ndec = pState->spar_md_cfg.num_decorr_per_band[(*bands_bw) * b]; - int16_t ndm = pState->spar_md_cfg.num_dmx_chans_per_band[(*bands_bw) * b]; - fprintf(stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi); - for (i = 0; i < ndm + ndec - 1; i++) + int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; + int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; + fprintf( stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi ); + for ( i = 0; i < ndm + ndec - 1; i++ ) { - fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, - pState->spar_md.band_coeffs[b].pred_re[i], - pState->spar_md_prev.band_coeffs_idx[b].pred_index_re[i], - pState->spar_md.band_coeffs_idx[b].pred_index_re[i]); + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, + hMdDec->spar_md.band_coeffs[b].pred_re[i], + hMdDec->spar_md_prev.band_coeffs_idx[b].pred_index_re[i], + hMdDec->spar_md.band_coeffs_idx[b].pred_index_re[i] ); } - fprintf(stdout, "\n\n METADATA C: band %d\n\n", b); + fprintf( stdout, "\n\n METADATA C: band %d\n\n", b ); k = 0; - for (i = 0; i < ndec; i++) + for ( i = 0; i < ndec; i++ ) { - for (j = 0; j < (ndm - 1); j++) + for ( j = 0; j < ( ndm - 1 ); j++ ) { - fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, - pState->spar_md.band_coeffs[b].C_re[i][j], - pState->spar_md_prev.band_coeffs_idx[b].drct_index_re[k], - pState->spar_md.band_coeffs_idx[b].drct_index_re[k]); + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, + hMdDec->spar_md.band_coeffs[b].C_re[i][j], + hMdDec->spar_md_prev.band_coeffs_idx[b].drct_index_re[k], + hMdDec->spar_md.band_coeffs_idx[b].drct_index_re[k] ); k++; } } - fprintf(stdout, "\n\n METADATA Pd: band %d\n\n", b); - for (i = 0; i < ndec; i++) + fprintf( stdout, "\n\n METADATA Pd: band %d\n\n", b ); + for ( i = 0; i < ndec; i++ ) { - fprintf(stdout, "i: %d -- %f\t %d\t %d\n", i, - pState->spar_md.band_coeffs[b].P_re[i][i], - pState->spar_md_prev.band_coeffs_idx[b].decd_index_re[i], - pState->spar_md.band_coeffs_idx[b].decd_index_re[i]); + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, + hMdDec->spar_md.band_coeffs[b].P_re[i][i], + hMdDec->spar_md_prev.band_coeffs_idx[b].decd_index_re[i], + hMdDec->spar_md.band_coeffs_idx[b].decd_index_re[i] ); } - fprintf(stdout, "\n\n"); - int16_t ndec = pState->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; - int16_t ndm = pState->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; + fprintf( stdout, "\n\n" ); + int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * b]; + int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * b]; fprintf( stdout, "\n\n Metadata PR (15x1), C(15x15), P(15x15): band %d\n", b ); for ( i = 0; i < ndm + ndec - 1; i++ ) { - fprintf( stdout, "i: %d -- %.2f\t|\t", i, pState->spar_md.band_coeffs[b].pred_re[i] ); + fprintf( stdout, "i: %d -- %.2f\t|\t", i, hMdDec->spar_md.band_coeffs[b].pred_re[i] ); if ( i < ndec ) { if ( keep_planar[i] == 1 ) @@ -1755,12 +1712,12 @@ static void ivas_spar_dec_parse_md_bs( } for ( j = 0; j < ndm - 1; j++ ) { - fprintf( stdout, "%.2f\t", pState->spar_md.band_coeffs[b].C_re[i][j] ); + fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].C_re[i][j] ); } fprintf( stdout, "|\t" ); for ( j = 0; j < ndec; j++ ) { - fprintf( stdout, "%.2f\t", pState->spar_md.band_coeffs[b].P_re[i][j] ); + fprintf( stdout, "%.2f\t", hMdDec->spar_md.band_coeffs[b].P_re[i][j] ); } } fprintf( stdout, "\n" ); @@ -1777,11 +1734,11 @@ static void ivas_spar_dec_parse_md_bs( /*-----------------------------------------------------------------------------------------* * Function ivas_decode_arith_bs() * - * decode bitstream with arith decoder + * Decode bitstream with arith decoder *-----------------------------------------------------------------------------------------*/ static void ivas_decode_arith_bs( - ivas_spar_md_dec_state_t *pState, + ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st0, /* i/o: decoder state structure - for bitstream handling*/ const uint16_t qsi, const int16_t nB, @@ -1801,8 +1758,8 @@ static void ivas_decode_arith_bs( for ( i = 0; i < nB; i++ ) { - ndm = pState->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; - ndec = pState->spar_md_cfg.num_decorr_per_band[bands_bw * i]; + ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; + ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_cell_dims[i].dim1 = ndm + ndec - 1; pred_cell_dims[i].dim2 = 1; @@ -1825,17 +1782,17 @@ static void ivas_decode_arith_bs( if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( pState->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, pred_cell_dims, PRED_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, pred_cell_dims, PRED_COEFF, planarCP ); } - ivas_arith_decode_cmplx_cell_array( &pState->arith_coeffs.pred_arith_re[qsi], &pState->arith_coeffs.pred_arith_re_diff[qsi], + ivas_arith_decode_cmplx_cell_array( &hMdDec->arith_coeffs.pred_arith_re[qsi], &hMdDec->arith_coeffs.pred_arith_re_diff[qsi], st0, pred_cell_dims, pDo_diff, nB, symbol_arr_re, symbol_arr_old_re ); - ivas_fill_band_coeffs_idx( pState->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); + ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( pState->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, drct_cell_dims, DRCT_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, drct_cell_dims, DRCT_COEFF, planarCP ); } if ( planarCP ) @@ -1846,14 +1803,14 @@ static void ivas_decode_arith_bs( } } - ivas_arith_decode_cmplx_cell_array( &pState->arith_coeffs.drct_arith_re[qsi], &pState->arith_coeffs.drct_arith_re_diff[qsi], + ivas_arith_decode_cmplx_cell_array( &hMdDec->arith_coeffs.drct_arith_re[qsi], &hMdDec->arith_coeffs.drct_arith_re_diff[qsi], st0, drct_cell_dims, pDo_diff, nB, symbol_arr_re, symbol_arr_old_re ); - ivas_fill_band_coeffs_idx( pState->spar_md.band_coeffs_idx, nB, symbol_arr_re, drct_cell_dims, DRCT_COEFF, planarCP ); + ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, drct_cell_dims, DRCT_COEFF, planarCP ); if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( pState->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decd_cell_dims, DECD_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decd_cell_dims, DECD_COEFF, planarCP ); } if ( planarCP ) @@ -1864,27 +1821,27 @@ static void ivas_decode_arith_bs( } } - ivas_arith_decode_cmplx_cell_array( &pState->arith_coeffs.decd_arith_re[qsi], &pState->arith_coeffs.decd_arith_re_diff[qsi], + ivas_arith_decode_cmplx_cell_array( &hMdDec->arith_coeffs.decd_arith_re[qsi], &hMdDec->arith_coeffs.decd_arith_re_diff[qsi], st0, decd_cell_dims, pDo_diff, nB, symbol_arr_re, symbol_arr_old_re ); - ivas_fill_band_coeffs_idx( pState->spar_md.band_coeffs_idx, nB, symbol_arr_re, decd_cell_dims, DECD_COEFF, planarCP ); + ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, decd_cell_dims, DECD_COEFF, planarCP ); if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( pState->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decx_cell_dims, DECX_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decx_cell_dims, DECX_COEFF, planarCP ); } - ivas_fill_band_coeffs_idx( pState->spar_md.band_coeffs_idx, nB, symbol_arr_re, decx_cell_dims, DECX_COEFF, planarCP ); + ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, decx_cell_dims, DECX_COEFF, planarCP ); if ( freq_diff == 1 ) { #ifdef SPAR_HOA_DBG /* NOTE: This is currently unused code, and SPAR_HOA changes have not been made here. */ #endif - ivas_get_band_idx_from_differential( &pState->spar_md, pState->spar_md_cfg.quant_strat->PR.q_levels, 0, nB, PRED_COEFF ); - ivas_get_band_idx_from_differential( &pState->spar_md, pState->spar_md_cfg.quant_strat->C.q_levels, 0, nB, DRCT_COEFF ); - ivas_get_band_idx_from_differential( &pState->spar_md, pState->spar_md_cfg.quant_strat->P_r.q_levels, 1, nB, DECD_COEFF ); - ivas_get_band_idx_from_differential( &pState->spar_md, pState->spar_md_cfg.quant_strat->P_c.q_levels, 0, nB, DECX_COEFF ); + ivas_get_band_idx_from_differential( &hMdDec->spar_md, hMdDec->spar_md_cfg.quant_strat->PR.q_levels, 0, nB, PRED_COEFF ); + ivas_get_band_idx_from_differential( &hMdDec->spar_md, hMdDec->spar_md_cfg.quant_strat->C.q_levels, 0, nB, DRCT_COEFF ); + ivas_get_band_idx_from_differential( &hMdDec->spar_md, hMdDec->spar_md_cfg.quant_strat->P_r.q_levels, 1, nB, DECD_COEFF ); + ivas_get_band_idx_from_differential( &hMdDec->spar_md, hMdDec->spar_md_cfg.quant_strat->P_c.q_levels, 0, nB, DECX_COEFF ); } return; @@ -1896,6 +1853,7 @@ static void ivas_decode_arith_bs( * * *-----------------------------------------------------------------------------------------*/ + #ifdef SPAR_HOA_DBG /* NOTE: No changes here as frequency differential coding is unused. */ #endif @@ -2055,11 +2013,11 @@ static void ivas_fill_band_coeffs_idx( /*-----------------------------------------------------------------------------------------* * Function ivas_decode_huffman_bs() * - * decode bitstream with huffman decoder + * Decode bitstream with huffman decoder *-----------------------------------------------------------------------------------------*/ static void ivas_decode_huffman_bs( - ivas_spar_md_dec_state_t *pState, + ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st0, /* i/o: decoder state structure - for bitstream handling*/ const uint16_t qsi, const int16_t nB, @@ -2073,8 +2031,8 @@ static void ivas_decode_huffman_bs( int16_t ndm, ndec; int16_t pred_dim, drct_dim, decd_dim; - ndm = pState->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; - ndec = pState->spar_md_cfg.num_decorr_per_band[bands_bw * i]; + ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; + ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_dim = ndec + ndm - 1; drct_dim = ndec * ( ndm - 1 ); @@ -2082,20 +2040,20 @@ static void ivas_decode_huffman_bs( for ( j = 0; j < pred_dim; j++ ) { - ivas_huffman_decode( &pState->huff_coeffs.pred_huff_re[qsi], st0, - &pState->spar_md.band_coeffs_idx[i].pred_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, + &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); } for ( j = 0; j < drct_dim; j++ ) { if ( planarCP && !keep_planar[(int16_t) floor( j / ( ndm - 1 ) )] ) { - pState->spar_md.band_coeffs_idx[i].drct_index_re[j] = 0; + hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] = 0; } else { - ivas_huffman_decode( &pState->huff_coeffs.drct_huff_re[qsi], st0, - &pState->spar_md.band_coeffs_idx[i].drct_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, + &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); } } @@ -2103,12 +2061,12 @@ static void ivas_decode_huffman_bs( { if ( planarCP && !keep_planar[j] ) { - pState->spar_md.band_coeffs_idx[i].decd_index_re[j] = 0; + hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] = 0; } else { - ivas_huffman_decode( &pState->huff_coeffs.decd_huff_re[qsi], st0, - &pState->spar_md.band_coeffs_idx[i].decd_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, + &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); } } } @@ -2120,14 +2078,14 @@ static void ivas_decode_huffman_bs( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_md_fill_invalid_bands() * - * fill invalid bands in interpolation/extrapolation of valid bands + * Fill invalid bands in interpolation/extrapolation of valid bands * when PLC is to be done with partial time differential coding *-----------------------------------------------------------------------------------------*/ static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coeffs, ivas_spar_dec_matrices_t *pSpar_coeffs_prev, - int16_t *valid_bands, + const int16_t *valid_bands, int16_t *base_band_age, const int16_t num_bands, const int16_t sba_order /* i : SBA order */ @@ -2242,44 +2200,43 @@ static void ivas_spar_md_fill_invalid_bands( /*-----------------------------------------------------------------------------------------* -* Function ivas_spar_dec_compute_ramp_down_post_matrix() -* -* ivas_spar_dec_compute_ramp_down_post_matrix - -*-----------------------------------------------------------------------------------------*/ + * Function ivas_spar_dec_compute_ramp_down_post_matrix() + * + * + *-----------------------------------------------------------------------------------------*/ static void ivas_spar_dec_compute_ramp_down_post_matrix( - ivas_spar_md_dec_state_t *pState, + ivas_spar_md_dec_state_t *hMdDec, const int16_t num_bands_out, const int16_t bfi ) { int16_t num_in_ch, num_out_ch, i, j, b; - num_in_ch = pState->spar_md_cfg.num_umx_chs; - num_out_ch = pState->spar_md_cfg.num_umx_chs; + num_in_ch = hMdDec->spar_md_cfg.num_umx_chs; + num_out_ch = hMdDec->spar_md_cfg.num_umx_chs; if ( bfi == 0 ) { - pState->spar_plc_num_lost_frames = 0; + hMdDec->spar_plc_num_lost_frames = 0; } else { - if ( pState->td_decorr_flag == 0 ) + if ( hMdDec->td_decorr_flag == 0 ) { assert( 0 ); } - pState->spar_plc_num_lost_frames += 1; - pState->spar_plc_num_lost_frames = min( pState->spar_plc_num_lost_frames, 100 ); + hMdDec->spar_plc_num_lost_frames += 1; + hMdDec->spar_plc_num_lost_frames = min( hMdDec->spar_plc_num_lost_frames, 100 ); - if ( pState->spar_plc_num_lost_frames > ivas_spar_dec_plc_num_frames_keep ) + if ( hMdDec->spar_plc_num_lost_frames > ivas_spar_dec_plc_num_frames_keep ) { int16_t num_fade_frames; int16_t gain_dB; float gain; float post_matrix[IVAS_SPAR_MAX_CH]; - num_fade_frames = max( pState->spar_plc_num_lost_frames - ivas_spar_dec_plc_num_frames_keep, 0 ); + num_fade_frames = max( hMdDec->spar_plc_num_lost_frames - ivas_spar_dec_plc_num_frames_keep, 0 ); gain_dB = -min( num_fade_frames, ivas_spar_dec_plc_max_num_frames_ramp_down ) * ivas_spar_dec_plc_per_frame_ramp_down_gain_dB; gain = powf( 10, ( ( (float) gain_dB ) / 20 ) ); @@ -2298,7 +2255,7 @@ static void ivas_spar_dec_compute_ramp_down_post_matrix( { for ( b = 0; b < num_bands_out; b++ ) { - pState->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] *= post_matrix[i]; + hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] *= post_matrix[i]; } } } @@ -2313,7 +2270,7 @@ static void ivas_spar_dec_compute_ramp_down_post_matrix( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_unquant_dtx_indicies() * - * Unquantize spar md DYX indices + * Unquantize SPAR MD DYX indices *-----------------------------------------------------------------------------------------*/ #ifdef SPAR_HOA_DBG @@ -2327,35 +2284,28 @@ static void ivas_spar_unquant_dtx_indicies( { int16_t i, b; int16_t q_lvl; - float **ppVal, *pVal, val; - int16_t **ppIdx, *pIdx, idx; + float val; + int16_t idx; float pr_min_max[2]; pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; - - ppVal = (float **) &pVal; - ppIdx = (int16_t **) &pIdx; - - ppVal[0] = (float *) &val; - ppIdx[0] = (int16_t *) &idx; - for ( b = 0; b < nB; b++ ) { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) { q_lvl = dtx_pr_real_q_levels[ndm_per_band[bw * b] - 1][i]; - ppIdx[0][0] = pSpar_md->band_coeffs_idx[b].pred_index_re[i]; - ivas_deindex_real_index( ppIdx, q_lvl, pr_min_max[0], pr_min_max[1], ppVal, 1, 1 ); - pSpar_md->band_coeffs[b].pred_re[i] = ppVal[0][0]; + idx = pSpar_md->band_coeffs_idx[b].pred_index_re[i]; + ivas_deindex_real_index( &idx, q_lvl, pr_min_max[0], pr_min_max[1], &val, 1 ); + pSpar_md->band_coeffs[b].pred_re[i] = val; } for ( i = 0; i < FOA_CHANNELS - ndm_per_band[bw * b]; i++ ) { q_lvl = dtx_pd_real_q_levels[ndm_per_band[bw * b] - 1][i]; - ppIdx[0][0] = pSpar_md->band_coeffs_idx[b].decd_index_re[i]; - ivas_deindex_real_index( ppIdx, q_lvl, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppVal, 1, 1 ); - pSpar_md->band_coeffs[b].P_re[i] = ppVal[0][0]; + idx = pSpar_md->band_coeffs_idx[b].decd_index_re[i]; + ivas_deindex_real_index( &idx, q_lvl, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &val, 1 ); + pSpar_md->band_coeffs[b].P_re[i] = val; } } @@ -2378,19 +2328,13 @@ static void ivas_parse_parameter_bitstream_dtx( int16_t *num_dec_per_band ) { int16_t i, j; - float **ppVal, *pVal, val; - int16_t **ppIdx, *pIdx, idx; + float val; + int16_t idx; float pr_min_max[2]; int16_t pr_q_lvls, pr, pd, pd_q_lvls, pr_pd_bits; int16_t pr_q_lvls1, pr_q_lvls2, pr_idx1, pr_idx2, pr_pr_bits; int16_t zero_pad_bits, sid_bits_len; sid_bits_len = st0->next_bit_pos; - ppVal = (float **) &pVal; - ppIdx = (int16_t **) &pIdx; - - ppVal[0] = (float *) &val; - ppIdx[0] = (int16_t *) &idx; - pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; @@ -2430,16 +2374,13 @@ static void ivas_parse_parameter_bitstream_dtx( pr = (int16_t) floor( value / pd_q_lvls ); pd = value - pr * pd_q_lvls; + val = dtx_pd_real_min_max[0]; + ivas_quantise_real_values( &val, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &idx, &val, 1 ); + pd = pd + idx; - ppVal[0][0] = dtx_pd_real_min_max[0]; - ivas_quantise_real_values( ppVal, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppVal, 1, 1 ); - - pd = pd + ppIdx[0][0]; - - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - - pr = pr + ppIdx[0][0]; + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + pr = pr + idx; if ( ( j + 1 ) <= ndec ) { @@ -2459,17 +2400,15 @@ static void ivas_parse_parameter_bitstream_dtx( pr_idx2 = (int16_t) floor( value / pr_q_lvls1 ); pr_idx1 = value - pr_idx2 * pr_q_lvls1; + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls1, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls1, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - - pr_idx1 += ppIdx[0][0]; + pr_idx1 += idx; - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls2, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - - pr_idx2 += ppIdx[0][0]; + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls2, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + pr_idx2 += idx; pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_1 - 1] = pr_idx1; pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1] = pr_idx2; } @@ -2494,19 +2433,18 @@ static void ivas_parse_parameter_bitstream_dtx( /*-----------------------------------------------------------------------------------------* * Function ivas_deindex_real_index() * - * deindex real index + * Deindex real index *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_deindex_real_index( - int16_t **index, + const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, - float **quant, - const int16_t num_ch, - const int16_t dim2 ) + float *quant, + const int16_t dim ) { - int16_t i, j; + int16_t i; float q_step; if ( q_levels == 0 ) @@ -2516,24 +2454,17 @@ static ivas_error ivas_deindex_real_index( if ( q_levels == 1 ) { - for ( i = 0; i < num_ch; i++ ) + for ( i = 0; i < dim; i++ ) { - for ( j = 0; j < dim2; j++ ) - { - quant[i][j] = 0; - } + quant[i] = 0; } } else { q_step = ( max_value - min_value ) / ( q_levels - 1 ); - - for ( i = 0; i < num_ch; i++ ) + for ( i = 0; i < dim; i++ ) { - for ( j = 0; j < dim2; j++ ) - { - quant[i][j] = index[i][j] * q_step; - } + quant[i] = index[i] * q_step; } } @@ -2577,11 +2508,8 @@ void ivas_spar_to_dirac( int16_t pred_idx; int16_t *dirac_to_spar_md_bands; int16_t enc_param_start_band; -#ifndef SBA_ORDER_BITSTREAM - sba_order_internal = min( st_ivas->sba_order, IVAS_MAX_SBA_ORDER ); -#else + sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); -#endif start_band = 0; end_band = min( num_bands_out, SPAR_DIRAC_SPLIT_START_BAND ); diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 29ae9867ca..f653dcc010 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -254,7 +254,7 @@ typedef struct stereo_dec_cng int16_t xfade_length; /* number of frames to perform xfade */ int16_t nr_dft_frames; /* dft frame counter */ int16_t nr_corr_frames; /* correlation frame counter */ - int16_t nr_sid_frames; /* sid frame counter */ + int16_t nr_sid_frames; /* SID frame counter */ int16_t last_act_element_mode; /* Element mode of last active frame */ float olapBufferSynth22[FFTLEN]; /* overlap buffer for secondary channel CNA */ int16_t flag_cna_fade; /* flag enabling CNA fade out */ @@ -321,7 +321,7 @@ typedef struct stereo_mdct_dec_data_structure int16_t prev_ms_mask[NB_DIV][MAX_SFB]; float lastCoh; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t noise_seeds_channels[CPE_CHANNELS]; int16_t noise_seed_common; #endif @@ -1630,19 +1630,36 @@ typedef struct ivas_binaural_td_rendering_struct typedef struct ivas_hrtfs_structure { +#ifdef FIX_CREND_CHANNELS + float *pOut_to_bin_re[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; + float *pOut_to_bin_im[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; +#else float *pOut_to_bin_re[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; float *pOut_to_bin_im[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; +#endif float *pOut_to_bin_diffuse_re[BINAURAL_CHANNELS]; float *pOut_to_bin_diffuse_im[BINAURAL_CHANNELS]; float latency_s; +#ifdef FIX_CREND_CHANNELS + uint16_t num_iterations[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; +#else uint16_t num_iterations[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; +#endif uint16_t num_iterations_diffuse[BINAURAL_CHANNELS]; +#ifdef FIX_CREND_CHANNELS + uint16_t *pIndex_frequency_max[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; +#else uint16_t *pIndex_frequency_max[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; +#endif uint16_t *pIndex_frequency_max_diffuse[BINAURAL_CHANNELS]; uint16_t index_frequency_max_diffuse; int16_t max_num_ir; int16_t max_num_iterations; +#ifdef FIX_CREND_CHANNELS + float inv_diffuse_weight[MAX_TRANSPORT_CHANNELS]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ +#else float inv_diffuse_weight[IVAS_MAX_NUM_CH]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ +#endif float gain_lfe; } HRTFS_DATA, *HRTFS_HANDLE; @@ -1783,8 +1800,13 @@ typedef struct ivas_orient_trk_state_t /* Crend structures */ typedef struct ivas_crend_state_t { +#ifdef FIX_CREND_CHANNELS + float *freq_buffer_re[MAX_TRANSPORT_CHANNELS]; + float *freq_buffer_im[MAX_TRANSPORT_CHANNELS]; +#else float *freq_buffer_re[IVAS_MAX_NUM_CH]; float *freq_buffer_im[IVAS_MAX_NUM_CH]; +#endif float *freq_buffer_re_diffuse; float *freq_buffer_im_diffuse; float *prev_out_buffer[BINAURAL_CHANNELS]; @@ -1854,13 +1876,10 @@ typedef struct decoder_config_structure int32_t output_Fs; /* output signal sampling frequency in Hz */ int16_t nchan_out; /* number of output audio channels */ AUDIO_CONFIG output_config; /* output audio configuration */ -#ifdef SBA_ORDER_BITSTREAM - int16_t sba_order; -#endif - int16_t Opt_LsCustom; /* indicates whether loudspeaker custom setup is used */ - int16_t Opt_HRTF_binary; /* indicates whether HRTF binary file is used */ - int16_t Opt_Headrotation; /* indicates whether head-rotation is used */ - int16_t orientation_tracking; /* indicates orientation tracking type */ + int16_t Opt_LsCustom; /* indicates whether loudspeaker custom setup is used */ + int16_t Opt_HRTF_binary; /* indicates whether HRTF binary file is used */ + int16_t Opt_Headrotation; /* indicates whether head-rotation is used */ + int16_t orientation_tracking; /* indicates orientation tracking type */ float no_diegetic_pan; int16_t Opt_AMR_WB; /* flag indicating AMR-WB IO mode */ @@ -1929,12 +1948,9 @@ typedef struct Decoder_Struct ISM_MODE ism_mode; /* ISM format mode */ SBA_MODE sba_mode; /* SBA format mode */ MC_MODE mc_mode; /* MC format mode */ -#ifdef SBA_ORDER_BITSTREAM - int16_t sba_analysis_order; /* Ambisonic (SBA) order */ -#else int16_t sba_order; /* Ambisonic (SBA) order */ -#endif int16_t sba_planar; /* Ambisonic (SBA) planar flag */ + int16_t sba_analysis_order; /* Ambisonic (SBA) order used for analysis and coding */ int16_t sba_dirac_stereo_flag; /* flag indicating stereo output for SBA DirAC modes with 1 TC */ /* rendering modules */ diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index 05e9222ddb..491a88da3f 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -90,7 +90,12 @@ void stereo_dft_dec_sid_coh( int16_t bits_tmp; int16_t b; +#ifdef ALIGN_SID_SIZE + /* TODO: still use old number of bits to keep bitexactness in output */ + nr_of_sid_stereo_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif /* If the coherence is not encoded due to lack of bits set alpha to zero which leads to that the coherence */ /* from the previous frame is used. */ @@ -173,6 +178,9 @@ void stereo_dft_dec_sid_coh( ( *nb_bits )++; } +#ifdef ALIGN_SID_SIZE + dtx_read_padding_bits( st, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); +#endif return; } @@ -653,9 +661,17 @@ void stereo_dtf_cng( hCPE->hStereoCng->nr_dft_frames++; } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate <= IVAS_SID_5k2 ) +#else if ( ivas_total_brate <= IVAS_SID_4k4 ) +#endif { +#ifdef ALIGN_SID_SIZE + if ( hCPE->hStereoCng->nr_sid_frames < SID_INIT && ivas_total_brate == IVAS_SID_5k2 ) +#else if ( hCPE->hStereoCng->nr_sid_frames < SID_INIT && ivas_total_brate == IVAS_SID_4k4 ) +#endif { hCPE->hStereoCng->nr_sid_frames++; } @@ -707,7 +723,11 @@ void stereo_cng_dec_update( if ( hCPE->element_mode == IVAS_CPE_DFT ) { +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) +#else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == FRAME_NO_DATA ) +#endif { hCPE->hStereoCng->prev_sid_nodata = 1; } diff --git a/lib_dec/ivas_stereo_dft_dec.c b/lib_dec/ivas_stereo_dft_dec.c index 074efaa1a2..b0db814511 100644 --- a/lib_dec/ivas_stereo_dft_dec.c +++ b/lib_dec/ivas_stereo_dft_dec.c @@ -1746,7 +1746,11 @@ void stereo_dft_dec_read_BS( * Initialization *-----------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 ) +#else if ( ivas_total_brate == IVAS_SID_4k4 ) +#endif { if ( ivas_format == MASA_FORMAT ) { @@ -1760,7 +1764,11 @@ void stereo_dft_dec_read_BS( hStereoDft->frame_nodata = 0; hStereoDft->frame_sid_nodata = 1; hStereoDft->frame_sid = 1; +#ifdef ALIGN_SID_SIZE + *nb_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else *nb_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } } else if ( ivas_total_brate == FRAME_NO_DATA ) @@ -1803,7 +1811,11 @@ void stereo_dft_dec_read_BS( k_offset = STEREO_DFT_OFFSET; N_div = STEREO_DFT_NBDIV; +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 ) +#else if ( ivas_total_brate > IVAS_SID_4k4 ) +#endif { mvr2r( hStereoDft->side_gain + 2 * STEREO_DFT_BAND_MAX, sg_tmp, STEREO_DFT_BAND_MAX ); mvr2r( hStereoDft->res_pred_gain + 2 * STEREO_DFT_BAND_MAX, res_pred_gain_tmp, STEREO_DFT_BAND_MAX ); @@ -1893,7 +1905,11 @@ void stereo_dft_dec_read_BS( fprintf( pF, "ITD: %d ", hStereoDft->hConfig->itd_mode ); #endif +#ifdef ALIGN_SID_SIZE + if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) +#else if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) +#endif { /*------------------------------------------------------------------* * read Side gains @@ -1974,7 +1990,11 @@ void stereo_dft_dec_read_BS( #endif } } +#ifdef ALIGN_SID_SIZE + else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 - SID_FORMAT_NBITS ) ) +#else else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 - SID_FORMAT_NBITS ) ) +#endif { itd_mode = get_next_indice( st, STEREO_DFT_ITD_MODE_NBITS ); ( *nb_bits ) += STEREO_DFT_ITD_MODE_NBITS; /*ITD mode flag: 1bit*/ @@ -2016,7 +2036,11 @@ void stereo_dft_dec_read_BS( stereo_dft_dequantize_ipd( &ind1_ipd[0], hStereoDft->gipd + ( k + k_offset ), 1, STEREO_DFT_GIPD_NBITS ); } } +#ifdef ALIGN_SID_SIZE + else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS - SID_FORMAT_NBITS ) ) +#else else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS - SID_FORMAT_NBITS ) ) +#endif { /* SID frame, only read IPD only if enough bits left in bitstream */ hStereoDft->no_ipd_flag = st->bit_stream[nb]; @@ -2177,7 +2201,11 @@ void stereo_dft_dec_read_BS( #endif } +#ifdef ALIGN_SID_SIZE + if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) +#else if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) +#endif { if ( hStereoDft->side_gain_flag_1 != 2 ) { @@ -2185,7 +2213,11 @@ void stereo_dft_dec_read_BS( } } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 ) +#else if ( ivas_total_brate > IVAS_SID_4k4 ) +#endif { hStereoDft->recovery_flg = stereo_dft_sg_recovery( hStereoDft ); @@ -2252,12 +2284,20 @@ void stereo_dft_dec_read_BS( #endif } +#ifdef ALIGN_SID_SIZE + if ( hStereoDft->frame_sid && !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) +#else if ( hStereoDft->frame_sid && !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) +#endif { stereo_dft_dec_sid_coh( st, hStereoDft->nbands, coh, nb_bits ); } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate == IVAS_SID_5k2 && ivas_format != MASA_FORMAT ) +#else if ( ivas_total_brate == IVAS_SID_4k4 && ivas_format != MASA_FORMAT ) +#endif { *nb_bits = (int16_t) ( ( element_brate - SID_2k40 ) / FRAMES_PER_SEC ); /* => hCPE->hCoreCoder[0]->total_brate = SID_2k40; */ } diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index 3d4c38f272..beb121a1fc 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -50,7 +50,7 @@ *-------------------------------------------------------------------------*/ static void apply_dmx_weights( CPE_DEC_HANDLE hCPE, float *x[CPE_CHANNELS][NB_DIV], int16_t transform_type_left[NB_DIV], int16_t transform_type_right[NB_DIV] ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE static void run_min_stats( Decoder_State **sts, float *x[CPE_CHANNELS][NB_DIV] ); #endif @@ -218,11 +218,13 @@ void stereo_mdct_core_dec( initMdctStereoDecData( hCPE->hStereoMdct, sts[0]->igf, sts[0]->hIGFDec->igfData.igfInfo.grid, hCPE->element_brate, sts[0]->bwidth ); hCPE->hStereoMdct->isSBAStereoMode = ( ( st_ivas->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); +#ifndef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /*to prevent unitialized values during condition checks for stereo IGF*/ if ( hCPE->hStereoMdct->isSBAStereoMode ) { set_s( hCPE->hStereoMdct->IGFStereoMode, -1, 2 ); } +#endif if ( !bfi ) { @@ -299,7 +301,11 @@ void stereo_mdct_core_dec( assert( ( sts[0]->core == sts[1]->core ) || ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); /* stereo IGF decoding */ +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi, 0 /* <- is_mct */ ); +#else decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi ); +#endif } else { @@ -329,34 +335,14 @@ void stereo_mdct_core_dec( sns_interpolate_scalefactors( &sns_int_scf[0], &Aq[ch][k * M], DEC ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) #else if ( st->hTonalMDCTConc != NULL ) #endif { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT - int16_t infoIGFStartLine; - - if ( st->igf == 0 ) - { - if ( st->narrowBand == 0 ) - { - /* minimum needed for output with sampling rates lower then the - nominal sampling rate */ - infoIGFStartLine = min( L_frameTCX[ch], L_frame[ch] ); - } - else - { - infoIGFStartLine = L_frameTCX[ch]; - } - } - else - { - infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX[ch] ); - } - - TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], infoIGFStartLine ); +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], get_igf_startline( st, L_frame[ch], L_frameTCX[ch] ) ); #else TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0] ); #endif @@ -381,13 +367,12 @@ void stereo_mdct_core_dec( ivas_mdct_core_tns_ns( hCPE, 0, fUseTns, tnsData, x, Aq, 0 ); - if ( - st_ivas->renderer_type == RENDERER_MC_PARAMMC && ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_MONO || st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ) ) + if ( st_ivas->renderer_type == RENDERER_MC_PARAMMC && ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_MONO || st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ) ) { ivas_ls_setup_conversion_process_mdct_param_mc( st_ivas, x ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE run_min_stats( sts, x ); #endif @@ -608,7 +593,7 @@ static void apply_dmx_weights( return; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /*-------------------------------------------------------------------* * run_min_stats() * diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index f797eaf289..10b9688be2 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -57,7 +57,7 @@ void parse_stereo_from_bitstream( STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct, /* i/o: MDCT stereo decoder structure */ Decoder_State **sts, /* i/o: decoder state structure */ const int16_t mct_on, /* i : flag mct block (1) or stereo (0)*/ - const int16_t isSBAStereoMode, /* i : flag core coding for sba */ + const int16_t isSBAStereoMode, /* i : flag core coding for SBA */ Decoder_State *st0, /* i/o: decoder state structure for Bstr*/ int16_t ms_mask[NB_DIV][MAX_SFB] /* o : bandwise MS mask */ ) @@ -559,13 +559,21 @@ void updateBuffersForDmxMdctStereo( sts[1] = hCPE->hCoreCoder[1]; /* synch buffers for inactive frames, but not for transition frames */ +#ifdef ALIGN_SID_SIZE + if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) +#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) +#endif { mvr2r( output[0], output[1], output_frame ); mvr2r( synth[0], synth[1], output_frame ); } +#ifdef ALIGN_SID_SIZE + if ( hCPE->element_brate == IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) +#else if ( hCPE->element_brate == IVAS_SID_4k4 && hCPE->last_element_brate > IVAS_SID_4k4 ) +#endif { /* in the first SID frame after an active frame, create mid noise shape here, in SID frames that follow inactive frames, it is done directly in the SID decoding since the mid shape is being used in CNG then */ for ( int16_t p = 0; p < sts[0]->hFdCngDec->hFdCngCom->npart; p++ ) @@ -575,7 +583,11 @@ void updateBuffersForDmxMdctStereo( } /* for transition of active->inactive frame, apply passive downmix on buffers */ +#ifdef ALIGN_SID_SIZE + if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) +#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) +#endif { delta = 1; if ( output_frame == L_FRAME16k ) @@ -641,13 +653,21 @@ void applyDmxMdctStereo( fade = 1.f; dmx_len = output_frame; +#ifdef ALIGN_SID_SIZE + if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) +#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) +#endif { crossfade_len = NS2SA( hCPE->hCoreCoder[0]->output_Fs, IVAS_DEC_DELAY_NS - DELAY_CLDFB_NS ); step /= crossfade_len; } /* for first inactive CNG frame after active decoding we have to do a fade-OUT FROM the passive DMX */ +#ifdef ALIGN_SID_SIZE + else if ( hCPE->element_brate <= IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) +#else else if ( hCPE->element_brate <= IVAS_SID_4k4 && hCPE->last_element_brate > IVAS_SID_4k4 ) +#endif { crossfade_len = output_frame / 4; step /= -crossfade_len; diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index b2b7889569..2e32b8e85a 100755 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -424,7 +424,7 @@ ivas_error stereo_memory_dec( if ( hCPE->last_element_mode == IVAS_CPE_MDCT ) { cpy_tcx_ltp_data( hCPE->hCoreCoder[1]->hTcxLtpDec, hCPE->hStereoDft->hTcxLtpDec, output_Fs ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE deleteFdCngDec( &hCPE->hCoreCoder[1]->hFdCngDec ); #endif } @@ -489,7 +489,7 @@ ivas_error stereo_memory_dec( /* deallocated TCX/IGF structures for second channel */ deallocate_CoreCoder_TCX( hCPE->hCoreCoder[1] ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( hCPE->last_element_mode == IVAS_CPE_MDCT ) { deleteFdCngDec( &hCPE->hCoreCoder[1]->hFdCngDec ); @@ -675,7 +675,7 @@ ivas_error stereo_memory_dec( /* deallocate core-decoder substructures */ deallocate_CoreCoder( st ); -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* deallocate FD_CNG substructure */ deleteFdCngDec( &st->hFdCngDec ); #endif @@ -702,7 +702,7 @@ ivas_error stereo_memory_dec( } } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* allocate Fd-Cng structure for second channel */ if ( ( error = createFdCngDec( &st->hFdCngDec ) ) != IVAS_ERR_OK ) { @@ -832,7 +832,11 @@ ivas_error stereo_memory_dec( if ( ivas_format == STEREO_FORMAT && hCPE->element_mode == IVAS_CPE_MDCT ) { +#ifdef ALIGN_SID_SIZE + if ( hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_total_brate > IVAS_SID_5k2 ) +#else if ( hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_total_brate > IVAS_SID_4k4 ) +#endif { if ( hCPE->hStereoMdct->use_itd == 0 ) { @@ -852,13 +856,21 @@ ivas_error stereo_memory_dec( else { /* de-allocate TCA data structure */ +#ifdef ALIGN_SID_SIZE + if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate > IVAS_SID_5k2 && hCPE->hStereoTCA != NULL ) +#else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate > IVAS_SID_4k4 && hCPE->hStereoTCA != NULL ) +#endif { count_free( hCPE->hStereoTCA ); hCPE->hStereoTCA = NULL; hCPE->hStereoMdct->use_itd = 0; } +#ifdef ALIGN_SID_SIZE + else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate <= IVAS_SID_5k2 ) +#else else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate <= IVAS_SID_4k4 ) +#endif { hCPE->hStereoMdct->itd = 0.0f; } @@ -1011,7 +1023,11 @@ void synchro_synthesis( if ( use_cldfb_for_last_dft ) { +#ifdef ALIGN_SID_SIZE + if ( hCPE->element_mode == IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_TD && ( ivas_total_brate > IVAS_SID_5k2 || hCPE->nchan_out == 2 ) ) +#else if ( hCPE->element_mode == IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_TD && ( ivas_total_brate > IVAS_SID_4k4 || hCPE->nchan_out == 2 ) ) +#endif { stereo_tca_scale_R_channel( hCPE, output[0], output_frame ); } @@ -1349,7 +1365,11 @@ void stereo_switching_dec( mvr2r( hCPE->input_mem[n], hCPE->output_mem[n], dft32ms_ovl ); } +#ifdef ALIGN_SID_SIZE + if ( ivas_total_brate > IVAS_SID_5k2 || n == 0 || hCPE->last_element_mode != IVAS_CPE_TD || hCPE->nchan_out == 1 ) +#else if ( ivas_total_brate > IVAS_SID_4k4 || n == 0 || hCPE->last_element_mode != IVAS_CPE_TD || hCPE->nchan_out == 1 ) +#endif { for ( i = 0; i < dft32ms_ovl; i++ ) { @@ -1423,7 +1443,11 @@ void stereo_switching_dec( /* no secondary channel in the previous frame -> memory resets */ if ( hCPE->element_mode > IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_DFT ) { +#ifdef ALIGN_SID_SIZE + if ( hCPE->last_element_brate <= IVAS_SID_5k2 && hCPE->nchan_out == 2 ) +#else if ( hCPE->last_element_brate <= IVAS_SID_4k4 && hCPE->nchan_out == 2 ) +#endif { /* reset CLDFB memories */ cldfb_reset_memory( sts[0]->cldfbAna ); diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index e3462f21bc..e46c32ddbb 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -150,7 +150,7 @@ void stereo_tcx_init_dec( } /* Reconfigure Core */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct, last_element_mode ); #else mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct ); @@ -457,7 +457,7 @@ void stereo_tcx_core_dec( } /* PLC: [TCX: TD PLC] */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); #else con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); @@ -589,7 +589,7 @@ void stereo_tcx_core_dec( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, hTcxDec->L_frameTCX ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_post( st, synth, synthFB, Aq, bfi, 0 ); #else decoder_tcx_post( st, synth, synthFB, Aq, bfi ); @@ -750,7 +750,7 @@ void stereo_tcx_core_dec( if ( st->element_mode != IVAS_CPE_TD ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( signal_out, NULL, NULL, NULL, st, st->bfi, 0 ); #else ApplyFdCng( signal_out, NULL, NULL, st, st->bfi, 0 ); @@ -779,7 +779,7 @@ void stereo_tcx_core_dec( if ( st->element_mode == IVAS_CPE_TD && st->idchan == 0 ) { -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( signal_out, NULL, NULL, NULL, st, st->bfi, 0 ); #else ApplyFdCng( signal_out, NULL, NULL, st, st->bfi, 0 ); @@ -867,7 +867,7 @@ static void dec_prm_tcx( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE getTCXMode( st, st, 0 /* <- MCT_flag */ ); #else getTCXMode( st, st ); diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index c12a356146..fa2bb2b763 100755 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -110,12 +110,17 @@ ivas_error IVAS_DEC_Open( float no_diegetic_pan ) { IVAS_DEC_HANDLE hIvasDec; + Decoder_Struct *st_ivas; if ( phIvasDec == NULL ) { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } + /*-----------------------------------------------------------------* + * Allocate and initialize IVAS application decoder handle + *-----------------------------------------------------------------*/ + if ( ( *phIvasDec = (IVAS_DEC_HANDLE) count_malloc( sizeof( struct IVAS_DEC ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS decoder handle" ); @@ -128,6 +133,16 @@ ivas_error IVAS_DEC_Open( hIvasDec->mode = mode; + hIvasDec->bitstreamformat = G192; + hIvasDec->Opt_VOIP = 0; + hIvasDec->amrwb_rfc4867_flag = -1; + hIvasDec->prev_ft_speech = 1; /* RXDTX handler previous frametype flag for G.192 format AMRWB SID_FIRST detection */ + hIvasDec->CNG = 0; /* RXDTX handler CNG = 1, no CNG = 0*/ + + /*-----------------------------------------------------------------* + * Initialize IVAS-codec decoder state + *-----------------------------------------------------------------*/ + if ( ( hIvasDec->st_ivas = (Decoder_Struct *) count_malloc( sizeof( Decoder_Struct ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS decoder structure" ); @@ -138,50 +153,49 @@ ivas_error IVAS_DEC_Open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for Decoder config structure" ); } + /*-----------------------------------------------------------------* + * Initialize IVAS-codec decoder state + *-----------------------------------------------------------------*/ + + st_ivas = hIvasDec->st_ivas; + + /* initialize Decoder Config. handle */ init_decoder_config( hIvasDec->st_ivas->hDecoderConfig, orientation_tracking, no_diegetic_pan ); - hIvasDec->bitstreamformat = G192; - hIvasDec->Opt_VOIP = 0; - hIvasDec->amrwb_rfc4867_flag = -1; - hIvasDec->prev_ft_speech = 1; /* RXDTX handeler previous frametype flag for G.192 format AMRWB SID_FIRST detection */ - hIvasDec->CNG = 0; /* RXDTX handler CNG = 1, no CNG = 0*/ + /* initialize pointers to handles to NULL */ + ivas_initialize_handles_dec( st_ivas ); + /* set high-level parameters */ if ( mode == IVAS_DEC_MODE_EVS ) { - /* EVS - do alloc etc. */ - hIvasDec->st_ivas->codec_mode = 0; /* unknown before first frame */ - hIvasDec->st_ivas->element_mode_init = EVS_MONO; - hIvasDec->st_ivas->ivas_format = MONO_FORMAT; - hIvasDec->st_ivas->transport_config = AUDIO_CONFIG_INVALID; - hIvasDec->st_ivas->intern_config = AUDIO_CONFIG_INVALID; - hIvasDec->st_ivas->writeFECoffset = 0; + st_ivas->codec_mode = 0; /* unknown before first frame */ + st_ivas->element_mode_init = EVS_MONO; + st_ivas->ivas_format = MONO_FORMAT; + st_ivas->transport_config = AUDIO_CONFIG_INVALID; + st_ivas->intern_config = AUDIO_CONFIG_INVALID; + st_ivas->writeFECoffset = 0; return IVAS_ERR_OK; } else if ( mode == IVAS_DEC_MODE_IVAS ) { - hIvasDec->st_ivas->codec_mode = 0; /* unknown before first frame */ - hIvasDec->st_ivas->element_mode_init = -1; - hIvasDec->st_ivas->ivas_format = UNDEFINED_FORMAT; - hIvasDec->st_ivas->transport_config = AUDIO_CONFIG_INVALID; - hIvasDec->st_ivas->intern_config = AUDIO_CONFIG_INVALID; - hIvasDec->st_ivas->renderer_type = RENDERER_DISABLE; - hIvasDec->st_ivas->ini_frame = 0; - hIvasDec->st_ivas->ini_active_frame = 0; - hIvasDec->st_ivas->writeFECoffset = 0; -#ifndef SBA_ORDER_BITSTREAM - hIvasDec->st_ivas->sba_order = 0; -#else - hIvasDec->st_ivas->sba_analysis_order = 0; -#endif - hIvasDec->st_ivas->sba_planar = 0; + st_ivas->codec_mode = 0; /* unknown before first frame */ + st_ivas->element_mode_init = -1; + st_ivas->ivas_format = UNDEFINED_FORMAT; + st_ivas->transport_config = AUDIO_CONFIG_INVALID; + st_ivas->intern_config = AUDIO_CONFIG_INVALID; + st_ivas->renderer_type = RENDERER_DISABLE; + st_ivas->ini_frame = 0; + st_ivas->ini_active_frame = 0; + st_ivas->writeFECoffset = 0; - /*initialize pointers*/ - ivas_initialize_handles_dec( hIvasDec->st_ivas ); + st_ivas->ism_mode = ISM_MODE_NONE; + st_ivas->sba_mode = SBA_MODE_NONE; + st_ivas->mc_mode = MC_MODE_NONE; - hIvasDec->st_ivas->ism_mode = ISM_MODE_NONE; - hIvasDec->st_ivas->sba_mode = SBA_MODE_NONE; - hIvasDec->st_ivas->mc_mode = MC_MODE_NONE; + st_ivas->sba_order = 0; + st_ivas->sba_planar = 0; + st_ivas->sba_analysis_order = 0; return IVAS_ERR_OK; } @@ -236,38 +250,14 @@ void IVAS_DEC_Close( if ( ( *phIvasDec )->hVoIP ) { IVAS_DEC_Close_VoIP( ( *phIvasDec )->hVoIP ); - count_free( ( *phIvasDec )->hVoIP ); + ( *phIvasDec )->hVoIP = NULL; } - if ( ( *phIvasDec )->isInitialized ) + if ( ( *phIvasDec )->st_ivas ) { - if ( ( *phIvasDec )->st_ivas ) - { - ivas_destroy_dec( ( *phIvasDec )->st_ivas ); - } + ivas_destroy_dec( ( *phIvasDec )->st_ivas ); + ( *phIvasDec )->st_ivas = NULL; } - else - { - if ( ( *phIvasDec )->st_ivas->hDecoderConfig != NULL ) - { - count_free( ( *phIvasDec )->st_ivas->hDecoderConfig ); - ( *phIvasDec )->st_ivas->hDecoderConfig = NULL; - } - - if ( ( *phIvasDec )->st_ivas->hHeadTrackData != NULL ) - { - count_free( ( *phIvasDec )->st_ivas->hHeadTrackData ); - ( *phIvasDec )->st_ivas->hHeadTrackData = NULL; - } - - ivas_render_config_close( &( ( *phIvasDec )->st_ivas->hRenderConfig ) ); - - ivas_HRTF_binary_close( &( *phIvasDec )->st_ivas->hHrtfTD ); - - count_free( ( *phIvasDec )->st_ivas ); - } - - ( *phIvasDec )->st_ivas = NULL; count_free( *phIvasDec ); *phIvasDec = NULL; @@ -1141,7 +1131,11 @@ static bool isSidFrame( { return true; /* EVS SID */ } +#ifdef ALIGN_SID_SIZE + else if ( size == IVAS_SID_5k2 / FRAMES_PER_SEC ) +#else else if ( size == IVAS_SID_4k4 / FRAMES_PER_SEC ) +#endif { return true; /* IVAS SID */ } @@ -1474,6 +1468,8 @@ static void IVAS_DEC_Close_VoIP( pcmdsp_fifo_destroy( &hVoIP->hFifoAfterTimeScaler ); + count_free( hVoIP ); + return; } diff --git a/lib_dec/stat_dec.h b/lib_dec/stat_dec.h index 8fc8ec5282..0c7a836cb4 100644 --- a/lib_dec/stat_dec.h +++ b/lib_dec/stat_dec.h @@ -204,15 +204,16 @@ typedef struct Float32 *secondLastPcmOut; float *secondLastPowerSpectrum; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float scaleFactorsBackground[FDNS_NPTS]; + float scf_fadeout; PsychoacousticParameters *psychParams; - /* could be stored only once, since the same for all channels (always at 16Khz fs) */ PsychoacousticParameters psychParamsTCX20; PsychoacousticParameters psychParamsTCX10; float last_block_nrg; float curr_noise_nrg; + float faded_signal_nrg; #endif float nFramesLost; diff --git a/lib_dec/swb_tbe_dec.c b/lib_dec/swb_tbe_dec.c index 03d9162e34..2664aaa08d 100755 --- a/lib_dec/swb_tbe_dec.c +++ b/lib_dec/swb_tbe_dec.c @@ -1973,12 +1973,11 @@ static void dequantizeSHBparams( *-------------------------------------------------------------------*/ void fb_tbe_dec( - Decoder_State *st, /* i/o: decoder state structure */ - const float fb_exc[], /* i : FB excitation from the SWB part */ - float *hb_synth, /* o : high-band synthesis */ - float *fb_synth_ref /* o : high-band synthesis 16-20 kHz */ - , - const int16_t output_frame /* i: output frame length */ + Decoder_State *st, /* i/o: decoder state structure */ + const float fb_exc[], /* i : FB excitation from the SWB part */ + float *hb_synth, /* o : high-band synthesis */ + float *fb_synth_ref, /* o : high-band synthesis 16-20 kHz */ + const int16_t output_frame /* i : output frame length */ ) { int16_t i; diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index b43f85b8f9..776d28bcb5 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -93,14 +93,16 @@ ivas_error TonalMDCTConceal_Init( hTonalMDCTConc->nSamplesCore = nSamplesCore; hTonalMDCTConc->nScaleFactors = nScaleFactors; -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE set_zero( hTonalMDCTConc->scaleFactorsBackground, FDNS_NPTS ); + hTonalMDCTConc->scf_fadeout = 1.0f; PsychoacousticParameters_Init( INT_FS_16k, L_FRAME16k, 64, 1, 1, &hTonalMDCTConc->psychParamsTCX20 ); PsychoacousticParameters_Init( INT_FS_16k, L_FRAME16k / 2, 64, 0, 1, &hTonalMDCTConc->psychParamsTCX10 ); hTonalMDCTConc->psychParams = NULL; hTonalMDCTConc->last_block_nrg = 0.0f; hTonalMDCTConc->curr_noise_nrg = 0.0f; + hTonalMDCTConc->faded_signal_nrg = 0.0f; #endif /* Offset the pointer to the end of buffer, so that pTCI is not destroyed when @@ -123,7 +125,7 @@ void TonalMDCTConceal_SaveFreqSignal( const uint16_t nNewSamples, const uint16_t nNewSamplesCore, const float *scaleFactors -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t infoIGFStartLine #endif @@ -168,7 +170,7 @@ void TonalMDCTConceal_SaveFreqSignal( if ( ( nNewSamples > 0 ) && ( nNewSamples <= 2 * L_FRAME_MAX ) ) { /* Store new data */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t i; hTonalMDCTConc->last_block_nrg = 0.0f; @@ -500,8 +502,9 @@ void TonalMDCTConceal_InsertNoise( int16_t *pSeed, const float tiltCompFactor, const float crossfadeGain, -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const float concealment_noise[L_FRAME48k], + const float cngLevelBackgroundTrace_bfi, #endif const int16_t crossOverFreq ) { @@ -509,11 +512,18 @@ void TonalMDCTConceal_InsertNoise( float x, y; Word16 rnd; float g, nrgNoiseInLastFrame, nrgWhiteNoise, tiltFactor, tilt; +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + float last_block_nrg_correct; +#endif wmops_sub_start( "InsertNoise" ); g = 1.0f - crossfadeGain; +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) +#else if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) +#endif { rnd = 1977; } @@ -522,13 +532,15 @@ void TonalMDCTConceal_InsertNoise( rnd = *pSeed; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* based on what is done in tcx_noise_filling() */ /* always initialize these to avoid compiler warnings */ tiltFactor = (float) pow( max( 0.375f, tiltCompFactor ), 1.0f / hTonalMDCTConc->lastBlockData.nSamples ); tilt = 1.0f; nrgNoiseInLastFrame = 0.0f; nrgWhiteNoise = 0.0f; + hTonalMDCTConc->faded_signal_nrg = 0.0f; + last_block_nrg_correct = 0.0f; #endif if ( !hTonalMDCTConc->lastBlockData.blockIsValid ) @@ -536,7 +548,7 @@ void TonalMDCTConceal_InsertNoise( /* may just become active if the very first frame is lost */ set_f( mdctSpectrum, 0.0f, hTonalMDCTConc->nSamples ); } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE else if ( concealment_noise != NULL ) { if ( !tonalConcealmentActive ) @@ -564,7 +576,7 @@ void TonalMDCTConceal_InsertNoise( /* actual fadeout is done in this case */ else { - g *= (float) sqrt( hTonalMDCTConc->last_block_nrg / hTonalMDCTConc->curr_noise_nrg ); + g *= (float) sqrt( cngLevelBackgroundTrace_bfi / hTonalMDCTConc->curr_noise_nrg ); for ( i = 0; i < crossOverFreq; i++ ) { @@ -579,6 +591,8 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[i] = g * y - crossfadeGain * x; } + + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[i] * mdctSpectrum[i]; } for ( l = crossOverFreq; l < hTonalMDCTConc->lastBlockData.nSamples; l++ ) { @@ -599,6 +613,11 @@ void TonalMDCTConceal_InsertNoise( for ( l = hTonalMDCTConc->pTCI->lowerIndex[i]; l <= hTonalMDCTConc->pTCI->upperIndex[i]; l++ ) { mdctSpectrum[l] = 0; + if ( l < crossOverFreq ) + { + last_block_nrg_correct += hTonalMDCTConc->lastBlockData.spectralData[l] * hTonalMDCTConc->lastBlockData.spectralData[l]; + hTonalMDCTConc->curr_noise_nrg -= concealment_noise[l] * concealment_noise[l]; + } } } @@ -651,7 +670,7 @@ void TonalMDCTConceal_InsertNoise( /* actual fadeout is done in this case */ else { - g *= (float) sqrt( hTonalMDCTConc->last_block_nrg / hTonalMDCTConc->curr_noise_nrg ); + g *= (float) sqrt( cngLevelBackgroundTrace_bfi / hTonalMDCTConc->curr_noise_nrg ); for ( l = 0; l < hTonalMDCTConc->pTCI->lowerIndex[0]; l++ ) { @@ -666,6 +685,7 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[l] * mdctSpectrum[l]; } for ( i = 1; i < hTonalMDCTConc->pTCI->numIndexes; i++ ) { @@ -682,6 +702,7 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[l] * mdctSpectrum[l]; } } @@ -698,6 +719,7 @@ void TonalMDCTConceal_InsertNoise( { mdctSpectrum[l] = g * y - crossfadeGain * x; } + hTonalMDCTConc->faded_signal_nrg += mdctSpectrum[l] * mdctSpectrum[l]; } for ( l = crossOverFreq; l < hTonalMDCTConc->lastBlockData.nSamples; l++ ) @@ -706,11 +728,19 @@ void TonalMDCTConceal_InsertNoise( } } } + + if ( hTonalMDCTConc->faded_signal_nrg > 0.0f && hTonalMDCTConc->curr_noise_nrg > MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG ) + { + float nrg_corr_factor; + + nrg_corr_factor = sqrtf( ( hTonalMDCTConc->last_block_nrg - last_block_nrg_correct ) / hTonalMDCTConc->faded_signal_nrg ); + v_multc( mdctSpectrum, nrg_corr_factor, mdctSpectrum, crossOverFreq ); + } } #endif else { -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* based on what is done in tcx_noise_filling() */ tiltFactor = (float) pow( max( 0.375f, tiltCompFactor ), 1.0f / hTonalMDCTConc->lastBlockData.nSamples ); tilt = 1.0f; @@ -962,7 +992,7 @@ void TonalMDCTConceal_SaveTimeSignal( return; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE void TonalMdctConceal_create_concealment_noise( float concealment_noise[L_FRAME48k], CPE_DEC_HANDLE hCPE, @@ -971,7 +1001,7 @@ void TonalMdctConceal_create_concealment_noise( const int16_t idchan, const int16_t subframe_idx, const int16_t core, - const int16_t crossfade_gain, + const float crossfade_gain, const TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode ) { STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct; @@ -1049,7 +1079,6 @@ void TonalMdctConceal_create_concealment_noise( c_inv = sqrtf( 1 - hStereoMdct->lastCoh ); /* pre-compute the noise shape for later weighting of the noise spectra */ - /* TODO: optimize by intertwining with later loop */ cngNoiseLevelPtr = &hFdCngCom->cngNoiseLevel[0]; inc = ( st->core > TCX_20_CORE ) ? 2 : 1; start_idx = hFdCngCom->startBand / inc; @@ -1072,7 +1101,7 @@ void TonalMdctConceal_create_concealment_noise( } /* fill the noise vector */ - hTonalMDCTConc->curr_noise_nrg = 0.001f; + hTonalMDCTConc->curr_noise_nrg = MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG; if ( noise_gen_mode == EQUAL_CORES || ( ( noise_gen_mode == TCX20_IN_0_TCX10_IN_1 && idchan == 0 ) || ( noise_gen_mode == TCX10_IN_0_TCX20_IN_1 && idchan == 1 ) ) ) { /* current channel is TCX20 -> generate noise for "full-length" spectrum */ @@ -1100,6 +1129,14 @@ void TonalMdctConceal_create_concealment_noise( } } + if ( st->tonal_mdct_plc_active ) + { + for ( i = crossOverFreq; i < max( crossOverFreq, hTonalMDCTConc->pTCI->lowerIndex[hTonalMDCTConc->pTCI->numIndexes - 1] ); ++i ) + { + concealment_noise[i] *= 0.0f; + } + } + /* restore common seed - after finishing the first channel - after a first subframe if the current channel is TCX10 */ @@ -1108,8 +1145,68 @@ void TonalMdctConceal_create_concealment_noise( *rnd_c = save_rnd_c; } + st->seed_tcx_plc = *rnd; + wmops_sub_end(); return; } + +void TonalMdctConceal_whiten_noise_shape( + Decoder_State *st, + const int16_t L_frame, + const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE whitening_mode +) +{ + int16_t inc, start_idx, stop_idx; + float *noiseLevelPtr, *scfs_bg, *scfs_for_shaping; + HANDLE_FD_CNG_COM hFdCngCom; + float whitenend_noise_shape[L_FRAME16k]; + float scfs_int[FDNS_NPTS]; + const PsychoacousticParameters *psychParams; + + wmops_sub_start( "apply_sns_on_noise_shape" ); + + scfs_bg = &st->hTonalMDCTConc->scaleFactorsBackground[0]; + psychParams = st->hTonalMDCTConc->psychParams; + hFdCngCom = st->hFdCngDec->hFdCngCom; + + inc = ( ( whitening_mode == ON_FIRST_LOST_FRAME ? st->core : st->last_core ) > TCX_20_CORE ) ? 2 : 1; + start_idx = hFdCngCom->startBand / inc; + stop_idx = L_frame / inc; + noiseLevelPtr = hFdCngCom->cngNoiseLevel; + + set_zero( whitenend_noise_shape, start_idx ); + for ( int16_t j = start_idx; j < stop_idx; j++, noiseLevelPtr += inc ) + { + whitenend_noise_shape[j] = *noiseLevelPtr; + } + + if ( whitening_mode == ON_FIRST_LOST_FRAME ) + { + float scf[SNS_NPTS]; + + sns_compute_scf( whitenend_noise_shape, psychParams, L_frame, scf ); + sns_interpolate_scalefactors( scfs_int, scf, ENC ); + sns_interpolate_scalefactors( scfs_bg, scf, DEC ); + scfs_for_shaping = &scfs_int[0]; + } + else /* whitening_mode == ON_FIRST_GOOD_FRAME */ + { + scfs_for_shaping = &scfs_bg[0]; + } + + if ( sum_f( scfs_for_shaping, FDNS_NPTS ) > 0.0f ) + { + sns_shape_spectrum( whitenend_noise_shape, psychParams, scfs_for_shaping, L_frame ); + mvr2r( whitenend_noise_shape + start_idx, hFdCngCom->cngNoiseLevel, stop_idx - start_idx ); + } + else + { + set_zero( hFdCngCom->cngNoiseLevel, stop_idx - start_idx ); + } + + wmops_sub_end(); +} + #endif diff --git a/lib_enc/bw_detect.c b/lib_enc/bw_detect.c index c1357a7f74..c2955f1f39 100644 --- a/lib_enc/bw_detect.c +++ b/lib_enc/bw_detect.c @@ -494,7 +494,6 @@ void bw_detect( st->input_bwidth = st->max_bwidth; } - if ( st->element_mode == EVS_MONO ) { set_bw( -1, -1, st, st->codec_mode ); diff --git a/lib_enc/enc_prm.c b/lib_enc/enc_prm.c index 062069ceee..33c9d6fc7b 100644 --- a/lib_enc/enc_prm.c +++ b/lib_enc/enc_prm.c @@ -55,7 +55,7 @@ void writeTCXMode( Encoder_State *st, /* i/o: encoder state structure */ BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t is_mct, #endif int16_t *nbits_start /* o : nbits start */ @@ -88,7 +88,7 @@ void writeTCXMode( push_next_indice( hBstr, index, 2 ); -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !is_mct ) { push_next_indice( hBstr, st->vad_flag, 1 ); @@ -792,7 +792,7 @@ void enc_prm( /* EVS header */ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE writeTCXMode( st, st->hBstr, 0, /* <- is_mct */ &nbits_start ); #else writeTCXMode( st, st->hBstr, &nbits_start ); diff --git a/lib_enc/fd_cng_enc.c b/lib_enc/fd_cng_enc.c index c2dfb1969f..2f98addc8d 100644 --- a/lib_enc/fd_cng_enc.c +++ b/lib_enc/fd_cng_enc.c @@ -902,6 +902,12 @@ void stereoFdCngCoherence( sts[0]->core_brate = SID_2k40; sts[1]->core_brate = SID_2k40; } + +#ifdef FIX_CONTROLLABLE_SID_UPDATE_RATE + /* synchronize SID counters */ + sts[0]->hDtxEnc->cnt_SID = min( sts[0]->hDtxEnc->cnt_SID, sts[1]->hDtxEnc->cnt_SID ); + sts[1]->hDtxEnc->cnt_SID = sts[0]->hDtxEnc->cnt_SID; +#endif } pt_fftL = fft_buff[0]; @@ -1002,11 +1008,7 @@ void FdCngEncodeMDCTStereoSID( convertToMS( N, ms_ptr[0], ms_ptr[1], 0.5f ); } - side_energy = 0.0f; - for ( p = 0; p < N; p++ ) - { - side_energy += ms_ptr[1][p] * ms_ptr[1][p]; - } + side_energy = sum2_f( ms_ptr[1], N ); /* do not transmit side shape if initial noise shapes are very similar */ if ( side_energy <= 0.1f ) @@ -1128,6 +1130,11 @@ void FdCngEncodeMDCTStereoSID( push_indice( sts[ch]->hBstr, IND_ENERGY, gain_idx[ch], 7 ); } +#ifdef ALIGN_SID_SIZE + /* pad with zeros to reach common SID frame size */ + push_indice( sts[1]->hBstr, IND_ENERGY, 0, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); +#endif + return; } @@ -1181,18 +1188,11 @@ void FdCngEncodeDiracMDCTStereoSID( /* M/S transform on log envelopes */ convertToMS( NPART, ms_ptr[0], ms_ptr[1], 0.5f ); - E[0] = 0.0f; - for ( p = 0; p < NPART; p++ ) - { - E[0] += ms_ptr[0][p]; - } + E[0] = sum_f( ms_ptr[0], NPART ); + /* Quantize M noise shape */ /* Normalize MSVW input */ - gain[0] = 0.f; - for ( p = N_GAIN_MIN; p < N_GAIN_MAX; p++ ) - { - gain[0] += ms_ptr[0][p]; - } + gain[0] = sum_f( ms_ptr[0] + N_GAIN_MIN, N_GAIN_MAX - N_GAIN_MIN ); gain[0] /= (float) ( N_GAIN_MAX - N_GAIN_MIN ); for ( p = 0; p < N[0]; p++ ) @@ -1208,11 +1208,7 @@ void FdCngEncodeDiracMDCTStereoSID( set_zero( ms_ptr[1], NPART ); /* compute M gain */ - gain[0] = 0.f; - for ( p = 0; p < NPART; p++ ) - { - gain[0] += ms_ptr[0][p]; - } + gain[0] = sum_f( ms_ptr[0], NPART ); gain[0] = ( E[0] - gain[0] ) / (float) N[0]; apply_scale( &gain[0], sts[0]->hFdCngEnc->hFdCngCom->CngBandwidth, sts[0]->hDtxEnc->last_active_brate, scaleTableStereo, SIZE_SCALE_TABLE_STEREO ); diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c index 2cf98207bb..7b658908b5 100644 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -1852,13 +1852,17 @@ void IGFEncApplyStereo( const IGF_ENC_INSTANCE_HANDLE hIGFEnc[CPE_CHANNELS], /* i : instance handle of IGF Encoder */ const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ +#ifdef DRAM_REDUCTION_MCT_IGF + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i/o: inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subfr. */ const int16_t sp_aud_decision0, /* i : sp_aud_decision0 */ const int32_t element_brate, /* i : element bitrate */ - const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ + const int16_t mct_on /* i : flag mct block (1) or stereo (0) */ ) { float *pPowerSpectrumParameter[2]; /* If it is NULL it informs a function that specific handling is needed */ diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 493d1ac071..3ed7bb6d2f 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -242,7 +242,7 @@ void ivas_agc_enc_process( if ( !isClipped ) { - if ( ( ppPcm_out[i][j] > ( 1.f - pState->minDelta ) ) || ( ppPcm_out[i][j] < -1.f ) ) + if ( ( ppPcm_out[i][j] > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( ppPcm_out[i][j] < MIN16B_FLT ) ) { if ( j < offset ) { @@ -278,7 +278,7 @@ void ivas_agc_enc_process( maxGain = max( smoothedMaxAbsVal, MaxAbsVal ) * pState->gain_state[i].lastGain * 2.f; - if ( maxGain < 1.f - pState->minDelta ) + if ( maxGain < ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) { pState->gain_state[i].gainExpVal = -1; } @@ -313,7 +313,7 @@ void ivas_agc_enc_process( { int16_t isCompensated = FALSE; pState->gain_data[i].gainException = FALSE; - pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal ) / logf( pState->agc_com.winFunc[MaxAbsValIdx] ) ); + pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[MaxAbsValIdx] ) ); while ( !isCompensated ) { @@ -324,7 +324,7 @@ void ivas_agc_enc_process( { tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[idx], (float) pState->gain_state[i].gainExpVal ); - if ( ( tmpSignal > ( 1.f - pState->minDelta ) ) || ( tmpSignal < -1.f ) ) + if ( ( tmpSignal > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( tmpSignal < MIN16B_FLT ) ) { isCompensated = FALSE; break; @@ -374,7 +374,7 @@ void ivas_agc_enc_process( } else { - pState->gain_state[i].gainExpVal = (int16_t) ( -floorf( -logf( actualMaxAbsVal + pState->minDelta ) * INV_LOG_2 ) ); + pState->gain_state[i].gainExpVal = (int16_t) ( -floorf( -logf( ( actualMaxAbsVal + pState->minDelta ) * MDFT_NORM_SCALING ) * INV_LOG_2 ) ); pState->gain_state[i].gainExpVal = min( gainExpValMaxRange, pState->gain_state[i].gainExpVal ); gain = powf( 2.0f, -1.0f * pState->gain_state[i].gainExpVal ); diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index b543761491..08c45af220 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -115,7 +115,6 @@ ivas_error ivas_cpe_enc( input_Fs = hEncoderConfig->input_Fs; ivas_total_brate = hEncoderConfig->ivas_total_brate; - /*------------------------------------------------------------------* * Initialization - general *-----------------------------------------------------------------*/ @@ -344,12 +343,6 @@ ivas_error ivas_cpe_enc( sts[0]->total_brate = ( sts[0]->bits_frame_nominal + 10 ) * FRAMES_PER_SEC; /* add small overhead; st[0]->total_brate used in coder_type_modif() */ - if ( ( sts[0]->last_bwidth < max_bwidth ) || ( sts[0]->last_core_brate <= SID_2k40 ) ) /* IVAS_fmToDo: TBV - BWD output is not known here yet !!! */ - { - /* reconfigure in case of BW switching or if last frame was a SID/NO_DATA with coarse partitioning */ - hCPE->hStereoDft->nbands = stereo_dft_band_config( hCPE->hStereoDft->band_limits, hCPE->hStereoDft->hConfig->band_res, hCPE->hStereoDft->NFFT, ENC ); - } - /* Update DFT Stereo memories */ stereo_dft_enc_update( hCPE->hStereoDft, sts[0]->max_bwidth #ifdef DEBUG_MODE_DFT @@ -460,7 +453,11 @@ ivas_error ivas_cpe_enc( { if ( hCPE->element_mode == IVAS_CPE_DFT || hCPE->element_mode == IVAS_CPE_TD ) { +#ifdef ALIGN_SID_SIZE + reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode ); +#else reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode, hCPE->element_mode ); +#endif } } @@ -472,7 +469,11 @@ ivas_error ivas_cpe_enc( /* Reset metadata */ if ( sts[0]->cng_sba_flag || ( ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR ) ) { +#ifdef ALIGN_SID_SIZE + reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode ); +#else reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode, hCPE->element_mode ); +#endif } } @@ -541,7 +542,11 @@ ivas_error ivas_cpe_enc( * Write IVAS format signaling in SID frames *----------------------------------------------------------------*/ +#ifdef ALIGN_SID_SIZE + if ( sts[0]->core_brate == SID_2k40 ) +#else if ( sts[0]->core_brate == SID_2k40 && ( ivas_format != SBA_FORMAT || st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#endif { ivas_write_format_sid( ivas_format, hCPE->element_mode, sts[0]->hBstr ); } @@ -560,7 +565,11 @@ ivas_error ivas_cpe_enc( /* Reconfigure DFT Stereo for inactive frames */ if ( sts[0]->core_brate == SID_2k40 ) { +#ifdef ALIGN_SID_SIZE + stereo_dft_config( hCPE->hStereoDft->hConfig, IVAS_SID_5k2, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); +#else stereo_dft_config( hCPE->hStereoDft->hConfig, IVAS_SID_4k4, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); +#endif } else { @@ -604,7 +613,11 @@ ivas_error ivas_cpe_enc( if ( sts[0]->core_brate == FRAME_NO_DATA || sts[0]->core_brate == SID_2k40 ) { +#ifdef ALIGN_SID_SIZE + assert( ( nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) ) && "Stereo DFT CNG: bit budget is violated" ); +#else assert( ( nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) ) && "Stereo DFT CNG: bit budget is violated" ); +#endif } else { diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 557cb109ca..9d5893622d 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -122,19 +122,29 @@ ivas_error ivas_dirac_enc_open( if ( st_ivas->sba_mode == SBA_MODE_DIRAC ) { hDirAC->num_samples_synchro_delay = NS2SA( input_Fs, IVAS_FB_ENC_DELAY_NS ); +#ifdef FIX_DIRAC_CHANNELS + for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) +#else for ( i = 0; i < st_ivas->hEncoderConfig->nchan_inp; i++ ) +#endif { hDirAC->sba_synchro_buffer[i] = (float *) count_malloc( hDirAC->num_samples_synchro_delay * sizeof( float ) ); set_zero( hDirAC->sba_synchro_buffer[i], hDirAC->num_samples_synchro_delay ); } +#ifndef FIX_DIRAC_CHANNELS for ( ; i < IVAS_MAX_NUM_CH; i++ ) { hDirAC->sba_synchro_buffer[i] = NULL; } +#endif } else { +#ifdef FIX_DIRAC_CHANNELS + for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { hDirAC->sba_synchro_buffer[i] = NULL; } @@ -242,7 +252,11 @@ void ivas_dirac_enc_close( ivas_FB_mixer_close( &hDirAC->hFbMixer, input_Fs ); } +#ifdef FIX_DIRAC_CHANNELS + for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { if ( hDirAC->sba_synchro_buffer[i] != NULL ) { @@ -412,9 +426,7 @@ void ivas_dirac_enc( } /* encode SID parameters */ - ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, - SBA_FORMAT, - SBA_MODE_DIRAC ); + ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, SBA_FORMAT, SBA_MODE_DIRAC ); /* restore original metadata */ hDirAC->hConfig->nbands = nbands; @@ -429,10 +441,12 @@ void ivas_dirac_enc( } else { +#ifdef ALIGN_SID_SIZE + /*indicate whether SPAR or DiRAC mode*/ + push_next_indice( hMetaData, 0, 1 ); +#endif /* encode SID parameters */ - ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, - SBA_FORMAT, - SBA_MODE_DIRAC ); + ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, SBA_FORMAT, SBA_MODE_DIRAC ); } } } @@ -442,6 +456,7 @@ void ivas_dirac_enc( return; } + /*------------------------------------------------------------------------- * computeReferencePower_enc() * @@ -457,7 +472,11 @@ void ivas_dirac_enc_spar_delay_synchro( int16_t ch_idx; float tmp_buffer[L_FRAME48k]; +#ifdef FIX_DIRAC_CHANNELS + for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) +#else for ( ch_idx = 0; ch_idx < st_ivas->hEncoderConfig->nchan_inp; ch_idx++ ) +#endif { mvr2r( data_f[ch_idx], tmp_buffer, input_frame ); mvr2r( st_ivas->hDirAC->sba_synchro_buffer[ch_idx], data_f[ch_idx], st_ivas->hDirAC->num_samples_synchro_delay ); @@ -468,6 +487,7 @@ void ivas_dirac_enc_spar_delay_synchro( return; } + /*------------------------------------------------------------------------- * computeReferencePower_enc() * @@ -507,11 +527,13 @@ void computeReferencePower_enc( return; } + /*------------------------------------------------------------------------- * ivas_dirac_param_est_enc() * * *------------------------------------------------------------------------*/ + void ivas_dirac_param_est_enc( DIRAC_ENC_HANDLE hDirAC, IVAS_QDIRECTION *q_direction, diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index 21a7eb839f..e4db2ce2a1 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -233,53 +233,22 @@ void copy_encoder_config( st->force = st_ivas->hEncoderConfig->force; #endif st->element_mode = st_ivas->hEncoderConfig->element_mode_init; + return; } -/*-------------------------------------------------------------------* - * ivas_init_encoder() +/*------------------------------------------------------------------------- + * ivas_initialize_handles_enc() * - * Initialize IVAS encoder state structure - *-------------------------------------------------------------------*/ + * NULL initialization of handles + *-------------------------------------------------------------------------*/ -ivas_error ivas_init_encoder( - Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ - Indice ind_list[][MAX_NUM_INDICES], /* o : bitstream indices */ - Indice ind_list_metadata[][MAX_BITS_METADATA] /* o : bitstream indices metadata */ +void ivas_initialize_handles_enc( + Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ ) { - int16_t i, n; - int16_t sce_id, cpe_id; - IVAS_FORMAT ivas_format; - int32_t input_Fs, ivas_total_brate; - ENCODER_CONFIG_HANDLE hEncoderConfig; - ivas_error error; - - error = IVAS_ERR_OK; - - hEncoderConfig = st_ivas->hEncoderConfig; - ivas_format = hEncoderConfig->ivas_format; - input_Fs = hEncoderConfig->input_Fs; - ivas_total_brate = hEncoderConfig->ivas_total_brate; - - hEncoderConfig->last_ivas_total_brate = ivas_total_brate; - - if ( ivas_format != MONO_FORMAT ) - { - /* In IVAS, ensure that minimum coded bandwidth is WB */ - hEncoderConfig->max_bwidth = max( hEncoderConfig->max_bwidth, WB ); - } - - st_ivas->ism_mode = ISM_MODE_NONE; - st_ivas->mc_mode = MC_MODE_NONE; - st_ivas->sba_mode = SBA_MODE_NONE; - - /*-----------------------------------------------------------------* - * Dummy pointers to max. number of SCEs and CPEs - *-----------------------------------------------------------------*/ - - st_ivas->nchan_transport = -1; + int16_t i; for ( i = 0; i < MAX_SCE; i++ ) { @@ -291,10 +260,12 @@ ivas_error ivas_init_encoder( st_ivas->hCPE[i] = NULL; } + st_ivas->mem_hp20_in = NULL; + /* ISm metadata handles */ - for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) + for ( i = 0; i < MAX_NUM_OBJECTS; i++ ) { - st_ivas->hIsmMetaData[n] = NULL; + st_ivas->hIsmMetaData[i] = NULL; } /* Q Metadata handle */ @@ -324,6 +295,50 @@ ivas_error ivas_init_encoder( /* LFE handle */ st_ivas->hLFE = NULL; + return; +} + + +/*-------------------------------------------------------------------* + * ivas_init_encoder() + * + * Initialize IVAS encoder state structure + *-------------------------------------------------------------------*/ + +ivas_error ivas_init_encoder( + Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ + Indice ind_list[][MAX_NUM_INDICES], /* o : bitstream indices */ + Indice ind_list_metadata[][MAX_BITS_METADATA] /* o : bitstream indices metadata */ +) +{ + int16_t i, n; + int16_t sce_id, cpe_id; + IVAS_FORMAT ivas_format; + int32_t input_Fs, ivas_total_brate; + ENCODER_CONFIG_HANDLE hEncoderConfig; + ivas_error error; + + error = IVAS_ERR_OK; + + hEncoderConfig = st_ivas->hEncoderConfig; + ivas_format = hEncoderConfig->ivas_format; + input_Fs = hEncoderConfig->input_Fs; + ivas_total_brate = hEncoderConfig->ivas_total_brate; + + hEncoderConfig->last_ivas_total_brate = ivas_total_brate; + + if ( ivas_format != MONO_FORMAT ) + { + /* In IVAS, ensure that minimum coded bandwidth is WB */ + hEncoderConfig->max_bwidth = max( hEncoderConfig->max_bwidth, WB ); + } + + st_ivas->ism_mode = ISM_MODE_NONE; + st_ivas->mc_mode = MC_MODE_NONE; + st_ivas->sba_mode = SBA_MODE_NONE; + + st_ivas->nchan_transport = -1; + /*-----------------------------------------------------------------* * Allocate and initialize SCE/CPE and other handles *-----------------------------------------------------------------*/ @@ -412,17 +427,17 @@ ivas_error ivas_init_encoder( } else if ( ivas_format == SBA_FORMAT || ivas_format == MASA_FORMAT ) { + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { - if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) - { - return error; - } + return error; } if ( ivas_format == SBA_FORMAT ) { st_ivas->sba_mode = ivas_sba_mode_select( ivas_total_brate ); + st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { if ( ( error = ivas_spar_enc_open( st_ivas ) ) != IVAS_ERR_OK ) @@ -581,6 +596,7 @@ ivas_error ivas_init_encoder( else if ( st_ivas->mc_mode == MC_MODE_MCMASA ) { ivas_mcmasa_setNumTransportChannels( &( st_ivas->nchan_transport ), &( hEncoderConfig->element_mode_init ), ivas_total_brate ); + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { return error; @@ -868,7 +884,7 @@ void ivas_destroy_enc( if ( st_ivas->hSCE[i] != NULL ) { destroy_sce_enc( st_ivas->hSCE[i] ); - st_ivas->hSCE[0] = NULL; + st_ivas->hSCE[i] = NULL; } } diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 2653829d13..2433c01802 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -214,7 +214,11 @@ ivas_error ivas_ism_enc( ivas_write_format_sid( st_ivas->hEncoderConfig->ivas_format, IVAS_SCE, st->hBstr ); /* write unused bits */ +#ifdef ALIGN_SID_SIZE + nBits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else nBits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif while ( nBits > 0 ) { i = min( nBits, 16 ); diff --git a/lib_enc/ivas_masa_enc.c b/lib_enc/ivas_masa_enc.c index 2e233bbc6d..c2649adc56 100644 --- a/lib_enc/ivas_masa_enc.c +++ b/lib_enc/ivas_masa_enc.c @@ -350,9 +350,7 @@ void ivas_masa_encode( count_free( h_orig_metadata ); - ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, masa_sid_descriptor, - ivas_format, - SBA_MODE_NONE ); + ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, masa_sid_descriptor, ivas_format, SBA_MODE_NONE ); /* restore old values */ hMasa->config.numCodingBands = numCodingBands; diff --git a/lib_enc/ivas_mcmasa_enc.c b/lib_enc/ivas_mcmasa_enc.c index 595f758e51..a281ec4760 100644 --- a/lib_enc/ivas_mcmasa_enc.c +++ b/lib_enc/ivas_mcmasa_enc.c @@ -70,9 +70,7 @@ static void ivas_mcmasa_dmx( MCMASA_ENC_HANDLE hMcMasa, float data_f[][L_FRAME48 static void compute_cov_mtx( float sr[MCMASA_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], float si[MCMASA_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], const int16_t freq, const int16_t N, CovarianceMatrix *COVls ); -static void computeIntensityVector_enc( const int16_t *band_grouping, float Cldfb_RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], float Cldfb_ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], const int16_t enc_param_start_band, /* i: first band to process */ - const int16_t num_frequency_bands, - float intensity_real[DIRAC_NUM_DIMS][MASA_FREQUENCY_BANDS] ); +static void computeIntensityVector_enc( const int16_t *band_grouping, float Cldfb_RealBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], float Cldfb_ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], const int16_t enc_param_start_band, const int16_t num_frequency_bands, float intensity_real[DIRAC_NUM_DIMS][MASA_FREQUENCY_BANDS] ); static void computeVerticalDiffuseness( float **buffer_intensity, const float *buffer_energy, const int16_t averaging_length, const int16_t num_freq_bands, float *diffuseness ); diff --git a/lib_enc/ivas_mct_enc.c b/lib_enc/ivas_mct_enc.c index 20a2856654..9aa5fe04c5 100644 --- a/lib_enc/ivas_mct_enc.c +++ b/lib_enc/ivas_mct_enc.c @@ -193,25 +193,26 @@ ivas_error create_mct_enc( hMCT->nchan_out_woLFE = st_ivas->hEncoderConfig->nchan_inp - 1; /* LFE channel is coded separately */ hMCT->num_lfe = TRUE; } - else if ( ivas_format == SBA_FORMAT && st_ivas->hSpar ) +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + else if ( ivas_format == SBA_FORMAT ) { -#ifndef SBA_ORDER_BITSTREAM - hMCT->nchan_out_woLFE = ivas_get_spar_num_TCs( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); + hMCT->nchan_out_woLFE = ivas_get_sba_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); + + hMCT->num_lfe = FALSE; + } #else + else if ( ivas_format == SBA_FORMAT && st_ivas->hSpar ) + { hMCT->nchan_out_woLFE = ivas_get_spar_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); -#endif hMCT->num_lfe = FALSE; } else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) { -#ifndef SBA_ORDER_BITSTREAM - hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); -#else hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); -#endif hMCT->num_lfe = FALSE; } +#endif else if ( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_PARAMMC ) { hMCT->nchan_out_woLFE = ivas_param_mc_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->mc_input_setup ); @@ -219,11 +220,7 @@ ivas_error create_mct_enc( } else if ( ivas_format == SBA_FORMAT ) { -#ifndef SBA_ORDER_BITSTREAM - hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); -#else hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); -#endif hMCT->num_lfe = FALSE; } else @@ -349,24 +346,29 @@ ivas_error mct_enc_reconfigure( hMCT->nchan_out_woLFE = st_ivas->hEncoderConfig->nchan_inp - 1; /* LFE channel is coded separately */ hMCT->num_lfe = TRUE; } - else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) // VE: this condition to be reviewed together with the following one { -#ifndef SBA_ORDER_BITSTREAM - hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); + hMCT->nchan_out_woLFE = ivas_get_sba_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); + hMCT->num_lfe = FALSE; + } + else if ( ivas_format == SBA_FORMAT ) + { + hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); + hMCT->num_lfe = FALSE; + } #else + else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) + { hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); -#endif hMCT->num_lfe = FALSE; } else if ( ivas_format == SBA_FORMAT ) { -#ifndef SBA_ORDER_BITSTREAM - hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); -#else hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); -#endif hMCT->num_lfe = FALSE; } +#endif else { assert( !"IVAS format currently not supported for MCT" ); diff --git a/lib_enc/ivas_mct_enc_mct.c b/lib_enc/ivas_mct_enc_mct.c index 62ff9be888..309a023fe7 100644 --- a/lib_enc/ivas_mct_enc_mct.c +++ b/lib_enc/ivas_mct_enc_mct.c @@ -834,7 +834,11 @@ void mctStereoIGF_enc( float *p_powerSpecMsInv[CPE_CHANNELS][NB_DIV]; float *p_inv_spectrum[CPE_CHANNELS][NB_DIV]; float *p_orig_spectrum[CPE_CHANNELS][NB_DIV]; +#ifdef DRAM_REDUCTION_MCT_IGF + float *p_powerSpec[NB_DIV]; +#else float p_powerSpec[NB_DIV][N_MAX]; +#endif int16_t singleChEle[MCT_MAX_CHANNELS]; L_subframeTCX = 0; /* to avoid compilation warning */ @@ -855,10 +859,15 @@ void mctStereoIGF_enc( p_st[0] = sts[ch1]; p_st[1] = sts[ch2]; +#ifdef DRAM_REDUCTION_MCT_IGF + p_powerSpec[0] = powerSpec[ch1]; + p_powerSpec[1] = powerSpec[ch2]; +#else mvr2r( powerSpec[ch1], p_powerSpec[0], L_FRAME48k ); set_f( &p_powerSpec[0][L_FRAME48k], 0.f, N_MAX - L_FRAME48k ); mvr2r( powerSpec[ch2], p_powerSpec[1], L_FRAME48k ); set_f( &p_powerSpec[1][L_FRAME48k], 0.f, N_MAX - L_FRAME48k ); +#endif /* Band-wise M/S for MDST */ nSubframes = p_st[0]->hTcxEnc->tcxMode == TCX_20 ? 1 : NB_DIV; diff --git a/lib_enc/ivas_mdct_core_enc.c b/lib_enc/ivas_mdct_core_enc.c index 4d9d1f2577..0d2f5817d6 100644 --- a/lib_enc/ivas_mdct_core_enc.c +++ b/lib_enc/ivas_mdct_core_enc.c @@ -63,7 +63,7 @@ static void enc_prm_pre_mdct( int16_t param[], /* i : parameters */ const int16_t *no_param_tns, /* i : number of TNS parameters per subframe */ int16_t p_param[2], /* o : pointer to parameters for next round of bs writing */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t is_mct, #endif BSTR_ENC_HANDLE hBstr /* i/o: encoder bitstream handle */ @@ -80,7 +80,7 @@ static void enc_prm_pre_mdct( * Header *--------------------------------------------------------------------------------*/ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE writeTCXMode( st, hBstr, is_mct, &nbits_start ); #else writeTCXMode( st, hBstr, &nbits_start ); @@ -1065,7 +1065,7 @@ void ivas_mdct_core_whitening_enc( continue; } -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE enc_prm_pre_mdct( st, param_core[ch], ( ( ( ch > 0 ) && ( sts[0]->hTcxEnc->fUseTns[0] + sts[0]->hTcxEnc->fUseTns[1] > 0 ) && !mct_on ) ? tnsSize[ch] : NULL ), p_param[ch], mct_on, hBstr ); #else enc_prm_pre_mdct( st, param_core[ch], ( ( ( ch > 0 ) && ( sts[0]->hTcxEnc->fUseTns[0] + sts[0]->hTcxEnc->fUseTns[1] > 0 ) && !mct_on ) ? tnsSize[ch] : NULL ), p_param[ch], hBstr ); diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index f62b61e4ef..6042c9e10a 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -150,7 +150,7 @@ ivas_error ivas_qmetadata_enc_encode( int16_t diff_bits, bits_ec, next_ind_raw_flag; int16_t dfRatio_bits[MASA_MAXIMUM_CODING_SUBBANDS]; int16_t bits_surround_coh, no_TF; - int16_t dir2_bands[MASA_MAXIMUM_CODING_SUBBANDS / 2]; + int16_t dir2_bands[MASA_MAXIMUM_TWO_DIR_BANDS]; int16_t ind_order[MASA_MAXIMUM_CODING_SUBBANDS]; int16_t reduce_bits; ivas_error error; @@ -684,17 +684,32 @@ void ivas_qmetadata_enc_sid_encode( { if ( sba_mode == SBA_MODE_SPAR ) { +#ifdef ALIGN_SID_SIZE + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = (int16_t) ( 5000 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ +#else metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ +#endif } else { - /* keep 13.2 and 16.4 sid bitrate as 4.4 kbps for now*/ + /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ +#ifdef ALIGN_SID_SIZE + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } } else { +#ifdef ALIGN_SID_SIZE + /* TODO: still use old sid frame size to keep bitexactness */ + metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif } #ifdef DEBUG_MODE_QMETADATA @@ -873,6 +888,22 @@ void ivas_qmetadata_enc_sid_encode( } #endif +#ifdef ALIGN_SID_SIZE + /* TODO: temporary to keep BE */ + if ( ivas_format == SBA_FORMAT ) + { + if ( sba_mode != SBA_MODE_SPAR ) + { + /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - 1; /* -1 for spar/dirac indicator*/ + } + } + else + { + metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + } +#endif + /* fill bits*/ assert( ( hMetaData->nb_bits_tot - bit_pos_start ) <= metadata_sid_bits && "Too many written bits!" ); while ( ( hMetaData->nb_bits_tot - bit_pos_start ) < metadata_sid_bits ) @@ -896,11 +927,18 @@ void reset_metadata_spatial( int32_t *total_brate, /* o : total bitrate */ const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ - const SBA_MODE sba_mode, /* i : SBA mode */ - const int16_t element_mode /* i : element mode */ +#ifndef ALIGN_SID_SIZE + const SBA_MODE sba_mode, /* i : SBA mode */ + const int16_t element_mode /* i : element mode */ +#else + const SBA_MODE sba_mode /* i : SBA mode */ +#endif ) { int16_t i, next_ind_sid, last_ind_sid; +#ifdef ALIGN_SID_SIZE + int16_t metadata_sid_bits; +#endif if ( core_brate == SID_2k40 || core_brate == FRAME_NO_DATA ) { @@ -909,6 +947,14 @@ void reset_metadata_spatial( if ( sba_mode == SBA_MODE_SPAR ) { assert( hMetaData->ind_list[0].nb_bits == 1 ); +#ifdef ALIGN_SID_SIZE + hMetaData->ind_list[0].value = 1; + metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; + while ( hMetaData->nb_bits_tot < metadata_sid_bits ) + { + push_next_indice( hMetaData, 0, 1 ); /*fill bit*/ + } +#else if ( element_mode > IVAS_SCE ) { hMetaData->ind_list[0].value = 1; @@ -917,6 +963,7 @@ void reset_metadata_spatial( { hMetaData->ind_list[0].value = 0; } +#endif } else { @@ -946,7 +993,11 @@ void reset_metadata_spatial( hMetaData->ind_list[i].nb_bits = -1; } hMetaData->last_ind = hMetaData->next_ind; +#ifdef ALIGN_SID_SIZE + assert( ( hMetaData->nb_bits_tot == ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) && "Problem of SID metadata in SCE" ); +#else assert( ( hMetaData->nb_bits_tot == ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) && "Problem of SID metadata in SCE" ); +#endif } } else diff --git a/lib_enc/ivas_rom_enc.c b/lib_enc/ivas_rom_enc.c index e8048b8f1a..ebc4ee6bc3 100644 --- a/lib_enc/ivas_rom_enc.c +++ b/lib_enc/ivas_rom_enc.c @@ -534,160 +534,6 @@ const float ari_bit_estimate_s17_LC[RANGE_N_CONTEXT][RANGE_N_SYMBOLS] = * Stereo downmix to EVS ROM tables *----------------------------------------------------------------------------------*/ -#ifndef NTT_REMOVE_EPS_ROM -const float Stereo_dmx_s_wnd_coef_eps_16k[L_FRAME16k * 3 / 4] = { - 0.00000000f, 0.000385506690f, 0.000770864717f, 0.00115592557f, 0.00154054083f, 0.00192456215f, 0.00230784155f, 0.00269023119f, 0.00307158381f, 0.00345175178f, - 0.00383058959f, 0.00420795102f, 0.00458368938f, 0.00495766103f, 0.00532972161f, 0.00569972629f, 0.00606753491f, 0.00643300405f, 0.00679599261f, 0.00715636183f, - 0.00751397246f, 0.00786868576f, 0.00822036527f, 0.00856887549f, 0.00891408324f, 0.00925585348f, 0.00959405676f, 0.00992856082f, 0.0102592362f, 0.0105859563f, - 0.0109085962f, 0.0112270303f, 0.0115411365f, 0.0118507938f, 0.0121558821f, 0.0124562839f, 0.0127518829f, 0.0130425673f, 0.0133282226f, 0.0136087397f, - 0.0138840098f, 0.0141539266f, 0.0144183896f, 0.0146772927f, 0.0149305379f, 0.0151780248f, 0.0154196629f, 0.0156553555f, 0.0158850122f, 0.0161085464f, - 0.0163258687f, 0.0165368970f, 0.0167415515f, 0.0169397499f, 0.0171314199f, 0.0173164830f, 0.0174948741f, 0.0176665168f, 0.0178313497f, 0.0179893095f, - 0.0181403328f, 0.0182843637f, 0.0184213445f, 0.0185512230f, 0.0186739527f, 0.0187894795f, 0.0188977662f, 0.0189987645f, 0.0190924387f, 0.0191787537f, - 0.0192576759f, 0.0193291716f, 0.0193932168f, 0.0194497835f, 0.0194988549f, 0.0195404068f, 0.0195744261f, 0.0196008999f, 0.0196198169f, 0.0196311697f, - 0.0196349546f, 0.0196311697f, 0.0196198169f, 0.0196008999f, 0.0195744261f, 0.0195404068f, 0.0194988549f, 0.0194497835f, 0.0193932150f, 0.0193291716f, - 0.0192576740f, 0.0191787537f, 0.0190924387f, 0.0189987645f, 0.0188977644f, 0.0187894795f, 0.0186739508f, 0.0185512230f, 0.0184213426f, 0.0182843637f, - 0.0181403328f, 0.0179893095f, 0.0178313479f, 0.0176665168f, 0.0174948722f, 0.0173164830f, 0.0171314199f, 0.0169397499f, 0.0167415496f, 0.0165368970f, - 0.0163258687f, 0.0161085445f, 0.0158850104f, 0.0156553555f, 0.0154196629f, 0.0151780220f, 0.0149305360f, 0.0146772927f, 0.0144183887f, 0.0141539248f, - 0.0138840098f, 0.0136087388f, 0.0133282207f, 0.0130425654f, 0.0127518829f, 0.0124562830f, 0.0121558802f, 0.0118507929f, 0.0115411356f, 0.0112270294f, - 0.0109085953f, 0.0105859553f, 0.0102592343f, 0.00992855709f, 0.00959405396f, 0.00925585162f, 0.00891408045f, 0.00856887735f, 0.00822036248f, 0.00786868297f, - 0.00751396874f, 0.00715636322f, 0.00679598982f, 0.00643300032f, 0.00606753537f, 0.00569972722f, 0.00532971695f, 0.00495765638f, 0.00458368938f, 0.00420795055f, - 0.00383058493f, 0.00345175178f, 0.00307158334f, 0.00269023073f, 0.00230784062f, 0.00192456122f, 0.00154053967f, 0.00115592428f, 0.000770863262f, 0.000385505118f, - -1.71654224e-09f, -0.000385508552f, -0.000770866696f, -0.00115592312f, -0.00154053851f, -0.00192456460f, -0.00230784412f, -0.00269023376f, -0.00307158637f, -0.00345175504f, - -0.00383058819f, -0.00420794915f, -0.00458368799f, -0.00495766429f, -0.00532972487f, -0.00569973048f, -0.00606753910f, -0.00643300358f, -0.00679599261f, -0.00715636183f, - -0.00751397153f, -0.00786868948f, -0.00822036993f, -0.00856888015f, -0.00891408417f, -0.00925585441f, -0.00959405676f, -0.00992856082f, -0.0102592362f, -0.0105859619f, - -0.0109086009f, -0.0112270284f, -0.0115411393f, -0.0118507957f, -0.0121558839f, -0.0124562858f, -0.0127518848f, -0.0130425720f, -0.0133282207f, -0.0136087369f, - -0.0138840117f, -0.0141539304f, -0.0144183915f, -0.0146772945f, -0.0149305388f, -0.0151780248f, -0.0154196648f, -0.0156553555f, -0.0158850141f, -0.0161085445f, - -0.0163258705f, -0.0165369026f, -0.0167415477f, -0.0169397499f, -0.0171314217f, -0.0173164848f, -0.0174948759f, -0.0176665168f, -0.0178313479f, -0.0179893095f, - -0.0181403328f, -0.0182843637f, -0.0184213463f, -0.0185512248f, -0.0186739527f, -0.0187894795f, -0.0188977644f, -0.0189987663f, -0.0190924387f, -0.0191787556f, - -0.0192576759f, -0.0193291716f, -0.0193932150f, -0.0194497835f, -0.0194988549f, -0.0195404068f, -0.0195744261f, -0.0196008999f, -0.0196198169f, -0.0196311697f -}; - -const float Stereo_dmx_s_wnd_coef_eps_32k[L_FRAME32k * 3 / 4] = { - 0.00000000f, 9.63813145e-05f, 0.000192753345f, 0.000289106771f, 0.000385432359f, 0.000481720810f, 0.000577962783f, 0.000674149080f, 0.000770270417f, 0.000866317423f, - 0.000962281076f, 0.00105815195f, 0.00115392078f, 0.00124957843f, 0.00134511560f, 0.00144052308f, 0.00153579190f, 0.00163091265f, 0.00172587589f, 0.00182067312f, - 0.00191529479f, 0.00200973195f, 0.00210397551f, 0.00219801581f, 0.00229184469f, 0.00238545262f, 0.00247883052f, 0.00257196953f, 0.00266486080f, 0.00275749480f, - 0.00284986314f, 0.00294195698f, 0.00303376745f, 0.00312528526f, 0.00321650202f, 0.00330740865f, 0.00339799630f, 0.00348825660f, 0.00357818091f, 0.00366776017f, - 0.00375698623f, 0.00384584931f, 0.00393434288f, 0.00402245624f, 0.00411018264f, 0.00419751229f, 0.00428443775f, 0.00437095016f, 0.00445704162f, 0.00454270327f, - 0.00462792674f, 0.00471270457f, 0.00479702838f, 0.00488088885f, 0.00496428041f, 0.00504719233f, 0.00512961810f, 0.00521154935f, 0.00529297814f, 0.00537389703f, - 0.00545429811f, 0.00553417346f, 0.00561351515f, 0.00569231622f, 0.00577056827f, 0.00584826432f, 0.00592539692f, 0.00600195816f, 0.00607794104f, 0.00615333812f, - 0.00622814195f, 0.00630234554f, 0.00637594145f, 0.00644892361f, 0.00652128365f, 0.00659301504f, 0.00666411128f, 0.00673456443f, 0.00680436986f, 0.00687351823f, - 0.00694200490f, 0.00700982194f, 0.00707696332f, 0.00714342389f, 0.00720919482f, 0.00727427099f, 0.00733864633f, 0.00740231434f, 0.00746526895f, 0.00752750318f, - 0.00758901238f, 0.00764979096f, 0.00770983147f, 0.00776912877f, 0.00782767776f, 0.00788547192f, 0.00794250611f, 0.00799877476f, 0.00805427320f, 0.00810899399f, - 0.00816293433f, 0.00821608771f, 0.00826844852f, 0.00832001306f, 0.00837077573f, 0.00842073187f, 0.00846987497f, 0.00851820316f, 0.00856570993f, 0.00861239061f, - 0.00865824148f, 0.00870325882f, 0.00874743704f, 0.00879077055f, 0.00883325841f, 0.00887489505f, 0.00891567487f, 0.00895559601f, 0.00899465475f, 0.00903284643f, - 0.00907016639f, 0.00910661276f, 0.00914218184f, 0.00917686895f, 0.00921067223f, 0.00924358703f, 0.00927561149f, 0.00930674188f, 0.00933697633f, 0.00936630927f, - 0.00939473975f, 0.00942226499f, 0.00944888312f, 0.00947458949f, 0.00949938223f, 0.00952325948f, 0.00954621937f, 0.00956825912f, 0.00958937686f, 0.00960957073f, - 0.00962883793f, 0.00964717567f, 0.00966458581f, 0.00968106277f, 0.00969660841f, 0.00971121807f, 0.00972489174f, 0.00973762851f, 0.00974942744f, 0.00976028573f, - 0.00977020338f, 0.00977917947f, 0.00978721306f, 0.00979430322f, 0.00980044995f, 0.00980565138f, 0.00980990846f, 0.00981321931f, 0.00981558487f, 0.00981700420f, - 0.00981747732f, 0.00981700420f, 0.00981558487f, 0.00981321931f, 0.00980990846f, 0.00980565138f, 0.00980044995f, 0.00979430322f, 0.00978721306f, 0.00977917947f, - 0.00977020338f, 0.00976028573f, 0.00974942744f, 0.00973762851f, 0.00972489174f, 0.00971121807f, 0.00969660748f, 0.00968106277f, 0.00966458581f, 0.00964717567f, - 0.00962883700f, 0.00960956980f, 0.00958937686f, 0.00956825912f, 0.00954621937f, 0.00952325948f, 0.00949938223f, 0.00947458856f, 0.00944888219f, 0.00942226499f, - 0.00939473975f, 0.00936630927f, 0.00933697540f, 0.00930674188f, 0.00927561149f, 0.00924358703f, 0.00921067130f, 0.00917686801f, 0.00914218184f, 0.00910661276f, - 0.00907016639f, 0.00903284550f, 0.00899465475f, 0.00895559601f, 0.00891567394f, 0.00887489505f, 0.00883325841f, 0.00879077055f, 0.00874743611f, 0.00870325882f, - 0.00865824148f, 0.00861238968f, 0.00856570993f, 0.00851820316f, 0.00846987497f, 0.00842073094f, 0.00837077480f, 0.00832001306f, 0.00826844852f, 0.00821608678f, - 0.00816293433f, 0.00810899399f, 0.00805427227f, 0.00799877476f, 0.00794250518f, 0.00788547192f, 0.00782767776f, 0.00776912784f, 0.00770983147f, 0.00764979003f, - 0.00758901099f, 0.00752750272f, 0.00746526802f, 0.00740231294f, 0.00733864633f, 0.00727427006f, 0.00720919436f, 0.00714342296f, 0.00707696239f, 0.00700982334f, - 0.00694200490f, 0.00687351730f, 0.00680436939f, 0.00673456397f, 0.00666411035f, 0.00659301365f, 0.00652128272f, 0.00644892408f, 0.00637594145f, 0.00630234415f, - 0.00622814149f, 0.00615333673f, 0.00607794011f, 0.00600195862f, 0.00592539646f, 0.00584826525f, 0.00577056780f, 0.00569231436f, 0.00561351469f, 0.00553417206f, - 0.00545429764f, 0.00537389750f, 0.00529297767f, 0.00521154935f, 0.00512961717f, 0.00504719047f, 0.00496427855f, 0.00488088885f, 0.00479702698f, 0.00471270457f, - 0.00462792581f, 0.00454270281f, 0.00445704022f, 0.00437094783f, 0.00428443868f, 0.00419751182f, 0.00411018124f, 0.00402245624f, 0.00393434148f, 0.00384584907f, - 0.00375698437f, 0.00366775948f, 0.00357818161f, 0.00348825636f, 0.00339799491f, 0.00330740795f, 0.00321650016f, 0.00312528457f, 0.00303376769f, 0.00294195651f, - 0.00284986361f, 0.00275749387f, 0.00266485848f, 0.00257196836f, 0.00247882819f, 0.00238545146f, 0.00229184469f, 0.00219801464f, 0.00210397528f, 0.00200973079f, - 0.00191529247f, 0.00182067417f, 0.00172587589f, 0.00163091114f, 0.00153579167f, 0.00144052168f, 0.00134511536f, 0.00124957680f, 0.00115392031f, 0.00105815264f, - 0.000962280610f, 0.000866315851f, 0.000770269835f, 0.000674147333f, 0.000577962142f, 0.000481721276f, 0.000385431631f, 0.000289107207f, 0.000192752559f, 9.63793209e-05f, - -8.58271121e-10f, -9.63833809e-05f, -0.000192754276f, -0.000289106567f, -0.000385433348f, -0.000481720665f, -0.000577961560f, -0.000674149022f, -0.000770269253f, -0.000866317481f, - -0.000962282298f, -0.00105815206f, -0.00115392206f, -0.00124957855f, -0.00134511688f, -0.00144052564f, -0.00153579318f, -0.00163091510f, -0.00172587752f, -0.00182067591f, - -0.00191529409f, -0.00200973242f, -0.00210397458f, -0.00219801627f, -0.00229184399f, -0.00238545309f, -0.00247883215f, -0.00257196999f, -0.00266486243f, -0.00275749573f, - -0.00284986524f, -0.00294196024f, -0.00303376955f, -0.00312528410f, -0.00321650179f, -0.00330740749f, -0.00339799630f, -0.00348825776f, -0.00357818091f, -0.00366776134f, - -0.00375698577f, -0.00384585070f, -0.00393434474f, -0.00402245764f, -0.00411018496f, -0.00419751368f, -0.00428444007f, -0.00437094970f, -0.00445704209f, -0.00454270234f, - -0.00462792721f, -0.00471270364f, -0.00479702838f, -0.00488089072f, -0.00496428041f, -0.00504719326f, -0.00512961810f, -0.00521155121f, -0.00529298093f, -0.00537389843f, - -0.00545430044f, -0.00553417299f, -0.00561351422f, -0.00569231622f, -0.00577056967f, -0.00584826432f, -0.00592539785f, -0.00600195816f, -0.00607794197f, -0.00615333952f, - -0.00622814288f, -0.00630234741f, -0.00637594238f, -0.00644892501f, -0.00652128598f, -0.00659301504f, -0.00666411035f, -0.00673456537f, -0.00680436846f, -0.00687351823f, - -0.00694200583f, -0.00700982241f, -0.00707696518f, -0.00714342389f, -0.00720919576f, -0.00727427332f, -0.00733864726f, -0.00740231574f, -0.00746526942f, -0.00752750272f, - -0.00758901238f, -0.00764979143f, -0.00770983240f, -0.00776912784f, -0.00782767776f, -0.00788547192f, -0.00794250704f, -0.00799877662f, -0.00805427227f, -0.00810899492f, - -0.00816293526f, -0.00821608957f, -0.00826845132f, -0.00832001399f, -0.00837077387f, -0.00842073094f, -0.00846987497f, -0.00851820316f, -0.00856571086f, -0.00861239061f, - -0.00865824241f, -0.00870325882f, -0.00874743797f, -0.00879077241f, -0.00883325841f, -0.00887489505f, -0.00891567394f, -0.00895559601f, -0.00899465475f, -0.00903284643f, - -0.00907016639f, -0.00910661276f, -0.00914218184f, -0.00917686988f, -0.00921067316f, -0.00924358703f, -0.00927561242f, -0.00930674374f, -0.00933697633f, -0.00936631020f, - -0.00939473975f, -0.00942226499f, -0.00944888219f, -0.00947458949f, -0.00949938316f, -0.00952326041f, -0.00954621937f, -0.00956825912f, -0.00958937779f, -0.00960957073f, - -0.00962883793f, -0.00964717567f, -0.00966458581f, -0.00968106370f, -0.00969660748f, -0.00971121807f, -0.00972489174f, -0.00973762851f, -0.00974942744f, -0.00976028573f, - -0.00977020338f, -0.00977917947f, -0.00978721306f, -0.00979430322f, -0.00980044995f, -0.00980565138f, -0.00980990846f, -0.00981321931f, -0.00981558487f, -0.00981700420f -}; - -const float Stereo_dmx_s_wnd_coef_eps_48k[L_FRAME48k * 3 / 4] = { - 0.00000000f, 4.28365238e-05f, 8.56712068e-05f, 0.000128502230f, 0.000171327745f, 0.000214145897f, 0.000256954925f, 0.000299752894f, 0.000342538056f, 0.000385308522f, - 0.000428062514f, 0.000470798172f, 0.000513513631f, 0.000556207087f, 0.000598876737f, 0.000641520717f, 0.000684137223f, 0.000726724451f, 0.000769280537f, 0.000811803620f, - 0.000854292011f, 0.000896743732f, 0.000939157035f, 0.000981530058f, 0.00102386123f, 0.00106614840f, 0.00110838993f, 0.00115058408f, 0.00119272876f, 0.00123482244f, - 0.00127686327f, 0.00131884927f, 0.00136077893f, 0.00140265026f, 0.00144446141f, 0.00148621085f, 0.00152789650f, 0.00156951661f, 0.00161106954f, 0.00165255368f, - 0.00169396668f, 0.00173530739f, 0.00177657383f, 0.00181776390f, 0.00185887620f, 0.00189990876f, 0.00194086006f, 0.00198172848f, 0.00202251156f, 0.00206320849f, - 0.00210381625f, 0.00214433460f, 0.00218476099f, 0.00222509354f, 0.00226533110f, 0.00230547134f, 0.00234551285f, 0.00238545402f, 0.00242529274f, 0.00246502785f, - 0.00250465749f, 0.00254417956f, 0.00258359266f, 0.00262289518f, 0.00266208523f, 0.00270116120f, 0.00274012191f, 0.00277896458f, 0.00281768874f, 0.00285629183f, - 0.00289477292f, 0.00293312967f, 0.00297136116f, 0.00300946506f, 0.00304743997f, 0.00308528449f, 0.00312299700f, 0.00316057540f, 0.00319801876f, 0.00323532475f, - 0.00327249244f, 0.00330952019f, 0.00334640569f, 0.00338314800f, 0.00341974548f, 0.00345619628f, 0.00349249900f, 0.00352865248f, 0.00356465438f, 0.00360050355f, - 0.00363619882f, 0.00367173832f, 0.00370712043f, 0.00374234351f, 0.00377740664f, 0.00381230796f, 0.00384704559f, 0.00388161885f, 0.00391602563f, 0.00395026430f, - 0.00398433441f, 0.00401823362f, 0.00405196054f, 0.00408551423f, 0.00411889236f, 0.00415209495f, 0.00418511871f, 0.00421796367f, 0.00425062794f, 0.00428310968f, - 0.00431540888f, 0.00434752228f, 0.00437944988f, 0.00441118982f, 0.00444274070f, 0.00447410159f, 0.00450527016f, 0.00453624642f, 0.00456702849f, 0.00459761405f, - 0.00462800311f, 0.00465819426f, 0.00468818564f, 0.00471797585f, 0.00474756397f, 0.00477694906f, 0.00480613019f, 0.00483510410f, 0.00486387173f, 0.00489243073f, - 0.00492078019f, 0.00494891917f, 0.00497684581f, 0.00500455918f, 0.00503205787f, 0.00505934143f, 0.00508640893f, 0.00511325756f, 0.00513988733f, 0.00516629731f, - 0.00519248564f, 0.00521845184f, 0.00524419453f, 0.00526971230f, 0.00529500423f, 0.00532006938f, 0.00534490682f, 0.00536951516f, 0.00539389346f, 0.00541804079f, - 0.00544195622f, 0.00546563789f, 0.00548908627f, 0.00551229948f, 0.00553527568f, 0.00555801531f, 0.00558051746f, 0.00560277933f, 0.00562480185f, 0.00564658362f, - 0.00566812325f, 0.00568941981f, 0.00571047375f, 0.00573128136f, 0.00575184496f, 0.00577216130f, 0.00579223083f, 0.00581205217f, 0.00583162485f, 0.00585094700f, - 0.00587001862f, 0.00588883879f, 0.00590740750f, 0.00592572242f, 0.00594378356f, 0.00596159045f, 0.00597914122f, 0.00599643635f, 0.00601347443f, 0.00603025546f, - 0.00604677759f, 0.00606304128f, 0.00607904466f, 0.00609478820f, 0.00611026958f, 0.00612549018f, 0.00614044815f, 0.00615514303f, 0.00616957434f, 0.00618374115f, - 0.00619764347f, 0.00621127989f, 0.00622465089f, 0.00623775460f, 0.00625059102f, 0.00626316015f, 0.00627546059f, 0.00628749235f, 0.00629925495f, 0.00631074747f, - 0.00632196991f, 0.00633292133f, 0.00634360174f, 0.00635401066f, 0.00636414625f, 0.00637401035f, 0.00638360064f, 0.00639291806f, 0.00640196120f, 0.00641073054f, - 0.00641922513f, 0.00642744405f, 0.00643538870f, 0.00644305674f, 0.00645044958f, 0.00645756535f, 0.00646440545f, 0.00647096802f, 0.00647725351f, 0.00648326147f, - 0.00648899190f, 0.00649444386f, 0.00649961783f, 0.00650451379f, 0.00650913082f, 0.00651346892f, 0.00651752809f, 0.00652130833f, 0.00652480870f, 0.00652803015f, - 0.00653097173f, 0.00653363345f, 0.00653601484f, 0.00653811684f, 0.00653993897f, 0.00654148031f, 0.00654274225f, 0.00654372340f, 0.00654442422f, 0.00654484471f, - 0.00654498488f, 0.00654484471f, 0.00654442422f, 0.00654372340f, 0.00654274225f, 0.00654148031f, 0.00653993897f, 0.00653811684f, 0.00653601484f, 0.00653363345f, - 0.00653097173f, 0.00652802968f, 0.00652480870f, 0.00652130833f, 0.00651752809f, 0.00651346892f, 0.00650913082f, 0.00650451332f, 0.00649961783f, 0.00649444386f, - 0.00648899190f, 0.00648326147f, 0.00647725351f, 0.00647096802f, 0.00646440499f, 0.00645756535f, 0.00645044912f, 0.00644305674f, 0.00643538870f, 0.00642744405f, - 0.00641922466f, 0.00641073054f, 0.00640196120f, 0.00639291806f, 0.00638360064f, 0.00637400988f, 0.00636414625f, 0.00635401020f, 0.00634360174f, 0.00633292086f, - 0.00632196991f, 0.00631074747f, 0.00629925495f, 0.00628749235f, 0.00627546012f, 0.00626315968f, 0.00625059055f, 0.00623775413f, 0.00622465042f, 0.00621127989f, - 0.00619764347f, 0.00618374115f, 0.00616957434f, 0.00615514303f, 0.00614044769f, 0.00612549018f, 0.00611027004f, 0.00609478774f, 0.00607904419f, 0.00606304081f, - 0.00604677759f, 0.00603025500f, 0.00601347489f, 0.00599643635f, 0.00597914122f, 0.00596158998f, 0.00594378309f, 0.00592572149f, 0.00590740703f, 0.00588883879f, - 0.00587001862f, 0.00585094653f, 0.00583162392f, 0.00581205124f, 0.00579223037f, 0.00577216130f, 0.00575184496f, 0.00573128182f, 0.00571047282f, 0.00568941981f, - 0.00566812325f, 0.00564658316f, 0.00562480185f, 0.00560277933f, 0.00558051653f, 0.00555801531f, 0.00553527661f, 0.00551229948f, 0.00548908627f, 0.00546563789f, - 0.00544195622f, 0.00541804079f, 0.00539389299f, 0.00536951469f, 0.00534490682f, 0.00532006891f, 0.00529500330f, 0.00526971091f, 0.00524419360f, 0.00521845091f, - 0.00519248564f, 0.00516629778f, 0.00513988733f, 0.00511325756f, 0.00508640800f, 0.00505934190f, 0.00503205787f, 0.00500455871f, 0.00497684488f, 0.00494891871f, - 0.00492077926f, 0.00489242980f, 0.00486387173f, 0.00483510457f, 0.00480612973f, 0.00477694906f, 0.00474756444f, 0.00471797585f, 0.00468818471f, 0.00465819333f, - 0.00462800311f, 0.00459761359f, 0.00456702709f, 0.00453624595f, 0.00450526970f, 0.00447410066f, 0.00444273977f, 0.00441119028f, 0.00437944988f, 0.00434752181f, - 0.00431540795f, 0.00428310968f, 0.00425062748f, 0.00421796273f, 0.00418511871f, 0.00415209448f, 0.00411889143f, 0.00408551283f, 0.00405196007f, 0.00401823269f, - 0.00398433302f, 0.00395026430f, 0.00391602563f, 0.00388161885f, 0.00384704513f, 0.00381230796f, 0.00377740664f, 0.00374234305f, 0.00370711950f, 0.00367173809f, - 0.00363619835f, 0.00360050285f, 0.00356465275f, 0.00352865178f, 0.00349249784f, 0.00345619605f, 0.00341974595f, 0.00338314800f, 0.00334640522f, 0.00330951903f, - 0.00327249290f, 0.00323532452f, 0.00319801806f, 0.00316057424f, 0.00312299654f, 0.00308528380f, 0.00304743880f, 0.00300946319f, 0.00297135999f, 0.00293312967f, - 0.00289477245f, 0.00285629253f, 0.00281768874f, 0.00277896435f, 0.00274012075f, 0.00270116120f, 0.00266208476f, 0.00262289424f, 0.00258359103f, 0.00254417886f, - 0.00250465632f, 0.00246502645f, 0.00242529227f, 0.00238545449f, 0.00234551262f, 0.00230547064f, 0.00226533134f, 0.00222509331f, 0.00218476006f, 0.00214433344f, - 0.00210381625f, 0.00206320756f, 0.00202251016f, 0.00198172801f, 0.00194085937f, 0.00189990760f, 0.00185887585f, 0.00181776448f, 0.00177657383f, 0.00173530704f, - 0.00169396598f, 0.00165255368f, 0.00161106919f, 0.00156951568f, 0.00152789650f, 0.00148621027f, 0.00144446036f, 0.00140264863f, 0.00136077835f, 0.00131884834f, - 0.00127686316f, 0.00123482186f, 0.00119272911f, 0.00115058396f, 0.00110838923f, 0.00106614875f, 0.00102386111f, 0.000981529476f, 0.000939155812f, 0.000896743557f, - 0.000854291196f, 0.000811802340f, 0.000769278675f, 0.000726723636f, 0.000684137398f, 0.000641520426f, 0.000598877436f, 0.000556207204f, 0.000513513223f, 0.000470797240f, - 0.000428062631f, 0.000385308114f, 0.000342537096f, 0.000299751409f, 0.000256954430f, 0.000214144908f, 0.000171326188f, 0.000128500149f, 8.56717088e-05f, 4.28364874e-05f, - -5.72180747e-10f, -4.28360690e-05f, -8.56712868e-05f, -0.000128502856f, -0.000171328895f, -0.000214146057f, -0.000256955565f, -0.000299754087f, -0.000342539803f, -0.000385309249f, - -0.000428063737f, -0.000470799918f, -0.000513512816f, -0.000556206855f, -0.000598876970f, -0.000641521532f, -0.000684137049f, -0.000726724742f, -0.000769281352f, -0.000811805017f, - -0.000854292419f, -0.000896744605f, -0.000939158490f, -0.000981530524f, -0.00102386216f, -0.00106614991f, -0.00110839040f, -0.00115058350f, -0.00119272876f, -0.00123482291f, - -0.00127686432f, -0.00131884939f, -0.00136077951f, -0.00140265131f, -0.00144446141f, -0.00148621143f, -0.00152789755f, -0.00156951835f, -0.00161107024f, -0.00165255321f, - -0.00169396691f, -0.00173530797f, -0.00177657336f, -0.00181776413f, -0.00185887702f, -0.00189990853f, -0.00194086053f, -0.00198172918f, -0.00202251296f, -0.00206320873f, - -0.00210381718f, -0.00214433600f, -0.00218476262f, -0.00222509308f, -0.00226533087f, -0.00230547180f, -0.00234551216f, -0.00238545402f, -0.00242529344f, -0.00246502901f, - -0.00250465726f, -0.00254418002f, -0.00258359360f, -0.00262289657f, -0.00266208570f, -0.00270116236f, -0.00274012331f, -0.00277896388f, -0.00281768828f, -0.00285629206f, - -0.00289477338f, -0.00293312944f, -0.00297136139f, -0.00300946552f, -0.00304744113f, -0.00308528473f, -0.00312299770f, -0.00316057657f, -0.00319802039f, -0.00323532545f, - -0.00327249360f, -0.00330952019f, -0.00334640499f, -0.00338314800f, -0.00341974548f, -0.00345619721f, -0.00349249900f, -0.00352865248f, -0.00356465508f, -0.00360050471f, - -0.00363619928f, -0.00367173925f, -0.00370712159f, -0.00374234398f, -0.00377740758f, -0.00381230772f, -0.00384704629f, -0.00388161838f, -0.00391602563f, -0.00395026524f, - -0.00398433534f, -0.00401823409f, -0.00405196147f, -0.00408551469f, -0.00411889283f, -0.00415209495f, -0.00418511964f, -0.00421796506f, -0.00425062841f, -0.00428310968f, - -0.00431540888f, -0.00434752274f, -0.00437944988f, -0.00441119028f, -0.00444274163f, -0.00447410159f, -0.00450527063f, -0.00453624688f, -0.00456702895f, -0.00459761452f, - -0.00462800404f, -0.00465819519f, -0.00468818611f, -0.00471797585f, -0.00474756444f, -0.00477694953f, -0.00480612973f, -0.00483510410f, -0.00486387173f, -0.00489243167f, - -0.00492078019f, -0.00494891917f, -0.00497684628f, -0.00500456011f, -0.00503205974f, -0.00505934376f, -0.00508640893f, -0.00511325803f, -0.00513988826f, -0.00516629638f, - -0.00519248517f, -0.00521845184f, -0.00524419453f, -0.00526971230f, -0.00529500470f, -0.00532007031f, -0.00534490822f, -0.00536951516f, -0.00539389392f, -0.00541804126f, - -0.00544195529f, -0.00546563743f, -0.00548908627f, -0.00551229948f, -0.00553527614f, -0.00555801624f, -0.00558051793f, -0.00560278073f, -0.00562480185f, -0.00564658362f, - -0.00566812325f, -0.00568942074f, -0.00571047375f, -0.00573128276f, -0.00575184450f, -0.00577216130f, -0.00579223130f, -0.00581205264f, -0.00583162485f, -0.00585094653f, - -0.00587001862f, -0.00588883925f, -0.00590740610f, -0.00592572149f, -0.00594378309f, -0.00596158998f, -0.00597914122f, -0.00599643681f, -0.00601347489f, -0.00603025593f, - -0.00604677759f, -0.00606304081f, -0.00607904466f, -0.00609478820f, -0.00611027051f, -0.00612549065f, -0.00614044908f, -0.00615514303f, -0.00616957434f, -0.00618374161f, - -0.00619764347f, -0.00621128036f, -0.00622465089f, -0.00623775553f, -0.00625059241f, -0.00626316015f, -0.00627546106f, -0.00628749281f, -0.00629925542f, -0.00631074747f, - -0.00632197037f, -0.00633292180f, -0.00634360127f, -0.00635400973f, -0.00636414625f, -0.00637400988f, -0.00638360064f, -0.00639291806f, -0.00640196120f, -0.00641073007f, - -0.00641922466f, -0.00642744405f, -0.00643538870f, -0.00644305721f, -0.00645045005f, -0.00645756582f, -0.00646440592f, -0.00647096802f, -0.00647725351f, -0.00648326147f, - -0.00648899190f, -0.00649444433f, -0.00649961829f, -0.00650451379f, -0.00650913082f, -0.00651346892f, -0.00651752809f, -0.00652130833f, -0.00652480870f, -0.00652803015f, - -0.00653097173f, -0.00653363345f, -0.00653601484f, -0.00653811684f, -0.00653993897f, -0.00654148031f, -0.00654274225f, -0.00654372340f, -0.00654442422f, -0.00654484471f -}; -#endif const float Stereo_dmx_s_wnd_coef_16k[L_FRAME16k >> 4] = { 0.00154133327f, 0.0138150426f, 0.0380602330f, 0.0736799166f, 0.119797014f, 0.175276011f, 0.238750681f, 0.308658302f, 0.383277327f, 0.460770488f, diff --git a/lib_enc/ivas_rom_enc.h b/lib_enc/ivas_rom_enc.h index 2a4f71b8b9..8bcad95506 100644 --- a/lib_enc/ivas_rom_enc.h +++ b/lib_enc/ivas_rom_enc.h @@ -120,11 +120,6 @@ extern const uint16_t ECSQ_tab_vals[ECSQ_PARAM_COUNT - 1][1 + ECSQ_TAB_VALS_SIZE * Stereo downmix to EVS ROM tables *----------------------------------------------------------------------------------*/ -#ifndef NTT_REMOVE_EPS_ROM -extern const float Stereo_dmx_s_wnd_coef_eps_16k[L_FRAME16k * 3 / 4]; -extern const float Stereo_dmx_s_wnd_coef_eps_32k[L_FRAME32k * 3 / 4]; -extern const float Stereo_dmx_s_wnd_coef_eps_48k[L_FRAME48k * 3 / 4]; -#endif extern const float Stereo_dmx_s_wnd_coef_16k[L_FRAME16k >> 4]; extern const float Stereo_dmx_s_wnd_coef_32k[L_FRAME32k >> 4]; extern const float Stereo_dmx_s_wnd_coef_48k[L_FRAME48k >> 4]; diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index b267cd2e66..40b502fd70 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -45,10 +45,13 @@ #endif #include "wmops.h" +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*-----------------------------------------------------------------------* * Local function prototypes *-----------------------------------------------------------------------*/ + static void ivas_sba_dmx_enc( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t input_frame ); +#endif /*-------------------------------------------------------------------* * ivas_sba_getTCs() @@ -62,18 +65,28 @@ void ivas_sba_getTCs( const int16_t input_frame /* i : frame length */ ) { -#ifndef SBA_ORDER_BITSTREAM - ivas_sba_zero_vert_comp( sba_data, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar, input_frame ); -#else ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar, input_frame ); -#endif - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) + +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + st_ivas->nchan_transport = ivas_get_sba_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order ); + + if ( st_ivas->nchan_transport >= 3 ) { -#ifndef SBA_ORDER_BITSTREAM - st_ivas->nchan_transport = ivas_get_spar_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); + /*convert WYZX downmix to WYXZ*/ + int16_t i = 0; + float temp; + for ( i = 0; i < input_frame; i++ ) + { + temp = sba_data[2][i]; + sba_data[2][i] = sba_data[3][i]; + sba_data[3][i] = temp; + } + } + #else + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) + { st_ivas->nchan_transport = ivas_get_spar_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order ); -#endif if ( st_ivas->nchan_transport >= 3 ) { /*convert WYZX downmix to WYXZ*/ @@ -89,13 +102,14 @@ void ivas_sba_getTCs( } else { -#ifndef SBA_ORDER_BITSTREAM - st_ivas->nchan_transport = ivas_dirac_getNumTransportChannels( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->hEncoderConfig->sba_order, st_ivas->hEncoderConfig->sba_planar ); -#else st_ivas->nchan_transport = ivas_dirac_getNumTransportChannels( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); -#endif +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + /* do nothing; simply use omni */ +#else ivas_sba_dmx_enc( sba_data, st_ivas->nchan_transport, input_frame ); +#endif } +#endif #ifdef DEBUG_MODE_DIRAC for ( int16_t n = 0; n < st_ivas->nchan_transport; n++ ) @@ -116,6 +130,7 @@ void ivas_sba_getTCs( } +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*-------------------------------------------------------------------* * ivas_sba_dmx_enc() * @@ -214,7 +229,7 @@ static void ivas_sba_dmx_enc( return; } - +#endif /*-------------------------------------------------------------------* * ivas_sba_enc_reconfigure() @@ -249,6 +264,8 @@ ivas_error ivas_sba_enc_reconfigure( nSCE_old = st_ivas->nSCE; ind_list_metadata = NULL; + st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); + ivas_dirac_enc_reconfigure( st_ivas ); ntransport = st_ivas->nchan_transport; diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 942dd14c99..4a4c24fa4e 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -199,14 +199,20 @@ ivas_error ivas_sce_enc( * Reset metadata *----------------------------------------------------------------*/ - reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode, - IVAS_SCE ); +#ifdef ALIGN_SID_SIZE + reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode ); +#else + reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode, IVAS_SCE ); +#endif /*----------------------------------------------------------------* * Write IVAS format signaling in SID frames *----------------------------------------------------------------*/ - +#ifdef ALIGN_SID_SIZE + if ( st->core_brate == SID_2k40 ) +#else if ( st->core_brate == SID_2k40 && ( ivas_format != SBA_FORMAT || st_ivas->sba_mode != SBA_MODE_SPAR ) ) +#endif { ivas_write_format_sid( ivas_format, IVAS_SCE, st->hBstr ); } @@ -232,13 +238,11 @@ ivas_error ivas_sce_enc( * Encoder *----------------------------------------------------------------*/ - if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, - flag_16k_smc ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, flag_16k_smc ) ) != IVAS_ERR_OK ) { return error; } - /*----------------------------------------------------------------* * Common updates *----------------------------------------------------------------*/ diff --git a/lib_enc/ivas_sns_enc.c b/lib_enc/ivas_sns_enc.c index 1aeac19c57..87019b8d91 100644 --- a/lib_enc/ivas_sns_enc.c +++ b/lib_enc/ivas_sns_enc.c @@ -43,7 +43,7 @@ #endif #include "wmops.h" -#ifndef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ /*------------------------------------------------------------------- diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 03e16833e3..14f9f08a54 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -79,26 +79,23 @@ ivas_error ivas_spar_enc_open( } input_Fs = hEncoderConfig->input_Fs; -#ifndef SBA_ORDER_BITSTREAM - sba_order_internal = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); -#else sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); -#endif nchan_inp = ivas_sba_get_nchan_metadata( sba_order_internal ); assert( nchan_inp <= hEncoderConfig->nchan_inp ); ivas_total_brate = hEncoderConfig->ivas_total_brate; + +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + nchan_transport = ivas_get_sba_num_TCs( hEncoderConfig->ivas_total_brate, sba_order_internal ); +#else nchan_transport = ivas_get_spar_num_TCs( hEncoderConfig->ivas_total_brate, sba_order_internal ); +#endif // bw = ivas_get_bw_idx_from_sample_rate(pCfg->input_Fs); table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order_internal, SPAR_CONFIG_BW, NULL, NULL ); // ivas_set_bitrate_config(&hSpar->hMdEnc->spar_md_cfg, table_idx); /* MD handle */ -#ifndef SBA_ORDER_BITSTREAM - if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig ) ) != IVAS_ERR_OK ) -#else if ( ( error = ivas_spar_md_enc_open( &( hSpar->hMdEnc ), hEncoderConfig, sba_order_internal ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -149,13 +146,9 @@ ivas_error ivas_spar_enc_open( /*-----------------------------------------------------------------* * Configuration - set SPAR high-level parameters *-----------------------------------------------------------------*/ -#ifdef SBA_ORDER_BITSTREAM + ivas_spar_config( hEncoderConfig->ivas_total_brate, min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ), &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &hSpar->core_nominal_brate, -1 ); -#else - ivas_spar_config( hEncoderConfig->ivas_total_brate, min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ), - &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &hSpar->core_nominal_brate, -1 ); -#endif if ( st_ivas->nchan_transport == 1 ) { @@ -290,7 +283,6 @@ ivas_error ivas_spar_enc( ) { ENCODER_CONFIG_HANDLE hEncoderConfig; - int16_t i, ch; ivas_error error; error = IVAS_ERR_OK; @@ -302,22 +294,9 @@ ivas_error ivas_spar_enc( return error; } - /* normalize input channels */ - for ( ch = 0; ch < hEncoderConfig->nchan_inp; ch++ ) - { - for ( i = 0; i < input_frame; i++ ) - { - data_f[ch][i] *= ( 1.0 / PCM16_TO_FLT_FAC ); - } - } - if ( hEncoderConfig->sba_planar ) { -#ifndef SBA_ORDER_BITSTREAM - ivas_sba_zero_vert_comp( data_f, hEncoderConfig->sba_order, hEncoderConfig->sba_planar, input_frame ); -#else ivas_sba_zero_vert_comp( data_f, st_ivas->sba_analysis_order, hEncoderConfig->sba_planar, input_frame ); -#endif } if ( ( error = ivas_spar_enc_process( st_ivas, hEncoderConfig, hMetaData, st_ivas->hSpar->front_vad_flag, data_f ) ) != IVAS_ERR_OK ) @@ -327,11 +306,7 @@ ivas_error ivas_spar_enc( if ( hEncoderConfig->sba_planar ) { -#ifndef SBA_ORDER_BITSTREAM - ivas_sba_zero_vert_comp( data_f, hEncoderConfig->sba_order, hEncoderConfig->sba_planar, input_frame ); // TODO tmu: do we need a second call to this function ? -#else ivas_sba_zero_vert_comp( data_f, st_ivas->sba_analysis_order, hEncoderConfig->sba_planar, input_frame ); // TODO tmu: do we need a second call to this function ? -#endif } *nb_bits_metadata = hMetaData->nb_bits_tot; @@ -457,11 +432,7 @@ static ivas_error ivas_spar_enc_process( num_del_samples = hSpar->hFbMixer->fb_cfg->fb_latency; input_frame = (int16_t) ( input_Fs / FRAMES_PER_SEC ); -#ifndef SBA_ORDER_BITSTREAM - sba_order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); -#else sba_order = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); -#endif nchan_inp = ivas_sba_get_nchan_metadata( sba_order ); assert( nchan_inp <= hEncoderConfig->nchan_inp ); @@ -561,7 +532,7 @@ static ivas_error ivas_spar_enc_process( set_zero( avg_dir, 3 ); energySum = 0.0f; - /*combine all dirac bands except the last one, handle last band separately, last band covers BW above WB*/ + /* combine all DirAC bands except the last one, handle last band separately, last band covers BW above WB */ for ( j = 0; j < orig_dirac_bands - 1; j++ ) { ivas_qmetadata_azimuth_elevation_to_direction_vector( hQMetaData->q_direction[0].band_data[j].azimuth[i], hQMetaData->q_direction[0].band_data[j].elevation[i], &dir[0] ); @@ -631,7 +602,7 @@ static ivas_error ivas_spar_enc_process( /* use just VAD function to get VAD flags */ dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; - dtx_silence_mode = 0; + dtx_silence_mode = 0; // VE2DB: this variable is always 0 - please review or remove it bwidth = ivas_get_bw_idx_from_sample_rate( input_Fs ); bwidth = min( bwidth, hEncoderConfig->max_bwidth ); @@ -700,12 +671,9 @@ static ivas_error ivas_spar_enc_process( md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); md_in_buf.dtx_vad = dtx_vad; -#ifndef SBA_ORDER_BITSTREAM - ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode ); -#else ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); -#endif - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) + + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete { float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; float ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; @@ -906,16 +874,13 @@ static ivas_error ivas_spar_enc_process( order = remix_order_set[hSpar->hMdEnc->spar_md_cfg.remix_unmix_order]; - for ( i = 0; i < input_frame; i++ ) + for ( j = 0; j < nchan_transport; j++ ) { - for ( j = 0; j < nchan_transport; j++ ) - { - data_f[order[j]][i] = p_pcm_tmp[j][i] * PCM16_TO_FLT_FAC; - } - for ( ; j < IVAS_SPAR_MAX_DMX_CHS; j++ ) - { - data_f[order[j]][i] = 0; - } + mvr2r( p_pcm_tmp[j], data_f[order[j]], input_frame ); + } + for ( ; j < IVAS_SPAR_MAX_DMX_CHS; j++ ) + { + set_f( data_f[order[j]], 0.0f, input_frame ); } wmops_sub_end(); diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index dc7c3677dd..ed0d3f7e7e 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -72,11 +72,11 @@ static void ivas_band_mixer( float *cov_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], static void ivas_get_band_differential_index( ivas_band_coeffs_ind_t *pBand_idx, const int16_t q_levels[2], const int16_t one_sided, const int16_t nB, const int16_t complex_cov, const int16_t dim, const ivas_coeffs_type_t coeff_type ); -static void ivas_get_huffman_coded_bs( ivas_spar_md_enc_state_t *pState, BSTR_ENC_HANDLE hMetaData, const int16_t nB, const int16_t qsi, const int16_t planarCP ); +static void ivas_get_huffman_coded_bs( ivas_spar_md_enc_state_t *hMdEnc, BSTR_ENC_HANDLE hMetaData, const int16_t nB, const int16_t qsi, const int16_t planarCP ); -static void ivas_get_arith_coded_bs( ivas_spar_md_enc_state_t *pState, BSTR_ENC_HANDLE hMetaData, const int16_t *pDo_diff, const int16_t bands_bw, const int16_t nB, const int16_t qsi, const int16_t planarCP ); +static void ivas_get_arith_coded_bs( ivas_spar_md_enc_state_t *hMdEnc, BSTR_ENC_HANDLE hMetaData, const int16_t *pDo_diff, const int16_t bands_bw, const int16_t nB, const int16_t qsi, const int16_t planarCP ); -static ivas_error ivas_spar_set_enc_config( ivas_spar_md_enc_state_t *pState, int16_t *max_freq_per_chan, const int16_t nchan_transport, float *pFC, const int16_t nchan_inp ); +static ivas_error ivas_spar_set_enc_config( ivas_spar_md_enc_state_t *hMdEnc, int16_t *max_freq_per_chan, const int16_t nchan_transport, float *pFC, const int16_t nchan_inp ); static void ivas_select_next_strat( ivas_strats_t prior_strat, ivas_strats_t cs[MAX_QUANT_STRATS], const int16_t dmx_switch, const int16_t dtx_vad ); @@ -84,17 +84,9 @@ static void ivas_store_prior_coeffs( ivas_spar_md_enc_state_t *hMdEnc, const int static void ivas_write_parameter_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); -static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *pState, const ENCODER_CONFIG_HANDLE hEncoderConfig -#ifdef SBA_ORDER_BITSTREAM - , - int16_t sba_order -#endif -); - -static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, float **ppValues, const int16_t ndm, int16_t **ppIndex, const int16_t dim1, float **ppQuant ); - -static void ivas_quant_p_per_band_dtx( float **ppP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float **ppP_out, const int16_t num_ch ); - +static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *hMdEnc, const ENCODER_CONFIG_HANDLE hEncoderConfig, const int16_t sba_order ); +static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, const float *pValues, const int16_t ndm, int16_t *pIndex, const int16_t dim1, float *pQuant ); +static void ivas_quant_p_per_band_dtx( float *pP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float *pP_out, const int16_t num_ch ); static void ivas_write_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, BSTR_ENC_HANDLE hMetaData, int16_t *num_dmx, int16_t *num_dec, const int16_t num_bands ); static void ivas_quant_p_per_band( ivas_band_coeffs_t *pband_coeffs, ivas_band_coeffs_ind_t *pBand_coeffs_idx, ivas_quant_strat_t *pQs, const int16_t num_ch ); @@ -111,35 +103,24 @@ static void ivas_quant_pred_coeffs_per_band( ivas_band_coeffs_t *pband_coeffs, i *------------------------------------------------------------------------*/ ivas_error ivas_spar_md_enc_open( - ivas_spar_md_enc_state_t **hMdEnc_in, /* i/o: SPAR MD encoder handle */ - const ENCODER_CONFIG_HANDLE hEncoderConfig /* i : configuration structure */ -#ifdef SBA_ORDER_BITSTREAM - , - int16_t sba_order -#endif + ivas_spar_md_enc_state_t **hMdEnc_in, /* i/o: SPAR MD encoder handle */ + const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ + const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { ivas_spar_md_enc_state_t *hMdEnc; ivas_error error; -#ifndef SBA_ORDER_BITSTREAM - int16_t num_channels, i, j, order; -#else int16_t num_channels, i, j; -#endif -#ifndef SBA_ORDER_BITSTREAM - order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); -#endif + error = IVAS_ERR_OK; if ( ( hMdEnc = (ivas_spar_md_enc_state_t *) count_malloc( sizeof( ivas_spar_md_enc_state_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR MD encoder" ); } -#ifndef SBA_ORDER_BITSTREAM - num_channels = 2 * order + 2; -#else + num_channels = 2 * sba_order + 2; -#endif + if ( ( hMdEnc->spar_md.band_coeffs = (ivas_band_coeffs_t *) count_malloc( IVAS_MAX_NUM_BANDS * sizeof( ivas_band_coeffs_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for band_coeffs in SPAR MD" ); @@ -219,11 +200,8 @@ ivas_error ivas_spar_md_enc_open( } } } -#ifndef SBA_ORDER_BITSTREAM - if ( ( error = ivas_spar_md_enc_init( hMdEnc, hEncoderConfig ) ) != IVAS_ERR_OK ) -#else + if ( ( error = ivas_spar_md_enc_init( hMdEnc, hEncoderConfig, sba_order ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -323,34 +301,26 @@ void ivas_spar_md_enc_close( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_md_enc_init() * - * Init call for md gen process + * SPAR MD encoder initialization *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_spar_md_enc_init( - ivas_spar_md_enc_state_t *pState, /* o : MD encoder handle */ - const ENCODER_CONFIG_HANDLE hEncoderConfig /* i : configuration structure */ -#ifdef SBA_ORDER_BITSTREAM - , - int16_t sba_order -#endif + ivas_spar_md_enc_state_t *hMdEnc, /* o : MD encoder handle */ + const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ + const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { float pFC[IVAS_MAX_NUM_BANDS]; int16_t table_idx; float PR_minmax[2]; -#ifndef SBA_ORDER_BITSTREAM - int16_t sba_order; -#endif int16_t num_channels, i, j, k; -#ifndef SBA_ORDER_BITSTREAM - sba_order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); -#endif + num_channels = ivas_sba_get_nchan_metadata( sba_order ); table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); - pState->spar_md_cfg.gen_bs = 1; - ivas_spar_set_bitrate_config( &pState->spar_md_cfg, table_idx, SPAR_DIRAC_SPLIT_START_BAND ); + hMdEnc->spar_md_cfg.gen_bs = 1; + ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, SPAR_DIRAC_SPLIT_START_BAND ); /* get FB coefficients */ for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) @@ -358,39 +328,39 @@ static ivas_error ivas_spar_md_enc_init( pFC[i] = ivas_fb_fcs_12band_1ms[i] * hEncoderConfig->input_Fs * 0.5f; } - ivas_spar_set_enc_config( pState, pState->spar_md_cfg.max_freq_per_chan, pState->spar_md_cfg.nchan_transport, pFC, num_channels ); + ivas_spar_set_enc_config( hMdEnc, hMdEnc->spar_md_cfg.max_freq_per_chan, hMdEnc->spar_md_cfg.nchan_transport, pFC, num_channels ); /* - if(pState->spar_md_cfg.quant_strat[0].C.q_levels[0] == 0 || pState->spar_md_cfg.quant_strat[0].C.q_levels[1] == 0 - || pState->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || pState->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 - || pState->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || pState->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 - || pState->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || pState->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) + if(hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[1] == 0 + || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 + || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 + || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) { - pState->spar_md_cfg.gen_bs = 0; + hMdEnc->spar_md_cfg.gen_bs = 0; } - else if(0 != pState->spar_md_cfg.gen_bs) + else if(0 != hMdEnc->spar_md_cfg.gen_bs) { - pState->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); + hMdEnc->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); } */ - if ( pState->spar_md_cfg.nchan_transport != 2 && ( ( pState->spar_md_cfg.remix_unmix_order == 1 ) || ( pState->spar_md_cfg.remix_unmix_order == 2 ) ) ) + if ( hMdEnc->spar_md_cfg.nchan_transport != 2 && ( ( hMdEnc->spar_md_cfg.remix_unmix_order == 1 ) || ( hMdEnc->spar_md_cfg.remix_unmix_order == 2 ) ) ) { return IVAS_ERR_INTERNAL; } - ivas_spar_arith_coeffs_com_init( &pState->arith_coeffs, &pState->spar_md_cfg, table_idx, ENC ); - ivas_spar_huff_coeffs_com_init( &pState->huff_coeffs, NULL, table_idx, ENC ); + ivas_spar_arith_coeffs_com_init( &hMdEnc->arith_coeffs, &hMdEnc->spar_md_cfg, table_idx, ENC ); + ivas_spar_huff_coeffs_com_init( &hMdEnc->huff_coeffs, NULL, table_idx, ENC ); if ( hEncoderConfig->Opt_DTX_ON == 1 ) { /* DTX quant init */ - PR_minmax[0] = pState->spar_md_cfg.quant_strat[0].PR.min; - PR_minmax[1] = pState->spar_md_cfg.quant_strat[0].PR.max; - ivas_spar_quant_dtx_init( &pState->spar_md, PR_minmax ); + PR_minmax[0] = hMdEnc->spar_md_cfg.quant_strat[0].PR.min; + PR_minmax[1] = hMdEnc->spar_md_cfg.quant_strat[0].PR.max; + ivas_spar_quant_dtx_init( &hMdEnc->spar_md, PR_minmax ); } - pState->spar_md_cfg.prior_strat = START; - pState->spar_md_cfg.prev_quant_idx = -1; + hMdEnc->spar_md_cfg.prior_strat = START; + hMdEnc->spar_md_cfg.prev_quant_idx = -1; for ( i = 0; i < num_channels; i++ ) { @@ -398,7 +368,7 @@ static ivas_error ivas_spar_md_enc_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - pState->mixer_mat[i][j][k] = 0; + hMdEnc->mixer_mat[i][j][k] = 0; } } } @@ -409,16 +379,16 @@ static ivas_error ivas_spar_md_enc_init( { for ( k = 0; k < IVAS_MAX_NUM_BANDS; k++ ) { - pState->cov_real[i][j][k] = 0; - pState->cov_dtx_real[i][j][k] = 0; + hMdEnc->cov_real[i][j][k] = 0; + hMdEnc->cov_dtx_real[i][j][k] = 0; } } } - ivas_clear_band_coeffs( pState->spar_md.band_coeffs, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( pState->spar_md.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( pState->spar_md_prior.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); - ivas_clear_band_coeff_idx( pState->spar_md_prior.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeffs( hMdEnc->spar_md.band_coeffs, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( hMdEnc->spar_md.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( hMdEnc->spar_md_prior.band_coeffs_idx, IVAS_MAX_NUM_BANDS ); + ivas_clear_band_coeff_idx( hMdEnc->spar_md_prior.band_coeffs_idx_mapped, IVAS_MAX_NUM_BANDS ); return IVAS_ERR_OK; } @@ -427,11 +397,11 @@ static ivas_error ivas_spar_md_enc_init( /*-----------------------------------------------------------------------------------------* * Function ivas_spar_set_enc_config() * - * Set configuration for SPAR MD gen + * Set configuration for SPAR MD encoder *-----------------------------------------------------------------------------------------*/ static ivas_error ivas_spar_set_enc_config( - ivas_spar_md_enc_state_t *pState, + ivas_spar_md_enc_state_t *hMdEnc, int16_t *max_freq_per_chan, const int16_t nchan_transport, float *pFC, @@ -444,29 +414,29 @@ static ivas_error ivas_spar_set_enc_config( { if ( max_freq_per_chan != NULL ) { - pState->spar_md_cfg.max_freq_per_chan[i] = ( max_freq_per_chan[i] != 0 ) ? max_freq_per_chan[i] : max_freq_per_chan[0]; + hMdEnc->spar_md_cfg.max_freq_per_chan[i] = ( max_freq_per_chan[i] != 0 ) ? max_freq_per_chan[i] : max_freq_per_chan[0]; } else { - pState->spar_md_cfg.max_freq_per_chan[i] = IVAS_SPAR_FOA_DFLT_FREQ_PER_CHAN; + hMdEnc->spar_md_cfg.max_freq_per_chan[i] = IVAS_SPAR_FOA_DFLT_FREQ_PER_CHAN; } } - pState->num_umx_ch = nchan_inp; - pState->num_decorr = nchan_inp - 1; + hMdEnc->num_umx_ch = nchan_inp; + hMdEnc->num_decorr = nchan_inp - 1; for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) { tmp_dmx_ch = 0; for ( j = 0; j < nchan_transport; j++ ) { - if ( pFC[i] < pState->spar_md_cfg.max_freq_per_chan[j] ) + if ( pFC[i] < hMdEnc->spar_md_cfg.max_freq_per_chan[j] ) { tmp_dmx_ch += 1; } } - pState->spar_md_cfg.num_dmx_chans_per_band[i] = tmp_dmx_ch; - pState->spar_md_cfg.num_decorr_per_band[i] = pState->num_umx_ch - tmp_dmx_ch; + hMdEnc->spar_md_cfg.num_dmx_chans_per_band[i] = tmp_dmx_ch; + hMdEnc->spar_md_cfg.num_decorr_per_band[i] = hMdEnc->num_umx_ch - tmp_dmx_ch; } return IVAS_ERR_OK; @@ -583,26 +553,19 @@ ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_state_t *hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ ivas_spar_md_enc_in_buf_t *pIn_buf, - BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ - const int16_t dtx_silence_mode -#ifdef SBA_ORDER_BITSTREAM - , - int16_t sba_order -#endif + BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ + const int16_t dtx_silence_mode, + const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { float pred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; float dm_fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; - int16_t i, b, qsi, ndm, ndec, num_ch; + int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; int16_t j, planarCP; int16_t num_bands = pIn_buf->num_bands; int16_t dtx_vad = pIn_buf->dtx_vad; -#ifndef SBA_ORDER_BITSTREAM - int16_t active_w, nchan_transport, dmx_switch, strat, sba_order; -#else int16_t active_w, nchan_transport, dmx_switch, strat; -#endif int16_t nB, bands_bw, packed_ok = 0; ivas_strats_t cs[MAX_CODING_STRATS]; int16_t code_strat; @@ -610,14 +573,11 @@ ivas_error ivas_spar_md_enc_process( BSTR_ENC_DATA hMetaData_tmp; Indice ind_list_tmp[MAX_BITS_METADATA]; // IVAS_fmToDo: size to be optimized float Wscale[IVAS_MAX_NUM_BANDS]; - ivas_spar_md_enc_state_t *pState = hMdEnc; - int16_t num_quant_strats = pState->spar_md_cfg.num_quant_strats; -#ifndef SBA_ORDER_BITSTREAM - sba_order = min( hEncoderConfig->sba_order, IVAS_MAX_SBA_ORDER ); -#endif + + num_quant_strats = hMdEnc->spar_md_cfg.num_quant_strats; num_ch = ivas_sba_get_nchan_metadata( sba_order ); - active_w = pState->spar_md_cfg.active_w; - nchan_transport = pState->spar_md_cfg.nchan_transport; + active_w = hMdEnc->spar_md_cfg.active_w; + nchan_transport = hMdEnc->spar_md_cfg.nchan_transport; if ( hEncoderConfig->ivas_total_brate == BRATE_SPAR_Q_STRAT && sba_order == 1 ) { @@ -652,8 +612,8 @@ ivas_error ivas_spar_md_enc_process( bands_bw = 1; } - ivas_compute_spar_params( pIn_buf->cov_real, dm_fv_re, 0, pState->mixer_mat, 0, nB, dtx_vad, num_ch, - bands_bw, active_w, &pState->spar_md_cfg, &pState->spar_md, Wscale, 0 ); + ivas_compute_spar_params( pIn_buf->cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, + bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); for ( i = 0; i < num_ch; i++ ) { @@ -661,7 +621,7 @@ ivas_error ivas_spar_md_enc_process( { for ( b = 0; b < num_bands; b++ ) { - hMdEnc->mixer_mat_local[i][j][b] = pState->mixer_mat[i][j][b]; + hMdEnc->mixer_mat_local[i][j][b] = hMdEnc->mixer_mat[i][j][b]; } } } @@ -680,7 +640,7 @@ ivas_error ivas_spar_md_enc_process( #ifdef SPAR_HOA_DBG fprintf( stdout, "qsi = %d\n", qsi ); #endif - if ( qsi == 2 && ivas_spar_br_table_consts[pState->table_idx].usePlanarCoeff ) + if ( qsi == 2 && ivas_spar_br_table_consts[hMdEnc->table_idx].usePlanarCoeff ) { planarCP = 1; #ifdef SPAR_HOA_DBG @@ -696,18 +656,18 @@ ivas_error ivas_spar_md_enc_process( { for ( b = 0; b < num_bands; b++ ) { - ndm = pState->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; + ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; if ( ndm != num_ch ) { - ivas_calc_c_p_coeffs( &pState->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); + ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); } } } for ( b = 0; b < num_bands; b++ ) { - ndm = pState->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; - ndec = pState->spar_md_cfg.num_decorr_per_band[b * bands_bw]; + ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; + ndec = hMdEnc->spar_md_cfg.num_decorr_per_band[b * bands_bw]; if ( dtx_vad == 1 ) { @@ -718,11 +678,11 @@ ivas_error ivas_spar_md_enc_process( for (i = 0; i < ndec; i++) { - for (j = 0; j < ndec; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]);//, hMdEnc->spar_md.band_coeffs[b].P_im[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndec; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]);//, hMdEnc->spar_md.band_coeffs[b].P_im[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif @@ -741,56 +701,33 @@ ivas_error ivas_spar_md_enc_process( /*fprintf(stderr, "\n\n Planar P coefficients: band %d\n", b); for (i = 0; i < ndec; i++) { - for (j = 0; j < ndec; j++) - { - fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]); //, hMdEnc->spar_md.band_coeffs[b].C_im[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndec; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].P_re[i][j]); //, hMdEnc->spar_md.band_coeffs[b].C_im[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif } - ivas_quant_p_per_band( &pState->spar_md.band_coeffs[b], &pState->spar_md.band_coeffs_idx[b], &pState->spar_md_cfg.quant_strat[qsi], num_ch ); + ivas_quant_p_per_band( &hMdEnc->spar_md.band_coeffs[b], &hMdEnc->spar_md.band_coeffs_idx[b], &hMdEnc->spar_md_cfg.quant_strat[qsi], num_ch ); } - ivas_quant_pred_coeffs_per_band( &pState->spar_md.band_coeffs[b], &pState->spar_md.band_coeffs_idx[b], &pState->spar_md_cfg.quant_strat[qsi], num_ch ); + ivas_quant_pred_coeffs_per_band( &hMdEnc->spar_md.band_coeffs[b], &hMdEnc->spar_md.band_coeffs_idx[b], &hMdEnc->spar_md_cfg.quant_strat[qsi], num_ch ); } else { - float **ppPred_re, **ppPred_quant, *pPred_re, *pPred_quant; - int16_t **ppPred_idx, *pPred_re_idx; if ( ndm != num_ch ) { - float *P_re[IVAS_SPAR_MAX_CH - 1], *P_re_quant[IVAS_SPAR_MAX_CH - 1]; - float **ppP_re = (float **) &P_re[0]; - float **ppP_re_quant = (float **) &P_re_quant[0]; - int16_t *ppP_idx = &pState->spar_md.band_coeffs_idx[b].decd_index_re[0]; - - for ( i = 0; i < ndec; i++ ) - { - ppP_re[i] = pState->spar_md.band_coeffs[b].P_re; - ppP_re_quant[i] = pState->spar_md.band_coeffs[b].P_quant_re; - } - - ivas_quant_p_per_band_dtx( ppP_re, ndec, ndm, ppP_idx, ppP_re_quant, num_ch ); + ivas_quant_p_per_band_dtx( hMdEnc->spar_md.band_coeffs[b].P_re, ndec, ndm, &hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[0], hMdEnc->spar_md.band_coeffs[b].P_quant_re, num_ch ); } - - ppPred_idx = (int16_t **) &pPred_re_idx; - ppPred_re = (float **) &pPred_re; - ppPred_quant = (float **) &pPred_quant; - - ppPred_re[0] = pState->spar_md.band_coeffs[b].pred_re; - ppPred_idx[0] = pState->spar_md.band_coeffs_idx[b].pred_index_re; - ppPred_quant[0] = pState->spar_md.band_coeffs[b].pred_quant_re; - for ( i = 0; i < num_ch - 1; i++ ) { - pState->spar_md.band_coeffs[b].pred_quant_re[i] = 0; + hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i] = 0; } - - ivas_spar_quant_pred_coeffs_dtx( &pState->spar_md, ppPred_re, ndm, ppPred_idx, num_ch - 1, ppPred_quant ); + ivas_spar_quant_pred_coeffs_dtx( &hMdEnc->spar_md, hMdEnc->spar_md.band_coeffs[b].pred_re, ndm, hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re, num_ch - 1, hMdEnc->spar_md.band_coeffs[b].pred_quant_re ); } } @@ -798,35 +735,35 @@ ivas_error ivas_spar_md_enc_process( { for ( b = 0; b < num_bands; b++ ) { - pred_coeffs_re[i][b] = Wscale[b] * pState->spar_md.band_coeffs[b].pred_quant_re[i]; + pred_coeffs_re[i][b] = Wscale[b] * hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i]; } } - ivas_create_fullr_dmx_mat( pred_coeffs_re, dm_fv_re, pState->mixer_mat, num_ch, 0, num_bands, active_w, &pState->spar_md_cfg ); + ivas_create_fullr_dmx_mat( pred_coeffs_re, dm_fv_re, hMdEnc->mixer_mat, num_ch, 0, num_bands, active_w, &hMdEnc->spar_md_cfg ); for ( b = 0; b < num_bands; b++ ) { - ndm = pState->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; - ndec = pState->spar_md_cfg.num_decorr_per_band[b * bands_bw]; + ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; + ndec = hMdEnc->spar_md_cfg.num_decorr_per_band[b * bands_bw]; for ( i = 0; i < num_ch; i++ ) { - pState->mixer_mat[0][i][b] *= Wscale[b]; + hMdEnc->mixer_mat[0][i][b] *= Wscale[b]; } if ( ( ndm != num_ch ) && ( ndm != 1 ) ) { - ivas_calc_c_p_coeffs( &pState->spar_md, pIn_buf->cov_real, 0, pState->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); + ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n C coefficients: band %d\n", b); for (i = 0; i < num_ch - ndm; i++) { - for (j = 0; j < ndm - 1; j++) - { - fprintf(stderr, "%f, ", pState->spar_md.band_coeffs[b].C_re[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndm - 1; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].C_re[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif @@ -838,7 +775,7 @@ ivas_error ivas_spar_md_enc_process( { for ( j = 0; j < ndm - 1; j++ ) { - pState->spar_md.band_coeffs[b].C_re[i][j] = 0.0f; + hMdEnc->spar_md.band_coeffs[b].C_re[i][j] = 0.0f; } } } @@ -847,24 +784,24 @@ ivas_error ivas_spar_md_enc_process( for (i = 0; i < num_ch - ndm; i++) { - for (j = 0; j < ndm - 1; j++) - { - fprintf(stderr, "%f, ", pState->spar_md.band_coeffs[b].C_re[i][j]); // , pState->spar_md.band_coeffs[band_idx].C_im[i][j]); - } - fprintf(stderr, "\n"); + for (j = 0; j < ndm - 1; j++) + { + fprintf(stderr, "%f, ", hMdEnc->spar_md.band_coeffs[b].C_re[i][j]); // , hMdEnc->spar_md.band_coeffs[band_idx].C_im[i][j]); + } + fprintf(stderr, "\n"); } fprintf(stderr, "\n\n"); */ #endif } - ivas_quant_c_per_band( &pState->spar_md.band_coeffs[b], &pState->spar_md.band_coeffs_idx[b], - &pState->spar_md_cfg.quant_strat[qsi], ndec, ndm ); + ivas_quant_c_per_band( &hMdEnc->spar_md.band_coeffs[b], &hMdEnc->spar_md.band_coeffs_idx[b], + &hMdEnc->spar_md_cfg.quant_strat[qsi], ndec, ndm ); #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n quantised C indexes: band %d\n", b); for (i = 0; i < ndec * (ndm-1); i++) { - fprintf(stderr, "%d, ", pState->spar_md.band_coeffs_idx[b].drct_index_re[i]); + fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[b].drct_index_re[i]); } fprintf(stderr, "\n\n");*/ #endif @@ -872,26 +809,26 @@ ivas_error ivas_spar_md_enc_process( } /* band limit downmix matrix */ - ivas_band_limit_dmx_matrix( pState, num_ch, num_bands, bands_bw ); + ivas_band_limit_dmx_matrix( hMdEnc, num_ch, num_bands, bands_bw ); /* band mixing */ if ( bands_bw > 1 ) { - ivas_band_mixing( pState, num_ch, num_bands, nchan_transport, pIn_buf->num_bands ); + ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, pIn_buf->num_bands ); } - if ( pState->spar_md_cfg.gen_bs == 0 ) + if ( hMdEnc->spar_md_cfg.gen_bs == 0 ) { break; } if ( dtx_vad == 0 ) { - ivas_write_parameter_bitstream_dtx( &pState->spar_md, hMetaData, pState->spar_md_cfg.num_dmx_chans_per_band, pState->spar_md_cfg.num_decorr_per_band, num_bands ); + ivas_write_parameter_bitstream_dtx( &hMdEnc->spar_md, hMetaData, hMdEnc->spar_md_cfg.num_dmx_chans_per_band, hMdEnc->spar_md_cfg.num_decorr_per_band, num_bands ); break; } - ivas_select_next_strat( pState->spar_md_cfg.prior_strat, cs, dmx_switch, dtx_vad ); + ivas_select_next_strat( hMdEnc->spar_md_cfg.prior_strat, cs, dmx_switch, dtx_vad ); for ( i = 0; i < MAX_CODING_STRATS; i++ ) { @@ -900,13 +837,13 @@ ivas_error ivas_spar_md_enc_process( { reset_indices_enc( &hMetaData_tmp, MAX_BITS_METADATA ); - ivas_write_parameter_bitstream( pState, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, dtx_silence_mode, strat, qsi, planarCP ); + ivas_write_parameter_bitstream( hMdEnc, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, dtx_silence_mode, strat, qsi, planarCP ); if ( hMetaData->nb_bits_tot == bit_pos_start || hMetaData_tmp.nb_bits_tot < ( hMetaData->nb_bits_tot - bit_pos_start ) ) { write_metadata_buffer( &hMetaData_tmp, hMetaData, bit_pos_start, next_ind_start, last_ind_start ); code_strat = strat; } - if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= pState->spar_md_cfg.tgt_bits_per_blk ) + if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.tgt_bits_per_blk ) { packed_ok = 1; break; @@ -919,7 +856,7 @@ ivas_error ivas_spar_md_enc_process( break; } - if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= pState->spar_md_cfg.max_bits_per_blk ) + if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.max_bits_per_blk ) { break; } @@ -932,48 +869,48 @@ ivas_error ivas_spar_md_enc_process( #ifdef SPAR_HOA_DBG /*if ( strat >= 4 ) { - for ( b = 0; b < nB; b++ ) - { - b = 0; - fprintf( stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi ); - for ( i = 0; i < num_ch - 1; i++ ) - { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //pState->spar_md.band_coeffs[b].pred_re[i], - pState->spar_md.band_coeffs[b].pred_quant_re[i], - pState->spar_md_prior.band_coeffs_idx[b].pred_index_re[i], - pState->spar_md.band_coeffs_idx[b].pred_index_re[i] ); - } - fprintf( stdout, "\n\n METADATA C: band %d\n\n", b ); - int16_t k = 0; - for ( i = 0; i < ndec; i++ ) - { - for ( j = 0; j < ( ndm - 1 ); j++ ) - { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, // pState->spar_md.band_coeffs[b].C_re[i][j], - pState->spar_md.band_coeffs[b].C_quant_re[i][j], - pState->spar_md_prior.band_coeffs_idx[b].drct_index_re[k], - pState->spar_md.band_coeffs_idx[b].drct_index_re[k] ); - k++; - } - } - fprintf( stdout, "\n\n METADATA Pd: band %d\n\n", b ); - for ( i = 0; i < num_ch - ndm; i++ ) + for ( b = 0; b < nB; b++ ) { - fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //pState->spar_md.band_coeffs[b].P_re[i][i], - pState->spar_md.band_coeffs[b].P_quant_re[i][i], - pState->spar_md_prior.band_coeffs_idx[b].decd_index_re[i], - pState->spar_md.band_coeffs_idx[b].decd_index_re[i] ); + b = 0; + fprintf( stdout, "\n\nMETADATA PR: band %d, qsi %d\n\n", b, qsi ); + for ( i = 0; i < num_ch - 1; i++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //hMdEnc->spar_md.band_coeffs[b].pred_re[i], + hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i], + hMdEnc->spar_md_prior.band_coeffs_idx[b].pred_index_re[i], + hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re[i] ); + } + fprintf( stdout, "\n\n METADATA C: band %d\n\n", b ); + int16_t k = 0; + for ( i = 0; i < ndec; i++ ) + { + for ( j = 0; j < ( ndm - 1 ); j++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, // hMdEnc->spar_md.band_coeffs[b].C_re[i][j], + hMdEnc->spar_md.band_coeffs[b].C_quant_re[i][j], + hMdEnc->spar_md_prior.band_coeffs_idx[b].drct_index_re[k], + hMdEnc->spar_md.band_coeffs_idx[b].drct_index_re[k] ); + k++; + } + } + fprintf( stdout, "\n\n METADATA Pd: band %d\n\n", b ); + for ( i = 0; i < num_ch - ndm; i++ ) + { + fprintf( stdout, "i: %d -- %f\t %d\t %d\n", i, //hMdEnc->spar_md.band_coeffs[b].P_re[i][i], + hMdEnc->spar_md.band_coeffs[b].P_quant_re[i][i], + hMdEnc->spar_md_prior.band_coeffs_idx[b].decd_index_re[i], + hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[i] ); + } + fprintf( stdout, "\n\n" ); } - fprintf( stdout, "\n\n" ); - } }*/ b = 0; - ndm = pState->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; + ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; fprintf( stdout, "\n\n Metadata PR (15x1), C(15x15), P(15x15): band %d\n", b ); for ( i = 0; i < num_ch - 1; i++ ) { - fprintf( stdout, "i: %d -- %.2f\t|\t", i, pState->spar_md.band_coeffs[b].pred_quant_re[i] ); + fprintf( stdout, "i: %d -- %.2f\t|\t", i, hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i] ); if ( i < num_ch - ndm ) { if ( keep_planar[i] == 1 ) @@ -986,12 +923,12 @@ ivas_error ivas_spar_md_enc_process( } for ( j = 0; j < ndm - 1; j++ ) { - fprintf( stdout, "%.2f\t", pState->spar_md.band_coeffs[b].C_quant_re[i][j] ); + fprintf( stdout, "%.2f\t", hMdEnc->spar_md.band_coeffs[b].C_quant_re[i][j] ); } fprintf( stdout, "|\t" ); for ( j = 0; j < num_ch - ndm; j++ ) { - fprintf( stdout, "%.2f\t", pState->spar_md.band_coeffs[b].P_quant_re[j] ); + fprintf( stdout, "%.2f\t", hMdEnc->spar_md.band_coeffs[b].P_quant_re[j] ); } } fprintf( stdout, "\n" ); @@ -1028,7 +965,7 @@ ivas_error ivas_spar_md_enc_process( ( b == 0 && frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false; for ( i = 0; i < num_ch - 1; i++ ) { - dbgwrite( &pState->spar_md.band_coeffs[b].pred_re[i], sizeof( float ), 1, 1, f_name ); + dbgwrite( &hMdEnc->spar_md.band_coeffs[b].pred_re[i], sizeof( float ), 1, 1, f_name ); } sprintf( f_name, "spar_band_C_coeffs.bin" ); ( b == 0 && frame == 0 ) ? dbgwrite( &nB, sizeof( nB ), 1, 1, f_name ) : false; @@ -1041,7 +978,7 @@ ivas_error ivas_spar_md_enc_process( { for ( j = 0; j < ( ndm - 1 ); j++ ) { - dbgwrite( &pState->spar_md.band_coeffs[b].C_re[i][j], sizeof( float ), 1, 1, f_name ); + dbgwrite( &hMdEnc->spar_md.band_coeffs[b].C_re[i][j], sizeof( float ), 1, 1, f_name ); } } sprintf( f_name, "spar_band_P_coeffs.bin" ); @@ -1053,7 +990,7 @@ ivas_error ivas_spar_md_enc_process( ( b == 0 && frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false; for ( i = 0; i < num_ch - ndm; i++ ) { - dbgwrite( &pState->spar_md.band_coeffs[b].P_re[i], sizeof( float ), 1, 1, f_name ); + dbgwrite( &hMdEnc->spar_md.band_coeffs[b].P_re[i], sizeof( float ), 1, 1, f_name ); } sprintf( f_name, "spar_band_pred_coeffs_quant.bin" ); ( b == 0 && frame == 0 ) ? dbgwrite( &nB, sizeof( nB ), 1, 1, f_name ) : false; @@ -1064,7 +1001,7 @@ ivas_error ivas_spar_md_enc_process( ( b == 0 && frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false; for ( i = 0; i < num_ch - 1; i++ ) { - dbgwrite( &pState->spar_md.band_coeffs[b].pred_quant_re[i], sizeof( float ), 1, 1, f_name ); + dbgwrite( &hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i], sizeof( float ), 1, 1, f_name ); } sprintf( f_name, "spar_band_C_coeffs_quant.bin" ); ( b == 0 && frame == 0 ) ? dbgwrite( &nB, sizeof( nB ), 1, 1, f_name ) : false; @@ -1077,7 +1014,7 @@ ivas_error ivas_spar_md_enc_process( { for ( j = 0; j < ( ndm - 1 ); j++ ) { - dbgwrite( &pState->spar_md.band_coeffs[b].C_quant_re[i][j], sizeof( float ), 1, 1, f_name ); + dbgwrite( &hMdEnc->spar_md.band_coeffs[b].C_quant_re[i][j], sizeof( float ), 1, 1, f_name ); } } sprintf( f_name, "spar_band_P_coeffs_quant.bin" ); @@ -1089,7 +1026,7 @@ ivas_error ivas_spar_md_enc_process( ( b == 0 && frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false; for ( i = 0; i < num_ch - ndm; i++ ) { - dbgwrite( &pState->spar_md.band_coeffs[b].P_quant_re[i], sizeof( float ), 1, 1, f_name ); + dbgwrite( &hMdEnc->spar_md.band_coeffs[b].P_quant_re[i], sizeof( float ), 1, 1, f_name ); } } } @@ -1102,13 +1039,13 @@ ivas_error ivas_spar_md_enc_process( fclose( fp ); #endif - if ( pState->spar_md_cfg.gen_bs == 1 ) + if ( hMdEnc->spar_md_cfg.gen_bs == 1 ) { - ivas_store_prior_coeffs( pState, num_bands, bands_bw, code_strat, dtx_vad, qsi ); + ivas_store_prior_coeffs( hMdEnc, num_bands, bands_bw, code_strat, dtx_vad, qsi ); } - pState->spar_md.dtx_vad = dtx_vad; - pState->spar_md.num_bands = num_bands; + hMdEnc->spar_md.dtx_vad = dtx_vad; + hMdEnc->spar_md.num_bands = num_bands; return IVAS_ERR_OK; } @@ -1402,7 +1339,7 @@ static void ivas_get_arith_coded_bs( #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n band_indexes:\n"); for (int16_t j = 1; j < drct_cell_dims[0].dim1 * drct_cell_dims[0].dim2; j++) - fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[0].drct_index_re[j]); + fprintf(stderr, "%d, ", hMdEnc->spar_md.band_coeffs_idx[0].drct_index_re[j]); fprintf(stderr, "\n\n"); */ #endif ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md.band_coeffs_idx, nB, symbol_arr_re, drct_cell_dims, DRCT_COEFF, planarCP ); @@ -1562,37 +1499,22 @@ static void ivas_store_prior_coeffs( static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, - float **ppValues, + const float *pValues, const int16_t ndm, - int16_t **ppIndex, + int16_t *pIndex, const int16_t dim1, - float **ppQuant ) + float *pQuant ) { int16_t i; int16_t q_lvl; - float *pVal, val, **ppVal; - int16_t *pIdx, idx, **ppIdx; float pr_min_max[2]; - - ppVal = (float **) &pVal; - ppIdx = (int16_t **) &pIdx; - - ppVal[0] = (float *) &val; - ppIdx[0] = (int16_t *) &idx; - pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; - for ( i = 0; i < dim1; i++ ) { q_lvl = dtx_pr_real_q_levels[ndm - 1][i]; - ppVal[0][0] = ppValues[0][i]; - - ivas_quantise_real_values( ppVal, q_lvl, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - ppIndex[0][i] = ppIdx[0][0]; - ppQuant[0][i] = ppVal[0][0]; + ivas_quantise_real_values( &pValues[i], q_lvl, pr_min_max[0], pr_min_max[1], &pIndex[i], &pQuant[i], 1 ); } - return; } @@ -1604,30 +1526,22 @@ static void ivas_spar_quant_pred_coeffs_dtx( *-----------------------------------------------------------------------------------------*/ static void ivas_quant_p_per_band_dtx( - float **ppP_mat, + float *pP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, - float **ppP_out, + float *pP_out, const int16_t num_ch ) { int16_t i; - float **ppPd, *pPd, pd; - int16_t **ppIdx, *pIdx, idx; int16_t dim = num_ch - num_dmx; - - ppPd = (float **) &pPd; - ppIdx = (int16_t **) &pIdx; - ppPd[0] = (float *) &pd; - ppIdx[0] = (int16_t *) &idx; - if ( num_dec == num_ch - 1 ) { for ( i = 0; i < dim; i++ ) { - if ( ppP_mat[i][i] < pr_boost_range[1] && ppP_mat[i][i] > pr_boost_range[0] ) + if ( pP_mat[i] < pr_boost_range[1] && pP_mat[i] > pr_boost_range[0] ) { - ppP_mat[i][i] = pr_boost_range[1]; + pP_mat[i] = pr_boost_range[1]; } } } @@ -1636,21 +1550,13 @@ static void ivas_quant_p_per_band_dtx( { assert( !"Not Supported!" ); } - for ( i = 0; i < dim; i++ ) { - ppPd[0][0] = ppP_mat[i][i]; - - ivas_quantise_real_values( ppPd, dtx_pd_real_q_levels[num_ch - num_dec - 1][i], dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppPd, 1, 1 ); - - ppP_out[i][i] = ppPd[0][0]; - ppIdx_pd[i] = ppIdx[0][0]; + ivas_quantise_real_values( &pP_mat[i], dtx_pd_real_q_levels[num_ch - num_dec - 1][i], dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &ppIdx_pd[i], &pP_out[i], 1 ); } - return; } - /*-----------------------------------------------------------------------------------------* * Function ivas_write_parameter_bitstream_dtx() * @@ -1665,18 +1571,11 @@ static void ivas_write_parameter_bitstream_dtx( const int16_t num_bands ) { int16_t i, j; - float **ppVal, *pVal, val; - int16_t **ppIdx, *pIdx, idx; + float val; + int16_t idx; float pr_min_max[2]; int16_t zero_pad_bits, sid_bits_len; sid_bits_len = hMetaData->nb_bits_tot; - - ppVal = (float **) &pVal; - ppIdx = (int16_t **) &pIdx; - - ppVal[0] = (float *) &val; - ppIdx[0] = (int16_t *) &idx; - pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; @@ -1714,17 +1613,15 @@ static void ivas_write_parameter_bitstream_dtx( pd_q_lvls = dtx_pd_real_q_levels[ndm - 1][pd_idx_2 - 1]; pd = pSpar_md->band_coeffs_idx[i].decd_index_re[pd_idx_2 - 1]; } + val = dtx_pd_real_min_max[0]; + ivas_quantise_real_values( &val, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &idx, &val, 1 ); - ppVal[0][0] = dtx_pd_real_min_max[0]; - ivas_quantise_real_values( ppVal, pd_q_lvls, dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], ppIdx, ppVal, 1, 1 ); - - pd -= ppIdx[0][0]; + pd -= idx; - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); - - pr -= ppIdx[0][0]; + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); + pr -= idx; pr_pd_bits = ivas_get_bits_to_encode( pd_q_lvls * pr_q_lvls ); value = (uint16_t) ( pr * pd_q_lvls + pd ); @@ -1737,21 +1634,19 @@ static void ivas_write_parameter_bitstream_dtx( int16_t pr_idx1, pr_idx2, pr_pr_bits; pr_q_lvls1 = dtx_pr_real_q_levels[ndm - 1][pr_idx_1 - 1]; pr_q_lvls2 = dtx_pr_real_q_levels[ndm - 1][pr_idx_2 - 1]; - - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls1, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls1, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); pr_idx1 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_1 - 1]; - pr_idx1 -= ppIdx[0][0]; + pr_idx1 -= idx; - ppVal[0][0] = pr_min_max[0]; - ivas_quantise_real_values( ppVal, pr_q_lvls2, pr_min_max[0], pr_min_max[1], ppIdx, ppVal, 1, 1 ); + val = pr_min_max[0]; + ivas_quantise_real_values( &val, pr_q_lvls2, pr_min_max[0], pr_min_max[1], &idx, &val, 1 ); pr_idx2 = pSpar_md->band_coeffs_idx[i].pred_index_re[pr_idx_2 - 1]; - pr_idx2 -= ppIdx[0][0]; - + pr_idx2 -= idx; value = (uint16_t) ( pr_idx2 * pr_q_lvls1 + pr_idx1 ); pr_pr_bits = ivas_get_bits_to_encode( pr_q_lvls1 * pr_q_lvls2 ); @@ -1788,18 +1683,7 @@ static void ivas_quant_pred_coeffs_per_band( ivas_quant_strat_t *pQs, const int16_t num_ch ) { - float *pQuant_re, *pCoeff_re; - int16_t *pIdx_re; - float **ppPred_coeffs_re = (float **) &pCoeff_re; - float **ppPred_quant_re = (float **) &pQuant_re; - int16_t **ppPred_idx_re = (int16_t **) &pIdx_re; - - ppPred_idx_re[0] = &pBand_coeffs_idx->pred_index_re[0]; - ppPred_coeffs_re[0] = &pband_coeffs->pred_re[0]; - ppPred_quant_re[0] = &pband_coeffs->pred_quant_re[0]; - - ivas_quantise_real_values( ppPred_coeffs_re, pQs->PR.q_levels[0], pQs->PR.min, pQs->PR.max, ppPred_idx_re, ppPred_quant_re, 1, ( num_ch - 1 ) ); - + ivas_quantise_real_values( pband_coeffs->pred_re, pQs->PR.q_levels[0], pQs->PR.min, pQs->PR.max, pBand_coeffs_idx->pred_index_re, pband_coeffs->pred_quant_re, ( num_ch - 1 ) ); return; } @@ -1820,17 +1704,6 @@ static void ivas_quant_c_per_band( int16_t i; int16_t j, k; float C_re[IVAS_SPAR_MAX_C_COEFF]; - float *pC_re[IVAS_SPAR_MAX_C_COEFF]; - int16_t *pIdx_re[IVAS_SPAR_MAX_C_COEFF]; - float **ppC_re = (float **) &pC_re[0]; - int16_t **ppIdx_re = (int16_t **) &pIdx_re[0]; - - for ( i = 0; i < ndec * ( ndm - 1 ); i++ ) - { - ppC_re[i] = &C_re[i]; - ppIdx_re[i] = &pBand_coeffs_idx->drct_index_re[i]; - } - k = 0; for ( i = 0; i < ndec; i++ ) { @@ -1840,19 +1713,16 @@ static void ivas_quant_c_per_band( k++; } } - #ifdef SPAR_HOA_DBG /*for (i = 0; i < ndec; i++) { - for (j = 0; j < ndm - 1; j++) - { - ppIdx_re[i][j] = 100; - } + for (j = 0; j < ndm - 1; j++) + { + ppIdx_re[i][j] = 100; + } }*/ #endif - - ivas_quantise_real_values( ppC_re, pQs->C.q_levels[0], pQs->C.min, pQs->C.max, ppIdx_re, ppC_re, ndec * ( ndm - 1 ), 1 ); - + ivas_quantise_real_values( C_re, pQs->C.q_levels[0], pQs->C.min, pQs->C.max, pBand_coeffs_idx->drct_index_re, C_re, ndec * ( ndm - 1 ) ); k = 0; for ( i = 0; i < ndec; i++ ) { @@ -1867,11 +1737,11 @@ static void ivas_quant_c_per_band( k = 0; for (i = 0; i < ndec; i++) { - for (j = 0; j < ndm - 1; j++) - { - fprintf(stderr, "%d,%d: %f, %f, %d\n", i, j, pband_coeffs->C_re[i][j], pband_coeffs->C_quant_re[i][j], pBand_coeffs_idx->drct_index_re[k]); - k++; - } + for (j = 0; j < ndm - 1; j++) + { + fprintf(stderr, "%d,%d: %f, %f, %d\n", i, j, pband_coeffs->C_re[i][j], pband_coeffs->C_quant_re[i][j], pBand_coeffs_idx->drct_index_re[k]); + k++; + } }*/ #endif @@ -1891,40 +1761,14 @@ static void ivas_quant_p_per_band( ivas_quant_strat_t *pQs, const int16_t num_ch ) { - float P_re_diag[IVAS_SPAR_MAX_CH - 1]; - int16_t i; - int16_t dim = num_ch - 1; - float *pP_diag[IVAS_SPAR_MAX_CH - 1]; - int16_t *pDecd_idx[IVAS_SPAR_MAX_CH - 1]; - float **ppP_diag = (float **) &pP_diag[0]; - int16_t **ppDecd_idx = (int16_t **) &pDecd_idx[0]; - - for ( i = 0; i < dim; i++ ) - { - ppP_diag[i] = &P_re_diag[i]; - ppDecd_idx[i] = &pBand_coeffs_idx->decd_index_re[i]; - } - - for ( i = 0; i < dim; i++ ) - { - P_re_diag[i] = pband_coeffs->P_re[i]; - } - #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n P_d:\n"); for (i = 0; i < dim; i++) { - fprintf(stderr, "%f, ", P_re_diag[i]); + fprintf(stderr, "%f, ", P_re_diag[i]); } fprintf(stderr, "\n\n");*/ #endif - - ivas_quantise_real_values( ppP_diag, pQs->P_r.q_levels[0], pQs->P_r.min, pQs->P_r.max, ppDecd_idx, ppP_diag, num_ch - 1, 1 ); - - for ( i = 0; i < dim; i++ ) - { - pband_coeffs->P_quant_re[i] = P_re_diag[i]; - } - + ivas_quantise_real_values( pband_coeffs->P_re, pQs->P_r.q_levels[0], pQs->P_r.min, pQs->P_r.max, pBand_coeffs_idx->decd_index_re, pband_coeffs->P_quant_re, num_ch - 1 ); return; } diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 58b6970d58..2169cac9bd 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -571,7 +571,11 @@ typedef struct ivas_dirac_enc_data_structure PARAM_ISM_CONFIG_HANDLE hParamIsm; /* Parametric ISM handle */ IVAS_FB_MIXER_HANDLE hFbMixer; +#ifdef FIX_DIRAC_CHANNELS + float *sba_synchro_buffer[DIRAC_MAX_ANA_CHANS]; +#else float *sba_synchro_buffer[IVAS_MAX_NUM_CH]; // VE: all 16 buffers not needed ? +#endif int16_t num_samples_synchro_delay; /* DirAC parameter estimation */ @@ -1040,9 +1044,7 @@ typedef struct /* high-level encoder parameters */ int16_t nchan_transport; /* number of transport channels */ -#ifdef SBA_ORDER_BITSTREAM - int16_t sba_analysis_order; /*Ambisonic(SBA) order*/ -#endif + int16_t sba_analysis_order; /* Ambisonic (SBA) order used for analysis and coding */ int16_t codec_mode; /* Mode1 or Mode2 of core codec */ int16_t last_codec_mode; /* previous frame Mode 1 or 2 */ diff --git a/lib_enc/ivas_stereo_cng_enc.c b/lib_enc/ivas_stereo_cng_enc.c index 860cdbe88f..9176f9ad2f 100644 --- a/lib_enc/ivas_stereo_cng_enc.c +++ b/lib_enc/ivas_stereo_cng_enc.c @@ -148,7 +148,12 @@ void stereo_dft_enc_sid_coh( int16_t alpha_level; int16_t n; +#ifdef ALIGN_SID_SIZE + /* TODO: still use old number of bits to keep bitexactness in output */ + nr_of_sid_stereo_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#else nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; +#endif zeropad = 0; /* Encode coherence vector. Find best fixed predictor by minimizing prediction error on input vector. @@ -303,6 +308,10 @@ void stereo_dft_enc_sid_coh( ( *nb_bits )++; } +#ifdef ALIGN_SID_SIZE + push_next_indice( hBstr, zeropad, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); +#endif + return; } diff --git a/lib_enc/ivas_stereo_dft_enc.c b/lib_enc/ivas_stereo_dft_enc.c index b6a7e0685d..402003be6c 100644 --- a/lib_enc/ivas_stereo_dft_enc.c +++ b/lib_enc/ivas_stereo_dft_enc.c @@ -2317,7 +2317,11 @@ void stereo_dft_enc_write_BS( { stereo_dft_enc_sid_calc_coh( hStereoDft, hCPE->hStereoCng->coh_crossfade, &hCPE->hStereoCng->td_active, &hCPE->hStereoCng->first_SID, cohBand ); +#ifdef ALIGN_SID_SIZE + if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 ) ) +#else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 ) ) +#endif { if ( hStereoDft->hItd->itd[k_offset] != 0 ) { @@ -2393,7 +2397,11 @@ void stereo_dft_enc_write_BS( nb += STEREO_DFT_GIPD_NBITS; } } +#ifdef ALIGN_SID_SIZE + else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS ) ) +#else else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS ) ) +#endif { push_indice( hBstr, IND_STEREO_DFT_NO_IPD_FLAG, hStereoDft->no_ipd_flag, STEREO_DFT_FLAG_BITS ); nb += STEREO_DFT_FLAG_BITS; /*IPD mode flag: 1bit*/ @@ -2943,7 +2951,11 @@ static void stereo_dft_enc_compute_prm( /* parameters for bred0 <= b < bpred1 are estimated from parameters of the remaining bands with ptrans0 <= b < btrans1. */ - bpred1 = ( hStereoDft->nbands > 10 ) ? hStereoDft->nbands - 2 : hStereoDft->nbands; + bpred1 = ( hStereoDft->nbands > 10 ) ? STEREO_DFT_RES_PRED_BAND_MAX - 2 : hStereoDft->nbands; + if ( hStereoDft->band_res[k_offset] == STEREO_DFT_BAND_RES_LOW ) + { + bpred1 = min( bpred1, 6 ); + } bpred0 = bpred1 - STEREO_DFT_RES_PRED_BAND_MIN_CONST; /* get estimate (currently the maximal index) */ @@ -2963,7 +2975,7 @@ static void stereo_dft_enc_compute_prm( if ( hStereoDft->reverb_flag && hStereoDft->nbands > 10 ) /*SWB and FB*/ { - for ( b = hStereoDft->nbands - 1; b >= hStereoDft->nbands - 2; b-- ) + for ( b = STEREO_DFT_RES_PRED_BAND_MAX - 1; b >= STEREO_DFT_RES_PRED_BAND_MAX - 2; b-- ) { hStereoDft->res_pred_index_EC[b - STEREO_DFT_RES_PRED_BAND_MIN_CONST] = hStereoDft->res_pred_index_EC[b]; } diff --git a/lib_enc/ivas_stereo_dft_enc_itd.c b/lib_enc/ivas_stereo_dft_enc_itd.c index fd39db32d3..594137993e 100755 --- a/lib_enc/ivas_stereo_dft_enc_itd.c +++ b/lib_enc/ivas_stereo_dft_enc_itd.c @@ -446,9 +446,6 @@ static float calc_mean_E_ratio( ITD_DATA_HANDLE hItd, int16_t nbands, int16_t band_limits[], -#ifndef FIX_WRONG_NBANDS_IN_ITD_ESTIMATION - const int16_t NFFT, -#endif const float sfm, const float nrg_L[STEREO_DFT_N_32k_ENC / 2], const float nrg_R[STEREO_DFT_N_32k_ENC / 2], @@ -469,11 +466,7 @@ static float calc_mean_E_ratio( grand_sum_xcorr_img = 0.0f; /*take bands up to 32kHz bandwidth as ITD is always calculated at 32kHz sampling rate*/ -#ifdef FIX_WRONG_NBANDS_IN_ITD_ESTIMATION nbands -= ( band_limits[nbands] > STEREO_DFT_N_32k_ENC / 2 ); -#else - nbands -= ( NFFT > STEREO_DFT_N_32k_ENC ); -#endif sum_Er = 0; for ( b = 0; b < nbands; b++ ) @@ -1244,11 +1237,7 @@ void stereo_dft_enc_compute_itd( /*calculate mean E ratio of main to background signal for cohSNR*/ if ( hCPE->element_mode == IVAS_CPE_DFT ) { -#ifdef FIX_WRONG_NBANDS_IN_ITD_ESTIMATION mEr = calc_mean_E_ratio( hItd, hStereoDft->nbands, hStereoDft->band_limits, sfm_L, pNrgL, pNrgR, &total_mEr ); -#else - mEr = calc_mean_E_ratio( hItd, hStereoDft->nbands, hStereoDft->band_limits, hStereoDft->NFFT, sfm_L, pNrgL, pNrgR, &total_mEr ); -#endif } else { @@ -1257,11 +1246,7 @@ void stereo_dft_enc_compute_itd( set_s( band_limits, 0, STEREO_DFT_BAND_MAX + 1 ); set_band_limits( &nbands, band_limits, hCPE->hStereoMdct->hDft_ana->NFFT ); -#ifdef FIX_WRONG_NBANDS_IN_ITD_ESTIMATION mEr = calc_mean_E_ratio( hItd, nbands, band_limits, sfm_L, pNrgL, pNrgR, &total_mEr ); -#else - mEr = calc_mean_E_ratio( hItd, nbands, band_limits, hCPE->hStereoMdct->hDft_ana->NFFT, sfm_L, pNrgL, pNrgR, &total_mEr ); -#endif } /*calculate total cohSNR for frame in dB*/ diff --git a/lib_enc/ivas_stereo_dmx_evs.c b/lib_enc/ivas_stereo_dmx_evs.c index 409b7b0d56..a6773bc64c 100644 --- a/lib_enc/ivas_stereo_dmx_evs.c +++ b/lib_enc/ivas_stereo_dmx_evs.c @@ -152,9 +152,6 @@ static void calc_poc( { int16_t i, n1, n2; int16_t n0, *itdLR; -#ifndef NTT_REMOVE_EPS_ROM - const float *c; -#endif const float *s; float *P; float tmp1, tmp2, Lr, Li, Rr, Ri, gamma, igamma, iN; @@ -162,18 +159,13 @@ static void calc_poc( float tmpPOC1[L_FRAME48k], tmpPOC2[L_FRAME48k]; float rfft_buf[L_FRAME48k]; int16_t step, bias; -#ifdef NTT_REMOVE_EPS_ROM int16_t i_for; int16_t cos_step, cos_max; float eps_cos, eps_sin, EPS; -#endif /* Initialization */ iN = 1.0f / (float) input_frame; -#ifndef NTT_REMOVE_EPS_ROM - c = hPOC->sin + ( input_frame >> 2 ); -#endif s = hPOC->sin; P = hPOC->P; n0 = input_frame / 2; @@ -195,7 +187,6 @@ static void calc_poc( specPOr[0] = sign( specLr[0] ) * sign( specRr[0] ) * wnd[bias]; specPOi[0] = 0.0f; -#ifdef NTT_REMOVE_EPS_ROM EPS = hPOC->eps; if ( input_frame == L_FRAME16k ) @@ -252,28 +243,6 @@ static void calc_poc( specPOi[i] = ( Lr * Ri - Li * Rr ) * tmp1; gamma -= igamma; } - // end NTT_REMOVE_EPS_ROM -#else - for ( i = 1; i < n0; i++ ) - { - Lr = specLr[i]; - Li = specLi[i]; - Rr = specRr[i]; - Ri = specRi[i]; - - Lr += ( specRr[i] * c[i] + specRi[i] * s[i] ); - Li += ( -specRr[i] * s[i] + specRi[i] * c[i] ); - Rr += ( specLr[i] * c[i] + specLi[i] * s[i] ); - Ri += ( -specLr[i] * s[i] + specLi[i] * c[i] ); - - tmp1 = wnd[i * step + bias] * gamma / ( sqrtf( ( ( Lr * Lr + Li * Li ) ) * ( ( Rr * Rr + Ri * Ri ) ) ) + hPOC->eps ); - - specPOr[i] = ( Lr * Rr + Li * Ri ) * tmp1; - specPOi[i] = ( Lr * Ri - Li * Rr ) * tmp1; - - gamma -= igamma; - } -#endif // end !NTT_REMOVE_EPS_ROM specPOr[n0] = sign( specLr[i] ) * sign( specRr[i] ) * wnd[i * step + bias] * gamma; @@ -445,20 +414,6 @@ static float find_poc_peak( } } -#ifndef NTT_UPDATE_ITD_SW - if ( on[0] && prev_off[0] ) - { - *itd = (float) itdLR[0]; - } - else if ( on[1] && prev_off[1] ) - { - *itd = (float) itdLR[1]; - } - else - { - *itd = ( *itd > 0 ) ? (float) itdLR[0] : (float) itdLR[1]; - } -#else if ( ( on[0] && prev_off[0] ) && ( on[1] && prev_off[1] ) ) /*if both channels have newly detected as active (possibility of preceding), select channel by peakness Q[] of POC */ { *itd = ( Q[0] > Q[1] ) ? (float) itdLR[0] : (float) itdLR[1]; @@ -487,7 +442,6 @@ static float find_poc_peak( { *itd = ( *itd > 0 ) ? (float) itdLR[0] : (float) itdLR[1]; } -#endif cconfidence = sqrtf( fabsf( Q[0] - Q[1] ) ); /*higher value indicates higher confidence for one preceding channel*/ @@ -868,7 +822,6 @@ ivas_error stereo_dmx_evs_init_encoder( } hStereoDmxEVS->hPOC->eps = 2.0f * EVS_PI / ( (float) input_frame ); -#ifdef NTT_REMOVE_EPS_ROM if ( input_frame == L_FRAME16k ) { hStereoDmxEVS->hPOC->sin = dft_trigo_32k; @@ -885,24 +838,6 @@ ivas_error stereo_dmx_evs_init_encoder( { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "invalid frame length\n" ); } -#else - if ( input_frame == L_FRAME16k ) - { - hStereoDmxEVS->hPOC->sin = Stereo_dmx_s_wnd_coef_eps_16k; - } - else if ( input_frame == L_FRAME32k ) - { - hStereoDmxEVS->hPOC->sin = Stereo_dmx_s_wnd_coef_eps_32k; - } - else if ( input_frame == L_FRAME48k ) - { - hStereoDmxEVS->hPOC->sin = Stereo_dmx_s_wnd_coef_eps_48k; - } - else - { - return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "invalid frame length\n" ); - } -#endif hStereoDmxEVS->hPOC->confidence = 0.0f; diff --git a/lib_enc/ivas_stereo_mdct_core_enc.c b/lib_enc/ivas_stereo_mdct_core_enc.c index c41df7b24e..664998967c 100644 --- a/lib_enc/ivas_stereo_mdct_core_enc.c +++ b/lib_enc/ivas_stereo_mdct_core_enc.c @@ -129,6 +129,9 @@ void stereo_mdct_core_enc( float *p_orig_spectrum_long[CPE_CHANNELS], orig_spectrum_long[CPE_CHANNELS][N_MAX]; /* MDCT output (L/R). */ float *orig_spectrum[CPE_CHANNELS][2]; /* Pointers to MDCT output for a short block (L/R) */ float powerSpec[CPE_CHANNELS][N_MAX]; +#ifdef DRAM_REDUCTION_MCT_IGF + float *p_powerSpec[CPE_CHANNELS]; +#endif float powerSpecMsInv_long[CPE_CHANNELS][N_MAX]; /* MS inv power spectrum, also inverse MDST spectrum */ float *powerSpecMsInv[CPE_CHANNELS][2]; float quantized_spectrum_long[CPE_CHANNELS][N_MAX]; /* quantized MDCT spectrum, inv ms mask mdst spectrum, scratch for MS spectra in the MS decision */ @@ -351,7 +354,13 @@ void stereo_mdct_core_enc( hStereoMdct->mdct_stereo_mode[n] == SMDCT_BW_MS ) && !hStereoMdct->isSBAStereoMode ) { +#ifdef DRAM_REDUCTION_MCT_IGF + p_powerSpec[0] = powerSpec[0]; + p_powerSpec[1] = powerSpec[1]; + ProcessStereoIGF( hStereoMdct, sts, ms_mask, orig_spectrum, p_powerSpec, powerSpecMsInv, inv_spectrum, n, hCPE->hCoreCoder[0]->sp_aud_decision0, hCPE->hCoreCoder[0]->element_brate, 0 ); +#else ProcessStereoIGF( hStereoMdct, sts, ms_mask, orig_spectrum, powerSpec, powerSpecMsInv, inv_spectrum, n, hCPE->hCoreCoder[0]->sp_aud_decision0, hCPE->hCoreCoder[0]->element_brate, 0 ); +#endif } else { diff --git a/lib_enc/ivas_stereo_switching_enc.c b/lib_enc/ivas_stereo_switching_enc.c index 9075d73595..d0201784a6 100644 --- a/lib_enc/ivas_stereo_switching_enc.c +++ b/lib_enc/ivas_stereo_switching_enc.c @@ -218,13 +218,12 @@ static void deallocate_CoreCoder_enc( *-------------------------------------------------------------------*/ ivas_error stereo_memory_enc( - CPE_ENC_HANDLE hCPE, /* i : CPE encoder structure */ - const int32_t input_Fs, /* i : input sampling rate */ - const int16_t max_bwidth, /* i : maximum audio bandwidth */ - float *tdm_last_ratio, /* o : TD stereo last ratio */ - const IVAS_FORMAT ivas_format /* i : ivas format */ - , - const int16_t nchan_transport /* i : number transport chans */ + CPE_ENC_HANDLE hCPE, /* i : CPE encoder structure */ + const int32_t input_Fs, /* i : input sampling rate */ + const int16_t max_bwidth, /* i : maximum audio bandwidth */ + float *tdm_last_ratio, /* o : TD stereo last ratio */ + const IVAS_FORMAT ivas_format, /* i : ivas format */ + const int16_t nchan_transport /* i : number transport chans */ ) { Encoder_State *st; @@ -538,7 +537,7 @@ ivas_error stereo_memory_enc( #endif initMdctStereoEncData( hCPE->hStereoMdct, ivas_format, hCPE->element_mode, hCPE->element_brate, hCPE->hCoreCoder[0]->max_bwidth, 0, NULL, 1 ); - hCPE->hStereoMdct->isSBAStereoMode = ( ( ivas_format == SBA_FORMAT ) && ( nchan_transport == 2 ) ); + hCPE->hStereoMdct->isSBAStereoMode = ( ivas_format == SBA_FORMAT && nchan_transport == 2 ); if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_format == STEREO_FORMAT ) { diff --git a/lib_enc/ivas_tcx_core_enc.c b/lib_enc/ivas_tcx_core_enc.c index 79bb2f04a7..ce2d74ec9a 100644 --- a/lib_enc/ivas_tcx_core_enc.c +++ b/lib_enc/ivas_tcx_core_enc.c @@ -268,7 +268,7 @@ void stereo_tcx_core_enc( *--------------------------------------------------------------------------------*/ /* TCX20/TCX10 and coder type */ -#ifdef FIX_IVAS_185_MDCT_ST_PLC_FADEOUT +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE writeTCXMode( st, hBstr, 0, /* <- is_mct */ &nbits_start ); #else writeTCXMode( st, hBstr, &nbits_start ); diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index b9d4dde032..0525c7c1db 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -54,7 +54,6 @@ struct IVAS_ENC Indice ind_list[MAX_NUM_DATA][MAX_NUM_INDICES]; /* list of indices */ Indice ind_list_metadata[MAX_NUM_METADATA][MAX_BITS_METADATA]; /* list of indices for metadata */ ENC_CORE_HANDLE hCoreCoder; - /* Some of these can be moved to Encoder_Struct, but for now leave them here to keep merging simpler */ bool isConfigured; #ifdef DEBUGGING bool cmd_stereo; @@ -63,7 +62,8 @@ struct IVAS_ENC int16_t Opt_RF_ON_loc; int16_t rf_fec_offset_loc; bool ismMetadataProvided[MAX_NUM_OBJECTS]; - bool maxBandwidthUser; /* Was a specific max bandwith selected by the user? */ + bool maxBandwidthUser; /* Was a specific max bandwith selected by the user? */ + IVAS_ENC_BANDWIDTH newBandwidthApi; /* maximum encoded bandwidth, as set on API level */ }; /*---------------------------------------------------------------------* @@ -77,7 +77,7 @@ static ivas_error setChannelAwareConfig( IVAS_ENC_HANDLE hIvasEnc, const IVAS_EN static int16_t getInputBufferSize( const Encoder_Struct *st_ivas ); static ivas_error doCommonConfigureChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error doCommonSetterChecks( IVAS_ENC_HANDLE hIvasEnc ); -static void updateBandwidthFromFs( const ENCODER_CONFIG_HANDLE hEncoderConfig ); +static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ); static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error bandwidthApiToInternal( const IVAS_ENC_BANDWIDTH maxBandwidth, int16_t *internalMaxBandwidth ); @@ -105,6 +105,10 @@ ivas_error IVAS_ENC_Open( return IVAS_ERR_UNEXPECTED_NULL_POINTER; } + /*-----------------------------------------------------------------* + * Allocate and initialize IVAS application encoder handle + *-----------------------------------------------------------------*/ + #ifdef BITSTREAM_INDICES_MEMORY if ( ( *phIvasEnc = (IVAS_ENC_HANDLE) dynamic_malloc( sizeof( struct IVAS_ENC ) ) ) == NULL ) #else @@ -114,15 +118,14 @@ ivas_error IVAS_ENC_Open( return IVAS_ERR_FAILED_ALLOC; } - if ( ( ( *phIvasEnc )->st_ivas = (Encoder_Struct *) count_malloc( sizeof( Encoder_Struct ) ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS encoder structure" ); - } - - if ( ( ( *phIvasEnc )->st_ivas->hEncoderConfig = (ENCODER_CONFIG_HANDLE) count_malloc( sizeof( ENCODER_CONFIG ) ) ) == NULL ) - { - return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for Encoder config structure" ); - } + ( *phIvasEnc )->hCoreCoder = NULL; + ( *phIvasEnc )->isConfigured = false; +#ifdef DEBUGGING + ( *phIvasEnc )->cmd_stereo = false; +#endif + ( *phIvasEnc )->switchingActive = false; + ( *phIvasEnc )->maxBandwidthUser = false; + resetIsmMetadataProvidedFlags( *phIvasEnc ); /*-----------------------------------------------------------------* * Initialize indices @@ -147,29 +150,36 @@ ivas_error IVAS_ENC_Open( } /*-----------------------------------------------------------------* - * Initialize encoder state + * Allocate IVAS-codec encoder state *-----------------------------------------------------------------*/ - st_ivas = ( *phIvasEnc )->st_ivas; - st_ivas->hEncoderConfig->ivas_total_brate = ACELP_12k65; - st_ivas->hEncoderConfig->Opt_SC_VBR = 0; - st_ivas->hEncoderConfig->last_Opt_SC_VBR = 0; + if ( ( ( *phIvasEnc )->st_ivas = (Encoder_Struct *) count_malloc( sizeof( Encoder_Struct ) ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for IVAS encoder structure" ); + } - st_ivas->mc_mode = MC_MODE_NONE; - st_ivas->ism_mode = ISM_MODE_NONE; - st_ivas->sba_mode = SBA_MODE_NONE; + if ( ( ( *phIvasEnc )->st_ivas->hEncoderConfig = (ENCODER_CONFIG_HANDLE) count_malloc( sizeof( ENCODER_CONFIG ) ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Cannot allocate memory for Encoder config structure" ); + } + + /*-----------------------------------------------------------------* + * Initialize IVAS-codec encoder state + *-----------------------------------------------------------------*/ + st_ivas = ( *phIvasEnc )->st_ivas; + + /* initialize encoder Config. handle */ init_encoder_config( st_ivas->hEncoderConfig ); - ( *phIvasEnc )->hCoreCoder = NULL; - ( *phIvasEnc )->isConfigured = false; -#ifdef DEBUGGING - ( *phIvasEnc )->cmd_stereo = false; -#endif - ( *phIvasEnc )->switchingActive = false; - ( *phIvasEnc )->maxBandwidthUser = false; - resetIsmMetadataProvidedFlags( *phIvasEnc ); + /* initialize pointers to handles to NULL */ + ivas_initialize_handles_enc( st_ivas ); + /* set high-level parameters */ + st_ivas->mc_mode = MC_MODE_NONE; + st_ivas->ism_mode = ISM_MODE_NONE; + st_ivas->sba_mode = SBA_MODE_NONE; + st_ivas->sba_analysis_order = 0; return IVAS_ERR_OK; } @@ -639,9 +649,7 @@ static ivas_error configureEncoder( st_ivas = hIvasEnc->st_ivas; hEncoderConfig = st_ivas->hEncoderConfig; -#ifdef SBA_ORDER_BITSTREAM - st_ivas->sba_analysis_order = hEncoderConfig->sba_order; -#endif + /*-----------------------------------------------------------------* * Bandwidth limitation *-----------------------------------------------------------------*/ @@ -772,16 +780,7 @@ static ivas_error configureEncoder( } else if ( hEncoderConfig->ivas_format == SBA_FORMAT ) { - if ( hEncoderConfig->ivas_total_brate < IVAS_256k ) - { - /* set SBA order to 1 for bit rates below 256kbps for correct handling of input with higher order */ - /* IVAS_fmToDo: needs more work in case of bitrate switching */ -#ifndef SBA_ORDER_BITSTREAM - hEncoderConfig->sba_order = 1; -#else - st_ivas->sba_analysis_order = 1; -#endif - } + /* nothing */ } else if ( hEncoderConfig->ivas_format == MASA_FORMAT ) { @@ -826,8 +825,6 @@ static ivas_error configureEncoder( hEncoderConfig->input_Fs = inputFs; - updateBandwidthFromFs( hEncoderConfig ); - /*-----------------------------------------------------------------* * Channel-aware mode *-----------------------------------------------------------------*/ @@ -855,7 +852,7 @@ static ivas_error configureEncoder( } } - if ( hEncoderConfig->ivas_total_brate == 13200 && hEncoderConfig->Opt_RF_ON == 1 ) + if ( hEncoderConfig->ivas_total_brate == IVAS_13k2 && hEncoderConfig->Opt_RF_ON == 1 ) { st_ivas->codec_mode = MODE2; } @@ -886,15 +883,17 @@ static ivas_error configureEncoder( { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "AGC supported in SBA format at bitrates >= 24.4 kbps only." ); } -#ifndef SBA_ORDER_BITSTREAM + if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && hEncoderConfig->sba_order == 1 ) ) -#else - if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && st_ivas->sba_analysis_order == 1 ) ) -#endif { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "PCA supported at SBA FOA 256 kbps only." ); } + if ( ( error = sanitizeBandwidth( hIvasEnc ) ) != IVAS_ERR_OK ) + { + return error; + } + /*-----------------------------------------------------------------* * Finalize initialization *-----------------------------------------------------------------*/ @@ -962,7 +961,7 @@ ivas_error IVAS_ENC_GetDelay( *---------------------------------------------------------------------*/ static int16_t getInputBufferSize( - const Encoder_Struct *st_ivas /* i: IVAS encoder handle */ + const Encoder_Struct *st_ivas /* i : IVAS encoder handle */ ) { return (int16_t) ( st_ivas->hEncoderConfig->input_Fs * st_ivas->hEncoderConfig->nchan_inp / FRAMES_PER_SEC ); @@ -1032,6 +1031,11 @@ ivas_error IVAS_ENC_EncodeFrameToSerial( return IVAS_ERR_INVALID_INPUT_BUFFER_SIZE; } + if ( ( error = sanitizeBandwidth( hIvasEnc ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( hEncoderConfig->ivas_format == ISM_FORMAT ) { for ( i = 0; i < hEncoderConfig->nchan_inp; ++i ) @@ -1404,7 +1408,8 @@ static ivas_error printConfigInfo_enc( { Encoder_Struct *st_ivas; ENCODER_CONFIG_HANDLE hEncoderConfig; - char max_bwidth_string[4]; + int16_t newBandwidthApi; + ivas_error error; st_ivas = hIvasEnc->st_ivas; hEncoderConfig = st_ivas->hEncoderConfig; @@ -1545,20 +1550,9 @@ static ivas_error printConfigInfo_enc( * Print potential limitation of audio bandwidth *-----------------------------------------------------------------*/ - switch ( hEncoderConfig->max_bwidth ) + if ( ( error = bandwidthApiToInternal( hIvasEnc->newBandwidthApi, &newBandwidthApi ) ) != IVAS_ERR_OK ) { - case NB: - strncpy( max_bwidth_string, "NB\0", sizeof( max_bwidth_string ) ); - break; - case WB: - strncpy( max_bwidth_string, "WB\0", sizeof( max_bwidth_string ) ); - break; - case SWB: - strncpy( max_bwidth_string, "SWB\0", sizeof( max_bwidth_string ) ); - break; - case FB: - strncpy( max_bwidth_string, "FB\0", sizeof( max_bwidth_string ) ); - break; + return error; } if ( st_ivas->hEncoderConfig->Opt_SC_VBR && !hEncoderConfig->Opt_DTX_ON ) @@ -1566,33 +1560,30 @@ static ivas_error printConfigInfo_enc( return IVAS_ERROR( IVAS_ERR_WRONG_PARAMS, "\nError: SC-VBR 5900 bps not supported without DTX\n\n" ); } - if ( hIvasEnc->maxBandwidthUser ) - { - fprintf( stdout, "\nBandwidth limited to %s.\n", max_bwidth_string ); - } - if ( hEncoderConfig->ivas_format == MONO_FORMAT ) { - if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < ACELP_16k40 ) + if ( newBandwidthApi != hEncoderConfig->max_bwidth ) { - fprintf( stdout, "\nFB coding not supported below %.2f kbps. ", ACELP_16k40 / 1000.f ); - if ( hEncoderConfig->ivas_total_brate < ACELP_9k60 ) + if ( newBandwidthApi == FB ) { - fprintf( stdout, "Switching to WB.\n" ); + fprintf( stdout, "\nFB coding not supported below %.2f kbps. ", ACELP_16k40 / 1000.f ); + if ( hEncoderConfig->max_bwidth == WB ) + { + fprintf( stdout, "Switching to WB.\n" ); + } + else + { + fprintf( stdout, "Switching to SWB.\n" ); + } } - else + else if ( newBandwidthApi == SWB ) { - fprintf( stdout, "Switching to SWB.\n" ); + fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.\n", ACELP_9k60 / 1000.f ); } } - if ( hEncoderConfig->max_bwidth == SWB && hEncoderConfig->ivas_total_brate < ACELP_9k60 ) - { - fprintf( stdout, "\nSWB coding not supported below %.2f kbps. Switching to WB.", ACELP_9k60 / 1000.f ); - } - /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ - if ( ( hEncoderConfig->max_bwidth == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) + if ( ( newBandwidthApi == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) { fprintf( stdout, "\nError: Unsupported mode NB %d bps, NB mode supports rates 5900-24400 bps\n\n", hEncoderConfig->ivas_total_brate ); return IVAS_ERR_INVALID_BITRATE; @@ -1600,7 +1591,7 @@ static ivas_error printConfigInfo_enc( } else { - if ( hEncoderConfig->max_bwidth == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) + if ( newBandwidthApi != hEncoderConfig->max_bwidth ) { fprintf( stdout, "\nFB coding not supported below %.2f kbps. Switching to SWB.\n", MIN_BRATE_FB_STEREO / 1000.f ); } @@ -1812,29 +1803,97 @@ static ivas_error doCommonSetterChecks( /*---------------------------------------------------------------------* - * updateBandwidthFromFs() + * sanitizeBandwidth() * * *---------------------------------------------------------------------*/ -static void updateBandwidthFromFs( - const ENCODER_CONFIG_HANDLE hEncoderConfig ) +static ivas_error sanitizeBandwidth( + const IVAS_ENC_HANDLE hIvasEnc ) { + ENCODER_CONFIG_HANDLE hEncoderConfig; + int16_t max_bwidth_tmp; + + hEncoderConfig = hIvasEnc->st_ivas->hEncoderConfig; + + max_bwidth_tmp = hIvasEnc->newBandwidthApi; + /* Prevent st_ivas->max_bwidth from being higher than Fs/2 */ - if ( hEncoderConfig->input_Fs == 8000 && hEncoderConfig->max_bwidth > NB ) + if ( hEncoderConfig->input_Fs == 8000 && max_bwidth_tmp > NB ) { - hEncoderConfig->max_bwidth = NB; + max_bwidth_tmp = NB; } - else if ( hEncoderConfig->input_Fs == 16000 && hEncoderConfig->max_bwidth > WB ) + else if ( hEncoderConfig->input_Fs == 16000 && max_bwidth_tmp > WB ) { - hEncoderConfig->max_bwidth = WB; + max_bwidth_tmp = WB; } - else if ( hEncoderConfig->input_Fs == 32000 && hEncoderConfig->max_bwidth > SWB ) + else if ( hEncoderConfig->input_Fs == 32000 && max_bwidth_tmp > SWB ) { - hEncoderConfig->max_bwidth = SWB; + max_bwidth_tmp = SWB; } - return; + /* NB coding not supported in IVAS. Switching to WB. */ + if ( max_bwidth_tmp == NB && hEncoderConfig->ivas_format != UNDEFINED_FORMAT && hEncoderConfig->ivas_format != MONO_FORMAT ) + { + if ( hEncoderConfig->input_Fs >= 16000 ) + { + max_bwidth_tmp = WB; + } + else + { + return IVAS_ERR_INVALID_BITRATE; + } + } + + if ( hEncoderConfig->ivas_format == MONO_FORMAT ) + { +#if 0 // IVAS_fmToDo: temporary disabled to keep EVS bit-exactness -> to be verified + if ( max_bwidth_tmp == FB && hEncoderConfig->ivas_total_brate < ACELP_16k40 ) + { + if ( hEncoderConfig->ivas_total_brate < ACELP_9k60 ) + { + max_bwidth_tmp = WB; + } + else + { + max_bwidth_tmp = SWB; + } + } + + if ( max_bwidth_tmp == SWB && hEncoderConfig->ivas_total_brate < ACELP_9k60 ) + { + max_bwidth_tmp = WB; + } + + /* in case of 8kHz input sampling or "-max_band NB", require the total bitrate to be below 24.40 kbps */ + if ( ( max_bwidth_tmp == NB || hEncoderConfig->input_Fs == 8000 ) && hEncoderConfig->ivas_total_brate > ACELP_24k40 ) + { + if ( hEncoderConfig->input_Fs >= 16000 ) + { + max_bwidth_tmp = WB; + } + else + { + return IVAS_ERR_INVALID_BITRATE; + } + } +#endif + } + else + { + if ( max_bwidth_tmp == FB && hEncoderConfig->ivas_total_brate < MIN_BRATE_FB_STEREO ) + { + max_bwidth_tmp = SWB; + } + } + + if ( hEncoderConfig->max_bwidth != max_bwidth_tmp ) + { + hEncoderConfig->max_bwidth = max_bwidth_tmp; + hIvasEnc->switchingActive = true; + } + + return IVAS_ERR_OK; } @@ -1860,6 +1919,8 @@ static ivas_error setBandwidth( return error; } + hIvasEnc->newBandwidthApi = newBandwidth; + /* NB coding not supported in IVAS. Switching to WB. */ if ( newBandwidth == NB && hEncoderConfig->ivas_format != UNDEFINED_FORMAT && hEncoderConfig->ivas_format != MONO_FORMAT ) { @@ -1872,13 +1933,6 @@ static ivas_error setBandwidth( hIvasEnc->switchingActive = true; } - /* Limit bandwidth to half of sampling rate - only possible if - * sampling rate has already been set via configure function */ - if ( hIvasEnc->isConfigured ) - { - updateBandwidthFromFs( hIvasEnc->st_ivas->hEncoderConfig ); - } - return IVAS_ERR_OK; } @@ -2046,11 +2100,14 @@ static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig /* o : configuration structure */ ) { + hEncoderConfig->ivas_total_brate = ACELP_12k65; hEncoderConfig->max_bwidth = SWB; hEncoderConfig->input_Fs = 16000; hEncoderConfig->nchan_inp = 1; hEncoderConfig->element_mode_init = EVS_MONO; hEncoderConfig->ivas_format = UNDEFINED_FORMAT; + hEncoderConfig->Opt_SC_VBR = 0; + hEncoderConfig->last_Opt_SC_VBR = 0; hEncoderConfig->Opt_AMR_WB = 0; hEncoderConfig->Opt_DTX_ON = 0; hEncoderConfig->Opt_RF_ON = 0; diff --git a/lib_enc/tcx_utils_enc.c b/lib_enc/tcx_utils_enc.c index ca88663355..9b272f0dee 100644 --- a/lib_enc/tcx_utils_enc.c +++ b/lib_enc/tcx_utils_enc.c @@ -1509,7 +1509,11 @@ void ProcessStereoIGF( Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ +#ifdef DRAM_REDUCTION_MCT_IGF + float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ +#else float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ +#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i : inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subfr. */ diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index 45a9e121ca..785678535f 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -68,7 +68,11 @@ static ivas_error ivas_hrtf_init( hHrtf->gain_lfe = 0; hHrtf->index_frequency_max_diffuse = 0; +#ifdef FIX_CREND_CHANNELS + for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { hHrtf->inv_diffuse_weight[i] = 0; for ( j = 0; j < BINAURAL_CHANNELS; j++ ) @@ -673,7 +677,11 @@ ivas_error ivas_crend_open( hCrend->lfe_delay_line = NULL; +#ifdef FIX_CREND_CHANNELS + for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { hCrend->freq_buffer_re[i] = NULL; hCrend->freq_buffer_im[i] = NULL; @@ -824,7 +832,11 @@ ivas_error ivas_crend_close( { if ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) { +#ifdef FIX_CREND_CHANNELS + for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) +#else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif { if ( st_ivas->hCrend->freq_buffer_re[i] != NULL ) { @@ -1123,5 +1135,7 @@ ivas_error ivas_crend_process( mvr2r( pcm_tmp[i], output[i], output_frame ); } + wmops_sub_end(); + return IVAS_ERR_OK; } diff --git a/lib_rend/ivas_hrtf.c b/lib_rend/ivas_hrtf.c index 8b5f1ba217..7c4183b0e8 100644 --- a/lib_rend/ivas_hrtf.c +++ b/lib_rend/ivas_hrtf.c @@ -74,7 +74,7 @@ void BSplineModelEvalAlloc( * Init default HRTF model --------------------------------------------------------------------*/ -ivas_error DefaultBSplineModel( +void DefaultBSplineModel( TDREND_HRFILT_FiltSet_t *HrFiltSet_p, /* o : Loaded HR filter set */ const int32_t output_Fs /* i : Output sampling rate */ ) @@ -215,7 +215,7 @@ ivas_error DefaultBSplineModel( HrFiltSet_p->FiltLength = HrFiltSet_p->ModelParams.K; BSplineModelEvalAlloc( &HrFiltSet_p->ModelParams, &HrFiltSet_p->ModelEval ); - return IVAS_ERR_OK; + return; } diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index 153c6d7f2d..b4c784edfa 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -45,8 +45,17 @@ /*---------------------------------------------------------------------* * Local function prototypes *---------------------------------------------------------------------*/ + +#ifdef FIX_I106_TDREND_5MS +static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t subframe_length, const int32_t output_Fs, const int16_t subframe_idx ); +#else static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t output_frame, const int32_t output_Fs ); +#endif static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); +#ifdef FIX_I106_TDREND_5MS +static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, const Quaternion *headPosition ); +static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t numSources, const IVAS_FORMAT in_format, const ISM_METADATA_HANDLE *hIsmMetaData, float output[][L_FRAME48k] ); +#endif /*---------------------------------------------------------------------* * ivas_td_binaural_open() @@ -54,7 +63,6 @@ static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRe * Open and initialize TD Object binaural renderer *---------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error ivas_td_binaural_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ) @@ -219,13 +227,13 @@ void ivas_td_binaural_close( * and renders the current frame. *---------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ -ivas_error ObjRenderIVASFrame( +void ObjRenderIVASFrame( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ float output[][L_FRAME48k], /* i/o: SCE channels / Binaural synthesis */ const int16_t output_frame /* i : output frame length */ ) { +#ifndef FIX_I106_TDREND_5MS TDREND_DirAtten_t *DirAtten_p; int16_t nS; float Pos[3]; @@ -234,9 +242,15 @@ ivas_error ObjRenderIVASFrame( float UpVec[3]; float Rmat[3][3]; int16_t c_indx; +#else + int16_t subframe_length; +#endif int16_t subframe_idx; float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; +#ifdef FIX_I106_TDREND_5MS + subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; +#else DirAtten_p = st_ivas->hBinRendererTd->DirAtten_p; /* Update the listener's location/orientation */ @@ -314,8 +328,16 @@ ivas_error ObjRenderIVASFrame( TDREND_MIX_SRC_SetPlayState( st_ivas->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); } } +#endif if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { + +#ifdef FIX_I106_TDREND_5MS + if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on && ( st_ivas->ini_frame == 0 ) ) + { + ivas_reverb_open( &st_ivas->hCrend->hReverb, st_ivas->transport_config, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); + } +#else if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) { if ( st_ivas->ini_frame == 0 ) @@ -327,10 +349,33 @@ ivas_error ObjRenderIVASFrame( ivas_reverb_process( st_ivas->hCrend->hReverb, st_ivas->transport_config, 0, output, reverb_signal, subframe_idx ); } } +#endif } +#ifdef FIX_I106_TDREND_5MS + /* Update object position(s) */ + TDREND_Update_object_positions( st_ivas->hBinRendererTd, st_ivas->nchan_transport, st_ivas->ivas_format, st_ivas->hIsmMetaData, output ); + + for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) + { + /* Update the listener's location/orientation */ + TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, + st_ivas->hDecoderConfig->Opt_Headrotation, + ( st_ivas->hHeadTrackData != NULL ) ? &st_ivas->hHeadTrackData->Quaternions[subframe_idx] : NULL ); + + if ( ( st_ivas->hRenderConfig != NULL ) && ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) + { + ivas_reverb_process( st_ivas->hCrend->hReverb, st_ivas->transport_config, 0, output, reverb_signal, subframe_idx ); + } + + /* Render subframe */ + TDREND_GetMix( st_ivas->hBinRendererTd, output, subframe_length, st_ivas->hDecoderConfig->output_Fs, subframe_idx ); + } +#else /* Call the renderer */ TDREND_GetMix( st_ivas->hBinRendererTd, output, output_frame, st_ivas->hDecoderConfig->output_Fs ); +#endif + if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) @@ -340,36 +385,58 @@ ivas_error ObjRenderIVASFrame( v_add( reverb_signal[1], output[1], output[1], output_frame ); } } - return IVAS_ERR_OK; + + return; } +#ifdef FIX_I106_TDREND_5MS +/*---------------------------------------------------------------------* + * TDREND_GetMix() + * + * Render one 5 ms subframe from the mixer + *---------------------------------------------------------------------*/ +#else /*---------------------------------------------------------------------* * TDREND_GetMix() * * Render one output frame from the mixer *---------------------------------------------------------------------*/ - -/*! r: TD Renderer result code. */ +#endif static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ float output[][L_FRAME48k], /* i/o: ISm object synth / rendered output in 0,1 */ - const int16_t output_frame, /* i/o: Output frame length */ - const int32_t output_Fs /* i : Output sampling rate */ +#ifdef FIX_I106_TDREND_5MS + const int16_t subframe_length, /* i/o: subframe length */ + const int32_t output_Fs, /* i : Output sampling rate */ + const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ +#else + const int16_t output_frame, /* i/o: Output frame length */ + const int32_t output_Fs /* i : Output sampling rate */ +#endif ) { int16_t i; TDREND_SRC_t *Src_p; TDREND_SRC_SPATIAL_t *SrcSpatial_p; TDREND_SRC_REND_t *SrcRend_p; - ivas_error result; + ivas_error error; +#ifdef FIX_I106_TDREND_5MS + float output_buf[2][L_SPATIAL_SUBFR_48k]; /* Temp buffer for left/right rendered signal */ +#else float output_buf[2][L_FRAME48k]; /* Temp buffer for left/right rendered signal */ +#endif + error = IVAS_ERR_OK; - result = IVAS_ERR_OK; - +#ifdef FIX_I106_TDREND_5MS + /* Clear the output buffer to accumulate rendered sources */ + set_f( output_buf[0], 0.0f, subframe_length ); + set_f( output_buf[1], 0.0f, subframe_length ); +#else /* Zero out the output buffer since objects are accumulated. */ set_f( output_buf[0], 0.0f, output_frame ); set_f( output_buf[1], 0.0f, output_frame ); +#endif /* Create the mix */ /* Loop through the source list and render each source */ @@ -388,23 +455,42 @@ static ivas_error TDREND_GetMix( /* Render source if needed */ if ( ( SrcRend_p->InputAvailable == TRUE ) && ( SrcRend_p->PlayStatus == TDREND_PLAYSTATUS_PLAYING ) ) { +#ifdef FIX_I106_TDREND_5MS +#ifdef TDREND_HRTF_TABLE_METHODS + error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, subframe_length, output_Fs ); +#else + error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, subframe_length, output_Fs ); +#endif +#else #ifdef TDREND_HRTF_TABLE_METHODS - result = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, output_frame, output_Fs ); + error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, output_frame, output_Fs ); #else - result = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, output_frame, output_Fs ); + error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, output_frame, output_Fs ); +#endif #endif } +#ifndef FIX_I106_TDREND_5MS SrcRend_p->InputAvailable = FALSE; +#endif } /* Populate output variable */ +#ifdef FIX_I106_TDREND_5MS + mvr2r( output_buf[0], output[0] + subframe_idx * subframe_length, subframe_length ); /* Left */ + mvr2r( output_buf[1], output[1] + subframe_idx * subframe_length, subframe_length ); /* Right */ +#else mvr2r( output_buf[0], output[0], output_frame ); /* Left */ mvr2r( output_buf[1], output[1], output_frame ); /* Right */ +#endif - /* Clear the mixer update flags */ +#ifdef FIX_I106_TDREND_5MS + /* Clear the PoseUpdated and Source position update flags */ +#else + /* Clear the mixer update flags */ +#endif TDREND_Clear_Update_flags( hBinRendererTd ); - return result; + return error; } @@ -421,9 +507,129 @@ static void TDREND_Clear_Update_flags( int16_t i; hBinRendererTd->Listener_p->PoseUpdated = FALSE; + for ( i = 0; i < hBinRendererTd->NumOfSrcs; i++ ) { hBinRendererTd->Sources[i]->SrcSpatial_p->Updated = FALSE; } + + return; +} + +#ifdef FIX_I106_TDREND_5MS +/*---------------------------------------------------------------------* + * TDREND_Update_object_positions() + * + * Update object position(s) + *---------------------------------------------------------------------*/ + +static void TDREND_Update_object_positions( + BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o : TD Renderer handle */ + const int16_t numSources, /* i : Number of sources to render */ + const IVAS_FORMAT in_format, /* i : Format of input sources */ + const ISM_METADATA_HANDLE *hIsmMetaData, /* i : Input metadata for ISM objects */ + float output[][L_FRAME48k] /* i/o: SCE/MC channels */ +) +{ + TDREND_DirAtten_t *DirAtten_p; + int16_t nS; + float Pos[3]; + float Dir[3]; + int16_t c_indx; + + DirAtten_p = hBinRendererTd->DirAtten_p; + + /* For each source, write the frame data to the source object*/ + c_indx = 0; + for ( nS = 0; nS < numSources; nS++ ) + { + if ( !( in_format == MC_FORMAT && nS == LFE_CHANNEL ) ) /* Skip LFE for MC */ + { + hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; + hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; + c_indx++; + } + + if ( in_format == ISM_FORMAT ) + { + + /* Update the source positions */ + /* Source position and direction */ + Pos[0] = cosf( hIsmMetaData[nS]->elevation * PI_OVER_180 ) * cosf( hIsmMetaData[nS]->azimuth * PI_OVER_180 ); + Pos[1] = cosf( hIsmMetaData[nS]->elevation * PI_OVER_180 ) * sinf( hIsmMetaData[nS]->azimuth * PI_OVER_180 ); + Pos[2] = sinf( hIsmMetaData[nS]->elevation * PI_OVER_180 ); + Dir[0] = 1.0f; + Dir[1] = 0.0f; + Dir[2] = 0.0f; + + /* Source directivity info */ + DirAtten_p->ConeInnerAngle = 360.0f; + DirAtten_p->ConeOuterAngle = 360.0f; + DirAtten_p->ConeOuterGain = 1.0f; + + TDREND_MIX_SRC_SetPos( hBinRendererTd, nS, Pos ); + TDREND_MIX_SRC_SetDirAtten( hBinRendererTd, nS, DirAtten_p ); + TDREND_MIX_SRC_SetPlayState( hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); + + TDREND_MIX_SRC_SetDir( hBinRendererTd, nS, Dir ); + } + } + + return; +} + +/*---------------------------------------------------------------------* + * TDREND_Update_listener_orientation() + * + * Update listener orientation (s) + *---------------------------------------------------------------------*/ + +static void TDREND_Update_listener_orientation( + BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ + const int16_t headRotEnabled, /* i : Headrotation flag */ + const Quaternion *headPosition /* i : Head Position */ +) +{ + float Pos[3]; + float FrontVec[3]; + float UpVec[3]; + float Rmat[3][3]; + + /* Update the listener's location/orientation */ + /* Listener at the origin */ + Pos[0] = 0.0f; + Pos[1] = 0.0f; + Pos[2] = 0.0f; + + if ( headRotEnabled ) + { + /* Obtain head rotation matrix */ + QuatToRotMat( *headPosition, Rmat ); + /* Apply rotation matrix to looking vector [1;0;0] */ + FrontVec[0] = Rmat[0][0]; + FrontVec[1] = Rmat[0][1]; + FrontVec[2] = Rmat[0][2]; + /* Apply rotation matrix to up vector [0;0;1] */ + UpVec[0] = Rmat[2][0]; + UpVec[1] = Rmat[2][1]; + UpVec[2] = Rmat[2][2]; + } + else + { + /* Oriented with looking vector along the x axis */ + FrontVec[0] = 1.0f; + FrontVec[1] = 0.0f; + FrontVec[2] = 0.0f; + /* Oriented with up vector along the z axis */ + UpVec[0] = 0.0f; + UpVec[1] = 0.0f; + UpVec[2] = 1.0f; + } + + /* Set the listener position and orientation:*/ + TDREND_MIX_LIST_SetPos( hBinRendererTd, Pos ); + TDREND_MIX_LIST_SetOrient( hBinRendererTd, FrontVec, UpVec ); + return; } +#endif diff --git a/lib_rend/ivas_objectRenderer_hrFilt.c b/lib_rend/ivas_objectRenderer_hrFilt.c index 4ece382b4f..eb69350d48 100644 --- a/lib_rend/ivas_objectRenderer_hrFilt.c +++ b/lib_rend/ivas_objectRenderer_hrFilt.c @@ -343,24 +343,42 @@ void TDREND_HRFILT_SetFiltSet( --------------------------------------------------------------------*/ ivas_error TDREND_REND_RenderSourceHRFilt( - const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ +#ifdef FIX_I106_TDREND_5MS + TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ +#else + const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ +#endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif +#ifdef FIX_I106_TDREND_5MS + float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ + const int16_t subframe_length, /* i : Subframe length in use */ +#else float output_buf[][L_FRAME48k], /* o : Output buffer */ const int16_t output_frame, /* i : Output frame length in use */ - const int32_t output_Fs /* i : Output sample rate */ +#endif + + const int32_t output_Fs /* i : Output sample rate */ ) { - ivas_error SFX_Result; TDREND_SRC_REND_t *SrcRend_p; +#ifdef FIX_I106_TDREND_5MS + const float *InFrame_nIC_p; +#else int16_t nS; float *InFrame_nIC_p; +#endif int16_t NoOfUsedInputSamples, NoOfDeliveredOutputSamples; +#ifdef FIX_I106_TDREND_5MS + float LeftOutputFrame[L_SPATIAL_SUBFR_48k]; + float RightOutputFrame[L_SPATIAL_SUBFR_48k]; +#else float LeftOutputFrame[L_FRAME48k]; float RightOutputFrame[L_FRAME48k]; float *LeftOutputFrame_p, *RightOutputFrame_p; float *LeftAccOutputFrame_p, *RightAccOutputFrame_p; +#endif /* Input channel rendering loop */ InFrame_nIC_p = Src_p->InputFrame_p; @@ -370,9 +388,11 @@ ivas_error TDREND_REND_RenderSourceHRFilt( /* SrcGain = Mix_p->Gain * ( *SrcRend_p->SrcGain_p ); */ /* SrcGain *= ( *SrcRend_p->DirGain_p ) * ( *SrcRend_p->DistGain_p ); */ - SFX_Result = TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, output_frame, - LeftOutputFrame, RightOutputFrame, - &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); +#ifdef FIX_I106_TDREND_5MS + TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, subframe_length, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); +#else + TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, output_frame, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); +#endif #ifdef TDREND_HRTF_TABLE_METHODS if ( hBinRendererTd->HrFiltSet_p->FilterMethod != TDREND_HRFILT_Method_BSplineModel ) @@ -382,17 +402,27 @@ ivas_error TDREND_REND_RenderSourceHRFilt( #endif /* Copy to accumulative output frame */ +#ifdef FIX_I106_TDREND_5MS + v_add( LeftOutputFrame, output_buf[0], output_buf[0], subframe_length ); + v_add( RightOutputFrame, output_buf[1], output_buf[1], subframe_length ); + + Src_p->InputFrame_p += subframe_length; /* Increment input pointer -- todo: should we remove this and input the current subframe instead? */ + +#else LeftOutputFrame_p = LeftOutputFrame; RightOutputFrame_p = RightOutputFrame; LeftAccOutputFrame_p = output_buf[0]; RightAccOutputFrame_p = output_buf[1]; + for ( nS = 0; nS < output_frame; nS++ ) { *LeftAccOutputFrame_p++ += *LeftOutputFrame_p++; *RightAccOutputFrame_p++ += *RightOutputFrame_p++; } +#endif + - return SFX_Result; + return IVAS_ERR_OK; } diff --git a/lib_rend/ivas_objectRenderer_mix.c b/lib_rend/ivas_objectRenderer_mix.c index 61553ca4fc..df190b91b1 100644 --- a/lib_rend/ivas_objectRenderer_mix.c +++ b/lib_rend/ivas_objectRenderer_mix.c @@ -46,8 +46,7 @@ * Sets the listener's position in the specified mixer unit. --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ -ivas_error TDREND_MIX_LIST_SetPos( +void TDREND_MIX_LIST_SetPos( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const float *Pos_p /* i : Listener's position */ ) @@ -65,7 +64,7 @@ ivas_error TDREND_MIX_LIST_SetPos( Listener_p->PoseUpdated = TRUE; } - return IVAS_ERR_OK; + return; } @@ -75,7 +74,6 @@ ivas_error TDREND_MIX_LIST_SetPos( * Sets the listener's orientation vectors in the specified mixer unit. --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_LIST_SetOrient( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const float *FrontVec_p, /* i : Listener's orientation front vector */ @@ -193,7 +191,6 @@ void TDREND_MIX_Dealloc( * Initializes the mixer and sets HRTF --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_Init( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ TDREND_HRFILT_FiltSet_t **hHrtfTD, /* i/o: HRTF data (initialized in case of NULL) */ @@ -256,7 +253,6 @@ ivas_error TDREND_MIX_Init( * Set the distance attenuation model of the mixer --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SetDistAttenModel( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const TDREND_DistAttenModel_t DistAttenModel /* i : Distance attenuation model */ @@ -291,7 +287,6 @@ ivas_error TDREND_MIX_SetDistAttenModel( * Adds the specified input source unit to the specified mixer unit. --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_AddSrc( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ int16_t *SrcInd, /* o : Source index */ diff --git a/lib_rend/ivas_objectRenderer_sfx.c b/lib_rend/ivas_objectRenderer_sfx.c index 45ac83a4ae..08239e8565 100644 --- a/lib_rend/ivas_objectRenderer_sfx.c +++ b/lib_rend/ivas_objectRenderer_sfx.c @@ -70,7 +70,7 @@ static void TDREND_FirFilterRev( float *OutputFrame_p, float *FirFilterRev_p, co #ifdef TDREND_HRTF_TABLE_METHODS static void TDREND_FirFilterRevInterp( float *OutputFrame_p, float *FirFilterRev_p, const int16_t FirFilterLength, float *InputFrame_p, const int16_t NumOfSamples, float *FilterStored ); #endif -static ivas_error TDREND_SFX_SpatBin_Clear( SFX_SpatBin_t *SfxSpatBin_p, const int32_t output_Fs ); +static void TDREND_SFX_SpatBin_Clear( SFX_SpatBin_t *SfxSpatBin_p, const int32_t output_Fs ); /*-------------------------------------------------------------------* @@ -352,8 +352,7 @@ static void TDREND_SFX_SpatBin_Resampling( * --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ -ivas_error TDREND_SFX_SpatBin_SetParams( +void TDREND_SFX_SpatBin_SetParams( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct to be updated */ const SFX_SpatBin_Params_t *NewParam_p, /* i : New parameters struct */ const int32_t output_Fs /* i : Output sample rate */ @@ -397,7 +396,7 @@ ivas_error TDREND_SFX_SpatBin_SetParams( SfxSpatBin_p->OpMode = SFX_OFF; } - return IVAS_ERR_OK; + return; } @@ -554,6 +553,7 @@ static void TDREND_SFX_SpatBin_SetParamsInitializeOff( SfxSpatBin_p->NoOfLeftOldBufferSamples = SFX_SPAT_BIN_SINC_M - 1 + TDREND_MaxITD[i]; SfxSpatBin_p->NoOfRightOldBufferSamples = SFX_SPAT_BIN_SINC_M - 1 + TDREND_MaxITD[i]; SfxSpatBin_p->Left_Tf = 0.0; + return; } @@ -925,14 +925,16 @@ static void TDREND_SFX_SpatBin_UpdateParams( * TDREND_SFX_SpatBin_Execute_Main() * * The main rendering function that is called from the Audio Mixer. - * --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ -ivas_error TDREND_SFX_SpatBin_Execute_Main( - SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ - const float *InBuffer_p, /* i : Input buffer */ - const int16_t output_frame, /* i : frame length */ +void TDREND_SFX_SpatBin_Execute_Main( + SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ + const float *InBuffer_p, /* i : Input buffer */ +#ifdef FIX_I106_TDREND_5MS + const int16_t subframe_length, /* i : subframe length */ +#else + const int16_t output_frame, /* i : frame length */ +#endif float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ @@ -950,7 +952,11 @@ ivas_error TDREND_SFX_SpatBin_Execute_Main( /* Make sure the blocks are not longer than 6 msec. */ NoOfBlocks = 1; +#ifdef FIX_I106_TDREND_5MS + TempNoOfRequestedOutputSamples = subframe_length; +#else TempNoOfRequestedOutputSamples = output_frame; +#endif while ( TempNoOfRequestedOutputSamples > SfxSpatBin_p->MaxBlockLength ) { NoOfBlocks = NoOfBlocks << 1; @@ -964,7 +970,11 @@ ivas_error TDREND_SFX_SpatBin_Execute_Main( RightOutBufferPointer_p = RightOutBuffer_p; *NoOfUsedInputSamples_p = 0; *NoOfDeliveredOutputSamples_p = 0; +#ifdef FIX_I106_TDREND_5MS + TempNoOfInputSamples = subframe_length; +#else TempNoOfInputSamples = output_frame; +#endif for ( i = 0; i < NoOfBlocks; i++ ) { @@ -993,13 +1003,17 @@ ivas_error TDREND_SFX_SpatBin_Execute_Main( if ( i == NoOfBlocks - 2 ) { /* The last block should produce the remaining number of samples */ +#ifdef FIX_I106_TDREND_5MS + TempNoOfRequestedOutputSamples = subframe_length - *NoOfDeliveredOutputSamples_p; +#else TempNoOfRequestedOutputSamples = output_frame - *NoOfDeliveredOutputSamples_p; +#endif } *NoOfUsedInputSamples_p = *NoOfUsedInputSamples_p + TempNoOfUsedInputSamples; TempNoOfInputSamples = TempNoOfInputSamples - TempNoOfUsedInputSamples; } - return IVAS_ERR_OK; + return; } @@ -1182,7 +1196,7 @@ static void TDREND_SFX_SpatBin_Execute( } /* Update number of old samples */ - SfxSpatBin_p->NoOfRightOldBufferSamples = *NoOfUsedInputSamples_p - (int16_t) Ind; + SfxSpatBin_p->NoOfRightOldBufferSamples = *NoOfUsedInputSamples_p - Ind; return; } @@ -1195,7 +1209,6 @@ static void TDREND_SFX_SpatBin_Execute( * --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_SFX_SpatBin_Initialize( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ const int32_t output_Fs /* i : Output sampling rate */ @@ -1278,19 +1291,21 @@ ivas_error TDREND_SFX_SpatBin_Initialize( * --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ -static ivas_error TDREND_SFX_SpatBin_Clear( +static void TDREND_SFX_SpatBin_Clear( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ const int32_t output_Fs /* i : Output sample rate */ ) { int16_t i; int16_t MaxITD = TDREND_MaxITD[2]; + SfxSpatBin_p->OpMode = SFX_OFF; SfxSpatBin_p->TurningOffEffect = FALSE; SfxSpatBin_p->TurningOnEffect = FALSE; + /* Init during next SetParams-call */ SfxSpatBin_p->InitializeParams = TRUE; + /* Fill old buffers with zeros */ switch ( output_Fs ) { @@ -1316,7 +1331,7 @@ static ivas_error TDREND_SFX_SpatBin_Clear( SfxSpatBin_p->ResampledBufferRight[i] = 0.0f; } - return IVAS_ERR_OK; + return; } diff --git a/lib_rend/ivas_objectRenderer_sources.c b/lib_rend/ivas_objectRenderer_sources.c index b24708a195..a9e88602ca 100644 --- a/lib_rend/ivas_objectRenderer_sources.c +++ b/lib_rend/ivas_objectRenderer_sources.c @@ -55,14 +55,13 @@ static void TDREND_SRC_REND_Init( TDREND_SRC_REND_t *SrcRend_p, const int32_t ou /*-------------------------------------------------------------------* - * TDREND_MIX_SetSrcPos() + * TDREND_MIX_SRC_SetPos() * * Set source position --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetPos( - BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ + BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ const float *Vec_p /* i : Position vector */ ) @@ -94,7 +93,6 @@ ivas_error TDREND_MIX_SRC_SetPos( * Set source direciton --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetDir( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ @@ -129,7 +127,6 @@ ivas_error TDREND_MIX_SRC_SetDir( * Set directional attenuation for the mixer. --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetDirAtten( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ @@ -146,6 +143,7 @@ ivas_error TDREND_MIX_SRC_SetDirAtten( SrcSpatial_p = hBinRendererTd->Sources[SrcInd]->SrcSpatial_p; TDREND_SRC_SPATIAL_SetDirAtten( SrcSpatial_p, DirAtten_p ); } + return IVAS_ERR_OK; } @@ -156,7 +154,6 @@ ivas_error TDREND_MIX_SRC_SetDirAtten( * Set play state for the source. --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_MIX_SRC_SetPlayState( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ const int16_t SrcInd, /* i : Source index */ @@ -181,7 +178,6 @@ ivas_error TDREND_MIX_SRC_SetPlayState( * Renderer allocation --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ static ivas_error TDREND_SRC_REND_Alloc( TDREND_SRC_REND_t **SrcRend_pp /* i/o: Source object */ ) @@ -441,7 +437,6 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams( * Allocatie spatial properties of a source. --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ static ivas_error TDREND_SRC_SPATIAL_Alloc( TDREND_SRC_SPATIAL_t **SrcSpatial_pp /* i/o: Source spatial parameters */ ) @@ -651,7 +646,6 @@ static float TDREND_SRC_SPATIAL_GetDistGain( * Allocate a source. --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ ivas_error TDREND_SRC_Alloc( TDREND_SRC_t **Src_pp /* i/o: Source */ ) diff --git a/lib_rend/ivas_output_init.c b/lib_rend/ivas_output_init.c index fcaa6f9442..b7af932861 100644 --- a/lib_rend/ivas_output_init.c +++ b/lib_rend/ivas_output_init.c @@ -263,9 +263,7 @@ void ivas_renderer_select( AUDIO_CONFIG output_config; AUDIO_CONFIG transport_config; -#ifdef FIX_I87 int16_t nchan_internal; -#endif renderer_type = &( st_ivas->renderer_type ); internal_config = &( st_ivas->intern_config ); @@ -360,12 +358,7 @@ void ivas_renderer_select( if ( st_ivas->hDecoderConfig->Opt_Headrotation ) { -#ifdef FIX_I87 -#ifdef SBA_ORDER_BITSTREAM nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order ); -#else - nchan_internal = ivas_sba_get_nchan_metadata( st_ivas->sba_order ); -#endif if ( nchan_internal == 2 ) { st_ivas->hHeadTrackData->shd_rot_max_order = 1; @@ -382,24 +375,6 @@ void ivas_renderer_select( { st_ivas->hHeadTrackData->shd_rot_max_order = 3; } -#else - if ( st_ivas->nchan_transport == 2 ) - { - st_ivas->hHeadTrackData->shd_rot_max_order = 1; - } - else if ( st_ivas->nchan_transport == 4 || st_ivas->nchan_transport == 3 ) - { - st_ivas->hHeadTrackData->shd_rot_max_order = 0; - } - else if ( st_ivas->nchan_transport == 6 || st_ivas->nchan_transport == 5 ) - { - st_ivas->hHeadTrackData->shd_rot_max_order = 2; - } - else if ( st_ivas->nchan_transport == 8 || st_ivas->nchan_transport == 7 ) - { - st_ivas->hHeadTrackData->shd_rot_max_order = 3; - } -#endif } } else if ( st_ivas->ivas_format == MC_FORMAT ) @@ -536,7 +511,14 @@ void ivas_renderer_select( if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR && ( output_config != AUDIO_CONFIG_5_1 && output_config != AUDIO_CONFIG_5_1_2 && output_config != AUDIO_CONFIG_5_1_4 && output_config != AUDIO_CONFIG_7_1 && output_config != AUDIO_CONFIG_7_1_4 && output_config != AUDIO_CONFIG_LS_CUSTOM ) ) { - *internal_config = AUDIO_CONFIG_HOA3; + if ( output_config == AUDIO_CONFIG_HOA2 || output_config == AUDIO_CONFIG_FOA ) + { + *internal_config = output_config; + } + else + { + *internal_config = AUDIO_CONFIG_HOA3; + } st_ivas->renderer_type = RENDERER_SBA_LINEAR_DEC; } else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->nchan_transport == 1 ) || @@ -544,7 +526,11 @@ void ivas_renderer_select( { *renderer_type = RENDERER_DISABLE; } +#ifdef ALIGN_SID_SIZE + else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) ) +#else else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) ) +#endif { *renderer_type = RENDERER_DISABLE; } diff --git a/lib_rend/ivas_reverb.c b/lib_rend/ivas_reverb.c index 7073169bcc..9bee3214d7 100644 --- a/lib_rend/ivas_reverb.c +++ b/lib_rend/ivas_reverb.c @@ -795,10 +795,17 @@ static void set_reverb_acoustic_data( { int16_t nr_out_ch, hrtf_idx, offset, iter_idx, bin_idx; float ln_1e6_inverted, delay_diff, exp_argument; +#ifdef FIX_CREND_CHANNELS + float *pHrtf_set_l_re[MAX_TRANSPORT_CHANNELS]; + float *pHrtf_set_l_im[MAX_TRANSPORT_CHANNELS]; + float *pHrtf_set_r_re[MAX_TRANSPORT_CHANNELS]; + float *pHrtf_set_r_im[MAX_TRANSPORT_CHANNELS]; +#else float *pHrtf_set_l_re[IVAS_MAX_NUM_CH]; float *pHrtf_set_l_im[IVAS_MAX_NUM_CH]; float *pHrtf_set_r_re[IVAS_MAX_NUM_CH]; float *pHrtf_set_r_im[IVAS_MAX_NUM_CH]; +#endif /* use crend hrtf filters */ if ( hHrtf != NULL ) diff --git a/lib_rend/ivas_sba_rendering.c b/lib_rend/ivas_sba_rendering.c index 03db2203c9..f8790c16e3 100644 --- a/lib_rend/ivas_sba_rendering.c +++ b/lib_rend/ivas_sba_rendering.c @@ -47,9 +47,11 @@ *-----------------------------------------------------------------------*/ #ifndef EXT_RENDERER -static void ivas_sba_mtx_mult( float output_f[][L_FRAME48k], const int16_t output_frame, const int16_t nchan_in, IVAS_OUTPUT_SETUP output_setup, const float *mtx_hoa_decoder ); +static void ivas_sba_mtx_mult( float output_f[][L_FRAME48k], const int16_t output_frame, const int16_t nchan_in, const IVAS_OUTPUT_SETUP output_setup, const float *mtx_hoa_decoder ); #endif +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT static void ivas_sba_dmx_dec( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); +#endif #ifdef DEBUG_MODE_DIRAC static void debug_mode_dirac( float output[MAX_OUTPUT_CHANNELS][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); @@ -247,6 +249,25 @@ int16_t ivas_sba_remapTCs( } } +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + if ( st_ivas->nchan_transport >= 3 ) + { + int16_t i = 0; + float temp; + + /*convert WYXZ downmix to WYZX*/ + for ( i = 0; i < output_frame; i++ ) + { + temp = sba_data[2][i]; + sba_data[2][i] = sba_data[3][i]; + sba_data[3][i] = temp; + if ( st_ivas->nchan_transport == 3 ) + { + sba_data[2][i] = 0; + } + } + } +#else if ( st_ivas->sba_mode == SBA_MODE_SPAR ) { int16_t i = 0; @@ -269,21 +290,24 @@ int16_t ivas_sba_remapTCs( } else { +#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT + /* do nothing; simply use omni */ +#else ivas_sba_dmx_dec( sba_data, nchan_remapped, output_frame ); +#endif } +#endif if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { -#ifndef SBA_ORDER_BITSTREAM - ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_order, st_ivas->sba_planar, output_frame ); -#else ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->sba_planar, output_frame ); -#endif } + return ( nchan_remapped ); } +#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT /*-------------------------------------------------------------------* * ivas_sba_dmx_dec() * @@ -377,7 +401,7 @@ static void ivas_sba_dmx_dec( assert( 0 && "SBA: number of transport channels not supported." ); } } - +#endif /*-------------------------------------------------------------------------* * ivas_ism2sba() @@ -541,11 +565,11 @@ void ivas_sba_mtx_mult( #else static void ivas_sba_mtx_mult( #endif - float output_f[][L_FRAME48k], /* i/o: synthesized core-coder transport channels/DirAC output */ - const int16_t output_frame, /* i : output frame length per channel */ - const int16_t nchan_in, /* i : Number of ambisonic channels */ - IVAS_OUTPUT_SETUP output_setup, /* i : Output configuration */ - const float *mtx_hoa_decoder /* o : HOA decoding mtx */ + float output_f[][L_FRAME48k], /* i/o: synthesized core-coder transport channels/DirAC output */ + const int16_t output_frame, /* i : output frame length per channel */ + const int16_t nchan_in, /* i : Number of ambisonic channels */ + const IVAS_OUTPUT_SETUP output_setup, /* i : Output configuration */ + const float *mtx_hoa_decoder /* i : HOA decoding mtx */ ) { int16_t i, k, ch_idx; diff --git a/lib_util/hrtf_file_reader.c b/lib_util/hrtf_file_reader.c index 1dc481c84e..92b0058436 100644 --- a/lib_util/hrtf_file_reader.c +++ b/lib_util/hrtf_file_reader.c @@ -165,6 +165,7 @@ static void LoadBSplineBinaryITD( modelITD->W = (const float *) modelITD->W_dyn; modelITD->azimBsShape = (const float *) modelITD->azimBsShape_dyn; modelITD->elevBsShape = (const float *) modelITD->elevBsShape_dyn; + return; } @@ -310,7 +311,7 @@ static ivas_error LoadBSplineBinary( * * Load HRTF model or table from file --------------------------------------------------------------------*/ -/*! r: TD Renderer result code. */ + static ivas_error TDREND_MIX_LoadHRTF( FILE *f_hrtf, /* i/o: File pointer to HRTF file */ IVAS_DEC_HRTF_HANDLE HrFiltSet_p /* o : Loaded HR filter set */ -- GitLab From 2bbf2bfa2185c443af86e1681639e8c9005582ee Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 4 Oct 2022 19:35:43 +0200 Subject: [PATCH 171/479] External Renderer APIv2 update --- .gitignore | 6 + apps/renderer.c | 1246 ++-- lib_com/common_api_types.h | 6 +- lib_com/ivas_cnst.h | 14 +- lib_com/ivas_error.h | 45 +- lib_com/ivas_prot.h | 18 +- lib_com/options.h | 3 +- lib_dec/ivas_sba_dec.c | 7 +- lib_dec/ivas_stat_dec.h | 9 + lib_enc/ivas_stereo_mdct_core_enc.c | 0 lib_enc/lib_enc.c | 4 +- lib_rend/ivas_crend.c | 853 ++- lib_rend/ivas_lib_rend_internal.h | 87 + lib_rend/ivas_ls_custom_dec.c | 4 +- lib_rend/ivas_objectRenderer.c | 303 +- lib_rend/ivas_rom_rend.c | 81 +- lib_rend/ivas_rom_rend.h | 2 +- lib_rend/ivas_rotation.c | 23 +- lib_rend/ivas_sba_rendering.c | 8 +- lib_rend/ivas_stat_rend.h | 8 + lib_rend/lib_rend.c | 5603 ++++++++++------- lib_rend/lib_rend.h | 300 +- lib_util/cmdln_parser.h | 3 +- lib_util/ls_custom_file_reader.c | 2 +- scripts/pyaudio3dtools/audiofile.py | 27 +- scripts/pyaudio3dtools/binauralrenderer.py | 121 +- scripts/pyaudio3dtools/spatialaudioconvert.py | 4 + scripts/pyaudio3dtools/spatialaudioformat.py | 2 +- scripts/pyaudio3dtools/spatialmetadata.py | 1 + scripts/pyprocessing/prepost_processing.py | 3 +- scripts/tests/compare_audio.py | 28 + scripts/tests/constants.py | 18 +- scripts/tests/data/mixed_scene_simple.txt | 12 + scripts/tests/test_renderer.py | 285 +- 34 files changed, 5816 insertions(+), 3320 deletions(-) mode change 100644 => 100755 lib_com/options.h mode change 100644 => 100755 lib_enc/ivas_stereo_mdct_core_enc.c create mode 100644 lib_rend/ivas_lib_rend_internal.h mode change 100644 => 100755 lib_rend/ivas_sba_rendering.c create mode 100644 scripts/tests/data/mixed_scene_simple.txt diff --git a/.gitignore b/.gitignore index 6b784623d5..e719f5b008 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ scripts/td_object_renderer/object_renderer_standalone/renderer_standalone.exe # General/scripts .DS_Store .vscode +.cache *.log *.bak scripts/c-code_instrument/ @@ -45,8 +46,13 @@ scripts/test/ scripts/self_test_summary.txt scripts/tests/cut/ scripts/tests/ref/ +tests/dut +tests/ref # Python files that pop up when running scripts __pycache__/ *.py[cod] *$py.class + +# clangd +.cache/ diff --git a/apps/renderer.c b/apps/renderer.c index c8d1ee7bd6..3369dfcee2 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -33,21 +33,20 @@ #include "options.h" #include "audio_file_reader.h" #include "audio_file_writer.h" -#include "cmdln_parser.h" #include "cmdl_tools.h" +#include "cmdln_parser.h" #include "common_api_types.h" #include "head_rotation_file_reader.h" #include "hrtf_file_reader.h" #include "ism_file_reader.h" #include "lib_rend.h" #include "ls_custom_file_reader.h" -#include "render_config_reader.h" #include "masa_file_reader.h" -#include "ivas_stat_dec.h" #include "prot.h" +#include "render_config_reader.h" #ifdef WMOPS -#include "wmops.h" #include "PROM_Size_lib_rend.h" +#include "wmops.h" #endif #ifdef RAM_COUNTING_TOOL #include "mem_count.h" @@ -127,7 +126,7 @@ static void print_mem_renderer(size_t SRAM_size) /* clang-format on */ #endif -typedef struct IsmPositionProvider +typedef struct { uint32_t frameCounter; uint16_t numObjects; @@ -139,72 +138,76 @@ typedef struct IsmPositionProvider uint16_t durationCounters[RENDERER_MAX_ISM_INPUTS]; /* Number of frames spent at current position */ } IsmPositionProvider; -typedef enum InputFormat +typedef struct +{ + IVAS_REND_AudioConfig audioConfig; + int32_t inputChannelIndex; + float gain_dB; +} RendererInput; + +typedef struct +{ + IVAS_REND_AudioObjectPosition positions[RENDERER_MAX_ISM_INPUTS]; + int16_t numObjects; +} ObjectPositionBuffer; + +typedef struct +{ + RendererInput audioObjects[RENDERER_MAX_ISM_INPUTS]; + uint16_t numAudioObjects; + RendererInput multiChannelBuses[RENDERER_MAX_MC_INPUTS]; + uint16_t numMultiChannelBuses; + RendererInput ambisonicsBuses[RENDERER_MAX_SBA_INPUTS]; + uint16_t numAmbisonicsBuses; + IVAS_CUSTOM_LS_DATA inSetupCustom; + RendererInput masaBus; /* Support one MASA input for now. Multiple inputs will be easier to implement after API rework. */ + uint16_t numMasaBuses; /* Keep for framework consistency for now. Again - this will not be necessary after API rework */ +} InputConfig; + +typedef struct { - INPUT_FORMAT_NONE = 0, - INPUT_FORMAT_SBA, - INPUT_FORMAT_ISM, - INPUT_FORMAT_MC -} InputFormat; + IVAS_REND_AudioConfig audioConfig; + IVAS_CUSTOM_LS_DATA outSetupCustom; +} OutputConfig; typedef struct CmdlnArgs { char inputFilePath[FILENAME_MAX]; char outputFilePath[FILENAME_MAX]; int32_t sampleRate; - AUDIO_CONFIG inputFormat; - IVAS_REND_InputConfig inConfig; - IVAS_REND_OutputConfig outConfig; - uint8_t numAudioObjects; + InputConfig inConfig; + OutputConfig outConfig; char metaDataFiles[RENDERER_MAX_ISM_INPUTS][FILENAME_MAX]; char trajectoryFile[FILENAME_MAX]; char customHrtfFile[FILENAME_MAX]; char renderConfigFile[FILENAME_MAX]; int8_t orientationTracking; float noDiegeticPan; - bool neverDropLfe; /* flag */ - bool delayCompensationEnabled; /* flag */ + bool delayCompensationEnabled; bool quietModeEnabled; + bool sceneDescriptionInput; + float inputGainGlobal; } CmdlnArgs; -static int8_t setInConfig( - AUDIO_CONFIG input_config, - IVAS_REND_InputConfig *inConfig, - IsmPositionProvider *positionProvider ); - -static IVAS_REND_Ambisonics ambisonicsOrderToEnum( +static IVAS_REND_AudioConfig ambisonicsOrderToEnum( int32_t order ); -static IVAS_REND_Ambisonics audioCfgToAmbiEnum( - AUDIO_CONFIG cfg ); - -static IVAS_REND_MasaTc audioCfgToMasaEnum( - AUDIO_CONFIG cfg ); - -static IVAS_REND_SpeakerLayout speakerLayoutCicpToEnum( +static IVAS_REND_AudioConfig speakerLayoutCicpToEnum( int32_t cicpIndex ); -static IVAS_REND_SpeakerLayout audioCfgToMcEnum( - AUDIO_CONFIG cfg ); - -static int8_t parseInFormat( - char **optionValues, - CmdlnArgs *args ); - -static int8_t parseOutConfig( - char *configString, - IVAS_REND_OutputConfig *outConfig ); +static bool parseInConfig( char **optionValues, + CmdlnArgs *args ); static void parseConfigFile( char *path, char *audioFilePath, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, IsmPositionProvider *positionProvider, char *masaMetadataFilePath ); -static void parseCustomLayoutFile( +static ivas_error parseCustomLayoutFile( char *filePath, - IVAS_LSSETUP_CUSTOM_HANDLE *hLsSetupCustom ); + IVAS_CUSTOM_LS_DATA *pLsSetupCustom ); static CmdlnArgs parseCmdlnArgs( int32_t argc, @@ -215,19 +218,19 @@ static IsmPositionProvider *IsmPositionProvider_open( static void IsmPositionProvider_getNextFrame( IsmPositionProvider *positionProvider, - IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer ); + ObjectPositionBuffer *objectMetadataBuffer ); static void IsmPositionProvider_close( IsmPositionProvider *positionProvider ); static void readFromShorthandMetadata( IsmPositionProvider *positionProvider, - IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer, + ObjectPositionBuffer *objectMetadataBuffer, uint32_t objIdx ); void getMetadataFromFileReader( IsmFileReader *ismReader, - IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer, + ObjectPositionBuffer *objectMetadataBuffer, uint32_t objIdx ); static void splitConfigFile( @@ -253,6 +256,10 @@ static int8_t parseUint32( const char *line, uint32_t *ret ); +static int8_t parseInt32( + const char *line, + int32_t *ret ); + static void parseObjectPosition( char *line, IVAS_REND_AudioObjectPosition *position, @@ -261,29 +268,29 @@ static void parseObjectPosition( static void parseIsm( char *line, char *inDir, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, IsmPositionProvider *positionProvider, int32_t idx ); static void parseSba( char *line, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, int32_t idx ); static void parseMc( char *line, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, int32_t idx ); static void parseMasa( char *line, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, char *masaMetadataFilePath ); static void parseMetadata( char *metadataString, char *inDir, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, IsmPositionProvider *positionProvider, char *masaMetadataFilePath ); @@ -293,6 +300,12 @@ static void convert_backslash( static void remove_cr( char *str ); +static void clearString( char *str ); + +static void printSupportedAudioConfigs( void ); + +static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ); + static void convertInputBuffer( const int16_t *intBuffer, int32_t numIntSamplesPerChannel, /* Number of samples per channel in the int buffer */ int32_t numFloatSamplesPerChannel, /* Per-channel length of the float buffer. If > numIntSamplesPerChannel, remaining samples will be set to 0. */ @@ -304,6 +317,84 @@ static void convertOutputBuffer( const float *floatBuffer, int32_t numChannels, int16_t *intBuffer ); +static IVAS_REND_ReadOnlyAudioBuffer getReadOnlySubBuffer( IVAS_REND_AudioBuffer buffer, int32_t chBeginIdx, int32_t numChannels ) +{ + IVAS_REND_ReadOnlyAudioBuffer subBuffer; + + subBuffer.config = buffer.config; + subBuffer.config.numChannels = numChannels; + subBuffer.data = buffer.data + subBuffer.config.numSamplesPerChannel * chBeginIdx; + + return subBuffer; +} + +static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS], + IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS], + IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] ) +{ + int32_t totalNumInChannels = 0; + ivas_error error; + + for ( int32_t i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) + { + if ( mcIds[i] == 0 ) + { + /* Skip inactive inputs */ + continue; + } + + int32_t numInputChannels; + if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, mcIds[i], &numInputChannels ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + totalNumInChannels += numInputChannels; + } + + for ( int32_t i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) + { + if ( ismIds[i] == 0 ) + { + /* Skip inactive inputs */ + continue; + } + + int32_t numInputChannels; + if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, ismIds[i], &numInputChannels ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + totalNumInChannels += numInputChannels; + } + + for ( int32_t i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) + { + if ( sbaIds[i] == 0 ) + { + /* Skip inactive inputs */ + continue; + } + + int32_t numInputChannels; + if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, sbaIds[i], &numInputChannels ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + totalNumInChannels += numInputChannels; + } + + return totalNumInChannels; +} + +static float dBToLin( float gain_dB ) +{ + return powf( 10.0f, gain_dB / 20.0f ); +} + /* ============================================================================ */ @@ -331,7 +422,7 @@ int32_t main( int32_t argc, char **argv ) int16_t delayNumSamples_orig = 0; int16_t zeroPad = 0; int32_t delayTimeScale = 0; - int16_t i; + int32_t i; ivas_error error = IVAS_ERR_OK; #ifdef WMOPS size_t SRAM_size; @@ -349,11 +440,9 @@ int32_t main( int32_t argc, char **argv ) CmdlnArgs args = parseCmdlnArgs( argc, argv ); const int16_t frameSize_smpls = (int16_t) ( 20 * args.sampleRate / 1000 ); - /* === Open === */ - hIvasRend = IVAS_REND_Open(); positionProvider = IsmPositionProvider_open(); - masaMetadataFilePath[0] = '\0'; + clearString( masaMetadataFilePath ); convert_backslash( args.inputFilePath ); convert_backslash( args.outputFilePath ); @@ -374,64 +463,113 @@ int32_t main( int32_t argc, char **argv ) RenderConfigReader_open( args.renderConfigFile, &renderConfigReader ); } - /* === Parse === */ - if ( args.inputFormat == AUDIO_CONFIG_INVALID || args.inputFormat == AUDIO_CONFIG_META ) + if ( args.sceneDescriptionInput ) { - /* Only parse config file if input config is none */ + /* With scene description input, inputFilePath is the path to the scene description file. Parse it. */ parseConfigFile( args.inputFilePath, audioFilePath, &args.inConfig, positionProvider, masaMetadataFilePath ); } else { - /* If input config is set, input file path is the input audio file, not config file */ - strncpy( audioFilePath, args.inputFilePath, FILENAME_MAX ); + /* With single-format input, inputFilePath is the path to input audio file. */ + strncpy( audioFilePath, args.inputFilePath, FILENAME_MAX - 1 ); - /* Initialize inConfig - this will be overwritten when applying forced parameters, - * but not initializing here causes a compiler warning on msvc */ - args.inConfig.numAmbisonicsBuses = 0; - args.inConfig.numMultiChannelBuses = 0; - args.inConfig.numAudioObjects = args.numAudioObjects; + /* Set up reading metadata files */ + positionProvider->numObjects = args.inConfig.numAudioObjects; + for ( i = 0; i < positionProvider->numObjects; ++i ) + { + positionProvider->ismReaders[i] = IsmFileReader_open( args.metaDataFiles[i] ); + } } - /* === Apply forced parameters === */ if ( AudioFileReader_open( &audioReader, audioFilePath, args.sampleRate ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening file: %s\n", audioFilePath ); exit( -1 ); } - if ( args.inputFormat != AUDIO_CONFIG_INVALID ) + IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS] = { 0 }; + IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS] = { 0 }; + IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] = { 0 }; + + if ( ( error = IVAS_REND_Open( &hIvasRend, args.sampleRate, args.outConfig.audioConfig ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error opening renderer handle: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + + /* Set up output custom layout configuration */ + if ( args.outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { - for ( i = 0; i < args.numAudioObjects; i++ ) + if ( ( error = IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( hIvasRend, args.outConfig.outSetupCustom ) ) != IVAS_ERR_OK ) { - positionProvider->ismReaders[i] = IsmFileReader_open( args.metaDataFiles[i] ); + return error; } + } - if ( setInConfig( args.inputFormat, &args.inConfig, positionProvider ) != 0 ) + for ( int32_t i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) + { + if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.multiChannelBuses[i].audioConfig, &mcIds[i] ) ) != IVAS_ERR_OK ) { - fprintf( stderr, "File cannot be used: %s\n", audioFilePath ); + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } + + if ( ( error = IVAS_REND_SetInputGain( hIvasRend, mcIds[i], args.inputGainGlobal * dBToLin( args.inConfig.multiChannelBuses[i].gain_dB ) ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + + /* TODO(sgi): Command line only supports one custom LS input for now, extend */ + if ( args.inConfig.multiChannelBuses[i].audioConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + if ( ( error = IVAS_REND_ConfigureCustomInputLoudspeakerLayout( hIvasRend, mcIds[i], args.inConfig.inSetupCustom ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + /* TODO(sgi): Test custom LFE routing here */ } - /* === Configure === */ - if ( ( error = IVAS_REND_Configure( hIvasRend, args.inConfig, args.outConfig, args.sampleRate, args.trajectoryFile[0] != '\0', args.renderConfigFile[0] != '\0' ) ) != IVAS_ERR_OK ) + for ( int32_t i = 0; i < args.inConfig.numAudioObjects; ++i ) { - exit( -1 ); + if ( ( error = IVAS_REND_AddInput( hIvasRend, IVAS_REND_AUDIO_CONFIG_OBJECT, &ismIds[i] ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + + if ( ( error = IVAS_REND_SetInputGain( hIvasRend, ismIds[i], args.inputGainGlobal * dBToLin( args.inConfig.audioObjects[i].gain_dB ) ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } } - if ( args.neverDropLfe ) + for ( int32_t i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) { - IVAS_REND_SetNeverDropLfe( hIvasRend, 1 ); + if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.ambisonicsBuses[i].audioConfig, &sbaIds[i] ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + + if ( ( error = IVAS_REND_SetInputGain( hIvasRend, sbaIds[i], args.inputGainGlobal * dBToLin( args.inConfig.ambisonicsBuses[i].gain_dB ) ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } } + const int32_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds ); if ( AudioFileReader_getNumChannels( audioReader ) != 0 /* If input file is raw PCM, audio reader has no info about number of channels */ - && IVAS_REND_GetInChannels( hIvasRend ) != AudioFileReader_getNumChannels( audioReader ) ) + && totalNumInChannels != AudioFileReader_getNumChannels( audioReader ) ) { fprintf( stderr, "Number of channels in input file does not match selected configuration\n" ); exit( -1 ); } - /* === Process === */ MasaFileReader *masaReader = NULL; IVAS_MASA_METADATA_HANDLE hMasaMetadata = NULL; @@ -447,27 +585,31 @@ int32_t main( int32_t argc, char **argv ) hMasaMetadata = MasaFileReader_getMetadataHandle( masaReader ); } - if ( AudioFileWriter_open( &audioWriter, args.outputFilePath, args.sampleRate, IVAS_REND_GetOutChannels( hIvasRend ) ) != IVAS_ERR_OK ) + int32_t numOutChannels; + if ( ( error = IVAS_REND_NumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + if ( AudioFileWriter_open( &audioWriter, args.outputFilePath, args.sampleRate, numOutChannels ) != IVAS_ERR_OK ) { fprintf( stderr, "Failed to open file: %s\n", args.outputFilePath ); exit( -1 ); } - inBufferSize = frameSize_smpls * IVAS_REND_GetInChannels( hIvasRend ); - outBufferSize = frameSize_smpls * IVAS_REND_GetOutChannels( hIvasRend ); - inpInt16Buffer = count_calloc( inBufferSize, sizeof( int16_t ) ); - inFloatBuffer = count_calloc( inBufferSize, sizeof( float ) ); - outInt16Buffer = count_calloc( outBufferSize, sizeof( int16_t ) ); - outFloatBuffer = count_calloc( outBufferSize, sizeof( float ) ); + inBufferSize = frameSize_smpls * totalNumInChannels; + outBufferSize = frameSize_smpls * numOutChannels; + inpInt16Buffer = count_malloc( inBufferSize * sizeof( int16_t ) ); + inFloatBuffer = count_malloc( inBufferSize * sizeof( float ) ); + outInt16Buffer = count_malloc( outBufferSize * sizeof( int16_t ) ); + outFloatBuffer = count_malloc( outBufferSize * sizeof( float ) ); - inBuffer.config.sampleRate = args.sampleRate; - inBuffer.config.bufferSize = frameSize_smpls; - inBuffer.config.numChannels = IVAS_REND_GetInChannels( hIvasRend ); + inBuffer.config.numSamplesPerChannel = frameSize_smpls; + inBuffer.config.numChannels = totalNumInChannels; inBuffer.data = inFloatBuffer; - outBuffer.config.sampleRate = args.sampleRate; - outBuffer.config.bufferSize = frameSize_smpls; - outBuffer.config.numChannels = IVAS_REND_GetOutChannels( hIvasRend ); + outBuffer.config.numSamplesPerChannel = frameSize_smpls; + outBuffer.config.numChannels = numOutChannels; outBuffer.data = outFloatBuffer; #ifdef WMOPS @@ -508,15 +650,12 @@ int32_t main( int32_t argc, char **argv ) if ( masaReader != NULL ) { MasaFileReader_readNextFrame( masaReader ); - - if ( ( error = IVAS_REND_FeedMasaMetadata( hIvasRend, hMasaMetadata ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); - exit( -1 ); - } + /* TODO: Feed MASA metadata here once MASA inputs are supported. + For now avoid unused var warning */ + (void) hMasaMetadata; } - IVAS_REND_AudioObjectMetadataBuffer mtdBuffer; + ObjectPositionBuffer mtdBuffer; IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer ); /* Read from head rotation trajectory file if specified */ @@ -526,8 +665,63 @@ int32_t main( int32_t argc, char **argv ) HeadRotationFileReading( headRotReader, quatBuffer, frame ); IVAS_REND_SetHeadRotation( hIvasRend, quatBuffer ); } + else + { + IVAS_REND_SetHeadRotation( hIvasRend, NULL ); + } - IVAS_REND_Render( hIvasRend, inBuffer, mtdBuffer, outBuffer ); + for ( int32_t i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) + { + int32_t numChannels; + if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, mcIds[i], &numChannels ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, args.inConfig.multiChannelBuses[i].inputChannelIndex, numChannels ); + + if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, mcIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + } + + for ( int32_t i = 0; i < args.inConfig.numAudioObjects; ++i ) + { + IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, args.inConfig.audioObjects[i].inputChannelIndex, 1 ); + + if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, ismIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + + if ( ( error = IVAS_REND_FeedInputObjectMetadata( hIvasRend, ismIds[i], mtdBuffer.positions[i] ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + } + + for ( int32_t i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) + { + int32_t numChannels; + if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, sbaIds[i], &numChannels ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, args.inConfig.ambisonicsBuses[i].inputChannelIndex, numChannels ); + + if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, sbaIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); + exit( -1 ); + } + } + + IVAS_REND_GetSamples( hIvasRend, outBuffer ); int32_t num_out_channels; num_out_channels = outBuffer.config.numChannels; @@ -536,7 +730,6 @@ int32_t main( int32_t argc, char **argv ) * Values in outFloatBuffer are guaranteed to be within range INT16_MIN:INT16_MAX */ convertOutputBuffer( outFloatBuffer, frameSize_smpls, num_out_channels, outInt16Buffer ); - /* TODO tmu : delay compensation not finalized yet */ if ( delayNumSamples == -1 ) { if ( args.delayCompensationEnabled ) @@ -635,426 +828,156 @@ int32_t main( int32_t argc, char **argv ) return 0; } -static int8_t setInConfig( AUDIO_CONFIG input_config, IVAS_REND_InputConfig *inConfig, IsmPositionProvider *positionProvider ) -{ - int8_t success; /* flag */ - int16_t i; - - success = 1; - - if ( input_config == AUDIO_CONFIG_META ) - { - /* inConfig already set from metadata file, return early */ - return 0; - } - - inConfig->numAudioObjects = 0; - inConfig->numAmbisonicsBuses = 0; - inConfig->numMultiChannelBuses = 0; - inConfig->numMasaBuses = 0; - - switch ( input_config ) - { - case AUDIO_CONFIG_MONO: - case AUDIO_CONFIG_STEREO: - case AUDIO_CONFIG_5_1: - case AUDIO_CONFIG_7_1: - case AUDIO_CONFIG_5_1_2: - case AUDIO_CONFIG_5_1_4: - case AUDIO_CONFIG_7_1_4: - case AUDIO_CONFIG_LS_CUSTOM: - inConfig->numMultiChannelBuses = 1; - inConfig->multiChannelBuses[0].speakerLayout = audioCfgToMcEnum( input_config ); - inConfig->multiChannelBuses[0].inputChannelIndex = 0; - inConfig->multiChannelBuses[0].gain_dB = 0; - break; - case AUDIO_CONFIG_FOA: - case AUDIO_CONFIG_HOA2: - case AUDIO_CONFIG_HOA3: - inConfig->numAmbisonicsBuses = 1; - inConfig->ambisonicsBuses[0].ambisonicsConfig = audioCfgToAmbiEnum( input_config ); - inConfig->ambisonicsBuses[0].inputChannelIndex = 0; - inConfig->ambisonicsBuses[0].gain_dB = 0; - break; - case AUDIO_CONFIG_ISM1: - case AUDIO_CONFIG_ISM2: - case AUDIO_CONFIG_ISM3: - case AUDIO_CONFIG_ISM4: - inConfig->numAudioObjects = input_config - AUDIO_CONFIG_ISM1 + 1; /* TODO(sgi): Don't do arithemtic on enums, find a better way */ - positionProvider->numObjects = inConfig->numAudioObjects; - - for ( i = 0; i < inConfig->numAudioObjects; ++i ) - { - inConfig->audioObjects[i].inputChannelIndex = i; - inConfig->audioObjects[i].gain_dB = 0; - - positionProvider->numPositions[i] = 1; - positionProvider->positions[i] = count_malloc( sizeof( IVAS_REND_AudioObjectPosition ) ); - IVAS_REND_AudioObjectPosition position; - - /* Spread objects starting from 0, then -/+ 30, then -/+ 60 etc. */ - position.azimuth = (float) ( ( i + 1 ) / 2 ) * 30 * ( i % 2 == 0 ? -1 : 1 ); - position.elevation = 0.0f; - positionProvider->positions[i][0] = position; - - positionProvider->positionDurations[i] = count_malloc( sizeof( uint16_t ) ); - positionProvider->positionDurations[i][0] = 1; - } - break; - case AUDIO_CONFIG_MASA1: - case AUDIO_CONFIG_MASA2: - inConfig->numMasaBuses = 1; - inConfig->masaBus.numTc = audioCfgToMasaEnum( input_config ); - inConfig->masaBus.inputChannelIndex = 0; - inConfig->masaBus.gain_dB = 0; - break; - default: - success = 0; - fprintf( stderr, "Invalid or bad config\n" ); - } - - return success ? 0 : -1; -} - -static IVAS_REND_Ambisonics ambisonicsOrderToEnum( int32_t order ) +static IVAS_REND_AudioConfig ambisonicsOrderToEnum( int32_t order ) { switch ( order ) { - case 0: - return IVAS_REND_AMBISONICS_MONO; case 1: - return IVAS_REND_AMBISONICS_FOA; + return IVAS_REND_AUDIO_CONFIG_FOA; case 2: - return IVAS_REND_AMBISONICS_SOA; + return IVAS_REND_AUDIO_CONFIG_HOA2; case 3: - return IVAS_REND_AMBISONICS_TOA; + return IVAS_REND_AUDIO_CONFIG_HOA3; } - return IVAS_REND_AMBISONICS_NONE; + return IVAS_REND_AUDIO_CONFIG_UNKNOWN; } -static IVAS_REND_Ambisonics audioCfgToAmbiEnum( AUDIO_CONFIG cfg ) +static bool parseInConfig( char **optionValues, CmdlnArgs *args ) { - if ( cfg == AUDIO_CONFIG_MONO ) - { - return IVAS_REND_AMBISONICS_MONO; - } - else if ( cfg == AUDIO_CONFIG_FOA ) - { - return IVAS_REND_AMBISONICS_FOA; - } - else if ( cfg == AUDIO_CONFIG_HOA2 ) - { - return IVAS_REND_AMBISONICS_SOA; - } - else if ( cfg == AUDIO_CONFIG_HOA3 ) - { - return IVAS_REND_AMBISONICS_TOA; - } - - return IVAS_REND_AMBISONICS_NONE; -} - -static IVAS_REND_BinauralFormat audioCfgToBinauralEnum( AUDIO_CONFIG cfg ) -{ - if ( cfg == AUDIO_CONFIG_BINAURAL ) - { - return IVAS_REND_BINAURAL_DIRECT; - } - else if ( cfg == AUDIO_CONFIG_BINAURAL_ROOM ) - { - return IVAS_REND_BINAURAL_ROOM; - } - - return IVAS_REND_BINAURAL_NONE; -} + InputConfig inConfig; + char charBuf[FILENAME_MAX]; + + /* Initialize input config struct */ + inConfig.numAudioObjects = 0; + inConfig.numAmbisonicsBuses = 0; + inConfig.numMultiChannelBuses = 0; + inConfig.numMasaBuses = 0; + + /* First check if input is being set to scene description file - this is not covered by parseAudioConfig(). */ + strncpy( charBuf, optionValues[0], sizeof( charBuf ) - 1 ); + to_upper( charBuf ); + if ( strcmp( charBuf, "META" ) == 0 ) + { + args->sceneDescriptionInput = true; + /* Parsing the file will be done later. At this point the actual file path + * may not be known as command line parameters are still being parsed. */ + return true; + } + + /* Check for single-format inputs. The given string should map to a member of IVAS_REND_AudioConfig enum. */ + IVAS_REND_AudioConfig audioConfig = parseAudioConfig( optionValues[0] ); + switch ( audioConfig ) + { + case IVAS_REND_AUDIO_CONFIG_MONO: + case IVAS_REND_AUDIO_CONFIG_STEREO: + case IVAS_REND_AUDIO_CONFIG_5_1: + case IVAS_REND_AUDIO_CONFIG_7_1: + case IVAS_REND_AUDIO_CONFIG_5_1_2: + case IVAS_REND_AUDIO_CONFIG_5_1_4: + case IVAS_REND_AUDIO_CONFIG_7_1_4: + inConfig.numMultiChannelBuses = 1; + inConfig.multiChannelBuses[0].audioConfig = audioConfig; + inConfig.multiChannelBuses[0].inputChannelIndex = 0; + inConfig.multiChannelBuses[0].gain_dB = 0.0f; + break; + case IVAS_REND_AUDIO_CONFIG_FOA: + case IVAS_REND_AUDIO_CONFIG_HOA2: + case IVAS_REND_AUDIO_CONFIG_HOA3: + inConfig.numAmbisonicsBuses = 1; + inConfig.ambisonicsBuses[0].audioConfig = audioConfig; + inConfig.ambisonicsBuses[0].inputChannelIndex = 0; + inConfig.ambisonicsBuses[0].gain_dB = 0.0f; + break; + case IVAS_REND_AUDIO_CONFIG_MASA1: + case IVAS_REND_AUDIO_CONFIG_MASA2: + inConfig.numMasaBuses = 1; + inConfig.masaBus.audioConfig = audioConfig; + inConfig.masaBus.inputChannelIndex = 0; + inConfig.masaBus.gain_dB = 0.0f; + break; + case IVAS_REND_AUDIO_CONFIG_OBJECT: + /* If input format is objects, parse the characters after "ISM" to get number of objects */ + { + char *ptr = NULL; + inConfig.numAudioObjects = strtol( optionValues[0] + 3, &ptr, 10 ); + if ( ptr == NULL || *ptr != '\0' ) + { + /* Failed to parse string as a number */ + fprintf( stderr, "Cannot parse string \"%s\" as a valid input format", optionValues[0] ); + return false; + } + if ( inConfig.numAudioObjects > RENDERER_MAX_ISM_INPUTS ) + { + fprintf( stderr, "Too many objects at input. Max %d supported.", RENDERER_MAX_ISM_INPUTS ); + return false; + } + for ( int32_t i = 0; i < inConfig.numAudioObjects; ++i ) + { + inConfig.audioObjects[i].audioConfig = audioConfig; + inConfig.audioObjects[i].inputChannelIndex = i; + inConfig.audioObjects[i].gain_dB = 0.0f; + } + } + break; + case IVAS_REND_AUDIO_CONFIG_UNKNOWN: + /* This case will be reached if parsing string to IVAS_REND_AudioConfig enum fails. + * Try to use the given string as a path to a custom loudspeaker layout file. */ + { + ivas_error error = parseCustomLayoutFile( optionValues[0], &inConfig.inSetupCustom ); -static IVAS_REND_MasaTc audioCfgToMasaEnum( AUDIO_CONFIG cfg ) -{ - switch ( cfg ) - { - case AUDIO_CONFIG_MASA1: - return IVAS_REND_MASA_TC_1; - case AUDIO_CONFIG_MASA2: - return IVAS_REND_MASA_TC_2; + if ( error == IVAS_ERR_FAILED_FILE_OPEN ) + { + /* Failed to open with given string - most likely wasn't a file path */ + fprintf( stderr, "Unsupported input format: %s\n", optionValues[0] ); + return false; + } + if ( error != IVAS_ERR_OK ) + { + fprintf( stderr, "Error while reading custom loudspeaker layout file %s\n", optionValues[0] ); + return false; + } + inConfig.numMultiChannelBuses = 1; + inConfig.multiChannelBuses[0].audioConfig = IVAS_REND_AUDIO_CONFIG_LS_CUSTOM; + inConfig.multiChannelBuses[0].inputChannelIndex = 0; + inConfig.multiChannelBuses[0].gain_dB = 0.0f; + } + break; default: + /* Default case covers formats that are defined in the IVAS_REND_AudioConfig enum, + * but cannot be used at input, e.g. BINAURAL */ + fprintf( stderr, "Unsupported input format: %s\n", optionValues[0] ); + return false; break; } + args->inConfig = inConfig; - return IVAS_REND_MASA_TC_NONE; -} -static IVAS_REND_SpeakerLayout speakerLayoutCicpToEnum( int32_t cicpIndex ) -{ - switch ( cicpIndex ) - { - case 0: - return IVAS_REND_SPEAKER_LAYOUT_CUSTOM; - case 1: - return IVAS_REND_SPEAKER_LAYOUT_MONO; - case 2: - return IVAS_REND_SPEAKER_LAYOUT_STEREO; - case 6: - return IVAS_REND_SPEAKER_LAYOUT_5_1; - case 12: - return IVAS_REND_SPEAKER_LAYOUT_7_1; - case 14: - return IVAS_REND_SPEAKER_LAYOUT_5_1_2; - case 16: - return IVAS_REND_SPEAKER_LAYOUT_5_1_4; - case 19: - return IVAS_REND_SPEAKER_LAYOUT_7_1_4; - } - - return IVAS_REND_SPEAKER_LAYOUT_NONE; + return true; } -static IVAS_REND_SpeakerLayout audioCfgToMcEnum( AUDIO_CONFIG cfg ) +static bool parseInMetadata( char **optionValues, int32_t numValues, CmdlnArgs *args ) { - if ( cfg == AUDIO_CONFIG_LS_CUSTOM ) - { - return IVAS_REND_SPEAKER_LAYOUT_CUSTOM; - } - else if ( cfg == AUDIO_CONFIG_MONO ) - { - return IVAS_REND_SPEAKER_LAYOUT_MONO; - } - else if ( cfg == AUDIO_CONFIG_STEREO ) - { - return IVAS_REND_SPEAKER_LAYOUT_STEREO; - } - else if ( cfg == AUDIO_CONFIG_5_1 ) - { - return IVAS_REND_SPEAKER_LAYOUT_5_1; - } - else if ( cfg == AUDIO_CONFIG_7_1 ) - { - return IVAS_REND_SPEAKER_LAYOUT_7_1; - } - else if ( cfg == AUDIO_CONFIG_5_1_2 ) - { - return IVAS_REND_SPEAKER_LAYOUT_5_1_2; - } - else if ( cfg == AUDIO_CONFIG_5_1_4 ) - { - return IVAS_REND_SPEAKER_LAYOUT_5_1_4; - } - else if ( cfg == AUDIO_CONFIG_7_1_4 ) - { - return IVAS_REND_SPEAKER_LAYOUT_7_1_4; - } + char charBuf[FILENAME_MAX]; - return IVAS_REND_SPEAKER_LAYOUT_NONE; -} - -static AUDIO_CONFIG parseStrToAudioCfg( char *config_str ) -{ - char format[14]; - uint8_t numObjects; - - format[13] = '\0'; - strncpy( format, config_str, 13 ); - to_upper( format ); - - if ( ( strcmp( format, "MONO" ) == 0 ) || ( strcmp( format, "HOA0" ) == 0 ) || ( strcmp( format, "SBA0" ) == 0 ) ) + for ( int32_t i = 0; i < numValues; ++i ) { - return AUDIO_CONFIG_MONO; - } - else if ( ( strcmp( format, "STEREO" ) == 0 ) || ( strcmp( format, "CICP2" ) == 0 ) ) - { - return AUDIO_CONFIG_STEREO; - } - else if ( ( strcmp( format, "FOA" ) == 0 ) || ( strcmp( format, "SBA1" ) == 0 ) ) - { - return AUDIO_CONFIG_FOA; - } - else if ( ( strcmp( format, "HOA2" ) == 0 ) || ( strcmp( format, "SBA2" ) == 0 ) ) - { - return AUDIO_CONFIG_HOA2; - } - else if ( ( strcmp( format, "HOA3" ) == 0 ) || ( strcmp( format, "SBA3" ) == 0 ) ) - { - return AUDIO_CONFIG_HOA3; - } - else if ( ( strcmp( format, "5_1" ) == 0 ) || ( strcmp( format, "CICP6" ) == 0 ) ) - { - return AUDIO_CONFIG_5_1; - } - else if ( ( strcmp( format, "7_1" ) == 0 ) || ( strcmp( format, "CICP12" ) == 0 ) ) - { - return AUDIO_CONFIG_7_1; - } - else if ( ( strcmp( format, "5_1_2" ) == 0 ) || ( strcmp( format, "CICP14" ) == 0 ) ) - { - return AUDIO_CONFIG_5_1_2; - } - else if ( ( strcmp( format, "5_1_4" ) == 0 ) || ( strcmp( format, "CICP16" ) == 0 ) ) - { - return AUDIO_CONFIG_5_1_4; - } - else if ( ( strcmp( format, "7_1_4" ) == 0 ) || ( strcmp( format, "CICP19" ) == 0 ) ) - { - return AUDIO_CONFIG_7_1_4; - } - else if ( strncmp( format, "ISM", 3 ) == 0 ) - { - parseUint8( &format[3], &numObjects ); - return AUDIO_CONFIG_ISM1 + numObjects - 1; /* TODO(sgi): Don't do arithemtic on enums, find a better way */ - } - else if ( strncmp( format, "MASA", 4 ) == 0 ) - { - switch ( format[4] ) - { - case '1': - return AUDIO_CONFIG_MASA1; - case '2': - return AUDIO_CONFIG_MASA2; - default: - return AUDIO_CONFIG_INVALID; - } - } - else if ( strncmp( format, "META", 4 ) == 0 ) - { - return AUDIO_CONFIG_META; - } - else if ( strncmp( format, "EXT", 3 ) == 0 ) - { - return AUDIO_CONFIG_EXTERNAL; - } - else if ( strcmp( format, "BINAURAL_ROOM" ) == 0 ) - { - return AUDIO_CONFIG_BINAURAL_ROOM; - } - else if ( strcmp( format, "BINAURAL" ) == 0 ) - { - return AUDIO_CONFIG_BINAURAL; - } - else - { - /* check extension to see if it is a custom loudspeaker layout file */ - if ( strcmp( strrchr( config_str, '.' ), ".txt" ) == 0 ) - { - return AUDIO_CONFIG_LS_CUSTOM; - } - else - { - return AUDIO_CONFIG_INVALID; - } - } -} - -static int8_t parseInFormat( char **optionValues, CmdlnArgs *args ) -{ - int8_t success; /* flag */ - success = 1; - - args->inputFormat = parseStrToAudioCfg( optionValues[0] ); - switch ( args->inputFormat ) - { - case AUDIO_CONFIG_LS_CUSTOM: - args->numAudioObjects = 0; - parseCustomLayoutFile( optionValues[0], &args->inConfig.inSetupCustom ); - break; - case AUDIO_CONFIG_ISM1: - case AUDIO_CONFIG_MASA1: - args->numAudioObjects = 1; - break; - case AUDIO_CONFIG_ISM2: - case AUDIO_CONFIG_MASA2: - args->numAudioObjects = 2; - break; - case AUDIO_CONFIG_ISM3: - args->numAudioObjects = 3; - break; - case AUDIO_CONFIG_ISM4: - args->numAudioObjects = 4; - break; - case AUDIO_CONFIG_BINAURAL: - case AUDIO_CONFIG_BINAURAL_ROOM: - fprintf( stderr, "BINAURAL input is not supported!\n" ); - success = 0; - break; - case AUDIO_CONFIG_EXTERNAL: - fprintf( stderr, "No rendering possible for EXT format!\n" ); - success = 0; - break; - default: - args->numAudioObjects = 0; - } + strncpy( charBuf, optionValues[i], sizeof( charBuf ) - 1 ); + to_upper( charBuf ); - for ( int16_t i = 0; i < args->numAudioObjects; i++ ) - { - if ( ( strcmp( optionValues[i + 1], "NULL" ) == 0 ) || ( strcmp( optionValues[i + 1], "null" ) == 0 ) ) + if ( ( strcmp( charBuf, "NULL" ) == 0 ) ) { - args->metaDataFiles[i][0] = '\0'; + /* TODO(sgi): Test setting mtd file to NULL. Will default positions be provided? Seems that crash is likely in this case. */ + clearString( args->metaDataFiles[i] ); } else { - strcpy( args->metaDataFiles[i], optionValues[i + 1] ); + strncpy( args->metaDataFiles[i], optionValues[i], FILENAME_MAX - 1 ); convert_backslash( args->metaDataFiles[i] ); } } - return success ? 0 : -1; -} - -static int8_t parseOutConfig( char *configString, IVAS_REND_OutputConfig *outConfig ) -{ - int8_t success; /* flag */ - success = 1; - - AUDIO_CONFIG outCfg; - - outCfg = parseStrToAudioCfg( configString ); - switch ( outCfg ) - { - case AUDIO_CONFIG_MONO: - case AUDIO_CONFIG_STEREO: - case AUDIO_CONFIG_5_1: - case AUDIO_CONFIG_7_1: - case AUDIO_CONFIG_5_1_2: - case AUDIO_CONFIG_5_1_4: - case AUDIO_CONFIG_7_1_4: - outConfig->speakerLayout = audioCfgToMcEnum( outCfg ); - break; - case AUDIO_CONFIG_LS_CUSTOM: - outConfig->speakerLayout = IVAS_REND_SPEAKER_LAYOUT_CUSTOM; - parseCustomLayoutFile( configString, &outConfig->outSetupCustom ); - break; - case AUDIO_CONFIG_FOA: - case AUDIO_CONFIG_HOA2: - case AUDIO_CONFIG_HOA3: - outConfig->ambisonics = audioCfgToAmbiEnum( outCfg ); - break; - case AUDIO_CONFIG_BINAURAL: - case AUDIO_CONFIG_BINAURAL_ROOM: - outConfig->binauralFormat = audioCfgToBinauralEnum( outCfg ); - break; - case AUDIO_CONFIG_META: - /* handled by parseConfigFile() */ - break; - case AUDIO_CONFIG_ISM1: - case AUDIO_CONFIG_ISM2: - case AUDIO_CONFIG_ISM3: - case AUDIO_CONFIG_ISM4: - fprintf( stderr, "ISM is not a valid output format!\n" ); - success = 0; - break; - case AUDIO_CONFIG_MASA1: - case AUDIO_CONFIG_MASA2: - fprintf( stderr, "MASA is not a valid output format!\n" ); - success = 0; - break; - case AUDIO_CONFIG_EXTERNAL: - fprintf( stderr, "No rendering possible for EXT format!\n" ); - success = 0; - break; - default: - success = 0; - fprintf( stderr, "Invalid or bad config\n" ); - } - - return success ? 0 : -1; + return true; } static int8_t parseDiegeticPan( char *value, float *noDiegeticPan ) @@ -1112,42 +1035,116 @@ static int8_t parseOrientationTracking( char *value, int8_t *tracking_type ) return success ? 0 : -1; } +static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ) +{ + char charBuf[14]; + charBuf[13] = '\0'; + + strncpy( charBuf, configString, sizeof( charBuf ) - 1 ); + to_upper( charBuf ); + + if ( ( strcmp( charBuf, "MONO" ) == 0 ) || ( strcmp( charBuf, "HOA0" ) == 0 ) || ( strcmp( charBuf, "SBA0" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_MONO; + } + if ( ( strcmp( charBuf, "STEREO" ) == 0 ) || ( strcmp( charBuf, "CICP2" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_STEREO; + } + if ( ( strcmp( charBuf, "FOA" ) == 0 ) || ( strcmp( charBuf, "SBA1" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_FOA; + } + if ( ( strcmp( charBuf, "HOA2" ) == 0 ) || ( strcmp( charBuf, "SBA2" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_HOA2; + } + if ( ( strcmp( charBuf, "HOA3" ) == 0 ) || ( strcmp( charBuf, "SBA3" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_HOA3; + } + if ( ( strcmp( charBuf, "5_1" ) == 0 ) || ( strcmp( charBuf, "CICP6" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_5_1; + } + if ( ( strcmp( charBuf, "7_1" ) == 0 ) || ( strcmp( charBuf, "CICP12" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_7_1; + } + if ( ( strcmp( charBuf, "5_1_2" ) == 0 ) || ( strcmp( charBuf, "CICP14" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_5_1_2; + } + if ( ( strcmp( charBuf, "5_1_4" ) == 0 ) || ( strcmp( charBuf, "CICP16" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_5_1_4; + } + if ( ( strcmp( charBuf, "7_1_4" ) == 0 ) || ( strcmp( charBuf, "CICP19" ) == 0 ) ) + { + return IVAS_REND_AUDIO_CONFIG_7_1_4; + } + if ( strncmp( charBuf, "ISM", 3 ) == 0 ) + { + return IVAS_REND_AUDIO_CONFIG_OBJECT; + } + if ( strncmp( charBuf, "MASA", 4 ) == 0 ) + { + switch ( charBuf[4] ) + { + case '1': + return IVAS_REND_AUDIO_CONFIG_MASA1; + case '2': + return IVAS_REND_AUDIO_CONFIG_MASA2; + default: + return IVAS_REND_AUDIO_CONFIG_UNKNOWN; + } + } + if ( strcmp( charBuf, "BINAURAL_ROOM" ) == 0 ) + { + return IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM; + } + if ( strcmp( charBuf, "BINAURAL" ) == 0 ) + { + return IVAS_REND_AUDIO_CONFIG_BINAURAL; + } + + return IVAS_REND_AUDIO_CONFIG_UNKNOWN; +} + static CmdlnArgs defaultArgs( void ) { CmdlnArgs args; - args.inputFilePath[0] = '\0'; - args.outputFilePath[0] = '\0'; + clearString( args.inputFilePath ); + clearString( args.outputFilePath ); args.sampleRate = -1; - args.inConfig.inSetupCustom = NULL; + args.inConfig.inSetupCustom.num_spk = 0; + args.inConfig.inSetupCustom.num_lfe = 0; args.inConfig.numAudioObjects = 0; args.inConfig.numAmbisonicsBuses = 0; args.inConfig.numMultiChannelBuses = 0; args.inConfig.numMasaBuses = 0; - args.outConfig.ambisonics = IVAS_REND_AMBISONICS_NONE; - args.outConfig.speakerLayout = IVAS_REND_SPEAKER_LAYOUT_NONE; - args.outConfig.outSetupCustom = NULL; - - args.outConfig.binauralFormat = IVAS_REND_BINAURAL_NONE; + args.outConfig.audioConfig = IVAS_REND_AUDIO_CONFIG_UNKNOWN; + args.outConfig.outSetupCustom.num_spk = 0; + args.outConfig.outSetupCustom.num_lfe = 0; args.orientationTracking = IVAS_ORIENT_TRK_REF; - args.trajectoryFile[0] = '\0'; - args.customHrtfFile[0] = '\0'; - args.renderConfigFile[0] = '\0'; - - args.numAudioObjects = 0; + clearString( args.trajectoryFile ); + clearString( args.customHrtfFile ); + clearString( args.renderConfigFile ); args.noDiegeticPan = 0; - args.neverDropLfe = false; args.delayCompensationEnabled = true; args.quietModeEnabled = false; + args.sceneDescriptionInput = false; + args.inputGainGlobal = 1.0f; for ( size_t i = 0; i < RENDERER_MAX_ISM_INPUTS; i++ ) { - args.metaDataFiles[i][0] = '\0'; + clearString( args.metaDataFiles[i] ); } return args; @@ -1165,40 +1162,69 @@ typedef enum CmdLnOptionId_renderConfigFile, CmdLnOptionId_noDiegeticPan, CmdLnOptionId_orientationTracking, - CmdLnOptionId_neverDropLfe, + CmdLnOptionId_customLfeRouting, CmdLnOptionId_noDelayCmp, CmdLnOptionId_quietModeEnabled, CmdLnOptionId_inputMetadata, + CmdLnOptionId_listFormats, + CmdLnOptionId_inputGain, } CmdLnOptionId; static void parseOption( int32_t optionId, char **optionValues, int16_t numOptionValues, void *pOutputStruct ) { + ivas_error error; CmdlnArgs *args = pOutputStruct; + /* TODO(sgi): Parsing currently depends on order in which the options are given by the user. + * This causes a lot of errors and is unmaintainable for options that depend on each other. + * + * Solution: save all option values here as strings, parse strings afterwards once all values are known. + */ + switch ( optionId ) { + case CmdLnOptionId_listFormats: + /* TODO tmu2sgi : only works when -i is specified too */ + assert( numOptionValues == 0 ); + printSupportedAudioConfigs(); + exit( 0 ); case CmdLnOptionId_inputFile: assert( numOptionValues == 1 ); - strncpy( args->inputFilePath, optionValues[0], FILENAME_MAX ); + strncpy( args->inputFilePath, optionValues[0], FILENAME_MAX - 1 ); break; case CmdLnOptionId_inputFormat: - assert( numOptionValues <= RENDERER_MAX_ISM_INPUTS + 1 ); - if ( parseInFormat( optionValues, args ) != 0 ) + assert( numOptionValues == 1 ); + if ( !parseInConfig( optionValues, args ) ) { - fprintf( stderr, "Unknown input or bad config: %s\n", optionValues[0] ); + fprintf( stderr, "Error while parsing input format option\n" ); + exit( -1 ); + } + break; + case CmdLnOptionId_inputMetadata: + assert( numOptionValues <= RENDERER_MAX_ISM_INPUTS ); + if ( !parseInMetadata( optionValues, numOptionValues, args ) ) + { + fprintf( stderr, "Error while parsing input metadata option\n" ); exit( -1 ); } break; case CmdLnOptionId_outputFile: assert( numOptionValues == 1 ); - strncpy( args->outputFilePath, optionValues[0], FILENAME_MAX ); + strncpy( args->outputFilePath, optionValues[0], FILENAME_MAX - 1 ); break; case CmdLnOptionId_outputFormat: assert( numOptionValues == 1 ); - if ( parseOutConfig( optionValues[0], &args->outConfig ) != 0 ) + args->outConfig.audioConfig = parseAudioConfig( optionValues[0] ); + /* If the string provided is not recognized as a valid output config, + * it's expected to be a path to a custom loudspeaker layout description file. */ + if ( args->outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - fprintf( stderr, "Unknown output or bad config: %s\n", optionValues[0] ); - exit( -1 ); + args->outConfig.audioConfig = IVAS_REND_AUDIO_CONFIG_LS_CUSTOM; + if ( ( error = parseCustomLayoutFile( optionValues[0], &args->outConfig.outSetupCustom ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Error while parsing output format option\n" ); + exit( -1 ); + } } break; case CmdLnOptionId_sampleRate: @@ -1207,15 +1233,15 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio break; case CmdLnOptionId_trajFile: assert( numOptionValues == 1 ); - strncpy( args->trajectoryFile, optionValues[0], FILENAME_MAX ); + strncpy( args->trajectoryFile, optionValues[0], FILENAME_MAX - 1 ); break; case CmdLnOptionId_customHrtfFile: assert( numOptionValues == 1 ); - strncpy( args->customHrtfFile, optionValues[0], FILENAME_MAX ); + strncpy( args->customHrtfFile, optionValues[0], FILENAME_MAX - 1 ); break; case CmdLnOptionId_renderConfigFile: assert( numOptionValues == 1 ); - strncpy( args->renderConfigFile, optionValues[0], FILENAME_MAX ); + strncpy( args->renderConfigFile, optionValues[0], FILENAME_MAX - 1 ); break; case CmdLnOptionId_noDiegeticPan: assert( numOptionValues == 1 ); @@ -1233,9 +1259,8 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio exit( -1 ); } break; - case CmdLnOptionId_neverDropLfe: - assert( numOptionValues == 0 ); - args->neverDropLfe = true; + case CmdLnOptionId_customLfeRouting: + assert( 0 && "Not yet implemented in CLI" ); break; case CmdLnOptionId_noDelayCmp: assert( numOptionValues == 0 ); @@ -1245,55 +1270,60 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio assert( numOptionValues == 0 ); args->quietModeEnabled = true; break; + case CmdLnOptionId_inputGain: + assert( numOptionValues == 1 ); + args->inputGainGlobal = atof( optionValues[0] ); /* TODO(sgi): atof doesn't detect if string doesn't represent a number, just returns zero */ + break; default: - /* Unreachable */ + assert( 0 && "This should be unreachable - all command line options should be explicitly handled." ); break; } } static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) { + /* TODO tmu2sgi: "requiredness" depends on the order things are parsed in */ CmdLnParser_Option optionsToMatch[] = { { .id = CmdLnOptionId_inputFile, .match = "input_file", .matchShort = "i", - .isRequired = 1, + .isRequired = true, .description = "Path to the input file (WAV, raw PCM or scene description file)", }, { .id = CmdLnOptionId_inputFormat, .match = "input_format", .matchShort = "if", - .isRequired = 1, - // .description = "Audio format of input file (e.g. 5_1 or HOA3 or META)", /* TODO(sgi): Add additional flag for listing all available formats */ - .description = "Format of input file\nIn case of a metadata format this should be followed by a list of metadata file paths or NULL", + .isRequired = true, + .description = "Audio format of input file (e.g. 5_1 or HOA3 or META, use -l for a list)", + }, + { + /* TODO tmu2sgi : make required dependent on -if? */ + .id = CmdLnOptionId_inputMetadata, + .match = "input_metadata", + .matchShort = "im", + .description = "Space-separated list of path to metadata files for ISM or MASA inputs", }, - // { /* TODO(sgi): move metadata file paths from input_format to this separate flag */ - // .id = CmdLnOptionId_inputMetadata, - // .match = "input_metadata", - // .matchShort = "im", - // .description = "Space-separated list of path to metadata files for ISM or MASA inputs", - // }, { .id = CmdLnOptionId_outputFile, .match = "output_file", .matchShort = "o", - .isRequired = 1, + .isRequired = true, .description = "Path to the output file", }, { .id = CmdLnOptionId_outputFormat, .match = "output_format", .matchShort = "of", - .isRequired = 1, + .isRequired = true, .description = "Output format to render.\nAlternatively, can be a custom loudspeaker layout file", }, { .id = CmdLnOptionId_sampleRate, .match = "sample_rate", .matchShort = "fs", - .isRequired = 1, /* TODO(sgi): Shouldn't be required */ + .isRequired = true, /* TODO(sgi): Shouldn't be required */ .description = "Input sampling rate in kHz (16, 32, 48)", /* TODO(sgi): Add sampling rate to scene description files */ }, { @@ -1329,7 +1359,7 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) { /* TODO(sgi): Replace with more configurable input, e.g. ask for a list of triplets: (gain, azimuth, elevation) to place LFE signal */ /* rename to "lfeHandling" */ - .id = CmdLnOptionId_neverDropLfe, + .id = CmdLnOptionId_customLfeRouting, .match = "neverDropLfe", .matchShort = "ndl", .description = "[flag] If set, renderer tries to render LFE into other channels in an optimal way when rendering to configs w/o LFE", @@ -1346,6 +1376,18 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) .matchShort = "q", .description = "[flag] Limit printouts to terminal", }, + { + .id = CmdLnOptionId_inputGain, + .match = "gain", + .matchShort = "g", + .description = "Input gain (linear, not in dB) to be applied to input audio file", + }, + { + .id = CmdLnOptionId_listFormats, + .match = "list", + .matchShort = "l", + .description = "List supported audio formats", + }, }; CmdlnArgs parsedArgs = defaultArgs(); @@ -1384,7 +1426,7 @@ IsmPositionProvider *IsmPositionProvider_open( void ) void getMetadataFromFileReader( IsmFileReader *ismReader, - IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer, + ObjectPositionBuffer *objectMetadataBuffer, uint32_t objIdx ) { IVAS_ISM_METADATA ismMetadata; @@ -1401,7 +1443,7 @@ void getMetadataFromFileReader( } void readFromShorthandMetadata( IsmPositionProvider *positionProvider, - IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer, + ObjectPositionBuffer *objectMetadataBuffer, uint32_t objIdx ) { uint32_t preUpdatePositionIdx; @@ -1424,7 +1466,7 @@ void readFromShorthandMetadata( IsmPositionProvider *positionProvider, void IsmPositionProvider_getNextFrame( IsmPositionProvider *positionProvider, - IVAS_REND_AudioObjectMetadataBuffer *objectMetadataBuffer ) + ObjectPositionBuffer *objectMetadataBuffer ) { uint32_t objIdx; @@ -1559,7 +1601,7 @@ static char *readNextMetadataChunkFrom( char *start_char, char *line, const char if ( token == NULL ) { /* Clear `line` from previous contents and return NULL */ - line[0] = '\0'; + clearString( line ); return NULL; } @@ -1614,6 +1656,20 @@ static int8_t parseUint32( const char *line, uint32_t *ret ) return 0; } +static int8_t parseInt32( const char *line, int32_t *ret ) +{ + char *ptr; + ptr = NULL; + + *ret = strtol( line, &ptr, 10 ); + if ( ptr == NULL || *ptr != '\0' ) + { + return -1; + } + + return 0; +} + static void parseOptionalInputValues( char *line, float *gain_dB ) @@ -1693,7 +1749,7 @@ static void parseObjectPosition( char *line, static void parseIsm( char *line, char *inDir, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, IsmPositionProvider *positionProvider, int32_t idx ) { @@ -1701,7 +1757,7 @@ static void parseIsm( uint32_t i; readNextMetadataChunk( line, "\n" ); - parseUint16( line, &inConfig->audioObjects[idx].inputChannelIndex ); + parseInt32( line, &inConfig->audioObjects[idx].inputChannelIndex ); --inConfig->audioObjects[idx].inputChannelIndex; /* Convert from 1-indexing */ readNextMetadataChunk( line, "\n" ); @@ -1710,8 +1766,8 @@ static void parseIsm( if ( parseUint32( line, &numberOfObjectPositionsToRead ) == 0 ) { positionProvider->numPositions[idx] = numberOfObjectPositionsToRead; - positionProvider->positions[idx] = count_calloc( numberOfObjectPositionsToRead, sizeof( IVAS_REND_AudioObjectPosition ) ); - positionProvider->positionDurations[idx] = count_calloc( numberOfObjectPositionsToRead, sizeof( uint16_t ) ); + positionProvider->positions[idx] = count_malloc( numberOfObjectPositionsToRead * sizeof( IVAS_REND_AudioObjectPosition ) ); + positionProvider->positionDurations[idx] = count_malloc( numberOfObjectPositionsToRead * sizeof( uint16_t ) ); for ( i = 0; i < numberOfObjectPositionsToRead; ++i ) { @@ -1736,42 +1792,40 @@ static void parseIsm( } static void parseSba( char *line, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, int32_t idx ) { uint8_t ambiOrder; readNextMetadataChunk( line, "\n" ); - parseUint8( line, &inConfig->ambisonicsBuses[idx].inputChannelIndex ); + parseInt32( line, &inConfig->ambisonicsBuses[idx].inputChannelIndex ); --inConfig->ambisonicsBuses[idx].inputChannelIndex; /* Convert from 1-indexing */ readNextMetadataChunk( line, "\n" ); parseUint8( line, &ambiOrder ); - inConfig->ambisonicsBuses[idx].ambisonicsConfig = ambisonicsOrderToEnum( ambiOrder ); + inConfig->ambisonicsBuses[idx].audioConfig = ambisonicsOrderToEnum( ambiOrder ); /* Read optional values */ parseOptionalInputValues( line, &inConfig->ambisonicsBuses[idx].gain_dB ); } static void parseMc( char *line, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, int32_t idx ) { - AUDIO_CONFIG cfg; - readNextMetadataChunk( line, "\n" ); - parseUint8( line, &inConfig->multiChannelBuses[idx].inputChannelIndex ); + parseInt32( line, &inConfig->multiChannelBuses[idx].inputChannelIndex ); --inConfig->multiChannelBuses[idx].inputChannelIndex; /* Convert from 1-indexing */ readNextMetadataChunk( line, "\n" ); - cfg = parseStrToAudioCfg( line ); - if ( cfg == AUDIO_CONFIG_LS_CUSTOM ) + IVAS_REND_AudioConfig cfg = parseAudioConfig( line ); + if ( cfg == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { parseCustomLayoutFile( line, &inConfig->inSetupCustom ); } else { - inConfig->multiChannelBuses[idx].speakerLayout = audioCfgToMcEnum( cfg ); + inConfig->multiChannelBuses[idx].audioConfig = cfg; } /* Read optional values */ @@ -1780,13 +1834,11 @@ static void parseMc( char *line, static void parseMasa( char *line, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, char *masaMetadataFilePath ) { - AUDIO_CONFIG cfg; - readNextMetadataChunk( line, "\n" ); - parseUint8( line, &inConfig->masaBus.inputChannelIndex ); + parseInt32( line, &inConfig->masaBus.inputChannelIndex ); --inConfig->masaBus.inputChannelIndex; /* Convert from 1-indexing */ readNextMetadataChunk( line, "\n" ); @@ -1798,8 +1850,7 @@ static void parseMasa( sprintf( line, "MASA%c", numTcs ); } - cfg = parseStrToAudioCfg( line ); - inConfig->masaBus.numTc = audioCfgToMasaEnum( cfg ); + inConfig->masaBus.audioConfig = parseAudioConfig( line ); readNextMetadataChunk( line, "\n" ); strcpy( masaMetadataFilePath, line ); @@ -1808,49 +1859,41 @@ static void parseMasa( parseOptionalInputValues( line, &inConfig->masaBus.gain_dB ); } -static void parseCustomLayoutFile( +static ivas_error parseCustomLayoutFile( char *filePath, - IVAS_LSSETUP_CUSTOM_HANDLE *hLsSetupCustom ) + IVAS_CUSTOM_LS_DATA *pLsSetupCustom ) { - int16_t i, is_planar; - LsCustomFileReader *hLsCustomReader = NULL; IVAS_CUSTOM_LS_DATA hLsCustomData; + ivas_error error; - IVAS_REND_OpenCustomLayout( hLsSetupCustom ); - CustomLsReader_open( filePath, &hLsCustomReader ); - if ( CustomLsFileReading( hLsCustomReader, &hLsCustomData ) != LS_CUSTOM_FILEREADER_NO_ERROR ) + if ( ( error = CustomLsReader_open( filePath, &hLsCustomReader ) ) != IVAS_ERR_OK ) { - fprintf( stderr, "Error while reading custom loudspeaker layout file\n" ); - exit( -1 ); + return error; } - ( *hLsSetupCustom )->num_spk = hLsCustomData.num_spk; - mvr2r( hLsCustomData.azimuth, ( *hLsSetupCustom )->ls_azimuth, hLsCustomData.num_spk ); - mvr2r( hLsCustomData.elevation, ( *hLsSetupCustom )->ls_elevation, hLsCustomData.num_spk ); - - /* Set planar flag */ - is_planar = 1; - for ( i = 0; i < hLsCustomData.num_spk; i++ ) + if ( CustomLsFileReading( hLsCustomReader, &hLsCustomData ) != LS_CUSTOM_FILEREADER_NO_ERROR ) { - if ( is_planar && ( *hLsSetupCustom )->ls_elevation[i] != 0.0f ) - { - is_planar = 0; - } + return error; } - ( *hLsSetupCustom )->is_planar_setup = is_planar; + + pLsSetupCustom->num_spk = hLsCustomData.num_spk; + mvr2r( hLsCustomData.azimuth, pLsSetupCustom->azimuth, hLsCustomData.num_spk ); + mvr2r( hLsCustomData.elevation, pLsSetupCustom->elevation, hLsCustomData.num_spk ); /* Loudspeaker LFE */ - ( *hLsSetupCustom )->num_lfe = hLsCustomData.num_lfe; - mvs2s( hLsCustomData.lfe_idx, ( *hLsSetupCustom )->lfe_idx, hLsCustomData.num_lfe ); + pLsSetupCustom->num_lfe = hLsCustomData.num_lfe; + mvs2s( hLsCustomData.lfe_idx, pLsSetupCustom->lfe_idx, hLsCustomData.num_lfe ); CustomLsReader_close( &hLsCustomReader ); + + return IVAS_ERR_OK; } static void parseMetadata( char *metadataString, char *inDir, - IVAS_REND_InputConfig *inConfig, + InputConfig *inConfig, IsmPositionProvider *positionProvider, char *masaMetadataFilePath ) { @@ -1965,7 +2008,7 @@ static void parseMetadata( } } -void parseConfigFile( char *path, char *audioFilePath, IVAS_REND_InputConfig *inConfig, IsmPositionProvider *positionProvider, char *masaMetadataFilePath ) +static void parseConfigFile( char *path, char *audioFilePath, InputConfig *inConfig, IsmPositionProvider *positionProvider, char *masaMetadataFilePath ) { uint32_t inAudioFilePathLen; char inAudioFilePath[FILENAME_MAX]; @@ -1975,7 +2018,7 @@ void parseConfigFile( char *path, char *audioFilePath, IVAS_REND_InputConfig *in char inDir[FILENAME_MAX]; char *lastSlash = NULL; - inMasaFilePath[0] = '\0'; + clearString( inMasaFilePath ); inAudioFilePathLen = FILENAME_MAX; mtdStrLen = RENDERER_MAX_METADATA_LENGTH; splitConfigFile( path, @@ -2011,6 +2054,34 @@ void parseConfigFile( char *path, char *audioFilePath, IVAS_REND_InputConfig *in } } +static void printSupportedAudioConfigs() +{ + uint32_t i; + const char *supportedFormats[] = { + "MONO", + "STEREO", + "5_1", + "5_1_2", + "5_1_4", + "7_1", + "7_1_4", + "Path to Custom Loudspeaker .txt file", + "FOA", + "HOA2", + "HOA3", + "ISMx (input only)", + "MASAx (input only)", + "BINAURAL (output only)", + "BINAURAL_ROOM (output only)", + }; + + fprintf( stdout, "Supported audio formats:\n" ); + for ( i = 0; i < sizeof( supportedFormats ) / sizeof( *supportedFormats ); i++ ) + { + fprintf( stdout, "%s\n", supportedFormats[i] ); + } +} + static void convert_backslash( char *str ) { int i, len; @@ -2032,8 +2103,6 @@ static void convert_backslash( char *str ) } #endif } - - return; } static void remove_cr( char *str ) @@ -2047,8 +2116,11 @@ static void remove_cr( char *str ) strcpy( pos, pos + 1 ); pos = strchr( pos, '\r' ); } +} - return; +static void clearString( char *str ) +{ + str[0] = '\0'; } /*--------------------------------------------------------------------------* diff --git a/lib_com/common_api_types.h b/lib_com/common_api_types.h index c27b7bc628..85ff059120 100644 --- a/lib_com/common_api_types.h +++ b/lib_com/common_api_types.h @@ -47,6 +47,9 @@ #define IVAS_MAX_NUM_OBJECTS 4 #define IVAS_MAX_OUTPUT_CHANNELS 16 #define IVAS_CLDFB_NO_CHANNELS_MAX ( 60 ) +#ifdef EXT_RENDERER +#define IVAS_MAX_INPUT_LFE_CHANNELS 4 +#endif /*----------------------------------------------------------------------------------* * Common API structures @@ -76,7 +79,7 @@ typedef struct _IVAS_ISM_METADATA float gainFactor; } IVAS_ISM_METADATA; -typedef struct _IVAS_QUATERNION +typedef struct { float w, x, y, z; @@ -124,7 +127,6 @@ typedef struct _IVAS_LS_CUSTOM_LAYOUT float elevation[IVAS_MAX_OUTPUT_CHANNELS]; int16_t num_lfe; int16_t lfe_idx[IVAS_MAX_OUTPUT_CHANNELS]; - } IVAS_CUSTOM_LS_DATA; typedef struct ivas_LS_setup_custom *IVAS_LSSETUP_CUSTOM_HANDLE; diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 43b60566dc..2d466e829d 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -110,7 +110,6 @@ typedef enum #ifdef EXT_RENDERER /* TODO tmu : temporary, or use something like IVAS_ENC input format */ AUDIO_CONFIG_MASA1, /* MASA1 */ AUDIO_CONFIG_MASA2, /* MASA2 */ - AUDIO_CONFIG_META, /* scene description */ #endif AUDIO_CONFIG_EXTERNAL /* external renderer */ @@ -1183,11 +1182,7 @@ typedef enum *----------------------------------------------------------------------------------*/ #define MC_LS_SETUP_BITS 3 /* number of bits for writing the MC LS configuration */ -#ifdef EXT_RENDERER -#define LS_SETUP_CONVERSION_NUM_MAPPINGS 37 /* number of mappings for LS setup conversion */ -#else #define LS_SETUP_CONVERSION_NUM_MAPPINGS 35 /* number of mappings for LS setup conversion */ -#endif typedef enum { @@ -1393,12 +1388,21 @@ typedef enum #define BINAURAL_COHERENCE_DIFFERENCE_BINS 9 /* Number of bins for direction-dependent diffuse-field binaural coherence */ +#ifdef EXT_RENDERER +#define HEADROT_ORDER 3 +#define HEADROT_SHMAT_DIM ( ( HEADROT_ORDER + 1 ) * ( HEADROT_ORDER + 1 ) ) +#define HEADROT_SHMAT_DIM2 ( HEADROT_SHMAT_DIM * HEADROT_SHMAT_DIM ) +#endif /*----------------------------------------------------------------------------------* * TD Binaural Object renderer *----------------------------------------------------------------------------------*/ +#ifdef EXT_RENDERER +#define MAX_NUM_TDREND_CHANNELS 16 /* max. number of channels in TD renderer (objects or loudspeaker channels) */ +#else #define MAX_NUM_TDREND_CHANNELS 11 /* max. number of channels in TD renderer (objects or loudspeaker channels) */ +#endif #define SFX_SPAT_BIN_MAX_NO_OF_OUTPUT_SAMPLES 288 /* 288 = 6 msec @ 48 kHz. */ #define HRTF_MODEL_N_SECTIONS 3 /* No. sections used in approximate evaluation of model */ diff --git a/lib_com/ivas_error.h b/lib_com/ivas_error.h index 58c45ee5ee..8168a6c6d6 100644 --- a/lib_com/ivas_error.h +++ b/lib_com/ivas_error.h @@ -59,7 +59,7 @@ typedef enum IVAS_ERR_INVALID_CICP_INDEX, IVAS_ERR_INVALID_BITRATE, IVAS_ERR_INVALID_MASA_CONFIG, - IVAS_ERR_TOO_MANY_OBJECT_INPUTS, + IVAS_ERR_TOO_MANY_INPUTS, IVAS_ERR_INDEX_OUT_OF_BOUNDS, IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, IVAS_ERR_INVALID_FEC_CONFIG, @@ -86,6 +86,13 @@ typedef enum IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH, IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT, IVAS_ERR_INVALID_MASA_FORMAT_METADATA_FILE, +#ifdef EXT_RENDERER + IVAS_ERR_NUM_CHANNELS_UNKNOWN, + IVAS_ERR_INVALID_CUSTOM_LS_LAYOUT, + IVAS_ERR_INVALID_INPUT_ID, + IVAS_ERR_WRONG_NUM_CHANNELS, + IVAS_ERR_INVALID_BUFFER_SIZE, +#endif /*----------------------------------------* * input data errors * @@ -125,17 +132,6 @@ typedef enum static inline const char *ivas_error_to_string( ivas_error error_code ) { - /* For error categories that are likely to still have many changes to - * specific error codes, return one string per category */ - if ( ( error_code & 0xF000 ) == 0x1000 ) - { - return "API error"; - } - if ( ( error_code & 0xF000 ) == 0x2000 ) - { - return "data error"; - } - /* For categories that are unlikely to change, use more specific strings */ switch ( error_code ) { @@ -147,6 +143,20 @@ static inline const char *ivas_error_to_string( ivas_error error_code ) return "Internal error"; case IVAS_ERR_INTERNAL_FATAL: return "Internal fatal error"; +#ifdef EXT_RENDERER + case IVAS_ERR_INVALID_SAMPLING_RATE: + return "Invalid sampling rate"; + case IVAS_ERR_INVALID_OUTPUT_FORMAT: + return "Invalid output format"; + case IVAS_ERR_INVALID_CUSTOM_LS_LAYOUT: + return "Invalid custom loudspeaker layout"; + case IVAS_ERR_INVALID_INPUT_ID: + return "Invalid input ID"; + case IVAS_ERR_WRONG_NUM_CHANNELS: + return "Wrong number of channels"; + case IVAS_ERR_INVALID_BUFFER_SIZE: + return "Invalid buffer size"; +#endif case IVAS_ERR_FAILED_FILE_OPEN: return "File open error"; case IVAS_ERR_FAILED_FILE_WRITE: @@ -161,6 +171,17 @@ static inline const char *ivas_error_to_string( ivas_error error_code ) break; } + /* For error categories that are likely to still have many changes to + * specific error codes, return one string per category */ + if ( ( error_code & 0xF000 ) == 0x1000 ) + { + return "API error"; + } + if ( ( error_code & 0xF000 ) == 0x2000 ) + { + return "data error"; + } + return "Unknown error"; } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index b5bcfd5fb1..d5dd9de613 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4505,17 +4505,33 @@ void ivas_binaural_add_LFE( ); void QuatToRotMat( +#ifdef EXT_RENDERER + const IVAS_QUATERNION quat, /* i : quaternion describing the rotation */ +#else const Quaternion quat, /* i : quaternion describing the rotation */ +#endif float Rmat[3][3] /* o : real-space rotation matrix for this rotation */ ); void Quat2Euler( +#ifdef EXT_RENDERER + const IVAS_QUATERNION quat, /* i : quaternion describing the rotation */ +#else const Quaternion quat, /* i : quaternion describing the rotation */ +#endif float *yaw, /* o : yaw */ float *pitch, /* o : pitch */ float *roll /* o : roll */ ); +#ifdef EXT_RENDERER +void SHrotmatgen( + float SHrotmat[SBA_NHARM_HOA3][SBA_NHARM_HOA3], /* o : SHD rotation matrix */ + float Rmat[3][3], /* i : real-space rotation matrix */ + const int16_t order /* i : ambisonics order */ +); +#endif + void rotateAziEle( float azi_in, /* i : output elevation */ float ele_in, /* i : input elevation */ @@ -4724,7 +4740,7 @@ ivas_error ivas_ls_custom_output_init( void ivas_ls_custom_setup( IVAS_OUTPUT_SETUP_HANDLE hOutSetup, /* o : IVAS output setup handle */ - const LSSETUP_CUSTOM_HANDLE hLsSetupCustom /* i : Custom loudspeaker setup handle */ + const LSSETUP_CUSTOM_STRUCT *hLsSetupCustom /* i : Custom loudspeaker setup handle */ ); diff --git a/lib_com/options.h b/lib_com/options.h old mode 100644 new mode 100755 index e3ead5c21a..f19a2579e6 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,7 @@ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ +// #define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ @@ -155,7 +155,6 @@ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ - #define EXT_RENDERER /* FhG: external renderer library and standalone application */ #define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 6d91bd23f4..40f0e361f0 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -562,6 +562,7 @@ ivas_error ivas_sba_dec_reconfigure( return error; } + /*-------------------------------------------------------------------* * ivas_sba_upmixer_renderer() * @@ -569,9 +570,9 @@ ivas_error ivas_sba_dec_reconfigure( *-------------------------------------------------------------------*/ void ivas_sba_upmixer_renderer( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ - float output[][L_FRAME48k], /* i/o: transport/output audio channels */ - const int16_t output_frame /* i : output frame length */ + Decoder_Struct *st_ivas, /* i/o: IVAS decoder struct */ + float output[][L_FRAME48k], /* i/o: transport/output audio channels */ + const int16_t output_frame /* i : output frame length */ ) { int16_t i, nchan_internal; diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index f653dcc010..d2d430bf55 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -40,6 +40,9 @@ #include "ivas_cnst.h" #include "ivas_stat_com.h" #include "ivas_stat_rend.h" +#ifdef EXT_RENDERER +#include "common_api_types.h" +#endif /*----------------------------------------------------------------------------------* @@ -1293,17 +1296,23 @@ typedef struct ivas_binaural_rendering_struct * Head tracking data structure *----------------------------------------------------------------------------------*/ +#ifdef EXT_RENDERER /* Quaternion type for head orientation */ typedef struct Quaternion_struct { float w, x, y, z; } Quaternion; +#endif typedef struct ivas_binaural_head_track_struct { int16_t num_quaternions; +#ifdef EXT_RENDERER + IVAS_QUATERNION Quaternions[MAX_PARAM_SPATIAL_SUBFRAMES]; +#else Quaternion Quaternions[MAX_PARAM_SPATIAL_SUBFRAMES]; +#endif float Rmat[3][3]; float Rmat_prev[3][3]; diff --git a/lib_enc/ivas_stereo_mdct_core_enc.c b/lib_enc/ivas_stereo_mdct_core_enc.c old mode 100644 new mode 100755 diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 0525c7c1db..e8df931141 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -374,7 +374,7 @@ ivas_error IVAS_ENC_ConfigureForObjects( if ( numObjects > MAX_NUM_OBJECTS ) { - return IVAS_ERR_TOO_MANY_OBJECT_INPUTS; + return IVAS_ERR_TOO_MANY_INPUTS; } st_ivas = hIvasEnc->st_ivas; @@ -1356,7 +1356,7 @@ const char *IVAS_ENC_GetErrorMessage( return "invalid bitrate"; case IVAS_ERR_INVALID_MASA_CONFIG: return "invalid MASA config"; - case IVAS_ERR_TOO_MANY_OBJECT_INPUTS: + case IVAS_ERR_TOO_MANY_INPUTS: return "too many object inputs provided"; case IVAS_ERR_INDEX_OUT_OF_BOUNDS: return "index out of bounds"; diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index 785678535f..555a183605 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -31,14 +31,18 @@ *******************************************************************************************************/ #include +#include #include "options.h" #include "prot.h" #include "ivas_prot.h" #include "ivas_cnst.h" #include "ivas_rom_rend.h" #include "ivas_stat_dec.h" -#include #include "ivas_rom_binaural_crend_head.h" +#ifdef EXT_RENDERER +#include "lib_rend.h" +#include "ivas_lib_rend_internal.h" +#endif #ifdef DEBUGGING #include "debug.h" #endif @@ -1139,3 +1143,850 @@ ivas_error ivas_crend_process( return IVAS_ERR_OK; } + +#ifdef EXT_RENDERER + +/*------------------------------------------------------------------------- + * ivas_rend_openCrend() + * + * Allocate and initialize crend renderer handle + *------------------------------------------------------------------------*/ + +ivas_error ivas_rend_openCrend( + CREND_WRAPPER *pCrend, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_AudioConfig outConfig, + int32_t output_Fs ) +{ + /* TODO tmu : Based on ivas_crend_open() - could be harmonized / refactored */ + int16_t i, subframe_length; + int16_t max_total_ir_len; + HRTFS_HANDLE hHrtf; + CREND_HANDLE hCrend; + ivas_error error; + + error = IVAS_ERR_OK; + subframe_length = (int16_t) ( output_Fs / FRAMES_PER_SEC ) / MAX_PARAM_SPATIAL_SUBFRAMES; + + if ( pCrend->hHrtfCrend == NULL ) + { + if ( ( error = ivas_rend_initCrend( pCrend, inConfig, outConfig, output_Fs ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + if ( ( hCrend = (CREND_HANDLE) count_malloc( sizeof( CREND_DATA ) ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for renderer handle" ); + } + + hCrend->lfe_delay_line = NULL; + +#ifdef FIX_CREND_CHANNELS + for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) +#else + for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif + { + hCrend->freq_buffer_re[i] = NULL; + hCrend->freq_buffer_im[i] = NULL; + } + + for ( i = 0; i < BINAURAL_CHANNELS; i++ ) + { + hCrend->prev_out_buffer[i] = NULL; + } + + hCrend->freq_buffer_re_diffuse = NULL; + hCrend->freq_buffer_im_diffuse = NULL; + hCrend->hReverb = NULL; + hCrend->delay_line_rw_index = 0; + hCrend->diffuse_delay_line_rw_index = 0; + hCrend->hTrack = NULL; + hCrend->m_fYaw = 0; + hCrend->m_fPitch = 0; + hCrend->m_fRoll = 0; + + hHrtf = pCrend->hHrtfCrend; + + if ( hHrtf != NULL ) + { + max_total_ir_len = hHrtf->max_num_iterations * subframe_length; + + for ( i = 0; i < hHrtf->max_num_ir; i++ ) + { + if ( ( hCrend->freq_buffer_re[i] = (float *) count_malloc( sizeof( float ) * max_total_ir_len ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend" ); + } + set_zero( hCrend->freq_buffer_re[i], max_total_ir_len ); + + if ( ( hCrend->freq_buffer_im[i] = (float *) count_malloc( sizeof( float ) * max_total_ir_len ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend" ); + } + set_zero( hCrend->freq_buffer_im[i], max_total_ir_len ); + } + + for ( i = 0; i < BINAURAL_CHANNELS; i++ ) + { + if ( ( hCrend->prev_out_buffer[i] = (float *) count_malloc( sizeof( float ) * subframe_length ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend" ); + } + set_zero( hCrend->prev_out_buffer[i], subframe_length ); + } + + max_total_ir_len = hHrtf->num_iterations_diffuse[0] * subframe_length; + + if ( max_total_ir_len > 0 ) + { + if ( ( hCrend->freq_buffer_re_diffuse = (float *) count_malloc( sizeof( float ) * max_total_ir_len ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend" ); + } + set_zero( hCrend->freq_buffer_re_diffuse, max_total_ir_len ); + + if ( ( hCrend->freq_buffer_im_diffuse = (float *) count_malloc( sizeof( float ) * max_total_ir_len ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend" ); + } + set_zero( hCrend->freq_buffer_im_diffuse, max_total_ir_len ); + } + else + { + hCrend->freq_buffer_re_diffuse = NULL; + hCrend->freq_buffer_im_diffuse = NULL; + } + + max_total_ir_len = (int16_t) ( hHrtf->latency_s * output_Fs + 0.5f ) + subframe_length; + if ( max_total_ir_len > 0 ) + { + if ( ( hCrend->lfe_delay_line = (float *) count_malloc( sizeof( float ) * max_total_ir_len ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Crend" ); + } + set_zero( hCrend->lfe_delay_line, max_total_ir_len ); + } + else + { + hCrend->lfe_delay_line = NULL; + } + + if ( false ) /* TODO tmu : check renderer headrotation flag */ + { + if ( ( hCrend->hTrack = (ivas_orient_trk_state_t *) count_malloc( sizeof( ivas_orient_trk_state_t ) ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Orientation tracking" ); + } + + ivas_orient_trk_Init( hCrend->hTrack ); + } + else + { + hCrend->hTrack = NULL; + } + + /* TODO tmu : implement renderConfig */ + // if ( ( ( st_ivas->hRenderConfig != NULL ) && st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) + // { + // if ( ( error = ivas_reverb_open( &( hCrend->hReverb ), st_ivas->intern_config, hHrtf, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) + // { + // return error; + // } + // } + // else + { + hCrend->hReverb = NULL; + } + + pCrend->binaural_latency_ns = (int32_t) ( pCrend->hHrtfCrend->latency_s * 1000000000.f ); + } + + pCrend->hCrend = hCrend; + return IVAS_ERR_OK; +} + +/*------------------------------------------------------------------------- + * initCrend_from_rom() + * + * Allocate and initialize crend renderer handle + *------------------------------------------------------------------------*/ + +ivas_error ivas_rend_initCrend( + CREND_WRAPPER *pCrend, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_AudioConfig outConfig, + int32_t output_Fs ) +{ + int16_t i, j, tmp; + int32_t nchan_in; + bool use_brir; + IVAS_REND_AudioConfigType inConfigType; + HRTFS_HANDLE hHrtf; + ivas_error error; + + inConfigType = getAudioConfigType( inConfig ); + hHrtf = pCrend->hHrtfCrend; + + /* Do all error checks up front so that the nested if later is easier */ + if ( inConfigType != IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED && inConfigType != IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Encountered unsupported input config in Crend" ); + } + if ( outConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL && outConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Encountered unsupported output type in Crend" ); + } + if ( hHrtf == NULL ) + { + if ( ivas_hrtf_open( &hHrtf ) != IVAS_ERR_OK ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Could not allocate memory for HRTF handle" ); + } + } + + /* set BRIR flag */ + use_brir = false; + /* TODO tmu : pass down render config handle */ + // if ((pCrend->hRenderConfig != NULL && pCrend->hRenderConfig->roomAcoustics.use_brir) || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + { + use_brir = true; + } + + + if ( ( error = getAudioConfigNumChannels( inConfig, &nchan_in ) ) != IVAS_ERR_OK ) + { + return error; + } + hHrtf->max_num_ir = nchan_in; + + if ( hHrtf->max_num_ir <= 0 ) + { + return IVAS_ERR_INTERNAL_FATAL; + } + + + if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) + { + hHrtf->max_num_ir -= 1; /* subtract LFE */ + hHrtf->gain_lfe = GAIN_LFE; + + if ( output_Fs == 48000 ) + { + if ( use_brir ) + { + hHrtf->latency_s = CRendBin_Combined_BRIR_latency_s_48kHz; + 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 + { + hHrtf->latency_s = CRendBin_Combined_HRIR_latency_s_48kHz; + hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_48kHz; + hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_48kHz; + } + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + if ( use_brir ) + { + 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]; + 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]; + } + 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]; + 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]; + } + } + } + else if ( output_Fs == 32000 ) + { + if ( use_brir ) + { + hHrtf->latency_s = CRendBin_Combined_BRIR_latency_s_32kHz; + 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 + { + hHrtf->latency_s = CRendBin_Combined_HRIR_latency_s_32kHz; + hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_32kHz; + hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_32kHz; + } + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + if ( use_brir ) + { + 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]; + 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]; + } + 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]; + 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]; + } + } + } + else if ( output_Fs == 16000 ) + { + if ( use_brir ) + { + hHrtf->latency_s = CRendBin_Combined_BRIR_latency_s_16kHz; + 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 + { + hHrtf->latency_s = CRendBin_Combined_HRIR_latency_s_16kHz; + hHrtf->max_num_iterations = CRendBin_Combined_HRIR_max_num_iterations_16kHz; + hHrtf->index_frequency_max_diffuse = CRendBin_Combined_HRIR_index_frequency_max_diffuse_16kHz; + } + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + if ( use_brir ) + { + 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]; + 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]; + } + 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]; + 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]; + } + } + } + else + { + return IVAS_ERROR( IVAS_ERR_INVALID_SAMPLING_RATE, "Encountered Unsupported sampling rate in Crend" ); + } + + for ( i = 0; i < hHrtf->max_num_ir; i++ ) + { + if ( inConfig == IVAS_REND_AUDIO_CONFIG_5_1 ) + { + tmp = channelIndex_CICP6[i]; + } + else if ( inConfig == IVAS_REND_AUDIO_CONFIG_7_1 ) + { + tmp = channelIndex_CICP12[i]; + } + else if ( inConfig == IVAS_REND_AUDIO_CONFIG_5_1_2 ) + { + tmp = channelIndex_CICP14[i]; + } + else if ( inConfig == IVAS_REND_AUDIO_CONFIG_5_1_4 ) + { + tmp = channelIndex_CICP16[i]; + } + else if ( inConfig == IVAS_REND_AUDIO_CONFIG_7_1_4 ) + { + tmp = channelIndex_CICP19[i]; + } + else + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: Channel configuration not specified!\n\n" ); + } + + if ( output_Fs == 48000 ) + { + if ( use_brir ) + { + hHrtf->inv_diffuse_weight[i] = CRendBin_Combined_BRIR_inv_diffuse_weight_48kHz[tmp]; + } + else + { + hHrtf->inv_diffuse_weight[i] = CRendBin_Combined_HRIR_inv_diffuse_weight_48kHz[tmp]; + } + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + if ( use_brir ) + { + 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]; + 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]; + } + else + { + 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]; + 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]; + } + } + } + else if ( output_Fs == 32000 ) + { + if ( use_brir ) + { + hHrtf->inv_diffuse_weight[i] = CRendBin_Combined_BRIR_inv_diffuse_weight_32kHz[tmp]; + } + else + { + hHrtf->inv_diffuse_weight[i] = CRendBin_Combined_HRIR_inv_diffuse_weight_32kHz[tmp]; + } + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + if ( use_brir ) + { + 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]; + 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]; + } + else + { + 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]; + 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]; + } + } + } + else if ( output_Fs == 16000 ) + { + if ( use_brir ) + { + hHrtf->inv_diffuse_weight[i] = CRendBin_Combined_BRIR_inv_diffuse_weight_16kHz[tmp]; + } + else + { + hHrtf->inv_diffuse_weight[i] = CRendBin_Combined_HRIR_inv_diffuse_weight_16kHz[tmp]; + } + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + if ( use_brir ) + { + 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]; + 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]; + } + else + { + 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]; + 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]; + } + } + } + else + { + return IVAS_ERROR( IVAS_ERR_INVALID_SAMPLING_RATE, "Encountered Unsupported sampling rate in Crend" ); + } + } + } + else if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS ) + { + if ( output_Fs == 48000 ) + { + hHrtf->latency_s = CRendBin_HOA3_HRIR_latency_s_48kHz; + hHrtf->max_num_iterations = CRendBin_HOA3_HRIR_max_num_iterations_48kHz; + hHrtf->index_frequency_max_diffuse = CRendBin_HOA3_HRIR_index_frequency_max_diffuse_48kHz; + + for ( i = 0; i < hHrtf->max_num_ir; i++ ) + { + hHrtf->inv_diffuse_weight[i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_48kHz[i]; + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + 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]; + 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]; + } + } + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + hHrtf->num_iterations_diffuse[j] = CRendBin_HOA3_HRIR_num_iterations_diffuse_48kHz[j]; + hHrtf->pIndex_frequency_max_diffuse[j] = CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_48kHz[j]; + hHrtf->pOut_to_bin_diffuse_re[j] = CRendBin_HOA3_HRIR_coeff_diffuse_re_48kHz[j]; + hHrtf->pOut_to_bin_diffuse_im[j] = CRendBin_HOA3_HRIR_coeff_diffuse_im_48kHz[j]; + } + } + else if ( output_Fs == 32000 ) + { + hHrtf->latency_s = CRendBin_HOA3_HRIR_latency_s_32kHz; + hHrtf->max_num_iterations = CRendBin_HOA3_HRIR_max_num_iterations_32kHz; + hHrtf->index_frequency_max_diffuse = CRendBin_HOA3_HRIR_index_frequency_max_diffuse_32kHz; + + for ( i = 0; i < hHrtf->max_num_ir; i++ ) + { + hHrtf->inv_diffuse_weight[i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_32kHz[i]; + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + 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]; + 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]; + } + } + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + hHrtf->num_iterations_diffuse[j] = CRendBin_HOA3_HRIR_num_iterations_diffuse_32kHz[j]; + hHrtf->pIndex_frequency_max_diffuse[j] = CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_32kHz[j]; + hHrtf->pOut_to_bin_diffuse_re[j] = CRendBin_HOA3_HRIR_coeff_diffuse_re_32kHz[j]; + hHrtf->pOut_to_bin_diffuse_im[j] = CRendBin_HOA3_HRIR_coeff_diffuse_im_32kHz[j]; + } + } + else if ( output_Fs == 16000 ) + { + hHrtf->latency_s = CRendBin_HOA3_HRIR_latency_s_16kHz; + hHrtf->max_num_iterations = CRendBin_HOA3_HRIR_max_num_iterations_16kHz; + hHrtf->index_frequency_max_diffuse = CRendBin_HOA3_HRIR_index_frequency_max_diffuse_16kHz; + + for ( i = 0; i < hHrtf->max_num_ir; i++ ) + { + hHrtf->inv_diffuse_weight[i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_16kHz[i]; + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + 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]; + 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]; + } + } + + for ( j = 0; j < BINAURAL_CHANNELS; j++ ) + { + hHrtf->num_iterations_diffuse[j] = CRendBin_HOA3_HRIR_num_iterations_diffuse_16kHz[j]; + hHrtf->pIndex_frequency_max_diffuse[j] = CRendBin_HOA3_HRIR_pIndex_frequency_max_diffuse_16kHz[j]; + hHrtf->pOut_to_bin_diffuse_re[j] = CRendBin_HOA3_HRIR_coeff_diffuse_re_16kHz[j]; + hHrtf->pOut_to_bin_diffuse_im[j] = CRendBin_HOA3_HRIR_coeff_diffuse_im_16kHz[j]; + } + } + else + { + return IVAS_ERROR( IVAS_ERR_INVALID_SAMPLING_RATE, "Encountered Unsupported sampling rate in Crend" ); + } + } + + else + { + return IVAS_ERROR( IVAS_ERR_INTERNAL, "Unsupported renderer type in Crend" ); + } + + pCrend->hHrtfCrend = hHrtf; + + return IVAS_ERR_OK; +} + +/*------------------------------------------------------------------------- + * ivas_crend_close() + * + * Deallocate Crend renderer handle + *------------------------------------------------------------------------*/ + +ivas_error ivas_rend_closeCrend( + CREND_WRAPPER *pCrend ) +{ + int16_t i; + + if ( pCrend->hHrtfCrend != NULL ) + { + ivas_hrtf_close( &pCrend->hHrtfCrend ); + } + + if ( pCrend->hCrend != NULL ) + { + +#ifdef FIX_CREND_CHANNELS + for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) +#else + for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) +#endif + { + if ( pCrend->hCrend->freq_buffer_re[i] != NULL ) + { + count_free( pCrend->hCrend->freq_buffer_re[i] ); + pCrend->hCrend->freq_buffer_re[i] = NULL; + } + if ( pCrend->hCrend->freq_buffer_im[i] != NULL ) + { + count_free( pCrend->hCrend->freq_buffer_im[i] ); + pCrend->hCrend->freq_buffer_im[i] = NULL; + } + } + + for ( i = 0; i < BINAURAL_CHANNELS; i++ ) + { + if ( pCrend->hCrend->prev_out_buffer[i] != NULL ) + { + count_free( pCrend->hCrend->prev_out_buffer[i] ); + pCrend->hCrend->prev_out_buffer[i] = NULL; + } + } + + if ( pCrend->hCrend->lfe_delay_line != NULL ) + { + count_free( pCrend->hCrend->lfe_delay_line ); + pCrend->hCrend->lfe_delay_line = NULL; + } + + if ( pCrend->hCrend->freq_buffer_re_diffuse != NULL ) + { + count_free( pCrend->hCrend->freq_buffer_re_diffuse ); + pCrend->hCrend->freq_buffer_re_diffuse = NULL; + } + + if ( pCrend->hCrend->freq_buffer_im_diffuse != NULL ) + { + count_free( pCrend->hCrend->freq_buffer_im_diffuse ); + pCrend->hCrend->freq_buffer_im_diffuse = NULL; + } + + if ( pCrend->hCrend->hTrack != NULL ) + { + count_free( pCrend->hCrend->hTrack ); + pCrend->hCrend->hTrack = NULL; + } + + ivas_reverb_close( &pCrend->hCrend->hReverb ); + + count_free( pCrend->hCrend ); + pCrend->hCrend = NULL; + } + + return IVAS_ERR_OK; +} + +/*-----------------------------------------------------------------------------------------* + * Function ivas_crend_process() + * + * Process call for IVAS Crend renderer + *-----------------------------------------------------------------------------------------*/ + +ivas_error ivas_rend_crendProcess( + const CREND_WRAPPER *pCrend, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_AudioConfig outConfig, + float output[][L_FRAME48k], /* i/o: input/output audio channels */ + int32_t output_Fs ) +{ + int16_t i, subframe_idx, output_frame; + int32_t nchan_out; + float pcm_tmp[MAX_TRANSPORT_CHANNELS][L_FRAME48k]; + AUDIO_CONFIG in_config; + IVAS_REND_AudioConfigType inConfigType; + ivas_error error; + + wmops_sub_start( "ivas_crend_process" ); + + in_config = getIvasAudioConfigFromRendAudioConfig( inConfig ); + inConfigType = getAudioConfigType( inConfig ); + getAudioConfigNumChannels( outConfig, &nchan_out ); + output_frame = (int16_t) ( output_Fs / FRAMES_PER_SEC ); + + for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) + { + if ( ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) || ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS ) ) + { + if ( ( error = ivas_rend_crendConvolver( pCrend, inConfig, outConfig, output, pcm_tmp, output_Fs, subframe_idx ) ) != IVAS_ERR_OK ) + { + return error; + } + + if ( pCrend->hCrend->hReverb != NULL ) + { + if ( ( error = ivas_reverb_process( pCrend->hCrend->hReverb, in_config, 1, output, pcm_tmp, subframe_idx ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } + else + { + return IVAS_ERR_INVALID_INPUT_FORMAT; + } + } + + /* move to output */ + for ( i = 0; i < nchan_out; i++ ) + { + mvr2r( pcm_tmp[i], output[i], output_frame ); + } + + return IVAS_ERR_OK; +} + +/*-----------------------------------------------------------------------------------------* + * Function ivas_crend_convolver() + * + * Convolver block + *-----------------------------------------------------------------------------------------*/ + +ivas_error ivas_rend_crendConvolver( + const CREND_WRAPPER *pCrend, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_AudioConfig outConfig, + float pcm_in[][L_FRAME48k], + float pcm_out[][L_FRAME48k], + int32_t output_Fs, + const int16_t i_ts ) +{ + int16_t i, j, k, m; + int16_t subframe_length, idx_in; + int16_t lfe_idx_in; + int16_t offset, offset_in, offset_diffuse; + int32_t nchan_in, nchan_out; + float *pIn; + float *pFreq_buf_re; + float *pFreq_buf_im; + float *pFreq_filt_re; + float *pFreq_filt_im; + float pOut[L_FRAME48k * 2]; + float tmp_out_re[L_FRAME48k], tmp_out_im[L_FRAME48k]; + + getAudioConfigNumChannels( inConfig, &nchan_in ); + getAudioConfigNumChannels( outConfig, &nchan_out ); + + subframe_length = (int16_t) ( output_Fs / FRAMES_PER_SEC ) / MAX_PARAM_SPATIAL_SUBFRAMES; + + lfe_idx_in = -1; + if ( getAudioConfigType( inConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) + { + if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + lfe_idx_in = LFE_CHANNEL; + } + else + { + assert( 0 && "Custom LS not supported in CRend" ); + } + } + + offset = pCrend->hCrend->delay_line_rw_index * subframe_length; /* subframe_length * ( pCrend->hHrtfCrend->max_num_iterations - 1 ); */ + offset_diffuse = pCrend->hCrend->diffuse_delay_line_rw_index * subframe_length; /* subframe_length *( pCrend->hHrtfCrend->num_iterations_diffuse[0] - 1 ); */ + + if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) + { + set_zero( &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse], subframe_length ); + set_zero( &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse], subframe_length ); + } + + i = 0; + for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) + { + pIn = &pcm_in[idx_in][i_ts * subframe_length]; + if ( idx_in != lfe_idx_in ) + { + if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) + { + pFreq_buf_re = &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse]; + pFreq_buf_im = &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse]; + pFreq_filt_re = &pCrend->hCrend->freq_buffer_re[i][offset]; + pFreq_filt_im = &pCrend->hCrend->freq_buffer_im[i][offset]; + + for ( k = 0; k < pCrend->hHrtfCrend->index_frequency_max_diffuse; k++ ) + { + pFreq_buf_re[k] += pFreq_filt_re[k] * pCrend->hHrtfCrend->inv_diffuse_weight[i]; + pFreq_buf_im[k] += pFreq_filt_im[k] * pCrend->hHrtfCrend->inv_diffuse_weight[i]; + } + } + + pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[i][offset]; + pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[i][offset]; + + ivas_mdft( pIn, pFreq_buf_re, pFreq_buf_im, subframe_length, subframe_length ); + i++; + } + } + + for ( j = 0; j < nchan_out; j++ ) + { + set_zero( tmp_out_re, subframe_length ); + set_zero( tmp_out_im, subframe_length ); + + i = 0; + for ( idx_in = 0; idx_in < nchan_in; idx_in++ ) + { + if ( idx_in != lfe_idx_in ) + { + offset = 0; + for ( m = 0; m < pCrend->hHrtfCrend->num_iterations[i][j]; m++ ) + { + offset_in = ( pCrend->hCrend->delay_line_rw_index + pCrend->hHrtfCrend->max_num_iterations - pCrend->hHrtfCrend->num_iterations[i][j] + m + 1 ); + offset_in = offset_in % ( pCrend->hHrtfCrend->max_num_iterations ); + offset_in = offset_in * subframe_length; + pFreq_buf_re = &pCrend->hCrend->freq_buffer_re[i][offset_in]; + pFreq_buf_im = &pCrend->hCrend->freq_buffer_im[i][offset_in]; + pFreq_filt_re = &pCrend->hHrtfCrend->pOut_to_bin_re[i][j][offset]; + pFreq_filt_im = &pCrend->hHrtfCrend->pOut_to_bin_im[i][j][offset]; + + for ( k = 0; k < pCrend->hHrtfCrend->pIndex_frequency_max[i][j][m]; k++ ) + { + tmp_out_re[k] += pFreq_buf_re[k] * pFreq_filt_re[k] - pFreq_buf_im[k] * pFreq_filt_im[k]; + tmp_out_im[k] += pFreq_buf_re[k] * pFreq_filt_im[k] + pFreq_buf_im[k] * pFreq_filt_re[k]; + } + offset = offset + k; + } + i++; + } + } + + offset = 0; + for ( m = 0; m < pCrend->hHrtfCrend->num_iterations_diffuse[j]; m++ ) + { + offset_diffuse = ( pCrend->hCrend->diffuse_delay_line_rw_index + m + 1 ); + offset_diffuse = offset_diffuse % pCrend->hHrtfCrend->num_iterations_diffuse[0]; + offset_diffuse = offset_diffuse * subframe_length; + pFreq_buf_re = &pCrend->hCrend->freq_buffer_re_diffuse[offset_diffuse]; + pFreq_buf_im = &pCrend->hCrend->freq_buffer_im_diffuse[offset_diffuse]; + pFreq_filt_re = &pCrend->hHrtfCrend->pOut_to_bin_diffuse_re[j][offset]; + pFreq_filt_im = &pCrend->hHrtfCrend->pOut_to_bin_diffuse_im[j][offset]; + + for ( k = 0; k < pCrend->hHrtfCrend->pIndex_frequency_max_diffuse[j][m]; k++ ) + { + tmp_out_re[k] += pFreq_buf_re[k] * pFreq_filt_re[k] - pFreq_buf_im[k] * pFreq_filt_im[k]; + tmp_out_im[k] += pFreq_buf_re[k] * pFreq_filt_im[k] + pFreq_buf_im[k] * pFreq_filt_re[k]; + } + offset = offset + k; + } + + ivas_imdft( tmp_out_re, tmp_out_im, pOut, subframe_length ); + + pFreq_buf_re = &pcm_out[j][i_ts * subframe_length]; + for ( k = 0; k < subframe_length; k++ ) + { + pFreq_buf_re[k] = pOut[k] + pCrend->hCrend->prev_out_buffer[j][k]; + pCrend->hCrend->prev_out_buffer[j][k] = pOut[k + subframe_length]; + } + } + + pCrend->hCrend->delay_line_rw_index++; + pCrend->hCrend->delay_line_rw_index = pCrend->hCrend->delay_line_rw_index % ( pCrend->hHrtfCrend->max_num_iterations ); + if ( pCrend->hHrtfCrend->num_iterations_diffuse[0] > 0 ) + { + pCrend->hCrend->diffuse_delay_line_rw_index++; + pCrend->hCrend->diffuse_delay_line_rw_index = pCrend->hCrend->diffuse_delay_line_rw_index % ( pCrend->hHrtfCrend->num_iterations_diffuse[0] ); + } + + return IVAS_ERR_OK; +} + +#endif diff --git a/lib_rend/ivas_lib_rend_internal.h b/lib_rend/ivas_lib_rend_internal.h new file mode 100644 index 0000000000..e82348484f --- /dev/null +++ b/lib_rend/ivas_lib_rend_internal.h @@ -0,0 +1,87 @@ +#include "ivas_error.h" +#include "lib_rend.h" +#include "ivas_stat_dec.h" + +#ifndef IVAS_LIB_REND_INTERNALS_H +#define IVAS_LIB_REND_INTERNALS_H + +typedef struct +{ + int8_t headRotEnabled; + IVAS_QUATERNION headPositions[RENDERER_HEAD_POSITIONS_PER_FRAME]; + float crossfade[L_FRAME48k / RENDERER_HEAD_POSITIONS_PER_FRAME]; +} IVAS_REND_HeadRotData; + +typedef struct +{ + int32_t binaural_latency_ns; + BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd; + TDREND_HRFILT_FiltSet_t *hHrtfTD; +} TDREND_WRAPPER; + +typedef struct +{ + int32_t binaural_latency_ns; + CREND_HANDLE hCrend; + HRTFS_HANDLE hHrtfCrend; +} CREND_WRAPPER; + +IVAS_REND_AudioConfigType getAudioConfigType( + IVAS_REND_AudioConfig config ); + +ivas_error getAudioConfigNumChannels( + IVAS_REND_AudioConfig config, + int32_t *numChannels ); + +AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( + IVAS_REND_AudioConfig config ); + +ivas_error ivas_rend_openCrend( + CREND_WRAPPER *pCrend, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_AudioConfig outConfig, + int32_t output_Fs ); + +ivas_error ivas_rend_initCrend( + CREND_WRAPPER *pCrend, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_AudioConfig outConfig, + int32_t output_Fs ); + +ivas_error ivas_rend_closeCrend( + CREND_WRAPPER *pCrend ); + +ivas_error ivas_rend_crendProcess( + const CREND_WRAPPER *pCrend, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_AudioConfig outConfig, + float output[][L_FRAME48k], /* i/o: input/output audio channels */ + int32_t output_Fs ); + +ivas_error ivas_rend_crendConvolver( + const CREND_WRAPPER *pCrend, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_AudioConfig outConfig, + float pcm_in[][L_FRAME48k], + float pcm_out[][L_FRAME48k], + int32_t output_Fs, + const int16_t i_ts ); + +ivas_error ivas_rend_TDObjRenderFrame( + const TDREND_WRAPPER *pTDRend, /* i : TD Renderer wrapper structure */ + const IVAS_REND_AudioConfig inConfig, /* i : Input audio configuration */ + const LSSETUP_CUSTOM_STRUCT *customLsInput, /* i : Input custom loudspeaker layout */ + const IVAS_REND_HeadRotData *headRotData, /* i : Input head positions */ + const IVAS_REND_AudioObjectPosition *currentPos, /* i : Object position */ + const int16_t output_frame, /* i : output frame length */ + const int32_t output_Fs, /* i : output sampling rate */ + float output[][L_FRAME48k] /* i/o: SCE channels / Binaural synthesis */ +); + +ivas_error ivas_rend_TDObjRendOpen( + TDREND_WRAPPER *pTDRend, + IVAS_REND_AudioConfig inConfig, + LSSETUP_CUSTOM_STRUCT *customLsInput, + int32_t outFs ); + +#endif diff --git a/lib_rend/ivas_ls_custom_dec.c b/lib_rend/ivas_ls_custom_dec.c index 1d61ba0641..28bd8c1dd8 100644 --- a/lib_rend/ivas_ls_custom_dec.c +++ b/lib_rend/ivas_ls_custom_dec.c @@ -79,8 +79,8 @@ ivas_error ivas_ls_custom_open( *-------------------------------------------------------------------------*/ void ivas_ls_custom_setup( - IVAS_OUTPUT_SETUP_HANDLE hOutSetup, /* o : IVAS output setup handle */ - const LSSETUP_CUSTOM_HANDLE hLsSetupCustom /* i : Custom loudspeaker setup handle */ + IVAS_OUTPUT_SETUP_HANDLE hOutSetup, /* o : IVAS output setup handle */ + const LSSETUP_CUSTOM_STRUCT *hLsSetupCustom /* i : Custom loudspeaker setup handle */ ) { hOutSetup->output_config = AUDIO_CONFIG_LS_CUSTOM; diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index b4c784edfa..4a297aba55 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -31,12 +31,16 @@ *******************************************************************************************************/ #include +#include #include "options.h" #include "prot.h" #include "ivas_prot.h" -#include #include "wmops.h" #include "ivas_rom_com.h" +#ifdef EXT_RENDERER +#include "lib_rend.h" +#include "ivas_lib_rend_internal.h" +#endif #ifdef DEBUGGING #include "debug.h" #endif @@ -259,8 +263,8 @@ void ObjRenderIVASFrame( Pos[1] = 0.0f; Pos[2] = 0.0f; - if ( - st_ivas->hHeadTrackData != NULL + if ( + st_ivas->hHeadTrackData != NULL #ifdef EXT_RENDERER && st_ivas->hDecoderConfig->Opt_Headrotation #endif @@ -633,3 +637,296 @@ static void TDREND_Update_listener_orientation( return; } #endif + +#ifdef EXT_RENDERER + +ivas_error ivas_rend_TDObjRendOpen( + TDREND_WRAPPER *pTDRend, + IVAS_REND_AudioConfig inConfig, + LSSETUP_CUSTOM_STRUCT *customLsInput, + int32_t outFs ) +{ + /* TODO tmu : Based on ivas_td_binaural_open() - could be harmonized / refactored + - review error handling + - review hHrtfTD init + */ + BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd; + TDREND_PosType_t PosType; + int16_t nS; + int16_t SrcInd[MAX_NUM_TDREND_CHANNELS]; + const float *ls_azimuth, *ls_elevation; + float Pos[3]; + float Dir[3]; + TDREND_DirAtten_t *DirAtten_p; + int32_t nchan_rend; + ivas_error error; + + error = IVAS_ERR_OK; + + if ( ( hBinRendererTd = count_malloc( sizeof( BINAURAL_TD_OBJECT_RENDERER ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for TD renderer\n" ) ); + } + if ( ( hBinRendererTd->TdRend_MixSpatSpec_p = count_malloc( sizeof( TDREND_MixSpatSpec_t ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for TD renderer\n" ) ); + } + if ( ( hBinRendererTd->DirAtten_p = count_malloc( sizeof( TDREND_DirAtten_t ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for TD renderer\n" ) ); + } + if ( ( hBinRendererTd->Listener_p = count_malloc( sizeof( TDREND_MIX_Listener_t ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for TD renderer\n" ) ); + } + + if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + getAudioConfigNumChannels( inConfig, &nchan_rend ); + if ( getAudioConfigType( inConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) + { + nchan_rend--; /* Skip LFE channel -- added to the others */ + } + } + else + { + nchan_rend = customLsInput->num_spk; + } + + hBinRendererTd->NumOfSrcs = 0; + hBinRendererTd->MaxSrcInd = -1; + + /* Mixer spatial setup */ + hBinRendererTd->TdRend_MixSpatSpec_p->UseCommonDistAttenModel = TRUE; + hBinRendererTd->TdRend_MixSpatSpec_p->DistAttenModel = 0; /* 0=Turned off, else use TDREND_DIST_ATTEN_MODEL_INV_DIST_CLAMPED */ + + TDREND_MIX_Init( hBinRendererTd, &pTDRend->hHrtfTD, hBinRendererTd->TdRend_MixSpatSpec_p, outFs ); + + /* Set the attenuation (or can set MixSpatSpec.DistAttenModel above) */ + TDREND_MIX_SetDistAttenModel( hBinRendererTd, TDREND_DIST_ATTEN_MODEL_INV_DIST_CLAMPED ); + + /* Add sources to module and mixer, headphones */ + PosType = TDREND_POSTYPE_ABSOLUTE; /* or TDREND_POSTYPE_RELATIVE_TO_LISTENER */ + + for ( nS = 0; nS < nchan_rend; nS++ ) + { + if ( ( error = TDREND_MIX_AddSrc( hBinRendererTd, &SrcInd[nS], PosType, outFs ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + if ( getAudioConfigType( inConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) + { + switch ( inConfig ) + { + case IVAS_REND_AUDIO_CONFIG_5_1: + ls_azimuth = ls_azimuth_CICP6; + ls_elevation = ls_elevation_CICP6; + break; + case IVAS_REND_AUDIO_CONFIG_7_1: + ls_azimuth = ls_azimuth_CICP12; + ls_elevation = ls_elevation_CICP12; + break; + case IVAS_REND_AUDIO_CONFIG_5_1_2: + ls_azimuth = ls_azimuth_CICP14; + ls_elevation = ls_elevation_CICP14; + break; + case IVAS_REND_AUDIO_CONFIG_5_1_4: + ls_azimuth = ls_azimuth_CICP16; + ls_elevation = ls_elevation_CICP16; + break; + case IVAS_REND_AUDIO_CONFIG_7_1_4: + ls_azimuth = ls_azimuth_CICP19; + ls_elevation = ls_elevation_CICP19; + break; + case IVAS_REND_AUDIO_CONFIG_LS_CUSTOM: + ls_azimuth = customLsInput->ls_azimuth; + ls_elevation = customLsInput->ls_elevation; + break; + default: + ls_azimuth = NULL; + ls_elevation = NULL; + } + + DirAtten_p = hBinRendererTd->DirAtten_p; + + for ( nS = 0; nS < nchan_rend; nS++ ) + { + /* Set source positions according to loudspeaker layout */ + Pos[0] = cosf( ls_elevation[nS] * PI_OVER_180 ) * cosf( ls_azimuth[nS] * PI_OVER_180 ); + Pos[1] = cosf( ls_elevation[nS] * PI_OVER_180 ) * sinf( ls_azimuth[nS] * PI_OVER_180 ); + Pos[2] = sinf( ls_elevation[nS] * PI_OVER_180 ); + Dir[0] = 1.0f; + Dir[1] = 0.0f; + Dir[2] = 0.0f; + + /* Source directivity info */ + DirAtten_p->ConeInnerAngle = 360.0f; + DirAtten_p->ConeOuterAngle = 360.0f; + DirAtten_p->ConeOuterGain = 1.0f; + + TDREND_MIX_SRC_SetPos( hBinRendererTd, nS, Pos ); + TDREND_MIX_SRC_SetDir( hBinRendererTd, nS, Dir ); + TDREND_MIX_SRC_SetPlayState( hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); + TDREND_MIX_SRC_SetDirAtten( hBinRendererTd, nS, DirAtten_p ); + } + } + + pTDRend->hBinRendererTd = hBinRendererTd; + + pTDRend->binaural_latency_ns = (int32_t) ( BINAURAL_TD_LATENCY_S * 1000000000.f ); + + + return IVAS_ERR_OK; +} + +/*---------------------------------------------------------------------* + * ObjRenderIVASFrame() + * + * Receives the current frames for the object streams, updates metadata + * and renders the current frame. + *---------------------------------------------------------------------*/ + +/*! r: TD Renderer result code. */ +ivas_error ivas_rend_TDObjRenderFrame( + const TDREND_WRAPPER *pTDRend, /* i : TD Renderer wrapper structure */ + const IVAS_REND_AudioConfig inConfig, /* i : Input audio configuration */ + const LSSETUP_CUSTOM_STRUCT *customLsInput, /* i : Input custom loudspeaker layout */ + const IVAS_REND_HeadRotData *headRotData, /* i : Input head positions */ + const IVAS_REND_AudioObjectPosition *currentPos, /* i : Object position */ + const int16_t output_frame, /* i : output frame length */ + const int32_t output_Fs, /* i : output sampling rate */ + float output[][L_FRAME48k] /* i/o: SCE channels / Binaural synthesis */ +) +{ + TDREND_DirAtten_t *DirAtten_p; + int16_t nS; + int16_t lfe_idx; + int16_t c_indx; + int32_t nchan_in; + float Pos[3]; + float Dir[3]; + float FrontVec[3]; + float UpVec[3]; + float Rmat[3][3]; + /* TODO tmu : pass down renderer config struct */ + // float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; + IVAS_REND_AudioConfigType inConfigType; + + inConfigType = getAudioConfigType( inConfig ); + if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + lfe_idx = LFE_CHANNEL; + getAudioConfigNumChannels( inConfig, &nchan_in ); + } + else + { + lfe_idx = ( customLsInput->num_lfe > 0 ) ? customLsInput->lfe_idx[0] : -1; + nchan_in = customLsInput->num_spk + customLsInput->num_lfe; + } + + DirAtten_p = pTDRend->hBinRendererTd->DirAtten_p; + + /* Update the listener's location/orientation */ + /* Listener at the origin */ + Pos[0] = 0.0f; + Pos[1] = 0.0f; + Pos[2] = 0.0f; + + if ( headRotData->headRotEnabled ) + { + /* Obtain head rotation matrix */ + QuatToRotMat( headRotData->headPositions[0], Rmat ); + /* Apply rotation matrix to looking vector [1;0;0] */ + FrontVec[0] = Rmat[0][0]; + FrontVec[1] = Rmat[0][1]; + FrontVec[2] = Rmat[0][2]; + /* Apply rotation matrix to up vector [0;0;1] */ + UpVec[0] = Rmat[2][0]; + UpVec[1] = Rmat[2][1]; + UpVec[2] = Rmat[2][2]; + } + else + { + /* Oriented with looking vector along the x axis */ + FrontVec[0] = 1.0f; + FrontVec[1] = 0.0f; + FrontVec[2] = 0.0f; + /* Oriented with up vector along the z axis */ + UpVec[0] = 0.0f; + UpVec[1] = 0.0f; + UpVec[2] = 1.0f; + } + + /* Set the listener position and orientation:*/ + TDREND_MIX_LIST_SetPos( pTDRend->hBinRendererTd, Pos ); + TDREND_MIX_LIST_SetOrient( pTDRend->hBinRendererTd, FrontVec, UpVec ); + + /* For each source, write the frame data to the source object*/ + c_indx = 0; + for ( nS = 0; nS < nchan_in; nS++ ) + { + if ( !( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED && nS == lfe_idx ) ) /* Skip LFE for MC */ + { + pTDRend->hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; + pTDRend->hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; + c_indx++; + } + + if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED ) + { + /* Update the source positions */ + /* Source position and direction */ + /* TODO tmu : currently will only work for one object at a time */ + Pos[0] = cosf( currentPos->elevation * PI_OVER_180 ) * cosf( currentPos->azimuth * PI_OVER_180 ); + Pos[1] = cosf( currentPos->elevation * PI_OVER_180 ) * sinf( currentPos->azimuth * PI_OVER_180 ); + Pos[2] = sinf( currentPos->elevation * PI_OVER_180 ); + Dir[0] = 1.0f; + Dir[1] = 0.0f; + Dir[2] = 0.0f; + + /* Source directivity info */ + DirAtten_p->ConeInnerAngle = 360.0f; + DirAtten_p->ConeOuterAngle = 360.0f; + DirAtten_p->ConeOuterGain = 1.0f; + + TDREND_MIX_SRC_SetPos( pTDRend->hBinRendererTd, nS, Pos ); + TDREND_MIX_SRC_SetDir( pTDRend->hBinRendererTd, nS, Dir ); + TDREND_MIX_SRC_SetDirAtten( pTDRend->hBinRendererTd, nS, DirAtten_p ); + TDREND_MIX_SRC_SetPlayState( pTDRend->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); + } + } + + /* TODO tmu : pass down renderer config struct */ + // if ( pTDRend->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ + // { + // if ( pTDRend->hRenderConfig->roomAcoustics.late_reverb_on ) + // { + // if ( pTDRend->ini_frame == 0 ) + // { + // ivas_reverb_open( &pTDRend->hCrend->hReverb, pTDRend->transport_config, NULL, pTDRend->hRenderConfig, pTDRend->hDecoderConfig->output_Fs ); + // } + // for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) + // { + // ivas_reverb_process( pTDRend->hCrend->hReverb, pTDRend->transport_config, 0, output, reverb_signal, subframe_idx ); + // } + // } + // } + + /* Call the renderer */ + TDREND_GetMix( pTDRend->hBinRendererTd, output, output_frame, output_Fs ); + + /* TODO tmu : pass down renderer config struct */ + // if ( pTDRend->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ + // { + // if ( pTDRend->hRenderConfig->roomAcoustics.late_reverb_on ) + // { + // /* add reverb to rendered signals */ + // v_add( reverb_signal[0], output[0], output[0], output_frame ); + // v_add( reverb_signal[1], output[1], output[1], output_frame ); + // } + // } + return IVAS_ERR_OK; +} +#endif diff --git a/lib_rend/ivas_rom_rend.c b/lib_rend/ivas_rom_rend.c index dd252a9969..100dded459 100644 --- a/lib_rend/ivas_rom_rend.c +++ b/lib_rend/ivas_rom_rend.c @@ -408,8 +408,13 @@ const float ls_conversion_cicpX_stereo[12][2] = const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp6[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {8, 6.0f}, +#else /* First row indicates the number of non-zero elements */ {8, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {7, 1.000000000f}, @@ -423,8 +428,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp6[] = const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp6[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {8, 6.0f}, +#else /* First row indicates the number of non-zero elements */ {8, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {7, 1.000000000f}, @@ -438,8 +448,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp6[] = const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp12[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {8, 8.0f}, +#else /* First row indicates the number of non-zero elements */ {8, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {9, 1.000000000f}, @@ -453,8 +468,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp12[] = const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp6[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {10, 6.0f}, +#else /* First row indicates the number of non-zero elements */ {10, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {7, 1.000000000f}, @@ -470,8 +490,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp6[] = const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp12[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {10, 8.0f}, +#else /* First row indicates the number of non-zero elements */ {10, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {9, 1.000000000f}, @@ -488,8 +513,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp12[] = const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp14[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {10, 8.0f}, +#else /* First row indicates the number of non-zero elements */ {10, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {9, 1.000000000f}, @@ -505,8 +535,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp14[] = const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp6[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {14, 6.0f}, +#else /* First row indicates the number of non-zero elements */ {14, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {7, 1.000000000f}, @@ -526,8 +561,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp6[] = const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp12[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {14, 8.0f}, +#else /* First row indicates the number of non-zero elements */ {14, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {9, 1.000000000f}, @@ -547,8 +587,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp12[] = const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp14[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {14, 8.0f}, +#else /* First row indicates the number of non-zero elements */ {14, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {9, 1.000000000f}, @@ -568,8 +613,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp14[] = const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp16[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {14, 10.0f}, +#else /* First row indicates the number of non-zero elements */ {14, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.000000000f}, {11, 1.000000000f}, @@ -590,8 +640,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp19_cicp16[] = /* Upmix matrices */ const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp14[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {8, 8.0f}, +#else /* First row indicates the number of non-zero elements */ {8, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.0f}, {9, 1.0f}, @@ -605,8 +660,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp14[] = const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp16[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {8, 10.0f}, +#else /* First row indicates the number of non-zero elements */ {8, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.0f}, {11, 1.0f}, @@ -620,8 +680,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp16[] = const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp19[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {8, 12.0f}, +#else /* First row indicates the number of non-zero elements */ {8, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.0f}, {13, 1.0f}, @@ -635,8 +700,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp12_cicp19[] = const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp19[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {8, 12.0f}, +#else /* First row indicates the number of non-zero elements */ {8, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.0f}, {13, 1.0f}, @@ -650,8 +720,13 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp14_cicp19[] = const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp19[] = { +#ifdef EXT_RENDERER + /* First row indicates the number of non-zero elements and the number of matrix columns */ + {10, 12.0f}, +#else /* First row indicates the number of non-zero elements */ {10, 0.0f}, +#endif /* Index of non-zero element, value of non-zero element*/ {0, 1.0f}, {13, 1.0f}, @@ -673,9 +748,6 @@ const LS_CONVERSION_MATRIX ls_conversion_cicp16_cicp19[] = const LS_CONVERSION_MAPPING ls_conversion_mapping[LS_SETUP_CONVERSION_NUM_MAPPINGS] = { /* Dowmix mappings - NULL is a special case for MONO / STEREO downmix */ -#ifdef EXT_RENDERER - {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_MONO, NULL}, -#endif {AUDIO_CONFIG_5_1, AUDIO_CONFIG_MONO, NULL}, {AUDIO_CONFIG_7_1, AUDIO_CONFIG_MONO, NULL}, {AUDIO_CONFIG_5_1_2, AUDIO_CONFIG_MONO, NULL}, @@ -703,9 +775,6 @@ const LS_CONVERSION_MAPPING ls_conversion_mapping[LS_SETUP_CONVERSION_NUM_MAPPIN {AUDIO_CONFIG_7_1_4, AUDIO_CONFIG_5_1_4, ls_conversion_cicp19_cicp16}, /* Upmix mappings - NULL implies a 1:1 upmix */ -#ifdef EXT_RENDERER - {AUDIO_CONFIG_MONO, AUDIO_CONFIG_STEREO, NULL}, -#endif {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_5_1, NULL}, {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_7_1, NULL}, {AUDIO_CONFIG_STEREO, AUDIO_CONFIG_5_1_2, NULL}, diff --git a/lib_rend/ivas_rom_rend.h b/lib_rend/ivas_rom_rend.h index 166e417692..aaf7fa7113 100644 --- a/lib_rend/ivas_rom_rend.h +++ b/lib_rend/ivas_rom_rend.h @@ -33,8 +33,8 @@ #ifndef IVAS_ROM_REND_H #define IVAS_ROM_REND_H -#include #include "options.h" +#include #ifdef DEBUGGING #include "debug.h" #endif diff --git a/lib_rend/ivas_rotation.c b/lib_rend/ivas_rotation.c index 49c937844c..372930616f 100644 --- a/lib_rend/ivas_rotation.c +++ b/lib_rend/ivas_rotation.c @@ -45,7 +45,7 @@ #endif #include "wmops.h" - +#ifndef EXT_RENDERER /*-----------------------------------------------------------------------* * Local Constants *-----------------------------------------------------------------------*/ @@ -54,13 +54,12 @@ #define HEADROT_SHMAT_DIM ( HEADROT_ORDER + 1 ) * ( HEADROT_ORDER + 1 ) #define HEADROT_SHMAT_DIM2 HEADROT_SHMAT_DIM *HEADROT_SHMAT_DIM - /*-----------------------------------------------------------------------* * Local Function prototypes *-----------------------------------------------------------------------*/ static void SHrotmatgen( float SHrotmat[HEADROT_SHMAT_DIM][HEADROT_SHMAT_DIM], float Rmat[3][3], const int16_t order ); - +#endif /*-----------------------------------------------------------------------* * ivas_headTrack_open() @@ -104,8 +103,12 @@ ivas_error ivas_headTrack_open( *---------------------------------------------------------------------------------*/ void QuatToRotMat( +#ifdef EXT_RENDERER + const IVAS_QUATERNION quat, /* i : quaternion describing the rotation */ +#else const Quaternion quat, /* i : quaternion describing the rotation */ - float Rmat[3][3] /* o : real-space rotation matrix for this rotation */ +#endif + float Rmat[3][3] /* o : real-space rotation matrix for this rotation */ ) { float s1, s2, s3, c1, c2, c3; @@ -173,10 +176,14 @@ void QuatToRotMat( *------------------------------------------------------------------------*/ void Quat2Euler( +#ifdef EXT_RENDERER + const IVAS_QUATERNION quat, /* i : quaternion describing the rotation */ +#else const Quaternion quat, /* i : quaternion describing the rotation */ - float *yaw, /* o : yaw */ - float *pitch, /* o : pitch */ - float *roll /* o : roll */ +#endif + float *yaw, /* o : yaw */ + float *pitch, /* o : pitch */ + float *roll /* o : roll */ ) { if ( quat.w != -3.0 ) @@ -927,7 +934,7 @@ static float SHrot_w( } } -static void SHrotmatgen( + void SHrotmatgen( float SHrotmat[HEADROT_SHMAT_DIM][HEADROT_SHMAT_DIM], /* o : rotation matrix in SHD */ float Rmat[3][3], /* i : real-space rotation matrix */ const int16_t order /* i : ambisonics order */ diff --git a/lib_rend/ivas_sba_rendering.c b/lib_rend/ivas_sba_rendering.c old mode 100644 new mode 100755 index f8790c16e3..ad098109b1 --- a/lib_rend/ivas_sba_rendering.c +++ b/lib_rend/ivas_sba_rendering.c @@ -153,7 +153,7 @@ void ivas_sba2mc_cldfb( float ImagBuffer[][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX], /* i/o: cldfb imag part */ const int16_t nb_channels_out, /* i : nb of output channels */ const int16_t nb_bands, /* i : nb of CLDFB bands to process */ - const float *hoa_dec_mtx /* i : hoa decoding mtx */ + const float *hoa_dec_mtx /* i : HOA decoding mtx */ ) { int16_t iBlock, iBand, n, m; @@ -239,7 +239,7 @@ int16_t ivas_sba_remapTCs( nchan_remapped++; if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { - assert( ( ( st_ivas->nchan_transport == 3 ) || ( st_ivas->nchan_transport == 5 ) || ( st_ivas->nchan_transport == 7 ) ) && "Number of channels must be odd for sba planar!" ); + assert( ( ( st_ivas->nchan_transport == 3 ) || ( st_ivas->nchan_transport == 5 ) || ( st_ivas->nchan_transport == 7 ) ) && "Number of channels must be odd for SBA planar!" ); } if ( nchan_remapped == 4 ) @@ -468,6 +468,8 @@ void ivas_ism2sba( return; } + + /*-------------------------------------------------------------------* * ivas_sba_linear_renderer() * @@ -480,7 +482,7 @@ ivas_error ivas_sba_linear_renderer( const int16_t nchan_in, /* i : number of input ambisonics channels */ const AUDIO_CONFIG output_config, /* i : output audio configuration */ const IVAS_OUTPUT_SETUP output_setup, /* i : output format setup */ - const float hoa_dec_mtx[] /* i : hoa decoding mtx */ + const float hoa_dec_mtx[] /* i : HOA decoding mtx */ ) { int16_t i; diff --git a/lib_rend/ivas_stat_rend.h b/lib_rend/ivas_stat_rend.h index 7c4841a08a..21b5e3be29 100644 --- a/lib_rend/ivas_stat_rend.h +++ b/lib_rend/ivas_stat_rend.h @@ -36,6 +36,7 @@ #include #include "ivas_cnst.h" +#define MAX_SPEAKERS 12 /* Max number of speakers (including LFE) in a channel-based config */ /*----------------------------------------------------------------------------------* * Loudspeaker Configuration Conversion structure @@ -90,4 +91,11 @@ typedef struct ivas_LS_setup_custom } LSSETUP_CUSTOM_STRUCT, *LSSETUP_CUSTOM_HANDLE; +/* Channel types in a channel-based config */ +typedef enum { + CHANNEL_TYPE_UNUSED = 0, + CHANNEL_TYPE_SPEAKER, + CHANNEL_TYPE_LFE +} ChannelType; + #endif /* IVAS_STAT_REND_H */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 9658883460..2499b34a39 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -31,3160 +31,3973 @@ *******************************************************************************************************/ #include "options.h" +#include "ivas_cnst.h" #include "lib_rend.h" #include "ivas_prot.h" #include "ivas_rom_com.h" #include "ivas_rom_dec.h" #include "ivas_rom_rend.h" +#include "ivas_lib_rend_internal.h" #include "prot.h" #include "wmops.h" #include #include +#include #include #include #include +/* Maximum buffer length (per channel) in samples. + * Keep this separate from L_FRAME48k in case we want to support different size later */ +#define MAX_BUFFER_LENGTH_PER_CHANNEL ( L_FRAME48k ) + +/* Maximum buffer length (total) in samples. */ +#define MAX_BUFFER_LENGTH ( MAX_BUFFER_LENGTH_PER_CHANNEL * MAX_INPUT_CHANNELS ) + +/* Frame size required when rendering to binaural */ +#define BINAURAL_RENDERING_FRAME_SIZE_MS 20 #define LIMITER_THRESHOLD ( 0.9988493699f * INT16_MAX ) /* -0.01 dBFS */ -/* Due to API of some rendering methods, the renderer has to use the decoder struct. - Only struct members relevant for rendering will be initialized, therefore typedef as "dummy" decoder struct */ -typedef Decoder_Struct DecoderDummy; +typedef float pan_vector[MAX_OUTPUT_CHANNELS]; +typedef float pan_matrix[MAX_INPUT_CHANNELS][MAX_OUTPUT_CHANNELS]; +typedef float rotation_gains[MAX_INPUT_CHANNELS][MAX_INPUT_CHANNELS]; +typedef float rotation_matrix[3][3]; + +/* EFAP wrapper to simplify writing panning gains to a vector that includes LFE channels */ +typedef struct +{ + EFAP_HANDLE hEfap; + IVAS_REND_AudioConfig speakerConfig; + const LSSETUP_CUSTOM_STRUCT *pCustomLsSetup; /* Pointer to main custom LS struct from renderer handle - doesn't need freeing */ +} EFAP_WRAPPER; + +/* Lightweight helper struct that gathers all information required for rendering + * any config to any other config. Used to simplify signatures of rendering functions. + * + * This struct should store ONLY CONST POINTERS to data existing elsewhere. + * Storing pointers instead of data itself ensures that no additional updates + * are required when any of these are changed in the renderer. Making the pointers + * const ensures that this data is only read, but not modified by the rendering functions. */ +typedef struct +{ + const int32_t *pOutSampleRate; + const IVAS_REND_AudioConfig *pOutConfig; + const LSSETUP_CUSTOM_STRUCT *pCustomLsOut; + const EFAP_WRAPPER *pEfapOutWrapper; + const IVAS_REND_HeadRotData *pHeadRotData; +} rendering_context; + +/* Common base for input structs */ +typedef struct +{ + IVAS_REND_AudioConfig inConfig; + IVAS_REND_InputId id; + IVAS_REND_AudioBuffer inputBuffer; + float bufferData[MAX_BUFFER_LENGTH]; + float gain; /* Linear, not in dB */ + rendering_context ctx; + int32_t numNewSamplesPerChannel; /* Used to keep track how much new audio was fed before rendering current frame */ +} input_base; + +typedef struct +{ + input_base base; + IVAS_REND_AudioObjectPosition currentPos; + IVAS_REND_AudioObjectPosition previousPos; + TDREND_WRAPPER tdRendWrapper; + CREND_WRAPPER crendWrapper; + rotation_matrix rot_mat_prev; +} input_ism; + +typedef struct +{ + input_base base; + + /* Full panning matrix. 1st index is input channel, 2nd index is output channel. + All LFE channels should be included, both for inputs and outputs */ + pan_matrix panGains; + + LSSETUP_CUSTOM_STRUCT customLsInput; + EFAP_WRAPPER efapInWrapper; + TDREND_WRAPPER tdRendWrapper; + CREND_WRAPPER crendWrapper; + rotation_gains rot_gains_prev; + IVAS_REND_LfeRouting lfeRouting; +} input_mc; + +typedef struct +{ + input_base base; + pan_matrix hoaDecMtx; + CREND_WRAPPER crendWrapper; + rotation_gains rot_gains_prev; +} input_sba; struct IVAS_REND { - int32_t sampleRate; + int32_t sampleRateOut; + + IVAS_LIMITER_HANDLE hLimiter; +#ifdef DEBUGGING + int32_t numClipping; /* Counter of clipped output samples */ +#endif + + input_ism inputsIsm[RENDERER_MAX_ISM_INPUTS]; + input_mc inputsMc[RENDERER_MAX_MC_INPUTS]; + input_sba inputsSba[RENDERER_MAX_SBA_INPUTS]; - int8_t isConfigured; /* flag */ - int8_t firstFrame; /* flag */ + IVAS_REND_AudioConfig outputConfig; + EFAP_WRAPPER efapOutWrapper; + IVAS_LSSETUP_CUSTOM_STRUCT customLsOut; + IVAS_REND_HeadRotData headRotData; +}; - /* I/O */ - IVAS_REND_InputConfig inConfig; - IVAS_REND_OutputConfig outConfig; +static int32_t limitRendererOutput( + IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ + float *output, /* i/o: I/O buffer */ + const int16_t output_frame, /* i : number of samples per channel in the buffer */ + const float threshold /* i : signal amplitude above which limiting starts to be applied */ +); - /* =========== Panning =========== */ - EFAP_HANDLE efapRenderer; +static IVAS_QUATERNION quaternionInit( void ) +{ + IVAS_QUATERNION q; + q.w = 1.0f; + q.x = q.y = q.z = 0.0f; + return q; +} - IVAS_REND_ObjPanInfo *objPanInfo; /* size: [numInObjects] */ +static float *getSmplPtr( IVAS_REND_AudioBuffer buffer, uint32_t chnlIdx, uint32_t smplIdx ) +{ + return buffer.data + chnlIdx * buffer.config.numSamplesPerChannel + smplIdx; +} - float ***speakerPanGains; /* size: [numInMc][numSpeakers][numOutChannels] */ +static void copyBufferTo2dArray( const IVAS_REND_AudioBuffer buffer, float array[MAX_OUTPUT_CHANNELS][L_FRAME48k] ) +{ + uint32_t smplIdx; + uint32_t chnlIdx; + const float *readPtr; - float *tmpGainBuffer; /* size: [numOutChannels] */ - float *noLfePanBuffer; /* size: [numOutChannels] */ - float *crossfade; /* size: [frameSize] */ - /* =============================== */ + readPtr = buffer.data; - /* Helpers */ - int16_t numOutChannels; /* Total number of output channels */ - int16_t numInChannels; /* Total number of input channels */ - int16_t numInChannelsObj; /* Total number of input channels of object inputs */ - int16_t numInChannelsAmbi; /* Total number of input channels of ambisonics inputs */ - int16_t numInChannelsMc; /* Total number of input channels of multichannel inputs */ - int16_t numInChannelsMasa; /* Total number of input channels of MASA inputs */ - float delayOffsetBuffer[MAX_OUTPUT_CHANNELS][NS2SA( 48000, IVAS_FB_DEC_DELAY_NS )]; /* Buffer for delay compensation */ + for ( chnlIdx = 0; chnlIdx < (uint32_t) buffer.config.numChannels; ++chnlIdx ) + { + for ( smplIdx = 0; smplIdx < (uint32_t) buffer.config.numSamplesPerChannel; ++smplIdx ) + { + array[chnlIdx][smplIdx] = *readPtr++; + } + } +} - /* For each channel of MC inputs mcPassThrough contains the corresponding - * output channel index if a passthrough is possible, otherwise contains -1 */ - int32_t *mcPassthrough; /* size: [numInChannelsMc] */ +static void accumulate2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME48k], IVAS_REND_AudioBuffer *buffer ) +{ + int32_t smplIdx, chnlIdx; + float *writePtr; - /* =========== LFE Handling =========== */ - /* Do not drop LFE when rendering to a layout that does not have - * an LFE channel - render LFE into other channels*/ - int8_t neverDropLfe; /* flag */ - int8_t forceBinLfeLpf; /* flag : force low-pass filtering for LFE channel in binaural rendering */ - float *lfePanGains; - ivas_filters_process_state_t lfeLpFilter; + writePtr = buffer->data; + for ( chnlIdx = 0; chnlIdx < buffer->config.numChannels; ++chnlIdx ) + { + for ( smplIdx = 0; smplIdx < buffer->config.numSamplesPerChannel; ++smplIdx ) + { + *writePtr++ += array[chnlIdx][smplIdx]; + } + } +} - /* =========== limiter handle =========== */ - IVAS_LIMITER_HANDLE hLimiter; +/*-------------------------------------------------------------------* + * limitRendererOutput() + * + * In-place saturation control for multichannel buffers with adaptive release time + * + * r: number of clipped output samples + *-------------------------------------------------------------------*/ +static int32_t limitRendererOutput( + IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ + float *output, /* i/o: I/O buffer */ + const int16_t output_frame, /* i : number of samples per channel in the buffer */ + const float threshold /* i : signal amplitude above which limiting starts to be applied */ +) +{ + int16_t i; + float **channels; + int16_t num_channels; + int32_t numClipping = 0; + + /* return early if given bad parameters */ + if ( hLimiter == NULL || output == NULL || output_frame <= 0 ) + { + return 0; + } + + channels = hLimiter->channel_ptrs; + num_channels = hLimiter->num_channels; + + for ( i = 0; i < num_channels; ++i ) + { + channels[i] = output + i * output_frame; + } + + limiter_process( hLimiter, output_frame, threshold, 0, NULL ); + + /* Apply clipping to buffer in case the limiter let through some samples > 1.0f */ + for ( i = 0; i < output_frame * num_channels; ++i ) + { #ifdef DEBUGGING - int32_t numClipping; /* Counter of clipped output samples */ + if ( output[i] < INT16_MIN || output[i] > INT16_MAX ) + { + ++numClipping; + } #endif - /* Ambisonics decoding matrix */ - float *ambi_dec_mtx; + output[i] = min( max( INT16_MIN, output[i] ), INT16_MAX ); + } - /* =========== MASA rendering handles/structs =========== */ - MASA_METADATA_FRAME masaMetadata; /* TODO @ Nokia: add more MASA related handles here if needed */ + return numClipping; +} - /* Dummy decoders for binaural rendering */ - DecoderDummy *decDummyAmbiBin; - DecoderDummy *decDummyObjBin; - DecoderDummy *decDummyMcBin; - DecoderDummy *decDummyMasaBin; +static AUDIO_CONFIG rendAudioConfigToIvasAudioConfig( IVAS_REND_AudioConfig rendConfig ) +{ + switch ( rendConfig ) + { + case IVAS_REND_AUDIO_CONFIG_MONO: + return AUDIO_CONFIG_MONO; + case IVAS_REND_AUDIO_CONFIG_STEREO: + return AUDIO_CONFIG_STEREO; + case IVAS_REND_AUDIO_CONFIG_5_1: + return AUDIO_CONFIG_5_1; + case IVAS_REND_AUDIO_CONFIG_7_1: + return AUDIO_CONFIG_7_1; + case IVAS_REND_AUDIO_CONFIG_5_1_2: + return AUDIO_CONFIG_5_1_2; + case IVAS_REND_AUDIO_CONFIG_5_1_4: + return AUDIO_CONFIG_5_1_4; + case IVAS_REND_AUDIO_CONFIG_7_1_4: + return AUDIO_CONFIG_7_1_4; + case IVAS_REND_AUDIO_CONFIG_LS_CUSTOM: + return AUDIO_CONFIG_LS_CUSTOM; + case IVAS_REND_AUDIO_CONFIG_FOA: + return AUDIO_CONFIG_FOA; + case IVAS_REND_AUDIO_CONFIG_HOA2: + return AUDIO_CONFIG_HOA2; + case IVAS_REND_AUDIO_CONFIG_HOA3: + return AUDIO_CONFIG_HOA3; + case IVAS_REND_AUDIO_CONFIG_OBJECT: + return AUDIO_CONFIG_OBA; + case IVAS_REND_AUDIO_CONFIG_BINAURAL: + return AUDIO_CONFIG_BINAURAL; + case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: + return AUDIO_CONFIG_BINAURAL_ROOM; + case IVAS_REND_AUDIO_CONFIG_MASA1: + return AUDIO_CONFIG_MASA1; + case IVAS_REND_AUDIO_CONFIG_MASA2: + return AUDIO_CONFIG_MASA2; + default: + break; + } - /* Head rotation data */ - int8_t enableHeadRotation; /* head rotation flag */ - IVAS_QUATERNION headRotationData[RENDERER_HEAD_POSITIONS_PER_FRAME]; + return AUDIO_CONFIG_INVALID; +} - /* Configurable rendering */ - int8_t rendererConfigEnabled; -}; +static ivas_error validateOutputAudioConfig( IVAS_REND_AudioConfig outConfig ) +{ + switch ( outConfig ) + { + case IVAS_REND_AUDIO_CONFIG_MONO: + case IVAS_REND_AUDIO_CONFIG_STEREO: + case IVAS_REND_AUDIO_CONFIG_5_1: + case IVAS_REND_AUDIO_CONFIG_7_1: + case IVAS_REND_AUDIO_CONFIG_5_1_2: + case IVAS_REND_AUDIO_CONFIG_5_1_4: + case IVAS_REND_AUDIO_CONFIG_7_1_4: + case IVAS_REND_AUDIO_CONFIG_LS_CUSTOM: + case IVAS_REND_AUDIO_CONFIG_FOA: + case IVAS_REND_AUDIO_CONFIG_HOA2: + case IVAS_REND_AUDIO_CONFIG_HOA3: + case IVAS_REND_AUDIO_CONFIG_BINAURAL: + case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: + return IVAS_ERR_OK; + default: + break; + } -/*---------------------------------------------------------------------* - * Prototypes - *---------------------------------------------------------------------*/ -/* clang-off */ -static void renderAmbiToAmbi( - const IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ); + return IVAS_ERR_INVALID_OUTPUT_FORMAT; +} -static void renderChannelsToAmbi( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ); +IVAS_REND_AudioConfigType getAudioConfigType( IVAS_REND_AudioConfig config ) +{ + /* By definition, config type is the second byte (from LSB) of IVAS_REND_AudioConfig enum. */ + return ( config & 0xFF00 ) >> 8; +} -static void renderObjectsToAmbi( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, - IVAS_REND_AudioBuffer outAudio ); +static ivas_error validateOutputSampleRate( int32_t sampleRate, IVAS_REND_AudioConfig outConfig ) +{ + if ( getAudioConfigType( outConfig ) != IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) + { + /* If no binaural rendering, any sampling rate is supported */ + return IVAS_ERR_OK; + } -static void renderMasaToAmbi( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ); + /* Otherwise rendering to binaural, support the same set as IVAS decoder */ + switch ( sampleRate ) + { + case 8000: + case 16000: + case 32000: + case 48000: + return IVAS_ERR_OK; + } -static void renderAmbiToChannels( - const IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ); + return IVAS_ERR_INVALID_SAMPLING_RATE; +} -static void renderChannelsToChannels( - const IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ); +ivas_error getAudioConfigNumChannels( IVAS_REND_AudioConfig config, int32_t *numChannels ) +{ + switch ( config ) + { + case IVAS_REND_AUDIO_CONFIG_MONO: + case IVAS_REND_AUDIO_CONFIG_OBJECT: + *numChannels = 1; + break; + case IVAS_REND_AUDIO_CONFIG_STEREO: + case IVAS_REND_AUDIO_CONFIG_BINAURAL: + case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: + *numChannels = 2; + break; + case IVAS_REND_AUDIO_CONFIG_FOA: + *numChannels = 4; + break; + case IVAS_REND_AUDIO_CONFIG_5_1: + *numChannels = 6; + break; + case IVAS_REND_AUDIO_CONFIG_7_1: + case IVAS_REND_AUDIO_CONFIG_5_1_2: + *numChannels = 8; + break; + case IVAS_REND_AUDIO_CONFIG_HOA2: + *numChannels = 9; + break; + case IVAS_REND_AUDIO_CONFIG_5_1_4: + *numChannels = 10; + break; + case IVAS_REND_AUDIO_CONFIG_7_1_4: + *numChannels = 12; + break; + case IVAS_REND_AUDIO_CONFIG_HOA3: + *numChannels = 16; + break; + default: + return IVAS_ERR_NUM_CHANNELS_UNKNOWN; + } -static void renderObjectsToChannels( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, - IVAS_REND_AudioBuffer outAudio ); + return IVAS_ERR_OK; +} -static void renderMasaToChannels( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ); +AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( IVAS_REND_AudioConfig config ) +{ + switch ( config ) + { + case IVAS_REND_AUDIO_CONFIG_MONO: + return AUDIO_CONFIG_MONO; + case IVAS_REND_AUDIO_CONFIG_STEREO: + return AUDIO_CONFIG_STEREO; + case IVAS_REND_AUDIO_CONFIG_BINAURAL: + return AUDIO_CONFIG_BINAURAL; + case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: + return AUDIO_CONFIG_BINAURAL_ROOM; + case IVAS_REND_AUDIO_CONFIG_5_1: + return AUDIO_CONFIG_5_1; + case IVAS_REND_AUDIO_CONFIG_7_1: + return AUDIO_CONFIG_7_1; + case IVAS_REND_AUDIO_CONFIG_5_1_2: + return AUDIO_CONFIG_5_1_2; + case IVAS_REND_AUDIO_CONFIG_5_1_4: + return AUDIO_CONFIG_5_1_4; + case IVAS_REND_AUDIO_CONFIG_7_1_4: + return AUDIO_CONFIG_7_1_4; + case IVAS_REND_AUDIO_CONFIG_FOA: + return AUDIO_CONFIG_FOA; + case IVAS_REND_AUDIO_CONFIG_HOA2: + return AUDIO_CONFIG_HOA2; + case IVAS_REND_AUDIO_CONFIG_HOA3: + return AUDIO_CONFIG_HOA3; + default: + return AUDIO_CONFIG_INVALID; + } -static void renderAmbiToBinaural( - const IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ); + return AUDIO_CONFIG_INVALID; +} -static void renderChannelsToBinaural( - const IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ); +static ivas_error initLimiter( IVAS_LIMITER_HANDLE *phLimiter, int32_t numChannels, int32_t sampleRate ) +{ + /* If re-initializing with unchanged values, return early */ + if ( *phLimiter != NULL && + ( *phLimiter )->num_channels == numChannels && + ( *phLimiter )->sampling_rate == sampleRate ) + { + return IVAS_ERR_OK; + } -static void renderObjectsToBinaural( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, - IVAS_REND_AudioBuffer outAudio ); + /* Support re-init: close if already allocated */ + if ( *phLimiter != NULL ) + { + ivas_limiter_close( phLimiter ); + } -static void renderMasaToBinaural( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ); + *phLimiter = ivas_limiter_open( (int16_t) numChannels, sampleRate ); + if ( *phLimiter == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Failed to open limiter" ); + } -static void renderSingleObjectToAmbi( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const uint32_t itemChnlIdx, /* Index of the item within input audio buffer */ - IVAS_REND_ObjPanInfo *prevPanInfo, - const IVAS_REND_AudioObjectPosition curFrmPos, - const float gain_lin, - IVAS_REND_AudioBuffer outAudio ); - -static void renderSingleObjectToChannels( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const uint32_t itemChnlIdx, /* Index of the item within input audio buffer */ - IVAS_REND_ObjPanInfo *prevPanInfo, - const IVAS_REND_AudioObjectPosition curFrmPos, - const float gain_lin, - IVAS_REND_AudioBuffer outAudio ); - -/* Multiply a single channel by a vector of gains and add result to corresponding output channels */ -static void applyChannelGainsAndAddToOutput( - const IVAS_REND_AudioBuffer inAudio, - const uint32_t itemChnlIdx, /* Index of the item within input audio buffer */ - const float *const gainsCurrent, /* Vector of gains for current frame, corresponding to output channels */ - const float *const gainsPrev, /* Vector of previously applied gains, used for interpolation. Set to NULL for no interpolation */ - const float gain_lin, /* Additional linear gain to be applied when mixing with output buffer */ - const float *const crossfade, - IVAS_REND_AudioBuffer outAudio ); + return IVAS_ERR_OK; +} + +static LSSETUP_CUSTOM_STRUCT defaultCustomLs( void ) +{ + LSSETUP_CUSTOM_STRUCT ls; + + /* Set mono by default. This simplifies initialization, + since output config is never in an undefined state. */ + ls.is_planar_setup = 1; + ls.num_spk = 1; + set_zero( ls.ls_azimuth, MAX_OUTPUT_CHANNELS ); + set_zero( ls.ls_elevation, MAX_OUTPUT_CHANNELS ); + ls.num_lfe = 0; + set_s( ls.lfe_idx, 0, MAX_OUTPUT_CHANNELS ); + ls.separate_ch_found = 0; + set_f( ls.separate_ch_gains, 0, MAX_OUTPUT_CHANNELS ); + + return ls; +} -static void prepareMcPanGains( - IVAS_REND_HANDLE st ); +static ivas_error getSpeakerAzimuths( IVAS_REND_AudioConfig config, const float **azimuths ) +{ + switch ( config ) + { + case IVAS_REND_AUDIO_CONFIG_MONO: + *azimuths = ls_azimuth_CICP1; + break; + case IVAS_REND_AUDIO_CONFIG_STEREO: + *azimuths = ls_azimuth_CICP2; + break; + case IVAS_REND_AUDIO_CONFIG_5_1: + *azimuths = ls_azimuth_CICP6; + break; + case IVAS_REND_AUDIO_CONFIG_7_1: + *azimuths = ls_azimuth_CICP12; + break; + case IVAS_REND_AUDIO_CONFIG_5_1_2: + *azimuths = ls_azimuth_CICP14; + break; + case IVAS_REND_AUDIO_CONFIG_5_1_4: + *azimuths = ls_azimuth_CICP16; + break; + case IVAS_REND_AUDIO_CONFIG_7_1_4: + *azimuths = ls_azimuth_CICP19; + break; + default: + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Unexpected audio config" ); + } -static void prepareLfeHandling( - IVAS_REND_HANDLE st ); + return IVAS_ERR_OK; +} -static void prepareMcPassthrough( - IVAS_REND_HANDLE st ); +static ivas_error getSpeakerElevations( IVAS_REND_AudioConfig config, const float **elevations ) +{ + switch ( config ) + { + case IVAS_REND_AUDIO_CONFIG_MONO: + *elevations = ls_elevation_CICP1; + break; + case IVAS_REND_AUDIO_CONFIG_STEREO: + *elevations = ls_elevation_CICP2; + break; + case IVAS_REND_AUDIO_CONFIG_5_1: + *elevations = ls_elevation_CICP6; + break; + case IVAS_REND_AUDIO_CONFIG_7_1: + *elevations = ls_elevation_CICP12; + break; + case IVAS_REND_AUDIO_CONFIG_5_1_2: + *elevations = ls_elevation_CICP14; + break; + case IVAS_REND_AUDIO_CONFIG_5_1_4: + *elevations = ls_elevation_CICP16; + break; + case IVAS_REND_AUDIO_CONFIG_7_1_4: + *elevations = ls_elevation_CICP19; + break; + default: + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Unexpected audio config" ); + } -static void passthroughChannel( - const IVAS_REND_AudioBuffer inAudio, - const uint32_t srcChnlIdx, - const uint32_t dstChnlIdx, - const float gain_lin, - IVAS_REND_AudioBuffer outAudio ); + return IVAS_ERR_OK; +} -static void getSpeakerGains( - const IVAS_REND_HANDLE st, - const float azi, - const float ele, - float *const spkGains ); +static ivas_error getAmbisonicsOrder( IVAS_REND_AudioConfig config, int16_t *order ) +{ + switch ( config ) + { + case IVAS_REND_AUDIO_CONFIG_FOA: + *order = 1; + break; + case IVAS_REND_AUDIO_CONFIG_HOA2: + *order = 2; + break; + case IVAS_REND_AUDIO_CONFIG_HOA3: + *order = 3; + break; + default: + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Unsupported audio config" ); + } -static int16_t getNumChannelsAmbisonics( - IVAS_REND_Ambisonics ambisonics ); + return IVAS_ERR_OK; +} -static int16_t getAmbisonicsOrder( - IVAS_REND_Ambisonics ambisonics ); +static ivas_error getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_AudioConfig config, int16_t *numNonLfeChannels ) +{ + switch ( config ) + { + case IVAS_REND_AUDIO_CONFIG_MONO: + *numNonLfeChannels = 1; + break; + case IVAS_REND_AUDIO_CONFIG_STEREO: + *numNonLfeChannels = 2; + break; + case IVAS_REND_AUDIO_CONFIG_5_1: + *numNonLfeChannels = 5; + break; + case IVAS_REND_AUDIO_CONFIG_5_1_2: + case IVAS_REND_AUDIO_CONFIG_7_1: + *numNonLfeChannels = 7; + break; + case IVAS_REND_AUDIO_CONFIG_5_1_4: + *numNonLfeChannels = 9; + break; + case IVAS_REND_AUDIO_CONFIG_7_1_4: + *numNonLfeChannels = 11; + break; + default: + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Unexpected audio config" ); + } -static int16_t getNumChannelsInSpeakerLayout( - IVAS_REND_SpeakerLayout layout ); + return IVAS_ERR_OK; +} -static int16_t getNumNonLfeChannelsInSpeakerLayout( - IVAS_REND_SpeakerLayout layout ); +static ivas_error getMcConfigValues( + IVAS_REND_AudioConfig inConfig, + LSSETUP_CUSTOM_STRUCT inCustomLs, + const float **azimuth, + const float **elevation, + int32_t *lfe_idx, + int32_t *is_planar ) +{ + int16_t i; -static const float *getSpeakerAzimuths( - IVAS_REND_SpeakerLayout layout ); + *lfe_idx = -1; + *is_planar = 1; + switch ( inConfig ) + { + case IVAS_REND_AUDIO_CONFIG_LS_CUSTOM: + *azimuth = (const float *) &inCustomLs.ls_azimuth; + *elevation = (const float *) &inCustomLs.ls_elevation; + if ( inCustomLs.num_lfe > 0 ) + { + *lfe_idx = inCustomLs.lfe_idx[0]; + } + for ( i = 0; i < inCustomLs.num_spk; i++ ) + { + if ( inCustomLs.ls_elevation[i] != 0 ) + { + *is_planar = 0; + break; + } + } + break; + case IVAS_REND_AUDIO_CONFIG_MONO: + case IVAS_REND_AUDIO_CONFIG_STEREO: + getSpeakerAzimuths( inConfig, azimuth ); + getSpeakerElevations( inConfig, elevation ); + break; + case IVAS_REND_AUDIO_CONFIG_5_1: + case IVAS_REND_AUDIO_CONFIG_7_1: + case IVAS_REND_AUDIO_CONFIG_5_1_2: + case IVAS_REND_AUDIO_CONFIG_5_1_4: + case IVAS_REND_AUDIO_CONFIG_7_1_4: + getSpeakerAzimuths( inConfig, azimuth ); + getSpeakerElevations( inConfig, elevation ); + *lfe_idx = LFE_CHANNEL; + *is_planar = ( inConfig == IVAS_REND_AUDIO_CONFIG_5_1 || inConfig == IVAS_REND_AUDIO_CONFIG_7_1 ) ? 1 : 0; + break; + default: + assert( !"Invalid speaker config" ); + return IVAS_ERR_WRONG_PARAMS; + } -static const float *getSpeakerElevations( - IVAS_REND_SpeakerLayout layout ); + return IVAS_ERR_OK; +} -static const uint32_t *getReorderedChannelIndices( - IVAS_REND_SpeakerLayout layout ); +static ivas_error initEfap( EFAP_WRAPPER *pEfapWrapper, IVAS_REND_AudioConfig outConfig, const LSSETUP_CUSTOM_STRUCT *pCustomLsOut ) +{ + ivas_error error; + const float *azimuths; + const float *elevations; + int16_t numNonLfeChannels; -static int32_t reverseChannelIndexMapping( int32_t originalChannelIndex, - const uint32_t *channelReorderingMap, - uint32_t numNonLfeSpeakers ); + if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + { + pEfapWrapper->speakerConfig = IVAS_REND_AUDIO_CONFIG_7_1_4; + } + else + { + pEfapWrapper->speakerConfig = outConfig; + } + pEfapWrapper->pCustomLsSetup = pCustomLsOut; -static ivas_error getHoaRenderMtx( - const IVAS_REND_OutputConfig outConfig, - float **decMtx, - uint32_t ambiOrder ); + /* If re-initializing, free existing EFAP handle. */ + if ( pEfapWrapper->hEfap != NULL ) + { + efap_free_data( &pEfapWrapper->hEfap ); + } -static void getHoaDecVecForAmbiChnl( - uint32_t ambiChnnlIdx, - const IVAS_REND_OutputConfig outConfig, - const float *decMtx, - float *decCoeffs ); + /* Only initialize EFAP handle if output config is channel-based */ + if ( getAudioConfigType( pEfapWrapper->speakerConfig ) != IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) + { + pEfapWrapper->hEfap = NULL; + return IVAS_ERR_OK; + } -static int32_t ivas_limiter_renderer( - IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ - float *output, /* i/o: I/O buffer */ - const int16_t output_frame, /* i : number of samples per channel in the buffer */ - const float threshold /* i : signal amplitude above which limiting starts to be applied */ -); + if ( outConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + if ( ( error = efap_init_data( &pEfapWrapper->hEfap, + pCustomLsOut->ls_azimuth, + pCustomLsOut->ls_elevation, + pCustomLsOut->num_spk, + EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else + { + if ( ( error = getSpeakerAzimuths( pEfapWrapper->speakerConfig, &azimuths ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = getSpeakerElevations( pEfapWrapper->speakerConfig, &elevations ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = getNumNonLfeChannelsInSpeakerLayout( pEfapWrapper->speakerConfig, &numNonLfeChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = efap_init_data( &pEfapWrapper->hEfap, + azimuths, + elevations, + numNonLfeChannels, + EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + { + return error; + } + } -static float dBToLin( const float gain_dB ); + return IVAS_ERR_OK; +} -static AUDIO_CONFIG mapRendLayoutToAudioConfig( - IVAS_REND_SpeakerLayout speakerLayout ); +static ivas_error getEfapGains( EFAP_WRAPPER efapWrapper, + const float azi, + const float ele, + pan_vector panGains ) +{ + pan_vector tmpPanGains; /* tmp pan gain buffer without LFE channels */ + float *readPtr; + int32_t i; + int16_t lfeCount; + int32_t numChannels; + ivas_error error; -static AUDIO_CONFIG mapRendAmbisonicsToAudioConfig( - IVAS_REND_Ambisonics ambisonics ); + /* EFAP returns an array of gains only for non-LFE speakers */ + efap_determine_gains( efapWrapper.hEfap, tmpPanGains, azi, ele, EFAP_MODE_EFAP ); -/* clang-on */ -/* ========================================================================== */ + /* Now copy to buffer that includes LFE channels */ + if ( efapWrapper.speakerConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + numChannels = efapWrapper.pCustomLsSetup->num_spk + efapWrapper.pCustomLsSetup->num_lfe; + readPtr = tmpPanGains; -static IVAS_QUATERNION quaternionInit( void ) + for ( i = 0, lfeCount = 0; i < numChannels; ++i ) + { + if ( lfeCount < efapWrapper.pCustomLsSetup->num_lfe && i == efapWrapper.pCustomLsSetup->lfe_idx[lfeCount] ) + { + panGains[i] = 0.0f; + ++lfeCount; + } + else + { + panGains[i] = *readPtr; + ++readPtr; + } + } + } + else + { + if ( ( error = getAudioConfigNumChannels( efapWrapper.speakerConfig, &numChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + + readPtr = tmpPanGains; + + for ( i = 0; i < numChannels; ++i ) + { + if ( i == LFE_CHANNEL ) + { + panGains[i] = 0.0f; + } + else + { + panGains[i] = *readPtr; + ++readPtr; + } + } + } + + return IVAS_ERR_OK; +} + +static void initHeadRotation( + IVAS_REND_HANDLE hIvasRend ) { - IVAS_QUATERNION q; - q.w = 1.0f; - q.x = q.y = q.z = 0.0f; - return q; + int16_t i, crossfade_len; + float tmp; + + /* Head rotation is enabled by default */ + hIvasRend->headRotData.headRotEnabled = 1; + + /* Initialize 5ms crossfade */ + crossfade_len = L_FRAME48k / RENDERER_HEAD_POSITIONS_PER_FRAME; + tmp = 1.f / ( crossfade_len - 1 ); + for ( i = 0; i < crossfade_len; i++ ) + { + hIvasRend->headRotData.crossfade[i] = i * tmp; + } + + /* Initialize with unit quaternions */ + for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) + { + hIvasRend->headRotData.headPositions[i] = quaternionInit(); + } } -IVAS_REND_HANDLE IVAS_REND_Open() +static void initRotMatrix( rotation_matrix rot_mat ) { int16_t i; - IVAS_REND_HANDLE st; - - st = (IVAS_REND_HANDLE) count_malloc( sizeof( struct IVAS_REND ) ); - st->isConfigured = 0; - st->efapRenderer = NULL; - - st->objPanInfo = NULL; - st->speakerPanGains = NULL; - st->tmpGainBuffer = NULL; - st->noLfePanBuffer = NULL; - st->crossfade = NULL; - st->mcPassthrough = NULL; - st->neverDropLfe = 0; - st->lfePanGains = NULL; - st->hLimiter = NULL; - st->ambi_dec_mtx = NULL; - st->decDummyAmbiBin = NULL; - st->decDummyMcBin = NULL; - st->decDummyObjBin = NULL; - st->decDummyMasaBin = NULL; - st->enableHeadRotation = 0; - st->rendererConfigEnabled = 0; - st->forceBinLfeLpf = 0; -#ifdef DEBUGGING - st->numClipping = 0; -#endif + /* Initialize rotation matrices */ + for ( i = 0; i < 3; i++ ) + { + set_zero( rot_mat[i], 3 ); + rot_mat[i][i] = 1.f; + } +} - for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) + +static void initRotGains( rotation_gains rot_gains ) +{ + int16_t i; + /* Set gains to passthrough */ + for ( i = 0; i < MAX_INPUT_CHANNELS; i++ ) + { + set_zero( rot_gains[i], MAX_INPUT_CHANNELS ); + rot_gains[i][i] = 1.f; + } +} + +static void initRendInputBase( input_base *inputBase, IVAS_REND_AudioConfig inConfig, IVAS_REND_InputId id, rendering_context rendCtx ) +{ + inputBase->inConfig = inConfig; + inputBase->id = id; + inputBase->gain = 1.0f; + inputBase->ctx = rendCtx; + inputBase->numNewSamplesPerChannel = 0; + + inputBase->inputBuffer.config.numSamplesPerChannel = 0; + inputBase->inputBuffer.config.numChannels = 0; + inputBase->inputBuffer.data = inputBase->bufferData; + + set_zero( inputBase->bufferData, MAX_BUFFER_LENGTH ); +} + +static IVAS_REND_AudioObjectPosition defaultObjectPosition( void ) +{ + IVAS_REND_AudioObjectPosition pos; + + pos.azimuth = 0.0f; + pos.elevation = 0.0f; + + return pos; +} + +static rendering_context getRendCtx( IVAS_REND_HANDLE hIvasRend ) +{ + rendering_context ctx; + + /* Note: when refactoring this, always take the ADDRESS of a member of the + * renderer struct, so that the context stores a POINTER to the member, even + * if the member is a pointer or handle itself. */ + ctx.pOutConfig = &hIvasRend->outputConfig; + ctx.pOutSampleRate = &hIvasRend->sampleRateOut; + ctx.pCustomLsOut = &hIvasRend->customLsOut; + ctx.pEfapOutWrapper = &hIvasRend->efapOutWrapper; + ctx.pHeadRotData = &hIvasRend->headRotData; + + return ctx; +} + +static TDREND_WRAPPER defaultTdRendWrapper( void ) +{ + TDREND_WRAPPER w; + + w.binaural_latency_ns = 0; + w.hBinRendererTd = NULL; + w.hHrtfTD = NULL; + + return w; +} + +static CREND_WRAPPER defaultCrendWrapper( void ) +{ + CREND_WRAPPER w; + + w.hCrend = NULL; + w.hHrtfCrend = NULL; + w.binaural_latency_ns = 0; + + return w; +} + +static ivas_error setRendInputActiveIsm( + void *input, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_InputId id ) +{ + ivas_error error; + rendering_context rendCtx; + IVAS_REND_AudioConfig outConfig; + input_ism *inputIsm; + + inputIsm = (input_ism *) input; + rendCtx = inputIsm->base.ctx; + outConfig = *rendCtx.pOutConfig; + + initRendInputBase( &inputIsm->base, inConfig, id, rendCtx ); + + inputIsm->currentPos = defaultObjectPosition(); + inputIsm->previousPos = defaultObjectPosition(); + inputIsm->crendWrapper = defaultCrendWrapper(); + inputIsm->tdRendWrapper = defaultTdRendWrapper(); + initRotMatrix( inputIsm->rot_mat_prev ); + + error = IVAS_ERR_OK; + if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL ) + { + error = ivas_rend_TDObjRendOpen( &inputIsm->tdRendWrapper, + inConfig, + NULL, + *rendCtx.pOutSampleRate ); + } + else if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + { + error = ivas_rend_openCrend( &inputIsm->crendWrapper, + IVAS_REND_AUDIO_CONFIG_7_1_4, + outConfig, + *rendCtx.pOutSampleRate ); + } + if ( error != IVAS_ERR_OK ) + { + return error; + } + + return IVAS_ERR_OK; +} + +static void clearInputIsm( input_ism *inputIsm ) +{ + rendering_context rendCtx; + + rendCtx = inputIsm->base.ctx; + + initRendInputBase( &inputIsm->base, IVAS_REND_AUDIO_CONFIG_UNKNOWN, 0, rendCtx ); + + /* Free input's internal handles */ + if ( inputIsm->crendWrapper.hCrend != NULL ) { - st->headRotationData[i] = quaternionInit(); + ivas_rend_closeCrend( &inputIsm->crendWrapper ); } + if ( inputIsm->tdRendWrapper.hBinRendererTd != NULL ) + { + ivas_td_binaural_close( &inputIsm->tdRendWrapper.hBinRendererTd ); + inputIsm->tdRendWrapper.hHrtfTD = NULL; + } +} + +static void copyLsConversionMatrixToPanMatrix( const LS_CONVERSION_MATRIX *lsConvMatrix, pan_matrix panMatrix ) +{ + int32_t i; + int32_t inCh, outCh; + int32_t numNonZeroGains; + int32_t numColumns; + + /* Index 0 is special and describes the following values */ + numNonZeroGains = lsConvMatrix[0].index; + numColumns = (int32_t) lsConvMatrix[0].value; + + for ( i = 1; i < numNonZeroGains + 1; ++i ) + { + inCh = lsConvMatrix[i].index / numColumns; + outCh = lsConvMatrix[i].index % numColumns; + + panMatrix[inCh][outCh] = lsConvMatrix[i].value; + } +} + +static void setZeroPanMatrix( pan_matrix panMatrix ) +{ + int32_t i; + + for ( i = 0; i < MAX_INPUT_CHANNELS; ++i ) + { + set_zero( panMatrix[i], MAX_OUTPUT_CHANNELS ); + } +} + +/* Note: this only sets non-zero elements, call setZeroPanMatrix() to init first. */ +static void fillIdentityPanMatrix( pan_matrix panMatrix ) +{ + int32_t i; - for ( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) + for ( i = 0; i < min( MAX_INPUT_CHANNELS, MAX_OUTPUT_CHANNELS ); ++i ) { - set_zero( st->delayOffsetBuffer[i], L_FRAME48k ); + panMatrix[i][i] = 1.0f; } +} + +static ivas_error initMcPanGainsWithIdentMatrix( input_mc *inputMc ) +{ + fillIdentityPanMatrix( inputMc->panGains ); - return st; + return IVAS_ERR_OK; } -static DecoderDummy *allocDecoderDummy( int32_t sampleRate, int16_t numOutChannels, const uint8_t enableHeadRotation, const uint8_t enableRenderConfig ) +static ivas_error initMcPanGainsWithConversionMapping( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +{ + AUDIO_CONFIG ivasConfigIn, ivasConfigOut; + int32_t i; + + ivasConfigIn = rendAudioConfigToIvasAudioConfig( inputMc->base.inConfig ); + ivasConfigOut = rendAudioConfigToIvasAudioConfig( outConfig ); + + /* Find conversion mapping for current I/O config pair. + * Stay with default panning matrix if conversion_matrix is NULL */ + for ( i = 0; i < LS_SETUP_CONVERSION_NUM_MAPPINGS; ++i ) + { + if ( ls_conversion_mapping[i].input_config == ivasConfigIn && + ls_conversion_mapping[i].output_config == ivasConfigOut ) + { + /* Mapping found with valid matrix - copy */ + if ( ls_conversion_mapping[i].conversion_matrix != NULL ) + { + copyLsConversionMatrixToPanMatrix( ls_conversion_mapping[i].conversion_matrix, inputMc->panGains ); + } + /* Mapping found with NULL matrix - use identity matrix */ + else + { + fillIdentityPanMatrix( inputMc->panGains ); + } + + return IVAS_ERR_OK; + } + } + + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Missing multichannel conversion mapping" ); +} + +static ivas_error initMcPanGainsWithEfap( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) { int16_t i; - DecoderDummy *decDummy; + int16_t numNonLfeInChannels; + int16_t inLfeChIdx, outChIdx; + const float *spkAzi, *spkEle; + ivas_error error; + + if ( inputMc->base.inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + if ( ( error = getNumNonLfeChannelsInSpeakerLayout( inputMc->base.inConfig, &numNonLfeInChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = getSpeakerAzimuths( inputMc->base.inConfig, &spkAzi ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = getSpeakerElevations( inputMc->base.inConfig, &spkEle ) ) != IVAS_ERR_OK ) + { + return error; + } + + inLfeChIdx = LFE_CHANNEL; + } + else + { + numNonLfeInChannels = inputMc->customLsInput.num_spk; + spkAzi = inputMc->customLsInput.ls_azimuth; + spkEle = inputMc->customLsInput.ls_elevation; + inLfeChIdx = -1; + if ( inputMc->customLsInput.num_lfe > 0 ) + { + inLfeChIdx = inputMc->customLsInput.lfe_idx[0]; + } + } + + for ( i = 0, outChIdx = 0; i < numNonLfeInChannels; ++i, ++outChIdx ) + { + if ( i == inLfeChIdx ) + { + ++outChIdx; + } + + if ( ( error = getEfapGains( *inputMc->base.ctx.pEfapOutWrapper, + spkAzi[i], + spkEle[i], + inputMc->panGains[outChIdx] ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + if ( outConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM && inLfeChIdx >= 0 ) + { + inputMc->panGains[inLfeChIdx][LFE_CHANNEL] = 1; + } + else if ( inputMc->base.ctx.pCustomLsOut->num_lfe > 0 && inLfeChIdx >= 0 ) + { + inputMc->panGains[inLfeChIdx][inputMc->base.ctx.pCustomLsOut->lfe_idx[0]] = 1; + } + + return IVAS_ERR_OK; +} + +static ivas_error getRendInputNumChannels( const void *rendInput, int32_t *numInChannels ) +{ + /* Using a void pointer for this function to be reusable for any input type (input_ism, input_mc, input_sba). + Assumptions: + - input_base is always the first member in the input struct + */ + + ivas_error error; + const input_base *pInputBase; + const input_mc *pInputMc; + + pInputBase = (const input_base *) rendInput; + + if ( pInputBase->inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + pInputMc = (const input_mc *) rendInput; + *numInChannels = pInputMc->customLsInput.num_spk + pInputMc->customLsInput.num_lfe; + } + else + { + if ( ( error = getAudioConfigNumChannels( pInputBase->inConfig, numInChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + return IVAS_ERR_OK; +} + +static ivas_error initMcPanGainsWithMonoOut( input_mc *inputMc ) +{ + int32_t i; + int32_t numInChannels; + ivas_error error; + + if ( ( error = getRendInputNumChannels( inputMc, &numInChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + + for ( i = 0; i < numInChannels; ++i ) + { + /* It's OK to also set gain 1 for LFE input channels here. + * Correct LFE handling will be applied within updateMcPanGains() */ + inputMc->panGains[i][0] = 1.f; + } + + return IVAS_ERR_OK; +} + +static ivas_error initMcPanGainsWithStereoLookup( input_mc *inputMc ) +{ + int32_t readIdx; + int32_t writeIdx; + bool skipSideSpeakers; + int32_t numInChannels; + ivas_error error; + + /* Special case - MONO input. + * Use gains for center CICP speaker and return early. */ + if ( inputMc->base.inConfig == IVAS_REND_AUDIO_CONFIG_MONO ) + { + inputMc->panGains[0][0] = ls_conversion_cicpX_stereo[2][0]; + inputMc->panGains[0][1] = ls_conversion_cicpX_stereo[2][1]; + return IVAS_ERR_OK; + } + + /* ls_conversion_cicpX_stereo contains gains for side speakers. + * These should be skipped with 5.1+X inputs. */ + skipSideSpeakers = false; + if ( inputMc->base.inConfig == IVAS_REND_AUDIO_CONFIG_5_1_2 || inputMc->base.inConfig == IVAS_REND_AUDIO_CONFIG_5_1_4 ) + { + skipSideSpeakers = true; + } + + if ( ( error = getRendInputNumChannels( inputMc, &numInChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + for ( readIdx = 0, writeIdx = 0; writeIdx < numInChannels; ++readIdx, ++writeIdx ) + { + if ( skipSideSpeakers && readIdx == 4 ) + { + /* Skip gains for side speakers in lookup table */ + readIdx += 2; + } + + inputMc->panGains[writeIdx][0] = ls_conversion_cicpX_stereo[readIdx][0]; + inputMc->panGains[writeIdx][1] = ls_conversion_cicpX_stereo[readIdx][1]; + } + + return IVAS_ERR_OK; +} + +/* Returns 1 (true) if configs A and B are equal, otherwise returns 0 (false). + * If both configs are custom LS layouts, layout details are compared to determine equality. */ +static bool configsAreEqual( + IVAS_REND_AudioConfig configA, + LSSETUP_CUSTOM_STRUCT customLsA, + IVAS_REND_AudioConfig configB, + LSSETUP_CUSTOM_STRUCT customLsB ) +{ + int32_t i; + + /* Both input and output are custom LS - compare structs */ + if ( configA == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM && configB == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + if ( customLsA.num_spk != customLsB.num_spk ) + { + return false; + } + if ( customLsA.num_lfe != customLsB.num_lfe ) + { + return false; + } + if ( customLsA.is_planar_setup != customLsB.is_planar_setup ) + { + return false; + } + for ( i = 0; i < customLsA.num_spk; ++i ) + { + /* Compare to nearest degree (hence the int cast) */ + if ( (int16_t) customLsA.ls_azimuth[i] != (int16_t) customLsB.ls_azimuth[i] || + (int16_t) customLsA.ls_elevation[i] != (int16_t) customLsB.ls_elevation[i] ) + { + return false; + } + } + for ( i = 0; i < customLsA.num_lfe; ++i ) + { + if ( customLsA.lfe_idx[i] != customLsB.lfe_idx[i] ) + { + return false; + } + } + + return true; + } + + /* Otherwise it's enough to compare config enums */ + return configA == configB; +} + +static ivas_error updateMcPanGainsForMcOut( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +{ + ivas_error error; - decDummy = count_malloc( sizeof( DecoderDummy ) ); - decDummy->hDecoderConfig = count_malloc( sizeof( DECODER_CONFIG ) ); - decDummy->hDecoderConfig->output_Fs = sampleRate; - decDummy->hDecoderConfig->nchan_out = numOutChannels; - decDummy->hDecoderConfig->Opt_Headrotation = 0; + /* "if" conditions below realize the following mapping: - decDummy->hBinRenderer = NULL; - decDummy->hEFAPdata = NULL; - decDummy->hHrtf = NULL; - decDummy->hHrtfTD = NULL; + If in == out, use identity matrix, otherwise follow the table: + +-----------+----------+---------------+-----------+--------------------+ + | in\out | MONO | STEREO | custom LS | other | + +-----------+----------+---------------+-----------+--------------------+ + | MONO | mono out | EFAP | EFAP | EFAP | + | custom LS | mono out | EFAP | EFAP | EFAP | + | other | mono out | stereo lookup | EFAP | conversion mapping | + +-----------+----------+---------------+-----------+--------------------+ + */ - if ( enableHeadRotation ) + if ( configsAreEqual( inputMc->base.inConfig, + inputMc->customLsInput, + outConfig, + *inputMc->base.ctx.pCustomLsOut ) ) { - decDummy->hHeadTrackData = count_malloc( sizeof( HEAD_TRACK_DATA ) ); - /* Initialise Rmat_prev to I, Rmat will be computed later */ - for ( i = 0; i < 3; i++ ) - { - set_zero( decDummy->hHeadTrackData->Rmat_prev[i], 3 ); - decDummy->hHeadTrackData->Rmat_prev[i][i] = 1.0f; - } - - decDummy->hHeadTrackData->num_quaternions = 0; - decDummy->hHeadTrackData->lrSwitchInterpVal = 0.0f; - decDummy->hHeadTrackData->lrSwitchedCurrent = 0; - decDummy->hHeadTrackData->lrSwitchedNext = 0; + error = initMcPanGainsWithIdentMatrix( inputMc ); } - else + else if ( outConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM || + inputMc->base.inConfig == IVAS_REND_AUDIO_CONFIG_MONO || + inputMc->base.inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { - decDummy->hHeadTrackData = NULL; + error = initMcPanGainsWithEfap( inputMc, outConfig ); } - - if ( enableRenderConfig ) + else if ( outConfig == IVAS_REND_AUDIO_CONFIG_MONO ) { - ivas_render_config_open( &decDummy->hRenderConfig ); - decDummy->hRenderConfig->roomAcoustics.late_reverb_on = 0; - decDummy->hRenderConfig->roomAcoustics.use_brir = 0; + error = initMcPanGainsWithMonoOut( inputMc ); } - else + else if ( outConfig == IVAS_REND_AUDIO_CONFIG_STEREO ) { - decDummy->hRenderConfig = NULL; + error = initMcPanGainsWithStereoLookup( inputMc ); + } + else /* default */ + { + error = initMcPanGainsWithConversionMapping( inputMc, outConfig ); } - - decDummy->renderer_type = RENDERER_DISABLE; - - return decDummy; -} - -static ivas_error initDecoderDummyForMasaToAmbi( DecoderDummy *decDummyMasaAmbi, IVAS_REND_InputConfig inConfig ) -{ - ivas_error error; - error = IVAS_ERR_OK; - - /* TODO @ Nokia: set relevant members of decDummy */ - (void) decDummyMasaAmbi; - (void) inConfig; return error; } -static ivas_error initDecoderDummyForMasaToChannels( DecoderDummy *decDummyMasaChannels, IVAS_REND_InputConfig inConfig ) +static ivas_error updateMcPanGainsForAmbiOut( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) { + int16_t ch_in, ch_out, lfeIdx; + int16_t numNonLfeInChannels, outAmbiOrder; + const float *spkAzi, *spkEle; ivas_error error; - error = IVAS_ERR_OK; - /* TODO @ Nokia: set relevant members of decDummy */ - (void) decDummyMasaChannels; - (void) inConfig; + if ( ( error = getAmbisonicsOrder( outConfig, &outAmbiOrder ) ) != IVAS_ERR_OK ) + { + return error; + } - return error; -} + if ( inputMc->base.inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + if ( ( error = getNumNonLfeChannelsInSpeakerLayout( inputMc->base.inConfig, &numNonLfeInChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = getSpeakerAzimuths( inputMc->base.inConfig, &spkAzi ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = getSpeakerElevations( inputMc->base.inConfig, &spkEle ) ) != IVAS_ERR_OK ) + { + return error; + } -static ivas_error initDecoderDummyForMasaToBinaural( DecoderDummy *decDummyMasaBin, IVAS_REND_InputConfig inConfig ) -{ - ivas_error error; - error = IVAS_ERR_OK; + for ( ch_in = 0, ch_out = 0; ch_in < numNonLfeInChannels; ++ch_in, ++ch_out ) + { + if ( ch_in == LFE_CHANNEL ) + { + ++ch_out; + } + ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], + (int16_t) spkEle[ch_in], + inputMc->panGains[ch_out], + outAmbiOrder ); + } + } + else + { + numNonLfeInChannels = inputMc->customLsInput.num_spk; + spkAzi = inputMc->customLsInput.ls_azimuth; + spkEle = inputMc->customLsInput.ls_elevation; + + for ( ch_in = 0, ch_out = 0; ch_in < numNonLfeInChannels; ++ch_in, ++ch_out ) + { + for ( lfeIdx = 0; lfeIdx < inputMc->customLsInput.num_lfe; ++lfeIdx ) + { + if ( inputMc->customLsInput.lfe_idx[lfeIdx] == ch_in ) + { + ++ch_out; + break; + } + } - /* TODO @ Nokia: set relevant members of decDummy */ - (void) decDummyMasaBin; - (void) inConfig; + ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], + (int16_t) spkEle[ch_in], + inputMc->panGains[ch_out], + outAmbiOrder ); + } + } - return error; + return IVAS_ERR_OK; } -static ivas_error initDecoderDummyForAmbiToBinaural( DecoderDummy *decDummyAmbiBin, IVAS_REND_InputConfig inConfig, IVAS_REND_BinauralFormat binauralFormat ) +static ivas_error updateMcPanGains( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) { + int32_t i; ivas_error error; - assert( inConfig.numAmbisonicsBuses == 1 && "For now only 1 ambisonics input is supported" ); - - error = IVAS_ERR_OK; - decDummyAmbiBin->ivas_format = SBA_FORMAT; - decDummyAmbiBin->renderer_type = binauralFormat == IVAS_REND_BINAURAL_ROOM ? RENDERER_BINAURAL_MIXER_CONV_ROOM : RENDERER_BINAURAL_MIXER_CONV; - decDummyAmbiBin->intern_config = decDummyAmbiBin->transport_config = mapRendAmbisonicsToAudioConfig( inConfig.ambisonicsBuses[0].ambisonicsConfig ); + /* Reset to all zeros - some functions below only write non-zero elements. */ + setZeroPanMatrix( inputMc->panGains ); - /* BINAURAL_ROOM requires intermediate rendering to 7_1_4 */ - if ( binauralFormat == IVAS_REND_BINAURAL_ROOM ) + error = IVAS_ERR_OK; + switch ( getAudioConfigType( outConfig ) ) + { + case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: + error = updateMcPanGainsForMcOut( inputMc, outConfig ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS: + error = updateMcPanGainsForAmbiOut( inputMc, outConfig ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL: + switch ( outConfig ) + { + case IVAS_REND_AUDIO_CONFIG_BINAURAL: + break; /* Do nothing */ + case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: + /* Prepare rendering to intermediate format */ + error = updateMcPanGainsForMcOut( inputMc, IVAS_REND_AUDIO_CONFIG_7_1_4 ); + break; + default: + return IVAS_ERR_INVALID_OUTPUT_FORMAT; + } + break; + default: + return IVAS_ERR_INVALID_OUTPUT_FORMAT; + } + /* Check error here to keep switch statement more compact */ + if ( error != IVAS_ERR_OK ) { - decDummyAmbiBin->intern_config = AUDIO_CONFIG_7_1_4; + return error; } - ivas_output_init( &decDummyAmbiBin->hIntSetup, decDummyAmbiBin->intern_config ); - ivas_output_init( &decDummyAmbiBin->hTransSetup, decDummyAmbiBin->transport_config ); - - if ( ( error = ivas_crend_open( decDummyAmbiBin ) ) != IVAS_ERR_OK ) + /* Copy LFE routing to pan gains array */ + if ( inputMc->base.inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { - return error; + for ( i = 0; i < inputMc->customLsInput.num_lfe; ++i ) + { + mvr2r( inputMc->lfeRouting.lfeOutputGains[i], inputMc->panGains[inputMc->customLsInput.lfe_idx[i]], IVAS_MAX_OUTPUT_CHANNELS ); + } + } + else + { + /* For code simplicity, always copy LFE gains. If config has no LFE, gains will be zero anyway. */ + mvr2r( inputMc->lfeRouting.lfeOutputGains[0], inputMc->panGains[LFE_CHANNEL], IVAS_MAX_OUTPUT_CHANNELS ); } - return error; + return IVAS_ERR_OK; } #ifndef FIX_I81 -/* Fixes initialization issues in TD renderer. Should get fixed properly soon. +/* Fixes initialization issues in TD renderer. Fix to be merged with branch. See issue: https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec/-/issues/81 */ -static void tmpFixBuggyTdBinRendInit(BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd) +static void tmpFixBuggyTdBinRendInit( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ) { int32_t i, j; - for (i=0; i < hBinRendererTd->NumOfSrcs; ++i) + for ( i = 0; i < hBinRendererTd->NumOfSrcs; ++i ) { - for (j=0; j < SPAT_BIN_MAX_INPUT_CHANNELS; ++j) + for ( j = 0; j < SPAT_BIN_MAX_INPUT_CHANNELS; ++j ) { hBinRendererTd->Sources[i]->SrcRend_p->SfxSpatBin_p[j].LeftFilter_p = NULL; hBinRendererTd->Sources[i]->SrcRend_p->SfxSpatBin_p[j].LeftFilterIncr_p = NULL; hBinRendererTd->Sources[i]->SrcRend_p->SfxSpatBin_p[j].RightFilter_p = NULL; hBinRendererTd->Sources[i]->SrcRend_p->SfxSpatBin_p[j].RightFilterIncr_p = NULL; - } + } } } #endif -static ivas_error initDecoderDummyForObjToBinaural( DecoderDummy *decDummyObjBin, IVAS_REND_InputConfig inConfig, IVAS_REND_BinauralFormat binauralFormat ) +static ivas_error initMcBinauralRendering( + input_mc *inputMc, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_AudioConfig outConfig ) { ivas_error error; - int32_t n; - - assert( inConfig.numAudioObjects <= MAX_NUM_OBJECTS && "IVAS decoder is used for binaural rendering, which limits number of objects" ); - - error = IVAS_ERR_OK; - - decDummyObjBin->ivas_format = ISM_FORMAT; - decDummyObjBin->nSCE = inConfig.numAudioObjects; - decDummyObjBin->nchan_transport = inConfig.numAudioObjects; + int32_t outSampleRate; - for ( n = 0; n < inConfig.numAudioObjects; ++n ) + /* check if re-initialization */ + if ( inputMc->tdRendWrapper.hBinRendererTd != NULL ) { - decDummyObjBin->hIsmMetaData[n] = count_malloc( sizeof( ISM_METADATA_FRAME ) ); + ivas_td_binaural_close( &inputMc->tdRendWrapper.hBinRendererTd ); + inputMc->tdRendWrapper.hHrtfTD = NULL; } - for ( n = inConfig.numAudioObjects; n < MAX_NUM_OBJECTS; ++n ) + if ( inputMc->crendWrapper.hCrend != NULL ) { - decDummyObjBin->hIsmMetaData[n] = NULL; + ivas_rend_closeCrend( &inputMc->crendWrapper ); } - /* BINAURAL_ROOM requires intermediate rendering to 7_1_4 */ - if ( binauralFormat == IVAS_REND_BINAURAL_ROOM ) - { - decDummyObjBin->hBinRendererTd = NULL; - decDummyObjBin->renderer_type = RENDERER_BINAURAL_MIXER_CONV_ROOM; - decDummyObjBin->intern_config = AUDIO_CONFIG_7_1_4; - ivas_output_init( &decDummyObjBin->hIntSetup, decDummyObjBin->intern_config ); + outSampleRate = *inputMc->base.ctx.pOutSampleRate; + + /* TODO tmu : needs review allocate both renderers; needed if headrotation is toggled so the renderer can be switched */ + // bool initTDRend; + // initTDRend = false; + // if ( outConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + // { + // if ( inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + // { + // initTDRend = true; + // } + // else if ( ( inConfig == IVAS_REND_AUDIO_CONFIG_5_1 || inConfig == IVAS_REND_AUDIO_CONFIG_7_1 ) && + // ( inputMc->base.ctx.pHeadRotData->headRotEnabled ) ) + // { + // initTDRend = true; + // } + // } - if ( ( error = ivas_crend_open( decDummyObjBin ) != IVAS_ERR_OK ) ) + // if ( initTDRend ) + { + if ( ( error = ivas_rend_TDObjRendOpen( &inputMc->tdRendWrapper, + inConfig, + &inputMc->customLsInput, + outSampleRate ) ) != IVAS_ERR_OK ) { return error; } +#ifndef FIX_I81 + tmpFixBuggyTdBinRendInit( inputMc->tdRendWrapper.hBinRendererTd ); +#endif } - else + { - decDummyObjBin->hCrend = NULL; - decDummyObjBin->renderer_type = RENDERER_BINAURAL_OBJECTS_TD; - if ( ( error = ivas_td_binaural_open( decDummyObjBin ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, + ( inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) ? IVAS_REND_AUDIO_CONFIG_7_1_4 : inConfig, + outConfig, + outSampleRate ) ) != IVAS_ERR_OK ) { return error; } -#ifndef FIX_I81 - tmpFixBuggyTdBinRendInit(decDummyObjBin->hBinRendererTd); -#endif } return error; } -static ivas_error initDecoderDummyForMcToBinaural( DecoderDummy *decDummyMcBin, IVAS_REND_InputConfig inConfig, IVAS_REND_BinauralFormat binauralFormat, const uint8_t enableHeadRotation ) +static IVAS_REND_LfeRouting defaultLfeRouting( + IVAS_REND_AudioConfig inConfig, + LSSETUP_CUSTOM_STRUCT customLsIn, + IVAS_REND_AudioConfig outConfig, + LSSETUP_CUSTOM_STRUCT customLsOut ) { - ivas_error error; - IVAS_REND_SpeakerLayout spkLayout; - - assert( inConfig.numMultiChannelBuses == 1 && "For now supporting one multichannel input" ); - - error = IVAS_ERR_OK; - - decDummyMcBin->ivas_format = MC_FORMAT; - decDummyMcBin->mc_mode = MC_MODE_MCT; - - spkLayout = inConfig.multiChannelBuses[0].speakerLayout; - decDummyMcBin->intern_config = decDummyMcBin->transport_config = mapRendLayoutToAudioConfig( spkLayout ); + int32_t i; + IVAS_REND_LfeRouting routing; - if ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) - { - decDummyMcBin->nchan_transport = inConfig.inSetupCustom->num_spk + inConfig.inSetupCustom->num_lfe; + /* Set all output gains to zero, then route each input LFE consecutively to the next available output LFE. */ - ivas_ls_custom_setup( &decDummyMcBin->hIntSetup, inConfig.inSetupCustom ); - ivas_ls_custom_setup( &decDummyMcBin->hTransSetup, inConfig.inSetupCustom ); - } - else + for ( i = 0; i < IVAS_MAX_INPUT_LFE_CHANNELS; ++i ) { - decDummyMcBin->nchan_transport = getNumChannelsInSpeakerLayout( spkLayout ); - - ivas_output_init( &decDummyMcBin->hIntSetup, decDummyMcBin->intern_config ); - ivas_output_init( &decDummyMcBin->hTransSetup, decDummyMcBin->transport_config ); + set_zero( routing.lfeOutputGains[i], IVAS_MAX_OUTPUT_CHANNELS ); } - - if ( enableHeadRotation && ( ( error = efap_init_data( &decDummyMcBin->hEFAPdata, decDummyMcBin->hTransSetup.ls_azimuth, decDummyMcBin->hTransSetup.ls_elevation, decDummyMcBin->hTransSetup.nchan_out_woLFE, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) ) + switch ( inConfig ) { - return error; + case IVAS_REND_AUDIO_CONFIG_5_1: + case IVAS_REND_AUDIO_CONFIG_5_1_2: + case IVAS_REND_AUDIO_CONFIG_5_1_4: + case IVAS_REND_AUDIO_CONFIG_7_1: + case IVAS_REND_AUDIO_CONFIG_7_1_4: + routing.numLfeChannels = 1; + break; + case IVAS_REND_AUDIO_CONFIG_LS_CUSTOM: + routing.numLfeChannels = customLsIn.num_lfe; + break; + default: + routing.numLfeChannels = 0; } - /* Use TD binaural renderer only for HRIRs for Custom LS or 5_1 and 7_1 with headrotation */ - if ( ( binauralFormat != IVAS_REND_BINAURAL_ROOM ) && - ( ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) || - ( enableHeadRotation && ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_5_1 || spkLayout == IVAS_REND_SPEAKER_LAYOUT_7_1 ) ) ) ) - { - - decDummyMcBin->renderer_type = RENDERER_BINAURAL_OBJECTS_TD; - decDummyMcBin->hCrend = NULL; - if ( ( error = ivas_td_binaural_open( decDummyMcBin ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else + switch ( outConfig ) { - /* TODO tmu : rendering custom layouts to BINAURAL_ROOM needs implementation */ - if ( spkLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM && binauralFormat == IVAS_REND_BINAURAL_ROOM ) - { - fprintf( stderr, "Warning! BINAURAL_ROOM output not supported for custom loudspeaker input! Overriding to BINAURAL.\n" ); - } - decDummyMcBin->renderer_type = binauralFormat == IVAS_REND_BINAURAL_ROOM ? RENDERER_BINAURAL_MIXER_CONV_ROOM : RENDERER_BINAURAL_MIXER_CONV; - decDummyMcBin->hBinRendererTd = NULL; - if ( ( error = ivas_crend_open( decDummyMcBin ) ) != IVAS_ERR_OK ) - { - return error; - } + case IVAS_REND_AUDIO_CONFIG_5_1: + case IVAS_REND_AUDIO_CONFIG_5_1_2: + case IVAS_REND_AUDIO_CONFIG_5_1_4: + case IVAS_REND_AUDIO_CONFIG_7_1: + case IVAS_REND_AUDIO_CONFIG_7_1_4: + routing.lfeOutputGains[0][LFE_CHANNEL] = 1.0f; + break; + case IVAS_REND_AUDIO_CONFIG_LS_CUSTOM: + for ( i = 0; i < routing.numLfeChannels && i < customLsOut.num_lfe; ++i ) + { + routing.lfeOutputGains[i][customLsOut.lfe_idx[i]] = 1.0f; + } + break; + default: + /* Do nothing */ + break; } - return error; + return routing; } -ivas_error IVAS_REND_Configure( IVAS_REND_HANDLE st, - const IVAS_REND_InputConfig inConfig, - const IVAS_REND_OutputConfig outConfig, - uint32_t sampleRate, - bool headRotationEnabled, - bool rendererConfigEnabled ) +static ivas_error setRendInputActiveMc( + void *input, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_InputId id ) { - uint32_t i; - int32_t j; ivas_error error; - uint8_t numActiveOutputs; - int32_t frameSize_smpls; - - error = IVAS_ERR_OK; + rendering_context rendCtx; + IVAS_REND_AudioConfig outConfig; + input_mc *inputMc; - /* ============================= Error checks ============================= */ - assert( st != NULL && "Can't configure renderer - pointer is NULL" ); - assert( !st->isConfigured && "Re-configuring a renderer is not supported" ); - assert( !( inConfig.numAudioObjects == 0 && - inConfig.numMultiChannelBuses == 0 && - inConfig.numAmbisonicsBuses == 0 && - inConfig.numMasaBuses == 0 ) && - "At least one input must be active" ); + inputMc = (input_mc *) input; + rendCtx = inputMc->base.ctx; + outConfig = *rendCtx.pOutConfig; - numActiveOutputs = - ( outConfig.ambisonics == IVAS_REND_AMBISONICS_NONE ? 0 : 1 ) + - ( outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_NONE ? 0 : 1 ) + - ( outConfig.binauralFormat == IVAS_REND_BINAURAL_NONE ? 0 : 1 ); - assert( numActiveOutputs == 1 && "Only one output must be selected" ); + initRendInputBase( &inputMc->base, inConfig, id, rendCtx ); + setZeroPanMatrix( inputMc->panGains ); + inputMc->customLsInput = defaultCustomLs(); + inputMc->tdRendWrapper = defaultTdRendWrapper(); + inputMc->crendWrapper = defaultCrendWrapper(); + initRotGains( inputMc->rot_gains_prev ); + inputMc->lfeRouting = defaultLfeRouting( inConfig, + inputMc->customLsInput, + outConfig, + *inputMc->base.ctx.pCustomLsOut ); - /* ========================== Store useful values ========================= */ - st->sampleRate = sampleRate; - st->isConfigured = 1; - st->firstFrame = 1; - st->inConfig = inConfig; - st->outConfig = outConfig; - - /* Save total number of channels in ambisonics inputs */ - st->numInChannelsAmbi = 0; - for ( i = 0; i < inConfig.numAmbisonicsBuses; ++i ) + if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { - st->numInChannelsAmbi += getNumChannelsAmbisonics( inConfig.ambisonicsBuses[i].ambisonicsConfig ); + if ( ( error = initMcBinauralRendering( inputMc, inConfig, outConfig ) ) != IVAS_ERR_OK ) + { + return error; + } } - /* Save total number of channels in MC input */ - st->numInChannelsMc = 0; - for ( i = 0; i < inConfig.numMultiChannelBuses; ++i ) + if ( ( error = updateMcPanGains( inputMc, outConfig ) ) != IVAS_ERR_OK ) { - if ( inConfig.multiChannelBuses[i].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) - { - st->numInChannelsMc += inConfig.inSetupCustom->num_spk + inConfig.inSetupCustom->num_lfe; - } - else - { - st->numInChannelsMc += getNumChannelsInSpeakerLayout( inConfig.multiChannelBuses[i].speakerLayout ); - } + return error; } + return IVAS_ERR_OK; +} - /* Save total number of channels of audio object inputs */ - st->numInChannelsObj = st->inConfig.numAudioObjects; +static void clearInputMc( input_mc *inputMc ) +{ + rendering_context rendCtx; - /* Save total number of channels of MASA inputs */ - st->numInChannelsMasa = st->inConfig.numMasaBuses == 1 ? (int16_t) st->inConfig.masaBus.numTc : 0; + rendCtx = inputMc->base.ctx; - /* Save total number of input channels */ - st->numInChannels = st->numInChannelsObj + st->numInChannelsAmbi + st->numInChannelsMc + st->numInChannelsMasa; + initRendInputBase( &inputMc->base, IVAS_REND_AUDIO_CONFIG_UNKNOWN, 0, rendCtx ); - if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) + /* Free input's internal handles */ + if ( inputMc->efapInWrapper.hEfap != NULL ) { - /* Save number of output channels */ - st->numOutChannels = getNumChannelsAmbisonics( st->outConfig.ambisonics ); + efap_free_data( &inputMc->efapInWrapper.hEfap ); } - else if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) + if ( inputMc->crendWrapper.hCrend != NULL ) { - st->numOutChannels = 2; + ivas_rend_closeCrend( &inputMc->crendWrapper ); } - - /* ============================ Prepare panning and ambisonics =========================== */ - if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) + if ( inputMc->tdRendWrapper.hBinRendererTd != NULL ) { - if ( st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) - { - /* Save number of output channels */ - st->numOutChannels = st->outConfig.outSetupCustom->num_spk + st->outConfig.outSetupCustom->num_lfe; - - /* Open and initialize EFAP struct */ - if ( ( error = efap_init_data( &st->efapRenderer, st->outConfig.outSetupCustom->ls_azimuth, st->outConfig.outSetupCustom->ls_elevation, st->outConfig.outSetupCustom->num_spk, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else - { - /* Save number of output channels */ - st->numOutChannels = getNumChannelsInSpeakerLayout( st->outConfig.speakerLayout ); - - /* Open and initialize EFAP struct */ - if ( ( error = efap_init_data( &st->efapRenderer, getSpeakerAzimuths( st->outConfig.speakerLayout ), getSpeakerElevations( st->outConfig.speakerLayout ), getNumNonLfeChannelsInSpeakerLayout( st->outConfig.speakerLayout ), EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - - assert( st->efapRenderer != NULL && "Could not init EFAP" ); - - /* Compute Ambisonics to loudspeaker decoding matrix */ - if ( ( error = getHoaRenderMtx( st->outConfig, &st->ambi_dec_mtx, 3 ) ) != IVAS_ERR_OK ) - { - return error; - } + ivas_td_binaural_close( &inputMc->tdRendWrapper.hBinRendererTd ); + inputMc->tdRendWrapper.hHrtfTD = NULL; } +} - /* Allocate temporary pan/enc buffer to avoid allocations during rendering */ - if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) +static ivas_error initSbaPanGainsForMcOut( + input_sba *inputSba, + IVAS_REND_AudioConfig outConfig, + const LSSETUP_CUSTOM_STRUCT *outSetupCustom ) +{ + int16_t ambiOrderIn; + int16_t chInIdx, chOutIdx; + float *tmpDecMtx, *readPtr; + IVAS_OUTPUT_SETUP hOutSetup; + ivas_error error; + + if ( ( error = getAmbisonicsOrder( inputSba->base.inConfig, &ambiOrderIn ) ) != IVAS_ERR_OK ) { - st->tmpGainBuffer = count_calloc( getNumChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), sizeof( float ) ); - st->noLfePanBuffer = count_calloc( getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), sizeof( float ) ); + return error; } - else if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_NONE ) + + if ( getAudioConfigType( outConfig ) != IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) { - st->tmpGainBuffer = count_calloc( st->numOutChannels, sizeof( float ) ); + assert( !"Invalid configuration" ); + return IVAS_ERR_WRONG_PARAMS; } - /* Allocate temporary buffer for panning gains with lfe omitted */ - if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) - { - if ( st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) - { - st->noLfePanBuffer = count_calloc( st->outConfig.outSetupCustom->num_spk, sizeof( float ) ); - } - else - { - st->noLfePanBuffer = count_calloc( getNumNonLfeChannelsInSpeakerLayout( st->outConfig.speakerLayout ), sizeof( float ) ); - } + switch ( outConfig ) + { + case IVAS_REND_AUDIO_CONFIG_MONO: + hOutSetup.ls_azimuth = ls_azimuth_CICP1; + hOutSetup.ls_elevation = ls_elevation_CICP1; + ivas_output_init( &hOutSetup, rendAudioConfigToIvasAudioConfig( outConfig ) ); + break; + case IVAS_REND_AUDIO_CONFIG_STEREO: + case IVAS_REND_AUDIO_CONFIG_5_1: + case IVAS_REND_AUDIO_CONFIG_7_1: + case IVAS_REND_AUDIO_CONFIG_5_1_2: + case IVAS_REND_AUDIO_CONFIG_5_1_4: + case IVAS_REND_AUDIO_CONFIG_7_1_4: + ivas_output_init( &hOutSetup, rendAudioConfigToIvasAudioConfig( outConfig ) ); + break; + case IVAS_REND_AUDIO_CONFIG_LS_CUSTOM: + ivas_ls_custom_setup( &hOutSetup, outSetupCustom ); + break; + default: + assert( !"Invalid speaker config" ); + return IVAS_ERR_WRONG_PARAMS; } - /* Create lookup tables for panning/encoding speaker signals */ - if ( st->inConfig.numMultiChannelBuses != 0 ) + /* obtain and copy over HOA decoding matrix */ + tmpDecMtx = NULL; + if ( ( error = ivas_sba_get_hoa_dec_matrix( hOutSetup, &tmpDecMtx, ambiOrderIn ) ) != IVAS_ERR_OK ) { - prepareMcPanGains( st ); - prepareLfeHandling( st ); + return error; } - /* Allocate structs for interpolation of object pan/enc gains between frames */ - if ( st->inConfig.numAudioObjects != 0 ) + readPtr = &tmpDecMtx[0]; + for ( chOutIdx = 0; chOutIdx < hOutSetup.nchan_out_woLFE + hOutSetup.num_lfe; ++chOutIdx ) { - st->objPanInfo = count_calloc( st->inConfig.numAudioObjects, sizeof( IVAS_REND_ObjPanInfo ) ); - - for ( i = 0; i < st->inConfig.numAudioObjects; ++i ) + for ( chInIdx = 0; chInIdx < SBA_NHARM_HOA3; ++chInIdx ) { - if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) - { - st->objPanInfo[i].panGains = count_calloc( getNumChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), sizeof( float ) ); - } - else if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_NONE ) + if ( hOutSetup.num_lfe > 0 && chOutIdx == hOutSetup.index_lfe[0] ) { - st->objPanInfo[i].panGains = count_calloc( st->numOutChannels, sizeof( float ) ); + continue; /* nothing to be rendered to LFE */ } + inputSba->hoaDecMtx[chInIdx][chOutIdx] = *readPtr++; } } - /* Prepare MASA processing */ - if ( st->inConfig.numMasaBuses != 0 ) + count_free( tmpDecMtx ); + + return IVAS_ERR_OK; +} + +static ivas_error initSbaPanGainsForSbaOut( input_sba *inputSba, IVAS_REND_AudioConfig outConfig ) +{ + ivas_error error; + error = IVAS_ERR_OK; + + if ( getAudioConfigType( outConfig ) != IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS ) { - st->decDummyMasaBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation, st->rendererConfigEnabled ); + assert( !"Invalid configuration" ); + return IVAS_ERR_WRONG_PARAMS; + } - /* TODO @ Nokia: initialize decoder dummy for MASA rendering depending on output config. - Feel free to clean this up if some other structure works better. */ - if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) - { - if ( ( error = initDecoderDummyForMasaToAmbi( st->decDummyMasaBin, st->inConfig ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) - { - if ( ( error = initDecoderDummyForMasaToChannels( st->decDummyMasaBin, st->inConfig ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) - { - if ( ( error = initDecoderDummyForMasaToBinaural( st->decDummyMasaBin, st->inConfig ) ) != IVAS_ERR_OK ) + fillIdentityPanMatrix( inputSba->hoaDecMtx ); + + return error; +} + +static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig outConfig ) +{ + ivas_error error; + IVAS_REND_AudioConfig inConfig; + rendering_context rendCtx; + + /* Reset to all zeros - some functions below only write non-zero elements. */ + setZeroPanMatrix( inputSba->hoaDecMtx ); + + inConfig = inputSba->base.inConfig; + rendCtx = inputSba->base.ctx; + + switch ( getAudioConfigType( outConfig ) ) + { + case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: + error = initSbaPanGainsForMcOut( inputSba, outConfig, inputSba->base.ctx.pCustomLsOut ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS: + error = initSbaPanGainsForSbaOut( inputSba, outConfig ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL: + switch ( outConfig ) { - return error; + case IVAS_REND_AUDIO_CONFIG_BINAURAL: + error = ivas_rend_openCrend( &inputSba->crendWrapper, + inConfig, + outConfig, + *rendCtx.pOutSampleRate ); + break; + case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: + if ( ( error = initSbaPanGainsForMcOut( inputSba, IVAS_REND_AUDIO_CONFIG_7_1_4, NULL ) ) != IVAS_ERR_OK ) + { + return error; + } + error = ivas_rend_openCrend( &inputSba->crendWrapper, + IVAS_REND_AUDIO_CONFIG_7_1_4, + outConfig, + *rendCtx.pOutSampleRate ); + break; + default: + return IVAS_ERR_INVALID_OUTPUT_FORMAT; } - } + break; + default: + return IVAS_ERR_INVALID_OUTPUT_FORMAT; + } + /* Check error here to keep switch statement more compact */ + if ( error != IVAS_ERR_OK ) + { + return error; } - /* Prepare binaural rendering if enabled */ - if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) + return IVAS_ERR_OK; +} + +static ivas_error setRendInputActiveSba( + void *input, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_InputId id ) +{ + ivas_error error; + rendering_context rendCtx; + IVAS_REND_AudioConfig outConfig; + input_sba *inputSba; + + inputSba = (input_sba *) input; + rendCtx = inputSba->base.ctx; + outConfig = *rendCtx.pOutConfig; + + initRendInputBase( &inputSba->base, inConfig, id, rendCtx ); + setZeroPanMatrix( inputSba->hoaDecMtx ); + inputSba->crendWrapper = defaultCrendWrapper(); + initRotGains( inputSba->rot_gains_prev ); + + if ( ( error = updateSbaPanGains( inputSba, outConfig ) ) != IVAS_ERR_OK ) { - if ( headRotationEnabled ) - { - st->enableHeadRotation = 1; - } + return error; + } - if ( rendererConfigEnabled ) - { - st->rendererConfigEnabled = 1; - } + return error; +} +static void clearInputSba( input_sba *inputSba ) +{ + rendering_context rendCtx; - if ( st->inConfig.numAmbisonicsBuses != 0 ) - { - st->decDummyAmbiBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation, st->rendererConfigEnabled ); - if ( ( error = initDecoderDummyForAmbiToBinaural( st->decDummyAmbiBin, st->inConfig, st->outConfig.binauralFormat ) ) != IVAS_ERR_OK ) - { - return error; - } + rendCtx = inputSba->base.ctx; - /* init ALLRAD for intermediate rendering to 7_1_4 for BINAURAL_ROOM */ - if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) - { - if ( ( error = getHoaRenderMtx( st->outConfig, &st->ambi_dec_mtx, 3 ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } + initRendInputBase( &inputSba->base, IVAS_REND_AUDIO_CONFIG_UNKNOWN, 0, rendCtx ); - if ( st->inConfig.numAudioObjects != 0 ) - { - st->decDummyObjBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation, st->rendererConfigEnabled ); - if ( ( error = initDecoderDummyForObjToBinaural( st->decDummyObjBin, st->inConfig, st->outConfig.binauralFormat ) ) != IVAS_ERR_OK ) - { - return error; - } + /* Free input's internal handles */ + if ( inputSba->crendWrapper.hCrend != NULL ) + { + ivas_rend_closeCrend( &inputSba->crendWrapper ); + } +} - /* init EFAP for intermediate rendering to 7_1_4 for BINAURAL_ROOM */ - if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) - { - if ( ( error = efap_init_data( &st->efapRenderer, getSpeakerAzimuths( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), getSpeakerElevations( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } +ivas_error IVAS_REND_Open( + IVAS_REND_HANDLE *phIvasRend, + int32_t outputSampleRate, + IVAS_REND_AudioConfig outConfig ) +{ + int16_t i; + IVAS_REND_HANDLE hIvasRend; + ivas_error error; + int32_t numOutChannels; - if ( st->inConfig.numMultiChannelBuses != 0 ) - { - st->decDummyMcBin = allocDecoderDummy( st->sampleRate, st->numOutChannels, st->enableHeadRotation, st->rendererConfigEnabled ); - if ( ( error = initDecoderDummyForMcToBinaural( st->decDummyMcBin, st->inConfig, st->outConfig.binauralFormat, st->enableHeadRotation ) ) != IVAS_ERR_OK ) - { - return error; - } + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ + + if ( phIvasRend == NULL ) + { + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } + if ( ( error = validateOutputAudioConfig( outConfig ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = validateOutputSampleRate( outputSampleRate, outConfig ) ) != IVAS_ERR_OK ) + { + return error; + } - /* init EFAP for BINAURAL_ROOM via 7_1_4 */ - if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) - { - if ( ( error = efap_init_data( &st->efapRenderer, getSpeakerAzimuths( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), getSpeakerElevations( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ), EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } + *phIvasRend = (IVAS_REND_HANDLE) count_malloc( sizeof( struct IVAS_REND ) ); + if ( *phIvasRend == NULL ) + { + return IVAS_ERR_FAILED_ALLOC; } - /* =========================== Prepare crossfades ========================= */ - frameSize_smpls = sampleRate / FRAMES_PER_SEC; - st->crossfade = count_calloc( frameSize_smpls, sizeof( float ) ); + hIvasRend = *phIvasRend; + hIvasRend->sampleRateOut = outputSampleRate; + hIvasRend->outputConfig = outConfig; + hIvasRend->customLsOut = defaultCustomLs(); + hIvasRend->hLimiter = NULL; + hIvasRend->efapOutWrapper.hEfap = NULL; + hIvasRend->efapOutWrapper.pCustomLsSetup = NULL; +#ifdef DEBUGGING + hIvasRend->numClipping = 0; +#endif - for ( j = 0; j < frameSize_smpls; ++j ) + /* Initialize limiter */ + if ( ( error = IVAS_REND_NumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) { - st->crossfade[j] = (float) j / ( frameSize_smpls - 1 ); + return error; } + initLimiter( &hIvasRend->hLimiter, numOutChannels, outputSampleRate ); - /* ========================= Prepare optimizations ======================== */ - /* Make note of possible processing shortcuts in cases where input and output - * config is the same or similar. This only needs to be done for MC I/O, since - * Ambisonics I/O can always be passed through and objects can never be passed - * through */ - if ( st->inConfig.numMultiChannelBuses > 0 && st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) + /* Initialize headrotation data */ + initHeadRotation( hIvasRend ); + + /* Initialize EFAP */ + initEfap( &hIvasRend->efapOutWrapper, outConfig, &hIvasRend->customLsOut ); + + /* Initialize inputs */ + for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) { - prepareMcPassthrough( st ); + initRendInputBase( &hIvasRend->inputsIsm[i].base, + IVAS_REND_AUDIO_CONFIG_UNKNOWN, + 0, + getRendCtx( hIvasRend ) ); + hIvasRend->inputsIsm[i].crendWrapper.hCrend = NULL; + hIvasRend->inputsIsm[i].tdRendWrapper.hBinRendererTd = NULL; + } + for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) + { + initRendInputBase( &hIvasRend->inputsMc[i].base, + IVAS_REND_AUDIO_CONFIG_UNKNOWN, + 0, + getRendCtx( hIvasRend ) ); + hIvasRend->inputsMc[i].efapInWrapper.hEfap = NULL; + hIvasRend->inputsMc[i].crendWrapper.hCrend = NULL; + hIvasRend->inputsMc[i].tdRendWrapper.hBinRendererTd = NULL; + } + for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) + { + initRendInputBase( &hIvasRend->inputsSba[i].base, + IVAS_REND_AUDIO_CONFIG_UNKNOWN, + 0, + getRendCtx( hIvasRend ) ); + hIvasRend->inputsSba[i].crendWrapper.hCrend = NULL; } - /* ============================ Configure limiter =========================== */ - st->hLimiter = ivas_limiter_open( st->numOutChannels, st->sampleRate ); - - return error; + return IVAS_ERR_OK; } -void IVAS_REND_SetHeadRotation( - IVAS_REND_HANDLE st, - const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] ) +static LSSETUP_CUSTOM_STRUCT makeCustomLsSetup( IVAS_CUSTOM_LS_DATA rendCustomLsLayout ) { int16_t i; + LSSETUP_CUSTOM_STRUCT customLs; - assert( st != NULL ); + /* Copy layout description */ + customLs.num_spk = rendCustomLsLayout.num_spk; + mvr2r( rendCustomLsLayout.azimuth, customLs.ls_azimuth, rendCustomLsLayout.num_spk ); + mvr2r( rendCustomLsLayout.elevation, customLs.ls_elevation, rendCustomLsLayout.num_spk ); - for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) + customLs.is_planar_setup = 1; + for ( i = 0; i < rendCustomLsLayout.num_spk; ++i ) { - st->headRotationData[i] = headRot[i]; + if ( fabsf( rendCustomLsLayout.elevation[i] ) > EPSILON ) + { + customLs.is_planar_setup = 0; + break; + } } + + customLs.num_lfe = rendCustomLsLayout.num_lfe; + mvs2s( rendCustomLsLayout.lfe_idx, customLs.lfe_idx, rendCustomLsLayout.num_lfe ); + + return customLs; } -ivas_error IVAS_REND_FeedMasaMetadata( - IVAS_REND_HANDLE st, - IVAS_MASA_METADATA_HANDLE hMasaMetadata ) +static ivas_error validateCustomLsLayout( IVAS_CUSTOM_LS_DATA layout ) { - if ( !st->isConfigured ) + int32_t i; + + /* Negative number of speakers or LFEs makes no sense */ + if ( layout.num_spk < 0 || layout.num_lfe < 0 ) { - return IVAS_ERR_NOT_CONFIGURED; + return IVAS_ERR_INVALID_CUSTOM_LS_LAYOUT; } - - if ( st->inConfig.numMasaBuses == 0 ) + /* There must be at least one speaker or LFE in the layout */ + if ( layout.num_spk + layout.num_lfe <= 0 ) { - return IVAS_ERR_METADATA_NOT_EXPECTED; + return IVAS_ERR_INVALID_CUSTOM_LS_LAYOUT; + } + /* LFE indices must be positive */ + for ( i = 0; i < layout.num_lfe; ++i ) + { + if ( layout.lfe_idx[i] < 0 ) + { + return IVAS_ERR_INVALID_CUSTOM_LS_LAYOUT; + } } - - st->masaMetadata = *hMasaMetadata; return IVAS_ERR_OK; } -void IVAS_REND_Render( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, - IVAS_REND_AudioBuffer outAudio ) +ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( + IVAS_REND_HANDLE hIvasRend, + IVAS_CUSTOM_LS_DATA layout ) { -#ifdef WMOPS - wmops_sub_start( "IVAS_REND_Render" ); -#endif + int32_t numOutChannels; + ivas_error error; + int32_t i; + input_mc *inputMc; + input_sba *inputSba; - /* ============================= Error checks ============================= */ - assert( st != NULL && "Can't render - renderer pointer is NULL" ); - assert( st->isConfigured && "Can't render - renderer pointer is not configured" ); - assert( inAudio.config.sampleRate == outAudio.config.sampleRate && "Input and output sample rate must be the same" ); - assert( inAudio.config.bufferSize == outAudio.config.bufferSize && "Input and output frame size must be the same" ); - assert( inAudio.config.numChannels == st->numInChannels && "Number of input channels does not match between renderer and input config" ); - assert( outAudio.config.numChannels == st->numOutChannels && "Number of input channels does not match between renderer and input config" ); - assert( inAudio.config.sampleRate != 0 && "Invalid sample rate" ); - assert( inAudio.config.bufferSize != 0 && "Invalid frame size" ); - assert( inAudio.data != NULL && "Can't render - input buffer is empty" ); - - /* ========================== Actual processing =========================== */ - /* Clear output buffer */ - set_zero( outAudio.data, outAudio.config.numChannels * outAudio.config.bufferSize ); + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ - /* Render target format: Ambisonics */ - if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) + if ( hIvasRend == NULL ) { - if ( st->inConfig.numAmbisonicsBuses != 0 ) - { - renderAmbiToAmbi( st, inAudio, outAudio ); - } + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } + if ( hIvasRend->outputConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + /* Specifying details of custom speaker layout only makes sense if output config is set to custom speaker layout */ + return IVAS_ERR_INVALID_OUTPUT_FORMAT; + } + if ( ( error = validateCustomLsLayout( layout ) ) != IVAS_ERR_OK ) + { + return error; + } - if ( st->inConfig.numMultiChannelBuses != 0 ) - { - renderChannelsToAmbi( st, inAudio, outAudio ); - } + hIvasRend->customLsOut = makeCustomLsSetup( layout ); - if ( st->inConfig.numAudioObjects != 0 ) - { - renderObjectsToAmbi( st, inAudio, metadataBuffer, outAudio ); - } + /* Re-initialize limiter - number of output channels may have changed */ + if ( ( error = IVAS_REND_NumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + initLimiter( &hIvasRend->hLimiter, + numOutChannels, + hIvasRend->sampleRateOut ); - if ( st->inConfig.numMasaBuses != 0 ) - { - renderMasaToAmbi( st, inAudio, outAudio ); - } - } /* Render target format: multichannel */ - else if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) + /* Re-initialize EFAP - output layout has changed or has been fully defined for the first time */ + initEfap( &hIvasRend->efapOutWrapper, + hIvasRend->outputConfig, + &hIvasRend->customLsOut ); + + /* Re-initialize panning gains for each active MC input, This includes re-initializing + * LFE handling for the new output layout, which means custom LFE handling is overwritten, + * if previously set for any MC input. */ + for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) { - if ( st->inConfig.numAmbisonicsBuses != 0 ) + inputMc = &hIvasRend->inputsMc[i]; + if ( inputMc->base.inConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - renderAmbiToChannels( st, inAudio, outAudio ); + /* Input inactive, skip. */ + continue; } - - if ( st->inConfig.numMultiChannelBuses != 0 ) + inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, + inputMc->customLsInput, + hIvasRend->outputConfig, + *inputMc->base.ctx.pCustomLsOut ); + if ( ( error = updateMcPanGains( inputMc, hIvasRend->outputConfig ) ) != IVAS_ERR_OK ) { - renderChannelsToChannels( st, inAudio, outAudio ); + return error; } + } - if ( st->inConfig.numAudioObjects != 0 ) + /* Re-initialize panning gains for each active SBA input */ + for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) + { + inputSba = &hIvasRend->inputsSba[i]; + if ( inputSba->base.inConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - renderObjectsToChannels( st, inAudio, metadataBuffer, outAudio ); + /* Input inactive, skip. */ + continue; } - - if ( st->inConfig.numMasaBuses != 0 ) + if ( ( error = updateSbaPanGains( inputSba, hIvasRend->outputConfig ) ) != IVAS_ERR_OK ) { - renderMasaToChannels( st, inAudio, outAudio ); + return error; } - } /* Render target format: binaural */ - else if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) - { - /* Rendering to binaural using dummy IVAS decoders */ - assert( inAudio.config.bufferSize == st->sampleRate / FRAMES_PER_SEC && "Using IVAS components requires frame size of 20 ms" ); - assert( inAudio.config.numChannels <= MAX_OUTPUT_CHANNELS && "Max 16 input channels supported" ); - assert( outAudio.config.numChannels == 2 && "2 output channels expected for rendering to binaural" ); + } - if ( st->inConfig.numAmbisonicsBuses != 0 ) - { - renderAmbiToBinaural( st, inAudio, outAudio ); - } + return IVAS_ERR_OK; +} - if ( st->inConfig.numMultiChannelBuses != 0 ) - { - renderChannelsToBinaural( st, inAudio, outAudio ); - } +ivas_error IVAS_REND_NumOutChannels( + IVAS_REND_CONST_HANDLE hIvasRend, + int32_t *numOutChannels ) +{ + ivas_error error; - if ( st->inConfig.numAudioObjects != 0 ) - { - renderObjectsToBinaural( st, inAudio, metadataBuffer, outAudio ); - } + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ - if ( st->inConfig.numMasaBuses != 0 ) - { - renderMasaToBinaural( st, inAudio, outAudio ); - } + if ( hIvasRend == NULL || numOutChannels == NULL ) + { + return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - /* Apply limiting in place */ -#ifdef DEBUGGING - st->numClipping += -#endif - ivas_limiter_renderer( - st->hLimiter, - outAudio.data, - outAudio.config.bufferSize, - LIMITER_THRESHOLD ); - - if ( st->firstFrame ) + /* Handle special cases where additional info is needed from the renderer, otherwise use getAudioConfigNumChannels() */ + switch ( hIvasRend->outputConfig ) + { + case IVAS_REND_AUDIO_CONFIG_LS_CUSTOM: + *numOutChannels = hIvasRend->customLsOut.num_spk + hIvasRend->customLsOut.num_lfe; + error = IVAS_ERR_OK; + break; + default: + error = getAudioConfigNumChannels( hIvasRend->outputConfig, numOutChannels ); + break; + } + if ( error != IVAS_ERR_OK ) { - st->firstFrame = 0; + return error; } -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -void IVAS_REND_OpenCustomLayout( - IVAS_LSSETUP_CUSTOM_HANDLE *outSetupCustom ) +static IVAS_REND_InputId makeInputId( IVAS_REND_AudioConfig config, int32_t inputIndex ) { - ivas_ls_custom_open( outSetupCustom ); + /* Put config type in second byte (from LSB), put index + 1 in first byte + * + * Index is incremented here so that a valid ID can never be 0. */ + return getAudioConfigType( config ) << 8 | ( inputIndex + 1 ); } -void IVAS_REND_SetNeverDropLfe( - IVAS_REND_HANDLE st, - int8_t neverDropLfe ) +static ivas_error getInputById( IVAS_REND_HANDLE hIvasRend, IVAS_REND_InputId inputId, void **ppInput ) { - st->neverDropLfe = neverDropLfe; -} + int32_t inputIndex; + IVAS_REND_AudioConfigType configType; + input_base *pInputBase; -int16_t IVAS_REND_GetInChannels( - IVAS_REND_HANDLE st ) -{ - assert( st != NULL && "Can't get number of input channels - renderer pointer is NULL" ); - if ( st ) + /* Reverse makeInputId() */ + inputIndex = ( inputId & 0xFF ) - 1; + configType = ( inputId & 0xFF00 ) >> 8; + + /* Validate values derived from input ID */ + if ( inputIndex < 0 ) { - return st->numInChannels; + return IVAS_ERR_INVALID_INPUT_ID; + } + switch ( configType ) + { + case IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED: + if ( inputIndex > RENDERER_MAX_ISM_INPUTS ) + { + return IVAS_ERR_INVALID_INPUT_ID; + } + pInputBase = &hIvasRend->inputsIsm[inputIndex].base; + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: + if ( inputIndex > RENDERER_MAX_MC_INPUTS ) + { + return IVAS_ERR_INVALID_INPUT_ID; + } + pInputBase = &hIvasRend->inputsMc[inputIndex].base; + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS: + if ( inputIndex > RENDERER_MAX_SBA_INPUTS ) + { + return IVAS_ERR_INVALID_INPUT_ID; + } + pInputBase = &hIvasRend->inputsSba[inputIndex].base; + break; + default: + return IVAS_ERR_INVALID_INPUT_ID; } - return 0; -} -int16_t IVAS_REND_GetOutChannels( - IVAS_REND_HANDLE st ) -{ - assert( st != NULL && "Can't get number of output channels - renderer pointer is NULL" ); - if ( st ) + /* Ensure input ID matches and that input is active */ + if ( pInputBase->id != inputId || pInputBase->inConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - return st->numOutChannels; + return IVAS_ERR_INVALID_INPUT_ID; } - return 0; + + /* Validation done, set value via output parameter */ + *ppInput = pInputBase; + + return IVAS_ERR_OK; } -void IVAS_REND_Close( IVAS_REND_HANDLE *st ) +/* Unfortunately code duplication here is the only way to avoid warnings about const casting */ +static ivas_error getConstInputById( IVAS_REND_CONST_HANDLE hIvasRend, IVAS_REND_InputId inputId, const void **ppInput ) { - uint32_t i; - uint32_t j; - uint32_t numNonLfeChannels; - IVAS_REND_HANDLE hIvasRend; - - if ( st == NULL || *st == NULL ) - { - return; - } - hIvasRend = *st; + int32_t inputIndex; + IVAS_REND_AudioConfigType configType; + const input_base *pInputBase; - if ( hIvasRend->efapRenderer != NULL ) - { - efap_free_data( &hIvasRend->efapRenderer ); - } + /* Reverse makeInputId() */ + inputIndex = ( inputId & 0xFF ) - 1; + configType = ( inputId & 0xFF00 ) >> 8; - if ( hIvasRend->objPanInfo != NULL ) + /* Validate values derived from input ID */ + if ( inputIndex < 0 ) { - for ( i = 0; i < hIvasRend->inConfig.numAudioObjects; ++i ) - { - if ( hIvasRend->objPanInfo[i].panGains != NULL ) - { - count_free( hIvasRend->objPanInfo[i].panGains ); - } - } - - count_free( hIvasRend->objPanInfo ); + return IVAS_ERR_INVALID_INPUT_ID; } - - if ( hIvasRend->speakerPanGains != NULL ) + switch ( configType ) { - for ( i = 0; i < hIvasRend->inConfig.numMultiChannelBuses; ++i ) - { - if ( hIvasRend->inConfig.multiChannelBuses[i].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + case IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED: + if ( inputIndex > RENDERER_MAX_ISM_INPUTS ) { - numNonLfeChannels = hIvasRend->inConfig.inSetupCustom->num_spk; + return IVAS_ERR_INVALID_INPUT_ID; } - else + pInputBase = &hIvasRend->inputsIsm[inputIndex].base; + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: + if ( inputIndex > RENDERER_MAX_MC_INPUTS ) { - numNonLfeChannels = getNumNonLfeChannelsInSpeakerLayout( hIvasRend->inConfig.multiChannelBuses[i].speakerLayout ); + return IVAS_ERR_INVALID_INPUT_ID; } - - for ( j = 0; j < numNonLfeChannels; ++j ) + pInputBase = &hIvasRend->inputsMc[inputIndex].base; + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS: + if ( inputIndex > RENDERER_MAX_SBA_INPUTS ) { - count_free( hIvasRend->speakerPanGains[i][j] ); + return IVAS_ERR_INVALID_INPUT_ID; } - - count_free( hIvasRend->speakerPanGains[i] ); - } - - count_free( hIvasRend->speakerPanGains ); + pInputBase = &hIvasRend->inputsSba[inputIndex].base; + break; + default: + return IVAS_ERR_INVALID_INPUT_ID; } - if ( hIvasRend->inConfig.inSetupCustom != NULL ) + /* Ensure input ID matches and that input is active */ + if ( pInputBase->id != inputId || pInputBase->inConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - count_free( hIvasRend->inConfig.inSetupCustom ); - hIvasRend->inConfig.inSetupCustom = NULL; + return IVAS_ERR_INVALID_INPUT_ID; } - if ( hIvasRend->outConfig.outSetupCustom != NULL ) + /* Validation done, set value via output parameter */ + *ppInput = pInputBase; + + return IVAS_ERR_OK; +} + +static ivas_error findFreeInputSlot( + const void *inputs, + int32_t inputStructSize, + int32_t maxInputs, + int32_t *inputIndex ) +{ + /* Using a void pointer and a separately provided size is a hack for this function + to be reusable for arrays of any input type (input_ism, input_mc, input_sba). + Assumptions: + - input_base is always the first member in the input struct + - provided size is correct + */ + + int32_t i; + bool canAddInput; + const uint8_t *pByte; + const input_base *pInputBase; + + canAddInput = false; + + /* Find first unused input in array */ + for ( i = 0, pByte = inputs; i < maxInputs; ++i, pByte += inputStructSize ) { - count_free( hIvasRend->outConfig.outSetupCustom ); - hIvasRend->outConfig.outSetupCustom = NULL; + pInputBase = (const input_base *) pByte; + + if ( pInputBase->inConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) + { + *inputIndex = i; + canAddInput = true; + break; + } } - if ( hIvasRend->tmpGainBuffer != NULL ) + if ( !canAddInput ) { - count_free( hIvasRend->tmpGainBuffer ); + return IVAS_ERR_TOO_MANY_INPUTS; } - if ( hIvasRend->noLfePanBuffer != NULL ) + return IVAS_ERR_OK; +} + +ivas_error IVAS_REND_AddInput( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_AudioConfig inConfig, + IVAS_REND_InputId *inputId ) +{ + ivas_error error; + int32_t maxNumInputsOfType; + void *inputsArray; + int32_t inputStructSize; + ivas_error ( *activateInput )( void *, IVAS_REND_AudioConfig, IVAS_REND_InputId ); + int32_t inputIndex; + + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ + + if ( hIvasRend == NULL || inputId == NULL ) { - count_free( hIvasRend->noLfePanBuffer ); + return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - if ( hIvasRend->crossfade != NULL ) - { - count_free( hIvasRend->crossfade ); + switch ( getAudioConfigType( inConfig ) ) + { + case IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED: + maxNumInputsOfType = RENDERER_MAX_ISM_INPUTS; + inputsArray = hIvasRend->inputsIsm; + inputStructSize = sizeof( *hIvasRend->inputsIsm ); + activateInput = setRendInputActiveIsm; + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: + maxNumInputsOfType = RENDERER_MAX_MC_INPUTS; + inputsArray = hIvasRend->inputsMc; + inputStructSize = sizeof( *hIvasRend->inputsMc ); + activateInput = setRendInputActiveMc; + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS: + maxNumInputsOfType = RENDERER_MAX_SBA_INPUTS; + inputsArray = hIvasRend->inputsSba; + inputStructSize = sizeof( *hIvasRend->inputsSba ); + activateInput = setRendInputActiveSba; + break; + default: + return IVAS_ERR_INVALID_INPUT_FORMAT; } - if ( hIvasRend->mcPassthrough != NULL ) + /* Find first free input in array corresponding to input type */ + if ( ( error = findFreeInputSlot( inputsArray, + inputStructSize, + maxNumInputsOfType, + &inputIndex ) ) != IVAS_ERR_OK ) { - count_free( hIvasRend->mcPassthrough ); + return error; } - if ( hIvasRend->lfePanGains ) + *inputId = makeInputId( inConfig, inputIndex ); + + if ( ( error = activateInput( (uint8_t *) inputsArray + inputStructSize * inputIndex, + inConfig, + *inputId ) ) != IVAS_ERR_OK ) { - count_free( hIvasRend->lfePanGains ); + return error; } - if ( hIvasRend->ambi_dec_mtx != NULL ) + return IVAS_ERR_OK; +} + +ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId inputId, + IVAS_CUSTOM_LS_DATA layout ) +{ + input_mc *inputMc; + ivas_error error; + + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ + + if ( hIvasRend == NULL ) { - count_free( hIvasRend->ambi_dec_mtx ); + return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - - if ( hIvasRend->decDummyAmbiBin != NULL ) + if ( ( error = validateCustomLsLayout( layout ) ) != IVAS_ERR_OK ) { - ivas_crend_close( hIvasRend->decDummyAmbiBin ); - ivas_render_config_close( &hIvasRend->decDummyAmbiBin->hRenderConfig ); - count_free( hIvasRend->decDummyAmbiBin->hDecoderConfig ); - if ( hIvasRend->enableHeadRotation ) - { - count_free( hIvasRend->decDummyAmbiBin->hHeadTrackData ); - } - count_free( hIvasRend->decDummyAmbiBin ); + return error; } - - if ( hIvasRend->decDummyMcBin != NULL ) + if ( ( error = getInputById( hIvasRend, inputId, (void **) &inputMc ) ) != IVAS_ERR_OK ) { - if ( hIvasRend->decDummyMcBin->hEFAPdata != NULL ) - { - efap_free_data( &hIvasRend->decDummyMcBin->hEFAPdata ); - } - ivas_crend_close( hIvasRend->decDummyMcBin ); - ivas_td_binaural_close( &hIvasRend->decDummyMcBin->hBinRendererTd ); - ivas_render_config_close( &hIvasRend->decDummyMcBin->hRenderConfig ); - count_free( hIvasRend->decDummyMcBin->hDecoderConfig ); - if ( hIvasRend->enableHeadRotation ) - { - count_free( hIvasRend->decDummyMcBin->hHeadTrackData ); - } - if ( hIvasRend->decDummyMcBin->hEFAPdata ) - { - efap_free_data( &hIvasRend->decDummyMcBin->hEFAPdata ); - } - count_free( hIvasRend->decDummyMcBin ); + return error; } - - if ( hIvasRend->decDummyObjBin != NULL ) + if ( inputMc->base.inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { - ivas_crend_close( hIvasRend->decDummyObjBin ); - ivas_td_binaural_close( &hIvasRend->decDummyObjBin->hBinRendererTd ); - ivas_render_config_close( &hIvasRend->decDummyObjBin->hRenderConfig ); - count_free( hIvasRend->decDummyObjBin->hDecoderConfig ); + /* Specifying details of custom speaker layout only makes sense if input config is set to custom speaker layout */ + return IVAS_ERR_INVALID_INPUT_FORMAT; + } - if ( hIvasRend->enableHeadRotation ) - { - count_free( hIvasRend->decDummyObjBin->hHeadTrackData ); - } + /* Re-initialize panning gains for the MC input, This includes re-initializing LFE handling + * for the new input layout, which means custom LFE handling is overwritten, if previously + * set for the MC input. */ + inputMc->customLsInput = makeCustomLsSetup( layout ); - for ( i = 0; i < hIvasRend->inConfig.numAudioObjects; ++i ) - { - count_free( hIvasRend->decDummyObjBin->hIsmMetaData[i] ); - } + inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, + inputMc->customLsInput, + hIvasRend->outputConfig, + *inputMc->base.ctx.pCustomLsOut ); - count_free( hIvasRend->decDummyObjBin ); - } + initEfap( &inputMc->efapInWrapper, inputMc->base.inConfig, &inputMc->customLsInput ); - if ( hIvasRend->decDummyMasaBin != NULL ) + if ( hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { - ivas_render_config_close( &hIvasRend->decDummyMasaBin->hRenderConfig ); - count_free( hIvasRend->decDummyMasaBin->hDecoderConfig ); - - if ( hIvasRend->enableHeadRotation ) + if ( ( error = initMcBinauralRendering( inputMc, inputMc->base.inConfig, hIvasRend->outputConfig ) ) != IVAS_ERR_OK ) { - count_free( hIvasRend->decDummyMasaBin->hHeadTrackData ); + return error; } - - /* TODO @ Nokia: free any other memory allocated in the dummy decoder */ - - count_free( hIvasRend->decDummyMasaBin ); + } + if ( ( error = updateMcPanGains( inputMc, hIvasRend->outputConfig ) ) != IVAS_ERR_OK ) + { + return error; } - ivas_limiter_close( &hIvasRend->hLimiter ); - - count_free( hIvasRend ); - *st = NULL; + return IVAS_ERR_OK; } -ivas_error IVAS_REND_GetDelay( - IVAS_REND_HANDLE st, /* i : Renderer state */ - int16_t *nSamples, /* o : Renderer delay in samples */ - int32_t *timeScale /* o : Time scale of the delay, equal to renderer output sampling rate */ +ivas_error IVAS_REND_SetInputGain( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId inputId, + float gain /* linear gain, not in dB */ ) { + input_base *inputBase; + ivas_error error; - if ( st == NULL ) - { - return IVAS_ERR_UNEXPECTED_NULL_POINTER; - } + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ - if ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) + if ( hIvasRend == NULL ) { - if ( ( st->decDummyAmbiBin != NULL && st->decDummyAmbiBin->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) || - ( st->decDummyObjBin != NULL && st->decDummyObjBin->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) || - ( st->decDummyMcBin != NULL && st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) ) - { - *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) IVAS_FB_DEC_DELAY_NS + 0.5f ) ); - } - else if ( ( st->decDummyAmbiBin != NULL ) && - ( ( st->decDummyAmbiBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) || - ( st->decDummyAmbiBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) ) - { - *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyAmbiBin->binaural_latency_ns + 0.5f ) ); - } - else if ( ( st->decDummyObjBin != NULL ) && - ( ( st->decDummyObjBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) || - ( st->decDummyObjBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) ) - { - *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyObjBin->binaural_latency_ns + 0.5f ) ); - } - else if ( ( st->decDummyMcBin != NULL ) && - ( ( st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV ) || - ( st->decDummyMcBin->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) ) ) - { - if ( st->forceBinLfeLpf ) - { - *nSamples = max( - NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyMcBin->binaural_latency_ns + 0.5f ) ), - NS2SA( st->sampleRate, ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L ) ); - } - else - { - *nSamples = NS2SA( st->sampleRate, (int32_t) ( (float) st->decDummyMcBin->binaural_latency_ns + 0.5f ) ); - } - } - else - { - *nSamples = 0; - } + return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - else + if ( ( error = getInputById( hIvasRend, inputId, (void **) &inputBase ) ) != IVAS_ERR_OK ) { - *nSamples = 0; + return error; } - *timeScale = st->sampleRate; + inputBase->gain = gain; return IVAS_ERR_OK; } -#ifdef DEBUGGING -int32_t IVAS_REND_GetNoCLipping( - IVAS_REND_HANDLE st /* i : Renderer state */ -) -{ - return st->numClipping; -} - -int32_t IVAS_REND_GetCntFramesLimited( - IVAS_REND_HANDLE st /* i : Renderer state */ -) +static int32_t getNumLfeChannels( input_mc *inputMc ) { - if (st->hLimiter == NULL) + switch ( inputMc->base.inConfig ) { - return 0; + case IVAS_REND_AUDIO_CONFIG_5_1: + case IVAS_REND_AUDIO_CONFIG_7_1: + case IVAS_REND_AUDIO_CONFIG_5_1_2: + case IVAS_REND_AUDIO_CONFIG_5_1_4: + case IVAS_REND_AUDIO_CONFIG_7_1_4: + return 1; + case IVAS_REND_AUDIO_CONFIG_LS_CUSTOM: + return inputMc->customLsInput.num_lfe; + default: + break; } - - return st->hLimiter->cnt_frames_limited; -} -#endif -/* ============================= Local functions ============================ */ -static float *get_smpl_ptr( IVAS_REND_AudioBuffer buffer, uint32_t chnlIdx, uint32_t smplIdx ) -{ - return buffer.data + chnlIdx * buffer.config.bufferSize + smplIdx; + return 0; } -static void applyGainToBuffer( const IVAS_REND_AudioBuffer buffer, const uint32_t bufChIdx, float gain_lin ) +ivas_error IVAS_REND_SetInputLfeRouting( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId inputId, + IVAS_REND_LfeRouting lfeRouting ) { - int32_t smplIdx, chnlIdx; - float *smplPtr; + input_base *pInputBase; + input_mc *pInputMc; + ivas_error error; - /* TODO(sgi): Fix channel indexing - provide range of channels to be modified */ - /* Return early for now, this function is buggy */ - return; + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ - smplPtr = buffer.data + bufChIdx; - for ( chnlIdx = 0; chnlIdx < buffer.config.numChannels; ++chnlIdx ) + if ( hIvasRend == NULL ) { - for ( smplIdx = 0; smplIdx < buffer.config.bufferSize; ++smplIdx ) - { - *smplPtr++ *= gain_lin; - } + return IVAS_ERR_UNEXPECTED_NULL_POINTER; } -} - -static void copyBufferTo2dArray( const IVAS_REND_AudioBuffer buffer, const uint32_t chInIdx, const uint32_t numCh, float array[MAX_OUTPUT_CHANNELS][L_FRAME48k] ) -{ - int32_t smplIdx; - uint32_t chnlIdx; - const float *readPtr; - - readPtr = buffer.data + chInIdx * buffer.config.bufferSize; - for ( chnlIdx = 0; chnlIdx < numCh; ++chnlIdx ) + if ( ( error = getInputById( hIvasRend, inputId, (void **) &pInputBase ) ) != IVAS_ERR_OK ) { - for ( smplIdx = 0; smplIdx < buffer.config.bufferSize; ++smplIdx ) - { - array[chnlIdx][smplIdx] = *readPtr++; - } + return error; } -} + if ( getAudioConfigType( pInputBase->inConfig ) != IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) + { + /* Custom LFE routing only makes sense with channel-based input */ + return IVAS_ERR_INVALID_INPUT_FORMAT; + } + pInputMc = (input_mc *) pInputBase; -static void copy2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME48k], IVAS_REND_AudioBuffer *buffer, const uint32_t chOutIdx, const uint32_t numCh ) -{ - int32_t smplIdx; - uint32_t chnlIdx; - float *writePtr; + if ( getNumLfeChannels( pInputMc ) != lfeRouting.numLfeChannels ) + { + return IVAS_ERR_WRONG_NUM_CHANNELS; + } - writePtr = buffer->data + chOutIdx * buffer->config.bufferSize; - for ( chnlIdx = 0; chnlIdx < numCh; ++chnlIdx ) + pInputMc->lfeRouting = lfeRouting; + if ( ( error = updateMcPanGains( pInputMc, hIvasRend->outputConfig ) ) != IVAS_ERR_OK ) { - for ( smplIdx = 0; smplIdx < buffer->config.bufferSize; ++smplIdx ) - { - *writePtr++ = array[chnlIdx][smplIdx]; - } + return error; } + + return IVAS_ERR_OK; } -static void renderAmbiToAmbi( const IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ) +ivas_error IVAS_REND_RemoveInput( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId inputId ) { - float *inSmpl; - float *outSmpl; - int16_t lastChannelIdx; - int16_t smplIdx; - int16_t chnlIdx; - uint32_t inAmbiChannelIdx; - uint32_t ambiIdx; - float gain_lin; + ivas_error error; + input_base *inputBase; + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ -#ifdef WMOPS - wmops_sub_start( "renderAmbiToAmbi" ); -#endif + if ( hIvasRend == NULL ) + { + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } + if ( ( error = getInputById( hIvasRend, inputId, (void **) &inputBase ) ) != IVAS_ERR_OK ) + { + return error; + } - /* Iterate over given Ambisonics inputs */ - for ( ambiIdx = 0; ambiIdx < st->inConfig.numAmbisonicsBuses; ++ambiIdx ) + switch ( getAudioConfigType( inputBase->inConfig ) ) { - inAmbiChannelIdx = st->inConfig.ambisonicsBuses[ambiIdx].inputChannelIndex; + case IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED: + clearInputIsm( (input_ism *) inputBase ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: + clearInputMc( (input_mc *) inputBase ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS: + clearInputSba( (input_sba *) inputBase ); + break; + default: + return IVAS_ERR_INVALID_INPUT_FORMAT; + } - /* Find out how many channels to process */ - lastChannelIdx = min( getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ), st->numOutChannels ) - 1; + return IVAS_ERR_OK; +} - gain_lin = dBToLin( st->inConfig.ambisonicsBuses[ambiIdx].gain_dB ); +ivas_error IVAS_REND_GetInputNumChannels( + IVAS_REND_CONST_HANDLE hIvasRend, + IVAS_REND_InputId inputId, + int32_t *numChannels ) +{ + ivas_error error; + const input_base *pInput; - /* Passthrough channels */ - for ( chnlIdx = 0; chnlIdx <= lastChannelIdx; ++chnlIdx ) - { - inSmpl = get_smpl_ptr( inAudio, chnlIdx + inAmbiChannelIdx, 0 ); - outSmpl = get_smpl_ptr( outAudio, chnlIdx, 0 ); + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ - for ( smplIdx = 0; smplIdx < inAudio.config.bufferSize; ++smplIdx ) - { - *outSmpl += *inSmpl * gain_lin; + if ( hIvasRend == NULL || numChannels == NULL ) + { + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } - ++inSmpl; - ++outSmpl; - } - } + if ( ( error = getConstInputById( hIvasRend, inputId, (const void **) &pInput ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = getRendInputNumChannels( pInput, numChannels ) ) != IVAS_ERR_OK ) + { + return error; } -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -static void renderChannelsToAmbi( IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ) +ivas_error IVAS_REND_GetDelay( + IVAS_REND_CONST_HANDLE hIvasRend, /* i : Renderer state */ + int16_t *nSamples, /* o : Renderer delay in samples */ + int32_t *timeScale /* o : Time scale of the delay, equal to renderer output sampling rate */ +) { - const uint32_t *lfeLastIdxs; - uint32_t inMcChannelIdx; - uint32_t numNonLfeInChannels; - uint32_t numInChannels; - uint32_t mcIdx; - uint32_t inChIdx; - uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; - float gain_lin; + /* TODO tmu : this function only returns the maximum delay across all inputs + * Ideally each input has its own delay buffer and everything is aligned (binaural and LFE filtering delays are nonuniform) + */ + int16_t i; + int32_t latency_ns; -#ifdef WMOPS - wmops_sub_start( "renderChannelsToAmbi" ); -#endif + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ - /* Iterate over given MC inputs */ - for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) + if ( hIvasRend == NULL || nSamples == NULL || timeScale == NULL ) { - /* Get channel idx of current MC input within the multitrack buffer */ - inMcChannelIdx = st->inConfig.multiChannelBuses[mcIdx].inputChannelIndex; - - /* Number of input speakers */ - if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) - { - numInChannels = st->inConfig.inSetupCustom->num_spk + st->inConfig.inSetupCustom->num_lfe; - numNonLfeInChannels = st->inConfig.inSetupCustom->num_spk; - - /* Reordered indices for custom loudspeaker input */ - if ( st->inConfig.inSetupCustom->num_lfe > 0 ) - { - lfeLastIdx_lsCustom[numNonLfeInChannels] = st->inConfig.inSetupCustom->lfe_idx[0]; - } + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } - for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) - { - ( ( st->inConfig.inSetupCustom->num_lfe > 0 ) && ( (int16_t) inChIdx >= st->inConfig.inSetupCustom->lfe_idx[0] ) ) ? ( lfeLastIdx_lsCustom[inChIdx] = inChIdx + 1 ) : ( lfeLastIdx_lsCustom[inChIdx] = inChIdx ); - } + *timeScale = hIvasRend->sampleRateOut; + *nSamples = 0; - lfeLastIdxs = &lfeLastIdx_lsCustom[0]; - } - else + /* Compute the maximum delay across all inputs */ + for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; i++ ) + { + if ( hIvasRend->inputsIsm[i].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - numInChannels = getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - numNonLfeInChannels = getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - lfeLastIdxs = getReorderedChannelIndices( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + latency_ns = max( hIvasRend->inputsIsm[i].crendWrapper.binaural_latency_ns, + hIvasRend->inputsIsm[i].tdRendWrapper.binaural_latency_ns ); + *nSamples = max( *nSamples, NS2SA( *timeScale, latency_ns ) ); } + } - gain_lin = dBToLin( st->inConfig.multiChannelBuses[mcIdx].gain_dB ); - - /* Iterate over channels */ - for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) + for ( i = 0; i < RENDERER_MAX_MC_INPUTS; i++ ) + { + if ( hIvasRend->inputsMc[i].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - applyChannelGainsAndAddToOutput( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->speakerPanGains[mcIdx][inChIdx], - NULL, - gain_lin, - st->crossfade, - outAudio ); + latency_ns = max( hIvasRend->inputsMc[i].crendWrapper.binaural_latency_ns, + hIvasRend->inputsMc[i].tdRendWrapper.binaural_latency_ns ); + *nSamples = max( *nSamples, NS2SA( *timeScale, latency_ns ) ); } + } - if ( st->neverDropLfe ) + for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; i++ ) + { + if ( hIvasRend->inputsSba[i].base.inConfig != IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - /* Render LFE channels into the scene */ - for ( ; inChIdx < numInChannels; ++inChIdx ) - { - applyChannelGainsAndAddToOutput( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->lfePanGains, - NULL, - gain_lin, - st->crossfade, - outAudio ); - } + latency_ns = hIvasRend->inputsSba[i].crendWrapper.binaural_latency_ns; + *nSamples = max( *nSamples, NS2SA( *timeScale, latency_ns ) ); } } -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -static void renderObjectsToAmbi( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, - IVAS_REND_AudioBuffer outAudio ) +ivas_error IVAS_REND_FeedInputAudio( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId inputId, + IVAS_REND_ReadOnlyAudioBuffer inputAudio ) { - const IVAS_REND_AudioObject *curObj; - uint32_t objIdx; - IVAS_REND_AudioObjectPosition pos; - float gain_lin; - -#ifdef WMOPS - wmops_sub_start( "renderObjectsToAmbi" ); -#endif + ivas_error error; + input_base *inputBase; + int32_t numInputChannels; - assert( st->inConfig.numAudioObjects == metadataBuffer.numObjects && "Metadata provided for a different number of objects than found in input" ); + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ - /* Iterate over given audio objects */ - for ( objIdx = 0; objIdx < st->inConfig.numAudioObjects; ++objIdx ) + if ( hIvasRend == NULL || inputAudio.data == NULL ) { - /* Get pointer to current object and its metadata */ - curObj = &st->inConfig.audioObjects[objIdx]; - pos = metadataBuffer.positions[objIdx]; - gain_lin = dBToLin( st->inConfig.audioObjects[objIdx].gain_dB ); + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } + if ( inputAudio.config.numSamplesPerChannel <= 0 || MAX_BUFFER_LENGTH_PER_CHANNEL < inputAudio.config.numSamplesPerChannel ) + { + return IVAS_ERR_INVALID_BUFFER_SIZE; + } + if ( inputAudio.config.numChannels <= 0 || MAX_INPUT_CHANNELS < inputAudio.config.numChannels ) + { + return IVAS_ERR_WRONG_NUM_CHANNELS; + } + if ( getAudioConfigType( hIvasRend->outputConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL && + inputAudio.config.numSamplesPerChannel * 1000 != BINAURAL_RENDERING_FRAME_SIZE_MS * hIvasRend->sampleRateOut ) + { + /* Binaural rendering requires specific frame size */ + return IVAS_ERR_INVALID_BUFFER_SIZE; + } - /* Render to ambisonics */ - renderSingleObjectToAmbi( - st, - inAudio, - curObj->inputChannelIndex, - &st->objPanInfo[objIdx], - pos, - gain_lin, - outAudio ); + if ( ( error = getInputById( hIvasRend, inputId, (void **) &inputBase ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = getRendInputNumChannels( inputBase, &numInputChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( numInputChannels != inputAudio.config.numChannels ) + { + return IVAS_ERR_WRONG_NUM_CHANNELS; } -#ifdef WMOPS - wmops_sub_end(); -#endif + inputBase->inputBuffer.config = inputAudio.config; + + mvr2r( inputAudio.data, + inputBase->inputBuffer.data, + inputAudio.config.numSamplesPerChannel * inputAudio.config.numChannels ); + + inputBase->numNewSamplesPerChannel = inputAudio.config.numSamplesPerChannel; + + return IVAS_ERR_OK; } -static void renderMasaToAmbi( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ) +ivas_error IVAS_REND_FeedInputObjectMetadata( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId inputId, + IVAS_REND_AudioObjectPosition objectPosition ) { - uint32_t inMasaChannelIdx; - float gain_lin; - float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + input_base *inputBase; + input_ism *inputIsm; + ivas_error error; - inMasaChannelIdx = st->inConfig.masaBus.inputChannelIndex; - gain_lin = dBToLin( st->inConfig.masaBus.gain_dB ); + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ - applyGainToBuffer( inAudio, inMasaChannelIdx, gain_lin ); - copyBufferTo2dArray( inAudio, inMasaChannelIdx, st->numInChannelsMasa, tmpBuffer ); + if ( hIvasRend == NULL ) + { + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } + if ( ( error = getInputById( hIvasRend, inputId, (void **) &inputBase ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( inputBase->inConfig != IVAS_REND_AUDIO_CONFIG_OBJECT ) + { + /* Object metadata should only be fed for object inputs */ + return IVAS_ERR_METADATA_NOT_EXPECTED; + } - /* TODO @ Nokia: Process audio in-place in tmpBuffer. MASA metadata for current frame already available in st->masaMetadata. */ - memset( tmpBuffer, 0, sizeof( tmpBuffer ) ); + inputIsm = (input_ism *) inputBase; + inputIsm->previousPos = inputIsm->currentPos; + inputIsm->currentPos = objectPosition; - copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); + return IVAS_ERR_OK; } -static void renderAmbiToChannels( const IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ) +ivas_error IVAS_REND_SetHeadRotation( + IVAS_REND_HANDLE hIvasRend, + const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] ) { - uint32_t inAmbiChannelIdx; - uint32_t ambiIdx; - uint32_t numInAmbiChnls; - uint32_t ambiChnIdx; - float gain_lin; + int16_t i; -#ifdef WMOPS - wmops_sub_start( "renderAmbiToChannels" ); -#endif + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ - /* Iterate over all given ambisonics inputs */ - for ( ambiIdx = 0; ambiIdx < st->inConfig.numAmbisonicsBuses; ++ambiIdx ) + if ( hIvasRend == NULL ) { - inAmbiChannelIdx = st->inConfig.ambisonicsBuses[ambiIdx].inputChannelIndex; - - /* Number of input channels */ - numInAmbiChnls = getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ); - - gain_lin = dBToLin( st->inConfig.multiChannelBuses[ambiIdx].gain_dB ); + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } + if ( getAudioConfigType( hIvasRend->outputConfig ) != IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) + { + /* Head rotation can be set only with binaural output */ + return IVAS_ERR_METADATA_NOT_EXPECTED; + } - /* Render each ambisonics channel */ - for ( ambiChnIdx = 0; ambiChnIdx < numInAmbiChnls; ++ambiChnIdx ) + if ( headRot == NULL ) + { + hIvasRend->headRotData.headRotEnabled = 0; + } + else + { + hIvasRend->headRotData.headRotEnabled = 1; + for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) { - /* Write decoding gains to temp buffer */ - getHoaDecVecForAmbiChnl( ambiChnIdx, st->outConfig, st->ambi_dec_mtx, st->tmpGainBuffer ); - - /* Apply decoding gains and add to output */ - applyChannelGainsAndAddToOutput( inAudio, - inAmbiChannelIdx + ambiChnIdx, - st->tmpGainBuffer, - NULL, - gain_lin, - st->crossfade, - outAudio ); + hIvasRend->headRotData.headPositions[i] = headRot[i]; } } -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -static void renderChannelsToChannels( - const IVAS_REND_HANDLE st, +/* Take one channel from input buffer and copy it to each channel + in output buffer, with different gain applied per output channel. + This function takes 2 gain vectors - one for the beginning and one + for the end of the buffer. Gain values are lineraly interpolated + for all samples in between. */ +static void renderBufferChannelLerp( const IVAS_REND_AudioBuffer inAudio, + const int32_t inChannelIdx, + const float *const gainsCurrent, + const float *const gainsPrev, IVAS_REND_AudioBuffer outAudio ) { - const uint32_t *lfeLastIdxs; - uint32_t inMcChannelIdx; - uint32_t numNonLfeInChannels; - uint32_t numInChannels; - uint32_t passThroughIdx; - uint32_t mcIdx; - uint32_t inChIdx; - uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; - float gain_lin; - -#ifdef WMOPS - wmops_sub_start( "renderChannelsToChannels" ); -#endif + const float *inSmpl; + float *outSmpl; + float fadeIn; + float fadeOut; + int32_t i; + const float *lastInSmpl; + int16_t outChnlIdx; + float currentGain; + float previousGain; - passThroughIdx = 0; + /* Pointer to behind last input sample */ + lastInSmpl = getSmplPtr( inAudio, inChannelIdx, inAudio.config.numSamplesPerChannel ); - /* Iterate over given MC inputs */ - for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) + for ( outChnlIdx = 0; outChnlIdx < outAudio.config.numChannels; ++outChnlIdx ) { - /* Get channel idx of current MC input within the multitrack buffer */ - inMcChannelIdx = st->inConfig.multiChannelBuses[mcIdx].inputChannelIndex; + currentGain = gainsCurrent[outChnlIdx]; + previousGain = gainsPrev == NULL ? 0.f : gainsPrev[outChnlIdx]; - if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + /* Process current output channel only if applying non-zero gains */ + if ( fabsf( currentGain ) > EPSILON || ( gainsPrev != NULL && fabsf( previousGain ) > EPSILON ) ) { - /* Number of non-LFE input channels */ - numNonLfeInChannels = st->inConfig.inSetupCustom->num_spk; - - /* Number of all input channels */ - numInChannels = st->inConfig.inSetupCustom->num_spk + st->inConfig.inSetupCustom->num_lfe; + /* Reset input pointer to the beginning of input channel */ + inSmpl = getSmplPtr( inAudio, inChannelIdx, 0 ); - /* Reordered indices for custom loudspeaker input */ - if ( st->inConfig.inSetupCustom->num_lfe > 0 ) - { - lfeLastIdx_lsCustom[numNonLfeInChannels] = st->inConfig.inSetupCustom->lfe_idx[0]; - } + /* Set output pointer to first output channel sample */ + outSmpl = getSmplPtr( outAudio, outChnlIdx, 0 ); - for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) + if ( gainsPrev == NULL || fabsf( previousGain - currentGain ) <= EPSILON ) { - ( ( st->inConfig.inSetupCustom->num_lfe > 0 ) && ( (int16_t) inChIdx >= st->inConfig.inSetupCustom->lfe_idx[0] ) ) ? ( lfeLastIdx_lsCustom[inChIdx] = inChIdx + 1 ) : ( lfeLastIdx_lsCustom[inChIdx] = inChIdx ); - } - - lfeLastIdxs = &lfeLastIdx_lsCustom[0]; - } - else - { - /* Number of non-LFE input channels */ - numNonLfeInChannels = getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - /* Number of all input channels */ - numInChannels = getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - lfeLastIdxs = getReorderedChannelIndices( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - } - - - gain_lin = dBToLin( st->inConfig.multiChannelBuses[mcIdx].gain_dB ); + /* If no interpolation from previous frame, apply current gain */ + do + { + *outSmpl += currentGain * ( *inSmpl ); + ++outSmpl; + ++inSmpl; - /* Iterate over non-LFE channels */ - for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) - { - if ( st->mcPassthrough[passThroughIdx] == -1 ) - { - applyChannelGainsAndAddToOutput( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->speakerPanGains[mcIdx][inChIdx], - NULL, - gain_lin, - st->crossfade, - outAudio ); + } while ( inSmpl != lastInSmpl ); } else { - passthroughChannel( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->mcPassthrough[passThroughIdx], - gain_lin, - outAudio ); - } - - ++passThroughIdx; - } + i = 0; - /* Iterate over LFE channels */ - for ( ; inChIdx < numInChannels; ++inChIdx ) - { - /* Pass through if possible */ - if ( st->mcPassthrough[passThroughIdx] != -1 ) - { - passthroughChannel( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->mcPassthrough[passThroughIdx], - gain_lin, - outAudio ); - } - else - { - if ( st->neverDropLfe ) + /* Otherwise use weighted average between previous and current gain */ + do { - applyChannelGainsAndAddToOutput( inAudio, - inMcChannelIdx + lfeLastIdxs[inChIdx], - st->lfePanGains, - NULL, - gain_lin, - st->crossfade, - outAudio ); - } - } + /* TODO(sgi): This is calculated for each output channel - can be optimised */ + fadeIn = (float) i / ( outAudio.config.numSamplesPerChannel - 1 ); + fadeOut = 1.0f - fadeIn; - ++passThroughIdx; + *outSmpl += ( fadeIn * currentGain + fadeOut * previousGain ) * ( *inSmpl ); + ++outSmpl; + ++inSmpl; + ++i; + } while ( inSmpl != lastInSmpl ); + } } } - -#ifdef WMOPS - wmops_sub_end(); -#endif } -static void renderObjectsToChannels( - IVAS_REND_HANDLE st, +/* Take one channel from input buffer and copy it to each channel + in output buffer, with different gain applied per output channel */ +static void renderBufferChannel( const IVAS_REND_AudioBuffer inAudio, - const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, + const int32_t inChannelIdx, + const float *const outputGains, IVAS_REND_AudioBuffer outAudio ) { - const IVAS_REND_AudioObject *curObj; - uint32_t objIdx; - IVAS_REND_AudioObjectPosition pos; - float gain_lin; - -#ifdef WMOPS - wmops_sub_start( "renderObjectsToChannels" ); -#endif - - assert( st->inConfig.numAudioObjects == metadataBuffer.numObjects && "Metadata provided for a different number of objects than found in input" ); - - /* Iterate over given audio objects */ - for ( objIdx = 0; objIdx < st->inConfig.numAudioObjects; ++objIdx ) - { - /* Get pointer to current object and its metadata */ - curObj = &st->inConfig.audioObjects[objIdx]; - pos = metadataBuffer.positions[objIdx]; - gain_lin = dBToLin( st->inConfig.audioObjects[objIdx].gain_dB ); - - /* Render to MC */ - renderSingleObjectToChannels( - st, - inAudio, - curObj->inputChannelIndex, - &st->objPanInfo[objIdx], - pos, - gain_lin, - outAudio ); - } - -#ifdef WMOPS - wmops_sub_end(); -#endif + renderBufferChannelLerp( inAudio, inChannelIdx, outputGains, NULL, outAudio ); } -static void copyHeadRotToDecDummy( const IVAS_QUATERNION *headRot, DecoderDummy *decDummy ) +static ivas_error rotateFrameMc( + IVAS_REND_AudioBuffer inAudio, /* i : Input Audio buffer */ + IVAS_REND_AudioConfig inConfig, /* i : Input Audio config */ + LSSETUP_CUSTOM_STRUCT inCustomLs, /* i : Input Custom LS setup */ + const IVAS_REND_HeadRotData *headRotData, /* i : Head rotation data */ + rotation_gains gains_prev, /* i/o: Previous frame rotation gains */ + const EFAP_HANDLE hEFAPdata, /* i : EFAP structure */ + IVAS_REND_AudioBuffer outAudio /* o : Output Audio buffer */ +) { int16_t i; + int16_t subframe_idx, subframe_len; - assert( decDummy != NULL && decDummy->hHeadTrackData != NULL ); + int16_t azimuth, elevation; + int32_t is_planar_setup, lfe_idx; + int32_t nchan; + int32_t ch_in, ch_out; + int32_t ch_in_woLFE, ch_out_woLFE; - for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; ++i ) + float *readPtr, *writePtr; + const float *ls_azimuth, *ls_elevation; + rotation_matrix Rmat; + rotation_gains gains; + float tmp_gains[MAX_INPUT_CHANNELS]; + + if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { - decDummy->hHeadTrackData->Quaternions[i].w = headRot[i].w; - decDummy->hHeadTrackData->Quaternions[i].x = headRot[i].x; - decDummy->hHeadTrackData->Quaternions[i].y = headRot[i].y; - decDummy->hHeadTrackData->Quaternions[i].z = headRot[i].z; + getAudioConfigNumChannels( inConfig, &nchan ); + } + else + { + nchan = inCustomLs.num_spk + inCustomLs.num_lfe; } - decDummy->hHeadTrackData->num_quaternions = 0; - - /* Make sure head rotation is not performed in the renderer(s) */ - decDummy->hDecoderConfig->Opt_Headrotation = 0; -} - -static void renderMasaToChannels( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ) -{ - uint32_t inMasaChannelIdx; - float gain_lin; - float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - - inMasaChannelIdx = st->inConfig.masaBus.inputChannelIndex; - gain_lin = dBToLin( st->inConfig.masaBus.gain_dB ); - - applyGainToBuffer( inAudio, inMasaChannelIdx, gain_lin ); - copyBufferTo2dArray( inAudio, inMasaChannelIdx, st->numInChannelsMasa, tmpBuffer ); - - /* TODO @ Nokia: Process audio in-place in tmpBuffer. MASA metadata for current frame already available in st->masaMetadata. */ - memset( tmpBuffer, 0, sizeof( tmpBuffer ) ); - - copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); -} - -static void renderAmbiToBinaural( - const IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ) -{ - int16_t i; - int16_t subFrameLength; - uint32_t ambiIdx; - uint32_t inAmbiChannelIdx; - float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - float gain_lin; - int32_t numInChannels; - -#ifdef WMOPS - wmops_sub_start( "renderAmbiToBinaural" ); -#endif + getMcConfigValues( inConfig, + inCustomLs, + &ls_azimuth, + &ls_elevation, + &lfe_idx, + &is_planar_setup ); - subFrameLength = (int16_t) ( st->sampleRate / FRAMES_PER_SEC / RENDERER_HEAD_POSITIONS_PER_FRAME ); - if ( st->enableHeadRotation ) + /* initialize gains to passthrough */ + for ( ch_in = 0; ch_in < nchan; ch_in++ ) { - copyHeadRotToDecDummy( st->headRotationData, st->decDummyAmbiBin ); + set_zero( gains[ch_in], nchan ); + gains[ch_in][ch_in] = 1.f; } - for ( ambiIdx = 0; ambiIdx < st->inConfig.numAmbisonicsBuses; ++ambiIdx ) + /* subframe loop */ + subframe_len = inAudio.config.numSamplesPerChannel / RENDERER_HEAD_POSITIONS_PER_FRAME; + for ( subframe_idx = 0; subframe_idx < RENDERER_HEAD_POSITIONS_PER_FRAME; subframe_idx++ ) { - inAmbiChannelIdx = st->inConfig.ambisonicsBuses[ambiIdx].inputChannelIndex; - gain_lin = dBToLin( st->inConfig.ambisonicsBuses[ambiIdx].gain_dB ); - numInChannels = getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ); - - applyGainToBuffer( inAudio, inAmbiChannelIdx, gain_lin ); - copyBufferTo2dArray( inAudio, inAmbiChannelIdx, numInChannels, tmpBuffer ); + /* Get next quaternion and calculate rotation matrix */ + QuatToRotMat( headRotData->headPositions[subframe_idx], Rmat ); - if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + for ( ch_in = 0; ch_in < nchan; ch_in++ ) { - /* Convert SBA to 7_1_4 for BINAURAL_ROOM */ - ivas_sba_mtx_mult( tmpBuffer, inAudio.config.bufferSize, getNumChannelsAmbisonics( st->inConfig.ambisonicsBuses[ambiIdx].ambisonicsConfig ), st->decDummyAmbiBin->hIntSetup, st->ambi_dec_mtx ); + /* skip LFE */ + if ( ch_in == lfe_idx ) + { + continue; + } - if ( st->enableHeadRotation ) + /* input channel index without LFE */ + ch_in_woLFE = ( ( lfe_idx > 0 ) && ( ch_in >= lfe_idx ) ) ? ch_in - 1 : ch_in; + + /* gains for current subframe rotation */ + rotateAziEle( ls_azimuth[ch_in_woLFE], + ls_elevation[ch_in_woLFE], + &azimuth, + &elevation, + Rmat, + is_planar_setup ); + + if ( hEFAPdata != NULL && ( ls_azimuth[ch_in_woLFE] != azimuth || ls_elevation[ch_in_woLFE] != elevation ) ) { - for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) + efap_determine_gains( hEFAPdata, + tmp_gains, + azimuth, + elevation, + EFAP_MODE_EFAP ); + + for ( ch_out = 0; ch_out < nchan; ch_out++ ) { - rotateFrame_sd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, subFrameLength, st->decDummyAmbiBin->hIntSetup, st->decDummyAmbiBin->hEFAPdata, i ); + /* skip LFE */ + if ( ch_out == lfe_idx ) + { + continue; + } + + /* output channel index without LFE */ + ch_out_woLFE = ( ( lfe_idx > 0 ) && ( ch_out >= lfe_idx ) ) ? ch_out - 1 : ch_out; + + gains[ch_in][ch_out] = tmp_gains[ch_out_woLFE]; } } } - else /* IVAS_REND_BINAURAL_DIRECT */ + + /* apply panning gains by mtx multiplication */ + for ( ch_out = 0; ch_out < nchan; ch_out++ ) { - if ( st->enableHeadRotation ) + for ( ch_in = 0; ch_in < nchan; ch_in++ ) { - for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) + writePtr = getSmplPtr( outAudio, ch_out, subframe_idx * subframe_len ); + readPtr = getSmplPtr( inAudio, ch_in, subframe_idx * subframe_len ); + /* crossfade with previous rotation gains */ + for ( i = 0; i < subframe_len; i++ ) { - rotateFrame_shd( st->decDummyAmbiBin->hHeadTrackData, tmpBuffer, subFrameLength, st->decDummyAmbiBin->hTransSetup, i ); + *writePtr++ += + ( *readPtr ) * ( ( 1 - headRotData->crossfade[i] ) * gains_prev[ch_in][ch_out] ) + + ( *readPtr ) * ( headRotData->crossfade[i] * gains[ch_in][ch_out] ); + readPtr++; } } } - ivas_crend_process( st->decDummyAmbiBin, tmpBuffer ); - - copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); + /* move gains to gains_prev */ + for ( i = 0; i < nchan; i++ ) + { + mvr2r( gains[i], gains_prev[i], nchan ); + } } -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -static void renderChannelsToBinaural( - const IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ) +static ivas_error rotateFrameSba( + IVAS_REND_AudioBuffer inAudio, /* i : Input Audio buffer */ + IVAS_REND_AudioConfig inConfig, /* i : Input Audio config */ + const IVAS_REND_HeadRotData *headRotData, /* i : Head rotation data */ + rotation_gains gains_prev, /* i/o: Previous frame rotation gains */ + IVAS_REND_AudioBuffer outAudio /* o : Output Audio buffer */ +) { - int16_t i; - int16_t lfeChIdx; - int16_t frameLength, subFrameLength; - int16_t binauralDelaySmp, lfeDelaySmp; - int16_t offset; - uint32_t mcIdx, inMcChannelIdx; - int32_t numInChannels; - float gain_lin; - float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - float tmpLfeBuffer[L_FRAME48k_EXT]; + int16_t i, l, n, m; + int16_t m1, m2; + int16_t shd_rot_max_order; + int16_t subframe_idx, subframe_len; -#ifdef WMOPS - wmops_sub_start( "renderChannelsToBinaural" ); -#endif + float *readPtr, *writePtr; + rotation_matrix Rmat; + float tmpRot[2 * HEADROT_ORDER + 1]; + rotation_gains gains; - frameLength = (int16_t) ( st->sampleRate / FRAMES_PER_SEC ); - subFrameLength = (int16_t) ( frameLength / RENDERER_HEAD_POSITIONS_PER_FRAME ); - if ( st->enableHeadRotation ) - { - copyHeadRotToDecDummy( st->headRotationData, st->decDummyMcBin ); - } + getAmbisonicsOrder( inConfig, &shd_rot_max_order ); - for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) + /* subframe loop */ + subframe_len = inAudio.config.numSamplesPerChannel / RENDERER_HEAD_POSITIONS_PER_FRAME; + for ( subframe_idx = 0; subframe_idx < RENDERER_HEAD_POSITIONS_PER_FRAME; subframe_idx++ ) { - inMcChannelIdx = st->inConfig.multiChannelBuses[mcIdx].inputChannelIndex; - gain_lin = dBToLin( st->inConfig.multiChannelBuses[mcIdx].gain_dB ); - numInChannels = getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - applyGainToBuffer( inAudio, inMcChannelIdx, gain_lin ); - copyBufferTo2dArray( inAudio, inMcChannelIdx, numInChannels, tmpBuffer ); - - /* Rotation in spatial domain */ - if ( st->enableHeadRotation ) + /* initialize rotation matrices with zeros */ + for ( i = 0; i < HEADROT_SHMAT_DIM; i++ ) { - for ( i = 0; i < RENDERER_HEAD_POSITIONS_PER_FRAME; i++ ) - { - rotateFrame_sd( st->decDummyMcBin->hHeadTrackData, tmpBuffer, subFrameLength, st->decDummyMcBin->hTransSetup, st->decDummyMcBin->hEFAPdata, i ); - } - } - - /* TD object renderer initialised only for 7_1 and 5_1 with headrotation or custom layout input */ - if ( ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_ROOM ) && ( ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) || - ( st->decDummyMcBin->hBinRendererTd != NULL && st->enableHeadRotation ) ) ) - { - ObjRenderIVASFrame( st->decDummyMcBin, tmpBuffer, inAudio.config.bufferSize ); - /* TODO tmu : needs delay compensation otherwise LFE is added out of alignment */ - } - else - { - ivas_crend_process( st->decDummyMcBin, tmpBuffer ); + set_zero( gains[i], HEADROT_SHMAT_DIM ); } - /* TODO tmu : this is always disabled */ - if ( st->forceBinLfeLpf ) - { - if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) - { - lfeChIdx = st->inConfig.inSetupCustom->lfe_idx[0]; - } - else - { - lfeChIdx = LFE_CHANNEL; - } - set_zero( tmpLfeBuffer, frameLength ); - mvr2r( tmpBuffer[lfeChIdx], tmpLfeBuffer, frameLength ); + /* Get next quaternion and calculate rotation matrix */ + QuatToRotMat( headRotData->headPositions[subframe_idx], Rmat ); - /* Low pass filtering */ - ivas_filter_process( &st->lfeLpFilter, tmpLfeBuffer, frameLength ); + /* calculate ambisonics rotation matrices for the previous and current frames */ + SHrotmatgen( gains, Rmat, shd_rot_max_order ); - /* Delay adjustment */ - lfeDelaySmp = NS2SA( st->sampleRate, ivas_lfe_lpf_delay[IVAS_FILTER_ORDER_4 - 3] * 1000000000L ); - binauralDelaySmp = NS2SA( st->sampleRate, st->decDummyMcBin->binaural_latency_ns ); + for ( i = 0; i < subframe_len; i++ ) + { + /* As the rotation matrix becomes block diagonal in a SH basis, we can*/ + /* apply each angular-momentum block individually to save complexity. */ - if ( lfeDelaySmp > binauralDelaySmp ) + /* loop over l blocks */ + m1 = 1; + m2 = 4; + for ( l = 1; l <= shd_rot_max_order; l++ ) { - /* delay binauralised signal */ - offset = lfeDelaySmp - binauralDelaySmp; - for ( i = 0; i < numInChannels; ++i ) + /* compute mtx-vector product for this l */ + for ( n = m1; n < m2; n++ ) { - if ( i == lfeChIdx ) + tmpRot[n - m1] = 0.f; + + for ( m = m1; m < m2; m++ ) { - continue; + readPtr = getSmplPtr( inAudio, m, subframe_idx * subframe_len + i ); + /* crossfade with previous rotation gains */ + tmpRot[n - m1] += headRotData->crossfade[i] * gains[n][m] * ( *readPtr ) + + ( 1 - headRotData->crossfade[i] ) * gains_prev[n][m] * ( *readPtr ); } - delay_signal( tmpBuffer[i], frameLength, st->delayOffsetBuffer[i], offset ); } } - else if ( lfeDelaySmp < binauralDelaySmp ) + /* write back the result */ + for ( n = m1; n < m2; n++ ) { - /* delay LFE signal */ - offset = binauralDelaySmp - lfeDelaySmp; - delay_signal( tmpLfeBuffer, frameLength, st->delayOffsetBuffer[lfeChIdx], offset ); + writePtr = getSmplPtr( outAudio, n, subframe_idx * subframe_len + i ); + ( *writePtr ) = tmpRot[n - m1]; } - - mvr2r( tmpLfeBuffer, tmpBuffer[lfeChIdx], frameLength ); + m1 = m2; + m2 += 2 * ( l + 1 ) + 1; } - ivas_binaural_add_LFE( st->decDummyMcBin, frameLength, tmpBuffer ); + /*unoptimized code for reference (full matrix multiplication)*/ + // for ( n = 0; n < nchan; n++ ) + // { + // tmpRot[n] = 0.f; + // + // for ( m = 0; m < nchan; m++ ) + // { + // tmpRot[n] += SHrotmat[n][m] * output[m][i]; + // } + // } + // for ( n = 0; n < nchan; n++ ) + // { + // output[n][i] = tmpRot[n]; + // } - copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); + /* move SHrotmat to SHrotmat_prev */ + for ( i = 0; i < HEADROT_SHMAT_DIM; i++ ) + { + mvr2r( gains[i], gains_prev[i], HEADROT_SHMAT_DIM ); + } } -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -static void renderObjectsToBinaural( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, +static ivas_error renderIsmToBinaural( + const input_ism *ismInput, IVAS_REND_AudioBuffer outAudio ) { - int16_t objIdx; - int16_t tmpAzi, tmpEle; - int16_t chInIdx, smplIdx; - float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - float tmpBuffer2[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - float gain_lin; - float fadeIn, fadeOut; - float *swapPtr; - uint32_t inIsmIdx; - -#ifdef WMOPS - wmops_sub_start( "renderObjectsToBinaural" ); -#endif - for ( chInIdx = 0; chInIdx < MAX_OUTPUT_CHANNELS; ++chInIdx ) - { - set_zero( tmpBuffer[chInIdx], L_FRAME48k ); - set_zero( tmpBuffer2[chInIdx], L_FRAME48k ); - } + float tmpTDRendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - assert( st->inConfig.numAudioObjects == metadataBuffer.numObjects && "Metadata provided for a different number of objects than found in input" ); - if ( st->enableHeadRotation ) - { - copyHeadRotToDecDummy( st->headRotationData, st->decDummyObjBin ); - } + ivas_error error; + + copyBufferTo2dArray( ismInput->base.inputBuffer, tmpTDRendBuffer ); - /* Iterate over given audio objects */ - for ( objIdx = 0; objIdx < metadataBuffer.numObjects; ++objIdx ) + /* TODO tmu : missing: interpolation between positions, 5ms rendering */ + if ( ( error = ivas_rend_TDObjRenderFrame( &ismInput->tdRendWrapper, + ismInput->base.inConfig, + NULL, + ismInput->base.ctx.pHeadRotData, + &ismInput->currentPos, + outAudio.config.numSamplesPerChannel, + *ismInput->base.ctx.pOutSampleRate, + tmpTDRendBuffer ) ) != IVAS_ERR_OK ) { - /* Apply head rotation directly to object positions */ - if ( st->enableHeadRotation ) - { - /* save original positions */ - tmpAzi = (int16_t) metadataBuffer.positions[objIdx].azimuth; - tmpEle = (int16_t) metadataBuffer.positions[objIdx].elevation; + return error; + } - /* apply rotation */ - QuatToRotMat( st->decDummyObjBin->hHeadTrackData->Quaternions[0], st->decDummyObjBin->hHeadTrackData->Rmat ); - rotateAziEle( - metadataBuffer.positions[objIdx].azimuth, - metadataBuffer.positions[objIdx].elevation, - &tmpAzi, - &tmpEle, - st->decDummyObjBin->hHeadTrackData->Rmat, - 0 ); + accumulate2dArrayToBuffer( tmpTDRendBuffer, &outAudio ); - /* set rotated positions in decoder dummy */ - st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth = (float) tmpAzi; - st->decDummyObjBin->hIsmMetaData[objIdx]->elevation = (float) tmpEle; - } - else - { - st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth = metadataBuffer.positions[objIdx].azimuth; - st->decDummyObjBin->hIsmMetaData[objIdx]->elevation = metadataBuffer.positions[objIdx].elevation; - } + return IVAS_ERR_OK; +} - inIsmIdx = st->inConfig.audioObjects[objIdx].inputChannelIndex; +static ivas_error renderIsmToBinauralRoom( + input_ism *ismInput, + IVAS_REND_AudioBuffer outAudio ) +{ + int16_t i; + int16_t azi_rot, ele_rot; + int16_t subframe_idx, subframe_len; + int32_t tmp; + rotation_matrix Rmat; + float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + IVAS_QUATERNION quat; - gain_lin = dBToLin( st->inConfig.audioObjects[objIdx].gain_dB ); - applyGainToBuffer( inAudio, objIdx, gain_lin ); + ivas_error error; + pan_vector currentPanGains; + pan_vector previousPanGains; + IVAS_REND_AudioBuffer tmpMcBuffer; + IVAS_REND_AudioObjectPosition rotatedPos; + const IVAS_REND_HeadRotData *headRotData; - /* Copy input audio to tmp buffer for processing */ - copyBufferTo2dArray( inAudio, inIsmIdx, 1, &tmpBuffer[objIdx] ); - } + headRotData = ismInput->base.ctx.pHeadRotData; + rotatedPos = defaultObjectPosition(); - if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + if ( headRotData->headRotEnabled ) { - for ( objIdx = 0; objIdx < metadataBuffer.numObjects; ++objIdx ) + subframe_len = ismInput->base.inputBuffer.config.numSamplesPerChannel / RENDERER_HEAD_POSITIONS_PER_FRAME; + // for ( subframe_idx = 0; subframe_idx < RENDERER_HEAD_POSITIONS_PER_FRAME; subframe_idx++ ) + for ( subframe_idx = 0; subframe_idx < 1; subframe_idx++ ) { - /* Convert ISM to 7_1_4 for BINAURAL_ROOM */ - /* TODO tmu : subframe rotation can be enabled here */ - getSpeakerGains( st, st->decDummyObjBin->hIsmMetaData[objIdx]->azimuth, st->decDummyObjBin->hIsmMetaData[objIdx]->elevation, st->tmpGainBuffer ); - - for ( chInIdx = 0; chInIdx < getNumChannelsInSpeakerLayout( IVAS_REND_SPEAKER_LAYOUT_7_1_4 ); ++chInIdx ) - { - if ( fabsf( st->tmpGainBuffer[chInIdx] ) > 0.0f || fabsf( st->objPanInfo[objIdx].panGains[chInIdx] ) > 0.0f ) - { - for ( smplIdx = 0; smplIdx < inAudio.config.bufferSize; ++smplIdx ) - { - fadeIn = st->crossfade[smplIdx]; - fadeOut = 1.0f - fadeIn; - tmpBuffer2[chInIdx][smplIdx] += ( fadeIn * st->tmpGainBuffer[chInIdx] + fadeOut * st->objPanInfo[objIdx].panGains[chInIdx] ) * tmpBuffer[objIdx][smplIdx]; - } - } - } + quat.w = headRotData->headPositions[subframe_idx].w; + quat.x = headRotData->headPositions[subframe_idx].x; + quat.y = headRotData->headPositions[subframe_idx].y; + quat.z = headRotData->headPositions[subframe_idx].z; - /* move old gains to st->objPanInfo */ - swapPtr = st->objPanInfo[objIdx].panGains; - st->objPanInfo[objIdx].panGains = st->tmpGainBuffer; - st->tmpGainBuffer = swapPtr; + QuatToRotMat( quat, Rmat ); } + (void) subframe_len; // avoid warning + } - /* render from buffer with 7_1_4 format */ - ivas_crend_process( st->decDummyObjBin, tmpBuffer2 ); - copy2dArrayToBuffer( tmpBuffer2, &outAudio, 0, st->numOutChannels ); + /* TODO tmu : missing: interpolation between positions, 5ms rendering */ + /* TODO(sgi): Possible optimization: less processing needed if position didn't change */ + /* TODO tmu2sgi: needs a lot of cleanup, we could also add rot_gains_prev to ismInput and use that */ + /* previous position gains */ + if ( headRotData->headRotEnabled ) + { + rotateAziEle( ismInput->previousPos.azimuth, + ismInput->previousPos.elevation, + &azi_rot, + &ele_rot, + ismInput->rot_mat_prev, + 0 ); + rotatedPos.azimuth = (float) azi_rot; + rotatedPos.elevation = (float) ele_rot; } - else /* IVAS_REND_BINAURAL_DIRECT */ + if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, + ( headRotData->headRotEnabled ) ? rotatedPos.azimuth : ismInput->previousPos.azimuth, + ( headRotData->headRotEnabled ) ? rotatedPos.elevation : ismInput->previousPos.elevation, + previousPanGains ) ) != IVAS_ERR_OK ) { - ObjRenderIVASFrame( st->decDummyObjBin, tmpBuffer, inAudio.config.bufferSize ); - copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); + return error; } -#ifdef WMOPS - wmops_sub_end(); -#endif -} -static void renderMasaToBinaural( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - IVAS_REND_AudioBuffer outAudio ) -{ - uint32_t inMasaChannelIdx; - float gain_lin; - float tmpBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + /* current position gains */ + if ( headRotData->headRotEnabled ) + { + rotateAziEle( ismInput->currentPos.azimuth, + ismInput->currentPos.elevation, + &azi_rot, + &ele_rot, + Rmat, + 0 ); + rotatedPos.azimuth = (float) azi_rot; + rotatedPos.elevation = (float) ele_rot; + } + if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, + ( headRotData->headRotEnabled ) ? rotatedPos.azimuth : ismInput->currentPos.azimuth, + ( headRotData->headRotEnabled ) ? rotatedPos.elevation : ismInput->currentPos.elevation, + currentPanGains ) ) != IVAS_ERR_OK ) + { + return error; + } - inMasaChannelIdx = st->inConfig.masaBus.inputChannelIndex; - gain_lin = dBToLin( st->inConfig.masaBus.gain_dB ); + for ( i = 0; i < 3; i++ ) + { + mvr2r( Rmat[i], ismInput->rot_mat_prev[i], 3 ); + } + + /* intermediate rendering to 7_1_4 */ + tmpMcBuffer = ismInput->base.inputBuffer; + getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); + tmpMcBuffer.config.numChannels = tmp; + tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); + set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels ); + + renderBufferChannelLerp( ismInput->base.inputBuffer, + 0, + currentPanGains, + previousPanGains, + tmpMcBuffer ); - applyGainToBuffer( inAudio, inMasaChannelIdx, gain_lin ); - copyBufferTo2dArray( inAudio, inMasaChannelIdx, st->numInChannelsMasa, tmpBuffer ); + copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); - /* TODO @ Nokia: Process audio in-place in tmpBuffer. MASA metadata for current frame already available in st->masaMetadata. */ - memset( tmpBuffer, 0, sizeof( tmpBuffer ) ); + ivas_rend_crendProcess( &ismInput->crendWrapper, + IVAS_REND_AUDIO_CONFIG_7_1_4, + IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM, + tmpCrendBuffer, + *ismInput->base.ctx.pOutSampleRate ); - copy2dArrayToBuffer( tmpBuffer, &outAudio, 0, st->numOutChannels ); + accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); + + count_free( tmpMcBuffer.data ); + + return IVAS_ERR_OK; } -static void renderSingleObjectToAmbi( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const uint32_t itemChnlIdx, - IVAS_REND_ObjPanInfo *prevPanInfo, - const IVAS_REND_AudioObjectPosition curFrmPos, - const float gain_lin, +static ivas_error renderIsmToMc( + const input_ism *ismInput, IVAS_REND_AudioBuffer outAudio ) { - float *swapPtr; - -#ifdef WMOPS - wmops_sub_start( "renderSingleObjectToAmbi" ); -#endif + pan_vector currentPanGains; + pan_vector previousPanGains; + ivas_error error; - /* Update panning gains if position changed */ - if ( prevPanInfo->position.azimuth != curFrmPos.azimuth || - prevPanInfo->position.elevation != curFrmPos.elevation || - st->firstFrame ) - { - /* Write current panning gains to tmpBuffer */ - ivas_dirac_dec_get_response( (int16_t) curFrmPos.azimuth, - (int16_t) curFrmPos.elevation, - st->tmpGainBuffer, - getAmbisonicsOrder( st->outConfig.ambisonics ) ); - - prevPanInfo->position.azimuth = curFrmPos.azimuth; - prevPanInfo->position.elevation = curFrmPos.elevation; - - applyChannelGainsAndAddToOutput( inAudio, - itemChnlIdx, - st->tmpGainBuffer, - st->firstFrame ? NULL : prevPanInfo->panGains, - gain_lin, - st->crossfade, - outAudio ); - - /* Save current gains as most recently applied gains */ - swapPtr = prevPanInfo->panGains; - prevPanInfo->panGains = st->tmpGainBuffer; - st->tmpGainBuffer = swapPtr; - } - /* Otherwise use most recent gains and no interpolation */ - else + /* TODO(sgi): Possible optimization: less processing needed if position didn't change */ + if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, + ismInput->currentPos.azimuth, + ismInput->currentPos.elevation, + currentPanGains ) ) != IVAS_ERR_OK ) { - applyChannelGainsAndAddToOutput( inAudio, - itemChnlIdx, - prevPanInfo->panGains, - NULL, - gain_lin, - st->crossfade, - outAudio ); + return error; + } + if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, + ismInput->previousPos.azimuth, + ismInput->previousPos.elevation, + previousPanGains ) ) != IVAS_ERR_OK ) + { + return error; } -#ifdef WMOPS - wmops_sub_end(); -#endif + /* Assume num channels in audio buffer to be 1. + * This should have been validated in IVAS_REND_FeedInputAudio() */ + renderBufferChannelLerp( ismInput->base.inputBuffer, + 0, + currentPanGains, + previousPanGains, + outAudio ); + + return IVAS_ERR_OK; } -static void renderSingleObjectToChannels( - IVAS_REND_HANDLE st, - const IVAS_REND_AudioBuffer inAudio, - const uint32_t itemChnlIdx, - IVAS_REND_ObjPanInfo *prevPanInfo, - const IVAS_REND_AudioObjectPosition curFrmPos, - const float gain_lin, +static ivas_error renderIsmToSba( + const input_ism *ismInput, + IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { - float *swapPtr; + int16_t ambiOrderOut; + int32_t numOutChannels; + pan_vector currentPanGains; + pan_vector previousPanGains; + ivas_error error; + error = IVAS_ERR_OK; -#ifdef WMOPS - wmops_sub_start( "renderSingleObjectToChannels" ); -#endif + if ( ( error = getAudioConfigNumChannels( outConfig, &numOutChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = getAmbisonicsOrder( outConfig, &ambiOrderOut ) ) != IVAS_ERR_OK ) + { + return error; + } - /* Update panning gains if position changed */ - if ( prevPanInfo->position.azimuth != curFrmPos.azimuth || - prevPanInfo->position.elevation != curFrmPos.elevation || - st->firstFrame ) - { - /* Write current panning gains to tmpBuffer */ - getSpeakerGains( st, curFrmPos.azimuth, curFrmPos.elevation, st->tmpGainBuffer ); - prevPanInfo->position.azimuth = curFrmPos.azimuth; - prevPanInfo->position.elevation = curFrmPos.elevation; - - applyChannelGainsAndAddToOutput( inAudio, - itemChnlIdx, - st->tmpGainBuffer, - st->firstFrame ? NULL : prevPanInfo->panGains, - gain_lin, - st->crossfade, - outAudio ); - - /* Save current gains as most recently applied gains */ - swapPtr = prevPanInfo->panGains; - prevPanInfo->panGains = st->tmpGainBuffer; - st->tmpGainBuffer = swapPtr; - } - /* Otherwise use most recent gains and no interpolation */ + ivas_dirac_dec_get_response( ismInput->previousPos.azimuth, + ismInput->previousPos.elevation, + previousPanGains, + ambiOrderOut ); + + if ( ( ismInput->currentPos.azimuth == ismInput->previousPos.azimuth ) && + ( ismInput->currentPos.elevation == ismInput->previousPos.elevation ) ) + { + mvr2r( previousPanGains, currentPanGains, MAX_OUTPUT_CHANNELS ); + } else { - applyChannelGainsAndAddToOutput( inAudio, - itemChnlIdx, - prevPanInfo->panGains, - NULL, - gain_lin, - st->crossfade, - outAudio ); + ivas_dirac_dec_get_response( ismInput->currentPos.azimuth, + ismInput->currentPos.elevation, + currentPanGains, + ambiOrderOut ); } -#ifdef WMOPS - wmops_sub_end(); -#endif + /* Assume num channels in audio buffer to be 1. + * This should have been validated in IVAS_REND_FeedInputAudio() */ + renderBufferChannelLerp( ismInput->base.inputBuffer, + 0, + currentPanGains, + previousPanGains, + outAudio ); + + return error; } -static void applyChannelGainsAndAddToOutput( - const IVAS_REND_AudioBuffer inAudio, - const uint32_t itemChnlIdx, - const float *const gainsCurrent, - const float *const gainsPrev, - const float gain_lin, - const float *const crossfade, +static ivas_error renderInputIsm( + input_ism *ismInput, + IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { - float *inSmpl; - float *outSmpl; - const float *fadeIn; - const float *fadeOut; - const float *lastInSmpl; - int16_t outChnlIdx; - float currentGain; - float previousGain; - -#ifdef WMOPS - wmops_sub_start( "applyChannelGainsAndAddToOutput" ); -#endif - + ivas_error error; + IVAS_REND_AudioBuffer inAudio; - /* Pointer to behind last input sample */ - lastInSmpl = get_smpl_ptr( inAudio, itemChnlIdx, inAudio.config.bufferSize ); + inAudio = ismInput->base.inputBuffer; - for ( outChnlIdx = 0; outChnlIdx < outAudio.config.numChannels; ++outChnlIdx ) + if ( ismInput->base.numNewSamplesPerChannel != outAudio.config.numSamplesPerChannel ) { -#ifdef WMOPS - wmops_sub_start( "applyChannelGainsAndAddToOutput_chnl_loop" ); -#endif - currentGain = gainsCurrent[outChnlIdx] * gain_lin; - previousGain = gainsPrev == NULL ? 0.f : gainsPrev[outChnlIdx] * gain_lin; - - /* Process current output channel only if applying non-zero gains */ - if ( fabsf( currentGain ) > EPSILON || ( gainsPrev != NULL && fabsf( previousGain ) > EPSILON ) ) - { - /* Reset crossfade pointers */ - fadeIn = crossfade; - fadeOut = &crossfade[inAudio.config.bufferSize - 1]; - - /* Reset input pointer to the beginning of input channel */ - inSmpl = get_smpl_ptr( inAudio, itemChnlIdx, 0 ); + /* Mismatch between the number of input samples vs number of requested output samples - currently not allowed */ + return IVAS_ERR_INVALID_BUFFER_SIZE; + } + ismInput->base.numNewSamplesPerChannel = 0; - /* Set output pointer to first output channel sample */ - outSmpl = get_smpl_ptr( outAudio, outChnlIdx, 0 ); + /* Apply input gain to new audio */ + v_multc( inAudio.data, + ismInput->base.gain, + inAudio.data, + inAudio.config.numSamplesPerChannel * inAudio.config.numChannels ); - if ( gainsPrev == NULL || fabsf( previousGain - currentGain ) <= EPSILON ) - { -#ifdef WMOPS - wmops_sub_start( "applyChannelGainsAndAddToOutput_smpl_loop_no_intrpl" ); -#endif - /* If no interpolation from previous frame, apply current gain */ - do - { - *outSmpl += currentGain * ( *inSmpl ); - ++outSmpl; - ++inSmpl; - } while ( inSmpl != lastInSmpl ); -#ifdef WMOPS - wmops_sub_end(); -#endif - } - else + switch ( getAudioConfigType( outConfig ) ) + { + case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: + error = renderIsmToMc( ismInput, outAudio ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS: + error = renderIsmToSba( ismInput, outConfig, outAudio ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL: + switch ( outConfig ) { -#ifdef WMOPS - wmops_sub_start( "applyChannelGainsAndAddToOutput_smpl_loop_intrpl" ); -#endif - /* Otherwise use weighted average between previous and current gain */ - do - { - *outSmpl += ( ( *fadeIn ) * currentGain + ( *fadeOut ) * previousGain ) * ( *inSmpl ); - ++outSmpl; - ++inSmpl; - - ++fadeIn; - --fadeOut; - } while ( inSmpl != lastInSmpl ); -#ifdef WMOPS - wmops_sub_end(); -#endif + case IVAS_REND_AUDIO_CONFIG_BINAURAL: + error = renderIsmToBinaural( ismInput, outAudio ); + break; + case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: + error = renderIsmToBinauralRoom( ismInput, outAudio ); + break; + default: + return IVAS_ERR_INVALID_OUTPUT_FORMAT; } - } - -#ifdef WMOPS - wmops_sub_end(); -#endif + break; + default: + return IVAS_ERR_INVALID_OUTPUT_FORMAT; + } + /* Check error here to keep switch statement more compact */ + if ( error != IVAS_ERR_OK ) + { + return error; } -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -static void prepareLfeHandling( - IVAS_REND_HANDLE st ) +static ivas_error renderActiveInputsIsm( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_AudioBuffer outAudio ) { - const float *filtCoeff; -#ifdef WMOPS - wmops_sub_start( "prepareLfeHandling" ); -#endif - /* Panning gains */ - st->lfePanGains = count_calloc( st->numOutChannels, sizeof( float ) ); + int32_t i; + input_ism *pCurrentInput; + ivas_error error; - if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) - { - /* TODO tmu : LFE in ambisonics disabled for now */ - /* Pan LFE to south pole (experimental) */ - // ivas_dirac_dec_get_response( 0, - // -90, - // st->lfePanGains, - // getAmbisonicsOrder( st->outConfig.ambisonics ) ); - } - else + for ( i = 0, pCurrentInput = hIvasRend->inputsIsm; i < RENDERER_MAX_ISM_INPUTS; ++i, ++pCurrentInput ) { - set_zero( st->lfePanGains, st->numOutChannels ); - - /* Pan LFE to L and R with -3dB gain */ - if ( st->numOutChannels > 1 ) + if ( pCurrentInput->base.inConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - /* TODO tmu : not guaranteed to be L and R for custom layouts without LFE! */ - st->lfePanGains[0] = sqrtf( 0.5f ); - st->lfePanGains[1] = sqrtf( 0.5f ); + /* Skip inactive inputs */ + continue; } - else + if ( ( error = renderInputIsm( pCurrentInput, + hIvasRend->outputConfig, + outAudio ) ) != IVAS_ERR_OK ) { - /* Put LFE in center channel */ - st->lfePanGains[0] = 1.f; + return error; } } - /* Low-pass filter */ - /* TODO: More discussion needed on LFE filtering: - - introduces delay - - introduces phase shift - - Should we do any filtering? - */ - if (st->forceBinLfeLpf) - { - ivas_lfe_lpf_select_filt_coeff( st->sampleRate, IVAS_FILTER_ORDER_4, &filtCoeff ); - ivas_filters_init( &st->lfeLpFilter, filtCoeff, IVAS_FILTER_ORDER_4 ); - } - -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -static void prepareMcPanGains( IVAS_REND_HANDLE st ) +static ivas_error renderLfeToBinaural( + const input_mc *mcInput, + IVAS_REND_AudioBuffer outAudio ) { - uint32_t mcIdx; - int32_t spkIdx; - int32_t numNonLfeChannelsIn; - const float *spkAzi; - const float *spkEle; + int16_t i; + int16_t lfe_idx; + float gain; + float *readPtr, *writePtr; -#ifdef WMOPS - wmops_sub_start( "prepareMcPanGains" ); -#endif - /* No gains required for binaural output */ - if ( ( st->outConfig.binauralFormat != IVAS_REND_BINAURAL_NONE ) && - ( st->outConfig.ambisonics == IVAS_REND_AMBISONICS_NONE || st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_NONE ) ) - { - st->speakerPanGains = NULL; - return; - } + assert( ( outAudio.config.numChannels == 2 ) && "Must be binaural output" ); - st->speakerPanGains = count_calloc( st->inConfig.numMultiChannelBuses, sizeof( float ** ) ); + gain = GAIN_LFE; - for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) + if ( mcInput->base.inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { - if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) - { - numNonLfeChannelsIn = st->inConfig.inSetupCustom->num_spk; - spkAzi = st->inConfig.inSetupCustom->ls_azimuth; - spkEle = st->inConfig.inSetupCustom->ls_elevation; - } - else - { - numNonLfeChannelsIn = getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - spkAzi = getSpeakerAzimuths( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - spkEle = getSpeakerElevations( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - } - - st->speakerPanGains[mcIdx] = count_calloc( numNonLfeChannelsIn, sizeof( float * ) ); - + lfe_idx = LFE_CHANNEL; + } + else if ( mcInput->customLsInput.num_lfe > 0 ) + { + lfe_idx = mcInput->customLsInput.lfe_idx[0]; + } + else + { + /* no LFE to render */ + return IVAS_ERR_OK; + } - if ( st->outConfig.ambisonics != IVAS_REND_AMBISONICS_NONE ) - { - for ( spkIdx = 0; spkIdx < numNonLfeChannelsIn; ++spkIdx ) - { - st->speakerPanGains[mcIdx][spkIdx] = count_calloc( st->numOutChannels, sizeof( float ) ); - ivas_dirac_dec_get_response( (int16_t) spkAzi[spkIdx], - (int16_t) spkEle[spkIdx], - st->speakerPanGains[mcIdx][spkIdx], - getAmbisonicsOrder( st->outConfig.ambisonics ) ); - } - } - else if ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_NONE ) - { - /* Custom loudspeaker layout gains */ - for ( spkIdx = 0; spkIdx < numNonLfeChannelsIn; ++spkIdx ) - { - st->speakerPanGains[mcIdx][spkIdx] = count_calloc( st->numOutChannels, sizeof( float ) ); - if ( - ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) || - ( st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) ) - { - getSpeakerGains( st, spkAzi[spkIdx], spkEle[spkIdx], st->speakerPanGains[mcIdx][spkIdx] ); - } - } + /* Copy LFE to left and right ears */ + readPtr = getSmplPtr( mcInput->base.inputBuffer, lfe_idx, 0 ); + writePtr = getSmplPtr( outAudio, 0, 0 ); + for ( i = 0; i < mcInput->base.inputBuffer.config.numSamplesPerChannel; i++ ) + { + *writePtr++ += gain * ( *readPtr++ ); + } - /* Table lookup for loudspeaker layout gains */ - if ( ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout != IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) && - ( st->outConfig.speakerLayout != IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) ) - { - int16_t i, k; - int16_t ch_in, ch_out; - int16_t index; - int16_t nchan_out; - float value; - const uint32_t *lfeLastIdxMap; - const LS_CONVERSION_MATRIX *conversion_matrix; - AUDIO_CONFIG input_config, output_config; - IVAS_REND_SpeakerLayout spkLayoutIn; - - conversion_matrix = NULL; - spkLayoutIn = st->inConfig.multiChannelBuses[mcIdx].speakerLayout; - - input_config = mapRendLayoutToAudioConfig( spkLayoutIn ); - output_config = mapRendLayoutToAudioConfig( st->outConfig.speakerLayout ); - nchan_out = audioCfg2channels( output_config ); - lfeLastIdxMap = getReorderedChannelIndices( spkLayoutIn ); - - /* Search the table for a mapping */ - for ( i = 0; i < LS_SETUP_CONVERSION_NUM_MAPPINGS; i++ ) - { - if ( ( input_config == ls_conversion_mapping[i].input_config ) && ( output_config == ls_conversion_mapping[i].output_config ) ) - { - /* Special handling for MONO and STEREO downmix */ - if ( output_config == AUDIO_CONFIG_MONO || output_config == AUDIO_CONFIG_STEREO ) - { - for ( spkIdx = 0; spkIdx < numNonLfeChannelsIn; spkIdx++ ) - { - k = lfeLastIdxMap[spkIdx]; - - /* Skip two rows in the matrix for 5.1.x formats */ - if ( spkIdx >= 5 && ( input_config == AUDIO_CONFIG_5_1_2 || input_config == AUDIO_CONFIG_5_1_4 ) ) - { - k += 2; - } - - for ( ch_out = 0; ch_out < nchan_out; ch_out++ ) - { - if ( output_config == AUDIO_CONFIG_MONO ) - { - st->speakerPanGains[mcIdx][spkIdx][ch_out] = ls_conversion_cicpX_mono[k][ch_out]; - } - else - { - if ( input_config == AUDIO_CONFIG_MONO ) - { - st->speakerPanGains[mcIdx][spkIdx][ch_out] = ls_conversion_cicpX_stereo[k + 2][ch_out]; - } - else - { - st->speakerPanGains[mcIdx][spkIdx][ch_out] = ls_conversion_cicpX_stereo[k][ch_out]; - } - } - } - } - } - else - { - conversion_matrix = ls_conversion_mapping[i].conversion_matrix; - - /* If a mapping is defined with a NULL matrix, 1:1 upmix of input channels */ - if ( conversion_matrix == NULL ) - { - for ( spkIdx = 0; spkIdx < numNonLfeChannelsIn; spkIdx++ ) - { - ch_out = lfeLastIdxMap[spkIdx]; - st->speakerPanGains[mcIdx][spkIdx][ch_out] = 1.0f; - } - } - else - { - for ( k = 1; k < ( conversion_matrix[0].index + 1 ); k++ ) - { - index = conversion_matrix[k].index; - value = conversion_matrix[k].value; - - /* Second dimension of speakerPanGains (ch_in here) is the input channel index with LFE channels skipped. - Use lfeLastIdxMap to do a reverse lookup over non-LFE channels. - reverseChannelIndexMapping will return -1 for LFE channels - those should be skipped */ - ch_in = reverseChannelIndexMapping( index / nchan_out, lfeLastIdxMap, numNonLfeChannelsIn ); - if ( ch_in < 0 ) - { - continue; - } - - ch_out = index % nchan_out; - - st->speakerPanGains[mcIdx][ch_in][ch_out] = value; - } - } - } - } - } - } - } + readPtr = getSmplPtr( mcInput->base.inputBuffer, lfe_idx, 0 ); + writePtr = getSmplPtr( outAudio, 1, 0 ); + for ( i = 0; i < mcInput->base.inputBuffer.config.numSamplesPerChannel; i++ ) + { + *writePtr++ += gain * ( *readPtr++ ); } -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -static void prepareMcPassthrough( IVAS_REND_HANDLE st ) +static ivas_error renderMcToBinaural( + input_mc *mcInput, + IVAS_REND_AudioConfig outConfig, + IVAS_REND_AudioBuffer outAudio ) { - /* Output config */ - const float *outSpkAzi; - const float *outSpkEle; - const uint32_t *lfeLastIdxs; - uint32_t numNonLfeOutChannels; - uint32_t numOutChannels; - uint32_t lfeLastIdx_lsCustom[MAX_OUTPUT_CHANNELS]; + int8_t headRotEnabled; + float tmpRendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + IVAS_REND_AudioConfig inConfig; - /* Input config */ - const float *inSpkAzi; - const float *inSpkEle; - uint32_t numInChannels; - uint32_t numNonLfeInChannels; - - /* Input channel index */ - uint32_t passThroughIdx; - - uint32_t mcIdx; - uint32_t inChIdx; - uint32_t outChIdx; - -#ifdef WMOPS - wmops_sub_start( "prepareMcPassthrough" ); -#endif - - st->mcPassthrough = count_calloc( st->numInChannelsMc, sizeof( int32_t ) ); + ivas_error error; + IVAS_REND_AudioBuffer tmpRotBuffer; + headRotEnabled = mcInput->base.ctx.pHeadRotData->headRotEnabled; + inConfig = mcInput->base.inConfig; - if ( st->outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + if ( ( inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) || + ( headRotEnabled && ( inConfig == IVAS_REND_AUDIO_CONFIG_5_1 || inConfig == IVAS_REND_AUDIO_CONFIG_7_1 ) ) ) { - /* Number of non-LFE output channels */ - numNonLfeOutChannels = st->outConfig.outSetupCustom->num_spk; - - /* Number of output channels */ - numOutChannels = st->outConfig.outSetupCustom->num_spk + st->outConfig.outSetupCustom->num_lfe; - - /* Output speaker coordinates */ - outSpkAzi = st->outConfig.outSetupCustom->ls_azimuth; - outSpkEle = st->outConfig.outSetupCustom->ls_elevation; + copyBufferTo2dArray( mcInput->base.inputBuffer, tmpRendBuffer ); - /* num_spk + num_lfe must be <= MAX_OUTPUT_CHANNELS for custom loudspeaker layouts */ - if ( st->outConfig.outSetupCustom->num_lfe > 0 ) + if ( ( error = ivas_rend_TDObjRenderFrame( &mcInput->tdRendWrapper, + mcInput->base.inConfig, + &mcInput->customLsInput, + mcInput->base.ctx.pHeadRotData, + NULL, + mcInput->base.inputBuffer.config.numSamplesPerChannel, + *mcInput->base.ctx.pOutSampleRate, + tmpRendBuffer ) ) != IVAS_ERR_OK ) { - lfeLastIdx_lsCustom[numNonLfeOutChannels] = st->outConfig.outSetupCustom->lfe_idx[0]; - } - - for ( outChIdx = 0; outChIdx < numNonLfeOutChannels; ++outChIdx ) - { - ( ( st->outConfig.outSetupCustom->num_lfe > 0 ) && ( (int16_t) outChIdx >= st->outConfig.outSetupCustom->lfe_idx[0] ) ) ? ( lfeLastIdx_lsCustom[outChIdx] = outChIdx + 1 ) : ( lfeLastIdx_lsCustom[outChIdx] = outChIdx ); + return error; } - - lfeLastIdxs = &lfeLastIdx_lsCustom[0]; } else { - /* Number of non-LFE output channels */ - numNonLfeOutChannels = getNumNonLfeChannelsInSpeakerLayout( st->outConfig.speakerLayout ); - - /* Number of output channels */ - numOutChannels = getNumChannelsInSpeakerLayout( st->outConfig.speakerLayout ); - - /* Output speaker coordinates */ - outSpkAzi = getSpeakerAzimuths( st->outConfig.speakerLayout ); - outSpkEle = getSpeakerElevations( st->outConfig.speakerLayout ); - - lfeLastIdxs = getReorderedChannelIndices( st->outConfig.speakerLayout ); - } - - passThroughIdx = 0; - for ( mcIdx = 0; mcIdx < st->inConfig.numMultiChannelBuses; ++mcIdx ) - { - if ( st->inConfig.multiChannelBuses[mcIdx].speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + /* apply rotation */ + if ( headRotEnabled ) { - /* Number of non-LFE input channels for current MC input */ - numNonLfeInChannels = st->inConfig.inSetupCustom->num_spk; + tmpRotBuffer = mcInput->base.inputBuffer; + tmpRotBuffer.data = count_malloc( tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels * sizeof( float ) ); + set_zero( tmpRotBuffer.data, tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels ); - /* Number of input channels for current MC input */ - numInChannels = st->inConfig.inSetupCustom->num_spk + st->inConfig.inSetupCustom->num_lfe; + rotateFrameMc( mcInput->base.inputBuffer, + mcInput->base.inConfig, + mcInput->customLsInput, + mcInput->base.ctx.pHeadRotData, + mcInput->rot_gains_prev, + mcInput->efapInWrapper.hEfap, + tmpRotBuffer ); - /* Input speaker coordinates */ - inSpkAzi = st->inConfig.inSetupCustom->ls_azimuth; - inSpkEle = st->inConfig.inSetupCustom->ls_elevation; + copyBufferTo2dArray( tmpRotBuffer, tmpRendBuffer ); + count_free( tmpRotBuffer.data ); } else { - /* Number of non-LFE input channels for current MC input */ - numNonLfeInChannels = getNumNonLfeChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - /* Number of input channels for current MC input */ - numInChannels = getNumChannelsInSpeakerLayout( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - - /* Input speaker coordinates */ - inSpkAzi = getSpeakerAzimuths( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); - inSpkEle = getSpeakerElevations( st->inConfig.multiChannelBuses[mcIdx].speakerLayout ); + copyBufferTo2dArray( mcInput->base.inputBuffer, tmpRendBuffer ); } - /* Check if passthrough is possible, save I/O mapping */ - for ( inChIdx = 0; inChIdx < numNonLfeInChannels; ++inChIdx ) + /* call CREND */ + if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, + mcInput->base.inConfig, + outConfig, + tmpRendBuffer, + *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { - st->mcPassthrough[passThroughIdx] = -1; - - for ( outChIdx = 0; outChIdx < numNonLfeOutChannels; ++outChIdx ) - { - if ( inSpkAzi[inChIdx] == outSpkAzi[outChIdx] && - inSpkEle[inChIdx] == outSpkEle[outChIdx] ) - { - st->mcPassthrough[passThroughIdx] = lfeLastIdxs[outChIdx]; - break; - } - } - - ++passThroughIdx; + return error; } + } - /* Setup LFE passthrough, save I/O mapping */ - outChIdx = numNonLfeOutChannels; - for ( ; inChIdx < numInChannels; ++inChIdx ) - { - if ( outChIdx < numOutChannels ) - { - st->mcPassthrough[passThroughIdx] = lfeLastIdxs[outChIdx]; - } - else - { - st->mcPassthrough[passThroughIdx] = -1; - } + accumulate2dArrayToBuffer( tmpRendBuffer, &outAudio ); - ++outChIdx; - ++passThroughIdx; - } - } + /* TODO tmu : needs delay compensation */ + renderLfeToBinaural( mcInput, outAudio ); -#ifdef WMOPS - wmops_sub_end(); -#endif + + return IVAS_ERR_OK; } -static void passthroughChannel( const IVAS_REND_AudioBuffer inAudio, - const uint32_t srcChnlIdx, - const uint32_t dstChnlIdx, - const float gain_lin, - IVAS_REND_AudioBuffer outAudio ) +static ivas_error renderMcToBinauralRoom( + input_mc *mcInput, + IVAS_REND_AudioConfig outConfig, + IVAS_REND_AudioBuffer outAudio ) { - float *inSmpl; - float *outSmpl; - int16_t smplIdx; + float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; -#ifdef WMOPS - wmops_sub_start( "passthroughChannel" ); -#endif + ivas_error error; + IVAS_REND_AudioBuffer tmpRotBuffer; + + /* apply rotation */ + if ( mcInput->base.ctx.pHeadRotData->headRotEnabled ) + { + tmpRotBuffer = mcInput->base.inputBuffer; + tmpRotBuffer.data = count_malloc( tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels * sizeof( float ) ); + set_zero( tmpRotBuffer.data, tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels ); + + rotateFrameMc( mcInput->base.inputBuffer, + mcInput->base.inConfig, + mcInput->customLsInput, + mcInput->base.ctx.pHeadRotData, + mcInput->rot_gains_prev, + mcInput->efapInWrapper.hEfap, + tmpRotBuffer ); + + copyBufferTo2dArray( tmpRotBuffer, tmpCrendBuffer ); + count_free( tmpRotBuffer.data ); + } + else + { + copyBufferTo2dArray( mcInput->base.inputBuffer, tmpCrendBuffer ); + } + + /* call CREND */ + if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, + mcInput->base.inConfig, + outConfig, + tmpCrendBuffer, + *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + { + return error; + } - inSmpl = get_smpl_ptr( inAudio, srcChnlIdx, 0 ); - outSmpl = get_smpl_ptr( outAudio, dstChnlIdx, 0 ); + accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); - for ( smplIdx = 0; smplIdx < inAudio.config.bufferSize; ++smplIdx ) - { - *outSmpl += *inSmpl * gain_lin; - ++outSmpl; - ++inSmpl; - } + /* TODO tmu : needs delay compensation */ + renderLfeToBinaural( mcInput, outAudio ); -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -static void getSpeakerGains( const IVAS_REND_HANDLE st, - const float azi, - const float ele, - float *const spkGains ) +static ivas_error renderMcCustomLsToBinauralRoom( + input_mc *mcInput, + IVAS_REND_AudioConfig outConfig, + IVAS_REND_AudioBuffer outAudio ) { - const uint32_t *lfeLastIdxs; - int16_t numNonLfeOutChannels; - int16_t noLfeIdx; - IVAS_REND_SpeakerLayout speakerLayout; + int8_t headRotEnabled; + int16_t i; + int32_t tmp; + float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; -#ifdef WMOPS - wmops_sub_start( "getSpeakerGains" ); -#endif + ivas_error error; + IVAS_REND_AudioBuffer tmpRotBuffer; + IVAS_REND_AudioBuffer tmpMcBuffer; - /* EFAP returns an array of gains only for non-LFE speakers */ - efap_determine_gains( st->efapRenderer, st->noLfePanBuffer, azi, ele, EFAP_MODE_EFAP ); + headRotEnabled = mcInput->base.ctx.pHeadRotData->headRotEnabled; - if ( st->outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) + /* apply rotation */ + if ( headRotEnabled ) { - speakerLayout = IVAS_REND_SPEAKER_LAYOUT_7_1_4; + tmpRotBuffer = mcInput->base.inputBuffer; + tmpRotBuffer.data = count_malloc( tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels * sizeof( float ) ); + set_zero( tmpRotBuffer.data, tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels ); + + rotateFrameMc( mcInput->base.inputBuffer, + mcInput->base.inConfig, + mcInput->customLsInput, + mcInput->base.ctx.pHeadRotData, + mcInput->rot_gains_prev, + mcInput->efapInWrapper.hEfap, + tmpRotBuffer ); } - else + + /* intermediate conversion to 7_1_4 */ + tmpMcBuffer = mcInput->base.inputBuffer; + getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); + tmpMcBuffer.config.numChannels = tmp; + tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); + set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels ); + + for ( i = 0; i < mcInput->base.inputBuffer.config.numChannels; i++ ) { - speakerLayout = st->outConfig.speakerLayout; + renderBufferChannel( ( headRotEnabled ) ? tmpRotBuffer : mcInput->base.inputBuffer, + i, + mcInput->panGains[i], + tmpMcBuffer ); } + copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); - if ( speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + /* call CREND */ + if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, + IVAS_REND_AUDIO_CONFIG_7_1_4, + outConfig, + tmpCrendBuffer, + *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { - uint32_t lfeIdx; + return error; + } - numNonLfeOutChannels = st->outConfig.outSetupCustom->num_spk; + accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); - /* Clear speaker gains - not all elements will be overwritten below */ - set_zero( spkGains, numNonLfeOutChannels + st->outConfig.outSetupCustom->num_lfe ); + /* TODO tmu : needs delay compensation */ + renderLfeToBinaural( mcInput, outAudio ); - /* Copy to gain array where LFE channel(s) are included */ - for ( lfeIdx = 0, noLfeIdx = 0; noLfeIdx < numNonLfeOutChannels; lfeIdx++, noLfeIdx++ ) - { - if ( noLfeIdx == st->outConfig.outSetupCustom->lfe_idx[0] ) - { - lfeIdx++; - } - spkGains[lfeIdx] = st->noLfePanBuffer[noLfeIdx]; - } - } - else + if ( headRotEnabled ) { - numNonLfeOutChannels = getNumNonLfeChannelsInSpeakerLayout( speakerLayout ); - lfeLastIdxs = getReorderedChannelIndices( speakerLayout ); - - /* Clear speaker gains - not all elements will be overwritten below */ - set_zero( spkGains, getNumChannelsInSpeakerLayout( speakerLayout ) ); - - /* Copy to gain array where LFE channel(s) are included */ - for ( noLfeIdx = 0; noLfeIdx < numNonLfeOutChannels; ++noLfeIdx ) - { - spkGains[lfeLastIdxs[noLfeIdx]] = st->noLfePanBuffer[noLfeIdx]; - } + count_free( tmpRotBuffer.data ); } + count_free( tmpMcBuffer.data ); -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -int16_t getNumChannelsAmbisonics( IVAS_REND_Ambisonics ambisonics ) +static ivas_error renderMcToMc( + const input_mc *mcInput, + IVAS_REND_AudioBuffer outAudio ) { - switch ( ambisonics ) + int32_t i; + IVAS_REND_AudioBuffer inAudio; + + inAudio = mcInput->base.inputBuffer; + + for ( i = 0; i < inAudio.config.numChannels; ++i ) { - case IVAS_REND_AMBISONICS_NONE: - return 0; - case IVAS_REND_AMBISONICS_MONO: - return 1; - case IVAS_REND_AMBISONICS_FOA: - return 4; - case IVAS_REND_AMBISONICS_SOA: - return 9; - case IVAS_REND_AMBISONICS_TOA: - return 16; - default: - assert( !"Invalid ambisonics config" ); + renderBufferChannel( inAudio, i, mcInput->panGains[i], outAudio ); } - return 0; + return IVAS_ERR_OK; } -static int16_t getAmbisonicsOrder( IVAS_REND_Ambisonics ambisonics ) +static ivas_error renderMcToSba( + const input_mc *mcInput, + IVAS_REND_AudioBuffer outAudio ) { - assert( ambisonics != IVAS_REND_AMBISONICS_NONE && "Invalid ambisonics config" ); - return ambisonics; /* Enum values map to ambisonics order */ -} + int32_t i; + IVAS_REND_AudioBuffer inAudio; -int16_t getNumChannelsInSpeakerLayout( IVAS_REND_SpeakerLayout layout ) -{ - switch ( layout ) + inAudio = mcInput->base.inputBuffer; + + for ( i = 0; i < inAudio.config.numChannels; ++i ) { - case IVAS_REND_SPEAKER_LAYOUT_NONE: - return 0; - case IVAS_REND_SPEAKER_LAYOUT_MONO: - return 1; - case IVAS_REND_SPEAKER_LAYOUT_STEREO: - return 2; - case IVAS_REND_SPEAKER_LAYOUT_5_1: - return 6; - case IVAS_REND_SPEAKER_LAYOUT_5_1_2: - case IVAS_REND_SPEAKER_LAYOUT_7_1: - return 8; - case IVAS_REND_SPEAKER_LAYOUT_5_1_4: - return 10; - case IVAS_REND_SPEAKER_LAYOUT_7_1_4: - return 12; - default: - assert( !"Invalid speaker layout" ); + renderBufferChannel( inAudio, i, mcInput->panGains[i], outAudio ); } - return 0; + return IVAS_ERR_OK; } -int16_t getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_SpeakerLayout layout ) +static ivas_error renderInputMc( + input_mc *mcInput, + IVAS_REND_AudioConfig outConfig, + IVAS_REND_AudioBuffer outAudio ) { - switch ( layout ) + ivas_error error; + IVAS_REND_AudioBuffer inAudio; + + inAudio = mcInput->base.inputBuffer; + + if ( mcInput->base.numNewSamplesPerChannel != outAudio.config.numSamplesPerChannel ) { - case IVAS_REND_SPEAKER_LAYOUT_MONO: - return 1; - case IVAS_REND_SPEAKER_LAYOUT_STEREO: - return 2; - case IVAS_REND_SPEAKER_LAYOUT_5_1: - return 5; - case IVAS_REND_SPEAKER_LAYOUT_5_1_2: - case IVAS_REND_SPEAKER_LAYOUT_7_1: - return 7; - case IVAS_REND_SPEAKER_LAYOUT_5_1_4: - return 9; - case IVAS_REND_SPEAKER_LAYOUT_7_1_4: - return 11; - default: - assert( !"Invalid speaker layout" ); + /* Mismatch between the number of input samples vs number of requested output samples - currently not allowed */ + return IVAS_ERR_INVALID_BUFFER_SIZE; } + mcInput->base.numNewSamplesPerChannel = 0; - return 0; -} + /* Apply input gain to new audio */ + v_multc( inAudio.data, + mcInput->base.gain, + inAudio.data, + inAudio.config.numSamplesPerChannel * inAudio.config.numChannels ); -const float *getSpeakerAzimuths( IVAS_REND_SpeakerLayout layout ) -{ - switch ( layout ) - { - case IVAS_REND_SPEAKER_LAYOUT_MONO: - return ls_azimuth_CICP1; - case IVAS_REND_SPEAKER_LAYOUT_STEREO: - return ls_azimuth_CICP2; - case IVAS_REND_SPEAKER_LAYOUT_5_1: - return ls_azimuth_CICP6; - case IVAS_REND_SPEAKER_LAYOUT_7_1: - return ls_azimuth_CICP12; - case IVAS_REND_SPEAKER_LAYOUT_5_1_2: - return ls_azimuth_CICP14; - case IVAS_REND_SPEAKER_LAYOUT_5_1_4: - return ls_azimuth_CICP16; - case IVAS_REND_SPEAKER_LAYOUT_7_1_4: - return ls_azimuth_CICP19; + switch ( getAudioConfigType( outConfig ) ) + { + case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: + error = renderMcToMc( mcInput, outAudio ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS: + error = renderMcToSba( mcInput, outAudio ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL: + switch ( outConfig ) + { + case IVAS_REND_AUDIO_CONFIG_BINAURAL: + error = renderMcToBinaural( mcInput, outConfig, outAudio ); + break; + case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: + if ( mcInput->base.inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + error = renderMcCustomLsToBinauralRoom( mcInput, outConfig, outAudio ); + } + else + { + error = renderMcToBinauralRoom( mcInput, outConfig, outAudio ); + } + break; + default: + return IVAS_ERR_INVALID_OUTPUT_FORMAT; + } + break; default: - assert( !"Invalid speaker layout" ); + return IVAS_ERR_INVALID_OUTPUT_FORMAT; + } + /* Check error here to keep switch statement more compact */ + if ( error != IVAS_ERR_OK ) + { + return error; } - return NULL; + return IVAS_ERR_OK; } -const float *getSpeakerElevations( IVAS_REND_SpeakerLayout layout ) +static ivas_error renderActiveInputsMc( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_AudioBuffer outAudio ) { - switch ( layout ) + int32_t i; + input_mc *pCurrentInput; + ivas_error error; + + for ( i = 0, pCurrentInput = hIvasRend->inputsMc; i < RENDERER_MAX_MC_INPUTS; ++i, ++pCurrentInput ) { - case IVAS_REND_SPEAKER_LAYOUT_MONO: - return ls_elevation_CICP1; - case IVAS_REND_SPEAKER_LAYOUT_STEREO: - return ls_elevation_CICP2; - case IVAS_REND_SPEAKER_LAYOUT_5_1: - return ls_elevation_CICP6; - case IVAS_REND_SPEAKER_LAYOUT_7_1: - return ls_elevation_CICP12; - case IVAS_REND_SPEAKER_LAYOUT_5_1_2: - return ls_elevation_CICP14; - case IVAS_REND_SPEAKER_LAYOUT_5_1_4: - return ls_elevation_CICP16; - case IVAS_REND_SPEAKER_LAYOUT_7_1_4: - return ls_elevation_CICP19; - default: - assert( !"Invalid speaker layout" ); + if ( pCurrentInput->base.inConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) + { + /* Skip inactive inputs */ + continue; + } + if ( ( error = renderInputMc( pCurrentInput, + hIvasRend->outputConfig, + outAudio ) ) != IVAS_ERR_OK ) + { + return error; + } } - return NULL; + return IVAS_ERR_OK; } -static const uint32_t *getReorderedChannelIndices( IVAS_REND_SpeakerLayout layout ) +static ivas_error renderSbaToMc( + const input_sba *sbaInput, + IVAS_REND_AudioBuffer outAudio ) { - switch ( layout ) + int32_t i; + IVAS_REND_AudioBuffer inAudio; + + inAudio = sbaInput->base.inputBuffer; + + for ( i = 0; i < inAudio.config.numChannels; ++i ) { - case IVAS_REND_SPEAKER_LAYOUT_MONO: - return ls_LFE_last_idx_CICP1; - case IVAS_REND_SPEAKER_LAYOUT_STEREO: - return ls_LFE_last_idx_CICP2; - case IVAS_REND_SPEAKER_LAYOUT_5_1: - return ls_LFE_last_idx_CICP6; - case IVAS_REND_SPEAKER_LAYOUT_7_1: - return ls_LFE_last_idx_CICP12; - case IVAS_REND_SPEAKER_LAYOUT_5_1_2: - return ls_LFE_last_idx_CICP14; - case IVAS_REND_SPEAKER_LAYOUT_5_1_4: - return ls_LFE_last_idx_CICP16; - case IVAS_REND_SPEAKER_LAYOUT_7_1_4: - return ls_LFE_last_idx_CICP19; - default: - assert( !"Invalid speaker layout" ); + renderBufferChannel( inAudio, i, sbaInput->hoaDecMtx[i], outAudio ); } - return NULL; + return IVAS_ERR_OK; } -static int32_t reverseChannelIndexMapping( int32_t originalChannelIndex, const uint32_t *channelReorderingMap, uint32_t numNonLfeSpeakers ) +static ivas_error renderSbaToSba( + const input_sba *sbaInput, + IVAS_REND_AudioBuffer outAudio ) { int32_t i; + IVAS_REND_AudioBuffer inAudio; + + inAudio = sbaInput->base.inputBuffer; - for ( i = 0; i < (int32_t) numNonLfeSpeakers; ++i ) + for ( i = 0; i < inAudio.config.numChannels; ++i ) { - if ( (int32_t) channelReorderingMap[i] == originalChannelIndex ) - { - return i; - } + renderBufferChannel( inAudio, i, sbaInput->hoaDecMtx[i], outAudio ); } - return -1; + return IVAS_ERR_OK; } -static ivas_error getHoaRenderMtx( - const IVAS_REND_OutputConfig outConfig, - float **decMtx, - uint32_t ambiOrder ) +static ivas_error renderSbaToBinaural( + input_sba *sbaInput, + IVAS_REND_AudioConfig outConfig, + IVAS_REND_AudioBuffer outAudio ) { - IVAS_OUTPUT_SETUP hOutSetup; + float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; + ivas_error error; + IVAS_REND_AudioBuffer tmpRotBuffer; - error = IVAS_ERR_OK; + /* apply rotation */ + if ( sbaInput->base.ctx.pHeadRotData->headRotEnabled ) + { + tmpRotBuffer = sbaInput->base.inputBuffer; + tmpRotBuffer.data = count_malloc( tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels * sizeof( float ) ); + /* copy input for in-place rotation */ + mvr2r( sbaInput->base.inputBuffer.data, tmpRotBuffer.data, + tmpRotBuffer.config.numChannels * tmpRotBuffer.config.numSamplesPerChannel ); -#ifdef WMOPS - wmops_sub_start( "getHoaRenderMtx" ); -#endif + rotateFrameSba( sbaInput->base.inputBuffer, + sbaInput->base.inConfig, + sbaInput->base.ctx.pHeadRotData, + sbaInput->rot_gains_prev, + tmpRotBuffer ); - if ( outConfig.binauralFormat == IVAS_REND_BINAURAL_NONE ) - { - switch ( outConfig.speakerLayout ) - { - case IVAS_REND_SPEAKER_LAYOUT_MONO: - hOutSetup.ls_azimuth = ls_azimuth_CICP1; - hOutSetup.ls_elevation = ls_elevation_CICP1; - ivas_output_init( &hOutSetup, mapRendLayoutToAudioConfig( outConfig.speakerLayout ) ); - break; - case IVAS_REND_SPEAKER_LAYOUT_STEREO: - case IVAS_REND_SPEAKER_LAYOUT_5_1: - case IVAS_REND_SPEAKER_LAYOUT_7_1: - case IVAS_REND_SPEAKER_LAYOUT_5_1_2: - case IVAS_REND_SPEAKER_LAYOUT_5_1_4: - case IVAS_REND_SPEAKER_LAYOUT_7_1_4: - ivas_output_init( &hOutSetup, mapRendLayoutToAudioConfig( outConfig.speakerLayout ) ); - break; - case IVAS_REND_SPEAKER_LAYOUT_CUSTOM: - ivas_ls_custom_setup( &hOutSetup, outConfig.outSetupCustom ); - break; - default: - assert( !"Invalid speaker config" ); - return IVAS_ERR_WRONG_PARAMS; - } - } - /* intermediate rendering to 7_1_4 for BINAURAL_ROOM */ - else if ( outConfig.binauralFormat == IVAS_REND_BINAURAL_ROOM ) - { - ivas_output_init( &hOutSetup, AUDIO_CONFIG_7_1_4 ); + copyBufferTo2dArray( tmpRotBuffer, tmpCrendBuffer ); + count_free( tmpRotBuffer.data ); } else { - assert( !"Invalid configuration" ); - return IVAS_ERR_WRONG_PARAMS; + copyBufferTo2dArray( sbaInput->base.inputBuffer, tmpCrendBuffer ); } - if ( ( error = ivas_sba_get_hoa_dec_matrix( hOutSetup, decMtx, (int16_t) ambiOrder ) ) != IVAS_ERR_OK ) + /* call CREND */ + if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, + sbaInput->base.inConfig, + outConfig, + tmpCrendBuffer, + *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } + accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); -#ifdef WMOPS - wmops_sub_end(); -#endif - - return error; + return IVAS_ERR_OK; } -void getHoaDecVecForAmbiChnl( - uint32_t ambiChnnlIdx, - const IVAS_REND_OutputConfig outConfig, - const float *decMtx, - float *decCoeffs ) +static ivas_error renderSbaToBinauralRoom( + input_sba *sbaInput, + IVAS_REND_AudioConfig outConfig, + IVAS_REND_AudioBuffer outAudio ) { + int8_t headRotEnabled; + int16_t i; + int32_t tmp; + float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - const uint32_t *lfeLastIdxs; - int16_t numNonLfeChannels; - int16_t nonLfeChIdx; + ivas_error error; + IVAS_REND_AudioBuffer tmpRotBuffer; + IVAS_REND_AudioBuffer tmpMcBuffer; -#ifdef WMOPS - wmops_sub_start( "getHoaDecVecForAmbiChnl" ); -#endif + headRotEnabled = sbaInput->base.ctx.pHeadRotData->headRotEnabled; + + /* apply rotation */ + if ( headRotEnabled ) + { + tmpRotBuffer = sbaInput->base.inputBuffer; + tmpRotBuffer.data = count_malloc( tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels * sizeof( float ) ); + /* copy input for in-place rotation */ + mvr2r( sbaInput->base.inputBuffer.data, tmpRotBuffer.data, + tmpRotBuffer.config.numChannels * tmpRotBuffer.config.numSamplesPerChannel ); + + rotateFrameSba( sbaInput->base.inputBuffer, + sbaInput->base.inConfig, + sbaInput->base.ctx.pHeadRotData, + sbaInput->rot_gains_prev, + tmpRotBuffer ); + } + /* intermediate rendering to 7_1_4 */ + tmpMcBuffer = sbaInput->base.inputBuffer; + getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); + tmpMcBuffer.config.numChannels = tmp; + tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); + set_zero( tmpMcBuffer.data, + tmpMcBuffer.config.numChannels * tmpMcBuffer.config.numSamplesPerChannel ); - if ( outConfig.speakerLayout == IVAS_REND_SPEAKER_LAYOUT_CUSTOM ) + for ( i = 0; i < sbaInput->base.inputBuffer.config.numChannels; i++ ) { - uint32_t lfeIdx; + renderBufferChannel( ( headRotEnabled ) ? tmpRotBuffer : sbaInput->base.inputBuffer, + i, + sbaInput->hoaDecMtx[i], + tmpMcBuffer ); + } - numNonLfeChannels = outConfig.outSetupCustom->num_spk; + copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); - /* Clear speaker gains - not all elements will be overwritten below */ - set_zero( decCoeffs, numNonLfeChannels + outConfig.outSetupCustom->num_lfe ); + /* call CREND */ + if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, + IVAS_REND_AUDIO_CONFIG_7_1_4, + outConfig, + tmpCrendBuffer, + *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + { + return error; + } - /* Copy to gain array where LFE channel(s) are included */ - for ( lfeIdx = 0, nonLfeChIdx = 0; nonLfeChIdx < numNonLfeChannels; lfeIdx++, nonLfeChIdx++ ) - { - if ( nonLfeChIdx == outConfig.outSetupCustom->lfe_idx[0] ) + accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); + + if ( headRotEnabled ) + { + count_free( tmpRotBuffer.data ); + } + count_free( tmpMcBuffer.data ); + + return IVAS_ERR_OK; +} + +static ivas_error renderInputSba( + input_sba *sbaInput, + IVAS_REND_AudioConfig outConfig, + IVAS_REND_AudioBuffer outAudio ) +{ + ivas_error error; + IVAS_REND_AudioBuffer inAudio; + + inAudio = sbaInput->base.inputBuffer; + + if ( sbaInput->base.numNewSamplesPerChannel != outAudio.config.numSamplesPerChannel ) + { + /* Mismatch between the number of input samples vs number of requested output samples - currently not allowed */ + return IVAS_ERR_INVALID_BUFFER_SIZE; + } + sbaInput->base.numNewSamplesPerChannel = 0; + + /* Apply input gain to new audio */ + v_multc( inAudio.data, + sbaInput->base.gain, + inAudio.data, + inAudio.config.numSamplesPerChannel * inAudio.config.numChannels ); + + switch ( getAudioConfigType( outConfig ) ) + { + case IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED: + error = renderSbaToMc( sbaInput, outAudio ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS: + error = renderSbaToSba( sbaInput, outAudio ); + break; + case IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL: + switch ( outConfig ) { - lfeIdx++; + case IVAS_REND_AUDIO_CONFIG_BINAURAL: + error = renderSbaToBinaural( sbaInput, outConfig, outAudio ); + break; + case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: + error = renderSbaToBinauralRoom( sbaInput, outConfig, outAudio ); + break; + default: + return IVAS_ERR_INVALID_OUTPUT_FORMAT; } - decCoeffs[lfeIdx] = decMtx[16 * nonLfeChIdx + ambiChnnlIdx]; - } + break; + default: + return IVAS_ERR_INVALID_OUTPUT_FORMAT; } - else + /* Check error here to keep switch statement more compact */ + if ( error != IVAS_ERR_OK ) { - numNonLfeChannels = getNumNonLfeChannelsInSpeakerLayout( outConfig.speakerLayout ); + return error; + } - lfeLastIdxs = getReorderedChannelIndices( outConfig.speakerLayout ); + return IVAS_ERR_OK; +} - /* Clear decoding coefficients - not all elements will be overwritten below */ - set_zero( decCoeffs, getNumChannelsInSpeakerLayout( outConfig.speakerLayout ) ); +static ivas_error renderActiveInputsSba( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_AudioBuffer outAudio ) +{ + int32_t i; + input_sba *pCurrentInput; + ivas_error error; - for ( nonLfeChIdx = 0; nonLfeChIdx < numNonLfeChannels; ++nonLfeChIdx ) + for ( i = 0, pCurrentInput = hIvasRend->inputsSba; i < RENDERER_MAX_SBA_INPUTS; ++i, ++pCurrentInput ) + { + if ( pCurrentInput->base.inConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) + { + /* Skip inactive inputs */ + continue; + } + if ( ( error = renderInputSba( pCurrentInput, + hIvasRend->outputConfig, + outAudio ) ) != IVAS_ERR_OK ) { - decCoeffs[lfeLastIdxs[nonLfeChIdx]] = decMtx[16 * nonLfeChIdx + ambiChnnlIdx]; + return error; } } -#ifdef WMOPS - wmops_sub_end(); -#endif + return IVAS_ERR_OK; } -/*-------------------------------------------------------------------* - * ivas_limiter_renderer() - * - * In-place saturation control for multichannel buffers with adaptive release time - * - * r: number of clipped output samples - *-------------------------------------------------------------------*/ -static int32_t ivas_limiter_renderer( - IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ - float *output, /* i/o: I/O buffer */ - const int16_t output_frame, /* i : number of samples per channel in the buffer */ - const float threshold /* i : signal amplitude above which limiting starts to be applied */ -) +ivas_error IVAS_REND_GetSamples( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_AudioBuffer outAudio ) { - int16_t i; - float **channels; - int16_t num_channels; - uint32_t numClipping = 0; + ivas_error error; + int32_t numOutChannels; - /* return early if given bad parameters */ - if ( hLimiter == NULL || output == NULL || output_frame <= 0 ) + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ + + if ( hIvasRend == NULL || outAudio.data == NULL ) { - return 0; + return IVAS_ERR_UNEXPECTED_NULL_POINTER; } - - channels = hLimiter->channel_ptrs; - num_channels = hLimiter->num_channels; - - for ( i = 0; i < num_channels; ++i ) + if ( outAudio.config.numSamplesPerChannel <= 0 || MAX_BUFFER_LENGTH_PER_CHANNEL < outAudio.config.numSamplesPerChannel ) { - channels[i] = output + i * output_frame; + return IVAS_ERR_INVALID_BUFFER_SIZE; + } + if ( outAudio.config.numChannels <= 0 || MAX_OUTPUT_CHANNELS < outAudio.config.numChannels ) + { + return IVAS_ERR_WRONG_NUM_CHANNELS; + } + if ( getAudioConfigType( hIvasRend->outputConfig ) == IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL && + outAudio.config.numSamplesPerChannel * 1000 != BINAURAL_RENDERING_FRAME_SIZE_MS * hIvasRend->sampleRateOut ) + { + /* Binaural rendering requires specific frame size */ + return IVAS_ERR_INVALID_BUFFER_SIZE; + } + if ( ( error = IVAS_REND_NumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( numOutChannels != outAudio.config.numChannels ) + { + return IVAS_ERR_WRONG_NUM_CHANNELS; } - limiter_process( hLimiter, output_frame, threshold, 0, NULL ); + /* Clear output buffer */ + set_zero( outAudio.data, outAudio.config.numChannels * outAudio.config.numSamplesPerChannel ); - /* Apply clipping to buffer in case the limiter let through some samples > 1.0f */ - for ( i = 0; i < output_frame * num_channels; ++i ) + if ( ( error = renderActiveInputsIsm( hIvasRend, outAudio ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = renderActiveInputsMc( hIvasRend, outAudio ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( ( error = renderActiveInputsSba( hIvasRend, outAudio ) ) != IVAS_ERR_OK ) { + return error; + } + #ifdef DEBUGGING - if ( output[i] > 1.0f || output[i] < -1.0f ) - { - ++numClipping; - } + hIvasRend->numClipping += #endif + limitRendererOutput( hIvasRend->hLimiter, outAudio.data, outAudio.config.numSamplesPerChannel, LIMITER_THRESHOLD ); - output[i] = min( max( INT16_MIN, output[i] ), INT16_MAX ); - } - - return numClipping; + return IVAS_ERR_OK; } -static float dBToLin( const float gain_dB ) +void IVAS_REND_Close( IVAS_REND_HANDLE *phIvasRend ) { - return powf( 10.f, gain_dB / 20.f ); -} + uint32_t i; + IVAS_REND_HANDLE hIvasRend; -static AUDIO_CONFIG mapRendLayoutToAudioConfig( IVAS_REND_SpeakerLayout speakerLayout ) -{ - switch ( speakerLayout ) + /*-----------------------------------------------------------------* + * Validate function arguments + *-----------------------------------------------------------------*/ + + if ( phIvasRend == NULL || *phIvasRend == NULL ) { - case IVAS_REND_SPEAKER_LAYOUT_MONO: - return AUDIO_CONFIG_MONO; - case IVAS_REND_SPEAKER_LAYOUT_STEREO: - return AUDIO_CONFIG_STEREO; - case IVAS_REND_SPEAKER_LAYOUT_5_1: - return AUDIO_CONFIG_5_1; - case IVAS_REND_SPEAKER_LAYOUT_7_1: - return AUDIO_CONFIG_7_1; - case IVAS_REND_SPEAKER_LAYOUT_5_1_2: - return AUDIO_CONFIG_5_1_2; - case IVAS_REND_SPEAKER_LAYOUT_5_1_4: - return AUDIO_CONFIG_5_1_4; - case IVAS_REND_SPEAKER_LAYOUT_7_1_4: - return AUDIO_CONFIG_7_1_4; - case IVAS_REND_SPEAKER_LAYOUT_CUSTOM: - return AUDIO_CONFIG_LS_CUSTOM; - case IVAS_REND_SPEAKER_LAYOUT_NONE: - default: - return AUDIO_CONFIG_INVALID; + return; + } + hIvasRend = *phIvasRend; + + if ( hIvasRend->efapOutWrapper.hEfap != NULL ) + { + efap_free_data( &hIvasRend->efapOutWrapper.hEfap ); + } + + /* clear inputs */ + for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) + { + clearInputIsm( &hIvasRend->inputsIsm[i] ); + } + for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) + { + clearInputMc( &hIvasRend->inputsMc[i] ); } + for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) + { + clearInputSba( &hIvasRend->inputsSba[i] ); + } + + ivas_limiter_close( &hIvasRend->hLimiter ); + + count_free( hIvasRend ); + *phIvasRend = NULL; +} + +#ifdef DEBUGGING +int32_t IVAS_REND_GetNoCLipping( + IVAS_REND_CONST_HANDLE hIvasRend ) +{ + return hIvasRend->numClipping; } -static AUDIO_CONFIG mapRendAmbisonicsToAudioConfig( IVAS_REND_Ambisonics ambisonics ) +int32_t IVAS_REND_GetCntFramesLimited( + IVAS_REND_CONST_HANDLE hIvasRend ) { - switch ( ambisonics ) + if ( hIvasRend->hLimiter == NULL ) { - case IVAS_REND_AMBISONICS_FOA: - return AUDIO_CONFIG_FOA; - case IVAS_REND_AMBISONICS_SOA: - return AUDIO_CONFIG_HOA2; - case IVAS_REND_AMBISONICS_TOA: - return AUDIO_CONFIG_HOA3; - case IVAS_REND_AMBISONICS_NONE: - default: - return AUDIO_CONFIG_INVALID; + return 0; } + + return hIvasRend->hLimiter->cnt_frames_limited; } +#endif diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index dfcf0ec57a..3be9ad9964 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -33,9 +33,9 @@ #ifndef LIB_REND_H #define LIB_REND_H +#include #include #include -#include #include "options.h" #include "common_api_types.h" @@ -48,203 +48,215 @@ #define RENDERER_HEAD_POSITIONS_PER_FRAME 4 -typedef enum IVAS_REND_Ambisonics -{ - IVAS_REND_AMBISONICS_NONE = -1, - IVAS_REND_AMBISONICS_MONO = 0, - IVAS_REND_AMBISONICS_FOA = 1, - IVAS_REND_AMBISONICS_SOA = 2, - IVAS_REND_AMBISONICS_TOA = 3 -} IVAS_REND_Ambisonics; /* Numerical value corresponds to Ambisonics order */ - -typedef enum IVAS_REND_SpeakerLayout +typedef struct { - IVAS_REND_SPEAKER_LAYOUT_NONE = -1, - IVAS_REND_SPEAKER_LAYOUT_CUSTOM = 0, - IVAS_REND_SPEAKER_LAYOUT_MONO = 1, - IVAS_REND_SPEAKER_LAYOUT_STEREO = 2, - IVAS_REND_SPEAKER_LAYOUT_5_1 = 6, - IVAS_REND_SPEAKER_LAYOUT_5_1_2 = 14, - IVAS_REND_SPEAKER_LAYOUT_5_1_4 = 16, - IVAS_REND_SPEAKER_LAYOUT_7_1 = 12, - IVAS_REND_SPEAKER_LAYOUT_7_1_4 = 19 -} IVAS_REND_SpeakerLayout; /* Numerical value corresponds to CICP index */ - -typedef enum IVAS_REND_BinauralFormat + int16_t numSamplesPerChannel; + int16_t numChannels; +} IVAS_REND_AudioBufferConfig; + +typedef struct { - IVAS_REND_BINAURAL_NONE = -1, - IVAS_REND_BINAURAL_DIRECT = 0, - IVAS_REND_BINAURAL_ROOM = 2 -} IVAS_REND_BinauralFormat; + IVAS_REND_AudioBufferConfig config; + float *data; +} IVAS_REND_AudioBuffer; -typedef enum IVAS_REND_MasaTc +typedef struct { - IVAS_REND_MASA_TC_NONE = -1, - IVAS_REND_MASA_TC_1 = 1, - IVAS_REND_MASA_TC_2 = 2, -} IVAS_REND_MasaTc; /* Numerical value corresponds to number of transport channels */ + IVAS_REND_AudioBufferConfig config; + const float *data; +} IVAS_REND_ReadOnlyAudioBuffer; -typedef struct IVAS_REND_AudioObjectPosition +typedef struct { float azimuth; float elevation; } IVAS_REND_AudioObjectPosition; -typedef struct IVAS_REND_AudioObjectMetadataBuffer -{ - IVAS_REND_AudioObjectPosition positions[RENDERER_MAX_ISM_INPUTS]; - int16_t numObjects; -} IVAS_REND_AudioObjectMetadataBuffer; +typedef struct IVAS_REND *IVAS_REND_HANDLE; +typedef struct IVAS_REND const *IVAS_REND_CONST_HANDLE; -typedef struct IVAS_REND_AudioObject +typedef enum { - uint16_t inputChannelIndex; - float gain_dB; -} IVAS_REND_AudioObject; - -typedef struct IVAS_REND_ObjPanInfo + IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED = 0, + IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS, + IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED, + IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL, + IVAS_REND_AUDIO_CONFIG_TYPE_MASA, + IVAS_REND_AUDIO_CONFIG_TYPE_UNKNOWN, +} IVAS_REND_AudioConfigType; + +/* TODO(sgi): Harmonize with AUDIO_CONFIG */ +/* + Note: numerical values carry specific information here. + + MSB LSB + -------------------------------------------------------------------------------- + ... unused (assumed all 0) ... | config type (1 byte) | config variant (1 byte) | + -------------------------------------------------------------------------------- + + Where "config type" is the general type from the following list: + - unknown + - channel-based + - ambisonics + - object-based + - binaural + - MASA + + Config variants are concrete configs of each type. + */ +typedef enum { - IVAS_REND_AudioObjectPosition position; - float *panGains; -} IVAS_REND_ObjPanInfo; + IVAS_REND_AUDIO_CONFIG_MONO = IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED << 8 | 0, + IVAS_REND_AUDIO_CONFIG_STEREO = IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED << 8 | 1, + IVAS_REND_AUDIO_CONFIG_5_1 = IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED << 8 | 2, + IVAS_REND_AUDIO_CONFIG_7_1 = IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED << 8 | 3, + IVAS_REND_AUDIO_CONFIG_5_1_2 = IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED << 8 | 4, + IVAS_REND_AUDIO_CONFIG_5_1_4 = IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED << 8 | 5, + IVAS_REND_AUDIO_CONFIG_7_1_4 = IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED << 8 | 6, + IVAS_REND_AUDIO_CONFIG_LS_CUSTOM = IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED << 8 | 255, -typedef struct IVAS_REND_AmbisonicsBus -{ - IVAS_REND_Ambisonics ambisonicsConfig; - uint8_t inputChannelIndex; - float gain_dB; -} IVAS_REND_AmbisonicsBus; + IVAS_REND_AUDIO_CONFIG_FOA = IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS << 8 | 0, + IVAS_REND_AUDIO_CONFIG_HOA2 = IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS << 8 | 1, + IVAS_REND_AUDIO_CONFIG_HOA3 = IVAS_REND_AUDIO_CONFIG_TYPE_AMBISONICS << 8 | 2, -typedef struct IVAS_REND_MultiChannelBus -{ - IVAS_REND_SpeakerLayout speakerLayout; - uint8_t inputChannelIndex; - float gain_dB; -} IVAS_REND_MultiChannelBus; + IVAS_REND_AUDIO_CONFIG_OBJECT = IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED << 8 | 0, -typedef struct IVAS_REND_MasaBus -{ - IVAS_REND_MasaTc numTc; - uint8_t inputChannelIndex; - float gain_dB; -} IVAS_REND_MasaBus; + IVAS_REND_AUDIO_CONFIG_BINAURAL = IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL << 8 | 0, + IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM = IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL << 8 | 1, -typedef struct IVAS_REND_AudioBufferConfig -{ - int32_t sampleRate; - int16_t bufferSize; - int16_t numChannels; -} IVAS_REND_AudioBufferConfig; + IVAS_REND_AUDIO_CONFIG_MASA1 = IVAS_REND_AUDIO_CONFIG_TYPE_MASA << 8 | 0, + IVAS_REND_AUDIO_CONFIG_MASA2 = IVAS_REND_AUDIO_CONFIG_TYPE_MASA << 8 | 1, -typedef struct IVAS_REND_AudioBuffer -{ - IVAS_REND_AudioBufferConfig config; - float *data; -} IVAS_REND_AudioBuffer; + IVAS_REND_AUDIO_CONFIG_UNKNOWN = IVAS_REND_AUDIO_CONFIG_TYPE_UNKNOWN << 8 | 0, +} IVAS_REND_AudioConfig; -typedef struct IVAS_REND_InputConfig -{ - IVAS_REND_AudioObject audioObjects[RENDERER_MAX_ISM_INPUTS]; - uint16_t numAudioObjects; - IVAS_REND_MultiChannelBus multiChannelBuses[RENDERER_MAX_MC_INPUTS]; - uint16_t numMultiChannelBuses; - IVAS_REND_AmbisonicsBus ambisonicsBuses[RENDERER_MAX_SBA_INPUTS]; - uint16_t numAmbisonicsBuses; - IVAS_LSSETUP_CUSTOM_HANDLE inSetupCustom; - IVAS_REND_MasaBus masaBus; /* Support one MASA input for now. Multiple inputs will be easier to implement after API rework. */ - uint16_t numMasaBuses; /* Keep for framework consistency for now. Again - this will not be necessary after API rework */ -} IVAS_REND_InputConfig; - -typedef struct IVAS_REND_OutputConfig -{ - IVAS_REND_SpeakerLayout speakerLayout; - IVAS_REND_Ambisonics ambisonics; - IVAS_REND_BinauralFormat binauralFormat; - IVAS_LSSETUP_CUSTOM_HANDLE outSetupCustom; -} IVAS_REND_OutputConfig; +typedef uint32_t IVAS_REND_InputId; -typedef struct IVAS_REND *IVAS_REND_HANDLE; +typedef struct +{ + int32_t numLfeChannels; + float lfeOutputGains[IVAS_MAX_INPUT_LFE_CHANNELS][IVAS_MAX_OUTPUT_CHANNELS]; +} IVAS_REND_LfeRouting; /* clang-format off */ /*----------------------------------------------------------------------------------* * Function prototypes *----------------------------------------------------------------------------------*/ -/*! Creates a renderer state. - * r: pointer to opened renderer */ -IVAS_REND_HANDLE IVAS_REND_Open( /* TODO(sgi): Return ivas_error type */ - void +/* Functions to be called before rendering */ + +ivas_error IVAS_REND_Open( + IVAS_REND_HANDLE *phIvasRend, /* i/o: Pointer to renderer handle */ + int32_t outputSampleRate, /* i : output sampling rate */ + IVAS_REND_AudioConfig outConfig /* i : output audio config */ +); + +/* Note: this will reset custom LFE routings set for any MC input */ +ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for renderer output */ +); + +/* Support for custom HRTFs will be added in the future. */ +/* Note: this affects output delay */ +ivas_error IVAS_REND_SetCustomHrtf( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + void* TODO +); + +/* Functions to be called before/during rendering */ + +ivas_error IVAS_REND_NumOutChannels( + IVAS_REND_CONST_HANDLE hIvasRend, /* i : Renderer handle */ + int32_t *numOutChannels /* o : number of output channels */ +); + +ivas_error IVAS_REND_AddInput( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_AudioConfig inConfig, /* i : audio config for a new input */ + IVAS_REND_InputId *inputId /* o : ID of the new input */ +); + +/* Note: this will reset any custom LFE routing set for the input */ +ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_InputId inputId, /* i : ID of the input */ + IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for input */ ); -/* TODO(sgi): Use hIvasRend as name for handle arg */ -/*! Configures the renderer - needs to be called after IVAS_REND_Open(). */ -ivas_error IVAS_REND_Configure( - IVAS_REND_HANDLE st, /* i : Renderer state */ - const IVAS_REND_InputConfig inConfig, /* i : Input configuration */ - const IVAS_REND_OutputConfig outConfig, /* i : Output configuration */ - uint32_t sampleRate, /* i : Processing sampling rate */ - bool headRotationEnabled, /* i : enable head rotation for binaural output, ignored for other output formats */ - bool rendererConfigEnabled /* i : flag indicating if a renderer configuration file was supplied */ +ivas_error IVAS_REND_SetInputGain( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_InputId inputId, /* i : ID of the input */ + float gain /* i : linear gain (not in dB) */ ); -void IVAS_REND_SetHeadRotation( - IVAS_REND_HANDLE st, - const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] +ivas_error IVAS_REND_SetInputLfeRouting( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_InputId inputId, /* i : ID of the input */ + IVAS_REND_LfeRouting lfeRouting /* i : custom LFE routing struct */ ); -ivas_error IVAS_REND_FeedMasaMetadata( - IVAS_REND_HANDLE st, - IVAS_MASA_METADATA_HANDLE hMasaMetadata +ivas_error IVAS_REND_RemoveInput( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_InputId inputId /* i : ID of the input */ ); -/*! Renders one frame of audio samples */ -void IVAS_REND_Render( - IVAS_REND_HANDLE st, /* i : Renderer state */ - const IVAS_REND_AudioBuffer inAudio, /* i : Buffer with pointer to input samples and associated info */ - const IVAS_REND_AudioObjectMetadataBuffer metadataBuffer, /* i : Buffer with object metadata for current frame */ - IVAS_REND_AudioBuffer outAudio /* o : Buffer with pointer to output samples and associated info */ +ivas_error IVAS_REND_GetInputNumChannels( + IVAS_REND_CONST_HANDLE hIvasRend, /* i : Renderer handle */ + IVAS_REND_InputId inputId, /* i : ID of the input */ + int32_t *numChannels /* o : number of channels of the input */ ); -/*! Returns the delay depending on which renderer was used */ ivas_error IVAS_REND_GetDelay( - IVAS_REND_HANDLE st, /* i : Renderer state */ - int16_t *nSamples, /* o : Renderer delay in samples */ - int32_t *timeScale /* o : Time scale of the delay, equal to renderer output sampling rate */ + IVAS_REND_CONST_HANDLE hIvasRend, /* i : Renderer handle */ + int16_t *nSamples, /* o : Renderer delay in samples */ + int32_t *timeScale /* o : Time scale of the delay, equal to renderer output sampling rate */ ); -/*! Allocate memory for custom loudspeaker layout */ -void IVAS_REND_OpenCustomLayout( - IVAS_LSSETUP_CUSTOM_HANDLE *outSetupCustom ); +/* Functions to be called during rendering */ -/*! Enable/disable experimental LFE handling */ -void IVAS_REND_SetNeverDropLfe( - IVAS_REND_HANDLE st, /* i : Renderer state */ - int8_t neverDropLfe /* i : If 0, LFE channel will be dropped when rendering to configs w/o LFE. - If 1, tries to render LFE into other channels in an optimal way when rendering to configs w/o LFE. */ +ivas_error IVAS_REND_FeedInputAudio( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_InputId inputId, /* i : ID of the input */ + IVAS_REND_ReadOnlyAudioBuffer inputAudio /* i : buffer with input audio */ ); -/*! Get number of input channels based on InputConfig */ -int16_t IVAS_REND_GetInChannels( - IVAS_REND_HANDLE st /* i : Renderer state */ +ivas_error IVAS_REND_FeedInputObjectMetadata( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_InputId inputId, /* i : ID of the input */ + IVAS_REND_AudioObjectPosition objectPosition /* i : object position struct */ ); -/*! Get number of output channels based on OutputConfig */ -int16_t IVAS_REND_GetOutChannels( - IVAS_REND_HANDLE st /* i : Renderer state */ +/* Support for MASA input will be added in the future. */ +ivas_error IVAS_REND_FeedInputMasaMetadata( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_InputId inputId, /* i : ID of the input */ + void* TODO ); -/*! Destructs the renderer state and frees memory */ +ivas_error IVAS_REND_SetHeadRotation( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : head positions for next rendering call */ +); + +ivas_error IVAS_REND_GetSamples( + IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ + IVAS_REND_AudioBuffer outAudio /* i/o: buffer for output audio */ +); + +/* Functions to be called after rendering */ + void IVAS_REND_Close( - IVAS_REND_HANDLE* st /* i : Renderer state */ + IVAS_REND_HANDLE* phIvasRend /* i/o: Pointer to renderer handle */ ); #ifdef DEBUGGING int32_t IVAS_REND_GetNoCLipping( - IVAS_REND_HANDLE st /* i : Renderer state */ + IVAS_REND_CONST_HANDLE hIvasRend /* i : Renderer handle */ ); int32_t IVAS_REND_GetCntFramesLimited( - IVAS_REND_HANDLE st /* i : Renderer state */ + IVAS_REND_CONST_HANDLE hIvasRend /* i : Renderer handle */ ); #endif diff --git a/lib_util/cmdln_parser.h b/lib_util/cmdln_parser.h index 692072df63..a50defcdbb 100644 --- a/lib_util/cmdln_parser.h +++ b/lib_util/cmdln_parser.h @@ -34,6 +34,7 @@ #define CMDLN_PARSER_H #include +#include #include "options.h" @@ -42,7 +43,7 @@ typedef struct int32_t id; const char *match; const char *matchShort; - int8_t isRequired; + bool isRequired; const char *description; } CmdLnParser_Option; diff --git a/lib_util/ls_custom_file_reader.c b/lib_util/ls_custom_file_reader.c index c961374c20..1713f55af4 100644 --- a/lib_util/ls_custom_file_reader.c +++ b/lib_util/ls_custom_file_reader.c @@ -314,7 +314,7 @@ LS_CUSTOM_FILEREADER_ERROR CustomLsFileReading( } } - /* parse LFE indicies; skip if blank line */ + /* parse LFE indices; skip if blank line */ if ( ( fgets( line, 200, hLsCustomReader->file ) != NULL ) && ( strcmp( line, "\n" ) != 0 ) && ( strcmp( line, "\r\n" ) != 0 ) ) { for ( tok = strtok( line, "," ); tok && *tok; tok = strtok( NULL, ",\n" ) ) diff --git a/scripts/pyaudio3dtools/audiofile.py b/scripts/pyaudio3dtools/audiofile.py index b03b472ae9..46bb452082 100644 --- a/scripts/pyaudio3dtools/audiofile.py +++ b/scripts/pyaudio3dtools/audiofile.py @@ -35,7 +35,6 @@ import platform import shutil import struct import subprocess as sp -import warnings from importlib import import_module from tempfile import TemporaryDirectory from typing import Optional, Tuple @@ -74,18 +73,6 @@ def readfile( if file_extension == ".wav": fs, data = wav.read(filename) - if data.dtype == np.int32: - data = np.interp( - data, - (np.iinfo(np.int32).min, np.iinfo(np.int32).max), - (np.iinfo(np.int16).min, np.iinfo(np.int16).max), - ) - elif data.dtype == np.float32: - data = np.interp( - data, - (-1, 1), - (np.iinfo(np.int16).min, np.iinfo(np.int16).max), - ) x = np.array(data, dtype=outdtype) file_len = x.shape[0] if x.ndim == 1: @@ -120,11 +107,9 @@ def writefile(filename: str, x: np.ndarray, fs: int = 48000) -> None: """ _, file_extension = os.path.splitext(os.path.basename(filename)) - clipped_samples = np.sum( - np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max) - ) + clipped_samples = np.sum(np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max)) if clipped_samples > 0: - warnings.warn(f" Warning: {clipped_samples} samples clipped") + print(" Warning: %i samples clipped"%clipped_samples) x = np.clip(x, np.iinfo(np.int16).min, np.iinfo(np.int16).max) if file_extension == ".wav": @@ -504,6 +489,7 @@ def loudnessinfo( in_sig: np.ndarray, in_fs: Optional[int] = 48000, in_format: Optional[str] = "MONO", + in_ls_layout_file: Optional[str] = None, output_loudness: Optional[int] = -26, loudness_tool: Optional[str] = "bs1770demo", use_rms: Optional[bool] = False, @@ -538,10 +524,13 @@ def loudnessinfo( else: null_file = "/dev/null" + # check for binary if shutil.which(loudness_tool) is None: raise FileNotFoundError(f"The binary {loudness_tool} was not found in path!") - in_spfmt = spatialaudioformat.Format(in_format=in_format) + in_spfmt = spatialaudioformat.Format( + in_format=in_format, ls_layout_file=in_ls_layout_file + ) if not (in_spfmt.isheadphones or in_spfmt.isloudspeaker or in_spfmt.ambi_order > 1): raise NotImplementedError( @@ -554,7 +543,7 @@ def loudnessinfo( ) with TemporaryDirectory() as tmp_dir: - tmp_file = os.path.join(tmp_dir, "tmp_loudness.pcm") + tmp_file = os.path.join(tmp_dir, "tmp.pcm") if "bs1770demo" in loudness_tool: """ diff --git a/scripts/pyaudio3dtools/binauralrenderer.py b/scripts/pyaudio3dtools/binauralrenderer.py index 23f476a5fd..520305c7bf 100644 --- a/scripts/pyaudio3dtools/binauralrenderer.py +++ b/scripts/pyaudio3dtools/binauralrenderer.py @@ -41,7 +41,7 @@ import scipy.io as sio import scipy.signal as sig from pyaudio3dtools.rotation import rotateHOA, rotateISM, rotateMC -from pyaudio3dtools import audioarray, spatialaudioformat +from pyaudio3dtools import audioarray, spatialaudioformat, spatialaudioconvert from pyaudio3dtools.constants import * main_logger = logging.getLogger("__main__") @@ -85,17 +85,17 @@ def read_hrirs_from_mat( def get_IR( - in_format: spatialaudioformat.Format, - out_format: spatialaudioformat.Format, + in_spfmt: spatialaudioformat.Format, + out_spfmt: spatialaudioformat.Format, dataset: str, ) -> Tuple[np.ndarray, np.ndarray]: """get_IR Parameters ---------- - in_format: spatialaudioformat + in_spfmt: spatialaudioformat input spatial audio format - out_format: spatialaudioformat + out_spfmt: spatialaudioformat output spatial audio format dataset: str name of the HRIRs or BRIRs dataset @@ -109,7 +109,7 @@ def get_IR( """ # override for BRIRs, currently only one option - if out_format.name == "BINAURAL_ROOM": + if out_spfmt.name == "BINAURAL_ROOM": dataset = "mozart_iis" # dataset file prefix @@ -123,37 +123,37 @@ def get_IR( raise ValueError(f"Unsupported dataset '{dataset}' for HRIRs") # dataset file suffix - if in_format.name.startswith("ISM") or in_format.name.startswith("CUSTOM_LS"): + if in_spfmt.name.startswith("ISM") or in_spfmt.altname.startswith("CUSTOM_LS"): suffix = "full.mat" - elif in_format.isloudspeaker and in_format.nchannels > 1: + elif in_spfmt.isloudspeaker and in_spfmt.nchannels > 1: suffix = "combined.mat" - elif in_format.ambi_order > 0 or in_format.name.upper() == "MONO": + elif in_spfmt.ambi_order > 0 or in_spfmt.name.upper() == "MONO": suffix = "SBA3.mat" else: raise ValueError( - f"Unsupported format '{in_format.name}' for dataset '{dataset}' for HRIRs" + f"Unsupported format '{in_spfmt.name}' for dataset '{dataset}' for HRIRs" ) IR, SourcePosition = read_hrirs_from_mat("_".join([prefix, suffix])) - if in_format.name.startswith("MONO"): + if in_spfmt.name.startswith("MONO"): IR = IR[:, :, :1] # use omni/W from SBA - elif in_format.name.startswith("STEREO"): + elif in_spfmt.name.startswith("STEREO"): IR = IR[:, :, :2] # use L and R channels - elif in_format.isloudspeaker and not in_format.name.startswith("CUSTOM_LS"): + elif in_spfmt.isloudspeaker and not in_spfmt.altname.startswith("CUSTOM_LS"): # extract positions from the combined file - tmpformat = spatialaudioformat.Format("COMBINED") + tmp_spfmt = spatialaudioformat.Format("COMBINED") IR_tmp = IR.copy() - IR = np.zeros([IR_tmp.shape[0], IR_tmp.shape[1], in_format.nchannels]) + IR = np.zeros([IR_tmp.shape[0], IR_tmp.shape[1], in_spfmt.nchannels]) ir_index = 0 - for i in range(tmpformat.nchannels): - for j in range(in_format.nchannels): + for i in range(tmp_spfmt.nchannels): + for j in range(in_spfmt.nchannels): if ( - tmpformat.ls_azi[i] == in_format.ls_azi[j] - and tmpformat.ls_ele[i] == in_format.ls_ele[j] + tmp_spfmt.ls_azi[i] == in_spfmt.ls_azi[j] + and tmp_spfmt.ls_ele[i] == in_spfmt.ls_ele[j] ): - if j != in_format.lfe_index[0]: + if j != in_spfmt.lfe_index[0]: IR[:, :, ir_index] = IR_tmp[:, :, i] ir_index += 1 @@ -502,6 +502,8 @@ def binaural_render_LFE( if lfe.shape[1] > 1: lfe = np.sum(lfe, axis=1) + # TODO tmu - disabled temporarily here, disabled in C + """ # 120 Hz low-pass filtering for LFE using IVAS filter coefficients if fs == 48000: lfe = sig.sosfilt(IVAS_LPF_4_BUTTER_48K_SOS, lfe, axis=0) @@ -515,6 +517,7 @@ def binaural_render_LFE( lfe = np.roll(lfe, -filter_delay, axis=0) lfe[-filter_delay:, :] = 0 + """ # apply gain lfe *= LFE_gain @@ -530,20 +533,31 @@ def binaural_render_LFE( def render_custom_ls_binaural( x: np.ndarray, fs: int, - in_format: spatialaudioformat.Format, + in_spfmt: spatialaudioformat.Format, + out_spfmt: spatialaudioformat.Format, IR: np.ndarray, SourcePosition: np.ndarray, trajectory: np.ndarray, ) -> np.ndarray: - ls_azi_all = in_format.ls_azi - ls_ele_all = in_format.ls_ele - lfe_index_all = in_format.lfe_index - - logger.info(" Processing channels on custom LS layout") - logger.info("azi: {}".format(ls_azi_all)) - logger.info("ele: {}".format(ls_ele_all)) - logger.info("lfe_index: {}".format(lfe_index_all)) + ls_azi_all = in_spfmt.ls_azi + ls_ele_all = in_spfmt.ls_ele + lfe_index_all = in_spfmt.lfe_index + + logger.info(" Processing channels on custom LS layout") + azis = ", ".join([f"{a:7.2f}" for a in ls_azi_all]) + eles = ", ".join([f"{e:7.2f}" for e in ls_ele_all]) + logger.info(f" azi: {azis}") + logger.info(f" ele: {eles}") + logger.info(f" lfe_index: {lfe_index_all}") + + if out_spfmt.name == "BINAURAL_ROOM": + tmp_spfmt = spatialaudioformat.Format("7_1_4") + x = spatialaudioconvert.convert_mc(x, in_spfmt, tmp_spfmt) + ls_azi_all = tmp_spfmt.ls_azi + ls_ele_all = tmp_spfmt.ls_ele + lfe_index_all = tmp_spfmt.lfe_index + logger.info(f" {in_spfmt.name} -> {tmp_spfmt.name} -> {out_spfmt.name}") frame_len = (IVAS_FRAME_LEN_MS // 4) * (fs // 1000) sig_len = x.shape[0] @@ -564,8 +578,7 @@ def render_custom_ls_binaural( ls_azi = np.repeat(ls_azi_all[i_ls], N_frames) ls_ele = np.repeat(ls_ele_all[i_ls], N_frames) - if trajectory is not None: - azi, ele = rotateISM(ls_azi, ls_ele, trajectory=trajectory) + azi, ele = rotateISM(ls_azi, ls_ele, trajectory=trajectory) y += binaural_fftconv_framewise( x[:, i_chan], @@ -601,7 +614,7 @@ def render_ism_binaural( [pos["azimuth"], pos["elevation"]] for _ in range(pos["use_for_frames"]) ) pos_data = np.array(pos_data) - pos_data = np.tile(pos_data, (4, 1)) + pos_data = np.repeat(pos_data, 4, axis=0) # extract positions only according to the audio duration pos_data = pos_data[:N_frames, :] @@ -625,7 +638,7 @@ def render_ism_binaural( def render_masa_binaural( x: np.ndarray, fs: int, - in_format: spatialaudioformat.Format, + in_spfmt: spatialaudioformat.Format, IR: np.ndarray, SourcePosition: np.ndarray, trajectory: np.ndarray, @@ -638,19 +651,19 @@ def render_masa_binaural( def render_ambi_ls_binaural( x: np.ndarray, fs: int, - in_format: spatialaudioformat.Format, + in_spfmt: spatialaudioformat.Format, IR: np.ndarray, trajectory: np.ndarray, ) -> np.ndarray: y = x[:] if trajectory is not None: - if in_format.ambi_order > 0: + if in_spfmt.ambi_order > 0: y = rotateHOA(y, trajectory) - if in_format.isloudspeaker: - y = rotateMC(y, trajectory, in_format) + if in_spfmt.isloudspeaker: + y = rotateMC(y, trajectory, in_spfmt) - y = binaural_fftconv(y, IR, in_format.nchannels, in_format.lfe_index) + y = binaural_fftconv(y, IR, in_spfmt.nchannels, in_spfmt.lfe_index) return y @@ -660,8 +673,8 @@ def render_ambi_ls_binaural( def binaural_rendering( x: np.ndarray, - in_format: spatialaudioformat.Format, - out_format: spatialaudioformat.Format, + in_spfmt: spatialaudioformat.Format, + out_spfmt: spatialaudioformat.Format, dataset: str = "orange53", fs: int = 48000, trajectory: str = None, @@ -675,7 +688,7 @@ def binaural_rendering( ---------- x: np array input multi-channel array - in_format_name: str + in_spfmt_name: str name of input spatial format dataset: str name of the HRIRs or BRIRs dataset @@ -700,17 +713,19 @@ def binaural_rendering( y = audioarray.resample(x, fs, 48000) # get IR corresponding to the input and output formats - IR, SourcePosition = get_IR(in_format, out_format, dataset) + IR, SourcePosition = get_IR(in_spfmt, out_spfmt, dataset) latency_smp = np.argmax(np.sum(np.abs(IR), axis=(1, 2))) # prepare LFE signal to be added to output - if include_LFE and in_format.isloudspeaker: - lfe = binaural_render_LFE(x, 48000, in_format.lfe_index, LFE_gain) + if include_LFE and in_spfmt.isloudspeaker and in_spfmt.lfe_index: + lfe = binaural_render_LFE(x, 48000, in_spfmt.lfe_index, LFE_gain) # get binauralized signal based on format - if in_format.name.startswith("CUSTOM_LS"): - y = render_custom_ls_binaural(x, fs, in_format, IR, SourcePosition, trajectory) - elif in_format.name.startswith("ISM"): + if in_spfmt.altname.startswith("CUSTOM_LS"): + y = render_custom_ls_binaural( + x, fs, in_spfmt, out_spfmt, IR, SourcePosition, trajectory + ) + elif in_spfmt.name.startswith("ISM"): if not in_pos: raise ValueError("ISM metadata empty!") y = render_ism_binaural( @@ -721,13 +736,13 @@ def binaural_rendering( trajectory, in_pos, ) - elif in_format.name.startswith("MASA"): - y = render_masa_binaural(x, fs, in_format, IR, SourcePosition, trajectory) - elif in_format.ambi_order > 0 or in_format.isloudspeaker: - y = render_ambi_ls_binaural(x, fs, in_format, IR, trajectory) + elif in_spfmt.name.startswith("MASA"): + y = render_masa_binaural(x, fs, in_spfmt, IR, SourcePosition, trajectory) + elif in_spfmt.ambi_order > 0 or in_spfmt.isloudspeaker: + y = render_ambi_ls_binaural(x, fs, in_spfmt, IR, trajectory) else: raise NotImplementedError( - f"{in_format.name} -> {out_format.name}: format conversion not implemented" + f"{in_spfmt.name} -> {out_spfmt.name}: format conversion not implemented" ) # HRTF delay compensation @@ -735,7 +750,7 @@ def binaural_rendering( y[-latency_smp:, :] = 0 # add LFE signal to output - if include_LFE and in_format.isloudspeaker: + if include_LFE and in_spfmt.isloudspeaker and in_spfmt.lfe_index: y += lfe # resample back to original rate diff --git a/scripts/pyaudio3dtools/spatialaudioconvert.py b/scripts/pyaudio3dtools/spatialaudioconvert.py index 28f9298924..2dc1fc0737 100644 --- a/scripts/pyaudio3dtools/spatialaudioconvert.py +++ b/scripts/pyaudio3dtools/spatialaudioconvert.py @@ -357,11 +357,15 @@ def convert_mc( if i not in in_spfmt.lfe_index ] ) + # TODO tmu : implement configurable LFE handling # pass-through for LFE MC2LS = np.insert(MC2LS, in_spfmt.lfe_index, 0, axis=0) MC2LS = np.insert(MC2LS, out_spfmt.lfe_index, 0, axis=1) MC2LS[in_spfmt.lfe_index, out_spfmt.lfe_index] = 1 + # TODO tmu temporarily disable LFE rendering to MONO/STEREO + if out_spfmt.name == "MONO" or out_spfmt.name == "STEREO": + MC2LS[in_spfmt.lfe_index, :] = 0 return in_sig @ MC2LS # MC -> HOA elif out_spfmt.ambi_order > 0: diff --git a/scripts/pyaudio3dtools/spatialaudioformat.py b/scripts/pyaudio3dtools/spatialaudioformat.py index 9125d80b64..40f08800c4 100644 --- a/scripts/pyaudio3dtools/spatialaudioformat.py +++ b/scripts/pyaudio3dtools/spatialaudioformat.py @@ -199,7 +199,7 @@ _format_configs = { "ls_azi": None, "ls_ele": None, "lfe_index": None, - "altname": "custom_ls", + "altname": "CUSTOM_LS", "config_file": "layout.txt", }, # ambisonics diff --git a/scripts/pyaudio3dtools/spatialmetadata.py b/scripts/pyaudio3dtools/spatialmetadata.py index 4bbb4b95fe..4d7029482b 100644 --- a/scripts/pyaudio3dtools/spatialmetadata.py +++ b/scripts/pyaudio3dtools/spatialmetadata.py @@ -424,6 +424,7 @@ def read_gain_value(file_handle: TextIO) -> float: file_handle.seek(original_pos) return 1 + ################################################## # Helper functions for ISM IVAS metadata ################################################## diff --git a/scripts/pyprocessing/prepost_processing.py b/scripts/pyprocessing/prepost_processing.py index dee95b77a6..a2c014b6a9 100644 --- a/scripts/pyprocessing/prepost_processing.py +++ b/scripts/pyprocessing/prepost_processing.py @@ -161,7 +161,8 @@ class PostProcessing(Processing): out_sig, fs = audiofile.readfile(output_path) bin_sig = binauralrenderer.binaural_rendering( out_sig, - self.out_spfmt.name, + self.out_spfmt, + spatialaudioformat.Format("BINAURAL"), fs=fs, include_LFE=self.bin_rend_include_LFE, LFE_gain=self.bin_rend_LFE_gain, diff --git a/scripts/tests/compare_audio.py b/scripts/tests/compare_audio.py index 56f35735fc..915cc432e9 100644 --- a/scripts/tests/compare_audio.py +++ b/scripts/tests/compare_audio.py @@ -1,3 +1,31 @@ +#!/usr/bin/env python3 + +""" + (C) 2022 Baseline Development Group with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The Baseline Development Group consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., and VoiceAge Corporation retain full ownership + rights in their respective contributions in the software. No license of any kind, including but not + limited to patent license, of any foregoing parties is hereby granted by implication, estoppel or + otherwise. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and/or fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + import warnings from typing import Tuple diff --git a/scripts/tests/constants.py b/scripts/tests/constants.py index 7893bedd61..dcf8bbe3a9 100644 --- a/scripts/tests/constants.py +++ b/scripts/tests/constants.py @@ -56,6 +56,18 @@ RENDERER_CMD = [ "-q", ] +""" Renderer commandline template """ +TDRENDERER_CMD = [ + str( + TESTS_DIR.parent.joinpath("td_object_renderer") + .joinpath("object_renderer_standalone") + .joinpath("renderer_standalone") + ), + "48", + "", # 4 -> input file + "", # 5 -> output file +] + """ Format to file mappings """ NCHAN_TO_FILE = { 1: TEST_VECTOR_DIR.joinpath("spectral_test_1ch_48kHz.wav"), @@ -163,7 +175,7 @@ CUSTOM_LS_TO_TEST = [ ] """ Mixed scene ( metadata ) rendering """ -METADATA_SCENES_TO_TEST = ["mixed_scene"] +METADATA_SCENES_TO_TEST = ["mixed_scene", "mixed_scene_simple"] METADATA_SCENES_TO_TEST_NO_BE = ["masa_scene"] """ Binaural rendering """ @@ -181,7 +193,7 @@ INPUT_FORMATS_BINAURAL.extend( OUTPUT_FORMATS_BINAURAL = ["BINAURAL", "BINAURAL_ROOM"] HR_TRAJECTORIES_TO_TEST = [ # "const000", - # "full_circle_in_15s", - "full_circle_in_15s-Euler", + "full_circle_in_15s", + # "full_circle_in_15s-Euler", "rotate_yaw_pitch_roll1", ] diff --git a/scripts/tests/data/mixed_scene_simple.txt b/scripts/tests/data/mixed_scene_simple.txt new file mode 100644 index 0000000000..85d38b8e93 --- /dev/null +++ b/scripts/tests/data/mixed_scene_simple.txt @@ -0,0 +1,12 @@ +spectral_test_4ch_48kHz.wav +3 +ISM +1 +ism_0a_0e.csv +ISM +2 +1 +1,-30,0 +MC +3 +STEREO diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index c66a4747d6..db7fb5fd54 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -27,7 +27,8 @@ """ import subprocess as sp -from pathlib import PurePath +from pathlib import Path +from tempfile import TemporaryDirectory from typing import Optional, Tuple import numpy as np @@ -155,7 +156,7 @@ def run_renderer( cmd[8] = str(out_fmt) if in_meta_files is not None: - cmd[5:5] = in_meta_files + cmd[5:5] = ["-im", *in_meta_files] if trj_file is not None: cmd.extend(["-tf", str(trj_file)]) @@ -170,6 +171,72 @@ def run_renderer( return pyaudio3dtools.audiofile.readfile(out_file) +def run_td_standalone( + in_fmt: str, + out_fmt: str, + metadata_input: Optional[str] = None, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +): + """CuT creation with TD Object renderer""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + if metadata_input is not None: + in_file = metadata_input + in_name = metadata_input.stem + elif not isinstance(in_fmt, str): + in_file = FORMAT_TO_FILE[in_fmt.stem] + in_name = in_fmt.stem + else: + in_file = FORMAT_TO_FILE[in_fmt] + in_name = in_fmt + + out_file = str(OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}.pcm")) + + in_spfmt = pyaudio3dtools.spatialaudioformat.Format(in_fmt) + + with TemporaryDirectory() as tmp_dir: + # write PCM tmp file + tmp_dir = Path(tmp_dir) + in_file_pcm = tmp_dir.joinpath(in_file.stem + ".pcm") + + in_sig, _ = pyaudio3dtools.audiofile.readfile(in_file) + pyaudio3dtools.audiofile.writefile(in_file_pcm, in_sig) + + cmd = TDRENDERER_CMD[:] + cmd[2] = str(in_file_pcm) + cmd[3] = str(out_file) + + if in_spfmt.isloudspeaker: + cmd[1:1] = ["-mc", in_spfmt.name] + else: + cmd[1:1] = str(in_spfmt.nchannels) + if in_meta_files is not None: + cmd[2:2] = in_meta_files + else: + cmd[2:2] = ["NULL"] * in_spfmt.nchannels + + if trj_file is not None: + cmd[1:1] = ["-T", str(trj_file)] + + try: + sp.run(cmd, check=True, capture_output=True, text=True) + except sp.CalledProcessError as e: + pytest.fail( + f"Command returned non-zero exit status ({e.returncode})!\n{' '.join(e.cmd)}\n{e.stderr}\n{e.stdout}\n{e.output}" + ) + + return pyaudio3dtools.audiofile.readfile(out_file, nchannels=2) + + # fixture returns test information, enabling per-testcase SNR @pytest.fixture def test_info(request): @@ -258,21 +325,22 @@ def test_ism(test_info, in_fmt, out_fmt): check_BE(test_info, ref, ref_fs, cut, cut_fs) -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) -@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MASA) -def test_masa(test_info, in_fmt, out_fmt): - # TODO: implement MASA in Python, compare BE - # ref, ref_fs = run_pyscripts( - # in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] - # ) +# MASA inputs not supported yet +# @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +# @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MASA) +# def test_masa(test_info, in_fmt, out_fmt): +# # TODO: implement MASA in Python, compare BE +# # ref, ref_fs = run_pyscripts( +# # in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] +# # ) - cut, cut_fs = run_renderer( - in_fmt, - out_fmt, - in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], - ) +# cut, cut_fs = run_renderer( +# in_fmt, +# out_fmt, +# in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], +# ) - # check_BE(test_info, ref, ref_fs, cut, cut_fs) +# # check_BE(test_info, ref, ref_fs, cut, cut_fs) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @@ -291,15 +359,16 @@ def test_metadata(test_info, in_fmt, out_fmt): check_BE(test_info, ref, ref_fs, cut, cut_fs) -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) -@pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST_NO_BE) -def test_metadata_masa(test_info, in_fmt, out_fmt): - # TODO: unify with test_metadata once Python supports MASA - cut, cut_fs = run_renderer( - "META", - out_fmt, - metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), - ) +# MASA inputs not supported yet +# @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +# @pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST_NO_BE) +# def test_metadata_masa(test_info, in_fmt, out_fmt): +# # TODO: unify with test_metadata once Python supports MASA +# cut, cut_fs = run_renderer( +# "META", +# out_fmt, +# metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), +# ) # Binaural rendering (static) @@ -323,6 +392,10 @@ def test_ism_binaural_static(test_info, in_fmt, out_fmt): ref, ref_fs = run_pyscripts(in_fmt, out_fmt, in_meta_files=in_meta_files) + # if out_fmt == "BINAURAL": + # cut, cut_fs = run_td_standalone(in_fmt, out_fmt, in_meta_files=in_meta_files) + # else: + # cut, cut_fs = run_renderer(in_fmt, out_fmt, in_meta_files=in_meta_files) cut, cut_fs = run_renderer(in_fmt, out_fmt, in_meta_files=in_meta_files) check_BE(test_info, ref, ref_fs, cut, cut_fs) @@ -374,6 +447,21 @@ def test_ism_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): in_meta_files=in_meta_files, ) + # if out_fmt == "BINAURAL": + # cut, cut_fs = run_td_standalone( + # in_fmt, + # out_fmt, + # trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + # in_meta_files=in_meta_files, + # ) + # else: + # cut, cut_fs = run_renderer( + # in_fmt, + # out_fmt, + # trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + # in_meta_files=in_meta_files, + # ) + cut, cut_fs = run_renderer( in_fmt, out_fmt, @@ -394,6 +482,19 @@ def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), ) + # if (in_fmt == "5_1" or in_fmt == "7_1") and out_fmt == "BINAURAL": + # cut, cut_fs = run_td_standalone( + # in_fmt, + # out_fmt, + # trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + # ) + # else: + # cut, cut_fs = run_renderer( + # in_fmt, + # out_fmt, + # trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + # ) + cut, cut_fs = run_renderer( in_fmt, out_fmt, @@ -403,17 +504,83 @@ def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file check_BE(test_info, ref, ref_fs, cut, cut_fs) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) +def test_custom_ls_input_binaural(test_info, in_layout, out_fmt): + ref, ref_fs = run_pyscripts( + CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), + out_fmt, + ) + + cut, cut_fs = run_renderer(CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt) + + check_BE(test_info, ref, ref_fs, cut, cut_fs) + + +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) +def test_custom_ls_input_binaural_headrotation(test_info, in_layout, out_fmt, trj_file): + ref, ref_fs = run_pyscripts( + CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + cut, cut_fs = run_renderer( + CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + check_BE(test_info, ref, ref_fs, cut, cut_fs) + + # per-testcase passing SNR pass_snr = { - "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0.6, + "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-full_circle_in_15s]": 0.6, "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0.1, - "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0.4, + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-full_circle_in_15s]": 18, + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-rotate_yaw_pitch_roll1]": 4, + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-full_circle_in_15s]": 0.4, "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0.04, - "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0.4, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-full_circle_in_15s]": 15, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-rotate_yaw_pitch_roll1]": 3, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-full_circle_in_15s]": 0.4, "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0.05, "test_ambisonics_binaural_static[FOA-BINAURAL_ROOM]": 0.6, "test_ambisonics_binaural_static[HOA2-BINAURAL_ROOM]": 0.5, "test_ambisonics_binaural_static[HOA3-BINAURAL_ROOM]": 0.1, + "test_custom_ls_input_binaural[4d4-BINAURAL]": 0.2, + "test_custom_ls_input_binaural[custom1-BINAURAL]": 0.2, + "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL]": 0, + "test_custom_ls_input_binaural[t_design_4-BINAURAL]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-full_circle_in_15s]": 0.1, + "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-full_circle_in_15s]": 0.1, + "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL]": 0, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL-full_circle_in_15s]": 0.1, + "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural[4d4-BINAURAL_ROOM]": 0, + "test_custom_ls_input_binaural[custom1-BINAURAL_ROOM]": 0, + "test_custom_ls_input_binaural[t_design_4-BINAURAL_ROOM]": 0, + "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL_ROOM]": 3.9, + "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-rotate_yaw_pitch_roll1]": 1, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL_ROOM]": 0.2, + "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-full_circle_in_15s]": 4, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4, + "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_ism[ISM1-FOA]": 45, "test_ism[ISM1-HOA2]": 41, "test_ism[ISM1-HOA3]": 38, @@ -426,21 +593,21 @@ pass_snr = { "test_ism[ISM4-FOA]": 45, "test_ism[ISM4-HOA2]": 41, "test_ism[ISM4-HOA3]": 38, - "test_ism_binaural_headrotation[ISM1-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_ism_binaural_headrotation[ISM1-BINAURAL-full_circle_in_15s]": 0, "test_ism_binaural_headrotation[ISM1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-full_circle_in_15s-Euler]": 7, + "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 6.7, "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, - "test_ism_binaural_headrotation[ISM2-BINAURAL-full_circle_in_15s-Euler]": 0.34, + "test_ism_binaural_headrotation[ISM2-BINAURAL-full_circle_in_15s]": 0.1, "test_ism_binaural_headrotation[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-full_circle_in_15s-Euler]": 4, + "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 4, "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_ism_binaural_headrotation[ISM3-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_ism_binaural_headrotation[ISM3-BINAURAL-full_circle_in_15s]": 0, "test_ism_binaural_headrotation[ISM3-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-full_circle_in_15s-Euler]": 4, + "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-full_circle_in_15s]": 4, "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_ism_binaural_headrotation[ISM4-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_ism_binaural_headrotation[ISM4-BINAURAL-full_circle_in_15s]": 0, "test_ism_binaural_headrotation[ISM4-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-full_circle_in_15s-Euler]": 4, + "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-full_circle_in_15s]": 3.9, "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, "test_ism_binaural_static[ISM1-BINAURAL]": 0.00, "test_ism_binaural_static[ISM1-BINAURAL_ROOM]": 18, @@ -453,44 +620,34 @@ pass_snr = { "test_metadata[mixed_scene-5_1_4]": 11, "test_metadata[mixed_scene-MONO]": 13, "test_metadata[mixed_scene-STEREO]": 12, - "test_multichannel[5_1-MONO]": 11, - "test_multichannel[5_1-STEREO]": 10, - "test_multichannel[5_1_2-MONO]": 13, - "test_multichannel[5_1_2-STEREO]": 12, - "test_multichannel[5_1_4-MONO]": 14, - "test_multichannel[5_1_4-STEREO]": 13, - "test_multichannel[7_1-MONO]": 13, - "test_multichannel[7_1-STEREO]": 12, - "test_multichannel[7_1_4-MONO]": 13, - "test_multichannel[7_1_4-STEREO]": 12, - "test_multichannel_binaural_headrotation[5_1-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[5_1-BINAURAL-full_circle_in_15s]": 0, "test_multichannel_binaural_headrotation[5_1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-full_circle_in_15s-Euler]": 4, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 6, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-full_circle_in_15s]": 3, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 0.7, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-full_circle_in_15s-Euler]": 5, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 6, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-full_circle_in_15s]": 3.1, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0.7, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_multichannel_binaural_headrotation[7_1-BINAURAL-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[7_1-BINAURAL-full_circle_in_15s]": 0, "test_multichannel_binaural_headrotation[7_1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-full_circle_in_15s-Euler]": 4, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 5, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-full_circle_in_15s-Euler]": 0, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-full_circle_in_15s]": 2, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0.7, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_multichannel_binaural_static[5_1-BINAURAL]": 8, + "test_multichannel_binaural_static[5_1-BINAURAL]": 6, "test_multichannel_binaural_static[5_1-BINAURAL_ROOM]": 1, - "test_multichannel_binaural_static[5_1_2-BINAURAL]": 9, + "test_multichannel_binaural_static[5_1_2-BINAURAL]": 7.5, "test_multichannel_binaural_static[5_1_2-BINAURAL_ROOM]": 1, - "test_multichannel_binaural_static[5_1_4-BINAURAL]": 10, - "test_multichannel_binaural_static[5_1_4-BINAURAL_ROOM]": 2, - "test_multichannel_binaural_static[7_1-BINAURAL]": 7, + "test_multichannel_binaural_static[5_1_4-BINAURAL]": 7, + "test_multichannel_binaural_static[5_1_4-BINAURAL_ROOM]": 1, + "test_multichannel_binaural_static[7_1-BINAURAL]": 6, "test_multichannel_binaural_static[7_1-BINAURAL_ROOM]": 1, - "test_multichannel_binaural_static[7_1_4-BINAURAL]": 9, + "test_multichannel_binaural_static[7_1_4-BINAURAL]": 7, "test_multichannel_binaural_static[7_1_4-BINAURAL_ROOM]": 1, } -- GitLab From c8c4a3dc9528b62db7c043ef1628e775a1571a12 Mon Sep 17 00:00:00 2001 From: norvell Date: Wed, 5 Oct 2022 05:13:38 +0000 Subject: [PATCH 172/479] Adding "./" to executable path in coverage-test-on-main-scheduled -- needed for Ericsson runner --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a16cdc3666..1ff03afc65 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -630,9 +630,9 @@ coverage-test-on-main-scheduled: - *print-common-info - make GCOV=1 -j - python3 tests/create_short_testvectors.py - - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref --ref_encoder_path IVAS_cod --ref_decoder_path IVAS_dec - - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref_part2 --ref_encoder_path IVAS_cod --ref_decoder_path IVAS_dec - - python3 -m pytest tests/test_param_file.py -v -n 0 --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path IVAS_cod --ref_decoder_path IVAS_dec + - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec + - python3 -m pytest tests -v -n 0 --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec + - python3 -m pytest tests/test_param_file.py -v -n 0 --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - lcov -c -d obj -o coverage.info - genhtml coverage.info -o coverage artifacts: -- GitLab From a3713adec6964b20b92e9e6485193495520191d1 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 5 Oct 2022 10:11:27 +0200 Subject: [PATCH 173/479] disable FIX_CREND_CHANNELS temporarily - breaks HOA3 rendering --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index f19a2579e6..9fed9bb7d3 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -151,7 +151,7 @@ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ -#define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ +// #define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ -- GitLab From 64ab8c9916ab62b7b29c27ae440fd4b9b9f04e17 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 5 Oct 2022 10:25:13 +0200 Subject: [PATCH 174/479] disable FIX_CREND_CHANNELS temporarily - breaks HOA3 rendering --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index e3ead5c21a..fbcdce0c47 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -151,7 +151,7 @@ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ -#define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ +// #define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ -- GitLab From df6c09d4f816253f70d2f1d9fc20c4c257dbfa9c Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 5 Oct 2022 11:15:42 +0200 Subject: [PATCH 175/479] Use MAX_INTERN_CHANNELS = 16 instead of MAX_TRANSPORT_CHANNELS = 12 within the FIX_CREND_CHANNELS --- lib_dec/ivas_crend.c | 6 +++--- lib_dec/ivas_reverb.c | 8 ++++---- lib_dec/ivas_stat_dec.h | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib_dec/ivas_crend.c b/lib_dec/ivas_crend.c index f83125fcbb..54321f0ef2 100644 --- a/lib_dec/ivas_crend.c +++ b/lib_dec/ivas_crend.c @@ -69,7 +69,7 @@ static ivas_error ivas_hrtf_init( hHrtf->index_frequency_max_diffuse = 0; #ifdef FIX_CREND_CHANNELS - for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) + for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) #else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) #endif @@ -678,7 +678,7 @@ ivas_error ivas_crend_open( hCrend->lfe_delay_line = NULL; #ifdef FIX_CREND_CHANNELS - for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) + for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) #else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) #endif @@ -833,7 +833,7 @@ ivas_error ivas_crend_close( if ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) { #ifdef FIX_CREND_CHANNELS - for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) + for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) #else for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) #endif diff --git a/lib_dec/ivas_reverb.c b/lib_dec/ivas_reverb.c index 854f0685cd..fc70f12a85 100644 --- a/lib_dec/ivas_reverb.c +++ b/lib_dec/ivas_reverb.c @@ -796,10 +796,10 @@ static void set_reverb_acoustic_data( int16_t nr_out_ch, hrtf_idx, offset, iter_idx, bin_idx; float ln_1e6_inverted, delay_diff, exp_argument; #ifdef FIX_CREND_CHANNELS - float *pHrtf_set_l_re[MAX_TRANSPORT_CHANNELS]; - float *pHrtf_set_l_im[MAX_TRANSPORT_CHANNELS]; - float *pHrtf_set_r_re[MAX_TRANSPORT_CHANNELS]; - float *pHrtf_set_r_im[MAX_TRANSPORT_CHANNELS]; + float *pHrtf_set_l_re[MAX_INTERN_CHANNELS]; + float *pHrtf_set_l_im[MAX_INTERN_CHANNELS]; + float *pHrtf_set_r_re[MAX_INTERN_CHANNELS]; + float *pHrtf_set_r_im[MAX_INTERN_CHANNELS]; #else float *pHrtf_set_l_re[IVAS_MAX_NUM_CH]; float *pHrtf_set_l_im[IVAS_MAX_NUM_CH]; diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 16af0c47aa..5d26372155 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1683,8 +1683,8 @@ typedef struct ivas_binaural_td_rendering_struct typedef struct ivas_hrtfs_structure { #ifdef FIX_CREND_CHANNELS - float *pOut_to_bin_re[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; - float *pOut_to_bin_im[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; + float *pOut_to_bin_re[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; + float *pOut_to_bin_im[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; #else float *pOut_to_bin_re[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; float *pOut_to_bin_im[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; @@ -1693,13 +1693,13 @@ typedef struct ivas_hrtfs_structure float *pOut_to_bin_diffuse_im[BINAURAL_CHANNELS]; float latency_s; #ifdef FIX_CREND_CHANNELS - uint16_t num_iterations[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; + uint16_t num_iterations[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; #else uint16_t num_iterations[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; #endif uint16_t num_iterations_diffuse[BINAURAL_CHANNELS]; #ifdef FIX_CREND_CHANNELS - uint16_t *pIndex_frequency_max[MAX_TRANSPORT_CHANNELS][BINAURAL_CHANNELS]; + uint16_t *pIndex_frequency_max[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; #else uint16_t *pIndex_frequency_max[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; #endif @@ -1708,7 +1708,7 @@ typedef struct ivas_hrtfs_structure int16_t max_num_ir; int16_t max_num_iterations; #ifdef FIX_CREND_CHANNELS - float inv_diffuse_weight[MAX_TRANSPORT_CHANNELS]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ + float inv_diffuse_weight[MAX_INTERN_CHANNELS]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ #else float inv_diffuse_weight[IVAS_MAX_NUM_CH]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ #endif @@ -1853,8 +1853,8 @@ typedef struct ivas_orient_trk_state_t typedef struct ivas_crend_state_t { #ifdef FIX_CREND_CHANNELS - float *freq_buffer_re[MAX_TRANSPORT_CHANNELS]; - float *freq_buffer_im[MAX_TRANSPORT_CHANNELS]; + float *freq_buffer_re[MAX_INTERN_CHANNELS]; + float *freq_buffer_im[MAX_INTERN_CHANNELS]; #else float *freq_buffer_re[IVAS_MAX_NUM_CH]; float *freq_buffer_im[IVAS_MAX_NUM_CH]; -- GitLab From 649654943b3b07844d18e2dddb45c68956c23567 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 5 Oct 2022 12:40:29 +0200 Subject: [PATCH 176/479] reduction of static RAM usage in fastconv binaural renderer; under SRAM_REDUCTION_BINRENDERER --- lib_com/options.h | 4 +++- lib_dec/ivas_binauralRenderer.c | 33 +++++++++++++++++++++++++++++++++ lib_dec/ivas_stat_dec.h | 5 +++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 038c9ece53..69718d0a9c 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -58,7 +58,7 @@ #ifdef DEBUGGING -/*#define MEM_COUNT_DETAILS*/ /* RAM counting tool: print per sub-structure details */ +#define MEM_COUNT_DETAILS /* RAM counting tool: print per sub-structure details */ /*#define DEBUG_MODE_INFO*/ /* output most important parameters to the subdirectory "res/" */ #ifdef DEBUG_MODE_INFO @@ -156,6 +156,8 @@ #define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ +#define SRAM_REDUCTION_BINRENDERER /* reduction of static RAM usage in fastconv binaural renderer */ + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_dec/ivas_binauralRenderer.c b/lib_dec/ivas_binauralRenderer.c index 153e159adc..4ded855668 100644 --- a/lib_dec/ivas_binauralRenderer.c +++ b/lib_dec/ivas_binauralRenderer.c @@ -186,6 +186,24 @@ static ivas_error ivas_binRenderer_convModuleOpen( } } +#ifdef SRAM_REDUCTION_BINRENDERER + for ( int16_t i = 0; i < BINAURAL_CONVBANDS; i++ ) + { + for ( int16_t j = 0; j < MAX_OUTPUT_CHANNELS; j++ ) + { + if ( ( hBinRenConvModule->filterStatesLeftReal[i][j] = (float *) count_malloc( sizeof( float ) * hBinRenConvModule->numTaps ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + if ( ( hBinRenConvModule->filterStatesLeftImag[i][j] = (float *) count_malloc( sizeof( float ) * hBinRenConvModule->numTaps ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + } + } +#endif + for ( bandIdx = 0; bandIdx < hBinRenderer->conv_band; bandIdx++ ) { for ( chIdx = 0; chIdx < hBinRenderer->nInChannels; chIdx++ ) @@ -578,6 +596,21 @@ void ivas_binRenderer_close( if ( ( *hBinRenderer )->hBinRenConvModule != NULL ) { + +#ifdef SRAM_REDUCTION_BINRENDERER + for ( int16_t i = 0; i < BINAURAL_CONVBANDS; i++ ) + { + for ( int16_t j = 0; j < MAX_OUTPUT_CHANNELS; j++ ) + { + count_free( ( *hBinRenderer )->hBinRenConvModule->filterStatesLeftReal[i][j] ); + ( *hBinRenderer )->hBinRenConvModule->filterStatesLeftReal[i][j] = NULL; + + count_free( ( *hBinRenderer )->hBinRenConvModule->filterStatesLeftImag[i][j] ); + ( *hBinRenderer )->hBinRenConvModule->filterStatesLeftImag[i][j] = NULL; + } + } +#endif + count_free( ( *hBinRenderer )->hBinRenConvModule ); ( *hBinRenderer )->hBinRenConvModule = NULL; } diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 16af0c47aa..5d12c2f78a 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1308,8 +1308,13 @@ typedef struct ivas_binaural_rendering_conv_module_struct const float *filterTapsRightReal[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; const float *filterTapsRightImag[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; +#ifdef SRAM_REDUCTION_BINRENDERER + float *filterStatesLeftReal[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS]; + float *filterStatesLeftImag[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS]; +#else float filterStatesLeftReal[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS][BINAURAL_NTAPS_MAX]; float filterStatesLeftImag[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS][BINAURAL_NTAPS_MAX]; +#endif int16_t numTapsArray[BINAURAL_CONVBANDS]; int16_t numTaps; -- GitLab From 06432397888660d7cde112641ef1f3a7afe2e873 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhold=20B=C3=B6hm?= Date: Wed, 5 Oct 2022 12:49:15 +0200 Subject: [PATCH 177/479] pytest prepare script: allow ref folder to be present --- tests/prepare_pytests.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/tests/prepare_pytests.py b/tests/prepare_pytests.py index d1f7495f07..8f6b20065e 100755 --- a/tests/prepare_pytests.py +++ b/tests/prepare_pytests.py @@ -77,13 +77,6 @@ def main(argv): use_dut_binaries = False - # check for existing references - if os.path.exists(REFERENCE_DIR): - sys.exit( - f"Found existing references directory {REFERENCE_DIR}.\n" - "Please delete this directory if you want the references to be recreated." - ) - # check for DUT binaries if not os.path.exists(DEFAULT_ENCODER_DUT) or not os.path.exists(DEFAULT_DECODER_DUT): sys.exit( -- GitLab From 6ece7a81726795064aab9b055b08af9b40e5bc96 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 5 Oct 2022 13:39:09 +0200 Subject: [PATCH 178/479] more memory allocated dynamically --- lib_dec/ivas_binauralRenderer.c | 170 ++++++++++++++++++++++++++++---- lib_dec/ivas_stat_dec.h | 11 ++- 2 files changed, 161 insertions(+), 20 deletions(-) diff --git a/lib_dec/ivas_binauralRenderer.c b/lib_dec/ivas_binauralRenderer.c index 4ded855668..7c33774dbc 100644 --- a/lib_dec/ivas_binauralRenderer.c +++ b/lib_dec/ivas_binauralRenderer.c @@ -187,16 +187,80 @@ static ivas_error ivas_binRenderer_convModuleOpen( } #ifdef SRAM_REDUCTION_BINRENDERER - for ( int16_t i = 0; i < BINAURAL_CONVBANDS; i++ ) + /* allocate memory for filter states */ + if ( ( hBinRenConvModule->filterTapsLeftReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) { - for ( int16_t j = 0; j < MAX_OUTPUT_CHANNELS; j++ ) + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + if ( ( hBinRenConvModule->filterTapsLeftImag = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + if ( ( hBinRenConvModule->filterTapsRightReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + if ( ( hBinRenConvModule->filterTapsRightImag = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + for ( int16_t i = 0; i < hBinRenderer->conv_band; i++ ) + { + if ( ( hBinRenConvModule->filterTapsLeftReal[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + if ( ( hBinRenConvModule->filterTapsLeftImag[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + if ( ( hBinRenConvModule->filterTapsRightReal[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) { - if ( ( hBinRenConvModule->filterStatesLeftReal[i][j] = (float *) count_malloc( sizeof( float ) * hBinRenConvModule->numTaps ) ) == NULL ) + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + if ( ( hBinRenConvModule->filterTapsRightImag[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + } + + if ( ( hBinRenConvModule->filterStatesLeftReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + if ( ( hBinRenConvModule->filterStatesLeftImag = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + for ( int16_t i = 0; i < hBinRenderer->conv_band; i++ ) + { + if ( ( hBinRenConvModule->filterStatesLeftReal[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + if ( ( hBinRenConvModule->filterStatesLeftImag[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); + } + + for ( int16_t j = 0; j < hBinRenderer->nInChannels; j++ ) + { + if ( ( hBinRenConvModule->filterStatesLeftReal[i][j] = (float *) count_malloc( hBinRenConvModule->numTaps * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterStatesLeftImag[i][j] = (float *) count_malloc( sizeof( float ) * hBinRenConvModule->numTaps ) ) == NULL ) + if ( ( hBinRenConvModule->filterStatesLeftImag[i][j] = (float *) count_malloc( hBinRenConvModule->numTaps * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } @@ -204,6 +268,7 @@ static ivas_error ivas_binRenderer_convModuleOpen( } #endif + /* set memories */ for ( bandIdx = 0; bandIdx < hBinRenderer->conv_band; bandIdx++ ) { for ( chIdx = 0; chIdx < hBinRenderer->nInChannels; chIdx++ ) @@ -578,6 +643,86 @@ ivas_error ivas_binRenderer_open( return error; } +#ifdef SRAM_REDUCTION_BINRENDERER +/*------------------------------------------------------------------------- + * ivas_binRenderer_convModuleClose() + * + * Close convolution module handle of fastconv binaural renderer + *------------------------------------------------------------------------*/ + +static void ivas_binRenderer_convModuleClose( + BINAURAL_RENDERER_HANDLE *hBinRenderer /* i/o: fastconv binaural renderer handle */ +) +{ + int16_t i, j; + BINRENDERER_CONV_MODULE_HANDLE hBinRenConvModule; + + hBinRenConvModule = ( *hBinRenderer )->hBinRenConvModule; + + if ( hBinRenConvModule == NULL ) + { + return; + } + + for ( i = 0; i < ( *hBinRenderer )->conv_band; i++ ) + { + count_free( (float **) hBinRenConvModule->filterTapsLeftReal[i] ); + hBinRenConvModule->filterTapsLeftReal[i] = NULL; + + count_free( (float **) hBinRenConvModule->filterTapsLeftImag[i] ); + hBinRenConvModule->filterTapsLeftImag[i] = NULL; + + count_free( (float **) hBinRenConvModule->filterTapsRightReal[i] ); + hBinRenConvModule->filterTapsRightReal[i] = NULL; + + count_free( (float **) hBinRenConvModule->filterTapsRightImag[i] ); + hBinRenConvModule->filterTapsRightImag[i] = NULL; + } + + count_free( (float *) hBinRenConvModule->filterTapsLeftReal ); + hBinRenConvModule->filterTapsLeftReal = NULL; + + count_free( (float *) hBinRenConvModule->filterTapsLeftImag ); + hBinRenConvModule->filterTapsLeftImag = NULL; + + count_free( (float *) hBinRenConvModule->filterTapsRightReal ); + hBinRenConvModule->filterTapsRightReal = NULL; + + count_free( (float *) hBinRenConvModule->filterTapsRightImag ); + hBinRenConvModule->filterTapsRightImag = NULL; + + + for ( i = 0; i < ( *hBinRenderer )->conv_band; i++ ) + { + for ( j = 0; j < ( *hBinRenderer )->nInChannels; j++ ) + { + count_free( hBinRenConvModule->filterStatesLeftReal[i][j] ); + hBinRenConvModule->filterStatesLeftReal[i][j] = NULL; + + count_free( hBinRenConvModule->filterStatesLeftImag[i][j] ); + hBinRenConvModule->filterStatesLeftImag[i][j] = NULL; + } + + count_free( hBinRenConvModule->filterStatesLeftReal[i] ); + hBinRenConvModule->filterStatesLeftReal[i] = NULL; + + count_free( hBinRenConvModule->filterStatesLeftImag[i] ); + hBinRenConvModule->filterStatesLeftImag[i] = NULL; + } + + count_free( hBinRenConvModule->filterStatesLeftReal ); + hBinRenConvModule->filterStatesLeftReal = NULL; + + count_free( hBinRenConvModule->filterStatesLeftImag ); + hBinRenConvModule->filterStatesLeftImag = NULL; + + + count_free( ( *hBinRenderer )->hBinRenConvModule ); + ( *hBinRenderer )->hBinRenConvModule = NULL; + + return; +} +#endif /*------------------------------------------------------------------------- * ivas_binRenderer_close() @@ -596,23 +741,12 @@ void ivas_binRenderer_close( if ( ( *hBinRenderer )->hBinRenConvModule != NULL ) { - #ifdef SRAM_REDUCTION_BINRENDERER - for ( int16_t i = 0; i < BINAURAL_CONVBANDS; i++ ) - { - for ( int16_t j = 0; j < MAX_OUTPUT_CHANNELS; j++ ) - { - count_free( ( *hBinRenderer )->hBinRenConvModule->filterStatesLeftReal[i][j] ); - ( *hBinRenderer )->hBinRenConvModule->filterStatesLeftReal[i][j] = NULL; - - count_free( ( *hBinRenderer )->hBinRenConvModule->filterStatesLeftImag[i][j] ); - ( *hBinRenderer )->hBinRenConvModule->filterStatesLeftImag[i][j] = NULL; - } - } -#endif - + ivas_binRenderer_convModuleClose( hBinRenderer ); +#else count_free( ( *hBinRenderer )->hBinRenConvModule ); ( *hBinRenderer )->hBinRenConvModule = NULL; +#endif } if ( ( *hBinRenderer )->hReverb != NULL ) diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 5d12c2f78a..75098de82e 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1303,14 +1303,21 @@ typedef struct ivas_dirac_dec_binaural_data_structure typedef struct ivas_binaural_rendering_conv_module_struct { +#ifdef SRAM_REDUCTION_BINRENDERER + const float ***filterTapsLeftReal; + const float ***filterTapsLeftImag; + const float ***filterTapsRightReal; + const float ***filterTapsRightImag; +#else const float *filterTapsLeftReal[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; const float *filterTapsLeftImag[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; const float *filterTapsRightReal[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; const float *filterTapsRightImag[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; +#endif #ifdef SRAM_REDUCTION_BINRENDERER - float *filterStatesLeftReal[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS]; - float *filterStatesLeftImag[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS]; + float ***filterStatesLeftReal; + float ***filterStatesLeftImag; #else float filterStatesLeftReal[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS][BINAURAL_NTAPS_MAX]; float filterStatesLeftImag[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS][BINAURAL_NTAPS_MAX]; -- GitLab From 34ed7d62c83188526a240207a0dcb7b79fd12361 Mon Sep 17 00:00:00 2001 From: norvell Date: Wed, 5 Oct 2022 11:42:11 +0000 Subject: [PATCH 179/479] Change CI_MERGE_REQUEST_TITLE to CI_COMMIT_MESSAGE in codec-comparison-on-main-push. Should resolve false failure when Non-BE changes are merged to main, as long as the default merge message is not changed and still contains the MR title. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1ff03afc65..7ce0765ad5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -435,7 +435,7 @@ codec-comparison-on-main-push: - git checkout $latest_commit # helper variable - "|| true" to prevent failures from grep not finding anything - - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true + - non_be_flag=$(echo $CI_COMMIT_MESSAGE | grep -c --ignore-case "\[non[ -]*be\]") || true ### prepare pytest # create short test vectors -- GitLab From 1382ee5d3568d141639a02898ad262cbe0706671 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 5 Oct 2022 13:44:37 +0200 Subject: [PATCH 180/479] disable MEM_COUNT_DETAILS --- lib_com/options.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 00a32f3c78..37831857bf 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -58,7 +58,7 @@ #ifdef DEBUGGING -#define MEM_COUNT_DETAILS /* RAM counting tool: print per sub-structure details */ +/*#define MEM_COUNT_DETAILS*/ /* RAM counting tool: print per sub-structure details */ /*#define DEBUG_MODE_INFO*/ /* output most important parameters to the subdirectory "res/" */ #ifdef DEBUG_MODE_INFO @@ -155,9 +155,9 @@ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ +#define SRAM_REDUCTION_BINRENDERER /* Issue 145: reduction of static RAM usage in fastconv binaural renderer */ -#define SRAM_REDUCTION_BINRENDERER /* reduction of static RAM usage in fastconv binaural renderer */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ -- GitLab From 974385347feed557eceb1f23d3661c88dc586879 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 5 Oct 2022 14:32:18 +0200 Subject: [PATCH 181/479] fix Linux build errors --- lib_dec/ivas_binauralRenderer.c | 26 +++++++++++++------------- lib_dec/ivas_rom_binauralRenderer.h | 23 +++++++++++++++++++++++ lib_dec/ivas_stat_dec.h | 8 ++++---- 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/lib_dec/ivas_binauralRenderer.c b/lib_dec/ivas_binauralRenderer.c index 7c33774dbc..6c4e0ba6f8 100644 --- a/lib_dec/ivas_binauralRenderer.c +++ b/lib_dec/ivas_binauralRenderer.c @@ -666,29 +666,29 @@ static void ivas_binRenderer_convModuleClose( for ( i = 0; i < ( *hBinRenderer )->conv_band; i++ ) { - count_free( (float **) hBinRenConvModule->filterTapsLeftReal[i] ); + count_free( hBinRenConvModule->filterTapsLeftReal[i] ); hBinRenConvModule->filterTapsLeftReal[i] = NULL; - count_free( (float **) hBinRenConvModule->filterTapsLeftImag[i] ); + count_free( hBinRenConvModule->filterTapsLeftImag[i] ); hBinRenConvModule->filterTapsLeftImag[i] = NULL; - count_free( (float **) hBinRenConvModule->filterTapsRightReal[i] ); + count_free( hBinRenConvModule->filterTapsRightReal[i] ); hBinRenConvModule->filterTapsRightReal[i] = NULL; - count_free( (float **) hBinRenConvModule->filterTapsRightImag[i] ); + count_free( hBinRenConvModule->filterTapsRightImag[i] ); hBinRenConvModule->filterTapsRightImag[i] = NULL; } - count_free( (float *) hBinRenConvModule->filterTapsLeftReal ); + count_free( hBinRenConvModule->filterTapsLeftReal ); hBinRenConvModule->filterTapsLeftReal = NULL; - count_free( (float *) hBinRenConvModule->filterTapsLeftImag ); + count_free( hBinRenConvModule->filterTapsLeftImag ); hBinRenConvModule->filterTapsLeftImag = NULL; - count_free( (float *) hBinRenConvModule->filterTapsRightReal ); + count_free( hBinRenConvModule->filterTapsRightReal ); hBinRenConvModule->filterTapsRightReal = NULL; - count_free( (float *) hBinRenConvModule->filterTapsRightImag ); + count_free( hBinRenConvModule->filterTapsRightImag ); hBinRenConvModule->filterTapsRightImag = NULL; @@ -942,10 +942,10 @@ void ivas_binRenderer( /* Obtain the binaural dmx and compute the reverb */ if ( hBinRenderer->hReverb != NULL ) { - float reverbRe[2][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; - float reverbIm[2][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; - float inRe[2][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; - float inIm[2][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; + float reverbRe[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; + float reverbIm[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; + float inRe[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; + float inIm[BINAURAL_CHANNELS][CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX]; ivas_binaural_obtain_DMX( numTimeSlots, hBinRenderer, RealBuffer, ImagBuffer, inRe, inIm ); @@ -958,7 +958,7 @@ void ivas_binRenderer( } } - ivas_binaural_reverb_processFrame( hBinRenderer->hReverb, 2, inRe, inIm, reverbRe, reverbIm, 0u ); + ivas_binaural_reverb_processFrame( hBinRenderer->hReverb, BINAURAL_CHANNELS, inRe, inIm, reverbRe, reverbIm, 0u ); /* Add the conv module and reverb module output */ for ( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ ) diff --git a/lib_dec/ivas_rom_binauralRenderer.h b/lib_dec/ivas_rom_binauralRenderer.h index 3bed3c5ec9..ca3a527c4c 100644 --- a/lib_dec/ivas_rom_binauralRenderer.h +++ b/lib_dec/ivas_rom_binauralRenderer.h @@ -44,6 +44,21 @@ /* Binaural rendering data set based on HRIRs */ extern const float FASTCONV_HRIR_latency_s; +#ifdef SRAM_REDUCTION_BINRENDERER +extern float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][16][7]; +extern float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][16][7]; +extern float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][16][7]; +extern float rightHRIRImag_HOA3[BINAURAL_CONVBANDS][16][7]; + +extern float leftHRIRReal[BINAURAL_CONVBANDS][15][7]; +extern float leftHRIRImag[BINAURAL_CONVBANDS][15][7]; +extern float rightHRIRReal[BINAURAL_CONVBANDS][15][7]; +extern float rightHRIRImag[BINAURAL_CONVBANDS][15][7]; + +extern float FASTCONV_HOA3_latency_s; +extern float hrtfShCoeffsRe[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; +extern float hrtfShCoeffsIm[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; +#else extern const float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][16][7]; extern const float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][16][7]; extern const float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][16][7]; @@ -57,13 +72,21 @@ extern const float rightHRIRImag[BINAURAL_CONVBANDS][15][7]; extern const float FASTCONV_HOA3_latency_s; extern const float hrtfShCoeffsRe[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; extern const float hrtfShCoeffsIm[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; +#endif /* Binaural rendering data set based on BRIRs */ extern const float FASTCONV_BRIR_latency_s; +#ifdef SRAM_REDUCTION_BINRENDERER +extern float leftBRIRReal[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; +extern float leftBRIRImag[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; +extern float rightBRIRReal[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; +extern float rightBRIRImag[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; +#else extern const float leftBRIRReal[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; extern const float leftBRIRImag[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; extern const float rightBRIRReal[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; extern const float rightBRIRImag[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; +#endif /* Reverberation parameters based on BRIRs for fastconv */ extern float fastconvReverberationTimes[CLDFB_NO_CHANNELS_MAX]; diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 75098de82e..dd17424248 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1304,10 +1304,10 @@ typedef struct ivas_dirac_dec_binaural_data_structure typedef struct ivas_binaural_rendering_conv_module_struct { #ifdef SRAM_REDUCTION_BINRENDERER - const float ***filterTapsLeftReal; - const float ***filterTapsLeftImag; - const float ***filterTapsRightReal; - const float ***filterTapsRightImag; + float ***filterTapsLeftReal; + float ***filterTapsLeftImag; + float ***filterTapsRightReal; + float ***filterTapsRightImag; #else const float *filterTapsLeftReal[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; const float *filterTapsLeftImag[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; -- GitLab From 2980ce8ad6b6d4bd765e9340712c2ca49f56fe42 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 6 Oct 2022 08:49:18 +0200 Subject: [PATCH 182/479] more savings for BINAURAL_ROOM output --- lib_dec/ivas_binauralRenderer.c | 67 ++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/lib_dec/ivas_binauralRenderer.c b/lib_dec/ivas_binauralRenderer.c index 6c4e0ba6f8..e094152dda 100644 --- a/lib_dec/ivas_binauralRenderer.c +++ b/lib_dec/ivas_binauralRenderer.c @@ -208,24 +208,24 @@ static ivas_error ivas_binRenderer_convModuleOpen( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - for ( int16_t i = 0; i < hBinRenderer->conv_band; i++ ) + for ( bandIdx = 0; bandIdx < hBinRenderer->conv_band; bandIdx++ ) { - if ( ( hBinRenConvModule->filterTapsLeftReal[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsLeftReal[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterTapsLeftImag[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsLeftImag[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterTapsRightReal[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsRightReal[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterTapsRightImag[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsRightImag[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } @@ -241,26 +241,26 @@ static ivas_error ivas_binRenderer_convModuleOpen( return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - for ( int16_t i = 0; i < hBinRenderer->conv_band; i++ ) + for ( bandIdx = 0; bandIdx < hBinRenderer->conv_band; bandIdx++ ) { - if ( ( hBinRenConvModule->filterStatesLeftReal[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterStatesLeftReal[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterStatesLeftImag[i] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterStatesLeftImag[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - for ( int16_t j = 0; j < hBinRenderer->nInChannels; j++ ) + for ( chIdx = 0; chIdx < hBinRenderer->nInChannels; chIdx++ ) { - if ( ( hBinRenConvModule->filterStatesLeftReal[i][j] = (float *) count_malloc( hBinRenConvModule->numTaps * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterStatesLeftReal[bandIdx][chIdx] = (float *) count_malloc( hBinRenConvModule->numTapsArray[bandIdx] * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterStatesLeftImag[i][j] = (float *) count_malloc( hBinRenConvModule->numTaps * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterStatesLeftImag[bandIdx][chIdx] = (float *) count_malloc( hBinRenConvModule->numTapsArray[bandIdx] * sizeof( float ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } @@ -308,8 +308,13 @@ static ivas_error ivas_binRenderer_convModuleOpen( if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM && hRenderConfig->roomAcoustics.use_brir ) { /* set the memories to zero */ +#ifdef SRAM_REDUCTION_BINRENDERER + set_zero( hBinRenConvModule->filterStatesLeftReal[bandIdx][chIdx], hBinRenConvModule->numTapsArray[bandIdx] ); + set_zero( hBinRenConvModule->filterStatesLeftImag[bandIdx][chIdx], hBinRenConvModule->numTapsArray[bandIdx] ); +#else set_zero( hBinRenConvModule->filterStatesLeftReal[bandIdx][chIdx], hBinRenConvModule->numTaps ); set_zero( hBinRenConvModule->filterStatesLeftImag[bandIdx][chIdx], hBinRenConvModule->numTaps ); +#endif if ( isLoudspeaker ) { @@ -654,7 +659,7 @@ static void ivas_binRenderer_convModuleClose( BINAURAL_RENDERER_HANDLE *hBinRenderer /* i/o: fastconv binaural renderer handle */ ) { - int16_t i, j; + int16_t bandIdx, chIdx; BINRENDERER_CONV_MODULE_HANDLE hBinRenConvModule; hBinRenConvModule = ( *hBinRenderer )->hBinRenConvModule; @@ -664,19 +669,19 @@ static void ivas_binRenderer_convModuleClose( return; } - for ( i = 0; i < ( *hBinRenderer )->conv_band; i++ ) + for ( bandIdx = 0; bandIdx < ( *hBinRenderer )->conv_band; bandIdx++ ) { - count_free( hBinRenConvModule->filterTapsLeftReal[i] ); - hBinRenConvModule->filterTapsLeftReal[i] = NULL; + count_free( hBinRenConvModule->filterTapsLeftReal[bandIdx] ); + hBinRenConvModule->filterTapsLeftReal[bandIdx] = NULL; - count_free( hBinRenConvModule->filterTapsLeftImag[i] ); - hBinRenConvModule->filterTapsLeftImag[i] = NULL; + count_free( hBinRenConvModule->filterTapsLeftImag[bandIdx] ); + hBinRenConvModule->filterTapsLeftImag[bandIdx] = NULL; - count_free( hBinRenConvModule->filterTapsRightReal[i] ); - hBinRenConvModule->filterTapsRightReal[i] = NULL; + count_free( hBinRenConvModule->filterTapsRightReal[bandIdx] ); + hBinRenConvModule->filterTapsRightReal[bandIdx] = NULL; - count_free( hBinRenConvModule->filterTapsRightImag[i] ); - hBinRenConvModule->filterTapsRightImag[i] = NULL; + count_free( hBinRenConvModule->filterTapsRightImag[bandIdx] ); + hBinRenConvModule->filterTapsRightImag[bandIdx] = NULL; } count_free( hBinRenConvModule->filterTapsLeftReal ); @@ -692,22 +697,22 @@ static void ivas_binRenderer_convModuleClose( hBinRenConvModule->filterTapsRightImag = NULL; - for ( i = 0; i < ( *hBinRenderer )->conv_band; i++ ) + for ( bandIdx = 0; bandIdx < ( *hBinRenderer )->conv_band; bandIdx++ ) { - for ( j = 0; j < ( *hBinRenderer )->nInChannels; j++ ) + for ( chIdx = 0; chIdx < ( *hBinRenderer )->nInChannels; chIdx++ ) { - count_free( hBinRenConvModule->filterStatesLeftReal[i][j] ); - hBinRenConvModule->filterStatesLeftReal[i][j] = NULL; + count_free( hBinRenConvModule->filterStatesLeftReal[bandIdx][chIdx] ); + hBinRenConvModule->filterStatesLeftReal[bandIdx][chIdx] = NULL; - count_free( hBinRenConvModule->filterStatesLeftImag[i][j] ); - hBinRenConvModule->filterStatesLeftImag[i][j] = NULL; + count_free( hBinRenConvModule->filterStatesLeftImag[bandIdx][chIdx] ); + hBinRenConvModule->filterStatesLeftImag[bandIdx][chIdx] = NULL; } - count_free( hBinRenConvModule->filterStatesLeftReal[i] ); - hBinRenConvModule->filterStatesLeftReal[i] = NULL; + count_free( hBinRenConvModule->filterStatesLeftReal[bandIdx] ); + hBinRenConvModule->filterStatesLeftReal[bandIdx] = NULL; - count_free( hBinRenConvModule->filterStatesLeftImag[i] ); - hBinRenConvModule->filterStatesLeftImag[i] = NULL; + count_free( hBinRenConvModule->filterStatesLeftImag[bandIdx] ); + hBinRenConvModule->filterStatesLeftImag[bandIdx] = NULL; } count_free( hBinRenConvModule->filterStatesLeftReal ); -- GitLab From 71e19748daa5d380a52d90b2e63d195a97b347f9 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 6 Oct 2022 10:32:38 +0200 Subject: [PATCH 183/479] reduction of static RAM usage in fastconv binaural *room* renderer; under SRAM_REDUCTION_BINRENDERER_ROOM --- lib_com/ivas_prot.h | 15 +- lib_com/options.h | 2 +- lib_dec/ivas_binauralRenderer.c | 14 ++ lib_dec/ivas_binaural_reverb.c | 146 +++++++++++++++++++- lib_dec/ivas_dirac_dec_binaural_functions.c | 18 +++ 5 files changed, 190 insertions(+), 5 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 60f44e22a3..3fe50e09b1 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3240,12 +3240,23 @@ void ivas_dirac_dec_binaural( const int16_t nchan_transport /* i : number of transport channels */ ); +#ifdef SRAM_REDUCTION_BINRENDERER_ROOM ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ - const int16_t numCldfbSlotsPerFrame /* i : number of CLDFB slots per frame, i.e., reverberator block size */ + const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ + ivas_roomAcoustics_t *roomAcoustics, /* i/o: room acoustics parameters */ + const AUDIO_CONFIG output_config, /* i : output audio configuration */ + const int32_t sampling_rate, /* i : sampling rate */ + const RENDERER_TYPE renderer_type /* i : renderer type */ ); - +#else +ivas_error ivas_binaural_reverb_open( + REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ + const int16_t numBins, /* i : number of CLDFB bins */ + const int16_t numCldfbSlotsPerFrame /* i : number of CLDFB slots per frame */ +); +#endif void ivas_binaural_reverb_close( REVERB_STRUCT_HANDLE *hReverb /* i/o: binaural reverb handle */ ); diff --git a/lib_com/options.h b/lib_com/options.h index 37831857bf..1b85a69e77 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -156,7 +156,7 @@ #define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ #define SRAM_REDUCTION_BINRENDERER /* Issue 145: reduction of static RAM usage in fastconv binaural renderer */ - +#define SRAM_REDUCTION_BINRENDERER_ROOM /* Issue 145: reduction of static RAM usage in fastconv binaural room renderer */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_binauralRenderer.c b/lib_dec/ivas_binauralRenderer.c index e094152dda..95c96f3bb8 100644 --- a/lib_dec/ivas_binauralRenderer.c +++ b/lib_dec/ivas_binauralRenderer.c @@ -378,6 +378,9 @@ static void ivas_binaural_obtain_DMX( { int16_t chIdx, bandIdx, k; +#ifdef SRAM_REDUCTION_BINRENDERER_ROOM + // ToDo: hBinRenderer->ivas_format is never set to ISM_FORMAT -> TBV +#endif if ( hBinRenderer->ivas_format == MC_FORMAT || hBinRenderer->ivas_format == ISM_FORMAT ) { /* Obtain the downmix */ @@ -493,8 +496,10 @@ ivas_error ivas_binRenderer_open( { BINAURAL_RENDERER_HANDLE hBinRenderer; int16_t convBand, chIdx, k; +#ifndef SRAM_REDUCTION_BINRENDERER_ROOM float t60[CLDFB_NO_CHANNELS_MAX]; float ene[CLDFB_NO_CHANNELS_MAX]; +#endif ivas_error error; error = IVAS_ERR_OK; @@ -588,10 +593,17 @@ ivas_error ivas_binRenderer_open( /* Allocate memories needed for reverb module */ if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM && st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) { +#ifdef SRAM_REDUCTION_BINRENDERER_ROOM + if ( ( error = ivas_binaural_reverb_open( &( hBinRenderer->hReverb ), hBinRenderer->conv_band, hBinRenderer->timeSlots, &( st_ivas->hRenderConfig->roomAcoustics ), st_ivas->hIntSetup.output_config, st_ivas->hDecoderConfig->output_Fs, RENDERER_BINAURAL_FASTCONV_ROOM ) ) != IVAS_ERR_OK ) + { + return error; + } +#else if ( ( error = ivas_binaural_reverb_open( &( hBinRenderer->hReverb ), hBinRenderer->conv_band, hBinRenderer->timeSlots ) ) != IVAS_ERR_OK ) { return error; } + if ( !st_ivas->hRenderConfig->roomAcoustics.override ) { ivas_binaural_reverb_setReverbTimes( hBinRenderer->hReverb, st_ivas->hDecoderConfig->output_Fs, fastconvReverberationTimes, fastconvReverberationEneCorrections ); @@ -605,6 +617,8 @@ ivas_error ivas_binRenderer_open( } hBinRenderer->hReverb->useBinauralCoherence = 1; +#endif + /* initialize the dmx matrix */ for ( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ ) { diff --git a/lib_dec/ivas_binaural_reverb.c b/lib_dec/ivas_binaural_reverb.c index 054b8c1558..bfb07c4c53 100644 --- a/lib_dec/ivas_binaural_reverb.c +++ b/lib_dec/ivas_binaural_reverb.c @@ -36,6 +36,9 @@ #include "ivas_prot.h" #include "prot.h" #include "ivas_rom_com.h" +#ifdef SRAM_REDUCTION_BINRENDERER_ROOM +#include "ivas_rom_binauralRenderer.h" +#endif #ifdef DEBUGGING #include "debug.h" #endif @@ -312,12 +315,13 @@ void ivas_binaural_reverb_setReverbTimes( } hReverb->binauralCoherenceDirectGains[bin] = sqrtf( 1.0f - fabsf( tmpVal ) ); +#ifndef SRAM_REDUCTION_BINRENDERER_ROOM /* Determine loop buffer length. The following formula is manually tuned to generate sufficiently long * but not excessively long loops to generate reverberation. */ /* Note: the resulted length is very sensitive to the precision of the constants below (e.g. 1.45 vs. 1.45f) */ hReverb->loopBufLength[bin] = (int16_t) ( 1.45 * (int16_t) ( revTimes[bin] * 150.0 ) + 1 ); hReverb->loopBufLength[bin] = min( hReverb->loopBufLength[bin], hReverb->loopBufLengthMax[bin] ); - +#endif /* Determine attenuation factor that generates the appropriate energy decay according to reverberation time */ attenuationFactorPerSample = powf( 10.0f, -3.0f * ( 1.0f / ( (float) CLDFB_SLOTS_PER_SECOND * revTimes[bin] ) ) ); hReverb->loopAttenuationFactor[bin] = powf( attenuationFactorPerSample, hReverb->loopBufLength[bin] ); @@ -371,6 +375,144 @@ void ivas_binaural_reverb_setReverbTimes( * Allocate and initialize binaural room reverberator handle *------------------------------------------------------------------------*/ +#ifdef SRAM_REDUCTION_BINRENDERER_ROOM +ivas_error ivas_binaural_reverb_open( + REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ + const int16_t numBins, /* i : number of CLDFB bins */ + const int16_t numCldfbSlotsPerFrame, /* i : number of CLDFB slots per frame */ + ivas_roomAcoustics_t *roomAcoustics, /* i/o: room acoustics parameters */ + const AUDIO_CONFIG output_config, /* i : output audio configuration */ + const int32_t sampling_rate, /* i : sampling rate */ + const RENDERER_TYPE renderer_type /* i : renderer type */ +) +{ + int16_t bin, chIdx, k, len; + REVERB_STRUCT_HANDLE hReverb; + const float *revTimes; + float t60[CLDFB_NO_CHANNELS_MAX]; + float ene[CLDFB_NO_CHANNELS_MAX]; + + if ( ( *hReverbPr = (REVERB_STRUCT_HANDLE) count_malloc( sizeof( REVERB_STRUCT ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); + } + + hReverb = *hReverbPr; + + hReverb->useBinauralCoherence = 1; + hReverb->preDelayBufferLength = 1; + hReverb->preDelayBufferIndex = 0; + + hReverb->numBins = numBins; + hReverb->blockSize = numCldfbSlotsPerFrame; + + for ( k = 0; k < REVERB_PREDELAY_MAX + 1; k++ ) + { + set_f( hReverb->preDelayBufferReal[k], 0.0f, hReverb->numBins ); + set_f( hReverb->preDelayBufferImag[k], 0.0f, hReverb->numBins ); + } + + if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) + { + if ( !roomAcoustics->override ) + { + revTimes = fastconvReverberationTimes; + } + else + { + revTimes = (float *) sampling_rate; + } + } + else + { + revTimes = parametricReverberationTimes; + } + + for ( bin = 0; bin < hReverb->numBins; bin++ ) + { + /* Loop Buffer */ + hReverb->loopBufLengthMax[bin] = (int16_t) ( 500 / ( 1 + bin ) + ( CLDFB_NO_CHANNELS_MAX - bin ) ); + + len = hReverb->loopBufLengthMax[bin] + hReverb->blockSize; + if ( ( hReverb->loopBufReal[bin] = (float *) count_malloc( len * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); + } + + if ( ( hReverb->loopBufImag[bin] = (float *) count_malloc( len * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); + } + + set_f( hReverb->loopBufReal[bin], 0.0f, len ); + set_f( hReverb->loopBufImag[bin], 0.0f, len ); + + /* Determine loop buffer length. The following formula is manually tuned to generate sufficiently long + * but not excessively long loops to generate reverberation. */ + /* Note: the resulted length is very sensitive to the precision of the constants below (e.g. 1.45 vs. 1.45f) */ + hReverb->loopBufLength[bin] = (int16_t) ( 1.45 * (int16_t) ( revTimes[bin] * 150.0 ) + 1 ); + hReverb->loopBufLength[bin] = min( hReverb->loopBufLength[bin], hReverb->loopBufLengthMax[bin] ); + + /* Sparse Filter Tap Locations */ + for ( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ ) + { + len = hReverb->loopBufLength[bin]; + + if ( ( hReverb->tapPhaseShiftType[bin][chIdx] = (int16_t *) count_malloc( len * sizeof( int16_t ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); + } + set_s( hReverb->tapPhaseShiftType[bin][chIdx], 0, len ); + + if ( ( hReverb->tapPointersReal[bin][chIdx] = (float **) count_malloc( len * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); + } + + if ( ( hReverb->tapPointersImag[bin][chIdx] = (float **) count_malloc( len * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); + } + + len = hReverb->blockSize; + if ( ( hReverb->outputBufferReal[bin][chIdx] = (float *) count_malloc( len * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); + } + + if ( ( hReverb->outputBufferImag[bin][chIdx] = (float *) count_malloc( len * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); + } + + set_f( hReverb->outputBufferReal[bin][chIdx], 0.0f, len ); + set_f( hReverb->outputBufferImag[bin][chIdx], 0.0f, len ); + } + } + + if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) + { + if ( !roomAcoustics->override ) + { + ivas_binaural_reverb_setReverbTimes( hReverb, sampling_rate, fastconvReverberationTimes, fastconvReverberationEneCorrections ); + ivas_binaural_reverb_setPreDelay( hReverb, 10 ); + } + else + { + ivas_reverb_prepare_cldfb_params( roomAcoustics, output_config, roomAcoustics->use_brir, sampling_rate, t60, ene ); + ivas_binaural_reverb_setReverbTimes( hReverb, sampling_rate, t60, ene ); + ivas_binaural_reverb_setPreDelay( hReverb, (int16_t) roundf( 48000.0f * roomAcoustics->acousticPreDelay / CLDFB_NO_CHANNELS_MAX ) ); + } + } + else + { + ivas_binaural_reverb_setReverbTimes( hReverb, sampling_rate, parametricReverberationTimes, parametricReverberationEneCorrections ); + ivas_binaural_reverb_setPreDelay( hReverb, 10 ); + } + + return IVAS_ERR_OK; +} +#else ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ @@ -459,7 +601,7 @@ ivas_error ivas_binaural_reverb_open( return IVAS_ERR_OK; } - +#endif /*------------------------------------------------------------------------- * ivas_binaural_reverb_close() diff --git a/lib_dec/ivas_dirac_dec_binaural_functions.c b/lib_dec/ivas_dirac_dec_binaural_functions.c index 5e698ab289..9eb73edd5e 100644 --- a/lib_dec/ivas_dirac_dec_binaural_functions.c +++ b/lib_dec/ivas_dirac_dec_binaural_functions.c @@ -188,6 +188,22 @@ ivas_error ivas_dirac_dec_init_binaural_data( else if ( renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) /* Indication of binaural rendering with room effect */ { mvr2r( parametricEarlyPartEneCorrection, hBinaural->earlyPartEneCorrection, nBins ); +#ifdef SRAM_REDUCTION_BINRENDERER_ROOM + if ( hBinaural->useSubframeMode ) + { + if ( ( error = ivas_binaural_reverb_open( &hBinaural->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, NULL, st_ivas->hIntSetup.output_config, output_Fs, RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else + { + if ( ( error = ivas_binaural_reverb_open( &hBinaural->hReverb, nBins, CLDFB_NO_COL_MAX, NULL, st_ivas->hIntSetup.output_config, output_Fs, RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) != IVAS_ERR_OK ) + { + return error; + } + } +#else if ( hBinaural->useSubframeMode ) { if ( ( error = ivas_binaural_reverb_open( &hBinaural->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES ) ) != IVAS_ERR_OK ) @@ -202,9 +218,11 @@ ivas_error ivas_dirac_dec_init_binaural_data( return error; } } + ivas_binaural_reverb_setReverbTimes( hBinaural->hReverb, output_Fs, parametricReverberationTimes, parametricReverberationEneCorrections ); hBinaural->hReverb->useBinauralCoherence = 1; ivas_binaural_reverb_setPreDelay( hBinaural->hReverb, 10 ); +#endif } else if ( renderer_type == RENDERER_STEREO_PARAMETRIC ) { -- GitLab From d679826c48f5651fef8d12353a59e1a3b2c4c729 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 6 Oct 2022 10:49:21 +0200 Subject: [PATCH 184/479] fix Linux build --- lib_dec/ivas_binaural_reverb.c | 2 +- lib_dec/ivas_rom_binauralRenderer.c | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib_dec/ivas_binaural_reverb.c b/lib_dec/ivas_binaural_reverb.c index bfb07c4c53..db552e538a 100644 --- a/lib_dec/ivas_binaural_reverb.c +++ b/lib_dec/ivas_binaural_reverb.c @@ -420,7 +420,7 @@ ivas_error ivas_binaural_reverb_open( } else { - revTimes = (float *) sampling_rate; + revTimes = t60; } } else diff --git a/lib_dec/ivas_rom_binauralRenderer.c b/lib_dec/ivas_rom_binauralRenderer.c index 28c8856012..bfd2da9fb4 100644 --- a/lib_dec/ivas_rom_binauralRenderer.c +++ b/lib_dec/ivas_rom_binauralRenderer.c @@ -44033,19 +44033,20 @@ const float rightBRIRImag[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]= } }; -const float fastconvReverberationTimes[60] = +const float fastconvReverberationTimes[CLDFB_NO_CHANNELS_MAX] = { 0.429201f, 0.205110f, 0.202338f, 0.208383f, 0.215664f, 0.236545f, 0.230598f, 0.228400f, 0.227467f, 0.218956f, 0.226083f, 0.220702f, 0.221501f, 0.223471f, 0.223705f, 0.227063f, 0.227899f, 0.223071f, 0.220000f, 0.218583f, 0.220417f, 0.218250f, 0.213250f, 0.210333f, 0.207417f, 0.198750f, 0.196250f, 0.194917f, 0.190333f, 0.184500f, 0.180333f, 0.176167f, 0.176500f, 0.177583f, 0.183583f, 0.195917f, 0.203250f, 0.208417f, 0.214667f, 0.220000f, 0.222917f, 0.230417f, 0.233928f, 0.233647f, 0.236333f, 0.237428f, 0.241629f, 0.241118f, 0.238847f, 0.242384f, 0.246292f, 0.245948f, 0.246100f, 0.245396f, 0.243951f, 0.244123f, 0.239270f, 0.241474f, 0.234824f, 0.253040f, }; -const float fastconvReverberationEneCorrections[60] = +const float fastconvReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX] = { 0.000584f, 0.000210f, 0.000233f, 0.000212f, 0.000257f, 0.001518f, 0.001154f, 0.001097f, 0.001265f, 0.001298f, 0.002320f, 0.002432f, 0.002686f, 0.002702f, 0.002632f, 0.002564f, 0.002732f, 0.002727f, 0.002609f, 0.002524f, 0.003417f, 0.001783f, 0.000987f, 0.000699f, 0.000606f, 0.000536f, 0.000511f, 0.000569f, 0.000600f, 0.000543f, 0.001257f, 0.001209f, 0.000957f, 0.000601f, 0.000274f, 0.000106f, 0.000072f, 0.000051f, 0.000040f, 0.000030f, 0.000024f, 0.000018f, 0.000014f, 0.000013f, 0.000012f, 0.000011f, 0.000009f, 0.000009f, 0.000008f, 0.000008f, 0.000007f, 0.000006f, 0.000005f, 0.000003f, 0.000002f, 0.000002f, 0.000001f, 0.000001f, 0.000000f, 0.000000f, }; -const float parametricReverberationTimes[CLDFB_NO_CHANNELS_MAX] = { +const float parametricReverberationTimes[CLDFB_NO_CHANNELS_MAX] = +{ 0.345494f, 0.319454f, 0.332961f, 0.360923f, 0.374299f, 0.370777f, 0.358625f, 0.348103f, 0.343109f, 0.331351f, 0.316502f, 0.304975f, 0.294855f, 0.287549f, 0.279920f, 0.270277f, 0.264042f, 0.256404f, 0.249899f, 0.242040f, 0.235074f, 0.229647f, 0.223730f, 0.218795f, 0.212599f, 0.207689f, 0.202082f, 0.198094f, 0.193907f, 0.185908f, @@ -44055,7 +44056,8 @@ const float parametricReverberationTimes[CLDFB_NO_CHANNELS_MAX] = { }; -const float parametricReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX] = { +const float parametricReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX] = +{ 0.191981f, 0.143739f, 0.113528f, 0.093836f, 0.090147f, 0.079961f, 0.066594f, 0.072700f, 0.076491f, 0.082065f, 0.085265f, 0.093864f, 0.101901f, 0.113728f, 0.117646f, 0.113494f, 0.126125f, 0.126304f, 0.123928f, 0.116067f, 0.098528f, 0.051482f, 0.029950f, 0.025223f, 0.021143f, 0.019358f, 0.016707f, 0.016227f, 0.018416f, 0.018419f, @@ -44065,7 +44067,8 @@ const float parametricReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX] = { }; -const float parametricEarlyPartEneCorrection[CLDFB_NO_CHANNELS_MAX] = { +const float parametricEarlyPartEneCorrection[CLDFB_NO_CHANNELS_MAX] = +{ 0.595541f, 0.684107f, 1.041399f, 0.880102f, 0.726599f, 0.529105f, 0.456758f, 0.383174f, 0.331734f, 0.330565f, 0.436469f, 0.592478f, 0.767344f, 1.110786f, 1.548546f, 1.946089f, 2.550005f, 3.382855f, 4.235532f, 4.688064f, 3.328668f, 1.312207f, 0.376543f, 0.176443f, 0.149840f, 0.130307f, 0.137089f, 0.292711f, 0.580265f, 0.733105f, -- GitLab From 28019a179d732178d4ff1d6a5280cae68ff6cea6 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 6 Oct 2022 12:12:21 +0200 Subject: [PATCH 185/479] fix instrumented build by temporarily wrapping problematic function calls with WMC_TOOL_MAN --- lib_rend/lib_rend.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 2499b34a39..b31ffafac5 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -3492,10 +3492,12 @@ static ivas_error renderMcCustomLsToBinauralRoom( for ( i = 0; i < mcInput->base.inputBuffer.config.numChannels; i++ ) { +#define WMC_TOOL_MAN renderBufferChannel( ( headRotEnabled ) ? tmpRotBuffer : mcInput->base.inputBuffer, i, mcInput->panGains[i], tmpMcBuffer ); +#undef WMC_TOOL_MAN } copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); @@ -3770,10 +3772,12 @@ static ivas_error renderSbaToBinauralRoom( for ( i = 0; i < sbaInput->base.inputBuffer.config.numChannels; i++ ) { +#define WMC_TOOL_MAN renderBufferChannel( ( headRotEnabled ) ? tmpRotBuffer : sbaInput->base.inputBuffer, i, sbaInput->hoaDecMtx[i], tmpMcBuffer ); +#undef WMC_TOOL_MAN } copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); -- GitLab From 911a6908590074bf4dba61f925a5f2cf21ec8209 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 6 Oct 2022 13:34:42 +0200 Subject: [PATCH 186/479] Manually sync files to state on main --- .gitlab-ci-custom.yml | 2 +- .gitlab-ci.yml | 314 +++++++++++++++++++++++++++++------ readme.txt | 2 +- scripts/config/ci_linux.json | 2 +- scripts/config/self_test.prm | 8 + 5 files changed, 273 insertions(+), 55 deletions(-) diff --git a/.gitlab-ci-custom.yml b/.gitlab-ci-custom.yml index d39886c69c..86c1f487e0 100644 --- a/.gitlab-ci-custom.yml +++ b/.gitlab-ci-custom.yml @@ -1,4 +1,4 @@ include: - project: $CUSTOM_CI_PROJECT - ref: external-renderer-ci + ref: $CUSTOM_CI_REF file: $CUSTOM_CI_FILE diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0c1e02f0ca..21c856850a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,13 @@ variables: TESTV_DIR: "/usr/local/testv" BUILD_OUTPUT: "build_output.txt" + EVS_BE_TEST_DIR: "/usr/local/be_2_evs_test" + SANITIZER_TESTS: "CLANG1 CLANG2" + OUT_FORMATS_CHANNEL_BASED: "stereo mono 5_1 5_1_2 5_1_4 7_1 7_1_4" + OUT_FORMATS_SCENE_BASED: "FOA HOA2 HOA3" + OUT_FORMATS_BINAURAL: "BINAURAL BINAURAL_ROOM" + EXIT_CODE_NON_BE: 123 + EXIT_CODE_FAIL: 1 # This sets when pipelines are created. Jobs have more specific rules to restrict them. @@ -13,7 +20,6 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main - stages: - maintenance - build @@ -51,6 +57,8 @@ stages: rules: - if: $MIRROR_ACCESS_TOKEN # Don't run in the mirror update pipeline (only then MIRROR_ACCESS_TOKEN is defined) when: never + - if: $CI_PIPELINE_SOURCE == 'schedule' # Don't run in any scheduled pipelines by default (use schedule templates below to enable again for certain conditions) + when: never - when: on_success .rules-merge-request: @@ -206,6 +214,12 @@ msan-on-merge-request-linux: - python3 scripts/self_test.py --create | tee test_output.txt - run_errors=$(cat test_output.txt | grep -ic "run errors") || true - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py with Clang memory-sanitizer"; exit 1; fi + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" + paths: + - scripts/ref/logs/ + - test_output.txt + expose_as: 'Msan selftest results' # code selftest testvectors with address-sanitizer binaries @@ -222,6 +236,12 @@ asan-on-merge-request-linux: - python3 scripts/self_test.py --create | tee test_output.txt - run_errors=$(cat test_output.txt | grep -ic "run errors") || true - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py with Clang address-sanitizer"; exit 1; fi + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" + paths: + - scripts/ref/logs/ + - test_output.txt + expose_as: 'Asan selftest results' # test external renderer executable external-renderer-make-pytest: @@ -261,7 +281,7 @@ external-renderer-cmake-msan-pytest: - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto # compare bit exactness between target and source branch -self-test-on-merge-request: +pytest-on-merge-request: extends: - .test-job-linux - .rules-merge-request @@ -303,40 +323,53 @@ self-test-on-merge-request: - mv IVAS_dec ../IVAS_dec_ref - cd .. - ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) + ### re-checkout the commit from the source branch to have up-to-date test scripts and test vectors (and actually everything) - git checkout $source_branch_commit_sha - ### run selftest - - ls -altr scripts/testv - - python3 ./scripts/self_test.py --encref IVAS_cod_ref --decref IVAS_dec_ref --enctest IVAS_cod_test --dectest IVAS_dec_test | tee test_output.txt - - ### analyse test output - # some helper variables - "|| true" to prevent failures from grep not finding anything + - evs_non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]*non[ -]*be\]") || true - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true - - run_errors=$(cat test_output.txt | grep -c "test conditions had run errors") || true - - bitexact=$(cat test_output.txt | grep -c "All [0-9]* tests are bitexact") || true - - EXIT_CODE_NON_BE=123 - - EXIT_CODE_FAIL=1 + - expected_nonbe_1=0 + - expected_nonbe_2=0 + - fail_1=0 + - fail_2=0 - - selftest_exit_code=0 + ### prepare pytest + # create short test vectors + - python3 tests/create_short_testvectors.py + # rename test binaries back + - mv IVAS_cod_test IVAS_cod + - mv IVAS_dec_test IVAS_dec + # create references + - python3 -m pytest tests -v --update_ref 1 -m create_ref + - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 + - python3 -m pytest tests/test_param_file.py -v --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm + + ### run pytest + - exit_code=0 + - python3 -m pytest tests -v --junit-xml=report-junit.xml || exit_code=$? + - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - # check for crashes during the test, if any happened, fail the test - - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; exit $EXIT_CODE_FAIL; fi + - if [ $zero_errors != 1 ]; then echo "Run errors in pytest"; fail_1=1; fi - # check for non bitexact output and store exit code to also always run the SBA pytest - - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_FAIL; fi - - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_NON_BE; fi + - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures without non-BE tag encountered"; fail_1=1; fi + - if [ $exit_code -eq 1 ] && [ $non_be_flag != 0 ]; then echo "pytest run had failures with non-BE tag encountered"; expected_nonbe_1=1; fi - ### run SBA pytest + ### run pytest for EVS cases - exit_code=0 - - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? - - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi - - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi - - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; exit $EXIT_CODE_FAIL; fi; - # return exit code from selftest if everything went well with the pytest run - - exit $selftest_exit_code + - python3 -m pytest tests/test_param_file.py -v --param_file scripts/config/self_test_evs.prm --junit-xml=report-junit-evs.xml || exit_code=$? + - zero_errors=$(cat report-junit-evs.xml | grep -c 'errors="0"') || true + + - if [ $zero_errors != 1 ]; then echo "Run errors in pytest for EVS"; fail_2=1; fi + + - if [ $exit_code -eq 1 ] && [ $evs_non_be_flag == 0 ]; then echo "Non-bitexact EVS cases without EVS-non-BE tag encountered"; fail_2=1; fi + - if [ $exit_code -eq 1 ] && [ $evs_non_be_flag != 0 ]; then echo "Non-bitexact EVS cases with EVS-non-BE tag encountered"; expected_nonbe_2=1; fi + + # Check results from both tests + - if [ $fail_1 -eq 1 ] || [ $fail_2 -eq 1 ]; then exit $EXIT_CODE_FAIL; fi + - if [ $expected_nonbe_1 -eq 1 ] || [ $expected_nonbe_2 -eq 1 ]; then exit $EXIT_CODE_NON_BE; fi + - exit 0 + allow_failure: exit_codes: - 123 @@ -344,19 +377,47 @@ self-test-on-merge-request: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" when: always paths: - - test_output.txt - - scripts/test/logs/ - - scripts/ref/logs/ - report-junit.xml - expose_as: 'Self test results' + - report-junit-evs.xml + expose_as: 'pytest results' reports: - junit: report-junit.xml + junit: + - report-junit.xml + - report-junit-evs.xml # --------------------------------------------------------------- # Test jobs for main branch # --------------------------------------------------------------- +# check bitexactness to EVS +be-2-evs-linux: + extends: + - .test-job-linux + - .rules-main-push + tags: + - be-2-evs-temp + stage: test + needs: [ "build-codec-linux-cmake" ] + timeout: "20 minutes" # To be revisited + script: + - *print-common-info + + - mkdir build + - cd build + - cmake .. + - make -j + - cd .. + + # copy over to never change the testvector dir + - cp -r $EVS_BE_TEST_DIR ./evs_be_test + - cp build/IVAS_cod ./evs_be_test/bin/EVS_cod + - cp build/IVAS_dec ./evs_be_test/bin/EVS_dec + + - cd evs_be_test + - python3 ../ci/run_evs_be_test.py + + codec-comparison-on-main-push: extends: - .test-job-linux @@ -402,24 +463,23 @@ codec-comparison-on-main-push: # helper variable - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_COMMIT_MESSAGE | grep -c --ignore-case "\[non[ -]*be\]") || true - - selftest_exit_code=0 - - # check for crashes during the test, if any happened, fail the test - - if [ $run_errors != 0 ] ; then echo "Run errors in self_test.py"; exit $EXIT_CODE_FAIL; fi - - # check for non bitexact output and store exit code to also always run the SBA pytest - - if [ $bitexact == 0 ] && [ $non_be_flag == 0 ] ; then echo "Non-bitexact cases without non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_FAIL; fi - - if [ $bitexact == 0 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; selftest_exit_code=$EXIT_CODE_NON_BE; fi - - ### run SBA pytest + ### prepare pytest + # create short test vectors + - python3 tests/create_short_testvectors.py + # rename test binaries back + - mv IVAS_cod_test IVAS_cod + - mv IVAS_dec_test IVAS_dec + # create references + - python3 -m pytest tests -v --update_ref 1 -m create_ref + - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 + + ### run pytest - exit_code=0 - - python3 ./scripts/ivas_pytests/self_test_b.py --encref IVAS_cod_ref --decref IVAS_dec_ref --encdut IVAS_cod_test --decdut IVAS_dec_test || exit_code=$? + - python3 -m pytest tests -v --junit-xml=report-junit.xml || exit_code=$? - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures and non-BE flag not present"; exit $EXIT_CODE_FAIL; fi - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - if [ $exit_code -eq 1 ] && [ $zero_errors == 1 ]; then echo "pytest run had failures, but no errors and non-BE flag present"; exit $EXIT_CODE_NON_BE; fi - if [ $exit_code -ne 0 ]; then echo "pytest run had errors"; exit $EXIT_CODE_FAIL; fi; - # return exit code from selftest if everything went well with the pytest run - - exit $selftest_exit_code allow_failure: exit_codes: - 123 @@ -427,21 +487,171 @@ codec-comparison-on-main-push: name: "main-push--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results" when: always paths: - - test_output.txt - - scripts/test/logs/ - - scripts/ref/logs/ - report-junit.xml expose_as: 'Results of comparison to previous merge commit' reports: junit: report-junit.xml -sanitizer-test-on-main-scheduled: - extends: .test-job-linux-needs-testv-dir +# --------------------------------------------------------------- +# Scheduled jobs on main +# --------------------------------------------------------------- +.sanitizer-test-template: + extends: + - .test-job-linux-needs-testv-dir + stage: test + tags: + - sanitizer_test_main + artifacts: + name: "$CI_JOB_NAME--main--sha-$CI_COMMIT_SHORT_SHA" + when: always + paths: + - ep_015.g192 + +sanitizer-test-mono: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + script: + - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS + +sanitizer-test-stereo: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 20 minutes + script: + - python3 ci/run_scheduled_sanitizer_test.py stereo $OUT_FORMATS_CHANNEL_BASED --tests $SANITIZER_TESTS + +sanitizer-test-stereodmxevs: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 40 minutes + script: + - python3 ci/run_scheduled_sanitizer_test.py StereoDmxEvs mono --tests $SANITIZER_TESTS + +sanitizer-test-ism1: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 1 hour + script: + - python3 ci/run_scheduled_sanitizer_test.py ISM1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS + +sanitizer-test-ism2: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 1 hour 30 minutes + script: + - python3 ci/run_scheduled_sanitizer_test.py ISM2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS + +sanitizer-test-ism3: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 2 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py ISM3 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS + +sanitizer-test-ism4: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 2 hours 30 minutes + script: + - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS + +sanitizer-test-mc-5_1: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 3 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py 5_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS + +sanitizer-test-mc-5_1_2: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 4 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS + +sanitizer-test-mc-5_1_4: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 5 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS + +sanitizer-test-mc-7_1: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 6 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS + +sanitizer-test-mc-7_1_4: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 7 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS + +sanitizer-test-masa: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 8 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS + +sanitizer-test-sba: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 9 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS + +sanitizer-test-planarsba: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + when: delayed + start_in: 10 hours + script: + - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS + +# GCOV/LCOV coverage analysis of self_test suite +coverage-test-on-main-scheduled: + extends: + - .test-job-linux-needs-testv-dir + - .rules-main-scheduled + tags: + - coverage-test stage: test rules: - # only run in scheduled pipeline that passes this env var - - if: $SANITIZER_TEST_IN_FMT + # only run in scheduled pipeline that passes this env vars + - if: $COVERAGE_TEST script: - *print-common-info - make GCOV=1 -j diff --git a/readme.txt b/readme.txt index 4d4de5864a..86e223b32c 100644 --- a/readme.txt +++ b/readme.txt @@ -195,7 +195,7 @@ EVS mono is default, for IVAS choose one of the following: -stereo, -ism, -sba, where 0 = adaptive, 3-100 = fixed in number of frames, default is deactivated -dtx : Activate DTX mode with a SID update rate of 8 frames - Note: DTX is currently supported in EVS, DFT/TD stereo, 1 ISm, + Note: DTX is currently supported in EVS, stereo, 1 ISm, SBA (up to 128kbps) and MASA (up to 128kbps) -rf p o : Activate channel-aware mode for WB and SWB signal at 13.2kbps, where FEC indicator, p: LO or HI, and FEC offset, o: 2, 3, 5, or 7 in number of frames. diff --git a/scripts/config/ci_linux.json b/scripts/config/ci_linux.json index 23aee75ba7..6279d3f89d 100644 --- a/scripts/config/ci_linux.json +++ b/scripts/config/ci_linux.json @@ -1,6 +1,6 @@ { "afspPath": "not_needed", - "utilPath": "not_needed", + "utilPath": "/tools", "inpaths": { "MONO": "/usr/local/testv/test_mono.wav", "STEREO": "/usr/local/testv/test_stereo.wav", diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index ffafdb3776..721e93a457 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -276,6 +276,14 @@ ../IVAS_cod -ism 1 testv/stvISM1.csv 13200 48 testv/stv1ISM48s.pcm bit ../IVAS_dec MONO 48 bit testv/stv1ISM48s.pcm_13200_48-48_MONO.tst +// 1 ISm with metadata at 13.2 kbps, 48 kHz in, 48 kHz out, DTX on, BINAURAL out, random FEC at 5% +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 13200 48 testv/stv48n.pcm bit +../IVAS_dec -fec 5 BINAURAL 48 bit testv/stv48n.pcm_13200_48-48_DTX_FEC5_BINAURAL.tst + +// 1 ISm with metadata at 32 kbps, 32 kHz in, 32 kHz out, DTX on, MONO out +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 32000 32 testv/stv32n.pcm bit +../IVAS_dec MONO 32 bit testv/stv32n.pcm_32000_32-32_DTX_MONO.tst + // 2 ISm with metadata at 16.4 kbps, 48 kHz in, 48 kHz out, STEREO out ../IVAS_cod -ism 2 testv/stvISM1.csv testv/stvISM2.csv 16400 48 testv/stv2ISM48s.pcm bit ../IVAS_dec STEREO 48 bit testv/stv2ISM48s.pcm_16400_48-48_STEREO.tst -- GitLab From 0fdc666dd57aa99e50a50a066559237a824b3cfc Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 6 Oct 2022 13:35:37 +0200 Subject: [PATCH 187/479] Fix non-text differences w.r.t. main --- apps/encoder.c | 0 ci/run_scheduled_sanitizer_test.py | 0 lib_com/bitstream.c | 0 lib_com/ivas_entropy_coder_common.c | 0 lib_com/ivas_mdft_imdft.c | 0 lib_com/ivas_spar_com.c | 0 lib_com/prot.h | 0 lib_debug/sba_debug.c | 0 lib_dec/acelp_core_dec.c | 0 lib_dec/evs_dec.c | 0 lib_dec/ivas_core_dec.c | 0 lib_dec/ivas_dirac_dec.c | 0 lib_dec/ivas_init_dec.c | 0 lib_dec/ivas_spar_decoder.c | 0 lib_dec/ivas_stereo_switching_dec.c | 0 lib_dec/lib_dec.c | 0 lib_dec/swb_tbe_dec.c | 0 lib_enc/igf_enc.c | 0 lib_enc/ivas_enc.c | 0 lib_enc/ivas_mct_core_enc.c | 0 lib_enc/ivas_mct_enc_mct.c | 0 lib_enc/ivas_stereo_dft_enc_itd.c | 0 lib_enc/tcx_utils_enc.c | 0 scripts/pyaudio3dtools/audiofile.py | 0 24 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 apps/encoder.c mode change 100755 => 100644 ci/run_scheduled_sanitizer_test.py mode change 100755 => 100644 lib_com/bitstream.c mode change 100755 => 100644 lib_com/ivas_entropy_coder_common.c mode change 100755 => 100644 lib_com/ivas_mdft_imdft.c mode change 100755 => 100644 lib_com/ivas_spar_com.c mode change 100644 => 100755 lib_com/prot.h mode change 100755 => 100644 lib_debug/sba_debug.c mode change 100755 => 100644 lib_dec/acelp_core_dec.c mode change 100755 => 100644 lib_dec/evs_dec.c mode change 100755 => 100644 lib_dec/ivas_core_dec.c mode change 100755 => 100644 lib_dec/ivas_dirac_dec.c mode change 100755 => 100644 lib_dec/ivas_init_dec.c mode change 100755 => 100644 lib_dec/ivas_spar_decoder.c mode change 100755 => 100644 lib_dec/ivas_stereo_switching_dec.c mode change 100755 => 100644 lib_dec/lib_dec.c mode change 100755 => 100644 lib_dec/swb_tbe_dec.c mode change 100644 => 100755 lib_enc/igf_enc.c mode change 100755 => 100644 lib_enc/ivas_enc.c mode change 100755 => 100644 lib_enc/ivas_mct_core_enc.c mode change 100644 => 100755 lib_enc/ivas_mct_enc_mct.c mode change 100755 => 100644 lib_enc/ivas_stereo_dft_enc_itd.c mode change 100644 => 100755 lib_enc/tcx_utils_enc.c mode change 100644 => 100755 scripts/pyaudio3dtools/audiofile.py diff --git a/apps/encoder.c b/apps/encoder.c old mode 100755 new mode 100644 diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py old mode 100755 new mode 100644 diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c old mode 100755 new mode 100644 diff --git a/lib_com/ivas_entropy_coder_common.c b/lib_com/ivas_entropy_coder_common.c old mode 100755 new mode 100644 diff --git a/lib_com/ivas_mdft_imdft.c b/lib_com/ivas_mdft_imdft.c old mode 100755 new mode 100644 diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c old mode 100755 new mode 100644 diff --git a/lib_com/prot.h b/lib_com/prot.h old mode 100644 new mode 100755 diff --git a/lib_debug/sba_debug.c b/lib_debug/sba_debug.c old mode 100755 new mode 100644 diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c old mode 100755 new mode 100644 diff --git a/lib_dec/evs_dec.c b/lib_dec/evs_dec.c old mode 100755 new mode 100644 diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c old mode 100755 new mode 100644 diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c old mode 100755 new mode 100644 diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c old mode 100755 new mode 100644 diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c old mode 100755 new mode 100644 diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c old mode 100755 new mode 100644 diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c old mode 100755 new mode 100644 diff --git a/lib_dec/swb_tbe_dec.c b/lib_dec/swb_tbe_dec.c old mode 100755 new mode 100644 diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c old mode 100644 new mode 100755 diff --git a/lib_enc/ivas_enc.c b/lib_enc/ivas_enc.c old mode 100755 new mode 100644 diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c old mode 100755 new mode 100644 diff --git a/lib_enc/ivas_mct_enc_mct.c b/lib_enc/ivas_mct_enc_mct.c old mode 100644 new mode 100755 diff --git a/lib_enc/ivas_stereo_dft_enc_itd.c b/lib_enc/ivas_stereo_dft_enc_itd.c old mode 100755 new mode 100644 diff --git a/lib_enc/tcx_utils_enc.c b/lib_enc/tcx_utils_enc.c old mode 100644 new mode 100755 diff --git a/scripts/pyaudio3dtools/audiofile.py b/scripts/pyaudio3dtools/audiofile.py old mode 100644 new mode 100755 -- GitLab From d08164cb81d4f029c77c32baced7ab7007307980 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 6 Oct 2022 13:56:19 +0200 Subject: [PATCH 188/479] re-enable FIX_CREND_CHANNELS now that a fix was applied --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 50c5117ce2..b6f4b44ea2 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -151,7 +151,7 @@ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ -// #define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ +#define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ -- GitLab From eed8fa6b0f43e47e62df727763839ee4c0488317 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 6 Oct 2022 14:19:18 +0200 Subject: [PATCH 189/479] Another round of manual sync from main --- .gitignore | 4 +- pytest.ini | 9 +- scripts/IvasBuildAndRunChecks.py | 25 +- scripts/ivas_pytests/self_test_b.py | 273 ----------- scripts/ivas_pytests/tests/il2mm.py | 61 --- scripts/ivas_pytests/tests/requirements.txt | 4 - .../system_tests/test_spar_foa_bs_dec_plc.py | 180 ------- .../unit_tests/crend/ivas_crend_io_parse.h | 4 +- .../crend/ivas_crend_unit_test.vcxproj | 5 +- .../unit_tests/crend/ivas_dec_parse_io.h | 30 +- scripts/pyivastest/IvasModeRunner.py | 2 +- scripts/self_test.py | 20 +- scripts/tools/Darwin/networkSimulator_g192 | Bin 0 -> 154584 bytes scripts/tools/Win32/networkSimulator_g192.exe | 3 + tests/README.md | 173 +++++++ .../tests => tests}/cmp_custom.py | 92 ++-- {scripts/ivas_pytests => tests}/conftest.py | 231 ++++++--- tests/create_short_testvectors.py | 66 +++ .../ivas_pytests/tests => tests}/cut_pcm.py | 6 +- tests/requirements.txt | 4 + tests/run_pytests.py | 106 ++++ tests/test_param_file.py | 460 ++++++++++++++++++ tests/test_sba_bs_dec_plc.py | 189 +++++++ .../test_sba_bs_enc.py | 214 ++++---- tests/testconfig.py | 37 ++ 25 files changed, 1404 insertions(+), 794 deletions(-) delete mode 100755 scripts/ivas_pytests/self_test_b.py delete mode 100644 scripts/ivas_pytests/tests/il2mm.py delete mode 100644 scripts/ivas_pytests/tests/requirements.txt delete mode 100644 scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py mode change 100644 => 100755 scripts/pyivastest/IvasModeRunner.py create mode 100755 scripts/tools/Darwin/networkSimulator_g192 create mode 100755 scripts/tools/Win32/networkSimulator_g192.exe create mode 100644 tests/README.md rename {scripts/ivas_pytests/tests => tests}/cmp_custom.py (62%) mode change 100644 => 100755 rename {scripts/ivas_pytests => tests}/conftest.py (57%) create mode 100755 tests/create_short_testvectors.py rename {scripts/ivas_pytests/tests => tests}/cut_pcm.py (99%) create mode 100644 tests/requirements.txt create mode 100755 tests/run_pytests.py create mode 100644 tests/test_param_file.py create mode 100644 tests/test_sba_bs_dec_plc.py rename scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py => tests/test_sba_bs_enc.py (71%) create mode 100644 tests/testconfig.py diff --git a/.gitignore b/.gitignore index e719f5b008..1ec17a4b20 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ scripts/c-code_instrument/ scripts/ifdef_instrument.list scripts/ref/ scripts/test/ +scripts/out/ scripts/self_test_summary.txt scripts/tests/cut/ scripts/tests/ref/ @@ -53,6 +54,3 @@ tests/ref __pycache__/ *.py[cod] *$py.class - -# clangd -.cache/ diff --git a/pytest.ini b/pytest.ini index 9d9a3bbf8e..4e8666cb52 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,8 +1,13 @@ # pytest.ini # note: per convention, this file is placed in the root directory of the repository [pytest] -addopts = -ra --tb=short --basetemp=./tmp -v -junit_family=xunit1 +addopts = -ra --tb=short --basetemp=./tmp -n auto -v +# Write captured system-out log messages to JUnit report. +junit_logging = system-out +# Do not capture log information for passing tests to JUnit report. +junit_log_passing_tests = False +junit_duration_report = call +junit_family = xunit1 log_file_level = DEBUG log_format = %(asctime)s %(levelname)s %(message)s log_date_format = %Y-%m-%d %H:%M:%S diff --git a/scripts/IvasBuildAndRunChecks.py b/scripts/IvasBuildAndRunChecks.py index fe1953a603..1cf4a868db 100755 --- a/scripts/IvasBuildAndRunChecks.py +++ b/scripts/IvasBuildAndRunChecks.py @@ -36,7 +36,9 @@ import sys from pyivastest.IvasSvnBuilder import * from pyivastest import IvasScriptsCommon import pyivastest.constants as constants -from pyivastest import ivas_svn + + +RET_CODE_FAILURE = 101 class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): @@ -169,14 +171,10 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): for check in checks: br.run(check) if self.args["create_html_output"]: - revision = ivas_svn.get_local_svn_info(self.args["srcdir"], self.logger) - if revision is None: - print("Could not get revision from local copy") - revision = -1 - else: - revision = revision["commit_revision"] + cmd = ["git", "rev-parse", "HEAD"] + commit_hash = subprocess.run(cmd, capture_output=True).stdout.decode("utf8") br.build_and_run_dict[check]["analyzer"].write_html_file( - check, self.args["create_html_output"], revision + check, self.args["create_html_output"], commit_hash ) for r in br.build_and_run_dict[check]["runner"].results: self.logger.console(r[0]) @@ -195,7 +193,16 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript): self.args["create_complexity_tables"] ) + for check in checks: + runner = br.build_and_run_dict[check]["runner"] + failed_encs = runner.failed_modes["enc"] + failed_decs = runner.failed_modes["dec"] + if len(failed_encs) > 0 or len(failed_decs) > 0: + return RET_CODE_FAILURE + else: + return 0 + if __name__ == "__main__": script = IvasBuildAndRunChecks() - script.run() + sys.exit(script.run()) diff --git a/scripts/ivas_pytests/self_test_b.py b/scripts/ivas_pytests/self_test_b.py deleted file mode 100755 index 941739435e..0000000000 --- a/scripts/ivas_pytests/self_test_b.py +++ /dev/null @@ -1,273 +0,0 @@ -#!/usr/bin/env python3 - -""" - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. -""" - -""" -Script to run the pytest tests. - -Step 1: Set the stage for the pytest run. - -Step 2: Run pytest. -""" - -import os -import sys -import argparse -import subprocess -import platform -from pathlib import Path - -sys.path.append('scripts/ivas_pytests/tests/') -from cut_pcm import cut_samples - -BIN_EXT = ".exe" if platform.system() == "Windows" else "" -HERE = Path(__file__).parent.resolve() -DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../../IVAS_cod{BIN_EXT}").resolve()) -DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../../IVAS_dec{BIN_EXT}").resolve()) -DEFAULT_ENCODER_REF = str(HERE.joinpath(f"../../IVAS_cod_ref{BIN_EXT}").resolve()) -DEFAULT_DECODER_REF = str(HERE.joinpath(f"../../IVAS_dec_ref{BIN_EXT}").resolve()) -CREND_UNITTEST_REF = str(HERE.joinpath(f"tests/unit_tests/crend/IVAS_crend_unit_test_ref{BIN_EXT}").resolve()) -TEST_VECTOR_DIR = str(HERE.joinpath("../testv").resolve()) -REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) -DUT_BASE_DIR = str(HERE.joinpath("dut").resolve()) - - -def build_enc_and_dec(src_dir): - """ - Build the encoder and decoder binaries. - """ - if platform.system() == "Windows": - olddir = os.getcwd() - os.chdir(src_dir) - os.chdir("Workspace_msvc") - command = ["MSBuild.exe", "Workspace_msvc.sln", "/t:Clean", "/p:configuration=Release", "/p:Platform=Win32"] - subprocess.run(command, check=True) - command = ["MSBuild.exe", "Workspace_msvc.sln", "/property:configuration=Release", "/p:Platform=Win32"] - subprocess.run(command, check=True) - os.chdir(olddir) - else: - command = ["make", "-C", src_dir, "clean"] - subprocess.run(command, check=True) - command = ["make", "-C", src_dir] - subprocess.run(command, check=True) - - -def build_crend_unittest(src_dir): - """ - Build the crend unit test binary. - """ - crend_dir = f"{src_dir}/scripts/ivas_pytests/tests/unit_tests/crend" - if platform.system() == "Windows": - olddir = os.getcwd() - os.chdir(crend_dir) - # command = ["MSBuild.exe", "ivas_crend_unit_test.sln", "/t:Clean", "/p:configuration=Release", "/p:Platform=Win32"] - # subprocess.run(command, check=True) - command = ["MSBuild.exe", "ivas_crend_unit_test.sln", "/property:configuration=Release", "/p:Platform=Win32"] - subprocess.run(command, check=True) - os.chdir(olddir) - else: - # command = ["make", "-C", src_dir, "clean"] - # subprocess.run(command, check=True) - command = ["make", "-C", src_dir, "IVAS_crend_unit_test"] - subprocess.run(command, check=True) - - -def build_dut_binaries(): - """ - Build the DUT binaries. - """ - print("Building the DUT binaries") - dut_src_dir = str(HERE.joinpath("../..").resolve()) - build_enc_and_dec(dut_src_dir) - build_crend_unittest(dut_src_dir) - - -def create_short_testvectors(): - """ - Create short (5sec) testvectors. - """ - print("Creating short (5sec) testvectors") - num_channels = "4" # currently only FOA - cut_from = "0.0" - cut_len = "5.0" - for fs in ['48', '32', '16']: - in_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c.pcm" - cut_gain = "1.0" - cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut.pcm" - cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) - cut_gain = "16.0" - cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" - cut_samples(in_file, cut_file, num_channels, fs + "000", cut_from, cut_len, cut_gain) - - -def main(argv): - # check for python >= 3.7 - if sys.version_info[0] < 3 or sys.version_info[1] < 7: - sys.exit("This script is written for Python >= 3.7. Found: " + platform.python_version()) - - parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument( - "--create_only", - action="store_true", - default=False, - help="Create references when needed, but don't run the tests" - ) - parser.add_argument( - "--numprocesses", - action="store", - default="auto", - help="Number of processes to use in pytest (default: auto)", - ) - parser.add_argument("--encref", help=f"REF encoder binary (default:{DEFAULT_ENCODER_REF})") - parser.add_argument("--decref", help=f"REF decoder binary (default:{DEFAULT_DECODER_REF})") - parser.add_argument("--encdut", help=f"DUT encoder binary (default:{DEFAULT_ENCODER_DUT})") - parser.add_argument("--decdut", help=f"DUT decoder binary (default:{DEFAULT_DECODER_DUT})") - - args = parser.parse_args(argv[1:]) - - # check for DUT binaries - if args.encdut: - encdut_path = os.path.realpath(args.encdut) - if not os.path.exists(encdut_path): - sys.exit(f"DUT encoder binary {encdut_path} does not exist.") - else: - encdut_path = DEFAULT_ENCODER_DUT - if args.decdut: - decdut_path = os.path.realpath(args.decdut) - if not os.path.exists(decdut_path): - sys.exit(f"DUT encoder binary {decdut_path} does not exist.") - else: - decdut_path = DEFAULT_DECODER_DUT - if not os.path.exists(encdut_path) or not os.path.exists(decdut_path): - build_dut_binaries() - - if not os.path.exists(REFERENCE_DIR): - # check for REF binaries - if args.encref: - encref_path = os.path.realpath(args.encref) - if not os.path.exists(encref_path): - sys.exit(f"REF encoder binary {encref_path} does not exist.") - else: - encref_path = DEFAULT_ENCODER_REF - if args.decref: - decref_path = os.path.realpath(args.decref) - if not os.path.exists(decref_path): - sys.exit(f"REF encoder binary {decref_path} does not exist.") - else: - decref_path = DEFAULT_DECODER_REF - if not os.path.exists(encref_path) or not os.path.exists(decref_path): - sys.exit("Reference binaries do not exist.") - - # check for test vectors - if not os.path.exists(TEST_VECTOR_DIR): - sys.exit(f"Test vector directory {TEST_VECTOR_DIR} does not exist.") - - # check for references - if os.path.exists(REFERENCE_DIR): - print(f"Using existing references directory {REFERENCE_DIR}") - else: - # create references - print(f"Creating references within the references directory {REFERENCE_DIR}") - create_short_testvectors() - if platform.system() == "Windows": - base_cmd = ["pytest"] - else: - base_cmd = ["python3", "-m", "pytest"] - base_cmd += [ - "scripts/ivas_pytests/tests", - "-n", - args.numprocesses, - "--update_ref", - "1", - "-v", - "--data_system_tests_path", - TEST_VECTOR_DIR, - "--reference_path", - REFERENCE_DIR, - "--dut_base_path", - DUT_BASE_DIR, - "--ref_encoder_path", - encref_path, - "--ref_decoder_path", - decref_path, - "--dut_encoder_path", - encdut_path, - "--dut_decoder_path", - decdut_path, - ] - # work-around in unit tests via environment variable - # TESTVECTOR_PATH_REL_GROUPB: to specify the test vector directory relative to ivas_pytests folder - # TESTVECTOR_PATH_REL_TRUNK: to specify the test vector directory relative to trunk - my_env = os.environ.copy() - my_env["TESTVECTOR_PATH_REL_GROUPB"] = "testv/" - my_env["TESTVECTOR_PATH_REL_TRUNK"] = "/scripts/ivas_pytests/testv/" # leading "/" is important - my_env["CREND_UNIT_TEST_BIN"] = CREND_UNITTEST_REF - print("pytest command line to be executed from project root folder:") - print(" ".join(base_cmd + ["-m", "create_ref"])) - subprocess.run(base_cmd + ["-m", "create_ref"], check=False, env=my_env) - print("pytest command line to be executed from project root folder:") - print(" ".join(base_cmd + ["-m", "create_ref_part2"])) - subprocess.run(base_cmd + ["-m", "create_ref_part2"], check=False, env=my_env) - - if args.create_only: - return - - # run pytest - if platform.system() == "Windows": - cmd = ["pytest"] - else: - cmd = ["python3", "-m", "pytest"] - cmd += [ - "scripts/ivas_pytests/tests", - "-n", - args.numprocesses, - "-v", - "--data_system_tests_path", - TEST_VECTOR_DIR, - "--reference_path", - REFERENCE_DIR, - "--dut_base_path", - DUT_BASE_DIR, - "--dut_encoder_path", - encdut_path, - "--dut_decoder_path", - decdut_path, - "--junit-xml=report-junit.xml", - ] - # print pytest commandline - print("pytest command line to be executed from project root folder:") - print(" ".join(cmd)) - result = subprocess.run(cmd, check=False) - return result.returncode - - -if __name__ == "__main__": - sys.exit(main(sys.argv)) diff --git a/scripts/ivas_pytests/tests/il2mm.py b/scripts/ivas_pytests/tests/il2mm.py deleted file mode 100644 index eb09593bdb..0000000000 --- a/scripts/ivas_pytests/tests/il2mm.py +++ /dev/null @@ -1,61 +0,0 @@ -""" - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. -""" - -import os - - -def il2mm(file_in, num_ch, b_delete=True): - """ - Convert interleaved input file to multiple mono output files. - """ - num_bytes_per_sample = 2 - num_bytes_per_frame = num_bytes_per_sample * num_ch - num_bytes_per_channel = os.path.getsize(file_in) / num_ch - - with open(file_in, "rb") as fid_in: - out_path = os.path.splitext(file_in)[0] - for chan in range(num_ch): - file_out = out_path + str(chan + 1) + "ch.raw" - with open(file_out, "wb") as fid_out: - bytes_written = 0 - offset = chan * num_bytes_per_sample - fid_in.seek(offset, 0) - while bytes_written < num_bytes_per_channel: - data = fid_in.read(num_bytes_per_sample) - fid_in.seek(num_bytes_per_frame - num_bytes_per_sample, 1) - written = fid_out.write(bytes(data)) - assert ( - written == num_bytes_per_sample - ), f"Error writing data: {written} != {num_bytes_per_sample}" - bytes_written += num_bytes_per_sample - - # delete interleaved input file - if b_delete: - os.remove(file_in) diff --git a/scripts/ivas_pytests/tests/requirements.txt b/scripts/ivas_pytests/tests/requirements.txt deleted file mode 100644 index 764694dfc0..0000000000 --- a/scripts/ivas_pytests/tests/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -pytest==5.3.5 -pytest-xdist==1.31.0 -scipy==1.5.2 -numpy==1.19.2 diff --git a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py b/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py deleted file mode 100644 index fa17fd1d80..0000000000 --- a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_dec_plc.py +++ /dev/null @@ -1,180 +0,0 @@ -""" - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. -""" - -import os -import pytest -import shutil -import errno -import sys - -sys.path.append('scripts/ivas_pytests/') -sys.path.append('scripts/ivas_pytests/tests/') -from il2mm import il2mm -from cmp_custom import cmp_custom -from conftest import EncoderFrontend, DecoderFrontend - -#params -tag_list = ['stvFOA'] -plc_patterns = ['PLperc12mblen5', 'PLperc40mblen50', 'PLperc42mblen2'] -dtx_set = ['0', '1'] -ivas_br_list = ['32000', '64000', '96000', '256000'] -sampling_rate_list = ['48', '32', '16'] -agc_list = [0, 1] - -ch_count_foa = 4 -AbsTol = '3' - - -def check_and_makedir(dir_path): - if not os.path.exists(dir_path): - try: - os.makedirs(dir_path) - except OSError as e: - if e.errno != errno.EEXIST: - raise # raises the error again - - -# assumption: -# - the needed reference bitstreams are created by test_spar_foa_enc_system -# -> reference bitstreams are not any longer created as part of this test -# -> the parameters of this test (except additional parameter plc_pattern) need to be a subset of the parameters in test_spar_foa_enc_system -# -> the reference generation for this test (reference decoder output) needs to be done after completion of test_spar_foa_enc_system -# -> therefore the marker create_ref_part2 -@pytest.mark.create_ref_part2 -@pytest.mark.parametrize("ivas_br", ivas_br_list) -@pytest.mark.parametrize("dtx", dtx_set) -@pytest.mark.parametrize("tag", tag_list) -@pytest.mark.parametrize("plc_pattern", plc_patterns) -@pytest.mark.parametrize("fs", sampling_rate_list) -@pytest.mark.parametrize("agc", agc_list) -def test_spar_foa_plc_system( - dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, - reference_path, - dut_base_path, - ref_decoder_path, - update_ref, - ivas_br, - dtx, - tag, - plc_pattern, - fs, - agc -): - tag = tag + fs + 'c' - - #dec - spar_foa_dec_plc(dut_decoder_frontend, data_system_tests_path, reference_path, dut_base_path, ref_decoder_path, tag, ch_count_foa, fs, ivas_br, dtx, plc_pattern, update_ref, agc) - - -######################################################### -############ test function ############################## -def spar_foa_dec_plc( - decoder_frontend, - test_vector_path, - reference_path, - dut_base_path, - ref_decoder_path, - tag, - ch_count, - sampling_rate, - ivas_br, - dtx, - plc_pattern, - update_ref, - agc -): - - ######### run cmd ##################################### - - tag_out = f"{tag}_ivasbr{ivas_br[:-3]}k_DTX{dtx}" - if agc == 1: - tag_out += '_AGC1' - plc_tag_out = f"{tag_out}_{plc_pattern}" - - dut_out_dir = f"{dut_base_path}/spar_foa_bs/raw/{plc_tag_out}" - ref_out_dir = f"{reference_path}/spar_foa_bs/raw/{plc_tag_out}" - - check_and_makedir(dut_out_dir) - check_and_makedir(ref_out_dir) - - plc_file = f"{test_vector_path}/{plc_pattern}.g192" - ref_in_pkt = f"{reference_path}/spar_foa_bs/pkt/{tag_out}.pkt" - ref_in_pkt_dutenc = f"{reference_path}/spar_foa_bs/pkt/{tag_out}_dutenc.pkt" - - if ref_decoder_path: - ref_decoder = DecoderFrontend(ref_decoder_path, "REF") - - # call REF decoder - ref_decoder.run( - "FOA", - sampling_rate, - ref_in_pkt, - f"{ref_out_dir}/out.raw", - plc_file=plc_file, - ) - - # convert REF interleaved to multi-mono - il2mm(f"{ref_out_dir}/out.raw", ch_count) - - if update_ref == 0: - # call DUT decoder - decoder_frontend.run( - "FOA", - sampling_rate, - ref_in_pkt_dutenc, - f"{dut_out_dir}/out.raw", - plc_file=plc_file, - ) - - il2mm(f"{dut_out_dir}/out.raw", ch_count) - - ######### compare cmd ##################################### - - end_skip_samples = '0' - - test_fail = False - for count in range(ch_count): - ch_id = str(count + 1) - - if cmp_custom( - f"{dut_out_dir}/out{ch_id}ch.raw", - f"{ref_out_dir}/out{ch_id}ch.raw", - "2", - AbsTol, - end_skip_samples - ) != 0: - test_fail = True - - ##File removal## - shutil.rmtree(dut_out_dir, ignore_errors=True) - - ##report failure - assert not test_fail diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h index 21b59ad06f..abc8b1e463 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h @@ -49,6 +49,8 @@ #define IVAS_IN_FMT_714 "714" #define IVAS_IN_FMT_FOA "HOA1S" +#define IVAS_MAX_NUM_CH 16 + #define IVAS_MAX_PATH_LEN ( 2000 ) typedef enum ivas_in_out_fmt_struct_t @@ -65,7 +67,7 @@ typedef enum ivas_in_out_fmt_struct_t HOA_16, OBA, } ivas_in_out_fmt_t, - IVAS_IN_OUT_FMT_CONFIG; + IVAS_IN_OUT_FMT_CONFIG; #define CREND_MAND_ARGS 6 /* Tests */ diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj index 5061b8e414..3d8e7ab07f 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj @@ -17,9 +17,6 @@ {e822ddaf-0f5f-4cd0-a694-38ae69de74d3} - - {12B4C8A5-1E06-4E30-B443-D1F916F52B47} - {2fa8f384-0775-f3b7-f8c3-85209222fc70} @@ -100,7 +97,7 @@ Neither false false - ..\..\..\..\..\lib_util;..\..\..\..\..\lib_dec;..\..\..\..\..\lib_rend;..\..\..\..\..\lib_com;..\..\..\..\..\lib_enc;..\..\..\..\..\lib_debug;..\..\..\..\..\lib_util;%(AdditionalIncludeDirectories) + ..\..\..\..\..\lib_util;..\..\..\..\..\lib_dec;..\..\..\..\..\lib_com;..\..\..\..\..\lib_enc;..\..\..\..\..\lib_debug;..\..\..\..\..\lib_util;%(AdditionalIncludeDirectories) UNIT_TEST_CREND_TD_BINAURAL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h index fe05a96f4f..ed4071d8ca 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h @@ -54,14 +54,14 @@ #define IVAS_IN_FMT_COMBINED "Combined" #define IVAS_IN_FMT_HOA_3 "HOA3S" -#define MAX_PCM_OUT_FILES ( IVAS_MAX_NUM_CH ) +#define MAX_PCM_OUT_FILES ( IVAS_MAX_NUM_CH ) #define REQ_DEC_CMD_LINE_PARAMS ( 7 ) #define IVAS_MAX_PATH_LEN ( 2000 ) #define IVAS_EXT_ADD_DELAY_MS ( 2 ) -#define MAX_OUT_FILE_LEN ( 1000 ) -#define MAX_CH_IDX_TAG_LEN ( 10 ) +#define MAX_OUT_FILE_LEN ( 1000 ) +#define MAX_CH_IDX_TAG_LEN ( 10 ) /*------------------------------------------------------------------------------------------* * Global variables @@ -73,22 +73,24 @@ /* IVAS decoder output formats */ #define IVAS_NO_RENDERER ( -1 ) /* no renderer required */ -#define IVAS_DEFAULT_QUIET_MODE ( 0 ) +#define IVAS_DEFAULT_QUIET_MODE ( 0 ) #define IVAS_DEFAULT_NO_DELAY_COMP_MODE ( 0 ) -#define IVAS_DEFAULT_BS_FORMAT ( IVAS_G192 ) -#define IVAS_DEFAULT_FMT ( IVAS_NO_RENDERER ) -#define IVAS_DEFAULT_LFE_CH_IDX ( 3 ) /* ch count starting from 0 */ -#define IVAS_DEFAULT_AGC ( 0 ) - -#define IVAS_IN_FMT_510 "510" -#define IVAS_IN_FMT_710 "710" -#define IVAS_IN_FMT_512 "512" -#define IVAS_IN_FMT_714 "714" -#define IVAS_IN_FMT_FOA "HOA1S" +#define IVAS_DEFAULT_BS_FORMAT ( IVAS_G192 ) +#define IVAS_DEFAULT_FMT ( IVAS_NO_RENDERER ) +#define IVAS_DEFAULT_LFE_CH_IDX ( 3 ) /* ch count starting from 0 */ +#define IVAS_DEFAULT_AGC ( 0 ) + +#define IVAS_IN_FMT_510 "510" +#define IVAS_IN_FMT_710 "710" +#define IVAS_IN_FMT_512 "512" +#define IVAS_IN_FMT_714 "714" +#define IVAS_IN_FMT_FOA "HOA1S" #define IVAS_IN_FMT_HOA_2 "HOA2S" #define IVAS_IN_FMT_HOA_3 "HOA3S" #define IVAS_IN_FMT_HOA_4 "HOA4S" +#define IVAS_MAX_NUM_CH 16 + /*------------------------------------------------------------------------------------------* * Structure definitions *------------------------------------------------------------------------------------------*/ diff --git a/scripts/pyivastest/IvasModeRunner.py b/scripts/pyivastest/IvasModeRunner.py old mode 100644 new mode 100755 index 246e8139ad..63bf58cb59 --- a/scripts/pyivastest/IvasModeRunner.py +++ b/scripts/pyivastest/IvasModeRunner.py @@ -638,7 +638,7 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): self.lock.acquire() os.remove(pcm_name_lock) # os.remove(pcm_name_res_tmp) - if do_limit_duration: + if do_limit_duration and cut_len_samples < in_len: os.remove(pcm_name_cpy_tmp) self.logger.info( "PCM file {} successfully created!".format(pcm_name) diff --git a/scripts/self_test.py b/scripts/self_test.py index 0f7b8b3697..05c6944ddd 100755 --- a/scripts/self_test.py +++ b/scripts/self_test.py @@ -75,15 +75,17 @@ MODES = { "-MASA": {"1": "MASA1TC", "2": "MASA2TC"}, } SNR_ID_SET = {"SNR", "SegSNR", "WSegSNR"} +TOOLS_DIR_WIN = os.path.realpath( + os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Win32") +) +TOOLS_DIR_LINUX = os.path.realpath( + os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Linux") +) if platform.system() == "Windows": - TOOLS_DIR = os.path.realpath( - os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Win32") - ) + TOOLS_DIR = TOOLS_DIR_WIN elif platform.system() == "Linux": - TOOLS_DIR = os.path.realpath( - os.path.join(constants.SCRIPTS_BASE_DIR, "tools", "Linux") - ) + TOOLS_DIR = TOOLS_DIR_LINUX elif platform.system() == "Darwin": if platform.uname().machine.endswith("64"): TOOLS_DIR = os.path.realpath( @@ -988,7 +990,13 @@ class SelfTest(IvasScriptsCommon.IvasScript): proc_cmd = mode[1].pop(0).split() if proc_cmd[0] == "networkSimulator_g192": suffix = "nws" + proc_cmd[0] = os.path.join(TOOLS_DIR, proc_cmd[0]) + if suffix == "nws" and TOOLS_DIR == TOOLS_DIR_LINUX: + # use wine + proc_cmd[0] = os.path.join(TOOLS_DIR_WIN, "networkSimulator_g192.exe") + proc_cmd = ["wine"] + proc_cmd + proc_cmd = [ "{in_file}" if x == in_file else self.test_for_file(x) for x in proc_cmd ] diff --git a/scripts/tools/Darwin/networkSimulator_g192 b/scripts/tools/Darwin/networkSimulator_g192 new file mode 100755 index 0000000000000000000000000000000000000000..ba96e89897224de381218eadd10096c693ef566e GIT binary patch literal 154584 zcmX^A>+L^w1_nlE1_lNu1_lN}1_p)-HU@^)21N!CkYr$B@L*tIh>s6&ba#z%4e|$x zqGCo=E><4MoC+q8IU%kQA*f0q`XMAj2Eu1$U|;}YcBn*rd`W6W36ukN7pi#&Oc)qI zI^%ak)PVRb5GI6VVQ7FbAY^=eaY<=XF@%G~JcSPs^Ui?`Wnf@{@nIS`pyshb1t8|d zXQbv7q!wW@@54ukc|B0`KzvZRL$xz7K+S{kl2Z#x;!6^f;^R^MTk{!W z-V3NFL3|YRUxQsOi7((Q>4d=nrWzU{P(H|b5C)ko0M?(LkMJcZ9b-3d0?arDMh1|67#Ea2 zd|@20dFbJWYTg6}i2Dkl&I0j~%|kK@%tZAkSO`KmK+J*r(*bHA7Jq^?#K-3(#ur!S zCgtbE7nBq+#K(i&1(JbcsCgNnfB^|Pp!yS(Pvb%2P#hnhl2`(Ze6YV!&C76txQ_#> z9>gc)Pe^&>f#BFO@;=DIgr%GzyRWdjJ$ChL_$QNJ_idZF)%b3fLINT3<{up z-N49jfQ5nKK?@^;0WSlCz$8Y702T&@glUWn2|SRpQG$VifnzBnLp&1$!-}(v37#JAdGeWQ~0|SE$69a=YR2&=i;}j#q8Y~igAh$3uFz_%iFzA;S7wP9@ zCh4bC=A=N?N;5DpfZX8}f6CIr&cJ!9^UI7!g$wzNp!z_5WaH;z0AUat5|)WfS_}*f zpmYp1hCzdYp#fyh1ACYVga+9Q3Kx(ZIEoqDm_eZjcS}xYQnI$To}pe!Wlm-i*qs(o zH-XeMrZBRis}HU$E=kSRbAoCCTciec&w)jZ3=T{T44P0r!%{{DSXuxp93@6WU^E0q zLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$( zGz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!n zhD8X3dUQVZ=&b$W(OLSzqucdIH-|^J>j!HN{z-=#9x?K7I~033O^;u`1?*XVc?Pih z#y1O?7#KXdS@TYVC68dsqDZ|KFo?>jDtfy%o&s-Mi!O|Npx{E7D(lWCSU0 z1qpa`JG}7d-NOoEzsO`}VCZOV{`>#`OOP#HVCD)&{#MYwrI%5l4OHE%JYbtFJi4bs z%r$*}h=IZIWXFjYYI_(Mz#5OWZvXrLKg03Xj=%r^gVyf9WCz*U**f9x|Nos+dqB>D zxaS2M3j@PT9Y&}|4~VEo@76hg|Nnn+a~A`HM`vpV%t0RAV73P+XgptdFrM(}JpSSe zC;&QJ3y>6n*dEP482DR2i}5|W_kseVyA@<+XKM@C_N^f51qUSYGUC&HwxVKYyzk14s#ot-{E^?SMz)5m0Q$9tH=pNB3S(aK2F4$-uzR?a_JM zqjPEkDAbIZ85myF>;j1*5=`0zaC&Ke697wNouO|)$;_kkphx4u72xL67Ex5+2>97d$%oJem(UcyzXb)ixg!@aSee08-O@fWxD^_JT)e=?Ra{ zV;Gs?yz|tH9XmiSa@_&-zUvNf9JdC6W61RaB3bMMZTSMFjT0~#s=+}fwDciYY)6o6J}s|3EJZ1(R?HT9@4DWk25fMz&(2Gh2;*Y zTVZaw;K2&^Pv`L$YtiItAG~PT4vGzM9EEOpF^Q3Z0UjR$;P~jS{qbV869WSzo|}&d z#2$vmmjPV9+X<2^K^s~;x>-ezgR))cDUVLq7apCV4_?YMFfhD0W(N+V4<5a>A71Qq z0&^hJpd9Vd?fSr@+xLY>r|S)m&J!Npp*K95j~K)rhLtDHZxq1xLCYYIZVwKR&O_iB z0@>pG;6*FQ%x>QY9@ZTEEkfX+2bEW~FJ8=cVqkd5i!5U43<|X)3JCK-HV5RHyOFyD%^WywC!f)ybmr;`=rR2AF#sJUVMXcyyM&@aV4n z;L&RuzmI|8g&A0->jRJG+6N5$t*T&8vwk`X$~YDt-Ju|bmirhOHZZ&p+|Iyo%=JIR z%UDDq=X%Zq6oQ?{_klJV?E;mMFWzqhdE^HJw6IlTWMJUm?t0EvF`I#bzXh~~)uWqr z0@Q|HQ&x!So3}wt{||CPuj>U5R!|9#Y5W9;@r-bzT;WE&+zWPS2F$1}3}CBo*b1mK zF!1+5JtqoL&%ZtNhDWdID~KKwm>$qhRQ~O*H#!e`9DK;=(Ru!bGswbDP_A^n0M>-$ z;}=ZZ7#LhY>RmbydRU%-J8HubNC@_tE`wNbc`MX^pv3LbUHihLxAejbP-wi|`VUlM z*FJbL7ovu-%k@7j`#8iNhQ%MD^c)%lvJzW*&JIFP&z!-aI6_X(jc+c10v?e>UU>AH zO6_G}cp*E^t`+Ut>pdj#eJkXN8Cm|6g;xIu321+iWn z+YAcA1E3)E==D8-O-BY?2ZYs{@c;k+7rmPq7(9A;9rl631`;kv&YT(n*92j;27ok0 zfHZZ3Lef(p&86FsBh97Lb)QGC?>?Bt$YyxJ&49349YAJ?AerIO4Qc{h@aPT_aN*zX z#o+?-SScvXc7hD@=-g@nHshQ}cQ1t1Y5+3h!X^fWZr3}_2N*kD@4P$!YTt_#V5s5EwLjSSd$<@F7@BK;u=Drb z2j$3a)|3NK&$@o_=oawkHNCbI?B9lsAaPz-u(YK|uj#*?3=EyE6951I-@x!92_mZw zm*w3Bk`;l-xevkzqlg+@gJP=t9i0oOotP5C{10wrs14t9^ zdbn&HSe6AMdu9XJ)Bpef|Nrs_D@Y~CQw|*9y1yID768?fpdN!qw}S+@eus!FfZB8r z@d}L>*&7%bI$h6z1F97q6<}2r1}_3ZGOY|C8$flq;ek#F2NclVU}mT5iRRifjQmZI zpgzOI-=+=;>Yw0DW6>RY#-rEtCnT69k(}%ba&oWh25`Tw}<0#H%)@&XIEd|lBQy5!|05WBawR0oAt$BP#l3W+69kZQ_-EEmRiS&7p&`{&O`IdJ!X*d+6Iqa zQx1^Y121l`gR1oC-3uzEUgUxLNuan$JKmc1|NnmmhU4IJ3nX;BH3lpK5(AY^5U~)b zSa&Ok)p^jPx3{&o<01uAlpA7shF`)Kp zH`v;=&Q=>xsoV=HGqb0HOcr6h*x3sz$+~+%+|F}g1O9=$)Y%Fu=(>AB&TBr%*a>EI z_k!HW?0cf~WakNw-r5Zwovk-Oj^YM8YAcBC(b;+dRK0h8Fgyt=0{4P>-@ikYUwd(Y znSr63qqEoK|NsBZdqE@ve@`p}%oE+dXACcW|H!}oVCS)3mTlc&b)CmL&-b!y?`#DZ zoRDDk=mi(3FE+sYfl8nh4T*kO&?kcul^LjN25SW+LXYm+hHkL$`M39i0>lMU9=mjd z%XE)!u*dng7jPVW$L!Jhpwqyk*ED211B0vKC6|s1FaE57MlZNo3JLk<1B`~3zL%b9 z{>8xG3fhR?ycZO143JiK8Z`Wy4=|>6f};Wv>)oxO5Cs+fU;uxD~JiMBtX4Qk8W0--Jrw>OS|j0LDQ}$%*n@H!G$j@AA)=Ky{(``3d!CF zKyi5<68##W+NygmSm+HzNC6@Qk=Y97^@=jQ|Ns9*Hxo2aJi1G7zyg2TH&FiF4|8r; zD~Jiozo5bk>{GP7RL%g(1~Tx(4`RU+{|1oToI!ov?p_cZocPVb=?1J0lK7p#3M^hE zt%f=XY)^M9NC`NUL5!CR|NsAw8Wu1&8^Kc(c-%x7l%znVlNDSXE~E|@0v(qCO5QI_ zKtfOj8(ye^c%TgZ5_FzHx9cB|#v`CAF!r!VckPN7>MP-$nW-y4o-_OW|36ZF-TVg8 zzdRidZoLYCYF8Hq$oLVm{OlVMR}CW8k=o(WYR-Fzk_^9lD?uO@+#Gq(2q>m>B{eP=S*he-X^#y6mz4cwWX zp)WukYmeU2A1`}py~@i<2WxuFf`yuuiY`=*ua@yy(96g_R@uD;I ziAOhh6bm#qcEh9d*bBC0(7*?mCZN9Ti_E2npg!@U`u+d^hygo9`xz9w$RnPyFE76P z{~sa`OaCA>Aa}Svc(LUjv<(FwDCs=@!W7~%1+dFLz=lXVkH3%sNp#nKc=2!v$Q=l~ z!Q&yQ?R^f9ZrF%x?90ag2>TJ`3+MnD4`>QNlrNC*2Dz`BcP6Nd*L+aGqZ5=8Kn>Ox zua>||P>k7;>0cr^cH z@aXitz~90N7OlPT!W5(vnr$E+uYK@h4#-A#uo93-6Coynnwj7L>-NZinsfqg(uo(Z zL7HIJgOYvN5?FM@qVvOxS&Koz2(AS~54>3O7CAbh{g>u93E;v66duQ2KY&eauBZTw z+aKU>xeRgD0nkvEM|VMmM>p>>Q17tQ_l8F=s6iWgfSpvJ$1`u{>FsC8cZ;Dw4L1H((uAv_=>Ut9wj*LnO!#1c@)05Y`N z?YaYO3^;W|jq&JqJ>YTNp#tn;aB7q=ywrIO?Ag){9^IiE{$B*U0c`342?mCj;K~ow zR{)nw%|{Zzb=HL!#fuQZwBkkUoB#h2=?zPIo`M+IcYOc~`qahXpvO$lJ|GEDdKLuR zfGs^Yzk!S|!s{dsun$}x{0}q$jka{U-g)s@3KYV=4?H>>K?PaYM9_F`!z0Fy(DxqQ zJ3&G(K1hLvYC+{}M+(G_YmQ$iQHD05p^X8dJFL(Rt3J z^VEw6QrJYfq#+i60~^A~-vTzbV*)4xL&BW_qyT1XE9j6wkK?WnK=K~F;6c>~FZO^+f^JY7?1o3DV}S?6RgfOO z>kW_QiUJP)CNxJvBMZfm1uss`hdUCgfbpd?%oo^`9mshe%|{%-gH4brPH_Fx_~rqq zG2Z#Zr<=EX9Rq`JH>Xdh?+=g8t)Nc0N9R;fcebgm`pL-SH1Jvj!@gUQ~g7+zJx$=-vTR{$jZVsCRS)q@%kREYVz9!NA{Q z0vcV~3leAG?*}*4oA-jOX5eoHomc144K)Q+ocs?o02iN-u!2~B{1~X)_#y*TF7|^v z+aM>m9_Vb{0&-7_E^L&e8!XWLf|0*P16_;>l3u`bS;xU0WKhO^3F@~&xZr^iP>eyi zpdrJTSX}W)oPpsbCn#KD&aS9vhIkG%cMNh+A2_~}TR}ed;9uVg@~cN@>jF?e40QM! zBop?6`5;Glbc5x(r-D1`-FrcO5m2K?dmeNI5{omULC$CbrweH4RaCrSm?*)zJ zg7lk>U%kWHZE{{u85(F!)L8;&71jUet+!f(JaT;Q@;X zuso>Mc@7d0VROK0z{bH`aonR58qOAAS=OVgK#DNJ88m|7(Rc(Dnz4sp?3)b^XQbs0 z4v_vt;~UVaj~?Bubx>o#0Sz7^^XP^QLO_~R;Bj&OR(|kkKnZj-;AJOxhzTs`(G1S< z(D}9(c_JWZfn~ZoKu4N3KNJ8DepN&A322xd)c9B?3R2e#;hy*CYy}Nuyx0H{1+l?H z3ZP!ui_0?+N$^PR{32W51&s(?o9x6Nc==-vuqS{_4oCa9Qr`3T@s>x<_zp-Bn1@;jtNvQ7Avp#d2A#)W6oaE45}u%9r4=-s|DqNm3Sxt&IeI}k z^5s;JWe_L9s*DmLQ1F5?8!X%c13bD5Jv=l&d2~(%X=?^&JqG^1Xpqgx&@nC(Hpm^_tsu1?{Ob>TFhg=9WRUgcH;~a#mvtV0u@9mR;zv+A z1&^|KKtw@oa5~+CqzRh5x&s_Mx;;ERI`={gQjbnZg$f-yPK6kOFc>sm`(i&t6vPI* z5~8_xD>zo5HF7t!7U>1o5uFEpy1{kW3u9qW0D?wQ;R!F$1DvWgKY1i?1xsjt@?ZuB zB{W1KF^kkl1XoC~bX`^9p$(2NkIr*DKqhu2QaG zI;?4l$VHt+0Un)29*CCae?E9z9&ZE{C!mZBZp|KVg_TC#V3tQW?2Q7T(e2v-svD*Yg8EXRRR{Xuq~O}&(d+vTG$q@32o!LjCUxU6 z22sk z!9tK)7&d(fYN&X8{|TP8I_?UZ*az?6gPtQT1Vpo+5d zqKCHc1JL3!(29kF4;ehVq4o7KP|u=#D#RLiC+#(oe>K1s!VCq~X)l(7g&^gw=0UL0 zouGMXh%4Gbvdo}GIiUx@ankKs;n8^;>ue=ms}CJi4cXRCshAeBsIi@*l)?mHZ40 z{QE3ke4hjk>6e$l zbc3Wl96Y)M0>DZ%KY1`-^yu^eDF%tcdzFVgI>EEr{H>scb34GjlTL7EdJ)XHiFPnL8}1=Z~y zoxR|isdFo+I(Xp#DsE6B98_Pt&;$vCJjLu-;L!~>$)g)G=h6)^rWFxz- z^XOzz@#uA(;L+)#!tp|t9~AdXnroLZL#Cy`;RP}j)b4<}y7Tx89xiAwbsm4=zzaz@ z`zC-ipLy92NxBojNgNckkV)W9UIqpau(NyNRTAjPZMYR+rJ#D~MI1;e$X2irsE7B$ z8zcnQ?K{Dv8&czRL;Hn?Uet0ToU@S!;v9XbbKr$BxI}&_4sjj0SZISPWq~LKyQK5@ zi~FEB1eJ`IC-_^%7+^I(Xa}Om=ivmc!8p_D3R<$@(Rc(@Fe5LB0QYAh<4+$tOF?Td zKX^dP>j(TTpCE1k4{#NMECUrjAiuiac=3rF2SULqLiC~p)2$<|Gr=R`wITQ_|b=C6MPJ)^EkvN38+nH`jE`H^uiEq z#-$E{?$S4%rGLPS1i?Z7VtpUjNuYTx@H#}qm>p!ir}51LkYhV*(SvLOw2I4v81V84 zXm+u?cEO8Yu+^>$KxMonC`opLN>?bKA6%f`=mv$~oEJuYpm3SfdF+J%)K>{0%eo<$4Bh;fh- zeFr#0Ld=f=ncwXT(%=DFJ(UCDPXNVo%PUApy8zy11&z@`je4O3Q3=)A@xlng?*O&D zIzfw(AQni2g+niRfGk0-R~CVS$lCP+e+#&kpxq0OgO`njJc{ zk~2HVr>+a24PbZ~w!ovaw!s6GX2Eszi`g6?bx;pND*p_qkWaU#1GvOv4om>erF(RP zTZ%s2U}YYiQ$ba>4`|`(L7!gN9k8w)q+mJ$DVXN)f}DNCquY0fM|bD~a7F|#OL(CK zwgt=v1tz2|90i5OO^MF(}Z% zL-T@1r|Sxj?n(!b?$8w;-LMYWhaOM|%yk9S;7X{$=Ru=VV3VpLCN1#jF5Lk(4IB;N z8XhvR@Zv2S$S#yhzw^+G>5vxD0)!q=JK)6!NQnbUVc=B{FV2GXgX?EdI)jZSoO>~a z2Re=V;!zjGzo23PoV~#W*sCpD{vu|jK(2fMUVGem{DmkBB>$|2XaX%Ymh>W`7OkJ0^B{WFFZOy>*0^T0EL7{Zz;&4 z3m%<^zn)^W8 zL!j$QL9;2oH(r3oDm=Pt!E=)AhxR^We5TXcXv$M<*jB%#nQ$i$7|c2aiusI2?ZgZeoI?6goeLX`g`M zfzD%)IlI~)FF==qK;}3h^;7d3$owWKJ%aoPPGc8dOn`b1v@{>oF9V02>xmcOzDu|7 z3D5*+bL|TT{uUijaCX;TcmWy#1}&-Vu6^P1jis{QfeSsU0E0UY@cVP7|7u-gK*=o&=_ zl6|1C0p*QO-v{7D0-!}6ogM;^eFz>BpjkAJP7ejF_JQI9rXLi(5WNN-ogNxc{TARU z16X=N&L7<%50!p+0bWZ3&eg~%43@t^}ZOSa^UgbAhPA79Ii~ zy{-^F-Jp3E#DH1_$W@S3g~;#CZxjp!-j0NF5j{z1rVV3XegYCof{mqIO1JAEJcfcDaW-3(1X-M$ZeK+|#E7SL({v=Zch zfCi+@PlIjY1NR3I_Tx_fV6z=0u({6z(w_hY$OjK-9wXL04*1;z3PX750S_;Tec<&x z$V0NAb;$g!vl0EG7vSa?c+%D64``o;?+f^Vi6OYia|O+fz5oyNfjW`khG3y=-=mf3b2hB?RUhwI3J>df${qcR_(On8@19jJ4@ac9v;nVGVz^6M_ zz@s}>!l&ENqqBAgs4d;?yThkbM#ZBuMg_FmdxKAB=nBXGVG172M-rkPzKb^HdI!nKRs)26b zFCN_i5+2DvJs5v^bOzu`-vXdL0JVQQYk$0GY5+AAe{>#uk*_$${P3QgHYj<4Dim-T zSqSMDbyp^MG=gs7VgQHE@fYuY{Qv(Fbk!6{uLndaBqMZJ7N9CU3{r|TMuFs(6=1ix zet_f-P{5&v54a?UlsBMy6)8ZV^%Z*j8NlNYEjvNf(=9(p;K&c4@)cY&f%X&ne(+%S z0JR-JZiUnjNbw2U2n*^pxqf(Y5Y*D|W@Q5PlUc!`1PX9)I~BYd5mYx}mKUJ%7aVrJ zA3Q+weF7fco*ba9C*46WJUV#}&*$75TBy;-9U;rej=O^Td5|sRkaiV{2-p{(#eLx321t*e@2hvj^KL>J&rqqI$aDN#~s0!?}3)>fGqJi?g$$40f|GGX+Z<6`DKGg zr|*FmcR>R+oyeP^J6$2Wem_HGHh?=3;B|YTor9empq<$s$D1IRMKUmW9B=vovI$iD z9B%>*Pk?wH$D2TxOhTF9_<<<60TO~RLA%00Jdfi|;FZr1QP9*qRCEW3hKPd7L=ey8 zcoS%$0+hJ`L_-wJKrlg}3F3JiZ-Rxj$ML2H(CiaLZ3Th}yG_#LcvA*K6tprPYC;4; zGyuW$Krlg5YEZQn2vN|eEmRaVYy)K~AQVU-m;wkUXwCqn_IML0gFslI1_+3CtO>O8 zjp0}mXk8n_u_n;cFUb5>=d~BhKx0E7RUW;db;h8*&MRIxg35#L+7%tH%U@VmLD!&l zxh{wINI<~@UM}8Udg4Vg!id@nFH}E)j(%{R0gHXm;L;3_&JIwS1=8~3RVCCwk8aS& z6L=oth5V=g|5X@0x_wVT7BoVtnod{HLgtrtpwNe~!6vMLnE+eNcLGwRfmej?0$tAN z(Rm!U9JKjJ0eIc#i5JRnZD9X)*S>g>Q30CI1h2*ko$#XS5b}yyaQhfkKKIuC@PICO z0VOO@;{j3(B6lDl^$nyi0%~wT`0)Gkkje7!}BKptyv{H@|V{tOd1mnjifAf1>kX^9yV68tC>bpg8Mg zl?SIJ-wPheA{`!#hyFkE=w)qb0`>M?f4uw(QS%1Ie+uE>gYmCI_!nUOqY(aK7=J5- zzYWG;3gJsPK+T^D;m?H0w?g=`^-%dz2)_m)_8-v9sq=OOXm{rmqPS-;=^|NoKo%c1G7L(`9JFF9ntIV976_P7Az^?xDc#3#wu}&%L+^+ARXEWHI-5!0NjfpjCdb423g2gU+_`P-uS0 z3R+(^6@CH)IKOw+g2p-#;|ra&KOk!hPIz>lLhb=W>vvdw0=2uKmHhD+pp^^gB?MeO zsC$X1?|W-+>;jeIpjA_yt_NOh2c;pa{67HN5(Zi|xe#P+cP(TS{}zxO z=**Aa+5;Zlr3*lAR$vBYg4!35=3ng$P%Fv@WFTaGcESsLh=Lg&-K7&i8bC7*P}hQY zwXlG975A2ct$eYv7*?h9)*g7l44PAb?JM%=bluSzy2S$|@d~z73~EyCju+`g2!D6H zsN4hIY=lUk9?0?ANz`~PXgm)Rzu@*bq>Kg653B|iC*W2#B7H%|Gq9@%-MbDMBSBUV z&L7}92%g>^K@3Jo@X+)ID!;pt#_!SjaR1f*cyStT48lH;dQe>f_6xKR18T{Ex)`1u z9-W|VcThHHcMf;ZW{c<~pU z+(FYokkSjX_#D0efZRU-#Q}H>8oo!DC{G_6K-E z`U*@2I)?*ppMX2DAj{6Z*aDO9JpN+GFVNTo=zJU38!w_k`4&16)DKbg!K2%O13cQ$ z$q1e-OFstI@B&oI>;|i;eeog)G|>$1q#*(Tn*Nc~cQ-^CxCiY5-+u}T577BX;QZEk z{KaHYKInA)@ZuJP0o!u<;zi^eaN8C#JpwMfx)~rj6jb8EX3{eA85m&W@o@V=eY@i? zK#g~3%>e7Kf$|3=|AX6zr5|2Q2Bi!f@d-;0AoqHMoCj8i$gjxu!OMpvh(avo!wb-E zWl)Ylga@d60nHbFfaOn=@B*bL@Sybn|Nrd?)Q7~BmoT&HvF2~ku+|I69vRS79e7wn z^Mc30A573dgl89Q;SKjcp7|)`@FK>&kno3;XWgLIH*~(n|Mma>@ZJ%$007Nh5}L0; zIu8vtehx0%!H1%OS~DJ zJCDB*2T%0+Vw=QTsAG1}qr3D6 zxFYs_@FE?;C)joJ33|0<3bglNmi@%xRM&*YWlQKY!I@nR}SAGkz8WM*Xl85kaL>_klY zf(jXMqX;yk75V|R?)TtNCQ!x%O~*kBOCwLs6P^bjF!?YZ^XN440FOTRLCQ? zY*0i(qYs;Zq3(zD&!LG*5VWKYZ+it{AJi@a>qS861={`qm%|spD?>oXL0CHq@V9^) zg`o93XF*vGB-|Y+;L&{Ok4I-9GAKX`PPzQF50Q2OXB{eVsIig9>*ALJfLc@HrUv3?I*e-xHJ5%z=CzjzEf)didu zP}fty(i=!UsEvLQqD}x~{S?6$DFaZK z8dREs&QR&ZGCt)GQGj!N3UnGC=oB8v_!M&@^7xc6sGo~%eCikG_|)-ugugpp+*~;% z$EU!13m~-syu`&(AAs^dYW)CBzqLPJ+y+$zU}F&N0g!r7UIXW4PniUWOk=x5?eYI3|z;)cwqou4DJeE zyZ|~#o$z?oK9~+r(typEfyb*ORDH zjPa`Q&7e>NEn`0Rf*Wj5?TZ(SKn!qQg=peJ(*wNx2c>t2GPL>u5+0zsr5ltVI*-3d z2Ggz|UTD1o4-p{7t5)6w3lJEu+8G0?Bq8I4aQh+Y6*RpLZ7ae050Ls3WIuQtGdLa* z`4L$^qzBY_`~~=cbV#a)M>vXqi5qX?NAB{V=!dl*iCRw$9&3Q7r4Lxgmsp^lhC3IQ zKC$|b`1+Y({wIDsDE1*ZZYdcLl7bjP#CQ;k2P2m8Ac!caEl%_CpnOQ%8`LL9>yIJI zS9p7A5kfIM0wL*zxbdJ(IQ0`V9%KT_h0tOFy#E3`EeDQyP>TX|!$Be_$AZ`7AA13w zbVe%-knA;BoK)3uycYpt8~-R>3+|A!fLEZw2T9PzKNcWNqR03L3)b-u79z$! zK=I|#dF}-_!3fWpTOy1|I)H+}`Ot{=x$^un1|%!RiM@`HgM<47NWFoW2i&HWa|> zzZY|EfT}R)no<8}pms87*)QXZW{3o+8T;ae8C=4V!=v#aq+RZN;zb-p5okrh36I{= z2OhnlH(r3xt^!Y_!`f@;+wtw*kc;wXu>_X6f%VRG* zz--X*te_^p>xmbTt^J^s=6c|T6sX#VIuAPDh*=(h!V@&c1zL-MwLOb-ycJr0h`ay= zC8&HlnJl>rmVN;* zh;DdvmR@*a`v@dldjouCaOa^HYhQt@Uhv&M*z0@9`Mu!dK_N*B-dIC!{~*F2>}C%R z(55c%N(#^nleOy${uan#sfb51PFJU1k7EhmIVOVQ}o@dmy(EpWX{W*J7=?iWJ8Apo#%hI(0I>m<*AC zr1vnm1ZsNEgD65x@8Cr#&;$kRzk$jdr1T1EuR-RiVe|QD`*RWD3vSnC6`7UTY9bCZTT7O9W^t=+Z-UQ^d=7S%Q z)AK>FI3zu%{=}7@ANtTLJum$A|No0Smyp63a!4yE-!Q&743U7OXYhOsIH9Aa=XnrC zsOcG_{KnE>qk8&oc>qctkn{~Y@)CR$D5R%$;zc;9;SNjR;8W9~*$rBLBiAROG6B{< z(+3&adHjVrsEh%{AddbSq<*EWyayM|kn$eOcn#)!FSvaMnx%Dp@xmOzdGNvu#K{Dm zoeY}2dH|U@1SPy1FZe-H5YJtBQ8eTKe-F623kY>5UOWdo25k6&7r#IpxH>`|pB|8E z$iy#l`HwY!CtN^EdzZmw5PJUhg}C^|izQ$NXnNQX(*A(t?_Q8~pl&+&Zoxw@!0Ivb zH>iFFwM{`~BXqAV&ic38;srSUKq@n=?IZAt6=Zpk`KaTapz;zno`qxm)69KfbH4wB zj8fq$kKp5P#JBIjJ#b>(2PyBsi|8R*u-4zW^Q$!|VxS`ei1|f?|KaXWf+z$H{=lt( zjOTd3+Lxd>0_Q)x?Sq-H+}L~&R8PEsq=yqP3PC5jf^+$?7pCy}Q1te}M0aA!Q-pts z>(7AH)1rUC?9prD0PZ8aV0sL#A~4q~?sWro5U{t;u+_Kt(knc^s4>6z4xFh$>rGvE zytoJ+X#$rj8=&W>)Z$wI4$c~&sSwcm_ZyIu13LK~Y5hCMec%aWFyR53Esu9W%(Ja{ zQP@X#e$f}?K-l{CgvluLi;l?ii!LBJP!)hQzjy$m0A>CA8*m37?8yl)?n4ydoL`gx zw}4^m-{-m@&o3?p%}ZdLU+lu1UrcvK_`BmpWiKt~7qOp@11aA@`4?2iLh}r`KL$Qi z2wEb;$_Je34|IPis6+>sM2PwWq#kZIsEvqwelRl>ynTdb^MipL9-RT8Yb*pjIz3?P z<3a9&m0Kjt_nmMAt&{^TUUEfWpFSHT1)A@x0S$nVzdk+oGN@TZjrqP{P+A6;^N8s# zr2aYD`b0!}0EG*y!ZrSfDi|6C^x9^KIb#(|P;_`1};m`gAKu8yeKm{@~GD`r^gTz2IgM zf%(3Z4xln0wZ8~5pKkMcs~~`jD)V`e_AM-rgO>tA`ml`$p;ZB7{j@G<=Kwf6fVZKL zvwr&3QAqHD*H6cS#t<>rPs2+Ql=-sEQ0Tpr7a&cJ4KL<_3M0e-zB&##65liAO8!2)RNfSSJ3ncI^PKrp2uGl;ZqMuudw(4=V91*8Dzb*2)JMY zotSd$#SYMBVa)k4$hLh*mrNBDP-vM4;eTlPi7}oIvL9qOq{~9y`etuX4G)_7u{_8R zTi+bx!NBms3FL#!T5y!^1C=Z|g;Q2R5{|?fghmP!V7DV6s)7~2jalhq0AZygQeg%$6}i`x&Rt10*?%!#XtJ^ zGp_UsN~@si3HSO}TW}i~wAT*WjRl|V^TG`rprD(jRpFYY0dO zq-a2jF8Fu`BELi3gB%~-;PtF{`=6lx3}pNf+Lpt+-V@S)gZ6(wV;JBIyFo`YUGP9% z&uR;jT&V>AhyKJON3+@bmm3P5>nV=&+X$_4&zH9^yrAUE#qoC$?H|Wff4<3-4u3x+ZIj{5h3pUWgInW6koserUzJbKM_d*UA zKjzU5z8Cxd1^C`N@CaLP?T;5{K?-|8-DU8N6fgFI_}zO!$B~03MbCk}JP*`jhh2Kv z4?Vr=2Y5>zDBeJc476(*H1gA3df)|zDFegHERY^hlLR@&L4yrDJV4f#ffnU;x`NK) zec%B)!?+)M!`d;AUeK-e=RG>XhnTS=muXxw!@=WB*>#z zoS(4_<5bICfPSDS!>)b)XfwktSTp_(D8wt@~A23<73 z1JVD(19~Gf#A5KhBH+XUzF7yfu+*m;yh{>n9Qf2=(1>yOUeGnpK9Cz%e7dKCPRaM^ z1YiE-1G-}md}oPI=Os_jZb9fR-7G2|-K`%$V~yaG?c0sO_n(4J`~ja()9~V^A$&9j ze6iSz7uBfeWgzyy*Zz3XZ3xc0DCI4vya5F!uJutMc~JcU%Gh9apauoBOnTt~DxDxJ zj$z|1@cClU891)sLz=+n34?BPMdW;N^Bj5IL7EZS`z;XVAIy!Q5Cr9O(D_8Z7hZs_ zLIag>pj-}JUkAEn7PQ;;#Ea#ic^6QA1|6mm1uE>p1v7j;66Al>@peRg2M!OgMX>$? zs1b^7YbB!o>#POsRYB(e@My06A;3TV0Qejd@MHl>`HpCBfcC$GCh{OvJ*51F*QemJ zANPC$C=Nk4O@h}KfDM4?$K}87+8>af3aAi-6xZOI95llKKDe#+!;6gu$VU!A%!9cH zVjpDh3;z9)5dT5dzc{E5OQR6;pzZ^m*VK6M1*kOW1fR$NOK)&_ockLQ{Y%i81v@XO zNCd430NtSoq91s4JAigyya1gw@!~n;DuW-OWAHi!J-P!pJUT&V8i15I3V`>Z9DykL zfI|s5ZNt+~^Bc(dY9RlC(kH0q>Mi~7qMrw;rQr@Q(!kqX9=uoxvI2a8YUzg;DacB} zMI)%T0gX(6My$Vqi-+Sc^gvobD>OiNwSXrzPCz{d+VBNBTLM%c?Ev2dEyM%5BYg#9 zhwpa&R&X;1abhW`(%k_%)cr*b)Z{538Z;K&dCa5Rb;bV+9j@EET(`q(Sa6R5bU$-8 zNMYyk7mGoa1L!)OPS*u5!a#!H1O1`57DGohL7U40AOR{2x}+~26t|#5S5gtWXS|Sr z=$--FGXWbDh3kF*zVG4Xd5{sH>cInid>0~rLHd)>_BE&>1RbD+HnnGfECcVo1RXAZ z0?Kg;hh{h0952$K-Q4P_DvYw*x4d|#g@Dg*7 z6`&*nZ9jpJHE%uO0l6-VzXfy(EhHmC@6H3?xd=Kg1WlBQzXfzc-%C}{sXf_{))eSE zUQopas>@y+2K5X(kH7d0I^P0xH7@in9WL-Ll1?uUNWyUvc&W<_zBmNbRDldcfsfOF z@dz9%pgZqDC-h7ORctRnr%Hh;KTw?jZe@Y*ym?^`waXtwgAzaV0y=vTA9}+JC|!YX z&G~(7*%OaBwT{#V=47uk$$gJ_*BEai;zwWl3`(BcnLnU0AvBgub|fDi(sgc-5j872XiJ!%A*szGY^990RfqU?o3c~ z7~C@a4_apcS}y>1CP)~IGrU>O`t*uxycKfdYS=l@-~Cw7IM8isO{Y0 z(G9wr$F%{v@pJ~XeKy0RySBrl8+1k2p%PJK&w-;3kz%cQ2?p^@1H@8z@JB z8o3Y$LYk;xw}S5>gt`ILc7(e4g-18^=Ekj{`?oy0r$XA7;0r8Y7=R3IJOawk;O5zm z7gic*%`?v;%=t1zdjgdCq210SfOfV%cvyqh zx2eG5$J+G+HKIfI;i4qjt`ECK~o3p7+7ym$nf z3xb5oh8I&Ic5EQVnc(FA1XK=yLd65NI0ajK4s<>)s4W7nM-cT@;~P-6^gx`)ji^eX z^#VAmn`K;O_%p^$XgB3gY!UA+q!daO{J7u&$t{FX#*x@UicZ z&W@{q2dEX?4LTq#bO-20trux(3=A*Nf=UWd#kzqJUKE3m4gepD0BJm|gw!z)K#>nA zok6$nzK8*>!vlw6E9jcV7d{|<_g)Yibb4Jk_;y94R03{@fQ|w|#MDf%$-Xx{8V`aF zwg>G}cv%c-C~SDK2XrMGsGGYP#DIjr1^(Vi5IxK8WAF7sLkjQyjkj|Nk-&GO}<3#U~3u z)1RPo{XoSr=z6#pS3pGtD5-bCO0XBOt9pBDH@vtCTg?c)6|j3NxX|i6^x~^B$XDQ- z2jLeMfiCj_75&f-wd)FK`@^Ff`6iwh4WQ5iT_gtzc5Tr0O|77&1^9?7P&tj#MFw|u zAr1uJ2-giZ67RkC zWz_x|a(fum|7r*C3Iip&~y3fcLY48Km ze@Bo1bkOiExLt!P4~k##{LzaSAs{8-v1`ya-xn`jKzztq!r)RItQ*$fYJ3Ae`UV#5 zpeO}R>4T~rP&ZrSFVZnT-`x z-x)8afKqAa@fT+gkgV#JjV~4QeV(jY4LydPX; zcDeS$>uAsk;b616Ye8i}!wbGY|Nq1LNT6%)u=PA{yl@A1?ObWj%xt*3t>1tEBB8+-rl#tTNI%j1xe!OJh8A!Lx- z7@!PjMg8IdsJ;g`fWTWc8jpZdHMkeC;>8zfL@xr=8F|5+1{&mr%dF_P`I0=D!?K?brLr=W$e*gbJQnRiN)Z74h89I;=)fPX~^zma5oy%vYhcE2{cOCdHlsJ@X9MZdF926?LT2*8hXQ{@esIh z?+gX?$WMSTnFQab(+Y}N&wn zgIZ{y*5eCvklmm_hu$`=4&p;+U_b>8xHpU?^T6{;CMbb}T4A7|fF{^SpsiG$$6rYO zfCa7q{7z_W+5W_f0MKwkZ|#d0>OcPfe+lX_f`$MgIcdiWr_cZYzXZ)0gSR?BTnlPM zzNmy+wDCK#MIb5cIpf5O=b$73%8&cL!zOV-j)#?$H(qA{1xGQcnD78a`7uzj49gFY zLByg157Q`o@q;TR~m=<1ZXRkqRD2MtBHTUqaev zAiLn}gTUQ9h%ev^0HFRstAF9`IY=`LVLGfn1y!UVvvJP{fyYu|;S=o9_y%-Eg-5rm zfUDsp*UroE(~&`^H+O$a*0oO}(WLUL=1(@^29+X+W=?g{tWU_oQFE0qrI2JpMuj+~EWH8q^KPQj)=a z9R=!teIea08q~w7|XDg)ZwiQhEf@kYrd}c$~e#4`8 zFQ}vRf)Ak&>_(4n*cctiaUR{^F*+Ye2hFD&(uM2>kB0hmPX%=qeY)pDMtUFnbVf_~ zbOsCfbWa62$)|fRs0ZuQ8O`C-DeTedtnflt6zT#*+)B+heslD)`8Du_Wr79?GZvfxX z3-V(YI3<9_%o#uj{(1C*mKK0c?Fa3eUGO3sybl<}2Tc?$KpNVCE|CGvD_wZ03QEBs z<9346FUi1)p z;zcWHmZ=jwUIM?v1k{#*xi7(^GxUc?r|$HMiSebd@odnFnH&5q|3G$unjN5) z>C*Q|E(Z-4f|DX>;S3~wp8#DO^+F#satOLx^Ospa|H3 z6anD2Kd5c82&AO*_={VhJPis8&@~#pAVE;~2K(qZNZ+e>|Np~Asvo?VgV4R=g+E01 z3Svf)A%zF1H8vAu;1^IT0;hcB>KZye()b2+HI+xVtAS5%sDe*#EU0+^itZoa= zjpqa4nHk805vc7CTISRM8Vu?L4YGNF=GPZ^bc6R^9e~^r?z_RK+jWLdx9@@%+K@Qv z@aPPk@bW&$@ZQ=BFHAw>*`QLii`3!>XXmJuV@;3Os5L()b5#-0>GGpzc~X zsEZ4(NnbnxiFZSnJz!^Xb8O*6p4*TK#>Jr;(=cNgU7g_>p4O56VQP+cykU>UI}<~ zf{wceos9~@r9WN}R9_33M1ajL;aBhA(HZ)|qZ70?8g$`j?TZ(OK~V#_TIRxwZD0;) zSClVk6%9C9z1RpA1SOl&6QBqJug3>xxMMF|K}~E>lM=kJ29bne?OC+>FVKLh?+*`6 z)HUZ1Jeq4CFz~m5hUmbh4QS3jGxPzZzX(2dub&S*gZRQD(-$JlcmmSMMX4{K?ORy; z6}~6PiEK>Tk$-*`R_B zG?%3X(hu2s2CXzfYgE<1shTVt<-{NK(zi8C_#hoTmaX_;PaI}yzl}U z4jQEfMQ|rH`Jv9=!tL__olXN8V}q=qgVcv`c?XWz!&u@U)V2e;5#l$nKheq)(Eg?e zpgt@{;(#nDy6{37c~CSMly!S+AG~-ADxo@$zjzAjJb~8=xbAqd0wf3?fWuL6K6s%D zY864$Z+HP};l7*<5&?~Wg65LJ*Uo`5H3)}-S^xpa`3shi5eXMmtw7E<=ne(ltp$$( zaQYx!J+$ltr6W+O1-%^x6z0gm3(N2DvK8c9(861g`X8Wsi%_Ejt{zsl!p#Ty4$;0r z-_HRl4?q<(=t5=4nloWgh=WJ9kzItE9uB?$-2n;@3wU_|F%RNLP^H;h`s0N%=&%DE z=E3jhf;a)xBm^ZVaQC40#6D09{KaEXk^r@HK@9;=W6|gtQj-g`AQ0N#gw_5#JV5u0 zbeHaUu>!PUxzqIr=;A^Ka6t`j8`Q3VnA{05c>`$P5` z@uCH0GE&16)cXdtIzYW|km?4HZpeCQkM7Wh7XnZn;0aUM_GUx~L-Ic){2+k=nGN{x zq8T*g1PK*z27?sFF!iAO*dXdbl2c@^AY0r~6z)Mv;G3qkG%xgQk# zpvE7_KP#Xuz73!j-wRiWp+CS2kvc$zfzl~xX`nU82HZ;nK}9UM*^4}X2N~~18Ds)A z&_NvoowFbZgNLCXfX9iXAp)TFk2kRIfDo68(!#vtpE=Pd-Q_W8NB!nKD6lg3uBNm zz2F8fxRLr8B#yU{+6^%WRQZD|g{|P)`Soc~0D`A$zyrP3U?zVrWQY>v4v4+Uj}Uj< z-|)}|s{#cBXyHOTC{8=U4R83G0`*B>6R0b@jVhu7br`Vo?U5rrQ(54?B{ z8T$io_Jb@KcRldp8blDZ6&2L41^ zfSdsIWVaJCY8XX3Yb&_lNw-B3ry;ONj)%W049yVqzRZb1CthD(h5x4fJr+r=>R63 zz@!V9bOVzfVA2ar`hZD4Fc|Kq3Ybg-lNn$# z3ryyK$viMw049q9K!X83y|RS?3=EFJ|5ZEr7#JpGfUeGY`RxDy{~0l$jc<2AEKm#S zruolHCVl34yL|-2!6ygIKFTtX>dn0f==P#F_?Ty#cX$KrBwsB5+W9 zBSQzo0+sU_{vZ};*f0Y$<@+)Pq;4TdEDFQ|?OS{anrF_q1rl=uiG2aFY(Oj_&|roU zh@}N$fdWTQc1Tp(5nhy@zH&u9d(K>HOkCV*IP{{8=-F(1SN zttZb|3u1x#4;gzwEYSMQjME_25slui(0mS+WVl4x)SU>|Vb3iQ6T^TPY zfmli)u?`T+5X7nju^d6Hl7IjI|DUbOD8mrMz!2oJk&$5^BTpX-;}ymoj2jsldYET0 zGQjSf|36!kQGp?lfgw=7iHTt*BTpX_!yZPPSxgKInS7d<8Q(G~BB_;R6c7-0U{Ka$ zUxW>%DaE&==G7G~-mWzz9Ss2c82*2WB_{hOCn~!lP=U(Pl91M$i zd0w+H?B(U0%))Simvc5B<4s-(28NGd<}Y3YxOEI5KS(hYGB6bKPGw}6!^ruMk?|ZO z=Tt_9>x{+-Weopk%Q6a?2xKz2m@qI@@XTanY+*#WjDg|*e?|@g9%BX>QwE0rvlSU7 zE87-t480tZ}0AvR*BS#cd8e@zCl9(x@E<+XrL)K)LORNk{tep2)85Xm0USef< z%F4Nmjj@@H?-DD+95xVpDI47R|7Y`p9B;%ZqlRRbAS3rTM)}oDj8mBm;KE?Pi8J^x zF!%`6F~n#xFtjpqE@ouxLk;WLVEA$G~uwk@Gbp<26)uyo?-L zyuOU)NcR3`k1@hL0ro>UM)dftf>zNpKGI6e9WBknA!?d1>;XkVl+-A4L%$(E|g_3-Q{DRax zg_P8s#7c$4ycC7hqN4mFg@U5|w9K4TD+SeJE(V0!g2bZYR9uP`bQM5)6jE~wN-7~b zi;|EugDrB`Gqf~P$jmD!Em26yEGaH2N=?j#DE7=NOU%hk!IUg7%Fjzza0h8DuFOkT zD9NX<)8$WMdn13AG;AvrNGFTX^gC^a!fA+0DeH&vlHvnrK~ z!41sLELJGV&sWGvEJ{zc0?XK{l58RuLpg@;f>REuFT0QD7AVM$S9a;ice*cZhCsYL;a$=RtT3eov#X~n4}v0MxaFnv}E zaDXFjL5jigfTUDG0pfbFI3j)^@tT*In+nndaSO683~z%xqySS7b~Lhb1+WOR=izG6 zy=JA5SDKrYS_Fz;a6A?(6r>g@6hQo~VW^{EqzQHtH~^3>DbC1DE76Apj6x>P6b_Pt z8my6$nwD6aQ(~oHpvlD$nwMHpkeXbQnu5;>RtlhmQ;wd>Asz&U0wifGLlU89igi&* zL2zoJUp|NtQfyt6To#g3S9E953t zWagIUDioI%6yz6y{0vgZz@V7z7hGZ-A8%-Al9X7SnH-;)2FbCW$$r7{hK9)*iAC`x zMTwau#h%HouCA^OF!ja|^`Ia~Dow+w9Ne6eVPIfjW?*0doyY(x#6WvanZP9(sDZ`6 zsK~&?n8CovaKMCt0dxi{XkD}dcn3Lz|G|WTq2@CKgMv8&!;;So3I&S zd|_ZHNMm4l0-`e*7=CppSup;~N7*K|ce7 z&Nl{zgeeRRAs~7#14G6)28Mun3=B0OdLaYDgl`NC3QHImmVnf+WMJ3mje+69Y6b?D?+gq98yFaLzB4cwY-eC__|Cu}u#}h6Yv!mIs$AwiOXaf2ZPgMbkO;|5~}1_KiY z#siiNOb%8Ij2CPem;!7W7!TMpFbFs^Fa|g?Ff4FpU^H-HU?^~7U`%jlU=Z+NU=Z+R zVEo|2z!2cez*rE(z;GdmfpI}N1A{^Y1LK4U28IU_42%p>3=A7UIGTZRK|BKkLjnWi zf(!-*g-iy<37HHG4?uJd1A{^?17kuy1H*@W2F48~3=9sX42&B|yEes3+tqhC}tqcqdZ43+xIvE%Rx)>M&x)>NQbTcpr z^e`|w^fNFxOlDx*FpGiV!z>2IhB*uj4f7co7A#_5WLUz$?691Hk&%Hh5R&8(Rs-p!5Z(IJ$jER--Us_P}TqNhA*Fs2UKr=MThw5E~i4fZAUG zbswl40QpD3527A4wgTc`2!!wpLLl^mPza4|7Kr^J3RQeT0xJJPB7_ff*B%`10+}_6 zM?+vV1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ON zU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU z1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz11N1TKAo z>djRc62b~`QqCw|QfM_|Wd_z7&e?cCE4k&=o3Q#&A2g1JqRcG)T z!f&_>p*OsQ(4cc8K;{PAf$$S@p)}N-4@D3@===}>e(9|{;z zOfZGm4Y4|@G!2LCrln~)`Q;!NtRPFjSw(SrYDu1JKynU4!waZO{*!A|K`F>6Z;)9M z zGFOI%2@uDHc%mmmhK3cW?guG>djRU#Fh4_s`1s_Cio~SMGD9PS`1s$%!DDV8eJAWY&JA1$&ZH=*OdjSu9JSyCgV5HI5j`bwG6K*pkgH+ zqzuh6BXE8-Fpf{k&(AS5ijOZTDou?qOUx++MM)8=myP1%i}JyRT6%JdC%Dpyk1sDu zEQrr6NiFgWK#px!S6A1N_+V2gVkj;^2|eTZ_?-Om)S~#L{L;J>&!7Oeq#$o({lUiZ zu9!A}Qw^91F^CU#1fd}B5X1P8cvRmT!(Ez_npQ%BQ!$JwE=f$vNsTYgFDfC;m9DO3 z5I2UzgZyC%3L;R-hgH$Rj`6OBrYV_eX{kl2dC94ebQa(j>=JKi0FD5NNDhXRN(%~T z7jTdQHZ3zJ6?feZs@{rH6I0@I^HV^{1T|)fGQkLxa576$$v46zzaTZwHNZPL3oU?% zvELM2lA-4r6L_jA%1qB7DcLj#pag>5un z0hxiER-9T?l9``JS+Zt8^R#)qODeR0Pjybr$w@6TGLMf>$&XKg3&&?9=B0qL6R5}! zD9c5SI!psB!TOUEb8=h*&b#)DPjfa+NZt)?8 z@xkuII}B?H4+;X1V^IBX7VqjBYyq>$5^R$rR-4jOOX5pXa|`l|5{oM1lS)B_DN3UQ zza{e0*_1PG$*I&@XG{ovzTl^31%H_@LC{(%e*r2@J&?kZ~YrCkRx^L;6zS&T)Kler|4lo~KWep{pxM z4m?&6k33)mYSb_k3!s={2I_U?q*`Vq7RRS0Ca0EwlD|Pbcwk}zL$L%_#ihlm*c4kp z6bF|W8s_AuXC}vkhpC*6Kus}_`*$$H6o9)v(6mNisLBZ9>H}oxEh=^m$^=<_164DT zgC5RMs~?c1+Xbro028vOp~3BJ=o;i5Y!DA}+zD(7Amcs^#V=4K;Ugg?nR%Hd;C2r~ z@dxZmOp|j`6N_B4Kvw)fQ9^K}1m^SxW|-6A!#U2N;fe_i#T^i-;1bJ{)S}$Xyu^~! zGLTI>z~b@A6^Ze%_FjByMRIBZs7(n{Z~&noDK$MaFFrZ3Bsl{la{?g)YSqP;=A~8? zq$Zc7rhsHGAY@bXKx1Q2T{jToX+^22sFpoINP=?%$e7 z$p@#HA0Q5FP=lekfknt6J}oV$v>5Ev4lozg%K&Md0Ol1GW#*Nnf%r4Pd{8e4#9IL6 zfphQ*FsC>*H5(+g0nW<@ad&{ZC8;?%VD14hx4bB`1g!N0h?@%zRFL8eU~Xz|azQ1C zdjrY^wRJ)K2T*=-Y6)lrhB2Ojm4PXqK`=KlGmqf{69ZFjMto{TYI12wYJ5g&B50sS zGm1f%2{hi!V#r`;#ITvskKrm)2t%_t1Cx1jer`cxQ7U}ErWmb9ZWzz7j?onCR%A8M zVjEU*A$Q_YM_<7Gc2{sYahi#l;Xoz>1Ct3T1YJ^d5-T0^Qd~g;-T_7VpprkpJ2?o= z*^bS52mIaMW*h2$(XnqSX9{(XLY~my2 zUS!pMd@L**nwc0Fm(!qPB@iGhV>0hqk748(r00z@9T2O=*#U}9ik zF<@9HI6$5J7SRFk*>{N!((b${0~0x8H~$3VF%{2jPPl40FZdbN3AY#2J`~ z9h~?i4(&4IZwRG=t=de2Xg)x=tGS%OFlZc4DQTxeopU}1UD%)-EMAk$z2 z%LHbHf&_&IMu7v&2_IMu6chwD@F_q*!UQG*0|f2q-i#8VDE|I2afN7&s^x7z8MQj0;du2vB&yXduwQ z7+|1a5MUtifKkDqfl8z(61X^}ts0k8uM3Lw@`U<}y6C?Jqv-~h5m z!N33%Bn?ak4U7xe6%-5{3=#w!KtTd_JIGND%nk+y4IBmsm=!*72!NG4K!QlYp@D4y zn}C9VLIEhC53ng1d|-5Vz_@_%0Mh|x0|SGC0s#ewfCr2Y1_ln`csDQrDKt4_^7~~im7!E-Bv!HwjD~S3{Q1t>f5dH@!KfxZt*A|1AKLN^5 zhVnN+`Q=dl1t`B8$`^2l=-&$E8$kKbq5J?SUrroiegTvp0_9JD^4p;N4N(3DDE|VK ze-Fz40Oc!6K+Fs9fY@IIS`Ao?pMA>pY2 z<*$eGFF^Tkq5Ka}zOocVeSkMaefjV z!f%A~F9bsPm!SND5C~sY2BQB#D1;vi<$s8R@Ml5!3lbpw>rnoML3Vv5cLI6em|6d0m{D$M7|Oo@ z|3!!|442XFvp?n7@|2dQ&0OgA)Li86v`R-8u2PnS*%2&vQn0E-uH-Pdv zl_2^PpnQ8Me*%=>0OenR^7ldc3|SEK?m+nlP(F_`#JmP5UkA$H0Ok8Y`5&PC8Yo{N z8)DvkDBl6fKLO4qs`~y(FfC|LE2T;BRlrNA2F|QcPH-PfjL-`3%{wpYd1C+0( z3Nh~jl%ELYe}M95LirBRdzG%j_|SWsK12BpP`kP%6|;y7eM*O8j$>S0m{$NfSC877-HXi zC|{ri!ru<%8$kK2nh^aBP`;HWME`|yi26tT6p9bX%K>4?z`~)apTnnOq0hDh8 z|{xK-u0m^?0KmZ^3Vn!q6QKN^Q27l| z{(Go=0QCMXbpwe02~d8D0aSk@#Qqsjd4VPf{}hyO0Oh}c@)MwZbwh}G4N!gpl)nMW zZ-Md;K>1Ig{0C4zhY>_SLo>uaS14Zr%I|^l4WRtJP`(3{{~gM2fbxxuA?9s>^7Ekl z3sC+tDE|SJf6W-;e}fi?{d^`6{S2)Tems0S z0m^TM@*UbB=AVP|1E72nGl=>LP<|qmzW~Z#1La?U@-IR82JH~@en9yXpnNHFh=`XTONw}+@Nm;m8>LHQG){C0atcrAePuR!H5 zK>1n@5d91jA^NkRd;=(d3Y6~v<==3Cm=^%$D>_2>1yFvTBgDK7Q2tXW{{fUQ;{=fx zm;|ve0m?Uk^4B;)%yWS9ze42`pnPLzh&%)IUcq8#hiGg7@(xhG zC6pfk7Ef{0mUNOAtiA z!2*c>=}^7{l>Y(BPk{1yf+6Y)pnS7nNO&%Q@-v|F3JW3T&4cm-p!`Qr{sSmqBm`m} z!y<@!KPbNe%HIv;Z-DYOLLuq}7DLpxL-__!{z@p{0m{D}3UOZnlrI_v(f1CP5dQ=$hv+{DmA?SxD@Q@}e}MAipnQQ95cPARd;=)|43zHx zM8mj&Rl%Jji z(a*3BV*cVJh<*bo|07gB0LnK>hRA<_@+*@e`VFA>?;eE88*G4>$CLt*-vH(NK=~J- z{7Fzg!$yeuzfiscl&_Nt(eD7|mqGanQ2vQjhH1k8$kI=c@X^xP`*Eu-vH$= zgYpkR`4^%54^X~BK19F3E{ORaP`(3{KOM?X*awln59K#N`FsTs{R^OcODO*Wl-~j6 z3+#vJ{|)6kK>2xvQ2kK;HYk4sl>Z0H{{ZDD7eUlB9DtbD4dp99`S+oG2Pog97@|G_ z$}fQO8=(9nQ2qoc{|}UZ0m|1bf#_#|-m{$vQ=ohYDE|PIp8(}Qhw%?X+$&rP zF>e8sZvf?Afbvg5`3%r|yZ=D>A5KE_Ta-ccH=Kj;YoYuJQ2tgZ{{WQ#0Lp&=<*SrK z^edc)==X>61EBmID8B&8XRUy!-vH%DK=}`#{MAr?zy*kTU!eR1DBrpgqJIID-wEY! zfby?G`46Ccjw*Z_rA11SF*l%D|QbF@IzPk{1$q5K0-em#``0Lotl<$r+kjani4 z6<$E>>w@wfpnTCbh4XF&NpUm^Cd zf%09T`~y&a1eAXT$}fQOUqJa&p!`2j{vIe_pc~@93sAlal>Y$Aw}A4$K>0pUKF2qR zdlI009Vov9$`66^JD~gwD1Q!=UjyZDfbu6m`A4AqB~bniD1Qf({|3rG1LZUHK-~WT z$`^t1S-wNurvc^bK>0RMz5|pW0Of~3`6*C-29#d`<<~&@Jy8Ab46GR@g+?t<}fuR68|LnuSzyRVOFoD=t z0_6ul=d1TY`5&P2EQ}!a4GaO$_OmmTp8y?Ss)h15K*!hDL-`HR`6AGoO@77(h63n( z6AKg6yaI^*`cS?Clpg@)2SDeu3ZeW9Q1hli`3Io$A^V|xgVzxA*q9;aH$dx~WGH_F zw0v3tI0zl)ifwS0Xlzn4aSGMPn;E^{sVM=DhSG7-~+M08_F+u1>s+W z@&!&o_*rZa{STn+p#xAp19bfJKa{TkKqVxhX)Y(eNaBb zeF$HT6Cy9L6T(k}@*SYb6^MKZ7exI5X#FnA4dFXL`&-RWegJel@(q-~06O2| z&BMUJ&)LB60-7G{q5J?Se+!7u*1)g_n%-YP`8`m+EHB7D0njD^aQZg{^BEW(K-WK* z^Mc(8O4eXC?hrmGtAP3KX#90({HtjE_h@_$KCt<4^K8-hMQHrxX#Bfqdh zQ_=WW(D>W}sQR7I_%UewA~gOiH2yX;{v|X%lOU>nVrYCVG`IH@$Jy~GE58%vP=vNa!d>i@=Od2pBWh#zA!Q{dl_`T9W^Rk%8eSBLl-PMh1r8j0_Ba85tPCI$u`CI$vx zCI$vRP+i5uz#zcHz#z!Pz#zoLz@Wp#0NxWN%*4PT!omgCY|H!yiTl20bPQ24f}$1`{R*1`8$z21`gRHZU+SfUz|b1A`3{1A{FS z1A{jc1A{LU1A`yb-Z&-(hS9JmJ?s@2;^U(Xsk6@wWD+s^>f+<0jHt7X4P+AKo9aL( z(V^{kBV}U;7VSiCAi<&&%T68SO(Y;4kUe??PjJGg6m|0w9+l`jpKvRM?y#Cg~Qy&RvR+j|zeB0wi+R9f}@e_w<1@!M7fg zU=dso@fKm8DH0DpZzMh*^(Z4y974MgpaPQQLyVC0L(kK}dVCQUW!Mfb0x83OWD!&b z^U!UG1PO;2fzI0|Srh1}9g;PHP8}ju6XcvEBwa)vkOV)-n{=(nXLysP8*ywm>Dp0_ z>?U11_*^K`wSiAnLTH1gT=+>)7&71^pb(QK%kx5h`4U2wW@tGBKI$$$J}L!t$as8w6zE)W5LKQF z3Z1<2T(r}}<3Z;`V?E{zDuaB!7gPxSU@xdJ;zTc~0NPPrP*KPkUh(nR4k|}Eqa1vs z7m5hv)N-&8;ff%53xG;`Jhh!XZH9}k^>ud-*A}b3NAF$)h z38uBY64x@4G$fb#f)2n$8A@_>D=Tw_ngbb8gSGXrG>R+>N{ch%lM<7&U4y()9E(Sj zX=-jkNhOLEhQtL5w7db`CXkmN4^Cn5GwHw{M|Cis<|2y2gAL=sx}gmfn9~WhZB3v@ z)`Q}fM6H<>uHdZZV`vob9~@ksSm2pgVrW(Zat4Z+u@NLxQ9XtwCcvllfn0*B5>F7| z&_T%8aBXN_#$yw5KoRXcSP=Q4>cHZ4xJon^VNr_PC4{_5qGK!}0FCO}hgv5S(Ch}CMGnwLVBMram{LW>qW zv5!Lsme@g4No=72Z3m;*h$Iy$F#iy1CyrW}NIRjrp73P4o4-+z=Hf@&;=AGX$ASko}kfm#DzYt$R#szZZs*b%mdvWM5EW?^Y+d_hT(r+IvQv74ulYk*rO zlP%}FguEs8Hr%gjqm z^$Z4`P#+Nz4>{jBJwHDszNjoQC%z~(4RRp{vQO~3#=IysClz#~5Tt1YDPaxqYC+Fx zcojPv(bu;=CZLuk=xqAT09eqwy1M#~y?bZ9M-SK?E1Qgc1w!Q+!@;OdiP;OgoO zaZMT64kRNG?f@lXgiG)_#S|8@Nao;niW^d7`D7ZxofB*lkKr1k0@gGwv#1!>-iIV= z+_uAf1P=()`1tfxRNVx!1hkTc6&`rAglSP~acT)D_alW3QNA)OPEF27YnkBo7S=$; z;x!*j_+TKYm!`sw5at05Je5*nNz16DvG(AU+E=jt@3QHXAAns|7r1=LM=6hUo-)G<(XM8|wV zK}iv+6~t;aEdXDZhhi;eYBhkgCsp(`p*#uK7P8XX& zt~7u+*gHAcG#=b*h7E`i9ZIR777#RqA&J4qI5#uTGZ!OUKm!7&i;Ob!kX#cKYzhiU z^Y|dt+7)U#Qnt#?B`RCx=DLEjRW53_BHE+rNu{|3&}JUgD@5x}MM{Q{Kq6Xe0j9M$ zL(n+C6q*9T5sE7aiM882J|1Fw4pNywaHI@hvU>6*{qr%q%^%BqtxW=Z0{+v!Sc6U$8;E zX?%QMVhJ?&LE{weLuVtLiik@sps>tM%ubEZO(`xZ0#%fdRDdfilTpJ9o=nhF5lla! zIUy5p4-%!Oft!g%4iP-bWxgQ>@geb^pn+vjYC|1vMs=p4aeO?|B(W!!Q6kIuc*rC| z0ZNGu8~MVb1JZ(oUZ@qHpO+e+SOPM`(<{gubbUmbOM!m~aL~mhTSO^Qk0lioR|!{rv)@88Eg!#Rv~HD z&{K00U`0hM#zzb=(K@j5l^qt7)w`;^q@i;6(HRJXCqh8y<(6i3^aU* z32V@>6IyVCvXOaaUP)?tQDRO!STZrM#4`zeBa|zS$UwSxH_H_{0$p9p0>vy26I8u8@iXB@K`s!0^#dXqkq`1W=e3r6%X+=7I*oQKAI>I=C#* zU<69oxw<+Vy5^#_(GbZIR21MzjYe2fqaiVt!V@52?^z@#79=KTqRp~FdV83SUJ}wG zV$FS!H!M3sokK*?jWw?un&g${rWR!;$LD0`g08L4aRv2RQPKiYWfJJxarjNr1ab(v z<5A)l;YpP0j@a@XHA_H42T}*+A`iGhMyW{36Gos__?bz`1qJcwfd>69LvD0@N-=G=p40 zgO{KIMf71*VyXZOXqB7_F55{iuF&!wG^7!3gEYTE^*C}3Kuic>qyT8>VodbD`|;IUe4%_!Wg1OI0uWLK#>d*Hl%a_8)OJd!Q=|5FCin@ z!N!6u@b&Vpu6ZTJMWD_l=vq*4OA>tTaIjH4sKpJse;J~%xX9Qr zvpBw_D6=dxF(;=Id_^*(=?T)1nUs_23BIlwqTIC%I`IT*j0RhR7C8h3TcWhzO+eT3 zdIo@souCl-z%;aQ!WYOU@$reUK+a1ohb*Om&P?FZ2U@|MnOByWlbHgFp2VCS_^sE) z&{!gDxv?RV<;nSZC7J1^`K866fGA1K%u6kD4e&0544ns?LcB}ZP?MCzl0>KzAn6=F z%a=vW)E?@50Wsw^yr~Saj;Qu0bR{WrNkU}13~}{4xc&;rf|MfAfFa6q^hOE^?gnM{ zlvK!d+R&cAYXD^Mgkn>0=P(0TSCj=1#8mUmeqy0YEX)z!!_9_JXB329?oP+MGGkq1gZi}sA-!J}QqpxQCW8~A!A>t^R|eE6W(xDc*Yz|u#7nnlkBhuD10D-`1Fh2An=G7*)ane z!$E1VfTv-~2$gtPqYkM|gM}y32pJ?lfL1pVGfDu5T1gx5}_(V zEijDk7Ss{g(kN;+ff|Cd_CPfOYAmjN0yT_;AV!aA(oMjq_hCk0Yj!~0kLoE%PC=#JT!O?L&HyIp17gReprMOq9_}K6n5r9;++jl~ zkfqls!w)3XASR@aR)Je-pyG|X<5l2hU9e@mt1Dyxim34_gmR?uD&zQIM-U1Mc7zPz zKqA@)I$i~h4p28B1in-gT3!$n^u&x_LG1vA60~?jbaKFl#E>$Ig~u@BMzhR7dzFIC zAb~-=Pw|XuL7ha**cNmU4H5?=Rao#QEg5>r8S8?3$`xf$1T^O#5NrhPe?o(gB#)rC zK*;b9sHg)EE|n&iz{kK)*T<6NBwXg49KM)GF0c**R(U5?pEIf@$tOlX9Dj`V= zR*Yd;?}4_;5WO8uSO;kC32B8FXctOueja!ajVrq0*t~+x21B$~B`8uYK%0)z5=(PR z;xqFyOX5os(;>5k=uJ&xEkSQ^kzxs=LyK1zD1NZDoJg9;M6EQkkUB!nMxecHhS)*| zd$P?!j}bfx1HH6G8y3Y9ZKUhKRw@&=2Wwe{JpK>!6*Rk{1|X!Jg`P6eY$ZV_w&aFS zJJr)RKFcUc<2W0_sNo5Up#^|ae-nBG0PAr3<+}E zOC&4+K=u-7lmp4PkbI1P6#%k!ymL%MEd@X}4Xb0&5*n#l3o#2$aB3gfDcEuX_8OhU z>X%BB{K#%aTE0MdrXN`&Hcz5fd4yVYs3strjnx0aQsiQcZzF5Pnhc1Y@g{5#dS4dD zWG%@F4LUhQ#N0PQH)2m|=u_JSjlt1U05vKxR)7#R45OEfBixWGD14~{Z^=Q)>@>1R zV2O~ZDQXmrq|H+!YsH#+QF9ff%EZ}lK{El_a3l|5%TPI6(5%TUlH7544r@L624 z0|cXjfSE+Cf`sU7U>F|{K2RgG1hi`hbxa-9v@I`6ECBBi@lh(SEc{t^?& z5q`+2ItS!Z@HXurZ{*W)P)>S7*5DT$Z)6%DUzA!>T9g-GlA2qPUzAu>3C%H}UGLy& zTD0S#vD%y%?22gnLPH7p%s5i4g&rpdnl4A0rX<@J@WwqX;h_XPYE*;Hb4^8A8HLri zpmpq^9p%&tXZVqlkhV26{0LFF9F)2jbodC$Y95Ni97`+J$H*8* zsfOPzKA=--F}AS9m*#DRJ?-< z3UUq$Hja071s@g++Q*!O^PFH5yG`Tci&IO`qdzwQB`xBtWU%=KUa>&RYgoea!v+GRXW%ZRKp<^Fmw#Y2=kx})N%;Cq&gY3 zPl!=3k(4&EpE{1>MyRFW_5t?J7H9=3a=}VY8pKxPqc{Un4!Y)oB8WI=kW#**_rgih zi=*97PAH(ZQ6S|rY7!v3Re~?^VQGn=+G-geUr>~v3_5rjIp;&t9`P}Pr{REh$f%Eb zVoF(JUUDjE#Vo#38+6=ePzd<=ep65f8TmLs&?qcs?-VJe`dFl77MBod4al1qR$%S_ z27@;uAlqXGxiy*y&xFLI9?Aht17=03WvNBQso;J-$d9OXA*ct9*4M|>0rCKz7yvbL zK!-mex!WQ>J~OW@wWtJijDHg9q-rpzG2?9L3fpf1aVWGgfl~Zp*bAg27L*nbcq|Vzyoa(Er?|*GvpBvuF&C0bjG(s)fcIJ>ZWI8IK*09e7+Ij4 z4U?Q-P#K?CT%4H>K9j~X*c`qu$29=Nft=zW06Og4DL&W&vb6;2RnX#u(mY(FFRqBA zVsNNO%}Hp!D=s47R8U(A;w#qxP+UM<|H=(30S69Da!+1=WfI?9(uy9 zhoC!=je+39=}E7)k%3s4C89An@X zOB55d7-R@ae~w@V0qKD5w1Y$!zDgQxovx2%d_2vnchJz1Sy5tMN`7v9Vlt@70qSUfM?n^^s@U=>?qxcBA7N37X zLsY1yA-7k+H6vP1NlYB*2ALt~q`vr~#Ju#>V#+*k06OhEJwHA@IR#WEgv19Mf)G-Y z!r9FRWgUF8Q{b+qyR&nAY6a+w#P|}>X^4gl=psfKBIXz(hGrN-My41-#+Zg18)K@% zG|L#%Mq>*Mjiv?|LS~pY8X8z)C^Iy~^rRscKN%XCVCu!CYW(#jKzJ% z=9n>VY=OmI3oPbYV1|LQC1zNeU3DFb+J-d@6P0l20G5}X`=oh_!yJ;X#AzThsg8w#7 Ski)^3JQoyYmL-;?G5`Q4*EXvF literal 0 HcmV?d00001 diff --git a/scripts/tools/Win32/networkSimulator_g192.exe b/scripts/tools/Win32/networkSimulator_g192.exe new file mode 100755 index 0000000000..c17aff5249 --- /dev/null +++ b/scripts/tools/Win32/networkSimulator_g192.exe @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b81ea0575fb6b40f48c22b59f90820774054e82708750f9350cf9c0ec2674231 +size 578574 diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000000..6ba72e4ace --- /dev/null +++ b/tests/README.md @@ -0,0 +1,173 @@ +# IVAS tests + +The IVAS tests are using the [pytest](https://docs.pytest.org/) framework. + +## Installing test dependencies + +To use the `pytest` framework, you will need a few Python packages (in addition to Python itself). +As with other Python packages, there are different possibilities to install those packages. +Please chose the option that works best for you. + +`Note`: +The installation of Python is not described, here. +In the following, it is assumed that `Python >= 3.7` is already installed / present. + +### Global install + +```bash +pip install -r tests/requirements.txt +``` + +### User install + +```bash +pip install --user -r tests/requirements.txt +``` + +### Virtual environment install + +```bash +# set up virtual environment +python3 -m venv VENV_NAME +# change to virtual environment +source VENV_NAME/bin/activate +# install required packages +pip install -r tests/requirements.txt +``` + +## Preparing the tests + +`Note:` +Currently, shortened test vectors are used to speed up the testing. +Those shortened test vectors, some with gain adjustment, need to be created, once. + +```bash +# create shortened test vectors +python3 tests/create_short_testvectors.py +``` + +The tests rely on references which need to be generated upfront using reference binaries. +When the reference binaries are named `IVAS_cod_ref(.exe)` and `IVAS_dec_ref(.exe)`, pytest will find and use them. +When the reference binaries are named differently, you need to specify them via the `--ref_encoder_path` and `--ref_decoder_path` options. + +The tests will use the binaries `IVAS_cod(.exe)` and `IVAS_dec(.exe)` for testing. Please make sure that the binaries have been built before running the tests. +When different test binaries are to be used, they can be specified via the `--dut_encoder_path` and `--dut_decoder_path` options. +(DUT: Device Under Test) + +```bash +# create references +# the following binaries need to be present: +# - IVAS_cod(.exe) +# - IVAS_dec(.exe) +# - IVAS_cod_ref(.exe) +# - IVAS_dec_ref(.exe) +# pytest command lines to be executed from project root folder: +pytest tests --update_ref 1 -m create_ref +pytest tests --update_ref 1 -m create_ref_part2 +``` + +## Running the tests + +To run all tests from the tests folder: + +```bash +# pytest command line to be executed from project root folder: +pytest tests +``` + +## Re-running some tests + +When there are test failures, you may want to run, after having fixed the code, only those test cases which had failures. This can be achieved using the `--last-failed` option. + +```bash +# rerun only the tests that failed at the last run +pytest tests --last-failed +``` + +To run a specific test case, you can e.g. pick a test case from the `short test summary info` and use that test case as an argument to `pytest`. E.g. + +```bash +# run a specific test case +pytest tests/test_sba_bs_dec_plc.py::test_sba_plc_system[0-48-PLperc12mblen5-stvFOA-0-32000] +``` + +More ways to select which tests to run: + +```bash +# run all tests within a module +pytest tests/test_sba_bs_dec_plc.py +# run a specific test from a module +pytest tests/test_sba_bs_dec_plc.py::test_sba_plc_system +``` + +## Some pytest hints + +When there a many test failures, you can use the `-x` (or `--exitfirst`) option to stop testing on the first failure. + +Commonly used options like `-n auto` are added to addopts within the [pytest] section in `pytest.ini`. This saves some typing when calling `pytest`. + +The `-v` (or `--verbose`) option is helpful to see what is going on. + +## Custom options + +`Note:` +The custom options are listed as part of the pytest help `pytest -h`. + +```text +--update_ref=UPDATE_REF Indicate whether references shall be updated. + 0: Only DUT processing, no reference generation, references need to be present. + 1: Only reference generation (unconditionally), no DUT processing. + 2: DUT processing, references are generated when not present (not supported by all tests). +--dut_encoder_path=DUT_ENCODER_PATH If specified, use given binary as DUT encoder. +--dut_decoder_path=DUT_DECODER_PATH If specified, use given binary as DUT decoder. +--ref_encoder_path=REF_ENCODER_PATH If specified, use given binary as REF encoder. +--ref_decoder_path=REF_DECODER_PATH If specified, use given binary as REF decoder. +--test_vector_path=TEST_VECTOR_PATH If specified, use given directory as base directory for test vector files. +--reference_path=REFERENCE_PATH If specified, use given directory as base directory for reference files. +--dut_base_path=DUT_BASE_PATH If specified, use given directory as base data directory for dut files. +--param_file=PARAM_FILE If specified, use given param file in test_param_file. +--keep_files By default, the DUT output files of successful tests are deleted. + Use --keep_files to prevent these deletions. +``` + +## Helper scripts + +To help with running the tests during development, two scripts are available in the `tests` folder: + +- prepare_pytests.py +- run_pytests.py + +The envisioned development workflow is: + +```bash +# 1. create a new git branch and switch to the branch +git checkout -b new_branch + +# 2. build the REF binaries (here: example for Linux) +make -j + +# 3. use the binaries to generate the references for future tests +# assumption: you want to test your development against the start of the development +tests/prepare_pytests.py +# Note: the script will use the binaries IVAS_cod and IVAS_dec in case IVAS_cod_ref and IVAS_dec_ref are not present + +# 3a. (optional) store REF binaries in case you want to re-run the reference generation at a later stage +cp IVAS_cod IVAS_cod_ref +cp IVAS_dec IVAS_dec_ref + +# 4. do the development changes +edit ... + +# 5. build the DUT binaries (here: example for Linux) +make -j + +# 6. run the tests +tests/run_pytests.py + +# 7. depending on the test result +# - either go back to 4. +# - or commit and push your changes +``` + +Both scripts allow to restrict the reference generation or the testing to test_param_file tests +with a custom `.prm` file via the `--param_file` option. diff --git a/scripts/ivas_pytests/tests/cmp_custom.py b/tests/cmp_custom.py old mode 100644 new mode 100755 similarity index 62% rename from scripts/ivas_pytests/tests/cmp_custom.py rename to tests/cmp_custom.py index e52d6df46c..ab22bc0ceb --- a/scripts/ivas_pytests/tests/cmp_custom.py +++ b/tests/cmp_custom.py @@ -1,35 +1,37 @@ #!/usr/bin/env python3 +__copyright__ = \ """ - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. """ +__doc__ = \ """ Script to compare samples in 2 PCM files. @@ -87,7 +89,7 @@ class CompareSamples: self.file_1.seek(0) self.file_2.seek(0) - def print_summary(self): + def print_summary(self) -> (int, str): """ Print the summary of the comparison. """ @@ -103,19 +105,18 @@ class CompareSamples: if not self.diff_present: print("Comparison success") print("") - return 0 - else: - print( - f"First unmatched diff ==> {self.first_diff}", - f"at sample num {self.first_diff_sample_num}", - ) - print( - f"MAXIMUM ABS DIFF ==> {self.max_diff} at sample num {self.max_diff_sample_num}" - ) - print("Comparison failed") - print("") - return 1 - return 1 + return 0, "Comparison success" + + # comparison failed + print( + f"First unmatched diff ==> {self.first_diff}", + f"at sample num {self.first_diff_sample_num}", + ) + diff_msg = f"MAXIMUM ABS DIFF ==> {self.max_diff} at sample num {self.max_diff_sample_num}" + print(diff_msg) + print("Comparison failed") + print("") + return 1, f"Comparison failed, {diff_msg}" def compare_next_sample(self): """ @@ -146,7 +147,7 @@ class CompareSamples: def usage(): print(__doc__) - return 1 + return 1, "" def cmp_custom( @@ -155,7 +156,7 @@ def cmp_custom( sample_size_in_bytes_str, tolerance_str, end_samples_to_skip_str="0", -): +) -> (int, str): """ Function to compare the samples in 2 PCM files. """ @@ -189,10 +190,11 @@ def cmp_custom( return cmp_samples.print_summary() -def main(argv): +def main(argv) -> int: if len(argv) < 5: return usage() - return cmp_custom(*argv[1:]) + retval, _reason = cmp_custom(*argv[1:]) + return retval if __name__ == "__main__": diff --git a/scripts/ivas_pytests/conftest.py b/tests/conftest.py similarity index 57% rename from scripts/ivas_pytests/conftest.py rename to tests/conftest.py index 2cc74689af..da1c26e54a 100644 --- a/scripts/ivas_pytests/conftest.py +++ b/tests/conftest.py @@ -1,31 +1,37 @@ +__copyright__ = \ """ - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. +""" + +__doc__ = \ +""" +Pytest customization (configuration and fixtures) for the IVAS codec test suite. """ import logging @@ -35,7 +41,7 @@ from subprocess import run import textwrap from typing import Optional import os - +import testconfig import pytest logger = logging.getLogger(__name__) @@ -54,75 +60,104 @@ def log_dbg_msg(message): @pytest.fixture(scope="session", autouse=True) def rootdir(request): + """ + Return root directory for tests. + """ return str(request.config.rootdir) def pytest_addoption(parser): - parser.addoption("--update_ref", action="store", default="0") - parser.addoption("--p4_CL", action="store") - parser.addoption("--p4cmd_active", action="store", default="0") + parser.addoption( + "--update_ref", + action="store", + help="""Indicate whether references shall be updated. + 0: Only DUT processing, no reference generation, references need to be present. + 1: Only reference generation (unconditionally), no DUT processing. + 2: DUT processing, references are generated when not present (not supported by all tests). + """, + default="0", + ) parser.addoption( "--dut_encoder_path", action="store", - help="If specified, use given binary as DUT encoder." + help="If specified, use given binary as DUT encoder.", ) parser.addoption( "--dut_decoder_path", action="store", - help="If specified, use given binary as DUT decoder." + help="If specified, use given binary as DUT decoder.", ) parser.addoption( "--ref_encoder_path", action="store", - help="If specified, use given binary as REF encoder." + help="If specified, use given binary as REF encoder.", ) parser.addoption( "--ref_decoder_path", action="store", - help="If specified, use given binary as REF decoder." + help="If specified, use given binary as REF decoder.", ) - # TODO: rename to test_vector_path parser.addoption( - "--data_system_tests_path", + "--test_vector_path", action="store", - help="If specified, use given directory as base data directory for system tests." + help="If specified, use given directory as base directory for test vector files.", ) parser.addoption( "--reference_path", action="store", - help="If specified, use given directory as base directory for reference files." + help="If specified, use given directory as base directory for reference files.", ) parser.addoption( "--dut_base_path", action="store", - help="If specified, use given directory as base data directory for dut files." + help="If specified, use given directory as base data directory for dut files.", ) + parser.addoption( + "--param_file", + action="store", + help="If specified, use given param file in test_param_file.", + ) -@pytest.fixture(scope="session", autouse=True) -def update_ref(request): - return int(request.config.getoption("--update_ref")) + parser.addoption( + "--keep_files", + action="store_true", + help="By default, the DUT output files of successful tests are deleted." + " Use --keep_files to prevent these deletions.", + ) @pytest.fixture(scope="session", autouse=True) -def p4_CL(request): - return request.config.option.p4_CL +def update_ref(request): + """ + Return indication whether references shall be updated. + 0: Only DUT processing, no reference generation. + 1: Only reference generation (unconditionally), no DUT processing. + 2: DUT processing, references are generated when not present. + """ + return int(request.config.getoption("--update_ref")) -@pytest.fixture(scope="session", autouse=True) -def p4cmd_active(request): - return int(request.config.getoption("--p4cmd_active")) +@pytest.fixture(scope="session") +def keep_files(request) -> bool: + """ + Return indication to not delete DUT output files. + """ + return request.config.option.keep_files @pytest.fixture(scope="session") -def dut_encoder_path(request) -> Path: +def dut_encoder_path(request) -> str: + """ + Return path of DUT encoder binary. + """ if request.config.option.dut_encoder_path: return request.config.option.dut_encoder_path @@ -130,15 +165,16 @@ def dut_encoder_path(request) -> Path: system = platform.system() if system == "Windows": - path = here.joinpath("../../IVAS_cod.exe") + path = here.joinpath("../IVAS_cod.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../../IVAS_cod") + path = here.joinpath("../IVAS_cod") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - assert os.path.isfile(path) + if not os.path.isfile(path): + pytest.exit(f"\nDUT encoder binary {path} not found!\n!") return path @@ -163,6 +199,7 @@ class EncoderFrontend: agc_op: Optional[int] = None, bypass_mode: Optional[int] = None, quiet_mode: Optional[bool] = True, + add_option_list: Optional[list] = None, ) -> None: command = [self._path] @@ -185,6 +222,9 @@ class EncoderFrontend: if quiet_mode: command.extend(["-q"]) + if add_option_list is not None: + command.extend(add_option_list) + # add mandatory parameters command += [ str(bitrate), @@ -221,6 +261,9 @@ class EncoderFrontend: @pytest.fixture(scope="function") def dut_encoder_frontend(dut_encoder_path) -> EncoderFrontend: + """ + Return a :class:`conftest.EncoderFrontend` instance as DUT for the test session. + """ encoder = EncoderFrontend(dut_encoder_path, "DUT") yield encoder @@ -229,34 +272,40 @@ def dut_encoder_frontend(dut_encoder_path) -> EncoderFrontend: @pytest.fixture(scope="session") -def ref_encoder_path(request) -> Path: +def ref_encoder_path(request) -> str: + """ + Return path of REF encoder binary. + """ if request.config.option.ref_encoder_path: return request.config.option.ref_encoder_path - update_ref = int(request.config.getoption("--update_ref")) - if not update_ref: + if request.config.option.update_ref == "0": return None - # assume default encoder when update_ref is selected, but no ref_encoder_path is specified + # assume specifically named encoder when update_ref is selected, but no ref_encoder_path is specified here = Path(__file__).parent.resolve() system = platform.system() if system == "Windows": - path = here.joinpath("../../IVAS_cod.exe") + path = here.joinpath("../IVAS_cod_ref.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../../IVAS_cod") + path = here.joinpath("../IVAS_cod_ref") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - assert os.path.isfile(path) + if not os.path.isfile(path): + pytest.exit(f"\nREF encoder binary {path} not found!\n!") return path @pytest.fixture(scope="session") -def dut_decoder_path(request) -> Path: +def dut_decoder_path(request) -> str: + """ + Return path of DUT decoder binary. + """ if request.config.option.dut_decoder_path: return request.config.option.dut_decoder_path @@ -264,15 +313,16 @@ def dut_decoder_path(request) -> Path: system = platform.system() if system == "Windows": - path = here.joinpath("../../IVAS_dec.exe") + path = here.joinpath("../IVAS_dec.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../../IVAS_dec") + path = here.joinpath("../IVAS_dec") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - assert os.path.isfile(path) + if not os.path.isfile(path): + pytest.exit(f"\nDUT decoder binary {path} not found!\n!") return path @@ -293,6 +343,7 @@ class DecoderFrontend: output_path: Path, quiet_mode: Optional[bool] = True, plc_file: Optional[Path] = None, + add_option_list: Optional[list] = None, ) -> None: command = [self._path] @@ -303,9 +354,14 @@ class DecoderFrontend: if plc_file is not None: command.extend(["-fec", str(plc_file)]) + if add_option_list is not None: + command.extend(add_option_list) + # add mandatory parameters + # output_config is mandatory for IVAS; EVS does not have this parameter, indicated by "" + if output_config != "": + command += [output_config] command += [ - output_config, str(output_sampling_rate), str(input_bitstream_path), str(output_path), @@ -339,6 +395,9 @@ class DecoderFrontend: @pytest.fixture(scope="function") def dut_decoder_frontend(dut_decoder_path) -> DecoderFrontend: + """ + Return a :class:`conftest.DecoderFrontend` instance as DUT for the test session. + """ decoder = DecoderFrontend(dut_decoder_path, "DUT") yield decoder @@ -347,40 +406,46 @@ def dut_decoder_frontend(dut_decoder_path) -> DecoderFrontend: @pytest.fixture(scope="session") -def ref_decoder_path(request) -> Path: +def ref_decoder_path(request) -> str: + """ + Return path of REF decoder binary. + """ if request.config.option.ref_decoder_path: return request.config.option.ref_decoder_path - update_ref = int(request.config.getoption("--update_ref")) - if not update_ref: + if request.config.option.update_ref == "0": return None - # assume default decoder when update_ref is selected, but no ref_decoder_path is specified + # assume specifically named decoder when update_ref is selected, but no ref_decoder_path is specified here = Path(__file__).parent.resolve() system = platform.system() if system == "Windows": - path = here.joinpath("../../IVAS_dec.exe") + path = here.joinpath("../IVAS_dec_ref.exe") elif system in ["Darwin", "Linux"]: - path = here.joinpath("../../IVAS_dec") + path = here.joinpath("../IVAS_dec_ref") else: raise ValueError(f'Wrong system "{system}"!') path = str(path.resolve()) - assert os.path.isfile(path) + if not os.path.isfile(path): + pytest.exit(f"\nREF decoder binary {path} not found!\n!") return path @pytest.fixture(scope="session") -def data_system_tests_path(request) -> Path: - if request.config.option.data_system_tests_path: - return request.config.option.data_system_tests_path +def test_vector_path(request) -> str: + """ + Return base directory of test vector files. + """ + if request.config.option.test_vector_path: + return request.config.option.test_vector_path here = Path(__file__).parent.resolve() - path = here.joinpath("testv") + path = here.joinpath("../scripts/testv") path = str(path.resolve()) @@ -388,7 +453,10 @@ def data_system_tests_path(request) -> Path: @pytest.fixture(scope="session") -def reference_path(request) -> Path: +def reference_path(request) -> str: + """ + Return base directory of reference files. + """ if request.config.option.reference_path: return request.config.option.reference_path @@ -398,11 +466,18 @@ def reference_path(request) -> Path: path = str(path.resolve()) + if request.config.option.update_ref == "0": + if not os.path.isdir(path): + pytest.exit(f"\nREF path {path} not found!\nPlease generate the references, first!\n!") + return path @pytest.fixture(scope="session") -def dut_base_path(request) -> Path: +def dut_base_path(request) -> str: + """ + Return base data directory for dut files. + """ if request.config.option.dut_base_path: return request.config.option.dut_base_path @@ -425,3 +500,5 @@ def pytest_configure(config): config.addinivalue_line( "markers", "create_ref_part2: reference creation test that depends on create_ref references" ) + if config.option.param_file: + testconfig.PARAM_FILE = config.option.param_file diff --git a/tests/create_short_testvectors.py b/tests/create_short_testvectors.py new file mode 100755 index 0000000000..56c41d49b8 --- /dev/null +++ b/tests/create_short_testvectors.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 + +__copyright__ = \ +""" +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. +""" + +__doc__ = \ +""" +Create short (5sec) testvectors. +""" + +import sys +from pathlib import Path +from cut_pcm import cut_samples + +HERE = Path(__file__).parent.resolve() +TEST_VECTOR_DIR = str(HERE.joinpath("../scripts/testv").resolve()) + +NUM_CHANNELS = "4" # currently only FOA +CUT_FROM = "0.0" +CUT_LEN = "5.0" + + +def create_short_testvectors(): + for fs in ['48', '32', '16']: + in_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c.pcm" + cut_gain = "1.0" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut.pcm" + cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) + cut_gain = "16.0" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" + cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) + cut_gain = ".004" + cut_file = f"{TEST_VECTOR_DIR}/stvFOA{fs}c_cut_{cut_gain}.pcm" + cut_samples(in_file, cut_file, NUM_CHANNELS, fs + "000", CUT_FROM, CUT_LEN, cut_gain) + + +if __name__ == "__main__": + sys.exit(create_short_testvectors()) diff --git a/scripts/ivas_pytests/tests/cut_pcm.py b/tests/cut_pcm.py similarity index 99% rename from scripts/ivas_pytests/tests/cut_pcm.py rename to tests/cut_pcm.py index 62af257a73..938cb6fc43 100755 --- a/scripts/ivas_pytests/tests/cut_pcm.py +++ b/tests/cut_pcm.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 -__license__ = """ +__copyright__ = \ +""" (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, @@ -30,7 +31,8 @@ accordance with the laws of the Federal Republic of Germany excluding its confli the United Nations Convention on Contracts on the International Sales of Goods. """ -__doc__ = """ +__doc__ = \ +""" Script to cut samples from a 16-bit PCM file. USAGE : cut_pcm.py in_file_pcm out_file_pcm num_channels sample_rate start duration [gain] diff --git a/tests/requirements.txt b/tests/requirements.txt new file mode 100644 index 0000000000..2eb090f4fb --- /dev/null +++ b/tests/requirements.txt @@ -0,0 +1,4 @@ +pytest>=5.3.5 +pytest-xdist>=1.31.0 +scipy>=1.5.2 +numpy>=1.19.2 diff --git a/tests/run_pytests.py b/tests/run_pytests.py new file mode 100755 index 0000000000..1fc6614762 --- /dev/null +++ b/tests/run_pytests.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 + +__copyright__ = """ +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. +""" + +__doc__ = """ +Script to run the pytest tests. + +Test prerequisites are checked for and check failures are reported. +When prerequisites are met, the pytest test is executed. +""" + +import os +import sys +import argparse +import subprocess +import platform +from pathlib import Path + +BIN_EXT = ".exe" if platform.system() == "Windows" else "" +HERE = Path(__file__).parent.resolve() +DEFAULT_ENCODER_DUT = str(HERE.joinpath(f"../IVAS_cod{BIN_EXT}").resolve()) +DEFAULT_DECODER_DUT = str(HERE.joinpath(f"../IVAS_dec{BIN_EXT}").resolve()) +REFERENCE_DIR = str(HERE.joinpath("ref").resolve()) + + +def main(argv): + """ + Run the pytest tests. + """ + # check for python >= 3.7 + if sys.version_info[0] < 3 or sys.version_info[1] < 7: + sys.exit("This script is written for Python >= 3.7. Found: " + platform.python_version()) + + parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument( + "--numprocesses", + action="store", + default="auto", + help="Number of processes to use in pytest (default: auto)", + ) + parser.add_argument( + "--param_file", + action="store", + help="Restrict test run to test_param_file with specified param file.", + ) + + args = parser.parse_args(argv[1:]) + + # check for references + if not os.path.exists(REFERENCE_DIR): + sys.exit( + f"References directory {REFERENCE_DIR} not found.\nPlease create the references." + ) + + # check for DUT binaries + if not os.path.exists(DEFAULT_ENCODER_DUT) or not os.path.exists(DEFAULT_DECODER_DUT): + sys.exit( + f"Need DUT binaries {DEFAULT_ENCODER_DUT} and {DEFAULT_DECODER_DUT}.\n" + "Please create the binaries." + ) + + # run pytest + if platform.system() == "Windows": + cmd = ["pytest"] + else: + cmd = ["python3", "-m", "pytest"] + if args.param_file: + cmd += ["tests/test_param_file.py", "--param_file", args.param_file] + else: + cmd += ["tests"] + cmd += ["-n", args.numprocesses] + + result = subprocess.run(cmd, check=False) + return result.returncode + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/tests/test_param_file.py b/tests/test_param_file.py new file mode 100644 index 0000000000..730acd5c00 --- /dev/null +++ b/tests/test_param_file.py @@ -0,0 +1,460 @@ +__copyright__ = \ +""" +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. +""" + +__doc__ = \ +""" +Execute tests specified via a parameter file. +""" + +import os +import errno +import platform +from subprocess import run +import pytest +from cmp_custom import cmp_custom +from conftest import EncoderFrontend, DecoderFrontend +from testconfig import PARAM_FILE + + +VALID_DEC_OUTPUT_CONF = [ + "MONO", + "STEREO", + "5_1", + "7_1", + "5_1_2", + "5_1_4", + "7_1_4", + "FOA", + "HOA2", + "HOA3", + "BINAURAL", + "BINAURAL_ROOM", + "EXT", +] + +param_file_test_dict = {} +with open(PARAM_FILE, "r", encoding="UTF-8") as fp: + data = fp.read() + blocks = data.split("\n\n") + for block in blocks: + tag = "" + enc_opts = "" + dec_opts = "" + sim_opts = "" + for line in block.split("\n"): + if line.startswith("// "): + tag = line[3:] + if line.startswith("../IVAS_cod "): + enc_opts = line[12:] + if line.startswith("../IVAS_dec "): + dec_opts = line[12:] + if line.startswith("networkSimulator_g192 "): + sim_opts = line[22:] + if tag == "" or enc_opts == "" or dec_opts == "": + # no complete parameter set + continue + if tag in param_file_test_dict: + print("non-unique tag found - ignoring new entry") + continue + param_file_test_dict[tag] = (enc_opts, dec_opts, sim_opts) + + +def check_and_makedir(dir_path): + if not os.path.exists(dir_path): + try: + os.makedirs(dir_path) + except OSError as e: + if e.errno != errno.EEXIST: + raise # raises the error again + + +def convert_test_string_to_tag(test_string): + """ + Convert a test string (i.e. the test tag from the parameter file) to a tag string. + Example: + in: "DFT stereo at 13.2 kbps, 16kHz in, 16kHz out, DTX on, random FEC at 5%" + out: "DFT_stereo_at_13_2_kbps_16kHz_in_16kHz_out_DTX_on_random_FEC_at_5_" + """ + # replace certain characters by "_" or remove them + tag_str = "" + replace_chars = " %.-()" + remove_chars = "," + for char in test_string: + if char in replace_chars: + tag_str += "_" + elif char not in remove_chars: + tag_str += char + # replace double underscore by single one + tag_str = "_".join(tag_str.split("__")) + return tag_str + + +@pytest.mark.create_ref +@pytest.mark.parametrize("test_tag", list(param_file_test_dict.keys())) +def test_param_file_tests( + dut_encoder_frontend: EncoderFrontend, + dut_decoder_frontend: DecoderFrontend, + ref_encoder_path, + ref_decoder_path, + reference_path, + dut_base_path, + test_vector_path, + update_ref, + rootdir, + keep_files, + test_tag, +): + enc_opts, dec_opts, sim_opts = param_file_test_dict[test_tag] + + tag_str = convert_test_string_to_tag(test_tag) + + # evaluate encoder options + enc_split = enc_opts.split() + assert len(enc_split) >= 4 + + # replace "testv/" by test vector path + enc_split = [ + x.replace("testv", f"{test_vector_path}", 1) if x.startswith("testv/") else x + for x in enc_split + ] + + bitstream_file = enc_split.pop() + testv_file = enc_split.pop() + sampling_rate = int(enc_split.pop()) + bitrate = enc_split.pop() + + # bitrate can be a filename: remove leading "../" + if bitrate.startswith("../"): + bitrate = bitrate[3:] + + testv_base = testv_file.split("/")[-1] + if testv_base.endswith(".pcm"): + testv_base = testv_base[:-4] + + assert bitstream_file == "bit" + # in the parameter file, only "bit" is used as bitstream file name + # -> construct bitstream filename + bitstream_file = f"{testv_base}_{tag_str}.192" + + encode( + dut_encoder_frontend, + ref_encoder_path, + reference_path, + dut_base_path, + bitrate, + sampling_rate, + testv_file, + bitstream_file, + enc_split, + update_ref, + ) + + # check for networkSimulator_g192 command line + if sim_opts != "": + sim_split = sim_opts.split() + assert len(sim_split) == 6, "networkSimulator_g192 binary expects 6 parameters" + # [sim_profile, sim_input, sim_output, sim_trace, sim_nFPP, sim_offset] = sim_split + if sim_split[0].startswith(("../")): + # remove leading "../" + sim_split[0] = sim_split[0][3:] + assert sim_split[1] == "bit" + # in the parameter file, only "bit" is used as bitstream file name + # -> re-use bitstream filename from encoder call + sim_split[1] = bitstream_file + assert sim_split[2] == "netsimoutput" + # in the parameter file, only "netsimoutput" is used as netsim output file name + # -> construct netsim output file name + netsim_outfile = f"{testv_base}_{tag_str}.netsimout" + sim_split[2] = netsim_outfile + assert sim_split[3] == "tracefile_sim" + # in the parameter file, only "tracefile_sim" is used as trace output file name + # -> construct trace output file name + netsim_trace_outfile = f"{testv_base}_{tag_str}.netsimtrace" + sim_split[3] = netsim_trace_outfile + simulate( + reference_path, + dut_base_path, + sim_split, + update_ref, + rootdir, + ) + + # evaluate decoder options + dec_split = dec_opts.split() + assert len(dec_split) >= 3 + + # replace "testv/" by test vector path + dec_split = [ + x.replace("testv", f"{test_vector_path}", 1) if x.startswith("testv/") else x + for x in dec_split + ] + # remove leading "../" + dec_split = [x[3:] if x.startswith("../") else x for x in dec_split] + + output_file = dec_split.pop() + bitstream_file_dec = dec_split.pop() + sampling_rate = int(dec_split.pop()) + if len(dec_split) > 0: + output_config = dec_split.pop() + if output_config.upper() not in VALID_DEC_OUTPUT_CONF: + if not output_config.endswith(".txt"): + # must be EVS tests with additional parameters - put param back + dec_split.append(output_config) + output_config = "" + else: + output_config = "" + + output_config_name = output_config + if "/" in output_config: + # the output config is a file + output_config_name = os.path.splitext(os.path.basename(output_config))[0] + + tracefile_dec = "" + if sim_opts != "": + assert bitstream_file_dec == "netsimoutput" + # in the parameter file, only "netsimoutput" is used as bitstream file name + # -> re-use netsim_outfile + bitstream_file = netsim_outfile + tracefile_dec = f"{testv_base}_{tag_str}.dectrace" + else: + assert bitstream_file_dec == "bit" + # in the parameter file, only "bit" is used as bitstream file name + # -> re-use bitstream filename from encoder call + + # the output file is not the real output filename + # -> construct output filename + if output_config != "": + output_file = f"{testv_base}_{tag_str}.dec.{output_config_name}.pcm" + else: + # EVS decoder command lines do not have an output_config: use "MONO" in the output filename + output_file = f"{testv_base}_{tag_str}.dec.MONO.pcm" + + decode( + dut_decoder_frontend, + ref_decoder_path, + reference_path, + dut_base_path, + output_config, + sampling_rate, + bitstream_file, + output_file, + dec_split, + update_ref, + tracefile_dec, + ) + + # compare + if update_ref in [0, 2]: + compare( + f"{dut_base_path}/param_file/dec/{output_file}", + f"{reference_path}/param_file/dec/{output_file}", + ) + + # remove DUT output files when test result is OK (to save disk space) + if not keep_files: + os.remove(f"{dut_base_path}/param_file/enc/{bitstream_file}") + os.remove(f"{dut_base_path}/param_file/dec/{output_file}") + if sim_opts != "": + os.remove(f"{dut_base_path}/param_file/enc/{testv_base}_{tag_str}.192") + os.remove(f"{dut_base_path}/param_file/enc/{netsim_trace_outfile}") + os.remove(f"{dut_base_path}/param_file/dec/{tracefile_dec}") + + +def encode( + encoder_frontend, + ref_encoder_path, + reference_path, + dut_base_path, + bitrate, + sampling_rate, + testv_file, + bitstream_file, + enc_opts_list, + update_ref, +): + """ + Call REF and/or DUT encoder. + """ + # directories + dut_out_dir = f"{dut_base_path}/param_file/enc" + ref_out_dir = f"{reference_path}/param_file/enc" + + ref_out_file = f"{ref_out_dir}/{bitstream_file}" + dut_out_file = f"{dut_out_dir}/{bitstream_file}" + + if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): + check_and_makedir(ref_out_dir) + # call REF encoder + assert ref_encoder_path + ref_encoder = EncoderFrontend(ref_encoder_path, "REF") + ref_encoder.run( + bitrate, + sampling_rate, + testv_file, + ref_out_file, + add_option_list=enc_opts_list, + ) + + if update_ref in [0, 2]: + check_and_makedir(dut_out_dir) + # call DUT encoder + encoder_frontend.run( + bitrate, + sampling_rate, + testv_file, + dut_out_file, + add_option_list=enc_opts_list, + ) + + +def simulate( + reference_path, + dut_base_path, + sim_opts_list, + update_ref, + rootdir, +): + """ + Call network simulator on REF and/or DUT encoder output. + """ + # directories + dut_out_dir = f"{dut_base_path}/param_file/enc" + ref_out_dir = f"{reference_path}/param_file/enc" + + netsim_infile = sim_opts_list[1] + netsim_outfile = sim_opts_list[2] + netsim_tracefile = sim_opts_list[3] + ref_out_file = f"{ref_out_dir}/{netsim_outfile}" + + if platform.system() == "Windows": + netsim = [os.path.join(rootdir, "scripts", "tools", "Win32", "networkSimulator_g192.exe")] + elif platform.system() == "Linux": + # there is no Linux binary available -> use the Win32 binary via wine + netsim = [ + "wine", + os.path.join(rootdir, "scripts", "tools", "Win32", "networkSimulator_g192.exe"), + ] + elif platform.system() == "Darwin": + netsim = [os.path.join(rootdir, "scripts", "tools", "Darwin", "networkSimulator_g192")] + + if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): + # call network simulator on REF encoder output + cmd_opts = sim_opts_list + cmd_opts[1] = f"{ref_out_dir}/{netsim_infile}" + cmd_opts[2] = f"{ref_out_dir}/{netsim_outfile}" # ref_out_file + cmd_opts[3] = f"{ref_out_dir}/{netsim_tracefile}" + run(netsim + cmd_opts, check=False) + + if update_ref in [0, 2]: + # call network simulator on DUT encoder output + cmd_opts = sim_opts_list + cmd_opts[1] = f"{dut_out_dir}/{netsim_infile}" + cmd_opts[2] = f"{dut_out_dir}/{netsim_outfile}" # dut_out_file + cmd_opts[3] = f"{dut_out_dir}/{netsim_tracefile}" + run(netsim + cmd_opts, check=False) + + +def decode( + decoder_frontend, + ref_decoder_path, + reference_path, + dut_base_path, + output_config, + sampling_rate, + bitstream_file, + output_file, + dec_opts_list, + update_ref, + tracefile_dec, +): + """ + Call REF and/or DUT decoder. + """ + # directories + dut_out_dir = f"{dut_base_path}/param_file/dec" + ref_out_dir = f"{reference_path}/param_file/dec" + + dut_in_file = f"{dut_base_path}/param_file/enc/{bitstream_file}" + ref_in_file = f"{reference_path}/param_file/enc/{bitstream_file}" + dut_out_file = f"{dut_out_dir}/{output_file}" + ref_out_file = f"{ref_out_dir}/{output_file}" + + if update_ref == 1 or update_ref == 2 and not os.path.exists(ref_out_file): + check_and_makedir(ref_out_dir) + add_option_list = dec_opts_list + if tracefile_dec != "": + add_option_list = [ + x if x != "tracefile_dec" else f"{ref_out_dir}/{tracefile_dec}" + for x in dec_opts_list + ] + # call REF decoder + assert ref_decoder_path + ref_decoder = DecoderFrontend(ref_decoder_path, "REF") + ref_decoder.run( + output_config, + sampling_rate, + ref_in_file, + ref_out_file, + add_option_list=add_option_list, + ) + + if update_ref in [0, 2]: + check_and_makedir(dut_out_dir) + add_option_list = dec_opts_list + if tracefile_dec != "": + add_option_list = [ + x if x != "tracefile_dec" else f"{dut_out_dir}/{tracefile_dec}" + for x in dec_opts_list + ] + # call DUT decoder + decoder_frontend.run( + output_config, + sampling_rate, + dut_in_file, + dut_out_file, + add_option_list=add_option_list, + ) + + +def compare( + pcm_file_1, + pcm_file_2, +): + """ + Compare two PCM files. + Currently, both PCM files are treated like mono files. + This is just fine when checking for bit-exactness. + More advanced comparisons are possible and might come with a future update. + """ + sample_size = "2" # 16-bit samples + tolerance = "0" # zero tolerance for BE testing + cmp_result, reason = cmp_custom(pcm_file_1, pcm_file_2, sample_size, tolerance) + assert cmp_result == 0, reason diff --git a/tests/test_sba_bs_dec_plc.py b/tests/test_sba_bs_dec_plc.py new file mode 100644 index 0000000000..58be07ec33 --- /dev/null +++ b/tests/test_sba_bs_dec_plc.py @@ -0,0 +1,189 @@ +__copyright__ = \ +""" +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. +""" + +__doc__ = \ +""" +Execute SBA decoder tests using different PLC patterns. +""" + +import os +import errno +import pytest + +from cmp_custom import cmp_custom +from conftest import DecoderFrontend + +#params +tag_list = ['stvFOA'] +plc_patterns = ['PLperc12mblen5', 'PLperc40mblen50', 'PLperc42mblen2'] +dtx_set = ['0', '1'] +ivas_br_list = ['32000', '64000', '96000', '256000'] +sampling_rate_list = ['48', '32', '16'] +agc_list = [0, 1] + +AbsTol = '3' + + +def check_and_makedir(dir_path): + if not os.path.exists(dir_path): + try: + os.makedirs(dir_path) + except OSError as e: + if e.errno != errno.EEXIST: + raise # raises the error again + + +# assumption: +# - the needed reference bitstreams are created by test_sba_enc_system +# -> reference bitstreams are not any longer created as part of this test +# -> the parameters of this test (except additional parameter plc_pattern) need to be a subset of the parameters in test_sba_enc_system +# -> the reference generation for this test (reference decoder output) needs to be done after completion of test_sba_enc_system +# -> therefore the marker create_ref_part2 +@pytest.mark.create_ref_part2 +@pytest.mark.parametrize("ivas_br", ivas_br_list) +@pytest.mark.parametrize("dtx", dtx_set) +@pytest.mark.parametrize("tag", tag_list) +@pytest.mark.parametrize("plc_pattern", plc_patterns) +@pytest.mark.parametrize("fs", sampling_rate_list) +@pytest.mark.parametrize("agc", agc_list) +def test_sba_plc_system( + dut_decoder_frontend: DecoderFrontend, + test_vector_path, + reference_path, + dut_base_path, + ref_decoder_path, + update_ref, + keep_files, + ivas_br, + dtx, + tag, + plc_pattern, + fs, + agc +): + tag = tag + fs + 'c' + + #dec + sba_dec_plc( + dut_decoder_frontend, + test_vector_path, + reference_path, + dut_base_path, + ref_decoder_path, + tag, + fs, + ivas_br, + dtx, + plc_pattern, + update_ref, + agc, + keep_files, + ) + + +######################################################### +############ test function ############################## +def sba_dec_plc( + decoder_frontend, + test_vector_path, + reference_path, + dut_base_path, + ref_decoder_path, + tag, + sampling_rate, + ivas_br, + dtx, + plc_pattern, + update_ref, + agc, + keep_files, +): + + ######### run cmd ##################################### + + tag_out = f"{tag}_ivasbr{ivas_br[:-3]}k_DTX{dtx}" + if agc == 1: + tag_out += '_AGC1' + plc_tag_out = f"{tag_out}_{plc_pattern}" + + dut_out_dir = f"{dut_base_path}/sba_bs/raw" + ref_out_dir = f"{reference_path}/sba_bs/raw" + + check_and_makedir(dut_out_dir) + check_and_makedir(ref_out_dir) + + plc_file = f"{test_vector_path}/{plc_pattern}.g192" + ref_in_pkt = f"{reference_path}/sba_bs/pkt/{tag_out}.pkt" + ref_in_pkt_dutenc = f"{reference_path}/sba_bs/pkt/{tag_out}_dutenc.pkt" + + dut_out_raw = f"{dut_out_dir}/{plc_tag_out}.raw" + ref_out_raw = f"{ref_out_dir}/{plc_tag_out}.raw" + + if ref_decoder_path: + ref_decoder = DecoderFrontend(ref_decoder_path, "REF") + + # call REF decoder + ref_decoder.run( + "FOA", + sampling_rate, + ref_in_pkt, + ref_out_raw, + plc_file=plc_file, + ) + + if update_ref == 0: + # call DUT decoder + decoder_frontend.run( + "FOA", + sampling_rate, + ref_in_pkt_dutenc, + dut_out_raw, + plc_file=plc_file, + ) + + ######### compare cmd ##################################### + + end_skip_samples = '0' + + cmp_result, reason = cmp_custom( + dut_out_raw, + ref_out_raw, + "2", + AbsTol, + end_skip_samples + ) + + # report compare result + assert cmp_result == 0, reason + + # remove DUT output files when test result is OK (to save disk space) + if not keep_files: + os.remove(dut_out_raw) diff --git a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py b/tests/test_sba_bs_enc.py similarity index 71% rename from scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py rename to tests/test_sba_bs_enc.py index df5d018ce5..95cfea1d19 100644 --- a/scripts/ivas_pytests/tests/system_tests/test_spar_foa_bs_enc.py +++ b/tests/test_sba_bs_enc.py @@ -1,47 +1,44 @@ +__copyright__ = \ """ - (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository. All Rights Reserved. - - This software is protected by copyright law and by international treaties. - The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, - Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., - Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, - Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other - contributors to this repository retain full ownership rights in their respective contributions in - the software. This notice grants no license of any kind, including but not limited to patent - license, nor is any license granted by implication, estoppel or otherwise. - - Contributors are required to enter into the IVAS codec Public Collaboration agreement before making - contributions. - - This software is provided "AS IS", without any express or implied warranties. The software is in the - development stage. It is intended exclusively for experts who have experience with such software and - solely for the purpose of inspection. All implied warranties of non-infringement, merchantability - and fitness for a particular purpose are hereby disclaimed and excluded. - - Any dispute, controversy or claim arising under or in relation to providing this software shall be - submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in - accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and - the United Nations Convention on Contracts on the International Sales of Goods. +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. """ +__doc__ = \ """ Test file to run C encoder and decoder code. The outputs are compared with C generated references. """ import os -import pytest import errno -import shutil -import sys +import pytest -sys.path.append('scripts/ivas_pytests/') -sys.path.append('scripts/ivas_pytests/tests/') -from il2mm import il2mm from cmp_custom import cmp_custom from cut_pcm import cut_samples from conftest import EncoderFrontend, DecoderFrontend @@ -67,7 +64,6 @@ agc_list = [0, 1] sample_rate_bw_idx_list = [('48', 'SWB'), ('48', 'WB'), ('32', 'WB')] AbsTol = '4' -ch_count_foa = 4 def check_and_makedir(dir_path): @@ -86,15 +82,16 @@ def check_and_makedir(dir_path): def test_bypass_enc( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, + keep_files, tag, fs, - bypass + bypass, ): if update_ref == 1 and bypass == 1: pytest.skip() @@ -108,9 +105,9 @@ def test_bypass_enc( output_config = "FOA" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, @@ -126,13 +123,12 @@ def test_bypass_enc( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -140,7 +136,8 @@ def test_bypass_enc( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) @@ -150,20 +147,21 @@ def test_bypass_enc( @pytest.mark.parametrize("tag", tag_list) @pytest.mark.parametrize("fs", sample_rate_list) @pytest.mark.parametrize("agc", agc_list) -def test_spar_foa_enc_system( +def test_sba_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, + keep_files, ivas_br, dtx, tag, fs, - agc + agc, ): tag = tag + fs + 'c' max_bw = "FB" @@ -172,13 +170,14 @@ def test_spar_foa_enc_system( output_config = "FOA" if agc == 1: cut_gain = "16.0" + elif dtx == '1': + cut_gain = ".004" else: - cut_gain = "1.0" - + cut_gain = "1.0" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, @@ -196,13 +195,12 @@ def test_spar_foa_enc_system( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -210,7 +208,8 @@ def test_spar_foa_enc_system( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) @pytest.mark.create_ref @@ -219,14 +218,15 @@ def test_spar_foa_enc_system( def test_spar_hoa2_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, + keep_files, ivas_br, - tag + tag, ): fs = '48' dtx = '0' @@ -239,9 +239,9 @@ def test_spar_hoa2_enc_system( output_config = "HOA2" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, @@ -258,13 +258,12 @@ def test_spar_hoa2_enc_system( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -272,7 +271,8 @@ def test_spar_hoa2_enc_system( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) @pytest.mark.create_ref @@ -281,14 +281,15 @@ def test_spar_hoa2_enc_system( def test_spar_hoa3_enc_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, + keep_files, ivas_br, - tag + tag, ): fs = '48' dtx = '0' @@ -301,9 +302,9 @@ def test_spar_hoa3_enc_system( output_config = "HOA3" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, @@ -320,13 +321,12 @@ def test_spar_hoa3_enc_system( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -334,7 +334,8 @@ def test_spar_hoa3_enc_system( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) @pytest.mark.create_ref @@ -342,19 +343,20 @@ def test_spar_hoa3_enc_system( @pytest.mark.parametrize("dtx", dtx_set) @pytest.mark.parametrize("tag", tag_list_bw_force) @pytest.mark.parametrize("sample_rate_bw_idx", sample_rate_bw_idx_list) -def test_spar_foa_enc_BWforce_system( +def test_sba_enc_BWforce_system( dut_encoder_frontend: EncoderFrontend, dut_decoder_frontend: DecoderFrontend, - data_system_tests_path, + test_vector_path, reference_path, dut_base_path, ref_encoder_path, ref_decoder_path, update_ref, + keep_files, ivas_br, dtx, tag, - sample_rate_bw_idx + sample_rate_bw_idx, ): fs = sample_rate_bw_idx[0] bw = sample_rate_bw_idx[1] @@ -365,9 +367,9 @@ def test_spar_foa_enc_BWforce_system( output_config = "FOA" # enc - spar_foa_enc( + sba_enc( dut_encoder_frontend, - data_system_tests_path, + test_vector_path, ref_encoder_path, reference_path, dut_base_path, @@ -383,13 +385,12 @@ def test_spar_foa_enc_BWforce_system( ) # dec - spar_foa_dec( + sba_dec( dut_decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, - ch_count_foa, fs, ivas_br, dtx, @@ -397,13 +398,14 @@ def test_spar_foa_enc_BWforce_system( bypass, agc, output_config, - update_ref + update_ref, + keep_files, ) ######################################################### ############ test function ############################## -def spar_foa_enc( +def sba_enc( encoder_frontend, test_vector_path, ref_encoder_path, @@ -424,8 +426,8 @@ def spar_foa_enc( ): ######### run cmd ##################################### - dut_out_dir = f"{dut_base_path}/spar_foa_bs/pkt" - ref_out_dir = f"{reference_path}/spar_foa_bs/pkt" + dut_out_dir = f"{dut_base_path}/sba_bs/pkt" + ref_out_dir = f"{reference_path}/sba_bs/pkt" check_and_makedir(dut_out_dir) check_and_makedir(ref_out_dir) @@ -512,13 +514,12 @@ def spar_foa_enc( ) -def spar_foa_dec( +def sba_dec( decoder_frontend, ref_decoder_path, reference_path, dut_base_path, tag, - ch_count, sampling_rate, ivas_br, dtx, @@ -527,7 +528,7 @@ def spar_foa_dec( agc, output_config, update_ref, - keep_files=False + keep_files, ): ######### run cmd ##################################### @@ -549,11 +550,14 @@ def spar_foa_dec( # to avoid conflicting names in case of parallel test execution, differentiate all cases long_tag_ext = f"_AGC{agc}_pca{bypass}" - dut_out_dir = f"{dut_base_path}/spar_foa_bs/raw/{tag_out}{long_tag_ext}" - ref_out_dir = f"{reference_path}/spar_foa_bs/raw/{tag_out}{short_tag_ext}" + dut_out_dir = f"{dut_base_path}/sba_bs/raw" + ref_out_dir = f"{reference_path}/sba_bs/raw" - dut_in_pkt = f"{dut_base_path}/spar_foa_bs/pkt/{tag_out}{long_tag_ext}.pkt" - ref_in_pkt = f"{reference_path}/spar_foa_bs/pkt/{tag_out}{short_tag_ext}.pkt" + dut_in_pkt = f"{dut_base_path}/sba_bs/pkt/{tag_out}{long_tag_ext}.pkt" + ref_in_pkt = f"{reference_path}/sba_bs/pkt/{tag_out}{short_tag_ext}.pkt" + + dut_out_raw = f"{dut_out_dir}/{tag_out}{long_tag_ext}.raw" + ref_out_raw = f"{ref_out_dir}/{tag_out}{short_tag_ext}.raw" check_and_makedir(dut_out_dir) check_and_makedir(ref_out_dir) @@ -566,48 +570,34 @@ def spar_foa_dec( output_config, sampling_rate, ref_in_pkt, - f"{ref_out_dir}/out.raw", + ref_out_raw, ) - # convert REF interleaved to multi-mono - il2mm(f"{ref_out_dir}/out.raw", ch_count, b_delete=not keep_files) - if update_ref == 0: # call DUT decoder decoder_frontend.run( output_config, sampling_rate, dut_in_pkt, - f"{dut_out_dir}/out.raw", + dut_out_raw, ) - il2mm(f"{dut_out_dir}/out.raw", ch_count, b_delete=not keep_files) - ######### compare cmd ##################################### end_skip_samples = '0' - test_fail = False - for count in range(ch_count): - ch_id = str(count + 1) - - # TEST - fsize1 = os.path.getsize(f"{dut_out_dir}/out{ch_id}ch.raw") - fsize2 = os.path.getsize(f"{ref_out_dir}/out{ch_id}ch.raw") - print(f"Want to compare {dut_out_dir}/out{ch_id}ch.raw ({fsize1} bytes) with {ref_out_dir}/out{ch_id}ch.raw ({fsize2} bytes)") - if cmp_custom( - f"{dut_out_dir}/out{ch_id}ch.raw", - f"{ref_out_dir}/out{ch_id}ch.raw", - "2", - AbsTol, - end_skip_samples - ) != 0: - test_fail = True - - ##File removal## + cmp_result, reason = cmp_custom( + dut_out_raw, + ref_out_raw, + "2", + AbsTol, + end_skip_samples + ) + + # report compare result + assert cmp_result == 0, reason + + # remove DUT output files when test result is OK (to save disk space) if not keep_files: os.remove(dut_in_pkt) - shutil.rmtree(dut_out_dir, ignore_errors=True) - - ##report failure - assert not test_fail + os.remove(dut_out_raw) diff --git a/tests/testconfig.py b/tests/testconfig.py new file mode 100644 index 0000000000..f4827a004f --- /dev/null +++ b/tests/testconfig.py @@ -0,0 +1,37 @@ +__copyright__ = \ +""" +(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository. All Rights Reserved. + +This software is protected by copyright law and by international treaties. +The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, +Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., +Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, +Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other +contributors to this repository retain full ownership rights in their respective contributions in +the software. This notice grants no license of any kind, including but not limited to patent +license, nor is any license granted by implication, estoppel or otherwise. + +Contributors are required to enter into the IVAS codec Public Collaboration agreement before making +contributions. + +This software is provided "AS IS", without any express or implied warranties. The software is in the +development stage. It is intended exclusively for experts who have experience with such software and +solely for the purpose of inspection. All implied warranties of non-infringement, merchantability +and fitness for a particular purpose are hereby disclaimed and excluded. + +Any dispute, controversy or claim arising under or in relation to providing this software shall be +submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in +accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and +the United Nations Convention on Contracts on the International Sales of Goods. +""" + +__doc__ = \ +""" +To configure test modules. +""" + +PARAM_FILE = "scripts/config/self_test.prm" -- GitLab From 10f83c6d12e95a566e17905b502d161afb5f006a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 7 Oct 2022 09:53:40 +0200 Subject: [PATCH 190/479] [cleanup] accept FIX_I106_TDREND_5MS --- lib_com/ivas_cnst.h | 2 - lib_com/ivas_prot.h | 13 --- lib_com/options.h | 1 - lib_dec/ivas_objectRenderer.c | 155 --------------------------- lib_dec/ivas_objectRenderer_hrFilt.c | 38 ------- lib_dec/ivas_objectRenderer_sfx.c | 16 --- 6 files changed, 225 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index b75fdeca54..a83611c025 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -842,9 +842,7 @@ typedef enum { *----------------------------------------------------------------------------------*/ // VE: this should be renamed to e.g. N_SPATIAL_SUBFRAMES #define MAX_PARAM_SPATIAL_SUBFRAMES 4 /* Maximum number of subframes for parameteric spatial coding */ -#ifdef FIX_I106_TDREND_5MS #define L_SPATIAL_SUBFR_48k (L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES) -#endif /*----------------------------------------------------------------------------------* diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 60f44e22a3..ace66b1a23 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4956,21 +4956,12 @@ void TDREND_HRFILT_SetFiltSet( #endif ivas_error TDREND_REND_RenderSourceHRFilt( -#ifdef FIX_I106_TDREND_5MS TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#else - const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif -#ifdef FIX_I106_TDREND_5MS float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ const int16_t subframe_length, /* i : Subframe length in use */ -#else - float output_buf[][L_FRAME48k], /* o : Output buffer */ - const int16_t output_frame, /* i : Output frame length in use */ -#endif const int32_t output_Fs /* i : Output sample rate */ ); @@ -5110,11 +5101,7 @@ void TDREND_SFX_SpatBin_SetParams( void TDREND_SFX_SpatBin_Execute_Main( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters handle */ const float *InBuffer_p, /* i : Input buffer */ -#ifdef FIX_I106_TDREND_5MS const int16_t subframe_length, /* i : subframe length */ -#else - const int16_t output_frame, /* i : frame length */ -#endif float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ diff --git a/lib_com/options.h b/lib_com/options.h index fbfcb6f08d..4aab5d6b28 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,6 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ #define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ -#define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ diff --git a/lib_dec/ivas_objectRenderer.c b/lib_dec/ivas_objectRenderer.c index f4df437487..f74a25d1da 100644 --- a/lib_dec/ivas_objectRenderer.c +++ b/lib_dec/ivas_objectRenderer.c @@ -46,16 +46,10 @@ * Local function prototypes *---------------------------------------------------------------------*/ -#ifdef FIX_I106_TDREND_5MS static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t subframe_length, const int32_t output_Fs, const int16_t subframe_idx ); -#else -static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t output_frame, const int32_t output_Fs ); -#endif static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); -#ifdef FIX_I106_TDREND_5MS static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, const Quaternion *headPosition ); static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t numSources, const IVAS_FORMAT in_format, const ISM_METADATA_HANDLE *hIsmMetaData, float output[][L_FRAME48k] ); -#endif /*---------------------------------------------------------------------* * ivas_td_binaural_open() @@ -227,120 +221,20 @@ void ObjRenderIVASFrame( const int16_t output_frame /* i : output frame length */ ) { -#ifndef FIX_I106_TDREND_5MS - TDREND_DirAtten_t *DirAtten_p; - int16_t nS; - float Pos[3]; - float Dir[3]; - float FrontVec[3]; - float UpVec[3]; - float Rmat[3][3]; - int16_t c_indx; -#else int16_t subframe_length; -#endif int16_t subframe_idx; float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; -#ifdef FIX_I106_TDREND_5MS subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; -#else - DirAtten_p = st_ivas->hBinRendererTd->DirAtten_p; - - /* Update the listener's location/orientation */ - /* Listener at the origin */ - Pos[0] = 0.0f; - Pos[1] = 0.0f; - Pos[2] = 0.0f; - - if ( st_ivas->hHeadTrackData != NULL ) - { - /* Obtain head rotation matrix */ - QuatToRotMat( st_ivas->hHeadTrackData->Quaternions[0], Rmat ); - /* Apply rotation matrix to looking vector [1;0;0] */ - FrontVec[0] = Rmat[0][0]; - FrontVec[1] = Rmat[0][1]; - FrontVec[2] = Rmat[0][2]; - /* Apply rotation matrix to up vector [0;0;1] */ - UpVec[0] = Rmat[2][0]; - UpVec[1] = Rmat[2][1]; - UpVec[2] = Rmat[2][2]; - } - else - { - /* Oriented with looking vector along the x axis */ - FrontVec[0] = 1.0f; - FrontVec[1] = 0.0f; - FrontVec[2] = 0.0f; - /* Oriented with up vector along the z axis */ - UpVec[0] = 0.0f; - UpVec[1] = 0.0f; - UpVec[2] = 1.0f; - } - - /* Set the listener position and orientation:*/ - TDREND_MIX_LIST_SetPos( st_ivas->hBinRendererTd, Pos ); - TDREND_MIX_LIST_SetOrient( st_ivas->hBinRendererTd, FrontVec, UpVec ); - - /* For each source, write the frame data to the source object*/ - c_indx = 0; - for ( nS = 0; nS < st_ivas->nchan_transport; nS++ ) - { - if ( !( st_ivas->ivas_format == MC_FORMAT && nS == LFE_CHANNEL ) ) /* Skip LFE for MC */ - { - st_ivas->hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; - st_ivas->hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; - c_indx++; - } - - if ( st_ivas->ivas_format == ISM_FORMAT ) - { - - /* Update the source positions */ - /* Source position and direction */ - Pos[0] = cosf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ) * cosf( st_ivas->hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[1] = cosf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ) * sinf( st_ivas->hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[2] = sinf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ); - Dir[0] = 1.0f; - Dir[1] = 0.0f; - Dir[2] = 0.0f; - - /* Source directivity info */ - DirAtten_p->ConeInnerAngle = 360.0f; - DirAtten_p->ConeOuterAngle = 360.0f; - DirAtten_p->ConeOuterGain = 1.0f; - - TDREND_MIX_SRC_SetPos( st_ivas->hBinRendererTd, nS, Pos ); - TDREND_MIX_SRC_SetDir( st_ivas->hBinRendererTd, nS, Dir ); - TDREND_MIX_SRC_SetDirAtten( st_ivas->hBinRendererTd, nS, DirAtten_p ); - TDREND_MIX_SRC_SetPlayState( st_ivas->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); - } - } -#endif if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { -#ifdef FIX_I106_TDREND_5MS if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on && ( st_ivas->ini_frame == 0 ) ) { ivas_reverb_open( &st_ivas->hCrend->hReverb, st_ivas->transport_config, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); } -#else - if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) - { - if ( st_ivas->ini_frame == 0 ) - { - ivas_reverb_open( &st_ivas->hCrend->hReverb, st_ivas->transport_config, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); - } - for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) - { - ivas_reverb_process( st_ivas->hCrend->hReverb, st_ivas->transport_config, 0, output, reverb_signal, subframe_idx ); - } - } -#endif } -#ifdef FIX_I106_TDREND_5MS /* Update object position(s) */ TDREND_Update_object_positions( st_ivas->hBinRendererTd, st_ivas->nchan_transport, st_ivas->ivas_format, st_ivas->hIsmMetaData, output ); @@ -359,10 +253,6 @@ void ObjRenderIVASFrame( /* Render subframe */ TDREND_GetMix( st_ivas->hBinRendererTd, output, subframe_length, st_ivas->hDecoderConfig->output_Fs, subframe_idx ); } -#else - /* Call the renderer */ - TDREND_GetMix( st_ivas->hBinRendererTd, output, output_frame, st_ivas->hDecoderConfig->output_Fs ); -#endif if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { @@ -378,30 +268,17 @@ void ObjRenderIVASFrame( } -#ifdef FIX_I106_TDREND_5MS /*---------------------------------------------------------------------* * TDREND_GetMix() * * Render one 5 ms subframe from the mixer *---------------------------------------------------------------------*/ -#else -/*---------------------------------------------------------------------* - * TDREND_GetMix() - * - * Render one output frame from the mixer - *---------------------------------------------------------------------*/ -#endif static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ float output[][L_FRAME48k], /* i/o: ISm object synth / rendered output in 0,1 */ -#ifdef FIX_I106_TDREND_5MS const int16_t subframe_length, /* i/o: subframe length */ const int32_t output_Fs, /* i : Output sampling rate */ const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ -#else - const int16_t output_frame, /* i/o: Output frame length */ - const int32_t output_Fs /* i : Output sampling rate */ -#endif ) { int16_t i; @@ -409,22 +286,12 @@ static ivas_error TDREND_GetMix( TDREND_SRC_SPATIAL_t *SrcSpatial_p; TDREND_SRC_REND_t *SrcRend_p; ivas_error error; -#ifdef FIX_I106_TDREND_5MS float output_buf[2][L_SPATIAL_SUBFR_48k]; /* Temp buffer for left/right rendered signal */ -#else - float output_buf[2][L_FRAME48k]; /* Temp buffer for left/right rendered signal */ -#endif error = IVAS_ERR_OK; -#ifdef FIX_I106_TDREND_5MS /* Clear the output buffer to accumulate rendered sources */ set_f( output_buf[0], 0.0f, subframe_length ); set_f( output_buf[1], 0.0f, subframe_length ); -#else - /* Zero out the output buffer since objects are accumulated. */ - set_f( output_buf[0], 0.0f, output_frame ); - set_f( output_buf[1], 0.0f, output_frame ); -#endif /* Create the mix */ /* Loop through the source list and render each source */ @@ -443,39 +310,19 @@ static ivas_error TDREND_GetMix( /* Render source if needed */ if ( ( SrcRend_p->InputAvailable == TRUE ) && ( SrcRend_p->PlayStatus == TDREND_PLAYSTATUS_PLAYING ) ) { -#ifdef FIX_I106_TDREND_5MS #ifdef TDREND_HRTF_TABLE_METHODS error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, subframe_length, output_Fs ); #else error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, subframe_length, output_Fs ); -#endif -#else -#ifdef TDREND_HRTF_TABLE_METHODS - error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, output_frame, output_Fs ); -#else - error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, output_frame, output_Fs ); -#endif #endif } -#ifndef FIX_I106_TDREND_5MS - SrcRend_p->InputAvailable = FALSE; -#endif } /* Populate output variable */ -#ifdef FIX_I106_TDREND_5MS mvr2r( output_buf[0], output[0] + subframe_idx * subframe_length, subframe_length ); /* Left */ mvr2r( output_buf[1], output[1] + subframe_idx * subframe_length, subframe_length ); /* Right */ -#else - mvr2r( output_buf[0], output[0], output_frame ); /* Left */ - mvr2r( output_buf[1], output[1], output_frame ); /* Right */ -#endif -#ifdef FIX_I106_TDREND_5MS /* Clear the PoseUpdated and Source position update flags */ -#else - /* Clear the mixer update flags */ -#endif TDREND_Clear_Update_flags( hBinRendererTd ); return error; @@ -504,7 +351,6 @@ static void TDREND_Clear_Update_flags( return; } -#ifdef FIX_I106_TDREND_5MS /*---------------------------------------------------------------------* * TDREND_Update_object_positions() * @@ -620,4 +466,3 @@ static void TDREND_Update_listener_orientation( return; } -#endif diff --git a/lib_dec/ivas_objectRenderer_hrFilt.c b/lib_dec/ivas_objectRenderer_hrFilt.c index 404be200e2..e04c5f3716 100644 --- a/lib_dec/ivas_objectRenderer_hrFilt.c +++ b/lib_dec/ivas_objectRenderer_hrFilt.c @@ -343,42 +343,21 @@ void TDREND_HRFILT_SetFiltSet( --------------------------------------------------------------------*/ ivas_error TDREND_REND_RenderSourceHRFilt( -#ifdef FIX_I106_TDREND_5MS TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#else - const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif -#ifdef FIX_I106_TDREND_5MS float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ const int16_t subframe_length, /* i : Subframe length in use */ -#else - float output_buf[][L_FRAME48k], /* o : Output buffer */ - const int16_t output_frame, /* i : Output frame length in use */ -#endif const int32_t output_Fs /* i : Output sample rate */ ) { TDREND_SRC_REND_t *SrcRend_p; -#ifdef FIX_I106_TDREND_5MS const float *InFrame_nIC_p; -#else - int16_t nS; - float *InFrame_nIC_p; -#endif int16_t NoOfUsedInputSamples, NoOfDeliveredOutputSamples; -#ifdef FIX_I106_TDREND_5MS float LeftOutputFrame[L_SPATIAL_SUBFR_48k]; float RightOutputFrame[L_SPATIAL_SUBFR_48k]; -#else - float LeftOutputFrame[L_FRAME48k]; - float RightOutputFrame[L_FRAME48k]; - float *LeftOutputFrame_p, *RightOutputFrame_p; - float *LeftAccOutputFrame_p, *RightAccOutputFrame_p; -#endif /* Input channel rendering loop */ InFrame_nIC_p = Src_p->InputFrame_p; @@ -388,11 +367,7 @@ ivas_error TDREND_REND_RenderSourceHRFilt( /* SrcGain = Mix_p->Gain * ( *SrcRend_p->SrcGain_p ); */ /* SrcGain *= ( *SrcRend_p->DirGain_p ) * ( *SrcRend_p->DistGain_p ); */ -#ifdef FIX_I106_TDREND_5MS TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, subframe_length, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); -#else - TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, output_frame, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); -#endif #ifdef TDREND_HRTF_TABLE_METHODS if ( hBinRendererTd->HrFiltSet_p->FilterMethod != TDREND_HRFILT_Method_BSplineModel ) @@ -402,24 +377,11 @@ ivas_error TDREND_REND_RenderSourceHRFilt( #endif /* Copy to accumulative output frame */ -#ifdef FIX_I106_TDREND_5MS v_add( LeftOutputFrame, output_buf[0], output_buf[0], subframe_length ); v_add( RightOutputFrame, output_buf[1], output_buf[1], subframe_length ); Src_p->InputFrame_p += subframe_length; /* Increment input pointer -- todo: should we remove this and input the current subframe instead? */ -#else - LeftOutputFrame_p = LeftOutputFrame; - RightOutputFrame_p = RightOutputFrame; - LeftAccOutputFrame_p = output_buf[0]; - RightAccOutputFrame_p = output_buf[1]; - - for ( nS = 0; nS < output_frame; nS++ ) - { - *LeftAccOutputFrame_p++ += *LeftOutputFrame_p++; - *RightAccOutputFrame_p++ += *RightOutputFrame_p++; - } -#endif return IVAS_ERR_OK; diff --git a/lib_dec/ivas_objectRenderer_sfx.c b/lib_dec/ivas_objectRenderer_sfx.c index 442091db0f..bd54a767ae 100644 --- a/lib_dec/ivas_objectRenderer_sfx.c +++ b/lib_dec/ivas_objectRenderer_sfx.c @@ -930,11 +930,7 @@ static void TDREND_SFX_SpatBin_UpdateParams( void TDREND_SFX_SpatBin_Execute_Main( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ const float *InBuffer_p, /* i : Input buffer */ -#ifdef FIX_I106_TDREND_5MS const int16_t subframe_length, /* i : subframe length */ -#else - const int16_t output_frame, /* i : frame length */ -#endif float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ @@ -952,11 +948,7 @@ void TDREND_SFX_SpatBin_Execute_Main( /* Make sure the blocks are not longer than 6 msec. */ NoOfBlocks = 1; -#ifdef FIX_I106_TDREND_5MS TempNoOfRequestedOutputSamples = subframe_length; -#else - TempNoOfRequestedOutputSamples = output_frame; -#endif while ( TempNoOfRequestedOutputSamples > SfxSpatBin_p->MaxBlockLength ) { NoOfBlocks = NoOfBlocks << 1; @@ -970,11 +962,7 @@ void TDREND_SFX_SpatBin_Execute_Main( RightOutBufferPointer_p = RightOutBuffer_p; *NoOfUsedInputSamples_p = 0; *NoOfDeliveredOutputSamples_p = 0; -#ifdef FIX_I106_TDREND_5MS TempNoOfInputSamples = subframe_length; -#else - TempNoOfInputSamples = output_frame; -#endif for ( i = 0; i < NoOfBlocks; i++ ) { @@ -1003,11 +991,7 @@ void TDREND_SFX_SpatBin_Execute_Main( if ( i == NoOfBlocks - 2 ) { /* The last block should produce the remaining number of samples */ -#ifdef FIX_I106_TDREND_5MS TempNoOfRequestedOutputSamples = subframe_length - *NoOfDeliveredOutputSamples_p; -#else - TempNoOfRequestedOutputSamples = output_frame - *NoOfDeliveredOutputSamples_p; -#endif } *NoOfUsedInputSamples_p = *NoOfUsedInputSamples_p + TempNoOfUsedInputSamples; TempNoOfInputSamples = TempNoOfInputSamples - TempNoOfUsedInputSamples; -- GitLab From c51973f837346df46a32bab90cdf2f12a86f617a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 7 Oct 2022 09:55:56 +0200 Subject: [PATCH 191/479] [cleanup] accept ALIGN_SID_SIZE --- lib_com/bitstream.c | 28 ---------------- lib_com/ivas_cnst.h | 10 ------ lib_com/ivas_dirac_com.c | 12 ------- lib_com/ivas_prot.h | 7 ---- lib_com/ivas_rom_com.c | 4 --- lib_com/ivas_spar_com.c | 12 ------- lib_com/ivas_stereo_dft_com.c | 4 --- lib_com/ivas_tools.c | 5 --- lib_com/options.h | 1 - lib_dec/acelp_core_dec.c | 4 --- lib_dec/core_switching_dec.c | 4 --- lib_dec/fd_cng_dec.c | 6 ---- lib_dec/ivas_cpe_dec.c | 40 ---------------------- lib_dec/ivas_dec.c | 8 ----- lib_dec/ivas_dirac_dec.c | 48 --------------------------- lib_dec/ivas_init_dec.c | 47 -------------------------- lib_dec/ivas_ism_metadata_dec.c | 8 ----- lib_dec/ivas_ism_param_dec.c | 8 ----- lib_dec/ivas_masa_dec.c | 32 ------------------ lib_dec/ivas_output_init.c | 4 --- lib_dec/ivas_qmetadata_dec.c | 14 -------- lib_dec/ivas_sba_dec.c | 8 ----- lib_dec/ivas_sce_dec.c | 12 ------- lib_dec/ivas_spar_decoder.c | 16 --------- lib_dec/ivas_spar_md_dec.c | 4 --- lib_dec/ivas_stereo_cng_dec.c | 18 ---------- lib_dec/ivas_stereo_dft_dec.c | 40 ---------------------- lib_dec/ivas_stereo_mdct_stereo_dec.c | 20 ----------- lib_dec/ivas_stereo_switching_dec.c | 24 -------------- lib_dec/lib_dec.c | 4 --- lib_enc/fd_cng_enc.c | 2 -- lib_enc/ivas_cpe_enc.c | 20 ----------- lib_enc/ivas_dirac_enc.c | 2 -- lib_enc/ivas_ism_enc.c | 4 --- lib_enc/ivas_qmetadata_enc.c | 36 -------------------- lib_enc/ivas_sce_enc.c | 8 ----- lib_enc/ivas_stereo_cng_enc.c | 6 ---- lib_enc/ivas_stereo_dft_enc.c | 8 ----- 38 files changed, 538 deletions(-) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index 9ee771fb6b..9662a4cf4b 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -1820,11 +1820,7 @@ ivas_error preview_indices( break; } } -#ifdef ALIGN_SID_SIZE else if ( total_brate == IVAS_SID_5k2 ) -#else - else if ( total_brate == IVAS_SID_4k4 ) -#endif { /* read SID format */ st_ivas->sid_format = 0; @@ -1888,16 +1884,6 @@ ivas_error preview_indices( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format ); } } -#ifndef ALIGN_SID_SIZE - else if ( total_brate == IVAS_SID_5k ) - { - /* SBA SID frame */ - st_ivas->sid_format = SID_SBA_1TC; - st_ivas->ivas_format = SBA_FORMAT; - st_ivas->sba_mode = SBA_MODE_SPAR; - st_ivas->element_mode_init = IVAS_SCE; - } -#endif /* only read element mode from active frames */ if ( is_DTXrate( total_brate ) == 0 ) @@ -2072,19 +2058,7 @@ ivas_error read_indices( } else if ( k == SIZE_IVAS_BRATE_TBL ) { -#ifdef ALIGN_SID_SIZE return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); -#else - /*temp change for SPAR DTX*/ - if ( total_brate == IVAS_SID_5k ) - { - st_ivas->element_mode_init = -1; - } - else - { - return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the G.192 frame ! Exiting ! \n", total_brate ); - } -#endif } else { @@ -2978,7 +2952,6 @@ void evs_dec_previewFrame( } -#ifdef ALIGN_SID_SIZE void dtx_read_padding_bits( DEC_CORE_HANDLE st, int16_t num_bits ) @@ -2990,6 +2963,5 @@ void dtx_read_padding_bits( get_next_indice( st, num_bits ); st->total_brate = tmp; } -#endif #undef WMC_TOOL_MAN diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index a83611c025..df8bdf9827 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -197,12 +197,7 @@ typedef enum /*----------------------------------------------------------------------------------* * IVAS Bitrates *----------------------------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE #define IVAS_SID_5k2 5200 /* SID frame bitrate */ -#else -#define IVAS_SID_4k4 4400 /* SID frame bitrate */ -#define IVAS_SID_5k 5000 /* SBA SID frame bitrate */ -#endif #define IVAS_13k2 13200 #define IVAS_16k4 16400 #define IVAS_24k4 24400 @@ -220,13 +215,8 @@ typedef enum #define IVAS_BRATE_MAX IVAS_512k -#ifdef ALIGN_SID_SIZE #define SIZE_IVAS_BRATE_TBL 16 #define IVAS_NUM_ACTIVE_BRATES (SIZE_IVAS_BRATE_TBL - 2) -#else -#define SIZE_IVAS_BRATE_TBL 17 -#define IVAS_NUM_ACTIVE_BRATES (SIZE_IVAS_BRATE_TBL - 3) -#endif /*----------------------------------------------------------------------------------* * IVAS modes : IVAS SCE, IVAS CPE modes (DFT, TD, MDCT stereo) diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index fe344e6423..5acc473b6a 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -337,11 +337,7 @@ ivas_error ivas_dirac_sba_config( if ( sba_mode == SBA_MODE_SPAR ) { /*map the bitrate for SID frame*/ -#ifdef ALIGN_SID_SIZE if ( sba_total_brate == IVAS_SID_5k2 ) -#else - if ( sba_total_brate == IVAS_SID_5k ) -#endif { if ( *element_mode == IVAS_SCE ) { @@ -438,11 +434,7 @@ ivas_error ivas_dirac_sba_config( return error; } -#ifdef ALIGN_SID_SIZE if ( sba_total_brate > IVAS_SID_5k2 ) -#else - if ( sba_total_brate > IVAS_SID_4k4 ) -#endif { #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); @@ -450,11 +442,7 @@ ivas_error ivas_dirac_sba_config( *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); #endif } -#ifdef ALIGN_SID_SIZE else if ( sba_total_brate == IVAS_SID_5k2 ) -#else - else if ( sba_total_brate == IVAS_SID_4k4 ) -#endif { switch ( *element_mode ) { diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index ace66b1a23..a7f5987e38 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2782,12 +2782,7 @@ void reset_metadata_spatial( int32_t *total_brate, /* o : total bitrate */ const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ -#ifndef ALIGN_SID_SIZE - const SBA_MODE sba_mode, /* i : SBA mode */ - const int16_t element_mode /* i : element mode */ -#else const SBA_MODE sba_mode /* i : SBA mode */ -#endif ); /*! r: number of bits written */ @@ -5481,10 +5476,8 @@ float rand_triangular_signed( /* clang-format on */ -#ifdef ALIGN_SID_SIZE void dtx_read_padding_bits( DEC_CORE_HANDLE st, int16_t num_bits ); -#endif #endif /* IVAS_PROT_H */ diff --git a/lib_com/ivas_rom_com.c b/lib_com/ivas_rom_com.c index 4a82259296..4169e4ee92 100644 --- a/lib_com/ivas_rom_com.c +++ b/lib_com/ivas_rom_com.c @@ -49,11 +49,7 @@ const int32_t ivas_brate_tbl[SIZE_IVAS_BRATE_TBL] = { -#ifdef ALIGN_SID_SIZE FRAME_NO_DATA, IVAS_SID_5k2, -#else - FRAME_NO_DATA, IVAS_SID_4k4, IVAS_SID_5k, -#endif IVAS_13k2, IVAS_16k4, IVAS_24k4, IVAS_32k, IVAS_48k, IVAS_64k, IVAS_80k, IVAS_96k, IVAS_128k, IVAS_160k, IVAS_192k, IVAS_256k, IVAS_384k, IVAS_512k diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index ce4e742401..f7fc0e3e26 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -311,11 +311,7 @@ void ivas_spar_config( const int16_t sid_format /* i : IVAS format indicator from SID frame */ ) { -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate == IVAS_SID_5k2 ) -#else - if ( ivas_total_brate == IVAS_SID_5k ) -#endif { if ( sid_format == SID_SBA_1TC ) { @@ -341,11 +337,7 @@ void ivas_spar_config( if ( *nchan_transport == 1 ) { /* map SPAR SID bitrate to SPAR active bitrate */ -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate == IVAS_SID_5k2 ) -#else - if ( ivas_total_brate == IVAS_SID_5k ) -#endif { ivas_total_brate = IVAS_32k; } @@ -445,11 +437,7 @@ int16_t ivas_get_spar_num_TCs( { int16_t table_idx, nchan_transport; -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate == IVAS_SID_5k2 ) -#else - if ( ivas_total_brate == IVAS_SID_5k ) -#endif { nchan_transport = 1; } diff --git a/lib_com/ivas_stereo_dft_com.c b/lib_com/ivas_stereo_dft_com.c index 7de3144f63..2b889dde0a 100644 --- a/lib_com/ivas_stereo_dft_com.c +++ b/lib_com/ivas_stereo_dft_com.c @@ -82,11 +82,7 @@ void stereo_dft_config( hConfig->res_cod_mode = STEREO_DFT_RES_COD_OFF; } } -#ifdef ALIGN_SID_SIZE else if ( brate == IVAS_SID_5k2 ) -#else - else if ( brate == IVAS_SID_4k4 ) -#endif { *bits_frame_nominal = SID_2k40 / FRAMES_PER_SEC; if ( hConfig != NULL ) diff --git a/lib_com/ivas_tools.c b/lib_com/ivas_tools.c index 6b0c0eb297..9594bf5900 100644 --- a/lib_com/ivas_tools.c +++ b/lib_com/ivas_tools.c @@ -1172,12 +1172,7 @@ int16_t is_SIDrate( if ( ( ivas_total_brate == SID_1k75 ) || ( ivas_total_brate == SID_2k40 ) || -#ifdef ALIGN_SID_SIZE ( ivas_total_brate == IVAS_SID_5k2 ) ) -#else - ( ivas_total_brate == IVAS_SID_4k4 ) || - ( ivas_total_brate == IVAS_SID_5k ) ) -#endif { sid_rate_flag = 1; } diff --git a/lib_com/options.h b/lib_com/options.h index 4aab5d6b28..65132ff19c 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,6 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ #define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ -#define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c index a890623fbf..e15951d7f3 100644 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -125,11 +125,7 @@ ivas_error acelp_core_dec( error = IVAS_ERR_OK; -#ifdef ALIGN_SID_SIZE if ( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_5k2 ) -#else - if ( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_4k4 ) -#endif { /* In MDCT-Stereo DTX with mono output, we can skip CNG for the second channel, except for the first inactive frame following an active period */ return error; diff --git a/lib_dec/core_switching_dec.c b/lib_dec/core_switching_dec.c index e8c74bc2ef..8762f20ac3 100644 --- a/lib_dec/core_switching_dec.c +++ b/lib_dec/core_switching_dec.c @@ -1048,11 +1048,7 @@ void bw_switching_pre_proc( if ( st->element_mode > EVS_MONO ) { -#ifdef ALIGN_SID_SIZE if ( st->core == ACELP_CORE && !( st->bfi == 1 && st->con_tcx == 1 ) && st->hBWE_FD != NULL && !( st->core_brate <= SID_2k40 && st->element_mode == IVAS_CPE_DFT && nchan_out == 2 ) && !( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_5k2 ) ) -#else - if ( st->core == ACELP_CORE && !( st->bfi == 1 && st->con_tcx == 1 ) && st->hBWE_FD != NULL && !( st->core_brate <= SID_2k40 && st->element_mode == IVAS_CPE_DFT && nchan_out == 2 ) && !( st->element_mode == IVAS_CPE_MDCT && nchan_out == 1 && st->idchan == 1 && last_element_brate <= IVAS_SID_4k4 ) ) -#endif { /* Calculate tilt of the ACELP core synthesis - needed in SWB BWE decoding */ calc_tilt_bwe( old_syn_12k8_16k, &st->tilt_wb, st->L_frame ); diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index 85d82d953c..faaa37b52c 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -2081,9 +2081,7 @@ void FdCngDecodeMDCTStereoSID( msvq_dec( cdk_37bits_ivas, NULL, NULL, stages, N, FD_CNG_maxN_37bits, indices, ms_ptr[ch], NULL ); } -#ifdef ALIGN_SID_SIZE dtx_read_padding_bits( sts[1], ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); -#endif if ( sts[0]->hFdCngDec->hFdCngCom->no_side_flag ) { @@ -2108,11 +2106,7 @@ void FdCngDecodeMDCTStereoSID( lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, sts[ch]->preemph_fac ); } -#ifdef ALIGN_SID_SIZE if ( hCPE->nchan_out == 1 && hCPE->last_element_brate <= IVAS_SID_5k2 ) -#else - if ( hCPE->nchan_out == 1 && hCPE->last_element_brate <= IVAS_SID_4k4 ) -#endif { /* create proper M noise shape in channel zero after gains have been applied */ for ( p = 0; p < N; p++ ) diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index da0911ee5b..692d0bcc1a 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -160,22 +160,14 @@ ivas_error ivas_cpe_dec( if ( hCPE->element_mode != IVAS_CPE_MDCT && ( hCPE->element_brate != hCPE->last_element_brate || hCPE->last_element_mode != hCPE->element_mode || sts[0]->ini_frame == 0 || ( ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) ) ) { -#ifdef ALIGN_SID_SIZE if ( st_ivas->hQMetaData != NULL && ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( st_ivas->hQMetaData != NULL && ivas_total_brate > IVAS_SID_4k4 ) -#endif { stereo_dft_config( hCPE->hStereoDft == NULL ? NULL : hCPE->hStereoDft->hConfig, st_ivas->hQMetaData->bits_frame_nominal * FRAMES_PER_SEC, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); } else { /* Note: This only works for stereo operation. If DTX would be applied for multiple CPEs a different bitrate signaling is needed */ -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate <= IVAS_SID_5k2 ) -#else - if ( ivas_total_brate <= IVAS_SID_4k4 ) -#endif { stereo_dft_config( hCPE->hStereoDft == NULL ? NULL : hCPE->hStereoDft->hConfig, ivas_total_brate, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); } @@ -211,11 +203,7 @@ ivas_error ivas_cpe_dec( /* Update DFT Stereo memories */ stereo_dft_dec_update( hCPE->hStereoDft, output_frame, 0 ); -#ifdef ALIGN_SID_SIZE if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) -#else - if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) -#endif { if ( ivas_total_brate == FRAME_NO_DATA ) { @@ -232,21 +220,13 @@ ivas_error ivas_cpe_dec( nb_bits = (int16_t) ( ( hCPE->element_brate ) / FRAMES_PER_SEC - 0.8f * sts[0]->bits_frame_nominal ); sts[1]->bit_stream = sts[0]->bit_stream + ivas_total_brate / FRAMES_PER_SEC - 1 - nb_bits_metadata; -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate == IVAS_SID_5k2 ) -#else - if ( ivas_total_brate == IVAS_SID_4k4 ) -#endif { nb_bits -= SID_FORMAT_NBITS; sts[1]->bit_stream -= SID_FORMAT_NBITS; } -#ifdef ALIGN_SID_SIZE if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 ) -#endif { sts[0]->total_brate = hCPE->element_brate; /* Only mono downmix was transmitted in this case */ } @@ -286,11 +266,7 @@ ivas_error ivas_cpe_dec( /* this is just for initialization, the true values of "total_brate" and "bits_frame_channel" are set later */ for ( n = 0; n < n_channels; n++ ) { -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate == IVAS_SID_5k2 ) -#else - if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) -#endif { sts[n]->total_brate = SID_2k40; @@ -307,11 +283,7 @@ ivas_error ivas_cpe_dec( if ( !st_ivas->hMCT ) { -#ifdef ALIGN_SID_SIZE if ( st_ivas->ivas_format == SBA_FORMAT && ivas_total_brate == IVAS_SID_5k2 ) -#else - if ( st_ivas->ivas_format == SBA_FORMAT && ivas_total_brate == IVAS_SID_5k ) -#endif { for ( n = 0; n < n_channels; n++ ) { @@ -615,11 +587,7 @@ ivas_error create_cpe_dec( hCPE->nchan_out = min( CPE_CHANNELS, st_ivas->hDecoderConfig->nchan_out ); } -#ifdef ALIGN_SID_SIZE if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) -#endif { hCPE->nchan_out = 1; } @@ -961,11 +929,7 @@ static void read_stereo_mode_and_bwidth( * BFI or NO_DATA frame: Use stereo parameters from last (active) frame *-----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE if ( st_ivas->bfi || st_ivas->hDecoderConfig->ivas_total_brate < IVAS_SID_5k2 ) -#else - if ( st_ivas->bfi || st_ivas->hDecoderConfig->ivas_total_brate < IVAS_SID_4k4 ) -#endif { hCPE->element_mode = hCPE->last_element_mode; @@ -975,11 +939,7 @@ static void read_stereo_mode_and_bwidth( * SID frame: get element mode from SID side info *-----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE else if ( st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) -#else - else if ( st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_4k4 || st_ivas->hDecoderConfig->ivas_total_brate == IVAS_SID_5k ) -#endif { switch ( st_ivas->sid_format ) { diff --git a/lib_dec/ivas_dec.c b/lib_dec/ivas_dec.c index 7d54047014..5d3a5a10f9 100644 --- a/lib_dec/ivas_dec.c +++ b/lib_dec/ivas_dec.c @@ -290,11 +290,7 @@ ivas_error ivas_dec( nchan_remapped = CPE_CHANNELS; ivas_sba_dirac_stereo_dec( st_ivas, output, output_frame ); } -#ifdef ALIGN_SID_SIZE else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ( ivas_total_brate > IVAS_SID_5k2 || ( ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) -#else - else if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ( ivas_total_brate > IVAS_SID_4k4 || ( ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE > 0 && st_ivas->hCPE[0]->nchan_out == 1 ) ) ) -#endif { nchan_remapped = 1; /* Only one channel transported */ } @@ -574,11 +570,7 @@ ivas_error ivas_dec( st_ivas->ini_frame++; } -#ifdef ALIGN_SID_SIZE if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_5k2 ) /* needed in MASA decoder in case the first active frame is BFI, and there were SID-frames decoded before */ -#else - if ( st_ivas->ini_active_frame < MAX_FRAME_COUNTER && !( st_ivas->bfi && st_ivas->ini_frame == 0 ) && ivas_total_brate > IVAS_SID_4k4 ) /* needed in MASA decoder in case the first active frame is BFI, and there were SID-frames decoded before */ -#endif { st_ivas->ini_active_frame++; } diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index ef4527ea8f..ae7ab88b94 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -190,11 +190,7 @@ ivas_error ivas_dirac_dec_config( } nchan_transport = st_ivas->nchan_transport; -#ifdef ALIGN_SID_SIZE if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 ) -#endif { nchan_transport = 1; } @@ -1287,11 +1283,7 @@ void ivas_dirac_dec_read_BS( int16_t next_bit_pos_orig; *nb_bits = 0; -#ifdef ALIGN_SID_SIZE if ( !st->bfi && ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( !st->bfi && ivas_total_brate > IVAS_SID_4k4 ) -#endif { next_bit_pos_orig = st->next_bit_pos; st->next_bit_pos = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); @@ -1300,19 +1292,7 @@ void ivas_dirac_dec_read_BS( b = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; -#ifndef ALIGN_SID_SIZE - if ( sba_mode == SBA_MODE_SPAR ) - { - - if ( ivas_total_brate == IVAS_SID_5k ) - { - b = 1; - } - } - else -#else if ( sba_mode != SBA_MODE_SPAR ) -#endif { assert( ( b == 0 ) || ( hQMetaData->q_direction[0].cfg.start_band > 0 ) ); } @@ -1400,23 +1380,17 @@ void ivas_dirac_dec_read_BS( st->next_bit_pos = next_bit_pos_orig; } -#ifdef ALIGN_SID_SIZE else if ( !st->bfi && ivas_total_brate == IVAS_SID_5k2 ) -#else - else if ( !st->bfi && ivas_total_brate == IVAS_SID_4k4 ) -#endif { next_bit_pos_orig = st->next_bit_pos; /* subtract mode signaling bits, since bitstream was moved after mode reading */ st->next_bit_pos = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 - SID_FORMAT_NBITS ); -#ifdef ALIGN_SID_SIZE /* 1 bit flag for SPAR/DirAC, already read in read format function */ b = st->bit_stream[( st->next_bit_pos )--]; ( *nb_bits )++; hQMetaData->sba_inactive_mode = 1; orig_dirac_bands = hQMetaData->q_direction[0].cfg.nbands; -#endif /* if we start with a SID frame, we need to init the azi/ele arrays.*/ if ( st->ini_frame == 0 ) @@ -1431,7 +1405,6 @@ void ivas_dirac_dec_read_BS( } } -#ifdef ALIGN_SID_SIZE *nb_bits += ivas_qmetadata_dec_sid_decode( hQMetaData, st->bit_stream, &( st->next_bit_pos ), 0, NULL, SBA_FORMAT, sba_mode ); if ( sba_mode == SBA_MODE_SPAR ) @@ -1458,11 +1431,6 @@ void ivas_dirac_dec_read_BS( { *nb_bits += SID_FORMAT_NBITS; } -#else - *nb_bits += ivas_qmetadata_dec_sid_decode( hQMetaData, st->bit_stream, &( st->next_bit_pos ), 0, NULL, SBA_FORMAT, SBA_MODE_DIRAC ); - - *nb_bits += SID_FORMAT_NBITS; -#endif st->next_bit_pos = next_bit_pos_orig; @@ -1509,11 +1477,7 @@ void ivas_qmetadata_to_dirac( q_direction = &( hQMetaData->q_direction[0] ); hDirAC->numSimultaneousDirections = hQMetaData->no_directions; -#ifdef ALIGN_SID_SIZE if ( hMasa != NULL && ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( hMasa != NULL && ivas_total_brate > IVAS_SID_4k4 ) -#endif { band_mapping = hMasa->data.band_mapping; @@ -1589,11 +1553,7 @@ void ivas_qmetadata_to_dirac( nbands = hDirAC->band_grouping[hDirAC->hConfig->nbands]; band_grouping = hDirAC->band_grouping; -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate <= IVAS_SID_5k2 && sba_mode != SBA_MODE_SPAR ) -#else - if ( ivas_total_brate <= IVAS_SID_4k4 && sba_mode != SBA_MODE_SPAR ) -#endif { /* SID/zero-frame: 1 direction, 5 bands, nblocks re-generated out of SID decoder*/ start_band = 0; @@ -1689,11 +1649,7 @@ void ivas_qmetadata_to_dirac( ele = min( 90, ele ); ele = max( -90, ele ); -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate > IVAS_SID_5k2 && q_direction->coherence_band_data != NULL ) -#else - if ( ivas_total_brate > IVAS_SID_4k4 && q_direction->coherence_band_data != NULL ) -#endif { hDirAC->spreadCoherence[tmp_write_idx_band][b] = q_direction->coherence_band_data[qBand_idx].spread_coherence[block] / 255.0f; } @@ -1702,11 +1658,7 @@ void ivas_qmetadata_to_dirac( hDirAC->spreadCoherence[tmp_write_idx_band][b] = 0.0f; } -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate > IVAS_SID_5k2 && q_direction->coherence_band_data != NULL ) -#else - if ( ivas_total_brate > IVAS_SID_4k4 && q_direction->coherence_band_data != NULL ) -#endif { hDirAC->surroundingCoherence[tmp_write_idx_band][b] = hQMetaData->surcoh_band_data[qBand_idx].surround_coherence[0] / 255.0f; } diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index f084b25b9b..d8e556550a 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -126,11 +126,7 @@ ivas_error ivas_dec_setup( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); num_bits_read += SBA_ORDER_BITS; -#ifdef ALIGN_SID_SIZE if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_4k4 ) -#endif { if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) { @@ -162,11 +158,7 @@ ivas_error ivas_dec_setup( if ( st_ivas->ini_frame > 0 ) { /* reconfigure in case a change of operation mode is detected */ -#ifdef ALIGN_SID_SIZE if ( ( ivas_total_brate > IVAS_SID_5k2 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) || ( st_ivas->ini_active_frame == 0 ) ) -#else - if ( ( ivas_total_brate > IVAS_SID_4k4 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) || ( st_ivas->ini_active_frame == 0 ) ) -#endif { if ( st_ivas->ini_active_frame == 0 && ivas_total_brate != FRAME_NO_DATA && ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->nCPE == 1 ) { @@ -225,11 +217,7 @@ ivas_error ivas_dec_setup( } } } -#ifdef ALIGN_SID_SIZE else if ( ivas_total_brate == IVAS_SID_5k2 ) -#else - else if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) -#endif { switch ( st_ivas->sid_format ) { @@ -365,11 +353,7 @@ static ivas_error ivas_read_format( break; } } -#ifdef ALIGN_SID_SIZE else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) -#else - else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_4k4 ) -#endif { /* read IVAS format in SID frame */ idx = 0; @@ -422,7 +406,6 @@ static ivas_error ivas_read_format( return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format ); } -#ifdef ALIGN_SID_SIZE if ( st_ivas->ivas_format == SBA_FORMAT ) { int16_t tc_mode_offset; @@ -442,41 +425,11 @@ static ivas_error ivas_read_format( st_ivas->sba_mode = SBA_MODE_DIRAC; } } -#endif /* reset bitstream handle to avoid BER detection after reading the 2400 kbps for ch0 */ st_ivas->bit_stream += ( *num_bits_read ); ( *num_bits_read ) = 0; } -#ifndef ALIGN_SID_SIZE - else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k ) - { - int16_t tc_mode_offset; - tc_mode_offset = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC - 1 ); - idx = st_ivas->bit_stream[tc_mode_offset]; - - // TBD: needs more work for HOA - if ( st_ivas->sba_analysis_order == 0 ) - { - st_ivas->sba_analysis_order = 1; - } - - if ( idx == 0 ) - { - st_ivas->sid_format = SID_SBA_1TC; - st_ivas->ivas_format = SBA_FORMAT; - st_ivas->sba_mode = SBA_MODE_SPAR; - st_ivas->element_mode_init = IVAS_SCE; - } - else - { - st_ivas->sid_format = SID_SBA_2TC; - st_ivas->ivas_format = SBA_FORMAT; - st_ivas->sba_mode = SBA_MODE_SPAR; - st_ivas->element_mode_init = IVAS_CPE_MDCT; - } - } -#endif else { /* In SID/NO_DATA frames, use the previous frame IVAS format */ diff --git a/lib_dec/ivas_ism_metadata_dec.c b/lib_dec/ivas_ism_metadata_dec.c index dee9b6489f..6b9f8ec8ba 100644 --- a/lib_dec/ivas_ism_metadata_dec.c +++ b/lib_dec/ivas_ism_metadata_dec.c @@ -78,11 +78,7 @@ ivas_error ivas_ism_metadata_dec( wmops_sub_start( "ism_meta_dec" ); -#ifdef ALIGN_SID_SIZE if ( ism_total_brate == IVAS_SID_5k2 || ism_total_brate == FRAME_NO_DATA ) -#else - if ( ism_total_brate == IVAS_SID_4k4 || ism_total_brate == FRAME_NO_DATA ) -#endif { /* no metadata decoding in CNG */ for ( ch = 0; ch < *nchan_transport; ch++ ) @@ -91,11 +87,7 @@ ivas_error ivas_ism_metadata_dec( } /* set padding bits as metadata bits to keep later bitrate checks valid */ -#ifdef ALIGN_SID_SIZE nb_bits_metadata[0] = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC; -#else - nb_bits_metadata[0] = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC; -#endif #ifdef DEBUGGING /* sanity check */ diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index d394c3c729..be2b9eb350 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1027,11 +1027,7 @@ ivas_error ivas_ism_dec_config( /* store last frame ISM mode */ last_ism_mode = st_ivas->ism_mode; -#ifdef ALIGN_SID_SIZE if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_5k2 && ivas_total_brate != FRAME_NO_DATA ) -#else - if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_4k4 && ivas_total_brate != FRAME_NO_DATA ) -#endif { /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( num_obj, ivas_total_brate ); @@ -1056,11 +1052,7 @@ ivas_error ivas_ism_dec_config( } } } -#ifdef ALIGN_SID_SIZE else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) -#else - else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_4k4 ) -#endif { st_ivas->nchan_transport = num_obj; } diff --git a/lib_dec/ivas_masa_dec.c b/lib_dec/ivas_masa_dec.c index b4aa18f2a1..3df3784405 100644 --- a/lib_dec/ivas_masa_dec.c +++ b/lib_dec/ivas_masa_dec.c @@ -115,11 +115,7 @@ ivas_error ivas_masa_decode( *nb_bits_read = 0; next_bit_pos_orig = st->next_bit_pos; -#ifdef ALIGN_SID_SIZE if ( masa_brate == IVAS_SID_5k2 ) -#else - if ( masa_brate == IVAS_SID_4k4 ) -#endif { st->next_bit_pos = (int16_t) ( ( masa_brate / FRAMES_PER_SEC ) - 1 - SID_FORMAT_NBITS ); } @@ -128,11 +124,7 @@ ivas_error ivas_masa_decode( st->next_bit_pos = (int16_t) ( ( masa_brate / FRAMES_PER_SEC ) - 1 ); } -#ifdef ALIGN_SID_SIZE if ( !st->bfi && ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( !st->bfi && ivas_total_brate > IVAS_SID_4k4 ) -#endif { if ( !( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_MCMASA ) ) { @@ -224,11 +216,7 @@ ivas_error ivas_masa_decode( replicate_subframes( hQMetaData ); } } -#ifdef ALIGN_SID_SIZE else if ( !st->bfi && ivas_format == MASA_FORMAT && ivas_total_brate == IVAS_SID_5k2 ) -#else - else if ( !st->bfi && ivas_format == MASA_FORMAT && ivas_total_brate == IVAS_SID_4k4 ) -#endif { if ( hQMetaData->q_direction == NULL ) { @@ -241,11 +229,7 @@ ivas_error ivas_masa_decode( ivas_masa_set_elements( ivas_total_brate, st_ivas->mc_mode, st_ivas->nchan_transport, hQMetaData, &st_ivas->element_mode_init, &st_ivas->nSCE, &st_ivas->nCPE ); -#ifdef ALIGN_SID_SIZE hQMetaData->metadata_max_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC; -#else - hQMetaData->metadata_max_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC; -#endif if ( ( error = ivas_qmetadata_allocate_memory( hQMetaData, 5, 1, 0 ) ) != IVAS_ERR_OK ) { @@ -301,11 +285,7 @@ ivas_error ivas_masa_decode( { st_ivas->hCPE[0]->hStereoDft->hConfig->force_mono_transmission = ivas_total_brate < MASA_STEREO_MIN_BITRATE ? 1 : 0; -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate <= IVAS_SID_5k2 ) -#else - if ( ivas_total_brate <= IVAS_SID_4k4 ) -#endif { st_ivas->hCPE[0]->hStereoDft->hConfig->force_mono_transmission = 0; } @@ -315,19 +295,11 @@ ivas_error ivas_masa_decode( { st_ivas->hCPE[0]->hCoreCoder[0]->masa_sid_format = 0; -#ifdef ALIGN_SID_SIZE if ( st_ivas->hDecoderConfig->last_ivas_total_brate <= IVAS_SID_5k2 ) -#else - if ( st_ivas->hDecoderConfig->last_ivas_total_brate <= IVAS_SID_4k4 ) -#endif { st_ivas->hCPE[0]->hCoreCoder[0]->masa_sid_format = 1; -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate >= IVAS_SID_5k2 ) -#else - if ( ivas_total_brate >= IVAS_SID_4k4 ) -#endif { st_ivas->hCPE[0]->element_brate = ivas_total_brate; } @@ -507,11 +479,7 @@ void ivas_masa_prerender( const int16_t output_frame /* i : output frame length per channel */ ) { -#ifdef ALIGN_SID_SIZE if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_transport == 2 && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nchan_transport == 2 && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) -#endif { if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) { diff --git a/lib_dec/ivas_output_init.c b/lib_dec/ivas_output_init.c index b7af932861..307b29e74a 100644 --- a/lib_dec/ivas_output_init.c +++ b/lib_dec/ivas_output_init.c @@ -526,11 +526,7 @@ void ivas_renderer_select( { *renderer_type = RENDERER_DISABLE; } -#ifdef ALIGN_SID_SIZE else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) ) -#else - else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_4k4 ) ) -#endif { *renderer_type = RENDERER_DISABLE; } diff --git a/lib_dec/ivas_qmetadata_dec.c b/lib_dec/ivas_qmetadata_dec.c index 15f33799d6..059ba752e7 100644 --- a/lib_dec/ivas_qmetadata_dec.c +++ b/lib_dec/ivas_qmetadata_dec.c @@ -721,32 +721,20 @@ int16_t ivas_qmetadata_dec_sid_decode( { if ( sba_mode == SBA_MODE_SPAR ) { -#ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ metadata_sid_bits = (int16_t) ( 5000 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ -#else - metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/ -#endif } else { /* keep 13.2 and 16.4 sid bitrate as 4.4 kbps for now*/ -#ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else - metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } } else { -#ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else - metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } start_index = *index; @@ -865,7 +853,6 @@ int16_t ivas_qmetadata_dec_sid_decode( } } } -#ifdef ALIGN_SID_SIZE /* TODO: temporary hack to keep BE */ if ( ivas_format == SBA_FORMAT ) { @@ -878,7 +865,6 @@ int16_t ivas_qmetadata_dec_sid_decode( { metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; } -#endif /*Read filling bits*/ while ( start_index - *index < metadata_sid_bits ) diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 9090588b55..a17ae8a977 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -564,11 +564,7 @@ ivas_error ivas_sba_dec_reconfigure( } } -#ifdef ALIGN_SID_SIZE if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_5k2 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) -#else - if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_4k4 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) -#endif { if ( st_ivas->hDirAC != NULL ) { @@ -940,11 +936,7 @@ ivas_error ivas_sba_dec_reconfigure( } /* special case, if the decoder goes from 1TC DTX to 2TC active frame (in case the bitstream started with an SBA SID frame), allocate DTX memories */ -#ifdef ALIGN_SID_SIZE if ( last_ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE >= 1 ) -#else - if ( last_ivas_total_brate <= IVAS_SID_4k4 && st_ivas->nCPE >= 1 ) -#endif { if ( ( error = initMdctStereoDtxData( st_ivas->hCPE[0] ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_sce_dec.c b/lib_dec/ivas_sce_dec.c index b24d60505b..5756e1bef7 100644 --- a/lib_dec/ivas_sce_dec.c +++ b/lib_dec/ivas_sce_dec.c @@ -82,11 +82,7 @@ ivas_error ivas_sce_dec( *-----------------------------------------------------------------*/ /* set total_brate - needed in DTX */ -#ifdef ALIGN_SID_SIZE if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_5k2 ) ) -#else - if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) ) -#endif { st->total_brate = ivas_total_brate - nb_bits_metadata * FRAMES_PER_SEC; assert( st->total_brate == SID_2k40 && "SCE SID must be 2.4kbps!" ); @@ -95,11 +91,7 @@ ivas_error ivas_sce_dec( { st->total_brate = ivas_total_brate; } -#ifdef ALIGN_SID_SIZE else if ( !st_ivas->bfi && ( last_ivas_total_brate <= SID_2k40 || last_ivas_total_brate == IVAS_SID_5k2 ) ) -#else - else if ( !st_ivas->bfi && ( last_ivas_total_brate <= SID_2k40 || last_ivas_total_brate == IVAS_SID_4k4 ) ) -#endif { st->total_brate = hSCE->element_brate - nb_bits_metadata * FRAMES_PER_SEC; } @@ -169,11 +161,7 @@ ivas_error ivas_sce_dec( } /* set "total_brate" */ -#ifdef ALIGN_SID_SIZE if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_5k2 ) ) -#else - if ( !st_ivas->bfi && ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == IVAS_SID_5k ) ) -#endif { st->total_brate = ivas_total_brate - nb_bits_metadata * FRAMES_PER_SEC; } diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 2e48c11745..c7a3fcff20 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -241,12 +241,10 @@ ivas_error ivas_spar_dec( next_bit_pos_orig = st0->next_bit_pos; last_bit_pos = (int16_t) ( ( hDecoderConfig->ivas_total_brate / FRAMES_PER_SEC ) - 1 ); -#ifdef ALIGN_SID_SIZE if ( !st0->bfi && hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) { last_bit_pos -= SID_FORMAT_NBITS; } -#endif nb_bits_read_orig = *nb_bits_read; last_bit_pos -= nb_bits_read_orig; @@ -266,7 +264,6 @@ ivas_error ivas_spar_dec( st0->bit_stream = bit_stream_orig; st0->next_bit_pos = next_bit_pos_orig; -#ifdef ALIGN_SID_SIZE if ( !st0->bfi && hDecoderConfig->ivas_total_brate == IVAS_SID_5k2 ) { int16_t zero_pad_bits; @@ -275,7 +272,6 @@ ivas_error ivas_spar_dec( assert( zero_pad_bits <= 1 ); *nb_bits_read += zero_pad_bits; } -#endif wmops_sub_end(); @@ -645,11 +641,7 @@ static void ivas_spar_dec_MD( if ( ivas_total_brate > FRAME_NO_DATA && !bfi ) { -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( ivas_total_brate > IVAS_SID_5k ) -#endif { ivas_parse_spar_header( hDecoderConfig->ivas_total_brate, sba_order, st0, &table_idx ); @@ -683,11 +675,7 @@ static void ivas_spar_dec_MD( * Read AGC bits *---------------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate > IVAS_SID_5k2 && !bfi && hSpar->hMdDec->dtx_vad ) -#else - if ( ivas_total_brate > IVAS_SID_5k && !bfi && hSpar->hMdDec->dtx_vad ) -#endif { hSpar->AGC_flag = get_next_indice( st0, 1 ); @@ -698,11 +686,7 @@ static void ivas_spar_dec_MD( * MD smoothing *---------------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE if ( st0->m_old_frame_type == ZERO_FRAME && ivas_total_brate == IVAS_SID_5k2 && st0->prev_bfi == 0 && hSpar->hMdDec->spar_md_cfg.nchan_transport == 1 ) -#else - if ( st0->m_old_frame_type == ZERO_FRAME && ivas_total_brate == IVAS_SID_5k && st0->prev_bfi == 0 && hSpar->hMdDec->spar_md_cfg.nchan_transport == 1 ) -#endif { ivas_spar_setup_md_smoothing( hSpar->hMdDec, num_bands_out ); } diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index c0682c58a2..2c8d31ecc0 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -1444,11 +1444,7 @@ static void ivas_spar_dec_parse_md_bs( if ( hMdDec->spar_md_cfg.gen_bs == 1 ) { -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( ivas_total_brate > IVAS_SID_5k ) -#endif { if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) { diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index 491a88da3f..58b0eae86d 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -90,12 +90,8 @@ void stereo_dft_dec_sid_coh( int16_t bits_tmp; int16_t b; -#ifdef ALIGN_SID_SIZE /* TODO: still use old number of bits to keep bitexactness in output */ nr_of_sid_stereo_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else - nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif /* If the coherence is not encoded due to lack of bits set alpha to zero which leads to that the coherence */ /* from the previous frame is used. */ @@ -178,9 +174,7 @@ void stereo_dft_dec_sid_coh( ( *nb_bits )++; } -#ifdef ALIGN_SID_SIZE dtx_read_padding_bits( st, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); -#endif return; } @@ -661,17 +655,9 @@ void stereo_dtf_cng( hCPE->hStereoCng->nr_dft_frames++; } -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate <= IVAS_SID_5k2 ) -#else - if ( ivas_total_brate <= IVAS_SID_4k4 ) -#endif { -#ifdef ALIGN_SID_SIZE if ( hCPE->hStereoCng->nr_sid_frames < SID_INIT && ivas_total_brate == IVAS_SID_5k2 ) -#else - if ( hCPE->hStereoCng->nr_sid_frames < SID_INIT && ivas_total_brate == IVAS_SID_4k4 ) -#endif { hCPE->hStereoCng->nr_sid_frames++; } @@ -723,11 +709,7 @@ void stereo_cng_dec_update( if ( hCPE->element_mode == IVAS_CPE_DFT ) { -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate == IVAS_SID_5k2 || ivas_total_brate == FRAME_NO_DATA ) -#else - if ( ivas_total_brate == IVAS_SID_4k4 || ivas_total_brate == FRAME_NO_DATA ) -#endif { hCPE->hStereoCng->prev_sid_nodata = 1; } diff --git a/lib_dec/ivas_stereo_dft_dec.c b/lib_dec/ivas_stereo_dft_dec.c index b0db814511..503c7e88f2 100644 --- a/lib_dec/ivas_stereo_dft_dec.c +++ b/lib_dec/ivas_stereo_dft_dec.c @@ -1746,11 +1746,7 @@ void stereo_dft_dec_read_BS( * Initialization *-----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate == IVAS_SID_5k2 ) -#else - if ( ivas_total_brate == IVAS_SID_4k4 ) -#endif { if ( ivas_format == MASA_FORMAT ) { @@ -1764,11 +1760,7 @@ void stereo_dft_dec_read_BS( hStereoDft->frame_nodata = 0; hStereoDft->frame_sid_nodata = 1; hStereoDft->frame_sid = 1; -#ifdef ALIGN_SID_SIZE *nb_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else - *nb_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } } else if ( ivas_total_brate == FRAME_NO_DATA ) @@ -1811,11 +1803,7 @@ void stereo_dft_dec_read_BS( k_offset = STEREO_DFT_OFFSET; N_div = STEREO_DFT_NBDIV; -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( ivas_total_brate > IVAS_SID_4k4 ) -#endif { mvr2r( hStereoDft->side_gain + 2 * STEREO_DFT_BAND_MAX, sg_tmp, STEREO_DFT_BAND_MAX ); mvr2r( hStereoDft->res_pred_gain + 2 * STEREO_DFT_BAND_MAX, res_pred_gain_tmp, STEREO_DFT_BAND_MAX ); @@ -1905,11 +1893,7 @@ void stereo_dft_dec_read_BS( fprintf( pF, "ITD: %d ", hStereoDft->hConfig->itd_mode ); #endif -#ifdef ALIGN_SID_SIZE if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) -#else - if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) -#endif { /*------------------------------------------------------------------* * read Side gains @@ -1990,11 +1974,7 @@ void stereo_dft_dec_read_BS( #endif } } -#ifdef ALIGN_SID_SIZE else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 - SID_FORMAT_NBITS ) ) -#else - else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 - SID_FORMAT_NBITS ) ) -#endif { itd_mode = get_next_indice( st, STEREO_DFT_ITD_MODE_NBITS ); ( *nb_bits ) += STEREO_DFT_ITD_MODE_NBITS; /*ITD mode flag: 1bit*/ @@ -2036,11 +2016,7 @@ void stereo_dft_dec_read_BS( stereo_dft_dequantize_ipd( &ind1_ipd[0], hStereoDft->gipd + ( k + k_offset ), 1, STEREO_DFT_GIPD_NBITS ); } } -#ifdef ALIGN_SID_SIZE else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS - SID_FORMAT_NBITS ) ) -#else - else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS - SID_FORMAT_NBITS ) ) -#endif { /* SID frame, only read IPD only if enough bits left in bitstream */ hStereoDft->no_ipd_flag = st->bit_stream[nb]; @@ -2201,11 +2177,7 @@ void stereo_dft_dec_read_BS( #endif } -#ifdef ALIGN_SID_SIZE if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) -#else - if ( !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) -#endif { if ( hStereoDft->side_gain_flag_1 != 2 ) { @@ -2213,11 +2185,7 @@ void stereo_dft_dec_read_BS( } } -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( ivas_total_brate > IVAS_SID_4k4 ) -#endif { hStereoDft->recovery_flg = stereo_dft_sg_recovery( hStereoDft ); @@ -2284,20 +2252,12 @@ void stereo_dft_dec_read_BS( #endif } -#ifdef ALIGN_SID_SIZE if ( hStereoDft->frame_sid && !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_5k2 ) ) -#else - if ( hStereoDft->frame_sid && !( ivas_format == MASA_FORMAT && ivas_total_brate <= IVAS_SID_4k4 ) ) -#endif { stereo_dft_dec_sid_coh( st, hStereoDft->nbands, coh, nb_bits ); } -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate == IVAS_SID_5k2 && ivas_format != MASA_FORMAT ) -#else - if ( ivas_total_brate == IVAS_SID_4k4 && ivas_format != MASA_FORMAT ) -#endif { *nb_bits = (int16_t) ( ( element_brate - SID_2k40 ) / FRAMES_PER_SEC ); /* => hCPE->hCoreCoder[0]->total_brate = SID_2k40; */ } diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 10b9688be2..46f2f0d73f 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -559,21 +559,13 @@ void updateBuffersForDmxMdctStereo( sts[1] = hCPE->hCoreCoder[1]; /* synch buffers for inactive frames, but not for transition frames */ -#ifdef ALIGN_SID_SIZE if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) -#else - if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) -#endif { mvr2r( output[0], output[1], output_frame ); mvr2r( synth[0], synth[1], output_frame ); } -#ifdef ALIGN_SID_SIZE if ( hCPE->element_brate == IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) -#else - if ( hCPE->element_brate == IVAS_SID_4k4 && hCPE->last_element_brate > IVAS_SID_4k4 ) -#endif { /* in the first SID frame after an active frame, create mid noise shape here, in SID frames that follow inactive frames, it is done directly in the SID decoding since the mid shape is being used in CNG then */ for ( int16_t p = 0; p < sts[0]->hFdCngDec->hFdCngCom->npart; p++ ) @@ -583,11 +575,7 @@ void updateBuffersForDmxMdctStereo( } /* for transition of active->inactive frame, apply passive downmix on buffers */ -#ifdef ALIGN_SID_SIZE if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) -#else - if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) -#endif { delta = 1; if ( output_frame == L_FRAME16k ) @@ -653,21 +641,13 @@ void applyDmxMdctStereo( fade = 1.f; dmx_len = output_frame; -#ifdef ALIGN_SID_SIZE if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) -#else - if ( hCPE->last_element_brate <= IVAS_SID_4k4 ) -#endif { crossfade_len = NS2SA( hCPE->hCoreCoder[0]->output_Fs, IVAS_DEC_DELAY_NS - DELAY_CLDFB_NS ); step /= crossfade_len; } /* for first inactive CNG frame after active decoding we have to do a fade-OUT FROM the passive DMX */ -#ifdef ALIGN_SID_SIZE else if ( hCPE->element_brate <= IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) -#else - else if ( hCPE->element_brate <= IVAS_SID_4k4 && hCPE->last_element_brate > IVAS_SID_4k4 ) -#endif { crossfade_len = output_frame / 4; step /= -crossfade_len; diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index 2e32b8e85a..4031a8cf4e 100644 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -832,11 +832,7 @@ ivas_error stereo_memory_dec( if ( ivas_format == STEREO_FORMAT && hCPE->element_mode == IVAS_CPE_MDCT ) { -#ifdef ALIGN_SID_SIZE if ( hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_total_brate > IVAS_SID_5k2 ) -#else - if ( hCPE->element_brate <= MAX_MDCT_ITD_BRATE && ivas_total_brate > IVAS_SID_4k4 ) -#endif { if ( hCPE->hStereoMdct->use_itd == 0 ) { @@ -856,21 +852,13 @@ ivas_error stereo_memory_dec( else { /* de-allocate TCA data structure */ -#ifdef ALIGN_SID_SIZE if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate > IVAS_SID_5k2 && hCPE->hStereoTCA != NULL ) -#else - if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate > IVAS_SID_4k4 && hCPE->hStereoTCA != NULL ) -#endif { count_free( hCPE->hStereoTCA ); hCPE->hStereoTCA = NULL; hCPE->hStereoMdct->use_itd = 0; } -#ifdef ALIGN_SID_SIZE else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate <= IVAS_SID_5k2 ) -#else - else if ( hCPE->hStereoMdct->use_itd == 1 && ivas_total_brate <= IVAS_SID_4k4 ) -#endif { hCPE->hStereoMdct->itd = 0.0f; } @@ -1023,11 +1011,7 @@ void synchro_synthesis( if ( use_cldfb_for_last_dft ) { -#ifdef ALIGN_SID_SIZE if ( hCPE->element_mode == IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_TD && ( ivas_total_brate > IVAS_SID_5k2 || hCPE->nchan_out == 2 ) ) -#else - if ( hCPE->element_mode == IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_TD && ( ivas_total_brate > IVAS_SID_4k4 || hCPE->nchan_out == 2 ) ) -#endif { stereo_tca_scale_R_channel( hCPE, output[0], output_frame ); } @@ -1365,11 +1349,7 @@ void stereo_switching_dec( mvr2r( hCPE->input_mem[n], hCPE->output_mem[n], dft32ms_ovl ); } -#ifdef ALIGN_SID_SIZE if ( ivas_total_brate > IVAS_SID_5k2 || n == 0 || hCPE->last_element_mode != IVAS_CPE_TD || hCPE->nchan_out == 1 ) -#else - if ( ivas_total_brate > IVAS_SID_4k4 || n == 0 || hCPE->last_element_mode != IVAS_CPE_TD || hCPE->nchan_out == 1 ) -#endif { for ( i = 0; i < dft32ms_ovl; i++ ) { @@ -1443,11 +1423,7 @@ void stereo_switching_dec( /* no secondary channel in the previous frame -> memory resets */ if ( hCPE->element_mode > IVAS_CPE_DFT && hCPE->last_element_mode == IVAS_CPE_DFT ) { -#ifdef ALIGN_SID_SIZE if ( hCPE->last_element_brate <= IVAS_SID_5k2 && hCPE->nchan_out == 2 ) -#else - if ( hCPE->last_element_brate <= IVAS_SID_4k4 && hCPE->nchan_out == 2 ) -#endif { /* reset CLDFB memories */ cldfb_reset_memory( sts[0]->cldfbAna ); diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index fa2bb2b763..b7f82edd2e 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1131,11 +1131,7 @@ static bool isSidFrame( { return true; /* EVS SID */ } -#ifdef ALIGN_SID_SIZE else if ( size == IVAS_SID_5k2 / FRAMES_PER_SEC ) -#else - else if ( size == IVAS_SID_4k4 / FRAMES_PER_SEC ) -#endif { return true; /* IVAS SID */ } diff --git a/lib_enc/fd_cng_enc.c b/lib_enc/fd_cng_enc.c index 2f98addc8d..e9bb6c18e3 100644 --- a/lib_enc/fd_cng_enc.c +++ b/lib_enc/fd_cng_enc.c @@ -1130,10 +1130,8 @@ void FdCngEncodeMDCTStereoSID( push_indice( sts[ch]->hBstr, IND_ENERGY, gain_idx[ch], 7 ); } -#ifdef ALIGN_SID_SIZE /* pad with zeros to reach common SID frame size */ push_indice( sts[1]->hBstr, IND_ENERGY, 0, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); -#endif return; } diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 08c45af220..d4f7eef648 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -453,11 +453,7 @@ ivas_error ivas_cpe_enc( { if ( hCPE->element_mode == IVAS_CPE_DFT || hCPE->element_mode == IVAS_CPE_TD ) { -#ifdef ALIGN_SID_SIZE reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode ); -#else - reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode, hCPE->element_mode ); -#endif } } @@ -469,11 +465,7 @@ ivas_error ivas_cpe_enc( /* Reset metadata */ if ( sts[0]->cng_sba_flag || ( ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR ) ) { -#ifdef ALIGN_SID_SIZE reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode ); -#else - reset_metadata_spatial( ivas_format, hCPE->hMetaData, hCPE->element_brate, &tmp, sts[0]->core_brate, nb_bits_metadata, st_ivas->sba_mode, hCPE->element_mode ); -#endif } } @@ -542,11 +534,7 @@ ivas_error ivas_cpe_enc( * Write IVAS format signaling in SID frames *----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE if ( sts[0]->core_brate == SID_2k40 ) -#else - if ( sts[0]->core_brate == SID_2k40 && ( ivas_format != SBA_FORMAT || st_ivas->sba_mode != SBA_MODE_SPAR ) ) -#endif { ivas_write_format_sid( ivas_format, hCPE->element_mode, sts[0]->hBstr ); } @@ -565,11 +553,7 @@ ivas_error ivas_cpe_enc( /* Reconfigure DFT Stereo for inactive frames */ if ( sts[0]->core_brate == SID_2k40 ) { -#ifdef ALIGN_SID_SIZE stereo_dft_config( hCPE->hStereoDft->hConfig, IVAS_SID_5k2, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); -#else - stereo_dft_config( hCPE->hStereoDft->hConfig, IVAS_SID_4k4, &sts[0]->bits_frame_nominal, &sts[1]->bits_frame_nominal ); -#endif } else { @@ -613,11 +597,7 @@ ivas_error ivas_cpe_enc( if ( sts[0]->core_brate == FRAME_NO_DATA || sts[0]->core_brate == SID_2k40 ) { -#ifdef ALIGN_SID_SIZE assert( ( nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) ) && "Stereo DFT CNG: bit budget is violated" ); -#else - assert( ( nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) ) && "Stereo DFT CNG: bit budget is violated" ); -#endif } else { diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 9d5893622d..6ac3cff6fe 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -441,10 +441,8 @@ void ivas_dirac_enc( } else { -#ifdef ALIGN_SID_SIZE /*indicate whether SPAR or DiRAC mode*/ push_next_indice( hMetaData, 0, 1 ); -#endif /* encode SID parameters */ ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, SBA_FORMAT, SBA_MODE_DIRAC ); } diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 2433c01802..33d552bb27 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -214,11 +214,7 @@ ivas_error ivas_ism_enc( ivas_write_format_sid( st_ivas->hEncoderConfig->ivas_format, IVAS_SCE, st->hBstr ); /* write unused bits */ -#ifdef ALIGN_SID_SIZE nBits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else - nBits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif while ( nBits > 0 ) { i = min( nBits, 16 ); diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index 6042c9e10a..ae4af46855 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -684,32 +684,20 @@ void ivas_qmetadata_enc_sid_encode( { if ( sba_mode == SBA_MODE_SPAR ) { -#ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ metadata_sid_bits = (int16_t) ( 5000 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ -#else - metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/ -#endif } else { /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/ -#ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else - metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } } else { -#ifdef ALIGN_SID_SIZE /* TODO: still use old sid frame size to keep bitexactness */ metadata_sid_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else - metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif } #ifdef DEBUG_MODE_QMETADATA @@ -888,7 +876,6 @@ void ivas_qmetadata_enc_sid_encode( } #endif -#ifdef ALIGN_SID_SIZE /* TODO: temporary to keep BE */ if ( ivas_format == SBA_FORMAT ) { @@ -902,7 +889,6 @@ void ivas_qmetadata_enc_sid_encode( { metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; } -#endif /* fill bits*/ assert( ( hMetaData->nb_bits_tot - bit_pos_start ) <= metadata_sid_bits && "Too many written bits!" ); @@ -927,18 +913,11 @@ void reset_metadata_spatial( int32_t *total_brate, /* o : total bitrate */ const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ -#ifndef ALIGN_SID_SIZE - const SBA_MODE sba_mode, /* i : SBA mode */ - const int16_t element_mode /* i : element mode */ -#else const SBA_MODE sba_mode /* i : SBA mode */ -#endif ) { int16_t i, next_ind_sid, last_ind_sid; -#ifdef ALIGN_SID_SIZE int16_t metadata_sid_bits; -#endif if ( core_brate == SID_2k40 || core_brate == FRAME_NO_DATA ) { @@ -947,23 +926,12 @@ void reset_metadata_spatial( if ( sba_mode == SBA_MODE_SPAR ) { assert( hMetaData->ind_list[0].nb_bits == 1 ); -#ifdef ALIGN_SID_SIZE hMetaData->ind_list[0].value = 1; metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; while ( hMetaData->nb_bits_tot < metadata_sid_bits ) { push_next_indice( hMetaData, 0, 1 ); /*fill bit*/ } -#else - if ( element_mode > IVAS_SCE ) - { - hMetaData->ind_list[0].value = 1; - } - else - { - hMetaData->ind_list[0].value = 0; - } -#endif } else { @@ -993,11 +961,7 @@ void reset_metadata_spatial( hMetaData->ind_list[i].nb_bits = -1; } hMetaData->last_ind = hMetaData->next_ind; -#ifdef ALIGN_SID_SIZE assert( ( hMetaData->nb_bits_tot == ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) && "Problem of SID metadata in SCE" ); -#else - assert( ( hMetaData->nb_bits_tot == ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS ) && "Problem of SID metadata in SCE" ); -#endif } } else diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 4a4c24fa4e..8b65c188d9 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -199,20 +199,12 @@ ivas_error ivas_sce_enc( * Reset metadata *----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode ); -#else - reset_metadata_spatial( ivas_format, hSCE->hMetaData, hSCE->element_brate, &st->total_brate, st->core_brate, nb_bits_metadata, st_ivas->sba_mode, IVAS_SCE ); -#endif /*----------------------------------------------------------------* * Write IVAS format signaling in SID frames *----------------------------------------------------------------*/ -#ifdef ALIGN_SID_SIZE if ( st->core_brate == SID_2k40 ) -#else - if ( st->core_brate == SID_2k40 && ( ivas_format != SBA_FORMAT || st_ivas->sba_mode != SBA_MODE_SPAR ) ) -#endif { ivas_write_format_sid( ivas_format, IVAS_SCE, st->hBstr ); } diff --git a/lib_enc/ivas_stereo_cng_enc.c b/lib_enc/ivas_stereo_cng_enc.c index 9176f9ad2f..31f5e7c794 100644 --- a/lib_enc/ivas_stereo_cng_enc.c +++ b/lib_enc/ivas_stereo_cng_enc.c @@ -148,12 +148,8 @@ void stereo_dft_enc_sid_coh( int16_t alpha_level; int16_t n; -#ifdef ALIGN_SID_SIZE /* TODO: still use old number of bits to keep bitexactness in output */ nr_of_sid_stereo_bits = ( 4400 /*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#else - nr_of_sid_stereo_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS; -#endif zeropad = 0; /* Encode coherence vector. Find best fixed predictor by minimizing prediction error on input vector. @@ -308,9 +304,7 @@ void stereo_dft_enc_sid_coh( ( *nb_bits )++; } -#ifdef ALIGN_SID_SIZE push_next_indice( hBstr, zeropad, ( IVAS_SID_5k2 - 4400 ) / FRAMES_PER_SEC ); -#endif return; } diff --git a/lib_enc/ivas_stereo_dft_enc.c b/lib_enc/ivas_stereo_dft_enc.c index 402003be6c..29e5d32c71 100644 --- a/lib_enc/ivas_stereo_dft_enc.c +++ b/lib_enc/ivas_stereo_dft_enc.c @@ -2317,11 +2317,7 @@ void stereo_dft_enc_write_BS( { stereo_dft_enc_sid_calc_coh( hStereoDft, hCPE->hStereoCng->coh_crossfade, &hCPE->hStereoCng->td_active, &hCPE->hStereoCng->first_SID, cohBand ); -#ifdef ALIGN_SID_SIZE if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 ) ) -#else - if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_ITD_MODE_NBITS - STEREO_DFT_SID_ITD_NBITS - 1 ) ) -#endif { if ( hStereoDft->hItd->itd[k_offset] != 0 ) { @@ -2397,11 +2393,7 @@ void stereo_dft_enc_write_BS( nb += STEREO_DFT_GIPD_NBITS; } } -#ifdef ALIGN_SID_SIZE else if ( *nb_bits <= ( ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS ) ) -#else - else if ( *nb_bits <= ( ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS - STEREO_DFT_FLAG_BITS - STEREO_DFT_SID_GIPD_NBITS ) ) -#endif { push_indice( hBstr, IND_STEREO_DFT_NO_IPD_FLAG, hStereoDft->no_ipd_flag, STEREO_DFT_FLAG_BITS ); nb += STEREO_DFT_FLAG_BITS; /*IPD mode flag: 1bit*/ -- GitLab From d63dc2ab5cdd49ac3049a31f2b09cfa5e3f0f305 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 7 Oct 2022 09:57:03 +0200 Subject: [PATCH 192/479] [cleanup] accept FIX_135_MDCT_STEREO_MODE_UNINITIALIZED --- lib_com/options.h | 1 - lib_dec/ivas_cpe_dec.c | 2 -- lib_dec/ivas_stereo_mdct_core_dec.c | 7 ------- 3 files changed, 10 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 65132ff19c..fa0d1d5136 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,6 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ #define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ -#define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ #define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index 692d0bcc1a..8e5ec212aa 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -791,12 +791,10 @@ ivas_error create_cpe_dec( set_s( hCPE->hStereoMdct->prev_ms_mask[0], 0, MAX_SFB ); set_s( hCPE->hStereoMdct->prev_ms_mask[1], 0, MAX_SFB ); hCPE->hStereoMdct->lastCoh = 1.f; -#ifdef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED hCPE->hStereoMdct->mdct_stereo_mode[0] = SMDCT_DUAL_MONO; hCPE->hStereoMdct->mdct_stereo_mode[1] = SMDCT_DUAL_MONO; hCPE->hStereoMdct->IGFStereoMode[0] = -1; hCPE->hStereoMdct->IGFStereoMode[1] = -1; -#endif } /*-----------------------------------------------------------------* diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index beb121a1fc..41d514b205 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -218,13 +218,6 @@ void stereo_mdct_core_dec( initMdctStereoDecData( hCPE->hStereoMdct, sts[0]->igf, sts[0]->hIGFDec->igfData.igfInfo.grid, hCPE->element_brate, sts[0]->bwidth ); hCPE->hStereoMdct->isSBAStereoMode = ( ( st_ivas->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); -#ifndef FIX_135_MDCT_STEREO_MODE_UNINITIALIZED - /*to prevent unitialized values during condition checks for stereo IGF*/ - if ( hCPE->hStereoMdct->isSBAStereoMode ) - { - set_s( hCPE->hStereoMdct->IGFStereoMode, -1, 2 ); - } -#endif if ( !bfi ) { -- GitLab From 1869f2e18a9bf261ad0f2e31d0e38739dc885ead Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 7 Oct 2022 09:58:37 +0200 Subject: [PATCH 193/479] [cleanup] accept FIX_CONTROLLABLE_SID_UPDATE_RATE --- lib_com/options.h | 1 - lib_enc/fd_cng_enc.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index fa0d1d5136..ca3cee71bb 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,7 +149,6 @@ #define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ #define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ -#define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ #define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ diff --git a/lib_enc/fd_cng_enc.c b/lib_enc/fd_cng_enc.c index e9bb6c18e3..e3a349b2ae 100644 --- a/lib_enc/fd_cng_enc.c +++ b/lib_enc/fd_cng_enc.c @@ -903,11 +903,9 @@ void stereoFdCngCoherence( sts[1]->core_brate = SID_2k40; } -#ifdef FIX_CONTROLLABLE_SID_UPDATE_RATE /* synchronize SID counters */ sts[0]->hDtxEnc->cnt_SID = min( sts[0]->hDtxEnc->cnt_SID, sts[1]->hDtxEnc->cnt_SID ); sts[1]->hDtxEnc->cnt_SID = sts[0]->hDtxEnc->cnt_SID; -#endif } pt_fftL = fft_buff[0]; -- GitLab From 4539535697a476a6a235f6e68774af548e9ff07a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 7 Oct 2022 10:44:43 +0200 Subject: [PATCH 194/479] [cleanup] accept FIX_CREND_CHANNELS --- lib_com/ivas_cnst.h | 3 --- lib_com/options.h | 1 - lib_dec/ivas_crend.c | 12 ------------ lib_dec/ivas_reverb.c | 7 ------- lib_dec/ivas_stat_dec.h | 22 ---------------------- 5 files changed, 45 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index df8bdf9827..02250e0f7f 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -165,9 +165,6 @@ typedef enum #define HEAD_ROTATION_HOA_ORDER 3 /* HOA 3rd order */ #define MAX_CICP_CHANNELS 16 /* max channels for loudspeaker layouts (16 for custom layouts)*/ #define MAX_OUTPUT_CHANNELS 16 /* Maximum number of output channels (HOA 3rd order) */ -#ifndef FIX_CREND_CHANNELS -#define IVAS_MAX_NUM_CH 16 /* == MAX_OUTPUT_CHANNELS */ -#endif #define FOA_CHANNELS 4 /* number of FOA channels */ diff --git a/lib_com/options.h b/lib_com/options.h index ca3cee71bb..374e60339f 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -150,7 +150,6 @@ #define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ #define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ -#define FIX_CREND_CHANNELS /* Issue 71: fix number of Crend channels */ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ diff --git a/lib_dec/ivas_crend.c b/lib_dec/ivas_crend.c index 54321f0ef2..796c4a9ed4 100644 --- a/lib_dec/ivas_crend.c +++ b/lib_dec/ivas_crend.c @@ -68,11 +68,7 @@ static ivas_error ivas_hrtf_init( hHrtf->gain_lfe = 0; hHrtf->index_frequency_max_diffuse = 0; -#ifdef FIX_CREND_CHANNELS for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) -#else - for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { hHrtf->inv_diffuse_weight[i] = 0; for ( j = 0; j < BINAURAL_CHANNELS; j++ ) @@ -677,11 +673,7 @@ ivas_error ivas_crend_open( hCrend->lfe_delay_line = NULL; -#ifdef FIX_CREND_CHANNELS for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) -#else - for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { hCrend->freq_buffer_re[i] = NULL; hCrend->freq_buffer_im[i] = NULL; @@ -832,11 +824,7 @@ ivas_error ivas_crend_close( { if ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) { -#ifdef FIX_CREND_CHANNELS for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) -#else - for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { if ( st_ivas->hCrend->freq_buffer_re[i] != NULL ) { diff --git a/lib_dec/ivas_reverb.c b/lib_dec/ivas_reverb.c index fc70f12a85..10d3a792a5 100644 --- a/lib_dec/ivas_reverb.c +++ b/lib_dec/ivas_reverb.c @@ -795,17 +795,10 @@ static void set_reverb_acoustic_data( { int16_t nr_out_ch, hrtf_idx, offset, iter_idx, bin_idx; float ln_1e6_inverted, delay_diff, exp_argument; -#ifdef FIX_CREND_CHANNELS float *pHrtf_set_l_re[MAX_INTERN_CHANNELS]; float *pHrtf_set_l_im[MAX_INTERN_CHANNELS]; float *pHrtf_set_r_re[MAX_INTERN_CHANNELS]; float *pHrtf_set_r_im[MAX_INTERN_CHANNELS]; -#else - float *pHrtf_set_l_re[IVAS_MAX_NUM_CH]; - float *pHrtf_set_l_im[IVAS_MAX_NUM_CH]; - float *pHrtf_set_r_re[IVAS_MAX_NUM_CH]; - float *pHrtf_set_r_im[IVAS_MAX_NUM_CH]; -#endif /* use crend hrtf filters */ if ( hHrtf != NULL ) diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 5d26372155..aae4dad4b4 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1682,36 +1682,19 @@ typedef struct ivas_binaural_td_rendering_struct typedef struct ivas_hrtfs_structure { -#ifdef FIX_CREND_CHANNELS float *pOut_to_bin_re[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; float *pOut_to_bin_im[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; -#else - float *pOut_to_bin_re[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; - float *pOut_to_bin_im[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; -#endif float *pOut_to_bin_diffuse_re[BINAURAL_CHANNELS]; float *pOut_to_bin_diffuse_im[BINAURAL_CHANNELS]; float latency_s; -#ifdef FIX_CREND_CHANNELS uint16_t num_iterations[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; -#else - uint16_t num_iterations[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; -#endif uint16_t num_iterations_diffuse[BINAURAL_CHANNELS]; -#ifdef FIX_CREND_CHANNELS uint16_t *pIndex_frequency_max[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; -#else - uint16_t *pIndex_frequency_max[IVAS_MAX_NUM_CH][BINAURAL_CHANNELS]; -#endif uint16_t *pIndex_frequency_max_diffuse[BINAURAL_CHANNELS]; uint16_t index_frequency_max_diffuse; int16_t max_num_ir; int16_t max_num_iterations; -#ifdef FIX_CREND_CHANNELS float inv_diffuse_weight[MAX_INTERN_CHANNELS]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ -#else - float inv_diffuse_weight[IVAS_MAX_NUM_CH]; /* inverse diffuse weights array, access one inverse weight by pInvDiffuseWeight[channel] */ -#endif float gain_lfe; } HRTFS_DATA, *HRTFS_HANDLE; @@ -1852,13 +1835,8 @@ typedef struct ivas_orient_trk_state_t /* Crend structures */ typedef struct ivas_crend_state_t { -#ifdef FIX_CREND_CHANNELS float *freq_buffer_re[MAX_INTERN_CHANNELS]; float *freq_buffer_im[MAX_INTERN_CHANNELS]; -#else - float *freq_buffer_re[IVAS_MAX_NUM_CH]; - float *freq_buffer_im[IVAS_MAX_NUM_CH]; -#endif float *freq_buffer_re_diffuse; float *freq_buffer_im_diffuse; float *prev_out_buffer[BINAURAL_CHANNELS]; -- GitLab From c17ede48e2babeef941a8a71c5d33f7e3393c70a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 7 Oct 2022 10:45:35 +0200 Subject: [PATCH 195/479] [cleanup] accept DRAM_REDUCTION_MCT_IGF --- lib_com/options.h | 1 - lib_com/prot.h | 8 -------- lib_enc/igf_enc.c | 4 ---- lib_enc/ivas_mct_enc_mct.c | 11 ----------- lib_enc/ivas_stereo_mdct_core_enc.c | 6 ------ lib_enc/tcx_utils_enc.c | 4 ---- 6 files changed, 34 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 374e60339f..e3acdcb3c1 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -151,7 +151,6 @@ #define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ -#define DRAM_REDUCTION_MCT_IGF /* Issue 121: reduce dynamic RAM consumption in MCT IGF */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ diff --git a/lib_com/prot.h b/lib_com/prot.h index 5cc6065e15..1f2e5a3042 100755 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -7396,11 +7396,7 @@ void ProcessStereoIGF( Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ -#ifdef DRAM_REDUCTION_MCT_IGF float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#else - float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ -#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i : inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subframe*/ @@ -9802,11 +9798,7 @@ void IGFEncApplyStereo( const IGF_ENC_INSTANCE_HANDLE hIGFEnc[CPE_CHANNELS], /* i : instance handle of IGF Encoder */ const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ -#ifdef DRAM_REDUCTION_MCT_IGF float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#else - float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i/o: inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subframe */ diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c index 7b658908b5..e355cd2083 100755 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -1852,11 +1852,7 @@ void IGFEncApplyStereo( const IGF_ENC_INSTANCE_HANDLE hIGFEnc[CPE_CHANNELS], /* i : instance handle of IGF Encoder */ const int16_t igfGridIdx, /* i : IGF grid index */ Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ -#ifdef DRAM_REDUCTION_MCT_IGF float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#else - float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i/o: inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subfr. */ diff --git a/lib_enc/ivas_mct_enc_mct.c b/lib_enc/ivas_mct_enc_mct.c index 309a023fe7..0e36280b20 100755 --- a/lib_enc/ivas_mct_enc_mct.c +++ b/lib_enc/ivas_mct_enc_mct.c @@ -834,11 +834,7 @@ void mctStereoIGF_enc( float *p_powerSpecMsInv[CPE_CHANNELS][NB_DIV]; float *p_inv_spectrum[CPE_CHANNELS][NB_DIV]; float *p_orig_spectrum[CPE_CHANNELS][NB_DIV]; -#ifdef DRAM_REDUCTION_MCT_IGF float *p_powerSpec[NB_DIV]; -#else - float p_powerSpec[NB_DIV][N_MAX]; -#endif int16_t singleChEle[MCT_MAX_CHANNELS]; L_subframeTCX = 0; /* to avoid compilation warning */ @@ -859,15 +855,8 @@ void mctStereoIGF_enc( p_st[0] = sts[ch1]; p_st[1] = sts[ch2]; -#ifdef DRAM_REDUCTION_MCT_IGF p_powerSpec[0] = powerSpec[ch1]; p_powerSpec[1] = powerSpec[ch2]; -#else - mvr2r( powerSpec[ch1], p_powerSpec[0], L_FRAME48k ); - set_f( &p_powerSpec[0][L_FRAME48k], 0.f, N_MAX - L_FRAME48k ); - mvr2r( powerSpec[ch2], p_powerSpec[1], L_FRAME48k ); - set_f( &p_powerSpec[1][L_FRAME48k], 0.f, N_MAX - L_FRAME48k ); -#endif /* Band-wise M/S for MDST */ nSubframes = p_st[0]->hTcxEnc->tcxMode == TCX_20 ? 1 : NB_DIV; diff --git a/lib_enc/ivas_stereo_mdct_core_enc.c b/lib_enc/ivas_stereo_mdct_core_enc.c index 664998967c..6d1e9a32b0 100755 --- a/lib_enc/ivas_stereo_mdct_core_enc.c +++ b/lib_enc/ivas_stereo_mdct_core_enc.c @@ -129,9 +129,7 @@ void stereo_mdct_core_enc( float *p_orig_spectrum_long[CPE_CHANNELS], orig_spectrum_long[CPE_CHANNELS][N_MAX]; /* MDCT output (L/R). */ float *orig_spectrum[CPE_CHANNELS][2]; /* Pointers to MDCT output for a short block (L/R) */ float powerSpec[CPE_CHANNELS][N_MAX]; -#ifdef DRAM_REDUCTION_MCT_IGF float *p_powerSpec[CPE_CHANNELS]; -#endif float powerSpecMsInv_long[CPE_CHANNELS][N_MAX]; /* MS inv power spectrum, also inverse MDST spectrum */ float *powerSpecMsInv[CPE_CHANNELS][2]; float quantized_spectrum_long[CPE_CHANNELS][N_MAX]; /* quantized MDCT spectrum, inv ms mask mdst spectrum, scratch for MS spectra in the MS decision */ @@ -354,13 +352,9 @@ void stereo_mdct_core_enc( hStereoMdct->mdct_stereo_mode[n] == SMDCT_BW_MS ) && !hStereoMdct->isSBAStereoMode ) { -#ifdef DRAM_REDUCTION_MCT_IGF p_powerSpec[0] = powerSpec[0]; p_powerSpec[1] = powerSpec[1]; ProcessStereoIGF( hStereoMdct, sts, ms_mask, orig_spectrum, p_powerSpec, powerSpecMsInv, inv_spectrum, n, hCPE->hCoreCoder[0]->sp_aud_decision0, hCPE->hCoreCoder[0]->element_brate, 0 ); -#else - ProcessStereoIGF( hStereoMdct, sts, ms_mask, orig_spectrum, powerSpec, powerSpecMsInv, inv_spectrum, n, hCPE->hCoreCoder[0]->sp_aud_decision0, hCPE->hCoreCoder[0]->element_brate, 0 ); -#endif } else { diff --git a/lib_enc/tcx_utils_enc.c b/lib_enc/tcx_utils_enc.c index 9b272f0dee..04b6f0a206 100755 --- a/lib_enc/tcx_utils_enc.c +++ b/lib_enc/tcx_utils_enc.c @@ -1509,11 +1509,7 @@ void ProcessStereoIGF( Encoder_State *sts[CPE_CHANNELS], /* i : Encoder state */ int16_t ms_mask[2][MAX_SFB], /* i : bandwise MS mask */ float *pITFMDCTSpectrum[CPE_CHANNELS][2], /* i : MDCT spectrum fir ITF */ -#ifdef DRAM_REDUCTION_MCT_IGF float *pPowerSpectrum[CPE_CHANNELS], /* i/o: MDCT^2 + MDST^2 spectrum, or estimate */ -#else - float pPowerSpectrum[CPE_CHANNELS][N_MAX], /* i : MDCT^2 + MDST^2 spectrum, or estimate */ -#endif float *pPowerSpectrumMsInv[CPE_CHANNELS][2], /* i : inverse power spectrum */ float *inv_spectrum[CPE_CHANNELS][2], /* i : inverse spectrum */ const int16_t frameno, /* i : flag indicating index of current subfr. */ -- GitLab From 6109d80baecb9278f588ae00595be88dfea62bd0 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 7 Oct 2022 10:58:58 +0200 Subject: [PATCH 196/479] [cleanup] formatting --- lib_com/ivas_stereo_psychlpc_com.c | 3 ++- lib_dec/acelp_core_dec.c | 1 - lib_dec/dec_tcx.c | 10 +++++----- lib_dec/igf_dec.c | 9 ++++----- lib_dec/ivas_core_dec.c | 1 - lib_dec/ivas_objectRenderer.c | 6 +++--- lib_dec/ivas_objectRenderer_hrFilt.c | 1 - lib_dec/ivas_objectRenderer_sfx.c | 6 +++--- lib_dec/tonalMDCTconcealment.c | 7 +++---- lib_enc/ivas_qmetadata_enc.c | 2 +- 10 files changed, 21 insertions(+), 25 deletions(-) diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index 4ca10255a7..cdc48f5f98 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -71,7 +71,8 @@ static void SpectrumWeighting_Init( #ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE static #endif -ivas_error PsychoacousticParameters_Init( + ivas_error + PsychoacousticParameters_Init( const int32_t sr_core, /* i : sampling rate of core-coder */ const int16_t nBins, /* i : Number of bins (spectral lines) */ const int8_t nBands, /* i : Number of spectrum subbands */ diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c index e15951d7f3..ed91a78e09 100644 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -706,7 +706,6 @@ ivas_error acelp_core_dec( { /* Prepare ACB memory of old_bwe_exc */ lerp( old_exc, old_bwe_exc, L_EXC_MEM_DEC * HIBND_ACB_L_FAC, L_EXC_MEM_DEC ); - } #endif /*-----------------------------------------------------------------* diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index f7a6db5c3e..f83a415a9c 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -213,7 +213,7 @@ void decoder_tcx_post( gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / ( level_syn + 0.01f ); #ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS - if ( st->element_mode == IVAS_CPE_MDCT && ! isMCT ) + if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) { if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME + MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN ) { @@ -714,7 +714,7 @@ void decoder_tcx_invQ( float *gain_tcx, const int16_t **prm_sqQ1, int16_t *nf_seed, - const int16_t bfi, /* i : Bad frame indicator */ + const int16_t bfi, /* i : Bad frame indicator */ const int16_t frame_cnt /* i : frame counter in the super frame */ ) { @@ -1979,10 +1979,10 @@ void decoder_tcx_IGF_stereo( const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - const int16_t bfi, /* i : bad frame indicator */ - const int16_t is_mct /* i : flag to signal MCT or SMDCT */ + const int16_t bfi, /* i : bad frame indicator */ + const int16_t is_mct /* i : flag to signal MCT or SMDCT */ #else - const int16_t bfi /* i : bad frame indicator */ + const int16_t bfi /* i : bad frame indicator */ #endif ) { diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index fecc8e96df..d3638ea44a 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -680,10 +680,10 @@ static void IGF_appl( const float *igf_spec, /* i : Q31 | prepared IGF spectrum */ float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ - const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ + int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ + const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ #else - int16_t *flag_sparse /* o : Q0 | temp flattening indicator */ + int16_t *flag_sparse /* o : Q0 | temp flattening indicator */ #endif ) { @@ -1616,8 +1616,7 @@ void init_igf_dec( int16_t get_igf_startline( Decoder_State *st, int16_t L_frame, - int16_t L_frameTCX -) + int16_t L_frameTCX ) { int16_t igf_startline; diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index ad350f4e30..12274f8762 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -442,7 +442,6 @@ ivas_error ivas_core_dec( } } #endif - } /*---------------------------------------------------------------------* diff --git a/lib_dec/ivas_objectRenderer.c b/lib_dec/ivas_objectRenderer.c index f74a25d1da..59e63bd9ff 100644 --- a/lib_dec/ivas_objectRenderer.c +++ b/lib_dec/ivas_objectRenderer.c @@ -276,9 +276,9 @@ void ObjRenderIVASFrame( static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ float output[][L_FRAME48k], /* i/o: ISm object synth / rendered output in 0,1 */ - const int16_t subframe_length, /* i/o: subframe length */ - const int32_t output_Fs, /* i : Output sampling rate */ - const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ + const int16_t subframe_length, /* i/o: subframe length */ + const int32_t output_Fs, /* i : Output sampling rate */ + const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ ) { int16_t i; diff --git a/lib_dec/ivas_objectRenderer_hrFilt.c b/lib_dec/ivas_objectRenderer_hrFilt.c index e04c5f3716..d4acda0257 100644 --- a/lib_dec/ivas_objectRenderer_hrFilt.c +++ b/lib_dec/ivas_objectRenderer_hrFilt.c @@ -383,7 +383,6 @@ ivas_error TDREND_REND_RenderSourceHRFilt( Src_p->InputFrame_p += subframe_length; /* Increment input pointer -- todo: should we remove this and input the current subframe instead? */ - return IVAS_ERR_OK; } diff --git a/lib_dec/ivas_objectRenderer_sfx.c b/lib_dec/ivas_objectRenderer_sfx.c index bd54a767ae..693180c48a 100644 --- a/lib_dec/ivas_objectRenderer_sfx.c +++ b/lib_dec/ivas_objectRenderer_sfx.c @@ -928,9 +928,9 @@ static void TDREND_SFX_SpatBin_UpdateParams( --------------------------------------------------------------------*/ void TDREND_SFX_SpatBin_Execute_Main( - SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ - const float *InBuffer_p, /* i : Input buffer */ - const int16_t subframe_length, /* i : subframe length */ + SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ + const float *InBuffer_p, /* i : Input buffer */ + const int16_t subframe_length, /* i : subframe length */ float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 776d28bcb5..6c0203ed42 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -617,7 +617,7 @@ void TonalMDCTConceal_InsertNoise( { last_block_nrg_correct += hTonalMDCTConc->lastBlockData.spectralData[l] * hTonalMDCTConc->lastBlockData.spectralData[l]; hTonalMDCTConc->curr_noise_nrg -= concealment_noise[l] * concealment_noise[l]; - } + } } } @@ -732,7 +732,7 @@ void TonalMDCTConceal_InsertNoise( if ( hTonalMDCTConc->faded_signal_nrg > 0.0f && hTonalMDCTConc->curr_noise_nrg > MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG ) { float nrg_corr_factor; - + nrg_corr_factor = sqrtf( ( hTonalMDCTConc->last_block_nrg - last_block_nrg_correct ) / hTonalMDCTConc->faded_signal_nrg ); v_multc( mdctSpectrum, nrg_corr_factor, mdctSpectrum, crossOverFreq ); } @@ -1155,8 +1155,7 @@ void TonalMdctConceal_create_concealment_noise( void TonalMdctConceal_whiten_noise_shape( Decoder_State *st, const int16_t L_frame, - const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE whitening_mode -) + const TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE whitening_mode ) { int16_t inc, start_idx, stop_idx; float *noiseLevelPtr, *scfs_bg, *scfs_for_shaping; diff --git a/lib_enc/ivas_qmetadata_enc.c b/lib_enc/ivas_qmetadata_enc.c index ae4af46855..c9f0bd70ff 100644 --- a/lib_enc/ivas_qmetadata_enc.c +++ b/lib_enc/ivas_qmetadata_enc.c @@ -913,7 +913,7 @@ void reset_metadata_spatial( int32_t *total_brate, /* o : total bitrate */ const int32_t core_brate, /* i : core bitrate */ const int16_t nb_bits_metadata, /* i : number of meatdata bits */ - const SBA_MODE sba_mode /* i : SBA mode */ + const SBA_MODE sba_mode /* i : SBA mode */ ) { int16_t i, next_ind_sid, last_ind_sid; -- GitLab From 854c6c8cd19bdbd1f752c152693b359e40c3d52e Mon Sep 17 00:00:00 2001 From: Srikanth Korse Date: Fri, 7 Oct 2022 13:12:17 +0200 Subject: [PATCH 197/479] [feature] Issue 115: Bitrate Switching Support for ISM --- lib_com/options.h | 2 + lib_dec/ivas_ism_param_dec.c | 227 ++++++++++++++++++++++++++++++++++- lib_enc/ivas_ism_param_enc.c | 127 ++++++++++++++++++++ 3 files changed, 355 insertions(+), 1 deletion(-) mode change 100755 => 100644 lib_com/options.h diff --git a/lib_com/options.h b/lib_com/options.h old mode 100755 new mode 100644 index e3acdcb3c1..fb1ddd63f3 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -153,6 +153,8 @@ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ +#define ISM_BITRATE_SWITCHING + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index be2b9eb350..b76c88739d 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1003,6 +1003,207 @@ void ivas_param_ism_params_to_masa_param_mapping( return; } + + +#ifdef ISM_BITRATE_SWITCHING +static ivas_error ivas_ism_format_bitrate_switching( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t last_nchan_trans, /* i : last number of SCE channels in the bitstream */ + const ISM_MODE last_ism_mode, /* i : last ISM mode */ + const int16_t num_obj /* i : number of objects in the bitstream */ +) +{ + int16_t sce_id; + ivas_error error; + int32_t element_brate_tmp[MAX_NUM_OBJECTS]; + + error = IVAS_ERR_OK; + + ivas_ism_config(st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, num_obj, NULL, NULL, NULL, element_brate_tmp, NULL, NULL); + + if (st_ivas->nchan_transport > last_nchan_trans) + { + /* Initialize for new bitrate */ + for (sce_id = 0;sce_id < last_nchan_trans;sce_id++) + { + st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + + /* Initialize some memories */ + for (sce_id = last_nchan_trans; sce_id < st_ivas->nchan_transport; sce_id++) + { + if ((error = create_sce_dec(st_ivas, sce_id, element_brate_tmp[sce_id])) != IVAS_ERR_OK) + { + return error; + } + } + } + else + { + /* Initialize for new bitrate */ + for (sce_id = 0;sce_id < st_ivas->nchan_transport; sce_id++) + { + st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + + /* Destroy the core coder memory */ + for (; sce_id < last_nchan_trans; sce_id++) + { + destroy_sce_dec(st_ivas->hSCE[sce_id]); + st_ivas->hSCE[sce_id] = NULL; + } + + } + + /* destroy the memory of hp20*/ + if (st_ivas->mem_hp20_out != NULL) + { + for (sce_id = 0; sce_id < last_nchan_trans; sce_id++) + { + count_free(st_ivas->mem_hp20_out[sce_id]); + st_ivas->mem_hp20_out[sce_id] = NULL; + } + count_free(st_ivas->mem_hp20_out); + st_ivas->mem_hp20_out = NULL; + } + + /* re initialize the memory of hp20 */ + /* set number of input channels used for analysis/coding */ + + if (st_ivas->nchan_transport > 0) + { + if ((st_ivas->mem_hp20_out = (float **)count_malloc(st_ivas->nchan_transport * sizeof(float *))) == NULL) + { + return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); + } + } + else + { + st_ivas->mem_hp20_out = NULL; + } + + for (sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++) + { + if ((st_ivas->mem_hp20_out[sce_id] = (float *)count_malloc(L_HP20_MEM * sizeof(float))) == NULL) + { + return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); + } + + set_f(st_ivas->mem_hp20_out[sce_id], 0.0f, L_HP20_MEM); + } + + + /* Initialize the needed renderer struct and destroy the unnecessary renderer struct */ + + /* select the renderer */ + ivas_renderer_select(st_ivas); + ivas_output_init(&(st_ivas->hIntSetup), st_ivas->intern_config); + if ((st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC) && (st_ivas->ism_mode == ISM_MODE_DISC)) + { + ivas_output_init(&(st_ivas->hIntSetup), st_ivas->hDecoderConfig->output_config); + } + + if (st_ivas->ism_mode != last_ism_mode) + { + /* EFAP handle */ + efap_free_data(&st_ivas->hEFAPdata); + } + + if (st_ivas->ism_mode == ISM_MODE_DISC && last_ism_mode == ISM_MODE_PARAM) + { + /* switching from ParamISM to DiscISM */ + + /* close the ParamISM struct */ + if (st_ivas->hDirAC != NULL) + { + ivas_param_ism_dec_close(st_ivas->hDirAC, st_ivas->hDecoderConfig->output_config); + st_ivas->hDirAC = NULL; + } + + if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL) + { + /* close the parametric binaural renderer */ + ivas_dirac_dec_close_binaural_data(&st_ivas->hDiracDecBin); + + /* Open the TD Binaural renderer */ + ivas_td_binaural_open(st_ivas); + } + else + { + /* close the ISM renderer and reinitialize */ + if (st_ivas->hIsmRendererData != NULL) + { + count_free(st_ivas->hIsmRendererData); + st_ivas->hIsmRendererData = NULL; + } + ivas_ism_renderer_open(st_ivas); + } + + if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM) + { + /* close the parametric binaural renderer */ + ivas_dirac_dec_close_binaural_data(&st_ivas->hDiracDecBin); + + /* Open Crend Binaural renderer */ + ivas_crend_open(st_ivas); + } + } + + if (st_ivas->ism_mode == ISM_MODE_PARAM && last_ism_mode == ISM_MODE_DISC) + { + /* switching from DiscISM to ParamISM */ + + /* Initialize the ParamISM struct */ + ivas_param_ism_dec_open(st_ivas); + + if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL) + { + /* open the parametric binaural renderer */ + ivas_dirac_dec_init_binaural_data(st_ivas); + + /* Close the TD Binaural renderer */ + if (st_ivas->hBinRendererTd != NULL) + { + ivas_td_binaural_close(&st_ivas->hBinRendererTd); + } + + if (st_ivas->hHrtfTD != NULL) + { + st_ivas->hHrtfTD = NULL; + } + } + else + { + /* Close the ISM renderer */ + if (st_ivas->hIsmRendererData != NULL) + { + count_free(st_ivas->hIsmRendererData); + st_ivas->hIsmRendererData = NULL; + } + } + + if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM) + { + /* open the parametric binaural renderer */ + ivas_dirac_dec_init_binaural_data(st_ivas); + + /* close the crend binaural renderer */ + ivas_crend_close(st_ivas); + + if (st_ivas->hHrtf != NULL) + { + st_ivas->hHrtf = NULL; + } + } + + } + + return error; +} +#endif + /*------------------------------------------------------------------------- * ivas_ism_dec_config() * @@ -1019,13 +1220,24 @@ ivas_error ivas_ism_dec_config( int32_t ivas_total_brate; ISM_MODE last_ism_mode; ivas_error error; +#ifdef ISM_BITRATE_SWITCHING + int16_t last_nchan_trans; +#endif error = IVAS_ERR_OK; ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; /* store last frame ISM mode */ - last_ism_mode = st_ivas->ism_mode; + last_ism_mode = st_ivas->ism_mode; +#ifdef ISM_BITRATE_SWITCHING + /* Assumes that num of input objects are constant */ + last_nchan_trans = num_obj; + if (last_ism_mode == ISM_MODE_PARAM) + { + last_nchan_trans = 2; + } +#endif if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_5k2 && ivas_total_brate != FRAME_NO_DATA ) { @@ -1044,18 +1256,31 @@ ivas_error ivas_ism_dec_config( if ( st_ivas->ini_active_frame != 0 ) { +#ifdef ISM_BITRATE_SWITCHING + /* ISM format/bitrate switching */ + if ((st_ivas->hDecoderConfig->last_ivas_total_brate != IVAS_SID_5k2) && (st_ivas->hDecoderConfig->last_ivas_total_brate != FRAME_NO_DATA)) + { + if ((st_ivas->ism_mode != last_ism_mode) || (st_ivas->hDecoderConfig->ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate)) + { + ivas_ism_format_bitrate_switching(st_ivas, last_nchan_trans, last_ism_mode, num_obj); + st_ivas->nSCE = st_ivas->nchan_transport; + } + } +#else /* ISM format switching */ if ( st_ivas->ism_mode != last_ism_mode ) { /*ivas_ism_dec_reconfigure( st_ivas );*/ return IVAS_ERROR( IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, "\n\n!!! Error: ISM format switching not supported yet!!!\n\n" ); } +#endif } } else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) { st_ivas->nchan_transport = num_obj; } + switch ( num_obj ) { case 1: diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index e515f7e204..81c1513d16 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -415,20 +415,147 @@ ivas_error ivas_ism_enc_config( { ivas_error error; ISM_MODE last_ism_mode; +#ifdef ISM_BITRATE_SWITCHING + int16_t last_nSCE; + int16_t sce_id, n; +#endif error = IVAS_ERR_OK; last_ism_mode = st_ivas->ism_mode; +#ifdef ISM_BITRATE_SWITCHING + last_nSCE = st_ivas->nSCE; +#endif /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( st_ivas->hEncoderConfig->nchan_inp, st_ivas->hEncoderConfig->ivas_total_brate ); +#ifdef ISM_BITRATE_SWITCHING + /* ISM format switching */ + if ( (st_ivas->ism_mode != last_ism_mode) || (st_ivas->hEncoderConfig->ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate) ) + { + int32_t element_brate_tmp[MAX_NUM_OBJECTS]; + Indice *ind_list_sce; /* list of indices */ + Indice *ind_list_metadata; /* list of indices */ + + /* Reset and Initialize */ + if ((error = create_ism_metadata_enc(st_ivas, st_ivas->hEncoderConfig->nchan_inp, element_brate_tmp)) != IVAS_ERR_OK) + { + return error; + } + + if (st_ivas->nSCE > last_nSCE) + { + /* Reconfigure the core coders */ + for (sce_id = 0; sce_id < last_nSCE; sce_id++) + { + copy_encoder_config(st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0); + st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + + /* Initialize the extra required memory */ + ind_list_sce = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr->ind_list; + ind_list_metadata = st_ivas->hSCE[0]->hMetaData->ind_list; + + for (sce_id = last_nSCE; sce_id < st_ivas->nSCE; sce_id++) + { + /* Initialize the Core Coder */ + if ((error = create_sce_enc(st_ivas, sce_id, element_brate_tmp[sce_id])) != IVAS_ERR_OK) + { + return error; + } + + /* prepare bitstream buffers */ + st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list_sce + (sce_id * MAX_NUM_INDICES); + reset_indices_enc(st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES); + + st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + (sce_id * MAX_BITS_METADATA); + reset_indices_enc(st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA); + } + } + else + { + /* Reconfigure the Core Coders */ + for (sce_id = 0; sce_id < st_ivas->nSCE; sce_id++) + { + copy_encoder_config(st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0); + st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; + st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + } + + /* Delete the extra memory */ + for (sce_id = st_ivas->nSCE; sce_id < last_nSCE; sce_id++) + { + if (st_ivas->hSCE[sce_id] != NULL) + { + destroy_sce_enc(st_ivas->hSCE[sce_id]); + st_ivas->hSCE[sce_id] = NULL; + } + } + } + + if ((st_ivas->ism_mode == ISM_MODE_PARAM) && (last_ism_mode == ISM_MODE_DISC)) + { + /* Initialize the memory used by ParamISM when switch to Param ISM from Disc ISM */ + if ((error = ivas_param_ism_enc_open(st_ivas)) != IVAS_ERR_OK) + { + return error; + } + } + + if ((st_ivas->ism_mode == ISM_MODE_DISC) && (last_ism_mode == ISM_MODE_PARAM)) + { + /* Reset the memory used by ParamISM when switch to Disc ISM */ + ivas_param_ism_enc_close(st_ivas->hDirAC, st_ivas->hEncoderConfig->input_Fs); + } + + /* destroy the memory of hp20*/ + if (st_ivas->mem_hp20_in != NULL) + { + for (sce_id = 0; sce_id < last_nSCE; sce_id++) + { + count_free(st_ivas->mem_hp20_in[sce_id]); + st_ivas->mem_hp20_in[sce_id] = NULL; + } + count_free(st_ivas->mem_hp20_in); + st_ivas->mem_hp20_in = NULL; + } + + /* re initialize the memory of hp20 */ + /* set number of input channels used for analysis/coding */ + n = getNumChanAnalysis(st_ivas); + + if (n > 0) + { + if ((st_ivas->mem_hp20_in = (float **)count_malloc(n * sizeof(float *))) == NULL) + { + return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); + } + } + else + { + st_ivas->mem_hp20_in = NULL; + } + + for (sce_id = 0; sce_id < n; sce_id++) + { + if ((st_ivas->mem_hp20_in[sce_id] = (float *)count_malloc(L_HP20_MEM * sizeof(float))) == NULL) + { + return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); + } + + set_f(st_ivas->mem_hp20_in[sce_id], 0.0f, L_HP20_MEM); + } + } +#else /* ISM format switching */ if ( st_ivas->ism_mode != last_ism_mode ) { /*ivas_ism_dec_reconfigure( st_ivas );*/ return IVAS_ERROR( IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, "Error: ISM format switching not supported yet!!!\n\n" ); } +#endif return error; } -- GitLab From 9e8f41d0373e671b099e89d052c94fb2e159fbfc Mon Sep 17 00:00:00 2001 From: Srikanth Korse Date: Fri, 7 Oct 2022 13:13:28 +0200 Subject: [PATCH 198/479] addition of definition to switch --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index fb1ddd63f3..816ad9bb90 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -153,7 +153,7 @@ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ -#define ISM_BITRATE_SWITCHING +#define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ /* ################## End DEVELOPMENT switches ######################### */ -- GitLab From b8d4159c78dfcf24f70767397a4393b2dc74475f Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 7 Oct 2022 15:15:36 +0200 Subject: [PATCH 199/479] add fixes to enable FIX_I106_TDREND_5MS --- lib_com/options.h | 2 +- lib_rend/ivas_objectRenderer.c | 150 ++++++++++++++++++++++++++------- 2 files changed, 122 insertions(+), 30 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index b6f4b44ea2..832ffb11b7 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,7 @@ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -// #define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ +#define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index 4a297aba55..21c734af4d 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -57,8 +57,22 @@ static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRenderer #endif static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); #ifdef FIX_I106_TDREND_5MS -static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, const Quaternion *headPosition ); -static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t numSources, const IVAS_FORMAT in_format, const ISM_METADATA_HANDLE *hIsmMetaData, float output[][L_FRAME48k] ); +static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, + const int16_t headRotEnabled, +#ifdef EXT_RENDERER + const IVAS_QUATERNION *headPosition +#else + const Quaternion *headPosition +#endif +); +static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, + const int16_t numSources, +#ifdef EXT_RENDERER + const int16_t lfe_idx, +#endif + const IVAS_FORMAT in_format, + const ISM_METADATA_HANDLE *hIsmMetaData, + float output[][L_FRAME48k] ); #endif /*---------------------------------------------------------------------* @@ -357,8 +371,12 @@ void ObjRenderIVASFrame( } #ifdef FIX_I106_TDREND_5MS - /* Update object position(s) */ +/* Update object position(s) */ +#ifdef EXT_RENDERER + TDREND_Update_object_positions( st_ivas->hBinRendererTd, st_ivas->nchan_transport, LFE_CHANNEL, st_ivas->ivas_format, st_ivas->hIsmMetaData, output ); +#else TDREND_Update_object_positions( st_ivas->hBinRendererTd, st_ivas->nchan_transport, st_ivas->ivas_format, st_ivas->hIsmMetaData, output ); +#endif for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { @@ -530,9 +548,12 @@ static void TDREND_Clear_Update_flags( static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o : TD Renderer handle */ const int16_t numSources, /* i : Number of sources to render */ - const IVAS_FORMAT in_format, /* i : Format of input sources */ - const ISM_METADATA_HANDLE *hIsmMetaData, /* i : Input metadata for ISM objects */ - float output[][L_FRAME48k] /* i/o: SCE/MC channels */ +#ifdef EXT_RENDERER + const int16_t lfe_idx, /* i : Input LFE index */ +#endif + const IVAS_FORMAT in_format, /* i : Format of input sources */ + const ISM_METADATA_HANDLE *hIsmMetaData, /* i : Input metadata for ISM objects */ + float output[][L_FRAME48k] /* i/o: SCE/MC channels */ ) { TDREND_DirAtten_t *DirAtten_p; @@ -547,7 +568,11 @@ static void TDREND_Update_object_positions( c_indx = 0; for ( nS = 0; nS < numSources; nS++ ) { +#ifdef EXT_RENDERER + if ( !( in_format == MC_FORMAT && nS == lfe_idx ) ) /* Skip LFE for MC */ +#else if ( !( in_format == MC_FORMAT && nS == LFE_CHANNEL ) ) /* Skip LFE for MC */ +#endif { hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; @@ -591,7 +616,11 @@ static void TDREND_Update_object_positions( static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ const int16_t headRotEnabled, /* i : Headrotation flag */ - const Quaternion *headPosition /* i : Head Position */ +#ifdef EXT_RENDERER + const IVAS_QUATERNION *headPosition /* i : Head Position */ +#else + const Quaternion *headPosition /* i : Head Position */ +#endif ) { float Pos[3]; @@ -800,32 +829,54 @@ ivas_error ivas_rend_TDObjRenderFrame( float output[][L_FRAME48k] /* i/o: SCE channels / Binaural synthesis */ ) { +#ifndef FIX_I106_TDREND_5MS TDREND_DirAtten_t *DirAtten_p; int16_t nS; - int16_t lfe_idx; - int16_t c_indx; - int32_t nchan_in; float Pos[3]; float Dir[3]; float FrontVec[3]; float UpVec[3]; float Rmat[3][3]; + int16_t c_indx; +#else + int16_t subframe_length; + int16_t subframe_idx; + ISM_METADATA_HANDLE hIsmMetaData[1]; +#endif + int16_t lfe_idx; + int32_t num_src; /* TODO tmu : pass down renderer config struct */ // float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; + IVAS_FORMAT ivas_format; IVAS_REND_AudioConfigType inConfigType; inConfigType = getAudioConfigType( inConfig ); - if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + lfe_idx = LFE_CHANNEL; + if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) { - lfe_idx = LFE_CHANNEL; - getAudioConfigNumChannels( inConfig, &nchan_in ); + ivas_format = MC_FORMAT; + if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + getAudioConfigNumChannels( inConfig, &num_src ); + } + else + { + lfe_idx = ( customLsInput->num_lfe > 0 ) ? customLsInput->lfe_idx[0] : -1; + num_src = customLsInput->num_spk + customLsInput->num_lfe; + } } else { - lfe_idx = ( customLsInput->num_lfe > 0 ) ? customLsInput->lfe_idx[0] : -1; - nchan_in = customLsInput->num_spk + customLsInput->num_lfe; + ivas_format = ISM_FORMAT; + num_src = 1; + hIsmMetaData[0] = count_malloc( sizeof( ISM_METADATA_FRAME ) ); + hIsmMetaData[0]->azimuth = currentPos->azimuth; + hIsmMetaData[0]->elevation = currentPos->elevation; } +#ifdef FIX_I106_TDREND_5MS + subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; +#else DirAtten_p = pTDRend->hBinRendererTd->DirAtten_p; /* Update the listener's location/orientation */ @@ -865,7 +916,7 @@ ivas_error ivas_rend_TDObjRenderFrame( /* For each source, write the frame data to the source object*/ c_indx = 0; - for ( nS = 0; nS < nchan_in; nS++ ) + for ( nS = 0; nS < num_src; nS++ ) { if ( !( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED && nS == lfe_idx ) ) /* Skip LFE for MC */ { @@ -897,25 +948,66 @@ ivas_error ivas_rend_TDObjRenderFrame( TDREND_MIX_SRC_SetPlayState( pTDRend->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); } } +#endif - /* TODO tmu : pass down renderer config struct */ - // if ( pTDRend->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ + /* TODO tmu : pass down renderer config struct and decide what to do about ini_frame ? */ + // if ( hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ // { - // if ( pTDRend->hRenderConfig->roomAcoustics.late_reverb_on ) - // { - // if ( pTDRend->ini_frame == 0 ) - // { - // ivas_reverb_open( &pTDRend->hCrend->hReverb, pTDRend->transport_config, NULL, pTDRend->hRenderConfig, pTDRend->hDecoderConfig->output_Fs ); - // } - // for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) - // { - // ivas_reverb_process( pTDRend->hCrend->hReverb, pTDRend->transport_config, 0, output, reverb_signal, subframe_idx ); - // } - // } +#ifdef FIX_I106_TDREND_5MS +// if ( hRenderConfig->roomAcoustics.late_reverb_on && ( st_ivas->ini_frame == 0 ) ) +// { +// ivas_reverb_open( &pTDRend->hCrend->hReverb, pTDRend->transport_config, NULL, pTDRend->hRenderConfig, pTDRend->hDecoderConfig->output_Fs ); +// } +#else +// if ( pTDRend->hRenderConfig->roomAcoustics.late_reverb_on ) +// { +// if ( pTDRend->ini_frame == 0 ) +// { +// ivas_reverb_open( &pTDRend->hCrend->hReverb, pTDRend->transport_config, NULL, pTDRend->hRenderConfig, pTDRend->hDecoderConfig->output_Fs ); +// } +// for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) +// { +// ivas_reverb_process( pTDRend->hCrend->hReverb, pTDRend->transport_config, 0, output, reverb_signal, subframe_idx ); +// } +// } +#endif // } +#ifdef FIX_I106_TDREND_5MS + /* Update object position(s) */ + TDREND_Update_object_positions( pTDRend->hBinRendererTd, + num_src, + lfe_idx, + ivas_format, + hIsmMetaData, + output ); + + /* TODO tmu : needs a refactor / better approach */ + if ( ivas_format == ISM_FORMAT ) + { + count_free( hIsmMetaData[0] ); + } + + for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) + { + /* Update the listener's location/orientation */ + TDREND_Update_listener_orientation( pTDRend->hBinRendererTd, + headRotData->headRotEnabled, + ( headRotData != NULL ) ? &headRotData->headPositions[subframe_idx] : NULL ); + + /* TODO tmu : pass down renderer config struct */ + // if ( ( hRenderConfig != NULL ) && ( hRenderConfig->roomAcoustics.late_reverb_on ) ) + // { + // ivas_reverb_process( hCrend->hReverb, transport_config, 0, output, reverb_signal, subframe_idx ); + // } + + /* Render subframe */ + TDREND_GetMix( pTDRend->hBinRendererTd, output, subframe_length, output_Fs, subframe_idx ); + } +#else /* Call the renderer */ TDREND_GetMix( pTDRend->hBinRendererTd, output, output_frame, output_Fs ); +#endif /* TODO tmu : pass down renderer config struct */ // if ( pTDRend->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ -- GitLab From 7d0a06768b3a5103cc6f8b2e15c76878f68c9f13 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 7 Oct 2022 15:15:36 +0200 Subject: [PATCH 200/479] add fixes to enable FIX_I106_TDREND_5MS --- lib_com/options.h | 2 +- lib_rend/ivas_objectRenderer.c | 150 ++++++++++++++++++++++++++------- scripts/tests/test_renderer.py | 6 +- 3 files changed, 125 insertions(+), 33 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index b6f4b44ea2..832ffb11b7 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,7 @@ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -// #define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ +#define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index 4a297aba55..21c734af4d 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -57,8 +57,22 @@ static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRenderer #endif static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); #ifdef FIX_I106_TDREND_5MS -static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, const Quaternion *headPosition ); -static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t numSources, const IVAS_FORMAT in_format, const ISM_METADATA_HANDLE *hIsmMetaData, float output[][L_FRAME48k] ); +static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, + const int16_t headRotEnabled, +#ifdef EXT_RENDERER + const IVAS_QUATERNION *headPosition +#else + const Quaternion *headPosition +#endif +); +static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, + const int16_t numSources, +#ifdef EXT_RENDERER + const int16_t lfe_idx, +#endif + const IVAS_FORMAT in_format, + const ISM_METADATA_HANDLE *hIsmMetaData, + float output[][L_FRAME48k] ); #endif /*---------------------------------------------------------------------* @@ -357,8 +371,12 @@ void ObjRenderIVASFrame( } #ifdef FIX_I106_TDREND_5MS - /* Update object position(s) */ +/* Update object position(s) */ +#ifdef EXT_RENDERER + TDREND_Update_object_positions( st_ivas->hBinRendererTd, st_ivas->nchan_transport, LFE_CHANNEL, st_ivas->ivas_format, st_ivas->hIsmMetaData, output ); +#else TDREND_Update_object_positions( st_ivas->hBinRendererTd, st_ivas->nchan_transport, st_ivas->ivas_format, st_ivas->hIsmMetaData, output ); +#endif for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { @@ -530,9 +548,12 @@ static void TDREND_Clear_Update_flags( static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o : TD Renderer handle */ const int16_t numSources, /* i : Number of sources to render */ - const IVAS_FORMAT in_format, /* i : Format of input sources */ - const ISM_METADATA_HANDLE *hIsmMetaData, /* i : Input metadata for ISM objects */ - float output[][L_FRAME48k] /* i/o: SCE/MC channels */ +#ifdef EXT_RENDERER + const int16_t lfe_idx, /* i : Input LFE index */ +#endif + const IVAS_FORMAT in_format, /* i : Format of input sources */ + const ISM_METADATA_HANDLE *hIsmMetaData, /* i : Input metadata for ISM objects */ + float output[][L_FRAME48k] /* i/o: SCE/MC channels */ ) { TDREND_DirAtten_t *DirAtten_p; @@ -547,7 +568,11 @@ static void TDREND_Update_object_positions( c_indx = 0; for ( nS = 0; nS < numSources; nS++ ) { +#ifdef EXT_RENDERER + if ( !( in_format == MC_FORMAT && nS == lfe_idx ) ) /* Skip LFE for MC */ +#else if ( !( in_format == MC_FORMAT && nS == LFE_CHANNEL ) ) /* Skip LFE for MC */ +#endif { hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; @@ -591,7 +616,11 @@ static void TDREND_Update_object_positions( static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD Renderer handle */ const int16_t headRotEnabled, /* i : Headrotation flag */ - const Quaternion *headPosition /* i : Head Position */ +#ifdef EXT_RENDERER + const IVAS_QUATERNION *headPosition /* i : Head Position */ +#else + const Quaternion *headPosition /* i : Head Position */ +#endif ) { float Pos[3]; @@ -800,32 +829,54 @@ ivas_error ivas_rend_TDObjRenderFrame( float output[][L_FRAME48k] /* i/o: SCE channels / Binaural synthesis */ ) { +#ifndef FIX_I106_TDREND_5MS TDREND_DirAtten_t *DirAtten_p; int16_t nS; - int16_t lfe_idx; - int16_t c_indx; - int32_t nchan_in; float Pos[3]; float Dir[3]; float FrontVec[3]; float UpVec[3]; float Rmat[3][3]; + int16_t c_indx; +#else + int16_t subframe_length; + int16_t subframe_idx; + ISM_METADATA_HANDLE hIsmMetaData[1]; +#endif + int16_t lfe_idx; + int32_t num_src; /* TODO tmu : pass down renderer config struct */ // float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; + IVAS_FORMAT ivas_format; IVAS_REND_AudioConfigType inConfigType; inConfigType = getAudioConfigType( inConfig ); - if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + lfe_idx = LFE_CHANNEL; + if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) { - lfe_idx = LFE_CHANNEL; - getAudioConfigNumChannels( inConfig, &nchan_in ); + ivas_format = MC_FORMAT; + if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) + { + getAudioConfigNumChannels( inConfig, &num_src ); + } + else + { + lfe_idx = ( customLsInput->num_lfe > 0 ) ? customLsInput->lfe_idx[0] : -1; + num_src = customLsInput->num_spk + customLsInput->num_lfe; + } } else { - lfe_idx = ( customLsInput->num_lfe > 0 ) ? customLsInput->lfe_idx[0] : -1; - nchan_in = customLsInput->num_spk + customLsInput->num_lfe; + ivas_format = ISM_FORMAT; + num_src = 1; + hIsmMetaData[0] = count_malloc( sizeof( ISM_METADATA_FRAME ) ); + hIsmMetaData[0]->azimuth = currentPos->azimuth; + hIsmMetaData[0]->elevation = currentPos->elevation; } +#ifdef FIX_I106_TDREND_5MS + subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; +#else DirAtten_p = pTDRend->hBinRendererTd->DirAtten_p; /* Update the listener's location/orientation */ @@ -865,7 +916,7 @@ ivas_error ivas_rend_TDObjRenderFrame( /* For each source, write the frame data to the source object*/ c_indx = 0; - for ( nS = 0; nS < nchan_in; nS++ ) + for ( nS = 0; nS < num_src; nS++ ) { if ( !( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED && nS == lfe_idx ) ) /* Skip LFE for MC */ { @@ -897,25 +948,66 @@ ivas_error ivas_rend_TDObjRenderFrame( TDREND_MIX_SRC_SetPlayState( pTDRend->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); } } +#endif - /* TODO tmu : pass down renderer config struct */ - // if ( pTDRend->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ + /* TODO tmu : pass down renderer config struct and decide what to do about ini_frame ? */ + // if ( hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ // { - // if ( pTDRend->hRenderConfig->roomAcoustics.late_reverb_on ) - // { - // if ( pTDRend->ini_frame == 0 ) - // { - // ivas_reverb_open( &pTDRend->hCrend->hReverb, pTDRend->transport_config, NULL, pTDRend->hRenderConfig, pTDRend->hDecoderConfig->output_Fs ); - // } - // for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) - // { - // ivas_reverb_process( pTDRend->hCrend->hReverb, pTDRend->transport_config, 0, output, reverb_signal, subframe_idx ); - // } - // } +#ifdef FIX_I106_TDREND_5MS +// if ( hRenderConfig->roomAcoustics.late_reverb_on && ( st_ivas->ini_frame == 0 ) ) +// { +// ivas_reverb_open( &pTDRend->hCrend->hReverb, pTDRend->transport_config, NULL, pTDRend->hRenderConfig, pTDRend->hDecoderConfig->output_Fs ); +// } +#else +// if ( pTDRend->hRenderConfig->roomAcoustics.late_reverb_on ) +// { +// if ( pTDRend->ini_frame == 0 ) +// { +// ivas_reverb_open( &pTDRend->hCrend->hReverb, pTDRend->transport_config, NULL, pTDRend->hRenderConfig, pTDRend->hDecoderConfig->output_Fs ); +// } +// for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) +// { +// ivas_reverb_process( pTDRend->hCrend->hReverb, pTDRend->transport_config, 0, output, reverb_signal, subframe_idx ); +// } +// } +#endif // } +#ifdef FIX_I106_TDREND_5MS + /* Update object position(s) */ + TDREND_Update_object_positions( pTDRend->hBinRendererTd, + num_src, + lfe_idx, + ivas_format, + hIsmMetaData, + output ); + + /* TODO tmu : needs a refactor / better approach */ + if ( ivas_format == ISM_FORMAT ) + { + count_free( hIsmMetaData[0] ); + } + + for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) + { + /* Update the listener's location/orientation */ + TDREND_Update_listener_orientation( pTDRend->hBinRendererTd, + headRotData->headRotEnabled, + ( headRotData != NULL ) ? &headRotData->headPositions[subframe_idx] : NULL ); + + /* TODO tmu : pass down renderer config struct */ + // if ( ( hRenderConfig != NULL ) && ( hRenderConfig->roomAcoustics.late_reverb_on ) ) + // { + // ivas_reverb_process( hCrend->hReverb, transport_config, 0, output, reverb_signal, subframe_idx ); + // } + + /* Render subframe */ + TDREND_GetMix( pTDRend->hBinRendererTd, output, subframe_length, output_Fs, subframe_idx ); + } +#else /* Call the renderer */ TDREND_GetMix( pTDRend->hBinRendererTd, output, output_frame, output_Fs ); +#endif /* TODO tmu : pass down renderer config struct */ // if ( pTDRend->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index db7fb5fd54..ef304e9461 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -559,7 +559,7 @@ pass_snr = { "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-full_circle_in_15s]": 0.1, "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL]": 0, "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL-full_circle_in_15s]": 0.1, + "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL-full_circle_in_15s]": 0, "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL-rotate_yaw_pitch_roll1]": 0, "test_custom_ls_input_binaural[4d4-BINAURAL_ROOM]": 0, "test_custom_ls_input_binaural[custom1-BINAURAL_ROOM]": 0, @@ -571,7 +571,7 @@ pass_snr = { "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-rotate_yaw_pitch_roll1]": 1, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-rotate_yaw_pitch_roll1]": 0, "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-full_circle_in_15s]": 0, "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL_ROOM]": 0.2, @@ -597,7 +597,7 @@ pass_snr = { "test_ism_binaural_headrotation[ISM1-BINAURAL-rotate_yaw_pitch_roll1]": 0, "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 6.7, "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, - "test_ism_binaural_headrotation[ISM2-BINAURAL-full_circle_in_15s]": 0.1, + "test_ism_binaural_headrotation[ISM2-BINAURAL-full_circle_in_15s]": 0, "test_ism_binaural_headrotation[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 0, "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 4, "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, -- GitLab From 00e939e1642cc97689a5bc4900d6bdaf3a21c6f6 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 7 Oct 2022 15:23:32 +0200 Subject: [PATCH 201/479] preemptively accept FIX_I106_TDREND_5MS to reduce merge conflicts --- lib_com/ivas_cnst.h | 2 - lib_com/ivas_prot.h | 13 -- lib_com/options.h | 1 - lib_rend/ivas_objectRenderer.c | 265 -------------------------- lib_rend/ivas_objectRenderer_hrFilt.c | 38 ---- lib_rend/ivas_objectRenderer_sfx.c | 16 -- 6 files changed, 335 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 2d466e829d..db7cde066e 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -846,9 +846,7 @@ typedef enum { *----------------------------------------------------------------------------------*/ // VE: this should be renamed to e.g. N_SPATIAL_SUBFRAMES #define MAX_PARAM_SPATIAL_SUBFRAMES 4 /* Maximum number of subframes for parameteric spatial coding */ -#ifdef FIX_I106_TDREND_5MS #define L_SPATIAL_SUBFR_48k (L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES) -#endif /*----------------------------------------------------------------------------------* diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index ffdf80d266..390ca333c8 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4986,21 +4986,12 @@ void TDREND_HRFILT_SetFiltSet( #endif ivas_error TDREND_REND_RenderSourceHRFilt( -#ifdef FIX_I106_TDREND_5MS TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#else - const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif -#ifdef FIX_I106_TDREND_5MS float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ const int16_t subframe_length, /* i : Subframe length in use */ -#else - float output_buf[][L_FRAME48k], /* o : Output buffer */ - const int16_t output_frame, /* i : Output frame length in use */ -#endif const int32_t output_Fs /* i : Output sample rate */ ); @@ -5140,11 +5131,7 @@ void TDREND_SFX_SpatBin_SetParams( void TDREND_SFX_SpatBin_Execute_Main( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters handle */ const float *InBuffer_p, /* i : Input buffer */ -#ifdef FIX_I106_TDREND_5MS const int16_t subframe_length, /* i : subframe length */ -#else - const int16_t output_frame, /* i : frame length */ -#endif float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ diff --git a/lib_com/options.h b/lib_com/options.h index 832ffb11b7..6e0fb1c6ba 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,6 @@ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define FIX_I106_TDREND_5MS /* Issue 106: 5 ms update rate in TD object renderer */ #define ALIGN_SID_SIZE /* Issue 111: make all DTX modes use one SID frame bitrate (5.2 kbps) */ #define FIX_135_MDCT_STEREO_MODE_UNINITIALIZED /* Issue 135: fix uninitialized value usage in SBA MDCT-Stereo core with PLC */ #define FIX_CONTROLLABLE_SID_UPDATE_RATE /* Issue 117: fix controllable SID update rate mechanism */ diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index 21c734af4d..6a2b6ad962 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -50,13 +50,8 @@ * Local function prototypes *---------------------------------------------------------------------*/ -#ifdef FIX_I106_TDREND_5MS static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t subframe_length, const int32_t output_Fs, const int16_t subframe_idx ); -#else -static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t output_frame, const int32_t output_Fs ); -#endif static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); -#ifdef FIX_I106_TDREND_5MS static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, #ifdef EXT_RENDERER @@ -73,7 +68,6 @@ static void TDREND_Update_object_positions( BINAURAL_TD_OBJECT_RENDERER_HANDLE h const IVAS_FORMAT in_format, const ISM_METADATA_HANDLE *hIsmMetaData, float output[][L_FRAME48k] ); -#endif /*---------------------------------------------------------------------* * ivas_td_binaural_open() @@ -251,126 +245,20 @@ void ObjRenderIVASFrame( const int16_t output_frame /* i : output frame length */ ) { -#ifndef FIX_I106_TDREND_5MS - TDREND_DirAtten_t *DirAtten_p; - int16_t nS; - float Pos[3]; - float Dir[3]; - float FrontVec[3]; - float UpVec[3]; - float Rmat[3][3]; - int16_t c_indx; -#else int16_t subframe_length; -#endif int16_t subframe_idx; float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; -#ifdef FIX_I106_TDREND_5MS subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; -#else - DirAtten_p = st_ivas->hBinRendererTd->DirAtten_p; - - /* Update the listener's location/orientation */ - /* Listener at the origin */ - Pos[0] = 0.0f; - Pos[1] = 0.0f; - Pos[2] = 0.0f; - - if ( - st_ivas->hHeadTrackData != NULL -#ifdef EXT_RENDERER - && st_ivas->hDecoderConfig->Opt_Headrotation -#endif - ) - - { - /* Obtain head rotation matrix */ - QuatToRotMat( st_ivas->hHeadTrackData->Quaternions[0], Rmat ); - /* Apply rotation matrix to looking vector [1;0;0] */ - FrontVec[0] = Rmat[0][0]; - FrontVec[1] = Rmat[0][1]; - FrontVec[2] = Rmat[0][2]; - /* Apply rotation matrix to up vector [0;0;1] */ - UpVec[0] = Rmat[2][0]; - UpVec[1] = Rmat[2][1]; - UpVec[2] = Rmat[2][2]; - } - else - { - /* Oriented with looking vector along the x axis */ - FrontVec[0] = 1.0f; - FrontVec[1] = 0.0f; - FrontVec[2] = 0.0f; - /* Oriented with up vector along the z axis */ - UpVec[0] = 0.0f; - UpVec[1] = 0.0f; - UpVec[2] = 1.0f; - } - - /* Set the listener position and orientation:*/ - TDREND_MIX_LIST_SetPos( st_ivas->hBinRendererTd, Pos ); - TDREND_MIX_LIST_SetOrient( st_ivas->hBinRendererTd, FrontVec, UpVec ); - - /* For each source, write the frame data to the source object*/ - c_indx = 0; - for ( nS = 0; nS < st_ivas->nchan_transport; nS++ ) - { - if ( !( st_ivas->ivas_format == MC_FORMAT && nS == LFE_CHANNEL ) ) /* Skip LFE for MC */ - { - st_ivas->hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; - st_ivas->hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; - c_indx++; - } - - if ( st_ivas->ivas_format == ISM_FORMAT ) - { - - /* Update the source positions */ - /* Source position and direction */ - Pos[0] = cosf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ) * cosf( st_ivas->hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[1] = cosf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ) * sinf( st_ivas->hIsmMetaData[nS]->azimuth * PI_OVER_180 ); - Pos[2] = sinf( st_ivas->hIsmMetaData[nS]->elevation * PI_OVER_180 ); - Dir[0] = 1.0f; - Dir[1] = 0.0f; - Dir[2] = 0.0f; - - /* Source directivity info */ - DirAtten_p->ConeInnerAngle = 360.0f; - DirAtten_p->ConeOuterAngle = 360.0f; - DirAtten_p->ConeOuterGain = 1.0f; - - TDREND_MIX_SRC_SetPos( st_ivas->hBinRendererTd, nS, Pos ); - TDREND_MIX_SRC_SetDir( st_ivas->hBinRendererTd, nS, Dir ); - TDREND_MIX_SRC_SetDirAtten( st_ivas->hBinRendererTd, nS, DirAtten_p ); - TDREND_MIX_SRC_SetPlayState( st_ivas->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); - } - } -#endif if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { -#ifdef FIX_I106_TDREND_5MS if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on && ( st_ivas->ini_frame == 0 ) ) { ivas_reverb_open( &st_ivas->hCrend->hReverb, st_ivas->transport_config, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); } -#else - if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) - { - if ( st_ivas->ini_frame == 0 ) - { - ivas_reverb_open( &st_ivas->hCrend->hReverb, st_ivas->transport_config, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); - } - for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) - { - ivas_reverb_process( st_ivas->hCrend->hReverb, st_ivas->transport_config, 0, output, reverb_signal, subframe_idx ); - } - } -#endif } -#ifdef FIX_I106_TDREND_5MS /* Update object position(s) */ #ifdef EXT_RENDERER TDREND_Update_object_positions( st_ivas->hBinRendererTd, st_ivas->nchan_transport, LFE_CHANNEL, st_ivas->ivas_format, st_ivas->hIsmMetaData, output ); @@ -393,10 +281,6 @@ void ObjRenderIVASFrame( /* Render subframe */ TDREND_GetMix( st_ivas->hBinRendererTd, output, subframe_length, st_ivas->hDecoderConfig->output_Fs, subframe_idx ); } -#else - /* Call the renderer */ - TDREND_GetMix( st_ivas->hBinRendererTd, output, output_frame, st_ivas->hDecoderConfig->output_Fs ); -#endif if ( st_ivas->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ { @@ -412,30 +296,17 @@ void ObjRenderIVASFrame( } -#ifdef FIX_I106_TDREND_5MS /*---------------------------------------------------------------------* * TDREND_GetMix() * * Render one 5 ms subframe from the mixer *---------------------------------------------------------------------*/ -#else -/*---------------------------------------------------------------------* - * TDREND_GetMix() - * - * Render one output frame from the mixer - *---------------------------------------------------------------------*/ -#endif static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ float output[][L_FRAME48k], /* i/o: ISm object synth / rendered output in 0,1 */ -#ifdef FIX_I106_TDREND_5MS const int16_t subframe_length, /* i/o: subframe length */ const int32_t output_Fs, /* i : Output sampling rate */ const int16_t subframe_idx /* i : Subframe index to 5 ms subframe */ -#else - const int16_t output_frame, /* i/o: Output frame length */ - const int32_t output_Fs /* i : Output sampling rate */ -#endif ) { int16_t i; @@ -443,22 +314,12 @@ static ivas_error TDREND_GetMix( TDREND_SRC_SPATIAL_t *SrcSpatial_p; TDREND_SRC_REND_t *SrcRend_p; ivas_error error; -#ifdef FIX_I106_TDREND_5MS float output_buf[2][L_SPATIAL_SUBFR_48k]; /* Temp buffer for left/right rendered signal */ -#else - float output_buf[2][L_FRAME48k]; /* Temp buffer for left/right rendered signal */ -#endif error = IVAS_ERR_OK; -#ifdef FIX_I106_TDREND_5MS /* Clear the output buffer to accumulate rendered sources */ set_f( output_buf[0], 0.0f, subframe_length ); set_f( output_buf[1], 0.0f, subframe_length ); -#else - /* Zero out the output buffer since objects are accumulated. */ - set_f( output_buf[0], 0.0f, output_frame ); - set_f( output_buf[1], 0.0f, output_frame ); -#endif /* Create the mix */ /* Loop through the source list and render each source */ @@ -477,39 +338,19 @@ static ivas_error TDREND_GetMix( /* Render source if needed */ if ( ( SrcRend_p->InputAvailable == TRUE ) && ( SrcRend_p->PlayStatus == TDREND_PLAYSTATUS_PLAYING ) ) { -#ifdef FIX_I106_TDREND_5MS #ifdef TDREND_HRTF_TABLE_METHODS error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, subframe_length, output_Fs ); #else error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, subframe_length, output_Fs ); -#endif -#else -#ifdef TDREND_HRTF_TABLE_METHODS - error = TDREND_REND_RenderSourceHRFilt( Src_p, hBinRendererTd, output_buf, output_frame, output_Fs ); -#else - error = TDREND_REND_RenderSourceHRFilt( Src_p, output_buf, output_frame, output_Fs ); -#endif #endif } -#ifndef FIX_I106_TDREND_5MS - SrcRend_p->InputAvailable = FALSE; -#endif } /* Populate output variable */ -#ifdef FIX_I106_TDREND_5MS mvr2r( output_buf[0], output[0] + subframe_idx * subframe_length, subframe_length ); /* Left */ mvr2r( output_buf[1], output[1] + subframe_idx * subframe_length, subframe_length ); /* Right */ -#else - mvr2r( output_buf[0], output[0], output_frame ); /* Left */ - mvr2r( output_buf[1], output[1], output_frame ); /* Right */ -#endif -#ifdef FIX_I106_TDREND_5MS /* Clear the PoseUpdated and Source position update flags */ -#else - /* Clear the mixer update flags */ -#endif TDREND_Clear_Update_flags( hBinRendererTd ); return error; @@ -538,7 +379,6 @@ static void TDREND_Clear_Update_flags( return; } -#ifdef FIX_I106_TDREND_5MS /*---------------------------------------------------------------------* * TDREND_Update_object_positions() * @@ -665,7 +505,6 @@ static void TDREND_Update_listener_orientation( return; } -#endif #ifdef EXT_RENDERER @@ -829,20 +668,9 @@ ivas_error ivas_rend_TDObjRenderFrame( float output[][L_FRAME48k] /* i/o: SCE channels / Binaural synthesis */ ) { -#ifndef FIX_I106_TDREND_5MS - TDREND_DirAtten_t *DirAtten_p; - int16_t nS; - float Pos[3]; - float Dir[3]; - float FrontVec[3]; - float UpVec[3]; - float Rmat[3][3]; - int16_t c_indx; -#else int16_t subframe_length; int16_t subframe_idx; ISM_METADATA_HANDLE hIsmMetaData[1]; -#endif int16_t lfe_idx; int32_t num_src; /* TODO tmu : pass down renderer config struct */ @@ -874,106 +702,17 @@ ivas_error ivas_rend_TDObjRenderFrame( hIsmMetaData[0]->elevation = currentPos->elevation; } -#ifdef FIX_I106_TDREND_5MS subframe_length = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; -#else - DirAtten_p = pTDRend->hBinRendererTd->DirAtten_p; - - /* Update the listener's location/orientation */ - /* Listener at the origin */ - Pos[0] = 0.0f; - Pos[1] = 0.0f; - Pos[2] = 0.0f; - - if ( headRotData->headRotEnabled ) - { - /* Obtain head rotation matrix */ - QuatToRotMat( headRotData->headPositions[0], Rmat ); - /* Apply rotation matrix to looking vector [1;0;0] */ - FrontVec[0] = Rmat[0][0]; - FrontVec[1] = Rmat[0][1]; - FrontVec[2] = Rmat[0][2]; - /* Apply rotation matrix to up vector [0;0;1] */ - UpVec[0] = Rmat[2][0]; - UpVec[1] = Rmat[2][1]; - UpVec[2] = Rmat[2][2]; - } - else - { - /* Oriented with looking vector along the x axis */ - FrontVec[0] = 1.0f; - FrontVec[1] = 0.0f; - FrontVec[2] = 0.0f; - /* Oriented with up vector along the z axis */ - UpVec[0] = 0.0f; - UpVec[1] = 0.0f; - UpVec[2] = 1.0f; - } - - /* Set the listener position and orientation:*/ - TDREND_MIX_LIST_SetPos( pTDRend->hBinRendererTd, Pos ); - TDREND_MIX_LIST_SetOrient( pTDRend->hBinRendererTd, FrontVec, UpVec ); - - /* For each source, write the frame data to the source object*/ - c_indx = 0; - for ( nS = 0; nS < num_src; nS++ ) - { - if ( !( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED && nS == lfe_idx ) ) /* Skip LFE for MC */ - { - pTDRend->hBinRendererTd->Sources[c_indx]->InputFrame_p = output[nS]; - pTDRend->hBinRendererTd->Sources[c_indx]->SrcRend_p->InputAvailable = TRUE; - c_indx++; - } - - if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_OBJECT_BASED ) - { - /* Update the source positions */ - /* Source position and direction */ - /* TODO tmu : currently will only work for one object at a time */ - Pos[0] = cosf( currentPos->elevation * PI_OVER_180 ) * cosf( currentPos->azimuth * PI_OVER_180 ); - Pos[1] = cosf( currentPos->elevation * PI_OVER_180 ) * sinf( currentPos->azimuth * PI_OVER_180 ); - Pos[2] = sinf( currentPos->elevation * PI_OVER_180 ); - Dir[0] = 1.0f; - Dir[1] = 0.0f; - Dir[2] = 0.0f; - - /* Source directivity info */ - DirAtten_p->ConeInnerAngle = 360.0f; - DirAtten_p->ConeOuterAngle = 360.0f; - DirAtten_p->ConeOuterGain = 1.0f; - - TDREND_MIX_SRC_SetPos( pTDRend->hBinRendererTd, nS, Pos ); - TDREND_MIX_SRC_SetDir( pTDRend->hBinRendererTd, nS, Dir ); - TDREND_MIX_SRC_SetDirAtten( pTDRend->hBinRendererTd, nS, DirAtten_p ); - TDREND_MIX_SRC_SetPlayState( pTDRend->hBinRendererTd, nS, TDREND_PLAYSTATUS_PLAYING ); - } - } -#endif /* TODO tmu : pass down renderer config struct and decide what to do about ini_frame ? */ // if ( hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ // { -#ifdef FIX_I106_TDREND_5MS // if ( hRenderConfig->roomAcoustics.late_reverb_on && ( st_ivas->ini_frame == 0 ) ) // { // ivas_reverb_open( &pTDRend->hCrend->hReverb, pTDRend->transport_config, NULL, pTDRend->hRenderConfig, pTDRend->hDecoderConfig->output_Fs ); // } -#else -// if ( pTDRend->hRenderConfig->roomAcoustics.late_reverb_on ) -// { -// if ( pTDRend->ini_frame == 0 ) -// { -// ivas_reverb_open( &pTDRend->hCrend->hReverb, pTDRend->transport_config, NULL, pTDRend->hRenderConfig, pTDRend->hDecoderConfig->output_Fs ); -// } -// for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) -// { -// ivas_reverb_process( pTDRend->hCrend->hReverb, pTDRend->transport_config, 0, output, reverb_signal, subframe_idx ); -// } -// } -#endif // } -#ifdef FIX_I106_TDREND_5MS /* Update object position(s) */ TDREND_Update_object_positions( pTDRend->hBinRendererTd, num_src, @@ -1004,10 +743,6 @@ ivas_error ivas_rend_TDObjRenderFrame( /* Render subframe */ TDREND_GetMix( pTDRend->hBinRendererTd, output, subframe_length, output_Fs, subframe_idx ); } -#else - /* Call the renderer */ - TDREND_GetMix( pTDRend->hBinRendererTd, output, output_frame, output_Fs ); -#endif /* TODO tmu : pass down renderer config struct */ // if ( pTDRend->hRenderConfig != NULL ) /* Renderer Configuration not enabled in TD standalone renderer */ diff --git a/lib_rend/ivas_objectRenderer_hrFilt.c b/lib_rend/ivas_objectRenderer_hrFilt.c index eb69350d48..9587f34bb9 100644 --- a/lib_rend/ivas_objectRenderer_hrFilt.c +++ b/lib_rend/ivas_objectRenderer_hrFilt.c @@ -343,42 +343,21 @@ void TDREND_HRFILT_SetFiltSet( --------------------------------------------------------------------*/ ivas_error TDREND_REND_RenderSourceHRFilt( -#ifdef FIX_I106_TDREND_5MS TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#else - const TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ -#endif #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif -#ifdef FIX_I106_TDREND_5MS float output_buf[][L_SPATIAL_SUBFR_48k], /* o : Output buffer */ const int16_t subframe_length, /* i : Subframe length in use */ -#else - float output_buf[][L_FRAME48k], /* o : Output buffer */ - const int16_t output_frame, /* i : Output frame length in use */ -#endif const int32_t output_Fs /* i : Output sample rate */ ) { TDREND_SRC_REND_t *SrcRend_p; -#ifdef FIX_I106_TDREND_5MS const float *InFrame_nIC_p; -#else - int16_t nS; - float *InFrame_nIC_p; -#endif int16_t NoOfUsedInputSamples, NoOfDeliveredOutputSamples; -#ifdef FIX_I106_TDREND_5MS float LeftOutputFrame[L_SPATIAL_SUBFR_48k]; float RightOutputFrame[L_SPATIAL_SUBFR_48k]; -#else - float LeftOutputFrame[L_FRAME48k]; - float RightOutputFrame[L_FRAME48k]; - float *LeftOutputFrame_p, *RightOutputFrame_p; - float *LeftAccOutputFrame_p, *RightAccOutputFrame_p; -#endif /* Input channel rendering loop */ InFrame_nIC_p = Src_p->InputFrame_p; @@ -388,11 +367,7 @@ ivas_error TDREND_REND_RenderSourceHRFilt( /* SrcGain = Mix_p->Gain * ( *SrcRend_p->SrcGain_p ); */ /* SrcGain *= ( *SrcRend_p->DirGain_p ) * ( *SrcRend_p->DistGain_p ); */ -#ifdef FIX_I106_TDREND_5MS TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, subframe_length, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); -#else - TDREND_SFX_SpatBin_Execute_Main( SrcRend_p->SfxSpatBin_p, InFrame_nIC_p, output_frame, LeftOutputFrame, RightOutputFrame, &NoOfUsedInputSamples, &NoOfDeliveredOutputSamples, output_Fs ); -#endif #ifdef TDREND_HRTF_TABLE_METHODS if ( hBinRendererTd->HrFiltSet_p->FilterMethod != TDREND_HRFILT_Method_BSplineModel ) @@ -402,24 +377,11 @@ ivas_error TDREND_REND_RenderSourceHRFilt( #endif /* Copy to accumulative output frame */ -#ifdef FIX_I106_TDREND_5MS v_add( LeftOutputFrame, output_buf[0], output_buf[0], subframe_length ); v_add( RightOutputFrame, output_buf[1], output_buf[1], subframe_length ); Src_p->InputFrame_p += subframe_length; /* Increment input pointer -- todo: should we remove this and input the current subframe instead? */ -#else - LeftOutputFrame_p = LeftOutputFrame; - RightOutputFrame_p = RightOutputFrame; - LeftAccOutputFrame_p = output_buf[0]; - RightAccOutputFrame_p = output_buf[1]; - - for ( nS = 0; nS < output_frame; nS++ ) - { - *LeftAccOutputFrame_p++ += *LeftOutputFrame_p++; - *RightAccOutputFrame_p++ += *RightOutputFrame_p++; - } -#endif return IVAS_ERR_OK; diff --git a/lib_rend/ivas_objectRenderer_sfx.c b/lib_rend/ivas_objectRenderer_sfx.c index 08239e8565..5dadf8ff6a 100644 --- a/lib_rend/ivas_objectRenderer_sfx.c +++ b/lib_rend/ivas_objectRenderer_sfx.c @@ -930,11 +930,7 @@ static void TDREND_SFX_SpatBin_UpdateParams( void TDREND_SFX_SpatBin_Execute_Main( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters struct */ const float *InBuffer_p, /* i : Input buffer */ -#ifdef FIX_I106_TDREND_5MS const int16_t subframe_length, /* i : subframe length */ -#else - const int16_t output_frame, /* i : frame length */ -#endif float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ @@ -952,11 +948,7 @@ void TDREND_SFX_SpatBin_Execute_Main( /* Make sure the blocks are not longer than 6 msec. */ NoOfBlocks = 1; -#ifdef FIX_I106_TDREND_5MS TempNoOfRequestedOutputSamples = subframe_length; -#else - TempNoOfRequestedOutputSamples = output_frame; -#endif while ( TempNoOfRequestedOutputSamples > SfxSpatBin_p->MaxBlockLength ) { NoOfBlocks = NoOfBlocks << 1; @@ -970,11 +962,7 @@ void TDREND_SFX_SpatBin_Execute_Main( RightOutBufferPointer_p = RightOutBuffer_p; *NoOfUsedInputSamples_p = 0; *NoOfDeliveredOutputSamples_p = 0; -#ifdef FIX_I106_TDREND_5MS TempNoOfInputSamples = subframe_length; -#else - TempNoOfInputSamples = output_frame; -#endif for ( i = 0; i < NoOfBlocks; i++ ) { @@ -1003,11 +991,7 @@ void TDREND_SFX_SpatBin_Execute_Main( if ( i == NoOfBlocks - 2 ) { /* The last block should produce the remaining number of samples */ -#ifdef FIX_I106_TDREND_5MS TempNoOfRequestedOutputSamples = subframe_length - *NoOfDeliveredOutputSamples_p; -#else - TempNoOfRequestedOutputSamples = output_frame - *NoOfDeliveredOutputSamples_p; -#endif } *NoOfUsedInputSamples_p = *NoOfUsedInputSamples_p + TempNoOfUsedInputSamples; TempNoOfInputSamples = TempNoOfInputSamples - TempNoOfUsedInputSamples; -- GitLab From 6ca53293676c887873aff94369855a4c737902d9 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 7 Oct 2022 15:40:15 +0200 Subject: [PATCH 202/479] manually accept FIX_CREND_CHANNELS for lib_rend --- lib_rend/ivas_crend.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index fcd7b90582..f94c221711 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1171,11 +1171,7 @@ ivas_error ivas_rend_openCrend( hCrend->lfe_delay_line = NULL; -#ifdef FIX_CREND_CHANNELS for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) -#else - for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { hCrend->freq_buffer_re[i] = NULL; hCrend->freq_buffer_im[i] = NULL; @@ -1703,11 +1699,7 @@ ivas_error ivas_rend_closeCrend( if ( pCrend->hCrend != NULL ) { -#ifdef FIX_CREND_CHANNELS for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) -#else - for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { if ( pCrend->hCrend->freq_buffer_re[i] != NULL ) { -- GitLab From d1732bcd0be9febf6b8898fb83b83da199913070 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 7 Oct 2022 16:34:54 +0200 Subject: [PATCH 203/479] update leftover MAX_TRANSPORT_CHANNELS, reduce the size of a binaural tmp buffer --- lib_rend/ivas_crend.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index f94c221711..bec08cbbaf 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1037,7 +1037,11 @@ ivas_error ivas_crend_process( { int16_t i, nchan_out, output_frame; int16_t subframe_len, subframe_idx; +#ifdef EXT_RENDERER + float pcm_tmp[BINAURAL_CHANNELS][L_FRAME48k]; +#else float pcm_tmp[MAX_TRANSPORT_CHANNELS][L_FRAME48k]; +#endif AUDIO_CONFIG intern_config; ivas_error error; @@ -1171,7 +1175,7 @@ ivas_error ivas_rend_openCrend( hCrend->lfe_delay_line = NULL; - for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) + for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) { hCrend->freq_buffer_re[i] = NULL; hCrend->freq_buffer_im[i] = NULL; @@ -1699,7 +1703,7 @@ ivas_error ivas_rend_closeCrend( if ( pCrend->hCrend != NULL ) { - for ( i = 0; i < MAX_TRANSPORT_CHANNELS; i++ ) + for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) { if ( pCrend->hCrend->freq_buffer_re[i] != NULL ) { @@ -1770,7 +1774,7 @@ ivas_error ivas_rend_crendProcess( { int16_t i, subframe_idx, output_frame; int32_t nchan_out; - float pcm_tmp[MAX_TRANSPORT_CHANNELS][L_FRAME48k]; + float pcm_tmp[BINAURAL_CHANNELS][L_FRAME48k]; AUDIO_CONFIG in_config; IVAS_REND_AudioConfigType inConfigType; ivas_error error; -- GitLab From 8bdff558070c65e83d1e032f983d78a217b93f9f Mon Sep 17 00:00:00 2001 From: Srikanth Korse Date: Fri, 7 Oct 2022 22:16:18 +0200 Subject: [PATCH 204/479] [fix] fix to allocate only necessary memory --- lib_enc/ivas_ism_param_enc.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index 81c1513d16..e8a23d6b39 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -439,10 +439,19 @@ ivas_error ivas_ism_enc_config( Indice *ind_list_metadata; /* list of indices */ /* Reset and Initialize */ - if ((error = create_ism_metadata_enc(st_ivas, st_ivas->hEncoderConfig->nchan_inp, element_brate_tmp)) != IVAS_ERR_OK) + if (st_ivas->ism_mode == ISM_MODE_PARAM) { - return error; + st_ivas->nchan_transport = 2; } + else + { + st_ivas->nchan_transport = st_ivas->hEncoderConfig->nchan_inp; + } + + st_ivas->nSCE = st_ivas->nchan_transport; + st_ivas->nCPE = 0; + + ivas_ism_config(st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hEncoderConfig->nchan_inp, NULL, NULL, NULL, element_brate_tmp, NULL, NULL); if (st_ivas->nSCE > last_nSCE) { -- GitLab From 8c8f507de682e7e9169443ae5767c7e2f029ff25 Mon Sep 17 00:00:00 2001 From: norvell Date: Sun, 9 Oct 2022 12:33:44 +0000 Subject: [PATCH 205/479] Add logs as artifact to .sanitizer-test-template --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7ce0765ad5..9ea54f8763 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -481,6 +481,7 @@ codec-comparison-on-main-push: when: always paths: - ep_015.g192 + - logs sanitizer-test-mono: extends: .sanitizer-test-template -- GitLab From 250902cdee38fa467d664476cb74a17871ee7aa3 Mon Sep 17 00:00:00 2001 From: norvell Date: Sun, 9 Oct 2022 13:15:45 +0000 Subject: [PATCH 206/479] Add wildcard to logs, since there is one created per entry in SANITIZER_TESTS. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9ea54f8763..63e46ee4f4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -481,7 +481,7 @@ codec-comparison-on-main-push: when: always paths: - ep_015.g192 - - logs + - "*/logs" sanitizer-test-mono: extends: .sanitizer-test-template -- GitLab From fdcaac97d7467f44925fcb74f95eb07367869dbc Mon Sep 17 00:00:00 2001 From: norvell Date: Sun, 9 Oct 2022 13:34:53 +0000 Subject: [PATCH 207/479] Limit wildcard to CLANG*/logs, to exclude .git/logs. Ideally, it should depend on $SANITIZER_TESTS, but this helps debugging failures until a more elegant solution is found. --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 63e46ee4f4..a866a166e3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -481,7 +481,7 @@ codec-comparison-on-main-push: when: always paths: - ep_015.g192 - - "*/logs" + - "CLANG*/logs" sanitizer-test-mono: extends: .sanitizer-test-template -- GitLab From d38b65ec1f0103f21574d71b1df08a013caac7ab Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 10 Oct 2022 11:41:03 +0200 Subject: [PATCH 208/479] fix crash in rate switching with dtx --- lib_dec/ivas_core_dec.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index 12274f8762..b3d5b60eca 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -201,33 +201,26 @@ ivas_error ivas_core_dec( } #else /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ - if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && hMCT == NULL ) + if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) ) { float gain; - if ( st->hPlcInfo != NULL ) - { - gain = st->hPlcInfo->recovery_gain; - } - else if ( st->hTcxDec != NULL ) - { - gain = st->hTcxDec->conceal_eof_gain; - } - else - { - gain = 0.f; - assert( !"This should never happen." ); - } - v_multc( st->hHQ_core->old_out, gain, st->hHQ_core->old_out, st->hTcxDec->L_frameTCX ); - v_multc( st->hHQ_core->old_outLB, gain, st->hHQ_core->old_outLB, st->L_frame ); + gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : + ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain : 0.0f; - if ( !st->hTcxCfg->last_aldo && st->hTcxDec != NULL ) + if ( ( st->element_mode == IVAS_CPE_MDCT && hMCT == NULL ) || ( st->hPlcInfo != NULL ) ) { - v_multc( st->hTcxDec->syn_OverlFB, gain, st->hTcxDec->syn_OverlFB, st->hTcxCfg->tcx_mdct_window_lengthFB ); - v_multc( st->hTcxDec->syn_Overl, gain, st->hTcxDec->syn_Overl, st->hTcxCfg->tcx_mdct_window_length ); + v_multc( st->hHQ_core->old_out, gain, st->hHQ_core->old_out, st->hTcxDec->L_frameTCX ); + v_multc( st->hHQ_core->old_outLB, gain, st->hHQ_core->old_outLB, st->L_frame ); + + if ( !st->hTcxCfg->last_aldo && st->hTcxDec != NULL ) + { + v_multc( st->hTcxDec->syn_OverlFB, gain, st->hTcxDec->syn_OverlFB, st->hTcxCfg->tcx_mdct_window_lengthFB ); + v_multc( st->hTcxDec->syn_Overl, gain, st->hTcxDec->syn_Overl, st->hTcxCfg->tcx_mdct_window_length ); + } } } -#endif +#endif set_f( voice_factors[n], 0.f, NB_SUBFR16k ); set_f( hb_synth[n], 0.0f, L_FRAME48k ); -- GitLab From 50663c4b73d9c99846835281e485711cce956a50 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 10 Oct 2022 14:52:24 +0200 Subject: [PATCH 209/479] fix Linux segmentation faults --- lib_dec/ivas_binauralRenderer.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib_dec/ivas_binauralRenderer.c b/lib_dec/ivas_binauralRenderer.c index 95c96f3bb8..b3d298b562 100644 --- a/lib_dec/ivas_binauralRenderer.c +++ b/lib_dec/ivas_binauralRenderer.c @@ -188,67 +188,67 @@ static ivas_error ivas_binRenderer_convModuleOpen( #ifdef SRAM_REDUCTION_BINRENDERER /* allocate memory for filter states */ - if ( ( hBinRenConvModule->filterTapsLeftReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsLeftReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ** ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterTapsLeftImag = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsLeftImag = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ** ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterTapsRightReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsRightReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ** ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterTapsRightImag = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsRightImag = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ** ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } for ( bandIdx = 0; bandIdx < hBinRenderer->conv_band; bandIdx++ ) { - if ( ( hBinRenConvModule->filterTapsLeftReal[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsLeftReal[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterTapsLeftImag[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsLeftImag[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterTapsRightReal[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsRightReal[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterTapsRightImag[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterTapsRightImag[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } } - if ( ( hBinRenConvModule->filterStatesLeftReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterStatesLeftReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ** ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterStatesLeftImag = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterStatesLeftImag = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ** ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } for ( bandIdx = 0; bandIdx < hBinRenderer->conv_band; bandIdx++ ) { - if ( ( hBinRenConvModule->filterStatesLeftReal[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterStatesLeftReal[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } - if ( ( hBinRenConvModule->filterStatesLeftImag[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float ) ) ) == NULL ) + if ( ( hBinRenConvModule->filterStatesLeftImag[bandIdx] = (float **) count_malloc( hBinRenderer->nInChannels * sizeof( float * ) ) ) == NULL ) { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Convolution Module \n" ) ); } -- GitLab From a7147ee0e3b0b902dfb495931c460957bb8971c7 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 10 Oct 2022 15:19:57 +0200 Subject: [PATCH 210/479] fix build when FIX_DIRAC_CHANNELS and HARMONIZE_SBA_NCHAN_TRANSPORT are deactivated --- lib_com/ivas_cnst.h | 6 ++++-- lib_com/ivas_prot.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 02250e0f7f..3d9cf4e7a1 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -165,11 +165,13 @@ typedef enum #define HEAD_ROTATION_HOA_ORDER 3 /* HOA 3rd order */ #define MAX_CICP_CHANNELS 16 /* max channels for loudspeaker layouts (16 for custom layouts)*/ #define MAX_OUTPUT_CHANNELS 16 /* Maximum number of output channels (HOA 3rd order) */ - -#define FOA_CHANNELS 4 /* number of FOA channels */ +#ifndef FIX_DIRAC_CHANNELS +#define IVAS_MAX_NUM_CH 16 /* == MAX_OUTPUT_CHANNELS */ +#endif #define BINAURAL_CHANNELS 2 /* number of channels for binaural output configuration */ #define CPE_CHANNELS 2 /* number of CPE (stereo) channels */ +#define FOA_CHANNELS 4 /* number of FOA channels */ #define MAX_NUM_OBJECTS 4 /* max. number of audio objects */ #define MAX_SCE MAX_NUM_OBJECTS /* max. number of SCEs */ diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index a7f5987e38..15bee01553 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3034,7 +3034,7 @@ void ivas_sba_config( int16_t *nCPE, /* o : number of CPEs */ int16_t *element_mode /* o : element mode of the core coder */ #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - const SBA_MODE sba_mode /* i : SBA mode */ + ,const SBA_MODE sba_mode /* i : SBA mode */ #endif ); -- GitLab From 5c944f5fb34047b4e0a7532ef2f04cd281b9dae3 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 11 Oct 2022 10:16:55 +0200 Subject: [PATCH 211/479] [maintenance] formatting, comments --- lib_com/ivas_prot.h | 6 +---- lib_enc/ivas_cpe_enc.c | 17 +++++-------- lib_enc/ivas_mct_core_enc.c | 51 ++++++++++++++++++++++--------------- lib_enc/ivas_stat_enc.h | 1 + 4 files changed, 38 insertions(+), 37 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 80d1723315..01b52f2e9a 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -860,10 +860,6 @@ void stereo_enc_itd_init( void stereo_dft_enc_update( STEREO_DFT_ENC_DATA_HANDLE hStereoDft, /* i/o: encoder DFT stereo handle */ const int16_t max_bwidth /* i : maximum encoded bandwidth */ -#ifdef DEBUG_MODE_DFT - , - const int16_t res_code_bits /* i : bits for residual coding */ -#endif ); void stereo_dft_enc_destroy( @@ -2002,7 +1998,7 @@ void decoder_tcx_tns( const int16_t whitenedDomain #ifdef FIX_I13_TCX_TNS_ISSUE , - const int16_t isEvsMono /*i: EVS mono flag */ + const int16_t isEvsMono /* i : EVS mono flag */ #endif ); diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index d4f7eef648..d56916a200 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -342,14 +342,11 @@ ivas_error ivas_cpe_enc( stereo_dft_enc_analyze( sts, CPE_CHANNELS, input_frame, hCPE->hStereoDft, NULL, hCPE->hStereoDft->DFT, hCPE->input_mem ); sts[0]->total_brate = ( sts[0]->bits_frame_nominal + 10 ) * FRAMES_PER_SEC; /* add small overhead; st[0]->total_brate used in coder_type_modif() */ - - /* Update DFT Stereo memories */ - stereo_dft_enc_update( hCPE->hStereoDft, sts[0]->max_bwidth #ifdef DEBUG_MODE_DFT - , - (int16_t) ( ( hCPE->element_brate ) / FRAMES_PER_SEC - 0.8f * sts[0]->bits_frame_nominal ) + hCPE->hStereoDft->res_cod_bits = (int16_t) ( ( hCPE->element_brate ) / FRAMES_PER_SEC - 0.8f * sts[0]->bits_frame_nominal ); #endif - ); + /* Update DFT Stereo memories */ + stereo_dft_enc_update( hCPE->hStereoDft, sts[0]->max_bwidth ); /* DFT stereo processing */ stereo_dft_enc_process( hCPE, input_frame ); @@ -561,13 +558,11 @@ ivas_error ivas_cpe_enc( } stereo_dft_cng_side_gain( hCPE->hStereoDft, hCPE->hStereoCng, sts[0]->core_brate, sts[0]->last_core_brate, sts[0]->bwidth ); - - stereo_dft_enc_update( hCPE->hStereoDft, min( SWB, sts[0]->max_bwidth ) #ifdef DEBUG_MODE_DFT - , - 0 + hCPE->hStereoDft->res_cod_bits = 0; #endif - ); + + stereo_dft_enc_update( hCPE->hStereoDft, min( SWB, sts[0]->max_bwidth ) ); } else { diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c index 1a30b231e1..d2397d587a 100644 --- a/lib_enc/ivas_mct_core_enc.c +++ b/lib_enc/ivas_mct_core_enc.c @@ -51,23 +51,23 @@ *----------------------------------------------------------*/ static void FindChannelRatio( - MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ - Encoder_State **sts, /* i/o: encoder state structure */ - int16_t chBitRatios[MCT_MAX_CHANNELS], - const int16_t nchan /* i : number of channels */ + MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ + Encoder_State **sts, /* i/o: encoder state structure */ + int16_t chBitRatios[MCT_MAX_CHANNELS], /* o : bit-disctribution channel ratios */ + const int16_t nChannels /* i : number of channels to be coded */ ) { - float sum_nrg = 0; - float chRatio; + float sum_nrg, chRatio; int16_t i; - float nrg[MCT_MAX_CHANNELS] = { 0 }; + float nrg[MCT_MAX_CHANNELS]; set_f( nrg, 0, MCT_MAX_CHANNELS ); - getChannelEnergies( sts, nrg, nchan ); + getChannelEnergies( sts, nrg, nChannels ); /*calculate total energy without LFE*/ - for ( i = 0; i < nchan; i++ ) + sum_nrg = 0; + for ( i = 0; i < nChannels; i++ ) { if ( sts[i]->mct_chan_mode != MCT_CHAN_MODE_IGNORE && sts[i]->mct_chan_mode != MCT_CHAN_MODE_LFE ) { @@ -76,7 +76,7 @@ static void FindChannelRatio( } sum_nrg = 1.0f / max( sum_nrg, EPSILON ); - for ( i = 0; i < nchan; i++ ) + for ( i = 0; i < nChannels; i++ ) { if ( sts[i]->mct_chan_mode != MCT_CHAN_MODE_IGNORE && sts[i]->mct_chan_mode != MCT_CHAN_MODE_LFE ) { @@ -106,14 +106,20 @@ static void FindChannelRatio( } +/*----------------------------------------------------------* + * AdjustChannelRatios() + * + * adjust ratio of channels for bit distribution + *----------------------------------------------------------*/ + static void AdjustChannelRatios( - int16_t chBitRatios[MCT_MAX_CHANNELS], - const int16_t nchan /* i : number of channels */ + int16_t chBitRatios[MCT_MAX_CHANNELS], /* o : bit-disctribution channel ratios */ + const int16_t nChannels /* i/o: number of channels */ #ifdef FIX_I1_113 , - const int32_t ivas_total_brate, - const int16_t nAvailBits, - const int16_t sba_order + const int32_t ivas_total_brate, /* i : IVAS total bitrate */ + const int16_t nAvailBits, /* i : number of available bits */ + const int16_t sba_order /* i : Ambisonic (SBA) order */ #endif ) { @@ -148,12 +154,12 @@ static void AdjustChannelRatios( ratio_diff = 0; sum_ratio = 0.0f; sum_tar_ratio = 0.0f; - for ( i = 0; i < nchan; i++ ) + for ( i = 0; i < nChannels; i++ ) { sum_ratio += (float) chBitRatios[i]; sum_tar_ratio += (float) force_ch_bit_ratios[i]; } - for ( i = 3; i < nchan; i++ ) + for ( i = 3; i < nChannels; i++ ) { cur_ratio = (float) chBitRatios[i] / sum_ratio; tar_ratio = (float) force_ch_bit_ratios[i] / sum_tar_ratio; @@ -164,7 +170,8 @@ static void AdjustChannelRatios( assert( chBitRatios[i] < ( BITRATE_MCT_RATIO_RANGE - 1 ) ); ratio_diff += force_ch_bit_ratios[i] - chBitRatios[i]; } - for ( i = 0; i < min( 3, nchan ); i++ ) + + for ( i = 0; i < min( 3, nChannels ); i++ ) { assert( force_ch_bit_ratios[i] >= 0 ); chBitRatios[i] = min( BITRATE_MCT_RATIO_RANGE - 1, force_ch_bit_ratios[i] ); @@ -174,7 +181,7 @@ static void AdjustChannelRatios( #ifdef FIX_I1_113 /* make sure final ratios are within range*/ sum_ratio = 0.0f; - for ( i = 0; i < nchan; i++ ) + for ( i = 0; i < nChannels; i++ ) { sum_ratio += (float) chBitRatios[i]; } @@ -187,6 +194,8 @@ static void AdjustChannelRatios( return; } + + /*-------------------------------------------------------------------* * ivas_mct_core_enc() * @@ -207,7 +216,7 @@ void ivas_mct_core_enc( #endif ) { - int16_t ch, nSubframes, L_subframeTCX; + int16_t ch, ch_core, nSubframes, L_subframeTCX; int16_t i, cpe_id, n, nAvailBits; int16_t nCPE; float *orig_spectrum[MCT_MAX_CHANNELS][2]; /* Pointers to MDCT output for a short block (L/R) */ @@ -284,7 +293,7 @@ void ivas_mct_core_enc( for ( ch = 0; ch < (int16_t) ( hMCT->nchan_out_woLFE * 0.5 ); ch++ ) { - int16_t ch_core = ch * CPE_CHANNELS; + ch_core = ch * CPE_CHANNELS; if ( switch_bw ) { diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 2169cac9bd..fd204e18c5 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -278,6 +278,7 @@ typedef struct stereo_dft_enc_data_struct int16_t flip_sign; #ifdef DEBUG_MODE_DFT int16_t verbose; + int16_t res_cod_bits; #endif } STEREO_DFT_ENC_DATA, *STEREO_DFT_ENC_DATA_HANDLE; -- GitLab From 01c9d956a27bca82360c0786448daeabb520a6b8 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 11 Oct 2022 11:27:47 +0200 Subject: [PATCH 212/479] cleaning within FIX_I13_TCX_TNS_ISSUE --- lib_com/ivas_prot.h | 4 ---- lib_com/prot.h | 7 +------ lib_dec/dec_LPD.c | 14 ++------------ lib_dec/dec_tcx.c | 20 +++----------------- lib_dec/ivas_mdct_core_dec.c | 14 ++------------ lib_dec/ivas_tcx_core_dec.c | 14 ++------------ 6 files changed, 10 insertions(+), 63 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 01b52f2e9a..b1f03e2bf2 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -1996,10 +1996,6 @@ void decoder_tcx_tns( const int16_t bfi, /* i : Bad frame indicator */ const int16_t frame_cnt, /* i : frame counter in the super frame */ const int16_t whitenedDomain -#ifdef FIX_I13_TCX_TNS_ISSUE - , - const int16_t isEvsMono /* i : EVS mono flag */ -#endif ); void decoder_tcx_imdct( diff --git a/lib_com/prot.h b/lib_com/prot.h index ce686bd773..cffd699e46 100755 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -7137,8 +7137,7 @@ void lsf_weight_2st( const float *lsfq, float *w, const int16_t mode, - const int32_t sr_core -); + const int32_t sr_core ); void mdct_window_sine( float *window, @@ -7886,10 +7885,6 @@ void decoder_tcx( const int16_t bfi, /* i : Bad frame indicator */ const int16_t frame_cnt, /* i : frame counter in the super_frame */ const int16_t sba_dirac_stereo_flag /* i : signal stereo output for SBA DirAC */ -#ifdef FIX_I13_TCX_TNS_ISSUE - , - const int16_t isEvsMono /*i: EVS mono flag */ -#endif ); void decoder_tcx_post( diff --git a/lib_dec/dec_LPD.c b/lib_dec/dec_LPD.c index c1a01a1ca4..a28630886e 100644 --- a/lib_dec/dec_LPD.c +++ b/lib_dec/dec_LPD.c @@ -595,12 +595,7 @@ void decoder_LPD( } /* TCX decoder */ - decoder_tcx( st, prm, Aq, Aind, &synth[0], &synthFB[0], bfi, 0, 0 -#ifdef FIX_I13_TCX_TNS_ISSUE - , - 1 -#endif - ); + decoder_tcx( st, prm, Aq, Aind, &synth[0], &synthFB[0], bfi, 0, 0 ); } /*--------------------------------------------------------------------------------* @@ -626,12 +621,7 @@ void decoder_LPD( IGFDecRestoreTCX10SubFrameData( st->hIGFDec, k ); /* TCX decoder */ - decoder_tcx( st, prm, Aq, Aind, &synth[k * L_frame / 2], &synthFB[k * L_frameTCX / 2], bfi, k, 0 -#ifdef FIX_I13_TCX_TNS_ISSUE - , - 1 -#endif - ); + decoder_tcx( st, prm, Aq, Aind, &synth[k * L_frame / 2], &synthFB[k * L_frameTCX / 2], bfi, k, 0 ); } } diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index f83a415a9c..2934a2309c 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -68,10 +68,6 @@ void decoder_tcx( const int16_t bfi, /* i : Bad frame indicator */ const int16_t frame_cnt, /* i : frame counter in the super frame */ const int16_t sba_dirac_stereo_flag /* i : signal stereo output for SBA DirAC */ -#ifdef FIX_I13_TCX_TNS_ISSUE - , - const int16_t isEvsMono /*i: EVS mono flag */ -#endif ) { float x[N_MAX]; @@ -112,12 +108,7 @@ void decoder_tcx( decoder_tcx_noiseshaping_igf( st, L_spec, L_frame, L_frameTCX, left_rect, &x[0], &gainlpc2[0], &tmp_concealment_method, bfi ); - decoder_tcx_tns( st, L_frame_glob, L_spec, L_frame, L_frameTCX, &x[0], fUseTns, &tnsData, bfi, frame_cnt, 0 -#ifdef FIX_I13_TCX_TNS_ISSUE - , - isEvsMono -#endif - ); + decoder_tcx_tns( st, L_frame_glob, L_spec, L_frame, L_frameTCX, &x[0], fUseTns, &tnsData, bfi, frame_cnt, 0 ); decoder_tcx_imdct( st, L_frame_glob, L_frameTCX_glob, L_spec, tcx_offset, tcx_offsetFB, L_frame, L_frameTCX, left_rect, &x[0], &xn_buf[0], MDCT_IV, fUseTns, &synth[0], &synthFB[0], bfi, frame_cnt, 0, sba_dirac_stereo_flag ); @@ -1497,12 +1488,7 @@ void decoder_tcx_tns( STnsData *tnsData, const int16_t bfi, /* i : Bad frame indicator */ const int16_t frame_cnt, /* i : frame counter in the super frame */ - const int16_t whitenedDomain -#ifdef FIX_I13_TCX_TNS_ISSUE - , - const int16_t isEvsMono /*i: EVS mono flag */ -#endif -) + const int16_t whitenedDomain ) { int16_t index, isTCX5, L; TCX_CONFIG_HANDLE hTcxCfg = st->hTcxCfg; @@ -1573,7 +1559,7 @@ void decoder_tcx_tns( #ifndef FIX_I13_TCX_TNS_ISSUE tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); #else - if ( isEvsMono ) /*tbc: this is temporary to maintain EVS BE, this is a bug and should be fixed also for EVS (see issue 13) */ + if ( st->element_mode == EVS_MONO ) /* TBC: this is temporary to maintain EVS BE, this is a bug and should be fixed also for EVS (see issue 13) */ { tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); } diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index 9003098fb6..a495aed934 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -1112,23 +1112,13 @@ void ivas_mdct_core_tns_ns( } decoder_tcx_tns( st, L_frame_global[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], &x[ch][k][0], - fUseTns[ch][k], &tnsData[ch][k], bfi, k, 1 -#ifdef FIX_I13_TCX_TNS_ISSUE - , - 0 -#endif - ); + fUseTns[ch][k], &tnsData[ch][k], bfi, k, 1 ); sns_shape_spectrum( x[ch][k], st->hTcxCfg->psychParamsCurrent, &sns_int_scf[0], st->hTcxCfg->psychParamsCurrent->nBins ); v_multc( x[ch][k] + st->hTcxCfg->psychParamsCurrent->nBins, sns_int_scf[FDNS_NPTS - 1], x[ch][k] + st->hTcxCfg->psychParamsCurrent->nBins, L_spec[ch] - st->hTcxCfg->psychParamsCurrent->nBins ); decoder_tcx_tns( st, L_frame_global[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], &x[ch][k][0], - fUseTns[ch][k], &tnsData[ch][k], bfi, k, 0 -#ifdef FIX_I13_TCX_TNS_ISSUE - , - 0 -#endif - ); + fUseTns[ch][k], &tnsData[ch][k], bfi, k, 0 ); } if ( bfi && st->tonal_mdct_plc_active ) diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 02ae4b6064..e46c32ddbb 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -528,12 +528,7 @@ void stereo_tcx_core_dec( } /* TCX decoder */ - decoder_tcx( st, prm, Aq, Aind, &synth[0], &synthFB[0], bfi, 0, sba_dirac_stereo_flag -#ifdef FIX_I13_TCX_TNS_ISSUE - , - 0 -#endif - ); + decoder_tcx( st, prm, Aq, Aind, &synth[0], &synthFB[0], bfi, 0, sba_dirac_stereo_flag ); } /*--------------------------------------------------------------------------------* @@ -561,12 +556,7 @@ void stereo_tcx_core_dec( } /* TCX decoder */ - decoder_tcx( st, prm, Aq, Aind, &synth[k * st->L_frame / 2], &synthFB[k * hTcxDec->L_frameTCX / 2], bfi, k, sba_dirac_stereo_flag -#ifdef FIX_I13_TCX_TNS_ISSUE - , - 0 -#endif - ); + decoder_tcx( st, prm, Aq, Aind, &synth[k * st->L_frame / 2], &synthFB[k * hTcxDec->L_frameTCX / 2], bfi, k, sba_dirac_stereo_flag ); } } -- GitLab From 2e75d3284e6d4bd9c6af8523c2d1dff2a7b656d5 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 12 Oct 2022 11:26:43 +0200 Subject: [PATCH 213/479] explicitly perform NaN check to avoid RuntimeWarning in EFAP --- scripts/pyaudio3dtools/EFAP.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/scripts/pyaudio3dtools/EFAP.py b/scripts/pyaudio3dtools/EFAP.py index 73b8df6ee0..e5b4219cc0 100644 --- a/scripts/pyaudio3dtools/EFAP.py +++ b/scripts/pyaudio3dtools/EFAP.py @@ -496,9 +496,12 @@ class EFAP: ) if mod: - A[0] %= mod - B[0] %= mod - C[0] %= mod + if not np.isnan(A[0]): + A[0] %= mod + if not np.isnan(B[0]): + B[0] %= mod + if not np.isnan(C[0]): + C[0] %= mod if self._in_triangle(P, A, B, C): N = np.transpose([B[1] - C[1], C[0] - B[0]]) @@ -560,15 +563,17 @@ class EFAP: return True, None # if the azimuth difference is large, perform the 2D check again with azimuths wrapped to (-360, 0] and [0, 360) - # RuntimeWarning due to NaNs can be safely ignored, _in_triangle() accounts for them if np.nanmax(azi) - np.nanmin(azi) > 180: for tri in combinations(poly, 3): A = np.array(self._get_azi_ele(tri[0])) B = np.array(self._get_azi_ele(tri[1])) C = np.array(self._get_azi_ele(tri[2])) - A[0] %= 360 - B[0] %= 360 - C[0] %= 360 + if not np.isnan(A[0]): + A[0] %= 360 + if not np.isnan(B[0]): + B[0] %= 360 + if not np.isnan(C[0]): + C[0] %= 360 if self._in_triangle(P, A, B, C): return True, 360 @@ -576,9 +581,12 @@ class EFAP: A = np.array(self._get_azi_ele(tri[0])) B = np.array(self._get_azi_ele(tri[1])) C = np.array(self._get_azi_ele(tri[2])) - A[0] %= -360 - B[0] %= -360 - C[0] %= -360 + if not np.isnan(A[0]): + A[0] %= -360 + if not np.isnan(B[0]): + B[0] %= -360 + if not np.isnan(C[0]): + C[0] %= -360 if self._in_triangle(P, A, B, C): return True, -360 -- GitLab From 88c81036b0bb953f857f239f7d5d299e6c037224 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 12 Oct 2022 11:33:23 +0200 Subject: [PATCH 214/479] also archive no-frameloss logs from sanitizer run --- .gitlab-ci.yml | 18 +++++++++--------- ci/run_scheduled_sanitizer_test.py | 14 +++++++++++--- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a866a166e3..0db1a21395 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -481,21 +481,21 @@ codec-comparison-on-main-push: when: always paths: - ep_015.g192 - - "CLANG*/logs" + - "CLANG*/logs*" -sanitizer-test-mono: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - script: - - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS +#sanitizer-test-mono: + #extends: .sanitizer-test-template + #rules: + #- if: $IS_SANITIZER_TEST_RUN + #script: + #- python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS sanitizer-test-stereo: extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 20 minutes + #when: delayed + #start_in: 20 minutes script: - python3 ci/run_scheduled_sanitizer_test.py stereo $OUT_FORMATS_CHANNEL_BASED --tests $SANITIZER_TESTS diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index 1ffaaf55a8..bcfcc6891f 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -93,12 +93,20 @@ def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True) subprocess.call(GENPATT_CMD.split()) # cleanup to avoid script errors - # we want "logs" and "dec" subfolders to be empty -> delete and recreate them - cleanup_folders = ["logs", "dec"] + # we want "logs" and "dec" subfolders to be empty -> delete "dec" and rename "log" + # to keep the log files from the first run with no frame losses + folders_to_delete = ["dec"] + folders_to_backup = ["logs"] for t in tests: - for fol in cleanup_folders: + for fol in folders_to_delete: for fi in pathlib.Path(t).joinpath(fol).iterdir(): fi.unlink() + for fol in folders_to_backup: + path = pathlib.Path(t).joinpath(fol) + new_name = path.Path(str(path) + "_noPLC") + path.rename(new_name) + # need empty log folder to avoid crashes + path.mkdir() cmd_fec = cmd_no_fec + ["--decoder_only", "-f", EP_FILE] print("======== Script command line WITH plc: ========\n{}".format(" ".join(cmd_no_fec))) -- GitLab From 634ea76d39aafd88f7fd8e06b24fe85cee94a302 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 12 Oct 2022 11:35:34 +0200 Subject: [PATCH 215/479] change workflow temporarily for testing --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0db1a21395..05921565ec 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,7 +18,8 @@ workflow: when: never - if: $CI_PIPELINE_SOURCE == 'merge_request_event' # Runs for merge requests - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main - - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main + # - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main + - if: $CI_PIPELINE_SOURCE == 'schedule' # Scheduled in main stages: - maintenance -- GitLab From fcecb75ec1dfa667e356ea13d6a0d7d7494c89db Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 12 Oct 2022 11:37:01 +0200 Subject: [PATCH 216/479] correct previous commit --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 05921565ec..173e7f64f3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,7 +19,7 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' # Runs for merge requests - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main # - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main - - if: $CI_PIPELINE_SOURCE == 'schedule' # Scheduled in main + - if: $CI_PIPELINE_SOURCE == 'web' stages: - maintenance -- GitLab From 468e1c4afed1eb5b2209df6f24c4370f17a9b6de Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 12 Oct 2022 11:49:51 +0200 Subject: [PATCH 217/479] fix typo in script --- ci/run_scheduled_sanitizer_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index bcfcc6891f..4f3cd25c0b 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -103,7 +103,7 @@ def run_check(modes: list, out_formats: list, tests: list, run_fec: bool = True) fi.unlink() for fol in folders_to_backup: path = pathlib.Path(t).joinpath(fol) - new_name = path.Path(str(path) + "_noPLC") + new_name = pathlib.Path(str(path) + "_noPLC") path.rename(new_name) # need empty log folder to avoid crashes path.mkdir() -- GitLab From ddbd9d141752a2fc03d29448e873d59ab3d446fa Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 12 Oct 2022 10:34:43 +0000 Subject: [PATCH 218/479] Update ivas_dirac_dec.c --- lib_dec/ivas_dirac_dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index b4da8ef020..1af4668490 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -1814,7 +1814,7 @@ void ivas_dirac_dec( #ifdef DEBUG_MODE_DIRAC { #ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - int16_t n, tmp[1 * L_FRAME48k]; + int16_t n, tmp[IVAS_SPAR_MAX_CH * L_FRAME48k]; #else int16_t n, tmp[DIRAC_MAX_TRANS_CHANS * L_FRAME48k]; #endif -- GitLab From 2843341109f30282a8c8ed512d506310626b6074 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 12 Oct 2022 10:39:09 +0000 Subject: [PATCH 219/479] Update ivas_cnst.h --- lib_com/ivas_cnst.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 3d9cf4e7a1..3c8e35c7c1 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -936,7 +936,7 @@ typedef enum #define SPAR_CONFIG_BW FB -#define IVAS_SPAR_MAX_CH (2*IVAS_MAX_SBA_ORDER + 2) /* FOA + planar HOA */ +#define IVAS_SPAR_MAX_CH (FOA_CHANNELS + 2 * ( IVAS_MAX_SBA_ORDER - 1 )) /* FOA + planar HOA */ #define IVAS_SPAR_P_LOWERTRI ((IVAS_SPAR_MAX_CH - 1) * (IVAS_SPAR_MAX_CH - 2)) >> 1 #define IVAS_SPAR_MAX_C_COEFF (IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS) * ( IVAS_SPAR_MAX_DMX_CHS - 1) -- GitLab From 65f97302f15905b2bae1eaf0daa3c401b7e4425c Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 12 Oct 2022 14:01:01 +0200 Subject: [PATCH 220/479] remove temporary changes for testing --- .gitlab-ci.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 173e7f64f3..9529be0e3c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,8 +18,7 @@ workflow: when: never - if: $CI_PIPELINE_SOURCE == 'merge_request_event' # Runs for merge requests - if: $CI_PIPELINE_SOURCE == 'push' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Pushes to main - # - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main - - if: $CI_PIPELINE_SOURCE == 'web' + - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Scheduled in main stages: - maintenance @@ -482,21 +481,22 @@ codec-comparison-on-main-push: when: always paths: - ep_015.g192 + # second wildcard is necessary to get encoder and no-PLC run logs - "CLANG*/logs*" -#sanitizer-test-mono: - #extends: .sanitizer-test-template - #rules: - #- if: $IS_SANITIZER_TEST_RUN - #script: - #- python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS +sanitizer-test-mono: + extends: .sanitizer-test-template + rules: + - if: $IS_SANITIZER_TEST_RUN + script: + - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS sanitizer-test-stereo: extends: .sanitizer-test-template rules: - if: $IS_SANITIZER_TEST_RUN - #when: delayed - #start_in: 20 minutes + when: delayed + start_in: 20 minutes script: - python3 ci/run_scheduled_sanitizer_test.py stereo $OUT_FORMATS_CHANNEL_BASED --tests $SANITIZER_TESTS -- GitLab From 9891e302d7b932cee368b0ad139d6825cbb81c60 Mon Sep 17 00:00:00 2001 From: kiene Date: Wed, 12 Oct 2022 15:17:37 +0200 Subject: [PATCH 221/479] fix for #152, use-of-uninit-value --- lib_dec/ivas_stereo_switching_dec.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index 4031a8cf4e..50b5c22f48 100644 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -1494,6 +1494,9 @@ void stereo_switching_dec( sts[1]->hTcxCfg->tcx_mdct_window_length = sts[0]->hTcxCfg->tcx_mdct_window_length; sts[1]->pit_res_max = sts[0]->pit_res_max; sts[1]->pit_res_max_past = sts[0]->pit_res_max_past; +#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE + sts[1]->hTcxDec->L_frameTCX = sts[0]->hTcxDec->L_frameTCX; +#endif } } else if ( hCPE->element_mode == IVAS_CPE_TD && hCPE->last_element_mode == IVAS_CPE_MDCT ) -- GitLab From e858b5eb404daf3ab3e86599dd6e5a401d700155 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 13 Oct 2022 13:49:28 +0200 Subject: [PATCH 222/479] fix issue 11 --- lib_com/ivas_prot.h | 5 +++++ lib_com/ivas_sns_com.c | 2 +- lib_com/options.h | 1 + lib_dec/ivas_mct_dec_mct.c | 7 +++++-- lib_dec/ivas_mdct_core_dec.c | 7 +++++-- lib_dec/ivas_stereo_mdct_core_dec.c | 7 +++++-- lib_dec/ivas_stereo_mdct_stereo_dec.c | 9 +++++++-- 7 files changed, 29 insertions(+), 9 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index b1f03e2bf2..4188ec136c 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2145,7 +2145,12 @@ void stereo_decoder_tcx( const int16_t core_l, /* i : core for left channel (TCX20/TCX10) */ const int16_t core_r, /* i : core for right channel (TCX20/TCX10) */ const int16_t igf, /* i : flag for IGF activity */ +#ifdef FIX_TCX10_STEREO_PROC + const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ + const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ +#else const int16_t L_frame, /* i : TCX frame length */ +#endif const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ const int16_t last_core_l, /* i : last core for left channel */ const int16_t last_core_r, /* i : last core for right channel */ diff --git a/lib_com/ivas_sns_com.c b/lib_com/ivas_sns_com.c index b1555a038b..d975435994 100644 --- a/lib_com/ivas_sns_com.c +++ b/lib_com/ivas_sns_com.c @@ -56,7 +56,7 @@ void sns_compute_scf( float spectrum[], const PsychoacousticParameters *pPsychParams, - const int16_t L_frame, /* TODO: this parameter is obsolete, since pPsychParams->nBins is used anyway */ + const int16_t L_frame, float *scf ) { int16_t i, n, k; diff --git a/lib_com/options.h b/lib_com/options.h index 5d0e0c6088..eba29bc405 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -155,6 +155,7 @@ #define SRAM_REDUCTION_BINRENDERER /* Issue 145: reduction of static RAM usage in fastconv binaural renderer */ #define SRAM_REDUCTION_BINRENDERER_ROOM /* Issue 145: reduction of static RAM usage in fastconv binaural room renderer */ #define FIX_I120_INV_SQRT /* Issue 120: inv_sqrt() shall be used instead of 1 / sqrt() to measure the correct complexity */ +#define FIX_TCX10_STEREO_PROC /* Issue 11 */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_mct_dec_mct.c b/lib_dec/ivas_mct_dec_mct.c index ec19acb602..aaf27e6e1a 100644 --- a/lib_dec/ivas_mct_dec_mct.c +++ b/lib_dec/ivas_mct_dec_mct.c @@ -220,8 +220,11 @@ void apply_MCT_dec( { hBlock = hMCT->hBlockData[pair]; - stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode, - sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 ); +#ifdef FIX_TCX10_STEREO_PROC + stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode, sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, sts[1]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 ); +#else + stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode, sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 ); +#endif } applyGlobalILD( sts, hMCT, x ); diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index a495aed934..7149426e6b 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -510,8 +510,11 @@ void ivas_mdct_core_invQ( L_frameTCX[0] = sts[0]->L_frameTCX_past; mvr2r( sts[0]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[0], L_frameTCX[0] ); mvr2r( sts[1]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[1], L_frameTCX[0] ); - stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0], - sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 1 ); +#ifdef FIX_TCX10_STEREO_PROC + stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], L_frameTCX[1], 0, sts[0]->last_core, sts[1]->last_core, 1 ); +#else + stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 1 ); +#endif } #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index 41d514b205..1e923b5b7e 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -354,8 +354,11 @@ void stereo_mdct_core_dec( #ifdef DEBUGGING assert( ( sts[0]->core == sts[1]->core ) || ( ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) && ( hCPE->hStereoMdct->mdct_stereo_mode[1] == SMDCT_DUAL_MONO ) ) ); #endif - stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], x[0], x[1], &hCPE->hStereoMdct->mdct_stereo_mode[0], - sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 0 ); +#ifdef FIX_TCX10_STEREO_PROC + stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], x[0], x[1], &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], L_frameTCX[1], 0, sts[0]->last_core, sts[1]->last_core, 0 ); +#else + stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], x[0], x[1], &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 0 ); +#endif } ivas_mdct_core_tns_ns( hCPE, 0, fUseTns, tnsData, x, Aq, 0 ); diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 46f2f0d73f..be4d2a1c54 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -214,7 +214,12 @@ void stereo_decoder_tcx( const int16_t core_l, /* i : core for left channel (TCX20/TCX10) */ const int16_t core_r, /* i : core for right channel (TCX20/TCX10) */ const int16_t igf, /* i : flag for IGF activity */ +#ifdef FIX_TCX10_STEREO_PROC + const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ + const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ +#else const int16_t L_frame, /* i : TCX frame length */ +#endif const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ const int16_t last_core_l, /* i : last core for left channel */ const int16_t last_core_r, /* i : last core for right channel */ @@ -328,11 +333,11 @@ void stereo_decoder_tcx( if ( ( nrgRatio > 1.0f ) && ( k < ( ( core_r == TCX_20_CORE ) ? 1 : NB_DIV ) ) ) { - v_multc( spec_r[k], nrgRatio, spec_r[k], L_frame / ( ( core_r == TCX_20_CORE ) ? 1 : NB_DIV ) ); + v_multc( spec_r[k], nrgRatio, spec_r[k], L_frameTCX_r ); } else if ( ( nrgRatio < 1.0f ) && ( k < ( ( core_l == TCX_20_CORE ) ? 1 : NB_DIV ) ) ) { - v_multc( spec_l[k], 1.0f / nrgRatio, spec_l[k], L_frame / ( ( core_l == TCX_20_CORE ) ? 1 : NB_DIV ) ); + v_multc( spec_l[k], 1.0f / nrgRatio, spec_l[k], L_frameTCX_l ); } } } /* for k */ -- GitLab From 3d1657e27282f02e762264ae202e561a21eed2a3 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 13 Oct 2022 13:59:56 +0200 Subject: [PATCH 223/479] fix compilation with switch deactivated --- lib_dec/ivas_stereo_mdct_stereo_dec.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index be4d2a1c54..1bdbb5eda7 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -333,11 +333,19 @@ void stereo_decoder_tcx( if ( ( nrgRatio > 1.0f ) && ( k < ( ( core_r == TCX_20_CORE ) ? 1 : NB_DIV ) ) ) { +#ifdef FIX_TCX10_STEREO_PROC v_multc( spec_r[k], nrgRatio, spec_r[k], L_frameTCX_r ); +#else + v_multc( spec_r[k], nrgRatio, spec_r[k], L_frame / ( ( core_r == TCX_20_CORE ) ? 1 : NB_DIV ) ); +#endif } else if ( ( nrgRatio < 1.0f ) && ( k < ( ( core_l == TCX_20_CORE ) ? 1 : NB_DIV ) ) ) { +#ifdef FIX_TCX10_STEREO_PROC v_multc( spec_l[k], 1.0f / nrgRatio, spec_l[k], L_frameTCX_l ); +#else + v_multc( spec_l[k], 1.0f / nrgRatio, spec_l[k], L_frame / ( ( core_l == TCX_20_CORE ) ? 1 : NB_DIV ) ); +#endif } } } /* for k */ -- GitLab From 7b39b94e6a51405df7f44f044e62fe0db961acbc Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 14:02:25 +0200 Subject: [PATCH 224/479] Remove leftover switches --- lib_com/options.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 5d0e0c6088..e7c71c31fe 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,8 +146,6 @@ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define SPAR_SCALING_HARMONIZATION /* Issue 80: Changes to harmonize scaling in spar */ -#define FIX_I98_HANDLES_TO_NULL /* Issue 98: do the setting of all handles to NULL in one place */ #define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ -- GitLab From b8010a52307fb7129773bdf35ccf38d777c28fdc Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 14:06:09 +0200 Subject: [PATCH 225/479] accept FIX_I102_SWB_TBE_SWITCH --- lib_com/options.h | 1 - lib_dec/acelp_core_dec.c | 4 ++-- lib_enc/acelp_core_enc.c | 4 ++-- lib_enc/swb_pre_proc.c | 38 +++----------------------------------- 4 files changed, 7 insertions(+), 40 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index e7c71c31fe..b6192d0505 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,6 @@ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define FIX_I102_SWB_TBE_SWITCH /* Issue 102: avoid IO->SWB switching code for IVAS, generate SHB ACB mem with lerp in case of switch */ #define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c index ed91a78e09..c108c80998 100644 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -701,13 +701,13 @@ ivas_error acelp_core_dec( mvr2r( old_exc_s + st->L_frame - M, st->mem_syn2, M ); residu( Aq, M, old_exc_s, old_exc + L_EXC_MEM_DEC - st->L_frame, st->L_frame ); } -#ifdef FIX_I102_SWB_TBE_SWITCH + if ( st->last_core != ACELP_CORE && st->element_mode > EVS_MONO ) { /* Prepare ACB memory of old_bwe_exc */ lerp( old_exc, old_bwe_exc, L_EXC_MEM_DEC * HIBND_ACB_L_FAC, L_EXC_MEM_DEC ); } -#endif + /*-----------------------------------------------------------------* * FEC - first good frame after lost frame(s) (possibility to correct the ACB) *-----------------------------------------------------------------*/ diff --git a/lib_enc/acelp_core_enc.c b/lib_enc/acelp_core_enc.c index e4ce289a9e..857099ed92 100644 --- a/lib_enc/acelp_core_enc.c +++ b/lib_enc/acelp_core_enc.c @@ -472,13 +472,13 @@ ivas_error acelp_core_enc( mvr2r( hLPDmem->old_exc + st->L_frame - M, hLPDmem->mem_syn, M ); residu( Aq, M, hLPDmem->old_exc, old_exc, st->L_frame ); } -#ifdef FIX_I102_SWB_TBE_SWITCH + if ( st->last_core != ACELP_CORE && st->element_mode > EVS_MONO ) { /* Prepare ACB memory of old_bwe_exc */ lerp( old_exc, old_bwe_exc, L_EXC_MEM_DEC * HIBND_ACB_L_FAC, L_EXC_MEM_DEC ); } -#endif + /*---------------------------------------------------------------* * Calculation of LP residual (filtering through A[z] filter) diff --git a/lib_enc/swb_pre_proc.c b/lib_enc/swb_pre_proc.c index 52d3099c41..4d6eaf7836 100644 --- a/lib_enc/swb_pre_proc.c +++ b/lib_enc/swb_pre_proc.c @@ -287,21 +287,15 @@ void swb_pre_proc( FD_BWE_ENC_HANDLE hBWE_FD; int32_t inner_Fs, input_Fs; float old_input[NS2SA( 48000, DELAY_FD_BWE_ENC_NS + DELAY_FIR_RESAMPL_NS ) + L_FRAME48k]; - float spchTmp[640]; -#ifdef FIX_I102_SWB_TBE_SWITCH - float spchTmp2[640]; - int16_t L_resamp; -#endif - int16_t i, j; + float spchTmp[L_FRAME32k], spchTmp2[L_FRAME32k]; + int16_t i, j, L_resamp; int16_t startB, endB; float *realBufferFlipped[CLDFB_NO_COL_MAX]; float *imagBufferFlipped[CLDFB_NO_COL_MAX]; float realBufferTmp[CLDFB_NO_COL_MAX][20]; float imagBufferTmp[CLDFB_NO_COL_MAX][20]; int16_t ts, nB, uB; - float sign; - float lbEner, v, t; - float regression; + float sign, lbEner, v, t, regression; const float *thr, *regV; int16_t Sample_Delay_SWB_BWE32k, lMemRecalc32k, dft_ovl32k; @@ -681,11 +675,7 @@ void swb_pre_proc( } else { -#ifdef FIX_I102_SWB_TBE_SWITCH if ( ( st->bwidth == FB || st->core == ACELP_CORE ) && ( st->element_mode == EVS_MONO ) ) -#else - if ( st->bwidth == FB || st->core == ACELP_CORE || ( st->element_mode == IVAS_CPE_DFT && input_Fs == 48000 ) ) -#endif { set_f( hBWE_TD->old_speech_shb, 0, L_LOOK_16k + L_SUBFR16k ); set_f( shb_speech, 0, L_FRAME16k ); /* shb_speech for FB/SWB BWE_HIGHRATE is not used at 64kbps */ @@ -697,16 +687,9 @@ void swb_pre_proc( st->hBWE_TD->prev_pow_exc16kWhtnd = 1.0f; st->hBWE_TD->prev_mix_factor = 1.0f; st->hBWE_TD->prev_Env_error = 0.0f; -#ifndef FIX_I102_SWB_TBE_SWITCH - if ( st->element_mode == IVAS_CPE_DFT ) - { - set_f( hCPE->hStereoDft->output_mem_dmx_16k_shb, 0, STEREO_DFT_OVL_16k ); - } -#endif } else { -#ifdef FIX_I102_SWB_TBE_SWITCH if ( st->element_mode == IVAS_CPE_DFT ) { if ( st->L_frame == L_FRAME ) @@ -742,15 +725,7 @@ void swb_pre_proc( spchTmp[i] = -spchTmp[i]; } } -#else - /* flip the spectrm */ - mvr2r( new_swb_speech, spchTmp, L_FRAME32k ); - for ( i = 0; i < L_FRAME32k; i = i + 2 ) - { - spchTmp[i] = -spchTmp[i]; - } -#endif Decimate_allpass_steep( spchTmp, hBWE_TD->state_ana_filt_shb, L_FRAME32k, shb_speech ); mvr2r( shb_speech + L_FRAME16k - ( L_LOOK_16k + L_SUBFR16k ), hBWE_TD->old_speech_shb, L_LOOK_16k + L_SUBFR16k ); @@ -770,23 +745,16 @@ void swb_pre_proc( /* Reset CLDFB synthesis buffer */ set_f( st->cldfbSynTd->cldfb_state, 0.0f, st->cldfbSynTd->p_filter_length ); } -#ifdef FIX_I102_SWB_TBE_SWITCH else { hCPE->hStereoDft->flip_sign = -hCPE->hStereoDft->flip_sign; /* Make sure sign is updated even if DFT SHB target is not generated */ } -#endif } /* Memory reset to compensate for 0.9375 ms offset when transitioning from IO to SWB */ /* When switching from n >1 to n = 1, we keep the enc/dec delay as 8.75/3.25 and below code not needed; only when n = 1 start, it will be 9.6875/2.3125 in that case this reset is needed for IO->BWE.*/ -#ifdef FIX_I102_SWB_TBE_SWITCH if ( st->last_extl == -1 && st->element_mode == EVS_MONO ) -#else - /* IVAS_fmToDo: revisit for IVAS (the condition is currently entered for both TD and DFT stereo - is it desirable?) */ - if ( st->last_extl == -1 ) -#endif { delay = NS2SA( input_Fs, DELAY_FIR_RESAMPL_NS ); for ( i = 0; i < delay; i++ ) -- GitLab From 652278a176675650d5b545bcd001ed8213e93232 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 14:08:04 +0200 Subject: [PATCH 226/479] accept FIX_DIRAC_CHANNELS --- lib_com/ivas_cnst.h | 7 ------- lib_com/options.h | 1 - lib_enc/ivas_dirac_enc.c | 23 +---------------------- lib_enc/ivas_stat_enc.h | 4 ---- 4 files changed, 1 insertion(+), 34 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 3c8e35c7c1..b8f7477579 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -165,9 +165,6 @@ typedef enum #define HEAD_ROTATION_HOA_ORDER 3 /* HOA 3rd order */ #define MAX_CICP_CHANNELS 16 /* max channels for loudspeaker layouts (16 for custom layouts)*/ #define MAX_OUTPUT_CHANNELS 16 /* Maximum number of output channels (HOA 3rd order) */ -#ifndef FIX_DIRAC_CHANNELS -#define IVAS_MAX_NUM_CH 16 /* == MAX_OUTPUT_CHANNELS */ -#endif #define BINAURAL_CHANNELS 2 /* number of channels for binaural output configuration */ #define CPE_CHANNELS 2 /* number of CPE (stereo) channels */ @@ -856,11 +853,7 @@ typedef enum * DirAC Constants *----------------------------------------------------------------------------------*/ -#ifdef FIX_DIRAC_CHANNELS #define DIRAC_MAX_ANA_CHANS FOA_CHANNELS /* Maximum number of channels for DirAC analysis */ -#else -#define DIRAC_MAX_ANA_CHANS 4 /* Maximum number of channels for DirAC analysis */ -#endif #ifndef HARMONIZE_SBA_NCHAN_TRANSPORT #define DIRAC_MAX_TRANS_CHANS 8 /* Maximum number of transport channels for DirAC */ diff --git a/lib_com/options.h b/lib_com/options.h index b6192d0505..a9fdb6b424 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,6 @@ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define FIX_DIRAC_CHANNELS /* Issue 71: lower number of DirAC analysis channels */ #define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ #define SRAM_REDUCTION_BINRENDERER /* Issue 145: reduction of static RAM usage in fastconv binaural renderer */ diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 6ac3cff6fe..9d3b6131e1 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -122,29 +122,16 @@ ivas_error ivas_dirac_enc_open( if ( st_ivas->sba_mode == SBA_MODE_DIRAC ) { hDirAC->num_samples_synchro_delay = NS2SA( input_Fs, IVAS_FB_ENC_DELAY_NS ); -#ifdef FIX_DIRAC_CHANNELS + for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) -#else - for ( i = 0; i < st_ivas->hEncoderConfig->nchan_inp; i++ ) -#endif { hDirAC->sba_synchro_buffer[i] = (float *) count_malloc( hDirAC->num_samples_synchro_delay * sizeof( float ) ); set_zero( hDirAC->sba_synchro_buffer[i], hDirAC->num_samples_synchro_delay ); } -#ifndef FIX_DIRAC_CHANNELS - for ( ; i < IVAS_MAX_NUM_CH; i++ ) - { - hDirAC->sba_synchro_buffer[i] = NULL; - } -#endif } else { -#ifdef FIX_DIRAC_CHANNELS for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) -#else - for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { hDirAC->sba_synchro_buffer[i] = NULL; } @@ -252,11 +239,7 @@ void ivas_dirac_enc_close( ivas_FB_mixer_close( &hDirAC->hFbMixer, input_Fs ); } -#ifdef FIX_DIRAC_CHANNELS for ( i = 0; i < DIRAC_MAX_ANA_CHANS; i++ ) -#else - for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) -#endif { if ( hDirAC->sba_synchro_buffer[i] != NULL ) { @@ -470,11 +453,7 @@ void ivas_dirac_enc_spar_delay_synchro( int16_t ch_idx; float tmp_buffer[L_FRAME48k]; -#ifdef FIX_DIRAC_CHANNELS for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) -#else - for ( ch_idx = 0; ch_idx < st_ivas->hEncoderConfig->nchan_inp; ch_idx++ ) -#endif { mvr2r( data_f[ch_idx], tmp_buffer, input_frame ); mvr2r( st_ivas->hDirAC->sba_synchro_buffer[ch_idx], data_f[ch_idx], st_ivas->hDirAC->num_samples_synchro_delay ); diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index fd204e18c5..1dc541f003 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -572,11 +572,7 @@ typedef struct ivas_dirac_enc_data_structure PARAM_ISM_CONFIG_HANDLE hParamIsm; /* Parametric ISM handle */ IVAS_FB_MIXER_HANDLE hFbMixer; -#ifdef FIX_DIRAC_CHANNELS float *sba_synchro_buffer[DIRAC_MAX_ANA_CHANS]; -#else - float *sba_synchro_buffer[IVAS_MAX_NUM_CH]; // VE: all 16 buffers not needed ? -#endif int16_t num_samples_synchro_delay; /* DirAC parameter estimation */ -- GitLab From 227c76f9756eaeea0da79e142efe13fee2f4a8c3 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 14:16:49 +0200 Subject: [PATCH 227/479] accept HARMONIZE_SBA_NCHAN_TRANSPORT --- lib_com/bitstream.c | 4 - lib_com/ivas_cnst.h | 9 --- lib_com/ivas_dirac_com.c | 101 +------------------------ lib_com/ivas_prot.h | 18 ----- lib_com/ivas_sba_config.c | 15 ---- lib_com/ivas_spar_com.c | 17 ----- lib_com/options.h | 1 - lib_dec/ivas_dirac_dec.c | 10 +-- lib_dec/ivas_init_dec.c | 14 ---- lib_dec/ivas_sba_dec.c | 146 +----------------------------------- lib_enc/ivas_mct_enc.c | 27 ------- lib_enc/ivas_sba_enc.c | 137 --------------------------------- lib_enc/ivas_spar_encoder.c | 4 - 13 files changed, 5 insertions(+), 498 deletions(-) diff --git a/lib_com/bitstream.c b/lib_com/bitstream.c index 9662a4cf4b..12f172f2a3 100644 --- a/lib_com/bitstream.c +++ b/lib_com/bitstream.c @@ -1974,11 +1974,7 @@ ivas_error preview_indices( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order ); -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ) ); -#else - ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode ); -#endif } } diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index b8f7477579..fe9cb54a69 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -855,15 +855,6 @@ typedef enum #define DIRAC_MAX_ANA_CHANS FOA_CHANNELS /* Maximum number of channels for DirAC analysis */ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT -#define DIRAC_MAX_TRANS_CHANS 8 /* Maximum number of transport channels for DirAC */ -#endif - -#define DIRAC_MIN_BITRATE_8_TRANS_CHAN IVAS_384k -#define DIRAC_MIN_BITRATE_6_TRANS_CHAN IVAS_256k -#define DIRAC_MIN_BITRATE_4_TRANS_CHAN IVAS_160k /* minimum bitrate for sending 4 transport channels (FOA) */ -#define DIRAC_MIN_BITRATE_2_TRANS_CHAN IVAS_48k /* minimum bitrate for sending 2 transport channels (Stereo) */ - #define DIRAC_NUM_DIMS 3 /* number of directions to estimate (X,Y,Z) */ #define DIRAC_MAX_NBANDS 12 /* Maximum number of frequency bands for the DirAC Side Parameter decoding */ #define DIRAC_LOW_BANDRES_STEP 2 /* always combine two bands for low band resolution in the DirAC parameter coding */ diff --git a/lib_com/ivas_dirac_com.c b/lib_com/ivas_dirac_com.c index 5acc473b6a..a3bfeabdb2 100644 --- a/lib_com/ivas_dirac_com.c +++ b/lib_com/ivas_dirac_com.c @@ -60,11 +60,7 @@ ivas_error ivas_dirac_config( ) { IVAS_FORMAT ivas_format; -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT int16_t sba_order; -#else - int16_t sba_order, sba_planar; -#endif int16_t *nSCE, *nCPE, *element_mode, *nchan_transport; int32_t ivas_total_brate; DIRAC_CONFIG_DATA_HANDLE hConfig; @@ -87,9 +83,6 @@ ivas_error ivas_dirac_config( element_mode = &( (Encoder_Struct *) st_ivas )->hEncoderConfig->element_mode_init; nchan_transport = &( (Encoder_Struct *) st_ivas )->nchan_transport; sba_order = ( (Encoder_Struct *) st_ivas )->sba_analysis_order; -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar; -#endif ivas_total_brate = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->ivas_total_brate; Fs = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->input_Fs; band_grouping = ( (Encoder_Struct *) st_ivas )->hDirAC->band_grouping; @@ -114,9 +107,6 @@ ivas_error ivas_dirac_config( element_mode = &( (Decoder_Struct *) st_ivas )->element_mode_init; nchan_transport = &( (Decoder_Struct *) st_ivas )->nchan_transport; sba_order = ( (Decoder_Struct *) st_ivas )->sba_analysis_order; -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar; -#endif ivas_total_brate = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->ivas_total_brate; Fs = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->output_Fs; band_grouping = ( (Decoder_Struct *) st_ivas )->hDirAC->band_grouping; @@ -150,12 +140,7 @@ ivas_error ivas_dirac_config( if ( ivas_format == SBA_FORMAT ) /* skip for MASA decoder */ { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_planar, - sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -319,11 +304,8 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* i/o: element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - const int16_t sba_planar, /* i : SBA planar flag */ -#endif - const SBA_MODE sba_mode, /* i : SBA mode */ - const int16_t nbands /* i : number of frequency bands */ + const SBA_MODE sba_mode, /* i : SBA mode */ + const int16_t nbands /* i : number of frequency bands */ ) { int16_t i; @@ -336,7 +318,7 @@ ivas_error ivas_dirac_sba_config( if ( sba_mode == SBA_MODE_SPAR ) { - /*map the bitrate for SID frame*/ + /* map the bitrate for SID frame */ if ( sba_total_brate == IVAS_SID_5k2 ) { if ( *element_mode == IVAS_SCE ) @@ -436,11 +418,7 @@ ivas_error ivas_dirac_sba_config( if ( sba_total_brate > IVAS_SID_5k2 ) { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); -#else - *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); -#endif } else if ( sba_total_brate == IVAS_SID_5k2 ) { @@ -581,79 +559,6 @@ ivas_error ivas_dirac_sba_config( return error; } -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT -/*------------------------------------------------------------------------- - * ivas_dirac_getNumTransportChannels() - * - * - *------------------------------------------------------------------------*/ - -/*! r: number of IVAS transport channels */ -int16_t ivas_dirac_getNumTransportChannels( - const int32_t sba_total_brate, /* i : SBA total bitrate */ - const int16_t sba_order, /* i : SBA order */ - const int16_t sba_planar /* i : SBA planar flag */ -) -{ - int16_t num_channels; - - num_channels = 0; - - if ( sba_total_brate >= DIRAC_MIN_BITRATE_8_TRANS_CHAN ) - { - switch ( sba_order ) - { - case 3: - num_channels = sba_planar ? 7 : 8; - break; - case 2: - num_channels = sba_planar ? 5 : 6; - break; - case 1: - num_channels = sba_planar ? 3 : 4; - break; - default: - assert( 0 && "Order not supported!" ); - } - } - else if ( sba_total_brate >= DIRAC_MIN_BITRATE_6_TRANS_CHAN ) - { - switch ( sba_order ) - { - case 3: - case 2: - num_channels = sba_planar ? 5 : 6; - break; - case 1: - num_channels = sba_planar ? 3 : 4; - break; - default: - assert( 0 && "Order not supported!" ); - } - } - else if ( sba_total_brate >= DIRAC_MIN_BITRATE_4_TRANS_CHAN ) - { - if ( sba_planar ) - { - num_channels = 3; - } - else - { - num_channels = 4; - } - } - else if ( sba_total_brate >= DIRAC_MIN_BITRATE_2_TRANS_CHAN ) - { - num_channels = 2; - } - else - { - num_channels = 1; - } - - return num_channels; -} -#endif /*------------------------------------------------------------------------- * computeDirectionVectors() diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index b1f03e2bf2..5f8711e843 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3025,9 +3025,6 @@ void ivas_sba_config( int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ int16_t *element_mode /* o : element mode of the core coder */ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - ,const SBA_MODE sba_mode /* i : SBA mode */ -#endif ); ivas_error ivas_sba_dec_reconfigure( @@ -3166,21 +3163,10 @@ ivas_error ivas_dirac_sba_config( int16_t *element_mode, /* o : element mode of the core coder */ int32_t sba_total_brate, /* i : SBA total bitrate */ const int16_t sba_order, /* i : Ambisonic (SBA) order */ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - const int16_t sba_planar, /* i : SBA planar flag */ -#endif const SBA_MODE sba_mode, /* i : SBA mode */ const int16_t nbands /* i : number of frequency bands */ ); -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT -/*! r: number of IVAS transport channels */ -int16_t ivas_dirac_getNumTransportChannels( - const int32_t sba_total_brate, /* i : SBA total bitrate */ - const int16_t sba_order, /* i : SBA order */ - const int16_t sba_planar /* i : SBA Planar flag */ -); -#endif ivas_error ivas_dirac_dec_open( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); @@ -3834,12 +3820,8 @@ int16_t ivas_get_spar_table_idx( int16_t *ind /* o : indice */ ); -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT /*! r: number of transport channels */ int16_t ivas_get_sba_num_TCs( -#else -int16_t ivas_get_spar_num_TCs( -#endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : IVAS SBA order */ ); diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index 58cd80bc37..37d9e58acc 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -88,10 +88,6 @@ void ivas_sba_config( int16_t *nSCE, /* o : number of SCEs */ int16_t *nCPE, /* o : number of CPEs */ int16_t *element_mode /* o : element mode of the core coder */ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT - , - const SBA_MODE sba_mode /* i : SBA mode */ -#endif ) { if ( ( sba_order < 0 ) && ( nb_channels < 0 ) ) @@ -120,18 +116,7 @@ void ivas_sba_config( if ( nchan_transport != NULL ) { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order ); -#else - if ( sba_mode == SBA_MODE_SPAR ) - { - *nchan_transport = ivas_get_spar_num_TCs( sba_total_brate, sba_order ); - } - else - { - *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar ); - } -#endif } /* Configure core coder number of elements*/ diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index f7fc0e3e26..eec2e5f09a 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -324,11 +324,7 @@ void ivas_spar_config( } else { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT *nchan_transport = ivas_get_sba_num_TCs( ivas_total_brate, sba_order ); -#else - *nchan_transport = ivas_get_spar_num_TCs( ivas_total_brate, sba_order ); -#endif } *nCPE = ( *nchan_transport > 1 ) ? ( *nchan_transport + 1 ) >> 1 : 0; @@ -412,7 +408,6 @@ int16_t ivas_get_spar_table_idx( } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT /*-------------------------------------------------------------------* * ivas_get_sba_num_TCs() * @@ -421,16 +416,6 @@ int16_t ivas_get_spar_table_idx( /*! r: number of transport channels */ int16_t ivas_get_sba_num_TCs( -#else -/*-------------------------------------------------------------------* - * ivas_get_spar_num_TCs() - * - * Return number of TCs in SPAR - *-------------------------------------------------------------------*/ - -/*! r: number of transport channels */ -int16_t ivas_get_spar_num_TCs( -#endif const int32_t ivas_total_brate, /* i : IVAS total bitrate */ const int16_t sba_order /* i : Ambisonic (SBA) order */ ) @@ -441,12 +426,10 @@ int16_t ivas_get_spar_num_TCs( { nchan_transport = 1; } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT else if ( ivas_sba_mode_select( ivas_total_brate ) == SBA_MODE_DIRAC ) { nchan_transport = 1; } -#endif else { table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); diff --git a/lib_com/options.h b/lib_com/options.h index a9fdb6b424..0d88fc7110 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,6 @@ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define HARMONIZE_SBA_NCHAN_TRANSPORT /* harmonize setting of number of transport channels in SBA */ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ #define SRAM_REDUCTION_BINRENDERER /* Issue 145: reduction of static RAM usage in fastconv binaural renderer */ #define SRAM_REDUCTION_BINRENDERER_ROOM /* Issue 145: reduction of static RAM usage in fastconv binaural room renderer */ diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 1af4668490..66566f64d1 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -198,11 +198,7 @@ ivas_error ivas_dirac_dec_config( if ( flag_config == DIRAC_RECONFIGURE && st_ivas->ivas_format == SBA_FORMAT ) { int16_t tmp1, tmp2, tmp3; -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3 ); -#else - ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC ); -#endif } /*-----------------------------------------------------------------* @@ -1813,13 +1809,9 @@ void ivas_dirac_dec( #ifdef DEBUG_MODE_DIRAC { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT int16_t n, tmp[IVAS_SPAR_MAX_CH * L_FRAME48k]; -#else - int16_t n, tmp[DIRAC_MAX_TRANS_CHANS * L_FRAME48k]; -#endif char file_name[50] = { 0 }; - const int16_t output_frame = st_ivas->output_Fs / FRAMES_PER_SEC; + const int16_t output_frame = st_ivas->->hDecoderConfig->output_Fs / FRAMES_PER_SEC; for ( n = 0; n < nchan_transport; n++ ) { diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 2ccf1efdce..3e153ad01f 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -135,11 +135,7 @@ ivas_error ivas_dec_setup( } else { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); -#else - ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); -#endif } } else if ( st_ivas->ivas_format == MASA_FORMAT ) @@ -789,13 +785,7 @@ ivas_error ivas_init_decoder( } } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) - -#else - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, - st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -825,11 +815,7 @@ ivas_error ivas_init_decoder( } else { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index a17ae8a977..ac056971e2 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -48,10 +48,6 @@ * Local function prototypes *-----------------------------------------------------------------------*/ -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT -static void ivas_sba_dmx_dec( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); -#endif - #ifdef DEBUG_MODE_DIRAC static void debug_mode_dirac( float output[MAX_OUTPUT_CHANNELS][L_FRAME48k], const int16_t nchan_transport, const int16_t output_frame ); #endif @@ -248,7 +244,6 @@ int16_t ivas_sba_remapTCs( } } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT if ( st_ivas->nchan_transport >= 3 ) { int16_t i = 0; @@ -266,36 +261,6 @@ int16_t ivas_sba_remapTCs( } } } -#else - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) - { - int16_t i = 0; - float temp; - - if ( st_ivas->nchan_transport >= 3 ) - { - /*convert WYXZ downmix to WYZX*/ - for ( i = 0; i < output_frame; i++ ) - { - temp = sba_data[2][i]; - sba_data[2][i] = sba_data[3][i]; - sba_data[3][i] = temp; - if ( st_ivas->nchan_transport == 3 ) - { - sba_data[2][i] = 0; - } - } - } - } - else - { -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - /* do nothing; simply use omni */ -#else - ivas_sba_dmx_dec( sba_data, nchan_remapped, output_frame ); -#endif - } -#endif if ( st_ivas->sba_mode != SBA_MODE_SPAR ) { @@ -306,102 +271,6 @@ int16_t ivas_sba_remapTCs( } -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT -/*-------------------------------------------------------------------* - * ivas_sba_dmx_dec() - * - * - *-------------------------------------------------------------------*/ - -static void ivas_sba_dmx_dec( - float sba_data[][L_FRAME48k], /* i : SBA signals */ - const int16_t nchan_transport, /* i : number of transport channels */ - const int16_t output_frame /* i : frame length */ -) -{ - int16_t i; - float tmp_f[DIRAC_MAX_TRANS_CHANS]; - - if ( nchan_transport >= 7 ) - { - for ( i = 0; i < output_frame; i++ ) - { - tmp_f[0] = 0.506415f * sba_data[0][i] + 0.506415f * sba_data[1][i] + 0.506415f * sba_data[2][i] + 0.506415f * sba_data[3][i] + 0.506415f * sba_data[4][i] + 0.506415f * sba_data[5][i] + 0.506415f * sba_data[6][i]; - tmp_f[1] = -0.000000f * sba_data[0][i] + 0.531020f * sba_data[1][i] + 0.662171f * sba_data[2][i] + 0.294694f * sba_data[3][i] + -0.294694f * sba_data[4][i] + -0.662171f * sba_data[5][i] + -0.531020f * sba_data[6][i]; - tmp_f[2] = 0.679200f * sba_data[0][i] + 0.423475f * sba_data[1][i] + -0.151136f * sba_data[2][i] + -0.611938f * sba_data[3][i] + -0.611938f * sba_data[4][i] + -0.151136f * sba_data[5][i] + 0.423475f * sba_data[6][i]; - tmp_f[3] = 0.000000f * sba_data[0][i] + 0.833385f * sba_data[1][i] + -0.370891f * sba_data[2][i] + -0.668323f * sba_data[3][i] + 0.668323f * sba_data[4][i] + 0.370891f * sba_data[5][i] + -0.833385f * sba_data[6][i]; - tmp_f[4] = 0.854817f * sba_data[0][i] + -0.190215f * sba_data[1][i] + -0.770164f * sba_data[2][i] + 0.532970f * sba_data[3][i] + 0.532970f * sba_data[4][i] + -0.770164f * sba_data[5][i] + -0.190215f * sba_data[6][i]; - tmp_f[5] = 0.000000f * sba_data[0][i] + 0.691125f * sba_data[1][i] + -1.245365f * sba_data[2][i] + 1.552944f * sba_data[3][i] + -1.552944f * sba_data[4][i] + 1.245365f * sba_data[5][i] + -0.691125f * sba_data[6][i]; - tmp_f[6] = 1.592881f * sba_data[0][i] + -1.435137f * sba_data[1][i] + 0.993145f * sba_data[2][i] + -0.354449f * sba_data[3][i] + -0.354449f * sba_data[4][i] + 0.993145f * sba_data[5][i] + -1.435137f * sba_data[6][i]; - - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = sba_data[7][i]; - sba_data[3][i] = tmp_f[2]; - sba_data[4][i] = tmp_f[3]; - sba_data[8][i] = tmp_f[4]; - sba_data[9][i] = tmp_f[5]; - sba_data[15][i] = tmp_f[6]; - } - - return; - } - else if ( nchan_transport >= 5 ) - { - for ( i = 0; i < output_frame; i++ ) - { - tmp_f[0] = 0.708982f * sba_data[0][i] + 0.708982f * sba_data[1][i] + 0.708982f * sba_data[2][i] + 0.708982f * sba_data[3][i] + 0.708982f * sba_data[4][i]; - tmp_f[1] = 0.000000f * sba_data[0][i] + 1.005966f * sba_data[1][i] + 0.621721f * sba_data[2][i] + -0.621721f * sba_data[3][i] + -1.005966f * sba_data[4][i]; - tmp_f[2] = 1.057735f * sba_data[0][i] + 0.326858f * sba_data[1][i] + -0.855726f * sba_data[2][i] + -0.855726f * sba_data[3][i] + 0.326858f * sba_data[4][i]; - tmp_f[3] = 0.000000f * sba_data[0][i] + 1.079884f * sba_data[1][i] + -1.747289f * sba_data[2][i] + 1.747289f * sba_data[3][i] + -1.079884f * sba_data[4][i]; - tmp_f[4] = 1.837208f * sba_data[0][i] + -1.486333f * sba_data[1][i] + 0.567729f * sba_data[2][i] + 0.567729f * sba_data[3][i] + -1.486333f * sba_data[4][i]; - - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = sba_data[5][i]; - sba_data[3][i] = tmp_f[2]; - sba_data[4][i] = tmp_f[3]; - sba_data[8][i] = tmp_f[4]; - } - - return; - } - else if ( nchan_transport >= 3 ) - { - - /*A-format to ACN/SN3D*/ - for ( i = 0; i < output_frame; i++ ) - { - tmp_f[0] = 0.5f * ( sba_data[0][i] + sba_data[1][i] + sba_data[2][i] + sba_data[3][i] ); - tmp_f[1] = sba_data[0][i] - sba_data[1][i]; - tmp_f[2] = sba_data[2][i] - sba_data[3][i]; - tmp_f[3] = sba_data[0][i] + sba_data[1][i] - sba_data[2][i] - sba_data[3][i]; - - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = tmp_f[2]; - sba_data[3][i] = tmp_f[3]; - } - - return; - } - else if ( nchan_transport == 2 ) - { - /* do nothing for stereo DMX, upmix done in DirAC*/ - return; - } - else if ( nchan_transport == 1 ) - { - /* do nothing; simply use omni */ - return; - } - else - { - assert( 0 && "SBA: number of transport channels not supported." ); - } -} -#endif - /*-------------------------------------------------------------------------* * ivas_ism2sba() * @@ -515,11 +384,8 @@ ivas_error ivas_sba_dec_reconfigure( st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); -#else - ivas_sba_config( sba_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->sba_mode ); -#endif + st_ivas->nchan_transport = nchan_transport; /* renderer might have changed */ @@ -536,11 +402,7 @@ ivas_error ivas_sba_dec_reconfigure( { st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ); -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -552,13 +414,7 @@ ivas_error ivas_sba_dec_reconfigure( sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); ivas_spar_config( st_ivas->hDecoderConfig->ivas_total_brate, sba_order_internal, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->hSpar->core_nominal_brate, st_ivas->sid_format ); -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) - -#else - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_planar, - st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_enc/ivas_mct_enc.c b/lib_enc/ivas_mct_enc.c index 9aa5fe04c5..18c3b93fb9 100644 --- a/lib_enc/ivas_mct_enc.c +++ b/lib_enc/ivas_mct_enc.c @@ -193,26 +193,12 @@ ivas_error create_mct_enc( hMCT->nchan_out_woLFE = st_ivas->hEncoderConfig->nchan_inp - 1; /* LFE channel is coded separately */ hMCT->num_lfe = TRUE; } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT else if ( ivas_format == SBA_FORMAT ) { hMCT->nchan_out_woLFE = ivas_get_sba_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); hMCT->num_lfe = FALSE; } -#else - else if ( ivas_format == SBA_FORMAT && st_ivas->hSpar ) - { - hMCT->nchan_out_woLFE = ivas_get_spar_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); - - hMCT->num_lfe = FALSE; - } - else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) - { - hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); - hMCT->num_lfe = FALSE; - } -#endif else if ( ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_PARAMMC ) { hMCT->nchan_out_woLFE = ivas_param_mc_getNumTransportChannels( ivas_total_brate, st_ivas->hEncoderConfig->mc_input_setup ); @@ -346,7 +332,6 @@ ivas_error mct_enc_reconfigure( hMCT->nchan_out_woLFE = st_ivas->hEncoderConfig->nchan_inp - 1; /* LFE channel is coded separately */ hMCT->num_lfe = TRUE; } -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) // VE: this condition to be reviewed together with the following one { hMCT->nchan_out_woLFE = ivas_get_sba_num_TCs( ivas_total_brate, st_ivas->sba_analysis_order ); @@ -357,18 +342,6 @@ ivas_error mct_enc_reconfigure( hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); hMCT->num_lfe = FALSE; } -#else - else if ( ivas_format == SBA_FORMAT && st_ivas->hDirAC ) - { - hMCT->nchan_out_woLFE = ivas_dirac_getNumTransportChannels( ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); - hMCT->num_lfe = FALSE; - } - else if ( ivas_format == SBA_FORMAT ) - { - hMCT->nchan_out_woLFE = ivas_sba_get_nchan( st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); - hMCT->num_lfe = FALSE; - } -#endif else { assert( !"IVAS format currently not supported for MCT" ); diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index 40b502fd70..b8f06f72d2 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -45,13 +45,6 @@ #endif #include "wmops.h" -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT -/*-----------------------------------------------------------------------* - * Local function prototypes - *-----------------------------------------------------------------------*/ - -static void ivas_sba_dmx_enc( float sba_data[][L_FRAME48k], const int16_t nchan_transport, const int16_t input_frame ); -#endif /*-------------------------------------------------------------------* * ivas_sba_getTCs() @@ -67,7 +60,6 @@ void ivas_sba_getTCs( { ivas_sba_zero_vert_comp( sba_data, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar, input_frame ); -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT st_ivas->nchan_transport = ivas_get_sba_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order ); if ( st_ivas->nchan_transport >= 3 ) @@ -83,34 +75,6 @@ void ivas_sba_getTCs( } } -#else - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) - { - st_ivas->nchan_transport = ivas_get_spar_num_TCs( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order ); - if ( st_ivas->nchan_transport >= 3 ) - { - /*convert WYZX downmix to WYXZ*/ - int16_t i = 0; - float temp; - for ( i = 0; i < input_frame; i++ ) - { - temp = sba_data[2][i]; - sba_data[2][i] = sba_data[3][i]; - sba_data[3][i] = temp; - } - } - } - else - { - st_ivas->nchan_transport = ivas_dirac_getNumTransportChannels( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->hEncoderConfig->sba_planar ); -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT - /* do nothing; simply use omni */ -#else - ivas_sba_dmx_enc( sba_data, st_ivas->nchan_transport, input_frame ); -#endif - } -#endif - #ifdef DEBUG_MODE_DIRAC for ( int16_t n = 0; n < st_ivas->nchan_transport; n++ ) { @@ -130,107 +94,6 @@ void ivas_sba_getTCs( } -#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT -/*-------------------------------------------------------------------* - * ivas_sba_dmx_enc() - * - * - *-------------------------------------------------------------------*/ - -static void ivas_sba_dmx_enc( - float sba_data[][L_FRAME48k], /* i : SBA signals */ - const int16_t nchan_transport, /* i : number of transport channels */ - const int16_t input_frame /* i : frame length */ -) -{ - int16_t i; - float dmx_l, dmx_r; - float a, b; - float tmp_f[DIRAC_MAX_TRANS_CHANS]; - - if ( nchan_transport >= 7 ) - { - for ( i = 0; i < input_frame; i++ ) - { - tmp_f[0] = 0.282095f * sba_data[0][i] + 0.000000f * sba_data[1][i] + 0.420663f * sba_data[3][i] + 0.000000f * sba_data[4][i] + 0.334240f * sba_data[8][i] + 0.000000f * sba_data[9][i] + 0.179369f * sba_data[15][i]; - tmp_f[1] = 0.282095f * sba_data[0][i] + 0.328887f * sba_data[1][i] + 0.262279f * sba_data[3][i] + 0.325860f * sba_data[4][i] + -0.074375f * sba_data[8][i] + 0.077825f * sba_data[9][i] + -0.161606f * sba_data[15][i]; - tmp_f[2] = 0.282095f * sba_data[0][i] + 0.410116f * sba_data[1][i] + -0.093606f * sba_data[3][i] + -0.145021f * sba_data[4][i] + -0.301140f * sba_data[8][i] + -0.140237f * sba_data[9][i] + 0.111835f * sba_data[15][i]; - tmp_f[3] = 0.282095f * sba_data[0][i] + 0.182519f * sba_data[1][i] + -0.379004f * sba_data[3][i] + -0.261320f * sba_data[4][i] + 0.208395f * sba_data[8][i] + 0.174872f * sba_data[9][i] + -0.039913f * sba_data[15][i]; - tmp_f[4] = 0.282095f * sba_data[0][i] + -0.182519f * sba_data[1][i] + -0.379004f * sba_data[3][i] + 0.261320f * sba_data[4][i] + 0.208395f * sba_data[8][i] + -0.174872f * sba_data[9][i] + -0.039913f * sba_data[15][i]; - tmp_f[5] = 0.282095f * sba_data[0][i] + -0.410116f * sba_data[1][i] + -0.093606f * sba_data[3][i] + 0.145021f * sba_data[4][i] + -0.301140f * sba_data[8][i] + 0.140237f * sba_data[9][i] + 0.111835f * sba_data[15][i]; - tmp_f[6] = 0.282095f * sba_data[0][i] + -0.328887f * sba_data[1][i] + 0.262279f * sba_data[3][i] + -0.325860f * sba_data[4][i] + -0.074375f * sba_data[8][i] + -0.077825f * sba_data[9][i] + -0.161606f * sba_data[15][i]; - sba_data[7][i] = sba_data[2][i]; /* will be dropped for planarSBA */ - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = tmp_f[2]; - sba_data[3][i] = tmp_f[3]; - sba_data[4][i] = tmp_f[4]; - sba_data[5][i] = tmp_f[5]; - sba_data[6][i] = tmp_f[6]; - } - - return; - } - else if ( nchan_transport >= 5 ) - { - for ( i = 0; i < input_frame; i++ ) - { - tmp_f[0] = 0.282095f * sba_data[0][i] + 0.000000f * sba_data[1][i] + 0.378166f * sba_data[3][i] + 0.000000f * sba_data[4][i] + 0.217722f * sba_data[8][i]; - tmp_f[1] = 0.282095f * sba_data[0][i] + 0.359658f * sba_data[1][i] + 0.116860f * sba_data[3][i] + 0.127974f * sba_data[4][i] + -0.176140f * sba_data[8][i]; - tmp_f[2] = 0.282095f * sba_data[0][i] + 0.222281f * sba_data[1][i] + -0.305943f * sba_data[3][i] + -0.207066f * sba_data[4][i] + 0.067280f * sba_data[8][i]; - tmp_f[3] = 0.282095f * sba_data[0][i] + -0.222281f * sba_data[1][i] + -0.305943f * sba_data[3][i] + 0.207066f * sba_data[4][i] + 0.067280f * sba_data[8][i]; - tmp_f[4] = 0.282095f * sba_data[0][i] + -0.359658f * sba_data[1][i] + 0.116860f * sba_data[3][i] + -0.127974f * sba_data[4][i] + -0.176140f * sba_data[8][i]; - sba_data[5][i] = sba_data[2][i]; /* will be dropped for planarSBA */ - sba_data[0][i] = tmp_f[0]; - sba_data[1][i] = tmp_f[1]; - sba_data[2][i] = tmp_f[2]; - sba_data[3][i] = tmp_f[3]; - sba_data[4][i] = tmp_f[4]; - } - - return; - } - else if ( nchan_transport >= 3 ) - { - for ( i = 0; i < input_frame; i++ ) - { - dmx_l = 0.5f * sba_data[1][i]; - dmx_r = 0.5f * sba_data[2][i]; - a = 0.5f * sba_data[0][i]; - b = 0.25f * sba_data[3][i]; - - sba_data[0][i] = a + b; - sba_data[1][i] = sba_data[0][i] - dmx_l; - sba_data[0][i] += dmx_l; - - sba_data[2][i] = a - b; - sba_data[3][i] = sba_data[2][i] - dmx_r; /* will be dropped for planarSBA & irrelevant*/ - sba_data[2][i] += dmx_r; /* irrelevant for planarSBA*/ - } - - return; - } - else if ( nchan_transport == 2 ) - { - for ( i = 0; i < input_frame; i++ ) - { - dmx_l = 0.5f * ( sba_data[0][i] + sba_data[1][i] ); /* cardioid_left = W + Y */ - sba_data[1][i] = 0.5f * ( sba_data[0][i] - sba_data[1][i] ); /* cardioid_right = W - Y */ - sba_data[0][i] = dmx_l; - } - - return; - } - else if ( nchan_transport == 1 ) - { - /* do nothing; simply use omni */ - return; - } - - return; -} -#endif - /*-------------------------------------------------------------------* * ivas_sba_enc_reconfigure() * diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 14f9f08a54..5c4e834e61 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -84,11 +84,7 @@ ivas_error ivas_spar_enc_open( assert( nchan_inp <= hEncoderConfig->nchan_inp ); ivas_total_brate = hEncoderConfig->ivas_total_brate; -#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT nchan_transport = ivas_get_sba_num_TCs( hEncoderConfig->ivas_total_brate, sba_order_internal ); -#else - nchan_transport = ivas_get_spar_num_TCs( hEncoderConfig->ivas_total_brate, sba_order_internal ); -#endif // bw = ivas_get_bw_idx_from_sample_rate(pCfg->input_Fs); table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order_internal, SPAR_CONFIG_BW, NULL, NULL ); -- GitLab From 946a84bbb2a484116c1576462d54152ca21dbb29 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 14:18:46 +0200 Subject: [PATCH 228/479] accept SRAM_REDUCTION_BINRENDERER --- lib_com/options.h | 1 - lib_dec/ivas_binauralRenderer.c | 16 ++-------------- lib_dec/ivas_rom_binauralRenderer.h | 22 ---------------------- lib_dec/ivas_stat_dec.h | 12 ------------ 4 files changed, 2 insertions(+), 49 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 0d88fc7110..70b8ff5940 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -147,7 +147,6 @@ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ -#define SRAM_REDUCTION_BINRENDERER /* Issue 145: reduction of static RAM usage in fastconv binaural renderer */ #define SRAM_REDUCTION_BINRENDERER_ROOM /* Issue 145: reduction of static RAM usage in fastconv binaural room renderer */ #define FIX_I120_INV_SQRT /* Issue 120: inv_sqrt() shall be used instead of 1 / sqrt() to measure the correct complexity */ diff --git a/lib_dec/ivas_binauralRenderer.c b/lib_dec/ivas_binauralRenderer.c index b3d298b562..1fabd340d6 100644 --- a/lib_dec/ivas_binauralRenderer.c +++ b/lib_dec/ivas_binauralRenderer.c @@ -186,7 +186,6 @@ static ivas_error ivas_binRenderer_convModuleOpen( } } -#ifdef SRAM_REDUCTION_BINRENDERER /* allocate memory for filter states */ if ( ( hBinRenConvModule->filterTapsLeftReal = (float ***) count_malloc( hBinRenderer->conv_band * sizeof( float ** ) ) ) == NULL ) { @@ -266,7 +265,6 @@ static ivas_error ivas_binRenderer_convModuleOpen( } } } -#endif /* set memories */ for ( bandIdx = 0; bandIdx < hBinRenderer->conv_band; bandIdx++ ) @@ -308,13 +306,8 @@ static ivas_error ivas_binRenderer_convModuleOpen( if ( renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM && hRenderConfig->roomAcoustics.use_brir ) { /* set the memories to zero */ -#ifdef SRAM_REDUCTION_BINRENDERER set_zero( hBinRenConvModule->filterStatesLeftReal[bandIdx][chIdx], hBinRenConvModule->numTapsArray[bandIdx] ); set_zero( hBinRenConvModule->filterStatesLeftImag[bandIdx][chIdx], hBinRenConvModule->numTapsArray[bandIdx] ); -#else - set_zero( hBinRenConvModule->filterStatesLeftReal[bandIdx][chIdx], hBinRenConvModule->numTaps ); - set_zero( hBinRenConvModule->filterStatesLeftImag[bandIdx][chIdx], hBinRenConvModule->numTaps ); -#endif if ( isLoudspeaker ) { @@ -662,7 +655,7 @@ ivas_error ivas_binRenderer_open( return error; } -#ifdef SRAM_REDUCTION_BINRENDERER + /*------------------------------------------------------------------------- * ivas_binRenderer_convModuleClose() * @@ -741,7 +734,7 @@ static void ivas_binRenderer_convModuleClose( return; } -#endif + /*------------------------------------------------------------------------- * ivas_binRenderer_close() @@ -760,12 +753,7 @@ void ivas_binRenderer_close( if ( ( *hBinRenderer )->hBinRenConvModule != NULL ) { -#ifdef SRAM_REDUCTION_BINRENDERER ivas_binRenderer_convModuleClose( hBinRenderer ); -#else - count_free( ( *hBinRenderer )->hBinRenConvModule ); - ( *hBinRenderer )->hBinRenConvModule = NULL; -#endif } if ( ( *hBinRenderer )->hReverb != NULL ) diff --git a/lib_dec/ivas_rom_binauralRenderer.h b/lib_dec/ivas_rom_binauralRenderer.h index ca3a527c4c..c597847a0f 100644 --- a/lib_dec/ivas_rom_binauralRenderer.h +++ b/lib_dec/ivas_rom_binauralRenderer.h @@ -44,7 +44,6 @@ /* Binaural rendering data set based on HRIRs */ extern const float FASTCONV_HRIR_latency_s; -#ifdef SRAM_REDUCTION_BINRENDERER extern float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][16][7]; extern float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][16][7]; extern float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][16][7]; @@ -58,35 +57,14 @@ extern float rightHRIRImag[BINAURAL_CONVBANDS][15][7]; extern float FASTCONV_HOA3_latency_s; extern float hrtfShCoeffsRe[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; extern float hrtfShCoeffsIm[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; -#else -extern const float leftHRIRReal_HOA3[BINAURAL_CONVBANDS][16][7]; -extern const float leftHRIRImag_HOA3[BINAURAL_CONVBANDS][16][7]; -extern const float rightHRIRReal_HOA3[BINAURAL_CONVBANDS][16][7]; -extern const float rightHRIRImag_HOA3[BINAURAL_CONVBANDS][16][7]; -extern const float leftHRIRReal[BINAURAL_CONVBANDS][15][7]; -extern const float leftHRIRImag[BINAURAL_CONVBANDS][15][7]; -extern const float rightHRIRReal[BINAURAL_CONVBANDS][15][7]; -extern const float rightHRIRImag[BINAURAL_CONVBANDS][15][7]; - -extern const float FASTCONV_HOA3_latency_s; -extern const float hrtfShCoeffsRe[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; -extern const float hrtfShCoeffsIm[BINAURAL_CHANNELS][HRTF_SH_CHANNELS][HRTF_NUM_BINS]; -#endif /* Binaural rendering data set based on BRIRs */ extern const float FASTCONV_BRIR_latency_s; -#ifdef SRAM_REDUCTION_BINRENDERER extern float leftBRIRReal[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; extern float leftBRIRImag[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; extern float rightBRIRReal[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; extern float rightBRIRImag[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; -#else -extern const float leftBRIRReal[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; -extern const float leftBRIRImag[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; -extern const float rightBRIRReal[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; -extern const float rightBRIRImag[BINAURAL_CONVBANDS][15][BINAURAL_NTAPS_MAX]; -#endif /* Reverberation parameters based on BRIRs for fastconv */ extern float fastconvReverberationTimes[CLDFB_NO_CHANNELS_MAX]; diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 43a30693e6..9f36670a7d 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1303,25 +1303,13 @@ typedef struct ivas_dirac_dec_binaural_data_structure typedef struct ivas_binaural_rendering_conv_module_struct { -#ifdef SRAM_REDUCTION_BINRENDERER float ***filterTapsLeftReal; float ***filterTapsLeftImag; float ***filterTapsRightReal; float ***filterTapsRightImag; -#else - const float *filterTapsLeftReal[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; - const float *filterTapsLeftImag[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; - const float *filterTapsRightReal[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; - const float *filterTapsRightImag[CLDFB_NO_CHANNELS_MAX][MAX_OUTPUT_CHANNELS]; -#endif -#ifdef SRAM_REDUCTION_BINRENDERER float ***filterStatesLeftReal; float ***filterStatesLeftImag; -#else - float filterStatesLeftReal[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS][BINAURAL_NTAPS_MAX]; - float filterStatesLeftImag[BINAURAL_CONVBANDS][MAX_OUTPUT_CHANNELS][BINAURAL_NTAPS_MAX]; -#endif int16_t numTapsArray[BINAURAL_CONVBANDS]; int16_t numTaps; -- GitLab From 4fb80063be9d32a9f6b72c1bf29becb84dcebc9b Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 14:22:37 +0200 Subject: [PATCH 229/479] accept SRAM_REDUCTION_BINRENDERER_ROOM --- lib_com/ivas_prot.h | 9 +- lib_com/options.h | 1 - lib_dec/ivas_binauralRenderer.c | 27 ------ lib_dec/ivas_binaural_reverb.c | 101 +------------------- lib_dec/ivas_dirac_dec_binaural_functions.c | 25 +---- 5 files changed, 6 insertions(+), 157 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 5f8711e843..0c44e89b7e 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3213,7 +3213,6 @@ void ivas_dirac_dec_binaural( const int16_t nchan_transport /* i : number of transport channels */ ); -#ifdef SRAM_REDUCTION_BINRENDERER_ROOM ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ @@ -3223,13 +3222,7 @@ ivas_error ivas_binaural_reverb_open( const int32_t sampling_rate, /* i : sampling rate */ const RENDERER_TYPE renderer_type /* i : renderer type */ ); -#else -ivas_error ivas_binaural_reverb_open( - REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ - const int16_t numBins, /* i : number of CLDFB bins */ - const int16_t numCldfbSlotsPerFrame /* i : number of CLDFB slots per frame */ -); -#endif + void ivas_binaural_reverb_close( REVERB_STRUCT_HANDLE *hReverb /* i/o: binaural reverb handle */ ); diff --git a/lib_com/options.h b/lib_com/options.h index 70b8ff5940..292159265a 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -147,7 +147,6 @@ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ -#define SRAM_REDUCTION_BINRENDERER_ROOM /* Issue 145: reduction of static RAM usage in fastconv binaural room renderer */ #define FIX_I120_INV_SQRT /* Issue 120: inv_sqrt() shall be used instead of 1 / sqrt() to measure the correct complexity */ diff --git a/lib_dec/ivas_binauralRenderer.c b/lib_dec/ivas_binauralRenderer.c index 1fabd340d6..45108a92fa 100644 --- a/lib_dec/ivas_binauralRenderer.c +++ b/lib_dec/ivas_binauralRenderer.c @@ -371,9 +371,7 @@ static void ivas_binaural_obtain_DMX( { int16_t chIdx, bandIdx, k; -#ifdef SRAM_REDUCTION_BINRENDERER_ROOM // ToDo: hBinRenderer->ivas_format is never set to ISM_FORMAT -> TBV -#endif if ( hBinRenderer->ivas_format == MC_FORMAT || hBinRenderer->ivas_format == ISM_FORMAT ) { /* Obtain the downmix */ @@ -489,10 +487,6 @@ ivas_error ivas_binRenderer_open( { BINAURAL_RENDERER_HANDLE hBinRenderer; int16_t convBand, chIdx, k; -#ifndef SRAM_REDUCTION_BINRENDERER_ROOM - float t60[CLDFB_NO_CHANNELS_MAX]; - float ene[CLDFB_NO_CHANNELS_MAX]; -#endif ivas_error error; error = IVAS_ERR_OK; @@ -586,31 +580,10 @@ ivas_error ivas_binRenderer_open( /* Allocate memories needed for reverb module */ if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM && st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) { -#ifdef SRAM_REDUCTION_BINRENDERER_ROOM if ( ( error = ivas_binaural_reverb_open( &( hBinRenderer->hReverb ), hBinRenderer->conv_band, hBinRenderer->timeSlots, &( st_ivas->hRenderConfig->roomAcoustics ), st_ivas->hIntSetup.output_config, st_ivas->hDecoderConfig->output_Fs, RENDERER_BINAURAL_FASTCONV_ROOM ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( ( error = ivas_binaural_reverb_open( &( hBinRenderer->hReverb ), hBinRenderer->conv_band, hBinRenderer->timeSlots ) ) != IVAS_ERR_OK ) - { - return error; - } - - if ( !st_ivas->hRenderConfig->roomAcoustics.override ) - { - ivas_binaural_reverb_setReverbTimes( hBinRenderer->hReverb, st_ivas->hDecoderConfig->output_Fs, fastconvReverberationTimes, fastconvReverberationEneCorrections ); - ivas_binaural_reverb_setPreDelay( hBinRenderer->hReverb, 10 ); - } - else - { - ivas_reverb_prepare_cldfb_params( &st_ivas->hRenderConfig->roomAcoustics, st_ivas->hIntSetup.output_config, st_ivas->hRenderConfig->roomAcoustics.use_brir, st_ivas->hDecoderConfig->output_Fs, t60, ene ); - ivas_binaural_reverb_setReverbTimes( hBinRenderer->hReverb, st_ivas->hDecoderConfig->output_Fs, t60, ene ); - ivas_binaural_reverb_setPreDelay( hBinRenderer->hReverb, (int16_t) roundf( 48000.0f * st_ivas->hRenderConfig->roomAcoustics.acousticPreDelay / CLDFB_NO_CHANNELS_MAX ) ); - } - - hBinRenderer->hReverb->useBinauralCoherence = 1; -#endif /* initialize the dmx matrix */ for ( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ ) diff --git a/lib_dec/ivas_binaural_reverb.c b/lib_dec/ivas_binaural_reverb.c index db552e538a..b03c8c0053 100644 --- a/lib_dec/ivas_binaural_reverb.c +++ b/lib_dec/ivas_binaural_reverb.c @@ -36,9 +36,7 @@ #include "ivas_prot.h" #include "prot.h" #include "ivas_rom_com.h" -#ifdef SRAM_REDUCTION_BINRENDERER_ROOM #include "ivas_rom_binauralRenderer.h" -#endif #ifdef DEBUGGING #include "debug.h" #endif @@ -315,13 +313,6 @@ void ivas_binaural_reverb_setReverbTimes( } hReverb->binauralCoherenceDirectGains[bin] = sqrtf( 1.0f - fabsf( tmpVal ) ); -#ifndef SRAM_REDUCTION_BINRENDERER_ROOM - /* Determine loop buffer length. The following formula is manually tuned to generate sufficiently long - * but not excessively long loops to generate reverberation. */ - /* Note: the resulted length is very sensitive to the precision of the constants below (e.g. 1.45 vs. 1.45f) */ - hReverb->loopBufLength[bin] = (int16_t) ( 1.45 * (int16_t) ( revTimes[bin] * 150.0 ) + 1 ); - hReverb->loopBufLength[bin] = min( hReverb->loopBufLength[bin], hReverb->loopBufLengthMax[bin] ); -#endif /* Determine attenuation factor that generates the appropriate energy decay according to reverberation time */ attenuationFactorPerSample = powf( 10.0f, -3.0f * ( 1.0f / ( (float) CLDFB_SLOTS_PER_SECOND * revTimes[bin] ) ) ); hReverb->loopAttenuationFactor[bin] = powf( attenuationFactorPerSample, hReverb->loopBufLength[bin] ); @@ -341,8 +332,10 @@ void ivas_binaural_reverb_setReverbTimes( for ( sample = 0; sample < hReverb->loopBufLength[bin]; sample++ ) { intendedEnergy += currentEnergy; + /* The randomization at the energy build up affects where the sparse taps are located */ energyBuildup += currentEnergy + 0.1f * ( (float) binRend_rand( hReverb ) / PCM16_TO_FLT_FAC - 0.5f ); + if ( energyBuildup >= 1.0f ) /* A new filter tap is added at this condition */ { /* Four efficient phase operations: n*pi/2, n=0,1,2,3 */ @@ -375,7 +368,6 @@ void ivas_binaural_reverb_setReverbTimes( * Allocate and initialize binaural room reverberator handle *------------------------------------------------------------------------*/ -#ifdef SRAM_REDUCTION_BINRENDERER_ROOM ivas_error ivas_binaural_reverb_open( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const int16_t numBins, /* i : number of CLDFB bins */ @@ -512,96 +504,7 @@ ivas_error ivas_binaural_reverb_open( return IVAS_ERR_OK; } -#else -ivas_error ivas_binaural_reverb_open( - REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ - const int16_t numBins, /* i : number of CLDFB bins */ - const int16_t numCldfbSlotsPerFrame /* i : number of CLDFB slots per frame, i.e., reverberator block size */ -) -{ - int16_t bin, chIdx, k, tmp; - REVERB_STRUCT_HANDLE hReverb; - - if ( ( *hReverbPr = (REVERB_STRUCT_HANDLE) count_malloc( sizeof( REVERB_STRUCT ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); - } - - hReverb = *hReverbPr; - hReverb->useBinauralCoherence = 0; - hReverb->preDelayBufferLength = 1; - hReverb->preDelayBufferIndex = 0; - - hReverb->numBins = numBins; - hReverb->blockSize = numCldfbSlotsPerFrame; - - for ( k = 0; k < REVERB_PREDELAY_MAX + 1; k++ ) - { - set_f( hReverb->preDelayBufferReal[k], 0.0f, hReverb->numBins ); - set_f( hReverb->preDelayBufferImag[k], 0.0f, hReverb->numBins ); - } - - for ( bin = 0; bin < hReverb->numBins; bin++ ) - { - /* Loop Buffer */ - hReverb->loopBufLengthMax[bin] = (int16_t) ( 500 / ( 1 + bin ) + ( CLDFB_NO_CHANNELS_MAX - bin ) ); - - tmp = hReverb->loopBufLengthMax[bin] + hReverb->blockSize; - if ( ( hReverb->loopBufReal[bin] = (float *) count_malloc( tmp * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); - } - - if ( ( hReverb->loopBufImag[bin] = (float *) count_malloc( tmp * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); - } - - set_f( hReverb->loopBufReal[bin], 0.0f, tmp ); - set_f( hReverb->loopBufImag[bin], 0.0f, tmp ); - - /* Sparse Filter Tap Locations */ - for ( chIdx = 0; chIdx < BINAURAL_CHANNELS; chIdx++ ) - { - tmp = hReverb->loopBufLengthMax[bin]; - - if ( ( hReverb->tapPhaseShiftType[bin][chIdx] = (int16_t *) count_malloc( tmp * sizeof( int16_t ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); - } - - if ( ( hReverb->tapPointersReal[bin][chIdx] = (float **) count_malloc( tmp * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); - } - - if ( ( hReverb->tapPointersImag[bin][chIdx] = (float **) count_malloc( tmp * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); - } - - set_s( hReverb->tapPhaseShiftType[bin][chIdx], 0, tmp ); - - tmp = hReverb->blockSize; - if ( ( hReverb->outputBufferReal[bin][chIdx] = (float *) count_malloc( tmp * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); - } - - if ( ( hReverb->outputBufferImag[bin][chIdx] = (float *) count_malloc( tmp * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for Binaural Reverberator\n" ) ); - } - - set_f( hReverb->outputBufferReal[bin][chIdx], 0.0f, tmp ); - set_f( hReverb->outputBufferImag[bin][chIdx], 0.0f, tmp ); - } - } - - return IVAS_ERR_OK; -} -#endif /*------------------------------------------------------------------------- * ivas_binaural_reverb_close() diff --git a/lib_dec/ivas_dirac_dec_binaural_functions.c b/lib_dec/ivas_dirac_dec_binaural_functions.c index 94f5049542..dcea70b774 100644 --- a/lib_dec/ivas_dirac_dec_binaural_functions.c +++ b/lib_dec/ivas_dirac_dec_binaural_functions.c @@ -150,7 +150,7 @@ ivas_error ivas_dirac_dec_init_binaural_data( hBinaural->useTdDecorr = 1; } } - if ( st_ivas->ivas_format == MASA_FORMAT ) + else if ( st_ivas->ivas_format == MASA_FORMAT ) { if ( ( st_ivas->hDecoderConfig->ivas_total_brate < IVAS_48k && st_ivas->nchan_transport == 1 ) || st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE ) { @@ -188,7 +188,7 @@ ivas_error ivas_dirac_dec_init_binaural_data( else if ( renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) /* Indication of binaural rendering with room effect */ { mvr2r( parametricEarlyPartEneCorrection, hBinaural->earlyPartEneCorrection, nBins ); -#ifdef SRAM_REDUCTION_BINRENDERER_ROOM + if ( hBinaural->useSubframeMode ) { if ( ( error = ivas_binaural_reverb_open( &hBinaural->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, NULL, st_ivas->hIntSetup.output_config, output_Fs, RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) != IVAS_ERR_OK ) @@ -203,26 +203,6 @@ ivas_error ivas_dirac_dec_init_binaural_data( return error; } } -#else - if ( hBinaural->useSubframeMode ) - { - if ( ( error = ivas_binaural_reverb_open( &hBinaural->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else - { - if ( ( error = ivas_binaural_reverb_open( &hBinaural->hReverb, nBins, CLDFB_NO_COL_MAX ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - ivas_binaural_reverb_setReverbTimes( hBinaural->hReverb, output_Fs, parametricReverberationTimes, parametricReverberationEneCorrections ); - hBinaural->hReverb->useBinauralCoherence = 1; - ivas_binaural_reverb_setPreDelay( hBinaural->hReverb, 10 ); -#endif } else if ( renderer_type == RENDERER_STEREO_PARAMETRIC ) { @@ -264,6 +244,7 @@ ivas_error ivas_dirac_dec_init_binaural_data( return IVAS_ERR_OK; } + /*------------------------------------------------------------------------- * ivas_dirac_dec_close_binaural_data() * -- GitLab From d570d3c83ec277630d96392a8cb4c9e7d26ae7be Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 13 Oct 2022 14:23:44 +0200 Subject: [PATCH 230/479] set L_frameTCX correctly for frameloss case --- lib_dec/ivas_mdct_core_dec.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index 7149426e6b..652bfcd096 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -508,6 +508,9 @@ void ivas_mdct_core_invQ( if ( bfi && !isMCT && ( hCPE->hStereoMdct->mdct_stereo_mode[0] > SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[1] > SMDCT_DUAL_MONO ) ) { L_frameTCX[0] = sts[0]->L_frameTCX_past; +#ifdef FIX_TCX10_STEREO_PROC + L_frameTCX[1] = sts[1]->L_frameTCX_past; +#endif mvr2r( sts[0]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[0], L_frameTCX[0] ); mvr2r( sts[1]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[1], L_frameTCX[0] ); #ifdef FIX_TCX10_STEREO_PROC -- GitLab From a8bdd528ca5827df90dcc1de6abad6eec49e434c Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 14:27:52 +0200 Subject: [PATCH 231/479] accept FIX_I120_INV_SQRT --- lib_com/ivas_pca_tools.c | 16 ++++------------ lib_com/options.h | 1 - lib_dec/ivas_dirac_dec.c | 8 -------- lib_dec/ivas_dirac_dec_binaural_functions.c | 17 +++-------------- lib_dec/ivas_dirac_output_synthesis_dec.c | 5 +---- lib_dec/ivas_efap.c | 8 -------- lib_dec/ivas_init_dec.c | 4 ---- lib_dec/ivas_mdct_core_dec.c | 4 ---- lib_dec/ivas_objectRenderer_vec.c | 4 ---- lib_dec/ivas_reverb.c | 6 ++---- lib_dec/ivas_stereo_cng_dec.c | 18 ++---------------- lib_dec/ivas_vbap.c | 4 ---- lib_enc/ivas_stereo_dft_enc.c | 6 ++---- lib_enc/ivas_stereo_ica_enc.c | 4 ---- lib_enc/ivas_tcx_core_enc.c | 4 ---- 15 files changed, 14 insertions(+), 95 deletions(-) diff --git a/lib_com/ivas_pca_tools.c b/lib_com/ivas_pca_tools.c index 123bcb26b8..21f3c0c1ec 100644 --- a/lib_com/ivas_pca_tools.c +++ b/lib_com/ivas_pca_tools.c @@ -136,11 +136,11 @@ static void house_refl( } else { - float _rcp = 1.f / ( *normu ); + float rcp = 1.f / ( *normu ); for ( i = 0; i < sizex; i++ ) { - pu[i] *= _rcp; + pu[i] *= rcp; } if ( pu[0] >= 0.f ) { @@ -152,15 +152,11 @@ static void house_refl( pu[0] -= 1; } -#ifdef FIX_I120_INV_SQRT - _rcp = inv_sqrt( fabsf( pu[0] ) ); -#else - _rcp = 1.f / sqrtf( fabsf( pu[0] ) ); -#endif + rcp = inv_sqrt( fabsf( pu[0] ) ); for ( i = 0; i < sizex; i++ ) { - pu[i] *= _rcp; + pu[i] *= rcp; } } @@ -649,11 +645,7 @@ static void norm_quat( norm_q = dotp( q, q, IVAS_PCA_INTERP ); -#ifdef FIX_I120_INV_SQRT norm_q = inv_sqrt( norm_q ); // VE: TBV: possible division by 0 -#else - norm_q = 1 / sqrtf( norm_q ); // VE: TBV: possible division by 0 -#endif for ( i = 0; i < IVAS_PCA_INTERP; i++ ) { diff --git a/lib_com/options.h b/lib_com/options.h index 292159265a..f040d6b10d 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -147,7 +147,6 @@ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ -#define FIX_I120_INV_SQRT /* Issue 120: inv_sqrt() shall be used instead of 1 / sqrt() to measure the correct complexity */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index 66566f64d1..ec9a712065 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -2536,11 +2536,7 @@ static void initDiffuseResponses( if ( output_config == AUDIO_CONFIG_MONO ) { diffuse_response_function[0] = 1.0f; -#ifdef FIX_I120_INV_SQRT diffuse_response_function[1] = inv_sqrt( 3.0f ); -#else - diffuse_response_function[1] = 1.0f / sqrtf( 3.0f ); -#endif } else if ( !( output_config == AUDIO_CONFIG_FOA || output_config == AUDIO_CONFIG_HOA2 || output_config == AUDIO_CONFIG_HOA3 ) ) { @@ -2622,11 +2618,7 @@ static void initDiffuseResponses( { for ( k = 0; k < ( 2 * l + 1 ); k++ ) { -#ifdef FIX_I120_INV_SQRT diffuse_response_function[idx++] = inv_sqrt( 2.0f * l + 1.0f ); -#else - diffuse_response_function[idx++] = 1.0f / sqrtf( 2.0f * l + 1.0f ); -#endif } } } diff --git a/lib_dec/ivas_dirac_dec_binaural_functions.c b/lib_dec/ivas_dirac_dec_binaural_functions.c index dcea70b774..ca9f0a4587 100644 --- a/lib_dec/ivas_dirac_dec_binaural_functions.c +++ b/lib_dec/ivas_dirac_dec_binaural_functions.c @@ -414,6 +414,7 @@ static void ivas_dirac_dec_binaural_internal( Cldfb_ImagBuffer_in[0][slot][b] = INV_SQRT2 * ( Cldfb_ImagBuffer_in[0][slot][b] + Cldfb_ImagBuffer_in[2][slot][b] ); Cldfb_ImagBuffer_in[1][slot][b] = Cldfb_ImagBuffer_in[0][slot][b]; } + /* HB: Copy first channel to second channel and add HB-CNGs with different scalings*/ for ( ; b < nBins; b++ ) { @@ -430,13 +431,9 @@ static void ivas_dirac_dec_binaural_internal( { /* At mono input duplicate the channel to dual-mono, and apply gain correction to ensure same overall level as in stereo mode */ -#ifdef FIX_I120_INV_SQRT v_multc( Cldfb_RealBuffer_in[0][slot], INV_SQRT_2, Cldfb_RealBuffer_in[0][slot], nBins ); v_multc( Cldfb_ImagBuffer_in[0][slot], INV_SQRT_2, Cldfb_ImagBuffer_in[0][slot], nBins ); -#else - v_multc( Cldfb_RealBuffer_in[0][slot], 1.0f / SQRT2, Cldfb_RealBuffer_in[0][slot], nBins ); - v_multc( Cldfb_ImagBuffer_in[0][slot], 1.0f / SQRT2, Cldfb_ImagBuffer_in[0][slot], nBins ); -#endif + mvr2r( Cldfb_RealBuffer_in[0][slot], Cldfb_RealBuffer_in[1][slot], nBins ); mvr2r( Cldfb_ImagBuffer_in[0][slot], Cldfb_ImagBuffer_in[1][slot], nBins ); } @@ -451,15 +448,11 @@ static void ivas_dirac_dec_binaural_internal( Cldfb_RealBuffer_in[ch][slot], Cldfb_ImagBuffer_in[ch][slot], nBins, st_ivas->cldfbAnaDec[ch] ); + if ( st_ivas->nchan_transport == 1 && st_ivas->ivas_format == SBA_FORMAT ) { -#ifdef FIX_I120_INV_SQRT v_multc( Cldfb_RealBuffer_in[ch][slot], INV_SQRT_2, Cldfb_RealBuffer_in[ch][slot], nBins ); v_multc( Cldfb_ImagBuffer_in[ch][slot], INV_SQRT_2, Cldfb_ImagBuffer_in[ch][slot], nBins ); -#else - v_multc( Cldfb_RealBuffer_in[ch][slot], 1.0f / SQRT2, Cldfb_RealBuffer_in[ch][slot], nBins ); - v_multc( Cldfb_ImagBuffer_in[ch][slot], 1.0f / SQRT2, Cldfb_ImagBuffer_in[ch][slot], nBins ); -#endif } } } @@ -771,11 +764,7 @@ static void ivas_dirac_dec_binaural_formulate_input_and_target_covariance_matric { /* 0.5f <= spreadCoh < 1.0f */ centerMul = 2.0f - ( 2.0f * spreadCoh ); -#ifdef FIX_I120_INV_SQRT sidesMul = inv_sqrt( centerMul + 2.0f ); -#else - sidesMul = 1.0f / sqrtf( centerMul + 2.0f ); -#endif centerMul *= sidesMul; } diff --git a/lib_dec/ivas_dirac_output_synthesis_dec.c b/lib_dec/ivas_dirac_output_synthesis_dec.c index dfda59fde9..79c04f824b 100644 --- a/lib_dec/ivas_dirac_output_synthesis_dec.c +++ b/lib_dec/ivas_dirac_output_synthesis_dec.c @@ -2078,11 +2078,8 @@ static void spreadCoherencePanningVbap( if ( hVBAPdata == NULL ) { /* Distribute signal to all channels if VBAP is not properly initialized. */ -#ifdef FIX_I120_INV_SQRT set_f( direct_response, inv_sqrt( num_channels_dir ), num_channels_dir ); -#else - set_f( direct_response, 1.0f / sqrtf( num_channels_dir ), num_channels_dir ); -#endif + return; } diff --git a/lib_dec/ivas_efap.c b/lib_dec/ivas_efap.c index 7999264eb3..602fd24161 100644 --- a/lib_dec/ivas_efap.c +++ b/lib_dec/ivas_efap.c @@ -266,11 +266,7 @@ void efap_determine_gains( } normBuffer = normBuffer + hEFAPdata->bufferShort[j] * hEFAPdata->bufferShort[j]; } -#ifdef FIX_I120_INV_SQRT normBuffer = inv_sqrt( normBuffer ); -#else - normBuffer = 1.f / sqrtf( normBuffer ); -#endif for ( j = 0; j < hEFAPdata->numSpk; ++j ) { @@ -1632,11 +1628,7 @@ static float point_plane_distance( /* Dot Product */ tmpNorm = dotp( resultCross, resultCross, 3 ); -#ifdef FIX_I120_INV_SQRT tmpNorm = inv_sqrt( tmpNorm ); -#else - tmpNorm = 1.f / sqrtf( tmpNorm ); -#endif v_sub( X, P1, tmpDot1, 3 ); v_multc( resultCross, tmpNorm, tmpDot2, 3 ); dist = dotp( tmpDot1, tmpDot2, 3 ); diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 3e153ad01f..911de57d7e 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -1020,11 +1020,7 @@ ivas_error ivas_init_decoder( if ( st_ivas->hVBAPdata == NULL ) { /* Distribute signal to all channels if VBAP is not properly initialized. */ -#ifdef FIX_I120_INV_SQRT set_f( st_ivas->hLsSetupCustom->separate_ch_gains, inv_sqrt( st_ivas->hLsSetupCustom->num_spk ), st_ivas->hLsSetupCustom->num_spk ); -#else - set_f( st_ivas->hLsSetupCustom->separate_ch_gains, 1 / sqrtf( st_ivas->hLsSetupCustom->num_spk ), st_ivas->hLsSetupCustom->num_spk ); -#endif } else { diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index a495aed934..7fe031f9d2 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -987,11 +987,7 @@ void ivas_mdct_core_reconstruct( xcorr += signal_outFB[0][i] * signal_outFB[1][i]; } -#ifdef FIX_I120_INV_SQRT hCPE->hStereoMdct->lastCoh = fabsf( xcorr ) * inv_sqrt( nrgL * nrgR ); -#else - hCPE->hStereoMdct->lastCoh = fabsf( xcorr ) / sqrtf( nrgL * nrgR ); -#endif hCPE->hStereoMdct->lastCoh = min( hCPE->hStereoMdct->lastCoh, 1.f ); } diff --git a/lib_dec/ivas_objectRenderer_vec.c b/lib_dec/ivas_objectRenderer_vec.c index 54f7c51727..11c5d31ea8 100644 --- a/lib_dec/ivas_objectRenderer_vec.c +++ b/lib_dec/ivas_objectRenderer_vec.c @@ -89,11 +89,7 @@ void TDREND_SPATIAL_VecNormalize( { float scaler; -#ifdef FIX_I120_INV_SQRT scaler = inv_sqrt( Vec_p[0] * Vec_p[0] + Vec_p[1] * Vec_p[1] + Vec_p[2] * Vec_p[2] ); -#else - scaler = 1.0f / sqrtf( Vec_p[0] * Vec_p[0] + Vec_p[1] * Vec_p[1] + Vec_p[2] * Vec_p[2] ); -#endif VecNorm_p[0] = scaler * Vec_p[0]; VecNorm_p[1] = scaler * Vec_p[1]; VecNorm_p[2] = scaler * Vec_p[2]; diff --git a/lib_dec/ivas_reverb.c b/lib_dec/ivas_reverb.c index 56ea9fc7e8..c18d3940e6 100644 --- a/lib_dec/ivas_reverb.c +++ b/lib_dec/ivas_reverb.c @@ -156,11 +156,9 @@ static ivas_error compute_feedback_matrix( { return IVAS_ERR_INTERNAL; /* n must be 4, 6, 8 or 16, else ERROR */ } -#ifdef FIX_I120_INV_SQRT + u = inv_sqrt( n ); -#else - u = 1.0f / sqrtf( n ); -#endif + if ( n == 4 ) { u = -u; diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index 7ee63cd33c..ac7f942b2a 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -345,11 +345,7 @@ static void stereo_dft_generate_comfort_noise( ptr2 = ptr1 + 1; for ( i = 0; i < st->L_frame / 2 - 1; i++ ) { -#ifdef FIX_I120_INV_SQRT *ptr0++ = 2.0f * sqrtf( st->lp_ener / st->L_frame * 0.5f ) * inv_sqrt( *ptr1 * *ptr1 + *ptr2 * *ptr2 ); -#else - *ptr0++ = 2.0f * sqrtf( st->lp_ener / st->L_frame * 0.5f ) / sqrtf( *ptr1 * *ptr1 + *ptr2 * *ptr2 ); -#endif ptr1 += 2; ptr2 += 2; } @@ -775,11 +771,9 @@ void stereo_cng_compute_PScorr( enrS += *outputSptr * *outputSptr; dotPS += *outputPptr++ * *outputSptr++; } -#ifdef FIX_I120_INV_SQRT + c_PS = ( dotPS + EPSILON ) * inv_sqrt( enrP * enrS + EPSILON ); -#else - c_PS = ( dotPS + EPSILON ) / sqrtf( enrP * enrS + EPSILON ); -#endif + *c_PS_LT = STEREO_TD_PS_CORR_FILT * *c_PS_LT + ( 1 - STEREO_TD_PS_CORR_FILT ) * c_PS; return; @@ -816,11 +810,7 @@ static void stereo_cng_compute_LRcorr( dotLR += output[0][i] * output[1][i]; } -#ifdef FIX_I120_INV_SQRT c_LR = fabsf( dotLR + EPSILON ) * inv_sqrt( enrL * enrR + EPSILON ); -#else - c_LR = fabsf( dotLR + EPSILON ) / sqrtf( enrL * enrR + EPSILON ); -#endif c = ( enrL + DELTA ) / ( enrR + DELTA ); hCPE->hStereoTD->c_LR_LT = STEREO_TD_PS_CORR_FILT * hCPE->hStereoTD->c_LR_LT + ( 1 - STEREO_TD_PS_CORR_FILT ) * c_LR; hCPE->hStereoCng->c_LR_LT = hCPE->hStereoTD->c_LR_LT; @@ -944,11 +934,7 @@ void stereo_cna_update_params( } /* estimate L/R correlation factor and ILD in time domain */ -#ifdef FIX_I120_INV_SQRT c_LR = fabsf( dotLR + EPSILON ) * inv_sqrt( enrL * enrR + EPSILON ); -#else - c_LR = fabsf( dotLR + EPSILON ) / sqrtf( enrL * enrR + EPSILON ); -#endif c = ( enrL + DELTA ) / ( enrR + DELTA ); c_ILD = ( c - 1 ) / ( c + 1 ); } diff --git a/lib_dec/ivas_vbap.c b/lib_dec/ivas_vbap.c index 0417fd742f..2534854e8b 100644 --- a/lib_dec/ivas_vbap.c +++ b/lib_dec/ivas_vbap.c @@ -436,11 +436,7 @@ void vbap_determine_gains( gain_ene += gain_triplet[ch] * gain_triplet[ch]; } -#ifdef FIX_I120_INV_SQRT norm_value = inv_sqrt( gain_ene ); -#else - norm_value = 1.0f / sqrtf( gain_ene ); -#endif for ( ch = 0; ch < 3; ch++ ) { diff --git a/lib_enc/ivas_stereo_dft_enc.c b/lib_enc/ivas_stereo_dft_enc.c index 80e05cc5cc..de44362ddd 100644 --- a/lib_enc/ivas_stereo_dft_enc.c +++ b/lib_enc/ivas_stereo_dft_enc.c @@ -1643,13 +1643,11 @@ void stereo_dft_enc_process( sum_nrg_R2 += pDFT_R[2 * j] * pDFT_R[2 * j] + pDFT_R[2 * j + 1] * pDFT_R[2 * j + 1]; dot_prod_real2 += pDFT_L[2 * j] * pDFT_R[2 * j] + pDFT_L[2 * j + 1] * pDFT_R[2 * j + 1]; } + sum_nrg_Mid = max( 0.f, sum_nrg_L2 + sum_nrg_R2 + 2.f * dot_prod_real2 ); -#ifdef FIX_I120_INV_SQRT wL = 0.5f * max( sqrtf( sum_nrg_L2 ) + sqrtf( sum_nrg_R2 ) - sqrtf( sum_nrg_Mid ), 0 ) * inv_sqrt( sum_nrg_L2 + EPSILON ); -#else - wL = 0.5f * max( sqrtf( sum_nrg_L2 ) + sqrtf( sum_nrg_R2 ) - sqrtf( sum_nrg_Mid ), 0 ) / sqrtf( sum_nrg_L2 + EPSILON ); -#endif wS = 1; + if ( hStereoDft->res_cod_sw_flag ) { wL *= ( 1 - hStereoDft->switch_fade_factor ); diff --git a/lib_enc/ivas_stereo_ica_enc.c b/lib_enc/ivas_stereo_ica_enc.c index 0e1b1a9af1..c178d05a91 100644 --- a/lib_enc/ivas_stereo_ica_enc.c +++ b/lib_enc/ivas_stereo_ica_enc.c @@ -345,11 +345,7 @@ static void utilCrossCorr( temp = sum2_f( tempBuf1, len ); temp *= sum2_f( tempBuf2, len ); -#ifdef FIX_I120_INV_SQRT scale = ( temp == 0 ) ? 1.0f : inv_sqrt( temp ); -#else - scale = ( temp == 0 ) ? 1.0f : 1.0f / sqrtf( temp ); -#endif /* starting point of lag search range should be less than the ending point */ assert( lagSearchRange[0] <= lagSearchRange[1] ); diff --git a/lib_enc/ivas_tcx_core_enc.c b/lib_enc/ivas_tcx_core_enc.c index ed918a5ca7..4bd88cb00d 100644 --- a/lib_enc/ivas_tcx_core_enc.c +++ b/lib_enc/ivas_tcx_core_enc.c @@ -680,11 +680,7 @@ int16_t ivas_acelp_tcx20_switching( for ( i = 0; i < L_frame; i++ ) { -#ifdef FIX_I120_INV_SQRT x[i] *= (float) L_frame * inv_sqrt( 2 * NORM_MDCT_FACTOR ); -#else - x[i] *= (float) L_frame / sqrtf( 2 * NORM_MDCT_FACTOR ); -#endif y[i] = x[i]; } -- GitLab From 64f634baf41b15ae14a438f8e62e870a0630c40f Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 14:03:49 +0000 Subject: [PATCH 232/479] Revert "Merge branch '115_bitrateswitching_ISM' into 'main'" This reverts merge request !175 --- lib_com/options.h | 2 - lib_dec/ivas_ism_param_dec.c | 227 +---------------------------------- lib_enc/ivas_ism_param_enc.c | 136 --------------------- 3 files changed, 1 insertion(+), 364 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index a0619039fa..f040d6b10d 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -148,8 +148,6 @@ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ -#define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ - /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index b76c88739d..be2b9eb350 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1003,207 +1003,6 @@ void ivas_param_ism_params_to_masa_param_mapping( return; } - - -#ifdef ISM_BITRATE_SWITCHING -static ivas_error ivas_ism_format_bitrate_switching( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - const int16_t last_nchan_trans, /* i : last number of SCE channels in the bitstream */ - const ISM_MODE last_ism_mode, /* i : last ISM mode */ - const int16_t num_obj /* i : number of objects in the bitstream */ -) -{ - int16_t sce_id; - ivas_error error; - int32_t element_brate_tmp[MAX_NUM_OBJECTS]; - - error = IVAS_ERR_OK; - - ivas_ism_config(st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, num_obj, NULL, NULL, NULL, element_brate_tmp, NULL, NULL); - - if (st_ivas->nchan_transport > last_nchan_trans) - { - /* Initialize for new bitrate */ - for (sce_id = 0;sce_id < last_nchan_trans;sce_id++) - { - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Initialize some memories */ - for (sce_id = last_nchan_trans; sce_id < st_ivas->nchan_transport; sce_id++) - { - if ((error = create_sce_dec(st_ivas, sce_id, element_brate_tmp[sce_id])) != IVAS_ERR_OK) - { - return error; - } - } - } - else - { - /* Initialize for new bitrate */ - for (sce_id = 0;sce_id < st_ivas->nchan_transport; sce_id++) - { - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Destroy the core coder memory */ - for (; sce_id < last_nchan_trans; sce_id++) - { - destroy_sce_dec(st_ivas->hSCE[sce_id]); - st_ivas->hSCE[sce_id] = NULL; - } - - } - - /* destroy the memory of hp20*/ - if (st_ivas->mem_hp20_out != NULL) - { - for (sce_id = 0; sce_id < last_nchan_trans; sce_id++) - { - count_free(st_ivas->mem_hp20_out[sce_id]); - st_ivas->mem_hp20_out[sce_id] = NULL; - } - count_free(st_ivas->mem_hp20_out); - st_ivas->mem_hp20_out = NULL; - } - - /* re initialize the memory of hp20 */ - /* set number of input channels used for analysis/coding */ - - if (st_ivas->nchan_transport > 0) - { - if ((st_ivas->mem_hp20_out = (float **)count_malloc(st_ivas->nchan_transport * sizeof(float *))) == NULL) - { - return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); - } - } - else - { - st_ivas->mem_hp20_out = NULL; - } - - for (sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++) - { - if ((st_ivas->mem_hp20_out[sce_id] = (float *)count_malloc(L_HP20_MEM * sizeof(float))) == NULL) - { - return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); - } - - set_f(st_ivas->mem_hp20_out[sce_id], 0.0f, L_HP20_MEM); - } - - - /* Initialize the needed renderer struct and destroy the unnecessary renderer struct */ - - /* select the renderer */ - ivas_renderer_select(st_ivas); - ivas_output_init(&(st_ivas->hIntSetup), st_ivas->intern_config); - if ((st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC) && (st_ivas->ism_mode == ISM_MODE_DISC)) - { - ivas_output_init(&(st_ivas->hIntSetup), st_ivas->hDecoderConfig->output_config); - } - - if (st_ivas->ism_mode != last_ism_mode) - { - /* EFAP handle */ - efap_free_data(&st_ivas->hEFAPdata); - } - - if (st_ivas->ism_mode == ISM_MODE_DISC && last_ism_mode == ISM_MODE_PARAM) - { - /* switching from ParamISM to DiscISM */ - - /* close the ParamISM struct */ - if (st_ivas->hDirAC != NULL) - { - ivas_param_ism_dec_close(st_ivas->hDirAC, st_ivas->hDecoderConfig->output_config); - st_ivas->hDirAC = NULL; - } - - if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL) - { - /* close the parametric binaural renderer */ - ivas_dirac_dec_close_binaural_data(&st_ivas->hDiracDecBin); - - /* Open the TD Binaural renderer */ - ivas_td_binaural_open(st_ivas); - } - else - { - /* close the ISM renderer and reinitialize */ - if (st_ivas->hIsmRendererData != NULL) - { - count_free(st_ivas->hIsmRendererData); - st_ivas->hIsmRendererData = NULL; - } - ivas_ism_renderer_open(st_ivas); - } - - if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM) - { - /* close the parametric binaural renderer */ - ivas_dirac_dec_close_binaural_data(&st_ivas->hDiracDecBin); - - /* Open Crend Binaural renderer */ - ivas_crend_open(st_ivas); - } - } - - if (st_ivas->ism_mode == ISM_MODE_PARAM && last_ism_mode == ISM_MODE_DISC) - { - /* switching from DiscISM to ParamISM */ - - /* Initialize the ParamISM struct */ - ivas_param_ism_dec_open(st_ivas); - - if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL) - { - /* open the parametric binaural renderer */ - ivas_dirac_dec_init_binaural_data(st_ivas); - - /* Close the TD Binaural renderer */ - if (st_ivas->hBinRendererTd != NULL) - { - ivas_td_binaural_close(&st_ivas->hBinRendererTd); - } - - if (st_ivas->hHrtfTD != NULL) - { - st_ivas->hHrtfTD = NULL; - } - } - else - { - /* Close the ISM renderer */ - if (st_ivas->hIsmRendererData != NULL) - { - count_free(st_ivas->hIsmRendererData); - st_ivas->hIsmRendererData = NULL; - } - } - - if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM) - { - /* open the parametric binaural renderer */ - ivas_dirac_dec_init_binaural_data(st_ivas); - - /* close the crend binaural renderer */ - ivas_crend_close(st_ivas); - - if (st_ivas->hHrtf != NULL) - { - st_ivas->hHrtf = NULL; - } - } - - } - - return error; -} -#endif - /*------------------------------------------------------------------------- * ivas_ism_dec_config() * @@ -1220,24 +1019,13 @@ ivas_error ivas_ism_dec_config( int32_t ivas_total_brate; ISM_MODE last_ism_mode; ivas_error error; -#ifdef ISM_BITRATE_SWITCHING - int16_t last_nchan_trans; -#endif error = IVAS_ERR_OK; ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; /* store last frame ISM mode */ - last_ism_mode = st_ivas->ism_mode; -#ifdef ISM_BITRATE_SWITCHING - /* Assumes that num of input objects are constant */ - last_nchan_trans = num_obj; - if (last_ism_mode == ISM_MODE_PARAM) - { - last_nchan_trans = 2; - } -#endif + last_ism_mode = st_ivas->ism_mode; if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_5k2 && ivas_total_brate != FRAME_NO_DATA ) { @@ -1256,31 +1044,18 @@ ivas_error ivas_ism_dec_config( if ( st_ivas->ini_active_frame != 0 ) { -#ifdef ISM_BITRATE_SWITCHING - /* ISM format/bitrate switching */ - if ((st_ivas->hDecoderConfig->last_ivas_total_brate != IVAS_SID_5k2) && (st_ivas->hDecoderConfig->last_ivas_total_brate != FRAME_NO_DATA)) - { - if ((st_ivas->ism_mode != last_ism_mode) || (st_ivas->hDecoderConfig->ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate)) - { - ivas_ism_format_bitrate_switching(st_ivas, last_nchan_trans, last_ism_mode, num_obj); - st_ivas->nSCE = st_ivas->nchan_transport; - } - } -#else /* ISM format switching */ if ( st_ivas->ism_mode != last_ism_mode ) { /*ivas_ism_dec_reconfigure( st_ivas );*/ return IVAS_ERROR( IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, "\n\n!!! Error: ISM format switching not supported yet!!!\n\n" ); } -#endif } } else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) { st_ivas->nchan_transport = num_obj; } - switch ( num_obj ) { case 1: diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index e8a23d6b39..e515f7e204 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -415,156 +415,20 @@ ivas_error ivas_ism_enc_config( { ivas_error error; ISM_MODE last_ism_mode; -#ifdef ISM_BITRATE_SWITCHING - int16_t last_nSCE; - int16_t sce_id, n; -#endif error = IVAS_ERR_OK; last_ism_mode = st_ivas->ism_mode; -#ifdef ISM_BITRATE_SWITCHING - last_nSCE = st_ivas->nSCE; -#endif /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( st_ivas->hEncoderConfig->nchan_inp, st_ivas->hEncoderConfig->ivas_total_brate ); -#ifdef ISM_BITRATE_SWITCHING - /* ISM format switching */ - if ( (st_ivas->ism_mode != last_ism_mode) || (st_ivas->hEncoderConfig->ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate) ) - { - int32_t element_brate_tmp[MAX_NUM_OBJECTS]; - Indice *ind_list_sce; /* list of indices */ - Indice *ind_list_metadata; /* list of indices */ - - /* Reset and Initialize */ - if (st_ivas->ism_mode == ISM_MODE_PARAM) - { - st_ivas->nchan_transport = 2; - } - else - { - st_ivas->nchan_transport = st_ivas->hEncoderConfig->nchan_inp; - } - - st_ivas->nSCE = st_ivas->nchan_transport; - st_ivas->nCPE = 0; - - ivas_ism_config(st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hEncoderConfig->nchan_inp, NULL, NULL, NULL, element_brate_tmp, NULL, NULL); - - if (st_ivas->nSCE > last_nSCE) - { - /* Reconfigure the core coders */ - for (sce_id = 0; sce_id < last_nSCE; sce_id++) - { - copy_encoder_config(st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0); - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Initialize the extra required memory */ - ind_list_sce = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr->ind_list; - ind_list_metadata = st_ivas->hSCE[0]->hMetaData->ind_list; - - for (sce_id = last_nSCE; sce_id < st_ivas->nSCE; sce_id++) - { - /* Initialize the Core Coder */ - if ((error = create_sce_enc(st_ivas, sce_id, element_brate_tmp[sce_id])) != IVAS_ERR_OK) - { - return error; - } - - /* prepare bitstream buffers */ - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list_sce + (sce_id * MAX_NUM_INDICES); - reset_indices_enc(st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES); - - st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + (sce_id * MAX_BITS_METADATA); - reset_indices_enc(st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA); - } - } - else - { - /* Reconfigure the Core Coders */ - for (sce_id = 0; sce_id < st_ivas->nSCE; sce_id++) - { - copy_encoder_config(st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0); - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Delete the extra memory */ - for (sce_id = st_ivas->nSCE; sce_id < last_nSCE; sce_id++) - { - if (st_ivas->hSCE[sce_id] != NULL) - { - destroy_sce_enc(st_ivas->hSCE[sce_id]); - st_ivas->hSCE[sce_id] = NULL; - } - } - } - - if ((st_ivas->ism_mode == ISM_MODE_PARAM) && (last_ism_mode == ISM_MODE_DISC)) - { - /* Initialize the memory used by ParamISM when switch to Param ISM from Disc ISM */ - if ((error = ivas_param_ism_enc_open(st_ivas)) != IVAS_ERR_OK) - { - return error; - } - } - - if ((st_ivas->ism_mode == ISM_MODE_DISC) && (last_ism_mode == ISM_MODE_PARAM)) - { - /* Reset the memory used by ParamISM when switch to Disc ISM */ - ivas_param_ism_enc_close(st_ivas->hDirAC, st_ivas->hEncoderConfig->input_Fs); - } - - /* destroy the memory of hp20*/ - if (st_ivas->mem_hp20_in != NULL) - { - for (sce_id = 0; sce_id < last_nSCE; sce_id++) - { - count_free(st_ivas->mem_hp20_in[sce_id]); - st_ivas->mem_hp20_in[sce_id] = NULL; - } - count_free(st_ivas->mem_hp20_in); - st_ivas->mem_hp20_in = NULL; - } - - /* re initialize the memory of hp20 */ - /* set number of input channels used for analysis/coding */ - n = getNumChanAnalysis(st_ivas); - - if (n > 0) - { - if ((st_ivas->mem_hp20_in = (float **)count_malloc(n * sizeof(float *))) == NULL) - { - return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); - } - } - else - { - st_ivas->mem_hp20_in = NULL; - } - - for (sce_id = 0; sce_id < n; sce_id++) - { - if ((st_ivas->mem_hp20_in[sce_id] = (float *)count_malloc(L_HP20_MEM * sizeof(float))) == NULL) - { - return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); - } - - set_f(st_ivas->mem_hp20_in[sce_id], 0.0f, L_HP20_MEM); - } - } -#else /* ISM format switching */ if ( st_ivas->ism_mode != last_ism_mode ) { /*ivas_ism_dec_reconfigure( st_ivas );*/ return IVAS_ERROR( IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, "Error: ISM format switching not supported yet!!!\n\n" ); } -#endif return error; } -- GitLab From 263409496b46a1cbe693d55ccb82f9e4dc76e53e Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 16:17:10 +0200 Subject: [PATCH 233/479] formatting --- lib_dec/ivas_ism_param_dec.c | 133 +++++++++++++++++------------------ lib_enc/ivas_ism_param_enc.c | 77 ++++++++++---------- 2 files changed, 103 insertions(+), 107 deletions(-) diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index b76c88739d..cde18f55d5 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1004,13 +1004,12 @@ void ivas_param_ism_params_to_masa_param_mapping( } - #ifdef ISM_BITRATE_SWITCHING static ivas_error ivas_ism_format_bitrate_switching( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - const int16_t last_nchan_trans, /* i : last number of SCE channels in the bitstream */ - const ISM_MODE last_ism_mode, /* i : last ISM mode */ - const int16_t num_obj /* i : number of objects in the bitstream */ + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t last_nchan_trans, /* i : last number of SCE channels in the bitstream */ + const ISM_MODE last_ism_mode, /* i : last ISM mode */ + const int16_t num_obj /* i : number of objects in the bitstream */ ) { int16_t sce_id; @@ -1019,21 +1018,21 @@ static ivas_error ivas_ism_format_bitrate_switching( error = IVAS_ERR_OK; - ivas_ism_config(st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, num_obj, NULL, NULL, NULL, element_brate_tmp, NULL, NULL); + ivas_ism_config( st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, num_obj, NULL, NULL, NULL, element_brate_tmp, NULL, NULL ); - if (st_ivas->nchan_transport > last_nchan_trans) + if ( st_ivas->nchan_transport > last_nchan_trans ) { /* Initialize for new bitrate */ - for (sce_id = 0;sce_id < last_nchan_trans;sce_id++) + for ( sce_id = 0; sce_id < last_nchan_trans; sce_id++ ) { st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ } /* Initialize some memories */ - for (sce_id = last_nchan_trans; sce_id < st_ivas->nchan_transport; sce_id++) + for ( sce_id = last_nchan_trans; sce_id < st_ivas->nchan_transport; sce_id++ ) { - if ((error = create_sce_dec(st_ivas, sce_id, element_brate_tmp[sce_id])) != IVAS_ERR_OK) + if ( ( error = create_sce_dec( st_ivas, sce_id, element_brate_tmp[sce_id] ) ) != IVAS_ERR_OK ) { return error; } @@ -1042,41 +1041,40 @@ static ivas_error ivas_ism_format_bitrate_switching( else { /* Initialize for new bitrate */ - for (sce_id = 0;sce_id < st_ivas->nchan_transport; sce_id++) + for ( sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++ ) { st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ } /* Destroy the core coder memory */ - for (; sce_id < last_nchan_trans; sce_id++) + for ( ; sce_id < last_nchan_trans; sce_id++ ) { - destroy_sce_dec(st_ivas->hSCE[sce_id]); + destroy_sce_dec( st_ivas->hSCE[sce_id] ); st_ivas->hSCE[sce_id] = NULL; } - } /* destroy the memory of hp20*/ - if (st_ivas->mem_hp20_out != NULL) + if ( st_ivas->mem_hp20_out != NULL ) { - for (sce_id = 0; sce_id < last_nchan_trans; sce_id++) + for ( sce_id = 0; sce_id < last_nchan_trans; sce_id++ ) { - count_free(st_ivas->mem_hp20_out[sce_id]); + count_free( st_ivas->mem_hp20_out[sce_id] ); st_ivas->mem_hp20_out[sce_id] = NULL; } - count_free(st_ivas->mem_hp20_out); + count_free( st_ivas->mem_hp20_out ); st_ivas->mem_hp20_out = NULL; } /* re initialize the memory of hp20 */ /* set number of input channels used for analysis/coding */ - if (st_ivas->nchan_transport > 0) + if ( st_ivas->nchan_transport > 0 ) { - if ((st_ivas->mem_hp20_out = (float **)count_malloc(st_ivas->nchan_transport * sizeof(float *))) == NULL) + if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( st_ivas->nchan_transport * sizeof( float * ) ) ) == NULL ) { - return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } } else @@ -1084,92 +1082,92 @@ static ivas_error ivas_ism_format_bitrate_switching( st_ivas->mem_hp20_out = NULL; } - for (sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++) + for ( sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++ ) { - if ((st_ivas->mem_hp20_out[sce_id] = (float *)count_malloc(L_HP20_MEM * sizeof(float))) == NULL) + if ( ( st_ivas->mem_hp20_out[sce_id] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) { - return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } - set_f(st_ivas->mem_hp20_out[sce_id], 0.0f, L_HP20_MEM); + set_f( st_ivas->mem_hp20_out[sce_id], 0.0f, L_HP20_MEM ); } /* Initialize the needed renderer struct and destroy the unnecessary renderer struct */ - + /* select the renderer */ - ivas_renderer_select(st_ivas); - ivas_output_init(&(st_ivas->hIntSetup), st_ivas->intern_config); - if ((st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC) && (st_ivas->ism_mode == ISM_MODE_DISC)) + ivas_renderer_select( st_ivas ); + ivas_output_init( &( st_ivas->hIntSetup ), st_ivas->intern_config ); + if ( ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC ) && ( st_ivas->ism_mode == ISM_MODE_DISC ) ) { - ivas_output_init(&(st_ivas->hIntSetup), st_ivas->hDecoderConfig->output_config); + ivas_output_init( &( st_ivas->hIntSetup ), st_ivas->hDecoderConfig->output_config ); } - if (st_ivas->ism_mode != last_ism_mode) + if ( st_ivas->ism_mode != last_ism_mode ) { /* EFAP handle */ - efap_free_data(&st_ivas->hEFAPdata); + efap_free_data( &st_ivas->hEFAPdata ); } - - if (st_ivas->ism_mode == ISM_MODE_DISC && last_ism_mode == ISM_MODE_PARAM) + + if ( st_ivas->ism_mode == ISM_MODE_DISC && last_ism_mode == ISM_MODE_PARAM ) { /* switching from ParamISM to DiscISM */ /* close the ParamISM struct */ - if (st_ivas->hDirAC != NULL) + if ( st_ivas->hDirAC != NULL ) { - ivas_param_ism_dec_close(st_ivas->hDirAC, st_ivas->hDecoderConfig->output_config); + ivas_param_ism_dec_close( st_ivas->hDirAC, st_ivas->hDecoderConfig->output_config ); st_ivas->hDirAC = NULL; } - if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL) + if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL ) { /* close the parametric binaural renderer */ - ivas_dirac_dec_close_binaural_data(&st_ivas->hDiracDecBin); + ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin ); /* Open the TD Binaural renderer */ - ivas_td_binaural_open(st_ivas); + ivas_td_binaural_open( st_ivas ); } else { /* close the ISM renderer and reinitialize */ - if (st_ivas->hIsmRendererData != NULL) + if ( st_ivas->hIsmRendererData != NULL ) { - count_free(st_ivas->hIsmRendererData); + count_free( st_ivas->hIsmRendererData ); st_ivas->hIsmRendererData = NULL; } - ivas_ism_renderer_open(st_ivas); + ivas_ism_renderer_open( st_ivas ); } - if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM) + if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM ) { /* close the parametric binaural renderer */ - ivas_dirac_dec_close_binaural_data(&st_ivas->hDiracDecBin); + ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin ); /* Open Crend Binaural renderer */ - ivas_crend_open(st_ivas); + ivas_crend_open( st_ivas ); } } - if (st_ivas->ism_mode == ISM_MODE_PARAM && last_ism_mode == ISM_MODE_DISC) + if ( st_ivas->ism_mode == ISM_MODE_PARAM && last_ism_mode == ISM_MODE_DISC ) { /* switching from DiscISM to ParamISM */ /* Initialize the ParamISM struct */ - ivas_param_ism_dec_open(st_ivas); + ivas_param_ism_dec_open( st_ivas ); - if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL) + if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL ) { /* open the parametric binaural renderer */ - ivas_dirac_dec_init_binaural_data(st_ivas); + ivas_dirac_dec_init_binaural_data( st_ivas ); /* Close the TD Binaural renderer */ - if (st_ivas->hBinRendererTd != NULL) + if ( st_ivas->hBinRendererTd != NULL ) { - ivas_td_binaural_close(&st_ivas->hBinRendererTd); + ivas_td_binaural_close( &st_ivas->hBinRendererTd ); } - if (st_ivas->hHrtfTD != NULL) + if ( st_ivas->hHrtfTD != NULL ) { st_ivas->hHrtfTD = NULL; } @@ -1177,32 +1175,31 @@ static ivas_error ivas_ism_format_bitrate_switching( else { /* Close the ISM renderer */ - if (st_ivas->hIsmRendererData != NULL) + if ( st_ivas->hIsmRendererData != NULL ) { - count_free(st_ivas->hIsmRendererData); + count_free( st_ivas->hIsmRendererData ); st_ivas->hIsmRendererData = NULL; } } - if (st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM) + if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM ) { /* open the parametric binaural renderer */ - ivas_dirac_dec_init_binaural_data(st_ivas); + ivas_dirac_dec_init_binaural_data( st_ivas ); /* close the crend binaural renderer */ - ivas_crend_close(st_ivas); + ivas_crend_close( st_ivas ); - if (st_ivas->hHrtf != NULL) + if ( st_ivas->hHrtf != NULL ) { st_ivas->hHrtf = NULL; } } - } return error; } -#endif +#endif /*------------------------------------------------------------------------- * ivas_ism_dec_config() @@ -1222,22 +1219,22 @@ ivas_error ivas_ism_dec_config( ivas_error error; #ifdef ISM_BITRATE_SWITCHING int16_t last_nchan_trans; -#endif +#endif error = IVAS_ERR_OK; ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; /* store last frame ISM mode */ - last_ism_mode = st_ivas->ism_mode; + last_ism_mode = st_ivas->ism_mode; #ifdef ISM_BITRATE_SWITCHING /* Assumes that num of input objects are constant */ last_nchan_trans = num_obj; - if (last_ism_mode == ISM_MODE_PARAM) + if ( last_ism_mode == ISM_MODE_PARAM ) { last_nchan_trans = 2; } -#endif +#endif if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_5k2 && ivas_total_brate != FRAME_NO_DATA ) { @@ -1257,12 +1254,12 @@ ivas_error ivas_ism_dec_config( if ( st_ivas->ini_active_frame != 0 ) { #ifdef ISM_BITRATE_SWITCHING - /* ISM format/bitrate switching */ - if ((st_ivas->hDecoderConfig->last_ivas_total_brate != IVAS_SID_5k2) && (st_ivas->hDecoderConfig->last_ivas_total_brate != FRAME_NO_DATA)) + /* ISM bit-rate switching */ + if ( ( st_ivas->hDecoderConfig->last_ivas_total_brate != IVAS_SID_5k2 ) && ( st_ivas->hDecoderConfig->last_ivas_total_brate != FRAME_NO_DATA ) ) { - if ((st_ivas->ism_mode != last_ism_mode) || (st_ivas->hDecoderConfig->ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate)) + if ( ( st_ivas->ism_mode != last_ism_mode ) || ( st_ivas->hDecoderConfig->ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) ) { - ivas_ism_format_bitrate_switching(st_ivas, last_nchan_trans, last_ism_mode, num_obj); + ivas_ism_format_bitrate_switching( st_ivas, last_nchan_trans, last_ism_mode, num_obj ); st_ivas->nSCE = st_ivas->nchan_transport; } } diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index e8a23d6b39..508f33ab45 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -418,28 +418,27 @@ ivas_error ivas_ism_enc_config( #ifdef ISM_BITRATE_SWITCHING int16_t last_nSCE; int16_t sce_id, n; -#endif +#endif error = IVAS_ERR_OK; last_ism_mode = st_ivas->ism_mode; #ifdef ISM_BITRATE_SWITCHING last_nSCE = st_ivas->nSCE; -#endif +#endif /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( st_ivas->hEncoderConfig->nchan_inp, st_ivas->hEncoderConfig->ivas_total_brate ); #ifdef ISM_BITRATE_SWITCHING - /* ISM format switching */ - if ( (st_ivas->ism_mode != last_ism_mode) || (st_ivas->hEncoderConfig->ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate) ) + /* ISM bit-rate switching */ + if ( ( st_ivas->ism_mode != last_ism_mode ) || ( st_ivas->hEncoderConfig->ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate ) ) { int32_t element_brate_tmp[MAX_NUM_OBJECTS]; - Indice *ind_list_sce; /* list of indices */ - Indice *ind_list_metadata; /* list of indices */ + Indice *ind_list_sce, *ind_list_metadata; /* Reset and Initialize */ - if (st_ivas->ism_mode == ISM_MODE_PARAM) + if ( st_ivas->ism_mode == ISM_MODE_PARAM ) { st_ivas->nchan_transport = 2; } @@ -451,14 +450,14 @@ ivas_error ivas_ism_enc_config( st_ivas->nSCE = st_ivas->nchan_transport; st_ivas->nCPE = 0; - ivas_ism_config(st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hEncoderConfig->nchan_inp, NULL, NULL, NULL, element_brate_tmp, NULL, NULL); + ivas_ism_config( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hEncoderConfig->nchan_inp, NULL, NULL, NULL, element_brate_tmp, NULL, NULL ); - if (st_ivas->nSCE > last_nSCE) + if ( st_ivas->nSCE > last_nSCE ) { /* Reconfigure the core coders */ - for (sce_id = 0; sce_id < last_nSCE; sce_id++) + for ( sce_id = 0; sce_id < last_nSCE; sce_id++ ) { - copy_encoder_config(st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0); + copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ } @@ -467,79 +466,79 @@ ivas_error ivas_ism_enc_config( ind_list_sce = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr->ind_list; ind_list_metadata = st_ivas->hSCE[0]->hMetaData->ind_list; - for (sce_id = last_nSCE; sce_id < st_ivas->nSCE; sce_id++) + for ( sce_id = last_nSCE; sce_id < st_ivas->nSCE; sce_id++ ) { /* Initialize the Core Coder */ - if ((error = create_sce_enc(st_ivas, sce_id, element_brate_tmp[sce_id])) != IVAS_ERR_OK) + if ( ( error = create_sce_enc( st_ivas, sce_id, element_brate_tmp[sce_id] ) ) != IVAS_ERR_OK ) { return error; } /* prepare bitstream buffers */ - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list_sce + (sce_id * MAX_NUM_INDICES); - reset_indices_enc(st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES); + st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list_sce + ( sce_id * MAX_NUM_INDICES ); + reset_indices_enc( st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES ); - st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + (sce_id * MAX_BITS_METADATA); - reset_indices_enc(st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA); + st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + ( sce_id * MAX_BITS_METADATA ); + reset_indices_enc( st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA ); } } else { /* Reconfigure the Core Coders */ - for (sce_id = 0; sce_id < st_ivas->nSCE; sce_id++) + for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) { - copy_encoder_config(st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0); + copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ } /* Delete the extra memory */ - for (sce_id = st_ivas->nSCE; sce_id < last_nSCE; sce_id++) + for ( sce_id = st_ivas->nSCE; sce_id < last_nSCE; sce_id++ ) { - if (st_ivas->hSCE[sce_id] != NULL) + if ( st_ivas->hSCE[sce_id] != NULL ) { - destroy_sce_enc(st_ivas->hSCE[sce_id]); + destroy_sce_enc( st_ivas->hSCE[sce_id] ); st_ivas->hSCE[sce_id] = NULL; } } } - if ((st_ivas->ism_mode == ISM_MODE_PARAM) && (last_ism_mode == ISM_MODE_DISC)) + if ( ( st_ivas->ism_mode == ISM_MODE_PARAM ) && ( last_ism_mode == ISM_MODE_DISC ) ) { /* Initialize the memory used by ParamISM when switch to Param ISM from Disc ISM */ - if ((error = ivas_param_ism_enc_open(st_ivas)) != IVAS_ERR_OK) + if ( ( error = ivas_param_ism_enc_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } } - if ((st_ivas->ism_mode == ISM_MODE_DISC) && (last_ism_mode == ISM_MODE_PARAM)) + if ( ( st_ivas->ism_mode == ISM_MODE_DISC ) && ( last_ism_mode == ISM_MODE_PARAM ) ) { /* Reset the memory used by ParamISM when switch to Disc ISM */ - ivas_param_ism_enc_close(st_ivas->hDirAC, st_ivas->hEncoderConfig->input_Fs); + ivas_param_ism_enc_close( st_ivas->hDirAC, st_ivas->hEncoderConfig->input_Fs ); } /* destroy the memory of hp20*/ - if (st_ivas->mem_hp20_in != NULL) + if ( st_ivas->mem_hp20_in != NULL ) { - for (sce_id = 0; sce_id < last_nSCE; sce_id++) + for ( sce_id = 0; sce_id < last_nSCE; sce_id++ ) { - count_free(st_ivas->mem_hp20_in[sce_id]); + count_free( st_ivas->mem_hp20_in[sce_id] ); st_ivas->mem_hp20_in[sce_id] = NULL; } - count_free(st_ivas->mem_hp20_in); + count_free( st_ivas->mem_hp20_in ); st_ivas->mem_hp20_in = NULL; } /* re initialize the memory of hp20 */ /* set number of input channels used for analysis/coding */ - n = getNumChanAnalysis(st_ivas); + n = getNumChanAnalysis( st_ivas ); - if (n > 0) + if ( n > 0 ) { - if ((st_ivas->mem_hp20_in = (float **)count_malloc(n * sizeof(float *))) == NULL) + if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) { - return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } } else @@ -547,14 +546,14 @@ ivas_error ivas_ism_enc_config( st_ivas->mem_hp20_in = NULL; } - for (sce_id = 0; sce_id < n; sce_id++) + for ( sce_id = 0; sce_id < n; sce_id++ ) { - if ((st_ivas->mem_hp20_in[sce_id] = (float *)count_malloc(L_HP20_MEM * sizeof(float))) == NULL) + if ( ( st_ivas->mem_hp20_in[sce_id] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) { - return (IVAS_ERROR(IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n")); + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } - set_f(st_ivas->mem_hp20_in[sce_id], 0.0f, L_HP20_MEM); + set_f( st_ivas->mem_hp20_in[sce_id], 0.0f, L_HP20_MEM ); } } #else @@ -564,7 +563,7 @@ ivas_error ivas_ism_enc_config( /*ivas_ism_dec_reconfigure( st_ivas );*/ return IVAS_ERROR( IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, "Error: ISM format switching not supported yet!!!\n\n" ); } -#endif +#endif return error; } -- GitLab From 5f3531bdbfa66a0aeb2f055749303de84cde79dd Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 16:31:13 +0200 Subject: [PATCH 234/479] add sanitizeBitrateISM() to properly exit when the switched bitarte is not supported; under ISM_BITRATE_SWITCHING --- lib_enc/lib_enc.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 0525c7c1db..4f990a25df 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -78,6 +78,9 @@ static int16_t getInputBufferSize( const Encoder_Struct *st_ivas ); static ivas_error doCommonConfigureChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error doCommonSetterChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ); +#ifdef ISM_BITRATE_SWITCHING +static ivas_error sanitizeBitrateISM( const ENCODER_CONFIG_HANDLE hEncoderConfig ); +#endif static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error bandwidthApiToInternal( const IVAS_ENC_BANDWIDTH maxBandwidth, int16_t *internalMaxBandwidth ); @@ -761,6 +764,12 @@ static ivas_error configureEncoder( } else if ( hEncoderConfig->ivas_format == ISM_FORMAT ) { +#ifdef ISM_BITRATE_SWITCHING + if ( ( error = sanitizeBitrateISM( hEncoderConfig ) ) != IVAS_ERR_OK ) + { + return error; + } +#else if ( hEncoderConfig->ivas_total_brate > IVAS_256k ) { return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too high bitrate for ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); @@ -777,6 +786,7 @@ static ivas_error configureEncoder( { return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 4 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); } +#endif } else if ( hEncoderConfig->ivas_format == SBA_FORMAT ) { @@ -1625,6 +1635,9 @@ static ivas_error setBitrate( { Encoder_Struct *st_ivas; ENCODER_CONFIG_HANDLE hEncoderConfig; +#ifdef ISM_BITRATE_SWITCHING + ivas_error error; +#endif st_ivas = hIvasEnc->st_ivas; hEncoderConfig = st_ivas->hEncoderConfig; @@ -1671,6 +1684,16 @@ static ivas_error setBitrate( } } +#ifdef ISM_BITRATE_SWITCHING + if ( hEncoderConfig->ivas_format == ISM_FORMAT ) + { + if ( ( error = sanitizeBitrateISM( hEncoderConfig ) ) != IVAS_ERR_OK ) + { + return error; + } + } +#endif + st_ivas->codec_mode = MODE1; if ( hEncoderConfig->element_mode_init == EVS_MONO ) @@ -1897,6 +1920,41 @@ static ivas_error sanitizeBandwidth( } +#ifdef ISM_BITRATE_SWITCHING +/*---------------------------------------------------------------------* + * sanitizeBitrateISM() + * + * + *---------------------------------------------------------------------*/ + +static ivas_error sanitizeBitrateISM( + const ENCODER_CONFIG_HANDLE hEncoderConfig ) +{ + if ( hEncoderConfig->ivas_total_brate > IVAS_256k ) + { + return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too high bitrate for ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); + } + + if ( hEncoderConfig->ivas_total_brate < IVAS_16k4 && hEncoderConfig->nchan_inp == 2 ) + { + return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 2 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); + } + + if ( hEncoderConfig->ivas_total_brate < IVAS_24k4 && hEncoderConfig->nchan_inp == 3 ) + { + return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 3 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); + } + + if ( hEncoderConfig->ivas_total_brate < IVAS_24k4 && hEncoderConfig->nchan_inp == 4 ) + { + return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 4 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); + } + + return IVAS_ERR_OK; +} +#endif + + /*---------------------------------------------------------------------* * setBandwidth() * -- GitLab From f8475c1c738bbaa5a622736997d9a087c7bf625a Mon Sep 17 00:00:00 2001 From: kiene Date: Thu, 13 Oct 2022 16:39:27 +0200 Subject: [PATCH 235/479] copy over end-of-frame gain in stereo switching --- lib_dec/ivas_stereo_switching_dec.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index 50b5c22f48..9257f5cc3d 100644 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -1496,6 +1496,7 @@ void stereo_switching_dec( sts[1]->pit_res_max_past = sts[0]->pit_res_max_past; #ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE sts[1]->hTcxDec->L_frameTCX = sts[0]->hTcxDec->L_frameTCX; + sts[1]->hTcxDec->conceal_eof_gain = sts[0]->hTcxDec->conceal_eof_gain; #endif } } -- GitLab From 41867f8f6fe38cc133d815f98b878c0e4b8a14db Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 16:50:07 +0200 Subject: [PATCH 236/479] fix memory deallocation at the necoder + comments --- lib_dec/ivas_ism_param_dec.c | 14 +++++++------- lib_enc/ivas_ism_param_enc.c | 7 ++++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index cde18f55d5..6fef1e4668 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1006,10 +1006,10 @@ void ivas_param_ism_params_to_masa_param_mapping( #ifdef ISM_BITRATE_SWITCHING static ivas_error ivas_ism_format_bitrate_switching( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - const int16_t last_nchan_trans, /* i : last number of SCE channels in the bitstream */ - const ISM_MODE last_ism_mode, /* i : last ISM mode */ - const int16_t num_obj /* i : number of objects in the bitstream */ + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t last_nchan_trans, /* i : last number of SCE channels in the bitstream*/ + const ISM_MODE last_ism_mode, /* i : last ISM mode */ + const int16_t num_obj /* i : number of objects in the bitstream */ ) { int16_t sce_id; @@ -1113,7 +1113,7 @@ static ivas_error ivas_ism_format_bitrate_switching( { /* switching from ParamISM to DiscISM */ - /* close the ParamISM struct */ + /* Deallocate the ParamISM struct */ if ( st_ivas->hDirAC != NULL ) { ivas_param_ism_dec_close( st_ivas->hDirAC, st_ivas->hDecoderConfig->output_config ); @@ -1151,9 +1151,9 @@ static ivas_error ivas_ism_format_bitrate_switching( if ( st_ivas->ism_mode == ISM_MODE_PARAM && last_ism_mode == ISM_MODE_DISC ) { - /* switching from DiscISM to ParamISM */ + /* switching from Discrete ISM to ParamISM */ - /* Initialize the ParamISM struct */ + /* Allocate and initialize the ParamISM struct */ ivas_param_ism_dec_open( st_ivas ); if ( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL ) diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index 508f33ab45..c104c855c7 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -503,9 +503,9 @@ ivas_error ivas_ism_enc_config( } } - if ( ( st_ivas->ism_mode == ISM_MODE_PARAM ) && ( last_ism_mode == ISM_MODE_DISC ) ) + if ( st_ivas->ism_mode == ISM_MODE_PARAM && last_ism_mode == ISM_MODE_DISC ) { - /* Initialize the memory used by ParamISM when switch to Param ISM from Disc ISM */ + /* Allocate and Initialize the memory used by ParamISM when switch from Discrete ISM */ if ( ( error = ivas_param_ism_enc_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; @@ -514,8 +514,9 @@ ivas_error ivas_ism_enc_config( if ( ( st_ivas->ism_mode == ISM_MODE_DISC ) && ( last_ism_mode == ISM_MODE_PARAM ) ) { - /* Reset the memory used by ParamISM when switch to Disc ISM */ + /* Deallocate the memory used by ParamISM when switch to Discrete ISM */ ivas_param_ism_enc_close( st_ivas->hDirAC, st_ivas->hEncoderConfig->input_Fs ); + st_ivas->hDirAC = NULL; } /* destroy the memory of hp20*/ -- GitLab From 70ce38a3a2e9a220772482c1f633489eaea88224 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 13 Oct 2022 17:57:21 +0200 Subject: [PATCH 237/479] integrate CORECODER_BITRATE_SWITCHING into ISM_BITRATE_SWITCHING --- lib_dec/ivas_corecoder_dec_reconfig.c | 45 +++++---- lib_dec/ivas_ism_param_dec.c | 49 ++++++---- lib_enc/ivas_ism_param_enc.c | 128 +++++++++++++++++++++++--- 3 files changed, 174 insertions(+), 48 deletions(-) diff --git a/lib_dec/ivas_corecoder_dec_reconfig.c b/lib_dec/ivas_corecoder_dec_reconfig.c index 4ea39c6e76..cebd170100 100644 --- a/lib_dec/ivas_corecoder_dec_reconfig.c +++ b/lib_dec/ivas_corecoder_dec_reconfig.c @@ -272,31 +272,36 @@ ivas_error ivas_corecoder_dec_reconfig( *-----------------------------------------------------------------*/ /// VE: this could be merged with part of ivas_init_decoder() - if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->nchan_transport == 1 ) - { - /* skip as done in init function */ - } - else if ( st_ivas->nchan_transport == 1 && ( ( st_ivas->renderer_type == RENDERER_DIRAC && st_ivas->hDirAC->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD ) || ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) ) - { - st_ivas->hSCE[0]->hCoreCoder[0]->cna_dirac_flag = 1; - st_ivas->hSCE[0]->hCoreCoder[0]->cng_sba_flag = 1; - } - else if ( st_ivas->nchan_transport == 2 ) +#ifdef ISM_BITRATE_SWITCHING + if ( st_ivas->ivas_format == SBA_FORMAT ) +#endif { - for ( n = 0; n < CPE_CHANNELS; n++ ) + if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->nchan_transport == 1 ) { - st_ivas->hCPE[0]->hCoreCoder[n]->cna_dirac_flag = 0; - st_ivas->hCPE[0]->hCoreCoder[n]->cng_sba_flag = 1; + /* skip as done in init function */ } - } - else - { - for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + else if ( st_ivas->nchan_transport == 1 && ( ( st_ivas->renderer_type == RENDERER_DIRAC && st_ivas->hDirAC->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD ) || ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) ) + { + st_ivas->hSCE[0]->hCoreCoder[0]->cna_dirac_flag = 1; + st_ivas->hSCE[0]->hCoreCoder[0]->cng_sba_flag = 1; + } + else if ( st_ivas->nchan_transport == 2 ) { for ( n = 0; n < CPE_CHANNELS; n++ ) { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cna_dirac_flag = 0; - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 0; + st_ivas->hCPE[0]->hCoreCoder[n]->cna_dirac_flag = 0; + st_ivas->hCPE[0]->hCoreCoder[n]->cng_sba_flag = 1; + } + } + else + { + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cna_dirac_flag = 0; + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 0; + } } } } @@ -317,7 +322,7 @@ ivas_error ivas_corecoder_dec_reconfig( /*-------------------------------------------------------------------* * ivas_hp20_dec_reconfig() * - * Allocate, initalize, and configure HP20 memory handles in case of bitrate switching + * Allocate, initialize, and configure HP20 memory handles in case of bitrate switching *-------------------------------------------------------------------*/ ivas_error ivas_hp20_dec_reconfig( diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index 6fef1e4668..c6c1f99c9c 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1005,32 +1005,44 @@ void ivas_param_ism_params_to_masa_param_mapping( #ifdef ISM_BITRATE_SWITCHING -static ivas_error ivas_ism_format_bitrate_switching( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ - const int16_t last_nchan_trans, /* i : last number of SCE channels in the bitstream*/ - const ISM_MODE last_ism_mode, /* i : last ISM mode */ - const int16_t num_obj /* i : number of objects in the bitstream */ +/*-------------------------------------------------------------------------* + * ivas_ism_bitrate_switching() + * + * + *-------------------------------------------------------------------------*/ + +static ivas_error ivas_ism_bitrate_switching( + Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ + const int16_t nchan_transport_old, /* i : last number of transport channels */ + const ISM_MODE last_ism_mode, /* i : last ISM mode */ + const int16_t num_obj /* i : number of objects in the bitstream */ ) { +#ifndef CORECODER_BITRATE_SWITCHING int16_t sce_id; +#endif ivas_error error; int32_t element_brate_tmp[MAX_NUM_OBJECTS]; error = IVAS_ERR_OK; ivas_ism_config( st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, num_obj, NULL, NULL, NULL, element_brate_tmp, NULL, NULL ); + st_ivas->nSCE = st_ivas->nchan_transport; - if ( st_ivas->nchan_transport > last_nchan_trans ) +#ifdef CORECODER_BITRATE_SWITCHING + ivas_corecoder_dec_reconfig( st_ivas, nchan_transport_old, 0, nchan_transport_old, 0 ); +#else + if ( st_ivas->nchan_transport > nchan_transport_old ) { /* Initialize for new bitrate */ - for ( sce_id = 0; sce_id < last_nchan_trans; sce_id++ ) + for ( sce_id = 0; sce_id < nchan_transport_old; sce_id++ ) { st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ } /* Initialize some memories */ - for ( sce_id = last_nchan_trans; sce_id < st_ivas->nchan_transport; sce_id++ ) + for ( sce_id = nchan_transport_old; sce_id < st_ivas->nchan_transport; sce_id++ ) { if ( ( error = create_sce_dec( st_ivas, sce_id, element_brate_tmp[sce_id] ) ) != IVAS_ERR_OK ) { @@ -1048,17 +1060,21 @@ static ivas_error ivas_ism_format_bitrate_switching( } /* Destroy the core coder memory */ - for ( ; sce_id < last_nchan_trans; sce_id++ ) + for ( ; sce_id < nchan_transport_old; sce_id++ ) { destroy_sce_dec( st_ivas->hSCE[sce_id] ); st_ivas->hSCE[sce_id] = NULL; } } +#endif +#ifdef CORECODER_BITRATE_SWITCHING + ivas_hp20_dec_reconfig( st_ivas, nchan_transport_old ); +#else /* destroy the memory of hp20*/ if ( st_ivas->mem_hp20_out != NULL ) { - for ( sce_id = 0; sce_id < last_nchan_trans; sce_id++ ) + for ( sce_id = 0; sce_id < nchan_transport_old; sce_id++ ) { count_free( st_ivas->mem_hp20_out[sce_id] ); st_ivas->mem_hp20_out[sce_id] = NULL; @@ -1091,7 +1107,7 @@ static ivas_error ivas_ism_format_bitrate_switching( set_f( st_ivas->mem_hp20_out[sce_id], 0.0f, L_HP20_MEM ); } - +#endif /* Initialize the needed renderer struct and destroy the unnecessary renderer struct */ @@ -1218,7 +1234,7 @@ ivas_error ivas_ism_dec_config( ISM_MODE last_ism_mode; ivas_error error; #ifdef ISM_BITRATE_SWITCHING - int16_t last_nchan_trans; + int16_t nchan_transport_old; #endif error = IVAS_ERR_OK; @@ -1229,10 +1245,10 @@ ivas_error ivas_ism_dec_config( last_ism_mode = st_ivas->ism_mode; #ifdef ISM_BITRATE_SWITCHING /* Assumes that num of input objects are constant */ - last_nchan_trans = num_obj; + nchan_transport_old = num_obj; if ( last_ism_mode == ISM_MODE_PARAM ) { - last_nchan_trans = 2; + nchan_transport_old = 2; } #endif @@ -1255,12 +1271,11 @@ ivas_error ivas_ism_dec_config( { #ifdef ISM_BITRATE_SWITCHING /* ISM bit-rate switching */ - if ( ( st_ivas->hDecoderConfig->last_ivas_total_brate != IVAS_SID_5k2 ) && ( st_ivas->hDecoderConfig->last_ivas_total_brate != FRAME_NO_DATA ) ) + if ( st_ivas->hDecoderConfig->last_ivas_total_brate != IVAS_SID_5k2 && st_ivas->hDecoderConfig->last_ivas_total_brate != FRAME_NO_DATA ) { if ( ( st_ivas->ism_mode != last_ism_mode ) || ( st_ivas->hDecoderConfig->ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate ) ) { - ivas_ism_format_bitrate_switching( st_ivas, last_nchan_trans, last_ism_mode, num_obj ); - st_ivas->nSCE = st_ivas->nchan_transport; + ivas_ism_bitrate_switching( st_ivas, nchan_transport_old, last_ism_mode, num_obj ); } } #else diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index c104c855c7..a77f6d3615 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -42,6 +42,10 @@ #include "wmops.h" +#ifdef CORECODER_BITRATE_SWITCHING +static ivas_error ivas_hp20_reconfig( Encoder_Struct *st_ivas, const int16_t nchan_hp20_old ); +#endif + /*------------------------------------------------------------------------- * Local function definitions *------------------------------------------------------------------------*/ @@ -416,26 +420,33 @@ ivas_error ivas_ism_enc_config( ivas_error error; ISM_MODE last_ism_mode; #ifdef ISM_BITRATE_SWITCHING - int16_t last_nSCE; +#ifdef CORECODER_BITRATE_SWITCHING + int16_t nchan_transport_old; +#else + int16_t nSCE_old, nchan_transport_old; int16_t sce_id, n; +#endif #endif error = IVAS_ERR_OK; - last_ism_mode = st_ivas->ism_mode; -#ifdef ISM_BITRATE_SWITCHING - last_nSCE = st_ivas->nSCE; -#endif /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( st_ivas->hEncoderConfig->nchan_inp, st_ivas->hEncoderConfig->ivas_total_brate ); #ifdef ISM_BITRATE_SWITCHING - /* ISM bit-rate switching */ + /* ISM bit-rate switching */ if ( ( st_ivas->ism_mode != last_ism_mode ) || ( st_ivas->hEncoderConfig->ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate ) ) { int32_t element_brate_tmp[MAX_NUM_OBJECTS]; +#ifndef CORECODER_BITRATE_SWITCHING Indice *ind_list_sce, *ind_list_metadata; +#endif + +#ifndef CORECODER_BITRATE_SWITCHING + nSCE_old = st_ivas->nSCE; +#endif + nchan_transport_old = st_ivas->nchan_transport; /* Reset and Initialize */ if ( st_ivas->ism_mode == ISM_MODE_PARAM ) @@ -452,10 +463,13 @@ ivas_error ivas_ism_enc_config( ivas_ism_config( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hEncoderConfig->nchan_inp, NULL, NULL, NULL, element_brate_tmp, NULL, NULL ); - if ( st_ivas->nSCE > last_nSCE ) +#ifdef CORECODER_BITRATE_SWITCHING + ivas_corecoder_enc_reconfig( st_ivas, nchan_transport_old, 0, nchan_transport_old ); +#else + if ( st_ivas->nSCE > nSCE_old ) { /* Reconfigure the core coders */ - for ( sce_id = 0; sce_id < last_nSCE; sce_id++ ) + for ( sce_id = 0; sce_id < nSCE_old; sce_id++ ) { copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; @@ -466,7 +480,7 @@ ivas_error ivas_ism_enc_config( ind_list_sce = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr->ind_list; ind_list_metadata = st_ivas->hSCE[0]->hMetaData->ind_list; - for ( sce_id = last_nSCE; sce_id < st_ivas->nSCE; sce_id++ ) + for ( sce_id = nSCE_old; sce_id < st_ivas->nSCE; sce_id++ ) { /* Initialize the Core Coder */ if ( ( error = create_sce_enc( st_ivas, sce_id, element_brate_tmp[sce_id] ) ) != IVAS_ERR_OK ) @@ -493,7 +507,7 @@ ivas_error ivas_ism_enc_config( } /* Delete the extra memory */ - for ( sce_id = st_ivas->nSCE; sce_id < last_nSCE; sce_id++ ) + for ( sce_id = st_ivas->nSCE; sce_id < nSCE_old; sce_id++ ) { if ( st_ivas->hSCE[sce_id] != NULL ) { @@ -502,6 +516,7 @@ ivas_error ivas_ism_enc_config( } } } +#endif if ( st_ivas->ism_mode == ISM_MODE_PARAM && last_ism_mode == ISM_MODE_DISC ) { @@ -519,10 +534,13 @@ ivas_error ivas_ism_enc_config( st_ivas->hDirAC = NULL; } +#ifdef CORECODER_BITRATE_SWITCHING + ivas_hp20_reconfig( st_ivas, nchan_transport_old ); +#else /* destroy the memory of hp20*/ if ( st_ivas->mem_hp20_in != NULL ) { - for ( sce_id = 0; sce_id < last_nSCE; sce_id++ ) + for ( sce_id = 0; sce_id < nSCE_old; sce_id++ ) { count_free( st_ivas->mem_hp20_in[sce_id] ); st_ivas->mem_hp20_in[sce_id] = NULL; @@ -556,6 +574,7 @@ ivas_error ivas_ism_enc_config( set_f( st_ivas->mem_hp20_in[sce_id], 0.0f, L_HP20_MEM ); } +#endif } #else /* ISM format switching */ @@ -568,3 +587,90 @@ ivas_error ivas_ism_enc_config( return error; } + + +#ifdef CORECODER_BITRATE_SWITCHING +// VE: this is the same function as at the decoder -> harmonize them to a new file ivas_corecoder_reconfig.c +/*-------------------------------------------------------------------* + * ivas_hp20_dec_reconfig() + * + * Allocate, initialize, and configure HP20 memory handles in case of bitrate switching + *-------------------------------------------------------------------*/ + +static ivas_error ivas_hp20_reconfig( + Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ + const int16_t nchan_hp20_old /* i : number of HP20 filters in previous frame */ +) +{ + int16_t i, nchan_hp20; + float **old_mem_hp20_out; + ivas_error error; + + error = IVAS_ERR_OK; + + /*-----------------------------------------------------------------* + * HP20 memories + *-----------------------------------------------------------------*/ + + nchan_hp20 = getNumChanAnalysis( st_ivas ); + + if ( nchan_hp20 > nchan_hp20_old ) + { + /* save old mem_hp_20 pointer */ + old_mem_hp20_out = st_ivas->mem_hp20_in; + st_ivas->mem_hp20_in = NULL; + + if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( nchan_hp20 * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + + for ( i = 0; i < nchan_hp20_old; i++ ) + { + st_ivas->mem_hp20_in[i] = old_mem_hp20_out[i]; + old_mem_hp20_out[i] = NULL; + } + /* create additional hp20 memories */ + for ( ; i < nchan_hp20; i++ ) + { + if ( ( st_ivas->mem_hp20_in[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + + set_f( st_ivas->mem_hp20_in[i], 0.0f, L_HP20_MEM ); + } + + count_free( old_mem_hp20_out ); + old_mem_hp20_out = NULL; + } + else if ( nchan_hp20 < nchan_hp20_old ) + { + /* save old mem_hp_20 pointer */ + old_mem_hp20_out = st_ivas->mem_hp20_in; + st_ivas->mem_hp20_in = NULL; + + if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( nchan_hp20 * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + + for ( i = 0; i < nchan_hp20; i++ ) + { + st_ivas->mem_hp20_in[i] = old_mem_hp20_out[i]; + old_mem_hp20_out[i] = NULL; + } + /* remove superfluous hp20 memories */ + for ( ; i < nchan_hp20_old; i++ ) + { + count_free( old_mem_hp20_out[i] ); + old_mem_hp20_out[i] = NULL; + } + + count_free( old_mem_hp20_out ); + old_mem_hp20_out = NULL; + } + + return error; +} +#endif -- GitLab From e4f5ffeb71496eedb5541c362c4f995e2a1b567b Mon Sep 17 00:00:00 2001 From: Eleni Fotopoulou Date: Fri, 14 Oct 2022 09:02:22 +0200 Subject: [PATCH 238/479] [fix] under FIX_I13_TCX_TNS_ISSUE for cases where coded bandwidth is lower than output bandwidth --- lib_dec/dec_tcx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 2934a2309c..8f6ee52fed 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1559,7 +1559,7 @@ void decoder_tcx_tns( #ifndef FIX_I13_TCX_TNS_ISSUE tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); #else - if ( st->element_mode == EVS_MONO ) /* TBC: this is temporary to maintain EVS BE, this is a bug and should be fixed also for EVS (see issue 13) */ + if ( st->element_mode == EVS_MONO || L_spec < L_frameTCX ) /* TBC: this is temporary to maintain EVS BE, this is a bug and should be fixed also for EVS (see issue 13) */ { tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); } -- GitLab From 8734f88fd6157180dc25230f45085be17f04710d Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Fri, 14 Oct 2022 10:38:45 +0200 Subject: [PATCH 239/479] Fix Visual Studio warnings --- apps/renderer.c | 43 +++++++++++++------------------------------ lib_com/ivas_prot.h | 2 +- 2 files changed, 14 insertions(+), 31 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index 3369dfcee2..dc31bf3a64 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -192,9 +192,6 @@ typedef struct CmdlnArgs static IVAS_REND_AudioConfig ambisonicsOrderToEnum( int32_t order ); -static IVAS_REND_AudioConfig speakerLayoutCicpToEnum( - int32_t cicpIndex ); - static bool parseInConfig( char **optionValues, CmdlnArgs *args ); @@ -322,7 +319,7 @@ static IVAS_REND_ReadOnlyAudioBuffer getReadOnlySubBuffer( IVAS_REND_AudioBuffer IVAS_REND_ReadOnlyAudioBuffer subBuffer; subBuffer.config = buffer.config; - subBuffer.config.numChannels = numChannels; + subBuffer.config.numChannels = (int16_t) numChannels; subBuffer.data = buffer.data + subBuffer.config.numSamplesPerChannel * chBeginIdx; return subBuffer; @@ -409,7 +406,7 @@ int32_t main( int32_t argc, char **argv ) char masaMetadataFilePath[FILENAME_MAX]; AudioFileReader *audioReader = NULL; AudioFileWriter *audioWriter; - int16_t inBufferSize; + int32_t inBufferSize; int32_t outBufferSize; int16_t *inpInt16Buffer; float *inFloatBuffer; @@ -422,7 +419,6 @@ int32_t main( int32_t argc, char **argv ) int16_t delayNumSamples_orig = 0; int16_t zeroPad = 0; int32_t delayTimeScale = 0; - int32_t i; ivas_error error = IVAS_ERR_OK; #ifdef WMOPS size_t SRAM_size; @@ -438,7 +434,7 @@ int32_t main( int32_t argc, char **argv ) #endif CmdlnArgs args = parseCmdlnArgs( argc, argv ); - const int16_t frameSize_smpls = (int16_t) ( 20 * args.sampleRate / 1000 ); + const int32_t frameSize_smpls = 20 * args.sampleRate / 1000; positionProvider = IsmPositionProvider_open(); @@ -475,7 +471,7 @@ int32_t main( int32_t argc, char **argv ) /* Set up reading metadata files */ positionProvider->numObjects = args.inConfig.numAudioObjects; - for ( i = 0; i < positionProvider->numObjects; ++i ) + for ( int32_t i = 0; i < positionProvider->numObjects; ++i ) { positionProvider->ismReaders[i] = IsmFileReader_open( args.metaDataFiles[i] ); } @@ -604,12 +600,12 @@ int32_t main( int32_t argc, char **argv ) outInt16Buffer = count_malloc( outBufferSize * sizeof( int16_t ) ); outFloatBuffer = count_malloc( outBufferSize * sizeof( float ) ); - inBuffer.config.numSamplesPerChannel = frameSize_smpls; - inBuffer.config.numChannels = totalNumInChannels; + inBuffer.config.numSamplesPerChannel = (int16_t) frameSize_smpls; + inBuffer.config.numChannels = (int16_t) totalNumInChannels; inBuffer.data = inFloatBuffer; - outBuffer.config.numSamplesPerChannel = frameSize_smpls; - outBuffer.config.numChannels = numOutChannels; + outBuffer.config.numSamplesPerChannel = (int16_t) frameSize_smpls; + outBuffer.config.numChannels = (int16_t) numOutChannels; outBuffer.data = outFloatBuffer; #ifdef WMOPS @@ -632,7 +628,7 @@ int32_t main( int32_t argc, char **argv ) num_in_channels = inBuffer.config.numChannels; /* Read the input data */ - if ( ( error = AudioFileReader_read( audioReader, inpInt16Buffer, inBufferSize, &numSamplesRead ) ) != IVAS_ERR_OK ) + if ( ( error = AudioFileReader_read( audioReader, inpInt16Buffer, (int16_t) inBufferSize, &numSamplesRead ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError reading from file %s\n", audioFilePath ); exit( -1 ); @@ -759,7 +755,7 @@ int32_t main( int32_t argc, char **argv ) } else { - delayNumSamples -= outBufferSize; + delayNumSamples -= (int16_t) outBufferSize; } frame++; @@ -900,7 +896,7 @@ static bool parseInConfig( char **optionValues, CmdlnArgs *args ) /* If input format is objects, parse the characters after "ISM" to get number of objects */ { char *ptr = NULL; - inConfig.numAudioObjects = strtol( optionValues[0] + 3, &ptr, 10 ); + inConfig.numAudioObjects = (uint16_t) strtol( optionValues[0] + 3, &ptr, 10 ); if ( ptr == NULL || *ptr != '\0' ) { /* Failed to parse string as a number */ @@ -1177,7 +1173,7 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio /* TODO(sgi): Parsing currently depends on order in which the options are given by the user. * This causes a lot of errors and is unmaintainable for options that depend on each other. - * + * * Solution: save all option values here as strings, parse strings afterwards once all values are known. */ @@ -1272,7 +1268,7 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio break; case CmdLnOptionId_inputGain: assert( numOptionValues == 1 ); - args->inputGainGlobal = atof( optionValues[0] ); /* TODO(sgi): atof doesn't detect if string doesn't represent a number, just returns zero */ + args->inputGainGlobal = (float) atof( optionValues[0] ); /* TODO(sgi): atof doesn't detect if string doesn't represent a number, just returns zero */ break; default: assert( 0 && "This should be unreachable - all command line options should be explicitly handled." ); @@ -1629,19 +1625,6 @@ static void parseUint8( const char *line, uint8_t *ret ) } } -static void parseUint16( const char *line, uint16_t *ret ) -{ - char *ptr; - ptr = NULL; - - *ret = (uint16_t) strtol( line, &ptr, 10 ); - if ( ptr == NULL || *ptr != '\0' ) - { - fprintf( stderr, "Cannot parse string \"%s\" as an integer value\n", line ); - exit( -1 ); - } -} - static int8_t parseUint32( const char *line, uint32_t *ret ) { char *ptr; diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 6cada9b306..45458582e4 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3128,7 +3128,7 @@ void ivas_sba_mtx_mult( float output_f[][L_FRAME48k], /* i/o: synthesized core-corder transport channels/DirAC output */ const int16_t output_frame, /* i : frame length per channel */ const int16_t nchan_in, /* i : Number of ambisonic channels */ - IVAS_OUTPUT_SETUP output_setup, /* i : Output configuration */ + const IVAS_OUTPUT_SETUP output_setup, /* i : Output configuration */ const float *mtx_hoa_decoder /* o : HOA decoding matrix */ ); #endif -- GitLab From 4acd8d18e4fb0c556fc218afa994ee51c5f986eb Mon Sep 17 00:00:00 2001 From: Srikanth Korse Date: Sat, 15 Oct 2022 10:46:32 +0200 Subject: [PATCH 240/479] addition of switching profile file for ISM --- scripts/switchPaths/sw_24k4_256k.bin | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 scripts/switchPaths/sw_24k4_256k.bin diff --git a/scripts/switchPaths/sw_24k4_256k.bin b/scripts/switchPaths/sw_24k4_256k.bin new file mode 100644 index 0000000000..dd29526180 --- /dev/null +++ b/scripts/switchPaths/sw_24k4_256k.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73897d458d4bc2cea9a9cc55f321edd0f11d28275ba24d45de8295a2fc772833 +size 41760 -- GitLab From 43c38ed7b71effd9405c438931fde21c00a7df64 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 12 Oct 2022 12:14:48 +0200 Subject: [PATCH 241/479] Fix feature switch --- lib_dec/ivas_stat_dec.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 2284f9d09d..766b5d386d 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1296,7 +1296,7 @@ typedef struct ivas_binaural_rendering_struct * Head tracking data structure *----------------------------------------------------------------------------------*/ -#ifdef EXT_RENDERER +#ifndef EXT_RENDERER /* Quaternion type for head orientation */ typedef struct Quaternion_struct { -- GitLab From f90903478e049e01db31509f4b19c7568919460d Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 17 Oct 2022 18:44:30 +0200 Subject: [PATCH 242/479] maintenance of the SBA SPAR functions; under #define SBA_SPAR_HARM --- lib_com/ivas_cov_smooth.c | 40 ++++++++++++-- lib_com/ivas_prot.h | 35 ++++++++++++- lib_com/ivas_spar_com.c | 40 +++++++------- lib_com/ivas_stat_com.h | 4 +- lib_com/options.h | 1 + lib_enc/ivas_enc_cov_handler.c | 62 ++++++++++++++++++---- lib_enc/ivas_spar_encoder.c | 55 +++++++++++++++++++- lib_enc/ivas_spar_md_enc.c | 95 ++++++++++++++++++++++++++++++---- lib_enc/ivas_stat_enc.h | 5 +- 9 files changed, 290 insertions(+), 47 deletions(-) diff --git a/lib_com/ivas_cov_smooth.c b/lib_com/ivas_cov_smooth.c index 507b7cf0cd..4584303293 100644 --- a/lib_com/ivas_cov_smooth.c +++ b/lib_com/ivas_cov_smooth.c @@ -169,22 +169,36 @@ void ivas_spar_covar_smooth_enc_close( static void ivas_compute_smooth_cov( ivas_cov_smooth_state_t *hCovState, +#ifndef SBA_SPAR_HARM ivas_cov_smooth_in_buf_t *pIn_buf, +#endif ivas_filterbank_t *pFb, float *pCov_buf[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *pPrior_cov_buf[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], const float fac, const int16_t start_band, - const int16_t end_band ) + const int16_t end_band +#ifdef SBA_SPAR_HARM + , + const int16_t num_ch, + const int16_t transient_det +#endif +) { int16_t i, j, k; int16_t prev_idx = hCovState->prior_bank_idx; +#ifndef SBA_SPAR_HARM int16_t num_ch = pIn_buf->num_ch; +#endif float factor = 0; assert( end_band <= pFb->filterbank_num_bands ); +#ifdef SBA_SPAR_HARM + if ( prev_idx == -1 || transient_det == 1 ) +#else if ( prev_idx == -1 || pIn_buf->reset_cov == 1 ) +#endif { for ( i = 0; i < num_ch; i++ ) { @@ -229,22 +243,42 @@ static void ivas_compute_smooth_cov( void ivas_cov_smooth_process( ivas_cov_smooth_state_t *hCovState, /* i/o: Covariance state handle */ +#ifdef SBA_SPAR_HARM + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], +#else ivas_cov_smooth_in_buf_t *pIn_buf, +#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, - const int16_t end_band ) + const int16_t end_band +#ifdef SBA_SPAR_HARM + , + const int16_t num_ch, + const int16_t transient_det +#endif +) { int16_t i, j; +#ifndef SBA_SPAR_HARM int16_t num_ch = pIn_buf->num_ch; +#endif int16_t num_bands = end_band - start_band; - ivas_compute_smooth_cov( hCovState, pIn_buf, pFb, pIn_buf->cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band ); +#ifdef SBA_SPAR_HARM + ivas_compute_smooth_cov( hCovState, pFb, cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band, num_ch, transient_det ); +#else + ivas_compute_smooth_cov( hCovState, pFb, pIn_buf->cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band, num_ch, transient_det ); +#endif for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < num_ch; j++ ) { +#ifdef SBA_SPAR_HARM + mvr2r( &cov_real[i][j][start_band], &hCovState->pPrior_cov_real[i][j][start_band], num_bands ); +#else mvr2r( &pIn_buf->cov_real[i][j][start_band], &hCovState->pPrior_cov_real[i][j][start_band], num_bands ); +#endif } } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index d70d4f1548..eb79d71c38 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3910,9 +3910,20 @@ void ivas_spar_md_enc_close( ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_state_t *hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ +#ifdef SBA_SPAR_HARM + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], +#else ivas_spar_md_enc_in_buf_t *pIn_buf, +#endif BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ +#ifdef SBA_SPAR_HARM + int16_t dtx_vad, + const int16_t bwidth, + const int16_t nchan_inp, +#else const int16_t dtx_silence_mode, +#endif const int16_t sba_order /* i : Ambisonic (SBA) order */ ); @@ -4048,12 +4059,25 @@ void ivas_spar_covar_enc_close( void ivas_enc_cov_handler_process( ivas_enc_cov_handler_state_t *hCovEnc, /* i/o: SPAR Covar. encoder handle */ +#ifdef SBA_SPAR_HARM + float **ppIn_FR_real, + float **ppIn_FR_imag, + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], +#else ivas_enc_cov_handler_in_buf_t *pIn_buf, float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], +#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, - const int16_t end_band ); + const int16_t end_band +#ifdef SBA_SPAR_HARM + ,const int16_t nchan_inp, + const int16_t dtx_vad, + const int16_t transient_det +#endif +); ivas_error ivas_spar_covar_smooth_enc_open( ivas_cov_smooth_state_t **hCovState, /* i/o: SPAR Covar. smoothing handle */ @@ -4069,10 +4093,19 @@ void ivas_spar_covar_smooth_enc_close( void ivas_cov_smooth_process( ivas_cov_smooth_state_t *hCovState, /* i/o: Covariance state handle */ +#ifdef SBA_SPAR_HARM + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], +#else ivas_cov_smooth_in_buf_t *pIn_buf, +#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, const int16_t end_band +#ifdef SBA_SPAR_HARM + , + const int16_t num_ch, + const int16_t transient_det +#endif ); /* Transient detector module */ diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index eec2e5f09a..44e63981a9 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -75,6 +75,7 @@ * Static functions declaration *------------------------------------------------------------------------------------------*/ + static void ivas_get_pred_coeffs( float *pppCov_mat_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float ppPred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS], float ppDM_Fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS], const int16_t in_chans, const int16_t start_band, const int16_t end_band, const int16_t active_w, const int16_t dtx_vad, const int16_t from_dirac ); static void ivas_reorder_array( float in_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH][IVAS_MAX_NUM_BANDS], const int16_t in_chans, const int16_t order[IVAS_SPAR_MAX_CH], float ***mixer_mat, const int16_t start_band, const int16_t end_band ); @@ -448,7 +449,7 @@ int16_t ivas_get_sba_num_TCs( *-----------------------------------------------------------------------------------------*/ static void ivas_get_pred_coeffs( - float *pppCov_mat_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float ppPred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS], float ppDM_Fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS], const int16_t in_chans, @@ -473,7 +474,7 @@ static void ivas_get_pred_coeffs( set_zero( pPred_temp, IVAS_MAX_NUM_BANDS ); for ( k = start_band; k < end_band; k++ ) { - div_factor[k] = max( 1e-20f, pppCov_mat_re[0][0][k] ); + div_factor[k] = max( 1e-20f, cov_real[0][0][k] ); div_factor[k] = 1 / div_factor[k]; } @@ -481,7 +482,7 @@ static void ivas_get_pred_coeffs( { for ( k = start_band; k < end_band; k++ ) { - ppPred_coeffs_re[i][k] = pppCov_mat_re[i + 1][0][k] * div_factor[k]; + ppPred_coeffs_re[i][k] = cov_real[i + 1][0][k] * div_factor[k]; IVAS_CALCULATE_SQ_ABS_N( ppPred_coeffs_re[i][k], abs_value ); @@ -519,7 +520,7 @@ static void ivas_get_pred_coeffs( { for ( k = start_band; k < end_band; k++ ) { - IVAS_CALCULATE_SQ_ABS_N( pppCov_mat_re[i][0][k], abs_value ); + IVAS_CALCULATE_SQ_ABS_N( cov_real[i][0][k], abs_value ); dm_alpha[k] += abs_value; } } @@ -535,7 +536,7 @@ static void ivas_get_pred_coeffs( { for ( k = start_band; k < end_band; k++ ) { - dm_v_re[i][k] = pppCov_mat_re[i + 1][0][k] * div_factor[k]; + dm_v_re[i][k] = cov_real[i + 1][0][k] * div_factor[k]; } } @@ -558,7 +559,7 @@ static void ivas_get_pred_coeffs( { float re; - IVAS_RMULT_FLOAT( pppCov_mat_re[j + 1][k][b], dm_v_re[k - 1][b], re ); + IVAS_RMULT_FLOAT( cov_real[j + 1][k][b], dm_v_re[k - 1][b], re ); real[j] += re; } } @@ -570,7 +571,7 @@ static void ivas_get_pred_coeffs( dm_beta_re += re; } - dm_w = pppCov_mat_re[0][0][b]; + dm_w = cov_real[0][0][b]; den_f = max( dm_w, 1e-20f ); passive_g = dm_alpha[b] / den_f; @@ -581,7 +582,7 @@ static void ivas_get_pred_coeffs( for ( k = 1; k < in_chans; k++ ) { - dm_y += pppCov_mat_re[k][k][b]; + dm_y += cov_real[k][k][b]; } den_f = max( dm_y, 1e-20f ); den_f = max( den_f, w_norm_fac * dm_w ); @@ -634,7 +635,7 @@ static void ivas_get_pred_coeffs( *-----------------------------------------------------------------------------------------*/ static void ivas_get_Wscaling_factor( - float *pppCov_mat_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float pred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS], float ***mixer_mat, const int16_t start_band, @@ -667,9 +668,9 @@ static void ivas_get_Wscaling_factor( { float Gw_sq, g_sq = 0; - ivas_calc_post_pred_per_band( pppCov_mat_re, mixer_mat, num_ch, pNum_dmx[b * bands_bw], b, postpred_cov_re ); + ivas_calc_post_pred_per_band( cov_real, mixer_mat, num_ch, pNum_dmx[b * bands_bw], b, postpred_cov_re ); - Gw_sq = pppCov_mat_re[0][0][b] / max( postpred_cov_re[0][0], IVAS_FLT_EPS ); + Gw_sq = cov_real[0][0][b] / max( postpred_cov_re[0][0], IVAS_FLT_EPS ); for ( ch = 0; ch < num_ch - 1; ch++ ) { @@ -861,7 +862,7 @@ static void ivas_reorder_array( *-----------------------------------------------------------------------------------------*/ static void ivas_calc_post_pred_per_band( - float *pppCov_mat_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float ***mixer_mat, const int16_t num_ch, const int16_t num_dmx, @@ -898,7 +899,7 @@ static void ivas_calc_post_pred_per_band( temp_mat[i][j] = 0; for ( k = 0; k < num_ch; k++ ) { - IVAS_RMULT_FLOAT( pppCov_mat_re[i][k][band_idx], dmx_mat_conj[k][j], tmp_re ); + IVAS_RMULT_FLOAT( cov_real[i][k][band_idx], dmx_mat_conj[k][j], tmp_re ); temp_mat[i][j] += tmp_re; } } @@ -1239,7 +1240,7 @@ static void ivas_calc_c_coeffs_per_band( void ivas_calc_c_p_coeffs( ivas_spar_md_t *pSparMd, - float *pppCov_mat_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], const int16_t i_ts, float ***mixer_mat, const int16_t num_ch, @@ -1254,7 +1255,8 @@ void ivas_calc_c_p_coeffs( if ( num_dmx != num_ch ) { - ivas_calc_post_pred_per_band( pppCov_mat_re, mixer_mat, num_ch, num_dmx, band_idx, postpred_cov_re ); + ivas_calc_post_pred_per_band( cov_real, mixer_mat, num_ch, num_dmx, band_idx, postpred_cov_re ); + if ( num_dmx != 1 ) { ivas_calc_c_coeffs_per_band( pSparMd, i_ts, postpred_cov_re, num_ch, num_dmx, band_idx, dtx_vad ); @@ -1524,7 +1526,7 @@ static int16_t ivas_is_mat_inv( *-----------------------------------------------------------------------------------------*/ void ivas_compute_spar_params( - float *pppCov_mat_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float dm_fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS], const int16_t i_ts, float ***mixer_mat, @@ -1542,7 +1544,7 @@ void ivas_compute_spar_params( float pred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; int16_t b, i, ndm; - ivas_get_pred_coeffs( pppCov_mat_re, pred_coeffs_re, dm_fv_re, num_ch, start_band, end_band, active_w, dtx_vad, from_dirac ); + ivas_get_pred_coeffs( cov_real, pred_coeffs_re, dm_fv_re, num_ch, start_band, end_band, active_w, dtx_vad, from_dirac ); #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n Prediction Coefficients:\n"); @@ -1573,7 +1575,7 @@ void ivas_compute_spar_params( fprintf(stderr, "\n\n");*/ #endif - ivas_get_Wscaling_factor( pppCov_mat_re, pred_coeffs_re, mixer_mat, start_band, end_band, dtx_vad, num_ch, + ivas_get_Wscaling_factor( cov_real, pred_coeffs_re, mixer_mat, start_band, end_band, dtx_vad, num_ch, hSparCfg->num_dmx_chans_per_band, bands_bw, active_w, pWscale ); for ( b = start_band; b < end_band; b++ ) @@ -1596,7 +1598,7 @@ void ivas_compute_spar_params( if ( ndm != num_ch ) { - ivas_calc_c_p_coeffs( hSparMd, pppCov_mat_re, i_ts, mixer_mat, num_ch, ndm, b, dtx_vad, 1, 0 ); + ivas_calc_c_p_coeffs( hSparMd, cov_real, i_ts, mixer_mat, num_ch, ndm, b, dtx_vad, 1, 0 ); #ifdef SPAR_HOA_DBG /* if (b == 0) */ diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index e19d30dc71..d8b10257e9 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -351,6 +351,7 @@ typedef struct ivas_cov_smooth_cfg_t } ivas_cov_smooth_cfg_t; +#ifndef SBA_SPAR_HARM typedef struct ivas_cov_smooth_in_buf_t { float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; @@ -358,6 +359,7 @@ typedef struct ivas_cov_smooth_in_buf_t int16_t reset_cov; } ivas_cov_smooth_in_buf_t; +#endif /* SPAR bitrate constant table structure */ typedef struct ivas_spar_br_table_t @@ -371,7 +373,7 @@ typedef struct ivas_spar_br_table_t ivas_spar_pmx_strings_t dmx_str; int16_t active_w; int16_t tmode; - int32_t evs_brs[FOA_CHANNELS][3]; + int32_t evs_brs[FOA_CHANNELS][3]; // VE: rename to core_brs int16_t q_lvls[MAX_QUANT_STRATS][NUM_MD_Q_COEFS_SET]; int16_t td_ducking; int16_t agc_bits_ch_idx; /* 0-3, Indicates core-coder channel index from which AGC bits have been taken from*/ diff --git a/lib_com/options.h b/lib_com/options.h index 307b1126d1..0e4dc4549e 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -153,6 +153,7 @@ #define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ +#define SBA_SPAR_HARM /* maintenance of the SBA SPAR functions */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_enc/ivas_enc_cov_handler.c b/lib_enc/ivas_enc_cov_handler.c index 1cc9e404d9..907b8c5908 100644 --- a/lib_enc/ivas_enc_cov_handler.c +++ b/lib_enc/ivas_enc_cov_handler.c @@ -55,7 +55,6 @@ static void ivas_band_cov( float **ppIn_FR_real, float **ppIn_FR_imag, const int16_t num_chans, const int16_t num_bins, int16_t stride, float **pFb_bin_to_band, const int16_t *pFb_start_bin_per_band, const int16_t *pFb_active_bins_per_band, const int16_t start_band, const int16_t end_band, float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH] ); - /*------------------------------------------------------------------------- * ivas_spar_covar_enc_open() * @@ -142,20 +141,44 @@ void ivas_spar_covar_enc_close( void ivas_enc_cov_handler_process( ivas_enc_cov_handler_state_t *hCovEnc, /* i/o: SPAR Covar. encoder handle */ +#ifdef SBA_SPAR_HARM + float **ppIn_FR_real, + float **ppIn_FR_imag, + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], +#else ivas_enc_cov_handler_in_buf_t *pIn_buf, float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], +#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, - const int16_t end_band ) + const int16_t end_band +#ifdef SBA_SPAR_HARM + , + const int16_t num_ch, + const int16_t dtx_vad, + const int16_t transient_det +#endif +) { int16_t i, j; +#ifdef SBA_SPAR_HARM + int16_t dtx_cov_flag; + + dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; +#else ivas_cov_smooth_in_buf_t pCov_in_buf; int16_t num_ch = pIn_buf->num_ch; pCov_in_buf.num_ch = num_ch; +#endif +#ifdef SBA_SPAR_HARM + ivas_band_cov( ppIn_FR_real, ppIn_FR_imag, num_ch, hCovEnc->num_bins, +#else ivas_band_cov( pIn_buf->ppIn_FR_real, pIn_buf->ppIn_FR_imag, pIn_buf->num_ch, hCovEnc->num_bins, +#endif pFb->fb_bin_to_band.short_stride, pFb->fb_bin_to_band.pp_short_stride_bin_to_band, pFb->fb_bin_to_band.p_short_stride_start_bin_per_band, @@ -190,28 +213,36 @@ void ivas_enc_cov_handler_process( { for ( j = 0; j < num_ch; j++ ) { +#ifndef SBA_SPAR_HARM pCov_in_buf.cov_real[i][j] = cov_real[i][j]; - +#endif mvr2r( cov_real[i][j], cov_dtx_real[i][j], pFb->filterbank_num_bands ); } } - pCov_in_buf.reset_cov = 0; - if ( pIn_buf->transient_det == 1 ) - { - pCov_in_buf.reset_cov = 1; - } - +#ifdef SBA_SPAR_HARM + ivas_cov_smooth_process( hCovEnc->pCov_state, cov_real, pFb, start_band, end_band, num_ch, transient_det ); +#else ivas_cov_smooth_process( hCovEnc->pCov_state, &pCov_in_buf, pFb, start_band, end_band ); +#endif +#ifdef SBA_SPAR_HARM + if ( dtx_cov_flag == 0 ) +#else if ( pIn_buf->dtx_cov_flag == 0 ) +#endif { for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < num_ch; j++ ) { +#ifdef SBA_SPAR_HARM + mvr2r( cov_real[i][j], hCovEnc->pCov_dtx_state->pPrior_cov_real[i][j], pFb->filterbank_num_bands ); + mvr2r( cov_real[i][j], cov_dtx_real[i][j], pFb->filterbank_num_bands ); +#else mvr2r( pCov_in_buf.cov_real[i][j], hCovEnc->pCov_dtx_state->pPrior_cov_real[i][j], pFb->filterbank_num_bands ); mvr2r( pCov_in_buf.cov_real[i][j], cov_dtx_real[i][j], pFb->filterbank_num_bands ); +#endif } } @@ -219,9 +250,15 @@ void ivas_enc_cov_handler_process( } else { - +#ifdef SBA_SPAR_HARM + if ( transient_det == 0 ) +#else if ( pIn_buf->transient_det == 0 ) +#endif { +#ifdef SBA_SPAR_HARM + ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, cov_dtx_real, pFb, start_band, end_band, num_ch, transient_det ); +#else for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < num_ch; j++ ) @@ -232,12 +269,16 @@ void ivas_enc_cov_handler_process( pCov_in_buf.reset_cov = 0; ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, &pCov_in_buf, pFb, start_band, end_band ); +#endif hCovEnc->prior_dtx_present = 1; } else { if ( hCovEnc->prior_dtx_present == 0 ) { +#ifdef SBA_SPAR_HARM + ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, cov_dtx_real, pFb, start_band, end_band, num_ch, transient_det ); +#else for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < num_ch; j++ ) @@ -248,6 +289,7 @@ void ivas_enc_cov_handler_process( pCov_in_buf.reset_cov = 1; ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, &pCov_in_buf, pFb, start_band, end_band ); +#endif hCovEnc->prior_dtx_present = 1; } else diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 5c4e834e61..9cf149f2a3 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -316,6 +316,7 @@ ivas_error ivas_spar_enc( return error; } +#ifndef SBA_SPAR_HARM /*-----------------------------------------------------------------------------------------* * Function ivas_spar_enc_get_windowed_fr() * @@ -377,7 +378,7 @@ static void ivas_spar_enc_get_windowed_fr( return; } - +#endif /*-----------------------------------------------------------------------------------------* * Function ivas_spar_enc_process() @@ -395,13 +396,21 @@ static ivas_error ivas_spar_enc_process( { float pcm_tmp[IVAS_SPAR_MAX_CH][L_FRAME48k * 2]; float *p_pcm_tmp[IVAS_SPAR_MAX_CH]; +#ifdef SBA_SPAR_HARM + int16_t i, j, b, i_ts, input_frame, transient_det; +#else int16_t i, j, k, b, i_ts, input_frame, num_bands_bw; +#endif int16_t dtx_vad, dtx_cov_flag, dtx_silence_mode; int32_t ivas_total_brate, input_Fs; +#ifndef SBA_SPAR_HARM ivas_enc_cov_handler_in_buf_t cov_in_buf; +#endif float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; +#ifndef SBA_SPAR_HARM ivas_spar_md_enc_in_buf_t md_in_buf; +#endif int16_t nchan_inp, nchan_transport, bwidth, sba_order; int16_t table_idx; int16_t in_out_mixer_map[IVAS_MAX_FB_MIXER_OUT_CH][IVAS_MAX_SPAR_FB_MIXER_IN_CH]; @@ -443,7 +452,11 @@ static ivas_error ivas_spar_enc_process( * Transient detector *-----------------------------------------------------------------------------------------*/ +#ifdef SBA_SPAR_HARM + transient_det = ivas_transient_det_process( hSpar->hTranDet, data_f[0], input_frame ); +#else cov_in_buf.transient_det = ivas_transient_det_process( hSpar->hTranDet, data_f[0], input_frame ); +#endif /* store previous input samples for W in local buffer */ assert( num_del_samples <= IVAS_FB_1MS_48K_SAMP ); @@ -462,6 +475,14 @@ static ivas_error ivas_spar_enc_process( ivas_fb_mixer_pcm_ingest( hSpar->hFbMixer, data_f, p_pcm_tmp, input_frame ); /* prepare Parameter MDFT analysis */ +#ifdef SBA_SPAR_HARM + for ( i = 0; i < nchan_inp; i++ ) + { + ppIn_FR_real[i] = p_pcm_tmp[i]; + ppIn_FR_imag[i] = p_pcm_tmp[i] + input_frame; + p_pcm_tmp[i] = &data_f[i][0]; + } +#else for ( i = 0; i < nchan_inp; i++ ) { cov_in_buf.ppIn_FR_real[i] = p_pcm_tmp[i]; @@ -474,6 +495,7 @@ static ivas_error ivas_spar_enc_process( ppIn_FR_real[i] = cov_in_buf.ppIn_FR_real[i]; ppIn_FR_imag[i] = cov_in_buf.ppIn_FR_imag[i]; } +#endif l_ts = input_frame / MAX_PARAM_SPATIAL_SUBFRAMES; @@ -493,10 +515,16 @@ static ivas_error ivas_spar_enc_process( /* turn pointers back to the local buffer, needed for the following processing */ for ( i = 0; i < nchan_inp; i++ ) { +#ifdef SBA_SPAR_HARM + ppIn_FR_real[i] = pcm_tmp[i]; + ppIn_FR_imag[i] = pcm_tmp[i] + input_frame; +#endif p_pcm_tmp[i] = pcm_tmp[i]; } +#ifndef SBA_SPAR_HARM cov_in_buf.num_ch = nchan_inp; +#endif dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; @@ -504,8 +532,13 @@ static ivas_error ivas_spar_enc_process( * DirAC encoding *-----------------------------------------------------------------------------------------*/ +#ifdef SBA_SPAR_HARM + ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, + data_f, ppIn_FR_real, ppIn_FR_imag, input_frame ); +#else ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, data_f, cov_in_buf.ppIn_FR_real, cov_in_buf.ppIn_FR_imag, input_frame ); +#endif if ( hQMetaData->q_direction->cfg.nbands > 0 ) { @@ -596,7 +629,9 @@ static ivas_error ivas_spar_enc_process( *-----------------------------------------------------------------------------------------*/ /* use just VAD function to get VAD flags */ +#ifndef SBA_SPAR_HARM dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; +#endif dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; dtx_silence_mode = 0; // VE2DB: this variable is always 0 - please review or remove it bwidth = ivas_get_bw_idx_from_sample_rate( input_Fs ); @@ -606,8 +641,9 @@ static ivas_error ivas_spar_enc_process( * Covariance process *-----------------------------------------------------------------------------------------*/ +#ifndef SBA_SPAR_HARM cov_in_buf.num_ch = nchan_inp; - +#endif for ( i = 0; i < nchan_inp; i++ ) { for ( j = 0; j < nchan_inp; j++ ) @@ -617,8 +653,13 @@ static ivas_error ivas_spar_enc_process( } } +#ifdef SBA_SPAR_HARM + ivas_enc_cov_handler_process( hSpar->hCovEnc, ppIn_FR_real, ppIn_FR_imag, cov_real, cov_dtx_real, hSpar->hFbMixer->pFb, 0, hSpar->hFbMixer->pFb->filterbank_num_bands, nchan_inp, dtx_vad, transient_det ); +#else cov_in_buf.dtx_cov_flag = dtx_cov_flag; + ivas_enc_cov_handler_process( hSpar->hCovEnc, &cov_in_buf, cov_real, cov_dtx_real, hSpar->hFbMixer->pFb, 0, hSpar->hFbMixer->pFb->filterbank_num_bands ); +#endif if ( hSpar->hMdEnc->table_idx != table_idx ) { @@ -632,6 +673,7 @@ static ivas_error ivas_spar_enc_process( * MetaData encoder *-----------------------------------------------------------------------------------------*/ +#ifndef SBA_SPAR_HARM num_bands_bw = ivas_get_num_bands_from_bw_idx( bwidth ); if ( dtx_vad == 0 ) @@ -667,7 +709,12 @@ static ivas_error ivas_spar_enc_process( md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); md_in_buf.dtx_vad = dtx_vad; +#endif +#ifdef SBA_SPAR_HARM + ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, bwidth, nchan_inp, sba_order ); +#else ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); +#endif if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete { @@ -706,7 +753,11 @@ static ivas_error ivas_spar_enc_process( Wscale_d[b] = 1.0f; for ( i = 1; i < nchan_inp; i++ ) { +#ifdef SBA_SPAR_HARM + Wscale_d[b] += cov_real[i][i][b] / max( EPSILON, cov_real[0][0][b] ); +#else Wscale_d[b] += md_in_buf.cov_real[i][i][b] / max( EPSILON, md_in_buf.cov_real[0][0][b] ); +#endif } Wscale_d[b] = Wscale_d[b] / ( 1.0f + (float) sba_order ); /*DirAC normalized signal variance sums to 1 + order*/ Wscale_d[b] = sqrtf( Wscale_d[b] ); diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index ed0d3f7e7e..45765eb97a 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -82,7 +82,7 @@ static void ivas_select_next_strat( ivas_strats_t prior_strat, ivas_strats_t cs[ static void ivas_store_prior_coeffs( ivas_spar_md_enc_state_t *hMdEnc, const int16_t num_bands, const int16_t bands_bw, const int16_t strat, const int16_t dtx_vad, const int16_t qsi ); -static void ivas_write_parameter_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); +static void ivas_write_spar_md_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *hMdEnc, const ENCODER_CONFIG_HANDLE hEncoderConfig, const int16_t sba_order ); static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, const float *pValues, const int16_t ndm, int16_t *pIndex, const int16_t dim1, float *pQuant ); @@ -552,9 +552,20 @@ static void write_metadata_buffer( ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_state_t *hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ +#ifdef SBA_SPAR_HARM + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], +#else ivas_spar_md_enc_in_buf_t *pIn_buf, +#endif BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ +#ifdef SBA_SPAR_HARM + int16_t dtx_vad, + const int16_t bwidth, + const int16_t nchan_inp, +#else const int16_t dtx_silence_mode, +#endif const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { @@ -563,8 +574,12 @@ ivas_error ivas_spar_md_enc_process( int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; int16_t j, planarCP; +#ifdef SBA_SPAR_HARM + int16_t k, num_bands, num_bands_full, num_bands_bw; +#else int16_t num_bands = pIn_buf->num_bands; int16_t dtx_vad = pIn_buf->dtx_vad; +#endif int16_t active_w, nchan_transport, dmx_switch, strat; int16_t nB, bands_bw, packed_ok = 0; ivas_strats_t cs[MAX_CODING_STRATS]; @@ -579,6 +594,42 @@ ivas_error ivas_spar_md_enc_process( active_w = hMdEnc->spar_md_cfg.active_w; nchan_transport = hMdEnc->spar_md_cfg.nchan_transport; +#ifdef SBA_SPAR_HARM + num_bands = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW ); + num_bands = min( num_bands, SPAR_DIRAC_SPLIT_START_BAND ); + num_bands_full = num_bands; + num_bands_bw = ivas_get_num_bands_from_bw_idx( bwidth ); + + if ( dtx_vad == 0 ) + { + for ( i = 0; i < nchan_inp; i++ ) + { + for ( j = 0; j < nchan_inp; j++ ) + { + cov_real[i][j] = cov_dtx_real[i][j]; + for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) + { + cov_real[i][j][k] = 0; + } + } + } + } + else + { + for ( i = 0; i < nchan_inp; i++ ) + { + for ( j = 0; j < nchan_inp; j++ ) + { + cov_real[i][j] = cov_real[i][j]; + for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) + { + cov_real[i][j][k] = 0; + } + } + } + } +#endif + if ( hEncoderConfig->ivas_total_brate == BRATE_SPAR_Q_STRAT && sba_order == 1 ) { /* make sure that qsi is always 0 (temporary bits are '00') */ @@ -592,10 +643,12 @@ ivas_error ivas_spar_md_enc_process( next_ind_start = hMetaData->next_ind; last_ind_start = hMetaData->last_ind; +#ifndef SBA_SPAR_HARM if ( hEncoderConfig->Opt_DTX_ON == 0 ) { dtx_vad = 1; } +#endif dmx_switch = 0; @@ -604,7 +657,11 @@ ivas_error ivas_spar_md_enc_process( nB = SPAR_DTX_BANDS; bands_bw = num_bands / nB; +#ifdef SBA_SPAR_HARM + ivas_band_mixer( cov_real, num_ch, &num_bands, bands_bw ); +#else ivas_band_mixer( pIn_buf->cov_real, num_ch, &num_bands, bands_bw ); +#endif } else { @@ -612,8 +669,13 @@ ivas_error ivas_spar_md_enc_process( bands_bw = 1; } +#ifdef SBA_SPAR_HARM + ivas_compute_spar_params( cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, + bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); +#else ivas_compute_spar_params( pIn_buf->cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); +#endif for ( i = 0; i < num_ch; i++ ) { @@ -660,7 +722,11 @@ ivas_error ivas_spar_md_enc_process( if ( ndm != num_ch ) { +#ifdef SBA_SPAR_HARM + ivas_calc_c_p_coeffs( &hMdEnc->spar_md, cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); +#else ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); +#endif } } } @@ -753,7 +819,11 @@ ivas_error ivas_spar_md_enc_process( if ( ( ndm != num_ch ) && ( ndm != 1 ) ) { +#ifdef SBA_SPAR_HARM + ivas_calc_c_p_coeffs( &hMdEnc->spar_md, cov_real, 0, hMdEnc->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); +#else ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); +#endif #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n C coefficients: band %d\n", b); @@ -814,7 +884,11 @@ ivas_error ivas_spar_md_enc_process( /* band mixing */ if ( bands_bw > 1 ) { +#ifdef SBA_SPAR_HARM + ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, num_bands_full ); +#else ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, pIn_buf->num_bands ); +#endif } if ( hMdEnc->spar_md_cfg.gen_bs == 0 ) @@ -837,7 +911,8 @@ ivas_error ivas_spar_md_enc_process( { reset_indices_enc( &hMetaData_tmp, MAX_BITS_METADATA ); - ivas_write_parameter_bitstream( hMdEnc, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, dtx_silence_mode, strat, qsi, planarCP ); + ivas_write_spar_md_bitstream( hMdEnc, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, 0, strat, qsi, planarCP ); + if ( hMetaData->nb_bits_tot == bit_pos_start || hMetaData_tmp.nb_bits_tot < ( hMetaData->nb_bits_tot - bit_pos_start ) ) { write_metadata_buffer( &hMetaData_tmp, hMetaData, bit_pos_start, next_ind_start, last_ind_start ); @@ -1058,7 +1133,7 @@ ivas_error ivas_spar_md_enc_process( *-----------------------------------------------------------------------------------------*/ static void ivas_band_mixer( - float *cov_re[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], + float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], const int16_t num_ch, int16_t *num_bands, int16_t red_band_fact ) @@ -1079,18 +1154,18 @@ static void ivas_band_mixer( avg_cov = 0.0f; for ( b = 0; b < red_band_fact; b++ ) { - avg_cov += cov_re[i][j][red_band_fact * k + b]; + avg_cov += cov_real[i][j][red_band_fact * k + b]; } - cov_re[i][j][k] = avg_cov; + cov_real[i][j][k] = avg_cov; } avg_cov = 0.0f; for ( b = 0; b < red_band_fact + rem_band; b++ ) { - avg_cov += cov_re[i][j][red_band_fact * ( *num_bands - 1 ) + b]; + avg_cov += cov_real[i][j][red_band_fact * ( *num_bands - 1 ) + b]; } - cov_re[i][j][*num_bands - 1] = avg_cov; + cov_real[i][j][*num_bands - 1] = avg_cov; } } @@ -1099,18 +1174,18 @@ static void ivas_band_mixer( /*-----------------------------------------------------------------------------------------* - * Function ivas_write_parameter_bitstream() + * Function ivas_write_spar_md_bitstream() * * Write MD parameters into bitstream *-----------------------------------------------------------------------------------------*/ -static void ivas_write_parameter_bitstream( +static void ivas_write_spar_md_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, - const int16_t dtx_silence_mode, + const int16_t dtx_silence_mode, // VE2DB: it is always 0 -> remove it? const int16_t strat, const int16_t qsi, const int16_t planarCP ) diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 0ec6c21eea..a4e8e1142a 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -629,6 +629,7 @@ typedef struct ivas_enc_cov_handler_state_t } ivas_enc_cov_handler_state_t; +#ifndef SBA_SPAR_HARM typedef struct ivas_enc_cov_handler_in_buf_t { float *ppIn_FR_real[IVAS_SPAR_MAX_CH]; @@ -638,6 +639,7 @@ typedef struct ivas_enc_cov_handler_in_buf_t int16_t dtx_cov_flag; } ivas_enc_cov_handler_in_buf_t; +#endif /* SPAR MD structures */ typedef struct ivas_spar_md_enc_state_t @@ -658,6 +660,7 @@ typedef struct ivas_spar_md_enc_state_t } ivas_spar_md_enc_state_t; +#ifndef SBA_SPAR_HARM typedef struct ivas_spar_md_enc_in_buf_t { float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; @@ -665,7 +668,7 @@ typedef struct ivas_spar_md_enc_in_buf_t int16_t dtx_vad; } ivas_spar_md_enc_in_buf_t; - +#endif /* PCA structure */ typedef struct { -- GitLab From a5ac972ff1d37d5c612e431b5526c1190701fc7a Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 17 Oct 2022 18:46:27 +0200 Subject: [PATCH 243/479] rename evs_brs -> core_brs --- lib_com/ivas_spar_com.c | 9 ++++----- lib_com/ivas_stat_com.h | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index 44e63981a9..a93326ec9c 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -2139,8 +2139,8 @@ void ivas_spar_set_bitrate_config( for ( i = 0; i < pSpar_md_cfg->nchan_transport; i++ ) { - total_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].evs_brs[i][0] / FRAMES_PER_SEC ); - max_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].evs_brs[i][1] / FRAMES_PER_SEC ); + total_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][0] / FRAMES_PER_SEC ); + max_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][1] / FRAMES_PER_SEC ); } pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - total_bits; @@ -2165,7 +2165,6 @@ void ivas_spar_set_bitrate_config( * Set SPAR bitrate distribution *-----------------------------------------------------------------------------------------*/ -// this function is not currently used but it is kept for future use void ivas_spar_bitrate_dist( int32_t core_brates_act[], /* o : bitrates per core-coder */ const int16_t nAvailBits, /* i : number of available bits */ @@ -2185,7 +2184,7 @@ void ivas_spar_bitrate_dist( sum_core_act_bits = 0; for ( i = 0; i < nchan_transport; i++ ) { - core_bits_act[i] = (int16_t) ( ivas_spar_br_table_consts[table_idx].evs_brs[i][0] / FRAMES_PER_SEC ); + core_bits_act[i] = (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][0] / FRAMES_PER_SEC ); sum_core_act_bits += core_bits_act[i]; } @@ -2211,7 +2210,7 @@ void ivas_spar_bitrate_dist( { for ( i = 0; i < nchan_transport; i++ ) { - core_range_bits[i] = (int16_t) ( ( ivas_spar_br_table_consts[table_idx].evs_brs[i][0] - ivas_spar_br_table_consts[table_idx].evs_brs[i][1] ) / FRAMES_PER_SEC ); + core_range_bits[i] = (int16_t) ( ( ivas_spar_br_table_consts[table_idx].core_brs[i][0] - ivas_spar_br_table_consts[table_idx].evs_brs[i][1] ) / FRAMES_PER_SEC ); } overflow_bits = -residual_bits; diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index d8b10257e9..4b2c342f4f 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -373,11 +373,12 @@ typedef struct ivas_spar_br_table_t ivas_spar_pmx_strings_t dmx_str; int16_t active_w; int16_t tmode; - int32_t evs_brs[FOA_CHANNELS][3]; // VE: rename to core_brs + int32_t core_brs[FOA_CHANNELS][3]; int16_t q_lvls[MAX_QUANT_STRATS][NUM_MD_Q_COEFS_SET]; int16_t td_ducking; int16_t agc_bits_ch_idx; /* 0-3, Indicates core-coder channel index from which AGC bits have been taken from*/ int16_t usePlanarCoeff; + } ivas_spar_br_table_t; -- GitLab From be0a1a1f9622086935ecdd5990958e450b6d544c Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 17 Oct 2022 19:05:00 +0200 Subject: [PATCH 244/479] address few "VE2DB" comments; + editorial changes --- lib_com/ivas_prot.h | 1 - lib_dec/ivas_spar_md_dec.c | 6 +++++ lib_enc/ivas_spar_encoder.c | 51 ++++++++++++++++++++++--------------- lib_enc/ivas_spar_md_enc.c | 6 +++-- 4 files changed, 41 insertions(+), 23 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index eb79d71c38..84450e89a0 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3919,7 +3919,6 @@ ivas_error ivas_spar_md_enc_process( BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ #ifdef SBA_SPAR_HARM int16_t dtx_vad, - const int16_t bwidth, const int16_t nchan_inp, #else const int16_t dtx_silence_mode, diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 2c8d31ecc0..7f01f64c0f 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -665,9 +665,13 @@ void ivas_spar_md_dec_process( } #endif +#ifndef SBA_SPAR_HARM /* SPAR to DirAC and DirAC to SPAR conversion */ // VE2DB: -> "DirAC to SPAR conversion" only? if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete { +#else + /* SPAR to DirAC conversion */ +#endif ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); /* set correct number of bands*/ @@ -676,7 +680,9 @@ void ivas_spar_md_dec_process( { nB = nB >> 1; } +#ifndef SBA_SPAR_HARM } +#endif /* expand DirAC MD to all time slots */ for ( i_ts = 1; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 9cf149f2a3..6c17a5711e 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -397,21 +397,23 @@ static ivas_error ivas_spar_enc_process( float pcm_tmp[IVAS_SPAR_MAX_CH][L_FRAME48k * 2]; float *p_pcm_tmp[IVAS_SPAR_MAX_CH]; #ifdef SBA_SPAR_HARM - int16_t i, j, b, i_ts, input_frame, transient_det; + int16_t i, j, b, i_ts, input_frame, transient_det, dtx_vad; #else int16_t i, j, k, b, i_ts, input_frame, num_bands_bw; -#endif int16_t dtx_vad, dtx_cov_flag, dtx_silence_mode; +#endif int32_t ivas_total_brate, input_Fs; #ifndef SBA_SPAR_HARM ivas_enc_cov_handler_in_buf_t cov_in_buf; #endif float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; -#ifndef SBA_SPAR_HARM +#ifdef SBA_SPAR_HARM + int16_t nchan_inp, nchan_transport, sba_order; +#else ivas_spar_md_enc_in_buf_t md_in_buf; -#endif int16_t nchan_inp, nchan_transport, bwidth, sba_order; +#endif int16_t table_idx; int16_t in_out_mixer_map[IVAS_MAX_FB_MIXER_OUT_CH][IVAS_MAX_SPAR_FB_MIXER_IN_CH]; ivas_error error; @@ -446,7 +448,9 @@ static ivas_error ivas_spar_enc_process( mvr2r( data_f[HOA_keep_ind[i]], data_f[i], input_frame ); } +#ifndef SBA_SPAR_HARM table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); +#endif /*-----------------------------------------------------------------------------------------* * Transient detector @@ -623,19 +627,18 @@ static ivas_error ivas_spar_enc_process( } } - +#ifndef SBA_SPAR_HARM /*-----------------------------------------------------------------------------------------* * Pre-proc flags *-----------------------------------------------------------------------------------------*/ /* use just VAD function to get VAD flags */ -#ifndef SBA_SPAR_HARM dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; -#endif dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; dtx_silence_mode = 0; // VE2DB: this variable is always 0 - please review or remove it bwidth = ivas_get_bw_idx_from_sample_rate( input_Fs ); bwidth = min( bwidth, hEncoderConfig->max_bwidth ); +#endif /*-----------------------------------------------------------------------------------------* * Covariance process @@ -661,19 +664,33 @@ static ivas_error ivas_spar_enc_process( ivas_enc_cov_handler_process( hSpar->hCovEnc, &cov_in_buf, cov_real, cov_dtx_real, hSpar->hFbMixer->pFb, 0, hSpar->hFbMixer->pFb->filterbank_num_bands ); #endif + /*-----------------------------------------------------------------------------------------* + * Set SPAR bitrates + *-----------------------------------------------------------------------------------------*/ + +#ifdef SBA_SPAR_HARM + table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); +#endif + if ( hSpar->hMdEnc->table_idx != table_idx ) { hSpar->hMdEnc->table_idx = table_idx; ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, SPAR_DIRAC_SPLIT_START_BAND ); } +#ifdef SBA_SPAR_HARM + nchan_transport = st_ivas->nchan_transport; +#else nchan_transport = hSpar->hMdEnc->spar_md_cfg.nchan_transport; +#endif /*-----------------------------------------------------------------------------------------* * MetaData encoder *-----------------------------------------------------------------------------------------*/ -#ifndef SBA_SPAR_HARM +#ifdef SBA_SPAR_HARM + ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, nchan_inp, sba_order ); +#else num_bands_bw = ivas_get_num_bands_from_bw_idx( bwidth ); if ( dtx_vad == 0 ) @@ -709,14 +726,13 @@ static ivas_error ivas_spar_enc_process( md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); md_in_buf.dtx_vad = dtx_vad; -#endif -#ifdef SBA_SPAR_HARM - ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, bwidth, nchan_inp, sba_order ); -#else + ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); #endif +#ifndef SBA_SPAR_HARM if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete +#endif { float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; float ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; @@ -739,13 +755,9 @@ static ivas_error ivas_spar_enc_process( diffuseness[b] = 1.0f - hQMetaData->q_direction->band_data[dirac_band_idx].energy_ratio[0]; } - if ( ( d_start_band >= 6 ) && ( dtx_vad == 1 ) ) + if ( d_start_band >= 6 && dtx_vad == 1 ) { - for ( i = 0; i < IVAS_SPAR_MAX_CH - 1; i++ ) - { - hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_re[i] = - hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_quant_re[i]; - } + mvr2r( hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_quant_re, hSpar->hMdEnc->spar_md.band_coeffs[d_start_band - 1].P_re, IVAS_SPAR_MAX_CH - 1 ); } for ( b = d_start_band; b < d_end_band; b++ ) @@ -764,8 +776,7 @@ static ivas_error ivas_spar_enc_process( Wscale_d[b] = min( 2.0f, max( Wscale_d[b], 1.0f ) ); } - ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, - d_start_band, d_end_band, sba_order, dtx_vad, Wscale_d ); + ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, d_start_band, d_end_band, sba_order, dtx_vad, Wscale_d ); } diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 45765eb97a..7ae45903d5 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -561,7 +561,6 @@ ivas_error ivas_spar_md_enc_process( BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ #ifdef SBA_SPAR_HARM int16_t dtx_vad, - const int16_t bwidth, const int16_t nchan_inp, #else const int16_t dtx_silence_mode, @@ -575,7 +574,7 @@ ivas_error ivas_spar_md_enc_process( int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; int16_t j, planarCP; #ifdef SBA_SPAR_HARM - int16_t k, num_bands, num_bands_full, num_bands_bw; + int16_t k, bwidth, num_bands, num_bands_full, num_bands_bw; #else int16_t num_bands = pIn_buf->num_bands; int16_t dtx_vad = pIn_buf->dtx_vad; @@ -595,6 +594,9 @@ ivas_error ivas_spar_md_enc_process( nchan_transport = hMdEnc->spar_md_cfg.nchan_transport; #ifdef SBA_SPAR_HARM + bwidth = ivas_get_bw_idx_from_sample_rate( hEncoderConfig->input_Fs ); + bwidth = min( bwidth, hEncoderConfig->max_bwidth ); + num_bands = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW ); num_bands = min( num_bands, SPAR_DIRAC_SPLIT_START_BAND ); num_bands_full = num_bands; -- GitLab From 86d4c72ac78260a7150e264f339a68465f4be1a6 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 17 Oct 2022 19:27:59 +0200 Subject: [PATCH 245/479] remove empty lines --- lib_com/options.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 0e4dc4549e..ff4cf5f346 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,12 +149,10 @@ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ #define FIX_TCX10_STEREO_PROC /* Issue 11 */ #define CORECODER_BITRATE_SWITCHING /* Issue 133: support bitrate switching in core-coder */ - #define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ +#define SBA_SPAR_HARM /* Issue 92: maintenance of the SBA SPAR functions */ -#define SBA_SPAR_HARM /* maintenance of the SBA SPAR functions */ - /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ -- GitLab From 88a803d01e4b20941b0b2acdc445bf416a56a968 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 18 Oct 2022 08:50:12 +0200 Subject: [PATCH 246/479] empty lines --- lib_com/ivas_stat_com.h | 4 +++- lib_dec/ivas_spar_decoder.c | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index 4b2c342f4f..026191559b 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -124,6 +124,7 @@ typedef struct /*----------------------------------------------------------------------------------* * PARAMETRIC ISM encoder/decoder (common) structure *----------------------------------------------------------------------------------*/ + typedef struct ivas_param_ism_data_structure { int16_t nbands; @@ -480,6 +481,7 @@ typedef struct ivas_qdirection_band_data_struct uint16_t elevation_index[MAX_PARAM_SPATIAL_SUBFRAMES]; float q_azimuth[MAX_PARAM_SPATIAL_SUBFRAMES]; float q_elevation[MAX_PARAM_SPATIAL_SUBFRAMES]; + } IVAS_QDIRECTION_BAND_DATA; typedef struct ivas_qdirection_band_coherence_data_struct @@ -532,6 +534,7 @@ typedef struct ivas_masa_qmetadata_frame_struct int16_t ec_flag; float dir_comp_ratio; uint8_t is_masa_ivas_format; + } IVAS_QMETADATA, *IVAS_QMETADATA_HANDLE; @@ -739,7 +742,6 @@ typedef struct ivas_fb_mixer_state_structure float cldfb_cross_fade[CLDFB_NO_COL_MAX]; int16_t cldfb_cross_fade_start; int16_t cldfb_cross_fade_end; - int16_t cldfb_latency; int16_t first_frame[IVAS_SPAR_MAX_CH]; diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index c7a3fcff20..3021f1947c 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -469,7 +469,6 @@ void ivas_spar_get_cldfb_gains( } hSpar->hFbMixer->cldfb_cross_fade_start = cf_cldfb_start; hSpar->hFbMixer->cldfb_cross_fade_end = cf_cldfb_end; - hSpar->hFbMixer->cldfb_latency = decfb_delay; if ( num_cf_slots > 3 || pt_len > 10 * CLDFB_NO_CHANNELS_MAX || stride > CLDFB_NO_CHANNELS_MAX || split_band == IVAS_MAX_NUM_BANDS ) { -- GitLab From 6f22b333440c04ce004a8a32c5de97f0c8124350 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 18 Oct 2022 08:51:19 +0200 Subject: [PATCH 247/479] empty lines --- lib_dec/ivas_stat_dec.h | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 9f36670a7d..aeb5d4118b 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -123,7 +123,6 @@ typedef struct stereo_dft_dec_data_struct const float *win_8k; /* DFT window residual */ - /*Bands*/ int16_t band_res[STEREO_DFT_DEC_DFT_NB]; int16_t band_limits[STEREO_DFT_BAND_MAX + 1]; @@ -216,14 +215,10 @@ typedef struct stereo_dft_dec_data_struct float smooth_buf[SBA_DIRAC_STEREO_NUM_BANDS][SBA_DIRAC_NRG_SMOOTH_LONG + 1]; float smooth_fac[NB_DIV][SBA_DIRAC_STEREO_NUM_BANDS]; - } STEREO_DFT_DEC_DATA, *STEREO_DFT_DEC_DATA_HANDLE; -/*----------------------------------------------------------------------------------* - * DFT Stereo mono output structure - *----------------------------------------------------------------------------------*/ - +/* DFT Stereo mono output structure */ typedef struct stereo_dft_dmx_out_data_structure { float targetGain; /* TCA gain norm applied on target (or right) channel in current frame */ @@ -430,6 +425,7 @@ typedef struct dirac_dec_stack_mem float *reference_power; float *onset_filter; + } DIRAC_DEC_STACK_MEM, *DIRAC_DEC_STACK_MEM_HANDLE; typedef struct param_ism_rendering @@ -659,7 +655,6 @@ typedef struct ivas_dirac_dec_data_structure int16_t spar_to_dirac_write_idx; int16_t dirac_md_buffer_length; - int16_t numSimultaneousDirections; /* 1 or 2 */ DIFFUSE_DISTRIBUTION_HANDLE hDiffuseDist; @@ -715,6 +710,7 @@ typedef struct ivas_dirac_dec_data_structure PARAM_ISM_RENDERING_HANDLE hParamIsmRendering; IVAS_FB_MIXER_HANDLE hFbMdft; int16_t dirac_to_spar_md_bands[DIRAC_MAX_NBANDS]; + } DIRAC_DEC_DATA, *DIRAC_DEC_HANDLE; @@ -995,6 +991,7 @@ typedef struct EFAP_VERTEX int16_t idx; /* integer, that corresponds to the first index for the LS in the 1D output */ int16_t isNaN; /* used to indicate if the vertex is a virtual speaker */ EFAP_VTX_DMX_TYPE dmxType; /* virtual speaker downmix type */ + } EFAP_VERTEX; typedef struct EFAP_VERTEX_DATA @@ -1044,6 +1041,7 @@ typedef struct EFAP } EFAP, *EFAP_HANDLE; + /*----------------------------------------------------------------------------------* * VBAP structures *----------------------------------------------------------------------------------*/ @@ -1113,6 +1111,7 @@ typedef struct renderer_struct } ISM_RENDERER_DATA, *ISM_RENDERER_HANDLE; + /*----------------------------------------------------------------------------------* * Loudspeaker Configuration Conversion structure *----------------------------------------------------------------------------------*/ @@ -1132,6 +1131,7 @@ typedef struct ivas_LS_setupconversion_matrix { int16_t index; float value; + } LS_CONVERSION_MATRIX; typedef struct ivas_LS_setupconversion_mapping @@ -1139,6 +1139,7 @@ typedef struct ivas_LS_setupconversion_mapping AUDIO_CONFIG input_config; AUDIO_CONFIG output_config; const LS_CONVERSION_MATRIX *conversion_matrix; + } LS_CONVERSION_MAPPING; typedef struct ivas_mono_downmix_renderer_struct @@ -1435,7 +1436,6 @@ typedef struct TDREND_LIST_Item_s } TDREND_LIST_Item_t; - typedef struct { int16_t modelROM; /* Flag that indicates that the model resides in ROM (controls init/dealloc). */ @@ -1516,6 +1516,7 @@ typedef struct float *W_dyn; float *azimBsShape_dyn; float *elevBsShape_dyn; + } ModelParamsITD_t; typedef struct @@ -1713,6 +1714,7 @@ typedef struct ivas_roomAcoustics_t float pAcoustic_dsr[CLDFB_NO_CHANNELS_MAX]; /* - The room's Diffuse to Source Ratio per center frequency */ float acousticPreDelay; /* Time elapsed between input signal and late reverberation start, float, range [0.001..10] */ float inputPreDelay; /* Offset in seconds from where DSR is computed in the RIR (0 = at source), float, range [0.001..10] */ + } ivas_roomAcoustics_t; typedef struct ivas_render_config_t @@ -1721,6 +1723,7 @@ typedef struct ivas_render_config_t ivas_renderTypeOverride renderer_type_override; #endif ivas_roomAcoustics_t roomAcoustics; + } RENDER_CONFIG_DATA, *RENDER_CONFIG_HANDLE; @@ -1832,7 +1835,7 @@ typedef struct ivas_orient_trk_state_t } ivas_orient_trk_state_t; -/* Crend structures */ +/* Main Crend structure */ typedef struct ivas_crend_state_t { float *freq_buffer_re[MAX_INTERN_CHANNELS]; @@ -1853,7 +1856,7 @@ typedef struct ivas_crend_state_t /*----------------------------------------------------------------------------------* - * LFE decoder structures + * LFE decoder structure *----------------------------------------------------------------------------------*/ typedef struct ivas_lfe_dec_data_structure -- GitLab From b900e1f58fb6d2bd078a97ec1c6e8cb571255762 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Tue, 18 Oct 2022 10:18:13 +0200 Subject: [PATCH 248/479] Fix problems with command line interface Fixes include: - fix for broken `-l` flag - sampling rate flag no longer required when using wav files - improved handling of required CLI arguments - fix for issues with input metadata flag --- apps/encoder.c | 10 +- apps/renderer.c | 753 +++++++++++++++++-------------- lib_util/audio_file_reader.c | 22 +- lib_util/audio_file_reader.h | 6 +- lib_util/cmdln_parser.c | 34 +- lib_util/cmdln_parser.h | 5 +- lib_util/ls_custom_file_reader.c | 2 +- lib_util/ls_custom_file_reader.h | 2 +- 8 files changed, 460 insertions(+), 374 deletions(-) diff --git a/apps/encoder.c b/apps/encoder.c index b1abc36d2f..20074e4d49 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -262,12 +262,18 @@ int main( /*------------------------------------------------------------------------------------------* * Open input audio file *------------------------------------------------------------------------------------------*/ - - if ( AudioFileReader_open( &audioReader, arg.inputWavFilename, arg.inputFs ) != IVAS_ERR_OK ) + int32_t inFileSampleRate = 0; + if ( AudioFileReader_open( &audioReader, arg.inputWavFilename, &inFileSampleRate ) != IVAS_ERR_OK ) { fprintf( stderr, "\nCan't open %s\n\n", arg.inputWavFilename ); goto cleanup; } + if ( inFileSampleRate != 0 && /* inFileSampleRate will remain zero if input file is raw PCM */ + inFileSampleRate != arg.inputFs ) + { + fprintf( stderr, "Sampling rate mismatch: %d Hz requested, but %d Hz found in file %s\n", arg.inputFs, inFileSampleRate, arg.inputWavFilename ); + goto cleanup; + } /*------------------------------------------------------------------------------------------* * Open output bitstream file diff --git a/apps/renderer.c b/apps/renderer.c index dc31bf3a64..17bd22fdd7 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -79,6 +79,7 @@ #define max( x, y ) ( ( x ) > ( y ) ? ( x ) : ( y ) ) #endif +#define RENDERER_MAX_CLI_ARG_LENGTH ( FILENAME_MAX ) #define RENDERER_MAX_METADATA_LENGTH 8192 #define RENDERER_MAX_METADATA_LINE_LENGTH 1024 @@ -160,8 +161,8 @@ typedef struct RendererInput ambisonicsBuses[RENDERER_MAX_SBA_INPUTS]; uint16_t numAmbisonicsBuses; IVAS_CUSTOM_LS_DATA inSetupCustom; - RendererInput masaBus; /* Support one MASA input for now. Multiple inputs will be easier to implement after API rework. */ - uint16_t numMasaBuses; /* Keep for framework consistency for now. Again - this will not be necessary after API rework */ + RendererInput masaBuses[RENDERER_MAX_MASA_INPUTS]; + uint16_t numMasaBuses; } InputConfig; typedef struct @@ -170,40 +171,162 @@ typedef struct IVAS_CUSTOM_LS_DATA outSetupCustom; } OutputConfig; -typedef struct CmdlnArgs +typedef struct { - char inputFilePath[FILENAME_MAX]; - char outputFilePath[FILENAME_MAX]; + char executableName[RENDERER_MAX_CLI_ARG_LENGTH]; + char inputFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; + char outputFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; int32_t sampleRate; InputConfig inConfig; OutputConfig outConfig; - char metaDataFiles[RENDERER_MAX_ISM_INPUTS][FILENAME_MAX]; - char trajectoryFile[FILENAME_MAX]; - char customHrtfFile[FILENAME_MAX]; - char renderConfigFile[FILENAME_MAX]; + char inMetadataFilePaths[RENDERER_MAX_ISM_INPUTS][RENDERER_MAX_CLI_ARG_LENGTH]; + int32_t numInMetadataFiles; + char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; + char customHrtfFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; + char renderConfigFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; int8_t orientationTracking; float noDiegeticPan; bool delayCompensationEnabled; bool quietModeEnabled; bool sceneDescriptionInput; - float inputGainGlobal; + float inputGainGlobal; /* Linear gain (not in dB) */ } CmdlnArgs; +typedef enum +{ + CmdLnOptionId_inputFile = 1, + CmdLnOptionId_inputFormat, + CmdLnOptionId_outputFile, + CmdLnOptionId_outputFormat, + CmdLnOptionId_sampleRate, + CmdLnOptionId_trajFile, + CmdLnOptionId_customHrtfFile, + CmdLnOptionId_renderConfigFile, + CmdLnOptionId_noDiegeticPan, + CmdLnOptionId_orientationTracking, + CmdLnOptionId_customLfeRouting, + CmdLnOptionId_noDelayCmp, + CmdLnOptionId_quietModeEnabled, + CmdLnOptionId_inputMetadata, + CmdLnOptionId_listFormats, + CmdLnOptionId_inputGain, +} CmdLnOptionId; + +static const CmdLnParser_Option cliOptions[] = { + { + .id = CmdLnOptionId_inputFile, + .match = "input_file", + .matchShort = "i", + .description = "Path to the input file (WAV, raw PCM or scene description file)", + }, + { + .id = CmdLnOptionId_inputFormat, + .match = "input_format", + .matchShort = "if", + .description = "Audio format of input file (e.g. 5_1 or HOA3 or META, use -l for a list)", + }, + { + .id = CmdLnOptionId_inputMetadata, + .match = "input_metadata", + .matchShort = "im", + .description = "Space-separated list of path to metadata files for ISM or MASA inputs", + }, + { + .id = CmdLnOptionId_outputFile, + .match = "output_file", + .matchShort = "o", + .description = "Path to the output file", + }, + { + .id = CmdLnOptionId_outputFormat, + .match = "output_format", + .matchShort = "of", + .description = "Output format to render.\nAlternatively, can be a custom loudspeaker layout file", + }, + { + .id = CmdLnOptionId_sampleRate, + .match = "sample_rate", + .matchShort = "fs", + .description = "Input sampling rate in kHz (16, 32, 48) - required only with raw PCM inputs", /* TODO(sgi): Add sampling rate to scene description files */ + }, + { + .id = CmdLnOptionId_trajFile, + .match = "trajectory_file", + .matchShort = "tf", + .description = "Head rotation trajectory file for simulation of head tracking (only for BINAURAL and BINAURAL_ROOM outputs)", + }, + { + .id = CmdLnOptionId_customHrtfFile, + .match = "custom_hrtf", + .matchShort = "hrtf", + .description = "Custom HRTF file for binaural rendering (only for BINAURAL and BINAURAL_ROOM outputs)", + }, + { + .id = CmdLnOptionId_renderConfigFile, + .match = "render_config", + .matchShort = "rc", + .description = "Binaural renderer configuration file (only for BINAURAL and BINAURAL_ROOM outputs)", + }, + { + .id = CmdLnOptionId_noDiegeticPan, + .match = "no_diegetic_pan", + .matchShort = "ndp", + .description = "Panning mono no diegetic sound to stereo -1<= pan <= 1\nleft or l or 1->left, right or r or -1->right, center or c or 0 ->middle\n(todo: implementation)", + }, + { + .id = CmdLnOptionId_orientationTracking, + .match = "tracking_type", + .matchShort = "otr", + .description = "Head orientation tracking type: 'ref' or 'avg' (only for BINAURAL and BINAURAL_ROOM) (todo: check implementation)", + }, + { + /* TODO(sgi): Replace with more configurable input, e.g. ask for a list of triplets: (gain, azimuth, elevation) to place LFE signal */ + /* rename to "lfeHandling" */ + .id = CmdLnOptionId_customLfeRouting, + .match = "neverDropLfe", + .matchShort = "ndl", + .description = "[flag] If set, renderer tries to render LFE into other channels in an optimal way when rendering to configs w/o LFE", + }, + { + .id = CmdLnOptionId_noDelayCmp, + .match = "no_delay_cmp", + .matchShort = "ndc", + .description = "[flag] Turn off delay compensation", + }, + { + .id = CmdLnOptionId_quietModeEnabled, + .match = "quiet", + .matchShort = "q", + .description = "[flag] Limit printouts to terminal", + }, + { + .id = CmdLnOptionId_inputGain, + .match = "gain", + .matchShort = "g", + .description = "Input gain (linear, not in dB) to be applied to input audio file", + }, + { + .id = CmdLnOptionId_listFormats, + .match = "list", + .matchShort = "l", + .description = "List supported audio formats", + }, +}; + +static const int32_t numCliOptions = sizeof( cliOptions ) / sizeof( CmdLnParser_Option ); + static IVAS_REND_AudioConfig ambisonicsOrderToEnum( int32_t order ); -static bool parseInConfig( char **optionValues, - CmdlnArgs *args ); - -static void parseConfigFile( +static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputConfig *inConfig, IsmPositionProvider *positionProvider, - char *masaMetadataFilePath ); + MasaFileReader** masaReaders ); static ivas_error parseCustomLayoutFile( - char *filePath, + const char *filePath, IVAS_CUSTOM_LS_DATA *pLsSetupCustom ); static CmdlnArgs parseCmdlnArgs( @@ -262,34 +385,12 @@ static void parseObjectPosition( IVAS_REND_AudioObjectPosition *position, uint16_t *positionDuration ); -static void parseIsm( - char *line, - char *inDir, - InputConfig *inConfig, - IsmPositionProvider *positionProvider, - int32_t idx ); - -static void parseSba( - char *line, - InputConfig *inConfig, - int32_t idx ); - -static void parseMc( - char *line, - InputConfig *inConfig, - int32_t idx ); - -static void parseMasa( - char *line, - InputConfig *inConfig, - char *masaMetadataFilePath ); - static void parseMetadata( char *metadataString, char *inDir, InputConfig *inConfig, IsmPositionProvider *positionProvider, - char *masaMetadataFilePath ); + MasaFileReader** masaReaders ); static void convert_backslash( char *str ); @@ -299,6 +400,8 @@ static void remove_cr( static void clearString( char *str ); +static bool isEmptyString( const char *str ); + static void printSupportedAudioConfigs( void ); static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ); @@ -387,6 +490,54 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, return totalNumInChannels; } +static void setupWithSingleFormatInput( CmdlnArgs args, char *audioFilePath, IsmPositionProvider *positionProvider, MasaFileReader **masaReaders ) +{ + /* With single-format input, inputFilePath is the path to input audio file. */ + strncpy( audioFilePath, args.inputFilePath, FILENAME_MAX - 1 ); + + /* Depending on input format, prepare metadata reading for ISM or MASA */ + if ( args.inConfig.numMasaBuses != 0 ) + { + if ( args.inConfig.numMasaBuses != args.numInMetadataFiles ) + { + fprintf( stderr, "Error: all MASA inputs must have a corresponding metadata file" ); + exit( -1 ); + } + + for ( int32_t i = 0; i < args.numInMetadataFiles; ++i ) + { + masaReaders[i] = MasaFileReader_open( args.inMetadataFilePaths[i] ); + if ( masaReaders[i] == NULL ) + { + fprintf( stderr, "Could not open MASA metadata file %s\n", args.inMetadataFilePaths[i] ); + exit( -1 ); + } + } + } + else if ( args.inConfig.numAudioObjects != 0 ) + { + positionProvider->numObjects = args.inConfig.numAudioObjects; + for ( int32_t i = 0; i < positionProvider->numObjects; ++i ) + { + /* It is allowed on CLI to have no metadata for an ISM input - skip opening if string is empty or contains "NULL" */ + char charBuf[FILENAME_MAX]; + strncpy( charBuf, args.inMetadataFilePaths[i], min( FILENAME_MAX, RENDERER_MAX_CLI_ARG_LENGTH ) - 1 ); + to_upper( charBuf ); + if ( isEmptyString( args.inMetadataFilePaths[i] ) || strncmp( charBuf, "NULL", 4 ) == 0 ) + { + continue; + } + + positionProvider->ismReaders[i] = IsmFileReader_open( args.inMetadataFilePaths[i] ); + if ( positionProvider->ismReaders[i] == NULL ) + { + fprintf( stderr, "Could not open object metadata file %s\n", args.inMetadataFilePaths[i] ); + exit( -1 ); + } + } + } +} + static float dBToLin( float gain_dB ) { return powf( 10.0f, gain_dB / 20.0f ); @@ -402,8 +553,9 @@ int32_t main( int32_t argc, char **argv ) hrtfFileReader *hrtfFileReader = NULL; IsmPositionProvider *positionProvider; RenderConfigReader *renderConfigReader = NULL; + MasaFileReader *masaReaders[RENDERER_MAX_MASA_INPUTS]; + IVAS_MASA_METADATA_HANDLE hMasaMetadata[RENDERER_MAX_MASA_INPUTS]; char audioFilePath[FILENAME_MAX]; - char masaMetadataFilePath[FILENAME_MAX]; AudioFileReader *audioReader = NULL; AudioFileWriter *audioWriter; int32_t inBufferSize; @@ -433,55 +585,68 @@ int32_t main( int32_t argc, char **argv ) mem_count_init( 0, USE_32BITS ); #endif + for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) + { + masaReaders[i] = NULL; + hMasaMetadata[i] = NULL; + } + CmdlnArgs args = parseCmdlnArgs( argc, argv ); - const int32_t frameSize_smpls = 20 * args.sampleRate / 1000; positionProvider = IsmPositionProvider_open(); - clearString( masaMetadataFilePath ); - convert_backslash( args.inputFilePath ); convert_backslash( args.outputFilePath ); - convert_backslash( args.trajectoryFile ); + convert_backslash( args.headRotationFilePath ); - if ( args.trajectoryFile[0] != '\0' ) + if ( !isEmptyString( args.headRotationFilePath ) ) { - HeadRotationFileReader_open( args.trajectoryFile, &headRotReader ); + HeadRotationFileReader_open( args.headRotationFilePath, &headRotReader ); } - if ( args.customHrtfFile[0] != '\0' ) + if ( !isEmptyString( args.customHrtfFilePath ) ) { - hrtfFileReader_open( args.customHrtfFile, &hrtfFileReader ); + hrtfFileReader_open( args.customHrtfFilePath, &hrtfFileReader ); } - if ( args.renderConfigFile[0] != '\0' ) + if ( !isEmptyString( args.renderConfigFilePath ) ) { - RenderConfigReader_open( args.renderConfigFile, &renderConfigReader ); + RenderConfigReader_open( args.renderConfigFilePath, &renderConfigReader ); } + /* Initialize main input files, i.e. audio and metadata */ if ( args.sceneDescriptionInput ) { /* With scene description input, inputFilePath is the path to the scene description file. Parse it. */ - parseConfigFile( args.inputFilePath, audioFilePath, &args.inConfig, positionProvider, masaMetadataFilePath ); + parseSceneDescriptionFile( args.inputFilePath, audioFilePath, &args.inConfig, positionProvider, masaReaders ); } else { - /* With single-format input, inputFilePath is the path to input audio file. */ - strncpy( audioFilePath, args.inputFilePath, FILENAME_MAX - 1 ); - - /* Set up reading metadata files */ - positionProvider->numObjects = args.inConfig.numAudioObjects; - for ( int32_t i = 0; i < positionProvider->numObjects; ++i ) - { - positionProvider->ismReaders[i] = IsmFileReader_open( args.metaDataFiles[i] ); - } + /* With single-format input, all information is given on command line. */ + setupWithSingleFormatInput( args, audioFilePath, positionProvider, masaReaders ); } - if ( AudioFileReader_open( &audioReader, audioFilePath, args.sampleRate ) != IVAS_ERR_OK ) + int32_t inFileSampleRate = 0; + if ( AudioFileReader_open( &audioReader, audioFilePath, &inFileSampleRate ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening file: %s\n", audioFilePath ); exit( -1 ); } + if ( args.sampleRate == 0 && inFileSampleRate == 0 ) + { + fprintf( stderr, "Sampling rate must be specified on command line when using raw PCM input\n" ); + exit( -1 ); + } + if ( args.sampleRate != 0 && inFileSampleRate != 0 && args.sampleRate != inFileSampleRate ) + { + fprintf( stderr, "Sampling rate mismatch: %d Hz requested, but %d Hz found in file %s\n", args.sampleRate, inFileSampleRate, args.inputFilePath ); + exit( -1 ); + } + if ( args.sampleRate == 0 ) + { + args.sampleRate = inFileSampleRate; + } + const int32_t frameSize_smpls = 20 * args.sampleRate / 1000; IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS] = { 0 }; IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS] = { 0 }; @@ -566,19 +731,12 @@ int32_t main( int32_t argc, char **argv ) exit( -1 ); } - MasaFileReader *masaReader = NULL; - IVAS_MASA_METADATA_HANDLE hMasaMetadata = NULL; - - if ( masaMetadataFilePath[0] != '\0' ) + for ( int32_t i = 0; i < args.inConfig.numMasaBuses; ++i ) { - masaReader = MasaFileReader_open( masaMetadataFilePath ); - if ( masaReader == NULL ) + if ( masaReaders[i] != NULL ) { - fprintf( stderr, "Could not open MASA metadata file %s\n", masaMetadataFilePath ); - exit( -1 ); + hMasaMetadata[i] = MasaFileReader_getMetadataHandle( masaReaders[i] ); } - - hMasaMetadata = MasaFileReader_getMetadataHandle( masaReader ); } int32_t numOutChannels; @@ -643,12 +801,15 @@ int32_t main( int32_t argc, char **argv ) /* Convert from int to float and from interleaved to packed */ convertInputBuffer( inpInt16Buffer, numSamplesRead, frameSize_smpls, num_in_channels, inFloatBuffer ); - if ( masaReader != NULL ) + for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { - MasaFileReader_readNextFrame( masaReader ); - /* TODO: Feed MASA metadata here once MASA inputs are supported. - For now avoid unused var warning */ - (void) hMasaMetadata; + if ( masaReaders[i] != NULL ) + { + MasaFileReader_readNextFrame( masaReaders[i] ); + /* TODO: Feed MASA metadata here once MASA inputs are supported. + For now avoid unused var warning */ + (void) hMasaMetadata; + } } ObjectPositionBuffer mtdBuffer; @@ -801,7 +962,10 @@ int32_t main( int32_t argc, char **argv ) count_free( inFloatBuffer ); count_free( outInt16Buffer ); count_free( outFloatBuffer ); - MasaFileReader_close( &masaReader ); + for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) + { + MasaFileReader_close( &masaReaders[i] ); + } AudioFileReader_close( &audioReader ); AudioFileWriter_close( &audioWriter ); HeadRotationFileReader_close( &headRotReader ); @@ -839,30 +1003,29 @@ static IVAS_REND_AudioConfig ambisonicsOrderToEnum( int32_t order ) return IVAS_REND_AUDIO_CONFIG_UNKNOWN; } -static bool parseInConfig( char **optionValues, CmdlnArgs *args ) +static bool parseInConfig( const char *inFormatStr, InputConfig *inConfig, bool *sceneDescriptionInput ) { - InputConfig inConfig; char charBuf[FILENAME_MAX]; /* Initialize input config struct */ - inConfig.numAudioObjects = 0; - inConfig.numAmbisonicsBuses = 0; - inConfig.numMultiChannelBuses = 0; - inConfig.numMasaBuses = 0; + inConfig->numAudioObjects = 0; + inConfig->numAmbisonicsBuses = 0; + inConfig->numMultiChannelBuses = 0; + inConfig->numMasaBuses = 0; /* First check if input is being set to scene description file - this is not covered by parseAudioConfig(). */ - strncpy( charBuf, optionValues[0], sizeof( charBuf ) - 1 ); + strncpy( charBuf, inFormatStr, sizeof( charBuf ) - 1 ); to_upper( charBuf ); if ( strcmp( charBuf, "META" ) == 0 ) { - args->sceneDescriptionInput = true; + *sceneDescriptionInput = true; /* Parsing the file will be done later. At this point the actual file path * may not be known as command line parameters are still being parsed. */ return true; } /* Check for single-format inputs. The given string should map to a member of IVAS_REND_AudioConfig enum. */ - IVAS_REND_AudioConfig audioConfig = parseAudioConfig( optionValues[0] ); + IVAS_REND_AudioConfig audioConfig = parseAudioConfig( inFormatStr ); switch ( audioConfig ) { case IVAS_REND_AUDIO_CONFIG_MONO: @@ -872,47 +1035,47 @@ static bool parseInConfig( char **optionValues, CmdlnArgs *args ) case IVAS_REND_AUDIO_CONFIG_5_1_2: case IVAS_REND_AUDIO_CONFIG_5_1_4: case IVAS_REND_AUDIO_CONFIG_7_1_4: - inConfig.numMultiChannelBuses = 1; - inConfig.multiChannelBuses[0].audioConfig = audioConfig; - inConfig.multiChannelBuses[0].inputChannelIndex = 0; - inConfig.multiChannelBuses[0].gain_dB = 0.0f; + inConfig->numMultiChannelBuses = 1; + inConfig->multiChannelBuses[0].audioConfig = audioConfig; + inConfig->multiChannelBuses[0].inputChannelIndex = 0; + inConfig->multiChannelBuses[0].gain_dB = 0.0f; break; case IVAS_REND_AUDIO_CONFIG_FOA: case IVAS_REND_AUDIO_CONFIG_HOA2: case IVAS_REND_AUDIO_CONFIG_HOA3: - inConfig.numAmbisonicsBuses = 1; - inConfig.ambisonicsBuses[0].audioConfig = audioConfig; - inConfig.ambisonicsBuses[0].inputChannelIndex = 0; - inConfig.ambisonicsBuses[0].gain_dB = 0.0f; + inConfig->numAmbisonicsBuses = 1; + inConfig->ambisonicsBuses[0].audioConfig = audioConfig; + inConfig->ambisonicsBuses[0].inputChannelIndex = 0; + inConfig->ambisonicsBuses[0].gain_dB = 0.0f; break; case IVAS_REND_AUDIO_CONFIG_MASA1: case IVAS_REND_AUDIO_CONFIG_MASA2: - inConfig.numMasaBuses = 1; - inConfig.masaBus.audioConfig = audioConfig; - inConfig.masaBus.inputChannelIndex = 0; - inConfig.masaBus.gain_dB = 0.0f; + inConfig->numMasaBuses = 1; + inConfig->masaBuses[0].audioConfig = audioConfig; + inConfig->masaBuses[0].inputChannelIndex = 0; + inConfig->masaBuses[0].gain_dB = 0.0f; break; case IVAS_REND_AUDIO_CONFIG_OBJECT: /* If input format is objects, parse the characters after "ISM" to get number of objects */ { char *ptr = NULL; - inConfig.numAudioObjects = (uint16_t) strtol( optionValues[0] + 3, &ptr, 10 ); + inConfig->numAudioObjects = (uint16_t) strtol( inFormatStr + 3, &ptr, 10 ); if ( ptr == NULL || *ptr != '\0' ) { /* Failed to parse string as a number */ - fprintf( stderr, "Cannot parse string \"%s\" as a valid input format", optionValues[0] ); + fprintf( stderr, "Cannot parse string \"%s\" as a valid input format", inFormatStr ); return false; } - if ( inConfig.numAudioObjects > RENDERER_MAX_ISM_INPUTS ) + if ( inConfig->numAudioObjects > RENDERER_MAX_ISM_INPUTS ) { fprintf( stderr, "Too many objects at input. Max %d supported.", RENDERER_MAX_ISM_INPUTS ); return false; } - for ( int32_t i = 0; i < inConfig.numAudioObjects; ++i ) + for ( int32_t i = 0; i < inConfig->numAudioObjects; ++i ) { - inConfig.audioObjects[i].audioConfig = audioConfig; - inConfig.audioObjects[i].inputChannelIndex = i; - inConfig.audioObjects[i].gain_dB = 0.0f; + inConfig->audioObjects[i].audioConfig = audioConfig; + inConfig->audioObjects[i].inputChannelIndex = i; + inConfig->audioObjects[i].gain_dB = 0.0f; } } break; @@ -920,56 +1083,49 @@ static bool parseInConfig( char **optionValues, CmdlnArgs *args ) /* This case will be reached if parsing string to IVAS_REND_AudioConfig enum fails. * Try to use the given string as a path to a custom loudspeaker layout file. */ { - ivas_error error = parseCustomLayoutFile( optionValues[0], &inConfig.inSetupCustom ); + ivas_error error = parseCustomLayoutFile( inFormatStr, &inConfig->inSetupCustom ); if ( error == IVAS_ERR_FAILED_FILE_OPEN ) { /* Failed to open with given string - most likely wasn't a file path */ - fprintf( stderr, "Unsupported input format: %s\n", optionValues[0] ); + fprintf( stderr, "Unsupported input format: %s\n", inFormatStr ); return false; } if ( error != IVAS_ERR_OK ) { - fprintf( stderr, "Error while reading custom loudspeaker layout file %s\n", optionValues[0] ); + fprintf( stderr, "Error while reading custom loudspeaker layout file %s\n", inFormatStr ); return false; } - inConfig.numMultiChannelBuses = 1; - inConfig.multiChannelBuses[0].audioConfig = IVAS_REND_AUDIO_CONFIG_LS_CUSTOM; - inConfig.multiChannelBuses[0].inputChannelIndex = 0; - inConfig.multiChannelBuses[0].gain_dB = 0.0f; + inConfig->numMultiChannelBuses = 1; + inConfig->multiChannelBuses[0].audioConfig = IVAS_REND_AUDIO_CONFIG_LS_CUSTOM; + inConfig->multiChannelBuses[0].inputChannelIndex = 0; + inConfig->multiChannelBuses[0].gain_dB = 0.0f; } break; default: /* Default case covers formats that are defined in the IVAS_REND_AudioConfig enum, * but cannot be used at input, e.g. BINAURAL */ - fprintf( stderr, "Unsupported input format: %s\n", optionValues[0] ); + fprintf( stderr, "Unsupported input format: %s\n", inFormatStr ); return false; - break; } - args->inConfig = inConfig; - return true; } -static bool parseInMetadata( char **optionValues, int32_t numValues, CmdlnArgs *args ) +static bool parseOutConfig( const char *outputFormatStr, OutputConfig *outConfig ) { - char charBuf[FILENAME_MAX]; + ivas_error error; - for ( int32_t i = 0; i < numValues; ++i ) + outConfig->audioConfig = parseAudioConfig( outputFormatStr ); + /* If the string provided is not recognized as a valid output config, + * it's expected to be a path to a custom loudspeaker layout description file. */ + if ( outConfig->audioConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { - strncpy( charBuf, optionValues[i], sizeof( charBuf ) - 1 ); - to_upper( charBuf ); - - if ( ( strcmp( charBuf, "NULL" ) == 0 ) ) - { - /* TODO(sgi): Test setting mtd file to NULL. Will default positions be provided? Seems that crash is likely in this case. */ - clearString( args->metaDataFiles[i] ); - } - else + outConfig->audioConfig = IVAS_REND_AUDIO_CONFIG_LS_CUSTOM; + if ( ( error = parseCustomLayoutFile( outputFormatStr, &outConfig->outSetupCustom ) ) != IVAS_ERR_OK ) { - strncpy( args->metaDataFiles[i], optionValues[i], FILENAME_MAX - 1 ); - convert_backslash( args->metaDataFiles[i] ); + fprintf( stderr, "Error while parsing output format option\n" ); + return false; } } @@ -1107,13 +1263,72 @@ static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ) return IVAS_REND_AUDIO_CONFIG_UNKNOWN; } -static CmdlnArgs defaultArgs( void ) +static CmdLnParser_Option findOptionById( int32_t id ) +{ + + for ( int32_t i = 0; i < numCliOptions; ++i ) + { + if ( cliOptions[i].id == id ) + { + return cliOptions[i]; + } + } + + /* Return first option if ID not matched */ + return cliOptions[0]; +} + +static bool checkRequiredArgs( CmdlnArgs args ) +{ + CmdLnParser_Option tmpOption; + + /* Check required arguments */ + bool missingRequiredArg = false; + if ( isEmptyString( args.inputFilePath ) ) + { + tmpOption = findOptionById( CmdLnOptionId_inputFile ); + fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption.match, tmpOption.matchShort ); + missingRequiredArg = true; + } + const bool singleInputSpecified = args.inConfig.numAudioObjects != 0 || + args.inConfig.numAmbisonicsBuses != 0 || + args.inConfig.numMultiChannelBuses != 0 || + args.inConfig.numMasaBuses != 0; + if ( !args.sceneDescriptionInput && !singleInputSpecified ) + { + /* Neither scene description input nor single-type input was specified on command line */ + tmpOption = findOptionById( CmdLnOptionId_inputFormat ); + fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption.match, tmpOption.matchShort ); + missingRequiredArg = true; + } + if ( isEmptyString( args.outputFilePath ) ) + { + tmpOption = findOptionById( CmdLnOptionId_outputFile ); + fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption.match, tmpOption.matchShort ); + missingRequiredArg = true; + } + if ( args.outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) + { + tmpOption = findOptionById( CmdLnOptionId_outputFormat ); + fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption.match, tmpOption.matchShort ); + missingRequiredArg = true; + } + if ( missingRequiredArg ) + { + CmdLnParser_printUsage( args.executableName, cliOptions, numCliOptions ); + } + + return !missingRequiredArg; +} + +static CmdlnArgs defaultArgs( const char *executableName ) { CmdlnArgs args; + strncpy( args.executableName, executableName, RENDERER_MAX_CLI_ARG_LENGTH ); clearString( args.inputFilePath ); clearString( args.outputFilePath ); - args.sampleRate = -1; + args.sampleRate = 0; args.inConfig.inSetupCustom.num_spk = 0; args.inConfig.inSetupCustom.num_lfe = 0; @@ -1126,118 +1341,87 @@ static CmdlnArgs defaultArgs( void ) args.outConfig.outSetupCustom.num_spk = 0; args.outConfig.outSetupCustom.num_lfe = 0; - args.orientationTracking = IVAS_ORIENT_TRK_REF; - clearString( args.trajectoryFile ); - clearString( args.customHrtfFile ); - clearString( args.renderConfigFile ); + for ( int32_t i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) + { + clearString( args.inMetadataFilePaths[i] ); + } + args.numInMetadataFiles = 0; - args.noDiegeticPan = 0; + clearString( args.headRotationFilePath ); + clearString( args.customHrtfFilePath ); + clearString( args.renderConfigFilePath ); + + args.orientationTracking = IVAS_ORIENT_TRK_REF; + args.noDiegeticPan = 0.0f; args.delayCompensationEnabled = true; args.quietModeEnabled = false; args.sceneDescriptionInput = false; args.inputGainGlobal = 1.0f; - for ( size_t i = 0; i < RENDERER_MAX_ISM_INPUTS; i++ ) - { - clearString( args.metaDataFiles[i] ); - } - return args; } -typedef enum -{ - CmdLnOptionId_inputFile = 1, - CmdLnOptionId_inputFormat, - CmdLnOptionId_outputFile, - CmdLnOptionId_outputFormat, - CmdLnOptionId_sampleRate, - CmdLnOptionId_trajFile, - CmdLnOptionId_customHrtfFile, - CmdLnOptionId_renderConfigFile, - CmdLnOptionId_noDiegeticPan, - CmdLnOptionId_orientationTracking, - CmdLnOptionId_customLfeRouting, - CmdLnOptionId_noDelayCmp, - CmdLnOptionId_quietModeEnabled, - CmdLnOptionId_inputMetadata, - CmdLnOptionId_listFormats, - CmdLnOptionId_inputGain, -} CmdLnOptionId; - static void parseOption( int32_t optionId, char **optionValues, int16_t numOptionValues, void *pOutputStruct ) { - ivas_error error; CmdlnArgs *args = pOutputStruct; - /* TODO(sgi): Parsing currently depends on order in which the options are given by the user. - * This causes a lot of errors and is unmaintainable for options that depend on each other. - * - * Solution: save all option values here as strings, parse strings afterwards once all values are known. - */ - switch ( optionId ) { case CmdLnOptionId_listFormats: - /* TODO tmu2sgi : only works when -i is specified too */ assert( numOptionValues == 0 ); printSupportedAudioConfigs(); exit( 0 ); case CmdLnOptionId_inputFile: assert( numOptionValues == 1 ); - strncpy( args->inputFilePath, optionValues[0], FILENAME_MAX - 1 ); + strncpy( args->inputFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; case CmdLnOptionId_inputFormat: assert( numOptionValues == 1 ); - if ( !parseInConfig( optionValues, args ) ) + if ( !parseInConfig( optionValues[0], &args->inConfig, &args->sceneDescriptionInput ) ) { - fprintf( stderr, "Error while parsing input format option\n" ); - exit( -1 ); + exit( -1 ); /* Error printout handled by failing function */ } break; case CmdLnOptionId_inputMetadata: assert( numOptionValues <= RENDERER_MAX_ISM_INPUTS ); - if ( !parseInMetadata( optionValues, numOptionValues, args ) ) + for ( int32_t i = 0; i < numOptionValues; ++i ) { - fprintf( stderr, "Error while parsing input metadata option\n" ); - exit( -1 ); + strncpy( args->inMetadataFilePaths[i], optionValues[i], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); } + args->numInMetadataFiles = numOptionValues; break; case CmdLnOptionId_outputFile: assert( numOptionValues == 1 ); - strncpy( args->outputFilePath, optionValues[0], FILENAME_MAX - 1 ); + strncpy( args->outputFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; case CmdLnOptionId_outputFormat: assert( numOptionValues == 1 ); - args->outConfig.audioConfig = parseAudioConfig( optionValues[0] ); - /* If the string provided is not recognized as a valid output config, - * it's expected to be a path to a custom loudspeaker layout description file. */ - if ( args->outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) + if ( !parseOutConfig( optionValues[0], &args->outConfig ) ) { - args->outConfig.audioConfig = IVAS_REND_AUDIO_CONFIG_LS_CUSTOM; - if ( ( error = parseCustomLayoutFile( optionValues[0], &args->outConfig.outSetupCustom ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "Error while parsing output format option\n" ); - exit( -1 ); - } + exit( -1 ); /* Error printout handled by failing function */ } break; case CmdLnOptionId_sampleRate: assert( numOptionValues == 1 ); - args->sampleRate = (int32_t) ( strtof( optionValues[0], NULL ) * 1000 ); + args->sampleRate = (int32_t) ( strtol( optionValues[0], NULL, 10 ) * 1000 ); + if ( args->sampleRate == 0 ) + { + fprintf( stderr, "Invalid sampling rate specified\n" ); + exit( -1 ); + } break; case CmdLnOptionId_trajFile: assert( numOptionValues == 1 ); - strncpy( args->trajectoryFile, optionValues[0], FILENAME_MAX - 1 ); + strncpy( args->headRotationFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; case CmdLnOptionId_customHrtfFile: assert( numOptionValues == 1 ); - strncpy( args->customHrtfFile, optionValues[0], FILENAME_MAX - 1 ); + strncpy( args->customHrtfFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; case CmdLnOptionId_renderConfigFile: assert( numOptionValues == 1 ); - strncpy( args->renderConfigFile, optionValues[0], FILENAME_MAX - 1 ); + strncpy( args->renderConfigFilePath, optionValues[0], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); break; case CmdLnOptionId_noDiegeticPan: assert( numOptionValues == 1 ); @@ -1268,7 +1452,12 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio break; case CmdLnOptionId_inputGain: assert( numOptionValues == 1 ); - args->inputGainGlobal = (float) atof( optionValues[0] ); /* TODO(sgi): atof doesn't detect if string doesn't represent a number, just returns zero */ + args->inputGainGlobal = strtof( optionValues[0], NULL ); + if ( args->inputGainGlobal == 0.0f ) + { + fprintf( stderr, "Invalid input gain specified\n" ); + exit( -1 ); + } break; default: assert( 0 && "This should be unreachable - all command line options should be explicitly handled." ); @@ -1278,124 +1467,19 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) { - /* TODO tmu2sgi: "requiredness" depends on the order things are parsed in */ - CmdLnParser_Option optionsToMatch[] = { - { - .id = CmdLnOptionId_inputFile, - .match = "input_file", - .matchShort = "i", - .isRequired = true, - .description = "Path to the input file (WAV, raw PCM or scene description file)", - }, - { - .id = CmdLnOptionId_inputFormat, - .match = "input_format", - .matchShort = "if", - .isRequired = true, - .description = "Audio format of input file (e.g. 5_1 or HOA3 or META, use -l for a list)", - }, - { - /* TODO tmu2sgi : make required dependent on -if? */ - .id = CmdLnOptionId_inputMetadata, - .match = "input_metadata", - .matchShort = "im", - .description = "Space-separated list of path to metadata files for ISM or MASA inputs", - }, - { - .id = CmdLnOptionId_outputFile, - .match = "output_file", - .matchShort = "o", - .isRequired = true, - .description = "Path to the output file", - }, - { - .id = CmdLnOptionId_outputFormat, - .match = "output_format", - .matchShort = "of", - .isRequired = true, - .description = "Output format to render.\nAlternatively, can be a custom loudspeaker layout file", - }, - { - .id = CmdLnOptionId_sampleRate, - .match = "sample_rate", - .matchShort = "fs", - .isRequired = true, /* TODO(sgi): Shouldn't be required */ - .description = "Input sampling rate in kHz (16, 32, 48)", /* TODO(sgi): Add sampling rate to scene description files */ - }, - { - .id = CmdLnOptionId_trajFile, - .match = "trajectory_file", - .matchShort = "tf", - .description = "Head rotation trajectory file for simulation of head tracking (only for BINAURAL and BINAURAL_ROOM outputs)", - }, - { - .id = CmdLnOptionId_customHrtfFile, - .match = "custom_hrtf", - .matchShort = "hrtf", - .description = "Custom HRTF file for binaural rendering (only for BINAURAL and BINAURAL_ROOM outputs)", - }, - { - .id = CmdLnOptionId_renderConfigFile, - .match = "render_config", - .matchShort = "rc", - .description = "Binaural renderer configuration file (only for BINAURAL and BINAURAL_ROOM outputs)", - }, - { - .id = CmdLnOptionId_noDiegeticPan, - .match = "no_diegetic_pan", - .matchShort = "ndp", - .description = "Panning mono no diegetic sound to stereo -1<= pan <= 1\nleft or l or 1->left, right or r or -1->right, center or c or 0 ->middle\n(todo: implementation)", - }, - { - .id = CmdLnOptionId_orientationTracking, - .match = "tracking_type", - .matchShort = "otr", - .description = "Head orientation tracking type: 'ref' or 'avg' (only for BINAURAL and BINAURAL_ROOM) (todo: check implementation)", - }, - { - /* TODO(sgi): Replace with more configurable input, e.g. ask for a list of triplets: (gain, azimuth, elevation) to place LFE signal */ - /* rename to "lfeHandling" */ - .id = CmdLnOptionId_customLfeRouting, - .match = "neverDropLfe", - .matchShort = "ndl", - .description = "[flag] If set, renderer tries to render LFE into other channels in an optimal way when rendering to configs w/o LFE", - }, - { - .id = CmdLnOptionId_noDelayCmp, - .match = "no_delay_cmp", - .matchShort = "ndc", - .description = "[flag] Turn off delay compensation", - }, - { - .id = CmdLnOptionId_quietModeEnabled, - .match = "quiet", - .matchShort = "q", - .description = "[flag] Limit printouts to terminal", - }, - { - .id = CmdLnOptionId_inputGain, - .match = "gain", - .matchShort = "g", - .description = "Input gain (linear, not in dB) to be applied to input audio file", - }, - { - .id = CmdLnOptionId_listFormats, - .match = "list", - .matchShort = "l", - .description = "List supported audio formats", - }, - }; + CmdlnArgs args = defaultArgs( argv[0] ); - CmdlnArgs parsedArgs = defaultArgs(); - int32_t numOptions = sizeof( optionsToMatch ) / sizeof( CmdLnParser_Option ); + if ( CmdLnParser_parseArgs( argc, argv, cliOptions, numCliOptions, &args, parseOption ) != 0 ) + { + exit( -1 ); /* Error printout handled by failing function */ + } - if ( CmdLnParser_parseArgs( argc, argv, optionsToMatch, numOptions, &parsedArgs, parseOption ) != 0 ) + if ( !checkRequiredArgs( args ) ) { - /* Error printout handled internally by CmdLnParser_parseArgs() */ - exit( -1 ); + exit( -1 ); /* Error printout handled by failing function */ } - return parsedArgs; + return args; } @@ -1760,12 +1844,12 @@ static void parseIsm( else /* If not a number, it is a relative path from main metadata file to a metadata file */ { char fullpath[FILENAME_MAX]; - *fullpath = '\0'; + fullpath[0] = '\0'; strncat( fullpath, inDir, strlen( inDir ) ); strncat( fullpath, line, sizeof( fullpath ) - strlen( fullpath ) - 1 ); if ( ( positionProvider->ismReaders[idx] = IsmFileReader_open( fullpath ) ) == NULL ) { - fprintf( stderr, "Error: ISM input metadata file %s could not be opened\n", line ); + fprintf( stderr, "Error: ISM input metadata file %s could not be opened\n", fullpath ); exit( -1 ); } } @@ -1817,12 +1901,14 @@ static void parseMc( char *line, static void parseMasa( char *line, + char *inDir, InputConfig *inConfig, - char *masaMetadataFilePath ) + MasaFileReader **masaReaders, + int32_t idx ) { readNextMetadataChunk( line, "\n" ); - parseInt32( line, &inConfig->masaBus.inputChannelIndex ); - --inConfig->masaBus.inputChannelIndex; /* Convert from 1-indexing */ + parseInt32( line, &inConfig->masaBuses[idx].inputChannelIndex ); + --inConfig->masaBuses[idx].inputChannelIndex; /* Convert from 1-indexing */ readNextMetadataChunk( line, "\n" ); @@ -1833,17 +1919,27 @@ static void parseMasa( sprintf( line, "MASA%c", numTcs ); } - inConfig->masaBus.audioConfig = parseAudioConfig( line ); + inConfig->masaBuses[idx].audioConfig = parseAudioConfig( line ); readNextMetadataChunk( line, "\n" ); - strcpy( masaMetadataFilePath, line ); + + char fullpath[FILENAME_MAX]; + fullpath[0] = '\0'; + strncat( fullpath, inDir, strlen( inDir ) ); + strncat( fullpath, line, sizeof( fullpath ) - strlen( fullpath ) - 1 ); + + if ( ( masaReaders[idx] = MasaFileReader_open( fullpath ) ) == NULL ) + { + fprintf( stderr, "Error: MASA metadata file %s could not be opened\n", fullpath ); + exit( -1 ); + } /* Read optional values */ - parseOptionalInputValues( line, &inConfig->masaBus.gain_dB ); + parseOptionalInputValues( line, &inConfig->masaBuses[idx].gain_dB ); } static ivas_error parseCustomLayoutFile( - char *filePath, + const char *filePath, IVAS_CUSTOM_LS_DATA *pLsSetupCustom ) { LsCustomFileReader *hLsCustomReader = NULL; @@ -1878,7 +1974,7 @@ static void parseMetadata( char *inDir, InputConfig *inConfig, IsmPositionProvider *positionProvider, - char *masaMetadataFilePath ) + MasaFileReader** masaReaders ) { char line[RENDERER_MAX_METADATA_LINE_LENGTH]; char *delimiter; @@ -1960,9 +2056,9 @@ static void parseMetadata( fprintf( stderr, "Metadata exceeds the supported number of MASA inputs\n" ); exit( -1 ); } - parseMasa( line, inConfig, masaMetadataFilePath ); + parseMasa( line, inDir, inConfig, masaReaders, counterMasaInputs - 1 ); } - else if ( line[0] == '\0' ) + else if ( isEmptyString(line) ) { fprintf( stderr, "Metadata string too short - expected %d inputs, found %d.\n", totalNumberOfAudioObjects, num_parsed_inputs ); exit( -1 ); @@ -1991,17 +2087,15 @@ static void parseMetadata( } } -static void parseConfigFile( char *path, char *audioFilePath, InputConfig *inConfig, IsmPositionProvider *positionProvider, char *masaMetadataFilePath ) +static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputConfig *inConfig, IsmPositionProvider *positionProvider, MasaFileReader** masaReaders ) { uint32_t inAudioFilePathLen; char inAudioFilePath[FILENAME_MAX]; - char inMasaFilePath[FILENAME_MAX]; uint32_t mtdStrLen; char mtdStr[RENDERER_MAX_METADATA_LENGTH]; char inDir[FILENAME_MAX]; char *lastSlash = NULL; - clearString( inMasaFilePath ); inAudioFilePathLen = FILENAME_MAX; mtdStrLen = RENDERER_MAX_METADATA_LENGTH; splitConfigFile( path, @@ -2015,7 +2109,7 @@ static void parseConfigFile( char *path, char *audioFilePath, InputConfig *inCon /* Trim config file path to get path to the dir containing it */ lastSlash = strrchr( path, SEP_FOLDER ); - *inDir = '\0'; + inDir[0] = '\0'; if ( lastSlash != NULL ) { strncat( inDir, path, ( lastSlash - path + 1 ) ); @@ -2026,15 +2120,7 @@ static void parseConfigFile( char *path, char *audioFilePath, InputConfig *inCon strcpy( audioFilePath, inDir ); strncat( audioFilePath, inAudioFilePath, inAudioFilePathLen ); - parseMetadata( mtdStr, inDir, inConfig, positionProvider, inMasaFilePath ); - - /* Append MASA file path (relative to config file location) - * to config file location path to get full absolute path */ - if ( inMasaFilePath[0] != '\0' ) - { - strcpy( masaMetadataFilePath, inDir ); - strcat( masaMetadataFilePath, inMasaFilePath ); - } + parseMetadata( mtdStr, inDir, inConfig, positionProvider, masaReaders ); } static void printSupportedAudioConfigs() @@ -2106,6 +2192,11 @@ static void clearString( char *str ) str[0] = '\0'; } +static bool isEmptyString( const char *str ) +{ + return str[0] == '\0'; +} + /*--------------------------------------------------------------------------* * convertInputBuffer() * diff --git a/lib_util/audio_file_reader.c b/lib_util/audio_file_reader.c index d391735a94..d2c38cbb17 100644 --- a/lib_util/audio_file_reader.c +++ b/lib_util/audio_file_reader.c @@ -32,6 +32,7 @@ #include "audio_file_reader.h" #include "tinywavein_c.h" +#include #include #include "wmops.h" @@ -54,12 +55,13 @@ static int8_t AudioFileReader_open_raw( static int8_t AudioFileReader_open_wav( AudioFileReader *self, const char *fileName, - uint32_t expSampleRate ) + int32_t *sampleRate ) { - uint32_t sampleRate, samplesInFile; + uint32_t sampleRate_, samplesInFile; int16_t bps; - self->wavFile = OpenWav( fileName, &sampleRate, &self->numChannels, &samplesInFile, &bps ); + self->wavFile = OpenWav( fileName, &sampleRate_, &self->numChannels, &samplesInFile, &bps ); + *sampleRate = sampleRate_; if ( !self->wavFile ) { @@ -67,21 +69,15 @@ static int8_t AudioFileReader_open_wav( return -1; } - if ( sampleRate != expSampleRate ) - { - fprintf( stderr, "Input wav file has unexpected samplerate (should be %d): %s\n", expSampleRate, fileName ); - return -1; - } - return 0; } /*! r: AudioFileReader handle */ ivas_error AudioFileReader_open( - AudioFileReader **audioReader, /* o : AudioFileReader handle */ - const char *fileName, /* i : path to wav/raw pcm file */ - uint32_t expSampleRate /* i : expected sample rate */ + AudioFileReader **audioReader, /* o : AudioFileReader handle */ + const char *fileName, /* i : path to wav/raw pcm file */ + int32_t *sampleRate /* o : sample rate of wav file, unused with pcm */ ) { AudioFileReader *self; @@ -108,7 +104,7 @@ ivas_error AudioFileReader_open( if ( fileNameLen > wavSuffixLen && strncmp( fileName + fileNameLen - wavSuffixLen, wavSuffix, wavSuffixLen ) == 0 ) { - retCode = AudioFileReader_open_wav( self, fileName, expSampleRate ); + retCode = AudioFileReader_open_wav( self, fileName, sampleRate ); } else { diff --git a/lib_util/audio_file_reader.h b/lib_util/audio_file_reader.h index d878e3cab4..0fc9b1f4a1 100644 --- a/lib_util/audio_file_reader.h +++ b/lib_util/audio_file_reader.h @@ -42,9 +42,9 @@ typedef struct AudioFileReader AudioFileReader; /* clang-format off */ ivas_error AudioFileReader_open( - AudioFileReader **audioReader, /* o : AudioFileReader handle */ - const char *fileName, /* i : path to wav/raw pcm file */ - uint32_t expSampleRate /* i : expected sample rate */ + AudioFileReader **audioReader, /* o : AudioFileReader handle */ + const char *fileName, /* i : path to wav/raw pcm file */ + int32_t *sampleRate /* o : sample rate of wav file, unused with pcm */ ); /*! r: number of read samples */ diff --git a/lib_util/cmdln_parser.c b/lib_util/cmdln_parser.c index 323ed3fee6..1904f880be 100644 --- a/lib_util/cmdln_parser.c +++ b/lib_util/cmdln_parser.c @@ -208,9 +208,8 @@ static int16_t parseOpts( int32_t argc, } /* If current argument is a recognized option or no more arguments left, parse current option into output struct*/ - if ( nextOpt != NULL || argIdx + 1 == argc ) + if ( nextOpt != NULL ) { - /* currOpt will be NULL when first nextOpt matches */ if ( currOpt != NULL ) { parseOption( currOpt->props.id, &argv[currOptIdx + 1], numValues, pOutputStruct ); @@ -225,21 +224,11 @@ static int16_t parseOpts( int32_t argc, } } - return 0; -} - -static int16_t validateOpts( const Option *opts, - int32_t numOpts ) -{ - for ( int32_t i = 0; i < numOpts; ++i ) + /* Parse last option */ + if ( currOpt != NULL ) { - const Option *currOpt = &opts[i]; - - if ( currOpt->props.isRequired && !currOpt->hasBeenParsed ) - { - fprintf( stderr, "Error: option --%s (-%s) is required, but was not provided\n", currOpt->props.match, currOpt->props.matchShort ); - return -1; - } + parseOption( currOpt->props.id, &argv[currOptIdx + 1], numValues, pOutputStruct ); + currOpt->hasBeenParsed = 1; } return 0; @@ -361,15 +350,16 @@ int16_t CmdLnParser_parseArgs( int32_t argc, goto fail; } - /* Validate parsed options */ - if ( validateOpts( opts, numOptions ) != 0 ) - { - goto fail; - } - return 0; fail: printUsage( argv[0], optionProps, numOptions ); return -1; } + +void CmdLnParser_printUsage( char *executableName, + const CmdLnParser_Option *options, + int32_t numOptions ) +{ + printUsage( executableName, options, numOptions ); +} diff --git a/lib_util/cmdln_parser.h b/lib_util/cmdln_parser.h index a50defcdbb..8fecc70d9e 100644 --- a/lib_util/cmdln_parser.h +++ b/lib_util/cmdln_parser.h @@ -43,7 +43,6 @@ typedef struct int32_t id; const char *match; const char *matchShort; - bool isRequired; const char *description; } CmdLnParser_Option; @@ -61,4 +60,8 @@ int16_t CmdLnParser_parseArgs( int32_t argc, void *pOutputStruct, CmdLnParser_FnPtr_ParseOption parseOption ); +void CmdLnParser_printUsage( char *executableName, + const CmdLnParser_Option *options, + int32_t numOptions ); + #endif /* CMDLN_PARSER_H */ diff --git a/lib_util/ls_custom_file_reader.c b/lib_util/ls_custom_file_reader.c index 1713f55af4..58d78de068 100644 --- a/lib_util/ls_custom_file_reader.c +++ b/lib_util/ls_custom_file_reader.c @@ -52,7 +52,7 @@ struct LsCustomFileReader *-----------------------------------------------------------------------*/ ivas_error CustomLsReader_open( - char *LsFilePath, /* i : LS custom layout file name */ + const char *LsFilePath, /* i : LS custom layout file name */ LsCustomFileReader **hLsCustomReader /* o : HeadRotFileReader handle */ ) { diff --git a/lib_util/ls_custom_file_reader.h b/lib_util/ls_custom_file_reader.h index 3f9e0d56d3..e35c06ea88 100644 --- a/lib_util/ls_custom_file_reader.h +++ b/lib_util/ls_custom_file_reader.h @@ -65,7 +65,7 @@ typedef enum _LS_CUSTOM_FILEREADER_ERROR *-----------------------------------------------------------------------*/ ivas_error CustomLsReader_open( - char *LsFilePath, /* i : LS custom layout file name */ + const char *LsFilePath, /* i : LS custom layout file name */ LsCustomFileReader **hLsCustomReader /* o : HeadRotFileReader handle */ ); -- GitLab From fbbe2a201c83314c7b9848f5627feb120c29f5d2 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Tue, 18 Oct 2022 10:28:09 +0200 Subject: [PATCH 249/479] Include missing change from last commit --- apps/renderer.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index 17bd22fdd7..6b229bd66f 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -1263,31 +1263,30 @@ static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ) return IVAS_REND_AUDIO_CONFIG_UNKNOWN; } -static CmdLnParser_Option findOptionById( int32_t id ) +static const CmdLnParser_Option* findOptionById( int32_t id ) { for ( int32_t i = 0; i < numCliOptions; ++i ) { if ( cliOptions[i].id == id ) { - return cliOptions[i]; + return &cliOptions[i]; } } - /* Return first option if ID not matched */ - return cliOptions[0]; + return NULL; } static bool checkRequiredArgs( CmdlnArgs args ) { - CmdLnParser_Option tmpOption; + const CmdLnParser_Option* tmpOption; /* Check required arguments */ bool missingRequiredArg = false; if ( isEmptyString( args.inputFilePath ) ) { tmpOption = findOptionById( CmdLnOptionId_inputFile ); - fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption.match, tmpOption.matchShort ); + fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption->match, tmpOption->matchShort ); missingRequiredArg = true; } const bool singleInputSpecified = args.inConfig.numAudioObjects != 0 || @@ -1298,19 +1297,19 @@ static bool checkRequiredArgs( CmdlnArgs args ) { /* Neither scene description input nor single-type input was specified on command line */ tmpOption = findOptionById( CmdLnOptionId_inputFormat ); - fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption.match, tmpOption.matchShort ); + fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption->match, tmpOption->matchShort ); missingRequiredArg = true; } if ( isEmptyString( args.outputFilePath ) ) { tmpOption = findOptionById( CmdLnOptionId_outputFile ); - fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption.match, tmpOption.matchShort ); + fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption->match, tmpOption->matchShort ); missingRequiredArg = true; } if ( args.outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_UNKNOWN ) { tmpOption = findOptionById( CmdLnOptionId_outputFormat ); - fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption.match, tmpOption.matchShort ); + fprintf( stderr, "Missing required argument: %s (%s)\n", tmpOption->match, tmpOption->matchShort ); missingRequiredArg = true; } if ( missingRequiredArg ) -- GitLab From d5f00f39299d3b3c1e23d48b58a144ad9a8d899a Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Tue, 18 Oct 2022 10:29:45 +0200 Subject: [PATCH 250/479] Minor whitespace fix --- apps/renderer.c | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/renderer.c b/apps/renderer.c index 6b229bd66f..08dd6f4e0d 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -1265,7 +1265,6 @@ static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ) static const CmdLnParser_Option* findOptionById( int32_t id ) { - for ( int32_t i = 0; i < numCliOptions; ++i ) { if ( cliOptions[i].id == id ) -- GitLab From 87614157bd3c6345e8e3132fd072209939d39e00 Mon Sep 17 00:00:00 2001 From: norvell Date: Tue, 18 Oct 2022 09:34:33 +0000 Subject: [PATCH 251/479] Change name of merge request comparison jobs to have ivas- and evs- in the beginning. This way it is more visible in the pipeline overview where the names are shortened. --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d028ce9356..1e35837393 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -312,7 +312,7 @@ asan-on-merge-request-linux: # compare bit exactness between target and source branch -pytest-on-merge-request-ivas: +ivas-pytest-on-merge-request: extends: - .test-job-linux - .rules-merge-request @@ -362,7 +362,7 @@ pytest-on-merge-request-ivas: junit: - report-junit.xml -pytest-on-merge-request-evs: +evs-pytest-on-merge-request: extends: - .test-job-linux - .rules-merge-request -- GitLab From 36a462ba3d7f97a7ecf9d2eb4d6610486a7d2d5e Mon Sep 17 00:00:00 2001 From: Srikanth Korse Date: Tue, 18 Oct 2022 14:29:56 +0200 Subject: [PATCH 252/479] [Fix] Fix for issue 155. Changes BE for ParamISM modes --- lib_com/options.h | 1 + lib_enc/ivas_init_enc.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index ff4cf5f346..5906991cdf 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -151,6 +151,7 @@ #define CORECODER_BITRATE_SWITCHING /* Issue 133: support bitrate switching in core-coder */ #define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ #define SBA_SPAR_HARM /* Issue 92: maintenance of the SBA SPAR functions */ +#define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index e4db2ce2a1..8d79594c7e 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -190,6 +190,12 @@ int16_t getNumChanAnalysis( { n = st_ivas->hEncoderConfig->nchan_inp; } +#ifdef FIX_155_HP20_ISSUE + else if ( st_ivas->hEncoderConfig->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) + { + n = st_ivas->hEncoderConfig->nchan_inp; + } +#endif return n; } -- GitLab From 1cf189c7388a713834f052126ed8debd2e8f128b Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Tue, 18 Oct 2022 15:51:43 +0200 Subject: [PATCH 253/479] fix compile errors with DEBUG_SBA and DEBUG_SBA_MD_DUMP --- lib_debug/sba_debug.c | 2 +- lib_debug/sba_debug.h | 2 +- lib_dec/ivas_spar_md_dec.c | 29 ++++++++++++++++------------- lib_enc/ivas_spar_encoder.c | 1 + 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/lib_debug/sba_debug.c b/lib_debug/sba_debug.c index fb3b208f3f..68fd39f4c0 100644 --- a/lib_debug/sba_debug.c +++ b/lib_debug/sba_debug.c @@ -185,7 +185,7 @@ static void UpdateWave( void ivas_spar_dump_signal_wav( const int16_t input_frame, float **ppPcm, - float pcm_array[IVAS_MAX_NUM_CH][L_FRAME48k], + float pcm_array[IVAS_SPAR_MAX_CH][L_FRAME48k], const int16_t no_channel, WAVEFILEOUT *wave_file, char *location ) diff --git a/lib_debug/sba_debug.h b/lib_debug/sba_debug.h index 8153929286..86e07e5a41 100644 --- a/lib_debug/sba_debug.h +++ b/lib_debug/sba_debug.h @@ -50,7 +50,7 @@ extern WAVEFILEOUT *spar_foa_dec_wav[4]; void ivas_close_agc_debug_files( void ); void ivas_open_agc_debug_files( int16_t agc ); #endif -void ivas_spar_dump_signal_wav( const int16_t input_frame, float **ppPcm, float pcm_array[IVAS_MAX_NUM_CH][L_FRAME48k], const int16_t no_channel, WAVEFILEOUT *wave_file, char *location ); +void ivas_spar_dump_signal_wav( const int16_t input_frame, float **ppPcm, float pcm_array[IVAS_SPAR_MAX_CH][L_FRAME48k], const int16_t no_channel, WAVEFILEOUT *wave_file, char *location ); void ivas_close_sba_encoder_debug_files( void ); void ivas_open_sba_encoder_debug_files( const int32_t fs, const int16_t n_transport, const char *file_tag, const int32_t ivas_total_brate, const int16_t dtx_on ); void ivas_close_sba_decoder_debug_files( const int32_t fs, const int16_t n_ch, const int16_t n_transport, const int16_t pca_ingest_channels ); diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 7f01f64c0f..d91b893733 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -645,7 +645,7 @@ void ivas_spar_md_dec_process( ( b == 0 && frame == 0 ) ? dbgwrite( &byte_size, sizeof( byte_size ), 1, 1, f_name ) : false; for ( j = 0; j < ( hMdDec->spar_md_cfg.num_decorr_per_band[bw * b] - hMdDec->spar_md_cfg.num_dmx_chans_per_band[bw * b] ); j++ ) { - for ( int16_t k = 0; k < hMdDec->spar_md_cfg.num_dmx_chans_per_band[bw * b] - 1; k++ ) + for ( k = 0; k < hMdDec->spar_md_cfg.num_dmx_chans_per_band[bw * b] - 1; k++ ) { dbgwrite( &hMdDec->spar_md.band_coeffs[b].C_re[j][k], sizeof( float ), 1, 1, f_name ); } @@ -1397,21 +1397,24 @@ void ivas_spar_dec_gen_umx_mat( } } } -#ifdef SPAR_HOA_DBG - - /* for ( b = 0; b < 1; b++) +#ifdef DEBUG_SBA_MD_DUMP { - fprintf( stdout, "\n\nMixer Matrix band %d\n\n", b ); - for ( i = 0; i < num_out_ch; i++ ) + static FILE *f_mat = 0; + + if ( f_mat == 0 ) + f_mat = fopen( "mixer_mat_dec", "w" ); + + for ( i = 0; i < num_out_ch; i++ ) + { + for ( j = 0; j < num_out_ch; j++ ) { - for ( j = 0; j < num_out_ch; j++ ) - { - fprintf( stdout, "%.2f,\t", hMdDec->mixer_mat[i][j][0][b] ); - } - fprintf( stdout, "\n" ); + for ( b = 0; b < num_bands_out; b++ ) + { + fprintf( f_mat, "%f\n", hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] ); + } } - fprintf( stdout, "\n" ); - }*/ + } + } #endif ivas_spar_dec_compute_ramp_down_post_matrix( hMdDec, num_bands_out, bfi ); diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 6c17a5711e..988a8fa013 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -788,6 +788,7 @@ static ivas_error ivas_spar_enc_process( #ifdef DEBUG_SBA_MD_DUMP { + int16_t k; static FILE *f_mat = 0; if ( f_mat == 0 ) -- GitLab From df85da53ea3e38673f313dd9ad7827d2235aa588 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Wed, 19 Oct 2022 09:47:58 +0200 Subject: [PATCH 254/479] fix compiler warning --- lib_com/options.h | 4 ++-- lib_enc/ivas_spar_md_enc.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 5906991cdf..ce0fa4da5a 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -114,10 +114,10 @@ /*#define TDREND_HRTF_TABLE_METHODS*/ /* Enable HRTF lookup from tables, for testing & evaluation. Supply file in table format to use. Note that a suitable HR filter lookup method should be written if the filters sample point grids are not in the formats. */ /*#define TDREND_STANDALONE*/ /* Used when renderer is built in standalone form, without IVAS encoding/decoding (see scripts/object_renderer_standalone). This is just here to ensure this is cleaned out by prepare_instrumentation.sh */ -/*#define DEBUG_SBA*/ /* debug DIRAC/SPAR in-out */ +#define DEBUG_SBA /* debug DIRAC/SPAR in-out */ #ifdef DEBUG_SBA /*#define DEBUG_SBA_AUDIO_DUMP*/ /* SBA intermediate audio wav file dumping */ -/*#define DEBUG_SBA_MD_DUMP*/ /* SBA metadata and variable file dumping */ +#define DEBUG_SBA_MD_DUMP /* SBA metadata and variable file dumping */ /*#define DEBUG_SPAR_MD_TARGET_TUNING*/ /* SPAR MD target bitrate tuning debug code */ /*#define DEBUG_SPAR_BYPASS_EVS_CODEC*/ /* bypass EVS coding in float precision, emulating EVS encoder/decoder delay */ /*#define DEBUG_SPAR_WRITE_OUT_COV*/ /* write covariance per frame into a text file for verification */ diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 7ae45903d5..ce8a0e3bc1 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -1033,6 +1033,8 @@ ivas_error ivas_spar_md_enc_process( byte_size = sizeof( float ); for ( b = 0; b < nB; b++ ) { + ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[b * bands_bw]; + sprintf( f_name, "spar_band_pred_coeffs.bin" ); ( b == 0 && frame == 0 ) ? dbgwrite( &nB, sizeof( nB ), 1, 1, f_name ) : false; num_elements = num_ch - 1; -- GitLab From 15b5ddad49a75daf2244b6f5836350a261da1297 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Wed, 19 Oct 2022 10:09:52 +0200 Subject: [PATCH 255/479] disable debug switches DEBUG_SBA and DEBUG_SBA_MD_DUMP again --- lib_com/options.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index ce0fa4da5a..5906991cdf 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -114,10 +114,10 @@ /*#define TDREND_HRTF_TABLE_METHODS*/ /* Enable HRTF lookup from tables, for testing & evaluation. Supply file in table format to use. Note that a suitable HR filter lookup method should be written if the filters sample point grids are not in the formats. */ /*#define TDREND_STANDALONE*/ /* Used when renderer is built in standalone form, without IVAS encoding/decoding (see scripts/object_renderer_standalone). This is just here to ensure this is cleaned out by prepare_instrumentation.sh */ -#define DEBUG_SBA /* debug DIRAC/SPAR in-out */ +/*#define DEBUG_SBA*/ /* debug DIRAC/SPAR in-out */ #ifdef DEBUG_SBA /*#define DEBUG_SBA_AUDIO_DUMP*/ /* SBA intermediate audio wav file dumping */ -#define DEBUG_SBA_MD_DUMP /* SBA metadata and variable file dumping */ +/*#define DEBUG_SBA_MD_DUMP*/ /* SBA metadata and variable file dumping */ /*#define DEBUG_SPAR_MD_TARGET_TUNING*/ /* SPAR MD target bitrate tuning debug code */ /*#define DEBUG_SPAR_BYPASS_EVS_CODEC*/ /* bypass EVS coding in float precision, emulating EVS encoder/decoder delay */ /*#define DEBUG_SPAR_WRITE_OUT_COV*/ /* write covariance per frame into a text file for verification */ -- GitLab From 13387473b44de732c19e7e8b23533c5fb8979f0d Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Wed, 19 Oct 2022 11:23:07 +0200 Subject: [PATCH 256/479] move debug-output block inside the time-slot loop in ivas_spar_dec_gen_umx_mat --- lib_dec/ivas_spar_md_dec.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index d91b893733..f192228e81 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -1396,26 +1396,27 @@ void ivas_spar_dec_gen_umx_mat( } } } - } + #ifdef DEBUG_SBA_MD_DUMP - { - static FILE *f_mat = 0; + { + static FILE *f_mat = 0; - if ( f_mat == 0 ) - f_mat = fopen( "mixer_mat_dec", "w" ); + if ( f_mat == 0 ) + f_mat = fopen( "mixer_mat_dec", "w" ); - for ( i = 0; i < num_out_ch; i++ ) - { - for ( j = 0; j < num_out_ch; j++ ) + for ( i = 0; i < num_out_ch; i++ ) { - for ( b = 0; b < num_bands_out; b++ ) + for ( j = 0; j < num_out_ch; j++ ) { - fprintf( f_mat, "%f\n", hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] ); + for ( b = 0; b < num_bands_out; b++ ) + { + fprintf( f_mat, "%f\n", hMdDec->mixer_mat[i][j][b + i_ts * IVAS_MAX_NUM_BANDS] ); + } } } } - } #endif + } ivas_spar_dec_compute_ramp_down_post_matrix( hMdDec, num_bands_out, bfi ); -- GitLab From 5cd288ff024b834c8faf6da482ab52af21f2419a Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 19 Oct 2022 14:19:09 +0200 Subject: [PATCH 257/479] fix build when SBA_SPAR_HARM is disabled --- lib_com/ivas_cov_smooth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/ivas_cov_smooth.c b/lib_com/ivas_cov_smooth.c index 4584303293..0015871287 100644 --- a/lib_com/ivas_cov_smooth.c +++ b/lib_com/ivas_cov_smooth.c @@ -267,7 +267,7 @@ void ivas_cov_smooth_process( #ifdef SBA_SPAR_HARM ivas_compute_smooth_cov( hCovState, pFb, cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band, num_ch, transient_det ); #else - ivas_compute_smooth_cov( hCovState, pFb, pIn_buf->cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band, num_ch, transient_det ); + ivas_compute_smooth_cov( hCovState, pIn_buf, pFb, pIn_buf->cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band ); #endif for ( i = 0; i < num_ch; i++ ) -- GitLab From 8ca6b98bf9a8dce1d2a0390a6703a6134ba94699 Mon Sep 17 00:00:00 2001 From: norvell Date: Wed, 19 Oct 2022 15:15:48 +0000 Subject: [PATCH 258/479] Clean out two unused variables --- .gitlab-ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1e35837393..7948146179 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -325,8 +325,6 @@ ivas-pytest-on-merge-request: # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true - - expected_nonbe_1=0 - - fail_1=0 ### prepare pytest # create short test vectors -- GitLab From f233f1a279f8621c36e52ec89f25df25faaa1ab4 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 19 Oct 2022 17:36:05 +0200 Subject: [PATCH 259/479] run configureFdCngEnc() at first frame in pre processing --- lib_enc/ivas_core_pre_proc_front.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/ivas_core_pre_proc_front.c b/lib_enc/ivas_core_pre_proc_front.c index 51a549505f..b4336bdf62 100644 --- a/lib_enc/ivas_core_pre_proc_front.c +++ b/lib_enc/ivas_core_pre_proc_front.c @@ -553,7 +553,7 @@ ivas_error pre_proc_front_ivas( * Adjust FD-CNG Noise Estimator *----------------------------------------------------------------*/ - if ( st->hFdCngEnc != NULL && ( last_element_brate != element_brate || st->last_bwidth != st->bwidth ) ) + if ( st->hFdCngEnc != NULL && ( st->ini_frame == 0 || last_element_brate != element_brate || st->last_bwidth != st->bwidth ) ) { configureFdCngEnc( st->hFdCngEnc, max( st->input_bwidth, WB ), st->bits_frame_nominal * FRAMES_PER_SEC ); if ( hCPE != NULL ) -- GitLab From 13bed1083cbfbe860bfacc6d71356b8dad5e1082 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 19 Oct 2022 18:21:17 +0200 Subject: [PATCH 260/479] fix EFAP polygon selection in C (EFAP_FIX_POLY) and Python --- lib_com/options.h | 1 + lib_dec/ivas_efap.c | 106 +++++++++++++++++++++++++++++++-- scripts/pyaudio3dtools/EFAP.py | 34 +++++++++-- 3 files changed, 129 insertions(+), 12 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 5906991cdf..b78976fe89 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -152,6 +152,7 @@ #define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ #define SBA_SPAR_HARM /* Issue 92: maintenance of the SBA SPAR functions */ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ +#define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ diff --git a/lib_dec/ivas_efap.c b/lib_dec/ivas_efap.c index 602fd24161..4c1f367cb6 100644 --- a/lib_dec/ivas_efap.c +++ b/lib_dec/ivas_efap.c @@ -83,7 +83,7 @@ static void get_poly_gains( const float azi, const float ele, const float aziPol static float get_tri_gain( const float A[2], const float B[2], const float C[2], const float P_minus_A[2] ); -#if defined( DEBUG_EFAP_POLY_TOFILE ) +#ifdef DEBUG_EFAP_POLY_TOFILE static void get_poly_select( EFAP_POLYSET_DATA *polyData ); #endif @@ -96,11 +96,13 @@ static void add_vertex( EFAP_VERTEX *vtxArray, const float azi, const float ele, static void efap_sort_s( int16_t *x, int16_t *idx, const int16_t len ); - static float vertex_distance( const EFAP_VERTEX *vtxArray, const EFAP_LS_TRIANGLE tri, const int16_t vtxIdx ); static float point_plane_distance( const float P1[3], const float P2[3], const float P3[3], const float X[3] ); +#ifdef EFAP_FIX_POLY +static float point_poly_distance( const EFAP_POLYSET poly, const float X[3] ); +#endif static void efap_crossp( const float *v1, const float *v2, float *v ); static int16_t find_int_in_tri( const EFAP_LS_TRIANGLE *tri, const int16_t n, const int16_t r, int16_t *pos ); @@ -125,6 +127,9 @@ static int16_t in_poly( const float P[2], const EFAP_POLYSET poly ); static int16_t in_tri( float A[2], float B[2], float C[2], float P_minus_A[2] ); +#ifdef EFAP_FIX_POLY +static void sph2cart( const float azi, const float ele, float *pos ); +#endif /*-----------------------------------------------------------------------* * Global function definitions @@ -462,14 +467,14 @@ static ivas_error poly_init( efap->polyData.numPoly = finalLength; -#if defined( DEBUG_EFAP_POLY_TOFILE ) +#ifdef DEBUG_EFAP_POLY_TOFILE get_poly_select( &efap->polyData ); #endif return error; } -#if defined( DEBUG_EFAP_POLY_TOFILE ) +#ifdef DEBUG_EFAP_POLY_TOFILE static void get_poly_select( EFAP_POLYSET_DATA *polyData /* o : Polygon data structure */ ) @@ -1497,9 +1502,13 @@ static void add_vertex( vtxArray[pos].ele = ( ( -180.0f > tmp ) ? -180.0f : tmp ); /* Converting spherical coordinates to cartesians, assuming radius = 1 */ +#ifdef EFAP_FIX_POLY + sph2cart( vtxArray[pos].azi, vtxArray[pos].ele, &vtxArray[pos].pos[0] ); +#else vtxArray[pos].pos[0] = cosf( vtxArray[pos].azi * PI_OVER_180 ) * cosf( vtxArray[pos].ele * PI_OVER_180 ); vtxArray[pos].pos[1] = sinf( vtxArray[pos].azi * PI_OVER_180 ) * cosf( vtxArray[pos].ele * PI_OVER_180 ); vtxArray[pos].pos[2] = sinf( vtxArray[pos].ele * PI_OVER_180 ); +#endif /* Computing the index defined by idx = idxAziTmp + 181 * idxEleTmp */ @@ -1591,11 +1600,32 @@ static float vertex_distance( return point_plane_distance( A, B, C, P ); } +#ifdef EFAP_FIX_POLY +/*-------------------------------------------------------------------------* + * point_plane_distance() + * + * Compute the signed distance between a point and polygon + *-------------------------------------------------------------------------*/ + +static float point_poly_distance( + const EFAP_POLYSET poly, /* i : The polygon which forms a plane */ + const float X[3] /* i : Cartesian coordinates of the point of interest */ +) +{ + float P1[3], P2[3], P3[3]; + + sph2cart( poly.polyAzi[0], poly.polyEle[0], &P1[0] ); + sph2cart( poly.polyAzi[1], poly.polyEle[1], &P2[0] ); + sph2cart( poly.polyAzi[2], poly.polyEle[2], &P3[0] ); + + return point_plane_distance( P1, P2, P3, X ); +} +#endif /*-------------------------------------------------------------------------* * point_plane_distance() * - * Compute the signed distance between a point a given plane + * Compute the signed distance between a point and a given plane *-------------------------------------------------------------------------*/ static float point_plane_distance( @@ -2082,16 +2112,63 @@ static int16_t get_poly_num( ) { int16_t i; +#ifdef EFAP_FIX_POLY + int16_t num_poly, found_poly; + int16_t poly_tmp[9], poly_dist[9]; + + float dist_tmp; + float pos[3]; + + num_poly = 0; + sph2cart( P[0], P[1], &pos[0] ); + + /* Filter the polygon list with a fast 2d check */ +#endif for ( i = 0; i < polyData->numPoly; ++i ) { if ( in_poly( P, polyData->polysetArray[i] ) ) { +#ifdef EFAP_FIX_POLY + /* select only polygons which are visible from the point */ + dist_tmp = point_poly_distance( polyData->polysetArray[i], pos ); + if ( dist_tmp == 0 ) + { + return i; + } + else if ( dist_tmp > 0 ) + { + poly_tmp[num_poly] = i; + poly_dist[num_poly] = dist_tmp; + num_poly++; + } +#else return i; +#endif + } + } +#ifdef EFAP_FIX_POLY + if ( num_poly == 0 ) + { + return -1; + } + + /* select the polygon with the smallest distance */ + found_poly = poly_tmp[0]; + dist_tmp = poly_dist[0]; + for ( i = 1; i < num_poly; i++ ) + { + if ( poly_dist[i] < dist_tmp ) + { + found_poly = poly_tmp[i]; + dist_tmp = poly_dist[i]; } } + return found_poly; +#else return -1; +#endif } @@ -2216,7 +2293,7 @@ static int16_t in_tri( S[0] = ( matInv[0][0] * P_minus_A[0] ) + ( matInv[0][1] * P_minus_A[1] ); S[1] = ( matInv[1][0] * P_minus_A[0] ) + ( matInv[1][1] * P_minus_A[1] ); - /* Checking if we are in the triangle; For the theory, check Christian Borss article, section 3.2 */ + /* Checking if we are in the triangle; For the theory, check Christian Borss article, section 3.2 */ if ( S[0] < -thresh || S[1] < -thresh || S[0] + S[1] > 1 + thresh ) { return 0; @@ -2226,3 +2303,20 @@ static int16_t in_tri( return 1; } } + +/*-------------------------------------------------------------------------* + * sph2cart() + * + * Converts a vertex position to cartesian coordinates + *-------------------------------------------------------------------------*/ + +static void sph2cart( + const float azi, /* i : Azimuth in degrees */ + const float ele, /* i : Elevation in degrees */ + float *pos /* o : Cartesian coordinates vector (x, y, z) */ +) +{ + pos[0] = cosf( azi * PI_OVER_180 ) * cosf( ele * PI_OVER_180 ); + pos[1] = sinf( azi * PI_OVER_180 ) * cosf( ele * PI_OVER_180 ); + pos[2] = sinf( ele * PI_OVER_180 ); +} diff --git a/scripts/pyaudio3dtools/EFAP.py b/scripts/pyaudio3dtools/EFAP.py index e5b4219cc0..5014cd168c 100644 --- a/scripts/pyaudio3dtools/EFAP.py +++ b/scripts/pyaudio3dtools/EFAP.py @@ -744,18 +744,40 @@ class EFAP: raise ValueError(f"Angles cannot be NaNs : ({azimuth}, {elevation})") azimuth, elevation = wrap_angles(azimuth, elevation) + point_pos = [ + np.cos(np.deg2rad(azimuth)) * np.cos(np.deg2rad(elevation)), + np.sin(np.deg2rad(azimuth)) * np.cos(np.deg2rad(elevation)), + np.sin(np.deg2rad(elevation)), + ] - # find the polygon corresponding to the given point - found_poly = None - mod = None + # filter the polygon list with a quick 2d check + found_polys = [] for poly in self.polys: in_poly, mod = self._in_polygon(azimuth, elevation, poly) if in_poly: - found_poly = poly - break - else: + found_polys.append((poly, mod)) + + if not found_polys: raise AssertionError("Unexpected error during panning") + # find a visible polygon with the smallest distance + dist = [] + + for poly, mod in found_polys: + surface = self.verts[poly] + d = self._point_plane_dist( + surface[0].pos, + surface[1].pos, + surface[2].pos, + point_pos, + ) + if d >= 0: + dist.append(d) + else: + dist.append(np.inf) + + found_poly, mod = found_polys[np.argmin(dist)] + # compute gains for the polygon vertices poly_gain = self._pan_EFAP_poly(azimuth, elevation, found_poly, mod) -- GitLab From ac968498086344a06fd9f3ba8347bf55e1175e1b Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 19 Oct 2022 18:32:20 +0200 Subject: [PATCH 261/479] [cleanup] use a define for buffer sizes --- lib_dec/ivas_efap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/ivas_efap.c b/lib_dec/ivas_efap.c index 4c1f367cb6..482edfb643 100644 --- a/lib_dec/ivas_efap.c +++ b/lib_dec/ivas_efap.c @@ -2114,7 +2114,7 @@ static int16_t get_poly_num( int16_t i; #ifdef EFAP_FIX_POLY int16_t num_poly, found_poly; - int16_t poly_tmp[9], poly_dist[9]; + int16_t poly_tmp[EFAP_MAX_CHAN_NUM], poly_dist[EFAP_MAX_CHAN_NUM]; float dist_tmp; float pos[3]; -- GitLab From 7f5f77b11358cb0228f8c1716a6ce0a050cd672e Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 19 Oct 2022 18:42:27 +0200 Subject: [PATCH 262/479] remove WMC_TOOL_MAN and fix instrumented build --- lib_rend/lib_rend.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index b31ffafac5..78522b1a83 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -1963,13 +1963,13 @@ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( return error; } initLimiter( &hIvasRend->hLimiter, - numOutChannels, - hIvasRend->sampleRateOut ); + numOutChannels, + hIvasRend->sampleRateOut ); /* Re-initialize EFAP - output layout has changed or has been fully defined for the first time */ initEfap( &hIvasRend->efapOutWrapper, - hIvasRend->outputConfig, - &hIvasRend->customLsOut ); + hIvasRend->outputConfig, + &hIvasRend->customLsOut ); /* Re-initialize panning gains for each active MC input, This includes re-initializing * LFE handling for the new output layout, which means custom LFE handling is overwritten, @@ -2249,9 +2249,9 @@ ivas_error IVAS_REND_AddInput( /* Find first free input in array corresponding to input type */ if ( ( error = findFreeInputSlot( inputsArray, - inputStructSize, - maxNumInputsOfType, - &inputIndex ) ) != IVAS_ERR_OK ) + inputStructSize, + maxNumInputsOfType, + &inputIndex ) ) != IVAS_ERR_OK ) { return error; } @@ -3464,6 +3464,7 @@ static ivas_error renderMcCustomLsToBinauralRoom( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; IVAS_REND_AudioBuffer tmpMcBuffer; + IVAS_REND_AudioBuffer *tmpBufPtr; headRotEnabled = mcInput->base.ctx.pHeadRotData->headRotEnabled; @@ -3490,14 +3491,13 @@ static ivas_error renderMcCustomLsToBinauralRoom( tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels ); + tmpBufPtr = ( headRotEnabled ) ? &tmpRotBuffer : &mcInput->base.inputBuffer; for ( i = 0; i < mcInput->base.inputBuffer.config.numChannels; i++ ) { -#define WMC_TOOL_MAN - renderBufferChannel( ( headRotEnabled ) ? tmpRotBuffer : mcInput->base.inputBuffer, + renderBufferChannel( *tmpBufPtr, i, mcInput->panGains[i], tmpMcBuffer ); -#undef WMC_TOOL_MAN } copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); @@ -3743,6 +3743,7 @@ static ivas_error renderSbaToBinauralRoom( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; IVAS_REND_AudioBuffer tmpMcBuffer; + IVAS_REND_AudioBuffer *tmpBufPtr; headRotEnabled = sbaInput->base.ctx.pHeadRotData->headRotEnabled; @@ -3770,14 +3771,13 @@ static ivas_error renderSbaToBinauralRoom( set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numChannels * tmpMcBuffer.config.numSamplesPerChannel ); + tmpBufPtr = ( headRotEnabled ) ? &tmpRotBuffer : &sbaInput->base.inputBuffer; for ( i = 0; i < sbaInput->base.inputBuffer.config.numChannels; i++ ) { -#define WMC_TOOL_MAN - renderBufferChannel( ( headRotEnabled ) ? tmpRotBuffer : sbaInput->base.inputBuffer, + renderBufferChannel( *tmpBufPtr, i, sbaInput->hoaDecMtx[i], tmpMcBuffer ); -#undef WMC_TOOL_MAN } copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); -- GitLab From f651c0d9d59635c9dc38bd897ae2661558e662f3 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 19 Oct 2022 19:58:57 +0200 Subject: [PATCH 263/479] fix clash between ISM_BITRATE_SWITCHING and FIX_155_HP20_ISSUE --- lib_enc/ivas_ism_param_enc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index 66fac81674..3358e41e21 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -41,11 +41,11 @@ #include "ivas_rom_com.h" #include "wmops.h" - +#ifndef FIX_155_HP20_ISSUE #ifdef CORECODER_BITRATE_SWITCHING static ivas_error ivas_hp20_reconfig( Encoder_Struct *st_ivas, const int16_t nchan_hp20_old ); #endif - +#endif /*------------------------------------------------------------------------- * Local function definitions *------------------------------------------------------------------------*/ @@ -534,6 +534,7 @@ ivas_error ivas_ism_enc_config( st_ivas->hDirAC = NULL; } +#ifndef FIX_155_HP20_ISSUE #ifdef CORECODER_BITRATE_SWITCHING ivas_hp20_reconfig( st_ivas, nchan_transport_old ); #else @@ -574,6 +575,7 @@ ivas_error ivas_ism_enc_config( set_f( st_ivas->mem_hp20_in[sce_id], 0.0f, L_HP20_MEM ); } +#endif #endif } #else @@ -588,7 +590,7 @@ ivas_error ivas_ism_enc_config( return error; } - +#ifndef FIX_155_HP20_ISSUE #ifdef CORECODER_BITRATE_SWITCHING // VE: this is the same function as at the decoder -> harmonize them to a new file ivas_corecoder_reconfig.c /*-------------------------------------------------------------------* @@ -674,3 +676,4 @@ static ivas_error ivas_hp20_reconfig( return error; } #endif +#endif -- GitLab From 40c12d6952fa3fd82af024375fc1cc2c47da35e6 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 19 Oct 2022 20:05:31 +0200 Subject: [PATCH 264/479] [self-test] add two ISM bitrate switching conditions --- scripts/config/self_test.prm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 721e93a457..ebb240c865 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -280,10 +280,6 @@ ../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 13200 48 testv/stv48n.pcm bit ../IVAS_dec -fec 5 BINAURAL 48 bit testv/stv48n.pcm_13200_48-48_DTX_FEC5_BINAURAL.tst -// 1 ISm with metadata at 32 kbps, 32 kHz in, 32 kHz out, DTX on, MONO out -../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 32000 32 testv/stv32n.pcm bit -../IVAS_dec MONO 32 bit testv/stv32n.pcm_32000_32-32_DTX_MONO.tst - // 2 ISm with metadata at 16.4 kbps, 48 kHz in, 48 kHz out, STEREO out ../IVAS_cod -ism 2 testv/stvISM1.csv testv/stvISM2.csv 16400 48 testv/stv2ISM48s.pcm bit ../IVAS_dec STEREO 48 bit testv/stv2ISM48s.pcm_16400_48-48_STEREO.tst @@ -296,6 +292,10 @@ ../IVAS_cod -ism 3 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv 24400 48 testv/stv3ISM48s.pcm bit ../IVAS_dec -fec 5 MONO 48 bit testv/stv3ISM48s.pcm_24400_48-48_MONO_FEC5.tst +// 1 ISm with metadata at 32 kbps, 32 kHz in, 32 kHz out, DTX on, MONO out +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv 32000 32 testv/stv32n.pcm bit +../IVAS_dec MONO 32 bit testv/stv32n.pcm_32000_32-32_DTX_MONO.tst + // 4 ISm with metadata at 32 kbps, 48 kHz in, 48 kHz out, FOA out ../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 32000 48 testv/stv4ISM48s.pcm bit ../IVAS_dec FOA 48 bit testv/stv4ISM48s.pcm_32000_48-48_FOA.tst @@ -400,6 +400,14 @@ ../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 256000 48 testv/stv4ISM48s.pcm bit ../IVAS_dec -t testv/headrot_case03_3000_q.csv BINAURAL 48 bit testv/stv4ISM48s.pcm_256000_48-48_TDHR.tst +// 1 ISm with metadata bitrate switching from 13.2 kbps to 128 kbps, 32 kHz in, 32 kHz out, mono out, DTX on +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv32c.pcm bit +../IVAS_dec MONO 32 bit testv/stv32c.pcm_brate_sw_32-32_mono_dtx.tst + +// 4 ISm with metadata bitrate switching from 24.4 kbps to 256 kbps, 48 kHz in, 48 kHz out, BINAURAL out +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv switchPaths/sw_24k4_256k.bin 48 testv/stv4ISM48s.pcm bit +../IVAS_dec BINAURAL 48 bit testv/stv4ISM48s.pcm_brate_sw_48-48_BINAURAL.tst + // SBA at 13.2 kbps, 32kHz in, 32kHz out, HOA3 out ../IVAS_cod -sba 3 13200 32 testv/stv3OA32c.pcm bit -- GitLab From a1dfcab449d792ce24b077a210fd179cbc361a69 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 19 Oct 2022 20:17:56 +0200 Subject: [PATCH 265/479] fix in self-test conditions --- scripts/config/self_test.prm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index ebb240c865..470b649ce0 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -401,11 +401,11 @@ ../IVAS_dec -t testv/headrot_case03_3000_q.csv BINAURAL 48 bit testv/stv4ISM48s.pcm_256000_48-48_TDHR.tst // 1 ISm with metadata bitrate switching from 13.2 kbps to 128 kbps, 32 kHz in, 32 kHz out, mono out, DTX on -../IVAS_cod -dtx -ism 1 testv/stvISM1.csv switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv32c.pcm bit +../IVAS_cod -dtx -ism 1 testv/stvISM1.csv ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv32c.pcm bit ../IVAS_dec MONO 32 bit testv/stv32c.pcm_brate_sw_32-32_mono_dtx.tst // 4 ISm with metadata bitrate switching from 24.4 kbps to 256 kbps, 48 kHz in, 48 kHz out, BINAURAL out -../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv switchPaths/sw_24k4_256k.bin 48 testv/stv4ISM48s.pcm bit +../IVAS_cod -ism 4 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv4ISM48s.pcm bit ../IVAS_dec BINAURAL 48 bit testv/stv4ISM48s.pcm_brate_sw_48-48_BINAURAL.tst -- GitLab From 5010b92449afeeb7f23b19b93ea06ca12a957e10 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 20 Oct 2022 17:55:36 +1100 Subject: [PATCH 266/479] AGC tuning change and enable AGC for SBA SPAR 1TC This commit has two changes: A tuning change has been done to fix a clicking artifact (of which is described in the issue #168.) The changes include: - Limiting the attack/release done per frame to 6dB - In the code, this attack/release amount is configurable at compile time using the `DBSTEP` macro - Always distributing the total amount of attack/release to be done across a maximum of 3 frames - Removing hard transition cases and instead always doing a smooth transition These changes are bit exact for signals that do not become OOR inside the encoder. However the changes are, of course, not bit exact for non-OOR signals. AGC will be enabled by default when 1 transport channel is used and in SBA mode. This translates to bitrates of 24.4 and 32kbps in SBA. It is enabled only in these modes, because these are the modes where we know out of range signals can occur, and because degradations are known to occur for the 1 transport channel case. Further explanation is done in issue #168. Otherwise AGC is disabled. In the command line, a user can force agc to be enabled or disabled using the `-agc` flag. If a user does not specify the `-agc` flag, then the default behaviour will be done. Additional tests have been added, where for any test in `tests/test_sba_bs_dec_plc.py` and `tests/test_sba_bs_enc.py` which had agc has a paramaeter, agc undefined case was added. For any other existing tests which had set AGC to off, it has been changed to be AGC undefined to maintain the previous intent. For the python files touched, small editorial changes were made to comply with the pep8 standard. Co-authored-by: Benjamin McDonald Co-authored-by: Panji Setiawan --- apps/encoder.c | 19 ++++++ lib_com/ivas_agc_com.c | 29 +++++++++ lib_com/ivas_prot.h | 11 +++- lib_com/options.h | 8 ++- lib_dec/ivas_agc_dec.c | 14 ++++ lib_enc/ivas_agc_enc.c | 68 ++++++++++++++++++- lib_enc/ivas_spar_encoder.c | 7 ++ lib_enc/ivas_stat_enc.h | 11 +++- lib_enc/lib_enc.c | 41 ++++++++++-- lib_enc/lib_enc.h | 12 ++++ tests/test_sba_bs_dec_plc.py | 80 +++++++++++------------ tests/test_sba_bs_enc.py | 123 ++++++++++++++++++----------------- 12 files changed, 312 insertions(+), 111 deletions(-) diff --git a/apps/encoder.c b/apps/encoder.c index b1abc36d2f..bcd2dcea78 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -120,7 +120,11 @@ typedef struct const char *ca_config_file; bool mimeOutput; +#ifdef AGC_ENABLE_FOR_LBR + IVAS_ENC_AGC agc; +#else bool agc; +#endif bool pca; #ifdef DEBUG_FOA_AGC FILE *agcBitstream; /* temporary */ @@ -870,7 +874,11 @@ static void initArgStruct( EncArguments *arg ) arg->ca_config_file = NULL; arg->mimeOutput = false; +#ifdef AGC_ENABLE_FOR_LBR + arg->agc = IVAS_ENC_AGC_UNDEFINED; +#else arg->agc = IVAS_DEFAULT_AGC; +#endif arg->pca = false; #ifdef DEBUG_FOA_AGC arg->agcBitstream = NULL; @@ -1381,7 +1389,11 @@ static bool parseCmdlIVAS_enc( i++; if ( i < argc - 4 ) { +#ifdef AGC_ENABLE_FOR_LBR + arg->agc = ( atoi( argv[i] ) ) ? IVAS_ENC_AGC_ENABLED : IVAS_ENC_AGC_DISABLED; +#else arg->agc = (int16_t) atoi( argv[i] ); +#endif if ( argv[i] == NULL || atoi( argv[i] ) < 0 || atoi( argv[i] ) > 1 ) { fprintf( stderr, "Error: wrong adaptive gain control option specified (%d), expected 0 or 1\n\n", (int32_t) atoi( argv[i] ) ); @@ -1636,7 +1648,14 @@ static void usage_enc( void ) #ifdef DEBUG_SBA fprintf( stdout, "-tag : Tag name for intermediate debug files\n" ); #endif +#ifdef AGC_ENABLE_FOR_LBR + fprintf( stdout, "-agc op : SBA Adaptive gain control, op = (0, 1). \n" ); + fprintf( stdout, " By default op is 1 (activated) for bitrates between 24400 and 32000,\n" ); + fprintf( stdout, " otherwise it is 0 (deactivated) for all other bitrates\n" ); +#else fprintf( stdout, "-agc op : SBA Adaptive gain control, op = (0, 1), by default op is 0 or deactivated\n" ); +#endif + fprintf( stdout, "-bypass mode : SBA PCA by-pass, mode = (1, 2), 1 = PCA off, 2 = signal adaptive, default is 1\n" ); #ifdef DEBUGGING fprintf( stdout, "-force T : Force specific mode, T = (speech, music, ACELP, GSC, TCX, HQ),\n" ); diff --git a/lib_com/ivas_agc_com.c b/lib_com/ivas_agc_com.c index d7a174fe65..63dda27afd 100644 --- a/lib_com/ivas_agc_com.c +++ b/lib_com/ivas_agc_com.c @@ -40,6 +40,9 @@ #endif #include #include "wmops.h" +#ifdef AGC_TUNING_IMPROVEMENT +#include "prot.h" +#endif /*------------------------------------------------------------------------------------------* * Local constants @@ -47,6 +50,11 @@ #define SQRKMAX ( 1.5f ) #define NBITS_DIFFG ( 2 ) +#ifdef AGC_TUNING_IMPROVEMENT +#define DBSTEP ( -6.f ) /* desired dB step value in dB*/ +#define ABS_EMIN_MAX ( 3 ) +#define MAXATTEXP ( 1 ) /* the desired maximum attenuation exponent range per frame*/ +#endif /*-----------------------------------------------------------------------------------------* * Function ivas_agc_initWindowFunc() @@ -60,12 +68,22 @@ void ivas_agc_initWindowFunc( { int16_t i; float N; +#ifdef AGC_TUNING_IMPROVEMENT + float a; +#endif N = (float) ( length - 1 ); +#ifdef AGC_TUNING_IMPROVEMENT + a = 0.5f * ( 1.f - powf( 10.f, DBSTEP / 20.f ) ); +#endif for ( i = 0; i < length; i++ ) { +#ifdef AGC_TUNING_IMPROVEMENT + pWinFunc[i] = 1.f + a * ( cosf( EVS_PI * i / N ) - 1.f ); +#else pWinFunc[i] = 0.75f + 0.25f * cosf( EVS_PI * i / N ); +#endif } return; @@ -89,7 +107,11 @@ void ivas_agc_calcGainParams( nbits = NBITS_DIFFG; +#ifdef AGC_TUNING_IMPROVEMENT + *absEmin = max( ABS_EMIN_MAX, (uint16_t) ceilf( logf( ceilf( SQRKMAX * numCoeffs ) ) * INV_LOG_2 ) ); +#else *absEmin = (uint16_t) ceilf( logf( ceilf( SQRKMAX * numCoeffs ) ) * INV_LOG_2 ); +#endif totExp = *absEmin + AGC_EMAX + 1; *betaE = (uint16_t) ceilf( logf( totExp ) * INV_LOG_2 ); @@ -98,10 +120,17 @@ void ivas_agc_calcGainParams( if ( nbits > 0 ) { +#ifdef AGC_TUNING_IMPROVEMENT + Bm = min( AGC_BITS_PER_CH - 1, NBITS_DIFFG ); +#else Bm = NBITS_DIFFG; +#endif } *maxAttExp = ( (uint16_t) powf( 2, Bm ) ) - 2; +#ifdef AGC_TUNING_IMPROVEMENT + *maxAttExp = min( MAXATTEXP, *maxAttExp ); +#endif return; } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 84450e89a0..ca1d236fae 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -44,7 +44,9 @@ #include "ivas_stat_dec.h" #include "ivas_stat_com.h" #include "ivas_error_utils.h" - +#ifdef AGC_ENABLE_FOR_LBR +#include "lib_enc.h" +#endif /* clang-format off */ @@ -3770,6 +3772,13 @@ void ivas_sba_prototype_renderer( ); /* AGC */ +#ifdef AGC_ENABLE_FOR_LBR +int16_t ivas_agc_enc_get_enablement_flag( + IVAS_ENC_AGC agc_configuration, /* i : configuration used when encoder was initialised from cmd line */ + int16_t nchan_transport /* i : number of transport channels */ +); +#endif + ivas_error ivas_spar_agc_enc_open( ivas_agc_enc_state_t **hAgcEnc, /* i/o: AGC decoder handle */ const int32_t input_Fs, /* i : input sampling rate */ diff --git a/lib_com/options.h b/lib_com/options.h index 5906991cdf..66fc0c611b 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -142,7 +142,7 @@ #define DISABLE_ADAP_RES_COD_TMP /* temporary fix for IVAS-403, disables adaptive residual coding */ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -#define MDCT_STEREO_PLC_FADE_2_BG_NOISE /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ +#define MDCT_STEREO_PLC_FADE_2_BG_NOISE /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ @@ -152,8 +152,10 @@ #define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ #define SBA_SPAR_HARM /* Issue 92: maintenance of the SBA SPAR functions */ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ - - +#define AGC_TUNING_IMPROVEMENT /* Issue 168: Tuning improvement to deal with click artifacts */ +#ifdef AGC_TUNING_IMPROVEMENT +#define AGC_ENABLE_FOR_LBR /* Issue 168: Enable AGC for low bit rate (1 TC) */ +#endif /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_agc_dec.c b/lib_dec/ivas_agc_dec.c index 97ce3d49d1..81039651d8 100644 --- a/lib_dec/ivas_agc_dec.c +++ b/lib_dec/ivas_agc_dec.c @@ -190,10 +190,20 @@ void ivas_agc_dec_process( if ( ( pState->gain_state[i].gainExpVal > (int32_t) ( pState->agc_com.maxAttExp + 1 ) ) || ( pState->gain_state[i].gainExpVal < -1 ) ) { +#ifdef AGC_TUNING_IMPROVEMENT + /* Such conditions indicate packet loss, better reset and do nothing*/ + pState->gain_data[i].absGainExp = pState->agc_com.absEmin; + pState->gain_state[i].gainExpVal = 0; +#else assert( 0 ); +#endif } +#ifdef AGC_TUNING_IMPROVEMENT + pState->gain_state[i].lastGain = powf( pState->agc_com.winFunc[offset - 1], ( -1.f * (float) ( pState->gain_data[i].absGainExp - pState->agc_com.absEmin ) ) ); +#else pState->gain_state[i].lastGain = powf( 2, (float) ( pState->gain_data[i].absGainExp - pState->agc_com.absEmin ) ); +#endif gainLast = 1.f / pState->gain_state[i].lastGain; if ( !pState->gain_data[i].gainException ) @@ -227,7 +237,11 @@ void ivas_agc_dec_process( } else { +#ifdef AGC_TUNING_IMPROVEMENT + float gainCurr = powf( pState->agc_com.winFunc[offset - 1], ( -1.f * (float) pState->gain_state[i].gainExpVal ) ); +#else float gainCurr = powf( 2, (float) pState->gain_state[i].gainExpVal ); +#endif float gainTot = gainCurr * gainLast; for ( idx = 0; idx < output_frame; idx++ ) diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 3ed7bb6d2f..702324d2a8 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -59,6 +59,25 @@ extern FILE *agcOut; static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_agc_enc_state_t *pState ); #endif +#ifdef AGC_ENABLE_FOR_LBR +/*-----------------------------------------------------------------------------------------* + * Function ivas_agc_enc_get_enablement_flag() + * + * This function determines if AGC should be enabled or disabled. + * If agc_configuration is not undefined, then this value decides on the state of + * enablement, otherwise AGC is enabled only if there is one transport channel. + * + *-----------------------------------------------------------------------------------------*/ + +int16_t ivas_agc_enc_get_enablement_flag( + IVAS_ENC_AGC agc_configuration, + int16_t nchan_transport ) +{ + return (bool) ( ( agc_configuration == IVAS_ENC_AGC_UNDEFINED ) + ? ( nchan_transport == 1 ) + : !!agc_configuration ); +} +#endif /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_init() @@ -215,7 +234,11 @@ void ivas_agc_enc_process( { float sampleAbsVal; int16_t isClipped = FALSE; +#ifdef AGC_TUNING_IMPROVEMENT + int16_t clippedIdx = 0; +#else int16_t clippedIdx = offset - 1; +#endif int16_t MaxAbsValIdx = 0; float MaxAbsVal = pState->gain_state[i].MaxAbsVal_del; float predMaxAbsVal = fabsf( ppPcm_in[i][offset] ); @@ -244,19 +267,25 @@ void ivas_agc_enc_process( { if ( ( ppPcm_out[i][j] > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( ppPcm_out[i][j] < MIN16B_FLT ) ) { +#ifdef AGC_TUNING_IMPROVEMENT + clippedIdx = j; +#else if ( j < offset ) { clippedIdx = j; } +#endif isClipped = TRUE; } } } +#ifndef AGC_TUNING_IMPROVEMENT if ( MaxAbsValIdx >= offset ) { MaxAbsValIdx = offset - 1; } +#endif pState->gain_state[i].MaxAbsVal_del = predMaxAbsVal; isGainAdjusted = FALSE; @@ -305,15 +334,21 @@ void ivas_agc_enc_process( if ( isClipped ) { actualMaxAbsVal = pState->gain_state[i].lastMaxAbs * pState->gain_state[i].lastGain; +#ifndef AGC_TUNING_IMPROVEMENT if ( MaxAbsValIdx == 0 ) { pState->gain_data[i].gainException = TRUE; } else { +#endif int16_t isCompensated = FALSE; pState->gain_data[i].gainException = FALSE; - pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[MaxAbsValIdx] ) ); +#ifdef AGC_TUNING_IMPROVEMENT + pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[min( offset - 1, MaxAbsValIdx )] ) ); +#else + pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[MaxAbsValIdx] ) ); +#endif while ( !isCompensated ) { @@ -322,7 +357,19 @@ void ivas_agc_enc_process( for ( idx = clippedIdx; idx <= MaxAbsValIdx; idx++ ) { - tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[idx], (float) pState->gain_state[i].gainExpVal ); +#ifdef AGC_TUNING_IMPROVEMENT + if ( idx >= offset ) + { + idx = MaxAbsValIdx; + tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[offset - 1], (float) pState->gain_state[i].gainExpVal ); + } + else + { +#endif + tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[idx], (float) pState->gain_state[i].gainExpVal ); +#ifdef AGC_TUNING_IMPROVEMENT + } +#endif if ( ( tmpSignal > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( tmpSignal < MIN16B_FLT ) ) { @@ -336,6 +383,14 @@ void ivas_agc_enc_process( pState->gain_state[i].gainExpVal++; } +#ifdef AGC_TUNING_IMPROVEMENT + if ( pState->gain_state[i].gainExpVal > currMaxAttExp ) + { + pState->gain_state[i].gainExpVal = min( pState->gain_state[i].gainExpVal, currMaxAttExp ); + break; + } +#endif + if ( pState->gain_state[i].gainExpVal > currMaxAttExp ) { pState->gain_data[i].gainException = TRUE; @@ -351,7 +406,9 @@ void ivas_agc_enc_process( break; } } +#ifndef AGC_TUNING_IMPROVEMENT } +#endif } if ( !pState->gain_data[i].gainException ) @@ -377,7 +434,11 @@ void ivas_agc_enc_process( pState->gain_state[i].gainExpVal = (int16_t) ( -floorf( -logf( ( actualMaxAbsVal + pState->minDelta ) * MDFT_NORM_SCALING ) * INV_LOG_2 ) ); pState->gain_state[i].gainExpVal = min( gainExpValMaxRange, pState->gain_state[i].gainExpVal ); +#ifdef AGC_TUNING_IMPROVEMENT + gain = powf( pState->agc_com.winFunc[offset - 1], pState->gain_state[i].gainExpVal ); +#else gain = powf( 2.0f, -1.0f * pState->gain_state[i].gainExpVal ); +#endif for ( idx = 0; idx < input_frame; idx++ ) { ppPcm_out[i][idx] *= gain; @@ -466,6 +527,9 @@ void ivas_agc_enc_process( { push_next_indice( hMetaData, (uint16_t) pState->gain_data[i].absGainExpCurr, (int16_t) pState->agc_com.betaE ); push_next_indice( hMetaData, (uint16_t) pState->gain_data[i].gainException, 1 ); +#ifdef AGC_TUNING_IMPROVEMENT + assert( pState->gain_data[i].gainException == FALSE ); +#endif } } } diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 988a8fa013..d49521a3ce 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -120,6 +120,9 @@ ivas_error ivas_spar_enc_open( } /* AGC handle */ +#ifdef AGC_ENABLE_FOR_LBR + hSpar->AGC_Enable = ivas_agc_enc_get_enablement_flag( hEncoderConfig->Opt_AGC_ON, nchan_transport ); +#endif if ( ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) { return error; @@ -877,7 +880,11 @@ static ivas_error ivas_spar_enc_process( if ( dtx_vad == 1 ) { +#ifdef AGC_ENABLE_FOR_LBR + if ( hSpar->AGC_Enable > 0 ) +#else if ( hEncoderConfig->Opt_AGC_ON > 0 ) +#endif { ivas_agc_enc_process( hSpar->hAgcEnc, hMetaData, p_pcm_tmp, p_pcm_tmp, hSpar->hFbMixer->fb_cfg->num_out_chans, hEncoderConfig ); } diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index a4e8e1142a..181a05f114 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -40,7 +40,9 @@ #include "stat_enc.h" #include "ivas_cnst.h" #include "ivas_stat_com.h" - +#ifdef AGC_ENABLE_FOR_LBR +#include "lib_enc.h" +#endif /*----------------------------------------------------------------------------------* * DFT Stereo encoder structures @@ -692,6 +694,9 @@ typedef struct ivas_spar_enc_lib_t ivas_agc_enc_state_t *hAgcEnc; int16_t dirac_to_spar_md_bands[DIRAC_MAX_NBANDS]; int16_t enc_param_start_band; +#ifdef AGC_ENABLE_FOR_LBR + int16_t AGC_Enable; +#endif PCA_ENC_STATE *hPCA; int32_t core_nominal_brate; /* Nominal bitrate for core coding */ FRONT_VAD_ENC_HANDLE hFrontVad; /* front-VAD handle */ @@ -1020,8 +1025,12 @@ typedef struct encoder_config_structure int16_t Opt_SC_VBR; /* flag indicating SC-VBR mode */ int16_t last_Opt_SC_VBR; /* flag indicating prev frame's SC-VBR mode */ +#ifdef AGC_ENABLE_FOR_LBR + IVAS_ENC_AGC Opt_AGC_ON; /* flag indicating AGC operation in SBA */ +#else /* temp. development parameters */ int16_t Opt_AGC_ON; /* flag indicating AGC operation in SBA */ +#endif int16_t Opt_PCA_ON; /* flag indicating PCA operation in SBA */ #ifdef DEBUGGING diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 4f990a25df..e21ac143b0 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -451,8 +451,12 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( const IVAS_ENC_DTX_CONFIG dtxConfig, /* i : configuration of DTX, can by set to default by using IVAS_ENC_GetDefaultDtxConfig() */ const IVAS_ENC_SBA_ORDER order, /* i : order of the Ambisonics input */ const bool isPlanar, /* i : if true, input is treated as planar Ambisonics */ - const bool Opt_AGC_ON, /* i : AGC on/off flag */ - const bool Opt_PCA_ON /* i : PCA option flag */ +#ifdef AGC_ENABLE_FOR_LBR + const IVAS_ENC_AGC Opt_AGC_ON, /* i : AGC on/off/undefined flag */ +#else + const bool Opt_AGC_ON, /* i : AGC on/off flag */ +#endif + const bool Opt_PCA_ON /* i : PCA option flag */ #ifdef DEBUG_SBA_AUDIO_DUMP , int16_t *numTransportChannels @@ -475,7 +479,11 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( hEncoderConfig->sba_order = order; /* Input in ACN/SN3D in all cases (3D and planar): get number of channels */ hEncoderConfig->nchan_inp = ivas_sba_get_nchan( hEncoderConfig->sba_order, 0 ); /*planar input arg. deliberately set to zero since input always in ACN/SN3D*/ +#ifdef AGC_ENABLE_FOR_LBR + hEncoderConfig->Opt_AGC_ON = Opt_AGC_ON; +#else hEncoderConfig->Opt_AGC_ON = (int16_t) Opt_AGC_ON; +#endif hEncoderConfig->Opt_PCA_ON = (int16_t) Opt_PCA_ON; hIvasEnc->maxBandwidthUser = max_bwidth_user; @@ -889,7 +897,11 @@ static ivas_error configureEncoder( return IVAS_ERROR( IVAS_ERR_DTX_NOT_SUPPORTED, "DTX is not supported in this IVAS format and element mode." ); } +#ifdef AGC_ENABLE_FOR_LBR + if ( hEncoderConfig->Opt_AGC_ON == IVAS_ENC_AGC_ENABLED && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) +#else if ( hEncoderConfig->Opt_AGC_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) +#endif { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "AGC supported in SBA format at bitrates >= 24.4 kbps only." ); } @@ -1506,10 +1518,27 @@ static ivas_error printConfigInfo_enc( { fprintf( stdout, "- PCA configured with signal adaptive decision " ); } - if ( hEncoderConfig->Opt_AGC_ON ) +#ifdef AGC_ENABLE_FOR_LBR + switch ( hEncoderConfig->Opt_AGC_ON ) { - fprintf( stdout, "- AGC ON " ); + case IVAS_ENC_AGC_ENABLED: + fprintf( stdout, "- AGC FORCED ON " ); + break; + case IVAS_ENC_AGC_DISABLED: + fprintf( stdout, "- AGC FORCED OFF " ); + break; + case IVAS_ENC_AGC_UNDEFINED: + fprintf( stdout, "- AGC default mode " ); + break; + default: + fprintf( stdout, "- AGC unknown " ); + break; } +#else + if ( hEncoderConfig->Opt_AGC_ON ) + fprintf( stdout, "- AGC ON " ); + } +#endif fprintf( stdout, "\n" ); } else if ( hEncoderConfig->ivas_format == MASA_FORMAT ) @@ -2182,7 +2211,11 @@ static void init_encoder_config( hEncoderConfig->stereo_dmx_evs = 0; hEncoderConfig->sba_order = 0; hEncoderConfig->sba_planar = 0; +#ifdef AGC_ENABLE_FOR_LBR + hEncoderConfig->Opt_AGC_ON = IVAS_ENC_AGC_UNDEFINED; +#else hEncoderConfig->Opt_AGC_ON = 0; +#endif hEncoderConfig->Opt_PCA_ON = 0; return; diff --git a/lib_enc/lib_enc.h b/lib_enc/lib_enc.h index 325c854f73..20eef7b1fe 100644 --- a/lib_enc/lib_enc.h +++ b/lib_enc/lib_enc.h @@ -123,6 +123,14 @@ typedef enum _IVAS_ENC_FORCED_MODE } IVAS_ENC_FORCED_MODE; #endif +#ifdef AGC_ENABLE_FOR_LBR +typedef enum _IVAS_ENC_AGC +{ + IVAS_ENC_AGC_DISABLED = 0, + IVAS_ENC_AGC_ENABLED, + IVAS_ENC_AGC_UNDEFINED = 0xffff +} IVAS_ENC_AGC; +#endif /*---------------------------------------------------------------------* * Encoder structures @@ -189,7 +197,11 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( const IVAS_ENC_DTX_CONFIG dtxConfig, /* i : configuration of DTX, can by set to default by using IVAS_ENC_GetDefaultDtxConfig() */ const IVAS_ENC_SBA_ORDER order, /* i : order of the Ambisonics input */ const bool isPlanar, /* i : if true, input is treated as planar Ambisonics */ +#ifdef AGC_ENABLE_FOR_LBR + const IVAS_ENC_AGC Opt_AGC_ON, /* i : AGC on/off/undefined flag */ +#else const bool Opt_AGC_ON, /* i : AGC on/off flag */ +#endif const bool Opt_PCA_ON /* i : PCA option flag */ #ifdef DEBUG_SBA_AUDIO_DUMP , diff --git a/tests/test_sba_bs_dec_plc.py b/tests/test_sba_bs_dec_plc.py index 58be07ec33..27bf561cdc 100644 --- a/tests/test_sba_bs_dec_plc.py +++ b/tests/test_sba_bs_dec_plc.py @@ -1,38 +1,38 @@ __copyright__ = \ -""" -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. -""" + """ + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + """ __doc__ = \ -""" -Execute SBA decoder tests using different PLC patterns. -""" + """ + Execute SBA decoder tests using different PLC patterns. + """ import os import errno @@ -41,13 +41,13 @@ import pytest from cmp_custom import cmp_custom from conftest import DecoderFrontend -#params +# params tag_list = ['stvFOA'] plc_patterns = ['PLperc12mblen5', 'PLperc40mblen50', 'PLperc42mblen2'] dtx_set = ['0', '1'] ivas_br_list = ['32000', '64000', '96000', '256000'] sampling_rate_list = ['48', '32', '16'] -agc_list = [0, 1] +agc_list = [-1, 0, 1] AbsTol = '3' @@ -91,7 +91,7 @@ def test_sba_plc_system( ): tag = tag + fs + 'c' - #dec + # dec sba_dec_plc( dut_decoder_frontend, test_vector_path, @@ -110,7 +110,7 @@ def test_sba_plc_system( ######################################################### -############ test function ############################## +# -------------------- test function -------------------- def sba_dec_plc( decoder_frontend, test_vector_path, @@ -127,11 +127,11 @@ def sba_dec_plc( keep_files, ): - ######### run cmd ##################################### + # ------------ run cmd ------------ tag_out = f"{tag}_ivasbr{ivas_br[:-3]}k_DTX{dtx}" - if agc == 1: - tag_out += '_AGC1' + if agc != -1: + tag_out += f'_AGC{agc}' plc_tag_out = f"{tag_out}_{plc_pattern}" dut_out_dir = f"{dut_base_path}/sba_bs/raw" @@ -169,7 +169,7 @@ def sba_dec_plc( plc_file=plc_file, ) - ######### compare cmd ##################################### + # -------------- compare cmd -------------- end_skip_samples = '0' diff --git a/tests/test_sba_bs_enc.py b/tests/test_sba_bs_enc.py index 95cfea1d19..e8edf01285 100644 --- a/tests/test_sba_bs_enc.py +++ b/tests/test_sba_bs_enc.py @@ -1,39 +1,39 @@ __copyright__ = \ -""" -(C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository. All Rights Reserved. - -This software is protected by copyright law and by international treaties. -The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, -Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., -Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, -Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other -contributors to this repository retain full ownership rights in their respective contributions in -the software. This notice grants no license of any kind, including but not limited to patent -license, nor is any license granted by implication, estoppel or otherwise. - -Contributors are required to enter into the IVAS codec Public Collaboration agreement before making -contributions. - -This software is provided "AS IS", without any express or implied warranties. The software is in the -development stage. It is intended exclusively for experts who have experience with such software and -solely for the purpose of inspection. All implied warranties of non-infringement, merchantability -and fitness for a particular purpose are hereby disclaimed and excluded. - -Any dispute, controversy or claim arising under or in relation to providing this software shall be -submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in -accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and -the United Nations Convention on Contracts on the International Sales of Goods. -""" + """ + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + """ __doc__ = \ -""" -Test file to run C encoder and decoder code. -The outputs are compared with C generated references. -""" + """ + Test file to run C encoder and decoder code. + The outputs are compared with C generated references. + """ import os import errno @@ -43,23 +43,23 @@ from cmp_custom import cmp_custom from cut_pcm import cut_samples from conftest import EncoderFrontend, DecoderFrontend -#params +# params tag_list = ['stvFOA'] tag_list_HOA2 = ['test_HOA2'] tag_list_HOA3 = ['test_HOA3'] tag_list_bw_force = ['stvFOA'] dtx_set = ['0', '1'] -dict_fsample_bw = {'48':'3', '32':'2', '16':'1'} -dict_bw_idx = {'FB':'3', 'SWB':'2', 'WB':'1'} -dict_bw_tag = {'SWB':'_ForceSWB', 'WB':'_ForceWB'} +dict_fsample_bw = {'48': '3', '32': '2', '16': '1'} +dict_bw_idx = {'FB': '3', 'SWB': '2', 'WB': '1'} +dict_bw_tag = {'SWB': '_ForceSWB', 'WB': '_ForceWB'} ivas_br_FOA = ['32000', '64000', '96000', '160000', '256000', '384000', '512000'] ivas_br_HOA2 = ['256000', '384000', '512000'] ivas_br_HOA3 = ['256000', '384000', '512000'] sample_rate_list = ['48', '32', '16'] bypass_list = [1, 2] -agc_list = [0, 1] +agc_list = [-1, 0, 1] sample_rate_bw_idx_list = [('48', 'SWB'), ('48', 'WB'), ('32', 'WB')] @@ -100,7 +100,7 @@ def test_bypass_enc( ivas_br = '256000' dtx = '0' max_bw = "FB" - agc = 0 + agc = -1 sba_order = "+1" output_config = "FOA" @@ -173,7 +173,7 @@ def test_sba_enc_system( elif dtx == '1': cut_gain = ".004" else: - cut_gain = "1.0" + cut_gain = "1.0" # enc sba_enc( dut_encoder_frontend, @@ -212,6 +212,7 @@ def test_sba_enc_system( keep_files, ) + @pytest.mark.create_ref @pytest.mark.parametrize("ivas_br", ivas_br_HOA2) @pytest.mark.parametrize("tag", tag_list_HOA2) @@ -275,6 +276,7 @@ def test_spar_hoa2_enc_system( keep_files, ) + @pytest.mark.create_ref @pytest.mark.parametrize("ivas_br", ivas_br_HOA3) @pytest.mark.parametrize("tag", tag_list_HOA3) @@ -338,6 +340,7 @@ def test_spar_hoa3_enc_system( keep_files, ) + @pytest.mark.create_ref @pytest.mark.parametrize("ivas_br", ivas_br_FOA) @pytest.mark.parametrize("dtx", dtx_set) @@ -362,7 +365,7 @@ def test_sba_enc_BWforce_system( bw = sample_rate_bw_idx[1] tag = tag + fs + 'c' bypass = -1 - agc = 0 + agc = -1 sba_order = "+1" output_config = "FOA" @@ -404,7 +407,7 @@ def test_sba_enc_BWforce_system( ######################################################### -############ test function ############################## +# -------------------- test function -------------------- def sba_enc( encoder_frontend, test_vector_path, @@ -420,12 +423,12 @@ def sba_enc( agc, sba_order, update_ref, - in_extension = '.pcm', - cut_gain = '1.0', - create_dutenc = False + in_extension='.pcm', + cut_gain='1.0', + create_dutenc=False ): - ######### run cmd ##################################### + # ------------ run cmd ------------ dut_out_dir = f"{dut_base_path}/sba_bs/pkt" ref_out_dir = f"{reference_path}/sba_bs/pkt" @@ -433,34 +436,34 @@ def sba_enc( check_and_makedir(ref_out_dir) tag_in = tag - #sampling rate to BW mapping + # sampling rate to BW mapping bw_idx = dict_fsample_bw[sampling_rate] if int(dict_bw_idx[ivas_max_bw]) < int(bw_idx): tag = tag + dict_bw_tag[ivas_max_bw] - tag_out = f"{tag}_ivasbr{ivas_br[:-3]}k_DTX{dtx}" short_tag_ext = "" - if agc == 1: - short_tag_ext += '_AGC1' + if agc != -1: + short_tag_ext += f'_AGC{agc}' # we update only bypass = 0/2 (bypass 1 is the same as the baseline) if bypass in [0, 2]: short_tag_ext += f"_pca{bypass}" # to avoid conflicting names in case of parallel test execution, differentiate all cases - long_tag_ext = f"_AGC{agc}_pca{bypass}" + long_tag_ext = f"_AGC{agc}" if agc != -1 else "_AGC-unspecified" + long_tag_ext += f"_pca{bypass}" dut_pkt_file = f"{dut_out_dir}/{tag_out}{long_tag_ext}.pkt" ref_pkt_file = f"{ref_out_dir}/{tag_out}{short_tag_ext}.pkt" ref_pkt_file_dutenc = f"{ref_out_dir}/{tag_out}{short_tag_ext}_dutenc.pkt" input_path = f"{test_vector_path}/{tag_in}{in_extension}" - agc_op = agc if agc >= 0 else None + agc_op = agc if agc != -1 else None bypass_mode = bypass if bypass >= 0 else None dtx_mode = dtx == '1' if in_extension == '.pcm': # use shortened and potentially gain adjusted input PCM file - create if not present # cut input PCM file: currently with mostly fixed (i.e. not test dependant) values - num_channels = "4" # currently only FOA inputs end up, here + num_channels = "4" # currently only FOA inputs end up, here cut_from = "0.0" cut_len = "5.0" if cut_gain == "1.0": @@ -531,24 +534,24 @@ def sba_dec( keep_files, ): - ######### run cmd ##################################### - #sampling rate to BW mapping + # -------- run cmd ------------ + # sampling rate to BW mapping bw_idx = dict_fsample_bw[sampling_rate] if int(dict_bw_idx[ivas_max_bw]) < int(bw_idx): tag = tag + dict_bw_tag[ivas_max_bw] - tag_out = f"{tag}_ivasbr{ivas_br[:-3]}k_DTX{dtx}" short_tag_ext = "" - if agc == 1: - short_tag_ext += '_AGC1' + if agc != -1: + short_tag_ext += f'_AGC{agc}' # we update only bypass = 0/2 (bypass 1 is the same as the baseline) if bypass in [0, 2]: short_tag_ext += f"_pca{bypass}" # to avoid conflicting names in case of parallel test execution, differentiate all cases - long_tag_ext = f"_AGC{agc}_pca{bypass}" + long_tag_ext = f"_AGC{agc}" if agc != -1 else "_AGC-unspecified" + long_tag_ext += f"_pca{bypass}" dut_out_dir = f"{dut_base_path}/sba_bs/raw" ref_out_dir = f"{reference_path}/sba_bs/raw" @@ -582,7 +585,7 @@ def sba_dec( dut_out_raw, ) - ######### compare cmd ##################################### + # -------------- compare cmd -------------- end_skip_samples = '0' -- GitLab From 1941f9b6de419df952d7047af49e422804457c0a Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 20 Oct 2022 18:33:34 +1100 Subject: [PATCH 267/479] Fix unbalanced brackets when AGC_ENABLE_FOR_LBR was disabled --- lib_enc/lib_enc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index e21ac143b0..337f9de509 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1536,8 +1536,9 @@ static ivas_error printConfigInfo_enc( } #else if ( hEncoderConfig->Opt_AGC_ON ) + { fprintf( stdout, "- AGC ON " ); - } + } #endif fprintf( stdout, "\n" ); } -- GitLab From 35d9a6ccd58153c7cbc5098d5802a1d373161bd5 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 20 Oct 2022 19:33:06 +1100 Subject: [PATCH 268/479] Move variable creation to higher up in scope to fix issue with instrumentation --- lib_enc/ivas_agc_enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 702324d2a8..5bfcc74e53 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -333,6 +333,7 @@ void ivas_agc_enc_process( if ( isClipped ) { + int16_t isCompensated = FALSE; actualMaxAbsVal = pState->gain_state[i].lastMaxAbs * pState->gain_state[i].lastGain; #ifndef AGC_TUNING_IMPROVEMENT if ( MaxAbsValIdx == 0 ) @@ -342,7 +343,6 @@ void ivas_agc_enc_process( else { #endif - int16_t isCompensated = FALSE; pState->gain_data[i].gainException = FALSE; #ifdef AGC_TUNING_IMPROVEMENT pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[min( offset - 1, MaxAbsValIdx )] ) ); -- GitLab From da539b18267cd0557bdc72a149bf211ca20470c1 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 2 Sep 2022 10:41:03 +0200 Subject: [PATCH 269/479] fix for 24 bit wav files in pyaudio3dtools --- scripts/pyaudio3dtools/audiofile.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/scripts/pyaudio3dtools/audiofile.py b/scripts/pyaudio3dtools/audiofile.py index 46bb452082..b03b472ae9 100755 --- a/scripts/pyaudio3dtools/audiofile.py +++ b/scripts/pyaudio3dtools/audiofile.py @@ -35,6 +35,7 @@ import platform import shutil import struct import subprocess as sp +import warnings from importlib import import_module from tempfile import TemporaryDirectory from typing import Optional, Tuple @@ -73,6 +74,18 @@ def readfile( if file_extension == ".wav": fs, data = wav.read(filename) + if data.dtype == np.int32: + data = np.interp( + data, + (np.iinfo(np.int32).min, np.iinfo(np.int32).max), + (np.iinfo(np.int16).min, np.iinfo(np.int16).max), + ) + elif data.dtype == np.float32: + data = np.interp( + data, + (-1, 1), + (np.iinfo(np.int16).min, np.iinfo(np.int16).max), + ) x = np.array(data, dtype=outdtype) file_len = x.shape[0] if x.ndim == 1: @@ -107,9 +120,11 @@ def writefile(filename: str, x: np.ndarray, fs: int = 48000) -> None: """ _, file_extension = os.path.splitext(os.path.basename(filename)) - clipped_samples = np.sum(np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max)) + clipped_samples = np.sum( + np.logical_or(x < np.iinfo(np.int16).min, x > np.iinfo(np.int16).max) + ) if clipped_samples > 0: - print(" Warning: %i samples clipped"%clipped_samples) + warnings.warn(f" Warning: {clipped_samples} samples clipped") x = np.clip(x, np.iinfo(np.int16).min, np.iinfo(np.int16).max) if file_extension == ".wav": @@ -489,7 +504,6 @@ def loudnessinfo( in_sig: np.ndarray, in_fs: Optional[int] = 48000, in_format: Optional[str] = "MONO", - in_ls_layout_file: Optional[str] = None, output_loudness: Optional[int] = -26, loudness_tool: Optional[str] = "bs1770demo", use_rms: Optional[bool] = False, @@ -524,13 +538,10 @@ def loudnessinfo( else: null_file = "/dev/null" - # check for binary if shutil.which(loudness_tool) is None: raise FileNotFoundError(f"The binary {loudness_tool} was not found in path!") - in_spfmt = spatialaudioformat.Format( - in_format=in_format, ls_layout_file=in_ls_layout_file - ) + in_spfmt = spatialaudioformat.Format(in_format=in_format) if not (in_spfmt.isheadphones or in_spfmt.isloudspeaker or in_spfmt.ambi_order > 1): raise NotImplementedError( @@ -543,7 +554,7 @@ def loudnessinfo( ) with TemporaryDirectory() as tmp_dir: - tmp_file = os.path.join(tmp_dir, "tmp.pcm") + tmp_file = os.path.join(tmp_dir, "tmp_loudness.pcm") if "bs1770demo" in loudness_tool: """ -- GitLab From 46fc3b2bae56c76e5359c9fdd6f111e290e5d6ee Mon Sep 17 00:00:00 2001 From: kiene Date: Thu, 20 Oct 2022 15:29:44 +0200 Subject: [PATCH 270/479] accept MDCT_STEREO_PLC_FADE_2_BG_NOISE --- lib_com/ivas_cnst.h | 2 - lib_com/ivas_prot.h | 14 --- lib_com/ivas_sns_com.c | 4 - lib_com/ivas_stereo_psychlpc_com.c | 3 - lib_com/options.h | 1 - lib_com/prot.h | 24 ---- lib_dec/acelp_core_dec.c | 16 --- lib_dec/amr_wb_dec.c | 4 - lib_dec/core_dec_init.c | 12 -- lib_dec/core_dec_switch.c | 6 - lib_dec/dec_LPD.c | 8 -- lib_dec/dec_acelp_tcx_main.c | 4 - lib_dec/dec_prm.c | 10 -- lib_dec/dec_tcx.c | 58 ---------- lib_dec/er_dec_tcx.c | 8 -- lib_dec/evs_dec.c | 4 - lib_dec/fd_cng_dec.c | 79 ------------- lib_dec/igf_dec.c | 23 ---- lib_dec/init_dec.c | 10 -- lib_dec/ivas_core_dec.c | 22 ---- lib_dec/ivas_cpe_dec.c | 4 - lib_dec/ivas_mct_dec_mct.c | 4 - lib_dec/ivas_mdct_core_dec.c | 44 -------- lib_dec/ivas_sce_dec.c | 4 - lib_dec/ivas_stat_dec.h | 2 - lib_dec/ivas_stereo_mdct_core_dec.c | 18 --- lib_dec/ivas_stereo_switching_dec.c | 12 -- lib_dec/ivas_tcx_core_dec.c | 24 ---- lib_dec/stat_dec.h | 2 - lib_dec/tonalMDCTconcealment.c | 28 ----- lib_enc/enc_prm.c | 8 -- lib_enc/ivas_mdct_core_enc.c | 10 -- lib_enc/ivas_sns_enc.c | 169 ---------------------------- lib_enc/ivas_tcx_core_enc.c | 4 - 34 files changed, 645 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index fe9cb54a69..5884d084b6 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -793,7 +793,6 @@ enum fea_names #define MAX_MDCT_ITD_BRATE IVAS_64k #define SNS_LOW_BR_MODE -1 -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ #define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f @@ -812,7 +811,6 @@ typedef enum { ON_FIRST_LOST_FRAME, ON_FIRST_GOOD_FRAME, } TONALMDCTCONC_NOISE_SHAPE_WHITENING_MODE; -#endif /*----------------------------------------------------------------------------------* diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 84450e89a0..8e3558bbad 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -1985,9 +1985,7 @@ void decoder_tcx_invQ( void decoder_tcx_noisefilling( Decoder_State *st, /* i/o: coder memory state */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float concealment_noise[L_FRAME48k], -#endif const float A[], /* i : coefficients NxAz[M+1] */ const int16_t L_frameTCX_glob, const int16_t L_spec, @@ -2000,9 +1998,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t isMCT, -#endif const int16_t frame_cnt /* i : frame counter in the super frame */ ); @@ -2085,12 +2081,8 @@ void decoder_tcx_IGF_stereo( const int16_t L_frame, /* i : frame length */ const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t bfi, /* i : bad frame indicator */ const int16_t is_mct /* i : flag to signal MCT or SMDCT */ -#else - const int16_t bfi /* i : bad frame indicator */ -#endif ); void ms_processing( @@ -2123,12 +2115,8 @@ void IGFDecApplyStereo( const int16_t igfGridIdx, /* i : in case of CELP->TCX switching, use 1.25 framelength */ const int16_t *coreMsMask, const int16_t restrict_hopsize, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ const int16_t bfi_apply_damping /* i : decoder element mode */ -#else - const int16_t bfi /* i : frame loss == 1, frame good == 0 */ -#endif ); void IGFEncStereoEncoder( @@ -5490,7 +5478,6 @@ ivas_error ivas_orient_trk_GetTrackedOrientation( float *roll ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE void TonalMdctConceal_create_concealment_noise( float concealment_noise[L_FRAME48k], CPE_DEC_HANDLE hCPE, @@ -5514,7 +5501,6 @@ int16_t get_igf_startline( int16_t L_frame, int16_t L_frameTCX ); -#endif float rand_triangular_signed( int16_t *seed ); diff --git a/lib_com/ivas_sns_com.c b/lib_com/ivas_sns_com.c index d975435994..cc0f07ffe0 100644 --- a/lib_com/ivas_sns_com.c +++ b/lib_com/ivas_sns_com.c @@ -37,15 +37,12 @@ #include "ivas_prot.h" #include "rom_com.h" #include -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #include -#endif #ifdef DEBUGGING #include "debug.h" #endif #include "wmops.h" -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /*------------------------------------------------------------------- * sns_compute_scf() @@ -212,7 +209,6 @@ void sns_compute_scf( return; } -#endif /*------------------------------------------------------------------- * sns_interpolate_scalefactors() diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index cdc48f5f98..3cbca73cc0 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -68,9 +68,6 @@ static void SpectrumWeighting_Init( * initialize a PsychoacousticParameters structure *-------------------------------------------------------------------*/ -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE -static -#endif ivas_error PsychoacousticParameters_Init( const int32_t sr_core, /* i : sampling rate of core-coder */ diff --git a/lib_com/options.h b/lib_com/options.h index b78976fe89..150ecc0dc1 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -142,7 +142,6 @@ #define DISABLE_ADAP_RES_COD_TMP /* temporary fix for IVAS-403, disables adaptive residual coding */ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -#define MDCT_STEREO_PLC_FADE_2_BG_NOISE /* IVAS-185 fix bug in TCX-PLC fadeout for MDCT-Stereo and improve fadeout by fading to background noise instead of white noise */ #define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ diff --git a/lib_com/prot.h b/lib_com/prot.h index cffd699e46..5bc1e39753 100755 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -5145,10 +5145,8 @@ void decod_amr_wb( ivas_error init_decoder( Decoder_State *st, /* o : Decoder static variables structure */ const int16_t idchan /* i : channel ID */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const MC_MODE mc_mode /* i : MC mode */ -#endif ); void destroy_decoder( @@ -6776,10 +6774,8 @@ void enc_acelp_tcx_main( void getTCXMode( Decoder_State *st, /* i/o: decoder memory state */ Decoder_State *st0 /* i : bitstream */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t MCT_flag -#endif ); void getTCXWindowing( @@ -7893,10 +7889,8 @@ void decoder_tcx_post( float *synthFB, float *A, const int16_t bfi -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t isMCT -#endif ); void coder_acelp( @@ -7949,9 +7943,7 @@ void decoder_acelp( void writeTCXMode( Encoder_State *st, /* i/o: encoder state structure */ BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t is_mct, -#endif int16_t *nbits_start /* o : nbits start */ ); @@ -8140,10 +8132,8 @@ void con_tcx( const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left /* i : TD-PLC only in left channel */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const float *A_cng -#endif ); /*! r: codebook index */ @@ -8689,9 +8679,7 @@ void configureFdCngDec( void ApplyFdCng( float *timeDomainInput, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *powerSpectrum, -#endif float **realBuffer, /* i/o: Real part of the buffer */ float **imagBuffer, /* i/o: Imaginary part of the buffer */ Decoder_State *st, @@ -8700,9 +8688,7 @@ void ApplyFdCng( void perform_noise_estimation_dec( const float *timeDomainInput, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *power_spectrum, -#endif HANDLE_FD_CNG_DEC hFdCngDec, /* i/o: FD_CNG structure */ const int16_t element_mode, /* i : element mode type */ const int16_t bwidth, /* i : audio bandwidth */ @@ -9202,9 +9188,7 @@ void open_decoder_LPD( const int32_t last_total_brate, /* i : last total bitrate */ const int16_t bwidth, /* i : audio bandwidth */ const int16_t is_mct, /* i : MCT mode flag */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t last_element_mode, -#endif const int16_t is_init /* i : indicate call during initialization */ ); @@ -9245,10 +9229,8 @@ void mode_switch_decoder_LPD( const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ const int16_t is_mct /* i : MCT mode flag */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t last_element_mode /* i : last element mode */ -#endif ); void dec_acelp_tcx_frame( @@ -9529,10 +9511,8 @@ void TonalMDCTConceal_SaveFreqSignal( const uint16_t numSamples, const uint16_t nNewSamplesCore, const float *scaleFactors -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t infoIGFStartLine -#endif ); void TonalMDCTConceal_UpdateState( @@ -9567,10 +9547,8 @@ void TonalMDCTConceal_InsertNoise( int16_t *pSeed, /*IN/OUT*/ const float tiltCompFactor, const float crossfadeGain, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const float concealment_noise[L_FRAME48k], const float cngLevelBackgroundTrace_bfi, -#endif const int16_t crossOverFreq ); void DetectTonalComponents( @@ -9605,7 +9583,6 @@ void RefineTonalComponents( float floorPowerSpectrum, const PsychoacousticParameters *psychParamsCurrent ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ivas_error PsychoacousticParameters_Init( const int32_t sr_core, /* i : sampling rate of core-coder */ const int16_t nBins, /* i : Number of bins (spectral lines) */ @@ -9613,7 +9590,6 @@ ivas_error PsychoacousticParameters_Init( const int16_t isTCX20, /* i : Flag indicating if the subband division is for TCX20 or TCX10 */ const int16_t isWarped, /* i : Flag indicating if the scale is linear or warped */ PsychoacousticParameters *pPsychParams ); -#endif void concealment_init( const int16_t L_frameTCX, diff --git a/lib_dec/acelp_core_dec.c b/lib_dec/acelp_core_dec.c index c108c80998..4c52cdb811 100644 --- a/lib_dec/acelp_core_dec.c +++ b/lib_dec/acelp_core_dec.c @@ -156,11 +156,7 @@ ivas_error acelp_core_dec( st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] = STEREO_DFT_FD_FILT * st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] + ( 1 - STEREO_DFT_FD_FILT ) * st->hFdCngDec->hFdCngCom->sidNoiseEst[i]; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( NULL, NULL, NULL, NULL, st, 0, 0 ); -#else - ApplyFdCng( NULL, NULL, NULL, st, 0, 0 ); -#endif } else { @@ -530,11 +526,7 @@ ivas_error acelp_core_dec( { st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] = STEREO_DFT_FD_FILT * st->hFdCngDec->hFdCngCom->sidNoiseEstLp[i] + ( 1 - STEREO_DFT_FD_FILT ) * st->hFdCngDec->hFdCngCom->sidNoiseEst[i]; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); -#else - ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); -#endif } generate_comfort_noise_dec( NULL, NULL, st, nchan_out ); @@ -1125,11 +1117,7 @@ ivas_error acelp_core_dec( if ( st->element_mode != IVAS_CPE_TD ) { /*Noise estimate*/ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); -#else - ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); -#endif } if ( !st->cna_dirac_flag ) @@ -1194,11 +1182,7 @@ ivas_error acelp_core_dec( /*Noise estimate*/ if ( st->idchan == 0 && ( nchan_out == 2 || ( st->core_brate != FRAME_NO_DATA && st->core_brate != SID_2k40 ) ) ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); -#else - ApplyFdCng( syn, realBuffer, imagBuffer, st, 0, ( st->coder_type == AUDIO && !st->GSC_noisy_speech ) ); -#endif } } } diff --git a/lib_dec/amr_wb_dec.c b/lib_dec/amr_wb_dec.c index 907d90e9ab..29c4f939ed 100644 --- a/lib_dec/amr_wb_dec.c +++ b/lib_dec/amr_wb_dec.c @@ -621,11 +621,7 @@ ivas_error amr_wb_dec( /*VAD only for non inactive frame*/ st->VAD = ( st->VAD && ( st->coder_type != INACTIVE ) ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( syn, NULL, NULL, NULL, st, 0, 0 ); -#else - ApplyFdCng( syn, NULL, NULL, st, 0, 0 ); -#endif st->hFdCngDec->hFdCngCom->frame_type_previous = st->m_frame_type; diff --git a/lib_dec/core_dec_init.c b/lib_dec/core_dec_init.c index bc8d95e24f..906d24adab 100644 --- a/lib_dec/core_dec_init.c +++ b/lib_dec/core_dec_init.c @@ -57,9 +57,7 @@ void open_decoder_LPD( const int32_t last_total_brate, const int16_t bwidth, const int16_t is_mct, /* i : MCT mode flag */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t last_element_mode, -#endif const int16_t is_init /* i : indicate call from init_decoder() to avoid double TC initialization */ ) { @@ -552,7 +550,6 @@ void open_decoder_LPD( { st->hTcxDec->prev_widow_left_rect = 0; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( is_init || is_mct || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV; @@ -563,15 +560,6 @@ void open_decoder_LPD( st->hTcxDec->cummulative_damping_tcx = 1.0f; } -#else - st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV; - st->hTcxDec->NoiseLevelIndex_bfi = PLC_MIN_STAT_BUFF_SIZE - 1; - st->hTcxDec->CurrLevelIndex_bfi = 0; - st->hTcxDec->LastFrameLevel_bfi = PLC_MIN_CNG_LEV; - set_f( st->hTcxDec->NoiseLevelMemory_bfi, PLC_MIN_CNG_LEV, PLC_MIN_STAT_BUFF_SIZE ); - - st->hTcxDec->cummulative_damping_tcx = 1.0f; -#endif } st->cummulative_damping = 1.0f; diff --git a/lib_dec/core_dec_switch.c b/lib_dec/core_dec_switch.c index c2084f3f12..cc1619cba0 100644 --- a/lib_dec/core_dec_switch.c +++ b/lib_dec/core_dec_switch.c @@ -57,10 +57,8 @@ void mode_switch_decoder_LPD( const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ const int16_t is_mct /* i : MCT mode flag */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t last_element_mode /* i : last element mode */ -#endif ) { int16_t fscale, switchWB; @@ -109,11 +107,7 @@ void mode_switch_decoder_LPD( if ( fscale != st->fscale || switchWB || bSwitchFromAmrwbIO || st->last_codec_mode == MODE1 || st->force_lpd_reset ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE open_decoder_LPD( st, total_brate, last_total_brate, bwidth, is_mct, last_element_mode, 0 ); -#else - open_decoder_LPD( st, total_brate, last_total_brate, bwidth, is_mct, 0 ); -#endif } else { diff --git a/lib_dec/dec_LPD.c b/lib_dec/dec_LPD.c index a28630886e..c06bee28f9 100644 --- a/lib_dec/dec_LPD.c +++ b/lib_dec/dec_LPD.c @@ -478,11 +478,7 @@ void decoder_LPD( if ( bfi && st->last_core != ACELP_CORE ) { /* PLC: [TCX: TD PLC] */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); -#else - con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); -#endif lerp( synthFB, synth, st->L_frame, st->hTcxDec->L_frameTCX ); st->con_tcx = 1; set_f( &st->mem_pitch_gain[2], st->lp_gainp, st->nb_subfr ); @@ -650,11 +646,7 @@ void decoder_LPD( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, L_frameTCX ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_post( st, synth, synthFB, Aq, bfi, 0 ); -#else - decoder_tcx_post( st, synth, synthFB, Aq, bfi ); -#endif if ( st->core == TCX_20_CORE ) { diff --git a/lib_dec/dec_acelp_tcx_main.c b/lib_dec/dec_acelp_tcx_main.c index 1ca75fff20..b9d3481579 100644 --- a/lib_dec/dec_acelp_tcx_main.c +++ b/lib_dec/dec_acelp_tcx_main.c @@ -198,11 +198,7 @@ static void decode_frame_type( st->rate_switching_init = 1; /* Reconf Core */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE mode_switch_decoder_LPD( st, st->bwidth, st->total_brate, st->last_total_brate, frame_size_index, 0, st->element_mode ); -#else - mode_switch_decoder_LPD( st, st->bwidth, st->total_brate, st->last_total_brate, frame_size_index, 0 ); -#endif /* Reconf. CLDFB: check if the CLDFB works on the right sample rate */ if ( ( st->cldfbAna->no_channels * st->cldfbAna->no_col ) != st->L_frame ) diff --git a/lib_dec/dec_prm.c b/lib_dec/dec_prm.c index 925b561fd6..d458d62aa4 100644 --- a/lib_dec/dec_prm.c +++ b/lib_dec/dec_prm.c @@ -55,10 +55,8 @@ void getTCXMode( Decoder_State *st, /* i/o: decoder memory state */ Decoder_State *st0 /* i : bitstream */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t MCT_flag -#endif ) { uint16_t ind; @@ -94,7 +92,6 @@ void getTCXMode( } st->coder_type = INACTIVE; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) { st->VAD = get_next_indice( st0, 1 ); @@ -103,9 +100,6 @@ void getTCXMode( { st->VAD = 0; } -#else - st->VAD = 0; -#endif } else { @@ -793,11 +787,7 @@ void dec_prm( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE getTCXMode( st, st, 0 /* <- MCT_flag */ ); -#else - getTCXMode( st, st ); -#endif core = st->core; /* Decode last_core for error concealment */ diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 8f6ee52fed..b5f78ab052 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -100,11 +100,7 @@ void decoder_tcx( decoder_tcx_invQ( st, prm, A, Aind, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &xn_buf[0], &fUseTns, &tnsData, &gain_tcx, &prm_sqQ, &nf_seed, bfi, frame_cnt ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_noisefilling( st, NULL, A, L_frameTCX_glob, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, 0, frame_cnt ); -#else - decoder_tcx_noisefilling( st, A, L_frameTCX_glob, L_spec, L_frame, L_frameTCX, &x[0], &gainlpc2[0], &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, frame_cnt ); -#endif decoder_tcx_noiseshaping_igf( st, L_spec, L_frame, L_frameTCX, left_rect, &x[0], &gainlpc2[0], &tmp_concealment_method, bfi ); @@ -129,10 +125,8 @@ void decoder_tcx_post( float *synthFB, float *A, const int16_t bfi -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t isMCT -#endif ) { int16_t i; @@ -184,11 +178,7 @@ void decoder_tcx_post( /* PLC: [TCX: Fade-out] * PLC: update or retrieve the background level */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi == 0 && st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) && st->clas_dec == UNVOICED_CLAS ) -#else - if ( bfi == 0 && st->tcxonly && st->clas_dec == UNVOICED_CLAS ) -#endif { minimumStatistics( hTcxDec->NoiseLevelMemory_bfi, &hTcxDec->NoiseLevelIndex_bfi, &hTcxDec->CurrLevelIndex_bfi, &hTcxDec->CngLevelBackgroundTrace_bfi, &hTcxDec->LastFrameLevel_bfi, level_syn, PLC_MIN_CNG_LEV, PLC_MIN_STAT_BUFF_SIZE ); } @@ -1077,9 +1067,7 @@ void decoder_tcx_invQ( void decoder_tcx_noisefilling( Decoder_State *st, /* i/o: coder memory state */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float concealment_noise[L_FRAME48k], -#endif const float A[], /* i : coefficients NxAz[M+1] */ const int16_t L_frameTCX_glob, const int16_t L_spec, @@ -1092,9 +1080,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t isMCT, -#endif const int16_t frame_cnt /* i : frame counter in the super frame*/ ) { @@ -1118,27 +1104,7 @@ void decoder_tcx_noisefilling( *-----------------------------------------------------------------*/ /* Init lengths */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE infoIGFStartLine = get_igf_startline( st, L_frame, L_frameTCX ); -#else - if ( st->igf == 0 ) - { - if ( st->narrowBand == 0 ) - { - /* minimum needed for output with sampling rates lower then the - nominal sampling rate */ - infoIGFStartLine = min( L_frameTCX, L_frame ); - } - else - { - infoIGFStartLine = L_frameTCX; - } - } - else - { - infoIGFStartLine = min( st->hIGFDec->infoIGFStartLine, L_frameTCX ); - } -#endif noiseFillingSize = L_spec; if ( st->igf ) @@ -1250,11 +1216,7 @@ void decoder_tcx_noisefilling( if ( !bfi && st->element_mode != IVAS_CPE_MDCT ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x, L_frameTCX, L_frame, gainlpc2, infoIGFStartLine ); -#else - TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x, L_frameTCX, L_frame, gainlpc2 ); -#endif } else if ( bfi ) { @@ -1263,11 +1225,7 @@ void decoder_tcx_noisefilling( { /* set f to 1 to not fade out */ /* set f to 0 to immediately switch to white noise */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) ) -#else - if ( st->tcxonly ) -#endif { f = 1.0f; } @@ -1306,7 +1264,6 @@ void decoder_tcx_noisefilling( noiseTiltFactor = 1.0f; tcxGetNoiseFillingTilt( A, L_frame, ( total_brate >= ACELP_13k20 && !st->rf_flag ), &noiseTiltFactor ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) { TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); @@ -1315,9 +1272,6 @@ void decoder_tcx_noisefilling( { TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, NULL, hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); } -#else - TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, infoIGFStartLine ); -#endif } } } @@ -1395,11 +1349,7 @@ void decoder_tcx_noiseshaping_igf( * Noise shaping in frequency domain (1/Wz) * *-----------------------------------------------------------*/ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->igf && ( !bfi || ( st->element_mode == IVAS_CPE_MDCT && st->prev_bfi ) ) ) -#else - if ( st->igf && !bfi ) -#endif { if ( ( L_frame == st->L_frame >> 1 ) && ( st->tcxonly ) ) { @@ -1964,12 +1914,8 @@ void decoder_tcx_IGF_stereo( const int16_t L_frame, /* i : frame length */ const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t bfi, /* i : bad frame indicator */ const int16_t is_mct /* i : flag to signal MCT or SMDCT */ -#else - const int16_t bfi /* i : bad frame indicator */ -#endif ) { int16_t coreMsMask[N_MAX]; @@ -2022,11 +1968,7 @@ void decoder_tcx_IGF_stereo( igfGridIdx = ( sts[0]->last_core == ACELP_CORE || ( left_rect && bfi ) ) ? IGF_GRID_LB_TRAN : IGF_GRID_LB_NORM; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, is_mct ); -#else - IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi ); -#endif } return; diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index d72e88da5f..5a1cb5f881 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -59,10 +59,8 @@ void con_tcx( const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left /* i : TD-PLC only in left channel */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const float *A_cng -#endif ) { int16_t i, n, L_frame, L_subfr, fLowPassFilter, T0; @@ -437,7 +435,6 @@ void con_tcx( /* PLC: [TCX: Fade-out] retrieve background level */ tmp = 1.0f; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( A_cng != NULL ) { gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_cng, L_frame / 4, st->preemph_fac, 1 ) / 4.f; @@ -446,9 +443,6 @@ void con_tcx( { gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_local, L_frame / 4, st->preemph_fac, 1 ); } -#else - gainSynthDeemph = getLevelSynDeemph( &( tmp ), A_local, L_frame / 4, st->preemph_fac, 1 ); -#endif if ( st->tcxonly ) { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / gainSynthDeemph; @@ -561,7 +555,6 @@ void con_tcx( mvr2r( buf, mem_syn, M ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( A_cng != NULL ) { if ( st->plcBackgroundNoiseUpdated && alpha != 1.0f ) @@ -580,7 +573,6 @@ void con_tcx( lsp2a_stab( lsp_fade, A_local, M ); } } -#endif syn_filt( A_local, M, &exc[0], &syn[0], L_frame + ( L_frame / 2 ), mem_syn, 1 ); diff --git a/lib_dec/evs_dec.c b/lib_dec/evs_dec.c index e03b2ff2bc..299e6a31ce 100644 --- a/lib_dec/evs_dec.c +++ b/lib_dec/evs_dec.c @@ -676,11 +676,7 @@ ivas_error evs_dec( st->lp_noise = st->hFdCngDec->lp_noise; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( output, NULL, realBuffer, imagBuffer, st, concealWholeFrame, 0 ); -#else - ApplyFdCng( output, realBuffer, imagBuffer, st, concealWholeFrame, 0 ); -#endif /* Generate additional comfort noise to mask potential coding artefacts */ if ( st->m_frame_type == ACTIVE_FRAME && st->flag_cna ) diff --git a/lib_dec/fd_cng_dec.c b/lib_dec/fd_cng_dec.c index faaa37b52c..c1ddeeb79f 100644 --- a/lib_dec/fd_cng_dec.c +++ b/lib_dec/fd_cng_dec.c @@ -368,9 +368,7 @@ void deleteFdCngDec( void ApplyFdCng( float *timeDomainInput, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *powerSpectrum, -#endif float **realBuffer, /* i/o: Real part of the buffer */ float **imagBuffer, /* i/o: Imaginary part of the buffer */ Decoder_State *st, @@ -384,7 +382,6 @@ void ApplyFdCng( int16_t j, k; float factor; float lsp_cng[M]; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t L_frame, last_L_frame; int32_t sr_core; @@ -394,7 +391,6 @@ void ApplyFdCng( L_frame = min( st->L_frame, L_FRAME16k ); last_L_frame = min( st->last_L_frame, L_FRAME16k ); sr_core = min( st->sr_core, INT_FS_16k ); -#endif if ( hFdCngCom->frame_type_previous == ACTIVE_FRAME ) { @@ -419,27 +415,17 @@ void ApplyFdCng( /* set noise estimation inactive during concealment, as no update with noise generated by concealment should be performed. */ /* set noise estimation inactive when we have bit errors, as no update with noise generated by corrupt frame (biterror) should be performed. */ if ( concealWholeFrame == 0 && -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ( timeDomainInput == NULL || ( *timeDomainInput( -FLT_MAX ) && *( timeDomainInput + hFdCngCom->frameSize - 1 ) < FLT_MAX && *( timeDomainInput + hFdCngCom->frameSize - 1 ) > ( -FLT_MAX ) ) ) && -#else - *timeDomainInput( -FLT_MAX ) && - *( timeDomainInput + hFdCngCom->frameSize - 1 ) < FLT_MAX && - *( timeDomainInput + hFdCngCom->frameSize - 1 ) > ( -FLT_MAX ) && -#endif ( ( ( ( st->element_mode != IVAS_CPE_TD && st->element_mode != IVAS_CPE_DFT && hFdCngDec->flag_dtx_mode ) || !st->VAD ) && !( st->cng_type == LP_CNG && hFdCngDec->flag_dtx_mode ) && ( is_music == 0 ) ) || ( st->element_mode == IVAS_CPE_TD ) ) && ( !st->BER_detect ) ) { /* Perform noise estimation at the decoder */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); -#else - perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); -#endif if ( st->element_mode != IVAS_CPE_TD && st->element_mode != IVAS_CPE_DFT ) { @@ -471,7 +457,6 @@ void ApplyFdCng( } } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && timeDomainInput == NULL ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = sqrtf( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / NORM_MDCT_FACTOR ); @@ -480,7 +465,6 @@ void ApplyFdCng( { st->hTcxDec->CngLevelBackgroundTrace_bfi = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / L_frame ); } -#endif st->cngTDLevel = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / st->L_frame ); } else if ( st->element_mode == IVAS_CPE_TD || st->element_mode == IVAS_CPE_DFT ) @@ -488,20 +472,10 @@ void ApplyFdCng( if ( hFdCngCom->active_frame_counter > 0 ) { /* Perform noise estimation in active frames in the decoder for downward updates */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); -#else - perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); -#endif } } -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE - if ( ( concealWholeFrame == 1 ) && ( st->nbLostCmpt == 1 ) && sum_f( cngNoiseLevel + hFdCngCom->startBand, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) > 0.01f ) - { - /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ - lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, 0 ); -#else if ( ( concealWholeFrame == 1 ) && ( st->nbLostCmpt == 1 ) ) { /* update lsf cng estimate for concealment. Do that during concealment, in order to avoid addition clean channel complexity*/ @@ -528,15 +502,6 @@ void ApplyFdCng( } st->plcBackgroundNoiseUpdated = 1; } -#endif -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE - - a2lsp_stab( hFdCngCom->A_cng, lsp_cng, st->lspold_cng ); - mvr2r( lsp_cng, st->lspold_cng, M ); - - lsp2lsf( lsp_cng, st->lsf_cng, M, st->sr_core ); - st->plcBackgroundNoiseUpdated = 1; -#endif } break; @@ -549,11 +514,7 @@ void ApplyFdCng( if ( st != NULL && st->cng_type == LP_CNG ) { /* Perform noise estimation on inactive phase at the decoder */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE perform_noise_estimation_dec( timeDomainInput, powerSpectrum, hFdCngDec, st->element_mode, st->bwidth, L_frame, last_L_frame, st->last_core_brate, st->VAD ); -#else - perform_noise_estimation_dec( timeDomainInput, hFdCngDec, st->element_mode, st->bwidth, st->L_frame, st->last_L_frame, st->last_core_brate, st->VAD ); -#endif if ( st->element_mode != IVAS_CPE_TD && st->element_mode != IVAS_CPE_DFT ) { @@ -564,11 +525,7 @@ void ApplyFdCng( /* This sets the new CNG levels until a SID update overwrites it */ mvr2r( hFdCngDec->bandNoiseShape, cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ); /* This sets the new CNG levels until a SID update overwrites it */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE st->cngTDLevel = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / L_frame ); -#else - st->cngTDLevel = (float) sqrt( ( sum_f( cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand ) / 2 * hFdCngCom->fftlen ) / st->L_frame ); -#endif break; } @@ -650,10 +607,8 @@ void ApplyFdCng( default: break; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE wmops_sub_end(); -#endif return; } @@ -667,9 +622,7 @@ void ApplyFdCng( void perform_noise_estimation_dec( const float *timeDomainInput, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float *power_spectrum, -#endif HANDLE_FD_CNG_DEC hFdCngDec, /* i/o: FD_CNG structure containing all buffers and variables */ const int16_t element_mode, /* i : element mode */ const int16_t bwidth, /* i : audio bandwidth */ @@ -702,16 +655,11 @@ void perform_noise_estimation_dec( float temp, ftemp, delta; float wght; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( !( element_mode == IVAS_CPE_MDCT && power_spectrum != NULL ) ) { /* Perform STFT analysis */ AnalysisSTFT( timeDomainInput, fftBuffer, hFdCngDec->hFdCngCom ); } -#else - /* Perform STFT analysis */ - AnalysisSTFT( timeDomainInput, fftBuffer, hFdCngDec->hFdCngCom ); -#endif if ( element_mode == IVAS_CPE_TD || element_mode == IVAS_CPE_DFT ) { @@ -944,7 +892,6 @@ void perform_noise_estimation_dec( } else { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( element_mode == IVAS_CPE_MDCT && power_spectrum != NULL ) { /* use power spectrum calculated in the MDCT-domain instead of calculating new power spectrum */ @@ -977,32 +924,6 @@ void perform_noise_estimation_dec( /* Rescale to get energy/sample: it should be 2*(1/N)*(2/N), parseval relation with 1/N,*2 for nrg computed till Nyquist only, 2/N as windowed samples correspond to half a frame*/ v_multc( periodog, 4.f / (float) ( hFdCngDec->hFdCngCom->fftlen * hFdCngDec->hFdCngCom->fftlen ), periodog, stopFFTbin - startBand ); } -#else - /* Compute the squared magnitude in each FFT bin */ - if ( startBand == 0 ) - { - ( *ptr_per ) = fftBuffer[0] * fftBuffer[0]; /* DC component */ - ptr_per++; - ptr_r = fftBuffer + 2; - } - else - { - ptr_r = fftBuffer + 2 * startBand; - } - - ptr_i = ptr_r + 1; - - for ( ; ptr_per < periodog + stopFFTbin - startBand; ptr_per++ ) - { - ( *ptr_per ) = ( *ptr_r ) * ( *ptr_r ) + ( *ptr_i ) * ( *ptr_i ); - ptr_r += 2; - ptr_i += 2; - } - /* Nyquist frequency is discarded */ - - /* Rescale to get energy/sample: it should be 2*(1/N)*(2/N), parseval relation with 1/N,*2 for nrg computed till Nyquist only, 2/N as windowed samples correspond to half a frame*/ - v_multc( periodog, 4.f / (float) ( hFdCngDec->hFdCngCom->fftlen * hFdCngDec->hFdCngCom->fftlen ), periodog, stopFFTbin - startBand ); -#endif /* Adjust to the desired frequency resolution by averaging over spectral partitions for SID transmission */ bandcombinepow( periodog, stopFFTbin - startBand, part, npart, psize_inv, msPeriodog ); diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index d3638ea44a..f876391b2d 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -679,12 +679,8 @@ static void IGF_appl( float *pSpectralData, /* i/o: Q31 | MDCT spectrum */ const float *igf_spec, /* i : Q31 | prepared IGF spectrum */ float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ -#else - int16_t *flag_sparse /* o : Q0 | temp flattening indicator */ -#endif ) { H_IGF_GRID hGrid; @@ -860,11 +856,7 @@ static void IGF_appl( for ( sfb = start_sfb; sfb < stop_sfb; sfb++ ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi_apply_damping && hPrivateData->frameLossCounter > 0 ) -#else - if ( hPrivateData->frameLossCounter > 0 ) -#endif { gain[sfb] = min( gain[sfb], 12.f ); @@ -1221,11 +1213,7 @@ void IGFDecApplyMono( /* apply IGF in three steps: */ IGF_prep( hPrivateData, igfGridIdx, hIGFDec->infoTCXNoise, igf_spec, hPrivateData->pSpecFlat, element_mode ); IGF_calc( hPrivateData, igfGridIdx, spectrum, igf_spec ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse, 1 ); -#else - IGF_appl( hPrivateData, igfGridIdx, spectrum, igf_spec, hIGFDec->virtualSpec, hIGFDec->flag_sparse ); -#endif } /* reset TCX noise indicator vector */ @@ -1251,12 +1239,8 @@ void IGFDecApplyStereo( const int16_t igfGridIdx, /* i : in case of CELP->TCX switching, use 1.25 framelength */ const int16_t *coreMsMask, const int16_t restrict_hopsize, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ const int16_t bfi_apply_damping -#else - const int16_t bfi /* i : frame loss == 1, frame good == 0 */ -#endif ) { IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR; @@ -1353,13 +1337,8 @@ void IGFDecApplyStereo( IGF_calc( hPrivateDataL, igfGridIdx, spectrumL, igf_specL ); IGF_calc( hPrivateDataR, igfGridIdx, spectrumR, igf_specR ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse, bfi_apply_damping ); IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse, bfi_apply_damping ); -#else - IGF_appl( hPrivateDataL, igfGridIdx, spectrumL, igf_specL, hIGFDecL->virtualSpec, hIGFDecL->flag_sparse ); - IGF_appl( hPrivateDataR, igfGridIdx, spectrumR, igf_specR, hIGFDecR->virtualSpec, hIGFDecR->flag_sparse ); -#endif } /* reset TCX noise indicator vector */ @@ -1612,7 +1591,6 @@ void init_igf_dec( return; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t get_igf_startline( Decoder_State *st, int16_t L_frame, @@ -1640,4 +1618,3 @@ int16_t get_igf_startline( return igf_startline; } -#endif diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 2e31017eaa..2598cf29b6 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -54,10 +54,8 @@ ivas_error init_decoder( Decoder_State *st, /* o : Decoder static variables structure */ const int16_t idchan /* i : channel ID */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const MC_MODE mc_mode /* i : MC mode */ -#endif ) { int16_t i; @@ -691,11 +689,7 @@ ivas_error init_decoder( st->enablePlcWaveadjust = 0; /* Init Core Decoder */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, st->element_mode, 1 ); -#else - open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, 1 ); -#endif /* PLC mode initialization */ st->m_decodeMode = DEC_NO_FRAM_LOSS; @@ -714,11 +708,7 @@ ivas_error init_decoder( * FD-CNG decoder *-----------------------------------------------------------------*/ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( st->element_mode == IVAS_CPE_MDCT || idchan == 0 ) && mc_mode != MC_MODE_MCT ) -#else - if ( idchan == 0 && st->element_mode != IVAS_CPE_MDCT ) -#endif { /* Create FD_CNG instance */ if ( ( error = createFdCngDec( &st->hFdCngDec ) ) != IVAS_ERR_OK ) diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index b3d5b60eca..fd5d5b3c1e 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -35,9 +35,7 @@ #ifdef DEBUGGING #include "debug.h" #endif -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE #include -#endif #include #include "cnst.h" #include "rom_com.h" @@ -183,23 +181,6 @@ ivas_error ivas_core_dec( st->flagGuidedAcelp = 0; } -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE - /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ - if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->element_mode != IVAS_CPE_MDCT ) - { - if ( st->hPlcInfo != NULL ) - { - v_multc( st->hHQ_core->old_out, st->hPlcInfo->recovery_gain, st->hHQ_core->old_out, st->hTcxDec->L_frameTCX ); - v_multc( st->hHQ_core->old_outLB, st->hPlcInfo->recovery_gain, st->hHQ_core->old_outLB, st->L_frame ); - - if ( !st->hTcxCfg->last_aldo && st->hTcxDec != NULL ) - { - v_multc( st->hTcxDec->syn_OverlFB, st->hPlcInfo->recovery_gain, st->hTcxDec->syn_OverlFB, st->hTcxCfg->tcx_mdct_window_lengthFB ); - v_multc( st->hTcxDec->syn_Overl, st->hPlcInfo->recovery_gain, st->hTcxDec->syn_Overl, st->hTcxCfg->tcx_mdct_window_length ); - } - } - } -#else /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) ) { @@ -220,7 +201,6 @@ ivas_error ivas_core_dec( } } } -#endif set_f( voice_factors[n], 0.f, NB_SUBFR16k ); set_f( hb_synth[n], 0.0f, L_FRAME48k ); @@ -422,7 +402,6 @@ ivas_error ivas_core_dec( updateBuffersForDmxMdctStereo( hCPE, output_frame, output, synth ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( sts[0]->bfi == 0 && sts[0]->prev_bfi == 1 ) { /* On first good frame after frameloss undo the whitening of the bg noise shape */ @@ -434,7 +413,6 @@ ivas_error ivas_core_dec( } } } -#endif } /*---------------------------------------------------------------------* diff --git a/lib_dec/ivas_cpe_dec.c b/lib_dec/ivas_cpe_dec.c index b008c68789..12b8fcb899 100644 --- a/lib_dec/ivas_cpe_dec.c +++ b/lib_dec/ivas_cpe_dec.c @@ -689,11 +689,7 @@ ivas_error create_cpe_dec( st->mct_chan_mode = MCT_CHAN_MODE_LFE; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( error = init_decoder( st, n, st_ivas->mc_mode ) ) != IVAS_ERR_OK ) -#else - if ( ( error = init_decoder( st, n ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_dec/ivas_mct_dec_mct.c b/lib_dec/ivas_mct_dec_mct.c index aaf27e6e1a..b46320cbcd 100644 --- a/lib_dec/ivas_mct_dec_mct.c +++ b/lib_dec/ivas_mct_dec_mct.c @@ -286,11 +286,7 @@ void mctStereoIGF_dec( /* stereo IGF decoding */ assert( ( sts[0]->core == sts[1]->core ) || ( hMCT->hBlockData[b]->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi, 1 /* <- is_mct */ ); -#else - decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi ); -#endif } else { diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index 24bd9e8396..14de87546d 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -102,9 +102,7 @@ static void dec_prm_tcx_sidebits( int16_t p_param[NB_DIV], /* o : pointer to parameters for next round of bs reading*/ int16_t nTnsBitsTCX10[NB_DIV], /* o : number of TNS bits per TCX10 subframe */ Decoder_State *st0, /* i/o: core decoder state handle - for bitstream */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t MCT_flag, -#endif const int16_t ch /* i : channel */ ) { @@ -134,11 +132,7 @@ static void dec_prm_tcx_sidebits( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE getTCXMode( st, st0, MCT_flag ); -#else - getTCXMode( st, st0 ); -#endif st->flagGuidedAcelp = 0; @@ -381,11 +375,7 @@ void ivas_mdct_dec_side_bits_frame_channel( tmp = 3; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE dec_prm_tcx_sidebits( param[ch], st, ( ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) ? sts[0]->hTcxDec->tnsActive : NULL ), p_param[ch], nTnsBitsTCX10[ch], st0, MCT_flag, tmp ); -#else - dec_prm_tcx_sidebits( param[ch], st, ( ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) ? sts[0]->hTcxDec->tnsActive : NULL ), p_param[ch], nTnsBitsTCX10[ch], st0, tmp ); -#endif assert( st->BER_detect != 1 ); } @@ -481,18 +471,14 @@ void ivas_mdct_core_invQ( const int16_t *prm_sqQ; int16_t L_frameTCX_global[CPE_CHANNELS]; float tmp_ms_sig[CPE_CHANNELS][N_MAX]; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float concealment_noise[CPE_CHANNELS][L_FRAME48k]; TONALMDCTCONC_NOISE_GEN_MODE noise_gen_mode_bfi; -#endif wmops_sub_start( "mdct_core_invQ" ); sts = hCPE->hCoreCoder; bfi = sts[0]->bfi; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE noise_gen_mode_bfi = -1; -#endif set_f( xn_buf, 0, L_MDCT_OVLP_MAX + L_FRAME_PLUS + L_MDCT_OVLP_MAX ); set_s( total_nbbits, 0, CPE_CHANNELS ); @@ -520,7 +506,6 @@ void ivas_mdct_core_invQ( #endif } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi ) { if ( sts[0]->core == sts[1]->core ) @@ -536,7 +521,6 @@ void ivas_mdct_core_invQ( noise_gen_mode_bfi = TCX20_IN_0_TCX10_IN_1; } } -#endif /* parameter decoding */ for ( ch = 0; ch < CPE_CHANNELS; ch++ ) @@ -738,15 +722,11 @@ void ivas_mdct_core_invQ( mvr2r( x[ch][k], x_0[ch][k], L_frameTCX[ch] ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( bfi && !isMCT ) { TonalMdctConceal_create_concealment_noise( concealment_noise[ch], hCPE, L_frameTCX[ch], L_frame[ch], ch, k, st->core, st->hTcxDec->cummulative_damping_tcx, noise_gen_mode_bfi ); } decoder_tcx_noisefilling( st, concealment_noise[ch], Aq[ch], L_frameTCX_global[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, isMCT, k ); -#else - decoder_tcx_noisefilling( st, Aq[ch], L_frameTCX_global[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, k ); -#endif decoder_tcx_noiseshaping_igf( st, L_spec[ch], L_frame[ch], L_frameTCX[ch], left_rect[ch], x[ch][k], NULL, &tmp_concealment_method, bfi ); @@ -863,11 +843,7 @@ void ivas_mdct_core_reconstruct( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, L_frameTCX[ch] ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_post( st, synth, synthFB, NULL, bfi, isMCT ); -#else - decoder_tcx_post( st, synth, synthFB, NULL, bfi ); -#endif } else /*ACELP core for ACELP-PLC */ { @@ -875,19 +851,11 @@ void ivas_mdct_core_reconstruct( /* PLC: [TCX: TD PLC] */ if ( isMCT ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); -#else - con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); -#endif } else { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], hCPE->hStereoMdct->lastCoh, &sts[0]->seed_acelp, ( sts[1]->core != ACELP_CORE ) ? 1 : 0, &st->hFdCngDec->hFdCngCom->A_cng[0] ); -#else - con_tcx( st, &synthFB[0], hCPE->hStereoMdct->lastCoh, &sts[0]->seed_acelp, ( sts[1]->core != ACELP_CORE ) ? 1 : 0 ); -#endif } lerp( synthFB, synth, st->L_frame, st->hTcxDec->L_frameTCX ); @@ -1066,24 +1034,15 @@ void ivas_mdct_core_tns_ns( { sns_interpolate_scalefactors( &sns_int_scf[0], &Aq[ch][k * M], DEC ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( isMCT && st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) -#else - if ( isMCT && st->hTonalMDCTConc != NULL ) -#endif { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], get_igf_startline( st, L_frame[ch], L_frameTCX[ch] ) ); -#else - TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0] ); -#endif } } else { if ( st->hTonalMDCTConc != NULL ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( !isMCT && st->hTcxDec->cummulative_damping_tcx != 1.f ) { float *scf_last, *scf_bg; @@ -1107,9 +1066,6 @@ void ivas_mdct_core_tns_ns( st->hTonalMDCTConc->scf_fadeout = 1.0f; mvr2r( st->hTonalMDCTConc->lastBlockData.scaleFactors, &sns_int_scf[0], st->hTonalMDCTConc->nScaleFactors ); } -#else - mvr2r( st->hTonalMDCTConc->lastBlockData.scaleFactors, &sns_int_scf[0], st->hTonalMDCTConc->nScaleFactors ); -#endif } } diff --git a/lib_dec/ivas_sce_dec.c b/lib_dec/ivas_sce_dec.c index 1aa3e083f0..97ee2e8336 100644 --- a/lib_dec/ivas_sce_dec.c +++ b/lib_dec/ivas_sce_dec.c @@ -342,11 +342,7 @@ ivas_error create_sce_dec( st->total_brate = hSCE->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ st->mct_chan_mode = MCT_CHAN_MODE_REGULAR; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( ( error = init_decoder( st, 0, st_ivas->mc_mode ) ) != IVAS_ERR_OK ) -#else - if ( ( error = init_decoder( st, 0 ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 9f36670a7d..8c0ea336c3 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -320,10 +320,8 @@ typedef struct stereo_mdct_dec_data_structure int16_t prev_ms_mask[NB_DIV][MAX_SFB]; float lastCoh; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t noise_seeds_channels[CPE_CHANNELS]; int16_t noise_seed_common; -#endif int16_t isSBAStereoMode; } STEREO_MDCT_DEC_DATA, *STEREO_MDCT_DEC_DATA_HANDLE; diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index 1e923b5b7e..141858ccf8 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -50,9 +50,7 @@ *-------------------------------------------------------------------------*/ static void apply_dmx_weights( CPE_DEC_HANDLE hCPE, float *x[CPE_CHANNELS][NB_DIV], int16_t transform_type_left[NB_DIV], int16_t transform_type_right[NB_DIV] ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE static void run_min_stats( Decoder_State **sts, float *x[CPE_CHANNELS][NB_DIV] ); -#endif /*-------------------------------------------------------------------* * convert_coeffs_to_higher_res() @@ -294,11 +292,7 @@ void stereo_mdct_core_dec( assert( ( sts[0]->core == sts[1]->core ) || ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); /* stereo IGF decoding */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi, 0 /* <- is_mct */ ); -#else - decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi ); -#endif } else { @@ -328,17 +322,9 @@ void stereo_mdct_core_dec( sns_interpolate_scalefactors( &sns_int_scf[0], &Aq[ch][k * M], DEC ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) -#else - if ( st->hTonalMDCTConc != NULL ) -#endif { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], get_igf_startline( st, L_frame[ch], L_frameTCX[ch] ) ); -#else - TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0] ); -#endif } } @@ -368,9 +354,7 @@ void stereo_mdct_core_dec( ivas_ls_setup_conversion_process_mdct_param_mc( st_ivas, x ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE run_min_stats( sts, x ); -#endif if ( hCPE->nchan_out == 1 && ( !bfi || ( bfi && sts[0]->core != ACELP_CORE && sts[1]->core != ACELP_CORE ) ) ) { @@ -589,7 +573,6 @@ static void apply_dmx_weights( return; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /*-------------------------------------------------------------------* * run_min_stats() * @@ -669,4 +652,3 @@ static void run_min_stats( st->VAD = save_VAD[ch]; } } -#endif diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index 9257f5cc3d..355eed3906 100644 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -424,9 +424,7 @@ ivas_error stereo_memory_dec( if ( hCPE->last_element_mode == IVAS_CPE_MDCT ) { cpy_tcx_ltp_data( hCPE->hCoreCoder[1]->hTcxLtpDec, hCPE->hStereoDft->hTcxLtpDec, output_Fs ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE deleteFdCngDec( &hCPE->hCoreCoder[1]->hFdCngDec ); -#endif } /* memory update - needed in TD stereo, TCX/HQ frame -> DFT stereo, ACELP frame switching */ @@ -489,12 +487,10 @@ ivas_error stereo_memory_dec( /* deallocated TCX/IGF structures for second channel */ deallocate_CoreCoder_TCX( hCPE->hCoreCoder[1] ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( hCPE->last_element_mode == IVAS_CPE_MDCT ) { deleteFdCngDec( &hCPE->hCoreCoder[1]->hFdCngDec ); } -#endif /* allocate TD stereo data structure */ if ( hCPE->hStereoTD != NULL ) @@ -675,10 +671,6 @@ ivas_error stereo_memory_dec( /* deallocate core-decoder substructures */ deallocate_CoreCoder( st ); -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE - /* deallocate FD_CNG substructure */ - deleteFdCngDec( &st->hFdCngDec ); -#endif st->first_CNG = 0; } @@ -702,7 +694,6 @@ ivas_error stereo_memory_dec( } } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* allocate Fd-Cng structure for second channel */ if ( ( error = createFdCngDec( &st->hFdCngDec ) ) != IVAS_ERR_OK ) { @@ -711,7 +702,6 @@ ivas_error stereo_memory_dec( /* Init FD-CNG */ initFdCngDec( st ); -#endif if ( hCPE->last_element_mode == IVAS_CPE_DFT ) { @@ -1494,10 +1484,8 @@ void stereo_switching_dec( sts[1]->hTcxCfg->tcx_mdct_window_length = sts[0]->hTcxCfg->tcx_mdct_window_length; sts[1]->pit_res_max = sts[0]->pit_res_max; sts[1]->pit_res_max_past = sts[0]->pit_res_max_past; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE sts[1]->hTcxDec->L_frameTCX = sts[0]->hTcxDec->L_frameTCX; sts[1]->hTcxDec->conceal_eof_gain = sts[0]->hTcxDec->conceal_eof_gain; -#endif } } else if ( hCPE->element_mode == IVAS_CPE_TD && hCPE->last_element_mode == IVAS_CPE_MDCT ) diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index e46c32ddbb..9420be9eb9 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -150,11 +150,7 @@ void stereo_tcx_init_dec( } /* Reconfigure Core */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct, last_element_mode ); -#else - mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct ); -#endif } return; @@ -457,11 +453,7 @@ void stereo_tcx_core_dec( } /* PLC: [TCX: TD PLC] */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); -#else - con_tcx( st, &synthFB[0], -1.f, NULL, 0 ); -#endif lerp( synthFB, synth, st->L_frame, hTcxDec->L_frameTCX ); st->con_tcx = 1; set_f( &st->mem_pitch_gain[2], st->lp_gainp, st->nb_subfr ); @@ -589,11 +581,7 @@ void stereo_tcx_core_dec( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, hTcxDec->L_frameTCX ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE decoder_tcx_post( st, synth, synthFB, Aq, bfi, 0 ); -#else - decoder_tcx_post( st, synth, synthFB, Aq, bfi ); -#endif if ( st->core == TCX_20_CORE ) { @@ -750,11 +738,7 @@ void stereo_tcx_core_dec( if ( st->element_mode != IVAS_CPE_TD ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( signal_out, NULL, NULL, NULL, st, st->bfi, 0 ); -#else - ApplyFdCng( signal_out, NULL, NULL, st, st->bfi, 0 ); -#endif } /* Generate additional comfort noise to mask potential coding artefacts */ @@ -779,11 +763,7 @@ void stereo_tcx_core_dec( if ( st->element_mode == IVAS_CPE_TD && st->idchan == 0 ) { -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE ApplyFdCng( signal_out, NULL, NULL, NULL, st, st->bfi, 0 ); -#else - ApplyFdCng( signal_out, NULL, NULL, st, st->bfi, 0 ); -#endif } } @@ -867,11 +847,7 @@ static void dec_prm_tcx( *--------------------------------------------------------------------------------*/ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE getTCXMode( st, st, 0 /* <- MCT_flag */ ); -#else - getTCXMode( st, st ); -#endif /* last_core for error concealment */ if ( !st->use_partial_copy && st->element_mode != IVAS_CPE_MDCT ) diff --git a/lib_dec/stat_dec.h b/lib_dec/stat_dec.h index 0c7a836cb4..d86cd42b72 100644 --- a/lib_dec/stat_dec.h +++ b/lib_dec/stat_dec.h @@ -204,7 +204,6 @@ typedef struct Float32 *secondLastPcmOut; float *secondLastPowerSpectrum; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float scaleFactorsBackground[FDNS_NPTS]; float scf_fadeout; PsychoacousticParameters *psychParams; @@ -214,7 +213,6 @@ typedef struct float last_block_nrg; float curr_noise_nrg; float faded_signal_nrg; -#endif float nFramesLost; diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 6c0203ed42..0078ca8bb4 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -93,7 +93,6 @@ ivas_error TonalMDCTConceal_Init( hTonalMDCTConc->nSamplesCore = nSamplesCore; hTonalMDCTConc->nScaleFactors = nScaleFactors; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE set_zero( hTonalMDCTConc->scaleFactorsBackground, FDNS_NPTS ); hTonalMDCTConc->scf_fadeout = 1.0f; PsychoacousticParameters_Init( INT_FS_16k, L_FRAME16k, 64, 1, 1, &hTonalMDCTConc->psychParamsTCX20 ); @@ -103,7 +102,6 @@ ivas_error TonalMDCTConceal_Init( hTonalMDCTConc->last_block_nrg = 0.0f; hTonalMDCTConc->curr_noise_nrg = 0.0f; hTonalMDCTConc->faded_signal_nrg = 0.0f; -#endif /* Offset the pointer to the end of buffer, so that pTCI is not destroyed when new time samples are stored in lastPcmOut */ @@ -125,10 +123,8 @@ void TonalMDCTConceal_SaveFreqSignal( const uint16_t nNewSamples, const uint16_t nNewSamplesCore, const float *scaleFactors -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE , const int16_t infoIGFStartLine -#endif ) { float *temp; @@ -170,7 +166,6 @@ void TonalMDCTConceal_SaveFreqSignal( if ( ( nNewSamples > 0 ) && ( nNewSamples <= 2 * L_FRAME_MAX ) ) { /* Store new data */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE int16_t i; hTonalMDCTConc->last_block_nrg = 0.0f; @@ -183,9 +178,6 @@ void TonalMDCTConceal_SaveFreqSignal( { hTonalMDCTConc->lastBlockData.spectralData[i] = mdctSpectrum[i]; } -#else - mvr2r( mdctSpectrum, hTonalMDCTConc->lastBlockData.spectralData, nNewSamples ); -#endif mvr2r( scaleFactors, hTonalMDCTConc->lastBlockData.scaleFactors, hTonalMDCTConc->nScaleFactors ); } @@ -502,28 +494,20 @@ void TonalMDCTConceal_InsertNoise( int16_t *pSeed, const float tiltCompFactor, const float crossfadeGain, -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const float concealment_noise[L_FRAME48k], const float cngLevelBackgroundTrace_bfi, -#endif const int16_t crossOverFreq ) { int16_t i, l; float x, y; Word16 rnd; float g, nrgNoiseInLastFrame, nrgWhiteNoise, tiltFactor, tilt; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE float last_block_nrg_correct; -#endif wmops_sub_start( "InsertNoise" ); g = 1.0f - crossfadeGain; -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE - if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) -#else if ( !hTonalMDCTConc->lastBlockData.blockIsConcealed ) -#endif { rnd = 1977; } @@ -532,7 +516,6 @@ void TonalMDCTConceal_InsertNoise( rnd = *pSeed; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE /* based on what is done in tcx_noise_filling() */ /* always initialize these to avoid compiler warnings */ tiltFactor = (float) pow( max( 0.375f, tiltCompFactor ), 1.0f / hTonalMDCTConc->lastBlockData.nSamples ); @@ -541,14 +524,12 @@ void TonalMDCTConceal_InsertNoise( nrgWhiteNoise = 0.0f; hTonalMDCTConc->faded_signal_nrg = 0.0f; last_block_nrg_correct = 0.0f; -#endif if ( !hTonalMDCTConc->lastBlockData.blockIsValid ) { /* may just become active if the very first frame is lost */ set_f( mdctSpectrum, 0.0f, hTonalMDCTConc->nSamples ); } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE else if ( concealment_noise != NULL ) { if ( !tonalConcealmentActive ) @@ -737,15 +718,8 @@ void TonalMDCTConceal_InsertNoise( v_multc( mdctSpectrum, nrg_corr_factor, mdctSpectrum, crossOverFreq ); } } -#endif else { -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE - /* based on what is done in tcx_noise_filling() */ - tiltFactor = (float) pow( max( 0.375f, tiltCompFactor ), 1.0f / hTonalMDCTConc->lastBlockData.nSamples ); - tilt = 1.0f; - nrgNoiseInLastFrame = nrgWhiteNoise = 0.0f; -#endif if ( !tonalConcealmentActive ) { for ( i = 0; i < crossOverFreq; i++ ) @@ -992,7 +966,6 @@ void TonalMDCTConceal_SaveTimeSignal( return; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE void TonalMdctConceal_create_concealment_noise( float concealment_noise[L_FRAME48k], CPE_DEC_HANDLE hCPE, @@ -1208,4 +1181,3 @@ void TonalMdctConceal_whiten_noise_shape( wmops_sub_end(); } -#endif diff --git a/lib_enc/enc_prm.c b/lib_enc/enc_prm.c index 33c9d6fc7b..a68f95aff6 100644 --- a/lib_enc/enc_prm.c +++ b/lib_enc/enc_prm.c @@ -55,9 +55,7 @@ void writeTCXMode( Encoder_State *st, /* i/o: encoder state structure */ BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t is_mct, -#endif int16_t *nbits_start /* o : nbits start */ ) { @@ -88,12 +86,10 @@ void writeTCXMode( push_next_indice( hBstr, index, 2 ); -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE if ( st->element_mode == IVAS_CPE_MDCT && !is_mct ) { push_next_indice( hBstr, st->vad_flag, 1 ); } -#endif } else { @@ -792,11 +788,7 @@ void enc_prm( /* EVS header */ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE writeTCXMode( st, st->hBstr, 0, /* <- is_mct */ &nbits_start ); -#else - writeTCXMode( st, st->hBstr, &nbits_start ); -#endif /* write last_core for error concealment */ if ( !( core == ACELP_CORE && st->hTcxCfg->lfacNext <= 0 ) ) diff --git a/lib_enc/ivas_mdct_core_enc.c b/lib_enc/ivas_mdct_core_enc.c index 0d2f5817d6..5234ae5c60 100644 --- a/lib_enc/ivas_mdct_core_enc.c +++ b/lib_enc/ivas_mdct_core_enc.c @@ -63,9 +63,7 @@ static void enc_prm_pre_mdct( int16_t param[], /* i : parameters */ const int16_t *no_param_tns, /* i : number of TNS parameters per subframe */ int16_t p_param[2], /* o : pointer to parameters for next round of bs writing */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE const int16_t is_mct, -#endif BSTR_ENC_HANDLE hBstr /* i/o: encoder bitstream handle */ ) { @@ -80,11 +78,7 @@ static void enc_prm_pre_mdct( * Header *--------------------------------------------------------------------------------*/ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE writeTCXMode( st, hBstr, is_mct, &nbits_start ); -#else - writeTCXMode( st, hBstr, &nbits_start ); -#endif /* write last_core for core switching and error concealment */ push_next_indice( hBstr, st->last_core != ACELP_CORE, 1 ); @@ -1065,11 +1059,7 @@ void ivas_mdct_core_whitening_enc( continue; } -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE enc_prm_pre_mdct( st, param_core[ch], ( ( ( ch > 0 ) && ( sts[0]->hTcxEnc->fUseTns[0] + sts[0]->hTcxEnc->fUseTns[1] > 0 ) && !mct_on ) ? tnsSize[ch] : NULL ), p_param[ch], mct_on, hBstr ); -#else - enc_prm_pre_mdct( st, param_core[ch], ( ( ( ch > 0 ) && ( sts[0]->hTcxEnc->fUseTns[0] + sts[0]->hTcxEnc->fUseTns[1] > 0 ) && !mct_on ) ? tnsSize[ch] : NULL ), p_param[ch], hBstr ); -#endif if ( ch > 0 && sts[0]->hTcxEnc->fUseTns[0] + sts[0]->hTcxEnc->fUseTns[1] > 0 && !mct_on ) { diff --git a/lib_enc/ivas_sns_enc.c b/lib_enc/ivas_sns_enc.c index 87019b8d91..6790f0cf6d 100644 --- a/lib_enc/ivas_sns_enc.c +++ b/lib_enc/ivas_sns_enc.c @@ -43,175 +43,6 @@ #endif #include "wmops.h" -#ifndef MDCT_STEREO_PLC_FADE_2_BG_NOISE -#define SNS_NPTS 16 /* Number of downsampled SNS parameters */ - -/*------------------------------------------------------------------- - * sns_compute_scf() - * - * - *-------------------------------------------------------------------*/ - -void sns_compute_scf( - float spectrum[], - const PsychoacousticParameters *pPsychParams, - const int16_t L_frame, - float *scf ) -{ - int16_t i, n, k; - float x[FDNS_NPTS], xs[FDNS_NPTS], sum, mean, xl4[SNS_NPTS], nf, xl[FDNS_NPTS]; - float tilt; - const uint8_t nBands = pPsychParams->nBands; - const uint8_t *bandLengths = pPsychParams->bandLengths; - int8_t bw = 0; - - - const float w_0 = 1.0f / 12.0f; - const float w_1 = 2.0f / 12.0f; - const float w_2 = 0.25f; /* 3.0f / 12.0f */ - const float w_3 = w_2; - const float w_4 = w_1; - const float w_5 = w_0; - - const float scale_log = INV_LOG_2 * 0.5f; - - assert( nBands == 64 ); - - set_f( x, 0.0f, FDNS_NPTS ); - - if ( bandLengths == NULL ) - { - bw = (int8_t) ( L_frame / nBands ); - /* Energy per band */ - k = 0; - for ( i = 0; i < nBands; ++i ) - { - x[i] = 0.0f; - for ( n = 0; n < bw; ++n, ++k ) - { - x[i] += spectrum[k]; - } - x[i] /= bw; - } - } - else - { - /* Energy per band */ - k = 0; - for ( i = 0; i < nBands; ++i ) - { - x[i] = 0.0f; - for ( n = 0; n < bandLengths[i]; ++n, ++k ) - { - x[i] += spectrum[k]; - } - x[i] /= bandLengths[i]; - } - } - - /* Smoothing */ - xs[0] = 0.75f * x[0] + 0.25f * x[1]; - - for ( i = 1; i < FDNS_NPTS - 1; i++ ) - { - xs[i] = 0.5f * x[i] + 0.25f * x[i - 1] + 0.25f * x[i + 1]; - } - - xs[FDNS_NPTS - 1] = 0.75f * x[FDNS_NPTS - 1] + 0.25f * x[FDNS_NPTS - 2]; - - /* Pre-emphasis */ - if ( L_frame == L_FRAME16k ) - { - tilt = 18.f; - } - else if ( L_frame == L_SPEC16k_EXT ) - { - tilt = 20.f; - } - else if ( L_frame == L_FRAME25_6k ) - { - tilt = 22.f; - } - else if ( L_frame == L_FRAME32k ) - { - tilt = 26.f; - } - else if ( L_frame == L_SPEC32k_EXT ) - { - tilt = 30.f; - } - else - { - tilt = 0.f; - assert( 0 && "illegal frame length in sns_compute_scf" ); - } - - for ( i = 0; i < FDNS_NPTS; i++ ) - { - xs[i] = xs[i] * powf( 10.0f, (float) i * (float) tilt / ( (float) FDNS_NPTS - 1.0f ) / 10.0f ); - } - - /* Noise floor at -40dB */ - sum = sum_f( xs, FDNS_NPTS ); - mean = sum / FDNS_NPTS; - - nf = mean * powf( 10.0f, -4.0f ); - nf = max( nf, powf( 2.0f, -32.0f ) ); - - - for ( i = 0; i < FDNS_NPTS; i++ ) - { - if ( xs[i] < nf ) - { - xs[i] = nf; - } - } - - /* Log-domain */ - for ( i = 0; i < FDNS_NPTS; i++ ) - { - xl[i] = logf( xs[i] ) * scale_log; - } - - /* Downsampling */ - xl4[0] = w_0 * xl[0] + - w_1 * xl[0] + - w_2 * xl[1] + - w_3 * xl[2] + - w_4 * xl[3] + - w_5 * xl[4]; - - - for ( n = 1; n < SNS_NPTS - 1; n++ ) - { - int16_t n4 = 4 * n; - xl4[n] = w_0 * xl[n4 - 1] + - w_1 * xl[n4] + - w_2 * xl[n4 + 1] + - w_3 * xl[n4 + 2] + - w_4 * xl[n4 + 3] + - w_5 * xl[n4 + 4]; - } - - xl4[SNS_NPTS - 1] = w_0 * xl[FDNS_NPTS - 5] + - w_1 * xl[FDNS_NPTS - 4] + - w_2 * xl[FDNS_NPTS - 3] + - w_3 * xl[FDNS_NPTS - 2] + - w_4 * xl[FDNS_NPTS - 1] + - w_5 * xl[FDNS_NPTS - 1]; - - /* Remove mean and scaling */ - sum = sum_f( xl4, SNS_NPTS ); - mean = sum / SNS_NPTS; - - for ( i = 0; i < SNS_NPTS; i++ ) - { - scf[i] = 0.85f * ( xl4[i] - mean ); - } - - return; -} -#endif /*------------------------------------------------------------------- diff --git a/lib_enc/ivas_tcx_core_enc.c b/lib_enc/ivas_tcx_core_enc.c index 4bd88cb00d..2c1e4a9051 100644 --- a/lib_enc/ivas_tcx_core_enc.c +++ b/lib_enc/ivas_tcx_core_enc.c @@ -268,11 +268,7 @@ void stereo_tcx_core_enc( *--------------------------------------------------------------------------------*/ /* TCX20/TCX10 and coder type */ -#ifdef MDCT_STEREO_PLC_FADE_2_BG_NOISE writeTCXMode( st, hBstr, 0, /* <- is_mct */ &nbits_start ); -#else - writeTCXMode( st, hBstr, &nbits_start ); -#endif /* write last_core for error concealment */ push_next_indice( hBstr, ( st->last_core != ACELP_CORE || st->core == TCX_10_CORE ), 1 ); -- GitLab From 37bf5da725492c9b3a1f4c390d51a01b2ecb34c4 Mon Sep 17 00:00:00 2001 From: kiene Date: Thu, 20 Oct 2022 15:30:44 +0200 Subject: [PATCH 271/479] acceptFADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS --- lib_com/ivas_cnst.h | 2 -- lib_com/options.h | 1 - lib_dec/dec_tcx.c | 2 -- lib_dec/er_dec_tcx.c | 2 -- 4 files changed, 7 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 5884d084b6..7d84adbb12 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -796,10 +796,8 @@ enum fea_names #define SNS_NPTS 16 /* Number of downsampled SNS parameters */ #define MDCT_ST_PLC_FADEOUT_MIN_NOISE_NRG 0.001f -#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS #define MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME 2 * FRAMES_PER_SEC #define MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN 20 -#endif typedef enum { EQUAL_CORES, diff --git a/lib_com/options.h b/lib_com/options.h index 150ecc0dc1..1c21e85d2d 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -142,7 +142,6 @@ #define DISABLE_ADAP_RES_COD_TMP /* temporary fix for IVAS-403, disables adaptive residual coding */ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -#define FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index b5f78ab052..d625139a47 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -192,7 +192,6 @@ void decoder_tcx_post( if ( st->tcxonly ) { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / ( level_syn + 0.01f ); -#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) { @@ -205,7 +204,6 @@ void decoder_tcx_post( gainCNG *= 1.f - (float) ( st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) / MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN; } } -#endif } else { diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 5a1cb5f881..bf561c2abd 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -447,7 +447,6 @@ void con_tcx( { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / gainSynthDeemph; -#ifdef FADE_TO_ZERO_FOR_TOO_LONG_FRAMELOSS if ( st->element_mode == IVAS_CPE_MDCT && A_cng != NULL ) { if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME + MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN ) @@ -459,7 +458,6 @@ void con_tcx( gainCNG *= 1.f - (float) ( st->nbLostCmpt - MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME ) / MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN; } } -#endif } else { -- GitLab From 79ab46424c62b2e6d9a001579cd921cd3c852bf9 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 20 Oct 2022 16:35:05 +0200 Subject: [PATCH 272/479] fix MSVC warning and bug in EFAP_FIX_POLY --- lib_dec/ivas_efap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib_dec/ivas_efap.c b/lib_dec/ivas_efap.c index 482edfb643..aec452a96b 100644 --- a/lib_dec/ivas_efap.c +++ b/lib_dec/ivas_efap.c @@ -2114,7 +2114,8 @@ static int16_t get_poly_num( int16_t i; #ifdef EFAP_FIX_POLY int16_t num_poly, found_poly; - int16_t poly_tmp[EFAP_MAX_CHAN_NUM], poly_dist[EFAP_MAX_CHAN_NUM]; + int16_t poly_tmp[EFAP_MAX_CHAN_NUM]; + float poly_dist[EFAP_MAX_CHAN_NUM]; float dist_tmp; float pos[3]; -- GitLab From e488df01b735a9e199d14e9bdd40525742c05e32 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 20 Oct 2022 16:56:22 +0200 Subject: [PATCH 273/479] fix typo --- lib_dec/ivas_efap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/ivas_efap.c b/lib_dec/ivas_efap.c index aec452a96b..bbb464b292 100644 --- a/lib_dec/ivas_efap.c +++ b/lib_dec/ivas_efap.c @@ -1602,7 +1602,7 @@ static float vertex_distance( #ifdef EFAP_FIX_POLY /*-------------------------------------------------------------------------* - * point_plane_distance() + * point_poly_distance() * * Compute the signed distance between a point and polygon *-------------------------------------------------------------------------*/ -- GitLab From a815f3b736cb48bdc19890498cbb19b7c1adfd81 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Fri, 21 Oct 2022 00:04:40 +0200 Subject: [PATCH 274/479] added get/feed renderconfig --- apps/renderer.c | 50 +++++++++++++++++++++++++-- lib_rend/lib_rend.c | 82 +++++++++++++++++++++++++++++++++++++++++++++ lib_rend/lib_rend.h | 10 ++++++ 3 files changed, 139 insertions(+), 3 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index 3369dfcee2..66c0a01d07 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -40,10 +40,10 @@ #include "hrtf_file_reader.h" #include "ism_file_reader.h" #include "lib_rend.h" +#include "render_config_reader.h" #include "ls_custom_file_reader.h" #include "masa_file_reader.h" #include "prot.h" -#include "render_config_reader.h" #ifdef WMOPS #include "PROM_Size_lib_rend.h" #include "wmops.h" @@ -460,8 +460,11 @@ int32_t main( int32_t argc, char **argv ) if ( args.renderConfigFile[0] != '\0' ) { - RenderConfigReader_open( args.renderConfigFile, &renderConfigReader ); - } + if ( ( error = RenderConfigReader_open( args.renderConfigFile, &renderConfigReader ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", args.renderConfigFile ); + exit( -1 ); + } } if ( args.sceneDescriptionInput ) { @@ -585,6 +588,47 @@ int32_t main( int32_t argc, char **argv ) hMasaMetadata = MasaFileReader_getMetadataHandle( masaReader ); } + if ( args.renderConfigFile[0] != '\0' ) + { + IVAS_RENDER_CONFIG_DATA renderConfig; + + /* sanity check */ +/* if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + { + fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" ); + exit( -1 ); // goto cleanup; + } + + if ( ( error = ivas_render_config_open( &hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK ) + { + ivas_render_config_open(&renderConfig); + return error; + } + + if ( ivas_render_config_init_from_rom( &st->hRendererConfig, st->rendererConfigEnabled ) != IVAS_ERR_OK ) + { + return IVAS_ERR_INTERNAL_FATAL; + } +*/ + if ( ( error = IVAS_REND_GetRenderConfig( hIvasRend, &renderConfig ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed\n" ); + exit( -1 ); // goto cleanup; + } + + if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Failed to read renderer configuration from file %s\n", args.renderConfigFile ); + exit( -1 ); // goto cleanup; + } + + if ( ( error = IVAS_REND_FeedRenderConfig( hIvasRend, renderConfig ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed\n" ); + exit( -1 ); // goto cleanup; + } + } + int32_t numOutChannels; if ( ( error = IVAS_REND_NumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) { diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index b31ffafac5..5fb320e01a 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -152,6 +152,7 @@ struct IVAS_REND EFAP_WRAPPER efapOutWrapper; IVAS_LSSETUP_CUSTOM_STRUCT customLsOut; IVAS_REND_HeadRotData headRotData; + RENDER_CONFIG_DATA *hRendererConfig; /* Renderer config pointer */ }; static int32_t limitRendererOutput( @@ -2627,6 +2628,87 @@ ivas_error IVAS_REND_FeedInputObjectMetadata( return IVAS_ERR_OK; } + +int16_t IVAS_REND_GetRenderConfig( + IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ + const IVAS_RENDER_CONFIG_HANDLE hRCout /* o : Render configuration handle */ +) +{ + RENDER_CONFIG_HANDLE hRCin; + + if ( hIvasRend == NULL || hIvasRend->hRendererConfig == NULL || hRCout == NULL ) + { + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } + + hRCin = hIvasRend->hRendererConfig; +#ifdef DEBUGGING + switch ( hRCin->renderer_type_override ) + { + case RENDER_TYPE_OVERRIDE_CREND: + hRCout->renderer_type_override = IVAS_RENDER_TYPE_OVERRIDE_CREND; + break; + case RENDER_TYPE_OVERRIDE_FASTCONV: + hRCout->renderer_type_override = IVAS_RENDER_TYPE_OVERRIDE_FASTCONV; + break; + default: + hRCout->renderer_type_override = IVAS_RENDER_TYPE_OVERRIDE_NONE; + break; + } +#endif + hRCout->room_acoustics.override = hRCin->roomAcoustics.override; + hRCout->room_acoustics.use_brir = hRCin->roomAcoustics.use_brir; + hRCout->room_acoustics.late_reverb_on = hRCin->roomAcoustics.late_reverb_on; + hRCout->room_acoustics.nBands = hRCin->roomAcoustics.nBands; + hRCout->room_acoustics.acousticPreDelay = hRCin->roomAcoustics.acousticPreDelay; + hRCout->room_acoustics.inputPreDelay = hRCin->roomAcoustics.inputPreDelay; + + mvr2r( hRCin->roomAcoustics.pFc_input, hRCout->room_acoustics.pFc_input, CLDFB_NO_CHANNELS_MAX ); + mvr2r( hRCin->roomAcoustics.pAcoustic_rt60, hRCout->room_acoustics.pAcoustic_rt60, CLDFB_NO_CHANNELS_MAX ); + mvr2r( hRCin->roomAcoustics.pAcoustic_dsr, hRCout->room_acoustics.pAcoustic_dsr, CLDFB_NO_CHANNELS_MAX ); + + return IVAS_ERR_OK; +} + + +int16_t IVAS_REND_FeedRenderConfig( + IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ + const IVAS_RENDER_CONFIG_DATA renderConfig /* i : Render configuration struct */ +) +{ + RENDER_CONFIG_HANDLE hRenderConfig; + + if ( hIvasRend == NULL || hIvasRend->hRendererConfig == NULL ) + { + return IVAS_ERR_UNEXPECTED_NULL_POINTER; + } + + hRenderConfig = hIvasRend->hRendererConfig; +#ifdef DEBUGGING + hRenderConfig->renderer_type_override = RENDER_TYPE_OVERRIDE_NONE; + if ( renderConfig.renderer_type_override == IVAS_RENDER_TYPE_OVERRIDE_FASTCONV ) + { + hRenderConfig->renderer_type_override = RENDER_TYPE_OVERRIDE_FASTCONV; + } + if ( renderConfig.renderer_type_override == IVAS_RENDER_TYPE_OVERRIDE_CREND ) + { + hRenderConfig->renderer_type_override = RENDER_TYPE_OVERRIDE_CREND; + } +#endif + hRenderConfig->roomAcoustics.override = renderConfig.room_acoustics.override; + hRenderConfig->roomAcoustics.use_brir = renderConfig.room_acoustics.use_brir; + hRenderConfig->roomAcoustics.late_reverb_on = renderConfig.room_acoustics.late_reverb_on; + hRenderConfig->roomAcoustics.nBands = renderConfig.room_acoustics.nBands; + hRenderConfig->roomAcoustics.acousticPreDelay = renderConfig.room_acoustics.acousticPreDelay; + hRenderConfig->roomAcoustics.inputPreDelay = renderConfig.room_acoustics.inputPreDelay; + mvr2r( renderConfig.room_acoustics.pFc_input, hRenderConfig->roomAcoustics.pFc_input, CLDFB_NO_CHANNELS_MAX ); + mvr2r( renderConfig.room_acoustics.pAcoustic_rt60, hRenderConfig->roomAcoustics.pAcoustic_rt60, CLDFB_NO_CHANNELS_MAX ); + mvr2r( renderConfig.room_acoustics.pAcoustic_dsr, hRenderConfig->roomAcoustics.pAcoustic_dsr, CLDFB_NO_CHANNELS_MAX ); + + return IVAS_ERR_OK; +} + + ivas_error IVAS_REND_SetHeadRotation( IVAS_REND_HANDLE hIvasRend, const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] ) diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 3be9ad9964..6093228adc 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -234,6 +234,16 @@ ivas_error IVAS_REND_FeedInputMasaMetadata( void* TODO ); +int16_t IVAS_REND_GetRenderConfig( + IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ + const IVAS_RENDER_CONFIG_HANDLE hRCout /* o : Render configuration handle */ +); + +int16_t IVAS_REND_FeedRenderConfig( + IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ + const IVAS_RENDER_CONFIG_DATA renderConfig /* i : Render configuration struct */ +); + ivas_error IVAS_REND_SetHeadRotation( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ const IVAS_QUATERNION headRot[RENDERER_HEAD_POSITIONS_PER_FRAME] /* i : head positions for next rendering call */ -- GitLab From 3f5f20589e5bf53d376041b9e45fec8b3af5e08f Mon Sep 17 00:00:00 2001 From: rtyag Date: Fri, 21 Oct 2022 20:30:01 +1100 Subject: [PATCH 275/479] fix merge issue in disabled code --- lib_enc/ivas_spar_md_enc.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 00367cb4b5..2624389cc4 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -567,8 +567,6 @@ ivas_error ivas_spar_md_enc_process( float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], #else ivas_spar_md_enc_in_buf_t *pIn_buf, - BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ - const int16_t dtx_silence_mode, #endif BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ #ifdef SBA_SPAR_HARM -- GitLab From fea97932aed2b5654bcbabee1b99d21391e05938 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 21 Oct 2022 14:24:29 +0200 Subject: [PATCH 276/479] cherry-pick commit b3e6e7ffb03d87f129cd3dacda1cb78d9f66d9d7 "correction lfe handling in MC to binaural case, bugs fix" manual merge of some files --- .gitignore | 7 +- CMakeLists.txt | 6 ++ apps/renderer.c | 18 ++--- lib_com/ivas_cnst.h | 2 + lib_rend/ivas_limiter.c | 16 +--- lib_rend/lib_rend.c | 1 - .../unit_tests/crend/ivas_crend_io_parse.h | 2 + .../unit_tests/crend/ivas_crend_unit_test.c | 4 + .../unit_tests/crend/ivas_crend_utest_utils.c | 76 ++++++++----------- .../unit_tests/crend/ivas_dec_parse_io.h | 1 + scripts/pyaudio3dtools/binauralrenderer.py | 52 +++++++++---- scripts/tests/constants.py | 41 +++++++++- scripts/tests/data/dirac_12ch_48khz.wav | 3 + scripts/tests/test_renderer.py | 69 ++++++++++++++++- 14 files changed, 211 insertions(+), 87 deletions(-) create mode 100644 scripts/tests/data/dirac_12ch_48khz.wav diff --git a/.gitignore b/.gitignore index 1ec17a4b20..55a113e4bb 100644 --- a/.gitignore +++ b/.gitignore @@ -4,18 +4,20 @@ IVAS_cod IVAS_dec IVAS_rend +IVAS_crend_unit_test obj/ *.a *.o *.P # default CMake -build/**/* +build*/**/* # Compiler output VS2017 IVAS_cod.exe IVAS_dec.exe IVAS_rend.exe +IVAS_crend_unit_test.exe *.user .vs/ Debug_*/ @@ -54,3 +56,6 @@ tests/ref __pycache__/ *.py[cod] *$py.class + +#history +.history/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 806f1f3e2a..d0dccdee5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,6 +152,11 @@ file(GLOB libUtilSrcs "lib_util/*.c") file(GLOB libUtilHeaders "lib_util/*.h") add_library(lib_util ${libUtilSrcs} ${libUtilHeaders}) +file(GLOB libCRendSrcs "scripts/ivas_pytests/tests/unit_tests/crend/*.c") +file(GLOB libCRendHeaders "scripts/ivas_pytests/tests/unit_tests/crend/*.h") +add_executable(IVAS_crend_unit_test ${libCRendSrcs} ${libCRendHeaders}) +target_link_libraries(IVAS_crend_unit_test lib_dec lib_rend lib_util lib_com lib_debug) + add_executable(IVAS_cod apps/encoder.c) target_link_libraries(IVAS_cod lib_enc lib_util) if(WIN32) @@ -172,4 +177,5 @@ if(COPY_EXECUTABLES_TO_ROOT) add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") + add_custom_command(TARGET IVAS_crend_unit_test POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") endif() \ No newline at end of file diff --git a/apps/renderer.c b/apps/renderer.c index 08dd6f4e0d..5eb517740b 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -323,7 +323,7 @@ static void parseSceneDescriptionFile( char *audioFilePath, InputConfig *inConfig, IsmPositionProvider *positionProvider, - MasaFileReader** masaReaders ); + MasaFileReader **masaReaders ); static ivas_error parseCustomLayoutFile( const char *filePath, @@ -390,7 +390,7 @@ static void parseMetadata( char *inDir, InputConfig *inConfig, IsmPositionProvider *positionProvider, - MasaFileReader** masaReaders ); + MasaFileReader **masaReaders ); static void convert_backslash( char *str ); @@ -1263,7 +1263,7 @@ static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ) return IVAS_REND_AUDIO_CONFIG_UNKNOWN; } -static const CmdLnParser_Option* findOptionById( int32_t id ) +static const CmdLnParser_Option *findOptionById( int32_t id ) { for ( int32_t i = 0; i < numCliOptions; ++i ) { @@ -1278,7 +1278,7 @@ static const CmdLnParser_Option* findOptionById( int32_t id ) static bool checkRequiredArgs( CmdlnArgs args ) { - const CmdLnParser_Option* tmpOption; + const CmdLnParser_Option *tmpOption; /* Check required arguments */ bool missingRequiredArg = false; @@ -1649,7 +1649,7 @@ static void splitConfigFile( const char *mdfFilePath, fprintf( stderr, "Error reading metadata\n" ); exit( -1 ); } - *wavFileNameLength = strlen( wavFileName ); + *wavFileNameLength = (uint32_t) strlen( wavFileName ); mdlength = bufferlength - currentPositionIdxs; /* "+1" for null termination */ @@ -1972,7 +1972,7 @@ static void parseMetadata( char *inDir, InputConfig *inConfig, IsmPositionProvider *positionProvider, - MasaFileReader** masaReaders ) + MasaFileReader **masaReaders ) { char line[RENDERER_MAX_METADATA_LINE_LENGTH]; char *delimiter; @@ -2056,7 +2056,7 @@ static void parseMetadata( } parseMasa( line, inDir, inConfig, masaReaders, counterMasaInputs - 1 ); } - else if ( isEmptyString(line) ) + else if ( isEmptyString( line ) ) { fprintf( stderr, "Metadata string too short - expected %d inputs, found %d.\n", totalNumberOfAudioObjects, num_parsed_inputs ); exit( -1 ); @@ -2085,7 +2085,7 @@ static void parseMetadata( } } -static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputConfig *inConfig, IsmPositionProvider *positionProvider, MasaFileReader** masaReaders ) +static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputConfig *inConfig, IsmPositionProvider *positionProvider, MasaFileReader **masaReaders ) { uint32_t inAudioFilePathLen; char inAudioFilePath[FILENAME_MAX]; @@ -2151,7 +2151,7 @@ static void printSupportedAudioConfigs() static void convert_backslash( char *str ) { - int i, len; + int32_t i, len; /* check that all backslashes are correct on the given platform */ len = strlen( str ); diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 00e1fb0d89..f522f809e9 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -193,6 +193,8 @@ typedef enum #define IVAS_MAX_SBA_ORDER 3 /* Maximum supported Ambisonics order */ +#define IVAS_LIMITER_THRESHOLD 32729 /* -0.01 dBFS */ +#define IVAS_LIMITER_ATTACK_SECONDS 0.005f /*----------------------------------------------------------------------------------* * IVAS Bitrates diff --git a/lib_rend/ivas_limiter.c b/lib_rend/ivas_limiter.c index e483318be8..25fad180b9 100644 --- a/lib_rend/ivas_limiter.c +++ b/lib_rend/ivas_limiter.c @@ -39,14 +39,6 @@ #include "wmops.h" #include -/*----------------------------------------------------------------------------------* - * Local constants - *----------------------------------------------------------------------------------*/ - -#define LIMITER_THRESHOLD 32729 /* -0.01 dBFS */ -#define LIMITER_ATTACK_SECONDS 0.005f - - /*-------------------------------------------------------------------* * detect_strong_saturations() * @@ -71,11 +63,11 @@ static int16_t detect_strong_saturations( *strong_saturation_cnt = 50; apply_strong_limiting = 1; } - else if ( max_val > 3 * LIMITER_THRESHOLD && *strong_saturation_cnt > 0 ) + else if ( max_val > 3 * IVAS_LIMITER_THRESHOLD && *strong_saturation_cnt > 0 ) { apply_strong_limiting = 1; } - else if ( max_val > 10 * LIMITER_THRESHOLD ) + else if ( max_val > 10 * IVAS_LIMITER_THRESHOLD ) { *strong_saturation_cnt += 20; *strong_saturation_cnt = min( *strong_saturation_cnt, 50 ); @@ -130,7 +122,7 @@ IVAS_LIMITER_HANDLE ivas_limiter_open( hLimiter->sampling_rate = sampling_rate; hLimiter->gain = 1.f; hLimiter->release_heuristic = 0.f; - hLimiter->attack_constant = powf( 0.01f, 1.0f / ( LIMITER_ATTACK_SECONDS * sampling_rate ) ); + hLimiter->attack_constant = powf( 0.01f, 1.0f / ( IVAS_LIMITER_ATTACK_SECONDS * sampling_rate ) ); hLimiter->strong_saturation_count = 0; #ifdef DEBUGGING hLimiter->cnt_frames_limited = 0; @@ -202,7 +194,7 @@ void ivas_limiter_dec( channels[c] = output[c]; } - limiter_process( hLimiter, output_frame, LIMITER_THRESHOLD, BER_detect, &hLimiter->strong_saturation_count ); + limiter_process( hLimiter, output_frame, IVAS_LIMITER_THRESHOLD, BER_detect, &hLimiter->strong_saturation_count ); return; } diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 78522b1a83..55dff84a52 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -58,7 +58,6 @@ /* Frame size required when rendering to binaural */ #define BINAURAL_RENDERING_FRAME_SIZE_MS 20 -#define LIMITER_THRESHOLD ( 0.9988493699f * INT16_MAX ) /* -0.01 dBFS */ typedef float pan_vector[MAX_OUTPUT_CHANNELS]; typedef float pan_matrix[MAX_INPUT_CHANNELS][MAX_OUTPUT_CHANNELS]; diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h index abc8b1e463..bc719cd4a6 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_io_parse.h @@ -46,6 +46,7 @@ #define IVAS_IN_FMT_510 "510" #define IVAS_IN_FMT_710 "710" #define IVAS_IN_FMT_512 "512" +#define IVAS_IN_FMT_514 "514" #define IVAS_IN_FMT_714 "714" #define IVAS_IN_FMT_FOA "HOA1S" @@ -62,6 +63,7 @@ typedef enum ivas_in_out_fmt_struct_t MULT_CH_5_1, MULT_CH_7_1, MULT_CH_5_1_2, + MULT_CH_5_1_4, MULT_CH_7_1_4, HOA_9, HOA_16, diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c index b2a24534c0..0e32e634fe 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c @@ -416,6 +416,10 @@ static ivas_result_t ivas_crend_binaural_test( ivas_crend_io_params_t *pIo_param { test_case = "CREND_512_TO_BIN"; } + else if ( pIo_params->in_fmt == MULT_CH_5_1_4 ) + { + test_case = "CREND_514_TO_BIN"; + } else if ( pIo_params->in_fmt == MULT_CH_7_1_4 ) { test_case = "CREND_714_TO_BIN"; diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c index d993405b11..00f00560e7 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c @@ -149,6 +149,8 @@ AUDIO_CONFIG ivas_crend_map_out_fmt( return AUDIO_CONFIG_7_1; case MULT_CH_5_1_2: return AUDIO_CONFIG_5_1_2; + case MULT_CH_5_1_4: + return AUDIO_CONFIG_5_1_4; case MULT_CH_7_1_4: return AUDIO_CONFIG_7_1_4; default: @@ -166,6 +168,7 @@ const char *ivas_crend_map_in_fmt( case MULT_CH_5_1: case MULT_CH_7_1: case MULT_CH_5_1_2: + case MULT_CH_5_1_4: case MULT_CH_7_1_4: return IVAS_IN_FMT_COMBINED; case FOA_4: @@ -213,6 +216,9 @@ int16_t ivas_get_num_channels( case MULT_CH_5_1_2: num_channels = 8; break; + case MULT_CH_5_1_4: + num_channels = 10; + break; case MULT_CH_7_1_4: num_channels = 12; break; @@ -561,7 +567,7 @@ ivas_result_t ivas_crend_parse_io_params( int argc, char **argv, ivas_crend_io_p else if ( strcmp( to_upper( argv[i] ), "-IFMT" ) == 0 ) { pIo_params->in_fmt = atoi( argv[++i] ); - if ( ( pIo_params->in_fmt != MONO_1 ) && ( pIo_params->in_fmt != STEREO_2 ) && ( pIo_params->in_fmt != BIN_2 ) && ( pIo_params->in_fmt != FOA_4 ) && ( pIo_params->in_fmt != HOA_9 ) && ( pIo_params->in_fmt != HOA_16 ) && ( pIo_params->in_fmt != MULT_CH_5_1 ) && ( pIo_params->in_fmt != MULT_CH_7_1 ) && ( pIo_params->in_fmt != MULT_CH_5_1_2 ) && ( pIo_params->in_fmt != MULT_CH_7_1_4 ) && ( pIo_params->in_fmt != OBA ) ) + if ( ( pIo_params->in_fmt != MONO_1 ) && ( pIo_params->in_fmt != STEREO_2 ) && ( pIo_params->in_fmt != BIN_2 ) && ( pIo_params->in_fmt != FOA_4 ) && ( pIo_params->in_fmt != HOA_9 ) && ( pIo_params->in_fmt != HOA_16 ) && ( pIo_params->in_fmt != MULT_CH_5_1 ) && ( pIo_params->in_fmt != MULT_CH_7_1 ) && ( pIo_params->in_fmt != MULT_CH_5_1_2 ) && ( pIo_params->in_fmt != MULT_CH_5_1_4 ) && ( pIo_params->in_fmt != MULT_CH_7_1_4 ) && ( pIo_params->in_fmt != OBA ) ) { fprintf( stderr, "Error: Invalid input format\n\n" ); ivas_crend_unit_test_usage(); @@ -575,7 +581,7 @@ ivas_result_t ivas_crend_parse_io_params( int argc, char **argv, ivas_crend_io_p else if ( strcmp( to_upper( argv[i] ), "-OFMT" ) == 0 ) { pIo_params->out_fmt = atoi( argv[++i] ); - if ( ( pIo_params->out_fmt != MONO_1 ) && ( pIo_params->out_fmt != STEREO_2 ) && ( pIo_params->out_fmt != BIN_2 ) && ( pIo_params->out_fmt != FOA_4 ) && ( pIo_params->out_fmt != HOA_9 ) && ( pIo_params->out_fmt != HOA_16 ) && ( pIo_params->out_fmt != MULT_CH_5_1 ) && ( pIo_params->out_fmt != MULT_CH_7_1 ) && ( pIo_params->out_fmt != MULT_CH_5_1_2 ) && ( pIo_params->out_fmt != MULT_CH_7_1_4 ) ) + if ( ( pIo_params->out_fmt != MONO_1 ) && ( pIo_params->out_fmt != STEREO_2 ) && ( pIo_params->out_fmt != BIN_2 ) && ( pIo_params->out_fmt != FOA_4 ) && ( pIo_params->out_fmt != HOA_9 ) && ( pIo_params->out_fmt != HOA_16 ) && ( pIo_params->out_fmt != MULT_CH_5_1 ) && ( pIo_params->out_fmt != MULT_CH_7_1 ) && ( pIo_params->out_fmt != MULT_CH_5_1_2 ) && ( pIo_params->out_fmt != MULT_CH_5_1_4 ) && ( pIo_params->out_fmt != MULT_CH_7_1_4 ) ) { fprintf( stderr, "Error: Invalid output format\n\n" ); ivas_crend_unit_test_usage(); @@ -875,7 +881,7 @@ static ivas_result_t ivas_wrapper_get_in_buf( ivas_crend_io_params_t *pIo_params #endif { ppPcm_in[i][j] = (float) tmp; - ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); + // ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); samples_read += 1; } else @@ -913,7 +919,7 @@ static ivas_result_t ivas_wrapper_get_in_buf( ivas_crend_io_params_t *pIo_params #endif { ppPcm_in[i][j] = (float) tmp; - ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); + // ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); samples_read += 1; } else @@ -999,6 +1005,7 @@ static void ivas_copy_io_params_to_dec_io_params( ivas_crend_io_params_t *pIo_pa case MULT_CH_5_1: case MULT_CH_7_1: case MULT_CH_5_1_2: + case MULT_CH_5_1_4: case MULT_CH_7_1_4: pDec_io_params->lfe_ch_idx = IVAS_DEFAULT_LFE_CH_IDX; break; @@ -1398,36 +1405,24 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl return IVAS_IO_ERROR; } - if ( pIo_params->lfe_lp_enable ) { - int32_t idx = 0; - for ( i = 0; i < in_ch; i++ ) + /* ADD delay to make overall max(block_offset, 11.5)*/ + if ( st_ivas.hLFE->lfe_addl_delay > 0 ) { - if ( i != lfe_ch_idx ) - { - delay_signal( ppPcm_in[idx], frame_len, ppDelay_lines[idx], delay_lp ); - idx++; - } + delay_signal( ppPcm_in[lfe_ch_idx], frame_len, st_ivas.hLFE->lfe_delay_buf, st_ivas.hLFE->lfe_addl_delay ); } + ivas_filter_process( &st_ivas.hLFE->filter_state, ppPcm_in[lfe_ch_idx], frame_len ); } if ( pIo_params->test == FASTCONV_BIN_TEST ) { ivas_binaural_cldfb( &st_ivas, ppPcm_in ); - for ( i = 0; i < out_ch; i++ ) - { - mvr2r( ppPcm_in[i], ppPcm_out[i], frame_len ); - } } else if ( pIo_params->test == TD_BIN_TEST ) { ObjRenderIVASFrame( &st_ivas, ppPcm_in, frame_len ); - for ( i = 0; i < out_ch; i++ ) - { - mvr2r( ppPcm_in[i], ppPcm_out[i], frame_len ); - } } else if ( pIo_params->test == PARAM_BIN_TEST ) { @@ -1482,11 +1477,6 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl cldfbSynthesis( &outSlotRePr, &outSlotImPr, &( ppPcm_in[ch][slot_idx * maxBand] ), maxBand, st_ivas.cldfbSynDec[ch] ); } } - - for ( i = 0; i < out_ch; i++ ) - { - mvr2r( ppPcm_in[i], ppPcm_out[i], frame_len ); - } } else @@ -1495,7 +1485,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { ivas_crend_mixer( ppPcm_in, ppPcm_out, in_ch, out_ch, mixer, frame_len ); } - else + else { ivas_crend_process( &st_ivas, ppPcm_in ); } @@ -1503,19 +1493,12 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl if ( mixer == NULL ) { - if ( st_ivas.hLFE ) + if ( pIo_params->lfe_lp_enable ) { - /* if ( st_ivas.hLFE->filter_state.order > 0 ) - { - - ivas_filter_process( &st_ivas.hLFE->filter_state, ppPcm_in[lfe_ch_idx], frame_len ); - }*/ - - /* ADD delay to make overall max(block_offset, 11.5)*/ - if ( st_ivas.hLFE->lfe_addl_delay > 0 ) - { - delay_signal( ppPcm_in[lfe_ch_idx], frame_len, st_ivas.hLFE->lfe_delay_buf, st_ivas.hLFE->lfe_addl_delay ); - } + for ( i = 0; i < out_ch; i++ ) + { + delay_signal( ppPcm_in[i], frame_len, ppDelay_lines[i], delay_lp ); + } ivas_binaural_add_LFE( &st_ivas, frame_len, ppPcm_in ); } @@ -1525,7 +1508,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl } if ( pIo_params->limiter_enable ) { - ivas_limiter_dec( st_ivas.hLimiter, ppPcm_out, out_ch, frame_len, FALSE ); + ivas_limiter_dec( st_ivas.hLimiter, ppPcm_out, out_ch, frame_len, 0 ); } } @@ -1540,7 +1523,8 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl } for ( i = 0; i < out_ch; i++ ) { - float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); +// float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); + float temp; #ifdef _FIND_MAX_ valMaxLoc = ( ppPcm_out[i][j] > valMaxLoc ) ? ppPcm_out[i][j] : ( ppPcm_out[i][j] < -valMaxLoc ) ? -ppPcm_out[i][j] : valMaxLoc; @@ -1549,9 +1533,10 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl valMax = valMaxLoc; valEner += ppPcm_out[i][j] * ppPcm_out[i][j]; #endif - pcm[i] = ( temp > MAX16B ) ? MAX16B : ( temp < MIN16B_FLT ) ? MIN16B - : (short) temp; - clip = max( clip, fabs( ppPcm_out[i][j] ) ); + temp = ( ppPcm_out[i][j] > MAX16B_FLT ) ? MAX16B_FLT : ( ppPcm_out[i][j] < MIN16B_FLT ) ? MIN16B_FLT + : ppPcm_out[i][j]; + pcm[i] = (short) roundf(temp); + clip = max( clip, fabsf( ppPcm_out[i][j] ) ); } @@ -1566,7 +1551,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl if ( write_flag == 0 ) skipped_samples++; } - if ( clip > 1.0f ) + if ( clip > MAX16B_FLT ) { fprintf( stdout, "IVAS Common Renderer Clipped: max gain = %f\n", clip ); } @@ -1769,7 +1754,8 @@ ivas_result_t ivas_object_mixer_renderer( ivas_crend_io_params_t *pIo_params, in for ( i = 0; i < out_ch; i++ ) { - float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); +// float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); + float temp = roundf( ppPcm_out[i][j] ); #ifdef _FIND_MAX_ valMaxLoc = ( ppPcm_out[i][j] > valMaxLoc ) ? ppPcm_out[i][j] : ( ppPcm_out[i][j] < -valMaxLoc ) ? -ppPcm_out[i][j] diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h index ed4071d8ca..97962a785b 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_dec_parse_io.h @@ -83,6 +83,7 @@ #define IVAS_IN_FMT_510 "510" #define IVAS_IN_FMT_710 "710" #define IVAS_IN_FMT_512 "512" +#define IVAS_IN_FMT_514 "514" #define IVAS_IN_FMT_714 "714" #define IVAS_IN_FMT_FOA "HOA1S" #define IVAS_IN_FMT_HOA_2 "HOA2S" diff --git a/scripts/pyaudio3dtools/binauralrenderer.py b/scripts/pyaudio3dtools/binauralrenderer.py index 520305c7bf..e9b8f88778 100644 --- a/scripts/pyaudio3dtools/binauralrenderer.py +++ b/scripts/pyaudio3dtools/binauralrenderer.py @@ -51,6 +51,10 @@ logger.setLevel(logging.DEBUG) """" Helper functions """ +def NS2SA(fs, x): + return int(int(fs / 100) * ((x) / 100) / 100000) + + def read_hrirs_from_mat( hrirs_path: str = "/HRIRs_mat/ORANGE_HRIR_53_48000_combined.mat", ) -> np.ndarray: @@ -88,7 +92,7 @@ def get_IR( in_spfmt: spatialaudioformat.Format, out_spfmt: spatialaudioformat.Format, dataset: str, -) -> Tuple[np.ndarray, np.ndarray]: +) -> Tuple[np.ndarray, np.ndarray, float]: """get_IR Parameters @@ -136,6 +140,8 @@ def get_IR( IR, SourcePosition = read_hrirs_from_mat("_".join([prefix, suffix])) + latency_smp = float(np.min(np.argmax(np.sum(np.abs(IR), axis=(1)), axis=(0)))) + if in_spfmt.name.startswith("MONO"): IR = IR[:, :, :1] # use omni/W from SBA elif in_spfmt.name.startswith("STEREO"): @@ -157,7 +163,7 @@ def get_IR( IR[:, :, ir_index] = IR_tmp[:, :, i] ir_index += 1 - return IR, SourcePosition + return IR, SourcePosition, latency_smp def FindFilter(SourcePosition: np.ndarray, azi: float, ele: float) -> int: @@ -494,7 +500,12 @@ def binaural_render_LFE( fs: int = 48000, lfe_index: list = [3], LFE_gain: float = 10 ** (5.5 / 20), + latency_smp: int = 0, ) -> np.ndarray: + """ + Extract LFE from the given input and render + it binaurally, accounting for delay of the + """ lfe = x[:, lfe_index].copy() @@ -503,6 +514,7 @@ def binaural_render_LFE( lfe = np.sum(lfe, axis=1) # TODO tmu - disabled temporarily here, disabled in C + lfe_delay_ns = 0 """ # 120 Hz low-pass filtering for LFE using IVAS filter coefficients if fs == 48000: @@ -511,20 +523,21 @@ def binaural_render_LFE( raise NotImplementedError("Only 48 kHz supported at the moment!") # 3.5ms LP filter delay from IVAS ROM - filter_delay = int(3.5 * fs / 1000) - - # delay adjustment - lfe = np.roll(lfe, -filter_delay, axis=0) - lfe[-filter_delay:, :] = 0 + lfe_delay_ns = 0.0035 * 1e9 + lfe_delay_smp = round(lfe_delay_ns * fs / 1e9) + # Delay LFE by the same amount as the HRTF delay + lfe = np.roll(lfe, round(latency_smp), axis=0) + lfe[0 : round(latency_smp), :] = 0 """ + # apply gain lfe *= LFE_gain # duplicate for each binaural channel lfe = np.hstack([lfe, lfe]) - return lfe + return lfe, lfe_delay_ns """ Format specific wrapper functions """ @@ -711,14 +724,18 @@ def binaural_rendering( # resample to 48 kHz y = audioarray.resample(x, fs, 48000) + delay_total_ns = 0 # get IR corresponding to the input and output formats - IR, SourcePosition = get_IR(in_spfmt, out_spfmt, dataset) - latency_smp = np.argmax(np.sum(np.abs(IR), axis=(1, 2))) + IR, SourcePosition, latency_smp = get_IR(in_spfmt, out_spfmt, dataset) + delay_total_ns += latency_smp / float(fs) * 1e9 # prepare LFE signal to be added to output if include_LFE and in_spfmt.isloudspeaker and in_spfmt.lfe_index: - lfe = binaural_render_LFE(x, 48000, in_spfmt.lfe_index, LFE_gain) + lfe, lfe_delay_ns = binaural_render_LFE( + x, 48000, in_spfmt.lfe_index, LFE_gain, latency_smp + ) + delay_total_ns += lfe_delay_ns # get binauralized signal based on format if in_spfmt.altname.startswith("CUSTOM_LS"): @@ -745,14 +762,19 @@ def binaural_rendering( f"{in_spfmt.name} -> {out_spfmt.name}: format conversion not implemented" ) - # HRTF delay compensation - y = np.roll(y, -latency_smp, axis=0) - y[-latency_smp:, :] = 0 - # add LFE signal to output if include_LFE and in_spfmt.isloudspeaker and in_spfmt.lfe_index: + # delay the binauralized signal by the LFE delay + lfe_delay_smp = NS2SA(fs, int(lfe_delay_ns)) + y = np.roll(y, lfe_delay_smp, axis=0) + y[0:lfe_delay_smp, :] = 0 y += lfe + # delay compensation + delay_total_smp = NS2SA(fs, delay_total_ns) + y = np.roll(y, -delay_total_smp, axis=0) + y[-delay_total_smp:, :] = 0 + # resample back to original rate y = audioarray.resample(y, 48000, fs) diff --git a/scripts/tests/constants.py b/scripts/tests/constants.py index dcf8bbe3a9..3203d15ccd 100644 --- a/scripts/tests/constants.py +++ b/scripts/tests/constants.py @@ -56,7 +56,7 @@ RENDERER_CMD = [ "-q", ] -""" Renderer commandline template """ +""" TD Object Renderer commandline template """ TDRENDERER_CMD = [ str( TESTS_DIR.parent.joinpath("td_object_renderer") @@ -68,6 +68,26 @@ TDRENDERER_CMD = [ "", # 5 -> output file ] +""" CREND commandline template """ +RENDERER_CREND_CMD = [ + str(TESTS_DIR.parent.parent.joinpath("IVAS_crend_unit_test")), + "-test", + "1", + "-sr", + "48", + "-ifmt", + "", # 4 -> input format + "-ofmt", + "", # 8 -> output format + "-i", + "", # 2 -> input file + "-o", + "/dev/null", # 6 -> output file + "-lp_lfe", + "-limiter" + # "-no_delay_cmp" +] + """ Format to file mappings """ NCHAN_TO_FILE = { 1: TEST_VECTOR_DIR.joinpath("spectral_test_1ch_48kHz.wav"), @@ -141,6 +161,21 @@ FORMAT_TO_METADATA_FILES = { "MASA2": [str(TEST_VECTOR_DIR.joinpath("stv_IVASMASAQ_2dir2TC.met"))], } +FORMAT_TO_CREND_FORMAT = { + "MONO": "0", + "STEREO": "1", + "BINAURAL": "2", + "BINAURAL_ROOM": "2", + "FOA": "3", + "5_1": "4", + "7_1": "5", + "5_1_2": "6", + "5_1_4": "7", + "7_1_4": "8", + "HOA2": "9", + "HOA3": "10", +} + """ Input formats """ INPUT_FORMATS_AMBI = ["FOA", "HOA2", "HOA3"] INPUT_FORMATS_MC = ["MONO", "STEREO", "5_1", "5_1_2", "5_1_4", "7_1", "7_1_4"] @@ -180,7 +215,7 @@ METADATA_SCENES_TO_TEST_NO_BE = ["masa_scene"] """ Binaural rendering """ INPUT_FORMATS_BINAURAL = OUTPUT_FORMATS[2:] -INPUT_FORMATS_BINAURAL.extend( +INPUT_FORMATS_BINAURAL.extend( [ "ISM1", "ISM2", @@ -189,7 +224,7 @@ INPUT_FORMATS_BINAURAL.extend( # "MASA1", # "MASA2", ] - ) +) OUTPUT_FORMATS_BINAURAL = ["BINAURAL", "BINAURAL_ROOM"] HR_TRAJECTORIES_TO_TEST = [ # "const000", diff --git a/scripts/tests/data/dirac_12ch_48khz.wav b/scripts/tests/data/dirac_12ch_48khz.wav new file mode 100644 index 0000000000..49a781a4b0 --- /dev/null +++ b/scripts/tests/data/dirac_12ch_48khz.wav @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:880a478b7b6001dff4570e38a8a1928e0d78a78d223f49555e9023598e5ee4fb +size 13824068 diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index ef304e9461..a076b1d72e 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -171,6 +171,62 @@ def run_renderer( return pyaudio3dtools.audiofile.readfile(out_file) +def run_crend_unittest( + in_fmt: str, + out_fmt: str, + metadata_input: Optional[str] = None, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +) -> Tuple[np.ndarray, int]: + """CuT creation with standalone renderer""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + if metadata_input is not None: + in_file = metadata_input + in_name = metadata_input.stem + elif not isinstance(in_fmt, str): + in_file = FORMAT_TO_FILE[in_fmt.stem] + in_name = in_fmt.stem + else: + in_file = FORMAT_TO_FILE[in_fmt] + in_name = in_fmt + + out_file = str( + OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}_crend.wav") + ) + + cmd = RENDERER_CREND_CMD[:] + cmd[6] = FORMAT_TO_CREND_FORMAT(str(in_fmt)) + cmd[8] = FORMAT_TO_CREND_FORMAT(str(out_fmt)) + cmd[10] = str(in_file) + cmd[12] = str(out_file) + if str(out_fmt) == "BINAURAL_ROOM": + cmd.append("-BRIR") + + # if in_meta_files is not None: + # cmd[5:5] = in_meta_files + + # if trj_file is not None: + # cmd.extend(["-tf", str(trj_file)]) + + try: + sp.run(cmd, check=True, capture_output=True, text=True) + except sp.CalledProcessError as e: + pytest.fail( + f"Command returned non-zero exit status ({e.returncode})!\n{' '.join(e.cmd)}\n{e.stderr}\n{e.stdout}\n{e.output}" + ) + + return pyaudio3dtools.audiofile.readfile(out_file) + + def run_td_standalone( in_fmt: str, out_fmt: str, @@ -411,6 +467,17 @@ def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): check_BE(test_info, ref, ref_fs, cut, cut_fs) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) +def test_multichannel_binaural_static_vs_crend_unitest(test_info, in_fmt, out_fmt): + + cut, cut_fs = run_renderer(in_fmt, out_fmt) + + crend, crend_fs = run_crend_unittest(in_fmt, out_fmt) + + check_BE(test_info, cut, cut_fs, crend, crend_fs) + + # Binaural rendering (head rotation) @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @@ -461,7 +528,7 @@ def test_ism_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): # trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), # in_meta_files=in_meta_files, # ) - + cut, cut_fs = run_renderer( in_fmt, out_fmt, -- GitLab From 58798395fdcd83c7349127b178d1eb984201341d Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 21 Oct 2022 14:49:37 +0200 Subject: [PATCH 277/479] [fix] MSVC warnings and a compiler error --- lib_rend/ivas_crend.c | 2 +- lib_rend/ivas_objectRenderer.c | 2 +- lib_rend/lib_rend.c | 28 +++++++++++++--------------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index bec08cbbaf..0a5b28cb98 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1349,7 +1349,7 @@ ivas_error ivas_rend_initCrend( { return error; } - hHrtf->max_num_ir = nchan_in; + hHrtf->max_num_ir = (int16_t) nchan_in; if ( hHrtf->max_num_ir <= 0 ) { diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index ebccd562ee..e4f0706193 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -715,7 +715,7 @@ ivas_error ivas_rend_TDObjRenderFrame( /* Update object position(s) */ TDREND_Update_object_positions( pTDRend->hBinRendererTd, - num_src, + (int16_t) num_src, lfe_idx, ivas_format, hIsmMetaData, diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 55dff84a52..6ff1a683c3 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -424,8 +424,6 @@ AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( IVAS_REND_AudioConfig config default: return AUDIO_CONFIG_INVALID; } - - return AUDIO_CONFIG_INVALID; } static ivas_error initLimiter( IVAS_LIMITER_HANDLE *phLimiter, int32_t numChannels, int32_t sampleRate ) @@ -2788,7 +2786,7 @@ static ivas_error rotateFrameMc( /* initialize gains to passthrough */ for ( ch_in = 0; ch_in < nchan; ch_in++ ) { - set_zero( gains[ch_in], nchan ); + set_zero( gains[ch_in], (int16_t) nchan ); gains[ch_in][ch_in] = 1.f; } @@ -2816,7 +2814,7 @@ static ivas_error rotateFrameMc( &azimuth, &elevation, Rmat, - is_planar_setup ); + (int16_t) is_planar_setup ); if ( hEFAPdata != NULL && ( ls_azimuth[ch_in_woLFE] != azimuth || ls_elevation[ch_in_woLFE] != elevation ) ) { @@ -2863,7 +2861,7 @@ static ivas_error rotateFrameMc( /* move gains to gains_prev */ for ( i = 0; i < nchan; i++ ) { - mvr2r( gains[i], gains_prev[i], nchan ); + mvr2r( gains[i], gains_prev[i], (int16_t) nchan ); } } @@ -3083,7 +3081,7 @@ static ivas_error renderIsmToBinauralRoom( /* intermediate rendering to 7_1_4 */ tmpMcBuffer = ismInput->base.inputBuffer; getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); - tmpMcBuffer.config.numChannels = tmp; + tmpMcBuffer.config.numChannels = (int16_t) tmp; tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels ); @@ -3164,10 +3162,10 @@ static ivas_error renderIsmToSba( return error; } - ivas_dirac_dec_get_response( ismInput->previousPos.azimuth, - ismInput->previousPos.elevation, + ivas_dirac_dec_get_response( (int16_t) ismInput->previousPos.azimuth, + (int16_t) ismInput->previousPos.elevation, previousPanGains, - ambiOrderOut ); + (int16_t) ambiOrderOut ); if ( ( ismInput->currentPos.azimuth == ismInput->previousPos.azimuth ) && ( ismInput->currentPos.elevation == ismInput->previousPos.elevation ) ) @@ -3176,10 +3174,10 @@ static ivas_error renderIsmToSba( } else { - ivas_dirac_dec_get_response( ismInput->currentPos.azimuth, - ismInput->currentPos.elevation, + ivas_dirac_dec_get_response( (int16_t) ismInput->currentPos.azimuth, + (int16_t) ismInput->currentPos.elevation, currentPanGains, - ambiOrderOut ); + (int16_t) ambiOrderOut ); } /* Assume num channels in audio buffer to be 1. @@ -3486,7 +3484,7 @@ static ivas_error renderMcCustomLsToBinauralRoom( /* intermediate conversion to 7_1_4 */ tmpMcBuffer = mcInput->base.inputBuffer; getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); - tmpMcBuffer.config.numChannels = tmp; + tmpMcBuffer.config.numChannels = (int16_t) tmp; tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels ); @@ -3765,7 +3763,7 @@ static ivas_error renderSbaToBinauralRoom( /* intermediate rendering to 7_1_4 */ tmpMcBuffer = sbaInput->base.inputBuffer; getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); - tmpMcBuffer.config.numChannels = tmp; + tmpMcBuffer.config.numChannels = (int16_t) tmp; tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numChannels * tmpMcBuffer.config.numSamplesPerChannel ); @@ -3941,7 +3939,7 @@ ivas_error IVAS_REND_GetSamples( #ifdef DEBUGGING hIvasRend->numClipping += #endif - limitRendererOutput( hIvasRend->hLimiter, outAudio.data, outAudio.config.numSamplesPerChannel, LIMITER_THRESHOLD ); + limitRendererOutput( hIvasRend->hLimiter, outAudio.data, outAudio.config.numSamplesPerChannel, IVAS_LIMITER_THRESHOLD ); return IVAS_ERR_OK; } -- GitLab From 0e02fd9205d324e3f54a87d1d787c466af8ae207 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Sun, 23 Oct 2022 02:41:40 +0200 Subject: [PATCH 278/479] added render config open and init from rom --- apps/renderer.c | 19 +++++++------------ lib_rend/lib_rend.c | 31 +++++++++++++++++++++++++++++++ lib_rend/lib_rend.h | 6 ++++++ 3 files changed, 44 insertions(+), 12 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index 66c0a01d07..186ca87c6c 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -588,28 +588,23 @@ int32_t main( int32_t argc, char **argv ) hMasaMetadata = MasaFileReader_getMetadataHandle( masaReader ); } + /* === Configure === */ + if ( ( error = IVAS_REND_ConfigureConfig( hIvasRend, args.trajectoryFile[0] != '\0', args.renderConfigFile[0] != '\0' ) ) != IVAS_ERR_OK ) + { + exit( -1 ); + } + if ( args.renderConfigFile[0] != '\0' ) { IVAS_RENDER_CONFIG_DATA renderConfig; /* sanity check */ -/* if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" ); exit( -1 ); // goto cleanup; } - if ( ( error = ivas_render_config_open( &hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK ) - { - ivas_render_config_open(&renderConfig); - return error; - } - - if ( ivas_render_config_init_from_rom( &st->hRendererConfig, st->rendererConfigEnabled ) != IVAS_ERR_OK ) - { - return IVAS_ERR_INTERNAL_FATAL; - } -*/ if ( ( error = IVAS_REND_GetRenderConfig( hIvasRend, &renderConfig ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed\n" ); diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 5fb320e01a..2caca428fb 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -151,7 +151,11 @@ struct IVAS_REND IVAS_REND_AudioConfig outputConfig; EFAP_WRAPPER efapOutWrapper; IVAS_LSSETUP_CUSTOM_STRUCT customLsOut; + + int8_t enableHeadRotation; /* head rotation flag */ IVAS_REND_HeadRotData headRotData; + + int8_t rendererConfigEnabled; RENDER_CONFIG_DATA *hRendererConfig; /* Renderer config pointer */ }; @@ -2628,6 +2632,33 @@ ivas_error IVAS_REND_FeedInputObjectMetadata( return IVAS_ERR_OK; } +ivas_error IVAS_REND_ConfigureConfig( IVAS_REND_HANDLE st, + bool headRotationEnabled, + bool rendererConfigEnabled ) +{ + ivas_error error; + + if ( headRotationEnabled ) + { + st->enableHeadRotation = 1; + } + + if ( rendererConfigEnabled ) + { + st->rendererConfigEnabled = 1; + } + + if ( ( error = ivas_render_config_open( &( st->hRendererConfig ) ) ) != IVAS_ERR_OK ) + { + return error; + } + + if ( ivas_render_config_init_from_rom( &st->hRendererConfig, st->rendererConfigEnabled ) != IVAS_ERR_OK ) + { + return IVAS_ERR_INTERNAL_FATAL; + } + +} int16_t IVAS_REND_GetRenderConfig( IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 6093228adc..75d580e1c0 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -234,6 +234,12 @@ ivas_error IVAS_REND_FeedInputMasaMetadata( void* TODO ); +ivas_error IVAS_REND_ConfigureConfig( + IVAS_REND_HANDLE st, /* i/o: Renderer handle */ + bool headRotationEnabled, /* i : enable head rotation for binaural output, ignored for other output formats */ + bool rendererConfigEnabled /* i : flag indicating if a renderer configuration file was supplied */ +); + int16_t IVAS_REND_GetRenderConfig( IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ const IVAS_RENDER_CONFIG_HANDLE hRCout /* o : Render configuration handle */ -- GitLab From a51b2d3560e5c1ad587c68294a54a33fca3cb310 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Sun, 23 Oct 2022 03:12:51 +0200 Subject: [PATCH 279/479] return value --- lib_rend/lib_rend.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 2caca428fb..3405cbb548 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -2658,6 +2658,7 @@ ivas_error IVAS_REND_ConfigureConfig( IVAS_REND_HANDLE st, return IVAS_ERR_INTERNAL_FATAL; } + return IVAS_ERR_OK; } int16_t IVAS_REND_GetRenderConfig( -- GitLab From 891e871270c481b7f3b2c61b1ef30766ac8d4809 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Sun, 23 Oct 2022 03:56:48 +0200 Subject: [PATCH 280/479] added deallocation --- apps/renderer.c | 3 ++- lib_rend/lib_rend.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/renderer.c b/apps/renderer.c index 186ca87c6c..b6d51ce43c 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -464,7 +464,8 @@ int32_t main( int32_t argc, char **argv ) { fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", args.renderConfigFile ); exit( -1 ); - } } + } + } if ( args.sceneDescriptionInput ) { diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 3405cbb548..98fe8fdb1f 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -4095,6 +4095,10 @@ void IVAS_REND_Close( IVAS_REND_HANDLE *phIvasRend ) clearInputSba( &hIvasRend->inputsSba[i] ); } + /* clear Config. Renderer */ + ivas_render_config_close( &( hIvasRend->hRendererConfig ) ); + + ivas_limiter_close( &hIvasRend->hLimiter ); count_free( hIvasRend ); -- GitLab From 2b74dee859fd2a7a809e218eed9086d8a28180ea Mon Sep 17 00:00:00 2001 From: rtyag Date: Mon, 24 Oct 2022 15:04:28 +1100 Subject: [PATCH 281/479] SBA bitrate switching changes with re-init function --- lib_com/ivas_prot.h | 18 +- lib_com/ivas_sba_config.c | 22 +- lib_com/options.h | 2 +- lib_debug/mem_count.c | 5 +- lib_dec/ivas_init_dec.c | 19 +- lib_dec/ivas_sba_dec.c | 460 ++++++++++++++++++++++ lib_enc/ivas_enc.c | 22 +- lib_enc/ivas_sba_enc.c | 219 ++++++++++ scripts/config/self_test.prm | 15 + scripts/switchPaths/sw_13k2_192k_50fr.bin | 3 + scripts/switchPaths/sw_16k4_512k_50fr.bin | 3 + 11 files changed, 778 insertions(+), 10 deletions(-) create mode 100644 scripts/switchPaths/sw_13k2_192k_50fr.bin create mode 100644 scripts/switchPaths/sw_16k4_512k_50fr.bin diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index ff23fb7ebf..d8de806183 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -106,7 +106,17 @@ ivas_error mct_enc_reconfigure( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ const uint16_t b_nchan_change /* i : flag indicating different channel count */ ); - +#ifdef SBA_BR_SWITCHING +ivas_error ivas_sba_enc_reinit( + Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ +); +#endif +#ifdef SBA_BR_SWITCHING +int16_t get_sba_reinit_flag( + int32_t ivas_total_bitrate, /* i: current bitrate */ + int32_t last_ivas_total_brate /* i: previous bitrate */ +); +#endif ivas_error ivas_sba_enc_reconfigure( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ ); @@ -3053,7 +3063,11 @@ void ivas_sba_config( int16_t *nCPE, /* o : number of CPEs */ int16_t *element_mode /* o : element mode of the core coder */ ); - +#ifdef SBA_BR_SWITCHING +ivas_error ivas_sba_dec_reinit( + Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ +); +#endif ivas_error ivas_sba_dec_reconfigure( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index d7e47960b0..fecb7ac8e4 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -71,8 +71,26 @@ SBA_MODE ivas_sba_mode_select( return sba_mode; } - - +#ifdef SBA_BR_SWITCHING +/*-------------------------------------------------------------------* + * get_sba_reinit_flag() + * + * Get SBA reinitialisation flag + *-------------------------------------------------------------------*/ +int16_t get_sba_reinit_flag( + int32_t ivas_total_bitrate, /* i : Current bitrate */ + int32_t last_ivas_total_brate /* i : Previous bitrate */ +) +{ + int16_t sba_reinit_flag; + sba_reinit_flag = 0; + if ( ivas_total_bitrate != last_ivas_total_brate && ( last_ivas_total_brate > IVAS_SID_5k2 ) && ( ivas_total_bitrate > IVAS_SID_5k2 ) ) + { + sba_reinit_flag = 1; + } + return sba_reinit_flag; +} +#endif /*-------------------------------------------------------------------* * ivas_sba_config() * diff --git a/lib_com/options.h b/lib_com/options.h index b988fcb581..261f3a0845 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -152,7 +152,7 @@ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ - +#define SBA_BR_SWITCHING /* Issue 114: Changes for sba bit rate switching*/ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_debug/mem_count.c b/lib_debug/mem_count.c index b12639ae3f..a4ec2fb8d7 100644 --- a/lib_debug/mem_count.c +++ b/lib_debug/mem_count.c @@ -93,8 +93,11 @@ typedef INT64 int64_t; /* This is the maximum number of allocations for which to keep information. It can be increased if required. */ +#ifdef SBA_BR_SWITCHING +#define MAX_INFO_RECORDS 3200 +#else #define MAX_INFO_RECORDS 3000 - +#endif /* This is the length after which the function name will be truncated when the summary is printed. */ #define MAX_FUNCTION_NAME_LENGTH 18 diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index e3849dfbe0..fec237719a 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -69,7 +69,6 @@ ivas_error ivas_dec_setup( Decoder_State *st; int32_t ivas_total_brate; ivas_error error; - error = IVAS_ERR_OK; num_bits_read = 0; @@ -128,10 +127,24 @@ ivas_error ivas_dec_setup( num_bits_read += SBA_ORDER_BITS; if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_5k2 ) { - if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) +#ifdef SBA_BR_SWITCHING + if ( get_sba_reinit_flag( ivas_total_brate, st_ivas->hDecoderConfig->last_ivas_total_brate ) ) { - return error; + if ( ( error = ivas_sba_dec_reinit( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } } + else + { +#endif + if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } +#ifdef SBA_BR_SWITCHING + } +#endif } else { diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 2180cb79a3..564abeee6a 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -335,7 +335,467 @@ void ivas_ism2sba( return; } +#ifdef SBA_BR_SWITCHING +/*-------------------------------------------------------------------* + * ivas_sba_dec_reinit() + * + * Reinitialisation of IVAS SBA decoder + *-------------------------------------------------------------------*/ + +ivas_error ivas_sba_dec_reinit( + Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ +) +{ + int16_t i, k, n; + int16_t sce_id, cpe_id; + int16_t numCldfbAnalyses; + int16_t numCldfbSyntheses; + int32_t output_Fs, ivas_total_brate; + AUDIO_CONFIG output_config; + DECODER_CONFIG_HANDLE hDecoderConfig; + ivas_error error; + + error = IVAS_ERR_OK; + + output_Fs = st_ivas->hDecoderConfig->output_Fs; + hDecoderConfig = st_ivas->hDecoderConfig; + output_config = hDecoderConfig->output_config; + ivas_total_brate = hDecoderConfig->ivas_total_brate; + + hDecoderConfig->last_ivas_total_brate = ivas_total_brate; + /*------------------------------------------------------------------------------------------* + * Closing Decoder handles before Reinitialisation + *------------------------------------------------------------------------------------------*/ + /* Qmetadata handle */ + ivas_qmetadata_close( &st_ivas->hQMetaData ); + + /* DirAC handle */ + if ( st_ivas->hDirAC != NULL ) + { + if ( st_ivas->ivas_format == ISM_FORMAT ) + { + ivas_param_ism_dec_close( st_ivas->hDirAC, st_ivas->hDecoderConfig->output_config ); + } + else + { + ivas_dirac_dec_close( st_ivas->hDirAC ); + } + st_ivas->hDirAC = NULL; + } + + /* Spar handle */ + if ( st_ivas->hSpar != NULL ) + { + ivas_spar_dec_close( st_ivas->hSpar, st_ivas->hDecoderConfig->output_Fs ); + st_ivas->hSpar = NULL; + } + + /* SCE handles */ + for ( i = 0; i < MAX_SCE; i++ ) + { + if ( st_ivas->hSCE[i] != NULL ) + { + destroy_sce_dec( st_ivas->hSCE[i] ); + st_ivas->hSCE[i] = NULL; + } + } + + /* CPE handles */ + for ( i = 0; i < MAX_CPE; i++ ) + { + if ( st_ivas->hCPE[i] != NULL ) + { + /* set pointer to NULL as core coder already deallocated in destroy_sce_dec() */ + if ( st_ivas->sba_dirac_stereo_flag ) + { + st_ivas->hCPE[i]->hCoreCoder[0] = NULL; + st_ivas->hCPE[i]->hCoreCoder[1] = NULL; + } + destroy_cpe_dec( st_ivas->hCPE[i] ); + st_ivas->hCPE[i] = NULL; + } + } + + /* MCT handle */ + ivas_mct_dec_close( &st_ivas->hMCT ); + + /* HP20 filter handles */ + if ( st_ivas->mem_hp20_out != NULL ) + { + for ( i = 0; i < getNumChanSynthesis( st_ivas ); i++ ) + { + count_free( st_ivas->mem_hp20_out[i] ); + st_ivas->mem_hp20_out[i] = NULL; + } + count_free( st_ivas->mem_hp20_out ); + st_ivas->mem_hp20_out = NULL; + } + + /* HOA decoder matrix */ + if ( st_ivas->hoa_dec_mtx != NULL ) + { + count_free( st_ivas->hoa_dec_mtx ); + st_ivas->hoa_dec_mtx = NULL; + } + + /* Parametric MC handle */ + ivas_param_mc_dec_close( &st_ivas->hParamMC ); + + /* EFAP handle */ + efap_free_data( &st_ivas->hEFAPdata ); + + /* VBAP handle */ + vbap_free_data( &( st_ivas->hVBAPdata ) ); + + /* Fastconv binaural renderer handle */ + ivas_binRenderer_close( &st_ivas->hBinRenderer ); + + /* Parametric binaural renderer handle */ + ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin ); + + /* Crend handle */ + ivas_crend_close( st_ivas ); + + /* LS config converter handle */ + ivas_ls_setup_conversion_close( &st_ivas->hLsSetUpConversion ); + + /* Custom LS configuration handle */ + if ( st_ivas->hLsSetupCustom != NULL ) + { + count_free( st_ivas->hLsSetupCustom ); + st_ivas->hLsSetupCustom = NULL; + } + + /* MASA decoder structure */ + if ( st_ivas->hMasa != NULL ) + { + ivas_masa_dec_close( st_ivas->hMasa ); + st_ivas->hMasa = NULL; + } + + /* Downmix structure */ + if ( st_ivas->hMonoDmxRenderer != NULL ) + { + count_free( st_ivas->hMonoDmxRenderer ); + st_ivas->hMonoDmxRenderer = NULL; + } + + /* Head track data handle */ + if ( st_ivas->hHeadTrackData != NULL ) + { + count_free( st_ivas->hHeadTrackData ); + st_ivas->hHeadTrackData = NULL; + } + + /* Time Domain binaural renderer handle */ + if ( st_ivas->hBinRendererTd != NULL ) + { + ivas_td_binaural_close( &st_ivas->hBinRendererTd ); + } + else if ( st_ivas->hHrtfTD != NULL ) + { + /* Case when HRTF filter is mistakenly specified but TD renderer was not active */ + if ( st_ivas->hHrtfTD->ModelParams.UseItdModel && !st_ivas->hHrtfTD->ModelParams.modelROM ) + { + BSplineModelEvalITDDealloc( &st_ivas->hHrtfTD->ModelParamsITD ); + } + + BSplineModelEvalDealloc( &st_ivas->hHrtfTD->ModelParams, &st_ivas->hHrtfTD->ModelEval ); + + ivas_HRTF_binary_close( &st_ivas->hHrtfTD ); + } + + /* Config. Renderer */ + ivas_render_config_close( &( st_ivas->hRenderConfig ) ); + + for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) + { + if ( st_ivas->cldfbAnaDec[i] != NULL ) + { + deleteCldfb( &( st_ivas->cldfbAnaDec[i] ) ); + st_ivas->cldfbAnaDec[i] = NULL; + } + } + + for ( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) + { + if ( st_ivas->cldfbSynDec[i] != NULL ) + { + deleteCldfb( &( st_ivas->cldfbSynDec[i] ) ); + st_ivas->cldfbSynDec[i] = NULL; + } + } + + st_ivas->sba_dirac_stereo_flag = 0; + /*Reconfigure output paramaters*/ + ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); + ivas_renderer_select( st_ivas ); + ivas_output_init( &( st_ivas->hIntSetup ), st_ivas->intern_config ); + /*------------------------------------------------------------------------------------------* + * Reopening Decoder handles for Reinitialisation + *------------------------------------------------------------------------------------------*/ + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) + { + return error; + } + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) + { + if ( ( error = ivas_spar_dec_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + + if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC && st_ivas->hOutSetup.is_loudspeaker_setup ) + { + if ( ( error = ivas_sba_get_hoa_dec_matrix( st_ivas->hOutSetup, &st_ivas->hoa_dec_mtx, st_ivas->hIntSetup.ambisonics_order ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + { + return error; + } + + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) + { + if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + + for ( k = 0; k < DIRAC_MAX_NBANDS; k++ ) + { + st_ivas->hSpar->dirac_to_spar_md_bands[k] = st_ivas->hDirAC->dirac_to_spar_md_bands[k]; + } + st_ivas->hSpar->enc_param_start_band = st_ivas->hDirAC->hConfig->enc_param_start_band; + } + else + { + int16_t band_grouping[IVAS_MAX_NUM_BANDS + 1]; + + st_ivas->hSpar->enc_param_start_band = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); + + ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, ( int16_t )( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), + st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); + } + } + else + { + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) + { + return error; + } + + st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && output_config == AUDIO_CONFIG_STEREO ); + + if ( ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC ) && st_ivas->hOutSetup.is_loudspeaker_setup ) + { + int16_t ambisonics_order; + + ambisonics_order = ivas_sba_get_order_transport( st_ivas->nchan_transport ); // VE: is it needed ? + + if ( ( error = ivas_sba_get_hoa_dec_matrix( st_ivas->hOutSetup, &st_ivas->hoa_dec_mtx, ambisonics_order ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) && !st_ivas->hIntSetup.is_loudspeaker_setup ) + { + IVAS_OUTPUT_SETUP out_setup; + + ivas_output_init( &out_setup, AUDIO_CONFIG_7_1_4 ); + if ( ( error = ivas_sba_get_hoa_dec_matrix( out_setup, &st_ivas->hoa_dec_mtx, st_ivas->hIntSetup.ambisonics_order ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } + if ( st_ivas->renderer_type != RENDERER_BINAURAL_MIXER_CONV && st_ivas->renderer_type != RENDERER_BINAURAL_MIXER_CONV_ROOM && + st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && st_ivas->sba_mode != SBA_MODE_SPAR ) + { + if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) + { + if ( ( error = create_sce_dec( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) + { + return error; + } + + reset_indices_dec( st_ivas->hSCE[sce_id]->hCoreCoder[0] ); + } + + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) + { + return error; + } + + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); + } + } + + /* create CPE element for DFT Stereo like upmix */ + if ( st_ivas->sba_dirac_stereo_flag ) + { + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) + { + return error; + } + + st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ + } + + /* set CNA/CNG flags */ + if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->nchan_transport == 1 ) + { + st_ivas->hSCE[0]->hCoreCoder[0]->cna_dirac_flag = 0; /* Todo: Check if these can be enabled */ + st_ivas->hSCE[0]->hCoreCoder[0]->cng_sba_flag = 0; + } + else if ( st_ivas->nchan_transport == 1 && ( ( st_ivas->renderer_type == RENDERER_DIRAC && st_ivas->hDirAC->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD ) || ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) ) ) + { + st_ivas->hSCE[0]->hCoreCoder[0]->cna_dirac_flag = 1; + st_ivas->hSCE[0]->hCoreCoder[0]->cng_sba_flag = 1; + } + else if ( st_ivas->nchan_transport == 2 ) + { + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[0]->hCoreCoder[n]->cna_dirac_flag = 0; /* Todo: Check if these can be enabled */ + st_ivas->hCPE[0]->hCoreCoder[n]->cng_sba_flag = 1; + } + } + if ( st_ivas->nCPE > 1 ) + { + if ( ( error = create_mct_dec( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + /* set number of output channels used for synthesis/decoding */ + n = getNumChanSynthesis( st_ivas ); + + if ( n > 0 ) + { + if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + } + else + { + st_ivas->mem_hp20_out = NULL; + } + + for ( i = 0; i < n; i++ ) + { + if ( ( st_ivas->mem_hp20_out[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + + set_f( st_ivas->mem_hp20_out[i], 0.0f, L_HP20_MEM ); + } + if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_BINAURAL_ROOM ) + { + if ( ( error = ivas_render_config_open( &( st_ivas->hRenderConfig ) ) ) != IVAS_ERR_OK ) + { + return error; + } + } + if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) + { + if ( ( error = ivas_binRenderer_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) + { + if ( ( error = ivas_dirac_dec_init_binaural_data( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) + { + if ( ( error = ivas_td_binaural_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + + if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) + { + if ( ( st_ivas->hCrend = (CREND_HANDLE) count_malloc( sizeof( CREND_DATA ) ) ) == NULL ) + { + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR Crend\n" ); + } + } + } + else if ( st_ivas->renderer_type == RENDERER_MC ) + { + if ( ( error = ivas_ls_setup_conversion_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->renderer_type == RENDERER_MONO_DOWNMIX ) + { + if ( ( error = ivas_mono_dmx_renderer_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) + { + if ( ivas_crend_open( st_ivas ) != IVAS_ERR_OK ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "ivas_crend_open failed" ); + } + } + ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses, &numCldfbSyntheses ); + + for ( i = 0; i < numCldfbAnalyses; i++ ) + { + if ( ( error = openCldfb( &( st_ivas->cldfbAnaDec[i] ), CLDFB_ANALYSIS, output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK ) + { + return error; + } + } + for ( ; i < MAX_INTERN_CHANNELS; i++ ) + { + st_ivas->cldfbAnaDec[i] = NULL; + } + + for ( i = 0; i < numCldfbSyntheses; i++ ) + { + if ( ( error = openCldfb( &( st_ivas->cldfbSynDec[i] ), CLDFB_SYNTHESIS, output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK ) + { + return error; + } + } + for ( ; i < MAX_OUTPUT_CHANNELS; i++ ) + { + st_ivas->cldfbSynDec[i] = NULL; + } + + /* CLDFB Interpolation weights */ + if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR ) + { + ivas_spar_get_cldfb_gains( st_ivas->hSpar, st_ivas->cldfbAnaDec[0], st_ivas->cldfbSynDec[0], hDecoderConfig ); + } + return error; +} +#endif /*-------------------------------------------------------------------* * ivas_sba_dec_decoder() diff --git a/lib_enc/ivas_enc.c b/lib_enc/ivas_enc.c index 75ffc5212d..7be1f11c49 100644 --- a/lib_enc/ivas_enc.c +++ b/lib_enc/ivas_enc.c @@ -65,7 +65,9 @@ ivas_error ivas_enc( float data_f[MAX_INPUT_CHANNELS][L_FRAME48k]; /* IVAS_fmToDo: buffer can be allocated dynamically based on the number of analysed channels */ int32_t ivas_total_brate; ivas_error error; - +#ifdef SBA_BR_SWITCHING + int16_t sba_reinit_flag; +#endif error = IVAS_ERR_OK; wmops_sub_start( "ivas_enc" ); @@ -85,6 +87,20 @@ ivas_error ivas_enc( n_samples_chan = n_samples / nchan_inp; set_s( nb_bits_metadata, 0, MAX_SCE ); +#ifdef SBA_BR_SWITCHING + sba_reinit_flag = 0; + if ( ivas_format == SBA_FORMAT ) + { + sba_reinit_flag = get_sba_reinit_flag( ivas_total_brate, st_ivas->hEncoderConfig->last_ivas_total_brate ); + if ( sba_reinit_flag ) + { + if ( ( error = ivas_sba_enc_reinit( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } +#endif /*----------------------------------------------------------------* * convert 'short' input data to 'float' @@ -189,7 +205,11 @@ ivas_error ivas_enc( /* SBA/MASA configuration */ if ( ivas_format == SBA_FORMAT ) { +#ifndef SBA_BR_SWITCHING if ( st_ivas->sba_mode == SBA_MODE_DIRAC ) +#else + if ( ( st_ivas->sba_mode == SBA_MODE_DIRAC ) && ( !sba_reinit_flag ) ) +#endif { if ( ( error = ivas_sba_enc_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) { diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index d4c7c70b21..fe400bb378 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -93,7 +93,226 @@ void ivas_sba_getTCs( return; } +#ifdef SBA_BR_SWITCHING +/*-------------------------------------------------------------------* + * ivas_sba_enc_reinit() + * + * Reinitialise IVAS SBA encoder + *-------------------------------------------------------------------*/ + +ivas_error ivas_sba_enc_reinit( + Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ +) +{ + int16_t nSCE_old; + int16_t nCPE_old; + int16_t sce_id; + int16_t cpe_id; + int16_t n; + Indice *ind_list_metadata; + int32_t ivas_total_brate; + int16_t i, nchan_inp; + ivas_error error; + ENCODER_CONFIG_HANDLE hEncoderConfig; + + Indice *ind_list; + BSTR_ENC_HANDLE hBstr; + BSTR_ENC_HANDLE hMetaData; + hEncoderConfig = st_ivas->hEncoderConfig; + ivas_total_brate = hEncoderConfig->ivas_total_brate; + error = IVAS_ERR_OK; + nchan_inp = st_ivas->hEncoderConfig->nchan_inp; + ivas_total_brate = st_ivas->hEncoderConfig->ivas_total_brate; + + nCPE_old = st_ivas->nCPE; + nSCE_old = st_ivas->nSCE; + ind_list_metadata = NULL; + + + ind_list = NULL; + hBstr = NULL; + hMetaData = NULL; + + /* get the index list pointers */ + if ( nSCE_old ) + { + hBstr = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr; + hMetaData = st_ivas->hSCE[0]->hMetaData; + } + else if ( nCPE_old ) + { + hBstr = st_ivas->hCPE[0]->hCoreCoder[0]->hBstr; + hMetaData = st_ivas->hCPE[nCPE_old - 1]->hMetaData; + } + + /* save bitstream information */ + ind_list = hBstr->ind_list; + ind_list_metadata = hMetaData->ind_list; + + /*------------------------------------------------------------------------------------------* + * Closing Encoder handles before Reinitialisation + *------------------------------------------------------------------------------------------*/ + + /* Q Metadata handle */ + ivas_qmetadata_close( &( st_ivas->hQMetaData ) ); + /* DirAC handle */ + if ( st_ivas->hDirAC != NULL ) + { + ivas_dirac_enc_close( st_ivas->hDirAC, st_ivas->hEncoderConfig->input_Fs ); + + st_ivas->hDirAC = NULL; + } + + /* SPAR handle */ + if ( st_ivas->hSpar != NULL ) + { + ivas_spar_enc_close( st_ivas->hSpar, st_ivas->hEncoderConfig->input_Fs, nchan_inp ); + st_ivas->hSpar = NULL; + } + /* SCE handles */ + for ( i = 0; i < MAX_SCE; i++ ) + { + if ( st_ivas->hSCE[i] != NULL ) + { + destroy_sce_enc( st_ivas->hSCE[i] ); + st_ivas->hSCE[i] = NULL; + } + } + + /* CPE handles */ + for ( i = 0; i < MAX_CPE; i++ ) + { + if ( st_ivas->hCPE[i] != NULL ) + { + destroy_cpe_enc( st_ivas->hCPE[i] ); + st_ivas->hCPE[i] = NULL; + } + } + /* MCT handle */ + if ( st_ivas->hMCT != NULL ) + { + ivas_mct_enc_close( st_ivas->hMCT ); + st_ivas->hMCT = NULL; + } + if ( st_ivas->mem_hp20_in != NULL ) + { + n = getNumChanAnalysis( st_ivas ); + + for ( i = 0; i < n; i++ ) + { + count_free( st_ivas->mem_hp20_in[i] ); + st_ivas->mem_hp20_in[i] = NULL; + } + count_free( st_ivas->mem_hp20_in ); + st_ivas->mem_hp20_in = NULL; + } + + /*------------------------------------------------------------------------------------------* + * Reopening Encoder handles for Reinitialisation + *------------------------------------------------------------------------------------------*/ + + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) + { + return error; + } + + st_ivas->sba_mode = ivas_sba_mode_select( ivas_total_brate ); + st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); + + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) + { + if ( ( error = ivas_spar_enc_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + if ( ( error = ivas_dirac_enc_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + + + for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) + { + if ( ( error = create_sce_enc( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) + { + return error; + } + + /* prepare bitstream buffers */ + st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list + sce_id * MAX_NUM_INDICES; + reset_indices_enc( st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES ); + + st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + sce_id * MAX_BITS_METADATA; + reset_indices_enc( st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA ); + + if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->hEncoderConfig->Opt_DTX_ON ) + { + st_ivas->hSCE[sce_id]->hCoreCoder[0]->dtx_sce_sba = 1; + } + } + + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + if ( ( error = create_cpe_enc( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) + { + return error; + } + + /* prepare bitstream buffers */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->ind_list = ind_list + ( cpe_id * CPE_CHANNELS + n ) * MAX_NUM_INDICES; + reset_indices_enc( st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr, MAX_NUM_INDICES ); + + if ( hEncoderConfig->Opt_DTX_ON ) + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 1; + } + } + + /* Metadata only initialized for the last CPE index */ + if ( cpe_id == st_ivas->nCPE - 1 ) + { + st_ivas->hCPE[cpe_id]->hMetaData->ind_list = ind_list_metadata + sce_id * MAX_BITS_METADATA; + reset_indices_enc( st_ivas->hCPE[cpe_id]->hMetaData, MAX_BITS_METADATA ); + } + } + + if ( st_ivas->nCPE > 1 ) + { + if ( ( error = create_mct_enc( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + n = getNumChanAnalysis( st_ivas ); + + if ( n > 0 ) + { + if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + } + else + { + st_ivas->mem_hp20_in = NULL; + } + for ( i = 0; i < n; i++ ) + { + if ( ( st_ivas->mem_hp20_in[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + + set_f( st_ivas->mem_hp20_in[i], 0.0f, L_HP20_MEM ); + } + return error; +} +#endif /*-------------------------------------------------------------------* * ivas_sba_enc_reconfigure() * diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 470b649ce0..fda5d04295 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -585,6 +585,21 @@ ../IVAS_cod -sba 3 512000 48 testv/stv3OA48c.pcm bit ../IVAS_dec binaural 48 bit testv/stv3OA48c.pcm_SBA_512000_48-48_binaural.tst +// SBA FOA bitrate switching from 16.4 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -sba 1 ../scripts/switchPaths/sw_16k4_512k_50fr.bin 48 testv/stvFOA48c.pcm bit +../IVAS_dec FOA 48 bit testv/stvFOA48c.pcm_sw_48-48_FOA.tst + +// SBA FOA bitrate switching from 13.2 kbps to 192 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 48 testv/stvFOA48c.pcm bit +../IVAS_dec BINAURAL 48 bit testv/stvFOA48c.pcm_sw_48-48_BINAURAL.tst + +// SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3 out +../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.pcm bit +../IVAS_dec HOA3 48 bit testv/stv3OA48c.pcm_sw_48-48_HOA3.tst + +// SBA 3OA bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -sba 3 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stvFOA48c.pcm bit +../IVAS_dec 7_1_4 48 bit testv/stvFOA48c.pcm_sw_48-48_7_1_4.tst // MASA 1dir 1TC at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out ../IVAS_cod -masa 1 testv/stv_IVASMASA_1dir1TC.met 13200 48 testv/stv_IVASMASA_1dir1TC.pcm bit diff --git a/scripts/switchPaths/sw_13k2_192k_50fr.bin b/scripts/switchPaths/sw_13k2_192k_50fr.bin new file mode 100644 index 0000000000..cd833ebd24 --- /dev/null +++ b/scripts/switchPaths/sw_13k2_192k_50fr.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58b5dfb78c283c6d9d5f52502a695c1f9e9e62589507736af5667e00dac4a890 +size 3996 diff --git a/scripts/switchPaths/sw_16k4_512k_50fr.bin b/scripts/switchPaths/sw_16k4_512k_50fr.bin new file mode 100644 index 0000000000..6f57a5afe8 --- /dev/null +++ b/scripts/switchPaths/sw_16k4_512k_50fr.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8abe2e5fb8110fa5f79f8df67986f4ac00809db9b7c19b9824a520a437b00250 +size 3996 -- GitLab From 802c3b710cb45cfaecd7aeaea2523bf6bb0243fc Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Mon, 24 Oct 2022 11:21:59 +0200 Subject: [PATCH 282/479] small optimization for ALLRAD memory allocation --- lib_com/options.h | 1 + lib_dec/ivas_allrad_dec.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index b988fcb581..ab48e7d68a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -152,6 +152,7 @@ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ +#define ALLRAD_OPTIM /* Issue 159: Optimize memory allocation for ALLRAD */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/ivas_allrad_dec.c b/lib_dec/ivas_allrad_dec.c index d4301c07ac..ee1d1d1b72 100644 --- a/lib_dec/ivas_allrad_dec.c +++ b/lib_dec/ivas_allrad_dec.c @@ -108,7 +108,11 @@ ivas_error ivas_sba_get_hoa_dec_matrix( /* Allocate memory */ assert( *hoa_dec_mtx == NULL && "hoa_dec_mtx != NULL" ); +#ifdef ALLRAD_OPTIM + if ( ( *hoa_dec_mtx = (float *) count_malloc( SBA_NHARM_HOA3 * ( hOutSetup.nchan_out_woLFE + hOutSetup.num_lfe ) * sizeof( float ) ) ) == NULL ) +#else if ( ( *hoa_dec_mtx = (float *) count_malloc( SBA_NHARM_HOA3 * MAX_OUTPUT_CHANNELS * sizeof( float ) ) ) == NULL ) +#endif { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "ALLRAD: Cannot allocate memory!" ) ); } -- GitLab From d2cb29a387219df8661646f584b2a3046d3ab25d Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Mon, 24 Oct 2022 11:49:27 +0200 Subject: [PATCH 283/479] small changes -allocation for LFE channel not needed, slightly reduce EFAP memory usage too (cannot have more than 16 output loudspeakers) --- lib_com/ivas_cnst.h | 4 ++++ lib_dec/ivas_allrad_dec.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 7d84adbb12..0512cf27e6 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1319,7 +1319,11 @@ typedef enum #define PANNING_ELE_RESOLUTION 5 #define EFAP_MAX_CHAN_NUM 5 /* Maximum number of channels that constitute a polygon, 4 or 5 */ +#ifdef ALLRAD_OPTIM +#define EFAP_MAX_POLY_SET 50 /* Upper bound on number of polygons; with a Speaker setup of 16.0, we obtain 44 polygons/triangles in the matlab implementation. */ +#else #define EFAP_MAX_POLY_SET 70 /* Upper bound on number of polygons; with a Speaker setup of 26.0, we obtain 54 polygons/triangles in the matlab implementation. */ +#endif #define EFAP_MODE_EFAP 0 /* EFAP Panning */ #define EFAP_MODE_EFIP 1 /* EFIP Panning */ diff --git a/lib_dec/ivas_allrad_dec.c b/lib_dec/ivas_allrad_dec.c index ee1d1d1b72..13e4f3c241 100644 --- a/lib_dec/ivas_allrad_dec.c +++ b/lib_dec/ivas_allrad_dec.c @@ -109,7 +109,7 @@ ivas_error ivas_sba_get_hoa_dec_matrix( /* Allocate memory */ assert( *hoa_dec_mtx == NULL && "hoa_dec_mtx != NULL" ); #ifdef ALLRAD_OPTIM - if ( ( *hoa_dec_mtx = (float *) count_malloc( SBA_NHARM_HOA3 * ( hOutSetup.nchan_out_woLFE + hOutSetup.num_lfe ) * sizeof( float ) ) ) == NULL ) + if ( ( *hoa_dec_mtx = (float *) count_malloc( SBA_NHARM_HOA3 * ( hOutSetup.nchan_out_woLFE ) * sizeof( float ) ) ) == NULL ) #else if ( ( *hoa_dec_mtx = (float *) count_malloc( SBA_NHARM_HOA3 * MAX_OUTPUT_CHANNELS * sizeof( float ) ) ) == NULL ) #endif -- GitLab From 4c2884057fdeaa7748a00f859edb709990ac9cd8 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 24 Oct 2022 15:06:30 +0200 Subject: [PATCH 284/479] introduce new function for reconfiguration - BE --- lib_com/options.h | 2 +- lib_dec/ivas_tcx_core_dec.c | 44 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index b988fcb581..85a4f1eeb2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -152,7 +152,7 @@ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ - +#define FIX_TCX_DEC_RECONF_BF /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 9420be9eb9..8e9744e767 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -52,6 +52,9 @@ *-------------------------------------------------------------*/ static void dec_prm_tcx( Decoder_State *st, int16_t param[], int16_t param_lpc[], int16_t *total_nbbits, int16_t *bitsRead ); +#ifdef FIX_TCX_DEC_RECONF_BFI +static void stereo_tcx_dec_mode_switch_reconf( Decoder_State *st, const int16_t is_mct, const int16_t last_element_mode ); +#endif /*-------------------------------------------------------------* @@ -66,7 +69,9 @@ void stereo_tcx_init_dec( const int16_t last_element_mode /* i : element mode of previous frame */ ) { +#ifndef FIX_TCX_DEC_RECONF_BFI int16_t frame_size_index; +#endif TCX_LTP_DEC_HANDLE hTcxLtpDec = st->hTcxLtpDec; TCX_DEC_HANDLE hTcxDec = st->hTcxDec; @@ -128,6 +133,9 @@ void stereo_tcx_init_dec( if ( ( st->bits_frame_nominal != st->last_bits_frame_nominal ) || ( st->bwidth != st->last_bwidth ) || ( st->last_core != TCX_20_CORE && st->last_core != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) || ( st->idchan == 1 && st->element_mode == IVAS_CPE_MDCT && last_element_mode != IVAS_CPE_MDCT ) ) { /*re-initialization*/ +#ifdef FIX_TCX_DEC_RECONF_BFI + stereo_tcx_dec_mode_switch_reconf( st, is_mct, last_element_mode ); +#else st->rate_switching_init = 1; /* Identify frame type - TCX Reconfiguration */ @@ -151,6 +159,7 @@ void stereo_tcx_init_dec( /* Reconfigure Core */ mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct, last_element_mode ); +#endif } return; @@ -923,3 +932,38 @@ static void dec_prm_tcx( return; } + +#ifdef FIX_TCX_DEC_RECONF_BFI +static void stereo_tcx_dec_mode_switch_reconf( + DecoderState *st, + const int16_t is_mct, + const int16_t last_element_mode +) +{ + int16_t frame_size_index; + + st->rate_switching_init = 1; + + /* Identify frame type - TCX Reconfiguration */ + for ( frame_size_index = 0; frame_size_index < FRAME_SIZE_NB; frame_size_index++ ) + { + if ( frame_size_index < FRAME_SIZE_NB - 1 ) + { + if ( ( FrameSizeConfig[frame_size_index].frame_bits <= st->bits_frame_nominal ) && ( FrameSizeConfig[frame_size_index + 1].frame_bits > st->bits_frame_nominal ) ) + { + break; + } + } + else + { + if ( FrameSizeConfig[frame_size_index].frame_bits <= st->bits_frame_nominal ) + { + break; + } + } + } + + /* Reconfigure Core */ + mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct, last_element_mode ); +} +#endif -- GitLab From d4368978a4c2034a32feca2e5a733b90f0a44db5 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 24 Oct 2022 16:24:48 +0200 Subject: [PATCH 285/479] add new reconf call --- lib_com/options.h | 2 +- lib_dec/ivas_tcx_core_dec.c | 28 +++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 85a4f1eeb2..a6cd15b259 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -152,7 +152,7 @@ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ -#define FIX_TCX_DEC_RECONF_BF +#define FIX_TCX_DEC_RECONF_BFI /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 8e9744e767..4cf7a59790 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -51,7 +51,11 @@ * Local prototypes *-------------------------------------------------------------*/ +#ifdef FIX_TCX_DEC_RECONF_BFI +static void dec_prm_tcx( Decoder_State *st, int16_t param[], int16_t param_lpc[], int16_t *total_nbbits, const int16_t last_element_mode, int16_t *bitsRead ); +#else static void dec_prm_tcx( Decoder_State *st, int16_t param[], int16_t param_lpc[], int16_t *total_nbbits, int16_t *bitsRead ); +#endif #ifdef FIX_TCX_DEC_RECONF_BFI static void stereo_tcx_dec_mode_switch_reconf( Decoder_State *st, const int16_t is_mct, const int16_t last_element_mode ); #endif @@ -130,7 +134,14 @@ void stereo_tcx_init_dec( } } +#ifdef FIX_TCX_DEC_RECONF_BFI + if ( ( st->bits_frame_nominal != st->last_bits_frame_nominal ) || + ( st->bwidth != st->last_bwidth ) || + ( st->last_core != TCX_20_CORE && st->last_core != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) || + ( st->idchan == 1 && st->element_mode == IVAS_CPE_MDCT && last_element_mode != IVAS_CPE_MDCT ) ) +#else if ( ( st->bits_frame_nominal != st->last_bits_frame_nominal ) || ( st->bwidth != st->last_bwidth ) || ( st->last_core != TCX_20_CORE && st->last_core != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) || ( st->idchan == 1 && st->element_mode == IVAS_CPE_MDCT && last_element_mode != IVAS_CPE_MDCT ) ) +#endif { /*re-initialization*/ #ifdef FIX_TCX_DEC_RECONF_BFI @@ -293,7 +304,11 @@ void stereo_tcx_core_dec( tcx_current_overlap_mode = st->hTcxCfg->tcx_curr_overlap_mode; #endif +#ifdef FIX_TCX_DEC_RECONF_BFI + dec_prm_tcx( st, param, param_lpc, &total_nbbits, last_element_mode, &bitsRead ); +#else dec_prm_tcx( st, param, param_lpc, &total_nbbits, &bitsRead ); +#endif #ifdef FIX_IVAS_337 /*IVAS-337 consider BER */ if ( !st->rate_switching_init && st->BER_detect ) @@ -817,6 +832,9 @@ static void dec_prm_tcx( int16_t param[], /* o : decoded parameters */ int16_t param_lpc[], /* o : LPC parameters */ int16_t *total_nbbits, /* i/o: number of bits / decoded bits */ +#ifdef FIX_TCX_DEC_RECONF_BFI + const int16_t last_element_mode, +#endif int16_t *bitsRead /* o : number of read bits */ ) { @@ -870,6 +888,14 @@ static void dec_prm_tcx( st->prev_bfi = 1; } +#ifdef FIX_TCX_DEC_RECONF_BFI + /* possible need for reconfiguration can only be decided correctly once last_core_from_bs has been decoded */ + if ( ( st->last_core != st->last_core_from_bs ) && ( st->last_core_from_bs != TCX_20_CORE && st->last_core_from_bs != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core_from_bs == ACELP_CORE && st->last_con_tcx == 1 ) ) ) + { + stereo_tcx_dec_mode_switch_reconf( st, 0, last_element_mode ); + } +#endif + st->last_core = st->last_core_from_bs; /*for TCX 10 force last_core to be TCX since ACELP as previous core is forbidden*/ @@ -935,7 +961,7 @@ static void dec_prm_tcx( #ifdef FIX_TCX_DEC_RECONF_BFI static void stereo_tcx_dec_mode_switch_reconf( - DecoderState *st, + Decoder_State *st, const int16_t is_mct, const int16_t last_element_mode ) -- GitLab From a11ac756eb2b35ac506d7529c5cf4d5d9520f7b6 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 24 Oct 2022 16:29:18 +0200 Subject: [PATCH 286/479] fix indentation --- lib_dec/ivas_tcx_core_dec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 4cf7a59790..595ed9d4ac 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -889,11 +889,11 @@ static void dec_prm_tcx( } #ifdef FIX_TCX_DEC_RECONF_BFI - /* possible need for reconfiguration can only be decided correctly once last_core_from_bs has been decoded */ - if ( ( st->last_core != st->last_core_from_bs ) && ( st->last_core_from_bs != TCX_20_CORE && st->last_core_from_bs != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core_from_bs == ACELP_CORE && st->last_con_tcx == 1 ) ) ) - { - stereo_tcx_dec_mode_switch_reconf( st, 0, last_element_mode ); - } + /* possible need for reconfiguration can only be decided correctly once last_core_from_bs has been decoded */ + if ( ( st->last_core != st->last_core_from_bs ) && ( st->last_core_from_bs != TCX_20_CORE && st->last_core_from_bs != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core_from_bs == ACELP_CORE && st->last_con_tcx == 1 ) ) ) + { + stereo_tcx_dec_mode_switch_reconf( st, 0, last_element_mode ); + } #endif st->last_core = st->last_core_from_bs; -- GitLab From 62bb98e3035ecec41174750672c11679b0bdee8f Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 24 Oct 2022 16:40:11 +0200 Subject: [PATCH 287/479] Removed frame- and subframe indices from ISm metadata and headtracking files --- lib_com/options.h | 2 +- lib_util/head_rotation_file_reader.c | 17 +- lib_util/ism_file_reader.c | 4 +- scripts/testv/headrot.csv | 8100 ----------------------- scripts/testv/headrot_case00_3000_q.csv | 3000 --------- scripts/testv/headrot_case01_3000_q.csv | 3000 --------- scripts/testv/headrot_case02_3000_q.csv | 3000 --------- scripts/testv/headrot_case03_3000_q.csv | 3000 --------- scripts/testv/stvISM1.csv | 1500 ----- scripts/testv/stvISM2.csv | 1500 ----- scripts/testv/stvISM3.csv | 1500 ----- scripts/testv/stvISM4.csv | 1500 ----- 12 files changed, 15 insertions(+), 26108 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index b988fcb581..867bfeea71 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -152,7 +152,7 @@ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ - +#define FIX_I173_I174 /* Issues 173 and 174: Remove frame and subframe index from ISm metadata and headtracking respectively. */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_util/head_rotation_file_reader.c b/lib_util/head_rotation_file_reader.c index 1cf27cbfdb..f6f6b6ae0e 100644 --- a/lib_util/head_rotation_file_reader.c +++ b/lib_util/head_rotation_file_reader.c @@ -45,7 +45,7 @@ struct HeadRotFileReader bool fileRewind; }; - +#ifndef FIX_I173_I174 /*-----------------------------------------------------------------------* * HeadRotationFrameCheck() * @@ -66,7 +66,7 @@ static ivas_error HeadRotationFrameCheck( return IVAS_ERR_OK; } - +#endif /*-----------------------------------------------------------------------* * HeadRotationFileReader_open() @@ -121,12 +121,18 @@ ivas_error HeadRotationFileReading( ) { uint16_t i; +#ifndef FIX_I173_I174 int32_t time_stamp = 0; +#endif float w, x, y, z; for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { +#ifdef FIX_I173_I174 + if ( 4 != fscanf( headRotReader->trajFile, "%f,%f,%f,%f", &w, &x, &y, &z ) ) +#else if ( 5 != fscanf( headRotReader->trajFile, "%d,%f,%f,%f,%f", &time_stamp, &w, &x, &y, &z ) ) +#endif { if ( feof( headRotReader->trajFile ) ) { @@ -137,12 +143,12 @@ ivas_error HeadRotationFileReading( return IVAS_ERR_FAILED_FILE_PARSE; } - +#ifndef FIX_I173_I174 if ( headRotReader->fileRewind == false && headRotReader->frameCounter != time_stamp ) { return IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH; } - +#endif ( headRotReader->frameCounter )++; @@ -151,7 +157,7 @@ ivas_error HeadRotationFileReading( Quaternions[i].y = y; Quaternions[i].z = z; } - +#ifndef FIX_I173_I174 if ( headRotReader->fileRewind == false ) { if ( ( time_stamp + 1 ) % IVAS_MAX_PARAM_SPATIAL_SUBFRAMES != 0 ) @@ -164,6 +170,7 @@ ivas_error HeadRotationFileReading( { return IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH; } +#endif return IVAS_ERR_OK; } diff --git a/lib_util/ism_file_reader.c b/lib_util/ism_file_reader.c index 1f6f5c911a..66f1a39b58 100644 --- a/lib_util/ism_file_reader.c +++ b/lib_util/ism_file_reader.c @@ -112,7 +112,7 @@ ivas_error IsmFileReader_readNextFrame( { return IVAS_ERR_FAILED_FILE_READ; } - +#ifndef FIX_I173_I174 char_ptr = strtok( char_buff, "," ); time_stamp = (int32_t) atoi( char_ptr ); @@ -120,7 +120,7 @@ ivas_error IsmFileReader_readNextFrame( { return IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH; } - +#endif i = 0; while ( ( char_ptr = strtok( NULL, "," ) ) != NULL && i < NUM_ISM_METADATA_PER_LINE ) { diff --git a/scripts/testv/headrot.csv b/scripts/testv/headrot.csv index e3500d2d39..e69de29bb2 100644 --- a/scripts/testv/headrot.csv +++ b/scripts/testv/headrot.csv @@ -1,8100 +0,0 @@ -0,0.996195,0.000000,0.000000,0.087156 -1,0.996195,0.000000,0.000000,0.087156 -2,0.996195,0.000000,0.000000,0.087156 -3,0.996195,0.000000,0.000000,0.087156 -4,0.996195,0.000000,0.000000,0.087156 -5,0.996195,0.000000,0.000000,0.087156 -6,0.996195,0.000000,0.000000,0.087156 -7,0.996195,0.000000,0.000000,0.087156 -8,0.996195,0.000000,0.000000,0.087156 -9,0.996195,0.000000,0.000000,0.087156 -10,0.996195,0.000000,0.000000,0.087156 -11,0.996195,0.000000,0.000000,0.087156 -12,0.996195,0.000000,0.000000,0.087156 -13,0.996195,0.000000,0.000000,0.087156 -14,0.996195,0.000000,0.000000,0.087156 -15,0.996195,0.000000,0.000000,0.087156 -16,0.996195,0.000000,0.000000,0.087156 -17,0.996195,0.000000,0.000000,0.087156 -18,0.996195,0.000000,0.000000,0.087156 -19,0.996195,0.000000,0.000000,0.087156 -20,0.996195,0.000000,0.000000,0.087156 -21,0.996195,0.000000,0.000000,0.087156 -22,0.996195,0.000000,0.000000,0.087156 -23,0.996195,0.000000,0.000000,0.087156 -24,0.996195,0.000000,0.000000,0.087156 -25,0.996195,0.000000,0.000000,0.087156 -26,0.996195,0.000000,0.000000,0.087156 -27,0.996195,0.000000,0.000000,0.087156 -28,0.996195,0.000000,0.000000,0.087156 -29,0.996195,0.000000,0.000000,0.087156 -30,0.996195,0.000000,0.000000,0.087156 -31,0.996195,0.000000,0.000000,0.087156 -32,0.996195,0.000000,0.000000,0.087156 -33,0.996195,0.000000,0.000000,0.087156 -34,0.996195,0.000000,0.000000,0.087156 -35,0.996195,0.000000,0.000000,0.087156 -36,0.996195,0.000000,0.000000,0.087156 -37,0.996195,0.000000,0.000000,0.087156 -38,0.996195,0.000000,0.000000,0.087156 -39,0.996195,0.000000,0.000000,0.087156 -40,0.996195,0.000000,0.000000,0.087156 -41,0.996195,0.000000,0.000000,0.087156 -42,0.996195,0.000000,0.000000,0.087156 -43,0.996195,0.000000,0.000000,0.087156 -44,0.996195,0.000000,0.000000,0.087156 -45,0.996195,0.000000,0.000000,0.087156 -46,0.996195,0.000000,0.000000,0.087156 -47,0.996195,0.000000,0.000000,0.087156 -48,0.996195,0.000000,0.000000,0.087156 -49,0.996195,0.000000,0.000000,0.087156 -50,0.996195,0.000000,0.000000,0.087156 -51,0.996195,0.000000,0.000000,0.087156 -52,0.996195,0.000000,0.000000,0.087156 -53,0.996195,0.000000,0.000000,0.087156 -54,0.996195,0.000000,0.000000,0.087156 -55,0.996195,0.000000,0.000000,0.087156 -56,0.996195,0.000000,0.000000,0.087156 -57,0.996195,0.000000,0.000000,0.087156 -58,0.996195,0.000000,0.000000,0.087156 -59,0.996195,0.000000,0.000000,0.087156 -60,0.996195,0.000000,0.000000,0.087156 -61,0.996195,0.000000,0.000000,0.087156 -62,0.996195,0.000000,0.000000,0.087156 -63,0.996195,0.000000,0.000000,0.087156 -64,0.996195,0.000000,0.000000,0.087156 -65,0.996195,0.000000,0.000000,0.087156 -66,0.996195,0.000000,0.000000,0.087156 -67,0.996195,0.000000,0.000000,0.087156 -68,0.996195,0.000000,0.000000,0.087156 -69,0.996195,0.000000,0.000000,0.087156 -70,0.996195,0.000000,0.000000,0.087156 -71,0.996195,0.000000,0.000000,0.087156 -72,0.996195,0.000000,0.000000,0.087156 -73,0.996195,0.000000,0.000000,0.087156 -74,0.996195,0.000000,0.000000,0.087156 -75,0.996195,0.000000,0.000000,0.087156 -76,0.996195,0.000000,0.000000,0.087156 -77,0.996195,0.000000,0.000000,0.087156 -78,0.996195,0.000000,0.000000,0.087156 -79,0.996195,0.000000,0.000000,0.087156 -80,0.996195,0.000000,0.000000,0.087156 -81,0.996195,0.000000,0.000000,0.087156 -82,0.996195,0.000000,0.000000,0.087156 -83,0.996195,0.000000,0.000000,0.087156 -84,0.996195,0.000000,0.000000,0.087156 -85,0.996195,0.000000,0.000000,0.087156 -86,0.996195,0.000000,0.000000,0.087156 -87,0.996195,0.000000,0.000000,0.087156 -88,0.996195,0.000000,0.000000,0.087156 -89,0.996195,0.000000,0.000000,0.087156 -90,0.996195,0.000000,0.000000,0.087156 -91,0.996195,0.000000,0.000000,0.087156 -92,0.996195,0.000000,0.000000,0.087156 -93,0.996195,0.000000,0.000000,0.087156 -94,0.996195,0.000000,0.000000,0.087156 -95,0.996195,0.000000,0.000000,0.087156 -96,0.996195,0.000000,0.000000,0.087156 -97,0.996195,0.000000,0.000000,0.087156 -98,0.996195,0.000000,0.000000,0.087156 -99,0.996195,0.000000,0.000000,0.087156 -100,0.996195,0.000000,0.000000,0.087156 -101,0.996195,0.000000,0.000000,0.087156 -102,0.996195,0.000000,0.000000,0.087156 -103,0.996195,0.000000,0.000000,0.087156 -104,0.996195,0.000000,0.000000,0.087156 -105,0.996195,0.000000,0.000000,0.087156 -106,0.996195,0.000000,0.000000,0.087156 -107,0.996195,0.000000,0.000000,0.087156 -108,0.996195,0.000000,0.000000,0.087156 -109,0.996195,0.000000,0.000000,0.087156 -110,0.996195,0.000000,0.000000,0.087156 -111,0.996195,0.000000,0.000000,0.087156 -112,0.996195,0.000000,0.000000,0.087156 -113,0.996195,0.000000,0.000000,0.087156 -114,0.996195,0.000000,0.000000,0.087156 -115,0.996195,0.000000,0.000000,0.087156 -116,0.996195,0.000000,0.000000,0.087156 -117,0.996195,0.000000,0.000000,0.087156 -118,0.996195,0.000000,0.000000,0.087156 -119,0.996195,0.000000,0.000000,0.087156 -120,0.996195,0.000000,0.000000,0.087156 -121,0.996195,0.000000,0.000000,0.087156 -122,0.996195,0.000000,0.000000,0.087156 -123,0.996195,0.000000,0.000000,0.087156 -124,0.996195,0.000000,0.000000,0.087156 -125,0.996195,0.000000,0.000000,0.087156 -126,0.996195,0.000000,0.000000,0.087156 -127,0.996195,0.000000,0.000000,0.087156 -128,0.996195,0.000000,0.000000,0.087156 -129,0.996195,0.000000,0.000000,0.087156 -130,0.996195,0.000000,0.000000,0.087156 -131,0.996195,0.000000,0.000000,0.087156 -132,0.996195,0.000000,0.000000,0.087156 -133,0.996195,0.000000,0.000000,0.087156 -134,0.996195,0.000000,0.000000,0.087156 -135,0.996195,0.000000,0.000000,0.087156 -136,0.996195,0.000000,0.000000,0.087156 -137,0.996195,0.000000,0.000000,0.087156 -138,0.996195,0.000000,0.000000,0.087156 -139,0.996195,0.000000,0.000000,0.087156 -140,0.996195,0.000000,0.000000,0.087156 -141,0.996195,0.000000,0.000000,0.087156 -142,0.996195,0.000000,0.000000,0.087156 -143,0.996195,0.000000,0.000000,0.087156 -144,0.996195,0.000000,0.000000,0.087156 -145,0.996195,0.000000,0.000000,0.087156 -146,0.996195,0.000000,0.000000,0.087156 -147,0.996195,0.000000,0.000000,0.087156 -148,0.996195,0.000000,0.000000,0.087156 -149,0.996195,0.000000,0.000000,0.087156 -150,0.996195,0.000000,0.000000,0.087156 -151,0.996195,0.000000,0.000000,0.087156 -152,0.996195,0.000000,0.000000,0.087156 -153,0.996195,0.000000,0.000000,0.087156 -154,0.996195,0.000000,0.000000,0.087156 -155,0.996195,0.000000,0.000000,0.087156 -156,0.996195,0.000000,0.000000,0.087156 -157,0.996195,0.000000,0.000000,0.087156 -158,0.996195,0.000000,0.000000,0.087156 -159,0.996195,0.000000,0.000000,0.087156 -160,0.996195,0.000000,0.000000,0.087156 -161,0.996195,0.000000,0.000000,0.087156 -162,0.996195,0.000000,0.000000,0.087156 -163,0.996195,0.000000,0.000000,0.087156 -164,0.996195,0.000000,0.000000,0.087156 -165,0.996195,0.000000,0.000000,0.087156 -166,0.996195,0.000000,0.000000,0.087156 -167,0.996195,0.000000,0.000000,0.087156 -168,0.996195,0.000000,0.000000,0.087156 -169,0.996195,0.000000,0.000000,0.087156 -170,0.996195,0.000000,0.000000,0.087156 -171,0.996195,0.000000,0.000000,0.087156 -172,0.996195,0.000000,0.000000,0.087156 -173,0.996195,0.000000,0.000000,0.087156 -174,0.996195,0.000000,0.000000,0.087156 -175,0.996195,0.000000,0.000000,0.087156 -176,0.996195,0.000000,0.000000,0.087156 -177,0.996195,0.000000,0.000000,0.087156 -178,0.996195,0.000000,0.000000,0.087156 -179,0.996195,0.000000,0.000000,0.087156 -180,0.996195,0.000000,0.000000,0.087156 -181,0.996195,0.000000,0.000000,0.087156 -182,0.996195,0.000000,0.000000,0.087156 -183,0.996195,0.000000,0.000000,0.087156 -184,0.996195,0.000000,0.000000,0.087156 -185,0.996195,0.000000,0.000000,0.087156 -186,0.996195,0.000000,0.000000,0.087156 -187,0.996195,0.000000,0.000000,0.087156 -188,0.996195,0.000000,0.000000,0.087156 -189,0.996195,0.000000,0.000000,0.087156 -190,0.996195,0.000000,0.000000,0.087156 -191,0.996195,0.000000,0.000000,0.087156 -192,0.996195,0.000000,0.000000,0.087156 -193,0.996195,0.000000,0.000000,0.087156 -194,0.996195,0.000000,0.000000,0.087156 -195,0.996195,0.000000,0.000000,0.087156 -196,0.996195,0.000000,0.000000,0.087156 -197,0.996195,0.000000,0.000000,0.087156 -198,0.996195,0.000000,0.000000,0.087156 -199,0.996195,0.000000,0.000000,0.087156 -200,0.996195,0.000000,0.000000,0.087156 -201,0.996195,0.000000,0.000000,0.087156 -202,0.996195,0.000000,0.000000,0.087156 -203,0.996195,0.000000,0.000000,0.087156 -204,0.996195,0.000000,0.000000,0.087156 -205,0.996195,0.000000,0.000000,0.087156 -206,0.996195,0.000000,0.000000,0.087156 -207,0.996195,0.000000,0.000000,0.087156 -208,0.996195,0.000000,0.000000,0.087156 -209,0.996195,0.000000,0.000000,0.087156 -210,0.996195,0.000000,0.000000,0.087156 -211,0.996195,0.000000,0.000000,0.087156 -212,0.996195,0.000000,0.000000,0.087156 -213,0.996195,0.000000,0.000000,0.087156 -214,0.996195,0.000000,0.000000,0.087156 -215,0.996195,0.000000,0.000000,0.087156 -216,0.996195,0.000000,0.000000,0.087156 -217,0.996195,0.000000,0.000000,0.087156 -218,0.996195,0.000000,0.000000,0.087156 -219,0.996195,0.000000,0.000000,0.087156 -220,0.996195,0.000000,0.000000,0.087156 -221,0.996195,0.000000,0.000000,0.087156 -222,0.996195,0.000000,0.000000,0.087156 -223,0.996195,0.000000,0.000000,0.087156 -224,0.996195,0.000000,0.000000,0.087156 -225,0.996195,0.000000,0.000000,0.087156 -226,0.996195,0.000000,0.000000,0.087156 -227,0.996195,0.000000,0.000000,0.087156 -228,0.996195,0.000000,0.000000,0.087156 -229,0.996195,0.000000,0.000000,0.087156 -230,0.996195,0.000000,0.000000,0.087156 -231,0.996195,0.000000,0.000000,0.087156 -232,0.996195,0.000000,0.000000,0.087156 -233,0.996195,0.000000,0.000000,0.087156 -234,0.996195,0.000000,0.000000,0.087156 -235,0.996195,0.000000,0.000000,0.087156 -236,0.996195,0.000000,0.000000,0.087156 -237,0.996195,0.000000,0.000000,0.087156 -238,0.996195,0.000000,0.000000,0.087156 -239,0.996195,0.000000,0.000000,0.087156 -240,0.996195,0.000000,0.000000,0.087156 -241,0.996195,0.000000,0.000000,0.087156 -242,0.996195,0.000000,0.000000,0.087156 -243,0.996195,0.000000,0.000000,0.087156 -244,0.996195,0.000000,0.000000,0.087156 -245,0.996195,0.000000,0.000000,0.087156 -246,0.996195,0.000000,0.000000,0.087156 -247,0.996195,0.000000,0.000000,0.087156 -248,0.996195,0.000000,0.000000,0.087156 -249,0.996195,0.000000,0.000000,0.087156 -250,0.996195,0.000000,0.000000,0.087156 -251,0.996195,0.000000,0.000000,0.087156 -252,0.996195,0.000000,0.000000,0.087156 -253,0.996195,0.000000,0.000000,0.087156 -254,0.996195,0.000000,0.000000,0.087156 -255,0.996195,0.000000,0.000000,0.087156 -256,0.996195,0.000000,0.000000,0.087156 -257,0.996195,0.000000,0.000000,0.087156 -258,0.996195,0.000000,0.000000,0.087156 -259,0.996195,0.000000,0.000000,0.087156 -260,0.996195,0.000000,0.000000,0.087156 -261,0.996195,0.000000,0.000000,0.087156 -262,0.996195,0.000000,0.000000,0.087156 -263,0.996195,0.000000,0.000000,0.087156 -264,0.996195,0.000000,0.000000,0.087156 -265,0.996195,0.000000,0.000000,0.087156 -266,0.996195,0.000000,0.000000,0.087156 -267,0.996195,0.000000,0.000000,0.087156 -268,0.996195,0.000000,0.000000,0.087156 -269,0.996195,0.000000,0.000000,0.087156 -270,0.996195,0.000000,0.000000,0.087156 -271,0.996195,0.000000,0.000000,0.087156 -272,0.996195,0.000000,0.000000,0.087156 -273,0.996195,0.000000,0.000000,0.087156 -274,0.996195,0.000000,0.000000,0.087156 -275,0.996195,0.000000,0.000000,0.087156 -276,0.996195,0.000000,0.000000,0.087156 -277,0.996195,0.000000,0.000000,0.087156 -278,0.996195,0.000000,0.000000,0.087156 -279,0.996195,0.000000,0.000000,0.087156 -280,0.996195,0.000000,0.000000,0.087156 -281,0.996195,0.000000,0.000000,0.087156 -282,0.996195,0.000000,0.000000,0.087156 -283,0.996195,0.000000,0.000000,0.087156 -284,0.996195,0.000000,0.000000,0.087156 -285,0.996195,0.000000,0.000000,0.087156 -286,0.996195,0.000000,0.000000,0.087156 -287,0.996195,0.000000,0.000000,0.087156 -288,0.996195,0.000000,0.000000,0.087156 -289,0.996195,0.000000,0.000000,0.087156 -290,0.996195,0.000000,0.000000,0.087156 -291,0.996195,0.000000,0.000000,0.087156 -292,0.996195,0.000000,0.000000,0.087156 -293,0.996195,0.000000,0.000000,0.087156 -294,0.996195,0.000000,0.000000,0.087156 -295,0.996195,0.000000,0.000000,0.087156 -296,0.996195,0.000000,0.000000,0.087156 -297,0.996195,0.000000,0.000000,0.087156 -298,0.996195,0.000000,0.000000,0.087156 -299,0.996195,0.000000,0.000000,0.087156 -300,0.996195,0.000000,0.000000,0.087156 -301,0.996195,0.000000,0.000000,0.087156 -302,0.996195,0.000000,0.000000,0.087156 -303,0.996195,0.000000,0.000000,0.087156 -304,0.996195,0.000000,0.000000,0.087156 -305,0.996195,0.000000,0.000000,0.087156 -306,0.996195,0.000000,0.000000,0.087156 -307,0.996195,0.000000,0.000000,0.087156 -308,0.996195,0.000000,0.000000,0.087156 -309,0.996195,0.000000,0.000000,0.087156 -310,0.996195,0.000000,0.000000,0.087156 -311,0.996195,0.000000,0.000000,0.087156 -312,0.996195,0.000000,0.000000,0.087156 -313,0.996195,0.000000,0.000000,0.087156 -314,0.996195,0.000000,0.000000,0.087156 -315,0.996195,0.000000,0.000000,0.087156 -316,0.996195,0.000000,0.000000,0.087156 -317,0.996195,0.000000,0.000000,0.087156 -318,0.996195,0.000000,0.000000,0.087156 -319,0.996195,0.000000,0.000000,0.087156 -320,0.996195,0.000000,0.000000,0.087156 -321,0.996195,0.000000,0.000000,0.087156 -322,0.996195,0.000000,0.000000,0.087156 -323,0.996195,0.000000,0.000000,0.087156 -324,0.996195,0.000000,0.000000,0.087156 -325,0.996195,0.000000,0.000000,0.087156 -326,0.996195,0.000000,0.000000,0.087156 -327,0.996195,0.000000,0.000000,0.087156 -328,0.996195,0.000000,0.000000,0.087156 -329,0.996195,0.000000,0.000000,0.087156 -330,0.996195,0.000000,0.000000,0.087156 -331,0.996195,0.000000,0.000000,0.087156 -332,0.996195,0.000000,0.000000,0.087156 -333,0.996195,0.000000,0.000000,0.087156 -334,0.996195,0.000000,0.000000,0.087156 -335,0.996195,0.000000,0.000000,0.087156 -336,0.996195,0.000000,0.000000,0.087156 -337,0.996195,0.000000,0.000000,0.087156 -338,0.996195,0.000000,0.000000,0.087156 -339,0.996195,0.000000,0.000000,0.087156 -340,0.996195,0.000000,0.000000,0.087156 -341,0.996195,0.000000,0.000000,0.087156 -342,0.996195,0.000000,0.000000,0.087156 -343,0.996195,0.000000,0.000000,0.087156 -344,0.996195,0.000000,0.000000,0.087156 -345,0.996195,0.000000,0.000000,0.087156 -346,0.996195,0.000000,0.000000,0.087156 -347,0.996195,0.000000,0.000000,0.087156 -348,0.996195,0.000000,0.000000,0.087156 -349,0.996195,0.000000,0.000000,0.087156 -350,0.996195,0.000000,0.000000,0.087156 -351,0.996195,0.000000,0.000000,0.087156 -352,0.996195,0.000000,0.000000,0.087156 -353,0.996195,0.000000,0.000000,0.087156 -354,0.996195,0.000000,0.000000,0.087156 -355,0.996195,0.000000,0.000000,0.087156 -356,0.996195,0.000000,0.000000,0.087156 -357,0.996195,0.000000,0.000000,0.087156 -358,0.996195,0.000000,0.000000,0.087156 -359,0.996195,0.000000,0.000000,0.087156 -360,0.996195,0.000000,0.000000,0.087156 -361,0.996195,0.000000,0.000000,0.087156 -362,0.996195,0.000000,0.000000,0.087156 -363,0.996195,0.000000,0.000000,0.087156 -364,0.996195,0.000000,0.000000,0.087156 -365,0.996195,0.000000,0.000000,0.087156 -366,0.996195,0.000000,0.000000,0.087156 -367,0.996195,0.000000,0.000000,0.087156 -368,0.996195,0.000000,0.000000,0.087156 -369,0.996195,0.000000,0.000000,0.087156 -370,0.996195,0.000000,0.000000,0.087156 -371,0.996195,0.000000,0.000000,0.087156 -372,0.996195,0.000000,0.000000,0.087156 -373,0.996195,0.000000,0.000000,0.087156 -374,0.996195,0.000000,0.000000,0.087156 -375,0.996195,0.000000,0.000000,0.087156 -376,0.996195,0.000000,0.000000,0.087156 -377,0.996195,0.000000,0.000000,0.087156 -378,0.996195,0.000000,0.000000,0.087156 -379,0.996195,0.000000,0.000000,0.087156 -380,0.996195,0.000000,0.000000,0.087156 -381,0.996195,0.000000,0.000000,0.087156 -382,0.996195,0.000000,0.000000,0.087156 -383,0.996195,0.000000,0.000000,0.087156 -384,0.996195,0.000000,0.000000,0.087156 -385,0.996195,0.000000,0.000000,0.087156 -386,0.996195,0.000000,0.000000,0.087156 -387,0.996195,0.000000,0.000000,0.087156 -388,0.996195,0.000000,0.000000,0.087156 -389,0.996195,0.000000,0.000000,0.087156 -390,0.996195,0.000000,0.000000,0.087156 -391,0.996195,0.000000,0.000000,0.087156 -392,0.996195,0.000000,0.000000,0.087156 -393,0.996195,0.000000,0.000000,0.087156 -394,0.996195,0.000000,0.000000,0.087156 -395,0.996195,0.000000,0.000000,0.087156 -396,0.996195,0.000000,0.000000,0.087156 -397,0.996195,0.000000,0.000000,0.087156 -398,0.996195,0.000000,0.000000,0.087156 -399,0.996195,0.000000,0.000000,0.087156 -400,0.996195,0.000000,0.000000,0.087156 -401,0.996195,0.000000,0.000000,0.087156 -402,0.996195,0.000000,0.000000,0.087156 -403,0.996195,0.000000,0.000000,0.087156 -404,0.996195,0.000000,0.000000,0.087156 -405,0.996195,0.000000,0.000000,0.087156 -406,0.996195,0.000000,0.000000,0.087156 -407,0.996195,0.000000,0.000000,0.087156 -408,0.996195,0.000000,0.000000,0.087156 -409,0.996195,0.000000,0.000000,0.087156 -410,0.996195,0.000000,0.000000,0.087156 -411,0.996195,0.000000,0.000000,0.087156 -412,0.996195,0.000000,0.000000,0.087156 -413,0.996195,0.000000,0.000000,0.087156 -414,0.996195,0.000000,0.000000,0.087156 -415,0.996195,0.000000,0.000000,0.087156 -416,0.996195,0.000000,0.000000,0.087156 -417,0.996195,0.000000,0.000000,0.087156 -418,0.996195,0.000000,0.000000,0.087156 -419,0.996195,0.000000,0.000000,0.087156 -420,0.996195,0.000000,0.000000,0.087156 -421,0.996195,0.000000,0.000000,0.087156 -422,0.996195,0.000000,0.000000,0.087156 -423,0.996195,0.000000,0.000000,0.087156 -424,0.996195,0.000000,0.000000,0.087156 -425,0.996195,0.000000,0.000000,0.087156 -426,0.996195,0.000000,0.000000,0.087156 -427,0.996195,0.000000,0.000000,0.087156 -428,0.996195,0.000000,0.000000,0.087156 -429,0.996195,0.000000,0.000000,0.087156 -430,0.996195,0.000000,0.000000,0.087156 -431,0.996195,0.000000,0.000000,0.087156 -432,0.996195,0.000000,0.000000,0.087156 -433,0.996195,0.000000,0.000000,0.087156 -434,0.996195,0.000000,0.000000,0.087156 -435,0.996195,0.000000,0.000000,0.087156 -436,0.996195,0.000000,0.000000,0.087156 -437,0.996195,0.000000,0.000000,0.087156 -438,0.996195,0.000000,0.000000,0.087156 -439,0.996195,0.000000,0.000000,0.087156 -440,0.996195,0.000000,0.000000,0.087156 -441,0.996195,0.000000,0.000000,0.087156 -442,0.996195,0.000000,0.000000,0.087156 -443,0.996195,0.000000,0.000000,0.087156 -444,0.996195,0.000000,0.000000,0.087156 -445,0.996195,0.000000,0.000000,0.087156 -446,0.996195,0.000000,0.000000,0.087156 -447,0.996195,0.000000,0.000000,0.087156 -448,0.996195,0.000000,0.000000,0.087156 -449,0.996195,0.000000,0.000000,0.087156 -450,0.996195,0.000000,0.000000,0.087156 -451,0.996195,0.000000,0.000000,0.087156 -452,0.996195,0.000000,0.000000,0.087156 -453,0.996195,0.000000,0.000000,0.087156 -454,0.996195,0.000000,0.000000,0.087156 -455,0.996195,0.000000,0.000000,0.087156 -456,0.996195,0.000000,0.000000,0.087156 -457,0.996195,0.000000,0.000000,0.087156 -458,0.996195,0.000000,0.000000,0.087156 -459,0.996195,0.000000,0.000000,0.087156 -460,0.996195,0.000000,0.000000,0.087156 -461,0.996195,0.000000,0.000000,0.087156 -462,0.996195,0.000000,0.000000,0.087156 -463,0.996195,0.000000,0.000000,0.087156 -464,0.996195,0.000000,0.000000,0.087156 -465,0.996195,0.000000,0.000000,0.087156 -466,0.996195,0.000000,0.000000,0.087156 -467,0.996195,0.000000,0.000000,0.087156 -468,0.996195,0.000000,0.000000,0.087156 -469,0.996195,0.000000,0.000000,0.087156 -470,0.996195,0.000000,0.000000,0.087156 -471,0.996195,0.000000,0.000000,0.087156 -472,0.996195,0.000000,0.000000,0.087156 -473,0.996195,0.000000,0.000000,0.087156 -474,0.996195,0.000000,0.000000,0.087156 -475,0.996195,0.000000,0.000000,0.087156 -476,0.996195,0.000000,0.000000,0.087156 -477,0.996195,0.000000,0.000000,0.087156 -478,0.996195,0.000000,0.000000,0.087156 -479,0.996195,0.000000,0.000000,0.087156 -480,0.996195,0.000000,0.000000,0.087156 -481,0.996195,0.000000,0.000000,0.087156 -482,0.996195,0.000000,0.000000,0.087156 -483,0.996195,0.000000,0.000000,0.087156 -484,0.996195,0.000000,0.000000,0.087156 -485,0.996195,0.000000,0.000000,0.087156 -486,0.996195,0.000000,0.000000,0.087156 -487,0.996195,0.000000,0.000000,0.087156 -488,0.996195,0.000000,0.000000,0.087156 -489,0.996195,0.000000,0.000000,0.087156 -490,0.996195,0.000000,0.000000,0.087156 -491,0.996195,0.000000,0.000000,0.087156 -492,0.996195,0.000000,0.000000,0.087156 -493,0.996195,0.000000,0.000000,0.087156 -494,0.996195,0.000000,0.000000,0.087156 -495,0.996195,0.000000,0.000000,0.087156 -496,0.996195,0.000000,0.000000,0.087156 -497,0.996195,0.000000,0.000000,0.087156 -498,0.996195,0.000000,0.000000,0.087156 -499,0.996195,0.000000,0.000000,0.087156 -500,0.996195,0.000000,0.000000,0.087156 -501,0.996195,0.000000,0.000000,0.087156 -502,0.996195,0.000000,0.000000,0.087156 -503,0.996195,0.000000,0.000000,0.087156 -504,0.996195,0.000000,0.000000,0.087156 -505,0.996195,0.000000,0.000000,0.087156 -506,0.996195,0.000000,0.000000,0.087156 -507,0.996195,0.000000,0.000000,0.087156 -508,0.996195,0.000000,0.000000,0.087156 -509,0.996195,0.000000,0.000000,0.087156 -510,0.996195,0.000000,0.000000,0.087156 -511,0.996195,0.000000,0.000000,0.087156 -512,0.996195,0.000000,0.000000,0.087156 -513,0.996195,0.000000,0.000000,0.087156 -514,0.996195,0.000000,0.000000,0.087156 -515,0.996195,0.000000,0.000000,0.087156 -516,0.996195,0.000000,0.000000,0.087156 -517,0.996195,0.000000,0.000000,0.087156 -518,0.996195,0.000000,0.000000,0.087156 -519,0.996195,0.000000,0.000000,0.087156 -520,0.996195,0.000000,0.000000,0.087156 -521,0.996195,0.000000,0.000000,0.087156 -522,0.996195,0.000000,0.000000,0.087156 -523,0.996195,0.000000,0.000000,0.087156 -524,0.996195,0.000000,0.000000,0.087156 -525,0.996195,0.000000,0.000000,0.087156 -526,0.996195,0.000000,0.000000,0.087156 -527,0.996195,0.000000,0.000000,0.087156 -528,0.996195,0.000000,0.000000,0.087156 -529,0.996195,0.000000,0.000000,0.087156 -530,0.996195,0.000000,0.000000,0.087156 -531,0.996195,0.000000,0.000000,0.087156 -532,0.996195,0.000000,0.000000,0.087156 -533,0.996195,0.000000,0.000000,0.087156 -534,0.996195,0.000000,0.000000,0.087156 -535,0.996195,0.000000,0.000000,0.087156 -536,0.996195,0.000000,0.000000,0.087156 -537,0.996195,0.000000,0.000000,0.087156 -538,0.996195,0.000000,0.000000,0.087156 -539,0.996195,0.000000,0.000000,0.087156 -540,0.996195,0.000000,0.000000,0.087156 -541,0.996195,0.000000,0.000000,0.087156 -542,0.996195,0.000000,0.000000,0.087156 -543,0.996195,0.000000,0.000000,0.087156 -544,0.996195,0.000000,0.000000,0.087156 -545,0.996195,0.000000,0.000000,0.087156 -546,0.996195,0.000000,0.000000,0.087156 -547,0.996195,0.000000,0.000000,0.087156 -548,0.996195,0.000000,0.000000,0.087156 -549,0.996195,0.000000,0.000000,0.087156 -550,0.996195,0.000000,0.000000,0.087156 -551,0.996195,0.000000,0.000000,0.087156 -552,0.996195,0.000000,0.000000,0.087156 -553,0.996195,0.000000,0.000000,0.087156 -554,0.996195,0.000000,0.000000,0.087156 -555,0.996195,0.000000,0.000000,0.087156 -556,0.996195,0.000000,0.000000,0.087156 -557,0.996195,0.000000,0.000000,0.087156 -558,0.996195,0.000000,0.000000,0.087156 -559,0.996195,0.000000,0.000000,0.087156 -560,0.996195,0.000000,0.000000,0.087156 -561,0.996195,0.000000,0.000000,0.087156 -562,0.996195,0.000000,0.000000,0.087156 -563,0.996195,0.000000,0.000000,0.087156 -564,0.996195,0.000000,0.000000,0.087156 -565,0.996195,0.000000,0.000000,0.087156 -566,0.996195,0.000000,0.000000,0.087156 -567,0.996195,0.000000,0.000000,0.087156 -568,0.996195,0.000000,0.000000,0.087156 -569,0.996195,0.000000,0.000000,0.087156 -570,0.996195,0.000000,0.000000,0.087156 -571,0.996195,0.000000,0.000000,0.087156 -572,0.996195,0.000000,0.000000,0.087156 -573,0.996195,0.000000,0.000000,0.087156 -574,0.996195,0.000000,0.000000,0.087156 -575,0.996195,0.000000,0.000000,0.087156 -576,0.996195,0.000000,0.000000,0.087156 -577,0.996195,0.000000,0.000000,0.087156 -578,0.996195,0.000000,0.000000,0.087156 -579,0.996195,0.000000,0.000000,0.087156 -580,0.996195,0.000000,0.000000,0.087156 -581,0.996195,0.000000,0.000000,0.087156 -582,0.996195,0.000000,0.000000,0.087156 -583,0.996195,0.000000,0.000000,0.087156 -584,0.996195,0.000000,0.000000,0.087156 -585,0.996195,0.000000,0.000000,0.087156 -586,0.996195,0.000000,0.000000,0.087156 -587,0.996195,0.000000,0.000000,0.087156 -588,0.996195,0.000000,0.000000,0.087156 -589,0.996195,0.000000,0.000000,0.087156 -590,0.996195,0.000000,0.000000,0.087156 -591,0.996195,0.000000,0.000000,0.087156 -592,0.996195,0.000000,0.000000,0.087156 -593,0.996195,0.000000,0.000000,0.087156 -594,0.996195,0.000000,0.000000,0.087156 -595,0.996195,0.000000,0.000000,0.087156 -596,0.996195,0.000000,0.000000,0.087156 -597,0.996195,0.000000,0.000000,0.087156 -598,0.996195,0.000000,0.000000,0.087156 -599,0.996195,0.000000,0.000000,0.087156 -600,0.996195,0.000000,0.000000,0.087156 -601,0.996195,0.000000,0.000000,0.087156 -602,0.996195,0.000000,0.000000,0.087156 -603,0.996195,0.000000,0.000000,0.087156 -604,0.996195,0.000000,0.000000,0.087156 -605,0.996195,0.000000,0.000000,0.087156 -606,0.996195,0.000000,0.000000,0.087156 -607,0.996195,0.000000,0.000000,0.087156 -608,0.996195,0.000000,0.000000,0.087156 -609,0.996195,0.000000,0.000000,0.087156 -610,0.996195,0.000000,0.000000,0.087156 -611,0.996195,0.000000,0.000000,0.087156 -612,0.996195,0.000000,0.000000,0.087156 -613,0.996195,0.000000,0.000000,0.087156 -614,0.996195,0.000000,0.000000,0.087156 -615,0.996195,0.000000,0.000000,0.087156 -616,0.996195,0.000000,0.000000,0.087156 -617,0.996195,0.000000,0.000000,0.087156 -618,0.996195,0.000000,0.000000,0.087156 -619,0.996195,0.000000,0.000000,0.087156 -620,0.996195,0.000000,0.000000,0.087156 -621,0.996195,0.000000,0.000000,0.087156 -622,0.996195,0.000000,0.000000,0.087156 -623,0.996195,0.000000,0.000000,0.087156 -624,0.996195,0.000000,0.000000,0.087156 -625,0.996195,0.000000,0.000000,0.087156 -626,0.996195,0.000000,0.000000,0.087156 -627,0.996195,0.000000,0.000000,0.087156 -628,0.996195,0.000000,0.000000,0.087156 -629,0.996195,0.000000,0.000000,0.087156 -630,0.996195,0.000000,0.000000,0.087156 -631,0.996195,0.000000,0.000000,0.087156 -632,0.996195,0.000000,0.000000,0.087156 -633,0.996195,0.000000,0.000000,0.087156 -634,0.996195,0.000000,0.000000,0.087156 -635,0.996195,0.000000,0.000000,0.087156 -636,0.996195,0.000000,0.000000,0.087156 -637,0.996195,0.000000,0.000000,0.087156 -638,0.996195,0.000000,0.000000,0.087156 -639,0.996195,0.000000,0.000000,0.087156 -640,0.996195,0.000000,0.000000,0.087156 -641,0.996195,0.000000,0.000000,0.087156 -642,0.996195,0.000000,0.000000,0.087156 -643,0.996195,0.000000,0.000000,0.087156 -644,0.996195,0.000000,0.000000,0.087156 -645,0.996195,0.000000,0.000000,0.087156 -646,0.996195,0.000000,0.000000,0.087156 -647,0.996195,0.000000,0.000000,0.087156 -648,0.996195,0.000000,0.000000,0.087156 -649,0.996195,0.000000,0.000000,0.087156 -650,0.996195,0.000000,0.000000,0.087156 -651,0.996195,0.000000,0.000000,0.087156 -652,0.996195,0.000000,0.000000,0.087156 -653,0.996195,0.000000,0.000000,0.087156 -654,0.996195,0.000000,0.000000,0.087156 -655,0.996195,0.000000,0.000000,0.087156 -656,0.996195,0.000000,0.000000,0.087156 -657,0.996195,0.000000,0.000000,0.087156 -658,0.996195,0.000000,0.000000,0.087156 -659,0.996195,0.000000,0.000000,0.087156 -660,0.996195,0.000000,0.000000,0.087156 -661,0.996195,0.000000,0.000000,0.087156 -662,0.996195,0.000000,0.000000,0.087156 -663,0.996195,0.000000,0.000000,0.087156 -664,0.996195,0.000000,0.000000,0.087156 -665,0.996195,0.000000,0.000000,0.087156 -666,0.996195,0.000000,0.000000,0.087156 -667,0.996195,0.000000,0.000000,0.087156 -668,0.996195,0.000000,0.000000,0.087156 -669,0.996195,0.000000,0.000000,0.087156 -670,0.996195,0.000000,0.000000,0.087156 -671,0.996195,0.000000,0.000000,0.087156 -672,0.996195,0.000000,0.000000,0.087156 -673,0.996195,0.000000,0.000000,0.087156 -674,0.996195,0.000000,0.000000,0.087156 -675,0.996195,0.000000,0.000000,0.087156 -676,0.996195,0.000000,0.000000,0.087156 -677,0.996195,0.000000,0.000000,0.087156 -678,0.996195,0.000000,0.000000,0.087156 -679,0.996195,0.000000,0.000000,0.087156 -680,0.996195,0.000000,0.000000,0.087156 -681,0.996195,0.000000,0.000000,0.087156 -682,0.996195,0.000000,0.000000,0.087156 -683,0.996195,0.000000,0.000000,0.087156 -684,0.996195,0.000000,0.000000,0.087156 -685,0.996195,0.000000,0.000000,0.087156 -686,0.996195,0.000000,0.000000,0.087156 -687,0.996195,0.000000,0.000000,0.087156 -688,0.996195,0.000000,0.000000,0.087156 -689,0.996195,0.000000,0.000000,0.087156 -690,0.996195,0.000000,0.000000,0.087156 -691,0.996195,0.000000,0.000000,0.087156 -692,0.996195,0.000000,0.000000,0.087156 -693,0.996195,0.000000,0.000000,0.087156 -694,0.996195,0.000000,0.000000,0.087156 -695,0.996195,0.000000,0.000000,0.087156 -696,0.996195,0.000000,0.000000,0.087156 -697,0.996195,0.000000,0.000000,0.087156 -698,0.996195,0.000000,0.000000,0.087156 -699,0.996195,0.000000,0.000000,0.087156 -700,0.996195,0.000000,0.000000,0.087156 -701,0.996195,0.000000,0.000000,0.087156 -702,0.996195,0.000000,0.000000,0.087156 -703,0.996195,0.000000,0.000000,0.087156 -704,0.996195,0.000000,0.000000,0.087156 -705,0.996195,0.000000,0.000000,0.087156 -706,0.996195,0.000000,0.000000,0.087156 -707,0.996195,0.000000,0.000000,0.087156 -708,0.996195,0.000000,0.000000,0.087156 -709,0.996195,0.000000,0.000000,0.087156 -710,0.996195,0.000000,0.000000,0.087156 -711,0.996195,0.000000,0.000000,0.087156 -712,0.996195,0.000000,0.000000,0.087156 -713,0.996195,0.000000,0.000000,0.087156 -714,0.996195,0.000000,0.000000,0.087156 -715,0.996195,0.000000,0.000000,0.087156 -716,0.996195,0.000000,0.000000,0.087156 -717,0.996195,0.000000,0.000000,0.087156 -718,0.996195,0.000000,0.000000,0.087156 -719,0.996195,0.000000,0.000000,0.087156 -720,0.996195,0.000000,0.000000,0.087156 -721,0.996195,0.000000,0.000000,0.087156 -722,0.996195,0.000000,0.000000,0.087156 -723,0.996195,0.000000,0.000000,0.087156 -724,0.996195,0.000000,0.000000,0.087156 -725,0.996195,0.000000,0.000000,0.087156 -726,0.996195,0.000000,0.000000,0.087156 -727,0.996195,0.000000,0.000000,0.087156 -728,0.996195,0.000000,0.000000,0.087156 -729,0.996195,0.000000,0.000000,0.087156 -730,0.996195,0.000000,0.000000,0.087156 -731,0.996195,0.000000,0.000000,0.087156 -732,0.996195,0.000000,0.000000,0.087156 -733,0.996195,0.000000,0.000000,0.087156 -734,0.996195,0.000000,0.000000,0.087156 -735,0.996195,0.000000,0.000000,0.087156 -736,0.996195,0.000000,0.000000,0.087156 -737,0.996195,0.000000,0.000000,0.087156 -738,0.996195,0.000000,0.000000,0.087156 -739,0.996195,0.000000,0.000000,0.087156 -740,0.996195,0.000000,0.000000,0.087156 -741,0.996195,0.000000,0.000000,0.087156 -742,0.996195,0.000000,0.000000,0.087156 -743,0.996195,0.000000,0.000000,0.087156 -744,0.996195,0.000000,0.000000,0.087156 -745,0.996195,0.000000,0.000000,0.087156 -746,0.996195,0.000000,0.000000,0.087156 -747,0.996195,0.000000,0.000000,0.087156 -748,0.996195,0.000000,0.000000,0.087156 -749,0.996195,0.000000,0.000000,0.087156 -750,0.996195,0.000000,0.000000,0.087156 -751,0.996195,0.000000,0.000000,0.087156 -752,0.996195,0.000000,0.000000,0.087156 -753,0.996195,0.000000,0.000000,0.087156 -754,0.996195,0.000000,0.000000,0.087156 -755,0.996195,0.000000,0.000000,0.087156 -756,0.996195,0.000000,0.000000,0.087156 -757,0.996195,0.000000,0.000000,0.087156 -758,0.996195,0.000000,0.000000,0.087156 -759,0.996195,0.000000,0.000000,0.087156 -760,0.996195,0.000000,0.000000,0.087156 -761,0.996195,0.000000,0.000000,0.087156 -762,0.996195,0.000000,0.000000,0.087156 -763,0.996195,0.000000,0.000000,0.087156 -764,0.996195,0.000000,0.000000,0.087156 -765,0.996195,0.000000,0.000000,0.087156 -766,0.996195,0.000000,0.000000,0.087156 -767,0.996195,0.000000,0.000000,0.087156 -768,0.996195,0.000000,0.000000,0.087156 -769,0.996195,0.000000,0.000000,0.087156 -770,0.996195,0.000000,0.000000,0.087156 -771,0.996195,0.000000,0.000000,0.087156 -772,0.996195,0.000000,0.000000,0.087156 -773,0.996195,0.000000,0.000000,0.087156 -774,0.996195,0.000000,0.000000,0.087156 -775,0.996195,0.000000,0.000000,0.087156 -776,0.996195,0.000000,0.000000,0.087156 -777,0.996195,0.000000,0.000000,0.087156 -778,0.996195,0.000000,0.000000,0.087156 -779,0.996195,0.000000,0.000000,0.087156 -780,0.996195,0.000000,0.000000,0.087156 -781,0.996195,0.000000,0.000000,0.087156 -782,0.996195,0.000000,0.000000,0.087156 -783,0.996195,0.000000,0.000000,0.087156 -784,0.996195,0.000000,0.000000,0.087156 -785,0.996195,0.000000,0.000000,0.087156 -786,0.996195,0.000000,0.000000,0.087156 -787,0.996195,0.000000,0.000000,0.087156 -788,0.996195,0.000000,0.000000,0.087156 -789,0.996195,0.000000,0.000000,0.087156 -790,0.996195,0.000000,0.000000,0.087156 -791,0.996195,0.000000,0.000000,0.087156 -792,0.996195,0.000000,0.000000,0.087156 -793,0.996195,0.000000,0.000000,0.087156 -794,0.996195,0.000000,0.000000,0.087156 -795,0.996195,0.000000,0.000000,0.087156 -796,0.996195,0.000000,0.000000,0.087156 -797,0.996195,0.000000,0.000000,0.087156 -798,0.996195,0.000000,0.000000,0.087156 -799,0.996195,0.000000,0.000000,0.087156 -800,0.996195,0.000000,0.000000,0.087156 -801,0.995989,0.000000,0.000000,0.089474 -802,0.995778,0.000000,0.000000,0.091791 -803,0.995562,0.000000,0.000000,0.094108 -804,0.995340,0.000000,0.000000,0.096425 -805,0.995113,0.000000,0.000000,0.098741 -806,0.994881,0.000000,0.000000,0.101056 -807,0.994643,0.000000,0.000000,0.103371 -808,0.994400,0.000000,0.000000,0.105686 -809,0.994151,0.000000,0.000000,0.107999 -810,0.993897,0.000000,0.000000,0.110313 -811,0.993638,0.000000,0.000000,0.112625 -812,0.993373,0.000000,0.000000,0.114937 -813,0.993103,0.000000,0.000000,0.117249 -814,0.992827,0.000000,0.000000,0.119559 -815,0.992546,0.000000,0.000000,0.121869 -816,0.992260,0.000000,0.000000,0.124179 -817,0.991968,0.000000,0.000000,0.126488 -818,0.991671,0.000000,0.000000,0.128796 -819,0.991369,0.000000,0.000000,0.131103 -820,0.991061,0.000000,0.000000,0.133410 -821,0.990748,0.000000,0.000000,0.135716 -822,0.990429,0.000000,0.000000,0.138021 -823,0.990105,0.000000,0.000000,0.140325 -824,0.989776,0.000000,0.000000,0.142629 -825,0.989442,0.000000,0.000000,0.144932 -826,0.989102,0.000000,0.000000,0.147234 -827,0.988756,0.000000,0.000000,0.149535 -828,0.988406,0.000000,0.000000,0.151836 -829,0.988050,0.000000,0.000000,0.154136 -830,0.987688,0.000000,0.000000,0.156434 -831,0.987322,0.000000,0.000000,0.158732 -832,0.986950,0.000000,0.000000,0.161030 -833,0.986572,0.000000,0.000000,0.163326 -834,0.986189,0.000000,0.000000,0.165621 -835,0.985801,0.000000,0.000000,0.167916 -836,0.985408,0.000000,0.000000,0.170209 -837,0.985009,0.000000,0.000000,0.172502 -838,0.984605,0.000000,0.000000,0.174794 -839,0.984196,0.000000,0.000000,0.177085 -840,0.983781,0.000000,0.000000,0.179375 -841,0.983361,0.000000,0.000000,0.181663 -842,0.982935,0.000000,0.000000,0.183951 -843,0.982505,0.000000,0.000000,0.186238 -844,0.982069,0.000000,0.000000,0.188524 -845,0.981627,0.000000,0.000000,0.190809 -846,0.981180,0.000000,0.000000,0.193093 -847,0.980728,0.000000,0.000000,0.195376 -848,0.980271,0.000000,0.000000,0.197657 -849,0.979809,0.000000,0.000000,0.199938 -850,0.979341,0.000000,0.000000,0.202218 -851,0.978867,0.000000,0.000000,0.204496 -852,0.978389,0.000000,0.000000,0.206773 -853,0.977905,0.000000,0.000000,0.209050 -854,0.977416,0.000000,0.000000,0.211325 -855,0.976921,0.000000,0.000000,0.213599 -856,0.976422,0.000000,0.000000,0.215872 -857,0.975917,0.000000,0.000000,0.218143 -858,0.975406,0.000000,0.000000,0.220414 -859,0.974891,0.000000,0.000000,0.222683 -860,0.974370,0.000000,0.000000,0.224951 -861,0.973844,0.000000,0.000000,0.227218 -862,0.973313,0.000000,0.000000,0.229484 -863,0.972776,0.000000,0.000000,0.231748 -864,0.972234,0.000000,0.000000,0.234011 -865,0.971687,0.000000,0.000000,0.236273 -866,0.971134,0.000000,0.000000,0.238533 -867,0.970577,0.000000,0.000000,0.240793 -868,0.970014,0.000000,0.000000,0.243051 -869,0.969445,0.000000,0.000000,0.245307 -870,0.968872,0.000000,0.000000,0.247563 -871,0.968293,0.000000,0.000000,0.249817 -872,0.967709,0.000000,0.000000,0.252069 -873,0.967120,0.000000,0.000000,0.254321 -874,0.966526,0.000000,0.000000,0.256571 -875,0.965926,0.000000,0.000000,0.258819 -876,0.965321,0.000000,0.000000,0.261066 -877,0.964711,0.000000,0.000000,0.263312 -878,0.964095,0.000000,0.000000,0.265556 -879,0.963475,0.000000,0.000000,0.267799 -880,0.962849,0.000000,0.000000,0.270040 -881,0.962218,0.000000,0.000000,0.272280 -882,0.961582,0.000000,0.000000,0.274519 -883,0.960940,0.000000,0.000000,0.276756 -884,0.960294,0.000000,0.000000,0.278991 -885,0.959642,0.000000,0.000000,0.281225 -886,0.958985,0.000000,0.000000,0.283457 -887,0.958323,0.000000,0.000000,0.285688 -888,0.957655,0.000000,0.000000,0.287918 -889,0.956983,0.000000,0.000000,0.290145 -890,0.956305,0.000000,0.000000,0.292372 -891,0.955622,0.000000,0.000000,0.294596 -892,0.954934,0.000000,0.000000,0.296819 -893,0.954240,0.000000,0.000000,0.299041 -894,0.953542,0.000000,0.000000,0.301261 -895,0.952838,0.000000,0.000000,0.303479 -896,0.952129,0.000000,0.000000,0.305695 -897,0.951415,0.000000,0.000000,0.307910 -898,0.950696,0.000000,0.000000,0.310123 -899,0.949972,0.000000,0.000000,0.312335 -900,0.949243,0.000000,0.000000,0.314545 -901,0.948508,0.000000,0.000000,0.316753 -902,0.947768,0.000000,0.000000,0.318959 -903,0.947024,0.000000,0.000000,0.321164 -904,0.946274,0.000000,0.000000,0.323367 -905,0.945519,0.000000,0.000000,0.325568 -906,0.944758,0.000000,0.000000,0.327768 -907,0.943993,0.000000,0.000000,0.329965 -908,0.943223,0.000000,0.000000,0.332161 -909,0.942447,0.000000,0.000000,0.334355 -910,0.941667,0.000000,0.000000,0.336547 -911,0.940881,0.000000,0.000000,0.338738 -912,0.940090,0.000000,0.000000,0.340927 -913,0.939294,0.000000,0.000000,0.343113 -914,0.938493,0.000000,0.000000,0.345298 -915,0.937687,0.000000,0.000000,0.347481 -916,0.936876,0.000000,0.000000,0.349662 -917,0.936060,0.000000,0.000000,0.351842 -918,0.935238,0.000000,0.000000,0.354019 -919,0.934412,0.000000,0.000000,0.356194 -920,0.933580,0.000000,0.000000,0.358368 -921,0.932744,0.000000,0.000000,0.360540 -922,0.931902,0.000000,0.000000,0.362709 -923,0.931056,0.000000,0.000000,0.364877 -924,0.930204,0.000000,0.000000,0.367042 -925,0.929348,0.000000,0.000000,0.369206 -926,0.928486,0.000000,0.000000,0.371368 -927,0.927619,0.000000,0.000000,0.373528 -928,0.926747,0.000000,0.000000,0.375685 -929,0.925871,0.000000,0.000000,0.377841 -930,0.924989,0.000000,0.000000,0.379994 -931,0.924102,0.000000,0.000000,0.382146 -932,0.923210,0.000000,0.000000,0.384295 -933,0.922313,0.000000,0.000000,0.386443 -934,0.921412,0.000000,0.000000,0.388588 -935,0.920505,0.000000,0.000000,0.390731 -936,0.919593,0.000000,0.000000,0.392872 -937,0.918676,0.000000,0.000000,0.395011 -938,0.917755,0.000000,0.000000,0.397148 -939,0.916828,0.000000,0.000000,0.399283 -940,0.915896,0.000000,0.000000,0.401415 -941,0.914960,0.000000,0.000000,0.403545 -942,0.914018,0.000000,0.000000,0.405673 -943,0.913072,0.000000,0.000000,0.407799 -944,0.912120,0.000000,0.000000,0.409923 -945,0.911164,0.000000,0.000000,0.412045 -946,0.910202,0.000000,0.000000,0.414164 -947,0.909236,0.000000,0.000000,0.416281 -948,0.908265,0.000000,0.000000,0.418396 -949,0.907289,0.000000,0.000000,0.420508 -950,0.906308,0.000000,0.000000,0.422618 -951,0.905322,0.000000,0.000000,0.424726 -952,0.904331,0.000000,0.000000,0.426832 -953,0.903335,0.000000,0.000000,0.428935 -954,0.902335,0.000000,0.000000,0.431036 -955,0.901329,0.000000,0.000000,0.433135 -956,0.900319,0.000000,0.000000,0.435231 -957,0.899304,0.000000,0.000000,0.437325 -958,0.898283,0.000000,0.000000,0.439417 -959,0.897258,0.000000,0.000000,0.441506 -960,0.896229,0.000000,0.000000,0.443593 -961,0.895194,0.000000,0.000000,0.445677 -962,0.894154,0.000000,0.000000,0.447759 -963,0.893110,0.000000,0.000000,0.449839 -964,0.892061,0.000000,0.000000,0.451916 -965,0.891007,0.000000,0.000000,0.453990 -966,0.889948,0.000000,0.000000,0.456063 -967,0.888884,0.000000,0.000000,0.458132 -968,0.887815,0.000000,0.000000,0.460200 -969,0.886742,0.000000,0.000000,0.462265 -970,0.885664,0.000000,0.000000,0.464327 -971,0.884581,0.000000,0.000000,0.466387 -972,0.883493,0.000000,0.000000,0.468444 -973,0.882401,0.000000,0.000000,0.470499 -974,0.881303,0.000000,0.000000,0.472551 -975,0.880201,0.000000,0.000000,0.474600 -976,0.879095,0.000000,0.000000,0.476647 -977,0.877983,0.000000,0.000000,0.478692 -978,0.876867,0.000000,0.000000,0.480734 -979,0.875746,0.000000,0.000000,0.482773 -980,0.874620,0.000000,0.000000,0.484810 -981,0.873489,0.000000,0.000000,0.486844 -982,0.872354,0.000000,0.000000,0.488875 -983,0.871214,0.000000,0.000000,0.490904 -984,0.870069,0.000000,0.000000,0.492930 -985,0.868920,0.000000,0.000000,0.494953 -986,0.867765,0.000000,0.000000,0.496974 -987,0.866607,0.000000,0.000000,0.498992 -988,0.865443,0.000000,0.000000,0.501007 -989,0.864275,0.000000,0.000000,0.503020 -990,0.863102,0.000000,0.000000,0.505030 -991,0.861924,0.000000,0.000000,0.507037 -992,0.860742,0.000000,0.000000,0.509041 -993,0.859555,0.000000,0.000000,0.511043 -994,0.858364,0.000000,0.000000,0.513042 -995,0.857167,0.000000,0.000000,0.515038 -996,0.855966,0.000000,0.000000,0.517031 -997,0.854761,0.000000,0.000000,0.519022 -998,0.853551,0.000000,0.000000,0.521010 -999,0.852336,0.000000,0.000000,0.522995 -1000,0.851117,0.000000,0.000000,0.524977 -1001,0.849893,0.000000,0.000000,0.526956 -1002,0.848664,0.000000,0.000000,0.528932 -1003,0.847431,0.000000,0.000000,0.530906 -1004,0.846193,0.000000,0.000000,0.532876 -1005,0.844951,0.000000,0.000000,0.534844 -1006,0.843704,0.000000,0.000000,0.536809 -1007,0.842452,0.000000,0.000000,0.538771 -1008,0.841196,0.000000,0.000000,0.540730 -1009,0.839936,0.000000,0.000000,0.542686 -1010,0.838671,0.000000,0.000000,0.544639 -1011,0.837401,0.000000,0.000000,0.546589 -1012,0.836127,0.000000,0.000000,0.548536 -1013,0.834848,0.000000,0.000000,0.550481 -1014,0.833565,0.000000,0.000000,0.552422 -1015,0.832277,0.000000,0.000000,0.554360 -1016,0.830984,0.000000,0.000000,0.556296 -1017,0.829688,0.000000,0.000000,0.558228 -1018,0.828386,0.000000,0.000000,0.560157 -1019,0.827081,0.000000,0.000000,0.562083 -1020,0.825770,0.000000,0.000000,0.564007 -1021,0.824456,0.000000,0.000000,0.565927 -1022,0.823136,0.000000,0.000000,0.567844 -1023,0.821813,0.000000,0.000000,0.569758 -1024,0.820485,0.000000,0.000000,0.571669 -1025,0.819152,0.000000,0.000000,0.573576 -1026,0.817815,0.000000,0.000000,0.575481 -1027,0.816474,0.000000,0.000000,0.577383 -1028,0.815128,0.000000,0.000000,0.579281 -1029,0.813778,0.000000,0.000000,0.581176 -1030,0.812423,0.000000,0.000000,0.583069 -1031,0.811064,0.000000,0.000000,0.584958 -1032,0.809700,0.000000,0.000000,0.586844 -1033,0.808333,0.000000,0.000000,0.588726 -1034,0.806960,0.000000,0.000000,0.590606 -1035,0.805584,0.000000,0.000000,0.592482 -1036,0.804203,0.000000,0.000000,0.594355 -1037,0.802817,0.000000,0.000000,0.596225 -1038,0.801428,0.000000,0.000000,0.598092 -1039,0.800034,0.000000,0.000000,0.599955 -1040,0.798636,0.000000,0.000000,0.601815 -1041,0.797233,0.000000,0.000000,0.603672 -1042,0.795826,0.000000,0.000000,0.605526 -1043,0.794415,0.000000,0.000000,0.607376 -1044,0.792999,0.000000,0.000000,0.609223 -1045,0.791579,0.000000,0.000000,0.611067 -1046,0.790155,0.000000,0.000000,0.612907 -1047,0.788727,0.000000,0.000000,0.614744 -1048,0.787294,0.000000,0.000000,0.616578 -1049,0.785857,0.000000,0.000000,0.618408 -1050,0.784416,0.000000,0.000000,0.620235 -1051,0.782970,0.000000,0.000000,0.622059 -1052,0.781520,0.000000,0.000000,0.623880 -1053,0.780067,0.000000,0.000000,0.625697 -1054,0.778608,0.000000,0.000000,0.627510 -1055,0.777146,0.000000,0.000000,0.629320 -1056,0.775679,0.000000,0.000000,0.631127 -1057,0.774209,0.000000,0.000000,0.632931 -1058,0.772734,0.000000,0.000000,0.634731 -1059,0.771254,0.000000,0.000000,0.636527 -1060,0.769771,0.000000,0.000000,0.638320 -1061,0.768284,0.000000,0.000000,0.640110 -1062,0.766792,0.000000,0.000000,0.641896 -1063,0.765296,0.000000,0.000000,0.643679 -1064,0.763796,0.000000,0.000000,0.645458 -1065,0.762292,0.000000,0.000000,0.647233 -1066,0.760784,0.000000,0.000000,0.649006 -1067,0.759271,0.000000,0.000000,0.650774 -1068,0.757755,0.000000,0.000000,0.652539 -1069,0.756234,0.000000,0.000000,0.654301 -1070,0.754710,0.000000,0.000000,0.656059 -1071,0.753181,0.000000,0.000000,0.657814 -1072,0.751648,0.000000,0.000000,0.659564 -1073,0.750111,0.000000,0.000000,0.661312 -1074,0.748570,0.000000,0.000000,0.663056 -1075,0.747025,0.000000,0.000000,0.664796 -1076,0.745476,0.000000,0.000000,0.666532 -1077,0.743923,0.000000,0.000000,0.668265 -1078,0.742366,0.000000,0.000000,0.669995 -1079,0.740805,0.000000,0.000000,0.671721 -1080,0.739239,0.000000,0.000000,0.673443 -1081,0.737670,0.000000,0.000000,0.675161 -1082,0.736097,0.000000,0.000000,0.676876 -1083,0.734520,0.000000,0.000000,0.678587 -1084,0.732939,0.000000,0.000000,0.680295 -1085,0.731354,0.000000,0.000000,0.681998 -1086,0.729765,0.000000,0.000000,0.683698 -1087,0.728172,0.000000,0.000000,0.685395 -1088,0.726575,0.000000,0.000000,0.687088 -1089,0.724974,0.000000,0.000000,0.688776 -1090,0.723369,0.000000,0.000000,0.690462 -1091,0.721760,0.000000,0.000000,0.692143 -1092,0.720148,0.000000,0.000000,0.693821 -1093,0.718531,0.000000,0.000000,0.695495 -1094,0.716911,0.000000,0.000000,0.697165 -1095,0.715286,0.000000,0.000000,0.698832 -1096,0.713658,0.000000,0.000000,0.700494 -1097,0.712026,0.000000,0.000000,0.702153 -1098,0.710390,0.000000,0.000000,0.703808 -1099,0.708750,0.000000,0.000000,0.705459 -1100,0.707107,0.000000,0.000000,0.707107 -1101,0.707107,0.000000,0.000000,0.707107 -1102,0.707107,0.000000,0.000000,0.707107 -1103,0.707107,0.000000,0.000000,0.707107 -1104,0.707107,0.000000,0.000000,0.707107 -1105,0.707107,0.000000,0.000000,0.707107 -1106,0.707107,0.000000,0.000000,0.707107 -1107,0.707107,0.000000,0.000000,0.707107 -1108,0.707107,0.000000,0.000000,0.707107 -1109,0.707107,0.000000,0.000000,0.707107 -1110,0.707107,0.000000,0.000000,0.707107 -1111,0.707107,0.000000,0.000000,0.707107 -1112,0.707107,0.000000,0.000000,0.707107 -1113,0.707107,0.000000,0.000000,0.707107 -1114,0.707107,0.000000,0.000000,0.707107 -1115,0.707107,0.000000,0.000000,0.707107 -1116,0.707107,0.000000,0.000000,0.707107 -1117,0.707107,0.000000,0.000000,0.707107 -1118,0.707107,0.000000,0.000000,0.707107 -1119,0.707107,0.000000,0.000000,0.707107 -1120,0.707107,0.000000,0.000000,0.707107 -1121,0.707107,0.000000,0.000000,0.707107 -1122,0.707107,0.000000,0.000000,0.707107 -1123,0.707107,0.000000,0.000000,0.707107 -1124,0.707107,0.000000,0.000000,0.707107 -1125,0.707107,0.000000,0.000000,0.707107 -1126,0.707107,0.000000,0.000000,0.707107 -1127,0.707107,0.000000,0.000000,0.707107 -1128,0.707107,0.000000,0.000000,0.707107 -1129,0.707107,0.000000,0.000000,0.707107 -1130,0.707107,0.000000,0.000000,0.707107 -1131,0.707107,0.000000,0.000000,0.707107 -1132,0.707107,0.000000,0.000000,0.707107 -1133,0.707107,0.000000,0.000000,0.707107 -1134,0.707107,0.000000,0.000000,0.707107 -1135,0.707107,0.000000,0.000000,0.707107 -1136,0.707107,0.000000,0.000000,0.707107 -1137,0.707107,0.000000,0.000000,0.707107 -1138,0.707107,0.000000,0.000000,0.707107 -1139,0.707107,0.000000,0.000000,0.707107 -1140,0.707107,0.000000,0.000000,0.707107 -1141,0.707107,0.000000,0.000000,0.707107 -1142,0.707107,0.000000,0.000000,0.707107 -1143,0.707107,0.000000,0.000000,0.707107 -1144,0.707107,0.000000,0.000000,0.707107 -1145,0.707107,0.000000,0.000000,0.707107 -1146,0.707107,0.000000,0.000000,0.707107 -1147,0.707107,0.000000,0.000000,0.707107 -1148,0.707107,0.000000,0.000000,0.707107 -1149,0.707107,0.000000,0.000000,0.707107 -1150,0.707107,0.000000,0.000000,0.707107 -1151,0.707107,0.000000,0.000000,0.707107 -1152,0.707107,0.000000,0.000000,0.707107 -1153,0.707107,0.000000,0.000000,0.707107 -1154,0.707107,0.000000,0.000000,0.707107 -1155,0.707107,0.000000,0.000000,0.707107 -1156,0.707107,0.000000,0.000000,0.707107 -1157,0.707107,0.000000,0.000000,0.707107 -1158,0.707107,0.000000,0.000000,0.707107 -1159,0.707107,0.000000,0.000000,0.707107 -1160,0.707107,0.000000,0.000000,0.707107 -1161,0.707107,0.000000,0.000000,0.707107 -1162,0.707107,0.000000,0.000000,0.707107 -1163,0.707107,0.000000,0.000000,0.707107 -1164,0.707107,0.000000,0.000000,0.707107 -1165,0.707107,0.000000,0.000000,0.707107 -1166,0.707107,0.000000,0.000000,0.707107 -1167,0.707107,0.000000,0.000000,0.707107 -1168,0.707107,0.000000,0.000000,0.707107 -1169,0.707107,0.000000,0.000000,0.707107 -1170,0.707107,0.000000,0.000000,0.707107 -1171,0.707107,0.000000,0.000000,0.707107 -1172,0.707107,0.000000,0.000000,0.707107 -1173,0.707107,0.000000,0.000000,0.707107 -1174,0.707107,0.000000,0.000000,0.707107 -1175,0.707107,0.000000,0.000000,0.707107 -1176,0.707107,0.000000,0.000000,0.707107 -1177,0.707107,0.000000,0.000000,0.707107 -1178,0.707107,0.000000,0.000000,0.707107 -1179,0.707107,0.000000,0.000000,0.707107 -1180,0.707107,0.000000,0.000000,0.707107 -1181,0.707107,0.000000,0.000000,0.707107 -1182,0.707107,0.000000,0.000000,0.707107 -1183,0.707107,0.000000,0.000000,0.707107 -1184,0.707107,0.000000,0.000000,0.707107 -1185,0.707107,0.000000,0.000000,0.707107 -1186,0.707107,0.000000,0.000000,0.707107 -1187,0.707107,0.000000,0.000000,0.707107 -1188,0.707107,0.000000,0.000000,0.707107 -1189,0.707107,0.000000,0.000000,0.707107 -1190,0.707107,0.000000,0.000000,0.707107 -1191,0.707107,0.000000,0.000000,0.707107 -1192,0.707107,0.000000,0.000000,0.707107 -1193,0.707107,0.000000,0.000000,0.707107 -1194,0.707107,0.000000,0.000000,0.707107 -1195,0.707107,0.000000,0.000000,0.707107 -1196,0.707107,0.000000,0.000000,0.707107 -1197,0.707107,0.000000,0.000000,0.707107 -1198,0.707107,0.000000,0.000000,0.707107 -1199,0.707107,0.000000,0.000000,0.707107 -1200,0.707107,0.000000,0.000000,0.707107 -1201,0.707107,0.000000,0.000000,0.707107 -1202,0.707107,0.000000,0.000000,0.707107 -1203,0.707107,0.000000,0.000000,0.707107 -1204,0.707107,0.000000,0.000000,0.707107 -1205,0.707107,0.000000,0.000000,0.707107 -1206,0.707107,0.000000,0.000000,0.707107 -1207,0.707107,0.000000,0.000000,0.707107 -1208,0.707107,0.000000,0.000000,0.707107 -1209,0.707107,0.000000,0.000000,0.707107 -1210,0.707107,0.000000,0.000000,0.707107 -1211,0.707107,0.000000,0.000000,0.707107 -1212,0.707107,0.000000,0.000000,0.707107 -1213,0.707107,0.000000,0.000000,0.707107 -1214,0.707107,0.000000,0.000000,0.707107 -1215,0.707107,0.000000,0.000000,0.707107 -1216,0.707107,0.000000,0.000000,0.707107 -1217,0.707107,0.000000,0.000000,0.707107 -1218,0.707107,0.000000,0.000000,0.707107 -1219,0.707107,0.000000,0.000000,0.707107 -1220,0.707107,0.000000,0.000000,0.707107 -1221,0.707107,0.000000,0.000000,0.707107 -1222,0.707107,0.000000,0.000000,0.707107 -1223,0.707107,0.000000,0.000000,0.707107 -1224,0.707107,0.000000,0.000000,0.707107 -1225,0.707107,0.000000,0.000000,0.707107 -1226,0.707107,0.000000,0.000000,0.707107 -1227,0.707107,0.000000,0.000000,0.707107 -1228,0.707107,0.000000,0.000000,0.707107 -1229,0.707107,0.000000,0.000000,0.707107 -1230,0.707107,0.000000,0.000000,0.707107 -1231,0.707107,0.000000,0.000000,0.707107 -1232,0.707107,0.000000,0.000000,0.707107 -1233,0.707107,0.000000,0.000000,0.707107 -1234,0.707107,0.000000,0.000000,0.707107 -1235,0.707107,0.000000,0.000000,0.707107 -1236,0.707107,0.000000,0.000000,0.707107 -1237,0.707107,0.000000,0.000000,0.707107 -1238,0.707107,0.000000,0.000000,0.707107 -1239,0.707107,0.000000,0.000000,0.707107 -1240,0.707107,0.000000,0.000000,0.707107 -1241,0.707107,0.000000,0.000000,0.707107 -1242,0.707107,0.000000,0.000000,0.707107 -1243,0.707107,0.000000,0.000000,0.707107 -1244,0.707107,0.000000,0.000000,0.707107 -1245,0.707107,0.000000,0.000000,0.707107 -1246,0.707107,0.000000,0.000000,0.707107 -1247,0.707107,0.000000,0.000000,0.707107 -1248,0.707107,0.000000,0.000000,0.707107 -1249,0.707107,0.000000,0.000000,0.707107 -1250,0.707107,0.000000,0.000000,0.707107 -1251,0.707107,0.000000,0.000000,0.707107 -1252,0.707107,0.000000,0.000000,0.707107 -1253,0.707107,0.000000,0.000000,0.707107 -1254,0.707107,0.000000,0.000000,0.707107 -1255,0.707107,0.000000,0.000000,0.707107 -1256,0.707107,0.000000,0.000000,0.707107 -1257,0.707107,0.000000,0.000000,0.707107 -1258,0.707107,0.000000,0.000000,0.707107 -1259,0.707107,0.000000,0.000000,0.707107 -1260,0.707107,0.000000,0.000000,0.707107 -1261,0.707107,0.000000,0.000000,0.707107 -1262,0.707107,0.000000,0.000000,0.707107 -1263,0.707107,0.000000,0.000000,0.707107 -1264,0.707107,0.000000,0.000000,0.707107 -1265,0.707107,0.000000,0.000000,0.707107 -1266,0.707107,0.000000,0.000000,0.707107 -1267,0.707107,0.000000,0.000000,0.707107 -1268,0.707107,0.000000,0.000000,0.707107 -1269,0.707107,0.000000,0.000000,0.707107 -1270,0.707107,0.000000,0.000000,0.707107 -1271,0.707107,0.000000,0.000000,0.707107 -1272,0.707107,0.000000,0.000000,0.707107 -1273,0.707107,0.000000,0.000000,0.707107 -1274,0.707107,0.000000,0.000000,0.707107 -1275,0.707107,0.000000,0.000000,0.707107 -1276,0.707107,0.000000,0.000000,0.707107 -1277,0.707107,0.000000,0.000000,0.707107 -1278,0.707107,0.000000,0.000000,0.707107 -1279,0.707107,0.000000,0.000000,0.707107 -1280,0.707107,0.000000,0.000000,0.707107 -1281,0.707107,0.000000,0.000000,0.707107 -1282,0.707107,0.000000,0.000000,0.707107 -1283,0.707107,0.000000,0.000000,0.707107 -1284,0.707107,0.000000,0.000000,0.707107 -1285,0.707107,0.000000,0.000000,0.707107 -1286,0.707107,0.000000,0.000000,0.707107 -1287,0.707107,0.000000,0.000000,0.707107 -1288,0.707107,0.000000,0.000000,0.707107 -1289,0.707107,0.000000,0.000000,0.707107 -1290,0.707107,0.000000,0.000000,0.707107 -1291,0.707107,0.000000,0.000000,0.707107 -1292,0.707107,0.000000,0.000000,0.707107 -1293,0.707107,0.000000,0.000000,0.707107 -1294,0.707107,0.000000,0.000000,0.707107 -1295,0.707107,0.000000,0.000000,0.707107 -1296,0.707107,0.000000,0.000000,0.707107 -1297,0.707107,0.000000,0.000000,0.707107 -1298,0.707107,0.000000,0.000000,0.707107 -1299,0.707107,0.000000,0.000000,0.707107 -1300,0.707107,0.000000,0.000000,0.707107 -1301,0.707107,0.000000,0.000000,0.707107 -1302,0.707107,0.000000,0.000000,0.707107 -1303,0.707107,0.000000,0.000000,0.707107 -1304,0.707107,0.000000,0.000000,0.707107 -1305,0.707107,0.000000,0.000000,0.707107 -1306,0.707107,0.000000,0.000000,0.707107 -1307,0.707107,0.000000,0.000000,0.707107 -1308,0.707107,0.000000,0.000000,0.707107 -1309,0.707107,0.000000,0.000000,0.707107 -1310,0.707107,0.000000,0.000000,0.707107 -1311,0.707107,0.000000,0.000000,0.707107 -1312,0.707107,0.000000,0.000000,0.707107 -1313,0.707107,0.000000,0.000000,0.707107 -1314,0.707107,0.000000,0.000000,0.707107 -1315,0.707107,0.000000,0.000000,0.707107 -1316,0.707107,0.000000,0.000000,0.707107 -1317,0.707107,0.000000,0.000000,0.707107 -1318,0.707107,0.000000,0.000000,0.707107 -1319,0.707107,0.000000,0.000000,0.707107 -1320,0.707107,0.000000,0.000000,0.707107 -1321,0.707107,0.000000,0.000000,0.707107 -1322,0.707107,0.000000,0.000000,0.707107 -1323,0.707107,0.000000,0.000000,0.707107 -1324,0.707107,0.000000,0.000000,0.707107 -1325,0.707107,0.000000,0.000000,0.707107 -1326,0.707107,0.000000,0.000000,0.707107 -1327,0.707107,0.000000,0.000000,0.707107 -1328,0.707107,0.000000,0.000000,0.707107 -1329,0.707107,0.000000,0.000000,0.707107 -1330,0.707107,0.000000,0.000000,0.707107 -1331,0.707107,0.000000,0.000000,0.707107 -1332,0.707107,0.000000,0.000000,0.707107 -1333,0.707107,0.000000,0.000000,0.707107 -1334,0.707107,0.000000,0.000000,0.707107 -1335,0.707107,0.000000,0.000000,0.707107 -1336,0.707107,0.000000,0.000000,0.707107 -1337,0.707107,0.000000,0.000000,0.707107 -1338,0.707107,0.000000,0.000000,0.707107 -1339,0.707107,0.000000,0.000000,0.707107 -1340,0.707107,0.000000,0.000000,0.707107 -1341,0.707107,0.000000,0.000000,0.707107 -1342,0.707107,0.000000,0.000000,0.707107 -1343,0.707107,0.000000,0.000000,0.707107 -1344,0.707107,0.000000,0.000000,0.707107 -1345,0.707107,0.000000,0.000000,0.707107 -1346,0.707107,0.000000,0.000000,0.707107 -1347,0.707107,0.000000,0.000000,0.707107 -1348,0.707107,0.000000,0.000000,0.707107 -1349,0.707107,0.000000,0.000000,0.707107 -1350,0.707107,0.000000,0.000000,0.707107 -1351,0.707107,0.000000,0.000000,0.707107 -1352,0.707107,0.000000,0.000000,0.707107 -1353,0.707107,0.000000,0.000000,0.707107 -1354,0.707107,0.000000,0.000000,0.707107 -1355,0.707107,0.000000,0.000000,0.707107 -1356,0.707107,0.000000,0.000000,0.707107 -1357,0.707107,0.000000,0.000000,0.707107 -1358,0.707107,0.000000,0.000000,0.707107 -1359,0.707107,0.000000,0.000000,0.707107 -1360,0.707107,0.000000,0.000000,0.707107 -1361,0.707107,0.000000,0.000000,0.707107 -1362,0.707107,0.000000,0.000000,0.707107 -1363,0.707107,0.000000,0.000000,0.707107 -1364,0.707107,0.000000,0.000000,0.707107 -1365,0.707107,0.000000,0.000000,0.707107 -1366,0.707107,0.000000,0.000000,0.707107 -1367,0.707107,0.000000,0.000000,0.707107 -1368,0.707107,0.000000,0.000000,0.707107 -1369,0.707107,0.000000,0.000000,0.707107 -1370,0.707107,0.000000,0.000000,0.707107 -1371,0.707107,0.000000,0.000000,0.707107 -1372,0.707107,0.000000,0.000000,0.707107 -1373,0.707107,0.000000,0.000000,0.707107 -1374,0.707107,0.000000,0.000000,0.707107 -1375,0.707107,0.000000,0.000000,0.707107 -1376,0.707107,0.000000,0.000000,0.707107 -1377,0.707107,0.000000,0.000000,0.707107 -1378,0.707107,0.000000,0.000000,0.707107 -1379,0.707107,0.000000,0.000000,0.707107 -1380,0.707107,0.000000,0.000000,0.707107 -1381,0.707107,0.000000,0.000000,0.707107 -1382,0.707107,0.000000,0.000000,0.707107 -1383,0.707107,0.000000,0.000000,0.707107 -1384,0.707107,0.000000,0.000000,0.707107 -1385,0.707107,0.000000,0.000000,0.707107 -1386,0.707107,0.000000,0.000000,0.707107 -1387,0.707107,0.000000,0.000000,0.707107 -1388,0.707107,0.000000,0.000000,0.707107 -1389,0.707107,0.000000,0.000000,0.707107 -1390,0.707107,0.000000,0.000000,0.707107 -1391,0.707107,0.000000,0.000000,0.707107 -1392,0.707107,0.000000,0.000000,0.707107 -1393,0.707107,0.000000,0.000000,0.707107 -1394,0.707107,0.000000,0.000000,0.707107 -1395,0.707107,0.000000,0.000000,0.707107 -1396,0.707107,0.000000,0.000000,0.707107 -1397,0.707107,0.000000,0.000000,0.707107 -1398,0.707107,0.000000,0.000000,0.707107 -1399,0.707107,0.000000,0.000000,0.707107 -1400,0.707107,0.000000,0.000000,0.707107 -1401,0.707107,0.000000,0.000000,0.707107 -1402,0.707107,0.000000,0.000000,0.707107 -1403,0.707107,0.000000,0.000000,0.707107 -1404,0.707107,0.000000,0.000000,0.707107 -1405,0.707107,0.000000,0.000000,0.707107 -1406,0.707107,0.000000,0.000000,0.707107 -1407,0.707107,0.000000,0.000000,0.707107 -1408,0.707107,0.000000,0.000000,0.707107 -1409,0.707107,0.000000,0.000000,0.707107 -1410,0.707107,0.000000,0.000000,0.707107 -1411,0.707107,0.000000,0.000000,0.707107 -1412,0.707107,0.000000,0.000000,0.707107 -1413,0.707107,0.000000,0.000000,0.707107 -1414,0.707107,0.000000,0.000000,0.707107 -1415,0.707107,0.000000,0.000000,0.707107 -1416,0.707107,0.000000,0.000000,0.707107 -1417,0.707107,0.000000,0.000000,0.707107 -1418,0.707107,0.000000,0.000000,0.707107 -1419,0.707107,0.000000,0.000000,0.707107 -1420,0.707107,0.000000,0.000000,0.707107 -1421,0.707107,0.000000,0.000000,0.707107 -1422,0.707107,0.000000,0.000000,0.707107 -1423,0.707107,0.000000,0.000000,0.707107 -1424,0.707107,0.000000,0.000000,0.707107 -1425,0.707107,0.000000,0.000000,0.707107 -1426,0.707107,0.000000,0.000000,0.707107 -1427,0.707107,0.000000,0.000000,0.707107 -1428,0.707107,0.000000,0.000000,0.707107 -1429,0.707107,0.000000,0.000000,0.707107 -1430,0.707107,0.000000,0.000000,0.707107 -1431,0.707107,0.000000,0.000000,0.707107 -1432,0.707107,0.000000,0.000000,0.707107 -1433,0.707107,0.000000,0.000000,0.707107 -1434,0.707107,0.000000,0.000000,0.707107 -1435,0.707107,0.000000,0.000000,0.707107 -1436,0.707107,0.000000,0.000000,0.707107 -1437,0.707107,0.000000,0.000000,0.707107 -1438,0.707107,0.000000,0.000000,0.707107 -1439,0.707107,0.000000,0.000000,0.707107 -1440,0.707107,0.000000,0.000000,0.707107 -1441,0.707107,0.000000,0.000000,0.707107 -1442,0.707107,0.000000,0.000000,0.707107 -1443,0.707107,0.000000,0.000000,0.707107 -1444,0.707107,0.000000,0.000000,0.707107 -1445,0.707107,0.000000,0.000000,0.707107 -1446,0.707107,0.000000,0.000000,0.707107 -1447,0.707107,0.000000,0.000000,0.707107 -1448,0.707107,0.000000,0.000000,0.707107 -1449,0.707107,0.000000,0.000000,0.707107 -1450,0.707107,0.000000,0.000000,0.707107 -1451,0.707107,0.000000,0.000000,0.707107 -1452,0.707107,0.000000,0.000000,0.707107 -1453,0.707107,0.000000,0.000000,0.707107 -1454,0.707107,0.000000,0.000000,0.707107 -1455,0.707107,0.000000,0.000000,0.707107 -1456,0.707107,0.000000,0.000000,0.707107 -1457,0.707107,0.000000,0.000000,0.707107 -1458,0.707107,0.000000,0.000000,0.707107 -1459,0.707107,0.000000,0.000000,0.707107 -1460,0.707107,0.000000,0.000000,0.707107 -1461,0.707107,0.000000,0.000000,0.707107 -1462,0.707107,0.000000,0.000000,0.707107 -1463,0.707107,0.000000,0.000000,0.707107 -1464,0.707107,0.000000,0.000000,0.707107 -1465,0.707107,0.000000,0.000000,0.707107 -1466,0.707107,0.000000,0.000000,0.707107 -1467,0.707107,0.000000,0.000000,0.707107 -1468,0.707107,0.000000,0.000000,0.707107 -1469,0.707107,0.000000,0.000000,0.707107 -1470,0.707107,0.000000,0.000000,0.707107 -1471,0.707107,0.000000,0.000000,0.707107 -1472,0.707107,0.000000,0.000000,0.707107 -1473,0.707107,0.000000,0.000000,0.707107 -1474,0.707107,0.000000,0.000000,0.707107 -1475,0.707107,0.000000,0.000000,0.707107 -1476,0.707107,0.000000,0.000000,0.707107 -1477,0.707107,0.000000,0.000000,0.707107 -1478,0.707107,0.000000,0.000000,0.707107 -1479,0.707107,0.000000,0.000000,0.707107 -1480,0.707107,0.000000,0.000000,0.707107 -1481,0.707107,0.000000,0.000000,0.707107 -1482,0.707107,0.000000,0.000000,0.707107 -1483,0.707107,0.000000,0.000000,0.707107 -1484,0.707107,0.000000,0.000000,0.707107 -1485,0.707107,0.000000,0.000000,0.707107 -1486,0.707107,0.000000,0.000000,0.707107 -1487,0.707107,0.000000,0.000000,0.707107 -1488,0.707107,0.000000,0.000000,0.707107 -1489,0.707107,0.000000,0.000000,0.707107 -1490,0.707107,0.000000,0.000000,0.707107 -1491,0.707107,0.000000,0.000000,0.707107 -1492,0.707107,0.000000,0.000000,0.707107 -1493,0.707107,0.000000,0.000000,0.707107 -1494,0.707107,0.000000,0.000000,0.707107 -1495,0.707107,0.000000,0.000000,0.707107 -1496,0.707107,0.000000,0.000000,0.707107 -1497,0.707107,0.000000,0.000000,0.707107 -1498,0.707107,0.000000,0.000000,0.707107 -1499,0.707107,0.000000,0.000000,0.707107 -1500,0.707107,0.000000,0.000000,0.707107 -1501,0.707107,0.000000,0.000000,0.707107 -1502,0.707107,0.000000,0.000000,0.707107 -1503,0.707107,0.000000,0.000000,0.707107 -1504,0.707107,0.000000,0.000000,0.707107 -1505,0.707107,0.000000,0.000000,0.707107 -1506,0.707107,0.000000,0.000000,0.707107 -1507,0.707107,0.000000,0.000000,0.707107 -1508,0.707107,0.000000,0.000000,0.707107 -1509,0.707107,0.000000,0.000000,0.707107 -1510,0.707107,0.000000,0.000000,0.707107 -1511,0.707107,0.000000,0.000000,0.707107 -1512,0.707107,0.000000,0.000000,0.707107 -1513,0.707107,0.000000,0.000000,0.707107 -1514,0.707107,0.000000,0.000000,0.707107 -1515,0.707107,0.000000,0.000000,0.707107 -1516,0.707107,0.000000,0.000000,0.707107 -1517,0.707107,0.000000,0.000000,0.707107 -1518,0.707107,0.000000,0.000000,0.707107 -1519,0.707107,0.000000,0.000000,0.707107 -1520,0.707107,0.000000,0.000000,0.707107 -1521,0.707107,0.000000,0.000000,0.707107 -1522,0.707107,0.000000,0.000000,0.707107 -1523,0.707107,0.000000,0.000000,0.707107 -1524,0.707107,0.000000,0.000000,0.707107 -1525,0.707107,0.000000,0.000000,0.707107 -1526,0.707107,0.000000,0.000000,0.707107 -1527,0.707107,0.000000,0.000000,0.707107 -1528,0.707107,0.000000,0.000000,0.707107 -1529,0.707107,0.000000,0.000000,0.707107 -1530,0.707107,0.000000,0.000000,0.707107 -1531,0.707107,0.000000,0.000000,0.707107 -1532,0.707107,0.000000,0.000000,0.707107 -1533,0.707107,0.000000,0.000000,0.707107 -1534,0.707107,0.000000,0.000000,0.707107 -1535,0.707107,0.000000,0.000000,0.707107 -1536,0.707107,0.000000,0.000000,0.707107 -1537,0.707107,0.000000,0.000000,0.707107 -1538,0.707107,0.000000,0.000000,0.707107 -1539,0.707107,0.000000,0.000000,0.707107 -1540,0.707107,0.000000,0.000000,0.707107 -1541,0.707107,0.000000,0.000000,0.707107 -1542,0.707107,0.000000,0.000000,0.707107 -1543,0.707107,0.000000,0.000000,0.707107 -1544,0.707107,0.000000,0.000000,0.707107 -1545,0.707107,0.000000,0.000000,0.707107 -1546,0.707107,0.000000,0.000000,0.707107 -1547,0.707107,0.000000,0.000000,0.707107 -1548,0.707107,0.000000,0.000000,0.707107 -1549,0.707107,0.000000,0.000000,0.707107 -1550,0.707107,0.000000,0.000000,0.707107 -1551,0.707107,0.000000,0.000000,0.707107 -1552,0.707107,0.000000,0.000000,0.707107 -1553,0.707107,0.000000,0.000000,0.707107 -1554,0.707107,0.000000,0.000000,0.707107 -1555,0.707107,0.000000,0.000000,0.707107 -1556,0.707107,0.000000,0.000000,0.707107 -1557,0.707107,0.000000,0.000000,0.707107 -1558,0.707107,0.000000,0.000000,0.707107 -1559,0.707107,0.000000,0.000000,0.707107 -1560,0.707107,0.000000,0.000000,0.707107 -1561,0.707107,0.000000,0.000000,0.707107 -1562,0.707107,0.000000,0.000000,0.707107 -1563,0.707107,0.000000,0.000000,0.707107 -1564,0.707107,0.000000,0.000000,0.707107 -1565,0.707107,0.000000,0.000000,0.707107 -1566,0.707107,0.000000,0.000000,0.707107 -1567,0.707107,0.000000,0.000000,0.707107 -1568,0.707107,0.000000,0.000000,0.707107 -1569,0.707107,0.000000,0.000000,0.707107 -1570,0.707107,0.000000,0.000000,0.707107 -1571,0.707107,0.000000,0.000000,0.707107 -1572,0.707107,0.000000,0.000000,0.707107 -1573,0.707107,0.000000,0.000000,0.707107 -1574,0.707107,0.000000,0.000000,0.707107 -1575,0.707107,0.000000,0.000000,0.707107 -1576,0.707107,0.000000,0.000000,0.707107 -1577,0.707107,0.000000,0.000000,0.707107 -1578,0.707107,0.000000,0.000000,0.707107 -1579,0.707107,0.000000,0.000000,0.707107 -1580,0.707107,0.000000,0.000000,0.707107 -1581,0.707107,0.000000,0.000000,0.707107 -1582,0.707107,0.000000,0.000000,0.707107 -1583,0.707107,0.000000,0.000000,0.707107 -1584,0.707107,0.000000,0.000000,0.707107 -1585,0.707107,0.000000,0.000000,0.707107 -1586,0.707107,0.000000,0.000000,0.707107 -1587,0.707107,0.000000,0.000000,0.707107 -1588,0.707107,0.000000,0.000000,0.707107 -1589,0.707107,0.000000,0.000000,0.707107 -1590,0.707107,0.000000,0.000000,0.707107 -1591,0.707107,0.000000,0.000000,0.707107 -1592,0.707107,0.000000,0.000000,0.707107 -1593,0.707107,0.000000,0.000000,0.707107 -1594,0.707107,0.000000,0.000000,0.707107 -1595,0.707107,0.000000,0.000000,0.707107 -1596,0.707107,0.000000,0.000000,0.707107 -1597,0.707107,0.000000,0.000000,0.707107 -1598,0.707107,0.000000,0.000000,0.707107 -1599,0.707107,0.000000,0.000000,0.707107 -1600,0.707107,0.000000,0.000000,0.707107 -1601,0.707107,0.000000,0.000000,0.707107 -1602,0.707107,0.000000,0.000000,0.707107 -1603,0.707107,0.000000,0.000000,0.707107 -1604,0.707107,0.000000,0.000000,0.707107 -1605,0.707107,0.000000,0.000000,0.707107 -1606,0.707107,0.000000,0.000000,0.707107 -1607,0.707107,0.000000,0.000000,0.707107 -1608,0.707107,0.000000,0.000000,0.707107 -1609,0.707107,0.000000,0.000000,0.707107 -1610,0.707107,0.000000,0.000000,0.707107 -1611,0.707107,0.000000,0.000000,0.707107 -1612,0.707107,0.000000,0.000000,0.707107 -1613,0.707107,0.000000,0.000000,0.707107 -1614,0.707107,0.000000,0.000000,0.707107 -1615,0.707107,0.000000,0.000000,0.707107 -1616,0.707107,0.000000,0.000000,0.707107 -1617,0.707107,0.000000,0.000000,0.707107 -1618,0.707107,0.000000,0.000000,0.707107 -1619,0.707107,0.000000,0.000000,0.707107 -1620,0.707107,0.000000,0.000000,0.707107 -1621,0.707107,0.000000,0.000000,0.707107 -1622,0.707107,0.000000,0.000000,0.707107 -1623,0.707107,0.000000,0.000000,0.707107 -1624,0.707107,0.000000,0.000000,0.707107 -1625,0.707107,0.000000,0.000000,0.707107 -1626,0.707107,0.000000,0.000000,0.707107 -1627,0.707107,0.000000,0.000000,0.707107 -1628,0.707107,0.000000,0.000000,0.707107 -1629,0.707107,0.000000,0.000000,0.707107 -1630,0.707107,0.000000,0.000000,0.707107 -1631,0.707107,0.000000,0.000000,0.707107 -1632,0.707107,0.000000,0.000000,0.707107 -1633,0.707107,0.000000,0.000000,0.707107 -1634,0.707107,0.000000,0.000000,0.707107 -1635,0.707107,0.000000,0.000000,0.707107 -1636,0.707107,0.000000,0.000000,0.707107 -1637,0.707107,0.000000,0.000000,0.707107 -1638,0.707107,0.000000,0.000000,0.707107 -1639,0.707107,0.000000,0.000000,0.707107 -1640,0.707107,0.000000,0.000000,0.707107 -1641,0.707107,0.000000,0.000000,0.707107 -1642,0.707107,0.000000,0.000000,0.707107 -1643,0.707107,0.000000,0.000000,0.707107 -1644,0.707107,0.000000,0.000000,0.707107 -1645,0.707107,0.000000,0.000000,0.707107 -1646,0.707107,0.000000,0.000000,0.707107 -1647,0.707107,0.000000,0.000000,0.707107 -1648,0.707107,0.000000,0.000000,0.707107 -1649,0.707107,0.000000,0.000000,0.707107 -1650,0.707107,0.000000,0.000000,0.707107 -1651,0.707107,0.000000,0.000000,0.707107 -1652,0.707107,0.000000,0.000000,0.707107 -1653,0.707107,0.000000,0.000000,0.707107 -1654,0.707107,0.000000,0.000000,0.707107 -1655,0.707107,0.000000,0.000000,0.707107 -1656,0.707107,0.000000,0.000000,0.707107 -1657,0.707107,0.000000,0.000000,0.707107 -1658,0.707107,0.000000,0.000000,0.707107 -1659,0.707107,0.000000,0.000000,0.707107 -1660,0.707107,0.000000,0.000000,0.707107 -1661,0.707107,0.000000,0.000000,0.707107 -1662,0.707107,0.000000,0.000000,0.707107 -1663,0.707107,0.000000,0.000000,0.707107 -1664,0.707107,0.000000,0.000000,0.707107 -1665,0.707107,0.000000,0.000000,0.707107 -1666,0.707107,0.000000,0.000000,0.707107 -1667,0.707107,0.000000,0.000000,0.707107 -1668,0.707107,0.000000,0.000000,0.707107 -1669,0.707107,0.000000,0.000000,0.707107 -1670,0.707107,0.000000,0.000000,0.707107 -1671,0.707107,0.000000,0.000000,0.707107 -1672,0.707107,0.000000,0.000000,0.707107 -1673,0.707107,0.000000,0.000000,0.707107 -1674,0.707107,0.000000,0.000000,0.707107 -1675,0.707107,0.000000,0.000000,0.707107 -1676,0.707107,0.000000,0.000000,0.707107 -1677,0.707107,0.000000,0.000000,0.707107 -1678,0.707107,0.000000,0.000000,0.707107 -1679,0.707107,0.000000,0.000000,0.707107 -1680,0.707107,0.000000,0.000000,0.707107 -1681,0.707107,0.000000,0.000000,0.707107 -1682,0.707107,0.000000,0.000000,0.707107 -1683,0.707107,0.000000,0.000000,0.707107 -1684,0.707107,0.000000,0.000000,0.707107 -1685,0.707107,0.000000,0.000000,0.707107 -1686,0.707107,0.000000,0.000000,0.707107 -1687,0.707107,0.000000,0.000000,0.707107 -1688,0.707107,0.000000,0.000000,0.707107 -1689,0.707107,0.000000,0.000000,0.707107 -1690,0.707107,0.000000,0.000000,0.707107 -1691,0.707107,0.000000,0.000000,0.707107 -1692,0.707107,0.000000,0.000000,0.707107 -1693,0.707107,0.000000,0.000000,0.707107 -1694,0.707107,0.000000,0.000000,0.707107 -1695,0.707107,0.000000,0.000000,0.707107 -1696,0.707107,0.000000,0.000000,0.707107 -1697,0.707107,0.000000,0.000000,0.707107 -1698,0.707107,0.000000,0.000000,0.707107 -1699,0.707107,0.000000,0.000000,0.707107 -1700,0.707107,0.000000,0.000000,0.707107 -1701,0.707107,0.000000,0.000000,0.707107 -1702,0.707107,0.000000,0.000000,0.707107 -1703,0.707107,0.000000,0.000000,0.707107 -1704,0.707107,0.000000,0.000000,0.707107 -1705,0.707107,0.000000,0.000000,0.707107 -1706,0.707107,0.000000,0.000000,0.707107 -1707,0.707107,0.000000,0.000000,0.707107 -1708,0.707107,0.000000,0.000000,0.707107 -1709,0.707107,0.000000,0.000000,0.707107 -1710,0.707107,0.000000,0.000000,0.707107 -1711,0.707107,0.000000,0.000000,0.707107 -1712,0.707107,0.000000,0.000000,0.707107 -1713,0.707107,0.000000,0.000000,0.707107 -1714,0.707107,0.000000,0.000000,0.707107 -1715,0.707107,0.000000,0.000000,0.707107 -1716,0.707107,0.000000,0.000000,0.707107 -1717,0.707107,0.000000,0.000000,0.707107 -1718,0.707107,0.000000,0.000000,0.707107 -1719,0.707107,0.000000,0.000000,0.707107 -1720,0.707107,0.000000,0.000000,0.707107 -1721,0.707107,0.000000,0.000000,0.707107 -1722,0.707107,0.000000,0.000000,0.707107 -1723,0.707107,0.000000,0.000000,0.707107 -1724,0.707107,0.000000,0.000000,0.707107 -1725,0.707107,0.000000,0.000000,0.707107 -1726,0.707107,0.000000,0.000000,0.707107 -1727,0.707107,0.000000,0.000000,0.707107 -1728,0.707107,0.000000,0.000000,0.707107 -1729,0.707107,0.000000,0.000000,0.707107 -1730,0.707107,0.000000,0.000000,0.707107 -1731,0.707107,0.000000,0.000000,0.707107 -1732,0.707107,0.000000,0.000000,0.707107 -1733,0.707107,0.000000,0.000000,0.707107 -1734,0.707107,0.000000,0.000000,0.707107 -1735,0.707107,0.000000,0.000000,0.707107 -1736,0.707107,0.000000,0.000000,0.707107 -1737,0.707107,0.000000,0.000000,0.707107 -1738,0.707107,0.000000,0.000000,0.707107 -1739,0.707107,0.000000,0.000000,0.707107 -1740,0.707107,0.000000,0.000000,0.707107 -1741,0.707107,0.000000,0.000000,0.707107 -1742,0.707107,0.000000,0.000000,0.707107 -1743,0.707107,0.000000,0.000000,0.707107 -1744,0.707107,0.000000,0.000000,0.707107 -1745,0.707107,0.000000,0.000000,0.707107 -1746,0.707107,0.000000,0.000000,0.707107 -1747,0.707107,0.000000,0.000000,0.707107 -1748,0.707107,0.000000,0.000000,0.707107 -1749,0.707107,0.000000,0.000000,0.707107 -1750,0.707107,0.000000,0.000000,0.707107 -1751,0.707107,0.000000,0.000000,0.707107 -1752,0.707107,0.000000,0.000000,0.707107 -1753,0.707107,0.000000,0.000000,0.707107 -1754,0.707107,0.000000,0.000000,0.707107 -1755,0.707107,0.000000,0.000000,0.707107 -1756,0.707107,0.000000,0.000000,0.707107 -1757,0.707107,0.000000,0.000000,0.707107 -1758,0.707107,0.000000,0.000000,0.707107 -1759,0.707107,0.000000,0.000000,0.707107 -1760,0.707107,0.000000,0.000000,0.707107 -1761,0.707107,0.000000,0.000000,0.707107 -1762,0.707107,0.000000,0.000000,0.707107 -1763,0.707107,0.000000,0.000000,0.707107 -1764,0.707107,0.000000,0.000000,0.707107 -1765,0.707107,0.000000,0.000000,0.707107 -1766,0.707107,0.000000,0.000000,0.707107 -1767,0.707107,0.000000,0.000000,0.707107 -1768,0.707107,0.000000,0.000000,0.707107 -1769,0.707107,0.000000,0.000000,0.707107 -1770,0.707107,0.000000,0.000000,0.707107 -1771,0.707107,0.000000,0.000000,0.707107 -1772,0.707107,0.000000,0.000000,0.707107 -1773,0.707107,0.000000,0.000000,0.707107 -1774,0.707107,0.000000,0.000000,0.707107 -1775,0.707107,0.000000,0.000000,0.707107 -1776,0.707107,0.000000,0.000000,0.707107 -1777,0.707107,0.000000,0.000000,0.707107 -1778,0.707107,0.000000,0.000000,0.707107 -1779,0.707107,0.000000,0.000000,0.707107 -1780,0.707107,0.000000,0.000000,0.707107 -1781,0.707107,0.000000,0.000000,0.707107 -1782,0.707107,0.000000,0.000000,0.707107 -1783,0.707107,0.000000,0.000000,0.707107 -1784,0.707107,0.000000,0.000000,0.707107 -1785,0.707107,0.000000,0.000000,0.707107 -1786,0.707107,0.000000,0.000000,0.707107 -1787,0.707107,0.000000,0.000000,0.707107 -1788,0.707107,0.000000,0.000000,0.707107 -1789,0.707107,0.000000,0.000000,0.707107 -1790,0.707107,0.000000,0.000000,0.707107 -1791,0.707107,0.000000,0.000000,0.707107 -1792,0.707107,0.000000,0.000000,0.707107 -1793,0.707107,0.000000,0.000000,0.707107 -1794,0.707107,0.000000,0.000000,0.707107 -1795,0.707107,0.000000,0.000000,0.707107 -1796,0.707107,0.000000,0.000000,0.707107 -1797,0.707107,0.000000,0.000000,0.707107 -1798,0.707107,0.000000,0.000000,0.707107 -1799,0.707107,0.000000,0.000000,0.707107 -1800,0.707107,0.000000,0.000000,0.707107 -1801,0.707107,0.000000,0.000000,0.707107 -1802,0.707107,0.000000,0.000000,0.707107 -1803,0.707107,0.000000,0.000000,0.707107 -1804,0.707107,0.000000,0.000000,0.707107 -1805,0.707107,0.000000,0.000000,0.707107 -1806,0.707107,0.000000,0.000000,0.707107 -1807,0.707107,0.000000,0.000000,0.707107 -1808,0.707107,0.000000,0.000000,0.707107 -1809,0.707107,0.000000,0.000000,0.707107 -1810,0.707107,0.000000,0.000000,0.707107 -1811,0.707107,0.000000,0.000000,0.707107 -1812,0.707107,0.000000,0.000000,0.707107 -1813,0.707107,0.000000,0.000000,0.707107 -1814,0.707107,0.000000,0.000000,0.707107 -1815,0.707107,0.000000,0.000000,0.707107 -1816,0.707107,0.000000,0.000000,0.707107 -1817,0.707107,0.000000,0.000000,0.707107 -1818,0.707107,0.000000,0.000000,0.707107 -1819,0.707107,0.000000,0.000000,0.707107 -1820,0.707107,0.000000,0.000000,0.707107 -1821,0.707107,0.000000,0.000000,0.707107 -1822,0.707107,0.000000,0.000000,0.707107 -1823,0.707107,0.000000,0.000000,0.707107 -1824,0.707107,0.000000,0.000000,0.707107 -1825,0.707107,0.000000,0.000000,0.707107 -1826,0.707107,0.000000,0.000000,0.707107 -1827,0.707107,0.000000,0.000000,0.707107 -1828,0.707107,0.000000,0.000000,0.707107 -1829,0.707107,0.000000,0.000000,0.707107 -1830,0.707107,0.000000,0.000000,0.707107 -1831,0.707107,0.000000,0.000000,0.707107 -1832,0.707107,0.000000,0.000000,0.707107 -1833,0.707107,0.000000,0.000000,0.707107 -1834,0.707107,0.000000,0.000000,0.707107 -1835,0.707107,0.000000,0.000000,0.707107 -1836,0.707107,0.000000,0.000000,0.707107 -1837,0.707107,0.000000,0.000000,0.707107 -1838,0.707107,0.000000,0.000000,0.707107 -1839,0.707107,0.000000,0.000000,0.707107 -1840,0.707107,0.000000,0.000000,0.707107 -1841,0.707107,0.000000,0.000000,0.707107 -1842,0.707107,0.000000,0.000000,0.707107 -1843,0.707107,0.000000,0.000000,0.707107 -1844,0.707107,0.000000,0.000000,0.707107 -1845,0.707107,0.000000,0.000000,0.707107 -1846,0.707107,0.000000,0.000000,0.707107 -1847,0.707107,0.000000,0.000000,0.707107 -1848,0.707107,0.000000,0.000000,0.707107 -1849,0.707107,0.000000,0.000000,0.707107 -1850,0.707107,0.000000,0.000000,0.707107 -1851,0.707107,0.000000,0.000000,0.707107 -1852,0.707107,0.000000,0.000000,0.707107 -1853,0.707107,0.000000,0.000000,0.707107 -1854,0.707107,0.000000,0.000000,0.707107 -1855,0.707107,0.000000,0.000000,0.707107 -1856,0.707107,0.000000,0.000000,0.707107 -1857,0.707107,0.000000,0.000000,0.707107 -1858,0.707107,0.000000,0.000000,0.707107 -1859,0.707107,0.000000,0.000000,0.707107 -1860,0.707107,0.000000,0.000000,0.707107 -1861,0.707107,0.000000,0.000000,0.707107 -1862,0.707107,0.000000,0.000000,0.707107 -1863,0.707107,0.000000,0.000000,0.707107 -1864,0.707107,0.000000,0.000000,0.707107 -1865,0.707107,0.000000,0.000000,0.707107 -1866,0.707107,0.000000,0.000000,0.707107 -1867,0.707107,0.000000,0.000000,0.707107 -1868,0.707107,0.000000,0.000000,0.707107 -1869,0.707107,0.000000,0.000000,0.707107 -1870,0.707107,0.000000,0.000000,0.707107 -1871,0.707107,0.000000,0.000000,0.707107 -1872,0.707107,0.000000,0.000000,0.707107 -1873,0.707107,0.000000,0.000000,0.707107 -1874,0.707107,0.000000,0.000000,0.707107 -1875,0.707107,0.000000,0.000000,0.707107 -1876,0.707107,0.000000,0.000000,0.707107 -1877,0.707107,0.000000,0.000000,0.707107 -1878,0.707107,0.000000,0.000000,0.707107 -1879,0.707107,0.000000,0.000000,0.707107 -1880,0.707107,0.000000,0.000000,0.707107 -1881,0.707107,0.000000,0.000000,0.707107 -1882,0.707107,0.000000,0.000000,0.707107 -1883,0.707107,0.000000,0.000000,0.707107 -1884,0.707107,0.000000,0.000000,0.707107 -1885,0.707107,0.000000,0.000000,0.707107 -1886,0.707107,0.000000,0.000000,0.707107 -1887,0.707107,0.000000,0.000000,0.707107 -1888,0.707107,0.000000,0.000000,0.707107 -1889,0.707107,0.000000,0.000000,0.707107 -1890,0.707107,0.000000,0.000000,0.707107 -1891,0.707107,0.000000,0.000000,0.707107 -1892,0.707107,0.000000,0.000000,0.707107 -1893,0.707107,0.000000,0.000000,0.707107 -1894,0.707107,0.000000,0.000000,0.707107 -1895,0.707107,0.000000,0.000000,0.707107 -1896,0.707107,0.000000,0.000000,0.707107 -1897,0.707107,0.000000,0.000000,0.707107 -1898,0.707107,0.000000,0.000000,0.707107 -1899,0.707107,0.000000,0.000000,0.707107 -1900,0.707107,0.000000,0.000000,0.707107 -1901,0.707107,0.000000,0.000000,0.707107 -1902,0.707107,0.000000,0.000000,0.707107 -1903,0.707107,0.000000,0.000000,0.707107 -1904,0.707107,0.000000,0.000000,0.707107 -1905,0.707107,0.000000,0.000000,0.707107 -1906,0.707107,0.000000,0.000000,0.707107 -1907,0.707107,0.000000,0.000000,0.707107 -1908,0.707107,0.000000,0.000000,0.707107 -1909,0.707107,0.000000,0.000000,0.707107 -1910,0.707107,0.000000,0.000000,0.707107 -1911,0.707107,0.000000,0.000000,0.707107 -1912,0.707107,0.000000,0.000000,0.707107 -1913,0.707107,0.000000,0.000000,0.707107 -1914,0.707107,0.000000,0.000000,0.707107 -1915,0.707107,0.000000,0.000000,0.707107 -1916,0.707107,0.000000,0.000000,0.707107 -1917,0.707107,0.000000,0.000000,0.707107 -1918,0.707107,0.000000,0.000000,0.707107 -1919,0.707107,0.000000,0.000000,0.707107 -1920,0.707107,0.000000,0.000000,0.707107 -1921,0.707107,0.000000,0.000000,0.707107 -1922,0.707107,0.000000,0.000000,0.707107 -1923,0.707107,0.000000,0.000000,0.707107 -1924,0.707107,0.000000,0.000000,0.707107 -1925,0.707107,0.000000,0.000000,0.707107 -1926,0.707107,0.000000,0.000000,0.707107 -1927,0.707107,0.000000,0.000000,0.707107 -1928,0.707107,0.000000,0.000000,0.707107 -1929,0.707107,0.000000,0.000000,0.707107 -1930,0.707107,0.000000,0.000000,0.707107 -1931,0.707107,0.000000,0.000000,0.707107 -1932,0.707107,0.000000,0.000000,0.707107 -1933,0.707107,0.000000,0.000000,0.707107 -1934,0.707107,0.000000,0.000000,0.707107 -1935,0.707107,0.000000,0.000000,0.707107 -1936,0.707107,0.000000,0.000000,0.707107 -1937,0.707107,0.000000,0.000000,0.707107 -1938,0.707107,0.000000,0.000000,0.707107 -1939,0.707107,0.000000,0.000000,0.707107 -1940,0.707107,0.000000,0.000000,0.707107 -1941,0.707107,0.000000,0.000000,0.707107 -1942,0.707107,0.000000,0.000000,0.707107 -1943,0.707107,0.000000,0.000000,0.707107 -1944,0.707107,0.000000,0.000000,0.707107 -1945,0.707107,0.000000,0.000000,0.707107 -1946,0.707107,0.000000,0.000000,0.707107 -1947,0.707107,0.000000,0.000000,0.707107 -1948,0.707107,0.000000,0.000000,0.707107 -1949,0.707107,0.000000,0.000000,0.707107 -1950,0.707107,0.000000,0.000000,0.707107 -1951,0.707107,0.000000,0.000000,0.707107 -1952,0.707107,0.000000,0.000000,0.707107 -1953,0.707107,0.000000,0.000000,0.707107 -1954,0.707107,0.000000,0.000000,0.707107 -1955,0.707107,0.000000,0.000000,0.707107 -1956,0.707107,0.000000,0.000000,0.707107 -1957,0.707107,0.000000,0.000000,0.707107 -1958,0.707107,0.000000,0.000000,0.707107 -1959,0.707107,0.000000,0.000000,0.707107 -1960,0.707107,0.000000,0.000000,0.707107 -1961,0.707107,0.000000,0.000000,0.707107 -1962,0.707107,0.000000,0.000000,0.707107 -1963,0.707107,0.000000,0.000000,0.707107 -1964,0.707107,0.000000,0.000000,0.707107 -1965,0.707107,0.000000,0.000000,0.707107 -1966,0.707107,0.000000,0.000000,0.707107 -1967,0.707107,0.000000,0.000000,0.707107 -1968,0.707107,0.000000,0.000000,0.707107 -1969,0.707107,0.000000,0.000000,0.707107 -1970,0.707107,0.000000,0.000000,0.707107 -1971,0.707107,0.000000,0.000000,0.707107 -1972,0.707107,0.000000,0.000000,0.707107 -1973,0.707107,0.000000,0.000000,0.707107 -1974,0.707107,0.000000,0.000000,0.707107 -1975,0.707107,0.000000,0.000000,0.707107 -1976,0.707107,0.000000,0.000000,0.707107 -1977,0.707107,0.000000,0.000000,0.707107 -1978,0.707107,0.000000,0.000000,0.707107 -1979,0.707107,0.000000,0.000000,0.707107 -1980,0.707107,0.000000,0.000000,0.707107 -1981,0.707107,0.000000,0.000000,0.707107 -1982,0.707107,0.000000,0.000000,0.707107 -1983,0.707107,0.000000,0.000000,0.707107 -1984,0.707107,0.000000,0.000000,0.707107 -1985,0.707107,0.000000,0.000000,0.707107 -1986,0.707107,0.000000,0.000000,0.707107 -1987,0.707107,0.000000,0.000000,0.707107 -1988,0.707107,0.000000,0.000000,0.707107 -1989,0.707107,0.000000,0.000000,0.707107 -1990,0.707107,0.000000,0.000000,0.707107 -1991,0.707107,0.000000,0.000000,0.707107 -1992,0.707107,0.000000,0.000000,0.707107 -1993,0.707107,0.000000,0.000000,0.707107 -1994,0.707107,0.000000,0.000000,0.707107 -1995,0.707107,0.000000,0.000000,0.707107 -1996,0.707107,0.000000,0.000000,0.707107 -1997,0.707107,0.000000,0.000000,0.707107 -1998,0.707107,0.000000,0.000000,0.707107 -1999,0.707107,0.000000,0.000000,0.707107 -2000,0.707107,0.000000,0.000000,0.707107 -2001,0.707107,0.000000,0.000000,0.707107 -2002,0.707107,0.000000,0.000000,0.707107 -2003,0.707107,0.000000,0.000000,0.707107 -2004,0.707107,0.000000,0.000000,0.707107 -2005,0.707107,0.000000,0.000000,0.707107 -2006,0.707107,0.000000,0.000000,0.707107 -2007,0.707107,0.000000,0.000000,0.707107 -2008,0.707107,0.000000,0.000000,0.707107 -2009,0.707107,0.000000,0.000000,0.707107 -2010,0.707107,0.000000,0.000000,0.707107 -2011,0.707107,0.000000,0.000000,0.707107 -2012,0.707107,0.000000,0.000000,0.707107 -2013,0.707107,0.000000,0.000000,0.707107 -2014,0.707107,0.000000,0.000000,0.707107 -2015,0.707107,0.000000,0.000000,0.707107 -2016,0.707107,0.000000,0.000000,0.707107 -2017,0.707107,0.000000,0.000000,0.707107 -2018,0.707107,0.000000,0.000000,0.707107 -2019,0.707107,0.000000,0.000000,0.707107 -2020,0.707107,0.000000,0.000000,0.707107 -2021,0.707107,0.000000,0.000000,0.707107 -2022,0.707107,0.000000,0.000000,0.707107 -2023,0.707107,0.000000,0.000000,0.707107 -2024,0.707107,0.000000,0.000000,0.707107 -2025,0.707107,0.000000,0.000000,0.707107 -2026,0.707107,0.000000,0.000000,0.707107 -2027,0.707107,0.000000,0.000000,0.707107 -2028,0.707107,0.000000,0.000000,0.707107 -2029,0.707107,0.000000,0.000000,0.707107 -2030,0.707107,0.000000,0.000000,0.707107 -2031,0.707107,0.000000,0.000000,0.707107 -2032,0.707107,0.000000,0.000000,0.707107 -2033,0.707107,0.000000,0.000000,0.707107 -2034,0.707107,0.000000,0.000000,0.707107 -2035,0.707107,0.000000,0.000000,0.707107 -2036,0.707107,0.000000,0.000000,0.707107 -2037,0.707107,0.000000,0.000000,0.707107 -2038,0.707107,0.000000,0.000000,0.707107 -2039,0.707107,0.000000,0.000000,0.707107 -2040,0.707107,0.000000,0.000000,0.707107 -2041,0.707107,0.000000,0.000000,0.707107 -2042,0.707107,0.000000,0.000000,0.707107 -2043,0.707107,0.000000,0.000000,0.707107 -2044,0.707107,0.000000,0.000000,0.707107 -2045,0.707107,0.000000,0.000000,0.707107 -2046,0.707107,0.000000,0.000000,0.707107 -2047,0.707107,0.000000,0.000000,0.707107 -2048,0.707107,0.000000,0.000000,0.707107 -2049,0.707107,0.000000,0.000000,0.707107 -2050,0.707107,0.000000,0.000000,0.707107 -2051,0.707107,0.000000,0.000000,0.707107 -2052,0.707107,0.000000,0.000000,0.707107 -2053,0.707107,0.000000,0.000000,0.707107 -2054,0.707107,0.000000,0.000000,0.707107 -2055,0.707107,0.000000,0.000000,0.707107 -2056,0.707107,0.000000,0.000000,0.707107 -2057,0.707107,0.000000,0.000000,0.707107 -2058,0.707107,0.000000,0.000000,0.707107 -2059,0.707107,0.000000,0.000000,0.707107 -2060,0.707107,0.000000,0.000000,0.707107 -2061,0.707107,0.000000,0.000000,0.707107 -2062,0.707107,0.000000,0.000000,0.707107 -2063,0.707107,0.000000,0.000000,0.707107 -2064,0.707107,0.000000,0.000000,0.707107 -2065,0.707107,0.000000,0.000000,0.707107 -2066,0.707107,0.000000,0.000000,0.707107 -2067,0.707107,0.000000,0.000000,0.707107 -2068,0.707107,0.000000,0.000000,0.707107 -2069,0.707107,0.000000,0.000000,0.707107 -2070,0.707107,0.000000,0.000000,0.707107 -2071,0.707107,0.000000,0.000000,0.707107 -2072,0.707107,0.000000,0.000000,0.707107 -2073,0.707107,0.000000,0.000000,0.707107 -2074,0.707107,0.000000,0.000000,0.707107 -2075,0.707107,0.000000,0.000000,0.707107 -2076,0.707107,0.000000,0.000000,0.707107 -2077,0.707107,0.000000,0.000000,0.707107 -2078,0.707107,0.000000,0.000000,0.707107 -2079,0.707107,0.000000,0.000000,0.707107 -2080,0.707107,0.000000,0.000000,0.707107 -2081,0.707107,0.000000,0.000000,0.707107 -2082,0.707107,0.000000,0.000000,0.707107 -2083,0.707107,0.000000,0.000000,0.707107 -2084,0.707107,0.000000,0.000000,0.707107 -2085,0.707107,0.000000,0.000000,0.707107 -2086,0.707107,0.000000,0.000000,0.707107 -2087,0.707107,0.000000,0.000000,0.707107 -2088,0.707107,0.000000,0.000000,0.707107 -2089,0.707107,0.000000,0.000000,0.707107 -2090,0.707107,0.000000,0.000000,0.707107 -2091,0.707107,0.000000,0.000000,0.707107 -2092,0.707107,0.000000,0.000000,0.707107 -2093,0.707107,0.000000,0.000000,0.707107 -2094,0.707107,0.000000,0.000000,0.707107 -2095,0.707107,0.000000,0.000000,0.707107 -2096,0.707107,0.000000,0.000000,0.707107 -2097,0.707107,0.000000,0.000000,0.707107 -2098,0.707107,0.000000,0.000000,0.707107 -2099,0.707107,0.000000,0.000000,0.707107 -2100,0.707107,0.000000,0.000000,0.707107 -2101,0.707107,0.000000,0.000000,0.707107 -2102,0.707107,0.000000,0.000000,0.707107 -2103,0.707107,0.000000,0.000000,0.707107 -2104,0.707107,0.000000,0.000000,0.707107 -2105,0.707107,0.000000,0.000000,0.707107 -2106,0.707107,0.000000,0.000000,0.707107 -2107,0.707107,0.000000,0.000000,0.707107 -2108,0.707107,0.000000,0.000000,0.707107 -2109,0.707107,0.000000,0.000000,0.707107 -2110,0.707107,0.000000,0.000000,0.707107 -2111,0.707107,0.000000,0.000000,0.707107 -2112,0.707107,0.000000,0.000000,0.707107 -2113,0.707107,0.000000,0.000000,0.707107 -2114,0.707107,0.000000,0.000000,0.707107 -2115,0.707107,0.000000,0.000000,0.707107 -2116,0.707107,0.000000,0.000000,0.707107 -2117,0.707107,0.000000,0.000000,0.707107 -2118,0.707107,0.000000,0.000000,0.707107 -2119,0.707107,0.000000,0.000000,0.707107 -2120,0.707107,0.000000,0.000000,0.707107 -2121,0.707107,0.000000,0.000000,0.707107 -2122,0.707107,0.000000,0.000000,0.707107 -2123,0.707107,0.000000,0.000000,0.707107 -2124,0.707107,0.000000,0.000000,0.707107 -2125,0.707107,0.000000,0.000000,0.707107 -2126,0.707107,0.000000,0.000000,0.707107 -2127,0.707107,0.000000,0.000000,0.707107 -2128,0.707107,0.000000,0.000000,0.707107 -2129,0.707107,0.000000,0.000000,0.707107 -2130,0.707107,0.000000,0.000000,0.707107 -2131,0.707107,0.000000,0.000000,0.707107 -2132,0.707107,0.000000,0.000000,0.707107 -2133,0.707107,0.000000,0.000000,0.707107 -2134,0.707107,0.000000,0.000000,0.707107 -2135,0.707107,0.000000,0.000000,0.707107 -2136,0.707107,0.000000,0.000000,0.707107 -2137,0.707107,0.000000,0.000000,0.707107 -2138,0.707107,0.000000,0.000000,0.707107 -2139,0.707107,0.000000,0.000000,0.707107 -2140,0.707107,0.000000,0.000000,0.707107 -2141,0.707107,0.000000,0.000000,0.707107 -2142,0.707107,0.000000,0.000000,0.707107 -2143,0.707107,0.000000,0.000000,0.707107 -2144,0.707107,0.000000,0.000000,0.707107 -2145,0.707107,0.000000,0.000000,0.707107 -2146,0.707107,0.000000,0.000000,0.707107 -2147,0.707107,0.000000,0.000000,0.707107 -2148,0.707107,0.000000,0.000000,0.707107 -2149,0.707107,0.000000,0.000000,0.707107 -2150,0.707107,0.000000,0.000000,0.707107 -2151,0.707107,0.000000,0.000000,0.707107 -2152,0.707107,0.000000,0.000000,0.707107 -2153,0.707107,0.000000,0.000000,0.707107 -2154,0.707107,0.000000,0.000000,0.707107 -2155,0.707107,0.000000,0.000000,0.707107 -2156,0.707107,0.000000,0.000000,0.707107 -2157,0.707107,0.000000,0.000000,0.707107 -2158,0.707107,0.000000,0.000000,0.707107 -2159,0.707107,0.000000,0.000000,0.707107 -2160,0.707107,0.000000,0.000000,0.707107 -2161,0.707107,0.000000,0.000000,0.707107 -2162,0.707107,0.000000,0.000000,0.707107 -2163,0.707107,0.000000,0.000000,0.707107 -2164,0.707107,0.000000,0.000000,0.707107 -2165,0.707107,0.000000,0.000000,0.707107 -2166,0.707107,0.000000,0.000000,0.707107 -2167,0.707107,0.000000,0.000000,0.707107 -2168,0.707107,0.000000,0.000000,0.707107 -2169,0.707107,0.000000,0.000000,0.707107 -2170,0.707107,0.000000,0.000000,0.707107 -2171,0.707107,0.000000,0.000000,0.707107 -2172,0.707107,0.000000,0.000000,0.707107 -2173,0.707107,0.000000,0.000000,0.707107 -2174,0.707107,0.000000,0.000000,0.707107 -2175,0.707107,0.000000,0.000000,0.707107 -2176,0.707107,0.000000,0.000000,0.707107 -2177,0.707107,0.000000,0.000000,0.707107 -2178,0.707107,0.000000,0.000000,0.707107 -2179,0.707107,0.000000,0.000000,0.707107 -2180,0.707107,0.000000,0.000000,0.707107 -2181,0.707107,0.000000,0.000000,0.707107 -2182,0.707107,0.000000,0.000000,0.707107 -2183,0.707107,0.000000,0.000000,0.707107 -2184,0.707107,0.000000,0.000000,0.707107 -2185,0.707107,0.000000,0.000000,0.707107 -2186,0.707107,0.000000,0.000000,0.707107 -2187,0.707107,0.000000,0.000000,0.707107 -2188,0.707107,0.000000,0.000000,0.707107 -2189,0.707107,0.000000,0.000000,0.707107 -2190,0.707107,0.000000,0.000000,0.707107 -2191,0.707107,0.000000,0.000000,0.707107 -2192,0.707107,0.000000,0.000000,0.707107 -2193,0.707107,0.000000,0.000000,0.707107 -2194,0.707107,0.000000,0.000000,0.707107 -2195,0.707107,0.000000,0.000000,0.707107 -2196,0.707107,0.000000,0.000000,0.707107 -2197,0.707107,0.000000,0.000000,0.707107 -2198,0.707107,0.000000,0.000000,0.707107 -2199,0.707107,0.000000,0.000000,0.707107 -2200,0.707107,0.000000,0.000000,0.707107 -2201,0.707107,0.000000,0.000000,0.707107 -2202,0.707107,0.000000,0.000000,0.707107 -2203,0.707107,0.000000,0.000000,0.707107 -2204,0.707107,0.000000,0.000000,0.707107 -2205,0.707107,0.000000,0.000000,0.707107 -2206,0.707107,0.000000,0.000000,0.707107 -2207,0.707107,0.000000,0.000000,0.707107 -2208,0.707107,0.000000,0.000000,0.707107 -2209,0.707107,0.000000,0.000000,0.707107 -2210,0.707107,0.000000,0.000000,0.707107 -2211,0.707107,0.000000,0.000000,0.707107 -2212,0.707107,0.000000,0.000000,0.707107 -2213,0.707107,0.000000,0.000000,0.707107 -2214,0.707107,0.000000,0.000000,0.707107 -2215,0.707107,0.000000,0.000000,0.707107 -2216,0.707107,0.000000,0.000000,0.707107 -2217,0.707107,0.000000,0.000000,0.707107 -2218,0.707107,0.000000,0.000000,0.707107 -2219,0.707107,0.000000,0.000000,0.707107 -2220,0.707107,0.000000,0.000000,0.707107 -2221,0.707107,0.000000,0.000000,0.707107 -2222,0.707107,0.000000,0.000000,0.707107 -2223,0.707107,0.000000,0.000000,0.707107 -2224,0.707107,0.000000,0.000000,0.707107 -2225,0.707107,0.000000,0.000000,0.707107 -2226,0.707107,0.000000,0.000000,0.707107 -2227,0.707107,0.000000,0.000000,0.707107 -2228,0.707107,0.000000,0.000000,0.707107 -2229,0.707107,0.000000,0.000000,0.707107 -2230,0.707107,0.000000,0.000000,0.707107 -2231,0.707107,0.000000,0.000000,0.707107 -2232,0.707107,0.000000,0.000000,0.707107 -2233,0.707107,0.000000,0.000000,0.707107 -2234,0.707107,0.000000,0.000000,0.707107 -2235,0.707107,0.000000,0.000000,0.707107 -2236,0.707107,0.000000,0.000000,0.707107 -2237,0.707107,0.000000,0.000000,0.707107 -2238,0.707107,0.000000,0.000000,0.707107 -2239,0.707107,0.000000,0.000000,0.707107 -2240,0.707107,0.000000,0.000000,0.707107 -2241,0.707107,0.000000,0.000000,0.707107 -2242,0.707107,0.000000,0.000000,0.707107 -2243,0.707107,0.000000,0.000000,0.707107 -2244,0.707107,0.000000,0.000000,0.707107 -2245,0.707107,0.000000,0.000000,0.707107 -2246,0.707107,0.000000,0.000000,0.707107 -2247,0.707107,0.000000,0.000000,0.707107 -2248,0.707107,0.000000,0.000000,0.707107 -2249,0.707107,0.000000,0.000000,0.707107 -2250,0.707107,0.000000,0.000000,0.707107 -2251,0.707107,0.000000,0.000000,0.707107 -2252,0.707107,0.000000,0.000000,0.707107 -2253,0.707107,0.000000,0.000000,0.707107 -2254,0.707107,0.000000,0.000000,0.707107 -2255,0.707107,0.000000,0.000000,0.707107 -2256,0.707107,0.000000,0.000000,0.707107 -2257,0.707107,0.000000,0.000000,0.707107 -2258,0.707107,0.000000,0.000000,0.707107 -2259,0.707107,0.000000,0.000000,0.707107 -2260,0.707107,0.000000,0.000000,0.707107 -2261,0.707107,0.000000,0.000000,0.707107 -2262,0.707107,0.000000,0.000000,0.707107 -2263,0.707107,0.000000,0.000000,0.707107 -2264,0.707107,0.000000,0.000000,0.707107 -2265,0.707107,0.000000,0.000000,0.707107 -2266,0.707107,0.000000,0.000000,0.707107 -2267,0.707107,0.000000,0.000000,0.707107 -2268,0.707107,0.000000,0.000000,0.707107 -2269,0.707107,0.000000,0.000000,0.707107 -2270,0.707107,0.000000,0.000000,0.707107 -2271,0.707107,0.000000,0.000000,0.707107 -2272,0.707107,0.000000,0.000000,0.707107 -2273,0.707107,0.000000,0.000000,0.707107 -2274,0.707107,0.000000,0.000000,0.707107 -2275,0.707107,0.000000,0.000000,0.707107 -2276,0.707107,0.000000,0.000000,0.707107 -2277,0.707107,0.000000,0.000000,0.707107 -2278,0.707107,0.000000,0.000000,0.707107 -2279,0.707107,0.000000,0.000000,0.707107 -2280,0.707107,0.000000,0.000000,0.707107 -2281,0.707107,0.000000,0.000000,0.707107 -2282,0.707107,0.000000,0.000000,0.707107 -2283,0.707107,0.000000,0.000000,0.707107 -2284,0.707107,0.000000,0.000000,0.707107 -2285,0.707107,0.000000,0.000000,0.707107 -2286,0.707107,0.000000,0.000000,0.707107 -2287,0.707107,0.000000,0.000000,0.707107 -2288,0.707107,0.000000,0.000000,0.707107 -2289,0.707107,0.000000,0.000000,0.707107 -2290,0.707107,0.000000,0.000000,0.707107 -2291,0.707107,0.000000,0.000000,0.707107 -2292,0.707107,0.000000,0.000000,0.707107 -2293,0.707107,0.000000,0.000000,0.707107 -2294,0.707107,0.000000,0.000000,0.707107 -2295,0.707107,0.000000,0.000000,0.707107 -2296,0.707107,0.000000,0.000000,0.707107 -2297,0.707107,0.000000,0.000000,0.707107 -2298,0.707107,0.000000,0.000000,0.707107 -2299,0.707107,0.000000,0.000000,0.707107 -2300,0.707107,0.000000,0.000000,0.707107 -2301,0.707107,0.000000,0.000000,0.707107 -2302,0.707107,0.000000,0.000000,0.707107 -2303,0.707107,0.000000,0.000000,0.707107 -2304,0.707107,0.000000,0.000000,0.707107 -2305,0.707107,0.000000,0.000000,0.707107 -2306,0.707107,0.000000,0.000000,0.707107 -2307,0.707107,0.000000,0.000000,0.707107 -2308,0.707107,0.000000,0.000000,0.707107 -2309,0.707107,0.000000,0.000000,0.707107 -2310,0.707107,0.000000,0.000000,0.707107 -2311,0.707107,0.000000,0.000000,0.707107 -2312,0.707107,0.000000,0.000000,0.707107 -2313,0.707107,0.000000,0.000000,0.707107 -2314,0.707107,0.000000,0.000000,0.707107 -2315,0.707107,0.000000,0.000000,0.707107 -2316,0.707107,0.000000,0.000000,0.707107 -2317,0.707107,0.000000,0.000000,0.707107 -2318,0.707107,0.000000,0.000000,0.707107 -2319,0.707107,0.000000,0.000000,0.707107 -2320,0.707107,0.000000,0.000000,0.707107 -2321,0.707107,0.000000,0.000000,0.707107 -2322,0.707107,0.000000,0.000000,0.707107 -2323,0.707107,0.000000,0.000000,0.707107 -2324,0.707107,0.000000,0.000000,0.707107 -2325,0.707107,0.000000,0.000000,0.707107 -2326,0.707107,0.000000,0.000000,0.707107 -2327,0.707107,0.000000,0.000000,0.707107 -2328,0.707107,0.000000,0.000000,0.707107 -2329,0.707107,0.000000,0.000000,0.707107 -2330,0.707107,0.000000,0.000000,0.707107 -2331,0.707107,0.000000,0.000000,0.707107 -2332,0.707107,0.000000,0.000000,0.707107 -2333,0.707107,0.000000,0.000000,0.707107 -2334,0.707107,0.000000,0.000000,0.707107 -2335,0.707107,0.000000,0.000000,0.707107 -2336,0.707107,0.000000,0.000000,0.707107 -2337,0.707107,0.000000,0.000000,0.707107 -2338,0.707107,0.000000,0.000000,0.707107 -2339,0.707107,0.000000,0.000000,0.707107 -2340,0.707107,0.000000,0.000000,0.707107 -2341,0.707107,0.000000,0.000000,0.707107 -2342,0.707107,0.000000,0.000000,0.707107 -2343,0.707107,0.000000,0.000000,0.707107 -2344,0.707107,0.000000,0.000000,0.707107 -2345,0.707107,0.000000,0.000000,0.707107 -2346,0.707107,0.000000,0.000000,0.707107 -2347,0.707107,0.000000,0.000000,0.707107 -2348,0.707107,0.000000,0.000000,0.707107 -2349,0.707107,0.000000,0.000000,0.707107 -2350,0.707107,0.000000,0.000000,0.707107 -2351,0.707107,0.000000,0.000000,0.707107 -2352,0.707107,0.000000,0.000000,0.707107 -2353,0.707107,0.000000,0.000000,0.707107 -2354,0.707107,0.000000,0.000000,0.707107 -2355,0.707107,0.000000,0.000000,0.707107 -2356,0.707107,0.000000,0.000000,0.707107 -2357,0.707107,0.000000,0.000000,0.707107 -2358,0.707107,0.000000,0.000000,0.707107 -2359,0.707107,0.000000,0.000000,0.707107 -2360,0.707107,0.000000,0.000000,0.707107 -2361,0.707107,0.000000,0.000000,0.707107 -2362,0.707107,0.000000,0.000000,0.707107 -2363,0.707107,0.000000,0.000000,0.707107 -2364,0.707107,0.000000,0.000000,0.707107 -2365,0.707107,0.000000,0.000000,0.707107 -2366,0.707107,0.000000,0.000000,0.707107 -2367,0.707107,0.000000,0.000000,0.707107 -2368,0.707107,0.000000,0.000000,0.707107 -2369,0.707107,0.000000,0.000000,0.707107 -2370,0.707107,0.000000,0.000000,0.707107 -2371,0.707107,0.000000,0.000000,0.707107 -2372,0.707107,0.000000,0.000000,0.707107 -2373,0.707107,0.000000,0.000000,0.707107 -2374,0.707107,0.000000,0.000000,0.707107 -2375,0.707107,0.000000,0.000000,0.707107 -2376,0.707107,0.000000,0.000000,0.707107 -2377,0.707107,0.000000,0.000000,0.707107 -2378,0.707107,0.000000,0.000000,0.707107 -2379,0.707107,0.000000,0.000000,0.707107 -2380,0.707107,0.000000,0.000000,0.707107 -2381,0.707107,0.000000,0.000000,0.707107 -2382,0.707107,0.000000,0.000000,0.707107 -2383,0.707107,0.000000,0.000000,0.707107 -2384,0.707107,0.000000,0.000000,0.707107 -2385,0.707107,0.000000,0.000000,0.707107 -2386,0.707107,0.000000,0.000000,0.707107 -2387,0.707107,0.000000,0.000000,0.707107 -2388,0.707107,0.000000,0.000000,0.707107 -2389,0.707107,0.000000,0.000000,0.707107 -2390,0.707107,0.000000,0.000000,0.707107 -2391,0.707107,0.000000,0.000000,0.707107 -2392,0.707107,0.000000,0.000000,0.707107 -2393,0.707107,0.000000,0.000000,0.707107 -2394,0.707107,0.000000,0.000000,0.707107 -2395,0.707107,0.000000,0.000000,0.707107 -2396,0.707107,0.000000,0.000000,0.707107 -2397,0.707107,0.000000,0.000000,0.707107 -2398,0.707107,0.000000,0.000000,0.707107 -2399,0.707107,0.000000,0.000000,0.707107 -2400,0.707107,0.000000,0.000000,0.707107 -2401,0.707107,0.000000,0.000000,0.707107 -2402,0.707107,0.000000,0.000000,0.707107 -2403,0.707107,0.000000,0.000000,0.707107 -2404,0.707107,0.000000,0.000000,0.707107 -2405,0.707107,0.000000,0.000000,0.707107 -2406,0.707107,0.000000,0.000000,0.707107 -2407,0.707107,0.000000,0.000000,0.707107 -2408,0.707107,0.000000,0.000000,0.707107 -2409,0.707107,0.000000,0.000000,0.707107 -2410,0.707107,0.000000,0.000000,0.707107 -2411,0.707107,0.000000,0.000000,0.707107 -2412,0.707107,0.000000,0.000000,0.707107 -2413,0.707107,0.000000,0.000000,0.707107 -2414,0.707107,0.000000,0.000000,0.707107 -2415,0.707107,0.000000,0.000000,0.707107 -2416,0.707107,0.000000,0.000000,0.707107 -2417,0.707107,0.000000,0.000000,0.707107 -2418,0.707107,0.000000,0.000000,0.707107 -2419,0.707107,0.000000,0.000000,0.707107 -2420,0.707107,0.000000,0.000000,0.707107 -2421,0.707107,0.000000,0.000000,0.707107 -2422,0.707107,0.000000,0.000000,0.707107 -2423,0.707107,0.000000,0.000000,0.707107 -2424,0.707107,0.000000,0.000000,0.707107 -2425,0.707107,0.000000,0.000000,0.707107 -2426,0.707107,0.000000,0.000000,0.707107 -2427,0.707107,0.000000,0.000000,0.707107 -2428,0.707107,0.000000,0.000000,0.707107 -2429,0.707107,0.000000,0.000000,0.707107 -2430,0.707107,0.000000,0.000000,0.707107 -2431,0.707107,0.000000,0.000000,0.707107 -2432,0.707107,0.000000,0.000000,0.707107 -2433,0.707107,0.000000,0.000000,0.707107 -2434,0.707107,0.000000,0.000000,0.707107 -2435,0.707107,0.000000,0.000000,0.707107 -2436,0.707107,0.000000,0.000000,0.707107 -2437,0.707107,0.000000,0.000000,0.707107 -2438,0.707107,0.000000,0.000000,0.707107 -2439,0.707107,0.000000,0.000000,0.707107 -2440,0.707107,0.000000,0.000000,0.707107 -2441,0.707107,0.000000,0.000000,0.707107 -2442,0.707107,0.000000,0.000000,0.707107 -2443,0.707107,0.000000,0.000000,0.707107 -2444,0.707107,0.000000,0.000000,0.707107 -2445,0.707107,0.000000,0.000000,0.707107 -2446,0.707107,0.000000,0.000000,0.707107 -2447,0.707107,0.000000,0.000000,0.707107 -2448,0.707107,0.000000,0.000000,0.707107 -2449,0.707107,0.000000,0.000000,0.707107 -2450,0.707107,0.000000,0.000000,0.707107 -2451,0.707107,0.000000,0.000000,0.707107 -2452,0.707107,0.000000,0.000000,0.707107 -2453,0.707107,0.000000,0.000000,0.707107 -2454,0.707107,0.000000,0.000000,0.707107 -2455,0.707107,0.000000,0.000000,0.707107 -2456,0.707107,0.000000,0.000000,0.707107 -2457,0.707107,0.000000,0.000000,0.707107 -2458,0.707107,0.000000,0.000000,0.707107 -2459,0.707107,0.000000,0.000000,0.707107 -2460,0.707107,0.000000,0.000000,0.707107 -2461,0.707107,0.000000,0.000000,0.707107 -2462,0.707107,0.000000,0.000000,0.707107 -2463,0.707107,0.000000,0.000000,0.707107 -2464,0.707107,0.000000,0.000000,0.707107 -2465,0.707107,0.000000,0.000000,0.707107 -2466,0.707107,0.000000,0.000000,0.707107 -2467,0.707107,0.000000,0.000000,0.707107 -2468,0.707107,0.000000,0.000000,0.707107 -2469,0.707107,0.000000,0.000000,0.707107 -2470,0.707107,0.000000,0.000000,0.707107 -2471,0.707107,0.000000,0.000000,0.707107 -2472,0.707107,0.000000,0.000000,0.707107 -2473,0.707107,0.000000,0.000000,0.707107 -2474,0.707107,0.000000,0.000000,0.707107 -2475,0.707107,0.000000,0.000000,0.707107 -2476,0.707107,0.000000,0.000000,0.707107 -2477,0.707107,0.000000,0.000000,0.707107 -2478,0.707107,0.000000,0.000000,0.707107 -2479,0.707107,0.000000,0.000000,0.707107 -2480,0.707107,0.000000,0.000000,0.707107 -2481,0.707107,0.000000,0.000000,0.707107 -2482,0.707107,0.000000,0.000000,0.707107 -2483,0.707107,0.000000,0.000000,0.707107 -2484,0.707107,0.000000,0.000000,0.707107 -2485,0.707107,0.000000,0.000000,0.707107 -2486,0.707107,0.000000,0.000000,0.707107 -2487,0.707107,0.000000,0.000000,0.707107 -2488,0.707107,0.000000,0.000000,0.707107 -2489,0.707107,0.000000,0.000000,0.707107 -2490,0.707107,0.000000,0.000000,0.707107 -2491,0.707107,0.000000,0.000000,0.707107 -2492,0.707107,0.000000,0.000000,0.707107 -2493,0.707107,0.000000,0.000000,0.707107 -2494,0.707107,0.000000,0.000000,0.707107 -2495,0.707107,0.000000,0.000000,0.707107 -2496,0.707107,0.000000,0.000000,0.707107 -2497,0.707107,0.000000,0.000000,0.707107 -2498,0.707107,0.000000,0.000000,0.707107 -2499,0.707107,0.000000,0.000000,0.707107 -2500,0.707107,0.000000,0.000000,0.707107 -2501,0.707107,0.000000,0.000000,0.707107 -2502,0.707107,0.000000,0.000000,0.707107 -2503,0.707107,0.000000,0.000000,0.707107 -2504,0.707107,0.000000,0.000000,0.707107 -2505,0.707107,0.000000,0.000000,0.707107 -2506,0.707107,0.000000,0.000000,0.707107 -2507,0.707107,0.000000,0.000000,0.707107 -2508,0.707107,0.000000,0.000000,0.707107 -2509,0.707107,0.000000,0.000000,0.707107 -2510,0.707107,0.000000,0.000000,0.707107 -2511,0.707107,0.000000,0.000000,0.707107 -2512,0.707107,0.000000,0.000000,0.707107 -2513,0.707107,0.000000,0.000000,0.707107 -2514,0.707107,0.000000,0.000000,0.707107 -2515,0.707107,0.000000,0.000000,0.707107 -2516,0.707107,0.000000,0.000000,0.707107 -2517,0.707107,0.000000,0.000000,0.707107 -2518,0.707107,0.000000,0.000000,0.707107 -2519,0.707107,0.000000,0.000000,0.707107 -2520,0.707107,0.000000,0.000000,0.707107 -2521,0.707107,0.000000,0.000000,0.707107 -2522,0.707107,0.000000,0.000000,0.707107 -2523,0.707107,0.000000,0.000000,0.707107 -2524,0.707107,0.000000,0.000000,0.707107 -2525,0.707107,0.000000,0.000000,0.707107 -2526,0.707107,0.000000,0.000000,0.707107 -2527,0.707107,0.000000,0.000000,0.707107 -2528,0.707107,0.000000,0.000000,0.707107 -2529,0.707107,0.000000,0.000000,0.707107 -2530,0.707107,0.000000,0.000000,0.707107 -2531,0.707107,0.000000,0.000000,0.707107 -2532,0.707107,0.000000,0.000000,0.707107 -2533,0.707107,0.000000,0.000000,0.707107 -2534,0.707107,0.000000,0.000000,0.707107 -2535,0.707107,0.000000,0.000000,0.707107 -2536,0.707107,0.000000,0.000000,0.707107 -2537,0.707107,0.000000,0.000000,0.707107 -2538,0.707107,0.000000,0.000000,0.707107 -2539,0.707107,0.000000,0.000000,0.707107 -2540,0.707107,0.000000,0.000000,0.707107 -2541,0.707107,0.000000,0.000000,0.707107 -2542,0.707107,0.000000,0.000000,0.707107 -2543,0.707107,0.000000,0.000000,0.707107 -2544,0.707107,0.000000,0.000000,0.707107 -2545,0.707107,0.000000,0.000000,0.707107 -2546,0.707107,0.000000,0.000000,0.707107 -2547,0.707107,0.000000,0.000000,0.707107 -2548,0.707107,0.000000,0.000000,0.707107 -2549,0.707107,0.000000,0.000000,0.707107 -2550,0.707107,0.000000,0.000000,0.707107 -2551,0.707107,0.000000,0.000000,0.707107 -2552,0.707107,0.000000,0.000000,0.707107 -2553,0.707107,0.000000,0.000000,0.707107 -2554,0.707107,0.000000,0.000000,0.707107 -2555,0.707107,0.000000,0.000000,0.707107 -2556,0.707107,0.000000,0.000000,0.707107 -2557,0.707107,0.000000,0.000000,0.707107 -2558,0.707107,0.000000,0.000000,0.707107 -2559,0.707107,0.000000,0.000000,0.707107 -2560,0.707107,0.000000,0.000000,0.707107 -2561,0.707107,0.000000,0.000000,0.707107 -2562,0.707107,0.000000,0.000000,0.707107 -2563,0.707107,0.000000,0.000000,0.707107 -2564,0.707107,0.000000,0.000000,0.707107 -2565,0.707107,0.000000,0.000000,0.707107 -2566,0.707107,0.000000,0.000000,0.707107 -2567,0.707107,0.000000,0.000000,0.707107 -2568,0.707107,0.000000,0.000000,0.707107 -2569,0.707107,0.000000,0.000000,0.707107 -2570,0.707107,0.000000,0.000000,0.707107 -2571,0.707107,0.000000,0.000000,0.707107 -2572,0.707107,0.000000,0.000000,0.707107 -2573,0.707107,0.000000,0.000000,0.707107 -2574,0.707107,0.000000,0.000000,0.707107 -2575,0.707107,0.000000,0.000000,0.707107 -2576,0.707107,0.000000,0.000000,0.707107 -2577,0.707107,0.000000,0.000000,0.707107 -2578,0.707107,0.000000,0.000000,0.707107 -2579,0.707107,0.000000,0.000000,0.707107 -2580,0.707107,0.000000,0.000000,0.707107 -2581,0.707107,0.000000,0.000000,0.707107 -2582,0.707107,0.000000,0.000000,0.707107 -2583,0.707107,0.000000,0.000000,0.707107 -2584,0.707107,0.000000,0.000000,0.707107 -2585,0.707107,0.000000,0.000000,0.707107 -2586,0.707107,0.000000,0.000000,0.707107 -2587,0.707107,0.000000,0.000000,0.707107 -2588,0.707107,0.000000,0.000000,0.707107 -2589,0.707107,0.000000,0.000000,0.707107 -2590,0.707107,0.000000,0.000000,0.707107 -2591,0.707107,0.000000,0.000000,0.707107 -2592,0.707107,0.000000,0.000000,0.707107 -2593,0.707107,0.000000,0.000000,0.707107 -2594,0.707107,0.000000,0.000000,0.707107 -2595,0.707107,0.000000,0.000000,0.707107 -2596,0.707107,0.000000,0.000000,0.707107 -2597,0.707107,0.000000,0.000000,0.707107 -2598,0.707107,0.000000,0.000000,0.707107 -2599,0.707107,0.000000,0.000000,0.707107 -2600,0.707107,0.000000,0.000000,0.707107 -2601,0.707107,0.000000,0.000000,0.707107 -2602,0.707107,0.000000,0.000000,0.707107 -2603,0.707107,0.000000,0.000000,0.707107 -2604,0.707107,0.000000,0.000000,0.707107 -2605,0.707107,0.000000,0.000000,0.707107 -2606,0.707107,0.000000,0.000000,0.707107 -2607,0.707107,0.000000,0.000000,0.707107 -2608,0.707107,0.000000,0.000000,0.707107 -2609,0.707107,0.000000,0.000000,0.707107 -2610,0.707107,0.000000,0.000000,0.707107 -2611,0.707107,0.000000,0.000000,0.707107 -2612,0.707107,0.000000,0.000000,0.707107 -2613,0.707107,0.000000,0.000000,0.707107 -2614,0.707107,0.000000,0.000000,0.707107 -2615,0.707107,0.000000,0.000000,0.707107 -2616,0.707107,0.000000,0.000000,0.707107 -2617,0.707107,0.000000,0.000000,0.707107 -2618,0.707107,0.000000,0.000000,0.707107 -2619,0.707107,0.000000,0.000000,0.707107 -2620,0.707107,0.000000,0.000000,0.707107 -2621,0.707107,0.000000,0.000000,0.707107 -2622,0.707107,0.000000,0.000000,0.707107 -2623,0.707107,0.000000,0.000000,0.707107 -2624,0.707107,0.000000,0.000000,0.707107 -2625,0.707107,0.000000,0.000000,0.707107 -2626,0.707107,0.000000,0.000000,0.707107 -2627,0.707107,0.000000,0.000000,0.707107 -2628,0.707107,0.000000,0.000000,0.707107 -2629,0.707107,0.000000,0.000000,0.707107 -2630,0.707107,0.000000,0.000000,0.707107 -2631,0.707107,0.000000,0.000000,0.707107 -2632,0.707107,0.000000,0.000000,0.707107 -2633,0.707107,0.000000,0.000000,0.707107 -2634,0.707107,0.000000,0.000000,0.707107 -2635,0.707107,0.000000,0.000000,0.707107 -2636,0.707107,0.000000,0.000000,0.707107 -2637,0.707107,0.000000,0.000000,0.707107 -2638,0.707107,0.000000,0.000000,0.707107 -2639,0.707107,0.000000,0.000000,0.707107 -2640,0.707107,0.000000,0.000000,0.707107 -2641,0.707107,0.000000,0.000000,0.707107 -2642,0.707107,0.000000,0.000000,0.707107 -2643,0.707107,0.000000,0.000000,0.707107 -2644,0.707107,0.000000,0.000000,0.707107 -2645,0.707107,0.000000,0.000000,0.707107 -2646,0.707107,0.000000,0.000000,0.707107 -2647,0.707107,0.000000,0.000000,0.707107 -2648,0.707107,0.000000,0.000000,0.707107 -2649,0.707107,0.000000,0.000000,0.707107 -2650,0.707107,0.000000,0.000000,0.707107 -2651,0.707107,0.000000,0.000000,0.707107 -2652,0.707107,0.000000,0.000000,0.707107 -2653,0.707107,0.000000,0.000000,0.707107 -2654,0.707107,0.000000,0.000000,0.707107 -2655,0.707107,0.000000,0.000000,0.707107 -2656,0.707107,0.000000,0.000000,0.707107 -2657,0.707107,0.000000,0.000000,0.707107 -2658,0.707107,0.000000,0.000000,0.707107 -2659,0.707107,0.000000,0.000000,0.707107 -2660,0.707107,0.000000,0.000000,0.707107 -2661,0.707107,0.000000,0.000000,0.707107 -2662,0.707107,0.000000,0.000000,0.707107 -2663,0.707107,0.000000,0.000000,0.707107 -2664,0.707107,0.000000,0.000000,0.707107 -2665,0.707107,0.000000,0.000000,0.707107 -2666,0.707107,0.000000,0.000000,0.707107 -2667,0.707107,0.000000,0.000000,0.707107 -2668,0.707107,0.000000,0.000000,0.707107 -2669,0.707107,0.000000,0.000000,0.707107 -2670,0.707107,0.000000,0.000000,0.707107 -2671,0.707107,0.000000,0.000000,0.707107 -2672,0.707107,0.000000,0.000000,0.707107 -2673,0.707107,0.000000,0.000000,0.707107 -2674,0.707107,0.000000,0.000000,0.707107 -2675,0.707107,0.000000,0.000000,0.707107 -2676,0.707107,0.000000,0.000000,0.707107 -2677,0.707107,0.000000,0.000000,0.707107 -2678,0.707107,0.000000,0.000000,0.707107 -2679,0.707107,0.000000,0.000000,0.707107 -2680,0.707107,0.000000,0.000000,0.707107 -2681,0.707107,0.000000,0.000000,0.707107 -2682,0.707107,0.000000,0.000000,0.707107 -2683,0.707107,0.000000,0.000000,0.707107 -2684,0.707107,0.000000,0.000000,0.707107 -2685,0.707107,0.000000,0.000000,0.707107 -2686,0.707107,0.000000,0.000000,0.707107 -2687,0.707107,0.000000,0.000000,0.707107 -2688,0.707107,0.000000,0.000000,0.707107 -2689,0.707107,0.000000,0.000000,0.707107 -2690,0.707107,0.000000,0.000000,0.707107 -2691,0.707107,0.000000,0.000000,0.707107 -2692,0.707107,0.000000,0.000000,0.707107 -2693,0.707107,0.000000,0.000000,0.707107 -2694,0.707107,0.000000,0.000000,0.707107 -2695,0.707107,0.000000,0.000000,0.707107 -2696,0.707107,0.000000,0.000000,0.707107 -2697,0.707107,0.000000,0.000000,0.707107 -2698,0.707107,0.000000,0.000000,0.707107 -2699,0.707107,0.000000,0.000000,0.707107 -2700,0.707107,0.000000,0.000000,0.707107 -2701,0.707107,0.000000,0.000000,0.707107 -2702,0.707107,0.000000,0.000000,0.707107 -2703,0.707107,0.000000,0.000000,0.707107 -2704,0.707107,0.000000,0.000000,0.707107 -2705,0.707107,0.000000,0.000000,0.707107 -2706,0.707107,0.000000,0.000000,0.707107 -2707,0.707107,0.000000,0.000000,0.707107 -2708,0.707107,0.000000,0.000000,0.707107 -2709,0.707107,0.000000,0.000000,0.707107 -2710,0.707107,0.000000,0.000000,0.707107 -2711,0.707107,0.000000,0.000000,0.707107 -2712,0.707107,0.000000,0.000000,0.707107 -2713,0.707107,0.000000,0.000000,0.707107 -2714,0.707107,0.000000,0.000000,0.707107 -2715,0.707107,0.000000,0.000000,0.707107 -2716,0.707107,0.000000,0.000000,0.707107 -2717,0.707107,0.000000,0.000000,0.707107 -2718,0.707107,0.000000,0.000000,0.707107 -2719,0.707107,0.000000,0.000000,0.707107 -2720,0.707107,0.000000,0.000000,0.707107 -2721,0.707107,0.000000,0.000000,0.707107 -2722,0.707107,0.000000,0.000000,0.707107 -2723,0.707107,0.000000,0.000000,0.707107 -2724,0.707107,0.000000,0.000000,0.707107 -2725,0.707107,0.000000,0.000000,0.707107 -2726,0.707107,0.000000,0.000000,0.707107 -2727,0.707107,0.000000,0.000000,0.707107 -2728,0.707107,0.000000,0.000000,0.707107 -2729,0.707107,0.000000,0.000000,0.707107 -2730,0.707107,0.000000,0.000000,0.707107 -2731,0.707107,0.000000,0.000000,0.707107 -2732,0.707107,0.000000,0.000000,0.707107 -2733,0.707107,0.000000,0.000000,0.707107 -2734,0.707107,0.000000,0.000000,0.707107 -2735,0.707107,0.000000,0.000000,0.707107 -2736,0.707107,0.000000,0.000000,0.707107 -2737,0.707107,0.000000,0.000000,0.707107 -2738,0.707107,0.000000,0.000000,0.707107 -2739,0.707107,0.000000,0.000000,0.707107 -2740,0.707107,0.000000,0.000000,0.707107 -2741,0.707107,0.000000,0.000000,0.707107 -2742,0.707107,0.000000,0.000000,0.707107 -2743,0.707107,0.000000,0.000000,0.707107 -2744,0.707107,0.000000,0.000000,0.707107 -2745,0.707107,0.000000,0.000000,0.707107 -2746,0.707107,0.000000,0.000000,0.707107 -2747,0.707107,0.000000,0.000000,0.707107 -2748,0.707107,0.000000,0.000000,0.707107 -2749,0.707107,0.000000,0.000000,0.707107 -2750,0.707107,0.000000,0.000000,0.707107 -2751,0.707107,0.000000,0.000000,0.707107 -2752,0.707107,0.000000,0.000000,0.707107 -2753,0.707107,0.000000,0.000000,0.707107 -2754,0.707107,0.000000,0.000000,0.707107 -2755,0.707107,0.000000,0.000000,0.707107 -2756,0.707107,0.000000,0.000000,0.707107 -2757,0.707107,0.000000,0.000000,0.707107 -2758,0.707107,0.000000,0.000000,0.707107 -2759,0.707107,0.000000,0.000000,0.707107 -2760,0.707107,0.000000,0.000000,0.707107 -2761,0.707107,0.000000,0.000000,0.707107 -2762,0.707107,0.000000,0.000000,0.707107 -2763,0.707107,0.000000,0.000000,0.707107 -2764,0.707107,0.000000,0.000000,0.707107 -2765,0.707107,0.000000,0.000000,0.707107 -2766,0.707107,0.000000,0.000000,0.707107 -2767,0.707107,0.000000,0.000000,0.707107 -2768,0.707107,0.000000,0.000000,0.707107 -2769,0.707107,0.000000,0.000000,0.707107 -2770,0.707107,0.000000,0.000000,0.707107 -2771,0.707107,0.000000,0.000000,0.707107 -2772,0.707107,0.000000,0.000000,0.707107 -2773,0.707107,0.000000,0.000000,0.707107 -2774,0.707107,0.000000,0.000000,0.707107 -2775,0.707107,0.000000,0.000000,0.707107 -2776,0.707107,0.000000,0.000000,0.707107 -2777,0.707107,0.000000,0.000000,0.707107 -2778,0.707107,0.000000,0.000000,0.707107 -2779,0.707107,0.000000,0.000000,0.707107 -2780,0.707107,0.000000,0.000000,0.707107 -2781,0.707107,0.000000,0.000000,0.707107 -2782,0.707107,0.000000,0.000000,0.707107 -2783,0.707107,0.000000,0.000000,0.707107 -2784,0.707107,0.000000,0.000000,0.707107 -2785,0.707107,0.000000,0.000000,0.707107 -2786,0.707107,0.000000,0.000000,0.707107 -2787,0.707107,0.000000,0.000000,0.707107 -2788,0.707107,0.000000,0.000000,0.707107 -2789,0.707107,0.000000,0.000000,0.707107 -2790,0.707107,0.000000,0.000000,0.707107 -2791,0.707107,0.000000,0.000000,0.707107 -2792,0.707107,0.000000,0.000000,0.707107 -2793,0.707107,0.000000,0.000000,0.707107 -2794,0.707107,0.000000,0.000000,0.707107 -2795,0.707107,0.000000,0.000000,0.707107 -2796,0.707107,0.000000,0.000000,0.707107 -2797,0.707107,0.000000,0.000000,0.707107 -2798,0.707107,0.000000,0.000000,0.707107 -2799,0.707107,0.000000,0.000000,0.707107 -2800,0.707107,0.000000,0.000000,0.707107 -2801,0.707107,0.000000,0.000000,0.707107 -2802,0.707107,0.000000,0.000000,0.707107 -2803,0.707107,0.000000,0.000000,0.707107 -2804,0.707107,0.000000,0.000000,0.707107 -2805,0.707107,0.000000,0.000000,0.707107 -2806,0.707107,0.000000,0.000000,0.707107 -2807,0.707107,0.000000,0.000000,0.707107 -2808,0.707107,0.000000,0.000000,0.707107 -2809,0.707107,0.000000,0.000000,0.707107 -2810,0.707107,0.000000,0.000000,0.707107 -2811,0.707107,0.000000,0.000000,0.707107 -2812,0.707107,0.000000,0.000000,0.707107 -2813,0.707107,0.000000,0.000000,0.707107 -2814,0.707107,0.000000,0.000000,0.707107 -2815,0.707107,0.000000,0.000000,0.707107 -2816,0.707107,0.000000,0.000000,0.707107 -2817,0.707107,0.000000,0.000000,0.707107 -2818,0.707107,0.000000,0.000000,0.707107 -2819,0.707107,0.000000,0.000000,0.707107 -2820,0.707107,0.000000,0.000000,0.707107 -2821,0.707107,0.000000,0.000000,0.707107 -2822,0.707107,0.000000,0.000000,0.707107 -2823,0.707107,0.000000,0.000000,0.707107 -2824,0.707107,0.000000,0.000000,0.707107 -2825,0.707107,0.000000,0.000000,0.707107 -2826,0.707107,0.000000,0.000000,0.707107 -2827,0.707107,0.000000,0.000000,0.707107 -2828,0.707107,0.000000,0.000000,0.707107 -2829,0.707107,0.000000,0.000000,0.707107 -2830,0.707107,0.000000,0.000000,0.707107 -2831,0.707107,0.000000,0.000000,0.707107 -2832,0.707107,0.000000,0.000000,0.707107 -2833,0.707107,0.000000,0.000000,0.707107 -2834,0.707107,0.000000,0.000000,0.707107 -2835,0.707107,0.000000,0.000000,0.707107 -2836,0.707107,0.000000,0.000000,0.707107 -2837,0.707107,0.000000,0.000000,0.707107 -2838,0.707107,0.000000,0.000000,0.707107 -2839,0.707107,0.000000,0.000000,0.707107 -2840,0.707107,0.000000,0.000000,0.707107 -2841,0.707107,0.000000,0.000000,0.707107 -2842,0.707107,0.000000,0.000000,0.707107 -2843,0.707107,0.000000,0.000000,0.707107 -2844,0.707107,0.000000,0.000000,0.707107 -2845,0.707107,0.000000,0.000000,0.707107 -2846,0.707107,0.000000,0.000000,0.707107 -2847,0.707107,0.000000,0.000000,0.707107 -2848,0.707107,0.000000,0.000000,0.707107 -2849,0.707107,0.000000,0.000000,0.707107 -2850,0.707107,0.000000,0.000000,0.707107 -2851,0.707107,0.000000,0.000000,0.707107 -2852,0.707107,0.000000,0.000000,0.707107 -2853,0.707107,0.000000,0.000000,0.707107 -2854,0.707107,0.000000,0.000000,0.707107 -2855,0.707107,0.000000,0.000000,0.707107 -2856,0.707107,0.000000,0.000000,0.707107 -2857,0.707107,0.000000,0.000000,0.707107 -2858,0.707107,0.000000,0.000000,0.707107 -2859,0.707107,0.000000,0.000000,0.707107 -2860,0.707107,0.000000,0.000000,0.707107 -2861,0.707107,0.000000,0.000000,0.707107 -2862,0.707107,0.000000,0.000000,0.707107 -2863,0.707107,0.000000,0.000000,0.707107 -2864,0.707107,0.000000,0.000000,0.707107 -2865,0.707107,0.000000,0.000000,0.707107 -2866,0.707107,0.000000,0.000000,0.707107 -2867,0.707107,0.000000,0.000000,0.707107 -2868,0.707107,0.000000,0.000000,0.707107 -2869,0.707107,0.000000,0.000000,0.707107 -2870,0.707107,0.000000,0.000000,0.707107 -2871,0.707107,0.000000,0.000000,0.707107 -2872,0.707107,0.000000,0.000000,0.707107 -2873,0.707107,0.000000,0.000000,0.707107 -2874,0.707107,0.000000,0.000000,0.707107 -2875,0.707107,0.000000,0.000000,0.707107 -2876,0.707107,0.000000,0.000000,0.707107 -2877,0.707107,0.000000,0.000000,0.707107 -2878,0.707107,0.000000,0.000000,0.707107 -2879,0.707107,0.000000,0.000000,0.707107 -2880,0.707107,0.000000,0.000000,0.707107 -2881,0.707107,0.000000,0.000000,0.707107 -2882,0.707107,0.000000,0.000000,0.707107 -2883,0.707107,0.000000,0.000000,0.707107 -2884,0.707107,0.000000,0.000000,0.707107 -2885,0.707107,0.000000,0.000000,0.707107 -2886,0.707107,0.000000,0.000000,0.707107 -2887,0.707107,0.000000,0.000000,0.707107 -2888,0.707107,0.000000,0.000000,0.707107 -2889,0.707107,0.000000,0.000000,0.707107 -2890,0.707107,0.000000,0.000000,0.707107 -2891,0.707107,0.000000,0.000000,0.707107 -2892,0.707107,0.000000,0.000000,0.707107 -2893,0.707107,0.000000,0.000000,0.707107 -2894,0.707107,0.000000,0.000000,0.707107 -2895,0.707107,0.000000,0.000000,0.707107 -2896,0.707107,0.000000,0.000000,0.707107 -2897,0.707107,0.000000,0.000000,0.707107 -2898,0.707107,0.000000,0.000000,0.707107 -2899,0.707107,0.000000,0.000000,0.707107 -2900,0.707107,0.000000,0.000000,0.707107 -2901,0.707107,0.000000,0.000000,0.707107 -2902,0.707107,0.000000,0.000000,0.707107 -2903,0.707107,0.000000,0.000000,0.707107 -2904,0.707107,0.000000,0.000000,0.707107 -2905,0.707107,0.000000,0.000000,0.707107 -2906,0.707107,0.000000,0.000000,0.707107 -2907,0.707107,0.000000,0.000000,0.707107 -2908,0.707107,0.000000,0.000000,0.707107 -2909,0.707107,0.000000,0.000000,0.707107 -2910,0.707107,0.000000,0.000000,0.707107 -2911,0.707107,0.000000,0.000000,0.707107 -2912,0.707107,0.000000,0.000000,0.707107 -2913,0.707107,0.000000,0.000000,0.707107 -2914,0.707107,0.000000,0.000000,0.707107 -2915,0.707107,0.000000,0.000000,0.707107 -2916,0.707107,0.000000,0.000000,0.707107 -2917,0.707107,0.000000,0.000000,0.707107 -2918,0.707107,0.000000,0.000000,0.707107 -2919,0.707107,0.000000,0.000000,0.707107 -2920,0.707107,0.000000,0.000000,0.707107 -2921,0.707107,0.000000,0.000000,0.707107 -2922,0.707107,0.000000,0.000000,0.707107 -2923,0.707107,0.000000,0.000000,0.707107 -2924,0.707107,0.000000,0.000000,0.707107 -2925,0.707107,0.000000,0.000000,0.707107 -2926,0.707107,0.000000,0.000000,0.707107 -2927,0.707107,0.000000,0.000000,0.707107 -2928,0.707107,0.000000,0.000000,0.707107 -2929,0.707107,0.000000,0.000000,0.707107 -2930,0.707107,0.000000,0.000000,0.707107 -2931,0.707107,0.000000,0.000000,0.707107 -2932,0.707107,0.000000,0.000000,0.707107 -2933,0.707107,0.000000,0.000000,0.707107 -2934,0.707107,0.000000,0.000000,0.707107 -2935,0.707107,0.000000,0.000000,0.707107 -2936,0.707107,0.000000,0.000000,0.707107 -2937,0.707107,0.000000,0.000000,0.707107 -2938,0.707107,0.000000,0.000000,0.707107 -2939,0.707107,0.000000,0.000000,0.707107 -2940,0.707107,0.000000,0.000000,0.707107 -2941,0.707107,0.000000,0.000000,0.707107 -2942,0.707107,0.000000,0.000000,0.707107 -2943,0.707107,0.000000,0.000000,0.707107 -2944,0.707107,0.000000,0.000000,0.707107 -2945,0.707107,0.000000,0.000000,0.707107 -2946,0.707107,0.000000,0.000000,0.707107 -2947,0.707107,0.000000,0.000000,0.707107 -2948,0.707107,0.000000,0.000000,0.707107 -2949,0.707107,0.000000,0.000000,0.707107 -2950,0.707107,0.000000,0.000000,0.707107 -2951,0.707107,0.000000,0.000000,0.707107 -2952,0.707107,0.000000,0.000000,0.707107 -2953,0.707107,0.000000,0.000000,0.707107 -2954,0.707107,0.000000,0.000000,0.707107 -2955,0.707107,0.000000,0.000000,0.707107 -2956,0.707107,0.000000,0.000000,0.707107 -2957,0.707107,0.000000,0.000000,0.707107 -2958,0.707107,0.000000,0.000000,0.707107 -2959,0.707107,0.000000,0.000000,0.707107 -2960,0.707107,0.000000,0.000000,0.707107 -2961,0.707107,0.000000,0.000000,0.707107 -2962,0.707107,0.000000,0.000000,0.707107 -2963,0.707107,0.000000,0.000000,0.707107 -2964,0.707107,0.000000,0.000000,0.707107 -2965,0.707107,0.000000,0.000000,0.707107 -2966,0.707107,0.000000,0.000000,0.707107 -2967,0.707107,0.000000,0.000000,0.707107 -2968,0.707107,0.000000,0.000000,0.707107 -2969,0.707107,0.000000,0.000000,0.707107 -2970,0.707107,0.000000,0.000000,0.707107 -2971,0.707107,0.000000,0.000000,0.707107 -2972,0.707107,0.000000,0.000000,0.707107 -2973,0.707107,0.000000,0.000000,0.707107 -2974,0.707107,0.000000,0.000000,0.707107 -2975,0.707107,0.000000,0.000000,0.707107 -2976,0.707107,0.000000,0.000000,0.707107 -2977,0.707107,0.000000,0.000000,0.707107 -2978,0.707107,0.000000,0.000000,0.707107 -2979,0.707107,0.000000,0.000000,0.707107 -2980,0.707107,0.000000,0.000000,0.707107 -2981,0.707107,0.000000,0.000000,0.707107 -2982,0.707107,0.000000,0.000000,0.707107 -2983,0.707107,0.000000,0.000000,0.707107 -2984,0.707107,0.000000,0.000000,0.707107 -2985,0.707107,0.000000,0.000000,0.707107 -2986,0.707107,0.000000,0.000000,0.707107 -2987,0.707107,0.000000,0.000000,0.707107 -2988,0.707107,0.000000,0.000000,0.707107 -2989,0.707107,0.000000,0.000000,0.707107 -2990,0.707107,0.000000,0.000000,0.707107 -2991,0.707107,0.000000,0.000000,0.707107 -2992,0.707107,0.000000,0.000000,0.707107 -2993,0.707107,0.000000,0.000000,0.707107 -2994,0.707107,0.000000,0.000000,0.707107 -2995,0.707107,0.000000,0.000000,0.707107 -2996,0.707107,0.000000,0.000000,0.707107 -2997,0.707107,0.000000,0.000000,0.707107 -2998,0.707107,0.000000,0.000000,0.707107 -2999,0.707107,0.000000,0.000000,0.707107 -3000,0.707107,0.000000,0.000000,0.707107 -3001,0.707107,0.000000,0.000000,0.707107 -3002,0.707107,0.000000,0.000000,0.707107 -3003,0.707107,0.000000,0.000000,0.707107 -3004,0.707107,0.000000,0.000000,0.707107 -3005,0.707107,0.000000,0.000000,0.707107 -3006,0.707107,0.000000,0.000000,0.707107 -3007,0.707107,0.000000,0.000000,0.707107 -3008,0.707107,0.000000,0.000000,0.707107 -3009,0.707107,0.000000,0.000000,0.707107 -3010,0.707107,0.000000,0.000000,0.707107 -3011,0.707107,0.000000,0.000000,0.707107 -3012,0.707107,0.000000,0.000000,0.707107 -3013,0.707107,0.000000,0.000000,0.707107 -3014,0.707107,0.000000,0.000000,0.707107 -3015,0.707107,0.000000,0.000000,0.707107 -3016,0.707107,0.000000,0.000000,0.707107 -3017,0.707107,0.000000,0.000000,0.707107 -3018,0.707107,0.000000,0.000000,0.707107 -3019,0.707107,0.000000,0.000000,0.707107 -3020,0.707107,0.000000,0.000000,0.707107 -3021,0.707107,0.000000,0.000000,0.707107 -3022,0.707107,0.000000,0.000000,0.707107 -3023,0.707107,0.000000,0.000000,0.707107 -3024,0.707107,0.000000,0.000000,0.707107 -3025,0.707107,0.000000,0.000000,0.707107 -3026,0.707107,0.000000,0.000000,0.707107 -3027,0.707107,0.000000,0.000000,0.707107 -3028,0.707107,0.000000,0.000000,0.707107 -3029,0.707107,0.000000,0.000000,0.707107 -3030,0.707107,0.000000,0.000000,0.707107 -3031,0.707107,0.000000,0.000000,0.707107 -3032,0.707107,0.000000,0.000000,0.707107 -3033,0.707107,0.000000,0.000000,0.707107 -3034,0.707107,0.000000,0.000000,0.707107 -3035,0.707107,0.000000,0.000000,0.707107 -3036,0.707107,0.000000,0.000000,0.707107 -3037,0.707107,0.000000,0.000000,0.707107 -3038,0.707107,0.000000,0.000000,0.707107 -3039,0.707107,0.000000,0.000000,0.707107 -3040,0.707107,0.000000,0.000000,0.707107 -3041,0.707107,0.000000,0.000000,0.707107 -3042,0.707107,0.000000,0.000000,0.707107 -3043,0.707107,0.000000,0.000000,0.707107 -3044,0.707107,0.000000,0.000000,0.707107 -3045,0.707107,0.000000,0.000000,0.707107 -3046,0.707107,0.000000,0.000000,0.707107 -3047,0.707107,0.000000,0.000000,0.707107 -3048,0.707107,0.000000,0.000000,0.707107 -3049,0.707107,0.000000,0.000000,0.707107 -3050,0.707107,0.000000,0.000000,0.707107 -3051,0.707107,0.000000,0.000000,0.707107 -3052,0.707107,0.000000,0.000000,0.707107 -3053,0.707107,0.000000,0.000000,0.707107 -3054,0.707107,0.000000,0.000000,0.707107 -3055,0.707107,0.000000,0.000000,0.707107 -3056,0.707107,0.000000,0.000000,0.707107 -3057,0.707107,0.000000,0.000000,0.707107 -3058,0.707107,0.000000,0.000000,0.707107 -3059,0.707107,0.000000,0.000000,0.707107 -3060,0.707107,0.000000,0.000000,0.707107 -3061,0.707107,0.000000,0.000000,0.707107 -3062,0.707107,0.000000,0.000000,0.707107 -3063,0.707107,0.000000,0.000000,0.707107 -3064,0.707107,0.000000,0.000000,0.707107 -3065,0.707107,0.000000,0.000000,0.707107 -3066,0.707107,0.000000,0.000000,0.707107 -3067,0.707107,0.000000,0.000000,0.707107 -3068,0.707107,0.000000,0.000000,0.707107 -3069,0.707107,0.000000,0.000000,0.707107 -3070,0.707107,0.000000,0.000000,0.707107 -3071,0.707107,0.000000,0.000000,0.707107 -3072,0.707107,0.000000,0.000000,0.707107 -3073,0.707107,0.000000,0.000000,0.707107 -3074,0.707107,0.000000,0.000000,0.707107 -3075,0.707107,0.000000,0.000000,0.707107 -3076,0.707107,0.000000,0.000000,0.707107 -3077,0.707107,0.000000,0.000000,0.707107 -3078,0.707107,0.000000,0.000000,0.707107 -3079,0.707107,0.000000,0.000000,0.707107 -3080,0.707107,0.000000,0.000000,0.707107 -3081,0.707107,0.000000,0.000000,0.707107 -3082,0.707107,0.000000,0.000000,0.707107 -3083,0.707107,0.000000,0.000000,0.707107 -3084,0.707107,0.000000,0.000000,0.707107 -3085,0.707107,0.000000,0.000000,0.707107 -3086,0.707107,0.000000,0.000000,0.707107 -3087,0.707107,0.000000,0.000000,0.707107 -3088,0.707107,0.000000,0.000000,0.707107 -3089,0.707107,0.000000,0.000000,0.707107 -3090,0.707107,0.000000,0.000000,0.707107 -3091,0.707107,0.000000,0.000000,0.707107 -3092,0.707107,0.000000,0.000000,0.707107 -3093,0.707107,0.000000,0.000000,0.707107 -3094,0.707107,0.000000,0.000000,0.707107 -3095,0.707107,0.000000,0.000000,0.707107 -3096,0.707107,0.000000,0.000000,0.707107 -3097,0.707107,0.000000,0.000000,0.707107 -3098,0.707107,0.000000,0.000000,0.707107 -3099,0.707107,0.000000,0.000000,0.707107 -3100,0.707107,0.000000,0.000000,0.707107 -3101,0.707107,0.000000,0.000000,0.707107 -3102,0.707107,0.000000,0.000000,0.707107 -3103,0.707107,0.000000,0.000000,0.707107 -3104,0.707107,0.000000,0.000000,0.707107 -3105,0.707107,0.000000,0.000000,0.707107 -3106,0.707107,0.000000,0.000000,0.707107 -3107,0.707107,0.000000,0.000000,0.707107 -3108,0.707107,0.000000,0.000000,0.707107 -3109,0.707107,0.000000,0.000000,0.707107 -3110,0.707107,0.000000,0.000000,0.707107 -3111,0.707107,0.000000,0.000000,0.707107 -3112,0.707107,0.000000,0.000000,0.707107 -3113,0.707107,0.000000,0.000000,0.707107 -3114,0.707107,0.000000,0.000000,0.707107 -3115,0.707107,0.000000,0.000000,0.707107 -3116,0.707107,0.000000,0.000000,0.707107 -3117,0.707107,0.000000,0.000000,0.707107 -3118,0.707107,0.000000,0.000000,0.707107 -3119,0.707107,0.000000,0.000000,0.707107 -3120,0.707107,0.000000,0.000000,0.707107 -3121,0.707107,0.000000,0.000000,0.707107 -3122,0.707107,0.000000,0.000000,0.707107 -3123,0.707107,0.000000,0.000000,0.707107 -3124,0.707107,0.000000,0.000000,0.707107 -3125,0.707107,0.000000,0.000000,0.707107 -3126,0.707107,0.000000,0.000000,0.707107 -3127,0.707107,0.000000,0.000000,0.707107 -3128,0.707107,0.000000,0.000000,0.707107 -3129,0.707107,0.000000,0.000000,0.707107 -3130,0.707107,0.000000,0.000000,0.707107 -3131,0.707107,0.000000,0.000000,0.707107 -3132,0.707107,0.000000,0.000000,0.707107 -3133,0.707107,0.000000,0.000000,0.707107 -3134,0.707107,0.000000,0.000000,0.707107 -3135,0.707107,0.000000,0.000000,0.707107 -3136,0.707107,0.000000,0.000000,0.707107 -3137,0.707107,0.000000,0.000000,0.707107 -3138,0.707107,0.000000,0.000000,0.707107 -3139,0.707107,0.000000,0.000000,0.707107 -3140,0.707107,0.000000,0.000000,0.707107 -3141,0.707107,0.000000,0.000000,0.707107 -3142,0.707107,0.000000,0.000000,0.707107 -3143,0.707107,0.000000,0.000000,0.707107 -3144,0.707107,0.000000,0.000000,0.707107 -3145,0.707107,0.000000,0.000000,0.707107 -3146,0.707107,0.000000,0.000000,0.707107 -3147,0.707107,0.000000,0.000000,0.707107 -3148,0.707107,0.000000,0.000000,0.707107 -3149,0.707107,0.000000,0.000000,0.707107 -3150,0.707107,0.000000,0.000000,0.707107 -3151,0.707107,0.000000,0.000000,0.707107 -3152,0.707107,0.000000,0.000000,0.707107 -3153,0.707107,0.000000,0.000000,0.707107 -3154,0.707107,0.000000,0.000000,0.707107 -3155,0.707107,0.000000,0.000000,0.707107 -3156,0.707107,0.000000,0.000000,0.707107 -3157,0.707107,0.000000,0.000000,0.707107 -3158,0.707107,0.000000,0.000000,0.707107 -3159,0.707107,0.000000,0.000000,0.707107 -3160,0.707107,0.000000,0.000000,0.707107 -3161,0.707107,0.000000,0.000000,0.707107 -3162,0.707107,0.000000,0.000000,0.707107 -3163,0.707107,0.000000,0.000000,0.707107 -3164,0.707107,0.000000,0.000000,0.707107 -3165,0.707107,0.000000,0.000000,0.707107 -3166,0.707107,0.000000,0.000000,0.707107 -3167,0.707107,0.000000,0.000000,0.707107 -3168,0.707107,0.000000,0.000000,0.707107 -3169,0.707107,0.000000,0.000000,0.707107 -3170,0.707107,0.000000,0.000000,0.707107 -3171,0.707107,0.000000,0.000000,0.707107 -3172,0.707107,0.000000,0.000000,0.707107 -3173,0.707107,0.000000,0.000000,0.707107 -3174,0.707107,0.000000,0.000000,0.707107 -3175,0.707107,0.000000,0.000000,0.707107 -3176,0.707107,0.000000,0.000000,0.707107 -3177,0.707107,0.000000,0.000000,0.707107 -3178,0.707107,0.000000,0.000000,0.707107 -3179,0.707107,0.000000,0.000000,0.707107 -3180,0.707107,0.000000,0.000000,0.707107 -3181,0.707107,0.000000,0.000000,0.707107 -3182,0.707107,0.000000,0.000000,0.707107 -3183,0.707107,0.000000,0.000000,0.707107 -3184,0.707107,0.000000,0.000000,0.707107 -3185,0.707107,0.000000,0.000000,0.707107 -3186,0.707107,0.000000,0.000000,0.707107 -3187,0.707107,0.000000,0.000000,0.707107 -3188,0.707107,0.000000,0.000000,0.707107 -3189,0.707107,0.000000,0.000000,0.707107 -3190,0.707107,0.000000,0.000000,0.707107 -3191,0.707107,0.000000,0.000000,0.707107 -3192,0.707107,0.000000,0.000000,0.707107 -3193,0.707107,0.000000,0.000000,0.707107 -3194,0.707107,0.000000,0.000000,0.707107 -3195,0.707107,0.000000,0.000000,0.707107 -3196,0.707107,0.000000,0.000000,0.707107 -3197,0.707107,0.000000,0.000000,0.707107 -3198,0.707107,0.000000,0.000000,0.707107 -3199,0.707107,0.000000,0.000000,0.707107 -3200,0.707107,0.000000,0.000000,0.707107 -3201,0.707107,0.000000,0.000000,0.707107 -3202,0.707107,0.000000,0.000000,0.707107 -3203,0.707107,0.000000,0.000000,0.707107 -3204,0.707107,0.000000,0.000000,0.707107 -3205,0.707107,0.000000,0.000000,0.707107 -3206,0.707107,0.000000,0.000000,0.707107 -3207,0.707107,0.000000,0.000000,0.707107 -3208,0.707107,0.000000,0.000000,0.707107 -3209,0.707107,0.000000,0.000000,0.707107 -3210,0.707107,0.000000,0.000000,0.707107 -3211,0.707107,0.000000,0.000000,0.707107 -3212,0.707107,0.000000,0.000000,0.707107 -3213,0.707107,0.000000,0.000000,0.707107 -3214,0.707107,0.000000,0.000000,0.707107 -3215,0.707107,0.000000,0.000000,0.707107 -3216,0.707107,0.000000,0.000000,0.707107 -3217,0.707107,0.000000,0.000000,0.707107 -3218,0.707107,0.000000,0.000000,0.707107 -3219,0.707107,0.000000,0.000000,0.707107 -3220,0.707107,0.000000,0.000000,0.707107 -3221,0.707107,0.000000,0.000000,0.707107 -3222,0.707107,0.000000,0.000000,0.707107 -3223,0.707107,0.000000,0.000000,0.707107 -3224,0.707107,0.000000,0.000000,0.707107 -3225,0.707107,0.000000,0.000000,0.707107 -3226,0.707107,0.000000,0.000000,0.707107 -3227,0.707107,0.000000,0.000000,0.707107 -3228,0.707107,0.000000,0.000000,0.707107 -3229,0.707107,0.000000,0.000000,0.707107 -3230,0.707107,0.000000,0.000000,0.707107 -3231,0.707107,0.000000,0.000000,0.707107 -3232,0.707107,0.000000,0.000000,0.707107 -3233,0.707107,0.000000,0.000000,0.707107 -3234,0.707107,0.000000,0.000000,0.707107 -3235,0.707107,0.000000,0.000000,0.707107 -3236,0.707107,0.000000,0.000000,0.707107 -3237,0.707107,0.000000,0.000000,0.707107 -3238,0.707107,0.000000,0.000000,0.707107 -3239,0.707107,0.000000,0.000000,0.707107 -3240,0.707107,0.000000,0.000000,0.707107 -3241,0.707107,0.000000,0.000000,0.707107 -3242,0.707107,0.000000,0.000000,0.707107 -3243,0.707107,0.000000,0.000000,0.707107 -3244,0.707107,0.000000,0.000000,0.707107 -3245,0.707107,0.000000,0.000000,0.707107 -3246,0.707107,0.000000,0.000000,0.707107 -3247,0.707107,0.000000,0.000000,0.707107 -3248,0.707107,0.000000,0.000000,0.707107 -3249,0.707107,0.000000,0.000000,0.707107 -3250,0.707107,0.000000,0.000000,0.707107 -3251,0.707107,0.000000,0.000000,0.707107 -3252,0.707107,0.000000,0.000000,0.707107 -3253,0.707107,0.000000,0.000000,0.707107 -3254,0.707107,0.000000,0.000000,0.707107 -3255,0.707107,0.000000,0.000000,0.707107 -3256,0.707107,0.000000,0.000000,0.707107 -3257,0.707107,0.000000,0.000000,0.707107 -3258,0.707107,0.000000,0.000000,0.707107 -3259,0.707107,0.000000,0.000000,0.707107 -3260,0.707107,0.000000,0.000000,0.707107 -3261,0.707107,0.000000,0.000000,0.707107 -3262,0.707107,0.000000,0.000000,0.707107 -3263,0.707107,0.000000,0.000000,0.707107 -3264,0.707107,0.000000,0.000000,0.707107 -3265,0.707107,0.000000,0.000000,0.707107 -3266,0.707107,0.000000,0.000000,0.707107 -3267,0.707107,0.000000,0.000000,0.707107 -3268,0.707107,0.000000,0.000000,0.707107 -3269,0.707107,0.000000,0.000000,0.707107 -3270,0.707107,0.000000,0.000000,0.707107 -3271,0.707107,0.000000,0.000000,0.707107 -3272,0.707107,0.000000,0.000000,0.707107 -3273,0.707107,0.000000,0.000000,0.707107 -3274,0.707107,0.000000,0.000000,0.707107 -3275,0.707107,0.000000,0.000000,0.707107 -3276,0.707107,0.000000,0.000000,0.707107 -3277,0.707107,0.000000,0.000000,0.707107 -3278,0.707107,0.000000,0.000000,0.707107 -3279,0.707107,0.000000,0.000000,0.707107 -3280,0.707107,0.000000,0.000000,0.707107 -3281,0.707107,0.000000,0.000000,0.707107 -3282,0.707107,0.000000,0.000000,0.707107 -3283,0.707107,0.000000,0.000000,0.707107 -3284,0.707107,0.000000,0.000000,0.707107 -3285,0.707107,0.000000,0.000000,0.707107 -3286,0.707107,0.000000,0.000000,0.707107 -3287,0.707107,0.000000,0.000000,0.707107 -3288,0.707107,0.000000,0.000000,0.707107 -3289,0.707107,0.000000,0.000000,0.707107 -3290,0.707107,0.000000,0.000000,0.707107 -3291,0.707107,0.000000,0.000000,0.707107 -3292,0.707107,0.000000,0.000000,0.707107 -3293,0.707107,0.000000,0.000000,0.707107 -3294,0.707107,0.000000,0.000000,0.707107 -3295,0.707107,0.000000,0.000000,0.707107 -3296,0.707107,0.000000,0.000000,0.707107 -3297,0.707107,0.000000,0.000000,0.707107 -3298,0.707107,0.000000,0.000000,0.707107 -3299,0.707107,0.000000,0.000000,0.707107 -3300,0.707107,0.000000,0.000000,0.707107 -3301,0.707107,0.000000,0.000000,0.707107 -3302,0.707107,0.000000,0.000000,0.707107 -3303,0.707107,0.000000,0.000000,0.707107 -3304,0.707107,0.000000,0.000000,0.707107 -3305,0.707107,0.000000,0.000000,0.707107 -3306,0.707107,0.000000,0.000000,0.707107 -3307,0.707107,0.000000,0.000000,0.707107 -3308,0.707107,0.000000,0.000000,0.707107 -3309,0.707107,0.000000,0.000000,0.707107 -3310,0.707107,0.000000,0.000000,0.707107 -3311,0.707107,0.000000,0.000000,0.707107 -3312,0.707107,0.000000,0.000000,0.707107 -3313,0.707107,0.000000,0.000000,0.707107 -3314,0.707107,0.000000,0.000000,0.707107 -3315,0.707107,0.000000,0.000000,0.707107 -3316,0.707107,0.000000,0.000000,0.707107 -3317,0.707107,0.000000,0.000000,0.707107 -3318,0.707107,0.000000,0.000000,0.707107 -3319,0.707107,0.000000,0.000000,0.707107 -3320,0.707107,0.000000,0.000000,0.707107 -3321,0.707107,0.000000,0.000000,0.707107 -3322,0.707107,0.000000,0.000000,0.707107 -3323,0.707107,0.000000,0.000000,0.707107 -3324,0.707107,0.000000,0.000000,0.707107 -3325,0.707107,0.000000,0.000000,0.707107 -3326,0.707107,0.000000,0.000000,0.707107 -3327,0.707107,0.000000,0.000000,0.707107 -3328,0.707107,0.000000,0.000000,0.707107 -3329,0.707107,0.000000,0.000000,0.707107 -3330,0.707107,0.000000,0.000000,0.707107 -3331,0.707107,0.000000,0.000000,0.707107 -3332,0.707107,0.000000,0.000000,0.707107 -3333,0.707107,0.000000,0.000000,0.707107 -3334,0.707107,0.000000,0.000000,0.707107 -3335,0.707107,0.000000,0.000000,0.707107 -3336,0.707107,0.000000,0.000000,0.707107 -3337,0.707107,0.000000,0.000000,0.707107 -3338,0.707107,0.000000,0.000000,0.707107 -3339,0.707107,0.000000,0.000000,0.707107 -3340,0.707107,0.000000,0.000000,0.707107 -3341,0.707107,0.000000,0.000000,0.707107 -3342,0.707107,0.000000,0.000000,0.707107 -3343,0.707107,0.000000,0.000000,0.707107 -3344,0.707107,0.000000,0.000000,0.707107 -3345,0.707107,0.000000,0.000000,0.707107 -3346,0.707107,0.000000,0.000000,0.707107 -3347,0.707107,0.000000,0.000000,0.707107 -3348,0.707107,0.000000,0.000000,0.707107 -3349,0.707107,0.000000,0.000000,0.707107 -3350,0.707107,0.000000,0.000000,0.707107 -3351,0.707107,0.000000,0.000000,0.707107 -3352,0.707107,0.000000,0.000000,0.707107 -3353,0.707107,0.000000,0.000000,0.707107 -3354,0.707107,0.000000,0.000000,0.707107 -3355,0.707107,0.000000,0.000000,0.707107 -3356,0.707107,0.000000,0.000000,0.707107 -3357,0.707107,0.000000,0.000000,0.707107 -3358,0.707107,0.000000,0.000000,0.707107 -3359,0.707107,0.000000,0.000000,0.707107 -3360,0.707107,0.000000,0.000000,0.707107 -3361,0.707107,0.000000,0.000000,0.707107 -3362,0.707107,0.000000,0.000000,0.707107 -3363,0.707107,0.000000,0.000000,0.707107 -3364,0.707107,0.000000,0.000000,0.707107 -3365,0.707107,0.000000,0.000000,0.707107 -3366,0.707107,0.000000,0.000000,0.707107 -3367,0.707107,0.000000,0.000000,0.707107 -3368,0.707107,0.000000,0.000000,0.707107 -3369,0.707107,0.000000,0.000000,0.707107 -3370,0.707107,0.000000,0.000000,0.707107 -3371,0.707107,0.000000,0.000000,0.707107 -3372,0.707107,0.000000,0.000000,0.707107 -3373,0.707107,0.000000,0.000000,0.707107 -3374,0.707107,0.000000,0.000000,0.707107 -3375,0.707107,0.000000,0.000000,0.707107 -3376,0.707107,0.000000,0.000000,0.707107 -3377,0.707107,0.000000,0.000000,0.707107 -3378,0.707107,0.000000,0.000000,0.707107 -3379,0.707107,0.000000,0.000000,0.707107 -3380,0.707107,0.000000,0.000000,0.707107 -3381,0.707107,0.000000,0.000000,0.707107 -3382,0.707107,0.000000,0.000000,0.707107 -3383,0.707107,0.000000,0.000000,0.707107 -3384,0.707107,0.000000,0.000000,0.707107 -3385,0.707107,0.000000,0.000000,0.707107 -3386,0.707107,0.000000,0.000000,0.707107 -3387,0.707107,0.000000,0.000000,0.707107 -3388,0.707107,0.000000,0.000000,0.707107 -3389,0.707107,0.000000,0.000000,0.707107 -3390,0.707107,0.000000,0.000000,0.707107 -3391,0.707107,0.000000,0.000000,0.707107 -3392,0.707107,0.000000,0.000000,0.707107 -3393,0.707107,0.000000,0.000000,0.707107 -3394,0.707107,0.000000,0.000000,0.707107 -3395,0.707107,0.000000,0.000000,0.707107 -3396,0.707107,0.000000,0.000000,0.707107 -3397,0.707107,0.000000,0.000000,0.707107 -3398,0.707107,0.000000,0.000000,0.707107 -3399,0.707107,0.000000,0.000000,0.707107 -3400,0.707107,0.000000,0.000000,0.707107 -3401,0.707107,0.000000,0.000000,0.707107 -3402,0.707107,0.000000,0.000000,0.707107 -3403,0.707107,0.000000,0.000000,0.707107 -3404,0.707107,0.000000,0.000000,0.707107 -3405,0.707107,0.000000,0.000000,0.707107 -3406,0.707107,0.000000,0.000000,0.707107 -3407,0.707107,0.000000,0.000000,0.707107 -3408,0.707107,0.000000,0.000000,0.707107 -3409,0.707107,0.000000,0.000000,0.707107 -3410,0.707107,0.000000,0.000000,0.707107 -3411,0.707107,0.000000,0.000000,0.707107 -3412,0.707107,0.000000,0.000000,0.707107 -3413,0.707107,0.000000,0.000000,0.707107 -3414,0.707107,0.000000,0.000000,0.707107 -3415,0.707107,0.000000,0.000000,0.707107 -3416,0.707107,0.000000,0.000000,0.707107 -3417,0.707107,0.000000,0.000000,0.707107 -3418,0.707107,0.000000,0.000000,0.707107 -3419,0.707107,0.000000,0.000000,0.707107 -3420,0.707107,0.000000,0.000000,0.707107 -3421,0.707107,0.000000,0.000000,0.707107 -3422,0.707107,0.000000,0.000000,0.707107 -3423,0.707107,0.000000,0.000000,0.707107 -3424,0.707107,0.000000,0.000000,0.707107 -3425,0.707107,0.000000,0.000000,0.707107 -3426,0.707107,0.000000,0.000000,0.707107 -3427,0.707107,0.000000,0.000000,0.707107 -3428,0.707107,0.000000,0.000000,0.707107 -3429,0.707107,0.000000,0.000000,0.707107 -3430,0.707107,0.000000,0.000000,0.707107 -3431,0.707107,0.000000,0.000000,0.707107 -3432,0.707107,0.000000,0.000000,0.707107 -3433,0.707107,0.000000,0.000000,0.707107 -3434,0.707107,0.000000,0.000000,0.707107 -3435,0.707107,0.000000,0.000000,0.707107 -3436,0.707107,0.000000,0.000000,0.707107 -3437,0.707107,0.000000,0.000000,0.707107 -3438,0.707107,0.000000,0.000000,0.707107 -3439,0.707107,0.000000,0.000000,0.707107 -3440,0.707107,0.000000,0.000000,0.707107 -3441,0.707107,0.000000,0.000000,0.707107 -3442,0.707107,0.000000,0.000000,0.707107 -3443,0.707107,0.000000,0.000000,0.707107 -3444,0.707107,0.000000,0.000000,0.707107 -3445,0.707107,0.000000,0.000000,0.707107 -3446,0.707107,0.000000,0.000000,0.707107 -3447,0.707107,0.000000,0.000000,0.707107 -3448,0.707107,0.000000,0.000000,0.707107 -3449,0.707107,0.000000,0.000000,0.707107 -3450,0.707107,0.000000,0.000000,0.707107 -3451,0.707107,0.000000,0.000000,0.707107 -3452,0.707107,0.000000,0.000000,0.707107 -3453,0.707107,0.000000,0.000000,0.707107 -3454,0.707107,0.000000,0.000000,0.707107 -3455,0.707107,0.000000,0.000000,0.707107 -3456,0.707107,0.000000,0.000000,0.707107 -3457,0.707107,0.000000,0.000000,0.707107 -3458,0.707107,0.000000,0.000000,0.707107 -3459,0.707107,0.000000,0.000000,0.707107 -3460,0.707107,0.000000,0.000000,0.707107 -3461,0.707107,0.000000,0.000000,0.707107 -3462,0.707107,0.000000,0.000000,0.707107 -3463,0.707107,0.000000,0.000000,0.707107 -3464,0.707107,0.000000,0.000000,0.707107 -3465,0.707107,0.000000,0.000000,0.707107 -3466,0.707107,0.000000,0.000000,0.707107 -3467,0.707107,0.000000,0.000000,0.707107 -3468,0.707107,0.000000,0.000000,0.707107 -3469,0.707107,0.000000,0.000000,0.707107 -3470,0.707107,0.000000,0.000000,0.707107 -3471,0.707107,0.000000,0.000000,0.707107 -3472,0.707107,0.000000,0.000000,0.707107 -3473,0.707107,0.000000,0.000000,0.707107 -3474,0.707107,0.000000,0.000000,0.707107 -3475,0.707107,0.000000,0.000000,0.707107 -3476,0.707107,0.000000,0.000000,0.707107 -3477,0.707107,0.000000,0.000000,0.707107 -3478,0.707107,0.000000,0.000000,0.707107 -3479,0.707107,0.000000,0.000000,0.707107 -3480,0.707107,0.000000,0.000000,0.707107 -3481,0.707107,0.000000,0.000000,0.707107 -3482,0.707107,0.000000,0.000000,0.707107 -3483,0.707107,0.000000,0.000000,0.707107 -3484,0.707107,0.000000,0.000000,0.707107 -3485,0.707107,0.000000,0.000000,0.707107 -3486,0.707107,0.000000,0.000000,0.707107 -3487,0.707107,0.000000,0.000000,0.707107 -3488,0.707107,0.000000,0.000000,0.707107 -3489,0.707107,0.000000,0.000000,0.707107 -3490,0.707107,0.000000,0.000000,0.707107 -3491,0.707107,0.000000,0.000000,0.707107 -3492,0.707107,0.000000,0.000000,0.707107 -3493,0.707107,0.000000,0.000000,0.707107 -3494,0.707107,0.000000,0.000000,0.707107 -3495,0.707107,0.000000,0.000000,0.707107 -3496,0.707107,0.000000,0.000000,0.707107 -3497,0.707107,0.000000,0.000000,0.707107 -3498,0.707107,0.000000,0.000000,0.707107 -3499,0.707107,0.000000,0.000000,0.707107 -3500,0.707107,0.000000,0.000000,0.707107 -3501,0.707107,0.000000,0.000000,0.707107 -3502,0.707107,0.000000,0.000000,0.707107 -3503,0.707107,0.000000,0.000000,0.707107 -3504,0.707107,0.000000,0.000000,0.707107 -3505,0.707107,0.000000,0.000000,0.707107 -3506,0.707107,0.000000,0.000000,0.707107 -3507,0.707107,0.000000,0.000000,0.707107 -3508,0.707107,0.000000,0.000000,0.707107 -3509,0.707107,0.000000,0.000000,0.707107 -3510,0.707107,0.000000,0.000000,0.707107 -3511,0.707107,0.000000,0.000000,0.707107 -3512,0.707107,0.000000,0.000000,0.707107 -3513,0.707107,0.000000,0.000000,0.707107 -3514,0.707107,0.000000,0.000000,0.707107 -3515,0.707107,0.000000,0.000000,0.707107 -3516,0.707107,0.000000,0.000000,0.707107 -3517,0.707107,0.000000,0.000000,0.707107 -3518,0.707107,0.000000,0.000000,0.707107 -3519,0.707107,0.000000,0.000000,0.707107 -3520,0.707107,0.000000,0.000000,0.707107 -3521,0.707107,0.000000,0.000000,0.707107 -3522,0.707107,0.000000,0.000000,0.707107 -3523,0.707107,0.000000,0.000000,0.707107 -3524,0.707107,0.000000,0.000000,0.707107 -3525,0.707107,0.000000,0.000000,0.707107 -3526,0.707107,0.000000,0.000000,0.707107 -3527,0.707107,0.000000,0.000000,0.707107 -3528,0.707107,0.000000,0.000000,0.707107 -3529,0.707107,0.000000,0.000000,0.707107 -3530,0.707107,0.000000,0.000000,0.707107 -3531,0.707107,0.000000,0.000000,0.707107 -3532,0.707107,0.000000,0.000000,0.707107 -3533,0.707107,0.000000,0.000000,0.707107 -3534,0.707107,0.000000,0.000000,0.707107 -3535,0.707107,0.000000,0.000000,0.707107 -3536,0.707107,0.000000,0.000000,0.707107 -3537,0.707107,0.000000,0.000000,0.707107 -3538,0.707107,0.000000,0.000000,0.707107 -3539,0.707107,0.000000,0.000000,0.707107 -3540,0.707107,0.000000,0.000000,0.707107 -3541,0.707107,0.000000,0.000000,0.707107 -3542,0.707107,0.000000,0.000000,0.707107 -3543,0.707107,0.000000,0.000000,0.707107 -3544,0.707107,0.000000,0.000000,0.707107 -3545,0.707107,0.000000,0.000000,0.707107 -3546,0.707107,0.000000,0.000000,0.707107 -3547,0.707107,0.000000,0.000000,0.707107 -3548,0.707107,0.000000,0.000000,0.707107 -3549,0.707107,0.000000,0.000000,0.707107 -3550,0.707107,0.000000,0.000000,0.707107 -3551,0.707107,0.000000,0.000000,0.707107 -3552,0.707107,0.000000,0.000000,0.707107 -3553,0.707107,0.000000,0.000000,0.707107 -3554,0.707107,0.000000,0.000000,0.707107 -3555,0.707107,0.000000,0.000000,0.707107 -3556,0.707107,0.000000,0.000000,0.707107 -3557,0.707107,0.000000,0.000000,0.707107 -3558,0.707107,0.000000,0.000000,0.707107 -3559,0.707107,0.000000,0.000000,0.707107 -3560,0.707107,0.000000,0.000000,0.707107 -3561,0.707107,0.000000,0.000000,0.707107 -3562,0.707107,0.000000,0.000000,0.707107 -3563,0.707107,0.000000,0.000000,0.707107 -3564,0.707107,0.000000,0.000000,0.707107 -3565,0.707107,0.000000,0.000000,0.707107 -3566,0.707107,0.000000,0.000000,0.707107 -3567,0.707107,0.000000,0.000000,0.707107 -3568,0.707107,0.000000,0.000000,0.707107 -3569,0.707107,0.000000,0.000000,0.707107 -3570,0.707107,0.000000,0.000000,0.707107 -3571,0.707107,0.000000,0.000000,0.707107 -3572,0.707107,0.000000,0.000000,0.707107 -3573,0.707107,0.000000,0.000000,0.707107 -3574,0.707107,0.000000,0.000000,0.707107 -3575,0.707107,0.000000,0.000000,0.707107 -3576,0.707107,0.000000,0.000000,0.707107 -3577,0.707107,0.000000,0.000000,0.707107 -3578,0.707107,0.000000,0.000000,0.707107 -3579,0.707107,0.000000,0.000000,0.707107 -3580,0.707107,0.000000,0.000000,0.707107 -3581,0.707107,0.000000,0.000000,0.707107 -3582,0.707107,0.000000,0.000000,0.707107 -3583,0.707107,0.000000,0.000000,0.707107 -3584,0.707107,0.000000,0.000000,0.707107 -3585,0.707107,0.000000,0.000000,0.707107 -3586,0.707107,0.000000,0.000000,0.707107 -3587,0.707107,0.000000,0.000000,0.707107 -3588,0.707107,0.000000,0.000000,0.707107 -3589,0.707107,0.000000,0.000000,0.707107 -3590,0.707107,0.000000,0.000000,0.707107 -3591,0.707107,0.000000,0.000000,0.707107 -3592,0.707107,0.000000,0.000000,0.707107 -3593,0.707107,0.000000,0.000000,0.707107 -3594,0.707107,0.000000,0.000000,0.707107 -3595,0.707107,0.000000,0.000000,0.707107 -3596,0.707107,0.000000,0.000000,0.707107 -3597,0.707107,0.000000,0.000000,0.707107 -3598,0.707107,0.000000,0.000000,0.707107 -3599,0.707107,0.000000,0.000000,0.707107 -3600,0.707107,0.000000,0.000000,0.707107 -3601,0.707107,0.000000,0.000000,0.707107 -3602,0.707107,0.000000,0.000000,0.707107 -3603,0.707107,0.000000,0.000000,0.707107 -3604,0.707107,0.000000,0.000000,0.707107 -3605,0.707107,0.000000,0.000000,0.707107 -3606,0.707107,0.000000,0.000000,0.707107 -3607,0.707107,0.000000,0.000000,0.707107 -3608,0.707107,0.000000,0.000000,0.707107 -3609,0.707107,0.000000,0.000000,0.707107 -3610,0.707107,0.000000,0.000000,0.707107 -3611,0.707107,0.000000,0.000000,0.707107 -3612,0.707107,0.000000,0.000000,0.707107 -3613,0.707107,0.000000,0.000000,0.707107 -3614,0.707107,0.000000,0.000000,0.707107 -3615,0.707107,0.000000,0.000000,0.707107 -3616,0.707107,0.000000,0.000000,0.707107 -3617,0.707107,0.000000,0.000000,0.707107 -3618,0.707107,0.000000,0.000000,0.707107 -3619,0.707107,0.000000,0.000000,0.707107 -3620,0.707107,0.000000,0.000000,0.707107 -3621,0.707107,0.000000,0.000000,0.707107 -3622,0.707107,0.000000,0.000000,0.707107 -3623,0.707107,0.000000,0.000000,0.707107 -3624,0.707107,0.000000,0.000000,0.707107 -3625,0.707107,0.000000,0.000000,0.707107 -3626,0.707107,0.000000,0.000000,0.707107 -3627,0.707107,0.000000,0.000000,0.707107 -3628,0.707107,0.000000,0.000000,0.707107 -3629,0.707107,0.000000,0.000000,0.707107 -3630,0.707107,0.000000,0.000000,0.707107 -3631,0.707107,0.000000,0.000000,0.707107 -3632,0.707107,0.000000,0.000000,0.707107 -3633,0.707107,0.000000,0.000000,0.707107 -3634,0.707107,0.000000,0.000000,0.707107 -3635,0.707107,0.000000,0.000000,0.707107 -3636,0.707107,0.000000,0.000000,0.707107 -3637,0.707107,0.000000,0.000000,0.707107 -3638,0.707107,0.000000,0.000000,0.707107 -3639,0.707107,0.000000,0.000000,0.707107 -3640,0.707107,0.000000,0.000000,0.707107 -3641,0.707107,0.000000,0.000000,0.707107 -3642,0.707107,0.000000,0.000000,0.707107 -3643,0.707107,0.000000,0.000000,0.707107 -3644,0.707107,0.000000,0.000000,0.707107 -3645,0.707107,0.000000,0.000000,0.707107 -3646,0.707107,0.000000,0.000000,0.707107 -3647,0.707107,0.000000,0.000000,0.707107 -3648,0.707107,0.000000,0.000000,0.707107 -3649,0.707107,0.000000,0.000000,0.707107 -3650,0.707107,0.000000,0.000000,0.707107 -3651,0.707107,0.000000,0.000000,0.707107 -3652,0.707107,0.000000,0.000000,0.707107 -3653,0.707107,0.000000,0.000000,0.707107 -3654,0.707107,0.000000,0.000000,0.707107 -3655,0.707107,0.000000,0.000000,0.707107 -3656,0.707107,0.000000,0.000000,0.707107 -3657,0.707107,0.000000,0.000000,0.707107 -3658,0.707107,0.000000,0.000000,0.707107 -3659,0.707107,0.000000,0.000000,0.707107 -3660,0.707107,0.000000,0.000000,0.707107 -3661,0.707107,0.000000,0.000000,0.707107 -3662,0.707107,0.000000,0.000000,0.707107 -3663,0.707107,0.000000,0.000000,0.707107 -3664,0.707107,0.000000,0.000000,0.707107 -3665,0.707107,0.000000,0.000000,0.707107 -3666,0.707107,0.000000,0.000000,0.707107 -3667,0.707107,0.000000,0.000000,0.707107 -3668,0.707107,0.000000,0.000000,0.707107 -3669,0.707107,0.000000,0.000000,0.707107 -3670,0.707107,0.000000,0.000000,0.707107 -3671,0.707107,0.000000,0.000000,0.707107 -3672,0.707107,0.000000,0.000000,0.707107 -3673,0.707107,0.000000,0.000000,0.707107 -3674,0.707107,0.000000,0.000000,0.707107 -3675,0.707107,0.000000,0.000000,0.707107 -3676,0.707107,0.000000,0.000000,0.707107 -3677,0.707107,0.000000,0.000000,0.707107 -3678,0.707107,0.000000,0.000000,0.707107 -3679,0.707107,0.000000,0.000000,0.707107 -3680,0.707107,0.000000,0.000000,0.707107 -3681,0.707107,0.000000,0.000000,0.707107 -3682,0.707107,0.000000,0.000000,0.707107 -3683,0.707107,0.000000,0.000000,0.707107 -3684,0.707107,0.000000,0.000000,0.707107 -3685,0.707107,0.000000,0.000000,0.707107 -3686,0.707107,0.000000,0.000000,0.707107 -3687,0.707107,0.000000,0.000000,0.707107 -3688,0.707107,0.000000,0.000000,0.707107 -3689,0.707107,0.000000,0.000000,0.707107 -3690,0.707107,0.000000,0.000000,0.707107 -3691,0.707107,0.000000,0.000000,0.707107 -3692,0.707107,0.000000,0.000000,0.707107 -3693,0.707107,0.000000,0.000000,0.707107 -3694,0.707107,0.000000,0.000000,0.707107 -3695,0.707107,0.000000,0.000000,0.707107 -3696,0.707107,0.000000,0.000000,0.707107 -3697,0.707107,0.000000,0.000000,0.707107 -3698,0.707107,0.000000,0.000000,0.707107 -3699,0.707107,0.000000,0.000000,0.707107 -3700,0.707107,0.000000,0.000000,0.707107 -3701,0.707107,0.000000,0.000000,0.707107 -3702,0.707107,0.000000,0.000000,0.707107 -3703,0.707107,0.000000,0.000000,0.707107 -3704,0.707107,0.000000,0.000000,0.707107 -3705,0.707107,0.000000,0.000000,0.707107 -3706,0.707107,0.000000,0.000000,0.707107 -3707,0.707107,0.000000,0.000000,0.707107 -3708,0.707107,0.000000,0.000000,0.707107 -3709,0.707107,0.000000,0.000000,0.707107 -3710,0.707107,0.000000,0.000000,0.707107 -3711,0.707107,0.000000,0.000000,0.707107 -3712,0.707107,0.000000,0.000000,0.707107 -3713,0.707107,0.000000,0.000000,0.707107 -3714,0.707107,0.000000,0.000000,0.707107 -3715,0.707107,0.000000,0.000000,0.707107 -3716,0.707107,0.000000,0.000000,0.707107 -3717,0.707107,0.000000,0.000000,0.707107 -3718,0.707107,0.000000,0.000000,0.707107 -3719,0.707107,0.000000,0.000000,0.707107 -3720,0.707107,0.000000,0.000000,0.707107 -3721,0.707107,0.000000,0.000000,0.707107 -3722,0.707107,0.000000,0.000000,0.707107 -3723,0.707107,0.000000,0.000000,0.707107 -3724,0.707107,0.000000,0.000000,0.707107 -3725,0.707107,0.000000,0.000000,0.707107 -3726,0.707107,0.000000,0.000000,0.707107 -3727,0.707107,0.000000,0.000000,0.707107 -3728,0.707107,0.000000,0.000000,0.707107 -3729,0.707107,0.000000,0.000000,0.707107 -3730,0.707107,0.000000,0.000000,0.707107 -3731,0.707107,0.000000,0.000000,0.707107 -3732,0.707107,0.000000,0.000000,0.707107 -3733,0.707107,0.000000,0.000000,0.707107 -3734,0.707107,0.000000,0.000000,0.707107 -3735,0.707107,0.000000,0.000000,0.707107 -3736,0.707107,0.000000,0.000000,0.707107 -3737,0.707107,0.000000,0.000000,0.707107 -3738,0.707107,0.000000,0.000000,0.707107 -3739,0.707107,0.000000,0.000000,0.707107 -3740,0.707107,0.000000,0.000000,0.707107 -3741,0.707107,0.000000,0.000000,0.707107 -3742,0.707107,0.000000,0.000000,0.707107 -3743,0.707107,0.000000,0.000000,0.707107 -3744,0.707107,0.000000,0.000000,0.707107 -3745,0.707107,0.000000,0.000000,0.707107 -3746,0.707107,0.000000,0.000000,0.707107 -3747,0.707107,0.000000,0.000000,0.707107 -3748,0.707107,0.000000,0.000000,0.707107 -3749,0.707107,0.000000,0.000000,0.707107 -3750,0.707107,0.000000,0.000000,0.707107 -3751,0.707107,0.000000,0.000000,0.707107 -3752,0.707107,0.000000,0.000000,0.707107 -3753,0.707107,0.000000,0.000000,0.707107 -3754,0.707107,0.000000,0.000000,0.707107 -3755,0.707107,0.000000,0.000000,0.707107 -3756,0.707107,0.000000,0.000000,0.707107 -3757,0.707107,0.000000,0.000000,0.707107 -3758,0.707107,0.000000,0.000000,0.707107 -3759,0.707107,0.000000,0.000000,0.707107 -3760,0.707107,0.000000,0.000000,0.707107 -3761,0.707107,0.000000,0.000000,0.707107 -3762,0.707107,0.000000,0.000000,0.707107 -3763,0.707107,0.000000,0.000000,0.707107 -3764,0.707107,0.000000,0.000000,0.707107 -3765,0.707107,0.000000,0.000000,0.707107 -3766,0.707107,0.000000,0.000000,0.707107 -3767,0.707107,0.000000,0.000000,0.707107 -3768,0.707107,0.000000,0.000000,0.707107 -3769,0.707107,0.000000,0.000000,0.707107 -3770,0.707107,0.000000,0.000000,0.707107 -3771,0.707107,0.000000,0.000000,0.707107 -3772,0.707107,0.000000,0.000000,0.707107 -3773,0.707107,0.000000,0.000000,0.707107 -3774,0.707107,0.000000,0.000000,0.707107 -3775,0.707107,0.000000,0.000000,0.707107 -3776,0.707107,0.000000,0.000000,0.707107 -3777,0.707107,0.000000,0.000000,0.707107 -3778,0.707107,0.000000,0.000000,0.707107 -3779,0.707107,0.000000,0.000000,0.707107 -3780,0.707107,0.000000,0.000000,0.707107 -3781,0.707107,0.000000,0.000000,0.707107 -3782,0.707107,0.000000,0.000000,0.707107 -3783,0.707107,0.000000,0.000000,0.707107 -3784,0.707107,0.000000,0.000000,0.707107 -3785,0.707107,0.000000,0.000000,0.707107 -3786,0.707107,0.000000,0.000000,0.707107 -3787,0.707107,0.000000,0.000000,0.707107 -3788,0.707107,0.000000,0.000000,0.707107 -3789,0.707107,0.000000,0.000000,0.707107 -3790,0.707107,0.000000,0.000000,0.707107 -3791,0.707107,0.000000,0.000000,0.707107 -3792,0.707107,0.000000,0.000000,0.707107 -3793,0.707107,0.000000,0.000000,0.707107 -3794,0.707107,0.000000,0.000000,0.707107 -3795,0.707107,0.000000,0.000000,0.707107 -3796,0.707107,0.000000,0.000000,0.707107 -3797,0.707107,0.000000,0.000000,0.707107 -3798,0.707107,0.000000,0.000000,0.707107 -3799,0.707107,0.000000,0.000000,0.707107 -3800,0.707107,0.000000,0.000000,0.707107 -3801,0.707107,0.000000,0.000000,0.707107 -3802,0.707107,0.000000,0.000000,0.707107 -3803,0.707107,0.000000,0.000000,0.707107 -3804,0.707107,0.000000,0.000000,0.707107 -3805,0.707107,0.000000,0.000000,0.707107 -3806,0.707107,0.000000,0.000000,0.707107 -3807,0.707107,0.000000,0.000000,0.707107 -3808,0.707107,0.000000,0.000000,0.707107 -3809,0.707107,0.000000,0.000000,0.707107 -3810,0.707107,0.000000,0.000000,0.707107 -3811,0.707107,0.000000,0.000000,0.707107 -3812,0.707107,0.000000,0.000000,0.707107 -3813,0.707107,0.000000,0.000000,0.707107 -3814,0.707107,0.000000,0.000000,0.707107 -3815,0.707107,0.000000,0.000000,0.707107 -3816,0.707107,0.000000,0.000000,0.707107 -3817,0.707107,0.000000,0.000000,0.707107 -3818,0.707107,0.000000,0.000000,0.707107 -3819,0.707107,0.000000,0.000000,0.707107 -3820,0.707107,0.000000,0.000000,0.707107 -3821,0.707107,0.000000,0.000000,0.707107 -3822,0.707107,0.000000,0.000000,0.707107 -3823,0.707107,0.000000,0.000000,0.707107 -3824,0.707107,0.000000,0.000000,0.707107 -3825,0.707107,0.000000,0.000000,0.707107 -3826,0.707107,0.000000,0.000000,0.707107 -3827,0.707107,0.000000,0.000000,0.707107 -3828,0.707107,0.000000,0.000000,0.707107 -3829,0.707107,0.000000,0.000000,0.707107 -3830,0.707107,0.000000,0.000000,0.707107 -3831,0.707107,0.000000,0.000000,0.707107 -3832,0.707107,0.000000,0.000000,0.707107 -3833,0.707107,0.000000,0.000000,0.707107 -3834,0.707107,0.000000,0.000000,0.707107 -3835,0.707107,0.000000,0.000000,0.707107 -3836,0.707107,0.000000,0.000000,0.707107 -3837,0.707107,0.000000,0.000000,0.707107 -3838,0.707107,0.000000,0.000000,0.707107 -3839,0.707107,0.000000,0.000000,0.707107 -3840,0.707107,0.000000,0.000000,0.707107 -3841,0.707107,0.000000,0.000000,0.707107 -3842,0.707107,0.000000,0.000000,0.707107 -3843,0.707107,0.000000,0.000000,0.707107 -3844,0.707107,0.000000,0.000000,0.707107 -3845,0.707107,0.000000,0.000000,0.707107 -3846,0.707107,0.000000,0.000000,0.707107 -3847,0.707107,0.000000,0.000000,0.707107 -3848,0.707107,0.000000,0.000000,0.707107 -3849,0.707107,0.000000,0.000000,0.707107 -3850,0.707107,0.000000,0.000000,0.707107 -3851,0.707107,0.000000,0.000000,0.707107 -3852,0.707107,0.000000,0.000000,0.707107 -3853,0.707107,0.000000,0.000000,0.707107 -3854,0.707107,0.000000,0.000000,0.707107 -3855,0.707107,0.000000,0.000000,0.707107 -3856,0.707107,0.000000,0.000000,0.707107 -3857,0.707107,0.000000,0.000000,0.707107 -3858,0.707107,0.000000,0.000000,0.707107 -3859,0.707107,0.000000,0.000000,0.707107 -3860,0.707107,0.000000,0.000000,0.707107 -3861,0.707107,0.000000,0.000000,0.707107 -3862,0.707107,0.000000,0.000000,0.707107 -3863,0.707107,0.000000,0.000000,0.707107 -3864,0.707107,0.000000,0.000000,0.707107 -3865,0.707107,0.000000,0.000000,0.707107 -3866,0.707107,0.000000,0.000000,0.707107 -3867,0.707107,0.000000,0.000000,0.707107 -3868,0.707107,0.000000,0.000000,0.707107 -3869,0.707107,0.000000,0.000000,0.707107 -3870,0.707107,0.000000,0.000000,0.707107 -3871,0.707107,0.000000,0.000000,0.707107 -3872,0.707107,0.000000,0.000000,0.707107 -3873,0.707107,0.000000,0.000000,0.707107 -3874,0.707107,0.000000,0.000000,0.707107 -3875,0.707107,0.000000,0.000000,0.707107 -3876,0.707107,0.000000,0.000000,0.707107 -3877,0.707107,0.000000,0.000000,0.707107 -3878,0.707107,0.000000,0.000000,0.707107 -3879,0.707107,0.000000,0.000000,0.707107 -3880,0.707107,0.000000,0.000000,0.707107 -3881,0.707107,0.000000,0.000000,0.707107 -3882,0.707107,0.000000,0.000000,0.707107 -3883,0.707107,0.000000,0.000000,0.707107 -3884,0.707107,0.000000,0.000000,0.707107 -3885,0.707107,0.000000,0.000000,0.707107 -3886,0.707107,0.000000,0.000000,0.707107 -3887,0.707107,0.000000,0.000000,0.707107 -3888,0.707107,0.000000,0.000000,0.707107 -3889,0.707107,0.000000,0.000000,0.707107 -3890,0.707107,0.000000,0.000000,0.707107 -3891,0.707107,0.000000,0.000000,0.707107 -3892,0.707107,0.000000,0.000000,0.707107 -3893,0.707107,0.000000,0.000000,0.707107 -3894,0.707107,0.000000,0.000000,0.707107 -3895,0.707107,0.000000,0.000000,0.707107 -3896,0.707107,0.000000,0.000000,0.707107 -3897,0.707107,0.000000,0.000000,0.707107 -3898,0.707107,0.000000,0.000000,0.707107 -3899,0.707107,0.000000,0.000000,0.707107 -3900,0.707107,0.000000,0.000000,0.707107 -3901,0.707107,0.000000,0.000000,0.707107 -3902,0.707107,0.000000,0.000000,0.707107 -3903,0.707107,0.000000,0.000000,0.707107 -3904,0.707107,0.000000,0.000000,0.707107 -3905,0.707107,0.000000,0.000000,0.707107 -3906,0.707107,0.000000,0.000000,0.707107 -3907,0.707107,0.000000,0.000000,0.707107 -3908,0.707107,0.000000,0.000000,0.707107 -3909,0.707107,0.000000,0.000000,0.707107 -3910,0.707107,0.000000,0.000000,0.707107 -3911,0.707107,0.000000,0.000000,0.707107 -3912,0.707107,0.000000,0.000000,0.707107 -3913,0.707107,0.000000,0.000000,0.707107 -3914,0.707107,0.000000,0.000000,0.707107 -3915,0.707107,0.000000,0.000000,0.707107 -3916,0.707107,0.000000,0.000000,0.707107 -3917,0.707107,0.000000,0.000000,0.707107 -3918,0.707107,0.000000,0.000000,0.707107 -3919,0.707107,0.000000,0.000000,0.707107 -3920,0.707107,0.000000,0.000000,0.707107 -3921,0.707107,0.000000,0.000000,0.707107 -3922,0.707107,0.000000,0.000000,0.707107 -3923,0.707107,0.000000,0.000000,0.707107 -3924,0.707107,0.000000,0.000000,0.707107 -3925,0.707107,0.000000,0.000000,0.707107 -3926,0.707107,0.000000,0.000000,0.707107 -3927,0.707107,0.000000,0.000000,0.707107 -3928,0.707107,0.000000,0.000000,0.707107 -3929,0.707107,0.000000,0.000000,0.707107 -3930,0.707107,0.000000,0.000000,0.707107 -3931,0.707107,0.000000,0.000000,0.707107 -3932,0.707107,0.000000,0.000000,0.707107 -3933,0.707107,0.000000,0.000000,0.707107 -3934,0.707107,0.000000,0.000000,0.707107 -3935,0.707107,0.000000,0.000000,0.707107 -3936,0.707107,0.000000,0.000000,0.707107 -3937,0.707107,0.000000,0.000000,0.707107 -3938,0.707107,0.000000,0.000000,0.707107 -3939,0.707107,0.000000,0.000000,0.707107 -3940,0.707107,0.000000,0.000000,0.707107 -3941,0.707107,0.000000,0.000000,0.707107 -3942,0.707107,0.000000,0.000000,0.707107 -3943,0.707107,0.000000,0.000000,0.707107 -3944,0.707107,0.000000,0.000000,0.707107 -3945,0.707107,0.000000,0.000000,0.707107 -3946,0.707107,0.000000,0.000000,0.707107 -3947,0.707107,0.000000,0.000000,0.707107 -3948,0.707107,0.000000,0.000000,0.707107 -3949,0.707107,0.000000,0.000000,0.707107 -3950,0.707107,0.000000,0.000000,0.707107 -3951,0.707107,0.000000,0.000000,0.707107 -3952,0.707107,0.000000,0.000000,0.707107 -3953,0.707107,0.000000,0.000000,0.707107 -3954,0.707107,0.000000,0.000000,0.707107 -3955,0.707107,0.000000,0.000000,0.707107 -3956,0.707107,0.000000,0.000000,0.707107 -3957,0.707107,0.000000,0.000000,0.707107 -3958,0.707107,0.000000,0.000000,0.707107 -3959,0.707107,0.000000,0.000000,0.707107 -3960,0.707107,0.000000,0.000000,0.707107 -3961,0.707107,0.000000,0.000000,0.707107 -3962,0.707107,0.000000,0.000000,0.707107 -3963,0.707107,0.000000,0.000000,0.707107 -3964,0.707107,0.000000,0.000000,0.707107 -3965,0.707107,0.000000,0.000000,0.707107 -3966,0.707107,0.000000,0.000000,0.707107 -3967,0.707107,0.000000,0.000000,0.707107 -3968,0.707107,0.000000,0.000000,0.707107 -3969,0.707107,0.000000,0.000000,0.707107 -3970,0.707107,0.000000,0.000000,0.707107 -3971,0.707107,0.000000,0.000000,0.707107 -3972,0.707107,0.000000,0.000000,0.707107 -3973,0.707107,0.000000,0.000000,0.707107 -3974,0.707107,0.000000,0.000000,0.707107 -3975,0.707107,0.000000,0.000000,0.707107 -3976,0.707107,0.000000,0.000000,0.707107 -3977,0.707107,0.000000,0.000000,0.707107 -3978,0.707107,0.000000,0.000000,0.707107 -3979,0.707107,0.000000,0.000000,0.707107 -3980,0.707107,0.000000,0.000000,0.707107 -3981,0.707107,0.000000,0.000000,0.707107 -3982,0.707107,0.000000,0.000000,0.707107 -3983,0.707107,0.000000,0.000000,0.707107 -3984,0.707107,0.000000,0.000000,0.707107 -3985,0.707107,0.000000,0.000000,0.707107 -3986,0.707107,0.000000,0.000000,0.707107 -3987,0.707107,0.000000,0.000000,0.707107 -3988,0.707107,0.000000,0.000000,0.707107 -3989,0.707107,0.000000,0.000000,0.707107 -3990,0.707107,0.000000,0.000000,0.707107 -3991,0.707107,0.000000,0.000000,0.707107 -3992,0.707107,0.000000,0.000000,0.707107 -3993,0.707107,0.000000,0.000000,0.707107 -3994,0.707107,0.000000,0.000000,0.707107 -3995,0.707107,0.000000,0.000000,0.707107 -3996,0.707107,0.000000,0.000000,0.707107 -3997,0.707107,0.000000,0.000000,0.707107 -3998,0.707107,0.000000,0.000000,0.707107 -3999,0.707107,0.000000,0.000000,0.707107 -4000,0.707107,0.000000,0.000000,0.707107 -4001,0.707107,0.000000,0.000000,0.707107 -4002,0.707107,0.000000,0.000000,0.707107 -4003,0.707107,0.000000,0.000000,0.707107 -4004,0.707107,0.000000,0.000000,0.707107 -4005,0.707107,0.000000,0.000000,0.707107 -4006,0.707107,0.000000,0.000000,0.707107 -4007,0.707107,0.000000,0.000000,0.707107 -4008,0.707107,0.000000,0.000000,0.707107 -4009,0.707107,0.000000,0.000000,0.707107 -4010,0.707107,0.000000,0.000000,0.707107 -4011,0.707107,0.000000,0.000000,0.707107 -4012,0.707107,0.000000,0.000000,0.707107 -4013,0.707107,0.000000,0.000000,0.707107 -4014,0.707107,0.000000,0.000000,0.707107 -4015,0.707107,0.000000,0.000000,0.707107 -4016,0.707107,0.000000,0.000000,0.707107 -4017,0.707107,0.000000,0.000000,0.707107 -4018,0.707107,0.000000,0.000000,0.707107 -4019,0.707107,0.000000,0.000000,0.707107 -4020,0.707107,0.000000,0.000000,0.707107 -4021,0.707107,0.000000,0.000000,0.707107 -4022,0.707107,0.000000,0.000000,0.707107 -4023,0.707107,0.000000,0.000000,0.707107 -4024,0.707107,0.000000,0.000000,0.707107 -4025,0.707107,0.000000,0.000000,0.707107 -4026,0.707107,0.000000,0.000000,0.707107 -4027,0.707107,0.000000,0.000000,0.707107 -4028,0.707107,0.000000,0.000000,0.707107 -4029,0.707107,0.000000,0.000000,0.707107 -4030,0.707107,0.000000,0.000000,0.707107 -4031,0.707107,0.000000,0.000000,0.707107 -4032,0.707107,0.000000,0.000000,0.707107 -4033,0.707107,0.000000,0.000000,0.707107 -4034,0.707107,0.000000,0.000000,0.707107 -4035,0.707107,0.000000,0.000000,0.707107 -4036,0.707107,0.000000,0.000000,0.707107 -4037,0.707107,0.000000,0.000000,0.707107 -4038,0.707107,0.000000,0.000000,0.707107 -4039,0.707107,0.000000,0.000000,0.707107 -4040,0.707107,0.000000,0.000000,0.707107 -4041,0.707107,0.000000,0.000000,0.707107 -4042,0.707107,0.000000,0.000000,0.707107 -4043,0.707107,0.000000,0.000000,0.707107 -4044,0.707107,0.000000,0.000000,0.707107 -4045,0.707107,0.000000,0.000000,0.707107 -4046,0.707107,0.000000,0.000000,0.707107 -4047,0.707107,0.000000,0.000000,0.707107 -4048,0.707107,0.000000,0.000000,0.707107 -4049,0.707107,0.000000,0.000000,0.707107 -4050,0.707107,0.000000,0.000000,0.707107 -4051,0.707107,0.000000,0.000000,0.707107 -4052,0.707107,0.000000,0.000000,0.707107 -4053,0.707107,0.000000,0.000000,0.707107 -4054,0.707107,0.000000,0.000000,0.707107 -4055,0.707107,0.000000,0.000000,0.707107 -4056,0.707107,0.000000,0.000000,0.707107 -4057,0.707107,0.000000,0.000000,0.707107 -4058,0.707107,0.000000,0.000000,0.707107 -4059,0.707107,0.000000,0.000000,0.707107 -4060,0.707107,0.000000,0.000000,0.707107 -4061,0.707107,0.000000,0.000000,0.707107 -4062,0.707107,0.000000,0.000000,0.707107 -4063,0.707107,0.000000,0.000000,0.707107 -4064,0.707107,0.000000,0.000000,0.707107 -4065,0.707107,0.000000,0.000000,0.707107 -4066,0.707107,0.000000,0.000000,0.707107 -4067,0.707107,0.000000,0.000000,0.707107 -4068,0.707107,0.000000,0.000000,0.707107 -4069,0.707107,0.000000,0.000000,0.707107 -4070,0.707107,0.000000,0.000000,0.707107 -4071,0.707107,0.000000,0.000000,0.707107 -4072,0.707107,0.000000,0.000000,0.707107 -4073,0.707107,0.000000,0.000000,0.707107 -4074,0.707107,0.000000,0.000000,0.707107 -4075,0.707107,0.000000,0.000000,0.707107 -4076,0.707107,0.000000,0.000000,0.707107 -4077,0.707107,0.000000,0.000000,0.707107 -4078,0.707107,0.000000,0.000000,0.707107 -4079,0.707107,0.000000,0.000000,0.707107 -4080,0.707107,0.000000,0.000000,0.707107 -4081,0.707107,0.000000,0.000000,0.707107 -4082,0.707107,0.000000,0.000000,0.707107 -4083,0.707107,0.000000,0.000000,0.707107 -4084,0.707107,0.000000,0.000000,0.707107 -4085,0.707107,0.000000,0.000000,0.707107 -4086,0.707107,0.000000,0.000000,0.707107 -4087,0.707107,0.000000,0.000000,0.707107 -4088,0.707107,0.000000,0.000000,0.707107 -4089,0.707107,0.000000,0.000000,0.707107 -4090,0.707107,0.000000,0.000000,0.707107 -4091,0.707107,0.000000,0.000000,0.707107 -4092,0.707107,0.000000,0.000000,0.707107 -4093,0.707107,0.000000,0.000000,0.707107 -4094,0.707107,0.000000,0.000000,0.707107 -4095,0.707107,0.000000,0.000000,0.707107 -4096,0.707107,0.000000,0.000000,0.707107 -4097,0.707107,0.000000,0.000000,0.707107 -4098,0.707107,0.000000,0.000000,0.707107 -4099,0.707107,0.000000,0.000000,0.707107 -4100,0.707107,0.000000,0.000000,0.707107 -4101,0.707107,0.000000,0.000000,0.707107 -4102,0.707107,0.000000,0.000000,0.707107 -4103,0.707107,0.000000,0.000000,0.707107 -4104,0.707107,0.000000,0.000000,0.707107 -4105,0.707107,0.000000,0.000000,0.707107 -4106,0.707107,0.000000,0.000000,0.707107 -4107,0.707107,0.000000,0.000000,0.707107 -4108,0.707107,0.000000,0.000000,0.707107 -4109,0.707107,0.000000,0.000000,0.707107 -4110,0.707107,0.000000,0.000000,0.707107 -4111,0.707107,0.000000,0.000000,0.707107 -4112,0.707107,0.000000,0.000000,0.707107 -4113,0.707107,0.000000,0.000000,0.707107 -4114,0.707107,0.000000,0.000000,0.707107 -4115,0.707107,0.000000,0.000000,0.707107 -4116,0.707107,0.000000,0.000000,0.707107 -4117,0.707107,0.000000,0.000000,0.707107 -4118,0.707107,0.000000,0.000000,0.707107 -4119,0.707107,0.000000,0.000000,0.707107 -4120,0.707107,0.000000,0.000000,0.707107 -4121,0.707107,0.000000,0.000000,0.707107 -4122,0.707107,0.000000,0.000000,0.707107 -4123,0.707107,0.000000,0.000000,0.707107 -4124,0.707107,0.000000,0.000000,0.707107 -4125,0.707107,0.000000,0.000000,0.707107 -4126,0.707107,0.000000,0.000000,0.707107 -4127,0.707107,0.000000,0.000000,0.707107 -4128,0.707107,0.000000,0.000000,0.707107 -4129,0.707107,0.000000,0.000000,0.707107 -4130,0.707107,0.000000,0.000000,0.707107 -4131,0.707107,0.000000,0.000000,0.707107 -4132,0.707107,0.000000,0.000000,0.707107 -4133,0.707107,0.000000,0.000000,0.707107 -4134,0.707107,0.000000,0.000000,0.707107 -4135,0.707107,0.000000,0.000000,0.707107 -4136,0.707107,0.000000,0.000000,0.707107 -4137,0.707107,0.000000,0.000000,0.707107 -4138,0.707107,0.000000,0.000000,0.707107 -4139,0.707107,0.000000,0.000000,0.707107 -4140,0.707107,0.000000,0.000000,0.707107 -4141,0.707107,0.000000,0.000000,0.707107 -4142,0.707107,0.000000,0.000000,0.707107 -4143,0.707107,0.000000,0.000000,0.707107 -4144,0.707107,0.000000,0.000000,0.707107 -4145,0.707107,0.000000,0.000000,0.707107 -4146,0.707107,0.000000,0.000000,0.707107 -4147,0.707107,0.000000,0.000000,0.707107 -4148,0.707107,0.000000,0.000000,0.707107 -4149,0.707107,0.000000,0.000000,0.707107 -4150,0.707107,0.000000,0.000000,0.707107 -4151,0.707107,0.000000,0.000000,0.707107 -4152,0.707107,0.000000,0.000000,0.707107 -4153,0.707107,0.000000,0.000000,0.707107 -4154,0.707107,0.000000,0.000000,0.707107 -4155,0.707107,0.000000,0.000000,0.707107 -4156,0.707107,0.000000,0.000000,0.707107 -4157,0.707107,0.000000,0.000000,0.707107 -4158,0.707107,0.000000,0.000000,0.707107 -4159,0.707107,0.000000,0.000000,0.707107 -4160,0.707107,0.000000,0.000000,0.707107 -4161,0.707107,0.000000,0.000000,0.707107 -4162,0.707107,0.000000,0.000000,0.707107 -4163,0.707107,0.000000,0.000000,0.707107 -4164,0.707107,0.000000,0.000000,0.707107 -4165,0.707107,0.000000,0.000000,0.707107 -4166,0.707107,0.000000,0.000000,0.707107 -4167,0.707107,0.000000,0.000000,0.707107 -4168,0.707107,0.000000,0.000000,0.707107 -4169,0.707107,0.000000,0.000000,0.707107 -4170,0.707107,0.000000,0.000000,0.707107 -4171,0.707107,0.000000,0.000000,0.707107 -4172,0.707107,0.000000,0.000000,0.707107 -4173,0.707107,0.000000,0.000000,0.707107 -4174,0.707107,0.000000,0.000000,0.707107 -4175,0.707107,0.000000,0.000000,0.707107 -4176,0.707107,0.000000,0.000000,0.707107 -4177,0.707107,0.000000,0.000000,0.707107 -4178,0.707107,0.000000,0.000000,0.707107 -4179,0.707107,0.000000,0.000000,0.707107 -4180,0.707107,0.000000,0.000000,0.707107 -4181,0.707107,0.000000,0.000000,0.707107 -4182,0.707107,0.000000,0.000000,0.707107 -4183,0.707107,0.000000,0.000000,0.707107 -4184,0.707107,0.000000,0.000000,0.707107 -4185,0.707107,0.000000,0.000000,0.707107 -4186,0.707107,0.000000,0.000000,0.707107 -4187,0.707107,0.000000,0.000000,0.707107 -4188,0.707107,0.000000,0.000000,0.707107 -4189,0.707107,0.000000,0.000000,0.707107 -4190,0.707107,0.000000,0.000000,0.707107 -4191,0.707107,0.000000,0.000000,0.707107 -4192,0.707107,0.000000,0.000000,0.707107 -4193,0.707107,0.000000,0.000000,0.707107 -4194,0.707107,0.000000,0.000000,0.707107 -4195,0.707107,0.000000,0.000000,0.707107 -4196,0.707107,0.000000,0.000000,0.707107 -4197,0.707107,0.000000,0.000000,0.707107 -4198,0.707107,0.000000,0.000000,0.707107 -4199,0.707107,0.000000,0.000000,0.707107 -4200,0.707107,0.000000,0.000000,0.707107 -4201,0.707107,0.000000,0.000000,0.707107 -4202,0.707107,0.000000,0.000000,0.707107 -4203,0.707107,0.000000,0.000000,0.707107 -4204,0.707107,0.000000,0.000000,0.707107 -4205,0.707107,0.000000,0.000000,0.707107 -4206,0.707107,0.000000,0.000000,0.707107 -4207,0.707107,0.000000,0.000000,0.707107 -4208,0.707107,0.000000,0.000000,0.707107 -4209,0.707107,0.000000,0.000000,0.707107 -4210,0.707107,0.000000,0.000000,0.707107 -4211,0.707107,0.000000,0.000000,0.707107 -4212,0.707107,0.000000,0.000000,0.707107 -4213,0.707107,0.000000,0.000000,0.707107 -4214,0.707107,0.000000,0.000000,0.707107 -4215,0.707107,0.000000,0.000000,0.707107 -4216,0.707107,0.000000,0.000000,0.707107 -4217,0.707107,0.000000,0.000000,0.707107 -4218,0.707107,0.000000,0.000000,0.707107 -4219,0.707107,0.000000,0.000000,0.707107 -4220,0.707107,0.000000,0.000000,0.707107 -4221,0.707107,0.000000,0.000000,0.707107 -4222,0.707107,0.000000,0.000000,0.707107 -4223,0.707107,0.000000,0.000000,0.707107 -4224,0.707107,0.000000,0.000000,0.707107 -4225,0.707107,0.000000,0.000000,0.707107 -4226,0.707107,0.000000,0.000000,0.707107 -4227,0.707107,0.000000,0.000000,0.707107 -4228,0.707107,0.000000,0.000000,0.707107 -4229,0.707107,0.000000,0.000000,0.707107 -4230,0.707107,0.000000,0.000000,0.707107 -4231,0.707107,0.000000,0.000000,0.707107 -4232,0.707107,0.000000,0.000000,0.707107 -4233,0.707107,0.000000,0.000000,0.707107 -4234,0.707107,0.000000,0.000000,0.707107 -4235,0.707107,0.000000,0.000000,0.707107 -4236,0.707107,0.000000,0.000000,0.707107 -4237,0.707107,0.000000,0.000000,0.707107 -4238,0.707107,0.000000,0.000000,0.707107 -4239,0.707107,0.000000,0.000000,0.707107 -4240,0.707107,0.000000,0.000000,0.707107 -4241,0.707107,0.000000,0.000000,0.707107 -4242,0.707107,0.000000,0.000000,0.707107 -4243,0.707107,0.000000,0.000000,0.707107 -4244,0.707107,0.000000,0.000000,0.707107 -4245,0.707107,0.000000,0.000000,0.707107 -4246,0.707107,0.000000,0.000000,0.707107 -4247,0.707107,0.000000,0.000000,0.707107 -4248,0.707107,0.000000,0.000000,0.707107 -4249,0.707107,0.000000,0.000000,0.707107 -4250,0.707107,0.000000,0.000000,0.707107 -4251,0.707107,0.000000,0.000000,0.707107 -4252,0.707107,0.000000,0.000000,0.707107 -4253,0.707107,0.000000,0.000000,0.707107 -4254,0.707107,0.000000,0.000000,0.707107 -4255,0.707107,0.000000,0.000000,0.707107 -4256,0.707107,0.000000,0.000000,0.707107 -4257,0.707107,0.000000,0.000000,0.707107 -4258,0.707107,0.000000,0.000000,0.707107 -4259,0.707107,0.000000,0.000000,0.707107 -4260,0.707107,0.000000,0.000000,0.707107 -4261,0.707107,0.000000,0.000000,0.707107 -4262,0.707107,0.000000,0.000000,0.707107 -4263,0.707107,0.000000,0.000000,0.707107 -4264,0.707107,0.000000,0.000000,0.707107 -4265,0.707107,0.000000,0.000000,0.707107 -4266,0.707107,0.000000,0.000000,0.707107 -4267,0.707107,0.000000,0.000000,0.707107 -4268,0.707107,0.000000,0.000000,0.707107 -4269,0.707107,0.000000,0.000000,0.707107 -4270,0.707107,0.000000,0.000000,0.707107 -4271,0.707107,0.000000,0.000000,0.707107 -4272,0.707107,0.000000,0.000000,0.707107 -4273,0.707107,0.000000,0.000000,0.707107 -4274,0.707107,0.000000,0.000000,0.707107 -4275,0.707107,0.000000,0.000000,0.707107 -4276,0.707107,0.000000,0.000000,0.707107 -4277,0.707107,0.000000,0.000000,0.707107 -4278,0.707107,0.000000,0.000000,0.707107 -4279,0.707107,0.000000,0.000000,0.707107 -4280,0.707107,0.000000,0.000000,0.707107 -4281,0.707107,0.000000,0.000000,0.707107 -4282,0.707107,0.000000,0.000000,0.707107 -4283,0.707107,0.000000,0.000000,0.707107 -4284,0.707107,0.000000,0.000000,0.707107 -4285,0.707107,0.000000,0.000000,0.707107 -4286,0.707107,0.000000,0.000000,0.707107 -4287,0.707107,0.000000,0.000000,0.707107 -4288,0.707107,0.000000,0.000000,0.707107 -4289,0.707107,0.000000,0.000000,0.707107 -4290,0.707107,0.000000,0.000000,0.707107 -4291,0.707107,0.000000,0.000000,0.707107 -4292,0.707107,0.000000,0.000000,0.707107 -4293,0.707107,0.000000,0.000000,0.707107 -4294,0.707107,0.000000,0.000000,0.707107 -4295,0.707107,0.000000,0.000000,0.707107 -4296,0.707107,0.000000,0.000000,0.707107 -4297,0.707107,0.000000,0.000000,0.707107 -4298,0.707107,0.000000,0.000000,0.707107 -4299,0.707107,0.000000,0.000000,0.707107 -4300,0.707107,0.000000,0.000000,0.707107 -4301,0.707107,0.000000,0.000000,0.707107 -4302,0.707107,0.000000,0.000000,0.707107 -4303,0.707107,0.000000,0.000000,0.707107 -4304,0.707107,0.000000,0.000000,0.707107 -4305,0.707107,0.000000,0.000000,0.707107 -4306,0.707107,0.000000,0.000000,0.707107 -4307,0.707107,0.000000,0.000000,0.707107 -4308,0.707107,0.000000,0.000000,0.707107 -4309,0.707107,0.000000,0.000000,0.707107 -4310,0.707107,0.000000,0.000000,0.707107 -4311,0.707107,0.000000,0.000000,0.707107 -4312,0.707107,0.000000,0.000000,0.707107 -4313,0.707107,0.000000,0.000000,0.707107 -4314,0.707107,0.000000,0.000000,0.707107 -4315,0.707107,0.000000,0.000000,0.707107 -4316,0.707107,0.000000,0.000000,0.707107 -4317,0.707107,0.000000,0.000000,0.707107 -4318,0.707107,0.000000,0.000000,0.707107 -4319,0.707107,0.000000,0.000000,0.707107 -4320,0.707107,0.000000,0.000000,0.707107 -4321,0.707107,0.000000,0.000000,0.707107 -4322,0.707107,0.000000,0.000000,0.707107 -4323,0.707107,0.000000,0.000000,0.707107 -4324,0.707107,0.000000,0.000000,0.707107 -4325,0.707107,0.000000,0.000000,0.707107 -4326,0.707107,0.000000,0.000000,0.707107 -4327,0.707107,0.000000,0.000000,0.707107 -4328,0.707107,0.000000,0.000000,0.707107 -4329,0.707107,0.000000,0.000000,0.707107 -4330,0.707107,0.000000,0.000000,0.707107 -4331,0.707107,0.000000,0.000000,0.707107 -4332,0.707107,0.000000,0.000000,0.707107 -4333,0.707107,0.000000,0.000000,0.707107 -4334,0.707107,0.000000,0.000000,0.707107 -4335,0.707107,0.000000,0.000000,0.707107 -4336,0.707107,0.000000,0.000000,0.707107 -4337,0.707107,0.000000,0.000000,0.707107 -4338,0.707107,0.000000,0.000000,0.707107 -4339,0.707107,0.000000,0.000000,0.707107 -4340,0.707107,0.000000,0.000000,0.707107 -4341,0.707107,0.000000,0.000000,0.707107 -4342,0.707107,0.000000,0.000000,0.707107 -4343,0.707107,0.000000,0.000000,0.707107 -4344,0.707107,0.000000,0.000000,0.707107 -4345,0.707107,0.000000,0.000000,0.707107 -4346,0.707107,0.000000,0.000000,0.707107 -4347,0.707107,0.000000,0.000000,0.707107 -4348,0.707107,0.000000,0.000000,0.707107 -4349,0.707107,0.000000,0.000000,0.707107 -4350,0.707107,0.000000,0.000000,0.707107 -4351,0.707107,0.000000,0.000000,0.707107 -4352,0.707107,0.000000,0.000000,0.707107 -4353,0.707107,0.000000,0.000000,0.707107 -4354,0.707107,0.000000,0.000000,0.707107 -4355,0.707107,0.000000,0.000000,0.707107 -4356,0.707107,0.000000,0.000000,0.707107 -4357,0.707107,0.000000,0.000000,0.707107 -4358,0.707107,0.000000,0.000000,0.707107 -4359,0.707107,0.000000,0.000000,0.707107 -4360,0.707107,0.000000,0.000000,0.707107 -4361,0.707107,0.000000,0.000000,0.707107 -4362,0.707107,0.000000,0.000000,0.707107 -4363,0.707107,0.000000,0.000000,0.707107 -4364,0.707107,0.000000,0.000000,0.707107 -4365,0.707107,0.000000,0.000000,0.707107 -4366,0.707107,0.000000,0.000000,0.707107 -4367,0.707107,0.000000,0.000000,0.707107 -4368,0.707107,0.000000,0.000000,0.707107 -4369,0.707107,0.000000,0.000000,0.707107 -4370,0.707107,0.000000,0.000000,0.707107 -4371,0.707107,0.000000,0.000000,0.707107 -4372,0.707107,0.000000,0.000000,0.707107 -4373,0.707107,0.000000,0.000000,0.707107 -4374,0.707107,0.000000,0.000000,0.707107 -4375,0.707107,0.000000,0.000000,0.707107 -4376,0.707107,0.000000,0.000000,0.707107 -4377,0.707107,0.000000,0.000000,0.707107 -4378,0.707107,0.000000,0.000000,0.707107 -4379,0.707107,0.000000,0.000000,0.707107 -4380,0.707107,0.000000,0.000000,0.707107 -4381,0.707107,0.000000,0.000000,0.707107 -4382,0.707107,0.000000,0.000000,0.707107 -4383,0.707107,0.000000,0.000000,0.707107 -4384,0.707107,0.000000,0.000000,0.707107 -4385,0.707107,0.000000,0.000000,0.707107 -4386,0.707107,0.000000,0.000000,0.707107 -4387,0.707107,0.000000,0.000000,0.707107 -4388,0.707107,0.000000,0.000000,0.707107 -4389,0.707107,0.000000,0.000000,0.707107 -4390,0.707107,0.000000,0.000000,0.707107 -4391,0.707107,0.000000,0.000000,0.707107 -4392,0.707107,0.000000,0.000000,0.707107 -4393,0.707107,0.000000,0.000000,0.707107 -4394,0.707107,0.000000,0.000000,0.707107 -4395,0.707107,0.000000,0.000000,0.707107 -4396,0.707107,0.000000,0.000000,0.707107 -4397,0.707107,0.000000,0.000000,0.707107 -4398,0.707107,0.000000,0.000000,0.707107 -4399,0.707107,0.000000,0.000000,0.707107 -4400,0.707107,0.000000,0.000000,0.707107 -4401,0.707107,0.000000,0.000000,0.707107 -4402,0.707107,0.000000,0.000000,0.707107 -4403,0.707107,0.000000,0.000000,0.707107 -4404,0.707107,0.000000,0.000000,0.707107 -4405,0.707107,0.000000,0.000000,0.707107 -4406,0.707107,0.000000,0.000000,0.707107 -4407,0.707107,0.000000,0.000000,0.707107 -4408,0.707107,0.000000,0.000000,0.707107 -4409,0.707107,0.000000,0.000000,0.707107 -4410,0.707107,0.000000,0.000000,0.707107 -4411,0.707107,0.000000,0.000000,0.707107 -4412,0.707107,0.000000,0.000000,0.707107 -4413,0.707107,0.000000,0.000000,0.707107 -4414,0.707107,0.000000,0.000000,0.707107 -4415,0.707107,0.000000,0.000000,0.707107 -4416,0.707107,0.000000,0.000000,0.707107 -4417,0.707107,0.000000,0.000000,0.707107 -4418,0.707107,0.000000,0.000000,0.707107 -4419,0.707107,0.000000,0.000000,0.707107 -4420,0.707107,0.000000,0.000000,0.707107 -4421,0.707107,0.000000,0.000000,0.707107 -4422,0.707107,0.000000,0.000000,0.707107 -4423,0.707107,0.000000,0.000000,0.707107 -4424,0.707107,0.000000,0.000000,0.707107 -4425,0.707107,0.000000,0.000000,0.707107 -4426,0.707107,0.000000,0.000000,0.707107 -4427,0.707107,0.000000,0.000000,0.707107 -4428,0.707107,0.000000,0.000000,0.707107 -4429,0.707107,0.000000,0.000000,0.707107 -4430,0.707107,0.000000,0.000000,0.707107 -4431,0.707107,0.000000,0.000000,0.707107 -4432,0.707107,0.000000,0.000000,0.707107 -4433,0.707107,0.000000,0.000000,0.707107 -4434,0.707107,0.000000,0.000000,0.707107 -4435,0.707107,0.000000,0.000000,0.707107 -4436,0.707107,0.000000,0.000000,0.707107 -4437,0.707107,0.000000,0.000000,0.707107 -4438,0.707107,0.000000,0.000000,0.707107 -4439,0.707107,0.000000,0.000000,0.707107 -4440,0.707107,0.000000,0.000000,0.707107 -4441,0.707107,0.000000,0.000000,0.707107 -4442,0.707107,0.000000,0.000000,0.707107 -4443,0.707107,0.000000,0.000000,0.707107 -4444,0.707107,0.000000,0.000000,0.707107 -4445,0.707107,0.000000,0.000000,0.707107 -4446,0.707107,0.000000,0.000000,0.707107 -4447,0.707107,0.000000,0.000000,0.707107 -4448,0.707107,0.000000,0.000000,0.707107 -4449,0.707107,0.000000,0.000000,0.707107 -4450,0.707107,0.000000,0.000000,0.707107 -4451,0.707107,0.000000,0.000000,0.707107 -4452,0.707107,0.000000,0.000000,0.707107 -4453,0.707107,0.000000,0.000000,0.707107 -4454,0.707107,0.000000,0.000000,0.707107 -4455,0.707107,0.000000,0.000000,0.707107 -4456,0.707107,0.000000,0.000000,0.707107 -4457,0.707107,0.000000,0.000000,0.707107 -4458,0.707107,0.000000,0.000000,0.707107 -4459,0.707107,0.000000,0.000000,0.707107 -4460,0.707107,0.000000,0.000000,0.707107 -4461,0.707107,0.000000,0.000000,0.707107 -4462,0.707107,0.000000,0.000000,0.707107 -4463,0.707107,0.000000,0.000000,0.707107 -4464,0.707107,0.000000,0.000000,0.707107 -4465,0.707107,0.000000,0.000000,0.707107 -4466,0.707107,0.000000,0.000000,0.707107 -4467,0.707107,0.000000,0.000000,0.707107 -4468,0.707107,0.000000,0.000000,0.707107 -4469,0.707107,0.000000,0.000000,0.707107 -4470,0.707107,0.000000,0.000000,0.707107 -4471,0.707107,0.000000,0.000000,0.707107 -4472,0.707107,0.000000,0.000000,0.707107 -4473,0.707107,0.000000,0.000000,0.707107 -4474,0.707107,0.000000,0.000000,0.707107 -4475,0.707107,0.000000,0.000000,0.707107 -4476,0.707107,0.000000,0.000000,0.707107 -4477,0.707107,0.000000,0.000000,0.707107 -4478,0.707107,0.000000,0.000000,0.707107 -4479,0.707107,0.000000,0.000000,0.707107 -4480,0.707107,0.000000,0.000000,0.707107 -4481,0.707107,0.000000,0.000000,0.707107 -4482,0.707107,0.000000,0.000000,0.707107 -4483,0.707107,0.000000,0.000000,0.707107 -4484,0.707107,0.000000,0.000000,0.707107 -4485,0.707107,0.000000,0.000000,0.707107 -4486,0.707107,0.000000,0.000000,0.707107 -4487,0.707107,0.000000,0.000000,0.707107 -4488,0.707107,0.000000,0.000000,0.707107 -4489,0.707107,0.000000,0.000000,0.707107 -4490,0.707107,0.000000,0.000000,0.707107 -4491,0.707107,0.000000,0.000000,0.707107 -4492,0.707107,0.000000,0.000000,0.707107 -4493,0.707107,0.000000,0.000000,0.707107 -4494,0.707107,0.000000,0.000000,0.707107 -4495,0.707107,0.000000,0.000000,0.707107 -4496,0.707107,0.000000,0.000000,0.707107 -4497,0.707107,0.000000,0.000000,0.707107 -4498,0.707107,0.000000,0.000000,0.707107 -4499,0.707107,0.000000,0.000000,0.707107 -4500,0.707107,0.000000,0.000000,0.707107 -4501,0.707107,0.000000,0.000000,0.707107 -4502,0.707107,0.000000,0.000000,0.707107 -4503,0.707107,0.000000,0.000000,0.707107 -4504,0.707107,0.000000,0.000000,0.707107 -4505,0.707107,0.000000,0.000000,0.707107 -4506,0.707107,0.000000,0.000000,0.707107 -4507,0.707107,0.000000,0.000000,0.707107 -4508,0.707107,0.000000,0.000000,0.707107 -4509,0.707107,0.000000,0.000000,0.707107 -4510,0.707107,0.000000,0.000000,0.707107 -4511,0.707107,0.000000,0.000000,0.707107 -4512,0.707107,0.000000,0.000000,0.707107 -4513,0.707107,0.000000,0.000000,0.707107 -4514,0.707107,0.000000,0.000000,0.707107 -4515,0.707107,0.000000,0.000000,0.707107 -4516,0.707107,0.000000,0.000000,0.707107 -4517,0.707107,0.000000,0.000000,0.707107 -4518,0.707107,0.000000,0.000000,0.707107 -4519,0.707107,0.000000,0.000000,0.707107 -4520,0.707107,0.000000,0.000000,0.707107 -4521,0.707107,0.000000,0.000000,0.707107 -4522,0.707107,0.000000,0.000000,0.707107 -4523,0.707107,0.000000,0.000000,0.707107 -4524,0.707107,0.000000,0.000000,0.707107 -4525,0.707107,0.000000,0.000000,0.707107 -4526,0.707107,0.000000,0.000000,0.707107 -4527,0.707107,0.000000,0.000000,0.707107 -4528,0.707107,0.000000,0.000000,0.707107 -4529,0.707107,0.000000,0.000000,0.707107 -4530,0.707107,0.000000,0.000000,0.707107 -4531,0.707107,0.000000,0.000000,0.707107 -4532,0.707107,0.000000,0.000000,0.707107 -4533,0.707107,0.000000,0.000000,0.707107 -4534,0.707107,0.000000,0.000000,0.707107 -4535,0.707107,0.000000,0.000000,0.707107 -4536,0.707107,0.000000,0.000000,0.707107 -4537,0.707107,0.000000,0.000000,0.707107 -4538,0.707107,0.000000,0.000000,0.707107 -4539,0.707107,0.000000,0.000000,0.707107 -4540,0.707107,0.000000,0.000000,0.707107 -4541,0.707107,0.000000,0.000000,0.707107 -4542,0.707107,0.000000,0.000000,0.707107 -4543,0.707107,0.000000,0.000000,0.707107 -4544,0.707107,0.000000,0.000000,0.707107 -4545,0.707107,0.000000,0.000000,0.707107 -4546,0.707107,0.000000,0.000000,0.707107 -4547,0.707107,0.000000,0.000000,0.707107 -4548,0.707107,0.000000,0.000000,0.707107 -4549,0.707107,0.000000,0.000000,0.707107 -4550,0.707107,0.000000,0.000000,0.707107 -4551,0.707107,0.000000,0.000000,0.707107 -4552,0.707107,0.000000,0.000000,0.707107 -4553,0.707107,0.000000,0.000000,0.707107 -4554,0.707107,0.000000,0.000000,0.707107 -4555,0.707107,0.000000,0.000000,0.707107 -4556,0.707107,0.000000,0.000000,0.707107 -4557,0.707107,0.000000,0.000000,0.707107 -4558,0.707107,0.000000,0.000000,0.707107 -4559,0.707107,0.000000,0.000000,0.707107 -4560,0.707107,0.000000,0.000000,0.707107 -4561,0.707107,0.000000,0.000000,0.707107 -4562,0.707107,0.000000,0.000000,0.707107 -4563,0.707107,0.000000,0.000000,0.707107 -4564,0.707107,0.000000,0.000000,0.707107 -4565,0.707107,0.000000,0.000000,0.707107 -4566,0.707107,0.000000,0.000000,0.707107 -4567,0.707107,0.000000,0.000000,0.707107 -4568,0.707107,0.000000,0.000000,0.707107 -4569,0.707107,0.000000,0.000000,0.707107 -4570,0.707107,0.000000,0.000000,0.707107 -4571,0.707107,0.000000,0.000000,0.707107 -4572,0.707107,0.000000,0.000000,0.707107 -4573,0.707107,0.000000,0.000000,0.707107 -4574,0.707107,0.000000,0.000000,0.707107 -4575,0.707107,0.000000,0.000000,0.707107 -4576,0.707107,0.000000,0.000000,0.707107 -4577,0.707107,0.000000,0.000000,0.707107 -4578,0.707107,0.000000,0.000000,0.707107 -4579,0.707107,0.000000,0.000000,0.707107 -4580,0.707107,0.000000,0.000000,0.707107 -4581,0.707107,0.000000,0.000000,0.707107 -4582,0.707107,0.000000,0.000000,0.707107 -4583,0.707107,0.000000,0.000000,0.707107 -4584,0.707107,0.000000,0.000000,0.707107 -4585,0.707107,0.000000,0.000000,0.707107 -4586,0.707107,0.000000,0.000000,0.707107 -4587,0.707107,0.000000,0.000000,0.707107 -4588,0.707107,0.000000,0.000000,0.707107 -4589,0.707107,0.000000,0.000000,0.707107 -4590,0.707107,0.000000,0.000000,0.707107 -4591,0.707107,0.000000,0.000000,0.707107 -4592,0.707107,0.000000,0.000000,0.707107 -4593,0.707107,0.000000,0.000000,0.707107 -4594,0.707107,0.000000,0.000000,0.707107 -4595,0.707107,0.000000,0.000000,0.707107 -4596,0.707107,0.000000,0.000000,0.707107 -4597,0.707107,0.000000,0.000000,0.707107 -4598,0.707107,0.000000,0.000000,0.707107 -4599,0.707107,0.000000,0.000000,0.707107 -4600,0.707107,0.000000,0.000000,0.707107 -4601,0.707107,0.000000,0.000000,0.707107 -4602,0.707107,0.000000,0.000000,0.707107 -4603,0.707107,0.000000,0.000000,0.707107 -4604,0.707107,0.000000,0.000000,0.707107 -4605,0.707107,0.000000,0.000000,0.707107 -4606,0.707107,0.000000,0.000000,0.707107 -4607,0.707107,0.000000,0.000000,0.707107 -4608,0.707107,0.000000,0.000000,0.707107 -4609,0.707107,0.000000,0.000000,0.707107 -4610,0.707107,0.000000,0.000000,0.707107 -4611,0.707107,0.000000,0.000000,0.707107 -4612,0.707107,0.000000,0.000000,0.707107 -4613,0.707107,0.000000,0.000000,0.707107 -4614,0.707107,0.000000,0.000000,0.707107 -4615,0.707107,0.000000,0.000000,0.707107 -4616,0.707107,0.000000,0.000000,0.707107 -4617,0.707107,0.000000,0.000000,0.707107 -4618,0.707107,0.000000,0.000000,0.707107 -4619,0.707107,0.000000,0.000000,0.707107 -4620,0.707107,0.000000,0.000000,0.707107 -4621,0.707107,0.000000,0.000000,0.707107 -4622,0.707107,0.000000,0.000000,0.707107 -4623,0.707107,0.000000,0.000000,0.707107 -4624,0.707107,0.000000,0.000000,0.707107 -4625,0.707107,0.000000,0.000000,0.707107 -4626,0.707107,0.000000,0.000000,0.707107 -4627,0.707107,0.000000,0.000000,0.707107 -4628,0.707107,0.000000,0.000000,0.707107 -4629,0.707107,0.000000,0.000000,0.707107 -4630,0.707107,0.000000,0.000000,0.707107 -4631,0.707107,0.000000,0.000000,0.707107 -4632,0.707107,0.000000,0.000000,0.707107 -4633,0.707107,0.000000,0.000000,0.707107 -4634,0.707107,0.000000,0.000000,0.707107 -4635,0.707107,0.000000,0.000000,0.707107 -4636,0.707107,0.000000,0.000000,0.707107 -4637,0.707107,0.000000,0.000000,0.707107 -4638,0.707107,0.000000,0.000000,0.707107 -4639,0.707107,0.000000,0.000000,0.707107 -4640,0.707107,0.000000,0.000000,0.707107 -4641,0.707107,0.000000,0.000000,0.707107 -4642,0.707107,0.000000,0.000000,0.707107 -4643,0.707107,0.000000,0.000000,0.707107 -4644,0.707107,0.000000,0.000000,0.707107 -4645,0.707107,0.000000,0.000000,0.707107 -4646,0.707107,0.000000,0.000000,0.707107 -4647,0.707107,0.000000,0.000000,0.707107 -4648,0.707107,0.000000,0.000000,0.707107 -4649,0.707107,0.000000,0.000000,0.707107 -4650,0.707107,0.000000,0.000000,0.707107 -4651,0.707107,0.000000,0.000000,0.707107 -4652,0.707107,0.000000,0.000000,0.707107 -4653,0.707107,0.000000,0.000000,0.707107 -4654,0.707107,0.000000,0.000000,0.707107 -4655,0.707107,0.000000,0.000000,0.707107 -4656,0.707107,0.000000,0.000000,0.707107 -4657,0.707107,0.000000,0.000000,0.707107 -4658,0.707107,0.000000,0.000000,0.707107 -4659,0.707107,0.000000,0.000000,0.707107 -4660,0.707107,0.000000,0.000000,0.707107 -4661,0.707107,0.000000,0.000000,0.707107 -4662,0.707107,0.000000,0.000000,0.707107 -4663,0.707107,0.000000,0.000000,0.707107 -4664,0.707107,0.000000,0.000000,0.707107 -4665,0.707107,0.000000,0.000000,0.707107 -4666,0.707107,0.000000,0.000000,0.707107 -4667,0.707107,0.000000,0.000000,0.707107 -4668,0.707107,0.000000,0.000000,0.707107 -4669,0.707107,0.000000,0.000000,0.707107 -4670,0.707107,0.000000,0.000000,0.707107 -4671,0.707107,0.000000,0.000000,0.707107 -4672,0.707107,0.000000,0.000000,0.707107 -4673,0.707107,0.000000,0.000000,0.707107 -4674,0.707107,0.000000,0.000000,0.707107 -4675,0.707107,0.000000,0.000000,0.707107 -4676,0.707107,0.000000,0.000000,0.707107 -4677,0.707107,0.000000,0.000000,0.707107 -4678,0.707107,0.000000,0.000000,0.707107 -4679,0.707107,0.000000,0.000000,0.707107 -4680,0.707107,0.000000,0.000000,0.707107 -4681,0.707107,0.000000,0.000000,0.707107 -4682,0.707107,0.000000,0.000000,0.707107 -4683,0.707107,0.000000,0.000000,0.707107 -4684,0.707107,0.000000,0.000000,0.707107 -4685,0.707107,0.000000,0.000000,0.707107 -4686,0.707107,0.000000,0.000000,0.707107 -4687,0.707107,0.000000,0.000000,0.707107 -4688,0.707107,0.000000,0.000000,0.707107 -4689,0.707107,0.000000,0.000000,0.707107 -4690,0.707107,0.000000,0.000000,0.707107 -4691,0.707107,0.000000,0.000000,0.707107 -4692,0.707107,0.000000,0.000000,0.707107 -4693,0.707107,0.000000,0.000000,0.707107 -4694,0.707107,0.000000,0.000000,0.707107 -4695,0.707107,0.000000,0.000000,0.707107 -4696,0.707107,0.000000,0.000000,0.707107 -4697,0.707107,0.000000,0.000000,0.707107 -4698,0.707107,0.000000,0.000000,0.707107 -4699,0.707107,0.000000,0.000000,0.707107 -4700,0.707107,0.000000,0.000000,0.707107 -4701,0.707107,0.000000,0.000000,0.707107 -4702,0.707107,0.000000,0.000000,0.707107 -4703,0.707107,0.000000,0.000000,0.707107 -4704,0.707107,0.000000,0.000000,0.707107 -4705,0.707107,0.000000,0.000000,0.707107 -4706,0.707107,0.000000,0.000000,0.707107 -4707,0.707107,0.000000,0.000000,0.707107 -4708,0.707107,0.000000,0.000000,0.707107 -4709,0.707107,0.000000,0.000000,0.707107 -4710,0.707107,0.000000,0.000000,0.707107 -4711,0.707107,0.000000,0.000000,0.707107 -4712,0.707107,0.000000,0.000000,0.707107 -4713,0.707107,0.000000,0.000000,0.707107 -4714,0.707107,0.000000,0.000000,0.707107 -4715,0.707107,0.000000,0.000000,0.707107 -4716,0.707107,0.000000,0.000000,0.707107 -4717,0.707107,0.000000,0.000000,0.707107 -4718,0.707107,0.000000,0.000000,0.707107 -4719,0.707107,0.000000,0.000000,0.707107 -4720,0.707107,0.000000,0.000000,0.707107 -4721,0.707107,0.000000,0.000000,0.707107 -4722,0.707107,0.000000,0.000000,0.707107 -4723,0.707107,0.000000,0.000000,0.707107 -4724,0.707107,0.000000,0.000000,0.707107 -4725,0.707107,0.000000,0.000000,0.707107 -4726,0.707107,0.000000,0.000000,0.707107 -4727,0.707107,0.000000,0.000000,0.707107 -4728,0.707107,0.000000,0.000000,0.707107 -4729,0.707107,0.000000,0.000000,0.707107 -4730,0.707107,0.000000,0.000000,0.707107 -4731,0.707107,0.000000,0.000000,0.707107 -4732,0.707107,0.000000,0.000000,0.707107 -4733,0.707107,0.000000,0.000000,0.707107 -4734,0.707107,0.000000,0.000000,0.707107 -4735,0.707107,0.000000,0.000000,0.707107 -4736,0.707107,0.000000,0.000000,0.707107 -4737,0.707107,0.000000,0.000000,0.707107 -4738,0.707107,0.000000,0.000000,0.707107 -4739,0.707107,0.000000,0.000000,0.707107 -4740,0.707107,0.000000,0.000000,0.707107 -4741,0.707107,0.000000,0.000000,0.707107 -4742,0.707107,0.000000,0.000000,0.707107 -4743,0.707107,0.000000,0.000000,0.707107 -4744,0.707107,0.000000,0.000000,0.707107 -4745,0.707107,0.000000,0.000000,0.707107 -4746,0.707107,0.000000,0.000000,0.707107 -4747,0.707107,0.000000,0.000000,0.707107 -4748,0.707107,0.000000,0.000000,0.707107 -4749,0.707107,0.000000,0.000000,0.707107 -4750,0.707107,0.000000,0.000000,0.707107 -4751,0.707107,0.000000,0.000000,0.707107 -4752,0.707107,0.000000,0.000000,0.707107 -4753,0.707107,0.000000,0.000000,0.707107 -4754,0.707107,0.000000,0.000000,0.707107 -4755,0.707107,0.000000,0.000000,0.707107 -4756,0.707107,0.000000,0.000000,0.707107 -4757,0.707107,0.000000,0.000000,0.707107 -4758,0.707107,0.000000,0.000000,0.707107 -4759,0.707107,0.000000,0.000000,0.707107 -4760,0.707107,0.000000,0.000000,0.707107 -4761,0.707107,0.000000,0.000000,0.707107 -4762,0.707107,0.000000,0.000000,0.707107 -4763,0.707107,0.000000,0.000000,0.707107 -4764,0.707107,0.000000,0.000000,0.707107 -4765,0.707107,0.000000,0.000000,0.707107 -4766,0.707107,0.000000,0.000000,0.707107 -4767,0.707107,0.000000,0.000000,0.707107 -4768,0.707107,0.000000,0.000000,0.707107 -4769,0.707107,0.000000,0.000000,0.707107 -4770,0.707107,0.000000,0.000000,0.707107 -4771,0.707107,0.000000,0.000000,0.707107 -4772,0.707107,0.000000,0.000000,0.707107 -4773,0.707107,0.000000,0.000000,0.707107 -4774,0.707107,0.000000,0.000000,0.707107 -4775,0.707107,0.000000,0.000000,0.707107 -4776,0.707107,0.000000,0.000000,0.707107 -4777,0.707107,0.000000,0.000000,0.707107 -4778,0.707107,0.000000,0.000000,0.707107 -4779,0.707107,0.000000,0.000000,0.707107 -4780,0.707107,0.000000,0.000000,0.707107 -4781,0.707107,0.000000,0.000000,0.707107 -4782,0.707107,0.000000,0.000000,0.707107 -4783,0.707107,0.000000,0.000000,0.707107 -4784,0.707107,0.000000,0.000000,0.707107 -4785,0.707107,0.000000,0.000000,0.707107 -4786,0.707107,0.000000,0.000000,0.707107 -4787,0.707107,0.000000,0.000000,0.707107 -4788,0.707107,0.000000,0.000000,0.707107 -4789,0.707107,0.000000,0.000000,0.707107 -4790,0.707107,0.000000,0.000000,0.707107 -4791,0.707107,0.000000,0.000000,0.707107 -4792,0.707107,0.000000,0.000000,0.707107 -4793,0.707107,0.000000,0.000000,0.707107 -4794,0.707107,0.000000,0.000000,0.707107 -4795,0.707107,0.000000,0.000000,0.707107 -4796,0.707107,0.000000,0.000000,0.707107 -4797,0.707107,0.000000,0.000000,0.707107 -4798,0.707107,0.000000,0.000000,0.707107 -4799,0.707107,0.000000,0.000000,0.707107 -4800,0.707107,0.000000,0.000000,0.707107 -4801,0.707107,0.000000,0.000000,0.707107 -4802,0.707107,0.000000,0.000000,0.707107 -4803,0.707107,0.000000,0.000000,0.707107 -4804,0.707107,0.000000,0.000000,0.707107 -4805,0.707107,0.000000,0.000000,0.707107 -4806,0.707107,0.000000,0.000000,0.707107 -4807,0.707107,0.000000,0.000000,0.707107 -4808,0.707107,0.000000,0.000000,0.707107 -4809,0.707107,0.000000,0.000000,0.707107 -4810,0.707107,0.000000,0.000000,0.707107 -4811,0.707107,0.000000,0.000000,0.707107 -4812,0.707107,0.000000,0.000000,0.707107 -4813,0.707107,0.000000,0.000000,0.707107 -4814,0.707107,0.000000,0.000000,0.707107 -4815,0.707107,0.000000,0.000000,0.707107 -4816,0.707107,0.000000,0.000000,0.707107 -4817,0.707107,0.000000,0.000000,0.707107 -4818,0.707107,0.000000,0.000000,0.707107 -4819,0.707107,0.000000,0.000000,0.707107 -4820,0.707107,0.000000,0.000000,0.707107 -4821,0.707107,0.000000,0.000000,0.707107 -4822,0.707107,0.000000,0.000000,0.707107 -4823,0.707107,0.000000,0.000000,0.707107 -4824,0.707107,0.000000,0.000000,0.707107 -4825,0.707107,0.000000,0.000000,0.707107 -4826,0.707107,0.000000,0.000000,0.707107 -4827,0.707107,0.000000,0.000000,0.707107 -4828,0.707107,0.000000,0.000000,0.707107 -4829,0.707107,0.000000,0.000000,0.707107 -4830,0.707107,0.000000,0.000000,0.707107 -4831,0.707107,0.000000,0.000000,0.707107 -4832,0.707107,0.000000,0.000000,0.707107 -4833,0.707107,0.000000,0.000000,0.707107 -4834,0.707107,0.000000,0.000000,0.707107 -4835,0.707107,0.000000,0.000000,0.707107 -4836,0.707107,0.000000,0.000000,0.707107 -4837,0.707107,0.000000,0.000000,0.707107 -4838,0.707107,0.000000,0.000000,0.707107 -4839,0.707107,0.000000,0.000000,0.707107 -4840,0.707107,0.000000,0.000000,0.707107 -4841,0.707107,0.000000,0.000000,0.707107 -4842,0.707107,0.000000,0.000000,0.707107 -4843,0.707107,0.000000,0.000000,0.707107 -4844,0.707107,0.000000,0.000000,0.707107 -4845,0.707107,0.000000,0.000000,0.707107 -4846,0.707107,0.000000,0.000000,0.707107 -4847,0.707107,0.000000,0.000000,0.707107 -4848,0.707107,0.000000,0.000000,0.707107 -4849,0.707107,0.000000,0.000000,0.707107 -4850,0.707107,0.000000,0.000000,0.707107 -4851,0.707107,0.000000,0.000000,0.707107 -4852,0.707107,0.000000,0.000000,0.707107 -4853,0.707107,0.000000,0.000000,0.707107 -4854,0.707107,0.000000,0.000000,0.707107 -4855,0.707107,0.000000,0.000000,0.707107 -4856,0.707107,0.000000,0.000000,0.707107 -4857,0.707107,0.000000,0.000000,0.707107 -4858,0.707107,0.000000,0.000000,0.707107 -4859,0.707107,0.000000,0.000000,0.707107 -4860,0.707107,0.000000,0.000000,0.707107 -4861,0.707107,0.000000,0.000000,0.707107 -4862,0.707107,0.000000,0.000000,0.707107 -4863,0.707107,0.000000,0.000000,0.707107 -4864,0.707107,0.000000,0.000000,0.707107 -4865,0.707107,0.000000,0.000000,0.707107 -4866,0.707107,0.000000,0.000000,0.707107 -4867,0.707107,0.000000,0.000000,0.707107 -4868,0.707107,0.000000,0.000000,0.707107 -4869,0.707107,0.000000,0.000000,0.707107 -4870,0.707107,0.000000,0.000000,0.707107 -4871,0.707107,0.000000,0.000000,0.707107 -4872,0.707107,0.000000,0.000000,0.707107 -4873,0.707107,0.000000,0.000000,0.707107 -4874,0.707107,0.000000,0.000000,0.707107 -4875,0.707107,0.000000,0.000000,0.707107 -4876,0.707107,0.000000,0.000000,0.707107 -4877,0.707107,0.000000,0.000000,0.707107 -4878,0.707107,0.000000,0.000000,0.707107 -4879,0.707107,0.000000,0.000000,0.707107 -4880,0.707107,0.000000,0.000000,0.707107 -4881,0.707107,0.000000,0.000000,0.707107 -4882,0.707107,0.000000,0.000000,0.707107 -4883,0.707107,0.000000,0.000000,0.707107 -4884,0.707107,0.000000,0.000000,0.707107 -4885,0.707107,0.000000,0.000000,0.707107 -4886,0.707107,0.000000,0.000000,0.707107 -4887,0.707107,0.000000,0.000000,0.707107 -4888,0.707107,0.000000,0.000000,0.707107 -4889,0.707107,0.000000,0.000000,0.707107 -4890,0.707107,0.000000,0.000000,0.707107 -4891,0.707107,0.000000,0.000000,0.707107 -4892,0.707107,0.000000,0.000000,0.707107 -4893,0.707107,0.000000,0.000000,0.707107 -4894,0.707107,0.000000,0.000000,0.707107 -4895,0.707107,0.000000,0.000000,0.707107 -4896,0.707107,0.000000,0.000000,0.707107 -4897,0.707107,0.000000,0.000000,0.707107 -4898,0.707107,0.000000,0.000000,0.707107 -4899,0.707107,0.000000,0.000000,0.707107 -4900,0.707107,0.000000,0.000000,0.707107 -4901,0.707107,0.000000,0.000000,0.707107 -4902,0.707107,0.000000,0.000000,0.707107 -4903,0.707107,0.000000,0.000000,0.707107 -4904,0.707107,0.000000,0.000000,0.707107 -4905,0.707107,0.000000,0.000000,0.707107 -4906,0.707107,0.000000,0.000000,0.707107 -4907,0.707107,0.000000,0.000000,0.707107 -4908,0.707107,0.000000,0.000000,0.707107 -4909,0.707107,0.000000,0.000000,0.707107 -4910,0.707107,0.000000,0.000000,0.707107 -4911,0.707107,0.000000,0.000000,0.707107 -4912,0.707107,0.000000,0.000000,0.707107 -4913,0.707107,0.000000,0.000000,0.707107 -4914,0.707107,0.000000,0.000000,0.707107 -4915,0.707107,0.000000,0.000000,0.707107 -4916,0.707107,0.000000,0.000000,0.707107 -4917,0.707107,0.000000,0.000000,0.707107 -4918,0.707107,0.000000,0.000000,0.707107 -4919,0.707107,0.000000,0.000000,0.707107 -4920,0.707107,0.000000,0.000000,0.707107 -4921,0.707107,0.000000,0.000000,0.707107 -4922,0.707107,0.000000,0.000000,0.707107 -4923,0.707107,0.000000,0.000000,0.707107 -4924,0.707107,0.000000,0.000000,0.707107 -4925,0.707107,0.000000,0.000000,0.707107 -4926,0.707107,0.000000,0.000000,0.707107 -4927,0.707107,0.000000,0.000000,0.707107 -4928,0.707107,0.000000,0.000000,0.707107 -4929,0.707107,0.000000,0.000000,0.707107 -4930,0.707107,0.000000,0.000000,0.707107 -4931,0.707107,0.000000,0.000000,0.707107 -4932,0.707107,0.000000,0.000000,0.707107 -4933,0.707107,0.000000,0.000000,0.707107 -4934,0.707107,0.000000,0.000000,0.707107 -4935,0.707107,0.000000,0.000000,0.707107 -4936,0.707107,0.000000,0.000000,0.707107 -4937,0.707107,0.000000,0.000000,0.707107 -4938,0.707107,0.000000,0.000000,0.707107 -4939,0.707107,0.000000,0.000000,0.707107 -4940,0.707107,0.000000,0.000000,0.707107 -4941,0.707107,0.000000,0.000000,0.707107 -4942,0.707107,0.000000,0.000000,0.707107 -4943,0.707107,0.000000,0.000000,0.707107 -4944,0.707107,0.000000,0.000000,0.707107 -4945,0.707107,0.000000,0.000000,0.707107 -4946,0.707107,0.000000,0.000000,0.707107 -4947,0.707107,0.000000,0.000000,0.707107 -4948,0.707107,0.000000,0.000000,0.707107 -4949,0.707107,0.000000,0.000000,0.707107 -4950,0.707107,0.000000,0.000000,0.707107 -4951,0.707107,0.000000,0.000000,0.707107 -4952,0.707107,0.000000,0.000000,0.707107 -4953,0.707107,0.000000,0.000000,0.707107 -4954,0.707107,0.000000,0.000000,0.707107 -4955,0.707107,0.000000,0.000000,0.707107 -4956,0.707107,0.000000,0.000000,0.707107 -4957,0.707107,0.000000,0.000000,0.707107 -4958,0.707107,0.000000,0.000000,0.707107 -4959,0.707107,0.000000,0.000000,0.707107 -4960,0.707107,0.000000,0.000000,0.707107 -4961,0.707107,0.000000,0.000000,0.707107 -4962,0.707107,0.000000,0.000000,0.707107 -4963,0.707107,0.000000,0.000000,0.707107 -4964,0.707107,0.000000,0.000000,0.707107 -4965,0.707107,0.000000,0.000000,0.707107 -4966,0.707107,0.000000,0.000000,0.707107 -4967,0.707107,0.000000,0.000000,0.707107 -4968,0.707107,0.000000,0.000000,0.707107 -4969,0.707107,0.000000,0.000000,0.707107 -4970,0.707107,0.000000,0.000000,0.707107 -4971,0.707107,0.000000,0.000000,0.707107 -4972,0.707107,0.000000,0.000000,0.707107 -4973,0.707107,0.000000,0.000000,0.707107 -4974,0.707107,0.000000,0.000000,0.707107 -4975,0.707107,0.000000,0.000000,0.707107 -4976,0.707107,0.000000,0.000000,0.707107 -4977,0.707107,0.000000,0.000000,0.707107 -4978,0.707107,0.000000,0.000000,0.707107 -4979,0.707107,0.000000,0.000000,0.707107 -4980,0.707107,0.000000,0.000000,0.707107 -4981,0.707107,0.000000,0.000000,0.707107 -4982,0.707107,0.000000,0.000000,0.707107 -4983,0.707107,0.000000,0.000000,0.707107 -4984,0.707107,0.000000,0.000000,0.707107 -4985,0.707107,0.000000,0.000000,0.707107 -4986,0.707107,0.000000,0.000000,0.707107 -4987,0.707107,0.000000,0.000000,0.707107 -4988,0.707107,0.000000,0.000000,0.707107 -4989,0.707107,0.000000,0.000000,0.707107 -4990,0.707107,0.000000,0.000000,0.707107 -4991,0.707107,0.000000,0.000000,0.707107 -4992,0.707107,0.000000,0.000000,0.707107 -4993,0.707107,0.000000,0.000000,0.707107 -4994,0.707107,0.000000,0.000000,0.707107 -4995,0.707107,0.000000,0.000000,0.707107 -4996,0.707107,0.000000,0.000000,0.707107 -4997,0.707107,0.000000,0.000000,0.707107 -4998,0.707107,0.000000,0.000000,0.707107 -4999,0.707107,0.000000,0.000000,0.707107 -5000,0.707107,0.000000,0.000000,0.707107 -5001,0.707107,0.000000,0.000000,0.707107 -5002,0.707107,0.000000,0.000000,0.707107 -5003,0.707107,0.000000,0.000000,0.707107 -5004,0.707107,0.000000,0.000000,0.707107 -5005,0.707107,0.000000,0.000000,0.707107 -5006,0.707107,0.000000,0.000000,0.707107 -5007,0.707107,0.000000,0.000000,0.707107 -5008,0.707107,0.000000,0.000000,0.707107 -5009,0.707107,0.000000,0.000000,0.707107 -5010,0.707107,0.000000,0.000000,0.707107 -5011,0.707107,0.000000,0.000000,0.707107 -5012,0.707107,0.000000,0.000000,0.707107 -5013,0.707107,0.000000,0.000000,0.707107 -5014,0.707107,0.000000,0.000000,0.707107 -5015,0.707107,0.000000,0.000000,0.707107 -5016,0.707107,0.000000,0.000000,0.707107 -5017,0.707107,0.000000,0.000000,0.707107 -5018,0.707107,0.000000,0.000000,0.707107 -5019,0.707107,0.000000,0.000000,0.707107 -5020,0.707107,0.000000,0.000000,0.707107 -5021,0.707107,0.000000,0.000000,0.707107 -5022,0.707107,0.000000,0.000000,0.707107 -5023,0.707107,0.000000,0.000000,0.707107 -5024,0.707107,0.000000,0.000000,0.707107 -5025,0.707107,0.000000,0.000000,0.707107 -5026,0.707107,0.000000,0.000000,0.707107 -5027,0.707107,0.000000,0.000000,0.707107 -5028,0.707107,0.000000,0.000000,0.707107 -5029,0.707107,0.000000,0.000000,0.707107 -5030,0.707107,0.000000,0.000000,0.707107 -5031,0.707107,0.000000,0.000000,0.707107 -5032,0.707107,0.000000,0.000000,0.707107 -5033,0.707107,0.000000,0.000000,0.707107 -5034,0.707107,0.000000,0.000000,0.707107 -5035,0.707107,0.000000,0.000000,0.707107 -5036,0.707107,0.000000,0.000000,0.707107 -5037,0.707107,0.000000,0.000000,0.707107 -5038,0.707107,0.000000,0.000000,0.707107 -5039,0.707107,0.000000,0.000000,0.707107 -5040,0.707107,0.000000,0.000000,0.707107 -5041,0.707107,0.000000,0.000000,0.707107 -5042,0.707107,0.000000,0.000000,0.707107 -5043,0.707107,0.000000,0.000000,0.707107 -5044,0.707107,0.000000,0.000000,0.707107 -5045,0.707107,0.000000,0.000000,0.707107 -5046,0.707107,0.000000,0.000000,0.707107 -5047,0.707107,0.000000,0.000000,0.707107 -5048,0.707107,0.000000,0.000000,0.707107 -5049,0.707107,0.000000,0.000000,0.707107 -5050,0.707107,0.000000,0.000000,0.707107 -5051,0.707107,0.000000,0.000000,0.707107 -5052,0.707107,0.000000,0.000000,0.707107 -5053,0.707107,0.000000,0.000000,0.707107 -5054,0.707107,0.000000,0.000000,0.707107 -5055,0.707107,0.000000,0.000000,0.707107 -5056,0.707107,0.000000,0.000000,0.707107 -5057,0.707107,0.000000,0.000000,0.707107 -5058,0.707107,0.000000,0.000000,0.707107 -5059,0.707107,0.000000,0.000000,0.707107 -5060,0.707107,0.000000,0.000000,0.707107 -5061,0.707107,0.000000,0.000000,0.707107 -5062,0.707107,0.000000,0.000000,0.707107 -5063,0.707107,0.000000,0.000000,0.707107 -5064,0.707107,0.000000,0.000000,0.707107 -5065,0.707107,0.000000,0.000000,0.707107 -5066,0.707107,0.000000,0.000000,0.707107 -5067,0.707107,0.000000,0.000000,0.707107 -5068,0.707107,0.000000,0.000000,0.707107 -5069,0.707107,0.000000,0.000000,0.707107 -5070,0.707107,0.000000,0.000000,0.707107 -5071,0.707107,0.000000,0.000000,0.707107 -5072,0.707107,0.000000,0.000000,0.707107 -5073,0.707107,0.000000,0.000000,0.707107 -5074,0.707107,0.000000,0.000000,0.707107 -5075,0.707107,0.000000,0.000000,0.707107 -5076,0.707107,0.000000,0.000000,0.707107 -5077,0.707107,0.000000,0.000000,0.707107 -5078,0.707107,0.000000,0.000000,0.707107 -5079,0.707107,0.000000,0.000000,0.707107 -5080,0.707107,0.000000,0.000000,0.707107 -5081,0.707107,0.000000,0.000000,0.707107 -5082,0.707107,0.000000,0.000000,0.707107 -5083,0.707107,0.000000,0.000000,0.707107 -5084,0.707107,0.000000,0.000000,0.707107 -5085,0.707107,0.000000,0.000000,0.707107 -5086,0.707107,0.000000,0.000000,0.707107 -5087,0.707107,0.000000,0.000000,0.707107 -5088,0.707107,0.000000,0.000000,0.707107 -5089,0.707107,0.000000,0.000000,0.707107 -5090,0.707107,0.000000,0.000000,0.707107 -5091,0.707107,0.000000,0.000000,0.707107 -5092,0.707107,0.000000,0.000000,0.707107 -5093,0.707107,0.000000,0.000000,0.707107 -5094,0.707107,0.000000,0.000000,0.707107 -5095,0.707107,0.000000,0.000000,0.707107 -5096,0.707107,0.000000,0.000000,0.707107 -5097,0.707107,0.000000,0.000000,0.707107 -5098,0.707107,0.000000,0.000000,0.707107 -5099,0.707107,0.000000,0.000000,0.707107 -5100,0.707107,0.000000,0.000000,0.707107 -5101,0.707107,0.000000,0.000000,0.707107 -5102,0.707107,0.000000,0.000000,0.707107 -5103,0.707107,0.000000,0.000000,0.707107 -5104,0.707107,0.000000,0.000000,0.707107 -5105,0.707107,0.000000,0.000000,0.707107 -5106,0.707107,0.000000,0.000000,0.707107 -5107,0.707107,0.000000,0.000000,0.707107 -5108,0.707107,0.000000,0.000000,0.707107 -5109,0.707107,0.000000,0.000000,0.707107 -5110,0.707107,0.000000,0.000000,0.707107 -5111,0.707107,0.000000,0.000000,0.707107 -5112,0.707107,0.000000,0.000000,0.707107 -5113,0.707107,0.000000,0.000000,0.707107 -5114,0.707107,0.000000,0.000000,0.707107 -5115,0.707107,0.000000,0.000000,0.707107 -5116,0.707107,0.000000,0.000000,0.707107 -5117,0.707107,0.000000,0.000000,0.707107 -5118,0.707107,0.000000,0.000000,0.707107 -5119,0.707107,0.000000,0.000000,0.707107 -5120,0.707107,0.000000,0.000000,0.707107 -5121,0.707107,0.000000,0.000000,0.707107 -5122,0.707107,0.000000,0.000000,0.707107 -5123,0.707107,0.000000,0.000000,0.707107 -5124,0.707107,0.000000,0.000000,0.707107 -5125,0.707107,0.000000,0.000000,0.707107 -5126,0.707107,0.000000,0.000000,0.707107 -5127,0.707107,0.000000,0.000000,0.707107 -5128,0.707107,0.000000,0.000000,0.707107 -5129,0.707107,0.000000,0.000000,0.707107 -5130,0.707107,0.000000,0.000000,0.707107 -5131,0.707107,0.000000,0.000000,0.707107 -5132,0.707107,0.000000,0.000000,0.707107 -5133,0.707107,0.000000,0.000000,0.707107 -5134,0.707107,0.000000,0.000000,0.707107 -5135,0.707107,0.000000,0.000000,0.707107 -5136,0.707107,0.000000,0.000000,0.707107 -5137,0.707107,0.000000,0.000000,0.707107 -5138,0.707107,0.000000,0.000000,0.707107 -5139,0.707107,0.000000,0.000000,0.707107 -5140,0.707107,0.000000,0.000000,0.707107 -5141,0.707107,0.000000,0.000000,0.707107 -5142,0.707107,0.000000,0.000000,0.707107 -5143,0.707107,0.000000,0.000000,0.707107 -5144,0.707107,0.000000,0.000000,0.707107 -5145,0.707107,0.000000,0.000000,0.707107 -5146,0.707107,0.000000,0.000000,0.707107 -5147,0.707107,0.000000,0.000000,0.707107 -5148,0.707107,0.000000,0.000000,0.707107 -5149,0.707107,0.000000,0.000000,0.707107 -5150,0.707107,0.000000,0.000000,0.707107 -5151,0.707107,0.000000,0.000000,0.707107 -5152,0.707107,0.000000,0.000000,0.707107 -5153,0.707107,0.000000,0.000000,0.707107 -5154,0.707107,0.000000,0.000000,0.707107 -5155,0.707107,0.000000,0.000000,0.707107 -5156,0.707107,0.000000,0.000000,0.707107 -5157,0.707107,0.000000,0.000000,0.707107 -5158,0.707107,0.000000,0.000000,0.707107 -5159,0.707107,0.000000,0.000000,0.707107 -5160,0.707107,0.000000,0.000000,0.707107 -5161,0.707107,0.000000,0.000000,0.707107 -5162,0.707107,0.000000,0.000000,0.707107 -5163,0.707107,0.000000,0.000000,0.707107 -5164,0.707107,0.000000,0.000000,0.707107 -5165,0.707107,0.000000,0.000000,0.707107 -5166,0.707107,0.000000,0.000000,0.707107 -5167,0.707107,0.000000,0.000000,0.707107 -5168,0.707107,0.000000,0.000000,0.707107 -5169,0.707107,0.000000,0.000000,0.707107 -5170,0.707107,0.000000,0.000000,0.707107 -5171,0.707107,0.000000,0.000000,0.707107 -5172,0.707107,0.000000,0.000000,0.707107 -5173,0.707107,0.000000,0.000000,0.707107 -5174,0.707107,0.000000,0.000000,0.707107 -5175,0.707107,0.000000,0.000000,0.707107 -5176,0.707107,0.000000,0.000000,0.707107 -5177,0.707107,0.000000,0.000000,0.707107 -5178,0.707107,0.000000,0.000000,0.707107 -5179,0.707107,0.000000,0.000000,0.707107 -5180,0.707107,0.000000,0.000000,0.707107 -5181,0.707107,0.000000,0.000000,0.707107 -5182,0.707107,0.000000,0.000000,0.707107 -5183,0.707107,0.000000,0.000000,0.707107 -5184,0.707107,0.000000,0.000000,0.707107 -5185,0.707107,0.000000,0.000000,0.707107 -5186,0.707107,0.000000,0.000000,0.707107 -5187,0.707107,0.000000,0.000000,0.707107 -5188,0.707107,0.000000,0.000000,0.707107 -5189,0.707107,0.000000,0.000000,0.707107 -5190,0.707107,0.000000,0.000000,0.707107 -5191,0.707107,0.000000,0.000000,0.707107 -5192,0.707107,0.000000,0.000000,0.707107 -5193,0.707107,0.000000,0.000000,0.707107 -5194,0.707107,0.000000,0.000000,0.707107 -5195,0.707107,0.000000,0.000000,0.707107 -5196,0.707107,0.000000,0.000000,0.707107 -5197,0.707107,0.000000,0.000000,0.707107 -5198,0.707107,0.000000,0.000000,0.707107 -5199,0.707107,0.000000,0.000000,0.707107 -5200,0.707107,0.000000,0.000000,0.707107 -5201,0.707107,0.000000,0.000000,0.707107 -5202,0.707107,0.000000,0.000000,0.707107 -5203,0.707107,0.000000,0.000000,0.707107 -5204,0.707107,0.000000,0.000000,0.707107 -5205,0.707107,0.000000,0.000000,0.707107 -5206,0.707107,0.000000,0.000000,0.707107 -5207,0.707107,0.000000,0.000000,0.707107 -5208,0.707107,0.000000,0.000000,0.707107 -5209,0.707107,0.000000,0.000000,0.707107 -5210,0.707107,0.000000,0.000000,0.707107 -5211,0.707107,0.000000,0.000000,0.707107 -5212,0.707107,0.000000,0.000000,0.707107 -5213,0.707107,0.000000,0.000000,0.707107 -5214,0.707107,0.000000,0.000000,0.707107 -5215,0.707107,0.000000,0.000000,0.707107 -5216,0.707107,0.000000,0.000000,0.707107 -5217,0.707107,0.000000,0.000000,0.707107 -5218,0.707107,0.000000,0.000000,0.707107 -5219,0.707107,0.000000,0.000000,0.707107 -5220,0.707107,0.000000,0.000000,0.707107 -5221,0.707107,0.000000,0.000000,0.707107 -5222,0.707107,0.000000,0.000000,0.707107 -5223,0.707107,0.000000,0.000000,0.707107 -5224,0.707107,0.000000,0.000000,0.707107 -5225,0.707107,0.000000,0.000000,0.707107 -5226,0.707107,0.000000,0.000000,0.707107 -5227,0.707107,0.000000,0.000000,0.707107 -5228,0.707107,0.000000,0.000000,0.707107 -5229,0.707107,0.000000,0.000000,0.707107 -5230,0.707107,0.000000,0.000000,0.707107 -5231,0.707107,0.000000,0.000000,0.707107 -5232,0.707107,0.000000,0.000000,0.707107 -5233,0.707107,0.000000,0.000000,0.707107 -5234,0.707107,0.000000,0.000000,0.707107 -5235,0.707107,0.000000,0.000000,0.707107 -5236,0.707107,0.000000,0.000000,0.707107 -5237,0.707107,0.000000,0.000000,0.707107 -5238,0.707107,0.000000,0.000000,0.707107 -5239,0.707107,0.000000,0.000000,0.707107 -5240,0.707107,0.000000,0.000000,0.707107 -5241,0.707107,0.000000,0.000000,0.707107 -5242,0.707107,0.000000,0.000000,0.707107 -5243,0.707107,0.000000,0.000000,0.707107 -5244,0.707107,0.000000,0.000000,0.707107 -5245,0.707107,0.000000,0.000000,0.707107 -5246,0.707107,0.000000,0.000000,0.707107 -5247,0.707107,0.000000,0.000000,0.707107 -5248,0.707107,0.000000,0.000000,0.707107 -5249,0.707107,0.000000,0.000000,0.707107 -5250,0.707107,0.000000,0.000000,0.707107 -5251,0.707107,0.000000,0.000000,0.707107 -5252,0.707107,0.000000,0.000000,0.707107 -5253,0.707107,0.000000,0.000000,0.707107 -5254,0.707107,0.000000,0.000000,0.707107 -5255,0.707107,0.000000,0.000000,0.707107 -5256,0.707107,0.000000,0.000000,0.707107 -5257,0.707107,0.000000,0.000000,0.707107 -5258,0.707107,0.000000,0.000000,0.707107 -5259,0.707107,0.000000,0.000000,0.707107 -5260,0.707107,0.000000,0.000000,0.707107 -5261,0.707107,0.000000,0.000000,0.707107 -5262,0.707107,0.000000,0.000000,0.707107 -5263,0.707107,0.000000,0.000000,0.707107 -5264,0.707107,0.000000,0.000000,0.707107 -5265,0.707107,0.000000,0.000000,0.707107 -5266,0.707107,0.000000,0.000000,0.707107 -5267,0.707107,0.000000,0.000000,0.707107 -5268,0.707107,0.000000,0.000000,0.707107 -5269,0.707107,0.000000,0.000000,0.707107 -5270,0.707107,0.000000,0.000000,0.707107 -5271,0.707107,0.000000,0.000000,0.707107 -5272,0.707107,0.000000,0.000000,0.707107 -5273,0.707107,0.000000,0.000000,0.707107 -5274,0.707107,0.000000,0.000000,0.707107 -5275,0.707107,0.000000,0.000000,0.707107 -5276,0.707107,0.000000,0.000000,0.707107 -5277,0.707107,0.000000,0.000000,0.707107 -5278,0.707107,0.000000,0.000000,0.707107 -5279,0.707107,0.000000,0.000000,0.707107 -5280,0.707107,0.000000,0.000000,0.707107 -5281,0.707107,0.000000,0.000000,0.707107 -5282,0.707107,0.000000,0.000000,0.707107 -5283,0.707107,0.000000,0.000000,0.707107 -5284,0.707107,0.000000,0.000000,0.707107 -5285,0.707107,0.000000,0.000000,0.707107 -5286,0.707107,0.000000,0.000000,0.707107 -5287,0.707107,0.000000,0.000000,0.707107 -5288,0.707107,0.000000,0.000000,0.707107 -5289,0.707107,0.000000,0.000000,0.707107 -5290,0.707107,0.000000,0.000000,0.707107 -5291,0.707107,0.000000,0.000000,0.707107 -5292,0.707107,0.000000,0.000000,0.707107 -5293,0.707107,0.000000,0.000000,0.707107 -5294,0.707107,0.000000,0.000000,0.707107 -5295,0.707107,0.000000,0.000000,0.707107 -5296,0.707107,0.000000,0.000000,0.707107 -5297,0.707107,0.000000,0.000000,0.707107 -5298,0.707107,0.000000,0.000000,0.707107 -5299,0.707107,0.000000,0.000000,0.707107 -5300,0.707107,0.000000,0.000000,0.707107 -5301,0.707107,0.000000,0.000000,0.707107 -5302,0.707107,0.000000,0.000000,0.707107 -5303,0.707107,0.000000,0.000000,0.707107 -5304,0.707107,0.000000,0.000000,0.707107 -5305,0.707107,0.000000,0.000000,0.707107 -5306,0.707107,0.000000,0.000000,0.707107 -5307,0.707107,0.000000,0.000000,0.707107 -5308,0.707107,0.000000,0.000000,0.707107 -5309,0.707107,0.000000,0.000000,0.707107 -5310,0.707107,0.000000,0.000000,0.707107 -5311,0.707107,0.000000,0.000000,0.707107 -5312,0.707107,0.000000,0.000000,0.707107 -5313,0.707107,0.000000,0.000000,0.707107 -5314,0.707107,0.000000,0.000000,0.707107 -5315,0.707107,0.000000,0.000000,0.707107 -5316,0.707107,0.000000,0.000000,0.707107 -5317,0.707107,0.000000,0.000000,0.707107 -5318,0.707107,0.000000,0.000000,0.707107 -5319,0.707107,0.000000,0.000000,0.707107 -5320,0.707107,0.000000,0.000000,0.707107 -5321,0.707107,0.000000,0.000000,0.707107 -5322,0.707107,0.000000,0.000000,0.707107 -5323,0.707107,0.000000,0.000000,0.707107 -5324,0.707107,0.000000,0.000000,0.707107 -5325,0.707107,0.000000,0.000000,0.707107 -5326,0.707107,0.000000,0.000000,0.707107 -5327,0.707107,0.000000,0.000000,0.707107 -5328,0.707107,0.000000,0.000000,0.707107 -5329,0.707107,0.000000,0.000000,0.707107 -5330,0.707107,0.000000,0.000000,0.707107 -5331,0.707107,0.000000,0.000000,0.707107 -5332,0.707107,0.000000,0.000000,0.707107 -5333,0.707107,0.000000,0.000000,0.707107 -5334,0.707107,0.000000,0.000000,0.707107 -5335,0.707107,0.000000,0.000000,0.707107 -5336,0.707107,0.000000,0.000000,0.707107 -5337,0.707107,0.000000,0.000000,0.707107 -5338,0.707107,0.000000,0.000000,0.707107 -5339,0.707107,0.000000,0.000000,0.707107 -5340,0.707107,0.000000,0.000000,0.707107 -5341,0.707107,0.000000,0.000000,0.707107 -5342,0.707107,0.000000,0.000000,0.707107 -5343,0.707107,0.000000,0.000000,0.707107 -5344,0.707107,0.000000,0.000000,0.707107 -5345,0.707107,0.000000,0.000000,0.707107 -5346,0.707107,0.000000,0.000000,0.707107 -5347,0.707107,0.000000,0.000000,0.707107 -5348,0.707107,0.000000,0.000000,0.707107 -5349,0.707107,0.000000,0.000000,0.707107 -5350,0.707107,0.000000,0.000000,0.707107 -5351,0.707107,0.000000,0.000000,0.707107 -5352,0.707107,0.000000,0.000000,0.707107 -5353,0.707107,0.000000,0.000000,0.707107 -5354,0.707107,0.000000,0.000000,0.707107 -5355,0.707107,0.000000,0.000000,0.707107 -5356,0.707107,0.000000,0.000000,0.707107 -5357,0.707107,0.000000,0.000000,0.707107 -5358,0.707107,0.000000,0.000000,0.707107 -5359,0.707107,0.000000,0.000000,0.707107 -5360,0.707107,0.000000,0.000000,0.707107 -5361,0.707107,0.000000,0.000000,0.707107 -5362,0.707107,0.000000,0.000000,0.707107 -5363,0.707107,0.000000,0.000000,0.707107 -5364,0.707107,0.000000,0.000000,0.707107 -5365,0.707107,0.000000,0.000000,0.707107 -5366,0.707107,0.000000,0.000000,0.707107 -5367,0.707107,0.000000,0.000000,0.707107 -5368,0.707107,0.000000,0.000000,0.707107 -5369,0.707107,0.000000,0.000000,0.707107 -5370,0.707107,0.000000,0.000000,0.707107 -5371,0.707107,0.000000,0.000000,0.707107 -5372,0.707107,0.000000,0.000000,0.707107 -5373,0.707107,0.000000,0.000000,0.707107 -5374,0.707107,0.000000,0.000000,0.707107 -5375,0.707107,0.000000,0.000000,0.707107 -5376,0.707107,0.000000,0.000000,0.707107 -5377,0.707107,0.000000,0.000000,0.707107 -5378,0.707107,0.000000,0.000000,0.707107 -5379,0.707107,0.000000,0.000000,0.707107 -5380,0.707107,0.000000,0.000000,0.707107 -5381,0.707107,0.000000,0.000000,0.707107 -5382,0.707107,0.000000,0.000000,0.707107 -5383,0.707107,0.000000,0.000000,0.707107 -5384,0.707107,0.000000,0.000000,0.707107 -5385,0.707107,0.000000,0.000000,0.707107 -5386,0.707107,0.000000,0.000000,0.707107 -5387,0.707107,0.000000,0.000000,0.707107 -5388,0.707107,0.000000,0.000000,0.707107 -5389,0.707107,0.000000,0.000000,0.707107 -5390,0.707107,0.000000,0.000000,0.707107 -5391,0.707107,0.000000,0.000000,0.707107 -5392,0.707107,0.000000,0.000000,0.707107 -5393,0.707107,0.000000,0.000000,0.707107 -5394,0.707107,0.000000,0.000000,0.707107 -5395,0.707107,0.000000,0.000000,0.707107 -5396,0.707107,0.000000,0.000000,0.707107 -5397,0.707107,0.000000,0.000000,0.707107 -5398,0.707107,0.000000,0.000000,0.707107 -5399,0.707107,0.000000,0.000000,0.707107 -5400,0.707107,0.000000,0.000000,0.707107 -5401,0.707107,0.000000,0.000000,0.707107 -5402,0.707107,0.000000,0.000000,0.707107 -5403,0.707107,0.000000,0.000000,0.707107 -5404,0.707107,0.000000,0.000000,0.707107 -5405,0.707107,0.000000,0.000000,0.707107 -5406,0.707107,0.000000,0.000000,0.707107 -5407,0.707107,0.000000,0.000000,0.707107 -5408,0.707107,0.000000,0.000000,0.707107 -5409,0.707107,0.000000,0.000000,0.707107 -5410,0.707107,0.000000,0.000000,0.707107 -5411,0.707107,0.000000,0.000000,0.707107 -5412,0.707107,0.000000,0.000000,0.707107 -5413,0.707107,0.000000,0.000000,0.707107 -5414,0.707107,0.000000,0.000000,0.707107 -5415,0.707107,0.000000,0.000000,0.707107 -5416,0.707107,0.000000,0.000000,0.707107 -5417,0.707107,0.000000,0.000000,0.707107 -5418,0.707107,0.000000,0.000000,0.707107 -5419,0.707107,0.000000,0.000000,0.707107 -5420,0.707107,0.000000,0.000000,0.707107 -5421,0.707107,0.000000,0.000000,0.707107 -5422,0.707107,0.000000,0.000000,0.707107 -5423,0.707107,0.000000,0.000000,0.707107 -5424,0.707107,0.000000,0.000000,0.707107 -5425,0.707107,0.000000,0.000000,0.707107 -5426,0.707107,0.000000,0.000000,0.707107 -5427,0.707107,0.000000,0.000000,0.707107 -5428,0.707107,0.000000,0.000000,0.707107 -5429,0.707107,0.000000,0.000000,0.707107 -5430,0.707107,0.000000,0.000000,0.707107 -5431,0.707107,0.000000,0.000000,0.707107 -5432,0.707107,0.000000,0.000000,0.707107 -5433,0.707107,0.000000,0.000000,0.707107 -5434,0.707107,0.000000,0.000000,0.707107 -5435,0.707107,0.000000,0.000000,0.707107 -5436,0.707107,0.000000,0.000000,0.707107 -5437,0.707107,0.000000,0.000000,0.707107 -5438,0.707107,0.000000,0.000000,0.707107 -5439,0.707107,0.000000,0.000000,0.707107 -5440,0.707107,0.000000,0.000000,0.707107 -5441,0.707107,0.000000,0.000000,0.707107 -5442,0.707107,0.000000,0.000000,0.707107 -5443,0.707107,0.000000,0.000000,0.707107 -5444,0.707107,0.000000,0.000000,0.707107 -5445,0.707107,0.000000,0.000000,0.707107 -5446,0.707107,0.000000,0.000000,0.707107 -5447,0.707107,0.000000,0.000000,0.707107 -5448,0.707107,0.000000,0.000000,0.707107 -5449,0.707107,0.000000,0.000000,0.707107 -5450,0.707107,0.000000,0.000000,0.707107 -5451,0.707107,0.000000,0.000000,0.707107 -5452,0.707107,0.000000,0.000000,0.707107 -5453,0.707107,0.000000,0.000000,0.707107 -5454,0.707107,0.000000,0.000000,0.707107 -5455,0.707107,0.000000,0.000000,0.707107 -5456,0.707107,0.000000,0.000000,0.707107 -5457,0.707107,0.000000,0.000000,0.707107 -5458,0.707107,0.000000,0.000000,0.707107 -5459,0.707107,0.000000,0.000000,0.707107 -5460,0.707107,0.000000,0.000000,0.707107 -5461,0.707107,0.000000,0.000000,0.707107 -5462,0.707107,0.000000,0.000000,0.707107 -5463,0.707107,0.000000,0.000000,0.707107 -5464,0.707107,0.000000,0.000000,0.707107 -5465,0.707107,0.000000,0.000000,0.707107 -5466,0.707107,0.000000,0.000000,0.707107 -5467,0.707107,0.000000,0.000000,0.707107 -5468,0.707107,0.000000,0.000000,0.707107 -5469,0.707107,0.000000,0.000000,0.707107 -5470,0.707107,0.000000,0.000000,0.707107 -5471,0.707107,0.000000,0.000000,0.707107 -5472,0.707107,0.000000,0.000000,0.707107 -5473,0.707107,0.000000,0.000000,0.707107 -5474,0.707107,0.000000,0.000000,0.707107 -5475,0.707107,0.000000,0.000000,0.707107 -5476,0.707107,0.000000,0.000000,0.707107 -5477,0.707107,0.000000,0.000000,0.707107 -5478,0.707107,0.000000,0.000000,0.707107 -5479,0.707107,0.000000,0.000000,0.707107 -5480,0.707107,0.000000,0.000000,0.707107 -5481,0.707107,0.000000,0.000000,0.707107 -5482,0.707107,0.000000,0.000000,0.707107 -5483,0.707107,0.000000,0.000000,0.707107 -5484,0.707107,0.000000,0.000000,0.707107 -5485,0.707107,0.000000,0.000000,0.707107 -5486,0.707107,0.000000,0.000000,0.707107 -5487,0.707107,0.000000,0.000000,0.707107 -5488,0.707107,0.000000,0.000000,0.707107 -5489,0.707107,0.000000,0.000000,0.707107 -5490,0.707107,0.000000,0.000000,0.707107 -5491,0.707107,0.000000,0.000000,0.707107 -5492,0.707107,0.000000,0.000000,0.707107 -5493,0.707107,0.000000,0.000000,0.707107 -5494,0.707107,0.000000,0.000000,0.707107 -5495,0.707107,0.000000,0.000000,0.707107 -5496,0.707107,0.000000,0.000000,0.707107 -5497,0.707107,0.000000,0.000000,0.707107 -5498,0.707107,0.000000,0.000000,0.707107 -5499,0.707107,0.000000,0.000000,0.707107 -5500,0.707107,0.000000,0.000000,0.707107 -5501,0.707107,0.000000,0.000000,0.707107 -5502,0.707107,0.000000,0.000000,0.707107 -5503,0.707107,0.000000,0.000000,0.707107 -5504,0.707107,0.000000,0.000000,0.707107 -5505,0.707107,0.000000,0.000000,0.707107 -5506,0.707107,0.000000,0.000000,0.707107 -5507,0.707107,0.000000,0.000000,0.707107 -5508,0.707107,0.000000,0.000000,0.707107 -5509,0.707107,0.000000,0.000000,0.707107 -5510,0.707107,0.000000,0.000000,0.707107 -5511,0.707107,0.000000,0.000000,0.707107 -5512,0.707107,0.000000,0.000000,0.707107 -5513,0.707107,0.000000,0.000000,0.707107 -5514,0.707107,0.000000,0.000000,0.707107 -5515,0.707107,0.000000,0.000000,0.707107 -5516,0.707107,0.000000,0.000000,0.707107 -5517,0.707107,0.000000,0.000000,0.707107 -5518,0.707107,0.000000,0.000000,0.707107 -5519,0.707107,0.000000,0.000000,0.707107 -5520,0.707107,0.000000,0.000000,0.707107 -5521,0.707107,0.000000,0.000000,0.707107 -5522,0.707107,0.000000,0.000000,0.707107 -5523,0.707107,0.000000,0.000000,0.707107 -5524,0.707107,0.000000,0.000000,0.707107 -5525,0.707107,0.000000,0.000000,0.707107 -5526,0.707107,0.000000,0.000000,0.707107 -5527,0.707107,0.000000,0.000000,0.707107 -5528,0.707107,0.000000,0.000000,0.707107 -5529,0.707107,0.000000,0.000000,0.707107 -5530,0.707107,0.000000,0.000000,0.707107 -5531,0.707107,0.000000,0.000000,0.707107 -5532,0.707107,0.000000,0.000000,0.707107 -5533,0.707107,0.000000,0.000000,0.707107 -5534,0.707107,0.000000,0.000000,0.707107 -5535,0.707107,0.000000,0.000000,0.707107 -5536,0.707107,0.000000,0.000000,0.707107 -5537,0.707107,0.000000,0.000000,0.707107 -5538,0.707107,0.000000,0.000000,0.707107 -5539,0.707107,0.000000,0.000000,0.707107 -5540,0.707107,0.000000,0.000000,0.707107 -5541,0.707107,0.000000,0.000000,0.707107 -5542,0.707107,0.000000,0.000000,0.707107 -5543,0.707107,0.000000,0.000000,0.707107 -5544,0.707107,0.000000,0.000000,0.707107 -5545,0.707107,0.000000,0.000000,0.707107 -5546,0.707107,0.000000,0.000000,0.707107 -5547,0.707107,0.000000,0.000000,0.707107 -5548,0.707107,0.000000,0.000000,0.707107 -5549,0.707107,0.000000,0.000000,0.707107 -5550,0.707107,0.000000,0.000000,0.707107 -5551,0.707107,0.000000,0.000000,0.707107 -5552,0.707107,0.000000,0.000000,0.707107 -5553,0.707107,0.000000,0.000000,0.707107 -5554,0.707107,0.000000,0.000000,0.707107 -5555,0.707107,0.000000,0.000000,0.707107 -5556,0.707107,0.000000,0.000000,0.707107 -5557,0.707107,0.000000,0.000000,0.707107 -5558,0.707107,0.000000,0.000000,0.707107 -5559,0.707107,0.000000,0.000000,0.707107 -5560,0.707107,0.000000,0.000000,0.707107 -5561,0.707107,0.000000,0.000000,0.707107 -5562,0.707107,0.000000,0.000000,0.707107 -5563,0.707107,0.000000,0.000000,0.707107 -5564,0.707107,0.000000,0.000000,0.707107 -5565,0.707107,0.000000,0.000000,0.707107 -5566,0.707107,0.000000,0.000000,0.707107 -5567,0.707107,0.000000,0.000000,0.707107 -5568,0.707107,0.000000,0.000000,0.707107 -5569,0.707107,0.000000,0.000000,0.707107 -5570,0.707107,0.000000,0.000000,0.707107 -5571,0.707107,0.000000,0.000000,0.707107 -5572,0.707107,0.000000,0.000000,0.707107 -5573,0.707107,0.000000,0.000000,0.707107 -5574,0.707107,0.000000,0.000000,0.707107 -5575,0.707107,0.000000,0.000000,0.707107 -5576,0.707107,0.000000,0.000000,0.707107 -5577,0.707107,0.000000,0.000000,0.707107 -5578,0.707107,0.000000,0.000000,0.707107 -5579,0.707107,0.000000,0.000000,0.707107 -5580,0.707107,0.000000,0.000000,0.707107 -5581,0.707107,0.000000,0.000000,0.707107 -5582,0.707107,0.000000,0.000000,0.707107 -5583,0.707107,0.000000,0.000000,0.707107 -5584,0.707107,0.000000,0.000000,0.707107 -5585,0.707107,0.000000,0.000000,0.707107 -5586,0.707107,0.000000,0.000000,0.707107 -5587,0.707107,0.000000,0.000000,0.707107 -5588,0.707107,0.000000,0.000000,0.707107 -5589,0.707107,0.000000,0.000000,0.707107 -5590,0.707107,0.000000,0.000000,0.707107 -5591,0.707107,0.000000,0.000000,0.707107 -5592,0.707107,0.000000,0.000000,0.707107 -5593,0.707107,0.000000,0.000000,0.707107 -5594,0.707107,0.000000,0.000000,0.707107 -5595,0.707107,0.000000,0.000000,0.707107 -5596,0.707107,0.000000,0.000000,0.707107 -5597,0.707107,0.000000,0.000000,0.707107 -5598,0.707107,0.000000,0.000000,0.707107 -5599,0.707107,0.000000,0.000000,0.707107 -5600,0.707107,0.000000,0.000000,0.707107 -5601,0.707107,0.000000,0.000000,0.707107 -5602,0.707107,0.000000,0.000000,0.707107 -5603,0.707107,0.000000,0.000000,0.707107 -5604,0.707107,0.000000,0.000000,0.707107 -5605,0.707107,0.000000,0.000000,0.707107 -5606,0.707107,0.000000,0.000000,0.707107 -5607,0.707107,0.000000,0.000000,0.707107 -5608,0.707107,0.000000,0.000000,0.707107 -5609,0.707107,0.000000,0.000000,0.707107 -5610,0.707107,0.000000,0.000000,0.707107 -5611,0.707107,0.000000,0.000000,0.707107 -5612,0.707107,0.000000,0.000000,0.707107 -5613,0.707107,0.000000,0.000000,0.707107 -5614,0.707107,0.000000,0.000000,0.707107 -5615,0.707107,0.000000,0.000000,0.707107 -5616,0.707107,0.000000,0.000000,0.707107 -5617,0.707107,0.000000,0.000000,0.707107 -5618,0.707107,0.000000,0.000000,0.707107 -5619,0.707107,0.000000,0.000000,0.707107 -5620,0.707107,0.000000,0.000000,0.707107 -5621,0.707107,0.000000,0.000000,0.707107 -5622,0.707107,0.000000,0.000000,0.707107 -5623,0.707107,0.000000,0.000000,0.707107 -5624,0.707107,0.000000,0.000000,0.707107 -5625,0.707107,0.000000,0.000000,0.707107 -5626,0.707107,0.000000,0.000000,0.707107 -5627,0.707107,0.000000,0.000000,0.707107 -5628,0.707107,0.000000,0.000000,0.707107 -5629,0.707107,0.000000,0.000000,0.707107 -5630,0.707107,0.000000,0.000000,0.707107 -5631,0.707107,0.000000,0.000000,0.707107 -5632,0.707107,0.000000,0.000000,0.707107 -5633,0.707107,0.000000,0.000000,0.707107 -5634,0.707107,0.000000,0.000000,0.707107 -5635,0.707107,0.000000,0.000000,0.707107 -5636,0.707107,0.000000,0.000000,0.707107 -5637,0.707107,0.000000,0.000000,0.707107 -5638,0.707107,0.000000,0.000000,0.707107 -5639,0.707107,0.000000,0.000000,0.707107 -5640,0.707107,0.000000,0.000000,0.707107 -5641,0.707107,0.000000,0.000000,0.707107 -5642,0.707107,0.000000,0.000000,0.707107 -5643,0.707107,0.000000,0.000000,0.707107 -5644,0.707107,0.000000,0.000000,0.707107 -5645,0.707107,0.000000,0.000000,0.707107 -5646,0.707107,0.000000,0.000000,0.707107 -5647,0.707107,0.000000,0.000000,0.707107 -5648,0.707107,0.000000,0.000000,0.707107 -5649,0.707107,0.000000,0.000000,0.707107 -5650,0.707107,0.000000,0.000000,0.707107 -5651,0.707107,0.000000,0.000000,0.707107 -5652,0.707107,0.000000,0.000000,0.707107 -5653,0.707107,0.000000,0.000000,0.707107 -5654,0.707107,0.000000,0.000000,0.707107 -5655,0.707107,0.000000,0.000000,0.707107 -5656,0.707107,0.000000,0.000000,0.707107 -5657,0.707107,0.000000,0.000000,0.707107 -5658,0.707107,0.000000,0.000000,0.707107 -5659,0.707107,0.000000,0.000000,0.707107 -5660,0.707107,0.000000,0.000000,0.707107 -5661,0.707107,0.000000,0.000000,0.707107 -5662,0.707107,0.000000,0.000000,0.707107 -5663,0.707107,0.000000,0.000000,0.707107 -5664,0.707107,0.000000,0.000000,0.707107 -5665,0.707107,0.000000,0.000000,0.707107 -5666,0.707107,0.000000,0.000000,0.707107 -5667,0.707107,0.000000,0.000000,0.707107 -5668,0.707107,0.000000,0.000000,0.707107 -5669,0.707107,0.000000,0.000000,0.707107 -5670,0.707107,0.000000,0.000000,0.707107 -5671,0.707107,0.000000,0.000000,0.707107 -5672,0.707107,0.000000,0.000000,0.707107 -5673,0.707107,0.000000,0.000000,0.707107 -5674,0.707107,0.000000,0.000000,0.707107 -5675,0.707107,0.000000,0.000000,0.707107 -5676,0.707107,0.000000,0.000000,0.707107 -5677,0.707107,0.000000,0.000000,0.707107 -5678,0.707107,0.000000,0.000000,0.707107 -5679,0.707107,0.000000,0.000000,0.707107 -5680,0.707107,0.000000,0.000000,0.707107 -5681,0.707107,0.000000,0.000000,0.707107 -5682,0.707107,0.000000,0.000000,0.707107 -5683,0.707107,0.000000,0.000000,0.707107 -5684,0.707107,0.000000,0.000000,0.707107 -5685,0.707107,0.000000,0.000000,0.707107 -5686,0.707107,0.000000,0.000000,0.707107 -5687,0.707107,0.000000,0.000000,0.707107 -5688,0.707107,0.000000,0.000000,0.707107 -5689,0.707107,0.000000,0.000000,0.707107 -5690,0.707107,0.000000,0.000000,0.707107 -5691,0.707107,0.000000,0.000000,0.707107 -5692,0.707107,0.000000,0.000000,0.707107 -5693,0.707107,0.000000,0.000000,0.707107 -5694,0.707107,0.000000,0.000000,0.707107 -5695,0.707107,0.000000,0.000000,0.707107 -5696,0.707107,0.000000,0.000000,0.707107 -5697,0.707107,0.000000,0.000000,0.707107 -5698,0.707107,0.000000,0.000000,0.707107 -5699,0.707107,0.000000,0.000000,0.707107 -5700,0.707107,0.000000,0.000000,0.707107 -5701,0.707107,0.000000,0.000000,0.707107 -5702,0.707107,0.000000,0.000000,0.707107 -5703,0.707107,0.000000,0.000000,0.707107 -5704,0.707107,0.000000,0.000000,0.707107 -5705,0.707107,0.000000,0.000000,0.707107 -5706,0.707107,0.000000,0.000000,0.707107 -5707,0.707107,0.000000,0.000000,0.707107 -5708,0.707107,0.000000,0.000000,0.707107 -5709,0.707107,0.000000,0.000000,0.707107 -5710,0.707107,0.000000,0.000000,0.707107 -5711,0.707107,0.000000,0.000000,0.707107 -5712,0.707107,0.000000,0.000000,0.707107 -5713,0.707107,0.000000,0.000000,0.707107 -5714,0.707107,0.000000,0.000000,0.707107 -5715,0.707107,0.000000,0.000000,0.707107 -5716,0.707107,0.000000,0.000000,0.707107 -5717,0.707107,0.000000,0.000000,0.707107 -5718,0.707107,0.000000,0.000000,0.707107 -5719,0.707107,0.000000,0.000000,0.707107 -5720,0.707107,0.000000,0.000000,0.707107 -5721,0.707107,0.000000,0.000000,0.707107 -5722,0.707107,0.000000,0.000000,0.707107 -5723,0.707107,0.000000,0.000000,0.707107 -5724,0.707107,0.000000,0.000000,0.707107 -5725,0.707107,0.000000,0.000000,0.707107 -5726,0.707107,0.000000,0.000000,0.707107 -5727,0.707107,0.000000,0.000000,0.707107 -5728,0.707107,0.000000,0.000000,0.707107 -5729,0.707107,0.000000,0.000000,0.707107 -5730,0.707107,0.000000,0.000000,0.707107 -5731,0.707107,0.000000,0.000000,0.707107 -5732,0.707107,0.000000,0.000000,0.707107 -5733,0.707107,0.000000,0.000000,0.707107 -5734,0.707107,0.000000,0.000000,0.707107 -5735,0.707107,0.000000,0.000000,0.707107 -5736,0.707107,0.000000,0.000000,0.707107 -5737,0.707107,0.000000,0.000000,0.707107 -5738,0.707107,0.000000,0.000000,0.707107 -5739,0.707107,0.000000,0.000000,0.707107 -5740,0.707107,0.000000,0.000000,0.707107 -5741,0.707107,0.000000,0.000000,0.707107 -5742,0.707107,0.000000,0.000000,0.707107 -5743,0.707107,0.000000,0.000000,0.707107 -5744,0.707107,0.000000,0.000000,0.707107 -5745,0.707107,0.000000,0.000000,0.707107 -5746,0.707107,0.000000,0.000000,0.707107 -5747,0.707107,0.000000,0.000000,0.707107 -5748,0.707107,0.000000,0.000000,0.707107 -5749,0.707107,0.000000,0.000000,0.707107 -5750,0.707107,0.000000,0.000000,0.707107 -5751,0.707107,0.000000,0.000000,0.707107 -5752,0.707107,0.000000,0.000000,0.707107 -5753,0.707107,0.000000,0.000000,0.707107 -5754,0.707107,0.000000,0.000000,0.707107 -5755,0.707107,0.000000,0.000000,0.707107 -5756,0.707107,0.000000,0.000000,0.707107 -5757,0.707107,0.000000,0.000000,0.707107 -5758,0.707107,0.000000,0.000000,0.707107 -5759,0.707107,0.000000,0.000000,0.707107 -5760,0.707107,0.000000,0.000000,0.707107 -5761,0.707107,0.000000,0.000000,0.707107 -5762,0.707107,0.000000,0.000000,0.707107 -5763,0.707107,0.000000,0.000000,0.707107 -5764,0.707107,0.000000,0.000000,0.707107 -5765,0.707107,0.000000,0.000000,0.707107 -5766,0.707107,0.000000,0.000000,0.707107 -5767,0.707107,0.000000,0.000000,0.707107 -5768,0.707107,0.000000,0.000000,0.707107 -5769,0.707107,0.000000,0.000000,0.707107 -5770,0.707107,0.000000,0.000000,0.707107 -5771,0.707107,0.000000,0.000000,0.707107 -5772,0.707107,0.000000,0.000000,0.707107 -5773,0.707107,0.000000,0.000000,0.707107 -5774,0.707107,0.000000,0.000000,0.707107 -5775,0.707107,0.000000,0.000000,0.707107 -5776,0.707107,0.000000,0.000000,0.707107 -5777,0.707107,0.000000,0.000000,0.707107 -5778,0.707107,0.000000,0.000000,0.707107 -5779,0.707107,0.000000,0.000000,0.707107 -5780,0.707107,0.000000,0.000000,0.707107 -5781,0.707107,0.000000,0.000000,0.707107 -5782,0.707107,0.000000,0.000000,0.707107 -5783,0.707107,0.000000,0.000000,0.707107 -5784,0.707107,0.000000,0.000000,0.707107 -5785,0.707107,0.000000,0.000000,0.707107 -5786,0.707107,0.000000,0.000000,0.707107 -5787,0.707107,0.000000,0.000000,0.707107 -5788,0.707107,0.000000,0.000000,0.707107 -5789,0.707107,0.000000,0.000000,0.707107 -5790,0.707107,0.000000,0.000000,0.707107 -5791,0.707107,0.000000,0.000000,0.707107 -5792,0.707107,0.000000,0.000000,0.707107 -5793,0.707107,0.000000,0.000000,0.707107 -5794,0.707107,0.000000,0.000000,0.707107 -5795,0.707107,0.000000,0.000000,0.707107 -5796,0.707107,0.000000,0.000000,0.707107 -5797,0.707107,0.000000,0.000000,0.707107 -5798,0.707107,0.000000,0.000000,0.707107 -5799,0.707107,0.000000,0.000000,0.707107 -5800,0.707107,0.000000,0.000000,0.707107 -5801,0.707107,0.000000,0.000000,0.707107 -5802,0.707107,0.000000,0.000000,0.707107 -5803,0.707107,0.000000,0.000000,0.707107 -5804,0.707107,0.000000,0.000000,0.707107 -5805,0.707107,0.000000,0.000000,0.707107 -5806,0.707107,0.000000,0.000000,0.707107 -5807,0.707107,0.000000,0.000000,0.707107 -5808,0.707107,0.000000,0.000000,0.707107 -5809,0.707107,0.000000,0.000000,0.707107 -5810,0.707107,0.000000,0.000000,0.707107 -5811,0.707107,0.000000,0.000000,0.707107 -5812,0.707107,0.000000,0.000000,0.707107 -5813,0.707107,0.000000,0.000000,0.707107 -5814,0.707107,0.000000,0.000000,0.707107 -5815,0.707107,0.000000,0.000000,0.707107 -5816,0.707107,0.000000,0.000000,0.707107 -5817,0.707107,0.000000,0.000000,0.707107 -5818,0.707107,0.000000,0.000000,0.707107 -5819,0.707107,0.000000,0.000000,0.707107 -5820,0.707107,0.000000,0.000000,0.707107 -5821,0.707107,0.000000,0.000000,0.707107 -5822,0.707107,0.000000,0.000000,0.707107 -5823,0.707107,0.000000,0.000000,0.707107 -5824,0.707107,0.000000,0.000000,0.707107 -5825,0.707107,0.000000,0.000000,0.707107 -5826,0.707107,0.000000,0.000000,0.707107 -5827,0.707107,0.000000,0.000000,0.707107 -5828,0.707107,0.000000,0.000000,0.707107 -5829,0.707107,0.000000,0.000000,0.707107 -5830,0.707107,0.000000,0.000000,0.707107 -5831,0.707107,0.000000,0.000000,0.707107 -5832,0.707107,0.000000,0.000000,0.707107 -5833,0.707107,0.000000,0.000000,0.707107 -5834,0.707107,0.000000,0.000000,0.707107 -5835,0.707107,0.000000,0.000000,0.707107 -5836,0.707107,0.000000,0.000000,0.707107 -5837,0.707107,0.000000,0.000000,0.707107 -5838,0.707107,0.000000,0.000000,0.707107 -5839,0.707107,0.000000,0.000000,0.707107 -5840,0.707107,0.000000,0.000000,0.707107 -5841,0.707107,0.000000,0.000000,0.707107 -5842,0.707107,0.000000,0.000000,0.707107 -5843,0.707107,0.000000,0.000000,0.707107 -5844,0.707107,0.000000,0.000000,0.707107 -5845,0.707107,0.000000,0.000000,0.707107 -5846,0.707107,0.000000,0.000000,0.707107 -5847,0.707107,0.000000,0.000000,0.707107 -5848,0.707107,0.000000,0.000000,0.707107 -5849,0.707107,0.000000,0.000000,0.707107 -5850,0.707107,0.000000,0.000000,0.707107 -5851,0.707107,0.000000,0.000000,0.707107 -5852,0.707107,0.000000,0.000000,0.707107 -5853,0.707107,0.000000,0.000000,0.707107 -5854,0.707107,0.000000,0.000000,0.707107 -5855,0.707107,0.000000,0.000000,0.707107 -5856,0.707107,0.000000,0.000000,0.707107 -5857,0.707107,0.000000,0.000000,0.707107 -5858,0.707107,0.000000,0.000000,0.707107 -5859,0.707107,0.000000,0.000000,0.707107 -5860,0.707107,0.000000,0.000000,0.707107 -5861,0.707107,0.000000,0.000000,0.707107 -5862,0.707107,0.000000,0.000000,0.707107 -5863,0.707107,0.000000,0.000000,0.707107 -5864,0.707107,0.000000,0.000000,0.707107 -5865,0.707107,0.000000,0.000000,0.707107 -5866,0.707107,0.000000,0.000000,0.707107 -5867,0.707107,0.000000,0.000000,0.707107 -5868,0.707107,0.000000,0.000000,0.707107 -5869,0.707107,0.000000,0.000000,0.707107 -5870,0.707107,0.000000,0.000000,0.707107 -5871,0.707107,0.000000,0.000000,0.707107 -5872,0.707107,0.000000,0.000000,0.707107 -5873,0.707107,0.000000,0.000000,0.707107 -5874,0.707107,0.000000,0.000000,0.707107 -5875,0.707107,0.000000,0.000000,0.707107 -5876,0.707107,0.000000,0.000000,0.707107 -5877,0.707107,0.000000,0.000000,0.707107 -5878,0.707107,0.000000,0.000000,0.707107 -5879,0.707107,0.000000,0.000000,0.707107 -5880,0.707107,0.000000,0.000000,0.707107 -5881,0.707107,0.000000,0.000000,0.707107 -5882,0.707107,0.000000,0.000000,0.707107 -5883,0.707107,0.000000,0.000000,0.707107 -5884,0.707107,0.000000,0.000000,0.707107 -5885,0.707107,0.000000,0.000000,0.707107 -5886,0.707107,0.000000,0.000000,0.707107 -5887,0.707107,0.000000,0.000000,0.707107 -5888,0.707107,0.000000,0.000000,0.707107 -5889,0.707107,0.000000,0.000000,0.707107 -5890,0.707107,0.000000,0.000000,0.707107 -5891,0.707107,0.000000,0.000000,0.707107 -5892,0.707107,0.000000,0.000000,0.707107 -5893,0.707107,0.000000,0.000000,0.707107 -5894,0.707107,0.000000,0.000000,0.707107 -5895,0.707107,0.000000,0.000000,0.707107 -5896,0.707107,0.000000,0.000000,0.707107 -5897,0.707107,0.000000,0.000000,0.707107 -5898,0.707107,0.000000,0.000000,0.707107 -5899,0.707107,0.000000,0.000000,0.707107 -5900,0.707107,0.000000,0.000000,0.707107 -5901,0.707107,0.000000,0.000000,0.707107 -5902,0.707107,0.000000,0.000000,0.707107 -5903,0.707107,0.000000,0.000000,0.707107 -5904,0.707107,0.000000,0.000000,0.707107 -5905,0.707107,0.000000,0.000000,0.707107 -5906,0.707107,0.000000,0.000000,0.707107 -5907,0.707107,0.000000,0.000000,0.707107 -5908,0.707107,0.000000,0.000000,0.707107 -5909,0.707107,0.000000,0.000000,0.707107 -5910,0.707107,0.000000,0.000000,0.707107 -5911,0.707107,0.000000,0.000000,0.707107 -5912,0.707107,0.000000,0.000000,0.707107 -5913,0.707107,0.000000,0.000000,0.707107 -5914,0.707107,0.000000,0.000000,0.707107 -5915,0.707107,0.000000,0.000000,0.707107 -5916,0.707107,0.000000,0.000000,0.707107 -5917,0.707107,0.000000,0.000000,0.707107 -5918,0.707107,0.000000,0.000000,0.707107 -5919,0.707107,0.000000,0.000000,0.707107 -5920,0.707107,0.000000,0.000000,0.707107 -5921,0.707107,0.000000,0.000000,0.707107 -5922,0.707107,0.000000,0.000000,0.707107 -5923,0.707107,0.000000,0.000000,0.707107 -5924,0.707107,0.000000,0.000000,0.707107 -5925,0.707107,0.000000,0.000000,0.707107 -5926,0.707107,0.000000,0.000000,0.707107 -5927,0.707107,0.000000,0.000000,0.707107 -5928,0.707107,0.000000,0.000000,0.707107 -5929,0.707107,0.000000,0.000000,0.707107 -5930,0.707107,0.000000,0.000000,0.707107 -5931,0.707107,0.000000,0.000000,0.707107 -5932,0.707107,0.000000,0.000000,0.707107 -5933,0.707107,0.000000,0.000000,0.707107 -5934,0.707107,0.000000,0.000000,0.707107 -5935,0.707107,0.000000,0.000000,0.707107 -5936,0.707107,0.000000,0.000000,0.707107 -5937,0.707107,0.000000,0.000000,0.707107 -5938,0.707107,0.000000,0.000000,0.707107 -5939,0.707107,0.000000,0.000000,0.707107 -5940,0.707107,0.000000,0.000000,0.707107 -5941,0.707107,0.000000,0.000000,0.707107 -5942,0.707107,0.000000,0.000000,0.707107 -5943,0.707107,0.000000,0.000000,0.707107 -5944,0.707107,0.000000,0.000000,0.707107 -5945,0.707107,0.000000,0.000000,0.707107 -5946,0.707107,0.000000,0.000000,0.707107 -5947,0.707107,0.000000,0.000000,0.707107 -5948,0.707107,0.000000,0.000000,0.707107 -5949,0.707107,0.000000,0.000000,0.707107 -5950,0.707107,0.000000,0.000000,0.707107 -5951,0.707107,0.000000,0.000000,0.707107 -5952,0.707107,0.000000,0.000000,0.707107 -5953,0.707107,0.000000,0.000000,0.707107 -5954,0.707107,0.000000,0.000000,0.707107 -5955,0.707107,0.000000,0.000000,0.707107 -5956,0.707107,0.000000,0.000000,0.707107 -5957,0.707107,0.000000,0.000000,0.707107 -5958,0.707107,0.000000,0.000000,0.707107 -5959,0.707107,0.000000,0.000000,0.707107 -5960,0.707107,0.000000,0.000000,0.707107 -5961,0.707107,0.000000,0.000000,0.707107 -5962,0.707107,0.000000,0.000000,0.707107 -5963,0.707107,0.000000,0.000000,0.707107 -5964,0.707107,0.000000,0.000000,0.707107 -5965,0.707107,0.000000,0.000000,0.707107 -5966,0.707107,0.000000,0.000000,0.707107 -5967,0.707107,0.000000,0.000000,0.707107 -5968,0.707107,0.000000,0.000000,0.707107 -5969,0.707107,0.000000,0.000000,0.707107 -5970,0.707107,0.000000,0.000000,0.707107 -5971,0.707107,0.000000,0.000000,0.707107 -5972,0.707107,0.000000,0.000000,0.707107 -5973,0.707107,0.000000,0.000000,0.707107 -5974,0.707107,0.000000,0.000000,0.707107 -5975,0.707107,0.000000,0.000000,0.707107 -5976,0.707107,0.000000,0.000000,0.707107 -5977,0.707107,0.000000,0.000000,0.707107 -5978,0.707107,0.000000,0.000000,0.707107 -5979,0.707107,0.000000,0.000000,0.707107 -5980,0.707107,0.000000,0.000000,0.707107 -5981,0.707107,0.000000,0.000000,0.707107 -5982,0.707107,0.000000,0.000000,0.707107 -5983,0.707107,0.000000,0.000000,0.707107 -5984,0.707107,0.000000,0.000000,0.707107 -5985,0.707107,0.000000,0.000000,0.707107 -5986,0.707107,0.000000,0.000000,0.707107 -5987,0.707107,0.000000,0.000000,0.707107 -5988,0.707107,0.000000,0.000000,0.707107 -5989,0.707107,0.000000,0.000000,0.707107 -5990,0.707107,0.000000,0.000000,0.707107 -5991,0.707107,0.000000,0.000000,0.707107 -5992,0.707107,0.000000,0.000000,0.707107 -5993,0.707107,0.000000,0.000000,0.707107 -5994,0.707107,0.000000,0.000000,0.707107 -5995,0.707107,0.000000,0.000000,0.707107 -5996,0.707107,0.000000,0.000000,0.707107 -5997,0.707107,0.000000,0.000000,0.707107 -5998,0.707107,0.000000,0.000000,0.707107 -5999,0.707107,0.000000,0.000000,0.707107 -6000,0.707107,0.000000,0.000000,0.707107 -6001,0.707107,0.000000,0.000000,0.707107 -6002,0.707107,0.000000,0.000000,0.707107 -6003,0.707107,0.000000,0.000000,0.707107 -6004,0.707107,0.000000,0.000000,0.707107 -6005,0.707107,0.000000,0.000000,0.707107 -6006,0.707107,0.000000,0.000000,0.707107 -6007,0.707107,0.000000,0.000000,0.707107 -6008,0.707107,0.000000,0.000000,0.707107 -6009,0.707107,0.000000,0.000000,0.707107 -6010,0.707107,0.000000,0.000000,0.707107 -6011,0.707107,0.000000,0.000000,0.707107 -6012,0.707107,0.000000,0.000000,0.707107 -6013,0.707107,0.000000,0.000000,0.707107 -6014,0.707107,0.000000,0.000000,0.707107 -6015,0.707107,0.000000,0.000000,0.707107 -6016,0.707107,0.000000,0.000000,0.707107 -6017,0.707107,0.000000,0.000000,0.707107 -6018,0.707107,0.000000,0.000000,0.707107 -6019,0.707107,0.000000,0.000000,0.707107 -6020,0.707107,0.000000,0.000000,0.707107 -6021,0.707107,0.000000,0.000000,0.707107 -6022,0.707107,0.000000,0.000000,0.707107 -6023,0.707107,0.000000,0.000000,0.707107 -6024,0.707107,0.000000,0.000000,0.707107 -6025,0.707107,0.000000,0.000000,0.707107 -6026,0.707107,0.000000,0.000000,0.707107 -6027,0.707107,0.000000,0.000000,0.707107 -6028,0.707107,0.000000,0.000000,0.707107 -6029,0.707107,0.000000,0.000000,0.707107 -6030,0.707107,0.000000,0.000000,0.707107 -6031,0.707107,0.000000,0.000000,0.707107 -6032,0.707107,0.000000,0.000000,0.707107 -6033,0.707107,0.000000,0.000000,0.707107 -6034,0.707107,0.000000,0.000000,0.707107 -6035,0.707107,0.000000,0.000000,0.707107 -6036,0.707107,0.000000,0.000000,0.707107 -6037,0.707107,0.000000,0.000000,0.707107 -6038,0.707107,0.000000,0.000000,0.707107 -6039,0.707107,0.000000,0.000000,0.707107 -6040,0.707107,0.000000,0.000000,0.707107 -6041,0.707107,0.000000,0.000000,0.707107 -6042,0.707107,0.000000,0.000000,0.707107 -6043,0.707107,0.000000,0.000000,0.707107 -6044,0.707107,0.000000,0.000000,0.707107 -6045,0.707107,0.000000,0.000000,0.707107 -6046,0.707107,0.000000,0.000000,0.707107 -6047,0.707107,0.000000,0.000000,0.707107 -6048,0.707107,0.000000,0.000000,0.707107 -6049,0.707107,0.000000,0.000000,0.707107 -6050,0.707107,0.000000,0.000000,0.707107 -6051,0.707107,0.000000,0.000000,0.707107 -6052,0.707107,0.000000,0.000000,0.707107 -6053,0.707107,0.000000,0.000000,0.707107 -6054,0.707107,0.000000,0.000000,0.707107 -6055,0.707107,0.000000,0.000000,0.707107 -6056,0.707107,0.000000,0.000000,0.707107 -6057,0.707107,0.000000,0.000000,0.707107 -6058,0.707107,0.000000,0.000000,0.707107 -6059,0.707107,0.000000,0.000000,0.707107 -6060,0.707107,0.000000,0.000000,0.707107 -6061,0.707107,0.000000,0.000000,0.707107 -6062,0.707107,0.000000,0.000000,0.707107 -6063,0.707107,0.000000,0.000000,0.707107 -6064,0.707107,0.000000,0.000000,0.707107 -6065,0.707107,0.000000,0.000000,0.707107 -6066,0.707107,0.000000,0.000000,0.707107 -6067,0.707107,0.000000,0.000000,0.707107 -6068,0.707107,0.000000,0.000000,0.707107 -6069,0.707107,0.000000,0.000000,0.707107 -6070,0.707107,0.000000,0.000000,0.707107 -6071,0.707107,0.000000,0.000000,0.707107 -6072,0.707107,0.000000,0.000000,0.707107 -6073,0.707107,0.000000,0.000000,0.707107 -6074,0.707107,0.000000,0.000000,0.707107 -6075,0.707107,0.000000,0.000000,0.707107 -6076,0.707107,0.000000,0.000000,0.707107 -6077,0.707107,0.000000,0.000000,0.707107 -6078,0.707107,0.000000,0.000000,0.707107 -6079,0.707107,0.000000,0.000000,0.707107 -6080,0.707107,0.000000,0.000000,0.707107 -6081,0.707107,0.000000,0.000000,0.707107 -6082,0.707107,0.000000,0.000000,0.707107 -6083,0.707107,0.000000,0.000000,0.707107 -6084,0.707107,0.000000,0.000000,0.707107 -6085,0.707107,0.000000,0.000000,0.707107 -6086,0.707107,0.000000,0.000000,0.707107 -6087,0.707107,0.000000,0.000000,0.707107 -6088,0.707107,0.000000,0.000000,0.707107 -6089,0.707107,0.000000,0.000000,0.707107 -6090,0.707107,0.000000,0.000000,0.707107 -6091,0.707107,0.000000,0.000000,0.707107 -6092,0.707107,0.000000,0.000000,0.707107 -6093,0.707107,0.000000,0.000000,0.707107 -6094,0.707107,0.000000,0.000000,0.707107 -6095,0.707107,0.000000,0.000000,0.707107 -6096,0.707107,0.000000,0.000000,0.707107 -6097,0.707107,0.000000,0.000000,0.707107 -6098,0.707107,0.000000,0.000000,0.707107 -6099,0.707107,0.000000,0.000000,0.707107 -6100,0.707107,0.000000,0.000000,0.707107 -6101,0.707107,0.000000,0.000000,0.707107 -6102,0.707107,0.000000,0.000000,0.707107 -6103,0.707107,0.000000,0.000000,0.707107 -6104,0.707107,0.000000,0.000000,0.707107 -6105,0.707107,0.000000,0.000000,0.707107 -6106,0.707107,0.000000,0.000000,0.707107 -6107,0.707107,0.000000,0.000000,0.707107 -6108,0.707107,0.000000,0.000000,0.707107 -6109,0.707107,0.000000,0.000000,0.707107 -6110,0.707107,0.000000,0.000000,0.707107 -6111,0.707107,0.000000,0.000000,0.707107 -6112,0.707107,0.000000,0.000000,0.707107 -6113,0.707107,0.000000,0.000000,0.707107 -6114,0.707107,0.000000,0.000000,0.707107 -6115,0.707107,0.000000,0.000000,0.707107 -6116,0.707107,0.000000,0.000000,0.707107 -6117,0.707107,0.000000,0.000000,0.707107 -6118,0.707107,0.000000,0.000000,0.707107 -6119,0.707107,0.000000,0.000000,0.707107 -6120,0.707107,0.000000,0.000000,0.707107 -6121,0.707107,0.000000,0.000000,0.707107 -6122,0.707107,0.000000,0.000000,0.707107 -6123,0.707107,0.000000,0.000000,0.707107 -6124,0.707107,0.000000,0.000000,0.707107 -6125,0.707107,0.000000,0.000000,0.707107 -6126,0.707107,0.000000,0.000000,0.707107 -6127,0.707107,0.000000,0.000000,0.707107 -6128,0.707107,0.000000,0.000000,0.707107 -6129,0.707107,0.000000,0.000000,0.707107 -6130,0.707107,0.000000,0.000000,0.707107 -6131,0.707107,0.000000,0.000000,0.707107 -6132,0.707107,0.000000,0.000000,0.707107 -6133,0.707107,0.000000,0.000000,0.707107 -6134,0.707107,0.000000,0.000000,0.707107 -6135,0.707107,0.000000,0.000000,0.707107 -6136,0.707107,0.000000,0.000000,0.707107 -6137,0.707107,0.000000,0.000000,0.707107 -6138,0.707107,0.000000,0.000000,0.707107 -6139,0.707107,0.000000,0.000000,0.707107 -6140,0.707107,0.000000,0.000000,0.707107 -6141,0.707107,0.000000,0.000000,0.707107 -6142,0.707107,0.000000,0.000000,0.707107 -6143,0.707107,0.000000,0.000000,0.707107 -6144,0.707107,0.000000,0.000000,0.707107 -6145,0.707107,0.000000,0.000000,0.707107 -6146,0.707107,0.000000,0.000000,0.707107 -6147,0.707107,0.000000,0.000000,0.707107 -6148,0.707107,0.000000,0.000000,0.707107 -6149,0.707107,0.000000,0.000000,0.707107 -6150,0.707107,0.000000,0.000000,0.707107 -6151,0.707107,0.000000,0.000000,0.707107 -6152,0.707107,0.000000,0.000000,0.707107 -6153,0.707107,0.000000,0.000000,0.707107 -6154,0.707107,0.000000,0.000000,0.707107 -6155,0.707107,0.000000,0.000000,0.707107 -6156,0.707107,0.000000,0.000000,0.707107 -6157,0.707107,0.000000,0.000000,0.707107 -6158,0.707107,0.000000,0.000000,0.707107 -6159,0.707107,0.000000,0.000000,0.707107 -6160,0.707107,0.000000,0.000000,0.707107 -6161,0.707107,0.000000,0.000000,0.707107 -6162,0.707107,0.000000,0.000000,0.707107 -6163,0.707107,0.000000,0.000000,0.707107 -6164,0.707107,0.000000,0.000000,0.707107 -6165,0.707107,0.000000,0.000000,0.707107 -6166,0.707107,0.000000,0.000000,0.707107 -6167,0.707107,0.000000,0.000000,0.707107 -6168,0.707107,0.000000,0.000000,0.707107 -6169,0.707107,0.000000,0.000000,0.707107 -6170,0.707107,0.000000,0.000000,0.707107 -6171,0.707107,0.000000,0.000000,0.707107 -6172,0.707107,0.000000,0.000000,0.707107 -6173,0.707107,0.000000,0.000000,0.707107 -6174,0.707107,0.000000,0.000000,0.707107 -6175,0.707107,0.000000,0.000000,0.707107 -6176,0.707107,0.000000,0.000000,0.707107 -6177,0.707107,0.000000,0.000000,0.707107 -6178,0.707107,0.000000,0.000000,0.707107 -6179,0.707107,0.000000,0.000000,0.707107 -6180,0.707107,0.000000,0.000000,0.707107 -6181,0.707107,0.000000,0.000000,0.707107 -6182,0.707107,0.000000,0.000000,0.707107 -6183,0.707107,0.000000,0.000000,0.707107 -6184,0.707107,0.000000,0.000000,0.707107 -6185,0.707107,0.000000,0.000000,0.707107 -6186,0.707107,0.000000,0.000000,0.707107 -6187,0.707107,0.000000,0.000000,0.707107 -6188,0.707107,0.000000,0.000000,0.707107 -6189,0.707107,0.000000,0.000000,0.707107 -6190,0.707107,0.000000,0.000000,0.707107 -6191,0.707107,0.000000,0.000000,0.707107 -6192,0.707107,0.000000,0.000000,0.707107 -6193,0.707107,0.000000,0.000000,0.707107 -6194,0.707107,0.000000,0.000000,0.707107 -6195,0.707107,0.000000,0.000000,0.707107 -6196,0.707107,0.000000,0.000000,0.707107 -6197,0.707107,0.000000,0.000000,0.707107 -6198,0.707107,0.000000,0.000000,0.707107 -6199,0.707107,0.000000,0.000000,0.707107 -6200,0.707107,0.000000,0.000000,0.707107 -6201,0.707107,0.000000,0.000000,0.707107 -6202,0.707107,0.000000,0.000000,0.707107 -6203,0.707107,0.000000,0.000000,0.707107 -6204,0.707107,0.000000,0.000000,0.707107 -6205,0.707107,0.000000,0.000000,0.707107 -6206,0.707107,0.000000,0.000000,0.707107 -6207,0.707107,0.000000,0.000000,0.707107 -6208,0.707107,0.000000,0.000000,0.707107 -6209,0.707107,0.000000,0.000000,0.707107 -6210,0.707107,0.000000,0.000000,0.707107 -6211,0.707107,0.000000,0.000000,0.707107 -6212,0.707107,0.000000,0.000000,0.707107 -6213,0.707107,0.000000,0.000000,0.707107 -6214,0.707107,0.000000,0.000000,0.707107 -6215,0.707107,0.000000,0.000000,0.707107 -6216,0.707107,0.000000,0.000000,0.707107 -6217,0.707107,0.000000,0.000000,0.707107 -6218,0.707107,0.000000,0.000000,0.707107 -6219,0.707107,0.000000,0.000000,0.707107 -6220,0.707107,0.000000,0.000000,0.707107 -6221,0.707107,0.000000,0.000000,0.707107 -6222,0.707107,0.000000,0.000000,0.707107 -6223,0.707107,0.000000,0.000000,0.707107 -6224,0.707107,0.000000,0.000000,0.707107 -6225,0.707107,0.000000,0.000000,0.707107 -6226,0.707107,0.000000,0.000000,0.707107 -6227,0.707107,0.000000,0.000000,0.707107 -6228,0.707107,0.000000,0.000000,0.707107 -6229,0.707107,0.000000,0.000000,0.707107 -6230,0.707107,0.000000,0.000000,0.707107 -6231,0.707107,0.000000,0.000000,0.707107 -6232,0.707107,0.000000,0.000000,0.707107 -6233,0.707107,0.000000,0.000000,0.707107 -6234,0.707107,0.000000,0.000000,0.707107 -6235,0.707107,0.000000,0.000000,0.707107 -6236,0.707107,0.000000,0.000000,0.707107 -6237,0.707107,0.000000,0.000000,0.707107 -6238,0.707107,0.000000,0.000000,0.707107 -6239,0.707107,0.000000,0.000000,0.707107 -6240,0.707107,0.000000,0.000000,0.707107 -6241,0.707107,0.000000,0.000000,0.707107 -6242,0.707107,0.000000,0.000000,0.707107 -6243,0.707107,0.000000,0.000000,0.707107 -6244,0.707107,0.000000,0.000000,0.707107 -6245,0.707107,0.000000,0.000000,0.707107 -6246,0.707107,0.000000,0.000000,0.707107 -6247,0.707107,0.000000,0.000000,0.707107 -6248,0.707107,0.000000,0.000000,0.707107 -6249,0.707107,0.000000,0.000000,0.707107 -6250,0.707107,0.000000,0.000000,0.707107 -6251,0.707107,0.000000,0.000000,0.707107 -6252,0.707107,0.000000,0.000000,0.707107 -6253,0.707107,0.000000,0.000000,0.707107 -6254,0.707107,0.000000,0.000000,0.707107 -6255,0.707107,0.000000,0.000000,0.707107 -6256,0.707107,0.000000,0.000000,0.707107 -6257,0.707107,0.000000,0.000000,0.707107 -6258,0.707107,0.000000,0.000000,0.707107 -6259,0.707107,0.000000,0.000000,0.707107 -6260,0.707107,0.000000,0.000000,0.707107 -6261,0.707107,0.000000,0.000000,0.707107 -6262,0.707107,0.000000,0.000000,0.707107 -6263,0.707107,0.000000,0.000000,0.707107 -6264,0.707107,0.000000,0.000000,0.707107 -6265,0.707107,0.000000,0.000000,0.707107 -6266,0.707107,0.000000,0.000000,0.707107 -6267,0.707107,0.000000,0.000000,0.707107 -6268,0.707107,0.000000,0.000000,0.707107 -6269,0.707107,0.000000,0.000000,0.707107 -6270,0.707107,0.000000,0.000000,0.707107 -6271,0.707107,0.000000,0.000000,0.707107 -6272,0.707107,0.000000,0.000000,0.707107 -6273,0.707107,0.000000,0.000000,0.707107 -6274,0.707107,0.000000,0.000000,0.707107 -6275,0.707107,0.000000,0.000000,0.707107 -6276,0.707107,0.000000,0.000000,0.707107 -6277,0.707107,0.000000,0.000000,0.707107 -6278,0.707107,0.000000,0.000000,0.707107 -6279,0.707107,0.000000,0.000000,0.707107 -6280,0.707107,0.000000,0.000000,0.707107 -6281,0.707107,0.000000,0.000000,0.707107 -6282,0.707107,0.000000,0.000000,0.707107 -6283,0.707107,0.000000,0.000000,0.707107 -6284,0.707107,0.000000,0.000000,0.707107 -6285,0.707107,0.000000,0.000000,0.707107 -6286,0.707107,0.000000,0.000000,0.707107 -6287,0.707107,0.000000,0.000000,0.707107 -6288,0.707107,0.000000,0.000000,0.707107 -6289,0.707107,0.000000,0.000000,0.707107 -6290,0.707107,0.000000,0.000000,0.707107 -6291,0.707107,0.000000,0.000000,0.707107 -6292,0.707107,0.000000,0.000000,0.707107 -6293,0.707107,0.000000,0.000000,0.707107 -6294,0.707107,0.000000,0.000000,0.707107 -6295,0.707107,0.000000,0.000000,0.707107 -6296,0.707107,0.000000,0.000000,0.707107 -6297,0.707107,0.000000,0.000000,0.707107 -6298,0.707107,0.000000,0.000000,0.707107 -6299,0.707107,0.000000,0.000000,0.707107 -6300,0.707107,0.000000,0.000000,0.707107 -6301,0.707107,0.000000,0.000000,0.707107 -6302,0.707107,0.000000,0.000000,0.707107 -6303,0.707107,0.000000,0.000000,0.707107 -6304,0.707107,0.000000,0.000000,0.707107 -6305,0.707107,0.000000,0.000000,0.707107 -6306,0.707107,0.000000,0.000000,0.707107 -6307,0.707107,0.000000,0.000000,0.707107 -6308,0.707107,0.000000,0.000000,0.707107 -6309,0.707107,0.000000,0.000000,0.707107 -6310,0.707107,0.000000,0.000000,0.707107 -6311,0.707107,0.000000,0.000000,0.707107 -6312,0.707107,0.000000,0.000000,0.707107 -6313,0.707107,0.000000,0.000000,0.707107 -6314,0.707107,0.000000,0.000000,0.707107 -6315,0.707107,0.000000,0.000000,0.707107 -6316,0.707107,0.000000,0.000000,0.707107 -6317,0.707107,0.000000,0.000000,0.707107 -6318,0.707107,0.000000,0.000000,0.707107 -6319,0.707107,0.000000,0.000000,0.707107 -6320,0.707107,0.000000,0.000000,0.707107 -6321,0.707107,0.000000,0.000000,0.707107 -6322,0.707107,0.000000,0.000000,0.707107 -6323,0.707107,0.000000,0.000000,0.707107 -6324,0.707107,0.000000,0.000000,0.707107 -6325,0.707107,0.000000,0.000000,0.707107 -6326,0.707107,0.000000,0.000000,0.707107 -6327,0.707107,0.000000,0.000000,0.707107 -6328,0.707107,0.000000,0.000000,0.707107 -6329,0.707107,0.000000,0.000000,0.707107 -6330,0.707107,0.000000,0.000000,0.707107 -6331,0.707107,0.000000,0.000000,0.707107 -6332,0.707107,0.000000,0.000000,0.707107 -6333,0.707107,0.000000,0.000000,0.707107 -6334,0.707107,0.000000,0.000000,0.707107 -6335,0.707107,0.000000,0.000000,0.707107 -6336,0.707107,0.000000,0.000000,0.707107 -6337,0.707107,0.000000,0.000000,0.707107 -6338,0.707107,0.000000,0.000000,0.707107 -6339,0.707107,0.000000,0.000000,0.707107 -6340,0.707107,0.000000,0.000000,0.707107 -6341,0.707107,0.000000,0.000000,0.707107 -6342,0.707107,0.000000,0.000000,0.707107 -6343,0.707107,0.000000,0.000000,0.707107 -6344,0.707107,0.000000,0.000000,0.707107 -6345,0.707107,0.000000,0.000000,0.707107 -6346,0.707107,0.000000,0.000000,0.707107 -6347,0.707107,0.000000,0.000000,0.707107 -6348,0.707107,0.000000,0.000000,0.707107 -6349,0.707107,0.000000,0.000000,0.707107 -6350,0.707107,0.000000,0.000000,0.707107 -6351,0.707107,0.000000,0.000000,0.707107 -6352,0.707107,0.000000,0.000000,0.707107 -6353,0.707107,0.000000,0.000000,0.707107 -6354,0.707107,0.000000,0.000000,0.707107 -6355,0.707107,0.000000,0.000000,0.707107 -6356,0.707107,0.000000,0.000000,0.707107 -6357,0.707107,0.000000,0.000000,0.707107 -6358,0.707107,0.000000,0.000000,0.707107 -6359,0.707107,0.000000,0.000000,0.707107 -6360,0.707107,0.000000,0.000000,0.707107 -6361,0.707107,0.000000,0.000000,0.707107 -6362,0.707107,0.000000,0.000000,0.707107 -6363,0.707107,0.000000,0.000000,0.707107 -6364,0.707107,0.000000,0.000000,0.707107 -6365,0.707107,0.000000,0.000000,0.707107 -6366,0.707107,0.000000,0.000000,0.707107 -6367,0.707107,0.000000,0.000000,0.707107 -6368,0.707107,0.000000,0.000000,0.707107 -6369,0.707107,0.000000,0.000000,0.707107 -6370,0.707107,0.000000,0.000000,0.707107 -6371,0.707107,0.000000,0.000000,0.707107 -6372,0.707107,0.000000,0.000000,0.707107 -6373,0.707107,0.000000,0.000000,0.707107 -6374,0.707107,0.000000,0.000000,0.707107 -6375,0.707107,0.000000,0.000000,0.707107 -6376,0.707107,0.000000,0.000000,0.707107 -6377,0.707107,0.000000,0.000000,0.707107 -6378,0.707107,0.000000,0.000000,0.707107 -6379,0.707107,0.000000,0.000000,0.707107 -6380,0.707107,0.000000,0.000000,0.707107 -6381,0.707107,0.000000,0.000000,0.707107 -6382,0.707107,0.000000,0.000000,0.707107 -6383,0.707107,0.000000,0.000000,0.707107 -6384,0.707107,0.000000,0.000000,0.707107 -6385,0.707107,0.000000,0.000000,0.707107 -6386,0.707107,0.000000,0.000000,0.707107 -6387,0.707107,0.000000,0.000000,0.707107 -6388,0.707107,0.000000,0.000000,0.707107 -6389,0.707107,0.000000,0.000000,0.707107 -6390,0.707107,0.000000,0.000000,0.707107 -6391,0.707107,0.000000,0.000000,0.707107 -6392,0.707107,0.000000,0.000000,0.707107 -6393,0.707107,0.000000,0.000000,0.707107 -6394,0.707107,0.000000,0.000000,0.707107 -6395,0.707107,0.000000,0.000000,0.707107 -6396,0.707107,0.000000,0.000000,0.707107 -6397,0.707107,0.000000,0.000000,0.707107 -6398,0.707107,0.000000,0.000000,0.707107 -6399,0.707107,0.000000,0.000000,0.707107 -6400,0.707107,0.000000,0.000000,0.707107 -6401,0.707107,0.000000,0.000000,0.707107 -6402,0.707107,0.000000,0.000000,0.707107 -6403,0.707107,0.000000,0.000000,0.707107 -6404,0.707107,0.000000,0.000000,0.707107 -6405,0.707107,0.000000,0.000000,0.707107 -6406,0.707107,0.000000,0.000000,0.707107 -6407,0.707107,0.000000,0.000000,0.707107 -6408,0.707107,0.000000,0.000000,0.707107 -6409,0.707107,0.000000,0.000000,0.707107 -6410,0.707107,0.000000,0.000000,0.707107 -6411,0.707107,0.000000,0.000000,0.707107 -6412,0.707107,0.000000,0.000000,0.707107 -6413,0.707107,0.000000,0.000000,0.707107 -6414,0.707107,0.000000,0.000000,0.707107 -6415,0.707107,0.000000,0.000000,0.707107 -6416,0.707107,0.000000,0.000000,0.707107 -6417,0.707107,0.000000,0.000000,0.707107 -6418,0.707107,0.000000,0.000000,0.707107 -6419,0.707107,0.000000,0.000000,0.707107 -6420,0.707107,0.000000,0.000000,0.707107 -6421,0.707107,0.000000,0.000000,0.707107 -6422,0.707107,0.000000,0.000000,0.707107 -6423,0.707107,0.000000,0.000000,0.707107 -6424,0.707107,0.000000,0.000000,0.707107 -6425,0.707107,0.000000,0.000000,0.707107 -6426,0.707107,0.000000,0.000000,0.707107 -6427,0.707107,0.000000,0.000000,0.707107 -6428,0.707107,0.000000,0.000000,0.707107 -6429,0.707107,0.000000,0.000000,0.707107 -6430,0.707107,0.000000,0.000000,0.707107 -6431,0.707107,0.000000,0.000000,0.707107 -6432,0.707107,0.000000,0.000000,0.707107 -6433,0.707107,0.000000,0.000000,0.707107 -6434,0.707107,0.000000,0.000000,0.707107 -6435,0.707107,0.000000,0.000000,0.707107 -6436,0.707107,0.000000,0.000000,0.707107 -6437,0.707107,0.000000,0.000000,0.707107 -6438,0.707107,0.000000,0.000000,0.707107 -6439,0.707107,0.000000,0.000000,0.707107 -6440,0.707107,0.000000,0.000000,0.707107 -6441,0.707107,0.000000,0.000000,0.707107 -6442,0.707107,0.000000,0.000000,0.707107 -6443,0.707107,0.000000,0.000000,0.707107 -6444,0.707107,0.000000,0.000000,0.707107 -6445,0.707107,0.000000,0.000000,0.707107 -6446,0.707107,0.000000,0.000000,0.707107 -6447,0.707107,0.000000,0.000000,0.707107 -6448,0.707107,0.000000,0.000000,0.707107 -6449,0.707107,0.000000,0.000000,0.707107 -6450,0.707107,0.000000,0.000000,0.707107 -6451,0.707107,0.000000,0.000000,0.707107 -6452,0.707107,0.000000,0.000000,0.707107 -6453,0.707107,0.000000,0.000000,0.707107 -6454,0.707107,0.000000,0.000000,0.707107 -6455,0.707107,0.000000,0.000000,0.707107 -6456,0.707107,0.000000,0.000000,0.707107 -6457,0.707107,0.000000,0.000000,0.707107 -6458,0.707107,0.000000,0.000000,0.707107 -6459,0.707107,0.000000,0.000000,0.707107 -6460,0.707107,0.000000,0.000000,0.707107 -6461,0.707107,0.000000,0.000000,0.707107 -6462,0.707107,0.000000,0.000000,0.707107 -6463,0.707107,0.000000,0.000000,0.707107 -6464,0.707107,0.000000,0.000000,0.707107 -6465,0.707107,0.000000,0.000000,0.707107 -6466,0.707107,0.000000,0.000000,0.707107 -6467,0.707107,0.000000,0.000000,0.707107 -6468,0.707107,0.000000,0.000000,0.707107 -6469,0.707107,0.000000,0.000000,0.707107 -6470,0.707107,0.000000,0.000000,0.707107 -6471,0.707107,0.000000,0.000000,0.707107 -6472,0.707107,0.000000,0.000000,0.707107 -6473,0.707107,0.000000,0.000000,0.707107 -6474,0.707107,0.000000,0.000000,0.707107 -6475,0.707107,0.000000,0.000000,0.707107 -6476,0.707107,0.000000,0.000000,0.707107 -6477,0.707107,0.000000,0.000000,0.707107 -6478,0.707107,0.000000,0.000000,0.707107 -6479,0.707107,0.000000,0.000000,0.707107 -6480,0.707107,0.000000,0.000000,0.707107 -6481,0.707107,0.000000,0.000000,0.707107 -6482,0.707107,0.000000,0.000000,0.707107 -6483,0.707107,0.000000,0.000000,0.707107 -6484,0.707107,0.000000,0.000000,0.707107 -6485,0.707107,0.000000,0.000000,0.707107 -6486,0.707107,0.000000,0.000000,0.707107 -6487,0.707107,0.000000,0.000000,0.707107 -6488,0.707107,0.000000,0.000000,0.707107 -6489,0.707107,0.000000,0.000000,0.707107 -6490,0.707107,0.000000,0.000000,0.707107 -6491,0.707107,0.000000,0.000000,0.707107 -6492,0.707107,0.000000,0.000000,0.707107 -6493,0.707107,0.000000,0.000000,0.707107 -6494,0.707107,0.000000,0.000000,0.707107 -6495,0.707107,0.000000,0.000000,0.707107 -6496,0.707107,0.000000,0.000000,0.707107 -6497,0.707107,0.000000,0.000000,0.707107 -6498,0.707107,0.000000,0.000000,0.707107 -6499,0.707107,0.000000,0.000000,0.707107 -6500,0.707107,0.000000,0.000000,0.707107 -6501,0.707107,0.000000,0.000000,0.707107 -6502,0.707107,0.000000,0.000000,0.707107 -6503,0.707107,0.000000,0.000000,0.707107 -6504,0.707107,0.000000,0.000000,0.707107 -6505,0.707107,0.000000,0.000000,0.707107 -6506,0.707107,0.000000,0.000000,0.707107 -6507,0.707107,0.000000,0.000000,0.707107 -6508,0.707107,0.000000,0.000000,0.707107 -6509,0.707107,0.000000,0.000000,0.707107 -6510,0.707107,0.000000,0.000000,0.707107 -6511,0.707107,0.000000,0.000000,0.707107 -6512,0.707107,0.000000,0.000000,0.707107 -6513,0.707107,0.000000,0.000000,0.707107 -6514,0.707107,0.000000,0.000000,0.707107 -6515,0.707107,0.000000,0.000000,0.707107 -6516,0.707107,0.000000,0.000000,0.707107 -6517,0.707107,0.000000,0.000000,0.707107 -6518,0.707107,0.000000,0.000000,0.707107 -6519,0.707107,0.000000,0.000000,0.707107 -6520,0.707107,0.000000,0.000000,0.707107 -6521,0.707107,0.000000,0.000000,0.707107 -6522,0.707107,0.000000,0.000000,0.707107 -6523,0.707107,0.000000,0.000000,0.707107 -6524,0.707107,0.000000,0.000000,0.707107 -6525,0.707107,0.000000,0.000000,0.707107 -6526,0.707107,0.000000,0.000000,0.707107 -6527,0.707107,0.000000,0.000000,0.707107 -6528,0.707107,0.000000,0.000000,0.707107 -6529,0.707107,0.000000,0.000000,0.707107 -6530,0.707107,0.000000,0.000000,0.707107 -6531,0.707107,0.000000,0.000000,0.707107 -6532,0.707107,0.000000,0.000000,0.707107 -6533,0.707107,0.000000,0.000000,0.707107 -6534,0.707107,0.000000,0.000000,0.707107 -6535,0.707107,0.000000,0.000000,0.707107 -6536,0.707107,0.000000,0.000000,0.707107 -6537,0.707107,0.000000,0.000000,0.707107 -6538,0.707107,0.000000,0.000000,0.707107 -6539,0.707107,0.000000,0.000000,0.707107 -6540,0.707107,0.000000,0.000000,0.707107 -6541,0.707107,0.000000,0.000000,0.707107 -6542,0.707107,0.000000,0.000000,0.707107 -6543,0.707107,0.000000,0.000000,0.707107 -6544,0.707107,0.000000,0.000000,0.707107 -6545,0.707107,0.000000,0.000000,0.707107 -6546,0.707107,0.000000,0.000000,0.707107 -6547,0.707107,0.000000,0.000000,0.707107 -6548,0.707107,0.000000,0.000000,0.707107 -6549,0.707107,0.000000,0.000000,0.707107 -6550,0.707107,0.000000,0.000000,0.707107 -6551,0.707107,0.000000,0.000000,0.707107 -6552,0.707107,0.000000,0.000000,0.707107 -6553,0.707107,0.000000,0.000000,0.707107 -6554,0.707107,0.000000,0.000000,0.707107 -6555,0.707107,0.000000,0.000000,0.707107 -6556,0.707107,0.000000,0.000000,0.707107 -6557,0.707107,0.000000,0.000000,0.707107 -6558,0.707107,0.000000,0.000000,0.707107 -6559,0.707107,0.000000,0.000000,0.707107 -6560,0.707107,0.000000,0.000000,0.707107 -6561,0.707107,0.000000,0.000000,0.707107 -6562,0.707107,0.000000,0.000000,0.707107 -6563,0.707107,0.000000,0.000000,0.707107 -6564,0.707107,0.000000,0.000000,0.707107 -6565,0.707107,0.000000,0.000000,0.707107 -6566,0.707107,0.000000,0.000000,0.707107 -6567,0.707107,0.000000,0.000000,0.707107 -6568,0.707107,0.000000,0.000000,0.707107 -6569,0.707107,0.000000,0.000000,0.707107 -6570,0.707107,0.000000,0.000000,0.707107 -6571,0.707107,0.000000,0.000000,0.707107 -6572,0.707107,0.000000,0.000000,0.707107 -6573,0.707107,0.000000,0.000000,0.707107 -6574,0.707107,0.000000,0.000000,0.707107 -6575,0.707107,0.000000,0.000000,0.707107 -6576,0.707107,0.000000,0.000000,0.707107 -6577,0.707107,0.000000,0.000000,0.707107 -6578,0.707107,0.000000,0.000000,0.707107 -6579,0.707107,0.000000,0.000000,0.707107 -6580,0.707107,0.000000,0.000000,0.707107 -6581,0.707107,0.000000,0.000000,0.707107 -6582,0.707107,0.000000,0.000000,0.707107 -6583,0.707107,0.000000,0.000000,0.707107 -6584,0.707107,0.000000,0.000000,0.707107 -6585,0.707107,0.000000,0.000000,0.707107 -6586,0.707107,0.000000,0.000000,0.707107 -6587,0.707107,0.000000,0.000000,0.707107 -6588,0.707107,0.000000,0.000000,0.707107 -6589,0.707107,0.000000,0.000000,0.707107 -6590,0.707107,0.000000,0.000000,0.707107 -6591,0.707107,0.000000,0.000000,0.707107 -6592,0.707107,0.000000,0.000000,0.707107 -6593,0.707107,0.000000,0.000000,0.707107 -6594,0.707107,0.000000,0.000000,0.707107 -6595,0.707107,0.000000,0.000000,0.707107 -6596,0.707107,0.000000,0.000000,0.707107 -6597,0.707107,0.000000,0.000000,0.707107 -6598,0.707107,0.000000,0.000000,0.707107 -6599,0.707107,0.000000,0.000000,0.707107 -6600,0.707107,0.000000,0.000000,0.707107 -6601,0.707107,0.000000,0.000000,0.707107 -6602,0.707107,0.000000,0.000000,0.707107 -6603,0.707107,0.000000,0.000000,0.707107 -6604,0.707107,0.000000,0.000000,0.707107 -6605,0.707107,0.000000,0.000000,0.707107 -6606,0.707107,0.000000,0.000000,0.707107 -6607,0.707107,0.000000,0.000000,0.707107 -6608,0.707107,0.000000,0.000000,0.707107 -6609,0.707107,0.000000,0.000000,0.707107 -6610,0.707107,0.000000,0.000000,0.707107 -6611,0.707107,0.000000,0.000000,0.707107 -6612,0.707107,0.000000,0.000000,0.707107 -6613,0.707107,0.000000,0.000000,0.707107 -6614,0.707107,0.000000,0.000000,0.707107 -6615,0.707107,0.000000,0.000000,0.707107 -6616,0.707107,0.000000,0.000000,0.707107 -6617,0.707107,0.000000,0.000000,0.707107 -6618,0.707107,0.000000,0.000000,0.707107 -6619,0.707107,0.000000,0.000000,0.707107 -6620,0.707107,0.000000,0.000000,0.707107 -6621,0.707107,0.000000,0.000000,0.707107 -6622,0.707107,0.000000,0.000000,0.707107 -6623,0.707107,0.000000,0.000000,0.707107 -6624,0.707107,0.000000,0.000000,0.707107 -6625,0.707107,0.000000,0.000000,0.707107 -6626,0.707107,0.000000,0.000000,0.707107 -6627,0.707107,0.000000,0.000000,0.707107 -6628,0.707107,0.000000,0.000000,0.707107 -6629,0.707107,0.000000,0.000000,0.707107 -6630,0.707107,0.000000,0.000000,0.707107 -6631,0.707107,0.000000,0.000000,0.707107 -6632,0.707107,0.000000,0.000000,0.707107 -6633,0.707107,0.000000,0.000000,0.707107 -6634,0.707107,0.000000,0.000000,0.707107 -6635,0.707107,0.000000,0.000000,0.707107 -6636,0.707107,0.000000,0.000000,0.707107 -6637,0.707107,0.000000,0.000000,0.707107 -6638,0.707107,0.000000,0.000000,0.707107 -6639,0.707107,0.000000,0.000000,0.707107 -6640,0.707107,0.000000,0.000000,0.707107 -6641,0.707107,0.000000,0.000000,0.707107 -6642,0.707107,0.000000,0.000000,0.707107 -6643,0.707107,0.000000,0.000000,0.707107 -6644,0.707107,0.000000,0.000000,0.707107 -6645,0.707107,0.000000,0.000000,0.707107 -6646,0.707107,0.000000,0.000000,0.707107 -6647,0.707107,0.000000,0.000000,0.707107 -6648,0.707107,0.000000,0.000000,0.707107 -6649,0.707107,0.000000,0.000000,0.707107 -6650,0.707107,0.000000,0.000000,0.707107 -6651,0.707107,0.000000,0.000000,0.707107 -6652,0.707107,0.000000,0.000000,0.707107 -6653,0.707107,0.000000,0.000000,0.707107 -6654,0.707107,0.000000,0.000000,0.707107 -6655,0.707107,0.000000,0.000000,0.707107 -6656,0.707107,0.000000,0.000000,0.707107 -6657,0.707107,0.000000,0.000000,0.707107 -6658,0.707107,0.000000,0.000000,0.707107 -6659,0.707107,0.000000,0.000000,0.707107 -6660,0.707107,0.000000,0.000000,0.707107 -6661,0.707107,0.000000,0.000000,0.707107 -6662,0.707107,0.000000,0.000000,0.707107 -6663,0.707107,0.000000,0.000000,0.707107 -6664,0.707107,0.000000,0.000000,0.707107 -6665,0.707107,0.000000,0.000000,0.707107 -6666,0.707107,0.000000,0.000000,0.707107 -6667,0.707107,0.000000,0.000000,0.707107 -6668,0.707107,0.000000,0.000000,0.707107 -6669,0.707107,0.000000,0.000000,0.707107 -6670,0.707107,0.000000,0.000000,0.707107 -6671,0.707107,0.000000,0.000000,0.707107 -6672,0.707107,0.000000,0.000000,0.707107 -6673,0.707107,0.000000,0.000000,0.707107 -6674,0.707107,0.000000,0.000000,0.707107 -6675,0.707107,0.000000,0.000000,0.707107 -6676,0.707107,0.000000,0.000000,0.707107 -6677,0.707107,0.000000,0.000000,0.707107 -6678,0.707107,0.000000,0.000000,0.707107 -6679,0.707107,0.000000,0.000000,0.707107 -6680,0.707107,0.000000,0.000000,0.707107 -6681,0.707107,0.000000,0.000000,0.707107 -6682,0.707107,0.000000,0.000000,0.707107 -6683,0.707107,0.000000,0.000000,0.707107 -6684,0.707107,0.000000,0.000000,0.707107 -6685,0.707107,0.000000,0.000000,0.707107 -6686,0.707107,0.000000,0.000000,0.707107 -6687,0.707107,0.000000,0.000000,0.707107 -6688,0.707107,0.000000,0.000000,0.707107 -6689,0.707107,0.000000,0.000000,0.707107 -6690,0.707107,0.000000,0.000000,0.707107 -6691,0.707107,0.000000,0.000000,0.707107 -6692,0.707107,0.000000,0.000000,0.707107 -6693,0.707107,0.000000,0.000000,0.707107 -6694,0.707107,0.000000,0.000000,0.707107 -6695,0.707107,0.000000,0.000000,0.707107 -6696,0.707107,0.000000,0.000000,0.707107 -6697,0.707107,0.000000,0.000000,0.707107 -6698,0.707107,0.000000,0.000000,0.707107 -6699,0.707107,0.000000,0.000000,0.707107 -6700,0.707107,0.000000,0.000000,0.707107 -6701,0.707107,0.000000,0.000000,0.707107 -6702,0.707107,0.000000,0.000000,0.707107 -6703,0.707107,0.000000,0.000000,0.707107 -6704,0.707107,0.000000,0.000000,0.707107 -6705,0.707107,0.000000,0.000000,0.707107 -6706,0.707107,0.000000,0.000000,0.707107 -6707,0.707107,0.000000,0.000000,0.707107 -6708,0.707107,0.000000,0.000000,0.707107 -6709,0.707107,0.000000,0.000000,0.707107 -6710,0.707107,0.000000,0.000000,0.707107 -6711,0.707107,0.000000,0.000000,0.707107 -6712,0.707107,0.000000,0.000000,0.707107 -6713,0.707107,0.000000,0.000000,0.707107 -6714,0.707107,0.000000,0.000000,0.707107 -6715,0.707107,0.000000,0.000000,0.707107 -6716,0.707107,0.000000,0.000000,0.707107 -6717,0.707107,0.000000,0.000000,0.707107 -6718,0.707107,0.000000,0.000000,0.707107 -6719,0.707107,0.000000,0.000000,0.707107 -6720,0.707107,0.000000,0.000000,0.707107 -6721,0.707107,0.000000,0.000000,0.707107 -6722,0.707107,0.000000,0.000000,0.707107 -6723,0.707107,0.000000,0.000000,0.707107 -6724,0.707107,0.000000,0.000000,0.707107 -6725,0.707107,0.000000,0.000000,0.707107 -6726,0.707107,0.000000,0.000000,0.707107 -6727,0.707107,0.000000,0.000000,0.707107 -6728,0.707107,0.000000,0.000000,0.707107 -6729,0.707107,0.000000,0.000000,0.707107 -6730,0.707107,0.000000,0.000000,0.707107 -6731,0.707107,0.000000,0.000000,0.707107 -6732,0.707107,0.000000,0.000000,0.707107 -6733,0.707107,0.000000,0.000000,0.707107 -6734,0.707107,0.000000,0.000000,0.707107 -6735,0.707107,0.000000,0.000000,0.707107 -6736,0.707107,0.000000,0.000000,0.707107 -6737,0.707107,0.000000,0.000000,0.707107 -6738,0.707107,0.000000,0.000000,0.707107 -6739,0.707107,0.000000,0.000000,0.707107 -6740,0.707107,0.000000,0.000000,0.707107 -6741,0.707107,0.000000,0.000000,0.707107 -6742,0.707107,0.000000,0.000000,0.707107 -6743,0.707107,0.000000,0.000000,0.707107 -6744,0.707107,0.000000,0.000000,0.707107 -6745,0.707107,0.000000,0.000000,0.707107 -6746,0.707107,0.000000,0.000000,0.707107 -6747,0.707107,0.000000,0.000000,0.707107 -6748,0.707107,0.000000,0.000000,0.707107 -6749,0.707107,0.000000,0.000000,0.707107 -6750,0.707107,0.000000,0.000000,0.707107 -6751,0.707107,0.000000,0.000000,0.707107 -6752,0.707107,0.000000,0.000000,0.707107 -6753,0.707107,0.000000,0.000000,0.707107 -6754,0.707107,0.000000,0.000000,0.707107 -6755,0.707107,0.000000,0.000000,0.707107 -6756,0.707107,0.000000,0.000000,0.707107 -6757,0.707107,0.000000,0.000000,0.707107 -6758,0.707107,0.000000,0.000000,0.707107 -6759,0.707107,0.000000,0.000000,0.707107 -6760,0.707107,0.000000,0.000000,0.707107 -6761,0.707107,0.000000,0.000000,0.707107 -6762,0.707107,0.000000,0.000000,0.707107 -6763,0.707107,0.000000,0.000000,0.707107 -6764,0.707107,0.000000,0.000000,0.707107 -6765,0.707107,0.000000,0.000000,0.707107 -6766,0.707107,0.000000,0.000000,0.707107 -6767,0.707107,0.000000,0.000000,0.707107 -6768,0.707107,0.000000,0.000000,0.707107 -6769,0.707107,0.000000,0.000000,0.707107 -6770,0.707107,0.000000,0.000000,0.707107 -6771,0.707107,0.000000,0.000000,0.707107 -6772,0.707107,0.000000,0.000000,0.707107 -6773,0.707107,0.000000,0.000000,0.707107 -6774,0.707107,0.000000,0.000000,0.707107 -6775,0.707107,0.000000,0.000000,0.707107 -6776,0.707107,0.000000,0.000000,0.707107 -6777,0.707107,0.000000,0.000000,0.707107 -6778,0.707107,0.000000,0.000000,0.707107 -6779,0.707107,0.000000,0.000000,0.707107 -6780,0.707107,0.000000,0.000000,0.707107 -6781,0.707107,0.000000,0.000000,0.707107 -6782,0.707107,0.000000,0.000000,0.707107 -6783,0.707107,0.000000,0.000000,0.707107 -6784,0.707107,0.000000,0.000000,0.707107 -6785,0.707107,0.000000,0.000000,0.707107 -6786,0.707107,0.000000,0.000000,0.707107 -6787,0.707107,0.000000,0.000000,0.707107 -6788,0.707107,0.000000,0.000000,0.707107 -6789,0.707107,0.000000,0.000000,0.707107 -6790,0.707107,0.000000,0.000000,0.707107 -6791,0.707107,0.000000,0.000000,0.707107 -6792,0.707107,0.000000,0.000000,0.707107 -6793,0.707107,0.000000,0.000000,0.707107 -6794,0.707107,0.000000,0.000000,0.707107 -6795,0.707107,0.000000,0.000000,0.707107 -6796,0.707107,0.000000,0.000000,0.707107 -6797,0.707107,0.000000,0.000000,0.707107 -6798,0.707107,0.000000,0.000000,0.707107 -6799,0.707107,0.000000,0.000000,0.707107 -6800,0.707107,0.000000,0.000000,0.707107 -6801,0.707107,0.000000,0.000000,0.707107 -6802,0.707107,0.000000,0.000000,0.707107 -6803,0.707107,0.000000,0.000000,0.707107 -6804,0.707107,0.000000,0.000000,0.707107 -6805,0.707107,0.000000,0.000000,0.707107 -6806,0.707107,0.000000,0.000000,0.707107 -6807,0.707107,0.000000,0.000000,0.707107 -6808,0.707107,0.000000,0.000000,0.707107 -6809,0.707107,0.000000,0.000000,0.707107 -6810,0.707107,0.000000,0.000000,0.707107 -6811,0.707107,0.000000,0.000000,0.707107 -6812,0.707107,0.000000,0.000000,0.707107 -6813,0.707107,0.000000,0.000000,0.707107 -6814,0.707107,0.000000,0.000000,0.707107 -6815,0.707107,0.000000,0.000000,0.707107 -6816,0.707107,0.000000,0.000000,0.707107 -6817,0.707107,0.000000,0.000000,0.707107 -6818,0.707107,0.000000,0.000000,0.707107 -6819,0.707107,0.000000,0.000000,0.707107 -6820,0.707107,0.000000,0.000000,0.707107 -6821,0.707107,0.000000,0.000000,0.707107 -6822,0.707107,0.000000,0.000000,0.707107 -6823,0.707107,0.000000,0.000000,0.707107 -6824,0.707107,0.000000,0.000000,0.707107 -6825,0.707107,0.000000,0.000000,0.707107 -6826,0.707107,0.000000,0.000000,0.707107 -6827,0.707107,0.000000,0.000000,0.707107 -6828,0.707107,0.000000,0.000000,0.707107 -6829,0.707107,0.000000,0.000000,0.707107 -6830,0.707107,0.000000,0.000000,0.707107 -6831,0.707107,0.000000,0.000000,0.707107 -6832,0.707107,0.000000,0.000000,0.707107 -6833,0.707107,0.000000,0.000000,0.707107 -6834,0.707107,0.000000,0.000000,0.707107 -6835,0.707107,0.000000,0.000000,0.707107 -6836,0.707107,0.000000,0.000000,0.707107 -6837,0.707107,0.000000,0.000000,0.707107 -6838,0.707107,0.000000,0.000000,0.707107 -6839,0.707107,0.000000,0.000000,0.707107 -6840,0.707107,0.000000,0.000000,0.707107 -6841,0.707107,0.000000,0.000000,0.707107 -6842,0.707107,0.000000,0.000000,0.707107 -6843,0.707107,0.000000,0.000000,0.707107 -6844,0.707107,0.000000,0.000000,0.707107 -6845,0.707107,0.000000,0.000000,0.707107 -6846,0.707107,0.000000,0.000000,0.707107 -6847,0.707107,0.000000,0.000000,0.707107 -6848,0.707107,0.000000,0.000000,0.707107 -6849,0.707107,0.000000,0.000000,0.707107 -6850,0.707107,0.000000,0.000000,0.707107 -6851,0.707107,0.000000,0.000000,0.707107 -6852,0.707107,0.000000,0.000000,0.707107 -6853,0.707107,0.000000,0.000000,0.707107 -6854,0.707107,0.000000,0.000000,0.707107 -6855,0.707107,0.000000,0.000000,0.707107 -6856,0.707107,0.000000,0.000000,0.707107 -6857,0.707107,0.000000,0.000000,0.707107 -6858,0.707107,0.000000,0.000000,0.707107 -6859,0.707107,0.000000,0.000000,0.707107 -6860,0.707107,0.000000,0.000000,0.707107 -6861,0.707107,0.000000,0.000000,0.707107 -6862,0.707107,0.000000,0.000000,0.707107 -6863,0.707107,0.000000,0.000000,0.707107 -6864,0.707107,0.000000,0.000000,0.707107 -6865,0.707107,0.000000,0.000000,0.707107 -6866,0.707107,0.000000,0.000000,0.707107 -6867,0.707107,0.000000,0.000000,0.707107 -6868,0.707107,0.000000,0.000000,0.707107 -6869,0.707107,0.000000,0.000000,0.707107 -6870,0.707107,0.000000,0.000000,0.707107 -6871,0.707107,0.000000,0.000000,0.707107 -6872,0.707107,0.000000,0.000000,0.707107 -6873,0.707107,0.000000,0.000000,0.707107 -6874,0.707107,0.000000,0.000000,0.707107 -6875,0.707107,0.000000,0.000000,0.707107 -6876,0.707107,0.000000,0.000000,0.707107 -6877,0.707107,0.000000,0.000000,0.707107 -6878,0.707107,0.000000,0.000000,0.707107 -6879,0.707107,0.000000,0.000000,0.707107 -6880,0.707107,0.000000,0.000000,0.707107 -6881,0.707107,0.000000,0.000000,0.707107 -6882,0.707107,0.000000,0.000000,0.707107 -6883,0.707107,0.000000,0.000000,0.707107 -6884,0.707107,0.000000,0.000000,0.707107 -6885,0.707107,0.000000,0.000000,0.707107 -6886,0.707107,0.000000,0.000000,0.707107 -6887,0.707107,0.000000,0.000000,0.707107 -6888,0.707107,0.000000,0.000000,0.707107 -6889,0.707107,0.000000,0.000000,0.707107 -6890,0.707107,0.000000,0.000000,0.707107 -6891,0.707107,0.000000,0.000000,0.707107 -6892,0.707107,0.000000,0.000000,0.707107 -6893,0.707107,0.000000,0.000000,0.707107 -6894,0.707107,0.000000,0.000000,0.707107 -6895,0.707107,0.000000,0.000000,0.707107 -6896,0.707107,0.000000,0.000000,0.707107 -6897,0.707107,0.000000,0.000000,0.707107 -6898,0.707107,0.000000,0.000000,0.707107 -6899,0.707107,0.000000,0.000000,0.707107 -6900,0.707107,0.000000,0.000000,0.707107 -6901,0.707107,0.000000,0.000000,0.707107 -6902,0.707107,0.000000,0.000000,0.707107 -6903,0.707107,0.000000,0.000000,0.707107 -6904,0.707107,0.000000,0.000000,0.707107 -6905,0.707107,0.000000,0.000000,0.707107 -6906,0.707107,0.000000,0.000000,0.707107 -6907,0.707107,0.000000,0.000000,0.707107 -6908,0.707107,0.000000,0.000000,0.707107 -6909,0.707107,0.000000,0.000000,0.707107 -6910,0.707107,0.000000,0.000000,0.707107 -6911,0.707107,0.000000,0.000000,0.707107 -6912,0.707107,0.000000,0.000000,0.707107 -6913,0.707107,0.000000,0.000000,0.707107 -6914,0.707107,0.000000,0.000000,0.707107 -6915,0.707107,0.000000,0.000000,0.707107 -6916,0.707107,0.000000,0.000000,0.707107 -6917,0.707107,0.000000,0.000000,0.707107 -6918,0.707107,0.000000,0.000000,0.707107 -6919,0.707107,0.000000,0.000000,0.707107 -6920,0.707107,0.000000,0.000000,0.707107 -6921,0.707107,0.000000,0.000000,0.707107 -6922,0.707107,0.000000,0.000000,0.707107 -6923,0.707107,0.000000,0.000000,0.707107 -6924,0.707107,0.000000,0.000000,0.707107 -6925,0.707107,0.000000,0.000000,0.707107 -6926,0.707107,0.000000,0.000000,0.707107 -6927,0.707107,0.000000,0.000000,0.707107 -6928,0.707107,0.000000,0.000000,0.707107 -6929,0.707107,0.000000,0.000000,0.707107 -6930,0.707107,0.000000,0.000000,0.707107 -6931,0.707107,0.000000,0.000000,0.707107 -6932,0.707107,0.000000,0.000000,0.707107 -6933,0.707107,0.000000,0.000000,0.707107 -6934,0.707107,0.000000,0.000000,0.707107 -6935,0.707107,0.000000,0.000000,0.707107 -6936,0.707107,0.000000,0.000000,0.707107 -6937,0.707107,0.000000,0.000000,0.707107 -6938,0.707107,0.000000,0.000000,0.707107 -6939,0.707107,0.000000,0.000000,0.707107 -6940,0.707107,0.000000,0.000000,0.707107 -6941,0.707107,0.000000,0.000000,0.707107 -6942,0.707107,0.000000,0.000000,0.707107 -6943,0.707107,0.000000,0.000000,0.707107 -6944,0.707107,0.000000,0.000000,0.707107 -6945,0.707107,0.000000,0.000000,0.707107 -6946,0.707107,0.000000,0.000000,0.707107 -6947,0.707107,0.000000,0.000000,0.707107 -6948,0.707107,0.000000,0.000000,0.707107 -6949,0.707107,0.000000,0.000000,0.707107 -6950,0.707107,0.000000,0.000000,0.707107 -6951,0.707107,0.000000,0.000000,0.707107 -6952,0.707107,0.000000,0.000000,0.707107 -6953,0.707107,0.000000,0.000000,0.707107 -6954,0.707107,0.000000,0.000000,0.707107 -6955,0.707107,0.000000,0.000000,0.707107 -6956,0.707107,0.000000,0.000000,0.707107 -6957,0.707107,0.000000,0.000000,0.707107 -6958,0.707107,0.000000,0.000000,0.707107 -6959,0.707107,0.000000,0.000000,0.707107 -6960,0.707107,0.000000,0.000000,0.707107 -6961,0.707107,0.000000,0.000000,0.707107 -6962,0.707107,0.000000,0.000000,0.707107 -6963,0.707107,0.000000,0.000000,0.707107 -6964,0.707107,0.000000,0.000000,0.707107 -6965,0.707107,0.000000,0.000000,0.707107 -6966,0.707107,0.000000,0.000000,0.707107 -6967,0.707107,0.000000,0.000000,0.707107 -6968,0.707107,0.000000,0.000000,0.707107 -6969,0.707107,0.000000,0.000000,0.707107 -6970,0.707107,0.000000,0.000000,0.707107 -6971,0.707107,0.000000,0.000000,0.707107 -6972,0.707107,0.000000,0.000000,0.707107 -6973,0.707107,0.000000,0.000000,0.707107 -6974,0.707107,0.000000,0.000000,0.707107 -6975,0.707107,0.000000,0.000000,0.707107 -6976,0.707107,0.000000,0.000000,0.707107 -6977,0.707107,0.000000,0.000000,0.707107 -6978,0.707107,0.000000,0.000000,0.707107 -6979,0.707107,0.000000,0.000000,0.707107 -6980,0.707107,0.000000,0.000000,0.707107 -6981,0.707107,0.000000,0.000000,0.707107 -6982,0.707107,0.000000,0.000000,0.707107 -6983,0.707107,0.000000,0.000000,0.707107 -6984,0.707107,0.000000,0.000000,0.707107 -6985,0.707107,0.000000,0.000000,0.707107 -6986,0.707107,0.000000,0.000000,0.707107 -6987,0.707107,0.000000,0.000000,0.707107 -6988,0.707107,0.000000,0.000000,0.707107 -6989,0.707107,0.000000,0.000000,0.707107 -6990,0.707107,0.000000,0.000000,0.707107 -6991,0.707107,0.000000,0.000000,0.707107 -6992,0.707107,0.000000,0.000000,0.707107 -6993,0.707107,0.000000,0.000000,0.707107 -6994,0.707107,0.000000,0.000000,0.707107 -6995,0.707107,0.000000,0.000000,0.707107 -6996,0.707107,0.000000,0.000000,0.707107 -6997,0.707107,0.000000,0.000000,0.707107 -6998,0.707107,0.000000,0.000000,0.707107 -6999,0.707107,0.000000,0.000000,0.707107 -7000,0.707107,0.000000,0.000000,0.707107 -7001,0.707107,0.000000,0.000000,0.707107 -7002,0.707107,0.000000,0.000000,0.707107 -7003,0.707107,0.000000,0.000000,0.707107 -7004,0.707107,0.000000,0.000000,0.707107 -7005,0.707107,0.000000,0.000000,0.707107 -7006,0.707107,0.000000,0.000000,0.707107 -7007,0.707107,0.000000,0.000000,0.707107 -7008,0.707107,0.000000,0.000000,0.707107 -7009,0.707107,0.000000,0.000000,0.707107 -7010,0.707107,0.000000,0.000000,0.707107 -7011,0.707107,0.000000,0.000000,0.707107 -7012,0.707107,0.000000,0.000000,0.707107 -7013,0.707107,0.000000,0.000000,0.707107 -7014,0.707107,0.000000,0.000000,0.707107 -7015,0.707107,0.000000,0.000000,0.707107 -7016,0.707107,0.000000,0.000000,0.707107 -7017,0.707107,0.000000,0.000000,0.707107 -7018,0.707107,0.000000,0.000000,0.707107 -7019,0.707107,0.000000,0.000000,0.707107 -7020,0.707107,0.000000,0.000000,0.707107 -7021,0.707107,0.000000,0.000000,0.707107 -7022,0.707107,0.000000,0.000000,0.707107 -7023,0.707107,0.000000,0.000000,0.707107 -7024,0.707107,0.000000,0.000000,0.707107 -7025,0.707107,0.000000,0.000000,0.707107 -7026,0.707107,0.000000,0.000000,0.707107 -7027,0.707107,0.000000,0.000000,0.707107 -7028,0.707107,0.000000,0.000000,0.707107 -7029,0.707107,0.000000,0.000000,0.707107 -7030,0.707107,0.000000,0.000000,0.707107 -7031,0.707107,0.000000,0.000000,0.707107 -7032,0.707107,0.000000,0.000000,0.707107 -7033,0.707107,0.000000,0.000000,0.707107 -7034,0.707107,0.000000,0.000000,0.707107 -7035,0.707107,0.000000,0.000000,0.707107 -7036,0.707107,0.000000,0.000000,0.707107 -7037,0.707107,0.000000,0.000000,0.707107 -7038,0.707107,0.000000,0.000000,0.707107 -7039,0.707107,0.000000,0.000000,0.707107 -7040,0.707107,0.000000,0.000000,0.707107 -7041,0.707107,0.000000,0.000000,0.707107 -7042,0.707107,0.000000,0.000000,0.707107 -7043,0.707107,0.000000,0.000000,0.707107 -7044,0.707107,0.000000,0.000000,0.707107 -7045,0.707107,0.000000,0.000000,0.707107 -7046,0.707107,0.000000,0.000000,0.707107 -7047,0.707107,0.000000,0.000000,0.707107 -7048,0.707107,0.000000,0.000000,0.707107 -7049,0.707107,0.000000,0.000000,0.707107 -7050,0.707107,0.000000,0.000000,0.707107 -7051,0.707107,0.000000,0.000000,0.707107 -7052,0.707107,0.000000,0.000000,0.707107 -7053,0.707107,0.000000,0.000000,0.707107 -7054,0.707107,0.000000,0.000000,0.707107 -7055,0.707107,0.000000,0.000000,0.707107 -7056,0.707107,0.000000,0.000000,0.707107 -7057,0.707107,0.000000,0.000000,0.707107 -7058,0.707107,0.000000,0.000000,0.707107 -7059,0.707107,0.000000,0.000000,0.707107 -7060,0.707107,0.000000,0.000000,0.707107 -7061,0.707107,0.000000,0.000000,0.707107 -7062,0.707107,0.000000,0.000000,0.707107 -7063,0.707107,0.000000,0.000000,0.707107 -7064,0.707107,0.000000,0.000000,0.707107 -7065,0.707107,0.000000,0.000000,0.707107 -7066,0.707107,0.000000,0.000000,0.707107 -7067,0.707107,0.000000,0.000000,0.707107 -7068,0.707107,0.000000,0.000000,0.707107 -7069,0.707107,0.000000,0.000000,0.707107 -7070,0.707107,0.000000,0.000000,0.707107 -7071,0.707107,0.000000,0.000000,0.707107 -7072,0.707107,0.000000,0.000000,0.707107 -7073,0.707107,0.000000,0.000000,0.707107 -7074,0.707107,0.000000,0.000000,0.707107 -7075,0.707107,0.000000,0.000000,0.707107 -7076,0.707107,0.000000,0.000000,0.707107 -7077,0.707107,0.000000,0.000000,0.707107 -7078,0.707107,0.000000,0.000000,0.707107 -7079,0.707107,0.000000,0.000000,0.707107 -7080,0.707107,0.000000,0.000000,0.707107 -7081,0.707107,0.000000,0.000000,0.707107 -7082,0.707107,0.000000,0.000000,0.707107 -7083,0.707107,0.000000,0.000000,0.707107 -7084,0.707107,0.000000,0.000000,0.707107 -7085,0.707107,0.000000,0.000000,0.707107 -7086,0.707107,0.000000,0.000000,0.707107 -7087,0.707107,0.000000,0.000000,0.707107 -7088,0.707107,0.000000,0.000000,0.707107 -7089,0.707107,0.000000,0.000000,0.707107 -7090,0.707107,0.000000,0.000000,0.707107 -7091,0.707107,0.000000,0.000000,0.707107 -7092,0.707107,0.000000,0.000000,0.707107 -7093,0.707107,0.000000,0.000000,0.707107 -7094,0.707107,0.000000,0.000000,0.707107 -7095,0.707107,0.000000,0.000000,0.707107 -7096,0.707107,0.000000,0.000000,0.707107 -7097,0.707107,0.000000,0.000000,0.707107 -7098,0.707107,0.000000,0.000000,0.707107 -7099,0.707107,0.000000,0.000000,0.707107 -7100,0.707107,0.000000,0.000000,0.707107 -7101,0.707107,0.000000,0.000000,0.707107 -7102,0.707107,0.000000,0.000000,0.707107 -7103,0.707107,0.000000,0.000000,0.707107 -7104,0.707107,0.000000,0.000000,0.707107 -7105,0.707107,0.000000,0.000000,0.707107 -7106,0.707107,0.000000,0.000000,0.707107 -7107,0.707107,0.000000,0.000000,0.707107 -7108,0.707107,0.000000,0.000000,0.707107 -7109,0.707107,0.000000,0.000000,0.707107 -7110,0.707107,0.000000,0.000000,0.707107 -7111,0.707107,0.000000,0.000000,0.707107 -7112,0.707107,0.000000,0.000000,0.707107 -7113,0.707107,0.000000,0.000000,0.707107 -7114,0.707107,0.000000,0.000000,0.707107 -7115,0.707107,0.000000,0.000000,0.707107 -7116,0.707107,0.000000,0.000000,0.707107 -7117,0.707107,0.000000,0.000000,0.707107 -7118,0.707107,0.000000,0.000000,0.707107 -7119,0.707107,0.000000,0.000000,0.707107 -7120,0.707107,0.000000,0.000000,0.707107 -7121,0.707107,0.000000,0.000000,0.707107 -7122,0.707107,0.000000,0.000000,0.707107 -7123,0.707107,0.000000,0.000000,0.707107 -7124,0.707107,0.000000,0.000000,0.707107 -7125,0.707107,0.000000,0.000000,0.707107 -7126,0.707107,0.000000,0.000000,0.707107 -7127,0.707107,0.000000,0.000000,0.707107 -7128,0.707107,0.000000,0.000000,0.707107 -7129,0.707107,0.000000,0.000000,0.707107 -7130,0.707107,0.000000,0.000000,0.707107 -7131,0.707107,0.000000,0.000000,0.707107 -7132,0.707107,0.000000,0.000000,0.707107 -7133,0.707107,0.000000,0.000000,0.707107 -7134,0.707107,0.000000,0.000000,0.707107 -7135,0.707107,0.000000,0.000000,0.707107 -7136,0.707107,0.000000,0.000000,0.707107 -7137,0.707107,0.000000,0.000000,0.707107 -7138,0.707107,0.000000,0.000000,0.707107 -7139,0.707107,0.000000,0.000000,0.707107 -7140,0.707107,0.000000,0.000000,0.707107 -7141,0.707107,0.000000,0.000000,0.707107 -7142,0.707107,0.000000,0.000000,0.707107 -7143,0.707107,0.000000,0.000000,0.707107 -7144,0.707107,0.000000,0.000000,0.707107 -7145,0.707107,0.000000,0.000000,0.707107 -7146,0.707107,0.000000,0.000000,0.707107 -7147,0.707107,0.000000,0.000000,0.707107 -7148,0.707107,0.000000,0.000000,0.707107 -7149,0.707107,0.000000,0.000000,0.707107 -7150,0.707107,0.000000,0.000000,0.707107 -7151,0.707107,0.000000,0.000000,0.707107 -7152,0.707107,0.000000,0.000000,0.707107 -7153,0.707107,0.000000,0.000000,0.707107 -7154,0.707107,0.000000,0.000000,0.707107 -7155,0.707107,0.000000,0.000000,0.707107 -7156,0.707107,0.000000,0.000000,0.707107 -7157,0.707107,0.000000,0.000000,0.707107 -7158,0.707107,0.000000,0.000000,0.707107 -7159,0.707107,0.000000,0.000000,0.707107 -7160,0.707107,0.000000,0.000000,0.707107 -7161,0.707107,0.000000,0.000000,0.707107 -7162,0.707107,0.000000,0.000000,0.707107 -7163,0.707107,0.000000,0.000000,0.707107 -7164,0.707107,0.000000,0.000000,0.707107 -7165,0.707107,0.000000,0.000000,0.707107 -7166,0.707107,0.000000,0.000000,0.707107 -7167,0.707107,0.000000,0.000000,0.707107 -7168,0.707107,0.000000,0.000000,0.707107 -7169,0.707107,0.000000,0.000000,0.707107 -7170,0.707107,0.000000,0.000000,0.707107 -7171,0.707107,0.000000,0.000000,0.707107 -7172,0.707107,0.000000,0.000000,0.707107 -7173,0.707107,0.000000,0.000000,0.707107 -7174,0.707107,0.000000,0.000000,0.707107 -7175,0.707107,0.000000,0.000000,0.707107 -7176,0.707107,0.000000,0.000000,0.707107 -7177,0.707107,0.000000,0.000000,0.707107 -7178,0.707107,0.000000,0.000000,0.707107 -7179,0.707107,0.000000,0.000000,0.707107 -7180,0.707107,0.000000,0.000000,0.707107 -7181,0.707107,0.000000,0.000000,0.707107 -7182,0.707107,0.000000,0.000000,0.707107 -7183,0.707107,0.000000,0.000000,0.707107 -7184,0.707107,0.000000,0.000000,0.707107 -7185,0.707107,0.000000,0.000000,0.707107 -7186,0.707107,0.000000,0.000000,0.707107 -7187,0.707107,0.000000,0.000000,0.707107 -7188,0.707107,0.000000,0.000000,0.707107 -7189,0.707107,0.000000,0.000000,0.707107 -7190,0.707107,0.000000,0.000000,0.707107 -7191,0.707107,0.000000,0.000000,0.707107 -7192,0.707107,0.000000,0.000000,0.707107 -7193,0.707107,0.000000,0.000000,0.707107 -7194,0.707107,0.000000,0.000000,0.707107 -7195,0.707107,0.000000,0.000000,0.707107 -7196,0.707107,0.000000,0.000000,0.707107 -7197,0.707107,0.000000,0.000000,0.707107 -7198,0.707107,0.000000,0.000000,0.707107 -7199,0.707107,0.000000,0.000000,0.707107 -7200,0.707107,0.000000,0.000000,0.707107 -7201,0.707107,0.000000,0.000000,0.707107 -7202,0.707107,0.000000,0.000000,0.707107 -7203,0.707107,0.000000,0.000000,0.707107 -7204,0.707107,0.000000,0.000000,0.707107 -7205,0.707107,0.000000,0.000000,0.707107 -7206,0.707107,0.000000,0.000000,0.707107 -7207,0.707107,0.000000,0.000000,0.707107 -7208,0.707107,0.000000,0.000000,0.707107 -7209,0.707107,0.000000,0.000000,0.707107 -7210,0.707107,0.000000,0.000000,0.707107 -7211,0.707107,0.000000,0.000000,0.707107 -7212,0.707107,0.000000,0.000000,0.707107 -7213,0.707107,0.000000,0.000000,0.707107 -7214,0.707107,0.000000,0.000000,0.707107 -7215,0.707107,0.000000,0.000000,0.707107 -7216,0.707107,0.000000,0.000000,0.707107 -7217,0.707107,0.000000,0.000000,0.707107 -7218,0.707107,0.000000,0.000000,0.707107 -7219,0.707107,0.000000,0.000000,0.707107 -7220,0.707107,0.000000,0.000000,0.707107 -7221,0.707107,0.000000,0.000000,0.707107 -7222,0.707107,0.000000,0.000000,0.707107 -7223,0.707107,0.000000,0.000000,0.707107 -7224,0.707107,0.000000,0.000000,0.707107 -7225,0.707107,0.000000,0.000000,0.707107 -7226,0.707107,0.000000,0.000000,0.707107 -7227,0.707107,0.000000,0.000000,0.707107 -7228,0.707107,0.000000,0.000000,0.707107 -7229,0.707107,0.000000,0.000000,0.707107 -7230,0.707107,0.000000,0.000000,0.707107 -7231,0.707107,0.000000,0.000000,0.707107 -7232,0.707107,0.000000,0.000000,0.707107 -7233,0.707107,0.000000,0.000000,0.707107 -7234,0.707107,0.000000,0.000000,0.707107 -7235,0.707107,0.000000,0.000000,0.707107 -7236,0.707107,0.000000,0.000000,0.707107 -7237,0.707107,0.000000,0.000000,0.707107 -7238,0.707107,0.000000,0.000000,0.707107 -7239,0.707107,0.000000,0.000000,0.707107 -7240,0.707107,0.000000,0.000000,0.707107 -7241,0.707107,0.000000,0.000000,0.707107 -7242,0.707107,0.000000,0.000000,0.707107 -7243,0.707107,0.000000,0.000000,0.707107 -7244,0.707107,0.000000,0.000000,0.707107 -7245,0.707107,0.000000,0.000000,0.707107 -7246,0.707107,0.000000,0.000000,0.707107 -7247,0.707107,0.000000,0.000000,0.707107 -7248,0.707107,0.000000,0.000000,0.707107 -7249,0.707107,0.000000,0.000000,0.707107 -7250,0.707107,0.000000,0.000000,0.707107 -7251,0.707107,0.000000,0.000000,0.707107 -7252,0.707107,0.000000,0.000000,0.707107 -7253,0.707107,0.000000,0.000000,0.707107 -7254,0.707107,0.000000,0.000000,0.707107 -7255,0.707107,0.000000,0.000000,0.707107 -7256,0.707107,0.000000,0.000000,0.707107 -7257,0.707107,0.000000,0.000000,0.707107 -7258,0.707107,0.000000,0.000000,0.707107 -7259,0.707107,0.000000,0.000000,0.707107 -7260,0.707107,0.000000,0.000000,0.707107 -7261,0.707107,0.000000,0.000000,0.707107 -7262,0.707107,0.000000,0.000000,0.707107 -7263,0.707107,0.000000,0.000000,0.707107 -7264,0.707107,0.000000,0.000000,0.707107 -7265,0.707107,0.000000,0.000000,0.707107 -7266,0.707107,0.000000,0.000000,0.707107 -7267,0.707107,0.000000,0.000000,0.707107 -7268,0.707107,0.000000,0.000000,0.707107 -7269,0.707107,0.000000,0.000000,0.707107 -7270,0.707107,0.000000,0.000000,0.707107 -7271,0.707107,0.000000,0.000000,0.707107 -7272,0.707107,0.000000,0.000000,0.707107 -7273,0.707107,0.000000,0.000000,0.707107 -7274,0.707107,0.000000,0.000000,0.707107 -7275,0.707107,0.000000,0.000000,0.707107 -7276,0.707107,0.000000,0.000000,0.707107 -7277,0.707107,0.000000,0.000000,0.707107 -7278,0.707107,0.000000,0.000000,0.707107 -7279,0.707107,0.000000,0.000000,0.707107 -7280,0.707107,0.000000,0.000000,0.707107 -7281,0.707107,0.000000,0.000000,0.707107 -7282,0.707107,0.000000,0.000000,0.707107 -7283,0.707107,0.000000,0.000000,0.707107 -7284,0.707107,0.000000,0.000000,0.707107 -7285,0.707107,0.000000,0.000000,0.707107 -7286,0.707107,0.000000,0.000000,0.707107 -7287,0.707107,0.000000,0.000000,0.707107 -7288,0.707107,0.000000,0.000000,0.707107 -7289,0.707107,0.000000,0.000000,0.707107 -7290,0.707107,0.000000,0.000000,0.707107 -7291,0.707107,0.000000,0.000000,0.707107 -7292,0.707107,0.000000,0.000000,0.707107 -7293,0.707107,0.000000,0.000000,0.707107 -7294,0.707107,0.000000,0.000000,0.707107 -7295,0.707107,0.000000,0.000000,0.707107 -7296,0.707107,0.000000,0.000000,0.707107 -7297,0.707107,0.000000,0.000000,0.707107 -7298,0.707107,0.000000,0.000000,0.707107 -7299,0.707107,0.000000,0.000000,0.707107 -7300,0.707107,0.000000,0.000000,0.707107 -7301,0.707107,0.000000,0.000000,0.707107 -7302,0.707107,0.000000,0.000000,0.707107 -7303,0.707107,0.000000,0.000000,0.707107 -7304,0.707107,0.000000,0.000000,0.707107 -7305,0.707107,0.000000,0.000000,0.707107 -7306,0.707107,0.000000,0.000000,0.707107 -7307,0.707107,0.000000,0.000000,0.707107 -7308,0.707107,0.000000,0.000000,0.707107 -7309,0.707107,0.000000,0.000000,0.707107 -7310,0.707107,0.000000,0.000000,0.707107 -7311,0.707107,0.000000,0.000000,0.707107 -7312,0.707107,0.000000,0.000000,0.707107 -7313,0.707107,0.000000,0.000000,0.707107 -7314,0.707107,0.000000,0.000000,0.707107 -7315,0.707107,0.000000,0.000000,0.707107 -7316,0.707107,0.000000,0.000000,0.707107 -7317,0.707107,0.000000,0.000000,0.707107 -7318,0.707107,0.000000,0.000000,0.707107 -7319,0.707107,0.000000,0.000000,0.707107 -7320,0.707107,0.000000,0.000000,0.707107 -7321,0.707107,0.000000,0.000000,0.707107 -7322,0.707107,0.000000,0.000000,0.707107 -7323,0.707107,0.000000,0.000000,0.707107 -7324,0.707107,0.000000,0.000000,0.707107 -7325,0.707107,0.000000,0.000000,0.707107 -7326,0.707107,0.000000,0.000000,0.707107 -7327,0.707107,0.000000,0.000000,0.707107 -7328,0.707107,0.000000,0.000000,0.707107 -7329,0.707107,0.000000,0.000000,0.707107 -7330,0.707107,0.000000,0.000000,0.707107 -7331,0.707107,0.000000,0.000000,0.707107 -7332,0.707107,0.000000,0.000000,0.707107 -7333,0.707107,0.000000,0.000000,0.707107 -7334,0.707107,0.000000,0.000000,0.707107 -7335,0.707107,0.000000,0.000000,0.707107 -7336,0.707107,0.000000,0.000000,0.707107 -7337,0.707107,0.000000,0.000000,0.707107 -7338,0.707107,0.000000,0.000000,0.707107 -7339,0.707107,0.000000,0.000000,0.707107 -7340,0.707107,0.000000,0.000000,0.707107 -7341,0.707107,0.000000,0.000000,0.707107 -7342,0.707107,0.000000,0.000000,0.707107 -7343,0.707107,0.000000,0.000000,0.707107 -7344,0.707107,0.000000,0.000000,0.707107 -7345,0.707107,0.000000,0.000000,0.707107 -7346,0.707107,0.000000,0.000000,0.707107 -7347,0.707107,0.000000,0.000000,0.707107 -7348,0.707107,0.000000,0.000000,0.707107 -7349,0.707107,0.000000,0.000000,0.707107 -7350,0.707107,0.000000,0.000000,0.707107 -7351,0.707107,0.000000,0.000000,0.707107 -7352,0.707107,0.000000,0.000000,0.707107 -7353,0.707107,0.000000,0.000000,0.707107 -7354,0.707107,0.000000,0.000000,0.707107 -7355,0.707107,0.000000,0.000000,0.707107 -7356,0.707107,0.000000,0.000000,0.707107 -7357,0.707107,0.000000,0.000000,0.707107 -7358,0.707107,0.000000,0.000000,0.707107 -7359,0.707107,0.000000,0.000000,0.707107 -7360,0.707107,0.000000,0.000000,0.707107 -7361,0.707107,0.000000,0.000000,0.707107 -7362,0.707107,0.000000,0.000000,0.707107 -7363,0.707107,0.000000,0.000000,0.707107 -7364,0.707107,0.000000,0.000000,0.707107 -7365,0.707107,0.000000,0.000000,0.707107 -7366,0.707107,0.000000,0.000000,0.707107 -7367,0.707107,0.000000,0.000000,0.707107 -7368,0.707107,0.000000,0.000000,0.707107 -7369,0.707107,0.000000,0.000000,0.707107 -7370,0.707107,0.000000,0.000000,0.707107 -7371,0.707107,0.000000,0.000000,0.707107 -7372,0.707107,0.000000,0.000000,0.707107 -7373,0.707107,0.000000,0.000000,0.707107 -7374,0.707107,0.000000,0.000000,0.707107 -7375,0.707107,0.000000,0.000000,0.707107 -7376,0.707107,0.000000,0.000000,0.707107 -7377,0.707107,0.000000,0.000000,0.707107 -7378,0.707107,0.000000,0.000000,0.707107 -7379,0.707107,0.000000,0.000000,0.707107 -7380,0.707107,0.000000,0.000000,0.707107 -7381,0.707107,0.000000,0.000000,0.707107 -7382,0.707107,0.000000,0.000000,0.707107 -7383,0.707107,0.000000,0.000000,0.707107 -7384,0.707107,0.000000,0.000000,0.707107 -7385,0.707107,0.000000,0.000000,0.707107 -7386,0.707107,0.000000,0.000000,0.707107 -7387,0.707107,0.000000,0.000000,0.707107 -7388,0.707107,0.000000,0.000000,0.707107 -7389,0.707107,0.000000,0.000000,0.707107 -7390,0.707107,0.000000,0.000000,0.707107 -7391,0.707107,0.000000,0.000000,0.707107 -7392,0.707107,0.000000,0.000000,0.707107 -7393,0.707107,0.000000,0.000000,0.707107 -7394,0.707107,0.000000,0.000000,0.707107 -7395,0.707107,0.000000,0.000000,0.707107 -7396,0.707107,0.000000,0.000000,0.707107 -7397,0.707107,0.000000,0.000000,0.707107 -7398,0.707107,0.000000,0.000000,0.707107 -7399,0.707107,0.000000,0.000000,0.707107 -7400,0.707107,0.000000,0.000000,0.707107 -7401,0.707107,0.000000,0.000000,0.707107 -7402,0.707107,0.000000,0.000000,0.707107 -7403,0.707107,0.000000,0.000000,0.707107 -7404,0.707107,0.000000,0.000000,0.707107 -7405,0.707107,0.000000,0.000000,0.707107 -7406,0.707107,0.000000,0.000000,0.707107 -7407,0.707107,0.000000,0.000000,0.707107 -7408,0.707107,0.000000,0.000000,0.707107 -7409,0.707107,0.000000,0.000000,0.707107 -7410,0.707107,0.000000,0.000000,0.707107 -7411,0.707107,0.000000,0.000000,0.707107 -7412,0.707107,0.000000,0.000000,0.707107 -7413,0.707107,0.000000,0.000000,0.707107 -7414,0.707107,0.000000,0.000000,0.707107 -7415,0.707107,0.000000,0.000000,0.707107 -7416,0.707107,0.000000,0.000000,0.707107 -7417,0.707107,0.000000,0.000000,0.707107 -7418,0.707107,0.000000,0.000000,0.707107 -7419,0.707107,0.000000,0.000000,0.707107 -7420,0.707107,0.000000,0.000000,0.707107 -7421,0.707107,0.000000,0.000000,0.707107 -7422,0.707107,0.000000,0.000000,0.707107 -7423,0.707107,0.000000,0.000000,0.707107 -7424,0.707107,0.000000,0.000000,0.707107 -7425,0.707107,0.000000,0.000000,0.707107 -7426,0.707107,0.000000,0.000000,0.707107 -7427,0.707107,0.000000,0.000000,0.707107 -7428,0.707107,0.000000,0.000000,0.707107 -7429,0.707107,0.000000,0.000000,0.707107 -7430,0.707107,0.000000,0.000000,0.707107 -7431,0.707107,0.000000,0.000000,0.707107 -7432,0.707107,0.000000,0.000000,0.707107 -7433,0.707107,0.000000,0.000000,0.707107 -7434,0.707107,0.000000,0.000000,0.707107 -7435,0.707107,0.000000,0.000000,0.707107 -7436,0.707107,0.000000,0.000000,0.707107 -7437,0.707107,0.000000,0.000000,0.707107 -7438,0.707107,0.000000,0.000000,0.707107 -7439,0.707107,0.000000,0.000000,0.707107 -7440,0.707107,0.000000,0.000000,0.707107 -7441,0.707107,0.000000,0.000000,0.707107 -7442,0.707107,0.000000,0.000000,0.707107 -7443,0.707107,0.000000,0.000000,0.707107 -7444,0.707107,0.000000,0.000000,0.707107 -7445,0.707107,0.000000,0.000000,0.707107 -7446,0.707107,0.000000,0.000000,0.707107 -7447,0.707107,0.000000,0.000000,0.707107 -7448,0.707107,0.000000,0.000000,0.707107 -7449,0.707107,0.000000,0.000000,0.707107 -7450,0.707107,0.000000,0.000000,0.707107 -7451,0.707107,0.000000,0.000000,0.707107 -7452,0.707107,0.000000,0.000000,0.707107 -7453,0.707107,0.000000,0.000000,0.707107 -7454,0.707107,0.000000,0.000000,0.707107 -7455,0.707107,0.000000,0.000000,0.707107 -7456,0.707107,0.000000,0.000000,0.707107 -7457,0.707107,0.000000,0.000000,0.707107 -7458,0.707107,0.000000,0.000000,0.707107 -7459,0.707107,0.000000,0.000000,0.707107 -7460,0.707107,0.000000,0.000000,0.707107 -7461,0.707107,0.000000,0.000000,0.707107 -7462,0.707107,0.000000,0.000000,0.707107 -7463,0.707107,0.000000,0.000000,0.707107 -7464,0.707107,0.000000,0.000000,0.707107 -7465,0.707107,0.000000,0.000000,0.707107 -7466,0.707107,0.000000,0.000000,0.707107 -7467,0.707107,0.000000,0.000000,0.707107 -7468,0.707107,0.000000,0.000000,0.707107 -7469,0.707107,0.000000,0.000000,0.707107 -7470,0.707107,0.000000,0.000000,0.707107 -7471,0.707107,0.000000,0.000000,0.707107 -7472,0.707107,0.000000,0.000000,0.707107 -7473,0.707107,0.000000,0.000000,0.707107 -7474,0.707107,0.000000,0.000000,0.707107 -7475,0.707107,0.000000,0.000000,0.707107 -7476,0.707107,0.000000,0.000000,0.707107 -7477,0.707107,0.000000,0.000000,0.707107 -7478,0.707107,0.000000,0.000000,0.707107 -7479,0.707107,0.000000,0.000000,0.707107 -7480,0.707107,0.000000,0.000000,0.707107 -7481,0.707107,0.000000,0.000000,0.707107 -7482,0.707107,0.000000,0.000000,0.707107 -7483,0.707107,0.000000,0.000000,0.707107 -7484,0.707107,0.000000,0.000000,0.707107 -7485,0.707107,0.000000,0.000000,0.707107 -7486,0.707107,0.000000,0.000000,0.707107 -7487,0.707107,0.000000,0.000000,0.707107 -7488,0.707107,0.000000,0.000000,0.707107 -7489,0.707107,0.000000,0.000000,0.707107 -7490,0.707107,0.000000,0.000000,0.707107 -7491,0.707107,0.000000,0.000000,0.707107 -7492,0.707107,0.000000,0.000000,0.707107 -7493,0.707107,0.000000,0.000000,0.707107 -7494,0.707107,0.000000,0.000000,0.707107 -7495,0.707107,0.000000,0.000000,0.707107 -7496,0.707107,0.000000,0.000000,0.707107 -7497,0.707107,0.000000,0.000000,0.707107 -7498,0.707107,0.000000,0.000000,0.707107 -7499,0.707107,0.000000,0.000000,0.707107 -7500,0.707107,0.000000,0.000000,0.707107 -7501,0.707107,0.000000,0.000000,0.707107 -7502,0.707107,0.000000,0.000000,0.707107 -7503,0.707107,0.000000,0.000000,0.707107 -7504,0.707107,0.000000,0.000000,0.707107 -7505,0.707107,0.000000,0.000000,0.707107 -7506,0.707107,0.000000,0.000000,0.707107 -7507,0.707107,0.000000,0.000000,0.707107 -7508,0.707107,0.000000,0.000000,0.707107 -7509,0.707107,0.000000,0.000000,0.707107 -7510,0.707107,0.000000,0.000000,0.707107 -7511,0.707107,0.000000,0.000000,0.707107 -7512,0.707107,0.000000,0.000000,0.707107 -7513,0.707107,0.000000,0.000000,0.707107 -7514,0.707107,0.000000,0.000000,0.707107 -7515,0.707107,0.000000,0.000000,0.707107 -7516,0.707107,0.000000,0.000000,0.707107 -7517,0.707107,0.000000,0.000000,0.707107 -7518,0.707107,0.000000,0.000000,0.707107 -7519,0.707107,0.000000,0.000000,0.707107 -7520,0.707107,0.000000,0.000000,0.707107 -7521,0.707107,0.000000,0.000000,0.707107 -7522,0.707107,0.000000,0.000000,0.707107 -7523,0.707107,0.000000,0.000000,0.707107 -7524,0.707107,0.000000,0.000000,0.707107 -7525,0.707107,0.000000,0.000000,0.707107 -7526,0.707107,0.000000,0.000000,0.707107 -7527,0.707107,0.000000,0.000000,0.707107 -7528,0.707107,0.000000,0.000000,0.707107 -7529,0.707107,0.000000,0.000000,0.707107 -7530,0.707107,0.000000,0.000000,0.707107 -7531,0.707107,0.000000,0.000000,0.707107 -7532,0.707107,0.000000,0.000000,0.707107 -7533,0.707107,0.000000,0.000000,0.707107 -7534,0.707107,0.000000,0.000000,0.707107 -7535,0.707107,0.000000,0.000000,0.707107 -7536,0.707107,0.000000,0.000000,0.707107 -7537,0.707107,0.000000,0.000000,0.707107 -7538,0.707107,0.000000,0.000000,0.707107 -7539,0.707107,0.000000,0.000000,0.707107 -7540,0.707107,0.000000,0.000000,0.707107 -7541,0.707107,0.000000,0.000000,0.707107 -7542,0.707107,0.000000,0.000000,0.707107 -7543,0.707107,0.000000,0.000000,0.707107 -7544,0.707107,0.000000,0.000000,0.707107 -7545,0.707107,0.000000,0.000000,0.707107 -7546,0.707107,0.000000,0.000000,0.707107 -7547,0.707107,0.000000,0.000000,0.707107 -7548,0.707107,0.000000,0.000000,0.707107 -7549,0.707107,0.000000,0.000000,0.707107 -7550,0.707107,0.000000,0.000000,0.707107 -7551,0.707107,0.000000,0.000000,0.707107 -7552,0.707107,0.000000,0.000000,0.707107 -7553,0.707107,0.000000,0.000000,0.707107 -7554,0.707107,0.000000,0.000000,0.707107 -7555,0.707107,0.000000,0.000000,0.707107 -7556,0.707107,0.000000,0.000000,0.707107 -7557,0.707107,0.000000,0.000000,0.707107 -7558,0.707107,0.000000,0.000000,0.707107 -7559,0.707107,0.000000,0.000000,0.707107 -7560,0.707107,0.000000,0.000000,0.707107 -7561,0.707107,0.000000,0.000000,0.707107 -7562,0.707107,0.000000,0.000000,0.707107 -7563,0.707107,0.000000,0.000000,0.707107 -7564,0.707107,0.000000,0.000000,0.707107 -7565,0.707107,0.000000,0.000000,0.707107 -7566,0.707107,0.000000,0.000000,0.707107 -7567,0.707107,0.000000,0.000000,0.707107 -7568,0.707107,0.000000,0.000000,0.707107 -7569,0.707107,0.000000,0.000000,0.707107 -7570,0.707107,0.000000,0.000000,0.707107 -7571,0.707107,0.000000,0.000000,0.707107 -7572,0.707107,0.000000,0.000000,0.707107 -7573,0.707107,0.000000,0.000000,0.707107 -7574,0.707107,0.000000,0.000000,0.707107 -7575,0.707107,0.000000,0.000000,0.707107 -7576,0.707107,0.000000,0.000000,0.707107 -7577,0.707107,0.000000,0.000000,0.707107 -7578,0.707107,0.000000,0.000000,0.707107 -7579,0.707107,0.000000,0.000000,0.707107 -7580,0.707107,0.000000,0.000000,0.707107 -7581,0.707107,0.000000,0.000000,0.707107 -7582,0.707107,0.000000,0.000000,0.707107 -7583,0.707107,0.000000,0.000000,0.707107 -7584,0.707107,0.000000,0.000000,0.707107 -7585,0.707107,0.000000,0.000000,0.707107 -7586,0.707107,0.000000,0.000000,0.707107 -7587,0.707107,0.000000,0.000000,0.707107 -7588,0.707107,0.000000,0.000000,0.707107 -7589,0.707107,0.000000,0.000000,0.707107 -7590,0.707107,0.000000,0.000000,0.707107 -7591,0.707107,0.000000,0.000000,0.707107 -7592,0.707107,0.000000,0.000000,0.707107 -7593,0.707107,0.000000,0.000000,0.707107 -7594,0.707107,0.000000,0.000000,0.707107 -7595,0.707107,0.000000,0.000000,0.707107 -7596,0.707107,0.000000,0.000000,0.707107 -7597,0.707107,0.000000,0.000000,0.707107 -7598,0.707107,0.000000,0.000000,0.707107 -7599,0.707107,0.000000,0.000000,0.707107 -7600,0.707107,0.000000,0.000000,0.707107 -7601,0.707107,0.000000,0.000000,0.707107 -7602,0.707107,0.000000,0.000000,0.707107 -7603,0.707107,0.000000,0.000000,0.707107 -7604,0.707107,0.000000,0.000000,0.707107 -7605,0.707107,0.000000,0.000000,0.707107 -7606,0.707107,0.000000,0.000000,0.707107 -7607,0.707107,0.000000,0.000000,0.707107 -7608,0.707107,0.000000,0.000000,0.707107 -7609,0.707107,0.000000,0.000000,0.707107 -7610,0.707107,0.000000,0.000000,0.707107 -7611,0.707107,0.000000,0.000000,0.707107 -7612,0.707107,0.000000,0.000000,0.707107 -7613,0.707107,0.000000,0.000000,0.707107 -7614,0.707107,0.000000,0.000000,0.707107 -7615,0.707107,0.000000,0.000000,0.707107 -7616,0.707107,0.000000,0.000000,0.707107 -7617,0.707107,0.000000,0.000000,0.707107 -7618,0.707107,0.000000,0.000000,0.707107 -7619,0.707107,0.000000,0.000000,0.707107 -7620,0.707107,0.000000,0.000000,0.707107 -7621,0.707107,0.000000,0.000000,0.707107 -7622,0.707107,0.000000,0.000000,0.707107 -7623,0.707107,0.000000,0.000000,0.707107 -7624,0.707107,0.000000,0.000000,0.707107 -7625,0.707107,0.000000,0.000000,0.707107 -7626,0.707107,0.000000,0.000000,0.707107 -7627,0.707107,0.000000,0.000000,0.707107 -7628,0.707107,0.000000,0.000000,0.707107 -7629,0.707107,0.000000,0.000000,0.707107 -7630,0.707107,0.000000,0.000000,0.707107 -7631,0.707107,0.000000,0.000000,0.707107 -7632,0.707107,0.000000,0.000000,0.707107 -7633,0.707107,0.000000,0.000000,0.707107 -7634,0.707107,0.000000,0.000000,0.707107 -7635,0.707107,0.000000,0.000000,0.707107 -7636,0.707107,0.000000,0.000000,0.707107 -7637,0.707107,0.000000,0.000000,0.707107 -7638,0.707107,0.000000,0.000000,0.707107 -7639,0.707107,0.000000,0.000000,0.707107 -7640,0.707107,0.000000,0.000000,0.707107 -7641,0.707107,0.000000,0.000000,0.707107 -7642,0.707107,0.000000,0.000000,0.707107 -7643,0.707107,0.000000,0.000000,0.707107 -7644,0.707107,0.000000,0.000000,0.707107 -7645,0.707107,0.000000,0.000000,0.707107 -7646,0.707107,0.000000,0.000000,0.707107 -7647,0.707107,0.000000,0.000000,0.707107 -7648,0.707107,0.000000,0.000000,0.707107 -7649,0.707107,0.000000,0.000000,0.707107 -7650,0.707107,0.000000,0.000000,0.707107 -7651,0.707107,0.000000,0.000000,0.707107 -7652,0.707107,0.000000,0.000000,0.707107 -7653,0.707107,0.000000,0.000000,0.707107 -7654,0.707107,0.000000,0.000000,0.707107 -7655,0.707107,0.000000,0.000000,0.707107 -7656,0.707107,0.000000,0.000000,0.707107 -7657,0.707107,0.000000,0.000000,0.707107 -7658,0.707107,0.000000,0.000000,0.707107 -7659,0.707107,0.000000,0.000000,0.707107 -7660,0.707107,0.000000,0.000000,0.707107 -7661,0.707107,0.000000,0.000000,0.707107 -7662,0.707107,0.000000,0.000000,0.707107 -7663,0.707107,0.000000,0.000000,0.707107 -7664,0.707107,0.000000,0.000000,0.707107 -7665,0.707107,0.000000,0.000000,0.707107 -7666,0.707107,0.000000,0.000000,0.707107 -7667,0.707107,0.000000,0.000000,0.707107 -7668,0.707107,0.000000,0.000000,0.707107 -7669,0.707107,0.000000,0.000000,0.707107 -7670,0.707107,0.000000,0.000000,0.707107 -7671,0.707107,0.000000,0.000000,0.707107 -7672,0.707107,0.000000,0.000000,0.707107 -7673,0.707107,0.000000,0.000000,0.707107 -7674,0.707107,0.000000,0.000000,0.707107 -7675,0.707107,0.000000,0.000000,0.707107 -7676,0.707107,0.000000,0.000000,0.707107 -7677,0.707107,0.000000,0.000000,0.707107 -7678,0.707107,0.000000,0.000000,0.707107 -7679,0.707107,0.000000,0.000000,0.707107 -7680,0.707107,0.000000,0.000000,0.707107 -7681,0.707107,0.000000,0.000000,0.707107 -7682,0.707107,0.000000,0.000000,0.707107 -7683,0.707107,0.000000,0.000000,0.707107 -7684,0.707107,0.000000,0.000000,0.707107 -7685,0.707107,0.000000,0.000000,0.707107 -7686,0.707107,0.000000,0.000000,0.707107 -7687,0.707107,0.000000,0.000000,0.707107 -7688,0.707107,0.000000,0.000000,0.707107 -7689,0.707107,0.000000,0.000000,0.707107 -7690,0.707107,0.000000,0.000000,0.707107 -7691,0.707107,0.000000,0.000000,0.707107 -7692,0.707107,0.000000,0.000000,0.707107 -7693,0.707107,0.000000,0.000000,0.707107 -7694,0.707107,0.000000,0.000000,0.707107 -7695,0.707107,0.000000,0.000000,0.707107 -7696,0.707107,0.000000,0.000000,0.707107 -7697,0.707107,0.000000,0.000000,0.707107 -7698,0.707107,0.000000,0.000000,0.707107 -7699,0.707107,0.000000,0.000000,0.707107 -7700,0.707107,0.000000,0.000000,0.707107 -7701,0.707107,0.000000,0.000000,0.707107 -7702,0.707107,0.000000,0.000000,0.707107 -7703,0.707107,0.000000,0.000000,0.707107 -7704,0.707107,0.000000,0.000000,0.707107 -7705,0.707107,0.000000,0.000000,0.707107 -7706,0.707107,0.000000,0.000000,0.707107 -7707,0.707107,0.000000,0.000000,0.707107 -7708,0.707107,0.000000,0.000000,0.707107 -7709,0.707107,0.000000,0.000000,0.707107 -7710,0.707107,0.000000,0.000000,0.707107 -7711,0.707107,0.000000,0.000000,0.707107 -7712,0.707107,0.000000,0.000000,0.707107 -7713,0.707107,0.000000,0.000000,0.707107 -7714,0.707107,0.000000,0.000000,0.707107 -7715,0.707107,0.000000,0.000000,0.707107 -7716,0.707107,0.000000,0.000000,0.707107 -7717,0.707107,0.000000,0.000000,0.707107 -7718,0.707107,0.000000,0.000000,0.707107 -7719,0.707107,0.000000,0.000000,0.707107 -7720,0.707107,0.000000,0.000000,0.707107 -7721,0.707107,0.000000,0.000000,0.707107 -7722,0.707107,0.000000,0.000000,0.707107 -7723,0.707107,0.000000,0.000000,0.707107 -7724,0.707107,0.000000,0.000000,0.707107 -7725,0.707107,0.000000,0.000000,0.707107 -7726,0.707107,0.000000,0.000000,0.707107 -7727,0.707107,0.000000,0.000000,0.707107 -7728,0.707107,0.000000,0.000000,0.707107 -7729,0.707107,0.000000,0.000000,0.707107 -7730,0.707107,0.000000,0.000000,0.707107 -7731,0.707107,0.000000,0.000000,0.707107 -7732,0.707107,0.000000,0.000000,0.707107 -7733,0.707107,0.000000,0.000000,0.707107 -7734,0.707107,0.000000,0.000000,0.707107 -7735,0.707107,0.000000,0.000000,0.707107 -7736,0.707107,0.000000,0.000000,0.707107 -7737,0.707107,0.000000,0.000000,0.707107 -7738,0.707107,0.000000,0.000000,0.707107 -7739,0.707107,0.000000,0.000000,0.707107 -7740,0.707107,0.000000,0.000000,0.707107 -7741,0.707107,0.000000,0.000000,0.707107 -7742,0.707107,0.000000,0.000000,0.707107 -7743,0.707107,0.000000,0.000000,0.707107 -7744,0.707107,0.000000,0.000000,0.707107 -7745,0.707107,0.000000,0.000000,0.707107 -7746,0.707107,0.000000,0.000000,0.707107 -7747,0.707107,0.000000,0.000000,0.707107 -7748,0.707107,0.000000,0.000000,0.707107 -7749,0.707107,0.000000,0.000000,0.707107 -7750,0.707107,0.000000,0.000000,0.707107 -7751,0.707107,0.000000,0.000000,0.707107 -7752,0.707107,0.000000,0.000000,0.707107 -7753,0.707107,0.000000,0.000000,0.707107 -7754,0.707107,0.000000,0.000000,0.707107 -7755,0.707107,0.000000,0.000000,0.707107 -7756,0.707107,0.000000,0.000000,0.707107 -7757,0.707107,0.000000,0.000000,0.707107 -7758,0.707107,0.000000,0.000000,0.707107 -7759,0.707107,0.000000,0.000000,0.707107 -7760,0.707107,0.000000,0.000000,0.707107 -7761,0.707107,0.000000,0.000000,0.707107 -7762,0.707107,0.000000,0.000000,0.707107 -7763,0.707107,0.000000,0.000000,0.707107 -7764,0.707107,0.000000,0.000000,0.707107 -7765,0.707107,0.000000,0.000000,0.707107 -7766,0.707107,0.000000,0.000000,0.707107 -7767,0.707107,0.000000,0.000000,0.707107 -7768,0.707107,0.000000,0.000000,0.707107 -7769,0.707107,0.000000,0.000000,0.707107 -7770,0.707107,0.000000,0.000000,0.707107 -7771,0.707107,0.000000,0.000000,0.707107 -7772,0.707107,0.000000,0.000000,0.707107 -7773,0.707107,0.000000,0.000000,0.707107 -7774,0.707107,0.000000,0.000000,0.707107 -7775,0.707107,0.000000,0.000000,0.707107 -7776,0.707107,0.000000,0.000000,0.707107 -7777,0.707107,0.000000,0.000000,0.707107 -7778,0.707107,0.000000,0.000000,0.707107 -7779,0.707107,0.000000,0.000000,0.707107 -7780,0.707107,0.000000,0.000000,0.707107 -7781,0.707107,0.000000,0.000000,0.707107 -7782,0.707107,0.000000,0.000000,0.707107 -7783,0.707107,0.000000,0.000000,0.707107 -7784,0.707107,0.000000,0.000000,0.707107 -7785,0.707107,0.000000,0.000000,0.707107 -7786,0.707107,0.000000,0.000000,0.707107 -7787,0.707107,0.000000,0.000000,0.707107 -7788,0.707107,0.000000,0.000000,0.707107 -7789,0.707107,0.000000,0.000000,0.707107 -7790,0.707107,0.000000,0.000000,0.707107 -7791,0.707107,0.000000,0.000000,0.707107 -7792,0.707107,0.000000,0.000000,0.707107 -7793,0.707107,0.000000,0.000000,0.707107 -7794,0.707107,0.000000,0.000000,0.707107 -7795,0.707107,0.000000,0.000000,0.707107 -7796,0.707107,0.000000,0.000000,0.707107 -7797,0.707107,0.000000,0.000000,0.707107 -7798,0.707107,0.000000,0.000000,0.707107 -7799,0.707107,0.000000,0.000000,0.707107 -7800,0.707107,0.000000,0.000000,0.707107 -7801,0.707107,0.000000,0.000000,0.707107 -7802,0.707107,0.000000,0.000000,0.707107 -7803,0.707107,0.000000,0.000000,0.707107 -7804,0.707107,0.000000,0.000000,0.707107 -7805,0.707107,0.000000,0.000000,0.707107 -7806,0.707107,0.000000,0.000000,0.707107 -7807,0.707107,0.000000,0.000000,0.707107 -7808,0.707107,0.000000,0.000000,0.707107 -7809,0.707107,0.000000,0.000000,0.707107 -7810,0.707107,0.000000,0.000000,0.707107 -7811,0.707107,0.000000,0.000000,0.707107 -7812,0.707107,0.000000,0.000000,0.707107 -7813,0.707107,0.000000,0.000000,0.707107 -7814,0.707107,0.000000,0.000000,0.707107 -7815,0.707107,0.000000,0.000000,0.707107 -7816,0.707107,0.000000,0.000000,0.707107 -7817,0.707107,0.000000,0.000000,0.707107 -7818,0.707107,0.000000,0.000000,0.707107 -7819,0.707107,0.000000,0.000000,0.707107 -7820,0.707107,0.000000,0.000000,0.707107 -7821,0.707107,0.000000,0.000000,0.707107 -7822,0.707107,0.000000,0.000000,0.707107 -7823,0.707107,0.000000,0.000000,0.707107 -7824,0.707107,0.000000,0.000000,0.707107 -7825,0.707107,0.000000,0.000000,0.707107 -7826,0.707107,0.000000,0.000000,0.707107 -7827,0.707107,0.000000,0.000000,0.707107 -7828,0.707107,0.000000,0.000000,0.707107 -7829,0.707107,0.000000,0.000000,0.707107 -7830,0.707107,0.000000,0.000000,0.707107 -7831,0.707107,0.000000,0.000000,0.707107 -7832,0.707107,0.000000,0.000000,0.707107 -7833,0.707107,0.000000,0.000000,0.707107 -7834,0.707107,0.000000,0.000000,0.707107 -7835,0.707107,0.000000,0.000000,0.707107 -7836,0.707107,0.000000,0.000000,0.707107 -7837,0.707107,0.000000,0.000000,0.707107 -7838,0.707107,0.000000,0.000000,0.707107 -7839,0.707107,0.000000,0.000000,0.707107 -7840,0.707107,0.000000,0.000000,0.707107 -7841,0.707107,0.000000,0.000000,0.707107 -7842,0.707107,0.000000,0.000000,0.707107 -7843,0.707107,0.000000,0.000000,0.707107 -7844,0.707107,0.000000,0.000000,0.707107 -7845,0.707107,0.000000,0.000000,0.707107 -7846,0.707107,0.000000,0.000000,0.707107 -7847,0.707107,0.000000,0.000000,0.707107 -7848,0.707107,0.000000,0.000000,0.707107 -7849,0.707107,0.000000,0.000000,0.707107 -7850,0.707107,0.000000,0.000000,0.707107 -7851,0.707107,0.000000,0.000000,0.707107 -7852,0.707107,0.000000,0.000000,0.707107 -7853,0.707107,0.000000,0.000000,0.707107 -7854,0.707107,0.000000,0.000000,0.707107 -7855,0.707107,0.000000,0.000000,0.707107 -7856,0.707107,0.000000,0.000000,0.707107 -7857,0.707107,0.000000,0.000000,0.707107 -7858,0.707107,0.000000,0.000000,0.707107 -7859,0.707107,0.000000,0.000000,0.707107 -7860,0.707107,0.000000,0.000000,0.707107 -7861,0.707107,0.000000,0.000000,0.707107 -7862,0.707107,0.000000,0.000000,0.707107 -7863,0.707107,0.000000,0.000000,0.707107 -7864,0.707107,0.000000,0.000000,0.707107 -7865,0.707107,0.000000,0.000000,0.707107 -7866,0.707107,0.000000,0.000000,0.707107 -7867,0.707107,0.000000,0.000000,0.707107 -7868,0.707107,0.000000,0.000000,0.707107 -7869,0.707107,0.000000,0.000000,0.707107 -7870,0.707107,0.000000,0.000000,0.707107 -7871,0.707107,0.000000,0.000000,0.707107 -7872,0.707107,0.000000,0.000000,0.707107 -7873,0.707107,0.000000,0.000000,0.707107 -7874,0.707107,0.000000,0.000000,0.707107 -7875,0.707107,0.000000,0.000000,0.707107 -7876,0.707107,0.000000,0.000000,0.707107 -7877,0.707107,0.000000,0.000000,0.707107 -7878,0.707107,0.000000,0.000000,0.707107 -7879,0.707107,0.000000,0.000000,0.707107 -7880,0.707107,0.000000,0.000000,0.707107 -7881,0.707107,0.000000,0.000000,0.707107 -7882,0.707107,0.000000,0.000000,0.707107 -7883,0.707107,0.000000,0.000000,0.707107 -7884,0.707107,0.000000,0.000000,0.707107 -7885,0.707107,0.000000,0.000000,0.707107 -7886,0.707107,0.000000,0.000000,0.707107 -7887,0.707107,0.000000,0.000000,0.707107 -7888,0.707107,0.000000,0.000000,0.707107 -7889,0.707107,0.000000,0.000000,0.707107 -7890,0.707107,0.000000,0.000000,0.707107 -7891,0.707107,0.000000,0.000000,0.707107 -7892,0.707107,0.000000,0.000000,0.707107 -7893,0.707107,0.000000,0.000000,0.707107 -7894,0.707107,0.000000,0.000000,0.707107 -7895,0.707107,0.000000,0.000000,0.707107 -7896,0.707107,0.000000,0.000000,0.707107 -7897,0.707107,0.000000,0.000000,0.707107 -7898,0.707107,0.000000,0.000000,0.707107 -7899,0.707107,0.000000,0.000000,0.707107 -7900,0.707107,0.000000,0.000000,0.707107 -7901,0.707107,0.000000,0.000000,0.707107 -7902,0.707107,0.000000,0.000000,0.707107 -7903,0.707107,0.000000,0.000000,0.707107 -7904,0.707107,0.000000,0.000000,0.707107 -7905,0.707107,0.000000,0.000000,0.707107 -7906,0.707107,0.000000,0.000000,0.707107 -7907,0.707107,0.000000,0.000000,0.707107 -7908,0.707107,0.000000,0.000000,0.707107 -7909,0.707107,0.000000,0.000000,0.707107 -7910,0.707107,0.000000,0.000000,0.707107 -7911,0.707107,0.000000,0.000000,0.707107 -7912,0.707107,0.000000,0.000000,0.707107 -7913,0.707107,0.000000,0.000000,0.707107 -7914,0.707107,0.000000,0.000000,0.707107 -7915,0.707107,0.000000,0.000000,0.707107 -7916,0.707107,0.000000,0.000000,0.707107 -7917,0.707107,0.000000,0.000000,0.707107 -7918,0.707107,0.000000,0.000000,0.707107 -7919,0.707107,0.000000,0.000000,0.707107 -7920,0.707107,0.000000,0.000000,0.707107 -7921,0.707107,0.000000,0.000000,0.707107 -7922,0.707107,0.000000,0.000000,0.707107 -7923,0.707107,0.000000,0.000000,0.707107 -7924,0.707107,0.000000,0.000000,0.707107 -7925,0.707107,0.000000,0.000000,0.707107 -7926,0.707107,0.000000,0.000000,0.707107 -7927,0.707107,0.000000,0.000000,0.707107 -7928,0.707107,0.000000,0.000000,0.707107 -7929,0.707107,0.000000,0.000000,0.707107 -7930,0.707107,0.000000,0.000000,0.707107 -7931,0.707107,0.000000,0.000000,0.707107 -7932,0.707107,0.000000,0.000000,0.707107 -7933,0.707107,0.000000,0.000000,0.707107 -7934,0.707107,0.000000,0.000000,0.707107 -7935,0.707107,0.000000,0.000000,0.707107 -7936,0.707107,0.000000,0.000000,0.707107 -7937,0.707107,0.000000,0.000000,0.707107 -7938,0.707107,0.000000,0.000000,0.707107 -7939,0.707107,0.000000,0.000000,0.707107 -7940,0.707107,0.000000,0.000000,0.707107 -7941,0.707107,0.000000,0.000000,0.707107 -7942,0.707107,0.000000,0.000000,0.707107 -7943,0.707107,0.000000,0.000000,0.707107 -7944,0.707107,0.000000,0.000000,0.707107 -7945,0.707107,0.000000,0.000000,0.707107 -7946,0.707107,0.000000,0.000000,0.707107 -7947,0.707107,0.000000,0.000000,0.707107 -7948,0.707107,0.000000,0.000000,0.707107 -7949,0.707107,0.000000,0.000000,0.707107 -7950,0.707107,0.000000,0.000000,0.707107 -7951,0.707107,0.000000,0.000000,0.707107 -7952,0.707107,0.000000,0.000000,0.707107 -7953,0.707107,0.000000,0.000000,0.707107 -7954,0.707107,0.000000,0.000000,0.707107 -7955,0.707107,0.000000,0.000000,0.707107 -7956,0.707107,0.000000,0.000000,0.707107 -7957,0.707107,0.000000,0.000000,0.707107 -7958,0.707107,0.000000,0.000000,0.707107 -7959,0.707107,0.000000,0.000000,0.707107 -7960,0.707107,0.000000,0.000000,0.707107 -7961,0.707107,0.000000,0.000000,0.707107 -7962,0.707107,0.000000,0.000000,0.707107 -7963,0.707107,0.000000,0.000000,0.707107 -7964,0.707107,0.000000,0.000000,0.707107 -7965,0.707107,0.000000,0.000000,0.707107 -7966,0.707107,0.000000,0.000000,0.707107 -7967,0.707107,0.000000,0.000000,0.707107 -7968,0.707107,0.000000,0.000000,0.707107 -7969,0.707107,0.000000,0.000000,0.707107 -7970,0.707107,0.000000,0.000000,0.707107 -7971,0.707107,0.000000,0.000000,0.707107 -7972,0.707107,0.000000,0.000000,0.707107 -7973,0.707107,0.000000,0.000000,0.707107 -7974,0.707107,0.000000,0.000000,0.707107 -7975,0.707107,0.000000,0.000000,0.707107 -7976,0.707107,0.000000,0.000000,0.707107 -7977,0.707107,0.000000,0.000000,0.707107 -7978,0.707107,0.000000,0.000000,0.707107 -7979,0.707107,0.000000,0.000000,0.707107 -7980,0.707107,0.000000,0.000000,0.707107 -7981,0.707107,0.000000,0.000000,0.707107 -7982,0.707107,0.000000,0.000000,0.707107 -7983,0.707107,0.000000,0.000000,0.707107 -7984,0.707107,0.000000,0.000000,0.707107 -7985,0.707107,0.000000,0.000000,0.707107 -7986,0.707107,0.000000,0.000000,0.707107 -7987,0.707107,0.000000,0.000000,0.707107 -7988,0.707107,0.000000,0.000000,0.707107 -7989,0.707107,0.000000,0.000000,0.707107 -7990,0.707107,0.000000,0.000000,0.707107 -7991,0.707107,0.000000,0.000000,0.707107 -7992,0.707107,0.000000,0.000000,0.707107 -7993,0.707107,0.000000,0.000000,0.707107 -7994,0.707107,0.000000,0.000000,0.707107 -7995,0.707107,0.000000,0.000000,0.707107 -7996,0.707107,0.000000,0.000000,0.707107 -7997,0.707107,0.000000,0.000000,0.707107 -7998,0.707107,0.000000,0.000000,0.707107 -7999,0.707107,0.000000,0.000000,0.707107 -8000,0.707107,0.000000,0.000000,0.707107 -8001,0.707107,0.000000,0.000000,0.707107 -8002,0.707107,0.000000,0.000000,0.707107 -8003,0.707107,0.000000,0.000000,0.707107 -8004,0.707107,0.000000,0.000000,0.707107 -8005,0.707107,0.000000,0.000000,0.707107 -8006,0.707107,0.000000,0.000000,0.707107 -8007,0.707107,0.000000,0.000000,0.707107 -8008,0.707107,0.000000,0.000000,0.707107 -8009,0.707107,0.000000,0.000000,0.707107 -8010,0.707107,0.000000,0.000000,0.707107 -8011,0.707107,0.000000,0.000000,0.707107 -8012,0.707107,0.000000,0.000000,0.707107 -8013,0.707107,0.000000,0.000000,0.707107 -8014,0.707107,0.000000,0.000000,0.707107 -8015,0.707107,0.000000,0.000000,0.707107 -8016,0.707107,0.000000,0.000000,0.707107 -8017,0.707107,0.000000,0.000000,0.707107 -8018,0.707107,0.000000,0.000000,0.707107 -8019,0.707107,0.000000,0.000000,0.707107 -8020,0.707107,0.000000,0.000000,0.707107 -8021,0.707107,0.000000,0.000000,0.707107 -8022,0.707107,0.000000,0.000000,0.707107 -8023,0.707107,0.000000,0.000000,0.707107 -8024,0.707107,0.000000,0.000000,0.707107 -8025,0.707107,0.000000,0.000000,0.707107 -8026,0.707107,0.000000,0.000000,0.707107 -8027,0.707107,0.000000,0.000000,0.707107 -8028,0.707107,0.000000,0.000000,0.707107 -8029,0.707107,0.000000,0.000000,0.707107 -8030,0.707107,0.000000,0.000000,0.707107 -8031,0.707107,0.000000,0.000000,0.707107 -8032,0.707107,0.000000,0.000000,0.707107 -8033,0.707107,0.000000,0.000000,0.707107 -8034,0.707107,0.000000,0.000000,0.707107 -8035,0.707107,0.000000,0.000000,0.707107 -8036,0.707107,0.000000,0.000000,0.707107 -8037,0.707107,0.000000,0.000000,0.707107 -8038,0.707107,0.000000,0.000000,0.707107 -8039,0.707107,0.000000,0.000000,0.707107 -8040,0.707107,0.000000,0.000000,0.707107 -8041,0.707107,0.000000,0.000000,0.707107 -8042,0.707107,0.000000,0.000000,0.707107 -8043,0.707107,0.000000,0.000000,0.707107 -8044,0.707107,0.000000,0.000000,0.707107 -8045,0.707107,0.000000,0.000000,0.707107 -8046,0.707107,0.000000,0.000000,0.707107 -8047,0.707107,0.000000,0.000000,0.707107 -8048,0.707107,0.000000,0.000000,0.707107 -8049,0.707107,0.000000,0.000000,0.707107 -8050,0.707107,0.000000,0.000000,0.707107 -8051,0.707107,0.000000,0.000000,0.707107 -8052,0.707107,0.000000,0.000000,0.707107 -8053,0.707107,0.000000,0.000000,0.707107 -8054,0.707107,0.000000,0.000000,0.707107 -8055,0.707107,0.000000,0.000000,0.707107 -8056,0.707107,0.000000,0.000000,0.707107 -8057,0.707107,0.000000,0.000000,0.707107 -8058,0.707107,0.000000,0.000000,0.707107 -8059,0.707107,0.000000,0.000000,0.707107 -8060,0.707107,0.000000,0.000000,0.707107 -8061,0.707107,0.000000,0.000000,0.707107 -8062,0.707107,0.000000,0.000000,0.707107 -8063,0.707107,0.000000,0.000000,0.707107 -8064,0.707107,0.000000,0.000000,0.707107 -8065,0.707107,0.000000,0.000000,0.707107 -8066,0.707107,0.000000,0.000000,0.707107 -8067,0.707107,0.000000,0.000000,0.707107 -8068,0.707107,0.000000,0.000000,0.707107 -8069,0.707107,0.000000,0.000000,0.707107 -8070,0.707107,0.000000,0.000000,0.707107 -8071,0.707107,0.000000,0.000000,0.707107 -8072,0.707107,0.000000,0.000000,0.707107 -8073,0.707107,0.000000,0.000000,0.707107 -8074,0.707107,0.000000,0.000000,0.707107 -8075,0.707107,0.000000,0.000000,0.707107 -8076,0.707107,0.000000,0.000000,0.707107 -8077,0.707107,0.000000,0.000000,0.707107 -8078,0.707107,0.000000,0.000000,0.707107 -8079,0.707107,0.000000,0.000000,0.707107 -8080,0.707107,0.000000,0.000000,0.707107 -8081,0.707107,0.000000,0.000000,0.707107 -8082,0.707107,0.000000,0.000000,0.707107 -8083,0.707107,0.000000,0.000000,0.707107 -8084,0.707107,0.000000,0.000000,0.707107 -8085,0.707107,0.000000,0.000000,0.707107 -8086,0.707107,0.000000,0.000000,0.707107 -8087,0.707107,0.000000,0.000000,0.707107 -8088,0.707107,0.000000,0.000000,0.707107 -8089,0.707107,0.000000,0.000000,0.707107 -8090,0.707107,0.000000,0.000000,0.707107 -8091,0.707107,0.000000,0.000000,0.707107 -8092,0.707107,0.000000,0.000000,0.707107 -8093,0.707107,0.000000,0.000000,0.707107 -8094,0.707107,0.000000,0.000000,0.707107 -8095,0.707107,0.000000,0.000000,0.707107 -8096,0.707107,0.000000,0.000000,0.707107 -8097,0.707107,0.000000,0.000000,0.707107 -8098,0.707107,0.000000,0.000000,0.707107 -8099,0.707107,0.000000,0.000000,0.707107 diff --git a/scripts/testv/headrot_case00_3000_q.csv b/scripts/testv/headrot_case00_3000_q.csv index ad09f93413..e69de29bb2 100644 --- a/scripts/testv/headrot_case00_3000_q.csv +++ b/scripts/testv/headrot_case00_3000_q.csv @@ -1,3000 +0,0 @@ -0,1.000000,0.000000,0.000000,0.000000 -1,0.999999,0.000000,0.000000,0.001047 -2,0.999998,0.000000,0.000000,0.002094 -3,0.999995,0.000000,0.000000,0.003142 -4,0.999991,0.000000,0.000000,0.004189 -5,0.999986,0.000000,0.000000,0.005236 -6,0.999980,0.000000,0.000000,0.006283 -7,0.999973,0.000000,0.000000,0.007330 -8,0.999965,0.000000,0.000000,0.008377 -9,0.999956,0.000000,0.000000,0.009425 -10,0.999945,0.000000,0.000000,0.010472 -11,0.999934,0.000000,0.000000,0.011519 -12,0.999921,0.000000,0.000000,0.012566 -13,0.999907,0.000000,0.000000,0.013613 -14,0.999893,0.000000,0.000000,0.014660 -15,0.999877,0.000000,0.000000,0.015707 -16,0.999860,0.000000,0.000000,0.016754 -17,0.999842,0.000000,0.000000,0.017801 -18,0.999822,0.000000,0.000000,0.018848 -19,0.999802,0.000000,0.000000,0.019895 -20,0.999781,0.000000,0.000000,0.020942 -21,0.999758,0.000000,0.000000,0.021989 -22,0.999735,0.000000,0.000000,0.023036 -23,0.999710,0.000000,0.000000,0.024083 -24,0.999684,0.000000,0.000000,0.025130 -25,0.999657,0.000000,0.000000,0.026177 -26,0.999629,0.000000,0.000000,0.027224 -27,0.999600,0.000000,0.000000,0.028271 -28,0.999570,0.000000,0.000000,0.029317 -29,0.999539,0.000000,0.000000,0.030364 -30,0.999507,0.000000,0.000000,0.031411 -31,0.999473,0.000000,0.000000,0.032457 -32,0.999439,0.000000,0.000000,0.033504 -33,0.999403,0.000000,0.000000,0.034551 -34,0.999366,0.000000,0.000000,0.035597 -35,0.999328,0.000000,0.000000,0.036644 -36,0.999289,0.000000,0.000000,0.037690 -37,0.999249,0.000000,0.000000,0.038737 -38,0.999208,0.000000,0.000000,0.039783 -39,0.999166,0.000000,0.000000,0.040829 -40,0.999123,0.000000,0.000000,0.041876 -41,0.999078,0.000000,0.000000,0.042922 -42,0.999033,0.000000,0.000000,0.043968 -43,0.998986,0.000000,0.000000,0.045014 -44,0.998939,0.000000,0.000000,0.046060 -45,0.998890,0.000000,0.000000,0.047106 -46,0.998840,0.000000,0.000000,0.048152 -47,0.998789,0.000000,0.000000,0.049198 -48,0.998737,0.000000,0.000000,0.050244 -49,0.998684,0.000000,0.000000,0.051290 -50,0.998630,0.000000,0.000000,0.052336 -51,0.998574,0.000000,0.000000,0.053382 -52,0.998518,0.000000,0.000000,0.054427 -53,0.998460,0.000000,0.000000,0.055473 -54,0.998402,0.000000,0.000000,0.056519 -55,0.998342,0.000000,0.000000,0.057564 -56,0.998281,0.000000,0.000000,0.058609 -57,0.998219,0.000000,0.000000,0.059655 -58,0.998156,0.000000,0.000000,0.060700 -59,0.998092,0.000000,0.000000,0.061745 -60,0.998027,0.000000,0.000000,0.062791 -61,0.997960,0.000000,0.000000,0.063836 -62,0.997893,0.000000,0.000000,0.064881 -63,0.997825,0.000000,0.000000,0.065926 -64,0.997755,0.000000,0.000000,0.066970 -65,0.997684,0.000000,0.000000,0.068015 -66,0.997613,0.000000,0.000000,0.069060 -67,0.997540,0.000000,0.000000,0.070105 -68,0.997466,0.000000,0.000000,0.071149 -69,0.997391,0.000000,0.000000,0.072194 -70,0.997314,0.000000,0.000000,0.073238 -71,0.997237,0.000000,0.000000,0.074283 -72,0.997159,0.000000,0.000000,0.075327 -73,0.997079,0.000000,0.000000,0.076371 -74,0.996999,0.000000,0.000000,0.077415 -75,0.996917,0.000000,0.000000,0.078459 -76,0.996835,0.000000,0.000000,0.079503 -77,0.996751,0.000000,0.000000,0.080547 -78,0.996666,0.000000,0.000000,0.081591 -79,0.996580,0.000000,0.000000,0.082634 -80,0.996493,0.000000,0.000000,0.083678 -81,0.996405,0.000000,0.000000,0.084721 -82,0.996315,0.000000,0.000000,0.085765 -83,0.996225,0.000000,0.000000,0.086808 -84,0.996134,0.000000,0.000000,0.087851 -85,0.996041,0.000000,0.000000,0.088894 -86,0.995947,0.000000,0.000000,0.089937 -87,0.995853,0.000000,0.000000,0.090980 -88,0.995757,0.000000,0.000000,0.092023 -89,0.995660,0.000000,0.000000,0.093066 -90,0.995562,0.000000,0.000000,0.094108 -91,0.995463,0.000000,0.000000,0.095151 -92,0.995363,0.000000,0.000000,0.096193 -93,0.995261,0.000000,0.000000,0.097235 -94,0.995159,0.000000,0.000000,0.098278 -95,0.995056,0.000000,0.000000,0.099320 -96,0.994951,0.000000,0.000000,0.100362 -97,0.994845,0.000000,0.000000,0.101404 -98,0.994739,0.000000,0.000000,0.102445 -99,0.994631,0.000000,0.000000,0.103487 -100,0.994522,0.000000,0.000000,0.104528 -101,0.994412,0.000000,0.000000,0.105570 -102,0.994301,0.000000,0.000000,0.106611 -103,0.994189,0.000000,0.000000,0.107652 -104,0.994075,0.000000,0.000000,0.108693 -105,0.993961,0.000000,0.000000,0.109734 -106,0.993845,0.000000,0.000000,0.110775 -107,0.993729,0.000000,0.000000,0.111816 -108,0.993611,0.000000,0.000000,0.112856 -109,0.993493,0.000000,0.000000,0.113897 -110,0.993373,0.000000,0.000000,0.114937 -111,0.993252,0.000000,0.000000,0.115977 -112,0.993130,0.000000,0.000000,0.117017 -113,0.993007,0.000000,0.000000,0.118057 -114,0.992883,0.000000,0.000000,0.119097 -115,0.992757,0.000000,0.000000,0.120137 -116,0.992631,0.000000,0.000000,0.121176 -117,0.992504,0.000000,0.000000,0.122216 -118,0.992375,0.000000,0.000000,0.123255 -119,0.992245,0.000000,0.000000,0.124294 -120,0.992115,0.000000,0.000000,0.125333 -121,0.991983,0.000000,0.000000,0.126372 -122,0.991850,0.000000,0.000000,0.127411 -123,0.991716,0.000000,0.000000,0.128449 -124,0.991581,0.000000,0.000000,0.129488 -125,0.991445,0.000000,0.000000,0.130526 -126,0.991308,0.000000,0.000000,0.131564 -127,0.991169,0.000000,0.000000,0.132602 -128,0.991030,0.000000,0.000000,0.133640 -129,0.990889,0.000000,0.000000,0.134678 -130,0.990748,0.000000,0.000000,0.135716 -131,0.990605,0.000000,0.000000,0.136753 -132,0.990461,0.000000,0.000000,0.137790 -133,0.990317,0.000000,0.000000,0.138827 -134,0.990171,0.000000,0.000000,0.139864 -135,0.990024,0.000000,0.000000,0.140901 -136,0.989876,0.000000,0.000000,0.141938 -137,0.989726,0.000000,0.000000,0.142974 -138,0.989576,0.000000,0.000000,0.144011 -139,0.989425,0.000000,0.000000,0.145047 -140,0.989272,0.000000,0.000000,0.146083 -141,0.989119,0.000000,0.000000,0.147119 -142,0.988964,0.000000,0.000000,0.148155 -143,0.988809,0.000000,0.000000,0.149190 -144,0.988652,0.000000,0.000000,0.150226 -145,0.988494,0.000000,0.000000,0.151261 -146,0.988335,0.000000,0.000000,0.152296 -147,0.988175,0.000000,0.000000,0.153331 -148,0.988014,0.000000,0.000000,0.154366 -149,0.987852,0.000000,0.000000,0.155400 -150,0.987688,0.000000,0.000000,0.156434 -151,0.987524,0.000000,0.000000,0.157469 -152,0.987359,0.000000,0.000000,0.158503 -153,0.987192,0.000000,0.000000,0.159537 -154,0.987024,0.000000,0.000000,0.160570 -155,0.986856,0.000000,0.000000,0.161604 -156,0.986686,0.000000,0.000000,0.162637 -157,0.986515,0.000000,0.000000,0.163670 -158,0.986343,0.000000,0.000000,0.164703 -159,0.986170,0.000000,0.000000,0.165736 -160,0.985996,0.000000,0.000000,0.166769 -161,0.985821,0.000000,0.000000,0.167801 -162,0.985645,0.000000,0.000000,0.168833 -163,0.985467,0.000000,0.000000,0.169866 -164,0.985289,0.000000,0.000000,0.170897 -165,0.985109,0.000000,0.000000,0.171929 -166,0.984929,0.000000,0.000000,0.172961 -167,0.984747,0.000000,0.000000,0.173992 -168,0.984564,0.000000,0.000000,0.175023 -169,0.984381,0.000000,0.000000,0.176054 -170,0.984196,0.000000,0.000000,0.177085 -171,0.984010,0.000000,0.000000,0.178115 -172,0.983823,0.000000,0.000000,0.179146 -173,0.983634,0.000000,0.000000,0.180176 -174,0.983445,0.000000,0.000000,0.181206 -175,0.983255,0.000000,0.000000,0.182236 -176,0.983064,0.000000,0.000000,0.183265 -177,0.982871,0.000000,0.000000,0.184294 -178,0.982678,0.000000,0.000000,0.185324 -179,0.982483,0.000000,0.000000,0.186353 -180,0.982287,0.000000,0.000000,0.187381 -181,0.982090,0.000000,0.000000,0.188410 -182,0.981893,0.000000,0.000000,0.189438 -183,0.981694,0.000000,0.000000,0.190466 -184,0.981494,0.000000,0.000000,0.191494 -185,0.981293,0.000000,0.000000,0.192522 -186,0.981091,0.000000,0.000000,0.193549 -187,0.980887,0.000000,0.000000,0.194577 -188,0.980683,0.000000,0.000000,0.195604 -189,0.980478,0.000000,0.000000,0.196631 -190,0.980271,0.000000,0.000000,0.197657 -191,0.980064,0.000000,0.000000,0.198684 -192,0.979855,0.000000,0.000000,0.199710 -193,0.979645,0.000000,0.000000,0.200736 -194,0.979435,0.000000,0.000000,0.201762 -195,0.979223,0.000000,0.000000,0.202787 -196,0.979010,0.000000,0.000000,0.203813 -197,0.978796,0.000000,0.000000,0.204838 -198,0.978581,0.000000,0.000000,0.205863 -199,0.978365,0.000000,0.000000,0.206887 -200,0.978148,0.000000,0.000000,0.207912 -201,0.977929,0.000000,0.000000,0.208936 -202,0.977710,0.000000,0.000000,0.209960 -203,0.977490,0.000000,0.000000,0.210984 -204,0.977268,0.000000,0.000000,0.212007 -205,0.977046,0.000000,0.000000,0.213030 -206,0.976822,0.000000,0.000000,0.214053 -207,0.976597,0.000000,0.000000,0.215076 -208,0.976371,0.000000,0.000000,0.216099 -209,0.976145,0.000000,0.000000,0.217121 -210,0.975917,0.000000,0.000000,0.218143 -211,0.975688,0.000000,0.000000,0.219165 -212,0.975458,0.000000,0.000000,0.220187 -213,0.975227,0.000000,0.000000,0.221208 -214,0.974994,0.000000,0.000000,0.222229 -215,0.974761,0.000000,0.000000,0.223250 -216,0.974527,0.000000,0.000000,0.224271 -217,0.974291,0.000000,0.000000,0.225291 -218,0.974055,0.000000,0.000000,0.226311 -219,0.973817,0.000000,0.000000,0.227331 -220,0.973579,0.000000,0.000000,0.228351 -221,0.973339,0.000000,0.000000,0.229370 -222,0.973099,0.000000,0.000000,0.230389 -223,0.972857,0.000000,0.000000,0.231408 -224,0.972614,0.000000,0.000000,0.232427 -225,0.972370,0.000000,0.000000,0.233445 -226,0.972125,0.000000,0.000000,0.234463 -227,0.971879,0.000000,0.000000,0.235481 -228,0.971632,0.000000,0.000000,0.236499 -229,0.971384,0.000000,0.000000,0.237516 -230,0.971134,0.000000,0.000000,0.238533 -231,0.970884,0.000000,0.000000,0.239550 -232,0.970633,0.000000,0.000000,0.240567 -233,0.970380,0.000000,0.000000,0.241583 -234,0.970127,0.000000,0.000000,0.242599 -235,0.969872,0.000000,0.000000,0.243615 -236,0.969616,0.000000,0.000000,0.244631 -237,0.969360,0.000000,0.000000,0.245646 -238,0.969102,0.000000,0.000000,0.246661 -239,0.968843,0.000000,0.000000,0.247675 -240,0.968583,0.000000,0.000000,0.248690 -241,0.968322,0.000000,0.000000,0.249704 -242,0.968060,0.000000,0.000000,0.250718 -243,0.967797,0.000000,0.000000,0.251732 -244,0.967533,0.000000,0.000000,0.252745 -245,0.967268,0.000000,0.000000,0.253758 -246,0.967001,0.000000,0.000000,0.254771 -247,0.966734,0.000000,0.000000,0.255783 -248,0.966466,0.000000,0.000000,0.256795 -249,0.966196,0.000000,0.000000,0.257807 -250,0.965926,0.000000,0.000000,0.258819 -251,0.965654,0.000000,0.000000,0.259830 -252,0.965382,0.000000,0.000000,0.260842 -253,0.965108,0.000000,0.000000,0.261852 -254,0.964833,0.000000,0.000000,0.262863 -255,0.964557,0.000000,0.000000,0.263873 -256,0.964281,0.000000,0.000000,0.264883 -257,0.964003,0.000000,0.000000,0.265893 -258,0.963724,0.000000,0.000000,0.266902 -259,0.963444,0.000000,0.000000,0.267911 -260,0.963163,0.000000,0.000000,0.268920 -261,0.962880,0.000000,0.000000,0.269928 -262,0.962597,0.000000,0.000000,0.270936 -263,0.962313,0.000000,0.000000,0.271944 -264,0.962028,0.000000,0.000000,0.272952 -265,0.961741,0.000000,0.000000,0.273959 -266,0.961454,0.000000,0.000000,0.274966 -267,0.961165,0.000000,0.000000,0.275973 -268,0.960876,0.000000,0.000000,0.276979 -269,0.960585,0.000000,0.000000,0.277985 -270,0.960294,0.000000,0.000000,0.278991 -271,0.960001,0.000000,0.000000,0.279997 -272,0.959707,0.000000,0.000000,0.281002 -273,0.959412,0.000000,0.000000,0.282007 -274,0.959117,0.000000,0.000000,0.283011 -275,0.958820,0.000000,0.000000,0.284015 -276,0.958522,0.000000,0.000000,0.285019 -277,0.958223,0.000000,0.000000,0.286023 -278,0.957923,0.000000,0.000000,0.287026 -279,0.957622,0.000000,0.000000,0.288029 -280,0.957319,0.000000,0.000000,0.289032 -281,0.957016,0.000000,0.000000,0.290034 -282,0.956712,0.000000,0.000000,0.291036 -283,0.956407,0.000000,0.000000,0.292038 -284,0.956100,0.000000,0.000000,0.293039 -285,0.955793,0.000000,0.000000,0.294040 -286,0.955485,0.000000,0.000000,0.295041 -287,0.955175,0.000000,0.000000,0.296041 -288,0.954865,0.000000,0.000000,0.297042 -289,0.954553,0.000000,0.000000,0.298041 -290,0.954240,0.000000,0.000000,0.299041 -291,0.953927,0.000000,0.000000,0.300040 -292,0.953612,0.000000,0.000000,0.301039 -293,0.953296,0.000000,0.000000,0.302037 -294,0.952979,0.000000,0.000000,0.303035 -295,0.952661,0.000000,0.000000,0.304033 -296,0.952343,0.000000,0.000000,0.305031 -297,0.952023,0.000000,0.000000,0.306028 -298,0.951702,0.000000,0.000000,0.307024 -299,0.951380,0.000000,0.000000,0.308021 -300,0.951057,0.000000,0.000000,0.309017 -301,0.950732,0.000000,0.000000,0.310013 -302,0.950407,0.000000,0.000000,0.311008 -303,0.950081,0.000000,0.000000,0.312003 -304,0.949754,0.000000,0.000000,0.312998 -305,0.949425,0.000000,0.000000,0.313992 -306,0.949096,0.000000,0.000000,0.314987 -307,0.948766,0.000000,0.000000,0.315980 -308,0.948434,0.000000,0.000000,0.316974 -309,0.948102,0.000000,0.000000,0.317967 -310,0.947768,0.000000,0.000000,0.318959 -311,0.947434,0.000000,0.000000,0.319952 -312,0.947098,0.000000,0.000000,0.320944 -313,0.946762,0.000000,0.000000,0.321935 -314,0.946424,0.000000,0.000000,0.322927 -315,0.946085,0.000000,0.000000,0.323917 -316,0.945746,0.000000,0.000000,0.324908 -317,0.945405,0.000000,0.000000,0.325898 -318,0.945063,0.000000,0.000000,0.326888 -319,0.944720,0.000000,0.000000,0.327878 -320,0.944376,0.000000,0.000000,0.328867 -321,0.944031,0.000000,0.000000,0.329855 -322,0.943686,0.000000,0.000000,0.330844 -323,0.943339,0.000000,0.000000,0.331832 -324,0.942991,0.000000,0.000000,0.332820 -325,0.942641,0.000000,0.000000,0.333807 -326,0.942291,0.000000,0.000000,0.334794 -327,0.941940,0.000000,0.000000,0.335780 -328,0.941588,0.000000,0.000000,0.336767 -329,0.941235,0.000000,0.000000,0.337752 -330,0.940881,0.000000,0.000000,0.338738 -331,0.940526,0.000000,0.000000,0.339723 -332,0.940169,0.000000,0.000000,0.340708 -333,0.939812,0.000000,0.000000,0.341692 -334,0.939454,0.000000,0.000000,0.342676 -335,0.939094,0.000000,0.000000,0.343660 -336,0.938734,0.000000,0.000000,0.344643 -337,0.938372,0.000000,0.000000,0.345626 -338,0.938010,0.000000,0.000000,0.346608 -339,0.937646,0.000000,0.000000,0.347590 -340,0.937282,0.000000,0.000000,0.348572 -341,0.936916,0.000000,0.000000,0.349553 -342,0.936550,0.000000,0.000000,0.350534 -343,0.936182,0.000000,0.000000,0.351515 -344,0.935814,0.000000,0.000000,0.352495 -345,0.935444,0.000000,0.000000,0.353475 -346,0.935073,0.000000,0.000000,0.354454 -347,0.934702,0.000000,0.000000,0.355433 -348,0.934329,0.000000,0.000000,0.356412 -349,0.933955,0.000000,0.000000,0.357390 -350,0.933580,0.000000,0.000000,0.358368 -351,0.933205,0.000000,0.000000,0.359345 -352,0.932828,0.000000,0.000000,0.360322 -353,0.932450,0.000000,0.000000,0.361299 -354,0.932071,0.000000,0.000000,0.362275 -355,0.931691,0.000000,0.000000,0.363251 -356,0.931310,0.000000,0.000000,0.364227 -357,0.930928,0.000000,0.000000,0.365202 -358,0.930545,0.000000,0.000000,0.366176 -359,0.930161,0.000000,0.000000,0.367151 -360,0.929776,0.000000,0.000000,0.368125 -361,0.929390,0.000000,0.000000,0.369098 -362,0.929003,0.000000,0.000000,0.370071 -363,0.928615,0.000000,0.000000,0.371044 -364,0.928226,0.000000,0.000000,0.372016 -365,0.927836,0.000000,0.000000,0.372988 -366,0.927445,0.000000,0.000000,0.373959 -367,0.927053,0.000000,0.000000,0.374930 -368,0.926660,0.000000,0.000000,0.375901 -369,0.926266,0.000000,0.000000,0.376871 -370,0.925871,0.000000,0.000000,0.377841 -371,0.925474,0.000000,0.000000,0.378810 -372,0.925077,0.000000,0.000000,0.379779 -373,0.924679,0.000000,0.000000,0.380748 -374,0.924280,0.000000,0.000000,0.381716 -375,0.923880,0.000000,0.000000,0.382683 -376,0.923478,0.000000,0.000000,0.383651 -377,0.923076,0.000000,0.000000,0.384618 -378,0.922673,0.000000,0.000000,0.385584 -379,0.922268,0.000000,0.000000,0.386550 -380,0.921863,0.000000,0.000000,0.387516 -381,0.921457,0.000000,0.000000,0.388481 -382,0.921050,0.000000,0.000000,0.389445 -383,0.920641,0.000000,0.000000,0.390410 -384,0.920232,0.000000,0.000000,0.391374 -385,0.919821,0.000000,0.000000,0.392337 -386,0.919410,0.000000,0.000000,0.393300 -387,0.918998,0.000000,0.000000,0.394263 -388,0.918584,0.000000,0.000000,0.395225 -389,0.918170,0.000000,0.000000,0.396187 -390,0.917755,0.000000,0.000000,0.397148 -391,0.917338,0.000000,0.000000,0.398109 -392,0.916921,0.000000,0.000000,0.399069 -393,0.916502,0.000000,0.000000,0.400029 -394,0.916083,0.000000,0.000000,0.400989 -395,0.915663,0.000000,0.000000,0.401948 -396,0.915241,0.000000,0.000000,0.402906 -397,0.914819,0.000000,0.000000,0.403865 -398,0.914395,0.000000,0.000000,0.404822 -399,0.913971,0.000000,0.000000,0.405780 -400,0.913545,0.000000,0.000000,0.406737 -401,0.913119,0.000000,0.000000,0.407693 -402,0.912692,0.000000,0.000000,0.408649 -403,0.912263,0.000000,0.000000,0.409605 -404,0.911834,0.000000,0.000000,0.410560 -405,0.911403,0.000000,0.000000,0.411514 -406,0.910972,0.000000,0.000000,0.412469 -407,0.910539,0.000000,0.000000,0.413422 -408,0.910106,0.000000,0.000000,0.414376 -409,0.909672,0.000000,0.000000,0.415328 -410,0.909236,0.000000,0.000000,0.416281 -411,0.908800,0.000000,0.000000,0.417233 -412,0.908362,0.000000,0.000000,0.418184 -413,0.907924,0.000000,0.000000,0.419135 -414,0.907484,0.000000,0.000000,0.420086 -415,0.907044,0.000000,0.000000,0.421036 -416,0.906603,0.000000,0.000000,0.421985 -417,0.906160,0.000000,0.000000,0.422935 -418,0.905717,0.000000,0.000000,0.423883 -419,0.905272,0.000000,0.000000,0.424832 -420,0.904827,0.000000,0.000000,0.425779 -421,0.904381,0.000000,0.000000,0.426727 -422,0.903933,0.000000,0.000000,0.427673 -423,0.903485,0.000000,0.000000,0.428620 -424,0.903036,0.000000,0.000000,0.429566 -425,0.902585,0.000000,0.000000,0.430511 -426,0.902134,0.000000,0.000000,0.431456 -427,0.901682,0.000000,0.000000,0.432401 -428,0.901228,0.000000,0.000000,0.433345 -429,0.900774,0.000000,0.000000,0.434288 -430,0.900319,0.000000,0.000000,0.435231 -431,0.899863,0.000000,0.000000,0.436174 -432,0.899405,0.000000,0.000000,0.437116 -433,0.898947,0.000000,0.000000,0.438057 -434,0.898488,0.000000,0.000000,0.438999 -435,0.898028,0.000000,0.000000,0.439939 -436,0.897566,0.000000,0.000000,0.440879 -437,0.897104,0.000000,0.000000,0.441819 -438,0.896641,0.000000,0.000000,0.442758 -439,0.896177,0.000000,0.000000,0.443697 -440,0.895712,0.000000,0.000000,0.444635 -441,0.895246,0.000000,0.000000,0.445573 -442,0.894779,0.000000,0.000000,0.446510 -443,0.894310,0.000000,0.000000,0.447447 -444,0.893841,0.000000,0.000000,0.448383 -445,0.893371,0.000000,0.000000,0.449319 -446,0.892900,0.000000,0.000000,0.450254 -447,0.892428,0.000000,0.000000,0.451189 -448,0.891955,0.000000,0.000000,0.452123 -449,0.891481,0.000000,0.000000,0.453057 -450,0.891007,0.000000,0.000000,0.453990 -451,0.890531,0.000000,0.000000,0.454923 -452,0.890054,0.000000,0.000000,0.455856 -453,0.889576,0.000000,0.000000,0.456787 -454,0.889097,0.000000,0.000000,0.457719 -455,0.888617,0.000000,0.000000,0.458650 -456,0.888136,0.000000,0.000000,0.459580 -457,0.887655,0.000000,0.000000,0.460510 -458,0.887172,0.000000,0.000000,0.461439 -459,0.886688,0.000000,0.000000,0.462368 -460,0.886204,0.000000,0.000000,0.463296 -461,0.885718,0.000000,0.000000,0.464224 -462,0.885231,0.000000,0.000000,0.465151 -463,0.884744,0.000000,0.000000,0.466078 -464,0.884255,0.000000,0.000000,0.467004 -465,0.883766,0.000000,0.000000,0.467930 -466,0.883275,0.000000,0.000000,0.468855 -467,0.882784,0.000000,0.000000,0.469780 -468,0.882291,0.000000,0.000000,0.470704 -469,0.881798,0.000000,0.000000,0.471628 -470,0.881303,0.000000,0.000000,0.472551 -471,0.880808,0.000000,0.000000,0.473473 -472,0.880312,0.000000,0.000000,0.474396 -473,0.879815,0.000000,0.000000,0.475317 -474,0.879316,0.000000,0.000000,0.476238 -475,0.878817,0.000000,0.000000,0.477159 -476,0.878317,0.000000,0.000000,0.478079 -477,0.877816,0.000000,0.000000,0.478998 -478,0.877314,0.000000,0.000000,0.479917 -479,0.876811,0.000000,0.000000,0.480836 -480,0.876307,0.000000,0.000000,0.481754 -481,0.875802,0.000000,0.000000,0.482671 -482,0.875296,0.000000,0.000000,0.483588 -483,0.874789,0.000000,0.000000,0.484504 -484,0.874281,0.000000,0.000000,0.485420 -485,0.873772,0.000000,0.000000,0.486335 -486,0.873262,0.000000,0.000000,0.487250 -487,0.872752,0.000000,0.000000,0.488164 -488,0.872240,0.000000,0.000000,0.489078 -489,0.871727,0.000000,0.000000,0.489991 -490,0.871214,0.000000,0.000000,0.490904 -491,0.870699,0.000000,0.000000,0.491816 -492,0.870184,0.000000,0.000000,0.492727 -493,0.869667,0.000000,0.000000,0.493638 -494,0.869150,0.000000,0.000000,0.494549 -495,0.868632,0.000000,0.000000,0.495459 -496,0.868112,0.000000,0.000000,0.496368 -497,0.867592,0.000000,0.000000,0.497277 -498,0.867071,0.000000,0.000000,0.498185 -499,0.866549,0.000000,0.000000,0.499093 -500,0.866025,0.000000,0.000000,0.500000 -501,0.865501,0.000000,0.000000,0.500907 -502,0.864976,0.000000,0.000000,0.501813 -503,0.864450,0.000000,0.000000,0.502718 -504,0.863923,0.000000,0.000000,0.503623 -505,0.863396,0.000000,0.000000,0.504528 -506,0.862867,0.000000,0.000000,0.505431 -507,0.862337,0.000000,0.000000,0.506335 -508,0.861806,0.000000,0.000000,0.507238 -509,0.861275,0.000000,0.000000,0.508140 -510,0.860742,0.000000,0.000000,0.509041 -511,0.860208,0.000000,0.000000,0.509943 -512,0.859674,0.000000,0.000000,0.510843 -513,0.859139,0.000000,0.000000,0.511743 -514,0.858602,0.000000,0.000000,0.512642 -515,0.858065,0.000000,0.000000,0.513541 -516,0.857527,0.000000,0.000000,0.514440 -517,0.856987,0.000000,0.000000,0.515337 -518,0.856447,0.000000,0.000000,0.516234 -519,0.855906,0.000000,0.000000,0.517131 -520,0.855364,0.000000,0.000000,0.518027 -521,0.854821,0.000000,0.000000,0.518922 -522,0.854277,0.000000,0.000000,0.519817 -523,0.853733,0.000000,0.000000,0.520712 -524,0.853187,0.000000,0.000000,0.521605 -525,0.852640,0.000000,0.000000,0.522499 -526,0.852093,0.000000,0.000000,0.523391 -527,0.851544,0.000000,0.000000,0.524283 -528,0.850994,0.000000,0.000000,0.525175 -529,0.850444,0.000000,0.000000,0.526066 -530,0.849893,0.000000,0.000000,0.526956 -531,0.849340,0.000000,0.000000,0.527846 -532,0.848787,0.000000,0.000000,0.528735 -533,0.848233,0.000000,0.000000,0.529623 -534,0.847678,0.000000,0.000000,0.530511 -535,0.847122,0.000000,0.000000,0.531399 -536,0.846565,0.000000,0.000000,0.532285 -537,0.846007,0.000000,0.000000,0.533172 -538,0.845448,0.000000,0.000000,0.534057 -539,0.844889,0.000000,0.000000,0.534942 -540,0.844328,0.000000,0.000000,0.535827 -541,0.843766,0.000000,0.000000,0.536711 -542,0.843204,0.000000,0.000000,0.537594 -543,0.842640,0.000000,0.000000,0.538477 -544,0.842076,0.000000,0.000000,0.539359 -545,0.841511,0.000000,0.000000,0.540240 -546,0.840945,0.000000,0.000000,0.541121 -547,0.840377,0.000000,0.000000,0.542002 -548,0.839809,0.000000,0.000000,0.542881 -549,0.839240,0.000000,0.000000,0.543760 -550,0.838671,0.000000,0.000000,0.544639 -551,0.838100,0.000000,0.000000,0.545517 -552,0.837528,0.000000,0.000000,0.546394 -553,0.836955,0.000000,0.000000,0.547271 -554,0.836382,0.000000,0.000000,0.548147 -555,0.835807,0.000000,0.000000,0.549023 -556,0.835232,0.000000,0.000000,0.549898 -557,0.834656,0.000000,0.000000,0.550772 -558,0.834078,0.000000,0.000000,0.551646 -559,0.833500,0.000000,0.000000,0.552519 -560,0.832921,0.000000,0.000000,0.553392 -561,0.832341,0.000000,0.000000,0.554263 -562,0.831760,0.000000,0.000000,0.555135 -563,0.831179,0.000000,0.000000,0.556006 -564,0.830596,0.000000,0.000000,0.556876 -565,0.830012,0.000000,0.000000,0.557745 -566,0.829428,0.000000,0.000000,0.558614 -567,0.828842,0.000000,0.000000,0.559482 -568,0.828256,0.000000,0.000000,0.560350 -569,0.827669,0.000000,0.000000,0.561217 -570,0.827081,0.000000,0.000000,0.562083 -571,0.826492,0.000000,0.000000,0.562949 -572,0.825902,0.000000,0.000000,0.563814 -573,0.825311,0.000000,0.000000,0.564679 -574,0.824719,0.000000,0.000000,0.565543 -575,0.824126,0.000000,0.000000,0.566406 -576,0.823533,0.000000,0.000000,0.567269 -577,0.822938,0.000000,0.000000,0.568131 -578,0.822343,0.000000,0.000000,0.568993 -579,0.821746,0.000000,0.000000,0.569853 -580,0.821149,0.000000,0.000000,0.570714 -581,0.820551,0.000000,0.000000,0.571573 -582,0.819952,0.000000,0.000000,0.572432 -583,0.819352,0.000000,0.000000,0.573290 -584,0.818751,0.000000,0.000000,0.574148 -585,0.818150,0.000000,0.000000,0.575005 -586,0.817547,0.000000,0.000000,0.575862 -587,0.816944,0.000000,0.000000,0.576718 -588,0.816339,0.000000,0.000000,0.577573 -589,0.815734,0.000000,0.000000,0.578427 -590,0.815128,0.000000,0.000000,0.579281 -591,0.814521,0.000000,0.000000,0.580134 -592,0.813913,0.000000,0.000000,0.580987 -593,0.813304,0.000000,0.000000,0.581839 -594,0.812694,0.000000,0.000000,0.582690 -595,0.812084,0.000000,0.000000,0.583541 -596,0.811472,0.000000,0.000000,0.584391 -597,0.810860,0.000000,0.000000,0.585241 -598,0.810246,0.000000,0.000000,0.586090 -599,0.809632,0.000000,0.000000,0.586938 -600,0.809017,0.000000,0.000000,0.587785 -601,0.808401,0.000000,0.000000,0.588632 -602,0.807784,0.000000,0.000000,0.589478 -603,0.807166,0.000000,0.000000,0.590324 -604,0.806548,0.000000,0.000000,0.591169 -605,0.805928,0.000000,0.000000,0.592013 -606,0.805308,0.000000,0.000000,0.592857 -607,0.804687,0.000000,0.000000,0.593700 -608,0.804064,0.000000,0.000000,0.594542 -609,0.803441,0.000000,0.000000,0.595384 -610,0.802817,0.000000,0.000000,0.596225 -611,0.802193,0.000000,0.000000,0.597065 -612,0.801567,0.000000,0.000000,0.597905 -613,0.800940,0.000000,0.000000,0.598744 -614,0.800313,0.000000,0.000000,0.599582 -615,0.799685,0.000000,0.000000,0.600420 -616,0.799055,0.000000,0.000000,0.601257 -617,0.798425,0.000000,0.000000,0.602094 -618,0.797794,0.000000,0.000000,0.602930 -619,0.797163,0.000000,0.000000,0.603765 -620,0.796530,0.000000,0.000000,0.604599 -621,0.795896,0.000000,0.000000,0.605433 -622,0.795262,0.000000,0.000000,0.606266 -623,0.794627,0.000000,0.000000,0.607098 -624,0.793990,0.000000,0.000000,0.607930 -625,0.793353,0.000000,0.000000,0.608761 -626,0.792715,0.000000,0.000000,0.609592 -627,0.792077,0.000000,0.000000,0.610422 -628,0.791437,0.000000,0.000000,0.611251 -629,0.790796,0.000000,0.000000,0.612079 -630,0.790155,0.000000,0.000000,0.612907 -631,0.789513,0.000000,0.000000,0.613734 -632,0.788870,0.000000,0.000000,0.614561 -633,0.788226,0.000000,0.000000,0.615386 -634,0.787581,0.000000,0.000000,0.616211 -635,0.786935,0.000000,0.000000,0.617036 -636,0.786288,0.000000,0.000000,0.617860 -637,0.785641,0.000000,0.000000,0.618683 -638,0.784993,0.000000,0.000000,0.619505 -639,0.784343,0.000000,0.000000,0.620327 -640,0.783693,0.000000,0.000000,0.621148 -641,0.783043,0.000000,0.000000,0.621968 -642,0.782391,0.000000,0.000000,0.622788 -643,0.781738,0.000000,0.000000,0.623607 -644,0.781085,0.000000,0.000000,0.624425 -645,0.780430,0.000000,0.000000,0.625243 -646,0.779775,0.000000,0.000000,0.626060 -647,0.779119,0.000000,0.000000,0.626876 -648,0.778462,0.000000,0.000000,0.627691 -649,0.777805,0.000000,0.000000,0.628506 -650,0.777146,0.000000,0.000000,0.629320 -651,0.776487,0.000000,0.000000,0.630134 -652,0.775826,0.000000,0.000000,0.630947 -653,0.775165,0.000000,0.000000,0.631759 -654,0.774503,0.000000,0.000000,0.632570 -655,0.773840,0.000000,0.000000,0.633381 -656,0.773177,0.000000,0.000000,0.634191 -657,0.772512,0.000000,0.000000,0.635000 -658,0.771847,0.000000,0.000000,0.635809 -659,0.771180,0.000000,0.000000,0.636617 -660,0.770513,0.000000,0.000000,0.637424 -661,0.769845,0.000000,0.000000,0.638231 -662,0.769177,0.000000,0.000000,0.639036 -663,0.768507,0.000000,0.000000,0.639841 -664,0.767836,0.000000,0.000000,0.640646 -665,0.767165,0.000000,0.000000,0.641450 -666,0.766493,0.000000,0.000000,0.642253 -667,0.765820,0.000000,0.000000,0.643055 -668,0.765146,0.000000,0.000000,0.643857 -669,0.764472,0.000000,0.000000,0.644657 -670,0.763796,0.000000,0.000000,0.645458 -671,0.763120,0.000000,0.000000,0.646257 -672,0.762443,0.000000,0.000000,0.647056 -673,0.761764,0.000000,0.000000,0.647854 -674,0.761086,0.000000,0.000000,0.648651 -675,0.760406,0.000000,0.000000,0.649448 -676,0.759725,0.000000,0.000000,0.650244 -677,0.759044,0.000000,0.000000,0.651039 -678,0.758362,0.000000,0.000000,0.651834 -679,0.757679,0.000000,0.000000,0.652628 -680,0.756995,0.000000,0.000000,0.653421 -681,0.756310,0.000000,0.000000,0.654213 -682,0.755625,0.000000,0.000000,0.655005 -683,0.754939,0.000000,0.000000,0.655796 -684,0.754251,0.000000,0.000000,0.656586 -685,0.753563,0.000000,0.000000,0.657375 -686,0.752875,0.000000,0.000000,0.658164 -687,0.752185,0.000000,0.000000,0.658952 -688,0.751494,0.000000,0.000000,0.659739 -689,0.750803,0.000000,0.000000,0.660526 -690,0.750111,0.000000,0.000000,0.661312 -691,0.749418,0.000000,0.000000,0.662097 -692,0.748724,0.000000,0.000000,0.662881 -693,0.748030,0.000000,0.000000,0.663665 -694,0.747334,0.000000,0.000000,0.664448 -695,0.746638,0.000000,0.000000,0.665230 -696,0.745941,0.000000,0.000000,0.666012 -697,0.745243,0.000000,0.000000,0.666793 -698,0.744545,0.000000,0.000000,0.667573 -699,0.743845,0.000000,0.000000,0.668352 -700,0.743145,0.000000,0.000000,0.669131 -701,0.742444,0.000000,0.000000,0.669908 -702,0.741742,0.000000,0.000000,0.670686 -703,0.741039,0.000000,0.000000,0.671462 -704,0.740335,0.000000,0.000000,0.672238 -705,0.739631,0.000000,0.000000,0.673013 -706,0.738926,0.000000,0.000000,0.673787 -707,0.738220,0.000000,0.000000,0.674560 -708,0.737513,0.000000,0.000000,0.675333 -709,0.736806,0.000000,0.000000,0.676105 -710,0.736097,0.000000,0.000000,0.676876 -711,0.735388,0.000000,0.000000,0.677646 -712,0.734678,0.000000,0.000000,0.678416 -713,0.733967,0.000000,0.000000,0.679185 -714,0.733255,0.000000,0.000000,0.679953 -715,0.732543,0.000000,0.000000,0.680721 -716,0.731830,0.000000,0.000000,0.681488 -717,0.731116,0.000000,0.000000,0.682254 -718,0.730401,0.000000,0.000000,0.683019 -719,0.729685,0.000000,0.000000,0.683783 -720,0.728969,0.000000,0.000000,0.684547 -721,0.728251,0.000000,0.000000,0.685310 -722,0.727533,0.000000,0.000000,0.686072 -723,0.726814,0.000000,0.000000,0.686834 -724,0.726095,0.000000,0.000000,0.687595 -725,0.725374,0.000000,0.000000,0.688355 -726,0.724653,0.000000,0.000000,0.689114 -727,0.723931,0.000000,0.000000,0.689872 -728,0.723208,0.000000,0.000000,0.690630 -729,0.722485,0.000000,0.000000,0.691387 -730,0.721760,0.000000,0.000000,0.692143 -731,0.721035,0.000000,0.000000,0.692899 -732,0.720309,0.000000,0.000000,0.693653 -733,0.719582,0.000000,0.000000,0.694407 -734,0.718855,0.000000,0.000000,0.695160 -735,0.718126,0.000000,0.000000,0.695913 -736,0.717397,0.000000,0.000000,0.696664 -737,0.716667,0.000000,0.000000,0.697415 -738,0.715936,0.000000,0.000000,0.698165 -739,0.715205,0.000000,0.000000,0.698915 -740,0.714473,0.000000,0.000000,0.699663 -741,0.713740,0.000000,0.000000,0.700411 -742,0.713006,0.000000,0.000000,0.701158 -743,0.712271,0.000000,0.000000,0.701904 -744,0.711536,0.000000,0.000000,0.702650 -745,0.710799,0.000000,0.000000,0.703395 -746,0.710062,0.000000,0.000000,0.704139 -747,0.709325,0.000000,0.000000,0.704882 -748,0.708586,0.000000,0.000000,0.705624 -749,0.707847,0.000000,0.000000,0.706366 -750,0.707107,0.000000,0.000000,0.707107 -751,0.706366,0.000000,0.000000,0.707847 -752,0.705624,0.000000,0.000000,0.708586 -753,0.704882,0.000000,0.000000,0.709325 -754,0.704139,0.000000,0.000000,0.710062 -755,0.703395,0.000000,0.000000,0.710799 -756,0.702650,0.000000,0.000000,0.711536 -757,0.701904,0.000000,0.000000,0.712271 -758,0.701158,0.000000,0.000000,0.713006 -759,0.700411,0.000000,0.000000,0.713740 -760,0.699663,0.000000,0.000000,0.714473 -761,0.698915,0.000000,0.000000,0.715205 -762,0.698165,0.000000,0.000000,0.715936 -763,0.697415,0.000000,0.000000,0.716667 -764,0.696664,0.000000,0.000000,0.717397 -765,0.695913,0.000000,0.000000,0.718126 -766,0.695160,0.000000,0.000000,0.718855 -767,0.694407,0.000000,0.000000,0.719582 -768,0.693653,0.000000,0.000000,0.720309 -769,0.692899,0.000000,0.000000,0.721035 -770,0.692143,0.000000,0.000000,0.721760 -771,0.691387,0.000000,0.000000,0.722485 -772,0.690630,0.000000,0.000000,0.723208 -773,0.689872,0.000000,0.000000,0.723931 -774,0.689114,0.000000,0.000000,0.724653 -775,0.688355,0.000000,0.000000,0.725374 -776,0.687595,0.000000,0.000000,0.726095 -777,0.686834,0.000000,0.000000,0.726814 -778,0.686072,0.000000,0.000000,0.727533 -779,0.685310,0.000000,0.000000,0.728251 -780,0.684547,0.000000,0.000000,0.728969 -781,0.683783,0.000000,0.000000,0.729685 -782,0.683019,0.000000,0.000000,0.730401 -783,0.682254,0.000000,0.000000,0.731116 -784,0.681488,0.000000,0.000000,0.731830 -785,0.680721,0.000000,0.000000,0.732543 -786,0.679953,0.000000,0.000000,0.733255 -787,0.679185,0.000000,0.000000,0.733967 -788,0.678416,0.000000,0.000000,0.734678 -789,0.677646,0.000000,0.000000,0.735388 -790,0.676876,0.000000,0.000000,0.736097 -791,0.676105,0.000000,0.000000,0.736806 -792,0.675333,0.000000,0.000000,0.737513 -793,0.674560,0.000000,0.000000,0.738220 -794,0.673787,0.000000,0.000000,0.738926 -795,0.673013,0.000000,0.000000,0.739631 -796,0.672238,0.000000,0.000000,0.740335 -797,0.671462,0.000000,0.000000,0.741039 -798,0.670686,0.000000,0.000000,0.741742 -799,0.669908,0.000000,0.000000,0.742444 -800,0.669131,0.000000,0.000000,0.743145 -801,0.668352,0.000000,0.000000,0.743845 -802,0.667573,0.000000,0.000000,0.744545 -803,0.666793,0.000000,0.000000,0.745243 -804,0.666012,0.000000,0.000000,0.745941 -805,0.665230,0.000000,0.000000,0.746638 -806,0.664448,0.000000,0.000000,0.747334 -807,0.663665,0.000000,0.000000,0.748030 -808,0.662881,0.000000,0.000000,0.748724 -809,0.662097,0.000000,0.000000,0.749418 -810,0.661312,0.000000,0.000000,0.750111 -811,0.660526,0.000000,0.000000,0.750803 -812,0.659739,0.000000,0.000000,0.751494 -813,0.658952,0.000000,0.000000,0.752185 -814,0.658164,0.000000,0.000000,0.752875 -815,0.657375,0.000000,0.000000,0.753563 -816,0.656586,0.000000,0.000000,0.754251 -817,0.655796,0.000000,0.000000,0.754939 -818,0.655005,0.000000,0.000000,0.755625 -819,0.654213,0.000000,0.000000,0.756310 -820,0.653421,0.000000,0.000000,0.756995 -821,0.652628,0.000000,0.000000,0.757679 -822,0.651834,0.000000,0.000000,0.758362 -823,0.651039,0.000000,0.000000,0.759044 -824,0.650244,0.000000,0.000000,0.759725 -825,0.649448,0.000000,0.000000,0.760406 -826,0.648651,0.000000,0.000000,0.761086 -827,0.647854,0.000000,0.000000,0.761764 -828,0.647056,0.000000,0.000000,0.762443 -829,0.646257,0.000000,0.000000,0.763120 -830,0.645458,0.000000,0.000000,0.763796 -831,0.644657,0.000000,0.000000,0.764472 -832,0.643857,0.000000,0.000000,0.765146 -833,0.643055,0.000000,0.000000,0.765820 -834,0.642253,0.000000,0.000000,0.766493 -835,0.641450,0.000000,0.000000,0.767165 -836,0.640646,0.000000,0.000000,0.767836 -837,0.639841,0.000000,0.000000,0.768507 -838,0.639036,0.000000,0.000000,0.769177 -839,0.638231,0.000000,0.000000,0.769845 -840,0.637424,0.000000,0.000000,0.770513 -841,0.636617,0.000000,0.000000,0.771180 -842,0.635809,0.000000,0.000000,0.771847 -843,0.635000,0.000000,0.000000,0.772512 -844,0.634191,0.000000,0.000000,0.773177 -845,0.633381,0.000000,0.000000,0.773840 -846,0.632570,0.000000,0.000000,0.774503 -847,0.631759,0.000000,0.000000,0.775165 -848,0.630947,0.000000,0.000000,0.775826 -849,0.630134,0.000000,0.000000,0.776487 -850,0.629320,0.000000,0.000000,0.777146 -851,0.628506,0.000000,0.000000,0.777805 -852,0.627691,0.000000,0.000000,0.778462 -853,0.626876,0.000000,0.000000,0.779119 -854,0.626060,0.000000,0.000000,0.779775 -855,0.625243,0.000000,0.000000,0.780430 -856,0.624425,0.000000,0.000000,0.781085 -857,0.623607,0.000000,0.000000,0.781738 -858,0.622788,0.000000,0.000000,0.782391 -859,0.621968,0.000000,0.000000,0.783043 -860,0.621148,0.000000,0.000000,0.783693 -861,0.620327,0.000000,0.000000,0.784343 -862,0.619505,0.000000,0.000000,0.784993 -863,0.618683,0.000000,0.000000,0.785641 -864,0.617860,0.000000,0.000000,0.786288 -865,0.617036,0.000000,0.000000,0.786935 -866,0.616211,0.000000,0.000000,0.787581 -867,0.615386,0.000000,0.000000,0.788226 -868,0.614561,0.000000,0.000000,0.788870 -869,0.613734,0.000000,0.000000,0.789513 -870,0.612907,0.000000,0.000000,0.790155 -871,0.612079,0.000000,0.000000,0.790796 -872,0.611251,0.000000,0.000000,0.791437 -873,0.610422,0.000000,0.000000,0.792077 -874,0.609592,0.000000,0.000000,0.792715 -875,0.608761,0.000000,0.000000,0.793353 -876,0.607930,0.000000,0.000000,0.793990 -877,0.607098,0.000000,0.000000,0.794627 -878,0.606266,0.000000,0.000000,0.795262 -879,0.605433,0.000000,0.000000,0.795896 -880,0.604599,0.000000,0.000000,0.796530 -881,0.603765,0.000000,0.000000,0.797163 -882,0.602930,0.000000,0.000000,0.797794 -883,0.602094,0.000000,0.000000,0.798425 -884,0.601257,0.000000,0.000000,0.799055 -885,0.600420,0.000000,0.000000,0.799685 -886,0.599582,0.000000,0.000000,0.800313 -887,0.598744,0.000000,0.000000,0.800940 -888,0.597905,0.000000,0.000000,0.801567 -889,0.597065,0.000000,0.000000,0.802193 -890,0.596225,0.000000,0.000000,0.802817 -891,0.595384,0.000000,0.000000,0.803441 -892,0.594542,0.000000,0.000000,0.804064 -893,0.593700,0.000000,0.000000,0.804687 -894,0.592857,0.000000,0.000000,0.805308 -895,0.592013,0.000000,0.000000,0.805928 -896,0.591169,0.000000,0.000000,0.806548 -897,0.590324,0.000000,0.000000,0.807166 -898,0.589478,0.000000,0.000000,0.807784 -899,0.588632,0.000000,0.000000,0.808401 -900,0.587785,0.000000,0.000000,0.809017 -901,0.586938,0.000000,0.000000,0.809632 -902,0.586090,0.000000,0.000000,0.810246 -903,0.585241,0.000000,0.000000,0.810860 -904,0.584391,0.000000,0.000000,0.811472 -905,0.583541,0.000000,0.000000,0.812084 -906,0.582690,0.000000,0.000000,0.812694 -907,0.581839,0.000000,0.000000,0.813304 -908,0.580987,0.000000,0.000000,0.813913 -909,0.580134,0.000000,0.000000,0.814521 -910,0.579281,0.000000,0.000000,0.815128 -911,0.578427,0.000000,0.000000,0.815734 -912,0.577573,0.000000,0.000000,0.816339 -913,0.576718,0.000000,0.000000,0.816944 -914,0.575862,0.000000,0.000000,0.817547 -915,0.575005,0.000000,0.000000,0.818150 -916,0.574148,0.000000,0.000000,0.818751 -917,0.573290,0.000000,0.000000,0.819352 -918,0.572432,0.000000,0.000000,0.819952 -919,0.571573,0.000000,0.000000,0.820551 -920,0.570714,0.000000,0.000000,0.821149 -921,0.569853,0.000000,0.000000,0.821746 -922,0.568993,0.000000,0.000000,0.822343 -923,0.568131,0.000000,0.000000,0.822938 -924,0.567269,0.000000,0.000000,0.823533 -925,0.566406,0.000000,0.000000,0.824126 -926,0.565543,0.000000,0.000000,0.824719 -927,0.564679,0.000000,0.000000,0.825311 -928,0.563814,0.000000,0.000000,0.825902 -929,0.562949,0.000000,0.000000,0.826492 -930,0.562083,0.000000,0.000000,0.827081 -931,0.561217,0.000000,0.000000,0.827669 -932,0.560350,0.000000,0.000000,0.828256 -933,0.559482,0.000000,0.000000,0.828842 -934,0.558614,0.000000,0.000000,0.829428 -935,0.557745,0.000000,0.000000,0.830012 -936,0.556876,0.000000,0.000000,0.830596 -937,0.556006,0.000000,0.000000,0.831179 -938,0.555135,0.000000,0.000000,0.831760 -939,0.554263,0.000000,0.000000,0.832341 -940,0.553392,0.000000,0.000000,0.832921 -941,0.552519,0.000000,0.000000,0.833500 -942,0.551646,0.000000,0.000000,0.834078 -943,0.550772,0.000000,0.000000,0.834656 -944,0.549898,0.000000,0.000000,0.835232 -945,0.549023,0.000000,0.000000,0.835807 -946,0.548147,0.000000,0.000000,0.836382 -947,0.547271,0.000000,0.000000,0.836955 -948,0.546394,0.000000,0.000000,0.837528 -949,0.545517,0.000000,0.000000,0.838100 -950,0.544639,0.000000,0.000000,0.838671 -951,0.543760,0.000000,0.000000,0.839240 -952,0.542881,0.000000,0.000000,0.839809 -953,0.542002,0.000000,0.000000,0.840377 -954,0.541121,0.000000,0.000000,0.840945 -955,0.540240,0.000000,0.000000,0.841511 -956,0.539359,0.000000,0.000000,0.842076 -957,0.538477,0.000000,0.000000,0.842640 -958,0.537594,0.000000,0.000000,0.843204 -959,0.536711,0.000000,0.000000,0.843766 -960,0.535827,0.000000,0.000000,0.844328 -961,0.534942,0.000000,0.000000,0.844889 -962,0.534057,0.000000,0.000000,0.845448 -963,0.533172,0.000000,0.000000,0.846007 -964,0.532285,0.000000,0.000000,0.846565 -965,0.531399,0.000000,0.000000,0.847122 -966,0.530511,0.000000,0.000000,0.847678 -967,0.529623,0.000000,0.000000,0.848233 -968,0.528735,0.000000,0.000000,0.848787 -969,0.527846,0.000000,0.000000,0.849340 -970,0.526956,0.000000,0.000000,0.849893 -971,0.526066,0.000000,0.000000,0.850444 -972,0.525175,0.000000,0.000000,0.850994 -973,0.524283,0.000000,0.000000,0.851544 -974,0.523391,0.000000,0.000000,0.852093 -975,0.522499,0.000000,0.000000,0.852640 -976,0.521605,0.000000,0.000000,0.853187 -977,0.520712,0.000000,0.000000,0.853733 -978,0.519817,0.000000,0.000000,0.854277 -979,0.518922,0.000000,0.000000,0.854821 -980,0.518027,0.000000,0.000000,0.855364 -981,0.517131,0.000000,0.000000,0.855906 -982,0.516234,0.000000,0.000000,0.856447 -983,0.515337,0.000000,0.000000,0.856987 -984,0.514440,0.000000,0.000000,0.857527 -985,0.513541,0.000000,0.000000,0.858065 -986,0.512642,0.000000,0.000000,0.858602 -987,0.511743,0.000000,0.000000,0.859139 -988,0.510843,0.000000,0.000000,0.859674 -989,0.509943,0.000000,0.000000,0.860208 -990,0.509041,0.000000,0.000000,0.860742 -991,0.508140,0.000000,0.000000,0.861275 -992,0.507238,0.000000,0.000000,0.861806 -993,0.506335,0.000000,0.000000,0.862337 -994,0.505431,0.000000,0.000000,0.862867 -995,0.504528,0.000000,0.000000,0.863396 -996,0.503623,0.000000,0.000000,0.863923 -997,0.502718,0.000000,0.000000,0.864450 -998,0.501813,0.000000,0.000000,0.864976 -999,0.500907,0.000000,0.000000,0.865501 -1000,0.500000,0.000000,0.000000,0.866025 -1001,0.499093,0.000000,0.000000,0.866549 -1002,0.498185,0.000000,0.000000,0.867071 -1003,0.497277,0.000000,0.000000,0.867592 -1004,0.496368,0.000000,0.000000,0.868112 -1005,0.495459,0.000000,0.000000,0.868632 -1006,0.494549,0.000000,0.000000,0.869150 -1007,0.493638,0.000000,0.000000,0.869667 -1008,0.492727,0.000000,0.000000,0.870184 -1009,0.491816,0.000000,0.000000,0.870699 -1010,0.490904,0.000000,0.000000,0.871214 -1011,0.489991,0.000000,0.000000,0.871727 -1012,0.489078,0.000000,0.000000,0.872240 -1013,0.488164,0.000000,0.000000,0.872752 -1014,0.487250,0.000000,0.000000,0.873262 -1015,0.486335,0.000000,0.000000,0.873772 -1016,0.485420,0.000000,0.000000,0.874281 -1017,0.484504,0.000000,0.000000,0.874789 -1018,0.483588,0.000000,0.000000,0.875296 -1019,0.482671,0.000000,0.000000,0.875802 -1020,0.481754,0.000000,0.000000,0.876307 -1021,0.480836,0.000000,0.000000,0.876811 -1022,0.479917,0.000000,0.000000,0.877314 -1023,0.478998,0.000000,0.000000,0.877816 -1024,0.478079,0.000000,0.000000,0.878317 -1025,0.477159,0.000000,0.000000,0.878817 -1026,0.476238,0.000000,0.000000,0.879316 -1027,0.475317,0.000000,0.000000,0.879815 -1028,0.474396,0.000000,0.000000,0.880312 -1029,0.473473,0.000000,0.000000,0.880808 -1030,0.472551,0.000000,0.000000,0.881303 -1031,0.471628,0.000000,0.000000,0.881798 -1032,0.470704,0.000000,0.000000,0.882291 -1033,0.469780,0.000000,0.000000,0.882784 -1034,0.468855,0.000000,0.000000,0.883275 -1035,0.467930,0.000000,0.000000,0.883766 -1036,0.467004,0.000000,0.000000,0.884255 -1037,0.466078,0.000000,0.000000,0.884744 -1038,0.465151,0.000000,0.000000,0.885231 -1039,0.464224,0.000000,0.000000,0.885718 -1040,0.463296,0.000000,0.000000,0.886204 -1041,0.462368,0.000000,0.000000,0.886688 -1042,0.461439,0.000000,0.000000,0.887172 -1043,0.460510,0.000000,0.000000,0.887655 -1044,0.459580,0.000000,0.000000,0.888136 -1045,0.458650,0.000000,0.000000,0.888617 -1046,0.457719,0.000000,0.000000,0.889097 -1047,0.456787,0.000000,0.000000,0.889576 -1048,0.455856,0.000000,0.000000,0.890054 -1049,0.454923,0.000000,0.000000,0.890531 -1050,0.453990,0.000000,0.000000,0.891007 -1051,0.453057,0.000000,0.000000,0.891481 -1052,0.452123,0.000000,0.000000,0.891955 -1053,0.451189,0.000000,0.000000,0.892428 -1054,0.450254,0.000000,0.000000,0.892900 -1055,0.449319,0.000000,0.000000,0.893371 -1056,0.448383,0.000000,0.000000,0.893841 -1057,0.447447,0.000000,0.000000,0.894310 -1058,0.446510,0.000000,0.000000,0.894779 -1059,0.445573,0.000000,0.000000,0.895246 -1060,0.444635,0.000000,0.000000,0.895712 -1061,0.443697,0.000000,0.000000,0.896177 -1062,0.442758,0.000000,0.000000,0.896641 -1063,0.441819,0.000000,0.000000,0.897104 -1064,0.440879,0.000000,0.000000,0.897566 -1065,0.439939,0.000000,0.000000,0.898028 -1066,0.438999,0.000000,0.000000,0.898488 -1067,0.438057,0.000000,0.000000,0.898947 -1068,0.437116,0.000000,0.000000,0.899405 -1069,0.436174,0.000000,0.000000,0.899863 -1070,0.435231,0.000000,0.000000,0.900319 -1071,0.434288,0.000000,0.000000,0.900774 -1072,0.433345,0.000000,0.000000,0.901228 -1073,0.432401,0.000000,0.000000,0.901682 -1074,0.431456,0.000000,0.000000,0.902134 -1075,0.430511,0.000000,0.000000,0.902585 -1076,0.429566,0.000000,0.000000,0.903036 -1077,0.428620,0.000000,0.000000,0.903485 -1078,0.427673,0.000000,0.000000,0.903933 -1079,0.426727,0.000000,0.000000,0.904381 -1080,0.425779,0.000000,0.000000,0.904827 -1081,0.424832,0.000000,0.000000,0.905272 -1082,0.423883,0.000000,0.000000,0.905717 -1083,0.422935,0.000000,0.000000,0.906160 -1084,0.421985,0.000000,0.000000,0.906603 -1085,0.421036,0.000000,0.000000,0.907044 -1086,0.420086,0.000000,0.000000,0.907484 -1087,0.419135,0.000000,0.000000,0.907924 -1088,0.418184,0.000000,0.000000,0.908362 -1089,0.417233,0.000000,0.000000,0.908800 -1090,0.416281,0.000000,0.000000,0.909236 -1091,0.415328,0.000000,0.000000,0.909672 -1092,0.414376,0.000000,0.000000,0.910106 -1093,0.413422,0.000000,0.000000,0.910539 -1094,0.412469,0.000000,0.000000,0.910972 -1095,0.411514,0.000000,0.000000,0.911403 -1096,0.410560,0.000000,0.000000,0.911834 -1097,0.409605,0.000000,0.000000,0.912263 -1098,0.408649,0.000000,0.000000,0.912692 -1099,0.407693,0.000000,0.000000,0.913119 -1100,0.406737,0.000000,0.000000,0.913545 -1101,0.405780,0.000000,0.000000,0.913971 -1102,0.404822,0.000000,0.000000,0.914395 -1103,0.403865,0.000000,0.000000,0.914819 -1104,0.402906,0.000000,0.000000,0.915241 -1105,0.401948,0.000000,0.000000,0.915663 -1106,0.400989,0.000000,0.000000,0.916083 -1107,0.400029,0.000000,0.000000,0.916502 -1108,0.399069,0.000000,0.000000,0.916921 -1109,0.398109,0.000000,0.000000,0.917338 -1110,0.397148,0.000000,0.000000,0.917755 -1111,0.396187,0.000000,0.000000,0.918170 -1112,0.395225,0.000000,0.000000,0.918584 -1113,0.394263,0.000000,0.000000,0.918998 -1114,0.393300,0.000000,0.000000,0.919410 -1115,0.392337,0.000000,0.000000,0.919821 -1116,0.391374,0.000000,0.000000,0.920232 -1117,0.390410,0.000000,0.000000,0.920641 -1118,0.389445,0.000000,0.000000,0.921050 -1119,0.388481,0.000000,0.000000,0.921457 -1120,0.387516,0.000000,0.000000,0.921863 -1121,0.386550,0.000000,0.000000,0.922268 -1122,0.385584,0.000000,0.000000,0.922673 -1123,0.384618,0.000000,0.000000,0.923076 -1124,0.383651,0.000000,0.000000,0.923478 -1125,0.382683,0.000000,0.000000,0.923880 -1126,0.381716,0.000000,0.000000,0.924280 -1127,0.380748,0.000000,0.000000,0.924679 -1128,0.379779,0.000000,0.000000,0.925077 -1129,0.378810,0.000000,0.000000,0.925474 -1130,0.377841,0.000000,0.000000,0.925871 -1131,0.376871,0.000000,0.000000,0.926266 -1132,0.375901,0.000000,0.000000,0.926660 -1133,0.374930,0.000000,0.000000,0.927053 -1134,0.373959,0.000000,0.000000,0.927445 -1135,0.372988,0.000000,0.000000,0.927836 -1136,0.372016,0.000000,0.000000,0.928226 -1137,0.371044,0.000000,0.000000,0.928615 -1138,0.370071,0.000000,0.000000,0.929003 -1139,0.369098,0.000000,0.000000,0.929390 -1140,0.368125,0.000000,0.000000,0.929776 -1141,0.367151,0.000000,0.000000,0.930161 -1142,0.366176,0.000000,0.000000,0.930545 -1143,0.365202,0.000000,0.000000,0.930928 -1144,0.364227,0.000000,0.000000,0.931310 -1145,0.363251,0.000000,0.000000,0.931691 -1146,0.362275,0.000000,0.000000,0.932071 -1147,0.361299,0.000000,0.000000,0.932450 -1148,0.360322,0.000000,0.000000,0.932828 -1149,0.359345,0.000000,0.000000,0.933205 -1150,0.358368,0.000000,0.000000,0.933580 -1151,0.357390,0.000000,0.000000,0.933955 -1152,0.356412,0.000000,0.000000,0.934329 -1153,0.355433,0.000000,0.000000,0.934702 -1154,0.354454,0.000000,0.000000,0.935073 -1155,0.353475,0.000000,0.000000,0.935444 -1156,0.352495,0.000000,0.000000,0.935814 -1157,0.351515,0.000000,0.000000,0.936182 -1158,0.350534,0.000000,0.000000,0.936550 -1159,0.349553,0.000000,0.000000,0.936916 -1160,0.348572,0.000000,0.000000,0.937282 -1161,0.347590,0.000000,0.000000,0.937646 -1162,0.346608,0.000000,0.000000,0.938010 -1163,0.345626,0.000000,0.000000,0.938372 -1164,0.344643,0.000000,0.000000,0.938734 -1165,0.343660,0.000000,0.000000,0.939094 -1166,0.342676,0.000000,0.000000,0.939454 -1167,0.341692,0.000000,0.000000,0.939812 -1168,0.340708,0.000000,0.000000,0.940169 -1169,0.339723,0.000000,0.000000,0.940526 -1170,0.338738,0.000000,0.000000,0.940881 -1171,0.337752,0.000000,0.000000,0.941235 -1172,0.336767,0.000000,0.000000,0.941588 -1173,0.335780,0.000000,0.000000,0.941940 -1174,0.334794,0.000000,0.000000,0.942291 -1175,0.333807,0.000000,0.000000,0.942641 -1176,0.332820,0.000000,0.000000,0.942991 -1177,0.331832,0.000000,0.000000,0.943339 -1178,0.330844,0.000000,0.000000,0.943686 -1179,0.329855,0.000000,0.000000,0.944031 -1180,0.328867,0.000000,0.000000,0.944376 -1181,0.327878,0.000000,0.000000,0.944720 -1182,0.326888,0.000000,0.000000,0.945063 -1183,0.325898,0.000000,0.000000,0.945405 -1184,0.324908,0.000000,0.000000,0.945746 -1185,0.323917,0.000000,0.000000,0.946085 -1186,0.322927,0.000000,0.000000,0.946424 -1187,0.321935,0.000000,0.000000,0.946762 -1188,0.320944,0.000000,0.000000,0.947098 -1189,0.319952,0.000000,0.000000,0.947434 -1190,0.318959,0.000000,0.000000,0.947768 -1191,0.317967,0.000000,0.000000,0.948102 -1192,0.316974,0.000000,0.000000,0.948434 -1193,0.315980,0.000000,0.000000,0.948766 -1194,0.314987,0.000000,0.000000,0.949096 -1195,0.313992,0.000000,0.000000,0.949425 -1196,0.312998,0.000000,0.000000,0.949754 -1197,0.312003,0.000000,0.000000,0.950081 -1198,0.311008,0.000000,0.000000,0.950407 -1199,0.310013,0.000000,0.000000,0.950732 -1200,0.309017,0.000000,0.000000,0.951057 -1201,0.308021,0.000000,0.000000,0.951380 -1202,0.307024,0.000000,0.000000,0.951702 -1203,0.306028,0.000000,0.000000,0.952023 -1204,0.305031,0.000000,0.000000,0.952343 -1205,0.304033,0.000000,0.000000,0.952661 -1206,0.303035,0.000000,0.000000,0.952979 -1207,0.302037,0.000000,0.000000,0.953296 -1208,0.301039,0.000000,0.000000,0.953612 -1209,0.300040,0.000000,0.000000,0.953927 -1210,0.299041,0.000000,0.000000,0.954240 -1211,0.298041,0.000000,0.000000,0.954553 -1212,0.297042,0.000000,0.000000,0.954865 -1213,0.296041,0.000000,0.000000,0.955175 -1214,0.295041,0.000000,0.000000,0.955485 -1215,0.294040,0.000000,0.000000,0.955793 -1216,0.293039,0.000000,0.000000,0.956100 -1217,0.292038,0.000000,0.000000,0.956407 -1218,0.291036,0.000000,0.000000,0.956712 -1219,0.290034,0.000000,0.000000,0.957016 -1220,0.289032,0.000000,0.000000,0.957319 -1221,0.288029,0.000000,0.000000,0.957622 -1222,0.287026,0.000000,0.000000,0.957923 -1223,0.286023,0.000000,0.000000,0.958223 -1224,0.285019,0.000000,0.000000,0.958522 -1225,0.284015,0.000000,0.000000,0.958820 -1226,0.283011,0.000000,0.000000,0.959117 -1227,0.282007,0.000000,0.000000,0.959412 -1228,0.281002,0.000000,0.000000,0.959707 -1229,0.279997,0.000000,0.000000,0.960001 -1230,0.278991,0.000000,0.000000,0.960294 -1231,0.277985,0.000000,0.000000,0.960585 -1232,0.276979,0.000000,0.000000,0.960876 -1233,0.275973,0.000000,0.000000,0.961165 -1234,0.274966,0.000000,0.000000,0.961454 -1235,0.273959,0.000000,0.000000,0.961741 -1236,0.272952,0.000000,0.000000,0.962028 -1237,0.271944,0.000000,0.000000,0.962313 -1238,0.270936,0.000000,0.000000,0.962597 -1239,0.269928,0.000000,0.000000,0.962880 -1240,0.268920,0.000000,0.000000,0.963163 -1241,0.267911,0.000000,0.000000,0.963444 -1242,0.266902,0.000000,0.000000,0.963724 -1243,0.265893,0.000000,0.000000,0.964003 -1244,0.264883,0.000000,0.000000,0.964281 -1245,0.263873,0.000000,0.000000,0.964557 -1246,0.262863,0.000000,0.000000,0.964833 -1247,0.261852,0.000000,0.000000,0.965108 -1248,0.260842,0.000000,0.000000,0.965382 -1249,0.259830,0.000000,0.000000,0.965654 -1250,0.258819,0.000000,0.000000,0.965926 -1251,0.257807,0.000000,0.000000,0.966196 -1252,0.256795,0.000000,0.000000,0.966466 -1253,0.255783,0.000000,0.000000,0.966734 -1254,0.254771,0.000000,0.000000,0.967001 -1255,0.253758,0.000000,0.000000,0.967268 -1256,0.252745,0.000000,0.000000,0.967533 -1257,0.251732,0.000000,0.000000,0.967797 -1258,0.250718,0.000000,0.000000,0.968060 -1259,0.249704,0.000000,0.000000,0.968322 -1260,0.248690,0.000000,0.000000,0.968583 -1261,0.247675,0.000000,0.000000,0.968843 -1262,0.246661,0.000000,0.000000,0.969102 -1263,0.245646,0.000000,0.000000,0.969360 -1264,0.244631,0.000000,0.000000,0.969616 -1265,0.243615,0.000000,0.000000,0.969872 -1266,0.242599,0.000000,0.000000,0.970127 -1267,0.241583,0.000000,0.000000,0.970380 -1268,0.240567,0.000000,0.000000,0.970633 -1269,0.239550,0.000000,0.000000,0.970884 -1270,0.238533,0.000000,0.000000,0.971134 -1271,0.237516,0.000000,0.000000,0.971384 -1272,0.236499,0.000000,0.000000,0.971632 -1273,0.235481,0.000000,0.000000,0.971879 -1274,0.234463,0.000000,0.000000,0.972125 -1275,0.233445,0.000000,0.000000,0.972370 -1276,0.232427,0.000000,0.000000,0.972614 -1277,0.231408,0.000000,0.000000,0.972857 -1278,0.230389,0.000000,0.000000,0.973099 -1279,0.229370,0.000000,0.000000,0.973339 -1280,0.228351,0.000000,0.000000,0.973579 -1281,0.227331,0.000000,0.000000,0.973817 -1282,0.226311,0.000000,0.000000,0.974055 -1283,0.225291,0.000000,0.000000,0.974291 -1284,0.224271,0.000000,0.000000,0.974527 -1285,0.223250,0.000000,0.000000,0.974761 -1286,0.222229,0.000000,0.000000,0.974994 -1287,0.221208,0.000000,0.000000,0.975227 -1288,0.220187,0.000000,0.000000,0.975458 -1289,0.219165,0.000000,0.000000,0.975688 -1290,0.218143,0.000000,0.000000,0.975917 -1291,0.217121,0.000000,0.000000,0.976145 -1292,0.216099,0.000000,0.000000,0.976371 -1293,0.215076,0.000000,0.000000,0.976597 -1294,0.214053,0.000000,0.000000,0.976822 -1295,0.213030,0.000000,0.000000,0.977046 -1296,0.212007,0.000000,0.000000,0.977268 -1297,0.210984,0.000000,0.000000,0.977490 -1298,0.209960,0.000000,0.000000,0.977710 -1299,0.208936,0.000000,0.000000,0.977929 -1300,0.207912,0.000000,0.000000,0.978148 -1301,0.206887,0.000000,0.000000,0.978365 -1302,0.205863,0.000000,0.000000,0.978581 -1303,0.204838,0.000000,0.000000,0.978796 -1304,0.203813,0.000000,0.000000,0.979010 -1305,0.202787,0.000000,0.000000,0.979223 -1306,0.201762,0.000000,0.000000,0.979435 -1307,0.200736,0.000000,0.000000,0.979645 -1308,0.199710,0.000000,0.000000,0.979855 -1309,0.198684,0.000000,0.000000,0.980064 -1310,0.197657,0.000000,0.000000,0.980271 -1311,0.196631,0.000000,0.000000,0.980478 -1312,0.195604,0.000000,0.000000,0.980683 -1313,0.194577,0.000000,0.000000,0.980887 -1314,0.193549,0.000000,0.000000,0.981091 -1315,0.192522,0.000000,0.000000,0.981293 -1316,0.191494,0.000000,0.000000,0.981494 -1317,0.190466,0.000000,0.000000,0.981694 -1318,0.189438,0.000000,0.000000,0.981893 -1319,0.188410,0.000000,0.000000,0.982090 -1320,0.187381,0.000000,0.000000,0.982287 -1321,0.186353,0.000000,0.000000,0.982483 -1322,0.185324,0.000000,0.000000,0.982678 -1323,0.184294,0.000000,0.000000,0.982871 -1324,0.183265,0.000000,0.000000,0.983064 -1325,0.182236,0.000000,0.000000,0.983255 -1326,0.181206,0.000000,0.000000,0.983445 -1327,0.180176,0.000000,0.000000,0.983634 -1328,0.179146,0.000000,0.000000,0.983823 -1329,0.178115,0.000000,0.000000,0.984010 -1330,0.177085,0.000000,0.000000,0.984196 -1331,0.176054,0.000000,0.000000,0.984381 -1332,0.175023,0.000000,0.000000,0.984564 -1333,0.173992,0.000000,0.000000,0.984747 -1334,0.172961,0.000000,0.000000,0.984929 -1335,0.171929,0.000000,0.000000,0.985109 -1336,0.170897,0.000000,0.000000,0.985289 -1337,0.169866,0.000000,0.000000,0.985467 -1338,0.168833,0.000000,0.000000,0.985645 -1339,0.167801,0.000000,0.000000,0.985821 -1340,0.166769,0.000000,0.000000,0.985996 -1341,0.165736,0.000000,0.000000,0.986170 -1342,0.164703,0.000000,0.000000,0.986343 -1343,0.163670,0.000000,0.000000,0.986515 -1344,0.162637,0.000000,0.000000,0.986686 -1345,0.161604,0.000000,0.000000,0.986856 -1346,0.160570,0.000000,0.000000,0.987024 -1347,0.159537,0.000000,0.000000,0.987192 -1348,0.158503,0.000000,0.000000,0.987359 -1349,0.157469,0.000000,0.000000,0.987524 -1350,0.156434,0.000000,0.000000,0.987688 -1351,0.155400,0.000000,0.000000,0.987852 -1352,0.154366,0.000000,0.000000,0.988014 -1353,0.153331,0.000000,0.000000,0.988175 -1354,0.152296,0.000000,0.000000,0.988335 -1355,0.151261,0.000000,0.000000,0.988494 -1356,0.150226,0.000000,0.000000,0.988652 -1357,0.149190,0.000000,0.000000,0.988809 -1358,0.148155,0.000000,0.000000,0.988964 -1359,0.147119,0.000000,0.000000,0.989119 -1360,0.146083,0.000000,0.000000,0.989272 -1361,0.145047,0.000000,0.000000,0.989425 -1362,0.144011,0.000000,0.000000,0.989576 -1363,0.142974,0.000000,0.000000,0.989726 -1364,0.141938,0.000000,0.000000,0.989876 -1365,0.140901,0.000000,0.000000,0.990024 -1366,0.139864,0.000000,0.000000,0.990171 -1367,0.138827,0.000000,0.000000,0.990317 -1368,0.137790,0.000000,0.000000,0.990461 -1369,0.136753,0.000000,0.000000,0.990605 -1370,0.135716,0.000000,0.000000,0.990748 -1371,0.134678,0.000000,0.000000,0.990889 -1372,0.133640,0.000000,0.000000,0.991030 -1373,0.132602,0.000000,0.000000,0.991169 -1374,0.131564,0.000000,0.000000,0.991308 -1375,0.130526,0.000000,0.000000,0.991445 -1376,0.129488,0.000000,0.000000,0.991581 -1377,0.128449,0.000000,0.000000,0.991716 -1378,0.127411,0.000000,0.000000,0.991850 -1379,0.126372,0.000000,0.000000,0.991983 -1380,0.125333,0.000000,0.000000,0.992115 -1381,0.124294,0.000000,0.000000,0.992245 -1382,0.123255,0.000000,0.000000,0.992375 -1383,0.122216,0.000000,0.000000,0.992504 -1384,0.121176,0.000000,0.000000,0.992631 -1385,0.120137,0.000000,0.000000,0.992757 -1386,0.119097,0.000000,0.000000,0.992883 -1387,0.118057,0.000000,0.000000,0.993007 -1388,0.117017,0.000000,0.000000,0.993130 -1389,0.115977,0.000000,0.000000,0.993252 -1390,0.114937,0.000000,0.000000,0.993373 -1391,0.113897,0.000000,0.000000,0.993493 -1392,0.112856,0.000000,0.000000,0.993611 -1393,0.111816,0.000000,0.000000,0.993729 -1394,0.110775,0.000000,0.000000,0.993845 -1395,0.109734,0.000000,0.000000,0.993961 -1396,0.108693,0.000000,0.000000,0.994075 -1397,0.107652,0.000000,0.000000,0.994189 -1398,0.106611,0.000000,0.000000,0.994301 -1399,0.105570,0.000000,0.000000,0.994412 -1400,0.104528,0.000000,0.000000,0.994522 -1401,0.103487,0.000000,0.000000,0.994631 -1402,0.102445,0.000000,0.000000,0.994739 -1403,0.101404,0.000000,0.000000,0.994845 -1404,0.100362,0.000000,0.000000,0.994951 -1405,0.099320,0.000000,0.000000,0.995056 -1406,0.098278,0.000000,0.000000,0.995159 -1407,0.097235,0.000000,0.000000,0.995261 -1408,0.096193,0.000000,0.000000,0.995363 -1409,0.095151,0.000000,0.000000,0.995463 -1410,0.094108,0.000000,0.000000,0.995562 -1411,0.093066,0.000000,0.000000,0.995660 -1412,0.092023,0.000000,0.000000,0.995757 -1413,0.090980,0.000000,0.000000,0.995853 -1414,0.089937,0.000000,0.000000,0.995947 -1415,0.088894,0.000000,0.000000,0.996041 -1416,0.087851,0.000000,0.000000,0.996134 -1417,0.086808,0.000000,0.000000,0.996225 -1418,0.085765,0.000000,0.000000,0.996315 -1419,0.084721,0.000000,0.000000,0.996405 -1420,0.083678,0.000000,0.000000,0.996493 -1421,0.082634,0.000000,0.000000,0.996580 -1422,0.081591,0.000000,0.000000,0.996666 -1423,0.080547,0.000000,0.000000,0.996751 -1424,0.079503,0.000000,0.000000,0.996835 -1425,0.078459,0.000000,0.000000,0.996917 -1426,0.077415,0.000000,0.000000,0.996999 -1427,0.076371,0.000000,0.000000,0.997079 -1428,0.075327,0.000000,0.000000,0.997159 -1429,0.074283,0.000000,0.000000,0.997237 -1430,0.073238,0.000000,0.000000,0.997314 -1431,0.072194,0.000000,0.000000,0.997391 -1432,0.071149,0.000000,0.000000,0.997466 -1433,0.070105,0.000000,0.000000,0.997540 -1434,0.069060,0.000000,0.000000,0.997613 -1435,0.068015,0.000000,0.000000,0.997684 -1436,0.066970,0.000000,0.000000,0.997755 -1437,0.065926,0.000000,0.000000,0.997825 -1438,0.064881,0.000000,0.000000,0.997893 -1439,0.063836,0.000000,0.000000,0.997960 -1440,0.062791,0.000000,0.000000,0.998027 -1441,0.061745,0.000000,0.000000,0.998092 -1442,0.060700,0.000000,0.000000,0.998156 -1443,0.059655,0.000000,0.000000,0.998219 -1444,0.058609,0.000000,0.000000,0.998281 -1445,0.057564,0.000000,0.000000,0.998342 -1446,0.056519,0.000000,0.000000,0.998402 -1447,0.055473,0.000000,0.000000,0.998460 -1448,0.054427,0.000000,0.000000,0.998518 -1449,0.053382,0.000000,0.000000,0.998574 -1450,0.052336,0.000000,0.000000,0.998630 -1451,0.051290,0.000000,0.000000,0.998684 -1452,0.050244,0.000000,0.000000,0.998737 -1453,0.049198,0.000000,0.000000,0.998789 -1454,0.048152,0.000000,0.000000,0.998840 -1455,0.047106,0.000000,0.000000,0.998890 -1456,0.046060,0.000000,0.000000,0.998939 -1457,0.045014,0.000000,0.000000,0.998986 -1458,0.043968,0.000000,0.000000,0.999033 -1459,0.042922,0.000000,0.000000,0.999078 -1460,0.041876,0.000000,0.000000,0.999123 -1461,0.040829,0.000000,0.000000,0.999166 -1462,0.039783,0.000000,0.000000,0.999208 -1463,0.038737,0.000000,0.000000,0.999249 -1464,0.037690,0.000000,0.000000,0.999289 -1465,0.036644,0.000000,0.000000,0.999328 -1466,0.035597,0.000000,0.000000,0.999366 -1467,0.034551,0.000000,0.000000,0.999403 -1468,0.033504,0.000000,0.000000,0.999439 -1469,0.032457,0.000000,0.000000,0.999473 -1470,0.031411,0.000000,0.000000,0.999507 -1471,0.030364,0.000000,0.000000,0.999539 -1472,0.029317,0.000000,0.000000,0.999570 -1473,0.028271,0.000000,0.000000,0.999600 -1474,0.027224,0.000000,0.000000,0.999629 -1475,0.026177,0.000000,0.000000,0.999657 -1476,0.025130,0.000000,0.000000,0.999684 -1477,0.024083,0.000000,0.000000,0.999710 -1478,0.023036,0.000000,0.000000,0.999735 -1479,0.021989,0.000000,0.000000,0.999758 -1480,0.020942,0.000000,0.000000,0.999781 -1481,0.019895,0.000000,0.000000,0.999802 -1482,0.018848,0.000000,0.000000,0.999822 -1483,0.017801,0.000000,0.000000,0.999842 -1484,0.016754,0.000000,0.000000,0.999860 -1485,0.015707,0.000000,0.000000,0.999877 -1486,0.014660,0.000000,0.000000,0.999893 -1487,0.013613,0.000000,0.000000,0.999907 -1488,0.012566,0.000000,0.000000,0.999921 -1489,0.011519,0.000000,0.000000,0.999934 -1490,0.010472,0.000000,0.000000,0.999945 -1491,0.009425,0.000000,0.000000,0.999956 -1492,0.008377,0.000000,0.000000,0.999965 -1493,0.007330,0.000000,0.000000,0.999973 -1494,0.006283,0.000000,0.000000,0.999980 -1495,0.005236,0.000000,0.000000,0.999986 -1496,0.004189,0.000000,0.000000,0.999991 -1497,0.003142,0.000000,0.000000,0.999995 -1498,0.002094,0.000000,0.000000,0.999998 -1499,0.001047,0.000000,0.000000,0.999999 -1500,0.000000,0.000000,0.000000,1.000000 -1501,-0.001047,-0.000000,0.000000,0.999999 -1502,-0.002094,-0.000000,0.000000,0.999998 -1503,-0.003142,-0.000000,0.000000,0.999995 -1504,-0.004189,-0.000000,0.000000,0.999991 -1505,-0.005236,-0.000000,0.000000,0.999986 -1506,-0.006283,-0.000000,0.000000,0.999980 -1507,-0.007330,-0.000000,0.000000,0.999973 -1508,-0.008377,-0.000000,0.000000,0.999965 -1509,-0.009425,-0.000000,0.000000,0.999956 -1510,-0.010472,-0.000000,0.000000,0.999945 -1511,-0.011519,-0.000000,0.000000,0.999934 -1512,-0.012566,-0.000000,0.000000,0.999921 -1513,-0.013613,-0.000000,0.000000,0.999907 -1514,-0.014660,-0.000000,0.000000,0.999893 -1515,-0.015707,-0.000000,0.000000,0.999877 -1516,-0.016754,-0.000000,0.000000,0.999860 -1517,-0.017801,-0.000000,0.000000,0.999842 -1518,-0.018848,-0.000000,0.000000,0.999822 -1519,-0.019895,-0.000000,0.000000,0.999802 -1520,-0.020942,-0.000000,0.000000,0.999781 -1521,-0.021989,-0.000000,0.000000,0.999758 -1522,-0.023036,-0.000000,0.000000,0.999735 -1523,-0.024083,-0.000000,0.000000,0.999710 -1524,-0.025130,-0.000000,0.000000,0.999684 -1525,-0.026177,-0.000000,0.000000,0.999657 -1526,-0.027224,-0.000000,0.000000,0.999629 -1527,-0.028271,-0.000000,0.000000,0.999600 -1528,-0.029317,-0.000000,0.000000,0.999570 -1529,-0.030364,-0.000000,0.000000,0.999539 -1530,-0.031411,-0.000000,0.000000,0.999507 -1531,-0.032457,-0.000000,0.000000,0.999473 -1532,-0.033504,-0.000000,0.000000,0.999439 -1533,-0.034551,-0.000000,0.000000,0.999403 -1534,-0.035597,-0.000000,0.000000,0.999366 -1535,-0.036644,-0.000000,0.000000,0.999328 -1536,-0.037690,-0.000000,0.000000,0.999289 -1537,-0.038737,-0.000000,0.000000,0.999249 -1538,-0.039783,-0.000000,0.000000,0.999208 -1539,-0.040829,-0.000000,0.000000,0.999166 -1540,-0.041876,-0.000000,0.000000,0.999123 -1541,-0.042922,-0.000000,0.000000,0.999078 -1542,-0.043968,-0.000000,0.000000,0.999033 -1543,-0.045014,-0.000000,0.000000,0.998986 -1544,-0.046060,-0.000000,0.000000,0.998939 -1545,-0.047106,-0.000000,0.000000,0.998890 -1546,-0.048152,-0.000000,0.000000,0.998840 -1547,-0.049198,-0.000000,0.000000,0.998789 -1548,-0.050244,-0.000000,0.000000,0.998737 -1549,-0.051290,-0.000000,0.000000,0.998684 -1550,-0.052336,-0.000000,0.000000,0.998630 -1551,-0.053382,-0.000000,0.000000,0.998574 -1552,-0.054427,-0.000000,0.000000,0.998518 -1553,-0.055473,-0.000000,0.000000,0.998460 -1554,-0.056519,-0.000000,0.000000,0.998402 -1555,-0.057564,-0.000000,0.000000,0.998342 -1556,-0.058609,-0.000000,0.000000,0.998281 -1557,-0.059655,-0.000000,0.000000,0.998219 -1558,-0.060700,-0.000000,0.000000,0.998156 -1559,-0.061745,-0.000000,0.000000,0.998092 -1560,-0.062791,-0.000000,0.000000,0.998027 -1561,-0.063836,-0.000000,0.000000,0.997960 -1562,-0.064881,-0.000000,0.000000,0.997893 -1563,-0.065926,-0.000000,0.000000,0.997825 -1564,-0.066970,-0.000000,0.000000,0.997755 -1565,-0.068015,-0.000000,0.000000,0.997684 -1566,-0.069060,-0.000000,0.000000,0.997613 -1567,-0.070105,-0.000000,0.000000,0.997540 -1568,-0.071149,-0.000000,0.000000,0.997466 -1569,-0.072194,-0.000000,0.000000,0.997391 -1570,-0.073238,-0.000000,0.000000,0.997314 -1571,-0.074283,-0.000000,0.000000,0.997237 -1572,-0.075327,-0.000000,0.000000,0.997159 -1573,-0.076371,-0.000000,0.000000,0.997079 -1574,-0.077415,-0.000000,0.000000,0.996999 -1575,-0.078459,-0.000000,0.000000,0.996917 -1576,-0.079503,-0.000000,0.000000,0.996835 -1577,-0.080547,-0.000000,0.000000,0.996751 -1578,-0.081591,-0.000000,0.000000,0.996666 -1579,-0.082634,-0.000000,0.000000,0.996580 -1580,-0.083678,-0.000000,0.000000,0.996493 -1581,-0.084721,-0.000000,0.000000,0.996405 -1582,-0.085765,-0.000000,0.000000,0.996315 -1583,-0.086808,-0.000000,0.000000,0.996225 -1584,-0.087851,-0.000000,0.000000,0.996134 -1585,-0.088894,-0.000000,0.000000,0.996041 -1586,-0.089937,-0.000000,0.000000,0.995947 -1587,-0.090980,-0.000000,0.000000,0.995853 -1588,-0.092023,-0.000000,0.000000,0.995757 -1589,-0.093066,-0.000000,0.000000,0.995660 -1590,-0.094108,-0.000000,0.000000,0.995562 -1591,-0.095151,-0.000000,0.000000,0.995463 -1592,-0.096193,-0.000000,0.000000,0.995363 -1593,-0.097235,-0.000000,0.000000,0.995261 -1594,-0.098278,-0.000000,0.000000,0.995159 -1595,-0.099320,-0.000000,0.000000,0.995056 -1596,-0.100362,-0.000000,0.000000,0.994951 -1597,-0.101404,-0.000000,0.000000,0.994845 -1598,-0.102445,-0.000000,0.000000,0.994739 -1599,-0.103487,-0.000000,0.000000,0.994631 -1600,-0.104528,-0.000000,0.000000,0.994522 -1601,-0.105570,-0.000000,0.000000,0.994412 -1602,-0.106611,-0.000000,0.000000,0.994301 -1603,-0.107652,-0.000000,0.000000,0.994189 -1604,-0.108693,-0.000000,0.000000,0.994075 -1605,-0.109734,-0.000000,0.000000,0.993961 -1606,-0.110775,-0.000000,0.000000,0.993845 -1607,-0.111816,-0.000000,0.000000,0.993729 -1608,-0.112856,-0.000000,0.000000,0.993611 -1609,-0.113897,-0.000000,0.000000,0.993493 -1610,-0.114937,-0.000000,0.000000,0.993373 -1611,-0.115977,-0.000000,0.000000,0.993252 -1612,-0.117017,-0.000000,0.000000,0.993130 -1613,-0.118057,-0.000000,0.000000,0.993007 -1614,-0.119097,-0.000000,0.000000,0.992883 -1615,-0.120137,-0.000000,0.000000,0.992757 -1616,-0.121176,-0.000000,0.000000,0.992631 -1617,-0.122216,-0.000000,0.000000,0.992504 -1618,-0.123255,-0.000000,0.000000,0.992375 -1619,-0.124294,-0.000000,0.000000,0.992245 -1620,-0.125333,-0.000000,0.000000,0.992115 -1621,-0.126372,-0.000000,0.000000,0.991983 -1622,-0.127411,-0.000000,0.000000,0.991850 -1623,-0.128449,-0.000000,0.000000,0.991716 -1624,-0.129488,-0.000000,0.000000,0.991581 -1625,-0.130526,-0.000000,0.000000,0.991445 -1626,-0.131564,-0.000000,0.000000,0.991308 -1627,-0.132602,-0.000000,0.000000,0.991169 -1628,-0.133640,-0.000000,0.000000,0.991030 -1629,-0.134678,-0.000000,0.000000,0.990889 -1630,-0.135716,-0.000000,0.000000,0.990748 -1631,-0.136753,-0.000000,0.000000,0.990605 -1632,-0.137790,-0.000000,0.000000,0.990461 -1633,-0.138827,-0.000000,0.000000,0.990317 -1634,-0.139864,-0.000000,0.000000,0.990171 -1635,-0.140901,-0.000000,0.000000,0.990024 -1636,-0.141938,-0.000000,0.000000,0.989876 -1637,-0.142974,-0.000000,0.000000,0.989726 -1638,-0.144011,-0.000000,0.000000,0.989576 -1639,-0.145047,-0.000000,0.000000,0.989425 -1640,-0.146083,-0.000000,0.000000,0.989272 -1641,-0.147119,-0.000000,0.000000,0.989119 -1642,-0.148155,-0.000000,0.000000,0.988964 -1643,-0.149190,-0.000000,0.000000,0.988809 -1644,-0.150226,-0.000000,0.000000,0.988652 -1645,-0.151261,-0.000000,0.000000,0.988494 -1646,-0.152296,-0.000000,0.000000,0.988335 -1647,-0.153331,-0.000000,0.000000,0.988175 -1648,-0.154366,-0.000000,0.000000,0.988014 -1649,-0.155400,-0.000000,0.000000,0.987852 -1650,-0.156434,-0.000000,0.000000,0.987688 -1651,-0.157469,-0.000000,0.000000,0.987524 -1652,-0.158503,-0.000000,0.000000,0.987359 -1653,-0.159537,-0.000000,0.000000,0.987192 -1654,-0.160570,-0.000000,0.000000,0.987024 -1655,-0.161604,-0.000000,0.000000,0.986856 -1656,-0.162637,-0.000000,0.000000,0.986686 -1657,-0.163670,-0.000000,0.000000,0.986515 -1658,-0.164703,-0.000000,0.000000,0.986343 -1659,-0.165736,-0.000000,0.000000,0.986170 -1660,-0.166769,-0.000000,0.000000,0.985996 -1661,-0.167801,-0.000000,0.000000,0.985821 -1662,-0.168833,-0.000000,0.000000,0.985645 -1663,-0.169866,-0.000000,0.000000,0.985467 -1664,-0.170897,-0.000000,0.000000,0.985289 -1665,-0.171929,-0.000000,0.000000,0.985109 -1666,-0.172961,-0.000000,0.000000,0.984929 -1667,-0.173992,-0.000000,0.000000,0.984747 -1668,-0.175023,-0.000000,0.000000,0.984564 -1669,-0.176054,-0.000000,0.000000,0.984381 -1670,-0.177085,-0.000000,0.000000,0.984196 -1671,-0.178115,-0.000000,0.000000,0.984010 -1672,-0.179146,-0.000000,0.000000,0.983823 -1673,-0.180176,-0.000000,0.000000,0.983634 -1674,-0.181206,-0.000000,0.000000,0.983445 -1675,-0.182236,-0.000000,0.000000,0.983255 -1676,-0.183265,-0.000000,0.000000,0.983064 -1677,-0.184294,-0.000000,0.000000,0.982871 -1678,-0.185324,-0.000000,0.000000,0.982678 -1679,-0.186353,-0.000000,0.000000,0.982483 -1680,-0.187381,-0.000000,0.000000,0.982287 -1681,-0.188410,-0.000000,0.000000,0.982090 -1682,-0.189438,-0.000000,0.000000,0.981893 -1683,-0.190466,-0.000000,0.000000,0.981694 -1684,-0.191494,-0.000000,0.000000,0.981494 -1685,-0.192522,-0.000000,0.000000,0.981293 -1686,-0.193549,-0.000000,0.000000,0.981091 -1687,-0.194577,-0.000000,0.000000,0.980887 -1688,-0.195604,-0.000000,0.000000,0.980683 -1689,-0.196631,-0.000000,0.000000,0.980478 -1690,-0.197657,-0.000000,0.000000,0.980271 -1691,-0.198684,-0.000000,0.000000,0.980064 -1692,-0.199710,-0.000000,0.000000,0.979855 -1693,-0.200736,-0.000000,0.000000,0.979645 -1694,-0.201762,-0.000000,0.000000,0.979435 -1695,-0.202787,-0.000000,0.000000,0.979223 -1696,-0.203813,-0.000000,0.000000,0.979010 -1697,-0.204838,-0.000000,0.000000,0.978796 -1698,-0.205863,-0.000000,0.000000,0.978581 -1699,-0.206887,-0.000000,0.000000,0.978365 -1700,-0.207912,-0.000000,0.000000,0.978148 -1701,-0.208936,-0.000000,0.000000,0.977929 -1702,-0.209960,-0.000000,0.000000,0.977710 -1703,-0.210984,-0.000000,0.000000,0.977490 -1704,-0.212007,-0.000000,0.000000,0.977268 -1705,-0.213030,-0.000000,0.000000,0.977046 -1706,-0.214053,-0.000000,0.000000,0.976822 -1707,-0.215076,-0.000000,0.000000,0.976597 -1708,-0.216099,-0.000000,0.000000,0.976371 -1709,-0.217121,-0.000000,0.000000,0.976145 -1710,-0.218143,-0.000000,0.000000,0.975917 -1711,-0.219165,-0.000000,0.000000,0.975688 -1712,-0.220187,-0.000000,0.000000,0.975458 -1713,-0.221208,-0.000000,0.000000,0.975227 -1714,-0.222229,-0.000000,0.000000,0.974994 -1715,-0.223250,-0.000000,0.000000,0.974761 -1716,-0.224271,-0.000000,0.000000,0.974527 -1717,-0.225291,-0.000000,0.000000,0.974291 -1718,-0.226311,-0.000000,0.000000,0.974055 -1719,-0.227331,-0.000000,0.000000,0.973817 -1720,-0.228351,-0.000000,0.000000,0.973579 -1721,-0.229370,-0.000000,0.000000,0.973339 -1722,-0.230389,-0.000000,0.000000,0.973099 -1723,-0.231408,-0.000000,0.000000,0.972857 -1724,-0.232427,-0.000000,0.000000,0.972614 -1725,-0.233445,-0.000000,0.000000,0.972370 -1726,-0.234463,-0.000000,0.000000,0.972125 -1727,-0.235481,-0.000000,0.000000,0.971879 -1728,-0.236499,-0.000000,0.000000,0.971632 -1729,-0.237516,-0.000000,0.000000,0.971384 -1730,-0.238533,-0.000000,0.000000,0.971134 -1731,-0.239550,-0.000000,0.000000,0.970884 -1732,-0.240567,-0.000000,0.000000,0.970633 -1733,-0.241583,-0.000000,0.000000,0.970380 -1734,-0.242599,-0.000000,0.000000,0.970127 -1735,-0.243615,-0.000000,0.000000,0.969872 -1736,-0.244631,-0.000000,0.000000,0.969616 -1737,-0.245646,-0.000000,0.000000,0.969360 -1738,-0.246661,-0.000000,0.000000,0.969102 -1739,-0.247675,-0.000000,0.000000,0.968843 -1740,-0.248690,-0.000000,0.000000,0.968583 -1741,-0.249704,-0.000000,0.000000,0.968322 -1742,-0.250718,-0.000000,0.000000,0.968060 -1743,-0.251732,-0.000000,0.000000,0.967797 -1744,-0.252745,-0.000000,0.000000,0.967533 -1745,-0.253758,-0.000000,0.000000,0.967268 -1746,-0.254771,-0.000000,0.000000,0.967001 -1747,-0.255783,-0.000000,0.000000,0.966734 -1748,-0.256795,-0.000000,0.000000,0.966466 -1749,-0.257807,-0.000000,0.000000,0.966196 -1750,-0.258819,-0.000000,0.000000,0.965926 -1751,-0.259830,-0.000000,0.000000,0.965654 -1752,-0.260842,-0.000000,0.000000,0.965382 -1753,-0.261852,-0.000000,0.000000,0.965108 -1754,-0.262863,-0.000000,0.000000,0.964833 -1755,-0.263873,-0.000000,0.000000,0.964557 -1756,-0.264883,-0.000000,0.000000,0.964281 -1757,-0.265893,-0.000000,0.000000,0.964003 -1758,-0.266902,-0.000000,0.000000,0.963724 -1759,-0.267911,-0.000000,0.000000,0.963444 -1760,-0.268920,-0.000000,0.000000,0.963163 -1761,-0.269928,-0.000000,0.000000,0.962880 -1762,-0.270936,-0.000000,0.000000,0.962597 -1763,-0.271944,-0.000000,0.000000,0.962313 -1764,-0.272952,-0.000000,0.000000,0.962028 -1765,-0.273959,-0.000000,0.000000,0.961741 -1766,-0.274966,-0.000000,0.000000,0.961454 -1767,-0.275973,-0.000000,0.000000,0.961165 -1768,-0.276979,-0.000000,0.000000,0.960876 -1769,-0.277985,-0.000000,0.000000,0.960585 -1770,-0.278991,-0.000000,0.000000,0.960294 -1771,-0.279997,-0.000000,0.000000,0.960001 -1772,-0.281002,-0.000000,0.000000,0.959707 -1773,-0.282007,-0.000000,0.000000,0.959412 -1774,-0.283011,-0.000000,0.000000,0.959117 -1775,-0.284015,-0.000000,0.000000,0.958820 -1776,-0.285019,-0.000000,0.000000,0.958522 -1777,-0.286023,-0.000000,0.000000,0.958223 -1778,-0.287026,-0.000000,0.000000,0.957923 -1779,-0.288029,-0.000000,0.000000,0.957622 -1780,-0.289032,-0.000000,0.000000,0.957319 -1781,-0.290034,-0.000000,0.000000,0.957016 -1782,-0.291036,-0.000000,0.000000,0.956712 -1783,-0.292038,-0.000000,0.000000,0.956407 -1784,-0.293039,-0.000000,0.000000,0.956100 -1785,-0.294040,-0.000000,0.000000,0.955793 -1786,-0.295041,-0.000000,0.000000,0.955485 -1787,-0.296041,-0.000000,0.000000,0.955175 -1788,-0.297042,-0.000000,0.000000,0.954865 -1789,-0.298041,-0.000000,0.000000,0.954553 -1790,-0.299041,-0.000000,0.000000,0.954240 -1791,-0.300040,-0.000000,0.000000,0.953927 -1792,-0.301039,-0.000000,0.000000,0.953612 -1793,-0.302037,-0.000000,0.000000,0.953296 -1794,-0.303035,-0.000000,0.000000,0.952979 -1795,-0.304033,-0.000000,0.000000,0.952661 -1796,-0.305031,-0.000000,0.000000,0.952343 -1797,-0.306028,-0.000000,0.000000,0.952023 -1798,-0.307024,-0.000000,0.000000,0.951702 -1799,-0.308021,-0.000000,0.000000,0.951380 -1800,-0.309017,-0.000000,0.000000,0.951057 -1801,-0.310013,-0.000000,0.000000,0.950732 -1802,-0.311008,-0.000000,0.000000,0.950407 -1803,-0.312003,-0.000000,0.000000,0.950081 -1804,-0.312998,-0.000000,0.000000,0.949754 -1805,-0.313992,-0.000000,0.000000,0.949425 -1806,-0.314987,-0.000000,0.000000,0.949096 -1807,-0.315980,-0.000000,0.000000,0.948766 -1808,-0.316974,-0.000000,0.000000,0.948434 -1809,-0.317967,-0.000000,0.000000,0.948102 -1810,-0.318959,-0.000000,0.000000,0.947768 -1811,-0.319952,-0.000000,0.000000,0.947434 -1812,-0.320944,-0.000000,0.000000,0.947098 -1813,-0.321935,-0.000000,0.000000,0.946762 -1814,-0.322927,-0.000000,0.000000,0.946424 -1815,-0.323917,-0.000000,0.000000,0.946085 -1816,-0.324908,-0.000000,0.000000,0.945746 -1817,-0.325898,-0.000000,0.000000,0.945405 -1818,-0.326888,-0.000000,0.000000,0.945063 -1819,-0.327878,-0.000000,0.000000,0.944720 -1820,-0.328867,-0.000000,0.000000,0.944376 -1821,-0.329855,-0.000000,0.000000,0.944031 -1822,-0.330844,-0.000000,0.000000,0.943686 -1823,-0.331832,-0.000000,0.000000,0.943339 -1824,-0.332820,-0.000000,0.000000,0.942991 -1825,-0.333807,-0.000000,0.000000,0.942641 -1826,-0.334794,-0.000000,0.000000,0.942291 -1827,-0.335780,-0.000000,0.000000,0.941940 -1828,-0.336767,-0.000000,0.000000,0.941588 -1829,-0.337752,-0.000000,0.000000,0.941235 -1830,-0.338738,-0.000000,0.000000,0.940881 -1831,-0.339723,-0.000000,0.000000,0.940526 -1832,-0.340708,-0.000000,0.000000,0.940169 -1833,-0.341692,-0.000000,0.000000,0.939812 -1834,-0.342676,-0.000000,0.000000,0.939454 -1835,-0.343660,-0.000000,0.000000,0.939094 -1836,-0.344643,-0.000000,0.000000,0.938734 -1837,-0.345626,-0.000000,0.000000,0.938372 -1838,-0.346608,-0.000000,0.000000,0.938010 -1839,-0.347590,-0.000000,0.000000,0.937646 -1840,-0.348572,-0.000000,0.000000,0.937282 -1841,-0.349553,-0.000000,0.000000,0.936916 -1842,-0.350534,-0.000000,0.000000,0.936550 -1843,-0.351515,-0.000000,0.000000,0.936182 -1844,-0.352495,-0.000000,0.000000,0.935814 -1845,-0.353475,-0.000000,0.000000,0.935444 -1846,-0.354454,-0.000000,0.000000,0.935073 -1847,-0.355433,-0.000000,0.000000,0.934702 -1848,-0.356412,-0.000000,0.000000,0.934329 -1849,-0.357390,-0.000000,0.000000,0.933955 -1850,-0.358368,-0.000000,0.000000,0.933580 -1851,-0.359345,-0.000000,0.000000,0.933205 -1852,-0.360322,-0.000000,0.000000,0.932828 -1853,-0.361299,-0.000000,0.000000,0.932450 -1854,-0.362275,-0.000000,0.000000,0.932071 -1855,-0.363251,-0.000000,0.000000,0.931691 -1856,-0.364227,-0.000000,0.000000,0.931310 -1857,-0.365202,-0.000000,0.000000,0.930928 -1858,-0.366176,-0.000000,0.000000,0.930545 -1859,-0.367151,-0.000000,0.000000,0.930161 -1860,-0.368125,-0.000000,0.000000,0.929776 -1861,-0.369098,-0.000000,0.000000,0.929390 -1862,-0.370071,-0.000000,0.000000,0.929003 -1863,-0.371044,-0.000000,0.000000,0.928615 -1864,-0.372016,-0.000000,0.000000,0.928226 -1865,-0.372988,-0.000000,0.000000,0.927836 -1866,-0.373959,-0.000000,0.000000,0.927445 -1867,-0.374930,-0.000000,0.000000,0.927053 -1868,-0.375901,-0.000000,0.000000,0.926660 -1869,-0.376871,-0.000000,0.000000,0.926266 -1870,-0.377841,-0.000000,0.000000,0.925871 -1871,-0.378810,-0.000000,0.000000,0.925474 -1872,-0.379779,-0.000000,0.000000,0.925077 -1873,-0.380748,-0.000000,0.000000,0.924679 -1874,-0.381716,-0.000000,0.000000,0.924280 -1875,-0.382683,-0.000000,0.000000,0.923880 -1876,-0.383651,-0.000000,0.000000,0.923478 -1877,-0.384618,-0.000000,0.000000,0.923076 -1878,-0.385584,-0.000000,0.000000,0.922673 -1879,-0.386550,-0.000000,0.000000,0.922268 -1880,-0.387516,-0.000000,0.000000,0.921863 -1881,-0.388481,-0.000000,0.000000,0.921457 -1882,-0.389445,-0.000000,0.000000,0.921050 -1883,-0.390410,-0.000000,0.000000,0.920641 -1884,-0.391374,-0.000000,0.000000,0.920232 -1885,-0.392337,-0.000000,0.000000,0.919821 -1886,-0.393300,-0.000000,0.000000,0.919410 -1887,-0.394263,-0.000000,0.000000,0.918998 -1888,-0.395225,-0.000000,0.000000,0.918584 -1889,-0.396187,-0.000000,0.000000,0.918170 -1890,-0.397148,-0.000000,0.000000,0.917755 -1891,-0.398109,-0.000000,0.000000,0.917338 -1892,-0.399069,-0.000000,0.000000,0.916921 -1893,-0.400029,-0.000000,0.000000,0.916502 -1894,-0.400989,-0.000000,0.000000,0.916083 -1895,-0.401948,-0.000000,0.000000,0.915663 -1896,-0.402906,-0.000000,0.000000,0.915241 -1897,-0.403865,-0.000000,0.000000,0.914819 -1898,-0.404822,-0.000000,0.000000,0.914395 -1899,-0.405780,-0.000000,0.000000,0.913971 -1900,-0.406737,-0.000000,0.000000,0.913545 -1901,-0.407693,-0.000000,0.000000,0.913119 -1902,-0.408649,-0.000000,0.000000,0.912692 -1903,-0.409605,-0.000000,0.000000,0.912263 -1904,-0.410560,-0.000000,0.000000,0.911834 -1905,-0.411514,-0.000000,0.000000,0.911403 -1906,-0.412469,-0.000000,0.000000,0.910972 -1907,-0.413422,-0.000000,0.000000,0.910539 -1908,-0.414376,-0.000000,0.000000,0.910106 -1909,-0.415328,-0.000000,0.000000,0.909672 -1910,-0.416281,-0.000000,0.000000,0.909236 -1911,-0.417233,-0.000000,0.000000,0.908800 -1912,-0.418184,-0.000000,0.000000,0.908362 -1913,-0.419135,-0.000000,0.000000,0.907924 -1914,-0.420086,-0.000000,0.000000,0.907484 -1915,-0.421036,-0.000000,0.000000,0.907044 -1916,-0.421985,-0.000000,0.000000,0.906603 -1917,-0.422935,-0.000000,0.000000,0.906160 -1918,-0.423883,-0.000000,0.000000,0.905717 -1919,-0.424832,-0.000000,0.000000,0.905272 -1920,-0.425779,-0.000000,0.000000,0.904827 -1921,-0.426727,-0.000000,0.000000,0.904381 -1922,-0.427673,-0.000000,0.000000,0.903933 -1923,-0.428620,-0.000000,0.000000,0.903485 -1924,-0.429566,-0.000000,0.000000,0.903036 -1925,-0.430511,-0.000000,0.000000,0.902585 -1926,-0.431456,-0.000000,0.000000,0.902134 -1927,-0.432401,-0.000000,0.000000,0.901682 -1928,-0.433345,-0.000000,0.000000,0.901228 -1929,-0.434288,-0.000000,0.000000,0.900774 -1930,-0.435231,-0.000000,0.000000,0.900319 -1931,-0.436174,-0.000000,0.000000,0.899863 -1932,-0.437116,-0.000000,0.000000,0.899405 -1933,-0.438057,-0.000000,0.000000,0.898947 -1934,-0.438999,-0.000000,0.000000,0.898488 -1935,-0.439939,-0.000000,0.000000,0.898028 -1936,-0.440879,-0.000000,0.000000,0.897566 -1937,-0.441819,-0.000000,0.000000,0.897104 -1938,-0.442758,-0.000000,0.000000,0.896641 -1939,-0.443697,-0.000000,0.000000,0.896177 -1940,-0.444635,-0.000000,0.000000,0.895712 -1941,-0.445573,-0.000000,0.000000,0.895246 -1942,-0.446510,-0.000000,0.000000,0.894779 -1943,-0.447447,-0.000000,0.000000,0.894310 -1944,-0.448383,-0.000000,0.000000,0.893841 -1945,-0.449319,-0.000000,0.000000,0.893371 -1946,-0.450254,-0.000000,0.000000,0.892900 -1947,-0.451189,-0.000000,0.000000,0.892428 -1948,-0.452123,-0.000000,0.000000,0.891955 -1949,-0.453057,-0.000000,0.000000,0.891481 -1950,-0.453990,-0.000000,0.000000,0.891007 -1951,-0.454923,-0.000000,0.000000,0.890531 -1952,-0.455856,-0.000000,0.000000,0.890054 -1953,-0.456787,-0.000000,0.000000,0.889576 -1954,-0.457719,-0.000000,0.000000,0.889097 -1955,-0.458650,-0.000000,0.000000,0.888617 -1956,-0.459580,-0.000000,0.000000,0.888136 -1957,-0.460510,-0.000000,0.000000,0.887655 -1958,-0.461439,-0.000000,0.000000,0.887172 -1959,-0.462368,-0.000000,0.000000,0.886688 -1960,-0.463296,-0.000000,0.000000,0.886204 -1961,-0.464224,-0.000000,0.000000,0.885718 -1962,-0.465151,-0.000000,0.000000,0.885231 -1963,-0.466078,-0.000000,0.000000,0.884744 -1964,-0.467004,-0.000000,0.000000,0.884255 -1965,-0.467930,-0.000000,0.000000,0.883766 -1966,-0.468855,-0.000000,0.000000,0.883275 -1967,-0.469780,-0.000000,0.000000,0.882784 -1968,-0.470704,-0.000000,0.000000,0.882291 -1969,-0.471628,-0.000000,0.000000,0.881798 -1970,-0.472551,-0.000000,0.000000,0.881303 -1971,-0.473473,-0.000000,0.000000,0.880808 -1972,-0.474396,-0.000000,0.000000,0.880312 -1973,-0.475317,-0.000000,0.000000,0.879815 -1974,-0.476238,-0.000000,0.000000,0.879316 -1975,-0.477159,-0.000000,0.000000,0.878817 -1976,-0.478079,-0.000000,0.000000,0.878317 -1977,-0.478998,-0.000000,0.000000,0.877816 -1978,-0.479917,-0.000000,0.000000,0.877314 -1979,-0.480836,-0.000000,0.000000,0.876811 -1980,-0.481754,-0.000000,0.000000,0.876307 -1981,-0.482671,-0.000000,0.000000,0.875802 -1982,-0.483588,-0.000000,0.000000,0.875296 -1983,-0.484504,-0.000000,0.000000,0.874789 -1984,-0.485420,-0.000000,0.000000,0.874281 -1985,-0.486335,-0.000000,0.000000,0.873772 -1986,-0.487250,-0.000000,0.000000,0.873262 -1987,-0.488164,-0.000000,0.000000,0.872752 -1988,-0.489078,-0.000000,0.000000,0.872240 -1989,-0.489991,-0.000000,0.000000,0.871727 -1990,-0.490904,-0.000000,0.000000,0.871214 -1991,-0.491816,-0.000000,0.000000,0.870699 -1992,-0.492727,-0.000000,0.000000,0.870184 -1993,-0.493638,-0.000000,0.000000,0.869667 -1994,-0.494549,-0.000000,0.000000,0.869150 -1995,-0.495459,-0.000000,0.000000,0.868632 -1996,-0.496368,-0.000000,0.000000,0.868112 -1997,-0.497277,-0.000000,0.000000,0.867592 -1998,-0.498185,-0.000000,0.000000,0.867071 -1999,-0.499093,-0.000000,0.000000,0.866549 -2000,-0.500000,-0.000000,0.000000,0.866025 -2001,-0.500907,-0.000000,0.000000,0.865501 -2002,-0.501813,-0.000000,0.000000,0.864976 -2003,-0.502718,-0.000000,0.000000,0.864450 -2004,-0.503623,-0.000000,0.000000,0.863923 -2005,-0.504528,-0.000000,0.000000,0.863396 -2006,-0.505431,-0.000000,0.000000,0.862867 -2007,-0.506335,-0.000000,0.000000,0.862337 -2008,-0.507238,-0.000000,0.000000,0.861806 -2009,-0.508140,-0.000000,0.000000,0.861275 -2010,-0.509041,-0.000000,0.000000,0.860742 -2011,-0.509943,-0.000000,0.000000,0.860208 -2012,-0.510843,-0.000000,0.000000,0.859674 -2013,-0.511743,-0.000000,0.000000,0.859139 -2014,-0.512642,-0.000000,0.000000,0.858602 -2015,-0.513541,-0.000000,0.000000,0.858065 -2016,-0.514440,-0.000000,0.000000,0.857527 -2017,-0.515337,-0.000000,0.000000,0.856987 -2018,-0.516234,-0.000000,0.000000,0.856447 -2019,-0.517131,-0.000000,0.000000,0.855906 -2020,-0.518027,-0.000000,0.000000,0.855364 -2021,-0.518922,-0.000000,0.000000,0.854821 -2022,-0.519817,-0.000000,0.000000,0.854277 -2023,-0.520712,-0.000000,0.000000,0.853733 -2024,-0.521605,-0.000000,0.000000,0.853187 -2025,-0.522499,-0.000000,0.000000,0.852640 -2026,-0.523391,-0.000000,0.000000,0.852093 -2027,-0.524283,-0.000000,0.000000,0.851544 -2028,-0.525175,-0.000000,0.000000,0.850994 -2029,-0.526066,-0.000000,0.000000,0.850444 -2030,-0.526956,-0.000000,0.000000,0.849893 -2031,-0.527846,-0.000000,0.000000,0.849340 -2032,-0.528735,-0.000000,0.000000,0.848787 -2033,-0.529623,-0.000000,0.000000,0.848233 -2034,-0.530511,-0.000000,0.000000,0.847678 -2035,-0.531399,-0.000000,0.000000,0.847122 -2036,-0.532285,-0.000000,0.000000,0.846565 -2037,-0.533172,-0.000000,0.000000,0.846007 -2038,-0.534057,-0.000000,0.000000,0.845448 -2039,-0.534942,-0.000000,0.000000,0.844889 -2040,-0.535827,-0.000000,0.000000,0.844328 -2041,-0.536711,-0.000000,0.000000,0.843766 -2042,-0.537594,-0.000000,0.000000,0.843204 -2043,-0.538477,-0.000000,0.000000,0.842640 -2044,-0.539359,-0.000000,0.000000,0.842076 -2045,-0.540240,-0.000000,0.000000,0.841511 -2046,-0.541121,-0.000000,0.000000,0.840945 -2047,-0.542002,-0.000000,0.000000,0.840377 -2048,-0.542881,-0.000000,0.000000,0.839809 -2049,-0.543760,-0.000000,0.000000,0.839240 -2050,-0.544639,-0.000000,0.000000,0.838671 -2051,-0.545517,-0.000000,0.000000,0.838100 -2052,-0.546394,-0.000000,0.000000,0.837528 -2053,-0.547271,-0.000000,0.000000,0.836955 -2054,-0.548147,-0.000000,0.000000,0.836382 -2055,-0.549023,-0.000000,0.000000,0.835807 -2056,-0.549898,-0.000000,0.000000,0.835232 -2057,-0.550772,-0.000000,0.000000,0.834656 -2058,-0.551646,-0.000000,0.000000,0.834078 -2059,-0.552519,-0.000000,0.000000,0.833500 -2060,-0.553392,-0.000000,0.000000,0.832921 -2061,-0.554263,-0.000000,0.000000,0.832341 -2062,-0.555135,-0.000000,0.000000,0.831760 -2063,-0.556006,-0.000000,0.000000,0.831179 -2064,-0.556876,-0.000000,0.000000,0.830596 -2065,-0.557745,-0.000000,0.000000,0.830012 -2066,-0.558614,-0.000000,0.000000,0.829428 -2067,-0.559482,-0.000000,0.000000,0.828842 -2068,-0.560350,-0.000000,0.000000,0.828256 -2069,-0.561217,-0.000000,0.000000,0.827669 -2070,-0.562083,-0.000000,0.000000,0.827081 -2071,-0.562949,-0.000000,0.000000,0.826492 -2072,-0.563814,-0.000000,0.000000,0.825902 -2073,-0.564679,-0.000000,0.000000,0.825311 -2074,-0.565543,-0.000000,0.000000,0.824719 -2075,-0.566406,-0.000000,0.000000,0.824126 -2076,-0.567269,-0.000000,0.000000,0.823533 -2077,-0.568131,-0.000000,0.000000,0.822938 -2078,-0.568993,-0.000000,0.000000,0.822343 -2079,-0.569853,-0.000000,0.000000,0.821746 -2080,-0.570714,-0.000000,0.000000,0.821149 -2081,-0.571573,-0.000000,0.000000,0.820551 -2082,-0.572432,-0.000000,0.000000,0.819952 -2083,-0.573290,-0.000000,0.000000,0.819352 -2084,-0.574148,-0.000000,0.000000,0.818751 -2085,-0.575005,-0.000000,0.000000,0.818150 -2086,-0.575862,-0.000000,0.000000,0.817547 -2087,-0.576718,-0.000000,0.000000,0.816944 -2088,-0.577573,-0.000000,0.000000,0.816339 -2089,-0.578427,-0.000000,0.000000,0.815734 -2090,-0.579281,-0.000000,0.000000,0.815128 -2091,-0.580134,-0.000000,0.000000,0.814521 -2092,-0.580987,-0.000000,0.000000,0.813913 -2093,-0.581839,-0.000000,0.000000,0.813304 -2094,-0.582690,-0.000000,0.000000,0.812694 -2095,-0.583541,-0.000000,0.000000,0.812084 -2096,-0.584391,-0.000000,0.000000,0.811472 -2097,-0.585241,-0.000000,0.000000,0.810860 -2098,-0.586090,-0.000000,0.000000,0.810246 -2099,-0.586938,-0.000000,0.000000,0.809632 -2100,-0.587785,-0.000000,0.000000,0.809017 -2101,-0.588632,-0.000000,0.000000,0.808401 -2102,-0.589478,-0.000000,0.000000,0.807784 -2103,-0.590324,-0.000000,0.000000,0.807166 -2104,-0.591169,-0.000000,0.000000,0.806548 -2105,-0.592013,-0.000000,0.000000,0.805928 -2106,-0.592857,-0.000000,0.000000,0.805308 -2107,-0.593700,-0.000000,0.000000,0.804687 -2108,-0.594542,-0.000000,0.000000,0.804064 -2109,-0.595384,-0.000000,0.000000,0.803441 -2110,-0.596225,-0.000000,0.000000,0.802817 -2111,-0.597065,-0.000000,0.000000,0.802193 -2112,-0.597905,-0.000000,0.000000,0.801567 -2113,-0.598744,-0.000000,0.000000,0.800940 -2114,-0.599582,-0.000000,0.000000,0.800313 -2115,-0.600420,-0.000000,0.000000,0.799685 -2116,-0.601257,-0.000000,0.000000,0.799055 -2117,-0.602094,-0.000000,0.000000,0.798425 -2118,-0.602930,-0.000000,0.000000,0.797794 -2119,-0.603765,-0.000000,0.000000,0.797163 -2120,-0.604599,-0.000000,0.000000,0.796530 -2121,-0.605433,-0.000000,0.000000,0.795896 -2122,-0.606266,-0.000000,0.000000,0.795262 -2123,-0.607098,-0.000000,0.000000,0.794627 -2124,-0.607930,-0.000000,0.000000,0.793990 -2125,-0.608761,-0.000000,0.000000,0.793353 -2126,-0.609592,-0.000000,0.000000,0.792715 -2127,-0.610422,-0.000000,0.000000,0.792077 -2128,-0.611251,-0.000000,0.000000,0.791437 -2129,-0.612079,-0.000000,0.000000,0.790796 -2130,-0.612907,-0.000000,0.000000,0.790155 -2131,-0.613734,-0.000000,0.000000,0.789513 -2132,-0.614561,-0.000000,0.000000,0.788870 -2133,-0.615386,-0.000000,0.000000,0.788226 -2134,-0.616211,-0.000000,0.000000,0.787581 -2135,-0.617036,-0.000000,0.000000,0.786935 -2136,-0.617860,-0.000000,0.000000,0.786288 -2137,-0.618683,-0.000000,0.000000,0.785641 -2138,-0.619505,-0.000000,0.000000,0.784993 -2139,-0.620327,-0.000000,0.000000,0.784343 -2140,-0.621148,-0.000000,0.000000,0.783693 -2141,-0.621968,-0.000000,0.000000,0.783043 -2142,-0.622788,-0.000000,0.000000,0.782391 -2143,-0.623607,-0.000000,0.000000,0.781738 -2144,-0.624425,-0.000000,0.000000,0.781085 -2145,-0.625243,-0.000000,0.000000,0.780430 -2146,-0.626060,-0.000000,0.000000,0.779775 -2147,-0.626876,-0.000000,0.000000,0.779119 -2148,-0.627691,-0.000000,0.000000,0.778462 -2149,-0.628506,-0.000000,0.000000,0.777805 -2150,-0.629320,-0.000000,0.000000,0.777146 -2151,-0.630134,-0.000000,0.000000,0.776487 -2152,-0.630947,-0.000000,0.000000,0.775826 -2153,-0.631759,-0.000000,0.000000,0.775165 -2154,-0.632570,-0.000000,0.000000,0.774503 -2155,-0.633381,-0.000000,0.000000,0.773840 -2156,-0.634191,-0.000000,0.000000,0.773177 -2157,-0.635000,-0.000000,0.000000,0.772512 -2158,-0.635809,-0.000000,0.000000,0.771847 -2159,-0.636617,-0.000000,0.000000,0.771180 -2160,-0.637424,-0.000000,0.000000,0.770513 -2161,-0.638231,-0.000000,0.000000,0.769845 -2162,-0.639036,-0.000000,0.000000,0.769177 -2163,-0.639841,-0.000000,0.000000,0.768507 -2164,-0.640646,-0.000000,0.000000,0.767836 -2165,-0.641450,-0.000000,0.000000,0.767165 -2166,-0.642253,-0.000000,0.000000,0.766493 -2167,-0.643055,-0.000000,0.000000,0.765820 -2168,-0.643857,-0.000000,0.000000,0.765146 -2169,-0.644657,-0.000000,0.000000,0.764472 -2170,-0.645458,-0.000000,0.000000,0.763796 -2171,-0.646257,-0.000000,0.000000,0.763120 -2172,-0.647056,-0.000000,0.000000,0.762443 -2173,-0.647854,-0.000000,0.000000,0.761764 -2174,-0.648651,-0.000000,0.000000,0.761086 -2175,-0.649448,-0.000000,0.000000,0.760406 -2176,-0.650244,-0.000000,0.000000,0.759725 -2177,-0.651039,-0.000000,0.000000,0.759044 -2178,-0.651834,-0.000000,0.000000,0.758362 -2179,-0.652628,-0.000000,0.000000,0.757679 -2180,-0.653421,-0.000000,0.000000,0.756995 -2181,-0.654213,-0.000000,0.000000,0.756310 -2182,-0.655005,-0.000000,0.000000,0.755625 -2183,-0.655796,-0.000000,0.000000,0.754939 -2184,-0.656586,-0.000000,0.000000,0.754251 -2185,-0.657375,-0.000000,0.000000,0.753563 -2186,-0.658164,-0.000000,0.000000,0.752875 -2187,-0.658952,-0.000000,0.000000,0.752185 -2188,-0.659739,-0.000000,0.000000,0.751494 -2189,-0.660526,-0.000000,0.000000,0.750803 -2190,-0.661312,-0.000000,0.000000,0.750111 -2191,-0.662097,-0.000000,0.000000,0.749418 -2192,-0.662881,-0.000000,0.000000,0.748724 -2193,-0.663665,-0.000000,0.000000,0.748030 -2194,-0.664448,-0.000000,0.000000,0.747334 -2195,-0.665230,-0.000000,0.000000,0.746638 -2196,-0.666012,-0.000000,0.000000,0.745941 -2197,-0.666793,-0.000000,0.000000,0.745243 -2198,-0.667573,-0.000000,0.000000,0.744545 -2199,-0.668352,-0.000000,0.000000,0.743845 -2200,-0.669131,-0.000000,0.000000,0.743145 -2201,-0.669908,-0.000000,0.000000,0.742444 -2202,-0.670686,-0.000000,0.000000,0.741742 -2203,-0.671462,-0.000000,0.000000,0.741039 -2204,-0.672238,-0.000000,0.000000,0.740335 -2205,-0.673013,-0.000000,0.000000,0.739631 -2206,-0.673787,-0.000000,0.000000,0.738926 -2207,-0.674560,-0.000000,0.000000,0.738220 -2208,-0.675333,-0.000000,0.000000,0.737513 -2209,-0.676105,-0.000000,0.000000,0.736806 -2210,-0.676876,-0.000000,0.000000,0.736097 -2211,-0.677646,-0.000000,0.000000,0.735388 -2212,-0.678416,-0.000000,0.000000,0.734678 -2213,-0.679185,-0.000000,0.000000,0.733967 -2214,-0.679953,-0.000000,0.000000,0.733255 -2215,-0.680721,-0.000000,0.000000,0.732543 -2216,-0.681488,-0.000000,0.000000,0.731830 -2217,-0.682254,-0.000000,0.000000,0.731116 -2218,-0.683019,-0.000000,0.000000,0.730401 -2219,-0.683783,-0.000000,0.000000,0.729685 -2220,-0.684547,-0.000000,0.000000,0.728969 -2221,-0.685310,-0.000000,0.000000,0.728251 -2222,-0.686072,-0.000000,0.000000,0.727533 -2223,-0.686834,-0.000000,0.000000,0.726814 -2224,-0.687595,-0.000000,0.000000,0.726095 -2225,-0.688355,-0.000000,0.000000,0.725374 -2226,-0.689114,-0.000000,0.000000,0.724653 -2227,-0.689872,-0.000000,0.000000,0.723931 -2228,-0.690630,-0.000000,0.000000,0.723208 -2229,-0.691387,-0.000000,0.000000,0.722485 -2230,-0.692143,-0.000000,0.000000,0.721760 -2231,-0.692899,-0.000000,0.000000,0.721035 -2232,-0.693653,-0.000000,0.000000,0.720309 -2233,-0.694407,-0.000000,0.000000,0.719582 -2234,-0.695160,-0.000000,0.000000,0.718855 -2235,-0.695913,-0.000000,0.000000,0.718126 -2236,-0.696664,-0.000000,0.000000,0.717397 -2237,-0.697415,-0.000000,0.000000,0.716667 -2238,-0.698165,-0.000000,0.000000,0.715936 -2239,-0.698915,-0.000000,0.000000,0.715205 -2240,-0.699663,-0.000000,0.000000,0.714473 -2241,-0.700411,-0.000000,0.000000,0.713740 -2242,-0.701158,-0.000000,0.000000,0.713006 -2243,-0.701904,-0.000000,0.000000,0.712271 -2244,-0.702650,-0.000000,0.000000,0.711536 -2245,-0.703395,-0.000000,0.000000,0.710799 -2246,-0.704139,-0.000000,0.000000,0.710062 -2247,-0.704882,-0.000000,0.000000,0.709325 -2248,-0.705624,-0.000000,0.000000,0.708586 -2249,-0.706366,-0.000000,0.000000,0.707847 -2250,-0.707107,-0.000000,0.000000,0.707107 -2251,-0.707847,-0.000000,0.000000,0.706366 -2252,-0.708586,-0.000000,0.000000,0.705624 -2253,-0.709325,-0.000000,0.000000,0.704882 -2254,-0.710062,-0.000000,0.000000,0.704139 -2255,-0.710799,-0.000000,0.000000,0.703395 -2256,-0.711536,-0.000000,0.000000,0.702650 -2257,-0.712271,-0.000000,0.000000,0.701904 -2258,-0.713006,-0.000000,0.000000,0.701158 -2259,-0.713740,-0.000000,0.000000,0.700411 -2260,-0.714473,-0.000000,0.000000,0.699663 -2261,-0.715205,-0.000000,0.000000,0.698915 -2262,-0.715936,-0.000000,0.000000,0.698165 -2263,-0.716667,-0.000000,0.000000,0.697415 -2264,-0.717397,-0.000000,0.000000,0.696664 -2265,-0.718126,-0.000000,0.000000,0.695913 -2266,-0.718855,-0.000000,0.000000,0.695160 -2267,-0.719582,-0.000000,0.000000,0.694407 -2268,-0.720309,-0.000000,0.000000,0.693653 -2269,-0.721035,-0.000000,0.000000,0.692899 -2270,-0.721760,-0.000000,0.000000,0.692143 -2271,-0.722485,-0.000000,0.000000,0.691387 -2272,-0.723208,-0.000000,0.000000,0.690630 -2273,-0.723931,-0.000000,0.000000,0.689872 -2274,-0.724653,-0.000000,0.000000,0.689114 -2275,-0.725374,-0.000000,0.000000,0.688355 -2276,-0.726095,-0.000000,0.000000,0.687595 -2277,-0.726814,-0.000000,0.000000,0.686834 -2278,-0.727533,-0.000000,0.000000,0.686072 -2279,-0.728251,-0.000000,0.000000,0.685310 -2280,-0.728969,-0.000000,0.000000,0.684547 -2281,-0.729685,-0.000000,0.000000,0.683783 -2282,-0.730401,-0.000000,0.000000,0.683019 -2283,-0.731116,-0.000000,0.000000,0.682254 -2284,-0.731830,-0.000000,0.000000,0.681488 -2285,-0.732543,-0.000000,0.000000,0.680721 -2286,-0.733255,-0.000000,0.000000,0.679953 -2287,-0.733967,-0.000000,0.000000,0.679185 -2288,-0.734678,-0.000000,0.000000,0.678416 -2289,-0.735388,-0.000000,0.000000,0.677646 -2290,-0.736097,-0.000000,0.000000,0.676876 -2291,-0.736806,-0.000000,0.000000,0.676105 -2292,-0.737513,-0.000000,0.000000,0.675333 -2293,-0.738220,-0.000000,0.000000,0.674560 -2294,-0.738926,-0.000000,0.000000,0.673787 -2295,-0.739631,-0.000000,0.000000,0.673013 -2296,-0.740335,-0.000000,0.000000,0.672238 -2297,-0.741039,-0.000000,0.000000,0.671462 -2298,-0.741742,-0.000000,0.000000,0.670686 -2299,-0.742444,-0.000000,0.000000,0.669908 -2300,-0.743145,-0.000000,0.000000,0.669131 -2301,-0.743845,-0.000000,0.000000,0.668352 -2302,-0.744545,-0.000000,0.000000,0.667573 -2303,-0.745243,-0.000000,0.000000,0.666793 -2304,-0.745941,-0.000000,0.000000,0.666012 -2305,-0.746638,-0.000000,0.000000,0.665230 -2306,-0.747334,-0.000000,0.000000,0.664448 -2307,-0.748030,-0.000000,0.000000,0.663665 -2308,-0.748724,-0.000000,0.000000,0.662881 -2309,-0.749418,-0.000000,0.000000,0.662097 -2310,-0.750111,-0.000000,0.000000,0.661312 -2311,-0.750803,-0.000000,0.000000,0.660526 -2312,-0.751494,-0.000000,0.000000,0.659739 -2313,-0.752185,-0.000000,0.000000,0.658952 -2314,-0.752875,-0.000000,0.000000,0.658164 -2315,-0.753563,-0.000000,0.000000,0.657375 -2316,-0.754251,-0.000000,0.000000,0.656586 -2317,-0.754939,-0.000000,0.000000,0.655796 -2318,-0.755625,-0.000000,0.000000,0.655005 -2319,-0.756310,-0.000000,0.000000,0.654213 -2320,-0.756995,-0.000000,0.000000,0.653421 -2321,-0.757679,-0.000000,0.000000,0.652628 -2322,-0.758362,-0.000000,0.000000,0.651834 -2323,-0.759044,-0.000000,0.000000,0.651039 -2324,-0.759725,-0.000000,0.000000,0.650244 -2325,-0.760406,-0.000000,0.000000,0.649448 -2326,-0.761086,-0.000000,0.000000,0.648651 -2327,-0.761764,-0.000000,0.000000,0.647854 -2328,-0.762443,-0.000000,0.000000,0.647056 -2329,-0.763120,-0.000000,0.000000,0.646257 -2330,-0.763796,-0.000000,0.000000,0.645458 -2331,-0.764472,-0.000000,0.000000,0.644657 -2332,-0.765146,-0.000000,0.000000,0.643857 -2333,-0.765820,-0.000000,0.000000,0.643055 -2334,-0.766493,-0.000000,0.000000,0.642253 -2335,-0.767165,-0.000000,0.000000,0.641450 -2336,-0.767836,-0.000000,0.000000,0.640646 -2337,-0.768507,-0.000000,0.000000,0.639841 -2338,-0.769177,-0.000000,0.000000,0.639036 -2339,-0.769845,-0.000000,0.000000,0.638231 -2340,-0.770513,-0.000000,0.000000,0.637424 -2341,-0.771180,-0.000000,0.000000,0.636617 -2342,-0.771847,-0.000000,0.000000,0.635809 -2343,-0.772512,-0.000000,0.000000,0.635000 -2344,-0.773177,-0.000000,0.000000,0.634191 -2345,-0.773840,-0.000000,0.000000,0.633381 -2346,-0.774503,-0.000000,0.000000,0.632570 -2347,-0.775165,-0.000000,0.000000,0.631759 -2348,-0.775826,-0.000000,0.000000,0.630947 -2349,-0.776487,-0.000000,0.000000,0.630134 -2350,-0.777146,-0.000000,0.000000,0.629320 -2351,-0.777805,-0.000000,0.000000,0.628506 -2352,-0.778462,-0.000000,0.000000,0.627691 -2353,-0.779119,-0.000000,0.000000,0.626876 -2354,-0.779775,-0.000000,0.000000,0.626060 -2355,-0.780430,-0.000000,0.000000,0.625243 -2356,-0.781085,-0.000000,0.000000,0.624425 -2357,-0.781738,-0.000000,0.000000,0.623607 -2358,-0.782391,-0.000000,0.000000,0.622788 -2359,-0.783043,-0.000000,0.000000,0.621968 -2360,-0.783693,-0.000000,0.000000,0.621148 -2361,-0.784343,-0.000000,0.000000,0.620327 -2362,-0.784993,-0.000000,0.000000,0.619505 -2363,-0.785641,-0.000000,0.000000,0.618683 -2364,-0.786288,-0.000000,0.000000,0.617860 -2365,-0.786935,-0.000000,0.000000,0.617036 -2366,-0.787581,-0.000000,0.000000,0.616211 -2367,-0.788226,-0.000000,0.000000,0.615386 -2368,-0.788870,-0.000000,0.000000,0.614561 -2369,-0.789513,-0.000000,0.000000,0.613734 -2370,-0.790155,-0.000000,0.000000,0.612907 -2371,-0.790796,-0.000000,0.000000,0.612079 -2372,-0.791437,-0.000000,0.000000,0.611251 -2373,-0.792077,-0.000000,0.000000,0.610422 -2374,-0.792715,-0.000000,0.000000,0.609592 -2375,-0.793353,-0.000000,0.000000,0.608761 -2376,-0.793990,-0.000000,0.000000,0.607930 -2377,-0.794627,-0.000000,0.000000,0.607098 -2378,-0.795262,-0.000000,0.000000,0.606266 -2379,-0.795896,-0.000000,0.000000,0.605433 -2380,-0.796530,-0.000000,0.000000,0.604599 -2381,-0.797163,-0.000000,0.000000,0.603765 -2382,-0.797794,-0.000000,0.000000,0.602930 -2383,-0.798425,-0.000000,0.000000,0.602094 -2384,-0.799055,-0.000000,0.000000,0.601257 -2385,-0.799685,-0.000000,0.000000,0.600420 -2386,-0.800313,-0.000000,0.000000,0.599582 -2387,-0.800940,-0.000000,0.000000,0.598744 -2388,-0.801567,-0.000000,0.000000,0.597905 -2389,-0.802193,-0.000000,0.000000,0.597065 -2390,-0.802817,-0.000000,0.000000,0.596225 -2391,-0.803441,-0.000000,0.000000,0.595384 -2392,-0.804064,-0.000000,0.000000,0.594542 -2393,-0.804687,-0.000000,0.000000,0.593700 -2394,-0.805308,-0.000000,0.000000,0.592857 -2395,-0.805928,-0.000000,0.000000,0.592013 -2396,-0.806548,-0.000000,0.000000,0.591169 -2397,-0.807166,-0.000000,0.000000,0.590324 -2398,-0.807784,-0.000000,0.000000,0.589478 -2399,-0.808401,-0.000000,0.000000,0.588632 -2400,-0.809017,-0.000000,0.000000,0.587785 -2401,-0.809632,-0.000000,0.000000,0.586938 -2402,-0.810246,-0.000000,0.000000,0.586090 -2403,-0.810860,-0.000000,0.000000,0.585241 -2404,-0.811472,-0.000000,0.000000,0.584391 -2405,-0.812084,-0.000000,0.000000,0.583541 -2406,-0.812694,-0.000000,0.000000,0.582690 -2407,-0.813304,-0.000000,0.000000,0.581839 -2408,-0.813913,-0.000000,0.000000,0.580987 -2409,-0.814521,-0.000000,0.000000,0.580134 -2410,-0.815128,-0.000000,0.000000,0.579281 -2411,-0.815734,-0.000000,0.000000,0.578427 -2412,-0.816339,-0.000000,0.000000,0.577573 -2413,-0.816944,-0.000000,0.000000,0.576718 -2414,-0.817547,-0.000000,0.000000,0.575862 -2415,-0.818150,-0.000000,0.000000,0.575005 -2416,-0.818751,-0.000000,0.000000,0.574148 -2417,-0.819352,-0.000000,0.000000,0.573290 -2418,-0.819952,-0.000000,0.000000,0.572432 -2419,-0.820551,-0.000000,0.000000,0.571573 -2420,-0.821149,-0.000000,0.000000,0.570714 -2421,-0.821746,-0.000000,0.000000,0.569853 -2422,-0.822343,-0.000000,0.000000,0.568993 -2423,-0.822938,-0.000000,0.000000,0.568131 -2424,-0.823533,-0.000000,0.000000,0.567269 -2425,-0.824126,-0.000000,0.000000,0.566406 -2426,-0.824719,-0.000000,0.000000,0.565543 -2427,-0.825311,-0.000000,0.000000,0.564679 -2428,-0.825902,-0.000000,0.000000,0.563814 -2429,-0.826492,-0.000000,0.000000,0.562949 -2430,-0.827081,-0.000000,0.000000,0.562083 -2431,-0.827669,-0.000000,0.000000,0.561217 -2432,-0.828256,-0.000000,0.000000,0.560350 -2433,-0.828842,-0.000000,0.000000,0.559482 -2434,-0.829428,-0.000000,0.000000,0.558614 -2435,-0.830012,-0.000000,0.000000,0.557745 -2436,-0.830596,-0.000000,0.000000,0.556876 -2437,-0.831179,-0.000000,0.000000,0.556006 -2438,-0.831760,-0.000000,0.000000,0.555135 -2439,-0.832341,-0.000000,0.000000,0.554263 -2440,-0.832921,-0.000000,0.000000,0.553392 -2441,-0.833500,-0.000000,0.000000,0.552519 -2442,-0.834078,-0.000000,0.000000,0.551646 -2443,-0.834656,-0.000000,0.000000,0.550772 -2444,-0.835232,-0.000000,0.000000,0.549898 -2445,-0.835807,-0.000000,0.000000,0.549023 -2446,-0.836382,-0.000000,0.000000,0.548147 -2447,-0.836955,-0.000000,0.000000,0.547271 -2448,-0.837528,-0.000000,0.000000,0.546394 -2449,-0.838100,-0.000000,0.000000,0.545517 -2450,-0.838671,-0.000000,0.000000,0.544639 -2451,-0.839240,-0.000000,0.000000,0.543760 -2452,-0.839809,-0.000000,0.000000,0.542881 -2453,-0.840377,-0.000000,0.000000,0.542002 -2454,-0.840945,-0.000000,0.000000,0.541121 -2455,-0.841511,-0.000000,0.000000,0.540240 -2456,-0.842076,-0.000000,0.000000,0.539359 -2457,-0.842640,-0.000000,0.000000,0.538477 -2458,-0.843204,-0.000000,0.000000,0.537594 -2459,-0.843766,-0.000000,0.000000,0.536711 -2460,-0.844328,-0.000000,0.000000,0.535827 -2461,-0.844889,-0.000000,0.000000,0.534942 -2462,-0.845448,-0.000000,0.000000,0.534057 -2463,-0.846007,-0.000000,0.000000,0.533172 -2464,-0.846565,-0.000000,0.000000,0.532285 -2465,-0.847122,-0.000000,0.000000,0.531399 -2466,-0.847678,-0.000000,0.000000,0.530511 -2467,-0.848233,-0.000000,0.000000,0.529623 -2468,-0.848787,-0.000000,0.000000,0.528735 -2469,-0.849340,-0.000000,0.000000,0.527846 -2470,-0.849893,-0.000000,0.000000,0.526956 -2471,-0.850444,-0.000000,0.000000,0.526066 -2472,-0.850994,-0.000000,0.000000,0.525175 -2473,-0.851544,-0.000000,0.000000,0.524283 -2474,-0.852093,-0.000000,0.000000,0.523391 -2475,-0.852640,-0.000000,0.000000,0.522499 -2476,-0.853187,-0.000000,0.000000,0.521605 -2477,-0.853733,-0.000000,0.000000,0.520712 -2478,-0.854277,-0.000000,0.000000,0.519817 -2479,-0.854821,-0.000000,0.000000,0.518922 -2480,-0.855364,-0.000000,0.000000,0.518027 -2481,-0.855906,-0.000000,0.000000,0.517131 -2482,-0.856447,-0.000000,0.000000,0.516234 -2483,-0.856987,-0.000000,0.000000,0.515337 -2484,-0.857527,-0.000000,0.000000,0.514440 -2485,-0.858065,-0.000000,0.000000,0.513541 -2486,-0.858602,-0.000000,0.000000,0.512642 -2487,-0.859139,-0.000000,0.000000,0.511743 -2488,-0.859674,-0.000000,0.000000,0.510843 -2489,-0.860208,-0.000000,0.000000,0.509943 -2490,-0.860742,-0.000000,0.000000,0.509041 -2491,-0.861275,-0.000000,0.000000,0.508140 -2492,-0.861806,-0.000000,0.000000,0.507238 -2493,-0.862337,-0.000000,0.000000,0.506335 -2494,-0.862867,-0.000000,0.000000,0.505431 -2495,-0.863396,-0.000000,0.000000,0.504528 -2496,-0.863923,-0.000000,0.000000,0.503623 -2497,-0.864450,-0.000000,0.000000,0.502718 -2498,-0.864976,-0.000000,0.000000,0.501813 -2499,-0.865501,-0.000000,0.000000,0.500907 -2500,-0.866025,-0.000000,0.000000,0.500000 -2501,-0.866549,-0.000000,0.000000,0.499093 -2502,-0.867071,-0.000000,0.000000,0.498185 -2503,-0.867592,-0.000000,0.000000,0.497277 -2504,-0.868112,-0.000000,0.000000,0.496368 -2505,-0.868632,-0.000000,0.000000,0.495459 -2506,-0.869150,-0.000000,0.000000,0.494549 -2507,-0.869667,-0.000000,0.000000,0.493638 -2508,-0.870184,-0.000000,0.000000,0.492727 -2509,-0.870699,-0.000000,0.000000,0.491816 -2510,-0.871214,-0.000000,0.000000,0.490904 -2511,-0.871727,-0.000000,0.000000,0.489991 -2512,-0.872240,-0.000000,0.000000,0.489078 -2513,-0.872752,-0.000000,0.000000,0.488164 -2514,-0.873262,-0.000000,0.000000,0.487250 -2515,-0.873772,-0.000000,0.000000,0.486335 -2516,-0.874281,-0.000000,0.000000,0.485420 -2517,-0.874789,-0.000000,0.000000,0.484504 -2518,-0.875296,-0.000000,0.000000,0.483588 -2519,-0.875802,-0.000000,0.000000,0.482671 -2520,-0.876307,-0.000000,0.000000,0.481754 -2521,-0.876811,-0.000000,0.000000,0.480836 -2522,-0.877314,-0.000000,0.000000,0.479917 -2523,-0.877816,-0.000000,0.000000,0.478998 -2524,-0.878317,-0.000000,0.000000,0.478079 -2525,-0.878817,-0.000000,0.000000,0.477159 -2526,-0.879316,-0.000000,0.000000,0.476238 -2527,-0.879815,-0.000000,0.000000,0.475317 -2528,-0.880312,-0.000000,0.000000,0.474396 -2529,-0.880808,-0.000000,0.000000,0.473473 -2530,-0.881303,-0.000000,0.000000,0.472551 -2531,-0.881798,-0.000000,0.000000,0.471628 -2532,-0.882291,-0.000000,0.000000,0.470704 -2533,-0.882784,-0.000000,0.000000,0.469780 -2534,-0.883275,-0.000000,0.000000,0.468855 -2535,-0.883766,-0.000000,0.000000,0.467930 -2536,-0.884255,-0.000000,0.000000,0.467004 -2537,-0.884744,-0.000000,0.000000,0.466078 -2538,-0.885231,-0.000000,0.000000,0.465151 -2539,-0.885718,-0.000000,0.000000,0.464224 -2540,-0.886204,-0.000000,0.000000,0.463296 -2541,-0.886688,-0.000000,0.000000,0.462368 -2542,-0.887172,-0.000000,0.000000,0.461439 -2543,-0.887655,-0.000000,0.000000,0.460510 -2544,-0.888136,-0.000000,0.000000,0.459580 -2545,-0.888617,-0.000000,0.000000,0.458650 -2546,-0.889097,-0.000000,0.000000,0.457719 -2547,-0.889576,-0.000000,0.000000,0.456787 -2548,-0.890054,-0.000000,0.000000,0.455856 -2549,-0.890531,-0.000000,0.000000,0.454923 -2550,-0.891007,-0.000000,0.000000,0.453990 -2551,-0.891481,-0.000000,0.000000,0.453057 -2552,-0.891955,-0.000000,0.000000,0.452123 -2553,-0.892428,-0.000000,0.000000,0.451189 -2554,-0.892900,-0.000000,0.000000,0.450254 -2555,-0.893371,-0.000000,0.000000,0.449319 -2556,-0.893841,-0.000000,0.000000,0.448383 -2557,-0.894310,-0.000000,0.000000,0.447447 -2558,-0.894779,-0.000000,0.000000,0.446510 -2559,-0.895246,-0.000000,0.000000,0.445573 -2560,-0.895712,-0.000000,0.000000,0.444635 -2561,-0.896177,-0.000000,0.000000,0.443697 -2562,-0.896641,-0.000000,0.000000,0.442758 -2563,-0.897104,-0.000000,0.000000,0.441819 -2564,-0.897566,-0.000000,0.000000,0.440879 -2565,-0.898028,-0.000000,0.000000,0.439939 -2566,-0.898488,-0.000000,0.000000,0.438999 -2567,-0.898947,-0.000000,0.000000,0.438057 -2568,-0.899405,-0.000000,0.000000,0.437116 -2569,-0.899863,-0.000000,0.000000,0.436174 -2570,-0.900319,-0.000000,0.000000,0.435231 -2571,-0.900774,-0.000000,0.000000,0.434288 -2572,-0.901228,-0.000000,0.000000,0.433345 -2573,-0.901682,-0.000000,0.000000,0.432401 -2574,-0.902134,-0.000000,0.000000,0.431456 -2575,-0.902585,-0.000000,0.000000,0.430511 -2576,-0.903036,-0.000000,0.000000,0.429566 -2577,-0.903485,-0.000000,0.000000,0.428620 -2578,-0.903933,-0.000000,0.000000,0.427673 -2579,-0.904381,-0.000000,0.000000,0.426727 -2580,-0.904827,-0.000000,0.000000,0.425779 -2581,-0.905272,-0.000000,0.000000,0.424832 -2582,-0.905717,-0.000000,0.000000,0.423883 -2583,-0.906160,-0.000000,0.000000,0.422935 -2584,-0.906603,-0.000000,0.000000,0.421985 -2585,-0.907044,-0.000000,0.000000,0.421036 -2586,-0.907484,-0.000000,0.000000,0.420086 -2587,-0.907924,-0.000000,0.000000,0.419135 -2588,-0.908362,-0.000000,0.000000,0.418184 -2589,-0.908800,-0.000000,0.000000,0.417233 -2590,-0.909236,-0.000000,0.000000,0.416281 -2591,-0.909672,-0.000000,0.000000,0.415328 -2592,-0.910106,-0.000000,0.000000,0.414376 -2593,-0.910539,-0.000000,0.000000,0.413422 -2594,-0.910972,-0.000000,0.000000,0.412469 -2595,-0.911403,-0.000000,0.000000,0.411514 -2596,-0.911834,-0.000000,0.000000,0.410560 -2597,-0.912263,-0.000000,0.000000,0.409605 -2598,-0.912692,-0.000000,0.000000,0.408649 -2599,-0.913119,-0.000000,0.000000,0.407693 -2600,-0.913545,-0.000000,0.000000,0.406737 -2601,-0.913971,-0.000000,0.000000,0.405780 -2602,-0.914395,-0.000000,0.000000,0.404822 -2603,-0.914819,-0.000000,0.000000,0.403865 -2604,-0.915241,-0.000000,0.000000,0.402906 -2605,-0.915663,-0.000000,0.000000,0.401948 -2606,-0.916083,-0.000000,0.000000,0.400989 -2607,-0.916502,-0.000000,0.000000,0.400029 -2608,-0.916921,-0.000000,0.000000,0.399069 -2609,-0.917338,-0.000000,0.000000,0.398109 -2610,-0.917755,-0.000000,0.000000,0.397148 -2611,-0.918170,-0.000000,0.000000,0.396187 -2612,-0.918584,-0.000000,0.000000,0.395225 -2613,-0.918998,-0.000000,0.000000,0.394263 -2614,-0.919410,-0.000000,0.000000,0.393300 -2615,-0.919821,-0.000000,0.000000,0.392337 -2616,-0.920232,-0.000000,0.000000,0.391374 -2617,-0.920641,-0.000000,0.000000,0.390410 -2618,-0.921050,-0.000000,0.000000,0.389445 -2619,-0.921457,-0.000000,0.000000,0.388481 -2620,-0.921863,-0.000000,0.000000,0.387516 -2621,-0.922268,-0.000000,0.000000,0.386550 -2622,-0.922673,-0.000000,0.000000,0.385584 -2623,-0.923076,-0.000000,0.000000,0.384618 -2624,-0.923478,-0.000000,0.000000,0.383651 -2625,-0.923880,-0.000000,0.000000,0.382683 -2626,-0.924280,-0.000000,0.000000,0.381716 -2627,-0.924679,-0.000000,0.000000,0.380748 -2628,-0.925077,-0.000000,0.000000,0.379779 -2629,-0.925474,-0.000000,0.000000,0.378810 -2630,-0.925871,-0.000000,0.000000,0.377841 -2631,-0.926266,-0.000000,0.000000,0.376871 -2632,-0.926660,-0.000000,0.000000,0.375901 -2633,-0.927053,-0.000000,0.000000,0.374930 -2634,-0.927445,-0.000000,0.000000,0.373959 -2635,-0.927836,-0.000000,0.000000,0.372988 -2636,-0.928226,-0.000000,0.000000,0.372016 -2637,-0.928615,-0.000000,0.000000,0.371044 -2638,-0.929003,-0.000000,0.000000,0.370071 -2639,-0.929390,-0.000000,0.000000,0.369098 -2640,-0.929776,-0.000000,0.000000,0.368125 -2641,-0.930161,-0.000000,0.000000,0.367151 -2642,-0.930545,-0.000000,0.000000,0.366176 -2643,-0.930928,-0.000000,0.000000,0.365202 -2644,-0.931310,-0.000000,0.000000,0.364227 -2645,-0.931691,-0.000000,0.000000,0.363251 -2646,-0.932071,-0.000000,0.000000,0.362275 -2647,-0.932450,-0.000000,0.000000,0.361299 -2648,-0.932828,-0.000000,0.000000,0.360322 -2649,-0.933205,-0.000000,0.000000,0.359345 -2650,-0.933580,-0.000000,0.000000,0.358368 -2651,-0.933955,-0.000000,0.000000,0.357390 -2652,-0.934329,-0.000000,0.000000,0.356412 -2653,-0.934702,-0.000000,0.000000,0.355433 -2654,-0.935073,-0.000000,0.000000,0.354454 -2655,-0.935444,-0.000000,0.000000,0.353475 -2656,-0.935814,-0.000000,0.000000,0.352495 -2657,-0.936182,-0.000000,0.000000,0.351515 -2658,-0.936550,-0.000000,0.000000,0.350534 -2659,-0.936916,-0.000000,0.000000,0.349553 -2660,-0.937282,-0.000000,0.000000,0.348572 -2661,-0.937646,-0.000000,0.000000,0.347590 -2662,-0.938010,-0.000000,0.000000,0.346608 -2663,-0.938372,-0.000000,0.000000,0.345626 -2664,-0.938734,-0.000000,0.000000,0.344643 -2665,-0.939094,-0.000000,0.000000,0.343660 -2666,-0.939454,-0.000000,0.000000,0.342676 -2667,-0.939812,-0.000000,0.000000,0.341692 -2668,-0.940169,-0.000000,0.000000,0.340708 -2669,-0.940526,-0.000000,0.000000,0.339723 -2670,-0.940881,-0.000000,0.000000,0.338738 -2671,-0.941235,-0.000000,0.000000,0.337752 -2672,-0.941588,-0.000000,0.000000,0.336767 -2673,-0.941940,-0.000000,0.000000,0.335780 -2674,-0.942291,-0.000000,0.000000,0.334794 -2675,-0.942641,-0.000000,0.000000,0.333807 -2676,-0.942991,-0.000000,0.000000,0.332820 -2677,-0.943339,-0.000000,0.000000,0.331832 -2678,-0.943686,-0.000000,0.000000,0.330844 -2679,-0.944031,-0.000000,0.000000,0.329855 -2680,-0.944376,-0.000000,0.000000,0.328867 -2681,-0.944720,-0.000000,0.000000,0.327878 -2682,-0.945063,-0.000000,0.000000,0.326888 -2683,-0.945405,-0.000000,0.000000,0.325898 -2684,-0.945746,-0.000000,0.000000,0.324908 -2685,-0.946085,-0.000000,0.000000,0.323917 -2686,-0.946424,-0.000000,0.000000,0.322927 -2687,-0.946762,-0.000000,0.000000,0.321935 -2688,-0.947098,-0.000000,0.000000,0.320944 -2689,-0.947434,-0.000000,0.000000,0.319952 -2690,-0.947768,-0.000000,0.000000,0.318959 -2691,-0.948102,-0.000000,0.000000,0.317967 -2692,-0.948434,-0.000000,0.000000,0.316974 -2693,-0.948766,-0.000000,0.000000,0.315980 -2694,-0.949096,-0.000000,0.000000,0.314987 -2695,-0.949425,-0.000000,0.000000,0.313992 -2696,-0.949754,-0.000000,0.000000,0.312998 -2697,-0.950081,-0.000000,0.000000,0.312003 -2698,-0.950407,-0.000000,0.000000,0.311008 -2699,-0.950732,-0.000000,0.000000,0.310013 -2700,-0.951057,-0.000000,0.000000,0.309017 -2701,-0.951380,-0.000000,0.000000,0.308021 -2702,-0.951702,-0.000000,0.000000,0.307024 -2703,-0.952023,-0.000000,0.000000,0.306028 -2704,-0.952343,-0.000000,0.000000,0.305031 -2705,-0.952661,-0.000000,0.000000,0.304033 -2706,-0.952979,-0.000000,0.000000,0.303035 -2707,-0.953296,-0.000000,0.000000,0.302037 -2708,-0.953612,-0.000000,0.000000,0.301039 -2709,-0.953927,-0.000000,0.000000,0.300040 -2710,-0.954240,-0.000000,0.000000,0.299041 -2711,-0.954553,-0.000000,0.000000,0.298041 -2712,-0.954865,-0.000000,0.000000,0.297042 -2713,-0.955175,-0.000000,0.000000,0.296041 -2714,-0.955485,-0.000000,0.000000,0.295041 -2715,-0.955793,-0.000000,0.000000,0.294040 -2716,-0.956100,-0.000000,0.000000,0.293039 -2717,-0.956407,-0.000000,0.000000,0.292038 -2718,-0.956712,-0.000000,0.000000,0.291036 -2719,-0.957016,-0.000000,0.000000,0.290034 -2720,-0.957319,-0.000000,0.000000,0.289032 -2721,-0.957622,-0.000000,0.000000,0.288029 -2722,-0.957923,-0.000000,0.000000,0.287026 -2723,-0.958223,-0.000000,0.000000,0.286023 -2724,-0.958522,-0.000000,0.000000,0.285019 -2725,-0.958820,-0.000000,0.000000,0.284015 -2726,-0.959117,-0.000000,0.000000,0.283011 -2727,-0.959412,-0.000000,0.000000,0.282007 -2728,-0.959707,-0.000000,0.000000,0.281002 -2729,-0.960001,-0.000000,0.000000,0.279997 -2730,-0.960294,-0.000000,0.000000,0.278991 -2731,-0.960585,-0.000000,0.000000,0.277985 -2732,-0.960876,-0.000000,0.000000,0.276979 -2733,-0.961165,-0.000000,0.000000,0.275973 -2734,-0.961454,-0.000000,0.000000,0.274966 -2735,-0.961741,-0.000000,0.000000,0.273959 -2736,-0.962028,-0.000000,0.000000,0.272952 -2737,-0.962313,-0.000000,0.000000,0.271944 -2738,-0.962597,-0.000000,0.000000,0.270936 -2739,-0.962880,-0.000000,0.000000,0.269928 -2740,-0.963163,-0.000000,0.000000,0.268920 -2741,-0.963444,-0.000000,0.000000,0.267911 -2742,-0.963724,-0.000000,0.000000,0.266902 -2743,-0.964003,-0.000000,0.000000,0.265893 -2744,-0.964281,-0.000000,0.000000,0.264883 -2745,-0.964557,-0.000000,0.000000,0.263873 -2746,-0.964833,-0.000000,0.000000,0.262863 -2747,-0.965108,-0.000000,0.000000,0.261852 -2748,-0.965382,-0.000000,0.000000,0.260842 -2749,-0.965654,-0.000000,0.000000,0.259830 -2750,-0.965926,-0.000000,0.000000,0.258819 -2751,-0.966196,-0.000000,0.000000,0.257807 -2752,-0.966466,-0.000000,0.000000,0.256795 -2753,-0.966734,-0.000000,0.000000,0.255783 -2754,-0.967001,-0.000000,0.000000,0.254771 -2755,-0.967268,-0.000000,0.000000,0.253758 -2756,-0.967533,-0.000000,0.000000,0.252745 -2757,-0.967797,-0.000000,0.000000,0.251732 -2758,-0.968060,-0.000000,0.000000,0.250718 -2759,-0.968322,-0.000000,0.000000,0.249704 -2760,-0.968583,-0.000000,0.000000,0.248690 -2761,-0.968843,-0.000000,0.000000,0.247675 -2762,-0.969102,-0.000000,0.000000,0.246661 -2763,-0.969360,-0.000000,0.000000,0.245646 -2764,-0.969616,-0.000000,0.000000,0.244631 -2765,-0.969872,-0.000000,0.000000,0.243615 -2766,-0.970127,-0.000000,0.000000,0.242599 -2767,-0.970380,-0.000000,0.000000,0.241583 -2768,-0.970633,-0.000000,0.000000,0.240567 -2769,-0.970884,-0.000000,0.000000,0.239550 -2770,-0.971134,-0.000000,0.000000,0.238533 -2771,-0.971384,-0.000000,0.000000,0.237516 -2772,-0.971632,-0.000000,0.000000,0.236499 -2773,-0.971879,-0.000000,0.000000,0.235481 -2774,-0.972125,-0.000000,0.000000,0.234463 -2775,-0.972370,-0.000000,0.000000,0.233445 -2776,-0.972614,-0.000000,0.000000,0.232427 -2777,-0.972857,-0.000000,0.000000,0.231408 -2778,-0.973099,-0.000000,0.000000,0.230389 -2779,-0.973339,-0.000000,0.000000,0.229370 -2780,-0.973579,-0.000000,0.000000,0.228351 -2781,-0.973817,-0.000000,0.000000,0.227331 -2782,-0.974055,-0.000000,0.000000,0.226311 -2783,-0.974291,-0.000000,0.000000,0.225291 -2784,-0.974527,-0.000000,0.000000,0.224271 -2785,-0.974761,-0.000000,0.000000,0.223250 -2786,-0.974994,-0.000000,0.000000,0.222229 -2787,-0.975227,-0.000000,0.000000,0.221208 -2788,-0.975458,-0.000000,0.000000,0.220187 -2789,-0.975688,-0.000000,0.000000,0.219165 -2790,-0.975917,-0.000000,0.000000,0.218143 -2791,-0.976145,-0.000000,0.000000,0.217121 -2792,-0.976371,-0.000000,0.000000,0.216099 -2793,-0.976597,-0.000000,0.000000,0.215076 -2794,-0.976822,-0.000000,0.000000,0.214053 -2795,-0.977046,-0.000000,0.000000,0.213030 -2796,-0.977268,-0.000000,0.000000,0.212007 -2797,-0.977490,-0.000000,0.000000,0.210984 -2798,-0.977710,-0.000000,0.000000,0.209960 -2799,-0.977929,-0.000000,0.000000,0.208936 -2800,-0.978148,-0.000000,0.000000,0.207912 -2801,-0.978365,-0.000000,0.000000,0.206887 -2802,-0.978581,-0.000000,0.000000,0.205863 -2803,-0.978796,-0.000000,0.000000,0.204838 -2804,-0.979010,-0.000000,0.000000,0.203813 -2805,-0.979223,-0.000000,0.000000,0.202787 -2806,-0.979435,-0.000000,0.000000,0.201762 -2807,-0.979645,-0.000000,0.000000,0.200736 -2808,-0.979855,-0.000000,0.000000,0.199710 -2809,-0.980064,-0.000000,0.000000,0.198684 -2810,-0.980271,-0.000000,0.000000,0.197657 -2811,-0.980478,-0.000000,0.000000,0.196631 -2812,-0.980683,-0.000000,0.000000,0.195604 -2813,-0.980887,-0.000000,0.000000,0.194577 -2814,-0.981091,-0.000000,0.000000,0.193549 -2815,-0.981293,-0.000000,0.000000,0.192522 -2816,-0.981494,-0.000000,0.000000,0.191494 -2817,-0.981694,-0.000000,0.000000,0.190466 -2818,-0.981893,-0.000000,0.000000,0.189438 -2819,-0.982090,-0.000000,0.000000,0.188410 -2820,-0.982287,-0.000000,0.000000,0.187381 -2821,-0.982483,-0.000000,0.000000,0.186353 -2822,-0.982678,-0.000000,0.000000,0.185324 -2823,-0.982871,-0.000000,0.000000,0.184294 -2824,-0.983064,-0.000000,0.000000,0.183265 -2825,-0.983255,-0.000000,0.000000,0.182236 -2826,-0.983445,-0.000000,0.000000,0.181206 -2827,-0.983634,-0.000000,0.000000,0.180176 -2828,-0.983823,-0.000000,0.000000,0.179146 -2829,-0.984010,-0.000000,0.000000,0.178115 -2830,-0.984196,-0.000000,0.000000,0.177085 -2831,-0.984381,-0.000000,0.000000,0.176054 -2832,-0.984564,-0.000000,0.000000,0.175023 -2833,-0.984747,-0.000000,0.000000,0.173992 -2834,-0.984929,-0.000000,0.000000,0.172961 -2835,-0.985109,-0.000000,0.000000,0.171929 -2836,-0.985289,-0.000000,0.000000,0.170897 -2837,-0.985467,-0.000000,0.000000,0.169866 -2838,-0.985645,-0.000000,0.000000,0.168833 -2839,-0.985821,-0.000000,0.000000,0.167801 -2840,-0.985996,-0.000000,0.000000,0.166769 -2841,-0.986170,-0.000000,0.000000,0.165736 -2842,-0.986343,-0.000000,0.000000,0.164703 -2843,-0.986515,-0.000000,0.000000,0.163670 -2844,-0.986686,-0.000000,0.000000,0.162637 -2845,-0.986856,-0.000000,0.000000,0.161604 -2846,-0.987024,-0.000000,0.000000,0.160570 -2847,-0.987192,-0.000000,0.000000,0.159537 -2848,-0.987359,-0.000000,0.000000,0.158503 -2849,-0.987524,-0.000000,0.000000,0.157469 -2850,-0.987688,-0.000000,0.000000,0.156434 -2851,-0.987852,-0.000000,0.000000,0.155400 -2852,-0.988014,-0.000000,0.000000,0.154366 -2853,-0.988175,-0.000000,0.000000,0.153331 -2854,-0.988335,-0.000000,0.000000,0.152296 -2855,-0.988494,-0.000000,0.000000,0.151261 -2856,-0.988652,-0.000000,0.000000,0.150226 -2857,-0.988809,-0.000000,0.000000,0.149190 -2858,-0.988964,-0.000000,0.000000,0.148155 -2859,-0.989119,-0.000000,0.000000,0.147119 -2860,-0.989272,-0.000000,0.000000,0.146083 -2861,-0.989425,-0.000000,0.000000,0.145047 -2862,-0.989576,-0.000000,0.000000,0.144011 -2863,-0.989726,-0.000000,0.000000,0.142974 -2864,-0.989876,-0.000000,0.000000,0.141938 -2865,-0.990024,-0.000000,0.000000,0.140901 -2866,-0.990171,-0.000000,0.000000,0.139864 -2867,-0.990317,-0.000000,0.000000,0.138827 -2868,-0.990461,-0.000000,0.000000,0.137790 -2869,-0.990605,-0.000000,0.000000,0.136753 -2870,-0.990748,-0.000000,0.000000,0.135716 -2871,-0.990889,-0.000000,0.000000,0.134678 -2872,-0.991030,-0.000000,0.000000,0.133640 -2873,-0.991169,-0.000000,0.000000,0.132602 -2874,-0.991308,-0.000000,0.000000,0.131564 -2875,-0.991445,-0.000000,0.000000,0.130526 -2876,-0.991581,-0.000000,0.000000,0.129488 -2877,-0.991716,-0.000000,0.000000,0.128449 -2878,-0.991850,-0.000000,0.000000,0.127411 -2879,-0.991983,-0.000000,0.000000,0.126372 -2880,-0.992115,-0.000000,0.000000,0.125333 -2881,-0.992245,-0.000000,0.000000,0.124294 -2882,-0.992375,-0.000000,0.000000,0.123255 -2883,-0.992504,-0.000000,0.000000,0.122216 -2884,-0.992631,-0.000000,0.000000,0.121176 -2885,-0.992757,-0.000000,0.000000,0.120137 -2886,-0.992883,-0.000000,0.000000,0.119097 -2887,-0.993007,-0.000000,0.000000,0.118057 -2888,-0.993130,-0.000000,0.000000,0.117017 -2889,-0.993252,-0.000000,0.000000,0.115977 -2890,-0.993373,-0.000000,0.000000,0.114937 -2891,-0.993493,-0.000000,0.000000,0.113897 -2892,-0.993611,-0.000000,0.000000,0.112856 -2893,-0.993729,-0.000000,0.000000,0.111816 -2894,-0.993845,-0.000000,0.000000,0.110775 -2895,-0.993961,-0.000000,0.000000,0.109734 -2896,-0.994075,-0.000000,0.000000,0.108693 -2897,-0.994189,-0.000000,0.000000,0.107652 -2898,-0.994301,-0.000000,0.000000,0.106611 -2899,-0.994412,-0.000000,0.000000,0.105570 -2900,-0.994522,-0.000000,0.000000,0.104528 -2901,-0.994631,-0.000000,0.000000,0.103487 -2902,-0.994739,-0.000000,0.000000,0.102445 -2903,-0.994845,-0.000000,0.000000,0.101404 -2904,-0.994951,-0.000000,0.000000,0.100362 -2905,-0.995056,-0.000000,0.000000,0.099320 -2906,-0.995159,-0.000000,0.000000,0.098278 -2907,-0.995261,-0.000000,0.000000,0.097235 -2908,-0.995363,-0.000000,0.000000,0.096193 -2909,-0.995463,-0.000000,0.000000,0.095151 -2910,-0.995562,-0.000000,0.000000,0.094108 -2911,-0.995660,-0.000000,0.000000,0.093066 -2912,-0.995757,-0.000000,0.000000,0.092023 -2913,-0.995853,-0.000000,0.000000,0.090980 -2914,-0.995947,-0.000000,0.000000,0.089937 -2915,-0.996041,-0.000000,0.000000,0.088894 -2916,-0.996134,-0.000000,0.000000,0.087851 -2917,-0.996225,-0.000000,0.000000,0.086808 -2918,-0.996315,-0.000000,0.000000,0.085765 -2919,-0.996405,-0.000000,0.000000,0.084721 -2920,-0.996493,-0.000000,0.000000,0.083678 -2921,-0.996580,-0.000000,0.000000,0.082634 -2922,-0.996666,-0.000000,0.000000,0.081591 -2923,-0.996751,-0.000000,0.000000,0.080547 -2924,-0.996835,-0.000000,0.000000,0.079503 -2925,-0.996917,-0.000000,0.000000,0.078459 -2926,-0.996999,-0.000000,0.000000,0.077415 -2927,-0.997079,-0.000000,0.000000,0.076371 -2928,-0.997159,-0.000000,0.000000,0.075327 -2929,-0.997237,-0.000000,0.000000,0.074283 -2930,-0.997314,-0.000000,0.000000,0.073238 -2931,-0.997391,-0.000000,0.000000,0.072194 -2932,-0.997466,-0.000000,0.000000,0.071149 -2933,-0.997540,-0.000000,0.000000,0.070105 -2934,-0.997613,-0.000000,0.000000,0.069060 -2935,-0.997684,-0.000000,0.000000,0.068015 -2936,-0.997755,-0.000000,0.000000,0.066970 -2937,-0.997825,-0.000000,0.000000,0.065926 -2938,-0.997893,-0.000000,0.000000,0.064881 -2939,-0.997960,-0.000000,0.000000,0.063836 -2940,-0.998027,-0.000000,0.000000,0.062791 -2941,-0.998092,-0.000000,0.000000,0.061745 -2942,-0.998156,-0.000000,0.000000,0.060700 -2943,-0.998219,-0.000000,0.000000,0.059655 -2944,-0.998281,-0.000000,0.000000,0.058609 -2945,-0.998342,-0.000000,0.000000,0.057564 -2946,-0.998402,-0.000000,0.000000,0.056519 -2947,-0.998460,-0.000000,0.000000,0.055473 -2948,-0.998518,-0.000000,0.000000,0.054427 -2949,-0.998574,-0.000000,0.000000,0.053382 -2950,-0.998630,-0.000000,0.000000,0.052336 -2951,-0.998684,-0.000000,0.000000,0.051290 -2952,-0.998737,-0.000000,0.000000,0.050244 -2953,-0.998789,-0.000000,0.000000,0.049198 -2954,-0.998840,-0.000000,0.000000,0.048152 -2955,-0.998890,-0.000000,0.000000,0.047106 -2956,-0.998939,-0.000000,0.000000,0.046060 -2957,-0.998986,-0.000000,0.000000,0.045014 -2958,-0.999033,-0.000000,0.000000,0.043968 -2959,-0.999078,-0.000000,0.000000,0.042922 -2960,-0.999123,-0.000000,0.000000,0.041876 -2961,-0.999166,-0.000000,0.000000,0.040829 -2962,-0.999208,-0.000000,0.000000,0.039783 -2963,-0.999249,-0.000000,0.000000,0.038737 -2964,-0.999289,-0.000000,0.000000,0.037690 -2965,-0.999328,-0.000000,0.000000,0.036644 -2966,-0.999366,-0.000000,0.000000,0.035597 -2967,-0.999403,-0.000000,0.000000,0.034551 -2968,-0.999439,-0.000000,0.000000,0.033504 -2969,-0.999473,-0.000000,0.000000,0.032457 -2970,-0.999507,-0.000000,0.000000,0.031411 -2971,-0.999539,-0.000000,0.000000,0.030364 -2972,-0.999570,-0.000000,0.000000,0.029317 -2973,-0.999600,-0.000000,0.000000,0.028271 -2974,-0.999629,-0.000000,0.000000,0.027224 -2975,-0.999657,-0.000000,0.000000,0.026177 -2976,-0.999684,-0.000000,0.000000,0.025130 -2977,-0.999710,-0.000000,0.000000,0.024083 -2978,-0.999735,-0.000000,0.000000,0.023036 -2979,-0.999758,-0.000000,0.000000,0.021989 -2980,-0.999781,-0.000000,0.000000,0.020942 -2981,-0.999802,-0.000000,0.000000,0.019895 -2982,-0.999822,-0.000000,0.000000,0.018848 -2983,-0.999842,-0.000000,0.000000,0.017801 -2984,-0.999860,-0.000000,0.000000,0.016754 -2985,-0.999877,-0.000000,0.000000,0.015707 -2986,-0.999893,-0.000000,0.000000,0.014660 -2987,-0.999907,-0.000000,0.000000,0.013613 -2988,-0.999921,-0.000000,0.000000,0.012566 -2989,-0.999934,-0.000000,0.000000,0.011519 -2990,-0.999945,-0.000000,0.000000,0.010472 -2991,-0.999956,-0.000000,0.000000,0.009425 -2992,-0.999965,-0.000000,0.000000,0.008377 -2993,-0.999973,-0.000000,0.000000,0.007330 -2994,-0.999980,-0.000000,0.000000,0.006283 -2995,-0.999986,-0.000000,0.000000,0.005236 -2996,-0.999991,-0.000000,0.000000,0.004189 -2997,-0.999995,-0.000000,0.000000,0.003142 -2998,-0.999998,-0.000000,0.000000,0.002094 -2999,-0.999999,-0.000000,0.000000,0.001047 diff --git a/scripts/testv/headrot_case01_3000_q.csv b/scripts/testv/headrot_case01_3000_q.csv index 526ff57a19..e69de29bb2 100644 --- a/scripts/testv/headrot_case01_3000_q.csv +++ b/scripts/testv/headrot_case01_3000_q.csv @@ -1,3000 +0,0 @@ -0,1.000000,0.000000,0.000000,0.000000 -1,0.999999,0.000000,0.001047,0.000000 -2,0.999998,0.000000,0.002094,0.000000 -3,0.999995,0.000000,0.003142,0.000000 -4,0.999991,0.000000,0.004189,0.000000 -5,0.999986,0.000000,0.005236,0.000000 -6,0.999980,0.000000,0.006283,0.000000 -7,0.999973,0.000000,0.007330,0.000000 -8,0.999965,0.000000,0.008377,0.000000 -9,0.999956,0.000000,0.009425,0.000000 -10,0.999945,0.000000,0.010472,0.000000 -11,0.999934,0.000000,0.011519,0.000000 -12,0.999921,0.000000,0.012566,0.000000 -13,0.999907,0.000000,0.013613,0.000000 -14,0.999893,0.000000,0.014660,0.000000 -15,0.999877,0.000000,0.015707,0.000000 -16,0.999860,0.000000,0.016754,0.000000 -17,0.999842,0.000000,0.017801,0.000000 -18,0.999822,0.000000,0.018848,0.000000 -19,0.999802,0.000000,0.019895,0.000000 -20,0.999781,0.000000,0.020942,0.000000 -21,0.999758,0.000000,0.021989,0.000000 -22,0.999735,0.000000,0.023036,0.000000 -23,0.999710,0.000000,0.024083,0.000000 -24,0.999684,0.000000,0.025130,0.000000 -25,0.999657,0.000000,0.026177,0.000000 -26,0.999629,0.000000,0.027224,0.000000 -27,0.999600,0.000000,0.028271,0.000000 -28,0.999570,0.000000,0.029317,0.000000 -29,0.999539,0.000000,0.030364,0.000000 -30,0.999507,0.000000,0.031411,0.000000 -31,0.999473,0.000000,0.032457,0.000000 -32,0.999439,0.000000,0.033504,0.000000 -33,0.999403,0.000000,0.034551,0.000000 -34,0.999366,0.000000,0.035597,0.000000 -35,0.999328,0.000000,0.036644,0.000000 -36,0.999289,0.000000,0.037690,0.000000 -37,0.999249,0.000000,0.038737,0.000000 -38,0.999208,0.000000,0.039783,0.000000 -39,0.999166,0.000000,0.040829,0.000000 -40,0.999123,0.000000,0.041876,0.000000 -41,0.999078,0.000000,0.042922,0.000000 -42,0.999033,0.000000,0.043968,0.000000 -43,0.998986,0.000000,0.045014,0.000000 -44,0.998939,0.000000,0.046060,0.000000 -45,0.998890,0.000000,0.047106,0.000000 -46,0.998840,0.000000,0.048152,0.000000 -47,0.998789,0.000000,0.049198,0.000000 -48,0.998737,0.000000,0.050244,0.000000 -49,0.998684,0.000000,0.051290,0.000000 -50,0.998630,0.000000,0.052336,0.000000 -51,0.998574,0.000000,0.053382,0.000000 -52,0.998518,0.000000,0.054427,0.000000 -53,0.998460,0.000000,0.055473,0.000000 -54,0.998402,0.000000,0.056519,0.000000 -55,0.998342,0.000000,0.057564,0.000000 -56,0.998281,0.000000,0.058609,0.000000 -57,0.998219,0.000000,0.059655,0.000000 -58,0.998156,0.000000,0.060700,0.000000 -59,0.998092,0.000000,0.061745,0.000000 -60,0.998027,0.000000,0.062791,0.000000 -61,0.997960,0.000000,0.063836,0.000000 -62,0.997893,0.000000,0.064881,0.000000 -63,0.997825,0.000000,0.065926,0.000000 -64,0.997755,0.000000,0.066970,0.000000 -65,0.997684,0.000000,0.068015,0.000000 -66,0.997613,0.000000,0.069060,0.000000 -67,0.997540,0.000000,0.070105,0.000000 -68,0.997466,0.000000,0.071149,0.000000 -69,0.997391,0.000000,0.072194,0.000000 -70,0.997314,0.000000,0.073238,0.000000 -71,0.997237,0.000000,0.074283,0.000000 -72,0.997159,0.000000,0.075327,0.000000 -73,0.997079,0.000000,0.076371,0.000000 -74,0.996999,0.000000,0.077415,0.000000 -75,0.996917,0.000000,0.078459,0.000000 -76,0.996835,0.000000,0.079503,0.000000 -77,0.996751,0.000000,0.080547,0.000000 -78,0.996666,0.000000,0.081591,0.000000 -79,0.996580,0.000000,0.082634,0.000000 -80,0.996493,0.000000,0.083678,0.000000 -81,0.996405,0.000000,0.084721,0.000000 -82,0.996315,0.000000,0.085765,0.000000 -83,0.996225,0.000000,0.086808,0.000000 -84,0.996134,0.000000,0.087851,0.000000 -85,0.996041,0.000000,0.088894,0.000000 -86,0.995947,0.000000,0.089937,0.000000 -87,0.995853,0.000000,0.090980,0.000000 -88,0.995757,0.000000,0.092023,0.000000 -89,0.995660,0.000000,0.093066,0.000000 -90,0.995562,0.000000,0.094108,0.000000 -91,0.995463,0.000000,0.095151,0.000000 -92,0.995363,0.000000,0.096193,0.000000 -93,0.995261,0.000000,0.097235,0.000000 -94,0.995159,0.000000,0.098278,0.000000 -95,0.995056,0.000000,0.099320,0.000000 -96,0.994951,0.000000,0.100362,0.000000 -97,0.994845,0.000000,0.101404,0.000000 -98,0.994739,0.000000,0.102445,0.000000 -99,0.994631,0.000000,0.103487,0.000000 -100,0.994522,0.000000,0.104528,0.000000 -101,0.994412,0.000000,0.105570,0.000000 -102,0.994301,0.000000,0.106611,0.000000 -103,0.994189,0.000000,0.107652,0.000000 -104,0.994075,0.000000,0.108693,0.000000 -105,0.993961,0.000000,0.109734,0.000000 -106,0.993845,0.000000,0.110775,0.000000 -107,0.993729,0.000000,0.111816,0.000000 -108,0.993611,0.000000,0.112856,0.000000 -109,0.993493,0.000000,0.113897,0.000000 -110,0.993373,0.000000,0.114937,0.000000 -111,0.993252,0.000000,0.115977,0.000000 -112,0.993130,0.000000,0.117017,0.000000 -113,0.993007,0.000000,0.118057,0.000000 -114,0.992883,0.000000,0.119097,0.000000 -115,0.992757,0.000000,0.120137,0.000000 -116,0.992631,0.000000,0.121176,0.000000 -117,0.992504,0.000000,0.122216,0.000000 -118,0.992375,0.000000,0.123255,0.000000 -119,0.992245,0.000000,0.124294,0.000000 -120,0.992115,0.000000,0.125333,0.000000 -121,0.991983,0.000000,0.126372,0.000000 -122,0.991850,0.000000,0.127411,0.000000 -123,0.991716,0.000000,0.128449,0.000000 -124,0.991581,0.000000,0.129488,0.000000 -125,0.991445,0.000000,0.130526,0.000000 -126,0.991308,0.000000,0.131564,0.000000 -127,0.991169,0.000000,0.132602,0.000000 -128,0.991030,0.000000,0.133640,0.000000 -129,0.990889,0.000000,0.134678,0.000000 -130,0.990748,0.000000,0.135716,0.000000 -131,0.990605,0.000000,0.136753,0.000000 -132,0.990461,0.000000,0.137790,0.000000 -133,0.990317,0.000000,0.138827,0.000000 -134,0.990171,0.000000,0.139864,0.000000 -135,0.990024,0.000000,0.140901,0.000000 -136,0.989876,0.000000,0.141938,0.000000 -137,0.989726,0.000000,0.142974,0.000000 -138,0.989576,0.000000,0.144011,0.000000 -139,0.989425,0.000000,0.145047,0.000000 -140,0.989272,0.000000,0.146083,0.000000 -141,0.989119,0.000000,0.147119,0.000000 -142,0.988964,0.000000,0.148155,0.000000 -143,0.988809,0.000000,0.149190,0.000000 -144,0.988652,0.000000,0.150226,0.000000 -145,0.988494,0.000000,0.151261,0.000000 -146,0.988335,0.000000,0.152296,0.000000 -147,0.988175,0.000000,0.153331,0.000000 -148,0.988014,0.000000,0.154366,0.000000 -149,0.987852,0.000000,0.155400,0.000000 -150,0.987688,0.000000,0.156434,0.000000 -151,0.987524,0.000000,0.157469,0.000000 -152,0.987359,0.000000,0.158503,0.000000 -153,0.987192,0.000000,0.159537,0.000000 -154,0.987024,0.000000,0.160570,0.000000 -155,0.986856,0.000000,0.161604,0.000000 -156,0.986686,0.000000,0.162637,0.000000 -157,0.986515,0.000000,0.163670,0.000000 -158,0.986343,0.000000,0.164703,0.000000 -159,0.986170,0.000000,0.165736,0.000000 -160,0.985996,0.000000,0.166769,0.000000 -161,0.985821,0.000000,0.167801,0.000000 -162,0.985645,0.000000,0.168833,0.000000 -163,0.985467,0.000000,0.169866,0.000000 -164,0.985289,0.000000,0.170897,0.000000 -165,0.985109,0.000000,0.171929,0.000000 -166,0.984929,0.000000,0.172961,0.000000 -167,0.984747,0.000000,0.173992,0.000000 -168,0.984564,0.000000,0.175023,0.000000 -169,0.984381,0.000000,0.176054,0.000000 -170,0.984196,0.000000,0.177085,0.000000 -171,0.984010,0.000000,0.178115,0.000000 -172,0.983823,0.000000,0.179146,0.000000 -173,0.983634,0.000000,0.180176,0.000000 -174,0.983445,0.000000,0.181206,0.000000 -175,0.983255,0.000000,0.182236,0.000000 -176,0.983064,0.000000,0.183265,0.000000 -177,0.982871,0.000000,0.184294,0.000000 -178,0.982678,0.000000,0.185324,0.000000 -179,0.982483,0.000000,0.186353,0.000000 -180,0.982287,0.000000,0.187381,0.000000 -181,0.982090,0.000000,0.188410,0.000000 -182,0.981893,0.000000,0.189438,0.000000 -183,0.981694,0.000000,0.190466,0.000000 -184,0.981494,0.000000,0.191494,0.000000 -185,0.981293,0.000000,0.192522,0.000000 -186,0.981091,0.000000,0.193549,0.000000 -187,0.980887,0.000000,0.194577,0.000000 -188,0.980683,0.000000,0.195604,0.000000 -189,0.980478,0.000000,0.196631,0.000000 -190,0.980271,0.000000,0.197657,0.000000 -191,0.980064,0.000000,0.198684,0.000000 -192,0.979855,0.000000,0.199710,0.000000 -193,0.979645,0.000000,0.200736,0.000000 -194,0.979435,0.000000,0.201762,0.000000 -195,0.979223,0.000000,0.202787,0.000000 -196,0.979010,0.000000,0.203813,0.000000 -197,0.978796,0.000000,0.204838,0.000000 -198,0.978581,0.000000,0.205863,0.000000 -199,0.978365,0.000000,0.206887,0.000000 -200,0.978148,0.000000,0.207912,0.000000 -201,0.977929,0.000000,0.208936,0.000000 -202,0.977710,0.000000,0.209960,0.000000 -203,0.977490,0.000000,0.210984,0.000000 -204,0.977268,0.000000,0.212007,0.000000 -205,0.977046,0.000000,0.213030,0.000000 -206,0.976822,0.000000,0.214053,0.000000 -207,0.976597,0.000000,0.215076,0.000000 -208,0.976371,0.000000,0.216099,0.000000 -209,0.976145,0.000000,0.217121,0.000000 -210,0.975917,0.000000,0.218143,0.000000 -211,0.975688,0.000000,0.219165,0.000000 -212,0.975458,0.000000,0.220187,0.000000 -213,0.975227,0.000000,0.221208,0.000000 -214,0.974994,0.000000,0.222229,0.000000 -215,0.974761,0.000000,0.223250,0.000000 -216,0.974527,0.000000,0.224271,0.000000 -217,0.974291,0.000000,0.225291,0.000000 -218,0.974055,0.000000,0.226311,0.000000 -219,0.973817,0.000000,0.227331,0.000000 -220,0.973579,0.000000,0.228351,0.000000 -221,0.973339,0.000000,0.229370,0.000000 -222,0.973099,0.000000,0.230389,0.000000 -223,0.972857,0.000000,0.231408,0.000000 -224,0.972614,0.000000,0.232427,0.000000 -225,0.972370,0.000000,0.233445,0.000000 -226,0.972125,0.000000,0.234463,0.000000 -227,0.971879,0.000000,0.235481,0.000000 -228,0.971632,0.000000,0.236499,0.000000 -229,0.971384,0.000000,0.237516,0.000000 -230,0.971134,0.000000,0.238533,0.000000 -231,0.970884,0.000000,0.239550,0.000000 -232,0.970633,0.000000,0.240567,0.000000 -233,0.970380,0.000000,0.241583,0.000000 -234,0.970127,0.000000,0.242599,0.000000 -235,0.969872,0.000000,0.243615,0.000000 -236,0.969616,0.000000,0.244631,0.000000 -237,0.969360,0.000000,0.245646,0.000000 -238,0.969102,0.000000,0.246661,0.000000 -239,0.968843,0.000000,0.247675,0.000000 -240,0.968583,0.000000,0.248690,0.000000 -241,0.968322,0.000000,0.249704,0.000000 -242,0.968060,0.000000,0.250718,0.000000 -243,0.967797,0.000000,0.251732,0.000000 -244,0.967533,0.000000,0.252745,0.000000 -245,0.967268,0.000000,0.253758,0.000000 -246,0.967001,0.000000,0.254771,0.000000 -247,0.966734,0.000000,0.255783,0.000000 -248,0.966466,0.000000,0.256795,0.000000 -249,0.966196,0.000000,0.257807,0.000000 -250,0.965926,0.000000,0.258819,0.000000 -251,0.965654,0.000000,0.259830,0.000000 -252,0.965382,0.000000,0.260842,0.000000 -253,0.965108,0.000000,0.261852,0.000000 -254,0.964833,0.000000,0.262863,0.000000 -255,0.964557,0.000000,0.263873,0.000000 -256,0.964281,0.000000,0.264883,0.000000 -257,0.964003,0.000000,0.265893,0.000000 -258,0.963724,0.000000,0.266902,0.000000 -259,0.963444,0.000000,0.267911,0.000000 -260,0.963163,0.000000,0.268920,0.000000 -261,0.962880,0.000000,0.269928,0.000000 -262,0.962597,0.000000,0.270936,0.000000 -263,0.962313,0.000000,0.271944,0.000000 -264,0.962028,0.000000,0.272952,0.000000 -265,0.961741,0.000000,0.273959,0.000000 -266,0.961454,0.000000,0.274966,0.000000 -267,0.961165,0.000000,0.275973,0.000000 -268,0.960876,0.000000,0.276979,0.000000 -269,0.960585,0.000000,0.277985,0.000000 -270,0.960294,0.000000,0.278991,0.000000 -271,0.960001,0.000000,0.279997,0.000000 -272,0.959707,0.000000,0.281002,0.000000 -273,0.959412,0.000000,0.282007,0.000000 -274,0.959117,0.000000,0.283011,0.000000 -275,0.958820,0.000000,0.284015,0.000000 -276,0.958522,0.000000,0.285019,0.000000 -277,0.958223,0.000000,0.286023,0.000000 -278,0.957923,0.000000,0.287026,0.000000 -279,0.957622,0.000000,0.288029,0.000000 -280,0.957319,0.000000,0.289032,0.000000 -281,0.957016,0.000000,0.290034,0.000000 -282,0.956712,0.000000,0.291036,0.000000 -283,0.956407,0.000000,0.292038,0.000000 -284,0.956100,0.000000,0.293039,0.000000 -285,0.955793,0.000000,0.294040,0.000000 -286,0.955485,0.000000,0.295041,0.000000 -287,0.955175,0.000000,0.296041,0.000000 -288,0.954865,0.000000,0.297042,0.000000 -289,0.954553,0.000000,0.298041,0.000000 -290,0.954240,0.000000,0.299041,0.000000 -291,0.953927,0.000000,0.300040,0.000000 -292,0.953612,0.000000,0.301039,0.000000 -293,0.953296,0.000000,0.302037,0.000000 -294,0.952979,0.000000,0.303035,0.000000 -295,0.952661,0.000000,0.304033,0.000000 -296,0.952343,0.000000,0.305031,0.000000 -297,0.952023,0.000000,0.306028,0.000000 -298,0.951702,0.000000,0.307024,0.000000 -299,0.951380,0.000000,0.308021,0.000000 -300,0.951057,0.000000,0.309017,0.000000 -301,0.950732,0.000000,0.310013,0.000000 -302,0.950407,0.000000,0.311008,0.000000 -303,0.950081,0.000000,0.312003,0.000000 -304,0.949754,0.000000,0.312998,0.000000 -305,0.949425,0.000000,0.313992,0.000000 -306,0.949096,0.000000,0.314987,0.000000 -307,0.948766,0.000000,0.315980,0.000000 -308,0.948434,0.000000,0.316974,0.000000 -309,0.948102,0.000000,0.317967,0.000000 -310,0.947768,0.000000,0.318959,0.000000 -311,0.947434,0.000000,0.319952,0.000000 -312,0.947098,0.000000,0.320944,0.000000 -313,0.946762,0.000000,0.321935,0.000000 -314,0.946424,0.000000,0.322927,0.000000 -315,0.946085,0.000000,0.323917,0.000000 -316,0.945746,0.000000,0.324908,0.000000 -317,0.945405,0.000000,0.325898,0.000000 -318,0.945063,0.000000,0.326888,0.000000 -319,0.944720,0.000000,0.327878,0.000000 -320,0.944376,0.000000,0.328867,0.000000 -321,0.944031,0.000000,0.329855,0.000000 -322,0.943686,0.000000,0.330844,0.000000 -323,0.943339,0.000000,0.331832,0.000000 -324,0.942991,0.000000,0.332820,0.000000 -325,0.942641,0.000000,0.333807,0.000000 -326,0.942291,0.000000,0.334794,0.000000 -327,0.941940,0.000000,0.335780,0.000000 -328,0.941588,0.000000,0.336767,0.000000 -329,0.941235,0.000000,0.337752,0.000000 -330,0.940881,0.000000,0.338738,0.000000 -331,0.940526,0.000000,0.339723,0.000000 -332,0.940169,0.000000,0.340708,0.000000 -333,0.939812,0.000000,0.341692,0.000000 -334,0.939454,0.000000,0.342676,0.000000 -335,0.939094,0.000000,0.343660,0.000000 -336,0.938734,0.000000,0.344643,0.000000 -337,0.938372,0.000000,0.345626,0.000000 -338,0.938010,0.000000,0.346608,0.000000 -339,0.937646,0.000000,0.347590,0.000000 -340,0.937282,0.000000,0.348572,0.000000 -341,0.936916,0.000000,0.349553,0.000000 -342,0.936550,0.000000,0.350534,0.000000 -343,0.936182,0.000000,0.351515,0.000000 -344,0.935814,0.000000,0.352495,0.000000 -345,0.935444,0.000000,0.353475,0.000000 -346,0.935073,0.000000,0.354454,0.000000 -347,0.934702,0.000000,0.355433,0.000000 -348,0.934329,0.000000,0.356412,0.000000 -349,0.933955,0.000000,0.357390,0.000000 -350,0.933580,0.000000,0.358368,0.000000 -351,0.933205,0.000000,0.359345,0.000000 -352,0.932828,0.000000,0.360322,0.000000 -353,0.932450,0.000000,0.361299,0.000000 -354,0.932071,0.000000,0.362275,0.000000 -355,0.931691,0.000000,0.363251,0.000000 -356,0.931310,0.000000,0.364227,0.000000 -357,0.930928,0.000000,0.365202,0.000000 -358,0.930545,0.000000,0.366176,0.000000 -359,0.930161,0.000000,0.367151,0.000000 -360,0.929776,0.000000,0.368125,0.000000 -361,0.929390,0.000000,0.369098,0.000000 -362,0.929003,0.000000,0.370071,0.000000 -363,0.928615,0.000000,0.371044,0.000000 -364,0.928226,0.000000,0.372016,0.000000 -365,0.927836,0.000000,0.372988,0.000000 -366,0.927445,0.000000,0.373959,0.000000 -367,0.927053,0.000000,0.374930,0.000000 -368,0.926660,0.000000,0.375901,0.000000 -369,0.926266,0.000000,0.376871,0.000000 -370,0.925871,0.000000,0.377841,0.000000 -371,0.925474,0.000000,0.378810,0.000000 -372,0.925077,0.000000,0.379779,0.000000 -373,0.924679,0.000000,0.380748,0.000000 -374,0.924280,0.000000,0.381716,0.000000 -375,0.923880,0.000000,0.382683,0.000000 -376,0.923478,0.000000,0.383651,0.000000 -377,0.923076,0.000000,0.384618,0.000000 -378,0.922673,0.000000,0.385584,0.000000 -379,0.922268,0.000000,0.386550,0.000000 -380,0.921863,0.000000,0.387516,0.000000 -381,0.921457,0.000000,0.388481,0.000000 -382,0.921050,0.000000,0.389445,0.000000 -383,0.920641,0.000000,0.390410,0.000000 -384,0.920232,0.000000,0.391374,0.000000 -385,0.919821,0.000000,0.392337,0.000000 -386,0.919410,0.000000,0.393300,0.000000 -387,0.918998,0.000000,0.394263,0.000000 -388,0.918584,0.000000,0.395225,0.000000 -389,0.918170,0.000000,0.396187,0.000000 -390,0.917755,0.000000,0.397148,0.000000 -391,0.917338,0.000000,0.398109,0.000000 -392,0.916921,0.000000,0.399069,0.000000 -393,0.916502,0.000000,0.400029,0.000000 -394,0.916083,0.000000,0.400989,0.000000 -395,0.915663,0.000000,0.401948,0.000000 -396,0.915241,0.000000,0.402906,0.000000 -397,0.914819,0.000000,0.403865,0.000000 -398,0.914395,0.000000,0.404822,0.000000 -399,0.913971,0.000000,0.405780,0.000000 -400,0.913545,0.000000,0.406737,0.000000 -401,0.913119,0.000000,0.407693,0.000000 -402,0.912692,0.000000,0.408649,0.000000 -403,0.912263,0.000000,0.409605,0.000000 -404,0.911834,0.000000,0.410560,0.000000 -405,0.911403,0.000000,0.411514,0.000000 -406,0.910972,0.000000,0.412469,0.000000 -407,0.910539,0.000000,0.413422,0.000000 -408,0.910106,0.000000,0.414376,0.000000 -409,0.909672,0.000000,0.415328,0.000000 -410,0.909236,0.000000,0.416281,0.000000 -411,0.908800,0.000000,0.417233,0.000000 -412,0.908362,0.000000,0.418184,0.000000 -413,0.907924,0.000000,0.419135,0.000000 -414,0.907484,0.000000,0.420086,0.000000 -415,0.907044,0.000000,0.421036,0.000000 -416,0.906603,0.000000,0.421985,0.000000 -417,0.906160,0.000000,0.422935,0.000000 -418,0.905717,0.000000,0.423883,0.000000 -419,0.905272,0.000000,0.424832,0.000000 -420,0.904827,0.000000,0.425779,0.000000 -421,0.904381,0.000000,0.426727,0.000000 -422,0.903933,0.000000,0.427673,0.000000 -423,0.903485,0.000000,0.428620,0.000000 -424,0.903036,0.000000,0.429566,0.000000 -425,0.902585,0.000000,0.430511,0.000000 -426,0.902134,0.000000,0.431456,0.000000 -427,0.901682,0.000000,0.432401,0.000000 -428,0.901228,0.000000,0.433345,0.000000 -429,0.900774,0.000000,0.434288,0.000000 -430,0.900319,0.000000,0.435231,0.000000 -431,0.899863,0.000000,0.436174,0.000000 -432,0.899405,0.000000,0.437116,0.000000 -433,0.898947,0.000000,0.438057,0.000000 -434,0.898488,0.000000,0.438999,0.000000 -435,0.898028,0.000000,0.439939,0.000000 -436,0.897566,0.000000,0.440879,0.000000 -437,0.897104,0.000000,0.441819,0.000000 -438,0.896641,0.000000,0.442758,0.000000 -439,0.896177,0.000000,0.443697,0.000000 -440,0.895712,0.000000,0.444635,0.000000 -441,0.895246,0.000000,0.445573,0.000000 -442,0.894779,0.000000,0.446510,0.000000 -443,0.894310,0.000000,0.447447,0.000000 -444,0.893841,0.000000,0.448383,0.000000 -445,0.893371,0.000000,0.449319,0.000000 -446,0.892900,0.000000,0.450254,0.000000 -447,0.892428,0.000000,0.451189,0.000000 -448,0.891955,0.000000,0.452123,0.000000 -449,0.891481,0.000000,0.453057,0.000000 -450,0.891007,0.000000,0.453990,0.000000 -451,0.890531,0.000000,0.454923,0.000000 -452,0.890054,0.000000,0.455856,0.000000 -453,0.889576,0.000000,0.456787,0.000000 -454,0.889097,0.000000,0.457719,0.000000 -455,0.888617,0.000000,0.458650,0.000000 -456,0.888136,0.000000,0.459580,0.000000 -457,0.887655,0.000000,0.460510,0.000000 -458,0.887172,0.000000,0.461439,0.000000 -459,0.886688,0.000000,0.462368,0.000000 -460,0.886204,0.000000,0.463296,0.000000 -461,0.885718,0.000000,0.464224,0.000000 -462,0.885231,0.000000,0.465151,0.000000 -463,0.884744,0.000000,0.466078,0.000000 -464,0.884255,0.000000,0.467004,0.000000 -465,0.883766,0.000000,0.467930,0.000000 -466,0.883275,0.000000,0.468855,0.000000 -467,0.882784,0.000000,0.469780,0.000000 -468,0.882291,0.000000,0.470704,0.000000 -469,0.881798,0.000000,0.471628,0.000000 -470,0.881303,0.000000,0.472551,0.000000 -471,0.880808,0.000000,0.473473,0.000000 -472,0.880312,0.000000,0.474396,0.000000 -473,0.879815,0.000000,0.475317,0.000000 -474,0.879316,0.000000,0.476238,0.000000 -475,0.878817,0.000000,0.477159,0.000000 -476,0.878317,0.000000,0.478079,0.000000 -477,0.877816,0.000000,0.478998,0.000000 -478,0.877314,0.000000,0.479917,0.000000 -479,0.876811,0.000000,0.480836,0.000000 -480,0.876307,0.000000,0.481754,0.000000 -481,0.875802,0.000000,0.482671,0.000000 -482,0.875296,0.000000,0.483588,0.000000 -483,0.874789,0.000000,0.484504,0.000000 -484,0.874281,0.000000,0.485420,0.000000 -485,0.873772,0.000000,0.486335,0.000000 -486,0.873262,0.000000,0.487250,0.000000 -487,0.872752,0.000000,0.488164,0.000000 -488,0.872240,0.000000,0.489078,0.000000 -489,0.871727,0.000000,0.489991,0.000000 -490,0.871214,0.000000,0.490904,0.000000 -491,0.870699,0.000000,0.491816,0.000000 -492,0.870184,0.000000,0.492727,0.000000 -493,0.869667,0.000000,0.493638,0.000000 -494,0.869150,0.000000,0.494549,0.000000 -495,0.868632,0.000000,0.495459,0.000000 -496,0.868112,0.000000,0.496368,0.000000 -497,0.867592,0.000000,0.497277,0.000000 -498,0.867071,0.000000,0.498185,0.000000 -499,0.866549,0.000000,0.499093,0.000000 -500,0.866025,0.000000,0.500000,0.000000 -501,0.865501,0.000000,0.500907,0.000000 -502,0.864976,0.000000,0.501813,0.000000 -503,0.864450,0.000000,0.502718,0.000000 -504,0.863923,0.000000,0.503623,0.000000 -505,0.863396,0.000000,0.504528,0.000000 -506,0.862867,0.000000,0.505431,0.000000 -507,0.862337,0.000000,0.506335,0.000000 -508,0.861806,0.000000,0.507238,0.000000 -509,0.861275,0.000000,0.508140,0.000000 -510,0.860742,0.000000,0.509041,0.000000 -511,0.860208,0.000000,0.509943,0.000000 -512,0.859674,0.000000,0.510843,0.000000 -513,0.859139,0.000000,0.511743,0.000000 -514,0.858602,0.000000,0.512642,0.000000 -515,0.858065,0.000000,0.513541,0.000000 -516,0.857527,0.000000,0.514440,0.000000 -517,0.856987,0.000000,0.515337,0.000000 -518,0.856447,0.000000,0.516234,0.000000 -519,0.855906,0.000000,0.517131,0.000000 -520,0.855364,0.000000,0.518027,0.000000 -521,0.854821,0.000000,0.518922,0.000000 -522,0.854277,0.000000,0.519817,0.000000 -523,0.853733,0.000000,0.520712,0.000000 -524,0.853187,0.000000,0.521605,0.000000 -525,0.852640,0.000000,0.522499,0.000000 -526,0.852093,0.000000,0.523391,0.000000 -527,0.851544,0.000000,0.524283,0.000000 -528,0.850994,0.000000,0.525175,0.000000 -529,0.850444,0.000000,0.526066,0.000000 -530,0.849893,0.000000,0.526956,0.000000 -531,0.849340,0.000000,0.527846,0.000000 -532,0.848787,0.000000,0.528735,0.000000 -533,0.848233,0.000000,0.529623,0.000000 -534,0.847678,0.000000,0.530511,0.000000 -535,0.847122,0.000000,0.531399,0.000000 -536,0.846565,0.000000,0.532285,0.000000 -537,0.846007,0.000000,0.533172,0.000000 -538,0.845448,0.000000,0.534057,0.000000 -539,0.844889,0.000000,0.534942,0.000000 -540,0.844328,0.000000,0.535827,0.000000 -541,0.843766,0.000000,0.536711,0.000000 -542,0.843204,0.000000,0.537594,0.000000 -543,0.842640,0.000000,0.538477,0.000000 -544,0.842076,0.000000,0.539359,0.000000 -545,0.841511,0.000000,0.540240,0.000000 -546,0.840945,0.000000,0.541121,0.000000 -547,0.840377,0.000000,0.542002,0.000000 -548,0.839809,0.000000,0.542881,0.000000 -549,0.839240,0.000000,0.543760,0.000000 -550,0.838671,0.000000,0.544639,0.000000 -551,0.838100,0.000000,0.545517,0.000000 -552,0.837528,0.000000,0.546394,0.000000 -553,0.836955,0.000000,0.547271,0.000000 -554,0.836382,0.000000,0.548147,0.000000 -555,0.835807,0.000000,0.549023,0.000000 -556,0.835232,0.000000,0.549898,0.000000 -557,0.834656,0.000000,0.550772,0.000000 -558,0.834078,0.000000,0.551646,0.000000 -559,0.833500,0.000000,0.552519,0.000000 -560,0.832921,0.000000,0.553392,0.000000 -561,0.832341,0.000000,0.554263,0.000000 -562,0.831760,0.000000,0.555135,0.000000 -563,0.831179,0.000000,0.556006,0.000000 -564,0.830596,0.000000,0.556876,0.000000 -565,0.830012,0.000000,0.557745,0.000000 -566,0.829428,0.000000,0.558614,0.000000 -567,0.828842,0.000000,0.559482,0.000000 -568,0.828256,0.000000,0.560350,0.000000 -569,0.827669,0.000000,0.561217,0.000000 -570,0.827081,0.000000,0.562083,0.000000 -571,0.826492,0.000000,0.562949,0.000000 -572,0.825902,0.000000,0.563814,0.000000 -573,0.825311,0.000000,0.564679,0.000000 -574,0.824719,0.000000,0.565543,0.000000 -575,0.824126,0.000000,0.566406,0.000000 -576,0.823533,0.000000,0.567269,0.000000 -577,0.822938,0.000000,0.568131,0.000000 -578,0.822343,0.000000,0.568993,0.000000 -579,0.821746,0.000000,0.569853,0.000000 -580,0.821149,0.000000,0.570714,0.000000 -581,0.820551,0.000000,0.571573,0.000000 -582,0.819952,0.000000,0.572432,0.000000 -583,0.819352,0.000000,0.573290,0.000000 -584,0.818751,0.000000,0.574148,0.000000 -585,0.818150,0.000000,0.575005,0.000000 -586,0.817547,0.000000,0.575862,0.000000 -587,0.816944,0.000000,0.576718,0.000000 -588,0.816339,0.000000,0.577573,0.000000 -589,0.815734,0.000000,0.578427,0.000000 -590,0.815128,0.000000,0.579281,0.000000 -591,0.814521,0.000000,0.580134,0.000000 -592,0.813913,0.000000,0.580987,0.000000 -593,0.813304,0.000000,0.581839,0.000000 -594,0.812694,0.000000,0.582690,0.000000 -595,0.812084,0.000000,0.583541,0.000000 -596,0.811472,0.000000,0.584391,0.000000 -597,0.810860,0.000000,0.585241,0.000000 -598,0.810246,0.000000,0.586090,0.000000 -599,0.809632,0.000000,0.586938,0.000000 -600,0.809017,0.000000,0.587785,0.000000 -601,0.808401,0.000000,0.588632,0.000000 -602,0.807784,0.000000,0.589478,0.000000 -603,0.807166,0.000000,0.590324,0.000000 -604,0.806548,0.000000,0.591169,0.000000 -605,0.805928,0.000000,0.592013,0.000000 -606,0.805308,0.000000,0.592857,0.000000 -607,0.804687,0.000000,0.593700,0.000000 -608,0.804064,0.000000,0.594542,0.000000 -609,0.803441,0.000000,0.595384,0.000000 -610,0.802817,0.000000,0.596225,0.000000 -611,0.802193,0.000000,0.597065,0.000000 -612,0.801567,0.000000,0.597905,0.000000 -613,0.800940,0.000000,0.598744,0.000000 -614,0.800313,0.000000,0.599582,0.000000 -615,0.799685,0.000000,0.600420,0.000000 -616,0.799055,0.000000,0.601257,0.000000 -617,0.798425,0.000000,0.602094,0.000000 -618,0.797794,0.000000,0.602930,0.000000 -619,0.797163,0.000000,0.603765,0.000000 -620,0.796530,0.000000,0.604599,0.000000 -621,0.795896,0.000000,0.605433,0.000000 -622,0.795262,0.000000,0.606266,0.000000 -623,0.794627,0.000000,0.607098,0.000000 -624,0.793990,0.000000,0.607930,0.000000 -625,0.793353,0.000000,0.608761,0.000000 -626,0.792715,0.000000,0.609592,0.000000 -627,0.792077,0.000000,0.610422,0.000000 -628,0.791437,0.000000,0.611251,0.000000 -629,0.790796,0.000000,0.612079,0.000000 -630,0.790155,0.000000,0.612907,0.000000 -631,0.789513,0.000000,0.613734,0.000000 -632,0.788870,0.000000,0.614561,0.000000 -633,0.788226,0.000000,0.615386,0.000000 -634,0.787581,0.000000,0.616211,0.000000 -635,0.786935,0.000000,0.617036,0.000000 -636,0.786288,0.000000,0.617860,0.000000 -637,0.785641,0.000000,0.618683,0.000000 -638,0.784993,0.000000,0.619505,0.000000 -639,0.784343,0.000000,0.620327,0.000000 -640,0.783693,0.000000,0.621148,0.000000 -641,0.783043,0.000000,0.621968,0.000000 -642,0.782391,0.000000,0.622788,0.000000 -643,0.781738,0.000000,0.623607,0.000000 -644,0.781085,0.000000,0.624425,0.000000 -645,0.780430,0.000000,0.625243,0.000000 -646,0.779775,0.000000,0.626060,0.000000 -647,0.779119,0.000000,0.626876,0.000000 -648,0.778462,0.000000,0.627691,0.000000 -649,0.777805,0.000000,0.628506,0.000000 -650,0.777146,0.000000,0.629320,0.000000 -651,0.776487,0.000000,0.630134,0.000000 -652,0.775826,0.000000,0.630947,0.000000 -653,0.775165,0.000000,0.631759,0.000000 -654,0.774503,0.000000,0.632570,0.000000 -655,0.773840,0.000000,0.633381,0.000000 -656,0.773177,0.000000,0.634191,0.000000 -657,0.772512,0.000000,0.635000,0.000000 -658,0.771847,0.000000,0.635809,0.000000 -659,0.771180,0.000000,0.636617,0.000000 -660,0.770513,0.000000,0.637424,0.000000 -661,0.769845,0.000000,0.638231,0.000000 -662,0.769177,0.000000,0.639036,0.000000 -663,0.768507,0.000000,0.639841,0.000000 -664,0.767836,0.000000,0.640646,0.000000 -665,0.767165,0.000000,0.641450,0.000000 -666,0.766493,0.000000,0.642253,0.000000 -667,0.765820,0.000000,0.643055,0.000000 -668,0.765146,0.000000,0.643857,0.000000 -669,0.764472,0.000000,0.644657,0.000000 -670,0.763796,0.000000,0.645458,0.000000 -671,0.763120,0.000000,0.646257,0.000000 -672,0.762443,0.000000,0.647056,0.000000 -673,0.761764,0.000000,0.647854,0.000000 -674,0.761086,0.000000,0.648651,0.000000 -675,0.760406,0.000000,0.649448,0.000000 -676,0.759725,0.000000,0.650244,0.000000 -677,0.759044,0.000000,0.651039,0.000000 -678,0.758362,0.000000,0.651834,0.000000 -679,0.757679,0.000000,0.652628,0.000000 -680,0.756995,0.000000,0.653421,0.000000 -681,0.756310,0.000000,0.654213,0.000000 -682,0.755625,0.000000,0.655005,0.000000 -683,0.754939,0.000000,0.655796,0.000000 -684,0.754251,0.000000,0.656586,0.000000 -685,0.753563,0.000000,0.657375,0.000000 -686,0.752875,0.000000,0.658164,0.000000 -687,0.752185,0.000000,0.658952,0.000000 -688,0.751494,0.000000,0.659739,0.000000 -689,0.750803,0.000000,0.660526,0.000000 -690,0.750111,0.000000,0.661312,0.000000 -691,0.749418,0.000000,0.662097,0.000000 -692,0.748724,0.000000,0.662881,0.000000 -693,0.748030,0.000000,0.663665,0.000000 -694,0.747334,0.000000,0.664448,0.000000 -695,0.746638,0.000000,0.665230,0.000000 -696,0.745941,0.000000,0.666012,0.000000 -697,0.745243,0.000000,0.666793,0.000000 -698,0.744545,0.000000,0.667573,0.000000 -699,0.743845,0.000000,0.668352,0.000000 -700,0.743145,0.000000,0.669131,0.000000 -701,0.742444,0.000000,0.669908,0.000000 -702,0.741742,0.000000,0.670686,0.000000 -703,0.741039,0.000000,0.671462,0.000000 -704,0.740335,0.000000,0.672238,0.000000 -705,0.739631,0.000000,0.673013,0.000000 -706,0.738926,0.000000,0.673787,0.000000 -707,0.738220,0.000000,0.674560,0.000000 -708,0.737513,0.000000,0.675333,0.000000 -709,0.736806,0.000000,0.676105,0.000000 -710,0.736097,0.000000,0.676876,0.000000 -711,0.735388,0.000000,0.677646,0.000000 -712,0.734678,0.000000,0.678416,0.000000 -713,0.733967,0.000000,0.679185,0.000000 -714,0.733255,0.000000,0.679953,0.000000 -715,0.732543,0.000000,0.680721,0.000000 -716,0.731830,0.000000,0.681488,0.000000 -717,0.731116,0.000000,0.682254,0.000000 -718,0.730401,0.000000,0.683019,0.000000 -719,0.729685,0.000000,0.683783,0.000000 -720,0.728969,0.000000,0.684547,0.000000 -721,0.728251,0.000000,0.685310,0.000000 -722,0.727533,0.000000,0.686072,0.000000 -723,0.726814,0.000000,0.686834,0.000000 -724,0.726095,0.000000,0.687595,0.000000 -725,0.725374,0.000000,0.688355,0.000000 -726,0.724653,0.000000,0.689114,0.000000 -727,0.723931,0.000000,0.689872,0.000000 -728,0.723208,0.000000,0.690630,0.000000 -729,0.722485,0.000000,0.691387,0.000000 -730,0.721760,0.000000,0.692143,0.000000 -731,0.721035,0.000000,0.692899,0.000000 -732,0.720309,0.000000,0.693653,0.000000 -733,0.719582,0.000000,0.694407,0.000000 -734,0.718855,0.000000,0.695160,0.000000 -735,0.718126,0.000000,0.695913,0.000000 -736,0.717397,0.000000,0.696664,0.000000 -737,0.716667,0.000000,0.697415,0.000000 -738,0.715936,0.000000,0.698165,0.000000 -739,0.715205,0.000000,0.698915,0.000000 -740,0.714473,0.000000,0.699663,0.000000 -741,0.713740,0.000000,0.700411,0.000000 -742,0.713006,0.000000,0.701158,0.000000 -743,0.712271,0.000000,0.701904,0.000000 -744,0.711536,0.000000,0.702650,0.000000 -745,0.710799,0.000000,0.703395,0.000000 -746,0.710062,0.000000,0.704139,0.000000 -747,0.709325,0.000000,0.704882,0.000000 -748,0.708586,0.000000,0.705624,0.000000 -749,0.707847,0.000000,0.706366,0.000000 -750,0.707107,0.000000,0.707107,0.000000 -751,0.706366,0.000000,0.707847,0.000000 -752,0.705624,0.000000,0.708586,0.000000 -753,0.704882,0.000000,0.709325,0.000000 -754,0.704139,0.000000,0.710062,0.000000 -755,0.703395,0.000000,0.710799,0.000000 -756,0.702650,0.000000,0.711536,0.000000 -757,0.701904,0.000000,0.712271,0.000000 -758,0.701158,0.000000,0.713006,0.000000 -759,0.700411,0.000000,0.713740,0.000000 -760,0.699663,0.000000,0.714473,0.000000 -761,0.698915,0.000000,0.715205,0.000000 -762,0.698165,0.000000,0.715936,0.000000 -763,0.697415,0.000000,0.716667,0.000000 -764,0.696664,0.000000,0.717397,0.000000 -765,0.695913,0.000000,0.718126,0.000000 -766,0.695160,0.000000,0.718855,0.000000 -767,0.694407,0.000000,0.719582,0.000000 -768,0.693653,0.000000,0.720309,0.000000 -769,0.692899,0.000000,0.721035,0.000000 -770,0.692143,0.000000,0.721760,0.000000 -771,0.691387,0.000000,0.722485,0.000000 -772,0.690630,0.000000,0.723208,0.000000 -773,0.689872,0.000000,0.723931,0.000000 -774,0.689114,0.000000,0.724653,0.000000 -775,0.688355,0.000000,0.725374,0.000000 -776,0.687595,0.000000,0.726095,0.000000 -777,0.686834,0.000000,0.726814,0.000000 -778,0.686072,0.000000,0.727533,0.000000 -779,0.685310,0.000000,0.728251,0.000000 -780,0.684547,0.000000,0.728969,0.000000 -781,0.683783,0.000000,0.729685,0.000000 -782,0.683019,0.000000,0.730401,0.000000 -783,0.682254,0.000000,0.731116,0.000000 -784,0.681488,0.000000,0.731830,0.000000 -785,0.680721,0.000000,0.732543,0.000000 -786,0.679953,0.000000,0.733255,0.000000 -787,0.679185,0.000000,0.733967,0.000000 -788,0.678416,0.000000,0.734678,0.000000 -789,0.677646,0.000000,0.735388,0.000000 -790,0.676876,0.000000,0.736097,0.000000 -791,0.676105,0.000000,0.736806,0.000000 -792,0.675333,0.000000,0.737513,0.000000 -793,0.674560,0.000000,0.738220,0.000000 -794,0.673787,0.000000,0.738926,0.000000 -795,0.673013,0.000000,0.739631,0.000000 -796,0.672238,0.000000,0.740335,0.000000 -797,0.671462,0.000000,0.741039,0.000000 -798,0.670686,0.000000,0.741742,0.000000 -799,0.669908,0.000000,0.742444,0.000000 -800,0.669131,0.000000,0.743145,0.000000 -801,0.668352,0.000000,0.743845,0.000000 -802,0.667573,0.000000,0.744545,0.000000 -803,0.666793,0.000000,0.745243,0.000000 -804,0.666012,0.000000,0.745941,0.000000 -805,0.665230,0.000000,0.746638,0.000000 -806,0.664448,0.000000,0.747334,0.000000 -807,0.663665,0.000000,0.748030,0.000000 -808,0.662881,0.000000,0.748724,0.000000 -809,0.662097,0.000000,0.749418,0.000000 -810,0.661312,0.000000,0.750111,0.000000 -811,0.660526,0.000000,0.750803,0.000000 -812,0.659739,0.000000,0.751494,0.000000 -813,0.658952,0.000000,0.752185,0.000000 -814,0.658164,0.000000,0.752875,0.000000 -815,0.657375,0.000000,0.753563,0.000000 -816,0.656586,0.000000,0.754251,0.000000 -817,0.655796,0.000000,0.754939,0.000000 -818,0.655005,0.000000,0.755625,0.000000 -819,0.654213,0.000000,0.756310,0.000000 -820,0.653421,0.000000,0.756995,0.000000 -821,0.652628,0.000000,0.757679,0.000000 -822,0.651834,0.000000,0.758362,0.000000 -823,0.651039,0.000000,0.759044,0.000000 -824,0.650244,0.000000,0.759725,0.000000 -825,0.649448,0.000000,0.760406,0.000000 -826,0.648651,0.000000,0.761086,0.000000 -827,0.647854,0.000000,0.761764,0.000000 -828,0.647056,0.000000,0.762443,0.000000 -829,0.646257,0.000000,0.763120,0.000000 -830,0.645458,0.000000,0.763796,0.000000 -831,0.644657,0.000000,0.764472,0.000000 -832,0.643857,0.000000,0.765146,0.000000 -833,0.643055,0.000000,0.765820,0.000000 -834,0.642253,0.000000,0.766493,0.000000 -835,0.641450,0.000000,0.767165,0.000000 -836,0.640646,0.000000,0.767836,0.000000 -837,0.639841,0.000000,0.768507,0.000000 -838,0.639036,0.000000,0.769177,0.000000 -839,0.638231,0.000000,0.769845,0.000000 -840,0.637424,0.000000,0.770513,0.000000 -841,0.636617,0.000000,0.771180,0.000000 -842,0.635809,0.000000,0.771847,0.000000 -843,0.635000,0.000000,0.772512,0.000000 -844,0.634191,0.000000,0.773177,0.000000 -845,0.633381,0.000000,0.773840,0.000000 -846,0.632570,0.000000,0.774503,0.000000 -847,0.631759,0.000000,0.775165,0.000000 -848,0.630947,0.000000,0.775826,0.000000 -849,0.630134,0.000000,0.776487,0.000000 -850,0.629320,0.000000,0.777146,0.000000 -851,0.628506,0.000000,0.777805,0.000000 -852,0.627691,0.000000,0.778462,0.000000 -853,0.626876,0.000000,0.779119,0.000000 -854,0.626060,0.000000,0.779775,0.000000 -855,0.625243,0.000000,0.780430,0.000000 -856,0.624425,0.000000,0.781085,0.000000 -857,0.623607,0.000000,0.781738,0.000000 -858,0.622788,0.000000,0.782391,0.000000 -859,0.621968,0.000000,0.783043,0.000000 -860,0.621148,0.000000,0.783693,0.000000 -861,0.620327,0.000000,0.784343,0.000000 -862,0.619505,0.000000,0.784993,0.000000 -863,0.618683,0.000000,0.785641,0.000000 -864,0.617860,0.000000,0.786288,0.000000 -865,0.617036,0.000000,0.786935,0.000000 -866,0.616211,0.000000,0.787581,0.000000 -867,0.615386,0.000000,0.788226,0.000000 -868,0.614561,0.000000,0.788870,0.000000 -869,0.613734,0.000000,0.789513,0.000000 -870,0.612907,0.000000,0.790155,0.000000 -871,0.612079,0.000000,0.790796,0.000000 -872,0.611251,0.000000,0.791437,0.000000 -873,0.610422,0.000000,0.792077,0.000000 -874,0.609592,0.000000,0.792715,0.000000 -875,0.608761,0.000000,0.793353,0.000000 -876,0.607930,0.000000,0.793990,0.000000 -877,0.607098,0.000000,0.794627,0.000000 -878,0.606266,0.000000,0.795262,0.000000 -879,0.605433,0.000000,0.795896,0.000000 -880,0.604599,0.000000,0.796530,0.000000 -881,0.603765,0.000000,0.797163,0.000000 -882,0.602930,0.000000,0.797794,0.000000 -883,0.602094,0.000000,0.798425,0.000000 -884,0.601257,0.000000,0.799055,0.000000 -885,0.600420,0.000000,0.799685,0.000000 -886,0.599582,0.000000,0.800313,0.000000 -887,0.598744,0.000000,0.800940,0.000000 -888,0.597905,0.000000,0.801567,0.000000 -889,0.597065,0.000000,0.802193,0.000000 -890,0.596225,0.000000,0.802817,0.000000 -891,0.595384,0.000000,0.803441,0.000000 -892,0.594542,0.000000,0.804064,0.000000 -893,0.593700,0.000000,0.804687,0.000000 -894,0.592857,0.000000,0.805308,0.000000 -895,0.592013,0.000000,0.805928,0.000000 -896,0.591169,0.000000,0.806548,0.000000 -897,0.590324,0.000000,0.807166,0.000000 -898,0.589478,0.000000,0.807784,0.000000 -899,0.588632,0.000000,0.808401,0.000000 -900,0.587785,0.000000,0.809017,0.000000 -901,0.586938,0.000000,0.809632,0.000000 -902,0.586090,0.000000,0.810246,0.000000 -903,0.585241,0.000000,0.810860,0.000000 -904,0.584391,0.000000,0.811472,0.000000 -905,0.583541,0.000000,0.812084,0.000000 -906,0.582690,0.000000,0.812694,0.000000 -907,0.581839,0.000000,0.813304,0.000000 -908,0.580987,0.000000,0.813913,0.000000 -909,0.580134,0.000000,0.814521,0.000000 -910,0.579281,0.000000,0.815128,0.000000 -911,0.578427,0.000000,0.815734,0.000000 -912,0.577573,0.000000,0.816339,0.000000 -913,0.576718,0.000000,0.816944,0.000000 -914,0.575862,0.000000,0.817547,0.000000 -915,0.575005,0.000000,0.818150,0.000000 -916,0.574148,0.000000,0.818751,0.000000 -917,0.573290,0.000000,0.819352,0.000000 -918,0.572432,0.000000,0.819952,0.000000 -919,0.571573,0.000000,0.820551,0.000000 -920,0.570714,0.000000,0.821149,0.000000 -921,0.569853,0.000000,0.821746,0.000000 -922,0.568993,0.000000,0.822343,0.000000 -923,0.568131,0.000000,0.822938,0.000000 -924,0.567269,0.000000,0.823533,0.000000 -925,0.566406,0.000000,0.824126,0.000000 -926,0.565543,0.000000,0.824719,0.000000 -927,0.564679,0.000000,0.825311,0.000000 -928,0.563814,0.000000,0.825902,0.000000 -929,0.562949,0.000000,0.826492,0.000000 -930,0.562083,0.000000,0.827081,0.000000 -931,0.561217,0.000000,0.827669,0.000000 -932,0.560350,0.000000,0.828256,0.000000 -933,0.559482,0.000000,0.828842,0.000000 -934,0.558614,0.000000,0.829428,0.000000 -935,0.557745,0.000000,0.830012,0.000000 -936,0.556876,0.000000,0.830596,0.000000 -937,0.556006,0.000000,0.831179,0.000000 -938,0.555135,0.000000,0.831760,0.000000 -939,0.554263,0.000000,0.832341,0.000000 -940,0.553392,0.000000,0.832921,0.000000 -941,0.552519,0.000000,0.833500,0.000000 -942,0.551646,0.000000,0.834078,0.000000 -943,0.550772,0.000000,0.834656,0.000000 -944,0.549898,0.000000,0.835232,0.000000 -945,0.549023,0.000000,0.835807,0.000000 -946,0.548147,0.000000,0.836382,0.000000 -947,0.547271,0.000000,0.836955,0.000000 -948,0.546394,0.000000,0.837528,0.000000 -949,0.545517,0.000000,0.838100,0.000000 -950,0.544639,0.000000,0.838671,0.000000 -951,0.543760,0.000000,0.839240,0.000000 -952,0.542881,0.000000,0.839809,0.000000 -953,0.542002,0.000000,0.840377,0.000000 -954,0.541121,0.000000,0.840945,0.000000 -955,0.540240,0.000000,0.841511,0.000000 -956,0.539359,0.000000,0.842076,0.000000 -957,0.538477,0.000000,0.842640,0.000000 -958,0.537594,0.000000,0.843204,0.000000 -959,0.536711,0.000000,0.843766,0.000000 -960,0.535827,0.000000,0.844328,0.000000 -961,0.534942,0.000000,0.844889,0.000000 -962,0.534057,0.000000,0.845448,0.000000 -963,0.533172,0.000000,0.846007,0.000000 -964,0.532285,0.000000,0.846565,0.000000 -965,0.531399,0.000000,0.847122,0.000000 -966,0.530511,0.000000,0.847678,0.000000 -967,0.529623,0.000000,0.848233,0.000000 -968,0.528735,0.000000,0.848787,0.000000 -969,0.527846,0.000000,0.849340,0.000000 -970,0.526956,0.000000,0.849893,0.000000 -971,0.526066,0.000000,0.850444,0.000000 -972,0.525175,0.000000,0.850994,0.000000 -973,0.524283,0.000000,0.851544,0.000000 -974,0.523391,0.000000,0.852093,0.000000 -975,0.522499,0.000000,0.852640,0.000000 -976,0.521605,0.000000,0.853187,0.000000 -977,0.520712,0.000000,0.853733,0.000000 -978,0.519817,0.000000,0.854277,0.000000 -979,0.518922,0.000000,0.854821,0.000000 -980,0.518027,0.000000,0.855364,0.000000 -981,0.517131,0.000000,0.855906,0.000000 -982,0.516234,0.000000,0.856447,0.000000 -983,0.515337,0.000000,0.856987,0.000000 -984,0.514440,0.000000,0.857527,0.000000 -985,0.513541,0.000000,0.858065,0.000000 -986,0.512642,0.000000,0.858602,0.000000 -987,0.511743,0.000000,0.859139,0.000000 -988,0.510843,0.000000,0.859674,0.000000 -989,0.509943,0.000000,0.860208,0.000000 -990,0.509041,0.000000,0.860742,0.000000 -991,0.508140,0.000000,0.861275,0.000000 -992,0.507238,0.000000,0.861806,0.000000 -993,0.506335,0.000000,0.862337,0.000000 -994,0.505431,0.000000,0.862867,0.000000 -995,0.504528,0.000000,0.863396,0.000000 -996,0.503623,0.000000,0.863923,0.000000 -997,0.502718,0.000000,0.864450,0.000000 -998,0.501813,0.000000,0.864976,0.000000 -999,0.500907,0.000000,0.865501,0.000000 -1000,0.500000,0.000000,0.866025,0.000000 -1001,0.499093,0.000000,0.866549,0.000000 -1002,0.498185,0.000000,0.867071,0.000000 -1003,0.497277,0.000000,0.867592,0.000000 -1004,0.496368,0.000000,0.868112,0.000000 -1005,0.495459,0.000000,0.868632,0.000000 -1006,0.494549,0.000000,0.869150,0.000000 -1007,0.493638,0.000000,0.869667,0.000000 -1008,0.492727,0.000000,0.870184,0.000000 -1009,0.491816,0.000000,0.870699,0.000000 -1010,0.490904,0.000000,0.871214,0.000000 -1011,0.489991,0.000000,0.871727,0.000000 -1012,0.489078,0.000000,0.872240,0.000000 -1013,0.488164,0.000000,0.872752,0.000000 -1014,0.487250,0.000000,0.873262,0.000000 -1015,0.486335,0.000000,0.873772,0.000000 -1016,0.485420,0.000000,0.874281,0.000000 -1017,0.484504,0.000000,0.874789,0.000000 -1018,0.483588,0.000000,0.875296,0.000000 -1019,0.482671,0.000000,0.875802,0.000000 -1020,0.481754,0.000000,0.876307,0.000000 -1021,0.480836,0.000000,0.876811,0.000000 -1022,0.479917,0.000000,0.877314,0.000000 -1023,0.478998,0.000000,0.877816,0.000000 -1024,0.478079,0.000000,0.878317,0.000000 -1025,0.477159,0.000000,0.878817,0.000000 -1026,0.476238,0.000000,0.879316,0.000000 -1027,0.475317,0.000000,0.879815,0.000000 -1028,0.474396,0.000000,0.880312,0.000000 -1029,0.473473,0.000000,0.880808,0.000000 -1030,0.472551,0.000000,0.881303,0.000000 -1031,0.471628,0.000000,0.881798,0.000000 -1032,0.470704,0.000000,0.882291,0.000000 -1033,0.469780,0.000000,0.882784,0.000000 -1034,0.468855,0.000000,0.883275,0.000000 -1035,0.467930,0.000000,0.883766,0.000000 -1036,0.467004,0.000000,0.884255,0.000000 -1037,0.466078,0.000000,0.884744,0.000000 -1038,0.465151,0.000000,0.885231,0.000000 -1039,0.464224,0.000000,0.885718,0.000000 -1040,0.463296,0.000000,0.886204,0.000000 -1041,0.462368,0.000000,0.886688,0.000000 -1042,0.461439,0.000000,0.887172,0.000000 -1043,0.460510,0.000000,0.887655,0.000000 -1044,0.459580,0.000000,0.888136,0.000000 -1045,0.458650,0.000000,0.888617,0.000000 -1046,0.457719,0.000000,0.889097,0.000000 -1047,0.456787,0.000000,0.889576,0.000000 -1048,0.455856,0.000000,0.890054,0.000000 -1049,0.454923,0.000000,0.890531,0.000000 -1050,0.453990,0.000000,0.891007,0.000000 -1051,0.453057,0.000000,0.891481,0.000000 -1052,0.452123,0.000000,0.891955,0.000000 -1053,0.451189,0.000000,0.892428,0.000000 -1054,0.450254,0.000000,0.892900,0.000000 -1055,0.449319,0.000000,0.893371,0.000000 -1056,0.448383,0.000000,0.893841,0.000000 -1057,0.447447,0.000000,0.894310,0.000000 -1058,0.446510,0.000000,0.894779,0.000000 -1059,0.445573,0.000000,0.895246,0.000000 -1060,0.444635,0.000000,0.895712,0.000000 -1061,0.443697,0.000000,0.896177,0.000000 -1062,0.442758,0.000000,0.896641,0.000000 -1063,0.441819,0.000000,0.897104,0.000000 -1064,0.440879,0.000000,0.897566,0.000000 -1065,0.439939,0.000000,0.898028,0.000000 -1066,0.438999,0.000000,0.898488,0.000000 -1067,0.438057,0.000000,0.898947,0.000000 -1068,0.437116,0.000000,0.899405,0.000000 -1069,0.436174,0.000000,0.899863,0.000000 -1070,0.435231,0.000000,0.900319,0.000000 -1071,0.434288,0.000000,0.900774,0.000000 -1072,0.433345,0.000000,0.901228,0.000000 -1073,0.432401,0.000000,0.901682,0.000000 -1074,0.431456,0.000000,0.902134,0.000000 -1075,0.430511,0.000000,0.902585,0.000000 -1076,0.429566,0.000000,0.903036,0.000000 -1077,0.428620,0.000000,0.903485,0.000000 -1078,0.427673,0.000000,0.903933,0.000000 -1079,0.426727,0.000000,0.904381,0.000000 -1080,0.425779,0.000000,0.904827,0.000000 -1081,0.424832,0.000000,0.905272,0.000000 -1082,0.423883,0.000000,0.905717,0.000000 -1083,0.422935,0.000000,0.906160,0.000000 -1084,0.421985,0.000000,0.906603,0.000000 -1085,0.421036,0.000000,0.907044,0.000000 -1086,0.420086,0.000000,0.907484,0.000000 -1087,0.419135,0.000000,0.907924,0.000000 -1088,0.418184,0.000000,0.908362,0.000000 -1089,0.417233,0.000000,0.908800,0.000000 -1090,0.416281,0.000000,0.909236,0.000000 -1091,0.415328,0.000000,0.909672,0.000000 -1092,0.414376,0.000000,0.910106,0.000000 -1093,0.413422,0.000000,0.910539,0.000000 -1094,0.412469,0.000000,0.910972,0.000000 -1095,0.411514,0.000000,0.911403,0.000000 -1096,0.410560,0.000000,0.911834,0.000000 -1097,0.409605,0.000000,0.912263,0.000000 -1098,0.408649,0.000000,0.912692,0.000000 -1099,0.407693,0.000000,0.913119,0.000000 -1100,0.406737,0.000000,0.913545,0.000000 -1101,0.405780,0.000000,0.913971,0.000000 -1102,0.404822,0.000000,0.914395,0.000000 -1103,0.403865,0.000000,0.914819,0.000000 -1104,0.402906,0.000000,0.915241,0.000000 -1105,0.401948,0.000000,0.915663,0.000000 -1106,0.400989,0.000000,0.916083,0.000000 -1107,0.400029,0.000000,0.916502,0.000000 -1108,0.399069,0.000000,0.916921,0.000000 -1109,0.398109,0.000000,0.917338,0.000000 -1110,0.397148,0.000000,0.917755,0.000000 -1111,0.396187,0.000000,0.918170,0.000000 -1112,0.395225,0.000000,0.918584,0.000000 -1113,0.394263,0.000000,0.918998,0.000000 -1114,0.393300,0.000000,0.919410,0.000000 -1115,0.392337,0.000000,0.919821,0.000000 -1116,0.391374,0.000000,0.920232,0.000000 -1117,0.390410,0.000000,0.920641,0.000000 -1118,0.389445,0.000000,0.921050,0.000000 -1119,0.388481,0.000000,0.921457,0.000000 -1120,0.387516,0.000000,0.921863,0.000000 -1121,0.386550,0.000000,0.922268,0.000000 -1122,0.385584,0.000000,0.922673,0.000000 -1123,0.384618,0.000000,0.923076,0.000000 -1124,0.383651,0.000000,0.923478,0.000000 -1125,0.382683,0.000000,0.923880,0.000000 -1126,0.381716,0.000000,0.924280,0.000000 -1127,0.380748,0.000000,0.924679,0.000000 -1128,0.379779,0.000000,0.925077,0.000000 -1129,0.378810,0.000000,0.925474,0.000000 -1130,0.377841,0.000000,0.925871,0.000000 -1131,0.376871,0.000000,0.926266,0.000000 -1132,0.375901,0.000000,0.926660,0.000000 -1133,0.374930,0.000000,0.927053,0.000000 -1134,0.373959,0.000000,0.927445,0.000000 -1135,0.372988,0.000000,0.927836,0.000000 -1136,0.372016,0.000000,0.928226,0.000000 -1137,0.371044,0.000000,0.928615,0.000000 -1138,0.370071,0.000000,0.929003,0.000000 -1139,0.369098,0.000000,0.929390,0.000000 -1140,0.368125,0.000000,0.929776,0.000000 -1141,0.367151,0.000000,0.930161,0.000000 -1142,0.366176,0.000000,0.930545,0.000000 -1143,0.365202,0.000000,0.930928,0.000000 -1144,0.364227,0.000000,0.931310,0.000000 -1145,0.363251,0.000000,0.931691,0.000000 -1146,0.362275,0.000000,0.932071,0.000000 -1147,0.361299,0.000000,0.932450,0.000000 -1148,0.360322,0.000000,0.932828,0.000000 -1149,0.359345,0.000000,0.933205,0.000000 -1150,0.358368,0.000000,0.933580,0.000000 -1151,0.357390,0.000000,0.933955,0.000000 -1152,0.356412,0.000000,0.934329,0.000000 -1153,0.355433,0.000000,0.934702,0.000000 -1154,0.354454,0.000000,0.935073,0.000000 -1155,0.353475,0.000000,0.935444,0.000000 -1156,0.352495,0.000000,0.935814,0.000000 -1157,0.351515,0.000000,0.936182,0.000000 -1158,0.350534,0.000000,0.936550,0.000000 -1159,0.349553,0.000000,0.936916,0.000000 -1160,0.348572,0.000000,0.937282,0.000000 -1161,0.347590,0.000000,0.937646,0.000000 -1162,0.346608,0.000000,0.938010,0.000000 -1163,0.345626,0.000000,0.938372,0.000000 -1164,0.344643,0.000000,0.938734,0.000000 -1165,0.343660,0.000000,0.939094,0.000000 -1166,0.342676,0.000000,0.939454,0.000000 -1167,0.341692,0.000000,0.939812,0.000000 -1168,0.340708,0.000000,0.940169,0.000000 -1169,0.339723,0.000000,0.940526,0.000000 -1170,0.338738,0.000000,0.940881,0.000000 -1171,0.337752,0.000000,0.941235,0.000000 -1172,0.336767,0.000000,0.941588,0.000000 -1173,0.335780,0.000000,0.941940,0.000000 -1174,0.334794,0.000000,0.942291,0.000000 -1175,0.333807,0.000000,0.942641,0.000000 -1176,0.332820,0.000000,0.942991,0.000000 -1177,0.331832,0.000000,0.943339,0.000000 -1178,0.330844,0.000000,0.943686,0.000000 -1179,0.329855,0.000000,0.944031,0.000000 -1180,0.328867,0.000000,0.944376,0.000000 -1181,0.327878,0.000000,0.944720,0.000000 -1182,0.326888,0.000000,0.945063,0.000000 -1183,0.325898,0.000000,0.945405,0.000000 -1184,0.324908,0.000000,0.945746,0.000000 -1185,0.323917,0.000000,0.946085,0.000000 -1186,0.322927,0.000000,0.946424,0.000000 -1187,0.321935,0.000000,0.946762,0.000000 -1188,0.320944,0.000000,0.947098,0.000000 -1189,0.319952,0.000000,0.947434,0.000000 -1190,0.318959,0.000000,0.947768,0.000000 -1191,0.317967,0.000000,0.948102,0.000000 -1192,0.316974,0.000000,0.948434,0.000000 -1193,0.315980,0.000000,0.948766,0.000000 -1194,0.314987,0.000000,0.949096,0.000000 -1195,0.313992,0.000000,0.949425,0.000000 -1196,0.312998,0.000000,0.949754,0.000000 -1197,0.312003,0.000000,0.950081,0.000000 -1198,0.311008,0.000000,0.950407,0.000000 -1199,0.310013,0.000000,0.950732,0.000000 -1200,0.309017,0.000000,0.951057,0.000000 -1201,0.308021,0.000000,0.951380,0.000000 -1202,0.307024,0.000000,0.951702,0.000000 -1203,0.306028,0.000000,0.952023,0.000000 -1204,0.305031,0.000000,0.952343,0.000000 -1205,0.304033,0.000000,0.952661,0.000000 -1206,0.303035,0.000000,0.952979,0.000000 -1207,0.302037,0.000000,0.953296,0.000000 -1208,0.301039,0.000000,0.953612,0.000000 -1209,0.300040,0.000000,0.953927,0.000000 -1210,0.299041,0.000000,0.954240,0.000000 -1211,0.298041,0.000000,0.954553,0.000000 -1212,0.297042,0.000000,0.954865,0.000000 -1213,0.296041,0.000000,0.955175,0.000000 -1214,0.295041,0.000000,0.955485,0.000000 -1215,0.294040,0.000000,0.955793,0.000000 -1216,0.293039,0.000000,0.956100,0.000000 -1217,0.292038,0.000000,0.956407,0.000000 -1218,0.291036,0.000000,0.956712,0.000000 -1219,0.290034,0.000000,0.957016,0.000000 -1220,0.289032,0.000000,0.957319,0.000000 -1221,0.288029,0.000000,0.957622,0.000000 -1222,0.287026,0.000000,0.957923,0.000000 -1223,0.286023,0.000000,0.958223,0.000000 -1224,0.285019,0.000000,0.958522,0.000000 -1225,0.284015,0.000000,0.958820,0.000000 -1226,0.283011,0.000000,0.959117,0.000000 -1227,0.282007,0.000000,0.959412,0.000000 -1228,0.281002,0.000000,0.959707,0.000000 -1229,0.279997,0.000000,0.960001,0.000000 -1230,0.278991,0.000000,0.960294,0.000000 -1231,0.277985,0.000000,0.960585,0.000000 -1232,0.276979,0.000000,0.960876,0.000000 -1233,0.275973,0.000000,0.961165,0.000000 -1234,0.274966,0.000000,0.961454,0.000000 -1235,0.273959,0.000000,0.961741,0.000000 -1236,0.272952,0.000000,0.962028,0.000000 -1237,0.271944,0.000000,0.962313,0.000000 -1238,0.270936,0.000000,0.962597,0.000000 -1239,0.269928,0.000000,0.962880,0.000000 -1240,0.268920,0.000000,0.963163,0.000000 -1241,0.267911,0.000000,0.963444,0.000000 -1242,0.266902,0.000000,0.963724,0.000000 -1243,0.265893,0.000000,0.964003,0.000000 -1244,0.264883,0.000000,0.964281,0.000000 -1245,0.263873,0.000000,0.964557,0.000000 -1246,0.262863,0.000000,0.964833,0.000000 -1247,0.261852,0.000000,0.965108,0.000000 -1248,0.260842,0.000000,0.965382,0.000000 -1249,0.259830,0.000000,0.965654,0.000000 -1250,0.258819,0.000000,0.965926,0.000000 -1251,0.257807,0.000000,0.966196,0.000000 -1252,0.256795,0.000000,0.966466,0.000000 -1253,0.255783,0.000000,0.966734,0.000000 -1254,0.254771,0.000000,0.967001,0.000000 -1255,0.253758,0.000000,0.967268,0.000000 -1256,0.252745,0.000000,0.967533,0.000000 -1257,0.251732,0.000000,0.967797,0.000000 -1258,0.250718,0.000000,0.968060,0.000000 -1259,0.249704,0.000000,0.968322,0.000000 -1260,0.248690,0.000000,0.968583,0.000000 -1261,0.247675,0.000000,0.968843,0.000000 -1262,0.246661,0.000000,0.969102,0.000000 -1263,0.245646,0.000000,0.969360,0.000000 -1264,0.244631,0.000000,0.969616,0.000000 -1265,0.243615,0.000000,0.969872,0.000000 -1266,0.242599,0.000000,0.970127,0.000000 -1267,0.241583,0.000000,0.970380,0.000000 -1268,0.240567,0.000000,0.970633,0.000000 -1269,0.239550,0.000000,0.970884,0.000000 -1270,0.238533,0.000000,0.971134,0.000000 -1271,0.237516,0.000000,0.971384,0.000000 -1272,0.236499,0.000000,0.971632,0.000000 -1273,0.235481,0.000000,0.971879,0.000000 -1274,0.234463,0.000000,0.972125,0.000000 -1275,0.233445,0.000000,0.972370,0.000000 -1276,0.232427,0.000000,0.972614,0.000000 -1277,0.231408,0.000000,0.972857,0.000000 -1278,0.230389,0.000000,0.973099,0.000000 -1279,0.229370,0.000000,0.973339,0.000000 -1280,0.228351,0.000000,0.973579,0.000000 -1281,0.227331,0.000000,0.973817,0.000000 -1282,0.226311,0.000000,0.974055,0.000000 -1283,0.225291,0.000000,0.974291,0.000000 -1284,0.224271,0.000000,0.974527,0.000000 -1285,0.223250,0.000000,0.974761,0.000000 -1286,0.222229,0.000000,0.974994,0.000000 -1287,0.221208,0.000000,0.975227,0.000000 -1288,0.220187,0.000000,0.975458,0.000000 -1289,0.219165,0.000000,0.975688,0.000000 -1290,0.218143,0.000000,0.975917,0.000000 -1291,0.217121,0.000000,0.976145,0.000000 -1292,0.216099,0.000000,0.976371,0.000000 -1293,0.215076,0.000000,0.976597,0.000000 -1294,0.214053,0.000000,0.976822,0.000000 -1295,0.213030,0.000000,0.977046,0.000000 -1296,0.212007,0.000000,0.977268,0.000000 -1297,0.210984,0.000000,0.977490,0.000000 -1298,0.209960,0.000000,0.977710,0.000000 -1299,0.208936,0.000000,0.977929,0.000000 -1300,0.207912,0.000000,0.978148,0.000000 -1301,0.206887,0.000000,0.978365,0.000000 -1302,0.205863,0.000000,0.978581,0.000000 -1303,0.204838,0.000000,0.978796,0.000000 -1304,0.203813,0.000000,0.979010,0.000000 -1305,0.202787,0.000000,0.979223,0.000000 -1306,0.201762,0.000000,0.979435,0.000000 -1307,0.200736,0.000000,0.979645,0.000000 -1308,0.199710,0.000000,0.979855,0.000000 -1309,0.198684,0.000000,0.980064,0.000000 -1310,0.197657,0.000000,0.980271,0.000000 -1311,0.196631,0.000000,0.980478,0.000000 -1312,0.195604,0.000000,0.980683,0.000000 -1313,0.194577,0.000000,0.980887,0.000000 -1314,0.193549,0.000000,0.981091,0.000000 -1315,0.192522,0.000000,0.981293,0.000000 -1316,0.191494,0.000000,0.981494,0.000000 -1317,0.190466,0.000000,0.981694,0.000000 -1318,0.189438,0.000000,0.981893,0.000000 -1319,0.188410,0.000000,0.982090,0.000000 -1320,0.187381,0.000000,0.982287,0.000000 -1321,0.186353,0.000000,0.982483,0.000000 -1322,0.185324,0.000000,0.982678,0.000000 -1323,0.184294,0.000000,0.982871,0.000000 -1324,0.183265,0.000000,0.983064,0.000000 -1325,0.182236,0.000000,0.983255,0.000000 -1326,0.181206,0.000000,0.983445,0.000000 -1327,0.180176,0.000000,0.983634,0.000000 -1328,0.179146,0.000000,0.983823,0.000000 -1329,0.178115,0.000000,0.984010,0.000000 -1330,0.177085,0.000000,0.984196,0.000000 -1331,0.176054,0.000000,0.984381,0.000000 -1332,0.175023,0.000000,0.984564,0.000000 -1333,0.173992,0.000000,0.984747,0.000000 -1334,0.172961,0.000000,0.984929,0.000000 -1335,0.171929,0.000000,0.985109,0.000000 -1336,0.170897,0.000000,0.985289,0.000000 -1337,0.169866,0.000000,0.985467,0.000000 -1338,0.168833,0.000000,0.985645,0.000000 -1339,0.167801,0.000000,0.985821,0.000000 -1340,0.166769,0.000000,0.985996,0.000000 -1341,0.165736,0.000000,0.986170,0.000000 -1342,0.164703,0.000000,0.986343,0.000000 -1343,0.163670,0.000000,0.986515,0.000000 -1344,0.162637,0.000000,0.986686,0.000000 -1345,0.161604,0.000000,0.986856,0.000000 -1346,0.160570,0.000000,0.987024,0.000000 -1347,0.159537,0.000000,0.987192,0.000000 -1348,0.158503,0.000000,0.987359,0.000000 -1349,0.157469,0.000000,0.987524,0.000000 -1350,0.156434,0.000000,0.987688,0.000000 -1351,0.155400,0.000000,0.987852,0.000000 -1352,0.154366,0.000000,0.988014,0.000000 -1353,0.153331,0.000000,0.988175,0.000000 -1354,0.152296,0.000000,0.988335,0.000000 -1355,0.151261,0.000000,0.988494,0.000000 -1356,0.150226,0.000000,0.988652,0.000000 -1357,0.149190,0.000000,0.988809,0.000000 -1358,0.148155,0.000000,0.988964,0.000000 -1359,0.147119,0.000000,0.989119,0.000000 -1360,0.146083,0.000000,0.989272,0.000000 -1361,0.145047,0.000000,0.989425,0.000000 -1362,0.144011,0.000000,0.989576,0.000000 -1363,0.142974,0.000000,0.989726,0.000000 -1364,0.141938,0.000000,0.989876,0.000000 -1365,0.140901,0.000000,0.990024,0.000000 -1366,0.139864,0.000000,0.990171,0.000000 -1367,0.138827,0.000000,0.990317,0.000000 -1368,0.137790,0.000000,0.990461,0.000000 -1369,0.136753,0.000000,0.990605,0.000000 -1370,0.135716,0.000000,0.990748,0.000000 -1371,0.134678,0.000000,0.990889,0.000000 -1372,0.133640,0.000000,0.991030,0.000000 -1373,0.132602,0.000000,0.991169,0.000000 -1374,0.131564,0.000000,0.991308,0.000000 -1375,0.130526,0.000000,0.991445,0.000000 -1376,0.129488,0.000000,0.991581,0.000000 -1377,0.128449,0.000000,0.991716,0.000000 -1378,0.127411,0.000000,0.991850,0.000000 -1379,0.126372,0.000000,0.991983,0.000000 -1380,0.125333,0.000000,0.992115,0.000000 -1381,0.124294,0.000000,0.992245,0.000000 -1382,0.123255,0.000000,0.992375,0.000000 -1383,0.122216,0.000000,0.992504,0.000000 -1384,0.121176,0.000000,0.992631,0.000000 -1385,0.120137,0.000000,0.992757,0.000000 -1386,0.119097,0.000000,0.992883,0.000000 -1387,0.118057,0.000000,0.993007,0.000000 -1388,0.117017,0.000000,0.993130,0.000000 -1389,0.115977,0.000000,0.993252,0.000000 -1390,0.114937,0.000000,0.993373,0.000000 -1391,0.113897,0.000000,0.993493,0.000000 -1392,0.112856,0.000000,0.993611,0.000000 -1393,0.111816,0.000000,0.993729,0.000000 -1394,0.110775,0.000000,0.993845,0.000000 -1395,0.109734,0.000000,0.993961,0.000000 -1396,0.108693,0.000000,0.994075,0.000000 -1397,0.107652,0.000000,0.994189,0.000000 -1398,0.106611,0.000000,0.994301,0.000000 -1399,0.105570,0.000000,0.994412,0.000000 -1400,0.104528,0.000000,0.994522,0.000000 -1401,0.103487,0.000000,0.994631,0.000000 -1402,0.102445,0.000000,0.994739,0.000000 -1403,0.101404,0.000000,0.994845,0.000000 -1404,0.100362,0.000000,0.994951,0.000000 -1405,0.099320,0.000000,0.995056,0.000000 -1406,0.098278,0.000000,0.995159,0.000000 -1407,0.097235,0.000000,0.995261,0.000000 -1408,0.096193,0.000000,0.995363,0.000000 -1409,0.095151,0.000000,0.995463,0.000000 -1410,0.094108,0.000000,0.995562,0.000000 -1411,0.093066,0.000000,0.995660,0.000000 -1412,0.092023,0.000000,0.995757,0.000000 -1413,0.090980,0.000000,0.995853,0.000000 -1414,0.089937,0.000000,0.995947,0.000000 -1415,0.088894,0.000000,0.996041,0.000000 -1416,0.087851,0.000000,0.996134,0.000000 -1417,0.086808,0.000000,0.996225,0.000000 -1418,0.085765,0.000000,0.996315,0.000000 -1419,0.084721,0.000000,0.996405,0.000000 -1420,0.083678,0.000000,0.996493,0.000000 -1421,0.082634,0.000000,0.996580,0.000000 -1422,0.081591,0.000000,0.996666,0.000000 -1423,0.080547,0.000000,0.996751,0.000000 -1424,0.079503,0.000000,0.996835,0.000000 -1425,0.078459,0.000000,0.996917,0.000000 -1426,0.077415,0.000000,0.996999,0.000000 -1427,0.076371,0.000000,0.997079,0.000000 -1428,0.075327,0.000000,0.997159,0.000000 -1429,0.074283,0.000000,0.997237,0.000000 -1430,0.073238,0.000000,0.997314,0.000000 -1431,0.072194,0.000000,0.997391,0.000000 -1432,0.071149,0.000000,0.997466,0.000000 -1433,0.070105,0.000000,0.997540,0.000000 -1434,0.069060,0.000000,0.997613,0.000000 -1435,0.068015,0.000000,0.997684,0.000000 -1436,0.066970,0.000000,0.997755,0.000000 -1437,0.065926,0.000000,0.997825,0.000000 -1438,0.064881,0.000000,0.997893,0.000000 -1439,0.063836,0.000000,0.997960,0.000000 -1440,0.062791,0.000000,0.998027,0.000000 -1441,0.061745,0.000000,0.998092,0.000000 -1442,0.060700,0.000000,0.998156,0.000000 -1443,0.059655,0.000000,0.998219,0.000000 -1444,0.058609,0.000000,0.998281,0.000000 -1445,0.057564,0.000000,0.998342,0.000000 -1446,0.056519,0.000000,0.998402,0.000000 -1447,0.055473,0.000000,0.998460,0.000000 -1448,0.054427,0.000000,0.998518,0.000000 -1449,0.053382,0.000000,0.998574,0.000000 -1450,0.052336,0.000000,0.998630,0.000000 -1451,0.051290,0.000000,0.998684,0.000000 -1452,0.050244,0.000000,0.998737,0.000000 -1453,0.049198,0.000000,0.998789,0.000000 -1454,0.048152,0.000000,0.998840,0.000000 -1455,0.047106,0.000000,0.998890,0.000000 -1456,0.046060,0.000000,0.998939,0.000000 -1457,0.045014,0.000000,0.998986,0.000000 -1458,0.043968,0.000000,0.999033,0.000000 -1459,0.042922,0.000000,0.999078,0.000000 -1460,0.041876,0.000000,0.999123,0.000000 -1461,0.040829,0.000000,0.999166,0.000000 -1462,0.039783,0.000000,0.999208,0.000000 -1463,0.038737,0.000000,0.999249,0.000000 -1464,0.037690,0.000000,0.999289,0.000000 -1465,0.036644,0.000000,0.999328,0.000000 -1466,0.035597,0.000000,0.999366,0.000000 -1467,0.034551,0.000000,0.999403,0.000000 -1468,0.033504,0.000000,0.999439,0.000000 -1469,0.032457,0.000000,0.999473,0.000000 -1470,0.031411,0.000000,0.999507,0.000000 -1471,0.030364,0.000000,0.999539,0.000000 -1472,0.029317,0.000000,0.999570,0.000000 -1473,0.028271,0.000000,0.999600,0.000000 -1474,0.027224,0.000000,0.999629,0.000000 -1475,0.026177,0.000000,0.999657,0.000000 -1476,0.025130,0.000000,0.999684,0.000000 -1477,0.024083,0.000000,0.999710,0.000000 -1478,0.023036,0.000000,0.999735,0.000000 -1479,0.021989,0.000000,0.999758,0.000000 -1480,0.020942,0.000000,0.999781,0.000000 -1481,0.019895,0.000000,0.999802,0.000000 -1482,0.018848,0.000000,0.999822,0.000000 -1483,0.017801,0.000000,0.999842,0.000000 -1484,0.016754,0.000000,0.999860,0.000000 -1485,0.015707,0.000000,0.999877,0.000000 -1486,0.014660,0.000000,0.999893,0.000000 -1487,0.013613,0.000000,0.999907,0.000000 -1488,0.012566,0.000000,0.999921,0.000000 -1489,0.011519,0.000000,0.999934,0.000000 -1490,0.010472,0.000000,0.999945,0.000000 -1491,0.009425,0.000000,0.999956,0.000000 -1492,0.008377,0.000000,0.999965,0.000000 -1493,0.007330,0.000000,0.999973,0.000000 -1494,0.006283,0.000000,0.999980,0.000000 -1495,0.005236,0.000000,0.999986,0.000000 -1496,0.004189,0.000000,0.999991,0.000000 -1497,0.003142,0.000000,0.999995,0.000000 -1498,0.002094,0.000000,0.999998,0.000000 -1499,0.001047,0.000000,0.999999,0.000000 -1500,0.000000,0.000000,1.000000,0.000000 -1501,-0.001047,-0.000000,0.999999,-0.000000 -1502,-0.002094,-0.000000,0.999998,-0.000000 -1503,-0.003142,-0.000000,0.999995,-0.000000 -1504,-0.004189,-0.000000,0.999991,-0.000000 -1505,-0.005236,-0.000000,0.999986,-0.000000 -1506,-0.006283,-0.000000,0.999980,-0.000000 -1507,-0.007330,-0.000000,0.999973,-0.000000 -1508,-0.008377,-0.000000,0.999965,-0.000000 -1509,-0.009425,-0.000000,0.999956,-0.000000 -1510,-0.010472,-0.000000,0.999945,-0.000000 -1511,-0.011519,-0.000000,0.999934,-0.000000 -1512,-0.012566,-0.000000,0.999921,-0.000000 -1513,-0.013613,-0.000000,0.999907,-0.000000 -1514,-0.014660,-0.000000,0.999893,-0.000000 -1515,-0.015707,-0.000000,0.999877,-0.000000 -1516,-0.016754,-0.000000,0.999860,-0.000000 -1517,-0.017801,-0.000000,0.999842,-0.000000 -1518,-0.018848,-0.000000,0.999822,-0.000000 -1519,-0.019895,-0.000000,0.999802,-0.000000 -1520,-0.020942,-0.000000,0.999781,-0.000000 -1521,-0.021989,-0.000000,0.999758,-0.000000 -1522,-0.023036,-0.000000,0.999735,-0.000000 -1523,-0.024083,-0.000000,0.999710,-0.000000 -1524,-0.025130,-0.000000,0.999684,-0.000000 -1525,-0.026177,-0.000000,0.999657,-0.000000 -1526,-0.027224,-0.000000,0.999629,-0.000000 -1527,-0.028271,-0.000000,0.999600,-0.000000 -1528,-0.029317,-0.000000,0.999570,-0.000000 -1529,-0.030364,-0.000000,0.999539,-0.000000 -1530,-0.031411,-0.000000,0.999507,-0.000000 -1531,-0.032457,-0.000000,0.999473,-0.000000 -1532,-0.033504,-0.000000,0.999439,-0.000000 -1533,-0.034551,-0.000000,0.999403,-0.000000 -1534,-0.035597,-0.000000,0.999366,-0.000000 -1535,-0.036644,-0.000000,0.999328,-0.000000 -1536,-0.037690,-0.000000,0.999289,-0.000000 -1537,-0.038737,-0.000000,0.999249,-0.000000 -1538,-0.039783,-0.000000,0.999208,-0.000000 -1539,-0.040829,-0.000000,0.999166,-0.000000 -1540,-0.041876,-0.000000,0.999123,-0.000000 -1541,-0.042922,-0.000000,0.999078,-0.000000 -1542,-0.043968,-0.000000,0.999033,-0.000000 -1543,-0.045014,-0.000000,0.998986,-0.000000 -1544,-0.046060,-0.000000,0.998939,-0.000000 -1545,-0.047106,-0.000000,0.998890,-0.000000 -1546,-0.048152,-0.000000,0.998840,-0.000000 -1547,-0.049198,-0.000000,0.998789,-0.000000 -1548,-0.050244,-0.000000,0.998737,-0.000000 -1549,-0.051290,-0.000000,0.998684,-0.000000 -1550,-0.052336,-0.000000,0.998630,-0.000000 -1551,-0.053382,-0.000000,0.998574,-0.000000 -1552,-0.054427,-0.000000,0.998518,-0.000000 -1553,-0.055473,-0.000000,0.998460,-0.000000 -1554,-0.056519,-0.000000,0.998402,-0.000000 -1555,-0.057564,-0.000000,0.998342,-0.000000 -1556,-0.058609,-0.000000,0.998281,-0.000000 -1557,-0.059655,-0.000000,0.998219,-0.000000 -1558,-0.060700,-0.000000,0.998156,-0.000000 -1559,-0.061745,-0.000000,0.998092,-0.000000 -1560,-0.062791,-0.000000,0.998027,-0.000000 -1561,-0.063836,-0.000000,0.997960,-0.000000 -1562,-0.064881,-0.000000,0.997893,-0.000000 -1563,-0.065926,-0.000000,0.997825,-0.000000 -1564,-0.066970,-0.000000,0.997755,-0.000000 -1565,-0.068015,-0.000000,0.997684,-0.000000 -1566,-0.069060,-0.000000,0.997613,-0.000000 -1567,-0.070105,-0.000000,0.997540,-0.000000 -1568,-0.071149,-0.000000,0.997466,-0.000000 -1569,-0.072194,-0.000000,0.997391,-0.000000 -1570,-0.073238,-0.000000,0.997314,-0.000000 -1571,-0.074283,-0.000000,0.997237,-0.000000 -1572,-0.075327,-0.000000,0.997159,-0.000000 -1573,-0.076371,-0.000000,0.997079,-0.000000 -1574,-0.077415,-0.000000,0.996999,-0.000000 -1575,-0.078459,-0.000000,0.996917,-0.000000 -1576,-0.079503,-0.000000,0.996835,-0.000000 -1577,-0.080547,-0.000000,0.996751,-0.000000 -1578,-0.081591,-0.000000,0.996666,-0.000000 -1579,-0.082634,-0.000000,0.996580,-0.000000 -1580,-0.083678,-0.000000,0.996493,-0.000000 -1581,-0.084721,-0.000000,0.996405,-0.000000 -1582,-0.085765,-0.000000,0.996315,-0.000000 -1583,-0.086808,-0.000000,0.996225,-0.000000 -1584,-0.087851,-0.000000,0.996134,-0.000000 -1585,-0.088894,-0.000000,0.996041,-0.000000 -1586,-0.089937,-0.000000,0.995947,-0.000000 -1587,-0.090980,-0.000000,0.995853,-0.000000 -1588,-0.092023,-0.000000,0.995757,-0.000000 -1589,-0.093066,-0.000000,0.995660,-0.000000 -1590,-0.094108,-0.000000,0.995562,-0.000000 -1591,-0.095151,-0.000000,0.995463,-0.000000 -1592,-0.096193,-0.000000,0.995363,-0.000000 -1593,-0.097235,-0.000000,0.995261,-0.000000 -1594,-0.098278,-0.000000,0.995159,-0.000000 -1595,-0.099320,-0.000000,0.995056,-0.000000 -1596,-0.100362,-0.000000,0.994951,-0.000000 -1597,-0.101404,-0.000000,0.994845,-0.000000 -1598,-0.102445,-0.000000,0.994739,-0.000000 -1599,-0.103487,-0.000000,0.994631,-0.000000 -1600,-0.104528,-0.000000,0.994522,-0.000000 -1601,-0.105570,-0.000000,0.994412,-0.000000 -1602,-0.106611,-0.000000,0.994301,-0.000000 -1603,-0.107652,-0.000000,0.994189,-0.000000 -1604,-0.108693,-0.000000,0.994075,-0.000000 -1605,-0.109734,-0.000000,0.993961,-0.000000 -1606,-0.110775,-0.000000,0.993845,-0.000000 -1607,-0.111816,-0.000000,0.993729,-0.000000 -1608,-0.112856,-0.000000,0.993611,-0.000000 -1609,-0.113897,-0.000000,0.993493,-0.000000 -1610,-0.114937,-0.000000,0.993373,-0.000000 -1611,-0.115977,-0.000000,0.993252,-0.000000 -1612,-0.117017,-0.000000,0.993130,-0.000000 -1613,-0.118057,-0.000000,0.993007,-0.000000 -1614,-0.119097,-0.000000,0.992883,-0.000000 -1615,-0.120137,-0.000000,0.992757,-0.000000 -1616,-0.121176,-0.000000,0.992631,-0.000000 -1617,-0.122216,-0.000000,0.992504,-0.000000 -1618,-0.123255,-0.000000,0.992375,-0.000000 -1619,-0.124294,-0.000000,0.992245,-0.000000 -1620,-0.125333,-0.000000,0.992115,-0.000000 -1621,-0.126372,-0.000000,0.991983,-0.000000 -1622,-0.127411,-0.000000,0.991850,-0.000000 -1623,-0.128449,-0.000000,0.991716,-0.000000 -1624,-0.129488,-0.000000,0.991581,-0.000000 -1625,-0.130526,-0.000000,0.991445,-0.000000 -1626,-0.131564,-0.000000,0.991308,-0.000000 -1627,-0.132602,-0.000000,0.991169,-0.000000 -1628,-0.133640,-0.000000,0.991030,-0.000000 -1629,-0.134678,-0.000000,0.990889,-0.000000 -1630,-0.135716,-0.000000,0.990748,-0.000000 -1631,-0.136753,-0.000000,0.990605,-0.000000 -1632,-0.137790,-0.000000,0.990461,-0.000000 -1633,-0.138827,-0.000000,0.990317,-0.000000 -1634,-0.139864,-0.000000,0.990171,-0.000000 -1635,-0.140901,-0.000000,0.990024,-0.000000 -1636,-0.141938,-0.000000,0.989876,-0.000000 -1637,-0.142974,-0.000000,0.989726,-0.000000 -1638,-0.144011,-0.000000,0.989576,-0.000000 -1639,-0.145047,-0.000000,0.989425,-0.000000 -1640,-0.146083,-0.000000,0.989272,-0.000000 -1641,-0.147119,-0.000000,0.989119,-0.000000 -1642,-0.148155,-0.000000,0.988964,-0.000000 -1643,-0.149190,-0.000000,0.988809,-0.000000 -1644,-0.150226,-0.000000,0.988652,-0.000000 -1645,-0.151261,-0.000000,0.988494,-0.000000 -1646,-0.152296,-0.000000,0.988335,-0.000000 -1647,-0.153331,-0.000000,0.988175,-0.000000 -1648,-0.154366,-0.000000,0.988014,-0.000000 -1649,-0.155400,-0.000000,0.987852,-0.000000 -1650,-0.156434,-0.000000,0.987688,-0.000000 -1651,-0.157469,-0.000000,0.987524,-0.000000 -1652,-0.158503,-0.000000,0.987359,-0.000000 -1653,-0.159537,-0.000000,0.987192,-0.000000 -1654,-0.160570,-0.000000,0.987024,-0.000000 -1655,-0.161604,-0.000000,0.986856,-0.000000 -1656,-0.162637,-0.000000,0.986686,-0.000000 -1657,-0.163670,-0.000000,0.986515,-0.000000 -1658,-0.164703,-0.000000,0.986343,-0.000000 -1659,-0.165736,-0.000000,0.986170,-0.000000 -1660,-0.166769,-0.000000,0.985996,-0.000000 -1661,-0.167801,-0.000000,0.985821,-0.000000 -1662,-0.168833,-0.000000,0.985645,-0.000000 -1663,-0.169866,-0.000000,0.985467,-0.000000 -1664,-0.170897,-0.000000,0.985289,-0.000000 -1665,-0.171929,-0.000000,0.985109,-0.000000 -1666,-0.172961,-0.000000,0.984929,-0.000000 -1667,-0.173992,-0.000000,0.984747,-0.000000 -1668,-0.175023,-0.000000,0.984564,-0.000000 -1669,-0.176054,-0.000000,0.984381,-0.000000 -1670,-0.177085,-0.000000,0.984196,-0.000000 -1671,-0.178115,-0.000000,0.984010,-0.000000 -1672,-0.179146,-0.000000,0.983823,-0.000000 -1673,-0.180176,-0.000000,0.983634,-0.000000 -1674,-0.181206,-0.000000,0.983445,-0.000000 -1675,-0.182236,-0.000000,0.983255,-0.000000 -1676,-0.183265,-0.000000,0.983064,-0.000000 -1677,-0.184294,-0.000000,0.982871,-0.000000 -1678,-0.185324,-0.000000,0.982678,-0.000000 -1679,-0.186353,-0.000000,0.982483,-0.000000 -1680,-0.187381,-0.000000,0.982287,-0.000000 -1681,-0.188410,-0.000000,0.982090,-0.000000 -1682,-0.189438,-0.000000,0.981893,-0.000000 -1683,-0.190466,-0.000000,0.981694,-0.000000 -1684,-0.191494,-0.000000,0.981494,-0.000000 -1685,-0.192522,-0.000000,0.981293,-0.000000 -1686,-0.193549,-0.000000,0.981091,-0.000000 -1687,-0.194577,-0.000000,0.980887,-0.000000 -1688,-0.195604,-0.000000,0.980683,-0.000000 -1689,-0.196631,-0.000000,0.980478,-0.000000 -1690,-0.197657,-0.000000,0.980271,-0.000000 -1691,-0.198684,-0.000000,0.980064,-0.000000 -1692,-0.199710,-0.000000,0.979855,-0.000000 -1693,-0.200736,-0.000000,0.979645,-0.000000 -1694,-0.201762,-0.000000,0.979435,-0.000000 -1695,-0.202787,-0.000000,0.979223,-0.000000 -1696,-0.203813,-0.000000,0.979010,-0.000000 -1697,-0.204838,-0.000000,0.978796,-0.000000 -1698,-0.205863,-0.000000,0.978581,-0.000000 -1699,-0.206887,-0.000000,0.978365,-0.000000 -1700,-0.207912,-0.000000,0.978148,-0.000000 -1701,-0.208936,-0.000000,0.977929,-0.000000 -1702,-0.209960,-0.000000,0.977710,-0.000000 -1703,-0.210984,-0.000000,0.977490,-0.000000 -1704,-0.212007,-0.000000,0.977268,-0.000000 -1705,-0.213030,-0.000000,0.977046,-0.000000 -1706,-0.214053,-0.000000,0.976822,-0.000000 -1707,-0.215076,-0.000000,0.976597,-0.000000 -1708,-0.216099,-0.000000,0.976371,-0.000000 -1709,-0.217121,-0.000000,0.976145,-0.000000 -1710,-0.218143,-0.000000,0.975917,-0.000000 -1711,-0.219165,-0.000000,0.975688,-0.000000 -1712,-0.220187,-0.000000,0.975458,-0.000000 -1713,-0.221208,-0.000000,0.975227,-0.000000 -1714,-0.222229,-0.000000,0.974994,-0.000000 -1715,-0.223250,-0.000000,0.974761,-0.000000 -1716,-0.224271,-0.000000,0.974527,-0.000000 -1717,-0.225291,-0.000000,0.974291,-0.000000 -1718,-0.226311,-0.000000,0.974055,-0.000000 -1719,-0.227331,-0.000000,0.973817,-0.000000 -1720,-0.228351,-0.000000,0.973579,-0.000000 -1721,-0.229370,-0.000000,0.973339,-0.000000 -1722,-0.230389,-0.000000,0.973099,-0.000000 -1723,-0.231408,-0.000000,0.972857,-0.000000 -1724,-0.232427,-0.000000,0.972614,-0.000000 -1725,-0.233445,-0.000000,0.972370,-0.000000 -1726,-0.234463,-0.000000,0.972125,-0.000000 -1727,-0.235481,-0.000000,0.971879,-0.000000 -1728,-0.236499,-0.000000,0.971632,-0.000000 -1729,-0.237516,-0.000000,0.971384,-0.000000 -1730,-0.238533,-0.000000,0.971134,-0.000000 -1731,-0.239550,-0.000000,0.970884,-0.000000 -1732,-0.240567,-0.000000,0.970633,-0.000000 -1733,-0.241583,-0.000000,0.970380,-0.000000 -1734,-0.242599,-0.000000,0.970127,-0.000000 -1735,-0.243615,-0.000000,0.969872,-0.000000 -1736,-0.244631,-0.000000,0.969616,-0.000000 -1737,-0.245646,-0.000000,0.969360,-0.000000 -1738,-0.246661,-0.000000,0.969102,-0.000000 -1739,-0.247675,-0.000000,0.968843,-0.000000 -1740,-0.248690,-0.000000,0.968583,-0.000000 -1741,-0.249704,-0.000000,0.968322,-0.000000 -1742,-0.250718,-0.000000,0.968060,-0.000000 -1743,-0.251732,-0.000000,0.967797,-0.000000 -1744,-0.252745,-0.000000,0.967533,-0.000000 -1745,-0.253758,-0.000000,0.967268,-0.000000 -1746,-0.254771,-0.000000,0.967001,-0.000000 -1747,-0.255783,-0.000000,0.966734,-0.000000 -1748,-0.256795,-0.000000,0.966466,-0.000000 -1749,-0.257807,-0.000000,0.966196,-0.000000 -1750,-0.258819,-0.000000,0.965926,-0.000000 -1751,-0.259830,-0.000000,0.965654,-0.000000 -1752,-0.260842,-0.000000,0.965382,-0.000000 -1753,-0.261852,-0.000000,0.965108,-0.000000 -1754,-0.262863,-0.000000,0.964833,-0.000000 -1755,-0.263873,-0.000000,0.964557,-0.000000 -1756,-0.264883,-0.000000,0.964281,-0.000000 -1757,-0.265893,-0.000000,0.964003,-0.000000 -1758,-0.266902,-0.000000,0.963724,-0.000000 -1759,-0.267911,-0.000000,0.963444,-0.000000 -1760,-0.268920,-0.000000,0.963163,-0.000000 -1761,-0.269928,-0.000000,0.962880,-0.000000 -1762,-0.270936,-0.000000,0.962597,-0.000000 -1763,-0.271944,-0.000000,0.962313,-0.000000 -1764,-0.272952,-0.000000,0.962028,-0.000000 -1765,-0.273959,-0.000000,0.961741,-0.000000 -1766,-0.274966,-0.000000,0.961454,-0.000000 -1767,-0.275973,-0.000000,0.961165,-0.000000 -1768,-0.276979,-0.000000,0.960876,-0.000000 -1769,-0.277985,-0.000000,0.960585,-0.000000 -1770,-0.278991,-0.000000,0.960294,-0.000000 -1771,-0.279997,-0.000000,0.960001,-0.000000 -1772,-0.281002,-0.000000,0.959707,-0.000000 -1773,-0.282007,-0.000000,0.959412,-0.000000 -1774,-0.283011,-0.000000,0.959117,-0.000000 -1775,-0.284015,-0.000000,0.958820,-0.000000 -1776,-0.285019,-0.000000,0.958522,-0.000000 -1777,-0.286023,-0.000000,0.958223,-0.000000 -1778,-0.287026,-0.000000,0.957923,-0.000000 -1779,-0.288029,-0.000000,0.957622,-0.000000 -1780,-0.289032,-0.000000,0.957319,-0.000000 -1781,-0.290034,-0.000000,0.957016,-0.000000 -1782,-0.291036,-0.000000,0.956712,-0.000000 -1783,-0.292038,-0.000000,0.956407,-0.000000 -1784,-0.293039,-0.000000,0.956100,-0.000000 -1785,-0.294040,-0.000000,0.955793,-0.000000 -1786,-0.295041,-0.000000,0.955485,-0.000000 -1787,-0.296041,-0.000000,0.955175,-0.000000 -1788,-0.297042,-0.000000,0.954865,-0.000000 -1789,-0.298041,-0.000000,0.954553,-0.000000 -1790,-0.299041,-0.000000,0.954240,-0.000000 -1791,-0.300040,-0.000000,0.953927,-0.000000 -1792,-0.301039,-0.000000,0.953612,-0.000000 -1793,-0.302037,-0.000000,0.953296,-0.000000 -1794,-0.303035,-0.000000,0.952979,-0.000000 -1795,-0.304033,-0.000000,0.952661,-0.000000 -1796,-0.305031,-0.000000,0.952343,-0.000000 -1797,-0.306028,-0.000000,0.952023,-0.000000 -1798,-0.307024,-0.000000,0.951702,-0.000000 -1799,-0.308021,-0.000000,0.951380,-0.000000 -1800,-0.309017,-0.000000,0.951057,-0.000000 -1801,-0.310013,-0.000000,0.950732,-0.000000 -1802,-0.311008,-0.000000,0.950407,-0.000000 -1803,-0.312003,-0.000000,0.950081,-0.000000 -1804,-0.312998,-0.000000,0.949754,-0.000000 -1805,-0.313992,-0.000000,0.949425,-0.000000 -1806,-0.314987,-0.000000,0.949096,-0.000000 -1807,-0.315980,-0.000000,0.948766,-0.000000 -1808,-0.316974,-0.000000,0.948434,-0.000000 -1809,-0.317967,-0.000000,0.948102,-0.000000 -1810,-0.318959,-0.000000,0.947768,-0.000000 -1811,-0.319952,-0.000000,0.947434,-0.000000 -1812,-0.320944,-0.000000,0.947098,-0.000000 -1813,-0.321935,-0.000000,0.946762,-0.000000 -1814,-0.322927,-0.000000,0.946424,-0.000000 -1815,-0.323917,-0.000000,0.946085,-0.000000 -1816,-0.324908,-0.000000,0.945746,-0.000000 -1817,-0.325898,-0.000000,0.945405,-0.000000 -1818,-0.326888,-0.000000,0.945063,-0.000000 -1819,-0.327878,-0.000000,0.944720,-0.000000 -1820,-0.328867,-0.000000,0.944376,-0.000000 -1821,-0.329855,-0.000000,0.944031,-0.000000 -1822,-0.330844,-0.000000,0.943686,-0.000000 -1823,-0.331832,-0.000000,0.943339,-0.000000 -1824,-0.332820,-0.000000,0.942991,-0.000000 -1825,-0.333807,-0.000000,0.942641,-0.000000 -1826,-0.334794,-0.000000,0.942291,-0.000000 -1827,-0.335780,-0.000000,0.941940,-0.000000 -1828,-0.336767,-0.000000,0.941588,-0.000000 -1829,-0.337752,-0.000000,0.941235,-0.000000 -1830,-0.338738,-0.000000,0.940881,-0.000000 -1831,-0.339723,-0.000000,0.940526,-0.000000 -1832,-0.340708,-0.000000,0.940169,-0.000000 -1833,-0.341692,-0.000000,0.939812,-0.000000 -1834,-0.342676,-0.000000,0.939454,-0.000000 -1835,-0.343660,-0.000000,0.939094,-0.000000 -1836,-0.344643,-0.000000,0.938734,-0.000000 -1837,-0.345626,-0.000000,0.938372,-0.000000 -1838,-0.346608,-0.000000,0.938010,-0.000000 -1839,-0.347590,-0.000000,0.937646,-0.000000 -1840,-0.348572,-0.000000,0.937282,-0.000000 -1841,-0.349553,-0.000000,0.936916,-0.000000 -1842,-0.350534,-0.000000,0.936550,-0.000000 -1843,-0.351515,-0.000000,0.936182,-0.000000 -1844,-0.352495,-0.000000,0.935814,-0.000000 -1845,-0.353475,-0.000000,0.935444,-0.000000 -1846,-0.354454,-0.000000,0.935073,-0.000000 -1847,-0.355433,-0.000000,0.934702,-0.000000 -1848,-0.356412,-0.000000,0.934329,-0.000000 -1849,-0.357390,-0.000000,0.933955,-0.000000 -1850,-0.358368,-0.000000,0.933580,-0.000000 -1851,-0.359345,-0.000000,0.933205,-0.000000 -1852,-0.360322,-0.000000,0.932828,-0.000000 -1853,-0.361299,-0.000000,0.932450,-0.000000 -1854,-0.362275,-0.000000,0.932071,-0.000000 -1855,-0.363251,-0.000000,0.931691,-0.000000 -1856,-0.364227,-0.000000,0.931310,-0.000000 -1857,-0.365202,-0.000000,0.930928,-0.000000 -1858,-0.366176,-0.000000,0.930545,-0.000000 -1859,-0.367151,-0.000000,0.930161,-0.000000 -1860,-0.368125,-0.000000,0.929776,-0.000000 -1861,-0.369098,-0.000000,0.929390,-0.000000 -1862,-0.370071,-0.000000,0.929003,-0.000000 -1863,-0.371044,-0.000000,0.928615,-0.000000 -1864,-0.372016,-0.000000,0.928226,-0.000000 -1865,-0.372988,-0.000000,0.927836,-0.000000 -1866,-0.373959,-0.000000,0.927445,-0.000000 -1867,-0.374930,-0.000000,0.927053,-0.000000 -1868,-0.375901,-0.000000,0.926660,-0.000000 -1869,-0.376871,-0.000000,0.926266,-0.000000 -1870,-0.377841,-0.000000,0.925871,-0.000000 -1871,-0.378810,-0.000000,0.925474,-0.000000 -1872,-0.379779,-0.000000,0.925077,-0.000000 -1873,-0.380748,-0.000000,0.924679,-0.000000 -1874,-0.381716,-0.000000,0.924280,-0.000000 -1875,-0.382683,-0.000000,0.923880,-0.000000 -1876,-0.383651,-0.000000,0.923478,-0.000000 -1877,-0.384618,-0.000000,0.923076,-0.000000 -1878,-0.385584,-0.000000,0.922673,-0.000000 -1879,-0.386550,-0.000000,0.922268,-0.000000 -1880,-0.387516,-0.000000,0.921863,-0.000000 -1881,-0.388481,-0.000000,0.921457,-0.000000 -1882,-0.389445,-0.000000,0.921050,-0.000000 -1883,-0.390410,-0.000000,0.920641,-0.000000 -1884,-0.391374,-0.000000,0.920232,-0.000000 -1885,-0.392337,-0.000000,0.919821,-0.000000 -1886,-0.393300,-0.000000,0.919410,-0.000000 -1887,-0.394263,-0.000000,0.918998,-0.000000 -1888,-0.395225,-0.000000,0.918584,-0.000000 -1889,-0.396187,-0.000000,0.918170,-0.000000 -1890,-0.397148,-0.000000,0.917755,-0.000000 -1891,-0.398109,-0.000000,0.917338,-0.000000 -1892,-0.399069,-0.000000,0.916921,-0.000000 -1893,-0.400029,-0.000000,0.916502,-0.000000 -1894,-0.400989,-0.000000,0.916083,-0.000000 -1895,-0.401948,-0.000000,0.915663,-0.000000 -1896,-0.402906,-0.000000,0.915241,-0.000000 -1897,-0.403865,-0.000000,0.914819,-0.000000 -1898,-0.404822,-0.000000,0.914395,-0.000000 -1899,-0.405780,-0.000000,0.913971,-0.000000 -1900,-0.406737,-0.000000,0.913545,-0.000000 -1901,-0.407693,-0.000000,0.913119,-0.000000 -1902,-0.408649,-0.000000,0.912692,-0.000000 -1903,-0.409605,-0.000000,0.912263,-0.000000 -1904,-0.410560,-0.000000,0.911834,-0.000000 -1905,-0.411514,-0.000000,0.911403,-0.000000 -1906,-0.412469,-0.000000,0.910972,-0.000000 -1907,-0.413422,-0.000000,0.910539,-0.000000 -1908,-0.414376,-0.000000,0.910106,-0.000000 -1909,-0.415328,-0.000000,0.909672,-0.000000 -1910,-0.416281,-0.000000,0.909236,-0.000000 -1911,-0.417233,-0.000000,0.908800,-0.000000 -1912,-0.418184,-0.000000,0.908362,-0.000000 -1913,-0.419135,-0.000000,0.907924,-0.000000 -1914,-0.420086,-0.000000,0.907484,-0.000000 -1915,-0.421036,-0.000000,0.907044,-0.000000 -1916,-0.421985,-0.000000,0.906603,-0.000000 -1917,-0.422935,-0.000000,0.906160,-0.000000 -1918,-0.423883,-0.000000,0.905717,-0.000000 -1919,-0.424832,-0.000000,0.905272,-0.000000 -1920,-0.425779,-0.000000,0.904827,-0.000000 -1921,-0.426727,-0.000000,0.904381,-0.000000 -1922,-0.427673,-0.000000,0.903933,-0.000000 -1923,-0.428620,-0.000000,0.903485,-0.000000 -1924,-0.429566,-0.000000,0.903036,-0.000000 -1925,-0.430511,-0.000000,0.902585,-0.000000 -1926,-0.431456,-0.000000,0.902134,-0.000000 -1927,-0.432401,-0.000000,0.901682,-0.000000 -1928,-0.433345,-0.000000,0.901228,-0.000000 -1929,-0.434288,-0.000000,0.900774,-0.000000 -1930,-0.435231,-0.000000,0.900319,-0.000000 -1931,-0.436174,-0.000000,0.899863,-0.000000 -1932,-0.437116,-0.000000,0.899405,-0.000000 -1933,-0.438057,-0.000000,0.898947,-0.000000 -1934,-0.438999,-0.000000,0.898488,-0.000000 -1935,-0.439939,-0.000000,0.898028,-0.000000 -1936,-0.440879,-0.000000,0.897566,-0.000000 -1937,-0.441819,-0.000000,0.897104,-0.000000 -1938,-0.442758,-0.000000,0.896641,-0.000000 -1939,-0.443697,-0.000000,0.896177,-0.000000 -1940,-0.444635,-0.000000,0.895712,-0.000000 -1941,-0.445573,-0.000000,0.895246,-0.000000 -1942,-0.446510,-0.000000,0.894779,-0.000000 -1943,-0.447447,-0.000000,0.894310,-0.000000 -1944,-0.448383,-0.000000,0.893841,-0.000000 -1945,-0.449319,-0.000000,0.893371,-0.000000 -1946,-0.450254,-0.000000,0.892900,-0.000000 -1947,-0.451189,-0.000000,0.892428,-0.000000 -1948,-0.452123,-0.000000,0.891955,-0.000000 -1949,-0.453057,-0.000000,0.891481,-0.000000 -1950,-0.453990,-0.000000,0.891007,-0.000000 -1951,-0.454923,-0.000000,0.890531,-0.000000 -1952,-0.455856,-0.000000,0.890054,-0.000000 -1953,-0.456787,-0.000000,0.889576,-0.000000 -1954,-0.457719,-0.000000,0.889097,-0.000000 -1955,-0.458650,-0.000000,0.888617,-0.000000 -1956,-0.459580,-0.000000,0.888136,-0.000000 -1957,-0.460510,-0.000000,0.887655,-0.000000 -1958,-0.461439,-0.000000,0.887172,-0.000000 -1959,-0.462368,-0.000000,0.886688,-0.000000 -1960,-0.463296,-0.000000,0.886204,-0.000000 -1961,-0.464224,-0.000000,0.885718,-0.000000 -1962,-0.465151,-0.000000,0.885231,-0.000000 -1963,-0.466078,-0.000000,0.884744,-0.000000 -1964,-0.467004,-0.000000,0.884255,-0.000000 -1965,-0.467930,-0.000000,0.883766,-0.000000 -1966,-0.468855,-0.000000,0.883275,-0.000000 -1967,-0.469780,-0.000000,0.882784,-0.000000 -1968,-0.470704,-0.000000,0.882291,-0.000000 -1969,-0.471628,-0.000000,0.881798,-0.000000 -1970,-0.472551,-0.000000,0.881303,-0.000000 -1971,-0.473473,-0.000000,0.880808,-0.000000 -1972,-0.474396,-0.000000,0.880312,-0.000000 -1973,-0.475317,-0.000000,0.879815,-0.000000 -1974,-0.476238,-0.000000,0.879316,-0.000000 -1975,-0.477159,-0.000000,0.878817,-0.000000 -1976,-0.478079,-0.000000,0.878317,-0.000000 -1977,-0.478998,-0.000000,0.877816,-0.000000 -1978,-0.479917,-0.000000,0.877314,-0.000000 -1979,-0.480836,-0.000000,0.876811,-0.000000 -1980,-0.481754,-0.000000,0.876307,-0.000000 -1981,-0.482671,-0.000000,0.875802,-0.000000 -1982,-0.483588,-0.000000,0.875296,-0.000000 -1983,-0.484504,-0.000000,0.874789,-0.000000 -1984,-0.485420,-0.000000,0.874281,-0.000000 -1985,-0.486335,-0.000000,0.873772,-0.000000 -1986,-0.487250,-0.000000,0.873262,-0.000000 -1987,-0.488164,-0.000000,0.872752,-0.000000 -1988,-0.489078,-0.000000,0.872240,-0.000000 -1989,-0.489991,-0.000000,0.871727,-0.000000 -1990,-0.490904,-0.000000,0.871214,-0.000000 -1991,-0.491816,-0.000000,0.870699,-0.000000 -1992,-0.492727,-0.000000,0.870184,-0.000000 -1993,-0.493638,-0.000000,0.869667,-0.000000 -1994,-0.494549,-0.000000,0.869150,-0.000000 -1995,-0.495459,-0.000000,0.868632,-0.000000 -1996,-0.496368,-0.000000,0.868112,-0.000000 -1997,-0.497277,-0.000000,0.867592,-0.000000 -1998,-0.498185,-0.000000,0.867071,-0.000000 -1999,-0.499093,-0.000000,0.866549,-0.000000 -2000,-0.500000,-0.000000,0.866025,-0.000000 -2001,-0.500907,-0.000000,0.865501,-0.000000 -2002,-0.501813,-0.000000,0.864976,-0.000000 -2003,-0.502718,-0.000000,0.864450,-0.000000 -2004,-0.503623,-0.000000,0.863923,-0.000000 -2005,-0.504528,-0.000000,0.863396,-0.000000 -2006,-0.505431,-0.000000,0.862867,-0.000000 -2007,-0.506335,-0.000000,0.862337,-0.000000 -2008,-0.507238,-0.000000,0.861806,-0.000000 -2009,-0.508140,-0.000000,0.861275,-0.000000 -2010,-0.509041,-0.000000,0.860742,-0.000000 -2011,-0.509943,-0.000000,0.860208,-0.000000 -2012,-0.510843,-0.000000,0.859674,-0.000000 -2013,-0.511743,-0.000000,0.859139,-0.000000 -2014,-0.512642,-0.000000,0.858602,-0.000000 -2015,-0.513541,-0.000000,0.858065,-0.000000 -2016,-0.514440,-0.000000,0.857527,-0.000000 -2017,-0.515337,-0.000000,0.856987,-0.000000 -2018,-0.516234,-0.000000,0.856447,-0.000000 -2019,-0.517131,-0.000000,0.855906,-0.000000 -2020,-0.518027,-0.000000,0.855364,-0.000000 -2021,-0.518922,-0.000000,0.854821,-0.000000 -2022,-0.519817,-0.000000,0.854277,-0.000000 -2023,-0.520712,-0.000000,0.853733,-0.000000 -2024,-0.521605,-0.000000,0.853187,-0.000000 -2025,-0.522499,-0.000000,0.852640,-0.000000 -2026,-0.523391,-0.000000,0.852093,-0.000000 -2027,-0.524283,-0.000000,0.851544,-0.000000 -2028,-0.525175,-0.000000,0.850994,-0.000000 -2029,-0.526066,-0.000000,0.850444,-0.000000 -2030,-0.526956,-0.000000,0.849893,-0.000000 -2031,-0.527846,-0.000000,0.849340,-0.000000 -2032,-0.528735,-0.000000,0.848787,-0.000000 -2033,-0.529623,-0.000000,0.848233,-0.000000 -2034,-0.530511,-0.000000,0.847678,-0.000000 -2035,-0.531399,-0.000000,0.847122,-0.000000 -2036,-0.532285,-0.000000,0.846565,-0.000000 -2037,-0.533172,-0.000000,0.846007,-0.000000 -2038,-0.534057,-0.000000,0.845448,-0.000000 -2039,-0.534942,-0.000000,0.844889,-0.000000 -2040,-0.535827,-0.000000,0.844328,-0.000000 -2041,-0.536711,-0.000000,0.843766,-0.000000 -2042,-0.537594,-0.000000,0.843204,-0.000000 -2043,-0.538477,-0.000000,0.842640,-0.000000 -2044,-0.539359,-0.000000,0.842076,-0.000000 -2045,-0.540240,-0.000000,0.841511,-0.000000 -2046,-0.541121,-0.000000,0.840945,-0.000000 -2047,-0.542002,-0.000000,0.840377,-0.000000 -2048,-0.542881,-0.000000,0.839809,-0.000000 -2049,-0.543760,-0.000000,0.839240,-0.000000 -2050,-0.544639,-0.000000,0.838671,-0.000000 -2051,-0.545517,-0.000000,0.838100,-0.000000 -2052,-0.546394,-0.000000,0.837528,-0.000000 -2053,-0.547271,-0.000000,0.836955,-0.000000 -2054,-0.548147,-0.000000,0.836382,-0.000000 -2055,-0.549023,-0.000000,0.835807,-0.000000 -2056,-0.549898,-0.000000,0.835232,-0.000000 -2057,-0.550772,-0.000000,0.834656,-0.000000 -2058,-0.551646,-0.000000,0.834078,-0.000000 -2059,-0.552519,-0.000000,0.833500,-0.000000 -2060,-0.553392,-0.000000,0.832921,-0.000000 -2061,-0.554263,-0.000000,0.832341,-0.000000 -2062,-0.555135,-0.000000,0.831760,-0.000000 -2063,-0.556006,-0.000000,0.831179,-0.000000 -2064,-0.556876,-0.000000,0.830596,-0.000000 -2065,-0.557745,-0.000000,0.830012,-0.000000 -2066,-0.558614,-0.000000,0.829428,-0.000000 -2067,-0.559482,-0.000000,0.828842,-0.000000 -2068,-0.560350,-0.000000,0.828256,-0.000000 -2069,-0.561217,-0.000000,0.827669,-0.000000 -2070,-0.562083,-0.000000,0.827081,-0.000000 -2071,-0.562949,-0.000000,0.826492,-0.000000 -2072,-0.563814,-0.000000,0.825902,-0.000000 -2073,-0.564679,-0.000000,0.825311,-0.000000 -2074,-0.565543,-0.000000,0.824719,-0.000000 -2075,-0.566406,-0.000000,0.824126,-0.000000 -2076,-0.567269,-0.000000,0.823533,-0.000000 -2077,-0.568131,-0.000000,0.822938,-0.000000 -2078,-0.568993,-0.000000,0.822343,-0.000000 -2079,-0.569853,-0.000000,0.821746,-0.000000 -2080,-0.570714,-0.000000,0.821149,-0.000000 -2081,-0.571573,-0.000000,0.820551,-0.000000 -2082,-0.572432,-0.000000,0.819952,-0.000000 -2083,-0.573290,-0.000000,0.819352,-0.000000 -2084,-0.574148,-0.000000,0.818751,-0.000000 -2085,-0.575005,-0.000000,0.818150,-0.000000 -2086,-0.575862,-0.000000,0.817547,-0.000000 -2087,-0.576718,-0.000000,0.816944,-0.000000 -2088,-0.577573,-0.000000,0.816339,-0.000000 -2089,-0.578427,-0.000000,0.815734,-0.000000 -2090,-0.579281,-0.000000,0.815128,-0.000000 -2091,-0.580134,-0.000000,0.814521,-0.000000 -2092,-0.580987,-0.000000,0.813913,-0.000000 -2093,-0.581839,-0.000000,0.813304,-0.000000 -2094,-0.582690,-0.000000,0.812694,-0.000000 -2095,-0.583541,-0.000000,0.812084,-0.000000 -2096,-0.584391,-0.000000,0.811472,-0.000000 -2097,-0.585241,-0.000000,0.810860,-0.000000 -2098,-0.586090,-0.000000,0.810246,-0.000000 -2099,-0.586938,-0.000000,0.809632,-0.000000 -2100,-0.587785,-0.000000,0.809017,-0.000000 -2101,-0.588632,-0.000000,0.808401,-0.000000 -2102,-0.589478,-0.000000,0.807784,-0.000000 -2103,-0.590324,-0.000000,0.807166,-0.000000 -2104,-0.591169,-0.000000,0.806548,-0.000000 -2105,-0.592013,-0.000000,0.805928,-0.000000 -2106,-0.592857,-0.000000,0.805308,-0.000000 -2107,-0.593700,-0.000000,0.804687,-0.000000 -2108,-0.594542,-0.000000,0.804064,-0.000000 -2109,-0.595384,-0.000000,0.803441,-0.000000 -2110,-0.596225,-0.000000,0.802817,-0.000000 -2111,-0.597065,-0.000000,0.802193,-0.000000 -2112,-0.597905,-0.000000,0.801567,-0.000000 -2113,-0.598744,-0.000000,0.800940,-0.000000 -2114,-0.599582,-0.000000,0.800313,-0.000000 -2115,-0.600420,-0.000000,0.799685,-0.000000 -2116,-0.601257,-0.000000,0.799055,-0.000000 -2117,-0.602094,-0.000000,0.798425,-0.000000 -2118,-0.602930,-0.000000,0.797794,-0.000000 -2119,-0.603765,-0.000000,0.797163,-0.000000 -2120,-0.604599,-0.000000,0.796530,-0.000000 -2121,-0.605433,-0.000000,0.795896,-0.000000 -2122,-0.606266,-0.000000,0.795262,-0.000000 -2123,-0.607098,-0.000000,0.794627,-0.000000 -2124,-0.607930,-0.000000,0.793990,-0.000000 -2125,-0.608761,-0.000000,0.793353,-0.000000 -2126,-0.609592,-0.000000,0.792715,-0.000000 -2127,-0.610422,-0.000000,0.792077,-0.000000 -2128,-0.611251,-0.000000,0.791437,-0.000000 -2129,-0.612079,-0.000000,0.790796,-0.000000 -2130,-0.612907,-0.000000,0.790155,-0.000000 -2131,-0.613734,-0.000000,0.789513,-0.000000 -2132,-0.614561,-0.000000,0.788870,-0.000000 -2133,-0.615386,-0.000000,0.788226,-0.000000 -2134,-0.616211,-0.000000,0.787581,-0.000000 -2135,-0.617036,-0.000000,0.786935,-0.000000 -2136,-0.617860,-0.000000,0.786288,-0.000000 -2137,-0.618683,-0.000000,0.785641,-0.000000 -2138,-0.619505,-0.000000,0.784993,-0.000000 -2139,-0.620327,-0.000000,0.784343,-0.000000 -2140,-0.621148,-0.000000,0.783693,-0.000000 -2141,-0.621968,-0.000000,0.783043,-0.000000 -2142,-0.622788,-0.000000,0.782391,-0.000000 -2143,-0.623607,-0.000000,0.781738,-0.000000 -2144,-0.624425,-0.000000,0.781085,-0.000000 -2145,-0.625243,-0.000000,0.780430,-0.000000 -2146,-0.626060,-0.000000,0.779775,-0.000000 -2147,-0.626876,-0.000000,0.779119,-0.000000 -2148,-0.627691,-0.000000,0.778462,-0.000000 -2149,-0.628506,-0.000000,0.777805,-0.000000 -2150,-0.629320,-0.000000,0.777146,-0.000000 -2151,-0.630134,-0.000000,0.776487,-0.000000 -2152,-0.630947,-0.000000,0.775826,-0.000000 -2153,-0.631759,-0.000000,0.775165,-0.000000 -2154,-0.632570,-0.000000,0.774503,-0.000000 -2155,-0.633381,-0.000000,0.773840,-0.000000 -2156,-0.634191,-0.000000,0.773177,-0.000000 -2157,-0.635000,-0.000000,0.772512,-0.000000 -2158,-0.635809,-0.000000,0.771847,-0.000000 -2159,-0.636617,-0.000000,0.771180,-0.000000 -2160,-0.637424,-0.000000,0.770513,-0.000000 -2161,-0.638231,-0.000000,0.769845,-0.000000 -2162,-0.639036,-0.000000,0.769177,-0.000000 -2163,-0.639841,-0.000000,0.768507,-0.000000 -2164,-0.640646,-0.000000,0.767836,-0.000000 -2165,-0.641450,-0.000000,0.767165,-0.000000 -2166,-0.642253,-0.000000,0.766493,-0.000000 -2167,-0.643055,-0.000000,0.765820,-0.000000 -2168,-0.643857,-0.000000,0.765146,-0.000000 -2169,-0.644657,-0.000000,0.764472,-0.000000 -2170,-0.645458,-0.000000,0.763796,-0.000000 -2171,-0.646257,-0.000000,0.763120,-0.000000 -2172,-0.647056,-0.000000,0.762443,-0.000000 -2173,-0.647854,-0.000000,0.761764,-0.000000 -2174,-0.648651,-0.000000,0.761086,-0.000000 -2175,-0.649448,-0.000000,0.760406,-0.000000 -2176,-0.650244,-0.000000,0.759725,-0.000000 -2177,-0.651039,-0.000000,0.759044,-0.000000 -2178,-0.651834,-0.000000,0.758362,-0.000000 -2179,-0.652628,-0.000000,0.757679,-0.000000 -2180,-0.653421,-0.000000,0.756995,-0.000000 -2181,-0.654213,-0.000000,0.756310,-0.000000 -2182,-0.655005,-0.000000,0.755625,-0.000000 -2183,-0.655796,-0.000000,0.754939,-0.000000 -2184,-0.656586,-0.000000,0.754251,-0.000000 -2185,-0.657375,-0.000000,0.753563,-0.000000 -2186,-0.658164,-0.000000,0.752875,-0.000000 -2187,-0.658952,-0.000000,0.752185,-0.000000 -2188,-0.659739,-0.000000,0.751494,-0.000000 -2189,-0.660526,-0.000000,0.750803,-0.000000 -2190,-0.661312,-0.000000,0.750111,-0.000000 -2191,-0.662097,-0.000000,0.749418,-0.000000 -2192,-0.662881,-0.000000,0.748724,-0.000000 -2193,-0.663665,-0.000000,0.748030,-0.000000 -2194,-0.664448,-0.000000,0.747334,-0.000000 -2195,-0.665230,-0.000000,0.746638,-0.000000 -2196,-0.666012,-0.000000,0.745941,-0.000000 -2197,-0.666793,-0.000000,0.745243,-0.000000 -2198,-0.667573,-0.000000,0.744545,-0.000000 -2199,-0.668352,-0.000000,0.743845,-0.000000 -2200,-0.669131,-0.000000,0.743145,-0.000000 -2201,-0.669908,-0.000000,0.742444,-0.000000 -2202,-0.670686,-0.000000,0.741742,-0.000000 -2203,-0.671462,-0.000000,0.741039,-0.000000 -2204,-0.672238,-0.000000,0.740335,-0.000000 -2205,-0.673013,-0.000000,0.739631,-0.000000 -2206,-0.673787,-0.000000,0.738926,-0.000000 -2207,-0.674560,-0.000000,0.738220,-0.000000 -2208,-0.675333,-0.000000,0.737513,-0.000000 -2209,-0.676105,-0.000000,0.736806,-0.000000 -2210,-0.676876,-0.000000,0.736097,-0.000000 -2211,-0.677646,-0.000000,0.735388,-0.000000 -2212,-0.678416,-0.000000,0.734678,-0.000000 -2213,-0.679185,-0.000000,0.733967,-0.000000 -2214,-0.679953,-0.000000,0.733255,-0.000000 -2215,-0.680721,-0.000000,0.732543,-0.000000 -2216,-0.681488,-0.000000,0.731830,-0.000000 -2217,-0.682254,-0.000000,0.731116,-0.000000 -2218,-0.683019,-0.000000,0.730401,-0.000000 -2219,-0.683783,-0.000000,0.729685,-0.000000 -2220,-0.684547,-0.000000,0.728969,-0.000000 -2221,-0.685310,-0.000000,0.728251,-0.000000 -2222,-0.686072,-0.000000,0.727533,-0.000000 -2223,-0.686834,-0.000000,0.726814,-0.000000 -2224,-0.687595,-0.000000,0.726095,-0.000000 -2225,-0.688355,-0.000000,0.725374,-0.000000 -2226,-0.689114,-0.000000,0.724653,-0.000000 -2227,-0.689872,-0.000000,0.723931,-0.000000 -2228,-0.690630,-0.000000,0.723208,-0.000000 -2229,-0.691387,-0.000000,0.722485,-0.000000 -2230,-0.692143,-0.000000,0.721760,-0.000000 -2231,-0.692899,-0.000000,0.721035,-0.000000 -2232,-0.693653,-0.000000,0.720309,-0.000000 -2233,-0.694407,-0.000000,0.719582,-0.000000 -2234,-0.695160,-0.000000,0.718855,-0.000000 -2235,-0.695913,-0.000000,0.718126,-0.000000 -2236,-0.696664,-0.000000,0.717397,-0.000000 -2237,-0.697415,-0.000000,0.716667,-0.000000 -2238,-0.698165,-0.000000,0.715936,-0.000000 -2239,-0.698915,-0.000000,0.715205,-0.000000 -2240,-0.699663,-0.000000,0.714473,-0.000000 -2241,-0.700411,-0.000000,0.713740,-0.000000 -2242,-0.701158,-0.000000,0.713006,-0.000000 -2243,-0.701904,-0.000000,0.712271,-0.000000 -2244,-0.702650,-0.000000,0.711536,-0.000000 -2245,-0.703395,-0.000000,0.710799,-0.000000 -2246,-0.704139,-0.000000,0.710062,-0.000000 -2247,-0.704882,-0.000000,0.709325,-0.000000 -2248,-0.705624,-0.000000,0.708586,-0.000000 -2249,-0.706366,-0.000000,0.707847,-0.000000 -2250,-0.707107,-0.000000,0.707107,-0.000000 -2251,-0.707847,-0.000000,0.706366,-0.000000 -2252,-0.708586,-0.000000,0.705624,-0.000000 -2253,-0.709325,-0.000000,0.704882,-0.000000 -2254,-0.710062,-0.000000,0.704139,-0.000000 -2255,-0.710799,-0.000000,0.703395,-0.000000 -2256,-0.711536,-0.000000,0.702650,-0.000000 -2257,-0.712271,-0.000000,0.701904,-0.000000 -2258,-0.713006,-0.000000,0.701158,-0.000000 -2259,-0.713740,-0.000000,0.700411,-0.000000 -2260,-0.714473,-0.000000,0.699663,-0.000000 -2261,-0.715205,-0.000000,0.698915,-0.000000 -2262,-0.715936,-0.000000,0.698165,-0.000000 -2263,-0.716667,-0.000000,0.697415,-0.000000 -2264,-0.717397,-0.000000,0.696664,-0.000000 -2265,-0.718126,-0.000000,0.695913,-0.000000 -2266,-0.718855,-0.000000,0.695160,-0.000000 -2267,-0.719582,-0.000000,0.694407,-0.000000 -2268,-0.720309,-0.000000,0.693653,-0.000000 -2269,-0.721035,-0.000000,0.692899,-0.000000 -2270,-0.721760,-0.000000,0.692143,-0.000000 -2271,-0.722485,-0.000000,0.691387,-0.000000 -2272,-0.723208,-0.000000,0.690630,-0.000000 -2273,-0.723931,-0.000000,0.689872,-0.000000 -2274,-0.724653,-0.000000,0.689114,-0.000000 -2275,-0.725374,-0.000000,0.688355,-0.000000 -2276,-0.726095,-0.000000,0.687595,-0.000000 -2277,-0.726814,-0.000000,0.686834,-0.000000 -2278,-0.727533,-0.000000,0.686072,-0.000000 -2279,-0.728251,-0.000000,0.685310,-0.000000 -2280,-0.728969,-0.000000,0.684547,-0.000000 -2281,-0.729685,-0.000000,0.683783,-0.000000 -2282,-0.730401,-0.000000,0.683019,-0.000000 -2283,-0.731116,-0.000000,0.682254,-0.000000 -2284,-0.731830,-0.000000,0.681488,-0.000000 -2285,-0.732543,-0.000000,0.680721,-0.000000 -2286,-0.733255,-0.000000,0.679953,-0.000000 -2287,-0.733967,-0.000000,0.679185,-0.000000 -2288,-0.734678,-0.000000,0.678416,-0.000000 -2289,-0.735388,-0.000000,0.677646,-0.000000 -2290,-0.736097,-0.000000,0.676876,-0.000000 -2291,-0.736806,-0.000000,0.676105,-0.000000 -2292,-0.737513,-0.000000,0.675333,-0.000000 -2293,-0.738220,-0.000000,0.674560,-0.000000 -2294,-0.738926,-0.000000,0.673787,-0.000000 -2295,-0.739631,-0.000000,0.673013,-0.000000 -2296,-0.740335,-0.000000,0.672238,-0.000000 -2297,-0.741039,-0.000000,0.671462,-0.000000 -2298,-0.741742,-0.000000,0.670686,-0.000000 -2299,-0.742444,-0.000000,0.669908,-0.000000 -2300,-0.743145,-0.000000,0.669131,-0.000000 -2301,-0.743845,-0.000000,0.668352,-0.000000 -2302,-0.744545,-0.000000,0.667573,-0.000000 -2303,-0.745243,-0.000000,0.666793,-0.000000 -2304,-0.745941,-0.000000,0.666012,-0.000000 -2305,-0.746638,-0.000000,0.665230,-0.000000 -2306,-0.747334,-0.000000,0.664448,-0.000000 -2307,-0.748030,-0.000000,0.663665,-0.000000 -2308,-0.748724,-0.000000,0.662881,-0.000000 -2309,-0.749418,-0.000000,0.662097,-0.000000 -2310,-0.750111,-0.000000,0.661312,-0.000000 -2311,-0.750803,-0.000000,0.660526,-0.000000 -2312,-0.751494,-0.000000,0.659739,-0.000000 -2313,-0.752185,-0.000000,0.658952,-0.000000 -2314,-0.752875,-0.000000,0.658164,-0.000000 -2315,-0.753563,-0.000000,0.657375,-0.000000 -2316,-0.754251,-0.000000,0.656586,-0.000000 -2317,-0.754939,-0.000000,0.655796,-0.000000 -2318,-0.755625,-0.000000,0.655005,-0.000000 -2319,-0.756310,-0.000000,0.654213,-0.000000 -2320,-0.756995,-0.000000,0.653421,-0.000000 -2321,-0.757679,-0.000000,0.652628,-0.000000 -2322,-0.758362,-0.000000,0.651834,-0.000000 -2323,-0.759044,-0.000000,0.651039,-0.000000 -2324,-0.759725,-0.000000,0.650244,-0.000000 -2325,-0.760406,-0.000000,0.649448,-0.000000 -2326,-0.761086,-0.000000,0.648651,-0.000000 -2327,-0.761764,-0.000000,0.647854,-0.000000 -2328,-0.762443,-0.000000,0.647056,-0.000000 -2329,-0.763120,-0.000000,0.646257,-0.000000 -2330,-0.763796,-0.000000,0.645458,-0.000000 -2331,-0.764472,-0.000000,0.644657,-0.000000 -2332,-0.765146,-0.000000,0.643857,-0.000000 -2333,-0.765820,-0.000000,0.643055,-0.000000 -2334,-0.766493,-0.000000,0.642253,-0.000000 -2335,-0.767165,-0.000000,0.641450,-0.000000 -2336,-0.767836,-0.000000,0.640646,-0.000000 -2337,-0.768507,-0.000000,0.639841,-0.000000 -2338,-0.769177,-0.000000,0.639036,-0.000000 -2339,-0.769845,-0.000000,0.638231,-0.000000 -2340,-0.770513,-0.000000,0.637424,-0.000000 -2341,-0.771180,-0.000000,0.636617,-0.000000 -2342,-0.771847,-0.000000,0.635809,-0.000000 -2343,-0.772512,-0.000000,0.635000,-0.000000 -2344,-0.773177,-0.000000,0.634191,-0.000000 -2345,-0.773840,-0.000000,0.633381,-0.000000 -2346,-0.774503,-0.000000,0.632570,-0.000000 -2347,-0.775165,-0.000000,0.631759,-0.000000 -2348,-0.775826,-0.000000,0.630947,-0.000000 -2349,-0.776487,-0.000000,0.630134,-0.000000 -2350,-0.777146,-0.000000,0.629320,-0.000000 -2351,-0.777805,-0.000000,0.628506,-0.000000 -2352,-0.778462,-0.000000,0.627691,-0.000000 -2353,-0.779119,-0.000000,0.626876,-0.000000 -2354,-0.779775,-0.000000,0.626060,-0.000000 -2355,-0.780430,-0.000000,0.625243,-0.000000 -2356,-0.781085,-0.000000,0.624425,-0.000000 -2357,-0.781738,-0.000000,0.623607,-0.000000 -2358,-0.782391,-0.000000,0.622788,-0.000000 -2359,-0.783043,-0.000000,0.621968,-0.000000 -2360,-0.783693,-0.000000,0.621148,-0.000000 -2361,-0.784343,-0.000000,0.620327,-0.000000 -2362,-0.784993,-0.000000,0.619505,-0.000000 -2363,-0.785641,-0.000000,0.618683,-0.000000 -2364,-0.786288,-0.000000,0.617860,-0.000000 -2365,-0.786935,-0.000000,0.617036,-0.000000 -2366,-0.787581,-0.000000,0.616211,-0.000000 -2367,-0.788226,-0.000000,0.615386,-0.000000 -2368,-0.788870,-0.000000,0.614561,-0.000000 -2369,-0.789513,-0.000000,0.613734,-0.000000 -2370,-0.790155,-0.000000,0.612907,-0.000000 -2371,-0.790796,-0.000000,0.612079,-0.000000 -2372,-0.791437,-0.000000,0.611251,-0.000000 -2373,-0.792077,-0.000000,0.610422,-0.000000 -2374,-0.792715,-0.000000,0.609592,-0.000000 -2375,-0.793353,-0.000000,0.608761,-0.000000 -2376,-0.793990,-0.000000,0.607930,-0.000000 -2377,-0.794627,-0.000000,0.607098,-0.000000 -2378,-0.795262,-0.000000,0.606266,-0.000000 -2379,-0.795896,-0.000000,0.605433,-0.000000 -2380,-0.796530,-0.000000,0.604599,-0.000000 -2381,-0.797163,-0.000000,0.603765,-0.000000 -2382,-0.797794,-0.000000,0.602930,-0.000000 -2383,-0.798425,-0.000000,0.602094,-0.000000 -2384,-0.799055,-0.000000,0.601257,-0.000000 -2385,-0.799685,-0.000000,0.600420,-0.000000 -2386,-0.800313,-0.000000,0.599582,-0.000000 -2387,-0.800940,-0.000000,0.598744,-0.000000 -2388,-0.801567,-0.000000,0.597905,-0.000000 -2389,-0.802193,-0.000000,0.597065,-0.000000 -2390,-0.802817,-0.000000,0.596225,-0.000000 -2391,-0.803441,-0.000000,0.595384,-0.000000 -2392,-0.804064,-0.000000,0.594542,-0.000000 -2393,-0.804687,-0.000000,0.593700,-0.000000 -2394,-0.805308,-0.000000,0.592857,-0.000000 -2395,-0.805928,-0.000000,0.592013,-0.000000 -2396,-0.806548,-0.000000,0.591169,-0.000000 -2397,-0.807166,-0.000000,0.590324,-0.000000 -2398,-0.807784,-0.000000,0.589478,-0.000000 -2399,-0.808401,-0.000000,0.588632,-0.000000 -2400,-0.809017,-0.000000,0.587785,-0.000000 -2401,-0.809632,-0.000000,0.586938,-0.000000 -2402,-0.810246,-0.000000,0.586090,-0.000000 -2403,-0.810860,-0.000000,0.585241,-0.000000 -2404,-0.811472,-0.000000,0.584391,-0.000000 -2405,-0.812084,-0.000000,0.583541,-0.000000 -2406,-0.812694,-0.000000,0.582690,-0.000000 -2407,-0.813304,-0.000000,0.581839,-0.000000 -2408,-0.813913,-0.000000,0.580987,-0.000000 -2409,-0.814521,-0.000000,0.580134,-0.000000 -2410,-0.815128,-0.000000,0.579281,-0.000000 -2411,-0.815734,-0.000000,0.578427,-0.000000 -2412,-0.816339,-0.000000,0.577573,-0.000000 -2413,-0.816944,-0.000000,0.576718,-0.000000 -2414,-0.817547,-0.000000,0.575862,-0.000000 -2415,-0.818150,-0.000000,0.575005,-0.000000 -2416,-0.818751,-0.000000,0.574148,-0.000000 -2417,-0.819352,-0.000000,0.573290,-0.000000 -2418,-0.819952,-0.000000,0.572432,-0.000000 -2419,-0.820551,-0.000000,0.571573,-0.000000 -2420,-0.821149,-0.000000,0.570714,-0.000000 -2421,-0.821746,-0.000000,0.569853,-0.000000 -2422,-0.822343,-0.000000,0.568993,-0.000000 -2423,-0.822938,-0.000000,0.568131,-0.000000 -2424,-0.823533,-0.000000,0.567269,-0.000000 -2425,-0.824126,-0.000000,0.566406,-0.000000 -2426,-0.824719,-0.000000,0.565543,-0.000000 -2427,-0.825311,-0.000000,0.564679,-0.000000 -2428,-0.825902,-0.000000,0.563814,-0.000000 -2429,-0.826492,-0.000000,0.562949,-0.000000 -2430,-0.827081,-0.000000,0.562083,-0.000000 -2431,-0.827669,-0.000000,0.561217,-0.000000 -2432,-0.828256,-0.000000,0.560350,-0.000000 -2433,-0.828842,-0.000000,0.559482,-0.000000 -2434,-0.829428,-0.000000,0.558614,-0.000000 -2435,-0.830012,-0.000000,0.557745,-0.000000 -2436,-0.830596,-0.000000,0.556876,-0.000000 -2437,-0.831179,-0.000000,0.556006,-0.000000 -2438,-0.831760,-0.000000,0.555135,-0.000000 -2439,-0.832341,-0.000000,0.554263,-0.000000 -2440,-0.832921,-0.000000,0.553392,-0.000000 -2441,-0.833500,-0.000000,0.552519,-0.000000 -2442,-0.834078,-0.000000,0.551646,-0.000000 -2443,-0.834656,-0.000000,0.550772,-0.000000 -2444,-0.835232,-0.000000,0.549898,-0.000000 -2445,-0.835807,-0.000000,0.549023,-0.000000 -2446,-0.836382,-0.000000,0.548147,-0.000000 -2447,-0.836955,-0.000000,0.547271,-0.000000 -2448,-0.837528,-0.000000,0.546394,-0.000000 -2449,-0.838100,-0.000000,0.545517,-0.000000 -2450,-0.838671,-0.000000,0.544639,-0.000000 -2451,-0.839240,-0.000000,0.543760,-0.000000 -2452,-0.839809,-0.000000,0.542881,-0.000000 -2453,-0.840377,-0.000000,0.542002,-0.000000 -2454,-0.840945,-0.000000,0.541121,-0.000000 -2455,-0.841511,-0.000000,0.540240,-0.000000 -2456,-0.842076,-0.000000,0.539359,-0.000000 -2457,-0.842640,-0.000000,0.538477,-0.000000 -2458,-0.843204,-0.000000,0.537594,-0.000000 -2459,-0.843766,-0.000000,0.536711,-0.000000 -2460,-0.844328,-0.000000,0.535827,-0.000000 -2461,-0.844889,-0.000000,0.534942,-0.000000 -2462,-0.845448,-0.000000,0.534057,-0.000000 -2463,-0.846007,-0.000000,0.533172,-0.000000 -2464,-0.846565,-0.000000,0.532285,-0.000000 -2465,-0.847122,-0.000000,0.531399,-0.000000 -2466,-0.847678,-0.000000,0.530511,-0.000000 -2467,-0.848233,-0.000000,0.529623,-0.000000 -2468,-0.848787,-0.000000,0.528735,-0.000000 -2469,-0.849340,-0.000000,0.527846,-0.000000 -2470,-0.849893,-0.000000,0.526956,-0.000000 -2471,-0.850444,-0.000000,0.526066,-0.000000 -2472,-0.850994,-0.000000,0.525175,-0.000000 -2473,-0.851544,-0.000000,0.524283,-0.000000 -2474,-0.852093,-0.000000,0.523391,-0.000000 -2475,-0.852640,-0.000000,0.522499,-0.000000 -2476,-0.853187,-0.000000,0.521605,-0.000000 -2477,-0.853733,-0.000000,0.520712,-0.000000 -2478,-0.854277,-0.000000,0.519817,-0.000000 -2479,-0.854821,-0.000000,0.518922,-0.000000 -2480,-0.855364,-0.000000,0.518027,-0.000000 -2481,-0.855906,-0.000000,0.517131,-0.000000 -2482,-0.856447,-0.000000,0.516234,-0.000000 -2483,-0.856987,-0.000000,0.515337,-0.000000 -2484,-0.857527,-0.000000,0.514440,-0.000000 -2485,-0.858065,-0.000000,0.513541,-0.000000 -2486,-0.858602,-0.000000,0.512642,-0.000000 -2487,-0.859139,-0.000000,0.511743,-0.000000 -2488,-0.859674,-0.000000,0.510843,-0.000000 -2489,-0.860208,-0.000000,0.509943,-0.000000 -2490,-0.860742,-0.000000,0.509041,-0.000000 -2491,-0.861275,-0.000000,0.508140,-0.000000 -2492,-0.861806,-0.000000,0.507238,-0.000000 -2493,-0.862337,-0.000000,0.506335,-0.000000 -2494,-0.862867,-0.000000,0.505431,-0.000000 -2495,-0.863396,-0.000000,0.504528,-0.000000 -2496,-0.863923,-0.000000,0.503623,-0.000000 -2497,-0.864450,-0.000000,0.502718,-0.000000 -2498,-0.864976,-0.000000,0.501813,-0.000000 -2499,-0.865501,-0.000000,0.500907,-0.000000 -2500,-0.866025,-0.000000,0.500000,-0.000000 -2501,-0.866549,-0.000000,0.499093,-0.000000 -2502,-0.867071,-0.000000,0.498185,-0.000000 -2503,-0.867592,-0.000000,0.497277,-0.000000 -2504,-0.868112,-0.000000,0.496368,-0.000000 -2505,-0.868632,-0.000000,0.495459,-0.000000 -2506,-0.869150,-0.000000,0.494549,-0.000000 -2507,-0.869667,-0.000000,0.493638,-0.000000 -2508,-0.870184,-0.000000,0.492727,-0.000000 -2509,-0.870699,-0.000000,0.491816,-0.000000 -2510,-0.871214,-0.000000,0.490904,-0.000000 -2511,-0.871727,-0.000000,0.489991,-0.000000 -2512,-0.872240,-0.000000,0.489078,-0.000000 -2513,-0.872752,-0.000000,0.488164,-0.000000 -2514,-0.873262,-0.000000,0.487250,-0.000000 -2515,-0.873772,-0.000000,0.486335,-0.000000 -2516,-0.874281,-0.000000,0.485420,-0.000000 -2517,-0.874789,-0.000000,0.484504,-0.000000 -2518,-0.875296,-0.000000,0.483588,-0.000000 -2519,-0.875802,-0.000000,0.482671,-0.000000 -2520,-0.876307,-0.000000,0.481754,-0.000000 -2521,-0.876811,-0.000000,0.480836,-0.000000 -2522,-0.877314,-0.000000,0.479917,-0.000000 -2523,-0.877816,-0.000000,0.478998,-0.000000 -2524,-0.878317,-0.000000,0.478079,-0.000000 -2525,-0.878817,-0.000000,0.477159,-0.000000 -2526,-0.879316,-0.000000,0.476238,-0.000000 -2527,-0.879815,-0.000000,0.475317,-0.000000 -2528,-0.880312,-0.000000,0.474396,-0.000000 -2529,-0.880808,-0.000000,0.473473,-0.000000 -2530,-0.881303,-0.000000,0.472551,-0.000000 -2531,-0.881798,-0.000000,0.471628,-0.000000 -2532,-0.882291,-0.000000,0.470704,-0.000000 -2533,-0.882784,-0.000000,0.469780,-0.000000 -2534,-0.883275,-0.000000,0.468855,-0.000000 -2535,-0.883766,-0.000000,0.467930,-0.000000 -2536,-0.884255,-0.000000,0.467004,-0.000000 -2537,-0.884744,-0.000000,0.466078,-0.000000 -2538,-0.885231,-0.000000,0.465151,-0.000000 -2539,-0.885718,-0.000000,0.464224,-0.000000 -2540,-0.886204,-0.000000,0.463296,-0.000000 -2541,-0.886688,-0.000000,0.462368,-0.000000 -2542,-0.887172,-0.000000,0.461439,-0.000000 -2543,-0.887655,-0.000000,0.460510,-0.000000 -2544,-0.888136,-0.000000,0.459580,-0.000000 -2545,-0.888617,-0.000000,0.458650,-0.000000 -2546,-0.889097,-0.000000,0.457719,-0.000000 -2547,-0.889576,-0.000000,0.456787,-0.000000 -2548,-0.890054,-0.000000,0.455856,-0.000000 -2549,-0.890531,-0.000000,0.454923,-0.000000 -2550,-0.891007,-0.000000,0.453990,-0.000000 -2551,-0.891481,-0.000000,0.453057,-0.000000 -2552,-0.891955,-0.000000,0.452123,-0.000000 -2553,-0.892428,-0.000000,0.451189,-0.000000 -2554,-0.892900,-0.000000,0.450254,-0.000000 -2555,-0.893371,-0.000000,0.449319,-0.000000 -2556,-0.893841,-0.000000,0.448383,-0.000000 -2557,-0.894310,-0.000000,0.447447,-0.000000 -2558,-0.894779,-0.000000,0.446510,-0.000000 -2559,-0.895246,-0.000000,0.445573,-0.000000 -2560,-0.895712,-0.000000,0.444635,-0.000000 -2561,-0.896177,-0.000000,0.443697,-0.000000 -2562,-0.896641,-0.000000,0.442758,-0.000000 -2563,-0.897104,-0.000000,0.441819,-0.000000 -2564,-0.897566,-0.000000,0.440879,-0.000000 -2565,-0.898028,-0.000000,0.439939,-0.000000 -2566,-0.898488,-0.000000,0.438999,-0.000000 -2567,-0.898947,-0.000000,0.438057,-0.000000 -2568,-0.899405,-0.000000,0.437116,-0.000000 -2569,-0.899863,-0.000000,0.436174,-0.000000 -2570,-0.900319,-0.000000,0.435231,-0.000000 -2571,-0.900774,-0.000000,0.434288,-0.000000 -2572,-0.901228,-0.000000,0.433345,-0.000000 -2573,-0.901682,-0.000000,0.432401,-0.000000 -2574,-0.902134,-0.000000,0.431456,-0.000000 -2575,-0.902585,-0.000000,0.430511,-0.000000 -2576,-0.903036,-0.000000,0.429566,-0.000000 -2577,-0.903485,-0.000000,0.428620,-0.000000 -2578,-0.903933,-0.000000,0.427673,-0.000000 -2579,-0.904381,-0.000000,0.426727,-0.000000 -2580,-0.904827,-0.000000,0.425779,-0.000000 -2581,-0.905272,-0.000000,0.424832,-0.000000 -2582,-0.905717,-0.000000,0.423883,-0.000000 -2583,-0.906160,-0.000000,0.422935,-0.000000 -2584,-0.906603,-0.000000,0.421985,-0.000000 -2585,-0.907044,-0.000000,0.421036,-0.000000 -2586,-0.907484,-0.000000,0.420086,-0.000000 -2587,-0.907924,-0.000000,0.419135,-0.000000 -2588,-0.908362,-0.000000,0.418184,-0.000000 -2589,-0.908800,-0.000000,0.417233,-0.000000 -2590,-0.909236,-0.000000,0.416281,-0.000000 -2591,-0.909672,-0.000000,0.415328,-0.000000 -2592,-0.910106,-0.000000,0.414376,-0.000000 -2593,-0.910539,-0.000000,0.413422,-0.000000 -2594,-0.910972,-0.000000,0.412469,-0.000000 -2595,-0.911403,-0.000000,0.411514,-0.000000 -2596,-0.911834,-0.000000,0.410560,-0.000000 -2597,-0.912263,-0.000000,0.409605,-0.000000 -2598,-0.912692,-0.000000,0.408649,-0.000000 -2599,-0.913119,-0.000000,0.407693,-0.000000 -2600,-0.913545,-0.000000,0.406737,-0.000000 -2601,-0.913971,-0.000000,0.405780,-0.000000 -2602,-0.914395,-0.000000,0.404822,-0.000000 -2603,-0.914819,-0.000000,0.403865,-0.000000 -2604,-0.915241,-0.000000,0.402906,-0.000000 -2605,-0.915663,-0.000000,0.401948,-0.000000 -2606,-0.916083,-0.000000,0.400989,-0.000000 -2607,-0.916502,-0.000000,0.400029,-0.000000 -2608,-0.916921,-0.000000,0.399069,-0.000000 -2609,-0.917338,-0.000000,0.398109,-0.000000 -2610,-0.917755,-0.000000,0.397148,-0.000000 -2611,-0.918170,-0.000000,0.396187,-0.000000 -2612,-0.918584,-0.000000,0.395225,-0.000000 -2613,-0.918998,-0.000000,0.394263,-0.000000 -2614,-0.919410,-0.000000,0.393300,-0.000000 -2615,-0.919821,-0.000000,0.392337,-0.000000 -2616,-0.920232,-0.000000,0.391374,-0.000000 -2617,-0.920641,-0.000000,0.390410,-0.000000 -2618,-0.921050,-0.000000,0.389445,-0.000000 -2619,-0.921457,-0.000000,0.388481,-0.000000 -2620,-0.921863,-0.000000,0.387516,-0.000000 -2621,-0.922268,-0.000000,0.386550,-0.000000 -2622,-0.922673,-0.000000,0.385584,-0.000000 -2623,-0.923076,-0.000000,0.384618,-0.000000 -2624,-0.923478,-0.000000,0.383651,-0.000000 -2625,-0.923880,-0.000000,0.382683,-0.000000 -2626,-0.924280,-0.000000,0.381716,-0.000000 -2627,-0.924679,-0.000000,0.380748,-0.000000 -2628,-0.925077,-0.000000,0.379779,-0.000000 -2629,-0.925474,-0.000000,0.378810,-0.000000 -2630,-0.925871,-0.000000,0.377841,-0.000000 -2631,-0.926266,-0.000000,0.376871,-0.000000 -2632,-0.926660,-0.000000,0.375901,-0.000000 -2633,-0.927053,-0.000000,0.374930,-0.000000 -2634,-0.927445,-0.000000,0.373959,-0.000000 -2635,-0.927836,-0.000000,0.372988,-0.000000 -2636,-0.928226,-0.000000,0.372016,-0.000000 -2637,-0.928615,-0.000000,0.371044,-0.000000 -2638,-0.929003,-0.000000,0.370071,-0.000000 -2639,-0.929390,-0.000000,0.369098,-0.000000 -2640,-0.929776,-0.000000,0.368125,-0.000000 -2641,-0.930161,-0.000000,0.367151,-0.000000 -2642,-0.930545,-0.000000,0.366176,-0.000000 -2643,-0.930928,-0.000000,0.365202,-0.000000 -2644,-0.931310,-0.000000,0.364227,-0.000000 -2645,-0.931691,-0.000000,0.363251,-0.000000 -2646,-0.932071,-0.000000,0.362275,-0.000000 -2647,-0.932450,-0.000000,0.361299,-0.000000 -2648,-0.932828,-0.000000,0.360322,-0.000000 -2649,-0.933205,-0.000000,0.359345,-0.000000 -2650,-0.933580,-0.000000,0.358368,-0.000000 -2651,-0.933955,-0.000000,0.357390,-0.000000 -2652,-0.934329,-0.000000,0.356412,-0.000000 -2653,-0.934702,-0.000000,0.355433,-0.000000 -2654,-0.935073,-0.000000,0.354454,-0.000000 -2655,-0.935444,-0.000000,0.353475,-0.000000 -2656,-0.935814,-0.000000,0.352495,-0.000000 -2657,-0.936182,-0.000000,0.351515,-0.000000 -2658,-0.936550,-0.000000,0.350534,-0.000000 -2659,-0.936916,-0.000000,0.349553,-0.000000 -2660,-0.937282,-0.000000,0.348572,-0.000000 -2661,-0.937646,-0.000000,0.347590,-0.000000 -2662,-0.938010,-0.000000,0.346608,-0.000000 -2663,-0.938372,-0.000000,0.345626,-0.000000 -2664,-0.938734,-0.000000,0.344643,-0.000000 -2665,-0.939094,-0.000000,0.343660,-0.000000 -2666,-0.939454,-0.000000,0.342676,-0.000000 -2667,-0.939812,-0.000000,0.341692,-0.000000 -2668,-0.940169,-0.000000,0.340708,-0.000000 -2669,-0.940526,-0.000000,0.339723,-0.000000 -2670,-0.940881,-0.000000,0.338738,-0.000000 -2671,-0.941235,-0.000000,0.337752,-0.000000 -2672,-0.941588,-0.000000,0.336767,-0.000000 -2673,-0.941940,-0.000000,0.335780,-0.000000 -2674,-0.942291,-0.000000,0.334794,-0.000000 -2675,-0.942641,-0.000000,0.333807,-0.000000 -2676,-0.942991,-0.000000,0.332820,-0.000000 -2677,-0.943339,-0.000000,0.331832,-0.000000 -2678,-0.943686,-0.000000,0.330844,-0.000000 -2679,-0.944031,-0.000000,0.329855,-0.000000 -2680,-0.944376,-0.000000,0.328867,-0.000000 -2681,-0.944720,-0.000000,0.327878,-0.000000 -2682,-0.945063,-0.000000,0.326888,-0.000000 -2683,-0.945405,-0.000000,0.325898,-0.000000 -2684,-0.945746,-0.000000,0.324908,-0.000000 -2685,-0.946085,-0.000000,0.323917,-0.000000 -2686,-0.946424,-0.000000,0.322927,-0.000000 -2687,-0.946762,-0.000000,0.321935,-0.000000 -2688,-0.947098,-0.000000,0.320944,-0.000000 -2689,-0.947434,-0.000000,0.319952,-0.000000 -2690,-0.947768,-0.000000,0.318959,-0.000000 -2691,-0.948102,-0.000000,0.317967,-0.000000 -2692,-0.948434,-0.000000,0.316974,-0.000000 -2693,-0.948766,-0.000000,0.315980,-0.000000 -2694,-0.949096,-0.000000,0.314987,-0.000000 -2695,-0.949425,-0.000000,0.313992,-0.000000 -2696,-0.949754,-0.000000,0.312998,-0.000000 -2697,-0.950081,-0.000000,0.312003,-0.000000 -2698,-0.950407,-0.000000,0.311008,-0.000000 -2699,-0.950732,-0.000000,0.310013,-0.000000 -2700,-0.951057,-0.000000,0.309017,-0.000000 -2701,-0.951380,-0.000000,0.308021,-0.000000 -2702,-0.951702,-0.000000,0.307024,-0.000000 -2703,-0.952023,-0.000000,0.306028,-0.000000 -2704,-0.952343,-0.000000,0.305031,-0.000000 -2705,-0.952661,-0.000000,0.304033,-0.000000 -2706,-0.952979,-0.000000,0.303035,-0.000000 -2707,-0.953296,-0.000000,0.302037,-0.000000 -2708,-0.953612,-0.000000,0.301039,-0.000000 -2709,-0.953927,-0.000000,0.300040,-0.000000 -2710,-0.954240,-0.000000,0.299041,-0.000000 -2711,-0.954553,-0.000000,0.298041,-0.000000 -2712,-0.954865,-0.000000,0.297042,-0.000000 -2713,-0.955175,-0.000000,0.296041,-0.000000 -2714,-0.955485,-0.000000,0.295041,-0.000000 -2715,-0.955793,-0.000000,0.294040,-0.000000 -2716,-0.956100,-0.000000,0.293039,-0.000000 -2717,-0.956407,-0.000000,0.292038,-0.000000 -2718,-0.956712,-0.000000,0.291036,-0.000000 -2719,-0.957016,-0.000000,0.290034,-0.000000 -2720,-0.957319,-0.000000,0.289032,-0.000000 -2721,-0.957622,-0.000000,0.288029,-0.000000 -2722,-0.957923,-0.000000,0.287026,-0.000000 -2723,-0.958223,-0.000000,0.286023,-0.000000 -2724,-0.958522,-0.000000,0.285019,-0.000000 -2725,-0.958820,-0.000000,0.284015,-0.000000 -2726,-0.959117,-0.000000,0.283011,-0.000000 -2727,-0.959412,-0.000000,0.282007,-0.000000 -2728,-0.959707,-0.000000,0.281002,-0.000000 -2729,-0.960001,-0.000000,0.279997,-0.000000 -2730,-0.960294,-0.000000,0.278991,-0.000000 -2731,-0.960585,-0.000000,0.277985,-0.000000 -2732,-0.960876,-0.000000,0.276979,-0.000000 -2733,-0.961165,-0.000000,0.275973,-0.000000 -2734,-0.961454,-0.000000,0.274966,-0.000000 -2735,-0.961741,-0.000000,0.273959,-0.000000 -2736,-0.962028,-0.000000,0.272952,-0.000000 -2737,-0.962313,-0.000000,0.271944,-0.000000 -2738,-0.962597,-0.000000,0.270936,-0.000000 -2739,-0.962880,-0.000000,0.269928,-0.000000 -2740,-0.963163,-0.000000,0.268920,-0.000000 -2741,-0.963444,-0.000000,0.267911,-0.000000 -2742,-0.963724,-0.000000,0.266902,-0.000000 -2743,-0.964003,-0.000000,0.265893,-0.000000 -2744,-0.964281,-0.000000,0.264883,-0.000000 -2745,-0.964557,-0.000000,0.263873,-0.000000 -2746,-0.964833,-0.000000,0.262863,-0.000000 -2747,-0.965108,-0.000000,0.261852,-0.000000 -2748,-0.965382,-0.000000,0.260842,-0.000000 -2749,-0.965654,-0.000000,0.259830,-0.000000 -2750,-0.965926,-0.000000,0.258819,-0.000000 -2751,-0.966196,-0.000000,0.257807,-0.000000 -2752,-0.966466,-0.000000,0.256795,-0.000000 -2753,-0.966734,-0.000000,0.255783,-0.000000 -2754,-0.967001,-0.000000,0.254771,-0.000000 -2755,-0.967268,-0.000000,0.253758,-0.000000 -2756,-0.967533,-0.000000,0.252745,-0.000000 -2757,-0.967797,-0.000000,0.251732,-0.000000 -2758,-0.968060,-0.000000,0.250718,-0.000000 -2759,-0.968322,-0.000000,0.249704,-0.000000 -2760,-0.968583,-0.000000,0.248690,-0.000000 -2761,-0.968843,-0.000000,0.247675,-0.000000 -2762,-0.969102,-0.000000,0.246661,-0.000000 -2763,-0.969360,-0.000000,0.245646,-0.000000 -2764,-0.969616,-0.000000,0.244631,-0.000000 -2765,-0.969872,-0.000000,0.243615,-0.000000 -2766,-0.970127,-0.000000,0.242599,-0.000000 -2767,-0.970380,-0.000000,0.241583,-0.000000 -2768,-0.970633,-0.000000,0.240567,-0.000000 -2769,-0.970884,-0.000000,0.239550,-0.000000 -2770,-0.971134,-0.000000,0.238533,-0.000000 -2771,-0.971384,-0.000000,0.237516,-0.000000 -2772,-0.971632,-0.000000,0.236499,-0.000000 -2773,-0.971879,-0.000000,0.235481,-0.000000 -2774,-0.972125,-0.000000,0.234463,-0.000000 -2775,-0.972370,-0.000000,0.233445,-0.000000 -2776,-0.972614,-0.000000,0.232427,-0.000000 -2777,-0.972857,-0.000000,0.231408,-0.000000 -2778,-0.973099,-0.000000,0.230389,-0.000000 -2779,-0.973339,-0.000000,0.229370,-0.000000 -2780,-0.973579,-0.000000,0.228351,-0.000000 -2781,-0.973817,-0.000000,0.227331,-0.000000 -2782,-0.974055,-0.000000,0.226311,-0.000000 -2783,-0.974291,-0.000000,0.225291,-0.000000 -2784,-0.974527,-0.000000,0.224271,-0.000000 -2785,-0.974761,-0.000000,0.223250,-0.000000 -2786,-0.974994,-0.000000,0.222229,-0.000000 -2787,-0.975227,-0.000000,0.221208,-0.000000 -2788,-0.975458,-0.000000,0.220187,-0.000000 -2789,-0.975688,-0.000000,0.219165,-0.000000 -2790,-0.975917,-0.000000,0.218143,-0.000000 -2791,-0.976145,-0.000000,0.217121,-0.000000 -2792,-0.976371,-0.000000,0.216099,-0.000000 -2793,-0.976597,-0.000000,0.215076,-0.000000 -2794,-0.976822,-0.000000,0.214053,-0.000000 -2795,-0.977046,-0.000000,0.213030,-0.000000 -2796,-0.977268,-0.000000,0.212007,-0.000000 -2797,-0.977490,-0.000000,0.210984,-0.000000 -2798,-0.977710,-0.000000,0.209960,-0.000000 -2799,-0.977929,-0.000000,0.208936,-0.000000 -2800,-0.978148,-0.000000,0.207912,-0.000000 -2801,-0.978365,-0.000000,0.206887,-0.000000 -2802,-0.978581,-0.000000,0.205863,-0.000000 -2803,-0.978796,-0.000000,0.204838,-0.000000 -2804,-0.979010,-0.000000,0.203813,-0.000000 -2805,-0.979223,-0.000000,0.202787,-0.000000 -2806,-0.979435,-0.000000,0.201762,-0.000000 -2807,-0.979645,-0.000000,0.200736,-0.000000 -2808,-0.979855,-0.000000,0.199710,-0.000000 -2809,-0.980064,-0.000000,0.198684,-0.000000 -2810,-0.980271,-0.000000,0.197657,-0.000000 -2811,-0.980478,-0.000000,0.196631,-0.000000 -2812,-0.980683,-0.000000,0.195604,-0.000000 -2813,-0.980887,-0.000000,0.194577,-0.000000 -2814,-0.981091,-0.000000,0.193549,-0.000000 -2815,-0.981293,-0.000000,0.192522,-0.000000 -2816,-0.981494,-0.000000,0.191494,-0.000000 -2817,-0.981694,-0.000000,0.190466,-0.000000 -2818,-0.981893,-0.000000,0.189438,-0.000000 -2819,-0.982090,-0.000000,0.188410,-0.000000 -2820,-0.982287,-0.000000,0.187381,-0.000000 -2821,-0.982483,-0.000000,0.186353,-0.000000 -2822,-0.982678,-0.000000,0.185324,-0.000000 -2823,-0.982871,-0.000000,0.184294,-0.000000 -2824,-0.983064,-0.000000,0.183265,-0.000000 -2825,-0.983255,-0.000000,0.182236,-0.000000 -2826,-0.983445,-0.000000,0.181206,-0.000000 -2827,-0.983634,-0.000000,0.180176,-0.000000 -2828,-0.983823,-0.000000,0.179146,-0.000000 -2829,-0.984010,-0.000000,0.178115,-0.000000 -2830,-0.984196,-0.000000,0.177085,-0.000000 -2831,-0.984381,-0.000000,0.176054,-0.000000 -2832,-0.984564,-0.000000,0.175023,-0.000000 -2833,-0.984747,-0.000000,0.173992,-0.000000 -2834,-0.984929,-0.000000,0.172961,-0.000000 -2835,-0.985109,-0.000000,0.171929,-0.000000 -2836,-0.985289,-0.000000,0.170897,-0.000000 -2837,-0.985467,-0.000000,0.169866,-0.000000 -2838,-0.985645,-0.000000,0.168833,-0.000000 -2839,-0.985821,-0.000000,0.167801,-0.000000 -2840,-0.985996,-0.000000,0.166769,-0.000000 -2841,-0.986170,-0.000000,0.165736,-0.000000 -2842,-0.986343,-0.000000,0.164703,-0.000000 -2843,-0.986515,-0.000000,0.163670,-0.000000 -2844,-0.986686,-0.000000,0.162637,-0.000000 -2845,-0.986856,-0.000000,0.161604,-0.000000 -2846,-0.987024,-0.000000,0.160570,-0.000000 -2847,-0.987192,-0.000000,0.159537,-0.000000 -2848,-0.987359,-0.000000,0.158503,-0.000000 -2849,-0.987524,-0.000000,0.157469,-0.000000 -2850,-0.987688,-0.000000,0.156434,-0.000000 -2851,-0.987852,-0.000000,0.155400,-0.000000 -2852,-0.988014,-0.000000,0.154366,-0.000000 -2853,-0.988175,-0.000000,0.153331,-0.000000 -2854,-0.988335,-0.000000,0.152296,-0.000000 -2855,-0.988494,-0.000000,0.151261,-0.000000 -2856,-0.988652,-0.000000,0.150226,-0.000000 -2857,-0.988809,-0.000000,0.149190,-0.000000 -2858,-0.988964,-0.000000,0.148155,-0.000000 -2859,-0.989119,-0.000000,0.147119,-0.000000 -2860,-0.989272,-0.000000,0.146083,-0.000000 -2861,-0.989425,-0.000000,0.145047,-0.000000 -2862,-0.989576,-0.000000,0.144011,-0.000000 -2863,-0.989726,-0.000000,0.142974,-0.000000 -2864,-0.989876,-0.000000,0.141938,-0.000000 -2865,-0.990024,-0.000000,0.140901,-0.000000 -2866,-0.990171,-0.000000,0.139864,-0.000000 -2867,-0.990317,-0.000000,0.138827,-0.000000 -2868,-0.990461,-0.000000,0.137790,-0.000000 -2869,-0.990605,-0.000000,0.136753,-0.000000 -2870,-0.990748,-0.000000,0.135716,-0.000000 -2871,-0.990889,-0.000000,0.134678,-0.000000 -2872,-0.991030,-0.000000,0.133640,-0.000000 -2873,-0.991169,-0.000000,0.132602,-0.000000 -2874,-0.991308,-0.000000,0.131564,-0.000000 -2875,-0.991445,-0.000000,0.130526,-0.000000 -2876,-0.991581,-0.000000,0.129488,-0.000000 -2877,-0.991716,-0.000000,0.128449,-0.000000 -2878,-0.991850,-0.000000,0.127411,-0.000000 -2879,-0.991983,-0.000000,0.126372,-0.000000 -2880,-0.992115,-0.000000,0.125333,-0.000000 -2881,-0.992245,-0.000000,0.124294,-0.000000 -2882,-0.992375,-0.000000,0.123255,-0.000000 -2883,-0.992504,-0.000000,0.122216,-0.000000 -2884,-0.992631,-0.000000,0.121176,-0.000000 -2885,-0.992757,-0.000000,0.120137,-0.000000 -2886,-0.992883,-0.000000,0.119097,-0.000000 -2887,-0.993007,-0.000000,0.118057,-0.000000 -2888,-0.993130,-0.000000,0.117017,-0.000000 -2889,-0.993252,-0.000000,0.115977,-0.000000 -2890,-0.993373,-0.000000,0.114937,-0.000000 -2891,-0.993493,-0.000000,0.113897,-0.000000 -2892,-0.993611,-0.000000,0.112856,-0.000000 -2893,-0.993729,-0.000000,0.111816,-0.000000 -2894,-0.993845,-0.000000,0.110775,-0.000000 -2895,-0.993961,-0.000000,0.109734,-0.000000 -2896,-0.994075,-0.000000,0.108693,-0.000000 -2897,-0.994189,-0.000000,0.107652,-0.000000 -2898,-0.994301,-0.000000,0.106611,-0.000000 -2899,-0.994412,-0.000000,0.105570,-0.000000 -2900,-0.994522,-0.000000,0.104528,-0.000000 -2901,-0.994631,-0.000000,0.103487,-0.000000 -2902,-0.994739,-0.000000,0.102445,-0.000000 -2903,-0.994845,-0.000000,0.101404,-0.000000 -2904,-0.994951,-0.000000,0.100362,-0.000000 -2905,-0.995056,-0.000000,0.099320,-0.000000 -2906,-0.995159,-0.000000,0.098278,-0.000000 -2907,-0.995261,-0.000000,0.097235,-0.000000 -2908,-0.995363,-0.000000,0.096193,-0.000000 -2909,-0.995463,-0.000000,0.095151,-0.000000 -2910,-0.995562,-0.000000,0.094108,-0.000000 -2911,-0.995660,-0.000000,0.093066,-0.000000 -2912,-0.995757,-0.000000,0.092023,-0.000000 -2913,-0.995853,-0.000000,0.090980,-0.000000 -2914,-0.995947,-0.000000,0.089937,-0.000000 -2915,-0.996041,-0.000000,0.088894,-0.000000 -2916,-0.996134,-0.000000,0.087851,-0.000000 -2917,-0.996225,-0.000000,0.086808,-0.000000 -2918,-0.996315,-0.000000,0.085765,-0.000000 -2919,-0.996405,-0.000000,0.084721,-0.000000 -2920,-0.996493,-0.000000,0.083678,-0.000000 -2921,-0.996580,-0.000000,0.082634,-0.000000 -2922,-0.996666,-0.000000,0.081591,-0.000000 -2923,-0.996751,-0.000000,0.080547,-0.000000 -2924,-0.996835,-0.000000,0.079503,-0.000000 -2925,-0.996917,-0.000000,0.078459,-0.000000 -2926,-0.996999,-0.000000,0.077415,-0.000000 -2927,-0.997079,-0.000000,0.076371,-0.000000 -2928,-0.997159,-0.000000,0.075327,-0.000000 -2929,-0.997237,-0.000000,0.074283,-0.000000 -2930,-0.997314,-0.000000,0.073238,-0.000000 -2931,-0.997391,-0.000000,0.072194,-0.000000 -2932,-0.997466,-0.000000,0.071149,-0.000000 -2933,-0.997540,-0.000000,0.070105,-0.000000 -2934,-0.997613,-0.000000,0.069060,-0.000000 -2935,-0.997684,-0.000000,0.068015,-0.000000 -2936,-0.997755,-0.000000,0.066970,-0.000000 -2937,-0.997825,-0.000000,0.065926,-0.000000 -2938,-0.997893,-0.000000,0.064881,-0.000000 -2939,-0.997960,-0.000000,0.063836,-0.000000 -2940,-0.998027,-0.000000,0.062791,-0.000000 -2941,-0.998092,-0.000000,0.061745,-0.000000 -2942,-0.998156,-0.000000,0.060700,-0.000000 -2943,-0.998219,-0.000000,0.059655,-0.000000 -2944,-0.998281,-0.000000,0.058609,-0.000000 -2945,-0.998342,-0.000000,0.057564,-0.000000 -2946,-0.998402,-0.000000,0.056519,-0.000000 -2947,-0.998460,-0.000000,0.055473,-0.000000 -2948,-0.998518,-0.000000,0.054427,-0.000000 -2949,-0.998574,-0.000000,0.053382,-0.000000 -2950,-0.998630,-0.000000,0.052336,-0.000000 -2951,-0.998684,-0.000000,0.051290,-0.000000 -2952,-0.998737,-0.000000,0.050244,-0.000000 -2953,-0.998789,-0.000000,0.049198,-0.000000 -2954,-0.998840,-0.000000,0.048152,-0.000000 -2955,-0.998890,-0.000000,0.047106,-0.000000 -2956,-0.998939,-0.000000,0.046060,-0.000000 -2957,-0.998986,-0.000000,0.045014,-0.000000 -2958,-0.999033,-0.000000,0.043968,-0.000000 -2959,-0.999078,-0.000000,0.042922,-0.000000 -2960,-0.999123,-0.000000,0.041876,-0.000000 -2961,-0.999166,-0.000000,0.040829,-0.000000 -2962,-0.999208,-0.000000,0.039783,-0.000000 -2963,-0.999249,-0.000000,0.038737,-0.000000 -2964,-0.999289,-0.000000,0.037690,-0.000000 -2965,-0.999328,-0.000000,0.036644,-0.000000 -2966,-0.999366,-0.000000,0.035597,-0.000000 -2967,-0.999403,-0.000000,0.034551,-0.000000 -2968,-0.999439,-0.000000,0.033504,-0.000000 -2969,-0.999473,-0.000000,0.032457,-0.000000 -2970,-0.999507,-0.000000,0.031411,-0.000000 -2971,-0.999539,-0.000000,0.030364,-0.000000 -2972,-0.999570,-0.000000,0.029317,-0.000000 -2973,-0.999600,-0.000000,0.028271,-0.000000 -2974,-0.999629,-0.000000,0.027224,-0.000000 -2975,-0.999657,-0.000000,0.026177,-0.000000 -2976,-0.999684,-0.000000,0.025130,-0.000000 -2977,-0.999710,-0.000000,0.024083,-0.000000 -2978,-0.999735,-0.000000,0.023036,-0.000000 -2979,-0.999758,-0.000000,0.021989,-0.000000 -2980,-0.999781,-0.000000,0.020942,-0.000000 -2981,-0.999802,-0.000000,0.019895,-0.000000 -2982,-0.999822,-0.000000,0.018848,-0.000000 -2983,-0.999842,-0.000000,0.017801,-0.000000 -2984,-0.999860,-0.000000,0.016754,-0.000000 -2985,-0.999877,-0.000000,0.015707,-0.000000 -2986,-0.999893,-0.000000,0.014660,-0.000000 -2987,-0.999907,-0.000000,0.013613,-0.000000 -2988,-0.999921,-0.000000,0.012566,-0.000000 -2989,-0.999934,-0.000000,0.011519,-0.000000 -2990,-0.999945,-0.000000,0.010472,-0.000000 -2991,-0.999956,-0.000000,0.009425,-0.000000 -2992,-0.999965,-0.000000,0.008377,-0.000000 -2993,-0.999973,-0.000000,0.007330,-0.000000 -2994,-0.999980,-0.000000,0.006283,-0.000000 -2995,-0.999986,-0.000000,0.005236,-0.000000 -2996,-0.999991,-0.000000,0.004189,-0.000000 -2997,-0.999995,-0.000000,0.003142,-0.000000 -2998,-0.999998,-0.000000,0.002094,-0.000000 -2999,-0.999999,-0.000000,0.001047,-0.000000 diff --git a/scripts/testv/headrot_case02_3000_q.csv b/scripts/testv/headrot_case02_3000_q.csv index 7fd73e8c76..e69de29bb2 100644 --- a/scripts/testv/headrot_case02_3000_q.csv +++ b/scripts/testv/headrot_case02_3000_q.csv @@ -1,3000 +0,0 @@ -0,1.000000,0.000000,0.000000,0.000000 -1,1.000000,-0.000000,0.000349,0.000916 -2,0.999998,-0.000001,0.000698,0.001833 -3,0.999996,-0.000003,0.001047,0.002749 -4,0.999992,-0.000005,0.001396,0.003665 -5,0.999988,-0.000008,0.001745,0.004581 -6,0.999983,-0.000012,0.002094,0.005498 -7,0.999976,-0.000016,0.002443,0.006414 -8,0.999969,-0.000020,0.002792,0.007330 -9,0.999961,-0.000026,0.003141,0.008247 -10,0.999952,-0.000032,0.003491,0.009163 -11,0.999942,-0.000039,0.003840,0.010079 -12,0.999931,-0.000046,0.004189,0.010995 -13,0.999919,-0.000054,0.004538,0.011911 -14,0.999906,-0.000063,0.004887,0.012828 -15,0.999892,-0.000072,0.005235,0.013744 -16,0.999877,-0.000082,0.005584,0.014660 -17,0.999861,-0.000092,0.005933,0.015576 -18,0.999844,-0.000104,0.006282,0.016492 -19,0.999826,-0.000115,0.006631,0.017408 -20,0.999808,-0.000128,0.006980,0.018324 -21,0.999788,-0.000141,0.007329,0.019241 -22,0.999767,-0.000155,0.007678,0.020157 -23,0.999746,-0.000169,0.008027,0.021073 -24,0.999723,-0.000184,0.008375,0.021989 -25,0.999700,-0.000200,0.008724,0.022905 -26,0.999675,-0.000216,0.009073,0.023821 -27,0.999650,-0.000233,0.009422,0.024736 -28,0.999623,-0.000251,0.009770,0.025652 -29,0.999596,-0.000269,0.010119,0.026568 -30,0.999567,-0.000288,0.010468,0.027484 -31,0.999538,-0.000307,0.010816,0.028400 -32,0.999508,-0.000327,0.011165,0.029316 -33,0.999477,-0.000348,0.011514,0.030231 -34,0.999444,-0.000370,0.011862,0.031147 -35,0.999411,-0.000392,0.012211,0.032063 -36,0.999377,-0.000414,0.012559,0.032978 -37,0.999342,-0.000438,0.012908,0.033894 -38,0.999306,-0.000462,0.013256,0.034809 -39,0.999269,-0.000486,0.013604,0.035725 -40,0.999231,-0.000512,0.013953,0.036640 -41,0.999192,-0.000538,0.014301,0.037556 -42,0.999152,-0.000564,0.014649,0.038471 -43,0.999111,-0.000591,0.014998,0.039386 -44,0.999070,-0.000619,0.015346,0.040301 -45,0.999027,-0.000647,0.015694,0.041217 -46,0.998983,-0.000677,0.016042,0.042132 -47,0.998938,-0.000706,0.016390,0.043047 -48,0.998893,-0.000737,0.016738,0.043962 -49,0.998846,-0.000768,0.017086,0.044877 -50,0.998799,-0.000799,0.017434,0.045792 -51,0.998750,-0.000832,0.017782,0.046707 -52,0.998701,-0.000864,0.018130,0.047622 -53,0.998650,-0.000898,0.018478,0.048536 -54,0.998599,-0.000932,0.018825,0.049451 -55,0.998546,-0.000967,0.019173,0.050366 -56,0.998493,-0.001003,0.019521,0.051280 -57,0.998439,-0.001039,0.019868,0.052195 -58,0.998383,-0.001075,0.020216,0.053109 -59,0.998327,-0.001113,0.020563,0.054024 -60,0.998270,-0.001151,0.020911,0.054938 -61,0.998212,-0.001189,0.021258,0.055852 -62,0.998153,-0.001229,0.021605,0.056767 -63,0.998093,-0.001269,0.021953,0.057681 -64,0.998032,-0.001309,0.022300,0.058595 -65,0.997970,-0.001350,0.022647,0.059509 -66,0.997907,-0.001392,0.022994,0.060423 -67,0.997843,-0.001435,0.023341,0.061337 -68,0.997778,-0.001478,0.023688,0.062250 -69,0.997713,-0.001522,0.024035,0.063164 -70,0.997646,-0.001566,0.024382,0.064078 -71,0.997578,-0.001611,0.024729,0.064991 -72,0.997509,-0.001657,0.025075,0.065905 -73,0.997440,-0.001703,0.025422,0.066818 -74,0.997369,-0.001750,0.025769,0.067731 -75,0.997298,-0.001798,0.026115,0.068645 -76,0.997225,-0.001846,0.026462,0.069558 -77,0.997152,-0.001895,0.026808,0.070471 -78,0.997077,-0.001944,0.027154,0.071384 -79,0.997002,-0.001994,0.027500,0.072297 -80,0.996926,-0.002045,0.027847,0.073210 -81,0.996848,-0.002096,0.028193,0.074122 -82,0.996770,-0.002148,0.028539,0.075035 -83,0.996691,-0.002201,0.028885,0.075948 -84,0.996611,-0.002254,0.029231,0.076860 -85,0.996530,-0.002308,0.029576,0.077772 -86,0.996448,-0.002363,0.029922,0.078685 -87,0.996365,-0.002418,0.030268,0.079597 -88,0.996281,-0.002474,0.030613,0.080509 -89,0.996196,-0.002530,0.030959,0.081421 -90,0.996110,-0.002587,0.031304,0.082333 -91,0.996023,-0.002645,0.031649,0.083244 -92,0.995935,-0.002704,0.031995,0.084156 -93,0.995846,-0.002763,0.032340,0.085068 -94,0.995757,-0.002822,0.032685,0.085979 -95,0.995666,-0.002882,0.033030,0.086891 -96,0.995574,-0.002943,0.033375,0.087802 -97,0.995482,-0.003005,0.033719,0.088713 -98,0.995388,-0.003067,0.034064,0.089624 -99,0.995294,-0.003130,0.034409,0.090535 -100,0.995198,-0.003193,0.034753,0.091446 -101,0.995102,-0.003257,0.035098,0.092357 -102,0.995005,-0.003322,0.035442,0.093267 -103,0.994906,-0.003388,0.035786,0.094178 -104,0.994807,-0.003453,0.036130,0.095088 -105,0.994707,-0.003520,0.036474,0.095998 -106,0.994606,-0.003587,0.036818,0.096909 -107,0.994503,-0.003655,0.037162,0.097819 -108,0.994400,-0.003724,0.037506,0.098729 -109,0.994296,-0.003793,0.037849,0.099638 -110,0.994191,-0.003863,0.038193,0.100548 -111,0.994085,-0.003933,0.038536,0.101458 -112,0.993979,-0.004004,0.038880,0.102367 -113,0.993871,-0.004076,0.039223,0.103276 -114,0.993762,-0.004148,0.039566,0.104186 -115,0.993652,-0.004221,0.039909,0.105095 -116,0.993541,-0.004295,0.040252,0.106004 -117,0.993430,-0.004369,0.040595,0.106912 -118,0.993317,-0.004444,0.040938,0.107821 -119,0.993204,-0.004519,0.041280,0.108730 -120,0.993089,-0.004595,0.041623,0.109638 -121,0.992974,-0.004672,0.041965,0.110546 -122,0.992857,-0.004749,0.042307,0.111455 -123,0.992740,-0.004827,0.042650,0.112363 -124,0.992622,-0.004906,0.042992,0.113270 -125,0.992502,-0.004985,0.043334,0.114178 -126,0.992382,-0.005065,0.043675,0.115086 -127,0.992261,-0.005146,0.044017,0.115993 -128,0.992139,-0.005227,0.044359,0.116901 -129,0.992016,-0.005308,0.044700,0.117808 -130,0.991892,-0.005391,0.045042,0.118715 -131,0.991767,-0.005474,0.045383,0.119622 -132,0.991641,-0.005557,0.045724,0.120529 -133,0.991514,-0.005642,0.046065,0.121435 -134,0.991386,-0.005727,0.046406,0.122342 -135,0.991257,-0.005812,0.046747,0.123248 -136,0.991128,-0.005898,0.047087,0.124154 -137,0.990997,-0.005985,0.047428,0.125060 -138,0.990865,-0.006073,0.047768,0.125966 -139,0.990733,-0.006161,0.048108,0.126872 -140,0.990599,-0.006249,0.048448,0.127777 -141,0.990465,-0.006339,0.048788,0.128683 -142,0.990329,-0.006429,0.049128,0.129588 -143,0.990193,-0.006519,0.049468,0.130493 -144,0.990056,-0.006610,0.049808,0.131398 -145,0.989917,-0.006702,0.050147,0.132303 -146,0.989778,-0.006795,0.050486,0.133208 -147,0.989638,-0.006888,0.050826,0.134112 -148,0.989497,-0.006981,0.051165,0.135016 -149,0.989355,-0.007076,0.051504,0.135921 -150,0.989212,-0.007171,0.051842,0.136825 -151,0.989068,-0.007266,0.052181,0.137728 -152,0.988923,-0.007362,0.052520,0.138632 -153,0.988777,-0.007459,0.052858,0.139536 -154,0.988630,-0.007557,0.053196,0.140439 -155,0.988483,-0.007655,0.053534,0.141342 -156,0.988334,-0.007754,0.053872,0.142245 -157,0.988184,-0.007853,0.054210,0.143148 -158,0.988034,-0.007953,0.054548,0.144050 -159,0.987882,-0.008053,0.054885,0.144953 -160,0.987730,-0.008155,0.055223,0.145855 -161,0.987576,-0.008256,0.055560,0.146757 -162,0.987422,-0.008359,0.055897,0.147659 -163,0.987267,-0.008462,0.056234,0.148561 -164,0.987111,-0.008566,0.056571,0.149463 -165,0.986953,-0.008670,0.056907,0.150364 -166,0.986795,-0.008775,0.057244,0.151265 -167,0.986636,-0.008880,0.057580,0.152166 -168,0.986476,-0.008987,0.057916,0.153067 -169,0.986315,-0.009093,0.058252,0.153968 -170,0.986153,-0.009201,0.058588,0.154868 -171,0.985991,-0.009309,0.058924,0.155769 -172,0.985827,-0.009418,0.059260,0.156669 -173,0.985662,-0.009527,0.059595,0.157569 -174,0.985496,-0.009637,0.059930,0.158468 -175,0.985330,-0.009747,0.060265,0.159368 -176,0.985162,-0.009859,0.060600,0.160267 -177,0.984994,-0.009970,0.060935,0.161167 -178,0.984824,-0.010083,0.061270,0.162066 -179,0.984654,-0.010196,0.061604,0.162964 -180,0.984483,-0.010309,0.061938,0.163863 -181,0.984311,-0.010424,0.062273,0.164761 -182,0.984137,-0.010539,0.062606,0.165659 -183,0.983963,-0.010654,0.062940,0.166557 -184,0.983788,-0.010770,0.063274,0.167455 -185,0.983612,-0.010887,0.063607,0.168353 -186,0.983435,-0.011004,0.063941,0.169250 -187,0.983257,-0.011122,0.064274,0.170147 -188,0.983079,-0.011241,0.064607,0.171044 -189,0.982899,-0.011360,0.064939,0.171941 -190,0.982718,-0.011480,0.065272,0.172838 -191,0.982537,-0.011600,0.065604,0.173734 -192,0.982354,-0.011721,0.065937,0.174630 -193,0.982170,-0.011843,0.066269,0.175526 -194,0.981986,-0.011965,0.066601,0.176422 -195,0.981801,-0.012088,0.066932,0.177317 -196,0.981614,-0.012212,0.067264,0.178213 -197,0.981427,-0.012336,0.067595,0.179108 -198,0.981239,-0.012461,0.067927,0.180003 -199,0.981050,-0.012586,0.068258,0.180897 -200,0.980860,-0.012712,0.068588,0.181792 -201,0.980669,-0.012839,0.068919,0.182686 -202,0.980477,-0.012966,0.069250,0.183580 -203,0.980284,-0.013094,0.069580,0.184474 -204,0.980090,-0.013222,0.069910,0.185367 -205,0.979895,-0.013351,0.070240,0.186260 -206,0.979700,-0.013481,0.070570,0.187154 -207,0.979503,-0.013611,0.070899,0.188046 -208,0.979306,-0.013742,0.071228,0.188939 -209,0.979107,-0.013874,0.071558,0.189832 -210,0.978908,-0.014006,0.071887,0.190724 -211,0.978708,-0.014139,0.072215,0.191616 -212,0.978506,-0.014272,0.072544,0.192507 -213,0.978304,-0.014406,0.072872,0.193399 -214,0.978101,-0.014541,0.073200,0.194290 -215,0.977897,-0.014676,0.073528,0.195181 -216,0.977692,-0.014812,0.073856,0.196072 -217,0.977486,-0.014948,0.074184,0.196963 -218,0.977279,-0.015085,0.074511,0.197853 -219,0.977071,-0.015223,0.074838,0.198743 -220,0.976863,-0.015361,0.075165,0.199633 -221,0.976653,-0.015500,0.075492,0.200523 -222,0.976443,-0.015639,0.075819,0.201412 -223,0.976231,-0.015779,0.076145,0.202301 -224,0.976019,-0.015920,0.076472,0.203190 -225,0.975805,-0.016061,0.076798,0.204079 -226,0.975591,-0.016203,0.077123,0.204967 -227,0.975376,-0.016346,0.077449,0.205855 -228,0.975160,-0.016489,0.077774,0.206743 -229,0.974943,-0.016633,0.078100,0.207631 -230,0.974725,-0.016777,0.078424,0.208518 -231,0.974506,-0.016922,0.078749,0.209405 -232,0.974286,-0.017067,0.079074,0.210292 -233,0.974065,-0.017214,0.079398,0.211179 -234,0.973844,-0.017360,0.079722,0.212065 -235,0.973621,-0.017508,0.080046,0.212951 -236,0.973397,-0.017656,0.080370,0.213837 -237,0.973173,-0.017804,0.080693,0.214723 -238,0.972948,-0.017954,0.081017,0.215608 -239,0.972721,-0.018103,0.081340,0.216493 -240,0.972494,-0.018254,0.081663,0.217378 -241,0.972266,-0.018405,0.081985,0.218263 -242,0.972037,-0.018556,0.082308,0.219147 -243,0.971807,-0.018709,0.082630,0.220031 -244,0.971576,-0.018861,0.082952,0.220915 -245,0.971344,-0.019015,0.083274,0.221799 -246,0.971111,-0.019169,0.083595,0.222682 -247,0.970878,-0.019323,0.083916,0.223565 -248,0.970643,-0.019479,0.084237,0.224448 -249,0.970408,-0.019635,0.084558,0.225330 -250,0.970171,-0.019791,0.084879,0.226212 -251,0.969934,-0.019948,0.085199,0.227094 -252,0.969695,-0.020106,0.085520,0.227976 -253,0.969456,-0.020264,0.085840,0.228857 -254,0.969216,-0.020423,0.086159,0.229738 -255,0.968975,-0.020582,0.086479,0.230619 -256,0.968733,-0.020742,0.086798,0.231500 -257,0.968490,-0.020903,0.087117,0.232380 -258,0.968246,-0.021064,0.087436,0.233260 -259,0.968002,-0.021226,0.087754,0.234140 -260,0.967756,-0.021388,0.088073,0.235019 -261,0.967510,-0.021551,0.088391,0.235898 -262,0.967262,-0.021715,0.088709,0.236777 -263,0.967014,-0.021879,0.089026,0.237656 -264,0.966764,-0.022044,0.089344,0.238534 -265,0.966514,-0.022210,0.089661,0.239412 -266,0.966263,-0.022376,0.089978,0.240290 -267,0.966011,-0.022542,0.090294,0.241167 -268,0.965758,-0.022709,0.090611,0.242044 -269,0.965504,-0.022877,0.090927,0.242921 -270,0.965249,-0.023046,0.091243,0.243798 -271,0.964994,-0.023215,0.091559,0.244674 -272,0.964737,-0.023384,0.091874,0.245550 -273,0.964480,-0.023554,0.092189,0.246425 -274,0.964221,-0.023725,0.092504,0.247301 -275,0.963962,-0.023897,0.092819,0.248176 -276,0.963702,-0.024069,0.093133,0.249051 -277,0.963440,-0.024241,0.093448,0.249925 -278,0.963178,-0.024414,0.093762,0.250799 -279,0.962915,-0.024588,0.094075,0.251673 -280,0.962651,-0.024762,0.094389,0.252547 -281,0.962387,-0.024937,0.094702,0.253420 -282,0.962121,-0.025113,0.095015,0.254293 -283,0.961854,-0.025289,0.095328,0.255166 -284,0.961587,-0.025466,0.095640,0.256038 -285,0.961318,-0.025643,0.095952,0.256910 -286,0.961049,-0.025821,0.096264,0.257782 -287,0.960779,-0.025999,0.096576,0.258653 -288,0.960507,-0.026179,0.096887,0.259525 -289,0.960235,-0.026358,0.097199,0.260395 -290,0.959962,-0.026538,0.097509,0.261266 -291,0.959688,-0.026719,0.097820,0.262136 -292,0.959414,-0.026901,0.098130,0.263006 -293,0.959138,-0.027083,0.098441,0.263875 -294,0.958861,-0.027265,0.098750,0.264745 -295,0.958584,-0.027448,0.099060,0.265614 -296,0.958305,-0.027632,0.099369,0.266482 -297,0.958026,-0.027817,0.099678,0.267351 -298,0.957746,-0.028002,0.099987,0.268219 -299,0.957465,-0.028187,0.100296,0.269086 -300,0.957183,-0.028373,0.100604,0.269953 -301,0.956900,-0.028560,0.100912,0.270820 -302,0.956616,-0.028747,0.101220,0.271687 -303,0.956331,-0.028935,0.101527,0.272553 -304,0.956046,-0.029124,0.101834,0.273420 -305,0.955759,-0.029313,0.102141,0.274285 -306,0.955472,-0.029502,0.102448,0.275151 -307,0.955183,-0.029692,0.102754,0.276016 -308,0.954894,-0.029883,0.103060,0.276880 -309,0.954604,-0.030075,0.103366,0.277745 -310,0.954313,-0.030267,0.103672,0.278609 -311,0.954021,-0.030459,0.103977,0.279472 -312,0.953728,-0.030652,0.104282,0.280336 -313,0.953435,-0.030846,0.104586,0.281199 -314,0.953140,-0.031040,0.104891,0.282062 -315,0.952844,-0.031235,0.105195,0.282924 -316,0.952548,-0.031431,0.105499,0.283786 -317,0.952251,-0.031627,0.105802,0.284648 -318,0.951952,-0.031823,0.106106,0.285509 -319,0.951653,-0.032020,0.106409,0.286370 -320,0.951353,-0.032218,0.106711,0.287231 -321,0.951053,-0.032416,0.107014,0.288091 -322,0.950751,-0.032615,0.107316,0.288951 -323,0.950448,-0.032815,0.107618,0.289810 -324,0.950145,-0.033015,0.107919,0.290670 -325,0.949840,-0.033215,0.108221,0.291529 -326,0.949535,-0.033417,0.108522,0.292387 -327,0.949228,-0.033618,0.108822,0.293245 -328,0.948921,-0.033821,0.109123,0.294103 -329,0.948613,-0.034024,0.109423,0.294961 -330,0.948304,-0.034227,0.109723,0.295818 -331,0.947995,-0.034431,0.110022,0.296675 -332,0.947684,-0.034636,0.110321,0.297531 -333,0.947372,-0.034841,0.110620,0.298387 -334,0.947060,-0.035047,0.110919,0.299243 -335,0.946746,-0.035253,0.111217,0.300098 -336,0.946432,-0.035460,0.111515,0.300953 -337,0.946117,-0.035668,0.111813,0.301808 -338,0.945801,-0.035876,0.112110,0.302662 -339,0.945484,-0.036085,0.112407,0.303516 -340,0.945166,-0.036294,0.112704,0.304370 -341,0.944848,-0.036504,0.113001,0.305223 -342,0.944528,-0.036714,0.113297,0.306076 -343,0.944208,-0.036925,0.113593,0.306928 -344,0.943886,-0.037137,0.113889,0.307780 -345,0.943564,-0.037349,0.114184,0.308632 -346,0.943241,-0.037561,0.114479,0.309484 -347,0.942917,-0.037774,0.114773,0.310335 -348,0.942592,-0.037988,0.115068,0.311185 -349,0.942266,-0.038203,0.115362,0.312035 -350,0.941940,-0.038417,0.115656,0.312885 -351,0.941612,-0.038633,0.115949,0.313735 -352,0.941284,-0.038849,0.116242,0.314584 -353,0.940955,-0.039066,0.116535,0.315433 -354,0.940625,-0.039283,0.116828,0.316281 -355,0.940294,-0.039501,0.117120,0.317129 -356,0.939962,-0.039719,0.117412,0.317977 -357,0.939629,-0.039938,0.117703,0.318824 -358,0.939295,-0.040157,0.117994,0.319671 -359,0.938961,-0.040377,0.118285,0.320517 -360,0.938625,-0.040598,0.118576,0.321363 -361,0.938289,-0.040819,0.118866,0.322209 -362,0.937952,-0.041040,0.119156,0.323054 -363,0.937614,-0.041263,0.119446,0.323899 -364,0.937275,-0.041485,0.119735,0.324744 -365,0.936935,-0.041709,0.120024,0.325588 -366,0.936594,-0.041933,0.120313,0.326432 -367,0.936253,-0.042157,0.120601,0.327275 -368,0.935910,-0.042382,0.120889,0.328118 -369,0.935567,-0.042608,0.121177,0.328961 -370,0.935223,-0.042834,0.121464,0.329803 -371,0.934878,-0.043061,0.121751,0.330645 -372,0.934532,-0.043288,0.122038,0.331486 -373,0.934185,-0.043516,0.122324,0.332327 -374,0.933838,-0.043744,0.122610,0.333168 -375,0.933489,-0.043973,0.122896,0.334008 -376,0.933140,-0.044202,0.123182,0.334848 -377,0.932789,-0.044432,0.123467,0.335687 -378,0.932438,-0.044663,0.123751,0.336526 -379,0.932086,-0.044894,0.124036,0.337365 -380,0.931733,-0.045126,0.124320,0.338203 -381,0.931380,-0.045358,0.124604,0.339041 -382,0.931025,-0.045591,0.124887,0.339878 -383,0.930670,-0.045824,0.125170,0.340715 -384,0.930313,-0.046058,0.125453,0.341551 -385,0.929956,-0.046293,0.125735,0.342388 -386,0.929598,-0.046528,0.126017,0.343223 -387,0.929239,-0.046763,0.126299,0.344059 -388,0.928879,-0.046999,0.126580,0.344894 -389,0.928519,-0.047236,0.126861,0.345728 -390,0.928157,-0.047473,0.127142,0.346562 -391,0.927795,-0.047711,0.127422,0.347396 -392,0.927432,-0.047949,0.127702,0.348229 -393,0.927068,-0.048188,0.127982,0.349062 -394,0.926703,-0.048427,0.128261,0.349895 -395,0.926337,-0.048667,0.128540,0.350727 -396,0.925970,-0.048908,0.128818,0.351558 -397,0.925603,-0.049149,0.129097,0.352389 -398,0.925234,-0.049390,0.129375,0.353220 -399,0.924865,-0.049633,0.129652,0.354050 -400,0.924495,-0.049875,0.129929,0.354880 -401,0.924124,-0.050118,0.130206,0.355710 -402,0.923752,-0.050362,0.130483,0.356539 -403,0.923379,-0.050606,0.130759,0.357368 -404,0.923006,-0.050851,0.131034,0.358196 -405,0.922632,-0.051097,0.131310,0.359024 -406,0.922256,-0.051343,0.131585,0.359851 -407,0.921880,-0.051589,0.131860,0.360678 -408,0.921503,-0.051836,0.132134,0.361504 -409,0.921125,-0.052084,0.132408,0.362330 -410,0.920747,-0.052332,0.132682,0.363156 -411,0.920367,-0.052580,0.132955,0.363981 -412,0.919987,-0.052829,0.133228,0.364806 -413,0.919606,-0.053079,0.133500,0.365630 -414,0.919224,-0.053329,0.133773,0.366454 -415,0.918841,-0.053580,0.134044,0.367278 -416,0.918457,-0.053831,0.134316,0.368101 -417,0.918072,-0.054083,0.134587,0.368923 -418,0.917687,-0.054336,0.134858,0.369745 -419,0.917301,-0.054588,0.135128,0.370567 -420,0.916914,-0.054842,0.135398,0.371388 -421,0.916526,-0.055096,0.135668,0.372209 -422,0.916137,-0.055350,0.135937,0.373029 -423,0.915747,-0.055605,0.136206,0.373849 -424,0.915357,-0.055861,0.136474,0.374669 -425,0.914965,-0.056117,0.136742,0.375488 -426,0.914573,-0.056374,0.137010,0.376306 -427,0.914180,-0.056631,0.137278,0.377124 -428,0.913786,-0.056889,0.137545,0.377942 -429,0.913391,-0.057147,0.137811,0.378759 -430,0.912996,-0.057405,0.138078,0.379576 -431,0.912599,-0.057665,0.138344,0.380392 -432,0.912202,-0.057925,0.138609,0.381208 -433,0.911804,-0.058185,0.138874,0.382024 -434,0.911405,-0.058446,0.139139,0.382839 -435,0.911005,-0.058707,0.139403,0.383653 -436,0.910605,-0.058969,0.139667,0.384467 -437,0.910203,-0.059232,0.139931,0.385281 -438,0.909801,-0.059495,0.140194,0.386094 -439,0.909398,-0.059758,0.140457,0.386906 -440,0.908994,-0.060022,0.140720,0.387719 -441,0.908589,-0.060287,0.140982,0.388530 -442,0.908183,-0.060552,0.141243,0.389342 -443,0.907777,-0.060817,0.141505,0.390152 -444,0.907369,-0.061083,0.141766,0.390963 -445,0.906961,-0.061350,0.142026,0.391773 -446,0.906552,-0.061617,0.142287,0.392582 -447,0.906143,-0.061885,0.142546,0.393391 -448,0.905732,-0.062153,0.142806,0.394199 -449,0.905320,-0.062422,0.143065,0.395007 -450,0.904908,-0.062691,0.143323,0.395815 -451,0.904495,-0.062961,0.143582,0.396622 -452,0.904081,-0.063231,0.143839,0.397429 -453,0.903666,-0.063502,0.144097,0.398235 -454,0.903251,-0.063773,0.144354,0.399040 -455,0.902834,-0.064045,0.144611,0.399845 -456,0.902417,-0.064317,0.144867,0.400650 -457,0.901999,-0.064590,0.145123,0.401454 -458,0.901580,-0.064863,0.145378,0.402258 -459,0.901160,-0.065137,0.145633,0.403061 -460,0.900740,-0.065412,0.145888,0.403864 -461,0.900318,-0.065687,0.146142,0.404666 -462,0.899896,-0.065962,0.146396,0.405468 -463,0.899473,-0.066238,0.146650,0.406269 -464,0.899049,-0.066514,0.146903,0.407070 -465,0.898624,-0.066791,0.147155,0.407871 -466,0.898199,-0.067069,0.147408,0.408670 -467,0.897773,-0.067347,0.147660,0.409470 -468,0.897345,-0.067625,0.147911,0.410269 -469,0.896917,-0.067904,0.148162,0.411067 -470,0.896489,-0.068184,0.148413,0.411865 -471,0.896059,-0.068464,0.148663,0.412662 -472,0.895629,-0.068744,0.148913,0.413459 -473,0.895197,-0.069025,0.149162,0.414256 -474,0.894765,-0.069307,0.149411,0.415052 -475,0.894332,-0.069589,0.149660,0.415847 -476,0.893899,-0.069871,0.149908,0.416642 -477,0.893464,-0.070155,0.150156,0.417436 -478,0.893029,-0.070438,0.150403,0.418230 -479,0.892593,-0.070722,0.150650,0.419024 -480,0.892156,-0.071007,0.150897,0.419817 -481,0.891718,-0.071292,0.151143,0.420609 -482,0.891280,-0.071577,0.151389,0.421401 -483,0.890840,-0.071863,0.151634,0.422193 -484,0.890400,-0.072150,0.151879,0.422983 -485,0.889959,-0.072437,0.152123,0.423774 -486,0.889517,-0.072725,0.152368,0.424564 -487,0.889075,-0.073013,0.152611,0.425353 -488,0.888631,-0.073301,0.152854,0.426142 -489,0.888187,-0.073590,0.153097,0.426931 -490,0.887742,-0.073880,0.153340,0.427718 -491,0.887296,-0.074170,0.153582,0.428506 -492,0.886849,-0.074460,0.153823,0.429293 -493,0.886402,-0.074751,0.154064,0.430079 -494,0.885954,-0.075043,0.154305,0.430865 -495,0.885505,-0.075335,0.154545,0.431650 -496,0.885055,-0.075628,0.154785,0.432435 -497,0.884604,-0.075921,0.155025,0.433219 -498,0.884153,-0.076214,0.155264,0.434003 -499,0.883700,-0.076508,0.155502,0.434787 -500,0.883247,-0.076803,0.155740,0.435569 -501,0.882793,-0.077098,0.155978,0.436352 -502,0.882339,-0.077393,0.156215,0.437133 -503,0.881883,-0.077689,0.156452,0.437915 -504,0.881427,-0.077986,0.156689,0.438695 -505,0.880970,-0.078282,0.156925,0.439475 -506,0.880512,-0.078580,0.157160,0.440255 -507,0.880053,-0.078878,0.157395,0.441034 -508,0.879594,-0.079176,0.157630,0.441813 -509,0.879134,-0.079475,0.157864,0.442591 -510,0.878673,-0.079775,0.158098,0.443368 -511,0.878211,-0.080074,0.158332,0.444145 -512,0.877748,-0.080375,0.158565,0.444922 -513,0.877285,-0.080676,0.158797,0.445698 -514,0.876820,-0.080977,0.159029,0.446473 -515,0.876355,-0.081279,0.159261,0.447248 -516,0.875890,-0.081581,0.159492,0.448022 -517,0.875423,-0.081884,0.159723,0.448796 -518,0.874956,-0.082187,0.159953,0.449570 -519,0.874488,-0.082491,0.160183,0.450342 -520,0.874019,-0.082795,0.160412,0.451115 -521,0.873549,-0.083100,0.160641,0.451886 -522,0.873078,-0.083405,0.160870,0.452657 -523,0.872607,-0.083711,0.161098,0.453428 -524,0.872135,-0.084017,0.161326,0.454198 -525,0.871662,-0.084323,0.161553,0.454968 -526,0.871188,-0.084630,0.161780,0.455737 -527,0.870714,-0.084938,0.162006,0.456505 -528,0.870239,-0.085246,0.162232,0.457273 -529,0.869763,-0.085554,0.162457,0.458040 -530,0.869286,-0.085863,0.162682,0.458807 -531,0.868808,-0.086173,0.162907,0.459574 -532,0.868330,-0.086483,0.163131,0.460339 -533,0.867851,-0.086793,0.163355,0.461104 -534,0.867371,-0.087104,0.163578,0.461869 -535,0.866890,-0.087415,0.163801,0.462633 -536,0.866409,-0.087727,0.164023,0.463397 -537,0.865926,-0.088040,0.164245,0.464160 -538,0.865443,-0.088352,0.164466,0.464922 -539,0.864960,-0.088666,0.164687,0.465684 -540,0.864475,-0.088979,0.164907,0.466445 -541,0.863990,-0.089293,0.165127,0.467206 -542,0.863503,-0.089608,0.165347,0.467966 -543,0.863017,-0.089923,0.165566,0.468726 -544,0.862529,-0.090239,0.165785,0.469485 -545,0.862040,-0.090555,0.166003,0.470244 -546,0.861551,-0.090871,0.166221,0.471002 -547,0.861061,-0.091188,0.166438,0.471759 -548,0.860571,-0.091506,0.166655,0.472516 -549,0.860079,-0.091823,0.166871,0.473272 -550,0.859587,-0.092142,0.167087,0.474028 -551,0.859094,-0.092461,0.167302,0.474783 -552,0.858600,-0.092780,0.167517,0.475538 -553,0.858105,-0.093100,0.167732,0.476292 -554,0.857610,-0.093420,0.167946,0.477045 -555,0.857114,-0.093740,0.168159,0.477798 -556,0.856617,-0.094061,0.168372,0.478551 -557,0.856119,-0.094383,0.168585,0.479303 -558,0.855621,-0.094705,0.168797,0.480054 -559,0.855122,-0.095027,0.169008,0.480804 -560,0.854622,-0.095350,0.169220,0.481555 -561,0.854121,-0.095674,0.169430,0.482304 -562,0.853620,-0.095998,0.169641,0.483053 -563,0.853117,-0.096322,0.169850,0.483801 -564,0.852614,-0.096647,0.170060,0.484549 -565,0.852111,-0.096972,0.170269,0.485296 -566,0.851606,-0.097297,0.170477,0.486043 -567,0.851101,-0.097624,0.170685,0.486789 -568,0.850595,-0.097950,0.170892,0.487535 -569,0.850088,-0.098277,0.171099,0.488280 -570,0.849581,-0.098605,0.171305,0.489024 -571,0.849072,-0.098932,0.171511,0.489768 -572,0.848563,-0.099261,0.171717,0.490511 -573,0.848054,-0.099590,0.171922,0.491253 -574,0.847543,-0.099919,0.172127,0.491995 -575,0.847032,-0.100248,0.172331,0.492737 -576,0.846520,-0.100579,0.172534,0.493478 -577,0.846007,-0.100909,0.172737,0.494218 -578,0.845493,-0.101240,0.172940,0.494958 -579,0.844979,-0.101572,0.173142,0.495697 -580,0.844464,-0.101904,0.173344,0.496435 -581,0.843948,-0.102236,0.173545,0.497173 -582,0.843432,-0.102569,0.173745,0.497911 -583,0.842915,-0.102902,0.173946,0.498647 -584,0.842397,-0.103236,0.174145,0.499383 -585,0.841878,-0.103570,0.174345,0.500119 -586,0.841358,-0.103904,0.174543,0.500854 -587,0.840838,-0.104239,0.174741,0.501588 -588,0.840317,-0.104575,0.174939,0.502322 -589,0.839795,-0.104910,0.175136,0.503055 -590,0.839273,-0.105247,0.175333,0.503788 -591,0.838750,-0.105583,0.175530,0.504520 -592,0.838226,-0.105921,0.175725,0.505251 -593,0.837701,-0.106258,0.175921,0.505982 -594,0.837176,-0.106596,0.176115,0.506712 -595,0.836650,-0.106935,0.176310,0.507442 -596,0.836123,-0.107274,0.176504,0.508171 -597,0.835595,-0.107613,0.176697,0.508899 -598,0.835067,-0.107953,0.176890,0.509627 -599,0.834538,-0.108293,0.177082,0.510354 -600,0.834008,-0.108634,0.177274,0.511081 -601,0.833477,-0.108975,0.177465,0.511807 -602,0.832946,-0.109316,0.177656,0.512532 -603,0.832414,-0.109658,0.177846,0.513257 -604,0.831881,-0.110000,0.178036,0.513981 -605,0.831348,-0.110343,0.178226,0.514705 -606,0.830814,-0.110686,0.178414,0.515427 -607,0.830279,-0.111030,0.178603,0.516150 -608,0.829743,-0.111374,0.178791,0.516872 -609,0.829207,-0.111718,0.178978,0.517593 -610,0.828670,-0.112063,0.179165,0.518313 -611,0.828132,-0.112409,0.179351,0.519033 -612,0.827593,-0.112754,0.179537,0.519752 -613,0.827054,-0.113100,0.179722,0.520471 -614,0.826514,-0.113447,0.179907,0.521189 -615,0.825973,-0.113794,0.180091,0.521906 -616,0.825432,-0.114141,0.180275,0.522623 -617,0.824890,-0.114489,0.180458,0.523339 -618,0.824347,-0.114837,0.180641,0.524055 -619,0.823803,-0.115186,0.180823,0.524770 -620,0.823259,-0.115535,0.181005,0.525484 -621,0.822714,-0.115885,0.181186,0.526198 -622,0.822168,-0.116235,0.181367,0.526911 -623,0.821622,-0.116585,0.181547,0.527624 -624,0.821074,-0.116936,0.181727,0.528335 -625,0.820526,-0.117287,0.181906,0.529047 -626,0.819978,-0.117638,0.182085,0.529757 -627,0.819428,-0.117990,0.182263,0.530467 -628,0.818878,-0.118343,0.182441,0.531176 -629,0.818328,-0.118696,0.182618,0.531885 -630,0.817776,-0.119049,0.182795,0.532593 -631,0.817224,-0.119402,0.182971,0.533301 -632,0.816671,-0.119756,0.183146,0.534008 -633,0.816118,-0.120111,0.183321,0.534714 -634,0.815563,-0.120466,0.183496,0.535419 -635,0.815008,-0.120821,0.183670,0.536124 -636,0.814453,-0.121176,0.183844,0.536829 -637,0.813896,-0.121533,0.184017,0.537532 -638,0.813339,-0.121889,0.184189,0.538235 -639,0.812781,-0.122246,0.184361,0.538938 -640,0.812223,-0.122603,0.184532,0.539639 -641,0.811663,-0.122961,0.184703,0.540341 -642,0.811103,-0.123319,0.184874,0.541041 -643,0.810543,-0.123677,0.185044,0.541741 -644,0.809981,-0.124036,0.185213,0.542440 -645,0.809419,-0.124395,0.185382,0.543139 -646,0.808857,-0.124755,0.185550,0.543837 -647,0.808293,-0.125115,0.185718,0.544534 -648,0.807729,-0.125476,0.185885,0.545230 -649,0.807164,-0.125836,0.186052,0.545926 -650,0.806599,-0.126198,0.186218,0.546622 -651,0.806033,-0.126559,0.186384,0.547317 -652,0.805466,-0.126921,0.186549,0.548011 -653,0.804898,-0.127284,0.186713,0.548704 -654,0.804330,-0.127647,0.186877,0.549397 -655,0.803761,-0.128010,0.187041,0.550089 -656,0.803191,-0.128373,0.187204,0.550780 -657,0.802621,-0.128737,0.187366,0.551471 -658,0.802050,-0.129102,0.187528,0.552161 -659,0.801478,-0.129466,0.187690,0.552851 -660,0.800905,-0.129832,0.187851,0.553540 -661,0.800332,-0.130197,0.188011,0.554228 -662,0.799759,-0.130563,0.188171,0.554916 -663,0.799184,-0.130929,0.188330,0.555603 -664,0.798609,-0.131296,0.188489,0.556289 -665,0.798033,-0.131663,0.188647,0.556974 -666,0.797456,-0.132031,0.188805,0.557659 -667,0.796879,-0.132398,0.188962,0.558344 -668,0.796301,-0.132767,0.189118,0.559027 -669,0.795723,-0.133135,0.189274,0.559710 -670,0.795143,-0.133504,0.189430,0.560393 -671,0.794563,-0.133874,0.189585,0.561074 -672,0.793983,-0.134243,0.189739,0.561755 -673,0.793402,-0.134614,0.189893,0.562436 -674,0.792820,-0.134984,0.190046,0.563115 -675,0.792237,-0.135355,0.190199,0.563794 -676,0.791654,-0.135726,0.190352,0.564473 -677,0.791070,-0.136098,0.190503,0.565150 -678,0.790485,-0.136470,0.190654,0.565827 -679,0.789900,-0.136842,0.190805,0.566504 -680,0.789314,-0.137215,0.190955,0.567179 -681,0.788727,-0.137588,0.191105,0.567854 -682,0.788139,-0.137962,0.191254,0.568529 -683,0.787551,-0.138336,0.191402,0.569202 -684,0.786963,-0.138710,0.191550,0.569875 -685,0.786373,-0.139085,0.191697,0.570548 -686,0.785783,-0.139460,0.191844,0.571219 -687,0.785193,-0.139835,0.191990,0.571890 -688,0.784601,-0.140211,0.192136,0.572561 -689,0.784009,-0.140587,0.192281,0.573230 -690,0.783416,-0.140963,0.192426,0.573899 -691,0.782823,-0.141340,0.192570,0.574568 -692,0.782229,-0.141717,0.192713,0.575235 -693,0.781634,-0.142095,0.192856,0.575902 -694,0.781039,-0.142473,0.192998,0.576568 -695,0.780443,-0.142851,0.193140,0.577234 -696,0.779846,-0.143230,0.193281,0.577899 -697,0.779249,-0.143609,0.193422,0.578563 -698,0.778651,-0.143988,0.193562,0.579227 -699,0.778052,-0.144368,0.193702,0.579890 -700,0.777453,-0.144748,0.193841,0.580552 -701,0.776853,-0.145128,0.193979,0.581213 -702,0.776253,-0.145509,0.194117,0.581874 -703,0.775651,-0.145890,0.194255,0.582534 -704,0.775049,-0.146272,0.194391,0.583194 -705,0.774447,-0.146654,0.194528,0.583853 -706,0.773844,-0.147036,0.194663,0.584511 -707,0.773240,-0.147418,0.194798,0.585168 -708,0.772635,-0.147801,0.194933,0.585825 -709,0.772030,-0.148185,0.195067,0.586481 -710,0.771424,-0.148568,0.195200,0.587136 -711,0.770818,-0.148952,0.195333,0.587791 -712,0.770211,-0.149337,0.195466,0.588445 -713,0.769603,-0.149721,0.195597,0.589098 -714,0.768995,-0.150106,0.195728,0.589751 -715,0.768386,-0.150492,0.195859,0.590402 -716,0.767776,-0.150877,0.195989,0.591054 -717,0.767166,-0.151263,0.196119,0.591704 -718,0.766555,-0.151650,0.196247,0.592354 -719,0.765943,-0.152037,0.196376,0.593003 -720,0.765331,-0.152424,0.196504,0.593651 -721,0.764718,-0.152811,0.196631,0.594299 -722,0.764104,-0.153199,0.196757,0.594946 -723,0.763490,-0.153587,0.196883,0.595593 -724,0.762876,-0.153976,0.197009,0.596238 -725,0.762260,-0.154364,0.197134,0.596883 -726,0.761644,-0.154754,0.197258,0.597527 -727,0.761027,-0.155143,0.197382,0.598171 -728,0.760410,-0.155533,0.197505,0.598814 -729,0.759792,-0.155923,0.197628,0.599456 -730,0.759174,-0.156314,0.197750,0.600097 -731,0.758554,-0.156704,0.197871,0.600738 -732,0.757934,-0.157096,0.197992,0.601378 -733,0.757314,-0.157487,0.198113,0.602017 -734,0.756693,-0.157879,0.198232,0.602656 -735,0.756071,-0.158271,0.198352,0.603294 -736,0.755449,-0.158664,0.198470,0.603931 -737,0.754826,-0.159056,0.198588,0.604567 -738,0.754202,-0.159450,0.198706,0.605203 -739,0.753578,-0.159843,0.198823,0.605838 -740,0.752953,-0.160237,0.198939,0.606473 -741,0.752328,-0.160631,0.199055,0.607106 -742,0.751702,-0.161026,0.199170,0.607739 -743,0.751075,-0.161420,0.199284,0.608371 -744,0.750448,-0.161816,0.199398,0.609003 -745,0.749820,-0.162211,0.199512,0.609634 -746,0.749191,-0.162607,0.199624,0.610264 -747,0.748562,-0.163003,0.199737,0.610893 -748,0.747932,-0.163399,0.199848,0.611522 -749,0.747302,-0.163796,0.199959,0.612150 -750,0.746671,-0.164193,0.200070,0.612777 -751,0.746039,-0.164590,0.200180,0.613403 -752,0.745407,-0.164988,0.200289,0.614029 -753,0.744774,-0.165386,0.200398,0.614654 -754,0.744141,-0.165785,0.200506,0.615279 -755,0.743506,-0.166183,0.200613,0.615902 -756,0.742872,-0.166582,0.200720,0.616525 -757,0.742237,-0.166981,0.200827,0.617147 -758,0.741601,-0.167381,0.200933,0.617769 -759,0.740964,-0.167781,0.201038,0.618389 -760,0.740327,-0.168181,0.201142,0.619009 -761,0.739689,-0.168582,0.201246,0.619629 -762,0.739051,-0.168983,0.201350,0.620247 -763,0.738412,-0.169384,0.201453,0.620865 -764,0.737773,-0.169785,0.201555,0.621482 -765,0.737132,-0.170187,0.201657,0.622099 -766,0.736492,-0.170589,0.201758,0.622714 -767,0.735850,-0.170991,0.201858,0.623329 -768,0.735208,-0.171394,0.201958,0.623943 -769,0.734566,-0.171797,0.202057,0.624557 -770,0.733923,-0.172200,0.202156,0.625170 -771,0.733279,-0.172604,0.202254,0.625782 -772,0.732635,-0.173008,0.202352,0.626393 -773,0.731990,-0.173412,0.202449,0.627004 -774,0.731344,-0.173817,0.202545,0.627613 -775,0.730698,-0.174222,0.202641,0.628222 -776,0.730052,-0.174627,0.202736,0.628831 -777,0.729404,-0.175032,0.202830,0.629438 -778,0.728757,-0.175438,0.202924,0.630045 -779,0.728108,-0.175844,0.203018,0.630651 -780,0.727459,-0.176250,0.203110,0.631257 -781,0.726810,-0.176657,0.203202,0.631862 -782,0.726159,-0.177064,0.203294,0.632466 -783,0.725509,-0.177471,0.203385,0.633069 -784,0.724857,-0.177878,0.203475,0.633671 -785,0.724205,-0.178286,0.203565,0.634273 -786,0.723553,-0.178694,0.203654,0.634874 -787,0.722900,-0.179103,0.203743,0.635474 -788,0.722246,-0.179511,0.203831,0.636074 -789,0.721592,-0.179920,0.203918,0.636672 -790,0.720937,-0.180329,0.204005,0.637270 -791,0.720281,-0.180739,0.204091,0.637868 -792,0.719625,-0.181149,0.204176,0.638464 -793,0.718969,-0.181559,0.204261,0.639060 -794,0.718312,-0.181969,0.204345,0.639655 -795,0.717654,-0.182380,0.204429,0.640249 -796,0.716996,-0.182791,0.204512,0.640843 -797,0.716337,-0.183202,0.204595,0.641436 -798,0.715677,-0.183614,0.204677,0.642028 -799,0.715017,-0.184025,0.204758,0.642619 -800,0.714357,-0.184437,0.204838,0.643210 -801,0.713695,-0.184850,0.204919,0.643799 -802,0.713034,-0.185262,0.204998,0.644388 -803,0.712371,-0.185675,0.205077,0.644977 -804,0.711709,-0.186088,0.205155,0.645564 -805,0.711045,-0.186502,0.205233,0.646151 -806,0.710381,-0.186916,0.205310,0.646737 -807,0.709717,-0.187330,0.205386,0.647323 -808,0.709052,-0.187744,0.205462,0.647907 -809,0.708386,-0.188159,0.205537,0.648491 -810,0.707720,-0.188573,0.205612,0.649074 -811,0.707053,-0.188988,0.205686,0.649656 -812,0.706385,-0.189404,0.205759,0.650238 -813,0.705718,-0.189820,0.205832,0.650818 -814,0.705049,-0.190235,0.205904,0.651398 -815,0.704380,-0.190652,0.205975,0.651978 -816,0.703710,-0.191068,0.206046,0.652556 -817,0.703040,-0.191485,0.206116,0.653134 -818,0.702370,-0.191902,0.206186,0.653711 -819,0.701698,-0.192319,0.206255,0.654287 -820,0.701027,-0.192737,0.206323,0.654863 -821,0.700354,-0.193154,0.206391,0.655437 -822,0.699681,-0.193572,0.206458,0.656011 -823,0.699008,-0.193991,0.206525,0.656584 -824,0.698334,-0.194409,0.206591,0.657157 -825,0.697659,-0.194828,0.206656,0.657728 -826,0.696984,-0.195247,0.206721,0.658299 -827,0.696309,-0.195666,0.206785,0.658869 -828,0.695633,-0.196086,0.206848,0.659439 -829,0.694956,-0.196506,0.206911,0.660007 -830,0.694279,-0.196926,0.206973,0.660575 -831,0.693601,-0.197346,0.207035,0.661142 -832,0.692922,-0.197767,0.207096,0.661708 -833,0.692244,-0.198188,0.207156,0.662274 -834,0.691564,-0.198609,0.207216,0.662839 -835,0.690884,-0.199030,0.207275,0.663403 -836,0.690204,-0.199452,0.207334,0.663966 -837,0.689523,-0.199874,0.207392,0.664528 -838,0.688841,-0.200296,0.207449,0.665090 -839,0.688159,-0.200718,0.207505,0.665651 -840,0.687476,-0.201141,0.207561,0.666211 -841,0.686793,-0.201564,0.207617,0.666770 -842,0.686109,-0.201987,0.207671,0.667329 -843,0.685425,-0.202410,0.207726,0.667887 -844,0.684740,-0.202834,0.207779,0.668444 -845,0.684055,-0.203258,0.207832,0.669000 -846,0.683369,-0.203682,0.207884,0.669555 -847,0.682683,-0.204106,0.207936,0.670110 -848,0.681996,-0.204531,0.207987,0.670664 -849,0.681309,-0.204955,0.208037,0.671217 -850,0.680621,-0.205380,0.208087,0.671769 -851,0.679932,-0.205806,0.208136,0.672321 -852,0.679243,-0.206231,0.208184,0.672872 -853,0.678554,-0.206657,0.208232,0.673422 -854,0.677864,-0.207083,0.208279,0.673971 -855,0.677173,-0.207509,0.208326,0.674519 -856,0.676482,-0.207936,0.208372,0.675067 -857,0.675791,-0.208362,0.208417,0.675614 -858,0.675099,-0.208789,0.208462,0.676160 -859,0.674406,-0.209216,0.208506,0.676705 -860,0.673713,-0.209644,0.208549,0.677250 -861,0.673019,-0.210071,0.208592,0.677794 -862,0.672325,-0.210499,0.208634,0.678337 -863,0.671631,-0.210927,0.208675,0.678879 -864,0.670936,-0.211356,0.208716,0.679420 -865,0.670240,-0.211784,0.208756,0.679961 -866,0.669544,-0.212213,0.208796,0.680501 -867,0.668847,-0.212642,0.208835,0.681040 -868,0.668150,-0.213071,0.208873,0.681578 -869,0.667452,-0.213501,0.208911,0.682115 -870,0.666754,-0.213930,0.208948,0.682652 -871,0.666055,-0.214360,0.208984,0.683188 -872,0.665356,-0.214790,0.209020,0.683723 -873,0.664656,-0.215220,0.209055,0.684257 -874,0.663956,-0.215651,0.209090,0.684791 -875,0.663255,-0.216082,0.209124,0.685323 -876,0.662554,-0.216513,0.209157,0.685855 -877,0.661853,-0.216944,0.209189,0.686387 -878,0.661150,-0.217375,0.209221,0.686917 -879,0.660448,-0.217807,0.209253,0.687446 -880,0.659744,-0.218239,0.209283,0.687975 -881,0.659041,-0.218671,0.209313,0.688503 -882,0.658337,-0.219103,0.209343,0.689030 -883,0.657632,-0.219535,0.209371,0.689557 -884,0.656927,-0.219968,0.209399,0.690082 -885,0.656221,-0.220401,0.209427,0.690607 -886,0.655515,-0.220834,0.209454,0.691131 -887,0.654808,-0.221267,0.209480,0.691654 -888,0.654101,-0.221701,0.209505,0.692176 -889,0.653394,-0.222134,0.209530,0.692698 -890,0.652685,-0.222568,0.209554,0.693219 -891,0.651977,-0.223002,0.209578,0.693739 -892,0.651268,-0.223437,0.209601,0.694258 -893,0.650558,-0.223871,0.209623,0.694776 -894,0.649848,-0.224306,0.209645,0.695294 -895,0.649138,-0.224741,0.209666,0.695810 -896,0.648427,-0.225176,0.209686,0.696326 -897,0.647715,-0.225611,0.209706,0.696842 -898,0.647003,-0.226047,0.209725,0.697356 -899,0.646291,-0.226482,0.209743,0.697869 -900,0.645578,-0.226918,0.209761,0.698382 -901,0.644864,-0.227354,0.209778,0.698894 -902,0.644151,-0.227790,0.209795,0.699405 -903,0.643436,-0.228227,0.209810,0.699916 -904,0.642721,-0.228664,0.209825,0.700425 -905,0.642006,-0.229100,0.209840,0.700934 -906,0.641290,-0.229538,0.209854,0.701442 -907,0.640574,-0.229975,0.209867,0.701949 -908,0.639858,-0.230412,0.209880,0.702455 -909,0.639140,-0.230850,0.209891,0.702961 -910,0.638423,-0.231288,0.209903,0.703465 -911,0.637705,-0.231726,0.209913,0.703969 -912,0.636986,-0.232164,0.209923,0.704472 -913,0.636267,-0.232602,0.209933,0.704974 -914,0.635548,-0.233041,0.209941,0.705476 -915,0.634828,-0.233479,0.209949,0.705976 -916,0.634107,-0.233918,0.209957,0.706476 -917,0.633386,-0.234357,0.209963,0.706975 -918,0.632665,-0.234797,0.209969,0.707473 -919,0.631943,-0.235236,0.209975,0.707971 -920,0.631221,-0.235676,0.209979,0.708467 -921,0.630498,-0.236115,0.209983,0.708963 -922,0.629775,-0.236555,0.209987,0.709458 -923,0.629052,-0.236996,0.209990,0.709952 -924,0.628328,-0.237436,0.209992,0.710445 -925,0.627603,-0.237876,0.209993,0.710937 -926,0.626878,-0.238317,0.209994,0.711429 -927,0.626153,-0.238758,0.209994,0.711920 -928,0.625427,-0.239199,0.209993,0.712410 -929,0.624701,-0.239640,0.209992,0.712899 -930,0.623974,-0.240081,0.209990,0.713387 -931,0.623247,-0.240523,0.209988,0.713875 -932,0.622519,-0.240965,0.209985,0.714362 -933,0.621791,-0.241406,0.209981,0.714848 -934,0.621062,-0.241848,0.209976,0.715333 -935,0.620333,-0.242291,0.209971,0.715817 -936,0.619604,-0.242733,0.209965,0.716300 -937,0.618874,-0.243175,0.209959,0.716783 -938,0.618144,-0.243618,0.209952,0.717265 -939,0.617413,-0.244061,0.209944,0.717746 -940,0.616682,-0.244504,0.209936,0.718226 -941,0.615950,-0.244947,0.209927,0.718705 -942,0.615218,-0.245390,0.209917,0.719184 -943,0.614486,-0.245834,0.209906,0.719661 -944,0.613753,-0.246278,0.209895,0.720138 -945,0.613020,-0.246721,0.209884,0.720614 -946,0.612286,-0.247165,0.209871,0.721089 -947,0.611552,-0.247609,0.209858,0.721564 -948,0.610817,-0.248054,0.209844,0.722037 -949,0.610082,-0.248498,0.209830,0.722510 -950,0.609346,-0.248943,0.209815,0.722982 -951,0.608610,-0.249387,0.209799,0.723453 -952,0.607874,-0.249832,0.209783,0.723923 -953,0.607137,-0.250277,0.209766,0.724392 -954,0.606400,-0.250722,0.209748,0.724861 -955,0.605663,-0.251167,0.209729,0.725328 -956,0.604924,-0.251613,0.209710,0.725795 -957,0.604186,-0.252059,0.209691,0.726261 -958,0.603447,-0.252504,0.209670,0.726727 -959,0.602708,-0.252950,0.209649,0.727191 -960,0.601968,-0.253396,0.209627,0.727654 -961,0.601228,-0.253842,0.209605,0.728117 -962,0.600487,-0.254289,0.209582,0.728579 -963,0.599747,-0.254735,0.209558,0.729040 -964,0.599005,-0.255182,0.209534,0.729500 -965,0.598263,-0.255628,0.209509,0.729960 -966,0.597521,-0.256075,0.209483,0.730418 -967,0.596779,-0.256522,0.209457,0.730876 -968,0.596036,-0.256969,0.209430,0.731333 -969,0.595292,-0.257416,0.209402,0.731789 -970,0.594548,-0.257864,0.209373,0.732244 -971,0.593804,-0.258311,0.209344,0.732698 -972,0.593059,-0.258759,0.209315,0.733152 -973,0.592314,-0.259207,0.209284,0.733605 -974,0.591569,-0.259655,0.209253,0.734056 -975,0.590823,-0.260103,0.209221,0.734507 -976,0.590077,-0.260551,0.209189,0.734958 -977,0.589330,-0.260999,0.209156,0.735407 -978,0.588583,-0.261448,0.209122,0.735855 -979,0.587836,-0.261896,0.209088,0.736303 -980,0.587088,-0.262345,0.209053,0.736750 -981,0.586339,-0.262794,0.209017,0.737196 -982,0.585591,-0.263243,0.208980,0.737641 -983,0.584842,-0.263692,0.208943,0.738085 -984,0.584092,-0.264141,0.208905,0.738529 -985,0.583342,-0.264590,0.208867,0.738971 -986,0.582592,-0.265039,0.208828,0.739413 -987,0.581842,-0.265489,0.208788,0.739854 -988,0.581091,-0.265938,0.208747,0.740294 -989,0.580339,-0.266388,0.208706,0.740733 -990,0.579587,-0.266838,0.208664,0.741171 -991,0.578835,-0.267288,0.208622,0.741609 -992,0.578083,-0.267738,0.208579,0.742046 -993,0.577330,-0.268188,0.208535,0.742481 -994,0.576577,-0.268639,0.208490,0.742916 -995,0.575823,-0.269089,0.208445,0.743350 -996,0.575069,-0.269540,0.208399,0.743784 -997,0.574314,-0.269990,0.208352,0.744216 -998,0.573559,-0.270441,0.208305,0.744648 -999,0.572804,-0.270892,0.208257,0.745078 -1000,0.572049,-0.271343,0.208209,0.745508 -1001,0.571293,-0.271794,0.208159,0.745937 -1002,0.570536,-0.272245,0.208109,0.746365 -1003,0.569780,-0.272696,0.208059,0.746793 -1004,0.569022,-0.273148,0.208007,0.747219 -1005,0.568265,-0.273599,0.207955,0.747645 -1006,0.567507,-0.274051,0.207903,0.748070 -1007,0.566749,-0.274502,0.207849,0.748494 -1008,0.565990,-0.274954,0.207795,0.748917 -1009,0.565231,-0.275406,0.207741,0.749339 -1010,0.564472,-0.275858,0.207685,0.749760 -1011,0.563712,-0.276310,0.207629,0.750181 -1012,0.562952,-0.276762,0.207572,0.750600 -1013,0.562192,-0.277215,0.207515,0.751019 -1014,0.561431,-0.277667,0.207457,0.751437 -1015,0.560670,-0.278119,0.207398,0.751854 -1016,0.559909,-0.278572,0.207339,0.752270 -1017,0.559147,-0.279024,0.207279,0.752686 -1018,0.558384,-0.279477,0.207218,0.753100 -1019,0.557622,-0.279930,0.207156,0.753514 -1020,0.556859,-0.280383,0.207094,0.753927 -1021,0.556096,-0.280836,0.207031,0.754339 -1022,0.555332,-0.281289,0.206968,0.754750 -1023,0.554568,-0.281742,0.206903,0.755160 -1024,0.553804,-0.282195,0.206838,0.755569 -1025,0.553039,-0.282649,0.206773,0.755978 -1026,0.552274,-0.283102,0.206707,0.756386 -1027,0.551509,-0.283555,0.206640,0.756792 -1028,0.550743,-0.284009,0.206572,0.757198 -1029,0.549977,-0.284463,0.206504,0.757603 -1030,0.549210,-0.284916,0.206435,0.758008 -1031,0.548443,-0.285370,0.206365,0.758411 -1032,0.547676,-0.285824,0.206294,0.758813 -1033,0.546909,-0.286278,0.206223,0.759215 -1034,0.546141,-0.286732,0.206152,0.759616 -1035,0.545373,-0.287186,0.206079,0.760016 -1036,0.544604,-0.287640,0.206006,0.760415 -1037,0.543835,-0.288094,0.205932,0.760813 -1038,0.543066,-0.288549,0.205858,0.761210 -1039,0.542297,-0.289003,0.205783,0.761607 -1040,0.541527,-0.289458,0.205707,0.762002 -1041,0.540757,-0.289912,0.205630,0.762397 -1042,0.539986,-0.290367,0.205553,0.762791 -1043,0.539215,-0.290821,0.205475,0.763184 -1044,0.538444,-0.291276,0.205396,0.763576 -1045,0.537673,-0.291731,0.205317,0.763967 -1046,0.536901,-0.292186,0.205237,0.764358 -1047,0.536129,-0.292641,0.205157,0.764747 -1048,0.535356,-0.293095,0.205075,0.765136 -1049,0.534583,-0.293551,0.204993,0.765524 -1050,0.533810,-0.294006,0.204910,0.765911 -1051,0.533037,-0.294461,0.204827,0.766297 -1052,0.532263,-0.294916,0.204743,0.766682 -1053,0.531489,-0.295371,0.204658,0.767066 -1054,0.530714,-0.295826,0.204573,0.767450 -1055,0.529939,-0.296282,0.204487,0.767832 -1056,0.529164,-0.296737,0.204400,0.768214 -1057,0.528389,-0.297193,0.204312,0.768595 -1058,0.527613,-0.297648,0.204224,0.768975 -1059,0.526837,-0.298104,0.204135,0.769354 -1060,0.526061,-0.298559,0.204045,0.769732 -1061,0.525284,-0.299015,0.203955,0.770110 -1062,0.524507,-0.299471,0.203864,0.770486 -1063,0.523730,-0.299927,0.203773,0.770862 -1064,0.522952,-0.300382,0.203680,0.771237 -1065,0.522174,-0.300838,0.203587,0.771610 -1066,0.521396,-0.301294,0.203493,0.771984 -1067,0.520617,-0.301750,0.203399,0.772356 -1068,0.519838,-0.302206,0.203304,0.772727 -1069,0.519059,-0.302662,0.203208,0.773097 -1070,0.518280,-0.303118,0.203112,0.773467 -1071,0.517500,-0.303574,0.203014,0.773836 -1072,0.516720,-0.304031,0.202917,0.774203 -1073,0.515940,-0.304487,0.202818,0.774570 -1074,0.515159,-0.304943,0.202719,0.774936 -1075,0.514378,-0.305399,0.202619,0.775301 -1076,0.513597,-0.305856,0.202518,0.775666 -1077,0.512815,-0.306312,0.202417,0.776029 -1078,0.512033,-0.306768,0.202315,0.776392 -1079,0.511251,-0.307225,0.202212,0.776753 -1080,0.510469,-0.307681,0.202109,0.777114 -1081,0.509686,-0.308138,0.202005,0.777474 -1082,0.508903,-0.308594,0.201900,0.777833 -1083,0.508119,-0.309051,0.201794,0.778191 -1084,0.507336,-0.309507,0.201688,0.778548 -1085,0.506552,-0.309964,0.201581,0.778905 -1086,0.505768,-0.310420,0.201474,0.779260 -1087,0.504983,-0.310877,0.201366,0.779615 -1088,0.504198,-0.311334,0.201257,0.779969 -1089,0.503413,-0.311790,0.201147,0.780322 -1090,0.502628,-0.312247,0.201037,0.780674 -1091,0.501842,-0.312704,0.200926,0.781025 -1092,0.501056,-0.313161,0.200814,0.781375 -1093,0.500270,-0.313617,0.200702,0.781724 -1094,0.499484,-0.314074,0.200589,0.782073 -1095,0.498697,-0.314531,0.200475,0.782420 -1096,0.497910,-0.314988,0.200360,0.782767 -1097,0.497122,-0.315445,0.200245,0.783113 -1098,0.496335,-0.315901,0.200129,0.783458 -1099,0.495547,-0.316358,0.200013,0.783802 -1100,0.494759,-0.316815,0.199896,0.784145 -1101,0.493970,-0.317272,0.199778,0.784487 -1102,0.493182,-0.317729,0.199659,0.784829 -1103,0.492393,-0.318186,0.199540,0.785169 -1104,0.491603,-0.318643,0.199420,0.785509 -1105,0.490814,-0.319100,0.199299,0.785848 -1106,0.490024,-0.319557,0.199177,0.786186 -1107,0.489234,-0.320014,0.199055,0.786523 -1108,0.488444,-0.320471,0.198933,0.786859 -1109,0.487653,-0.320928,0.198809,0.787194 -1110,0.486862,-0.321384,0.198685,0.787529 -1111,0.486071,-0.321841,0.198560,0.787862 -1112,0.485280,-0.322298,0.198434,0.788195 -1113,0.484488,-0.322755,0.198308,0.788526 -1114,0.483696,-0.323212,0.198181,0.788857 -1115,0.482904,-0.323669,0.198054,0.789187 -1116,0.482112,-0.324126,0.197925,0.789516 -1117,0.481319,-0.324583,0.197796,0.789844 -1118,0.480526,-0.325040,0.197666,0.790172 -1119,0.479733,-0.325497,0.197536,0.790498 -1120,0.478940,-0.325954,0.197405,0.790824 -1121,0.478146,-0.326411,0.197273,0.791148 -1122,0.477352,-0.326868,0.197140,0.791472 -1123,0.476558,-0.327325,0.197007,0.791795 -1124,0.475764,-0.327782,0.196873,0.792117 -1125,0.474969,-0.328239,0.196739,0.792438 -1126,0.474174,-0.328695,0.196603,0.792758 -1127,0.473379,-0.329152,0.196467,0.793077 -1128,0.472584,-0.329609,0.196331,0.793396 -1129,0.471788,-0.330066,0.196193,0.793713 -1130,0.470992,-0.330523,0.196055,0.794030 -1131,0.470196,-0.330980,0.195916,0.794346 -1132,0.469400,-0.331436,0.195777,0.794661 -1133,0.468603,-0.331893,0.195637,0.794975 -1134,0.467806,-0.332350,0.195496,0.795288 -1135,0.467009,-0.332807,0.195354,0.795600 -1136,0.466212,-0.333263,0.195212,0.795911 -1137,0.465414,-0.333720,0.195069,0.796222 -1138,0.464616,-0.334177,0.194925,0.796531 -1139,0.463818,-0.334633,0.194781,0.796840 -1140,0.463020,-0.335090,0.194636,0.797147 -1141,0.462222,-0.335547,0.194490,0.797454 -1142,0.461423,-0.336003,0.194343,0.797760 -1143,0.460624,-0.336460,0.194196,0.798065 -1144,0.459825,-0.336916,0.194048,0.798370 -1145,0.459025,-0.337373,0.193900,0.798673 -1146,0.458226,-0.337829,0.193751,0.798975 -1147,0.457426,-0.338285,0.193601,0.799277 -1148,0.456626,-0.338742,0.193450,0.799577 -1149,0.455826,-0.339198,0.193299,0.799877 -1150,0.455025,-0.339654,0.193147,0.800176 -1151,0.454224,-0.340111,0.192994,0.800474 -1152,0.453423,-0.340567,0.192841,0.800771 -1153,0.452622,-0.341023,0.192686,0.801067 -1154,0.451821,-0.341479,0.192532,0.801362 -1155,0.451019,-0.341935,0.192376,0.801657 -1156,0.450217,-0.342392,0.192220,0.801950 -1157,0.449415,-0.342848,0.192063,0.802243 -1158,0.448613,-0.343304,0.191905,0.802534 -1159,0.447811,-0.343760,0.191747,0.802825 -1160,0.447008,-0.344215,0.191588,0.803115 -1161,0.446205,-0.344671,0.191428,0.803404 -1162,0.445402,-0.345127,0.191268,0.803692 -1163,0.444599,-0.345583,0.191107,0.803979 -1164,0.443795,-0.346039,0.190945,0.804266 -1165,0.442992,-0.346494,0.190782,0.804551 -1166,0.442188,-0.346950,0.190619,0.804835 -1167,0.441384,-0.347406,0.190455,0.805119 -1168,0.440579,-0.347861,0.190291,0.805402 -1169,0.439775,-0.348317,0.190125,0.805684 -1170,0.438970,-0.348772,0.189959,0.805965 -1171,0.438165,-0.349227,0.189793,0.806245 -1172,0.437360,-0.349683,0.189625,0.806524 -1173,0.436555,-0.350138,0.189457,0.806802 -1174,0.435749,-0.350593,0.189288,0.807079 -1175,0.434944,-0.351048,0.189119,0.807356 -1176,0.434138,-0.351503,0.188949,0.807631 -1177,0.433332,-0.351958,0.188778,0.807906 -1178,0.432525,-0.352413,0.188606,0.808180 -1179,0.431719,-0.352868,0.188434,0.808453 -1180,0.430912,-0.353323,0.188261,0.808725 -1181,0.430105,-0.353778,0.188087,0.808996 -1182,0.429298,-0.354233,0.187913,0.809266 -1183,0.428491,-0.354687,0.187738,0.809535 -1184,0.427684,-0.355142,0.187562,0.809803 -1185,0.426876,-0.355596,0.187385,0.810071 -1186,0.426068,-0.356051,0.187208,0.810337 -1187,0.425260,-0.356505,0.187030,0.810603 -1188,0.424452,-0.356959,0.186852,0.810868 -1189,0.423644,-0.357414,0.186673,0.811132 -1190,0.422835,-0.357868,0.186493,0.811395 -1191,0.422027,-0.358322,0.186312,0.811657 -1192,0.421218,-0.358776,0.186131,0.811918 -1193,0.420409,-0.359230,0.185949,0.812178 -1194,0.419600,-0.359684,0.185766,0.812438 -1195,0.418790,-0.360137,0.185582,0.812696 -1196,0.417981,-0.360591,0.185398,0.812954 -1197,0.417171,-0.361045,0.185213,0.813210 -1198,0.416361,-0.361498,0.185028,0.813466 -1199,0.415551,-0.361952,0.184842,0.813721 -1200,0.414741,-0.362405,0.184655,0.813975 -1201,0.413931,-0.362858,0.184467,0.814228 -1202,0.413120,-0.363311,0.184279,0.814480 -1203,0.412309,-0.363765,0.184090,0.814731 -1204,0.411498,-0.364218,0.183900,0.814982 -1205,0.410687,-0.364671,0.183709,0.815231 -1206,0.409876,-0.365123,0.183518,0.815480 -1207,0.409065,-0.365576,0.183326,0.815728 -1208,0.408253,-0.366029,0.183134,0.815974 -1209,0.407442,-0.366481,0.182941,0.816220 -1210,0.406630,-0.366934,0.182747,0.816465 -1211,0.405818,-0.367386,0.182552,0.816709 -1212,0.405006,-0.367839,0.182357,0.816952 -1213,0.404193,-0.368291,0.182161,0.817195 -1214,0.403381,-0.368743,0.181964,0.817436 -1215,0.402568,-0.369195,0.181767,0.817676 -1216,0.401756,-0.369647,0.181568,0.817916 -1217,0.400943,-0.370099,0.181370,0.818155 -1218,0.400130,-0.370551,0.181170,0.818392 -1219,0.399316,-0.371002,0.180970,0.818629 -1220,0.398503,-0.371454,0.180769,0.818865 -1221,0.397690,-0.371905,0.180567,0.819100 -1222,0.396876,-0.372356,0.180365,0.819334 -1223,0.396062,-0.372808,0.180162,0.819568 -1224,0.395248,-0.373259,0.179958,0.819800 -1225,0.394434,-0.373710,0.179754,0.820031 -1226,0.393620,-0.374161,0.179549,0.820262 -1227,0.392806,-0.374611,0.179343,0.820491 -1228,0.391991,-0.375062,0.179137,0.820720 -1229,0.391176,-0.375513,0.178929,0.820948 -1230,0.390362,-0.375963,0.178722,0.821175 -1231,0.389547,-0.376414,0.178513,0.821401 -1232,0.388732,-0.376864,0.178304,0.821626 -1233,0.387917,-0.377314,0.178094,0.821850 -1234,0.387101,-0.377764,0.177883,0.822073 -1235,0.386286,-0.378214,0.177672,0.822296 -1236,0.385470,-0.378664,0.177460,0.822517 -1237,0.384655,-0.379113,0.177247,0.822738 -1238,0.383839,-0.379563,0.177033,0.822958 -1239,0.383023,-0.380012,0.176819,0.823176 -1240,0.382207,-0.380462,0.176604,0.823394 -1241,0.381391,-0.380911,0.176389,0.823611 -1242,0.380574,-0.381360,0.176173,0.823827 -1243,0.379758,-0.381809,0.175956,0.824042 -1244,0.378941,-0.382257,0.175738,0.824257 -1245,0.378125,-0.382706,0.175520,0.824470 -1246,0.377308,-0.383155,0.175301,0.824682 -1247,0.376491,-0.383603,0.175081,0.824894 -1248,0.375674,-0.384051,0.174860,0.825104 -1249,0.374857,-0.384500,0.174639,0.825314 -1250,0.374040,-0.384948,0.174418,0.825523 -1251,0.373222,-0.385396,0.174195,0.825731 -1252,0.372405,-0.385843,0.173972,0.825938 -1253,0.371587,-0.386291,0.173748,0.826144 -1254,0.370769,-0.386739,0.173523,0.826349 -1255,0.369952,-0.387186,0.173298,0.826553 -1256,0.369134,-0.387633,0.173072,0.826757 -1257,0.368316,-0.388080,0.172845,0.826959 -1258,0.367498,-0.388527,0.172618,0.827161 -1259,0.366679,-0.388974,0.172390,0.827362 -1260,0.365861,-0.389421,0.172161,0.827561 -1261,0.365043,-0.389867,0.171932,0.827760 -1262,0.364224,-0.390314,0.171702,0.827958 -1263,0.363405,-0.390760,0.171471,0.828155 -1264,0.362587,-0.391206,0.171239,0.828351 -1265,0.361768,-0.391652,0.171007,0.828546 -1266,0.360949,-0.392098,0.170774,0.828741 -1267,0.360130,-0.392544,0.170540,0.828934 -1268,0.359311,-0.392989,0.170306,0.829127 -1269,0.358492,-0.393435,0.170071,0.829318 -1270,0.357672,-0.393880,0.169835,0.829509 -1271,0.356853,-0.394325,0.169599,0.829699 -1272,0.356033,-0.394770,0.169362,0.829888 -1273,0.355214,-0.395215,0.169124,0.830076 -1274,0.354394,-0.395659,0.168885,0.830263 -1275,0.353574,-0.396104,0.168646,0.830449 -1276,0.352754,-0.396548,0.168406,0.830634 -1277,0.351934,-0.396992,0.168166,0.830819 -1278,0.351114,-0.397436,0.167925,0.831002 -1279,0.350294,-0.397880,0.167683,0.831185 -1280,0.349474,-0.398324,0.167440,0.831366 -1281,0.348654,-0.398767,0.167197,0.831547 -1282,0.347834,-0.399211,0.166953,0.831727 -1283,0.347013,-0.399654,0.166708,0.831906 -1284,0.346193,-0.400097,0.166462,0.832084 -1285,0.345372,-0.400540,0.166216,0.832261 -1286,0.344551,-0.400983,0.165970,0.832437 -1287,0.343731,-0.401425,0.165722,0.832612 -1288,0.342910,-0.401868,0.165474,0.832787 -1289,0.342089,-0.402310,0.165225,0.832960 -1290,0.341268,-0.402752,0.164975,0.833133 -1291,0.340447,-0.403194,0.164725,0.833304 -1292,0.339626,-0.403636,0.164474,0.833475 -1293,0.338805,-0.404077,0.164223,0.833645 -1294,0.337984,-0.404519,0.163970,0.833814 -1295,0.337162,-0.404960,0.163717,0.833982 -1296,0.336341,-0.405401,0.163463,0.834149 -1297,0.335519,-0.405842,0.163209,0.834315 -1298,0.334698,-0.406282,0.162954,0.834481 -1299,0.333876,-0.406723,0.162698,0.834645 -1300,0.333055,-0.407163,0.162442,0.834808 -1301,0.332233,-0.407603,0.162185,0.834971 -1302,0.331411,-0.408043,0.161927,0.835133 -1303,0.330590,-0.408483,0.161668,0.835294 -1304,0.329768,-0.408923,0.161409,0.835453 -1305,0.328946,-0.409362,0.161149,0.835612 -1306,0.328124,-0.409802,0.160888,0.835770 -1307,0.327302,-0.410241,0.160627,0.835928 -1308,0.326480,-0.410680,0.160365,0.836084 -1309,0.325658,-0.411118,0.160102,0.836239 -1310,0.324836,-0.411557,0.159839,0.836394 -1311,0.324013,-0.411995,0.159575,0.836547 -1312,0.323191,-0.412433,0.159310,0.836700 -1313,0.322369,-0.412871,0.159045,0.836852 -1314,0.321547,-0.413309,0.158779,0.837002 -1315,0.320724,-0.413746,0.158512,0.837152 -1316,0.319902,-0.414184,0.158244,0.837301 -1317,0.319079,-0.414621,0.157976,0.837449 -1318,0.318257,-0.415058,0.157707,0.837597 -1319,0.317434,-0.415495,0.157438,0.837743 -1320,0.316612,-0.415931,0.157167,0.837888 -1321,0.315789,-0.416368,0.156896,0.838033 -1322,0.314966,-0.416804,0.156625,0.838176 -1323,0.314144,-0.417240,0.156352,0.838319 -1324,0.313321,-0.417676,0.156079,0.838461 -1325,0.312498,-0.418111,0.155806,0.838602 -1326,0.311675,-0.418547,0.155531,0.838741 -1327,0.310852,-0.418982,0.155256,0.838880 -1328,0.310030,-0.419417,0.154981,0.839019 -1329,0.309207,-0.419852,0.154704,0.839156 -1330,0.308384,-0.420286,0.154427,0.839292 -1331,0.307561,-0.420721,0.154149,0.839428 -1332,0.306738,-0.421155,0.153871,0.839562 -1333,0.305915,-0.421589,0.153592,0.839696 -1334,0.305092,-0.422022,0.153312,0.839828 -1335,0.304269,-0.422456,0.153031,0.839960 -1336,0.303446,-0.422889,0.152750,0.840091 -1337,0.302622,-0.423322,0.152468,0.840221 -1338,0.301799,-0.423755,0.152185,0.840350 -1339,0.300976,-0.424188,0.151902,0.840478 -1340,0.300153,-0.424620,0.151618,0.840606 -1341,0.299330,-0.425053,0.151334,0.840732 -1342,0.298507,-0.425485,0.151048,0.840857 -1343,0.297683,-0.425916,0.150762,0.840982 -1344,0.296860,-0.426348,0.150475,0.841106 -1345,0.296037,-0.426779,0.150188,0.841228 -1346,0.295214,-0.427211,0.149900,0.841350 -1347,0.294390,-0.427642,0.149611,0.841471 -1348,0.293567,-0.428072,0.149322,0.841591 -1349,0.292744,-0.428503,0.149032,0.841710 -1350,0.291921,-0.428933,0.148741,0.841828 -1351,0.291097,-0.429363,0.148450,0.841946 -1352,0.290274,-0.429793,0.148157,0.842062 -1353,0.289451,-0.430222,0.147865,0.842178 -1354,0.288627,-0.430652,0.147571,0.842292 -1355,0.287804,-0.431081,0.147277,0.842406 -1356,0.286981,-0.431510,0.146982,0.842519 -1357,0.286158,-0.431938,0.146686,0.842631 -1358,0.285334,-0.432367,0.146390,0.842741 -1359,0.284511,-0.432795,0.146093,0.842852 -1360,0.283688,-0.433223,0.145796,0.842961 -1361,0.282864,-0.433651,0.145497,0.843069 -1362,0.282041,-0.434078,0.145198,0.843176 -1363,0.281218,-0.434505,0.144899,0.843283 -1364,0.280394,-0.434932,0.144598,0.843388 -1365,0.279571,-0.435359,0.144297,0.843493 -1366,0.278748,-0.435786,0.143996,0.843597 -1367,0.277925,-0.436212,0.143693,0.843700 -1368,0.277101,-0.436638,0.143390,0.843802 -1369,0.276278,-0.437064,0.143087,0.843903 -1370,0.275455,-0.437489,0.142782,0.844003 -1371,0.274632,-0.437915,0.142477,0.844102 -1372,0.273809,-0.438340,0.142172,0.844200 -1373,0.272986,-0.438765,0.141865,0.844298 -1374,0.272162,-0.439189,0.141558,0.844394 -1375,0.271339,-0.439614,0.141250,0.844490 -1376,0.270516,-0.440038,0.140942,0.844585 -1377,0.269693,-0.440462,0.140633,0.844678 -1378,0.268870,-0.440885,0.140323,0.844771 -1379,0.268047,-0.441308,0.140012,0.844863 -1380,0.267224,-0.441732,0.139701,0.844955 -1381,0.266401,-0.442154,0.139390,0.845045 -1382,0.265578,-0.442577,0.139077,0.845134 -1383,0.264755,-0.442999,0.138764,0.845222 -1384,0.263932,-0.443421,0.138450,0.845310 -1385,0.263109,-0.443843,0.138136,0.845397 -1386,0.262287,-0.444265,0.137820,0.845482 -1387,0.261464,-0.444686,0.137504,0.845567 -1388,0.260641,-0.445107,0.137188,0.845651 -1389,0.259818,-0.445528,0.136871,0.845734 -1390,0.258996,-0.445948,0.136553,0.845816 -1391,0.258173,-0.446368,0.136234,0.845897 -1392,0.257350,-0.446788,0.135915,0.845978 -1393,0.256528,-0.447208,0.135595,0.846057 -1394,0.255705,-0.447628,0.135275,0.846135 -1395,0.254883,-0.448047,0.134953,0.846213 -1396,0.254060,-0.448466,0.134631,0.846290 -1397,0.253238,-0.448884,0.134309,0.846366 -1398,0.252415,-0.449303,0.133986,0.846440 -1399,0.251593,-0.449721,0.133662,0.846514 -1400,0.250771,-0.450139,0.133337,0.846588 -1401,0.249948,-0.450556,0.133012,0.846660 -1402,0.249126,-0.450973,0.132686,0.846731 -1403,0.248304,-0.451390,0.132359,0.846801 -1404,0.247482,-0.451807,0.132032,0.846871 -1405,0.246660,-0.452224,0.131704,0.846940 -1406,0.245838,-0.452640,0.131376,0.847007 -1407,0.245016,-0.453056,0.131046,0.847074 -1408,0.244194,-0.453471,0.130716,0.847140 -1409,0.243372,-0.453887,0.130386,0.847205 -1410,0.242550,-0.454302,0.130054,0.847269 -1411,0.241729,-0.454717,0.129722,0.847332 -1412,0.240907,-0.455131,0.129390,0.847395 -1413,0.240086,-0.455545,0.129057,0.847456 -1414,0.239264,-0.455959,0.128723,0.847517 -1415,0.238442,-0.456373,0.128388,0.847576 -1416,0.237621,-0.456786,0.128053,0.847635 -1417,0.236800,-0.457199,0.127717,0.847693 -1418,0.235978,-0.457612,0.127380,0.847750 -1419,0.235157,-0.458025,0.127043,0.847806 -1420,0.234336,-0.458437,0.126705,0.847861 -1421,0.233515,-0.458849,0.126366,0.847915 -1422,0.232694,-0.459260,0.126027,0.847969 -1423,0.231873,-0.459672,0.125687,0.848021 -1424,0.231052,-0.460083,0.125347,0.848073 -1425,0.230231,-0.460493,0.125005,0.848123 -1426,0.229411,-0.460904,0.124663,0.848173 -1427,0.228590,-0.461314,0.124321,0.848222 -1428,0.227769,-0.461724,0.123978,0.848270 -1429,0.226949,-0.462133,0.123634,0.848317 -1430,0.226128,-0.462543,0.123289,0.848363 -1431,0.225308,-0.462952,0.122944,0.848408 -1432,0.224488,-0.463360,0.122598,0.848453 -1433,0.223668,-0.463769,0.122252,0.848496 -1434,0.222847,-0.464177,0.121904,0.848539 -1435,0.222027,-0.464584,0.121556,0.848581 -1436,0.221208,-0.464992,0.121208,0.848622 -1437,0.220388,-0.465399,0.120859,0.848661 -1438,0.219568,-0.465806,0.120509,0.848700 -1439,0.218748,-0.466212,0.120158,0.848739 -1440,0.217929,-0.466618,0.119807,0.848776 -1441,0.217109,-0.467024,0.119455,0.848812 -1442,0.216290,-0.467430,0.119103,0.848848 -1443,0.215470,-0.467835,0.118750,0.848882 -1444,0.214651,-0.468240,0.118396,0.848916 -1445,0.213832,-0.468645,0.118042,0.848949 -1446,0.213013,-0.469049,0.117686,0.848981 -1447,0.212194,-0.469453,0.117331,0.849012 -1448,0.211375,-0.469857,0.116974,0.849042 -1449,0.210556,-0.470260,0.116617,0.849071 -1450,0.209738,-0.470663,0.116260,0.849099 -1451,0.208919,-0.471066,0.115901,0.849127 -1452,0.208101,-0.471469,0.115542,0.849153 -1453,0.207282,-0.471871,0.115182,0.849179 -1454,0.206464,-0.472273,0.114822,0.849204 -1455,0.205646,-0.472674,0.114461,0.849228 -1456,0.204828,-0.473075,0.114099,0.849251 -1457,0.204010,-0.473476,0.113737,0.849273 -1458,0.203192,-0.473877,0.113374,0.849294 -1459,0.202374,-0.474277,0.113011,0.849314 -1460,0.201557,-0.474677,0.112646,0.849334 -1461,0.200739,-0.475076,0.112281,0.849352 -1462,0.199922,-0.475475,0.111916,0.849370 -1463,0.199105,-0.475874,0.111550,0.849387 -1464,0.198287,-0.476273,0.111183,0.849403 -1465,0.197470,-0.476671,0.110815,0.849418 -1466,0.196653,-0.477069,0.110447,0.849432 -1467,0.195837,-0.477466,0.110078,0.849445 -1468,0.195020,-0.477864,0.109709,0.849457 -1469,0.194203,-0.478260,0.109339,0.849469 -1470,0.193387,-0.478657,0.108968,0.849479 -1471,0.192570,-0.479053,0.108596,0.849489 -1472,0.191754,-0.479449,0.108224,0.849498 -1473,0.190938,-0.479845,0.107852,0.849506 -1474,0.190122,-0.480240,0.107478,0.849513 -1475,0.189306,-0.480635,0.107104,0.849519 -1476,0.188491,-0.481029,0.106730,0.849524 -1477,0.187675,-0.481423,0.106354,0.849528 -1478,0.186859,-0.481817,0.105978,0.849532 -1479,0.186044,-0.482211,0.105602,0.849534 -1480,0.185229,-0.482604,0.105225,0.849536 -1481,0.184414,-0.482997,0.104847,0.849537 -1482,0.183599,-0.483389,0.104468,0.849537 -1483,0.182784,-0.483781,0.104089,0.849536 -1484,0.181969,-0.484173,0.103709,0.849534 -1485,0.181155,-0.484564,0.103329,0.849531 -1486,0.180340,-0.484955,0.102948,0.849528 -1487,0.179526,-0.485346,0.102566,0.849523 -1488,0.178712,-0.485736,0.102184,0.849518 -1489,0.177898,-0.486126,0.101801,0.849512 -1490,0.177084,-0.486516,0.101417,0.849505 -1491,0.176270,-0.486905,0.101033,0.849497 -1492,0.175457,-0.487294,0.100648,0.849488 -1493,0.174643,-0.487683,0.100262,0.849478 -1494,0.173830,-0.488071,0.099876,0.849467 -1495,0.173017,-0.488459,0.099489,0.849456 -1496,0.172204,-0.488846,0.099102,0.849443 -1497,0.171391,-0.489233,0.098713,0.849430 -1498,0.170578,-0.489620,0.098325,0.849416 -1499,0.169766,-0.490007,0.097935,0.849401 -1500,0.168953,-0.490393,0.097545,0.849385 -1501,0.168141,-0.490778,0.097154,0.849368 -1502,0.167329,-0.491164,0.096763,0.849350 -1503,0.166517,-0.491549,0.096371,0.849332 -1504,0.165705,-0.491933,0.095979,0.849312 -1505,0.164893,-0.492317,0.095585,0.849292 -1506,0.164082,-0.492701,0.095191,0.849271 -1507,0.163271,-0.493085,0.094797,0.849249 -1508,0.162459,-0.493468,0.094402,0.849226 -1509,0.161648,-0.493851,0.094006,0.849202 -1510,0.160838,-0.494233,0.093610,0.849177 -1511,0.160027,-0.494615,0.093213,0.849152 -1512,0.159216,-0.494997,0.092815,0.849125 -1513,0.158406,-0.495378,0.092417,0.849098 -1514,0.157596,-0.495759,0.092018,0.849070 -1515,0.156786,-0.496139,0.091618,0.849041 -1516,0.155976,-0.496519,0.091218,0.849011 -1517,0.155166,-0.496899,0.090817,0.848980 -1518,0.154357,-0.497279,0.090416,0.848948 -1519,0.153547,-0.497658,0.090014,0.848916 -1520,0.152738,-0.498036,0.089611,0.848882 -1521,0.151929,-0.498414,0.089208,0.848848 -1522,0.151120,-0.498792,0.088804,0.848813 -1523,0.150311,-0.499170,0.088399,0.848777 -1524,0.149503,-0.499547,0.087994,0.848740 -1525,0.148695,-0.499924,0.087588,0.848702 -1526,0.147886,-0.500300,0.087181,0.848663 -1527,0.147079,-0.500676,0.086774,0.848624 -1528,0.146271,-0.501051,0.086366,0.848583 -1529,0.145463,-0.501426,0.085958,0.848542 -1530,0.144656,-0.501801,0.085549,0.848500 -1531,0.143848,-0.502176,0.085140,0.848457 -1532,0.143041,-0.502550,0.084729,0.848413 -1533,0.142234,-0.502923,0.084318,0.848368 -1534,0.141428,-0.503296,0.083907,0.848322 -1535,0.140621,-0.503669,0.083495,0.848276 -1536,0.139815,-0.504042,0.083082,0.848228 -1537,0.139009,-0.504414,0.082669,0.848180 -1538,0.138203,-0.504785,0.082255,0.848131 -1539,0.137397,-0.505157,0.081840,0.848081 -1540,0.136592,-0.505527,0.081425,0.848030 -1541,0.135786,-0.505898,0.081009,0.847978 -1542,0.134981,-0.506268,0.080593,0.847926 -1543,0.134176,-0.506637,0.080176,0.847872 -1544,0.133371,-0.507007,0.079758,0.847818 -1545,0.132567,-0.507375,0.079339,0.847763 -1546,0.131762,-0.507744,0.078921,0.847707 -1547,0.130958,-0.508112,0.078501,0.847650 -1548,0.130154,-0.508480,0.078081,0.847592 -1549,0.129350,-0.508847,0.077660,0.847533 -1550,0.128547,-0.509214,0.077239,0.847474 -1551,0.127743,-0.509580,0.076817,0.847413 -1552,0.126940,-0.509946,0.076394,0.847352 -1553,0.126137,-0.510311,0.075971,0.847290 -1554,0.125334,-0.510677,0.075547,0.847227 -1555,0.124532,-0.511041,0.075122,0.847163 -1556,0.123729,-0.511406,0.074697,0.847098 -1557,0.122927,-0.511770,0.074271,0.847033 -1558,0.122125,-0.512133,0.073845,0.846966 -1559,0.121323,-0.512496,0.073418,0.846899 -1560,0.120522,-0.512859,0.072991,0.846831 -1561,0.119721,-0.513221,0.072562,0.846762 -1562,0.118919,-0.513583,0.072134,0.846692 -1563,0.118119,-0.513945,0.071704,0.846621 -1564,0.117318,-0.514306,0.071274,0.846550 -1565,0.116517,-0.514666,0.070844,0.846477 -1566,0.115717,-0.515026,0.070412,0.846404 -1567,0.114917,-0.515386,0.069981,0.846330 -1568,0.114117,-0.515745,0.069548,0.846255 -1569,0.113318,-0.516104,0.069115,0.846179 -1570,0.112518,-0.516463,0.068682,0.846102 -1571,0.111719,-0.516821,0.068247,0.846024 -1572,0.110920,-0.517179,0.067812,0.845946 -1573,0.110122,-0.517536,0.067377,0.845867 -1574,0.109323,-0.517893,0.066941,0.845786 -1575,0.108525,-0.518249,0.066504,0.845705 -1576,0.107727,-0.518605,0.066067,0.845623 -1577,0.106929,-0.518960,0.065629,0.845541 -1578,0.106132,-0.519315,0.065190,0.845457 -1579,0.105334,-0.519670,0.064751,0.845373 -1580,0.104537,-0.520024,0.064312,0.845287 -1581,0.103740,-0.520378,0.063871,0.845201 -1582,0.102944,-0.520731,0.063430,0.845114 -1583,0.102147,-0.521084,0.062989,0.845026 -1584,0.101351,-0.521437,0.062547,0.844938 -1585,0.100555,-0.521789,0.062104,0.844848 -1586,0.099759,-0.522140,0.061661,0.844758 -1587,0.098964,-0.522492,0.061217,0.844666 -1588,0.098169,-0.522842,0.060772,0.844574 -1589,0.097374,-0.523193,0.060327,0.844481 -1590,0.096579,-0.523542,0.059882,0.844387 -1591,0.095785,-0.523892,0.059435,0.844293 -1592,0.094990,-0.524241,0.058988,0.844197 -1593,0.094196,-0.524589,0.058541,0.844101 -1594,0.093403,-0.524937,0.058093,0.844004 -1595,0.092609,-0.525285,0.057644,0.843906 -1596,0.091816,-0.525632,0.057195,0.843807 -1597,0.091023,-0.525979,0.056745,0.843707 -1598,0.090230,-0.526325,0.056294,0.843606 -1599,0.089437,-0.526671,0.055843,0.843505 -1600,0.088645,-0.527016,0.055392,0.843402 -1601,0.087853,-0.527361,0.054939,0.843299 -1602,0.087061,-0.527706,0.054487,0.843195 -1603,0.086270,-0.528050,0.054033,0.843090 -1604,0.085479,-0.528393,0.053579,0.842985 -1605,0.084688,-0.528736,0.053124,0.842878 -1606,0.083897,-0.529079,0.052669,0.842771 -1607,0.083106,-0.529421,0.052213,0.842663 -1608,0.082316,-0.529763,0.051757,0.842553 -1609,0.081526,-0.530104,0.051300,0.842444 -1610,0.080736,-0.530445,0.050842,0.842333 -1611,0.079947,-0.530786,0.050384,0.842221 -1612,0.079158,-0.531126,0.049926,0.842109 -1613,0.078369,-0.531465,0.049466,0.841995 -1614,0.077580,-0.531804,0.049006,0.841881 -1615,0.076792,-0.532143,0.048546,0.841766 -1616,0.076004,-0.532481,0.048085,0.841651 -1617,0.075216,-0.532818,0.047623,0.841534 -1618,0.074428,-0.533155,0.047161,0.841416 -1619,0.073641,-0.533492,0.046698,0.841298 -1620,0.072854,-0.533828,0.046235,0.841179 -1621,0.072067,-0.534164,0.045771,0.841059 -1622,0.071281,-0.534499,0.045306,0.840938 -1623,0.070494,-0.534834,0.044841,0.840816 -1624,0.069709,-0.535169,0.044375,0.840694 -1625,0.068923,-0.535502,0.043909,0.840571 -1626,0.068137,-0.535836,0.043442,0.840446 -1627,0.067352,-0.536169,0.042974,0.840321 -1628,0.066567,-0.536501,0.042506,0.840195 -1629,0.065783,-0.536833,0.042038,0.840069 -1630,0.064999,-0.537165,0.041568,0.839941 -1631,0.064215,-0.537496,0.041099,0.839813 -1632,0.063431,-0.537826,0.040628,0.839684 -1633,0.062647,-0.538157,0.040157,0.839554 -1634,0.061864,-0.538486,0.039686,0.839423 -1635,0.061081,-0.538815,0.039214,0.839291 -1636,0.060299,-0.539144,0.038741,0.839159 -1637,0.059517,-0.539472,0.038268,0.839025 -1638,0.058735,-0.539800,0.037794,0.838891 -1639,0.057953,-0.540127,0.037319,0.838756 -1640,0.057171,-0.540454,0.036844,0.838620 -1641,0.056390,-0.540780,0.036369,0.838483 -1642,0.055609,-0.541106,0.035893,0.838346 -1643,0.054829,-0.541431,0.035416,0.838208 -1644,0.054049,-0.541756,0.034939,0.838068 -1645,0.053269,-0.542080,0.034461,0.837928 -1646,0.052489,-0.542404,0.033983,0.837788 -1647,0.051710,-0.542727,0.033504,0.837646 -1648,0.050930,-0.543050,0.033024,0.837503 -1649,0.050152,-0.543373,0.032544,0.837360 -1650,0.049373,-0.543694,0.032063,0.837216 -1651,0.048595,-0.544016,0.031582,0.837071 -1652,0.047817,-0.544337,0.031100,0.836925 -1653,0.047040,-0.544657,0.030618,0.836779 -1654,0.046262,-0.544977,0.030135,0.836631 -1655,0.045485,-0.545296,0.029652,0.836483 -1656,0.044709,-0.545615,0.029167,0.836334 -1657,0.043932,-0.545934,0.028683,0.836184 -1658,0.043156,-0.546252,0.028198,0.836033 -1659,0.042381,-0.546569,0.027712,0.835882 -1660,0.041605,-0.546886,0.027226,0.835729 -1661,0.040830,-0.547202,0.026739,0.835576 -1662,0.040055,-0.547518,0.026251,0.835422 -1663,0.039281,-0.547834,0.025763,0.835267 -1664,0.038506,-0.548149,0.025275,0.835112 -1665,0.037733,-0.548463,0.024786,0.834955 -1666,0.036959,-0.548777,0.024296,0.834798 -1667,0.036186,-0.549090,0.023806,0.834640 -1668,0.035413,-0.549403,0.023315,0.834481 -1669,0.034640,-0.549716,0.022824,0.834321 -1670,0.033868,-0.550028,0.022332,0.834161 -1671,0.033096,-0.550339,0.021839,0.833999 -1672,0.032324,-0.550650,0.021346,0.833837 -1673,0.031553,-0.550960,0.020853,0.833674 -1674,0.030782,-0.551270,0.020359,0.833510 -1675,0.030011,-0.551579,0.019864,0.833346 -1676,0.029241,-0.551888,0.019369,0.833180 -1677,0.028471,-0.552197,0.018873,0.833014 -1678,0.027701,-0.552504,0.018377,0.832847 -1679,0.026932,-0.552812,0.017880,0.832679 -1680,0.026163,-0.553118,0.017382,0.832510 -1681,0.025394,-0.553425,0.016884,0.832341 -1682,0.024626,-0.553731,0.016386,0.832170 -1683,0.023857,-0.554036,0.015887,0.831999 -1684,0.023090,-0.554340,0.015387,0.831827 -1685,0.022322,-0.554645,0.014887,0.831655 -1686,0.021555,-0.554948,0.014386,0.831481 -1687,0.020789,-0.555252,0.013885,0.831307 -1688,0.020022,-0.555554,0.013383,0.831132 -1689,0.019256,-0.555856,0.012881,0.830956 -1690,0.018490,-0.556158,0.012378,0.830779 -1691,0.017725,-0.556459,0.011875,0.830601 -1692,0.016960,-0.556760,0.011371,0.830423 -1693,0.016195,-0.557060,0.010866,0.830244 -1694,0.015431,-0.557359,0.010361,0.830064 -1695,0.014667,-0.557658,0.009856,0.829883 -1696,0.013903,-0.557956,0.009350,0.829701 -1697,0.013140,-0.558254,0.008843,0.829519 -1698,0.012377,-0.558552,0.008336,0.829335 -1699,0.011614,-0.558849,0.007828,0.829151 -1700,0.010852,-0.559145,0.007320,0.828967 -1701,0.010090,-0.559441,0.006811,0.828781 -1702,0.009328,-0.559736,0.006301,0.828594 -1703,0.008567,-0.560031,0.005792,0.828407 -1704,0.007806,-0.560325,0.005281,0.828219 -1705,0.007045,-0.560619,0.004770,0.828030 -1706,0.006285,-0.560912,0.004259,0.827841 -1707,0.005525,-0.561204,0.003747,0.827650 -1708,0.004766,-0.561497,0.003234,0.827459 -1709,0.004007,-0.561788,0.002721,0.827267 -1710,0.003248,-0.562079,0.002207,0.827074 -1711,0.002489,-0.562370,0.001693,0.826881 -1712,0.001731,-0.562659,0.001178,0.826686 -1713,0.000974,-0.562949,0.000663,0.826491 -1714,0.000216,-0.563238,0.000147,0.826295 -1715,-0.000541,-0.563526,-0.000369,0.826098 -1716,-0.001297,-0.563814,-0.000886,0.825901 -1717,-0.002054,-0.564101,-0.001403,0.825702 -1718,-0.002810,-0.564388,-0.001921,0.825503 -1719,-0.003565,-0.564674,-0.002439,0.825303 -1720,-0.004320,-0.564959,-0.002958,0.825102 -1721,-0.005075,-0.565244,-0.003478,0.824901 -1722,-0.005830,-0.565529,-0.003998,0.824698 -1723,-0.006584,-0.565813,-0.004518,0.824495 -1724,-0.007337,-0.566096,-0.005039,0.824291 -1725,-0.008091,-0.566379,-0.005561,0.824086 -1726,-0.008844,-0.566661,-0.006083,0.823881 -1727,-0.009596,-0.566943,-0.006605,0.823675 -1728,-0.010349,-0.567224,-0.007128,0.823468 -1729,-0.011100,-0.567505,-0.007652,0.823260 -1730,-0.011852,-0.567785,-0.008176,0.823051 -1731,-0.012603,-0.568064,-0.008701,0.822842 -1732,-0.013354,-0.568343,-0.009226,0.822631 -1733,-0.014104,-0.568622,-0.009752,0.822420 -1734,-0.014854,-0.568900,-0.010278,0.822209 -1735,-0.015604,-0.569177,-0.010805,0.821996 -1736,-0.016353,-0.569454,-0.011332,0.821783 -1737,-0.017102,-0.569730,-0.011860,0.821568 -1738,-0.017850,-0.570006,-0.012388,0.821353 -1739,-0.018598,-0.570281,-0.012917,0.821138 -1740,-0.019346,-0.570555,-0.013446,0.820921 -1741,-0.020093,-0.570829,-0.013976,0.820704 -1742,-0.020840,-0.571103,-0.014506,0.820486 -1743,-0.021587,-0.571375,-0.015037,0.820267 -1744,-0.022333,-0.571648,-0.015568,0.820047 -1745,-0.023079,-0.571919,-0.016100,0.819827 -1746,-0.023824,-0.572190,-0.016632,0.819606 -1747,-0.024569,-0.572461,-0.017165,0.819384 -1748,-0.025314,-0.572731,-0.017699,0.819161 -1749,-0.026058,-0.573000,-0.018233,0.818938 -1750,-0.026802,-0.573269,-0.018767,0.818713 -1751,-0.027545,-0.573538,-0.019302,0.818488 -1752,-0.028288,-0.573805,-0.019837,0.818263 -1753,-0.029031,-0.574073,-0.020373,0.818036 -1754,-0.029773,-0.574339,-0.020909,0.817809 -1755,-0.030515,-0.574605,-0.021446,0.817580 -1756,-0.031257,-0.574871,-0.021984,0.817352 -1757,-0.031998,-0.575135,-0.022522,0.817122 -1758,-0.032738,-0.575400,-0.023060,0.816891 -1759,-0.033479,-0.575664,-0.023599,0.816660 -1760,-0.034218,-0.575927,-0.024138,0.816428 -1761,-0.034958,-0.576189,-0.024678,0.816195 -1762,-0.035697,-0.576451,-0.025219,0.815962 -1763,-0.036436,-0.576713,-0.025760,0.815727 -1764,-0.037174,-0.576974,-0.026301,0.815492 -1765,-0.037912,-0.577234,-0.026843,0.815257 -1766,-0.038649,-0.577494,-0.027385,0.815020 -1767,-0.039386,-0.577753,-0.027928,0.814783 -1768,-0.040123,-0.578011,-0.028472,0.814544 -1769,-0.040859,-0.578269,-0.029016,0.814306 -1770,-0.041595,-0.578526,-0.029560,0.814066 -1771,-0.042330,-0.578783,-0.030105,0.813825 -1772,-0.043065,-0.579039,-0.030650,0.813584 -1773,-0.043800,-0.579295,-0.031196,0.813342 -1774,-0.044534,-0.579550,-0.031742,0.813100 -1775,-0.045268,-0.579805,-0.032289,0.812856 -1776,-0.046001,-0.580058,-0.032837,0.812612 -1777,-0.046734,-0.580312,-0.033384,0.812367 -1778,-0.047467,-0.580564,-0.033933,0.812121 -1779,-0.048199,-0.580816,-0.034481,0.811874 -1780,-0.048930,-0.581068,-0.035031,0.811627 -1781,-0.049662,-0.581319,-0.035580,0.811379 -1782,-0.050392,-0.581569,-0.036131,0.811130 -1783,-0.051123,-0.581819,-0.036681,0.810881 -1784,-0.051853,-0.582068,-0.037233,0.810630 -1785,-0.052582,-0.582317,-0.037784,0.810379 -1786,-0.053312,-0.582565,-0.038336,0.810128 -1787,-0.054040,-0.582812,-0.038889,0.809875 -1788,-0.054769,-0.583059,-0.039442,0.809622 -1789,-0.055496,-0.583305,-0.039996,0.809368 -1790,-0.056224,-0.583550,-0.040550,0.809113 -1791,-0.056951,-0.583795,-0.041105,0.808857 -1792,-0.057678,-0.584040,-0.041660,0.808601 -1793,-0.058404,-0.584284,-0.042215,0.808344 -1794,-0.059129,-0.584527,-0.042771,0.808086 -1795,-0.059855,-0.584769,-0.043328,0.807827 -1796,-0.060580,-0.585011,-0.043885,0.807568 -1797,-0.061304,-0.585253,-0.044442,0.807308 -1798,-0.062028,-0.585494,-0.045000,0.807047 -1799,-0.062752,-0.585734,-0.045558,0.806785 -1800,-0.063475,-0.585973,-0.046117,0.806523 -1801,-0.064197,-0.586212,-0.046676,0.806260 -1802,-0.064920,-0.586451,-0.047236,0.805996 -1803,-0.065642,-0.586688,-0.047796,0.805732 -1804,-0.066363,-0.586926,-0.048357,0.805466 -1805,-0.067084,-0.587162,-0.048918,0.805200 -1806,-0.067804,-0.587398,-0.049480,0.804933 -1807,-0.068524,-0.587633,-0.050042,0.804666 -1808,-0.069244,-0.587868,-0.050605,0.804398 -1809,-0.069963,-0.588102,-0.051168,0.804129 -1810,-0.070682,-0.588336,-0.051731,0.803859 -1811,-0.071400,-0.588569,-0.052295,0.803588 -1812,-0.072118,-0.588801,-0.052860,0.803317 -1813,-0.072836,-0.589033,-0.053425,0.803045 -1814,-0.073552,-0.589264,-0.053990,0.802772 -1815,-0.074269,-0.589494,-0.054556,0.802499 -1816,-0.074985,-0.589724,-0.055122,0.802225 -1817,-0.075701,-0.589953,-0.055689,0.801950 -1818,-0.076416,-0.590182,-0.056256,0.801674 -1819,-0.077131,-0.590410,-0.056824,0.801398 -1820,-0.077845,-0.590637,-0.057392,0.801121 -1821,-0.078559,-0.590864,-0.057961,0.800843 -1822,-0.079272,-0.591090,-0.058530,0.800564 -1823,-0.079985,-0.591315,-0.059099,0.800285 -1824,-0.080697,-0.591540,-0.059669,0.800005 -1825,-0.081409,-0.591765,-0.060240,0.799724 -1826,-0.082121,-0.591988,-0.060811,0.799442 -1827,-0.082832,-0.592211,-0.061382,0.799160 -1828,-0.083542,-0.592434,-0.061954,0.798877 -1829,-0.084253,-0.592655,-0.062526,0.798593 -1830,-0.084962,-0.592877,-0.063099,0.798309 -1831,-0.085672,-0.593097,-0.063672,0.798024 -1832,-0.086380,-0.593317,-0.064245,0.797738 -1833,-0.087089,-0.593536,-0.064819,0.797451 -1834,-0.087796,-0.593755,-0.065394,0.797164 -1835,-0.088504,-0.593973,-0.065969,0.796876 -1836,-0.089211,-0.594190,-0.066544,0.796587 -1837,-0.089917,-0.594407,-0.067120,0.796298 -1838,-0.090623,-0.594623,-0.067696,0.796007 -1839,-0.091329,-0.594839,-0.068273,0.795716 -1840,-0.092034,-0.595054,-0.068850,0.795425 -1841,-0.092738,-0.595268,-0.069428,0.795132 -1842,-0.093442,-0.595482,-0.070006,0.794839 -1843,-0.094146,-0.595695,-0.070584,0.794545 -1844,-0.094849,-0.595907,-0.071163,0.794251 -1845,-0.095552,-0.596119,-0.071742,0.793956 -1846,-0.096254,-0.596330,-0.072322,0.793660 -1847,-0.096956,-0.596540,-0.072902,0.793363 -1848,-0.097657,-0.596750,-0.073483,0.793065 -1849,-0.098358,-0.596959,-0.074064,0.792767 -1850,-0.099058,-0.597168,-0.074646,0.792468 -1851,-0.099758,-0.597376,-0.075228,0.792169 -1852,-0.100458,-0.597583,-0.075810,0.791869 -1853,-0.101156,-0.597790,-0.076393,0.791568 -1854,-0.101855,-0.597996,-0.076976,0.791266 -1855,-0.102553,-0.598201,-0.077560,0.790963 -1856,-0.103250,-0.598406,-0.078144,0.790660 -1857,-0.103947,-0.598610,-0.078729,0.790356 -1858,-0.104644,-0.598813,-0.079314,0.790052 -1859,-0.105340,-0.599016,-0.079899,0.789747 -1860,-0.106035,-0.599218,-0.080485,0.789441 -1861,-0.106730,-0.599420,-0.081071,0.789134 -1862,-0.107425,-0.599620,-0.081658,0.788827 -1863,-0.108119,-0.599821,-0.082245,0.788518 -1864,-0.108812,-0.600020,-0.082833,0.788210 -1865,-0.109505,-0.600219,-0.083421,0.787900 -1866,-0.110198,-0.600417,-0.084009,0.787590 -1867,-0.110890,-0.600615,-0.084598,0.787279 -1868,-0.111582,-0.600812,-0.085187,0.786967 -1869,-0.112273,-0.601008,-0.085777,0.786655 -1870,-0.112963,-0.601204,-0.086367,0.786342 -1871,-0.113654,-0.601399,-0.086958,0.786028 -1872,-0.114343,-0.601593,-0.087549,0.785714 -1873,-0.115032,-0.601787,-0.088140,0.785399 -1874,-0.115721,-0.601980,-0.088732,0.785083 -1875,-0.116409,-0.602173,-0.089324,0.784766 -1876,-0.117097,-0.602364,-0.089916,0.784449 -1877,-0.117784,-0.602555,-0.090509,0.784131 -1878,-0.118471,-0.602746,-0.091103,0.783813 -1879,-0.119157,-0.602936,-0.091697,0.783493 -1880,-0.119842,-0.603125,-0.092291,0.783173 -1881,-0.120528,-0.603313,-0.092886,0.782853 -1882,-0.121212,-0.603501,-0.093481,0.782531 -1883,-0.121896,-0.603688,-0.094076,0.782209 -1884,-0.122580,-0.603875,-0.094672,0.781887 -1885,-0.123263,-0.604061,-0.095269,0.781563 -1886,-0.123946,-0.604246,-0.095865,0.781239 -1887,-0.124628,-0.604430,-0.096462,0.780914 -1888,-0.125310,-0.604614,-0.097060,0.780589 -1889,-0.125991,-0.604797,-0.097658,0.780262 -1890,-0.126671,-0.604980,-0.098256,0.779935 -1891,-0.127351,-0.605162,-0.098855,0.779608 -1892,-0.128031,-0.605343,-0.099454,0.779280 -1893,-0.128710,-0.605524,-0.100054,0.778951 -1894,-0.129389,-0.605704,-0.100654,0.778621 -1895,-0.130067,-0.605883,-0.101254,0.778291 -1896,-0.130744,-0.606061,-0.101855,0.777960 -1897,-0.131421,-0.606239,-0.102456,0.777628 -1898,-0.132098,-0.606416,-0.103058,0.777296 -1899,-0.132774,-0.606593,-0.103660,0.776963 -1900,-0.133449,-0.606769,-0.104262,0.776629 -1901,-0.134124,-0.606944,-0.104865,0.776294 -1902,-0.134799,-0.607119,-0.105468,0.775959 -1903,-0.135473,-0.607293,-0.106071,0.775623 -1904,-0.136146,-0.607466,-0.106675,0.775287 -1905,-0.136819,-0.607638,-0.107280,0.774950 -1906,-0.137491,-0.607810,-0.107884,0.774612 -1907,-0.138163,-0.607981,-0.108490,0.774274 -1908,-0.138834,-0.608152,-0.109095,0.773934 -1909,-0.139505,-0.608322,-0.109701,0.773595 -1910,-0.140176,-0.608491,-0.110307,0.773254 -1911,-0.140845,-0.608659,-0.110914,0.772913 -1912,-0.141515,-0.608827,-0.111521,0.772571 -1913,-0.142183,-0.608994,-0.112129,0.772229 -1914,-0.142851,-0.609161,-0.112736,0.771885 -1915,-0.143519,-0.609327,-0.113345,0.771541 -1916,-0.144186,-0.609492,-0.113953,0.771197 -1917,-0.144853,-0.609656,-0.114562,0.770852 -1918,-0.145519,-0.609820,-0.115172,0.770506 -1919,-0.146184,-0.609983,-0.115781,0.770159 -1920,-0.146850,-0.610146,-0.116391,0.769812 -1921,-0.147514,-0.610307,-0.117002,0.769464 -1922,-0.148178,-0.610468,-0.117613,0.769116 -1923,-0.148841,-0.610629,-0.118224,0.768766 -1924,-0.149504,-0.610788,-0.118836,0.768417 -1925,-0.150167,-0.610947,-0.119448,0.768066 -1926,-0.150828,-0.611106,-0.120060,0.767715 -1927,-0.151490,-0.611263,-0.120673,0.767363 -1928,-0.152150,-0.611420,-0.121286,0.767011 -1929,-0.152811,-0.611577,-0.121900,0.766657 -1930,-0.153470,-0.611732,-0.122514,0.766304 -1931,-0.154129,-0.611887,-0.123128,0.765949 -1932,-0.154788,-0.612041,-0.123743,0.765594 -1933,-0.155446,-0.612195,-0.124358,0.765238 -1934,-0.156104,-0.612348,-0.124973,0.764882 -1935,-0.156761,-0.612500,-0.125589,0.764525 -1936,-0.157417,-0.612651,-0.126205,0.764167 -1937,-0.158073,-0.612802,-0.126822,0.763808 -1938,-0.158728,-0.612952,-0.127438,0.763449 -1939,-0.159383,-0.613101,-0.128056,0.763090 -1940,-0.160037,-0.613250,-0.128673,0.762729 -1941,-0.160691,-0.613398,-0.129291,0.762368 -1942,-0.161344,-0.613545,-0.129910,0.762006 -1943,-0.161997,-0.613692,-0.130528,0.761644 -1944,-0.162649,-0.613838,-0.131147,0.761281 -1945,-0.163300,-0.613983,-0.131767,0.760917 -1946,-0.163951,-0.614128,-0.132386,0.760553 -1947,-0.164602,-0.614271,-0.133007,0.760188 -1948,-0.165251,-0.614415,-0.133627,0.759823 -1949,-0.165901,-0.614557,-0.134248,0.759457 -1950,-0.166549,-0.614699,-0.134869,0.759090 -1951,-0.167198,-0.614840,-0.135491,0.758722 -1952,-0.167845,-0.614980,-0.136113,0.758354 -1953,-0.168492,-0.615120,-0.136735,0.757985 -1954,-0.169139,-0.615259,-0.137357,0.757616 -1955,-0.169785,-0.615397,-0.137980,0.757246 -1956,-0.170430,-0.615534,-0.138604,0.756875 -1957,-0.171075,-0.615671,-0.139227,0.756504 -1958,-0.171720,-0.615807,-0.139852,0.756132 -1959,-0.172363,-0.615943,-0.140476,0.755759 -1960,-0.173006,-0.616078,-0.141101,0.755386 -1961,-0.173649,-0.616212,-0.141726,0.755012 -1962,-0.174291,-0.616345,-0.142351,0.754637 -1963,-0.174933,-0.616478,-0.142977,0.754262 -1964,-0.175574,-0.616610,-0.143603,0.753886 -1965,-0.176214,-0.616741,-0.144229,0.753510 -1966,-0.176854,-0.616871,-0.144856,0.753133 -1967,-0.177493,-0.617001,-0.145483,0.752755 -1968,-0.178132,-0.617130,-0.146111,0.752377 -1969,-0.178770,-0.617259,-0.146739,0.751998 -1970,-0.179407,-0.617386,-0.147367,0.751618 -1971,-0.180044,-0.617513,-0.147995,0.751238 -1972,-0.180681,-0.617640,-0.148624,0.750857 -1973,-0.181317,-0.617765,-0.149253,0.750476 -1974,-0.181952,-0.617890,-0.149883,0.750094 -1975,-0.182587,-0.618014,-0.150513,0.749711 -1976,-0.183221,-0.618138,-0.151143,0.749328 -1977,-0.183854,-0.618260,-0.151773,0.748944 -1978,-0.184487,-0.618382,-0.152404,0.748559 -1979,-0.185120,-0.618504,-0.153036,0.748174 -1980,-0.185752,-0.618624,-0.153667,0.747788 -1981,-0.186383,-0.618744,-0.154299,0.747402 -1982,-0.187013,-0.618863,-0.154931,0.747015 -1983,-0.187644,-0.618982,-0.155564,0.746627 -1984,-0.188273,-0.619099,-0.156196,0.746239 -1985,-0.188902,-0.619216,-0.156830,0.745850 -1986,-0.189531,-0.619333,-0.157463,0.745460 -1987,-0.190158,-0.619448,-0.158097,0.745070 -1988,-0.190786,-0.619563,-0.158731,0.744679 -1989,-0.191412,-0.619677,-0.159365,0.744288 -1990,-0.192038,-0.619791,-0.160000,0.743896 -1991,-0.192664,-0.619903,-0.160635,0.743503 -1992,-0.193289,-0.620015,-0.161271,0.743110 -1993,-0.193913,-0.620127,-0.161907,0.742716 -1994,-0.194537,-0.620237,-0.162543,0.742322 -1995,-0.195160,-0.620347,-0.163179,0.741927 -1996,-0.195782,-0.620456,-0.163816,0.741531 -1997,-0.196404,-0.620564,-0.164453,0.741135 -1998,-0.197026,-0.620672,-0.165090,0.740738 -1999,-0.197647,-0.620779,-0.165728,0.740340 -2000,-0.198267,-0.620885,-0.166366,0.739942 -2001,-0.198887,-0.620991,-0.167004,0.739543 -2002,-0.199506,-0.621095,-0.167643,0.739144 -2003,-0.200124,-0.621199,-0.168281,0.738744 -2004,-0.200742,-0.621303,-0.168921,0.738344 -2005,-0.201359,-0.621405,-0.169560,0.737943 -2006,-0.201976,-0.621507,-0.170200,0.737541 -2007,-0.202592,-0.621608,-0.170840,0.737139 -2008,-0.203208,-0.621709,-0.171481,0.736736 -2009,-0.203822,-0.621808,-0.172121,0.736332 -2010,-0.204437,-0.621907,-0.172762,0.735928 -2011,-0.205050,-0.622006,-0.173404,0.735523 -2012,-0.205664,-0.622103,-0.174045,0.735118 -2013,-0.206276,-0.622200,-0.174687,0.734712 -2014,-0.206888,-0.622296,-0.175330,0.734306 -2015,-0.207499,-0.622391,-0.175972,0.733898 -2016,-0.208110,-0.622486,-0.176615,0.733491 -2017,-0.208720,-0.622580,-0.177258,0.733083 -2018,-0.209330,-0.622673,-0.177902,0.732674 -2019,-0.209939,-0.622765,-0.178546,0.732264 -2020,-0.210547,-0.622857,-0.179190,0.731854 -2021,-0.211155,-0.622948,-0.179834,0.731444 -2022,-0.211762,-0.623038,-0.180479,0.731032 -2023,-0.212369,-0.623127,-0.181124,0.730620 -2024,-0.212975,-0.623216,-0.181769,0.730208 -2025,-0.213580,-0.623304,-0.182414,0.729795 -2026,-0.214185,-0.623391,-0.183060,0.729382 -2027,-0.214789,-0.623478,-0.183706,0.728967 -2028,-0.215392,-0.623563,-0.184353,0.728553 -2029,-0.215995,-0.623648,-0.184999,0.728137 -2030,-0.216597,-0.623733,-0.185646,0.727721 -2031,-0.217199,-0.623816,-0.186294,0.727305 -2032,-0.217800,-0.623899,-0.186941,0.726888 -2033,-0.218401,-0.623981,-0.187589,0.726470 -2034,-0.219001,-0.624062,-0.188237,0.726052 -2035,-0.219600,-0.624143,-0.188886,0.725633 -2036,-0.220199,-0.624223,-0.189534,0.725214 -2037,-0.220797,-0.624302,-0.190183,0.724794 -2038,-0.221394,-0.624380,-0.190833,0.724373 -2039,-0.221991,-0.624458,-0.191482,0.723952 -2040,-0.222587,-0.624535,-0.192132,0.723531 -2041,-0.223183,-0.624611,-0.192782,0.723108 -2042,-0.223778,-0.624686,-0.193432,0.722686 -2043,-0.224372,-0.624761,-0.194083,0.722262 -2044,-0.224966,-0.624835,-0.194734,0.721838 -2045,-0.225559,-0.624908,-0.195385,0.721414 -2046,-0.226151,-0.624981,-0.196037,0.720989 -2047,-0.226743,-0.625052,-0.196688,0.720563 -2048,-0.227335,-0.625123,-0.197340,0.720137 -2049,-0.227925,-0.625193,-0.197993,0.719710 -2050,-0.228515,-0.625263,-0.198645,0.719282 -2051,-0.229105,-0.625331,-0.199298,0.718855 -2052,-0.229694,-0.625399,-0.199951,0.718426 -2053,-0.230282,-0.625467,-0.200605,0.717997 -2054,-0.230869,-0.625533,-0.201258,0.717567 -2055,-0.231456,-0.625599,-0.201912,0.717137 -2056,-0.232043,-0.625664,-0.202566,0.716706 -2057,-0.232628,-0.625728,-0.203221,0.716275 -2058,-0.233213,-0.625791,-0.203875,0.715843 -2059,-0.233798,-0.625854,-0.204530,0.715411 -2060,-0.234382,-0.625916,-0.205186,0.714978 -2061,-0.234965,-0.625977,-0.205841,0.714544 -2062,-0.235547,-0.626037,-0.206497,0.714110 -2063,-0.236129,-0.626097,-0.207153,0.713676 -2064,-0.236711,-0.626156,-0.207809,0.713241 -2065,-0.237291,-0.626214,-0.208466,0.712805 -2066,-0.237871,-0.626272,-0.209122,0.712368 -2067,-0.238451,-0.626328,-0.209779,0.711932 -2068,-0.239030,-0.626384,-0.210437,0.711494 -2069,-0.239608,-0.626439,-0.211094,0.711056 -2070,-0.240185,-0.626494,-0.211752,0.710618 -2071,-0.240762,-0.626547,-0.212410,0.710179 -2072,-0.241338,-0.626600,-0.213068,0.709739 -2073,-0.241914,-0.626653,-0.213727,0.709299 -2074,-0.242489,-0.626704,-0.214385,0.708858 -2075,-0.243064,-0.626755,-0.215044,0.708417 -2076,-0.243637,-0.626804,-0.215704,0.707975 -2077,-0.244210,-0.626853,-0.216363,0.707533 -2078,-0.244783,-0.626902,-0.217023,0.707090 -2079,-0.245355,-0.626949,-0.217683,0.706647 -2080,-0.245926,-0.626996,-0.218343,0.706203 -2081,-0.246496,-0.627042,-0.219004,0.705758 -2082,-0.247066,-0.627088,-0.219664,0.705313 -2083,-0.247636,-0.627132,-0.220325,0.704868 -2084,-0.248204,-0.627176,-0.220987,0.704422 -2085,-0.248772,-0.627219,-0.221648,0.703975 -2086,-0.249340,-0.627261,-0.222310,0.703528 -2087,-0.249906,-0.627303,-0.222972,0.703080 -2088,-0.250472,-0.627343,-0.223634,0.702632 -2089,-0.251038,-0.627383,-0.224296,0.702183 -2090,-0.251603,-0.627423,-0.224959,0.701734 -2091,-0.252167,-0.627461,-0.225622,0.701284 -2092,-0.252730,-0.627499,-0.226285,0.700834 -2093,-0.253293,-0.627536,-0.226948,0.700383 -2094,-0.253855,-0.627572,-0.227611,0.699932 -2095,-0.254417,-0.627607,-0.228275,0.699480 -2096,-0.254978,-0.627642,-0.228939,0.699027 -2097,-0.255538,-0.627676,-0.229603,0.698574 -2098,-0.256098,-0.627709,-0.230268,0.698121 -2099,-0.256657,-0.627741,-0.230933,0.697667 -2100,-0.257215,-0.627773,-0.231598,0.697212 -2101,-0.257773,-0.627803,-0.232263,0.696757 -2102,-0.258330,-0.627833,-0.232928,0.696301 -2103,-0.258886,-0.627863,-0.233594,0.695845 -2104,-0.259442,-0.627891,-0.234259,0.695389 -2105,-0.259997,-0.627919,-0.234925,0.694931 -2106,-0.260551,-0.627946,-0.235592,0.694474 -2107,-0.261105,-0.627972,-0.236258,0.694016 -2108,-0.261658,-0.627997,-0.236925,0.693557 -2109,-0.262211,-0.628022,-0.237592,0.693098 -2110,-0.262763,-0.628046,-0.238259,0.692638 -2111,-0.263314,-0.628069,-0.238926,0.692178 -2112,-0.263864,-0.628091,-0.239593,0.691717 -2113,-0.264414,-0.628113,-0.240261,0.691256 -2114,-0.264963,-0.628133,-0.240929,0.690794 -2115,-0.265512,-0.628153,-0.241597,0.690331 -2116,-0.266060,-0.628173,-0.242266,0.689869 -2117,-0.266607,-0.628191,-0.242934,0.689405 -2118,-0.267154,-0.628209,-0.243603,0.688942 -2119,-0.267700,-0.628226,-0.244272,0.688477 -2120,-0.268245,-0.628242,-0.244941,0.688012 -2121,-0.268789,-0.628257,-0.245611,0.687547 -2122,-0.269333,-0.628272,-0.246280,0.687081 -2123,-0.269877,-0.628285,-0.246950,0.686615 -2124,-0.270419,-0.628298,-0.247620,0.686148 -2125,-0.270961,-0.628311,-0.248290,0.685681 -2126,-0.271502,-0.628322,-0.248961,0.685213 -2127,-0.272043,-0.628333,-0.249631,0.684744 -2128,-0.272583,-0.628343,-0.250302,0.684276 -2129,-0.273122,-0.628352,-0.250973,0.683806 -2130,-0.273661,-0.628360,-0.251644,0.683336 -2131,-0.274199,-0.628368,-0.252316,0.682866 -2132,-0.274736,-0.628374,-0.252987,0.682395 -2133,-0.275273,-0.628380,-0.253659,0.681924 -2134,-0.275809,-0.628386,-0.254331,0.681452 -2135,-0.276344,-0.628390,-0.255003,0.680980 -2136,-0.276879,-0.628394,-0.255675,0.680507 -2137,-0.277413,-0.628397,-0.256348,0.680034 -2138,-0.277946,-0.628399,-0.257021,0.679560 -2139,-0.278479,-0.628400,-0.257694,0.679086 -2140,-0.279011,-0.628400,-0.258367,0.678611 -2141,-0.279542,-0.628400,-0.259040,0.678136 -2142,-0.280073,-0.628399,-0.259713,0.677660 -2143,-0.280602,-0.628397,-0.260387,0.677184 -2144,-0.281132,-0.628395,-0.261061,0.676707 -2145,-0.281660,-0.628391,-0.261735,0.676230 -2146,-0.282188,-0.628387,-0.262409,0.675752 -2147,-0.282716,-0.628382,-0.263084,0.675274 -2148,-0.283242,-0.628377,-0.263758,0.674795 -2149,-0.283768,-0.628370,-0.264433,0.674316 -2150,-0.284293,-0.628363,-0.265108,0.673836 -2151,-0.284818,-0.628355,-0.265783,0.673356 -2152,-0.285342,-0.628346,-0.266458,0.672876 -2153,-0.285865,-0.628336,-0.267134,0.672395 -2154,-0.286387,-0.628326,-0.267809,0.671913 -2155,-0.286909,-0.628314,-0.268485,0.671431 -2156,-0.287430,-0.628302,-0.269161,0.670949 -2157,-0.287951,-0.628289,-0.269837,0.670466 -2158,-0.288471,-0.628276,-0.270513,0.669983 -2159,-0.288990,-0.628261,-0.271190,0.669499 -2160,-0.289508,-0.628246,-0.271866,0.669014 -2161,-0.290026,-0.628230,-0.272543,0.668530 -2162,-0.290543,-0.628214,-0.273220,0.668044 -2163,-0.291060,-0.628196,-0.273897,0.667558 -2164,-0.291575,-0.628178,-0.274575,0.667072 -2165,-0.292090,-0.628158,-0.275252,0.666586 -2166,-0.292605,-0.628139,-0.275930,0.666098 -2167,-0.293118,-0.628118,-0.276607,0.665611 -2168,-0.293631,-0.628096,-0.277285,0.665123 -2169,-0.294144,-0.628074,-0.277964,0.664634 -2170,-0.294655,-0.628051,-0.278642,0.664145 -2171,-0.295166,-0.628027,-0.279320,0.663656 -2172,-0.295677,-0.628002,-0.279999,0.663166 -2173,-0.296186,-0.627977,-0.280677,0.662676 -2174,-0.296695,-0.627951,-0.281356,0.662185 -2175,-0.297203,-0.627924,-0.282035,0.661693 -2176,-0.297711,-0.627896,-0.282715,0.661202 -2177,-0.298218,-0.627867,-0.283394,0.660709 -2178,-0.298724,-0.627838,-0.284073,0.660217 -2179,-0.299229,-0.627807,-0.284753,0.659724 -2180,-0.299734,-0.627776,-0.285433,0.659230 -2181,-0.300238,-0.627745,-0.286113,0.658736 -2182,-0.300741,-0.627712,-0.286793,0.658242 -2183,-0.301244,-0.627679,-0.287473,0.657747 -2184,-0.301746,-0.627644,-0.288153,0.657251 -2185,-0.302247,-0.627609,-0.288834,0.656756 -2186,-0.302748,-0.627574,-0.289515,0.656259 -2187,-0.303248,-0.627537,-0.290195,0.655763 -2188,-0.303747,-0.627500,-0.290876,0.655266 -2189,-0.304246,-0.627461,-0.291557,0.654768 -2190,-0.304744,-0.627422,-0.292239,0.654270 -2191,-0.305241,-0.627383,-0.292920,0.653771 -2192,-0.305737,-0.627342,-0.293601,0.653273 -2193,-0.306233,-0.627301,-0.294283,0.652773 -2194,-0.306728,-0.627258,-0.294965,0.652273 -2195,-0.307222,-0.627215,-0.295647,0.651773 -2196,-0.307716,-0.627172,-0.296329,0.651273 -2197,-0.308209,-0.627127,-0.297011,0.650771 -2198,-0.308701,-0.627082,-0.297693,0.650270 -2199,-0.309193,-0.627035,-0.298376,0.649768 -2200,-0.309684,-0.626988,-0.299058,0.649266 -2201,-0.310174,-0.626941,-0.299741,0.648763 -2202,-0.310663,-0.626892,-0.300424,0.648259 -2203,-0.311152,-0.626843,-0.301107,0.647756 -2204,-0.311640,-0.626792,-0.301790,0.647252 -2205,-0.312128,-0.626741,-0.302473,0.646747 -2206,-0.312614,-0.626690,-0.303156,0.646242 -2207,-0.313100,-0.626637,-0.303839,0.645737 -2208,-0.313586,-0.626584,-0.304523,0.645231 -2209,-0.314070,-0.626529,-0.305207,0.644724 -2210,-0.314554,-0.626474,-0.305890,0.644218 -2211,-0.315037,-0.626419,-0.306574,0.643711 -2212,-0.315520,-0.626362,-0.307258,0.643203 -2213,-0.316001,-0.626305,-0.307942,0.642695 -2214,-0.316482,-0.626246,-0.308627,0.642187 -2215,-0.316963,-0.626187,-0.309311,0.641678 -2216,-0.317442,-0.626127,-0.309996,0.641169 -2217,-0.317921,-0.626067,-0.310680,0.640659 -2218,-0.318400,-0.626005,-0.311365,0.640149 -2219,-0.318877,-0.625943,-0.312050,0.639639 -2220,-0.319354,-0.625880,-0.312735,0.639128 -2221,-0.319830,-0.625816,-0.313420,0.638616 -2222,-0.320306,-0.625752,-0.314105,0.638105 -2223,-0.320780,-0.625686,-0.314790,0.637593 -2224,-0.321254,-0.625620,-0.315475,0.637080 -2225,-0.321727,-0.625553,-0.316161,0.636567 -2226,-0.322200,-0.625485,-0.316846,0.636054 -2227,-0.322672,-0.625416,-0.317532,0.635540 -2228,-0.323143,-0.625347,-0.318218,0.635026 -2229,-0.323614,-0.625276,-0.318904,0.634511 -2230,-0.324083,-0.625205,-0.319589,0.633996 -2231,-0.324552,-0.625133,-0.320276,0.633481 -2232,-0.325021,-0.625060,-0.320962,0.632965 -2233,-0.325488,-0.624987,-0.321648,0.632449 -2234,-0.325955,-0.624913,-0.322334,0.631932 -2235,-0.326421,-0.624837,-0.323021,0.631415 -2236,-0.326887,-0.624761,-0.323707,0.630898 -2237,-0.327351,-0.624685,-0.324394,0.630380 -2238,-0.327815,-0.624607,-0.325081,0.629862 -2239,-0.328279,-0.624529,-0.325767,0.629343 -2240,-0.328741,-0.624449,-0.326454,0.628824 -2241,-0.329203,-0.624369,-0.327141,0.628305 -2242,-0.329664,-0.624288,-0.327828,0.627785 -2243,-0.330125,-0.624207,-0.328515,0.627265 -2244,-0.330585,-0.624124,-0.329203,0.626744 -2245,-0.331044,-0.624041,-0.329890,0.626223 -2246,-0.331502,-0.623957,-0.330577,0.625702 -2247,-0.331959,-0.623872,-0.331265,0.625180 -2248,-0.332416,-0.623786,-0.331952,0.624658 -2249,-0.332872,-0.623700,-0.332640,0.624135 -2250,-0.333328,-0.623613,-0.333328,0.623613 -2251,-0.333783,-0.623524,-0.334016,0.623089 -2252,-0.334237,-0.623435,-0.334704,0.622566 -2253,-0.334690,-0.623346,-0.335391,0.622041 -2254,-0.335142,-0.623255,-0.336080,0.621517 -2255,-0.335594,-0.623164,-0.336768,0.620992 -2256,-0.336045,-0.623071,-0.337456,0.620467 -2257,-0.336496,-0.622978,-0.338144,0.619941 -2258,-0.336945,-0.622885,-0.338832,0.619415 -2259,-0.337394,-0.622790,-0.339521,0.618889 -2260,-0.337842,-0.622694,-0.340209,0.618362 -2261,-0.338290,-0.622598,-0.340898,0.617835 -2262,-0.338737,-0.622501,-0.341586,0.617308 -2263,-0.339183,-0.622403,-0.342275,0.616780 -2264,-0.339628,-0.622304,-0.342964,0.616252 -2265,-0.340073,-0.622205,-0.343653,0.615723 -2266,-0.340516,-0.622104,-0.344341,0.615194 -2267,-0.340960,-0.622003,-0.345030,0.614665 -2268,-0.341402,-0.621901,-0.345719,0.614135 -2269,-0.341844,-0.621798,-0.346408,0.613605 -2270,-0.342285,-0.621695,-0.347098,0.613074 -2271,-0.342725,-0.621590,-0.347787,0.612543 -2272,-0.343164,-0.621485,-0.348476,0.612012 -2273,-0.343603,-0.621379,-0.349165,0.611481 -2274,-0.344041,-0.621272,-0.349855,0.610949 -2275,-0.344479,-0.621164,-0.350544,0.610417 -2276,-0.344915,-0.621056,-0.351233,0.609884 -2277,-0.345351,-0.620946,-0.351923,0.609351 -2278,-0.345786,-0.620836,-0.352612,0.608817 -2279,-0.346221,-0.620725,-0.353302,0.608284 -2280,-0.346654,-0.620613,-0.353992,0.607750 -2281,-0.347087,-0.620501,-0.354681,0.607215 -2282,-0.347519,-0.620387,-0.355371,0.606680 -2283,-0.347951,-0.620273,-0.356061,0.606145 -2284,-0.348382,-0.620158,-0.356751,0.605610 -2285,-0.348812,-0.620042,-0.357441,0.605074 -2286,-0.349241,-0.619925,-0.358131,0.604538 -2287,-0.349670,-0.619808,-0.358821,0.604001 -2288,-0.350097,-0.619690,-0.359511,0.603464 -2289,-0.350524,-0.619570,-0.360201,0.602927 -2290,-0.350951,-0.619450,-0.360891,0.602389 -2291,-0.351376,-0.619330,-0.361581,0.601851 -2292,-0.351801,-0.619208,-0.362271,0.601313 -2293,-0.352226,-0.619085,-0.362961,0.600774 -2294,-0.352649,-0.618962,-0.363651,0.600235 -2295,-0.353072,-0.618838,-0.364342,0.599696 -2296,-0.353494,-0.618713,-0.365032,0.599156 -2297,-0.353915,-0.618587,-0.365722,0.598616 -2298,-0.354335,-0.618461,-0.366413,0.598076 -2299,-0.354755,-0.618333,-0.367103,0.597535 -2300,-0.355174,-0.618205,-0.367793,0.596994 -2301,-0.355592,-0.618076,-0.368484,0.596452 -2302,-0.356010,-0.617946,-0.369174,0.595911 -2303,-0.356427,-0.617816,-0.369865,0.595369 -2304,-0.356843,-0.617684,-0.370555,0.594826 -2305,-0.357258,-0.617552,-0.371246,0.594283 -2306,-0.357673,-0.617419,-0.371937,0.593740 -2307,-0.358086,-0.617285,-0.372627,0.593197 -2308,-0.358500,-0.617150,-0.373318,0.592653 -2309,-0.358912,-0.617014,-0.374008,0.592109 -2310,-0.359324,-0.616878,-0.374699,0.591565 -2311,-0.359734,-0.616741,-0.375390,0.591020 -2312,-0.360145,-0.616603,-0.376080,0.590475 -2313,-0.360554,-0.616464,-0.376771,0.589929 -2314,-0.360963,-0.616324,-0.377462,0.589384 -2315,-0.361371,-0.616183,-0.378153,0.588838 -2316,-0.361778,-0.616042,-0.378843,0.588291 -2317,-0.362184,-0.615900,-0.379534,0.587745 -2318,-0.362590,-0.615757,-0.380225,0.587198 -2319,-0.362995,-0.615613,-0.380916,0.586650 -2320,-0.363399,-0.615468,-0.381607,0.586103 -2321,-0.363802,-0.615323,-0.382297,0.585555 -2322,-0.364205,-0.615177,-0.382988,0.585006 -2323,-0.364607,-0.615029,-0.383679,0.584458 -2324,-0.365008,-0.614881,-0.384370,0.583909 -2325,-0.365409,-0.614733,-0.385061,0.583360 -2326,-0.365809,-0.614583,-0.385751,0.582810 -2327,-0.366208,-0.614433,-0.386442,0.582260 -2328,-0.366606,-0.614281,-0.387133,0.581710 -2329,-0.367003,-0.614129,-0.387824,0.581159 -2330,-0.367400,-0.613976,-0.388515,0.580609 -2331,-0.367796,-0.613823,-0.389206,0.580057 -2332,-0.368191,-0.613668,-0.389896,0.579506 -2333,-0.368586,-0.613513,-0.390587,0.578954 -2334,-0.368980,-0.613356,-0.391278,0.578402 -2335,-0.369373,-0.613199,-0.391969,0.577850 -2336,-0.369765,-0.613042,-0.392660,0.577297 -2337,-0.370157,-0.612883,-0.393351,0.576744 -2338,-0.370547,-0.612723,-0.394041,0.576191 -2339,-0.370937,-0.612563,-0.394732,0.575637 -2340,-0.371327,-0.612402,-0.395423,0.575084 -2341,-0.371715,-0.612240,-0.396114,0.574529 -2342,-0.372103,-0.612077,-0.396804,0.573975 -2343,-0.372490,-0.611913,-0.397495,0.573420 -2344,-0.372876,-0.611749,-0.398186,0.572865 -2345,-0.373262,-0.611584,-0.398876,0.572310 -2346,-0.373647,-0.611417,-0.399567,0.571754 -2347,-0.374031,-0.611251,-0.400258,0.571198 -2348,-0.374414,-0.611083,-0.400948,0.570642 -2349,-0.374797,-0.610914,-0.401639,0.570085 -2350,-0.375178,-0.610745,-0.402330,0.569529 -2351,-0.375560,-0.610574,-0.403020,0.568972 -2352,-0.375940,-0.610403,-0.403711,0.568414 -2353,-0.376319,-0.610231,-0.404401,0.567856 -2354,-0.376698,-0.610059,-0.405092,0.567298 -2355,-0.377076,-0.609885,-0.405782,0.566740 -2356,-0.377453,-0.609711,-0.406473,0.566182 -2357,-0.377830,-0.609535,-0.407163,0.565623 -2358,-0.378206,-0.609359,-0.407854,0.565064 -2359,-0.378581,-0.609183,-0.408544,0.564504 -2360,-0.378955,-0.609005,-0.409234,0.563945 -2361,-0.379329,-0.608826,-0.409925,0.563385 -2362,-0.379701,-0.608647,-0.410615,0.562824 -2363,-0.380073,-0.608467,-0.411305,0.562264 -2364,-0.380445,-0.608286,-0.411995,0.561703 -2365,-0.380815,-0.608104,-0.412685,0.561142 -2366,-0.381185,-0.607921,-0.413375,0.560581 -2367,-0.381554,-0.607738,-0.414066,0.560019 -2368,-0.381922,-0.607553,-0.414756,0.559457 -2369,-0.382290,-0.607368,-0.415446,0.558895 -2370,-0.382656,-0.607182,-0.416136,0.558333 -2371,-0.383022,-0.606995,-0.416825,0.557770 -2372,-0.383387,-0.606808,-0.417515,0.557207 -2373,-0.383752,-0.606619,-0.418205,0.556644 -2374,-0.384116,-0.606430,-0.418895,0.556080 -2375,-0.384478,-0.606240,-0.419585,0.555516 -2376,-0.384841,-0.606049,-0.420274,0.554952 -2377,-0.385202,-0.605857,-0.420964,0.554388 -2378,-0.385563,-0.605664,-0.421654,0.553823 -2379,-0.385923,-0.605471,-0.422343,0.553259 -2380,-0.386282,-0.605277,-0.423033,0.552693 -2381,-0.386640,-0.605081,-0.423722,0.552128 -2382,-0.386998,-0.604886,-0.424411,0.551563 -2383,-0.387355,-0.604689,-0.425101,0.550997 -2384,-0.387711,-0.604491,-0.425790,0.550430 -2385,-0.388066,-0.604293,-0.426479,0.549864 -2386,-0.388421,-0.604093,-0.427168,0.549297 -2387,-0.388775,-0.603893,-0.427857,0.548731 -2388,-0.389128,-0.603692,-0.428546,0.548163 -2389,-0.389480,-0.603491,-0.429235,0.547596 -2390,-0.389831,-0.603288,-0.429924,0.547028 -2391,-0.390182,-0.603085,-0.430613,0.546460 -2392,-0.390532,-0.602881,-0.431302,0.545892 -2393,-0.390882,-0.602675,-0.431991,0.545324 -2394,-0.391230,-0.602470,-0.432679,0.544755 -2395,-0.391578,-0.602263,-0.433368,0.544186 -2396,-0.391925,-0.602055,-0.434056,0.543617 -2397,-0.392271,-0.601847,-0.434745,0.543048 -2398,-0.392616,-0.601638,-0.435433,0.542478 -2399,-0.392961,-0.601428,-0.436121,0.541908 -2400,-0.393305,-0.601217,-0.436810,0.541338 -2401,-0.393648,-0.601005,-0.437498,0.540768 -2402,-0.393991,-0.600793,-0.438186,0.540197 -2403,-0.394332,-0.600579,-0.438874,0.539626 -2404,-0.394673,-0.600365,-0.439562,0.539055 -2405,-0.395013,-0.600150,-0.440250,0.538484 -2406,-0.395353,-0.599934,-0.440937,0.537912 -2407,-0.395691,-0.599717,-0.441625,0.537340 -2408,-0.396029,-0.599500,-0.442313,0.536768 -2409,-0.396366,-0.599282,-0.443000,0.536196 -2410,-0.396702,-0.599062,-0.443688,0.535624 -2411,-0.397038,-0.598842,-0.444375,0.535051 -2412,-0.397373,-0.598622,-0.445062,0.534478 -2413,-0.397707,-0.598400,-0.445749,0.533905 -2414,-0.398040,-0.598177,-0.446436,0.533331 -2415,-0.398372,-0.597954,-0.447123,0.532758 -2416,-0.398704,-0.597730,-0.447810,0.532184 -2417,-0.399035,-0.597505,-0.448497,0.531610 -2418,-0.399365,-0.597279,-0.449184,0.531035 -2419,-0.399695,-0.597053,-0.449871,0.530461 -2420,-0.400023,-0.596825,-0.450557,0.529886 -2421,-0.400351,-0.596597,-0.451244,0.529311 -2422,-0.400678,-0.596368,-0.451930,0.528736 -2423,-0.401005,-0.596138,-0.452616,0.528161 -2424,-0.401330,-0.595907,-0.453302,0.527585 -2425,-0.401655,-0.595675,-0.453988,0.527009 -2426,-0.401979,-0.595443,-0.454674,0.526433 -2427,-0.402302,-0.595210,-0.455360,0.525857 -2428,-0.402625,-0.594976,-0.456046,0.525280 -2429,-0.402947,-0.594741,-0.456732,0.524703 -2430,-0.403268,-0.594505,-0.457417,0.524127 -2431,-0.403588,-0.594268,-0.458103,0.523549 -2432,-0.403907,-0.594031,-0.458788,0.522972 -2433,-0.404226,-0.593793,-0.459473,0.522395 -2434,-0.404544,-0.593554,-0.460158,0.521817 -2435,-0.404861,-0.593314,-0.460844,0.521239 -2436,-0.405177,-0.593073,-0.461528,0.520661 -2437,-0.405493,-0.592831,-0.462213,0.520082 -2438,-0.405808,-0.592589,-0.462898,0.519504 -2439,-0.406122,-0.592346,-0.463583,0.518925 -2440,-0.406435,-0.592102,-0.464267,0.518346 -2441,-0.406748,-0.591857,-0.464951,0.517767 -2442,-0.407059,-0.591611,-0.465636,0.517187 -2443,-0.407370,-0.591365,-0.466320,0.516608 -2444,-0.407680,-0.591117,-0.467004,0.516028 -2445,-0.407990,-0.590869,-0.467688,0.515448 -2446,-0.408299,-0.590620,-0.468371,0.514868 -2447,-0.408606,-0.590370,-0.469055,0.514287 -2448,-0.408914,-0.590119,-0.469739,0.513707 -2449,-0.409220,-0.589868,-0.470422,0.513126 -2450,-0.409526,-0.589615,-0.471105,0.512545 -2451,-0.409830,-0.589362,-0.471788,0.511964 -2452,-0.410134,-0.589108,-0.472471,0.511382 -2453,-0.410438,-0.588853,-0.473154,0.510801 -2454,-0.410740,-0.588598,-0.473837,0.510219 -2455,-0.411042,-0.588341,-0.474520,0.509637 -2456,-0.411343,-0.588084,-0.475202,0.509055 -2457,-0.411643,-0.587826,-0.475885,0.508473 -2458,-0.411942,-0.587567,-0.476567,0.507890 -2459,-0.412241,-0.587307,-0.477249,0.507308 -2460,-0.412539,-0.587046,-0.477931,0.506725 -2461,-0.412836,-0.586785,-0.478613,0.506142 -2462,-0.413132,-0.586523,-0.479294,0.505559 -2463,-0.413428,-0.586260,-0.479976,0.504975 -2464,-0.413723,-0.585996,-0.480658,0.504392 -2465,-0.414017,-0.585731,-0.481339,0.503808 -2466,-0.414310,-0.585465,-0.482020,0.503224 -2467,-0.414602,-0.585199,-0.482701,0.502640 -2468,-0.414894,-0.584932,-0.483382,0.502056 -2469,-0.415185,-0.584663,-0.484063,0.501471 -2470,-0.415475,-0.584395,-0.484743,0.500887 -2471,-0.415764,-0.584125,-0.485424,0.500302 -2472,-0.416053,-0.583854,-0.486104,0.499717 -2473,-0.416341,-0.583583,-0.486784,0.499132 -2474,-0.416628,-0.583311,-0.487464,0.498547 -2475,-0.416914,-0.583038,-0.488144,0.497961 -2476,-0.417200,-0.582764,-0.488824,0.497376 -2477,-0.417484,-0.582489,-0.489503,0.496790 -2478,-0.417768,-0.582213,-0.490182,0.496204 -2479,-0.418052,-0.581937,-0.490862,0.495618 -2480,-0.418334,-0.581660,-0.491541,0.495031 -2481,-0.418616,-0.581382,-0.492220,0.494445 -2482,-0.418896,-0.581103,-0.492898,0.493858 -2483,-0.419177,-0.580823,-0.493577,0.493272 -2484,-0.419456,-0.580543,-0.494255,0.492685 -2485,-0.419734,-0.580262,-0.494934,0.492098 -2486,-0.420012,-0.579979,-0.495612,0.491510 -2487,-0.420289,-0.579696,-0.496290,0.490923 -2488,-0.420565,-0.579413,-0.496968,0.490335 -2489,-0.420841,-0.579128,-0.497645,0.489748 -2490,-0.421115,-0.578843,-0.498323,0.489160 -2491,-0.421389,-0.578556,-0.499000,0.488572 -2492,-0.421662,-0.578269,-0.499677,0.487984 -2493,-0.421935,-0.577981,-0.500354,0.487395 -2494,-0.422206,-0.577693,-0.501031,0.486807 -2495,-0.422477,-0.577403,-0.501708,0.486218 -2496,-0.422747,-0.577113,-0.502384,0.485630 -2497,-0.423016,-0.576821,-0.503060,0.485041 -2498,-0.423285,-0.576529,-0.503736,0.484452 -2499,-0.423552,-0.576236,-0.504412,0.483863 -2500,-0.423819,-0.575943,-0.505088,0.483273 -2501,-0.424085,-0.575648,-0.505764,0.482684 -2502,-0.424351,-0.575353,-0.506439,0.482094 -2503,-0.424615,-0.575057,-0.507114,0.481505 -2504,-0.424879,-0.574760,-0.507789,0.480915 -2505,-0.425142,-0.574462,-0.508464,0.480325 -2506,-0.425404,-0.574163,-0.509139,0.479734 -2507,-0.425666,-0.573864,-0.509814,0.479144 -2508,-0.425927,-0.573563,-0.510488,0.478554 -2509,-0.426187,-0.573262,-0.511162,0.477963 -2510,-0.426446,-0.572960,-0.511836,0.477373 -2511,-0.426704,-0.572658,-0.512510,0.476782 -2512,-0.426962,-0.572354,-0.513183,0.476191 -2513,-0.427218,-0.572050,-0.513857,0.475600 -2514,-0.427474,-0.571744,-0.514530,0.475008 -2515,-0.427730,-0.571438,-0.515203,0.474417 -2516,-0.427984,-0.571131,-0.515876,0.473826 -2517,-0.428238,-0.570824,-0.516548,0.473234 -2518,-0.428491,-0.570515,-0.517221,0.472642 -2519,-0.428743,-0.570206,-0.517893,0.472051 -2520,-0.428994,-0.569896,-0.518565,0.471459 -2521,-0.429245,-0.569585,-0.519237,0.470867 -2522,-0.429495,-0.569273,-0.519909,0.470274 -2523,-0.429744,-0.568960,-0.520580,0.469682 -2524,-0.429992,-0.568647,-0.521251,0.469090 -2525,-0.430240,-0.568332,-0.521922,0.468497 -2526,-0.430486,-0.568017,-0.522593,0.467904 -2527,-0.430732,-0.567701,-0.523264,0.467312 -2528,-0.430977,-0.567385,-0.523934,0.466719 -2529,-0.431222,-0.567067,-0.524604,0.466126 -2530,-0.431465,-0.566749,-0.525274,0.465533 -2531,-0.431708,-0.566429,-0.525944,0.464939 -2532,-0.431950,-0.566109,-0.526614,0.464346 -2533,-0.432191,-0.565788,-0.527283,0.463752 -2534,-0.432432,-0.565467,-0.527952,0.463159 -2535,-0.432672,-0.565144,-0.528621,0.462565 -2536,-0.432911,-0.564821,-0.529290,0.461971 -2537,-0.433149,-0.564497,-0.529959,0.461378 -2538,-0.433386,-0.564172,-0.530627,0.460784 -2539,-0.433623,-0.563846,-0.531295,0.460189 -2540,-0.433859,-0.563519,-0.531963,0.459595 -2541,-0.434094,-0.563192,-0.532631,0.459001 -2542,-0.434328,-0.562864,-0.533298,0.458407 -2543,-0.434561,-0.562535,-0.533966,0.457812 -2544,-0.434794,-0.562205,-0.534633,0.457217 -2545,-0.435026,-0.561874,-0.535299,0.456623 -2546,-0.435257,-0.561543,-0.535966,0.456028 -2547,-0.435488,-0.561210,-0.536632,0.455433 -2548,-0.435717,-0.560877,-0.537298,0.454838 -2549,-0.435946,-0.560543,-0.537964,0.454243 -2550,-0.436174,-0.560208,-0.538630,0.453648 -2551,-0.436401,-0.559873,-0.539296,0.453053 -2552,-0.436628,-0.559536,-0.539961,0.452457 -2553,-0.436853,-0.559199,-0.540626,0.451862 -2554,-0.437078,-0.558861,-0.541290,0.451266 -2555,-0.437303,-0.558522,-0.541955,0.450671 -2556,-0.437526,-0.558183,-0.542619,0.450075 -2557,-0.437749,-0.557842,-0.543283,0.449479 -2558,-0.437970,-0.557501,-0.543947,0.448883 -2559,-0.438191,-0.557159,-0.544611,0.448287 -2560,-0.438412,-0.556816,-0.545274,0.447691 -2561,-0.438631,-0.556472,-0.545937,0.447095 -2562,-0.438850,-0.556127,-0.546600,0.446499 -2563,-0.439068,-0.555782,-0.547263,0.445903 -2564,-0.439285,-0.555436,-0.547925,0.445306 -2565,-0.439501,-0.555089,-0.548587,0.444710 -2566,-0.439717,-0.554741,-0.549249,0.444113 -2567,-0.439932,-0.554392,-0.549911,0.443517 -2568,-0.440146,-0.554043,-0.550572,0.442920 -2569,-0.440359,-0.553692,-0.551234,0.442323 -2570,-0.440572,-0.553341,-0.551895,0.441727 -2571,-0.440783,-0.552989,-0.552555,0.441130 -2572,-0.440994,-0.552637,-0.553216,0.440533 -2573,-0.441204,-0.552283,-0.553876,0.439936 -2574,-0.441414,-0.551929,-0.554536,0.439339 -2575,-0.441622,-0.551574,-0.555196,0.438741 -2576,-0.441830,-0.551218,-0.555855,0.438144 -2577,-0.442037,-0.550861,-0.556514,0.437547 -2578,-0.442244,-0.550503,-0.557173,0.436950 -2579,-0.442449,-0.550145,-0.557832,0.436352 -2580,-0.442654,-0.549786,-0.558490,0.435755 -2581,-0.442858,-0.549426,-0.559148,0.435157 -2582,-0.443061,-0.549065,-0.559806,0.434560 -2583,-0.443263,-0.548703,-0.560464,0.433962 -2584,-0.443465,-0.548341,-0.561121,0.433364 -2585,-0.443666,-0.547977,-0.561778,0.432766 -2586,-0.443866,-0.547613,-0.562435,0.432169 -2587,-0.444065,-0.547248,-0.563092,0.431571 -2588,-0.444264,-0.546883,-0.563748,0.430973 -2589,-0.444461,-0.546516,-0.564404,0.430375 -2590,-0.444658,-0.546149,-0.565060,0.429777 -2591,-0.444854,-0.545781,-0.565715,0.429179 -2592,-0.445050,-0.545412,-0.566371,0.428580 -2593,-0.445244,-0.545042,-0.567026,0.427982 -2594,-0.445438,-0.544671,-0.567680,0.427384 -2595,-0.445631,-0.544300,-0.568335,0.426786 -2596,-0.445824,-0.543928,-0.568989,0.426187 -2597,-0.446015,-0.543555,-0.569643,0.425589 -2598,-0.446206,-0.543181,-0.570296,0.424990 -2599,-0.446396,-0.542806,-0.570950,0.424392 -2600,-0.446585,-0.542431,-0.571603,0.423793 -2601,-0.446773,-0.542055,-0.572256,0.423195 -2602,-0.446961,-0.541678,-0.572908,0.422596 -2603,-0.447148,-0.541300,-0.573560,0.421998 -2604,-0.447334,-0.540921,-0.574212,0.421399 -2605,-0.447519,-0.540542,-0.574864,0.420800 -2606,-0.447704,-0.540161,-0.575515,0.420201 -2607,-0.447888,-0.539780,-0.576166,0.419603 -2608,-0.448071,-0.539398,-0.576817,0.419004 -2609,-0.448253,-0.539016,-0.577468,0.418405 -2610,-0.448434,-0.538632,-0.578118,0.417806 -2611,-0.448615,-0.538248,-0.578768,0.417207 -2612,-0.448795,-0.537863,-0.579417,0.416608 -2613,-0.448974,-0.537477,-0.580067,0.416009 -2614,-0.449152,-0.537090,-0.580716,0.415410 -2615,-0.449330,-0.536703,-0.581365,0.414811 -2616,-0.449506,-0.536314,-0.582013,0.414212 -2617,-0.449682,-0.535925,-0.582661,0.413613 -2618,-0.449858,-0.535535,-0.583309,0.413014 -2619,-0.450032,-0.535145,-0.583957,0.412415 -2620,-0.450206,-0.534753,-0.584604,0.411815 -2621,-0.450379,-0.534361,-0.585251,0.411216 -2622,-0.450551,-0.533968,-0.585898,0.410617 -2623,-0.450722,-0.533574,-0.586544,0.410018 -2624,-0.450893,-0.533179,-0.587190,0.409418 -2625,-0.451062,-0.532784,-0.587836,0.408819 -2626,-0.451231,-0.532387,-0.588482,0.408220 -2627,-0.451400,-0.531990,-0.589127,0.407621 -2628,-0.451567,-0.531592,-0.589772,0.407021 -2629,-0.451734,-0.531193,-0.590416,0.406422 -2630,-0.451900,-0.530794,-0.591060,0.405823 -2631,-0.452065,-0.530394,-0.591704,0.405223 -2632,-0.452229,-0.529992,-0.592348,0.404624 -2633,-0.452393,-0.529591,-0.592991,0.404024 -2634,-0.452556,-0.529188,-0.593634,0.403425 -2635,-0.452718,-0.528784,-0.594277,0.402826 -2636,-0.452879,-0.528380,-0.594919,0.402226 -2637,-0.453040,-0.527975,-0.595562,0.401627 -2638,-0.453199,-0.527569,-0.596203,0.401027 -2639,-0.453358,-0.527162,-0.596845,0.400428 -2640,-0.453516,-0.526755,-0.597486,0.399829 -2641,-0.453674,-0.526346,-0.598127,0.399229 -2642,-0.453831,-0.525937,-0.598767,0.398630 -2643,-0.453986,-0.525527,-0.599407,0.398030 -2644,-0.454142,-0.525117,-0.600047,0.397431 -2645,-0.454296,-0.524705,-0.600687,0.396831 -2646,-0.454449,-0.524293,-0.601326,0.396232 -2647,-0.454602,-0.523880,-0.601965,0.395633 -2648,-0.454754,-0.523466,-0.602603,0.395033 -2649,-0.454905,-0.523051,-0.603242,0.394434 -2650,-0.455056,-0.522636,-0.603880,0.393834 -2651,-0.455206,-0.522220,-0.604517,0.393235 -2652,-0.455354,-0.521803,-0.605154,0.392636 -2653,-0.455503,-0.521385,-0.605791,0.392036 -2654,-0.455650,-0.520966,-0.606428,0.391437 -2655,-0.455797,-0.520547,-0.607064,0.390837 -2656,-0.455942,-0.520126,-0.607700,0.390238 -2657,-0.456087,-0.519705,-0.608336,0.389639 -2658,-0.456232,-0.519284,-0.608971,0.389039 -2659,-0.456375,-0.518861,-0.609606,0.388440 -2660,-0.456518,-0.518438,-0.610240,0.387841 -2661,-0.456660,-0.518013,-0.610874,0.387242 -2662,-0.456801,-0.517588,-0.611508,0.386642 -2663,-0.456942,-0.517163,-0.612142,0.386043 -2664,-0.457081,-0.516736,-0.612775,0.385444 -2665,-0.457220,-0.516309,-0.613408,0.384845 -2666,-0.457358,-0.515881,-0.614041,0.384246 -2667,-0.457496,-0.515452,-0.614673,0.383646 -2668,-0.457632,-0.515022,-0.615305,0.383047 -2669,-0.457768,-0.514592,-0.615936,0.382448 -2670,-0.457903,-0.514160,-0.616567,0.381849 -2671,-0.458037,-0.513728,-0.617198,0.381250 -2672,-0.458171,-0.513295,-0.617828,0.380651 -2673,-0.458304,-0.512862,-0.618458,0.380052 -2674,-0.458436,-0.512427,-0.619088,0.379453 -2675,-0.458567,-0.511992,-0.619718,0.378854 -2676,-0.458697,-0.511556,-0.620347,0.378255 -2677,-0.458827,-0.511119,-0.620975,0.377657 -2678,-0.458956,-0.510682,-0.621604,0.377058 -2679,-0.459084,-0.510243,-0.622232,0.376459 -2680,-0.459211,-0.509804,-0.622859,0.375860 -2681,-0.459338,-0.509364,-0.623486,0.375261 -2682,-0.459464,-0.508924,-0.624113,0.374663 -2683,-0.459589,-0.508482,-0.624740,0.374064 -2684,-0.459713,-0.508040,-0.625366,0.373466 -2685,-0.459837,-0.507597,-0.625992,0.372867 -2686,-0.459959,-0.507153,-0.626617,0.372268 -2687,-0.460081,-0.506708,-0.627242,0.371670 -2688,-0.460203,-0.506263,-0.627867,0.371072 -2689,-0.460323,-0.505817,-0.628491,0.370473 -2690,-0.460443,-0.505370,-0.629115,0.369875 -2691,-0.460562,-0.504922,-0.629739,0.369277 -2692,-0.460680,-0.504474,-0.630362,0.368678 -2693,-0.460797,-0.504024,-0.630985,0.368080 -2694,-0.460914,-0.503574,-0.631608,0.367482 -2695,-0.461030,-0.503123,-0.632230,0.366884 -2696,-0.461145,-0.502672,-0.632851,0.366286 -2697,-0.461259,-0.502219,-0.633473,0.365688 -2698,-0.461373,-0.501766,-0.634094,0.365090 -2699,-0.461486,-0.501312,-0.634714,0.364492 -2700,-0.461598,-0.500858,-0.635335,0.363894 -2701,-0.461709,-0.500402,-0.635955,0.363297 -2702,-0.461820,-0.499946,-0.636574,0.362699 -2703,-0.461929,-0.499489,-0.637193,0.362101 -2704,-0.462038,-0.499031,-0.637812,0.361504 -2705,-0.462146,-0.498572,-0.638430,0.360906 -2706,-0.462254,-0.498113,-0.639048,0.360309 -2707,-0.462361,-0.497653,-0.639666,0.359711 -2708,-0.462467,-0.497192,-0.640283,0.359114 -2709,-0.462572,-0.496730,-0.640900,0.358517 -2710,-0.462676,-0.496267,-0.641516,0.357919 -2711,-0.462780,-0.495804,-0.642132,0.357322 -2712,-0.462883,-0.495340,-0.642748,0.356725 -2713,-0.462985,-0.494875,-0.643363,0.356128 -2714,-0.463086,-0.494410,-0.643978,0.355531 -2715,-0.463187,-0.493943,-0.644593,0.354934 -2716,-0.463287,-0.493476,-0.645207,0.354338 -2717,-0.463386,-0.493008,-0.645820,0.353741 -2718,-0.463484,-0.492540,-0.646434,0.353144 -2719,-0.463582,-0.492070,-0.647047,0.352548 -2720,-0.463678,-0.491600,-0.647659,0.351951 -2721,-0.463774,-0.491129,-0.648271,0.351355 -2722,-0.463870,-0.490657,-0.648883,0.350758 -2723,-0.463964,-0.490185,-0.649494,0.350162 -2724,-0.464058,-0.489711,-0.650105,0.349566 -2725,-0.464151,-0.489237,-0.650716,0.348970 -2726,-0.464243,-0.488763,-0.651326,0.348374 -2727,-0.464335,-0.488287,-0.651935,0.347778 -2728,-0.464425,-0.487811,-0.652545,0.347182 -2729,-0.464515,-0.487334,-0.653154,0.346586 -2730,-0.464605,-0.486856,-0.653762,0.345990 -2731,-0.464693,-0.486377,-0.654370,0.345395 -2732,-0.464781,-0.485898,-0.654978,0.344799 -2733,-0.464868,-0.485417,-0.655585,0.344204 -2734,-0.464954,-0.484936,-0.656192,0.343608 -2735,-0.465039,-0.484455,-0.656798,0.343013 -2736,-0.465124,-0.483972,-0.657404,0.342418 -2737,-0.465208,-0.483489,-0.658010,0.341823 -2738,-0.465291,-0.483005,-0.658615,0.341228 -2739,-0.465373,-0.482520,-0.659220,0.340633 -2740,-0.465455,-0.482035,-0.659824,0.340038 -2741,-0.465536,-0.481549,-0.660428,0.339443 -2742,-0.465616,-0.481061,-0.661032,0.338849 -2743,-0.465695,-0.480574,-0.661635,0.338254 -2744,-0.465774,-0.480085,-0.662238,0.337660 -2745,-0.465852,-0.479596,-0.662840,0.337066 -2746,-0.465929,-0.479106,-0.663442,0.336471 -2747,-0.466005,-0.478615,-0.664043,0.335877 -2748,-0.466081,-0.478123,-0.664644,0.335283 -2749,-0.466156,-0.477631,-0.665245,0.334689 -2750,-0.466230,-0.477138,-0.665845,0.334095 -2751,-0.466303,-0.476644,-0.666445,0.333502 -2752,-0.466376,-0.476149,-0.667044,0.332908 -2753,-0.466447,-0.475654,-0.667643,0.332315 -2754,-0.466519,-0.475158,-0.668241,0.331721 -2755,-0.466589,-0.474661,-0.668839,0.331128 -2756,-0.466658,-0.474163,-0.669437,0.330535 -2757,-0.466727,-0.473665,-0.670034,0.329942 -2758,-0.466795,-0.473166,-0.670631,0.329349 -2759,-0.466863,-0.472666,-0.671227,0.328756 -2760,-0.466929,-0.472165,-0.671823,0.328163 -2761,-0.466995,-0.471664,-0.672418,0.327571 -2762,-0.467060,-0.471162,-0.673013,0.326978 -2763,-0.467124,-0.470659,-0.673608,0.326386 -2764,-0.467188,-0.470155,-0.674202,0.325794 -2765,-0.467251,-0.469651,-0.674796,0.325201 -2766,-0.467313,-0.469145,-0.675389,0.324609 -2767,-0.467374,-0.468639,-0.675982,0.324018 -2768,-0.467435,-0.468133,-0.676574,0.323426 -2769,-0.467494,-0.467625,-0.677166,0.322834 -2770,-0.467553,-0.467117,-0.677757,0.322243 -2771,-0.467612,-0.466608,-0.678348,0.321651 -2772,-0.467669,-0.466099,-0.678939,0.321060 -2773,-0.467726,-0.465588,-0.679529,0.320469 -2774,-0.467782,-0.465077,-0.680119,0.319878 -2775,-0.467838,-0.464565,-0.680708,0.319287 -2776,-0.467892,-0.464052,-0.681297,0.318696 -2777,-0.467946,-0.463539,-0.681885,0.318105 -2778,-0.467999,-0.463025,-0.682473,0.317515 -2779,-0.468051,-0.462510,-0.683060,0.316924 -2780,-0.468103,-0.461994,-0.683647,0.316334 -2781,-0.468154,-0.461478,-0.684234,0.315744 -2782,-0.468204,-0.460961,-0.684820,0.315154 -2783,-0.468253,-0.460443,-0.685405,0.314564 -2784,-0.468302,-0.459924,-0.685990,0.313974 -2785,-0.468350,-0.459405,-0.686575,0.313385 -2786,-0.468397,-0.458885,-0.687159,0.312795 -2787,-0.468443,-0.458364,-0.687743,0.312206 -2788,-0.468489,-0.457843,-0.688326,0.311617 -2789,-0.468534,-0.457320,-0.688909,0.311028 -2790,-0.468578,-0.456797,-0.689492,0.310439 -2791,-0.468621,-0.456273,-0.690073,0.309850 -2792,-0.468664,-0.455749,-0.690655,0.309262 -2793,-0.468706,-0.455224,-0.691236,0.308673 -2794,-0.468747,-0.454698,-0.691816,0.308085 -2795,-0.468788,-0.454171,-0.692396,0.307497 -2796,-0.468827,-0.453643,-0.692976,0.306909 -2797,-0.468866,-0.453115,-0.693555,0.306321 -2798,-0.468904,-0.452586,-0.694134,0.305733 -2799,-0.468942,-0.452057,-0.694712,0.305146 -2800,-0.468979,-0.451526,-0.695289,0.304558 -2801,-0.469015,-0.450995,-0.695867,0.303971 -2802,-0.469050,-0.450463,-0.696443,0.303384 -2803,-0.469084,-0.449931,-0.697020,0.302797 -2804,-0.469118,-0.449397,-0.697595,0.302210 -2805,-0.469151,-0.448863,-0.698171,0.301624 -2806,-0.469184,-0.448328,-0.698745,0.301037 -2807,-0.469215,-0.447793,-0.699320,0.300451 -2808,-0.469246,-0.447257,-0.699894,0.299865 -2809,-0.469276,-0.446720,-0.700467,0.299279 -2810,-0.469305,-0.446182,-0.701040,0.298693 -2811,-0.469334,-0.445643,-0.701612,0.298107 -2812,-0.469362,-0.445104,-0.702184,0.297521 -2813,-0.469389,-0.444564,-0.702756,0.296936 -2814,-0.469415,-0.444024,-0.703327,0.296351 -2815,-0.469441,-0.443482,-0.703897,0.295766 -2816,-0.469466,-0.442940,-0.704467,0.295181 -2817,-0.469490,-0.442397,-0.705037,0.294596 -2818,-0.469514,-0.441854,-0.705606,0.294012 -2819,-0.469536,-0.441309,-0.706174,0.293427 -2820,-0.469558,-0.440764,-0.706742,0.292843 -2821,-0.469580,-0.440219,-0.707310,0.292259 -2822,-0.469600,-0.439672,-0.707877,0.291675 -2823,-0.469620,-0.439125,-0.708443,0.291092 -2824,-0.469639,-0.438577,-0.709009,0.290508 -2825,-0.469657,-0.438029,-0.709575,0.289925 -2826,-0.469675,-0.437479,-0.710140,0.289342 -2827,-0.469692,-0.436929,-0.710705,0.288759 -2828,-0.469708,-0.436378,-0.711269,0.288176 -2829,-0.469723,-0.435827,-0.711832,0.287593 -2830,-0.469738,-0.435275,-0.712395,0.287011 -2831,-0.469752,-0.434722,-0.712958,0.286428 -2832,-0.469765,-0.434168,-0.713520,0.285846 -2833,-0.469778,-0.433614,-0.714081,0.285264 -2834,-0.469790,-0.433059,-0.714642,0.284683 -2835,-0.469801,-0.432503,-0.715203,0.284101 -2836,-0.469811,-0.431946,-0.715763,0.283520 -2837,-0.469820,-0.431389,-0.716323,0.282939 -2838,-0.469829,-0.430831,-0.716882,0.282358 -2839,-0.469837,-0.430272,-0.717440,0.281777 -2840,-0.469845,-0.429713,-0.717998,0.281196 -2841,-0.469851,-0.429153,-0.718556,0.280616 -2842,-0.469857,-0.428592,-0.719113,0.280036 -2843,-0.469863,-0.428031,-0.719669,0.279456 -2844,-0.469867,-0.427468,-0.720225,0.278876 -2845,-0.469871,-0.426905,-0.720780,0.278296 -2846,-0.469874,-0.426342,-0.721335,0.277717 -2847,-0.469876,-0.425777,-0.721890,0.277137 -2848,-0.469878,-0.425212,-0.722444,0.276558 -2849,-0.469879,-0.424646,-0.722997,0.275979 -2850,-0.469879,-0.424080,-0.723550,0.275401 -2851,-0.469878,-0.423513,-0.724102,0.274822 -2852,-0.469877,-0.422945,-0.724654,0.274244 -2853,-0.469875,-0.422376,-0.725205,0.273666 -2854,-0.469872,-0.421807,-0.725756,0.273088 -2855,-0.469869,-0.421237,-0.726306,0.272510 -2856,-0.469865,-0.420666,-0.726856,0.271933 -2857,-0.469860,-0.420095,-0.727405,0.271356 -2858,-0.469854,-0.419523,-0.727954,0.270779 -2859,-0.469848,-0.418950,-0.728502,0.270202 -2860,-0.469841,-0.418376,-0.729050,0.269625 -2861,-0.469833,-0.417802,-0.729597,0.269049 -2862,-0.469824,-0.417227,-0.730144,0.268472 -2863,-0.469815,-0.416651,-0.730690,0.267896 -2864,-0.469805,-0.416075,-0.731235,0.267320 -2865,-0.469794,-0.415498,-0.731780,0.266745 -2866,-0.469783,-0.414920,-0.732324,0.266169 -2867,-0.469771,-0.414342,-0.732868,0.265594 -2868,-0.469758,-0.413762,-0.733412,0.265019 -2869,-0.469745,-0.413183,-0.733955,0.264444 -2870,-0.469730,-0.412602,-0.734497,0.263870 -2871,-0.469715,-0.412021,-0.735039,0.263296 -2872,-0.469700,-0.411439,-0.735580,0.262722 -2873,-0.469683,-0.410856,-0.736121,0.262148 -2874,-0.469666,-0.410273,-0.736661,0.261574 -2875,-0.469648,-0.409689,-0.737200,0.261000 -2876,-0.469630,-0.409104,-0.737739,0.260427 -2877,-0.469611,-0.408519,-0.738278,0.259854 -2878,-0.469591,-0.407932,-0.738816,0.259281 -2879,-0.469570,-0.407346,-0.739353,0.258709 -2880,-0.469549,-0.406758,-0.739890,0.258137 -2881,-0.469527,-0.406170,-0.740427,0.257564 -2882,-0.469504,-0.405581,-0.740962,0.256993 -2883,-0.469480,-0.404991,-0.741498,0.256421 -2884,-0.469456,-0.404401,-0.742032,0.255849 -2885,-0.469431,-0.403810,-0.742566,0.255278 -2886,-0.469405,-0.403219,-0.743100,0.254707 -2887,-0.469379,-0.402626,-0.743633,0.254136 -2888,-0.469352,-0.402033,-0.744166,0.253566 -2889,-0.469324,-0.401439,-0.744698,0.252996 -2890,-0.469296,-0.400845,-0.745229,0.252426 -2891,-0.469266,-0.400250,-0.745760,0.251856 -2892,-0.469237,-0.399654,-0.746290,0.251286 -2893,-0.469206,-0.399058,-0.746820,0.250717 -2894,-0.469175,-0.398461,-0.747349,0.250148 -2895,-0.469143,-0.397863,-0.747877,0.249579 -2896,-0.469110,-0.397264,-0.748406,0.249010 -2897,-0.469077,-0.396665,-0.748933,0.248442 -2898,-0.469042,-0.396065,-0.749460,0.247874 -2899,-0.469008,-0.395465,-0.749986,0.247306 -2900,-0.468972,-0.394864,-0.750512,0.246738 -2901,-0.468936,-0.394262,-0.751037,0.246171 -2902,-0.468899,-0.393659,-0.751562,0.245603 -2903,-0.468861,-0.393056,-0.752086,0.245037 -2904,-0.468823,-0.392452,-0.752610,0.244470 -2905,-0.468784,-0.391847,-0.753133,0.243903 -2906,-0.468744,-0.391242,-0.753655,0.243337 -2907,-0.468704,-0.390636,-0.754177,0.242771 -2908,-0.468662,-0.390029,-0.754698,0.242206 -2909,-0.468621,-0.389422,-0.755219,0.241640 -2910,-0.468578,-0.388814,-0.755739,0.241075 -2911,-0.468535,-0.388205,-0.756258,0.240510 -2912,-0.468491,-0.387596,-0.756777,0.239945 -2913,-0.468446,-0.386986,-0.757296,0.239381 -2914,-0.468401,-0.386375,-0.757814,0.238817 -2915,-0.468355,-0.385764,-0.758331,0.238253 -2916,-0.468308,-0.385152,-0.758848,0.237689 -2917,-0.468261,-0.384539,-0.759364,0.237126 -2918,-0.468212,-0.383926,-0.759879,0.236562 -2919,-0.468164,-0.383312,-0.760394,0.235999 -2920,-0.468114,-0.382697,-0.760908,0.235437 -2921,-0.468064,-0.382082,-0.761422,0.234874 -2922,-0.468013,-0.381466,-0.761935,0.234312 -2923,-0.467961,-0.380849,-0.762448,0.233750 -2924,-0.467909,-0.380232,-0.762960,0.233189 -2925,-0.467856,-0.379614,-0.763472,0.232628 -2926,-0.467802,-0.378995,-0.763982,0.232066 -2927,-0.467748,-0.378376,-0.764493,0.231506 -2928,-0.467693,-0.377756,-0.765002,0.230945 -2929,-0.467637,-0.377135,-0.765511,0.230385 -2930,-0.467581,-0.376513,-0.766020,0.229825 -2931,-0.467523,-0.375891,-0.766528,0.229265 -2932,-0.467466,-0.375269,-0.767035,0.228706 -2933,-0.467407,-0.374645,-0.767542,0.228146 -2934,-0.467348,-0.374021,-0.768048,0.227587 -2935,-0.467288,-0.373397,-0.768554,0.227029 -2936,-0.467227,-0.372772,-0.769059,0.226470 -2937,-0.467166,-0.372146,-0.769563,0.225912 -2938,-0.467104,-0.371519,-0.770067,0.225355 -2939,-0.467041,-0.370892,-0.770570,0.224797 -2940,-0.466978,-0.370264,-0.771072,0.224240 -2941,-0.466914,-0.369635,-0.771574,0.223683 -2942,-0.466849,-0.369006,-0.772076,0.223126 -2943,-0.466784,-0.368376,-0.772577,0.222570 -2944,-0.466718,-0.367745,-0.773077,0.222013 -2945,-0.466651,-0.367114,-0.773576,0.221457 -2946,-0.466584,-0.366482,-0.774075,0.220902 -2947,-0.466516,-0.365850,-0.774574,0.220347 -2948,-0.466447,-0.365217,-0.775072,0.219792 -2949,-0.466377,-0.364583,-0.775569,0.219237 -2950,-0.466307,-0.363949,-0.776065,0.218682 -2951,-0.466236,-0.363313,-0.776561,0.218128 -2952,-0.466165,-0.362678,-0.777057,0.217574 -2953,-0.466092,-0.362041,-0.777551,0.217021 -2954,-0.466020,-0.361404,-0.778045,0.216467 -2955,-0.465946,-0.360767,-0.778539,0.215914 -2956,-0.465872,-0.360128,-0.779032,0.215362 -2957,-0.465797,-0.359489,-0.779524,0.214809 -2958,-0.465721,-0.358850,-0.780016,0.214257 -2959,-0.465645,-0.358209,-0.780507,0.213705 -2960,-0.465568,-0.357569,-0.780997,0.213154 -2961,-0.465490,-0.356927,-0.781487,0.212602 -2962,-0.465412,-0.356285,-0.781976,0.212051 -2963,-0.465333,-0.355642,-0.782465,0.211501 -2964,-0.465253,-0.354998,-0.782953,0.210950 -2965,-0.465173,-0.354354,-0.783440,0.210400 -2966,-0.465092,-0.353710,-0.783927,0.209850 -2967,-0.465010,-0.353064,-0.784413,0.209301 -2968,-0.464928,-0.352418,-0.784899,0.208752 -2969,-0.464845,-0.351772,-0.785384,0.208203 -2970,-0.464761,-0.351124,-0.785868,0.207654 -2971,-0.464677,-0.350476,-0.786352,0.207106 -2972,-0.464592,-0.349828,-0.786835,0.206558 -2973,-0.464506,-0.349179,-0.787317,0.206010 -2974,-0.464420,-0.348529,-0.787799,0.205463 -2975,-0.464332,-0.347878,-0.788280,0.204916 -2976,-0.464245,-0.347227,-0.788761,0.204369 -2977,-0.464156,-0.346576,-0.789240,0.203823 -2978,-0.464067,-0.345923,-0.789720,0.203277 -2979,-0.463978,-0.345270,-0.790198,0.202731 -2980,-0.463887,-0.344617,-0.790676,0.202185 -2981,-0.463796,-0.343962,-0.791154,0.201640 -2982,-0.463704,-0.343308,-0.791631,0.201095 -2983,-0.463612,-0.342652,-0.792107,0.200551 -2984,-0.463519,-0.341996,-0.792582,0.200006 -2985,-0.463425,-0.341339,-0.793057,0.199463 -2986,-0.463331,-0.340682,-0.793531,0.198919 -2987,-0.463236,-0.340024,-0.794005,0.198376 -2988,-0.463140,-0.339365,-0.794478,0.197833 -2989,-0.463044,-0.338706,-0.794950,0.197290 -2990,-0.462946,-0.338046,-0.795422,0.196748 -2991,-0.462849,-0.337386,-0.795893,0.196206 -2992,-0.462750,-0.336725,-0.796363,0.195664 -2993,-0.462651,-0.336063,-0.796833,0.195122 -2994,-0.462552,-0.335401,-0.797302,0.194581 -2995,-0.462451,-0.334738,-0.797770,0.194041 -2996,-0.462350,-0.334074,-0.798238,0.193500 -2997,-0.462249,-0.333410,-0.798705,0.192960 -2998,-0.462146,-0.332745,-0.799172,0.192420 -2999,-0.462043,-0.332080,-0.799638,0.191881 diff --git a/scripts/testv/headrot_case03_3000_q.csv b/scripts/testv/headrot_case03_3000_q.csv index 81f966dec3..e69de29bb2 100644 --- a/scripts/testv/headrot_case03_3000_q.csv +++ b/scripts/testv/headrot_case03_3000_q.csv @@ -1,3000 +0,0 @@ -0,0.965926,0.000000,0.000000,0.258819 -1,0.965499,0.000000,0.000000,0.260408 -2,0.965069,0.000000,0.000000,0.261995 -3,0.964637,0.000000,0.000000,0.263582 -4,0.964202,0.000000,0.000000,0.265169 -5,0.963765,0.000000,0.000000,0.266754 -6,0.963324,0.000000,0.000000,0.268339 -7,0.962882,0.000000,0.000000,0.269923 -8,0.962437,0.000000,0.000000,0.271507 -9,0.961989,0.000000,0.000000,0.273089 -10,0.961538,0.000000,0.000000,0.274671 -11,0.961085,0.000000,0.000000,0.276252 -12,0.960630,0.000000,0.000000,0.277832 -13,0.960172,0.000000,0.000000,0.279411 -14,0.959711,0.000000,0.000000,0.280990 -15,0.959248,0.000000,0.000000,0.282567 -16,0.958782,0.000000,0.000000,0.284144 -17,0.958313,0.000000,0.000000,0.285720 -18,0.957842,0.000000,0.000000,0.287295 -19,0.957369,0.000000,0.000000,0.288869 -20,0.956893,0.000000,0.000000,0.290442 -21,0.956414,0.000000,0.000000,0.292014 -22,0.955933,0.000000,0.000000,0.293585 -23,0.955449,0.000000,0.000000,0.295155 -24,0.954963,0.000000,0.000000,0.296725 -25,0.954474,0.000000,0.000000,0.298293 -26,0.953983,0.000000,0.000000,0.299861 -27,0.953489,0.000000,0.000000,0.301427 -28,0.952993,0.000000,0.000000,0.302992 -29,0.952494,0.000000,0.000000,0.304557 -30,0.951993,0.000000,0.000000,0.306120 -31,0.951489,0.000000,0.000000,0.307683 -32,0.950983,0.000000,0.000000,0.309244 -33,0.950474,0.000000,0.000000,0.310804 -34,0.949963,0.000000,0.000000,0.312363 -35,0.949449,0.000000,0.000000,0.313922 -36,0.948933,0.000000,0.000000,0.315479 -37,0.948414,0.000000,0.000000,0.317035 -38,0.947893,0.000000,0.000000,0.318589 -39,0.947369,0.000000,0.000000,0.320143 -40,0.946843,0.000000,0.000000,0.321696 -41,0.946315,0.000000,0.000000,0.323247 -42,0.945784,0.000000,0.000000,0.324797 -43,0.945250,0.000000,0.000000,0.326347 -44,0.944714,0.000000,0.000000,0.327895 -45,0.944176,0.000000,0.000000,0.329441 -46,0.943635,0.000000,0.000000,0.330987 -47,0.943092,0.000000,0.000000,0.332531 -48,0.942547,0.000000,0.000000,0.334075 -49,0.941999,0.000000,0.000000,0.335617 -50,0.941448,0.000000,0.000000,0.337157 -51,0.940896,0.000000,0.000000,0.338697 -52,0.940340,0.000000,0.000000,0.340235 -53,0.939783,0.000000,0.000000,0.341772 -54,0.939223,0.000000,0.000000,0.343308 -55,0.938661,0.000000,0.000000,0.344842 -56,0.938096,0.000000,0.000000,0.346375 -57,0.937529,0.000000,0.000000,0.347907 -58,0.936960,0.000000,0.000000,0.349438 -59,0.936388,0.000000,0.000000,0.350967 -60,0.935814,0.000000,0.000000,0.352495 -61,0.935237,0.000000,0.000000,0.354022 -62,0.934659,0.000000,0.000000,0.355547 -63,0.934077,0.000000,0.000000,0.357071 -64,0.933494,0.000000,0.000000,0.358593 -65,0.932908,0.000000,0.000000,0.360114 -66,0.932320,0.000000,0.000000,0.361634 -67,0.931730,0.000000,0.000000,0.363152 -68,0.931137,0.000000,0.000000,0.364669 -69,0.930542,0.000000,0.000000,0.366184 -70,0.929945,0.000000,0.000000,0.367698 -71,0.929346,0.000000,0.000000,0.369211 -72,0.928744,0.000000,0.000000,0.370722 -73,0.928140,0.000000,0.000000,0.372232 -74,0.927534,0.000000,0.000000,0.373740 -75,0.926925,0.000000,0.000000,0.375247 -76,0.926314,0.000000,0.000000,0.376752 -77,0.925701,0.000000,0.000000,0.378255 -78,0.925086,0.000000,0.000000,0.379758 -79,0.924469,0.000000,0.000000,0.381258 -80,0.923849,0.000000,0.000000,0.382758 -81,0.923227,0.000000,0.000000,0.384255 -82,0.922603,0.000000,0.000000,0.385751 -83,0.921977,0.000000,0.000000,0.387246 -84,0.921348,0.000000,0.000000,0.388739 -85,0.920717,0.000000,0.000000,0.390230 -86,0.920085,0.000000,0.000000,0.391720 -87,0.919450,0.000000,0.000000,0.393208 -88,0.918812,0.000000,0.000000,0.394695 -89,0.918173,0.000000,0.000000,0.396180 -90,0.917532,0.000000,0.000000,0.397663 -91,0.916888,0.000000,0.000000,0.399145 -92,0.916242,0.000000,0.000000,0.400625 -93,0.915594,0.000000,0.000000,0.402103 -94,0.914944,0.000000,0.000000,0.403580 -95,0.914292,0.000000,0.000000,0.405055 -96,0.913638,0.000000,0.000000,0.406529 -97,0.912982,0.000000,0.000000,0.408000 -98,0.912323,0.000000,0.000000,0.409470 -99,0.911663,0.000000,0.000000,0.410939 -100,0.911000,0.000000,0.000000,0.412405 -101,0.910336,0.000000,0.000000,0.413870 -102,0.909669,0.000000,0.000000,0.415333 -103,0.909001,0.000000,0.000000,0.416795 -104,0.908330,0.000000,0.000000,0.418255 -105,0.907657,0.000000,0.000000,0.419713 -106,0.906982,0.000000,0.000000,0.421169 -107,0.906305,0.000000,0.000000,0.422623 -108,0.905627,0.000000,0.000000,0.424076 -109,0.904946,0.000000,0.000000,0.425527 -110,0.904263,0.000000,0.000000,0.426976 -111,0.903578,0.000000,0.000000,0.428423 -112,0.902892,0.000000,0.000000,0.429868 -113,0.902203,0.000000,0.000000,0.431312 -114,0.901512,0.000000,0.000000,0.432754 -115,0.900819,0.000000,0.000000,0.434194 -116,0.900125,0.000000,0.000000,0.435632 -117,0.899428,0.000000,0.000000,0.437068 -118,0.898730,0.000000,0.000000,0.438502 -119,0.898030,0.000000,0.000000,0.439935 -120,0.897327,0.000000,0.000000,0.441366 -121,0.896623,0.000000,0.000000,0.442794 -122,0.895917,0.000000,0.000000,0.444221 -123,0.895209,0.000000,0.000000,0.445646 -124,0.894499,0.000000,0.000000,0.447069 -125,0.893788,0.000000,0.000000,0.448490 -126,0.893074,0.000000,0.000000,0.449909 -127,0.892359,0.000000,0.000000,0.451327 -128,0.891642,0.000000,0.000000,0.452742 -129,0.890923,0.000000,0.000000,0.454155 -130,0.890202,0.000000,0.000000,0.455567 -131,0.889479,0.000000,0.000000,0.456976 -132,0.888755,0.000000,0.000000,0.458383 -133,0.888028,0.000000,0.000000,0.459789 -134,0.887300,0.000000,0.000000,0.461192 -135,0.886570,0.000000,0.000000,0.462594 -136,0.885839,0.000000,0.000000,0.463993 -137,0.885105,0.000000,0.000000,0.465391 -138,0.884370,0.000000,0.000000,0.466786 -139,0.883633,0.000000,0.000000,0.468179 -140,0.882895,0.000000,0.000000,0.469571 -141,0.882155,0.000000,0.000000,0.470960 -142,0.881413,0.000000,0.000000,0.472347 -143,0.880669,0.000000,0.000000,0.473732 -144,0.879923,0.000000,0.000000,0.475116 -145,0.879176,0.000000,0.000000,0.476497 -146,0.878428,0.000000,0.000000,0.477876 -147,0.877677,0.000000,0.000000,0.479252 -148,0.876925,0.000000,0.000000,0.480627 -149,0.876171,0.000000,0.000000,0.482000 -150,0.875416,0.000000,0.000000,0.483370 -151,0.874659,0.000000,0.000000,0.484739 -152,0.873900,0.000000,0.000000,0.486105 -153,0.873140,0.000000,0.000000,0.487469 -154,0.872378,0.000000,0.000000,0.488832 -155,0.871615,0.000000,0.000000,0.490191 -156,0.870850,0.000000,0.000000,0.491549 -157,0.870083,0.000000,0.000000,0.492905 -158,0.869315,0.000000,0.000000,0.494258 -159,0.868545,0.000000,0.000000,0.495610 -160,0.867774,0.000000,0.000000,0.496959 -161,0.867001,0.000000,0.000000,0.498306 -162,0.866227,0.000000,0.000000,0.499650 -163,0.865451,0.000000,0.000000,0.500993 -164,0.864674,0.000000,0.000000,0.502333 -165,0.863895,0.000000,0.000000,0.503672 -166,0.863115,0.000000,0.000000,0.505007 -167,0.862333,0.000000,0.000000,0.506341 -168,0.861550,0.000000,0.000000,0.507673 -169,0.860765,0.000000,0.000000,0.509002 -170,0.859979,0.000000,0.000000,0.510329 -171,0.859192,0.000000,0.000000,0.511654 -172,0.858403,0.000000,0.000000,0.512976 -173,0.857612,0.000000,0.000000,0.514296 -174,0.856821,0.000000,0.000000,0.515614 -175,0.856028,0.000000,0.000000,0.516930 -176,0.855233,0.000000,0.000000,0.518244 -177,0.854437,0.000000,0.000000,0.519555 -178,0.853640,0.000000,0.000000,0.520864 -179,0.852841,0.000000,0.000000,0.522170 -180,0.852041,0.000000,0.000000,0.523475 -181,0.851240,0.000000,0.000000,0.524776 -182,0.850437,0.000000,0.000000,0.526076 -183,0.849634,0.000000,0.000000,0.527374 -184,0.848828,0.000000,0.000000,0.528669 -185,0.848022,0.000000,0.000000,0.529961 -186,0.847214,0.000000,0.000000,0.531252 -187,0.846405,0.000000,0.000000,0.532540 -188,0.845595,0.000000,0.000000,0.533825 -189,0.844783,0.000000,0.000000,0.535109 -190,0.843970,0.000000,0.000000,0.536390 -191,0.843156,0.000000,0.000000,0.537668 -192,0.842341,0.000000,0.000000,0.538944 -193,0.841525,0.000000,0.000000,0.540218 -194,0.840707,0.000000,0.000000,0.541490 -195,0.839888,0.000000,0.000000,0.542759 -196,0.839069,0.000000,0.000000,0.544026 -197,0.838247,0.000000,0.000000,0.545290 -198,0.837425,0.000000,0.000000,0.546552 -199,0.836602,0.000000,0.000000,0.547812 -200,0.835777,0.000000,0.000000,0.549069 -201,0.834952,0.000000,0.000000,0.550323 -202,0.834125,0.000000,0.000000,0.551576 -203,0.833297,0.000000,0.000000,0.552826 -204,0.832468,0.000000,0.000000,0.554073 -205,0.831638,0.000000,0.000000,0.555318 -206,0.830807,0.000000,0.000000,0.556561 -207,0.829975,0.000000,0.000000,0.557801 -208,0.829142,0.000000,0.000000,0.559039 -209,0.828307,0.000000,0.000000,0.560274 -210,0.827472,0.000000,0.000000,0.561507 -211,0.826636,0.000000,0.000000,0.562737 -212,0.825799,0.000000,0.000000,0.563965 -213,0.824960,0.000000,0.000000,0.565191 -214,0.824121,0.000000,0.000000,0.566413 -215,0.823281,0.000000,0.000000,0.567634 -216,0.822440,0.000000,0.000000,0.568852 -217,0.821598,0.000000,0.000000,0.570068 -218,0.820755,0.000000,0.000000,0.571281 -219,0.819911,0.000000,0.000000,0.572491 -220,0.819066,0.000000,0.000000,0.573699 -221,0.818220,0.000000,0.000000,0.574905 -222,0.817374,0.000000,0.000000,0.576108 -223,0.816526,0.000000,0.000000,0.577308 -224,0.815678,0.000000,0.000000,0.578506 -225,0.814829,0.000000,0.000000,0.579702 -226,0.813979,0.000000,0.000000,0.580895 -227,0.813128,0.000000,0.000000,0.582085 -228,0.812276,0.000000,0.000000,0.583273 -229,0.811424,0.000000,0.000000,0.584459 -230,0.810570,0.000000,0.000000,0.585641 -231,0.809716,0.000000,0.000000,0.586822 -232,0.808861,0.000000,0.000000,0.588000 -233,0.808006,0.000000,0.000000,0.589175 -234,0.807149,0.000000,0.000000,0.590348 -235,0.806292,0.000000,0.000000,0.591518 -236,0.805434,0.000000,0.000000,0.592685 -237,0.804576,0.000000,0.000000,0.593850 -238,0.803716,0.000000,0.000000,0.595013 -239,0.802856,0.000000,0.000000,0.596173 -240,0.801996,0.000000,0.000000,0.597330 -241,0.801134,0.000000,0.000000,0.598485 -242,0.800272,0.000000,0.000000,0.599637 -243,0.799409,0.000000,0.000000,0.600787 -244,0.798546,0.000000,0.000000,0.601934 -245,0.797682,0.000000,0.000000,0.603078 -246,0.796818,0.000000,0.000000,0.604220 -247,0.795952,0.000000,0.000000,0.605359 -248,0.795087,0.000000,0.000000,0.606496 -249,0.794220,0.000000,0.000000,0.607630 -250,0.793353,0.000000,0.000000,0.608761 -251,0.792486,0.000000,0.000000,0.609890 -252,0.791618,0.000000,0.000000,0.611017 -253,0.790749,0.000000,0.000000,0.612140 -254,0.789880,0.000000,0.000000,0.613261 -255,0.789010,0.000000,0.000000,0.614380 -256,0.788140,0.000000,0.000000,0.615496 -257,0.787270,0.000000,0.000000,0.616609 -258,0.786399,0.000000,0.000000,0.617719 -259,0.785527,0.000000,0.000000,0.618827 -260,0.784655,0.000000,0.000000,0.619933 -261,0.783783,0.000000,0.000000,0.621035 -262,0.782910,0.000000,0.000000,0.622135 -263,0.782036,0.000000,0.000000,0.623233 -264,0.781163,0.000000,0.000000,0.624328 -265,0.780288,0.000000,0.000000,0.625420 -266,0.779414,0.000000,0.000000,0.626509 -267,0.778539,0.000000,0.000000,0.627596 -268,0.777664,0.000000,0.000000,0.628681 -269,0.776788,0.000000,0.000000,0.629762 -270,0.775912,0.000000,0.000000,0.630841 -271,0.775036,0.000000,0.000000,0.631917 -272,0.774159,0.000000,0.000000,0.632991 -273,0.773282,0.000000,0.000000,0.634062 -274,0.772405,0.000000,0.000000,0.635130 -275,0.771527,0.000000,0.000000,0.636196 -276,0.770650,0.000000,0.000000,0.637259 -277,0.769771,0.000000,0.000000,0.638320 -278,0.768893,0.000000,0.000000,0.639377 -279,0.768015,0.000000,0.000000,0.640432 -280,0.767136,0.000000,0.000000,0.641485 -281,0.766257,0.000000,0.000000,0.642534 -282,0.765378,0.000000,0.000000,0.643581 -283,0.764498,0.000000,0.000000,0.644626 -284,0.763619,0.000000,0.000000,0.645668 -285,0.762739,0.000000,0.000000,0.646707 -286,0.761859,0.000000,0.000000,0.647743 -287,0.760979,0.000000,0.000000,0.648777 -288,0.760099,0.000000,0.000000,0.649808 -289,0.759218,0.000000,0.000000,0.650836 -290,0.758338,0.000000,0.000000,0.651862 -291,0.757457,0.000000,0.000000,0.652885 -292,0.756577,0.000000,0.000000,0.653905 -293,0.755696,0.000000,0.000000,0.654923 -294,0.754815,0.000000,0.000000,0.655937 -295,0.753934,0.000000,0.000000,0.656950 -296,0.753054,0.000000,0.000000,0.657959 -297,0.752173,0.000000,0.000000,0.658966 -298,0.751292,0.000000,0.000000,0.659970 -299,0.750411,0.000000,0.000000,0.660972 -300,0.749530,0.000000,0.000000,0.661971 -301,0.748649,0.000000,0.000000,0.662967 -302,0.747768,0.000000,0.000000,0.663960 -303,0.746887,0.000000,0.000000,0.664951 -304,0.746006,0.000000,0.000000,0.665939 -305,0.745126,0.000000,0.000000,0.666924 -306,0.744245,0.000000,0.000000,0.667907 -307,0.743364,0.000000,0.000000,0.668887 -308,0.742484,0.000000,0.000000,0.669864 -309,0.741603,0.000000,0.000000,0.670839 -310,0.740723,0.000000,0.000000,0.671811 -311,0.739843,0.000000,0.000000,0.672780 -312,0.738963,0.000000,0.000000,0.673746 -313,0.738083,0.000000,0.000000,0.674710 -314,0.737203,0.000000,0.000000,0.675671 -315,0.736324,0.000000,0.000000,0.676629 -316,0.735444,0.000000,0.000000,0.677585 -317,0.734565,0.000000,0.000000,0.678538 -318,0.733686,0.000000,0.000000,0.679488 -319,0.732807,0.000000,0.000000,0.680436 -320,0.731929,0.000000,0.000000,0.681381 -321,0.731051,0.000000,0.000000,0.682323 -322,0.730173,0.000000,0.000000,0.683263 -323,0.729295,0.000000,0.000000,0.684199 -324,0.728417,0.000000,0.000000,0.685134 -325,0.727540,0.000000,0.000000,0.686065 -326,0.726663,0.000000,0.000000,0.686994 -327,0.725787,0.000000,0.000000,0.687920 -328,0.724911,0.000000,0.000000,0.688843 -329,0.724035,0.000000,0.000000,0.689764 -330,0.723159,0.000000,0.000000,0.690681 -331,0.722284,0.000000,0.000000,0.691597 -332,0.721409,0.000000,0.000000,0.692509 -333,0.720535,0.000000,0.000000,0.693419 -334,0.719660,0.000000,0.000000,0.694326 -335,0.718787,0.000000,0.000000,0.695231 -336,0.717913,0.000000,0.000000,0.696132 -337,0.717041,0.000000,0.000000,0.697031 -338,0.716168,0.000000,0.000000,0.697928 -339,0.715296,0.000000,0.000000,0.698821 -340,0.714425,0.000000,0.000000,0.699712 -341,0.713554,0.000000,0.000000,0.700601 -342,0.712683,0.000000,0.000000,0.701486 -343,0.711813,0.000000,0.000000,0.702369 -344,0.710943,0.000000,0.000000,0.703249 -345,0.710074,0.000000,0.000000,0.704127 -346,0.709206,0.000000,0.000000,0.705001 -347,0.708338,0.000000,0.000000,0.705874 -348,0.707470,0.000000,0.000000,0.706743 -349,0.706603,0.000000,0.000000,0.707610 -350,0.705737,0.000000,0.000000,0.708474 -351,0.704871,0.000000,0.000000,0.709335 -352,0.704006,0.000000,0.000000,0.710194 -353,0.703142,0.000000,0.000000,0.711050 -354,0.702278,0.000000,0.000000,0.711903 -355,0.701414,0.000000,0.000000,0.712754 -356,0.700552,0.000000,0.000000,0.713602 -357,0.699690,0.000000,0.000000,0.714447 -358,0.698828,0.000000,0.000000,0.715290 -359,0.697967,0.000000,0.000000,0.716130 -360,0.697107,0.000000,0.000000,0.716967 -361,0.696248,0.000000,0.000000,0.717801 -362,0.695389,0.000000,0.000000,0.718633 -363,0.694531,0.000000,0.000000,0.719463 -364,0.693674,0.000000,0.000000,0.720289 -365,0.692818,0.000000,0.000000,0.721113 -366,0.691962,0.000000,0.000000,0.721934 -367,0.691107,0.000000,0.000000,0.722753 -368,0.690253,0.000000,0.000000,0.723569 -369,0.689399,0.000000,0.000000,0.724382 -370,0.688546,0.000000,0.000000,0.725192 -371,0.687694,0.000000,0.000000,0.726000 -372,0.686843,0.000000,0.000000,0.726805 -373,0.685993,0.000000,0.000000,0.727608 -374,0.685144,0.000000,0.000000,0.728408 -375,0.684295,0.000000,0.000000,0.729205 -376,0.683447,0.000000,0.000000,0.730000 -377,0.682600,0.000000,0.000000,0.730792 -378,0.681754,0.000000,0.000000,0.731581 -379,0.680909,0.000000,0.000000,0.732368 -380,0.680065,0.000000,0.000000,0.733152 -381,0.679222,0.000000,0.000000,0.733933 -382,0.678379,0.000000,0.000000,0.734712 -383,0.677538,0.000000,0.000000,0.735488 -384,0.676697,0.000000,0.000000,0.736261 -385,0.675858,0.000000,0.000000,0.737032 -386,0.675019,0.000000,0.000000,0.737800 -387,0.674181,0.000000,0.000000,0.738566 -388,0.673345,0.000000,0.000000,0.739329 -389,0.672509,0.000000,0.000000,0.740089 -390,0.671674,0.000000,0.000000,0.740847 -391,0.670840,0.000000,0.000000,0.741602 -392,0.670008,0.000000,0.000000,0.742354 -393,0.669176,0.000000,0.000000,0.743104 -394,0.668345,0.000000,0.000000,0.743851 -395,0.667516,0.000000,0.000000,0.744596 -396,0.666687,0.000000,0.000000,0.745337 -397,0.665860,0.000000,0.000000,0.746077 -398,0.665034,0.000000,0.000000,0.746813 -399,0.664208,0.000000,0.000000,0.747548 -400,0.663384,0.000000,0.000000,0.748279 -401,0.662561,0.000000,0.000000,0.749008 -402,0.661739,0.000000,0.000000,0.749734 -403,0.660918,0.000000,0.000000,0.750458 -404,0.660099,0.000000,0.000000,0.751179 -405,0.659280,0.000000,0.000000,0.751897 -406,0.658463,0.000000,0.000000,0.752613 -407,0.657647,0.000000,0.000000,0.753326 -408,0.656832,0.000000,0.000000,0.754037 -409,0.656018,0.000000,0.000000,0.754745 -410,0.655205,0.000000,0.000000,0.755451 -411,0.654394,0.000000,0.000000,0.756154 -412,0.653584,0.000000,0.000000,0.756854 -413,0.652775,0.000000,0.000000,0.757552 -414,0.651967,0.000000,0.000000,0.758247 -415,0.651161,0.000000,0.000000,0.758940 -416,0.650356,0.000000,0.000000,0.759630 -417,0.649552,0.000000,0.000000,0.760317 -418,0.648749,0.000000,0.000000,0.761002 -419,0.647948,0.000000,0.000000,0.761685 -420,0.647148,0.000000,0.000000,0.762365 -421,0.646349,0.000000,0.000000,0.763042 -422,0.645552,0.000000,0.000000,0.763717 -423,0.644756,0.000000,0.000000,0.764389 -424,0.643961,0.000000,0.000000,0.765058 -425,0.643168,0.000000,0.000000,0.765725 -426,0.642376,0.000000,0.000000,0.766390 -427,0.641585,0.000000,0.000000,0.767052 -428,0.640796,0.000000,0.000000,0.767711 -429,0.640008,0.000000,0.000000,0.768368 -430,0.639222,0.000000,0.000000,0.769023 -431,0.638436,0.000000,0.000000,0.769675 -432,0.637653,0.000000,0.000000,0.770324 -433,0.636871,0.000000,0.000000,0.770971 -434,0.636090,0.000000,0.000000,0.771615 -435,0.635311,0.000000,0.000000,0.772257 -436,0.634533,0.000000,0.000000,0.772896 -437,0.633756,0.000000,0.000000,0.773533 -438,0.632981,0.000000,0.000000,0.774167 -439,0.632208,0.000000,0.000000,0.774799 -440,0.631436,0.000000,0.000000,0.775428 -441,0.630666,0.000000,0.000000,0.776055 -442,0.629897,0.000000,0.000000,0.776679 -443,0.629129,0.000000,0.000000,0.777301 -444,0.628363,0.000000,0.000000,0.777920 -445,0.627599,0.000000,0.000000,0.778537 -446,0.626836,0.000000,0.000000,0.779151 -447,0.626075,0.000000,0.000000,0.779763 -448,0.625316,0.000000,0.000000,0.780372 -449,0.624557,0.000000,0.000000,0.780979 -450,0.623801,0.000000,0.000000,0.781583 -451,0.623046,0.000000,0.000000,0.782185 -452,0.622293,0.000000,0.000000,0.782785 -453,0.621541,0.000000,0.000000,0.783382 -454,0.620791,0.000000,0.000000,0.783976 -455,0.620043,0.000000,0.000000,0.784568 -456,0.619296,0.000000,0.000000,0.785158 -457,0.618551,0.000000,0.000000,0.785745 -458,0.617807,0.000000,0.000000,0.786330 -459,0.617065,0.000000,0.000000,0.786912 -460,0.616325,0.000000,0.000000,0.787492 -461,0.615587,0.000000,0.000000,0.788069 -462,0.614850,0.000000,0.000000,0.788644 -463,0.614115,0.000000,0.000000,0.789216 -464,0.613382,0.000000,0.000000,0.789787 -465,0.612650,0.000000,0.000000,0.790354 -466,0.611920,0.000000,0.000000,0.790919 -467,0.611192,0.000000,0.000000,0.791482 -468,0.610466,0.000000,0.000000,0.792043 -469,0.609741,0.000000,0.000000,0.792601 -470,0.609018,0.000000,0.000000,0.793156 -471,0.608297,0.000000,0.000000,0.793709 -472,0.607578,0.000000,0.000000,0.794260 -473,0.606860,0.000000,0.000000,0.794809 -474,0.606144,0.000000,0.000000,0.795355 -475,0.605430,0.000000,0.000000,0.795898 -476,0.604718,0.000000,0.000000,0.796439 -477,0.604008,0.000000,0.000000,0.796978 -478,0.603300,0.000000,0.000000,0.797515 -479,0.602593,0.000000,0.000000,0.798049 -480,0.601888,0.000000,0.000000,0.798580 -481,0.601185,0.000000,0.000000,0.799110 -482,0.600484,0.000000,0.000000,0.799637 -483,0.599785,0.000000,0.000000,0.800161 -484,0.599088,0.000000,0.000000,0.800684 -485,0.598392,0.000000,0.000000,0.801203 -486,0.597699,0.000000,0.000000,0.801721 -487,0.597007,0.000000,0.000000,0.802236 -488,0.596317,0.000000,0.000000,0.802749 -489,0.595629,0.000000,0.000000,0.803259 -490,0.594944,0.000000,0.000000,0.803767 -491,0.594260,0.000000,0.000000,0.804273 -492,0.593578,0.000000,0.000000,0.804777 -493,0.592898,0.000000,0.000000,0.805278 -494,0.592220,0.000000,0.000000,0.805777 -495,0.591543,0.000000,0.000000,0.806273 -496,0.590869,0.000000,0.000000,0.806767 -497,0.590197,0.000000,0.000000,0.807259 -498,0.589527,0.000000,0.000000,0.807749 -499,0.588859,0.000000,0.000000,0.808236 -500,0.588193,0.000000,0.000000,0.808721 -501,0.587528,0.000000,0.000000,0.809203 -502,0.586866,0.000000,0.000000,0.809684 -503,0.586206,0.000000,0.000000,0.810162 -504,0.585548,0.000000,0.000000,0.810638 -505,0.584892,0.000000,0.000000,0.811111 -506,0.584238,0.000000,0.000000,0.811582 -507,0.583586,0.000000,0.000000,0.812051 -508,0.582937,0.000000,0.000000,0.812518 -509,0.582289,0.000000,0.000000,0.812982 -510,0.581643,0.000000,0.000000,0.813444 -511,0.581000,0.000000,0.000000,0.813904 -512,0.580358,0.000000,0.000000,0.814361 -513,0.579719,0.000000,0.000000,0.814817 -514,0.579082,0.000000,0.000000,0.815270 -515,0.578446,0.000000,0.000000,0.815720 -516,0.577813,0.000000,0.000000,0.816169 -517,0.577183,0.000000,0.000000,0.816615 -518,0.576554,0.000000,0.000000,0.817059 -519,0.575927,0.000000,0.000000,0.817501 -520,0.575303,0.000000,0.000000,0.817941 -521,0.574681,0.000000,0.000000,0.818378 -522,0.574060,0.000000,0.000000,0.818813 -523,0.573443,0.000000,0.000000,0.819246 -524,0.572827,0.000000,0.000000,0.819676 -525,0.572213,0.000000,0.000000,0.820105 -526,0.571602,0.000000,0.000000,0.820531 -527,0.570993,0.000000,0.000000,0.820955 -528,0.570386,0.000000,0.000000,0.821377 -529,0.569781,0.000000,0.000000,0.821796 -530,0.569179,0.000000,0.000000,0.822214 -531,0.568578,0.000000,0.000000,0.822629 -532,0.567980,0.000000,0.000000,0.823042 -533,0.567385,0.000000,0.000000,0.823453 -534,0.566791,0.000000,0.000000,0.823862 -535,0.566200,0.000000,0.000000,0.824268 -536,0.565611,0.000000,0.000000,0.824672 -537,0.565024,0.000000,0.000000,0.825074 -538,0.564440,0.000000,0.000000,0.825474 -539,0.563858,0.000000,0.000000,0.825872 -540,0.563278,0.000000,0.000000,0.826268 -541,0.562700,0.000000,0.000000,0.826661 -542,0.562125,0.000000,0.000000,0.827052 -543,0.561552,0.000000,0.000000,0.827441 -544,0.560981,0.000000,0.000000,0.827828 -545,0.560413,0.000000,0.000000,0.828213 -546,0.559847,0.000000,0.000000,0.828596 -547,0.559284,0.000000,0.000000,0.828976 -548,0.558722,0.000000,0.000000,0.829355 -549,0.558163,0.000000,0.000000,0.829731 -550,0.557607,0.000000,0.000000,0.830105 -551,0.557053,0.000000,0.000000,0.830477 -552,0.556501,0.000000,0.000000,0.830847 -553,0.555951,0.000000,0.000000,0.831215 -554,0.555404,0.000000,0.000000,0.831580 -555,0.554860,0.000000,0.000000,0.831944 -556,0.554317,0.000000,0.000000,0.832305 -557,0.553777,0.000000,0.000000,0.832665 -558,0.553240,0.000000,0.000000,0.833022 -559,0.552705,0.000000,0.000000,0.833377 -560,0.552172,0.000000,0.000000,0.833730 -561,0.551642,0.000000,0.000000,0.834081 -562,0.551114,0.000000,0.000000,0.834430 -563,0.550589,0.000000,0.000000,0.834777 -564,0.550066,0.000000,0.000000,0.835121 -565,0.549545,0.000000,0.000000,0.835464 -566,0.549027,0.000000,0.000000,0.835804 -567,0.548512,0.000000,0.000000,0.836143 -568,0.547999,0.000000,0.000000,0.836479 -569,0.547488,0.000000,0.000000,0.836814 -570,0.546980,0.000000,0.000000,0.837146 -571,0.546474,0.000000,0.000000,0.837476 -572,0.545971,0.000000,0.000000,0.837804 -573,0.545470,0.000000,0.000000,0.838130 -574,0.544972,0.000000,0.000000,0.838454 -575,0.544476,0.000000,0.000000,0.838776 -576,0.543983,0.000000,0.000000,0.839096 -577,0.543492,0.000000,0.000000,0.839414 -578,0.543004,0.000000,0.000000,0.839730 -579,0.542519,0.000000,0.000000,0.840044 -580,0.542035,0.000000,0.000000,0.840356 -581,0.541555,0.000000,0.000000,0.840665 -582,0.541077,0.000000,0.000000,0.840973 -583,0.540601,0.000000,0.000000,0.841279 -584,0.540128,0.000000,0.000000,0.841583 -585,0.539658,0.000000,0.000000,0.841884 -586,0.539190,0.000000,0.000000,0.842184 -587,0.538725,0.000000,0.000000,0.842482 -588,0.538262,0.000000,0.000000,0.842777 -589,0.537802,0.000000,0.000000,0.843071 -590,0.537345,0.000000,0.000000,0.843363 -591,0.536890,0.000000,0.000000,0.843652 -592,0.536437,0.000000,0.000000,0.843940 -593,0.535988,0.000000,0.000000,0.844226 -594,0.535541,0.000000,0.000000,0.844510 -595,0.535096,0.000000,0.000000,0.844791 -596,0.534654,0.000000,0.000000,0.845071 -597,0.534215,0.000000,0.000000,0.845349 -598,0.533778,0.000000,0.000000,0.845625 -599,0.533344,0.000000,0.000000,0.845898 -600,0.532913,0.000000,0.000000,0.846170 -601,0.532484,0.000000,0.000000,0.846440 -602,0.532058,0.000000,0.000000,0.846708 -603,0.531634,0.000000,0.000000,0.846974 -604,0.531213,0.000000,0.000000,0.847238 -605,0.530795,0.000000,0.000000,0.847500 -606,0.530379,0.000000,0.000000,0.847760 -607,0.529967,0.000000,0.000000,0.848019 -608,0.529556,0.000000,0.000000,0.848275 -609,0.529149,0.000000,0.000000,0.848529 -610,0.528744,0.000000,0.000000,0.848781 -611,0.528342,0.000000,0.000000,0.849032 -612,0.527942,0.000000,0.000000,0.849280 -613,0.527545,0.000000,0.000000,0.849527 -614,0.527151,0.000000,0.000000,0.849772 -615,0.526760,0.000000,0.000000,0.850014 -616,0.526371,0.000000,0.000000,0.850255 -617,0.525985,0.000000,0.000000,0.850494 -618,0.525602,0.000000,0.000000,0.850731 -619,0.525221,0.000000,0.000000,0.850966 -620,0.524843,0.000000,0.000000,0.851199 -621,0.524468,0.000000,0.000000,0.851430 -622,0.524096,0.000000,0.000000,0.851659 -623,0.523726,0.000000,0.000000,0.851887 -624,0.523359,0.000000,0.000000,0.852112 -625,0.522995,0.000000,0.000000,0.852336 -626,0.522633,0.000000,0.000000,0.852558 -627,0.522274,0.000000,0.000000,0.852778 -628,0.521918,0.000000,0.000000,0.852995 -629,0.521565,0.000000,0.000000,0.853212 -630,0.521215,0.000000,0.000000,0.853426 -631,0.520867,0.000000,0.000000,0.853638 -632,0.520522,0.000000,0.000000,0.853848 -633,0.520180,0.000000,0.000000,0.854057 -634,0.519840,0.000000,0.000000,0.854264 -635,0.519504,0.000000,0.000000,0.854468 -636,0.519170,0.000000,0.000000,0.854671 -637,0.518839,0.000000,0.000000,0.854872 -638,0.518510,0.000000,0.000000,0.855071 -639,0.518185,0.000000,0.000000,0.855269 -640,0.517862,0.000000,0.000000,0.855464 -641,0.517542,0.000000,0.000000,0.855658 -642,0.517225,0.000000,0.000000,0.855849 -643,0.516911,0.000000,0.000000,0.856039 -644,0.516599,0.000000,0.000000,0.856227 -645,0.516290,0.000000,0.000000,0.856414 -646,0.515984,0.000000,0.000000,0.856598 -647,0.515681,0.000000,0.000000,0.856780 -648,0.515381,0.000000,0.000000,0.856961 -649,0.515084,0.000000,0.000000,0.857140 -650,0.514789,0.000000,0.000000,0.857317 -651,0.514497,0.000000,0.000000,0.857492 -652,0.514208,0.000000,0.000000,0.857665 -653,0.513922,0.000000,0.000000,0.857837 -654,0.513639,0.000000,0.000000,0.858006 -655,0.513358,0.000000,0.000000,0.858174 -656,0.513081,0.000000,0.000000,0.858340 -657,0.512806,0.000000,0.000000,0.858504 -658,0.512534,0.000000,0.000000,0.858667 -659,0.512265,0.000000,0.000000,0.858827 -660,0.511999,0.000000,0.000000,0.858986 -661,0.511736,0.000000,0.000000,0.859143 -662,0.511475,0.000000,0.000000,0.859298 -663,0.511218,0.000000,0.000000,0.859451 -664,0.510963,0.000000,0.000000,0.859603 -665,0.510711,0.000000,0.000000,0.859752 -666,0.510462,0.000000,0.000000,0.859900 -667,0.510216,0.000000,0.000000,0.860046 -668,0.509973,0.000000,0.000000,0.860191 -669,0.509732,0.000000,0.000000,0.860333 -670,0.509495,0.000000,0.000000,0.860474 -671,0.509260,0.000000,0.000000,0.860613 -672,0.509028,0.000000,0.000000,0.860750 -673,0.508800,0.000000,0.000000,0.860885 -674,0.508574,0.000000,0.000000,0.861019 -675,0.508351,0.000000,0.000000,0.861150 -676,0.508130,0.000000,0.000000,0.861280 -677,0.507913,0.000000,0.000000,0.861408 -678,0.507699,0.000000,0.000000,0.861535 -679,0.507487,0.000000,0.000000,0.861659 -680,0.507279,0.000000,0.000000,0.861782 -681,0.507073,0.000000,0.000000,0.861903 -682,0.506871,0.000000,0.000000,0.862022 -683,0.506671,0.000000,0.000000,0.862140 -684,0.506474,0.000000,0.000000,0.862255 -685,0.506280,0.000000,0.000000,0.862369 -686,0.506089,0.000000,0.000000,0.862481 -687,0.505901,0.000000,0.000000,0.862592 -688,0.505715,0.000000,0.000000,0.862700 -689,0.505533,0.000000,0.000000,0.862807 -690,0.505354,0.000000,0.000000,0.862912 -691,0.505177,0.000000,0.000000,0.863016 -692,0.505004,0.000000,0.000000,0.863117 -693,0.504833,0.000000,0.000000,0.863217 -694,0.504666,0.000000,0.000000,0.863315 -695,0.504501,0.000000,0.000000,0.863411 -696,0.504339,0.000000,0.000000,0.863506 -697,0.504180,0.000000,0.000000,0.863598 -698,0.504024,0.000000,0.000000,0.863689 -699,0.503871,0.000000,0.000000,0.863779 -700,0.503721,0.000000,0.000000,0.863866 -701,0.503574,0.000000,0.000000,0.863952 -702,0.503430,0.000000,0.000000,0.864036 -703,0.503289,0.000000,0.000000,0.864118 -704,0.503151,0.000000,0.000000,0.864199 -705,0.503016,0.000000,0.000000,0.864277 -706,0.502883,0.000000,0.000000,0.864354 -707,0.502754,0.000000,0.000000,0.864430 -708,0.502628,0.000000,0.000000,0.864503 -709,0.502504,0.000000,0.000000,0.864575 -710,0.502384,0.000000,0.000000,0.864645 -711,0.502266,0.000000,0.000000,0.864713 -712,0.502151,0.000000,0.000000,0.864780 -713,0.502040,0.000000,0.000000,0.864844 -714,0.501931,0.000000,0.000000,0.864908 -715,0.501826,0.000000,0.000000,0.864969 -716,0.501723,0.000000,0.000000,0.865028 -717,0.501623,0.000000,0.000000,0.865086 -718,0.501526,0.000000,0.000000,0.865142 -719,0.501432,0.000000,0.000000,0.865197 -720,0.501342,0.000000,0.000000,0.865249 -721,0.501254,0.000000,0.000000,0.865300 -722,0.501169,0.000000,0.000000,0.865350 -723,0.501087,0.000000,0.000000,0.865397 -724,0.501008,0.000000,0.000000,0.865443 -725,0.500932,0.000000,0.000000,0.865487 -726,0.500859,0.000000,0.000000,0.865529 -727,0.500789,0.000000,0.000000,0.865570 -728,0.500722,0.000000,0.000000,0.865608 -729,0.500658,0.000000,0.000000,0.865645 -730,0.500597,0.000000,0.000000,0.865681 -731,0.500538,0.000000,0.000000,0.865714 -732,0.500483,0.000000,0.000000,0.865746 -733,0.500431,0.000000,0.000000,0.865776 -734,0.500382,0.000000,0.000000,0.865805 -735,0.500336,0.000000,0.000000,0.865832 -736,0.500292,0.000000,0.000000,0.865857 -737,0.500252,0.000000,0.000000,0.865880 -738,0.500215,0.000000,0.000000,0.865901 -739,0.500180,0.000000,0.000000,0.865921 -740,0.500149,0.000000,0.000000,0.865939 -741,0.500121,0.000000,0.000000,0.865956 -742,0.500095,0.000000,0.000000,0.865970 -743,0.500073,0.000000,0.000000,0.865983 -744,0.500054,0.000000,0.000000,0.865994 -745,0.500037,0.000000,0.000000,0.866004 -746,0.500024,0.000000,0.000000,0.866012 -747,0.500013,0.000000,0.000000,0.866018 -748,0.500006,0.000000,0.000000,0.866022 -749,0.500001,0.000000,0.000000,0.866025 -750,0.500000,0.000000,0.000000,0.866025 -751,0.500001,0.000000,0.000000,0.866025 -752,0.500006,0.000000,0.000000,0.866022 -753,0.500013,0.000000,0.000000,0.866018 -754,0.500024,0.000000,0.000000,0.866012 -755,0.500037,0.000000,0.000000,0.866004 -756,0.500054,0.000000,0.000000,0.865994 -757,0.500073,0.000000,0.000000,0.865983 -758,0.500095,0.000000,0.000000,0.865970 -759,0.500121,0.000000,0.000000,0.865956 -760,0.500149,0.000000,0.000000,0.865939 -761,0.500180,0.000000,0.000000,0.865921 -762,0.500215,0.000000,0.000000,0.865901 -763,0.500252,0.000000,0.000000,0.865880 -764,0.500292,0.000000,0.000000,0.865857 -765,0.500336,0.000000,0.000000,0.865832 -766,0.500382,0.000000,0.000000,0.865805 -767,0.500431,0.000000,0.000000,0.865776 -768,0.500483,0.000000,0.000000,0.865746 -769,0.500538,0.000000,0.000000,0.865714 -770,0.500597,0.000000,0.000000,0.865681 -771,0.500658,0.000000,0.000000,0.865645 -772,0.500722,0.000000,0.000000,0.865608 -773,0.500789,0.000000,0.000000,0.865570 -774,0.500859,0.000000,0.000000,0.865529 -775,0.500932,0.000000,0.000000,0.865487 -776,0.501008,0.000000,0.000000,0.865443 -777,0.501087,0.000000,0.000000,0.865397 -778,0.501169,0.000000,0.000000,0.865350 -779,0.501254,0.000000,0.000000,0.865300 -780,0.501342,0.000000,0.000000,0.865249 -781,0.501432,0.000000,0.000000,0.865197 -782,0.501526,0.000000,0.000000,0.865142 -783,0.501623,0.000000,0.000000,0.865086 -784,0.501723,0.000000,0.000000,0.865028 -785,0.501826,0.000000,0.000000,0.864969 -786,0.501931,0.000000,0.000000,0.864908 -787,0.502040,0.000000,0.000000,0.864844 -788,0.502151,0.000000,0.000000,0.864780 -789,0.502266,0.000000,0.000000,0.864713 -790,0.502384,0.000000,0.000000,0.864645 -791,0.502504,0.000000,0.000000,0.864575 -792,0.502628,0.000000,0.000000,0.864503 -793,0.502754,0.000000,0.000000,0.864430 -794,0.502883,0.000000,0.000000,0.864354 -795,0.503016,0.000000,0.000000,0.864277 -796,0.503151,0.000000,0.000000,0.864199 -797,0.503289,0.000000,0.000000,0.864118 -798,0.503430,0.000000,0.000000,0.864036 -799,0.503574,0.000000,0.000000,0.863952 -800,0.503721,0.000000,0.000000,0.863866 -801,0.503871,0.000000,0.000000,0.863779 -802,0.504024,0.000000,0.000000,0.863689 -803,0.504180,0.000000,0.000000,0.863598 -804,0.504339,0.000000,0.000000,0.863506 -805,0.504501,0.000000,0.000000,0.863411 -806,0.504666,0.000000,0.000000,0.863315 -807,0.504833,0.000000,0.000000,0.863217 -808,0.505004,0.000000,0.000000,0.863117 -809,0.505177,0.000000,0.000000,0.863016 -810,0.505354,0.000000,0.000000,0.862912 -811,0.505533,0.000000,0.000000,0.862807 -812,0.505715,0.000000,0.000000,0.862700 -813,0.505901,0.000000,0.000000,0.862592 -814,0.506089,0.000000,0.000000,0.862481 -815,0.506280,0.000000,0.000000,0.862369 -816,0.506474,0.000000,0.000000,0.862255 -817,0.506671,0.000000,0.000000,0.862140 -818,0.506871,0.000000,0.000000,0.862022 -819,0.507073,0.000000,0.000000,0.861903 -820,0.507279,0.000000,0.000000,0.861782 -821,0.507487,0.000000,0.000000,0.861659 -822,0.507699,0.000000,0.000000,0.861535 -823,0.507913,0.000000,0.000000,0.861408 -824,0.508130,0.000000,0.000000,0.861280 -825,0.508351,0.000000,0.000000,0.861150 -826,0.508574,0.000000,0.000000,0.861019 -827,0.508800,0.000000,0.000000,0.860885 -828,0.509028,0.000000,0.000000,0.860750 -829,0.509260,0.000000,0.000000,0.860613 -830,0.509495,0.000000,0.000000,0.860474 -831,0.509732,0.000000,0.000000,0.860333 -832,0.509973,0.000000,0.000000,0.860191 -833,0.510216,0.000000,0.000000,0.860046 -834,0.510462,0.000000,0.000000,0.859900 -835,0.510711,0.000000,0.000000,0.859752 -836,0.510963,0.000000,0.000000,0.859603 -837,0.511218,0.000000,0.000000,0.859451 -838,0.511475,0.000000,0.000000,0.859298 -839,0.511736,0.000000,0.000000,0.859143 -840,0.511999,0.000000,0.000000,0.858986 -841,0.512265,0.000000,0.000000,0.858827 -842,0.512534,0.000000,0.000000,0.858667 -843,0.512806,0.000000,0.000000,0.858504 -844,0.513081,0.000000,0.000000,0.858340 -845,0.513358,0.000000,0.000000,0.858174 -846,0.513639,0.000000,0.000000,0.858006 -847,0.513922,0.000000,0.000000,0.857837 -848,0.514208,0.000000,0.000000,0.857665 -849,0.514497,0.000000,0.000000,0.857492 -850,0.514789,0.000000,0.000000,0.857317 -851,0.515084,0.000000,0.000000,0.857140 -852,0.515381,0.000000,0.000000,0.856961 -853,0.515681,0.000000,0.000000,0.856780 -854,0.515984,0.000000,0.000000,0.856598 -855,0.516290,0.000000,0.000000,0.856414 -856,0.516599,0.000000,0.000000,0.856227 -857,0.516911,0.000000,0.000000,0.856039 -858,0.517225,0.000000,0.000000,0.855849 -859,0.517542,0.000000,0.000000,0.855658 -860,0.517862,0.000000,0.000000,0.855464 -861,0.518185,0.000000,0.000000,0.855269 -862,0.518510,0.000000,0.000000,0.855071 -863,0.518839,0.000000,0.000000,0.854872 -864,0.519170,0.000000,0.000000,0.854671 -865,0.519504,0.000000,0.000000,0.854468 -866,0.519840,0.000000,0.000000,0.854264 -867,0.520180,0.000000,0.000000,0.854057 -868,0.520522,0.000000,0.000000,0.853848 -869,0.520867,0.000000,0.000000,0.853638 -870,0.521215,0.000000,0.000000,0.853426 -871,0.521565,0.000000,0.000000,0.853212 -872,0.521918,0.000000,0.000000,0.852995 -873,0.522274,0.000000,0.000000,0.852778 -874,0.522633,0.000000,0.000000,0.852558 -875,0.522995,0.000000,0.000000,0.852336 -876,0.523359,0.000000,0.000000,0.852112 -877,0.523726,0.000000,0.000000,0.851887 -878,0.524096,0.000000,0.000000,0.851659 -879,0.524468,0.000000,0.000000,0.851430 -880,0.524843,0.000000,0.000000,0.851199 -881,0.525221,0.000000,0.000000,0.850966 -882,0.525602,0.000000,0.000000,0.850731 -883,0.525985,0.000000,0.000000,0.850494 -884,0.526371,0.000000,0.000000,0.850255 -885,0.526760,0.000000,0.000000,0.850014 -886,0.527151,0.000000,0.000000,0.849772 -887,0.527545,0.000000,0.000000,0.849527 -888,0.527942,0.000000,0.000000,0.849280 -889,0.528342,0.000000,0.000000,0.849032 -890,0.528744,0.000000,0.000000,0.848781 -891,0.529149,0.000000,0.000000,0.848529 -892,0.529556,0.000000,0.000000,0.848275 -893,0.529967,0.000000,0.000000,0.848019 -894,0.530379,0.000000,0.000000,0.847760 -895,0.530795,0.000000,0.000000,0.847500 -896,0.531213,0.000000,0.000000,0.847238 -897,0.531634,0.000000,0.000000,0.846974 -898,0.532058,0.000000,0.000000,0.846708 -899,0.532484,0.000000,0.000000,0.846440 -900,0.532913,0.000000,0.000000,0.846170 -901,0.533344,0.000000,0.000000,0.845898 -902,0.533778,0.000000,0.000000,0.845625 -903,0.534215,0.000000,0.000000,0.845349 -904,0.534654,0.000000,0.000000,0.845071 -905,0.535096,0.000000,0.000000,0.844791 -906,0.535541,0.000000,0.000000,0.844510 -907,0.535988,0.000000,0.000000,0.844226 -908,0.536437,0.000000,0.000000,0.843940 -909,0.536890,0.000000,0.000000,0.843652 -910,0.537345,0.000000,0.000000,0.843363 -911,0.537802,0.000000,0.000000,0.843071 -912,0.538262,0.000000,0.000000,0.842777 -913,0.538725,0.000000,0.000000,0.842482 -914,0.539190,0.000000,0.000000,0.842184 -915,0.539658,0.000000,0.000000,0.841884 -916,0.540128,0.000000,0.000000,0.841583 -917,0.540601,0.000000,0.000000,0.841279 -918,0.541077,0.000000,0.000000,0.840973 -919,0.541555,0.000000,0.000000,0.840665 -920,0.542035,0.000000,0.000000,0.840356 -921,0.542519,0.000000,0.000000,0.840044 -922,0.543004,0.000000,0.000000,0.839730 -923,0.543492,0.000000,0.000000,0.839414 -924,0.543983,0.000000,0.000000,0.839096 -925,0.544476,0.000000,0.000000,0.838776 -926,0.544972,0.000000,0.000000,0.838454 -927,0.545470,0.000000,0.000000,0.838130 -928,0.545971,0.000000,0.000000,0.837804 -929,0.546474,0.000000,0.000000,0.837476 -930,0.546980,0.000000,0.000000,0.837146 -931,0.547488,0.000000,0.000000,0.836814 -932,0.547999,0.000000,0.000000,0.836479 -933,0.548512,0.000000,0.000000,0.836143 -934,0.549027,0.000000,0.000000,0.835804 -935,0.549545,0.000000,0.000000,0.835464 -936,0.550066,0.000000,0.000000,0.835121 -937,0.550589,0.000000,0.000000,0.834777 -938,0.551114,0.000000,0.000000,0.834430 -939,0.551642,0.000000,0.000000,0.834081 -940,0.552172,0.000000,0.000000,0.833730 -941,0.552705,0.000000,0.000000,0.833377 -942,0.553240,0.000000,0.000000,0.833022 -943,0.553777,0.000000,0.000000,0.832665 -944,0.554317,0.000000,0.000000,0.832305 -945,0.554860,0.000000,0.000000,0.831944 -946,0.555404,0.000000,0.000000,0.831580 -947,0.555951,0.000000,0.000000,0.831215 -948,0.556501,0.000000,0.000000,0.830847 -949,0.557053,0.000000,0.000000,0.830477 -950,0.557607,0.000000,0.000000,0.830105 -951,0.558163,0.000000,0.000000,0.829731 -952,0.558722,0.000000,0.000000,0.829355 -953,0.559284,0.000000,0.000000,0.828976 -954,0.559847,0.000000,0.000000,0.828596 -955,0.560413,0.000000,0.000000,0.828213 -956,0.560981,0.000000,0.000000,0.827828 -957,0.561552,0.000000,0.000000,0.827441 -958,0.562125,0.000000,0.000000,0.827052 -959,0.562700,0.000000,0.000000,0.826661 -960,0.563278,0.000000,0.000000,0.826268 -961,0.563858,0.000000,0.000000,0.825872 -962,0.564440,0.000000,0.000000,0.825474 -963,0.565024,0.000000,0.000000,0.825074 -964,0.565611,0.000000,0.000000,0.824672 -965,0.566200,0.000000,0.000000,0.824268 -966,0.566791,0.000000,0.000000,0.823862 -967,0.567385,0.000000,0.000000,0.823453 -968,0.567980,0.000000,0.000000,0.823042 -969,0.568578,0.000000,0.000000,0.822629 -970,0.569179,0.000000,0.000000,0.822214 -971,0.569781,0.000000,0.000000,0.821796 -972,0.570386,0.000000,0.000000,0.821377 -973,0.570993,0.000000,0.000000,0.820955 -974,0.571602,0.000000,0.000000,0.820531 -975,0.572213,0.000000,0.000000,0.820105 -976,0.572827,0.000000,0.000000,0.819676 -977,0.573443,0.000000,0.000000,0.819246 -978,0.574060,0.000000,0.000000,0.818813 -979,0.574681,0.000000,0.000000,0.818378 -980,0.575303,0.000000,0.000000,0.817941 -981,0.575927,0.000000,0.000000,0.817501 -982,0.576554,0.000000,0.000000,0.817059 -983,0.577183,0.000000,0.000000,0.816615 -984,0.577813,0.000000,0.000000,0.816169 -985,0.578446,0.000000,0.000000,0.815720 -986,0.579082,0.000000,0.000000,0.815270 -987,0.579719,0.000000,0.000000,0.814817 -988,0.580358,0.000000,0.000000,0.814361 -989,0.581000,0.000000,0.000000,0.813904 -990,0.581643,0.000000,0.000000,0.813444 -991,0.582289,0.000000,0.000000,0.812982 -992,0.582937,0.000000,0.000000,0.812518 -993,0.583586,0.000000,0.000000,0.812051 -994,0.584238,0.000000,0.000000,0.811582 -995,0.584892,0.000000,0.000000,0.811111 -996,0.585548,0.000000,0.000000,0.810638 -997,0.586206,0.000000,0.000000,0.810162 -998,0.586866,0.000000,0.000000,0.809684 -999,0.587528,0.000000,0.000000,0.809203 -1000,0.588193,0.000000,0.000000,0.808721 -1001,0.588859,0.000000,0.000000,0.808236 -1002,0.589527,0.000000,0.000000,0.807749 -1003,0.590197,0.000000,0.000000,0.807259 -1004,0.590869,0.000000,0.000000,0.806767 -1005,0.591543,0.000000,0.000000,0.806273 -1006,0.592220,0.000000,0.000000,0.805777 -1007,0.592898,0.000000,0.000000,0.805278 -1008,0.593578,0.000000,0.000000,0.804777 -1009,0.594260,0.000000,0.000000,0.804273 -1010,0.594944,0.000000,0.000000,0.803767 -1011,0.595629,0.000000,0.000000,0.803259 -1012,0.596317,0.000000,0.000000,0.802749 -1013,0.597007,0.000000,0.000000,0.802236 -1014,0.597699,0.000000,0.000000,0.801721 -1015,0.598392,0.000000,0.000000,0.801203 -1016,0.599088,0.000000,0.000000,0.800684 -1017,0.599785,0.000000,0.000000,0.800161 -1018,0.600484,0.000000,0.000000,0.799637 -1019,0.601185,0.000000,0.000000,0.799110 -1020,0.601888,0.000000,0.000000,0.798580 -1021,0.602593,0.000000,0.000000,0.798049 -1022,0.603300,0.000000,0.000000,0.797515 -1023,0.604008,0.000000,0.000000,0.796978 -1024,0.604718,0.000000,0.000000,0.796439 -1025,0.605430,0.000000,0.000000,0.795898 -1026,0.606144,0.000000,0.000000,0.795355 -1027,0.606860,0.000000,0.000000,0.794809 -1028,0.607578,0.000000,0.000000,0.794260 -1029,0.608297,0.000000,0.000000,0.793709 -1030,0.609018,0.000000,0.000000,0.793156 -1031,0.609741,0.000000,0.000000,0.792601 -1032,0.610466,0.000000,0.000000,0.792043 -1033,0.611192,0.000000,0.000000,0.791482 -1034,0.611920,0.000000,0.000000,0.790919 -1035,0.612650,0.000000,0.000000,0.790354 -1036,0.613382,0.000000,0.000000,0.789787 -1037,0.614115,0.000000,0.000000,0.789216 -1038,0.614850,0.000000,0.000000,0.788644 -1039,0.615587,0.000000,0.000000,0.788069 -1040,0.616325,0.000000,0.000000,0.787492 -1041,0.617065,0.000000,0.000000,0.786912 -1042,0.617807,0.000000,0.000000,0.786330 -1043,0.618551,0.000000,0.000000,0.785745 -1044,0.619296,0.000000,0.000000,0.785158 -1045,0.620043,0.000000,0.000000,0.784568 -1046,0.620791,0.000000,0.000000,0.783976 -1047,0.621541,0.000000,0.000000,0.783382 -1048,0.622293,0.000000,0.000000,0.782785 -1049,0.623046,0.000000,0.000000,0.782185 -1050,0.623801,0.000000,0.000000,0.781583 -1051,0.624557,0.000000,0.000000,0.780979 -1052,0.625316,0.000000,0.000000,0.780372 -1053,0.626075,0.000000,0.000000,0.779763 -1054,0.626836,0.000000,0.000000,0.779151 -1055,0.627599,0.000000,0.000000,0.778537 -1056,0.628363,0.000000,0.000000,0.777920 -1057,0.629129,0.000000,0.000000,0.777301 -1058,0.629897,0.000000,0.000000,0.776679 -1059,0.630666,0.000000,0.000000,0.776055 -1060,0.631436,0.000000,0.000000,0.775428 -1061,0.632208,0.000000,0.000000,0.774799 -1062,0.632981,0.000000,0.000000,0.774167 -1063,0.633756,0.000000,0.000000,0.773533 -1064,0.634533,0.000000,0.000000,0.772896 -1065,0.635311,0.000000,0.000000,0.772257 -1066,0.636090,0.000000,0.000000,0.771615 -1067,0.636871,0.000000,0.000000,0.770971 -1068,0.637653,0.000000,0.000000,0.770324 -1069,0.638436,0.000000,0.000000,0.769675 -1070,0.639222,0.000000,0.000000,0.769023 -1071,0.640008,0.000000,0.000000,0.768368 -1072,0.640796,0.000000,0.000000,0.767711 -1073,0.641585,0.000000,0.000000,0.767052 -1074,0.642376,0.000000,0.000000,0.766390 -1075,0.643168,0.000000,0.000000,0.765725 -1076,0.643961,0.000000,0.000000,0.765058 -1077,0.644756,0.000000,0.000000,0.764389 -1078,0.645552,0.000000,0.000000,0.763717 -1079,0.646349,0.000000,0.000000,0.763042 -1080,0.647148,0.000000,0.000000,0.762365 -1081,0.647948,0.000000,0.000000,0.761685 -1082,0.648749,0.000000,0.000000,0.761002 -1083,0.649552,0.000000,0.000000,0.760317 -1084,0.650356,0.000000,0.000000,0.759630 -1085,0.651161,0.000000,0.000000,0.758940 -1086,0.651967,0.000000,0.000000,0.758247 -1087,0.652775,0.000000,0.000000,0.757552 -1088,0.653584,0.000000,0.000000,0.756854 -1089,0.654394,0.000000,0.000000,0.756154 -1090,0.655205,0.000000,0.000000,0.755451 -1091,0.656018,0.000000,0.000000,0.754745 -1092,0.656832,0.000000,0.000000,0.754037 -1093,0.657647,0.000000,0.000000,0.753326 -1094,0.658463,0.000000,0.000000,0.752613 -1095,0.659280,0.000000,0.000000,0.751897 -1096,0.660099,0.000000,0.000000,0.751179 -1097,0.660918,0.000000,0.000000,0.750458 -1098,0.661739,0.000000,0.000000,0.749734 -1099,0.662561,0.000000,0.000000,0.749008 -1100,0.663384,0.000000,0.000000,0.748279 -1101,0.664208,0.000000,0.000000,0.747548 -1102,0.665034,0.000000,0.000000,0.746813 -1103,0.665860,0.000000,0.000000,0.746077 -1104,0.666687,0.000000,0.000000,0.745337 -1105,0.667516,0.000000,0.000000,0.744596 -1106,0.668345,0.000000,0.000000,0.743851 -1107,0.669176,0.000000,0.000000,0.743104 -1108,0.670008,0.000000,0.000000,0.742354 -1109,0.670840,0.000000,0.000000,0.741602 -1110,0.671674,0.000000,0.000000,0.740847 -1111,0.672509,0.000000,0.000000,0.740089 -1112,0.673345,0.000000,0.000000,0.739329 -1113,0.674181,0.000000,0.000000,0.738566 -1114,0.675019,0.000000,0.000000,0.737800 -1115,0.675858,0.000000,0.000000,0.737032 -1116,0.676697,0.000000,0.000000,0.736261 -1117,0.677538,0.000000,0.000000,0.735488 -1118,0.678379,0.000000,0.000000,0.734712 -1119,0.679222,0.000000,0.000000,0.733933 -1120,0.680065,0.000000,0.000000,0.733152 -1121,0.680909,0.000000,0.000000,0.732368 -1122,0.681754,0.000000,0.000000,0.731581 -1123,0.682600,0.000000,0.000000,0.730792 -1124,0.683447,0.000000,0.000000,0.730000 -1125,0.684295,0.000000,0.000000,0.729205 -1126,0.685144,0.000000,0.000000,0.728408 -1127,0.685993,0.000000,0.000000,0.727608 -1128,0.686843,0.000000,0.000000,0.726805 -1129,0.687694,0.000000,0.000000,0.726000 -1130,0.688546,0.000000,0.000000,0.725192 -1131,0.689399,0.000000,0.000000,0.724382 -1132,0.690253,0.000000,0.000000,0.723569 -1133,0.691107,0.000000,0.000000,0.722753 -1134,0.691962,0.000000,0.000000,0.721934 -1135,0.692818,0.000000,0.000000,0.721113 -1136,0.693674,0.000000,0.000000,0.720289 -1137,0.694531,0.000000,0.000000,0.719463 -1138,0.695389,0.000000,0.000000,0.718633 -1139,0.696248,0.000000,0.000000,0.717801 -1140,0.697107,0.000000,0.000000,0.716967 -1141,0.697967,0.000000,0.000000,0.716130 -1142,0.698828,0.000000,0.000000,0.715290 -1143,0.699690,0.000000,0.000000,0.714447 -1144,0.700552,0.000000,0.000000,0.713602 -1145,0.701414,0.000000,0.000000,0.712754 -1146,0.702278,0.000000,0.000000,0.711903 -1147,0.703142,0.000000,0.000000,0.711050 -1148,0.704006,0.000000,0.000000,0.710194 -1149,0.704871,0.000000,0.000000,0.709335 -1150,0.705737,0.000000,0.000000,0.708474 -1151,0.706603,0.000000,0.000000,0.707610 -1152,0.707470,0.000000,0.000000,0.706743 -1153,0.708338,0.000000,0.000000,0.705874 -1154,0.709206,0.000000,0.000000,0.705001 -1155,0.710074,0.000000,0.000000,0.704127 -1156,0.710943,0.000000,0.000000,0.703249 -1157,0.711813,0.000000,0.000000,0.702369 -1158,0.712683,0.000000,0.000000,0.701486 -1159,0.713554,0.000000,0.000000,0.700601 -1160,0.714425,0.000000,0.000000,0.699712 -1161,0.715296,0.000000,0.000000,0.698821 -1162,0.716168,0.000000,0.000000,0.697928 -1163,0.717041,0.000000,0.000000,0.697031 -1164,0.717913,0.000000,0.000000,0.696132 -1165,0.718787,0.000000,0.000000,0.695231 -1166,0.719660,0.000000,0.000000,0.694326 -1167,0.720535,0.000000,0.000000,0.693419 -1168,0.721409,0.000000,0.000000,0.692509 -1169,0.722284,0.000000,0.000000,0.691597 -1170,0.723159,0.000000,0.000000,0.690681 -1171,0.724035,0.000000,0.000000,0.689764 -1172,0.724911,0.000000,0.000000,0.688843 -1173,0.725787,0.000000,0.000000,0.687920 -1174,0.726663,0.000000,0.000000,0.686994 -1175,0.727540,0.000000,0.000000,0.686065 -1176,0.728417,0.000000,0.000000,0.685134 -1177,0.729295,0.000000,0.000000,0.684199 -1178,0.730173,0.000000,0.000000,0.683263 -1179,0.731051,0.000000,0.000000,0.682323 -1180,0.731929,0.000000,0.000000,0.681381 -1181,0.732807,0.000000,0.000000,0.680436 -1182,0.733686,0.000000,0.000000,0.679488 -1183,0.734565,0.000000,0.000000,0.678538 -1184,0.735444,0.000000,0.000000,0.677585 -1185,0.736324,0.000000,0.000000,0.676629 -1186,0.737203,0.000000,0.000000,0.675671 -1187,0.738083,0.000000,0.000000,0.674710 -1188,0.738963,0.000000,0.000000,0.673746 -1189,0.739843,0.000000,0.000000,0.672780 -1190,0.740723,0.000000,0.000000,0.671811 -1191,0.741603,0.000000,0.000000,0.670839 -1192,0.742484,0.000000,0.000000,0.669864 -1193,0.743364,0.000000,0.000000,0.668887 -1194,0.744245,0.000000,0.000000,0.667907 -1195,0.745126,0.000000,0.000000,0.666924 -1196,0.746006,0.000000,0.000000,0.665939 -1197,0.746887,0.000000,0.000000,0.664951 -1198,0.747768,0.000000,0.000000,0.663960 -1199,0.748649,0.000000,0.000000,0.662967 -1200,0.749530,0.000000,0.000000,0.661971 -1201,0.750411,0.000000,0.000000,0.660972 -1202,0.751292,0.000000,0.000000,0.659970 -1203,0.752173,0.000000,0.000000,0.658966 -1204,0.753054,0.000000,0.000000,0.657959 -1205,0.753934,0.000000,0.000000,0.656950 -1206,0.754815,0.000000,0.000000,0.655937 -1207,0.755696,0.000000,0.000000,0.654923 -1208,0.756577,0.000000,0.000000,0.653905 -1209,0.757457,0.000000,0.000000,0.652885 -1210,0.758338,0.000000,0.000000,0.651862 -1211,0.759218,0.000000,0.000000,0.650836 -1212,0.760099,0.000000,0.000000,0.649808 -1213,0.760979,0.000000,0.000000,0.648777 -1214,0.761859,0.000000,0.000000,0.647743 -1215,0.762739,0.000000,0.000000,0.646707 -1216,0.763619,0.000000,0.000000,0.645668 -1217,0.764498,0.000000,0.000000,0.644626 -1218,0.765378,0.000000,0.000000,0.643581 -1219,0.766257,0.000000,0.000000,0.642534 -1220,0.767136,0.000000,0.000000,0.641485 -1221,0.768015,0.000000,0.000000,0.640432 -1222,0.768893,0.000000,0.000000,0.639377 -1223,0.769771,0.000000,0.000000,0.638320 -1224,0.770650,0.000000,0.000000,0.637259 -1225,0.771527,0.000000,0.000000,0.636196 -1226,0.772405,0.000000,0.000000,0.635130 -1227,0.773282,0.000000,0.000000,0.634062 -1228,0.774159,0.000000,0.000000,0.632991 -1229,0.775036,0.000000,0.000000,0.631917 -1230,0.775912,0.000000,0.000000,0.630841 -1231,0.776788,0.000000,0.000000,0.629762 -1232,0.777664,0.000000,0.000000,0.628681 -1233,0.778539,0.000000,0.000000,0.627596 -1234,0.779414,0.000000,0.000000,0.626509 -1235,0.780288,0.000000,0.000000,0.625420 -1236,0.781163,0.000000,0.000000,0.624328 -1237,0.782036,0.000000,0.000000,0.623233 -1238,0.782910,0.000000,0.000000,0.622135 -1239,0.783783,0.000000,0.000000,0.621035 -1240,0.784655,0.000000,0.000000,0.619933 -1241,0.785527,0.000000,0.000000,0.618827 -1242,0.786399,0.000000,0.000000,0.617719 -1243,0.787270,0.000000,0.000000,0.616609 -1244,0.788140,0.000000,0.000000,0.615496 -1245,0.789010,0.000000,0.000000,0.614380 -1246,0.789880,0.000000,0.000000,0.613261 -1247,0.790749,0.000000,0.000000,0.612140 -1248,0.791618,0.000000,0.000000,0.611017 -1249,0.792486,0.000000,0.000000,0.609890 -1250,0.793353,0.000000,0.000000,0.608761 -1251,0.794220,0.000000,0.000000,0.607630 -1252,0.795087,0.000000,0.000000,0.606496 -1253,0.795952,0.000000,0.000000,0.605359 -1254,0.796818,0.000000,0.000000,0.604220 -1255,0.797682,0.000000,0.000000,0.603078 -1256,0.798546,0.000000,0.000000,0.601934 -1257,0.799409,0.000000,0.000000,0.600787 -1258,0.800272,0.000000,0.000000,0.599637 -1259,0.801134,0.000000,0.000000,0.598485 -1260,0.801996,0.000000,0.000000,0.597330 -1261,0.802856,0.000000,0.000000,0.596173 -1262,0.803716,0.000000,0.000000,0.595013 -1263,0.804576,0.000000,0.000000,0.593850 -1264,0.805434,0.000000,0.000000,0.592685 -1265,0.806292,0.000000,0.000000,0.591518 -1266,0.807149,0.000000,0.000000,0.590348 -1267,0.808006,0.000000,0.000000,0.589175 -1268,0.808861,0.000000,0.000000,0.588000 -1269,0.809716,0.000000,0.000000,0.586822 -1270,0.810570,0.000000,0.000000,0.585641 -1271,0.811424,0.000000,0.000000,0.584459 -1272,0.812276,0.000000,0.000000,0.583273 -1273,0.813128,0.000000,0.000000,0.582085 -1274,0.813979,0.000000,0.000000,0.580895 -1275,0.814829,0.000000,0.000000,0.579702 -1276,0.815678,0.000000,0.000000,0.578506 -1277,0.816526,0.000000,0.000000,0.577308 -1278,0.817374,0.000000,0.000000,0.576108 -1279,0.818220,0.000000,0.000000,0.574905 -1280,0.819066,0.000000,0.000000,0.573699 -1281,0.819911,0.000000,0.000000,0.572491 -1282,0.820755,0.000000,0.000000,0.571281 -1283,0.821598,0.000000,0.000000,0.570068 -1284,0.822440,0.000000,0.000000,0.568852 -1285,0.823281,0.000000,0.000000,0.567634 -1286,0.824121,0.000000,0.000000,0.566413 -1287,0.824960,0.000000,0.000000,0.565191 -1288,0.825799,0.000000,0.000000,0.563965 -1289,0.826636,0.000000,0.000000,0.562737 -1290,0.827472,0.000000,0.000000,0.561507 -1291,0.828307,0.000000,0.000000,0.560274 -1292,0.829142,0.000000,0.000000,0.559039 -1293,0.829975,0.000000,0.000000,0.557801 -1294,0.830807,0.000000,0.000000,0.556561 -1295,0.831638,0.000000,0.000000,0.555318 -1296,0.832468,0.000000,0.000000,0.554073 -1297,0.833297,0.000000,0.000000,0.552826 -1298,0.834125,0.000000,0.000000,0.551576 -1299,0.834952,0.000000,0.000000,0.550323 -1300,0.835777,0.000000,0.000000,0.549069 -1301,0.836602,0.000000,0.000000,0.547812 -1302,0.837425,0.000000,0.000000,0.546552 -1303,0.838247,0.000000,0.000000,0.545290 -1304,0.839069,0.000000,0.000000,0.544026 -1305,0.839888,0.000000,0.000000,0.542759 -1306,0.840707,0.000000,0.000000,0.541490 -1307,0.841525,0.000000,0.000000,0.540218 -1308,0.842341,0.000000,0.000000,0.538944 -1309,0.843156,0.000000,0.000000,0.537668 -1310,0.843970,0.000000,0.000000,0.536390 -1311,0.844783,0.000000,0.000000,0.535109 -1312,0.845595,0.000000,0.000000,0.533825 -1313,0.846405,0.000000,0.000000,0.532540 -1314,0.847214,0.000000,0.000000,0.531252 -1315,0.848022,0.000000,0.000000,0.529961 -1316,0.848828,0.000000,0.000000,0.528669 -1317,0.849634,0.000000,0.000000,0.527374 -1318,0.850437,0.000000,0.000000,0.526076 -1319,0.851240,0.000000,0.000000,0.524776 -1320,0.852041,0.000000,0.000000,0.523475 -1321,0.852841,0.000000,0.000000,0.522170 -1322,0.853640,0.000000,0.000000,0.520864 -1323,0.854437,0.000000,0.000000,0.519555 -1324,0.855233,0.000000,0.000000,0.518244 -1325,0.856028,0.000000,0.000000,0.516930 -1326,0.856821,0.000000,0.000000,0.515614 -1327,0.857612,0.000000,0.000000,0.514296 -1328,0.858403,0.000000,0.000000,0.512976 -1329,0.859192,0.000000,0.000000,0.511654 -1330,0.859979,0.000000,0.000000,0.510329 -1331,0.860765,0.000000,0.000000,0.509002 -1332,0.861550,0.000000,0.000000,0.507673 -1333,0.862333,0.000000,0.000000,0.506341 -1334,0.863115,0.000000,0.000000,0.505007 -1335,0.863895,0.000000,0.000000,0.503672 -1336,0.864674,0.000000,0.000000,0.502333 -1337,0.865451,0.000000,0.000000,0.500993 -1338,0.866227,0.000000,0.000000,0.499650 -1339,0.867001,0.000000,0.000000,0.498306 -1340,0.867774,0.000000,0.000000,0.496959 -1341,0.868545,0.000000,0.000000,0.495610 -1342,0.869315,0.000000,0.000000,0.494258 -1343,0.870083,0.000000,0.000000,0.492905 -1344,0.870850,0.000000,0.000000,0.491549 -1345,0.871615,0.000000,0.000000,0.490191 -1346,0.872378,0.000000,0.000000,0.488832 -1347,0.873140,0.000000,0.000000,0.487469 -1348,0.873900,0.000000,0.000000,0.486105 -1349,0.874659,0.000000,0.000000,0.484739 -1350,0.875416,0.000000,0.000000,0.483370 -1351,0.876171,0.000000,0.000000,0.482000 -1352,0.876925,0.000000,0.000000,0.480627 -1353,0.877677,0.000000,0.000000,0.479252 -1354,0.878428,0.000000,0.000000,0.477876 -1355,0.879176,0.000000,0.000000,0.476497 -1356,0.879923,0.000000,0.000000,0.475116 -1357,0.880669,0.000000,0.000000,0.473732 -1358,0.881413,0.000000,0.000000,0.472347 -1359,0.882155,0.000000,0.000000,0.470960 -1360,0.882895,0.000000,0.000000,0.469571 -1361,0.883633,0.000000,0.000000,0.468179 -1362,0.884370,0.000000,0.000000,0.466786 -1363,0.885105,0.000000,0.000000,0.465391 -1364,0.885839,0.000000,0.000000,0.463993 -1365,0.886570,0.000000,0.000000,0.462594 -1366,0.887300,0.000000,0.000000,0.461192 -1367,0.888028,0.000000,0.000000,0.459789 -1368,0.888755,0.000000,0.000000,0.458383 -1369,0.889479,0.000000,0.000000,0.456976 -1370,0.890202,0.000000,0.000000,0.455567 -1371,0.890923,0.000000,0.000000,0.454155 -1372,0.891642,0.000000,0.000000,0.452742 -1373,0.892359,0.000000,0.000000,0.451327 -1374,0.893074,0.000000,0.000000,0.449909 -1375,0.893788,0.000000,0.000000,0.448490 -1376,0.894499,0.000000,0.000000,0.447069 -1377,0.895209,0.000000,0.000000,0.445646 -1378,0.895917,0.000000,0.000000,0.444221 -1379,0.896623,0.000000,0.000000,0.442794 -1380,0.897327,0.000000,0.000000,0.441366 -1381,0.898030,0.000000,0.000000,0.439935 -1382,0.898730,0.000000,0.000000,0.438502 -1383,0.899428,0.000000,0.000000,0.437068 -1384,0.900125,0.000000,0.000000,0.435632 -1385,0.900819,0.000000,0.000000,0.434194 -1386,0.901512,0.000000,0.000000,0.432754 -1387,0.902203,0.000000,0.000000,0.431312 -1388,0.902892,0.000000,0.000000,0.429868 -1389,0.903578,0.000000,0.000000,0.428423 -1390,0.904263,0.000000,0.000000,0.426976 -1391,0.904946,0.000000,0.000000,0.425527 -1392,0.905627,0.000000,0.000000,0.424076 -1393,0.906305,0.000000,0.000000,0.422623 -1394,0.906982,0.000000,0.000000,0.421169 -1395,0.907657,0.000000,0.000000,0.419713 -1396,0.908330,0.000000,0.000000,0.418255 -1397,0.909001,0.000000,0.000000,0.416795 -1398,0.909669,0.000000,0.000000,0.415333 -1399,0.910336,0.000000,0.000000,0.413870 -1400,0.911000,0.000000,0.000000,0.412405 -1401,0.911663,0.000000,0.000000,0.410939 -1402,0.912323,0.000000,0.000000,0.409470 -1403,0.912982,0.000000,0.000000,0.408000 -1404,0.913638,0.000000,0.000000,0.406529 -1405,0.914292,0.000000,0.000000,0.405055 -1406,0.914944,0.000000,0.000000,0.403580 -1407,0.915594,0.000000,0.000000,0.402103 -1408,0.916242,0.000000,0.000000,0.400625 -1409,0.916888,0.000000,0.000000,0.399145 -1410,0.917532,0.000000,0.000000,0.397663 -1411,0.918173,0.000000,0.000000,0.396180 -1412,0.918812,0.000000,0.000000,0.394695 -1413,0.919450,0.000000,0.000000,0.393208 -1414,0.920085,0.000000,0.000000,0.391720 -1415,0.920717,0.000000,0.000000,0.390230 -1416,0.921348,0.000000,0.000000,0.388739 -1417,0.921977,0.000000,0.000000,0.387246 -1418,0.922603,0.000000,0.000000,0.385751 -1419,0.923227,0.000000,0.000000,0.384255 -1420,0.923849,0.000000,0.000000,0.382758 -1421,0.924469,0.000000,0.000000,0.381258 -1422,0.925086,0.000000,0.000000,0.379758 -1423,0.925701,0.000000,0.000000,0.378255 -1424,0.926314,0.000000,0.000000,0.376752 -1425,0.926925,0.000000,0.000000,0.375247 -1426,0.927534,0.000000,0.000000,0.373740 -1427,0.928140,0.000000,0.000000,0.372232 -1428,0.928744,0.000000,0.000000,0.370722 -1429,0.929346,0.000000,0.000000,0.369211 -1430,0.929945,0.000000,0.000000,0.367698 -1431,0.930542,0.000000,0.000000,0.366184 -1432,0.931137,0.000000,0.000000,0.364669 -1433,0.931730,0.000000,0.000000,0.363152 -1434,0.932320,0.000000,0.000000,0.361634 -1435,0.932908,0.000000,0.000000,0.360114 -1436,0.933494,0.000000,0.000000,0.358593 -1437,0.934077,0.000000,0.000000,0.357071 -1438,0.934659,0.000000,0.000000,0.355547 -1439,0.935237,0.000000,0.000000,0.354022 -1440,0.935814,0.000000,0.000000,0.352495 -1441,0.936388,0.000000,0.000000,0.350967 -1442,0.936960,0.000000,0.000000,0.349438 -1443,0.937529,0.000000,0.000000,0.347907 -1444,0.938096,0.000000,0.000000,0.346375 -1445,0.938661,0.000000,0.000000,0.344842 -1446,0.939223,0.000000,0.000000,0.343308 -1447,0.939783,0.000000,0.000000,0.341772 -1448,0.940340,0.000000,0.000000,0.340235 -1449,0.940896,0.000000,0.000000,0.338697 -1450,0.941448,0.000000,0.000000,0.337157 -1451,0.941999,0.000000,0.000000,0.335617 -1452,0.942547,0.000000,0.000000,0.334075 -1453,0.943092,0.000000,0.000000,0.332531 -1454,0.943635,0.000000,0.000000,0.330987 -1455,0.944176,0.000000,0.000000,0.329441 -1456,0.944714,0.000000,0.000000,0.327895 -1457,0.945250,0.000000,0.000000,0.326347 -1458,0.945784,0.000000,0.000000,0.324797 -1459,0.946315,0.000000,0.000000,0.323247 -1460,0.946843,0.000000,0.000000,0.321696 -1461,0.947369,0.000000,0.000000,0.320143 -1462,0.947893,0.000000,0.000000,0.318589 -1463,0.948414,0.000000,0.000000,0.317035 -1464,0.948933,0.000000,0.000000,0.315479 -1465,0.949449,0.000000,0.000000,0.313922 -1466,0.949963,0.000000,0.000000,0.312363 -1467,0.950474,0.000000,0.000000,0.310804 -1468,0.950983,0.000000,0.000000,0.309244 -1469,0.951489,0.000000,0.000000,0.307683 -1470,0.951993,0.000000,0.000000,0.306120 -1471,0.952494,0.000000,0.000000,0.304557 -1472,0.952993,0.000000,0.000000,0.302992 -1473,0.953489,0.000000,0.000000,0.301427 -1474,0.953983,0.000000,0.000000,0.299861 -1475,0.954474,0.000000,0.000000,0.298293 -1476,0.954963,0.000000,0.000000,0.296725 -1477,0.955449,0.000000,0.000000,0.295155 -1478,0.955933,0.000000,0.000000,0.293585 -1479,0.956414,0.000000,0.000000,0.292014 -1480,0.956893,0.000000,0.000000,0.290442 -1481,0.957369,0.000000,0.000000,0.288869 -1482,0.957842,0.000000,0.000000,0.287295 -1483,0.958313,0.000000,0.000000,0.285720 -1484,0.958782,0.000000,0.000000,0.284144 -1485,0.959248,0.000000,0.000000,0.282567 -1486,0.959711,0.000000,0.000000,0.280990 -1487,0.960172,0.000000,0.000000,0.279411 -1488,0.960630,0.000000,0.000000,0.277832 -1489,0.961085,0.000000,0.000000,0.276252 -1490,0.961538,0.000000,0.000000,0.274671 -1491,0.961989,0.000000,0.000000,0.273089 -1492,0.962437,0.000000,0.000000,0.271507 -1493,0.962882,0.000000,0.000000,0.269923 -1494,0.963324,0.000000,0.000000,0.268339 -1495,0.963765,0.000000,0.000000,0.266754 -1496,0.964202,0.000000,0.000000,0.265169 -1497,0.964637,0.000000,0.000000,0.263582 -1498,0.965069,0.000000,0.000000,0.261995 -1499,0.965499,0.000000,0.000000,0.260408 -1500,0.965926,0.000000,0.000000,0.258819 -1501,0.966350,0.000000,0.000000,0.257230 -1502,0.966772,0.000000,0.000000,0.255640 -1503,0.967191,0.000000,0.000000,0.254049 -1504,0.967608,0.000000,0.000000,0.252458 -1505,0.968022,0.000000,0.000000,0.250866 -1506,0.968433,0.000000,0.000000,0.249274 -1507,0.968842,0.000000,0.000000,0.247680 -1508,0.969248,0.000000,0.000000,0.246087 -1509,0.969651,0.000000,0.000000,0.244492 -1510,0.970052,0.000000,0.000000,0.242897 -1511,0.970450,0.000000,0.000000,0.241301 -1512,0.970846,0.000000,0.000000,0.239705 -1513,0.971239,0.000000,0.000000,0.238109 -1514,0.971629,0.000000,0.000000,0.236511 -1515,0.972016,0.000000,0.000000,0.234913 -1516,0.972401,0.000000,0.000000,0.233315 -1517,0.972783,0.000000,0.000000,0.231716 -1518,0.973163,0.000000,0.000000,0.230117 -1519,0.973540,0.000000,0.000000,0.228517 -1520,0.973914,0.000000,0.000000,0.226916 -1521,0.974286,0.000000,0.000000,0.225316 -1522,0.974655,0.000000,0.000000,0.223714 -1523,0.975021,0.000000,0.000000,0.222112 -1524,0.975385,0.000000,0.000000,0.220510 -1525,0.975746,0.000000,0.000000,0.218908 -1526,0.976104,0.000000,0.000000,0.217305 -1527,0.976459,0.000000,0.000000,0.215701 -1528,0.976812,0.000000,0.000000,0.214097 -1529,0.977163,0.000000,0.000000,0.212493 -1530,0.977510,0.000000,0.000000,0.210889 -1531,0.977855,0.000000,0.000000,0.209284 -1532,0.978197,0.000000,0.000000,0.207678 -1533,0.978537,0.000000,0.000000,0.206073 -1534,0.978874,0.000000,0.000000,0.204467 -1535,0.979208,0.000000,0.000000,0.202860 -1536,0.979539,0.000000,0.000000,0.201254 -1537,0.979868,0.000000,0.000000,0.199647 -1538,0.980194,0.000000,0.000000,0.198040 -1539,0.980517,0.000000,0.000000,0.196433 -1540,0.980838,0.000000,0.000000,0.194825 -1541,0.981156,0.000000,0.000000,0.193217 -1542,0.981471,0.000000,0.000000,0.191609 -1543,0.981784,0.000000,0.000000,0.190001 -1544,0.982094,0.000000,0.000000,0.188392 -1545,0.982401,0.000000,0.000000,0.186783 -1546,0.982706,0.000000,0.000000,0.185174 -1547,0.983007,0.000000,0.000000,0.183565 -1548,0.983307,0.000000,0.000000,0.181956 -1549,0.983603,0.000000,0.000000,0.180347 -1550,0.983897,0.000000,0.000000,0.178737 -1551,0.984188,0.000000,0.000000,0.177128 -1552,0.984476,0.000000,0.000000,0.175518 -1553,0.984762,0.000000,0.000000,0.173908 -1554,0.985045,0.000000,0.000000,0.172298 -1555,0.985325,0.000000,0.000000,0.170688 -1556,0.985603,0.000000,0.000000,0.169078 -1557,0.985878,0.000000,0.000000,0.167468 -1558,0.986150,0.000000,0.000000,0.165858 -1559,0.986419,0.000000,0.000000,0.164247 -1560,0.986686,0.000000,0.000000,0.162637 -1561,0.986950,0.000000,0.000000,0.161027 -1562,0.987211,0.000000,0.000000,0.159417 -1563,0.987470,0.000000,0.000000,0.157807 -1564,0.987726,0.000000,0.000000,0.156196 -1565,0.987979,0.000000,0.000000,0.154586 -1566,0.988230,0.000000,0.000000,0.152976 -1567,0.988478,0.000000,0.000000,0.151366 -1568,0.988723,0.000000,0.000000,0.149756 -1569,0.988965,0.000000,0.000000,0.148146 -1570,0.989205,0.000000,0.000000,0.146536 -1571,0.989442,0.000000,0.000000,0.144927 -1572,0.989677,0.000000,0.000000,0.143317 -1573,0.989909,0.000000,0.000000,0.141708 -1574,0.990138,0.000000,0.000000,0.140099 -1575,0.990364,0.000000,0.000000,0.138489 -1576,0.990588,0.000000,0.000000,0.136881 -1577,0.990809,0.000000,0.000000,0.135272 -1578,0.991027,0.000000,0.000000,0.133663 -1579,0.991242,0.000000,0.000000,0.132055 -1580,0.991455,0.000000,0.000000,0.130447 -1581,0.991666,0.000000,0.000000,0.128839 -1582,0.991873,0.000000,0.000000,0.127231 -1583,0.992078,0.000000,0.000000,0.125624 -1584,0.992280,0.000000,0.000000,0.124016 -1585,0.992480,0.000000,0.000000,0.122410 -1586,0.992677,0.000000,0.000000,0.120803 -1587,0.992871,0.000000,0.000000,0.119197 -1588,0.993062,0.000000,0.000000,0.117591 -1589,0.993251,0.000000,0.000000,0.115985 -1590,0.993437,0.000000,0.000000,0.114380 -1591,0.993621,0.000000,0.000000,0.112775 -1592,0.993801,0.000000,0.000000,0.111170 -1593,0.993980,0.000000,0.000000,0.109566 -1594,0.994155,0.000000,0.000000,0.107962 -1595,0.994328,0.000000,0.000000,0.106358 -1596,0.994498,0.000000,0.000000,0.104755 -1597,0.994666,0.000000,0.000000,0.103152 -1598,0.994830,0.000000,0.000000,0.101550 -1599,0.994993,0.000000,0.000000,0.099948 -1600,0.995152,0.000000,0.000000,0.098347 -1601,0.995309,0.000000,0.000000,0.096746 -1602,0.995463,0.000000,0.000000,0.095145 -1603,0.995615,0.000000,0.000000,0.093545 -1604,0.995764,0.000000,0.000000,0.091946 -1605,0.995910,0.000000,0.000000,0.090347 -1606,0.996054,0.000000,0.000000,0.088748 -1607,0.996195,0.000000,0.000000,0.087150 -1608,0.996334,0.000000,0.000000,0.085553 -1609,0.996469,0.000000,0.000000,0.083956 -1610,0.996603,0.000000,0.000000,0.082360 -1611,0.996733,0.000000,0.000000,0.080764 -1612,0.996861,0.000000,0.000000,0.079169 -1613,0.996987,0.000000,0.000000,0.077574 -1614,0.997109,0.000000,0.000000,0.075980 -1615,0.997229,0.000000,0.000000,0.074387 -1616,0.997347,0.000000,0.000000,0.072794 -1617,0.997462,0.000000,0.000000,0.071202 -1618,0.997574,0.000000,0.000000,0.069611 -1619,0.997684,0.000000,0.000000,0.068020 -1620,0.997791,0.000000,0.000000,0.066430 -1621,0.997896,0.000000,0.000000,0.064840 -1622,0.997998,0.000000,0.000000,0.063252 -1623,0.998097,0.000000,0.000000,0.061664 -1624,0.998194,0.000000,0.000000,0.060077 -1625,0.998288,0.000000,0.000000,0.058490 -1626,0.998380,0.000000,0.000000,0.056904 -1627,0.998469,0.000000,0.000000,0.055319 -1628,0.998555,0.000000,0.000000,0.053735 -1629,0.998639,0.000000,0.000000,0.052151 -1630,0.998721,0.000000,0.000000,0.050569 -1631,0.998799,0.000000,0.000000,0.048987 -1632,0.998876,0.000000,0.000000,0.047406 -1633,0.998949,0.000000,0.000000,0.045825 -1634,0.999021,0.000000,0.000000,0.044246 -1635,0.999089,0.000000,0.000000,0.042667 -1636,0.999155,0.000000,0.000000,0.041090 -1637,0.999219,0.000000,0.000000,0.039513 -1638,0.999280,0.000000,0.000000,0.037937 -1639,0.999339,0.000000,0.000000,0.036362 -1640,0.999395,0.000000,0.000000,0.034787 -1641,0.999448,0.000000,0.000000,0.033214 -1642,0.999499,0.000000,0.000000,0.031642 -1643,0.999548,0.000000,0.000000,0.030070 -1644,0.999594,0.000000,0.000000,0.028500 -1645,0.999637,0.000000,0.000000,0.026930 -1646,0.999678,0.000000,0.000000,0.025361 -1647,0.999717,0.000000,0.000000,0.023794 -1648,0.999753,0.000000,0.000000,0.022227 -1649,0.999787,0.000000,0.000000,0.020661 -1650,0.999818,0.000000,0.000000,0.019097 -1651,0.999846,0.000000,0.000000,0.017533 -1652,0.999872,0.000000,0.000000,0.015971 -1653,0.999896,0.000000,0.000000,0.014409 -1654,0.999917,0.000000,0.000000,0.012849 -1655,0.999936,0.000000,0.000000,0.011289 -1656,0.999953,0.000000,0.000000,0.009731 -1657,0.999967,0.000000,0.000000,0.008173 -1658,0.999978,0.000000,0.000000,0.006617 -1659,0.999987,0.000000,0.000000,0.005062 -1660,0.999994,0.000000,0.000000,0.003508 -1661,0.999998,0.000000,0.000000,0.001955 -1662,1.000000,0.000000,0.000000,0.000404 -1663,0.999999,0.000000,0.000000,-0.001147 -1664,0.999996,0.000000,0.000000,-0.002696 -1665,0.999991,0.000000,0.000000,-0.004245 -1666,0.999983,0.000000,0.000000,-0.005792 -1667,0.999973,0.000000,0.000000,-0.007338 -1668,0.999961,0.000000,0.000000,-0.008882 -1669,0.999946,0.000000,0.000000,-0.010426 -1670,0.999928,0.000000,0.000000,-0.011968 -1671,0.999909,0.000000,0.000000,-0.013509 -1672,0.999887,0.000000,0.000000,-0.015049 -1673,0.999862,0.000000,0.000000,-0.016588 -1674,0.999836,0.000000,0.000000,-0.018125 -1675,0.999807,0.000000,0.000000,-0.019661 -1676,0.999775,0.000000,0.000000,-0.021196 -1677,0.999742,0.000000,0.000000,-0.022729 -1678,0.999706,0.000000,0.000000,-0.024261 -1679,0.999667,0.000000,0.000000,-0.025792 -1680,0.999627,0.000000,0.000000,-0.027322 -1681,0.999584,0.000000,0.000000,-0.028850 -1682,0.999539,0.000000,0.000000,-0.030377 -1683,0.999491,0.000000,0.000000,-0.031902 -1684,0.999441,0.000000,0.000000,-0.033426 -1685,0.999389,0.000000,0.000000,-0.034949 -1686,0.999335,0.000000,0.000000,-0.036470 -1687,0.999278,0.000000,0.000000,-0.037990 -1688,0.999219,0.000000,0.000000,-0.039509 -1689,0.999158,0.000000,0.000000,-0.041026 -1690,0.999095,0.000000,0.000000,-0.042542 -1691,0.999029,0.000000,0.000000,-0.044056 -1692,0.998961,0.000000,0.000000,-0.045569 -1693,0.998891,0.000000,0.000000,-0.047080 -1694,0.998819,0.000000,0.000000,-0.048590 -1695,0.998744,0.000000,0.000000,-0.050099 -1696,0.998668,0.000000,0.000000,-0.051606 -1697,0.998589,0.000000,0.000000,-0.053111 -1698,0.998507,0.000000,0.000000,-0.054615 -1699,0.998424,0.000000,0.000000,-0.056118 -1700,0.998339,0.000000,0.000000,-0.057619 -1701,0.998251,0.000000,0.000000,-0.059118 -1702,0.998161,0.000000,0.000000,-0.060616 -1703,0.998069,0.000000,0.000000,-0.062113 -1704,0.997975,0.000000,0.000000,-0.063607 -1705,0.997879,0.000000,0.000000,-0.065101 -1706,0.997780,0.000000,0.000000,-0.066592 -1707,0.997680,0.000000,0.000000,-0.068082 -1708,0.997577,0.000000,0.000000,-0.069571 -1709,0.997472,0.000000,0.000000,-0.071058 -1710,0.997365,0.000000,0.000000,-0.072543 -1711,0.997256,0.000000,0.000000,-0.074027 -1712,0.997145,0.000000,0.000000,-0.075509 -1713,0.997032,0.000000,0.000000,-0.076989 -1714,0.996917,0.000000,0.000000,-0.078468 -1715,0.996799,0.000000,0.000000,-0.079945 -1716,0.996680,0.000000,0.000000,-0.081420 -1717,0.996558,0.000000,0.000000,-0.082894 -1718,0.996435,0.000000,0.000000,-0.084366 -1719,0.996309,0.000000,0.000000,-0.085836 -1720,0.996182,0.000000,0.000000,-0.087305 -1721,0.996052,0.000000,0.000000,-0.088772 -1722,0.995920,0.000000,0.000000,-0.090237 -1723,0.995787,0.000000,0.000000,-0.091700 -1724,0.995651,0.000000,0.000000,-0.093162 -1725,0.995513,0.000000,0.000000,-0.094622 -1726,0.995374,0.000000,0.000000,-0.096080 -1727,0.995232,0.000000,0.000000,-0.097537 -1728,0.995088,0.000000,0.000000,-0.098991 -1729,0.994943,0.000000,0.000000,-0.100444 -1730,0.994795,0.000000,0.000000,-0.101895 -1731,0.994646,0.000000,0.000000,-0.103345 -1732,0.994494,0.000000,0.000000,-0.104792 -1733,0.994341,0.000000,0.000000,-0.106238 -1734,0.994185,0.000000,0.000000,-0.107681 -1735,0.994028,0.000000,0.000000,-0.109123 -1736,0.993869,0.000000,0.000000,-0.110563 -1737,0.993708,0.000000,0.000000,-0.112002 -1738,0.993545,0.000000,0.000000,-0.113438 -1739,0.993380,0.000000,0.000000,-0.114873 -1740,0.993214,0.000000,0.000000,-0.116305 -1741,0.993045,0.000000,0.000000,-0.117736 -1742,0.992874,0.000000,0.000000,-0.119165 -1743,0.992702,0.000000,0.000000,-0.120592 -1744,0.992528,0.000000,0.000000,-0.122017 -1745,0.992352,0.000000,0.000000,-0.123440 -1746,0.992174,0.000000,0.000000,-0.124861 -1747,0.991995,0.000000,0.000000,-0.126280 -1748,0.991813,0.000000,0.000000,-0.127698 -1749,0.991630,0.000000,0.000000,-0.129113 -1750,0.991445,0.000000,0.000000,-0.130526 -1751,0.991258,0.000000,0.000000,-0.131938 -1752,0.991069,0.000000,0.000000,-0.133347 -1753,0.990879,0.000000,0.000000,-0.134754 -1754,0.990687,0.000000,0.000000,-0.136160 -1755,0.990493,0.000000,0.000000,-0.137563 -1756,0.990297,0.000000,0.000000,-0.138965 -1757,0.990100,0.000000,0.000000,-0.140364 -1758,0.989901,0.000000,0.000000,-0.141761 -1759,0.989700,0.000000,0.000000,-0.143157 -1760,0.989498,0.000000,0.000000,-0.144550 -1761,0.989293,0.000000,0.000000,-0.145941 -1762,0.989087,0.000000,0.000000,-0.147330 -1763,0.988880,0.000000,0.000000,-0.148717 -1764,0.988670,0.000000,0.000000,-0.150102 -1765,0.988460,0.000000,0.000000,-0.151485 -1766,0.988247,0.000000,0.000000,-0.152866 -1767,0.988033,0.000000,0.000000,-0.154245 -1768,0.987817,0.000000,0.000000,-0.155621 -1769,0.987599,0.000000,0.000000,-0.156996 -1770,0.987380,0.000000,0.000000,-0.158368 -1771,0.987159,0.000000,0.000000,-0.159739 -1772,0.986937,0.000000,0.000000,-0.161107 -1773,0.986713,0.000000,0.000000,-0.162473 -1774,0.986487,0.000000,0.000000,-0.163837 -1775,0.986260,0.000000,0.000000,-0.165198 -1776,0.986032,0.000000,0.000000,-0.166558 -1777,0.985801,0.000000,0.000000,-0.167915 -1778,0.985570,0.000000,0.000000,-0.169270 -1779,0.985336,0.000000,0.000000,-0.170623 -1780,0.985101,0.000000,0.000000,-0.171974 -1781,0.984865,0.000000,0.000000,-0.173323 -1782,0.984627,0.000000,0.000000,-0.174669 -1783,0.984388,0.000000,0.000000,-0.176013 -1784,0.984147,0.000000,0.000000,-0.177355 -1785,0.983905,0.000000,0.000000,-0.178695 -1786,0.983661,0.000000,0.000000,-0.180032 -1787,0.983415,0.000000,0.000000,-0.181368 -1788,0.983169,0.000000,0.000000,-0.182701 -1789,0.982920,0.000000,0.000000,-0.184031 -1790,0.982671,0.000000,0.000000,-0.185360 -1791,0.982420,0.000000,0.000000,-0.186686 -1792,0.982167,0.000000,0.000000,-0.188010 -1793,0.981913,0.000000,0.000000,-0.189332 -1794,0.981658,0.000000,0.000000,-0.190651 -1795,0.981401,0.000000,0.000000,-0.191968 -1796,0.981143,0.000000,0.000000,-0.193283 -1797,0.980884,0.000000,0.000000,-0.194595 -1798,0.980623,0.000000,0.000000,-0.195905 -1799,0.980361,0.000000,0.000000,-0.197213 -1800,0.980097,0.000000,0.000000,-0.198518 -1801,0.979832,0.000000,0.000000,-0.199822 -1802,0.979566,0.000000,0.000000,-0.201122 -1803,0.979299,0.000000,0.000000,-0.202421 -1804,0.979030,0.000000,0.000000,-0.203717 -1805,0.978760,0.000000,0.000000,-0.205011 -1806,0.978488,0.000000,0.000000,-0.206302 -1807,0.978216,0.000000,0.000000,-0.207591 -1808,0.977942,0.000000,0.000000,-0.208878 -1809,0.977667,0.000000,0.000000,-0.210162 -1810,0.977390,0.000000,0.000000,-0.211444 -1811,0.977113,0.000000,0.000000,-0.212723 -1812,0.976834,0.000000,0.000000,-0.214000 -1813,0.976554,0.000000,0.000000,-0.215275 -1814,0.976272,0.000000,0.000000,-0.216547 -1815,0.975990,0.000000,0.000000,-0.217816 -1816,0.975706,0.000000,0.000000,-0.219084 -1817,0.975421,0.000000,0.000000,-0.220349 -1818,0.975135,0.000000,0.000000,-0.221611 -1819,0.974848,0.000000,0.000000,-0.222871 -1820,0.974560,0.000000,0.000000,-0.224129 -1821,0.974270,0.000000,0.000000,-0.225384 -1822,0.973979,0.000000,0.000000,-0.226636 -1823,0.973688,0.000000,0.000000,-0.227887 -1824,0.973395,0.000000,0.000000,-0.229134 -1825,0.973101,0.000000,0.000000,-0.230380 -1826,0.972806,0.000000,0.000000,-0.231622 -1827,0.972510,0.000000,0.000000,-0.232862 -1828,0.972212,0.000000,0.000000,-0.234100 -1829,0.971914,0.000000,0.000000,-0.235335 -1830,0.971615,0.000000,0.000000,-0.236568 -1831,0.971315,0.000000,0.000000,-0.237798 -1832,0.971013,0.000000,0.000000,-0.239026 -1833,0.970711,0.000000,0.000000,-0.240251 -1834,0.970407,0.000000,0.000000,-0.241474 -1835,0.970103,0.000000,0.000000,-0.242694 -1836,0.969797,0.000000,0.000000,-0.243912 -1837,0.969491,0.000000,0.000000,-0.245127 -1838,0.969184,0.000000,0.000000,-0.246339 -1839,0.968875,0.000000,0.000000,-0.247549 -1840,0.968566,0.000000,0.000000,-0.248756 -1841,0.968256,0.000000,0.000000,-0.249961 -1842,0.967945,0.000000,0.000000,-0.251163 -1843,0.967633,0.000000,0.000000,-0.252363 -1844,0.967320,0.000000,0.000000,-0.253560 -1845,0.967006,0.000000,0.000000,-0.254754 -1846,0.966691,0.000000,0.000000,-0.255946 -1847,0.966375,0.000000,0.000000,-0.257136 -1848,0.966059,0.000000,0.000000,-0.258322 -1849,0.965741,0.000000,0.000000,-0.259506 -1850,0.965423,0.000000,0.000000,-0.260688 -1851,0.965104,0.000000,0.000000,-0.261867 -1852,0.964784,0.000000,0.000000,-0.263043 -1853,0.964463,0.000000,0.000000,-0.264216 -1854,0.964142,0.000000,0.000000,-0.265387 -1855,0.963819,0.000000,0.000000,-0.266556 -1856,0.963496,0.000000,0.000000,-0.267721 -1857,0.963172,0.000000,0.000000,-0.268885 -1858,0.962848,0.000000,0.000000,-0.270045 -1859,0.962522,0.000000,0.000000,-0.271203 -1860,0.962196,0.000000,0.000000,-0.272358 -1861,0.961869,0.000000,0.000000,-0.273510 -1862,0.961541,0.000000,0.000000,-0.274660 -1863,0.961213,0.000000,0.000000,-0.275807 -1864,0.960884,0.000000,0.000000,-0.276952 -1865,0.960554,0.000000,0.000000,-0.278093 -1866,0.960224,0.000000,0.000000,-0.279232 -1867,0.959892,0.000000,0.000000,-0.280369 -1868,0.959560,0.000000,0.000000,-0.281503 -1869,0.959228,0.000000,0.000000,-0.282634 -1870,0.958895,0.000000,0.000000,-0.283762 -1871,0.958561,0.000000,0.000000,-0.284887 -1872,0.958227,0.000000,0.000000,-0.286010 -1873,0.957891,0.000000,0.000000,-0.287130 -1874,0.957556,0.000000,0.000000,-0.288248 -1875,0.957220,0.000000,0.000000,-0.289363 -1876,0.956883,0.000000,0.000000,-0.290475 -1877,0.956545,0.000000,0.000000,-0.291584 -1878,0.956207,0.000000,0.000000,-0.292691 -1879,0.955869,0.000000,0.000000,-0.293794 -1880,0.955530,0.000000,0.000000,-0.294895 -1881,0.955190,0.000000,0.000000,-0.295994 -1882,0.954850,0.000000,0.000000,-0.297089 -1883,0.954509,0.000000,0.000000,-0.298182 -1884,0.954168,0.000000,0.000000,-0.299272 -1885,0.953826,0.000000,0.000000,-0.300360 -1886,0.953484,0.000000,0.000000,-0.301444 -1887,0.953141,0.000000,0.000000,-0.302526 -1888,0.952798,0.000000,0.000000,-0.303605 -1889,0.952454,0.000000,0.000000,-0.304681 -1890,0.952110,0.000000,0.000000,-0.305755 -1891,0.951766,0.000000,0.000000,-0.306826 -1892,0.951421,0.000000,0.000000,-0.307894 -1893,0.951075,0.000000,0.000000,-0.308959 -1894,0.950730,0.000000,0.000000,-0.310021 -1895,0.950384,0.000000,0.000000,-0.311081 -1896,0.950037,0.000000,0.000000,-0.312137 -1897,0.949690,0.000000,0.000000,-0.313191 -1898,0.949343,0.000000,0.000000,-0.314243 -1899,0.948995,0.000000,0.000000,-0.315291 -1900,0.948647,0.000000,0.000000,-0.316337 -1901,0.948299,0.000000,0.000000,-0.317379 -1902,0.947950,0.000000,0.000000,-0.318419 -1903,0.947601,0.000000,0.000000,-0.319456 -1904,0.947252,0.000000,0.000000,-0.320491 -1905,0.946902,0.000000,0.000000,-0.321522 -1906,0.946552,0.000000,0.000000,-0.322551 -1907,0.946202,0.000000,0.000000,-0.323577 -1908,0.945852,0.000000,0.000000,-0.324599 -1909,0.945501,0.000000,0.000000,-0.325620 -1910,0.945150,0.000000,0.000000,-0.326637 -1911,0.944799,0.000000,0.000000,-0.327651 -1912,0.944447,0.000000,0.000000,-0.328663 -1913,0.944096,0.000000,0.000000,-0.329672 -1914,0.943744,0.000000,0.000000,-0.330678 -1915,0.943392,0.000000,0.000000,-0.331681 -1916,0.943039,0.000000,0.000000,-0.332681 -1917,0.942687,0.000000,0.000000,-0.333678 -1918,0.942334,0.000000,0.000000,-0.334673 -1919,0.941982,0.000000,0.000000,-0.335664 -1920,0.941629,0.000000,0.000000,-0.336653 -1921,0.941276,0.000000,0.000000,-0.337639 -1922,0.940922,0.000000,0.000000,-0.338622 -1923,0.940569,0.000000,0.000000,-0.339602 -1924,0.940216,0.000000,0.000000,-0.340579 -1925,0.939862,0.000000,0.000000,-0.341554 -1926,0.939509,0.000000,0.000000,-0.342525 -1927,0.939155,0.000000,0.000000,-0.343494 -1928,0.938801,0.000000,0.000000,-0.344460 -1929,0.938447,0.000000,0.000000,-0.345422 -1930,0.938093,0.000000,0.000000,-0.346382 -1931,0.937739,0.000000,0.000000,-0.347339 -1932,0.937385,0.000000,0.000000,-0.348294 -1933,0.937032,0.000000,0.000000,-0.349245 -1934,0.936677,0.000000,0.000000,-0.350193 -1935,0.936323,0.000000,0.000000,-0.351139 -1936,0.935969,0.000000,0.000000,-0.352081 -1937,0.935615,0.000000,0.000000,-0.353021 -1938,0.935261,0.000000,0.000000,-0.353958 -1939,0.934908,0.000000,0.000000,-0.354891 -1940,0.934554,0.000000,0.000000,-0.355822 -1941,0.934200,0.000000,0.000000,-0.356750 -1942,0.933846,0.000000,0.000000,-0.357675 -1943,0.933492,0.000000,0.000000,-0.358597 -1944,0.933139,0.000000,0.000000,-0.359517 -1945,0.932785,0.000000,0.000000,-0.360433 -1946,0.932432,0.000000,0.000000,-0.361346 -1947,0.932078,0.000000,0.000000,-0.362257 -1948,0.931725,0.000000,0.000000,-0.363164 -1949,0.931372,0.000000,0.000000,-0.364069 -1950,0.931019,0.000000,0.000000,-0.364970 -1951,0.930666,0.000000,0.000000,-0.365869 -1952,0.930314,0.000000,0.000000,-0.366765 -1953,0.929961,0.000000,0.000000,-0.367658 -1954,0.929609,0.000000,0.000000,-0.368548 -1955,0.929257,0.000000,0.000000,-0.369435 -1956,0.928905,0.000000,0.000000,-0.370319 -1957,0.928553,0.000000,0.000000,-0.371200 -1958,0.928202,0.000000,0.000000,-0.372078 -1959,0.927850,0.000000,0.000000,-0.372953 -1960,0.927499,0.000000,0.000000,-0.373825 -1961,0.927148,0.000000,0.000000,-0.374694 -1962,0.926798,0.000000,0.000000,-0.375561 -1963,0.926448,0.000000,0.000000,-0.376424 -1964,0.926097,0.000000,0.000000,-0.377284 -1965,0.925748,0.000000,0.000000,-0.378142 -1966,0.925398,0.000000,0.000000,-0.378996 -1967,0.925049,0.000000,0.000000,-0.379848 -1968,0.924700,0.000000,0.000000,-0.380696 -1969,0.924352,0.000000,0.000000,-0.381542 -1970,0.924003,0.000000,0.000000,-0.382384 -1971,0.923655,0.000000,0.000000,-0.383224 -1972,0.923308,0.000000,0.000000,-0.384061 -1973,0.922961,0.000000,0.000000,-0.384894 -1974,0.922614,0.000000,0.000000,-0.385725 -1975,0.922267,0.000000,0.000000,-0.386553 -1976,0.921921,0.000000,0.000000,-0.387378 -1977,0.921575,0.000000,0.000000,-0.388199 -1978,0.921230,0.000000,0.000000,-0.389018 -1979,0.920885,0.000000,0.000000,-0.389834 -1980,0.920541,0.000000,0.000000,-0.390647 -1981,0.920197,0.000000,0.000000,-0.391457 -1982,0.919853,0.000000,0.000000,-0.392264 -1983,0.919510,0.000000,0.000000,-0.393068 -1984,0.919167,0.000000,0.000000,-0.393868 -1985,0.918824,0.000000,0.000000,-0.394666 -1986,0.918483,0.000000,0.000000,-0.395461 -1987,0.918141,0.000000,0.000000,-0.396253 -1988,0.917800,0.000000,0.000000,-0.397042 -1989,0.917460,0.000000,0.000000,-0.397828 -1990,0.917120,0.000000,0.000000,-0.398611 -1991,0.916781,0.000000,0.000000,-0.399391 -1992,0.916442,0.000000,0.000000,-0.400168 -1993,0.916103,0.000000,0.000000,-0.400942 -1994,0.915765,0.000000,0.000000,-0.401713 -1995,0.915428,0.000000,0.000000,-0.402481 -1996,0.915091,0.000000,0.000000,-0.403246 -1997,0.914755,0.000000,0.000000,-0.404008 -1998,0.914420,0.000000,0.000000,-0.404767 -1999,0.914085,0.000000,0.000000,-0.405523 -2000,0.913750,0.000000,0.000000,-0.406276 -2001,0.913416,0.000000,0.000000,-0.407027 -2002,0.913083,0.000000,0.000000,-0.407774 -2003,0.912750,0.000000,0.000000,-0.408518 -2004,0.912418,0.000000,0.000000,-0.409259 -2005,0.912087,0.000000,0.000000,-0.409997 -2006,0.911756,0.000000,0.000000,-0.410732 -2007,0.911426,0.000000,0.000000,-0.411464 -2008,0.911097,0.000000,0.000000,-0.412193 -2009,0.910768,0.000000,0.000000,-0.412919 -2010,0.910440,0.000000,0.000000,-0.413642 -2011,0.910112,0.000000,0.000000,-0.414362 -2012,0.909786,0.000000,0.000000,-0.415079 -2013,0.909460,0.000000,0.000000,-0.415793 -2014,0.909134,0.000000,0.000000,-0.416503 -2015,0.908809,0.000000,0.000000,-0.417211 -2016,0.908486,0.000000,0.000000,-0.417916 -2017,0.908162,0.000000,0.000000,-0.418618 -2018,0.907840,0.000000,0.000000,-0.419317 -2019,0.907518,0.000000,0.000000,-0.420013 -2020,0.907197,0.000000,0.000000,-0.420706 -2021,0.906877,0.000000,0.000000,-0.421396 -2022,0.906557,0.000000,0.000000,-0.422083 -2023,0.906239,0.000000,0.000000,-0.422766 -2024,0.905921,0.000000,0.000000,-0.423447 -2025,0.905604,0.000000,0.000000,-0.424125 -2026,0.905287,0.000000,0.000000,-0.424800 -2027,0.904972,0.000000,0.000000,-0.425472 -2028,0.904657,0.000000,0.000000,-0.426140 -2029,0.904343,0.000000,0.000000,-0.426806 -2030,0.904030,0.000000,0.000000,-0.427469 -2031,0.903718,0.000000,0.000000,-0.428128 -2032,0.903406,0.000000,0.000000,-0.428785 -2033,0.903096,0.000000,0.000000,-0.429439 -2034,0.902786,0.000000,0.000000,-0.430089 -2035,0.902477,0.000000,0.000000,-0.430737 -2036,0.902170,0.000000,0.000000,-0.431382 -2037,0.901862,0.000000,0.000000,-0.432023 -2038,0.901556,0.000000,0.000000,-0.432662 -2039,0.901251,0.000000,0.000000,-0.433297 -2040,0.900947,0.000000,0.000000,-0.433930 -2041,0.900643,0.000000,0.000000,-0.434559 -2042,0.900341,0.000000,0.000000,-0.435186 -2043,0.900039,0.000000,0.000000,-0.435809 -2044,0.899738,0.000000,0.000000,-0.436430 -2045,0.899439,0.000000,0.000000,-0.437047 -2046,0.899140,0.000000,0.000000,-0.437661 -2047,0.898842,0.000000,0.000000,-0.438273 -2048,0.898545,0.000000,0.000000,-0.438881 -2049,0.898249,0.000000,0.000000,-0.439486 -2050,0.897954,0.000000,0.000000,-0.440089 -2051,0.897660,0.000000,0.000000,-0.440688 -2052,0.897367,0.000000,0.000000,-0.441284 -2053,0.897075,0.000000,0.000000,-0.441878 -2054,0.896784,0.000000,0.000000,-0.442468 -2055,0.896494,0.000000,0.000000,-0.443055 -2056,0.896206,0.000000,0.000000,-0.443639 -2057,0.895918,0.000000,0.000000,-0.444220 -2058,0.895631,0.000000,0.000000,-0.444798 -2059,0.895345,0.000000,0.000000,-0.445373 -2060,0.895060,0.000000,0.000000,-0.445945 -2061,0.894776,0.000000,0.000000,-0.446514 -2062,0.894494,0.000000,0.000000,-0.447080 -2063,0.894212,0.000000,0.000000,-0.447643 -2064,0.893932,0.000000,0.000000,-0.448203 -2065,0.893652,0.000000,0.000000,-0.448760 -2066,0.893374,0.000000,0.000000,-0.449314 -2067,0.893096,0.000000,0.000000,-0.449865 -2068,0.892820,0.000000,0.000000,-0.450413 -2069,0.892545,0.000000,0.000000,-0.450958 -2070,0.892271,0.000000,0.000000,-0.451500 -2071,0.891998,0.000000,0.000000,-0.452038 -2072,0.891727,0.000000,0.000000,-0.452574 -2073,0.891456,0.000000,0.000000,-0.453107 -2074,0.891187,0.000000,0.000000,-0.453637 -2075,0.890918,0.000000,0.000000,-0.454163 -2076,0.890651,0.000000,0.000000,-0.454687 -2077,0.890385,0.000000,0.000000,-0.455208 -2078,0.890120,0.000000,0.000000,-0.455725 -2079,0.889857,0.000000,0.000000,-0.456240 -2080,0.889594,0.000000,0.000000,-0.456752 -2081,0.889333,0.000000,0.000000,-0.457260 -2082,0.889073,0.000000,0.000000,-0.457766 -2083,0.888814,0.000000,0.000000,-0.458268 -2084,0.888556,0.000000,0.000000,-0.458768 -2085,0.888300,0.000000,0.000000,-0.459264 -2086,0.888044,0.000000,0.000000,-0.459758 -2087,0.887790,0.000000,0.000000,-0.460248 -2088,0.887538,0.000000,0.000000,-0.460735 -2089,0.887286,0.000000,0.000000,-0.461220 -2090,0.887036,0.000000,0.000000,-0.461701 -2091,0.886786,0.000000,0.000000,-0.462180 -2092,0.886538,0.000000,0.000000,-0.462655 -2093,0.886292,0.000000,0.000000,-0.463127 -2094,0.886046,0.000000,0.000000,-0.463596 -2095,0.885802,0.000000,0.000000,-0.464063 -2096,0.885560,0.000000,0.000000,-0.464526 -2097,0.885318,0.000000,0.000000,-0.464986 -2098,0.885078,0.000000,0.000000,-0.465443 -2099,0.884839,0.000000,0.000000,-0.465898 -2100,0.884601,0.000000,0.000000,-0.466349 -2101,0.884365,0.000000,0.000000,-0.466797 -2102,0.884129,0.000000,0.000000,-0.467242 -2103,0.883896,0.000000,0.000000,-0.467684 -2104,0.883663,0.000000,0.000000,-0.468123 -2105,0.883432,0.000000,0.000000,-0.468559 -2106,0.883202,0.000000,0.000000,-0.468992 -2107,0.882974,0.000000,0.000000,-0.469422 -2108,0.882747,0.000000,0.000000,-0.469849 -2109,0.882521,0.000000,0.000000,-0.470273 -2110,0.882296,0.000000,0.000000,-0.470694 -2111,0.882073,0.000000,0.000000,-0.471112 -2112,0.881851,0.000000,0.000000,-0.471527 -2113,0.881631,0.000000,0.000000,-0.471939 -2114,0.881412,0.000000,0.000000,-0.472348 -2115,0.881194,0.000000,0.000000,-0.472754 -2116,0.880978,0.000000,0.000000,-0.473157 -2117,0.880763,0.000000,0.000000,-0.473557 -2118,0.880550,0.000000,0.000000,-0.473954 -2119,0.880338,0.000000,0.000000,-0.474348 -2120,0.880127,0.000000,0.000000,-0.474738 -2121,0.879918,0.000000,0.000000,-0.475126 -2122,0.879710,0.000000,0.000000,-0.475511 -2123,0.879503,0.000000,0.000000,-0.475893 -2124,0.879298,0.000000,0.000000,-0.476272 -2125,0.879095,0.000000,0.000000,-0.476647 -2126,0.878892,0.000000,0.000000,-0.477020 -2127,0.878692,0.000000,0.000000,-0.477390 -2128,0.878492,0.000000,0.000000,-0.477757 -2129,0.878294,0.000000,0.000000,-0.478120 -2130,0.878098,0.000000,0.000000,-0.478481 -2131,0.877903,0.000000,0.000000,-0.478839 -2132,0.877709,0.000000,0.000000,-0.479193 -2133,0.877517,0.000000,0.000000,-0.479545 -2134,0.877327,0.000000,0.000000,-0.479894 -2135,0.877137,0.000000,0.000000,-0.480239 -2136,0.876950,0.000000,0.000000,-0.480582 -2137,0.876764,0.000000,0.000000,-0.480922 -2138,0.876579,0.000000,0.000000,-0.481258 -2139,0.876396,0.000000,0.000000,-0.481592 -2140,0.876214,0.000000,0.000000,-0.481923 -2141,0.876033,0.000000,0.000000,-0.482250 -2142,0.875855,0.000000,0.000000,-0.482575 -2143,0.875677,0.000000,0.000000,-0.482897 -2144,0.875502,0.000000,0.000000,-0.483215 -2145,0.875327,0.000000,0.000000,-0.483531 -2146,0.875155,0.000000,0.000000,-0.483843 -2147,0.874983,0.000000,0.000000,-0.484153 -2148,0.874814,0.000000,0.000000,-0.484459 -2149,0.874646,0.000000,0.000000,-0.484763 -2150,0.874479,0.000000,0.000000,-0.485064 -2151,0.874314,0.000000,0.000000,-0.485361 -2152,0.874150,0.000000,0.000000,-0.485656 -2153,0.873988,0.000000,0.000000,-0.485947 -2154,0.873828,0.000000,0.000000,-0.486236 -2155,0.873669,0.000000,0.000000,-0.486521 -2156,0.873511,0.000000,0.000000,-0.486804 -2157,0.873355,0.000000,0.000000,-0.487084 -2158,0.873201,0.000000,0.000000,-0.487360 -2159,0.873048,0.000000,0.000000,-0.487634 -2160,0.872897,0.000000,0.000000,-0.487904 -2161,0.872748,0.000000,0.000000,-0.488172 -2162,0.872600,0.000000,0.000000,-0.488436 -2163,0.872453,0.000000,0.000000,-0.488698 -2164,0.872308,0.000000,0.000000,-0.488956 -2165,0.872165,0.000000,0.000000,-0.489212 -2166,0.872023,0.000000,0.000000,-0.489465 -2167,0.871883,0.000000,0.000000,-0.489714 -2168,0.871745,0.000000,0.000000,-0.489961 -2169,0.871608,0.000000,0.000000,-0.490204 -2170,0.871472,0.000000,0.000000,-0.490445 -2171,0.871339,0.000000,0.000000,-0.490682 -2172,0.871206,0.000000,0.000000,-0.490917 -2173,0.871076,0.000000,0.000000,-0.491149 -2174,0.870947,0.000000,0.000000,-0.491377 -2175,0.870820,0.000000,0.000000,-0.491603 -2176,0.870694,0.000000,0.000000,-0.491825 -2177,0.870570,0.000000,0.000000,-0.492045 -2178,0.870447,0.000000,0.000000,-0.492261 -2179,0.870327,0.000000,0.000000,-0.492475 -2180,0.870207,0.000000,0.000000,-0.492686 -2181,0.870090,0.000000,0.000000,-0.492893 -2182,0.869974,0.000000,0.000000,-0.493098 -2183,0.869860,0.000000,0.000000,-0.493300 -2184,0.869747,0.000000,0.000000,-0.493498 -2185,0.869636,0.000000,0.000000,-0.493694 -2186,0.869526,0.000000,0.000000,-0.493886 -2187,0.869419,0.000000,0.000000,-0.494076 -2188,0.869313,0.000000,0.000000,-0.494263 -2189,0.869208,0.000000,0.000000,-0.494446 -2190,0.869105,0.000000,0.000000,-0.494627 -2191,0.869004,0.000000,0.000000,-0.494805 -2192,0.868905,0.000000,0.000000,-0.494979 -2193,0.868807,0.000000,0.000000,-0.495151 -2194,0.868711,0.000000,0.000000,-0.495320 -2195,0.868616,0.000000,0.000000,-0.495486 -2196,0.868523,0.000000,0.000000,-0.495648 -2197,0.868432,0.000000,0.000000,-0.495808 -2198,0.868343,0.000000,0.000000,-0.495965 -2199,0.868255,0.000000,0.000000,-0.496119 -2200,0.868169,0.000000,0.000000,-0.496269 -2201,0.868084,0.000000,0.000000,-0.496417 -2202,0.868001,0.000000,0.000000,-0.496562 -2203,0.867920,0.000000,0.000000,-0.496704 -2204,0.867841,0.000000,0.000000,-0.496843 -2205,0.867763,0.000000,0.000000,-0.496978 -2206,0.867687,0.000000,0.000000,-0.497111 -2207,0.867612,0.000000,0.000000,-0.497241 -2208,0.867540,0.000000,0.000000,-0.497368 -2209,0.867469,0.000000,0.000000,-0.497492 -2210,0.867399,0.000000,0.000000,-0.497613 -2211,0.867332,0.000000,0.000000,-0.497731 -2212,0.867266,0.000000,0.000000,-0.497845 -2213,0.867202,0.000000,0.000000,-0.497957 -2214,0.867139,0.000000,0.000000,-0.498066 -2215,0.867078,0.000000,0.000000,-0.498172 -2216,0.867019,0.000000,0.000000,-0.498275 -2217,0.866961,0.000000,0.000000,-0.498375 -2218,0.866906,0.000000,0.000000,-0.498472 -2219,0.866852,0.000000,0.000000,-0.498566 -2220,0.866799,0.000000,0.000000,-0.498657 -2221,0.866749,0.000000,0.000000,-0.498745 -2222,0.866700,0.000000,0.000000,-0.498830 -2223,0.866652,0.000000,0.000000,-0.498912 -2224,0.866607,0.000000,0.000000,-0.498991 -2225,0.866563,0.000000,0.000000,-0.499068 -2226,0.866521,0.000000,0.000000,-0.499141 -2227,0.866481,0.000000,0.000000,-0.499211 -2228,0.866442,0.000000,0.000000,-0.499278 -2229,0.866405,0.000000,0.000000,-0.499342 -2230,0.866370,0.000000,0.000000,-0.499403 -2231,0.866336,0.000000,0.000000,-0.499461 -2232,0.866304,0.000000,0.000000,-0.499517 -2233,0.866274,0.000000,0.000000,-0.499569 -2234,0.866246,0.000000,0.000000,-0.499618 -2235,0.866219,0.000000,0.000000,-0.499664 -2236,0.866194,0.000000,0.000000,-0.499708 -2237,0.866171,0.000000,0.000000,-0.499748 -2238,0.866149,0.000000,0.000000,-0.499785 -2239,0.866130,0.000000,0.000000,-0.499819 -2240,0.866112,0.000000,0.000000,-0.499851 -2241,0.866095,0.000000,0.000000,-0.499879 -2242,0.866081,0.000000,0.000000,-0.499905 -2243,0.866068,0.000000,0.000000,-0.499927 -2244,0.866056,0.000000,0.000000,-0.499946 -2245,0.866047,0.000000,0.000000,-0.499963 -2246,0.866039,0.000000,0.000000,-0.499976 -2247,0.866033,0.000000,0.000000,-0.499987 -2248,0.866029,0.000000,0.000000,-0.499994 -2249,0.866026,0.000000,0.000000,-0.499999 -2250,0.866025,0.000000,0.000000,-0.500000 -2251,0.866026,0.000000,0.000000,-0.499999 -2252,0.866029,0.000000,0.000000,-0.499994 -2253,0.866033,0.000000,0.000000,-0.499987 -2254,0.866039,0.000000,0.000000,-0.499976 -2255,0.866047,0.000000,0.000000,-0.499963 -2256,0.866056,0.000000,0.000000,-0.499946 -2257,0.866068,0.000000,0.000000,-0.499927 -2258,0.866081,0.000000,0.000000,-0.499905 -2259,0.866095,0.000000,0.000000,-0.499879 -2260,0.866112,0.000000,0.000000,-0.499851 -2261,0.866130,0.000000,0.000000,-0.499819 -2262,0.866149,0.000000,0.000000,-0.499785 -2263,0.866171,0.000000,0.000000,-0.499748 -2264,0.866194,0.000000,0.000000,-0.499708 -2265,0.866219,0.000000,0.000000,-0.499664 -2266,0.866246,0.000000,0.000000,-0.499618 -2267,0.866274,0.000000,0.000000,-0.499569 -2268,0.866304,0.000000,0.000000,-0.499517 -2269,0.866336,0.000000,0.000000,-0.499461 -2270,0.866370,0.000000,0.000000,-0.499403 -2271,0.866405,0.000000,0.000000,-0.499342 -2272,0.866442,0.000000,0.000000,-0.499278 -2273,0.866481,0.000000,0.000000,-0.499211 -2274,0.866521,0.000000,0.000000,-0.499141 -2275,0.866563,0.000000,0.000000,-0.499068 -2276,0.866607,0.000000,0.000000,-0.498991 -2277,0.866652,0.000000,0.000000,-0.498912 -2278,0.866700,0.000000,0.000000,-0.498830 -2279,0.866749,0.000000,0.000000,-0.498745 -2280,0.866799,0.000000,0.000000,-0.498657 -2281,0.866852,0.000000,0.000000,-0.498566 -2282,0.866906,0.000000,0.000000,-0.498472 -2283,0.866961,0.000000,0.000000,-0.498375 -2284,0.867019,0.000000,0.000000,-0.498275 -2285,0.867078,0.000000,0.000000,-0.498172 -2286,0.867139,0.000000,0.000000,-0.498066 -2287,0.867202,0.000000,0.000000,-0.497957 -2288,0.867266,0.000000,0.000000,-0.497845 -2289,0.867332,0.000000,0.000000,-0.497731 -2290,0.867399,0.000000,0.000000,-0.497613 -2291,0.867469,0.000000,0.000000,-0.497492 -2292,0.867540,0.000000,0.000000,-0.497368 -2293,0.867612,0.000000,0.000000,-0.497241 -2294,0.867687,0.000000,0.000000,-0.497111 -2295,0.867763,0.000000,0.000000,-0.496978 -2296,0.867841,0.000000,0.000000,-0.496843 -2297,0.867920,0.000000,0.000000,-0.496704 -2298,0.868001,0.000000,0.000000,-0.496562 -2299,0.868084,0.000000,0.000000,-0.496417 -2300,0.868169,0.000000,0.000000,-0.496269 -2301,0.868255,0.000000,0.000000,-0.496119 -2302,0.868343,0.000000,0.000000,-0.495965 -2303,0.868432,0.000000,0.000000,-0.495808 -2304,0.868523,0.000000,0.000000,-0.495648 -2305,0.868616,0.000000,0.000000,-0.495486 -2306,0.868711,0.000000,0.000000,-0.495320 -2307,0.868807,0.000000,0.000000,-0.495151 -2308,0.868905,0.000000,0.000000,-0.494979 -2309,0.869004,0.000000,0.000000,-0.494805 -2310,0.869105,0.000000,0.000000,-0.494627 -2311,0.869208,0.000000,0.000000,-0.494446 -2312,0.869313,0.000000,0.000000,-0.494263 -2313,0.869419,0.000000,0.000000,-0.494076 -2314,0.869526,0.000000,0.000000,-0.493886 -2315,0.869636,0.000000,0.000000,-0.493694 -2316,0.869747,0.000000,0.000000,-0.493498 -2317,0.869860,0.000000,0.000000,-0.493300 -2318,0.869974,0.000000,0.000000,-0.493098 -2319,0.870090,0.000000,0.000000,-0.492893 -2320,0.870207,0.000000,0.000000,-0.492686 -2321,0.870327,0.000000,0.000000,-0.492475 -2322,0.870447,0.000000,0.000000,-0.492261 -2323,0.870570,0.000000,0.000000,-0.492045 -2324,0.870694,0.000000,0.000000,-0.491825 -2325,0.870820,0.000000,0.000000,-0.491603 -2326,0.870947,0.000000,0.000000,-0.491377 -2327,0.871076,0.000000,0.000000,-0.491149 -2328,0.871206,0.000000,0.000000,-0.490917 -2329,0.871339,0.000000,0.000000,-0.490682 -2330,0.871472,0.000000,0.000000,-0.490445 -2331,0.871608,0.000000,0.000000,-0.490204 -2332,0.871745,0.000000,0.000000,-0.489961 -2333,0.871883,0.000000,0.000000,-0.489714 -2334,0.872023,0.000000,0.000000,-0.489465 -2335,0.872165,0.000000,0.000000,-0.489212 -2336,0.872308,0.000000,0.000000,-0.488956 -2337,0.872453,0.000000,0.000000,-0.488698 -2338,0.872600,0.000000,0.000000,-0.488436 -2339,0.872748,0.000000,0.000000,-0.488172 -2340,0.872897,0.000000,0.000000,-0.487904 -2341,0.873048,0.000000,0.000000,-0.487634 -2342,0.873201,0.000000,0.000000,-0.487360 -2343,0.873355,0.000000,0.000000,-0.487084 -2344,0.873511,0.000000,0.000000,-0.486804 -2345,0.873669,0.000000,0.000000,-0.486521 -2346,0.873828,0.000000,0.000000,-0.486236 -2347,0.873988,0.000000,0.000000,-0.485947 -2348,0.874150,0.000000,0.000000,-0.485656 -2349,0.874314,0.000000,0.000000,-0.485361 -2350,0.874479,0.000000,0.000000,-0.485064 -2351,0.874646,0.000000,0.000000,-0.484763 -2352,0.874814,0.000000,0.000000,-0.484459 -2353,0.874983,0.000000,0.000000,-0.484153 -2354,0.875155,0.000000,0.000000,-0.483843 -2355,0.875327,0.000000,0.000000,-0.483531 -2356,0.875502,0.000000,0.000000,-0.483215 -2357,0.875677,0.000000,0.000000,-0.482897 -2358,0.875855,0.000000,0.000000,-0.482575 -2359,0.876033,0.000000,0.000000,-0.482250 -2360,0.876214,0.000000,0.000000,-0.481923 -2361,0.876396,0.000000,0.000000,-0.481592 -2362,0.876579,0.000000,0.000000,-0.481258 -2363,0.876764,0.000000,0.000000,-0.480922 -2364,0.876950,0.000000,0.000000,-0.480582 -2365,0.877137,0.000000,0.000000,-0.480239 -2366,0.877327,0.000000,0.000000,-0.479894 -2367,0.877517,0.000000,0.000000,-0.479545 -2368,0.877709,0.000000,0.000000,-0.479193 -2369,0.877903,0.000000,0.000000,-0.478839 -2370,0.878098,0.000000,0.000000,-0.478481 -2371,0.878294,0.000000,0.000000,-0.478120 -2372,0.878492,0.000000,0.000000,-0.477757 -2373,0.878692,0.000000,0.000000,-0.477390 -2374,0.878892,0.000000,0.000000,-0.477020 -2375,0.879095,0.000000,0.000000,-0.476647 -2376,0.879298,0.000000,0.000000,-0.476272 -2377,0.879503,0.000000,0.000000,-0.475893 -2378,0.879710,0.000000,0.000000,-0.475511 -2379,0.879918,0.000000,0.000000,-0.475126 -2380,0.880127,0.000000,0.000000,-0.474738 -2381,0.880338,0.000000,0.000000,-0.474348 -2382,0.880550,0.000000,0.000000,-0.473954 -2383,0.880763,0.000000,0.000000,-0.473557 -2384,0.880978,0.000000,0.000000,-0.473157 -2385,0.881194,0.000000,0.000000,-0.472754 -2386,0.881412,0.000000,0.000000,-0.472348 -2387,0.881631,0.000000,0.000000,-0.471939 -2388,0.881851,0.000000,0.000000,-0.471527 -2389,0.882073,0.000000,0.000000,-0.471112 -2390,0.882296,0.000000,0.000000,-0.470694 -2391,0.882521,0.000000,0.000000,-0.470273 -2392,0.882747,0.000000,0.000000,-0.469849 -2393,0.882974,0.000000,0.000000,-0.469422 -2394,0.883202,0.000000,0.000000,-0.468992 -2395,0.883432,0.000000,0.000000,-0.468559 -2396,0.883663,0.000000,0.000000,-0.468123 -2397,0.883896,0.000000,0.000000,-0.467684 -2398,0.884129,0.000000,0.000000,-0.467242 -2399,0.884365,0.000000,0.000000,-0.466797 -2400,0.884601,0.000000,0.000000,-0.466349 -2401,0.884839,0.000000,0.000000,-0.465898 -2402,0.885078,0.000000,0.000000,-0.465443 -2403,0.885318,0.000000,0.000000,-0.464986 -2404,0.885560,0.000000,0.000000,-0.464526 -2405,0.885802,0.000000,0.000000,-0.464063 -2406,0.886046,0.000000,0.000000,-0.463596 -2407,0.886292,0.000000,0.000000,-0.463127 -2408,0.886538,0.000000,0.000000,-0.462655 -2409,0.886786,0.000000,0.000000,-0.462180 -2410,0.887036,0.000000,0.000000,-0.461701 -2411,0.887286,0.000000,0.000000,-0.461220 -2412,0.887538,0.000000,0.000000,-0.460735 -2413,0.887790,0.000000,0.000000,-0.460248 -2414,0.888044,0.000000,0.000000,-0.459758 -2415,0.888300,0.000000,0.000000,-0.459264 -2416,0.888556,0.000000,0.000000,-0.458768 -2417,0.888814,0.000000,0.000000,-0.458268 -2418,0.889073,0.000000,0.000000,-0.457766 -2419,0.889333,0.000000,0.000000,-0.457260 -2420,0.889594,0.000000,0.000000,-0.456752 -2421,0.889857,0.000000,0.000000,-0.456240 -2422,0.890120,0.000000,0.000000,-0.455725 -2423,0.890385,0.000000,0.000000,-0.455208 -2424,0.890651,0.000000,0.000000,-0.454687 -2425,0.890918,0.000000,0.000000,-0.454163 -2426,0.891187,0.000000,0.000000,-0.453637 -2427,0.891456,0.000000,0.000000,-0.453107 -2428,0.891727,0.000000,0.000000,-0.452574 -2429,0.891998,0.000000,0.000000,-0.452038 -2430,0.892271,0.000000,0.000000,-0.451500 -2431,0.892545,0.000000,0.000000,-0.450958 -2432,0.892820,0.000000,0.000000,-0.450413 -2433,0.893096,0.000000,0.000000,-0.449865 -2434,0.893374,0.000000,0.000000,-0.449314 -2435,0.893652,0.000000,0.000000,-0.448760 -2436,0.893932,0.000000,0.000000,-0.448203 -2437,0.894212,0.000000,0.000000,-0.447643 -2438,0.894494,0.000000,0.000000,-0.447080 -2439,0.894776,0.000000,0.000000,-0.446514 -2440,0.895060,0.000000,0.000000,-0.445945 -2441,0.895345,0.000000,0.000000,-0.445373 -2442,0.895631,0.000000,0.000000,-0.444798 -2443,0.895918,0.000000,0.000000,-0.444220 -2444,0.896206,0.000000,0.000000,-0.443639 -2445,0.896494,0.000000,0.000000,-0.443055 -2446,0.896784,0.000000,0.000000,-0.442468 -2447,0.897075,0.000000,0.000000,-0.441878 -2448,0.897367,0.000000,0.000000,-0.441284 -2449,0.897660,0.000000,0.000000,-0.440688 -2450,0.897954,0.000000,0.000000,-0.440089 -2451,0.898249,0.000000,0.000000,-0.439486 -2452,0.898545,0.000000,0.000000,-0.438881 -2453,0.898842,0.000000,0.000000,-0.438273 -2454,0.899140,0.000000,0.000000,-0.437661 -2455,0.899439,0.000000,0.000000,-0.437047 -2456,0.899738,0.000000,0.000000,-0.436430 -2457,0.900039,0.000000,0.000000,-0.435809 -2458,0.900341,0.000000,0.000000,-0.435186 -2459,0.900643,0.000000,0.000000,-0.434559 -2460,0.900947,0.000000,0.000000,-0.433930 -2461,0.901251,0.000000,0.000000,-0.433297 -2462,0.901556,0.000000,0.000000,-0.432662 -2463,0.901862,0.000000,0.000000,-0.432023 -2464,0.902170,0.000000,0.000000,-0.431382 -2465,0.902477,0.000000,0.000000,-0.430737 -2466,0.902786,0.000000,0.000000,-0.430089 -2467,0.903096,0.000000,0.000000,-0.429439 -2468,0.903406,0.000000,0.000000,-0.428785 -2469,0.903718,0.000000,0.000000,-0.428128 -2470,0.904030,0.000000,0.000000,-0.427469 -2471,0.904343,0.000000,0.000000,-0.426806 -2472,0.904657,0.000000,0.000000,-0.426140 -2473,0.904972,0.000000,0.000000,-0.425472 -2474,0.905287,0.000000,0.000000,-0.424800 -2475,0.905604,0.000000,0.000000,-0.424125 -2476,0.905921,0.000000,0.000000,-0.423447 -2477,0.906239,0.000000,0.000000,-0.422766 -2478,0.906557,0.000000,0.000000,-0.422083 -2479,0.906877,0.000000,0.000000,-0.421396 -2480,0.907197,0.000000,0.000000,-0.420706 -2481,0.907518,0.000000,0.000000,-0.420013 -2482,0.907840,0.000000,0.000000,-0.419317 -2483,0.908162,0.000000,0.000000,-0.418618 -2484,0.908486,0.000000,0.000000,-0.417916 -2485,0.908809,0.000000,0.000000,-0.417211 -2486,0.909134,0.000000,0.000000,-0.416503 -2487,0.909460,0.000000,0.000000,-0.415793 -2488,0.909786,0.000000,0.000000,-0.415079 -2489,0.910112,0.000000,0.000000,-0.414362 -2490,0.910440,0.000000,0.000000,-0.413642 -2491,0.910768,0.000000,0.000000,-0.412919 -2492,0.911097,0.000000,0.000000,-0.412193 -2493,0.911426,0.000000,0.000000,-0.411464 -2494,0.911756,0.000000,0.000000,-0.410732 -2495,0.912087,0.000000,0.000000,-0.409997 -2496,0.912418,0.000000,0.000000,-0.409259 -2497,0.912750,0.000000,0.000000,-0.408518 -2498,0.913083,0.000000,0.000000,-0.407774 -2499,0.913416,0.000000,0.000000,-0.407027 -2500,0.913750,0.000000,0.000000,-0.406276 -2501,0.914085,0.000000,0.000000,-0.405523 -2502,0.914420,0.000000,0.000000,-0.404767 -2503,0.914755,0.000000,0.000000,-0.404008 -2504,0.915091,0.000000,0.000000,-0.403246 -2505,0.915428,0.000000,0.000000,-0.402481 -2506,0.915765,0.000000,0.000000,-0.401713 -2507,0.916103,0.000000,0.000000,-0.400942 -2508,0.916442,0.000000,0.000000,-0.400168 -2509,0.916781,0.000000,0.000000,-0.399391 -2510,0.917120,0.000000,0.000000,-0.398611 -2511,0.917460,0.000000,0.000000,-0.397828 -2512,0.917800,0.000000,0.000000,-0.397042 -2513,0.918141,0.000000,0.000000,-0.396253 -2514,0.918483,0.000000,0.000000,-0.395461 -2515,0.918824,0.000000,0.000000,-0.394666 -2516,0.919167,0.000000,0.000000,-0.393868 -2517,0.919510,0.000000,0.000000,-0.393068 -2518,0.919853,0.000000,0.000000,-0.392264 -2519,0.920197,0.000000,0.000000,-0.391457 -2520,0.920541,0.000000,0.000000,-0.390647 -2521,0.920885,0.000000,0.000000,-0.389834 -2522,0.921230,0.000000,0.000000,-0.389018 -2523,0.921575,0.000000,0.000000,-0.388199 -2524,0.921921,0.000000,0.000000,-0.387378 -2525,0.922267,0.000000,0.000000,-0.386553 -2526,0.922614,0.000000,0.000000,-0.385725 -2527,0.922961,0.000000,0.000000,-0.384894 -2528,0.923308,0.000000,0.000000,-0.384061 -2529,0.923655,0.000000,0.000000,-0.383224 -2530,0.924003,0.000000,0.000000,-0.382384 -2531,0.924352,0.000000,0.000000,-0.381542 -2532,0.924700,0.000000,0.000000,-0.380696 -2533,0.925049,0.000000,0.000000,-0.379848 -2534,0.925398,0.000000,0.000000,-0.378996 -2535,0.925748,0.000000,0.000000,-0.378142 -2536,0.926097,0.000000,0.000000,-0.377284 -2537,0.926448,0.000000,0.000000,-0.376424 -2538,0.926798,0.000000,0.000000,-0.375561 -2539,0.927148,0.000000,0.000000,-0.374694 -2540,0.927499,0.000000,0.000000,-0.373825 -2541,0.927850,0.000000,0.000000,-0.372953 -2542,0.928202,0.000000,0.000000,-0.372078 -2543,0.928553,0.000000,0.000000,-0.371200 -2544,0.928905,0.000000,0.000000,-0.370319 -2545,0.929257,0.000000,0.000000,-0.369435 -2546,0.929609,0.000000,0.000000,-0.368548 -2547,0.929961,0.000000,0.000000,-0.367658 -2548,0.930314,0.000000,0.000000,-0.366765 -2549,0.930666,0.000000,0.000000,-0.365869 -2550,0.931019,0.000000,0.000000,-0.364970 -2551,0.931372,0.000000,0.000000,-0.364069 -2552,0.931725,0.000000,0.000000,-0.363164 -2553,0.932078,0.000000,0.000000,-0.362257 -2554,0.932432,0.000000,0.000000,-0.361346 -2555,0.932785,0.000000,0.000000,-0.360433 -2556,0.933139,0.000000,0.000000,-0.359517 -2557,0.933492,0.000000,0.000000,-0.358597 -2558,0.933846,0.000000,0.000000,-0.357675 -2559,0.934200,0.000000,0.000000,-0.356750 -2560,0.934554,0.000000,0.000000,-0.355822 -2561,0.934908,0.000000,0.000000,-0.354891 -2562,0.935261,0.000000,0.000000,-0.353958 -2563,0.935615,0.000000,0.000000,-0.353021 -2564,0.935969,0.000000,0.000000,-0.352081 -2565,0.936323,0.000000,0.000000,-0.351139 -2566,0.936677,0.000000,0.000000,-0.350193 -2567,0.937032,0.000000,0.000000,-0.349245 -2568,0.937385,0.000000,0.000000,-0.348294 -2569,0.937739,0.000000,0.000000,-0.347339 -2570,0.938093,0.000000,0.000000,-0.346382 -2571,0.938447,0.000000,0.000000,-0.345422 -2572,0.938801,0.000000,0.000000,-0.344460 -2573,0.939155,0.000000,0.000000,-0.343494 -2574,0.939509,0.000000,0.000000,-0.342525 -2575,0.939862,0.000000,0.000000,-0.341554 -2576,0.940216,0.000000,0.000000,-0.340579 -2577,0.940569,0.000000,0.000000,-0.339602 -2578,0.940922,0.000000,0.000000,-0.338622 -2579,0.941276,0.000000,0.000000,-0.337639 -2580,0.941629,0.000000,0.000000,-0.336653 -2581,0.941982,0.000000,0.000000,-0.335664 -2582,0.942334,0.000000,0.000000,-0.334673 -2583,0.942687,0.000000,0.000000,-0.333678 -2584,0.943039,0.000000,0.000000,-0.332681 -2585,0.943392,0.000000,0.000000,-0.331681 -2586,0.943744,0.000000,0.000000,-0.330678 -2587,0.944096,0.000000,0.000000,-0.329672 -2588,0.944447,0.000000,0.000000,-0.328663 -2589,0.944799,0.000000,0.000000,-0.327651 -2590,0.945150,0.000000,0.000000,-0.326637 -2591,0.945501,0.000000,0.000000,-0.325620 -2592,0.945852,0.000000,0.000000,-0.324599 -2593,0.946202,0.000000,0.000000,-0.323577 -2594,0.946552,0.000000,0.000000,-0.322551 -2595,0.946902,0.000000,0.000000,-0.321522 -2596,0.947252,0.000000,0.000000,-0.320491 -2597,0.947601,0.000000,0.000000,-0.319456 -2598,0.947950,0.000000,0.000000,-0.318419 -2599,0.948299,0.000000,0.000000,-0.317379 -2600,0.948647,0.000000,0.000000,-0.316337 -2601,0.948995,0.000000,0.000000,-0.315291 -2602,0.949343,0.000000,0.000000,-0.314243 -2603,0.949690,0.000000,0.000000,-0.313191 -2604,0.950037,0.000000,0.000000,-0.312137 -2605,0.950384,0.000000,0.000000,-0.311081 -2606,0.950730,0.000000,0.000000,-0.310021 -2607,0.951075,0.000000,0.000000,-0.308959 -2608,0.951421,0.000000,0.000000,-0.307894 -2609,0.951766,0.000000,0.000000,-0.306826 -2610,0.952110,0.000000,0.000000,-0.305755 -2611,0.952454,0.000000,0.000000,-0.304681 -2612,0.952798,0.000000,0.000000,-0.303605 -2613,0.953141,0.000000,0.000000,-0.302526 -2614,0.953484,0.000000,0.000000,-0.301444 -2615,0.953826,0.000000,0.000000,-0.300360 -2616,0.954168,0.000000,0.000000,-0.299272 -2617,0.954509,0.000000,0.000000,-0.298182 -2618,0.954850,0.000000,0.000000,-0.297089 -2619,0.955190,0.000000,0.000000,-0.295994 -2620,0.955530,0.000000,0.000000,-0.294895 -2621,0.955869,0.000000,0.000000,-0.293794 -2622,0.956207,0.000000,0.000000,-0.292691 -2623,0.956545,0.000000,0.000000,-0.291584 -2624,0.956883,0.000000,0.000000,-0.290475 -2625,0.957220,0.000000,0.000000,-0.289363 -2626,0.957556,0.000000,0.000000,-0.288248 -2627,0.957891,0.000000,0.000000,-0.287130 -2628,0.958227,0.000000,0.000000,-0.286010 -2629,0.958561,0.000000,0.000000,-0.284887 -2630,0.958895,0.000000,0.000000,-0.283762 -2631,0.959228,0.000000,0.000000,-0.282634 -2632,0.959560,0.000000,0.000000,-0.281503 -2633,0.959892,0.000000,0.000000,-0.280369 -2634,0.960224,0.000000,0.000000,-0.279232 -2635,0.960554,0.000000,0.000000,-0.278093 -2636,0.960884,0.000000,0.000000,-0.276952 -2637,0.961213,0.000000,0.000000,-0.275807 -2638,0.961541,0.000000,0.000000,-0.274660 -2639,0.961869,0.000000,0.000000,-0.273510 -2640,0.962196,0.000000,0.000000,-0.272358 -2641,0.962522,0.000000,0.000000,-0.271203 -2642,0.962848,0.000000,0.000000,-0.270045 -2643,0.963172,0.000000,0.000000,-0.268885 -2644,0.963496,0.000000,0.000000,-0.267721 -2645,0.963819,0.000000,0.000000,-0.266556 -2646,0.964142,0.000000,0.000000,-0.265387 -2647,0.964463,0.000000,0.000000,-0.264216 -2648,0.964784,0.000000,0.000000,-0.263043 -2649,0.965104,0.000000,0.000000,-0.261867 -2650,0.965423,0.000000,0.000000,-0.260688 -2651,0.965741,0.000000,0.000000,-0.259506 -2652,0.966059,0.000000,0.000000,-0.258322 -2653,0.966375,0.000000,0.000000,-0.257136 -2654,0.966691,0.000000,0.000000,-0.255946 -2655,0.967006,0.000000,0.000000,-0.254754 -2656,0.967320,0.000000,0.000000,-0.253560 -2657,0.967633,0.000000,0.000000,-0.252363 -2658,0.967945,0.000000,0.000000,-0.251163 -2659,0.968256,0.000000,0.000000,-0.249961 -2660,0.968566,0.000000,0.000000,-0.248756 -2661,0.968875,0.000000,0.000000,-0.247549 -2662,0.969184,0.000000,0.000000,-0.246339 -2663,0.969491,0.000000,0.000000,-0.245127 -2664,0.969797,0.000000,0.000000,-0.243912 -2665,0.970103,0.000000,0.000000,-0.242694 -2666,0.970407,0.000000,0.000000,-0.241474 -2667,0.970711,0.000000,0.000000,-0.240251 -2668,0.971013,0.000000,0.000000,-0.239026 -2669,0.971315,0.000000,0.000000,-0.237798 -2670,0.971615,0.000000,0.000000,-0.236568 -2671,0.971914,0.000000,0.000000,-0.235335 -2672,0.972212,0.000000,0.000000,-0.234100 -2673,0.972510,0.000000,0.000000,-0.232862 -2674,0.972806,0.000000,0.000000,-0.231622 -2675,0.973101,0.000000,0.000000,-0.230380 -2676,0.973395,0.000000,0.000000,-0.229134 -2677,0.973688,0.000000,0.000000,-0.227887 -2678,0.973979,0.000000,0.000000,-0.226636 -2679,0.974270,0.000000,0.000000,-0.225384 -2680,0.974560,0.000000,0.000000,-0.224129 -2681,0.974848,0.000000,0.000000,-0.222871 -2682,0.975135,0.000000,0.000000,-0.221611 -2683,0.975421,0.000000,0.000000,-0.220349 -2684,0.975706,0.000000,0.000000,-0.219084 -2685,0.975990,0.000000,0.000000,-0.217816 -2686,0.976272,0.000000,0.000000,-0.216547 -2687,0.976554,0.000000,0.000000,-0.215275 -2688,0.976834,0.000000,0.000000,-0.214000 -2689,0.977113,0.000000,0.000000,-0.212723 -2690,0.977390,0.000000,0.000000,-0.211444 -2691,0.977667,0.000000,0.000000,-0.210162 -2692,0.977942,0.000000,0.000000,-0.208878 -2693,0.978216,0.000000,0.000000,-0.207591 -2694,0.978488,0.000000,0.000000,-0.206302 -2695,0.978760,0.000000,0.000000,-0.205011 -2696,0.979030,0.000000,0.000000,-0.203717 -2697,0.979299,0.000000,0.000000,-0.202421 -2698,0.979566,0.000000,0.000000,-0.201122 -2699,0.979832,0.000000,0.000000,-0.199822 -2700,0.980097,0.000000,0.000000,-0.198518 -2701,0.980361,0.000000,0.000000,-0.197213 -2702,0.980623,0.000000,0.000000,-0.195905 -2703,0.980884,0.000000,0.000000,-0.194595 -2704,0.981143,0.000000,0.000000,-0.193283 -2705,0.981401,0.000000,0.000000,-0.191968 -2706,0.981658,0.000000,0.000000,-0.190651 -2707,0.981913,0.000000,0.000000,-0.189332 -2708,0.982167,0.000000,0.000000,-0.188010 -2709,0.982420,0.000000,0.000000,-0.186686 -2710,0.982671,0.000000,0.000000,-0.185360 -2711,0.982920,0.000000,0.000000,-0.184031 -2712,0.983169,0.000000,0.000000,-0.182701 -2713,0.983415,0.000000,0.000000,-0.181368 -2714,0.983661,0.000000,0.000000,-0.180032 -2715,0.983905,0.000000,0.000000,-0.178695 -2716,0.984147,0.000000,0.000000,-0.177355 -2717,0.984388,0.000000,0.000000,-0.176013 -2718,0.984627,0.000000,0.000000,-0.174669 -2719,0.984865,0.000000,0.000000,-0.173323 -2720,0.985101,0.000000,0.000000,-0.171974 -2721,0.985336,0.000000,0.000000,-0.170623 -2722,0.985570,0.000000,0.000000,-0.169270 -2723,0.985801,0.000000,0.000000,-0.167915 -2724,0.986032,0.000000,0.000000,-0.166558 -2725,0.986260,0.000000,0.000000,-0.165198 -2726,0.986487,0.000000,0.000000,-0.163837 -2727,0.986713,0.000000,0.000000,-0.162473 -2728,0.986937,0.000000,0.000000,-0.161107 -2729,0.987159,0.000000,0.000000,-0.159739 -2730,0.987380,0.000000,0.000000,-0.158368 -2731,0.987599,0.000000,0.000000,-0.156996 -2732,0.987817,0.000000,0.000000,-0.155621 -2733,0.988033,0.000000,0.000000,-0.154245 -2734,0.988247,0.000000,0.000000,-0.152866 -2735,0.988460,0.000000,0.000000,-0.151485 -2736,0.988670,0.000000,0.000000,-0.150102 -2737,0.988880,0.000000,0.000000,-0.148717 -2738,0.989087,0.000000,0.000000,-0.147330 -2739,0.989293,0.000000,0.000000,-0.145941 -2740,0.989498,0.000000,0.000000,-0.144550 -2741,0.989700,0.000000,0.000000,-0.143157 -2742,0.989901,0.000000,0.000000,-0.141761 -2743,0.990100,0.000000,0.000000,-0.140364 -2744,0.990297,0.000000,0.000000,-0.138965 -2745,0.990493,0.000000,0.000000,-0.137563 -2746,0.990687,0.000000,0.000000,-0.136160 -2747,0.990879,0.000000,0.000000,-0.134754 -2748,0.991069,0.000000,0.000000,-0.133347 -2749,0.991258,0.000000,0.000000,-0.131938 -2750,0.991445,0.000000,0.000000,-0.130526 -2751,0.991630,0.000000,0.000000,-0.129113 -2752,0.991813,0.000000,0.000000,-0.127698 -2753,0.991995,0.000000,0.000000,-0.126280 -2754,0.992174,0.000000,0.000000,-0.124861 -2755,0.992352,0.000000,0.000000,-0.123440 -2756,0.992528,0.000000,0.000000,-0.122017 -2757,0.992702,0.000000,0.000000,-0.120592 -2758,0.992874,0.000000,0.000000,-0.119165 -2759,0.993045,0.000000,0.000000,-0.117736 -2760,0.993214,0.000000,0.000000,-0.116305 -2761,0.993380,0.000000,0.000000,-0.114873 -2762,0.993545,0.000000,0.000000,-0.113438 -2763,0.993708,0.000000,0.000000,-0.112002 -2764,0.993869,0.000000,0.000000,-0.110563 -2765,0.994028,0.000000,0.000000,-0.109123 -2766,0.994185,0.000000,0.000000,-0.107681 -2767,0.994341,0.000000,0.000000,-0.106238 -2768,0.994494,0.000000,0.000000,-0.104792 -2769,0.994646,0.000000,0.000000,-0.103345 -2770,0.994795,0.000000,0.000000,-0.101895 -2771,0.994943,0.000000,0.000000,-0.100444 -2772,0.995088,0.000000,0.000000,-0.098991 -2773,0.995232,0.000000,0.000000,-0.097537 -2774,0.995374,0.000000,0.000000,-0.096080 -2775,0.995513,0.000000,0.000000,-0.094622 -2776,0.995651,0.000000,0.000000,-0.093162 -2777,0.995787,0.000000,0.000000,-0.091700 -2778,0.995920,0.000000,0.000000,-0.090237 -2779,0.996052,0.000000,0.000000,-0.088772 -2780,0.996182,0.000000,0.000000,-0.087305 -2781,0.996309,0.000000,0.000000,-0.085836 -2782,0.996435,0.000000,0.000000,-0.084366 -2783,0.996558,0.000000,0.000000,-0.082894 -2784,0.996680,0.000000,0.000000,-0.081420 -2785,0.996799,0.000000,0.000000,-0.079945 -2786,0.996917,0.000000,0.000000,-0.078468 -2787,0.997032,0.000000,0.000000,-0.076989 -2788,0.997145,0.000000,0.000000,-0.075509 -2789,0.997256,0.000000,0.000000,-0.074027 -2790,0.997365,0.000000,0.000000,-0.072543 -2791,0.997472,0.000000,0.000000,-0.071058 -2792,0.997577,0.000000,0.000000,-0.069571 -2793,0.997680,0.000000,0.000000,-0.068082 -2794,0.997780,0.000000,0.000000,-0.066592 -2795,0.997879,0.000000,0.000000,-0.065101 -2796,0.997975,0.000000,0.000000,-0.063607 -2797,0.998069,0.000000,0.000000,-0.062113 -2798,0.998161,0.000000,0.000000,-0.060616 -2799,0.998251,0.000000,0.000000,-0.059118 -2800,0.998339,0.000000,0.000000,-0.057619 -2801,0.998424,0.000000,0.000000,-0.056118 -2802,0.998507,0.000000,0.000000,-0.054615 -2803,0.998589,0.000000,0.000000,-0.053111 -2804,0.998668,0.000000,0.000000,-0.051606 -2805,0.998744,0.000000,0.000000,-0.050099 -2806,0.998819,0.000000,0.000000,-0.048590 -2807,0.998891,0.000000,0.000000,-0.047080 -2808,0.998961,0.000000,0.000000,-0.045569 -2809,0.999029,0.000000,0.000000,-0.044056 -2810,0.999095,0.000000,0.000000,-0.042542 -2811,0.999158,0.000000,0.000000,-0.041026 -2812,0.999219,0.000000,0.000000,-0.039509 -2813,0.999278,0.000000,0.000000,-0.037990 -2814,0.999335,0.000000,0.000000,-0.036470 -2815,0.999389,0.000000,0.000000,-0.034949 -2816,0.999441,0.000000,0.000000,-0.033426 -2817,0.999491,0.000000,0.000000,-0.031902 -2818,0.999539,0.000000,0.000000,-0.030377 -2819,0.999584,0.000000,0.000000,-0.028850 -2820,0.999627,0.000000,0.000000,-0.027322 -2821,0.999667,0.000000,0.000000,-0.025792 -2822,0.999706,0.000000,0.000000,-0.024261 -2823,0.999742,0.000000,0.000000,-0.022729 -2824,0.999775,0.000000,0.000000,-0.021196 -2825,0.999807,0.000000,0.000000,-0.019661 -2826,0.999836,0.000000,0.000000,-0.018125 -2827,0.999862,0.000000,0.000000,-0.016588 -2828,0.999887,0.000000,0.000000,-0.015049 -2829,0.999909,0.000000,0.000000,-0.013509 -2830,0.999928,0.000000,0.000000,-0.011968 -2831,0.999946,0.000000,0.000000,-0.010426 -2832,0.999961,0.000000,0.000000,-0.008882 -2833,0.999973,0.000000,0.000000,-0.007338 -2834,0.999983,0.000000,0.000000,-0.005792 -2835,0.999991,0.000000,0.000000,-0.004245 -2836,0.999996,0.000000,0.000000,-0.002696 -2837,0.999999,0.000000,0.000000,-0.001147 -2838,1.000000,0.000000,0.000000,0.000404 -2839,0.999998,0.000000,0.000000,0.001955 -2840,0.999994,0.000000,0.000000,0.003508 -2841,0.999987,0.000000,0.000000,0.005062 -2842,0.999978,0.000000,0.000000,0.006617 -2843,0.999967,0.000000,0.000000,0.008173 -2844,0.999953,0.000000,0.000000,0.009731 -2845,0.999936,0.000000,0.000000,0.011289 -2846,0.999917,0.000000,0.000000,0.012849 -2847,0.999896,0.000000,0.000000,0.014409 -2848,0.999872,0.000000,0.000000,0.015971 -2849,0.999846,0.000000,0.000000,0.017533 -2850,0.999818,0.000000,0.000000,0.019097 -2851,0.999787,0.000000,0.000000,0.020661 -2852,0.999753,0.000000,0.000000,0.022227 -2853,0.999717,0.000000,0.000000,0.023794 -2854,0.999678,0.000000,0.000000,0.025361 -2855,0.999637,0.000000,0.000000,0.026930 -2856,0.999594,0.000000,0.000000,0.028500 -2857,0.999548,0.000000,0.000000,0.030070 -2858,0.999499,0.000000,0.000000,0.031642 -2859,0.999448,0.000000,0.000000,0.033214 -2860,0.999395,0.000000,0.000000,0.034787 -2861,0.999339,0.000000,0.000000,0.036362 -2862,0.999280,0.000000,0.000000,0.037937 -2863,0.999219,0.000000,0.000000,0.039513 -2864,0.999155,0.000000,0.000000,0.041090 -2865,0.999089,0.000000,0.000000,0.042667 -2866,0.999021,0.000000,0.000000,0.044246 -2867,0.998949,0.000000,0.000000,0.045825 -2868,0.998876,0.000000,0.000000,0.047406 -2869,0.998799,0.000000,0.000000,0.048987 -2870,0.998721,0.000000,0.000000,0.050569 -2871,0.998639,0.000000,0.000000,0.052151 -2872,0.998555,0.000000,0.000000,0.053735 -2873,0.998469,0.000000,0.000000,0.055319 -2874,0.998380,0.000000,0.000000,0.056904 -2875,0.998288,0.000000,0.000000,0.058490 -2876,0.998194,0.000000,0.000000,0.060077 -2877,0.998097,0.000000,0.000000,0.061664 -2878,0.997998,0.000000,0.000000,0.063252 -2879,0.997896,0.000000,0.000000,0.064840 -2880,0.997791,0.000000,0.000000,0.066430 -2881,0.997684,0.000000,0.000000,0.068020 -2882,0.997574,0.000000,0.000000,0.069611 -2883,0.997462,0.000000,0.000000,0.071202 -2884,0.997347,0.000000,0.000000,0.072794 -2885,0.997229,0.000000,0.000000,0.074387 -2886,0.997109,0.000000,0.000000,0.075980 -2887,0.996987,0.000000,0.000000,0.077574 -2888,0.996861,0.000000,0.000000,0.079169 -2889,0.996733,0.000000,0.000000,0.080764 -2890,0.996603,0.000000,0.000000,0.082360 -2891,0.996469,0.000000,0.000000,0.083956 -2892,0.996334,0.000000,0.000000,0.085553 -2893,0.996195,0.000000,0.000000,0.087150 -2894,0.996054,0.000000,0.000000,0.088748 -2895,0.995910,0.000000,0.000000,0.090347 -2896,0.995764,0.000000,0.000000,0.091946 -2897,0.995615,0.000000,0.000000,0.093545 -2898,0.995463,0.000000,0.000000,0.095145 -2899,0.995309,0.000000,0.000000,0.096746 -2900,0.995152,0.000000,0.000000,0.098347 -2901,0.994993,0.000000,0.000000,0.099948 -2902,0.994830,0.000000,0.000000,0.101550 -2903,0.994666,0.000000,0.000000,0.103152 -2904,0.994498,0.000000,0.000000,0.104755 -2905,0.994328,0.000000,0.000000,0.106358 -2906,0.994155,0.000000,0.000000,0.107962 -2907,0.993980,0.000000,0.000000,0.109566 -2908,0.993801,0.000000,0.000000,0.111170 -2909,0.993621,0.000000,0.000000,0.112775 -2910,0.993437,0.000000,0.000000,0.114380 -2911,0.993251,0.000000,0.000000,0.115985 -2912,0.993062,0.000000,0.000000,0.117591 -2913,0.992871,0.000000,0.000000,0.119197 -2914,0.992677,0.000000,0.000000,0.120803 -2915,0.992480,0.000000,0.000000,0.122410 -2916,0.992280,0.000000,0.000000,0.124016 -2917,0.992078,0.000000,0.000000,0.125624 -2918,0.991873,0.000000,0.000000,0.127231 -2919,0.991666,0.000000,0.000000,0.128839 -2920,0.991455,0.000000,0.000000,0.130447 -2921,0.991242,0.000000,0.000000,0.132055 -2922,0.991027,0.000000,0.000000,0.133663 -2923,0.990809,0.000000,0.000000,0.135272 -2924,0.990588,0.000000,0.000000,0.136881 -2925,0.990364,0.000000,0.000000,0.138489 -2926,0.990138,0.000000,0.000000,0.140099 -2927,0.989909,0.000000,0.000000,0.141708 -2928,0.989677,0.000000,0.000000,0.143317 -2929,0.989442,0.000000,0.000000,0.144927 -2930,0.989205,0.000000,0.000000,0.146536 -2931,0.988965,0.000000,0.000000,0.148146 -2932,0.988723,0.000000,0.000000,0.149756 -2933,0.988478,0.000000,0.000000,0.151366 -2934,0.988230,0.000000,0.000000,0.152976 -2935,0.987979,0.000000,0.000000,0.154586 -2936,0.987726,0.000000,0.000000,0.156196 -2937,0.987470,0.000000,0.000000,0.157807 -2938,0.987211,0.000000,0.000000,0.159417 -2939,0.986950,0.000000,0.000000,0.161027 -2940,0.986686,0.000000,0.000000,0.162637 -2941,0.986419,0.000000,0.000000,0.164247 -2942,0.986150,0.000000,0.000000,0.165858 -2943,0.985878,0.000000,0.000000,0.167468 -2944,0.985603,0.000000,0.000000,0.169078 -2945,0.985325,0.000000,0.000000,0.170688 -2946,0.985045,0.000000,0.000000,0.172298 -2947,0.984762,0.000000,0.000000,0.173908 -2948,0.984476,0.000000,0.000000,0.175518 -2949,0.984188,0.000000,0.000000,0.177128 -2950,0.983897,0.000000,0.000000,0.178737 -2951,0.983603,0.000000,0.000000,0.180347 -2952,0.983307,0.000000,0.000000,0.181956 -2953,0.983007,0.000000,0.000000,0.183565 -2954,0.982706,0.000000,0.000000,0.185174 -2955,0.982401,0.000000,0.000000,0.186783 -2956,0.982094,0.000000,0.000000,0.188392 -2957,0.981784,0.000000,0.000000,0.190001 -2958,0.981471,0.000000,0.000000,0.191609 -2959,0.981156,0.000000,0.000000,0.193217 -2960,0.980838,0.000000,0.000000,0.194825 -2961,0.980517,0.000000,0.000000,0.196433 -2962,0.980194,0.000000,0.000000,0.198040 -2963,0.979868,0.000000,0.000000,0.199647 -2964,0.979539,0.000000,0.000000,0.201254 -2965,0.979208,0.000000,0.000000,0.202860 -2966,0.978874,0.000000,0.000000,0.204467 -2967,0.978537,0.000000,0.000000,0.206073 -2968,0.978197,0.000000,0.000000,0.207678 -2969,0.977855,0.000000,0.000000,0.209284 -2970,0.977510,0.000000,0.000000,0.210889 -2971,0.977163,0.000000,0.000000,0.212493 -2972,0.976812,0.000000,0.000000,0.214097 -2973,0.976459,0.000000,0.000000,0.215701 -2974,0.976104,0.000000,0.000000,0.217305 -2975,0.975746,0.000000,0.000000,0.218908 -2976,0.975385,0.000000,0.000000,0.220510 -2977,0.975021,0.000000,0.000000,0.222112 -2978,0.974655,0.000000,0.000000,0.223714 -2979,0.974286,0.000000,0.000000,0.225316 -2980,0.973914,0.000000,0.000000,0.226916 -2981,0.973540,0.000000,0.000000,0.228517 -2982,0.973163,0.000000,0.000000,0.230117 -2983,0.972783,0.000000,0.000000,0.231716 -2984,0.972401,0.000000,0.000000,0.233315 -2985,0.972016,0.000000,0.000000,0.234913 -2986,0.971629,0.000000,0.000000,0.236511 -2987,0.971239,0.000000,0.000000,0.238109 -2988,0.970846,0.000000,0.000000,0.239705 -2989,0.970450,0.000000,0.000000,0.241301 -2990,0.970052,0.000000,0.000000,0.242897 -2991,0.969651,0.000000,0.000000,0.244492 -2992,0.969248,0.000000,0.000000,0.246087 -2993,0.968842,0.000000,0.000000,0.247680 -2994,0.968433,0.000000,0.000000,0.249274 -2995,0.968022,0.000000,0.000000,0.250866 -2996,0.967608,0.000000,0.000000,0.252458 -2997,0.967191,0.000000,0.000000,0.254049 -2998,0.966772,0.000000,0.000000,0.255640 -2999,0.966350,0.000000,0.000000,0.257230 diff --git a/scripts/testv/stvISM1.csv b/scripts/testv/stvISM1.csv index 574c537028..e69de29bb2 100644 --- a/scripts/testv/stvISM1.csv +++ b/scripts/testv/stvISM1.csv @@ -1,1500 +0,0 @@ -0,0.00,0.00,1.00,0.00,1.00 -1,4.80,0.00,1.00,0.00,1.00 -2,9.60,0.00,1.00,0.00,1.00 -3,14.40,0.00,1.00,0.00,1.00 -4,19.20,0.00,1.00,0.00,1.00 -5,24.00,0.00,1.00,0.00,1.00 -6,28.80,0.00,1.00,0.00,1.00 -7,33.60,0.00,1.00,0.00,1.00 -8,38.40,0.00,1.00,0.00,1.00 -9,43.20,0.00,1.00,0.00,1.00 -10,48.00,0.00,1.00,0.00,1.00 -11,52.80,0.00,1.00,0.00,1.00 -12,57.60,0.00,1.00,0.00,1.00 -13,62.40,0.00,1.00,0.00,1.00 -14,67.20,0.00,1.00,0.00,1.00 -15,72.00,0.00,1.00,0.00,1.00 -16,76.80,0.00,1.00,0.00,1.00 -17,81.60,0.00,1.00,0.00,1.00 -18,86.40,0.00,1.00,0.00,1.00 -19,91.20,0.00,1.00,0.00,1.00 -20,96.00,0.00,1.00,0.00,1.00 -21,100.80,0.00,1.00,0.00,1.00 -22,105.60,0.00,1.00,0.00,1.00 -23,110.40,0.00,1.00,0.00,1.00 -24,115.20,0.00,1.00,0.00,1.00 -25,120.00,0.00,1.00,0.00,1.00 -26,124.80,0.00,1.00,0.00,1.00 -27,129.60,0.00,1.00,0.00,1.00 -28,134.40,0.00,1.00,0.00,1.00 -29,139.20,0.00,1.00,0.00,1.00 -30,144.00,0.00,1.00,0.00,1.00 -31,148.80,0.00,1.00,0.00,1.00 -32,153.60,0.00,1.00,0.00,1.00 -33,158.40,0.00,1.00,0.00,1.00 -34,163.20,0.00,1.00,0.00,1.00 -35,168.00,0.00,1.00,0.00,1.00 -36,172.80,0.00,1.00,0.00,1.00 -37,177.60,0.00,1.00,0.00,1.00 -38,-177.60,0.00,1.00,0.00,1.00 -39,-172.80,0.00,1.00,0.00,1.00 -40,-168.00,0.00,1.00,0.00,1.00 -41,-163.20,0.00,1.00,0.00,1.00 -42,-158.40,0.00,1.00,0.00,1.00 -43,-153.60,0.00,1.00,0.00,1.00 -44,-148.80,0.00,1.00,0.00,1.00 -45,-144.00,0.00,1.00,0.00,1.00 -46,-139.20,0.00,1.00,0.00,1.00 -47,-134.40,0.00,1.00,0.00,1.00 -48,-129.60,0.00,1.00,0.00,1.00 -49,-124.80,0.00,1.00,0.00,1.00 -50,-120.00,0.00,1.00,0.00,1.00 -51,-115.20,0.00,1.00,0.00,1.00 -52,-110.40,0.00,1.00,0.00,1.00 -53,-105.60,0.00,1.00,0.00,1.00 -54,-100.80,0.00,1.00,0.00,1.00 -55,-96.00,0.00,1.00,0.00,1.00 -56,-91.20,0.00,1.00,0.00,1.00 -57,-86.40,0.00,1.00,0.00,1.00 -58,-81.60,0.00,1.00,0.00,1.00 -59,-76.80,0.00,1.00,0.00,1.00 -60,-72.00,0.00,1.00,0.00,1.00 -61,-67.20,0.00,1.00,0.00,1.00 -62,-62.40,0.00,1.00,0.00,1.00 -63,-57.60,0.00,1.00,0.00,1.00 -64,-52.80,0.00,1.00,0.00,1.00 -65,-48.00,0.00,1.00,0.00,1.00 -66,-43.20,0.00,1.00,0.00,1.00 -67,-38.40,0.00,1.00,0.00,1.00 -68,-33.60,0.00,1.00,0.00,1.00 -69,-28.80,0.00,1.00,0.00,1.00 -70,-24.00,0.00,1.00,0.00,1.00 -71,-19.20,0.00,1.00,0.00,1.00 -72,-14.40,0.00,1.00,0.00,1.00 -73,-9.60,0.00,1.00,0.00,1.00 -74,-4.80,0.00,1.00,0.00,1.00 -75,0.00,0.00,1.00,0.00,1.00 -76,4.80,-0.00,1.00,0.00,1.00 -77,9.60,-0.00,1.00,0.00,1.00 -78,14.40,-0.00,1.00,0.00,1.00 -79,19.20,-0.00,1.00,0.00,1.00 -80,24.00,-0.00,1.00,0.00,1.00 -81,28.80,-0.00,1.00,0.00,1.00 -82,33.60,-4.80,1.00,0.00,1.00 -83,38.40,-4.80,1.00,0.00,1.00 -84,43.20,-4.80,1.00,0.00,1.00 -85,48.00,-4.80,1.00,0.00,1.00 -86,52.80,-4.80,1.00,0.00,1.00 -87,57.60,-4.80,1.00,0.00,1.00 -88,62.40,-4.80,1.00,0.00,1.00 -89,67.20,-4.80,1.00,0.00,1.00 -90,72.00,-4.80,1.00,0.00,1.00 -91,76.80,-4.80,1.00,0.00,1.00 -92,81.60,-4.80,1.00,0.00,1.00 -93,86.40,-4.80,1.00,0.00,1.00 -94,91.20,-4.80,1.00,0.00,1.00 -95,96.00,-4.80,1.00,0.00,1.00 -96,100.80,-4.80,1.00,0.00,1.00 -97,105.60,-4.80,1.00,0.00,1.00 -98,110.40,-4.80,1.00,0.00,1.00 -99,115.20,-4.80,1.00,0.00,1.00 -100,120.00,-4.80,1.00,0.00,1.00 -101,124.80,-4.80,1.00,0.00,1.00 -102,129.60,-4.80,1.00,0.00,1.00 -103,134.40,-4.80,1.00,0.00,1.00 -104,139.20,-4.80,1.00,0.00,1.00 -105,144.00,-4.80,1.00,0.00,1.00 -106,148.80,-4.80,1.00,0.00,1.00 -107,153.60,-0.00,1.00,0.00,1.00 -108,158.40,-0.00,1.00,0.00,1.00 -109,163.20,-0.00,1.00,0.00,1.00 -110,168.00,-0.00,1.00,0.00,1.00 -111,172.80,-0.00,1.00,0.00,1.00 -112,177.60,-0.00,1.00,0.00,1.00 -113,-177.60,0.00,1.00,0.00,1.00 -114,-172.80,0.00,1.00,0.00,1.00 -115,-168.00,0.00,1.00,0.00,1.00 -116,-163.20,0.00,1.00,0.00,1.00 -117,-158.40,0.00,1.00,0.00,1.00 -118,-153.60,0.00,1.00,0.00,1.00 -119,-148.80,4.80,1.00,0.00,1.00 -120,-144.00,4.80,1.00,0.00,1.00 -121,-139.20,4.80,1.00,0.00,1.00 -122,-134.40,4.80,1.00,0.00,1.00 -123,-129.60,4.80,1.00,0.00,1.00 -124,-124.80,4.80,1.00,0.00,1.00 -125,-120.00,4.80,1.00,0.00,1.00 -126,-115.20,4.80,1.00,0.00,1.00 -127,-110.40,4.80,1.00,0.00,1.00 -128,-105.60,4.80,1.00,0.00,1.00 -129,-100.80,4.80,1.00,0.00,1.00 -130,-96.00,4.80,1.00,0.00,1.00 -131,-91.20,4.80,1.00,0.00,1.00 -132,-86.40,4.80,1.00,0.00,1.00 -133,-81.60,4.80,1.00,0.00,1.00 -134,-76.80,4.80,1.00,0.00,1.00 -135,-72.00,4.80,1.00,0.00,1.00 -136,-67.20,4.80,1.00,0.00,1.00 -137,-62.40,4.80,1.00,0.00,1.00 -138,-57.60,4.80,1.00,0.00,1.00 -139,-52.80,4.80,1.00,0.00,1.00 -140,-48.00,4.80,1.00,0.00,1.00 -141,-43.20,4.80,1.00,0.00,1.00 -142,-38.40,4.80,1.00,0.00,1.00 -143,-33.60,4.80,1.00,0.00,1.00 -144,-28.80,0.00,1.00,0.00,1.00 -145,-24.00,0.00,1.00,0.00,1.00 -146,-19.20,0.00,1.00,0.00,1.00 -147,-14.40,0.00,1.00,0.00,1.00 -148,-9.60,0.00,1.00,0.00,1.00 -149,-4.80,0.00,1.00,0.00,1.00 -150,0.00,0.00,1.00,0.00,1.00 -151,4.80,-0.00,1.00,0.00,1.00 -152,9.60,-0.00,1.00,0.00,1.00 -153,14.40,-0.00,1.00,0.00,1.00 -154,19.20,-4.80,1.00,0.00,1.00 -155,24.00,-4.80,1.00,0.00,1.00 -156,28.80,-4.80,1.00,0.00,1.00 -157,33.60,-4.80,1.00,0.00,1.00 -158,38.40,-4.80,1.00,0.00,1.00 -159,43.20,-4.80,1.00,0.00,1.00 -160,48.00,-4.80,1.00,0.00,1.00 -161,52.80,-9.60,1.00,0.00,1.00 -162,57.60,-9.60,1.00,0.00,1.00 -163,62.40,-9.60,1.00,0.00,1.00 -164,67.20,-9.60,1.00,0.00,1.00 -165,72.00,-9.60,1.00,0.00,1.00 -166,76.80,-9.60,1.00,0.00,1.00 -167,81.60,-9.60,1.00,0.00,1.00 -168,86.40,-9.60,1.00,0.00,1.00 -169,91.20,-9.60,1.00,0.00,1.00 -170,96.00,-9.60,1.00,0.00,1.00 -171,100.80,-9.60,1.00,0.00,1.00 -172,105.60,-9.60,1.00,0.00,1.00 -173,110.40,-9.60,1.00,0.00,1.00 -174,115.20,-9.60,1.00,0.00,1.00 -175,120.00,-9.60,1.00,0.00,1.00 -176,124.80,-9.60,1.00,0.00,1.00 -177,129.60,-9.60,1.00,0.00,1.00 -178,134.40,-4.80,1.00,0.00,1.00 -179,139.20,-4.80,1.00,0.00,1.00 -180,144.00,-4.80,1.00,0.00,1.00 -181,148.80,-4.80,1.00,0.00,1.00 -182,153.60,-4.80,1.00,0.00,1.00 -183,158.40,-4.80,1.00,0.00,1.00 -184,163.20,-4.80,1.00,0.00,1.00 -185,168.00,-0.00,1.00,0.00,1.00 -186,172.80,-0.00,1.00,0.00,1.00 -187,177.60,-0.00,1.00,0.00,1.00 -188,-177.60,0.00,1.00,0.00,1.00 -189,-172.80,0.00,1.00,0.00,1.00 -190,-168.00,0.00,1.00,0.00,1.00 -191,-163.20,4.80,1.00,0.00,1.00 -192,-158.40,4.80,1.00,0.00,1.00 -193,-153.60,4.80,1.00,0.00,1.00 -194,-148.80,4.80,1.00,0.00,1.00 -195,-144.00,4.80,1.00,0.00,1.00 -196,-139.20,4.80,1.00,0.00,1.00 -197,-134.40,4.80,1.00,0.00,1.00 -198,-129.60,9.60,1.00,0.00,1.00 -199,-124.80,9.60,1.00,0.00,1.00 -200,-120.00,9.60,1.00,0.00,1.00 -201,-115.20,9.60,1.00,0.00,1.00 -202,-110.40,9.60,1.00,0.00,1.00 -203,-105.60,9.60,1.00,0.00,1.00 -204,-100.80,9.60,1.00,0.00,1.00 -205,-96.00,9.60,1.00,0.00,1.00 -206,-91.20,9.60,1.00,0.00,1.00 -207,-86.40,9.60,1.00,0.00,1.00 -208,-81.60,9.60,1.00,0.00,1.00 -209,-76.80,9.60,1.00,0.00,1.00 -210,-72.00,9.60,1.00,0.00,1.00 -211,-67.20,9.60,1.00,0.00,1.00 -212,-62.40,9.60,1.00,0.00,1.00 -213,-57.60,9.60,1.00,0.00,1.00 -214,-52.80,9.60,1.00,0.00,1.00 -215,-48.00,4.80,1.00,0.00,1.00 -216,-43.20,4.80,1.00,0.00,1.00 -217,-38.40,4.80,1.00,0.00,1.00 -218,-33.60,4.80,1.00,0.00,1.00 -219,-28.80,4.80,1.00,0.00,1.00 -220,-24.00,4.80,1.00,0.00,1.00 -221,-19.20,4.80,1.00,0.00,1.00 -222,-14.40,0.00,1.00,0.00,1.00 -223,-9.60,0.00,1.00,0.00,1.00 -224,-4.80,0.00,1.00,0.00,1.00 -225,0.00,0.00,1.00,0.00,1.00 -226,4.80,-0.00,1.00,0.00,1.00 -227,9.60,-0.00,1.00,0.00,1.00 -228,14.40,-4.80,1.00,0.00,1.00 -229,19.20,-4.80,1.00,0.00,1.00 -230,24.00,-4.80,1.00,0.00,1.00 -231,28.80,-4.80,1.00,0.00,1.00 -232,33.60,-9.60,1.00,0.00,1.00 -233,38.40,-9.60,1.00,0.00,1.00 -234,43.20,-9.60,1.00,0.00,1.00 -235,48.00,-9.60,1.00,0.00,1.00 -236,52.80,-9.60,1.00,0.00,1.00 -237,57.60,-14.40,1.00,0.00,1.00 -238,62.40,-14.40,1.00,0.00,1.00 -239,67.20,-14.40,1.00,0.00,1.00 -240,72.00,-14.40,1.00,0.00,1.00 -241,76.80,-14.40,1.00,0.00,1.00 -242,81.60,-14.40,1.00,0.00,1.00 -243,86.40,-14.40,1.00,0.00,1.00 -244,91.20,-14.40,1.00,0.00,1.00 -245,96.00,-14.40,1.00,0.00,1.00 -246,100.80,-14.40,1.00,0.00,1.00 -247,105.60,-14.40,1.00,0.00,1.00 -248,110.40,-14.40,1.00,0.00,1.00 -249,115.20,-14.40,1.00,0.00,1.00 -250,120.00,-14.40,1.00,0.00,1.00 -251,124.80,-9.60,1.00,0.00,1.00 -252,129.60,-9.60,1.00,0.00,1.00 -253,134.40,-9.60,1.00,0.00,1.00 -254,139.20,-9.60,1.00,0.00,1.00 -255,144.00,-9.60,1.00,0.00,1.00 -256,148.80,-9.60,1.00,0.00,1.00 -257,153.60,-4.80,1.00,0.00,1.00 -258,158.40,-4.80,1.00,0.00,1.00 -259,163.20,-4.80,1.00,0.00,1.00 -260,168.00,-4.80,1.00,0.00,1.00 -261,172.80,-0.00,1.00,0.00,1.00 -262,177.60,-0.00,1.00,0.00,1.00 -263,-177.60,0.00,1.00,0.00,1.00 -264,-172.80,0.00,1.00,0.00,1.00 -265,-168.00,4.80,1.00,0.00,1.00 -266,-163.20,4.80,1.00,0.00,1.00 -267,-158.40,4.80,1.00,0.00,1.00 -268,-153.60,4.80,1.00,0.00,1.00 -269,-148.80,9.60,1.00,0.00,1.00 -270,-144.00,9.60,1.00,0.00,1.00 -271,-139.20,9.60,1.00,0.00,1.00 -272,-134.40,9.60,1.00,0.00,1.00 -273,-129.60,9.60,1.00,0.00,1.00 -274,-124.80,9.60,1.00,0.00,1.00 -275,-120.00,14.40,1.00,0.00,1.00 -276,-115.20,14.40,1.00,0.00,1.00 -277,-110.40,14.40,1.00,0.00,1.00 -278,-105.60,14.40,1.00,0.00,1.00 -279,-100.80,14.40,1.00,0.00,1.00 -280,-96.00,14.40,1.00,0.00,1.00 -281,-91.20,14.40,1.00,0.00,1.00 -282,-86.40,14.40,1.00,0.00,1.00 -283,-81.60,14.40,1.00,0.00,1.00 -284,-76.80,14.40,1.00,0.00,1.00 -285,-72.00,14.40,1.00,0.00,1.00 -286,-67.20,14.40,1.00,0.00,1.00 -287,-62.40,14.40,1.00,0.00,1.00 -288,-57.60,14.40,1.00,0.00,1.00 -289,-52.80,9.60,1.00,0.00,1.00 -290,-48.00,9.60,1.00,0.00,1.00 -291,-43.20,9.60,1.00,0.00,1.00 -292,-38.40,9.60,1.00,0.00,1.00 -293,-33.60,9.60,1.00,0.00,1.00 -294,-28.80,4.80,1.00,0.00,1.00 -295,-24.00,4.80,1.00,0.00,1.00 -296,-19.20,4.80,1.00,0.00,1.00 -297,-14.40,4.80,1.00,0.00,1.00 -298,-9.60,0.00,1.00,0.00,1.00 -299,-4.80,0.00,1.00,0.00,1.00 -300,0.00,0.00,1.00,0.00,1.00 -301,4.80,-0.00,1.00,0.00,1.00 -302,9.60,-4.80,1.00,0.00,1.00 -303,14.40,-4.80,1.00,0.00,1.00 -304,19.20,-4.80,1.00,0.00,1.00 -305,24.00,-9.60,1.00,0.00,1.00 -306,28.80,-9.60,1.00,0.00,1.00 -307,33.60,-9.60,1.00,0.00,1.00 -308,38.40,-9.60,1.00,0.00,1.00 -309,43.20,-14.40,1.00,0.00,1.00 -310,48.00,-14.40,1.00,0.00,1.00 -311,52.80,-14.40,1.00,0.00,1.00 -312,57.60,-14.40,1.00,0.00,1.00 -313,62.40,-19.20,1.00,0.00,1.00 -314,67.20,-19.20,1.00,0.00,1.00 -315,72.00,-19.20,1.00,0.00,1.00 -316,76.80,-19.20,1.00,0.00,1.00 -317,81.60,-19.20,1.00,0.00,1.00 -318,86.40,-19.20,1.00,0.00,1.00 -319,91.20,-19.20,1.00,0.00,1.00 -320,96.00,-19.20,1.00,0.00,1.00 -321,100.80,-19.20,1.00,0.00,1.00 -322,105.60,-19.20,1.00,0.00,1.00 -323,110.40,-19.20,1.00,0.00,1.00 -324,115.20,-19.20,1.00,0.00,1.00 -325,120.00,-14.40,1.00,0.00,1.00 -326,124.80,-14.40,1.00,0.00,1.00 -327,129.60,-14.40,1.00,0.00,1.00 -328,134.40,-14.40,1.00,0.00,1.00 -329,139.20,-14.40,1.00,0.00,1.00 -330,144.00,-9.60,1.00,0.00,1.00 -331,148.80,-9.60,1.00,0.00,1.00 -332,153.60,-9.60,1.00,0.00,1.00 -333,158.40,-4.80,1.00,0.00,1.00 -334,163.20,-4.80,1.00,0.00,1.00 -335,168.00,-4.80,1.00,0.00,1.00 -336,172.80,-0.00,1.00,0.00,1.00 -337,177.60,-0.00,1.00,0.00,1.00 -338,-177.60,0.00,1.00,0.00,1.00 -339,-172.80,0.00,1.00,0.00,1.00 -340,-168.00,4.80,1.00,0.00,1.00 -341,-163.20,4.80,1.00,0.00,1.00 -342,-158.40,4.80,1.00,0.00,1.00 -343,-153.60,9.60,1.00,0.00,1.00 -344,-148.80,9.60,1.00,0.00,1.00 -345,-144.00,9.60,1.00,0.00,1.00 -346,-139.20,14.40,1.00,0.00,1.00 -347,-134.40,14.40,1.00,0.00,1.00 -348,-129.60,14.40,1.00,0.00,1.00 -349,-124.80,14.40,1.00,0.00,1.00 -350,-120.00,14.40,1.00,0.00,1.00 -351,-115.20,19.20,1.00,0.00,1.00 -352,-110.40,19.20,1.00,0.00,1.00 -353,-105.60,19.20,1.00,0.00,1.00 -354,-100.80,19.20,1.00,0.00,1.00 -355,-96.00,19.20,1.00,0.00,1.00 -356,-91.20,19.20,1.00,0.00,1.00 -357,-86.40,19.20,1.00,0.00,1.00 -358,-81.60,19.20,1.00,0.00,1.00 -359,-76.80,19.20,1.00,0.00,1.00 -360,-72.00,19.20,1.00,0.00,1.00 -361,-67.20,19.20,1.00,0.00,1.00 -362,-62.40,19.20,1.00,0.00,1.00 -363,-57.60,14.40,1.00,0.00,1.00 -364,-52.80,14.40,1.00,0.00,1.00 -365,-48.00,14.40,1.00,0.00,1.00 -366,-43.20,14.40,1.00,0.00,1.00 -367,-38.40,9.60,1.00,0.00,1.00 -368,-33.60,9.60,1.00,0.00,1.00 -369,-28.80,9.60,1.00,0.00,1.00 -370,-24.00,9.60,1.00,0.00,1.00 -371,-19.20,4.80,1.00,0.00,1.00 -372,-14.40,4.80,1.00,0.00,1.00 -373,-9.60,4.80,1.00,0.00,1.00 -374,-4.80,0.00,1.00,0.00,1.00 -375,0.00,0.00,1.00,0.00,1.00 -376,4.80,-0.00,1.00,0.00,1.00 -377,9.60,-4.80,1.00,0.00,1.00 -378,14.40,-4.80,1.00,0.00,1.00 -379,19.20,-9.60,1.00,0.00,1.00 -380,24.00,-9.60,1.00,0.00,1.00 -381,28.80,-9.60,1.00,0.00,1.00 -382,33.60,-14.40,1.00,0.00,1.00 -383,33.60,-14.40,1.00,0.00,1.00 -384,38.40,-14.40,1.00,0.00,1.00 -385,43.20,-19.20,1.00,0.00,1.00 -386,48.00,-19.20,1.00,0.00,1.00 -387,57.60,-19.20,1.00,0.00,1.00 -388,62.40,-19.20,1.00,0.00,1.00 -389,67.20,-24.00,1.00,0.00,1.00 -390,72.00,-24.00,1.00,0.00,1.00 -391,76.80,-24.00,1.00,0.00,1.00 -392,81.60,-24.00,1.00,0.00,1.00 -393,86.40,-24.00,1.00,0.00,1.00 -394,91.20,-24.00,1.00,0.00,1.00 -395,96.00,-24.00,1.00,0.00,1.00 -396,100.80,-24.00,1.00,0.00,1.00 -397,105.60,-24.00,1.00,0.00,1.00 -398,110.40,-24.00,1.00,0.00,1.00 -399,115.20,-19.20,1.00,0.00,1.00 -400,120.00,-19.20,1.00,0.00,1.00 -401,129.60,-19.20,1.00,0.00,1.00 -402,134.40,-19.20,1.00,0.00,1.00 -403,139.20,-19.20,1.00,0.00,1.00 -404,144.00,-14.40,1.00,0.00,1.00 -405,148.80,-14.40,1.00,0.00,1.00 -406,148.80,-14.40,1.00,0.00,1.00 -407,153.60,-9.60,1.00,0.00,1.00 -408,158.40,-9.60,1.00,0.00,1.00 -409,163.20,-4.80,1.00,0.00,1.00 -410,168.00,-4.80,1.00,0.00,1.00 -411,172.80,-4.80,1.00,0.00,1.00 -412,177.60,-0.00,1.00,0.00,1.00 -413,-177.60,0.00,1.00,0.00,1.00 -414,-172.80,4.80,1.00,0.00,1.00 -415,-168.00,4.80,1.00,0.00,1.00 -416,-163.20,4.80,1.00,0.00,1.00 -417,-158.40,9.60,1.00,0.00,1.00 -418,-153.60,9.60,1.00,0.00,1.00 -419,-148.80,14.40,1.00,0.00,1.00 -420,-148.80,14.40,1.00,0.00,1.00 -421,-144.00,14.40,1.00,0.00,1.00 -422,-139.20,19.20,1.00,0.00,1.00 -423,-134.40,19.20,1.00,0.00,1.00 -424,-129.60,19.20,1.00,0.00,1.00 -425,-120.00,19.20,1.00,0.00,1.00 -426,-115.20,19.20,1.00,0.00,1.00 -427,-110.40,24.00,1.00,0.00,1.00 -428,-105.60,24.00,1.00,0.00,1.00 -429,-100.80,24.00,1.00,0.00,1.00 -430,-96.00,24.00,1.00,0.00,1.00 -431,-91.20,24.00,1.00,0.00,1.00 -432,-86.40,24.00,1.00,0.00,1.00 -433,-81.60,24.00,1.00,0.00,1.00 -434,-76.80,24.00,1.00,0.00,1.00 -435,-72.00,24.00,1.00,0.00,1.00 -436,-67.20,24.00,1.00,0.00,1.00 -437,-62.40,19.20,1.00,0.00,1.00 -438,-57.60,19.20,1.00,0.00,1.00 -439,-48.00,19.20,1.00,0.00,1.00 -440,-43.20,19.20,1.00,0.00,1.00 -441,-38.40,14.40,1.00,0.00,1.00 -442,-33.60,14.40,1.00,0.00,1.00 -443,-33.60,14.40,1.00,0.00,1.00 -444,-28.80,9.60,1.00,0.00,1.00 -445,-24.00,9.60,1.00,0.00,1.00 -446,-19.20,9.60,1.00,0.00,1.00 -447,-14.40,4.80,1.00,0.00,1.00 -448,-9.60,4.80,1.00,0.00,1.00 -449,-4.80,0.00,1.00,0.00,1.00 -450,0.00,0.00,1.00,0.00,1.00 -451,4.80,-0.00,1.00,0.00,1.00 -452,9.60,-4.80,1.00,0.00,1.00 -453,14.40,-4.80,1.00,0.00,1.00 -454,19.20,-9.60,1.00,0.00,1.00 -455,19.20,-9.60,1.00,0.00,1.00 -456,24.00,-14.40,1.00,0.00,1.00 -457,28.80,-14.40,1.00,0.00,1.00 -458,33.60,-19.20,1.00,0.00,1.00 -459,38.40,-19.20,1.00,0.00,1.00 -460,43.20,-19.20,1.00,0.00,1.00 -461,48.00,-24.00,1.00,0.00,1.00 -462,52.80,-24.00,1.00,0.00,1.00 -463,57.60,-24.00,1.00,0.00,1.00 -464,62.40,-24.00,1.00,0.00,1.00 -465,72.00,-28.80,1.00,0.00,1.00 -466,76.80,-28.80,1.00,0.00,1.00 -467,81.60,-28.80,1.00,0.00,1.00 -468,86.40,-28.80,1.00,0.00,1.00 -469,91.20,-28.80,1.00,0.00,1.00 -470,96.00,-28.80,1.00,0.00,1.00 -471,100.80,-28.80,1.00,0.00,1.00 -472,105.60,-28.80,1.00,0.00,1.00 -473,115.20,-28.80,1.00,0.00,1.00 -474,120.00,-24.00,1.00,0.00,1.00 -475,124.80,-24.00,1.00,0.00,1.00 -476,129.60,-24.00,1.00,0.00,1.00 -477,134.40,-24.00,1.00,0.00,1.00 -478,139.20,-19.20,1.00,0.00,1.00 -479,144.00,-19.20,1.00,0.00,1.00 -480,148.80,-14.40,1.00,0.00,1.00 -481,153.60,-14.40,1.00,0.00,1.00 -482,158.40,-14.40,1.00,0.00,1.00 -483,163.20,-9.60,1.00,0.00,1.00 -484,163.20,-9.60,1.00,0.00,1.00 -485,168.00,-4.80,1.00,0.00,1.00 -486,172.80,-4.80,1.00,0.00,1.00 -487,177.60,-0.00,1.00,0.00,1.00 -488,-177.60,0.00,1.00,0.00,1.00 -489,-172.80,4.80,1.00,0.00,1.00 -490,-168.00,4.80,1.00,0.00,1.00 -491,-163.20,9.60,1.00,0.00,1.00 -492,-163.20,9.60,1.00,0.00,1.00 -493,-158.40,14.40,1.00,0.00,1.00 -494,-153.60,14.40,1.00,0.00,1.00 -495,-148.80,14.40,1.00,0.00,1.00 -496,-144.00,19.20,1.00,0.00,1.00 -497,-139.20,19.20,1.00,0.00,1.00 -498,-134.40,24.00,1.00,0.00,1.00 -499,-129.60,24.00,1.00,0.00,1.00 -500,-124.80,24.00,1.00,0.00,1.00 -501,-120.00,24.00,1.00,0.00,1.00 -502,-115.20,28.80,1.00,0.00,1.00 -503,-105.60,28.80,1.00,0.00,1.00 -504,-100.80,28.80,1.00,0.00,1.00 -505,-96.00,28.80,1.00,0.00,1.00 -506,-91.20,28.80,1.00,0.00,1.00 -507,-86.40,28.80,1.00,0.00,1.00 -508,-81.60,28.80,1.00,0.00,1.00 -509,-76.80,28.80,1.00,0.00,1.00 -510,-72.00,28.80,1.00,0.00,1.00 -511,-62.40,24.00,1.00,0.00,1.00 -512,-57.60,24.00,1.00,0.00,1.00 -513,-52.80,24.00,1.00,0.00,1.00 -514,-48.00,24.00,1.00,0.00,1.00 -515,-43.20,19.20,1.00,0.00,1.00 -516,-38.40,19.20,1.00,0.00,1.00 -517,-33.60,19.20,1.00,0.00,1.00 -518,-28.80,14.40,1.00,0.00,1.00 -519,-24.00,14.40,1.00,0.00,1.00 -520,-19.20,9.60,1.00,0.00,1.00 -521,-19.20,9.60,1.00,0.00,1.00 -522,-14.40,4.80,1.00,0.00,1.00 -523,-9.60,4.80,1.00,0.00,1.00 -524,-4.80,0.00,1.00,0.00,1.00 -525,0.00,0.00,1.00,0.00,1.00 -526,4.80,-4.80,1.00,0.00,1.00 -527,9.60,-4.80,1.00,0.00,1.00 -528,14.40,-9.60,1.00,0.00,1.00 -529,14.40,-9.60,1.00,0.00,1.00 -530,19.20,-14.40,1.00,0.00,1.00 -531,24.00,-14.40,1.00,0.00,1.00 -532,28.80,-19.20,1.00,0.00,1.00 -533,33.60,-19.20,1.00,0.00,1.00 -534,38.40,-24.00,1.00,0.00,1.00 -535,43.20,-24.00,1.00,0.00,1.00 -536,48.00,-24.00,1.00,0.00,1.00 -537,52.80,-28.80,1.00,0.00,1.00 -538,57.60,-28.80,1.00,0.00,1.00 -539,62.40,-28.80,1.00,0.00,1.00 -540,67.20,-33.60,1.00,0.00,1.00 -541,72.00,-33.60,1.00,0.00,1.00 -542,81.60,-33.60,1.00,0.00,1.00 -543,86.40,-33.60,1.00,0.00,1.00 -544,91.20,-33.60,1.00,0.00,1.00 -545,96.00,-33.60,1.00,0.00,1.00 -546,100.80,-33.60,1.00,0.00,1.00 -547,110.40,-33.60,1.00,0.00,1.00 -548,115.20,-33.60,1.00,0.00,1.00 -549,120.00,-28.80,1.00,0.00,1.00 -550,124.80,-28.80,1.00,0.00,1.00 -551,129.60,-28.80,1.00,0.00,1.00 -552,134.40,-24.00,1.00,0.00,1.00 -553,139.20,-24.00,1.00,0.00,1.00 -554,144.00,-19.20,1.00,0.00,1.00 -555,148.80,-19.20,1.00,0.00,1.00 -556,153.60,-14.40,1.00,0.00,1.00 -557,158.40,-14.40,1.00,0.00,1.00 -558,163.20,-9.60,1.00,0.00,1.00 -559,168.00,-9.60,1.00,0.00,1.00 -560,168.00,-4.80,1.00,0.00,1.00 -561,172.80,-4.80,1.00,0.00,1.00 -562,177.60,-0.00,1.00,0.00,1.00 -563,-177.60,0.00,1.00,0.00,1.00 -564,-172.80,4.80,1.00,0.00,1.00 -565,-168.00,4.80,1.00,0.00,1.00 -566,-168.00,9.60,1.00,0.00,1.00 -567,-163.20,9.60,1.00,0.00,1.00 -568,-158.40,14.40,1.00,0.00,1.00 -569,-153.60,14.40,1.00,0.00,1.00 -570,-148.80,19.20,1.00,0.00,1.00 -571,-144.00,19.20,1.00,0.00,1.00 -572,-139.20,24.00,1.00,0.00,1.00 -573,-134.40,24.00,1.00,0.00,1.00 -574,-129.60,28.80,1.00,0.00,1.00 -575,-124.80,28.80,1.00,0.00,1.00 -576,-120.00,28.80,1.00,0.00,1.00 -577,-115.20,33.60,1.00,0.00,1.00 -578,-110.40,33.60,1.00,0.00,1.00 -579,-100.80,33.60,1.00,0.00,1.00 -580,-96.00,33.60,1.00,0.00,1.00 -581,-91.20,33.60,1.00,0.00,1.00 -582,-86.40,33.60,1.00,0.00,1.00 -583,-81.60,33.60,1.00,0.00,1.00 -584,-72.00,33.60,1.00,0.00,1.00 -585,-67.20,33.60,1.00,0.00,1.00 -586,-62.40,28.80,1.00,0.00,1.00 -587,-57.60,28.80,1.00,0.00,1.00 -588,-52.80,28.80,1.00,0.00,1.00 -589,-48.00,24.00,1.00,0.00,1.00 -590,-43.20,24.00,1.00,0.00,1.00 -591,-38.40,24.00,1.00,0.00,1.00 -592,-33.60,19.20,1.00,0.00,1.00 -593,-28.80,19.20,1.00,0.00,1.00 -594,-24.00,14.40,1.00,0.00,1.00 -595,-19.20,14.40,1.00,0.00,1.00 -596,-14.40,9.60,1.00,0.00,1.00 -597,-14.40,9.60,1.00,0.00,1.00 -598,-9.60,4.80,1.00,0.00,1.00 -599,-4.80,4.80,1.00,0.00,1.00 -600,0.00,0.00,1.00,0.00,1.00 -601,4.80,-4.80,1.00,0.00,1.00 -602,9.60,-4.80,1.00,0.00,1.00 -603,9.60,-9.60,1.00,0.00,1.00 -604,14.40,-9.60,1.00,0.00,1.00 -605,19.20,-14.40,1.00,0.00,1.00 -606,24.00,-19.20,1.00,0.00,1.00 -607,28.80,-19.20,1.00,0.00,1.00 -608,33.60,-24.00,1.00,0.00,1.00 -609,38.40,-24.00,1.00,0.00,1.00 -610,43.20,-28.80,1.00,0.00,1.00 -611,48.00,-28.80,1.00,0.00,1.00 -612,52.80,-33.60,1.00,0.00,1.00 -613,57.60,-33.60,1.00,0.00,1.00 -614,62.40,-33.60,1.00,0.00,1.00 -615,67.20,-38.40,1.00,0.00,1.00 -616,72.00,-38.40,1.00,0.00,1.00 -617,81.60,-38.40,1.00,0.00,1.00 -618,86.40,-38.40,1.00,0.00,1.00 -619,91.20,-38.40,1.00,0.00,1.00 -620,96.00,-38.40,1.00,0.00,1.00 -621,105.60,-38.40,1.00,0.00,1.00 -622,110.40,-38.40,1.00,0.00,1.00 -623,115.20,-33.60,1.00,0.00,1.00 -624,120.00,-33.60,1.00,0.00,1.00 -625,124.80,-33.60,1.00,0.00,1.00 -626,129.60,-28.80,1.00,0.00,1.00 -627,134.40,-28.80,1.00,0.00,1.00 -628,139.20,-24.00,1.00,0.00,1.00 -629,144.00,-24.00,1.00,0.00,1.00 -630,148.80,-19.20,1.00,0.00,1.00 -631,153.60,-19.20,1.00,0.00,1.00 -632,158.40,-14.40,1.00,0.00,1.00 -633,163.20,-14.40,1.00,0.00,1.00 -634,168.00,-9.60,1.00,0.00,1.00 -635,172.80,-9.60,1.00,0.00,1.00 -636,172.80,-4.80,1.00,0.00,1.00 -637,177.60,-0.00,1.00,0.00,1.00 -638,-177.60,0.00,1.00,0.00,1.00 -639,-172.80,4.80,1.00,0.00,1.00 -640,-172.80,9.60,1.00,0.00,1.00 -641,-168.00,9.60,1.00,0.00,1.00 -642,-163.20,14.40,1.00,0.00,1.00 -643,-158.40,14.40,1.00,0.00,1.00 -644,-153.60,19.20,1.00,0.00,1.00 -645,-148.80,19.20,1.00,0.00,1.00 -646,-144.00,24.00,1.00,0.00,1.00 -647,-139.20,24.00,1.00,0.00,1.00 -648,-134.40,28.80,1.00,0.00,1.00 -649,-129.60,28.80,1.00,0.00,1.00 -650,-124.80,33.60,1.00,0.00,1.00 -651,-120.00,33.60,1.00,0.00,1.00 -652,-115.20,33.60,1.00,0.00,1.00 -653,-110.40,38.40,1.00,0.00,1.00 -654,-105.60,38.40,1.00,0.00,1.00 -655,-96.00,38.40,1.00,0.00,1.00 -656,-91.20,38.40,1.00,0.00,1.00 -657,-86.40,38.40,1.00,0.00,1.00 -658,-81.60,38.40,1.00,0.00,1.00 -659,-72.00,38.40,1.00,0.00,1.00 -660,-67.20,38.40,1.00,0.00,1.00 -661,-62.40,33.60,1.00,0.00,1.00 -662,-57.60,33.60,1.00,0.00,1.00 -663,-52.80,33.60,1.00,0.00,1.00 -664,-48.00,28.80,1.00,0.00,1.00 -665,-43.20,28.80,1.00,0.00,1.00 -666,-38.40,24.00,1.00,0.00,1.00 -667,-33.60,24.00,1.00,0.00,1.00 -668,-28.80,19.20,1.00,0.00,1.00 -669,-24.00,19.20,1.00,0.00,1.00 -670,-19.20,14.40,1.00,0.00,1.00 -671,-14.40,9.60,1.00,0.00,1.00 -672,-9.60,9.60,1.00,0.00,1.00 -673,-9.60,4.80,1.00,0.00,1.00 -674,-4.80,4.80,1.00,0.00,1.00 -675,0.00,0.00,1.00,0.00,1.00 -676,4.80,-4.80,1.00,0.00,1.00 -677,4.80,-4.80,1.00,0.00,1.00 -678,9.60,-9.60,1.00,0.00,1.00 -679,14.40,-14.40,1.00,0.00,1.00 -680,19.20,-14.40,1.00,0.00,1.00 -681,24.00,-19.20,1.00,0.00,1.00 -682,24.00,-24.00,1.00,0.00,1.00 -683,28.80,-24.00,1.00,0.00,1.00 -684,33.60,-28.80,1.00,0.00,1.00 -685,38.40,-28.80,1.00,0.00,1.00 -686,43.20,-33.60,1.00,0.00,1.00 -687,48.00,-33.60,1.00,0.00,1.00 -688,52.80,-38.40,1.00,0.00,1.00 -689,62.40,-38.40,1.00,0.00,1.00 -690,67.20,-38.40,1.00,0.00,1.00 -691,72.00,-43.20,1.00,0.00,1.00 -692,76.80,-43.20,1.00,0.00,1.00 -693,86.40,-43.20,1.00,0.00,1.00 -694,91.20,-43.20,1.00,0.00,1.00 -695,96.00,-43.20,1.00,0.00,1.00 -696,105.60,-43.20,1.00,0.00,1.00 -697,110.40,-43.20,1.00,0.00,1.00 -698,115.20,-38.40,1.00,0.00,1.00 -699,124.80,-38.40,1.00,0.00,1.00 -700,129.60,-38.40,1.00,0.00,1.00 -701,134.40,-33.60,1.00,0.00,1.00 -702,139.20,-33.60,1.00,0.00,1.00 -703,144.00,-28.80,1.00,0.00,1.00 -704,148.80,-28.80,1.00,0.00,1.00 -705,153.60,-24.00,1.00,0.00,1.00 -706,158.40,-19.20,1.00,0.00,1.00 -707,158.40,-19.20,1.00,0.00,1.00 -708,163.20,-14.40,1.00,0.00,1.00 -709,168.00,-9.60,1.00,0.00,1.00 -710,172.80,-9.60,1.00,0.00,1.00 -711,172.80,-4.80,1.00,0.00,1.00 -712,177.60,-0.00,1.00,0.00,1.00 -713,-177.60,0.00,1.00,0.00,1.00 -714,-172.80,4.80,1.00,0.00,1.00 -715,-172.80,9.60,1.00,0.00,1.00 -716,-168.00,9.60,1.00,0.00,1.00 -717,-163.20,14.40,1.00,0.00,1.00 -718,-158.40,19.20,1.00,0.00,1.00 -719,-158.40,19.20,1.00,0.00,1.00 -720,-153.60,24.00,1.00,0.00,1.00 -721,-148.80,28.80,1.00,0.00,1.00 -722,-144.00,28.80,1.00,0.00,1.00 -723,-139.20,33.60,1.00,0.00,1.00 -724,-134.40,33.60,1.00,0.00,1.00 -725,-129.60,38.40,1.00,0.00,1.00 -726,-124.80,38.40,1.00,0.00,1.00 -727,-115.20,38.40,1.00,0.00,1.00 -728,-110.40,43.20,1.00,0.00,1.00 -729,-105.60,43.20,1.00,0.00,1.00 -730,-96.00,43.20,1.00,0.00,1.00 -731,-91.20,43.20,1.00,0.00,1.00 -732,-86.40,43.20,1.00,0.00,1.00 -733,-76.80,43.20,1.00,0.00,1.00 -734,-72.00,43.20,1.00,0.00,1.00 -735,-67.20,38.40,1.00,0.00,1.00 -736,-62.40,38.40,1.00,0.00,1.00 -737,-52.80,38.40,1.00,0.00,1.00 -738,-48.00,33.60,1.00,0.00,1.00 -739,-43.20,33.60,1.00,0.00,1.00 -740,-38.40,28.80,1.00,0.00,1.00 -741,-33.60,28.80,1.00,0.00,1.00 -742,-28.80,24.00,1.00,0.00,1.00 -743,-24.00,24.00,1.00,0.00,1.00 -744,-24.00,19.20,1.00,0.00,1.00 -745,-19.20,14.40,1.00,0.00,1.00 -746,-14.40,14.40,1.00,0.00,1.00 -747,-9.60,9.60,1.00,0.00,1.00 -748,-4.80,4.80,1.00,0.00,1.00 -749,-4.80,4.80,1.00,0.00,1.00 -750,0.00,0.00,1.00,0.00,1.00 -751,4.80,-4.80,1.00,0.00,1.00 -752,4.80,-4.80,1.00,0.00,1.00 -753,9.60,-9.60,1.00,0.00,1.00 -754,14.40,-14.40,1.00,0.00,1.00 -755,14.40,-19.20,1.00,0.00,1.00 -756,19.20,-19.20,1.00,0.00,1.00 -757,24.00,-24.00,1.00,0.00,1.00 -758,28.80,-28.80,1.00,0.00,1.00 -759,33.60,-28.80,1.00,0.00,1.00 -760,38.40,-33.60,1.00,0.00,1.00 -761,43.20,-38.40,1.00,0.00,1.00 -762,48.00,-38.40,1.00,0.00,1.00 -763,52.80,-43.20,1.00,0.00,1.00 -764,57.60,-43.20,1.00,0.00,1.00 -765,62.40,-43.20,1.00,0.00,1.00 -766,72.00,-48.00,1.00,0.00,1.00 -767,76.80,-48.00,1.00,0.00,1.00 -768,86.40,-48.00,1.00,0.00,1.00 -769,91.20,-48.00,1.00,0.00,1.00 -770,100.80,-48.00,1.00,0.00,1.00 -771,105.60,-48.00,1.00,0.00,1.00 -772,110.40,-48.00,1.00,0.00,1.00 -773,120.00,-43.20,1.00,0.00,1.00 -774,124.80,-43.20,1.00,0.00,1.00 -775,129.60,-38.40,1.00,0.00,1.00 -776,134.40,-38.40,1.00,0.00,1.00 -777,139.20,-33.60,1.00,0.00,1.00 -778,144.00,-33.60,1.00,0.00,1.00 -779,148.80,-28.80,1.00,0.00,1.00 -780,153.60,-24.00,1.00,0.00,1.00 -781,158.40,-24.00,1.00,0.00,1.00 -782,163.20,-19.20,1.00,0.00,1.00 -783,163.20,-14.40,1.00,0.00,1.00 -784,168.00,-14.40,1.00,0.00,1.00 -785,172.80,-9.60,1.00,0.00,1.00 -786,172.80,-4.80,1.00,0.00,1.00 -787,177.60,-0.00,1.00,0.00,1.00 -788,-177.60,0.00,1.00,0.00,1.00 -789,-172.80,4.80,1.00,0.00,1.00 -790,-172.80,9.60,1.00,0.00,1.00 -791,-168.00,14.40,1.00,0.00,1.00 -792,-163.20,14.40,1.00,0.00,1.00 -793,-163.20,19.20,1.00,0.00,1.00 -794,-158.40,24.00,1.00,0.00,1.00 -795,-153.60,24.00,1.00,0.00,1.00 -796,-148.80,28.80,1.00,0.00,1.00 -797,-144.00,33.60,1.00,0.00,1.00 -798,-139.20,33.60,1.00,0.00,1.00 -799,-134.40,38.40,1.00,0.00,1.00 -800,-129.60,38.40,1.00,0.00,1.00 -801,-124.80,43.20,1.00,0.00,1.00 -802,-120.00,43.20,1.00,0.00,1.00 -803,-110.40,48.00,1.00,0.00,1.00 -804,-105.60,48.00,1.00,0.00,1.00 -805,-100.80,48.00,1.00,0.00,1.00 -806,-91.20,48.00,1.00,0.00,1.00 -807,-86.40,48.00,1.00,0.00,1.00 -808,-76.80,48.00,1.00,0.00,1.00 -809,-72.00,48.00,1.00,0.00,1.00 -810,-62.40,43.20,1.00,0.00,1.00 -811,-57.60,43.20,1.00,0.00,1.00 -812,-52.80,43.20,1.00,0.00,1.00 -813,-48.00,38.40,1.00,0.00,1.00 -814,-43.20,38.40,1.00,0.00,1.00 -815,-38.40,33.60,1.00,0.00,1.00 -816,-33.60,28.80,1.00,0.00,1.00 -817,-28.80,28.80,1.00,0.00,1.00 -818,-24.00,24.00,1.00,0.00,1.00 -819,-19.20,19.20,1.00,0.00,1.00 -820,-14.40,19.20,1.00,0.00,1.00 -821,-14.40,14.40,1.00,0.00,1.00 -822,-9.60,9.60,1.00,0.00,1.00 -823,-4.80,4.80,1.00,0.00,1.00 -824,-4.80,4.80,1.00,0.00,1.00 -825,0.00,0.00,1.00,0.00,1.00 -826,4.80,-4.80,1.00,0.00,1.00 -827,4.80,-9.60,1.00,0.00,1.00 -828,9.60,-9.60,1.00,0.00,1.00 -829,9.60,-14.40,1.00,0.00,1.00 -830,14.40,-19.20,1.00,0.00,1.00 -831,19.20,-24.00,1.00,0.00,1.00 -832,24.00,-24.00,1.00,0.00,1.00 -833,24.00,-28.80,1.00,0.00,1.00 -834,28.80,-33.60,1.00,0.00,1.00 -835,33.60,-38.40,1.00,0.00,1.00 -836,38.40,-38.40,1.00,0.00,1.00 -837,43.20,-43.20,1.00,0.00,1.00 -838,48.00,-43.20,1.00,0.00,1.00 -839,52.80,-48.00,1.00,0.00,1.00 -840,62.40,-48.00,1.00,0.00,1.00 -841,67.20,-52.80,1.00,0.00,1.00 -842,76.80,-52.80,1.00,0.00,1.00 -843,86.40,-52.80,1.00,0.00,1.00 -844,91.20,-52.80,1.00,0.00,1.00 -845,100.80,-52.80,1.00,0.00,1.00 -846,105.60,-52.80,1.00,0.00,1.00 -847,115.20,-48.00,1.00,0.00,1.00 -848,120.00,-48.00,1.00,0.00,1.00 -849,129.60,-48.00,1.00,0.00,1.00 -850,134.40,-43.20,1.00,0.00,1.00 -851,139.20,-43.20,1.00,0.00,1.00 -852,144.00,-38.40,1.00,0.00,1.00 -853,148.80,-33.60,1.00,0.00,1.00 -854,153.60,-33.60,1.00,0.00,1.00 -855,158.40,-28.80,1.00,0.00,1.00 -856,158.40,-24.00,1.00,0.00,1.00 -857,163.20,-19.20,1.00,0.00,1.00 -858,168.00,-19.20,1.00,0.00,1.00 -859,168.00,-14.40,1.00,0.00,1.00 -860,172.80,-9.60,1.00,0.00,1.00 -861,177.60,-4.80,1.00,0.00,1.00 -862,177.60,-0.00,1.00,0.00,1.00 -863,-177.60,0.00,1.00,0.00,1.00 -864,-177.60,4.80,1.00,0.00,1.00 -865,-172.80,9.60,1.00,0.00,1.00 -866,-168.00,14.40,1.00,0.00,1.00 -867,-168.00,19.20,1.00,0.00,1.00 -868,-163.20,19.20,1.00,0.00,1.00 -869,-158.40,24.00,1.00,0.00,1.00 -870,-158.40,28.80,1.00,0.00,1.00 -871,-153.60,33.60,1.00,0.00,1.00 -872,-148.80,33.60,1.00,0.00,1.00 -873,-144.00,38.40,1.00,0.00,1.00 -874,-139.20,43.20,1.00,0.00,1.00 -875,-134.40,43.20,1.00,0.00,1.00 -876,-129.60,48.00,1.00,0.00,1.00 -877,-120.00,48.00,1.00,0.00,1.00 -878,-115.20,48.00,1.00,0.00,1.00 -879,-105.60,52.80,1.00,0.00,1.00 -880,-100.80,52.80,1.00,0.00,1.00 -881,-91.20,52.80,1.00,0.00,1.00 -882,-86.40,52.80,1.00,0.00,1.00 -883,-76.80,52.80,1.00,0.00,1.00 -884,-67.20,52.80,1.00,0.00,1.00 -885,-62.40,48.00,1.00,0.00,1.00 -886,-52.80,48.00,1.00,0.00,1.00 -887,-48.00,43.20,1.00,0.00,1.00 -888,-43.20,43.20,1.00,0.00,1.00 -889,-38.40,38.40,1.00,0.00,1.00 -890,-33.60,38.40,1.00,0.00,1.00 -891,-28.80,33.60,1.00,0.00,1.00 -892,-24.00,28.80,1.00,0.00,1.00 -893,-24.00,24.00,1.00,0.00,1.00 -894,-19.20,24.00,1.00,0.00,1.00 -895,-14.40,19.20,1.00,0.00,1.00 -896,-9.60,14.40,1.00,0.00,1.00 -897,-9.60,9.60,1.00,0.00,1.00 -898,-4.80,9.60,1.00,0.00,1.00 -899,-4.80,4.80,1.00,0.00,1.00 -900,0.00,0.00,1.00,0.00,1.00 -901,4.80,-4.80,1.00,0.00,1.00 -902,4.80,-9.60,1.00,0.00,1.00 -903,9.60,-14.40,1.00,0.00,1.00 -904,9.60,-14.40,1.00,0.00,1.00 -905,14.40,-19.20,1.00,0.00,1.00 -906,14.40,-24.00,1.00,0.00,1.00 -907,19.20,-28.80,1.00,0.00,1.00 -908,24.00,-33.60,1.00,0.00,1.00 -909,28.80,-33.60,1.00,0.00,1.00 -910,28.80,-38.40,1.00,0.00,1.00 -911,33.60,-43.20,1.00,0.00,1.00 -912,38.40,-43.20,1.00,0.00,1.00 -913,48.00,-48.00,1.00,0.00,1.00 -914,52.80,-52.80,1.00,0.00,1.00 -915,57.60,-52.80,1.00,0.00,1.00 -916,67.20,-57.60,1.00,0.00,1.00 -917,76.80,-57.60,1.00,0.00,1.00 -918,81.60,-57.60,1.00,0.00,1.00 -919,91.20,-57.60,1.00,0.00,1.00 -920,100.80,-57.60,1.00,0.00,1.00 -921,110.40,-57.60,1.00,0.00,1.00 -922,115.20,-52.80,1.00,0.00,1.00 -923,124.80,-52.80,1.00,0.00,1.00 -924,129.60,-48.00,1.00,0.00,1.00 -925,139.20,-48.00,1.00,0.00,1.00 -926,144.00,-43.20,1.00,0.00,1.00 -927,148.80,-38.40,1.00,0.00,1.00 -928,153.60,-38.40,1.00,0.00,1.00 -929,153.60,-33.60,1.00,0.00,1.00 -930,158.40,-28.80,1.00,0.00,1.00 -931,163.20,-24.00,1.00,0.00,1.00 -932,163.20,-24.00,1.00,0.00,1.00 -933,168.00,-19.20,1.00,0.00,1.00 -934,172.80,-14.40,1.00,0.00,1.00 -935,172.80,-9.60,1.00,0.00,1.00 -936,177.60,-4.80,1.00,0.00,1.00 -937,177.60,-0.00,1.00,0.00,1.00 -938,-177.60,0.00,1.00,0.00,1.00 -939,-177.60,4.80,1.00,0.00,1.00 -940,-172.80,9.60,1.00,0.00,1.00 -941,-172.80,14.40,1.00,0.00,1.00 -942,-168.00,19.20,1.00,0.00,1.00 -943,-163.20,24.00,1.00,0.00,1.00 -944,-163.20,24.00,1.00,0.00,1.00 -945,-158.40,28.80,1.00,0.00,1.00 -946,-153.60,33.60,1.00,0.00,1.00 -947,-153.60,38.40,1.00,0.00,1.00 -948,-148.80,38.40,1.00,0.00,1.00 -949,-144.00,43.20,1.00,0.00,1.00 -950,-139.20,48.00,1.00,0.00,1.00 -951,-129.60,48.00,1.00,0.00,1.00 -952,-124.80,52.80,1.00,0.00,1.00 -953,-115.20,52.80,1.00,0.00,1.00 -954,-110.40,57.60,1.00,0.00,1.00 -955,-100.80,57.60,1.00,0.00,1.00 -956,-91.20,57.60,1.00,0.00,1.00 -957,-81.60,57.60,1.00,0.00,1.00 -958,-76.80,57.60,1.00,0.00,1.00 -959,-67.20,57.60,1.00,0.00,1.00 -960,-57.60,52.80,1.00,0.00,1.00 -961,-52.80,52.80,1.00,0.00,1.00 -962,-48.00,48.00,1.00,0.00,1.00 -963,-38.40,43.20,1.00,0.00,1.00 -964,-33.60,43.20,1.00,0.00,1.00 -965,-28.80,38.40,1.00,0.00,1.00 -966,-28.80,33.60,1.00,0.00,1.00 -967,-24.00,33.60,1.00,0.00,1.00 -968,-19.20,28.80,1.00,0.00,1.00 -969,-14.40,24.00,1.00,0.00,1.00 -970,-14.40,19.20,1.00,0.00,1.00 -971,-9.60,14.40,1.00,0.00,1.00 -972,-9.60,14.40,1.00,0.00,1.00 -973,-4.80,9.60,1.00,0.00,1.00 -974,-4.80,4.80,1.00,0.00,1.00 -975,0.00,0.00,1.00,0.00,1.00 -976,0.00,-4.80,1.00,0.00,1.00 -977,4.80,-9.60,1.00,0.00,1.00 -978,4.80,-14.40,1.00,0.00,1.00 -979,9.60,-19.20,1.00,0.00,1.00 -980,9.60,-19.20,1.00,0.00,1.00 -981,14.40,-24.00,1.00,0.00,1.00 -982,19.20,-28.80,1.00,0.00,1.00 -983,19.20,-33.60,1.00,0.00,1.00 -984,24.00,-38.40,1.00,0.00,1.00 -985,28.80,-43.20,1.00,0.00,1.00 -986,33.60,-43.20,1.00,0.00,1.00 -987,38.40,-48.00,1.00,0.00,1.00 -988,43.20,-52.80,1.00,0.00,1.00 -989,48.00,-52.80,1.00,0.00,1.00 -990,52.80,-57.60,1.00,0.00,1.00 -991,62.40,-57.60,1.00,0.00,1.00 -992,72.00,-62.40,1.00,0.00,1.00 -993,81.60,-62.40,1.00,0.00,1.00 -994,91.20,-62.40,1.00,0.00,1.00 -995,100.80,-62.40,1.00,0.00,1.00 -996,110.40,-62.40,1.00,0.00,1.00 -997,120.00,-57.60,1.00,0.00,1.00 -998,129.60,-57.60,1.00,0.00,1.00 -999,134.40,-52.80,1.00,0.00,1.00 -1000,139.20,-48.00,1.00,0.00,1.00 -1001,144.00,-48.00,1.00,0.00,1.00 -1002,148.80,-43.20,1.00,0.00,1.00 -1003,153.60,-38.40,1.00,0.00,1.00 -1004,158.40,-33.60,1.00,0.00,1.00 -1005,163.20,-33.60,1.00,0.00,1.00 -1006,163.20,-28.80,1.00,0.00,1.00 -1007,168.00,-24.00,1.00,0.00,1.00 -1008,168.00,-19.20,1.00,0.00,1.00 -1009,172.80,-14.40,1.00,0.00,1.00 -1010,172.80,-9.60,1.00,0.00,1.00 -1011,177.60,-4.80,1.00,0.00,1.00 -1012,177.60,-0.00,1.00,0.00,1.00 -1013,-177.60,0.00,1.00,0.00,1.00 -1014,-177.60,4.80,1.00,0.00,1.00 -1015,-172.80,9.60,1.00,0.00,1.00 -1016,-172.80,14.40,1.00,0.00,1.00 -1017,-168.00,19.20,1.00,0.00,1.00 -1018,-168.00,24.00,1.00,0.00,1.00 -1019,-163.20,28.80,1.00,0.00,1.00 -1020,-163.20,33.60,1.00,0.00,1.00 -1021,-158.40,33.60,1.00,0.00,1.00 -1022,-153.60,38.40,1.00,0.00,1.00 -1023,-148.80,43.20,1.00,0.00,1.00 -1024,-144.00,48.00,1.00,0.00,1.00 -1025,-139.20,48.00,1.00,0.00,1.00 -1026,-134.40,52.80,1.00,0.00,1.00 -1027,-129.60,57.60,1.00,0.00,1.00 -1028,-120.00,57.60,1.00,0.00,1.00 -1029,-110.40,62.40,1.00,0.00,1.00 -1030,-100.80,62.40,1.00,0.00,1.00 -1031,-91.20,62.40,1.00,0.00,1.00 -1032,-81.60,62.40,1.00,0.00,1.00 -1033,-72.00,62.40,1.00,0.00,1.00 -1034,-62.40,57.60,1.00,0.00,1.00 -1035,-52.80,57.60,1.00,0.00,1.00 -1036,-48.00,52.80,1.00,0.00,1.00 -1037,-43.20,52.80,1.00,0.00,1.00 -1038,-38.40,48.00,1.00,0.00,1.00 -1039,-33.60,43.20,1.00,0.00,1.00 -1040,-28.80,43.20,1.00,0.00,1.00 -1041,-24.00,38.40,1.00,0.00,1.00 -1042,-19.20,33.60,1.00,0.00,1.00 -1043,-19.20,28.80,1.00,0.00,1.00 -1044,-14.40,24.00,1.00,0.00,1.00 -1045,-9.60,19.20,1.00,0.00,1.00 -1046,-9.60,19.20,1.00,0.00,1.00 -1047,-4.80,14.40,1.00,0.00,1.00 -1048,-4.80,9.60,1.00,0.00,1.00 -1049,-0.00,4.80,1.00,0.00,1.00 -1050,0.00,0.00,1.00,0.00,1.00 -1051,0.00,-4.80,1.00,0.00,1.00 -1052,4.80,-9.60,1.00,0.00,1.00 -1053,4.80,-14.40,1.00,0.00,1.00 -1054,9.60,-19.20,1.00,0.00,1.00 -1055,9.60,-24.00,1.00,0.00,1.00 -1056,14.40,-24.00,1.00,0.00,1.00 -1057,14.40,-28.80,1.00,0.00,1.00 -1058,19.20,-33.60,1.00,0.00,1.00 -1059,19.20,-38.40,1.00,0.00,1.00 -1060,24.00,-43.20,1.00,0.00,1.00 -1061,28.80,-48.00,1.00,0.00,1.00 -1062,33.60,-52.80,1.00,0.00,1.00 -1063,38.40,-52.80,1.00,0.00,1.00 -1064,43.20,-57.60,1.00,0.00,1.00 -1065,48.00,-62.40,1.00,0.00,1.00 -1066,57.60,-62.40,1.00,0.00,1.00 -1067,67.20,-67.20,1.00,0.00,1.00 -1068,81.60,-67.20,1.00,0.00,1.00 -1069,91.20,-67.20,1.00,0.00,1.00 -1070,105.60,-67.20,1.00,0.00,1.00 -1071,115.20,-67.20,1.00,0.00,1.00 -1072,124.80,-62.40,1.00,0.00,1.00 -1073,134.40,-57.60,1.00,0.00,1.00 -1074,139.20,-57.60,1.00,0.00,1.00 -1075,144.00,-52.80,1.00,0.00,1.00 -1076,148.80,-48.00,1.00,0.00,1.00 -1077,153.60,-43.20,1.00,0.00,1.00 -1078,158.40,-43.20,1.00,0.00,1.00 -1079,163.20,-38.40,1.00,0.00,1.00 -1080,163.20,-33.60,1.00,0.00,1.00 -1081,168.00,-28.80,1.00,0.00,1.00 -1082,168.00,-24.00,1.00,0.00,1.00 -1083,172.80,-19.20,1.00,0.00,1.00 -1084,172.80,-14.40,1.00,0.00,1.00 -1085,177.60,-9.60,1.00,0.00,1.00 -1086,177.60,-4.80,1.00,0.00,1.00 -1087,177.60,-0.00,1.00,0.00,1.00 -1088,-177.60,0.00,1.00,0.00,1.00 -1089,-177.60,4.80,1.00,0.00,1.00 -1090,-177.60,9.60,1.00,0.00,1.00 -1091,-172.80,14.40,1.00,0.00,1.00 -1092,-172.80,19.20,1.00,0.00,1.00 -1093,-168.00,24.00,1.00,0.00,1.00 -1094,-168.00,28.80,1.00,0.00,1.00 -1095,-163.20,33.60,1.00,0.00,1.00 -1096,-163.20,38.40,1.00,0.00,1.00 -1097,-158.40,43.20,1.00,0.00,1.00 -1098,-153.60,43.20,1.00,0.00,1.00 -1099,-148.80,48.00,1.00,0.00,1.00 -1100,-144.00,52.80,1.00,0.00,1.00 -1101,-139.20,57.60,1.00,0.00,1.00 -1102,-134.40,57.60,1.00,0.00,1.00 -1103,-124.80,62.40,1.00,0.00,1.00 -1104,-115.20,67.20,1.00,0.00,1.00 -1105,-105.60,67.20,1.00,0.00,1.00 -1106,-91.20,67.20,1.00,0.00,1.00 -1107,-81.60,67.20,1.00,0.00,1.00 -1108,-67.20,67.20,1.00,0.00,1.00 -1109,-57.60,62.40,1.00,0.00,1.00 -1110,-48.00,62.40,1.00,0.00,1.00 -1111,-43.20,57.60,1.00,0.00,1.00 -1112,-38.40,52.80,1.00,0.00,1.00 -1113,-33.60,52.80,1.00,0.00,1.00 -1114,-28.80,48.00,1.00,0.00,1.00 -1115,-24.00,43.20,1.00,0.00,1.00 -1116,-19.20,38.40,1.00,0.00,1.00 -1117,-19.20,33.60,1.00,0.00,1.00 -1118,-14.40,28.80,1.00,0.00,1.00 -1119,-14.40,24.00,1.00,0.00,1.00 -1120,-9.60,24.00,1.00,0.00,1.00 -1121,-9.60,19.20,1.00,0.00,1.00 -1122,-4.80,14.40,1.00,0.00,1.00 -1123,-4.80,9.60,1.00,0.00,1.00 -1124,-0.00,4.80,1.00,0.00,1.00 -1125,0.00,0.00,1.00,0.00,1.00 -1126,0.00,-4.80,1.00,0.00,1.00 -1127,4.80,-9.60,1.00,0.00,1.00 -1128,4.80,-14.40,1.00,0.00,1.00 -1129,4.80,-19.20,1.00,0.00,1.00 -1130,9.60,-24.00,1.00,0.00,1.00 -1131,9.60,-28.80,1.00,0.00,1.00 -1132,9.60,-33.60,1.00,0.00,1.00 -1133,14.40,-38.40,1.00,0.00,1.00 -1134,14.40,-38.40,1.00,0.00,1.00 -1135,19.20,-43.20,1.00,0.00,1.00 -1136,24.00,-48.00,1.00,0.00,1.00 -1137,24.00,-52.80,1.00,0.00,1.00 -1138,28.80,-57.60,1.00,0.00,1.00 -1139,38.40,-62.40,1.00,0.00,1.00 -1140,43.20,-62.40,1.00,0.00,1.00 -1141,52.80,-67.20,1.00,0.00,1.00 -1142,62.40,-72.00,1.00,0.00,1.00 -1143,76.80,-72.00,1.00,0.00,1.00 -1144,96.00,-72.00,1.00,0.00,1.00 -1145,110.40,-72.00,1.00,0.00,1.00 -1146,120.00,-67.20,1.00,0.00,1.00 -1147,134.40,-67.20,1.00,0.00,1.00 -1148,139.20,-62.40,1.00,0.00,1.00 -1149,148.80,-57.60,1.00,0.00,1.00 -1150,153.60,-57.60,1.00,0.00,1.00 -1151,158.40,-52.80,1.00,0.00,1.00 -1152,158.40,-48.00,1.00,0.00,1.00 -1153,163.20,-43.20,1.00,0.00,1.00 -1154,163.20,-38.40,1.00,0.00,1.00 -1155,168.00,-33.60,1.00,0.00,1.00 -1156,168.00,-28.80,1.00,0.00,1.00 -1157,172.80,-24.00,1.00,0.00,1.00 -1158,172.80,-19.20,1.00,0.00,1.00 -1159,172.80,-14.40,1.00,0.00,1.00 -1160,177.60,-9.60,1.00,0.00,1.00 -1161,177.60,-4.80,1.00,0.00,1.00 -1162,177.60,-0.00,1.00,0.00,1.00 -1163,-177.60,0.00,1.00,0.00,1.00 -1164,-177.60,4.80,1.00,0.00,1.00 -1165,-177.60,9.60,1.00,0.00,1.00 -1166,-172.80,14.40,1.00,0.00,1.00 -1167,-172.80,19.20,1.00,0.00,1.00 -1168,-172.80,24.00,1.00,0.00,1.00 -1169,-168.00,28.80,1.00,0.00,1.00 -1170,-168.00,33.60,1.00,0.00,1.00 -1171,-163.20,38.40,1.00,0.00,1.00 -1172,-163.20,43.20,1.00,0.00,1.00 -1173,-158.40,48.00,1.00,0.00,1.00 -1174,-158.40,52.80,1.00,0.00,1.00 -1175,-153.60,57.60,1.00,0.00,1.00 -1176,-148.80,57.60,1.00,0.00,1.00 -1177,-139.20,62.40,1.00,0.00,1.00 -1178,-134.40,67.20,1.00,0.00,1.00 -1179,-120.00,67.20,1.00,0.00,1.00 -1180,-110.40,72.00,1.00,0.00,1.00 -1181,-96.00,72.00,1.00,0.00,1.00 -1182,-76.80,72.00,1.00,0.00,1.00 -1183,-62.40,72.00,1.00,0.00,1.00 -1184,-52.80,67.20,1.00,0.00,1.00 -1185,-43.20,62.40,1.00,0.00,1.00 -1186,-38.40,62.40,1.00,0.00,1.00 -1187,-28.80,57.60,1.00,0.00,1.00 -1188,-24.00,52.80,1.00,0.00,1.00 -1189,-24.00,48.00,1.00,0.00,1.00 -1190,-19.20,43.20,1.00,0.00,1.00 -1191,-14.40,38.40,1.00,0.00,1.00 -1192,-14.40,38.40,1.00,0.00,1.00 -1193,-9.60,33.60,1.00,0.00,1.00 -1194,-9.60,28.80,1.00,0.00,1.00 -1195,-9.60,24.00,1.00,0.00,1.00 -1196,-4.80,19.20,1.00,0.00,1.00 -1197,-4.80,14.40,1.00,0.00,1.00 -1198,-4.80,9.60,1.00,0.00,1.00 -1199,-0.00,4.80,1.00,0.00,1.00 -1200,0.00,0.00,1.00,0.00,1.00 -1201,0.00,-4.80,1.00,0.00,1.00 -1202,0.00,-9.60,1.00,0.00,1.00 -1203,4.80,-14.40,1.00,0.00,1.00 -1204,4.80,-19.20,1.00,0.00,1.00 -1205,4.80,-24.00,1.00,0.00,1.00 -1206,4.80,-28.80,1.00,0.00,1.00 -1207,9.60,-33.60,1.00,0.00,1.00 -1208,9.60,-38.40,1.00,0.00,1.00 -1209,14.40,-43.20,1.00,0.00,1.00 -1210,14.40,-48.00,1.00,0.00,1.00 -1211,14.40,-52.80,1.00,0.00,1.00 -1212,19.20,-57.60,1.00,0.00,1.00 -1213,24.00,-57.60,1.00,0.00,1.00 -1214,28.80,-62.40,1.00,0.00,1.00 -1215,33.60,-67.20,1.00,0.00,1.00 -1216,43.20,-72.00,1.00,0.00,1.00 -1217,57.60,-72.00,1.00,0.00,1.00 -1218,76.80,-76.80,1.00,0.00,1.00 -1219,96.00,-76.80,1.00,0.00,1.00 -1220,115.20,-76.80,1.00,0.00,1.00 -1221,129.60,-72.00,1.00,0.00,1.00 -1222,139.20,-72.00,1.00,0.00,1.00 -1223,148.80,-67.20,1.00,0.00,1.00 -1224,153.60,-62.40,1.00,0.00,1.00 -1225,158.40,-57.60,1.00,0.00,1.00 -1226,163.20,-52.80,1.00,0.00,1.00 -1227,163.20,-48.00,1.00,0.00,1.00 -1228,168.00,-43.20,1.00,0.00,1.00 -1229,168.00,-38.40,1.00,0.00,1.00 -1230,172.80,-33.60,1.00,0.00,1.00 -1231,172.80,-28.80,1.00,0.00,1.00 -1232,172.80,-24.00,1.00,0.00,1.00 -1233,172.80,-19.20,1.00,0.00,1.00 -1234,177.60,-14.40,1.00,0.00,1.00 -1235,177.60,-9.60,1.00,0.00,1.00 -1236,177.60,-4.80,1.00,0.00,1.00 -1237,177.60,-0.00,1.00,0.00,1.00 -1238,-177.60,0.00,1.00,0.00,1.00 -1239,-177.60,4.80,1.00,0.00,1.00 -1240,-177.60,9.60,1.00,0.00,1.00 -1241,-177.60,14.40,1.00,0.00,1.00 -1242,-172.80,19.20,1.00,0.00,1.00 -1243,-172.80,24.00,1.00,0.00,1.00 -1244,-172.80,28.80,1.00,0.00,1.00 -1245,-172.80,33.60,1.00,0.00,1.00 -1246,-168.00,38.40,1.00,0.00,1.00 -1247,-168.00,43.20,1.00,0.00,1.00 -1248,-163.20,48.00,1.00,0.00,1.00 -1249,-163.20,52.80,1.00,0.00,1.00 -1250,-158.40,57.60,1.00,0.00,1.00 -1251,-153.60,62.40,1.00,0.00,1.00 -1252,-148.80,67.20,1.00,0.00,1.00 -1253,-139.20,72.00,1.00,0.00,1.00 -1254,-129.60,72.00,1.00,0.00,1.00 -1255,-115.20,76.80,1.00,0.00,1.00 -1256,-96.00,76.80,1.00,0.00,1.00 -1257,-76.80,76.80,1.00,0.00,1.00 -1258,-57.60,72.00,1.00,0.00,1.00 -1259,-43.20,72.00,1.00,0.00,1.00 -1260,-33.60,67.20,1.00,0.00,1.00 -1261,-28.80,62.40,1.00,0.00,1.00 -1262,-24.00,57.60,1.00,0.00,1.00 -1263,-19.20,57.60,1.00,0.00,1.00 -1264,-14.40,52.80,1.00,0.00,1.00 -1265,-14.40,48.00,1.00,0.00,1.00 -1266,-14.40,43.20,1.00,0.00,1.00 -1267,-9.60,38.40,1.00,0.00,1.00 -1268,-9.60,33.60,1.00,0.00,1.00 -1269,-4.80,28.80,1.00,0.00,1.00 -1270,-4.80,24.00,1.00,0.00,1.00 -1271,-4.80,19.20,1.00,0.00,1.00 -1272,-4.80,14.40,1.00,0.00,1.00 -1273,-0.00,9.60,1.00,0.00,1.00 -1274,-0.00,4.80,1.00,0.00,1.00 -1275,0.00,0.00,1.00,0.00,1.00 -1276,0.00,-4.80,1.00,0.00,1.00 -1277,0.00,-9.60,1.00,0.00,1.00 -1278,0.00,-14.40,1.00,0.00,1.00 -1279,4.80,-19.20,1.00,0.00,1.00 -1280,4.80,-24.00,1.00,0.00,1.00 -1281,4.80,-28.80,1.00,0.00,1.00 -1282,4.80,-33.60,1.00,0.00,1.00 -1283,4.80,-38.40,1.00,0.00,1.00 -1284,9.60,-43.20,1.00,0.00,1.00 -1285,9.60,-48.00,1.00,0.00,1.00 -1286,9.60,-52.80,1.00,0.00,1.00 -1287,14.40,-57.60,1.00,0.00,1.00 -1288,14.40,-62.40,1.00,0.00,1.00 -1289,19.20,-67.20,1.00,0.00,1.00 -1290,24.00,-72.00,1.00,0.00,1.00 -1291,33.60,-72.00,1.00,0.00,1.00 -1292,43.20,-76.80,1.00,0.00,1.00 -1293,67.20,-81.60,1.00,0.00,1.00 -1294,96.00,-81.60,1.00,0.00,1.00 -1295,124.80,-81.60,1.00,0.00,1.00 -1296,144.00,-76.80,1.00,0.00,1.00 -1297,153.60,-72.00,1.00,0.00,1.00 -1298,158.40,-67.20,1.00,0.00,1.00 -1299,163.20,-62.40,1.00,0.00,1.00 -1300,168.00,-57.60,1.00,0.00,1.00 -1301,168.00,-52.80,1.00,0.00,1.00 -1302,168.00,-48.00,1.00,0.00,1.00 -1303,172.80,-43.20,1.00,0.00,1.00 -1304,172.80,-38.40,1.00,0.00,1.00 -1305,172.80,-33.60,1.00,0.00,1.00 -1306,172.80,-28.80,1.00,0.00,1.00 -1307,177.60,-24.00,1.00,0.00,1.00 -1308,177.60,-19.20,1.00,0.00,1.00 -1309,177.60,-14.40,1.00,0.00,1.00 -1310,177.60,-9.60,1.00,0.00,1.00 -1311,177.60,-4.80,1.00,0.00,1.00 -1312,177.60,-0.00,1.00,0.00,1.00 -1313,-177.60,0.00,1.00,0.00,1.00 -1314,-177.60,4.80,1.00,0.00,1.00 -1315,-177.60,9.60,1.00,0.00,1.00 -1316,-177.60,14.40,1.00,0.00,1.00 -1317,-177.60,19.20,1.00,0.00,1.00 -1318,-177.60,24.00,1.00,0.00,1.00 -1319,-172.80,28.80,1.00,0.00,1.00 -1320,-172.80,33.60,1.00,0.00,1.00 -1321,-172.80,38.40,1.00,0.00,1.00 -1322,-172.80,43.20,1.00,0.00,1.00 -1323,-168.00,48.00,1.00,0.00,1.00 -1324,-168.00,52.80,1.00,0.00,1.00 -1325,-168.00,57.60,1.00,0.00,1.00 -1326,-163.20,62.40,1.00,0.00,1.00 -1327,-158.40,67.20,1.00,0.00,1.00 -1328,-153.60,72.00,1.00,0.00,1.00 -1329,-144.00,76.80,1.00,0.00,1.00 -1330,-124.80,81.60,1.00,0.00,1.00 -1331,-96.00,81.60,1.00,0.00,1.00 -1332,-67.20,81.60,1.00,0.00,1.00 -1333,-43.20,76.80,1.00,0.00,1.00 -1334,-33.60,72.00,1.00,0.00,1.00 -1335,-24.00,72.00,1.00,0.00,1.00 -1336,-19.20,67.20,1.00,0.00,1.00 -1337,-14.40,62.40,1.00,0.00,1.00 -1338,-14.40,57.60,1.00,0.00,1.00 -1339,-9.60,52.80,1.00,0.00,1.00 -1340,-9.60,48.00,1.00,0.00,1.00 -1341,-9.60,43.20,1.00,0.00,1.00 -1342,-4.80,38.40,1.00,0.00,1.00 -1343,-4.80,33.60,1.00,0.00,1.00 -1344,-4.80,28.80,1.00,0.00,1.00 -1345,-4.80,24.00,1.00,0.00,1.00 -1346,-4.80,19.20,1.00,0.00,1.00 -1347,-0.00,14.40,1.00,0.00,1.00 -1348,-0.00,9.60,1.00,0.00,1.00 -1349,-0.00,4.80,1.00,0.00,1.00 -1350,0.00,0.00,1.00,0.00,1.00 -1351,0.00,-4.80,1.00,0.00,1.00 -1352,0.00,-9.60,1.00,0.00,1.00 -1353,0.00,-14.40,1.00,0.00,1.00 -1354,0.00,-19.20,1.00,0.00,1.00 -1355,0.00,-24.00,1.00,0.00,1.00 -1356,0.00,-28.80,1.00,0.00,1.00 -1357,0.00,-33.60,1.00,0.00,1.00 -1358,4.80,-38.40,1.00,0.00,1.00 -1359,4.80,-43.20,1.00,0.00,1.00 -1360,4.80,-48.00,1.00,0.00,1.00 -1361,4.80,-52.80,1.00,0.00,1.00 -1362,4.80,-57.60,1.00,0.00,1.00 -1363,4.80,-62.40,1.00,0.00,1.00 -1364,9.60,-67.20,1.00,0.00,1.00 -1365,9.60,-72.00,1.00,0.00,1.00 -1366,14.40,-76.80,1.00,0.00,1.00 -1367,24.00,-81.60,1.00,0.00,1.00 -1368,43.20,-86.40,1.00,0.00,1.00 -1369,110.40,-86.40,1.00,0.00,1.00 -1370,148.80,-81.60,1.00,0.00,1.00 -1371,163.20,-76.80,1.00,0.00,1.00 -1372,168.00,-72.00,1.00,0.00,1.00 -1373,172.80,-67.20,1.00,0.00,1.00 -1374,172.80,-62.40,1.00,0.00,1.00 -1375,172.80,-57.60,1.00,0.00,1.00 -1376,172.80,-52.80,1.00,0.00,1.00 -1377,177.60,-48.00,1.00,0.00,1.00 -1378,177.60,-43.20,1.00,0.00,1.00 -1379,177.60,-38.40,1.00,0.00,1.00 -1380,177.60,-33.60,1.00,0.00,1.00 -1381,177.60,-28.80,1.00,0.00,1.00 -1382,177.60,-24.00,1.00,0.00,1.00 -1383,177.60,-19.20,1.00,0.00,1.00 -1384,177.60,-14.40,1.00,0.00,1.00 -1385,177.60,-9.60,1.00,0.00,1.00 -1386,177.60,-4.80,1.00,0.00,1.00 -1387,177.60,-0.00,1.00,0.00,1.00 -1388,-177.60,0.00,1.00,0.00,1.00 -1389,-177.60,4.80,1.00,0.00,1.00 -1390,-177.60,9.60,1.00,0.00,1.00 -1391,-177.60,14.40,1.00,0.00,1.00 -1392,-177.60,19.20,1.00,0.00,1.00 -1393,-177.60,24.00,1.00,0.00,1.00 -1394,-177.60,28.80,1.00,0.00,1.00 -1395,-177.60,33.60,1.00,0.00,1.00 -1396,-177.60,38.40,1.00,0.00,1.00 -1397,-177.60,43.20,1.00,0.00,1.00 -1398,-177.60,48.00,1.00,0.00,1.00 -1399,-172.80,52.80,1.00,0.00,1.00 -1400,-172.80,57.60,1.00,0.00,1.00 -1401,-172.80,62.40,1.00,0.00,1.00 -1402,-172.80,67.20,1.00,0.00,1.00 -1403,-168.00,72.00,1.00,0.00,1.00 -1404,-163.20,76.80,1.00,0.00,1.00 -1405,-148.80,81.60,1.00,0.00,1.00 -1406,-110.40,86.40,1.00,0.00,1.00 -1407,-43.20,86.40,1.00,0.00,1.00 -1408,-24.00,81.60,1.00,0.00,1.00 -1409,-14.40,76.80,1.00,0.00,1.00 -1410,-9.60,72.00,1.00,0.00,1.00 -1411,-9.60,67.20,1.00,0.00,1.00 -1412,-4.80,62.40,1.00,0.00,1.00 -1413,-4.80,57.60,1.00,0.00,1.00 -1414,-4.80,52.80,1.00,0.00,1.00 -1415,-4.80,48.00,1.00,0.00,1.00 -1416,-4.80,43.20,1.00,0.00,1.00 -1417,-4.80,38.40,1.00,0.00,1.00 -1418,-0.00,33.60,1.00,0.00,1.00 -1419,-0.00,28.80,1.00,0.00,1.00 -1420,-0.00,24.00,1.00,0.00,1.00 -1421,-0.00,19.20,1.00,0.00,1.00 -1422,-0.00,14.40,1.00,0.00,1.00 -1423,-0.00,9.60,1.00,0.00,1.00 -1424,-0.00,4.80,1.00,0.00,1.00 -1425,-0.00,0.00,1.00,0.00,1.00 -1426,-0.00,-4.80,1.00,0.00,1.00 -1427,-0.00,-9.60,1.00,0.00,1.00 -1428,-0.00,-14.40,1.00,0.00,1.00 -1429,-0.00,-19.20,1.00,0.00,1.00 -1430,-0.00,-24.00,1.00,0.00,1.00 -1431,-0.00,-28.80,1.00,0.00,1.00 -1432,-0.00,-33.60,1.00,0.00,1.00 -1433,-0.00,-38.40,1.00,0.00,1.00 -1434,-0.00,-43.20,1.00,0.00,1.00 -1435,-0.00,-48.00,1.00,0.00,1.00 -1436,-0.00,-52.80,1.00,0.00,1.00 -1437,-0.00,-57.60,1.00,0.00,1.00 -1438,-0.00,-62.40,1.00,0.00,1.00 -1439,-4.80,-67.20,1.00,0.00,1.00 -1440,-4.80,-72.00,1.00,0.00,1.00 -1441,-4.80,-76.80,1.00,0.00,1.00 -1442,-9.60,-81.60,1.00,0.00,1.00 -1443,-19.20,-86.40,1.00,0.00,1.00 -1444,-134.40,-86.40,1.00,0.00,1.00 -1445,-168.00,-81.60,1.00,0.00,1.00 -1446,-172.80,-76.80,1.00,0.00,1.00 -1447,-177.60,-72.00,1.00,0.00,1.00 -1448,-177.60,-67.20,1.00,0.00,1.00 -1449,-177.60,-62.40,1.00,0.00,1.00 -1450,-177.60,-57.60,1.00,0.00,1.00 -1451,-177.60,-52.80,1.00,0.00,1.00 -1452,-177.60,-48.00,1.00,0.00,1.00 -1453,-177.60,-43.20,1.00,0.00,1.00 -1454,-177.60,-38.40,1.00,0.00,1.00 -1455,-177.60,-33.60,1.00,0.00,1.00 -1456,-177.60,-28.80,1.00,0.00,1.00 -1457,-177.60,-24.00,1.00,0.00,1.00 -1458,-177.60,-19.20,1.00,0.00,1.00 -1459,-177.60,-14.40,1.00,0.00,1.00 -1460,-177.60,-9.60,1.00,0.00,1.00 -1461,-177.60,-4.80,1.00,0.00,1.00 -1462,-177.60,-0.00,1.00,0.00,1.00 -1463,177.60,0.00,1.00,0.00,1.00 -1464,177.60,4.80,1.00,0.00,1.00 -1465,177.60,9.60,1.00,0.00,1.00 -1466,177.60,14.40,1.00,0.00,1.00 -1467,177.60,19.20,1.00,0.00,1.00 -1468,177.60,24.00,1.00,0.00,1.00 -1469,177.60,28.80,1.00,0.00,1.00 -1470,177.60,33.60,1.00,0.00,1.00 -1471,177.60,38.40,1.00,0.00,1.00 -1472,177.60,43.20,1.00,0.00,1.00 -1473,177.60,48.00,1.00,0.00,1.00 -1474,177.60,52.80,1.00,0.00,1.00 -1475,177.60,57.60,1.00,0.00,1.00 -1476,177.60,62.40,1.00,0.00,1.00 -1477,177.60,67.20,1.00,0.00,1.00 -1478,177.60,72.00,1.00,0.00,1.00 -1479,172.80,76.80,1.00,0.00,1.00 -1480,168.00,81.60,1.00,0.00,1.00 -1481,134.40,86.40,1.00,0.00,1.00 -1482,19.20,86.40,1.00,0.00,1.00 -1483,9.60,81.60,1.00,0.00,1.00 -1484,4.80,76.80,1.00,0.00,1.00 -1485,4.80,72.00,1.00,0.00,1.00 -1486,4.80,67.20,1.00,0.00,1.00 -1487,0.00,62.40,1.00,0.00,1.00 -1488,0.00,57.60,1.00,0.00,1.00 -1489,0.00,52.80,1.00,0.00,1.00 -1490,0.00,48.00,1.00,0.00,1.00 -1491,0.00,43.20,1.00,0.00,1.00 -1492,0.00,38.40,1.00,0.00,1.00 -1493,0.00,33.60,1.00,0.00,1.00 -1494,0.00,28.80,1.00,0.00,1.00 -1495,0.00,24.00,1.00,0.00,1.00 -1496,0.00,19.20,1.00,0.00,1.00 -1497,0.00,14.40,1.00,0.00,1.00 -1498,0.00,9.60,1.00,0.00,1.00 -1499,0.00,4.80,1.00,0.00,1.00 diff --git a/scripts/testv/stvISM2.csv b/scripts/testv/stvISM2.csv index 9fd14fdf63..e69de29bb2 100644 --- a/scripts/testv/stvISM2.csv +++ b/scripts/testv/stvISM2.csv @@ -1,1500 +0,0 @@ -0,0.00,4.80,1.00,0.00,1.00 -1,0.00,9.60,1.00,0.00,1.00 -2,0.00,14.40,1.00,0.00,1.00 -3,0.00,19.20,1.00,0.00,1.00 -4,0.00,24.00,1.00,0.00,1.00 -5,0.00,28.80,1.00,0.00,1.00 -6,0.00,33.60,1.00,0.00,1.00 -7,0.00,38.40,1.00,0.00,1.00 -8,0.00,43.20,1.00,0.00,1.00 -9,0.00,48.00,1.00,0.00,1.00 -10,0.00,52.80,1.00,0.00,1.00 -11,0.00,57.60,1.00,0.00,1.00 -12,0.00,62.40,1.00,0.00,1.00 -13,4.80,67.20,1.00,0.00,1.00 -14,4.80,72.00,1.00,0.00,1.00 -15,4.80,76.80,1.00,0.00,1.00 -16,9.60,81.60,1.00,0.00,1.00 -17,19.20,86.40,1.00,0.00,1.00 -18,134.40,86.40,1.00,0.00,1.00 -19,168.00,81.60,1.00,0.00,1.00 -20,172.80,76.80,1.00,0.00,1.00 -21,177.60,72.00,1.00,0.00,1.00 -22,177.60,67.20,1.00,0.00,1.00 -23,177.60,62.40,1.00,0.00,1.00 -24,177.60,57.60,1.00,0.00,1.00 -25,177.60,52.80,1.00,0.00,1.00 -26,177.60,48.00,1.00,0.00,1.00 -27,177.60,43.20,1.00,0.00,1.00 -28,177.60,38.40,1.00,0.00,1.00 -29,177.60,33.60,1.00,0.00,1.00 -30,177.60,28.80,1.00,0.00,1.00 -31,177.60,24.00,1.00,0.00,1.00 -32,177.60,19.20,1.00,0.00,1.00 -33,177.60,14.40,1.00,0.00,1.00 -34,177.60,9.60,1.00,0.00,1.00 -35,177.60,4.80,1.00,0.00,1.00 -36,177.60,0.00,1.00,0.00,1.00 -37,-177.60,-0.00,1.00,0.00,1.00 -38,-177.60,-4.80,1.00,0.00,1.00 -39,-177.60,-9.60,1.00,0.00,1.00 -40,-177.60,-14.40,1.00,0.00,1.00 -41,-177.60,-19.20,1.00,0.00,1.00 -42,-177.60,-24.00,1.00,0.00,1.00 -43,-177.60,-28.80,1.00,0.00,1.00 -44,-177.60,-33.60,1.00,0.00,1.00 -45,-177.60,-38.40,1.00,0.00,1.00 -46,-177.60,-43.20,1.00,0.00,1.00 -47,-177.60,-48.00,1.00,0.00,1.00 -48,-177.60,-52.80,1.00,0.00,1.00 -49,-177.60,-57.60,1.00,0.00,1.00 -50,-177.60,-62.40,1.00,0.00,1.00 -51,-177.60,-67.20,1.00,0.00,1.00 -52,-177.60,-72.00,1.00,0.00,1.00 -53,-172.80,-76.80,1.00,0.00,1.00 -54,-168.00,-81.60,1.00,0.00,1.00 -55,-134.40,-86.40,1.00,0.00,1.00 -56,-19.20,-86.40,1.00,0.00,1.00 -57,-9.60,-81.60,1.00,0.00,1.00 -58,-4.80,-76.80,1.00,0.00,1.00 -59,-4.80,-72.00,1.00,0.00,1.00 -60,-4.80,-67.20,1.00,0.00,1.00 -61,-0.00,-62.40,1.00,0.00,1.00 -62,-0.00,-57.60,1.00,0.00,1.00 -63,-0.00,-52.80,1.00,0.00,1.00 -64,-0.00,-48.00,1.00,0.00,1.00 -65,-0.00,-43.20,1.00,0.00,1.00 -66,-0.00,-38.40,1.00,0.00,1.00 -67,-0.00,-33.60,1.00,0.00,1.00 -68,-0.00,-28.80,1.00,0.00,1.00 -69,-0.00,-24.00,1.00,0.00,1.00 -70,-0.00,-19.20,1.00,0.00,1.00 -71,-0.00,-14.40,1.00,0.00,1.00 -72,-0.00,-9.60,1.00,0.00,1.00 -73,-0.00,-4.80,1.00,0.00,1.00 -74,-0.00,0.00,1.00,0.00,1.00 -75,-0.00,4.80,1.00,0.00,1.00 -76,-0.00,9.60,1.00,0.00,1.00 -77,-0.00,14.40,1.00,0.00,1.00 -78,-0.00,19.20,1.00,0.00,1.00 -79,-0.00,24.00,1.00,0.00,1.00 -80,-0.00,28.80,1.00,0.00,1.00 -81,-0.00,33.60,1.00,0.00,1.00 -82,-4.80,38.40,1.00,0.00,1.00 -83,-4.80,43.20,1.00,0.00,1.00 -84,-4.80,48.00,1.00,0.00,1.00 -85,-4.80,52.80,1.00,0.00,1.00 -86,-4.80,57.60,1.00,0.00,1.00 -87,-4.80,62.40,1.00,0.00,1.00 -88,-9.60,67.20,1.00,0.00,1.00 -89,-9.60,72.00,1.00,0.00,1.00 -90,-14.40,76.80,1.00,0.00,1.00 -91,-24.00,81.60,1.00,0.00,1.00 -92,-43.20,86.40,1.00,0.00,1.00 -93,-110.40,86.40,1.00,0.00,1.00 -94,-148.80,81.60,1.00,0.00,1.00 -95,-163.20,76.80,1.00,0.00,1.00 -96,-168.00,72.00,1.00,0.00,1.00 -97,-172.80,67.20,1.00,0.00,1.00 -98,-172.80,62.40,1.00,0.00,1.00 -99,-172.80,57.60,1.00,0.00,1.00 -100,-172.80,52.80,1.00,0.00,1.00 -101,-177.60,48.00,1.00,0.00,1.00 -102,-177.60,43.20,1.00,0.00,1.00 -103,-177.60,38.40,1.00,0.00,1.00 -104,-177.60,33.60,1.00,0.00,1.00 -105,-177.60,28.80,1.00,0.00,1.00 -106,-177.60,24.00,1.00,0.00,1.00 -107,-177.60,19.20,1.00,0.00,1.00 -108,-177.60,14.40,1.00,0.00,1.00 -109,-177.60,9.60,1.00,0.00,1.00 -110,-177.60,4.80,1.00,0.00,1.00 -111,-177.60,0.00,1.00,0.00,1.00 -112,177.60,-0.00,1.00,0.00,1.00 -113,177.60,-4.80,1.00,0.00,1.00 -114,177.60,-9.60,1.00,0.00,1.00 -115,177.60,-14.40,1.00,0.00,1.00 -116,177.60,-19.20,1.00,0.00,1.00 -117,177.60,-24.00,1.00,0.00,1.00 -118,177.60,-28.80,1.00,0.00,1.00 -119,177.60,-33.60,1.00,0.00,1.00 -120,177.60,-38.40,1.00,0.00,1.00 -121,177.60,-43.20,1.00,0.00,1.00 -122,177.60,-48.00,1.00,0.00,1.00 -123,172.80,-52.80,1.00,0.00,1.00 -124,172.80,-57.60,1.00,0.00,1.00 -125,172.80,-62.40,1.00,0.00,1.00 -126,172.80,-67.20,1.00,0.00,1.00 -127,168.00,-72.00,1.00,0.00,1.00 -128,163.20,-76.80,1.00,0.00,1.00 -129,148.80,-81.60,1.00,0.00,1.00 -130,110.40,-86.40,1.00,0.00,1.00 -131,43.20,-86.40,1.00,0.00,1.00 -132,24.00,-81.60,1.00,0.00,1.00 -133,14.40,-76.80,1.00,0.00,1.00 -134,9.60,-72.00,1.00,0.00,1.00 -135,9.60,-67.20,1.00,0.00,1.00 -136,4.80,-62.40,1.00,0.00,1.00 -137,4.80,-57.60,1.00,0.00,1.00 -138,4.80,-52.80,1.00,0.00,1.00 -139,4.80,-48.00,1.00,0.00,1.00 -140,4.80,-43.20,1.00,0.00,1.00 -141,4.80,-38.40,1.00,0.00,1.00 -142,0.00,-33.60,1.00,0.00,1.00 -143,0.00,-28.80,1.00,0.00,1.00 -144,0.00,-24.00,1.00,0.00,1.00 -145,0.00,-19.20,1.00,0.00,1.00 -146,0.00,-14.40,1.00,0.00,1.00 -147,0.00,-9.60,1.00,0.00,1.00 -148,0.00,-4.80,1.00,0.00,1.00 -149,0.00,0.00,1.00,0.00,1.00 -150,-0.00,4.80,1.00,0.00,1.00 -151,-0.00,9.60,1.00,0.00,1.00 -152,-0.00,14.40,1.00,0.00,1.00 -153,-4.80,19.20,1.00,0.00,1.00 -154,-4.80,24.00,1.00,0.00,1.00 -155,-4.80,28.80,1.00,0.00,1.00 -156,-4.80,33.60,1.00,0.00,1.00 -157,-4.80,38.40,1.00,0.00,1.00 -158,-9.60,43.20,1.00,0.00,1.00 -159,-9.60,48.00,1.00,0.00,1.00 -160,-9.60,52.80,1.00,0.00,1.00 -161,-14.40,57.60,1.00,0.00,1.00 -162,-14.40,62.40,1.00,0.00,1.00 -163,-19.20,67.20,1.00,0.00,1.00 -164,-24.00,72.00,1.00,0.00,1.00 -165,-33.60,72.00,1.00,0.00,1.00 -166,-43.20,76.80,1.00,0.00,1.00 -167,-67.20,81.60,1.00,0.00,1.00 -168,-96.00,81.60,1.00,0.00,1.00 -169,-124.80,81.60,1.00,0.00,1.00 -170,-144.00,76.80,1.00,0.00,1.00 -171,-153.60,72.00,1.00,0.00,1.00 -172,-158.40,67.20,1.00,0.00,1.00 -173,-163.20,62.40,1.00,0.00,1.00 -174,-168.00,57.60,1.00,0.00,1.00 -175,-168.00,52.80,1.00,0.00,1.00 -176,-168.00,48.00,1.00,0.00,1.00 -177,-172.80,43.20,1.00,0.00,1.00 -178,-172.80,38.40,1.00,0.00,1.00 -179,-172.80,33.60,1.00,0.00,1.00 -180,-172.80,28.80,1.00,0.00,1.00 -181,-177.60,24.00,1.00,0.00,1.00 -182,-177.60,19.20,1.00,0.00,1.00 -183,-177.60,14.40,1.00,0.00,1.00 -184,-177.60,9.60,1.00,0.00,1.00 -185,-177.60,4.80,1.00,0.00,1.00 -186,-177.60,0.00,1.00,0.00,1.00 -187,177.60,-0.00,1.00,0.00,1.00 -188,177.60,-4.80,1.00,0.00,1.00 -189,177.60,-9.60,1.00,0.00,1.00 -190,177.60,-14.40,1.00,0.00,1.00 -191,177.60,-19.20,1.00,0.00,1.00 -192,177.60,-24.00,1.00,0.00,1.00 -193,172.80,-28.80,1.00,0.00,1.00 -194,172.80,-33.60,1.00,0.00,1.00 -195,172.80,-38.40,1.00,0.00,1.00 -196,172.80,-43.20,1.00,0.00,1.00 -197,168.00,-48.00,1.00,0.00,1.00 -198,168.00,-52.80,1.00,0.00,1.00 -199,168.00,-57.60,1.00,0.00,1.00 -200,163.20,-62.40,1.00,0.00,1.00 -201,158.40,-67.20,1.00,0.00,1.00 -202,153.60,-72.00,1.00,0.00,1.00 -203,144.00,-76.80,1.00,0.00,1.00 -204,124.80,-81.60,1.00,0.00,1.00 -205,96.00,-81.60,1.00,0.00,1.00 -206,67.20,-81.60,1.00,0.00,1.00 -207,43.20,-76.80,1.00,0.00,1.00 -208,33.60,-72.00,1.00,0.00,1.00 -209,24.00,-72.00,1.00,0.00,1.00 -210,19.20,-67.20,1.00,0.00,1.00 -211,14.40,-62.40,1.00,0.00,1.00 -212,14.40,-57.60,1.00,0.00,1.00 -213,9.60,-52.80,1.00,0.00,1.00 -214,9.60,-48.00,1.00,0.00,1.00 -215,9.60,-43.20,1.00,0.00,1.00 -216,4.80,-38.40,1.00,0.00,1.00 -217,4.80,-33.60,1.00,0.00,1.00 -218,4.80,-28.80,1.00,0.00,1.00 -219,4.80,-24.00,1.00,0.00,1.00 -220,4.80,-19.20,1.00,0.00,1.00 -221,0.00,-14.40,1.00,0.00,1.00 -222,0.00,-9.60,1.00,0.00,1.00 -223,0.00,-4.80,1.00,0.00,1.00 -224,0.00,0.00,1.00,0.00,1.00 -225,-0.00,4.80,1.00,0.00,1.00 -226,-0.00,9.60,1.00,0.00,1.00 -227,-4.80,14.40,1.00,0.00,1.00 -228,-4.80,19.20,1.00,0.00,1.00 -229,-4.80,24.00,1.00,0.00,1.00 -230,-4.80,28.80,1.00,0.00,1.00 -231,-9.60,33.60,1.00,0.00,1.00 -232,-9.60,38.40,1.00,0.00,1.00 -233,-14.40,43.20,1.00,0.00,1.00 -234,-14.40,48.00,1.00,0.00,1.00 -235,-14.40,52.80,1.00,0.00,1.00 -236,-19.20,57.60,1.00,0.00,1.00 -237,-24.00,57.60,1.00,0.00,1.00 -238,-28.80,62.40,1.00,0.00,1.00 -239,-33.60,67.20,1.00,0.00,1.00 -240,-43.20,72.00,1.00,0.00,1.00 -241,-57.60,72.00,1.00,0.00,1.00 -242,-76.80,76.80,1.00,0.00,1.00 -243,-96.00,76.80,1.00,0.00,1.00 -244,-115.20,76.80,1.00,0.00,1.00 -245,-129.60,72.00,1.00,0.00,1.00 -246,-139.20,72.00,1.00,0.00,1.00 -247,-148.80,67.20,1.00,0.00,1.00 -248,-153.60,62.40,1.00,0.00,1.00 -249,-158.40,57.60,1.00,0.00,1.00 -250,-163.20,52.80,1.00,0.00,1.00 -251,-163.20,48.00,1.00,0.00,1.00 -252,-168.00,43.20,1.00,0.00,1.00 -253,-168.00,38.40,1.00,0.00,1.00 -254,-172.80,33.60,1.00,0.00,1.00 -255,-172.80,28.80,1.00,0.00,1.00 -256,-172.80,24.00,1.00,0.00,1.00 -257,-172.80,19.20,1.00,0.00,1.00 -258,-177.60,14.40,1.00,0.00,1.00 -259,-177.60,9.60,1.00,0.00,1.00 -260,-177.60,4.80,1.00,0.00,1.00 -261,-177.60,0.00,1.00,0.00,1.00 -262,177.60,-0.00,1.00,0.00,1.00 -263,177.60,-4.80,1.00,0.00,1.00 -264,177.60,-9.60,1.00,0.00,1.00 -265,177.60,-14.40,1.00,0.00,1.00 -266,172.80,-19.20,1.00,0.00,1.00 -267,172.80,-24.00,1.00,0.00,1.00 -268,172.80,-28.80,1.00,0.00,1.00 -269,172.80,-33.60,1.00,0.00,1.00 -270,168.00,-38.40,1.00,0.00,1.00 -271,168.00,-43.20,1.00,0.00,1.00 -272,163.20,-48.00,1.00,0.00,1.00 -273,163.20,-52.80,1.00,0.00,1.00 -274,158.40,-57.60,1.00,0.00,1.00 -275,153.60,-62.40,1.00,0.00,1.00 -276,148.80,-67.20,1.00,0.00,1.00 -277,139.20,-72.00,1.00,0.00,1.00 -278,129.60,-72.00,1.00,0.00,1.00 -279,115.20,-76.80,1.00,0.00,1.00 -280,96.00,-76.80,1.00,0.00,1.00 -281,76.80,-76.80,1.00,0.00,1.00 -282,57.60,-72.00,1.00,0.00,1.00 -283,43.20,-72.00,1.00,0.00,1.00 -284,33.60,-67.20,1.00,0.00,1.00 -285,28.80,-62.40,1.00,0.00,1.00 -286,24.00,-57.60,1.00,0.00,1.00 -287,19.20,-57.60,1.00,0.00,1.00 -288,14.40,-52.80,1.00,0.00,1.00 -289,14.40,-48.00,1.00,0.00,1.00 -290,14.40,-43.20,1.00,0.00,1.00 -291,9.60,-38.40,1.00,0.00,1.00 -292,9.60,-33.60,1.00,0.00,1.00 -293,4.80,-28.80,1.00,0.00,1.00 -294,4.80,-24.00,1.00,0.00,1.00 -295,4.80,-19.20,1.00,0.00,1.00 -296,4.80,-14.40,1.00,0.00,1.00 -297,0.00,-9.60,1.00,0.00,1.00 -298,0.00,-4.80,1.00,0.00,1.00 -299,0.00,0.00,1.00,0.00,1.00 -300,-0.00,4.80,1.00,0.00,1.00 -301,-4.80,9.60,1.00,0.00,1.00 -302,-4.80,14.40,1.00,0.00,1.00 -303,-4.80,19.20,1.00,0.00,1.00 -304,-9.60,24.00,1.00,0.00,1.00 -305,-9.60,28.80,1.00,0.00,1.00 -306,-9.60,33.60,1.00,0.00,1.00 -307,-14.40,38.40,1.00,0.00,1.00 -308,-14.40,38.40,1.00,0.00,1.00 -309,-19.20,43.20,1.00,0.00,1.00 -310,-24.00,48.00,1.00,0.00,1.00 -311,-24.00,52.80,1.00,0.00,1.00 -312,-28.80,57.60,1.00,0.00,1.00 -313,-38.40,62.40,1.00,0.00,1.00 -314,-43.20,62.40,1.00,0.00,1.00 -315,-52.80,67.20,1.00,0.00,1.00 -316,-62.40,72.00,1.00,0.00,1.00 -317,-76.80,72.00,1.00,0.00,1.00 -318,-96.00,72.00,1.00,0.00,1.00 -319,-110.40,72.00,1.00,0.00,1.00 -320,-120.00,67.20,1.00,0.00,1.00 -321,-134.40,67.20,1.00,0.00,1.00 -322,-139.20,62.40,1.00,0.00,1.00 -323,-148.80,57.60,1.00,0.00,1.00 -324,-153.60,57.60,1.00,0.00,1.00 -325,-158.40,52.80,1.00,0.00,1.00 -326,-158.40,48.00,1.00,0.00,1.00 -327,-163.20,43.20,1.00,0.00,1.00 -328,-163.20,38.40,1.00,0.00,1.00 -329,-168.00,33.60,1.00,0.00,1.00 -330,-168.00,28.80,1.00,0.00,1.00 -331,-172.80,24.00,1.00,0.00,1.00 -332,-172.80,19.20,1.00,0.00,1.00 -333,-172.80,14.40,1.00,0.00,1.00 -334,-177.60,9.60,1.00,0.00,1.00 -335,-177.60,4.80,1.00,0.00,1.00 -336,-177.60,0.00,1.00,0.00,1.00 -337,177.60,-0.00,1.00,0.00,1.00 -338,177.60,-4.80,1.00,0.00,1.00 -339,177.60,-9.60,1.00,0.00,1.00 -340,172.80,-14.40,1.00,0.00,1.00 -341,172.80,-19.20,1.00,0.00,1.00 -342,172.80,-24.00,1.00,0.00,1.00 -343,168.00,-28.80,1.00,0.00,1.00 -344,168.00,-33.60,1.00,0.00,1.00 -345,163.20,-38.40,1.00,0.00,1.00 -346,163.20,-43.20,1.00,0.00,1.00 -347,158.40,-48.00,1.00,0.00,1.00 -348,158.40,-52.80,1.00,0.00,1.00 -349,153.60,-57.60,1.00,0.00,1.00 -350,148.80,-57.60,1.00,0.00,1.00 -351,139.20,-62.40,1.00,0.00,1.00 -352,134.40,-67.20,1.00,0.00,1.00 -353,120.00,-67.20,1.00,0.00,1.00 -354,110.40,-72.00,1.00,0.00,1.00 -355,96.00,-72.00,1.00,0.00,1.00 -356,76.80,-72.00,1.00,0.00,1.00 -357,62.40,-72.00,1.00,0.00,1.00 -358,52.80,-67.20,1.00,0.00,1.00 -359,43.20,-62.40,1.00,0.00,1.00 -360,38.40,-62.40,1.00,0.00,1.00 -361,28.80,-57.60,1.00,0.00,1.00 -362,24.00,-52.80,1.00,0.00,1.00 -363,24.00,-48.00,1.00,0.00,1.00 -364,19.20,-43.20,1.00,0.00,1.00 -365,14.40,-38.40,1.00,0.00,1.00 -366,14.40,-38.40,1.00,0.00,1.00 -367,9.60,-33.60,1.00,0.00,1.00 -368,9.60,-28.80,1.00,0.00,1.00 -369,9.60,-24.00,1.00,0.00,1.00 -370,4.80,-19.20,1.00,0.00,1.00 -371,4.80,-14.40,1.00,0.00,1.00 -372,4.80,-9.60,1.00,0.00,1.00 -373,0.00,-4.80,1.00,0.00,1.00 -374,0.00,0.00,1.00,0.00,1.00 -375,-0.00,4.80,1.00,0.00,1.00 -376,-4.80,9.60,1.00,0.00,1.00 -377,-4.80,14.40,1.00,0.00,1.00 -378,-9.60,19.20,1.00,0.00,1.00 -379,-9.60,24.00,1.00,0.00,1.00 -380,-14.40,24.00,1.00,0.00,1.00 -381,-14.40,28.80,1.00,0.00,1.00 -382,-19.20,33.60,1.00,0.00,1.00 -383,-19.20,38.40,1.00,0.00,1.00 -384,-24.00,43.20,1.00,0.00,1.00 -385,-28.80,48.00,1.00,0.00,1.00 -386,-33.60,52.80,1.00,0.00,1.00 -387,-38.40,52.80,1.00,0.00,1.00 -388,-43.20,57.60,1.00,0.00,1.00 -389,-48.00,62.40,1.00,0.00,1.00 -390,-57.60,62.40,1.00,0.00,1.00 -391,-67.20,67.20,1.00,0.00,1.00 -392,-81.60,67.20,1.00,0.00,1.00 -393,-91.20,67.20,1.00,0.00,1.00 -394,-105.60,67.20,1.00,0.00,1.00 -395,-115.20,67.20,1.00,0.00,1.00 -396,-124.80,62.40,1.00,0.00,1.00 -397,-134.40,57.60,1.00,0.00,1.00 -398,-139.20,57.60,1.00,0.00,1.00 -399,-144.00,52.80,1.00,0.00,1.00 -400,-148.80,48.00,1.00,0.00,1.00 -401,-153.60,43.20,1.00,0.00,1.00 -402,-158.40,43.20,1.00,0.00,1.00 -403,-163.20,38.40,1.00,0.00,1.00 -404,-163.20,33.60,1.00,0.00,1.00 -405,-168.00,28.80,1.00,0.00,1.00 -406,-168.00,24.00,1.00,0.00,1.00 -407,-172.80,19.20,1.00,0.00,1.00 -408,-172.80,14.40,1.00,0.00,1.00 -409,-177.60,9.60,1.00,0.00,1.00 -410,-177.60,4.80,1.00,0.00,1.00 -411,-177.60,0.00,1.00,0.00,1.00 -412,177.60,-0.00,1.00,0.00,1.00 -413,177.60,-4.80,1.00,0.00,1.00 -414,177.60,-9.60,1.00,0.00,1.00 -415,172.80,-14.40,1.00,0.00,1.00 -416,172.80,-19.20,1.00,0.00,1.00 -417,168.00,-24.00,1.00,0.00,1.00 -418,168.00,-28.80,1.00,0.00,1.00 -419,163.20,-33.60,1.00,0.00,1.00 -420,163.20,-38.40,1.00,0.00,1.00 -421,158.40,-43.20,1.00,0.00,1.00 -422,153.60,-43.20,1.00,0.00,1.00 -423,148.80,-48.00,1.00,0.00,1.00 -424,144.00,-52.80,1.00,0.00,1.00 -425,139.20,-57.60,1.00,0.00,1.00 -426,134.40,-57.60,1.00,0.00,1.00 -427,124.80,-62.40,1.00,0.00,1.00 -428,115.20,-67.20,1.00,0.00,1.00 -429,105.60,-67.20,1.00,0.00,1.00 -430,91.20,-67.20,1.00,0.00,1.00 -431,81.60,-67.20,1.00,0.00,1.00 -432,67.20,-67.20,1.00,0.00,1.00 -433,57.60,-62.40,1.00,0.00,1.00 -434,48.00,-62.40,1.00,0.00,1.00 -435,43.20,-57.60,1.00,0.00,1.00 -436,38.40,-52.80,1.00,0.00,1.00 -437,33.60,-52.80,1.00,0.00,1.00 -438,28.80,-48.00,1.00,0.00,1.00 -439,24.00,-43.20,1.00,0.00,1.00 -440,19.20,-38.40,1.00,0.00,1.00 -441,19.20,-33.60,1.00,0.00,1.00 -442,14.40,-28.80,1.00,0.00,1.00 -443,14.40,-24.00,1.00,0.00,1.00 -444,9.60,-24.00,1.00,0.00,1.00 -445,9.60,-19.20,1.00,0.00,1.00 -446,4.80,-14.40,1.00,0.00,1.00 -447,4.80,-9.60,1.00,0.00,1.00 -448,0.00,-4.80,1.00,0.00,1.00 -449,0.00,0.00,1.00,0.00,1.00 -450,-0.00,4.80,1.00,0.00,1.00 -451,-4.80,9.60,1.00,0.00,1.00 -452,-4.80,14.40,1.00,0.00,1.00 -453,-9.60,19.20,1.00,0.00,1.00 -454,-9.60,19.20,1.00,0.00,1.00 -455,-14.40,24.00,1.00,0.00,1.00 -456,-19.20,28.80,1.00,0.00,1.00 -457,-19.20,33.60,1.00,0.00,1.00 -458,-24.00,38.40,1.00,0.00,1.00 -459,-28.80,43.20,1.00,0.00,1.00 -460,-33.60,43.20,1.00,0.00,1.00 -461,-38.40,48.00,1.00,0.00,1.00 -462,-43.20,52.80,1.00,0.00,1.00 -463,-48.00,52.80,1.00,0.00,1.00 -464,-52.80,57.60,1.00,0.00,1.00 -465,-62.40,57.60,1.00,0.00,1.00 -466,-72.00,62.40,1.00,0.00,1.00 -467,-81.60,62.40,1.00,0.00,1.00 -468,-91.20,62.40,1.00,0.00,1.00 -469,-100.80,62.40,1.00,0.00,1.00 -470,-110.40,62.40,1.00,0.00,1.00 -471,-120.00,57.60,1.00,0.00,1.00 -472,-129.60,57.60,1.00,0.00,1.00 -473,-134.40,52.80,1.00,0.00,1.00 -474,-139.20,48.00,1.00,0.00,1.00 -475,-144.00,48.00,1.00,0.00,1.00 -476,-148.80,43.20,1.00,0.00,1.00 -477,-153.60,38.40,1.00,0.00,1.00 -478,-158.40,33.60,1.00,0.00,1.00 -479,-163.20,33.60,1.00,0.00,1.00 -480,-163.20,28.80,1.00,0.00,1.00 -481,-168.00,24.00,1.00,0.00,1.00 -482,-168.00,19.20,1.00,0.00,1.00 -483,-172.80,14.40,1.00,0.00,1.00 -484,-172.80,9.60,1.00,0.00,1.00 -485,-177.60,4.80,1.00,0.00,1.00 -486,-177.60,0.00,1.00,0.00,1.00 -487,177.60,-0.00,1.00,0.00,1.00 -488,177.60,-4.80,1.00,0.00,1.00 -489,172.80,-9.60,1.00,0.00,1.00 -490,172.80,-14.40,1.00,0.00,1.00 -491,168.00,-19.20,1.00,0.00,1.00 -492,168.00,-24.00,1.00,0.00,1.00 -493,163.20,-28.80,1.00,0.00,1.00 -494,163.20,-33.60,1.00,0.00,1.00 -495,158.40,-33.60,1.00,0.00,1.00 -496,153.60,-38.40,1.00,0.00,1.00 -497,148.80,-43.20,1.00,0.00,1.00 -498,144.00,-48.00,1.00,0.00,1.00 -499,139.20,-48.00,1.00,0.00,1.00 -500,134.40,-52.80,1.00,0.00,1.00 -501,129.60,-57.60,1.00,0.00,1.00 -502,120.00,-57.60,1.00,0.00,1.00 -503,110.40,-62.40,1.00,0.00,1.00 -504,100.80,-62.40,1.00,0.00,1.00 -505,91.20,-62.40,1.00,0.00,1.00 -506,81.60,-62.40,1.00,0.00,1.00 -507,72.00,-62.40,1.00,0.00,1.00 -508,62.40,-57.60,1.00,0.00,1.00 -509,52.80,-57.60,1.00,0.00,1.00 -510,48.00,-52.80,1.00,0.00,1.00 -511,43.20,-52.80,1.00,0.00,1.00 -512,38.40,-48.00,1.00,0.00,1.00 -513,33.60,-43.20,1.00,0.00,1.00 -514,28.80,-43.20,1.00,0.00,1.00 -515,24.00,-38.40,1.00,0.00,1.00 -516,19.20,-33.60,1.00,0.00,1.00 -517,19.20,-28.80,1.00,0.00,1.00 -518,14.40,-24.00,1.00,0.00,1.00 -519,9.60,-19.20,1.00,0.00,1.00 -520,9.60,-19.20,1.00,0.00,1.00 -521,4.80,-14.40,1.00,0.00,1.00 -522,4.80,-9.60,1.00,0.00,1.00 -523,0.00,-4.80,1.00,0.00,1.00 -524,0.00,0.00,1.00,0.00,1.00 -525,-4.80,4.80,1.00,0.00,1.00 -526,-4.80,9.60,1.00,0.00,1.00 -527,-9.60,14.40,1.00,0.00,1.00 -528,-9.60,14.40,1.00,0.00,1.00 -529,-14.40,19.20,1.00,0.00,1.00 -530,-14.40,24.00,1.00,0.00,1.00 -531,-19.20,28.80,1.00,0.00,1.00 -532,-24.00,33.60,1.00,0.00,1.00 -533,-28.80,33.60,1.00,0.00,1.00 -534,-28.80,38.40,1.00,0.00,1.00 -535,-33.60,43.20,1.00,0.00,1.00 -536,-38.40,43.20,1.00,0.00,1.00 -537,-48.00,48.00,1.00,0.00,1.00 -538,-52.80,52.80,1.00,0.00,1.00 -539,-57.60,52.80,1.00,0.00,1.00 -540,-67.20,57.60,1.00,0.00,1.00 -541,-76.80,57.60,1.00,0.00,1.00 -542,-81.60,57.60,1.00,0.00,1.00 -543,-91.20,57.60,1.00,0.00,1.00 -544,-100.80,57.60,1.00,0.00,1.00 -545,-110.40,57.60,1.00,0.00,1.00 -546,-115.20,52.80,1.00,0.00,1.00 -547,-124.80,52.80,1.00,0.00,1.00 -548,-129.60,48.00,1.00,0.00,1.00 -549,-139.20,48.00,1.00,0.00,1.00 -550,-144.00,43.20,1.00,0.00,1.00 -551,-148.80,38.40,1.00,0.00,1.00 -552,-153.60,38.40,1.00,0.00,1.00 -553,-153.60,33.60,1.00,0.00,1.00 -554,-158.40,28.80,1.00,0.00,1.00 -555,-163.20,24.00,1.00,0.00,1.00 -556,-163.20,24.00,1.00,0.00,1.00 -557,-168.00,19.20,1.00,0.00,1.00 -558,-172.80,14.40,1.00,0.00,1.00 -559,-172.80,9.60,1.00,0.00,1.00 -560,-177.60,4.80,1.00,0.00,1.00 -561,-177.60,0.00,1.00,0.00,1.00 -562,177.60,-0.00,1.00,0.00,1.00 -563,177.60,-4.80,1.00,0.00,1.00 -564,172.80,-9.60,1.00,0.00,1.00 -565,172.80,-14.40,1.00,0.00,1.00 -566,168.00,-19.20,1.00,0.00,1.00 -567,163.20,-24.00,1.00,0.00,1.00 -568,163.20,-24.00,1.00,0.00,1.00 -569,158.40,-28.80,1.00,0.00,1.00 -570,153.60,-33.60,1.00,0.00,1.00 -571,153.60,-38.40,1.00,0.00,1.00 -572,148.80,-38.40,1.00,0.00,1.00 -573,144.00,-43.20,1.00,0.00,1.00 -574,139.20,-48.00,1.00,0.00,1.00 -575,129.60,-48.00,1.00,0.00,1.00 -576,124.80,-52.80,1.00,0.00,1.00 -577,115.20,-52.80,1.00,0.00,1.00 -578,110.40,-57.60,1.00,0.00,1.00 -579,100.80,-57.60,1.00,0.00,1.00 -580,91.20,-57.60,1.00,0.00,1.00 -581,81.60,-57.60,1.00,0.00,1.00 -582,76.80,-57.60,1.00,0.00,1.00 -583,67.20,-57.60,1.00,0.00,1.00 -584,57.60,-52.80,1.00,0.00,1.00 -585,52.80,-52.80,1.00,0.00,1.00 -586,48.00,-48.00,1.00,0.00,1.00 -587,38.40,-43.20,1.00,0.00,1.00 -588,33.60,-43.20,1.00,0.00,1.00 -589,28.80,-38.40,1.00,0.00,1.00 -590,28.80,-33.60,1.00,0.00,1.00 -591,24.00,-33.60,1.00,0.00,1.00 -592,19.20,-28.80,1.00,0.00,1.00 -593,14.40,-24.00,1.00,0.00,1.00 -594,14.40,-19.20,1.00,0.00,1.00 -595,9.60,-14.40,1.00,0.00,1.00 -596,9.60,-14.40,1.00,0.00,1.00 -597,4.80,-9.60,1.00,0.00,1.00 -598,4.80,-4.80,1.00,0.00,1.00 -599,0.00,0.00,1.00,0.00,1.00 -600,-4.80,4.80,1.00,0.00,1.00 -601,-4.80,9.60,1.00,0.00,1.00 -602,-9.60,9.60,1.00,0.00,1.00 -603,-9.60,14.40,1.00,0.00,1.00 -604,-14.40,19.20,1.00,0.00,1.00 -605,-19.20,24.00,1.00,0.00,1.00 -606,-24.00,24.00,1.00,0.00,1.00 -607,-24.00,28.80,1.00,0.00,1.00 -608,-28.80,33.60,1.00,0.00,1.00 -609,-33.60,38.40,1.00,0.00,1.00 -610,-38.40,38.40,1.00,0.00,1.00 -611,-43.20,43.20,1.00,0.00,1.00 -612,-48.00,43.20,1.00,0.00,1.00 -613,-52.80,48.00,1.00,0.00,1.00 -614,-62.40,48.00,1.00,0.00,1.00 -615,-67.20,52.80,1.00,0.00,1.00 -616,-76.80,52.80,1.00,0.00,1.00 -617,-86.40,52.80,1.00,0.00,1.00 -618,-91.20,52.80,1.00,0.00,1.00 -619,-100.80,52.80,1.00,0.00,1.00 -620,-105.60,52.80,1.00,0.00,1.00 -621,-115.20,48.00,1.00,0.00,1.00 -622,-120.00,48.00,1.00,0.00,1.00 -623,-129.60,48.00,1.00,0.00,1.00 -624,-134.40,43.20,1.00,0.00,1.00 -625,-139.20,43.20,1.00,0.00,1.00 -626,-144.00,38.40,1.00,0.00,1.00 -627,-148.80,33.60,1.00,0.00,1.00 -628,-153.60,33.60,1.00,0.00,1.00 -629,-158.40,28.80,1.00,0.00,1.00 -630,-158.40,24.00,1.00,0.00,1.00 -631,-163.20,19.20,1.00,0.00,1.00 -632,-168.00,19.20,1.00,0.00,1.00 -633,-168.00,14.40,1.00,0.00,1.00 -634,-172.80,9.60,1.00,0.00,1.00 -635,-177.60,4.80,1.00,0.00,1.00 -636,-177.60,0.00,1.00,0.00,1.00 -637,177.60,-0.00,1.00,0.00,1.00 -638,177.60,-4.80,1.00,0.00,1.00 -639,172.80,-9.60,1.00,0.00,1.00 -640,168.00,-14.40,1.00,0.00,1.00 -641,168.00,-19.20,1.00,0.00,1.00 -642,163.20,-19.20,1.00,0.00,1.00 -643,158.40,-24.00,1.00,0.00,1.00 -644,158.40,-28.80,1.00,0.00,1.00 -645,153.60,-33.60,1.00,0.00,1.00 -646,148.80,-33.60,1.00,0.00,1.00 -647,144.00,-38.40,1.00,0.00,1.00 -648,139.20,-43.20,1.00,0.00,1.00 -649,134.40,-43.20,1.00,0.00,1.00 -650,129.60,-48.00,1.00,0.00,1.00 -651,120.00,-48.00,1.00,0.00,1.00 -652,115.20,-48.00,1.00,0.00,1.00 -653,105.60,-52.80,1.00,0.00,1.00 -654,100.80,-52.80,1.00,0.00,1.00 -655,91.20,-52.80,1.00,0.00,1.00 -656,86.40,-52.80,1.00,0.00,1.00 -657,76.80,-52.80,1.00,0.00,1.00 -658,67.20,-52.80,1.00,0.00,1.00 -659,62.40,-48.00,1.00,0.00,1.00 -660,52.80,-48.00,1.00,0.00,1.00 -661,48.00,-43.20,1.00,0.00,1.00 -662,43.20,-43.20,1.00,0.00,1.00 -663,38.40,-38.40,1.00,0.00,1.00 -664,33.60,-38.40,1.00,0.00,1.00 -665,28.80,-33.60,1.00,0.00,1.00 -666,24.00,-28.80,1.00,0.00,1.00 -667,24.00,-24.00,1.00,0.00,1.00 -668,19.20,-24.00,1.00,0.00,1.00 -669,14.40,-19.20,1.00,0.00,1.00 -670,9.60,-14.40,1.00,0.00,1.00 -671,9.60,-9.60,1.00,0.00,1.00 -672,4.80,-9.60,1.00,0.00,1.00 -673,4.80,-4.80,1.00,0.00,1.00 -674,0.00,0.00,1.00,0.00,1.00 -675,-4.80,4.80,1.00,0.00,1.00 -676,-4.80,4.80,1.00,0.00,1.00 -677,-9.60,9.60,1.00,0.00,1.00 -678,-14.40,14.40,1.00,0.00,1.00 -679,-14.40,19.20,1.00,0.00,1.00 -680,-19.20,19.20,1.00,0.00,1.00 -681,-24.00,24.00,1.00,0.00,1.00 -682,-28.80,28.80,1.00,0.00,1.00 -683,-33.60,28.80,1.00,0.00,1.00 -684,-38.40,33.60,1.00,0.00,1.00 -685,-43.20,38.40,1.00,0.00,1.00 -686,-48.00,38.40,1.00,0.00,1.00 -687,-52.80,43.20,1.00,0.00,1.00 -688,-57.60,43.20,1.00,0.00,1.00 -689,-62.40,43.20,1.00,0.00,1.00 -690,-72.00,48.00,1.00,0.00,1.00 -691,-76.80,48.00,1.00,0.00,1.00 -692,-86.40,48.00,1.00,0.00,1.00 -693,-91.20,48.00,1.00,0.00,1.00 -694,-100.80,48.00,1.00,0.00,1.00 -695,-105.60,48.00,1.00,0.00,1.00 -696,-110.40,48.00,1.00,0.00,1.00 -697,-120.00,43.20,1.00,0.00,1.00 -698,-124.80,43.20,1.00,0.00,1.00 -699,-129.60,38.40,1.00,0.00,1.00 -700,-134.40,38.40,1.00,0.00,1.00 -701,-139.20,33.60,1.00,0.00,1.00 -702,-144.00,33.60,1.00,0.00,1.00 -703,-148.80,28.80,1.00,0.00,1.00 -704,-153.60,24.00,1.00,0.00,1.00 -705,-158.40,24.00,1.00,0.00,1.00 -706,-163.20,19.20,1.00,0.00,1.00 -707,-163.20,14.40,1.00,0.00,1.00 -708,-168.00,14.40,1.00,0.00,1.00 -709,-172.80,9.60,1.00,0.00,1.00 -710,-172.80,4.80,1.00,0.00,1.00 -711,-177.60,0.00,1.00,0.00,1.00 -712,177.60,-0.00,1.00,0.00,1.00 -713,172.80,-4.80,1.00,0.00,1.00 -714,172.80,-9.60,1.00,0.00,1.00 -715,168.00,-14.40,1.00,0.00,1.00 -716,163.20,-14.40,1.00,0.00,1.00 -717,163.20,-19.20,1.00,0.00,1.00 -718,158.40,-24.00,1.00,0.00,1.00 -719,153.60,-24.00,1.00,0.00,1.00 -720,148.80,-28.80,1.00,0.00,1.00 -721,144.00,-33.60,1.00,0.00,1.00 -722,139.20,-33.60,1.00,0.00,1.00 -723,134.40,-38.40,1.00,0.00,1.00 -724,129.60,-38.40,1.00,0.00,1.00 -725,124.80,-43.20,1.00,0.00,1.00 -726,120.00,-43.20,1.00,0.00,1.00 -727,110.40,-48.00,1.00,0.00,1.00 -728,105.60,-48.00,1.00,0.00,1.00 -729,100.80,-48.00,1.00,0.00,1.00 -730,91.20,-48.00,1.00,0.00,1.00 -731,86.40,-48.00,1.00,0.00,1.00 -732,76.80,-48.00,1.00,0.00,1.00 -733,72.00,-48.00,1.00,0.00,1.00 -734,62.40,-43.20,1.00,0.00,1.00 -735,57.60,-43.20,1.00,0.00,1.00 -736,52.80,-43.20,1.00,0.00,1.00 -737,48.00,-38.40,1.00,0.00,1.00 -738,43.20,-38.40,1.00,0.00,1.00 -739,38.40,-33.60,1.00,0.00,1.00 -740,33.60,-28.80,1.00,0.00,1.00 -741,28.80,-28.80,1.00,0.00,1.00 -742,24.00,-24.00,1.00,0.00,1.00 -743,19.20,-19.20,1.00,0.00,1.00 -744,14.40,-19.20,1.00,0.00,1.00 -745,14.40,-14.40,1.00,0.00,1.00 -746,9.60,-9.60,1.00,0.00,1.00 -747,4.80,-4.80,1.00,0.00,1.00 -748,4.80,-4.80,1.00,0.00,1.00 -749,0.00,0.00,1.00,0.00,1.00 -750,-4.80,4.80,1.00,0.00,1.00 -751,-4.80,4.80,1.00,0.00,1.00 -752,-9.60,9.60,1.00,0.00,1.00 -753,-14.40,14.40,1.00,0.00,1.00 -754,-19.20,14.40,1.00,0.00,1.00 -755,-24.00,19.20,1.00,0.00,1.00 -756,-24.00,24.00,1.00,0.00,1.00 -757,-28.80,24.00,1.00,0.00,1.00 -758,-33.60,28.80,1.00,0.00,1.00 -759,-38.40,28.80,1.00,0.00,1.00 -760,-43.20,33.60,1.00,0.00,1.00 -761,-48.00,33.60,1.00,0.00,1.00 -762,-52.80,38.40,1.00,0.00,1.00 -763,-62.40,38.40,1.00,0.00,1.00 -764,-67.20,38.40,1.00,0.00,1.00 -765,-72.00,43.20,1.00,0.00,1.00 -766,-76.80,43.20,1.00,0.00,1.00 -767,-86.40,43.20,1.00,0.00,1.00 -768,-91.20,43.20,1.00,0.00,1.00 -769,-96.00,43.20,1.00,0.00,1.00 -770,-105.60,43.20,1.00,0.00,1.00 -771,-110.40,43.20,1.00,0.00,1.00 -772,-115.20,38.40,1.00,0.00,1.00 -773,-124.80,38.40,1.00,0.00,1.00 -774,-129.60,38.40,1.00,0.00,1.00 -775,-134.40,33.60,1.00,0.00,1.00 -776,-139.20,33.60,1.00,0.00,1.00 -777,-144.00,28.80,1.00,0.00,1.00 -778,-148.80,28.80,1.00,0.00,1.00 -779,-153.60,24.00,1.00,0.00,1.00 -780,-158.40,19.20,1.00,0.00,1.00 -781,-158.40,19.20,1.00,0.00,1.00 -782,-163.20,14.40,1.00,0.00,1.00 -783,-168.00,9.60,1.00,0.00,1.00 -784,-172.80,9.60,1.00,0.00,1.00 -785,-172.80,4.80,1.00,0.00,1.00 -786,-177.60,0.00,1.00,0.00,1.00 -787,177.60,-0.00,1.00,0.00,1.00 -788,172.80,-4.80,1.00,0.00,1.00 -789,172.80,-9.60,1.00,0.00,1.00 -790,168.00,-9.60,1.00,0.00,1.00 -791,163.20,-14.40,1.00,0.00,1.00 -792,158.40,-19.20,1.00,0.00,1.00 -793,158.40,-19.20,1.00,0.00,1.00 -794,153.60,-24.00,1.00,0.00,1.00 -795,148.80,-28.80,1.00,0.00,1.00 -796,144.00,-28.80,1.00,0.00,1.00 -797,139.20,-33.60,1.00,0.00,1.00 -798,134.40,-33.60,1.00,0.00,1.00 -799,129.60,-38.40,1.00,0.00,1.00 -800,124.80,-38.40,1.00,0.00,1.00 -801,115.20,-38.40,1.00,0.00,1.00 -802,110.40,-43.20,1.00,0.00,1.00 -803,105.60,-43.20,1.00,0.00,1.00 -804,96.00,-43.20,1.00,0.00,1.00 -805,91.20,-43.20,1.00,0.00,1.00 -806,86.40,-43.20,1.00,0.00,1.00 -807,76.80,-43.20,1.00,0.00,1.00 -808,72.00,-43.20,1.00,0.00,1.00 -809,67.20,-38.40,1.00,0.00,1.00 -810,62.40,-38.40,1.00,0.00,1.00 -811,52.80,-38.40,1.00,0.00,1.00 -812,48.00,-33.60,1.00,0.00,1.00 -813,43.20,-33.60,1.00,0.00,1.00 -814,38.40,-28.80,1.00,0.00,1.00 -815,33.60,-28.80,1.00,0.00,1.00 -816,28.80,-24.00,1.00,0.00,1.00 -817,24.00,-24.00,1.00,0.00,1.00 -818,24.00,-19.20,1.00,0.00,1.00 -819,19.20,-14.40,1.00,0.00,1.00 -820,14.40,-14.40,1.00,0.00,1.00 -821,9.60,-9.60,1.00,0.00,1.00 -822,4.80,-4.80,1.00,0.00,1.00 -823,4.80,-4.80,1.00,0.00,1.00 -824,0.00,0.00,1.00,0.00,1.00 -825,-4.80,4.80,1.00,0.00,1.00 -826,-9.60,4.80,1.00,0.00,1.00 -827,-9.60,9.60,1.00,0.00,1.00 -828,-14.40,9.60,1.00,0.00,1.00 -829,-19.20,14.40,1.00,0.00,1.00 -830,-24.00,19.20,1.00,0.00,1.00 -831,-28.80,19.20,1.00,0.00,1.00 -832,-33.60,24.00,1.00,0.00,1.00 -833,-38.40,24.00,1.00,0.00,1.00 -834,-43.20,28.80,1.00,0.00,1.00 -835,-48.00,28.80,1.00,0.00,1.00 -836,-52.80,33.60,1.00,0.00,1.00 -837,-57.60,33.60,1.00,0.00,1.00 -838,-62.40,33.60,1.00,0.00,1.00 -839,-67.20,38.40,1.00,0.00,1.00 -840,-72.00,38.40,1.00,0.00,1.00 -841,-81.60,38.40,1.00,0.00,1.00 -842,-86.40,38.40,1.00,0.00,1.00 -843,-91.20,38.40,1.00,0.00,1.00 -844,-96.00,38.40,1.00,0.00,1.00 -845,-105.60,38.40,1.00,0.00,1.00 -846,-110.40,38.40,1.00,0.00,1.00 -847,-115.20,33.60,1.00,0.00,1.00 -848,-120.00,33.60,1.00,0.00,1.00 -849,-124.80,33.60,1.00,0.00,1.00 -850,-129.60,28.80,1.00,0.00,1.00 -851,-134.40,28.80,1.00,0.00,1.00 -852,-139.20,24.00,1.00,0.00,1.00 -853,-144.00,24.00,1.00,0.00,1.00 -854,-148.80,19.20,1.00,0.00,1.00 -855,-153.60,19.20,1.00,0.00,1.00 -856,-158.40,14.40,1.00,0.00,1.00 -857,-163.20,14.40,1.00,0.00,1.00 -858,-168.00,9.60,1.00,0.00,1.00 -859,-172.80,9.60,1.00,0.00,1.00 -860,-172.80,4.80,1.00,0.00,1.00 -861,-177.60,0.00,1.00,0.00,1.00 -862,177.60,-0.00,1.00,0.00,1.00 -863,172.80,-4.80,1.00,0.00,1.00 -864,172.80,-9.60,1.00,0.00,1.00 -865,168.00,-9.60,1.00,0.00,1.00 -866,163.20,-14.40,1.00,0.00,1.00 -867,158.40,-14.40,1.00,0.00,1.00 -868,153.60,-19.20,1.00,0.00,1.00 -869,148.80,-19.20,1.00,0.00,1.00 -870,144.00,-24.00,1.00,0.00,1.00 -871,139.20,-24.00,1.00,0.00,1.00 -872,134.40,-28.80,1.00,0.00,1.00 -873,129.60,-28.80,1.00,0.00,1.00 -874,124.80,-33.60,1.00,0.00,1.00 -875,120.00,-33.60,1.00,0.00,1.00 -876,115.20,-33.60,1.00,0.00,1.00 -877,110.40,-38.40,1.00,0.00,1.00 -878,105.60,-38.40,1.00,0.00,1.00 -879,96.00,-38.40,1.00,0.00,1.00 -880,91.20,-38.40,1.00,0.00,1.00 -881,86.40,-38.40,1.00,0.00,1.00 -882,81.60,-38.40,1.00,0.00,1.00 -883,72.00,-38.40,1.00,0.00,1.00 -884,67.20,-38.40,1.00,0.00,1.00 -885,62.40,-33.60,1.00,0.00,1.00 -886,57.60,-33.60,1.00,0.00,1.00 -887,52.80,-33.60,1.00,0.00,1.00 -888,48.00,-28.80,1.00,0.00,1.00 -889,43.20,-28.80,1.00,0.00,1.00 -890,38.40,-24.00,1.00,0.00,1.00 -891,33.60,-24.00,1.00,0.00,1.00 -892,28.80,-19.20,1.00,0.00,1.00 -893,24.00,-19.20,1.00,0.00,1.00 -894,19.20,-14.40,1.00,0.00,1.00 -895,14.40,-9.60,1.00,0.00,1.00 -896,9.60,-9.60,1.00,0.00,1.00 -897,9.60,-4.80,1.00,0.00,1.00 -898,4.80,-4.80,1.00,0.00,1.00 -899,0.00,0.00,1.00,0.00,1.00 -900,-4.80,4.80,1.00,0.00,1.00 -901,-9.60,4.80,1.00,0.00,1.00 -902,-14.40,9.60,1.00,0.00,1.00 -903,-14.40,9.60,1.00,0.00,1.00 -904,-19.20,14.40,1.00,0.00,1.00 -905,-24.00,14.40,1.00,0.00,1.00 -906,-28.80,19.20,1.00,0.00,1.00 -907,-33.60,19.20,1.00,0.00,1.00 -908,-38.40,24.00,1.00,0.00,1.00 -909,-43.20,24.00,1.00,0.00,1.00 -910,-48.00,24.00,1.00,0.00,1.00 -911,-52.80,28.80,1.00,0.00,1.00 -912,-57.60,28.80,1.00,0.00,1.00 -913,-62.40,28.80,1.00,0.00,1.00 -914,-67.20,33.60,1.00,0.00,1.00 -915,-72.00,33.60,1.00,0.00,1.00 -916,-81.60,33.60,1.00,0.00,1.00 -917,-86.40,33.60,1.00,0.00,1.00 -918,-91.20,33.60,1.00,0.00,1.00 -919,-96.00,33.60,1.00,0.00,1.00 -920,-100.80,33.60,1.00,0.00,1.00 -921,-110.40,33.60,1.00,0.00,1.00 -922,-115.20,33.60,1.00,0.00,1.00 -923,-120.00,28.80,1.00,0.00,1.00 -924,-124.80,28.80,1.00,0.00,1.00 -925,-129.60,28.80,1.00,0.00,1.00 -926,-134.40,24.00,1.00,0.00,1.00 -927,-139.20,24.00,1.00,0.00,1.00 -928,-144.00,19.20,1.00,0.00,1.00 -929,-148.80,19.20,1.00,0.00,1.00 -930,-153.60,14.40,1.00,0.00,1.00 -931,-158.40,14.40,1.00,0.00,1.00 -932,-163.20,9.60,1.00,0.00,1.00 -933,-168.00,9.60,1.00,0.00,1.00 -934,-168.00,4.80,1.00,0.00,1.00 -935,-172.80,4.80,1.00,0.00,1.00 -936,-177.60,0.00,1.00,0.00,1.00 -937,177.60,-0.00,1.00,0.00,1.00 -938,172.80,-4.80,1.00,0.00,1.00 -939,168.00,-4.80,1.00,0.00,1.00 -940,168.00,-9.60,1.00,0.00,1.00 -941,163.20,-9.60,1.00,0.00,1.00 -942,158.40,-14.40,1.00,0.00,1.00 -943,153.60,-14.40,1.00,0.00,1.00 -944,148.80,-19.20,1.00,0.00,1.00 -945,144.00,-19.20,1.00,0.00,1.00 -946,139.20,-24.00,1.00,0.00,1.00 -947,134.40,-24.00,1.00,0.00,1.00 -948,129.60,-28.80,1.00,0.00,1.00 -949,124.80,-28.80,1.00,0.00,1.00 -950,120.00,-28.80,1.00,0.00,1.00 -951,115.20,-33.60,1.00,0.00,1.00 -952,110.40,-33.60,1.00,0.00,1.00 -953,100.80,-33.60,1.00,0.00,1.00 -954,96.00,-33.60,1.00,0.00,1.00 -955,91.20,-33.60,1.00,0.00,1.00 -956,86.40,-33.60,1.00,0.00,1.00 -957,81.60,-33.60,1.00,0.00,1.00 -958,72.00,-33.60,1.00,0.00,1.00 -959,67.20,-33.60,1.00,0.00,1.00 -960,62.40,-28.80,1.00,0.00,1.00 -961,57.60,-28.80,1.00,0.00,1.00 -962,52.80,-28.80,1.00,0.00,1.00 -963,48.00,-24.00,1.00,0.00,1.00 -964,43.20,-24.00,1.00,0.00,1.00 -965,38.40,-24.00,1.00,0.00,1.00 -966,33.60,-19.20,1.00,0.00,1.00 -967,28.80,-19.20,1.00,0.00,1.00 -968,24.00,-14.40,1.00,0.00,1.00 -969,19.20,-14.40,1.00,0.00,1.00 -970,14.40,-9.60,1.00,0.00,1.00 -971,14.40,-9.60,1.00,0.00,1.00 -972,9.60,-4.80,1.00,0.00,1.00 -973,4.80,-4.80,1.00,0.00,1.00 -974,0.00,0.00,1.00,0.00,1.00 -975,-4.80,0.00,1.00,0.00,1.00 -976,-9.60,4.80,1.00,0.00,1.00 -977,-14.40,4.80,1.00,0.00,1.00 -978,-19.20,9.60,1.00,0.00,1.00 -979,-19.20,9.60,1.00,0.00,1.00 -980,-24.00,14.40,1.00,0.00,1.00 -981,-28.80,14.40,1.00,0.00,1.00 -982,-33.60,19.20,1.00,0.00,1.00 -983,-38.40,19.20,1.00,0.00,1.00 -984,-43.20,19.20,1.00,0.00,1.00 -985,-48.00,24.00,1.00,0.00,1.00 -986,-52.80,24.00,1.00,0.00,1.00 -987,-57.60,24.00,1.00,0.00,1.00 -988,-62.40,24.00,1.00,0.00,1.00 -989,-72.00,28.80,1.00,0.00,1.00 -990,-76.80,28.80,1.00,0.00,1.00 -991,-81.60,28.80,1.00,0.00,1.00 -992,-86.40,28.80,1.00,0.00,1.00 -993,-91.20,28.80,1.00,0.00,1.00 -994,-96.00,28.80,1.00,0.00,1.00 -995,-100.80,28.80,1.00,0.00,1.00 -996,-105.60,28.80,1.00,0.00,1.00 -997,-115.20,28.80,1.00,0.00,1.00 -998,-120.00,24.00,1.00,0.00,1.00 -999,-124.80,24.00,1.00,0.00,1.00 -1000,-129.60,24.00,1.00,0.00,1.00 -1001,-134.40,24.00,1.00,0.00,1.00 -1002,-139.20,19.20,1.00,0.00,1.00 -1003,-144.00,19.20,1.00,0.00,1.00 -1004,-148.80,14.40,1.00,0.00,1.00 -1005,-153.60,14.40,1.00,0.00,1.00 -1006,-158.40,14.40,1.00,0.00,1.00 -1007,-163.20,9.60,1.00,0.00,1.00 -1008,-163.20,9.60,1.00,0.00,1.00 -1009,-168.00,4.80,1.00,0.00,1.00 -1010,-172.80,4.80,1.00,0.00,1.00 -1011,-177.60,0.00,1.00,0.00,1.00 -1012,177.60,-0.00,1.00,0.00,1.00 -1013,172.80,-4.80,1.00,0.00,1.00 -1014,168.00,-4.80,1.00,0.00,1.00 -1015,163.20,-9.60,1.00,0.00,1.00 -1016,163.20,-9.60,1.00,0.00,1.00 -1017,158.40,-14.40,1.00,0.00,1.00 -1018,153.60,-14.40,1.00,0.00,1.00 -1019,148.80,-14.40,1.00,0.00,1.00 -1020,144.00,-19.20,1.00,0.00,1.00 -1021,139.20,-19.20,1.00,0.00,1.00 -1022,134.40,-24.00,1.00,0.00,1.00 -1023,129.60,-24.00,1.00,0.00,1.00 -1024,124.80,-24.00,1.00,0.00,1.00 -1025,120.00,-24.00,1.00,0.00,1.00 -1026,115.20,-28.80,1.00,0.00,1.00 -1027,105.60,-28.80,1.00,0.00,1.00 -1028,100.80,-28.80,1.00,0.00,1.00 -1029,96.00,-28.80,1.00,0.00,1.00 -1030,91.20,-28.80,1.00,0.00,1.00 -1031,86.40,-28.80,1.00,0.00,1.00 -1032,81.60,-28.80,1.00,0.00,1.00 -1033,76.80,-28.80,1.00,0.00,1.00 -1034,72.00,-28.80,1.00,0.00,1.00 -1035,62.40,-24.00,1.00,0.00,1.00 -1036,57.60,-24.00,1.00,0.00,1.00 -1037,52.80,-24.00,1.00,0.00,1.00 -1038,48.00,-24.00,1.00,0.00,1.00 -1039,43.20,-19.20,1.00,0.00,1.00 -1040,38.40,-19.20,1.00,0.00,1.00 -1041,33.60,-19.20,1.00,0.00,1.00 -1042,28.80,-14.40,1.00,0.00,1.00 -1043,24.00,-14.40,1.00,0.00,1.00 -1044,19.20,-9.60,1.00,0.00,1.00 -1045,19.20,-9.60,1.00,0.00,1.00 -1046,14.40,-4.80,1.00,0.00,1.00 -1047,9.60,-4.80,1.00,0.00,1.00 -1048,4.80,-0.00,1.00,0.00,1.00 -1049,0.00,0.00,1.00,0.00,1.00 -1050,-4.80,0.00,1.00,0.00,1.00 -1051,-9.60,4.80,1.00,0.00,1.00 -1052,-14.40,4.80,1.00,0.00,1.00 -1053,-19.20,9.60,1.00,0.00,1.00 -1054,-24.00,9.60,1.00,0.00,1.00 -1055,-28.80,9.60,1.00,0.00,1.00 -1056,-33.60,14.40,1.00,0.00,1.00 -1057,-33.60,14.40,1.00,0.00,1.00 -1058,-38.40,14.40,1.00,0.00,1.00 -1059,-43.20,19.20,1.00,0.00,1.00 -1060,-48.00,19.20,1.00,0.00,1.00 -1061,-57.60,19.20,1.00,0.00,1.00 -1062,-62.40,19.20,1.00,0.00,1.00 -1063,-67.20,24.00,1.00,0.00,1.00 -1064,-72.00,24.00,1.00,0.00,1.00 -1065,-76.80,24.00,1.00,0.00,1.00 -1066,-81.60,24.00,1.00,0.00,1.00 -1067,-86.40,24.00,1.00,0.00,1.00 -1068,-91.20,24.00,1.00,0.00,1.00 -1069,-96.00,24.00,1.00,0.00,1.00 -1070,-100.80,24.00,1.00,0.00,1.00 -1071,-105.60,24.00,1.00,0.00,1.00 -1072,-110.40,24.00,1.00,0.00,1.00 -1073,-115.20,19.20,1.00,0.00,1.00 -1074,-120.00,19.20,1.00,0.00,1.00 -1075,-129.60,19.20,1.00,0.00,1.00 -1076,-134.40,19.20,1.00,0.00,1.00 -1077,-139.20,19.20,1.00,0.00,1.00 -1078,-144.00,14.40,1.00,0.00,1.00 -1079,-148.80,14.40,1.00,0.00,1.00 -1080,-148.80,14.40,1.00,0.00,1.00 -1081,-153.60,9.60,1.00,0.00,1.00 -1082,-158.40,9.60,1.00,0.00,1.00 -1083,-163.20,4.80,1.00,0.00,1.00 -1084,-168.00,4.80,1.00,0.00,1.00 -1085,-172.80,4.80,1.00,0.00,1.00 -1086,-177.60,0.00,1.00,0.00,1.00 -1087,177.60,-0.00,1.00,0.00,1.00 -1088,172.80,-4.80,1.00,0.00,1.00 -1089,168.00,-4.80,1.00,0.00,1.00 -1090,163.20,-4.80,1.00,0.00,1.00 -1091,158.40,-9.60,1.00,0.00,1.00 -1092,153.60,-9.60,1.00,0.00,1.00 -1093,148.80,-14.40,1.00,0.00,1.00 -1094,148.80,-14.40,1.00,0.00,1.00 -1095,144.00,-14.40,1.00,0.00,1.00 -1096,139.20,-19.20,1.00,0.00,1.00 -1097,134.40,-19.20,1.00,0.00,1.00 -1098,129.60,-19.20,1.00,0.00,1.00 -1099,120.00,-19.20,1.00,0.00,1.00 -1100,115.20,-19.20,1.00,0.00,1.00 -1101,110.40,-24.00,1.00,0.00,1.00 -1102,105.60,-24.00,1.00,0.00,1.00 -1103,100.80,-24.00,1.00,0.00,1.00 -1104,96.00,-24.00,1.00,0.00,1.00 -1105,91.20,-24.00,1.00,0.00,1.00 -1106,86.40,-24.00,1.00,0.00,1.00 -1107,81.60,-24.00,1.00,0.00,1.00 -1108,76.80,-24.00,1.00,0.00,1.00 -1109,72.00,-24.00,1.00,0.00,1.00 -1110,67.20,-24.00,1.00,0.00,1.00 -1111,62.40,-19.20,1.00,0.00,1.00 -1112,57.60,-19.20,1.00,0.00,1.00 -1113,48.00,-19.20,1.00,0.00,1.00 -1114,43.20,-19.20,1.00,0.00,1.00 -1115,38.40,-14.40,1.00,0.00,1.00 -1116,33.60,-14.40,1.00,0.00,1.00 -1117,33.60,-14.40,1.00,0.00,1.00 -1118,28.80,-9.60,1.00,0.00,1.00 -1119,24.00,-9.60,1.00,0.00,1.00 -1120,19.20,-9.60,1.00,0.00,1.00 -1121,14.40,-4.80,1.00,0.00,1.00 -1122,9.60,-4.80,1.00,0.00,1.00 -1123,4.80,-0.00,1.00,0.00,1.00 -1124,0.00,0.00,1.00,0.00,1.00 -1125,-4.80,0.00,1.00,0.00,1.00 -1126,-9.60,4.80,1.00,0.00,1.00 -1127,-14.40,4.80,1.00,0.00,1.00 -1128,-19.20,4.80,1.00,0.00,1.00 -1129,-24.00,9.60,1.00,0.00,1.00 -1130,-28.80,9.60,1.00,0.00,1.00 -1131,-33.60,9.60,1.00,0.00,1.00 -1132,-38.40,9.60,1.00,0.00,1.00 -1133,-43.20,14.40,1.00,0.00,1.00 -1134,-48.00,14.40,1.00,0.00,1.00 -1135,-52.80,14.40,1.00,0.00,1.00 -1136,-57.60,14.40,1.00,0.00,1.00 -1137,-62.40,19.20,1.00,0.00,1.00 -1138,-67.20,19.20,1.00,0.00,1.00 -1139,-72.00,19.20,1.00,0.00,1.00 -1140,-76.80,19.20,1.00,0.00,1.00 -1141,-81.60,19.20,1.00,0.00,1.00 -1142,-86.40,19.20,1.00,0.00,1.00 -1143,-91.20,19.20,1.00,0.00,1.00 -1144,-96.00,19.20,1.00,0.00,1.00 -1145,-100.80,19.20,1.00,0.00,1.00 -1146,-105.60,19.20,1.00,0.00,1.00 -1147,-110.40,19.20,1.00,0.00,1.00 -1148,-115.20,19.20,1.00,0.00,1.00 -1149,-120.00,14.40,1.00,0.00,1.00 -1150,-124.80,14.40,1.00,0.00,1.00 -1151,-129.60,14.40,1.00,0.00,1.00 -1152,-134.40,14.40,1.00,0.00,1.00 -1153,-139.20,14.40,1.00,0.00,1.00 -1154,-144.00,9.60,1.00,0.00,1.00 -1155,-148.80,9.60,1.00,0.00,1.00 -1156,-153.60,9.60,1.00,0.00,1.00 -1157,-158.40,4.80,1.00,0.00,1.00 -1158,-163.20,4.80,1.00,0.00,1.00 -1159,-168.00,4.80,1.00,0.00,1.00 -1160,-172.80,0.00,1.00,0.00,1.00 -1161,-177.60,0.00,1.00,0.00,1.00 -1162,177.60,-0.00,1.00,0.00,1.00 -1163,172.80,-0.00,1.00,0.00,1.00 -1164,168.00,-4.80,1.00,0.00,1.00 -1165,163.20,-4.80,1.00,0.00,1.00 -1166,158.40,-4.80,1.00,0.00,1.00 -1167,153.60,-9.60,1.00,0.00,1.00 -1168,148.80,-9.60,1.00,0.00,1.00 -1169,144.00,-9.60,1.00,0.00,1.00 -1170,139.20,-14.40,1.00,0.00,1.00 -1171,134.40,-14.40,1.00,0.00,1.00 -1172,129.60,-14.40,1.00,0.00,1.00 -1173,124.80,-14.40,1.00,0.00,1.00 -1174,120.00,-14.40,1.00,0.00,1.00 -1175,115.20,-19.20,1.00,0.00,1.00 -1176,110.40,-19.20,1.00,0.00,1.00 -1177,105.60,-19.20,1.00,0.00,1.00 -1178,100.80,-19.20,1.00,0.00,1.00 -1179,96.00,-19.20,1.00,0.00,1.00 -1180,91.20,-19.20,1.00,0.00,1.00 -1181,86.40,-19.20,1.00,0.00,1.00 -1182,81.60,-19.20,1.00,0.00,1.00 -1183,76.80,-19.20,1.00,0.00,1.00 -1184,72.00,-19.20,1.00,0.00,1.00 -1185,67.20,-19.20,1.00,0.00,1.00 -1186,62.40,-19.20,1.00,0.00,1.00 -1187,57.60,-14.40,1.00,0.00,1.00 -1188,52.80,-14.40,1.00,0.00,1.00 -1189,48.00,-14.40,1.00,0.00,1.00 -1190,43.20,-14.40,1.00,0.00,1.00 -1191,38.40,-9.60,1.00,0.00,1.00 -1192,33.60,-9.60,1.00,0.00,1.00 -1193,28.80,-9.60,1.00,0.00,1.00 -1194,24.00,-9.60,1.00,0.00,1.00 -1195,19.20,-4.80,1.00,0.00,1.00 -1196,14.40,-4.80,1.00,0.00,1.00 -1197,9.60,-4.80,1.00,0.00,1.00 -1198,4.80,-0.00,1.00,0.00,1.00 -1199,0.00,0.00,1.00,0.00,1.00 -1200,-4.80,0.00,1.00,0.00,1.00 -1201,-9.60,0.00,1.00,0.00,1.00 -1202,-14.40,4.80,1.00,0.00,1.00 -1203,-19.20,4.80,1.00,0.00,1.00 -1204,-24.00,4.80,1.00,0.00,1.00 -1205,-28.80,4.80,1.00,0.00,1.00 -1206,-33.60,9.60,1.00,0.00,1.00 -1207,-38.40,9.60,1.00,0.00,1.00 -1208,-43.20,9.60,1.00,0.00,1.00 -1209,-48.00,9.60,1.00,0.00,1.00 -1210,-52.80,9.60,1.00,0.00,1.00 -1211,-57.60,14.40,1.00,0.00,1.00 -1212,-62.40,14.40,1.00,0.00,1.00 -1213,-67.20,14.40,1.00,0.00,1.00 -1214,-72.00,14.40,1.00,0.00,1.00 -1215,-76.80,14.40,1.00,0.00,1.00 -1216,-81.60,14.40,1.00,0.00,1.00 -1217,-86.40,14.40,1.00,0.00,1.00 -1218,-91.20,14.40,1.00,0.00,1.00 -1219,-96.00,14.40,1.00,0.00,1.00 -1220,-100.80,14.40,1.00,0.00,1.00 -1221,-105.60,14.40,1.00,0.00,1.00 -1222,-110.40,14.40,1.00,0.00,1.00 -1223,-115.20,14.40,1.00,0.00,1.00 -1224,-120.00,14.40,1.00,0.00,1.00 -1225,-124.80,9.60,1.00,0.00,1.00 -1226,-129.60,9.60,1.00,0.00,1.00 -1227,-134.40,9.60,1.00,0.00,1.00 -1228,-139.20,9.60,1.00,0.00,1.00 -1229,-144.00,9.60,1.00,0.00,1.00 -1230,-148.80,9.60,1.00,0.00,1.00 -1231,-153.60,4.80,1.00,0.00,1.00 -1232,-158.40,4.80,1.00,0.00,1.00 -1233,-163.20,4.80,1.00,0.00,1.00 -1234,-168.00,4.80,1.00,0.00,1.00 -1235,-172.80,0.00,1.00,0.00,1.00 -1236,-177.60,0.00,1.00,0.00,1.00 -1237,177.60,-0.00,1.00,0.00,1.00 -1238,172.80,-0.00,1.00,0.00,1.00 -1239,168.00,-4.80,1.00,0.00,1.00 -1240,163.20,-4.80,1.00,0.00,1.00 -1241,158.40,-4.80,1.00,0.00,1.00 -1242,153.60,-4.80,1.00,0.00,1.00 -1243,148.80,-9.60,1.00,0.00,1.00 -1244,144.00,-9.60,1.00,0.00,1.00 -1245,139.20,-9.60,1.00,0.00,1.00 -1246,134.40,-9.60,1.00,0.00,1.00 -1247,129.60,-9.60,1.00,0.00,1.00 -1248,124.80,-9.60,1.00,0.00,1.00 -1249,120.00,-14.40,1.00,0.00,1.00 -1250,115.20,-14.40,1.00,0.00,1.00 -1251,110.40,-14.40,1.00,0.00,1.00 -1252,105.60,-14.40,1.00,0.00,1.00 -1253,100.80,-14.40,1.00,0.00,1.00 -1254,96.00,-14.40,1.00,0.00,1.00 -1255,91.20,-14.40,1.00,0.00,1.00 -1256,86.40,-14.40,1.00,0.00,1.00 -1257,81.60,-14.40,1.00,0.00,1.00 -1258,76.80,-14.40,1.00,0.00,1.00 -1259,72.00,-14.40,1.00,0.00,1.00 -1260,67.20,-14.40,1.00,0.00,1.00 -1261,62.40,-14.40,1.00,0.00,1.00 -1262,57.60,-14.40,1.00,0.00,1.00 -1263,52.80,-9.60,1.00,0.00,1.00 -1264,48.00,-9.60,1.00,0.00,1.00 -1265,43.20,-9.60,1.00,0.00,1.00 -1266,38.40,-9.60,1.00,0.00,1.00 -1267,33.60,-9.60,1.00,0.00,1.00 -1268,28.80,-4.80,1.00,0.00,1.00 -1269,24.00,-4.80,1.00,0.00,1.00 -1270,19.20,-4.80,1.00,0.00,1.00 -1271,14.40,-4.80,1.00,0.00,1.00 -1272,9.60,-0.00,1.00,0.00,1.00 -1273,4.80,-0.00,1.00,0.00,1.00 -1274,0.00,0.00,1.00,0.00,1.00 -1275,-4.80,0.00,1.00,0.00,1.00 -1276,-9.60,0.00,1.00,0.00,1.00 -1277,-14.40,0.00,1.00,0.00,1.00 -1278,-19.20,4.80,1.00,0.00,1.00 -1279,-24.00,4.80,1.00,0.00,1.00 -1280,-28.80,4.80,1.00,0.00,1.00 -1281,-33.60,4.80,1.00,0.00,1.00 -1282,-38.40,4.80,1.00,0.00,1.00 -1283,-43.20,4.80,1.00,0.00,1.00 -1284,-48.00,4.80,1.00,0.00,1.00 -1285,-52.80,9.60,1.00,0.00,1.00 -1286,-57.60,9.60,1.00,0.00,1.00 -1287,-62.40,9.60,1.00,0.00,1.00 -1288,-67.20,9.60,1.00,0.00,1.00 -1289,-72.00,9.60,1.00,0.00,1.00 -1290,-76.80,9.60,1.00,0.00,1.00 -1291,-81.60,9.60,1.00,0.00,1.00 -1292,-86.40,9.60,1.00,0.00,1.00 -1293,-91.20,9.60,1.00,0.00,1.00 -1294,-96.00,9.60,1.00,0.00,1.00 -1295,-100.80,9.60,1.00,0.00,1.00 -1296,-105.60,9.60,1.00,0.00,1.00 -1297,-110.40,9.60,1.00,0.00,1.00 -1298,-115.20,9.60,1.00,0.00,1.00 -1299,-120.00,9.60,1.00,0.00,1.00 -1300,-124.80,9.60,1.00,0.00,1.00 -1301,-129.60,9.60,1.00,0.00,1.00 -1302,-134.40,4.80,1.00,0.00,1.00 -1303,-139.20,4.80,1.00,0.00,1.00 -1304,-144.00,4.80,1.00,0.00,1.00 -1305,-148.80,4.80,1.00,0.00,1.00 -1306,-153.60,4.80,1.00,0.00,1.00 -1307,-158.40,4.80,1.00,0.00,1.00 -1308,-163.20,4.80,1.00,0.00,1.00 -1309,-168.00,0.00,1.00,0.00,1.00 -1310,-172.80,0.00,1.00,0.00,1.00 -1311,-177.60,0.00,1.00,0.00,1.00 -1312,177.60,-0.00,1.00,0.00,1.00 -1313,172.80,-0.00,1.00,0.00,1.00 -1314,168.00,-0.00,1.00,0.00,1.00 -1315,163.20,-4.80,1.00,0.00,1.00 -1316,158.40,-4.80,1.00,0.00,1.00 -1317,153.60,-4.80,1.00,0.00,1.00 -1318,148.80,-4.80,1.00,0.00,1.00 -1319,144.00,-4.80,1.00,0.00,1.00 -1320,139.20,-4.80,1.00,0.00,1.00 -1321,134.40,-4.80,1.00,0.00,1.00 -1322,129.60,-9.60,1.00,0.00,1.00 -1323,124.80,-9.60,1.00,0.00,1.00 -1324,120.00,-9.60,1.00,0.00,1.00 -1325,115.20,-9.60,1.00,0.00,1.00 -1326,110.40,-9.60,1.00,0.00,1.00 -1327,105.60,-9.60,1.00,0.00,1.00 -1328,100.80,-9.60,1.00,0.00,1.00 -1329,96.00,-9.60,1.00,0.00,1.00 -1330,91.20,-9.60,1.00,0.00,1.00 -1331,86.40,-9.60,1.00,0.00,1.00 -1332,81.60,-9.60,1.00,0.00,1.00 -1333,76.80,-9.60,1.00,0.00,1.00 -1334,72.00,-9.60,1.00,0.00,1.00 -1335,67.20,-9.60,1.00,0.00,1.00 -1336,62.40,-9.60,1.00,0.00,1.00 -1337,57.60,-9.60,1.00,0.00,1.00 -1338,52.80,-9.60,1.00,0.00,1.00 -1339,48.00,-4.80,1.00,0.00,1.00 -1340,43.20,-4.80,1.00,0.00,1.00 -1341,38.40,-4.80,1.00,0.00,1.00 -1342,33.60,-4.80,1.00,0.00,1.00 -1343,28.80,-4.80,1.00,0.00,1.00 -1344,24.00,-4.80,1.00,0.00,1.00 -1345,19.20,-4.80,1.00,0.00,1.00 -1346,14.40,-0.00,1.00,0.00,1.00 -1347,9.60,-0.00,1.00,0.00,1.00 -1348,4.80,-0.00,1.00,0.00,1.00 -1349,0.00,0.00,1.00,0.00,1.00 -1350,-4.80,0.00,1.00,0.00,1.00 -1351,-9.60,0.00,1.00,0.00,1.00 -1352,-14.40,0.00,1.00,0.00,1.00 -1353,-19.20,0.00,1.00,0.00,1.00 -1354,-24.00,0.00,1.00,0.00,1.00 -1355,-28.80,0.00,1.00,0.00,1.00 -1356,-33.60,4.80,1.00,0.00,1.00 -1357,-38.40,4.80,1.00,0.00,1.00 -1358,-43.20,4.80,1.00,0.00,1.00 -1359,-48.00,4.80,1.00,0.00,1.00 -1360,-52.80,4.80,1.00,0.00,1.00 -1361,-57.60,4.80,1.00,0.00,1.00 -1362,-62.40,4.80,1.00,0.00,1.00 -1363,-67.20,4.80,1.00,0.00,1.00 -1364,-72.00,4.80,1.00,0.00,1.00 -1365,-76.80,4.80,1.00,0.00,1.00 -1366,-81.60,4.80,1.00,0.00,1.00 -1367,-86.40,4.80,1.00,0.00,1.00 -1368,-91.20,4.80,1.00,0.00,1.00 -1369,-96.00,4.80,1.00,0.00,1.00 -1370,-100.80,4.80,1.00,0.00,1.00 -1371,-105.60,4.80,1.00,0.00,1.00 -1372,-110.40,4.80,1.00,0.00,1.00 -1373,-115.20,4.80,1.00,0.00,1.00 -1374,-120.00,4.80,1.00,0.00,1.00 -1375,-124.80,4.80,1.00,0.00,1.00 -1376,-129.60,4.80,1.00,0.00,1.00 -1377,-134.40,4.80,1.00,0.00,1.00 -1378,-139.20,4.80,1.00,0.00,1.00 -1379,-144.00,4.80,1.00,0.00,1.00 -1380,-148.80,4.80,1.00,0.00,1.00 -1381,-153.60,0.00,1.00,0.00,1.00 -1382,-158.40,0.00,1.00,0.00,1.00 -1383,-163.20,0.00,1.00,0.00,1.00 -1384,-168.00,0.00,1.00,0.00,1.00 -1385,-172.80,0.00,1.00,0.00,1.00 -1386,-177.60,0.00,1.00,0.00,1.00 -1387,177.60,-0.00,1.00,0.00,1.00 -1388,172.80,-0.00,1.00,0.00,1.00 -1389,168.00,-0.00,1.00,0.00,1.00 -1390,163.20,-0.00,1.00,0.00,1.00 -1391,158.40,-0.00,1.00,0.00,1.00 -1392,153.60,-0.00,1.00,0.00,1.00 -1393,148.80,-4.80,1.00,0.00,1.00 -1394,144.00,-4.80,1.00,0.00,1.00 -1395,139.20,-4.80,1.00,0.00,1.00 -1396,134.40,-4.80,1.00,0.00,1.00 -1397,129.60,-4.80,1.00,0.00,1.00 -1398,124.80,-4.80,1.00,0.00,1.00 -1399,120.00,-4.80,1.00,0.00,1.00 -1400,115.20,-4.80,1.00,0.00,1.00 -1401,110.40,-4.80,1.00,0.00,1.00 -1402,105.60,-4.80,1.00,0.00,1.00 -1403,100.80,-4.80,1.00,0.00,1.00 -1404,96.00,-4.80,1.00,0.00,1.00 -1405,91.20,-4.80,1.00,0.00,1.00 -1406,86.40,-4.80,1.00,0.00,1.00 -1407,81.60,-4.80,1.00,0.00,1.00 -1408,76.80,-4.80,1.00,0.00,1.00 -1409,72.00,-4.80,1.00,0.00,1.00 -1410,67.20,-4.80,1.00,0.00,1.00 -1411,62.40,-4.80,1.00,0.00,1.00 -1412,57.60,-4.80,1.00,0.00,1.00 -1413,52.80,-4.80,1.00,0.00,1.00 -1414,48.00,-4.80,1.00,0.00,1.00 -1415,43.20,-4.80,1.00,0.00,1.00 -1416,38.40,-4.80,1.00,0.00,1.00 -1417,33.60,-4.80,1.00,0.00,1.00 -1418,28.80,-0.00,1.00,0.00,1.00 -1419,24.00,-0.00,1.00,0.00,1.00 -1420,19.20,-0.00,1.00,0.00,1.00 -1421,14.40,-0.00,1.00,0.00,1.00 -1422,9.60,-0.00,1.00,0.00,1.00 -1423,4.80,-0.00,1.00,0.00,1.00 -1424,0.00,0.00,1.00,0.00,1.00 -1425,-4.80,0.00,1.00,0.00,1.00 -1426,-9.60,0.00,1.00,0.00,1.00 -1427,-14.40,0.00,1.00,0.00,1.00 -1428,-19.20,0.00,1.00,0.00,1.00 -1429,-24.00,0.00,1.00,0.00,1.00 -1430,-28.80,0.00,1.00,0.00,1.00 -1431,-33.60,0.00,1.00,0.00,1.00 -1432,-38.40,0.00,1.00,0.00,1.00 -1433,-43.20,0.00,1.00,0.00,1.00 -1434,-48.00,0.00,1.00,0.00,1.00 -1435,-52.80,0.00,1.00,0.00,1.00 -1436,-57.60,0.00,1.00,0.00,1.00 -1437,-62.40,0.00,1.00,0.00,1.00 -1438,-67.20,0.00,1.00,0.00,1.00 -1439,-72.00,0.00,1.00,0.00,1.00 -1440,-76.80,0.00,1.00,0.00,1.00 -1441,-81.60,0.00,1.00,0.00,1.00 -1442,-86.40,0.00,1.00,0.00,1.00 -1443,-91.20,0.00,1.00,0.00,1.00 -1444,-96.00,0.00,1.00,0.00,1.00 -1445,-100.80,0.00,1.00,0.00,1.00 -1446,-105.60,0.00,1.00,0.00,1.00 -1447,-110.40,0.00,1.00,0.00,1.00 -1448,-115.20,0.00,1.00,0.00,1.00 -1449,-120.00,0.00,1.00,0.00,1.00 -1450,-124.80,0.00,1.00,0.00,1.00 -1451,-129.60,0.00,1.00,0.00,1.00 -1452,-134.40,0.00,1.00,0.00,1.00 -1453,-139.20,0.00,1.00,0.00,1.00 -1454,-144.00,0.00,1.00,0.00,1.00 -1455,-148.80,0.00,1.00,0.00,1.00 -1456,-153.60,0.00,1.00,0.00,1.00 -1457,-158.40,0.00,1.00,0.00,1.00 -1458,-163.20,0.00,1.00,0.00,1.00 -1459,-168.00,0.00,1.00,0.00,1.00 -1460,-172.80,0.00,1.00,0.00,1.00 -1461,-177.60,0.00,1.00,0.00,1.00 -1462,177.60,0.00,1.00,0.00,1.00 -1463,172.80,0.00,1.00,0.00,1.00 -1464,168.00,0.00,1.00,0.00,1.00 -1465,163.20,0.00,1.00,0.00,1.00 -1466,158.40,0.00,1.00,0.00,1.00 -1467,153.60,0.00,1.00,0.00,1.00 -1468,148.80,0.00,1.00,0.00,1.00 -1469,144.00,0.00,1.00,0.00,1.00 -1470,139.20,0.00,1.00,0.00,1.00 -1471,134.40,0.00,1.00,0.00,1.00 -1472,129.60,0.00,1.00,0.00,1.00 -1473,124.80,0.00,1.00,0.00,1.00 -1474,120.00,0.00,1.00,0.00,1.00 -1475,115.20,0.00,1.00,0.00,1.00 -1476,110.40,0.00,1.00,0.00,1.00 -1477,105.60,0.00,1.00,0.00,1.00 -1478,100.80,0.00,1.00,0.00,1.00 -1479,96.00,0.00,1.00,0.00,1.00 -1480,91.20,0.00,1.00,0.00,1.00 -1481,86.40,0.00,1.00,0.00,1.00 -1482,81.60,0.00,1.00,0.00,1.00 -1483,76.80,0.00,1.00,0.00,1.00 -1484,72.00,0.00,1.00,0.00,1.00 -1485,67.20,0.00,1.00,0.00,1.00 -1486,62.40,0.00,1.00,0.00,1.00 -1487,57.60,0.00,1.00,0.00,1.00 -1488,52.80,0.00,1.00,0.00,1.00 -1489,48.00,0.00,1.00,0.00,1.00 -1490,43.20,0.00,1.00,0.00,1.00 -1491,38.40,0.00,1.00,0.00,1.00 -1492,33.60,0.00,1.00,0.00,1.00 -1493,28.80,0.00,1.00,0.00,1.00 -1494,24.00,0.00,1.00,0.00,1.00 -1495,19.20,0.00,1.00,0.00,1.00 -1496,14.40,0.00,1.00,0.00,1.00 -1497,9.60,0.00,1.00,0.00,1.00 -1498,4.80,0.00,1.00,0.00,1.00 -1499,0.00,0.00,1.00,0.00,1.00 diff --git a/scripts/testv/stvISM3.csv b/scripts/testv/stvISM3.csv index 6b57caab12..e69de29bb2 100644 --- a/scripts/testv/stvISM3.csv +++ b/scripts/testv/stvISM3.csv @@ -1,1500 +0,0 @@ -0,0.00,0.00,1.00,0.00,1.00 -1,-177.60,-4.80,1.00,0.00,1.00 -2,4.80,4.80,1.00,0.00,1.00 -3,-168.00,-9.60,1.00,0.00,1.00 -4,14.40,14.40,1.00,0.00,1.00 -5,-163.20,-14.40,1.00,0.00,1.00 -6,19.20,19.20,1.00,0.00,1.00 -7,-153.60,-24.00,1.00,0.00,1.00 -8,28.80,24.00,1.00,0.00,1.00 -9,-148.80,-28.80,1.00,0.00,1.00 -10,38.40,33.60,1.00,0.00,1.00 -11,-139.20,-33.60,1.00,0.00,1.00 -12,48.00,38.40,1.00,0.00,1.00 -13,-124.80,-38.40,1.00,0.00,1.00 -14,57.60,38.40,1.00,0.00,1.00 -15,-115.20,-43.20,1.00,0.00,1.00 -16,72.00,43.20,1.00,0.00,1.00 -17,-100.80,-43.20,1.00,0.00,1.00 -18,86.40,43.20,1.00,0.00,1.00 -19,-86.40,-43.20,1.00,0.00,1.00 -20,100.80,43.20,1.00,0.00,1.00 -21,-76.80,-43.20,1.00,0.00,1.00 -22,110.40,43.20,1.00,0.00,1.00 -23,-62.40,-43.20,1.00,0.00,1.00 -24,124.80,38.40,1.00,0.00,1.00 -25,-52.80,-38.40,1.00,0.00,1.00 -26,134.40,33.60,1.00,0.00,1.00 -27,-38.40,-33.60,1.00,0.00,1.00 -28,144.00,28.80,1.00,0.00,1.00 -29,-33.60,-28.80,1.00,0.00,1.00 -30,153.60,24.00,1.00,0.00,1.00 -31,-24.00,-19.20,1.00,0.00,1.00 -32,158.40,19.20,1.00,0.00,1.00 -33,-14.40,-14.40,1.00,0.00,1.00 -34,168.00,9.60,1.00,0.00,1.00 -35,-9.60,-9.60,1.00,0.00,1.00 -36,172.80,4.80,1.00,0.00,1.00 -37,-0.00,-0.00,1.00,0.00,1.00 -38,-177.60,-0.00,1.00,0.00,1.00 -39,4.80,4.80,1.00,0.00,1.00 -40,-172.80,-9.60,1.00,0.00,1.00 -41,14.40,9.60,1.00,0.00,1.00 -42,-163.20,-14.40,1.00,0.00,1.00 -43,19.20,19.20,1.00,0.00,1.00 -44,-158.40,-19.20,1.00,0.00,1.00 -45,28.80,24.00,1.00,0.00,1.00 -46,-148.80,-28.80,1.00,0.00,1.00 -47,33.60,28.80,1.00,0.00,1.00 -48,-139.20,-33.60,1.00,0.00,1.00 -49,43.20,33.60,1.00,0.00,1.00 -50,-129.60,-38.40,1.00,0.00,1.00 -51,57.60,38.40,1.00,0.00,1.00 -52,-120.00,-43.20,1.00,0.00,1.00 -53,67.20,43.20,1.00,0.00,1.00 -54,-105.60,-43.20,1.00,0.00,1.00 -55,81.60,43.20,1.00,0.00,1.00 -56,-91.20,-43.20,1.00,0.00,1.00 -57,96.00,43.20,1.00,0.00,1.00 -58,-76.80,-43.20,1.00,0.00,1.00 -59,110.40,43.20,1.00,0.00,1.00 -60,-67.20,-43.20,1.00,0.00,1.00 -61,120.00,38.40,1.00,0.00,1.00 -62,-52.80,-38.40,1.00,0.00,1.00 -63,129.60,38.40,1.00,0.00,1.00 -64,-43.20,-33.60,1.00,0.00,1.00 -65,144.00,33.60,1.00,0.00,1.00 -66,-33.60,-28.80,1.00,0.00,1.00 -67,148.80,24.00,1.00,0.00,1.00 -68,-24.00,-24.00,1.00,0.00,1.00 -69,158.40,19.20,1.00,0.00,1.00 -70,-19.20,-14.40,1.00,0.00,1.00 -71,168.00,14.40,1.00,0.00,1.00 -72,-9.60,-9.60,1.00,0.00,1.00 -73,172.80,4.80,1.00,0.00,1.00 -74,-4.80,-4.80,1.00,0.00,1.00 -75,0.00,0.00,1.00,0.00,1.00 -76,-177.60,-4.80,1.00,0.00,1.00 -77,9.60,4.80,1.00,0.00,1.00 -78,-168.00,-9.60,1.00,0.00,1.00 -79,14.40,14.40,1.00,0.00,1.00 -80,-163.20,-14.40,1.00,0.00,1.00 -81,24.00,19.20,1.00,0.00,1.00 -82,-153.60,-19.20,1.00,0.00,1.00 -83,28.80,24.00,1.00,0.00,1.00 -84,-144.00,-24.00,1.00,0.00,1.00 -85,38.40,28.80,1.00,0.00,1.00 -86,-134.40,-28.80,1.00,0.00,1.00 -87,48.00,33.60,1.00,0.00,1.00 -88,-124.80,-33.60,1.00,0.00,1.00 -89,62.40,38.40,1.00,0.00,1.00 -90,-115.20,-38.40,1.00,0.00,1.00 -91,72.00,38.40,1.00,0.00,1.00 -92,-100.80,-38.40,1.00,0.00,1.00 -93,86.40,38.40,1.00,0.00,1.00 -94,-86.40,-38.40,1.00,0.00,1.00 -95,96.00,38.40,1.00,0.00,1.00 -96,-76.80,-38.40,1.00,0.00,1.00 -97,110.40,38.40,1.00,0.00,1.00 -98,-62.40,-38.40,1.00,0.00,1.00 -99,120.00,33.60,1.00,0.00,1.00 -100,-52.80,-33.60,1.00,0.00,1.00 -101,134.40,33.60,1.00,0.00,1.00 -102,-43.20,-28.80,1.00,0.00,1.00 -103,144.00,28.80,1.00,0.00,1.00 -104,-33.60,-24.00,1.00,0.00,1.00 -105,148.80,24.00,1.00,0.00,1.00 -106,-24.00,-19.20,1.00,0.00,1.00 -107,158.40,14.40,1.00,0.00,1.00 -108,-19.20,-14.40,1.00,0.00,1.00 -109,168.00,9.60,1.00,0.00,1.00 -110,-9.60,-9.60,1.00,0.00,1.00 -111,172.80,4.80,1.00,0.00,1.00 -112,-0.00,-0.00,1.00,0.00,1.00 -113,-177.60,-0.00,1.00,0.00,1.00 -114,4.80,4.80,1.00,0.00,1.00 -115,-172.80,-9.60,1.00,0.00,1.00 -116,14.40,9.60,1.00,0.00,1.00 -117,-163.20,-14.40,1.00,0.00,1.00 -118,19.20,14.40,1.00,0.00,1.00 -119,-153.60,-19.20,1.00,0.00,1.00 -120,28.80,24.00,1.00,0.00,1.00 -121,-148.80,-24.00,1.00,0.00,1.00 -122,38.40,28.80,1.00,0.00,1.00 -123,-139.20,-28.80,1.00,0.00,1.00 -124,48.00,33.60,1.00,0.00,1.00 -125,-124.80,-33.60,1.00,0.00,1.00 -126,57.60,33.60,1.00,0.00,1.00 -127,-115.20,-38.40,1.00,0.00,1.00 -128,72.00,38.40,1.00,0.00,1.00 -129,-105.60,-38.40,1.00,0.00,1.00 -130,81.60,38.40,1.00,0.00,1.00 -131,-91.20,-38.40,1.00,0.00,1.00 -132,96.00,38.40,1.00,0.00,1.00 -133,-76.80,-38.40,1.00,0.00,1.00 -134,105.60,38.40,1.00,0.00,1.00 -135,-67.20,-38.40,1.00,0.00,1.00 -136,120.00,38.40,1.00,0.00,1.00 -137,-57.60,-33.60,1.00,0.00,1.00 -138,129.60,33.60,1.00,0.00,1.00 -139,-43.20,-28.80,1.00,0.00,1.00 -140,139.20,28.80,1.00,0.00,1.00 -141,-33.60,-24.00,1.00,0.00,1.00 -142,148.80,24.00,1.00,0.00,1.00 -143,-28.80,-19.20,1.00,0.00,1.00 -144,158.40,19.20,1.00,0.00,1.00 -145,-19.20,-14.40,1.00,0.00,1.00 -146,163.20,14.40,1.00,0.00,1.00 -147,-9.60,-9.60,1.00,0.00,1.00 -148,172.80,4.80,1.00,0.00,1.00 -149,-4.80,-4.80,1.00,0.00,1.00 -150,0.00,0.00,1.00,0.00,1.00 -151,-177.60,-4.80,1.00,0.00,1.00 -152,9.60,4.80,1.00,0.00,1.00 -153,-168.00,-9.60,1.00,0.00,1.00 -154,14.40,9.60,1.00,0.00,1.00 -155,-158.40,-14.40,1.00,0.00,1.00 -156,24.00,14.40,1.00,0.00,1.00 -157,-153.60,-19.20,1.00,0.00,1.00 -158,33.60,19.20,1.00,0.00,1.00 -159,-144.00,-24.00,1.00,0.00,1.00 -160,43.20,24.00,1.00,0.00,1.00 -161,-134.40,-28.80,1.00,0.00,1.00 -162,52.80,28.80,1.00,0.00,1.00 -163,-124.80,-28.80,1.00,0.00,1.00 -164,62.40,33.60,1.00,0.00,1.00 -165,-110.40,-33.60,1.00,0.00,1.00 -166,72.00,33.60,1.00,0.00,1.00 -167,-100.80,-33.60,1.00,0.00,1.00 -168,86.40,33.60,1.00,0.00,1.00 -169,-86.40,-33.60,1.00,0.00,1.00 -170,96.00,33.60,1.00,0.00,1.00 -171,-76.80,-33.60,1.00,0.00,1.00 -172,110.40,33.60,1.00,0.00,1.00 -173,-67.20,-33.60,1.00,0.00,1.00 -174,120.00,33.60,1.00,0.00,1.00 -175,-52.80,-28.80,1.00,0.00,1.00 -176,129.60,28.80,1.00,0.00,1.00 -177,-43.20,-28.80,1.00,0.00,1.00 -178,139.20,24.00,1.00,0.00,1.00 -179,-33.60,-24.00,1.00,0.00,1.00 -180,148.80,19.20,1.00,0.00,1.00 -181,-24.00,-19.20,1.00,0.00,1.00 -182,158.40,14.40,1.00,0.00,1.00 -183,-19.20,-14.40,1.00,0.00,1.00 -184,168.00,9.60,1.00,0.00,1.00 -185,-9.60,-4.80,1.00,0.00,1.00 -186,172.80,4.80,1.00,0.00,1.00 -187,-0.00,-0.00,1.00,0.00,1.00 -188,-177.60,-0.00,1.00,0.00,1.00 -189,4.80,4.80,1.00,0.00,1.00 -190,-168.00,-4.80,1.00,0.00,1.00 -191,14.40,9.60,1.00,0.00,1.00 -192,-163.20,-14.40,1.00,0.00,1.00 -193,24.00,14.40,1.00,0.00,1.00 -194,-153.60,-19.20,1.00,0.00,1.00 -195,28.80,19.20,1.00,0.00,1.00 -196,-144.00,-24.00,1.00,0.00,1.00 -197,38.40,24.00,1.00,0.00,1.00 -198,-134.40,-28.80,1.00,0.00,1.00 -199,48.00,28.80,1.00,0.00,1.00 -200,-124.80,-28.80,1.00,0.00,1.00 -201,62.40,33.60,1.00,0.00,1.00 -202,-115.20,-33.60,1.00,0.00,1.00 -203,72.00,33.60,1.00,0.00,1.00 -204,-100.80,-33.60,1.00,0.00,1.00 -205,81.60,33.60,1.00,0.00,1.00 -206,-91.20,-33.60,1.00,0.00,1.00 -207,96.00,33.60,1.00,0.00,1.00 -208,-81.60,-33.60,1.00,0.00,1.00 -209,105.60,33.60,1.00,0.00,1.00 -210,-67.20,-33.60,1.00,0.00,1.00 -211,115.20,33.60,1.00,0.00,1.00 -212,-57.60,-28.80,1.00,0.00,1.00 -213,129.60,28.80,1.00,0.00,1.00 -214,-48.00,-28.80,1.00,0.00,1.00 -215,139.20,24.00,1.00,0.00,1.00 -216,-38.40,-24.00,1.00,0.00,1.00 -217,148.80,19.20,1.00,0.00,1.00 -218,-28.80,-19.20,1.00,0.00,1.00 -219,153.60,14.40,1.00,0.00,1.00 -220,-19.20,-14.40,1.00,0.00,1.00 -221,163.20,9.60,1.00,0.00,1.00 -222,-9.60,-9.60,1.00,0.00,1.00 -223,172.80,4.80,1.00,0.00,1.00 -224,-4.80,-4.80,1.00,0.00,1.00 -225,0.00,0.00,1.00,0.00,1.00 -226,-177.60,-4.80,1.00,0.00,1.00 -227,9.60,4.80,1.00,0.00,1.00 -228,-168.00,-9.60,1.00,0.00,1.00 -229,14.40,9.60,1.00,0.00,1.00 -230,-158.40,-9.60,1.00,0.00,1.00 -231,24.00,14.40,1.00,0.00,1.00 -232,-148.80,-14.40,1.00,0.00,1.00 -233,33.60,19.20,1.00,0.00,1.00 -234,-139.20,-19.20,1.00,0.00,1.00 -235,43.20,24.00,1.00,0.00,1.00 -236,-129.60,-24.00,1.00,0.00,1.00 -237,52.80,24.00,1.00,0.00,1.00 -238,-120.00,-28.80,1.00,0.00,1.00 -239,62.40,28.80,1.00,0.00,1.00 -240,-110.40,-28.80,1.00,0.00,1.00 -241,76.80,28.80,1.00,0.00,1.00 -242,-100.80,-28.80,1.00,0.00,1.00 -243,86.40,28.80,1.00,0.00,1.00 -244,-86.40,-28.80,1.00,0.00,1.00 -245,96.00,28.80,1.00,0.00,1.00 -246,-76.80,-28.80,1.00,0.00,1.00 -247,105.60,28.80,1.00,0.00,1.00 -248,-67.20,-28.80,1.00,0.00,1.00 -249,120.00,28.80,1.00,0.00,1.00 -250,-57.60,-24.00,1.00,0.00,1.00 -251,129.60,24.00,1.00,0.00,1.00 -252,-48.00,-24.00,1.00,0.00,1.00 -253,139.20,19.20,1.00,0.00,1.00 -254,-38.40,-19.20,1.00,0.00,1.00 -255,148.80,19.20,1.00,0.00,1.00 -256,-28.80,-14.40,1.00,0.00,1.00 -257,158.40,14.40,1.00,0.00,1.00 -258,-19.20,-9.60,1.00,0.00,1.00 -259,163.20,9.60,1.00,0.00,1.00 -260,-9.60,-4.80,1.00,0.00,1.00 -261,172.80,4.80,1.00,0.00,1.00 -262,-0.00,-0.00,1.00,0.00,1.00 -263,-177.60,-0.00,1.00,0.00,1.00 -264,4.80,4.80,1.00,0.00,1.00 -265,-168.00,-4.80,1.00,0.00,1.00 -266,14.40,9.60,1.00,0.00,1.00 -267,-163.20,-9.60,1.00,0.00,1.00 -268,24.00,14.40,1.00,0.00,1.00 -269,-153.60,-14.40,1.00,0.00,1.00 -270,33.60,19.20,1.00,0.00,1.00 -271,-144.00,-19.20,1.00,0.00,1.00 -272,43.20,19.20,1.00,0.00,1.00 -273,-134.40,-24.00,1.00,0.00,1.00 -274,52.80,24.00,1.00,0.00,1.00 -275,-124.80,-24.00,1.00,0.00,1.00 -276,62.40,28.80,1.00,0.00,1.00 -277,-115.20,-28.80,1.00,0.00,1.00 -278,72.00,28.80,1.00,0.00,1.00 -279,-100.80,-28.80,1.00,0.00,1.00 -280,81.60,28.80,1.00,0.00,1.00 -281,-91.20,-28.80,1.00,0.00,1.00 -282,96.00,28.80,1.00,0.00,1.00 -283,-81.60,-28.80,1.00,0.00,1.00 -284,105.60,28.80,1.00,0.00,1.00 -285,-67.20,-28.80,1.00,0.00,1.00 -286,115.20,28.80,1.00,0.00,1.00 -287,-57.60,-28.80,1.00,0.00,1.00 -288,124.80,24.00,1.00,0.00,1.00 -289,-48.00,-24.00,1.00,0.00,1.00 -290,134.40,24.00,1.00,0.00,1.00 -291,-38.40,-19.20,1.00,0.00,1.00 -292,144.00,19.20,1.00,0.00,1.00 -293,-28.80,-14.40,1.00,0.00,1.00 -294,153.60,14.40,1.00,0.00,1.00 -295,-19.20,-9.60,1.00,0.00,1.00 -296,163.20,9.60,1.00,0.00,1.00 -297,-14.40,-9.60,1.00,0.00,1.00 -298,172.80,4.80,1.00,0.00,1.00 -299,-4.80,-4.80,1.00,0.00,1.00 -300,0.00,0.00,1.00,0.00,1.00 -301,-177.60,-0.00,1.00,0.00,1.00 -302,9.60,4.80,1.00,0.00,1.00 -303,-168.00,-4.80,1.00,0.00,1.00 -304,19.20,9.60,1.00,0.00,1.00 -305,-158.40,-9.60,1.00,0.00,1.00 -306,24.00,14.40,1.00,0.00,1.00 -307,-148.80,-14.40,1.00,0.00,1.00 -308,33.60,14.40,1.00,0.00,1.00 -309,-139.20,-19.20,1.00,0.00,1.00 -310,43.20,19.20,1.00,0.00,1.00 -311,-129.60,-19.20,1.00,0.00,1.00 -312,52.80,19.20,1.00,0.00,1.00 -313,-120.00,-24.00,1.00,0.00,1.00 -314,67.20,24.00,1.00,0.00,1.00 -315,-110.40,-24.00,1.00,0.00,1.00 -316,76.80,24.00,1.00,0.00,1.00 -317,-100.80,-24.00,1.00,0.00,1.00 -318,86.40,24.00,1.00,0.00,1.00 -319,-86.40,-24.00,1.00,0.00,1.00 -320,96.00,24.00,1.00,0.00,1.00 -321,-76.80,-24.00,1.00,0.00,1.00 -322,105.60,24.00,1.00,0.00,1.00 -323,-67.20,-24.00,1.00,0.00,1.00 -324,115.20,24.00,1.00,0.00,1.00 -325,-57.60,-24.00,1.00,0.00,1.00 -326,129.60,19.20,1.00,0.00,1.00 -327,-48.00,-19.20,1.00,0.00,1.00 -328,139.20,19.20,1.00,0.00,1.00 -329,-38.40,-14.40,1.00,0.00,1.00 -330,148.80,14.40,1.00,0.00,1.00 -331,-28.80,-14.40,1.00,0.00,1.00 -332,153.60,9.60,1.00,0.00,1.00 -333,-19.20,-9.60,1.00,0.00,1.00 -334,163.20,9.60,1.00,0.00,1.00 -335,-9.60,-4.80,1.00,0.00,1.00 -336,172.80,4.80,1.00,0.00,1.00 -337,-0.00,-0.00,1.00,0.00,1.00 -338,-177.60,-0.00,1.00,0.00,1.00 -339,4.80,4.80,1.00,0.00,1.00 -340,-168.00,-4.80,1.00,0.00,1.00 -341,14.40,9.60,1.00,0.00,1.00 -342,-158.40,-9.60,1.00,0.00,1.00 -343,24.00,9.60,1.00,0.00,1.00 -344,-153.60,-14.40,1.00,0.00,1.00 -345,33.60,14.40,1.00,0.00,1.00 -346,-144.00,-14.40,1.00,0.00,1.00 -347,43.20,19.20,1.00,0.00,1.00 -348,-134.40,-19.20,1.00,0.00,1.00 -349,52.80,19.20,1.00,0.00,1.00 -350,-124.80,-24.00,1.00,0.00,1.00 -351,62.40,24.00,1.00,0.00,1.00 -352,-110.40,-24.00,1.00,0.00,1.00 -353,72.00,24.00,1.00,0.00,1.00 -354,-100.80,-24.00,1.00,0.00,1.00 -355,81.60,24.00,1.00,0.00,1.00 -356,-91.20,-24.00,1.00,0.00,1.00 -357,96.00,24.00,1.00,0.00,1.00 -358,-81.60,-24.00,1.00,0.00,1.00 -359,105.60,24.00,1.00,0.00,1.00 -360,-72.00,-24.00,1.00,0.00,1.00 -361,115.20,24.00,1.00,0.00,1.00 -362,-57.60,-24.00,1.00,0.00,1.00 -363,124.80,19.20,1.00,0.00,1.00 -364,-48.00,-19.20,1.00,0.00,1.00 -365,134.40,19.20,1.00,0.00,1.00 -366,-38.40,-19.20,1.00,0.00,1.00 -367,144.00,14.40,1.00,0.00,1.00 -368,-28.80,-14.40,1.00,0.00,1.00 -369,153.60,14.40,1.00,0.00,1.00 -370,-24.00,-9.60,1.00,0.00,1.00 -371,163.20,9.60,1.00,0.00,1.00 -372,-14.40,-4.80,1.00,0.00,1.00 -373,172.80,4.80,1.00,0.00,1.00 -374,-4.80,-0.00,1.00,0.00,1.00 -375,0.00,0.00,1.00,0.00,1.00 -376,-177.60,-0.00,1.00,0.00,1.00 -377,9.60,4.80,1.00,0.00,1.00 -378,-168.00,-4.80,1.00,0.00,1.00 -379,19.20,4.80,1.00,0.00,1.00 -380,-158.40,-9.60,1.00,0.00,1.00 -381,28.80,9.60,1.00,0.00,1.00 -382,-148.80,-9.60,1.00,0.00,1.00 -383,38.40,14.40,1.00,0.00,1.00 -384,-139.20,-14.40,1.00,0.00,1.00 -385,48.00,14.40,1.00,0.00,1.00 -386,-129.60,-14.40,1.00,0.00,1.00 -387,57.60,19.20,1.00,0.00,1.00 -388,-120.00,-19.20,1.00,0.00,1.00 -389,67.20,19.20,1.00,0.00,1.00 -390,-110.40,-19.20,1.00,0.00,1.00 -391,76.80,19.20,1.00,0.00,1.00 -392,-100.80,-19.20,1.00,0.00,1.00 -393,86.40,19.20,1.00,0.00,1.00 -394,-86.40,-19.20,1.00,0.00,1.00 -395,96.00,19.20,1.00,0.00,1.00 -396,-76.80,-19.20,1.00,0.00,1.00 -397,105.60,19.20,1.00,0.00,1.00 -398,-67.20,-19.20,1.00,0.00,1.00 -399,115.20,19.20,1.00,0.00,1.00 -400,-57.60,-19.20,1.00,0.00,1.00 -401,124.80,19.20,1.00,0.00,1.00 -402,-48.00,-14.40,1.00,0.00,1.00 -403,134.40,14.40,1.00,0.00,1.00 -404,-38.40,-14.40,1.00,0.00,1.00 -405,144.00,14.40,1.00,0.00,1.00 -406,-28.80,-9.60,1.00,0.00,1.00 -407,153.60,9.60,1.00,0.00,1.00 -408,-19.20,-9.60,1.00,0.00,1.00 -409,163.20,4.80,1.00,0.00,1.00 -410,-9.60,-4.80,1.00,0.00,1.00 -411,172.80,4.80,1.00,0.00,1.00 -412,-0.00,-0.00,1.00,0.00,1.00 -413,-177.60,-0.00,1.00,0.00,1.00 -414,4.80,4.80,1.00,0.00,1.00 -415,-168.00,-4.80,1.00,0.00,1.00 -416,14.40,4.80,1.00,0.00,1.00 -417,-158.40,-9.60,1.00,0.00,1.00 -418,24.00,9.60,1.00,0.00,1.00 -419,-148.80,-9.60,1.00,0.00,1.00 -420,33.60,14.40,1.00,0.00,1.00 -421,-139.20,-14.40,1.00,0.00,1.00 -422,43.20,14.40,1.00,0.00,1.00 -423,-129.60,-14.40,1.00,0.00,1.00 -424,52.80,19.20,1.00,0.00,1.00 -425,-120.00,-19.20,1.00,0.00,1.00 -426,62.40,19.20,1.00,0.00,1.00 -427,-110.40,-19.20,1.00,0.00,1.00 -428,72.00,19.20,1.00,0.00,1.00 -429,-100.80,-19.20,1.00,0.00,1.00 -430,81.60,19.20,1.00,0.00,1.00 -431,-91.20,-19.20,1.00,0.00,1.00 -432,96.00,19.20,1.00,0.00,1.00 -433,-81.60,-19.20,1.00,0.00,1.00 -434,105.60,19.20,1.00,0.00,1.00 -435,-72.00,-19.20,1.00,0.00,1.00 -436,115.20,19.20,1.00,0.00,1.00 -437,-62.40,-19.20,1.00,0.00,1.00 -438,124.80,19.20,1.00,0.00,1.00 -439,-52.80,-14.40,1.00,0.00,1.00 -440,134.40,14.40,1.00,0.00,1.00 -441,-43.20,-14.40,1.00,0.00,1.00 -442,144.00,14.40,1.00,0.00,1.00 -443,-33.60,-9.60,1.00,0.00,1.00 -444,153.60,9.60,1.00,0.00,1.00 -445,-24.00,-9.60,1.00,0.00,1.00 -446,163.20,4.80,1.00,0.00,1.00 -447,-14.40,-4.80,1.00,0.00,1.00 -448,172.80,4.80,1.00,0.00,1.00 -449,-4.80,-0.00,1.00,0.00,1.00 -450,0.00,0.00,1.00,0.00,1.00 -451,-177.60,-0.00,1.00,0.00,1.00 -452,9.60,4.80,1.00,0.00,1.00 -453,-168.00,-4.80,1.00,0.00,1.00 -454,19.20,4.80,1.00,0.00,1.00 -455,-158.40,-4.80,1.00,0.00,1.00 -456,28.80,9.60,1.00,0.00,1.00 -457,-148.80,-9.60,1.00,0.00,1.00 -458,38.40,9.60,1.00,0.00,1.00 -459,-139.20,-9.60,1.00,0.00,1.00 -460,48.00,9.60,1.00,0.00,1.00 -461,-129.60,-14.40,1.00,0.00,1.00 -462,57.60,14.40,1.00,0.00,1.00 -463,-120.00,-14.40,1.00,0.00,1.00 -464,67.20,14.40,1.00,0.00,1.00 -465,-110.40,-14.40,1.00,0.00,1.00 -466,76.80,14.40,1.00,0.00,1.00 -467,-100.80,-14.40,1.00,0.00,1.00 -468,86.40,14.40,1.00,0.00,1.00 -469,-86.40,-14.40,1.00,0.00,1.00 -470,96.00,14.40,1.00,0.00,1.00 -471,-76.80,-14.40,1.00,0.00,1.00 -472,105.60,14.40,1.00,0.00,1.00 -473,-67.20,-14.40,1.00,0.00,1.00 -474,115.20,14.40,1.00,0.00,1.00 -475,-57.60,-14.40,1.00,0.00,1.00 -476,124.80,14.40,1.00,0.00,1.00 -477,-48.00,-14.40,1.00,0.00,1.00 -478,134.40,9.60,1.00,0.00,1.00 -479,-38.40,-9.60,1.00,0.00,1.00 -480,144.00,9.60,1.00,0.00,1.00 -481,-28.80,-9.60,1.00,0.00,1.00 -482,153.60,4.80,1.00,0.00,1.00 -483,-19.20,-4.80,1.00,0.00,1.00 -484,163.20,4.80,1.00,0.00,1.00 -485,-9.60,-4.80,1.00,0.00,1.00 -486,172.80,0.00,1.00,0.00,1.00 -487,-0.00,-0.00,1.00,0.00,1.00 -488,-177.60,-0.00,1.00,0.00,1.00 -489,4.80,0.00,1.00,0.00,1.00 -490,-168.00,-4.80,1.00,0.00,1.00 -491,14.40,4.80,1.00,0.00,1.00 -492,-158.40,-4.80,1.00,0.00,1.00 -493,24.00,4.80,1.00,0.00,1.00 -494,-148.80,-9.60,1.00,0.00,1.00 -495,33.60,9.60,1.00,0.00,1.00 -496,-139.20,-9.60,1.00,0.00,1.00 -497,43.20,9.60,1.00,0.00,1.00 -498,-129.60,-14.40,1.00,0.00,1.00 -499,52.80,14.40,1.00,0.00,1.00 -500,-120.00,-14.40,1.00,0.00,1.00 -501,62.40,14.40,1.00,0.00,1.00 -502,-110.40,-14.40,1.00,0.00,1.00 -503,72.00,14.40,1.00,0.00,1.00 -504,-100.80,-14.40,1.00,0.00,1.00 -505,81.60,14.40,1.00,0.00,1.00 -506,-91.20,-14.40,1.00,0.00,1.00 -507,96.00,14.40,1.00,0.00,1.00 -508,-81.60,-14.40,1.00,0.00,1.00 -509,105.60,14.40,1.00,0.00,1.00 -510,-72.00,-14.40,1.00,0.00,1.00 -511,115.20,14.40,1.00,0.00,1.00 -512,-62.40,-14.40,1.00,0.00,1.00 -513,124.80,14.40,1.00,0.00,1.00 -514,-52.80,-14.40,1.00,0.00,1.00 -515,134.40,9.60,1.00,0.00,1.00 -516,-43.20,-9.60,1.00,0.00,1.00 -517,144.00,9.60,1.00,0.00,1.00 -518,-33.60,-9.60,1.00,0.00,1.00 -519,153.60,9.60,1.00,0.00,1.00 -520,-24.00,-4.80,1.00,0.00,1.00 -521,163.20,4.80,1.00,0.00,1.00 -522,-14.40,-4.80,1.00,0.00,1.00 -523,172.80,4.80,1.00,0.00,1.00 -524,-4.80,-0.00,1.00,0.00,1.00 -525,0.00,0.00,1.00,0.00,1.00 -526,-177.60,-0.00,1.00,0.00,1.00 -527,9.60,0.00,1.00,0.00,1.00 -528,-168.00,-4.80,1.00,0.00,1.00 -529,19.20,4.80,1.00,0.00,1.00 -530,-158.40,-4.80,1.00,0.00,1.00 -531,28.80,4.80,1.00,0.00,1.00 -532,-148.80,-4.80,1.00,0.00,1.00 -533,38.40,4.80,1.00,0.00,1.00 -534,-139.20,-9.60,1.00,0.00,1.00 -535,48.00,9.60,1.00,0.00,1.00 -536,-129.60,-9.60,1.00,0.00,1.00 -537,57.60,9.60,1.00,0.00,1.00 -538,-120.00,-9.60,1.00,0.00,1.00 -539,67.20,9.60,1.00,0.00,1.00 -540,-110.40,-9.60,1.00,0.00,1.00 -541,76.80,9.60,1.00,0.00,1.00 -542,-100.80,-9.60,1.00,0.00,1.00 -543,86.40,9.60,1.00,0.00,1.00 -544,-86.40,-9.60,1.00,0.00,1.00 -545,96.00,9.60,1.00,0.00,1.00 -546,-76.80,-9.60,1.00,0.00,1.00 -547,105.60,9.60,1.00,0.00,1.00 -548,-67.20,-9.60,1.00,0.00,1.00 -549,115.20,9.60,1.00,0.00,1.00 -550,-57.60,-9.60,1.00,0.00,1.00 -551,124.80,9.60,1.00,0.00,1.00 -552,-48.00,-9.60,1.00,0.00,1.00 -553,134.40,9.60,1.00,0.00,1.00 -554,-38.40,-9.60,1.00,0.00,1.00 -555,144.00,4.80,1.00,0.00,1.00 -556,-28.80,-4.80,1.00,0.00,1.00 -557,153.60,4.80,1.00,0.00,1.00 -558,-19.20,-4.80,1.00,0.00,1.00 -559,163.20,4.80,1.00,0.00,1.00 -560,-9.60,-0.00,1.00,0.00,1.00 -561,172.80,0.00,1.00,0.00,1.00 -562,-0.00,-0.00,1.00,0.00,1.00 -563,-177.60,-0.00,1.00,0.00,1.00 -564,4.80,0.00,1.00,0.00,1.00 -565,-168.00,-0.00,1.00,0.00,1.00 -566,14.40,4.80,1.00,0.00,1.00 -567,-158.40,-4.80,1.00,0.00,1.00 -568,24.00,4.80,1.00,0.00,1.00 -569,-148.80,-4.80,1.00,0.00,1.00 -570,33.60,4.80,1.00,0.00,1.00 -571,-139.20,-9.60,1.00,0.00,1.00 -572,43.20,9.60,1.00,0.00,1.00 -573,-129.60,-9.60,1.00,0.00,1.00 -574,52.80,9.60,1.00,0.00,1.00 -575,-120.00,-9.60,1.00,0.00,1.00 -576,62.40,9.60,1.00,0.00,1.00 -577,-110.40,-9.60,1.00,0.00,1.00 -578,72.00,9.60,1.00,0.00,1.00 -579,-100.80,-9.60,1.00,0.00,1.00 -580,81.60,9.60,1.00,0.00,1.00 -581,-91.20,-9.60,1.00,0.00,1.00 -582,96.00,9.60,1.00,0.00,1.00 -583,-81.60,-9.60,1.00,0.00,1.00 -584,105.60,9.60,1.00,0.00,1.00 -585,-72.00,-9.60,1.00,0.00,1.00 -586,115.20,9.60,1.00,0.00,1.00 -587,-62.40,-9.60,1.00,0.00,1.00 -588,124.80,9.60,1.00,0.00,1.00 -589,-52.80,-9.60,1.00,0.00,1.00 -590,134.40,9.60,1.00,0.00,1.00 -591,-43.20,-9.60,1.00,0.00,1.00 -592,144.00,4.80,1.00,0.00,1.00 -593,-33.60,-4.80,1.00,0.00,1.00 -594,153.60,4.80,1.00,0.00,1.00 -595,-24.00,-4.80,1.00,0.00,1.00 -596,163.20,4.80,1.00,0.00,1.00 -597,-14.40,-4.80,1.00,0.00,1.00 -598,172.80,0.00,1.00,0.00,1.00 -599,-4.80,-0.00,1.00,0.00,1.00 -600,0.00,0.00,1.00,0.00,1.00 -601,-177.60,-0.00,1.00,0.00,1.00 -602,9.60,0.00,1.00,0.00,1.00 -603,-168.00,-0.00,1.00,0.00,1.00 -604,19.20,0.00,1.00,0.00,1.00 -605,-158.40,-4.80,1.00,0.00,1.00 -606,28.80,4.80,1.00,0.00,1.00 -607,-148.80,-4.80,1.00,0.00,1.00 -608,38.40,4.80,1.00,0.00,1.00 -609,-139.20,-4.80,1.00,0.00,1.00 -610,48.00,4.80,1.00,0.00,1.00 -611,-129.60,-4.80,1.00,0.00,1.00 -612,57.60,4.80,1.00,0.00,1.00 -613,-120.00,-4.80,1.00,0.00,1.00 -614,67.20,4.80,1.00,0.00,1.00 -615,-110.40,-4.80,1.00,0.00,1.00 -616,76.80,4.80,1.00,0.00,1.00 -617,-100.80,-4.80,1.00,0.00,1.00 -618,86.40,4.80,1.00,0.00,1.00 -619,-86.40,-4.80,1.00,0.00,1.00 -620,96.00,4.80,1.00,0.00,1.00 -621,-76.80,-4.80,1.00,0.00,1.00 -622,105.60,4.80,1.00,0.00,1.00 -623,-67.20,-4.80,1.00,0.00,1.00 -624,115.20,4.80,1.00,0.00,1.00 -625,-57.60,-4.80,1.00,0.00,1.00 -626,124.80,4.80,1.00,0.00,1.00 -627,-48.00,-4.80,1.00,0.00,1.00 -628,134.40,4.80,1.00,0.00,1.00 -629,-38.40,-4.80,1.00,0.00,1.00 -630,144.00,4.80,1.00,0.00,1.00 -631,-28.80,-4.80,1.00,0.00,1.00 -632,153.60,4.80,1.00,0.00,1.00 -633,-19.20,-4.80,1.00,0.00,1.00 -634,163.20,0.00,1.00,0.00,1.00 -635,-9.60,-0.00,1.00,0.00,1.00 -636,172.80,0.00,1.00,0.00,1.00 -637,-0.00,-0.00,1.00,0.00,1.00 -638,-177.60,-0.00,1.00,0.00,1.00 -639,4.80,0.00,1.00,0.00,1.00 -640,-168.00,-0.00,1.00,0.00,1.00 -641,14.40,0.00,1.00,0.00,1.00 -642,-158.40,-4.80,1.00,0.00,1.00 -643,24.00,4.80,1.00,0.00,1.00 -644,-148.80,-4.80,1.00,0.00,1.00 -645,33.60,4.80,1.00,0.00,1.00 -646,-139.20,-4.80,1.00,0.00,1.00 -647,43.20,4.80,1.00,0.00,1.00 -648,-129.60,-4.80,1.00,0.00,1.00 -649,52.80,4.80,1.00,0.00,1.00 -650,-120.00,-4.80,1.00,0.00,1.00 -651,62.40,4.80,1.00,0.00,1.00 -652,-110.40,-4.80,1.00,0.00,1.00 -653,72.00,4.80,1.00,0.00,1.00 -654,-100.80,-4.80,1.00,0.00,1.00 -655,81.60,4.80,1.00,0.00,1.00 -656,-91.20,-4.80,1.00,0.00,1.00 -657,96.00,4.80,1.00,0.00,1.00 -658,-81.60,-4.80,1.00,0.00,1.00 -659,105.60,4.80,1.00,0.00,1.00 -660,-72.00,-4.80,1.00,0.00,1.00 -661,115.20,4.80,1.00,0.00,1.00 -662,-62.40,-4.80,1.00,0.00,1.00 -663,124.80,4.80,1.00,0.00,1.00 -664,-52.80,-4.80,1.00,0.00,1.00 -665,134.40,4.80,1.00,0.00,1.00 -666,-43.20,-4.80,1.00,0.00,1.00 -667,144.00,4.80,1.00,0.00,1.00 -668,-33.60,-4.80,1.00,0.00,1.00 -669,153.60,4.80,1.00,0.00,1.00 -670,-24.00,-4.80,1.00,0.00,1.00 -671,163.20,0.00,1.00,0.00,1.00 -672,-14.40,-0.00,1.00,0.00,1.00 -673,172.80,0.00,1.00,0.00,1.00 -674,-4.80,-0.00,1.00,0.00,1.00 -675,0.00,0.00,1.00,0.00,1.00 -676,-177.60,-0.00,1.00,0.00,1.00 -677,9.60,0.00,1.00,0.00,1.00 -678,-168.00,-0.00,1.00,0.00,1.00 -679,19.20,0.00,1.00,0.00,1.00 -680,-158.40,-0.00,1.00,0.00,1.00 -681,28.80,0.00,1.00,0.00,1.00 -682,-148.80,-0.00,1.00,0.00,1.00 -683,38.40,0.00,1.00,0.00,1.00 -684,-139.20,-0.00,1.00,0.00,1.00 -685,48.00,0.00,1.00,0.00,1.00 -686,-129.60,-0.00,1.00,0.00,1.00 -687,57.60,0.00,1.00,0.00,1.00 -688,-120.00,-0.00,1.00,0.00,1.00 -689,67.20,0.00,1.00,0.00,1.00 -690,-110.40,-0.00,1.00,0.00,1.00 -691,76.80,0.00,1.00,0.00,1.00 -692,-100.80,-0.00,1.00,0.00,1.00 -693,86.40,0.00,1.00,0.00,1.00 -694,-86.40,-0.00,1.00,0.00,1.00 -695,96.00,0.00,1.00,0.00,1.00 -696,-76.80,-0.00,1.00,0.00,1.00 -697,105.60,0.00,1.00,0.00,1.00 -698,-67.20,-0.00,1.00,0.00,1.00 -699,115.20,0.00,1.00,0.00,1.00 -700,-57.60,-0.00,1.00,0.00,1.00 -701,124.80,0.00,1.00,0.00,1.00 -702,-48.00,-0.00,1.00,0.00,1.00 -703,134.40,0.00,1.00,0.00,1.00 -704,-38.40,-0.00,1.00,0.00,1.00 -705,144.00,0.00,1.00,0.00,1.00 -706,-28.80,-0.00,1.00,0.00,1.00 -707,153.60,0.00,1.00,0.00,1.00 -708,-19.20,-0.00,1.00,0.00,1.00 -709,163.20,0.00,1.00,0.00,1.00 -710,-9.60,-0.00,1.00,0.00,1.00 -711,172.80,0.00,1.00,0.00,1.00 -712,-0.00,-0.00,1.00,0.00,1.00 -713,-177.60,-0.00,1.00,0.00,1.00 -714,4.80,0.00,1.00,0.00,1.00 -715,-168.00,-0.00,1.00,0.00,1.00 -716,14.40,0.00,1.00,0.00,1.00 -717,-158.40,-0.00,1.00,0.00,1.00 -718,24.00,0.00,1.00,0.00,1.00 -719,-148.80,-0.00,1.00,0.00,1.00 -720,33.60,0.00,1.00,0.00,1.00 -721,-139.20,-0.00,1.00,0.00,1.00 -722,43.20,0.00,1.00,0.00,1.00 -723,-129.60,-0.00,1.00,0.00,1.00 -724,52.80,0.00,1.00,0.00,1.00 -725,-120.00,-0.00,1.00,0.00,1.00 -726,62.40,0.00,1.00,0.00,1.00 -727,-110.40,-0.00,1.00,0.00,1.00 -728,72.00,0.00,1.00,0.00,1.00 -729,-100.80,-0.00,1.00,0.00,1.00 -730,81.60,0.00,1.00,0.00,1.00 -731,-91.20,-0.00,1.00,0.00,1.00 -732,96.00,0.00,1.00,0.00,1.00 -733,-81.60,-0.00,1.00,0.00,1.00 -734,105.60,0.00,1.00,0.00,1.00 -735,-72.00,-0.00,1.00,0.00,1.00 -736,115.20,0.00,1.00,0.00,1.00 -737,-62.40,-0.00,1.00,0.00,1.00 -738,124.80,0.00,1.00,0.00,1.00 -739,-52.80,-0.00,1.00,0.00,1.00 -740,134.40,0.00,1.00,0.00,1.00 -741,-43.20,-0.00,1.00,0.00,1.00 -742,144.00,0.00,1.00,0.00,1.00 -743,-33.60,-0.00,1.00,0.00,1.00 -744,153.60,0.00,1.00,0.00,1.00 -745,-24.00,-0.00,1.00,0.00,1.00 -746,163.20,0.00,1.00,0.00,1.00 -747,-14.40,-0.00,1.00,0.00,1.00 -748,172.80,0.00,1.00,0.00,1.00 -749,-4.80,-0.00,1.00,0.00,1.00 -750,0.00,0.00,1.00,0.00,1.00 -751,-177.60,0.00,1.00,0.00,1.00 -752,9.60,-0.00,1.00,0.00,1.00 -753,-168.00,0.00,1.00,0.00,1.00 -754,19.20,-0.00,1.00,0.00,1.00 -755,-158.40,0.00,1.00,0.00,1.00 -756,28.80,-0.00,1.00,0.00,1.00 -757,-148.80,0.00,1.00,0.00,1.00 -758,38.40,-0.00,1.00,0.00,1.00 -759,-139.20,0.00,1.00,0.00,1.00 -760,48.00,-0.00,1.00,0.00,1.00 -761,-129.60,0.00,1.00,0.00,1.00 -762,57.60,-4.80,1.00,0.00,1.00 -763,-120.00,4.80,1.00,0.00,1.00 -764,67.20,-4.80,1.00,0.00,1.00 -765,-110.40,4.80,1.00,0.00,1.00 -766,76.80,-4.80,1.00,0.00,1.00 -767,-100.80,4.80,1.00,0.00,1.00 -768,86.40,-4.80,1.00,0.00,1.00 -769,-86.40,4.80,1.00,0.00,1.00 -770,96.00,-4.80,1.00,0.00,1.00 -771,-76.80,4.80,1.00,0.00,1.00 -772,105.60,-4.80,1.00,0.00,1.00 -773,-67.20,4.80,1.00,0.00,1.00 -774,115.20,-4.80,1.00,0.00,1.00 -775,-57.60,4.80,1.00,0.00,1.00 -776,124.80,-4.80,1.00,0.00,1.00 -777,-48.00,0.00,1.00,0.00,1.00 -778,134.40,-0.00,1.00,0.00,1.00 -779,-38.40,0.00,1.00,0.00,1.00 -780,144.00,-0.00,1.00,0.00,1.00 -781,-28.80,0.00,1.00,0.00,1.00 -782,153.60,-0.00,1.00,0.00,1.00 -783,-19.20,0.00,1.00,0.00,1.00 -784,163.20,-0.00,1.00,0.00,1.00 -785,-9.60,0.00,1.00,0.00,1.00 -786,172.80,-0.00,1.00,0.00,1.00 -787,-0.00,0.00,1.00,0.00,1.00 -788,-177.60,0.00,1.00,0.00,1.00 -789,4.80,-0.00,1.00,0.00,1.00 -790,-168.00,0.00,1.00,0.00,1.00 -791,14.40,-0.00,1.00,0.00,1.00 -792,-158.40,0.00,1.00,0.00,1.00 -793,24.00,-0.00,1.00,0.00,1.00 -794,-148.80,0.00,1.00,0.00,1.00 -795,33.60,-0.00,1.00,0.00,1.00 -796,-139.20,0.00,1.00,0.00,1.00 -797,43.20,-0.00,1.00,0.00,1.00 -798,-129.60,0.00,1.00,0.00,1.00 -799,52.80,-4.80,1.00,0.00,1.00 -800,-120.00,4.80,1.00,0.00,1.00 -801,62.40,-4.80,1.00,0.00,1.00 -802,-110.40,4.80,1.00,0.00,1.00 -803,72.00,-4.80,1.00,0.00,1.00 -804,-100.80,4.80,1.00,0.00,1.00 -805,81.60,-4.80,1.00,0.00,1.00 -806,-91.20,4.80,1.00,0.00,1.00 -807,96.00,-4.80,1.00,0.00,1.00 -808,-81.60,4.80,1.00,0.00,1.00 -809,105.60,-4.80,1.00,0.00,1.00 -810,-72.00,4.80,1.00,0.00,1.00 -811,115.20,-4.80,1.00,0.00,1.00 -812,-62.40,4.80,1.00,0.00,1.00 -813,124.80,-4.80,1.00,0.00,1.00 -814,-52.80,0.00,1.00,0.00,1.00 -815,134.40,-0.00,1.00,0.00,1.00 -816,-43.20,0.00,1.00,0.00,1.00 -817,144.00,-0.00,1.00,0.00,1.00 -818,-33.60,0.00,1.00,0.00,1.00 -819,153.60,-0.00,1.00,0.00,1.00 -820,-24.00,0.00,1.00,0.00,1.00 -821,163.20,-0.00,1.00,0.00,1.00 -822,-14.40,0.00,1.00,0.00,1.00 -823,172.80,-0.00,1.00,0.00,1.00 -824,-4.80,0.00,1.00,0.00,1.00 -825,0.00,0.00,1.00,0.00,1.00 -826,-177.60,0.00,1.00,0.00,1.00 -827,9.60,-0.00,1.00,0.00,1.00 -828,-168.00,0.00,1.00,0.00,1.00 -829,19.20,-4.80,1.00,0.00,1.00 -830,-158.40,4.80,1.00,0.00,1.00 -831,28.80,-4.80,1.00,0.00,1.00 -832,-148.80,4.80,1.00,0.00,1.00 -833,38.40,-4.80,1.00,0.00,1.00 -834,-139.20,4.80,1.00,0.00,1.00 -835,48.00,-4.80,1.00,0.00,1.00 -836,-129.60,4.80,1.00,0.00,1.00 -837,57.60,-4.80,1.00,0.00,1.00 -838,-120.00,4.80,1.00,0.00,1.00 -839,67.20,-4.80,1.00,0.00,1.00 -840,-110.40,9.60,1.00,0.00,1.00 -841,76.80,-9.60,1.00,0.00,1.00 -842,-100.80,9.60,1.00,0.00,1.00 -843,86.40,-9.60,1.00,0.00,1.00 -844,-86.40,9.60,1.00,0.00,1.00 -845,96.00,-9.60,1.00,0.00,1.00 -846,-76.80,9.60,1.00,0.00,1.00 -847,105.60,-9.60,1.00,0.00,1.00 -848,-67.20,9.60,1.00,0.00,1.00 -849,115.20,-4.80,1.00,0.00,1.00 -850,-57.60,4.80,1.00,0.00,1.00 -851,124.80,-4.80,1.00,0.00,1.00 -852,-48.00,4.80,1.00,0.00,1.00 -853,134.40,-4.80,1.00,0.00,1.00 -854,-38.40,4.80,1.00,0.00,1.00 -855,144.00,-4.80,1.00,0.00,1.00 -856,-28.80,4.80,1.00,0.00,1.00 -857,153.60,-4.80,1.00,0.00,1.00 -858,-19.20,4.80,1.00,0.00,1.00 -859,163.20,-0.00,1.00,0.00,1.00 -860,-9.60,0.00,1.00,0.00,1.00 -861,172.80,-0.00,1.00,0.00,1.00 -862,-0.00,0.00,1.00,0.00,1.00 -863,-177.60,0.00,1.00,0.00,1.00 -864,4.80,-0.00,1.00,0.00,1.00 -865,-168.00,0.00,1.00,0.00,1.00 -866,14.40,-0.00,1.00,0.00,1.00 -867,-158.40,4.80,1.00,0.00,1.00 -868,24.00,-4.80,1.00,0.00,1.00 -869,-148.80,4.80,1.00,0.00,1.00 -870,33.60,-4.80,1.00,0.00,1.00 -871,-139.20,4.80,1.00,0.00,1.00 -872,43.20,-4.80,1.00,0.00,1.00 -873,-129.60,4.80,1.00,0.00,1.00 -874,52.80,-4.80,1.00,0.00,1.00 -875,-120.00,4.80,1.00,0.00,1.00 -876,62.40,-4.80,1.00,0.00,1.00 -877,-110.40,9.60,1.00,0.00,1.00 -878,72.00,-9.60,1.00,0.00,1.00 -879,-100.80,9.60,1.00,0.00,1.00 -880,81.60,-9.60,1.00,0.00,1.00 -881,-91.20,9.60,1.00,0.00,1.00 -882,96.00,-9.60,1.00,0.00,1.00 -883,-81.60,9.60,1.00,0.00,1.00 -884,105.60,-9.60,1.00,0.00,1.00 -885,-72.00,9.60,1.00,0.00,1.00 -886,115.20,-4.80,1.00,0.00,1.00 -887,-62.40,4.80,1.00,0.00,1.00 -888,124.80,-4.80,1.00,0.00,1.00 -889,-52.80,4.80,1.00,0.00,1.00 -890,134.40,-4.80,1.00,0.00,1.00 -891,-43.20,4.80,1.00,0.00,1.00 -892,144.00,-4.80,1.00,0.00,1.00 -893,-33.60,4.80,1.00,0.00,1.00 -894,153.60,-4.80,1.00,0.00,1.00 -895,-24.00,4.80,1.00,0.00,1.00 -896,163.20,-4.80,1.00,0.00,1.00 -897,-14.40,0.00,1.00,0.00,1.00 -898,172.80,-0.00,1.00,0.00,1.00 -899,-4.80,0.00,1.00,0.00,1.00 -900,0.00,0.00,1.00,0.00,1.00 -901,-177.60,0.00,1.00,0.00,1.00 -902,9.60,-0.00,1.00,0.00,1.00 -903,-168.00,4.80,1.00,0.00,1.00 -904,19.20,-4.80,1.00,0.00,1.00 -905,-158.40,4.80,1.00,0.00,1.00 -906,28.80,-4.80,1.00,0.00,1.00 -907,-148.80,4.80,1.00,0.00,1.00 -908,38.40,-9.60,1.00,0.00,1.00 -909,-139.20,9.60,1.00,0.00,1.00 -910,48.00,-9.60,1.00,0.00,1.00 -911,-129.60,9.60,1.00,0.00,1.00 -912,57.60,-9.60,1.00,0.00,1.00 -913,-120.00,9.60,1.00,0.00,1.00 -914,67.20,-9.60,1.00,0.00,1.00 -915,-110.40,9.60,1.00,0.00,1.00 -916,76.80,-14.40,1.00,0.00,1.00 -917,-100.80,14.40,1.00,0.00,1.00 -918,86.40,-14.40,1.00,0.00,1.00 -919,-86.40,14.40,1.00,0.00,1.00 -920,96.00,-14.40,1.00,0.00,1.00 -921,-76.80,14.40,1.00,0.00,1.00 -922,105.60,-14.40,1.00,0.00,1.00 -923,-67.20,9.60,1.00,0.00,1.00 -924,115.20,-9.60,1.00,0.00,1.00 -925,-57.60,9.60,1.00,0.00,1.00 -926,124.80,-9.60,1.00,0.00,1.00 -927,-48.00,9.60,1.00,0.00,1.00 -928,134.40,-9.60,1.00,0.00,1.00 -929,-38.40,9.60,1.00,0.00,1.00 -930,144.00,-9.60,1.00,0.00,1.00 -931,-28.80,4.80,1.00,0.00,1.00 -932,153.60,-4.80,1.00,0.00,1.00 -933,-19.20,4.80,1.00,0.00,1.00 -934,163.20,-4.80,1.00,0.00,1.00 -935,-9.60,4.80,1.00,0.00,1.00 -936,172.80,-0.00,1.00,0.00,1.00 -937,-0.00,0.00,1.00,0.00,1.00 -938,-177.60,0.00,1.00,0.00,1.00 -939,4.80,-0.00,1.00,0.00,1.00 -940,-168.00,4.80,1.00,0.00,1.00 -941,14.40,-4.80,1.00,0.00,1.00 -942,-158.40,4.80,1.00,0.00,1.00 -943,24.00,-4.80,1.00,0.00,1.00 -944,-148.80,4.80,1.00,0.00,1.00 -945,33.60,-9.60,1.00,0.00,1.00 -946,-139.20,9.60,1.00,0.00,1.00 -947,43.20,-9.60,1.00,0.00,1.00 -948,-129.60,9.60,1.00,0.00,1.00 -949,52.80,-9.60,1.00,0.00,1.00 -950,-120.00,9.60,1.00,0.00,1.00 -951,62.40,-9.60,1.00,0.00,1.00 -952,-110.40,9.60,1.00,0.00,1.00 -953,72.00,-14.40,1.00,0.00,1.00 -954,-100.80,14.40,1.00,0.00,1.00 -955,81.60,-14.40,1.00,0.00,1.00 -956,-91.20,14.40,1.00,0.00,1.00 -957,96.00,-14.40,1.00,0.00,1.00 -958,-81.60,14.40,1.00,0.00,1.00 -959,105.60,-14.40,1.00,0.00,1.00 -960,-72.00,9.60,1.00,0.00,1.00 -961,115.20,-9.60,1.00,0.00,1.00 -962,-62.40,9.60,1.00,0.00,1.00 -963,124.80,-9.60,1.00,0.00,1.00 -964,-52.80,9.60,1.00,0.00,1.00 -965,134.40,-9.60,1.00,0.00,1.00 -966,-43.20,9.60,1.00,0.00,1.00 -967,144.00,-9.60,1.00,0.00,1.00 -968,-33.60,4.80,1.00,0.00,1.00 -969,153.60,-4.80,1.00,0.00,1.00 -970,-24.00,4.80,1.00,0.00,1.00 -971,163.20,-4.80,1.00,0.00,1.00 -972,-14.40,4.80,1.00,0.00,1.00 -973,172.80,-0.00,1.00,0.00,1.00 -974,-4.80,0.00,1.00,0.00,1.00 -975,0.00,0.00,1.00,0.00,1.00 -976,-177.60,0.00,1.00,0.00,1.00 -977,9.60,-4.80,1.00,0.00,1.00 -978,-168.00,4.80,1.00,0.00,1.00 -979,19.20,-4.80,1.00,0.00,1.00 -980,-158.40,4.80,1.00,0.00,1.00 -981,28.80,-9.60,1.00,0.00,1.00 -982,-148.80,9.60,1.00,0.00,1.00 -983,38.40,-9.60,1.00,0.00,1.00 -984,-139.20,9.60,1.00,0.00,1.00 -985,48.00,-14.40,1.00,0.00,1.00 -986,-129.60,14.40,1.00,0.00,1.00 -987,57.60,-14.40,1.00,0.00,1.00 -988,-120.00,14.40,1.00,0.00,1.00 -989,67.20,-14.40,1.00,0.00,1.00 -990,-110.40,14.40,1.00,0.00,1.00 -991,76.80,-19.20,1.00,0.00,1.00 -992,-100.80,19.20,1.00,0.00,1.00 -993,86.40,-19.20,1.00,0.00,1.00 -994,-86.40,19.20,1.00,0.00,1.00 -995,96.00,-19.20,1.00,0.00,1.00 -996,-76.80,19.20,1.00,0.00,1.00 -997,105.60,-14.40,1.00,0.00,1.00 -998,-67.20,14.40,1.00,0.00,1.00 -999,115.20,-14.40,1.00,0.00,1.00 -1000,-57.60,14.40,1.00,0.00,1.00 -1001,124.80,-14.40,1.00,0.00,1.00 -1002,-48.00,14.40,1.00,0.00,1.00 -1003,134.40,-14.40,1.00,0.00,1.00 -1004,-38.40,9.60,1.00,0.00,1.00 -1005,144.00,-9.60,1.00,0.00,1.00 -1006,-28.80,9.60,1.00,0.00,1.00 -1007,153.60,-9.60,1.00,0.00,1.00 -1008,-19.20,4.80,1.00,0.00,1.00 -1009,163.20,-4.80,1.00,0.00,1.00 -1010,-9.60,4.80,1.00,0.00,1.00 -1011,172.80,-0.00,1.00,0.00,1.00 -1012,-0.00,0.00,1.00,0.00,1.00 -1013,-177.60,0.00,1.00,0.00,1.00 -1014,4.80,-0.00,1.00,0.00,1.00 -1015,-168.00,4.80,1.00,0.00,1.00 -1016,14.40,-4.80,1.00,0.00,1.00 -1017,-158.40,4.80,1.00,0.00,1.00 -1018,24.00,-9.60,1.00,0.00,1.00 -1019,-148.80,9.60,1.00,0.00,1.00 -1020,33.60,-9.60,1.00,0.00,1.00 -1021,-139.20,9.60,1.00,0.00,1.00 -1022,43.20,-14.40,1.00,0.00,1.00 -1023,-129.60,14.40,1.00,0.00,1.00 -1024,52.80,-14.40,1.00,0.00,1.00 -1025,-120.00,14.40,1.00,0.00,1.00 -1026,62.40,-14.40,1.00,0.00,1.00 -1027,-110.40,14.40,1.00,0.00,1.00 -1028,72.00,-14.40,1.00,0.00,1.00 -1029,-100.80,19.20,1.00,0.00,1.00 -1030,81.60,-19.20,1.00,0.00,1.00 -1031,-91.20,19.20,1.00,0.00,1.00 -1032,96.00,-19.20,1.00,0.00,1.00 -1033,-81.60,19.20,1.00,0.00,1.00 -1034,105.60,-19.20,1.00,0.00,1.00 -1035,-72.00,14.40,1.00,0.00,1.00 -1036,115.20,-14.40,1.00,0.00,1.00 -1037,-62.40,14.40,1.00,0.00,1.00 -1038,124.80,-14.40,1.00,0.00,1.00 -1039,-52.80,14.40,1.00,0.00,1.00 -1040,134.40,-14.40,1.00,0.00,1.00 -1041,-43.20,9.60,1.00,0.00,1.00 -1042,144.00,-9.60,1.00,0.00,1.00 -1043,-33.60,9.60,1.00,0.00,1.00 -1044,153.60,-9.60,1.00,0.00,1.00 -1045,-24.00,4.80,1.00,0.00,1.00 -1046,163.20,-4.80,1.00,0.00,1.00 -1047,-14.40,4.80,1.00,0.00,1.00 -1048,172.80,-4.80,1.00,0.00,1.00 -1049,-4.80,0.00,1.00,0.00,1.00 -1050,0.00,0.00,1.00,0.00,1.00 -1051,-177.60,0.00,1.00,0.00,1.00 -1052,9.60,-4.80,1.00,0.00,1.00 -1053,-168.00,4.80,1.00,0.00,1.00 -1054,19.20,-4.80,1.00,0.00,1.00 -1055,-158.40,9.60,1.00,0.00,1.00 -1056,28.80,-9.60,1.00,0.00,1.00 -1057,-148.80,14.40,1.00,0.00,1.00 -1058,38.40,-14.40,1.00,0.00,1.00 -1059,-139.20,14.40,1.00,0.00,1.00 -1060,48.00,-14.40,1.00,0.00,1.00 -1061,-129.60,19.20,1.00,0.00,1.00 -1062,57.60,-19.20,1.00,0.00,1.00 -1063,-120.00,19.20,1.00,0.00,1.00 -1064,67.20,-19.20,1.00,0.00,1.00 -1065,-110.40,19.20,1.00,0.00,1.00 -1066,76.80,-19.20,1.00,0.00,1.00 -1067,-100.80,24.00,1.00,0.00,1.00 -1068,86.40,-24.00,1.00,0.00,1.00 -1069,-86.40,24.00,1.00,0.00,1.00 -1070,96.00,-24.00,1.00,0.00,1.00 -1071,-76.80,24.00,1.00,0.00,1.00 -1072,105.60,-19.20,1.00,0.00,1.00 -1073,-67.20,19.20,1.00,0.00,1.00 -1074,115.20,-19.20,1.00,0.00,1.00 -1075,-57.60,19.20,1.00,0.00,1.00 -1076,124.80,-19.20,1.00,0.00,1.00 -1077,-48.00,19.20,1.00,0.00,1.00 -1078,134.40,-14.40,1.00,0.00,1.00 -1079,-38.40,14.40,1.00,0.00,1.00 -1080,144.00,-14.40,1.00,0.00,1.00 -1081,-28.80,9.60,1.00,0.00,1.00 -1082,153.60,-9.60,1.00,0.00,1.00 -1083,-19.20,9.60,1.00,0.00,1.00 -1084,163.20,-4.80,1.00,0.00,1.00 -1085,-9.60,4.80,1.00,0.00,1.00 -1086,172.80,-4.80,1.00,0.00,1.00 -1087,-0.00,0.00,1.00,0.00,1.00 -1088,-177.60,0.00,1.00,0.00,1.00 -1089,4.80,-4.80,1.00,0.00,1.00 -1090,-168.00,4.80,1.00,0.00,1.00 -1091,14.40,-4.80,1.00,0.00,1.00 -1092,-158.40,9.60,1.00,0.00,1.00 -1093,24.00,-9.60,1.00,0.00,1.00 -1094,-148.80,9.60,1.00,0.00,1.00 -1095,33.60,-14.40,1.00,0.00,1.00 -1096,-139.20,14.40,1.00,0.00,1.00 -1097,43.20,-14.40,1.00,0.00,1.00 -1098,-129.60,19.20,1.00,0.00,1.00 -1099,52.80,-19.20,1.00,0.00,1.00 -1100,-120.00,19.20,1.00,0.00,1.00 -1101,62.40,-19.20,1.00,0.00,1.00 -1102,-110.40,19.20,1.00,0.00,1.00 -1103,72.00,-19.20,1.00,0.00,1.00 -1104,-100.80,24.00,1.00,0.00,1.00 -1105,81.60,-24.00,1.00,0.00,1.00 -1106,-91.20,24.00,1.00,0.00,1.00 -1107,96.00,-24.00,1.00,0.00,1.00 -1108,-81.60,24.00,1.00,0.00,1.00 -1109,105.60,-19.20,1.00,0.00,1.00 -1110,-72.00,19.20,1.00,0.00,1.00 -1111,115.20,-19.20,1.00,0.00,1.00 -1112,-62.40,19.20,1.00,0.00,1.00 -1113,124.80,-19.20,1.00,0.00,1.00 -1114,-52.80,19.20,1.00,0.00,1.00 -1115,134.40,-14.40,1.00,0.00,1.00 -1116,-43.20,14.40,1.00,0.00,1.00 -1117,144.00,-14.40,1.00,0.00,1.00 -1118,-33.60,14.40,1.00,0.00,1.00 -1119,153.60,-9.60,1.00,0.00,1.00 -1120,-24.00,9.60,1.00,0.00,1.00 -1121,163.20,-4.80,1.00,0.00,1.00 -1122,-14.40,4.80,1.00,0.00,1.00 -1123,172.80,-4.80,1.00,0.00,1.00 -1124,-4.80,0.00,1.00,0.00,1.00 -1125,0.00,0.00,1.00,0.00,1.00 -1126,-177.60,0.00,1.00,0.00,1.00 -1127,9.60,-4.80,1.00,0.00,1.00 -1128,-168.00,4.80,1.00,0.00,1.00 -1129,19.20,-9.60,1.00,0.00,1.00 -1130,-158.40,9.60,1.00,0.00,1.00 -1131,24.00,-14.40,1.00,0.00,1.00 -1132,-148.80,14.40,1.00,0.00,1.00 -1133,33.60,-14.40,1.00,0.00,1.00 -1134,-139.20,19.20,1.00,0.00,1.00 -1135,43.20,-19.20,1.00,0.00,1.00 -1136,-129.60,19.20,1.00,0.00,1.00 -1137,52.80,-24.00,1.00,0.00,1.00 -1138,-120.00,24.00,1.00,0.00,1.00 -1139,62.40,-24.00,1.00,0.00,1.00 -1140,-110.40,24.00,1.00,0.00,1.00 -1141,76.80,-24.00,1.00,0.00,1.00 -1142,-100.80,28.80,1.00,0.00,1.00 -1143,86.40,-28.80,1.00,0.00,1.00 -1144,-86.40,28.80,1.00,0.00,1.00 -1145,96.00,-28.80,1.00,0.00,1.00 -1146,-76.80,28.80,1.00,0.00,1.00 -1147,105.60,-24.00,1.00,0.00,1.00 -1148,-67.20,24.00,1.00,0.00,1.00 -1149,120.00,-24.00,1.00,0.00,1.00 -1150,-57.60,24.00,1.00,0.00,1.00 -1151,129.60,-24.00,1.00,0.00,1.00 -1152,-48.00,19.20,1.00,0.00,1.00 -1153,139.20,-19.20,1.00,0.00,1.00 -1154,-38.40,19.20,1.00,0.00,1.00 -1155,148.80,-14.40,1.00,0.00,1.00 -1156,-28.80,14.40,1.00,0.00,1.00 -1157,158.40,-9.60,1.00,0.00,1.00 -1158,-19.20,9.60,1.00,0.00,1.00 -1159,163.20,-9.60,1.00,0.00,1.00 -1160,-9.60,4.80,1.00,0.00,1.00 -1161,172.80,-4.80,1.00,0.00,1.00 -1162,-0.00,0.00,1.00,0.00,1.00 -1163,-177.60,0.00,1.00,0.00,1.00 -1164,4.80,-4.80,1.00,0.00,1.00 -1165,-168.00,4.80,1.00,0.00,1.00 -1166,14.40,-9.60,1.00,0.00,1.00 -1167,-158.40,9.60,1.00,0.00,1.00 -1168,24.00,-9.60,1.00,0.00,1.00 -1169,-153.60,14.40,1.00,0.00,1.00 -1170,33.60,-14.40,1.00,0.00,1.00 -1171,-144.00,19.20,1.00,0.00,1.00 -1172,43.20,-19.20,1.00,0.00,1.00 -1173,-134.40,19.20,1.00,0.00,1.00 -1174,52.80,-24.00,1.00,0.00,1.00 -1175,-124.80,24.00,1.00,0.00,1.00 -1176,62.40,-24.00,1.00,0.00,1.00 -1177,-110.40,24.00,1.00,0.00,1.00 -1178,72.00,-24.00,1.00,0.00,1.00 -1179,-100.80,28.80,1.00,0.00,1.00 -1180,81.60,-28.80,1.00,0.00,1.00 -1181,-91.20,28.80,1.00,0.00,1.00 -1182,96.00,-28.80,1.00,0.00,1.00 -1183,-81.60,28.80,1.00,0.00,1.00 -1184,105.60,-24.00,1.00,0.00,1.00 -1185,-72.00,24.00,1.00,0.00,1.00 -1186,115.20,-24.00,1.00,0.00,1.00 -1187,-57.60,24.00,1.00,0.00,1.00 -1188,124.80,-24.00,1.00,0.00,1.00 -1189,-48.00,19.20,1.00,0.00,1.00 -1190,134.40,-19.20,1.00,0.00,1.00 -1191,-38.40,19.20,1.00,0.00,1.00 -1192,144.00,-14.40,1.00,0.00,1.00 -1193,-28.80,14.40,1.00,0.00,1.00 -1194,153.60,-14.40,1.00,0.00,1.00 -1195,-24.00,9.60,1.00,0.00,1.00 -1196,163.20,-9.60,1.00,0.00,1.00 -1197,-14.40,4.80,1.00,0.00,1.00 -1198,172.80,-4.80,1.00,0.00,1.00 -1199,-4.80,0.00,1.00,0.00,1.00 -1200,0.00,0.00,1.00,0.00,1.00 -1201,-177.60,4.80,1.00,0.00,1.00 -1202,9.60,-4.80,1.00,0.00,1.00 -1203,-168.00,9.60,1.00,0.00,1.00 -1204,14.40,-9.60,1.00,0.00,1.00 -1205,-158.40,14.40,1.00,0.00,1.00 -1206,24.00,-14.40,1.00,0.00,1.00 -1207,-148.80,19.20,1.00,0.00,1.00 -1208,33.60,-19.20,1.00,0.00,1.00 -1209,-139.20,19.20,1.00,0.00,1.00 -1210,43.20,-24.00,1.00,0.00,1.00 -1211,-129.60,24.00,1.00,0.00,1.00 -1212,52.80,-28.80,1.00,0.00,1.00 -1213,-120.00,28.80,1.00,0.00,1.00 -1214,62.40,-28.80,1.00,0.00,1.00 -1215,-110.40,28.80,1.00,0.00,1.00 -1216,76.80,-28.80,1.00,0.00,1.00 -1217,-100.80,33.60,1.00,0.00,1.00 -1218,86.40,-33.60,1.00,0.00,1.00 -1219,-86.40,33.60,1.00,0.00,1.00 -1220,96.00,-33.60,1.00,0.00,1.00 -1221,-76.80,28.80,1.00,0.00,1.00 -1222,110.40,-28.80,1.00,0.00,1.00 -1223,-67.20,28.80,1.00,0.00,1.00 -1224,120.00,-28.80,1.00,0.00,1.00 -1225,-57.60,28.80,1.00,0.00,1.00 -1226,129.60,-24.00,1.00,0.00,1.00 -1227,-48.00,24.00,1.00,0.00,1.00 -1228,139.20,-24.00,1.00,0.00,1.00 -1229,-38.40,19.20,1.00,0.00,1.00 -1230,148.80,-19.20,1.00,0.00,1.00 -1231,-28.80,14.40,1.00,0.00,1.00 -1232,158.40,-14.40,1.00,0.00,1.00 -1233,-19.20,9.60,1.00,0.00,1.00 -1234,168.00,-9.60,1.00,0.00,1.00 -1235,-9.60,4.80,1.00,0.00,1.00 -1236,172.80,-4.80,1.00,0.00,1.00 -1237,-0.00,0.00,1.00,0.00,1.00 -1238,-177.60,0.00,1.00,0.00,1.00 -1239,4.80,-4.80,1.00,0.00,1.00 -1240,-168.00,4.80,1.00,0.00,1.00 -1241,14.40,-9.60,1.00,0.00,1.00 -1242,-163.20,9.60,1.00,0.00,1.00 -1243,24.00,-14.40,1.00,0.00,1.00 -1244,-153.60,14.40,1.00,0.00,1.00 -1245,33.60,-19.20,1.00,0.00,1.00 -1246,-144.00,19.20,1.00,0.00,1.00 -1247,43.20,-24.00,1.00,0.00,1.00 -1248,-134.40,24.00,1.00,0.00,1.00 -1249,52.80,-24.00,1.00,0.00,1.00 -1250,-124.80,28.80,1.00,0.00,1.00 -1251,62.40,-28.80,1.00,0.00,1.00 -1252,-115.20,28.80,1.00,0.00,1.00 -1253,72.00,-28.80,1.00,0.00,1.00 -1254,-100.80,28.80,1.00,0.00,1.00 -1255,81.60,-33.60,1.00,0.00,1.00 -1256,-91.20,33.60,1.00,0.00,1.00 -1257,96.00,-33.60,1.00,0.00,1.00 -1258,-81.60,33.60,1.00,0.00,1.00 -1259,105.60,-28.80,1.00,0.00,1.00 -1260,-67.20,28.80,1.00,0.00,1.00 -1261,115.20,-28.80,1.00,0.00,1.00 -1262,-57.60,28.80,1.00,0.00,1.00 -1263,124.80,-28.80,1.00,0.00,1.00 -1264,-48.00,24.00,1.00,0.00,1.00 -1265,134.40,-24.00,1.00,0.00,1.00 -1266,-38.40,19.20,1.00,0.00,1.00 -1267,144.00,-19.20,1.00,0.00,1.00 -1268,-28.80,19.20,1.00,0.00,1.00 -1269,153.60,-14.40,1.00,0.00,1.00 -1270,-19.20,14.40,1.00,0.00,1.00 -1271,163.20,-9.60,1.00,0.00,1.00 -1272,-14.40,9.60,1.00,0.00,1.00 -1273,172.80,-4.80,1.00,0.00,1.00 -1274,-4.80,4.80,1.00,0.00,1.00 -1275,0.00,0.00,1.00,0.00,1.00 -1276,-177.60,4.80,1.00,0.00,1.00 -1277,9.60,-4.80,1.00,0.00,1.00 -1278,-168.00,9.60,1.00,0.00,1.00 -1279,14.40,-9.60,1.00,0.00,1.00 -1280,-158.40,14.40,1.00,0.00,1.00 -1281,24.00,-14.40,1.00,0.00,1.00 -1282,-153.60,19.20,1.00,0.00,1.00 -1283,33.60,-24.00,1.00,0.00,1.00 -1284,-144.00,24.00,1.00,0.00,1.00 -1285,43.20,-24.00,1.00,0.00,1.00 -1286,-134.40,28.80,1.00,0.00,1.00 -1287,52.80,-28.80,1.00,0.00,1.00 -1288,-124.80,33.60,1.00,0.00,1.00 -1289,62.40,-33.60,1.00,0.00,1.00 -1290,-110.40,33.60,1.00,0.00,1.00 -1291,72.00,-33.60,1.00,0.00,1.00 -1292,-100.80,38.40,1.00,0.00,1.00 -1293,86.40,-38.40,1.00,0.00,1.00 -1294,-86.40,38.40,1.00,0.00,1.00 -1295,96.00,-38.40,1.00,0.00,1.00 -1296,-76.80,33.60,1.00,0.00,1.00 -1297,110.40,-33.60,1.00,0.00,1.00 -1298,-67.20,33.60,1.00,0.00,1.00 -1299,120.00,-33.60,1.00,0.00,1.00 -1300,-52.80,28.80,1.00,0.00,1.00 -1301,129.60,-28.80,1.00,0.00,1.00 -1302,-43.20,28.80,1.00,0.00,1.00 -1303,139.20,-24.00,1.00,0.00,1.00 -1304,-33.60,24.00,1.00,0.00,1.00 -1305,148.80,-19.20,1.00,0.00,1.00 -1306,-24.00,19.20,1.00,0.00,1.00 -1307,158.40,-14.40,1.00,0.00,1.00 -1308,-19.20,14.40,1.00,0.00,1.00 -1309,168.00,-9.60,1.00,0.00,1.00 -1310,-9.60,4.80,1.00,0.00,1.00 -1311,172.80,-4.80,1.00,0.00,1.00 -1312,-0.00,0.00,1.00,0.00,1.00 -1313,-177.60,0.00,1.00,0.00,1.00 -1314,4.80,-4.80,1.00,0.00,1.00 -1315,-168.00,4.80,1.00,0.00,1.00 -1316,14.40,-9.60,1.00,0.00,1.00 -1317,-163.20,14.40,1.00,0.00,1.00 -1318,24.00,-14.40,1.00,0.00,1.00 -1319,-153.60,19.20,1.00,0.00,1.00 -1320,28.80,-19.20,1.00,0.00,1.00 -1321,-144.00,24.00,1.00,0.00,1.00 -1322,38.40,-24.00,1.00,0.00,1.00 -1323,-134.40,28.80,1.00,0.00,1.00 -1324,48.00,-28.80,1.00,0.00,1.00 -1325,-124.80,28.80,1.00,0.00,1.00 -1326,57.60,-33.60,1.00,0.00,1.00 -1327,-115.20,33.60,1.00,0.00,1.00 -1328,72.00,-33.60,1.00,0.00,1.00 -1329,-105.60,33.60,1.00,0.00,1.00 -1330,81.60,-38.40,1.00,0.00,1.00 -1331,-91.20,38.40,1.00,0.00,1.00 -1332,96.00,-38.40,1.00,0.00,1.00 -1333,-81.60,38.40,1.00,0.00,1.00 -1334,105.60,-33.60,1.00,0.00,1.00 -1335,-67.20,33.60,1.00,0.00,1.00 -1336,120.00,-33.60,1.00,0.00,1.00 -1337,-57.60,33.60,1.00,0.00,1.00 -1338,129.60,-28.80,1.00,0.00,1.00 -1339,-48.00,28.80,1.00,0.00,1.00 -1340,139.20,-24.00,1.00,0.00,1.00 -1341,-38.40,24.00,1.00,0.00,1.00 -1342,148.80,-24.00,1.00,0.00,1.00 -1343,-28.80,19.20,1.00,0.00,1.00 -1344,158.40,-14.40,1.00,0.00,1.00 -1345,-19.20,14.40,1.00,0.00,1.00 -1346,163.20,-9.60,1.00,0.00,1.00 -1347,-9.60,9.60,1.00,0.00,1.00 -1348,172.80,-4.80,1.00,0.00,1.00 -1349,-4.80,4.80,1.00,0.00,1.00 -1350,0.00,0.00,1.00,0.00,1.00 -1351,-177.60,4.80,1.00,0.00,1.00 -1352,9.60,-4.80,1.00,0.00,1.00 -1353,-168.00,9.60,1.00,0.00,1.00 -1354,14.40,-14.40,1.00,0.00,1.00 -1355,-163.20,14.40,1.00,0.00,1.00 -1356,24.00,-19.20,1.00,0.00,1.00 -1357,-153.60,19.20,1.00,0.00,1.00 -1358,28.80,-24.00,1.00,0.00,1.00 -1359,-144.00,28.80,1.00,0.00,1.00 -1360,38.40,-28.80,1.00,0.00,1.00 -1361,-134.40,33.60,1.00,0.00,1.00 -1362,48.00,-33.60,1.00,0.00,1.00 -1363,-124.80,33.60,1.00,0.00,1.00 -1364,62.40,-38.40,1.00,0.00,1.00 -1365,-115.20,38.40,1.00,0.00,1.00 -1366,72.00,-38.40,1.00,0.00,1.00 -1367,-100.80,43.20,1.00,0.00,1.00 -1368,86.40,-43.20,1.00,0.00,1.00 -1369,-86.40,43.20,1.00,0.00,1.00 -1370,96.00,-43.20,1.00,0.00,1.00 -1371,-76.80,38.40,1.00,0.00,1.00 -1372,110.40,-38.40,1.00,0.00,1.00 -1373,-62.40,38.40,1.00,0.00,1.00 -1374,120.00,-38.40,1.00,0.00,1.00 -1375,-52.80,33.60,1.00,0.00,1.00 -1376,134.40,-33.60,1.00,0.00,1.00 -1377,-43.20,28.80,1.00,0.00,1.00 -1378,144.00,-28.80,1.00,0.00,1.00 -1379,-33.60,24.00,1.00,0.00,1.00 -1380,153.60,-24.00,1.00,0.00,1.00 -1381,-24.00,19.20,1.00,0.00,1.00 -1382,158.40,-19.20,1.00,0.00,1.00 -1383,-14.40,14.40,1.00,0.00,1.00 -1384,168.00,-9.60,1.00,0.00,1.00 -1385,-9.60,9.60,1.00,0.00,1.00 -1386,172.80,-4.80,1.00,0.00,1.00 -1387,-0.00,0.00,1.00,0.00,1.00 -1388,-177.60,0.00,1.00,0.00,1.00 -1389,4.80,-4.80,1.00,0.00,1.00 -1390,-172.80,9.60,1.00,0.00,1.00 -1391,14.40,-9.60,1.00,0.00,1.00 -1392,-163.20,14.40,1.00,0.00,1.00 -1393,19.20,-19.20,1.00,0.00,1.00 -1394,-153.60,19.20,1.00,0.00,1.00 -1395,28.80,-24.00,1.00,0.00,1.00 -1396,-148.80,24.00,1.00,0.00,1.00 -1397,38.40,-28.80,1.00,0.00,1.00 -1398,-139.20,28.80,1.00,0.00,1.00 -1399,48.00,-33.60,1.00,0.00,1.00 -1400,-129.60,33.60,1.00,0.00,1.00 -1401,57.60,-38.40,1.00,0.00,1.00 -1402,-115.20,38.40,1.00,0.00,1.00 -1403,67.20,-38.40,1.00,0.00,1.00 -1404,-105.60,38.40,1.00,0.00,1.00 -1405,81.60,-43.20,1.00,0.00,1.00 -1406,-91.20,43.20,1.00,0.00,1.00 -1407,96.00,-43.20,1.00,0.00,1.00 -1408,-76.80,43.20,1.00,0.00,1.00 -1409,105.60,-38.40,1.00,0.00,1.00 -1410,-67.20,38.40,1.00,0.00,1.00 -1411,120.00,-38.40,1.00,0.00,1.00 -1412,-52.80,33.60,1.00,0.00,1.00 -1413,129.60,-33.60,1.00,0.00,1.00 -1414,-43.20,33.60,1.00,0.00,1.00 -1415,139.20,-28.80,1.00,0.00,1.00 -1416,-33.60,28.80,1.00,0.00,1.00 -1417,148.80,-24.00,1.00,0.00,1.00 -1418,-28.80,19.20,1.00,0.00,1.00 -1419,158.40,-19.20,1.00,0.00,1.00 -1420,-19.20,14.40,1.00,0.00,1.00 -1421,163.20,-14.40,1.00,0.00,1.00 -1422,-9.60,9.60,1.00,0.00,1.00 -1423,172.80,-4.80,1.00,0.00,1.00 -1424,-4.80,4.80,1.00,0.00,1.00 -1425,0.00,0.00,1.00,0.00,1.00 -1426,-177.60,4.80,1.00,0.00,1.00 -1427,4.80,-4.80,1.00,0.00,1.00 -1428,-168.00,9.60,1.00,0.00,1.00 -1429,14.40,-14.40,1.00,0.00,1.00 -1430,-163.20,19.20,1.00,0.00,1.00 -1431,19.20,-19.20,1.00,0.00,1.00 -1432,-153.60,24.00,1.00,0.00,1.00 -1433,28.80,-28.80,1.00,0.00,1.00 -1434,-148.80,28.80,1.00,0.00,1.00 -1435,38.40,-33.60,1.00,0.00,1.00 -1436,-139.20,33.60,1.00,0.00,1.00 -1437,48.00,-38.40,1.00,0.00,1.00 -1438,-124.80,38.40,1.00,0.00,1.00 -1439,57.60,-43.20,1.00,0.00,1.00 -1440,-115.20,43.20,1.00,0.00,1.00 -1441,72.00,-43.20,1.00,0.00,1.00 -1442,-100.80,43.20,1.00,0.00,1.00 -1443,86.40,-48.00,1.00,0.00,1.00 -1444,-86.40,48.00,1.00,0.00,1.00 -1445,100.80,-48.00,1.00,0.00,1.00 -1446,-76.80,43.20,1.00,0.00,1.00 -1447,110.40,-43.20,1.00,0.00,1.00 -1448,-62.40,43.20,1.00,0.00,1.00 -1449,124.80,-38.40,1.00,0.00,1.00 -1450,-48.00,38.40,1.00,0.00,1.00 -1451,134.40,-38.40,1.00,0.00,1.00 -1452,-38.40,33.60,1.00,0.00,1.00 -1453,144.00,-28.80,1.00,0.00,1.00 -1454,-28.80,28.80,1.00,0.00,1.00 -1455,153.60,-24.00,1.00,0.00,1.00 -1456,-24.00,24.00,1.00,0.00,1.00 -1457,163.20,-19.20,1.00,0.00,1.00 -1458,-14.40,14.40,1.00,0.00,1.00 -1459,168.00,-14.40,1.00,0.00,1.00 -1460,-9.60,9.60,1.00,0.00,1.00 -1461,172.80,-4.80,1.00,0.00,1.00 -1462,-0.00,0.00,1.00,0.00,1.00 -1463,-177.60,0.00,1.00,0.00,1.00 -1464,4.80,-4.80,1.00,0.00,1.00 -1465,-172.80,9.60,1.00,0.00,1.00 -1466,9.60,-14.40,1.00,0.00,1.00 -1467,-163.20,14.40,1.00,0.00,1.00 -1468,19.20,-19.20,1.00,0.00,1.00 -1469,-158.40,24.00,1.00,0.00,1.00 -1470,28.80,-24.00,1.00,0.00,1.00 -1471,-148.80,28.80,1.00,0.00,1.00 -1472,33.60,-28.80,1.00,0.00,1.00 -1473,-139.20,33.60,1.00,0.00,1.00 -1474,43.20,-38.40,1.00,0.00,1.00 -1475,-129.60,38.40,1.00,0.00,1.00 -1476,57.60,-38.40,1.00,0.00,1.00 -1477,-120.00,43.20,1.00,0.00,1.00 -1478,67.20,-43.20,1.00,0.00,1.00 -1479,-105.60,43.20,1.00,0.00,1.00 -1480,81.60,-48.00,1.00,0.00,1.00 -1481,-91.20,48.00,1.00,0.00,1.00 -1482,96.00,-48.00,1.00,0.00,1.00 -1483,-76.80,43.20,1.00,0.00,1.00 -1484,110.40,-43.20,1.00,0.00,1.00 -1485,-67.20,43.20,1.00,0.00,1.00 -1486,120.00,-43.20,1.00,0.00,1.00 -1487,-52.80,38.40,1.00,0.00,1.00 -1488,134.40,-38.40,1.00,0.00,1.00 -1489,-43.20,33.60,1.00,0.00,1.00 -1490,144.00,-33.60,1.00,0.00,1.00 -1491,-33.60,28.80,1.00,0.00,1.00 -1492,153.60,-28.80,1.00,0.00,1.00 -1493,-24.00,24.00,1.00,0.00,1.00 -1494,158.40,-19.20,1.00,0.00,1.00 -1495,-19.20,19.20,1.00,0.00,1.00 -1496,168.00,-14.40,1.00,0.00,1.00 -1497,-9.60,9.60,1.00,0.00,1.00 -1498,172.80,-4.80,1.00,0.00,1.00 -1499,-4.80,4.80,1.00,0.00,1.00 diff --git a/scripts/testv/stvISM4.csv b/scripts/testv/stvISM4.csv index f3a2884ff0..e69de29bb2 100644 --- a/scripts/testv/stvISM4.csv +++ b/scripts/testv/stvISM4.csv @@ -1,1500 +0,0 @@ -0,-0.00,0.00,1.00,0.00,1.00 -1,-0.00,4.80,1.00,0.00,1.00 -2,-0.00,9.60,1.00,0.00,1.00 -3,-0.00,14.40,1.00,0.00,1.00 -4,-0.00,19.20,1.00,0.00,1.00 -5,-0.00,24.00,1.00,0.00,1.00 -6,-0.00,28.80,1.00,0.00,1.00 -7,-0.00,33.60,1.00,0.00,1.00 -8,-0.00,38.40,1.00,0.00,1.00 -9,-0.00,43.20,1.00,0.00,1.00 -10,-0.00,48.00,1.00,0.00,1.00 -11,-0.00,52.80,1.00,0.00,1.00 -12,-0.00,57.60,1.00,0.00,1.00 -13,-0.00,62.40,1.00,0.00,1.00 -14,-0.00,67.20,1.00,0.00,1.00 -15,-0.00,72.00,1.00,0.00,1.00 -16,-0.00,76.80,1.00,0.00,1.00 -17,-0.00,81.60,1.00,0.00,1.00 -18,-0.00,86.40,1.00,0.00,1.00 -19,-177.60,91.20,1.00,0.00,1.00 -20,-177.60,86.40,1.00,0.00,1.00 -21,-177.60,81.60,1.00,0.00,1.00 -22,-177.60,76.80,1.00,0.00,1.00 -23,-177.60,72.00,1.00,0.00,1.00 -24,-177.60,67.20,1.00,0.00,1.00 -25,177.60,62.40,1.00,0.00,1.00 -26,177.60,57.60,1.00,0.00,1.00 -27,177.60,52.80,1.00,0.00,1.00 -28,177.60,48.00,1.00,0.00,1.00 -29,177.60,43.20,1.00,0.00,1.00 -30,177.60,38.40,1.00,0.00,1.00 -31,177.60,33.60,1.00,0.00,1.00 -32,177.60,28.80,1.00,0.00,1.00 -33,177.60,24.00,1.00,0.00,1.00 -34,177.60,19.20,1.00,0.00,1.00 -35,177.60,14.40,1.00,0.00,1.00 -36,177.60,9.60,1.00,0.00,1.00 -37,177.60,4.80,1.00,0.00,1.00 -38,-177.60,-0.00,1.00,0.00,1.00 -39,-177.60,-4.80,1.00,0.00,1.00 -40,-177.60,-9.60,1.00,0.00,1.00 -41,-177.60,-14.40,1.00,0.00,1.00 -42,-177.60,-19.20,1.00,0.00,1.00 -43,-177.60,-24.00,1.00,0.00,1.00 -44,-177.60,-28.80,1.00,0.00,1.00 -45,-177.60,-33.60,1.00,0.00,1.00 -46,-177.60,-38.40,1.00,0.00,1.00 -47,-177.60,-48.00,1.00,0.00,1.00 -48,-177.60,-48.00,1.00,0.00,1.00 -49,-177.60,-52.80,1.00,0.00,1.00 -50,-177.60,-57.60,1.00,0.00,1.00 -51,177.60,-62.40,1.00,0.00,1.00 -52,177.60,-67.20,1.00,0.00,1.00 -53,177.60,-76.80,1.00,0.00,1.00 -54,177.60,-76.80,1.00,0.00,1.00 -55,177.60,-86.40,1.00,0.00,1.00 -56,177.60,-91.20,1.00,0.00,1.00 -57,0.00,-86.40,1.00,0.00,1.00 -58,0.00,-81.60,1.00,0.00,1.00 -59,0.00,-76.80,1.00,0.00,1.00 -60,0.00,-72.00,1.00,0.00,1.00 -61,0.00,-67.20,1.00,0.00,1.00 -62,0.00,-62.40,1.00,0.00,1.00 -63,0.00,-57.60,1.00,0.00,1.00 -64,0.00,-52.80,1.00,0.00,1.00 -65,0.00,-48.00,1.00,0.00,1.00 -66,0.00,-43.20,1.00,0.00,1.00 -67,0.00,-38.40,1.00,0.00,1.00 -68,0.00,-33.60,1.00,0.00,1.00 -69,0.00,-28.80,1.00,0.00,1.00 -70,0.00,-24.00,1.00,0.00,1.00 -71,0.00,-19.20,1.00,0.00,1.00 -72,0.00,-14.40,1.00,0.00,1.00 -73,0.00,-9.60,1.00,0.00,1.00 -74,0.00,-4.80,1.00,0.00,1.00 -75,0.00,0.00,1.00,0.00,1.00 -76,0.00,4.80,1.00,0.00,1.00 -77,0.00,9.60,1.00,0.00,1.00 -78,0.00,14.40,1.00,0.00,1.00 -79,0.00,19.20,1.00,0.00,1.00 -80,0.00,24.00,1.00,0.00,1.00 -81,4.80,28.80,1.00,0.00,1.00 -82,4.80,33.60,1.00,0.00,1.00 -83,4.80,38.40,1.00,0.00,1.00 -84,4.80,43.20,1.00,0.00,1.00 -85,4.80,48.00,1.00,0.00,1.00 -86,4.80,52.80,1.00,0.00,1.00 -87,9.60,57.60,1.00,0.00,1.00 -88,9.60,62.40,1.00,0.00,1.00 -89,9.60,67.20,1.00,0.00,1.00 -90,14.40,72.00,1.00,0.00,1.00 -91,19.20,76.80,1.00,0.00,1.00 -92,28.80,81.60,1.00,0.00,1.00 -93,52.80,86.40,1.00,0.00,1.00 -94,105.60,86.40,1.00,0.00,1.00 -95,139.20,81.60,1.00,0.00,1.00 -96,158.40,76.80,1.00,0.00,1.00 -97,163.20,72.00,1.00,0.00,1.00 -98,168.00,67.20,1.00,0.00,1.00 -99,168.00,62.40,1.00,0.00,1.00 -100,172.80,57.60,1.00,0.00,1.00 -101,172.80,52.80,1.00,0.00,1.00 -102,172.80,48.00,1.00,0.00,1.00 -103,172.80,43.20,1.00,0.00,1.00 -104,177.60,38.40,1.00,0.00,1.00 -105,177.60,33.60,1.00,0.00,1.00 -106,177.60,28.80,1.00,0.00,1.00 -107,177.60,24.00,1.00,0.00,1.00 -108,177.60,19.20,1.00,0.00,1.00 -109,177.60,14.40,1.00,0.00,1.00 -110,177.60,9.60,1.00,0.00,1.00 -111,177.60,4.80,1.00,0.00,1.00 -112,177.60,0.00,1.00,0.00,1.00 -113,-177.60,-0.00,1.00,0.00,1.00 -114,-177.60,-4.80,1.00,0.00,1.00 -115,-177.60,-9.60,1.00,0.00,1.00 -116,-177.60,-14.40,1.00,0.00,1.00 -117,-177.60,-19.20,1.00,0.00,1.00 -118,-177.60,-24.00,1.00,0.00,1.00 -119,-177.60,-28.80,1.00,0.00,1.00 -120,-177.60,-33.60,1.00,0.00,1.00 -121,-177.60,-38.40,1.00,0.00,1.00 -122,-172.80,-43.20,1.00,0.00,1.00 -123,-172.80,-48.00,1.00,0.00,1.00 -124,-172.80,-52.80,1.00,0.00,1.00 -125,-172.80,-57.60,1.00,0.00,1.00 -126,-168.00,-62.40,1.00,0.00,1.00 -127,-168.00,-67.20,1.00,0.00,1.00 -128,-163.20,-72.00,1.00,0.00,1.00 -129,-158.40,-76.80,1.00,0.00,1.00 -130,-139.20,-81.60,1.00,0.00,1.00 -131,-105.60,-86.40,1.00,0.00,1.00 -132,-52.80,-86.40,1.00,0.00,1.00 -133,-28.80,-81.60,1.00,0.00,1.00 -134,-19.20,-76.80,1.00,0.00,1.00 -135,-14.40,-72.00,1.00,0.00,1.00 -136,-9.60,-67.20,1.00,0.00,1.00 -137,-9.60,-62.40,1.00,0.00,1.00 -138,-9.60,-57.60,1.00,0.00,1.00 -139,-4.80,-52.80,1.00,0.00,1.00 -140,-4.80,-48.00,1.00,0.00,1.00 -141,-4.80,-43.20,1.00,0.00,1.00 -142,-4.80,-38.40,1.00,0.00,1.00 -143,-4.80,-33.60,1.00,0.00,1.00 -144,-4.80,-28.80,1.00,0.00,1.00 -145,-0.00,-24.00,1.00,0.00,1.00 -146,-0.00,-19.20,1.00,0.00,1.00 -147,-0.00,-14.40,1.00,0.00,1.00 -148,-0.00,-9.60,1.00,0.00,1.00 -149,-0.00,-4.80,1.00,0.00,1.00 -150,0.00,0.00,1.00,0.00,1.00 -151,0.00,4.80,1.00,0.00,1.00 -152,0.00,9.60,1.00,0.00,1.00 -153,4.80,14.40,1.00,0.00,1.00 -154,4.80,19.20,1.00,0.00,1.00 -155,4.80,24.00,1.00,0.00,1.00 -156,4.80,28.80,1.00,0.00,1.00 -157,4.80,33.60,1.00,0.00,1.00 -158,9.60,38.40,1.00,0.00,1.00 -159,9.60,43.20,1.00,0.00,1.00 -160,9.60,48.00,1.00,0.00,1.00 -161,14.40,52.80,1.00,0.00,1.00 -162,14.40,57.60,1.00,0.00,1.00 -163,19.20,62.40,1.00,0.00,1.00 -164,24.00,67.20,1.00,0.00,1.00 -165,28.80,72.00,1.00,0.00,1.00 -166,33.60,72.00,1.00,0.00,1.00 -167,48.00,76.80,1.00,0.00,1.00 -168,67.20,81.60,1.00,0.00,1.00 -169,96.00,81.60,1.00,0.00,1.00 -170,120.00,76.80,1.00,0.00,1.00 -171,139.20,76.80,1.00,0.00,1.00 -172,148.80,72.00,1.00,0.00,1.00 -173,153.60,67.20,1.00,0.00,1.00 -174,158.40,62.40,1.00,0.00,1.00 -175,163.20,57.60,1.00,0.00,1.00 -176,168.00,52.80,1.00,0.00,1.00 -177,168.00,48.00,1.00,0.00,1.00 -178,168.00,43.20,1.00,0.00,1.00 -179,172.80,38.40,1.00,0.00,1.00 -180,172.80,33.60,1.00,0.00,1.00 -181,172.80,28.80,1.00,0.00,1.00 -182,177.60,24.00,1.00,0.00,1.00 -183,177.60,19.20,1.00,0.00,1.00 -184,177.60,14.40,1.00,0.00,1.00 -185,177.60,9.60,1.00,0.00,1.00 -186,177.60,4.80,1.00,0.00,1.00 -187,177.60,0.00,1.00,0.00,1.00 -188,-177.60,-0.00,1.00,0.00,1.00 -189,-177.60,-4.80,1.00,0.00,1.00 -190,-177.60,-9.60,1.00,0.00,1.00 -191,-177.60,-14.40,1.00,0.00,1.00 -192,-177.60,-19.20,1.00,0.00,1.00 -193,-177.60,-24.00,1.00,0.00,1.00 -194,-172.80,-28.80,1.00,0.00,1.00 -195,-172.80,-33.60,1.00,0.00,1.00 -196,-172.80,-38.40,1.00,0.00,1.00 -197,-168.00,-43.20,1.00,0.00,1.00 -198,-168.00,-48.00,1.00,0.00,1.00 -199,-168.00,-52.80,1.00,0.00,1.00 -200,-163.20,-57.60,1.00,0.00,1.00 -201,-158.40,-62.40,1.00,0.00,1.00 -202,-153.60,-67.20,1.00,0.00,1.00 -203,-148.80,-72.00,1.00,0.00,1.00 -204,-139.20,-76.80,1.00,0.00,1.00 -205,-120.00,-76.80,1.00,0.00,1.00 -206,-96.00,-81.60,1.00,0.00,1.00 -207,-67.20,-81.60,1.00,0.00,1.00 -208,-48.00,-76.80,1.00,0.00,1.00 -209,-33.60,-72.00,1.00,0.00,1.00 -210,-28.80,-72.00,1.00,0.00,1.00 -211,-24.00,-67.20,1.00,0.00,1.00 -212,-19.20,-62.40,1.00,0.00,1.00 -213,-14.40,-57.60,1.00,0.00,1.00 -214,-14.40,-52.80,1.00,0.00,1.00 -215,-9.60,-48.00,1.00,0.00,1.00 -216,-9.60,-43.20,1.00,0.00,1.00 -217,-9.60,-38.40,1.00,0.00,1.00 -218,-4.80,-33.60,1.00,0.00,1.00 -219,-4.80,-28.80,1.00,0.00,1.00 -220,-4.80,-24.00,1.00,0.00,1.00 -221,-4.80,-19.20,1.00,0.00,1.00 -222,-4.80,-14.40,1.00,0.00,1.00 -223,-0.00,-9.60,1.00,0.00,1.00 -224,-0.00,-4.80,1.00,0.00,1.00 -225,0.00,0.00,1.00,0.00,1.00 -226,0.00,4.80,1.00,0.00,1.00 -227,4.80,9.60,1.00,0.00,1.00 -228,4.80,14.40,1.00,0.00,1.00 -229,4.80,19.20,1.00,0.00,1.00 -230,4.80,24.00,1.00,0.00,1.00 -231,9.60,28.80,1.00,0.00,1.00 -232,9.60,33.60,1.00,0.00,1.00 -233,9.60,38.40,1.00,0.00,1.00 -234,14.40,43.20,1.00,0.00,1.00 -235,14.40,48.00,1.00,0.00,1.00 -236,19.20,52.80,1.00,0.00,1.00 -237,19.20,52.80,1.00,0.00,1.00 -238,24.00,57.60,1.00,0.00,1.00 -239,28.80,62.40,1.00,0.00,1.00 -240,38.40,67.20,1.00,0.00,1.00 -241,48.00,72.00,1.00,0.00,1.00 -242,57.60,72.00,1.00,0.00,1.00 -243,76.80,76.80,1.00,0.00,1.00 -244,96.00,76.80,1.00,0.00,1.00 -245,115.20,76.80,1.00,0.00,1.00 -246,129.60,72.00,1.00,0.00,1.00 -247,139.20,67.20,1.00,0.00,1.00 -248,144.00,67.20,1.00,0.00,1.00 -249,153.60,62.40,1.00,0.00,1.00 -250,158.40,57.60,1.00,0.00,1.00 -251,158.40,52.80,1.00,0.00,1.00 -252,163.20,48.00,1.00,0.00,1.00 -253,168.00,43.20,1.00,0.00,1.00 -254,168.00,38.40,1.00,0.00,1.00 -255,168.00,33.60,1.00,0.00,1.00 -256,172.80,28.80,1.00,0.00,1.00 -257,172.80,24.00,1.00,0.00,1.00 -258,172.80,19.20,1.00,0.00,1.00 -259,177.60,14.40,1.00,0.00,1.00 -260,177.60,9.60,1.00,0.00,1.00 -261,177.60,4.80,1.00,0.00,1.00 -262,177.60,0.00,1.00,0.00,1.00 -263,-177.60,-0.00,1.00,0.00,1.00 -264,-177.60,-4.80,1.00,0.00,1.00 -265,-177.60,-9.60,1.00,0.00,1.00 -266,-177.60,-14.40,1.00,0.00,1.00 -267,-172.80,-19.20,1.00,0.00,1.00 -268,-172.80,-24.00,1.00,0.00,1.00 -269,-172.80,-28.80,1.00,0.00,1.00 -270,-168.00,-33.60,1.00,0.00,1.00 -271,-168.00,-38.40,1.00,0.00,1.00 -272,-168.00,-43.20,1.00,0.00,1.00 -273,-163.20,-48.00,1.00,0.00,1.00 -274,-158.40,-52.80,1.00,0.00,1.00 -275,-158.40,-57.60,1.00,0.00,1.00 -276,-153.60,-62.40,1.00,0.00,1.00 -277,-144.00,-67.20,1.00,0.00,1.00 -278,-139.20,-67.20,1.00,0.00,1.00 -279,-129.60,-72.00,1.00,0.00,1.00 -280,-115.20,-76.80,1.00,0.00,1.00 -281,-96.00,-76.80,1.00,0.00,1.00 -282,-76.80,-76.80,1.00,0.00,1.00 -283,-57.60,-72.00,1.00,0.00,1.00 -284,-48.00,-72.00,1.00,0.00,1.00 -285,-38.40,-67.20,1.00,0.00,1.00 -286,-28.80,-62.40,1.00,0.00,1.00 -287,-24.00,-57.60,1.00,0.00,1.00 -288,-19.20,-52.80,1.00,0.00,1.00 -289,-19.20,-52.80,1.00,0.00,1.00 -290,-14.40,-48.00,1.00,0.00,1.00 -291,-14.40,-43.20,1.00,0.00,1.00 -292,-9.60,-38.40,1.00,0.00,1.00 -293,-9.60,-33.60,1.00,0.00,1.00 -294,-9.60,-28.80,1.00,0.00,1.00 -295,-4.80,-24.00,1.00,0.00,1.00 -296,-4.80,-19.20,1.00,0.00,1.00 -297,-4.80,-14.40,1.00,0.00,1.00 -298,-4.80,-9.60,1.00,0.00,1.00 -299,-0.00,-4.80,1.00,0.00,1.00 -300,0.00,0.00,1.00,0.00,1.00 -301,0.00,4.80,1.00,0.00,1.00 -302,4.80,9.60,1.00,0.00,1.00 -303,4.80,14.40,1.00,0.00,1.00 -304,4.80,19.20,1.00,0.00,1.00 -305,9.60,24.00,1.00,0.00,1.00 -306,9.60,28.80,1.00,0.00,1.00 -307,14.40,33.60,1.00,0.00,1.00 -308,14.40,33.60,1.00,0.00,1.00 -309,19.20,38.40,1.00,0.00,1.00 -310,19.20,43.20,1.00,0.00,1.00 -311,24.00,48.00,1.00,0.00,1.00 -312,28.80,52.80,1.00,0.00,1.00 -313,33.60,57.60,1.00,0.00,1.00 -314,38.40,62.40,1.00,0.00,1.00 -315,43.20,62.40,1.00,0.00,1.00 -316,52.80,67.20,1.00,0.00,1.00 -317,67.20,67.20,1.00,0.00,1.00 -318,76.80,72.00,1.00,0.00,1.00 -319,96.00,72.00,1.00,0.00,1.00 -320,105.60,72.00,1.00,0.00,1.00 -321,120.00,67.20,1.00,0.00,1.00 -322,129.60,67.20,1.00,0.00,1.00 -323,139.20,62.40,1.00,0.00,1.00 -324,144.00,57.60,1.00,0.00,1.00 -325,148.80,52.80,1.00,0.00,1.00 -326,153.60,52.80,1.00,0.00,1.00 -327,158.40,48.00,1.00,0.00,1.00 -328,163.20,43.20,1.00,0.00,1.00 -329,163.20,38.40,1.00,0.00,1.00 -330,168.00,33.60,1.00,0.00,1.00 -331,168.00,28.80,1.00,0.00,1.00 -332,172.80,24.00,1.00,0.00,1.00 -333,172.80,19.20,1.00,0.00,1.00 -334,172.80,14.40,1.00,0.00,1.00 -335,177.60,9.60,1.00,0.00,1.00 -336,177.60,4.80,1.00,0.00,1.00 -337,177.60,0.00,1.00,0.00,1.00 -338,-177.60,-0.00,1.00,0.00,1.00 -339,-177.60,-4.80,1.00,0.00,1.00 -340,-177.60,-9.60,1.00,0.00,1.00 -341,-172.80,-14.40,1.00,0.00,1.00 -342,-172.80,-19.20,1.00,0.00,1.00 -343,-172.80,-24.00,1.00,0.00,1.00 -344,-168.00,-28.80,1.00,0.00,1.00 -345,-168.00,-33.60,1.00,0.00,1.00 -346,-163.20,-38.40,1.00,0.00,1.00 -347,-163.20,-43.20,1.00,0.00,1.00 -348,-158.40,-48.00,1.00,0.00,1.00 -349,-153.60,-52.80,1.00,0.00,1.00 -350,-148.80,-52.80,1.00,0.00,1.00 -351,-144.00,-57.60,1.00,0.00,1.00 -352,-139.20,-62.40,1.00,0.00,1.00 -353,-129.60,-67.20,1.00,0.00,1.00 -354,-120.00,-67.20,1.00,0.00,1.00 -355,-105.60,-72.00,1.00,0.00,1.00 -356,-96.00,-72.00,1.00,0.00,1.00 -357,-76.80,-72.00,1.00,0.00,1.00 -358,-67.20,-67.20,1.00,0.00,1.00 -359,-52.80,-67.20,1.00,0.00,1.00 -360,-43.20,-62.40,1.00,0.00,1.00 -361,-38.40,-62.40,1.00,0.00,1.00 -362,-33.60,-57.60,1.00,0.00,1.00 -363,-28.80,-52.80,1.00,0.00,1.00 -364,-24.00,-48.00,1.00,0.00,1.00 -365,-19.20,-43.20,1.00,0.00,1.00 -366,-19.20,-38.40,1.00,0.00,1.00 -367,-14.40,-33.60,1.00,0.00,1.00 -368,-14.40,-33.60,1.00,0.00,1.00 -369,-9.60,-28.80,1.00,0.00,1.00 -370,-9.60,-24.00,1.00,0.00,1.00 -371,-4.80,-19.20,1.00,0.00,1.00 -372,-4.80,-14.40,1.00,0.00,1.00 -373,-4.80,-9.60,1.00,0.00,1.00 -374,-0.00,-4.80,1.00,0.00,1.00 -375,0.00,0.00,1.00,0.00,1.00 -376,0.00,4.80,1.00,0.00,1.00 -377,4.80,9.60,1.00,0.00,1.00 -378,4.80,14.40,1.00,0.00,1.00 -379,9.60,19.20,1.00,0.00,1.00 -380,9.60,24.00,1.00,0.00,1.00 -381,14.40,24.00,1.00,0.00,1.00 -382,14.40,28.80,1.00,0.00,1.00 -383,19.20,33.60,1.00,0.00,1.00 -384,19.20,38.40,1.00,0.00,1.00 -385,24.00,43.20,1.00,0.00,1.00 -386,28.80,48.00,1.00,0.00,1.00 -387,33.60,52.80,1.00,0.00,1.00 -388,38.40,52.80,1.00,0.00,1.00 -389,43.20,57.60,1.00,0.00,1.00 -390,52.80,62.40,1.00,0.00,1.00 -391,62.40,62.40,1.00,0.00,1.00 -392,72.00,62.40,1.00,0.00,1.00 -393,81.60,67.20,1.00,0.00,1.00 -394,91.20,67.20,1.00,0.00,1.00 -395,105.60,67.20,1.00,0.00,1.00 -396,115.20,62.40,1.00,0.00,1.00 -397,124.80,62.40,1.00,0.00,1.00 -398,134.40,57.60,1.00,0.00,1.00 -399,139.20,57.60,1.00,0.00,1.00 -400,144.00,52.80,1.00,0.00,1.00 -401,148.80,48.00,1.00,0.00,1.00 -402,153.60,43.20,1.00,0.00,1.00 -403,158.40,38.40,1.00,0.00,1.00 -404,158.40,38.40,1.00,0.00,1.00 -405,163.20,33.60,1.00,0.00,1.00 -406,168.00,28.80,1.00,0.00,1.00 -407,168.00,24.00,1.00,0.00,1.00 -408,172.80,19.20,1.00,0.00,1.00 -409,172.80,14.40,1.00,0.00,1.00 -410,172.80,9.60,1.00,0.00,1.00 -411,177.60,4.80,1.00,0.00,1.00 -412,177.60,0.00,1.00,0.00,1.00 -413,-177.60,-0.00,1.00,0.00,1.00 -414,-177.60,-4.80,1.00,0.00,1.00 -415,-172.80,-9.60,1.00,0.00,1.00 -416,-172.80,-14.40,1.00,0.00,1.00 -417,-172.80,-19.20,1.00,0.00,1.00 -418,-168.00,-24.00,1.00,0.00,1.00 -419,-168.00,-28.80,1.00,0.00,1.00 -420,-163.20,-33.60,1.00,0.00,1.00 -421,-158.40,-38.40,1.00,0.00,1.00 -422,-158.40,-38.40,1.00,0.00,1.00 -423,-153.60,-43.20,1.00,0.00,1.00 -424,-148.80,-48.00,1.00,0.00,1.00 -425,-144.00,-52.80,1.00,0.00,1.00 -426,-139.20,-57.60,1.00,0.00,1.00 -427,-134.40,-57.60,1.00,0.00,1.00 -428,-124.80,-62.40,1.00,0.00,1.00 -429,-115.20,-62.40,1.00,0.00,1.00 -430,-105.60,-67.20,1.00,0.00,1.00 -431,-91.20,-67.20,1.00,0.00,1.00 -432,-81.60,-67.20,1.00,0.00,1.00 -433,-72.00,-62.40,1.00,0.00,1.00 -434,-62.40,-62.40,1.00,0.00,1.00 -435,-52.80,-62.40,1.00,0.00,1.00 -436,-43.20,-57.60,1.00,0.00,1.00 -437,-38.40,-52.80,1.00,0.00,1.00 -438,-33.60,-52.80,1.00,0.00,1.00 -439,-28.80,-48.00,1.00,0.00,1.00 -440,-24.00,-43.20,1.00,0.00,1.00 -441,-19.20,-38.40,1.00,0.00,1.00 -442,-19.20,-33.60,1.00,0.00,1.00 -443,-14.40,-28.80,1.00,0.00,1.00 -444,-14.40,-24.00,1.00,0.00,1.00 -445,-9.60,-24.00,1.00,0.00,1.00 -446,-9.60,-19.20,1.00,0.00,1.00 -447,-4.80,-14.40,1.00,0.00,1.00 -448,-4.80,-9.60,1.00,0.00,1.00 -449,-0.00,-4.80,1.00,0.00,1.00 -450,0.00,0.00,1.00,0.00,1.00 -451,0.00,4.80,1.00,0.00,1.00 -452,4.80,9.60,1.00,0.00,1.00 -453,4.80,14.40,1.00,0.00,1.00 -454,9.60,14.40,1.00,0.00,1.00 -455,14.40,19.20,1.00,0.00,1.00 -456,14.40,24.00,1.00,0.00,1.00 -457,19.20,28.80,1.00,0.00,1.00 -458,19.20,33.60,1.00,0.00,1.00 -459,24.00,38.40,1.00,0.00,1.00 -460,28.80,38.40,1.00,0.00,1.00 -461,33.60,43.20,1.00,0.00,1.00 -462,38.40,48.00,1.00,0.00,1.00 -463,43.20,52.80,1.00,0.00,1.00 -464,48.00,52.80,1.00,0.00,1.00 -465,57.60,57.60,1.00,0.00,1.00 -466,62.40,57.60,1.00,0.00,1.00 -467,72.00,62.40,1.00,0.00,1.00 -468,81.60,62.40,1.00,0.00,1.00 -469,91.20,62.40,1.00,0.00,1.00 -470,100.80,62.40,1.00,0.00,1.00 -471,110.40,57.60,1.00,0.00,1.00 -472,120.00,57.60,1.00,0.00,1.00 -473,129.60,57.60,1.00,0.00,1.00 -474,134.40,52.80,1.00,0.00,1.00 -475,139.20,48.00,1.00,0.00,1.00 -476,144.00,48.00,1.00,0.00,1.00 -477,148.80,43.20,1.00,0.00,1.00 -478,153.60,38.40,1.00,0.00,1.00 -479,158.40,33.60,1.00,0.00,1.00 -480,158.40,28.80,1.00,0.00,1.00 -481,163.20,28.80,1.00,0.00,1.00 -482,168.00,24.00,1.00,0.00,1.00 -483,168.00,19.20,1.00,0.00,1.00 -484,172.80,14.40,1.00,0.00,1.00 -485,172.80,9.60,1.00,0.00,1.00 -486,177.60,4.80,1.00,0.00,1.00 -487,177.60,0.00,1.00,0.00,1.00 -488,-177.60,-0.00,1.00,0.00,1.00 -489,-177.60,-4.80,1.00,0.00,1.00 -490,-172.80,-9.60,1.00,0.00,1.00 -491,-172.80,-14.40,1.00,0.00,1.00 -492,-168.00,-19.20,1.00,0.00,1.00 -493,-168.00,-24.00,1.00,0.00,1.00 -494,-163.20,-28.80,1.00,0.00,1.00 -495,-158.40,-28.80,1.00,0.00,1.00 -496,-158.40,-33.60,1.00,0.00,1.00 -497,-153.60,-38.40,1.00,0.00,1.00 -498,-148.80,-43.20,1.00,0.00,1.00 -499,-144.00,-48.00,1.00,0.00,1.00 -500,-139.20,-48.00,1.00,0.00,1.00 -501,-134.40,-52.80,1.00,0.00,1.00 -502,-129.60,-57.60,1.00,0.00,1.00 -503,-120.00,-57.60,1.00,0.00,1.00 -504,-110.40,-57.60,1.00,0.00,1.00 -505,-100.80,-62.40,1.00,0.00,1.00 -506,-91.20,-62.40,1.00,0.00,1.00 -507,-81.60,-62.40,1.00,0.00,1.00 -508,-72.00,-62.40,1.00,0.00,1.00 -509,-62.40,-57.60,1.00,0.00,1.00 -510,-57.60,-57.60,1.00,0.00,1.00 -511,-48.00,-52.80,1.00,0.00,1.00 -512,-43.20,-52.80,1.00,0.00,1.00 -513,-38.40,-48.00,1.00,0.00,1.00 -514,-33.60,-43.20,1.00,0.00,1.00 -515,-28.80,-38.40,1.00,0.00,1.00 -516,-24.00,-38.40,1.00,0.00,1.00 -517,-19.20,-33.60,1.00,0.00,1.00 -518,-19.20,-28.80,1.00,0.00,1.00 -519,-14.40,-24.00,1.00,0.00,1.00 -520,-14.40,-19.20,1.00,0.00,1.00 -521,-9.60,-14.40,1.00,0.00,1.00 -522,-4.80,-14.40,1.00,0.00,1.00 -523,-4.80,-9.60,1.00,0.00,1.00 -524,-0.00,-4.80,1.00,0.00,1.00 -525,0.00,0.00,1.00,0.00,1.00 -526,4.80,4.80,1.00,0.00,1.00 -527,4.80,9.60,1.00,0.00,1.00 -528,9.60,9.60,1.00,0.00,1.00 -529,9.60,14.40,1.00,0.00,1.00 -530,14.40,19.20,1.00,0.00,1.00 -531,19.20,24.00,1.00,0.00,1.00 -532,19.20,28.80,1.00,0.00,1.00 -533,24.00,28.80,1.00,0.00,1.00 -534,28.80,33.60,1.00,0.00,1.00 -535,33.60,38.40,1.00,0.00,1.00 -536,38.40,43.20,1.00,0.00,1.00 -537,43.20,43.20,1.00,0.00,1.00 -538,48.00,48.00,1.00,0.00,1.00 -539,52.80,48.00,1.00,0.00,1.00 -540,57.60,52.80,1.00,0.00,1.00 -541,67.20,52.80,1.00,0.00,1.00 -542,76.80,57.60,1.00,0.00,1.00 -543,81.60,57.60,1.00,0.00,1.00 -544,91.20,57.60,1.00,0.00,1.00 -545,100.80,57.60,1.00,0.00,1.00 -546,110.40,52.80,1.00,0.00,1.00 -547,115.20,52.80,1.00,0.00,1.00 -548,124.80,52.80,1.00,0.00,1.00 -549,129.60,48.00,1.00,0.00,1.00 -550,134.40,48.00,1.00,0.00,1.00 -551,139.20,43.20,1.00,0.00,1.00 -552,144.00,38.40,1.00,0.00,1.00 -553,148.80,38.40,1.00,0.00,1.00 -554,153.60,33.60,1.00,0.00,1.00 -555,158.40,28.80,1.00,0.00,1.00 -556,163.20,24.00,1.00,0.00,1.00 -557,163.20,24.00,1.00,0.00,1.00 -558,168.00,19.20,1.00,0.00,1.00 -559,172.80,14.40,1.00,0.00,1.00 -560,172.80,9.60,1.00,0.00,1.00 -561,177.60,4.80,1.00,0.00,1.00 -562,177.60,0.00,1.00,0.00,1.00 -563,-177.60,-0.00,1.00,0.00,1.00 -564,-177.60,-4.80,1.00,0.00,1.00 -565,-172.80,-9.60,1.00,0.00,1.00 -566,-172.80,-14.40,1.00,0.00,1.00 -567,-168.00,-19.20,1.00,0.00,1.00 -568,-163.20,-24.00,1.00,0.00,1.00 -569,-163.20,-24.00,1.00,0.00,1.00 -570,-158.40,-28.80,1.00,0.00,1.00 -571,-153.60,-33.60,1.00,0.00,1.00 -572,-148.80,-38.40,1.00,0.00,1.00 -573,-144.00,-38.40,1.00,0.00,1.00 -574,-139.20,-43.20,1.00,0.00,1.00 -575,-134.40,-48.00,1.00,0.00,1.00 -576,-129.60,-48.00,1.00,0.00,1.00 -577,-124.80,-52.80,1.00,0.00,1.00 -578,-115.20,-52.80,1.00,0.00,1.00 -579,-110.40,-52.80,1.00,0.00,1.00 -580,-100.80,-57.60,1.00,0.00,1.00 -581,-91.20,-57.60,1.00,0.00,1.00 -582,-81.60,-57.60,1.00,0.00,1.00 -583,-76.80,-57.60,1.00,0.00,1.00 -584,-67.20,-52.80,1.00,0.00,1.00 -585,-57.60,-52.80,1.00,0.00,1.00 -586,-52.80,-48.00,1.00,0.00,1.00 -587,-48.00,-48.00,1.00,0.00,1.00 -588,-43.20,-43.20,1.00,0.00,1.00 -589,-38.40,-43.20,1.00,0.00,1.00 -590,-33.60,-38.40,1.00,0.00,1.00 -591,-28.80,-33.60,1.00,0.00,1.00 -592,-24.00,-28.80,1.00,0.00,1.00 -593,-19.20,-28.80,1.00,0.00,1.00 -594,-19.20,-24.00,1.00,0.00,1.00 -595,-14.40,-19.20,1.00,0.00,1.00 -596,-9.60,-14.40,1.00,0.00,1.00 -597,-9.60,-9.60,1.00,0.00,1.00 -598,-4.80,-9.60,1.00,0.00,1.00 -599,-4.80,-4.80,1.00,0.00,1.00 -600,0.00,0.00,1.00,0.00,1.00 -601,4.80,4.80,1.00,0.00,1.00 -602,4.80,9.60,1.00,0.00,1.00 -603,9.60,9.60,1.00,0.00,1.00 -604,14.40,14.40,1.00,0.00,1.00 -605,14.40,19.20,1.00,0.00,1.00 -606,19.20,24.00,1.00,0.00,1.00 -607,24.00,24.00,1.00,0.00,1.00 -608,24.00,28.80,1.00,0.00,1.00 -609,28.80,33.60,1.00,0.00,1.00 -610,33.60,33.60,1.00,0.00,1.00 -611,38.40,38.40,1.00,0.00,1.00 -612,43.20,43.20,1.00,0.00,1.00 -613,48.00,43.20,1.00,0.00,1.00 -614,57.60,48.00,1.00,0.00,1.00 -615,62.40,48.00,1.00,0.00,1.00 -616,67.20,48.00,1.00,0.00,1.00 -617,76.80,52.80,1.00,0.00,1.00 -618,86.40,52.80,1.00,0.00,1.00 -619,91.20,52.80,1.00,0.00,1.00 -620,100.80,52.80,1.00,0.00,1.00 -621,105.60,48.00,1.00,0.00,1.00 -622,115.20,48.00,1.00,0.00,1.00 -623,120.00,48.00,1.00,0.00,1.00 -624,124.80,43.20,1.00,0.00,1.00 -625,134.40,43.20,1.00,0.00,1.00 -626,139.20,38.40,1.00,0.00,1.00 -627,144.00,38.40,1.00,0.00,1.00 -628,148.80,33.60,1.00,0.00,1.00 -629,153.60,28.80,1.00,0.00,1.00 -630,153.60,28.80,1.00,0.00,1.00 -631,158.40,24.00,1.00,0.00,1.00 -632,163.20,19.20,1.00,0.00,1.00 -633,168.00,14.40,1.00,0.00,1.00 -634,168.00,14.40,1.00,0.00,1.00 -635,172.80,9.60,1.00,0.00,1.00 -636,177.60,4.80,1.00,0.00,1.00 -637,177.60,0.00,1.00,0.00,1.00 -638,-177.60,-0.00,1.00,0.00,1.00 -639,-177.60,-4.80,1.00,0.00,1.00 -640,-172.80,-9.60,1.00,0.00,1.00 -641,-168.00,-14.40,1.00,0.00,1.00 -642,-168.00,-14.40,1.00,0.00,1.00 -643,-163.20,-19.20,1.00,0.00,1.00 -644,-158.40,-24.00,1.00,0.00,1.00 -645,-153.60,-28.80,1.00,0.00,1.00 -646,-153.60,-28.80,1.00,0.00,1.00 -647,-148.80,-33.60,1.00,0.00,1.00 -648,-144.00,-38.40,1.00,0.00,1.00 -649,-139.20,-38.40,1.00,0.00,1.00 -650,-134.40,-43.20,1.00,0.00,1.00 -651,-124.80,-43.20,1.00,0.00,1.00 -652,-120.00,-48.00,1.00,0.00,1.00 -653,-115.20,-48.00,1.00,0.00,1.00 -654,-105.60,-48.00,1.00,0.00,1.00 -655,-100.80,-52.80,1.00,0.00,1.00 -656,-91.20,-52.80,1.00,0.00,1.00 -657,-86.40,-52.80,1.00,0.00,1.00 -658,-76.80,-52.80,1.00,0.00,1.00 -659,-67.20,-48.00,1.00,0.00,1.00 -660,-62.40,-48.00,1.00,0.00,1.00 -661,-57.60,-48.00,1.00,0.00,1.00 -662,-48.00,-43.20,1.00,0.00,1.00 -663,-43.20,-43.20,1.00,0.00,1.00 -664,-38.40,-38.40,1.00,0.00,1.00 -665,-33.60,-33.60,1.00,0.00,1.00 -666,-28.80,-33.60,1.00,0.00,1.00 -667,-24.00,-28.80,1.00,0.00,1.00 -668,-24.00,-24.00,1.00,0.00,1.00 -669,-19.20,-24.00,1.00,0.00,1.00 -670,-14.40,-19.20,1.00,0.00,1.00 -671,-14.40,-14.40,1.00,0.00,1.00 -672,-9.60,-9.60,1.00,0.00,1.00 -673,-4.80,-9.60,1.00,0.00,1.00 -674,-4.80,-4.80,1.00,0.00,1.00 -675,0.00,0.00,1.00,0.00,1.00 -676,4.80,4.80,1.00,0.00,1.00 -677,4.80,4.80,1.00,0.00,1.00 -678,9.60,9.60,1.00,0.00,1.00 -679,14.40,14.40,1.00,0.00,1.00 -680,19.20,19.20,1.00,0.00,1.00 -681,19.20,19.20,1.00,0.00,1.00 -682,24.00,24.00,1.00,0.00,1.00 -683,28.80,28.80,1.00,0.00,1.00 -684,33.60,28.80,1.00,0.00,1.00 -685,38.40,33.60,1.00,0.00,1.00 -686,43.20,33.60,1.00,0.00,1.00 -687,48.00,38.40,1.00,0.00,1.00 -688,52.80,38.40,1.00,0.00,1.00 -689,57.60,43.20,1.00,0.00,1.00 -690,62.40,43.20,1.00,0.00,1.00 -691,72.00,43.20,1.00,0.00,1.00 -692,76.80,48.00,1.00,0.00,1.00 -693,86.40,48.00,1.00,0.00,1.00 -694,91.20,48.00,1.00,0.00,1.00 -695,100.80,48.00,1.00,0.00,1.00 -696,105.60,48.00,1.00,0.00,1.00 -697,110.40,43.20,1.00,0.00,1.00 -698,120.00,43.20,1.00,0.00,1.00 -699,124.80,43.20,1.00,0.00,1.00 -700,129.60,38.40,1.00,0.00,1.00 -701,134.40,38.40,1.00,0.00,1.00 -702,139.20,33.60,1.00,0.00,1.00 -703,144.00,33.60,1.00,0.00,1.00 -704,148.80,28.80,1.00,0.00,1.00 -705,153.60,24.00,1.00,0.00,1.00 -706,158.40,24.00,1.00,0.00,1.00 -707,163.20,19.20,1.00,0.00,1.00 -708,163.20,14.40,1.00,0.00,1.00 -709,168.00,14.40,1.00,0.00,1.00 -710,172.80,9.60,1.00,0.00,1.00 -711,172.80,4.80,1.00,0.00,1.00 -712,177.60,0.00,1.00,0.00,1.00 -713,-177.60,-0.00,1.00,0.00,1.00 -714,-172.80,-4.80,1.00,0.00,1.00 -715,-172.80,-9.60,1.00,0.00,1.00 -716,-168.00,-14.40,1.00,0.00,1.00 -717,-163.20,-14.40,1.00,0.00,1.00 -718,-163.20,-19.20,1.00,0.00,1.00 -719,-158.40,-24.00,1.00,0.00,1.00 -720,-153.60,-24.00,1.00,0.00,1.00 -721,-148.80,-28.80,1.00,0.00,1.00 -722,-144.00,-33.60,1.00,0.00,1.00 -723,-139.20,-33.60,1.00,0.00,1.00 -724,-134.40,-38.40,1.00,0.00,1.00 -725,-129.60,-38.40,1.00,0.00,1.00 -726,-124.80,-43.20,1.00,0.00,1.00 -727,-120.00,-43.20,1.00,0.00,1.00 -728,-110.40,-43.20,1.00,0.00,1.00 -729,-105.60,-48.00,1.00,0.00,1.00 -730,-100.80,-48.00,1.00,0.00,1.00 -731,-91.20,-48.00,1.00,0.00,1.00 -732,-86.40,-48.00,1.00,0.00,1.00 -733,-76.80,-48.00,1.00,0.00,1.00 -734,-72.00,-43.20,1.00,0.00,1.00 -735,-62.40,-43.20,1.00,0.00,1.00 -736,-57.60,-43.20,1.00,0.00,1.00 -737,-52.80,-38.40,1.00,0.00,1.00 -738,-48.00,-38.40,1.00,0.00,1.00 -739,-43.20,-33.60,1.00,0.00,1.00 -740,-38.40,-33.60,1.00,0.00,1.00 -741,-33.60,-28.80,1.00,0.00,1.00 -742,-28.80,-28.80,1.00,0.00,1.00 -743,-24.00,-24.00,1.00,0.00,1.00 -744,-19.20,-19.20,1.00,0.00,1.00 -745,-19.20,-19.20,1.00,0.00,1.00 -746,-14.40,-14.40,1.00,0.00,1.00 -747,-9.60,-9.60,1.00,0.00,1.00 -748,-4.80,-4.80,1.00,0.00,1.00 -749,-4.80,-4.80,1.00,0.00,1.00 -750,0.00,0.00,1.00,0.00,1.00 -751,4.80,4.80,1.00,0.00,1.00 -752,4.80,4.80,1.00,0.00,1.00 -753,9.60,9.60,1.00,0.00,1.00 -754,14.40,14.40,1.00,0.00,1.00 -755,19.20,14.40,1.00,0.00,1.00 -756,24.00,19.20,1.00,0.00,1.00 -757,24.00,24.00,1.00,0.00,1.00 -758,28.80,24.00,1.00,0.00,1.00 -759,33.60,28.80,1.00,0.00,1.00 -760,38.40,28.80,1.00,0.00,1.00 -761,43.20,33.60,1.00,0.00,1.00 -762,48.00,33.60,1.00,0.00,1.00 -763,52.80,38.40,1.00,0.00,1.00 -764,62.40,38.40,1.00,0.00,1.00 -765,67.20,38.40,1.00,0.00,1.00 -766,72.00,38.40,1.00,0.00,1.00 -767,76.80,43.20,1.00,0.00,1.00 -768,86.40,43.20,1.00,0.00,1.00 -769,91.20,43.20,1.00,0.00,1.00 -770,96.00,43.20,1.00,0.00,1.00 -771,105.60,43.20,1.00,0.00,1.00 -772,110.40,38.40,1.00,0.00,1.00 -773,115.20,38.40,1.00,0.00,1.00 -774,120.00,38.40,1.00,0.00,1.00 -775,129.60,33.60,1.00,0.00,1.00 -776,134.40,33.60,1.00,0.00,1.00 -777,139.20,28.80,1.00,0.00,1.00 -778,144.00,28.80,1.00,0.00,1.00 -779,148.80,24.00,1.00,0.00,1.00 -780,153.60,24.00,1.00,0.00,1.00 -781,153.60,19.20,1.00,0.00,1.00 -782,158.40,19.20,1.00,0.00,1.00 -783,163.20,14.40,1.00,0.00,1.00 -784,168.00,9.60,1.00,0.00,1.00 -785,172.80,9.60,1.00,0.00,1.00 -786,172.80,4.80,1.00,0.00,1.00 -787,177.60,0.00,1.00,0.00,1.00 -788,-177.60,-0.00,1.00,0.00,1.00 -789,-172.80,-4.80,1.00,0.00,1.00 -790,-172.80,-9.60,1.00,0.00,1.00 -791,-168.00,-9.60,1.00,0.00,1.00 -792,-163.20,-14.40,1.00,0.00,1.00 -793,-158.40,-19.20,1.00,0.00,1.00 -794,-153.60,-19.20,1.00,0.00,1.00 -795,-153.60,-24.00,1.00,0.00,1.00 -796,-148.80,-24.00,1.00,0.00,1.00 -797,-144.00,-28.80,1.00,0.00,1.00 -798,-139.20,-28.80,1.00,0.00,1.00 -799,-134.40,-33.60,1.00,0.00,1.00 -800,-129.60,-33.60,1.00,0.00,1.00 -801,-120.00,-38.40,1.00,0.00,1.00 -802,-115.20,-38.40,1.00,0.00,1.00 -803,-110.40,-38.40,1.00,0.00,1.00 -804,-105.60,-43.20,1.00,0.00,1.00 -805,-96.00,-43.20,1.00,0.00,1.00 -806,-91.20,-43.20,1.00,0.00,1.00 -807,-86.40,-43.20,1.00,0.00,1.00 -808,-76.80,-43.20,1.00,0.00,1.00 -809,-72.00,-38.40,1.00,0.00,1.00 -810,-67.20,-38.40,1.00,0.00,1.00 -811,-62.40,-38.40,1.00,0.00,1.00 -812,-52.80,-38.40,1.00,0.00,1.00 -813,-48.00,-33.60,1.00,0.00,1.00 -814,-43.20,-33.60,1.00,0.00,1.00 -815,-38.40,-28.80,1.00,0.00,1.00 -816,-33.60,-28.80,1.00,0.00,1.00 -817,-28.80,-24.00,1.00,0.00,1.00 -818,-24.00,-24.00,1.00,0.00,1.00 -819,-24.00,-19.20,1.00,0.00,1.00 -820,-19.20,-14.40,1.00,0.00,1.00 -821,-14.40,-14.40,1.00,0.00,1.00 -822,-9.60,-9.60,1.00,0.00,1.00 -823,-4.80,-4.80,1.00,0.00,1.00 -824,-4.80,-4.80,1.00,0.00,1.00 -825,0.00,0.00,1.00,0.00,1.00 -826,4.80,4.80,1.00,0.00,1.00 -827,9.60,4.80,1.00,0.00,1.00 -828,9.60,9.60,1.00,0.00,1.00 -829,14.40,9.60,1.00,0.00,1.00 -830,19.20,14.40,1.00,0.00,1.00 -831,24.00,19.20,1.00,0.00,1.00 -832,28.80,19.20,1.00,0.00,1.00 -833,33.60,24.00,1.00,0.00,1.00 -834,38.40,24.00,1.00,0.00,1.00 -835,43.20,28.80,1.00,0.00,1.00 -836,48.00,28.80,1.00,0.00,1.00 -837,52.80,28.80,1.00,0.00,1.00 -838,57.60,33.60,1.00,0.00,1.00 -839,62.40,33.60,1.00,0.00,1.00 -840,67.20,33.60,1.00,0.00,1.00 -841,72.00,38.40,1.00,0.00,1.00 -842,81.60,38.40,1.00,0.00,1.00 -843,86.40,38.40,1.00,0.00,1.00 -844,91.20,38.40,1.00,0.00,1.00 -845,96.00,38.40,1.00,0.00,1.00 -846,105.60,38.40,1.00,0.00,1.00 -847,110.40,33.60,1.00,0.00,1.00 -848,115.20,33.60,1.00,0.00,1.00 -849,120.00,33.60,1.00,0.00,1.00 -850,124.80,33.60,1.00,0.00,1.00 -851,129.60,28.80,1.00,0.00,1.00 -852,134.40,28.80,1.00,0.00,1.00 -853,139.20,24.00,1.00,0.00,1.00 -854,144.00,24.00,1.00,0.00,1.00 -855,148.80,19.20,1.00,0.00,1.00 -856,153.60,19.20,1.00,0.00,1.00 -857,158.40,14.40,1.00,0.00,1.00 -858,163.20,14.40,1.00,0.00,1.00 -859,168.00,9.60,1.00,0.00,1.00 -860,168.00,9.60,1.00,0.00,1.00 -861,172.80,4.80,1.00,0.00,1.00 -862,177.60,0.00,1.00,0.00,1.00 -863,-177.60,-0.00,1.00,0.00,1.00 -864,-172.80,-4.80,1.00,0.00,1.00 -865,-168.00,-9.60,1.00,0.00,1.00 -866,-168.00,-9.60,1.00,0.00,1.00 -867,-163.20,-14.40,1.00,0.00,1.00 -868,-158.40,-14.40,1.00,0.00,1.00 -869,-153.60,-19.20,1.00,0.00,1.00 -870,-148.80,-19.20,1.00,0.00,1.00 -871,-144.00,-24.00,1.00,0.00,1.00 -872,-139.20,-24.00,1.00,0.00,1.00 -873,-134.40,-28.80,1.00,0.00,1.00 -874,-129.60,-28.80,1.00,0.00,1.00 -875,-124.80,-33.60,1.00,0.00,1.00 -876,-120.00,-33.60,1.00,0.00,1.00 -877,-115.20,-33.60,1.00,0.00,1.00 -878,-110.40,-33.60,1.00,0.00,1.00 -879,-105.60,-38.40,1.00,0.00,1.00 -880,-96.00,-38.40,1.00,0.00,1.00 -881,-91.20,-38.40,1.00,0.00,1.00 -882,-86.40,-38.40,1.00,0.00,1.00 -883,-81.60,-38.40,1.00,0.00,1.00 -884,-72.00,-38.40,1.00,0.00,1.00 -885,-67.20,-33.60,1.00,0.00,1.00 -886,-62.40,-33.60,1.00,0.00,1.00 -887,-57.60,-33.60,1.00,0.00,1.00 -888,-52.80,-28.80,1.00,0.00,1.00 -889,-48.00,-28.80,1.00,0.00,1.00 -890,-43.20,-28.80,1.00,0.00,1.00 -891,-38.40,-24.00,1.00,0.00,1.00 -892,-33.60,-24.00,1.00,0.00,1.00 -893,-28.80,-19.20,1.00,0.00,1.00 -894,-24.00,-19.20,1.00,0.00,1.00 -895,-19.20,-14.40,1.00,0.00,1.00 -896,-14.40,-9.60,1.00,0.00,1.00 -897,-9.60,-9.60,1.00,0.00,1.00 -898,-9.60,-4.80,1.00,0.00,1.00 -899,-4.80,-4.80,1.00,0.00,1.00 -900,0.00,0.00,1.00,0.00,1.00 -901,4.80,4.80,1.00,0.00,1.00 -902,9.60,4.80,1.00,0.00,1.00 -903,14.40,9.60,1.00,0.00,1.00 -904,14.40,9.60,1.00,0.00,1.00 -905,19.20,14.40,1.00,0.00,1.00 -906,24.00,14.40,1.00,0.00,1.00 -907,28.80,19.20,1.00,0.00,1.00 -908,33.60,19.20,1.00,0.00,1.00 -909,38.40,19.20,1.00,0.00,1.00 -910,43.20,24.00,1.00,0.00,1.00 -911,48.00,24.00,1.00,0.00,1.00 -912,52.80,28.80,1.00,0.00,1.00 -913,57.60,28.80,1.00,0.00,1.00 -914,62.40,28.80,1.00,0.00,1.00 -915,67.20,28.80,1.00,0.00,1.00 -916,76.80,33.60,1.00,0.00,1.00 -917,81.60,33.60,1.00,0.00,1.00 -918,86.40,33.60,1.00,0.00,1.00 -919,91.20,33.60,1.00,0.00,1.00 -920,96.00,33.60,1.00,0.00,1.00 -921,100.80,33.60,1.00,0.00,1.00 -922,110.40,28.80,1.00,0.00,1.00 -923,115.20,28.80,1.00,0.00,1.00 -924,120.00,28.80,1.00,0.00,1.00 -925,124.80,28.80,1.00,0.00,1.00 -926,129.60,24.00,1.00,0.00,1.00 -927,134.40,24.00,1.00,0.00,1.00 -928,139.20,24.00,1.00,0.00,1.00 -929,144.00,19.20,1.00,0.00,1.00 -930,148.80,19.20,1.00,0.00,1.00 -931,153.60,14.40,1.00,0.00,1.00 -932,158.40,14.40,1.00,0.00,1.00 -933,163.20,9.60,1.00,0.00,1.00 -934,168.00,9.60,1.00,0.00,1.00 -935,168.00,4.80,1.00,0.00,1.00 -936,172.80,4.80,1.00,0.00,1.00 -937,177.60,0.00,1.00,0.00,1.00 -938,-177.60,-0.00,1.00,0.00,1.00 -939,-172.80,-4.80,1.00,0.00,1.00 -940,-168.00,-4.80,1.00,0.00,1.00 -941,-168.00,-9.60,1.00,0.00,1.00 -942,-163.20,-9.60,1.00,0.00,1.00 -943,-158.40,-14.40,1.00,0.00,1.00 -944,-153.60,-14.40,1.00,0.00,1.00 -945,-148.80,-19.20,1.00,0.00,1.00 -946,-144.00,-19.20,1.00,0.00,1.00 -947,-139.20,-24.00,1.00,0.00,1.00 -948,-134.40,-24.00,1.00,0.00,1.00 -949,-129.60,-24.00,1.00,0.00,1.00 -950,-124.80,-28.80,1.00,0.00,1.00 -951,-120.00,-28.80,1.00,0.00,1.00 -952,-115.20,-28.80,1.00,0.00,1.00 -953,-110.40,-28.80,1.00,0.00,1.00 -954,-100.80,-33.60,1.00,0.00,1.00 -955,-96.00,-33.60,1.00,0.00,1.00 -956,-91.20,-33.60,1.00,0.00,1.00 -957,-86.40,-33.60,1.00,0.00,1.00 -958,-81.60,-33.60,1.00,0.00,1.00 -959,-76.80,-33.60,1.00,0.00,1.00 -960,-67.20,-28.80,1.00,0.00,1.00 -961,-62.40,-28.80,1.00,0.00,1.00 -962,-57.60,-28.80,1.00,0.00,1.00 -963,-52.80,-28.80,1.00,0.00,1.00 -964,-48.00,-24.00,1.00,0.00,1.00 -965,-43.20,-24.00,1.00,0.00,1.00 -966,-38.40,-19.20,1.00,0.00,1.00 -967,-33.60,-19.20,1.00,0.00,1.00 -968,-28.80,-19.20,1.00,0.00,1.00 -969,-24.00,-14.40,1.00,0.00,1.00 -970,-19.20,-14.40,1.00,0.00,1.00 -971,-14.40,-9.60,1.00,0.00,1.00 -972,-14.40,-9.60,1.00,0.00,1.00 -973,-9.60,-4.80,1.00,0.00,1.00 -974,-4.80,-4.80,1.00,0.00,1.00 -975,0.00,0.00,1.00,0.00,1.00 -976,4.80,0.00,1.00,0.00,1.00 -977,9.60,4.80,1.00,0.00,1.00 -978,14.40,4.80,1.00,0.00,1.00 -979,19.20,9.60,1.00,0.00,1.00 -980,19.20,9.60,1.00,0.00,1.00 -981,24.00,14.40,1.00,0.00,1.00 -982,28.80,14.40,1.00,0.00,1.00 -983,33.60,14.40,1.00,0.00,1.00 -984,38.40,19.20,1.00,0.00,1.00 -985,43.20,19.20,1.00,0.00,1.00 -986,48.00,24.00,1.00,0.00,1.00 -987,52.80,24.00,1.00,0.00,1.00 -988,57.60,24.00,1.00,0.00,1.00 -989,62.40,24.00,1.00,0.00,1.00 -990,72.00,24.00,1.00,0.00,1.00 -991,76.80,28.80,1.00,0.00,1.00 -992,81.60,28.80,1.00,0.00,1.00 -993,86.40,28.80,1.00,0.00,1.00 -994,91.20,28.80,1.00,0.00,1.00 -995,96.00,28.80,1.00,0.00,1.00 -996,100.80,28.80,1.00,0.00,1.00 -997,105.60,28.80,1.00,0.00,1.00 -998,110.40,24.00,1.00,0.00,1.00 -999,120.00,24.00,1.00,0.00,1.00 -1000,124.80,24.00,1.00,0.00,1.00 -1001,129.60,24.00,1.00,0.00,1.00 -1002,134.40,19.20,1.00,0.00,1.00 -1003,139.20,19.20,1.00,0.00,1.00 -1004,144.00,19.20,1.00,0.00,1.00 -1005,148.80,14.40,1.00,0.00,1.00 -1006,153.60,14.40,1.00,0.00,1.00 -1007,158.40,9.60,1.00,0.00,1.00 -1008,158.40,9.60,1.00,0.00,1.00 -1009,163.20,9.60,1.00,0.00,1.00 -1010,168.00,4.80,1.00,0.00,1.00 -1011,172.80,4.80,1.00,0.00,1.00 -1012,177.60,0.00,1.00,0.00,1.00 -1013,-177.60,-0.00,1.00,0.00,1.00 -1014,-172.80,-4.80,1.00,0.00,1.00 -1015,-168.00,-4.80,1.00,0.00,1.00 -1016,-163.20,-9.60,1.00,0.00,1.00 -1017,-158.40,-9.60,1.00,0.00,1.00 -1018,-158.40,-9.60,1.00,0.00,1.00 -1019,-153.60,-14.40,1.00,0.00,1.00 -1020,-148.80,-14.40,1.00,0.00,1.00 -1021,-144.00,-19.20,1.00,0.00,1.00 -1022,-139.20,-19.20,1.00,0.00,1.00 -1023,-134.40,-19.20,1.00,0.00,1.00 -1024,-129.60,-24.00,1.00,0.00,1.00 -1025,-124.80,-24.00,1.00,0.00,1.00 -1026,-120.00,-24.00,1.00,0.00,1.00 -1027,-110.40,-24.00,1.00,0.00,1.00 -1028,-105.60,-28.80,1.00,0.00,1.00 -1029,-100.80,-28.80,1.00,0.00,1.00 -1030,-96.00,-28.80,1.00,0.00,1.00 -1031,-91.20,-28.80,1.00,0.00,1.00 -1032,-86.40,-28.80,1.00,0.00,1.00 -1033,-81.60,-28.80,1.00,0.00,1.00 -1034,-76.80,-28.80,1.00,0.00,1.00 -1035,-72.00,-24.00,1.00,0.00,1.00 -1036,-62.40,-24.00,1.00,0.00,1.00 -1037,-57.60,-24.00,1.00,0.00,1.00 -1038,-52.80,-24.00,1.00,0.00,1.00 -1039,-48.00,-24.00,1.00,0.00,1.00 -1040,-43.20,-19.20,1.00,0.00,1.00 -1041,-38.40,-19.20,1.00,0.00,1.00 -1042,-33.60,-14.40,1.00,0.00,1.00 -1043,-28.80,-14.40,1.00,0.00,1.00 -1044,-24.00,-14.40,1.00,0.00,1.00 -1045,-19.20,-9.60,1.00,0.00,1.00 -1046,-19.20,-9.60,1.00,0.00,1.00 -1047,-14.40,-4.80,1.00,0.00,1.00 -1048,-9.60,-4.80,1.00,0.00,1.00 -1049,-4.80,-0.00,1.00,0.00,1.00 -1050,0.00,0.00,1.00,0.00,1.00 -1051,4.80,0.00,1.00,0.00,1.00 -1052,9.60,4.80,1.00,0.00,1.00 -1053,14.40,4.80,1.00,0.00,1.00 -1054,19.20,9.60,1.00,0.00,1.00 -1055,24.00,9.60,1.00,0.00,1.00 -1056,28.80,9.60,1.00,0.00,1.00 -1057,33.60,14.40,1.00,0.00,1.00 -1058,38.40,14.40,1.00,0.00,1.00 -1059,43.20,14.40,1.00,0.00,1.00 -1060,48.00,14.40,1.00,0.00,1.00 -1061,52.80,19.20,1.00,0.00,1.00 -1062,57.60,19.20,1.00,0.00,1.00 -1063,62.40,19.20,1.00,0.00,1.00 -1064,67.20,19.20,1.00,0.00,1.00 -1065,72.00,24.00,1.00,0.00,1.00 -1066,76.80,24.00,1.00,0.00,1.00 -1067,81.60,24.00,1.00,0.00,1.00 -1068,86.40,24.00,1.00,0.00,1.00 -1069,91.20,24.00,1.00,0.00,1.00 -1070,96.00,24.00,1.00,0.00,1.00 -1071,100.80,24.00,1.00,0.00,1.00 -1072,105.60,24.00,1.00,0.00,1.00 -1073,110.40,19.20,1.00,0.00,1.00 -1074,115.20,19.20,1.00,0.00,1.00 -1075,120.00,19.20,1.00,0.00,1.00 -1076,124.80,19.20,1.00,0.00,1.00 -1077,129.60,19.20,1.00,0.00,1.00 -1078,134.40,14.40,1.00,0.00,1.00 -1079,139.20,14.40,1.00,0.00,1.00 -1080,144.00,14.40,1.00,0.00,1.00 -1081,148.80,9.60,1.00,0.00,1.00 -1082,153.60,9.60,1.00,0.00,1.00 -1083,158.40,9.60,1.00,0.00,1.00 -1084,163.20,4.80,1.00,0.00,1.00 -1085,168.00,4.80,1.00,0.00,1.00 -1086,172.80,4.80,1.00,0.00,1.00 -1087,177.60,0.00,1.00,0.00,1.00 -1088,-177.60,-0.00,1.00,0.00,1.00 -1089,-172.80,-4.80,1.00,0.00,1.00 -1090,-168.00,-4.80,1.00,0.00,1.00 -1091,-163.20,-4.80,1.00,0.00,1.00 -1092,-158.40,-9.60,1.00,0.00,1.00 -1093,-153.60,-9.60,1.00,0.00,1.00 -1094,-148.80,-9.60,1.00,0.00,1.00 -1095,-144.00,-14.40,1.00,0.00,1.00 -1096,-139.20,-14.40,1.00,0.00,1.00 -1097,-134.40,-14.40,1.00,0.00,1.00 -1098,-129.60,-19.20,1.00,0.00,1.00 -1099,-124.80,-19.20,1.00,0.00,1.00 -1100,-120.00,-19.20,1.00,0.00,1.00 -1101,-115.20,-19.20,1.00,0.00,1.00 -1102,-110.40,-19.20,1.00,0.00,1.00 -1103,-105.60,-24.00,1.00,0.00,1.00 -1104,-100.80,-24.00,1.00,0.00,1.00 -1105,-96.00,-24.00,1.00,0.00,1.00 -1106,-91.20,-24.00,1.00,0.00,1.00 -1107,-86.40,-24.00,1.00,0.00,1.00 -1108,-81.60,-24.00,1.00,0.00,1.00 -1109,-76.80,-24.00,1.00,0.00,1.00 -1110,-72.00,-24.00,1.00,0.00,1.00 -1111,-67.20,-19.20,1.00,0.00,1.00 -1112,-62.40,-19.20,1.00,0.00,1.00 -1113,-57.60,-19.20,1.00,0.00,1.00 -1114,-52.80,-19.20,1.00,0.00,1.00 -1115,-48.00,-14.40,1.00,0.00,1.00 -1116,-43.20,-14.40,1.00,0.00,1.00 -1117,-38.40,-14.40,1.00,0.00,1.00 -1118,-33.60,-14.40,1.00,0.00,1.00 -1119,-28.80,-9.60,1.00,0.00,1.00 -1120,-24.00,-9.60,1.00,0.00,1.00 -1121,-19.20,-9.60,1.00,0.00,1.00 -1122,-14.40,-4.80,1.00,0.00,1.00 -1123,-9.60,-4.80,1.00,0.00,1.00 -1124,-4.80,-0.00,1.00,0.00,1.00 -1125,0.00,0.00,1.00,0.00,1.00 -1126,4.80,0.00,1.00,0.00,1.00 -1127,9.60,4.80,1.00,0.00,1.00 -1128,14.40,4.80,1.00,0.00,1.00 -1129,19.20,4.80,1.00,0.00,1.00 -1130,24.00,9.60,1.00,0.00,1.00 -1131,28.80,9.60,1.00,0.00,1.00 -1132,33.60,9.60,1.00,0.00,1.00 -1133,38.40,9.60,1.00,0.00,1.00 -1134,43.20,14.40,1.00,0.00,1.00 -1135,48.00,14.40,1.00,0.00,1.00 -1136,52.80,14.40,1.00,0.00,1.00 -1137,57.60,14.40,1.00,0.00,1.00 -1138,62.40,14.40,1.00,0.00,1.00 -1139,67.20,14.40,1.00,0.00,1.00 -1140,72.00,19.20,1.00,0.00,1.00 -1141,76.80,19.20,1.00,0.00,1.00 -1142,81.60,19.20,1.00,0.00,1.00 -1143,86.40,19.20,1.00,0.00,1.00 -1144,91.20,19.20,1.00,0.00,1.00 -1145,96.00,19.20,1.00,0.00,1.00 -1146,100.80,19.20,1.00,0.00,1.00 -1147,105.60,19.20,1.00,0.00,1.00 -1148,110.40,19.20,1.00,0.00,1.00 -1149,115.20,14.40,1.00,0.00,1.00 -1150,120.00,14.40,1.00,0.00,1.00 -1151,124.80,14.40,1.00,0.00,1.00 -1152,129.60,14.40,1.00,0.00,1.00 -1153,134.40,14.40,1.00,0.00,1.00 -1154,139.20,9.60,1.00,0.00,1.00 -1155,144.00,9.60,1.00,0.00,1.00 -1156,148.80,9.60,1.00,0.00,1.00 -1157,153.60,9.60,1.00,0.00,1.00 -1158,158.40,4.80,1.00,0.00,1.00 -1159,163.20,4.80,1.00,0.00,1.00 -1160,168.00,4.80,1.00,0.00,1.00 -1161,172.80,0.00,1.00,0.00,1.00 -1162,177.60,0.00,1.00,0.00,1.00 -1163,-177.60,-0.00,1.00,0.00,1.00 -1164,-172.80,-0.00,1.00,0.00,1.00 -1165,-168.00,-4.80,1.00,0.00,1.00 -1166,-163.20,-4.80,1.00,0.00,1.00 -1167,-158.40,-4.80,1.00,0.00,1.00 -1168,-153.60,-9.60,1.00,0.00,1.00 -1169,-148.80,-9.60,1.00,0.00,1.00 -1170,-144.00,-9.60,1.00,0.00,1.00 -1171,-139.20,-9.60,1.00,0.00,1.00 -1172,-134.40,-14.40,1.00,0.00,1.00 -1173,-129.60,-14.40,1.00,0.00,1.00 -1174,-124.80,-14.40,1.00,0.00,1.00 -1175,-120.00,-14.40,1.00,0.00,1.00 -1176,-115.20,-14.40,1.00,0.00,1.00 -1177,-110.40,-19.20,1.00,0.00,1.00 -1178,-105.60,-19.20,1.00,0.00,1.00 -1179,-100.80,-19.20,1.00,0.00,1.00 -1180,-96.00,-19.20,1.00,0.00,1.00 -1181,-91.20,-19.20,1.00,0.00,1.00 -1182,-86.40,-19.20,1.00,0.00,1.00 -1183,-81.60,-19.20,1.00,0.00,1.00 -1184,-76.80,-19.20,1.00,0.00,1.00 -1185,-72.00,-19.20,1.00,0.00,1.00 -1186,-67.20,-14.40,1.00,0.00,1.00 -1187,-62.40,-14.40,1.00,0.00,1.00 -1188,-57.60,-14.40,1.00,0.00,1.00 -1189,-52.80,-14.40,1.00,0.00,1.00 -1190,-48.00,-14.40,1.00,0.00,1.00 -1191,-43.20,-14.40,1.00,0.00,1.00 -1192,-38.40,-9.60,1.00,0.00,1.00 -1193,-33.60,-9.60,1.00,0.00,1.00 -1194,-28.80,-9.60,1.00,0.00,1.00 -1195,-24.00,-9.60,1.00,0.00,1.00 -1196,-19.20,-4.80,1.00,0.00,1.00 -1197,-14.40,-4.80,1.00,0.00,1.00 -1198,-9.60,-4.80,1.00,0.00,1.00 -1199,-4.80,-0.00,1.00,0.00,1.00 -1200,0.00,0.00,1.00,0.00,1.00 -1201,4.80,0.00,1.00,0.00,1.00 -1202,9.60,0.00,1.00,0.00,1.00 -1203,14.40,4.80,1.00,0.00,1.00 -1204,19.20,4.80,1.00,0.00,1.00 -1205,24.00,4.80,1.00,0.00,1.00 -1206,28.80,4.80,1.00,0.00,1.00 -1207,33.60,9.60,1.00,0.00,1.00 -1208,38.40,9.60,1.00,0.00,1.00 -1209,43.20,9.60,1.00,0.00,1.00 -1210,48.00,9.60,1.00,0.00,1.00 -1211,52.80,9.60,1.00,0.00,1.00 -1212,57.60,9.60,1.00,0.00,1.00 -1213,62.40,9.60,1.00,0.00,1.00 -1214,67.20,14.40,1.00,0.00,1.00 -1215,72.00,14.40,1.00,0.00,1.00 -1216,76.80,14.40,1.00,0.00,1.00 -1217,81.60,14.40,1.00,0.00,1.00 -1218,86.40,14.40,1.00,0.00,1.00 -1219,91.20,14.40,1.00,0.00,1.00 -1220,96.00,14.40,1.00,0.00,1.00 -1221,100.80,14.40,1.00,0.00,1.00 -1222,105.60,14.40,1.00,0.00,1.00 -1223,110.40,14.40,1.00,0.00,1.00 -1224,115.20,9.60,1.00,0.00,1.00 -1225,120.00,9.60,1.00,0.00,1.00 -1226,124.80,9.60,1.00,0.00,1.00 -1227,129.60,9.60,1.00,0.00,1.00 -1228,134.40,9.60,1.00,0.00,1.00 -1229,139.20,9.60,1.00,0.00,1.00 -1230,144.00,9.60,1.00,0.00,1.00 -1231,148.80,4.80,1.00,0.00,1.00 -1232,153.60,4.80,1.00,0.00,1.00 -1233,158.40,4.80,1.00,0.00,1.00 -1234,163.20,4.80,1.00,0.00,1.00 -1235,168.00,4.80,1.00,0.00,1.00 -1236,172.80,0.00,1.00,0.00,1.00 -1237,177.60,0.00,1.00,0.00,1.00 -1238,-177.60,-0.00,1.00,0.00,1.00 -1239,-172.80,-0.00,1.00,0.00,1.00 -1240,-168.00,-4.80,1.00,0.00,1.00 -1241,-163.20,-4.80,1.00,0.00,1.00 -1242,-158.40,-4.80,1.00,0.00,1.00 -1243,-153.60,-4.80,1.00,0.00,1.00 -1244,-148.80,-4.80,1.00,0.00,1.00 -1245,-144.00,-9.60,1.00,0.00,1.00 -1246,-139.20,-9.60,1.00,0.00,1.00 -1247,-134.40,-9.60,1.00,0.00,1.00 -1248,-129.60,-9.60,1.00,0.00,1.00 -1249,-124.80,-9.60,1.00,0.00,1.00 -1250,-120.00,-9.60,1.00,0.00,1.00 -1251,-115.20,-9.60,1.00,0.00,1.00 -1252,-110.40,-14.40,1.00,0.00,1.00 -1253,-105.60,-14.40,1.00,0.00,1.00 -1254,-100.80,-14.40,1.00,0.00,1.00 -1255,-96.00,-14.40,1.00,0.00,1.00 -1256,-91.20,-14.40,1.00,0.00,1.00 -1257,-86.40,-14.40,1.00,0.00,1.00 -1258,-81.60,-14.40,1.00,0.00,1.00 -1259,-76.80,-14.40,1.00,0.00,1.00 -1260,-72.00,-14.40,1.00,0.00,1.00 -1261,-67.20,-14.40,1.00,0.00,1.00 -1262,-62.40,-9.60,1.00,0.00,1.00 -1263,-57.60,-9.60,1.00,0.00,1.00 -1264,-52.80,-9.60,1.00,0.00,1.00 -1265,-48.00,-9.60,1.00,0.00,1.00 -1266,-43.20,-9.60,1.00,0.00,1.00 -1267,-38.40,-9.60,1.00,0.00,1.00 -1268,-33.60,-9.60,1.00,0.00,1.00 -1269,-28.80,-4.80,1.00,0.00,1.00 -1270,-24.00,-4.80,1.00,0.00,1.00 -1271,-19.20,-4.80,1.00,0.00,1.00 -1272,-14.40,-4.80,1.00,0.00,1.00 -1273,-9.60,-0.00,1.00,0.00,1.00 -1274,-4.80,-0.00,1.00,0.00,1.00 -1275,0.00,0.00,1.00,0.00,1.00 -1276,4.80,0.00,1.00,0.00,1.00 -1277,9.60,0.00,1.00,0.00,1.00 -1278,14.40,0.00,1.00,0.00,1.00 -1279,19.20,4.80,1.00,0.00,1.00 -1280,24.00,4.80,1.00,0.00,1.00 -1281,28.80,4.80,1.00,0.00,1.00 -1282,33.60,4.80,1.00,0.00,1.00 -1283,38.40,4.80,1.00,0.00,1.00 -1284,43.20,4.80,1.00,0.00,1.00 -1285,48.00,4.80,1.00,0.00,1.00 -1286,52.80,4.80,1.00,0.00,1.00 -1287,57.60,4.80,1.00,0.00,1.00 -1288,62.40,9.60,1.00,0.00,1.00 -1289,67.20,9.60,1.00,0.00,1.00 -1290,72.00,9.60,1.00,0.00,1.00 -1291,76.80,9.60,1.00,0.00,1.00 -1292,81.60,9.60,1.00,0.00,1.00 -1293,86.40,9.60,1.00,0.00,1.00 -1294,91.20,9.60,1.00,0.00,1.00 -1295,96.00,9.60,1.00,0.00,1.00 -1296,100.80,9.60,1.00,0.00,1.00 -1297,105.60,9.60,1.00,0.00,1.00 -1298,110.40,9.60,1.00,0.00,1.00 -1299,115.20,9.60,1.00,0.00,1.00 -1300,120.00,9.60,1.00,0.00,1.00 -1301,124.80,4.80,1.00,0.00,1.00 -1302,129.60,4.80,1.00,0.00,1.00 -1303,134.40,4.80,1.00,0.00,1.00 -1304,139.20,4.80,1.00,0.00,1.00 -1305,144.00,4.80,1.00,0.00,1.00 -1306,148.80,4.80,1.00,0.00,1.00 -1307,153.60,4.80,1.00,0.00,1.00 -1308,158.40,4.80,1.00,0.00,1.00 -1309,163.20,4.80,1.00,0.00,1.00 -1310,168.00,0.00,1.00,0.00,1.00 -1311,172.80,0.00,1.00,0.00,1.00 -1312,177.60,0.00,1.00,0.00,1.00 -1313,-177.60,-0.00,1.00,0.00,1.00 -1314,-172.80,-0.00,1.00,0.00,1.00 -1315,-168.00,-0.00,1.00,0.00,1.00 -1316,-163.20,-4.80,1.00,0.00,1.00 -1317,-158.40,-4.80,1.00,0.00,1.00 -1318,-153.60,-4.80,1.00,0.00,1.00 -1319,-148.80,-4.80,1.00,0.00,1.00 -1320,-144.00,-4.80,1.00,0.00,1.00 -1321,-139.20,-4.80,1.00,0.00,1.00 -1322,-134.40,-4.80,1.00,0.00,1.00 -1323,-129.60,-4.80,1.00,0.00,1.00 -1324,-124.80,-4.80,1.00,0.00,1.00 -1325,-120.00,-9.60,1.00,0.00,1.00 -1326,-115.20,-9.60,1.00,0.00,1.00 -1327,-110.40,-9.60,1.00,0.00,1.00 -1328,-105.60,-9.60,1.00,0.00,1.00 -1329,-100.80,-9.60,1.00,0.00,1.00 -1330,-96.00,-9.60,1.00,0.00,1.00 -1331,-91.20,-9.60,1.00,0.00,1.00 -1332,-86.40,-9.60,1.00,0.00,1.00 -1333,-81.60,-9.60,1.00,0.00,1.00 -1334,-76.80,-9.60,1.00,0.00,1.00 -1335,-72.00,-9.60,1.00,0.00,1.00 -1336,-67.20,-9.60,1.00,0.00,1.00 -1337,-62.40,-9.60,1.00,0.00,1.00 -1338,-57.60,-4.80,1.00,0.00,1.00 -1339,-52.80,-4.80,1.00,0.00,1.00 -1340,-48.00,-4.80,1.00,0.00,1.00 -1341,-43.20,-4.80,1.00,0.00,1.00 -1342,-38.40,-4.80,1.00,0.00,1.00 -1343,-33.60,-4.80,1.00,0.00,1.00 -1344,-28.80,-4.80,1.00,0.00,1.00 -1345,-24.00,-4.80,1.00,0.00,1.00 -1346,-19.20,-4.80,1.00,0.00,1.00 -1347,-14.40,-0.00,1.00,0.00,1.00 -1348,-9.60,-0.00,1.00,0.00,1.00 -1349,-4.80,-0.00,1.00,0.00,1.00 -1350,0.00,0.00,1.00,0.00,1.00 -1351,4.80,0.00,1.00,0.00,1.00 -1352,9.60,0.00,1.00,0.00,1.00 -1353,14.40,0.00,1.00,0.00,1.00 -1354,19.20,0.00,1.00,0.00,1.00 -1355,24.00,0.00,1.00,0.00,1.00 -1356,28.80,0.00,1.00,0.00,1.00 -1357,33.60,0.00,1.00,0.00,1.00 -1358,38.40,0.00,1.00,0.00,1.00 -1359,43.20,4.80,1.00,0.00,1.00 -1360,48.00,4.80,1.00,0.00,1.00 -1361,52.80,4.80,1.00,0.00,1.00 -1362,57.60,4.80,1.00,0.00,1.00 -1363,62.40,4.80,1.00,0.00,1.00 -1364,67.20,4.80,1.00,0.00,1.00 -1365,72.00,4.80,1.00,0.00,1.00 -1366,76.80,4.80,1.00,0.00,1.00 -1367,81.60,4.80,1.00,0.00,1.00 -1368,86.40,4.80,1.00,0.00,1.00 -1369,91.20,4.80,1.00,0.00,1.00 -1370,96.00,4.80,1.00,0.00,1.00 -1371,100.80,4.80,1.00,0.00,1.00 -1372,105.60,4.80,1.00,0.00,1.00 -1373,110.40,4.80,1.00,0.00,1.00 -1374,115.20,4.80,1.00,0.00,1.00 -1375,120.00,4.80,1.00,0.00,1.00 -1376,124.80,4.80,1.00,0.00,1.00 -1377,129.60,4.80,1.00,0.00,1.00 -1378,134.40,4.80,1.00,0.00,1.00 -1379,139.20,0.00,1.00,0.00,1.00 -1380,144.00,0.00,1.00,0.00,1.00 -1381,148.80,0.00,1.00,0.00,1.00 -1382,153.60,0.00,1.00,0.00,1.00 -1383,158.40,0.00,1.00,0.00,1.00 -1384,163.20,0.00,1.00,0.00,1.00 -1385,168.00,0.00,1.00,0.00,1.00 -1386,172.80,0.00,1.00,0.00,1.00 -1387,177.60,0.00,1.00,0.00,1.00 -1388,-177.60,-0.00,1.00,0.00,1.00 -1389,-172.80,-0.00,1.00,0.00,1.00 -1390,-168.00,-0.00,1.00,0.00,1.00 -1391,-163.20,-0.00,1.00,0.00,1.00 -1392,-158.40,-0.00,1.00,0.00,1.00 -1393,-153.60,-0.00,1.00,0.00,1.00 -1394,-148.80,-0.00,1.00,0.00,1.00 -1395,-144.00,-0.00,1.00,0.00,1.00 -1396,-139.20,-0.00,1.00,0.00,1.00 -1397,-134.40,-4.80,1.00,0.00,1.00 -1398,-129.60,-4.80,1.00,0.00,1.00 -1399,-124.80,-4.80,1.00,0.00,1.00 -1400,-120.00,-4.80,1.00,0.00,1.00 -1401,-115.20,-4.80,1.00,0.00,1.00 -1402,-110.40,-4.80,1.00,0.00,1.00 -1403,-105.60,-4.80,1.00,0.00,1.00 -1404,-100.80,-4.80,1.00,0.00,1.00 -1405,-96.00,-4.80,1.00,0.00,1.00 -1406,-91.20,-4.80,1.00,0.00,1.00 -1407,-86.40,-4.80,1.00,0.00,1.00 -1408,-81.60,-4.80,1.00,0.00,1.00 -1409,-76.80,-4.80,1.00,0.00,1.00 -1410,-72.00,-4.80,1.00,0.00,1.00 -1411,-67.20,-4.80,1.00,0.00,1.00 -1412,-62.40,-4.80,1.00,0.00,1.00 -1413,-57.60,-4.80,1.00,0.00,1.00 -1414,-52.80,-4.80,1.00,0.00,1.00 -1415,-48.00,-4.80,1.00,0.00,1.00 -1416,-43.20,-4.80,1.00,0.00,1.00 -1417,-38.40,-0.00,1.00,0.00,1.00 -1418,-33.60,-0.00,1.00,0.00,1.00 -1419,-28.80,-0.00,1.00,0.00,1.00 -1420,-24.00,-0.00,1.00,0.00,1.00 -1421,-19.20,-0.00,1.00,0.00,1.00 -1422,-14.40,-0.00,1.00,0.00,1.00 -1423,-9.60,-0.00,1.00,0.00,1.00 -1424,-4.80,-0.00,1.00,0.00,1.00 -1425,0.00,0.00,1.00,0.00,1.00 -1426,4.80,-0.00,1.00,0.00,1.00 -1427,9.60,-0.00,1.00,0.00,1.00 -1428,14.40,-0.00,1.00,0.00,1.00 -1429,19.20,-0.00,1.00,0.00,1.00 -1430,24.00,-0.00,1.00,0.00,1.00 -1431,28.80,-0.00,1.00,0.00,1.00 -1432,33.60,-0.00,1.00,0.00,1.00 -1433,38.40,-0.00,1.00,0.00,1.00 -1434,43.20,-0.00,1.00,0.00,1.00 -1435,48.00,-0.00,1.00,0.00,1.00 -1436,52.80,-0.00,1.00,0.00,1.00 -1437,57.60,-0.00,1.00,0.00,1.00 -1438,62.40,-0.00,1.00,0.00,1.00 -1439,67.20,-0.00,1.00,0.00,1.00 -1440,72.00,-0.00,1.00,0.00,1.00 -1441,76.80,-0.00,1.00,0.00,1.00 -1442,81.60,-0.00,1.00,0.00,1.00 -1443,86.40,-0.00,1.00,0.00,1.00 -1444,91.20,-0.00,1.00,0.00,1.00 -1445,96.00,-0.00,1.00,0.00,1.00 -1446,100.80,-0.00,1.00,0.00,1.00 -1447,105.60,-0.00,1.00,0.00,1.00 -1448,110.40,-0.00,1.00,0.00,1.00 -1449,115.20,-0.00,1.00,0.00,1.00 -1450,120.00,-0.00,1.00,0.00,1.00 -1451,124.80,-0.00,1.00,0.00,1.00 -1452,129.60,-0.00,1.00,0.00,1.00 -1453,134.40,-0.00,1.00,0.00,1.00 -1454,139.20,-0.00,1.00,0.00,1.00 -1455,144.00,-0.00,1.00,0.00,1.00 -1456,148.80,-0.00,1.00,0.00,1.00 -1457,153.60,-0.00,1.00,0.00,1.00 -1458,158.40,-0.00,1.00,0.00,1.00 -1459,163.20,-0.00,1.00,0.00,1.00 -1460,168.00,-0.00,1.00,0.00,1.00 -1461,172.80,-0.00,1.00,0.00,1.00 -1462,177.60,-0.00,1.00,0.00,1.00 -1463,-177.60,0.00,1.00,0.00,1.00 -1464,-172.80,0.00,1.00,0.00,1.00 -1465,-168.00,0.00,1.00,0.00,1.00 -1466,-163.20,0.00,1.00,0.00,1.00 -1467,-158.40,0.00,1.00,0.00,1.00 -1468,-153.60,0.00,1.00,0.00,1.00 -1469,-148.80,0.00,1.00,0.00,1.00 -1470,-144.00,0.00,1.00,0.00,1.00 -1471,-139.20,0.00,1.00,0.00,1.00 -1472,-134.40,0.00,1.00,0.00,1.00 -1473,-129.60,0.00,1.00,0.00,1.00 -1474,-124.80,0.00,1.00,0.00,1.00 -1475,-120.00,0.00,1.00,0.00,1.00 -1476,-115.20,0.00,1.00,0.00,1.00 -1477,-110.40,0.00,1.00,0.00,1.00 -1478,-105.60,0.00,1.00,0.00,1.00 -1479,-100.80,0.00,1.00,0.00,1.00 -1480,-96.00,0.00,1.00,0.00,1.00 -1481,-91.20,0.00,1.00,0.00,1.00 -1482,-86.40,0.00,1.00,0.00,1.00 -1483,-81.60,0.00,1.00,0.00,1.00 -1484,-76.80,0.00,1.00,0.00,1.00 -1485,-72.00,0.00,1.00,0.00,1.00 -1486,-67.20,0.00,1.00,0.00,1.00 -1487,-62.40,0.00,1.00,0.00,1.00 -1488,-57.60,0.00,1.00,0.00,1.00 -1489,-52.80,0.00,1.00,0.00,1.00 -1490,-48.00,0.00,1.00,0.00,1.00 -1491,-43.20,0.00,1.00,0.00,1.00 -1492,-38.40,0.00,1.00,0.00,1.00 -1493,-33.60,0.00,1.00,0.00,1.00 -1494,-28.80,0.00,1.00,0.00,1.00 -1495,-24.00,0.00,1.00,0.00,1.00 -1496,-19.20,0.00,1.00,0.00,1.00 -1497,-14.40,0.00,1.00,0.00,1.00 -1498,-9.60,0.00,1.00,0.00,1.00 -1499,-4.80,0.00,1.00,0.00,1.00 -- GitLab From 69d2590c565f3b15c717b5c4c813aeb1e0293305 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 24 Oct 2022 17:56:03 +0200 Subject: [PATCH 288/479] Fixed .csv files, accidentally zeroed --- scripts/testv/headrot.csv | 8100 +++++++++++++++++++++++ scripts/testv/headrot_case00_3000_q.csv | 3000 +++++++++ scripts/testv/headrot_case01_3000_q.csv | 3000 +++++++++ scripts/testv/headrot_case02_3000_q.csv | 3000 +++++++++ scripts/testv/headrot_case03_3000_q.csv | 3000 +++++++++ scripts/testv/stvISM1.csv | 1500 +++++ scripts/testv/stvISM2.csv | 1500 +++++ scripts/testv/stvISM3.csv | 1500 +++++ scripts/testv/stvISM4.csv | 1500 +++++ 9 files changed, 26100 insertions(+) diff --git a/scripts/testv/headrot.csv b/scripts/testv/headrot.csv index e69de29bb2..b298d22c89 100644 --- a/scripts/testv/headrot.csv +++ b/scripts/testv/headrot.csv @@ -0,0 +1,8100 @@ +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.995989,0.000000,0.000000,0.089474 +0.995778,0.000000,0.000000,0.091791 +0.995562,0.000000,0.000000,0.094108 +0.995340,0.000000,0.000000,0.096425 +0.995113,0.000000,0.000000,0.098741 +0.994881,0.000000,0.000000,0.101056 +0.994643,0.000000,0.000000,0.103371 +0.994400,0.000000,0.000000,0.105686 +0.994151,0.000000,0.000000,0.107999 +0.993897,0.000000,0.000000,0.110313 +0.993638,0.000000,0.000000,0.112625 +0.993373,0.000000,0.000000,0.114937 +0.993103,0.000000,0.000000,0.117249 +0.992827,0.000000,0.000000,0.119559 +0.992546,0.000000,0.000000,0.121869 +0.992260,0.000000,0.000000,0.124179 +0.991968,0.000000,0.000000,0.126488 +0.991671,0.000000,0.000000,0.128796 +0.991369,0.000000,0.000000,0.131103 +0.991061,0.000000,0.000000,0.133410 +0.990748,0.000000,0.000000,0.135716 +0.990429,0.000000,0.000000,0.138021 +0.990105,0.000000,0.000000,0.140325 +0.989776,0.000000,0.000000,0.142629 +0.989442,0.000000,0.000000,0.144932 +0.989102,0.000000,0.000000,0.147234 +0.988756,0.000000,0.000000,0.149535 +0.988406,0.000000,0.000000,0.151836 +0.988050,0.000000,0.000000,0.154136 +0.987688,0.000000,0.000000,0.156434 +0.987322,0.000000,0.000000,0.158732 +0.986950,0.000000,0.000000,0.161030 +0.986572,0.000000,0.000000,0.163326 +0.986189,0.000000,0.000000,0.165621 +0.985801,0.000000,0.000000,0.167916 +0.985408,0.000000,0.000000,0.170209 +0.985009,0.000000,0.000000,0.172502 +0.984605,0.000000,0.000000,0.174794 +0.984196,0.000000,0.000000,0.177085 +0.983781,0.000000,0.000000,0.179375 +0.983361,0.000000,0.000000,0.181663 +0.982935,0.000000,0.000000,0.183951 +0.982505,0.000000,0.000000,0.186238 +0.982069,0.000000,0.000000,0.188524 +0.981627,0.000000,0.000000,0.190809 +0.981180,0.000000,0.000000,0.193093 +0.980728,0.000000,0.000000,0.195376 +0.980271,0.000000,0.000000,0.197657 +0.979809,0.000000,0.000000,0.199938 +0.979341,0.000000,0.000000,0.202218 +0.978867,0.000000,0.000000,0.204496 +0.978389,0.000000,0.000000,0.206773 +0.977905,0.000000,0.000000,0.209050 +0.977416,0.000000,0.000000,0.211325 +0.976921,0.000000,0.000000,0.213599 +0.976422,0.000000,0.000000,0.215872 +0.975917,0.000000,0.000000,0.218143 +0.975406,0.000000,0.000000,0.220414 +0.974891,0.000000,0.000000,0.222683 +0.974370,0.000000,0.000000,0.224951 +0.973844,0.000000,0.000000,0.227218 +0.973313,0.000000,0.000000,0.229484 +0.972776,0.000000,0.000000,0.231748 +0.972234,0.000000,0.000000,0.234011 +0.971687,0.000000,0.000000,0.236273 +0.971134,0.000000,0.000000,0.238533 +0.970577,0.000000,0.000000,0.240793 +0.970014,0.000000,0.000000,0.243051 +0.969445,0.000000,0.000000,0.245307 +0.968872,0.000000,0.000000,0.247563 +0.968293,0.000000,0.000000,0.249817 +0.967709,0.000000,0.000000,0.252069 +0.967120,0.000000,0.000000,0.254321 +0.966526,0.000000,0.000000,0.256571 +0.965926,0.000000,0.000000,0.258819 +0.965321,0.000000,0.000000,0.261066 +0.964711,0.000000,0.000000,0.263312 +0.964095,0.000000,0.000000,0.265556 +0.963475,0.000000,0.000000,0.267799 +0.962849,0.000000,0.000000,0.270040 +0.962218,0.000000,0.000000,0.272280 +0.961582,0.000000,0.000000,0.274519 +0.960940,0.000000,0.000000,0.276756 +0.960294,0.000000,0.000000,0.278991 +0.959642,0.000000,0.000000,0.281225 +0.958985,0.000000,0.000000,0.283457 +0.958323,0.000000,0.000000,0.285688 +0.957655,0.000000,0.000000,0.287918 +0.956983,0.000000,0.000000,0.290145 +0.956305,0.000000,0.000000,0.292372 +0.955622,0.000000,0.000000,0.294596 +0.954934,0.000000,0.000000,0.296819 +0.954240,0.000000,0.000000,0.299041 +0.953542,0.000000,0.000000,0.301261 +0.952838,0.000000,0.000000,0.303479 +0.952129,0.000000,0.000000,0.305695 +0.951415,0.000000,0.000000,0.307910 +0.950696,0.000000,0.000000,0.310123 +0.949972,0.000000,0.000000,0.312335 +0.949243,0.000000,0.000000,0.314545 +0.948508,0.000000,0.000000,0.316753 +0.947768,0.000000,0.000000,0.318959 +0.947024,0.000000,0.000000,0.321164 +0.946274,0.000000,0.000000,0.323367 +0.945519,0.000000,0.000000,0.325568 +0.944758,0.000000,0.000000,0.327768 +0.943993,0.000000,0.000000,0.329965 +0.943223,0.000000,0.000000,0.332161 +0.942447,0.000000,0.000000,0.334355 +0.941667,0.000000,0.000000,0.336547 +0.940881,0.000000,0.000000,0.338738 +0.940090,0.000000,0.000000,0.340927 +0.939294,0.000000,0.000000,0.343113 +0.938493,0.000000,0.000000,0.345298 +0.937687,0.000000,0.000000,0.347481 +0.936876,0.000000,0.000000,0.349662 +0.936060,0.000000,0.000000,0.351842 +0.935238,0.000000,0.000000,0.354019 +0.934412,0.000000,0.000000,0.356194 +0.933580,0.000000,0.000000,0.358368 +0.932744,0.000000,0.000000,0.360540 +0.931902,0.000000,0.000000,0.362709 +0.931056,0.000000,0.000000,0.364877 +0.930204,0.000000,0.000000,0.367042 +0.929348,0.000000,0.000000,0.369206 +0.928486,0.000000,0.000000,0.371368 +0.927619,0.000000,0.000000,0.373528 +0.926747,0.000000,0.000000,0.375685 +0.925871,0.000000,0.000000,0.377841 +0.924989,0.000000,0.000000,0.379994 +0.924102,0.000000,0.000000,0.382146 +0.923210,0.000000,0.000000,0.384295 +0.922313,0.000000,0.000000,0.386443 +0.921412,0.000000,0.000000,0.388588 +0.920505,0.000000,0.000000,0.390731 +0.919593,0.000000,0.000000,0.392872 +0.918676,0.000000,0.000000,0.395011 +0.917755,0.000000,0.000000,0.397148 +0.916828,0.000000,0.000000,0.399283 +0.915896,0.000000,0.000000,0.401415 +0.914960,0.000000,0.000000,0.403545 +0.914018,0.000000,0.000000,0.405673 +0.913072,0.000000,0.000000,0.407799 +0.912120,0.000000,0.000000,0.409923 +0.911164,0.000000,0.000000,0.412045 +0.910202,0.000000,0.000000,0.414164 +0.909236,0.000000,0.000000,0.416281 +0.908265,0.000000,0.000000,0.418396 +0.907289,0.000000,0.000000,0.420508 +0.906308,0.000000,0.000000,0.422618 +0.905322,0.000000,0.000000,0.424726 +0.904331,0.000000,0.000000,0.426832 +0.903335,0.000000,0.000000,0.428935 +0.902335,0.000000,0.000000,0.431036 +0.901329,0.000000,0.000000,0.433135 +0.900319,0.000000,0.000000,0.435231 +0.899304,0.000000,0.000000,0.437325 +0.898283,0.000000,0.000000,0.439417 +0.897258,0.000000,0.000000,0.441506 +0.896229,0.000000,0.000000,0.443593 +0.895194,0.000000,0.000000,0.445677 +0.894154,0.000000,0.000000,0.447759 +0.893110,0.000000,0.000000,0.449839 +0.892061,0.000000,0.000000,0.451916 +0.891007,0.000000,0.000000,0.453990 +0.889948,0.000000,0.000000,0.456063 +0.888884,0.000000,0.000000,0.458132 +0.887815,0.000000,0.000000,0.460200 +0.886742,0.000000,0.000000,0.462265 +0.885664,0.000000,0.000000,0.464327 +0.884581,0.000000,0.000000,0.466387 +0.883493,0.000000,0.000000,0.468444 +0.882401,0.000000,0.000000,0.470499 +0.881303,0.000000,0.000000,0.472551 +0.880201,0.000000,0.000000,0.474600 +0.879095,0.000000,0.000000,0.476647 +0.877983,0.000000,0.000000,0.478692 +0.876867,0.000000,0.000000,0.480734 +0.875746,0.000000,0.000000,0.482773 +0.874620,0.000000,0.000000,0.484810 +0.873489,0.000000,0.000000,0.486844 +0.872354,0.000000,0.000000,0.488875 +0.871214,0.000000,0.000000,0.490904 +0.870069,0.000000,0.000000,0.492930 +0.868920,0.000000,0.000000,0.494953 +0.867765,0.000000,0.000000,0.496974 +0.866607,0.000000,0.000000,0.498992 +0.865443,0.000000,0.000000,0.501007 +0.864275,0.000000,0.000000,0.503020 +0.863102,0.000000,0.000000,0.505030 +0.861924,0.000000,0.000000,0.507037 +0.860742,0.000000,0.000000,0.509041 +0.859555,0.000000,0.000000,0.511043 +0.858364,0.000000,0.000000,0.513042 +0.857167,0.000000,0.000000,0.515038 +0.855966,0.000000,0.000000,0.517031 +0.854761,0.000000,0.000000,0.519022 +0.853551,0.000000,0.000000,0.521010 +0.852336,0.000000,0.000000,0.522995 +0.851117,0.000000,0.000000,0.524977 +0.849893,0.000000,0.000000,0.526956 +0.848664,0.000000,0.000000,0.528932 +0.847431,0.000000,0.000000,0.530906 +0.846193,0.000000,0.000000,0.532876 +0.844951,0.000000,0.000000,0.534844 +0.843704,0.000000,0.000000,0.536809 +0.842452,0.000000,0.000000,0.538771 +0.841196,0.000000,0.000000,0.540730 +0.839936,0.000000,0.000000,0.542686 +0.838671,0.000000,0.000000,0.544639 +0.837401,0.000000,0.000000,0.546589 +0.836127,0.000000,0.000000,0.548536 +0.834848,0.000000,0.000000,0.550481 +0.833565,0.000000,0.000000,0.552422 +0.832277,0.000000,0.000000,0.554360 +0.830984,0.000000,0.000000,0.556296 +0.829688,0.000000,0.000000,0.558228 +0.828386,0.000000,0.000000,0.560157 +0.827081,0.000000,0.000000,0.562083 +0.825770,0.000000,0.000000,0.564007 +0.824456,0.000000,0.000000,0.565927 +0.823136,0.000000,0.000000,0.567844 +0.821813,0.000000,0.000000,0.569758 +0.820485,0.000000,0.000000,0.571669 +0.819152,0.000000,0.000000,0.573576 +0.817815,0.000000,0.000000,0.575481 +0.816474,0.000000,0.000000,0.577383 +0.815128,0.000000,0.000000,0.579281 +0.813778,0.000000,0.000000,0.581176 +0.812423,0.000000,0.000000,0.583069 +0.811064,0.000000,0.000000,0.584958 +0.809700,0.000000,0.000000,0.586844 +0.808333,0.000000,0.000000,0.588726 +0.806960,0.000000,0.000000,0.590606 +0.805584,0.000000,0.000000,0.592482 +0.804203,0.000000,0.000000,0.594355 +0.802817,0.000000,0.000000,0.596225 +0.801428,0.000000,0.000000,0.598092 +0.800034,0.000000,0.000000,0.599955 +0.798636,0.000000,0.000000,0.601815 +0.797233,0.000000,0.000000,0.603672 +0.795826,0.000000,0.000000,0.605526 +0.794415,0.000000,0.000000,0.607376 +0.792999,0.000000,0.000000,0.609223 +0.791579,0.000000,0.000000,0.611067 +0.790155,0.000000,0.000000,0.612907 +0.788727,0.000000,0.000000,0.614744 +0.787294,0.000000,0.000000,0.616578 +0.785857,0.000000,0.000000,0.618408 +0.784416,0.000000,0.000000,0.620235 +0.782970,0.000000,0.000000,0.622059 +0.781520,0.000000,0.000000,0.623880 +0.780067,0.000000,0.000000,0.625697 +0.778608,0.000000,0.000000,0.627510 +0.777146,0.000000,0.000000,0.629320 +0.775679,0.000000,0.000000,0.631127 +0.774209,0.000000,0.000000,0.632931 +0.772734,0.000000,0.000000,0.634731 +0.771254,0.000000,0.000000,0.636527 +0.769771,0.000000,0.000000,0.638320 +0.768284,0.000000,0.000000,0.640110 +0.766792,0.000000,0.000000,0.641896 +0.765296,0.000000,0.000000,0.643679 +0.763796,0.000000,0.000000,0.645458 +0.762292,0.000000,0.000000,0.647233 +0.760784,0.000000,0.000000,0.649006 +0.759271,0.000000,0.000000,0.650774 +0.757755,0.000000,0.000000,0.652539 +0.756234,0.000000,0.000000,0.654301 +0.754710,0.000000,0.000000,0.656059 +0.753181,0.000000,0.000000,0.657814 +0.751648,0.000000,0.000000,0.659564 +0.750111,0.000000,0.000000,0.661312 +0.748570,0.000000,0.000000,0.663056 +0.747025,0.000000,0.000000,0.664796 +0.745476,0.000000,0.000000,0.666532 +0.743923,0.000000,0.000000,0.668265 +0.742366,0.000000,0.000000,0.669995 +0.740805,0.000000,0.000000,0.671721 +0.739239,0.000000,0.000000,0.673443 +0.737670,0.000000,0.000000,0.675161 +0.736097,0.000000,0.000000,0.676876 +0.734520,0.000000,0.000000,0.678587 +0.732939,0.000000,0.000000,0.680295 +0.731354,0.000000,0.000000,0.681998 +0.729765,0.000000,0.000000,0.683698 +0.728172,0.000000,0.000000,0.685395 +0.726575,0.000000,0.000000,0.687088 +0.724974,0.000000,0.000000,0.688776 +0.723369,0.000000,0.000000,0.690462 +0.721760,0.000000,0.000000,0.692143 +0.720148,0.000000,0.000000,0.693821 +0.718531,0.000000,0.000000,0.695495 +0.716911,0.000000,0.000000,0.697165 +0.715286,0.000000,0.000000,0.698832 +0.713658,0.000000,0.000000,0.700494 +0.712026,0.000000,0.000000,0.702153 +0.710390,0.000000,0.000000,0.703808 +0.708750,0.000000,0.000000,0.705459 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 diff --git a/scripts/testv/headrot_case00_3000_q.csv b/scripts/testv/headrot_case00_3000_q.csv index e69de29bb2..e2f6939939 100644 --- a/scripts/testv/headrot_case00_3000_q.csv +++ b/scripts/testv/headrot_case00_3000_q.csv @@ -0,0 +1,3000 @@ +1.000000,0.000000,0.000000,0.000000 +0.999999,0.000000,0.000000,0.001047 +0.999998,0.000000,0.000000,0.002094 +0.999995,0.000000,0.000000,0.003142 +0.999991,0.000000,0.000000,0.004189 +0.999986,0.000000,0.000000,0.005236 +0.999980,0.000000,0.000000,0.006283 +0.999973,0.000000,0.000000,0.007330 +0.999965,0.000000,0.000000,0.008377 +0.999956,0.000000,0.000000,0.009425 +0.999945,0.000000,0.000000,0.010472 +0.999934,0.000000,0.000000,0.011519 +0.999921,0.000000,0.000000,0.012566 +0.999907,0.000000,0.000000,0.013613 +0.999893,0.000000,0.000000,0.014660 +0.999877,0.000000,0.000000,0.015707 +0.999860,0.000000,0.000000,0.016754 +0.999842,0.000000,0.000000,0.017801 +0.999822,0.000000,0.000000,0.018848 +0.999802,0.000000,0.000000,0.019895 +0.999781,0.000000,0.000000,0.020942 +0.999758,0.000000,0.000000,0.021989 +0.999735,0.000000,0.000000,0.023036 +0.999710,0.000000,0.000000,0.024083 +0.999684,0.000000,0.000000,0.025130 +0.999657,0.000000,0.000000,0.026177 +0.999629,0.000000,0.000000,0.027224 +0.999600,0.000000,0.000000,0.028271 +0.999570,0.000000,0.000000,0.029317 +0.999539,0.000000,0.000000,0.030364 +0.999507,0.000000,0.000000,0.031411 +0.999473,0.000000,0.000000,0.032457 +0.999439,0.000000,0.000000,0.033504 +0.999403,0.000000,0.000000,0.034551 +0.999366,0.000000,0.000000,0.035597 +0.999328,0.000000,0.000000,0.036644 +0.999289,0.000000,0.000000,0.037690 +0.999249,0.000000,0.000000,0.038737 +0.999208,0.000000,0.000000,0.039783 +0.999166,0.000000,0.000000,0.040829 +0.999123,0.000000,0.000000,0.041876 +0.999078,0.000000,0.000000,0.042922 +0.999033,0.000000,0.000000,0.043968 +0.998986,0.000000,0.000000,0.045014 +0.998939,0.000000,0.000000,0.046060 +0.998890,0.000000,0.000000,0.047106 +0.998840,0.000000,0.000000,0.048152 +0.998789,0.000000,0.000000,0.049198 +0.998737,0.000000,0.000000,0.050244 +0.998684,0.000000,0.000000,0.051290 +0.998630,0.000000,0.000000,0.052336 +0.998574,0.000000,0.000000,0.053382 +0.998518,0.000000,0.000000,0.054427 +0.998460,0.000000,0.000000,0.055473 +0.998402,0.000000,0.000000,0.056519 +0.998342,0.000000,0.000000,0.057564 +0.998281,0.000000,0.000000,0.058609 +0.998219,0.000000,0.000000,0.059655 +0.998156,0.000000,0.000000,0.060700 +0.998092,0.000000,0.000000,0.061745 +0.998027,0.000000,0.000000,0.062791 +0.997960,0.000000,0.000000,0.063836 +0.997893,0.000000,0.000000,0.064881 +0.997825,0.000000,0.000000,0.065926 +0.997755,0.000000,0.000000,0.066970 +0.997684,0.000000,0.000000,0.068015 +0.997613,0.000000,0.000000,0.069060 +0.997540,0.000000,0.000000,0.070105 +0.997466,0.000000,0.000000,0.071149 +0.997391,0.000000,0.000000,0.072194 +0.997314,0.000000,0.000000,0.073238 +0.997237,0.000000,0.000000,0.074283 +0.997159,0.000000,0.000000,0.075327 +0.997079,0.000000,0.000000,0.076371 +0.996999,0.000000,0.000000,0.077415 +0.996917,0.000000,0.000000,0.078459 +0.996835,0.000000,0.000000,0.079503 +0.996751,0.000000,0.000000,0.080547 +0.996666,0.000000,0.000000,0.081591 +0.996580,0.000000,0.000000,0.082634 +0.996493,0.000000,0.000000,0.083678 +0.996405,0.000000,0.000000,0.084721 +0.996315,0.000000,0.000000,0.085765 +0.996225,0.000000,0.000000,0.086808 +0.996134,0.000000,0.000000,0.087851 +0.996041,0.000000,0.000000,0.088894 +0.995947,0.000000,0.000000,0.089937 +0.995853,0.000000,0.000000,0.090980 +0.995757,0.000000,0.000000,0.092023 +0.995660,0.000000,0.000000,0.093066 +0.995562,0.000000,0.000000,0.094108 +0.995463,0.000000,0.000000,0.095151 +0.995363,0.000000,0.000000,0.096193 +0.995261,0.000000,0.000000,0.097235 +0.995159,0.000000,0.000000,0.098278 +0.995056,0.000000,0.000000,0.099320 +0.994951,0.000000,0.000000,0.100362 +0.994845,0.000000,0.000000,0.101404 +0.994739,0.000000,0.000000,0.102445 +0.994631,0.000000,0.000000,0.103487 +0.994522,0.000000,0.000000,0.104528 +0.994412,0.000000,0.000000,0.105570 +0.994301,0.000000,0.000000,0.106611 +0.994189,0.000000,0.000000,0.107652 +0.994075,0.000000,0.000000,0.108693 +0.993961,0.000000,0.000000,0.109734 +0.993845,0.000000,0.000000,0.110775 +0.993729,0.000000,0.000000,0.111816 +0.993611,0.000000,0.000000,0.112856 +0.993493,0.000000,0.000000,0.113897 +0.993373,0.000000,0.000000,0.114937 +0.993252,0.000000,0.000000,0.115977 +0.993130,0.000000,0.000000,0.117017 +0.993007,0.000000,0.000000,0.118057 +0.992883,0.000000,0.000000,0.119097 +0.992757,0.000000,0.000000,0.120137 +0.992631,0.000000,0.000000,0.121176 +0.992504,0.000000,0.000000,0.122216 +0.992375,0.000000,0.000000,0.123255 +0.992245,0.000000,0.000000,0.124294 +0.992115,0.000000,0.000000,0.125333 +0.991983,0.000000,0.000000,0.126372 +0.991850,0.000000,0.000000,0.127411 +0.991716,0.000000,0.000000,0.128449 +0.991581,0.000000,0.000000,0.129488 +0.991445,0.000000,0.000000,0.130526 +0.991308,0.000000,0.000000,0.131564 +0.991169,0.000000,0.000000,0.132602 +0.991030,0.000000,0.000000,0.133640 +0.990889,0.000000,0.000000,0.134678 +0.990748,0.000000,0.000000,0.135716 +0.990605,0.000000,0.000000,0.136753 +0.990461,0.000000,0.000000,0.137790 +0.990317,0.000000,0.000000,0.138827 +0.990171,0.000000,0.000000,0.139864 +0.990024,0.000000,0.000000,0.140901 +0.989876,0.000000,0.000000,0.141938 +0.989726,0.000000,0.000000,0.142974 +0.989576,0.000000,0.000000,0.144011 +0.989425,0.000000,0.000000,0.145047 +0.989272,0.000000,0.000000,0.146083 +0.989119,0.000000,0.000000,0.147119 +0.988964,0.000000,0.000000,0.148155 +0.988809,0.000000,0.000000,0.149190 +0.988652,0.000000,0.000000,0.150226 +0.988494,0.000000,0.000000,0.151261 +0.988335,0.000000,0.000000,0.152296 +0.988175,0.000000,0.000000,0.153331 +0.988014,0.000000,0.000000,0.154366 +0.987852,0.000000,0.000000,0.155400 +0.987688,0.000000,0.000000,0.156434 +0.987524,0.000000,0.000000,0.157469 +0.987359,0.000000,0.000000,0.158503 +0.987192,0.000000,0.000000,0.159537 +0.987024,0.000000,0.000000,0.160570 +0.986856,0.000000,0.000000,0.161604 +0.986686,0.000000,0.000000,0.162637 +0.986515,0.000000,0.000000,0.163670 +0.986343,0.000000,0.000000,0.164703 +0.986170,0.000000,0.000000,0.165736 +0.985996,0.000000,0.000000,0.166769 +0.985821,0.000000,0.000000,0.167801 +0.985645,0.000000,0.000000,0.168833 +0.985467,0.000000,0.000000,0.169866 +0.985289,0.000000,0.000000,0.170897 +0.985109,0.000000,0.000000,0.171929 +0.984929,0.000000,0.000000,0.172961 +0.984747,0.000000,0.000000,0.173992 +0.984564,0.000000,0.000000,0.175023 +0.984381,0.000000,0.000000,0.176054 +0.984196,0.000000,0.000000,0.177085 +0.984010,0.000000,0.000000,0.178115 +0.983823,0.000000,0.000000,0.179146 +0.983634,0.000000,0.000000,0.180176 +0.983445,0.000000,0.000000,0.181206 +0.983255,0.000000,0.000000,0.182236 +0.983064,0.000000,0.000000,0.183265 +0.982871,0.000000,0.000000,0.184294 +0.982678,0.000000,0.000000,0.185324 +0.982483,0.000000,0.000000,0.186353 +0.982287,0.000000,0.000000,0.187381 +0.982090,0.000000,0.000000,0.188410 +0.981893,0.000000,0.000000,0.189438 +0.981694,0.000000,0.000000,0.190466 +0.981494,0.000000,0.000000,0.191494 +0.981293,0.000000,0.000000,0.192522 +0.981091,0.000000,0.000000,0.193549 +0.980887,0.000000,0.000000,0.194577 +0.980683,0.000000,0.000000,0.195604 +0.980478,0.000000,0.000000,0.196631 +0.980271,0.000000,0.000000,0.197657 +0.980064,0.000000,0.000000,0.198684 +0.979855,0.000000,0.000000,0.199710 +0.979645,0.000000,0.000000,0.200736 +0.979435,0.000000,0.000000,0.201762 +0.979223,0.000000,0.000000,0.202787 +0.979010,0.000000,0.000000,0.203813 +0.978796,0.000000,0.000000,0.204838 +0.978581,0.000000,0.000000,0.205863 +0.978365,0.000000,0.000000,0.206887 +0.978148,0.000000,0.000000,0.207912 +0.977929,0.000000,0.000000,0.208936 +0.977710,0.000000,0.000000,0.209960 +0.977490,0.000000,0.000000,0.210984 +0.977268,0.000000,0.000000,0.212007 +0.977046,0.000000,0.000000,0.213030 +0.976822,0.000000,0.000000,0.214053 +0.976597,0.000000,0.000000,0.215076 +0.976371,0.000000,0.000000,0.216099 +0.976145,0.000000,0.000000,0.217121 +0.975917,0.000000,0.000000,0.218143 +0.975688,0.000000,0.000000,0.219165 +0.975458,0.000000,0.000000,0.220187 +0.975227,0.000000,0.000000,0.221208 +0.974994,0.000000,0.000000,0.222229 +0.974761,0.000000,0.000000,0.223250 +0.974527,0.000000,0.000000,0.224271 +0.974291,0.000000,0.000000,0.225291 +0.974055,0.000000,0.000000,0.226311 +0.973817,0.000000,0.000000,0.227331 +0.973579,0.000000,0.000000,0.228351 +0.973339,0.000000,0.000000,0.229370 +0.973099,0.000000,0.000000,0.230389 +0.972857,0.000000,0.000000,0.231408 +0.972614,0.000000,0.000000,0.232427 +0.972370,0.000000,0.000000,0.233445 +0.972125,0.000000,0.000000,0.234463 +0.971879,0.000000,0.000000,0.235481 +0.971632,0.000000,0.000000,0.236499 +0.971384,0.000000,0.000000,0.237516 +0.971134,0.000000,0.000000,0.238533 +0.970884,0.000000,0.000000,0.239550 +0.970633,0.000000,0.000000,0.240567 +0.970380,0.000000,0.000000,0.241583 +0.970127,0.000000,0.000000,0.242599 +0.969872,0.000000,0.000000,0.243615 +0.969616,0.000000,0.000000,0.244631 +0.969360,0.000000,0.000000,0.245646 +0.969102,0.000000,0.000000,0.246661 +0.968843,0.000000,0.000000,0.247675 +0.968583,0.000000,0.000000,0.248690 +0.968322,0.000000,0.000000,0.249704 +0.968060,0.000000,0.000000,0.250718 +0.967797,0.000000,0.000000,0.251732 +0.967533,0.000000,0.000000,0.252745 +0.967268,0.000000,0.000000,0.253758 +0.967001,0.000000,0.000000,0.254771 +0.966734,0.000000,0.000000,0.255783 +0.966466,0.000000,0.000000,0.256795 +0.966196,0.000000,0.000000,0.257807 +0.965926,0.000000,0.000000,0.258819 +0.965654,0.000000,0.000000,0.259830 +0.965382,0.000000,0.000000,0.260842 +0.965108,0.000000,0.000000,0.261852 +0.964833,0.000000,0.000000,0.262863 +0.964557,0.000000,0.000000,0.263873 +0.964281,0.000000,0.000000,0.264883 +0.964003,0.000000,0.000000,0.265893 +0.963724,0.000000,0.000000,0.266902 +0.963444,0.000000,0.000000,0.267911 +0.963163,0.000000,0.000000,0.268920 +0.962880,0.000000,0.000000,0.269928 +0.962597,0.000000,0.000000,0.270936 +0.962313,0.000000,0.000000,0.271944 +0.962028,0.000000,0.000000,0.272952 +0.961741,0.000000,0.000000,0.273959 +0.961454,0.000000,0.000000,0.274966 +0.961165,0.000000,0.000000,0.275973 +0.960876,0.000000,0.000000,0.276979 +0.960585,0.000000,0.000000,0.277985 +0.960294,0.000000,0.000000,0.278991 +0.960001,0.000000,0.000000,0.279997 +0.959707,0.000000,0.000000,0.281002 +0.959412,0.000000,0.000000,0.282007 +0.959117,0.000000,0.000000,0.283011 +0.958820,0.000000,0.000000,0.284015 +0.958522,0.000000,0.000000,0.285019 +0.958223,0.000000,0.000000,0.286023 +0.957923,0.000000,0.000000,0.287026 +0.957622,0.000000,0.000000,0.288029 +0.957319,0.000000,0.000000,0.289032 +0.957016,0.000000,0.000000,0.290034 +0.956712,0.000000,0.000000,0.291036 +0.956407,0.000000,0.000000,0.292038 +0.956100,0.000000,0.000000,0.293039 +0.955793,0.000000,0.000000,0.294040 +0.955485,0.000000,0.000000,0.295041 +0.955175,0.000000,0.000000,0.296041 +0.954865,0.000000,0.000000,0.297042 +0.954553,0.000000,0.000000,0.298041 +0.954240,0.000000,0.000000,0.299041 +0.953927,0.000000,0.000000,0.300040 +0.953612,0.000000,0.000000,0.301039 +0.953296,0.000000,0.000000,0.302037 +0.952979,0.000000,0.000000,0.303035 +0.952661,0.000000,0.000000,0.304033 +0.952343,0.000000,0.000000,0.305031 +0.952023,0.000000,0.000000,0.306028 +0.951702,0.000000,0.000000,0.307024 +0.951380,0.000000,0.000000,0.308021 +0.951057,0.000000,0.000000,0.309017 +0.950732,0.000000,0.000000,0.310013 +0.950407,0.000000,0.000000,0.311008 +0.950081,0.000000,0.000000,0.312003 +0.949754,0.000000,0.000000,0.312998 +0.949425,0.000000,0.000000,0.313992 +0.949096,0.000000,0.000000,0.314987 +0.948766,0.000000,0.000000,0.315980 +0.948434,0.000000,0.000000,0.316974 +0.948102,0.000000,0.000000,0.317967 +0.947768,0.000000,0.000000,0.318959 +0.947434,0.000000,0.000000,0.319952 +0.947098,0.000000,0.000000,0.320944 +0.946762,0.000000,0.000000,0.321935 +0.946424,0.000000,0.000000,0.322927 +0.946085,0.000000,0.000000,0.323917 +0.945746,0.000000,0.000000,0.324908 +0.945405,0.000000,0.000000,0.325898 +0.945063,0.000000,0.000000,0.326888 +0.944720,0.000000,0.000000,0.327878 +0.944376,0.000000,0.000000,0.328867 +0.944031,0.000000,0.000000,0.329855 +0.943686,0.000000,0.000000,0.330844 +0.943339,0.000000,0.000000,0.331832 +0.942991,0.000000,0.000000,0.332820 +0.942641,0.000000,0.000000,0.333807 +0.942291,0.000000,0.000000,0.334794 +0.941940,0.000000,0.000000,0.335780 +0.941588,0.000000,0.000000,0.336767 +0.941235,0.000000,0.000000,0.337752 +0.940881,0.000000,0.000000,0.338738 +0.940526,0.000000,0.000000,0.339723 +0.940169,0.000000,0.000000,0.340708 +0.939812,0.000000,0.000000,0.341692 +0.939454,0.000000,0.000000,0.342676 +0.939094,0.000000,0.000000,0.343660 +0.938734,0.000000,0.000000,0.344643 +0.938372,0.000000,0.000000,0.345626 +0.938010,0.000000,0.000000,0.346608 +0.937646,0.000000,0.000000,0.347590 +0.937282,0.000000,0.000000,0.348572 +0.936916,0.000000,0.000000,0.349553 +0.936550,0.000000,0.000000,0.350534 +0.936182,0.000000,0.000000,0.351515 +0.935814,0.000000,0.000000,0.352495 +0.935444,0.000000,0.000000,0.353475 +0.935073,0.000000,0.000000,0.354454 +0.934702,0.000000,0.000000,0.355433 +0.934329,0.000000,0.000000,0.356412 +0.933955,0.000000,0.000000,0.357390 +0.933580,0.000000,0.000000,0.358368 +0.933205,0.000000,0.000000,0.359345 +0.932828,0.000000,0.000000,0.360322 +0.932450,0.000000,0.000000,0.361299 +0.932071,0.000000,0.000000,0.362275 +0.931691,0.000000,0.000000,0.363251 +0.931310,0.000000,0.000000,0.364227 +0.930928,0.000000,0.000000,0.365202 +0.930545,0.000000,0.000000,0.366176 +0.930161,0.000000,0.000000,0.367151 +0.929776,0.000000,0.000000,0.368125 +0.929390,0.000000,0.000000,0.369098 +0.929003,0.000000,0.000000,0.370071 +0.928615,0.000000,0.000000,0.371044 +0.928226,0.000000,0.000000,0.372016 +0.927836,0.000000,0.000000,0.372988 +0.927445,0.000000,0.000000,0.373959 +0.927053,0.000000,0.000000,0.374930 +0.926660,0.000000,0.000000,0.375901 +0.926266,0.000000,0.000000,0.376871 +0.925871,0.000000,0.000000,0.377841 +0.925474,0.000000,0.000000,0.378810 +0.925077,0.000000,0.000000,0.379779 +0.924679,0.000000,0.000000,0.380748 +0.924280,0.000000,0.000000,0.381716 +0.923880,0.000000,0.000000,0.382683 +0.923478,0.000000,0.000000,0.383651 +0.923076,0.000000,0.000000,0.384618 +0.922673,0.000000,0.000000,0.385584 +0.922268,0.000000,0.000000,0.386550 +0.921863,0.000000,0.000000,0.387516 +0.921457,0.000000,0.000000,0.388481 +0.921050,0.000000,0.000000,0.389445 +0.920641,0.000000,0.000000,0.390410 +0.920232,0.000000,0.000000,0.391374 +0.919821,0.000000,0.000000,0.392337 +0.919410,0.000000,0.000000,0.393300 +0.918998,0.000000,0.000000,0.394263 +0.918584,0.000000,0.000000,0.395225 +0.918170,0.000000,0.000000,0.396187 +0.917755,0.000000,0.000000,0.397148 +0.917338,0.000000,0.000000,0.398109 +0.916921,0.000000,0.000000,0.399069 +0.916502,0.000000,0.000000,0.400029 +0.916083,0.000000,0.000000,0.400989 +0.915663,0.000000,0.000000,0.401948 +0.915241,0.000000,0.000000,0.402906 +0.914819,0.000000,0.000000,0.403865 +0.914395,0.000000,0.000000,0.404822 +0.913971,0.000000,0.000000,0.405780 +0.913545,0.000000,0.000000,0.406737 +0.913119,0.000000,0.000000,0.407693 +0.912692,0.000000,0.000000,0.408649 +0.912263,0.000000,0.000000,0.409605 +0.911834,0.000000,0.000000,0.410560 +0.911403,0.000000,0.000000,0.411514 +0.910972,0.000000,0.000000,0.412469 +0.910539,0.000000,0.000000,0.413422 +0.910106,0.000000,0.000000,0.414376 +0.909672,0.000000,0.000000,0.415328 +0.909236,0.000000,0.000000,0.416281 +0.908800,0.000000,0.000000,0.417233 +0.908362,0.000000,0.000000,0.418184 +0.907924,0.000000,0.000000,0.419135 +0.907484,0.000000,0.000000,0.420086 +0.907044,0.000000,0.000000,0.421036 +0.906603,0.000000,0.000000,0.421985 +0.906160,0.000000,0.000000,0.422935 +0.905717,0.000000,0.000000,0.423883 +0.905272,0.000000,0.000000,0.424832 +0.904827,0.000000,0.000000,0.425779 +0.904381,0.000000,0.000000,0.426727 +0.903933,0.000000,0.000000,0.427673 +0.903485,0.000000,0.000000,0.428620 +0.903036,0.000000,0.000000,0.429566 +0.902585,0.000000,0.000000,0.430511 +0.902134,0.000000,0.000000,0.431456 +0.901682,0.000000,0.000000,0.432401 +0.901228,0.000000,0.000000,0.433345 +0.900774,0.000000,0.000000,0.434288 +0.900319,0.000000,0.000000,0.435231 +0.899863,0.000000,0.000000,0.436174 +0.899405,0.000000,0.000000,0.437116 +0.898947,0.000000,0.000000,0.438057 +0.898488,0.000000,0.000000,0.438999 +0.898028,0.000000,0.000000,0.439939 +0.897566,0.000000,0.000000,0.440879 +0.897104,0.000000,0.000000,0.441819 +0.896641,0.000000,0.000000,0.442758 +0.896177,0.000000,0.000000,0.443697 +0.895712,0.000000,0.000000,0.444635 +0.895246,0.000000,0.000000,0.445573 +0.894779,0.000000,0.000000,0.446510 +0.894310,0.000000,0.000000,0.447447 +0.893841,0.000000,0.000000,0.448383 +0.893371,0.000000,0.000000,0.449319 +0.892900,0.000000,0.000000,0.450254 +0.892428,0.000000,0.000000,0.451189 +0.891955,0.000000,0.000000,0.452123 +0.891481,0.000000,0.000000,0.453057 +0.891007,0.000000,0.000000,0.453990 +0.890531,0.000000,0.000000,0.454923 +0.890054,0.000000,0.000000,0.455856 +0.889576,0.000000,0.000000,0.456787 +0.889097,0.000000,0.000000,0.457719 +0.888617,0.000000,0.000000,0.458650 +0.888136,0.000000,0.000000,0.459580 +0.887655,0.000000,0.000000,0.460510 +0.887172,0.000000,0.000000,0.461439 +0.886688,0.000000,0.000000,0.462368 +0.886204,0.000000,0.000000,0.463296 +0.885718,0.000000,0.000000,0.464224 +0.885231,0.000000,0.000000,0.465151 +0.884744,0.000000,0.000000,0.466078 +0.884255,0.000000,0.000000,0.467004 +0.883766,0.000000,0.000000,0.467930 +0.883275,0.000000,0.000000,0.468855 +0.882784,0.000000,0.000000,0.469780 +0.882291,0.000000,0.000000,0.470704 +0.881798,0.000000,0.000000,0.471628 +0.881303,0.000000,0.000000,0.472551 +0.880808,0.000000,0.000000,0.473473 +0.880312,0.000000,0.000000,0.474396 +0.879815,0.000000,0.000000,0.475317 +0.879316,0.000000,0.000000,0.476238 +0.878817,0.000000,0.000000,0.477159 +0.878317,0.000000,0.000000,0.478079 +0.877816,0.000000,0.000000,0.478998 +0.877314,0.000000,0.000000,0.479917 +0.876811,0.000000,0.000000,0.480836 +0.876307,0.000000,0.000000,0.481754 +0.875802,0.000000,0.000000,0.482671 +0.875296,0.000000,0.000000,0.483588 +0.874789,0.000000,0.000000,0.484504 +0.874281,0.000000,0.000000,0.485420 +0.873772,0.000000,0.000000,0.486335 +0.873262,0.000000,0.000000,0.487250 +0.872752,0.000000,0.000000,0.488164 +0.872240,0.000000,0.000000,0.489078 +0.871727,0.000000,0.000000,0.489991 +0.871214,0.000000,0.000000,0.490904 +0.870699,0.000000,0.000000,0.491816 +0.870184,0.000000,0.000000,0.492727 +0.869667,0.000000,0.000000,0.493638 +0.869150,0.000000,0.000000,0.494549 +0.868632,0.000000,0.000000,0.495459 +0.868112,0.000000,0.000000,0.496368 +0.867592,0.000000,0.000000,0.497277 +0.867071,0.000000,0.000000,0.498185 +0.866549,0.000000,0.000000,0.499093 +0.866025,0.000000,0.000000,0.500000 +0.865501,0.000000,0.000000,0.500907 +0.864976,0.000000,0.000000,0.501813 +0.864450,0.000000,0.000000,0.502718 +0.863923,0.000000,0.000000,0.503623 +0.863396,0.000000,0.000000,0.504528 +0.862867,0.000000,0.000000,0.505431 +0.862337,0.000000,0.000000,0.506335 +0.861806,0.000000,0.000000,0.507238 +0.861275,0.000000,0.000000,0.508140 +0.860742,0.000000,0.000000,0.509041 +0.860208,0.000000,0.000000,0.509943 +0.859674,0.000000,0.000000,0.510843 +0.859139,0.000000,0.000000,0.511743 +0.858602,0.000000,0.000000,0.512642 +0.858065,0.000000,0.000000,0.513541 +0.857527,0.000000,0.000000,0.514440 +0.856987,0.000000,0.000000,0.515337 +0.856447,0.000000,0.000000,0.516234 +0.855906,0.000000,0.000000,0.517131 +0.855364,0.000000,0.000000,0.518027 +0.854821,0.000000,0.000000,0.518922 +0.854277,0.000000,0.000000,0.519817 +0.853733,0.000000,0.000000,0.520712 +0.853187,0.000000,0.000000,0.521605 +0.852640,0.000000,0.000000,0.522499 +0.852093,0.000000,0.000000,0.523391 +0.851544,0.000000,0.000000,0.524283 +0.850994,0.000000,0.000000,0.525175 +0.850444,0.000000,0.000000,0.526066 +0.849893,0.000000,0.000000,0.526956 +0.849340,0.000000,0.000000,0.527846 +0.848787,0.000000,0.000000,0.528735 +0.848233,0.000000,0.000000,0.529623 +0.847678,0.000000,0.000000,0.530511 +0.847122,0.000000,0.000000,0.531399 +0.846565,0.000000,0.000000,0.532285 +0.846007,0.000000,0.000000,0.533172 +0.845448,0.000000,0.000000,0.534057 +0.844889,0.000000,0.000000,0.534942 +0.844328,0.000000,0.000000,0.535827 +0.843766,0.000000,0.000000,0.536711 +0.843204,0.000000,0.000000,0.537594 +0.842640,0.000000,0.000000,0.538477 +0.842076,0.000000,0.000000,0.539359 +0.841511,0.000000,0.000000,0.540240 +0.840945,0.000000,0.000000,0.541121 +0.840377,0.000000,0.000000,0.542002 +0.839809,0.000000,0.000000,0.542881 +0.839240,0.000000,0.000000,0.543760 +0.838671,0.000000,0.000000,0.544639 +0.838100,0.000000,0.000000,0.545517 +0.837528,0.000000,0.000000,0.546394 +0.836955,0.000000,0.000000,0.547271 +0.836382,0.000000,0.000000,0.548147 +0.835807,0.000000,0.000000,0.549023 +0.835232,0.000000,0.000000,0.549898 +0.834656,0.000000,0.000000,0.550772 +0.834078,0.000000,0.000000,0.551646 +0.833500,0.000000,0.000000,0.552519 +0.832921,0.000000,0.000000,0.553392 +0.832341,0.000000,0.000000,0.554263 +0.831760,0.000000,0.000000,0.555135 +0.831179,0.000000,0.000000,0.556006 +0.830596,0.000000,0.000000,0.556876 +0.830012,0.000000,0.000000,0.557745 +0.829428,0.000000,0.000000,0.558614 +0.828842,0.000000,0.000000,0.559482 +0.828256,0.000000,0.000000,0.560350 +0.827669,0.000000,0.000000,0.561217 +0.827081,0.000000,0.000000,0.562083 +0.826492,0.000000,0.000000,0.562949 +0.825902,0.000000,0.000000,0.563814 +0.825311,0.000000,0.000000,0.564679 +0.824719,0.000000,0.000000,0.565543 +0.824126,0.000000,0.000000,0.566406 +0.823533,0.000000,0.000000,0.567269 +0.822938,0.000000,0.000000,0.568131 +0.822343,0.000000,0.000000,0.568993 +0.821746,0.000000,0.000000,0.569853 +0.821149,0.000000,0.000000,0.570714 +0.820551,0.000000,0.000000,0.571573 +0.819952,0.000000,0.000000,0.572432 +0.819352,0.000000,0.000000,0.573290 +0.818751,0.000000,0.000000,0.574148 +0.818150,0.000000,0.000000,0.575005 +0.817547,0.000000,0.000000,0.575862 +0.816944,0.000000,0.000000,0.576718 +0.816339,0.000000,0.000000,0.577573 +0.815734,0.000000,0.000000,0.578427 +0.815128,0.000000,0.000000,0.579281 +0.814521,0.000000,0.000000,0.580134 +0.813913,0.000000,0.000000,0.580987 +0.813304,0.000000,0.000000,0.581839 +0.812694,0.000000,0.000000,0.582690 +0.812084,0.000000,0.000000,0.583541 +0.811472,0.000000,0.000000,0.584391 +0.810860,0.000000,0.000000,0.585241 +0.810246,0.000000,0.000000,0.586090 +0.809632,0.000000,0.000000,0.586938 +0.809017,0.000000,0.000000,0.587785 +0.808401,0.000000,0.000000,0.588632 +0.807784,0.000000,0.000000,0.589478 +0.807166,0.000000,0.000000,0.590324 +0.806548,0.000000,0.000000,0.591169 +0.805928,0.000000,0.000000,0.592013 +0.805308,0.000000,0.000000,0.592857 +0.804687,0.000000,0.000000,0.593700 +0.804064,0.000000,0.000000,0.594542 +0.803441,0.000000,0.000000,0.595384 +0.802817,0.000000,0.000000,0.596225 +0.802193,0.000000,0.000000,0.597065 +0.801567,0.000000,0.000000,0.597905 +0.800940,0.000000,0.000000,0.598744 +0.800313,0.000000,0.000000,0.599582 +0.799685,0.000000,0.000000,0.600420 +0.799055,0.000000,0.000000,0.601257 +0.798425,0.000000,0.000000,0.602094 +0.797794,0.000000,0.000000,0.602930 +0.797163,0.000000,0.000000,0.603765 +0.796530,0.000000,0.000000,0.604599 +0.795896,0.000000,0.000000,0.605433 +0.795262,0.000000,0.000000,0.606266 +0.794627,0.000000,0.000000,0.607098 +0.793990,0.000000,0.000000,0.607930 +0.793353,0.000000,0.000000,0.608761 +0.792715,0.000000,0.000000,0.609592 +0.792077,0.000000,0.000000,0.610422 +0.791437,0.000000,0.000000,0.611251 +0.790796,0.000000,0.000000,0.612079 +0.790155,0.000000,0.000000,0.612907 +0.789513,0.000000,0.000000,0.613734 +0.788870,0.000000,0.000000,0.614561 +0.788226,0.000000,0.000000,0.615386 +0.787581,0.000000,0.000000,0.616211 +0.786935,0.000000,0.000000,0.617036 +0.786288,0.000000,0.000000,0.617860 +0.785641,0.000000,0.000000,0.618683 +0.784993,0.000000,0.000000,0.619505 +0.784343,0.000000,0.000000,0.620327 +0.783693,0.000000,0.000000,0.621148 +0.783043,0.000000,0.000000,0.621968 +0.782391,0.000000,0.000000,0.622788 +0.781738,0.000000,0.000000,0.623607 +0.781085,0.000000,0.000000,0.624425 +0.780430,0.000000,0.000000,0.625243 +0.779775,0.000000,0.000000,0.626060 +0.779119,0.000000,0.000000,0.626876 +0.778462,0.000000,0.000000,0.627691 +0.777805,0.000000,0.000000,0.628506 +0.777146,0.000000,0.000000,0.629320 +0.776487,0.000000,0.000000,0.630134 +0.775826,0.000000,0.000000,0.630947 +0.775165,0.000000,0.000000,0.631759 +0.774503,0.000000,0.000000,0.632570 +0.773840,0.000000,0.000000,0.633381 +0.773177,0.000000,0.000000,0.634191 +0.772512,0.000000,0.000000,0.635000 +0.771847,0.000000,0.000000,0.635809 +0.771180,0.000000,0.000000,0.636617 +0.770513,0.000000,0.000000,0.637424 +0.769845,0.000000,0.000000,0.638231 +0.769177,0.000000,0.000000,0.639036 +0.768507,0.000000,0.000000,0.639841 +0.767836,0.000000,0.000000,0.640646 +0.767165,0.000000,0.000000,0.641450 +0.766493,0.000000,0.000000,0.642253 +0.765820,0.000000,0.000000,0.643055 +0.765146,0.000000,0.000000,0.643857 +0.764472,0.000000,0.000000,0.644657 +0.763796,0.000000,0.000000,0.645458 +0.763120,0.000000,0.000000,0.646257 +0.762443,0.000000,0.000000,0.647056 +0.761764,0.000000,0.000000,0.647854 +0.761086,0.000000,0.000000,0.648651 +0.760406,0.000000,0.000000,0.649448 +0.759725,0.000000,0.000000,0.650244 +0.759044,0.000000,0.000000,0.651039 +0.758362,0.000000,0.000000,0.651834 +0.757679,0.000000,0.000000,0.652628 +0.756995,0.000000,0.000000,0.653421 +0.756310,0.000000,0.000000,0.654213 +0.755625,0.000000,0.000000,0.655005 +0.754939,0.000000,0.000000,0.655796 +0.754251,0.000000,0.000000,0.656586 +0.753563,0.000000,0.000000,0.657375 +0.752875,0.000000,0.000000,0.658164 +0.752185,0.000000,0.000000,0.658952 +0.751494,0.000000,0.000000,0.659739 +0.750803,0.000000,0.000000,0.660526 +0.750111,0.000000,0.000000,0.661312 +0.749418,0.000000,0.000000,0.662097 +0.748724,0.000000,0.000000,0.662881 +0.748030,0.000000,0.000000,0.663665 +0.747334,0.000000,0.000000,0.664448 +0.746638,0.000000,0.000000,0.665230 +0.745941,0.000000,0.000000,0.666012 +0.745243,0.000000,0.000000,0.666793 +0.744545,0.000000,0.000000,0.667573 +0.743845,0.000000,0.000000,0.668352 +0.743145,0.000000,0.000000,0.669131 +0.742444,0.000000,0.000000,0.669908 +0.741742,0.000000,0.000000,0.670686 +0.741039,0.000000,0.000000,0.671462 +0.740335,0.000000,0.000000,0.672238 +0.739631,0.000000,0.000000,0.673013 +0.738926,0.000000,0.000000,0.673787 +0.738220,0.000000,0.000000,0.674560 +0.737513,0.000000,0.000000,0.675333 +0.736806,0.000000,0.000000,0.676105 +0.736097,0.000000,0.000000,0.676876 +0.735388,0.000000,0.000000,0.677646 +0.734678,0.000000,0.000000,0.678416 +0.733967,0.000000,0.000000,0.679185 +0.733255,0.000000,0.000000,0.679953 +0.732543,0.000000,0.000000,0.680721 +0.731830,0.000000,0.000000,0.681488 +0.731116,0.000000,0.000000,0.682254 +0.730401,0.000000,0.000000,0.683019 +0.729685,0.000000,0.000000,0.683783 +0.728969,0.000000,0.000000,0.684547 +0.728251,0.000000,0.000000,0.685310 +0.727533,0.000000,0.000000,0.686072 +0.726814,0.000000,0.000000,0.686834 +0.726095,0.000000,0.000000,0.687595 +0.725374,0.000000,0.000000,0.688355 +0.724653,0.000000,0.000000,0.689114 +0.723931,0.000000,0.000000,0.689872 +0.723208,0.000000,0.000000,0.690630 +0.722485,0.000000,0.000000,0.691387 +0.721760,0.000000,0.000000,0.692143 +0.721035,0.000000,0.000000,0.692899 +0.720309,0.000000,0.000000,0.693653 +0.719582,0.000000,0.000000,0.694407 +0.718855,0.000000,0.000000,0.695160 +0.718126,0.000000,0.000000,0.695913 +0.717397,0.000000,0.000000,0.696664 +0.716667,0.000000,0.000000,0.697415 +0.715936,0.000000,0.000000,0.698165 +0.715205,0.000000,0.000000,0.698915 +0.714473,0.000000,0.000000,0.699663 +0.713740,0.000000,0.000000,0.700411 +0.713006,0.000000,0.000000,0.701158 +0.712271,0.000000,0.000000,0.701904 +0.711536,0.000000,0.000000,0.702650 +0.710799,0.000000,0.000000,0.703395 +0.710062,0.000000,0.000000,0.704139 +0.709325,0.000000,0.000000,0.704882 +0.708586,0.000000,0.000000,0.705624 +0.707847,0.000000,0.000000,0.706366 +0.707107,0.000000,0.000000,0.707107 +0.706366,0.000000,0.000000,0.707847 +0.705624,0.000000,0.000000,0.708586 +0.704882,0.000000,0.000000,0.709325 +0.704139,0.000000,0.000000,0.710062 +0.703395,0.000000,0.000000,0.710799 +0.702650,0.000000,0.000000,0.711536 +0.701904,0.000000,0.000000,0.712271 +0.701158,0.000000,0.000000,0.713006 +0.700411,0.000000,0.000000,0.713740 +0.699663,0.000000,0.000000,0.714473 +0.698915,0.000000,0.000000,0.715205 +0.698165,0.000000,0.000000,0.715936 +0.697415,0.000000,0.000000,0.716667 +0.696664,0.000000,0.000000,0.717397 +0.695913,0.000000,0.000000,0.718126 +0.695160,0.000000,0.000000,0.718855 +0.694407,0.000000,0.000000,0.719582 +0.693653,0.000000,0.000000,0.720309 +0.692899,0.000000,0.000000,0.721035 +0.692143,0.000000,0.000000,0.721760 +0.691387,0.000000,0.000000,0.722485 +0.690630,0.000000,0.000000,0.723208 +0.689872,0.000000,0.000000,0.723931 +0.689114,0.000000,0.000000,0.724653 +0.688355,0.000000,0.000000,0.725374 +0.687595,0.000000,0.000000,0.726095 +0.686834,0.000000,0.000000,0.726814 +0.686072,0.000000,0.000000,0.727533 +0.685310,0.000000,0.000000,0.728251 +0.684547,0.000000,0.000000,0.728969 +0.683783,0.000000,0.000000,0.729685 +0.683019,0.000000,0.000000,0.730401 +0.682254,0.000000,0.000000,0.731116 +0.681488,0.000000,0.000000,0.731830 +0.680721,0.000000,0.000000,0.732543 +0.679953,0.000000,0.000000,0.733255 +0.679185,0.000000,0.000000,0.733967 +0.678416,0.000000,0.000000,0.734678 +0.677646,0.000000,0.000000,0.735388 +0.676876,0.000000,0.000000,0.736097 +0.676105,0.000000,0.000000,0.736806 +0.675333,0.000000,0.000000,0.737513 +0.674560,0.000000,0.000000,0.738220 +0.673787,0.000000,0.000000,0.738926 +0.673013,0.000000,0.000000,0.739631 +0.672238,0.000000,0.000000,0.740335 +0.671462,0.000000,0.000000,0.741039 +0.670686,0.000000,0.000000,0.741742 +0.669908,0.000000,0.000000,0.742444 +0.669131,0.000000,0.000000,0.743145 +0.668352,0.000000,0.000000,0.743845 +0.667573,0.000000,0.000000,0.744545 +0.666793,0.000000,0.000000,0.745243 +0.666012,0.000000,0.000000,0.745941 +0.665230,0.000000,0.000000,0.746638 +0.664448,0.000000,0.000000,0.747334 +0.663665,0.000000,0.000000,0.748030 +0.662881,0.000000,0.000000,0.748724 +0.662097,0.000000,0.000000,0.749418 +0.661312,0.000000,0.000000,0.750111 +0.660526,0.000000,0.000000,0.750803 +0.659739,0.000000,0.000000,0.751494 +0.658952,0.000000,0.000000,0.752185 +0.658164,0.000000,0.000000,0.752875 +0.657375,0.000000,0.000000,0.753563 +0.656586,0.000000,0.000000,0.754251 +0.655796,0.000000,0.000000,0.754939 +0.655005,0.000000,0.000000,0.755625 +0.654213,0.000000,0.000000,0.756310 +0.653421,0.000000,0.000000,0.756995 +0.652628,0.000000,0.000000,0.757679 +0.651834,0.000000,0.000000,0.758362 +0.651039,0.000000,0.000000,0.759044 +0.650244,0.000000,0.000000,0.759725 +0.649448,0.000000,0.000000,0.760406 +0.648651,0.000000,0.000000,0.761086 +0.647854,0.000000,0.000000,0.761764 +0.647056,0.000000,0.000000,0.762443 +0.646257,0.000000,0.000000,0.763120 +0.645458,0.000000,0.000000,0.763796 +0.644657,0.000000,0.000000,0.764472 +0.643857,0.000000,0.000000,0.765146 +0.643055,0.000000,0.000000,0.765820 +0.642253,0.000000,0.000000,0.766493 +0.641450,0.000000,0.000000,0.767165 +0.640646,0.000000,0.000000,0.767836 +0.639841,0.000000,0.000000,0.768507 +0.639036,0.000000,0.000000,0.769177 +0.638231,0.000000,0.000000,0.769845 +0.637424,0.000000,0.000000,0.770513 +0.636617,0.000000,0.000000,0.771180 +0.635809,0.000000,0.000000,0.771847 +0.635000,0.000000,0.000000,0.772512 +0.634191,0.000000,0.000000,0.773177 +0.633381,0.000000,0.000000,0.773840 +0.632570,0.000000,0.000000,0.774503 +0.631759,0.000000,0.000000,0.775165 +0.630947,0.000000,0.000000,0.775826 +0.630134,0.000000,0.000000,0.776487 +0.629320,0.000000,0.000000,0.777146 +0.628506,0.000000,0.000000,0.777805 +0.627691,0.000000,0.000000,0.778462 +0.626876,0.000000,0.000000,0.779119 +0.626060,0.000000,0.000000,0.779775 +0.625243,0.000000,0.000000,0.780430 +0.624425,0.000000,0.000000,0.781085 +0.623607,0.000000,0.000000,0.781738 +0.622788,0.000000,0.000000,0.782391 +0.621968,0.000000,0.000000,0.783043 +0.621148,0.000000,0.000000,0.783693 +0.620327,0.000000,0.000000,0.784343 +0.619505,0.000000,0.000000,0.784993 +0.618683,0.000000,0.000000,0.785641 +0.617860,0.000000,0.000000,0.786288 +0.617036,0.000000,0.000000,0.786935 +0.616211,0.000000,0.000000,0.787581 +0.615386,0.000000,0.000000,0.788226 +0.614561,0.000000,0.000000,0.788870 +0.613734,0.000000,0.000000,0.789513 +0.612907,0.000000,0.000000,0.790155 +0.612079,0.000000,0.000000,0.790796 +0.611251,0.000000,0.000000,0.791437 +0.610422,0.000000,0.000000,0.792077 +0.609592,0.000000,0.000000,0.792715 +0.608761,0.000000,0.000000,0.793353 +0.607930,0.000000,0.000000,0.793990 +0.607098,0.000000,0.000000,0.794627 +0.606266,0.000000,0.000000,0.795262 +0.605433,0.000000,0.000000,0.795896 +0.604599,0.000000,0.000000,0.796530 +0.603765,0.000000,0.000000,0.797163 +0.602930,0.000000,0.000000,0.797794 +0.602094,0.000000,0.000000,0.798425 +0.601257,0.000000,0.000000,0.799055 +0.600420,0.000000,0.000000,0.799685 +0.599582,0.000000,0.000000,0.800313 +0.598744,0.000000,0.000000,0.800940 +0.597905,0.000000,0.000000,0.801567 +0.597065,0.000000,0.000000,0.802193 +0.596225,0.000000,0.000000,0.802817 +0.595384,0.000000,0.000000,0.803441 +0.594542,0.000000,0.000000,0.804064 +0.593700,0.000000,0.000000,0.804687 +0.592857,0.000000,0.000000,0.805308 +0.592013,0.000000,0.000000,0.805928 +0.591169,0.000000,0.000000,0.806548 +0.590324,0.000000,0.000000,0.807166 +0.589478,0.000000,0.000000,0.807784 +0.588632,0.000000,0.000000,0.808401 +0.587785,0.000000,0.000000,0.809017 +0.586938,0.000000,0.000000,0.809632 +0.586090,0.000000,0.000000,0.810246 +0.585241,0.000000,0.000000,0.810860 +0.584391,0.000000,0.000000,0.811472 +0.583541,0.000000,0.000000,0.812084 +0.582690,0.000000,0.000000,0.812694 +0.581839,0.000000,0.000000,0.813304 +0.580987,0.000000,0.000000,0.813913 +0.580134,0.000000,0.000000,0.814521 +0.579281,0.000000,0.000000,0.815128 +0.578427,0.000000,0.000000,0.815734 +0.577573,0.000000,0.000000,0.816339 +0.576718,0.000000,0.000000,0.816944 +0.575862,0.000000,0.000000,0.817547 +0.575005,0.000000,0.000000,0.818150 +0.574148,0.000000,0.000000,0.818751 +0.573290,0.000000,0.000000,0.819352 +0.572432,0.000000,0.000000,0.819952 +0.571573,0.000000,0.000000,0.820551 +0.570714,0.000000,0.000000,0.821149 +0.569853,0.000000,0.000000,0.821746 +0.568993,0.000000,0.000000,0.822343 +0.568131,0.000000,0.000000,0.822938 +0.567269,0.000000,0.000000,0.823533 +0.566406,0.000000,0.000000,0.824126 +0.565543,0.000000,0.000000,0.824719 +0.564679,0.000000,0.000000,0.825311 +0.563814,0.000000,0.000000,0.825902 +0.562949,0.000000,0.000000,0.826492 +0.562083,0.000000,0.000000,0.827081 +0.561217,0.000000,0.000000,0.827669 +0.560350,0.000000,0.000000,0.828256 +0.559482,0.000000,0.000000,0.828842 +0.558614,0.000000,0.000000,0.829428 +0.557745,0.000000,0.000000,0.830012 +0.556876,0.000000,0.000000,0.830596 +0.556006,0.000000,0.000000,0.831179 +0.555135,0.000000,0.000000,0.831760 +0.554263,0.000000,0.000000,0.832341 +0.553392,0.000000,0.000000,0.832921 +0.552519,0.000000,0.000000,0.833500 +0.551646,0.000000,0.000000,0.834078 +0.550772,0.000000,0.000000,0.834656 +0.549898,0.000000,0.000000,0.835232 +0.549023,0.000000,0.000000,0.835807 +0.548147,0.000000,0.000000,0.836382 +0.547271,0.000000,0.000000,0.836955 +0.546394,0.000000,0.000000,0.837528 +0.545517,0.000000,0.000000,0.838100 +0.544639,0.000000,0.000000,0.838671 +0.543760,0.000000,0.000000,0.839240 +0.542881,0.000000,0.000000,0.839809 +0.542002,0.000000,0.000000,0.840377 +0.541121,0.000000,0.000000,0.840945 +0.540240,0.000000,0.000000,0.841511 +0.539359,0.000000,0.000000,0.842076 +0.538477,0.000000,0.000000,0.842640 +0.537594,0.000000,0.000000,0.843204 +0.536711,0.000000,0.000000,0.843766 +0.535827,0.000000,0.000000,0.844328 +0.534942,0.000000,0.000000,0.844889 +0.534057,0.000000,0.000000,0.845448 +0.533172,0.000000,0.000000,0.846007 +0.532285,0.000000,0.000000,0.846565 +0.531399,0.000000,0.000000,0.847122 +0.530511,0.000000,0.000000,0.847678 +0.529623,0.000000,0.000000,0.848233 +0.528735,0.000000,0.000000,0.848787 +0.527846,0.000000,0.000000,0.849340 +0.526956,0.000000,0.000000,0.849893 +0.526066,0.000000,0.000000,0.850444 +0.525175,0.000000,0.000000,0.850994 +0.524283,0.000000,0.000000,0.851544 +0.523391,0.000000,0.000000,0.852093 +0.522499,0.000000,0.000000,0.852640 +0.521605,0.000000,0.000000,0.853187 +0.520712,0.000000,0.000000,0.853733 +0.519817,0.000000,0.000000,0.854277 +0.518922,0.000000,0.000000,0.854821 +0.518027,0.000000,0.000000,0.855364 +0.517131,0.000000,0.000000,0.855906 +0.516234,0.000000,0.000000,0.856447 +0.515337,0.000000,0.000000,0.856987 +0.514440,0.000000,0.000000,0.857527 +0.513541,0.000000,0.000000,0.858065 +0.512642,0.000000,0.000000,0.858602 +0.511743,0.000000,0.000000,0.859139 +0.510843,0.000000,0.000000,0.859674 +0.509943,0.000000,0.000000,0.860208 +0.509041,0.000000,0.000000,0.860742 +0.508140,0.000000,0.000000,0.861275 +0.507238,0.000000,0.000000,0.861806 +0.506335,0.000000,0.000000,0.862337 +0.505431,0.000000,0.000000,0.862867 +0.504528,0.000000,0.000000,0.863396 +0.503623,0.000000,0.000000,0.863923 +0.502718,0.000000,0.000000,0.864450 +0.501813,0.000000,0.000000,0.864976 +0.500907,0.000000,0.000000,0.865501 +0.500000,0.000000,0.000000,0.866025 +0.499093,0.000000,0.000000,0.866549 +0.498185,0.000000,0.000000,0.867071 +0.497277,0.000000,0.000000,0.867592 +0.496368,0.000000,0.000000,0.868112 +0.495459,0.000000,0.000000,0.868632 +0.494549,0.000000,0.000000,0.869150 +0.493638,0.000000,0.000000,0.869667 +0.492727,0.000000,0.000000,0.870184 +0.491816,0.000000,0.000000,0.870699 +0.490904,0.000000,0.000000,0.871214 +0.489991,0.000000,0.000000,0.871727 +0.489078,0.000000,0.000000,0.872240 +0.488164,0.000000,0.000000,0.872752 +0.487250,0.000000,0.000000,0.873262 +0.486335,0.000000,0.000000,0.873772 +0.485420,0.000000,0.000000,0.874281 +0.484504,0.000000,0.000000,0.874789 +0.483588,0.000000,0.000000,0.875296 +0.482671,0.000000,0.000000,0.875802 +0.481754,0.000000,0.000000,0.876307 +0.480836,0.000000,0.000000,0.876811 +0.479917,0.000000,0.000000,0.877314 +0.478998,0.000000,0.000000,0.877816 +0.478079,0.000000,0.000000,0.878317 +0.477159,0.000000,0.000000,0.878817 +0.476238,0.000000,0.000000,0.879316 +0.475317,0.000000,0.000000,0.879815 +0.474396,0.000000,0.000000,0.880312 +0.473473,0.000000,0.000000,0.880808 +0.472551,0.000000,0.000000,0.881303 +0.471628,0.000000,0.000000,0.881798 +0.470704,0.000000,0.000000,0.882291 +0.469780,0.000000,0.000000,0.882784 +0.468855,0.000000,0.000000,0.883275 +0.467930,0.000000,0.000000,0.883766 +0.467004,0.000000,0.000000,0.884255 +0.466078,0.000000,0.000000,0.884744 +0.465151,0.000000,0.000000,0.885231 +0.464224,0.000000,0.000000,0.885718 +0.463296,0.000000,0.000000,0.886204 +0.462368,0.000000,0.000000,0.886688 +0.461439,0.000000,0.000000,0.887172 +0.460510,0.000000,0.000000,0.887655 +0.459580,0.000000,0.000000,0.888136 +0.458650,0.000000,0.000000,0.888617 +0.457719,0.000000,0.000000,0.889097 +0.456787,0.000000,0.000000,0.889576 +0.455856,0.000000,0.000000,0.890054 +0.454923,0.000000,0.000000,0.890531 +0.453990,0.000000,0.000000,0.891007 +0.453057,0.000000,0.000000,0.891481 +0.452123,0.000000,0.000000,0.891955 +0.451189,0.000000,0.000000,0.892428 +0.450254,0.000000,0.000000,0.892900 +0.449319,0.000000,0.000000,0.893371 +0.448383,0.000000,0.000000,0.893841 +0.447447,0.000000,0.000000,0.894310 +0.446510,0.000000,0.000000,0.894779 +0.445573,0.000000,0.000000,0.895246 +0.444635,0.000000,0.000000,0.895712 +0.443697,0.000000,0.000000,0.896177 +0.442758,0.000000,0.000000,0.896641 +0.441819,0.000000,0.000000,0.897104 +0.440879,0.000000,0.000000,0.897566 +0.439939,0.000000,0.000000,0.898028 +0.438999,0.000000,0.000000,0.898488 +0.438057,0.000000,0.000000,0.898947 +0.437116,0.000000,0.000000,0.899405 +0.436174,0.000000,0.000000,0.899863 +0.435231,0.000000,0.000000,0.900319 +0.434288,0.000000,0.000000,0.900774 +0.433345,0.000000,0.000000,0.901228 +0.432401,0.000000,0.000000,0.901682 +0.431456,0.000000,0.000000,0.902134 +0.430511,0.000000,0.000000,0.902585 +0.429566,0.000000,0.000000,0.903036 +0.428620,0.000000,0.000000,0.903485 +0.427673,0.000000,0.000000,0.903933 +0.426727,0.000000,0.000000,0.904381 +0.425779,0.000000,0.000000,0.904827 +0.424832,0.000000,0.000000,0.905272 +0.423883,0.000000,0.000000,0.905717 +0.422935,0.000000,0.000000,0.906160 +0.421985,0.000000,0.000000,0.906603 +0.421036,0.000000,0.000000,0.907044 +0.420086,0.000000,0.000000,0.907484 +0.419135,0.000000,0.000000,0.907924 +0.418184,0.000000,0.000000,0.908362 +0.417233,0.000000,0.000000,0.908800 +0.416281,0.000000,0.000000,0.909236 +0.415328,0.000000,0.000000,0.909672 +0.414376,0.000000,0.000000,0.910106 +0.413422,0.000000,0.000000,0.910539 +0.412469,0.000000,0.000000,0.910972 +0.411514,0.000000,0.000000,0.911403 +0.410560,0.000000,0.000000,0.911834 +0.409605,0.000000,0.000000,0.912263 +0.408649,0.000000,0.000000,0.912692 +0.407693,0.000000,0.000000,0.913119 +0.406737,0.000000,0.000000,0.913545 +0.405780,0.000000,0.000000,0.913971 +0.404822,0.000000,0.000000,0.914395 +0.403865,0.000000,0.000000,0.914819 +0.402906,0.000000,0.000000,0.915241 +0.401948,0.000000,0.000000,0.915663 +0.400989,0.000000,0.000000,0.916083 +0.400029,0.000000,0.000000,0.916502 +0.399069,0.000000,0.000000,0.916921 +0.398109,0.000000,0.000000,0.917338 +0.397148,0.000000,0.000000,0.917755 +0.396187,0.000000,0.000000,0.918170 +0.395225,0.000000,0.000000,0.918584 +0.394263,0.000000,0.000000,0.918998 +0.393300,0.000000,0.000000,0.919410 +0.392337,0.000000,0.000000,0.919821 +0.391374,0.000000,0.000000,0.920232 +0.390410,0.000000,0.000000,0.920641 +0.389445,0.000000,0.000000,0.921050 +0.388481,0.000000,0.000000,0.921457 +0.387516,0.000000,0.000000,0.921863 +0.386550,0.000000,0.000000,0.922268 +0.385584,0.000000,0.000000,0.922673 +0.384618,0.000000,0.000000,0.923076 +0.383651,0.000000,0.000000,0.923478 +0.382683,0.000000,0.000000,0.923880 +0.381716,0.000000,0.000000,0.924280 +0.380748,0.000000,0.000000,0.924679 +0.379779,0.000000,0.000000,0.925077 +0.378810,0.000000,0.000000,0.925474 +0.377841,0.000000,0.000000,0.925871 +0.376871,0.000000,0.000000,0.926266 +0.375901,0.000000,0.000000,0.926660 +0.374930,0.000000,0.000000,0.927053 +0.373959,0.000000,0.000000,0.927445 +0.372988,0.000000,0.000000,0.927836 +0.372016,0.000000,0.000000,0.928226 +0.371044,0.000000,0.000000,0.928615 +0.370071,0.000000,0.000000,0.929003 +0.369098,0.000000,0.000000,0.929390 +0.368125,0.000000,0.000000,0.929776 +0.367151,0.000000,0.000000,0.930161 +0.366176,0.000000,0.000000,0.930545 +0.365202,0.000000,0.000000,0.930928 +0.364227,0.000000,0.000000,0.931310 +0.363251,0.000000,0.000000,0.931691 +0.362275,0.000000,0.000000,0.932071 +0.361299,0.000000,0.000000,0.932450 +0.360322,0.000000,0.000000,0.932828 +0.359345,0.000000,0.000000,0.933205 +0.358368,0.000000,0.000000,0.933580 +0.357390,0.000000,0.000000,0.933955 +0.356412,0.000000,0.000000,0.934329 +0.355433,0.000000,0.000000,0.934702 +0.354454,0.000000,0.000000,0.935073 +0.353475,0.000000,0.000000,0.935444 +0.352495,0.000000,0.000000,0.935814 +0.351515,0.000000,0.000000,0.936182 +0.350534,0.000000,0.000000,0.936550 +0.349553,0.000000,0.000000,0.936916 +0.348572,0.000000,0.000000,0.937282 +0.347590,0.000000,0.000000,0.937646 +0.346608,0.000000,0.000000,0.938010 +0.345626,0.000000,0.000000,0.938372 +0.344643,0.000000,0.000000,0.938734 +0.343660,0.000000,0.000000,0.939094 +0.342676,0.000000,0.000000,0.939454 +0.341692,0.000000,0.000000,0.939812 +0.340708,0.000000,0.000000,0.940169 +0.339723,0.000000,0.000000,0.940526 +0.338738,0.000000,0.000000,0.940881 +0.337752,0.000000,0.000000,0.941235 +0.336767,0.000000,0.000000,0.941588 +0.335780,0.000000,0.000000,0.941940 +0.334794,0.000000,0.000000,0.942291 +0.333807,0.000000,0.000000,0.942641 +0.332820,0.000000,0.000000,0.942991 +0.331832,0.000000,0.000000,0.943339 +0.330844,0.000000,0.000000,0.943686 +0.329855,0.000000,0.000000,0.944031 +0.328867,0.000000,0.000000,0.944376 +0.327878,0.000000,0.000000,0.944720 +0.326888,0.000000,0.000000,0.945063 +0.325898,0.000000,0.000000,0.945405 +0.324908,0.000000,0.000000,0.945746 +0.323917,0.000000,0.000000,0.946085 +0.322927,0.000000,0.000000,0.946424 +0.321935,0.000000,0.000000,0.946762 +0.320944,0.000000,0.000000,0.947098 +0.319952,0.000000,0.000000,0.947434 +0.318959,0.000000,0.000000,0.947768 +0.317967,0.000000,0.000000,0.948102 +0.316974,0.000000,0.000000,0.948434 +0.315980,0.000000,0.000000,0.948766 +0.314987,0.000000,0.000000,0.949096 +0.313992,0.000000,0.000000,0.949425 +0.312998,0.000000,0.000000,0.949754 +0.312003,0.000000,0.000000,0.950081 +0.311008,0.000000,0.000000,0.950407 +0.310013,0.000000,0.000000,0.950732 +0.309017,0.000000,0.000000,0.951057 +0.308021,0.000000,0.000000,0.951380 +0.307024,0.000000,0.000000,0.951702 +0.306028,0.000000,0.000000,0.952023 +0.305031,0.000000,0.000000,0.952343 +0.304033,0.000000,0.000000,0.952661 +0.303035,0.000000,0.000000,0.952979 +0.302037,0.000000,0.000000,0.953296 +0.301039,0.000000,0.000000,0.953612 +0.300040,0.000000,0.000000,0.953927 +0.299041,0.000000,0.000000,0.954240 +0.298041,0.000000,0.000000,0.954553 +0.297042,0.000000,0.000000,0.954865 +0.296041,0.000000,0.000000,0.955175 +0.295041,0.000000,0.000000,0.955485 +0.294040,0.000000,0.000000,0.955793 +0.293039,0.000000,0.000000,0.956100 +0.292038,0.000000,0.000000,0.956407 +0.291036,0.000000,0.000000,0.956712 +0.290034,0.000000,0.000000,0.957016 +0.289032,0.000000,0.000000,0.957319 +0.288029,0.000000,0.000000,0.957622 +0.287026,0.000000,0.000000,0.957923 +0.286023,0.000000,0.000000,0.958223 +0.285019,0.000000,0.000000,0.958522 +0.284015,0.000000,0.000000,0.958820 +0.283011,0.000000,0.000000,0.959117 +0.282007,0.000000,0.000000,0.959412 +0.281002,0.000000,0.000000,0.959707 +0.279997,0.000000,0.000000,0.960001 +0.278991,0.000000,0.000000,0.960294 +0.277985,0.000000,0.000000,0.960585 +0.276979,0.000000,0.000000,0.960876 +0.275973,0.000000,0.000000,0.961165 +0.274966,0.000000,0.000000,0.961454 +0.273959,0.000000,0.000000,0.961741 +0.272952,0.000000,0.000000,0.962028 +0.271944,0.000000,0.000000,0.962313 +0.270936,0.000000,0.000000,0.962597 +0.269928,0.000000,0.000000,0.962880 +0.268920,0.000000,0.000000,0.963163 +0.267911,0.000000,0.000000,0.963444 +0.266902,0.000000,0.000000,0.963724 +0.265893,0.000000,0.000000,0.964003 +0.264883,0.000000,0.000000,0.964281 +0.263873,0.000000,0.000000,0.964557 +0.262863,0.000000,0.000000,0.964833 +0.261852,0.000000,0.000000,0.965108 +0.260842,0.000000,0.000000,0.965382 +0.259830,0.000000,0.000000,0.965654 +0.258819,0.000000,0.000000,0.965926 +0.257807,0.000000,0.000000,0.966196 +0.256795,0.000000,0.000000,0.966466 +0.255783,0.000000,0.000000,0.966734 +0.254771,0.000000,0.000000,0.967001 +0.253758,0.000000,0.000000,0.967268 +0.252745,0.000000,0.000000,0.967533 +0.251732,0.000000,0.000000,0.967797 +0.250718,0.000000,0.000000,0.968060 +0.249704,0.000000,0.000000,0.968322 +0.248690,0.000000,0.000000,0.968583 +0.247675,0.000000,0.000000,0.968843 +0.246661,0.000000,0.000000,0.969102 +0.245646,0.000000,0.000000,0.969360 +0.244631,0.000000,0.000000,0.969616 +0.243615,0.000000,0.000000,0.969872 +0.242599,0.000000,0.000000,0.970127 +0.241583,0.000000,0.000000,0.970380 +0.240567,0.000000,0.000000,0.970633 +0.239550,0.000000,0.000000,0.970884 +0.238533,0.000000,0.000000,0.971134 +0.237516,0.000000,0.000000,0.971384 +0.236499,0.000000,0.000000,0.971632 +0.235481,0.000000,0.000000,0.971879 +0.234463,0.000000,0.000000,0.972125 +0.233445,0.000000,0.000000,0.972370 +0.232427,0.000000,0.000000,0.972614 +0.231408,0.000000,0.000000,0.972857 +0.230389,0.000000,0.000000,0.973099 +0.229370,0.000000,0.000000,0.973339 +0.228351,0.000000,0.000000,0.973579 +0.227331,0.000000,0.000000,0.973817 +0.226311,0.000000,0.000000,0.974055 +0.225291,0.000000,0.000000,0.974291 +0.224271,0.000000,0.000000,0.974527 +0.223250,0.000000,0.000000,0.974761 +0.222229,0.000000,0.000000,0.974994 +0.221208,0.000000,0.000000,0.975227 +0.220187,0.000000,0.000000,0.975458 +0.219165,0.000000,0.000000,0.975688 +0.218143,0.000000,0.000000,0.975917 +0.217121,0.000000,0.000000,0.976145 +0.216099,0.000000,0.000000,0.976371 +0.215076,0.000000,0.000000,0.976597 +0.214053,0.000000,0.000000,0.976822 +0.213030,0.000000,0.000000,0.977046 +0.212007,0.000000,0.000000,0.977268 +0.210984,0.000000,0.000000,0.977490 +0.209960,0.000000,0.000000,0.977710 +0.208936,0.000000,0.000000,0.977929 +0.207912,0.000000,0.000000,0.978148 +0.206887,0.000000,0.000000,0.978365 +0.205863,0.000000,0.000000,0.978581 +0.204838,0.000000,0.000000,0.978796 +0.203813,0.000000,0.000000,0.979010 +0.202787,0.000000,0.000000,0.979223 +0.201762,0.000000,0.000000,0.979435 +0.200736,0.000000,0.000000,0.979645 +0.199710,0.000000,0.000000,0.979855 +0.198684,0.000000,0.000000,0.980064 +0.197657,0.000000,0.000000,0.980271 +0.196631,0.000000,0.000000,0.980478 +0.195604,0.000000,0.000000,0.980683 +0.194577,0.000000,0.000000,0.980887 +0.193549,0.000000,0.000000,0.981091 +0.192522,0.000000,0.000000,0.981293 +0.191494,0.000000,0.000000,0.981494 +0.190466,0.000000,0.000000,0.981694 +0.189438,0.000000,0.000000,0.981893 +0.188410,0.000000,0.000000,0.982090 +0.187381,0.000000,0.000000,0.982287 +0.186353,0.000000,0.000000,0.982483 +0.185324,0.000000,0.000000,0.982678 +0.184294,0.000000,0.000000,0.982871 +0.183265,0.000000,0.000000,0.983064 +0.182236,0.000000,0.000000,0.983255 +0.181206,0.000000,0.000000,0.983445 +0.180176,0.000000,0.000000,0.983634 +0.179146,0.000000,0.000000,0.983823 +0.178115,0.000000,0.000000,0.984010 +0.177085,0.000000,0.000000,0.984196 +0.176054,0.000000,0.000000,0.984381 +0.175023,0.000000,0.000000,0.984564 +0.173992,0.000000,0.000000,0.984747 +0.172961,0.000000,0.000000,0.984929 +0.171929,0.000000,0.000000,0.985109 +0.170897,0.000000,0.000000,0.985289 +0.169866,0.000000,0.000000,0.985467 +0.168833,0.000000,0.000000,0.985645 +0.167801,0.000000,0.000000,0.985821 +0.166769,0.000000,0.000000,0.985996 +0.165736,0.000000,0.000000,0.986170 +0.164703,0.000000,0.000000,0.986343 +0.163670,0.000000,0.000000,0.986515 +0.162637,0.000000,0.000000,0.986686 +0.161604,0.000000,0.000000,0.986856 +0.160570,0.000000,0.000000,0.987024 +0.159537,0.000000,0.000000,0.987192 +0.158503,0.000000,0.000000,0.987359 +0.157469,0.000000,0.000000,0.987524 +0.156434,0.000000,0.000000,0.987688 +0.155400,0.000000,0.000000,0.987852 +0.154366,0.000000,0.000000,0.988014 +0.153331,0.000000,0.000000,0.988175 +0.152296,0.000000,0.000000,0.988335 +0.151261,0.000000,0.000000,0.988494 +0.150226,0.000000,0.000000,0.988652 +0.149190,0.000000,0.000000,0.988809 +0.148155,0.000000,0.000000,0.988964 +0.147119,0.000000,0.000000,0.989119 +0.146083,0.000000,0.000000,0.989272 +0.145047,0.000000,0.000000,0.989425 +0.144011,0.000000,0.000000,0.989576 +0.142974,0.000000,0.000000,0.989726 +0.141938,0.000000,0.000000,0.989876 +0.140901,0.000000,0.000000,0.990024 +0.139864,0.000000,0.000000,0.990171 +0.138827,0.000000,0.000000,0.990317 +0.137790,0.000000,0.000000,0.990461 +0.136753,0.000000,0.000000,0.990605 +0.135716,0.000000,0.000000,0.990748 +0.134678,0.000000,0.000000,0.990889 +0.133640,0.000000,0.000000,0.991030 +0.132602,0.000000,0.000000,0.991169 +0.131564,0.000000,0.000000,0.991308 +0.130526,0.000000,0.000000,0.991445 +0.129488,0.000000,0.000000,0.991581 +0.128449,0.000000,0.000000,0.991716 +0.127411,0.000000,0.000000,0.991850 +0.126372,0.000000,0.000000,0.991983 +0.125333,0.000000,0.000000,0.992115 +0.124294,0.000000,0.000000,0.992245 +0.123255,0.000000,0.000000,0.992375 +0.122216,0.000000,0.000000,0.992504 +0.121176,0.000000,0.000000,0.992631 +0.120137,0.000000,0.000000,0.992757 +0.119097,0.000000,0.000000,0.992883 +0.118057,0.000000,0.000000,0.993007 +0.117017,0.000000,0.000000,0.993130 +0.115977,0.000000,0.000000,0.993252 +0.114937,0.000000,0.000000,0.993373 +0.113897,0.000000,0.000000,0.993493 +0.112856,0.000000,0.000000,0.993611 +0.111816,0.000000,0.000000,0.993729 +0.110775,0.000000,0.000000,0.993845 +0.109734,0.000000,0.000000,0.993961 +0.108693,0.000000,0.000000,0.994075 +0.107652,0.000000,0.000000,0.994189 +0.106611,0.000000,0.000000,0.994301 +0.105570,0.000000,0.000000,0.994412 +0.104528,0.000000,0.000000,0.994522 +0.103487,0.000000,0.000000,0.994631 +0.102445,0.000000,0.000000,0.994739 +0.101404,0.000000,0.000000,0.994845 +0.100362,0.000000,0.000000,0.994951 +0.099320,0.000000,0.000000,0.995056 +0.098278,0.000000,0.000000,0.995159 +0.097235,0.000000,0.000000,0.995261 +0.096193,0.000000,0.000000,0.995363 +0.095151,0.000000,0.000000,0.995463 +0.094108,0.000000,0.000000,0.995562 +0.093066,0.000000,0.000000,0.995660 +0.092023,0.000000,0.000000,0.995757 +0.090980,0.000000,0.000000,0.995853 +0.089937,0.000000,0.000000,0.995947 +0.088894,0.000000,0.000000,0.996041 +0.087851,0.000000,0.000000,0.996134 +0.086808,0.000000,0.000000,0.996225 +0.085765,0.000000,0.000000,0.996315 +0.084721,0.000000,0.000000,0.996405 +0.083678,0.000000,0.000000,0.996493 +0.082634,0.000000,0.000000,0.996580 +0.081591,0.000000,0.000000,0.996666 +0.080547,0.000000,0.000000,0.996751 +0.079503,0.000000,0.000000,0.996835 +0.078459,0.000000,0.000000,0.996917 +0.077415,0.000000,0.000000,0.996999 +0.076371,0.000000,0.000000,0.997079 +0.075327,0.000000,0.000000,0.997159 +0.074283,0.000000,0.000000,0.997237 +0.073238,0.000000,0.000000,0.997314 +0.072194,0.000000,0.000000,0.997391 +0.071149,0.000000,0.000000,0.997466 +0.070105,0.000000,0.000000,0.997540 +0.069060,0.000000,0.000000,0.997613 +0.068015,0.000000,0.000000,0.997684 +0.066970,0.000000,0.000000,0.997755 +0.065926,0.000000,0.000000,0.997825 +0.064881,0.000000,0.000000,0.997893 +0.063836,0.000000,0.000000,0.997960 +0.062791,0.000000,0.000000,0.998027 +0.061745,0.000000,0.000000,0.998092 +0.060700,0.000000,0.000000,0.998156 +0.059655,0.000000,0.000000,0.998219 +0.058609,0.000000,0.000000,0.998281 +0.057564,0.000000,0.000000,0.998342 +0.056519,0.000000,0.000000,0.998402 +0.055473,0.000000,0.000000,0.998460 +0.054427,0.000000,0.000000,0.998518 +0.053382,0.000000,0.000000,0.998574 +0.052336,0.000000,0.000000,0.998630 +0.051290,0.000000,0.000000,0.998684 +0.050244,0.000000,0.000000,0.998737 +0.049198,0.000000,0.000000,0.998789 +0.048152,0.000000,0.000000,0.998840 +0.047106,0.000000,0.000000,0.998890 +0.046060,0.000000,0.000000,0.998939 +0.045014,0.000000,0.000000,0.998986 +0.043968,0.000000,0.000000,0.999033 +0.042922,0.000000,0.000000,0.999078 +0.041876,0.000000,0.000000,0.999123 +0.040829,0.000000,0.000000,0.999166 +0.039783,0.000000,0.000000,0.999208 +0.038737,0.000000,0.000000,0.999249 +0.037690,0.000000,0.000000,0.999289 +0.036644,0.000000,0.000000,0.999328 +0.035597,0.000000,0.000000,0.999366 +0.034551,0.000000,0.000000,0.999403 +0.033504,0.000000,0.000000,0.999439 +0.032457,0.000000,0.000000,0.999473 +0.031411,0.000000,0.000000,0.999507 +0.030364,0.000000,0.000000,0.999539 +0.029317,0.000000,0.000000,0.999570 +0.028271,0.000000,0.000000,0.999600 +0.027224,0.000000,0.000000,0.999629 +0.026177,0.000000,0.000000,0.999657 +0.025130,0.000000,0.000000,0.999684 +0.024083,0.000000,0.000000,0.999710 +0.023036,0.000000,0.000000,0.999735 +0.021989,0.000000,0.000000,0.999758 +0.020942,0.000000,0.000000,0.999781 +0.019895,0.000000,0.000000,0.999802 +0.018848,0.000000,0.000000,0.999822 +0.017801,0.000000,0.000000,0.999842 +0.016754,0.000000,0.000000,0.999860 +0.015707,0.000000,0.000000,0.999877 +0.014660,0.000000,0.000000,0.999893 +0.013613,0.000000,0.000000,0.999907 +0.012566,0.000000,0.000000,0.999921 +0.011519,0.000000,0.000000,0.999934 +0.010472,0.000000,0.000000,0.999945 +0.009425,0.000000,0.000000,0.999956 +0.008377,0.000000,0.000000,0.999965 +0.007330,0.000000,0.000000,0.999973 +0.006283,0.000000,0.000000,0.999980 +0.005236,0.000000,0.000000,0.999986 +0.004189,0.000000,0.000000,0.999991 +0.003142,0.000000,0.000000,0.999995 +0.002094,0.000000,0.000000,0.999998 +0.001047,0.000000,0.000000,0.999999 +0.000000,0.000000,0.000000,1.000000 +-0.001047,-0.000000,0.000000,0.999999 +-0.002094,-0.000000,0.000000,0.999998 +-0.003142,-0.000000,0.000000,0.999995 +-0.004189,-0.000000,0.000000,0.999991 +-0.005236,-0.000000,0.000000,0.999986 +-0.006283,-0.000000,0.000000,0.999980 +-0.007330,-0.000000,0.000000,0.999973 +-0.008377,-0.000000,0.000000,0.999965 +-0.009425,-0.000000,0.000000,0.999956 +-0.010472,-0.000000,0.000000,0.999945 +-0.011519,-0.000000,0.000000,0.999934 +-0.012566,-0.000000,0.000000,0.999921 +-0.013613,-0.000000,0.000000,0.999907 +-0.014660,-0.000000,0.000000,0.999893 +-0.015707,-0.000000,0.000000,0.999877 +-0.016754,-0.000000,0.000000,0.999860 +-0.017801,-0.000000,0.000000,0.999842 +-0.018848,-0.000000,0.000000,0.999822 +-0.019895,-0.000000,0.000000,0.999802 +-0.020942,-0.000000,0.000000,0.999781 +-0.021989,-0.000000,0.000000,0.999758 +-0.023036,-0.000000,0.000000,0.999735 +-0.024083,-0.000000,0.000000,0.999710 +-0.025130,-0.000000,0.000000,0.999684 +-0.026177,-0.000000,0.000000,0.999657 +-0.027224,-0.000000,0.000000,0.999629 +-0.028271,-0.000000,0.000000,0.999600 +-0.029317,-0.000000,0.000000,0.999570 +-0.030364,-0.000000,0.000000,0.999539 +-0.031411,-0.000000,0.000000,0.999507 +-0.032457,-0.000000,0.000000,0.999473 +-0.033504,-0.000000,0.000000,0.999439 +-0.034551,-0.000000,0.000000,0.999403 +-0.035597,-0.000000,0.000000,0.999366 +-0.036644,-0.000000,0.000000,0.999328 +-0.037690,-0.000000,0.000000,0.999289 +-0.038737,-0.000000,0.000000,0.999249 +-0.039783,-0.000000,0.000000,0.999208 +-0.040829,-0.000000,0.000000,0.999166 +-0.041876,-0.000000,0.000000,0.999123 +-0.042922,-0.000000,0.000000,0.999078 +-0.043968,-0.000000,0.000000,0.999033 +-0.045014,-0.000000,0.000000,0.998986 +-0.046060,-0.000000,0.000000,0.998939 +-0.047106,-0.000000,0.000000,0.998890 +-0.048152,-0.000000,0.000000,0.998840 +-0.049198,-0.000000,0.000000,0.998789 +-0.050244,-0.000000,0.000000,0.998737 +-0.051290,-0.000000,0.000000,0.998684 +-0.052336,-0.000000,0.000000,0.998630 +-0.053382,-0.000000,0.000000,0.998574 +-0.054427,-0.000000,0.000000,0.998518 +-0.055473,-0.000000,0.000000,0.998460 +-0.056519,-0.000000,0.000000,0.998402 +-0.057564,-0.000000,0.000000,0.998342 +-0.058609,-0.000000,0.000000,0.998281 +-0.059655,-0.000000,0.000000,0.998219 +-0.060700,-0.000000,0.000000,0.998156 +-0.061745,-0.000000,0.000000,0.998092 +-0.062791,-0.000000,0.000000,0.998027 +-0.063836,-0.000000,0.000000,0.997960 +-0.064881,-0.000000,0.000000,0.997893 +-0.065926,-0.000000,0.000000,0.997825 +-0.066970,-0.000000,0.000000,0.997755 +-0.068015,-0.000000,0.000000,0.997684 +-0.069060,-0.000000,0.000000,0.997613 +-0.070105,-0.000000,0.000000,0.997540 +-0.071149,-0.000000,0.000000,0.997466 +-0.072194,-0.000000,0.000000,0.997391 +-0.073238,-0.000000,0.000000,0.997314 +-0.074283,-0.000000,0.000000,0.997237 +-0.075327,-0.000000,0.000000,0.997159 +-0.076371,-0.000000,0.000000,0.997079 +-0.077415,-0.000000,0.000000,0.996999 +-0.078459,-0.000000,0.000000,0.996917 +-0.079503,-0.000000,0.000000,0.996835 +-0.080547,-0.000000,0.000000,0.996751 +-0.081591,-0.000000,0.000000,0.996666 +-0.082634,-0.000000,0.000000,0.996580 +-0.083678,-0.000000,0.000000,0.996493 +-0.084721,-0.000000,0.000000,0.996405 +-0.085765,-0.000000,0.000000,0.996315 +-0.086808,-0.000000,0.000000,0.996225 +-0.087851,-0.000000,0.000000,0.996134 +-0.088894,-0.000000,0.000000,0.996041 +-0.089937,-0.000000,0.000000,0.995947 +-0.090980,-0.000000,0.000000,0.995853 +-0.092023,-0.000000,0.000000,0.995757 +-0.093066,-0.000000,0.000000,0.995660 +-0.094108,-0.000000,0.000000,0.995562 +-0.095151,-0.000000,0.000000,0.995463 +-0.096193,-0.000000,0.000000,0.995363 +-0.097235,-0.000000,0.000000,0.995261 +-0.098278,-0.000000,0.000000,0.995159 +-0.099320,-0.000000,0.000000,0.995056 +-0.100362,-0.000000,0.000000,0.994951 +-0.101404,-0.000000,0.000000,0.994845 +-0.102445,-0.000000,0.000000,0.994739 +-0.103487,-0.000000,0.000000,0.994631 +-0.104528,-0.000000,0.000000,0.994522 +-0.105570,-0.000000,0.000000,0.994412 +-0.106611,-0.000000,0.000000,0.994301 +-0.107652,-0.000000,0.000000,0.994189 +-0.108693,-0.000000,0.000000,0.994075 +-0.109734,-0.000000,0.000000,0.993961 +-0.110775,-0.000000,0.000000,0.993845 +-0.111816,-0.000000,0.000000,0.993729 +-0.112856,-0.000000,0.000000,0.993611 +-0.113897,-0.000000,0.000000,0.993493 +-0.114937,-0.000000,0.000000,0.993373 +-0.115977,-0.000000,0.000000,0.993252 +-0.117017,-0.000000,0.000000,0.993130 +-0.118057,-0.000000,0.000000,0.993007 +-0.119097,-0.000000,0.000000,0.992883 +-0.120137,-0.000000,0.000000,0.992757 +-0.121176,-0.000000,0.000000,0.992631 +-0.122216,-0.000000,0.000000,0.992504 +-0.123255,-0.000000,0.000000,0.992375 +-0.124294,-0.000000,0.000000,0.992245 +-0.125333,-0.000000,0.000000,0.992115 +-0.126372,-0.000000,0.000000,0.991983 +-0.127411,-0.000000,0.000000,0.991850 +-0.128449,-0.000000,0.000000,0.991716 +-0.129488,-0.000000,0.000000,0.991581 +-0.130526,-0.000000,0.000000,0.991445 +-0.131564,-0.000000,0.000000,0.991308 +-0.132602,-0.000000,0.000000,0.991169 +-0.133640,-0.000000,0.000000,0.991030 +-0.134678,-0.000000,0.000000,0.990889 +-0.135716,-0.000000,0.000000,0.990748 +-0.136753,-0.000000,0.000000,0.990605 +-0.137790,-0.000000,0.000000,0.990461 +-0.138827,-0.000000,0.000000,0.990317 +-0.139864,-0.000000,0.000000,0.990171 +-0.140901,-0.000000,0.000000,0.990024 +-0.141938,-0.000000,0.000000,0.989876 +-0.142974,-0.000000,0.000000,0.989726 +-0.144011,-0.000000,0.000000,0.989576 +-0.145047,-0.000000,0.000000,0.989425 +-0.146083,-0.000000,0.000000,0.989272 +-0.147119,-0.000000,0.000000,0.989119 +-0.148155,-0.000000,0.000000,0.988964 +-0.149190,-0.000000,0.000000,0.988809 +-0.150226,-0.000000,0.000000,0.988652 +-0.151261,-0.000000,0.000000,0.988494 +-0.152296,-0.000000,0.000000,0.988335 +-0.153331,-0.000000,0.000000,0.988175 +-0.154366,-0.000000,0.000000,0.988014 +-0.155400,-0.000000,0.000000,0.987852 +-0.156434,-0.000000,0.000000,0.987688 +-0.157469,-0.000000,0.000000,0.987524 +-0.158503,-0.000000,0.000000,0.987359 +-0.159537,-0.000000,0.000000,0.987192 +-0.160570,-0.000000,0.000000,0.987024 +-0.161604,-0.000000,0.000000,0.986856 +-0.162637,-0.000000,0.000000,0.986686 +-0.163670,-0.000000,0.000000,0.986515 +-0.164703,-0.000000,0.000000,0.986343 +-0.165736,-0.000000,0.000000,0.986170 +-0.166769,-0.000000,0.000000,0.985996 +-0.167801,-0.000000,0.000000,0.985821 +-0.168833,-0.000000,0.000000,0.985645 +-0.169866,-0.000000,0.000000,0.985467 +-0.170897,-0.000000,0.000000,0.985289 +-0.171929,-0.000000,0.000000,0.985109 +-0.172961,-0.000000,0.000000,0.984929 +-0.173992,-0.000000,0.000000,0.984747 +-0.175023,-0.000000,0.000000,0.984564 +-0.176054,-0.000000,0.000000,0.984381 +-0.177085,-0.000000,0.000000,0.984196 +-0.178115,-0.000000,0.000000,0.984010 +-0.179146,-0.000000,0.000000,0.983823 +-0.180176,-0.000000,0.000000,0.983634 +-0.181206,-0.000000,0.000000,0.983445 +-0.182236,-0.000000,0.000000,0.983255 +-0.183265,-0.000000,0.000000,0.983064 +-0.184294,-0.000000,0.000000,0.982871 +-0.185324,-0.000000,0.000000,0.982678 +-0.186353,-0.000000,0.000000,0.982483 +-0.187381,-0.000000,0.000000,0.982287 +-0.188410,-0.000000,0.000000,0.982090 +-0.189438,-0.000000,0.000000,0.981893 +-0.190466,-0.000000,0.000000,0.981694 +-0.191494,-0.000000,0.000000,0.981494 +-0.192522,-0.000000,0.000000,0.981293 +-0.193549,-0.000000,0.000000,0.981091 +-0.194577,-0.000000,0.000000,0.980887 +-0.195604,-0.000000,0.000000,0.980683 +-0.196631,-0.000000,0.000000,0.980478 +-0.197657,-0.000000,0.000000,0.980271 +-0.198684,-0.000000,0.000000,0.980064 +-0.199710,-0.000000,0.000000,0.979855 +-0.200736,-0.000000,0.000000,0.979645 +-0.201762,-0.000000,0.000000,0.979435 +-0.202787,-0.000000,0.000000,0.979223 +-0.203813,-0.000000,0.000000,0.979010 +-0.204838,-0.000000,0.000000,0.978796 +-0.205863,-0.000000,0.000000,0.978581 +-0.206887,-0.000000,0.000000,0.978365 +-0.207912,-0.000000,0.000000,0.978148 +-0.208936,-0.000000,0.000000,0.977929 +-0.209960,-0.000000,0.000000,0.977710 +-0.210984,-0.000000,0.000000,0.977490 +-0.212007,-0.000000,0.000000,0.977268 +-0.213030,-0.000000,0.000000,0.977046 +-0.214053,-0.000000,0.000000,0.976822 +-0.215076,-0.000000,0.000000,0.976597 +-0.216099,-0.000000,0.000000,0.976371 +-0.217121,-0.000000,0.000000,0.976145 +-0.218143,-0.000000,0.000000,0.975917 +-0.219165,-0.000000,0.000000,0.975688 +-0.220187,-0.000000,0.000000,0.975458 +-0.221208,-0.000000,0.000000,0.975227 +-0.222229,-0.000000,0.000000,0.974994 +-0.223250,-0.000000,0.000000,0.974761 +-0.224271,-0.000000,0.000000,0.974527 +-0.225291,-0.000000,0.000000,0.974291 +-0.226311,-0.000000,0.000000,0.974055 +-0.227331,-0.000000,0.000000,0.973817 +-0.228351,-0.000000,0.000000,0.973579 +-0.229370,-0.000000,0.000000,0.973339 +-0.230389,-0.000000,0.000000,0.973099 +-0.231408,-0.000000,0.000000,0.972857 +-0.232427,-0.000000,0.000000,0.972614 +-0.233445,-0.000000,0.000000,0.972370 +-0.234463,-0.000000,0.000000,0.972125 +-0.235481,-0.000000,0.000000,0.971879 +-0.236499,-0.000000,0.000000,0.971632 +-0.237516,-0.000000,0.000000,0.971384 +-0.238533,-0.000000,0.000000,0.971134 +-0.239550,-0.000000,0.000000,0.970884 +-0.240567,-0.000000,0.000000,0.970633 +-0.241583,-0.000000,0.000000,0.970380 +-0.242599,-0.000000,0.000000,0.970127 +-0.243615,-0.000000,0.000000,0.969872 +-0.244631,-0.000000,0.000000,0.969616 +-0.245646,-0.000000,0.000000,0.969360 +-0.246661,-0.000000,0.000000,0.969102 +-0.247675,-0.000000,0.000000,0.968843 +-0.248690,-0.000000,0.000000,0.968583 +-0.249704,-0.000000,0.000000,0.968322 +-0.250718,-0.000000,0.000000,0.968060 +-0.251732,-0.000000,0.000000,0.967797 +-0.252745,-0.000000,0.000000,0.967533 +-0.253758,-0.000000,0.000000,0.967268 +-0.254771,-0.000000,0.000000,0.967001 +-0.255783,-0.000000,0.000000,0.966734 +-0.256795,-0.000000,0.000000,0.966466 +-0.257807,-0.000000,0.000000,0.966196 +-0.258819,-0.000000,0.000000,0.965926 +-0.259830,-0.000000,0.000000,0.965654 +-0.260842,-0.000000,0.000000,0.965382 +-0.261852,-0.000000,0.000000,0.965108 +-0.262863,-0.000000,0.000000,0.964833 +-0.263873,-0.000000,0.000000,0.964557 +-0.264883,-0.000000,0.000000,0.964281 +-0.265893,-0.000000,0.000000,0.964003 +-0.266902,-0.000000,0.000000,0.963724 +-0.267911,-0.000000,0.000000,0.963444 +-0.268920,-0.000000,0.000000,0.963163 +-0.269928,-0.000000,0.000000,0.962880 +-0.270936,-0.000000,0.000000,0.962597 +-0.271944,-0.000000,0.000000,0.962313 +-0.272952,-0.000000,0.000000,0.962028 +-0.273959,-0.000000,0.000000,0.961741 +-0.274966,-0.000000,0.000000,0.961454 +-0.275973,-0.000000,0.000000,0.961165 +-0.276979,-0.000000,0.000000,0.960876 +-0.277985,-0.000000,0.000000,0.960585 +-0.278991,-0.000000,0.000000,0.960294 +-0.279997,-0.000000,0.000000,0.960001 +-0.281002,-0.000000,0.000000,0.959707 +-0.282007,-0.000000,0.000000,0.959412 +-0.283011,-0.000000,0.000000,0.959117 +-0.284015,-0.000000,0.000000,0.958820 +-0.285019,-0.000000,0.000000,0.958522 +-0.286023,-0.000000,0.000000,0.958223 +-0.287026,-0.000000,0.000000,0.957923 +-0.288029,-0.000000,0.000000,0.957622 +-0.289032,-0.000000,0.000000,0.957319 +-0.290034,-0.000000,0.000000,0.957016 +-0.291036,-0.000000,0.000000,0.956712 +-0.292038,-0.000000,0.000000,0.956407 +-0.293039,-0.000000,0.000000,0.956100 +-0.294040,-0.000000,0.000000,0.955793 +-0.295041,-0.000000,0.000000,0.955485 +-0.296041,-0.000000,0.000000,0.955175 +-0.297042,-0.000000,0.000000,0.954865 +-0.298041,-0.000000,0.000000,0.954553 +-0.299041,-0.000000,0.000000,0.954240 +-0.300040,-0.000000,0.000000,0.953927 +-0.301039,-0.000000,0.000000,0.953612 +-0.302037,-0.000000,0.000000,0.953296 +-0.303035,-0.000000,0.000000,0.952979 +-0.304033,-0.000000,0.000000,0.952661 +-0.305031,-0.000000,0.000000,0.952343 +-0.306028,-0.000000,0.000000,0.952023 +-0.307024,-0.000000,0.000000,0.951702 +-0.308021,-0.000000,0.000000,0.951380 +-0.309017,-0.000000,0.000000,0.951057 +-0.310013,-0.000000,0.000000,0.950732 +-0.311008,-0.000000,0.000000,0.950407 +-0.312003,-0.000000,0.000000,0.950081 +-0.312998,-0.000000,0.000000,0.949754 +-0.313992,-0.000000,0.000000,0.949425 +-0.314987,-0.000000,0.000000,0.949096 +-0.315980,-0.000000,0.000000,0.948766 +-0.316974,-0.000000,0.000000,0.948434 +-0.317967,-0.000000,0.000000,0.948102 +-0.318959,-0.000000,0.000000,0.947768 +-0.319952,-0.000000,0.000000,0.947434 +-0.320944,-0.000000,0.000000,0.947098 +-0.321935,-0.000000,0.000000,0.946762 +-0.322927,-0.000000,0.000000,0.946424 +-0.323917,-0.000000,0.000000,0.946085 +-0.324908,-0.000000,0.000000,0.945746 +-0.325898,-0.000000,0.000000,0.945405 +-0.326888,-0.000000,0.000000,0.945063 +-0.327878,-0.000000,0.000000,0.944720 +-0.328867,-0.000000,0.000000,0.944376 +-0.329855,-0.000000,0.000000,0.944031 +-0.330844,-0.000000,0.000000,0.943686 +-0.331832,-0.000000,0.000000,0.943339 +-0.332820,-0.000000,0.000000,0.942991 +-0.333807,-0.000000,0.000000,0.942641 +-0.334794,-0.000000,0.000000,0.942291 +-0.335780,-0.000000,0.000000,0.941940 +-0.336767,-0.000000,0.000000,0.941588 +-0.337752,-0.000000,0.000000,0.941235 +-0.338738,-0.000000,0.000000,0.940881 +-0.339723,-0.000000,0.000000,0.940526 +-0.340708,-0.000000,0.000000,0.940169 +-0.341692,-0.000000,0.000000,0.939812 +-0.342676,-0.000000,0.000000,0.939454 +-0.343660,-0.000000,0.000000,0.939094 +-0.344643,-0.000000,0.000000,0.938734 +-0.345626,-0.000000,0.000000,0.938372 +-0.346608,-0.000000,0.000000,0.938010 +-0.347590,-0.000000,0.000000,0.937646 +-0.348572,-0.000000,0.000000,0.937282 +-0.349553,-0.000000,0.000000,0.936916 +-0.350534,-0.000000,0.000000,0.936550 +-0.351515,-0.000000,0.000000,0.936182 +-0.352495,-0.000000,0.000000,0.935814 +-0.353475,-0.000000,0.000000,0.935444 +-0.354454,-0.000000,0.000000,0.935073 +-0.355433,-0.000000,0.000000,0.934702 +-0.356412,-0.000000,0.000000,0.934329 +-0.357390,-0.000000,0.000000,0.933955 +-0.358368,-0.000000,0.000000,0.933580 +-0.359345,-0.000000,0.000000,0.933205 +-0.360322,-0.000000,0.000000,0.932828 +-0.361299,-0.000000,0.000000,0.932450 +-0.362275,-0.000000,0.000000,0.932071 +-0.363251,-0.000000,0.000000,0.931691 +-0.364227,-0.000000,0.000000,0.931310 +-0.365202,-0.000000,0.000000,0.930928 +-0.366176,-0.000000,0.000000,0.930545 +-0.367151,-0.000000,0.000000,0.930161 +-0.368125,-0.000000,0.000000,0.929776 +-0.369098,-0.000000,0.000000,0.929390 +-0.370071,-0.000000,0.000000,0.929003 +-0.371044,-0.000000,0.000000,0.928615 +-0.372016,-0.000000,0.000000,0.928226 +-0.372988,-0.000000,0.000000,0.927836 +-0.373959,-0.000000,0.000000,0.927445 +-0.374930,-0.000000,0.000000,0.927053 +-0.375901,-0.000000,0.000000,0.926660 +-0.376871,-0.000000,0.000000,0.926266 +-0.377841,-0.000000,0.000000,0.925871 +-0.378810,-0.000000,0.000000,0.925474 +-0.379779,-0.000000,0.000000,0.925077 +-0.380748,-0.000000,0.000000,0.924679 +-0.381716,-0.000000,0.000000,0.924280 +-0.382683,-0.000000,0.000000,0.923880 +-0.383651,-0.000000,0.000000,0.923478 +-0.384618,-0.000000,0.000000,0.923076 +-0.385584,-0.000000,0.000000,0.922673 +-0.386550,-0.000000,0.000000,0.922268 +-0.387516,-0.000000,0.000000,0.921863 +-0.388481,-0.000000,0.000000,0.921457 +-0.389445,-0.000000,0.000000,0.921050 +-0.390410,-0.000000,0.000000,0.920641 +-0.391374,-0.000000,0.000000,0.920232 +-0.392337,-0.000000,0.000000,0.919821 +-0.393300,-0.000000,0.000000,0.919410 +-0.394263,-0.000000,0.000000,0.918998 +-0.395225,-0.000000,0.000000,0.918584 +-0.396187,-0.000000,0.000000,0.918170 +-0.397148,-0.000000,0.000000,0.917755 +-0.398109,-0.000000,0.000000,0.917338 +-0.399069,-0.000000,0.000000,0.916921 +-0.400029,-0.000000,0.000000,0.916502 +-0.400989,-0.000000,0.000000,0.916083 +-0.401948,-0.000000,0.000000,0.915663 +-0.402906,-0.000000,0.000000,0.915241 +-0.403865,-0.000000,0.000000,0.914819 +-0.404822,-0.000000,0.000000,0.914395 +-0.405780,-0.000000,0.000000,0.913971 +-0.406737,-0.000000,0.000000,0.913545 +-0.407693,-0.000000,0.000000,0.913119 +-0.408649,-0.000000,0.000000,0.912692 +-0.409605,-0.000000,0.000000,0.912263 +-0.410560,-0.000000,0.000000,0.911834 +-0.411514,-0.000000,0.000000,0.911403 +-0.412469,-0.000000,0.000000,0.910972 +-0.413422,-0.000000,0.000000,0.910539 +-0.414376,-0.000000,0.000000,0.910106 +-0.415328,-0.000000,0.000000,0.909672 +-0.416281,-0.000000,0.000000,0.909236 +-0.417233,-0.000000,0.000000,0.908800 +-0.418184,-0.000000,0.000000,0.908362 +-0.419135,-0.000000,0.000000,0.907924 +-0.420086,-0.000000,0.000000,0.907484 +-0.421036,-0.000000,0.000000,0.907044 +-0.421985,-0.000000,0.000000,0.906603 +-0.422935,-0.000000,0.000000,0.906160 +-0.423883,-0.000000,0.000000,0.905717 +-0.424832,-0.000000,0.000000,0.905272 +-0.425779,-0.000000,0.000000,0.904827 +-0.426727,-0.000000,0.000000,0.904381 +-0.427673,-0.000000,0.000000,0.903933 +-0.428620,-0.000000,0.000000,0.903485 +-0.429566,-0.000000,0.000000,0.903036 +-0.430511,-0.000000,0.000000,0.902585 +-0.431456,-0.000000,0.000000,0.902134 +-0.432401,-0.000000,0.000000,0.901682 +-0.433345,-0.000000,0.000000,0.901228 +-0.434288,-0.000000,0.000000,0.900774 +-0.435231,-0.000000,0.000000,0.900319 +-0.436174,-0.000000,0.000000,0.899863 +-0.437116,-0.000000,0.000000,0.899405 +-0.438057,-0.000000,0.000000,0.898947 +-0.438999,-0.000000,0.000000,0.898488 +-0.439939,-0.000000,0.000000,0.898028 +-0.440879,-0.000000,0.000000,0.897566 +-0.441819,-0.000000,0.000000,0.897104 +-0.442758,-0.000000,0.000000,0.896641 +-0.443697,-0.000000,0.000000,0.896177 +-0.444635,-0.000000,0.000000,0.895712 +-0.445573,-0.000000,0.000000,0.895246 +-0.446510,-0.000000,0.000000,0.894779 +-0.447447,-0.000000,0.000000,0.894310 +-0.448383,-0.000000,0.000000,0.893841 +-0.449319,-0.000000,0.000000,0.893371 +-0.450254,-0.000000,0.000000,0.892900 +-0.451189,-0.000000,0.000000,0.892428 +-0.452123,-0.000000,0.000000,0.891955 +-0.453057,-0.000000,0.000000,0.891481 +-0.453990,-0.000000,0.000000,0.891007 +-0.454923,-0.000000,0.000000,0.890531 +-0.455856,-0.000000,0.000000,0.890054 +-0.456787,-0.000000,0.000000,0.889576 +-0.457719,-0.000000,0.000000,0.889097 +-0.458650,-0.000000,0.000000,0.888617 +-0.459580,-0.000000,0.000000,0.888136 +-0.460510,-0.000000,0.000000,0.887655 +-0.461439,-0.000000,0.000000,0.887172 +-0.462368,-0.000000,0.000000,0.886688 +-0.463296,-0.000000,0.000000,0.886204 +-0.464224,-0.000000,0.000000,0.885718 +-0.465151,-0.000000,0.000000,0.885231 +-0.466078,-0.000000,0.000000,0.884744 +-0.467004,-0.000000,0.000000,0.884255 +-0.467930,-0.000000,0.000000,0.883766 +-0.468855,-0.000000,0.000000,0.883275 +-0.469780,-0.000000,0.000000,0.882784 +-0.470704,-0.000000,0.000000,0.882291 +-0.471628,-0.000000,0.000000,0.881798 +-0.472551,-0.000000,0.000000,0.881303 +-0.473473,-0.000000,0.000000,0.880808 +-0.474396,-0.000000,0.000000,0.880312 +-0.475317,-0.000000,0.000000,0.879815 +-0.476238,-0.000000,0.000000,0.879316 +-0.477159,-0.000000,0.000000,0.878817 +-0.478079,-0.000000,0.000000,0.878317 +-0.478998,-0.000000,0.000000,0.877816 +-0.479917,-0.000000,0.000000,0.877314 +-0.480836,-0.000000,0.000000,0.876811 +-0.481754,-0.000000,0.000000,0.876307 +-0.482671,-0.000000,0.000000,0.875802 +-0.483588,-0.000000,0.000000,0.875296 +-0.484504,-0.000000,0.000000,0.874789 +-0.485420,-0.000000,0.000000,0.874281 +-0.486335,-0.000000,0.000000,0.873772 +-0.487250,-0.000000,0.000000,0.873262 +-0.488164,-0.000000,0.000000,0.872752 +-0.489078,-0.000000,0.000000,0.872240 +-0.489991,-0.000000,0.000000,0.871727 +-0.490904,-0.000000,0.000000,0.871214 +-0.491816,-0.000000,0.000000,0.870699 +-0.492727,-0.000000,0.000000,0.870184 +-0.493638,-0.000000,0.000000,0.869667 +-0.494549,-0.000000,0.000000,0.869150 +-0.495459,-0.000000,0.000000,0.868632 +-0.496368,-0.000000,0.000000,0.868112 +-0.497277,-0.000000,0.000000,0.867592 +-0.498185,-0.000000,0.000000,0.867071 +-0.499093,-0.000000,0.000000,0.866549 +-0.500000,-0.000000,0.000000,0.866025 +-0.500907,-0.000000,0.000000,0.865501 +-0.501813,-0.000000,0.000000,0.864976 +-0.502718,-0.000000,0.000000,0.864450 +-0.503623,-0.000000,0.000000,0.863923 +-0.504528,-0.000000,0.000000,0.863396 +-0.505431,-0.000000,0.000000,0.862867 +-0.506335,-0.000000,0.000000,0.862337 +-0.507238,-0.000000,0.000000,0.861806 +-0.508140,-0.000000,0.000000,0.861275 +-0.509041,-0.000000,0.000000,0.860742 +-0.509943,-0.000000,0.000000,0.860208 +-0.510843,-0.000000,0.000000,0.859674 +-0.511743,-0.000000,0.000000,0.859139 +-0.512642,-0.000000,0.000000,0.858602 +-0.513541,-0.000000,0.000000,0.858065 +-0.514440,-0.000000,0.000000,0.857527 +-0.515337,-0.000000,0.000000,0.856987 +-0.516234,-0.000000,0.000000,0.856447 +-0.517131,-0.000000,0.000000,0.855906 +-0.518027,-0.000000,0.000000,0.855364 +-0.518922,-0.000000,0.000000,0.854821 +-0.519817,-0.000000,0.000000,0.854277 +-0.520712,-0.000000,0.000000,0.853733 +-0.521605,-0.000000,0.000000,0.853187 +-0.522499,-0.000000,0.000000,0.852640 +-0.523391,-0.000000,0.000000,0.852093 +-0.524283,-0.000000,0.000000,0.851544 +-0.525175,-0.000000,0.000000,0.850994 +-0.526066,-0.000000,0.000000,0.850444 +-0.526956,-0.000000,0.000000,0.849893 +-0.527846,-0.000000,0.000000,0.849340 +-0.528735,-0.000000,0.000000,0.848787 +-0.529623,-0.000000,0.000000,0.848233 +-0.530511,-0.000000,0.000000,0.847678 +-0.531399,-0.000000,0.000000,0.847122 +-0.532285,-0.000000,0.000000,0.846565 +-0.533172,-0.000000,0.000000,0.846007 +-0.534057,-0.000000,0.000000,0.845448 +-0.534942,-0.000000,0.000000,0.844889 +-0.535827,-0.000000,0.000000,0.844328 +-0.536711,-0.000000,0.000000,0.843766 +-0.537594,-0.000000,0.000000,0.843204 +-0.538477,-0.000000,0.000000,0.842640 +-0.539359,-0.000000,0.000000,0.842076 +-0.540240,-0.000000,0.000000,0.841511 +-0.541121,-0.000000,0.000000,0.840945 +-0.542002,-0.000000,0.000000,0.840377 +-0.542881,-0.000000,0.000000,0.839809 +-0.543760,-0.000000,0.000000,0.839240 +-0.544639,-0.000000,0.000000,0.838671 +-0.545517,-0.000000,0.000000,0.838100 +-0.546394,-0.000000,0.000000,0.837528 +-0.547271,-0.000000,0.000000,0.836955 +-0.548147,-0.000000,0.000000,0.836382 +-0.549023,-0.000000,0.000000,0.835807 +-0.549898,-0.000000,0.000000,0.835232 +-0.550772,-0.000000,0.000000,0.834656 +-0.551646,-0.000000,0.000000,0.834078 +-0.552519,-0.000000,0.000000,0.833500 +-0.553392,-0.000000,0.000000,0.832921 +-0.554263,-0.000000,0.000000,0.832341 +-0.555135,-0.000000,0.000000,0.831760 +-0.556006,-0.000000,0.000000,0.831179 +-0.556876,-0.000000,0.000000,0.830596 +-0.557745,-0.000000,0.000000,0.830012 +-0.558614,-0.000000,0.000000,0.829428 +-0.559482,-0.000000,0.000000,0.828842 +-0.560350,-0.000000,0.000000,0.828256 +-0.561217,-0.000000,0.000000,0.827669 +-0.562083,-0.000000,0.000000,0.827081 +-0.562949,-0.000000,0.000000,0.826492 +-0.563814,-0.000000,0.000000,0.825902 +-0.564679,-0.000000,0.000000,0.825311 +-0.565543,-0.000000,0.000000,0.824719 +-0.566406,-0.000000,0.000000,0.824126 +-0.567269,-0.000000,0.000000,0.823533 +-0.568131,-0.000000,0.000000,0.822938 +-0.568993,-0.000000,0.000000,0.822343 +-0.569853,-0.000000,0.000000,0.821746 +-0.570714,-0.000000,0.000000,0.821149 +-0.571573,-0.000000,0.000000,0.820551 +-0.572432,-0.000000,0.000000,0.819952 +-0.573290,-0.000000,0.000000,0.819352 +-0.574148,-0.000000,0.000000,0.818751 +-0.575005,-0.000000,0.000000,0.818150 +-0.575862,-0.000000,0.000000,0.817547 +-0.576718,-0.000000,0.000000,0.816944 +-0.577573,-0.000000,0.000000,0.816339 +-0.578427,-0.000000,0.000000,0.815734 +-0.579281,-0.000000,0.000000,0.815128 +-0.580134,-0.000000,0.000000,0.814521 +-0.580987,-0.000000,0.000000,0.813913 +-0.581839,-0.000000,0.000000,0.813304 +-0.582690,-0.000000,0.000000,0.812694 +-0.583541,-0.000000,0.000000,0.812084 +-0.584391,-0.000000,0.000000,0.811472 +-0.585241,-0.000000,0.000000,0.810860 +-0.586090,-0.000000,0.000000,0.810246 +-0.586938,-0.000000,0.000000,0.809632 +-0.587785,-0.000000,0.000000,0.809017 +-0.588632,-0.000000,0.000000,0.808401 +-0.589478,-0.000000,0.000000,0.807784 +-0.590324,-0.000000,0.000000,0.807166 +-0.591169,-0.000000,0.000000,0.806548 +-0.592013,-0.000000,0.000000,0.805928 +-0.592857,-0.000000,0.000000,0.805308 +-0.593700,-0.000000,0.000000,0.804687 +-0.594542,-0.000000,0.000000,0.804064 +-0.595384,-0.000000,0.000000,0.803441 +-0.596225,-0.000000,0.000000,0.802817 +-0.597065,-0.000000,0.000000,0.802193 +-0.597905,-0.000000,0.000000,0.801567 +-0.598744,-0.000000,0.000000,0.800940 +-0.599582,-0.000000,0.000000,0.800313 +-0.600420,-0.000000,0.000000,0.799685 +-0.601257,-0.000000,0.000000,0.799055 +-0.602094,-0.000000,0.000000,0.798425 +-0.602930,-0.000000,0.000000,0.797794 +-0.603765,-0.000000,0.000000,0.797163 +-0.604599,-0.000000,0.000000,0.796530 +-0.605433,-0.000000,0.000000,0.795896 +-0.606266,-0.000000,0.000000,0.795262 +-0.607098,-0.000000,0.000000,0.794627 +-0.607930,-0.000000,0.000000,0.793990 +-0.608761,-0.000000,0.000000,0.793353 +-0.609592,-0.000000,0.000000,0.792715 +-0.610422,-0.000000,0.000000,0.792077 +-0.611251,-0.000000,0.000000,0.791437 +-0.612079,-0.000000,0.000000,0.790796 +-0.612907,-0.000000,0.000000,0.790155 +-0.613734,-0.000000,0.000000,0.789513 +-0.614561,-0.000000,0.000000,0.788870 +-0.615386,-0.000000,0.000000,0.788226 +-0.616211,-0.000000,0.000000,0.787581 +-0.617036,-0.000000,0.000000,0.786935 +-0.617860,-0.000000,0.000000,0.786288 +-0.618683,-0.000000,0.000000,0.785641 +-0.619505,-0.000000,0.000000,0.784993 +-0.620327,-0.000000,0.000000,0.784343 +-0.621148,-0.000000,0.000000,0.783693 +-0.621968,-0.000000,0.000000,0.783043 +-0.622788,-0.000000,0.000000,0.782391 +-0.623607,-0.000000,0.000000,0.781738 +-0.624425,-0.000000,0.000000,0.781085 +-0.625243,-0.000000,0.000000,0.780430 +-0.626060,-0.000000,0.000000,0.779775 +-0.626876,-0.000000,0.000000,0.779119 +-0.627691,-0.000000,0.000000,0.778462 +-0.628506,-0.000000,0.000000,0.777805 +-0.629320,-0.000000,0.000000,0.777146 +-0.630134,-0.000000,0.000000,0.776487 +-0.630947,-0.000000,0.000000,0.775826 +-0.631759,-0.000000,0.000000,0.775165 +-0.632570,-0.000000,0.000000,0.774503 +-0.633381,-0.000000,0.000000,0.773840 +-0.634191,-0.000000,0.000000,0.773177 +-0.635000,-0.000000,0.000000,0.772512 +-0.635809,-0.000000,0.000000,0.771847 +-0.636617,-0.000000,0.000000,0.771180 +-0.637424,-0.000000,0.000000,0.770513 +-0.638231,-0.000000,0.000000,0.769845 +-0.639036,-0.000000,0.000000,0.769177 +-0.639841,-0.000000,0.000000,0.768507 +-0.640646,-0.000000,0.000000,0.767836 +-0.641450,-0.000000,0.000000,0.767165 +-0.642253,-0.000000,0.000000,0.766493 +-0.643055,-0.000000,0.000000,0.765820 +-0.643857,-0.000000,0.000000,0.765146 +-0.644657,-0.000000,0.000000,0.764472 +-0.645458,-0.000000,0.000000,0.763796 +-0.646257,-0.000000,0.000000,0.763120 +-0.647056,-0.000000,0.000000,0.762443 +-0.647854,-0.000000,0.000000,0.761764 +-0.648651,-0.000000,0.000000,0.761086 +-0.649448,-0.000000,0.000000,0.760406 +-0.650244,-0.000000,0.000000,0.759725 +-0.651039,-0.000000,0.000000,0.759044 +-0.651834,-0.000000,0.000000,0.758362 +-0.652628,-0.000000,0.000000,0.757679 +-0.653421,-0.000000,0.000000,0.756995 +-0.654213,-0.000000,0.000000,0.756310 +-0.655005,-0.000000,0.000000,0.755625 +-0.655796,-0.000000,0.000000,0.754939 +-0.656586,-0.000000,0.000000,0.754251 +-0.657375,-0.000000,0.000000,0.753563 +-0.658164,-0.000000,0.000000,0.752875 +-0.658952,-0.000000,0.000000,0.752185 +-0.659739,-0.000000,0.000000,0.751494 +-0.660526,-0.000000,0.000000,0.750803 +-0.661312,-0.000000,0.000000,0.750111 +-0.662097,-0.000000,0.000000,0.749418 +-0.662881,-0.000000,0.000000,0.748724 +-0.663665,-0.000000,0.000000,0.748030 +-0.664448,-0.000000,0.000000,0.747334 +-0.665230,-0.000000,0.000000,0.746638 +-0.666012,-0.000000,0.000000,0.745941 +-0.666793,-0.000000,0.000000,0.745243 +-0.667573,-0.000000,0.000000,0.744545 +-0.668352,-0.000000,0.000000,0.743845 +-0.669131,-0.000000,0.000000,0.743145 +-0.669908,-0.000000,0.000000,0.742444 +-0.670686,-0.000000,0.000000,0.741742 +-0.671462,-0.000000,0.000000,0.741039 +-0.672238,-0.000000,0.000000,0.740335 +-0.673013,-0.000000,0.000000,0.739631 +-0.673787,-0.000000,0.000000,0.738926 +-0.674560,-0.000000,0.000000,0.738220 +-0.675333,-0.000000,0.000000,0.737513 +-0.676105,-0.000000,0.000000,0.736806 +-0.676876,-0.000000,0.000000,0.736097 +-0.677646,-0.000000,0.000000,0.735388 +-0.678416,-0.000000,0.000000,0.734678 +-0.679185,-0.000000,0.000000,0.733967 +-0.679953,-0.000000,0.000000,0.733255 +-0.680721,-0.000000,0.000000,0.732543 +-0.681488,-0.000000,0.000000,0.731830 +-0.682254,-0.000000,0.000000,0.731116 +-0.683019,-0.000000,0.000000,0.730401 +-0.683783,-0.000000,0.000000,0.729685 +-0.684547,-0.000000,0.000000,0.728969 +-0.685310,-0.000000,0.000000,0.728251 +-0.686072,-0.000000,0.000000,0.727533 +-0.686834,-0.000000,0.000000,0.726814 +-0.687595,-0.000000,0.000000,0.726095 +-0.688355,-0.000000,0.000000,0.725374 +-0.689114,-0.000000,0.000000,0.724653 +-0.689872,-0.000000,0.000000,0.723931 +-0.690630,-0.000000,0.000000,0.723208 +-0.691387,-0.000000,0.000000,0.722485 +-0.692143,-0.000000,0.000000,0.721760 +-0.692899,-0.000000,0.000000,0.721035 +-0.693653,-0.000000,0.000000,0.720309 +-0.694407,-0.000000,0.000000,0.719582 +-0.695160,-0.000000,0.000000,0.718855 +-0.695913,-0.000000,0.000000,0.718126 +-0.696664,-0.000000,0.000000,0.717397 +-0.697415,-0.000000,0.000000,0.716667 +-0.698165,-0.000000,0.000000,0.715936 +-0.698915,-0.000000,0.000000,0.715205 +-0.699663,-0.000000,0.000000,0.714473 +-0.700411,-0.000000,0.000000,0.713740 +-0.701158,-0.000000,0.000000,0.713006 +-0.701904,-0.000000,0.000000,0.712271 +-0.702650,-0.000000,0.000000,0.711536 +-0.703395,-0.000000,0.000000,0.710799 +-0.704139,-0.000000,0.000000,0.710062 +-0.704882,-0.000000,0.000000,0.709325 +-0.705624,-0.000000,0.000000,0.708586 +-0.706366,-0.000000,0.000000,0.707847 +-0.707107,-0.000000,0.000000,0.707107 +-0.707847,-0.000000,0.000000,0.706366 +-0.708586,-0.000000,0.000000,0.705624 +-0.709325,-0.000000,0.000000,0.704882 +-0.710062,-0.000000,0.000000,0.704139 +-0.710799,-0.000000,0.000000,0.703395 +-0.711536,-0.000000,0.000000,0.702650 +-0.712271,-0.000000,0.000000,0.701904 +-0.713006,-0.000000,0.000000,0.701158 +-0.713740,-0.000000,0.000000,0.700411 +-0.714473,-0.000000,0.000000,0.699663 +-0.715205,-0.000000,0.000000,0.698915 +-0.715936,-0.000000,0.000000,0.698165 +-0.716667,-0.000000,0.000000,0.697415 +-0.717397,-0.000000,0.000000,0.696664 +-0.718126,-0.000000,0.000000,0.695913 +-0.718855,-0.000000,0.000000,0.695160 +-0.719582,-0.000000,0.000000,0.694407 +-0.720309,-0.000000,0.000000,0.693653 +-0.721035,-0.000000,0.000000,0.692899 +-0.721760,-0.000000,0.000000,0.692143 +-0.722485,-0.000000,0.000000,0.691387 +-0.723208,-0.000000,0.000000,0.690630 +-0.723931,-0.000000,0.000000,0.689872 +-0.724653,-0.000000,0.000000,0.689114 +-0.725374,-0.000000,0.000000,0.688355 +-0.726095,-0.000000,0.000000,0.687595 +-0.726814,-0.000000,0.000000,0.686834 +-0.727533,-0.000000,0.000000,0.686072 +-0.728251,-0.000000,0.000000,0.685310 +-0.728969,-0.000000,0.000000,0.684547 +-0.729685,-0.000000,0.000000,0.683783 +-0.730401,-0.000000,0.000000,0.683019 +-0.731116,-0.000000,0.000000,0.682254 +-0.731830,-0.000000,0.000000,0.681488 +-0.732543,-0.000000,0.000000,0.680721 +-0.733255,-0.000000,0.000000,0.679953 +-0.733967,-0.000000,0.000000,0.679185 +-0.734678,-0.000000,0.000000,0.678416 +-0.735388,-0.000000,0.000000,0.677646 +-0.736097,-0.000000,0.000000,0.676876 +-0.736806,-0.000000,0.000000,0.676105 +-0.737513,-0.000000,0.000000,0.675333 +-0.738220,-0.000000,0.000000,0.674560 +-0.738926,-0.000000,0.000000,0.673787 +-0.739631,-0.000000,0.000000,0.673013 +-0.740335,-0.000000,0.000000,0.672238 +-0.741039,-0.000000,0.000000,0.671462 +-0.741742,-0.000000,0.000000,0.670686 +-0.742444,-0.000000,0.000000,0.669908 +-0.743145,-0.000000,0.000000,0.669131 +-0.743845,-0.000000,0.000000,0.668352 +-0.744545,-0.000000,0.000000,0.667573 +-0.745243,-0.000000,0.000000,0.666793 +-0.745941,-0.000000,0.000000,0.666012 +-0.746638,-0.000000,0.000000,0.665230 +-0.747334,-0.000000,0.000000,0.664448 +-0.748030,-0.000000,0.000000,0.663665 +-0.748724,-0.000000,0.000000,0.662881 +-0.749418,-0.000000,0.000000,0.662097 +-0.750111,-0.000000,0.000000,0.661312 +-0.750803,-0.000000,0.000000,0.660526 +-0.751494,-0.000000,0.000000,0.659739 +-0.752185,-0.000000,0.000000,0.658952 +-0.752875,-0.000000,0.000000,0.658164 +-0.753563,-0.000000,0.000000,0.657375 +-0.754251,-0.000000,0.000000,0.656586 +-0.754939,-0.000000,0.000000,0.655796 +-0.755625,-0.000000,0.000000,0.655005 +-0.756310,-0.000000,0.000000,0.654213 +-0.756995,-0.000000,0.000000,0.653421 +-0.757679,-0.000000,0.000000,0.652628 +-0.758362,-0.000000,0.000000,0.651834 +-0.759044,-0.000000,0.000000,0.651039 +-0.759725,-0.000000,0.000000,0.650244 +-0.760406,-0.000000,0.000000,0.649448 +-0.761086,-0.000000,0.000000,0.648651 +-0.761764,-0.000000,0.000000,0.647854 +-0.762443,-0.000000,0.000000,0.647056 +-0.763120,-0.000000,0.000000,0.646257 +-0.763796,-0.000000,0.000000,0.645458 +-0.764472,-0.000000,0.000000,0.644657 +-0.765146,-0.000000,0.000000,0.643857 +-0.765820,-0.000000,0.000000,0.643055 +-0.766493,-0.000000,0.000000,0.642253 +-0.767165,-0.000000,0.000000,0.641450 +-0.767836,-0.000000,0.000000,0.640646 +-0.768507,-0.000000,0.000000,0.639841 +-0.769177,-0.000000,0.000000,0.639036 +-0.769845,-0.000000,0.000000,0.638231 +-0.770513,-0.000000,0.000000,0.637424 +-0.771180,-0.000000,0.000000,0.636617 +-0.771847,-0.000000,0.000000,0.635809 +-0.772512,-0.000000,0.000000,0.635000 +-0.773177,-0.000000,0.000000,0.634191 +-0.773840,-0.000000,0.000000,0.633381 +-0.774503,-0.000000,0.000000,0.632570 +-0.775165,-0.000000,0.000000,0.631759 +-0.775826,-0.000000,0.000000,0.630947 +-0.776487,-0.000000,0.000000,0.630134 +-0.777146,-0.000000,0.000000,0.629320 +-0.777805,-0.000000,0.000000,0.628506 +-0.778462,-0.000000,0.000000,0.627691 +-0.779119,-0.000000,0.000000,0.626876 +-0.779775,-0.000000,0.000000,0.626060 +-0.780430,-0.000000,0.000000,0.625243 +-0.781085,-0.000000,0.000000,0.624425 +-0.781738,-0.000000,0.000000,0.623607 +-0.782391,-0.000000,0.000000,0.622788 +-0.783043,-0.000000,0.000000,0.621968 +-0.783693,-0.000000,0.000000,0.621148 +-0.784343,-0.000000,0.000000,0.620327 +-0.784993,-0.000000,0.000000,0.619505 +-0.785641,-0.000000,0.000000,0.618683 +-0.786288,-0.000000,0.000000,0.617860 +-0.786935,-0.000000,0.000000,0.617036 +-0.787581,-0.000000,0.000000,0.616211 +-0.788226,-0.000000,0.000000,0.615386 +-0.788870,-0.000000,0.000000,0.614561 +-0.789513,-0.000000,0.000000,0.613734 +-0.790155,-0.000000,0.000000,0.612907 +-0.790796,-0.000000,0.000000,0.612079 +-0.791437,-0.000000,0.000000,0.611251 +-0.792077,-0.000000,0.000000,0.610422 +-0.792715,-0.000000,0.000000,0.609592 +-0.793353,-0.000000,0.000000,0.608761 +-0.793990,-0.000000,0.000000,0.607930 +-0.794627,-0.000000,0.000000,0.607098 +-0.795262,-0.000000,0.000000,0.606266 +-0.795896,-0.000000,0.000000,0.605433 +-0.796530,-0.000000,0.000000,0.604599 +-0.797163,-0.000000,0.000000,0.603765 +-0.797794,-0.000000,0.000000,0.602930 +-0.798425,-0.000000,0.000000,0.602094 +-0.799055,-0.000000,0.000000,0.601257 +-0.799685,-0.000000,0.000000,0.600420 +-0.800313,-0.000000,0.000000,0.599582 +-0.800940,-0.000000,0.000000,0.598744 +-0.801567,-0.000000,0.000000,0.597905 +-0.802193,-0.000000,0.000000,0.597065 +-0.802817,-0.000000,0.000000,0.596225 +-0.803441,-0.000000,0.000000,0.595384 +-0.804064,-0.000000,0.000000,0.594542 +-0.804687,-0.000000,0.000000,0.593700 +-0.805308,-0.000000,0.000000,0.592857 +-0.805928,-0.000000,0.000000,0.592013 +-0.806548,-0.000000,0.000000,0.591169 +-0.807166,-0.000000,0.000000,0.590324 +-0.807784,-0.000000,0.000000,0.589478 +-0.808401,-0.000000,0.000000,0.588632 +-0.809017,-0.000000,0.000000,0.587785 +-0.809632,-0.000000,0.000000,0.586938 +-0.810246,-0.000000,0.000000,0.586090 +-0.810860,-0.000000,0.000000,0.585241 +-0.811472,-0.000000,0.000000,0.584391 +-0.812084,-0.000000,0.000000,0.583541 +-0.812694,-0.000000,0.000000,0.582690 +-0.813304,-0.000000,0.000000,0.581839 +-0.813913,-0.000000,0.000000,0.580987 +-0.814521,-0.000000,0.000000,0.580134 +-0.815128,-0.000000,0.000000,0.579281 +-0.815734,-0.000000,0.000000,0.578427 +-0.816339,-0.000000,0.000000,0.577573 +-0.816944,-0.000000,0.000000,0.576718 +-0.817547,-0.000000,0.000000,0.575862 +-0.818150,-0.000000,0.000000,0.575005 +-0.818751,-0.000000,0.000000,0.574148 +-0.819352,-0.000000,0.000000,0.573290 +-0.819952,-0.000000,0.000000,0.572432 +-0.820551,-0.000000,0.000000,0.571573 +-0.821149,-0.000000,0.000000,0.570714 +-0.821746,-0.000000,0.000000,0.569853 +-0.822343,-0.000000,0.000000,0.568993 +-0.822938,-0.000000,0.000000,0.568131 +-0.823533,-0.000000,0.000000,0.567269 +-0.824126,-0.000000,0.000000,0.566406 +-0.824719,-0.000000,0.000000,0.565543 +-0.825311,-0.000000,0.000000,0.564679 +-0.825902,-0.000000,0.000000,0.563814 +-0.826492,-0.000000,0.000000,0.562949 +-0.827081,-0.000000,0.000000,0.562083 +-0.827669,-0.000000,0.000000,0.561217 +-0.828256,-0.000000,0.000000,0.560350 +-0.828842,-0.000000,0.000000,0.559482 +-0.829428,-0.000000,0.000000,0.558614 +-0.830012,-0.000000,0.000000,0.557745 +-0.830596,-0.000000,0.000000,0.556876 +-0.831179,-0.000000,0.000000,0.556006 +-0.831760,-0.000000,0.000000,0.555135 +-0.832341,-0.000000,0.000000,0.554263 +-0.832921,-0.000000,0.000000,0.553392 +-0.833500,-0.000000,0.000000,0.552519 +-0.834078,-0.000000,0.000000,0.551646 +-0.834656,-0.000000,0.000000,0.550772 +-0.835232,-0.000000,0.000000,0.549898 +-0.835807,-0.000000,0.000000,0.549023 +-0.836382,-0.000000,0.000000,0.548147 +-0.836955,-0.000000,0.000000,0.547271 +-0.837528,-0.000000,0.000000,0.546394 +-0.838100,-0.000000,0.000000,0.545517 +-0.838671,-0.000000,0.000000,0.544639 +-0.839240,-0.000000,0.000000,0.543760 +-0.839809,-0.000000,0.000000,0.542881 +-0.840377,-0.000000,0.000000,0.542002 +-0.840945,-0.000000,0.000000,0.541121 +-0.841511,-0.000000,0.000000,0.540240 +-0.842076,-0.000000,0.000000,0.539359 +-0.842640,-0.000000,0.000000,0.538477 +-0.843204,-0.000000,0.000000,0.537594 +-0.843766,-0.000000,0.000000,0.536711 +-0.844328,-0.000000,0.000000,0.535827 +-0.844889,-0.000000,0.000000,0.534942 +-0.845448,-0.000000,0.000000,0.534057 +-0.846007,-0.000000,0.000000,0.533172 +-0.846565,-0.000000,0.000000,0.532285 +-0.847122,-0.000000,0.000000,0.531399 +-0.847678,-0.000000,0.000000,0.530511 +-0.848233,-0.000000,0.000000,0.529623 +-0.848787,-0.000000,0.000000,0.528735 +-0.849340,-0.000000,0.000000,0.527846 +-0.849893,-0.000000,0.000000,0.526956 +-0.850444,-0.000000,0.000000,0.526066 +-0.850994,-0.000000,0.000000,0.525175 +-0.851544,-0.000000,0.000000,0.524283 +-0.852093,-0.000000,0.000000,0.523391 +-0.852640,-0.000000,0.000000,0.522499 +-0.853187,-0.000000,0.000000,0.521605 +-0.853733,-0.000000,0.000000,0.520712 +-0.854277,-0.000000,0.000000,0.519817 +-0.854821,-0.000000,0.000000,0.518922 +-0.855364,-0.000000,0.000000,0.518027 +-0.855906,-0.000000,0.000000,0.517131 +-0.856447,-0.000000,0.000000,0.516234 +-0.856987,-0.000000,0.000000,0.515337 +-0.857527,-0.000000,0.000000,0.514440 +-0.858065,-0.000000,0.000000,0.513541 +-0.858602,-0.000000,0.000000,0.512642 +-0.859139,-0.000000,0.000000,0.511743 +-0.859674,-0.000000,0.000000,0.510843 +-0.860208,-0.000000,0.000000,0.509943 +-0.860742,-0.000000,0.000000,0.509041 +-0.861275,-0.000000,0.000000,0.508140 +-0.861806,-0.000000,0.000000,0.507238 +-0.862337,-0.000000,0.000000,0.506335 +-0.862867,-0.000000,0.000000,0.505431 +-0.863396,-0.000000,0.000000,0.504528 +-0.863923,-0.000000,0.000000,0.503623 +-0.864450,-0.000000,0.000000,0.502718 +-0.864976,-0.000000,0.000000,0.501813 +-0.865501,-0.000000,0.000000,0.500907 +-0.866025,-0.000000,0.000000,0.500000 +-0.866549,-0.000000,0.000000,0.499093 +-0.867071,-0.000000,0.000000,0.498185 +-0.867592,-0.000000,0.000000,0.497277 +-0.868112,-0.000000,0.000000,0.496368 +-0.868632,-0.000000,0.000000,0.495459 +-0.869150,-0.000000,0.000000,0.494549 +-0.869667,-0.000000,0.000000,0.493638 +-0.870184,-0.000000,0.000000,0.492727 +-0.870699,-0.000000,0.000000,0.491816 +-0.871214,-0.000000,0.000000,0.490904 +-0.871727,-0.000000,0.000000,0.489991 +-0.872240,-0.000000,0.000000,0.489078 +-0.872752,-0.000000,0.000000,0.488164 +-0.873262,-0.000000,0.000000,0.487250 +-0.873772,-0.000000,0.000000,0.486335 +-0.874281,-0.000000,0.000000,0.485420 +-0.874789,-0.000000,0.000000,0.484504 +-0.875296,-0.000000,0.000000,0.483588 +-0.875802,-0.000000,0.000000,0.482671 +-0.876307,-0.000000,0.000000,0.481754 +-0.876811,-0.000000,0.000000,0.480836 +-0.877314,-0.000000,0.000000,0.479917 +-0.877816,-0.000000,0.000000,0.478998 +-0.878317,-0.000000,0.000000,0.478079 +-0.878817,-0.000000,0.000000,0.477159 +-0.879316,-0.000000,0.000000,0.476238 +-0.879815,-0.000000,0.000000,0.475317 +-0.880312,-0.000000,0.000000,0.474396 +-0.880808,-0.000000,0.000000,0.473473 +-0.881303,-0.000000,0.000000,0.472551 +-0.881798,-0.000000,0.000000,0.471628 +-0.882291,-0.000000,0.000000,0.470704 +-0.882784,-0.000000,0.000000,0.469780 +-0.883275,-0.000000,0.000000,0.468855 +-0.883766,-0.000000,0.000000,0.467930 +-0.884255,-0.000000,0.000000,0.467004 +-0.884744,-0.000000,0.000000,0.466078 +-0.885231,-0.000000,0.000000,0.465151 +-0.885718,-0.000000,0.000000,0.464224 +-0.886204,-0.000000,0.000000,0.463296 +-0.886688,-0.000000,0.000000,0.462368 +-0.887172,-0.000000,0.000000,0.461439 +-0.887655,-0.000000,0.000000,0.460510 +-0.888136,-0.000000,0.000000,0.459580 +-0.888617,-0.000000,0.000000,0.458650 +-0.889097,-0.000000,0.000000,0.457719 +-0.889576,-0.000000,0.000000,0.456787 +-0.890054,-0.000000,0.000000,0.455856 +-0.890531,-0.000000,0.000000,0.454923 +-0.891007,-0.000000,0.000000,0.453990 +-0.891481,-0.000000,0.000000,0.453057 +-0.891955,-0.000000,0.000000,0.452123 +-0.892428,-0.000000,0.000000,0.451189 +-0.892900,-0.000000,0.000000,0.450254 +-0.893371,-0.000000,0.000000,0.449319 +-0.893841,-0.000000,0.000000,0.448383 +-0.894310,-0.000000,0.000000,0.447447 +-0.894779,-0.000000,0.000000,0.446510 +-0.895246,-0.000000,0.000000,0.445573 +-0.895712,-0.000000,0.000000,0.444635 +-0.896177,-0.000000,0.000000,0.443697 +-0.896641,-0.000000,0.000000,0.442758 +-0.897104,-0.000000,0.000000,0.441819 +-0.897566,-0.000000,0.000000,0.440879 +-0.898028,-0.000000,0.000000,0.439939 +-0.898488,-0.000000,0.000000,0.438999 +-0.898947,-0.000000,0.000000,0.438057 +-0.899405,-0.000000,0.000000,0.437116 +-0.899863,-0.000000,0.000000,0.436174 +-0.900319,-0.000000,0.000000,0.435231 +-0.900774,-0.000000,0.000000,0.434288 +-0.901228,-0.000000,0.000000,0.433345 +-0.901682,-0.000000,0.000000,0.432401 +-0.902134,-0.000000,0.000000,0.431456 +-0.902585,-0.000000,0.000000,0.430511 +-0.903036,-0.000000,0.000000,0.429566 +-0.903485,-0.000000,0.000000,0.428620 +-0.903933,-0.000000,0.000000,0.427673 +-0.904381,-0.000000,0.000000,0.426727 +-0.904827,-0.000000,0.000000,0.425779 +-0.905272,-0.000000,0.000000,0.424832 +-0.905717,-0.000000,0.000000,0.423883 +-0.906160,-0.000000,0.000000,0.422935 +-0.906603,-0.000000,0.000000,0.421985 +-0.907044,-0.000000,0.000000,0.421036 +-0.907484,-0.000000,0.000000,0.420086 +-0.907924,-0.000000,0.000000,0.419135 +-0.908362,-0.000000,0.000000,0.418184 +-0.908800,-0.000000,0.000000,0.417233 +-0.909236,-0.000000,0.000000,0.416281 +-0.909672,-0.000000,0.000000,0.415328 +-0.910106,-0.000000,0.000000,0.414376 +-0.910539,-0.000000,0.000000,0.413422 +-0.910972,-0.000000,0.000000,0.412469 +-0.911403,-0.000000,0.000000,0.411514 +-0.911834,-0.000000,0.000000,0.410560 +-0.912263,-0.000000,0.000000,0.409605 +-0.912692,-0.000000,0.000000,0.408649 +-0.913119,-0.000000,0.000000,0.407693 +-0.913545,-0.000000,0.000000,0.406737 +-0.913971,-0.000000,0.000000,0.405780 +-0.914395,-0.000000,0.000000,0.404822 +-0.914819,-0.000000,0.000000,0.403865 +-0.915241,-0.000000,0.000000,0.402906 +-0.915663,-0.000000,0.000000,0.401948 +-0.916083,-0.000000,0.000000,0.400989 +-0.916502,-0.000000,0.000000,0.400029 +-0.916921,-0.000000,0.000000,0.399069 +-0.917338,-0.000000,0.000000,0.398109 +-0.917755,-0.000000,0.000000,0.397148 +-0.918170,-0.000000,0.000000,0.396187 +-0.918584,-0.000000,0.000000,0.395225 +-0.918998,-0.000000,0.000000,0.394263 +-0.919410,-0.000000,0.000000,0.393300 +-0.919821,-0.000000,0.000000,0.392337 +-0.920232,-0.000000,0.000000,0.391374 +-0.920641,-0.000000,0.000000,0.390410 +-0.921050,-0.000000,0.000000,0.389445 +-0.921457,-0.000000,0.000000,0.388481 +-0.921863,-0.000000,0.000000,0.387516 +-0.922268,-0.000000,0.000000,0.386550 +-0.922673,-0.000000,0.000000,0.385584 +-0.923076,-0.000000,0.000000,0.384618 +-0.923478,-0.000000,0.000000,0.383651 +-0.923880,-0.000000,0.000000,0.382683 +-0.924280,-0.000000,0.000000,0.381716 +-0.924679,-0.000000,0.000000,0.380748 +-0.925077,-0.000000,0.000000,0.379779 +-0.925474,-0.000000,0.000000,0.378810 +-0.925871,-0.000000,0.000000,0.377841 +-0.926266,-0.000000,0.000000,0.376871 +-0.926660,-0.000000,0.000000,0.375901 +-0.927053,-0.000000,0.000000,0.374930 +-0.927445,-0.000000,0.000000,0.373959 +-0.927836,-0.000000,0.000000,0.372988 +-0.928226,-0.000000,0.000000,0.372016 +-0.928615,-0.000000,0.000000,0.371044 +-0.929003,-0.000000,0.000000,0.370071 +-0.929390,-0.000000,0.000000,0.369098 +-0.929776,-0.000000,0.000000,0.368125 +-0.930161,-0.000000,0.000000,0.367151 +-0.930545,-0.000000,0.000000,0.366176 +-0.930928,-0.000000,0.000000,0.365202 +-0.931310,-0.000000,0.000000,0.364227 +-0.931691,-0.000000,0.000000,0.363251 +-0.932071,-0.000000,0.000000,0.362275 +-0.932450,-0.000000,0.000000,0.361299 +-0.932828,-0.000000,0.000000,0.360322 +-0.933205,-0.000000,0.000000,0.359345 +-0.933580,-0.000000,0.000000,0.358368 +-0.933955,-0.000000,0.000000,0.357390 +-0.934329,-0.000000,0.000000,0.356412 +-0.934702,-0.000000,0.000000,0.355433 +-0.935073,-0.000000,0.000000,0.354454 +-0.935444,-0.000000,0.000000,0.353475 +-0.935814,-0.000000,0.000000,0.352495 +-0.936182,-0.000000,0.000000,0.351515 +-0.936550,-0.000000,0.000000,0.350534 +-0.936916,-0.000000,0.000000,0.349553 +-0.937282,-0.000000,0.000000,0.348572 +-0.937646,-0.000000,0.000000,0.347590 +-0.938010,-0.000000,0.000000,0.346608 +-0.938372,-0.000000,0.000000,0.345626 +-0.938734,-0.000000,0.000000,0.344643 +-0.939094,-0.000000,0.000000,0.343660 +-0.939454,-0.000000,0.000000,0.342676 +-0.939812,-0.000000,0.000000,0.341692 +-0.940169,-0.000000,0.000000,0.340708 +-0.940526,-0.000000,0.000000,0.339723 +-0.940881,-0.000000,0.000000,0.338738 +-0.941235,-0.000000,0.000000,0.337752 +-0.941588,-0.000000,0.000000,0.336767 +-0.941940,-0.000000,0.000000,0.335780 +-0.942291,-0.000000,0.000000,0.334794 +-0.942641,-0.000000,0.000000,0.333807 +-0.942991,-0.000000,0.000000,0.332820 +-0.943339,-0.000000,0.000000,0.331832 +-0.943686,-0.000000,0.000000,0.330844 +-0.944031,-0.000000,0.000000,0.329855 +-0.944376,-0.000000,0.000000,0.328867 +-0.944720,-0.000000,0.000000,0.327878 +-0.945063,-0.000000,0.000000,0.326888 +-0.945405,-0.000000,0.000000,0.325898 +-0.945746,-0.000000,0.000000,0.324908 +-0.946085,-0.000000,0.000000,0.323917 +-0.946424,-0.000000,0.000000,0.322927 +-0.946762,-0.000000,0.000000,0.321935 +-0.947098,-0.000000,0.000000,0.320944 +-0.947434,-0.000000,0.000000,0.319952 +-0.947768,-0.000000,0.000000,0.318959 +-0.948102,-0.000000,0.000000,0.317967 +-0.948434,-0.000000,0.000000,0.316974 +-0.948766,-0.000000,0.000000,0.315980 +-0.949096,-0.000000,0.000000,0.314987 +-0.949425,-0.000000,0.000000,0.313992 +-0.949754,-0.000000,0.000000,0.312998 +-0.950081,-0.000000,0.000000,0.312003 +-0.950407,-0.000000,0.000000,0.311008 +-0.950732,-0.000000,0.000000,0.310013 +-0.951057,-0.000000,0.000000,0.309017 +-0.951380,-0.000000,0.000000,0.308021 +-0.951702,-0.000000,0.000000,0.307024 +-0.952023,-0.000000,0.000000,0.306028 +-0.952343,-0.000000,0.000000,0.305031 +-0.952661,-0.000000,0.000000,0.304033 +-0.952979,-0.000000,0.000000,0.303035 +-0.953296,-0.000000,0.000000,0.302037 +-0.953612,-0.000000,0.000000,0.301039 +-0.953927,-0.000000,0.000000,0.300040 +-0.954240,-0.000000,0.000000,0.299041 +-0.954553,-0.000000,0.000000,0.298041 +-0.954865,-0.000000,0.000000,0.297042 +-0.955175,-0.000000,0.000000,0.296041 +-0.955485,-0.000000,0.000000,0.295041 +-0.955793,-0.000000,0.000000,0.294040 +-0.956100,-0.000000,0.000000,0.293039 +-0.956407,-0.000000,0.000000,0.292038 +-0.956712,-0.000000,0.000000,0.291036 +-0.957016,-0.000000,0.000000,0.290034 +-0.957319,-0.000000,0.000000,0.289032 +-0.957622,-0.000000,0.000000,0.288029 +-0.957923,-0.000000,0.000000,0.287026 +-0.958223,-0.000000,0.000000,0.286023 +-0.958522,-0.000000,0.000000,0.285019 +-0.958820,-0.000000,0.000000,0.284015 +-0.959117,-0.000000,0.000000,0.283011 +-0.959412,-0.000000,0.000000,0.282007 +-0.959707,-0.000000,0.000000,0.281002 +-0.960001,-0.000000,0.000000,0.279997 +-0.960294,-0.000000,0.000000,0.278991 +-0.960585,-0.000000,0.000000,0.277985 +-0.960876,-0.000000,0.000000,0.276979 +-0.961165,-0.000000,0.000000,0.275973 +-0.961454,-0.000000,0.000000,0.274966 +-0.961741,-0.000000,0.000000,0.273959 +-0.962028,-0.000000,0.000000,0.272952 +-0.962313,-0.000000,0.000000,0.271944 +-0.962597,-0.000000,0.000000,0.270936 +-0.962880,-0.000000,0.000000,0.269928 +-0.963163,-0.000000,0.000000,0.268920 +-0.963444,-0.000000,0.000000,0.267911 +-0.963724,-0.000000,0.000000,0.266902 +-0.964003,-0.000000,0.000000,0.265893 +-0.964281,-0.000000,0.000000,0.264883 +-0.964557,-0.000000,0.000000,0.263873 +-0.964833,-0.000000,0.000000,0.262863 +-0.965108,-0.000000,0.000000,0.261852 +-0.965382,-0.000000,0.000000,0.260842 +-0.965654,-0.000000,0.000000,0.259830 +-0.965926,-0.000000,0.000000,0.258819 +-0.966196,-0.000000,0.000000,0.257807 +-0.966466,-0.000000,0.000000,0.256795 +-0.966734,-0.000000,0.000000,0.255783 +-0.967001,-0.000000,0.000000,0.254771 +-0.967268,-0.000000,0.000000,0.253758 +-0.967533,-0.000000,0.000000,0.252745 +-0.967797,-0.000000,0.000000,0.251732 +-0.968060,-0.000000,0.000000,0.250718 +-0.968322,-0.000000,0.000000,0.249704 +-0.968583,-0.000000,0.000000,0.248690 +-0.968843,-0.000000,0.000000,0.247675 +-0.969102,-0.000000,0.000000,0.246661 +-0.969360,-0.000000,0.000000,0.245646 +-0.969616,-0.000000,0.000000,0.244631 +-0.969872,-0.000000,0.000000,0.243615 +-0.970127,-0.000000,0.000000,0.242599 +-0.970380,-0.000000,0.000000,0.241583 +-0.970633,-0.000000,0.000000,0.240567 +-0.970884,-0.000000,0.000000,0.239550 +-0.971134,-0.000000,0.000000,0.238533 +-0.971384,-0.000000,0.000000,0.237516 +-0.971632,-0.000000,0.000000,0.236499 +-0.971879,-0.000000,0.000000,0.235481 +-0.972125,-0.000000,0.000000,0.234463 +-0.972370,-0.000000,0.000000,0.233445 +-0.972614,-0.000000,0.000000,0.232427 +-0.972857,-0.000000,0.000000,0.231408 +-0.973099,-0.000000,0.000000,0.230389 +-0.973339,-0.000000,0.000000,0.229370 +-0.973579,-0.000000,0.000000,0.228351 +-0.973817,-0.000000,0.000000,0.227331 +-0.974055,-0.000000,0.000000,0.226311 +-0.974291,-0.000000,0.000000,0.225291 +-0.974527,-0.000000,0.000000,0.224271 +-0.974761,-0.000000,0.000000,0.223250 +-0.974994,-0.000000,0.000000,0.222229 +-0.975227,-0.000000,0.000000,0.221208 +-0.975458,-0.000000,0.000000,0.220187 +-0.975688,-0.000000,0.000000,0.219165 +-0.975917,-0.000000,0.000000,0.218143 +-0.976145,-0.000000,0.000000,0.217121 +-0.976371,-0.000000,0.000000,0.216099 +-0.976597,-0.000000,0.000000,0.215076 +-0.976822,-0.000000,0.000000,0.214053 +-0.977046,-0.000000,0.000000,0.213030 +-0.977268,-0.000000,0.000000,0.212007 +-0.977490,-0.000000,0.000000,0.210984 +-0.977710,-0.000000,0.000000,0.209960 +-0.977929,-0.000000,0.000000,0.208936 +-0.978148,-0.000000,0.000000,0.207912 +-0.978365,-0.000000,0.000000,0.206887 +-0.978581,-0.000000,0.000000,0.205863 +-0.978796,-0.000000,0.000000,0.204838 +-0.979010,-0.000000,0.000000,0.203813 +-0.979223,-0.000000,0.000000,0.202787 +-0.979435,-0.000000,0.000000,0.201762 +-0.979645,-0.000000,0.000000,0.200736 +-0.979855,-0.000000,0.000000,0.199710 +-0.980064,-0.000000,0.000000,0.198684 +-0.980271,-0.000000,0.000000,0.197657 +-0.980478,-0.000000,0.000000,0.196631 +-0.980683,-0.000000,0.000000,0.195604 +-0.980887,-0.000000,0.000000,0.194577 +-0.981091,-0.000000,0.000000,0.193549 +-0.981293,-0.000000,0.000000,0.192522 +-0.981494,-0.000000,0.000000,0.191494 +-0.981694,-0.000000,0.000000,0.190466 +-0.981893,-0.000000,0.000000,0.189438 +-0.982090,-0.000000,0.000000,0.188410 +-0.982287,-0.000000,0.000000,0.187381 +-0.982483,-0.000000,0.000000,0.186353 +-0.982678,-0.000000,0.000000,0.185324 +-0.982871,-0.000000,0.000000,0.184294 +-0.983064,-0.000000,0.000000,0.183265 +-0.983255,-0.000000,0.000000,0.182236 +-0.983445,-0.000000,0.000000,0.181206 +-0.983634,-0.000000,0.000000,0.180176 +-0.983823,-0.000000,0.000000,0.179146 +-0.984010,-0.000000,0.000000,0.178115 +-0.984196,-0.000000,0.000000,0.177085 +-0.984381,-0.000000,0.000000,0.176054 +-0.984564,-0.000000,0.000000,0.175023 +-0.984747,-0.000000,0.000000,0.173992 +-0.984929,-0.000000,0.000000,0.172961 +-0.985109,-0.000000,0.000000,0.171929 +-0.985289,-0.000000,0.000000,0.170897 +-0.985467,-0.000000,0.000000,0.169866 +-0.985645,-0.000000,0.000000,0.168833 +-0.985821,-0.000000,0.000000,0.167801 +-0.985996,-0.000000,0.000000,0.166769 +-0.986170,-0.000000,0.000000,0.165736 +-0.986343,-0.000000,0.000000,0.164703 +-0.986515,-0.000000,0.000000,0.163670 +-0.986686,-0.000000,0.000000,0.162637 +-0.986856,-0.000000,0.000000,0.161604 +-0.987024,-0.000000,0.000000,0.160570 +-0.987192,-0.000000,0.000000,0.159537 +-0.987359,-0.000000,0.000000,0.158503 +-0.987524,-0.000000,0.000000,0.157469 +-0.987688,-0.000000,0.000000,0.156434 +-0.987852,-0.000000,0.000000,0.155400 +-0.988014,-0.000000,0.000000,0.154366 +-0.988175,-0.000000,0.000000,0.153331 +-0.988335,-0.000000,0.000000,0.152296 +-0.988494,-0.000000,0.000000,0.151261 +-0.988652,-0.000000,0.000000,0.150226 +-0.988809,-0.000000,0.000000,0.149190 +-0.988964,-0.000000,0.000000,0.148155 +-0.989119,-0.000000,0.000000,0.147119 +-0.989272,-0.000000,0.000000,0.146083 +-0.989425,-0.000000,0.000000,0.145047 +-0.989576,-0.000000,0.000000,0.144011 +-0.989726,-0.000000,0.000000,0.142974 +-0.989876,-0.000000,0.000000,0.141938 +-0.990024,-0.000000,0.000000,0.140901 +-0.990171,-0.000000,0.000000,0.139864 +-0.990317,-0.000000,0.000000,0.138827 +-0.990461,-0.000000,0.000000,0.137790 +-0.990605,-0.000000,0.000000,0.136753 +-0.990748,-0.000000,0.000000,0.135716 +-0.990889,-0.000000,0.000000,0.134678 +-0.991030,-0.000000,0.000000,0.133640 +-0.991169,-0.000000,0.000000,0.132602 +-0.991308,-0.000000,0.000000,0.131564 +-0.991445,-0.000000,0.000000,0.130526 +-0.991581,-0.000000,0.000000,0.129488 +-0.991716,-0.000000,0.000000,0.128449 +-0.991850,-0.000000,0.000000,0.127411 +-0.991983,-0.000000,0.000000,0.126372 +-0.992115,-0.000000,0.000000,0.125333 +-0.992245,-0.000000,0.000000,0.124294 +-0.992375,-0.000000,0.000000,0.123255 +-0.992504,-0.000000,0.000000,0.122216 +-0.992631,-0.000000,0.000000,0.121176 +-0.992757,-0.000000,0.000000,0.120137 +-0.992883,-0.000000,0.000000,0.119097 +-0.993007,-0.000000,0.000000,0.118057 +-0.993130,-0.000000,0.000000,0.117017 +-0.993252,-0.000000,0.000000,0.115977 +-0.993373,-0.000000,0.000000,0.114937 +-0.993493,-0.000000,0.000000,0.113897 +-0.993611,-0.000000,0.000000,0.112856 +-0.993729,-0.000000,0.000000,0.111816 +-0.993845,-0.000000,0.000000,0.110775 +-0.993961,-0.000000,0.000000,0.109734 +-0.994075,-0.000000,0.000000,0.108693 +-0.994189,-0.000000,0.000000,0.107652 +-0.994301,-0.000000,0.000000,0.106611 +-0.994412,-0.000000,0.000000,0.105570 +-0.994522,-0.000000,0.000000,0.104528 +-0.994631,-0.000000,0.000000,0.103487 +-0.994739,-0.000000,0.000000,0.102445 +-0.994845,-0.000000,0.000000,0.101404 +-0.994951,-0.000000,0.000000,0.100362 +-0.995056,-0.000000,0.000000,0.099320 +-0.995159,-0.000000,0.000000,0.098278 +-0.995261,-0.000000,0.000000,0.097235 +-0.995363,-0.000000,0.000000,0.096193 +-0.995463,-0.000000,0.000000,0.095151 +-0.995562,-0.000000,0.000000,0.094108 +-0.995660,-0.000000,0.000000,0.093066 +-0.995757,-0.000000,0.000000,0.092023 +-0.995853,-0.000000,0.000000,0.090980 +-0.995947,-0.000000,0.000000,0.089937 +-0.996041,-0.000000,0.000000,0.088894 +-0.996134,-0.000000,0.000000,0.087851 +-0.996225,-0.000000,0.000000,0.086808 +-0.996315,-0.000000,0.000000,0.085765 +-0.996405,-0.000000,0.000000,0.084721 +-0.996493,-0.000000,0.000000,0.083678 +-0.996580,-0.000000,0.000000,0.082634 +-0.996666,-0.000000,0.000000,0.081591 +-0.996751,-0.000000,0.000000,0.080547 +-0.996835,-0.000000,0.000000,0.079503 +-0.996917,-0.000000,0.000000,0.078459 +-0.996999,-0.000000,0.000000,0.077415 +-0.997079,-0.000000,0.000000,0.076371 +-0.997159,-0.000000,0.000000,0.075327 +-0.997237,-0.000000,0.000000,0.074283 +-0.997314,-0.000000,0.000000,0.073238 +-0.997391,-0.000000,0.000000,0.072194 +-0.997466,-0.000000,0.000000,0.071149 +-0.997540,-0.000000,0.000000,0.070105 +-0.997613,-0.000000,0.000000,0.069060 +-0.997684,-0.000000,0.000000,0.068015 +-0.997755,-0.000000,0.000000,0.066970 +-0.997825,-0.000000,0.000000,0.065926 +-0.997893,-0.000000,0.000000,0.064881 +-0.997960,-0.000000,0.000000,0.063836 +-0.998027,-0.000000,0.000000,0.062791 +-0.998092,-0.000000,0.000000,0.061745 +-0.998156,-0.000000,0.000000,0.060700 +-0.998219,-0.000000,0.000000,0.059655 +-0.998281,-0.000000,0.000000,0.058609 +-0.998342,-0.000000,0.000000,0.057564 +-0.998402,-0.000000,0.000000,0.056519 +-0.998460,-0.000000,0.000000,0.055473 +-0.998518,-0.000000,0.000000,0.054427 +-0.998574,-0.000000,0.000000,0.053382 +-0.998630,-0.000000,0.000000,0.052336 +-0.998684,-0.000000,0.000000,0.051290 +-0.998737,-0.000000,0.000000,0.050244 +-0.998789,-0.000000,0.000000,0.049198 +-0.998840,-0.000000,0.000000,0.048152 +-0.998890,-0.000000,0.000000,0.047106 +-0.998939,-0.000000,0.000000,0.046060 +-0.998986,-0.000000,0.000000,0.045014 +-0.999033,-0.000000,0.000000,0.043968 +-0.999078,-0.000000,0.000000,0.042922 +-0.999123,-0.000000,0.000000,0.041876 +-0.999166,-0.000000,0.000000,0.040829 +-0.999208,-0.000000,0.000000,0.039783 +-0.999249,-0.000000,0.000000,0.038737 +-0.999289,-0.000000,0.000000,0.037690 +-0.999328,-0.000000,0.000000,0.036644 +-0.999366,-0.000000,0.000000,0.035597 +-0.999403,-0.000000,0.000000,0.034551 +-0.999439,-0.000000,0.000000,0.033504 +-0.999473,-0.000000,0.000000,0.032457 +-0.999507,-0.000000,0.000000,0.031411 +-0.999539,-0.000000,0.000000,0.030364 +-0.999570,-0.000000,0.000000,0.029317 +-0.999600,-0.000000,0.000000,0.028271 +-0.999629,-0.000000,0.000000,0.027224 +-0.999657,-0.000000,0.000000,0.026177 +-0.999684,-0.000000,0.000000,0.025130 +-0.999710,-0.000000,0.000000,0.024083 +-0.999735,-0.000000,0.000000,0.023036 +-0.999758,-0.000000,0.000000,0.021989 +-0.999781,-0.000000,0.000000,0.020942 +-0.999802,-0.000000,0.000000,0.019895 +-0.999822,-0.000000,0.000000,0.018848 +-0.999842,-0.000000,0.000000,0.017801 +-0.999860,-0.000000,0.000000,0.016754 +-0.999877,-0.000000,0.000000,0.015707 +-0.999893,-0.000000,0.000000,0.014660 +-0.999907,-0.000000,0.000000,0.013613 +-0.999921,-0.000000,0.000000,0.012566 +-0.999934,-0.000000,0.000000,0.011519 +-0.999945,-0.000000,0.000000,0.010472 +-0.999956,-0.000000,0.000000,0.009425 +-0.999965,-0.000000,0.000000,0.008377 +-0.999973,-0.000000,0.000000,0.007330 +-0.999980,-0.000000,0.000000,0.006283 +-0.999986,-0.000000,0.000000,0.005236 +-0.999991,-0.000000,0.000000,0.004189 +-0.999995,-0.000000,0.000000,0.003142 +-0.999998,-0.000000,0.000000,0.002094 +-0.999999,-0.000000,0.000000,0.001047 diff --git a/scripts/testv/headrot_case01_3000_q.csv b/scripts/testv/headrot_case01_3000_q.csv index e69de29bb2..a0735ed04d 100644 --- a/scripts/testv/headrot_case01_3000_q.csv +++ b/scripts/testv/headrot_case01_3000_q.csv @@ -0,0 +1,3000 @@ +1.000000,0.000000,0.000000,0.000000 +0.999999,0.000000,0.001047,0.000000 +0.999998,0.000000,0.002094,0.000000 +0.999995,0.000000,0.003142,0.000000 +0.999991,0.000000,0.004189,0.000000 +0.999986,0.000000,0.005236,0.000000 +0.999980,0.000000,0.006283,0.000000 +0.999973,0.000000,0.007330,0.000000 +0.999965,0.000000,0.008377,0.000000 +0.999956,0.000000,0.009425,0.000000 +0.999945,0.000000,0.010472,0.000000 +0.999934,0.000000,0.011519,0.000000 +0.999921,0.000000,0.012566,0.000000 +0.999907,0.000000,0.013613,0.000000 +0.999893,0.000000,0.014660,0.000000 +0.999877,0.000000,0.015707,0.000000 +0.999860,0.000000,0.016754,0.000000 +0.999842,0.000000,0.017801,0.000000 +0.999822,0.000000,0.018848,0.000000 +0.999802,0.000000,0.019895,0.000000 +0.999781,0.000000,0.020942,0.000000 +0.999758,0.000000,0.021989,0.000000 +0.999735,0.000000,0.023036,0.000000 +0.999710,0.000000,0.024083,0.000000 +0.999684,0.000000,0.025130,0.000000 +0.999657,0.000000,0.026177,0.000000 +0.999629,0.000000,0.027224,0.000000 +0.999600,0.000000,0.028271,0.000000 +0.999570,0.000000,0.029317,0.000000 +0.999539,0.000000,0.030364,0.000000 +0.999507,0.000000,0.031411,0.000000 +0.999473,0.000000,0.032457,0.000000 +0.999439,0.000000,0.033504,0.000000 +0.999403,0.000000,0.034551,0.000000 +0.999366,0.000000,0.035597,0.000000 +0.999328,0.000000,0.036644,0.000000 +0.999289,0.000000,0.037690,0.000000 +0.999249,0.000000,0.038737,0.000000 +0.999208,0.000000,0.039783,0.000000 +0.999166,0.000000,0.040829,0.000000 +0.999123,0.000000,0.041876,0.000000 +0.999078,0.000000,0.042922,0.000000 +0.999033,0.000000,0.043968,0.000000 +0.998986,0.000000,0.045014,0.000000 +0.998939,0.000000,0.046060,0.000000 +0.998890,0.000000,0.047106,0.000000 +0.998840,0.000000,0.048152,0.000000 +0.998789,0.000000,0.049198,0.000000 +0.998737,0.000000,0.050244,0.000000 +0.998684,0.000000,0.051290,0.000000 +0.998630,0.000000,0.052336,0.000000 +0.998574,0.000000,0.053382,0.000000 +0.998518,0.000000,0.054427,0.000000 +0.998460,0.000000,0.055473,0.000000 +0.998402,0.000000,0.056519,0.000000 +0.998342,0.000000,0.057564,0.000000 +0.998281,0.000000,0.058609,0.000000 +0.998219,0.000000,0.059655,0.000000 +0.998156,0.000000,0.060700,0.000000 +0.998092,0.000000,0.061745,0.000000 +0.998027,0.000000,0.062791,0.000000 +0.997960,0.000000,0.063836,0.000000 +0.997893,0.000000,0.064881,0.000000 +0.997825,0.000000,0.065926,0.000000 +0.997755,0.000000,0.066970,0.000000 +0.997684,0.000000,0.068015,0.000000 +0.997613,0.000000,0.069060,0.000000 +0.997540,0.000000,0.070105,0.000000 +0.997466,0.000000,0.071149,0.000000 +0.997391,0.000000,0.072194,0.000000 +0.997314,0.000000,0.073238,0.000000 +0.997237,0.000000,0.074283,0.000000 +0.997159,0.000000,0.075327,0.000000 +0.997079,0.000000,0.076371,0.000000 +0.996999,0.000000,0.077415,0.000000 +0.996917,0.000000,0.078459,0.000000 +0.996835,0.000000,0.079503,0.000000 +0.996751,0.000000,0.080547,0.000000 +0.996666,0.000000,0.081591,0.000000 +0.996580,0.000000,0.082634,0.000000 +0.996493,0.000000,0.083678,0.000000 +0.996405,0.000000,0.084721,0.000000 +0.996315,0.000000,0.085765,0.000000 +0.996225,0.000000,0.086808,0.000000 +0.996134,0.000000,0.087851,0.000000 +0.996041,0.000000,0.088894,0.000000 +0.995947,0.000000,0.089937,0.000000 +0.995853,0.000000,0.090980,0.000000 +0.995757,0.000000,0.092023,0.000000 +0.995660,0.000000,0.093066,0.000000 +0.995562,0.000000,0.094108,0.000000 +0.995463,0.000000,0.095151,0.000000 +0.995363,0.000000,0.096193,0.000000 +0.995261,0.000000,0.097235,0.000000 +0.995159,0.000000,0.098278,0.000000 +0.995056,0.000000,0.099320,0.000000 +0.994951,0.000000,0.100362,0.000000 +0.994845,0.000000,0.101404,0.000000 +0.994739,0.000000,0.102445,0.000000 +0.994631,0.000000,0.103487,0.000000 +0.994522,0.000000,0.104528,0.000000 +0.994412,0.000000,0.105570,0.000000 +0.994301,0.000000,0.106611,0.000000 +0.994189,0.000000,0.107652,0.000000 +0.994075,0.000000,0.108693,0.000000 +0.993961,0.000000,0.109734,0.000000 +0.993845,0.000000,0.110775,0.000000 +0.993729,0.000000,0.111816,0.000000 +0.993611,0.000000,0.112856,0.000000 +0.993493,0.000000,0.113897,0.000000 +0.993373,0.000000,0.114937,0.000000 +0.993252,0.000000,0.115977,0.000000 +0.993130,0.000000,0.117017,0.000000 +0.993007,0.000000,0.118057,0.000000 +0.992883,0.000000,0.119097,0.000000 +0.992757,0.000000,0.120137,0.000000 +0.992631,0.000000,0.121176,0.000000 +0.992504,0.000000,0.122216,0.000000 +0.992375,0.000000,0.123255,0.000000 +0.992245,0.000000,0.124294,0.000000 +0.992115,0.000000,0.125333,0.000000 +0.991983,0.000000,0.126372,0.000000 +0.991850,0.000000,0.127411,0.000000 +0.991716,0.000000,0.128449,0.000000 +0.991581,0.000000,0.129488,0.000000 +0.991445,0.000000,0.130526,0.000000 +0.991308,0.000000,0.131564,0.000000 +0.991169,0.000000,0.132602,0.000000 +0.991030,0.000000,0.133640,0.000000 +0.990889,0.000000,0.134678,0.000000 +0.990748,0.000000,0.135716,0.000000 +0.990605,0.000000,0.136753,0.000000 +0.990461,0.000000,0.137790,0.000000 +0.990317,0.000000,0.138827,0.000000 +0.990171,0.000000,0.139864,0.000000 +0.990024,0.000000,0.140901,0.000000 +0.989876,0.000000,0.141938,0.000000 +0.989726,0.000000,0.142974,0.000000 +0.989576,0.000000,0.144011,0.000000 +0.989425,0.000000,0.145047,0.000000 +0.989272,0.000000,0.146083,0.000000 +0.989119,0.000000,0.147119,0.000000 +0.988964,0.000000,0.148155,0.000000 +0.988809,0.000000,0.149190,0.000000 +0.988652,0.000000,0.150226,0.000000 +0.988494,0.000000,0.151261,0.000000 +0.988335,0.000000,0.152296,0.000000 +0.988175,0.000000,0.153331,0.000000 +0.988014,0.000000,0.154366,0.000000 +0.987852,0.000000,0.155400,0.000000 +0.987688,0.000000,0.156434,0.000000 +0.987524,0.000000,0.157469,0.000000 +0.987359,0.000000,0.158503,0.000000 +0.987192,0.000000,0.159537,0.000000 +0.987024,0.000000,0.160570,0.000000 +0.986856,0.000000,0.161604,0.000000 +0.986686,0.000000,0.162637,0.000000 +0.986515,0.000000,0.163670,0.000000 +0.986343,0.000000,0.164703,0.000000 +0.986170,0.000000,0.165736,0.000000 +0.985996,0.000000,0.166769,0.000000 +0.985821,0.000000,0.167801,0.000000 +0.985645,0.000000,0.168833,0.000000 +0.985467,0.000000,0.169866,0.000000 +0.985289,0.000000,0.170897,0.000000 +0.985109,0.000000,0.171929,0.000000 +0.984929,0.000000,0.172961,0.000000 +0.984747,0.000000,0.173992,0.000000 +0.984564,0.000000,0.175023,0.000000 +0.984381,0.000000,0.176054,0.000000 +0.984196,0.000000,0.177085,0.000000 +0.984010,0.000000,0.178115,0.000000 +0.983823,0.000000,0.179146,0.000000 +0.983634,0.000000,0.180176,0.000000 +0.983445,0.000000,0.181206,0.000000 +0.983255,0.000000,0.182236,0.000000 +0.983064,0.000000,0.183265,0.000000 +0.982871,0.000000,0.184294,0.000000 +0.982678,0.000000,0.185324,0.000000 +0.982483,0.000000,0.186353,0.000000 +0.982287,0.000000,0.187381,0.000000 +0.982090,0.000000,0.188410,0.000000 +0.981893,0.000000,0.189438,0.000000 +0.981694,0.000000,0.190466,0.000000 +0.981494,0.000000,0.191494,0.000000 +0.981293,0.000000,0.192522,0.000000 +0.981091,0.000000,0.193549,0.000000 +0.980887,0.000000,0.194577,0.000000 +0.980683,0.000000,0.195604,0.000000 +0.980478,0.000000,0.196631,0.000000 +0.980271,0.000000,0.197657,0.000000 +0.980064,0.000000,0.198684,0.000000 +0.979855,0.000000,0.199710,0.000000 +0.979645,0.000000,0.200736,0.000000 +0.979435,0.000000,0.201762,0.000000 +0.979223,0.000000,0.202787,0.000000 +0.979010,0.000000,0.203813,0.000000 +0.978796,0.000000,0.204838,0.000000 +0.978581,0.000000,0.205863,0.000000 +0.978365,0.000000,0.206887,0.000000 +0.978148,0.000000,0.207912,0.000000 +0.977929,0.000000,0.208936,0.000000 +0.977710,0.000000,0.209960,0.000000 +0.977490,0.000000,0.210984,0.000000 +0.977268,0.000000,0.212007,0.000000 +0.977046,0.000000,0.213030,0.000000 +0.976822,0.000000,0.214053,0.000000 +0.976597,0.000000,0.215076,0.000000 +0.976371,0.000000,0.216099,0.000000 +0.976145,0.000000,0.217121,0.000000 +0.975917,0.000000,0.218143,0.000000 +0.975688,0.000000,0.219165,0.000000 +0.975458,0.000000,0.220187,0.000000 +0.975227,0.000000,0.221208,0.000000 +0.974994,0.000000,0.222229,0.000000 +0.974761,0.000000,0.223250,0.000000 +0.974527,0.000000,0.224271,0.000000 +0.974291,0.000000,0.225291,0.000000 +0.974055,0.000000,0.226311,0.000000 +0.973817,0.000000,0.227331,0.000000 +0.973579,0.000000,0.228351,0.000000 +0.973339,0.000000,0.229370,0.000000 +0.973099,0.000000,0.230389,0.000000 +0.972857,0.000000,0.231408,0.000000 +0.972614,0.000000,0.232427,0.000000 +0.972370,0.000000,0.233445,0.000000 +0.972125,0.000000,0.234463,0.000000 +0.971879,0.000000,0.235481,0.000000 +0.971632,0.000000,0.236499,0.000000 +0.971384,0.000000,0.237516,0.000000 +0.971134,0.000000,0.238533,0.000000 +0.970884,0.000000,0.239550,0.000000 +0.970633,0.000000,0.240567,0.000000 +0.970380,0.000000,0.241583,0.000000 +0.970127,0.000000,0.242599,0.000000 +0.969872,0.000000,0.243615,0.000000 +0.969616,0.000000,0.244631,0.000000 +0.969360,0.000000,0.245646,0.000000 +0.969102,0.000000,0.246661,0.000000 +0.968843,0.000000,0.247675,0.000000 +0.968583,0.000000,0.248690,0.000000 +0.968322,0.000000,0.249704,0.000000 +0.968060,0.000000,0.250718,0.000000 +0.967797,0.000000,0.251732,0.000000 +0.967533,0.000000,0.252745,0.000000 +0.967268,0.000000,0.253758,0.000000 +0.967001,0.000000,0.254771,0.000000 +0.966734,0.000000,0.255783,0.000000 +0.966466,0.000000,0.256795,0.000000 +0.966196,0.000000,0.257807,0.000000 +0.965926,0.000000,0.258819,0.000000 +0.965654,0.000000,0.259830,0.000000 +0.965382,0.000000,0.260842,0.000000 +0.965108,0.000000,0.261852,0.000000 +0.964833,0.000000,0.262863,0.000000 +0.964557,0.000000,0.263873,0.000000 +0.964281,0.000000,0.264883,0.000000 +0.964003,0.000000,0.265893,0.000000 +0.963724,0.000000,0.266902,0.000000 +0.963444,0.000000,0.267911,0.000000 +0.963163,0.000000,0.268920,0.000000 +0.962880,0.000000,0.269928,0.000000 +0.962597,0.000000,0.270936,0.000000 +0.962313,0.000000,0.271944,0.000000 +0.962028,0.000000,0.272952,0.000000 +0.961741,0.000000,0.273959,0.000000 +0.961454,0.000000,0.274966,0.000000 +0.961165,0.000000,0.275973,0.000000 +0.960876,0.000000,0.276979,0.000000 +0.960585,0.000000,0.277985,0.000000 +0.960294,0.000000,0.278991,0.000000 +0.960001,0.000000,0.279997,0.000000 +0.959707,0.000000,0.281002,0.000000 +0.959412,0.000000,0.282007,0.000000 +0.959117,0.000000,0.283011,0.000000 +0.958820,0.000000,0.284015,0.000000 +0.958522,0.000000,0.285019,0.000000 +0.958223,0.000000,0.286023,0.000000 +0.957923,0.000000,0.287026,0.000000 +0.957622,0.000000,0.288029,0.000000 +0.957319,0.000000,0.289032,0.000000 +0.957016,0.000000,0.290034,0.000000 +0.956712,0.000000,0.291036,0.000000 +0.956407,0.000000,0.292038,0.000000 +0.956100,0.000000,0.293039,0.000000 +0.955793,0.000000,0.294040,0.000000 +0.955485,0.000000,0.295041,0.000000 +0.955175,0.000000,0.296041,0.000000 +0.954865,0.000000,0.297042,0.000000 +0.954553,0.000000,0.298041,0.000000 +0.954240,0.000000,0.299041,0.000000 +0.953927,0.000000,0.300040,0.000000 +0.953612,0.000000,0.301039,0.000000 +0.953296,0.000000,0.302037,0.000000 +0.952979,0.000000,0.303035,0.000000 +0.952661,0.000000,0.304033,0.000000 +0.952343,0.000000,0.305031,0.000000 +0.952023,0.000000,0.306028,0.000000 +0.951702,0.000000,0.307024,0.000000 +0.951380,0.000000,0.308021,0.000000 +0.951057,0.000000,0.309017,0.000000 +0.950732,0.000000,0.310013,0.000000 +0.950407,0.000000,0.311008,0.000000 +0.950081,0.000000,0.312003,0.000000 +0.949754,0.000000,0.312998,0.000000 +0.949425,0.000000,0.313992,0.000000 +0.949096,0.000000,0.314987,0.000000 +0.948766,0.000000,0.315980,0.000000 +0.948434,0.000000,0.316974,0.000000 +0.948102,0.000000,0.317967,0.000000 +0.947768,0.000000,0.318959,0.000000 +0.947434,0.000000,0.319952,0.000000 +0.947098,0.000000,0.320944,0.000000 +0.946762,0.000000,0.321935,0.000000 +0.946424,0.000000,0.322927,0.000000 +0.946085,0.000000,0.323917,0.000000 +0.945746,0.000000,0.324908,0.000000 +0.945405,0.000000,0.325898,0.000000 +0.945063,0.000000,0.326888,0.000000 +0.944720,0.000000,0.327878,0.000000 +0.944376,0.000000,0.328867,0.000000 +0.944031,0.000000,0.329855,0.000000 +0.943686,0.000000,0.330844,0.000000 +0.943339,0.000000,0.331832,0.000000 +0.942991,0.000000,0.332820,0.000000 +0.942641,0.000000,0.333807,0.000000 +0.942291,0.000000,0.334794,0.000000 +0.941940,0.000000,0.335780,0.000000 +0.941588,0.000000,0.336767,0.000000 +0.941235,0.000000,0.337752,0.000000 +0.940881,0.000000,0.338738,0.000000 +0.940526,0.000000,0.339723,0.000000 +0.940169,0.000000,0.340708,0.000000 +0.939812,0.000000,0.341692,0.000000 +0.939454,0.000000,0.342676,0.000000 +0.939094,0.000000,0.343660,0.000000 +0.938734,0.000000,0.344643,0.000000 +0.938372,0.000000,0.345626,0.000000 +0.938010,0.000000,0.346608,0.000000 +0.937646,0.000000,0.347590,0.000000 +0.937282,0.000000,0.348572,0.000000 +0.936916,0.000000,0.349553,0.000000 +0.936550,0.000000,0.350534,0.000000 +0.936182,0.000000,0.351515,0.000000 +0.935814,0.000000,0.352495,0.000000 +0.935444,0.000000,0.353475,0.000000 +0.935073,0.000000,0.354454,0.000000 +0.934702,0.000000,0.355433,0.000000 +0.934329,0.000000,0.356412,0.000000 +0.933955,0.000000,0.357390,0.000000 +0.933580,0.000000,0.358368,0.000000 +0.933205,0.000000,0.359345,0.000000 +0.932828,0.000000,0.360322,0.000000 +0.932450,0.000000,0.361299,0.000000 +0.932071,0.000000,0.362275,0.000000 +0.931691,0.000000,0.363251,0.000000 +0.931310,0.000000,0.364227,0.000000 +0.930928,0.000000,0.365202,0.000000 +0.930545,0.000000,0.366176,0.000000 +0.930161,0.000000,0.367151,0.000000 +0.929776,0.000000,0.368125,0.000000 +0.929390,0.000000,0.369098,0.000000 +0.929003,0.000000,0.370071,0.000000 +0.928615,0.000000,0.371044,0.000000 +0.928226,0.000000,0.372016,0.000000 +0.927836,0.000000,0.372988,0.000000 +0.927445,0.000000,0.373959,0.000000 +0.927053,0.000000,0.374930,0.000000 +0.926660,0.000000,0.375901,0.000000 +0.926266,0.000000,0.376871,0.000000 +0.925871,0.000000,0.377841,0.000000 +0.925474,0.000000,0.378810,0.000000 +0.925077,0.000000,0.379779,0.000000 +0.924679,0.000000,0.380748,0.000000 +0.924280,0.000000,0.381716,0.000000 +0.923880,0.000000,0.382683,0.000000 +0.923478,0.000000,0.383651,0.000000 +0.923076,0.000000,0.384618,0.000000 +0.922673,0.000000,0.385584,0.000000 +0.922268,0.000000,0.386550,0.000000 +0.921863,0.000000,0.387516,0.000000 +0.921457,0.000000,0.388481,0.000000 +0.921050,0.000000,0.389445,0.000000 +0.920641,0.000000,0.390410,0.000000 +0.920232,0.000000,0.391374,0.000000 +0.919821,0.000000,0.392337,0.000000 +0.919410,0.000000,0.393300,0.000000 +0.918998,0.000000,0.394263,0.000000 +0.918584,0.000000,0.395225,0.000000 +0.918170,0.000000,0.396187,0.000000 +0.917755,0.000000,0.397148,0.000000 +0.917338,0.000000,0.398109,0.000000 +0.916921,0.000000,0.399069,0.000000 +0.916502,0.000000,0.400029,0.000000 +0.916083,0.000000,0.400989,0.000000 +0.915663,0.000000,0.401948,0.000000 +0.915241,0.000000,0.402906,0.000000 +0.914819,0.000000,0.403865,0.000000 +0.914395,0.000000,0.404822,0.000000 +0.913971,0.000000,0.405780,0.000000 +0.913545,0.000000,0.406737,0.000000 +0.913119,0.000000,0.407693,0.000000 +0.912692,0.000000,0.408649,0.000000 +0.912263,0.000000,0.409605,0.000000 +0.911834,0.000000,0.410560,0.000000 +0.911403,0.000000,0.411514,0.000000 +0.910972,0.000000,0.412469,0.000000 +0.910539,0.000000,0.413422,0.000000 +0.910106,0.000000,0.414376,0.000000 +0.909672,0.000000,0.415328,0.000000 +0.909236,0.000000,0.416281,0.000000 +0.908800,0.000000,0.417233,0.000000 +0.908362,0.000000,0.418184,0.000000 +0.907924,0.000000,0.419135,0.000000 +0.907484,0.000000,0.420086,0.000000 +0.907044,0.000000,0.421036,0.000000 +0.906603,0.000000,0.421985,0.000000 +0.906160,0.000000,0.422935,0.000000 +0.905717,0.000000,0.423883,0.000000 +0.905272,0.000000,0.424832,0.000000 +0.904827,0.000000,0.425779,0.000000 +0.904381,0.000000,0.426727,0.000000 +0.903933,0.000000,0.427673,0.000000 +0.903485,0.000000,0.428620,0.000000 +0.903036,0.000000,0.429566,0.000000 +0.902585,0.000000,0.430511,0.000000 +0.902134,0.000000,0.431456,0.000000 +0.901682,0.000000,0.432401,0.000000 +0.901228,0.000000,0.433345,0.000000 +0.900774,0.000000,0.434288,0.000000 +0.900319,0.000000,0.435231,0.000000 +0.899863,0.000000,0.436174,0.000000 +0.899405,0.000000,0.437116,0.000000 +0.898947,0.000000,0.438057,0.000000 +0.898488,0.000000,0.438999,0.000000 +0.898028,0.000000,0.439939,0.000000 +0.897566,0.000000,0.440879,0.000000 +0.897104,0.000000,0.441819,0.000000 +0.896641,0.000000,0.442758,0.000000 +0.896177,0.000000,0.443697,0.000000 +0.895712,0.000000,0.444635,0.000000 +0.895246,0.000000,0.445573,0.000000 +0.894779,0.000000,0.446510,0.000000 +0.894310,0.000000,0.447447,0.000000 +0.893841,0.000000,0.448383,0.000000 +0.893371,0.000000,0.449319,0.000000 +0.892900,0.000000,0.450254,0.000000 +0.892428,0.000000,0.451189,0.000000 +0.891955,0.000000,0.452123,0.000000 +0.891481,0.000000,0.453057,0.000000 +0.891007,0.000000,0.453990,0.000000 +0.890531,0.000000,0.454923,0.000000 +0.890054,0.000000,0.455856,0.000000 +0.889576,0.000000,0.456787,0.000000 +0.889097,0.000000,0.457719,0.000000 +0.888617,0.000000,0.458650,0.000000 +0.888136,0.000000,0.459580,0.000000 +0.887655,0.000000,0.460510,0.000000 +0.887172,0.000000,0.461439,0.000000 +0.886688,0.000000,0.462368,0.000000 +0.886204,0.000000,0.463296,0.000000 +0.885718,0.000000,0.464224,0.000000 +0.885231,0.000000,0.465151,0.000000 +0.884744,0.000000,0.466078,0.000000 +0.884255,0.000000,0.467004,0.000000 +0.883766,0.000000,0.467930,0.000000 +0.883275,0.000000,0.468855,0.000000 +0.882784,0.000000,0.469780,0.000000 +0.882291,0.000000,0.470704,0.000000 +0.881798,0.000000,0.471628,0.000000 +0.881303,0.000000,0.472551,0.000000 +0.880808,0.000000,0.473473,0.000000 +0.880312,0.000000,0.474396,0.000000 +0.879815,0.000000,0.475317,0.000000 +0.879316,0.000000,0.476238,0.000000 +0.878817,0.000000,0.477159,0.000000 +0.878317,0.000000,0.478079,0.000000 +0.877816,0.000000,0.478998,0.000000 +0.877314,0.000000,0.479917,0.000000 +0.876811,0.000000,0.480836,0.000000 +0.876307,0.000000,0.481754,0.000000 +0.875802,0.000000,0.482671,0.000000 +0.875296,0.000000,0.483588,0.000000 +0.874789,0.000000,0.484504,0.000000 +0.874281,0.000000,0.485420,0.000000 +0.873772,0.000000,0.486335,0.000000 +0.873262,0.000000,0.487250,0.000000 +0.872752,0.000000,0.488164,0.000000 +0.872240,0.000000,0.489078,0.000000 +0.871727,0.000000,0.489991,0.000000 +0.871214,0.000000,0.490904,0.000000 +0.870699,0.000000,0.491816,0.000000 +0.870184,0.000000,0.492727,0.000000 +0.869667,0.000000,0.493638,0.000000 +0.869150,0.000000,0.494549,0.000000 +0.868632,0.000000,0.495459,0.000000 +0.868112,0.000000,0.496368,0.000000 +0.867592,0.000000,0.497277,0.000000 +0.867071,0.000000,0.498185,0.000000 +0.866549,0.000000,0.499093,0.000000 +0.866025,0.000000,0.500000,0.000000 +0.865501,0.000000,0.500907,0.000000 +0.864976,0.000000,0.501813,0.000000 +0.864450,0.000000,0.502718,0.000000 +0.863923,0.000000,0.503623,0.000000 +0.863396,0.000000,0.504528,0.000000 +0.862867,0.000000,0.505431,0.000000 +0.862337,0.000000,0.506335,0.000000 +0.861806,0.000000,0.507238,0.000000 +0.861275,0.000000,0.508140,0.000000 +0.860742,0.000000,0.509041,0.000000 +0.860208,0.000000,0.509943,0.000000 +0.859674,0.000000,0.510843,0.000000 +0.859139,0.000000,0.511743,0.000000 +0.858602,0.000000,0.512642,0.000000 +0.858065,0.000000,0.513541,0.000000 +0.857527,0.000000,0.514440,0.000000 +0.856987,0.000000,0.515337,0.000000 +0.856447,0.000000,0.516234,0.000000 +0.855906,0.000000,0.517131,0.000000 +0.855364,0.000000,0.518027,0.000000 +0.854821,0.000000,0.518922,0.000000 +0.854277,0.000000,0.519817,0.000000 +0.853733,0.000000,0.520712,0.000000 +0.853187,0.000000,0.521605,0.000000 +0.852640,0.000000,0.522499,0.000000 +0.852093,0.000000,0.523391,0.000000 +0.851544,0.000000,0.524283,0.000000 +0.850994,0.000000,0.525175,0.000000 +0.850444,0.000000,0.526066,0.000000 +0.849893,0.000000,0.526956,0.000000 +0.849340,0.000000,0.527846,0.000000 +0.848787,0.000000,0.528735,0.000000 +0.848233,0.000000,0.529623,0.000000 +0.847678,0.000000,0.530511,0.000000 +0.847122,0.000000,0.531399,0.000000 +0.846565,0.000000,0.532285,0.000000 +0.846007,0.000000,0.533172,0.000000 +0.845448,0.000000,0.534057,0.000000 +0.844889,0.000000,0.534942,0.000000 +0.844328,0.000000,0.535827,0.000000 +0.843766,0.000000,0.536711,0.000000 +0.843204,0.000000,0.537594,0.000000 +0.842640,0.000000,0.538477,0.000000 +0.842076,0.000000,0.539359,0.000000 +0.841511,0.000000,0.540240,0.000000 +0.840945,0.000000,0.541121,0.000000 +0.840377,0.000000,0.542002,0.000000 +0.839809,0.000000,0.542881,0.000000 +0.839240,0.000000,0.543760,0.000000 +0.838671,0.000000,0.544639,0.000000 +0.838100,0.000000,0.545517,0.000000 +0.837528,0.000000,0.546394,0.000000 +0.836955,0.000000,0.547271,0.000000 +0.836382,0.000000,0.548147,0.000000 +0.835807,0.000000,0.549023,0.000000 +0.835232,0.000000,0.549898,0.000000 +0.834656,0.000000,0.550772,0.000000 +0.834078,0.000000,0.551646,0.000000 +0.833500,0.000000,0.552519,0.000000 +0.832921,0.000000,0.553392,0.000000 +0.832341,0.000000,0.554263,0.000000 +0.831760,0.000000,0.555135,0.000000 +0.831179,0.000000,0.556006,0.000000 +0.830596,0.000000,0.556876,0.000000 +0.830012,0.000000,0.557745,0.000000 +0.829428,0.000000,0.558614,0.000000 +0.828842,0.000000,0.559482,0.000000 +0.828256,0.000000,0.560350,0.000000 +0.827669,0.000000,0.561217,0.000000 +0.827081,0.000000,0.562083,0.000000 +0.826492,0.000000,0.562949,0.000000 +0.825902,0.000000,0.563814,0.000000 +0.825311,0.000000,0.564679,0.000000 +0.824719,0.000000,0.565543,0.000000 +0.824126,0.000000,0.566406,0.000000 +0.823533,0.000000,0.567269,0.000000 +0.822938,0.000000,0.568131,0.000000 +0.822343,0.000000,0.568993,0.000000 +0.821746,0.000000,0.569853,0.000000 +0.821149,0.000000,0.570714,0.000000 +0.820551,0.000000,0.571573,0.000000 +0.819952,0.000000,0.572432,0.000000 +0.819352,0.000000,0.573290,0.000000 +0.818751,0.000000,0.574148,0.000000 +0.818150,0.000000,0.575005,0.000000 +0.817547,0.000000,0.575862,0.000000 +0.816944,0.000000,0.576718,0.000000 +0.816339,0.000000,0.577573,0.000000 +0.815734,0.000000,0.578427,0.000000 +0.815128,0.000000,0.579281,0.000000 +0.814521,0.000000,0.580134,0.000000 +0.813913,0.000000,0.580987,0.000000 +0.813304,0.000000,0.581839,0.000000 +0.812694,0.000000,0.582690,0.000000 +0.812084,0.000000,0.583541,0.000000 +0.811472,0.000000,0.584391,0.000000 +0.810860,0.000000,0.585241,0.000000 +0.810246,0.000000,0.586090,0.000000 +0.809632,0.000000,0.586938,0.000000 +0.809017,0.000000,0.587785,0.000000 +0.808401,0.000000,0.588632,0.000000 +0.807784,0.000000,0.589478,0.000000 +0.807166,0.000000,0.590324,0.000000 +0.806548,0.000000,0.591169,0.000000 +0.805928,0.000000,0.592013,0.000000 +0.805308,0.000000,0.592857,0.000000 +0.804687,0.000000,0.593700,0.000000 +0.804064,0.000000,0.594542,0.000000 +0.803441,0.000000,0.595384,0.000000 +0.802817,0.000000,0.596225,0.000000 +0.802193,0.000000,0.597065,0.000000 +0.801567,0.000000,0.597905,0.000000 +0.800940,0.000000,0.598744,0.000000 +0.800313,0.000000,0.599582,0.000000 +0.799685,0.000000,0.600420,0.000000 +0.799055,0.000000,0.601257,0.000000 +0.798425,0.000000,0.602094,0.000000 +0.797794,0.000000,0.602930,0.000000 +0.797163,0.000000,0.603765,0.000000 +0.796530,0.000000,0.604599,0.000000 +0.795896,0.000000,0.605433,0.000000 +0.795262,0.000000,0.606266,0.000000 +0.794627,0.000000,0.607098,0.000000 +0.793990,0.000000,0.607930,0.000000 +0.793353,0.000000,0.608761,0.000000 +0.792715,0.000000,0.609592,0.000000 +0.792077,0.000000,0.610422,0.000000 +0.791437,0.000000,0.611251,0.000000 +0.790796,0.000000,0.612079,0.000000 +0.790155,0.000000,0.612907,0.000000 +0.789513,0.000000,0.613734,0.000000 +0.788870,0.000000,0.614561,0.000000 +0.788226,0.000000,0.615386,0.000000 +0.787581,0.000000,0.616211,0.000000 +0.786935,0.000000,0.617036,0.000000 +0.786288,0.000000,0.617860,0.000000 +0.785641,0.000000,0.618683,0.000000 +0.784993,0.000000,0.619505,0.000000 +0.784343,0.000000,0.620327,0.000000 +0.783693,0.000000,0.621148,0.000000 +0.783043,0.000000,0.621968,0.000000 +0.782391,0.000000,0.622788,0.000000 +0.781738,0.000000,0.623607,0.000000 +0.781085,0.000000,0.624425,0.000000 +0.780430,0.000000,0.625243,0.000000 +0.779775,0.000000,0.626060,0.000000 +0.779119,0.000000,0.626876,0.000000 +0.778462,0.000000,0.627691,0.000000 +0.777805,0.000000,0.628506,0.000000 +0.777146,0.000000,0.629320,0.000000 +0.776487,0.000000,0.630134,0.000000 +0.775826,0.000000,0.630947,0.000000 +0.775165,0.000000,0.631759,0.000000 +0.774503,0.000000,0.632570,0.000000 +0.773840,0.000000,0.633381,0.000000 +0.773177,0.000000,0.634191,0.000000 +0.772512,0.000000,0.635000,0.000000 +0.771847,0.000000,0.635809,0.000000 +0.771180,0.000000,0.636617,0.000000 +0.770513,0.000000,0.637424,0.000000 +0.769845,0.000000,0.638231,0.000000 +0.769177,0.000000,0.639036,0.000000 +0.768507,0.000000,0.639841,0.000000 +0.767836,0.000000,0.640646,0.000000 +0.767165,0.000000,0.641450,0.000000 +0.766493,0.000000,0.642253,0.000000 +0.765820,0.000000,0.643055,0.000000 +0.765146,0.000000,0.643857,0.000000 +0.764472,0.000000,0.644657,0.000000 +0.763796,0.000000,0.645458,0.000000 +0.763120,0.000000,0.646257,0.000000 +0.762443,0.000000,0.647056,0.000000 +0.761764,0.000000,0.647854,0.000000 +0.761086,0.000000,0.648651,0.000000 +0.760406,0.000000,0.649448,0.000000 +0.759725,0.000000,0.650244,0.000000 +0.759044,0.000000,0.651039,0.000000 +0.758362,0.000000,0.651834,0.000000 +0.757679,0.000000,0.652628,0.000000 +0.756995,0.000000,0.653421,0.000000 +0.756310,0.000000,0.654213,0.000000 +0.755625,0.000000,0.655005,0.000000 +0.754939,0.000000,0.655796,0.000000 +0.754251,0.000000,0.656586,0.000000 +0.753563,0.000000,0.657375,0.000000 +0.752875,0.000000,0.658164,0.000000 +0.752185,0.000000,0.658952,0.000000 +0.751494,0.000000,0.659739,0.000000 +0.750803,0.000000,0.660526,0.000000 +0.750111,0.000000,0.661312,0.000000 +0.749418,0.000000,0.662097,0.000000 +0.748724,0.000000,0.662881,0.000000 +0.748030,0.000000,0.663665,0.000000 +0.747334,0.000000,0.664448,0.000000 +0.746638,0.000000,0.665230,0.000000 +0.745941,0.000000,0.666012,0.000000 +0.745243,0.000000,0.666793,0.000000 +0.744545,0.000000,0.667573,0.000000 +0.743845,0.000000,0.668352,0.000000 +0.743145,0.000000,0.669131,0.000000 +0.742444,0.000000,0.669908,0.000000 +0.741742,0.000000,0.670686,0.000000 +0.741039,0.000000,0.671462,0.000000 +0.740335,0.000000,0.672238,0.000000 +0.739631,0.000000,0.673013,0.000000 +0.738926,0.000000,0.673787,0.000000 +0.738220,0.000000,0.674560,0.000000 +0.737513,0.000000,0.675333,0.000000 +0.736806,0.000000,0.676105,0.000000 +0.736097,0.000000,0.676876,0.000000 +0.735388,0.000000,0.677646,0.000000 +0.734678,0.000000,0.678416,0.000000 +0.733967,0.000000,0.679185,0.000000 +0.733255,0.000000,0.679953,0.000000 +0.732543,0.000000,0.680721,0.000000 +0.731830,0.000000,0.681488,0.000000 +0.731116,0.000000,0.682254,0.000000 +0.730401,0.000000,0.683019,0.000000 +0.729685,0.000000,0.683783,0.000000 +0.728969,0.000000,0.684547,0.000000 +0.728251,0.000000,0.685310,0.000000 +0.727533,0.000000,0.686072,0.000000 +0.726814,0.000000,0.686834,0.000000 +0.726095,0.000000,0.687595,0.000000 +0.725374,0.000000,0.688355,0.000000 +0.724653,0.000000,0.689114,0.000000 +0.723931,0.000000,0.689872,0.000000 +0.723208,0.000000,0.690630,0.000000 +0.722485,0.000000,0.691387,0.000000 +0.721760,0.000000,0.692143,0.000000 +0.721035,0.000000,0.692899,0.000000 +0.720309,0.000000,0.693653,0.000000 +0.719582,0.000000,0.694407,0.000000 +0.718855,0.000000,0.695160,0.000000 +0.718126,0.000000,0.695913,0.000000 +0.717397,0.000000,0.696664,0.000000 +0.716667,0.000000,0.697415,0.000000 +0.715936,0.000000,0.698165,0.000000 +0.715205,0.000000,0.698915,0.000000 +0.714473,0.000000,0.699663,0.000000 +0.713740,0.000000,0.700411,0.000000 +0.713006,0.000000,0.701158,0.000000 +0.712271,0.000000,0.701904,0.000000 +0.711536,0.000000,0.702650,0.000000 +0.710799,0.000000,0.703395,0.000000 +0.710062,0.000000,0.704139,0.000000 +0.709325,0.000000,0.704882,0.000000 +0.708586,0.000000,0.705624,0.000000 +0.707847,0.000000,0.706366,0.000000 +0.707107,0.000000,0.707107,0.000000 +0.706366,0.000000,0.707847,0.000000 +0.705624,0.000000,0.708586,0.000000 +0.704882,0.000000,0.709325,0.000000 +0.704139,0.000000,0.710062,0.000000 +0.703395,0.000000,0.710799,0.000000 +0.702650,0.000000,0.711536,0.000000 +0.701904,0.000000,0.712271,0.000000 +0.701158,0.000000,0.713006,0.000000 +0.700411,0.000000,0.713740,0.000000 +0.699663,0.000000,0.714473,0.000000 +0.698915,0.000000,0.715205,0.000000 +0.698165,0.000000,0.715936,0.000000 +0.697415,0.000000,0.716667,0.000000 +0.696664,0.000000,0.717397,0.000000 +0.695913,0.000000,0.718126,0.000000 +0.695160,0.000000,0.718855,0.000000 +0.694407,0.000000,0.719582,0.000000 +0.693653,0.000000,0.720309,0.000000 +0.692899,0.000000,0.721035,0.000000 +0.692143,0.000000,0.721760,0.000000 +0.691387,0.000000,0.722485,0.000000 +0.690630,0.000000,0.723208,0.000000 +0.689872,0.000000,0.723931,0.000000 +0.689114,0.000000,0.724653,0.000000 +0.688355,0.000000,0.725374,0.000000 +0.687595,0.000000,0.726095,0.000000 +0.686834,0.000000,0.726814,0.000000 +0.686072,0.000000,0.727533,0.000000 +0.685310,0.000000,0.728251,0.000000 +0.684547,0.000000,0.728969,0.000000 +0.683783,0.000000,0.729685,0.000000 +0.683019,0.000000,0.730401,0.000000 +0.682254,0.000000,0.731116,0.000000 +0.681488,0.000000,0.731830,0.000000 +0.680721,0.000000,0.732543,0.000000 +0.679953,0.000000,0.733255,0.000000 +0.679185,0.000000,0.733967,0.000000 +0.678416,0.000000,0.734678,0.000000 +0.677646,0.000000,0.735388,0.000000 +0.676876,0.000000,0.736097,0.000000 +0.676105,0.000000,0.736806,0.000000 +0.675333,0.000000,0.737513,0.000000 +0.674560,0.000000,0.738220,0.000000 +0.673787,0.000000,0.738926,0.000000 +0.673013,0.000000,0.739631,0.000000 +0.672238,0.000000,0.740335,0.000000 +0.671462,0.000000,0.741039,0.000000 +0.670686,0.000000,0.741742,0.000000 +0.669908,0.000000,0.742444,0.000000 +0.669131,0.000000,0.743145,0.000000 +0.668352,0.000000,0.743845,0.000000 +0.667573,0.000000,0.744545,0.000000 +0.666793,0.000000,0.745243,0.000000 +0.666012,0.000000,0.745941,0.000000 +0.665230,0.000000,0.746638,0.000000 +0.664448,0.000000,0.747334,0.000000 +0.663665,0.000000,0.748030,0.000000 +0.662881,0.000000,0.748724,0.000000 +0.662097,0.000000,0.749418,0.000000 +0.661312,0.000000,0.750111,0.000000 +0.660526,0.000000,0.750803,0.000000 +0.659739,0.000000,0.751494,0.000000 +0.658952,0.000000,0.752185,0.000000 +0.658164,0.000000,0.752875,0.000000 +0.657375,0.000000,0.753563,0.000000 +0.656586,0.000000,0.754251,0.000000 +0.655796,0.000000,0.754939,0.000000 +0.655005,0.000000,0.755625,0.000000 +0.654213,0.000000,0.756310,0.000000 +0.653421,0.000000,0.756995,0.000000 +0.652628,0.000000,0.757679,0.000000 +0.651834,0.000000,0.758362,0.000000 +0.651039,0.000000,0.759044,0.000000 +0.650244,0.000000,0.759725,0.000000 +0.649448,0.000000,0.760406,0.000000 +0.648651,0.000000,0.761086,0.000000 +0.647854,0.000000,0.761764,0.000000 +0.647056,0.000000,0.762443,0.000000 +0.646257,0.000000,0.763120,0.000000 +0.645458,0.000000,0.763796,0.000000 +0.644657,0.000000,0.764472,0.000000 +0.643857,0.000000,0.765146,0.000000 +0.643055,0.000000,0.765820,0.000000 +0.642253,0.000000,0.766493,0.000000 +0.641450,0.000000,0.767165,0.000000 +0.640646,0.000000,0.767836,0.000000 +0.639841,0.000000,0.768507,0.000000 +0.639036,0.000000,0.769177,0.000000 +0.638231,0.000000,0.769845,0.000000 +0.637424,0.000000,0.770513,0.000000 +0.636617,0.000000,0.771180,0.000000 +0.635809,0.000000,0.771847,0.000000 +0.635000,0.000000,0.772512,0.000000 +0.634191,0.000000,0.773177,0.000000 +0.633381,0.000000,0.773840,0.000000 +0.632570,0.000000,0.774503,0.000000 +0.631759,0.000000,0.775165,0.000000 +0.630947,0.000000,0.775826,0.000000 +0.630134,0.000000,0.776487,0.000000 +0.629320,0.000000,0.777146,0.000000 +0.628506,0.000000,0.777805,0.000000 +0.627691,0.000000,0.778462,0.000000 +0.626876,0.000000,0.779119,0.000000 +0.626060,0.000000,0.779775,0.000000 +0.625243,0.000000,0.780430,0.000000 +0.624425,0.000000,0.781085,0.000000 +0.623607,0.000000,0.781738,0.000000 +0.622788,0.000000,0.782391,0.000000 +0.621968,0.000000,0.783043,0.000000 +0.621148,0.000000,0.783693,0.000000 +0.620327,0.000000,0.784343,0.000000 +0.619505,0.000000,0.784993,0.000000 +0.618683,0.000000,0.785641,0.000000 +0.617860,0.000000,0.786288,0.000000 +0.617036,0.000000,0.786935,0.000000 +0.616211,0.000000,0.787581,0.000000 +0.615386,0.000000,0.788226,0.000000 +0.614561,0.000000,0.788870,0.000000 +0.613734,0.000000,0.789513,0.000000 +0.612907,0.000000,0.790155,0.000000 +0.612079,0.000000,0.790796,0.000000 +0.611251,0.000000,0.791437,0.000000 +0.610422,0.000000,0.792077,0.000000 +0.609592,0.000000,0.792715,0.000000 +0.608761,0.000000,0.793353,0.000000 +0.607930,0.000000,0.793990,0.000000 +0.607098,0.000000,0.794627,0.000000 +0.606266,0.000000,0.795262,0.000000 +0.605433,0.000000,0.795896,0.000000 +0.604599,0.000000,0.796530,0.000000 +0.603765,0.000000,0.797163,0.000000 +0.602930,0.000000,0.797794,0.000000 +0.602094,0.000000,0.798425,0.000000 +0.601257,0.000000,0.799055,0.000000 +0.600420,0.000000,0.799685,0.000000 +0.599582,0.000000,0.800313,0.000000 +0.598744,0.000000,0.800940,0.000000 +0.597905,0.000000,0.801567,0.000000 +0.597065,0.000000,0.802193,0.000000 +0.596225,0.000000,0.802817,0.000000 +0.595384,0.000000,0.803441,0.000000 +0.594542,0.000000,0.804064,0.000000 +0.593700,0.000000,0.804687,0.000000 +0.592857,0.000000,0.805308,0.000000 +0.592013,0.000000,0.805928,0.000000 +0.591169,0.000000,0.806548,0.000000 +0.590324,0.000000,0.807166,0.000000 +0.589478,0.000000,0.807784,0.000000 +0.588632,0.000000,0.808401,0.000000 +0.587785,0.000000,0.809017,0.000000 +0.586938,0.000000,0.809632,0.000000 +0.586090,0.000000,0.810246,0.000000 +0.585241,0.000000,0.810860,0.000000 +0.584391,0.000000,0.811472,0.000000 +0.583541,0.000000,0.812084,0.000000 +0.582690,0.000000,0.812694,0.000000 +0.581839,0.000000,0.813304,0.000000 +0.580987,0.000000,0.813913,0.000000 +0.580134,0.000000,0.814521,0.000000 +0.579281,0.000000,0.815128,0.000000 +0.578427,0.000000,0.815734,0.000000 +0.577573,0.000000,0.816339,0.000000 +0.576718,0.000000,0.816944,0.000000 +0.575862,0.000000,0.817547,0.000000 +0.575005,0.000000,0.818150,0.000000 +0.574148,0.000000,0.818751,0.000000 +0.573290,0.000000,0.819352,0.000000 +0.572432,0.000000,0.819952,0.000000 +0.571573,0.000000,0.820551,0.000000 +0.570714,0.000000,0.821149,0.000000 +0.569853,0.000000,0.821746,0.000000 +0.568993,0.000000,0.822343,0.000000 +0.568131,0.000000,0.822938,0.000000 +0.567269,0.000000,0.823533,0.000000 +0.566406,0.000000,0.824126,0.000000 +0.565543,0.000000,0.824719,0.000000 +0.564679,0.000000,0.825311,0.000000 +0.563814,0.000000,0.825902,0.000000 +0.562949,0.000000,0.826492,0.000000 +0.562083,0.000000,0.827081,0.000000 +0.561217,0.000000,0.827669,0.000000 +0.560350,0.000000,0.828256,0.000000 +0.559482,0.000000,0.828842,0.000000 +0.558614,0.000000,0.829428,0.000000 +0.557745,0.000000,0.830012,0.000000 +0.556876,0.000000,0.830596,0.000000 +0.556006,0.000000,0.831179,0.000000 +0.555135,0.000000,0.831760,0.000000 +0.554263,0.000000,0.832341,0.000000 +0.553392,0.000000,0.832921,0.000000 +0.552519,0.000000,0.833500,0.000000 +0.551646,0.000000,0.834078,0.000000 +0.550772,0.000000,0.834656,0.000000 +0.549898,0.000000,0.835232,0.000000 +0.549023,0.000000,0.835807,0.000000 +0.548147,0.000000,0.836382,0.000000 +0.547271,0.000000,0.836955,0.000000 +0.546394,0.000000,0.837528,0.000000 +0.545517,0.000000,0.838100,0.000000 +0.544639,0.000000,0.838671,0.000000 +0.543760,0.000000,0.839240,0.000000 +0.542881,0.000000,0.839809,0.000000 +0.542002,0.000000,0.840377,0.000000 +0.541121,0.000000,0.840945,0.000000 +0.540240,0.000000,0.841511,0.000000 +0.539359,0.000000,0.842076,0.000000 +0.538477,0.000000,0.842640,0.000000 +0.537594,0.000000,0.843204,0.000000 +0.536711,0.000000,0.843766,0.000000 +0.535827,0.000000,0.844328,0.000000 +0.534942,0.000000,0.844889,0.000000 +0.534057,0.000000,0.845448,0.000000 +0.533172,0.000000,0.846007,0.000000 +0.532285,0.000000,0.846565,0.000000 +0.531399,0.000000,0.847122,0.000000 +0.530511,0.000000,0.847678,0.000000 +0.529623,0.000000,0.848233,0.000000 +0.528735,0.000000,0.848787,0.000000 +0.527846,0.000000,0.849340,0.000000 +0.526956,0.000000,0.849893,0.000000 +0.526066,0.000000,0.850444,0.000000 +0.525175,0.000000,0.850994,0.000000 +0.524283,0.000000,0.851544,0.000000 +0.523391,0.000000,0.852093,0.000000 +0.522499,0.000000,0.852640,0.000000 +0.521605,0.000000,0.853187,0.000000 +0.520712,0.000000,0.853733,0.000000 +0.519817,0.000000,0.854277,0.000000 +0.518922,0.000000,0.854821,0.000000 +0.518027,0.000000,0.855364,0.000000 +0.517131,0.000000,0.855906,0.000000 +0.516234,0.000000,0.856447,0.000000 +0.515337,0.000000,0.856987,0.000000 +0.514440,0.000000,0.857527,0.000000 +0.513541,0.000000,0.858065,0.000000 +0.512642,0.000000,0.858602,0.000000 +0.511743,0.000000,0.859139,0.000000 +0.510843,0.000000,0.859674,0.000000 +0.509943,0.000000,0.860208,0.000000 +0.509041,0.000000,0.860742,0.000000 +0.508140,0.000000,0.861275,0.000000 +0.507238,0.000000,0.861806,0.000000 +0.506335,0.000000,0.862337,0.000000 +0.505431,0.000000,0.862867,0.000000 +0.504528,0.000000,0.863396,0.000000 +0.503623,0.000000,0.863923,0.000000 +0.502718,0.000000,0.864450,0.000000 +0.501813,0.000000,0.864976,0.000000 +0.500907,0.000000,0.865501,0.000000 +0.500000,0.000000,0.866025,0.000000 +0.499093,0.000000,0.866549,0.000000 +0.498185,0.000000,0.867071,0.000000 +0.497277,0.000000,0.867592,0.000000 +0.496368,0.000000,0.868112,0.000000 +0.495459,0.000000,0.868632,0.000000 +0.494549,0.000000,0.869150,0.000000 +0.493638,0.000000,0.869667,0.000000 +0.492727,0.000000,0.870184,0.000000 +0.491816,0.000000,0.870699,0.000000 +0.490904,0.000000,0.871214,0.000000 +0.489991,0.000000,0.871727,0.000000 +0.489078,0.000000,0.872240,0.000000 +0.488164,0.000000,0.872752,0.000000 +0.487250,0.000000,0.873262,0.000000 +0.486335,0.000000,0.873772,0.000000 +0.485420,0.000000,0.874281,0.000000 +0.484504,0.000000,0.874789,0.000000 +0.483588,0.000000,0.875296,0.000000 +0.482671,0.000000,0.875802,0.000000 +0.481754,0.000000,0.876307,0.000000 +0.480836,0.000000,0.876811,0.000000 +0.479917,0.000000,0.877314,0.000000 +0.478998,0.000000,0.877816,0.000000 +0.478079,0.000000,0.878317,0.000000 +0.477159,0.000000,0.878817,0.000000 +0.476238,0.000000,0.879316,0.000000 +0.475317,0.000000,0.879815,0.000000 +0.474396,0.000000,0.880312,0.000000 +0.473473,0.000000,0.880808,0.000000 +0.472551,0.000000,0.881303,0.000000 +0.471628,0.000000,0.881798,0.000000 +0.470704,0.000000,0.882291,0.000000 +0.469780,0.000000,0.882784,0.000000 +0.468855,0.000000,0.883275,0.000000 +0.467930,0.000000,0.883766,0.000000 +0.467004,0.000000,0.884255,0.000000 +0.466078,0.000000,0.884744,0.000000 +0.465151,0.000000,0.885231,0.000000 +0.464224,0.000000,0.885718,0.000000 +0.463296,0.000000,0.886204,0.000000 +0.462368,0.000000,0.886688,0.000000 +0.461439,0.000000,0.887172,0.000000 +0.460510,0.000000,0.887655,0.000000 +0.459580,0.000000,0.888136,0.000000 +0.458650,0.000000,0.888617,0.000000 +0.457719,0.000000,0.889097,0.000000 +0.456787,0.000000,0.889576,0.000000 +0.455856,0.000000,0.890054,0.000000 +0.454923,0.000000,0.890531,0.000000 +0.453990,0.000000,0.891007,0.000000 +0.453057,0.000000,0.891481,0.000000 +0.452123,0.000000,0.891955,0.000000 +0.451189,0.000000,0.892428,0.000000 +0.450254,0.000000,0.892900,0.000000 +0.449319,0.000000,0.893371,0.000000 +0.448383,0.000000,0.893841,0.000000 +0.447447,0.000000,0.894310,0.000000 +0.446510,0.000000,0.894779,0.000000 +0.445573,0.000000,0.895246,0.000000 +0.444635,0.000000,0.895712,0.000000 +0.443697,0.000000,0.896177,0.000000 +0.442758,0.000000,0.896641,0.000000 +0.441819,0.000000,0.897104,0.000000 +0.440879,0.000000,0.897566,0.000000 +0.439939,0.000000,0.898028,0.000000 +0.438999,0.000000,0.898488,0.000000 +0.438057,0.000000,0.898947,0.000000 +0.437116,0.000000,0.899405,0.000000 +0.436174,0.000000,0.899863,0.000000 +0.435231,0.000000,0.900319,0.000000 +0.434288,0.000000,0.900774,0.000000 +0.433345,0.000000,0.901228,0.000000 +0.432401,0.000000,0.901682,0.000000 +0.431456,0.000000,0.902134,0.000000 +0.430511,0.000000,0.902585,0.000000 +0.429566,0.000000,0.903036,0.000000 +0.428620,0.000000,0.903485,0.000000 +0.427673,0.000000,0.903933,0.000000 +0.426727,0.000000,0.904381,0.000000 +0.425779,0.000000,0.904827,0.000000 +0.424832,0.000000,0.905272,0.000000 +0.423883,0.000000,0.905717,0.000000 +0.422935,0.000000,0.906160,0.000000 +0.421985,0.000000,0.906603,0.000000 +0.421036,0.000000,0.907044,0.000000 +0.420086,0.000000,0.907484,0.000000 +0.419135,0.000000,0.907924,0.000000 +0.418184,0.000000,0.908362,0.000000 +0.417233,0.000000,0.908800,0.000000 +0.416281,0.000000,0.909236,0.000000 +0.415328,0.000000,0.909672,0.000000 +0.414376,0.000000,0.910106,0.000000 +0.413422,0.000000,0.910539,0.000000 +0.412469,0.000000,0.910972,0.000000 +0.411514,0.000000,0.911403,0.000000 +0.410560,0.000000,0.911834,0.000000 +0.409605,0.000000,0.912263,0.000000 +0.408649,0.000000,0.912692,0.000000 +0.407693,0.000000,0.913119,0.000000 +0.406737,0.000000,0.913545,0.000000 +0.405780,0.000000,0.913971,0.000000 +0.404822,0.000000,0.914395,0.000000 +0.403865,0.000000,0.914819,0.000000 +0.402906,0.000000,0.915241,0.000000 +0.401948,0.000000,0.915663,0.000000 +0.400989,0.000000,0.916083,0.000000 +0.400029,0.000000,0.916502,0.000000 +0.399069,0.000000,0.916921,0.000000 +0.398109,0.000000,0.917338,0.000000 +0.397148,0.000000,0.917755,0.000000 +0.396187,0.000000,0.918170,0.000000 +0.395225,0.000000,0.918584,0.000000 +0.394263,0.000000,0.918998,0.000000 +0.393300,0.000000,0.919410,0.000000 +0.392337,0.000000,0.919821,0.000000 +0.391374,0.000000,0.920232,0.000000 +0.390410,0.000000,0.920641,0.000000 +0.389445,0.000000,0.921050,0.000000 +0.388481,0.000000,0.921457,0.000000 +0.387516,0.000000,0.921863,0.000000 +0.386550,0.000000,0.922268,0.000000 +0.385584,0.000000,0.922673,0.000000 +0.384618,0.000000,0.923076,0.000000 +0.383651,0.000000,0.923478,0.000000 +0.382683,0.000000,0.923880,0.000000 +0.381716,0.000000,0.924280,0.000000 +0.380748,0.000000,0.924679,0.000000 +0.379779,0.000000,0.925077,0.000000 +0.378810,0.000000,0.925474,0.000000 +0.377841,0.000000,0.925871,0.000000 +0.376871,0.000000,0.926266,0.000000 +0.375901,0.000000,0.926660,0.000000 +0.374930,0.000000,0.927053,0.000000 +0.373959,0.000000,0.927445,0.000000 +0.372988,0.000000,0.927836,0.000000 +0.372016,0.000000,0.928226,0.000000 +0.371044,0.000000,0.928615,0.000000 +0.370071,0.000000,0.929003,0.000000 +0.369098,0.000000,0.929390,0.000000 +0.368125,0.000000,0.929776,0.000000 +0.367151,0.000000,0.930161,0.000000 +0.366176,0.000000,0.930545,0.000000 +0.365202,0.000000,0.930928,0.000000 +0.364227,0.000000,0.931310,0.000000 +0.363251,0.000000,0.931691,0.000000 +0.362275,0.000000,0.932071,0.000000 +0.361299,0.000000,0.932450,0.000000 +0.360322,0.000000,0.932828,0.000000 +0.359345,0.000000,0.933205,0.000000 +0.358368,0.000000,0.933580,0.000000 +0.357390,0.000000,0.933955,0.000000 +0.356412,0.000000,0.934329,0.000000 +0.355433,0.000000,0.934702,0.000000 +0.354454,0.000000,0.935073,0.000000 +0.353475,0.000000,0.935444,0.000000 +0.352495,0.000000,0.935814,0.000000 +0.351515,0.000000,0.936182,0.000000 +0.350534,0.000000,0.936550,0.000000 +0.349553,0.000000,0.936916,0.000000 +0.348572,0.000000,0.937282,0.000000 +0.347590,0.000000,0.937646,0.000000 +0.346608,0.000000,0.938010,0.000000 +0.345626,0.000000,0.938372,0.000000 +0.344643,0.000000,0.938734,0.000000 +0.343660,0.000000,0.939094,0.000000 +0.342676,0.000000,0.939454,0.000000 +0.341692,0.000000,0.939812,0.000000 +0.340708,0.000000,0.940169,0.000000 +0.339723,0.000000,0.940526,0.000000 +0.338738,0.000000,0.940881,0.000000 +0.337752,0.000000,0.941235,0.000000 +0.336767,0.000000,0.941588,0.000000 +0.335780,0.000000,0.941940,0.000000 +0.334794,0.000000,0.942291,0.000000 +0.333807,0.000000,0.942641,0.000000 +0.332820,0.000000,0.942991,0.000000 +0.331832,0.000000,0.943339,0.000000 +0.330844,0.000000,0.943686,0.000000 +0.329855,0.000000,0.944031,0.000000 +0.328867,0.000000,0.944376,0.000000 +0.327878,0.000000,0.944720,0.000000 +0.326888,0.000000,0.945063,0.000000 +0.325898,0.000000,0.945405,0.000000 +0.324908,0.000000,0.945746,0.000000 +0.323917,0.000000,0.946085,0.000000 +0.322927,0.000000,0.946424,0.000000 +0.321935,0.000000,0.946762,0.000000 +0.320944,0.000000,0.947098,0.000000 +0.319952,0.000000,0.947434,0.000000 +0.318959,0.000000,0.947768,0.000000 +0.317967,0.000000,0.948102,0.000000 +0.316974,0.000000,0.948434,0.000000 +0.315980,0.000000,0.948766,0.000000 +0.314987,0.000000,0.949096,0.000000 +0.313992,0.000000,0.949425,0.000000 +0.312998,0.000000,0.949754,0.000000 +0.312003,0.000000,0.950081,0.000000 +0.311008,0.000000,0.950407,0.000000 +0.310013,0.000000,0.950732,0.000000 +0.309017,0.000000,0.951057,0.000000 +0.308021,0.000000,0.951380,0.000000 +0.307024,0.000000,0.951702,0.000000 +0.306028,0.000000,0.952023,0.000000 +0.305031,0.000000,0.952343,0.000000 +0.304033,0.000000,0.952661,0.000000 +0.303035,0.000000,0.952979,0.000000 +0.302037,0.000000,0.953296,0.000000 +0.301039,0.000000,0.953612,0.000000 +0.300040,0.000000,0.953927,0.000000 +0.299041,0.000000,0.954240,0.000000 +0.298041,0.000000,0.954553,0.000000 +0.297042,0.000000,0.954865,0.000000 +0.296041,0.000000,0.955175,0.000000 +0.295041,0.000000,0.955485,0.000000 +0.294040,0.000000,0.955793,0.000000 +0.293039,0.000000,0.956100,0.000000 +0.292038,0.000000,0.956407,0.000000 +0.291036,0.000000,0.956712,0.000000 +0.290034,0.000000,0.957016,0.000000 +0.289032,0.000000,0.957319,0.000000 +0.288029,0.000000,0.957622,0.000000 +0.287026,0.000000,0.957923,0.000000 +0.286023,0.000000,0.958223,0.000000 +0.285019,0.000000,0.958522,0.000000 +0.284015,0.000000,0.958820,0.000000 +0.283011,0.000000,0.959117,0.000000 +0.282007,0.000000,0.959412,0.000000 +0.281002,0.000000,0.959707,0.000000 +0.279997,0.000000,0.960001,0.000000 +0.278991,0.000000,0.960294,0.000000 +0.277985,0.000000,0.960585,0.000000 +0.276979,0.000000,0.960876,0.000000 +0.275973,0.000000,0.961165,0.000000 +0.274966,0.000000,0.961454,0.000000 +0.273959,0.000000,0.961741,0.000000 +0.272952,0.000000,0.962028,0.000000 +0.271944,0.000000,0.962313,0.000000 +0.270936,0.000000,0.962597,0.000000 +0.269928,0.000000,0.962880,0.000000 +0.268920,0.000000,0.963163,0.000000 +0.267911,0.000000,0.963444,0.000000 +0.266902,0.000000,0.963724,0.000000 +0.265893,0.000000,0.964003,0.000000 +0.264883,0.000000,0.964281,0.000000 +0.263873,0.000000,0.964557,0.000000 +0.262863,0.000000,0.964833,0.000000 +0.261852,0.000000,0.965108,0.000000 +0.260842,0.000000,0.965382,0.000000 +0.259830,0.000000,0.965654,0.000000 +0.258819,0.000000,0.965926,0.000000 +0.257807,0.000000,0.966196,0.000000 +0.256795,0.000000,0.966466,0.000000 +0.255783,0.000000,0.966734,0.000000 +0.254771,0.000000,0.967001,0.000000 +0.253758,0.000000,0.967268,0.000000 +0.252745,0.000000,0.967533,0.000000 +0.251732,0.000000,0.967797,0.000000 +0.250718,0.000000,0.968060,0.000000 +0.249704,0.000000,0.968322,0.000000 +0.248690,0.000000,0.968583,0.000000 +0.247675,0.000000,0.968843,0.000000 +0.246661,0.000000,0.969102,0.000000 +0.245646,0.000000,0.969360,0.000000 +0.244631,0.000000,0.969616,0.000000 +0.243615,0.000000,0.969872,0.000000 +0.242599,0.000000,0.970127,0.000000 +0.241583,0.000000,0.970380,0.000000 +0.240567,0.000000,0.970633,0.000000 +0.239550,0.000000,0.970884,0.000000 +0.238533,0.000000,0.971134,0.000000 +0.237516,0.000000,0.971384,0.000000 +0.236499,0.000000,0.971632,0.000000 +0.235481,0.000000,0.971879,0.000000 +0.234463,0.000000,0.972125,0.000000 +0.233445,0.000000,0.972370,0.000000 +0.232427,0.000000,0.972614,0.000000 +0.231408,0.000000,0.972857,0.000000 +0.230389,0.000000,0.973099,0.000000 +0.229370,0.000000,0.973339,0.000000 +0.228351,0.000000,0.973579,0.000000 +0.227331,0.000000,0.973817,0.000000 +0.226311,0.000000,0.974055,0.000000 +0.225291,0.000000,0.974291,0.000000 +0.224271,0.000000,0.974527,0.000000 +0.223250,0.000000,0.974761,0.000000 +0.222229,0.000000,0.974994,0.000000 +0.221208,0.000000,0.975227,0.000000 +0.220187,0.000000,0.975458,0.000000 +0.219165,0.000000,0.975688,0.000000 +0.218143,0.000000,0.975917,0.000000 +0.217121,0.000000,0.976145,0.000000 +0.216099,0.000000,0.976371,0.000000 +0.215076,0.000000,0.976597,0.000000 +0.214053,0.000000,0.976822,0.000000 +0.213030,0.000000,0.977046,0.000000 +0.212007,0.000000,0.977268,0.000000 +0.210984,0.000000,0.977490,0.000000 +0.209960,0.000000,0.977710,0.000000 +0.208936,0.000000,0.977929,0.000000 +0.207912,0.000000,0.978148,0.000000 +0.206887,0.000000,0.978365,0.000000 +0.205863,0.000000,0.978581,0.000000 +0.204838,0.000000,0.978796,0.000000 +0.203813,0.000000,0.979010,0.000000 +0.202787,0.000000,0.979223,0.000000 +0.201762,0.000000,0.979435,0.000000 +0.200736,0.000000,0.979645,0.000000 +0.199710,0.000000,0.979855,0.000000 +0.198684,0.000000,0.980064,0.000000 +0.197657,0.000000,0.980271,0.000000 +0.196631,0.000000,0.980478,0.000000 +0.195604,0.000000,0.980683,0.000000 +0.194577,0.000000,0.980887,0.000000 +0.193549,0.000000,0.981091,0.000000 +0.192522,0.000000,0.981293,0.000000 +0.191494,0.000000,0.981494,0.000000 +0.190466,0.000000,0.981694,0.000000 +0.189438,0.000000,0.981893,0.000000 +0.188410,0.000000,0.982090,0.000000 +0.187381,0.000000,0.982287,0.000000 +0.186353,0.000000,0.982483,0.000000 +0.185324,0.000000,0.982678,0.000000 +0.184294,0.000000,0.982871,0.000000 +0.183265,0.000000,0.983064,0.000000 +0.182236,0.000000,0.983255,0.000000 +0.181206,0.000000,0.983445,0.000000 +0.180176,0.000000,0.983634,0.000000 +0.179146,0.000000,0.983823,0.000000 +0.178115,0.000000,0.984010,0.000000 +0.177085,0.000000,0.984196,0.000000 +0.176054,0.000000,0.984381,0.000000 +0.175023,0.000000,0.984564,0.000000 +0.173992,0.000000,0.984747,0.000000 +0.172961,0.000000,0.984929,0.000000 +0.171929,0.000000,0.985109,0.000000 +0.170897,0.000000,0.985289,0.000000 +0.169866,0.000000,0.985467,0.000000 +0.168833,0.000000,0.985645,0.000000 +0.167801,0.000000,0.985821,0.000000 +0.166769,0.000000,0.985996,0.000000 +0.165736,0.000000,0.986170,0.000000 +0.164703,0.000000,0.986343,0.000000 +0.163670,0.000000,0.986515,0.000000 +0.162637,0.000000,0.986686,0.000000 +0.161604,0.000000,0.986856,0.000000 +0.160570,0.000000,0.987024,0.000000 +0.159537,0.000000,0.987192,0.000000 +0.158503,0.000000,0.987359,0.000000 +0.157469,0.000000,0.987524,0.000000 +0.156434,0.000000,0.987688,0.000000 +0.155400,0.000000,0.987852,0.000000 +0.154366,0.000000,0.988014,0.000000 +0.153331,0.000000,0.988175,0.000000 +0.152296,0.000000,0.988335,0.000000 +0.151261,0.000000,0.988494,0.000000 +0.150226,0.000000,0.988652,0.000000 +0.149190,0.000000,0.988809,0.000000 +0.148155,0.000000,0.988964,0.000000 +0.147119,0.000000,0.989119,0.000000 +0.146083,0.000000,0.989272,0.000000 +0.145047,0.000000,0.989425,0.000000 +0.144011,0.000000,0.989576,0.000000 +0.142974,0.000000,0.989726,0.000000 +0.141938,0.000000,0.989876,0.000000 +0.140901,0.000000,0.990024,0.000000 +0.139864,0.000000,0.990171,0.000000 +0.138827,0.000000,0.990317,0.000000 +0.137790,0.000000,0.990461,0.000000 +0.136753,0.000000,0.990605,0.000000 +0.135716,0.000000,0.990748,0.000000 +0.134678,0.000000,0.990889,0.000000 +0.133640,0.000000,0.991030,0.000000 +0.132602,0.000000,0.991169,0.000000 +0.131564,0.000000,0.991308,0.000000 +0.130526,0.000000,0.991445,0.000000 +0.129488,0.000000,0.991581,0.000000 +0.128449,0.000000,0.991716,0.000000 +0.127411,0.000000,0.991850,0.000000 +0.126372,0.000000,0.991983,0.000000 +0.125333,0.000000,0.992115,0.000000 +0.124294,0.000000,0.992245,0.000000 +0.123255,0.000000,0.992375,0.000000 +0.122216,0.000000,0.992504,0.000000 +0.121176,0.000000,0.992631,0.000000 +0.120137,0.000000,0.992757,0.000000 +0.119097,0.000000,0.992883,0.000000 +0.118057,0.000000,0.993007,0.000000 +0.117017,0.000000,0.993130,0.000000 +0.115977,0.000000,0.993252,0.000000 +0.114937,0.000000,0.993373,0.000000 +0.113897,0.000000,0.993493,0.000000 +0.112856,0.000000,0.993611,0.000000 +0.111816,0.000000,0.993729,0.000000 +0.110775,0.000000,0.993845,0.000000 +0.109734,0.000000,0.993961,0.000000 +0.108693,0.000000,0.994075,0.000000 +0.107652,0.000000,0.994189,0.000000 +0.106611,0.000000,0.994301,0.000000 +0.105570,0.000000,0.994412,0.000000 +0.104528,0.000000,0.994522,0.000000 +0.103487,0.000000,0.994631,0.000000 +0.102445,0.000000,0.994739,0.000000 +0.101404,0.000000,0.994845,0.000000 +0.100362,0.000000,0.994951,0.000000 +0.099320,0.000000,0.995056,0.000000 +0.098278,0.000000,0.995159,0.000000 +0.097235,0.000000,0.995261,0.000000 +0.096193,0.000000,0.995363,0.000000 +0.095151,0.000000,0.995463,0.000000 +0.094108,0.000000,0.995562,0.000000 +0.093066,0.000000,0.995660,0.000000 +0.092023,0.000000,0.995757,0.000000 +0.090980,0.000000,0.995853,0.000000 +0.089937,0.000000,0.995947,0.000000 +0.088894,0.000000,0.996041,0.000000 +0.087851,0.000000,0.996134,0.000000 +0.086808,0.000000,0.996225,0.000000 +0.085765,0.000000,0.996315,0.000000 +0.084721,0.000000,0.996405,0.000000 +0.083678,0.000000,0.996493,0.000000 +0.082634,0.000000,0.996580,0.000000 +0.081591,0.000000,0.996666,0.000000 +0.080547,0.000000,0.996751,0.000000 +0.079503,0.000000,0.996835,0.000000 +0.078459,0.000000,0.996917,0.000000 +0.077415,0.000000,0.996999,0.000000 +0.076371,0.000000,0.997079,0.000000 +0.075327,0.000000,0.997159,0.000000 +0.074283,0.000000,0.997237,0.000000 +0.073238,0.000000,0.997314,0.000000 +0.072194,0.000000,0.997391,0.000000 +0.071149,0.000000,0.997466,0.000000 +0.070105,0.000000,0.997540,0.000000 +0.069060,0.000000,0.997613,0.000000 +0.068015,0.000000,0.997684,0.000000 +0.066970,0.000000,0.997755,0.000000 +0.065926,0.000000,0.997825,0.000000 +0.064881,0.000000,0.997893,0.000000 +0.063836,0.000000,0.997960,0.000000 +0.062791,0.000000,0.998027,0.000000 +0.061745,0.000000,0.998092,0.000000 +0.060700,0.000000,0.998156,0.000000 +0.059655,0.000000,0.998219,0.000000 +0.058609,0.000000,0.998281,0.000000 +0.057564,0.000000,0.998342,0.000000 +0.056519,0.000000,0.998402,0.000000 +0.055473,0.000000,0.998460,0.000000 +0.054427,0.000000,0.998518,0.000000 +0.053382,0.000000,0.998574,0.000000 +0.052336,0.000000,0.998630,0.000000 +0.051290,0.000000,0.998684,0.000000 +0.050244,0.000000,0.998737,0.000000 +0.049198,0.000000,0.998789,0.000000 +0.048152,0.000000,0.998840,0.000000 +0.047106,0.000000,0.998890,0.000000 +0.046060,0.000000,0.998939,0.000000 +0.045014,0.000000,0.998986,0.000000 +0.043968,0.000000,0.999033,0.000000 +0.042922,0.000000,0.999078,0.000000 +0.041876,0.000000,0.999123,0.000000 +0.040829,0.000000,0.999166,0.000000 +0.039783,0.000000,0.999208,0.000000 +0.038737,0.000000,0.999249,0.000000 +0.037690,0.000000,0.999289,0.000000 +0.036644,0.000000,0.999328,0.000000 +0.035597,0.000000,0.999366,0.000000 +0.034551,0.000000,0.999403,0.000000 +0.033504,0.000000,0.999439,0.000000 +0.032457,0.000000,0.999473,0.000000 +0.031411,0.000000,0.999507,0.000000 +0.030364,0.000000,0.999539,0.000000 +0.029317,0.000000,0.999570,0.000000 +0.028271,0.000000,0.999600,0.000000 +0.027224,0.000000,0.999629,0.000000 +0.026177,0.000000,0.999657,0.000000 +0.025130,0.000000,0.999684,0.000000 +0.024083,0.000000,0.999710,0.000000 +0.023036,0.000000,0.999735,0.000000 +0.021989,0.000000,0.999758,0.000000 +0.020942,0.000000,0.999781,0.000000 +0.019895,0.000000,0.999802,0.000000 +0.018848,0.000000,0.999822,0.000000 +0.017801,0.000000,0.999842,0.000000 +0.016754,0.000000,0.999860,0.000000 +0.015707,0.000000,0.999877,0.000000 +0.014660,0.000000,0.999893,0.000000 +0.013613,0.000000,0.999907,0.000000 +0.012566,0.000000,0.999921,0.000000 +0.011519,0.000000,0.999934,0.000000 +0.010472,0.000000,0.999945,0.000000 +0.009425,0.000000,0.999956,0.000000 +0.008377,0.000000,0.999965,0.000000 +0.007330,0.000000,0.999973,0.000000 +0.006283,0.000000,0.999980,0.000000 +0.005236,0.000000,0.999986,0.000000 +0.004189,0.000000,0.999991,0.000000 +0.003142,0.000000,0.999995,0.000000 +0.002094,0.000000,0.999998,0.000000 +0.001047,0.000000,0.999999,0.000000 +0.000000,0.000000,1.000000,0.000000 +-0.001047,-0.000000,0.999999,-0.000000 +-0.002094,-0.000000,0.999998,-0.000000 +-0.003142,-0.000000,0.999995,-0.000000 +-0.004189,-0.000000,0.999991,-0.000000 +-0.005236,-0.000000,0.999986,-0.000000 +-0.006283,-0.000000,0.999980,-0.000000 +-0.007330,-0.000000,0.999973,-0.000000 +-0.008377,-0.000000,0.999965,-0.000000 +-0.009425,-0.000000,0.999956,-0.000000 +-0.010472,-0.000000,0.999945,-0.000000 +-0.011519,-0.000000,0.999934,-0.000000 +-0.012566,-0.000000,0.999921,-0.000000 +-0.013613,-0.000000,0.999907,-0.000000 +-0.014660,-0.000000,0.999893,-0.000000 +-0.015707,-0.000000,0.999877,-0.000000 +-0.016754,-0.000000,0.999860,-0.000000 +-0.017801,-0.000000,0.999842,-0.000000 +-0.018848,-0.000000,0.999822,-0.000000 +-0.019895,-0.000000,0.999802,-0.000000 +-0.020942,-0.000000,0.999781,-0.000000 +-0.021989,-0.000000,0.999758,-0.000000 +-0.023036,-0.000000,0.999735,-0.000000 +-0.024083,-0.000000,0.999710,-0.000000 +-0.025130,-0.000000,0.999684,-0.000000 +-0.026177,-0.000000,0.999657,-0.000000 +-0.027224,-0.000000,0.999629,-0.000000 +-0.028271,-0.000000,0.999600,-0.000000 +-0.029317,-0.000000,0.999570,-0.000000 +-0.030364,-0.000000,0.999539,-0.000000 +-0.031411,-0.000000,0.999507,-0.000000 +-0.032457,-0.000000,0.999473,-0.000000 +-0.033504,-0.000000,0.999439,-0.000000 +-0.034551,-0.000000,0.999403,-0.000000 +-0.035597,-0.000000,0.999366,-0.000000 +-0.036644,-0.000000,0.999328,-0.000000 +-0.037690,-0.000000,0.999289,-0.000000 +-0.038737,-0.000000,0.999249,-0.000000 +-0.039783,-0.000000,0.999208,-0.000000 +-0.040829,-0.000000,0.999166,-0.000000 +-0.041876,-0.000000,0.999123,-0.000000 +-0.042922,-0.000000,0.999078,-0.000000 +-0.043968,-0.000000,0.999033,-0.000000 +-0.045014,-0.000000,0.998986,-0.000000 +-0.046060,-0.000000,0.998939,-0.000000 +-0.047106,-0.000000,0.998890,-0.000000 +-0.048152,-0.000000,0.998840,-0.000000 +-0.049198,-0.000000,0.998789,-0.000000 +-0.050244,-0.000000,0.998737,-0.000000 +-0.051290,-0.000000,0.998684,-0.000000 +-0.052336,-0.000000,0.998630,-0.000000 +-0.053382,-0.000000,0.998574,-0.000000 +-0.054427,-0.000000,0.998518,-0.000000 +-0.055473,-0.000000,0.998460,-0.000000 +-0.056519,-0.000000,0.998402,-0.000000 +-0.057564,-0.000000,0.998342,-0.000000 +-0.058609,-0.000000,0.998281,-0.000000 +-0.059655,-0.000000,0.998219,-0.000000 +-0.060700,-0.000000,0.998156,-0.000000 +-0.061745,-0.000000,0.998092,-0.000000 +-0.062791,-0.000000,0.998027,-0.000000 +-0.063836,-0.000000,0.997960,-0.000000 +-0.064881,-0.000000,0.997893,-0.000000 +-0.065926,-0.000000,0.997825,-0.000000 +-0.066970,-0.000000,0.997755,-0.000000 +-0.068015,-0.000000,0.997684,-0.000000 +-0.069060,-0.000000,0.997613,-0.000000 +-0.070105,-0.000000,0.997540,-0.000000 +-0.071149,-0.000000,0.997466,-0.000000 +-0.072194,-0.000000,0.997391,-0.000000 +-0.073238,-0.000000,0.997314,-0.000000 +-0.074283,-0.000000,0.997237,-0.000000 +-0.075327,-0.000000,0.997159,-0.000000 +-0.076371,-0.000000,0.997079,-0.000000 +-0.077415,-0.000000,0.996999,-0.000000 +-0.078459,-0.000000,0.996917,-0.000000 +-0.079503,-0.000000,0.996835,-0.000000 +-0.080547,-0.000000,0.996751,-0.000000 +-0.081591,-0.000000,0.996666,-0.000000 +-0.082634,-0.000000,0.996580,-0.000000 +-0.083678,-0.000000,0.996493,-0.000000 +-0.084721,-0.000000,0.996405,-0.000000 +-0.085765,-0.000000,0.996315,-0.000000 +-0.086808,-0.000000,0.996225,-0.000000 +-0.087851,-0.000000,0.996134,-0.000000 +-0.088894,-0.000000,0.996041,-0.000000 +-0.089937,-0.000000,0.995947,-0.000000 +-0.090980,-0.000000,0.995853,-0.000000 +-0.092023,-0.000000,0.995757,-0.000000 +-0.093066,-0.000000,0.995660,-0.000000 +-0.094108,-0.000000,0.995562,-0.000000 +-0.095151,-0.000000,0.995463,-0.000000 +-0.096193,-0.000000,0.995363,-0.000000 +-0.097235,-0.000000,0.995261,-0.000000 +-0.098278,-0.000000,0.995159,-0.000000 +-0.099320,-0.000000,0.995056,-0.000000 +-0.100362,-0.000000,0.994951,-0.000000 +-0.101404,-0.000000,0.994845,-0.000000 +-0.102445,-0.000000,0.994739,-0.000000 +-0.103487,-0.000000,0.994631,-0.000000 +-0.104528,-0.000000,0.994522,-0.000000 +-0.105570,-0.000000,0.994412,-0.000000 +-0.106611,-0.000000,0.994301,-0.000000 +-0.107652,-0.000000,0.994189,-0.000000 +-0.108693,-0.000000,0.994075,-0.000000 +-0.109734,-0.000000,0.993961,-0.000000 +-0.110775,-0.000000,0.993845,-0.000000 +-0.111816,-0.000000,0.993729,-0.000000 +-0.112856,-0.000000,0.993611,-0.000000 +-0.113897,-0.000000,0.993493,-0.000000 +-0.114937,-0.000000,0.993373,-0.000000 +-0.115977,-0.000000,0.993252,-0.000000 +-0.117017,-0.000000,0.993130,-0.000000 +-0.118057,-0.000000,0.993007,-0.000000 +-0.119097,-0.000000,0.992883,-0.000000 +-0.120137,-0.000000,0.992757,-0.000000 +-0.121176,-0.000000,0.992631,-0.000000 +-0.122216,-0.000000,0.992504,-0.000000 +-0.123255,-0.000000,0.992375,-0.000000 +-0.124294,-0.000000,0.992245,-0.000000 +-0.125333,-0.000000,0.992115,-0.000000 +-0.126372,-0.000000,0.991983,-0.000000 +-0.127411,-0.000000,0.991850,-0.000000 +-0.128449,-0.000000,0.991716,-0.000000 +-0.129488,-0.000000,0.991581,-0.000000 +-0.130526,-0.000000,0.991445,-0.000000 +-0.131564,-0.000000,0.991308,-0.000000 +-0.132602,-0.000000,0.991169,-0.000000 +-0.133640,-0.000000,0.991030,-0.000000 +-0.134678,-0.000000,0.990889,-0.000000 +-0.135716,-0.000000,0.990748,-0.000000 +-0.136753,-0.000000,0.990605,-0.000000 +-0.137790,-0.000000,0.990461,-0.000000 +-0.138827,-0.000000,0.990317,-0.000000 +-0.139864,-0.000000,0.990171,-0.000000 +-0.140901,-0.000000,0.990024,-0.000000 +-0.141938,-0.000000,0.989876,-0.000000 +-0.142974,-0.000000,0.989726,-0.000000 +-0.144011,-0.000000,0.989576,-0.000000 +-0.145047,-0.000000,0.989425,-0.000000 +-0.146083,-0.000000,0.989272,-0.000000 +-0.147119,-0.000000,0.989119,-0.000000 +-0.148155,-0.000000,0.988964,-0.000000 +-0.149190,-0.000000,0.988809,-0.000000 +-0.150226,-0.000000,0.988652,-0.000000 +-0.151261,-0.000000,0.988494,-0.000000 +-0.152296,-0.000000,0.988335,-0.000000 +-0.153331,-0.000000,0.988175,-0.000000 +-0.154366,-0.000000,0.988014,-0.000000 +-0.155400,-0.000000,0.987852,-0.000000 +-0.156434,-0.000000,0.987688,-0.000000 +-0.157469,-0.000000,0.987524,-0.000000 +-0.158503,-0.000000,0.987359,-0.000000 +-0.159537,-0.000000,0.987192,-0.000000 +-0.160570,-0.000000,0.987024,-0.000000 +-0.161604,-0.000000,0.986856,-0.000000 +-0.162637,-0.000000,0.986686,-0.000000 +-0.163670,-0.000000,0.986515,-0.000000 +-0.164703,-0.000000,0.986343,-0.000000 +-0.165736,-0.000000,0.986170,-0.000000 +-0.166769,-0.000000,0.985996,-0.000000 +-0.167801,-0.000000,0.985821,-0.000000 +-0.168833,-0.000000,0.985645,-0.000000 +-0.169866,-0.000000,0.985467,-0.000000 +-0.170897,-0.000000,0.985289,-0.000000 +-0.171929,-0.000000,0.985109,-0.000000 +-0.172961,-0.000000,0.984929,-0.000000 +-0.173992,-0.000000,0.984747,-0.000000 +-0.175023,-0.000000,0.984564,-0.000000 +-0.176054,-0.000000,0.984381,-0.000000 +-0.177085,-0.000000,0.984196,-0.000000 +-0.178115,-0.000000,0.984010,-0.000000 +-0.179146,-0.000000,0.983823,-0.000000 +-0.180176,-0.000000,0.983634,-0.000000 +-0.181206,-0.000000,0.983445,-0.000000 +-0.182236,-0.000000,0.983255,-0.000000 +-0.183265,-0.000000,0.983064,-0.000000 +-0.184294,-0.000000,0.982871,-0.000000 +-0.185324,-0.000000,0.982678,-0.000000 +-0.186353,-0.000000,0.982483,-0.000000 +-0.187381,-0.000000,0.982287,-0.000000 +-0.188410,-0.000000,0.982090,-0.000000 +-0.189438,-0.000000,0.981893,-0.000000 +-0.190466,-0.000000,0.981694,-0.000000 +-0.191494,-0.000000,0.981494,-0.000000 +-0.192522,-0.000000,0.981293,-0.000000 +-0.193549,-0.000000,0.981091,-0.000000 +-0.194577,-0.000000,0.980887,-0.000000 +-0.195604,-0.000000,0.980683,-0.000000 +-0.196631,-0.000000,0.980478,-0.000000 +-0.197657,-0.000000,0.980271,-0.000000 +-0.198684,-0.000000,0.980064,-0.000000 +-0.199710,-0.000000,0.979855,-0.000000 +-0.200736,-0.000000,0.979645,-0.000000 +-0.201762,-0.000000,0.979435,-0.000000 +-0.202787,-0.000000,0.979223,-0.000000 +-0.203813,-0.000000,0.979010,-0.000000 +-0.204838,-0.000000,0.978796,-0.000000 +-0.205863,-0.000000,0.978581,-0.000000 +-0.206887,-0.000000,0.978365,-0.000000 +-0.207912,-0.000000,0.978148,-0.000000 +-0.208936,-0.000000,0.977929,-0.000000 +-0.209960,-0.000000,0.977710,-0.000000 +-0.210984,-0.000000,0.977490,-0.000000 +-0.212007,-0.000000,0.977268,-0.000000 +-0.213030,-0.000000,0.977046,-0.000000 +-0.214053,-0.000000,0.976822,-0.000000 +-0.215076,-0.000000,0.976597,-0.000000 +-0.216099,-0.000000,0.976371,-0.000000 +-0.217121,-0.000000,0.976145,-0.000000 +-0.218143,-0.000000,0.975917,-0.000000 +-0.219165,-0.000000,0.975688,-0.000000 +-0.220187,-0.000000,0.975458,-0.000000 +-0.221208,-0.000000,0.975227,-0.000000 +-0.222229,-0.000000,0.974994,-0.000000 +-0.223250,-0.000000,0.974761,-0.000000 +-0.224271,-0.000000,0.974527,-0.000000 +-0.225291,-0.000000,0.974291,-0.000000 +-0.226311,-0.000000,0.974055,-0.000000 +-0.227331,-0.000000,0.973817,-0.000000 +-0.228351,-0.000000,0.973579,-0.000000 +-0.229370,-0.000000,0.973339,-0.000000 +-0.230389,-0.000000,0.973099,-0.000000 +-0.231408,-0.000000,0.972857,-0.000000 +-0.232427,-0.000000,0.972614,-0.000000 +-0.233445,-0.000000,0.972370,-0.000000 +-0.234463,-0.000000,0.972125,-0.000000 +-0.235481,-0.000000,0.971879,-0.000000 +-0.236499,-0.000000,0.971632,-0.000000 +-0.237516,-0.000000,0.971384,-0.000000 +-0.238533,-0.000000,0.971134,-0.000000 +-0.239550,-0.000000,0.970884,-0.000000 +-0.240567,-0.000000,0.970633,-0.000000 +-0.241583,-0.000000,0.970380,-0.000000 +-0.242599,-0.000000,0.970127,-0.000000 +-0.243615,-0.000000,0.969872,-0.000000 +-0.244631,-0.000000,0.969616,-0.000000 +-0.245646,-0.000000,0.969360,-0.000000 +-0.246661,-0.000000,0.969102,-0.000000 +-0.247675,-0.000000,0.968843,-0.000000 +-0.248690,-0.000000,0.968583,-0.000000 +-0.249704,-0.000000,0.968322,-0.000000 +-0.250718,-0.000000,0.968060,-0.000000 +-0.251732,-0.000000,0.967797,-0.000000 +-0.252745,-0.000000,0.967533,-0.000000 +-0.253758,-0.000000,0.967268,-0.000000 +-0.254771,-0.000000,0.967001,-0.000000 +-0.255783,-0.000000,0.966734,-0.000000 +-0.256795,-0.000000,0.966466,-0.000000 +-0.257807,-0.000000,0.966196,-0.000000 +-0.258819,-0.000000,0.965926,-0.000000 +-0.259830,-0.000000,0.965654,-0.000000 +-0.260842,-0.000000,0.965382,-0.000000 +-0.261852,-0.000000,0.965108,-0.000000 +-0.262863,-0.000000,0.964833,-0.000000 +-0.263873,-0.000000,0.964557,-0.000000 +-0.264883,-0.000000,0.964281,-0.000000 +-0.265893,-0.000000,0.964003,-0.000000 +-0.266902,-0.000000,0.963724,-0.000000 +-0.267911,-0.000000,0.963444,-0.000000 +-0.268920,-0.000000,0.963163,-0.000000 +-0.269928,-0.000000,0.962880,-0.000000 +-0.270936,-0.000000,0.962597,-0.000000 +-0.271944,-0.000000,0.962313,-0.000000 +-0.272952,-0.000000,0.962028,-0.000000 +-0.273959,-0.000000,0.961741,-0.000000 +-0.274966,-0.000000,0.961454,-0.000000 +-0.275973,-0.000000,0.961165,-0.000000 +-0.276979,-0.000000,0.960876,-0.000000 +-0.277985,-0.000000,0.960585,-0.000000 +-0.278991,-0.000000,0.960294,-0.000000 +-0.279997,-0.000000,0.960001,-0.000000 +-0.281002,-0.000000,0.959707,-0.000000 +-0.282007,-0.000000,0.959412,-0.000000 +-0.283011,-0.000000,0.959117,-0.000000 +-0.284015,-0.000000,0.958820,-0.000000 +-0.285019,-0.000000,0.958522,-0.000000 +-0.286023,-0.000000,0.958223,-0.000000 +-0.287026,-0.000000,0.957923,-0.000000 +-0.288029,-0.000000,0.957622,-0.000000 +-0.289032,-0.000000,0.957319,-0.000000 +-0.290034,-0.000000,0.957016,-0.000000 +-0.291036,-0.000000,0.956712,-0.000000 +-0.292038,-0.000000,0.956407,-0.000000 +-0.293039,-0.000000,0.956100,-0.000000 +-0.294040,-0.000000,0.955793,-0.000000 +-0.295041,-0.000000,0.955485,-0.000000 +-0.296041,-0.000000,0.955175,-0.000000 +-0.297042,-0.000000,0.954865,-0.000000 +-0.298041,-0.000000,0.954553,-0.000000 +-0.299041,-0.000000,0.954240,-0.000000 +-0.300040,-0.000000,0.953927,-0.000000 +-0.301039,-0.000000,0.953612,-0.000000 +-0.302037,-0.000000,0.953296,-0.000000 +-0.303035,-0.000000,0.952979,-0.000000 +-0.304033,-0.000000,0.952661,-0.000000 +-0.305031,-0.000000,0.952343,-0.000000 +-0.306028,-0.000000,0.952023,-0.000000 +-0.307024,-0.000000,0.951702,-0.000000 +-0.308021,-0.000000,0.951380,-0.000000 +-0.309017,-0.000000,0.951057,-0.000000 +-0.310013,-0.000000,0.950732,-0.000000 +-0.311008,-0.000000,0.950407,-0.000000 +-0.312003,-0.000000,0.950081,-0.000000 +-0.312998,-0.000000,0.949754,-0.000000 +-0.313992,-0.000000,0.949425,-0.000000 +-0.314987,-0.000000,0.949096,-0.000000 +-0.315980,-0.000000,0.948766,-0.000000 +-0.316974,-0.000000,0.948434,-0.000000 +-0.317967,-0.000000,0.948102,-0.000000 +-0.318959,-0.000000,0.947768,-0.000000 +-0.319952,-0.000000,0.947434,-0.000000 +-0.320944,-0.000000,0.947098,-0.000000 +-0.321935,-0.000000,0.946762,-0.000000 +-0.322927,-0.000000,0.946424,-0.000000 +-0.323917,-0.000000,0.946085,-0.000000 +-0.324908,-0.000000,0.945746,-0.000000 +-0.325898,-0.000000,0.945405,-0.000000 +-0.326888,-0.000000,0.945063,-0.000000 +-0.327878,-0.000000,0.944720,-0.000000 +-0.328867,-0.000000,0.944376,-0.000000 +-0.329855,-0.000000,0.944031,-0.000000 +-0.330844,-0.000000,0.943686,-0.000000 +-0.331832,-0.000000,0.943339,-0.000000 +-0.332820,-0.000000,0.942991,-0.000000 +-0.333807,-0.000000,0.942641,-0.000000 +-0.334794,-0.000000,0.942291,-0.000000 +-0.335780,-0.000000,0.941940,-0.000000 +-0.336767,-0.000000,0.941588,-0.000000 +-0.337752,-0.000000,0.941235,-0.000000 +-0.338738,-0.000000,0.940881,-0.000000 +-0.339723,-0.000000,0.940526,-0.000000 +-0.340708,-0.000000,0.940169,-0.000000 +-0.341692,-0.000000,0.939812,-0.000000 +-0.342676,-0.000000,0.939454,-0.000000 +-0.343660,-0.000000,0.939094,-0.000000 +-0.344643,-0.000000,0.938734,-0.000000 +-0.345626,-0.000000,0.938372,-0.000000 +-0.346608,-0.000000,0.938010,-0.000000 +-0.347590,-0.000000,0.937646,-0.000000 +-0.348572,-0.000000,0.937282,-0.000000 +-0.349553,-0.000000,0.936916,-0.000000 +-0.350534,-0.000000,0.936550,-0.000000 +-0.351515,-0.000000,0.936182,-0.000000 +-0.352495,-0.000000,0.935814,-0.000000 +-0.353475,-0.000000,0.935444,-0.000000 +-0.354454,-0.000000,0.935073,-0.000000 +-0.355433,-0.000000,0.934702,-0.000000 +-0.356412,-0.000000,0.934329,-0.000000 +-0.357390,-0.000000,0.933955,-0.000000 +-0.358368,-0.000000,0.933580,-0.000000 +-0.359345,-0.000000,0.933205,-0.000000 +-0.360322,-0.000000,0.932828,-0.000000 +-0.361299,-0.000000,0.932450,-0.000000 +-0.362275,-0.000000,0.932071,-0.000000 +-0.363251,-0.000000,0.931691,-0.000000 +-0.364227,-0.000000,0.931310,-0.000000 +-0.365202,-0.000000,0.930928,-0.000000 +-0.366176,-0.000000,0.930545,-0.000000 +-0.367151,-0.000000,0.930161,-0.000000 +-0.368125,-0.000000,0.929776,-0.000000 +-0.369098,-0.000000,0.929390,-0.000000 +-0.370071,-0.000000,0.929003,-0.000000 +-0.371044,-0.000000,0.928615,-0.000000 +-0.372016,-0.000000,0.928226,-0.000000 +-0.372988,-0.000000,0.927836,-0.000000 +-0.373959,-0.000000,0.927445,-0.000000 +-0.374930,-0.000000,0.927053,-0.000000 +-0.375901,-0.000000,0.926660,-0.000000 +-0.376871,-0.000000,0.926266,-0.000000 +-0.377841,-0.000000,0.925871,-0.000000 +-0.378810,-0.000000,0.925474,-0.000000 +-0.379779,-0.000000,0.925077,-0.000000 +-0.380748,-0.000000,0.924679,-0.000000 +-0.381716,-0.000000,0.924280,-0.000000 +-0.382683,-0.000000,0.923880,-0.000000 +-0.383651,-0.000000,0.923478,-0.000000 +-0.384618,-0.000000,0.923076,-0.000000 +-0.385584,-0.000000,0.922673,-0.000000 +-0.386550,-0.000000,0.922268,-0.000000 +-0.387516,-0.000000,0.921863,-0.000000 +-0.388481,-0.000000,0.921457,-0.000000 +-0.389445,-0.000000,0.921050,-0.000000 +-0.390410,-0.000000,0.920641,-0.000000 +-0.391374,-0.000000,0.920232,-0.000000 +-0.392337,-0.000000,0.919821,-0.000000 +-0.393300,-0.000000,0.919410,-0.000000 +-0.394263,-0.000000,0.918998,-0.000000 +-0.395225,-0.000000,0.918584,-0.000000 +-0.396187,-0.000000,0.918170,-0.000000 +-0.397148,-0.000000,0.917755,-0.000000 +-0.398109,-0.000000,0.917338,-0.000000 +-0.399069,-0.000000,0.916921,-0.000000 +-0.400029,-0.000000,0.916502,-0.000000 +-0.400989,-0.000000,0.916083,-0.000000 +-0.401948,-0.000000,0.915663,-0.000000 +-0.402906,-0.000000,0.915241,-0.000000 +-0.403865,-0.000000,0.914819,-0.000000 +-0.404822,-0.000000,0.914395,-0.000000 +-0.405780,-0.000000,0.913971,-0.000000 +-0.406737,-0.000000,0.913545,-0.000000 +-0.407693,-0.000000,0.913119,-0.000000 +-0.408649,-0.000000,0.912692,-0.000000 +-0.409605,-0.000000,0.912263,-0.000000 +-0.410560,-0.000000,0.911834,-0.000000 +-0.411514,-0.000000,0.911403,-0.000000 +-0.412469,-0.000000,0.910972,-0.000000 +-0.413422,-0.000000,0.910539,-0.000000 +-0.414376,-0.000000,0.910106,-0.000000 +-0.415328,-0.000000,0.909672,-0.000000 +-0.416281,-0.000000,0.909236,-0.000000 +-0.417233,-0.000000,0.908800,-0.000000 +-0.418184,-0.000000,0.908362,-0.000000 +-0.419135,-0.000000,0.907924,-0.000000 +-0.420086,-0.000000,0.907484,-0.000000 +-0.421036,-0.000000,0.907044,-0.000000 +-0.421985,-0.000000,0.906603,-0.000000 +-0.422935,-0.000000,0.906160,-0.000000 +-0.423883,-0.000000,0.905717,-0.000000 +-0.424832,-0.000000,0.905272,-0.000000 +-0.425779,-0.000000,0.904827,-0.000000 +-0.426727,-0.000000,0.904381,-0.000000 +-0.427673,-0.000000,0.903933,-0.000000 +-0.428620,-0.000000,0.903485,-0.000000 +-0.429566,-0.000000,0.903036,-0.000000 +-0.430511,-0.000000,0.902585,-0.000000 +-0.431456,-0.000000,0.902134,-0.000000 +-0.432401,-0.000000,0.901682,-0.000000 +-0.433345,-0.000000,0.901228,-0.000000 +-0.434288,-0.000000,0.900774,-0.000000 +-0.435231,-0.000000,0.900319,-0.000000 +-0.436174,-0.000000,0.899863,-0.000000 +-0.437116,-0.000000,0.899405,-0.000000 +-0.438057,-0.000000,0.898947,-0.000000 +-0.438999,-0.000000,0.898488,-0.000000 +-0.439939,-0.000000,0.898028,-0.000000 +-0.440879,-0.000000,0.897566,-0.000000 +-0.441819,-0.000000,0.897104,-0.000000 +-0.442758,-0.000000,0.896641,-0.000000 +-0.443697,-0.000000,0.896177,-0.000000 +-0.444635,-0.000000,0.895712,-0.000000 +-0.445573,-0.000000,0.895246,-0.000000 +-0.446510,-0.000000,0.894779,-0.000000 +-0.447447,-0.000000,0.894310,-0.000000 +-0.448383,-0.000000,0.893841,-0.000000 +-0.449319,-0.000000,0.893371,-0.000000 +-0.450254,-0.000000,0.892900,-0.000000 +-0.451189,-0.000000,0.892428,-0.000000 +-0.452123,-0.000000,0.891955,-0.000000 +-0.453057,-0.000000,0.891481,-0.000000 +-0.453990,-0.000000,0.891007,-0.000000 +-0.454923,-0.000000,0.890531,-0.000000 +-0.455856,-0.000000,0.890054,-0.000000 +-0.456787,-0.000000,0.889576,-0.000000 +-0.457719,-0.000000,0.889097,-0.000000 +-0.458650,-0.000000,0.888617,-0.000000 +-0.459580,-0.000000,0.888136,-0.000000 +-0.460510,-0.000000,0.887655,-0.000000 +-0.461439,-0.000000,0.887172,-0.000000 +-0.462368,-0.000000,0.886688,-0.000000 +-0.463296,-0.000000,0.886204,-0.000000 +-0.464224,-0.000000,0.885718,-0.000000 +-0.465151,-0.000000,0.885231,-0.000000 +-0.466078,-0.000000,0.884744,-0.000000 +-0.467004,-0.000000,0.884255,-0.000000 +-0.467930,-0.000000,0.883766,-0.000000 +-0.468855,-0.000000,0.883275,-0.000000 +-0.469780,-0.000000,0.882784,-0.000000 +-0.470704,-0.000000,0.882291,-0.000000 +-0.471628,-0.000000,0.881798,-0.000000 +-0.472551,-0.000000,0.881303,-0.000000 +-0.473473,-0.000000,0.880808,-0.000000 +-0.474396,-0.000000,0.880312,-0.000000 +-0.475317,-0.000000,0.879815,-0.000000 +-0.476238,-0.000000,0.879316,-0.000000 +-0.477159,-0.000000,0.878817,-0.000000 +-0.478079,-0.000000,0.878317,-0.000000 +-0.478998,-0.000000,0.877816,-0.000000 +-0.479917,-0.000000,0.877314,-0.000000 +-0.480836,-0.000000,0.876811,-0.000000 +-0.481754,-0.000000,0.876307,-0.000000 +-0.482671,-0.000000,0.875802,-0.000000 +-0.483588,-0.000000,0.875296,-0.000000 +-0.484504,-0.000000,0.874789,-0.000000 +-0.485420,-0.000000,0.874281,-0.000000 +-0.486335,-0.000000,0.873772,-0.000000 +-0.487250,-0.000000,0.873262,-0.000000 +-0.488164,-0.000000,0.872752,-0.000000 +-0.489078,-0.000000,0.872240,-0.000000 +-0.489991,-0.000000,0.871727,-0.000000 +-0.490904,-0.000000,0.871214,-0.000000 +-0.491816,-0.000000,0.870699,-0.000000 +-0.492727,-0.000000,0.870184,-0.000000 +-0.493638,-0.000000,0.869667,-0.000000 +-0.494549,-0.000000,0.869150,-0.000000 +-0.495459,-0.000000,0.868632,-0.000000 +-0.496368,-0.000000,0.868112,-0.000000 +-0.497277,-0.000000,0.867592,-0.000000 +-0.498185,-0.000000,0.867071,-0.000000 +-0.499093,-0.000000,0.866549,-0.000000 +-0.500000,-0.000000,0.866025,-0.000000 +-0.500907,-0.000000,0.865501,-0.000000 +-0.501813,-0.000000,0.864976,-0.000000 +-0.502718,-0.000000,0.864450,-0.000000 +-0.503623,-0.000000,0.863923,-0.000000 +-0.504528,-0.000000,0.863396,-0.000000 +-0.505431,-0.000000,0.862867,-0.000000 +-0.506335,-0.000000,0.862337,-0.000000 +-0.507238,-0.000000,0.861806,-0.000000 +-0.508140,-0.000000,0.861275,-0.000000 +-0.509041,-0.000000,0.860742,-0.000000 +-0.509943,-0.000000,0.860208,-0.000000 +-0.510843,-0.000000,0.859674,-0.000000 +-0.511743,-0.000000,0.859139,-0.000000 +-0.512642,-0.000000,0.858602,-0.000000 +-0.513541,-0.000000,0.858065,-0.000000 +-0.514440,-0.000000,0.857527,-0.000000 +-0.515337,-0.000000,0.856987,-0.000000 +-0.516234,-0.000000,0.856447,-0.000000 +-0.517131,-0.000000,0.855906,-0.000000 +-0.518027,-0.000000,0.855364,-0.000000 +-0.518922,-0.000000,0.854821,-0.000000 +-0.519817,-0.000000,0.854277,-0.000000 +-0.520712,-0.000000,0.853733,-0.000000 +-0.521605,-0.000000,0.853187,-0.000000 +-0.522499,-0.000000,0.852640,-0.000000 +-0.523391,-0.000000,0.852093,-0.000000 +-0.524283,-0.000000,0.851544,-0.000000 +-0.525175,-0.000000,0.850994,-0.000000 +-0.526066,-0.000000,0.850444,-0.000000 +-0.526956,-0.000000,0.849893,-0.000000 +-0.527846,-0.000000,0.849340,-0.000000 +-0.528735,-0.000000,0.848787,-0.000000 +-0.529623,-0.000000,0.848233,-0.000000 +-0.530511,-0.000000,0.847678,-0.000000 +-0.531399,-0.000000,0.847122,-0.000000 +-0.532285,-0.000000,0.846565,-0.000000 +-0.533172,-0.000000,0.846007,-0.000000 +-0.534057,-0.000000,0.845448,-0.000000 +-0.534942,-0.000000,0.844889,-0.000000 +-0.535827,-0.000000,0.844328,-0.000000 +-0.536711,-0.000000,0.843766,-0.000000 +-0.537594,-0.000000,0.843204,-0.000000 +-0.538477,-0.000000,0.842640,-0.000000 +-0.539359,-0.000000,0.842076,-0.000000 +-0.540240,-0.000000,0.841511,-0.000000 +-0.541121,-0.000000,0.840945,-0.000000 +-0.542002,-0.000000,0.840377,-0.000000 +-0.542881,-0.000000,0.839809,-0.000000 +-0.543760,-0.000000,0.839240,-0.000000 +-0.544639,-0.000000,0.838671,-0.000000 +-0.545517,-0.000000,0.838100,-0.000000 +-0.546394,-0.000000,0.837528,-0.000000 +-0.547271,-0.000000,0.836955,-0.000000 +-0.548147,-0.000000,0.836382,-0.000000 +-0.549023,-0.000000,0.835807,-0.000000 +-0.549898,-0.000000,0.835232,-0.000000 +-0.550772,-0.000000,0.834656,-0.000000 +-0.551646,-0.000000,0.834078,-0.000000 +-0.552519,-0.000000,0.833500,-0.000000 +-0.553392,-0.000000,0.832921,-0.000000 +-0.554263,-0.000000,0.832341,-0.000000 +-0.555135,-0.000000,0.831760,-0.000000 +-0.556006,-0.000000,0.831179,-0.000000 +-0.556876,-0.000000,0.830596,-0.000000 +-0.557745,-0.000000,0.830012,-0.000000 +-0.558614,-0.000000,0.829428,-0.000000 +-0.559482,-0.000000,0.828842,-0.000000 +-0.560350,-0.000000,0.828256,-0.000000 +-0.561217,-0.000000,0.827669,-0.000000 +-0.562083,-0.000000,0.827081,-0.000000 +-0.562949,-0.000000,0.826492,-0.000000 +-0.563814,-0.000000,0.825902,-0.000000 +-0.564679,-0.000000,0.825311,-0.000000 +-0.565543,-0.000000,0.824719,-0.000000 +-0.566406,-0.000000,0.824126,-0.000000 +-0.567269,-0.000000,0.823533,-0.000000 +-0.568131,-0.000000,0.822938,-0.000000 +-0.568993,-0.000000,0.822343,-0.000000 +-0.569853,-0.000000,0.821746,-0.000000 +-0.570714,-0.000000,0.821149,-0.000000 +-0.571573,-0.000000,0.820551,-0.000000 +-0.572432,-0.000000,0.819952,-0.000000 +-0.573290,-0.000000,0.819352,-0.000000 +-0.574148,-0.000000,0.818751,-0.000000 +-0.575005,-0.000000,0.818150,-0.000000 +-0.575862,-0.000000,0.817547,-0.000000 +-0.576718,-0.000000,0.816944,-0.000000 +-0.577573,-0.000000,0.816339,-0.000000 +-0.578427,-0.000000,0.815734,-0.000000 +-0.579281,-0.000000,0.815128,-0.000000 +-0.580134,-0.000000,0.814521,-0.000000 +-0.580987,-0.000000,0.813913,-0.000000 +-0.581839,-0.000000,0.813304,-0.000000 +-0.582690,-0.000000,0.812694,-0.000000 +-0.583541,-0.000000,0.812084,-0.000000 +-0.584391,-0.000000,0.811472,-0.000000 +-0.585241,-0.000000,0.810860,-0.000000 +-0.586090,-0.000000,0.810246,-0.000000 +-0.586938,-0.000000,0.809632,-0.000000 +-0.587785,-0.000000,0.809017,-0.000000 +-0.588632,-0.000000,0.808401,-0.000000 +-0.589478,-0.000000,0.807784,-0.000000 +-0.590324,-0.000000,0.807166,-0.000000 +-0.591169,-0.000000,0.806548,-0.000000 +-0.592013,-0.000000,0.805928,-0.000000 +-0.592857,-0.000000,0.805308,-0.000000 +-0.593700,-0.000000,0.804687,-0.000000 +-0.594542,-0.000000,0.804064,-0.000000 +-0.595384,-0.000000,0.803441,-0.000000 +-0.596225,-0.000000,0.802817,-0.000000 +-0.597065,-0.000000,0.802193,-0.000000 +-0.597905,-0.000000,0.801567,-0.000000 +-0.598744,-0.000000,0.800940,-0.000000 +-0.599582,-0.000000,0.800313,-0.000000 +-0.600420,-0.000000,0.799685,-0.000000 +-0.601257,-0.000000,0.799055,-0.000000 +-0.602094,-0.000000,0.798425,-0.000000 +-0.602930,-0.000000,0.797794,-0.000000 +-0.603765,-0.000000,0.797163,-0.000000 +-0.604599,-0.000000,0.796530,-0.000000 +-0.605433,-0.000000,0.795896,-0.000000 +-0.606266,-0.000000,0.795262,-0.000000 +-0.607098,-0.000000,0.794627,-0.000000 +-0.607930,-0.000000,0.793990,-0.000000 +-0.608761,-0.000000,0.793353,-0.000000 +-0.609592,-0.000000,0.792715,-0.000000 +-0.610422,-0.000000,0.792077,-0.000000 +-0.611251,-0.000000,0.791437,-0.000000 +-0.612079,-0.000000,0.790796,-0.000000 +-0.612907,-0.000000,0.790155,-0.000000 +-0.613734,-0.000000,0.789513,-0.000000 +-0.614561,-0.000000,0.788870,-0.000000 +-0.615386,-0.000000,0.788226,-0.000000 +-0.616211,-0.000000,0.787581,-0.000000 +-0.617036,-0.000000,0.786935,-0.000000 +-0.617860,-0.000000,0.786288,-0.000000 +-0.618683,-0.000000,0.785641,-0.000000 +-0.619505,-0.000000,0.784993,-0.000000 +-0.620327,-0.000000,0.784343,-0.000000 +-0.621148,-0.000000,0.783693,-0.000000 +-0.621968,-0.000000,0.783043,-0.000000 +-0.622788,-0.000000,0.782391,-0.000000 +-0.623607,-0.000000,0.781738,-0.000000 +-0.624425,-0.000000,0.781085,-0.000000 +-0.625243,-0.000000,0.780430,-0.000000 +-0.626060,-0.000000,0.779775,-0.000000 +-0.626876,-0.000000,0.779119,-0.000000 +-0.627691,-0.000000,0.778462,-0.000000 +-0.628506,-0.000000,0.777805,-0.000000 +-0.629320,-0.000000,0.777146,-0.000000 +-0.630134,-0.000000,0.776487,-0.000000 +-0.630947,-0.000000,0.775826,-0.000000 +-0.631759,-0.000000,0.775165,-0.000000 +-0.632570,-0.000000,0.774503,-0.000000 +-0.633381,-0.000000,0.773840,-0.000000 +-0.634191,-0.000000,0.773177,-0.000000 +-0.635000,-0.000000,0.772512,-0.000000 +-0.635809,-0.000000,0.771847,-0.000000 +-0.636617,-0.000000,0.771180,-0.000000 +-0.637424,-0.000000,0.770513,-0.000000 +-0.638231,-0.000000,0.769845,-0.000000 +-0.639036,-0.000000,0.769177,-0.000000 +-0.639841,-0.000000,0.768507,-0.000000 +-0.640646,-0.000000,0.767836,-0.000000 +-0.641450,-0.000000,0.767165,-0.000000 +-0.642253,-0.000000,0.766493,-0.000000 +-0.643055,-0.000000,0.765820,-0.000000 +-0.643857,-0.000000,0.765146,-0.000000 +-0.644657,-0.000000,0.764472,-0.000000 +-0.645458,-0.000000,0.763796,-0.000000 +-0.646257,-0.000000,0.763120,-0.000000 +-0.647056,-0.000000,0.762443,-0.000000 +-0.647854,-0.000000,0.761764,-0.000000 +-0.648651,-0.000000,0.761086,-0.000000 +-0.649448,-0.000000,0.760406,-0.000000 +-0.650244,-0.000000,0.759725,-0.000000 +-0.651039,-0.000000,0.759044,-0.000000 +-0.651834,-0.000000,0.758362,-0.000000 +-0.652628,-0.000000,0.757679,-0.000000 +-0.653421,-0.000000,0.756995,-0.000000 +-0.654213,-0.000000,0.756310,-0.000000 +-0.655005,-0.000000,0.755625,-0.000000 +-0.655796,-0.000000,0.754939,-0.000000 +-0.656586,-0.000000,0.754251,-0.000000 +-0.657375,-0.000000,0.753563,-0.000000 +-0.658164,-0.000000,0.752875,-0.000000 +-0.658952,-0.000000,0.752185,-0.000000 +-0.659739,-0.000000,0.751494,-0.000000 +-0.660526,-0.000000,0.750803,-0.000000 +-0.661312,-0.000000,0.750111,-0.000000 +-0.662097,-0.000000,0.749418,-0.000000 +-0.662881,-0.000000,0.748724,-0.000000 +-0.663665,-0.000000,0.748030,-0.000000 +-0.664448,-0.000000,0.747334,-0.000000 +-0.665230,-0.000000,0.746638,-0.000000 +-0.666012,-0.000000,0.745941,-0.000000 +-0.666793,-0.000000,0.745243,-0.000000 +-0.667573,-0.000000,0.744545,-0.000000 +-0.668352,-0.000000,0.743845,-0.000000 +-0.669131,-0.000000,0.743145,-0.000000 +-0.669908,-0.000000,0.742444,-0.000000 +-0.670686,-0.000000,0.741742,-0.000000 +-0.671462,-0.000000,0.741039,-0.000000 +-0.672238,-0.000000,0.740335,-0.000000 +-0.673013,-0.000000,0.739631,-0.000000 +-0.673787,-0.000000,0.738926,-0.000000 +-0.674560,-0.000000,0.738220,-0.000000 +-0.675333,-0.000000,0.737513,-0.000000 +-0.676105,-0.000000,0.736806,-0.000000 +-0.676876,-0.000000,0.736097,-0.000000 +-0.677646,-0.000000,0.735388,-0.000000 +-0.678416,-0.000000,0.734678,-0.000000 +-0.679185,-0.000000,0.733967,-0.000000 +-0.679953,-0.000000,0.733255,-0.000000 +-0.680721,-0.000000,0.732543,-0.000000 +-0.681488,-0.000000,0.731830,-0.000000 +-0.682254,-0.000000,0.731116,-0.000000 +-0.683019,-0.000000,0.730401,-0.000000 +-0.683783,-0.000000,0.729685,-0.000000 +-0.684547,-0.000000,0.728969,-0.000000 +-0.685310,-0.000000,0.728251,-0.000000 +-0.686072,-0.000000,0.727533,-0.000000 +-0.686834,-0.000000,0.726814,-0.000000 +-0.687595,-0.000000,0.726095,-0.000000 +-0.688355,-0.000000,0.725374,-0.000000 +-0.689114,-0.000000,0.724653,-0.000000 +-0.689872,-0.000000,0.723931,-0.000000 +-0.690630,-0.000000,0.723208,-0.000000 +-0.691387,-0.000000,0.722485,-0.000000 +-0.692143,-0.000000,0.721760,-0.000000 +-0.692899,-0.000000,0.721035,-0.000000 +-0.693653,-0.000000,0.720309,-0.000000 +-0.694407,-0.000000,0.719582,-0.000000 +-0.695160,-0.000000,0.718855,-0.000000 +-0.695913,-0.000000,0.718126,-0.000000 +-0.696664,-0.000000,0.717397,-0.000000 +-0.697415,-0.000000,0.716667,-0.000000 +-0.698165,-0.000000,0.715936,-0.000000 +-0.698915,-0.000000,0.715205,-0.000000 +-0.699663,-0.000000,0.714473,-0.000000 +-0.700411,-0.000000,0.713740,-0.000000 +-0.701158,-0.000000,0.713006,-0.000000 +-0.701904,-0.000000,0.712271,-0.000000 +-0.702650,-0.000000,0.711536,-0.000000 +-0.703395,-0.000000,0.710799,-0.000000 +-0.704139,-0.000000,0.710062,-0.000000 +-0.704882,-0.000000,0.709325,-0.000000 +-0.705624,-0.000000,0.708586,-0.000000 +-0.706366,-0.000000,0.707847,-0.000000 +-0.707107,-0.000000,0.707107,-0.000000 +-0.707847,-0.000000,0.706366,-0.000000 +-0.708586,-0.000000,0.705624,-0.000000 +-0.709325,-0.000000,0.704882,-0.000000 +-0.710062,-0.000000,0.704139,-0.000000 +-0.710799,-0.000000,0.703395,-0.000000 +-0.711536,-0.000000,0.702650,-0.000000 +-0.712271,-0.000000,0.701904,-0.000000 +-0.713006,-0.000000,0.701158,-0.000000 +-0.713740,-0.000000,0.700411,-0.000000 +-0.714473,-0.000000,0.699663,-0.000000 +-0.715205,-0.000000,0.698915,-0.000000 +-0.715936,-0.000000,0.698165,-0.000000 +-0.716667,-0.000000,0.697415,-0.000000 +-0.717397,-0.000000,0.696664,-0.000000 +-0.718126,-0.000000,0.695913,-0.000000 +-0.718855,-0.000000,0.695160,-0.000000 +-0.719582,-0.000000,0.694407,-0.000000 +-0.720309,-0.000000,0.693653,-0.000000 +-0.721035,-0.000000,0.692899,-0.000000 +-0.721760,-0.000000,0.692143,-0.000000 +-0.722485,-0.000000,0.691387,-0.000000 +-0.723208,-0.000000,0.690630,-0.000000 +-0.723931,-0.000000,0.689872,-0.000000 +-0.724653,-0.000000,0.689114,-0.000000 +-0.725374,-0.000000,0.688355,-0.000000 +-0.726095,-0.000000,0.687595,-0.000000 +-0.726814,-0.000000,0.686834,-0.000000 +-0.727533,-0.000000,0.686072,-0.000000 +-0.728251,-0.000000,0.685310,-0.000000 +-0.728969,-0.000000,0.684547,-0.000000 +-0.729685,-0.000000,0.683783,-0.000000 +-0.730401,-0.000000,0.683019,-0.000000 +-0.731116,-0.000000,0.682254,-0.000000 +-0.731830,-0.000000,0.681488,-0.000000 +-0.732543,-0.000000,0.680721,-0.000000 +-0.733255,-0.000000,0.679953,-0.000000 +-0.733967,-0.000000,0.679185,-0.000000 +-0.734678,-0.000000,0.678416,-0.000000 +-0.735388,-0.000000,0.677646,-0.000000 +-0.736097,-0.000000,0.676876,-0.000000 +-0.736806,-0.000000,0.676105,-0.000000 +-0.737513,-0.000000,0.675333,-0.000000 +-0.738220,-0.000000,0.674560,-0.000000 +-0.738926,-0.000000,0.673787,-0.000000 +-0.739631,-0.000000,0.673013,-0.000000 +-0.740335,-0.000000,0.672238,-0.000000 +-0.741039,-0.000000,0.671462,-0.000000 +-0.741742,-0.000000,0.670686,-0.000000 +-0.742444,-0.000000,0.669908,-0.000000 +-0.743145,-0.000000,0.669131,-0.000000 +-0.743845,-0.000000,0.668352,-0.000000 +-0.744545,-0.000000,0.667573,-0.000000 +-0.745243,-0.000000,0.666793,-0.000000 +-0.745941,-0.000000,0.666012,-0.000000 +-0.746638,-0.000000,0.665230,-0.000000 +-0.747334,-0.000000,0.664448,-0.000000 +-0.748030,-0.000000,0.663665,-0.000000 +-0.748724,-0.000000,0.662881,-0.000000 +-0.749418,-0.000000,0.662097,-0.000000 +-0.750111,-0.000000,0.661312,-0.000000 +-0.750803,-0.000000,0.660526,-0.000000 +-0.751494,-0.000000,0.659739,-0.000000 +-0.752185,-0.000000,0.658952,-0.000000 +-0.752875,-0.000000,0.658164,-0.000000 +-0.753563,-0.000000,0.657375,-0.000000 +-0.754251,-0.000000,0.656586,-0.000000 +-0.754939,-0.000000,0.655796,-0.000000 +-0.755625,-0.000000,0.655005,-0.000000 +-0.756310,-0.000000,0.654213,-0.000000 +-0.756995,-0.000000,0.653421,-0.000000 +-0.757679,-0.000000,0.652628,-0.000000 +-0.758362,-0.000000,0.651834,-0.000000 +-0.759044,-0.000000,0.651039,-0.000000 +-0.759725,-0.000000,0.650244,-0.000000 +-0.760406,-0.000000,0.649448,-0.000000 +-0.761086,-0.000000,0.648651,-0.000000 +-0.761764,-0.000000,0.647854,-0.000000 +-0.762443,-0.000000,0.647056,-0.000000 +-0.763120,-0.000000,0.646257,-0.000000 +-0.763796,-0.000000,0.645458,-0.000000 +-0.764472,-0.000000,0.644657,-0.000000 +-0.765146,-0.000000,0.643857,-0.000000 +-0.765820,-0.000000,0.643055,-0.000000 +-0.766493,-0.000000,0.642253,-0.000000 +-0.767165,-0.000000,0.641450,-0.000000 +-0.767836,-0.000000,0.640646,-0.000000 +-0.768507,-0.000000,0.639841,-0.000000 +-0.769177,-0.000000,0.639036,-0.000000 +-0.769845,-0.000000,0.638231,-0.000000 +-0.770513,-0.000000,0.637424,-0.000000 +-0.771180,-0.000000,0.636617,-0.000000 +-0.771847,-0.000000,0.635809,-0.000000 +-0.772512,-0.000000,0.635000,-0.000000 +-0.773177,-0.000000,0.634191,-0.000000 +-0.773840,-0.000000,0.633381,-0.000000 +-0.774503,-0.000000,0.632570,-0.000000 +-0.775165,-0.000000,0.631759,-0.000000 +-0.775826,-0.000000,0.630947,-0.000000 +-0.776487,-0.000000,0.630134,-0.000000 +-0.777146,-0.000000,0.629320,-0.000000 +-0.777805,-0.000000,0.628506,-0.000000 +-0.778462,-0.000000,0.627691,-0.000000 +-0.779119,-0.000000,0.626876,-0.000000 +-0.779775,-0.000000,0.626060,-0.000000 +-0.780430,-0.000000,0.625243,-0.000000 +-0.781085,-0.000000,0.624425,-0.000000 +-0.781738,-0.000000,0.623607,-0.000000 +-0.782391,-0.000000,0.622788,-0.000000 +-0.783043,-0.000000,0.621968,-0.000000 +-0.783693,-0.000000,0.621148,-0.000000 +-0.784343,-0.000000,0.620327,-0.000000 +-0.784993,-0.000000,0.619505,-0.000000 +-0.785641,-0.000000,0.618683,-0.000000 +-0.786288,-0.000000,0.617860,-0.000000 +-0.786935,-0.000000,0.617036,-0.000000 +-0.787581,-0.000000,0.616211,-0.000000 +-0.788226,-0.000000,0.615386,-0.000000 +-0.788870,-0.000000,0.614561,-0.000000 +-0.789513,-0.000000,0.613734,-0.000000 +-0.790155,-0.000000,0.612907,-0.000000 +-0.790796,-0.000000,0.612079,-0.000000 +-0.791437,-0.000000,0.611251,-0.000000 +-0.792077,-0.000000,0.610422,-0.000000 +-0.792715,-0.000000,0.609592,-0.000000 +-0.793353,-0.000000,0.608761,-0.000000 +-0.793990,-0.000000,0.607930,-0.000000 +-0.794627,-0.000000,0.607098,-0.000000 +-0.795262,-0.000000,0.606266,-0.000000 +-0.795896,-0.000000,0.605433,-0.000000 +-0.796530,-0.000000,0.604599,-0.000000 +-0.797163,-0.000000,0.603765,-0.000000 +-0.797794,-0.000000,0.602930,-0.000000 +-0.798425,-0.000000,0.602094,-0.000000 +-0.799055,-0.000000,0.601257,-0.000000 +-0.799685,-0.000000,0.600420,-0.000000 +-0.800313,-0.000000,0.599582,-0.000000 +-0.800940,-0.000000,0.598744,-0.000000 +-0.801567,-0.000000,0.597905,-0.000000 +-0.802193,-0.000000,0.597065,-0.000000 +-0.802817,-0.000000,0.596225,-0.000000 +-0.803441,-0.000000,0.595384,-0.000000 +-0.804064,-0.000000,0.594542,-0.000000 +-0.804687,-0.000000,0.593700,-0.000000 +-0.805308,-0.000000,0.592857,-0.000000 +-0.805928,-0.000000,0.592013,-0.000000 +-0.806548,-0.000000,0.591169,-0.000000 +-0.807166,-0.000000,0.590324,-0.000000 +-0.807784,-0.000000,0.589478,-0.000000 +-0.808401,-0.000000,0.588632,-0.000000 +-0.809017,-0.000000,0.587785,-0.000000 +-0.809632,-0.000000,0.586938,-0.000000 +-0.810246,-0.000000,0.586090,-0.000000 +-0.810860,-0.000000,0.585241,-0.000000 +-0.811472,-0.000000,0.584391,-0.000000 +-0.812084,-0.000000,0.583541,-0.000000 +-0.812694,-0.000000,0.582690,-0.000000 +-0.813304,-0.000000,0.581839,-0.000000 +-0.813913,-0.000000,0.580987,-0.000000 +-0.814521,-0.000000,0.580134,-0.000000 +-0.815128,-0.000000,0.579281,-0.000000 +-0.815734,-0.000000,0.578427,-0.000000 +-0.816339,-0.000000,0.577573,-0.000000 +-0.816944,-0.000000,0.576718,-0.000000 +-0.817547,-0.000000,0.575862,-0.000000 +-0.818150,-0.000000,0.575005,-0.000000 +-0.818751,-0.000000,0.574148,-0.000000 +-0.819352,-0.000000,0.573290,-0.000000 +-0.819952,-0.000000,0.572432,-0.000000 +-0.820551,-0.000000,0.571573,-0.000000 +-0.821149,-0.000000,0.570714,-0.000000 +-0.821746,-0.000000,0.569853,-0.000000 +-0.822343,-0.000000,0.568993,-0.000000 +-0.822938,-0.000000,0.568131,-0.000000 +-0.823533,-0.000000,0.567269,-0.000000 +-0.824126,-0.000000,0.566406,-0.000000 +-0.824719,-0.000000,0.565543,-0.000000 +-0.825311,-0.000000,0.564679,-0.000000 +-0.825902,-0.000000,0.563814,-0.000000 +-0.826492,-0.000000,0.562949,-0.000000 +-0.827081,-0.000000,0.562083,-0.000000 +-0.827669,-0.000000,0.561217,-0.000000 +-0.828256,-0.000000,0.560350,-0.000000 +-0.828842,-0.000000,0.559482,-0.000000 +-0.829428,-0.000000,0.558614,-0.000000 +-0.830012,-0.000000,0.557745,-0.000000 +-0.830596,-0.000000,0.556876,-0.000000 +-0.831179,-0.000000,0.556006,-0.000000 +-0.831760,-0.000000,0.555135,-0.000000 +-0.832341,-0.000000,0.554263,-0.000000 +-0.832921,-0.000000,0.553392,-0.000000 +-0.833500,-0.000000,0.552519,-0.000000 +-0.834078,-0.000000,0.551646,-0.000000 +-0.834656,-0.000000,0.550772,-0.000000 +-0.835232,-0.000000,0.549898,-0.000000 +-0.835807,-0.000000,0.549023,-0.000000 +-0.836382,-0.000000,0.548147,-0.000000 +-0.836955,-0.000000,0.547271,-0.000000 +-0.837528,-0.000000,0.546394,-0.000000 +-0.838100,-0.000000,0.545517,-0.000000 +-0.838671,-0.000000,0.544639,-0.000000 +-0.839240,-0.000000,0.543760,-0.000000 +-0.839809,-0.000000,0.542881,-0.000000 +-0.840377,-0.000000,0.542002,-0.000000 +-0.840945,-0.000000,0.541121,-0.000000 +-0.841511,-0.000000,0.540240,-0.000000 +-0.842076,-0.000000,0.539359,-0.000000 +-0.842640,-0.000000,0.538477,-0.000000 +-0.843204,-0.000000,0.537594,-0.000000 +-0.843766,-0.000000,0.536711,-0.000000 +-0.844328,-0.000000,0.535827,-0.000000 +-0.844889,-0.000000,0.534942,-0.000000 +-0.845448,-0.000000,0.534057,-0.000000 +-0.846007,-0.000000,0.533172,-0.000000 +-0.846565,-0.000000,0.532285,-0.000000 +-0.847122,-0.000000,0.531399,-0.000000 +-0.847678,-0.000000,0.530511,-0.000000 +-0.848233,-0.000000,0.529623,-0.000000 +-0.848787,-0.000000,0.528735,-0.000000 +-0.849340,-0.000000,0.527846,-0.000000 +-0.849893,-0.000000,0.526956,-0.000000 +-0.850444,-0.000000,0.526066,-0.000000 +-0.850994,-0.000000,0.525175,-0.000000 +-0.851544,-0.000000,0.524283,-0.000000 +-0.852093,-0.000000,0.523391,-0.000000 +-0.852640,-0.000000,0.522499,-0.000000 +-0.853187,-0.000000,0.521605,-0.000000 +-0.853733,-0.000000,0.520712,-0.000000 +-0.854277,-0.000000,0.519817,-0.000000 +-0.854821,-0.000000,0.518922,-0.000000 +-0.855364,-0.000000,0.518027,-0.000000 +-0.855906,-0.000000,0.517131,-0.000000 +-0.856447,-0.000000,0.516234,-0.000000 +-0.856987,-0.000000,0.515337,-0.000000 +-0.857527,-0.000000,0.514440,-0.000000 +-0.858065,-0.000000,0.513541,-0.000000 +-0.858602,-0.000000,0.512642,-0.000000 +-0.859139,-0.000000,0.511743,-0.000000 +-0.859674,-0.000000,0.510843,-0.000000 +-0.860208,-0.000000,0.509943,-0.000000 +-0.860742,-0.000000,0.509041,-0.000000 +-0.861275,-0.000000,0.508140,-0.000000 +-0.861806,-0.000000,0.507238,-0.000000 +-0.862337,-0.000000,0.506335,-0.000000 +-0.862867,-0.000000,0.505431,-0.000000 +-0.863396,-0.000000,0.504528,-0.000000 +-0.863923,-0.000000,0.503623,-0.000000 +-0.864450,-0.000000,0.502718,-0.000000 +-0.864976,-0.000000,0.501813,-0.000000 +-0.865501,-0.000000,0.500907,-0.000000 +-0.866025,-0.000000,0.500000,-0.000000 +-0.866549,-0.000000,0.499093,-0.000000 +-0.867071,-0.000000,0.498185,-0.000000 +-0.867592,-0.000000,0.497277,-0.000000 +-0.868112,-0.000000,0.496368,-0.000000 +-0.868632,-0.000000,0.495459,-0.000000 +-0.869150,-0.000000,0.494549,-0.000000 +-0.869667,-0.000000,0.493638,-0.000000 +-0.870184,-0.000000,0.492727,-0.000000 +-0.870699,-0.000000,0.491816,-0.000000 +-0.871214,-0.000000,0.490904,-0.000000 +-0.871727,-0.000000,0.489991,-0.000000 +-0.872240,-0.000000,0.489078,-0.000000 +-0.872752,-0.000000,0.488164,-0.000000 +-0.873262,-0.000000,0.487250,-0.000000 +-0.873772,-0.000000,0.486335,-0.000000 +-0.874281,-0.000000,0.485420,-0.000000 +-0.874789,-0.000000,0.484504,-0.000000 +-0.875296,-0.000000,0.483588,-0.000000 +-0.875802,-0.000000,0.482671,-0.000000 +-0.876307,-0.000000,0.481754,-0.000000 +-0.876811,-0.000000,0.480836,-0.000000 +-0.877314,-0.000000,0.479917,-0.000000 +-0.877816,-0.000000,0.478998,-0.000000 +-0.878317,-0.000000,0.478079,-0.000000 +-0.878817,-0.000000,0.477159,-0.000000 +-0.879316,-0.000000,0.476238,-0.000000 +-0.879815,-0.000000,0.475317,-0.000000 +-0.880312,-0.000000,0.474396,-0.000000 +-0.880808,-0.000000,0.473473,-0.000000 +-0.881303,-0.000000,0.472551,-0.000000 +-0.881798,-0.000000,0.471628,-0.000000 +-0.882291,-0.000000,0.470704,-0.000000 +-0.882784,-0.000000,0.469780,-0.000000 +-0.883275,-0.000000,0.468855,-0.000000 +-0.883766,-0.000000,0.467930,-0.000000 +-0.884255,-0.000000,0.467004,-0.000000 +-0.884744,-0.000000,0.466078,-0.000000 +-0.885231,-0.000000,0.465151,-0.000000 +-0.885718,-0.000000,0.464224,-0.000000 +-0.886204,-0.000000,0.463296,-0.000000 +-0.886688,-0.000000,0.462368,-0.000000 +-0.887172,-0.000000,0.461439,-0.000000 +-0.887655,-0.000000,0.460510,-0.000000 +-0.888136,-0.000000,0.459580,-0.000000 +-0.888617,-0.000000,0.458650,-0.000000 +-0.889097,-0.000000,0.457719,-0.000000 +-0.889576,-0.000000,0.456787,-0.000000 +-0.890054,-0.000000,0.455856,-0.000000 +-0.890531,-0.000000,0.454923,-0.000000 +-0.891007,-0.000000,0.453990,-0.000000 +-0.891481,-0.000000,0.453057,-0.000000 +-0.891955,-0.000000,0.452123,-0.000000 +-0.892428,-0.000000,0.451189,-0.000000 +-0.892900,-0.000000,0.450254,-0.000000 +-0.893371,-0.000000,0.449319,-0.000000 +-0.893841,-0.000000,0.448383,-0.000000 +-0.894310,-0.000000,0.447447,-0.000000 +-0.894779,-0.000000,0.446510,-0.000000 +-0.895246,-0.000000,0.445573,-0.000000 +-0.895712,-0.000000,0.444635,-0.000000 +-0.896177,-0.000000,0.443697,-0.000000 +-0.896641,-0.000000,0.442758,-0.000000 +-0.897104,-0.000000,0.441819,-0.000000 +-0.897566,-0.000000,0.440879,-0.000000 +-0.898028,-0.000000,0.439939,-0.000000 +-0.898488,-0.000000,0.438999,-0.000000 +-0.898947,-0.000000,0.438057,-0.000000 +-0.899405,-0.000000,0.437116,-0.000000 +-0.899863,-0.000000,0.436174,-0.000000 +-0.900319,-0.000000,0.435231,-0.000000 +-0.900774,-0.000000,0.434288,-0.000000 +-0.901228,-0.000000,0.433345,-0.000000 +-0.901682,-0.000000,0.432401,-0.000000 +-0.902134,-0.000000,0.431456,-0.000000 +-0.902585,-0.000000,0.430511,-0.000000 +-0.903036,-0.000000,0.429566,-0.000000 +-0.903485,-0.000000,0.428620,-0.000000 +-0.903933,-0.000000,0.427673,-0.000000 +-0.904381,-0.000000,0.426727,-0.000000 +-0.904827,-0.000000,0.425779,-0.000000 +-0.905272,-0.000000,0.424832,-0.000000 +-0.905717,-0.000000,0.423883,-0.000000 +-0.906160,-0.000000,0.422935,-0.000000 +-0.906603,-0.000000,0.421985,-0.000000 +-0.907044,-0.000000,0.421036,-0.000000 +-0.907484,-0.000000,0.420086,-0.000000 +-0.907924,-0.000000,0.419135,-0.000000 +-0.908362,-0.000000,0.418184,-0.000000 +-0.908800,-0.000000,0.417233,-0.000000 +-0.909236,-0.000000,0.416281,-0.000000 +-0.909672,-0.000000,0.415328,-0.000000 +-0.910106,-0.000000,0.414376,-0.000000 +-0.910539,-0.000000,0.413422,-0.000000 +-0.910972,-0.000000,0.412469,-0.000000 +-0.911403,-0.000000,0.411514,-0.000000 +-0.911834,-0.000000,0.410560,-0.000000 +-0.912263,-0.000000,0.409605,-0.000000 +-0.912692,-0.000000,0.408649,-0.000000 +-0.913119,-0.000000,0.407693,-0.000000 +-0.913545,-0.000000,0.406737,-0.000000 +-0.913971,-0.000000,0.405780,-0.000000 +-0.914395,-0.000000,0.404822,-0.000000 +-0.914819,-0.000000,0.403865,-0.000000 +-0.915241,-0.000000,0.402906,-0.000000 +-0.915663,-0.000000,0.401948,-0.000000 +-0.916083,-0.000000,0.400989,-0.000000 +-0.916502,-0.000000,0.400029,-0.000000 +-0.916921,-0.000000,0.399069,-0.000000 +-0.917338,-0.000000,0.398109,-0.000000 +-0.917755,-0.000000,0.397148,-0.000000 +-0.918170,-0.000000,0.396187,-0.000000 +-0.918584,-0.000000,0.395225,-0.000000 +-0.918998,-0.000000,0.394263,-0.000000 +-0.919410,-0.000000,0.393300,-0.000000 +-0.919821,-0.000000,0.392337,-0.000000 +-0.920232,-0.000000,0.391374,-0.000000 +-0.920641,-0.000000,0.390410,-0.000000 +-0.921050,-0.000000,0.389445,-0.000000 +-0.921457,-0.000000,0.388481,-0.000000 +-0.921863,-0.000000,0.387516,-0.000000 +-0.922268,-0.000000,0.386550,-0.000000 +-0.922673,-0.000000,0.385584,-0.000000 +-0.923076,-0.000000,0.384618,-0.000000 +-0.923478,-0.000000,0.383651,-0.000000 +-0.923880,-0.000000,0.382683,-0.000000 +-0.924280,-0.000000,0.381716,-0.000000 +-0.924679,-0.000000,0.380748,-0.000000 +-0.925077,-0.000000,0.379779,-0.000000 +-0.925474,-0.000000,0.378810,-0.000000 +-0.925871,-0.000000,0.377841,-0.000000 +-0.926266,-0.000000,0.376871,-0.000000 +-0.926660,-0.000000,0.375901,-0.000000 +-0.927053,-0.000000,0.374930,-0.000000 +-0.927445,-0.000000,0.373959,-0.000000 +-0.927836,-0.000000,0.372988,-0.000000 +-0.928226,-0.000000,0.372016,-0.000000 +-0.928615,-0.000000,0.371044,-0.000000 +-0.929003,-0.000000,0.370071,-0.000000 +-0.929390,-0.000000,0.369098,-0.000000 +-0.929776,-0.000000,0.368125,-0.000000 +-0.930161,-0.000000,0.367151,-0.000000 +-0.930545,-0.000000,0.366176,-0.000000 +-0.930928,-0.000000,0.365202,-0.000000 +-0.931310,-0.000000,0.364227,-0.000000 +-0.931691,-0.000000,0.363251,-0.000000 +-0.932071,-0.000000,0.362275,-0.000000 +-0.932450,-0.000000,0.361299,-0.000000 +-0.932828,-0.000000,0.360322,-0.000000 +-0.933205,-0.000000,0.359345,-0.000000 +-0.933580,-0.000000,0.358368,-0.000000 +-0.933955,-0.000000,0.357390,-0.000000 +-0.934329,-0.000000,0.356412,-0.000000 +-0.934702,-0.000000,0.355433,-0.000000 +-0.935073,-0.000000,0.354454,-0.000000 +-0.935444,-0.000000,0.353475,-0.000000 +-0.935814,-0.000000,0.352495,-0.000000 +-0.936182,-0.000000,0.351515,-0.000000 +-0.936550,-0.000000,0.350534,-0.000000 +-0.936916,-0.000000,0.349553,-0.000000 +-0.937282,-0.000000,0.348572,-0.000000 +-0.937646,-0.000000,0.347590,-0.000000 +-0.938010,-0.000000,0.346608,-0.000000 +-0.938372,-0.000000,0.345626,-0.000000 +-0.938734,-0.000000,0.344643,-0.000000 +-0.939094,-0.000000,0.343660,-0.000000 +-0.939454,-0.000000,0.342676,-0.000000 +-0.939812,-0.000000,0.341692,-0.000000 +-0.940169,-0.000000,0.340708,-0.000000 +-0.940526,-0.000000,0.339723,-0.000000 +-0.940881,-0.000000,0.338738,-0.000000 +-0.941235,-0.000000,0.337752,-0.000000 +-0.941588,-0.000000,0.336767,-0.000000 +-0.941940,-0.000000,0.335780,-0.000000 +-0.942291,-0.000000,0.334794,-0.000000 +-0.942641,-0.000000,0.333807,-0.000000 +-0.942991,-0.000000,0.332820,-0.000000 +-0.943339,-0.000000,0.331832,-0.000000 +-0.943686,-0.000000,0.330844,-0.000000 +-0.944031,-0.000000,0.329855,-0.000000 +-0.944376,-0.000000,0.328867,-0.000000 +-0.944720,-0.000000,0.327878,-0.000000 +-0.945063,-0.000000,0.326888,-0.000000 +-0.945405,-0.000000,0.325898,-0.000000 +-0.945746,-0.000000,0.324908,-0.000000 +-0.946085,-0.000000,0.323917,-0.000000 +-0.946424,-0.000000,0.322927,-0.000000 +-0.946762,-0.000000,0.321935,-0.000000 +-0.947098,-0.000000,0.320944,-0.000000 +-0.947434,-0.000000,0.319952,-0.000000 +-0.947768,-0.000000,0.318959,-0.000000 +-0.948102,-0.000000,0.317967,-0.000000 +-0.948434,-0.000000,0.316974,-0.000000 +-0.948766,-0.000000,0.315980,-0.000000 +-0.949096,-0.000000,0.314987,-0.000000 +-0.949425,-0.000000,0.313992,-0.000000 +-0.949754,-0.000000,0.312998,-0.000000 +-0.950081,-0.000000,0.312003,-0.000000 +-0.950407,-0.000000,0.311008,-0.000000 +-0.950732,-0.000000,0.310013,-0.000000 +-0.951057,-0.000000,0.309017,-0.000000 +-0.951380,-0.000000,0.308021,-0.000000 +-0.951702,-0.000000,0.307024,-0.000000 +-0.952023,-0.000000,0.306028,-0.000000 +-0.952343,-0.000000,0.305031,-0.000000 +-0.952661,-0.000000,0.304033,-0.000000 +-0.952979,-0.000000,0.303035,-0.000000 +-0.953296,-0.000000,0.302037,-0.000000 +-0.953612,-0.000000,0.301039,-0.000000 +-0.953927,-0.000000,0.300040,-0.000000 +-0.954240,-0.000000,0.299041,-0.000000 +-0.954553,-0.000000,0.298041,-0.000000 +-0.954865,-0.000000,0.297042,-0.000000 +-0.955175,-0.000000,0.296041,-0.000000 +-0.955485,-0.000000,0.295041,-0.000000 +-0.955793,-0.000000,0.294040,-0.000000 +-0.956100,-0.000000,0.293039,-0.000000 +-0.956407,-0.000000,0.292038,-0.000000 +-0.956712,-0.000000,0.291036,-0.000000 +-0.957016,-0.000000,0.290034,-0.000000 +-0.957319,-0.000000,0.289032,-0.000000 +-0.957622,-0.000000,0.288029,-0.000000 +-0.957923,-0.000000,0.287026,-0.000000 +-0.958223,-0.000000,0.286023,-0.000000 +-0.958522,-0.000000,0.285019,-0.000000 +-0.958820,-0.000000,0.284015,-0.000000 +-0.959117,-0.000000,0.283011,-0.000000 +-0.959412,-0.000000,0.282007,-0.000000 +-0.959707,-0.000000,0.281002,-0.000000 +-0.960001,-0.000000,0.279997,-0.000000 +-0.960294,-0.000000,0.278991,-0.000000 +-0.960585,-0.000000,0.277985,-0.000000 +-0.960876,-0.000000,0.276979,-0.000000 +-0.961165,-0.000000,0.275973,-0.000000 +-0.961454,-0.000000,0.274966,-0.000000 +-0.961741,-0.000000,0.273959,-0.000000 +-0.962028,-0.000000,0.272952,-0.000000 +-0.962313,-0.000000,0.271944,-0.000000 +-0.962597,-0.000000,0.270936,-0.000000 +-0.962880,-0.000000,0.269928,-0.000000 +-0.963163,-0.000000,0.268920,-0.000000 +-0.963444,-0.000000,0.267911,-0.000000 +-0.963724,-0.000000,0.266902,-0.000000 +-0.964003,-0.000000,0.265893,-0.000000 +-0.964281,-0.000000,0.264883,-0.000000 +-0.964557,-0.000000,0.263873,-0.000000 +-0.964833,-0.000000,0.262863,-0.000000 +-0.965108,-0.000000,0.261852,-0.000000 +-0.965382,-0.000000,0.260842,-0.000000 +-0.965654,-0.000000,0.259830,-0.000000 +-0.965926,-0.000000,0.258819,-0.000000 +-0.966196,-0.000000,0.257807,-0.000000 +-0.966466,-0.000000,0.256795,-0.000000 +-0.966734,-0.000000,0.255783,-0.000000 +-0.967001,-0.000000,0.254771,-0.000000 +-0.967268,-0.000000,0.253758,-0.000000 +-0.967533,-0.000000,0.252745,-0.000000 +-0.967797,-0.000000,0.251732,-0.000000 +-0.968060,-0.000000,0.250718,-0.000000 +-0.968322,-0.000000,0.249704,-0.000000 +-0.968583,-0.000000,0.248690,-0.000000 +-0.968843,-0.000000,0.247675,-0.000000 +-0.969102,-0.000000,0.246661,-0.000000 +-0.969360,-0.000000,0.245646,-0.000000 +-0.969616,-0.000000,0.244631,-0.000000 +-0.969872,-0.000000,0.243615,-0.000000 +-0.970127,-0.000000,0.242599,-0.000000 +-0.970380,-0.000000,0.241583,-0.000000 +-0.970633,-0.000000,0.240567,-0.000000 +-0.970884,-0.000000,0.239550,-0.000000 +-0.971134,-0.000000,0.238533,-0.000000 +-0.971384,-0.000000,0.237516,-0.000000 +-0.971632,-0.000000,0.236499,-0.000000 +-0.971879,-0.000000,0.235481,-0.000000 +-0.972125,-0.000000,0.234463,-0.000000 +-0.972370,-0.000000,0.233445,-0.000000 +-0.972614,-0.000000,0.232427,-0.000000 +-0.972857,-0.000000,0.231408,-0.000000 +-0.973099,-0.000000,0.230389,-0.000000 +-0.973339,-0.000000,0.229370,-0.000000 +-0.973579,-0.000000,0.228351,-0.000000 +-0.973817,-0.000000,0.227331,-0.000000 +-0.974055,-0.000000,0.226311,-0.000000 +-0.974291,-0.000000,0.225291,-0.000000 +-0.974527,-0.000000,0.224271,-0.000000 +-0.974761,-0.000000,0.223250,-0.000000 +-0.974994,-0.000000,0.222229,-0.000000 +-0.975227,-0.000000,0.221208,-0.000000 +-0.975458,-0.000000,0.220187,-0.000000 +-0.975688,-0.000000,0.219165,-0.000000 +-0.975917,-0.000000,0.218143,-0.000000 +-0.976145,-0.000000,0.217121,-0.000000 +-0.976371,-0.000000,0.216099,-0.000000 +-0.976597,-0.000000,0.215076,-0.000000 +-0.976822,-0.000000,0.214053,-0.000000 +-0.977046,-0.000000,0.213030,-0.000000 +-0.977268,-0.000000,0.212007,-0.000000 +-0.977490,-0.000000,0.210984,-0.000000 +-0.977710,-0.000000,0.209960,-0.000000 +-0.977929,-0.000000,0.208936,-0.000000 +-0.978148,-0.000000,0.207912,-0.000000 +-0.978365,-0.000000,0.206887,-0.000000 +-0.978581,-0.000000,0.205863,-0.000000 +-0.978796,-0.000000,0.204838,-0.000000 +-0.979010,-0.000000,0.203813,-0.000000 +-0.979223,-0.000000,0.202787,-0.000000 +-0.979435,-0.000000,0.201762,-0.000000 +-0.979645,-0.000000,0.200736,-0.000000 +-0.979855,-0.000000,0.199710,-0.000000 +-0.980064,-0.000000,0.198684,-0.000000 +-0.980271,-0.000000,0.197657,-0.000000 +-0.980478,-0.000000,0.196631,-0.000000 +-0.980683,-0.000000,0.195604,-0.000000 +-0.980887,-0.000000,0.194577,-0.000000 +-0.981091,-0.000000,0.193549,-0.000000 +-0.981293,-0.000000,0.192522,-0.000000 +-0.981494,-0.000000,0.191494,-0.000000 +-0.981694,-0.000000,0.190466,-0.000000 +-0.981893,-0.000000,0.189438,-0.000000 +-0.982090,-0.000000,0.188410,-0.000000 +-0.982287,-0.000000,0.187381,-0.000000 +-0.982483,-0.000000,0.186353,-0.000000 +-0.982678,-0.000000,0.185324,-0.000000 +-0.982871,-0.000000,0.184294,-0.000000 +-0.983064,-0.000000,0.183265,-0.000000 +-0.983255,-0.000000,0.182236,-0.000000 +-0.983445,-0.000000,0.181206,-0.000000 +-0.983634,-0.000000,0.180176,-0.000000 +-0.983823,-0.000000,0.179146,-0.000000 +-0.984010,-0.000000,0.178115,-0.000000 +-0.984196,-0.000000,0.177085,-0.000000 +-0.984381,-0.000000,0.176054,-0.000000 +-0.984564,-0.000000,0.175023,-0.000000 +-0.984747,-0.000000,0.173992,-0.000000 +-0.984929,-0.000000,0.172961,-0.000000 +-0.985109,-0.000000,0.171929,-0.000000 +-0.985289,-0.000000,0.170897,-0.000000 +-0.985467,-0.000000,0.169866,-0.000000 +-0.985645,-0.000000,0.168833,-0.000000 +-0.985821,-0.000000,0.167801,-0.000000 +-0.985996,-0.000000,0.166769,-0.000000 +-0.986170,-0.000000,0.165736,-0.000000 +-0.986343,-0.000000,0.164703,-0.000000 +-0.986515,-0.000000,0.163670,-0.000000 +-0.986686,-0.000000,0.162637,-0.000000 +-0.986856,-0.000000,0.161604,-0.000000 +-0.987024,-0.000000,0.160570,-0.000000 +-0.987192,-0.000000,0.159537,-0.000000 +-0.987359,-0.000000,0.158503,-0.000000 +-0.987524,-0.000000,0.157469,-0.000000 +-0.987688,-0.000000,0.156434,-0.000000 +-0.987852,-0.000000,0.155400,-0.000000 +-0.988014,-0.000000,0.154366,-0.000000 +-0.988175,-0.000000,0.153331,-0.000000 +-0.988335,-0.000000,0.152296,-0.000000 +-0.988494,-0.000000,0.151261,-0.000000 +-0.988652,-0.000000,0.150226,-0.000000 +-0.988809,-0.000000,0.149190,-0.000000 +-0.988964,-0.000000,0.148155,-0.000000 +-0.989119,-0.000000,0.147119,-0.000000 +-0.989272,-0.000000,0.146083,-0.000000 +-0.989425,-0.000000,0.145047,-0.000000 +-0.989576,-0.000000,0.144011,-0.000000 +-0.989726,-0.000000,0.142974,-0.000000 +-0.989876,-0.000000,0.141938,-0.000000 +-0.990024,-0.000000,0.140901,-0.000000 +-0.990171,-0.000000,0.139864,-0.000000 +-0.990317,-0.000000,0.138827,-0.000000 +-0.990461,-0.000000,0.137790,-0.000000 +-0.990605,-0.000000,0.136753,-0.000000 +-0.990748,-0.000000,0.135716,-0.000000 +-0.990889,-0.000000,0.134678,-0.000000 +-0.991030,-0.000000,0.133640,-0.000000 +-0.991169,-0.000000,0.132602,-0.000000 +-0.991308,-0.000000,0.131564,-0.000000 +-0.991445,-0.000000,0.130526,-0.000000 +-0.991581,-0.000000,0.129488,-0.000000 +-0.991716,-0.000000,0.128449,-0.000000 +-0.991850,-0.000000,0.127411,-0.000000 +-0.991983,-0.000000,0.126372,-0.000000 +-0.992115,-0.000000,0.125333,-0.000000 +-0.992245,-0.000000,0.124294,-0.000000 +-0.992375,-0.000000,0.123255,-0.000000 +-0.992504,-0.000000,0.122216,-0.000000 +-0.992631,-0.000000,0.121176,-0.000000 +-0.992757,-0.000000,0.120137,-0.000000 +-0.992883,-0.000000,0.119097,-0.000000 +-0.993007,-0.000000,0.118057,-0.000000 +-0.993130,-0.000000,0.117017,-0.000000 +-0.993252,-0.000000,0.115977,-0.000000 +-0.993373,-0.000000,0.114937,-0.000000 +-0.993493,-0.000000,0.113897,-0.000000 +-0.993611,-0.000000,0.112856,-0.000000 +-0.993729,-0.000000,0.111816,-0.000000 +-0.993845,-0.000000,0.110775,-0.000000 +-0.993961,-0.000000,0.109734,-0.000000 +-0.994075,-0.000000,0.108693,-0.000000 +-0.994189,-0.000000,0.107652,-0.000000 +-0.994301,-0.000000,0.106611,-0.000000 +-0.994412,-0.000000,0.105570,-0.000000 +-0.994522,-0.000000,0.104528,-0.000000 +-0.994631,-0.000000,0.103487,-0.000000 +-0.994739,-0.000000,0.102445,-0.000000 +-0.994845,-0.000000,0.101404,-0.000000 +-0.994951,-0.000000,0.100362,-0.000000 +-0.995056,-0.000000,0.099320,-0.000000 +-0.995159,-0.000000,0.098278,-0.000000 +-0.995261,-0.000000,0.097235,-0.000000 +-0.995363,-0.000000,0.096193,-0.000000 +-0.995463,-0.000000,0.095151,-0.000000 +-0.995562,-0.000000,0.094108,-0.000000 +-0.995660,-0.000000,0.093066,-0.000000 +-0.995757,-0.000000,0.092023,-0.000000 +-0.995853,-0.000000,0.090980,-0.000000 +-0.995947,-0.000000,0.089937,-0.000000 +-0.996041,-0.000000,0.088894,-0.000000 +-0.996134,-0.000000,0.087851,-0.000000 +-0.996225,-0.000000,0.086808,-0.000000 +-0.996315,-0.000000,0.085765,-0.000000 +-0.996405,-0.000000,0.084721,-0.000000 +-0.996493,-0.000000,0.083678,-0.000000 +-0.996580,-0.000000,0.082634,-0.000000 +-0.996666,-0.000000,0.081591,-0.000000 +-0.996751,-0.000000,0.080547,-0.000000 +-0.996835,-0.000000,0.079503,-0.000000 +-0.996917,-0.000000,0.078459,-0.000000 +-0.996999,-0.000000,0.077415,-0.000000 +-0.997079,-0.000000,0.076371,-0.000000 +-0.997159,-0.000000,0.075327,-0.000000 +-0.997237,-0.000000,0.074283,-0.000000 +-0.997314,-0.000000,0.073238,-0.000000 +-0.997391,-0.000000,0.072194,-0.000000 +-0.997466,-0.000000,0.071149,-0.000000 +-0.997540,-0.000000,0.070105,-0.000000 +-0.997613,-0.000000,0.069060,-0.000000 +-0.997684,-0.000000,0.068015,-0.000000 +-0.997755,-0.000000,0.066970,-0.000000 +-0.997825,-0.000000,0.065926,-0.000000 +-0.997893,-0.000000,0.064881,-0.000000 +-0.997960,-0.000000,0.063836,-0.000000 +-0.998027,-0.000000,0.062791,-0.000000 +-0.998092,-0.000000,0.061745,-0.000000 +-0.998156,-0.000000,0.060700,-0.000000 +-0.998219,-0.000000,0.059655,-0.000000 +-0.998281,-0.000000,0.058609,-0.000000 +-0.998342,-0.000000,0.057564,-0.000000 +-0.998402,-0.000000,0.056519,-0.000000 +-0.998460,-0.000000,0.055473,-0.000000 +-0.998518,-0.000000,0.054427,-0.000000 +-0.998574,-0.000000,0.053382,-0.000000 +-0.998630,-0.000000,0.052336,-0.000000 +-0.998684,-0.000000,0.051290,-0.000000 +-0.998737,-0.000000,0.050244,-0.000000 +-0.998789,-0.000000,0.049198,-0.000000 +-0.998840,-0.000000,0.048152,-0.000000 +-0.998890,-0.000000,0.047106,-0.000000 +-0.998939,-0.000000,0.046060,-0.000000 +-0.998986,-0.000000,0.045014,-0.000000 +-0.999033,-0.000000,0.043968,-0.000000 +-0.999078,-0.000000,0.042922,-0.000000 +-0.999123,-0.000000,0.041876,-0.000000 +-0.999166,-0.000000,0.040829,-0.000000 +-0.999208,-0.000000,0.039783,-0.000000 +-0.999249,-0.000000,0.038737,-0.000000 +-0.999289,-0.000000,0.037690,-0.000000 +-0.999328,-0.000000,0.036644,-0.000000 +-0.999366,-0.000000,0.035597,-0.000000 +-0.999403,-0.000000,0.034551,-0.000000 +-0.999439,-0.000000,0.033504,-0.000000 +-0.999473,-0.000000,0.032457,-0.000000 +-0.999507,-0.000000,0.031411,-0.000000 +-0.999539,-0.000000,0.030364,-0.000000 +-0.999570,-0.000000,0.029317,-0.000000 +-0.999600,-0.000000,0.028271,-0.000000 +-0.999629,-0.000000,0.027224,-0.000000 +-0.999657,-0.000000,0.026177,-0.000000 +-0.999684,-0.000000,0.025130,-0.000000 +-0.999710,-0.000000,0.024083,-0.000000 +-0.999735,-0.000000,0.023036,-0.000000 +-0.999758,-0.000000,0.021989,-0.000000 +-0.999781,-0.000000,0.020942,-0.000000 +-0.999802,-0.000000,0.019895,-0.000000 +-0.999822,-0.000000,0.018848,-0.000000 +-0.999842,-0.000000,0.017801,-0.000000 +-0.999860,-0.000000,0.016754,-0.000000 +-0.999877,-0.000000,0.015707,-0.000000 +-0.999893,-0.000000,0.014660,-0.000000 +-0.999907,-0.000000,0.013613,-0.000000 +-0.999921,-0.000000,0.012566,-0.000000 +-0.999934,-0.000000,0.011519,-0.000000 +-0.999945,-0.000000,0.010472,-0.000000 +-0.999956,-0.000000,0.009425,-0.000000 +-0.999965,-0.000000,0.008377,-0.000000 +-0.999973,-0.000000,0.007330,-0.000000 +-0.999980,-0.000000,0.006283,-0.000000 +-0.999986,-0.000000,0.005236,-0.000000 +-0.999991,-0.000000,0.004189,-0.000000 +-0.999995,-0.000000,0.003142,-0.000000 +-0.999998,-0.000000,0.002094,-0.000000 +-0.999999,-0.000000,0.001047,-0.000000 diff --git a/scripts/testv/headrot_case02_3000_q.csv b/scripts/testv/headrot_case02_3000_q.csv index e69de29bb2..5711fe9107 100644 --- a/scripts/testv/headrot_case02_3000_q.csv +++ b/scripts/testv/headrot_case02_3000_q.csv @@ -0,0 +1,3000 @@ +1.000000,0.000000,0.000000,0.000000 +1.000000,-0.000000,0.000349,0.000916 +0.999998,-0.000001,0.000698,0.001833 +0.999996,-0.000003,0.001047,0.002749 +0.999992,-0.000005,0.001396,0.003665 +0.999988,-0.000008,0.001745,0.004581 +0.999983,-0.000012,0.002094,0.005498 +0.999976,-0.000016,0.002443,0.006414 +0.999969,-0.000020,0.002792,0.007330 +0.999961,-0.000026,0.003141,0.008247 +0.999952,-0.000032,0.003491,0.009163 +0.999942,-0.000039,0.003840,0.010079 +0.999931,-0.000046,0.004189,0.010995 +0.999919,-0.000054,0.004538,0.011911 +0.999906,-0.000063,0.004887,0.012828 +0.999892,-0.000072,0.005235,0.013744 +0.999877,-0.000082,0.005584,0.014660 +0.999861,-0.000092,0.005933,0.015576 +0.999844,-0.000104,0.006282,0.016492 +0.999826,-0.000115,0.006631,0.017408 +0.999808,-0.000128,0.006980,0.018324 +0.999788,-0.000141,0.007329,0.019241 +0.999767,-0.000155,0.007678,0.020157 +0.999746,-0.000169,0.008027,0.021073 +0.999723,-0.000184,0.008375,0.021989 +0.999700,-0.000200,0.008724,0.022905 +0.999675,-0.000216,0.009073,0.023821 +0.999650,-0.000233,0.009422,0.024736 +0.999623,-0.000251,0.009770,0.025652 +0.999596,-0.000269,0.010119,0.026568 +0.999567,-0.000288,0.010468,0.027484 +0.999538,-0.000307,0.010816,0.028400 +0.999508,-0.000327,0.011165,0.029316 +0.999477,-0.000348,0.011514,0.030231 +0.999444,-0.000370,0.011862,0.031147 +0.999411,-0.000392,0.012211,0.032063 +0.999377,-0.000414,0.012559,0.032978 +0.999342,-0.000438,0.012908,0.033894 +0.999306,-0.000462,0.013256,0.034809 +0.999269,-0.000486,0.013604,0.035725 +0.999231,-0.000512,0.013953,0.036640 +0.999192,-0.000538,0.014301,0.037556 +0.999152,-0.000564,0.014649,0.038471 +0.999111,-0.000591,0.014998,0.039386 +0.999070,-0.000619,0.015346,0.040301 +0.999027,-0.000647,0.015694,0.041217 +0.998983,-0.000677,0.016042,0.042132 +0.998938,-0.000706,0.016390,0.043047 +0.998893,-0.000737,0.016738,0.043962 +0.998846,-0.000768,0.017086,0.044877 +0.998799,-0.000799,0.017434,0.045792 +0.998750,-0.000832,0.017782,0.046707 +0.998701,-0.000864,0.018130,0.047622 +0.998650,-0.000898,0.018478,0.048536 +0.998599,-0.000932,0.018825,0.049451 +0.998546,-0.000967,0.019173,0.050366 +0.998493,-0.001003,0.019521,0.051280 +0.998439,-0.001039,0.019868,0.052195 +0.998383,-0.001075,0.020216,0.053109 +0.998327,-0.001113,0.020563,0.054024 +0.998270,-0.001151,0.020911,0.054938 +0.998212,-0.001189,0.021258,0.055852 +0.998153,-0.001229,0.021605,0.056767 +0.998093,-0.001269,0.021953,0.057681 +0.998032,-0.001309,0.022300,0.058595 +0.997970,-0.001350,0.022647,0.059509 +0.997907,-0.001392,0.022994,0.060423 +0.997843,-0.001435,0.023341,0.061337 +0.997778,-0.001478,0.023688,0.062250 +0.997713,-0.001522,0.024035,0.063164 +0.997646,-0.001566,0.024382,0.064078 +0.997578,-0.001611,0.024729,0.064991 +0.997509,-0.001657,0.025075,0.065905 +0.997440,-0.001703,0.025422,0.066818 +0.997369,-0.001750,0.025769,0.067731 +0.997298,-0.001798,0.026115,0.068645 +0.997225,-0.001846,0.026462,0.069558 +0.997152,-0.001895,0.026808,0.070471 +0.997077,-0.001944,0.027154,0.071384 +0.997002,-0.001994,0.027500,0.072297 +0.996926,-0.002045,0.027847,0.073210 +0.996848,-0.002096,0.028193,0.074122 +0.996770,-0.002148,0.028539,0.075035 +0.996691,-0.002201,0.028885,0.075948 +0.996611,-0.002254,0.029231,0.076860 +0.996530,-0.002308,0.029576,0.077772 +0.996448,-0.002363,0.029922,0.078685 +0.996365,-0.002418,0.030268,0.079597 +0.996281,-0.002474,0.030613,0.080509 +0.996196,-0.002530,0.030959,0.081421 +0.996110,-0.002587,0.031304,0.082333 +0.996023,-0.002645,0.031649,0.083244 +0.995935,-0.002704,0.031995,0.084156 +0.995846,-0.002763,0.032340,0.085068 +0.995757,-0.002822,0.032685,0.085979 +0.995666,-0.002882,0.033030,0.086891 +0.995574,-0.002943,0.033375,0.087802 +0.995482,-0.003005,0.033719,0.088713 +0.995388,-0.003067,0.034064,0.089624 +0.995294,-0.003130,0.034409,0.090535 +0.995198,-0.003193,0.034753,0.091446 +0.995102,-0.003257,0.035098,0.092357 +0.995005,-0.003322,0.035442,0.093267 +0.994906,-0.003388,0.035786,0.094178 +0.994807,-0.003453,0.036130,0.095088 +0.994707,-0.003520,0.036474,0.095998 +0.994606,-0.003587,0.036818,0.096909 +0.994503,-0.003655,0.037162,0.097819 +0.994400,-0.003724,0.037506,0.098729 +0.994296,-0.003793,0.037849,0.099638 +0.994191,-0.003863,0.038193,0.100548 +0.994085,-0.003933,0.038536,0.101458 +0.993979,-0.004004,0.038880,0.102367 +0.993871,-0.004076,0.039223,0.103276 +0.993762,-0.004148,0.039566,0.104186 +0.993652,-0.004221,0.039909,0.105095 +0.993541,-0.004295,0.040252,0.106004 +0.993430,-0.004369,0.040595,0.106912 +0.993317,-0.004444,0.040938,0.107821 +0.993204,-0.004519,0.041280,0.108730 +0.993089,-0.004595,0.041623,0.109638 +0.992974,-0.004672,0.041965,0.110546 +0.992857,-0.004749,0.042307,0.111455 +0.992740,-0.004827,0.042650,0.112363 +0.992622,-0.004906,0.042992,0.113270 +0.992502,-0.004985,0.043334,0.114178 +0.992382,-0.005065,0.043675,0.115086 +0.992261,-0.005146,0.044017,0.115993 +0.992139,-0.005227,0.044359,0.116901 +0.992016,-0.005308,0.044700,0.117808 +0.991892,-0.005391,0.045042,0.118715 +0.991767,-0.005474,0.045383,0.119622 +0.991641,-0.005557,0.045724,0.120529 +0.991514,-0.005642,0.046065,0.121435 +0.991386,-0.005727,0.046406,0.122342 +0.991257,-0.005812,0.046747,0.123248 +0.991128,-0.005898,0.047087,0.124154 +0.990997,-0.005985,0.047428,0.125060 +0.990865,-0.006073,0.047768,0.125966 +0.990733,-0.006161,0.048108,0.126872 +0.990599,-0.006249,0.048448,0.127777 +0.990465,-0.006339,0.048788,0.128683 +0.990329,-0.006429,0.049128,0.129588 +0.990193,-0.006519,0.049468,0.130493 +0.990056,-0.006610,0.049808,0.131398 +0.989917,-0.006702,0.050147,0.132303 +0.989778,-0.006795,0.050486,0.133208 +0.989638,-0.006888,0.050826,0.134112 +0.989497,-0.006981,0.051165,0.135016 +0.989355,-0.007076,0.051504,0.135921 +0.989212,-0.007171,0.051842,0.136825 +0.989068,-0.007266,0.052181,0.137728 +0.988923,-0.007362,0.052520,0.138632 +0.988777,-0.007459,0.052858,0.139536 +0.988630,-0.007557,0.053196,0.140439 +0.988483,-0.007655,0.053534,0.141342 +0.988334,-0.007754,0.053872,0.142245 +0.988184,-0.007853,0.054210,0.143148 +0.988034,-0.007953,0.054548,0.144050 +0.987882,-0.008053,0.054885,0.144953 +0.987730,-0.008155,0.055223,0.145855 +0.987576,-0.008256,0.055560,0.146757 +0.987422,-0.008359,0.055897,0.147659 +0.987267,-0.008462,0.056234,0.148561 +0.987111,-0.008566,0.056571,0.149463 +0.986953,-0.008670,0.056907,0.150364 +0.986795,-0.008775,0.057244,0.151265 +0.986636,-0.008880,0.057580,0.152166 +0.986476,-0.008987,0.057916,0.153067 +0.986315,-0.009093,0.058252,0.153968 +0.986153,-0.009201,0.058588,0.154868 +0.985991,-0.009309,0.058924,0.155769 +0.985827,-0.009418,0.059260,0.156669 +0.985662,-0.009527,0.059595,0.157569 +0.985496,-0.009637,0.059930,0.158468 +0.985330,-0.009747,0.060265,0.159368 +0.985162,-0.009859,0.060600,0.160267 +0.984994,-0.009970,0.060935,0.161167 +0.984824,-0.010083,0.061270,0.162066 +0.984654,-0.010196,0.061604,0.162964 +0.984483,-0.010309,0.061938,0.163863 +0.984311,-0.010424,0.062273,0.164761 +0.984137,-0.010539,0.062606,0.165659 +0.983963,-0.010654,0.062940,0.166557 +0.983788,-0.010770,0.063274,0.167455 +0.983612,-0.010887,0.063607,0.168353 +0.983435,-0.011004,0.063941,0.169250 +0.983257,-0.011122,0.064274,0.170147 +0.983079,-0.011241,0.064607,0.171044 +0.982899,-0.011360,0.064939,0.171941 +0.982718,-0.011480,0.065272,0.172838 +0.982537,-0.011600,0.065604,0.173734 +0.982354,-0.011721,0.065937,0.174630 +0.982170,-0.011843,0.066269,0.175526 +0.981986,-0.011965,0.066601,0.176422 +0.981801,-0.012088,0.066932,0.177317 +0.981614,-0.012212,0.067264,0.178213 +0.981427,-0.012336,0.067595,0.179108 +0.981239,-0.012461,0.067927,0.180003 +0.981050,-0.012586,0.068258,0.180897 +0.980860,-0.012712,0.068588,0.181792 +0.980669,-0.012839,0.068919,0.182686 +0.980477,-0.012966,0.069250,0.183580 +0.980284,-0.013094,0.069580,0.184474 +0.980090,-0.013222,0.069910,0.185367 +0.979895,-0.013351,0.070240,0.186260 +0.979700,-0.013481,0.070570,0.187154 +0.979503,-0.013611,0.070899,0.188046 +0.979306,-0.013742,0.071228,0.188939 +0.979107,-0.013874,0.071558,0.189832 +0.978908,-0.014006,0.071887,0.190724 +0.978708,-0.014139,0.072215,0.191616 +0.978506,-0.014272,0.072544,0.192507 +0.978304,-0.014406,0.072872,0.193399 +0.978101,-0.014541,0.073200,0.194290 +0.977897,-0.014676,0.073528,0.195181 +0.977692,-0.014812,0.073856,0.196072 +0.977486,-0.014948,0.074184,0.196963 +0.977279,-0.015085,0.074511,0.197853 +0.977071,-0.015223,0.074838,0.198743 +0.976863,-0.015361,0.075165,0.199633 +0.976653,-0.015500,0.075492,0.200523 +0.976443,-0.015639,0.075819,0.201412 +0.976231,-0.015779,0.076145,0.202301 +0.976019,-0.015920,0.076472,0.203190 +0.975805,-0.016061,0.076798,0.204079 +0.975591,-0.016203,0.077123,0.204967 +0.975376,-0.016346,0.077449,0.205855 +0.975160,-0.016489,0.077774,0.206743 +0.974943,-0.016633,0.078100,0.207631 +0.974725,-0.016777,0.078424,0.208518 +0.974506,-0.016922,0.078749,0.209405 +0.974286,-0.017067,0.079074,0.210292 +0.974065,-0.017214,0.079398,0.211179 +0.973844,-0.017360,0.079722,0.212065 +0.973621,-0.017508,0.080046,0.212951 +0.973397,-0.017656,0.080370,0.213837 +0.973173,-0.017804,0.080693,0.214723 +0.972948,-0.017954,0.081017,0.215608 +0.972721,-0.018103,0.081340,0.216493 +0.972494,-0.018254,0.081663,0.217378 +0.972266,-0.018405,0.081985,0.218263 +0.972037,-0.018556,0.082308,0.219147 +0.971807,-0.018709,0.082630,0.220031 +0.971576,-0.018861,0.082952,0.220915 +0.971344,-0.019015,0.083274,0.221799 +0.971111,-0.019169,0.083595,0.222682 +0.970878,-0.019323,0.083916,0.223565 +0.970643,-0.019479,0.084237,0.224448 +0.970408,-0.019635,0.084558,0.225330 +0.970171,-0.019791,0.084879,0.226212 +0.969934,-0.019948,0.085199,0.227094 +0.969695,-0.020106,0.085520,0.227976 +0.969456,-0.020264,0.085840,0.228857 +0.969216,-0.020423,0.086159,0.229738 +0.968975,-0.020582,0.086479,0.230619 +0.968733,-0.020742,0.086798,0.231500 +0.968490,-0.020903,0.087117,0.232380 +0.968246,-0.021064,0.087436,0.233260 +0.968002,-0.021226,0.087754,0.234140 +0.967756,-0.021388,0.088073,0.235019 +0.967510,-0.021551,0.088391,0.235898 +0.967262,-0.021715,0.088709,0.236777 +0.967014,-0.021879,0.089026,0.237656 +0.966764,-0.022044,0.089344,0.238534 +0.966514,-0.022210,0.089661,0.239412 +0.966263,-0.022376,0.089978,0.240290 +0.966011,-0.022542,0.090294,0.241167 +0.965758,-0.022709,0.090611,0.242044 +0.965504,-0.022877,0.090927,0.242921 +0.965249,-0.023046,0.091243,0.243798 +0.964994,-0.023215,0.091559,0.244674 +0.964737,-0.023384,0.091874,0.245550 +0.964480,-0.023554,0.092189,0.246425 +0.964221,-0.023725,0.092504,0.247301 +0.963962,-0.023897,0.092819,0.248176 +0.963702,-0.024069,0.093133,0.249051 +0.963440,-0.024241,0.093448,0.249925 +0.963178,-0.024414,0.093762,0.250799 +0.962915,-0.024588,0.094075,0.251673 +0.962651,-0.024762,0.094389,0.252547 +0.962387,-0.024937,0.094702,0.253420 +0.962121,-0.025113,0.095015,0.254293 +0.961854,-0.025289,0.095328,0.255166 +0.961587,-0.025466,0.095640,0.256038 +0.961318,-0.025643,0.095952,0.256910 +0.961049,-0.025821,0.096264,0.257782 +0.960779,-0.025999,0.096576,0.258653 +0.960507,-0.026179,0.096887,0.259525 +0.960235,-0.026358,0.097199,0.260395 +0.959962,-0.026538,0.097509,0.261266 +0.959688,-0.026719,0.097820,0.262136 +0.959414,-0.026901,0.098130,0.263006 +0.959138,-0.027083,0.098441,0.263875 +0.958861,-0.027265,0.098750,0.264745 +0.958584,-0.027448,0.099060,0.265614 +0.958305,-0.027632,0.099369,0.266482 +0.958026,-0.027817,0.099678,0.267351 +0.957746,-0.028002,0.099987,0.268219 +0.957465,-0.028187,0.100296,0.269086 +0.957183,-0.028373,0.100604,0.269953 +0.956900,-0.028560,0.100912,0.270820 +0.956616,-0.028747,0.101220,0.271687 +0.956331,-0.028935,0.101527,0.272553 +0.956046,-0.029124,0.101834,0.273420 +0.955759,-0.029313,0.102141,0.274285 +0.955472,-0.029502,0.102448,0.275151 +0.955183,-0.029692,0.102754,0.276016 +0.954894,-0.029883,0.103060,0.276880 +0.954604,-0.030075,0.103366,0.277745 +0.954313,-0.030267,0.103672,0.278609 +0.954021,-0.030459,0.103977,0.279472 +0.953728,-0.030652,0.104282,0.280336 +0.953435,-0.030846,0.104586,0.281199 +0.953140,-0.031040,0.104891,0.282062 +0.952844,-0.031235,0.105195,0.282924 +0.952548,-0.031431,0.105499,0.283786 +0.952251,-0.031627,0.105802,0.284648 +0.951952,-0.031823,0.106106,0.285509 +0.951653,-0.032020,0.106409,0.286370 +0.951353,-0.032218,0.106711,0.287231 +0.951053,-0.032416,0.107014,0.288091 +0.950751,-0.032615,0.107316,0.288951 +0.950448,-0.032815,0.107618,0.289810 +0.950145,-0.033015,0.107919,0.290670 +0.949840,-0.033215,0.108221,0.291529 +0.949535,-0.033417,0.108522,0.292387 +0.949228,-0.033618,0.108822,0.293245 +0.948921,-0.033821,0.109123,0.294103 +0.948613,-0.034024,0.109423,0.294961 +0.948304,-0.034227,0.109723,0.295818 +0.947995,-0.034431,0.110022,0.296675 +0.947684,-0.034636,0.110321,0.297531 +0.947372,-0.034841,0.110620,0.298387 +0.947060,-0.035047,0.110919,0.299243 +0.946746,-0.035253,0.111217,0.300098 +0.946432,-0.035460,0.111515,0.300953 +0.946117,-0.035668,0.111813,0.301808 +0.945801,-0.035876,0.112110,0.302662 +0.945484,-0.036085,0.112407,0.303516 +0.945166,-0.036294,0.112704,0.304370 +0.944848,-0.036504,0.113001,0.305223 +0.944528,-0.036714,0.113297,0.306076 +0.944208,-0.036925,0.113593,0.306928 +0.943886,-0.037137,0.113889,0.307780 +0.943564,-0.037349,0.114184,0.308632 +0.943241,-0.037561,0.114479,0.309484 +0.942917,-0.037774,0.114773,0.310335 +0.942592,-0.037988,0.115068,0.311185 +0.942266,-0.038203,0.115362,0.312035 +0.941940,-0.038417,0.115656,0.312885 +0.941612,-0.038633,0.115949,0.313735 +0.941284,-0.038849,0.116242,0.314584 +0.940955,-0.039066,0.116535,0.315433 +0.940625,-0.039283,0.116828,0.316281 +0.940294,-0.039501,0.117120,0.317129 +0.939962,-0.039719,0.117412,0.317977 +0.939629,-0.039938,0.117703,0.318824 +0.939295,-0.040157,0.117994,0.319671 +0.938961,-0.040377,0.118285,0.320517 +0.938625,-0.040598,0.118576,0.321363 +0.938289,-0.040819,0.118866,0.322209 +0.937952,-0.041040,0.119156,0.323054 +0.937614,-0.041263,0.119446,0.323899 +0.937275,-0.041485,0.119735,0.324744 +0.936935,-0.041709,0.120024,0.325588 +0.936594,-0.041933,0.120313,0.326432 +0.936253,-0.042157,0.120601,0.327275 +0.935910,-0.042382,0.120889,0.328118 +0.935567,-0.042608,0.121177,0.328961 +0.935223,-0.042834,0.121464,0.329803 +0.934878,-0.043061,0.121751,0.330645 +0.934532,-0.043288,0.122038,0.331486 +0.934185,-0.043516,0.122324,0.332327 +0.933838,-0.043744,0.122610,0.333168 +0.933489,-0.043973,0.122896,0.334008 +0.933140,-0.044202,0.123182,0.334848 +0.932789,-0.044432,0.123467,0.335687 +0.932438,-0.044663,0.123751,0.336526 +0.932086,-0.044894,0.124036,0.337365 +0.931733,-0.045126,0.124320,0.338203 +0.931380,-0.045358,0.124604,0.339041 +0.931025,-0.045591,0.124887,0.339878 +0.930670,-0.045824,0.125170,0.340715 +0.930313,-0.046058,0.125453,0.341551 +0.929956,-0.046293,0.125735,0.342388 +0.929598,-0.046528,0.126017,0.343223 +0.929239,-0.046763,0.126299,0.344059 +0.928879,-0.046999,0.126580,0.344894 +0.928519,-0.047236,0.126861,0.345728 +0.928157,-0.047473,0.127142,0.346562 +0.927795,-0.047711,0.127422,0.347396 +0.927432,-0.047949,0.127702,0.348229 +0.927068,-0.048188,0.127982,0.349062 +0.926703,-0.048427,0.128261,0.349895 +0.926337,-0.048667,0.128540,0.350727 +0.925970,-0.048908,0.128818,0.351558 +0.925603,-0.049149,0.129097,0.352389 +0.925234,-0.049390,0.129375,0.353220 +0.924865,-0.049633,0.129652,0.354050 +0.924495,-0.049875,0.129929,0.354880 +0.924124,-0.050118,0.130206,0.355710 +0.923752,-0.050362,0.130483,0.356539 +0.923379,-0.050606,0.130759,0.357368 +0.923006,-0.050851,0.131034,0.358196 +0.922632,-0.051097,0.131310,0.359024 +0.922256,-0.051343,0.131585,0.359851 +0.921880,-0.051589,0.131860,0.360678 +0.921503,-0.051836,0.132134,0.361504 +0.921125,-0.052084,0.132408,0.362330 +0.920747,-0.052332,0.132682,0.363156 +0.920367,-0.052580,0.132955,0.363981 +0.919987,-0.052829,0.133228,0.364806 +0.919606,-0.053079,0.133500,0.365630 +0.919224,-0.053329,0.133773,0.366454 +0.918841,-0.053580,0.134044,0.367278 +0.918457,-0.053831,0.134316,0.368101 +0.918072,-0.054083,0.134587,0.368923 +0.917687,-0.054336,0.134858,0.369745 +0.917301,-0.054588,0.135128,0.370567 +0.916914,-0.054842,0.135398,0.371388 +0.916526,-0.055096,0.135668,0.372209 +0.916137,-0.055350,0.135937,0.373029 +0.915747,-0.055605,0.136206,0.373849 +0.915357,-0.055861,0.136474,0.374669 +0.914965,-0.056117,0.136742,0.375488 +0.914573,-0.056374,0.137010,0.376306 +0.914180,-0.056631,0.137278,0.377124 +0.913786,-0.056889,0.137545,0.377942 +0.913391,-0.057147,0.137811,0.378759 +0.912996,-0.057405,0.138078,0.379576 +0.912599,-0.057665,0.138344,0.380392 +0.912202,-0.057925,0.138609,0.381208 +0.911804,-0.058185,0.138874,0.382024 +0.911405,-0.058446,0.139139,0.382839 +0.911005,-0.058707,0.139403,0.383653 +0.910605,-0.058969,0.139667,0.384467 +0.910203,-0.059232,0.139931,0.385281 +0.909801,-0.059495,0.140194,0.386094 +0.909398,-0.059758,0.140457,0.386906 +0.908994,-0.060022,0.140720,0.387719 +0.908589,-0.060287,0.140982,0.388530 +0.908183,-0.060552,0.141243,0.389342 +0.907777,-0.060817,0.141505,0.390152 +0.907369,-0.061083,0.141766,0.390963 +0.906961,-0.061350,0.142026,0.391773 +0.906552,-0.061617,0.142287,0.392582 +0.906143,-0.061885,0.142546,0.393391 +0.905732,-0.062153,0.142806,0.394199 +0.905320,-0.062422,0.143065,0.395007 +0.904908,-0.062691,0.143323,0.395815 +0.904495,-0.062961,0.143582,0.396622 +0.904081,-0.063231,0.143839,0.397429 +0.903666,-0.063502,0.144097,0.398235 +0.903251,-0.063773,0.144354,0.399040 +0.902834,-0.064045,0.144611,0.399845 +0.902417,-0.064317,0.144867,0.400650 +0.901999,-0.064590,0.145123,0.401454 +0.901580,-0.064863,0.145378,0.402258 +0.901160,-0.065137,0.145633,0.403061 +0.900740,-0.065412,0.145888,0.403864 +0.900318,-0.065687,0.146142,0.404666 +0.899896,-0.065962,0.146396,0.405468 +0.899473,-0.066238,0.146650,0.406269 +0.899049,-0.066514,0.146903,0.407070 +0.898624,-0.066791,0.147155,0.407871 +0.898199,-0.067069,0.147408,0.408670 +0.897773,-0.067347,0.147660,0.409470 +0.897345,-0.067625,0.147911,0.410269 +0.896917,-0.067904,0.148162,0.411067 +0.896489,-0.068184,0.148413,0.411865 +0.896059,-0.068464,0.148663,0.412662 +0.895629,-0.068744,0.148913,0.413459 +0.895197,-0.069025,0.149162,0.414256 +0.894765,-0.069307,0.149411,0.415052 +0.894332,-0.069589,0.149660,0.415847 +0.893899,-0.069871,0.149908,0.416642 +0.893464,-0.070155,0.150156,0.417436 +0.893029,-0.070438,0.150403,0.418230 +0.892593,-0.070722,0.150650,0.419024 +0.892156,-0.071007,0.150897,0.419817 +0.891718,-0.071292,0.151143,0.420609 +0.891280,-0.071577,0.151389,0.421401 +0.890840,-0.071863,0.151634,0.422193 +0.890400,-0.072150,0.151879,0.422983 +0.889959,-0.072437,0.152123,0.423774 +0.889517,-0.072725,0.152368,0.424564 +0.889075,-0.073013,0.152611,0.425353 +0.888631,-0.073301,0.152854,0.426142 +0.888187,-0.073590,0.153097,0.426931 +0.887742,-0.073880,0.153340,0.427718 +0.887296,-0.074170,0.153582,0.428506 +0.886849,-0.074460,0.153823,0.429293 +0.886402,-0.074751,0.154064,0.430079 +0.885954,-0.075043,0.154305,0.430865 +0.885505,-0.075335,0.154545,0.431650 +0.885055,-0.075628,0.154785,0.432435 +0.884604,-0.075921,0.155025,0.433219 +0.884153,-0.076214,0.155264,0.434003 +0.883700,-0.076508,0.155502,0.434787 +0.883247,-0.076803,0.155740,0.435569 +0.882793,-0.077098,0.155978,0.436352 +0.882339,-0.077393,0.156215,0.437133 +0.881883,-0.077689,0.156452,0.437915 +0.881427,-0.077986,0.156689,0.438695 +0.880970,-0.078282,0.156925,0.439475 +0.880512,-0.078580,0.157160,0.440255 +0.880053,-0.078878,0.157395,0.441034 +0.879594,-0.079176,0.157630,0.441813 +0.879134,-0.079475,0.157864,0.442591 +0.878673,-0.079775,0.158098,0.443368 +0.878211,-0.080074,0.158332,0.444145 +0.877748,-0.080375,0.158565,0.444922 +0.877285,-0.080676,0.158797,0.445698 +0.876820,-0.080977,0.159029,0.446473 +0.876355,-0.081279,0.159261,0.447248 +0.875890,-0.081581,0.159492,0.448022 +0.875423,-0.081884,0.159723,0.448796 +0.874956,-0.082187,0.159953,0.449570 +0.874488,-0.082491,0.160183,0.450342 +0.874019,-0.082795,0.160412,0.451115 +0.873549,-0.083100,0.160641,0.451886 +0.873078,-0.083405,0.160870,0.452657 +0.872607,-0.083711,0.161098,0.453428 +0.872135,-0.084017,0.161326,0.454198 +0.871662,-0.084323,0.161553,0.454968 +0.871188,-0.084630,0.161780,0.455737 +0.870714,-0.084938,0.162006,0.456505 +0.870239,-0.085246,0.162232,0.457273 +0.869763,-0.085554,0.162457,0.458040 +0.869286,-0.085863,0.162682,0.458807 +0.868808,-0.086173,0.162907,0.459574 +0.868330,-0.086483,0.163131,0.460339 +0.867851,-0.086793,0.163355,0.461104 +0.867371,-0.087104,0.163578,0.461869 +0.866890,-0.087415,0.163801,0.462633 +0.866409,-0.087727,0.164023,0.463397 +0.865926,-0.088040,0.164245,0.464160 +0.865443,-0.088352,0.164466,0.464922 +0.864960,-0.088666,0.164687,0.465684 +0.864475,-0.088979,0.164907,0.466445 +0.863990,-0.089293,0.165127,0.467206 +0.863503,-0.089608,0.165347,0.467966 +0.863017,-0.089923,0.165566,0.468726 +0.862529,-0.090239,0.165785,0.469485 +0.862040,-0.090555,0.166003,0.470244 +0.861551,-0.090871,0.166221,0.471002 +0.861061,-0.091188,0.166438,0.471759 +0.860571,-0.091506,0.166655,0.472516 +0.860079,-0.091823,0.166871,0.473272 +0.859587,-0.092142,0.167087,0.474028 +0.859094,-0.092461,0.167302,0.474783 +0.858600,-0.092780,0.167517,0.475538 +0.858105,-0.093100,0.167732,0.476292 +0.857610,-0.093420,0.167946,0.477045 +0.857114,-0.093740,0.168159,0.477798 +0.856617,-0.094061,0.168372,0.478551 +0.856119,-0.094383,0.168585,0.479303 +0.855621,-0.094705,0.168797,0.480054 +0.855122,-0.095027,0.169008,0.480804 +0.854622,-0.095350,0.169220,0.481555 +0.854121,-0.095674,0.169430,0.482304 +0.853620,-0.095998,0.169641,0.483053 +0.853117,-0.096322,0.169850,0.483801 +0.852614,-0.096647,0.170060,0.484549 +0.852111,-0.096972,0.170269,0.485296 +0.851606,-0.097297,0.170477,0.486043 +0.851101,-0.097624,0.170685,0.486789 +0.850595,-0.097950,0.170892,0.487535 +0.850088,-0.098277,0.171099,0.488280 +0.849581,-0.098605,0.171305,0.489024 +0.849072,-0.098932,0.171511,0.489768 +0.848563,-0.099261,0.171717,0.490511 +0.848054,-0.099590,0.171922,0.491253 +0.847543,-0.099919,0.172127,0.491995 +0.847032,-0.100248,0.172331,0.492737 +0.846520,-0.100579,0.172534,0.493478 +0.846007,-0.100909,0.172737,0.494218 +0.845493,-0.101240,0.172940,0.494958 +0.844979,-0.101572,0.173142,0.495697 +0.844464,-0.101904,0.173344,0.496435 +0.843948,-0.102236,0.173545,0.497173 +0.843432,-0.102569,0.173745,0.497911 +0.842915,-0.102902,0.173946,0.498647 +0.842397,-0.103236,0.174145,0.499383 +0.841878,-0.103570,0.174345,0.500119 +0.841358,-0.103904,0.174543,0.500854 +0.840838,-0.104239,0.174741,0.501588 +0.840317,-0.104575,0.174939,0.502322 +0.839795,-0.104910,0.175136,0.503055 +0.839273,-0.105247,0.175333,0.503788 +0.838750,-0.105583,0.175530,0.504520 +0.838226,-0.105921,0.175725,0.505251 +0.837701,-0.106258,0.175921,0.505982 +0.837176,-0.106596,0.176115,0.506712 +0.836650,-0.106935,0.176310,0.507442 +0.836123,-0.107274,0.176504,0.508171 +0.835595,-0.107613,0.176697,0.508899 +0.835067,-0.107953,0.176890,0.509627 +0.834538,-0.108293,0.177082,0.510354 +0.834008,-0.108634,0.177274,0.511081 +0.833477,-0.108975,0.177465,0.511807 +0.832946,-0.109316,0.177656,0.512532 +0.832414,-0.109658,0.177846,0.513257 +0.831881,-0.110000,0.178036,0.513981 +0.831348,-0.110343,0.178226,0.514705 +0.830814,-0.110686,0.178414,0.515427 +0.830279,-0.111030,0.178603,0.516150 +0.829743,-0.111374,0.178791,0.516872 +0.829207,-0.111718,0.178978,0.517593 +0.828670,-0.112063,0.179165,0.518313 +0.828132,-0.112409,0.179351,0.519033 +0.827593,-0.112754,0.179537,0.519752 +0.827054,-0.113100,0.179722,0.520471 +0.826514,-0.113447,0.179907,0.521189 +0.825973,-0.113794,0.180091,0.521906 +0.825432,-0.114141,0.180275,0.522623 +0.824890,-0.114489,0.180458,0.523339 +0.824347,-0.114837,0.180641,0.524055 +0.823803,-0.115186,0.180823,0.524770 +0.823259,-0.115535,0.181005,0.525484 +0.822714,-0.115885,0.181186,0.526198 +0.822168,-0.116235,0.181367,0.526911 +0.821622,-0.116585,0.181547,0.527624 +0.821074,-0.116936,0.181727,0.528335 +0.820526,-0.117287,0.181906,0.529047 +0.819978,-0.117638,0.182085,0.529757 +0.819428,-0.117990,0.182263,0.530467 +0.818878,-0.118343,0.182441,0.531176 +0.818328,-0.118696,0.182618,0.531885 +0.817776,-0.119049,0.182795,0.532593 +0.817224,-0.119402,0.182971,0.533301 +0.816671,-0.119756,0.183146,0.534008 +0.816118,-0.120111,0.183321,0.534714 +0.815563,-0.120466,0.183496,0.535419 +0.815008,-0.120821,0.183670,0.536124 +0.814453,-0.121176,0.183844,0.536829 +0.813896,-0.121533,0.184017,0.537532 +0.813339,-0.121889,0.184189,0.538235 +0.812781,-0.122246,0.184361,0.538938 +0.812223,-0.122603,0.184532,0.539639 +0.811663,-0.122961,0.184703,0.540341 +0.811103,-0.123319,0.184874,0.541041 +0.810543,-0.123677,0.185044,0.541741 +0.809981,-0.124036,0.185213,0.542440 +0.809419,-0.124395,0.185382,0.543139 +0.808857,-0.124755,0.185550,0.543837 +0.808293,-0.125115,0.185718,0.544534 +0.807729,-0.125476,0.185885,0.545230 +0.807164,-0.125836,0.186052,0.545926 +0.806599,-0.126198,0.186218,0.546622 +0.806033,-0.126559,0.186384,0.547317 +0.805466,-0.126921,0.186549,0.548011 +0.804898,-0.127284,0.186713,0.548704 +0.804330,-0.127647,0.186877,0.549397 +0.803761,-0.128010,0.187041,0.550089 +0.803191,-0.128373,0.187204,0.550780 +0.802621,-0.128737,0.187366,0.551471 +0.802050,-0.129102,0.187528,0.552161 +0.801478,-0.129466,0.187690,0.552851 +0.800905,-0.129832,0.187851,0.553540 +0.800332,-0.130197,0.188011,0.554228 +0.799759,-0.130563,0.188171,0.554916 +0.799184,-0.130929,0.188330,0.555603 +0.798609,-0.131296,0.188489,0.556289 +0.798033,-0.131663,0.188647,0.556974 +0.797456,-0.132031,0.188805,0.557659 +0.796879,-0.132398,0.188962,0.558344 +0.796301,-0.132767,0.189118,0.559027 +0.795723,-0.133135,0.189274,0.559710 +0.795143,-0.133504,0.189430,0.560393 +0.794563,-0.133874,0.189585,0.561074 +0.793983,-0.134243,0.189739,0.561755 +0.793402,-0.134614,0.189893,0.562436 +0.792820,-0.134984,0.190046,0.563115 +0.792237,-0.135355,0.190199,0.563794 +0.791654,-0.135726,0.190352,0.564473 +0.791070,-0.136098,0.190503,0.565150 +0.790485,-0.136470,0.190654,0.565827 +0.789900,-0.136842,0.190805,0.566504 +0.789314,-0.137215,0.190955,0.567179 +0.788727,-0.137588,0.191105,0.567854 +0.788139,-0.137962,0.191254,0.568529 +0.787551,-0.138336,0.191402,0.569202 +0.786963,-0.138710,0.191550,0.569875 +0.786373,-0.139085,0.191697,0.570548 +0.785783,-0.139460,0.191844,0.571219 +0.785193,-0.139835,0.191990,0.571890 +0.784601,-0.140211,0.192136,0.572561 +0.784009,-0.140587,0.192281,0.573230 +0.783416,-0.140963,0.192426,0.573899 +0.782823,-0.141340,0.192570,0.574568 +0.782229,-0.141717,0.192713,0.575235 +0.781634,-0.142095,0.192856,0.575902 +0.781039,-0.142473,0.192998,0.576568 +0.780443,-0.142851,0.193140,0.577234 +0.779846,-0.143230,0.193281,0.577899 +0.779249,-0.143609,0.193422,0.578563 +0.778651,-0.143988,0.193562,0.579227 +0.778052,-0.144368,0.193702,0.579890 +0.777453,-0.144748,0.193841,0.580552 +0.776853,-0.145128,0.193979,0.581213 +0.776253,-0.145509,0.194117,0.581874 +0.775651,-0.145890,0.194255,0.582534 +0.775049,-0.146272,0.194391,0.583194 +0.774447,-0.146654,0.194528,0.583853 +0.773844,-0.147036,0.194663,0.584511 +0.773240,-0.147418,0.194798,0.585168 +0.772635,-0.147801,0.194933,0.585825 +0.772030,-0.148185,0.195067,0.586481 +0.771424,-0.148568,0.195200,0.587136 +0.770818,-0.148952,0.195333,0.587791 +0.770211,-0.149337,0.195466,0.588445 +0.769603,-0.149721,0.195597,0.589098 +0.768995,-0.150106,0.195728,0.589751 +0.768386,-0.150492,0.195859,0.590402 +0.767776,-0.150877,0.195989,0.591054 +0.767166,-0.151263,0.196119,0.591704 +0.766555,-0.151650,0.196247,0.592354 +0.765943,-0.152037,0.196376,0.593003 +0.765331,-0.152424,0.196504,0.593651 +0.764718,-0.152811,0.196631,0.594299 +0.764104,-0.153199,0.196757,0.594946 +0.763490,-0.153587,0.196883,0.595593 +0.762876,-0.153976,0.197009,0.596238 +0.762260,-0.154364,0.197134,0.596883 +0.761644,-0.154754,0.197258,0.597527 +0.761027,-0.155143,0.197382,0.598171 +0.760410,-0.155533,0.197505,0.598814 +0.759792,-0.155923,0.197628,0.599456 +0.759174,-0.156314,0.197750,0.600097 +0.758554,-0.156704,0.197871,0.600738 +0.757934,-0.157096,0.197992,0.601378 +0.757314,-0.157487,0.198113,0.602017 +0.756693,-0.157879,0.198232,0.602656 +0.756071,-0.158271,0.198352,0.603294 +0.755449,-0.158664,0.198470,0.603931 +0.754826,-0.159056,0.198588,0.604567 +0.754202,-0.159450,0.198706,0.605203 +0.753578,-0.159843,0.198823,0.605838 +0.752953,-0.160237,0.198939,0.606473 +0.752328,-0.160631,0.199055,0.607106 +0.751702,-0.161026,0.199170,0.607739 +0.751075,-0.161420,0.199284,0.608371 +0.750448,-0.161816,0.199398,0.609003 +0.749820,-0.162211,0.199512,0.609634 +0.749191,-0.162607,0.199624,0.610264 +0.748562,-0.163003,0.199737,0.610893 +0.747932,-0.163399,0.199848,0.611522 +0.747302,-0.163796,0.199959,0.612150 +0.746671,-0.164193,0.200070,0.612777 +0.746039,-0.164590,0.200180,0.613403 +0.745407,-0.164988,0.200289,0.614029 +0.744774,-0.165386,0.200398,0.614654 +0.744141,-0.165785,0.200506,0.615279 +0.743506,-0.166183,0.200613,0.615902 +0.742872,-0.166582,0.200720,0.616525 +0.742237,-0.166981,0.200827,0.617147 +0.741601,-0.167381,0.200933,0.617769 +0.740964,-0.167781,0.201038,0.618389 +0.740327,-0.168181,0.201142,0.619009 +0.739689,-0.168582,0.201246,0.619629 +0.739051,-0.168983,0.201350,0.620247 +0.738412,-0.169384,0.201453,0.620865 +0.737773,-0.169785,0.201555,0.621482 +0.737132,-0.170187,0.201657,0.622099 +0.736492,-0.170589,0.201758,0.622714 +0.735850,-0.170991,0.201858,0.623329 +0.735208,-0.171394,0.201958,0.623943 +0.734566,-0.171797,0.202057,0.624557 +0.733923,-0.172200,0.202156,0.625170 +0.733279,-0.172604,0.202254,0.625782 +0.732635,-0.173008,0.202352,0.626393 +0.731990,-0.173412,0.202449,0.627004 +0.731344,-0.173817,0.202545,0.627613 +0.730698,-0.174222,0.202641,0.628222 +0.730052,-0.174627,0.202736,0.628831 +0.729404,-0.175032,0.202830,0.629438 +0.728757,-0.175438,0.202924,0.630045 +0.728108,-0.175844,0.203018,0.630651 +0.727459,-0.176250,0.203110,0.631257 +0.726810,-0.176657,0.203202,0.631862 +0.726159,-0.177064,0.203294,0.632466 +0.725509,-0.177471,0.203385,0.633069 +0.724857,-0.177878,0.203475,0.633671 +0.724205,-0.178286,0.203565,0.634273 +0.723553,-0.178694,0.203654,0.634874 +0.722900,-0.179103,0.203743,0.635474 +0.722246,-0.179511,0.203831,0.636074 +0.721592,-0.179920,0.203918,0.636672 +0.720937,-0.180329,0.204005,0.637270 +0.720281,-0.180739,0.204091,0.637868 +0.719625,-0.181149,0.204176,0.638464 +0.718969,-0.181559,0.204261,0.639060 +0.718312,-0.181969,0.204345,0.639655 +0.717654,-0.182380,0.204429,0.640249 +0.716996,-0.182791,0.204512,0.640843 +0.716337,-0.183202,0.204595,0.641436 +0.715677,-0.183614,0.204677,0.642028 +0.715017,-0.184025,0.204758,0.642619 +0.714357,-0.184437,0.204838,0.643210 +0.713695,-0.184850,0.204919,0.643799 +0.713034,-0.185262,0.204998,0.644388 +0.712371,-0.185675,0.205077,0.644977 +0.711709,-0.186088,0.205155,0.645564 +0.711045,-0.186502,0.205233,0.646151 +0.710381,-0.186916,0.205310,0.646737 +0.709717,-0.187330,0.205386,0.647323 +0.709052,-0.187744,0.205462,0.647907 +0.708386,-0.188159,0.205537,0.648491 +0.707720,-0.188573,0.205612,0.649074 +0.707053,-0.188988,0.205686,0.649656 +0.706385,-0.189404,0.205759,0.650238 +0.705718,-0.189820,0.205832,0.650818 +0.705049,-0.190235,0.205904,0.651398 +0.704380,-0.190652,0.205975,0.651978 +0.703710,-0.191068,0.206046,0.652556 +0.703040,-0.191485,0.206116,0.653134 +0.702370,-0.191902,0.206186,0.653711 +0.701698,-0.192319,0.206255,0.654287 +0.701027,-0.192737,0.206323,0.654863 +0.700354,-0.193154,0.206391,0.655437 +0.699681,-0.193572,0.206458,0.656011 +0.699008,-0.193991,0.206525,0.656584 +0.698334,-0.194409,0.206591,0.657157 +0.697659,-0.194828,0.206656,0.657728 +0.696984,-0.195247,0.206721,0.658299 +0.696309,-0.195666,0.206785,0.658869 +0.695633,-0.196086,0.206848,0.659439 +0.694956,-0.196506,0.206911,0.660007 +0.694279,-0.196926,0.206973,0.660575 +0.693601,-0.197346,0.207035,0.661142 +0.692922,-0.197767,0.207096,0.661708 +0.692244,-0.198188,0.207156,0.662274 +0.691564,-0.198609,0.207216,0.662839 +0.690884,-0.199030,0.207275,0.663403 +0.690204,-0.199452,0.207334,0.663966 +0.689523,-0.199874,0.207392,0.664528 +0.688841,-0.200296,0.207449,0.665090 +0.688159,-0.200718,0.207505,0.665651 +0.687476,-0.201141,0.207561,0.666211 +0.686793,-0.201564,0.207617,0.666770 +0.686109,-0.201987,0.207671,0.667329 +0.685425,-0.202410,0.207726,0.667887 +0.684740,-0.202834,0.207779,0.668444 +0.684055,-0.203258,0.207832,0.669000 +0.683369,-0.203682,0.207884,0.669555 +0.682683,-0.204106,0.207936,0.670110 +0.681996,-0.204531,0.207987,0.670664 +0.681309,-0.204955,0.208037,0.671217 +0.680621,-0.205380,0.208087,0.671769 +0.679932,-0.205806,0.208136,0.672321 +0.679243,-0.206231,0.208184,0.672872 +0.678554,-0.206657,0.208232,0.673422 +0.677864,-0.207083,0.208279,0.673971 +0.677173,-0.207509,0.208326,0.674519 +0.676482,-0.207936,0.208372,0.675067 +0.675791,-0.208362,0.208417,0.675614 +0.675099,-0.208789,0.208462,0.676160 +0.674406,-0.209216,0.208506,0.676705 +0.673713,-0.209644,0.208549,0.677250 +0.673019,-0.210071,0.208592,0.677794 +0.672325,-0.210499,0.208634,0.678337 +0.671631,-0.210927,0.208675,0.678879 +0.670936,-0.211356,0.208716,0.679420 +0.670240,-0.211784,0.208756,0.679961 +0.669544,-0.212213,0.208796,0.680501 +0.668847,-0.212642,0.208835,0.681040 +0.668150,-0.213071,0.208873,0.681578 +0.667452,-0.213501,0.208911,0.682115 +0.666754,-0.213930,0.208948,0.682652 +0.666055,-0.214360,0.208984,0.683188 +0.665356,-0.214790,0.209020,0.683723 +0.664656,-0.215220,0.209055,0.684257 +0.663956,-0.215651,0.209090,0.684791 +0.663255,-0.216082,0.209124,0.685323 +0.662554,-0.216513,0.209157,0.685855 +0.661853,-0.216944,0.209189,0.686387 +0.661150,-0.217375,0.209221,0.686917 +0.660448,-0.217807,0.209253,0.687446 +0.659744,-0.218239,0.209283,0.687975 +0.659041,-0.218671,0.209313,0.688503 +0.658337,-0.219103,0.209343,0.689030 +0.657632,-0.219535,0.209371,0.689557 +0.656927,-0.219968,0.209399,0.690082 +0.656221,-0.220401,0.209427,0.690607 +0.655515,-0.220834,0.209454,0.691131 +0.654808,-0.221267,0.209480,0.691654 +0.654101,-0.221701,0.209505,0.692176 +0.653394,-0.222134,0.209530,0.692698 +0.652685,-0.222568,0.209554,0.693219 +0.651977,-0.223002,0.209578,0.693739 +0.651268,-0.223437,0.209601,0.694258 +0.650558,-0.223871,0.209623,0.694776 +0.649848,-0.224306,0.209645,0.695294 +0.649138,-0.224741,0.209666,0.695810 +0.648427,-0.225176,0.209686,0.696326 +0.647715,-0.225611,0.209706,0.696842 +0.647003,-0.226047,0.209725,0.697356 +0.646291,-0.226482,0.209743,0.697869 +0.645578,-0.226918,0.209761,0.698382 +0.644864,-0.227354,0.209778,0.698894 +0.644151,-0.227790,0.209795,0.699405 +0.643436,-0.228227,0.209810,0.699916 +0.642721,-0.228664,0.209825,0.700425 +0.642006,-0.229100,0.209840,0.700934 +0.641290,-0.229538,0.209854,0.701442 +0.640574,-0.229975,0.209867,0.701949 +0.639858,-0.230412,0.209880,0.702455 +0.639140,-0.230850,0.209891,0.702961 +0.638423,-0.231288,0.209903,0.703465 +0.637705,-0.231726,0.209913,0.703969 +0.636986,-0.232164,0.209923,0.704472 +0.636267,-0.232602,0.209933,0.704974 +0.635548,-0.233041,0.209941,0.705476 +0.634828,-0.233479,0.209949,0.705976 +0.634107,-0.233918,0.209957,0.706476 +0.633386,-0.234357,0.209963,0.706975 +0.632665,-0.234797,0.209969,0.707473 +0.631943,-0.235236,0.209975,0.707971 +0.631221,-0.235676,0.209979,0.708467 +0.630498,-0.236115,0.209983,0.708963 +0.629775,-0.236555,0.209987,0.709458 +0.629052,-0.236996,0.209990,0.709952 +0.628328,-0.237436,0.209992,0.710445 +0.627603,-0.237876,0.209993,0.710937 +0.626878,-0.238317,0.209994,0.711429 +0.626153,-0.238758,0.209994,0.711920 +0.625427,-0.239199,0.209993,0.712410 +0.624701,-0.239640,0.209992,0.712899 +0.623974,-0.240081,0.209990,0.713387 +0.623247,-0.240523,0.209988,0.713875 +0.622519,-0.240965,0.209985,0.714362 +0.621791,-0.241406,0.209981,0.714848 +0.621062,-0.241848,0.209976,0.715333 +0.620333,-0.242291,0.209971,0.715817 +0.619604,-0.242733,0.209965,0.716300 +0.618874,-0.243175,0.209959,0.716783 +0.618144,-0.243618,0.209952,0.717265 +0.617413,-0.244061,0.209944,0.717746 +0.616682,-0.244504,0.209936,0.718226 +0.615950,-0.244947,0.209927,0.718705 +0.615218,-0.245390,0.209917,0.719184 +0.614486,-0.245834,0.209906,0.719661 +0.613753,-0.246278,0.209895,0.720138 +0.613020,-0.246721,0.209884,0.720614 +0.612286,-0.247165,0.209871,0.721089 +0.611552,-0.247609,0.209858,0.721564 +0.610817,-0.248054,0.209844,0.722037 +0.610082,-0.248498,0.209830,0.722510 +0.609346,-0.248943,0.209815,0.722982 +0.608610,-0.249387,0.209799,0.723453 +0.607874,-0.249832,0.209783,0.723923 +0.607137,-0.250277,0.209766,0.724392 +0.606400,-0.250722,0.209748,0.724861 +0.605663,-0.251167,0.209729,0.725328 +0.604924,-0.251613,0.209710,0.725795 +0.604186,-0.252059,0.209691,0.726261 +0.603447,-0.252504,0.209670,0.726727 +0.602708,-0.252950,0.209649,0.727191 +0.601968,-0.253396,0.209627,0.727654 +0.601228,-0.253842,0.209605,0.728117 +0.600487,-0.254289,0.209582,0.728579 +0.599747,-0.254735,0.209558,0.729040 +0.599005,-0.255182,0.209534,0.729500 +0.598263,-0.255628,0.209509,0.729960 +0.597521,-0.256075,0.209483,0.730418 +0.596779,-0.256522,0.209457,0.730876 +0.596036,-0.256969,0.209430,0.731333 +0.595292,-0.257416,0.209402,0.731789 +0.594548,-0.257864,0.209373,0.732244 +0.593804,-0.258311,0.209344,0.732698 +0.593059,-0.258759,0.209315,0.733152 +0.592314,-0.259207,0.209284,0.733605 +0.591569,-0.259655,0.209253,0.734056 +0.590823,-0.260103,0.209221,0.734507 +0.590077,-0.260551,0.209189,0.734958 +0.589330,-0.260999,0.209156,0.735407 +0.588583,-0.261448,0.209122,0.735855 +0.587836,-0.261896,0.209088,0.736303 +0.587088,-0.262345,0.209053,0.736750 +0.586339,-0.262794,0.209017,0.737196 +0.585591,-0.263243,0.208980,0.737641 +0.584842,-0.263692,0.208943,0.738085 +0.584092,-0.264141,0.208905,0.738529 +0.583342,-0.264590,0.208867,0.738971 +0.582592,-0.265039,0.208828,0.739413 +0.581842,-0.265489,0.208788,0.739854 +0.581091,-0.265938,0.208747,0.740294 +0.580339,-0.266388,0.208706,0.740733 +0.579587,-0.266838,0.208664,0.741171 +0.578835,-0.267288,0.208622,0.741609 +0.578083,-0.267738,0.208579,0.742046 +0.577330,-0.268188,0.208535,0.742481 +0.576577,-0.268639,0.208490,0.742916 +0.575823,-0.269089,0.208445,0.743350 +0.575069,-0.269540,0.208399,0.743784 +0.574314,-0.269990,0.208352,0.744216 +0.573559,-0.270441,0.208305,0.744648 +0.572804,-0.270892,0.208257,0.745078 +0.572049,-0.271343,0.208209,0.745508 +0.571293,-0.271794,0.208159,0.745937 +0.570536,-0.272245,0.208109,0.746365 +0.569780,-0.272696,0.208059,0.746793 +0.569022,-0.273148,0.208007,0.747219 +0.568265,-0.273599,0.207955,0.747645 +0.567507,-0.274051,0.207903,0.748070 +0.566749,-0.274502,0.207849,0.748494 +0.565990,-0.274954,0.207795,0.748917 +0.565231,-0.275406,0.207741,0.749339 +0.564472,-0.275858,0.207685,0.749760 +0.563712,-0.276310,0.207629,0.750181 +0.562952,-0.276762,0.207572,0.750600 +0.562192,-0.277215,0.207515,0.751019 +0.561431,-0.277667,0.207457,0.751437 +0.560670,-0.278119,0.207398,0.751854 +0.559909,-0.278572,0.207339,0.752270 +0.559147,-0.279024,0.207279,0.752686 +0.558384,-0.279477,0.207218,0.753100 +0.557622,-0.279930,0.207156,0.753514 +0.556859,-0.280383,0.207094,0.753927 +0.556096,-0.280836,0.207031,0.754339 +0.555332,-0.281289,0.206968,0.754750 +0.554568,-0.281742,0.206903,0.755160 +0.553804,-0.282195,0.206838,0.755569 +0.553039,-0.282649,0.206773,0.755978 +0.552274,-0.283102,0.206707,0.756386 +0.551509,-0.283555,0.206640,0.756792 +0.550743,-0.284009,0.206572,0.757198 +0.549977,-0.284463,0.206504,0.757603 +0.549210,-0.284916,0.206435,0.758008 +0.548443,-0.285370,0.206365,0.758411 +0.547676,-0.285824,0.206294,0.758813 +0.546909,-0.286278,0.206223,0.759215 +0.546141,-0.286732,0.206152,0.759616 +0.545373,-0.287186,0.206079,0.760016 +0.544604,-0.287640,0.206006,0.760415 +0.543835,-0.288094,0.205932,0.760813 +0.543066,-0.288549,0.205858,0.761210 +0.542297,-0.289003,0.205783,0.761607 +0.541527,-0.289458,0.205707,0.762002 +0.540757,-0.289912,0.205630,0.762397 +0.539986,-0.290367,0.205553,0.762791 +0.539215,-0.290821,0.205475,0.763184 +0.538444,-0.291276,0.205396,0.763576 +0.537673,-0.291731,0.205317,0.763967 +0.536901,-0.292186,0.205237,0.764358 +0.536129,-0.292641,0.205157,0.764747 +0.535356,-0.293095,0.205075,0.765136 +0.534583,-0.293551,0.204993,0.765524 +0.533810,-0.294006,0.204910,0.765911 +0.533037,-0.294461,0.204827,0.766297 +0.532263,-0.294916,0.204743,0.766682 +0.531489,-0.295371,0.204658,0.767066 +0.530714,-0.295826,0.204573,0.767450 +0.529939,-0.296282,0.204487,0.767832 +0.529164,-0.296737,0.204400,0.768214 +0.528389,-0.297193,0.204312,0.768595 +0.527613,-0.297648,0.204224,0.768975 +0.526837,-0.298104,0.204135,0.769354 +0.526061,-0.298559,0.204045,0.769732 +0.525284,-0.299015,0.203955,0.770110 +0.524507,-0.299471,0.203864,0.770486 +0.523730,-0.299927,0.203773,0.770862 +0.522952,-0.300382,0.203680,0.771237 +0.522174,-0.300838,0.203587,0.771610 +0.521396,-0.301294,0.203493,0.771984 +0.520617,-0.301750,0.203399,0.772356 +0.519838,-0.302206,0.203304,0.772727 +0.519059,-0.302662,0.203208,0.773097 +0.518280,-0.303118,0.203112,0.773467 +0.517500,-0.303574,0.203014,0.773836 +0.516720,-0.304031,0.202917,0.774203 +0.515940,-0.304487,0.202818,0.774570 +0.515159,-0.304943,0.202719,0.774936 +0.514378,-0.305399,0.202619,0.775301 +0.513597,-0.305856,0.202518,0.775666 +0.512815,-0.306312,0.202417,0.776029 +0.512033,-0.306768,0.202315,0.776392 +0.511251,-0.307225,0.202212,0.776753 +0.510469,-0.307681,0.202109,0.777114 +0.509686,-0.308138,0.202005,0.777474 +0.508903,-0.308594,0.201900,0.777833 +0.508119,-0.309051,0.201794,0.778191 +0.507336,-0.309507,0.201688,0.778548 +0.506552,-0.309964,0.201581,0.778905 +0.505768,-0.310420,0.201474,0.779260 +0.504983,-0.310877,0.201366,0.779615 +0.504198,-0.311334,0.201257,0.779969 +0.503413,-0.311790,0.201147,0.780322 +0.502628,-0.312247,0.201037,0.780674 +0.501842,-0.312704,0.200926,0.781025 +0.501056,-0.313161,0.200814,0.781375 +0.500270,-0.313617,0.200702,0.781724 +0.499484,-0.314074,0.200589,0.782073 +0.498697,-0.314531,0.200475,0.782420 +0.497910,-0.314988,0.200360,0.782767 +0.497122,-0.315445,0.200245,0.783113 +0.496335,-0.315901,0.200129,0.783458 +0.495547,-0.316358,0.200013,0.783802 +0.494759,-0.316815,0.199896,0.784145 +0.493970,-0.317272,0.199778,0.784487 +0.493182,-0.317729,0.199659,0.784829 +0.492393,-0.318186,0.199540,0.785169 +0.491603,-0.318643,0.199420,0.785509 +0.490814,-0.319100,0.199299,0.785848 +0.490024,-0.319557,0.199177,0.786186 +0.489234,-0.320014,0.199055,0.786523 +0.488444,-0.320471,0.198933,0.786859 +0.487653,-0.320928,0.198809,0.787194 +0.486862,-0.321384,0.198685,0.787529 +0.486071,-0.321841,0.198560,0.787862 +0.485280,-0.322298,0.198434,0.788195 +0.484488,-0.322755,0.198308,0.788526 +0.483696,-0.323212,0.198181,0.788857 +0.482904,-0.323669,0.198054,0.789187 +0.482112,-0.324126,0.197925,0.789516 +0.481319,-0.324583,0.197796,0.789844 +0.480526,-0.325040,0.197666,0.790172 +0.479733,-0.325497,0.197536,0.790498 +0.478940,-0.325954,0.197405,0.790824 +0.478146,-0.326411,0.197273,0.791148 +0.477352,-0.326868,0.197140,0.791472 +0.476558,-0.327325,0.197007,0.791795 +0.475764,-0.327782,0.196873,0.792117 +0.474969,-0.328239,0.196739,0.792438 +0.474174,-0.328695,0.196603,0.792758 +0.473379,-0.329152,0.196467,0.793077 +0.472584,-0.329609,0.196331,0.793396 +0.471788,-0.330066,0.196193,0.793713 +0.470992,-0.330523,0.196055,0.794030 +0.470196,-0.330980,0.195916,0.794346 +0.469400,-0.331436,0.195777,0.794661 +0.468603,-0.331893,0.195637,0.794975 +0.467806,-0.332350,0.195496,0.795288 +0.467009,-0.332807,0.195354,0.795600 +0.466212,-0.333263,0.195212,0.795911 +0.465414,-0.333720,0.195069,0.796222 +0.464616,-0.334177,0.194925,0.796531 +0.463818,-0.334633,0.194781,0.796840 +0.463020,-0.335090,0.194636,0.797147 +0.462222,-0.335547,0.194490,0.797454 +0.461423,-0.336003,0.194343,0.797760 +0.460624,-0.336460,0.194196,0.798065 +0.459825,-0.336916,0.194048,0.798370 +0.459025,-0.337373,0.193900,0.798673 +0.458226,-0.337829,0.193751,0.798975 +0.457426,-0.338285,0.193601,0.799277 +0.456626,-0.338742,0.193450,0.799577 +0.455826,-0.339198,0.193299,0.799877 +0.455025,-0.339654,0.193147,0.800176 +0.454224,-0.340111,0.192994,0.800474 +0.453423,-0.340567,0.192841,0.800771 +0.452622,-0.341023,0.192686,0.801067 +0.451821,-0.341479,0.192532,0.801362 +0.451019,-0.341935,0.192376,0.801657 +0.450217,-0.342392,0.192220,0.801950 +0.449415,-0.342848,0.192063,0.802243 +0.448613,-0.343304,0.191905,0.802534 +0.447811,-0.343760,0.191747,0.802825 +0.447008,-0.344215,0.191588,0.803115 +0.446205,-0.344671,0.191428,0.803404 +0.445402,-0.345127,0.191268,0.803692 +0.444599,-0.345583,0.191107,0.803979 +0.443795,-0.346039,0.190945,0.804266 +0.442992,-0.346494,0.190782,0.804551 +0.442188,-0.346950,0.190619,0.804835 +0.441384,-0.347406,0.190455,0.805119 +0.440579,-0.347861,0.190291,0.805402 +0.439775,-0.348317,0.190125,0.805684 +0.438970,-0.348772,0.189959,0.805965 +0.438165,-0.349227,0.189793,0.806245 +0.437360,-0.349683,0.189625,0.806524 +0.436555,-0.350138,0.189457,0.806802 +0.435749,-0.350593,0.189288,0.807079 +0.434944,-0.351048,0.189119,0.807356 +0.434138,-0.351503,0.188949,0.807631 +0.433332,-0.351958,0.188778,0.807906 +0.432525,-0.352413,0.188606,0.808180 +0.431719,-0.352868,0.188434,0.808453 +0.430912,-0.353323,0.188261,0.808725 +0.430105,-0.353778,0.188087,0.808996 +0.429298,-0.354233,0.187913,0.809266 +0.428491,-0.354687,0.187738,0.809535 +0.427684,-0.355142,0.187562,0.809803 +0.426876,-0.355596,0.187385,0.810071 +0.426068,-0.356051,0.187208,0.810337 +0.425260,-0.356505,0.187030,0.810603 +0.424452,-0.356959,0.186852,0.810868 +0.423644,-0.357414,0.186673,0.811132 +0.422835,-0.357868,0.186493,0.811395 +0.422027,-0.358322,0.186312,0.811657 +0.421218,-0.358776,0.186131,0.811918 +0.420409,-0.359230,0.185949,0.812178 +0.419600,-0.359684,0.185766,0.812438 +0.418790,-0.360137,0.185582,0.812696 +0.417981,-0.360591,0.185398,0.812954 +0.417171,-0.361045,0.185213,0.813210 +0.416361,-0.361498,0.185028,0.813466 +0.415551,-0.361952,0.184842,0.813721 +0.414741,-0.362405,0.184655,0.813975 +0.413931,-0.362858,0.184467,0.814228 +0.413120,-0.363311,0.184279,0.814480 +0.412309,-0.363765,0.184090,0.814731 +0.411498,-0.364218,0.183900,0.814982 +0.410687,-0.364671,0.183709,0.815231 +0.409876,-0.365123,0.183518,0.815480 +0.409065,-0.365576,0.183326,0.815728 +0.408253,-0.366029,0.183134,0.815974 +0.407442,-0.366481,0.182941,0.816220 +0.406630,-0.366934,0.182747,0.816465 +0.405818,-0.367386,0.182552,0.816709 +0.405006,-0.367839,0.182357,0.816952 +0.404193,-0.368291,0.182161,0.817195 +0.403381,-0.368743,0.181964,0.817436 +0.402568,-0.369195,0.181767,0.817676 +0.401756,-0.369647,0.181568,0.817916 +0.400943,-0.370099,0.181370,0.818155 +0.400130,-0.370551,0.181170,0.818392 +0.399316,-0.371002,0.180970,0.818629 +0.398503,-0.371454,0.180769,0.818865 +0.397690,-0.371905,0.180567,0.819100 +0.396876,-0.372356,0.180365,0.819334 +0.396062,-0.372808,0.180162,0.819568 +0.395248,-0.373259,0.179958,0.819800 +0.394434,-0.373710,0.179754,0.820031 +0.393620,-0.374161,0.179549,0.820262 +0.392806,-0.374611,0.179343,0.820491 +0.391991,-0.375062,0.179137,0.820720 +0.391176,-0.375513,0.178929,0.820948 +0.390362,-0.375963,0.178722,0.821175 +0.389547,-0.376414,0.178513,0.821401 +0.388732,-0.376864,0.178304,0.821626 +0.387917,-0.377314,0.178094,0.821850 +0.387101,-0.377764,0.177883,0.822073 +0.386286,-0.378214,0.177672,0.822296 +0.385470,-0.378664,0.177460,0.822517 +0.384655,-0.379113,0.177247,0.822738 +0.383839,-0.379563,0.177033,0.822958 +0.383023,-0.380012,0.176819,0.823176 +0.382207,-0.380462,0.176604,0.823394 +0.381391,-0.380911,0.176389,0.823611 +0.380574,-0.381360,0.176173,0.823827 +0.379758,-0.381809,0.175956,0.824042 +0.378941,-0.382257,0.175738,0.824257 +0.378125,-0.382706,0.175520,0.824470 +0.377308,-0.383155,0.175301,0.824682 +0.376491,-0.383603,0.175081,0.824894 +0.375674,-0.384051,0.174860,0.825104 +0.374857,-0.384500,0.174639,0.825314 +0.374040,-0.384948,0.174418,0.825523 +0.373222,-0.385396,0.174195,0.825731 +0.372405,-0.385843,0.173972,0.825938 +0.371587,-0.386291,0.173748,0.826144 +0.370769,-0.386739,0.173523,0.826349 +0.369952,-0.387186,0.173298,0.826553 +0.369134,-0.387633,0.173072,0.826757 +0.368316,-0.388080,0.172845,0.826959 +0.367498,-0.388527,0.172618,0.827161 +0.366679,-0.388974,0.172390,0.827362 +0.365861,-0.389421,0.172161,0.827561 +0.365043,-0.389867,0.171932,0.827760 +0.364224,-0.390314,0.171702,0.827958 +0.363405,-0.390760,0.171471,0.828155 +0.362587,-0.391206,0.171239,0.828351 +0.361768,-0.391652,0.171007,0.828546 +0.360949,-0.392098,0.170774,0.828741 +0.360130,-0.392544,0.170540,0.828934 +0.359311,-0.392989,0.170306,0.829127 +0.358492,-0.393435,0.170071,0.829318 +0.357672,-0.393880,0.169835,0.829509 +0.356853,-0.394325,0.169599,0.829699 +0.356033,-0.394770,0.169362,0.829888 +0.355214,-0.395215,0.169124,0.830076 +0.354394,-0.395659,0.168885,0.830263 +0.353574,-0.396104,0.168646,0.830449 +0.352754,-0.396548,0.168406,0.830634 +0.351934,-0.396992,0.168166,0.830819 +0.351114,-0.397436,0.167925,0.831002 +0.350294,-0.397880,0.167683,0.831185 +0.349474,-0.398324,0.167440,0.831366 +0.348654,-0.398767,0.167197,0.831547 +0.347834,-0.399211,0.166953,0.831727 +0.347013,-0.399654,0.166708,0.831906 +0.346193,-0.400097,0.166462,0.832084 +0.345372,-0.400540,0.166216,0.832261 +0.344551,-0.400983,0.165970,0.832437 +0.343731,-0.401425,0.165722,0.832612 +0.342910,-0.401868,0.165474,0.832787 +0.342089,-0.402310,0.165225,0.832960 +0.341268,-0.402752,0.164975,0.833133 +0.340447,-0.403194,0.164725,0.833304 +0.339626,-0.403636,0.164474,0.833475 +0.338805,-0.404077,0.164223,0.833645 +0.337984,-0.404519,0.163970,0.833814 +0.337162,-0.404960,0.163717,0.833982 +0.336341,-0.405401,0.163463,0.834149 +0.335519,-0.405842,0.163209,0.834315 +0.334698,-0.406282,0.162954,0.834481 +0.333876,-0.406723,0.162698,0.834645 +0.333055,-0.407163,0.162442,0.834808 +0.332233,-0.407603,0.162185,0.834971 +0.331411,-0.408043,0.161927,0.835133 +0.330590,-0.408483,0.161668,0.835294 +0.329768,-0.408923,0.161409,0.835453 +0.328946,-0.409362,0.161149,0.835612 +0.328124,-0.409802,0.160888,0.835770 +0.327302,-0.410241,0.160627,0.835928 +0.326480,-0.410680,0.160365,0.836084 +0.325658,-0.411118,0.160102,0.836239 +0.324836,-0.411557,0.159839,0.836394 +0.324013,-0.411995,0.159575,0.836547 +0.323191,-0.412433,0.159310,0.836700 +0.322369,-0.412871,0.159045,0.836852 +0.321547,-0.413309,0.158779,0.837002 +0.320724,-0.413746,0.158512,0.837152 +0.319902,-0.414184,0.158244,0.837301 +0.319079,-0.414621,0.157976,0.837449 +0.318257,-0.415058,0.157707,0.837597 +0.317434,-0.415495,0.157438,0.837743 +0.316612,-0.415931,0.157167,0.837888 +0.315789,-0.416368,0.156896,0.838033 +0.314966,-0.416804,0.156625,0.838176 +0.314144,-0.417240,0.156352,0.838319 +0.313321,-0.417676,0.156079,0.838461 +0.312498,-0.418111,0.155806,0.838602 +0.311675,-0.418547,0.155531,0.838741 +0.310852,-0.418982,0.155256,0.838880 +0.310030,-0.419417,0.154981,0.839019 +0.309207,-0.419852,0.154704,0.839156 +0.308384,-0.420286,0.154427,0.839292 +0.307561,-0.420721,0.154149,0.839428 +0.306738,-0.421155,0.153871,0.839562 +0.305915,-0.421589,0.153592,0.839696 +0.305092,-0.422022,0.153312,0.839828 +0.304269,-0.422456,0.153031,0.839960 +0.303446,-0.422889,0.152750,0.840091 +0.302622,-0.423322,0.152468,0.840221 +0.301799,-0.423755,0.152185,0.840350 +0.300976,-0.424188,0.151902,0.840478 +0.300153,-0.424620,0.151618,0.840606 +0.299330,-0.425053,0.151334,0.840732 +0.298507,-0.425485,0.151048,0.840857 +0.297683,-0.425916,0.150762,0.840982 +0.296860,-0.426348,0.150475,0.841106 +0.296037,-0.426779,0.150188,0.841228 +0.295214,-0.427211,0.149900,0.841350 +0.294390,-0.427642,0.149611,0.841471 +0.293567,-0.428072,0.149322,0.841591 +0.292744,-0.428503,0.149032,0.841710 +0.291921,-0.428933,0.148741,0.841828 +0.291097,-0.429363,0.148450,0.841946 +0.290274,-0.429793,0.148157,0.842062 +0.289451,-0.430222,0.147865,0.842178 +0.288627,-0.430652,0.147571,0.842292 +0.287804,-0.431081,0.147277,0.842406 +0.286981,-0.431510,0.146982,0.842519 +0.286158,-0.431938,0.146686,0.842631 +0.285334,-0.432367,0.146390,0.842741 +0.284511,-0.432795,0.146093,0.842852 +0.283688,-0.433223,0.145796,0.842961 +0.282864,-0.433651,0.145497,0.843069 +0.282041,-0.434078,0.145198,0.843176 +0.281218,-0.434505,0.144899,0.843283 +0.280394,-0.434932,0.144598,0.843388 +0.279571,-0.435359,0.144297,0.843493 +0.278748,-0.435786,0.143996,0.843597 +0.277925,-0.436212,0.143693,0.843700 +0.277101,-0.436638,0.143390,0.843802 +0.276278,-0.437064,0.143087,0.843903 +0.275455,-0.437489,0.142782,0.844003 +0.274632,-0.437915,0.142477,0.844102 +0.273809,-0.438340,0.142172,0.844200 +0.272986,-0.438765,0.141865,0.844298 +0.272162,-0.439189,0.141558,0.844394 +0.271339,-0.439614,0.141250,0.844490 +0.270516,-0.440038,0.140942,0.844585 +0.269693,-0.440462,0.140633,0.844678 +0.268870,-0.440885,0.140323,0.844771 +0.268047,-0.441308,0.140012,0.844863 +0.267224,-0.441732,0.139701,0.844955 +0.266401,-0.442154,0.139390,0.845045 +0.265578,-0.442577,0.139077,0.845134 +0.264755,-0.442999,0.138764,0.845222 +0.263932,-0.443421,0.138450,0.845310 +0.263109,-0.443843,0.138136,0.845397 +0.262287,-0.444265,0.137820,0.845482 +0.261464,-0.444686,0.137504,0.845567 +0.260641,-0.445107,0.137188,0.845651 +0.259818,-0.445528,0.136871,0.845734 +0.258996,-0.445948,0.136553,0.845816 +0.258173,-0.446368,0.136234,0.845897 +0.257350,-0.446788,0.135915,0.845978 +0.256528,-0.447208,0.135595,0.846057 +0.255705,-0.447628,0.135275,0.846135 +0.254883,-0.448047,0.134953,0.846213 +0.254060,-0.448466,0.134631,0.846290 +0.253238,-0.448884,0.134309,0.846366 +0.252415,-0.449303,0.133986,0.846440 +0.251593,-0.449721,0.133662,0.846514 +0.250771,-0.450139,0.133337,0.846588 +0.249948,-0.450556,0.133012,0.846660 +0.249126,-0.450973,0.132686,0.846731 +0.248304,-0.451390,0.132359,0.846801 +0.247482,-0.451807,0.132032,0.846871 +0.246660,-0.452224,0.131704,0.846940 +0.245838,-0.452640,0.131376,0.847007 +0.245016,-0.453056,0.131046,0.847074 +0.244194,-0.453471,0.130716,0.847140 +0.243372,-0.453887,0.130386,0.847205 +0.242550,-0.454302,0.130054,0.847269 +0.241729,-0.454717,0.129722,0.847332 +0.240907,-0.455131,0.129390,0.847395 +0.240086,-0.455545,0.129057,0.847456 +0.239264,-0.455959,0.128723,0.847517 +0.238442,-0.456373,0.128388,0.847576 +0.237621,-0.456786,0.128053,0.847635 +0.236800,-0.457199,0.127717,0.847693 +0.235978,-0.457612,0.127380,0.847750 +0.235157,-0.458025,0.127043,0.847806 +0.234336,-0.458437,0.126705,0.847861 +0.233515,-0.458849,0.126366,0.847915 +0.232694,-0.459260,0.126027,0.847969 +0.231873,-0.459672,0.125687,0.848021 +0.231052,-0.460083,0.125347,0.848073 +0.230231,-0.460493,0.125005,0.848123 +0.229411,-0.460904,0.124663,0.848173 +0.228590,-0.461314,0.124321,0.848222 +0.227769,-0.461724,0.123978,0.848270 +0.226949,-0.462133,0.123634,0.848317 +0.226128,-0.462543,0.123289,0.848363 +0.225308,-0.462952,0.122944,0.848408 +0.224488,-0.463360,0.122598,0.848453 +0.223668,-0.463769,0.122252,0.848496 +0.222847,-0.464177,0.121904,0.848539 +0.222027,-0.464584,0.121556,0.848581 +0.221208,-0.464992,0.121208,0.848622 +0.220388,-0.465399,0.120859,0.848661 +0.219568,-0.465806,0.120509,0.848700 +0.218748,-0.466212,0.120158,0.848739 +0.217929,-0.466618,0.119807,0.848776 +0.217109,-0.467024,0.119455,0.848812 +0.216290,-0.467430,0.119103,0.848848 +0.215470,-0.467835,0.118750,0.848882 +0.214651,-0.468240,0.118396,0.848916 +0.213832,-0.468645,0.118042,0.848949 +0.213013,-0.469049,0.117686,0.848981 +0.212194,-0.469453,0.117331,0.849012 +0.211375,-0.469857,0.116974,0.849042 +0.210556,-0.470260,0.116617,0.849071 +0.209738,-0.470663,0.116260,0.849099 +0.208919,-0.471066,0.115901,0.849127 +0.208101,-0.471469,0.115542,0.849153 +0.207282,-0.471871,0.115182,0.849179 +0.206464,-0.472273,0.114822,0.849204 +0.205646,-0.472674,0.114461,0.849228 +0.204828,-0.473075,0.114099,0.849251 +0.204010,-0.473476,0.113737,0.849273 +0.203192,-0.473877,0.113374,0.849294 +0.202374,-0.474277,0.113011,0.849314 +0.201557,-0.474677,0.112646,0.849334 +0.200739,-0.475076,0.112281,0.849352 +0.199922,-0.475475,0.111916,0.849370 +0.199105,-0.475874,0.111550,0.849387 +0.198287,-0.476273,0.111183,0.849403 +0.197470,-0.476671,0.110815,0.849418 +0.196653,-0.477069,0.110447,0.849432 +0.195837,-0.477466,0.110078,0.849445 +0.195020,-0.477864,0.109709,0.849457 +0.194203,-0.478260,0.109339,0.849469 +0.193387,-0.478657,0.108968,0.849479 +0.192570,-0.479053,0.108596,0.849489 +0.191754,-0.479449,0.108224,0.849498 +0.190938,-0.479845,0.107852,0.849506 +0.190122,-0.480240,0.107478,0.849513 +0.189306,-0.480635,0.107104,0.849519 +0.188491,-0.481029,0.106730,0.849524 +0.187675,-0.481423,0.106354,0.849528 +0.186859,-0.481817,0.105978,0.849532 +0.186044,-0.482211,0.105602,0.849534 +0.185229,-0.482604,0.105225,0.849536 +0.184414,-0.482997,0.104847,0.849537 +0.183599,-0.483389,0.104468,0.849537 +0.182784,-0.483781,0.104089,0.849536 +0.181969,-0.484173,0.103709,0.849534 +0.181155,-0.484564,0.103329,0.849531 +0.180340,-0.484955,0.102948,0.849528 +0.179526,-0.485346,0.102566,0.849523 +0.178712,-0.485736,0.102184,0.849518 +0.177898,-0.486126,0.101801,0.849512 +0.177084,-0.486516,0.101417,0.849505 +0.176270,-0.486905,0.101033,0.849497 +0.175457,-0.487294,0.100648,0.849488 +0.174643,-0.487683,0.100262,0.849478 +0.173830,-0.488071,0.099876,0.849467 +0.173017,-0.488459,0.099489,0.849456 +0.172204,-0.488846,0.099102,0.849443 +0.171391,-0.489233,0.098713,0.849430 +0.170578,-0.489620,0.098325,0.849416 +0.169766,-0.490007,0.097935,0.849401 +0.168953,-0.490393,0.097545,0.849385 +0.168141,-0.490778,0.097154,0.849368 +0.167329,-0.491164,0.096763,0.849350 +0.166517,-0.491549,0.096371,0.849332 +0.165705,-0.491933,0.095979,0.849312 +0.164893,-0.492317,0.095585,0.849292 +0.164082,-0.492701,0.095191,0.849271 +0.163271,-0.493085,0.094797,0.849249 +0.162459,-0.493468,0.094402,0.849226 +0.161648,-0.493851,0.094006,0.849202 +0.160838,-0.494233,0.093610,0.849177 +0.160027,-0.494615,0.093213,0.849152 +0.159216,-0.494997,0.092815,0.849125 +0.158406,-0.495378,0.092417,0.849098 +0.157596,-0.495759,0.092018,0.849070 +0.156786,-0.496139,0.091618,0.849041 +0.155976,-0.496519,0.091218,0.849011 +0.155166,-0.496899,0.090817,0.848980 +0.154357,-0.497279,0.090416,0.848948 +0.153547,-0.497658,0.090014,0.848916 +0.152738,-0.498036,0.089611,0.848882 +0.151929,-0.498414,0.089208,0.848848 +0.151120,-0.498792,0.088804,0.848813 +0.150311,-0.499170,0.088399,0.848777 +0.149503,-0.499547,0.087994,0.848740 +0.148695,-0.499924,0.087588,0.848702 +0.147886,-0.500300,0.087181,0.848663 +0.147079,-0.500676,0.086774,0.848624 +0.146271,-0.501051,0.086366,0.848583 +0.145463,-0.501426,0.085958,0.848542 +0.144656,-0.501801,0.085549,0.848500 +0.143848,-0.502176,0.085140,0.848457 +0.143041,-0.502550,0.084729,0.848413 +0.142234,-0.502923,0.084318,0.848368 +0.141428,-0.503296,0.083907,0.848322 +0.140621,-0.503669,0.083495,0.848276 +0.139815,-0.504042,0.083082,0.848228 +0.139009,-0.504414,0.082669,0.848180 +0.138203,-0.504785,0.082255,0.848131 +0.137397,-0.505157,0.081840,0.848081 +0.136592,-0.505527,0.081425,0.848030 +0.135786,-0.505898,0.081009,0.847978 +0.134981,-0.506268,0.080593,0.847926 +0.134176,-0.506637,0.080176,0.847872 +0.133371,-0.507007,0.079758,0.847818 +0.132567,-0.507375,0.079339,0.847763 +0.131762,-0.507744,0.078921,0.847707 +0.130958,-0.508112,0.078501,0.847650 +0.130154,-0.508480,0.078081,0.847592 +0.129350,-0.508847,0.077660,0.847533 +0.128547,-0.509214,0.077239,0.847474 +0.127743,-0.509580,0.076817,0.847413 +0.126940,-0.509946,0.076394,0.847352 +0.126137,-0.510311,0.075971,0.847290 +0.125334,-0.510677,0.075547,0.847227 +0.124532,-0.511041,0.075122,0.847163 +0.123729,-0.511406,0.074697,0.847098 +0.122927,-0.511770,0.074271,0.847033 +0.122125,-0.512133,0.073845,0.846966 +0.121323,-0.512496,0.073418,0.846899 +0.120522,-0.512859,0.072991,0.846831 +0.119721,-0.513221,0.072562,0.846762 +0.118919,-0.513583,0.072134,0.846692 +0.118119,-0.513945,0.071704,0.846621 +0.117318,-0.514306,0.071274,0.846550 +0.116517,-0.514666,0.070844,0.846477 +0.115717,-0.515026,0.070412,0.846404 +0.114917,-0.515386,0.069981,0.846330 +0.114117,-0.515745,0.069548,0.846255 +0.113318,-0.516104,0.069115,0.846179 +0.112518,-0.516463,0.068682,0.846102 +0.111719,-0.516821,0.068247,0.846024 +0.110920,-0.517179,0.067812,0.845946 +0.110122,-0.517536,0.067377,0.845867 +0.109323,-0.517893,0.066941,0.845786 +0.108525,-0.518249,0.066504,0.845705 +0.107727,-0.518605,0.066067,0.845623 +0.106929,-0.518960,0.065629,0.845541 +0.106132,-0.519315,0.065190,0.845457 +0.105334,-0.519670,0.064751,0.845373 +0.104537,-0.520024,0.064312,0.845287 +0.103740,-0.520378,0.063871,0.845201 +0.102944,-0.520731,0.063430,0.845114 +0.102147,-0.521084,0.062989,0.845026 +0.101351,-0.521437,0.062547,0.844938 +0.100555,-0.521789,0.062104,0.844848 +0.099759,-0.522140,0.061661,0.844758 +0.098964,-0.522492,0.061217,0.844666 +0.098169,-0.522842,0.060772,0.844574 +0.097374,-0.523193,0.060327,0.844481 +0.096579,-0.523542,0.059882,0.844387 +0.095785,-0.523892,0.059435,0.844293 +0.094990,-0.524241,0.058988,0.844197 +0.094196,-0.524589,0.058541,0.844101 +0.093403,-0.524937,0.058093,0.844004 +0.092609,-0.525285,0.057644,0.843906 +0.091816,-0.525632,0.057195,0.843807 +0.091023,-0.525979,0.056745,0.843707 +0.090230,-0.526325,0.056294,0.843606 +0.089437,-0.526671,0.055843,0.843505 +0.088645,-0.527016,0.055392,0.843402 +0.087853,-0.527361,0.054939,0.843299 +0.087061,-0.527706,0.054487,0.843195 +0.086270,-0.528050,0.054033,0.843090 +0.085479,-0.528393,0.053579,0.842985 +0.084688,-0.528736,0.053124,0.842878 +0.083897,-0.529079,0.052669,0.842771 +0.083106,-0.529421,0.052213,0.842663 +0.082316,-0.529763,0.051757,0.842553 +0.081526,-0.530104,0.051300,0.842444 +0.080736,-0.530445,0.050842,0.842333 +0.079947,-0.530786,0.050384,0.842221 +0.079158,-0.531126,0.049926,0.842109 +0.078369,-0.531465,0.049466,0.841995 +0.077580,-0.531804,0.049006,0.841881 +0.076792,-0.532143,0.048546,0.841766 +0.076004,-0.532481,0.048085,0.841651 +0.075216,-0.532818,0.047623,0.841534 +0.074428,-0.533155,0.047161,0.841416 +0.073641,-0.533492,0.046698,0.841298 +0.072854,-0.533828,0.046235,0.841179 +0.072067,-0.534164,0.045771,0.841059 +0.071281,-0.534499,0.045306,0.840938 +0.070494,-0.534834,0.044841,0.840816 +0.069709,-0.535169,0.044375,0.840694 +0.068923,-0.535502,0.043909,0.840571 +0.068137,-0.535836,0.043442,0.840446 +0.067352,-0.536169,0.042974,0.840321 +0.066567,-0.536501,0.042506,0.840195 +0.065783,-0.536833,0.042038,0.840069 +0.064999,-0.537165,0.041568,0.839941 +0.064215,-0.537496,0.041099,0.839813 +0.063431,-0.537826,0.040628,0.839684 +0.062647,-0.538157,0.040157,0.839554 +0.061864,-0.538486,0.039686,0.839423 +0.061081,-0.538815,0.039214,0.839291 +0.060299,-0.539144,0.038741,0.839159 +0.059517,-0.539472,0.038268,0.839025 +0.058735,-0.539800,0.037794,0.838891 +0.057953,-0.540127,0.037319,0.838756 +0.057171,-0.540454,0.036844,0.838620 +0.056390,-0.540780,0.036369,0.838483 +0.055609,-0.541106,0.035893,0.838346 +0.054829,-0.541431,0.035416,0.838208 +0.054049,-0.541756,0.034939,0.838068 +0.053269,-0.542080,0.034461,0.837928 +0.052489,-0.542404,0.033983,0.837788 +0.051710,-0.542727,0.033504,0.837646 +0.050930,-0.543050,0.033024,0.837503 +0.050152,-0.543373,0.032544,0.837360 +0.049373,-0.543694,0.032063,0.837216 +0.048595,-0.544016,0.031582,0.837071 +0.047817,-0.544337,0.031100,0.836925 +0.047040,-0.544657,0.030618,0.836779 +0.046262,-0.544977,0.030135,0.836631 +0.045485,-0.545296,0.029652,0.836483 +0.044709,-0.545615,0.029167,0.836334 +0.043932,-0.545934,0.028683,0.836184 +0.043156,-0.546252,0.028198,0.836033 +0.042381,-0.546569,0.027712,0.835882 +0.041605,-0.546886,0.027226,0.835729 +0.040830,-0.547202,0.026739,0.835576 +0.040055,-0.547518,0.026251,0.835422 +0.039281,-0.547834,0.025763,0.835267 +0.038506,-0.548149,0.025275,0.835112 +0.037733,-0.548463,0.024786,0.834955 +0.036959,-0.548777,0.024296,0.834798 +0.036186,-0.549090,0.023806,0.834640 +0.035413,-0.549403,0.023315,0.834481 +0.034640,-0.549716,0.022824,0.834321 +0.033868,-0.550028,0.022332,0.834161 +0.033096,-0.550339,0.021839,0.833999 +0.032324,-0.550650,0.021346,0.833837 +0.031553,-0.550960,0.020853,0.833674 +0.030782,-0.551270,0.020359,0.833510 +0.030011,-0.551579,0.019864,0.833346 +0.029241,-0.551888,0.019369,0.833180 +0.028471,-0.552197,0.018873,0.833014 +0.027701,-0.552504,0.018377,0.832847 +0.026932,-0.552812,0.017880,0.832679 +0.026163,-0.553118,0.017382,0.832510 +0.025394,-0.553425,0.016884,0.832341 +0.024626,-0.553731,0.016386,0.832170 +0.023857,-0.554036,0.015887,0.831999 +0.023090,-0.554340,0.015387,0.831827 +0.022322,-0.554645,0.014887,0.831655 +0.021555,-0.554948,0.014386,0.831481 +0.020789,-0.555252,0.013885,0.831307 +0.020022,-0.555554,0.013383,0.831132 +0.019256,-0.555856,0.012881,0.830956 +0.018490,-0.556158,0.012378,0.830779 +0.017725,-0.556459,0.011875,0.830601 +0.016960,-0.556760,0.011371,0.830423 +0.016195,-0.557060,0.010866,0.830244 +0.015431,-0.557359,0.010361,0.830064 +0.014667,-0.557658,0.009856,0.829883 +0.013903,-0.557956,0.009350,0.829701 +0.013140,-0.558254,0.008843,0.829519 +0.012377,-0.558552,0.008336,0.829335 +0.011614,-0.558849,0.007828,0.829151 +0.010852,-0.559145,0.007320,0.828967 +0.010090,-0.559441,0.006811,0.828781 +0.009328,-0.559736,0.006301,0.828594 +0.008567,-0.560031,0.005792,0.828407 +0.007806,-0.560325,0.005281,0.828219 +0.007045,-0.560619,0.004770,0.828030 +0.006285,-0.560912,0.004259,0.827841 +0.005525,-0.561204,0.003747,0.827650 +0.004766,-0.561497,0.003234,0.827459 +0.004007,-0.561788,0.002721,0.827267 +0.003248,-0.562079,0.002207,0.827074 +0.002489,-0.562370,0.001693,0.826881 +0.001731,-0.562659,0.001178,0.826686 +0.000974,-0.562949,0.000663,0.826491 +0.000216,-0.563238,0.000147,0.826295 +-0.000541,-0.563526,-0.000369,0.826098 +-0.001297,-0.563814,-0.000886,0.825901 +-0.002054,-0.564101,-0.001403,0.825702 +-0.002810,-0.564388,-0.001921,0.825503 +-0.003565,-0.564674,-0.002439,0.825303 +-0.004320,-0.564959,-0.002958,0.825102 +-0.005075,-0.565244,-0.003478,0.824901 +-0.005830,-0.565529,-0.003998,0.824698 +-0.006584,-0.565813,-0.004518,0.824495 +-0.007337,-0.566096,-0.005039,0.824291 +-0.008091,-0.566379,-0.005561,0.824086 +-0.008844,-0.566661,-0.006083,0.823881 +-0.009596,-0.566943,-0.006605,0.823675 +-0.010349,-0.567224,-0.007128,0.823468 +-0.011100,-0.567505,-0.007652,0.823260 +-0.011852,-0.567785,-0.008176,0.823051 +-0.012603,-0.568064,-0.008701,0.822842 +-0.013354,-0.568343,-0.009226,0.822631 +-0.014104,-0.568622,-0.009752,0.822420 +-0.014854,-0.568900,-0.010278,0.822209 +-0.015604,-0.569177,-0.010805,0.821996 +-0.016353,-0.569454,-0.011332,0.821783 +-0.017102,-0.569730,-0.011860,0.821568 +-0.017850,-0.570006,-0.012388,0.821353 +-0.018598,-0.570281,-0.012917,0.821138 +-0.019346,-0.570555,-0.013446,0.820921 +-0.020093,-0.570829,-0.013976,0.820704 +-0.020840,-0.571103,-0.014506,0.820486 +-0.021587,-0.571375,-0.015037,0.820267 +-0.022333,-0.571648,-0.015568,0.820047 +-0.023079,-0.571919,-0.016100,0.819827 +-0.023824,-0.572190,-0.016632,0.819606 +-0.024569,-0.572461,-0.017165,0.819384 +-0.025314,-0.572731,-0.017699,0.819161 +-0.026058,-0.573000,-0.018233,0.818938 +-0.026802,-0.573269,-0.018767,0.818713 +-0.027545,-0.573538,-0.019302,0.818488 +-0.028288,-0.573805,-0.019837,0.818263 +-0.029031,-0.574073,-0.020373,0.818036 +-0.029773,-0.574339,-0.020909,0.817809 +-0.030515,-0.574605,-0.021446,0.817580 +-0.031257,-0.574871,-0.021984,0.817352 +-0.031998,-0.575135,-0.022522,0.817122 +-0.032738,-0.575400,-0.023060,0.816891 +-0.033479,-0.575664,-0.023599,0.816660 +-0.034218,-0.575927,-0.024138,0.816428 +-0.034958,-0.576189,-0.024678,0.816195 +-0.035697,-0.576451,-0.025219,0.815962 +-0.036436,-0.576713,-0.025760,0.815727 +-0.037174,-0.576974,-0.026301,0.815492 +-0.037912,-0.577234,-0.026843,0.815257 +-0.038649,-0.577494,-0.027385,0.815020 +-0.039386,-0.577753,-0.027928,0.814783 +-0.040123,-0.578011,-0.028472,0.814544 +-0.040859,-0.578269,-0.029016,0.814306 +-0.041595,-0.578526,-0.029560,0.814066 +-0.042330,-0.578783,-0.030105,0.813825 +-0.043065,-0.579039,-0.030650,0.813584 +-0.043800,-0.579295,-0.031196,0.813342 +-0.044534,-0.579550,-0.031742,0.813100 +-0.045268,-0.579805,-0.032289,0.812856 +-0.046001,-0.580058,-0.032837,0.812612 +-0.046734,-0.580312,-0.033384,0.812367 +-0.047467,-0.580564,-0.033933,0.812121 +-0.048199,-0.580816,-0.034481,0.811874 +-0.048930,-0.581068,-0.035031,0.811627 +-0.049662,-0.581319,-0.035580,0.811379 +-0.050392,-0.581569,-0.036131,0.811130 +-0.051123,-0.581819,-0.036681,0.810881 +-0.051853,-0.582068,-0.037233,0.810630 +-0.052582,-0.582317,-0.037784,0.810379 +-0.053312,-0.582565,-0.038336,0.810128 +-0.054040,-0.582812,-0.038889,0.809875 +-0.054769,-0.583059,-0.039442,0.809622 +-0.055496,-0.583305,-0.039996,0.809368 +-0.056224,-0.583550,-0.040550,0.809113 +-0.056951,-0.583795,-0.041105,0.808857 +-0.057678,-0.584040,-0.041660,0.808601 +-0.058404,-0.584284,-0.042215,0.808344 +-0.059129,-0.584527,-0.042771,0.808086 +-0.059855,-0.584769,-0.043328,0.807827 +-0.060580,-0.585011,-0.043885,0.807568 +-0.061304,-0.585253,-0.044442,0.807308 +-0.062028,-0.585494,-0.045000,0.807047 +-0.062752,-0.585734,-0.045558,0.806785 +-0.063475,-0.585973,-0.046117,0.806523 +-0.064197,-0.586212,-0.046676,0.806260 +-0.064920,-0.586451,-0.047236,0.805996 +-0.065642,-0.586688,-0.047796,0.805732 +-0.066363,-0.586926,-0.048357,0.805466 +-0.067084,-0.587162,-0.048918,0.805200 +-0.067804,-0.587398,-0.049480,0.804933 +-0.068524,-0.587633,-0.050042,0.804666 +-0.069244,-0.587868,-0.050605,0.804398 +-0.069963,-0.588102,-0.051168,0.804129 +-0.070682,-0.588336,-0.051731,0.803859 +-0.071400,-0.588569,-0.052295,0.803588 +-0.072118,-0.588801,-0.052860,0.803317 +-0.072836,-0.589033,-0.053425,0.803045 +-0.073552,-0.589264,-0.053990,0.802772 +-0.074269,-0.589494,-0.054556,0.802499 +-0.074985,-0.589724,-0.055122,0.802225 +-0.075701,-0.589953,-0.055689,0.801950 +-0.076416,-0.590182,-0.056256,0.801674 +-0.077131,-0.590410,-0.056824,0.801398 +-0.077845,-0.590637,-0.057392,0.801121 +-0.078559,-0.590864,-0.057961,0.800843 +-0.079272,-0.591090,-0.058530,0.800564 +-0.079985,-0.591315,-0.059099,0.800285 +-0.080697,-0.591540,-0.059669,0.800005 +-0.081409,-0.591765,-0.060240,0.799724 +-0.082121,-0.591988,-0.060811,0.799442 +-0.082832,-0.592211,-0.061382,0.799160 +-0.083542,-0.592434,-0.061954,0.798877 +-0.084253,-0.592655,-0.062526,0.798593 +-0.084962,-0.592877,-0.063099,0.798309 +-0.085672,-0.593097,-0.063672,0.798024 +-0.086380,-0.593317,-0.064245,0.797738 +-0.087089,-0.593536,-0.064819,0.797451 +-0.087796,-0.593755,-0.065394,0.797164 +-0.088504,-0.593973,-0.065969,0.796876 +-0.089211,-0.594190,-0.066544,0.796587 +-0.089917,-0.594407,-0.067120,0.796298 +-0.090623,-0.594623,-0.067696,0.796007 +-0.091329,-0.594839,-0.068273,0.795716 +-0.092034,-0.595054,-0.068850,0.795425 +-0.092738,-0.595268,-0.069428,0.795132 +-0.093442,-0.595482,-0.070006,0.794839 +-0.094146,-0.595695,-0.070584,0.794545 +-0.094849,-0.595907,-0.071163,0.794251 +-0.095552,-0.596119,-0.071742,0.793956 +-0.096254,-0.596330,-0.072322,0.793660 +-0.096956,-0.596540,-0.072902,0.793363 +-0.097657,-0.596750,-0.073483,0.793065 +-0.098358,-0.596959,-0.074064,0.792767 +-0.099058,-0.597168,-0.074646,0.792468 +-0.099758,-0.597376,-0.075228,0.792169 +-0.100458,-0.597583,-0.075810,0.791869 +-0.101156,-0.597790,-0.076393,0.791568 +-0.101855,-0.597996,-0.076976,0.791266 +-0.102553,-0.598201,-0.077560,0.790963 +-0.103250,-0.598406,-0.078144,0.790660 +-0.103947,-0.598610,-0.078729,0.790356 +-0.104644,-0.598813,-0.079314,0.790052 +-0.105340,-0.599016,-0.079899,0.789747 +-0.106035,-0.599218,-0.080485,0.789441 +-0.106730,-0.599420,-0.081071,0.789134 +-0.107425,-0.599620,-0.081658,0.788827 +-0.108119,-0.599821,-0.082245,0.788518 +-0.108812,-0.600020,-0.082833,0.788210 +-0.109505,-0.600219,-0.083421,0.787900 +-0.110198,-0.600417,-0.084009,0.787590 +-0.110890,-0.600615,-0.084598,0.787279 +-0.111582,-0.600812,-0.085187,0.786967 +-0.112273,-0.601008,-0.085777,0.786655 +-0.112963,-0.601204,-0.086367,0.786342 +-0.113654,-0.601399,-0.086958,0.786028 +-0.114343,-0.601593,-0.087549,0.785714 +-0.115032,-0.601787,-0.088140,0.785399 +-0.115721,-0.601980,-0.088732,0.785083 +-0.116409,-0.602173,-0.089324,0.784766 +-0.117097,-0.602364,-0.089916,0.784449 +-0.117784,-0.602555,-0.090509,0.784131 +-0.118471,-0.602746,-0.091103,0.783813 +-0.119157,-0.602936,-0.091697,0.783493 +-0.119842,-0.603125,-0.092291,0.783173 +-0.120528,-0.603313,-0.092886,0.782853 +-0.121212,-0.603501,-0.093481,0.782531 +-0.121896,-0.603688,-0.094076,0.782209 +-0.122580,-0.603875,-0.094672,0.781887 +-0.123263,-0.604061,-0.095269,0.781563 +-0.123946,-0.604246,-0.095865,0.781239 +-0.124628,-0.604430,-0.096462,0.780914 +-0.125310,-0.604614,-0.097060,0.780589 +-0.125991,-0.604797,-0.097658,0.780262 +-0.126671,-0.604980,-0.098256,0.779935 +-0.127351,-0.605162,-0.098855,0.779608 +-0.128031,-0.605343,-0.099454,0.779280 +-0.128710,-0.605524,-0.100054,0.778951 +-0.129389,-0.605704,-0.100654,0.778621 +-0.130067,-0.605883,-0.101254,0.778291 +-0.130744,-0.606061,-0.101855,0.777960 +-0.131421,-0.606239,-0.102456,0.777628 +-0.132098,-0.606416,-0.103058,0.777296 +-0.132774,-0.606593,-0.103660,0.776963 +-0.133449,-0.606769,-0.104262,0.776629 +-0.134124,-0.606944,-0.104865,0.776294 +-0.134799,-0.607119,-0.105468,0.775959 +-0.135473,-0.607293,-0.106071,0.775623 +-0.136146,-0.607466,-0.106675,0.775287 +-0.136819,-0.607638,-0.107280,0.774950 +-0.137491,-0.607810,-0.107884,0.774612 +-0.138163,-0.607981,-0.108490,0.774274 +-0.138834,-0.608152,-0.109095,0.773934 +-0.139505,-0.608322,-0.109701,0.773595 +-0.140176,-0.608491,-0.110307,0.773254 +-0.140845,-0.608659,-0.110914,0.772913 +-0.141515,-0.608827,-0.111521,0.772571 +-0.142183,-0.608994,-0.112129,0.772229 +-0.142851,-0.609161,-0.112736,0.771885 +-0.143519,-0.609327,-0.113345,0.771541 +-0.144186,-0.609492,-0.113953,0.771197 +-0.144853,-0.609656,-0.114562,0.770852 +-0.145519,-0.609820,-0.115172,0.770506 +-0.146184,-0.609983,-0.115781,0.770159 +-0.146850,-0.610146,-0.116391,0.769812 +-0.147514,-0.610307,-0.117002,0.769464 +-0.148178,-0.610468,-0.117613,0.769116 +-0.148841,-0.610629,-0.118224,0.768766 +-0.149504,-0.610788,-0.118836,0.768417 +-0.150167,-0.610947,-0.119448,0.768066 +-0.150828,-0.611106,-0.120060,0.767715 +-0.151490,-0.611263,-0.120673,0.767363 +-0.152150,-0.611420,-0.121286,0.767011 +-0.152811,-0.611577,-0.121900,0.766657 +-0.153470,-0.611732,-0.122514,0.766304 +-0.154129,-0.611887,-0.123128,0.765949 +-0.154788,-0.612041,-0.123743,0.765594 +-0.155446,-0.612195,-0.124358,0.765238 +-0.156104,-0.612348,-0.124973,0.764882 +-0.156761,-0.612500,-0.125589,0.764525 +-0.157417,-0.612651,-0.126205,0.764167 +-0.158073,-0.612802,-0.126822,0.763808 +-0.158728,-0.612952,-0.127438,0.763449 +-0.159383,-0.613101,-0.128056,0.763090 +-0.160037,-0.613250,-0.128673,0.762729 +-0.160691,-0.613398,-0.129291,0.762368 +-0.161344,-0.613545,-0.129910,0.762006 +-0.161997,-0.613692,-0.130528,0.761644 +-0.162649,-0.613838,-0.131147,0.761281 +-0.163300,-0.613983,-0.131767,0.760917 +-0.163951,-0.614128,-0.132386,0.760553 +-0.164602,-0.614271,-0.133007,0.760188 +-0.165251,-0.614415,-0.133627,0.759823 +-0.165901,-0.614557,-0.134248,0.759457 +-0.166549,-0.614699,-0.134869,0.759090 +-0.167198,-0.614840,-0.135491,0.758722 +-0.167845,-0.614980,-0.136113,0.758354 +-0.168492,-0.615120,-0.136735,0.757985 +-0.169139,-0.615259,-0.137357,0.757616 +-0.169785,-0.615397,-0.137980,0.757246 +-0.170430,-0.615534,-0.138604,0.756875 +-0.171075,-0.615671,-0.139227,0.756504 +-0.171720,-0.615807,-0.139852,0.756132 +-0.172363,-0.615943,-0.140476,0.755759 +-0.173006,-0.616078,-0.141101,0.755386 +-0.173649,-0.616212,-0.141726,0.755012 +-0.174291,-0.616345,-0.142351,0.754637 +-0.174933,-0.616478,-0.142977,0.754262 +-0.175574,-0.616610,-0.143603,0.753886 +-0.176214,-0.616741,-0.144229,0.753510 +-0.176854,-0.616871,-0.144856,0.753133 +-0.177493,-0.617001,-0.145483,0.752755 +-0.178132,-0.617130,-0.146111,0.752377 +-0.178770,-0.617259,-0.146739,0.751998 +-0.179407,-0.617386,-0.147367,0.751618 +-0.180044,-0.617513,-0.147995,0.751238 +-0.180681,-0.617640,-0.148624,0.750857 +-0.181317,-0.617765,-0.149253,0.750476 +-0.181952,-0.617890,-0.149883,0.750094 +-0.182587,-0.618014,-0.150513,0.749711 +-0.183221,-0.618138,-0.151143,0.749328 +-0.183854,-0.618260,-0.151773,0.748944 +-0.184487,-0.618382,-0.152404,0.748559 +-0.185120,-0.618504,-0.153036,0.748174 +-0.185752,-0.618624,-0.153667,0.747788 +-0.186383,-0.618744,-0.154299,0.747402 +-0.187013,-0.618863,-0.154931,0.747015 +-0.187644,-0.618982,-0.155564,0.746627 +-0.188273,-0.619099,-0.156196,0.746239 +-0.188902,-0.619216,-0.156830,0.745850 +-0.189531,-0.619333,-0.157463,0.745460 +-0.190158,-0.619448,-0.158097,0.745070 +-0.190786,-0.619563,-0.158731,0.744679 +-0.191412,-0.619677,-0.159365,0.744288 +-0.192038,-0.619791,-0.160000,0.743896 +-0.192664,-0.619903,-0.160635,0.743503 +-0.193289,-0.620015,-0.161271,0.743110 +-0.193913,-0.620127,-0.161907,0.742716 +-0.194537,-0.620237,-0.162543,0.742322 +-0.195160,-0.620347,-0.163179,0.741927 +-0.195782,-0.620456,-0.163816,0.741531 +-0.196404,-0.620564,-0.164453,0.741135 +-0.197026,-0.620672,-0.165090,0.740738 +-0.197647,-0.620779,-0.165728,0.740340 +-0.198267,-0.620885,-0.166366,0.739942 +-0.198887,-0.620991,-0.167004,0.739543 +-0.199506,-0.621095,-0.167643,0.739144 +-0.200124,-0.621199,-0.168281,0.738744 +-0.200742,-0.621303,-0.168921,0.738344 +-0.201359,-0.621405,-0.169560,0.737943 +-0.201976,-0.621507,-0.170200,0.737541 +-0.202592,-0.621608,-0.170840,0.737139 +-0.203208,-0.621709,-0.171481,0.736736 +-0.203822,-0.621808,-0.172121,0.736332 +-0.204437,-0.621907,-0.172762,0.735928 +-0.205050,-0.622006,-0.173404,0.735523 +-0.205664,-0.622103,-0.174045,0.735118 +-0.206276,-0.622200,-0.174687,0.734712 +-0.206888,-0.622296,-0.175330,0.734306 +-0.207499,-0.622391,-0.175972,0.733898 +-0.208110,-0.622486,-0.176615,0.733491 +-0.208720,-0.622580,-0.177258,0.733083 +-0.209330,-0.622673,-0.177902,0.732674 +-0.209939,-0.622765,-0.178546,0.732264 +-0.210547,-0.622857,-0.179190,0.731854 +-0.211155,-0.622948,-0.179834,0.731444 +-0.211762,-0.623038,-0.180479,0.731032 +-0.212369,-0.623127,-0.181124,0.730620 +-0.212975,-0.623216,-0.181769,0.730208 +-0.213580,-0.623304,-0.182414,0.729795 +-0.214185,-0.623391,-0.183060,0.729382 +-0.214789,-0.623478,-0.183706,0.728967 +-0.215392,-0.623563,-0.184353,0.728553 +-0.215995,-0.623648,-0.184999,0.728137 +-0.216597,-0.623733,-0.185646,0.727721 +-0.217199,-0.623816,-0.186294,0.727305 +-0.217800,-0.623899,-0.186941,0.726888 +-0.218401,-0.623981,-0.187589,0.726470 +-0.219001,-0.624062,-0.188237,0.726052 +-0.219600,-0.624143,-0.188886,0.725633 +-0.220199,-0.624223,-0.189534,0.725214 +-0.220797,-0.624302,-0.190183,0.724794 +-0.221394,-0.624380,-0.190833,0.724373 +-0.221991,-0.624458,-0.191482,0.723952 +-0.222587,-0.624535,-0.192132,0.723531 +-0.223183,-0.624611,-0.192782,0.723108 +-0.223778,-0.624686,-0.193432,0.722686 +-0.224372,-0.624761,-0.194083,0.722262 +-0.224966,-0.624835,-0.194734,0.721838 +-0.225559,-0.624908,-0.195385,0.721414 +-0.226151,-0.624981,-0.196037,0.720989 +-0.226743,-0.625052,-0.196688,0.720563 +-0.227335,-0.625123,-0.197340,0.720137 +-0.227925,-0.625193,-0.197993,0.719710 +-0.228515,-0.625263,-0.198645,0.719282 +-0.229105,-0.625331,-0.199298,0.718855 +-0.229694,-0.625399,-0.199951,0.718426 +-0.230282,-0.625467,-0.200605,0.717997 +-0.230869,-0.625533,-0.201258,0.717567 +-0.231456,-0.625599,-0.201912,0.717137 +-0.232043,-0.625664,-0.202566,0.716706 +-0.232628,-0.625728,-0.203221,0.716275 +-0.233213,-0.625791,-0.203875,0.715843 +-0.233798,-0.625854,-0.204530,0.715411 +-0.234382,-0.625916,-0.205186,0.714978 +-0.234965,-0.625977,-0.205841,0.714544 +-0.235547,-0.626037,-0.206497,0.714110 +-0.236129,-0.626097,-0.207153,0.713676 +-0.236711,-0.626156,-0.207809,0.713241 +-0.237291,-0.626214,-0.208466,0.712805 +-0.237871,-0.626272,-0.209122,0.712368 +-0.238451,-0.626328,-0.209779,0.711932 +-0.239030,-0.626384,-0.210437,0.711494 +-0.239608,-0.626439,-0.211094,0.711056 +-0.240185,-0.626494,-0.211752,0.710618 +-0.240762,-0.626547,-0.212410,0.710179 +-0.241338,-0.626600,-0.213068,0.709739 +-0.241914,-0.626653,-0.213727,0.709299 +-0.242489,-0.626704,-0.214385,0.708858 +-0.243064,-0.626755,-0.215044,0.708417 +-0.243637,-0.626804,-0.215704,0.707975 +-0.244210,-0.626853,-0.216363,0.707533 +-0.244783,-0.626902,-0.217023,0.707090 +-0.245355,-0.626949,-0.217683,0.706647 +-0.245926,-0.626996,-0.218343,0.706203 +-0.246496,-0.627042,-0.219004,0.705758 +-0.247066,-0.627088,-0.219664,0.705313 +-0.247636,-0.627132,-0.220325,0.704868 +-0.248204,-0.627176,-0.220987,0.704422 +-0.248772,-0.627219,-0.221648,0.703975 +-0.249340,-0.627261,-0.222310,0.703528 +-0.249906,-0.627303,-0.222972,0.703080 +-0.250472,-0.627343,-0.223634,0.702632 +-0.251038,-0.627383,-0.224296,0.702183 +-0.251603,-0.627423,-0.224959,0.701734 +-0.252167,-0.627461,-0.225622,0.701284 +-0.252730,-0.627499,-0.226285,0.700834 +-0.253293,-0.627536,-0.226948,0.700383 +-0.253855,-0.627572,-0.227611,0.699932 +-0.254417,-0.627607,-0.228275,0.699480 +-0.254978,-0.627642,-0.228939,0.699027 +-0.255538,-0.627676,-0.229603,0.698574 +-0.256098,-0.627709,-0.230268,0.698121 +-0.256657,-0.627741,-0.230933,0.697667 +-0.257215,-0.627773,-0.231598,0.697212 +-0.257773,-0.627803,-0.232263,0.696757 +-0.258330,-0.627833,-0.232928,0.696301 +-0.258886,-0.627863,-0.233594,0.695845 +-0.259442,-0.627891,-0.234259,0.695389 +-0.259997,-0.627919,-0.234925,0.694931 +-0.260551,-0.627946,-0.235592,0.694474 +-0.261105,-0.627972,-0.236258,0.694016 +-0.261658,-0.627997,-0.236925,0.693557 +-0.262211,-0.628022,-0.237592,0.693098 +-0.262763,-0.628046,-0.238259,0.692638 +-0.263314,-0.628069,-0.238926,0.692178 +-0.263864,-0.628091,-0.239593,0.691717 +-0.264414,-0.628113,-0.240261,0.691256 +-0.264963,-0.628133,-0.240929,0.690794 +-0.265512,-0.628153,-0.241597,0.690331 +-0.266060,-0.628173,-0.242266,0.689869 +-0.266607,-0.628191,-0.242934,0.689405 +-0.267154,-0.628209,-0.243603,0.688942 +-0.267700,-0.628226,-0.244272,0.688477 +-0.268245,-0.628242,-0.244941,0.688012 +-0.268789,-0.628257,-0.245611,0.687547 +-0.269333,-0.628272,-0.246280,0.687081 +-0.269877,-0.628285,-0.246950,0.686615 +-0.270419,-0.628298,-0.247620,0.686148 +-0.270961,-0.628311,-0.248290,0.685681 +-0.271502,-0.628322,-0.248961,0.685213 +-0.272043,-0.628333,-0.249631,0.684744 +-0.272583,-0.628343,-0.250302,0.684276 +-0.273122,-0.628352,-0.250973,0.683806 +-0.273661,-0.628360,-0.251644,0.683336 +-0.274199,-0.628368,-0.252316,0.682866 +-0.274736,-0.628374,-0.252987,0.682395 +-0.275273,-0.628380,-0.253659,0.681924 +-0.275809,-0.628386,-0.254331,0.681452 +-0.276344,-0.628390,-0.255003,0.680980 +-0.276879,-0.628394,-0.255675,0.680507 +-0.277413,-0.628397,-0.256348,0.680034 +-0.277946,-0.628399,-0.257021,0.679560 +-0.278479,-0.628400,-0.257694,0.679086 +-0.279011,-0.628400,-0.258367,0.678611 +-0.279542,-0.628400,-0.259040,0.678136 +-0.280073,-0.628399,-0.259713,0.677660 +-0.280602,-0.628397,-0.260387,0.677184 +-0.281132,-0.628395,-0.261061,0.676707 +-0.281660,-0.628391,-0.261735,0.676230 +-0.282188,-0.628387,-0.262409,0.675752 +-0.282716,-0.628382,-0.263084,0.675274 +-0.283242,-0.628377,-0.263758,0.674795 +-0.283768,-0.628370,-0.264433,0.674316 +-0.284293,-0.628363,-0.265108,0.673836 +-0.284818,-0.628355,-0.265783,0.673356 +-0.285342,-0.628346,-0.266458,0.672876 +-0.285865,-0.628336,-0.267134,0.672395 +-0.286387,-0.628326,-0.267809,0.671913 +-0.286909,-0.628314,-0.268485,0.671431 +-0.287430,-0.628302,-0.269161,0.670949 +-0.287951,-0.628289,-0.269837,0.670466 +-0.288471,-0.628276,-0.270513,0.669983 +-0.288990,-0.628261,-0.271190,0.669499 +-0.289508,-0.628246,-0.271866,0.669014 +-0.290026,-0.628230,-0.272543,0.668530 +-0.290543,-0.628214,-0.273220,0.668044 +-0.291060,-0.628196,-0.273897,0.667558 +-0.291575,-0.628178,-0.274575,0.667072 +-0.292090,-0.628158,-0.275252,0.666586 +-0.292605,-0.628139,-0.275930,0.666098 +-0.293118,-0.628118,-0.276607,0.665611 +-0.293631,-0.628096,-0.277285,0.665123 +-0.294144,-0.628074,-0.277964,0.664634 +-0.294655,-0.628051,-0.278642,0.664145 +-0.295166,-0.628027,-0.279320,0.663656 +-0.295677,-0.628002,-0.279999,0.663166 +-0.296186,-0.627977,-0.280677,0.662676 +-0.296695,-0.627951,-0.281356,0.662185 +-0.297203,-0.627924,-0.282035,0.661693 +-0.297711,-0.627896,-0.282715,0.661202 +-0.298218,-0.627867,-0.283394,0.660709 +-0.298724,-0.627838,-0.284073,0.660217 +-0.299229,-0.627807,-0.284753,0.659724 +-0.299734,-0.627776,-0.285433,0.659230 +-0.300238,-0.627745,-0.286113,0.658736 +-0.300741,-0.627712,-0.286793,0.658242 +-0.301244,-0.627679,-0.287473,0.657747 +-0.301746,-0.627644,-0.288153,0.657251 +-0.302247,-0.627609,-0.288834,0.656756 +-0.302748,-0.627574,-0.289515,0.656259 +-0.303248,-0.627537,-0.290195,0.655763 +-0.303747,-0.627500,-0.290876,0.655266 +-0.304246,-0.627461,-0.291557,0.654768 +-0.304744,-0.627422,-0.292239,0.654270 +-0.305241,-0.627383,-0.292920,0.653771 +-0.305737,-0.627342,-0.293601,0.653273 +-0.306233,-0.627301,-0.294283,0.652773 +-0.306728,-0.627258,-0.294965,0.652273 +-0.307222,-0.627215,-0.295647,0.651773 +-0.307716,-0.627172,-0.296329,0.651273 +-0.308209,-0.627127,-0.297011,0.650771 +-0.308701,-0.627082,-0.297693,0.650270 +-0.309193,-0.627035,-0.298376,0.649768 +-0.309684,-0.626988,-0.299058,0.649266 +-0.310174,-0.626941,-0.299741,0.648763 +-0.310663,-0.626892,-0.300424,0.648259 +-0.311152,-0.626843,-0.301107,0.647756 +-0.311640,-0.626792,-0.301790,0.647252 +-0.312128,-0.626741,-0.302473,0.646747 +-0.312614,-0.626690,-0.303156,0.646242 +-0.313100,-0.626637,-0.303839,0.645737 +-0.313586,-0.626584,-0.304523,0.645231 +-0.314070,-0.626529,-0.305207,0.644724 +-0.314554,-0.626474,-0.305890,0.644218 +-0.315037,-0.626419,-0.306574,0.643711 +-0.315520,-0.626362,-0.307258,0.643203 +-0.316001,-0.626305,-0.307942,0.642695 +-0.316482,-0.626246,-0.308627,0.642187 +-0.316963,-0.626187,-0.309311,0.641678 +-0.317442,-0.626127,-0.309996,0.641169 +-0.317921,-0.626067,-0.310680,0.640659 +-0.318400,-0.626005,-0.311365,0.640149 +-0.318877,-0.625943,-0.312050,0.639639 +-0.319354,-0.625880,-0.312735,0.639128 +-0.319830,-0.625816,-0.313420,0.638616 +-0.320306,-0.625752,-0.314105,0.638105 +-0.320780,-0.625686,-0.314790,0.637593 +-0.321254,-0.625620,-0.315475,0.637080 +-0.321727,-0.625553,-0.316161,0.636567 +-0.322200,-0.625485,-0.316846,0.636054 +-0.322672,-0.625416,-0.317532,0.635540 +-0.323143,-0.625347,-0.318218,0.635026 +-0.323614,-0.625276,-0.318904,0.634511 +-0.324083,-0.625205,-0.319589,0.633996 +-0.324552,-0.625133,-0.320276,0.633481 +-0.325021,-0.625060,-0.320962,0.632965 +-0.325488,-0.624987,-0.321648,0.632449 +-0.325955,-0.624913,-0.322334,0.631932 +-0.326421,-0.624837,-0.323021,0.631415 +-0.326887,-0.624761,-0.323707,0.630898 +-0.327351,-0.624685,-0.324394,0.630380 +-0.327815,-0.624607,-0.325081,0.629862 +-0.328279,-0.624529,-0.325767,0.629343 +-0.328741,-0.624449,-0.326454,0.628824 +-0.329203,-0.624369,-0.327141,0.628305 +-0.329664,-0.624288,-0.327828,0.627785 +-0.330125,-0.624207,-0.328515,0.627265 +-0.330585,-0.624124,-0.329203,0.626744 +-0.331044,-0.624041,-0.329890,0.626223 +-0.331502,-0.623957,-0.330577,0.625702 +-0.331959,-0.623872,-0.331265,0.625180 +-0.332416,-0.623786,-0.331952,0.624658 +-0.332872,-0.623700,-0.332640,0.624135 +-0.333328,-0.623613,-0.333328,0.623613 +-0.333783,-0.623524,-0.334016,0.623089 +-0.334237,-0.623435,-0.334704,0.622566 +-0.334690,-0.623346,-0.335391,0.622041 +-0.335142,-0.623255,-0.336080,0.621517 +-0.335594,-0.623164,-0.336768,0.620992 +-0.336045,-0.623071,-0.337456,0.620467 +-0.336496,-0.622978,-0.338144,0.619941 +-0.336945,-0.622885,-0.338832,0.619415 +-0.337394,-0.622790,-0.339521,0.618889 +-0.337842,-0.622694,-0.340209,0.618362 +-0.338290,-0.622598,-0.340898,0.617835 +-0.338737,-0.622501,-0.341586,0.617308 +-0.339183,-0.622403,-0.342275,0.616780 +-0.339628,-0.622304,-0.342964,0.616252 +-0.340073,-0.622205,-0.343653,0.615723 +-0.340516,-0.622104,-0.344341,0.615194 +-0.340960,-0.622003,-0.345030,0.614665 +-0.341402,-0.621901,-0.345719,0.614135 +-0.341844,-0.621798,-0.346408,0.613605 +-0.342285,-0.621695,-0.347098,0.613074 +-0.342725,-0.621590,-0.347787,0.612543 +-0.343164,-0.621485,-0.348476,0.612012 +-0.343603,-0.621379,-0.349165,0.611481 +-0.344041,-0.621272,-0.349855,0.610949 +-0.344479,-0.621164,-0.350544,0.610417 +-0.344915,-0.621056,-0.351233,0.609884 +-0.345351,-0.620946,-0.351923,0.609351 +-0.345786,-0.620836,-0.352612,0.608817 +-0.346221,-0.620725,-0.353302,0.608284 +-0.346654,-0.620613,-0.353992,0.607750 +-0.347087,-0.620501,-0.354681,0.607215 +-0.347519,-0.620387,-0.355371,0.606680 +-0.347951,-0.620273,-0.356061,0.606145 +-0.348382,-0.620158,-0.356751,0.605610 +-0.348812,-0.620042,-0.357441,0.605074 +-0.349241,-0.619925,-0.358131,0.604538 +-0.349670,-0.619808,-0.358821,0.604001 +-0.350097,-0.619690,-0.359511,0.603464 +-0.350524,-0.619570,-0.360201,0.602927 +-0.350951,-0.619450,-0.360891,0.602389 +-0.351376,-0.619330,-0.361581,0.601851 +-0.351801,-0.619208,-0.362271,0.601313 +-0.352226,-0.619085,-0.362961,0.600774 +-0.352649,-0.618962,-0.363651,0.600235 +-0.353072,-0.618838,-0.364342,0.599696 +-0.353494,-0.618713,-0.365032,0.599156 +-0.353915,-0.618587,-0.365722,0.598616 +-0.354335,-0.618461,-0.366413,0.598076 +-0.354755,-0.618333,-0.367103,0.597535 +-0.355174,-0.618205,-0.367793,0.596994 +-0.355592,-0.618076,-0.368484,0.596452 +-0.356010,-0.617946,-0.369174,0.595911 +-0.356427,-0.617816,-0.369865,0.595369 +-0.356843,-0.617684,-0.370555,0.594826 +-0.357258,-0.617552,-0.371246,0.594283 +-0.357673,-0.617419,-0.371937,0.593740 +-0.358086,-0.617285,-0.372627,0.593197 +-0.358500,-0.617150,-0.373318,0.592653 +-0.358912,-0.617014,-0.374008,0.592109 +-0.359324,-0.616878,-0.374699,0.591565 +-0.359734,-0.616741,-0.375390,0.591020 +-0.360145,-0.616603,-0.376080,0.590475 +-0.360554,-0.616464,-0.376771,0.589929 +-0.360963,-0.616324,-0.377462,0.589384 +-0.361371,-0.616183,-0.378153,0.588838 +-0.361778,-0.616042,-0.378843,0.588291 +-0.362184,-0.615900,-0.379534,0.587745 +-0.362590,-0.615757,-0.380225,0.587198 +-0.362995,-0.615613,-0.380916,0.586650 +-0.363399,-0.615468,-0.381607,0.586103 +-0.363802,-0.615323,-0.382297,0.585555 +-0.364205,-0.615177,-0.382988,0.585006 +-0.364607,-0.615029,-0.383679,0.584458 +-0.365008,-0.614881,-0.384370,0.583909 +-0.365409,-0.614733,-0.385061,0.583360 +-0.365809,-0.614583,-0.385751,0.582810 +-0.366208,-0.614433,-0.386442,0.582260 +-0.366606,-0.614281,-0.387133,0.581710 +-0.367003,-0.614129,-0.387824,0.581159 +-0.367400,-0.613976,-0.388515,0.580609 +-0.367796,-0.613823,-0.389206,0.580057 +-0.368191,-0.613668,-0.389896,0.579506 +-0.368586,-0.613513,-0.390587,0.578954 +-0.368980,-0.613356,-0.391278,0.578402 +-0.369373,-0.613199,-0.391969,0.577850 +-0.369765,-0.613042,-0.392660,0.577297 +-0.370157,-0.612883,-0.393351,0.576744 +-0.370547,-0.612723,-0.394041,0.576191 +-0.370937,-0.612563,-0.394732,0.575637 +-0.371327,-0.612402,-0.395423,0.575084 +-0.371715,-0.612240,-0.396114,0.574529 +-0.372103,-0.612077,-0.396804,0.573975 +-0.372490,-0.611913,-0.397495,0.573420 +-0.372876,-0.611749,-0.398186,0.572865 +-0.373262,-0.611584,-0.398876,0.572310 +-0.373647,-0.611417,-0.399567,0.571754 +-0.374031,-0.611251,-0.400258,0.571198 +-0.374414,-0.611083,-0.400948,0.570642 +-0.374797,-0.610914,-0.401639,0.570085 +-0.375178,-0.610745,-0.402330,0.569529 +-0.375560,-0.610574,-0.403020,0.568972 +-0.375940,-0.610403,-0.403711,0.568414 +-0.376319,-0.610231,-0.404401,0.567856 +-0.376698,-0.610059,-0.405092,0.567298 +-0.377076,-0.609885,-0.405782,0.566740 +-0.377453,-0.609711,-0.406473,0.566182 +-0.377830,-0.609535,-0.407163,0.565623 +-0.378206,-0.609359,-0.407854,0.565064 +-0.378581,-0.609183,-0.408544,0.564504 +-0.378955,-0.609005,-0.409234,0.563945 +-0.379329,-0.608826,-0.409925,0.563385 +-0.379701,-0.608647,-0.410615,0.562824 +-0.380073,-0.608467,-0.411305,0.562264 +-0.380445,-0.608286,-0.411995,0.561703 +-0.380815,-0.608104,-0.412685,0.561142 +-0.381185,-0.607921,-0.413375,0.560581 +-0.381554,-0.607738,-0.414066,0.560019 +-0.381922,-0.607553,-0.414756,0.559457 +-0.382290,-0.607368,-0.415446,0.558895 +-0.382656,-0.607182,-0.416136,0.558333 +-0.383022,-0.606995,-0.416825,0.557770 +-0.383387,-0.606808,-0.417515,0.557207 +-0.383752,-0.606619,-0.418205,0.556644 +-0.384116,-0.606430,-0.418895,0.556080 +-0.384478,-0.606240,-0.419585,0.555516 +-0.384841,-0.606049,-0.420274,0.554952 +-0.385202,-0.605857,-0.420964,0.554388 +-0.385563,-0.605664,-0.421654,0.553823 +-0.385923,-0.605471,-0.422343,0.553259 +-0.386282,-0.605277,-0.423033,0.552693 +-0.386640,-0.605081,-0.423722,0.552128 +-0.386998,-0.604886,-0.424411,0.551563 +-0.387355,-0.604689,-0.425101,0.550997 +-0.387711,-0.604491,-0.425790,0.550430 +-0.388066,-0.604293,-0.426479,0.549864 +-0.388421,-0.604093,-0.427168,0.549297 +-0.388775,-0.603893,-0.427857,0.548731 +-0.389128,-0.603692,-0.428546,0.548163 +-0.389480,-0.603491,-0.429235,0.547596 +-0.389831,-0.603288,-0.429924,0.547028 +-0.390182,-0.603085,-0.430613,0.546460 +-0.390532,-0.602881,-0.431302,0.545892 +-0.390882,-0.602675,-0.431991,0.545324 +-0.391230,-0.602470,-0.432679,0.544755 +-0.391578,-0.602263,-0.433368,0.544186 +-0.391925,-0.602055,-0.434056,0.543617 +-0.392271,-0.601847,-0.434745,0.543048 +-0.392616,-0.601638,-0.435433,0.542478 +-0.392961,-0.601428,-0.436121,0.541908 +-0.393305,-0.601217,-0.436810,0.541338 +-0.393648,-0.601005,-0.437498,0.540768 +-0.393991,-0.600793,-0.438186,0.540197 +-0.394332,-0.600579,-0.438874,0.539626 +-0.394673,-0.600365,-0.439562,0.539055 +-0.395013,-0.600150,-0.440250,0.538484 +-0.395353,-0.599934,-0.440937,0.537912 +-0.395691,-0.599717,-0.441625,0.537340 +-0.396029,-0.599500,-0.442313,0.536768 +-0.396366,-0.599282,-0.443000,0.536196 +-0.396702,-0.599062,-0.443688,0.535624 +-0.397038,-0.598842,-0.444375,0.535051 +-0.397373,-0.598622,-0.445062,0.534478 +-0.397707,-0.598400,-0.445749,0.533905 +-0.398040,-0.598177,-0.446436,0.533331 +-0.398372,-0.597954,-0.447123,0.532758 +-0.398704,-0.597730,-0.447810,0.532184 +-0.399035,-0.597505,-0.448497,0.531610 +-0.399365,-0.597279,-0.449184,0.531035 +-0.399695,-0.597053,-0.449871,0.530461 +-0.400023,-0.596825,-0.450557,0.529886 +-0.400351,-0.596597,-0.451244,0.529311 +-0.400678,-0.596368,-0.451930,0.528736 +-0.401005,-0.596138,-0.452616,0.528161 +-0.401330,-0.595907,-0.453302,0.527585 +-0.401655,-0.595675,-0.453988,0.527009 +-0.401979,-0.595443,-0.454674,0.526433 +-0.402302,-0.595210,-0.455360,0.525857 +-0.402625,-0.594976,-0.456046,0.525280 +-0.402947,-0.594741,-0.456732,0.524703 +-0.403268,-0.594505,-0.457417,0.524127 +-0.403588,-0.594268,-0.458103,0.523549 +-0.403907,-0.594031,-0.458788,0.522972 +-0.404226,-0.593793,-0.459473,0.522395 +-0.404544,-0.593554,-0.460158,0.521817 +-0.404861,-0.593314,-0.460844,0.521239 +-0.405177,-0.593073,-0.461528,0.520661 +-0.405493,-0.592831,-0.462213,0.520082 +-0.405808,-0.592589,-0.462898,0.519504 +-0.406122,-0.592346,-0.463583,0.518925 +-0.406435,-0.592102,-0.464267,0.518346 +-0.406748,-0.591857,-0.464951,0.517767 +-0.407059,-0.591611,-0.465636,0.517187 +-0.407370,-0.591365,-0.466320,0.516608 +-0.407680,-0.591117,-0.467004,0.516028 +-0.407990,-0.590869,-0.467688,0.515448 +-0.408299,-0.590620,-0.468371,0.514868 +-0.408606,-0.590370,-0.469055,0.514287 +-0.408914,-0.590119,-0.469739,0.513707 +-0.409220,-0.589868,-0.470422,0.513126 +-0.409526,-0.589615,-0.471105,0.512545 +-0.409830,-0.589362,-0.471788,0.511964 +-0.410134,-0.589108,-0.472471,0.511382 +-0.410438,-0.588853,-0.473154,0.510801 +-0.410740,-0.588598,-0.473837,0.510219 +-0.411042,-0.588341,-0.474520,0.509637 +-0.411343,-0.588084,-0.475202,0.509055 +-0.411643,-0.587826,-0.475885,0.508473 +-0.411942,-0.587567,-0.476567,0.507890 +-0.412241,-0.587307,-0.477249,0.507308 +-0.412539,-0.587046,-0.477931,0.506725 +-0.412836,-0.586785,-0.478613,0.506142 +-0.413132,-0.586523,-0.479294,0.505559 +-0.413428,-0.586260,-0.479976,0.504975 +-0.413723,-0.585996,-0.480658,0.504392 +-0.414017,-0.585731,-0.481339,0.503808 +-0.414310,-0.585465,-0.482020,0.503224 +-0.414602,-0.585199,-0.482701,0.502640 +-0.414894,-0.584932,-0.483382,0.502056 +-0.415185,-0.584663,-0.484063,0.501471 +-0.415475,-0.584395,-0.484743,0.500887 +-0.415764,-0.584125,-0.485424,0.500302 +-0.416053,-0.583854,-0.486104,0.499717 +-0.416341,-0.583583,-0.486784,0.499132 +-0.416628,-0.583311,-0.487464,0.498547 +-0.416914,-0.583038,-0.488144,0.497961 +-0.417200,-0.582764,-0.488824,0.497376 +-0.417484,-0.582489,-0.489503,0.496790 +-0.417768,-0.582213,-0.490182,0.496204 +-0.418052,-0.581937,-0.490862,0.495618 +-0.418334,-0.581660,-0.491541,0.495031 +-0.418616,-0.581382,-0.492220,0.494445 +-0.418896,-0.581103,-0.492898,0.493858 +-0.419177,-0.580823,-0.493577,0.493272 +-0.419456,-0.580543,-0.494255,0.492685 +-0.419734,-0.580262,-0.494934,0.492098 +-0.420012,-0.579979,-0.495612,0.491510 +-0.420289,-0.579696,-0.496290,0.490923 +-0.420565,-0.579413,-0.496968,0.490335 +-0.420841,-0.579128,-0.497645,0.489748 +-0.421115,-0.578843,-0.498323,0.489160 +-0.421389,-0.578556,-0.499000,0.488572 +-0.421662,-0.578269,-0.499677,0.487984 +-0.421935,-0.577981,-0.500354,0.487395 +-0.422206,-0.577693,-0.501031,0.486807 +-0.422477,-0.577403,-0.501708,0.486218 +-0.422747,-0.577113,-0.502384,0.485630 +-0.423016,-0.576821,-0.503060,0.485041 +-0.423285,-0.576529,-0.503736,0.484452 +-0.423552,-0.576236,-0.504412,0.483863 +-0.423819,-0.575943,-0.505088,0.483273 +-0.424085,-0.575648,-0.505764,0.482684 +-0.424351,-0.575353,-0.506439,0.482094 +-0.424615,-0.575057,-0.507114,0.481505 +-0.424879,-0.574760,-0.507789,0.480915 +-0.425142,-0.574462,-0.508464,0.480325 +-0.425404,-0.574163,-0.509139,0.479734 +-0.425666,-0.573864,-0.509814,0.479144 +-0.425927,-0.573563,-0.510488,0.478554 +-0.426187,-0.573262,-0.511162,0.477963 +-0.426446,-0.572960,-0.511836,0.477373 +-0.426704,-0.572658,-0.512510,0.476782 +-0.426962,-0.572354,-0.513183,0.476191 +-0.427218,-0.572050,-0.513857,0.475600 +-0.427474,-0.571744,-0.514530,0.475008 +-0.427730,-0.571438,-0.515203,0.474417 +-0.427984,-0.571131,-0.515876,0.473826 +-0.428238,-0.570824,-0.516548,0.473234 +-0.428491,-0.570515,-0.517221,0.472642 +-0.428743,-0.570206,-0.517893,0.472051 +-0.428994,-0.569896,-0.518565,0.471459 +-0.429245,-0.569585,-0.519237,0.470867 +-0.429495,-0.569273,-0.519909,0.470274 +-0.429744,-0.568960,-0.520580,0.469682 +-0.429992,-0.568647,-0.521251,0.469090 +-0.430240,-0.568332,-0.521922,0.468497 +-0.430486,-0.568017,-0.522593,0.467904 +-0.430732,-0.567701,-0.523264,0.467312 +-0.430977,-0.567385,-0.523934,0.466719 +-0.431222,-0.567067,-0.524604,0.466126 +-0.431465,-0.566749,-0.525274,0.465533 +-0.431708,-0.566429,-0.525944,0.464939 +-0.431950,-0.566109,-0.526614,0.464346 +-0.432191,-0.565788,-0.527283,0.463752 +-0.432432,-0.565467,-0.527952,0.463159 +-0.432672,-0.565144,-0.528621,0.462565 +-0.432911,-0.564821,-0.529290,0.461971 +-0.433149,-0.564497,-0.529959,0.461378 +-0.433386,-0.564172,-0.530627,0.460784 +-0.433623,-0.563846,-0.531295,0.460189 +-0.433859,-0.563519,-0.531963,0.459595 +-0.434094,-0.563192,-0.532631,0.459001 +-0.434328,-0.562864,-0.533298,0.458407 +-0.434561,-0.562535,-0.533966,0.457812 +-0.434794,-0.562205,-0.534633,0.457217 +-0.435026,-0.561874,-0.535299,0.456623 +-0.435257,-0.561543,-0.535966,0.456028 +-0.435488,-0.561210,-0.536632,0.455433 +-0.435717,-0.560877,-0.537298,0.454838 +-0.435946,-0.560543,-0.537964,0.454243 +-0.436174,-0.560208,-0.538630,0.453648 +-0.436401,-0.559873,-0.539296,0.453053 +-0.436628,-0.559536,-0.539961,0.452457 +-0.436853,-0.559199,-0.540626,0.451862 +-0.437078,-0.558861,-0.541290,0.451266 +-0.437303,-0.558522,-0.541955,0.450671 +-0.437526,-0.558183,-0.542619,0.450075 +-0.437749,-0.557842,-0.543283,0.449479 +-0.437970,-0.557501,-0.543947,0.448883 +-0.438191,-0.557159,-0.544611,0.448287 +-0.438412,-0.556816,-0.545274,0.447691 +-0.438631,-0.556472,-0.545937,0.447095 +-0.438850,-0.556127,-0.546600,0.446499 +-0.439068,-0.555782,-0.547263,0.445903 +-0.439285,-0.555436,-0.547925,0.445306 +-0.439501,-0.555089,-0.548587,0.444710 +-0.439717,-0.554741,-0.549249,0.444113 +-0.439932,-0.554392,-0.549911,0.443517 +-0.440146,-0.554043,-0.550572,0.442920 +-0.440359,-0.553692,-0.551234,0.442323 +-0.440572,-0.553341,-0.551895,0.441727 +-0.440783,-0.552989,-0.552555,0.441130 +-0.440994,-0.552637,-0.553216,0.440533 +-0.441204,-0.552283,-0.553876,0.439936 +-0.441414,-0.551929,-0.554536,0.439339 +-0.441622,-0.551574,-0.555196,0.438741 +-0.441830,-0.551218,-0.555855,0.438144 +-0.442037,-0.550861,-0.556514,0.437547 +-0.442244,-0.550503,-0.557173,0.436950 +-0.442449,-0.550145,-0.557832,0.436352 +-0.442654,-0.549786,-0.558490,0.435755 +-0.442858,-0.549426,-0.559148,0.435157 +-0.443061,-0.549065,-0.559806,0.434560 +-0.443263,-0.548703,-0.560464,0.433962 +-0.443465,-0.548341,-0.561121,0.433364 +-0.443666,-0.547977,-0.561778,0.432766 +-0.443866,-0.547613,-0.562435,0.432169 +-0.444065,-0.547248,-0.563092,0.431571 +-0.444264,-0.546883,-0.563748,0.430973 +-0.444461,-0.546516,-0.564404,0.430375 +-0.444658,-0.546149,-0.565060,0.429777 +-0.444854,-0.545781,-0.565715,0.429179 +-0.445050,-0.545412,-0.566371,0.428580 +-0.445244,-0.545042,-0.567026,0.427982 +-0.445438,-0.544671,-0.567680,0.427384 +-0.445631,-0.544300,-0.568335,0.426786 +-0.445824,-0.543928,-0.568989,0.426187 +-0.446015,-0.543555,-0.569643,0.425589 +-0.446206,-0.543181,-0.570296,0.424990 +-0.446396,-0.542806,-0.570950,0.424392 +-0.446585,-0.542431,-0.571603,0.423793 +-0.446773,-0.542055,-0.572256,0.423195 +-0.446961,-0.541678,-0.572908,0.422596 +-0.447148,-0.541300,-0.573560,0.421998 +-0.447334,-0.540921,-0.574212,0.421399 +-0.447519,-0.540542,-0.574864,0.420800 +-0.447704,-0.540161,-0.575515,0.420201 +-0.447888,-0.539780,-0.576166,0.419603 +-0.448071,-0.539398,-0.576817,0.419004 +-0.448253,-0.539016,-0.577468,0.418405 +-0.448434,-0.538632,-0.578118,0.417806 +-0.448615,-0.538248,-0.578768,0.417207 +-0.448795,-0.537863,-0.579417,0.416608 +-0.448974,-0.537477,-0.580067,0.416009 +-0.449152,-0.537090,-0.580716,0.415410 +-0.449330,-0.536703,-0.581365,0.414811 +-0.449506,-0.536314,-0.582013,0.414212 +-0.449682,-0.535925,-0.582661,0.413613 +-0.449858,-0.535535,-0.583309,0.413014 +-0.450032,-0.535145,-0.583957,0.412415 +-0.450206,-0.534753,-0.584604,0.411815 +-0.450379,-0.534361,-0.585251,0.411216 +-0.450551,-0.533968,-0.585898,0.410617 +-0.450722,-0.533574,-0.586544,0.410018 +-0.450893,-0.533179,-0.587190,0.409418 +-0.451062,-0.532784,-0.587836,0.408819 +-0.451231,-0.532387,-0.588482,0.408220 +-0.451400,-0.531990,-0.589127,0.407621 +-0.451567,-0.531592,-0.589772,0.407021 +-0.451734,-0.531193,-0.590416,0.406422 +-0.451900,-0.530794,-0.591060,0.405823 +-0.452065,-0.530394,-0.591704,0.405223 +-0.452229,-0.529992,-0.592348,0.404624 +-0.452393,-0.529591,-0.592991,0.404024 +-0.452556,-0.529188,-0.593634,0.403425 +-0.452718,-0.528784,-0.594277,0.402826 +-0.452879,-0.528380,-0.594919,0.402226 +-0.453040,-0.527975,-0.595562,0.401627 +-0.453199,-0.527569,-0.596203,0.401027 +-0.453358,-0.527162,-0.596845,0.400428 +-0.453516,-0.526755,-0.597486,0.399829 +-0.453674,-0.526346,-0.598127,0.399229 +-0.453831,-0.525937,-0.598767,0.398630 +-0.453986,-0.525527,-0.599407,0.398030 +-0.454142,-0.525117,-0.600047,0.397431 +-0.454296,-0.524705,-0.600687,0.396831 +-0.454449,-0.524293,-0.601326,0.396232 +-0.454602,-0.523880,-0.601965,0.395633 +-0.454754,-0.523466,-0.602603,0.395033 +-0.454905,-0.523051,-0.603242,0.394434 +-0.455056,-0.522636,-0.603880,0.393834 +-0.455206,-0.522220,-0.604517,0.393235 +-0.455354,-0.521803,-0.605154,0.392636 +-0.455503,-0.521385,-0.605791,0.392036 +-0.455650,-0.520966,-0.606428,0.391437 +-0.455797,-0.520547,-0.607064,0.390837 +-0.455942,-0.520126,-0.607700,0.390238 +-0.456087,-0.519705,-0.608336,0.389639 +-0.456232,-0.519284,-0.608971,0.389039 +-0.456375,-0.518861,-0.609606,0.388440 +-0.456518,-0.518438,-0.610240,0.387841 +-0.456660,-0.518013,-0.610874,0.387242 +-0.456801,-0.517588,-0.611508,0.386642 +-0.456942,-0.517163,-0.612142,0.386043 +-0.457081,-0.516736,-0.612775,0.385444 +-0.457220,-0.516309,-0.613408,0.384845 +-0.457358,-0.515881,-0.614041,0.384246 +-0.457496,-0.515452,-0.614673,0.383646 +-0.457632,-0.515022,-0.615305,0.383047 +-0.457768,-0.514592,-0.615936,0.382448 +-0.457903,-0.514160,-0.616567,0.381849 +-0.458037,-0.513728,-0.617198,0.381250 +-0.458171,-0.513295,-0.617828,0.380651 +-0.458304,-0.512862,-0.618458,0.380052 +-0.458436,-0.512427,-0.619088,0.379453 +-0.458567,-0.511992,-0.619718,0.378854 +-0.458697,-0.511556,-0.620347,0.378255 +-0.458827,-0.511119,-0.620975,0.377657 +-0.458956,-0.510682,-0.621604,0.377058 +-0.459084,-0.510243,-0.622232,0.376459 +-0.459211,-0.509804,-0.622859,0.375860 +-0.459338,-0.509364,-0.623486,0.375261 +-0.459464,-0.508924,-0.624113,0.374663 +-0.459589,-0.508482,-0.624740,0.374064 +-0.459713,-0.508040,-0.625366,0.373466 +-0.459837,-0.507597,-0.625992,0.372867 +-0.459959,-0.507153,-0.626617,0.372268 +-0.460081,-0.506708,-0.627242,0.371670 +-0.460203,-0.506263,-0.627867,0.371072 +-0.460323,-0.505817,-0.628491,0.370473 +-0.460443,-0.505370,-0.629115,0.369875 +-0.460562,-0.504922,-0.629739,0.369277 +-0.460680,-0.504474,-0.630362,0.368678 +-0.460797,-0.504024,-0.630985,0.368080 +-0.460914,-0.503574,-0.631608,0.367482 +-0.461030,-0.503123,-0.632230,0.366884 +-0.461145,-0.502672,-0.632851,0.366286 +-0.461259,-0.502219,-0.633473,0.365688 +-0.461373,-0.501766,-0.634094,0.365090 +-0.461486,-0.501312,-0.634714,0.364492 +-0.461598,-0.500858,-0.635335,0.363894 +-0.461709,-0.500402,-0.635955,0.363297 +-0.461820,-0.499946,-0.636574,0.362699 +-0.461929,-0.499489,-0.637193,0.362101 +-0.462038,-0.499031,-0.637812,0.361504 +-0.462146,-0.498572,-0.638430,0.360906 +-0.462254,-0.498113,-0.639048,0.360309 +-0.462361,-0.497653,-0.639666,0.359711 +-0.462467,-0.497192,-0.640283,0.359114 +-0.462572,-0.496730,-0.640900,0.358517 +-0.462676,-0.496267,-0.641516,0.357919 +-0.462780,-0.495804,-0.642132,0.357322 +-0.462883,-0.495340,-0.642748,0.356725 +-0.462985,-0.494875,-0.643363,0.356128 +-0.463086,-0.494410,-0.643978,0.355531 +-0.463187,-0.493943,-0.644593,0.354934 +-0.463287,-0.493476,-0.645207,0.354338 +-0.463386,-0.493008,-0.645820,0.353741 +-0.463484,-0.492540,-0.646434,0.353144 +-0.463582,-0.492070,-0.647047,0.352548 +-0.463678,-0.491600,-0.647659,0.351951 +-0.463774,-0.491129,-0.648271,0.351355 +-0.463870,-0.490657,-0.648883,0.350758 +-0.463964,-0.490185,-0.649494,0.350162 +-0.464058,-0.489711,-0.650105,0.349566 +-0.464151,-0.489237,-0.650716,0.348970 +-0.464243,-0.488763,-0.651326,0.348374 +-0.464335,-0.488287,-0.651935,0.347778 +-0.464425,-0.487811,-0.652545,0.347182 +-0.464515,-0.487334,-0.653154,0.346586 +-0.464605,-0.486856,-0.653762,0.345990 +-0.464693,-0.486377,-0.654370,0.345395 +-0.464781,-0.485898,-0.654978,0.344799 +-0.464868,-0.485417,-0.655585,0.344204 +-0.464954,-0.484936,-0.656192,0.343608 +-0.465039,-0.484455,-0.656798,0.343013 +-0.465124,-0.483972,-0.657404,0.342418 +-0.465208,-0.483489,-0.658010,0.341823 +-0.465291,-0.483005,-0.658615,0.341228 +-0.465373,-0.482520,-0.659220,0.340633 +-0.465455,-0.482035,-0.659824,0.340038 +-0.465536,-0.481549,-0.660428,0.339443 +-0.465616,-0.481061,-0.661032,0.338849 +-0.465695,-0.480574,-0.661635,0.338254 +-0.465774,-0.480085,-0.662238,0.337660 +-0.465852,-0.479596,-0.662840,0.337066 +-0.465929,-0.479106,-0.663442,0.336471 +-0.466005,-0.478615,-0.664043,0.335877 +-0.466081,-0.478123,-0.664644,0.335283 +-0.466156,-0.477631,-0.665245,0.334689 +-0.466230,-0.477138,-0.665845,0.334095 +-0.466303,-0.476644,-0.666445,0.333502 +-0.466376,-0.476149,-0.667044,0.332908 +-0.466447,-0.475654,-0.667643,0.332315 +-0.466519,-0.475158,-0.668241,0.331721 +-0.466589,-0.474661,-0.668839,0.331128 +-0.466658,-0.474163,-0.669437,0.330535 +-0.466727,-0.473665,-0.670034,0.329942 +-0.466795,-0.473166,-0.670631,0.329349 +-0.466863,-0.472666,-0.671227,0.328756 +-0.466929,-0.472165,-0.671823,0.328163 +-0.466995,-0.471664,-0.672418,0.327571 +-0.467060,-0.471162,-0.673013,0.326978 +-0.467124,-0.470659,-0.673608,0.326386 +-0.467188,-0.470155,-0.674202,0.325794 +-0.467251,-0.469651,-0.674796,0.325201 +-0.467313,-0.469145,-0.675389,0.324609 +-0.467374,-0.468639,-0.675982,0.324018 +-0.467435,-0.468133,-0.676574,0.323426 +-0.467494,-0.467625,-0.677166,0.322834 +-0.467553,-0.467117,-0.677757,0.322243 +-0.467612,-0.466608,-0.678348,0.321651 +-0.467669,-0.466099,-0.678939,0.321060 +-0.467726,-0.465588,-0.679529,0.320469 +-0.467782,-0.465077,-0.680119,0.319878 +-0.467838,-0.464565,-0.680708,0.319287 +-0.467892,-0.464052,-0.681297,0.318696 +-0.467946,-0.463539,-0.681885,0.318105 +-0.467999,-0.463025,-0.682473,0.317515 +-0.468051,-0.462510,-0.683060,0.316924 +-0.468103,-0.461994,-0.683647,0.316334 +-0.468154,-0.461478,-0.684234,0.315744 +-0.468204,-0.460961,-0.684820,0.315154 +-0.468253,-0.460443,-0.685405,0.314564 +-0.468302,-0.459924,-0.685990,0.313974 +-0.468350,-0.459405,-0.686575,0.313385 +-0.468397,-0.458885,-0.687159,0.312795 +-0.468443,-0.458364,-0.687743,0.312206 +-0.468489,-0.457843,-0.688326,0.311617 +-0.468534,-0.457320,-0.688909,0.311028 +-0.468578,-0.456797,-0.689492,0.310439 +-0.468621,-0.456273,-0.690073,0.309850 +-0.468664,-0.455749,-0.690655,0.309262 +-0.468706,-0.455224,-0.691236,0.308673 +-0.468747,-0.454698,-0.691816,0.308085 +-0.468788,-0.454171,-0.692396,0.307497 +-0.468827,-0.453643,-0.692976,0.306909 +-0.468866,-0.453115,-0.693555,0.306321 +-0.468904,-0.452586,-0.694134,0.305733 +-0.468942,-0.452057,-0.694712,0.305146 +-0.468979,-0.451526,-0.695289,0.304558 +-0.469015,-0.450995,-0.695867,0.303971 +-0.469050,-0.450463,-0.696443,0.303384 +-0.469084,-0.449931,-0.697020,0.302797 +-0.469118,-0.449397,-0.697595,0.302210 +-0.469151,-0.448863,-0.698171,0.301624 +-0.469184,-0.448328,-0.698745,0.301037 +-0.469215,-0.447793,-0.699320,0.300451 +-0.469246,-0.447257,-0.699894,0.299865 +-0.469276,-0.446720,-0.700467,0.299279 +-0.469305,-0.446182,-0.701040,0.298693 +-0.469334,-0.445643,-0.701612,0.298107 +-0.469362,-0.445104,-0.702184,0.297521 +-0.469389,-0.444564,-0.702756,0.296936 +-0.469415,-0.444024,-0.703327,0.296351 +-0.469441,-0.443482,-0.703897,0.295766 +-0.469466,-0.442940,-0.704467,0.295181 +-0.469490,-0.442397,-0.705037,0.294596 +-0.469514,-0.441854,-0.705606,0.294012 +-0.469536,-0.441309,-0.706174,0.293427 +-0.469558,-0.440764,-0.706742,0.292843 +-0.469580,-0.440219,-0.707310,0.292259 +-0.469600,-0.439672,-0.707877,0.291675 +-0.469620,-0.439125,-0.708443,0.291092 +-0.469639,-0.438577,-0.709009,0.290508 +-0.469657,-0.438029,-0.709575,0.289925 +-0.469675,-0.437479,-0.710140,0.289342 +-0.469692,-0.436929,-0.710705,0.288759 +-0.469708,-0.436378,-0.711269,0.288176 +-0.469723,-0.435827,-0.711832,0.287593 +-0.469738,-0.435275,-0.712395,0.287011 +-0.469752,-0.434722,-0.712958,0.286428 +-0.469765,-0.434168,-0.713520,0.285846 +-0.469778,-0.433614,-0.714081,0.285264 +-0.469790,-0.433059,-0.714642,0.284683 +-0.469801,-0.432503,-0.715203,0.284101 +-0.469811,-0.431946,-0.715763,0.283520 +-0.469820,-0.431389,-0.716323,0.282939 +-0.469829,-0.430831,-0.716882,0.282358 +-0.469837,-0.430272,-0.717440,0.281777 +-0.469845,-0.429713,-0.717998,0.281196 +-0.469851,-0.429153,-0.718556,0.280616 +-0.469857,-0.428592,-0.719113,0.280036 +-0.469863,-0.428031,-0.719669,0.279456 +-0.469867,-0.427468,-0.720225,0.278876 +-0.469871,-0.426905,-0.720780,0.278296 +-0.469874,-0.426342,-0.721335,0.277717 +-0.469876,-0.425777,-0.721890,0.277137 +-0.469878,-0.425212,-0.722444,0.276558 +-0.469879,-0.424646,-0.722997,0.275979 +-0.469879,-0.424080,-0.723550,0.275401 +-0.469878,-0.423513,-0.724102,0.274822 +-0.469877,-0.422945,-0.724654,0.274244 +-0.469875,-0.422376,-0.725205,0.273666 +-0.469872,-0.421807,-0.725756,0.273088 +-0.469869,-0.421237,-0.726306,0.272510 +-0.469865,-0.420666,-0.726856,0.271933 +-0.469860,-0.420095,-0.727405,0.271356 +-0.469854,-0.419523,-0.727954,0.270779 +-0.469848,-0.418950,-0.728502,0.270202 +-0.469841,-0.418376,-0.729050,0.269625 +-0.469833,-0.417802,-0.729597,0.269049 +-0.469824,-0.417227,-0.730144,0.268472 +-0.469815,-0.416651,-0.730690,0.267896 +-0.469805,-0.416075,-0.731235,0.267320 +-0.469794,-0.415498,-0.731780,0.266745 +-0.469783,-0.414920,-0.732324,0.266169 +-0.469771,-0.414342,-0.732868,0.265594 +-0.469758,-0.413762,-0.733412,0.265019 +-0.469745,-0.413183,-0.733955,0.264444 +-0.469730,-0.412602,-0.734497,0.263870 +-0.469715,-0.412021,-0.735039,0.263296 +-0.469700,-0.411439,-0.735580,0.262722 +-0.469683,-0.410856,-0.736121,0.262148 +-0.469666,-0.410273,-0.736661,0.261574 +-0.469648,-0.409689,-0.737200,0.261000 +-0.469630,-0.409104,-0.737739,0.260427 +-0.469611,-0.408519,-0.738278,0.259854 +-0.469591,-0.407932,-0.738816,0.259281 +-0.469570,-0.407346,-0.739353,0.258709 +-0.469549,-0.406758,-0.739890,0.258137 +-0.469527,-0.406170,-0.740427,0.257564 +-0.469504,-0.405581,-0.740962,0.256993 +-0.469480,-0.404991,-0.741498,0.256421 +-0.469456,-0.404401,-0.742032,0.255849 +-0.469431,-0.403810,-0.742566,0.255278 +-0.469405,-0.403219,-0.743100,0.254707 +-0.469379,-0.402626,-0.743633,0.254136 +-0.469352,-0.402033,-0.744166,0.253566 +-0.469324,-0.401439,-0.744698,0.252996 +-0.469296,-0.400845,-0.745229,0.252426 +-0.469266,-0.400250,-0.745760,0.251856 +-0.469237,-0.399654,-0.746290,0.251286 +-0.469206,-0.399058,-0.746820,0.250717 +-0.469175,-0.398461,-0.747349,0.250148 +-0.469143,-0.397863,-0.747877,0.249579 +-0.469110,-0.397264,-0.748406,0.249010 +-0.469077,-0.396665,-0.748933,0.248442 +-0.469042,-0.396065,-0.749460,0.247874 +-0.469008,-0.395465,-0.749986,0.247306 +-0.468972,-0.394864,-0.750512,0.246738 +-0.468936,-0.394262,-0.751037,0.246171 +-0.468899,-0.393659,-0.751562,0.245603 +-0.468861,-0.393056,-0.752086,0.245037 +-0.468823,-0.392452,-0.752610,0.244470 +-0.468784,-0.391847,-0.753133,0.243903 +-0.468744,-0.391242,-0.753655,0.243337 +-0.468704,-0.390636,-0.754177,0.242771 +-0.468662,-0.390029,-0.754698,0.242206 +-0.468621,-0.389422,-0.755219,0.241640 +-0.468578,-0.388814,-0.755739,0.241075 +-0.468535,-0.388205,-0.756258,0.240510 +-0.468491,-0.387596,-0.756777,0.239945 +-0.468446,-0.386986,-0.757296,0.239381 +-0.468401,-0.386375,-0.757814,0.238817 +-0.468355,-0.385764,-0.758331,0.238253 +-0.468308,-0.385152,-0.758848,0.237689 +-0.468261,-0.384539,-0.759364,0.237126 +-0.468212,-0.383926,-0.759879,0.236562 +-0.468164,-0.383312,-0.760394,0.235999 +-0.468114,-0.382697,-0.760908,0.235437 +-0.468064,-0.382082,-0.761422,0.234874 +-0.468013,-0.381466,-0.761935,0.234312 +-0.467961,-0.380849,-0.762448,0.233750 +-0.467909,-0.380232,-0.762960,0.233189 +-0.467856,-0.379614,-0.763472,0.232628 +-0.467802,-0.378995,-0.763982,0.232066 +-0.467748,-0.378376,-0.764493,0.231506 +-0.467693,-0.377756,-0.765002,0.230945 +-0.467637,-0.377135,-0.765511,0.230385 +-0.467581,-0.376513,-0.766020,0.229825 +-0.467523,-0.375891,-0.766528,0.229265 +-0.467466,-0.375269,-0.767035,0.228706 +-0.467407,-0.374645,-0.767542,0.228146 +-0.467348,-0.374021,-0.768048,0.227587 +-0.467288,-0.373397,-0.768554,0.227029 +-0.467227,-0.372772,-0.769059,0.226470 +-0.467166,-0.372146,-0.769563,0.225912 +-0.467104,-0.371519,-0.770067,0.225355 +-0.467041,-0.370892,-0.770570,0.224797 +-0.466978,-0.370264,-0.771072,0.224240 +-0.466914,-0.369635,-0.771574,0.223683 +-0.466849,-0.369006,-0.772076,0.223126 +-0.466784,-0.368376,-0.772577,0.222570 +-0.466718,-0.367745,-0.773077,0.222013 +-0.466651,-0.367114,-0.773576,0.221457 +-0.466584,-0.366482,-0.774075,0.220902 +-0.466516,-0.365850,-0.774574,0.220347 +-0.466447,-0.365217,-0.775072,0.219792 +-0.466377,-0.364583,-0.775569,0.219237 +-0.466307,-0.363949,-0.776065,0.218682 +-0.466236,-0.363313,-0.776561,0.218128 +-0.466165,-0.362678,-0.777057,0.217574 +-0.466092,-0.362041,-0.777551,0.217021 +-0.466020,-0.361404,-0.778045,0.216467 +-0.465946,-0.360767,-0.778539,0.215914 +-0.465872,-0.360128,-0.779032,0.215362 +-0.465797,-0.359489,-0.779524,0.214809 +-0.465721,-0.358850,-0.780016,0.214257 +-0.465645,-0.358209,-0.780507,0.213705 +-0.465568,-0.357569,-0.780997,0.213154 +-0.465490,-0.356927,-0.781487,0.212602 +-0.465412,-0.356285,-0.781976,0.212051 +-0.465333,-0.355642,-0.782465,0.211501 +-0.465253,-0.354998,-0.782953,0.210950 +-0.465173,-0.354354,-0.783440,0.210400 +-0.465092,-0.353710,-0.783927,0.209850 +-0.465010,-0.353064,-0.784413,0.209301 +-0.464928,-0.352418,-0.784899,0.208752 +-0.464845,-0.351772,-0.785384,0.208203 +-0.464761,-0.351124,-0.785868,0.207654 +-0.464677,-0.350476,-0.786352,0.207106 +-0.464592,-0.349828,-0.786835,0.206558 +-0.464506,-0.349179,-0.787317,0.206010 +-0.464420,-0.348529,-0.787799,0.205463 +-0.464332,-0.347878,-0.788280,0.204916 +-0.464245,-0.347227,-0.788761,0.204369 +-0.464156,-0.346576,-0.789240,0.203823 +-0.464067,-0.345923,-0.789720,0.203277 +-0.463978,-0.345270,-0.790198,0.202731 +-0.463887,-0.344617,-0.790676,0.202185 +-0.463796,-0.343962,-0.791154,0.201640 +-0.463704,-0.343308,-0.791631,0.201095 +-0.463612,-0.342652,-0.792107,0.200551 +-0.463519,-0.341996,-0.792582,0.200006 +-0.463425,-0.341339,-0.793057,0.199463 +-0.463331,-0.340682,-0.793531,0.198919 +-0.463236,-0.340024,-0.794005,0.198376 +-0.463140,-0.339365,-0.794478,0.197833 +-0.463044,-0.338706,-0.794950,0.197290 +-0.462946,-0.338046,-0.795422,0.196748 +-0.462849,-0.337386,-0.795893,0.196206 +-0.462750,-0.336725,-0.796363,0.195664 +-0.462651,-0.336063,-0.796833,0.195122 +-0.462552,-0.335401,-0.797302,0.194581 +-0.462451,-0.334738,-0.797770,0.194041 +-0.462350,-0.334074,-0.798238,0.193500 +-0.462249,-0.333410,-0.798705,0.192960 +-0.462146,-0.332745,-0.799172,0.192420 +-0.462043,-0.332080,-0.799638,0.191881 diff --git a/scripts/testv/headrot_case03_3000_q.csv b/scripts/testv/headrot_case03_3000_q.csv index e69de29bb2..71fb12e492 100644 --- a/scripts/testv/headrot_case03_3000_q.csv +++ b/scripts/testv/headrot_case03_3000_q.csv @@ -0,0 +1,3000 @@ +0.965926,0.000000,0.000000,0.258819 +0.965499,0.000000,0.000000,0.260408 +0.965069,0.000000,0.000000,0.261995 +0.964637,0.000000,0.000000,0.263582 +0.964202,0.000000,0.000000,0.265169 +0.963765,0.000000,0.000000,0.266754 +0.963324,0.000000,0.000000,0.268339 +0.962882,0.000000,0.000000,0.269923 +0.962437,0.000000,0.000000,0.271507 +0.961989,0.000000,0.000000,0.273089 +0.961538,0.000000,0.000000,0.274671 +0.961085,0.000000,0.000000,0.276252 +0.960630,0.000000,0.000000,0.277832 +0.960172,0.000000,0.000000,0.279411 +0.959711,0.000000,0.000000,0.280990 +0.959248,0.000000,0.000000,0.282567 +0.958782,0.000000,0.000000,0.284144 +0.958313,0.000000,0.000000,0.285720 +0.957842,0.000000,0.000000,0.287295 +0.957369,0.000000,0.000000,0.288869 +0.956893,0.000000,0.000000,0.290442 +0.956414,0.000000,0.000000,0.292014 +0.955933,0.000000,0.000000,0.293585 +0.955449,0.000000,0.000000,0.295155 +0.954963,0.000000,0.000000,0.296725 +0.954474,0.000000,0.000000,0.298293 +0.953983,0.000000,0.000000,0.299861 +0.953489,0.000000,0.000000,0.301427 +0.952993,0.000000,0.000000,0.302992 +0.952494,0.000000,0.000000,0.304557 +0.951993,0.000000,0.000000,0.306120 +0.951489,0.000000,0.000000,0.307683 +0.950983,0.000000,0.000000,0.309244 +0.950474,0.000000,0.000000,0.310804 +0.949963,0.000000,0.000000,0.312363 +0.949449,0.000000,0.000000,0.313922 +0.948933,0.000000,0.000000,0.315479 +0.948414,0.000000,0.000000,0.317035 +0.947893,0.000000,0.000000,0.318589 +0.947369,0.000000,0.000000,0.320143 +0.946843,0.000000,0.000000,0.321696 +0.946315,0.000000,0.000000,0.323247 +0.945784,0.000000,0.000000,0.324797 +0.945250,0.000000,0.000000,0.326347 +0.944714,0.000000,0.000000,0.327895 +0.944176,0.000000,0.000000,0.329441 +0.943635,0.000000,0.000000,0.330987 +0.943092,0.000000,0.000000,0.332531 +0.942547,0.000000,0.000000,0.334075 +0.941999,0.000000,0.000000,0.335617 +0.941448,0.000000,0.000000,0.337157 +0.940896,0.000000,0.000000,0.338697 +0.940340,0.000000,0.000000,0.340235 +0.939783,0.000000,0.000000,0.341772 +0.939223,0.000000,0.000000,0.343308 +0.938661,0.000000,0.000000,0.344842 +0.938096,0.000000,0.000000,0.346375 +0.937529,0.000000,0.000000,0.347907 +0.936960,0.000000,0.000000,0.349438 +0.936388,0.000000,0.000000,0.350967 +0.935814,0.000000,0.000000,0.352495 +0.935237,0.000000,0.000000,0.354022 +0.934659,0.000000,0.000000,0.355547 +0.934077,0.000000,0.000000,0.357071 +0.933494,0.000000,0.000000,0.358593 +0.932908,0.000000,0.000000,0.360114 +0.932320,0.000000,0.000000,0.361634 +0.931730,0.000000,0.000000,0.363152 +0.931137,0.000000,0.000000,0.364669 +0.930542,0.000000,0.000000,0.366184 +0.929945,0.000000,0.000000,0.367698 +0.929346,0.000000,0.000000,0.369211 +0.928744,0.000000,0.000000,0.370722 +0.928140,0.000000,0.000000,0.372232 +0.927534,0.000000,0.000000,0.373740 +0.926925,0.000000,0.000000,0.375247 +0.926314,0.000000,0.000000,0.376752 +0.925701,0.000000,0.000000,0.378255 +0.925086,0.000000,0.000000,0.379758 +0.924469,0.000000,0.000000,0.381258 +0.923849,0.000000,0.000000,0.382758 +0.923227,0.000000,0.000000,0.384255 +0.922603,0.000000,0.000000,0.385751 +0.921977,0.000000,0.000000,0.387246 +0.921348,0.000000,0.000000,0.388739 +0.920717,0.000000,0.000000,0.390230 +0.920085,0.000000,0.000000,0.391720 +0.919450,0.000000,0.000000,0.393208 +0.918812,0.000000,0.000000,0.394695 +0.918173,0.000000,0.000000,0.396180 +0.917532,0.000000,0.000000,0.397663 +0.916888,0.000000,0.000000,0.399145 +0.916242,0.000000,0.000000,0.400625 +0.915594,0.000000,0.000000,0.402103 +0.914944,0.000000,0.000000,0.403580 +0.914292,0.000000,0.000000,0.405055 +0.913638,0.000000,0.000000,0.406529 +0.912982,0.000000,0.000000,0.408000 +0.912323,0.000000,0.000000,0.409470 +0.911663,0.000000,0.000000,0.410939 +0.911000,0.000000,0.000000,0.412405 +0.910336,0.000000,0.000000,0.413870 +0.909669,0.000000,0.000000,0.415333 +0.909001,0.000000,0.000000,0.416795 +0.908330,0.000000,0.000000,0.418255 +0.907657,0.000000,0.000000,0.419713 +0.906982,0.000000,0.000000,0.421169 +0.906305,0.000000,0.000000,0.422623 +0.905627,0.000000,0.000000,0.424076 +0.904946,0.000000,0.000000,0.425527 +0.904263,0.000000,0.000000,0.426976 +0.903578,0.000000,0.000000,0.428423 +0.902892,0.000000,0.000000,0.429868 +0.902203,0.000000,0.000000,0.431312 +0.901512,0.000000,0.000000,0.432754 +0.900819,0.000000,0.000000,0.434194 +0.900125,0.000000,0.000000,0.435632 +0.899428,0.000000,0.000000,0.437068 +0.898730,0.000000,0.000000,0.438502 +0.898030,0.000000,0.000000,0.439935 +0.897327,0.000000,0.000000,0.441366 +0.896623,0.000000,0.000000,0.442794 +0.895917,0.000000,0.000000,0.444221 +0.895209,0.000000,0.000000,0.445646 +0.894499,0.000000,0.000000,0.447069 +0.893788,0.000000,0.000000,0.448490 +0.893074,0.000000,0.000000,0.449909 +0.892359,0.000000,0.000000,0.451327 +0.891642,0.000000,0.000000,0.452742 +0.890923,0.000000,0.000000,0.454155 +0.890202,0.000000,0.000000,0.455567 +0.889479,0.000000,0.000000,0.456976 +0.888755,0.000000,0.000000,0.458383 +0.888028,0.000000,0.000000,0.459789 +0.887300,0.000000,0.000000,0.461192 +0.886570,0.000000,0.000000,0.462594 +0.885839,0.000000,0.000000,0.463993 +0.885105,0.000000,0.000000,0.465391 +0.884370,0.000000,0.000000,0.466786 +0.883633,0.000000,0.000000,0.468179 +0.882895,0.000000,0.000000,0.469571 +0.882155,0.000000,0.000000,0.470960 +0.881413,0.000000,0.000000,0.472347 +0.880669,0.000000,0.000000,0.473732 +0.879923,0.000000,0.000000,0.475116 +0.879176,0.000000,0.000000,0.476497 +0.878428,0.000000,0.000000,0.477876 +0.877677,0.000000,0.000000,0.479252 +0.876925,0.000000,0.000000,0.480627 +0.876171,0.000000,0.000000,0.482000 +0.875416,0.000000,0.000000,0.483370 +0.874659,0.000000,0.000000,0.484739 +0.873900,0.000000,0.000000,0.486105 +0.873140,0.000000,0.000000,0.487469 +0.872378,0.000000,0.000000,0.488832 +0.871615,0.000000,0.000000,0.490191 +0.870850,0.000000,0.000000,0.491549 +0.870083,0.000000,0.000000,0.492905 +0.869315,0.000000,0.000000,0.494258 +0.868545,0.000000,0.000000,0.495610 +0.867774,0.000000,0.000000,0.496959 +0.867001,0.000000,0.000000,0.498306 +0.866227,0.000000,0.000000,0.499650 +0.865451,0.000000,0.000000,0.500993 +0.864674,0.000000,0.000000,0.502333 +0.863895,0.000000,0.000000,0.503672 +0.863115,0.000000,0.000000,0.505007 +0.862333,0.000000,0.000000,0.506341 +0.861550,0.000000,0.000000,0.507673 +0.860765,0.000000,0.000000,0.509002 +0.859979,0.000000,0.000000,0.510329 +0.859192,0.000000,0.000000,0.511654 +0.858403,0.000000,0.000000,0.512976 +0.857612,0.000000,0.000000,0.514296 +0.856821,0.000000,0.000000,0.515614 +0.856028,0.000000,0.000000,0.516930 +0.855233,0.000000,0.000000,0.518244 +0.854437,0.000000,0.000000,0.519555 +0.853640,0.000000,0.000000,0.520864 +0.852841,0.000000,0.000000,0.522170 +0.852041,0.000000,0.000000,0.523475 +0.851240,0.000000,0.000000,0.524776 +0.850437,0.000000,0.000000,0.526076 +0.849634,0.000000,0.000000,0.527374 +0.848828,0.000000,0.000000,0.528669 +0.848022,0.000000,0.000000,0.529961 +0.847214,0.000000,0.000000,0.531252 +0.846405,0.000000,0.000000,0.532540 +0.845595,0.000000,0.000000,0.533825 +0.844783,0.000000,0.000000,0.535109 +0.843970,0.000000,0.000000,0.536390 +0.843156,0.000000,0.000000,0.537668 +0.842341,0.000000,0.000000,0.538944 +0.841525,0.000000,0.000000,0.540218 +0.840707,0.000000,0.000000,0.541490 +0.839888,0.000000,0.000000,0.542759 +0.839069,0.000000,0.000000,0.544026 +0.838247,0.000000,0.000000,0.545290 +0.837425,0.000000,0.000000,0.546552 +0.836602,0.000000,0.000000,0.547812 +0.835777,0.000000,0.000000,0.549069 +0.834952,0.000000,0.000000,0.550323 +0.834125,0.000000,0.000000,0.551576 +0.833297,0.000000,0.000000,0.552826 +0.832468,0.000000,0.000000,0.554073 +0.831638,0.000000,0.000000,0.555318 +0.830807,0.000000,0.000000,0.556561 +0.829975,0.000000,0.000000,0.557801 +0.829142,0.000000,0.000000,0.559039 +0.828307,0.000000,0.000000,0.560274 +0.827472,0.000000,0.000000,0.561507 +0.826636,0.000000,0.000000,0.562737 +0.825799,0.000000,0.000000,0.563965 +0.824960,0.000000,0.000000,0.565191 +0.824121,0.000000,0.000000,0.566413 +0.823281,0.000000,0.000000,0.567634 +0.822440,0.000000,0.000000,0.568852 +0.821598,0.000000,0.000000,0.570068 +0.820755,0.000000,0.000000,0.571281 +0.819911,0.000000,0.000000,0.572491 +0.819066,0.000000,0.000000,0.573699 +0.818220,0.000000,0.000000,0.574905 +0.817374,0.000000,0.000000,0.576108 +0.816526,0.000000,0.000000,0.577308 +0.815678,0.000000,0.000000,0.578506 +0.814829,0.000000,0.000000,0.579702 +0.813979,0.000000,0.000000,0.580895 +0.813128,0.000000,0.000000,0.582085 +0.812276,0.000000,0.000000,0.583273 +0.811424,0.000000,0.000000,0.584459 +0.810570,0.000000,0.000000,0.585641 +0.809716,0.000000,0.000000,0.586822 +0.808861,0.000000,0.000000,0.588000 +0.808006,0.000000,0.000000,0.589175 +0.807149,0.000000,0.000000,0.590348 +0.806292,0.000000,0.000000,0.591518 +0.805434,0.000000,0.000000,0.592685 +0.804576,0.000000,0.000000,0.593850 +0.803716,0.000000,0.000000,0.595013 +0.802856,0.000000,0.000000,0.596173 +0.801996,0.000000,0.000000,0.597330 +0.801134,0.000000,0.000000,0.598485 +0.800272,0.000000,0.000000,0.599637 +0.799409,0.000000,0.000000,0.600787 +0.798546,0.000000,0.000000,0.601934 +0.797682,0.000000,0.000000,0.603078 +0.796818,0.000000,0.000000,0.604220 +0.795952,0.000000,0.000000,0.605359 +0.795087,0.000000,0.000000,0.606496 +0.794220,0.000000,0.000000,0.607630 +0.793353,0.000000,0.000000,0.608761 +0.792486,0.000000,0.000000,0.609890 +0.791618,0.000000,0.000000,0.611017 +0.790749,0.000000,0.000000,0.612140 +0.789880,0.000000,0.000000,0.613261 +0.789010,0.000000,0.000000,0.614380 +0.788140,0.000000,0.000000,0.615496 +0.787270,0.000000,0.000000,0.616609 +0.786399,0.000000,0.000000,0.617719 +0.785527,0.000000,0.000000,0.618827 +0.784655,0.000000,0.000000,0.619933 +0.783783,0.000000,0.000000,0.621035 +0.782910,0.000000,0.000000,0.622135 +0.782036,0.000000,0.000000,0.623233 +0.781163,0.000000,0.000000,0.624328 +0.780288,0.000000,0.000000,0.625420 +0.779414,0.000000,0.000000,0.626509 +0.778539,0.000000,0.000000,0.627596 +0.777664,0.000000,0.000000,0.628681 +0.776788,0.000000,0.000000,0.629762 +0.775912,0.000000,0.000000,0.630841 +0.775036,0.000000,0.000000,0.631917 +0.774159,0.000000,0.000000,0.632991 +0.773282,0.000000,0.000000,0.634062 +0.772405,0.000000,0.000000,0.635130 +0.771527,0.000000,0.000000,0.636196 +0.770650,0.000000,0.000000,0.637259 +0.769771,0.000000,0.000000,0.638320 +0.768893,0.000000,0.000000,0.639377 +0.768015,0.000000,0.000000,0.640432 +0.767136,0.000000,0.000000,0.641485 +0.766257,0.000000,0.000000,0.642534 +0.765378,0.000000,0.000000,0.643581 +0.764498,0.000000,0.000000,0.644626 +0.763619,0.000000,0.000000,0.645668 +0.762739,0.000000,0.000000,0.646707 +0.761859,0.000000,0.000000,0.647743 +0.760979,0.000000,0.000000,0.648777 +0.760099,0.000000,0.000000,0.649808 +0.759218,0.000000,0.000000,0.650836 +0.758338,0.000000,0.000000,0.651862 +0.757457,0.000000,0.000000,0.652885 +0.756577,0.000000,0.000000,0.653905 +0.755696,0.000000,0.000000,0.654923 +0.754815,0.000000,0.000000,0.655937 +0.753934,0.000000,0.000000,0.656950 +0.753054,0.000000,0.000000,0.657959 +0.752173,0.000000,0.000000,0.658966 +0.751292,0.000000,0.000000,0.659970 +0.750411,0.000000,0.000000,0.660972 +0.749530,0.000000,0.000000,0.661971 +0.748649,0.000000,0.000000,0.662967 +0.747768,0.000000,0.000000,0.663960 +0.746887,0.000000,0.000000,0.664951 +0.746006,0.000000,0.000000,0.665939 +0.745126,0.000000,0.000000,0.666924 +0.744245,0.000000,0.000000,0.667907 +0.743364,0.000000,0.000000,0.668887 +0.742484,0.000000,0.000000,0.669864 +0.741603,0.000000,0.000000,0.670839 +0.740723,0.000000,0.000000,0.671811 +0.739843,0.000000,0.000000,0.672780 +0.738963,0.000000,0.000000,0.673746 +0.738083,0.000000,0.000000,0.674710 +0.737203,0.000000,0.000000,0.675671 +0.736324,0.000000,0.000000,0.676629 +0.735444,0.000000,0.000000,0.677585 +0.734565,0.000000,0.000000,0.678538 +0.733686,0.000000,0.000000,0.679488 +0.732807,0.000000,0.000000,0.680436 +0.731929,0.000000,0.000000,0.681381 +0.731051,0.000000,0.000000,0.682323 +0.730173,0.000000,0.000000,0.683263 +0.729295,0.000000,0.000000,0.684199 +0.728417,0.000000,0.000000,0.685134 +0.727540,0.000000,0.000000,0.686065 +0.726663,0.000000,0.000000,0.686994 +0.725787,0.000000,0.000000,0.687920 +0.724911,0.000000,0.000000,0.688843 +0.724035,0.000000,0.000000,0.689764 +0.723159,0.000000,0.000000,0.690681 +0.722284,0.000000,0.000000,0.691597 +0.721409,0.000000,0.000000,0.692509 +0.720535,0.000000,0.000000,0.693419 +0.719660,0.000000,0.000000,0.694326 +0.718787,0.000000,0.000000,0.695231 +0.717913,0.000000,0.000000,0.696132 +0.717041,0.000000,0.000000,0.697031 +0.716168,0.000000,0.000000,0.697928 +0.715296,0.000000,0.000000,0.698821 +0.714425,0.000000,0.000000,0.699712 +0.713554,0.000000,0.000000,0.700601 +0.712683,0.000000,0.000000,0.701486 +0.711813,0.000000,0.000000,0.702369 +0.710943,0.000000,0.000000,0.703249 +0.710074,0.000000,0.000000,0.704127 +0.709206,0.000000,0.000000,0.705001 +0.708338,0.000000,0.000000,0.705874 +0.707470,0.000000,0.000000,0.706743 +0.706603,0.000000,0.000000,0.707610 +0.705737,0.000000,0.000000,0.708474 +0.704871,0.000000,0.000000,0.709335 +0.704006,0.000000,0.000000,0.710194 +0.703142,0.000000,0.000000,0.711050 +0.702278,0.000000,0.000000,0.711903 +0.701414,0.000000,0.000000,0.712754 +0.700552,0.000000,0.000000,0.713602 +0.699690,0.000000,0.000000,0.714447 +0.698828,0.000000,0.000000,0.715290 +0.697967,0.000000,0.000000,0.716130 +0.697107,0.000000,0.000000,0.716967 +0.696248,0.000000,0.000000,0.717801 +0.695389,0.000000,0.000000,0.718633 +0.694531,0.000000,0.000000,0.719463 +0.693674,0.000000,0.000000,0.720289 +0.692818,0.000000,0.000000,0.721113 +0.691962,0.000000,0.000000,0.721934 +0.691107,0.000000,0.000000,0.722753 +0.690253,0.000000,0.000000,0.723569 +0.689399,0.000000,0.000000,0.724382 +0.688546,0.000000,0.000000,0.725192 +0.687694,0.000000,0.000000,0.726000 +0.686843,0.000000,0.000000,0.726805 +0.685993,0.000000,0.000000,0.727608 +0.685144,0.000000,0.000000,0.728408 +0.684295,0.000000,0.000000,0.729205 +0.683447,0.000000,0.000000,0.730000 +0.682600,0.000000,0.000000,0.730792 +0.681754,0.000000,0.000000,0.731581 +0.680909,0.000000,0.000000,0.732368 +0.680065,0.000000,0.000000,0.733152 +0.679222,0.000000,0.000000,0.733933 +0.678379,0.000000,0.000000,0.734712 +0.677538,0.000000,0.000000,0.735488 +0.676697,0.000000,0.000000,0.736261 +0.675858,0.000000,0.000000,0.737032 +0.675019,0.000000,0.000000,0.737800 +0.674181,0.000000,0.000000,0.738566 +0.673345,0.000000,0.000000,0.739329 +0.672509,0.000000,0.000000,0.740089 +0.671674,0.000000,0.000000,0.740847 +0.670840,0.000000,0.000000,0.741602 +0.670008,0.000000,0.000000,0.742354 +0.669176,0.000000,0.000000,0.743104 +0.668345,0.000000,0.000000,0.743851 +0.667516,0.000000,0.000000,0.744596 +0.666687,0.000000,0.000000,0.745337 +0.665860,0.000000,0.000000,0.746077 +0.665034,0.000000,0.000000,0.746813 +0.664208,0.000000,0.000000,0.747548 +0.663384,0.000000,0.000000,0.748279 +0.662561,0.000000,0.000000,0.749008 +0.661739,0.000000,0.000000,0.749734 +0.660918,0.000000,0.000000,0.750458 +0.660099,0.000000,0.000000,0.751179 +0.659280,0.000000,0.000000,0.751897 +0.658463,0.000000,0.000000,0.752613 +0.657647,0.000000,0.000000,0.753326 +0.656832,0.000000,0.000000,0.754037 +0.656018,0.000000,0.000000,0.754745 +0.655205,0.000000,0.000000,0.755451 +0.654394,0.000000,0.000000,0.756154 +0.653584,0.000000,0.000000,0.756854 +0.652775,0.000000,0.000000,0.757552 +0.651967,0.000000,0.000000,0.758247 +0.651161,0.000000,0.000000,0.758940 +0.650356,0.000000,0.000000,0.759630 +0.649552,0.000000,0.000000,0.760317 +0.648749,0.000000,0.000000,0.761002 +0.647948,0.000000,0.000000,0.761685 +0.647148,0.000000,0.000000,0.762365 +0.646349,0.000000,0.000000,0.763042 +0.645552,0.000000,0.000000,0.763717 +0.644756,0.000000,0.000000,0.764389 +0.643961,0.000000,0.000000,0.765058 +0.643168,0.000000,0.000000,0.765725 +0.642376,0.000000,0.000000,0.766390 +0.641585,0.000000,0.000000,0.767052 +0.640796,0.000000,0.000000,0.767711 +0.640008,0.000000,0.000000,0.768368 +0.639222,0.000000,0.000000,0.769023 +0.638436,0.000000,0.000000,0.769675 +0.637653,0.000000,0.000000,0.770324 +0.636871,0.000000,0.000000,0.770971 +0.636090,0.000000,0.000000,0.771615 +0.635311,0.000000,0.000000,0.772257 +0.634533,0.000000,0.000000,0.772896 +0.633756,0.000000,0.000000,0.773533 +0.632981,0.000000,0.000000,0.774167 +0.632208,0.000000,0.000000,0.774799 +0.631436,0.000000,0.000000,0.775428 +0.630666,0.000000,0.000000,0.776055 +0.629897,0.000000,0.000000,0.776679 +0.629129,0.000000,0.000000,0.777301 +0.628363,0.000000,0.000000,0.777920 +0.627599,0.000000,0.000000,0.778537 +0.626836,0.000000,0.000000,0.779151 +0.626075,0.000000,0.000000,0.779763 +0.625316,0.000000,0.000000,0.780372 +0.624557,0.000000,0.000000,0.780979 +0.623801,0.000000,0.000000,0.781583 +0.623046,0.000000,0.000000,0.782185 +0.622293,0.000000,0.000000,0.782785 +0.621541,0.000000,0.000000,0.783382 +0.620791,0.000000,0.000000,0.783976 +0.620043,0.000000,0.000000,0.784568 +0.619296,0.000000,0.000000,0.785158 +0.618551,0.000000,0.000000,0.785745 +0.617807,0.000000,0.000000,0.786330 +0.617065,0.000000,0.000000,0.786912 +0.616325,0.000000,0.000000,0.787492 +0.615587,0.000000,0.000000,0.788069 +0.614850,0.000000,0.000000,0.788644 +0.614115,0.000000,0.000000,0.789216 +0.613382,0.000000,0.000000,0.789787 +0.612650,0.000000,0.000000,0.790354 +0.611920,0.000000,0.000000,0.790919 +0.611192,0.000000,0.000000,0.791482 +0.610466,0.000000,0.000000,0.792043 +0.609741,0.000000,0.000000,0.792601 +0.609018,0.000000,0.000000,0.793156 +0.608297,0.000000,0.000000,0.793709 +0.607578,0.000000,0.000000,0.794260 +0.606860,0.000000,0.000000,0.794809 +0.606144,0.000000,0.000000,0.795355 +0.605430,0.000000,0.000000,0.795898 +0.604718,0.000000,0.000000,0.796439 +0.604008,0.000000,0.000000,0.796978 +0.603300,0.000000,0.000000,0.797515 +0.602593,0.000000,0.000000,0.798049 +0.601888,0.000000,0.000000,0.798580 +0.601185,0.000000,0.000000,0.799110 +0.600484,0.000000,0.000000,0.799637 +0.599785,0.000000,0.000000,0.800161 +0.599088,0.000000,0.000000,0.800684 +0.598392,0.000000,0.000000,0.801203 +0.597699,0.000000,0.000000,0.801721 +0.597007,0.000000,0.000000,0.802236 +0.596317,0.000000,0.000000,0.802749 +0.595629,0.000000,0.000000,0.803259 +0.594944,0.000000,0.000000,0.803767 +0.594260,0.000000,0.000000,0.804273 +0.593578,0.000000,0.000000,0.804777 +0.592898,0.000000,0.000000,0.805278 +0.592220,0.000000,0.000000,0.805777 +0.591543,0.000000,0.000000,0.806273 +0.590869,0.000000,0.000000,0.806767 +0.590197,0.000000,0.000000,0.807259 +0.589527,0.000000,0.000000,0.807749 +0.588859,0.000000,0.000000,0.808236 +0.588193,0.000000,0.000000,0.808721 +0.587528,0.000000,0.000000,0.809203 +0.586866,0.000000,0.000000,0.809684 +0.586206,0.000000,0.000000,0.810162 +0.585548,0.000000,0.000000,0.810638 +0.584892,0.000000,0.000000,0.811111 +0.584238,0.000000,0.000000,0.811582 +0.583586,0.000000,0.000000,0.812051 +0.582937,0.000000,0.000000,0.812518 +0.582289,0.000000,0.000000,0.812982 +0.581643,0.000000,0.000000,0.813444 +0.581000,0.000000,0.000000,0.813904 +0.580358,0.000000,0.000000,0.814361 +0.579719,0.000000,0.000000,0.814817 +0.579082,0.000000,0.000000,0.815270 +0.578446,0.000000,0.000000,0.815720 +0.577813,0.000000,0.000000,0.816169 +0.577183,0.000000,0.000000,0.816615 +0.576554,0.000000,0.000000,0.817059 +0.575927,0.000000,0.000000,0.817501 +0.575303,0.000000,0.000000,0.817941 +0.574681,0.000000,0.000000,0.818378 +0.574060,0.000000,0.000000,0.818813 +0.573443,0.000000,0.000000,0.819246 +0.572827,0.000000,0.000000,0.819676 +0.572213,0.000000,0.000000,0.820105 +0.571602,0.000000,0.000000,0.820531 +0.570993,0.000000,0.000000,0.820955 +0.570386,0.000000,0.000000,0.821377 +0.569781,0.000000,0.000000,0.821796 +0.569179,0.000000,0.000000,0.822214 +0.568578,0.000000,0.000000,0.822629 +0.567980,0.000000,0.000000,0.823042 +0.567385,0.000000,0.000000,0.823453 +0.566791,0.000000,0.000000,0.823862 +0.566200,0.000000,0.000000,0.824268 +0.565611,0.000000,0.000000,0.824672 +0.565024,0.000000,0.000000,0.825074 +0.564440,0.000000,0.000000,0.825474 +0.563858,0.000000,0.000000,0.825872 +0.563278,0.000000,0.000000,0.826268 +0.562700,0.000000,0.000000,0.826661 +0.562125,0.000000,0.000000,0.827052 +0.561552,0.000000,0.000000,0.827441 +0.560981,0.000000,0.000000,0.827828 +0.560413,0.000000,0.000000,0.828213 +0.559847,0.000000,0.000000,0.828596 +0.559284,0.000000,0.000000,0.828976 +0.558722,0.000000,0.000000,0.829355 +0.558163,0.000000,0.000000,0.829731 +0.557607,0.000000,0.000000,0.830105 +0.557053,0.000000,0.000000,0.830477 +0.556501,0.000000,0.000000,0.830847 +0.555951,0.000000,0.000000,0.831215 +0.555404,0.000000,0.000000,0.831580 +0.554860,0.000000,0.000000,0.831944 +0.554317,0.000000,0.000000,0.832305 +0.553777,0.000000,0.000000,0.832665 +0.553240,0.000000,0.000000,0.833022 +0.552705,0.000000,0.000000,0.833377 +0.552172,0.000000,0.000000,0.833730 +0.551642,0.000000,0.000000,0.834081 +0.551114,0.000000,0.000000,0.834430 +0.550589,0.000000,0.000000,0.834777 +0.550066,0.000000,0.000000,0.835121 +0.549545,0.000000,0.000000,0.835464 +0.549027,0.000000,0.000000,0.835804 +0.548512,0.000000,0.000000,0.836143 +0.547999,0.000000,0.000000,0.836479 +0.547488,0.000000,0.000000,0.836814 +0.546980,0.000000,0.000000,0.837146 +0.546474,0.000000,0.000000,0.837476 +0.545971,0.000000,0.000000,0.837804 +0.545470,0.000000,0.000000,0.838130 +0.544972,0.000000,0.000000,0.838454 +0.544476,0.000000,0.000000,0.838776 +0.543983,0.000000,0.000000,0.839096 +0.543492,0.000000,0.000000,0.839414 +0.543004,0.000000,0.000000,0.839730 +0.542519,0.000000,0.000000,0.840044 +0.542035,0.000000,0.000000,0.840356 +0.541555,0.000000,0.000000,0.840665 +0.541077,0.000000,0.000000,0.840973 +0.540601,0.000000,0.000000,0.841279 +0.540128,0.000000,0.000000,0.841583 +0.539658,0.000000,0.000000,0.841884 +0.539190,0.000000,0.000000,0.842184 +0.538725,0.000000,0.000000,0.842482 +0.538262,0.000000,0.000000,0.842777 +0.537802,0.000000,0.000000,0.843071 +0.537345,0.000000,0.000000,0.843363 +0.536890,0.000000,0.000000,0.843652 +0.536437,0.000000,0.000000,0.843940 +0.535988,0.000000,0.000000,0.844226 +0.535541,0.000000,0.000000,0.844510 +0.535096,0.000000,0.000000,0.844791 +0.534654,0.000000,0.000000,0.845071 +0.534215,0.000000,0.000000,0.845349 +0.533778,0.000000,0.000000,0.845625 +0.533344,0.000000,0.000000,0.845898 +0.532913,0.000000,0.000000,0.846170 +0.532484,0.000000,0.000000,0.846440 +0.532058,0.000000,0.000000,0.846708 +0.531634,0.000000,0.000000,0.846974 +0.531213,0.000000,0.000000,0.847238 +0.530795,0.000000,0.000000,0.847500 +0.530379,0.000000,0.000000,0.847760 +0.529967,0.000000,0.000000,0.848019 +0.529556,0.000000,0.000000,0.848275 +0.529149,0.000000,0.000000,0.848529 +0.528744,0.000000,0.000000,0.848781 +0.528342,0.000000,0.000000,0.849032 +0.527942,0.000000,0.000000,0.849280 +0.527545,0.000000,0.000000,0.849527 +0.527151,0.000000,0.000000,0.849772 +0.526760,0.000000,0.000000,0.850014 +0.526371,0.000000,0.000000,0.850255 +0.525985,0.000000,0.000000,0.850494 +0.525602,0.000000,0.000000,0.850731 +0.525221,0.000000,0.000000,0.850966 +0.524843,0.000000,0.000000,0.851199 +0.524468,0.000000,0.000000,0.851430 +0.524096,0.000000,0.000000,0.851659 +0.523726,0.000000,0.000000,0.851887 +0.523359,0.000000,0.000000,0.852112 +0.522995,0.000000,0.000000,0.852336 +0.522633,0.000000,0.000000,0.852558 +0.522274,0.000000,0.000000,0.852778 +0.521918,0.000000,0.000000,0.852995 +0.521565,0.000000,0.000000,0.853212 +0.521215,0.000000,0.000000,0.853426 +0.520867,0.000000,0.000000,0.853638 +0.520522,0.000000,0.000000,0.853848 +0.520180,0.000000,0.000000,0.854057 +0.519840,0.000000,0.000000,0.854264 +0.519504,0.000000,0.000000,0.854468 +0.519170,0.000000,0.000000,0.854671 +0.518839,0.000000,0.000000,0.854872 +0.518510,0.000000,0.000000,0.855071 +0.518185,0.000000,0.000000,0.855269 +0.517862,0.000000,0.000000,0.855464 +0.517542,0.000000,0.000000,0.855658 +0.517225,0.000000,0.000000,0.855849 +0.516911,0.000000,0.000000,0.856039 +0.516599,0.000000,0.000000,0.856227 +0.516290,0.000000,0.000000,0.856414 +0.515984,0.000000,0.000000,0.856598 +0.515681,0.000000,0.000000,0.856780 +0.515381,0.000000,0.000000,0.856961 +0.515084,0.000000,0.000000,0.857140 +0.514789,0.000000,0.000000,0.857317 +0.514497,0.000000,0.000000,0.857492 +0.514208,0.000000,0.000000,0.857665 +0.513922,0.000000,0.000000,0.857837 +0.513639,0.000000,0.000000,0.858006 +0.513358,0.000000,0.000000,0.858174 +0.513081,0.000000,0.000000,0.858340 +0.512806,0.000000,0.000000,0.858504 +0.512534,0.000000,0.000000,0.858667 +0.512265,0.000000,0.000000,0.858827 +0.511999,0.000000,0.000000,0.858986 +0.511736,0.000000,0.000000,0.859143 +0.511475,0.000000,0.000000,0.859298 +0.511218,0.000000,0.000000,0.859451 +0.510963,0.000000,0.000000,0.859603 +0.510711,0.000000,0.000000,0.859752 +0.510462,0.000000,0.000000,0.859900 +0.510216,0.000000,0.000000,0.860046 +0.509973,0.000000,0.000000,0.860191 +0.509732,0.000000,0.000000,0.860333 +0.509495,0.000000,0.000000,0.860474 +0.509260,0.000000,0.000000,0.860613 +0.509028,0.000000,0.000000,0.860750 +0.508800,0.000000,0.000000,0.860885 +0.508574,0.000000,0.000000,0.861019 +0.508351,0.000000,0.000000,0.861150 +0.508130,0.000000,0.000000,0.861280 +0.507913,0.000000,0.000000,0.861408 +0.507699,0.000000,0.000000,0.861535 +0.507487,0.000000,0.000000,0.861659 +0.507279,0.000000,0.000000,0.861782 +0.507073,0.000000,0.000000,0.861903 +0.506871,0.000000,0.000000,0.862022 +0.506671,0.000000,0.000000,0.862140 +0.506474,0.000000,0.000000,0.862255 +0.506280,0.000000,0.000000,0.862369 +0.506089,0.000000,0.000000,0.862481 +0.505901,0.000000,0.000000,0.862592 +0.505715,0.000000,0.000000,0.862700 +0.505533,0.000000,0.000000,0.862807 +0.505354,0.000000,0.000000,0.862912 +0.505177,0.000000,0.000000,0.863016 +0.505004,0.000000,0.000000,0.863117 +0.504833,0.000000,0.000000,0.863217 +0.504666,0.000000,0.000000,0.863315 +0.504501,0.000000,0.000000,0.863411 +0.504339,0.000000,0.000000,0.863506 +0.504180,0.000000,0.000000,0.863598 +0.504024,0.000000,0.000000,0.863689 +0.503871,0.000000,0.000000,0.863779 +0.503721,0.000000,0.000000,0.863866 +0.503574,0.000000,0.000000,0.863952 +0.503430,0.000000,0.000000,0.864036 +0.503289,0.000000,0.000000,0.864118 +0.503151,0.000000,0.000000,0.864199 +0.503016,0.000000,0.000000,0.864277 +0.502883,0.000000,0.000000,0.864354 +0.502754,0.000000,0.000000,0.864430 +0.502628,0.000000,0.000000,0.864503 +0.502504,0.000000,0.000000,0.864575 +0.502384,0.000000,0.000000,0.864645 +0.502266,0.000000,0.000000,0.864713 +0.502151,0.000000,0.000000,0.864780 +0.502040,0.000000,0.000000,0.864844 +0.501931,0.000000,0.000000,0.864908 +0.501826,0.000000,0.000000,0.864969 +0.501723,0.000000,0.000000,0.865028 +0.501623,0.000000,0.000000,0.865086 +0.501526,0.000000,0.000000,0.865142 +0.501432,0.000000,0.000000,0.865197 +0.501342,0.000000,0.000000,0.865249 +0.501254,0.000000,0.000000,0.865300 +0.501169,0.000000,0.000000,0.865350 +0.501087,0.000000,0.000000,0.865397 +0.501008,0.000000,0.000000,0.865443 +0.500932,0.000000,0.000000,0.865487 +0.500859,0.000000,0.000000,0.865529 +0.500789,0.000000,0.000000,0.865570 +0.500722,0.000000,0.000000,0.865608 +0.500658,0.000000,0.000000,0.865645 +0.500597,0.000000,0.000000,0.865681 +0.500538,0.000000,0.000000,0.865714 +0.500483,0.000000,0.000000,0.865746 +0.500431,0.000000,0.000000,0.865776 +0.500382,0.000000,0.000000,0.865805 +0.500336,0.000000,0.000000,0.865832 +0.500292,0.000000,0.000000,0.865857 +0.500252,0.000000,0.000000,0.865880 +0.500215,0.000000,0.000000,0.865901 +0.500180,0.000000,0.000000,0.865921 +0.500149,0.000000,0.000000,0.865939 +0.500121,0.000000,0.000000,0.865956 +0.500095,0.000000,0.000000,0.865970 +0.500073,0.000000,0.000000,0.865983 +0.500054,0.000000,0.000000,0.865994 +0.500037,0.000000,0.000000,0.866004 +0.500024,0.000000,0.000000,0.866012 +0.500013,0.000000,0.000000,0.866018 +0.500006,0.000000,0.000000,0.866022 +0.500001,0.000000,0.000000,0.866025 +0.500000,0.000000,0.000000,0.866025 +0.500001,0.000000,0.000000,0.866025 +0.500006,0.000000,0.000000,0.866022 +0.500013,0.000000,0.000000,0.866018 +0.500024,0.000000,0.000000,0.866012 +0.500037,0.000000,0.000000,0.866004 +0.500054,0.000000,0.000000,0.865994 +0.500073,0.000000,0.000000,0.865983 +0.500095,0.000000,0.000000,0.865970 +0.500121,0.000000,0.000000,0.865956 +0.500149,0.000000,0.000000,0.865939 +0.500180,0.000000,0.000000,0.865921 +0.500215,0.000000,0.000000,0.865901 +0.500252,0.000000,0.000000,0.865880 +0.500292,0.000000,0.000000,0.865857 +0.500336,0.000000,0.000000,0.865832 +0.500382,0.000000,0.000000,0.865805 +0.500431,0.000000,0.000000,0.865776 +0.500483,0.000000,0.000000,0.865746 +0.500538,0.000000,0.000000,0.865714 +0.500597,0.000000,0.000000,0.865681 +0.500658,0.000000,0.000000,0.865645 +0.500722,0.000000,0.000000,0.865608 +0.500789,0.000000,0.000000,0.865570 +0.500859,0.000000,0.000000,0.865529 +0.500932,0.000000,0.000000,0.865487 +0.501008,0.000000,0.000000,0.865443 +0.501087,0.000000,0.000000,0.865397 +0.501169,0.000000,0.000000,0.865350 +0.501254,0.000000,0.000000,0.865300 +0.501342,0.000000,0.000000,0.865249 +0.501432,0.000000,0.000000,0.865197 +0.501526,0.000000,0.000000,0.865142 +0.501623,0.000000,0.000000,0.865086 +0.501723,0.000000,0.000000,0.865028 +0.501826,0.000000,0.000000,0.864969 +0.501931,0.000000,0.000000,0.864908 +0.502040,0.000000,0.000000,0.864844 +0.502151,0.000000,0.000000,0.864780 +0.502266,0.000000,0.000000,0.864713 +0.502384,0.000000,0.000000,0.864645 +0.502504,0.000000,0.000000,0.864575 +0.502628,0.000000,0.000000,0.864503 +0.502754,0.000000,0.000000,0.864430 +0.502883,0.000000,0.000000,0.864354 +0.503016,0.000000,0.000000,0.864277 +0.503151,0.000000,0.000000,0.864199 +0.503289,0.000000,0.000000,0.864118 +0.503430,0.000000,0.000000,0.864036 +0.503574,0.000000,0.000000,0.863952 +0.503721,0.000000,0.000000,0.863866 +0.503871,0.000000,0.000000,0.863779 +0.504024,0.000000,0.000000,0.863689 +0.504180,0.000000,0.000000,0.863598 +0.504339,0.000000,0.000000,0.863506 +0.504501,0.000000,0.000000,0.863411 +0.504666,0.000000,0.000000,0.863315 +0.504833,0.000000,0.000000,0.863217 +0.505004,0.000000,0.000000,0.863117 +0.505177,0.000000,0.000000,0.863016 +0.505354,0.000000,0.000000,0.862912 +0.505533,0.000000,0.000000,0.862807 +0.505715,0.000000,0.000000,0.862700 +0.505901,0.000000,0.000000,0.862592 +0.506089,0.000000,0.000000,0.862481 +0.506280,0.000000,0.000000,0.862369 +0.506474,0.000000,0.000000,0.862255 +0.506671,0.000000,0.000000,0.862140 +0.506871,0.000000,0.000000,0.862022 +0.507073,0.000000,0.000000,0.861903 +0.507279,0.000000,0.000000,0.861782 +0.507487,0.000000,0.000000,0.861659 +0.507699,0.000000,0.000000,0.861535 +0.507913,0.000000,0.000000,0.861408 +0.508130,0.000000,0.000000,0.861280 +0.508351,0.000000,0.000000,0.861150 +0.508574,0.000000,0.000000,0.861019 +0.508800,0.000000,0.000000,0.860885 +0.509028,0.000000,0.000000,0.860750 +0.509260,0.000000,0.000000,0.860613 +0.509495,0.000000,0.000000,0.860474 +0.509732,0.000000,0.000000,0.860333 +0.509973,0.000000,0.000000,0.860191 +0.510216,0.000000,0.000000,0.860046 +0.510462,0.000000,0.000000,0.859900 +0.510711,0.000000,0.000000,0.859752 +0.510963,0.000000,0.000000,0.859603 +0.511218,0.000000,0.000000,0.859451 +0.511475,0.000000,0.000000,0.859298 +0.511736,0.000000,0.000000,0.859143 +0.511999,0.000000,0.000000,0.858986 +0.512265,0.000000,0.000000,0.858827 +0.512534,0.000000,0.000000,0.858667 +0.512806,0.000000,0.000000,0.858504 +0.513081,0.000000,0.000000,0.858340 +0.513358,0.000000,0.000000,0.858174 +0.513639,0.000000,0.000000,0.858006 +0.513922,0.000000,0.000000,0.857837 +0.514208,0.000000,0.000000,0.857665 +0.514497,0.000000,0.000000,0.857492 +0.514789,0.000000,0.000000,0.857317 +0.515084,0.000000,0.000000,0.857140 +0.515381,0.000000,0.000000,0.856961 +0.515681,0.000000,0.000000,0.856780 +0.515984,0.000000,0.000000,0.856598 +0.516290,0.000000,0.000000,0.856414 +0.516599,0.000000,0.000000,0.856227 +0.516911,0.000000,0.000000,0.856039 +0.517225,0.000000,0.000000,0.855849 +0.517542,0.000000,0.000000,0.855658 +0.517862,0.000000,0.000000,0.855464 +0.518185,0.000000,0.000000,0.855269 +0.518510,0.000000,0.000000,0.855071 +0.518839,0.000000,0.000000,0.854872 +0.519170,0.000000,0.000000,0.854671 +0.519504,0.000000,0.000000,0.854468 +0.519840,0.000000,0.000000,0.854264 +0.520180,0.000000,0.000000,0.854057 +0.520522,0.000000,0.000000,0.853848 +0.520867,0.000000,0.000000,0.853638 +0.521215,0.000000,0.000000,0.853426 +0.521565,0.000000,0.000000,0.853212 +0.521918,0.000000,0.000000,0.852995 +0.522274,0.000000,0.000000,0.852778 +0.522633,0.000000,0.000000,0.852558 +0.522995,0.000000,0.000000,0.852336 +0.523359,0.000000,0.000000,0.852112 +0.523726,0.000000,0.000000,0.851887 +0.524096,0.000000,0.000000,0.851659 +0.524468,0.000000,0.000000,0.851430 +0.524843,0.000000,0.000000,0.851199 +0.525221,0.000000,0.000000,0.850966 +0.525602,0.000000,0.000000,0.850731 +0.525985,0.000000,0.000000,0.850494 +0.526371,0.000000,0.000000,0.850255 +0.526760,0.000000,0.000000,0.850014 +0.527151,0.000000,0.000000,0.849772 +0.527545,0.000000,0.000000,0.849527 +0.527942,0.000000,0.000000,0.849280 +0.528342,0.000000,0.000000,0.849032 +0.528744,0.000000,0.000000,0.848781 +0.529149,0.000000,0.000000,0.848529 +0.529556,0.000000,0.000000,0.848275 +0.529967,0.000000,0.000000,0.848019 +0.530379,0.000000,0.000000,0.847760 +0.530795,0.000000,0.000000,0.847500 +0.531213,0.000000,0.000000,0.847238 +0.531634,0.000000,0.000000,0.846974 +0.532058,0.000000,0.000000,0.846708 +0.532484,0.000000,0.000000,0.846440 +0.532913,0.000000,0.000000,0.846170 +0.533344,0.000000,0.000000,0.845898 +0.533778,0.000000,0.000000,0.845625 +0.534215,0.000000,0.000000,0.845349 +0.534654,0.000000,0.000000,0.845071 +0.535096,0.000000,0.000000,0.844791 +0.535541,0.000000,0.000000,0.844510 +0.535988,0.000000,0.000000,0.844226 +0.536437,0.000000,0.000000,0.843940 +0.536890,0.000000,0.000000,0.843652 +0.537345,0.000000,0.000000,0.843363 +0.537802,0.000000,0.000000,0.843071 +0.538262,0.000000,0.000000,0.842777 +0.538725,0.000000,0.000000,0.842482 +0.539190,0.000000,0.000000,0.842184 +0.539658,0.000000,0.000000,0.841884 +0.540128,0.000000,0.000000,0.841583 +0.540601,0.000000,0.000000,0.841279 +0.541077,0.000000,0.000000,0.840973 +0.541555,0.000000,0.000000,0.840665 +0.542035,0.000000,0.000000,0.840356 +0.542519,0.000000,0.000000,0.840044 +0.543004,0.000000,0.000000,0.839730 +0.543492,0.000000,0.000000,0.839414 +0.543983,0.000000,0.000000,0.839096 +0.544476,0.000000,0.000000,0.838776 +0.544972,0.000000,0.000000,0.838454 +0.545470,0.000000,0.000000,0.838130 +0.545971,0.000000,0.000000,0.837804 +0.546474,0.000000,0.000000,0.837476 +0.546980,0.000000,0.000000,0.837146 +0.547488,0.000000,0.000000,0.836814 +0.547999,0.000000,0.000000,0.836479 +0.548512,0.000000,0.000000,0.836143 +0.549027,0.000000,0.000000,0.835804 +0.549545,0.000000,0.000000,0.835464 +0.550066,0.000000,0.000000,0.835121 +0.550589,0.000000,0.000000,0.834777 +0.551114,0.000000,0.000000,0.834430 +0.551642,0.000000,0.000000,0.834081 +0.552172,0.000000,0.000000,0.833730 +0.552705,0.000000,0.000000,0.833377 +0.553240,0.000000,0.000000,0.833022 +0.553777,0.000000,0.000000,0.832665 +0.554317,0.000000,0.000000,0.832305 +0.554860,0.000000,0.000000,0.831944 +0.555404,0.000000,0.000000,0.831580 +0.555951,0.000000,0.000000,0.831215 +0.556501,0.000000,0.000000,0.830847 +0.557053,0.000000,0.000000,0.830477 +0.557607,0.000000,0.000000,0.830105 +0.558163,0.000000,0.000000,0.829731 +0.558722,0.000000,0.000000,0.829355 +0.559284,0.000000,0.000000,0.828976 +0.559847,0.000000,0.000000,0.828596 +0.560413,0.000000,0.000000,0.828213 +0.560981,0.000000,0.000000,0.827828 +0.561552,0.000000,0.000000,0.827441 +0.562125,0.000000,0.000000,0.827052 +0.562700,0.000000,0.000000,0.826661 +0.563278,0.000000,0.000000,0.826268 +0.563858,0.000000,0.000000,0.825872 +0.564440,0.000000,0.000000,0.825474 +0.565024,0.000000,0.000000,0.825074 +0.565611,0.000000,0.000000,0.824672 +0.566200,0.000000,0.000000,0.824268 +0.566791,0.000000,0.000000,0.823862 +0.567385,0.000000,0.000000,0.823453 +0.567980,0.000000,0.000000,0.823042 +0.568578,0.000000,0.000000,0.822629 +0.569179,0.000000,0.000000,0.822214 +0.569781,0.000000,0.000000,0.821796 +0.570386,0.000000,0.000000,0.821377 +0.570993,0.000000,0.000000,0.820955 +0.571602,0.000000,0.000000,0.820531 +0.572213,0.000000,0.000000,0.820105 +0.572827,0.000000,0.000000,0.819676 +0.573443,0.000000,0.000000,0.819246 +0.574060,0.000000,0.000000,0.818813 +0.574681,0.000000,0.000000,0.818378 +0.575303,0.000000,0.000000,0.817941 +0.575927,0.000000,0.000000,0.817501 +0.576554,0.000000,0.000000,0.817059 +0.577183,0.000000,0.000000,0.816615 +0.577813,0.000000,0.000000,0.816169 +0.578446,0.000000,0.000000,0.815720 +0.579082,0.000000,0.000000,0.815270 +0.579719,0.000000,0.000000,0.814817 +0.580358,0.000000,0.000000,0.814361 +0.581000,0.000000,0.000000,0.813904 +0.581643,0.000000,0.000000,0.813444 +0.582289,0.000000,0.000000,0.812982 +0.582937,0.000000,0.000000,0.812518 +0.583586,0.000000,0.000000,0.812051 +0.584238,0.000000,0.000000,0.811582 +0.584892,0.000000,0.000000,0.811111 +0.585548,0.000000,0.000000,0.810638 +0.586206,0.000000,0.000000,0.810162 +0.586866,0.000000,0.000000,0.809684 +0.587528,0.000000,0.000000,0.809203 +0.588193,0.000000,0.000000,0.808721 +0.588859,0.000000,0.000000,0.808236 +0.589527,0.000000,0.000000,0.807749 +0.590197,0.000000,0.000000,0.807259 +0.590869,0.000000,0.000000,0.806767 +0.591543,0.000000,0.000000,0.806273 +0.592220,0.000000,0.000000,0.805777 +0.592898,0.000000,0.000000,0.805278 +0.593578,0.000000,0.000000,0.804777 +0.594260,0.000000,0.000000,0.804273 +0.594944,0.000000,0.000000,0.803767 +0.595629,0.000000,0.000000,0.803259 +0.596317,0.000000,0.000000,0.802749 +0.597007,0.000000,0.000000,0.802236 +0.597699,0.000000,0.000000,0.801721 +0.598392,0.000000,0.000000,0.801203 +0.599088,0.000000,0.000000,0.800684 +0.599785,0.000000,0.000000,0.800161 +0.600484,0.000000,0.000000,0.799637 +0.601185,0.000000,0.000000,0.799110 +0.601888,0.000000,0.000000,0.798580 +0.602593,0.000000,0.000000,0.798049 +0.603300,0.000000,0.000000,0.797515 +0.604008,0.000000,0.000000,0.796978 +0.604718,0.000000,0.000000,0.796439 +0.605430,0.000000,0.000000,0.795898 +0.606144,0.000000,0.000000,0.795355 +0.606860,0.000000,0.000000,0.794809 +0.607578,0.000000,0.000000,0.794260 +0.608297,0.000000,0.000000,0.793709 +0.609018,0.000000,0.000000,0.793156 +0.609741,0.000000,0.000000,0.792601 +0.610466,0.000000,0.000000,0.792043 +0.611192,0.000000,0.000000,0.791482 +0.611920,0.000000,0.000000,0.790919 +0.612650,0.000000,0.000000,0.790354 +0.613382,0.000000,0.000000,0.789787 +0.614115,0.000000,0.000000,0.789216 +0.614850,0.000000,0.000000,0.788644 +0.615587,0.000000,0.000000,0.788069 +0.616325,0.000000,0.000000,0.787492 +0.617065,0.000000,0.000000,0.786912 +0.617807,0.000000,0.000000,0.786330 +0.618551,0.000000,0.000000,0.785745 +0.619296,0.000000,0.000000,0.785158 +0.620043,0.000000,0.000000,0.784568 +0.620791,0.000000,0.000000,0.783976 +0.621541,0.000000,0.000000,0.783382 +0.622293,0.000000,0.000000,0.782785 +0.623046,0.000000,0.000000,0.782185 +0.623801,0.000000,0.000000,0.781583 +0.624557,0.000000,0.000000,0.780979 +0.625316,0.000000,0.000000,0.780372 +0.626075,0.000000,0.000000,0.779763 +0.626836,0.000000,0.000000,0.779151 +0.627599,0.000000,0.000000,0.778537 +0.628363,0.000000,0.000000,0.777920 +0.629129,0.000000,0.000000,0.777301 +0.629897,0.000000,0.000000,0.776679 +0.630666,0.000000,0.000000,0.776055 +0.631436,0.000000,0.000000,0.775428 +0.632208,0.000000,0.000000,0.774799 +0.632981,0.000000,0.000000,0.774167 +0.633756,0.000000,0.000000,0.773533 +0.634533,0.000000,0.000000,0.772896 +0.635311,0.000000,0.000000,0.772257 +0.636090,0.000000,0.000000,0.771615 +0.636871,0.000000,0.000000,0.770971 +0.637653,0.000000,0.000000,0.770324 +0.638436,0.000000,0.000000,0.769675 +0.639222,0.000000,0.000000,0.769023 +0.640008,0.000000,0.000000,0.768368 +0.640796,0.000000,0.000000,0.767711 +0.641585,0.000000,0.000000,0.767052 +0.642376,0.000000,0.000000,0.766390 +0.643168,0.000000,0.000000,0.765725 +0.643961,0.000000,0.000000,0.765058 +0.644756,0.000000,0.000000,0.764389 +0.645552,0.000000,0.000000,0.763717 +0.646349,0.000000,0.000000,0.763042 +0.647148,0.000000,0.000000,0.762365 +0.647948,0.000000,0.000000,0.761685 +0.648749,0.000000,0.000000,0.761002 +0.649552,0.000000,0.000000,0.760317 +0.650356,0.000000,0.000000,0.759630 +0.651161,0.000000,0.000000,0.758940 +0.651967,0.000000,0.000000,0.758247 +0.652775,0.000000,0.000000,0.757552 +0.653584,0.000000,0.000000,0.756854 +0.654394,0.000000,0.000000,0.756154 +0.655205,0.000000,0.000000,0.755451 +0.656018,0.000000,0.000000,0.754745 +0.656832,0.000000,0.000000,0.754037 +0.657647,0.000000,0.000000,0.753326 +0.658463,0.000000,0.000000,0.752613 +0.659280,0.000000,0.000000,0.751897 +0.660099,0.000000,0.000000,0.751179 +0.660918,0.000000,0.000000,0.750458 +0.661739,0.000000,0.000000,0.749734 +0.662561,0.000000,0.000000,0.749008 +0.663384,0.000000,0.000000,0.748279 +0.664208,0.000000,0.000000,0.747548 +0.665034,0.000000,0.000000,0.746813 +0.665860,0.000000,0.000000,0.746077 +0.666687,0.000000,0.000000,0.745337 +0.667516,0.000000,0.000000,0.744596 +0.668345,0.000000,0.000000,0.743851 +0.669176,0.000000,0.000000,0.743104 +0.670008,0.000000,0.000000,0.742354 +0.670840,0.000000,0.000000,0.741602 +0.671674,0.000000,0.000000,0.740847 +0.672509,0.000000,0.000000,0.740089 +0.673345,0.000000,0.000000,0.739329 +0.674181,0.000000,0.000000,0.738566 +0.675019,0.000000,0.000000,0.737800 +0.675858,0.000000,0.000000,0.737032 +0.676697,0.000000,0.000000,0.736261 +0.677538,0.000000,0.000000,0.735488 +0.678379,0.000000,0.000000,0.734712 +0.679222,0.000000,0.000000,0.733933 +0.680065,0.000000,0.000000,0.733152 +0.680909,0.000000,0.000000,0.732368 +0.681754,0.000000,0.000000,0.731581 +0.682600,0.000000,0.000000,0.730792 +0.683447,0.000000,0.000000,0.730000 +0.684295,0.000000,0.000000,0.729205 +0.685144,0.000000,0.000000,0.728408 +0.685993,0.000000,0.000000,0.727608 +0.686843,0.000000,0.000000,0.726805 +0.687694,0.000000,0.000000,0.726000 +0.688546,0.000000,0.000000,0.725192 +0.689399,0.000000,0.000000,0.724382 +0.690253,0.000000,0.000000,0.723569 +0.691107,0.000000,0.000000,0.722753 +0.691962,0.000000,0.000000,0.721934 +0.692818,0.000000,0.000000,0.721113 +0.693674,0.000000,0.000000,0.720289 +0.694531,0.000000,0.000000,0.719463 +0.695389,0.000000,0.000000,0.718633 +0.696248,0.000000,0.000000,0.717801 +0.697107,0.000000,0.000000,0.716967 +0.697967,0.000000,0.000000,0.716130 +0.698828,0.000000,0.000000,0.715290 +0.699690,0.000000,0.000000,0.714447 +0.700552,0.000000,0.000000,0.713602 +0.701414,0.000000,0.000000,0.712754 +0.702278,0.000000,0.000000,0.711903 +0.703142,0.000000,0.000000,0.711050 +0.704006,0.000000,0.000000,0.710194 +0.704871,0.000000,0.000000,0.709335 +0.705737,0.000000,0.000000,0.708474 +0.706603,0.000000,0.000000,0.707610 +0.707470,0.000000,0.000000,0.706743 +0.708338,0.000000,0.000000,0.705874 +0.709206,0.000000,0.000000,0.705001 +0.710074,0.000000,0.000000,0.704127 +0.710943,0.000000,0.000000,0.703249 +0.711813,0.000000,0.000000,0.702369 +0.712683,0.000000,0.000000,0.701486 +0.713554,0.000000,0.000000,0.700601 +0.714425,0.000000,0.000000,0.699712 +0.715296,0.000000,0.000000,0.698821 +0.716168,0.000000,0.000000,0.697928 +0.717041,0.000000,0.000000,0.697031 +0.717913,0.000000,0.000000,0.696132 +0.718787,0.000000,0.000000,0.695231 +0.719660,0.000000,0.000000,0.694326 +0.720535,0.000000,0.000000,0.693419 +0.721409,0.000000,0.000000,0.692509 +0.722284,0.000000,0.000000,0.691597 +0.723159,0.000000,0.000000,0.690681 +0.724035,0.000000,0.000000,0.689764 +0.724911,0.000000,0.000000,0.688843 +0.725787,0.000000,0.000000,0.687920 +0.726663,0.000000,0.000000,0.686994 +0.727540,0.000000,0.000000,0.686065 +0.728417,0.000000,0.000000,0.685134 +0.729295,0.000000,0.000000,0.684199 +0.730173,0.000000,0.000000,0.683263 +0.731051,0.000000,0.000000,0.682323 +0.731929,0.000000,0.000000,0.681381 +0.732807,0.000000,0.000000,0.680436 +0.733686,0.000000,0.000000,0.679488 +0.734565,0.000000,0.000000,0.678538 +0.735444,0.000000,0.000000,0.677585 +0.736324,0.000000,0.000000,0.676629 +0.737203,0.000000,0.000000,0.675671 +0.738083,0.000000,0.000000,0.674710 +0.738963,0.000000,0.000000,0.673746 +0.739843,0.000000,0.000000,0.672780 +0.740723,0.000000,0.000000,0.671811 +0.741603,0.000000,0.000000,0.670839 +0.742484,0.000000,0.000000,0.669864 +0.743364,0.000000,0.000000,0.668887 +0.744245,0.000000,0.000000,0.667907 +0.745126,0.000000,0.000000,0.666924 +0.746006,0.000000,0.000000,0.665939 +0.746887,0.000000,0.000000,0.664951 +0.747768,0.000000,0.000000,0.663960 +0.748649,0.000000,0.000000,0.662967 +0.749530,0.000000,0.000000,0.661971 +0.750411,0.000000,0.000000,0.660972 +0.751292,0.000000,0.000000,0.659970 +0.752173,0.000000,0.000000,0.658966 +0.753054,0.000000,0.000000,0.657959 +0.753934,0.000000,0.000000,0.656950 +0.754815,0.000000,0.000000,0.655937 +0.755696,0.000000,0.000000,0.654923 +0.756577,0.000000,0.000000,0.653905 +0.757457,0.000000,0.000000,0.652885 +0.758338,0.000000,0.000000,0.651862 +0.759218,0.000000,0.000000,0.650836 +0.760099,0.000000,0.000000,0.649808 +0.760979,0.000000,0.000000,0.648777 +0.761859,0.000000,0.000000,0.647743 +0.762739,0.000000,0.000000,0.646707 +0.763619,0.000000,0.000000,0.645668 +0.764498,0.000000,0.000000,0.644626 +0.765378,0.000000,0.000000,0.643581 +0.766257,0.000000,0.000000,0.642534 +0.767136,0.000000,0.000000,0.641485 +0.768015,0.000000,0.000000,0.640432 +0.768893,0.000000,0.000000,0.639377 +0.769771,0.000000,0.000000,0.638320 +0.770650,0.000000,0.000000,0.637259 +0.771527,0.000000,0.000000,0.636196 +0.772405,0.000000,0.000000,0.635130 +0.773282,0.000000,0.000000,0.634062 +0.774159,0.000000,0.000000,0.632991 +0.775036,0.000000,0.000000,0.631917 +0.775912,0.000000,0.000000,0.630841 +0.776788,0.000000,0.000000,0.629762 +0.777664,0.000000,0.000000,0.628681 +0.778539,0.000000,0.000000,0.627596 +0.779414,0.000000,0.000000,0.626509 +0.780288,0.000000,0.000000,0.625420 +0.781163,0.000000,0.000000,0.624328 +0.782036,0.000000,0.000000,0.623233 +0.782910,0.000000,0.000000,0.622135 +0.783783,0.000000,0.000000,0.621035 +0.784655,0.000000,0.000000,0.619933 +0.785527,0.000000,0.000000,0.618827 +0.786399,0.000000,0.000000,0.617719 +0.787270,0.000000,0.000000,0.616609 +0.788140,0.000000,0.000000,0.615496 +0.789010,0.000000,0.000000,0.614380 +0.789880,0.000000,0.000000,0.613261 +0.790749,0.000000,0.000000,0.612140 +0.791618,0.000000,0.000000,0.611017 +0.792486,0.000000,0.000000,0.609890 +0.793353,0.000000,0.000000,0.608761 +0.794220,0.000000,0.000000,0.607630 +0.795087,0.000000,0.000000,0.606496 +0.795952,0.000000,0.000000,0.605359 +0.796818,0.000000,0.000000,0.604220 +0.797682,0.000000,0.000000,0.603078 +0.798546,0.000000,0.000000,0.601934 +0.799409,0.000000,0.000000,0.600787 +0.800272,0.000000,0.000000,0.599637 +0.801134,0.000000,0.000000,0.598485 +0.801996,0.000000,0.000000,0.597330 +0.802856,0.000000,0.000000,0.596173 +0.803716,0.000000,0.000000,0.595013 +0.804576,0.000000,0.000000,0.593850 +0.805434,0.000000,0.000000,0.592685 +0.806292,0.000000,0.000000,0.591518 +0.807149,0.000000,0.000000,0.590348 +0.808006,0.000000,0.000000,0.589175 +0.808861,0.000000,0.000000,0.588000 +0.809716,0.000000,0.000000,0.586822 +0.810570,0.000000,0.000000,0.585641 +0.811424,0.000000,0.000000,0.584459 +0.812276,0.000000,0.000000,0.583273 +0.813128,0.000000,0.000000,0.582085 +0.813979,0.000000,0.000000,0.580895 +0.814829,0.000000,0.000000,0.579702 +0.815678,0.000000,0.000000,0.578506 +0.816526,0.000000,0.000000,0.577308 +0.817374,0.000000,0.000000,0.576108 +0.818220,0.000000,0.000000,0.574905 +0.819066,0.000000,0.000000,0.573699 +0.819911,0.000000,0.000000,0.572491 +0.820755,0.000000,0.000000,0.571281 +0.821598,0.000000,0.000000,0.570068 +0.822440,0.000000,0.000000,0.568852 +0.823281,0.000000,0.000000,0.567634 +0.824121,0.000000,0.000000,0.566413 +0.824960,0.000000,0.000000,0.565191 +0.825799,0.000000,0.000000,0.563965 +0.826636,0.000000,0.000000,0.562737 +0.827472,0.000000,0.000000,0.561507 +0.828307,0.000000,0.000000,0.560274 +0.829142,0.000000,0.000000,0.559039 +0.829975,0.000000,0.000000,0.557801 +0.830807,0.000000,0.000000,0.556561 +0.831638,0.000000,0.000000,0.555318 +0.832468,0.000000,0.000000,0.554073 +0.833297,0.000000,0.000000,0.552826 +0.834125,0.000000,0.000000,0.551576 +0.834952,0.000000,0.000000,0.550323 +0.835777,0.000000,0.000000,0.549069 +0.836602,0.000000,0.000000,0.547812 +0.837425,0.000000,0.000000,0.546552 +0.838247,0.000000,0.000000,0.545290 +0.839069,0.000000,0.000000,0.544026 +0.839888,0.000000,0.000000,0.542759 +0.840707,0.000000,0.000000,0.541490 +0.841525,0.000000,0.000000,0.540218 +0.842341,0.000000,0.000000,0.538944 +0.843156,0.000000,0.000000,0.537668 +0.843970,0.000000,0.000000,0.536390 +0.844783,0.000000,0.000000,0.535109 +0.845595,0.000000,0.000000,0.533825 +0.846405,0.000000,0.000000,0.532540 +0.847214,0.000000,0.000000,0.531252 +0.848022,0.000000,0.000000,0.529961 +0.848828,0.000000,0.000000,0.528669 +0.849634,0.000000,0.000000,0.527374 +0.850437,0.000000,0.000000,0.526076 +0.851240,0.000000,0.000000,0.524776 +0.852041,0.000000,0.000000,0.523475 +0.852841,0.000000,0.000000,0.522170 +0.853640,0.000000,0.000000,0.520864 +0.854437,0.000000,0.000000,0.519555 +0.855233,0.000000,0.000000,0.518244 +0.856028,0.000000,0.000000,0.516930 +0.856821,0.000000,0.000000,0.515614 +0.857612,0.000000,0.000000,0.514296 +0.858403,0.000000,0.000000,0.512976 +0.859192,0.000000,0.000000,0.511654 +0.859979,0.000000,0.000000,0.510329 +0.860765,0.000000,0.000000,0.509002 +0.861550,0.000000,0.000000,0.507673 +0.862333,0.000000,0.000000,0.506341 +0.863115,0.000000,0.000000,0.505007 +0.863895,0.000000,0.000000,0.503672 +0.864674,0.000000,0.000000,0.502333 +0.865451,0.000000,0.000000,0.500993 +0.866227,0.000000,0.000000,0.499650 +0.867001,0.000000,0.000000,0.498306 +0.867774,0.000000,0.000000,0.496959 +0.868545,0.000000,0.000000,0.495610 +0.869315,0.000000,0.000000,0.494258 +0.870083,0.000000,0.000000,0.492905 +0.870850,0.000000,0.000000,0.491549 +0.871615,0.000000,0.000000,0.490191 +0.872378,0.000000,0.000000,0.488832 +0.873140,0.000000,0.000000,0.487469 +0.873900,0.000000,0.000000,0.486105 +0.874659,0.000000,0.000000,0.484739 +0.875416,0.000000,0.000000,0.483370 +0.876171,0.000000,0.000000,0.482000 +0.876925,0.000000,0.000000,0.480627 +0.877677,0.000000,0.000000,0.479252 +0.878428,0.000000,0.000000,0.477876 +0.879176,0.000000,0.000000,0.476497 +0.879923,0.000000,0.000000,0.475116 +0.880669,0.000000,0.000000,0.473732 +0.881413,0.000000,0.000000,0.472347 +0.882155,0.000000,0.000000,0.470960 +0.882895,0.000000,0.000000,0.469571 +0.883633,0.000000,0.000000,0.468179 +0.884370,0.000000,0.000000,0.466786 +0.885105,0.000000,0.000000,0.465391 +0.885839,0.000000,0.000000,0.463993 +0.886570,0.000000,0.000000,0.462594 +0.887300,0.000000,0.000000,0.461192 +0.888028,0.000000,0.000000,0.459789 +0.888755,0.000000,0.000000,0.458383 +0.889479,0.000000,0.000000,0.456976 +0.890202,0.000000,0.000000,0.455567 +0.890923,0.000000,0.000000,0.454155 +0.891642,0.000000,0.000000,0.452742 +0.892359,0.000000,0.000000,0.451327 +0.893074,0.000000,0.000000,0.449909 +0.893788,0.000000,0.000000,0.448490 +0.894499,0.000000,0.000000,0.447069 +0.895209,0.000000,0.000000,0.445646 +0.895917,0.000000,0.000000,0.444221 +0.896623,0.000000,0.000000,0.442794 +0.897327,0.000000,0.000000,0.441366 +0.898030,0.000000,0.000000,0.439935 +0.898730,0.000000,0.000000,0.438502 +0.899428,0.000000,0.000000,0.437068 +0.900125,0.000000,0.000000,0.435632 +0.900819,0.000000,0.000000,0.434194 +0.901512,0.000000,0.000000,0.432754 +0.902203,0.000000,0.000000,0.431312 +0.902892,0.000000,0.000000,0.429868 +0.903578,0.000000,0.000000,0.428423 +0.904263,0.000000,0.000000,0.426976 +0.904946,0.000000,0.000000,0.425527 +0.905627,0.000000,0.000000,0.424076 +0.906305,0.000000,0.000000,0.422623 +0.906982,0.000000,0.000000,0.421169 +0.907657,0.000000,0.000000,0.419713 +0.908330,0.000000,0.000000,0.418255 +0.909001,0.000000,0.000000,0.416795 +0.909669,0.000000,0.000000,0.415333 +0.910336,0.000000,0.000000,0.413870 +0.911000,0.000000,0.000000,0.412405 +0.911663,0.000000,0.000000,0.410939 +0.912323,0.000000,0.000000,0.409470 +0.912982,0.000000,0.000000,0.408000 +0.913638,0.000000,0.000000,0.406529 +0.914292,0.000000,0.000000,0.405055 +0.914944,0.000000,0.000000,0.403580 +0.915594,0.000000,0.000000,0.402103 +0.916242,0.000000,0.000000,0.400625 +0.916888,0.000000,0.000000,0.399145 +0.917532,0.000000,0.000000,0.397663 +0.918173,0.000000,0.000000,0.396180 +0.918812,0.000000,0.000000,0.394695 +0.919450,0.000000,0.000000,0.393208 +0.920085,0.000000,0.000000,0.391720 +0.920717,0.000000,0.000000,0.390230 +0.921348,0.000000,0.000000,0.388739 +0.921977,0.000000,0.000000,0.387246 +0.922603,0.000000,0.000000,0.385751 +0.923227,0.000000,0.000000,0.384255 +0.923849,0.000000,0.000000,0.382758 +0.924469,0.000000,0.000000,0.381258 +0.925086,0.000000,0.000000,0.379758 +0.925701,0.000000,0.000000,0.378255 +0.926314,0.000000,0.000000,0.376752 +0.926925,0.000000,0.000000,0.375247 +0.927534,0.000000,0.000000,0.373740 +0.928140,0.000000,0.000000,0.372232 +0.928744,0.000000,0.000000,0.370722 +0.929346,0.000000,0.000000,0.369211 +0.929945,0.000000,0.000000,0.367698 +0.930542,0.000000,0.000000,0.366184 +0.931137,0.000000,0.000000,0.364669 +0.931730,0.000000,0.000000,0.363152 +0.932320,0.000000,0.000000,0.361634 +0.932908,0.000000,0.000000,0.360114 +0.933494,0.000000,0.000000,0.358593 +0.934077,0.000000,0.000000,0.357071 +0.934659,0.000000,0.000000,0.355547 +0.935237,0.000000,0.000000,0.354022 +0.935814,0.000000,0.000000,0.352495 +0.936388,0.000000,0.000000,0.350967 +0.936960,0.000000,0.000000,0.349438 +0.937529,0.000000,0.000000,0.347907 +0.938096,0.000000,0.000000,0.346375 +0.938661,0.000000,0.000000,0.344842 +0.939223,0.000000,0.000000,0.343308 +0.939783,0.000000,0.000000,0.341772 +0.940340,0.000000,0.000000,0.340235 +0.940896,0.000000,0.000000,0.338697 +0.941448,0.000000,0.000000,0.337157 +0.941999,0.000000,0.000000,0.335617 +0.942547,0.000000,0.000000,0.334075 +0.943092,0.000000,0.000000,0.332531 +0.943635,0.000000,0.000000,0.330987 +0.944176,0.000000,0.000000,0.329441 +0.944714,0.000000,0.000000,0.327895 +0.945250,0.000000,0.000000,0.326347 +0.945784,0.000000,0.000000,0.324797 +0.946315,0.000000,0.000000,0.323247 +0.946843,0.000000,0.000000,0.321696 +0.947369,0.000000,0.000000,0.320143 +0.947893,0.000000,0.000000,0.318589 +0.948414,0.000000,0.000000,0.317035 +0.948933,0.000000,0.000000,0.315479 +0.949449,0.000000,0.000000,0.313922 +0.949963,0.000000,0.000000,0.312363 +0.950474,0.000000,0.000000,0.310804 +0.950983,0.000000,0.000000,0.309244 +0.951489,0.000000,0.000000,0.307683 +0.951993,0.000000,0.000000,0.306120 +0.952494,0.000000,0.000000,0.304557 +0.952993,0.000000,0.000000,0.302992 +0.953489,0.000000,0.000000,0.301427 +0.953983,0.000000,0.000000,0.299861 +0.954474,0.000000,0.000000,0.298293 +0.954963,0.000000,0.000000,0.296725 +0.955449,0.000000,0.000000,0.295155 +0.955933,0.000000,0.000000,0.293585 +0.956414,0.000000,0.000000,0.292014 +0.956893,0.000000,0.000000,0.290442 +0.957369,0.000000,0.000000,0.288869 +0.957842,0.000000,0.000000,0.287295 +0.958313,0.000000,0.000000,0.285720 +0.958782,0.000000,0.000000,0.284144 +0.959248,0.000000,0.000000,0.282567 +0.959711,0.000000,0.000000,0.280990 +0.960172,0.000000,0.000000,0.279411 +0.960630,0.000000,0.000000,0.277832 +0.961085,0.000000,0.000000,0.276252 +0.961538,0.000000,0.000000,0.274671 +0.961989,0.000000,0.000000,0.273089 +0.962437,0.000000,0.000000,0.271507 +0.962882,0.000000,0.000000,0.269923 +0.963324,0.000000,0.000000,0.268339 +0.963765,0.000000,0.000000,0.266754 +0.964202,0.000000,0.000000,0.265169 +0.964637,0.000000,0.000000,0.263582 +0.965069,0.000000,0.000000,0.261995 +0.965499,0.000000,0.000000,0.260408 +0.965926,0.000000,0.000000,0.258819 +0.966350,0.000000,0.000000,0.257230 +0.966772,0.000000,0.000000,0.255640 +0.967191,0.000000,0.000000,0.254049 +0.967608,0.000000,0.000000,0.252458 +0.968022,0.000000,0.000000,0.250866 +0.968433,0.000000,0.000000,0.249274 +0.968842,0.000000,0.000000,0.247680 +0.969248,0.000000,0.000000,0.246087 +0.969651,0.000000,0.000000,0.244492 +0.970052,0.000000,0.000000,0.242897 +0.970450,0.000000,0.000000,0.241301 +0.970846,0.000000,0.000000,0.239705 +0.971239,0.000000,0.000000,0.238109 +0.971629,0.000000,0.000000,0.236511 +0.972016,0.000000,0.000000,0.234913 +0.972401,0.000000,0.000000,0.233315 +0.972783,0.000000,0.000000,0.231716 +0.973163,0.000000,0.000000,0.230117 +0.973540,0.000000,0.000000,0.228517 +0.973914,0.000000,0.000000,0.226916 +0.974286,0.000000,0.000000,0.225316 +0.974655,0.000000,0.000000,0.223714 +0.975021,0.000000,0.000000,0.222112 +0.975385,0.000000,0.000000,0.220510 +0.975746,0.000000,0.000000,0.218908 +0.976104,0.000000,0.000000,0.217305 +0.976459,0.000000,0.000000,0.215701 +0.976812,0.000000,0.000000,0.214097 +0.977163,0.000000,0.000000,0.212493 +0.977510,0.000000,0.000000,0.210889 +0.977855,0.000000,0.000000,0.209284 +0.978197,0.000000,0.000000,0.207678 +0.978537,0.000000,0.000000,0.206073 +0.978874,0.000000,0.000000,0.204467 +0.979208,0.000000,0.000000,0.202860 +0.979539,0.000000,0.000000,0.201254 +0.979868,0.000000,0.000000,0.199647 +0.980194,0.000000,0.000000,0.198040 +0.980517,0.000000,0.000000,0.196433 +0.980838,0.000000,0.000000,0.194825 +0.981156,0.000000,0.000000,0.193217 +0.981471,0.000000,0.000000,0.191609 +0.981784,0.000000,0.000000,0.190001 +0.982094,0.000000,0.000000,0.188392 +0.982401,0.000000,0.000000,0.186783 +0.982706,0.000000,0.000000,0.185174 +0.983007,0.000000,0.000000,0.183565 +0.983307,0.000000,0.000000,0.181956 +0.983603,0.000000,0.000000,0.180347 +0.983897,0.000000,0.000000,0.178737 +0.984188,0.000000,0.000000,0.177128 +0.984476,0.000000,0.000000,0.175518 +0.984762,0.000000,0.000000,0.173908 +0.985045,0.000000,0.000000,0.172298 +0.985325,0.000000,0.000000,0.170688 +0.985603,0.000000,0.000000,0.169078 +0.985878,0.000000,0.000000,0.167468 +0.986150,0.000000,0.000000,0.165858 +0.986419,0.000000,0.000000,0.164247 +0.986686,0.000000,0.000000,0.162637 +0.986950,0.000000,0.000000,0.161027 +0.987211,0.000000,0.000000,0.159417 +0.987470,0.000000,0.000000,0.157807 +0.987726,0.000000,0.000000,0.156196 +0.987979,0.000000,0.000000,0.154586 +0.988230,0.000000,0.000000,0.152976 +0.988478,0.000000,0.000000,0.151366 +0.988723,0.000000,0.000000,0.149756 +0.988965,0.000000,0.000000,0.148146 +0.989205,0.000000,0.000000,0.146536 +0.989442,0.000000,0.000000,0.144927 +0.989677,0.000000,0.000000,0.143317 +0.989909,0.000000,0.000000,0.141708 +0.990138,0.000000,0.000000,0.140099 +0.990364,0.000000,0.000000,0.138489 +0.990588,0.000000,0.000000,0.136881 +0.990809,0.000000,0.000000,0.135272 +0.991027,0.000000,0.000000,0.133663 +0.991242,0.000000,0.000000,0.132055 +0.991455,0.000000,0.000000,0.130447 +0.991666,0.000000,0.000000,0.128839 +0.991873,0.000000,0.000000,0.127231 +0.992078,0.000000,0.000000,0.125624 +0.992280,0.000000,0.000000,0.124016 +0.992480,0.000000,0.000000,0.122410 +0.992677,0.000000,0.000000,0.120803 +0.992871,0.000000,0.000000,0.119197 +0.993062,0.000000,0.000000,0.117591 +0.993251,0.000000,0.000000,0.115985 +0.993437,0.000000,0.000000,0.114380 +0.993621,0.000000,0.000000,0.112775 +0.993801,0.000000,0.000000,0.111170 +0.993980,0.000000,0.000000,0.109566 +0.994155,0.000000,0.000000,0.107962 +0.994328,0.000000,0.000000,0.106358 +0.994498,0.000000,0.000000,0.104755 +0.994666,0.000000,0.000000,0.103152 +0.994830,0.000000,0.000000,0.101550 +0.994993,0.000000,0.000000,0.099948 +0.995152,0.000000,0.000000,0.098347 +0.995309,0.000000,0.000000,0.096746 +0.995463,0.000000,0.000000,0.095145 +0.995615,0.000000,0.000000,0.093545 +0.995764,0.000000,0.000000,0.091946 +0.995910,0.000000,0.000000,0.090347 +0.996054,0.000000,0.000000,0.088748 +0.996195,0.000000,0.000000,0.087150 +0.996334,0.000000,0.000000,0.085553 +0.996469,0.000000,0.000000,0.083956 +0.996603,0.000000,0.000000,0.082360 +0.996733,0.000000,0.000000,0.080764 +0.996861,0.000000,0.000000,0.079169 +0.996987,0.000000,0.000000,0.077574 +0.997109,0.000000,0.000000,0.075980 +0.997229,0.000000,0.000000,0.074387 +0.997347,0.000000,0.000000,0.072794 +0.997462,0.000000,0.000000,0.071202 +0.997574,0.000000,0.000000,0.069611 +0.997684,0.000000,0.000000,0.068020 +0.997791,0.000000,0.000000,0.066430 +0.997896,0.000000,0.000000,0.064840 +0.997998,0.000000,0.000000,0.063252 +0.998097,0.000000,0.000000,0.061664 +0.998194,0.000000,0.000000,0.060077 +0.998288,0.000000,0.000000,0.058490 +0.998380,0.000000,0.000000,0.056904 +0.998469,0.000000,0.000000,0.055319 +0.998555,0.000000,0.000000,0.053735 +0.998639,0.000000,0.000000,0.052151 +0.998721,0.000000,0.000000,0.050569 +0.998799,0.000000,0.000000,0.048987 +0.998876,0.000000,0.000000,0.047406 +0.998949,0.000000,0.000000,0.045825 +0.999021,0.000000,0.000000,0.044246 +0.999089,0.000000,0.000000,0.042667 +0.999155,0.000000,0.000000,0.041090 +0.999219,0.000000,0.000000,0.039513 +0.999280,0.000000,0.000000,0.037937 +0.999339,0.000000,0.000000,0.036362 +0.999395,0.000000,0.000000,0.034787 +0.999448,0.000000,0.000000,0.033214 +0.999499,0.000000,0.000000,0.031642 +0.999548,0.000000,0.000000,0.030070 +0.999594,0.000000,0.000000,0.028500 +0.999637,0.000000,0.000000,0.026930 +0.999678,0.000000,0.000000,0.025361 +0.999717,0.000000,0.000000,0.023794 +0.999753,0.000000,0.000000,0.022227 +0.999787,0.000000,0.000000,0.020661 +0.999818,0.000000,0.000000,0.019097 +0.999846,0.000000,0.000000,0.017533 +0.999872,0.000000,0.000000,0.015971 +0.999896,0.000000,0.000000,0.014409 +0.999917,0.000000,0.000000,0.012849 +0.999936,0.000000,0.000000,0.011289 +0.999953,0.000000,0.000000,0.009731 +0.999967,0.000000,0.000000,0.008173 +0.999978,0.000000,0.000000,0.006617 +0.999987,0.000000,0.000000,0.005062 +0.999994,0.000000,0.000000,0.003508 +0.999998,0.000000,0.000000,0.001955 +1.000000,0.000000,0.000000,0.000404 +0.999999,0.000000,0.000000,-0.001147 +0.999996,0.000000,0.000000,-0.002696 +0.999991,0.000000,0.000000,-0.004245 +0.999983,0.000000,0.000000,-0.005792 +0.999973,0.000000,0.000000,-0.007338 +0.999961,0.000000,0.000000,-0.008882 +0.999946,0.000000,0.000000,-0.010426 +0.999928,0.000000,0.000000,-0.011968 +0.999909,0.000000,0.000000,-0.013509 +0.999887,0.000000,0.000000,-0.015049 +0.999862,0.000000,0.000000,-0.016588 +0.999836,0.000000,0.000000,-0.018125 +0.999807,0.000000,0.000000,-0.019661 +0.999775,0.000000,0.000000,-0.021196 +0.999742,0.000000,0.000000,-0.022729 +0.999706,0.000000,0.000000,-0.024261 +0.999667,0.000000,0.000000,-0.025792 +0.999627,0.000000,0.000000,-0.027322 +0.999584,0.000000,0.000000,-0.028850 +0.999539,0.000000,0.000000,-0.030377 +0.999491,0.000000,0.000000,-0.031902 +0.999441,0.000000,0.000000,-0.033426 +0.999389,0.000000,0.000000,-0.034949 +0.999335,0.000000,0.000000,-0.036470 +0.999278,0.000000,0.000000,-0.037990 +0.999219,0.000000,0.000000,-0.039509 +0.999158,0.000000,0.000000,-0.041026 +0.999095,0.000000,0.000000,-0.042542 +0.999029,0.000000,0.000000,-0.044056 +0.998961,0.000000,0.000000,-0.045569 +0.998891,0.000000,0.000000,-0.047080 +0.998819,0.000000,0.000000,-0.048590 +0.998744,0.000000,0.000000,-0.050099 +0.998668,0.000000,0.000000,-0.051606 +0.998589,0.000000,0.000000,-0.053111 +0.998507,0.000000,0.000000,-0.054615 +0.998424,0.000000,0.000000,-0.056118 +0.998339,0.000000,0.000000,-0.057619 +0.998251,0.000000,0.000000,-0.059118 +0.998161,0.000000,0.000000,-0.060616 +0.998069,0.000000,0.000000,-0.062113 +0.997975,0.000000,0.000000,-0.063607 +0.997879,0.000000,0.000000,-0.065101 +0.997780,0.000000,0.000000,-0.066592 +0.997680,0.000000,0.000000,-0.068082 +0.997577,0.000000,0.000000,-0.069571 +0.997472,0.000000,0.000000,-0.071058 +0.997365,0.000000,0.000000,-0.072543 +0.997256,0.000000,0.000000,-0.074027 +0.997145,0.000000,0.000000,-0.075509 +0.997032,0.000000,0.000000,-0.076989 +0.996917,0.000000,0.000000,-0.078468 +0.996799,0.000000,0.000000,-0.079945 +0.996680,0.000000,0.000000,-0.081420 +0.996558,0.000000,0.000000,-0.082894 +0.996435,0.000000,0.000000,-0.084366 +0.996309,0.000000,0.000000,-0.085836 +0.996182,0.000000,0.000000,-0.087305 +0.996052,0.000000,0.000000,-0.088772 +0.995920,0.000000,0.000000,-0.090237 +0.995787,0.000000,0.000000,-0.091700 +0.995651,0.000000,0.000000,-0.093162 +0.995513,0.000000,0.000000,-0.094622 +0.995374,0.000000,0.000000,-0.096080 +0.995232,0.000000,0.000000,-0.097537 +0.995088,0.000000,0.000000,-0.098991 +0.994943,0.000000,0.000000,-0.100444 +0.994795,0.000000,0.000000,-0.101895 +0.994646,0.000000,0.000000,-0.103345 +0.994494,0.000000,0.000000,-0.104792 +0.994341,0.000000,0.000000,-0.106238 +0.994185,0.000000,0.000000,-0.107681 +0.994028,0.000000,0.000000,-0.109123 +0.993869,0.000000,0.000000,-0.110563 +0.993708,0.000000,0.000000,-0.112002 +0.993545,0.000000,0.000000,-0.113438 +0.993380,0.000000,0.000000,-0.114873 +0.993214,0.000000,0.000000,-0.116305 +0.993045,0.000000,0.000000,-0.117736 +0.992874,0.000000,0.000000,-0.119165 +0.992702,0.000000,0.000000,-0.120592 +0.992528,0.000000,0.000000,-0.122017 +0.992352,0.000000,0.000000,-0.123440 +0.992174,0.000000,0.000000,-0.124861 +0.991995,0.000000,0.000000,-0.126280 +0.991813,0.000000,0.000000,-0.127698 +0.991630,0.000000,0.000000,-0.129113 +0.991445,0.000000,0.000000,-0.130526 +0.991258,0.000000,0.000000,-0.131938 +0.991069,0.000000,0.000000,-0.133347 +0.990879,0.000000,0.000000,-0.134754 +0.990687,0.000000,0.000000,-0.136160 +0.990493,0.000000,0.000000,-0.137563 +0.990297,0.000000,0.000000,-0.138965 +0.990100,0.000000,0.000000,-0.140364 +0.989901,0.000000,0.000000,-0.141761 +0.989700,0.000000,0.000000,-0.143157 +0.989498,0.000000,0.000000,-0.144550 +0.989293,0.000000,0.000000,-0.145941 +0.989087,0.000000,0.000000,-0.147330 +0.988880,0.000000,0.000000,-0.148717 +0.988670,0.000000,0.000000,-0.150102 +0.988460,0.000000,0.000000,-0.151485 +0.988247,0.000000,0.000000,-0.152866 +0.988033,0.000000,0.000000,-0.154245 +0.987817,0.000000,0.000000,-0.155621 +0.987599,0.000000,0.000000,-0.156996 +0.987380,0.000000,0.000000,-0.158368 +0.987159,0.000000,0.000000,-0.159739 +0.986937,0.000000,0.000000,-0.161107 +0.986713,0.000000,0.000000,-0.162473 +0.986487,0.000000,0.000000,-0.163837 +0.986260,0.000000,0.000000,-0.165198 +0.986032,0.000000,0.000000,-0.166558 +0.985801,0.000000,0.000000,-0.167915 +0.985570,0.000000,0.000000,-0.169270 +0.985336,0.000000,0.000000,-0.170623 +0.985101,0.000000,0.000000,-0.171974 +0.984865,0.000000,0.000000,-0.173323 +0.984627,0.000000,0.000000,-0.174669 +0.984388,0.000000,0.000000,-0.176013 +0.984147,0.000000,0.000000,-0.177355 +0.983905,0.000000,0.000000,-0.178695 +0.983661,0.000000,0.000000,-0.180032 +0.983415,0.000000,0.000000,-0.181368 +0.983169,0.000000,0.000000,-0.182701 +0.982920,0.000000,0.000000,-0.184031 +0.982671,0.000000,0.000000,-0.185360 +0.982420,0.000000,0.000000,-0.186686 +0.982167,0.000000,0.000000,-0.188010 +0.981913,0.000000,0.000000,-0.189332 +0.981658,0.000000,0.000000,-0.190651 +0.981401,0.000000,0.000000,-0.191968 +0.981143,0.000000,0.000000,-0.193283 +0.980884,0.000000,0.000000,-0.194595 +0.980623,0.000000,0.000000,-0.195905 +0.980361,0.000000,0.000000,-0.197213 +0.980097,0.000000,0.000000,-0.198518 +0.979832,0.000000,0.000000,-0.199822 +0.979566,0.000000,0.000000,-0.201122 +0.979299,0.000000,0.000000,-0.202421 +0.979030,0.000000,0.000000,-0.203717 +0.978760,0.000000,0.000000,-0.205011 +0.978488,0.000000,0.000000,-0.206302 +0.978216,0.000000,0.000000,-0.207591 +0.977942,0.000000,0.000000,-0.208878 +0.977667,0.000000,0.000000,-0.210162 +0.977390,0.000000,0.000000,-0.211444 +0.977113,0.000000,0.000000,-0.212723 +0.976834,0.000000,0.000000,-0.214000 +0.976554,0.000000,0.000000,-0.215275 +0.976272,0.000000,0.000000,-0.216547 +0.975990,0.000000,0.000000,-0.217816 +0.975706,0.000000,0.000000,-0.219084 +0.975421,0.000000,0.000000,-0.220349 +0.975135,0.000000,0.000000,-0.221611 +0.974848,0.000000,0.000000,-0.222871 +0.974560,0.000000,0.000000,-0.224129 +0.974270,0.000000,0.000000,-0.225384 +0.973979,0.000000,0.000000,-0.226636 +0.973688,0.000000,0.000000,-0.227887 +0.973395,0.000000,0.000000,-0.229134 +0.973101,0.000000,0.000000,-0.230380 +0.972806,0.000000,0.000000,-0.231622 +0.972510,0.000000,0.000000,-0.232862 +0.972212,0.000000,0.000000,-0.234100 +0.971914,0.000000,0.000000,-0.235335 +0.971615,0.000000,0.000000,-0.236568 +0.971315,0.000000,0.000000,-0.237798 +0.971013,0.000000,0.000000,-0.239026 +0.970711,0.000000,0.000000,-0.240251 +0.970407,0.000000,0.000000,-0.241474 +0.970103,0.000000,0.000000,-0.242694 +0.969797,0.000000,0.000000,-0.243912 +0.969491,0.000000,0.000000,-0.245127 +0.969184,0.000000,0.000000,-0.246339 +0.968875,0.000000,0.000000,-0.247549 +0.968566,0.000000,0.000000,-0.248756 +0.968256,0.000000,0.000000,-0.249961 +0.967945,0.000000,0.000000,-0.251163 +0.967633,0.000000,0.000000,-0.252363 +0.967320,0.000000,0.000000,-0.253560 +0.967006,0.000000,0.000000,-0.254754 +0.966691,0.000000,0.000000,-0.255946 +0.966375,0.000000,0.000000,-0.257136 +0.966059,0.000000,0.000000,-0.258322 +0.965741,0.000000,0.000000,-0.259506 +0.965423,0.000000,0.000000,-0.260688 +0.965104,0.000000,0.000000,-0.261867 +0.964784,0.000000,0.000000,-0.263043 +0.964463,0.000000,0.000000,-0.264216 +0.964142,0.000000,0.000000,-0.265387 +0.963819,0.000000,0.000000,-0.266556 +0.963496,0.000000,0.000000,-0.267721 +0.963172,0.000000,0.000000,-0.268885 +0.962848,0.000000,0.000000,-0.270045 +0.962522,0.000000,0.000000,-0.271203 +0.962196,0.000000,0.000000,-0.272358 +0.961869,0.000000,0.000000,-0.273510 +0.961541,0.000000,0.000000,-0.274660 +0.961213,0.000000,0.000000,-0.275807 +0.960884,0.000000,0.000000,-0.276952 +0.960554,0.000000,0.000000,-0.278093 +0.960224,0.000000,0.000000,-0.279232 +0.959892,0.000000,0.000000,-0.280369 +0.959560,0.000000,0.000000,-0.281503 +0.959228,0.000000,0.000000,-0.282634 +0.958895,0.000000,0.000000,-0.283762 +0.958561,0.000000,0.000000,-0.284887 +0.958227,0.000000,0.000000,-0.286010 +0.957891,0.000000,0.000000,-0.287130 +0.957556,0.000000,0.000000,-0.288248 +0.957220,0.000000,0.000000,-0.289363 +0.956883,0.000000,0.000000,-0.290475 +0.956545,0.000000,0.000000,-0.291584 +0.956207,0.000000,0.000000,-0.292691 +0.955869,0.000000,0.000000,-0.293794 +0.955530,0.000000,0.000000,-0.294895 +0.955190,0.000000,0.000000,-0.295994 +0.954850,0.000000,0.000000,-0.297089 +0.954509,0.000000,0.000000,-0.298182 +0.954168,0.000000,0.000000,-0.299272 +0.953826,0.000000,0.000000,-0.300360 +0.953484,0.000000,0.000000,-0.301444 +0.953141,0.000000,0.000000,-0.302526 +0.952798,0.000000,0.000000,-0.303605 +0.952454,0.000000,0.000000,-0.304681 +0.952110,0.000000,0.000000,-0.305755 +0.951766,0.000000,0.000000,-0.306826 +0.951421,0.000000,0.000000,-0.307894 +0.951075,0.000000,0.000000,-0.308959 +0.950730,0.000000,0.000000,-0.310021 +0.950384,0.000000,0.000000,-0.311081 +0.950037,0.000000,0.000000,-0.312137 +0.949690,0.000000,0.000000,-0.313191 +0.949343,0.000000,0.000000,-0.314243 +0.948995,0.000000,0.000000,-0.315291 +0.948647,0.000000,0.000000,-0.316337 +0.948299,0.000000,0.000000,-0.317379 +0.947950,0.000000,0.000000,-0.318419 +0.947601,0.000000,0.000000,-0.319456 +0.947252,0.000000,0.000000,-0.320491 +0.946902,0.000000,0.000000,-0.321522 +0.946552,0.000000,0.000000,-0.322551 +0.946202,0.000000,0.000000,-0.323577 +0.945852,0.000000,0.000000,-0.324599 +0.945501,0.000000,0.000000,-0.325620 +0.945150,0.000000,0.000000,-0.326637 +0.944799,0.000000,0.000000,-0.327651 +0.944447,0.000000,0.000000,-0.328663 +0.944096,0.000000,0.000000,-0.329672 +0.943744,0.000000,0.000000,-0.330678 +0.943392,0.000000,0.000000,-0.331681 +0.943039,0.000000,0.000000,-0.332681 +0.942687,0.000000,0.000000,-0.333678 +0.942334,0.000000,0.000000,-0.334673 +0.941982,0.000000,0.000000,-0.335664 +0.941629,0.000000,0.000000,-0.336653 +0.941276,0.000000,0.000000,-0.337639 +0.940922,0.000000,0.000000,-0.338622 +0.940569,0.000000,0.000000,-0.339602 +0.940216,0.000000,0.000000,-0.340579 +0.939862,0.000000,0.000000,-0.341554 +0.939509,0.000000,0.000000,-0.342525 +0.939155,0.000000,0.000000,-0.343494 +0.938801,0.000000,0.000000,-0.344460 +0.938447,0.000000,0.000000,-0.345422 +0.938093,0.000000,0.000000,-0.346382 +0.937739,0.000000,0.000000,-0.347339 +0.937385,0.000000,0.000000,-0.348294 +0.937032,0.000000,0.000000,-0.349245 +0.936677,0.000000,0.000000,-0.350193 +0.936323,0.000000,0.000000,-0.351139 +0.935969,0.000000,0.000000,-0.352081 +0.935615,0.000000,0.000000,-0.353021 +0.935261,0.000000,0.000000,-0.353958 +0.934908,0.000000,0.000000,-0.354891 +0.934554,0.000000,0.000000,-0.355822 +0.934200,0.000000,0.000000,-0.356750 +0.933846,0.000000,0.000000,-0.357675 +0.933492,0.000000,0.000000,-0.358597 +0.933139,0.000000,0.000000,-0.359517 +0.932785,0.000000,0.000000,-0.360433 +0.932432,0.000000,0.000000,-0.361346 +0.932078,0.000000,0.000000,-0.362257 +0.931725,0.000000,0.000000,-0.363164 +0.931372,0.000000,0.000000,-0.364069 +0.931019,0.000000,0.000000,-0.364970 +0.930666,0.000000,0.000000,-0.365869 +0.930314,0.000000,0.000000,-0.366765 +0.929961,0.000000,0.000000,-0.367658 +0.929609,0.000000,0.000000,-0.368548 +0.929257,0.000000,0.000000,-0.369435 +0.928905,0.000000,0.000000,-0.370319 +0.928553,0.000000,0.000000,-0.371200 +0.928202,0.000000,0.000000,-0.372078 +0.927850,0.000000,0.000000,-0.372953 +0.927499,0.000000,0.000000,-0.373825 +0.927148,0.000000,0.000000,-0.374694 +0.926798,0.000000,0.000000,-0.375561 +0.926448,0.000000,0.000000,-0.376424 +0.926097,0.000000,0.000000,-0.377284 +0.925748,0.000000,0.000000,-0.378142 +0.925398,0.000000,0.000000,-0.378996 +0.925049,0.000000,0.000000,-0.379848 +0.924700,0.000000,0.000000,-0.380696 +0.924352,0.000000,0.000000,-0.381542 +0.924003,0.000000,0.000000,-0.382384 +0.923655,0.000000,0.000000,-0.383224 +0.923308,0.000000,0.000000,-0.384061 +0.922961,0.000000,0.000000,-0.384894 +0.922614,0.000000,0.000000,-0.385725 +0.922267,0.000000,0.000000,-0.386553 +0.921921,0.000000,0.000000,-0.387378 +0.921575,0.000000,0.000000,-0.388199 +0.921230,0.000000,0.000000,-0.389018 +0.920885,0.000000,0.000000,-0.389834 +0.920541,0.000000,0.000000,-0.390647 +0.920197,0.000000,0.000000,-0.391457 +0.919853,0.000000,0.000000,-0.392264 +0.919510,0.000000,0.000000,-0.393068 +0.919167,0.000000,0.000000,-0.393868 +0.918824,0.000000,0.000000,-0.394666 +0.918483,0.000000,0.000000,-0.395461 +0.918141,0.000000,0.000000,-0.396253 +0.917800,0.000000,0.000000,-0.397042 +0.917460,0.000000,0.000000,-0.397828 +0.917120,0.000000,0.000000,-0.398611 +0.916781,0.000000,0.000000,-0.399391 +0.916442,0.000000,0.000000,-0.400168 +0.916103,0.000000,0.000000,-0.400942 +0.915765,0.000000,0.000000,-0.401713 +0.915428,0.000000,0.000000,-0.402481 +0.915091,0.000000,0.000000,-0.403246 +0.914755,0.000000,0.000000,-0.404008 +0.914420,0.000000,0.000000,-0.404767 +0.914085,0.000000,0.000000,-0.405523 +0.913750,0.000000,0.000000,-0.406276 +0.913416,0.000000,0.000000,-0.407027 +0.913083,0.000000,0.000000,-0.407774 +0.912750,0.000000,0.000000,-0.408518 +0.912418,0.000000,0.000000,-0.409259 +0.912087,0.000000,0.000000,-0.409997 +0.911756,0.000000,0.000000,-0.410732 +0.911426,0.000000,0.000000,-0.411464 +0.911097,0.000000,0.000000,-0.412193 +0.910768,0.000000,0.000000,-0.412919 +0.910440,0.000000,0.000000,-0.413642 +0.910112,0.000000,0.000000,-0.414362 +0.909786,0.000000,0.000000,-0.415079 +0.909460,0.000000,0.000000,-0.415793 +0.909134,0.000000,0.000000,-0.416503 +0.908809,0.000000,0.000000,-0.417211 +0.908486,0.000000,0.000000,-0.417916 +0.908162,0.000000,0.000000,-0.418618 +0.907840,0.000000,0.000000,-0.419317 +0.907518,0.000000,0.000000,-0.420013 +0.907197,0.000000,0.000000,-0.420706 +0.906877,0.000000,0.000000,-0.421396 +0.906557,0.000000,0.000000,-0.422083 +0.906239,0.000000,0.000000,-0.422766 +0.905921,0.000000,0.000000,-0.423447 +0.905604,0.000000,0.000000,-0.424125 +0.905287,0.000000,0.000000,-0.424800 +0.904972,0.000000,0.000000,-0.425472 +0.904657,0.000000,0.000000,-0.426140 +0.904343,0.000000,0.000000,-0.426806 +0.904030,0.000000,0.000000,-0.427469 +0.903718,0.000000,0.000000,-0.428128 +0.903406,0.000000,0.000000,-0.428785 +0.903096,0.000000,0.000000,-0.429439 +0.902786,0.000000,0.000000,-0.430089 +0.902477,0.000000,0.000000,-0.430737 +0.902170,0.000000,0.000000,-0.431382 +0.901862,0.000000,0.000000,-0.432023 +0.901556,0.000000,0.000000,-0.432662 +0.901251,0.000000,0.000000,-0.433297 +0.900947,0.000000,0.000000,-0.433930 +0.900643,0.000000,0.000000,-0.434559 +0.900341,0.000000,0.000000,-0.435186 +0.900039,0.000000,0.000000,-0.435809 +0.899738,0.000000,0.000000,-0.436430 +0.899439,0.000000,0.000000,-0.437047 +0.899140,0.000000,0.000000,-0.437661 +0.898842,0.000000,0.000000,-0.438273 +0.898545,0.000000,0.000000,-0.438881 +0.898249,0.000000,0.000000,-0.439486 +0.897954,0.000000,0.000000,-0.440089 +0.897660,0.000000,0.000000,-0.440688 +0.897367,0.000000,0.000000,-0.441284 +0.897075,0.000000,0.000000,-0.441878 +0.896784,0.000000,0.000000,-0.442468 +0.896494,0.000000,0.000000,-0.443055 +0.896206,0.000000,0.000000,-0.443639 +0.895918,0.000000,0.000000,-0.444220 +0.895631,0.000000,0.000000,-0.444798 +0.895345,0.000000,0.000000,-0.445373 +0.895060,0.000000,0.000000,-0.445945 +0.894776,0.000000,0.000000,-0.446514 +0.894494,0.000000,0.000000,-0.447080 +0.894212,0.000000,0.000000,-0.447643 +0.893932,0.000000,0.000000,-0.448203 +0.893652,0.000000,0.000000,-0.448760 +0.893374,0.000000,0.000000,-0.449314 +0.893096,0.000000,0.000000,-0.449865 +0.892820,0.000000,0.000000,-0.450413 +0.892545,0.000000,0.000000,-0.450958 +0.892271,0.000000,0.000000,-0.451500 +0.891998,0.000000,0.000000,-0.452038 +0.891727,0.000000,0.000000,-0.452574 +0.891456,0.000000,0.000000,-0.453107 +0.891187,0.000000,0.000000,-0.453637 +0.890918,0.000000,0.000000,-0.454163 +0.890651,0.000000,0.000000,-0.454687 +0.890385,0.000000,0.000000,-0.455208 +0.890120,0.000000,0.000000,-0.455725 +0.889857,0.000000,0.000000,-0.456240 +0.889594,0.000000,0.000000,-0.456752 +0.889333,0.000000,0.000000,-0.457260 +0.889073,0.000000,0.000000,-0.457766 +0.888814,0.000000,0.000000,-0.458268 +0.888556,0.000000,0.000000,-0.458768 +0.888300,0.000000,0.000000,-0.459264 +0.888044,0.000000,0.000000,-0.459758 +0.887790,0.000000,0.000000,-0.460248 +0.887538,0.000000,0.000000,-0.460735 +0.887286,0.000000,0.000000,-0.461220 +0.887036,0.000000,0.000000,-0.461701 +0.886786,0.000000,0.000000,-0.462180 +0.886538,0.000000,0.000000,-0.462655 +0.886292,0.000000,0.000000,-0.463127 +0.886046,0.000000,0.000000,-0.463596 +0.885802,0.000000,0.000000,-0.464063 +0.885560,0.000000,0.000000,-0.464526 +0.885318,0.000000,0.000000,-0.464986 +0.885078,0.000000,0.000000,-0.465443 +0.884839,0.000000,0.000000,-0.465898 +0.884601,0.000000,0.000000,-0.466349 +0.884365,0.000000,0.000000,-0.466797 +0.884129,0.000000,0.000000,-0.467242 +0.883896,0.000000,0.000000,-0.467684 +0.883663,0.000000,0.000000,-0.468123 +0.883432,0.000000,0.000000,-0.468559 +0.883202,0.000000,0.000000,-0.468992 +0.882974,0.000000,0.000000,-0.469422 +0.882747,0.000000,0.000000,-0.469849 +0.882521,0.000000,0.000000,-0.470273 +0.882296,0.000000,0.000000,-0.470694 +0.882073,0.000000,0.000000,-0.471112 +0.881851,0.000000,0.000000,-0.471527 +0.881631,0.000000,0.000000,-0.471939 +0.881412,0.000000,0.000000,-0.472348 +0.881194,0.000000,0.000000,-0.472754 +0.880978,0.000000,0.000000,-0.473157 +0.880763,0.000000,0.000000,-0.473557 +0.880550,0.000000,0.000000,-0.473954 +0.880338,0.000000,0.000000,-0.474348 +0.880127,0.000000,0.000000,-0.474738 +0.879918,0.000000,0.000000,-0.475126 +0.879710,0.000000,0.000000,-0.475511 +0.879503,0.000000,0.000000,-0.475893 +0.879298,0.000000,0.000000,-0.476272 +0.879095,0.000000,0.000000,-0.476647 +0.878892,0.000000,0.000000,-0.477020 +0.878692,0.000000,0.000000,-0.477390 +0.878492,0.000000,0.000000,-0.477757 +0.878294,0.000000,0.000000,-0.478120 +0.878098,0.000000,0.000000,-0.478481 +0.877903,0.000000,0.000000,-0.478839 +0.877709,0.000000,0.000000,-0.479193 +0.877517,0.000000,0.000000,-0.479545 +0.877327,0.000000,0.000000,-0.479894 +0.877137,0.000000,0.000000,-0.480239 +0.876950,0.000000,0.000000,-0.480582 +0.876764,0.000000,0.000000,-0.480922 +0.876579,0.000000,0.000000,-0.481258 +0.876396,0.000000,0.000000,-0.481592 +0.876214,0.000000,0.000000,-0.481923 +0.876033,0.000000,0.000000,-0.482250 +0.875855,0.000000,0.000000,-0.482575 +0.875677,0.000000,0.000000,-0.482897 +0.875502,0.000000,0.000000,-0.483215 +0.875327,0.000000,0.000000,-0.483531 +0.875155,0.000000,0.000000,-0.483843 +0.874983,0.000000,0.000000,-0.484153 +0.874814,0.000000,0.000000,-0.484459 +0.874646,0.000000,0.000000,-0.484763 +0.874479,0.000000,0.000000,-0.485064 +0.874314,0.000000,0.000000,-0.485361 +0.874150,0.000000,0.000000,-0.485656 +0.873988,0.000000,0.000000,-0.485947 +0.873828,0.000000,0.000000,-0.486236 +0.873669,0.000000,0.000000,-0.486521 +0.873511,0.000000,0.000000,-0.486804 +0.873355,0.000000,0.000000,-0.487084 +0.873201,0.000000,0.000000,-0.487360 +0.873048,0.000000,0.000000,-0.487634 +0.872897,0.000000,0.000000,-0.487904 +0.872748,0.000000,0.000000,-0.488172 +0.872600,0.000000,0.000000,-0.488436 +0.872453,0.000000,0.000000,-0.488698 +0.872308,0.000000,0.000000,-0.488956 +0.872165,0.000000,0.000000,-0.489212 +0.872023,0.000000,0.000000,-0.489465 +0.871883,0.000000,0.000000,-0.489714 +0.871745,0.000000,0.000000,-0.489961 +0.871608,0.000000,0.000000,-0.490204 +0.871472,0.000000,0.000000,-0.490445 +0.871339,0.000000,0.000000,-0.490682 +0.871206,0.000000,0.000000,-0.490917 +0.871076,0.000000,0.000000,-0.491149 +0.870947,0.000000,0.000000,-0.491377 +0.870820,0.000000,0.000000,-0.491603 +0.870694,0.000000,0.000000,-0.491825 +0.870570,0.000000,0.000000,-0.492045 +0.870447,0.000000,0.000000,-0.492261 +0.870327,0.000000,0.000000,-0.492475 +0.870207,0.000000,0.000000,-0.492686 +0.870090,0.000000,0.000000,-0.492893 +0.869974,0.000000,0.000000,-0.493098 +0.869860,0.000000,0.000000,-0.493300 +0.869747,0.000000,0.000000,-0.493498 +0.869636,0.000000,0.000000,-0.493694 +0.869526,0.000000,0.000000,-0.493886 +0.869419,0.000000,0.000000,-0.494076 +0.869313,0.000000,0.000000,-0.494263 +0.869208,0.000000,0.000000,-0.494446 +0.869105,0.000000,0.000000,-0.494627 +0.869004,0.000000,0.000000,-0.494805 +0.868905,0.000000,0.000000,-0.494979 +0.868807,0.000000,0.000000,-0.495151 +0.868711,0.000000,0.000000,-0.495320 +0.868616,0.000000,0.000000,-0.495486 +0.868523,0.000000,0.000000,-0.495648 +0.868432,0.000000,0.000000,-0.495808 +0.868343,0.000000,0.000000,-0.495965 +0.868255,0.000000,0.000000,-0.496119 +0.868169,0.000000,0.000000,-0.496269 +0.868084,0.000000,0.000000,-0.496417 +0.868001,0.000000,0.000000,-0.496562 +0.867920,0.000000,0.000000,-0.496704 +0.867841,0.000000,0.000000,-0.496843 +0.867763,0.000000,0.000000,-0.496978 +0.867687,0.000000,0.000000,-0.497111 +0.867612,0.000000,0.000000,-0.497241 +0.867540,0.000000,0.000000,-0.497368 +0.867469,0.000000,0.000000,-0.497492 +0.867399,0.000000,0.000000,-0.497613 +0.867332,0.000000,0.000000,-0.497731 +0.867266,0.000000,0.000000,-0.497845 +0.867202,0.000000,0.000000,-0.497957 +0.867139,0.000000,0.000000,-0.498066 +0.867078,0.000000,0.000000,-0.498172 +0.867019,0.000000,0.000000,-0.498275 +0.866961,0.000000,0.000000,-0.498375 +0.866906,0.000000,0.000000,-0.498472 +0.866852,0.000000,0.000000,-0.498566 +0.866799,0.000000,0.000000,-0.498657 +0.866749,0.000000,0.000000,-0.498745 +0.866700,0.000000,0.000000,-0.498830 +0.866652,0.000000,0.000000,-0.498912 +0.866607,0.000000,0.000000,-0.498991 +0.866563,0.000000,0.000000,-0.499068 +0.866521,0.000000,0.000000,-0.499141 +0.866481,0.000000,0.000000,-0.499211 +0.866442,0.000000,0.000000,-0.499278 +0.866405,0.000000,0.000000,-0.499342 +0.866370,0.000000,0.000000,-0.499403 +0.866336,0.000000,0.000000,-0.499461 +0.866304,0.000000,0.000000,-0.499517 +0.866274,0.000000,0.000000,-0.499569 +0.866246,0.000000,0.000000,-0.499618 +0.866219,0.000000,0.000000,-0.499664 +0.866194,0.000000,0.000000,-0.499708 +0.866171,0.000000,0.000000,-0.499748 +0.866149,0.000000,0.000000,-0.499785 +0.866130,0.000000,0.000000,-0.499819 +0.866112,0.000000,0.000000,-0.499851 +0.866095,0.000000,0.000000,-0.499879 +0.866081,0.000000,0.000000,-0.499905 +0.866068,0.000000,0.000000,-0.499927 +0.866056,0.000000,0.000000,-0.499946 +0.866047,0.000000,0.000000,-0.499963 +0.866039,0.000000,0.000000,-0.499976 +0.866033,0.000000,0.000000,-0.499987 +0.866029,0.000000,0.000000,-0.499994 +0.866026,0.000000,0.000000,-0.499999 +0.866025,0.000000,0.000000,-0.500000 +0.866026,0.000000,0.000000,-0.499999 +0.866029,0.000000,0.000000,-0.499994 +0.866033,0.000000,0.000000,-0.499987 +0.866039,0.000000,0.000000,-0.499976 +0.866047,0.000000,0.000000,-0.499963 +0.866056,0.000000,0.000000,-0.499946 +0.866068,0.000000,0.000000,-0.499927 +0.866081,0.000000,0.000000,-0.499905 +0.866095,0.000000,0.000000,-0.499879 +0.866112,0.000000,0.000000,-0.499851 +0.866130,0.000000,0.000000,-0.499819 +0.866149,0.000000,0.000000,-0.499785 +0.866171,0.000000,0.000000,-0.499748 +0.866194,0.000000,0.000000,-0.499708 +0.866219,0.000000,0.000000,-0.499664 +0.866246,0.000000,0.000000,-0.499618 +0.866274,0.000000,0.000000,-0.499569 +0.866304,0.000000,0.000000,-0.499517 +0.866336,0.000000,0.000000,-0.499461 +0.866370,0.000000,0.000000,-0.499403 +0.866405,0.000000,0.000000,-0.499342 +0.866442,0.000000,0.000000,-0.499278 +0.866481,0.000000,0.000000,-0.499211 +0.866521,0.000000,0.000000,-0.499141 +0.866563,0.000000,0.000000,-0.499068 +0.866607,0.000000,0.000000,-0.498991 +0.866652,0.000000,0.000000,-0.498912 +0.866700,0.000000,0.000000,-0.498830 +0.866749,0.000000,0.000000,-0.498745 +0.866799,0.000000,0.000000,-0.498657 +0.866852,0.000000,0.000000,-0.498566 +0.866906,0.000000,0.000000,-0.498472 +0.866961,0.000000,0.000000,-0.498375 +0.867019,0.000000,0.000000,-0.498275 +0.867078,0.000000,0.000000,-0.498172 +0.867139,0.000000,0.000000,-0.498066 +0.867202,0.000000,0.000000,-0.497957 +0.867266,0.000000,0.000000,-0.497845 +0.867332,0.000000,0.000000,-0.497731 +0.867399,0.000000,0.000000,-0.497613 +0.867469,0.000000,0.000000,-0.497492 +0.867540,0.000000,0.000000,-0.497368 +0.867612,0.000000,0.000000,-0.497241 +0.867687,0.000000,0.000000,-0.497111 +0.867763,0.000000,0.000000,-0.496978 +0.867841,0.000000,0.000000,-0.496843 +0.867920,0.000000,0.000000,-0.496704 +0.868001,0.000000,0.000000,-0.496562 +0.868084,0.000000,0.000000,-0.496417 +0.868169,0.000000,0.000000,-0.496269 +0.868255,0.000000,0.000000,-0.496119 +0.868343,0.000000,0.000000,-0.495965 +0.868432,0.000000,0.000000,-0.495808 +0.868523,0.000000,0.000000,-0.495648 +0.868616,0.000000,0.000000,-0.495486 +0.868711,0.000000,0.000000,-0.495320 +0.868807,0.000000,0.000000,-0.495151 +0.868905,0.000000,0.000000,-0.494979 +0.869004,0.000000,0.000000,-0.494805 +0.869105,0.000000,0.000000,-0.494627 +0.869208,0.000000,0.000000,-0.494446 +0.869313,0.000000,0.000000,-0.494263 +0.869419,0.000000,0.000000,-0.494076 +0.869526,0.000000,0.000000,-0.493886 +0.869636,0.000000,0.000000,-0.493694 +0.869747,0.000000,0.000000,-0.493498 +0.869860,0.000000,0.000000,-0.493300 +0.869974,0.000000,0.000000,-0.493098 +0.870090,0.000000,0.000000,-0.492893 +0.870207,0.000000,0.000000,-0.492686 +0.870327,0.000000,0.000000,-0.492475 +0.870447,0.000000,0.000000,-0.492261 +0.870570,0.000000,0.000000,-0.492045 +0.870694,0.000000,0.000000,-0.491825 +0.870820,0.000000,0.000000,-0.491603 +0.870947,0.000000,0.000000,-0.491377 +0.871076,0.000000,0.000000,-0.491149 +0.871206,0.000000,0.000000,-0.490917 +0.871339,0.000000,0.000000,-0.490682 +0.871472,0.000000,0.000000,-0.490445 +0.871608,0.000000,0.000000,-0.490204 +0.871745,0.000000,0.000000,-0.489961 +0.871883,0.000000,0.000000,-0.489714 +0.872023,0.000000,0.000000,-0.489465 +0.872165,0.000000,0.000000,-0.489212 +0.872308,0.000000,0.000000,-0.488956 +0.872453,0.000000,0.000000,-0.488698 +0.872600,0.000000,0.000000,-0.488436 +0.872748,0.000000,0.000000,-0.488172 +0.872897,0.000000,0.000000,-0.487904 +0.873048,0.000000,0.000000,-0.487634 +0.873201,0.000000,0.000000,-0.487360 +0.873355,0.000000,0.000000,-0.487084 +0.873511,0.000000,0.000000,-0.486804 +0.873669,0.000000,0.000000,-0.486521 +0.873828,0.000000,0.000000,-0.486236 +0.873988,0.000000,0.000000,-0.485947 +0.874150,0.000000,0.000000,-0.485656 +0.874314,0.000000,0.000000,-0.485361 +0.874479,0.000000,0.000000,-0.485064 +0.874646,0.000000,0.000000,-0.484763 +0.874814,0.000000,0.000000,-0.484459 +0.874983,0.000000,0.000000,-0.484153 +0.875155,0.000000,0.000000,-0.483843 +0.875327,0.000000,0.000000,-0.483531 +0.875502,0.000000,0.000000,-0.483215 +0.875677,0.000000,0.000000,-0.482897 +0.875855,0.000000,0.000000,-0.482575 +0.876033,0.000000,0.000000,-0.482250 +0.876214,0.000000,0.000000,-0.481923 +0.876396,0.000000,0.000000,-0.481592 +0.876579,0.000000,0.000000,-0.481258 +0.876764,0.000000,0.000000,-0.480922 +0.876950,0.000000,0.000000,-0.480582 +0.877137,0.000000,0.000000,-0.480239 +0.877327,0.000000,0.000000,-0.479894 +0.877517,0.000000,0.000000,-0.479545 +0.877709,0.000000,0.000000,-0.479193 +0.877903,0.000000,0.000000,-0.478839 +0.878098,0.000000,0.000000,-0.478481 +0.878294,0.000000,0.000000,-0.478120 +0.878492,0.000000,0.000000,-0.477757 +0.878692,0.000000,0.000000,-0.477390 +0.878892,0.000000,0.000000,-0.477020 +0.879095,0.000000,0.000000,-0.476647 +0.879298,0.000000,0.000000,-0.476272 +0.879503,0.000000,0.000000,-0.475893 +0.879710,0.000000,0.000000,-0.475511 +0.879918,0.000000,0.000000,-0.475126 +0.880127,0.000000,0.000000,-0.474738 +0.880338,0.000000,0.000000,-0.474348 +0.880550,0.000000,0.000000,-0.473954 +0.880763,0.000000,0.000000,-0.473557 +0.880978,0.000000,0.000000,-0.473157 +0.881194,0.000000,0.000000,-0.472754 +0.881412,0.000000,0.000000,-0.472348 +0.881631,0.000000,0.000000,-0.471939 +0.881851,0.000000,0.000000,-0.471527 +0.882073,0.000000,0.000000,-0.471112 +0.882296,0.000000,0.000000,-0.470694 +0.882521,0.000000,0.000000,-0.470273 +0.882747,0.000000,0.000000,-0.469849 +0.882974,0.000000,0.000000,-0.469422 +0.883202,0.000000,0.000000,-0.468992 +0.883432,0.000000,0.000000,-0.468559 +0.883663,0.000000,0.000000,-0.468123 +0.883896,0.000000,0.000000,-0.467684 +0.884129,0.000000,0.000000,-0.467242 +0.884365,0.000000,0.000000,-0.466797 +0.884601,0.000000,0.000000,-0.466349 +0.884839,0.000000,0.000000,-0.465898 +0.885078,0.000000,0.000000,-0.465443 +0.885318,0.000000,0.000000,-0.464986 +0.885560,0.000000,0.000000,-0.464526 +0.885802,0.000000,0.000000,-0.464063 +0.886046,0.000000,0.000000,-0.463596 +0.886292,0.000000,0.000000,-0.463127 +0.886538,0.000000,0.000000,-0.462655 +0.886786,0.000000,0.000000,-0.462180 +0.887036,0.000000,0.000000,-0.461701 +0.887286,0.000000,0.000000,-0.461220 +0.887538,0.000000,0.000000,-0.460735 +0.887790,0.000000,0.000000,-0.460248 +0.888044,0.000000,0.000000,-0.459758 +0.888300,0.000000,0.000000,-0.459264 +0.888556,0.000000,0.000000,-0.458768 +0.888814,0.000000,0.000000,-0.458268 +0.889073,0.000000,0.000000,-0.457766 +0.889333,0.000000,0.000000,-0.457260 +0.889594,0.000000,0.000000,-0.456752 +0.889857,0.000000,0.000000,-0.456240 +0.890120,0.000000,0.000000,-0.455725 +0.890385,0.000000,0.000000,-0.455208 +0.890651,0.000000,0.000000,-0.454687 +0.890918,0.000000,0.000000,-0.454163 +0.891187,0.000000,0.000000,-0.453637 +0.891456,0.000000,0.000000,-0.453107 +0.891727,0.000000,0.000000,-0.452574 +0.891998,0.000000,0.000000,-0.452038 +0.892271,0.000000,0.000000,-0.451500 +0.892545,0.000000,0.000000,-0.450958 +0.892820,0.000000,0.000000,-0.450413 +0.893096,0.000000,0.000000,-0.449865 +0.893374,0.000000,0.000000,-0.449314 +0.893652,0.000000,0.000000,-0.448760 +0.893932,0.000000,0.000000,-0.448203 +0.894212,0.000000,0.000000,-0.447643 +0.894494,0.000000,0.000000,-0.447080 +0.894776,0.000000,0.000000,-0.446514 +0.895060,0.000000,0.000000,-0.445945 +0.895345,0.000000,0.000000,-0.445373 +0.895631,0.000000,0.000000,-0.444798 +0.895918,0.000000,0.000000,-0.444220 +0.896206,0.000000,0.000000,-0.443639 +0.896494,0.000000,0.000000,-0.443055 +0.896784,0.000000,0.000000,-0.442468 +0.897075,0.000000,0.000000,-0.441878 +0.897367,0.000000,0.000000,-0.441284 +0.897660,0.000000,0.000000,-0.440688 +0.897954,0.000000,0.000000,-0.440089 +0.898249,0.000000,0.000000,-0.439486 +0.898545,0.000000,0.000000,-0.438881 +0.898842,0.000000,0.000000,-0.438273 +0.899140,0.000000,0.000000,-0.437661 +0.899439,0.000000,0.000000,-0.437047 +0.899738,0.000000,0.000000,-0.436430 +0.900039,0.000000,0.000000,-0.435809 +0.900341,0.000000,0.000000,-0.435186 +0.900643,0.000000,0.000000,-0.434559 +0.900947,0.000000,0.000000,-0.433930 +0.901251,0.000000,0.000000,-0.433297 +0.901556,0.000000,0.000000,-0.432662 +0.901862,0.000000,0.000000,-0.432023 +0.902170,0.000000,0.000000,-0.431382 +0.902477,0.000000,0.000000,-0.430737 +0.902786,0.000000,0.000000,-0.430089 +0.903096,0.000000,0.000000,-0.429439 +0.903406,0.000000,0.000000,-0.428785 +0.903718,0.000000,0.000000,-0.428128 +0.904030,0.000000,0.000000,-0.427469 +0.904343,0.000000,0.000000,-0.426806 +0.904657,0.000000,0.000000,-0.426140 +0.904972,0.000000,0.000000,-0.425472 +0.905287,0.000000,0.000000,-0.424800 +0.905604,0.000000,0.000000,-0.424125 +0.905921,0.000000,0.000000,-0.423447 +0.906239,0.000000,0.000000,-0.422766 +0.906557,0.000000,0.000000,-0.422083 +0.906877,0.000000,0.000000,-0.421396 +0.907197,0.000000,0.000000,-0.420706 +0.907518,0.000000,0.000000,-0.420013 +0.907840,0.000000,0.000000,-0.419317 +0.908162,0.000000,0.000000,-0.418618 +0.908486,0.000000,0.000000,-0.417916 +0.908809,0.000000,0.000000,-0.417211 +0.909134,0.000000,0.000000,-0.416503 +0.909460,0.000000,0.000000,-0.415793 +0.909786,0.000000,0.000000,-0.415079 +0.910112,0.000000,0.000000,-0.414362 +0.910440,0.000000,0.000000,-0.413642 +0.910768,0.000000,0.000000,-0.412919 +0.911097,0.000000,0.000000,-0.412193 +0.911426,0.000000,0.000000,-0.411464 +0.911756,0.000000,0.000000,-0.410732 +0.912087,0.000000,0.000000,-0.409997 +0.912418,0.000000,0.000000,-0.409259 +0.912750,0.000000,0.000000,-0.408518 +0.913083,0.000000,0.000000,-0.407774 +0.913416,0.000000,0.000000,-0.407027 +0.913750,0.000000,0.000000,-0.406276 +0.914085,0.000000,0.000000,-0.405523 +0.914420,0.000000,0.000000,-0.404767 +0.914755,0.000000,0.000000,-0.404008 +0.915091,0.000000,0.000000,-0.403246 +0.915428,0.000000,0.000000,-0.402481 +0.915765,0.000000,0.000000,-0.401713 +0.916103,0.000000,0.000000,-0.400942 +0.916442,0.000000,0.000000,-0.400168 +0.916781,0.000000,0.000000,-0.399391 +0.917120,0.000000,0.000000,-0.398611 +0.917460,0.000000,0.000000,-0.397828 +0.917800,0.000000,0.000000,-0.397042 +0.918141,0.000000,0.000000,-0.396253 +0.918483,0.000000,0.000000,-0.395461 +0.918824,0.000000,0.000000,-0.394666 +0.919167,0.000000,0.000000,-0.393868 +0.919510,0.000000,0.000000,-0.393068 +0.919853,0.000000,0.000000,-0.392264 +0.920197,0.000000,0.000000,-0.391457 +0.920541,0.000000,0.000000,-0.390647 +0.920885,0.000000,0.000000,-0.389834 +0.921230,0.000000,0.000000,-0.389018 +0.921575,0.000000,0.000000,-0.388199 +0.921921,0.000000,0.000000,-0.387378 +0.922267,0.000000,0.000000,-0.386553 +0.922614,0.000000,0.000000,-0.385725 +0.922961,0.000000,0.000000,-0.384894 +0.923308,0.000000,0.000000,-0.384061 +0.923655,0.000000,0.000000,-0.383224 +0.924003,0.000000,0.000000,-0.382384 +0.924352,0.000000,0.000000,-0.381542 +0.924700,0.000000,0.000000,-0.380696 +0.925049,0.000000,0.000000,-0.379848 +0.925398,0.000000,0.000000,-0.378996 +0.925748,0.000000,0.000000,-0.378142 +0.926097,0.000000,0.000000,-0.377284 +0.926448,0.000000,0.000000,-0.376424 +0.926798,0.000000,0.000000,-0.375561 +0.927148,0.000000,0.000000,-0.374694 +0.927499,0.000000,0.000000,-0.373825 +0.927850,0.000000,0.000000,-0.372953 +0.928202,0.000000,0.000000,-0.372078 +0.928553,0.000000,0.000000,-0.371200 +0.928905,0.000000,0.000000,-0.370319 +0.929257,0.000000,0.000000,-0.369435 +0.929609,0.000000,0.000000,-0.368548 +0.929961,0.000000,0.000000,-0.367658 +0.930314,0.000000,0.000000,-0.366765 +0.930666,0.000000,0.000000,-0.365869 +0.931019,0.000000,0.000000,-0.364970 +0.931372,0.000000,0.000000,-0.364069 +0.931725,0.000000,0.000000,-0.363164 +0.932078,0.000000,0.000000,-0.362257 +0.932432,0.000000,0.000000,-0.361346 +0.932785,0.000000,0.000000,-0.360433 +0.933139,0.000000,0.000000,-0.359517 +0.933492,0.000000,0.000000,-0.358597 +0.933846,0.000000,0.000000,-0.357675 +0.934200,0.000000,0.000000,-0.356750 +0.934554,0.000000,0.000000,-0.355822 +0.934908,0.000000,0.000000,-0.354891 +0.935261,0.000000,0.000000,-0.353958 +0.935615,0.000000,0.000000,-0.353021 +0.935969,0.000000,0.000000,-0.352081 +0.936323,0.000000,0.000000,-0.351139 +0.936677,0.000000,0.000000,-0.350193 +0.937032,0.000000,0.000000,-0.349245 +0.937385,0.000000,0.000000,-0.348294 +0.937739,0.000000,0.000000,-0.347339 +0.938093,0.000000,0.000000,-0.346382 +0.938447,0.000000,0.000000,-0.345422 +0.938801,0.000000,0.000000,-0.344460 +0.939155,0.000000,0.000000,-0.343494 +0.939509,0.000000,0.000000,-0.342525 +0.939862,0.000000,0.000000,-0.341554 +0.940216,0.000000,0.000000,-0.340579 +0.940569,0.000000,0.000000,-0.339602 +0.940922,0.000000,0.000000,-0.338622 +0.941276,0.000000,0.000000,-0.337639 +0.941629,0.000000,0.000000,-0.336653 +0.941982,0.000000,0.000000,-0.335664 +0.942334,0.000000,0.000000,-0.334673 +0.942687,0.000000,0.000000,-0.333678 +0.943039,0.000000,0.000000,-0.332681 +0.943392,0.000000,0.000000,-0.331681 +0.943744,0.000000,0.000000,-0.330678 +0.944096,0.000000,0.000000,-0.329672 +0.944447,0.000000,0.000000,-0.328663 +0.944799,0.000000,0.000000,-0.327651 +0.945150,0.000000,0.000000,-0.326637 +0.945501,0.000000,0.000000,-0.325620 +0.945852,0.000000,0.000000,-0.324599 +0.946202,0.000000,0.000000,-0.323577 +0.946552,0.000000,0.000000,-0.322551 +0.946902,0.000000,0.000000,-0.321522 +0.947252,0.000000,0.000000,-0.320491 +0.947601,0.000000,0.000000,-0.319456 +0.947950,0.000000,0.000000,-0.318419 +0.948299,0.000000,0.000000,-0.317379 +0.948647,0.000000,0.000000,-0.316337 +0.948995,0.000000,0.000000,-0.315291 +0.949343,0.000000,0.000000,-0.314243 +0.949690,0.000000,0.000000,-0.313191 +0.950037,0.000000,0.000000,-0.312137 +0.950384,0.000000,0.000000,-0.311081 +0.950730,0.000000,0.000000,-0.310021 +0.951075,0.000000,0.000000,-0.308959 +0.951421,0.000000,0.000000,-0.307894 +0.951766,0.000000,0.000000,-0.306826 +0.952110,0.000000,0.000000,-0.305755 +0.952454,0.000000,0.000000,-0.304681 +0.952798,0.000000,0.000000,-0.303605 +0.953141,0.000000,0.000000,-0.302526 +0.953484,0.000000,0.000000,-0.301444 +0.953826,0.000000,0.000000,-0.300360 +0.954168,0.000000,0.000000,-0.299272 +0.954509,0.000000,0.000000,-0.298182 +0.954850,0.000000,0.000000,-0.297089 +0.955190,0.000000,0.000000,-0.295994 +0.955530,0.000000,0.000000,-0.294895 +0.955869,0.000000,0.000000,-0.293794 +0.956207,0.000000,0.000000,-0.292691 +0.956545,0.000000,0.000000,-0.291584 +0.956883,0.000000,0.000000,-0.290475 +0.957220,0.000000,0.000000,-0.289363 +0.957556,0.000000,0.000000,-0.288248 +0.957891,0.000000,0.000000,-0.287130 +0.958227,0.000000,0.000000,-0.286010 +0.958561,0.000000,0.000000,-0.284887 +0.958895,0.000000,0.000000,-0.283762 +0.959228,0.000000,0.000000,-0.282634 +0.959560,0.000000,0.000000,-0.281503 +0.959892,0.000000,0.000000,-0.280369 +0.960224,0.000000,0.000000,-0.279232 +0.960554,0.000000,0.000000,-0.278093 +0.960884,0.000000,0.000000,-0.276952 +0.961213,0.000000,0.000000,-0.275807 +0.961541,0.000000,0.000000,-0.274660 +0.961869,0.000000,0.000000,-0.273510 +0.962196,0.000000,0.000000,-0.272358 +0.962522,0.000000,0.000000,-0.271203 +0.962848,0.000000,0.000000,-0.270045 +0.963172,0.000000,0.000000,-0.268885 +0.963496,0.000000,0.000000,-0.267721 +0.963819,0.000000,0.000000,-0.266556 +0.964142,0.000000,0.000000,-0.265387 +0.964463,0.000000,0.000000,-0.264216 +0.964784,0.000000,0.000000,-0.263043 +0.965104,0.000000,0.000000,-0.261867 +0.965423,0.000000,0.000000,-0.260688 +0.965741,0.000000,0.000000,-0.259506 +0.966059,0.000000,0.000000,-0.258322 +0.966375,0.000000,0.000000,-0.257136 +0.966691,0.000000,0.000000,-0.255946 +0.967006,0.000000,0.000000,-0.254754 +0.967320,0.000000,0.000000,-0.253560 +0.967633,0.000000,0.000000,-0.252363 +0.967945,0.000000,0.000000,-0.251163 +0.968256,0.000000,0.000000,-0.249961 +0.968566,0.000000,0.000000,-0.248756 +0.968875,0.000000,0.000000,-0.247549 +0.969184,0.000000,0.000000,-0.246339 +0.969491,0.000000,0.000000,-0.245127 +0.969797,0.000000,0.000000,-0.243912 +0.970103,0.000000,0.000000,-0.242694 +0.970407,0.000000,0.000000,-0.241474 +0.970711,0.000000,0.000000,-0.240251 +0.971013,0.000000,0.000000,-0.239026 +0.971315,0.000000,0.000000,-0.237798 +0.971615,0.000000,0.000000,-0.236568 +0.971914,0.000000,0.000000,-0.235335 +0.972212,0.000000,0.000000,-0.234100 +0.972510,0.000000,0.000000,-0.232862 +0.972806,0.000000,0.000000,-0.231622 +0.973101,0.000000,0.000000,-0.230380 +0.973395,0.000000,0.000000,-0.229134 +0.973688,0.000000,0.000000,-0.227887 +0.973979,0.000000,0.000000,-0.226636 +0.974270,0.000000,0.000000,-0.225384 +0.974560,0.000000,0.000000,-0.224129 +0.974848,0.000000,0.000000,-0.222871 +0.975135,0.000000,0.000000,-0.221611 +0.975421,0.000000,0.000000,-0.220349 +0.975706,0.000000,0.000000,-0.219084 +0.975990,0.000000,0.000000,-0.217816 +0.976272,0.000000,0.000000,-0.216547 +0.976554,0.000000,0.000000,-0.215275 +0.976834,0.000000,0.000000,-0.214000 +0.977113,0.000000,0.000000,-0.212723 +0.977390,0.000000,0.000000,-0.211444 +0.977667,0.000000,0.000000,-0.210162 +0.977942,0.000000,0.000000,-0.208878 +0.978216,0.000000,0.000000,-0.207591 +0.978488,0.000000,0.000000,-0.206302 +0.978760,0.000000,0.000000,-0.205011 +0.979030,0.000000,0.000000,-0.203717 +0.979299,0.000000,0.000000,-0.202421 +0.979566,0.000000,0.000000,-0.201122 +0.979832,0.000000,0.000000,-0.199822 +0.980097,0.000000,0.000000,-0.198518 +0.980361,0.000000,0.000000,-0.197213 +0.980623,0.000000,0.000000,-0.195905 +0.980884,0.000000,0.000000,-0.194595 +0.981143,0.000000,0.000000,-0.193283 +0.981401,0.000000,0.000000,-0.191968 +0.981658,0.000000,0.000000,-0.190651 +0.981913,0.000000,0.000000,-0.189332 +0.982167,0.000000,0.000000,-0.188010 +0.982420,0.000000,0.000000,-0.186686 +0.982671,0.000000,0.000000,-0.185360 +0.982920,0.000000,0.000000,-0.184031 +0.983169,0.000000,0.000000,-0.182701 +0.983415,0.000000,0.000000,-0.181368 +0.983661,0.000000,0.000000,-0.180032 +0.983905,0.000000,0.000000,-0.178695 +0.984147,0.000000,0.000000,-0.177355 +0.984388,0.000000,0.000000,-0.176013 +0.984627,0.000000,0.000000,-0.174669 +0.984865,0.000000,0.000000,-0.173323 +0.985101,0.000000,0.000000,-0.171974 +0.985336,0.000000,0.000000,-0.170623 +0.985570,0.000000,0.000000,-0.169270 +0.985801,0.000000,0.000000,-0.167915 +0.986032,0.000000,0.000000,-0.166558 +0.986260,0.000000,0.000000,-0.165198 +0.986487,0.000000,0.000000,-0.163837 +0.986713,0.000000,0.000000,-0.162473 +0.986937,0.000000,0.000000,-0.161107 +0.987159,0.000000,0.000000,-0.159739 +0.987380,0.000000,0.000000,-0.158368 +0.987599,0.000000,0.000000,-0.156996 +0.987817,0.000000,0.000000,-0.155621 +0.988033,0.000000,0.000000,-0.154245 +0.988247,0.000000,0.000000,-0.152866 +0.988460,0.000000,0.000000,-0.151485 +0.988670,0.000000,0.000000,-0.150102 +0.988880,0.000000,0.000000,-0.148717 +0.989087,0.000000,0.000000,-0.147330 +0.989293,0.000000,0.000000,-0.145941 +0.989498,0.000000,0.000000,-0.144550 +0.989700,0.000000,0.000000,-0.143157 +0.989901,0.000000,0.000000,-0.141761 +0.990100,0.000000,0.000000,-0.140364 +0.990297,0.000000,0.000000,-0.138965 +0.990493,0.000000,0.000000,-0.137563 +0.990687,0.000000,0.000000,-0.136160 +0.990879,0.000000,0.000000,-0.134754 +0.991069,0.000000,0.000000,-0.133347 +0.991258,0.000000,0.000000,-0.131938 +0.991445,0.000000,0.000000,-0.130526 +0.991630,0.000000,0.000000,-0.129113 +0.991813,0.000000,0.000000,-0.127698 +0.991995,0.000000,0.000000,-0.126280 +0.992174,0.000000,0.000000,-0.124861 +0.992352,0.000000,0.000000,-0.123440 +0.992528,0.000000,0.000000,-0.122017 +0.992702,0.000000,0.000000,-0.120592 +0.992874,0.000000,0.000000,-0.119165 +0.993045,0.000000,0.000000,-0.117736 +0.993214,0.000000,0.000000,-0.116305 +0.993380,0.000000,0.000000,-0.114873 +0.993545,0.000000,0.000000,-0.113438 +0.993708,0.000000,0.000000,-0.112002 +0.993869,0.000000,0.000000,-0.110563 +0.994028,0.000000,0.000000,-0.109123 +0.994185,0.000000,0.000000,-0.107681 +0.994341,0.000000,0.000000,-0.106238 +0.994494,0.000000,0.000000,-0.104792 +0.994646,0.000000,0.000000,-0.103345 +0.994795,0.000000,0.000000,-0.101895 +0.994943,0.000000,0.000000,-0.100444 +0.995088,0.000000,0.000000,-0.098991 +0.995232,0.000000,0.000000,-0.097537 +0.995374,0.000000,0.000000,-0.096080 +0.995513,0.000000,0.000000,-0.094622 +0.995651,0.000000,0.000000,-0.093162 +0.995787,0.000000,0.000000,-0.091700 +0.995920,0.000000,0.000000,-0.090237 +0.996052,0.000000,0.000000,-0.088772 +0.996182,0.000000,0.000000,-0.087305 +0.996309,0.000000,0.000000,-0.085836 +0.996435,0.000000,0.000000,-0.084366 +0.996558,0.000000,0.000000,-0.082894 +0.996680,0.000000,0.000000,-0.081420 +0.996799,0.000000,0.000000,-0.079945 +0.996917,0.000000,0.000000,-0.078468 +0.997032,0.000000,0.000000,-0.076989 +0.997145,0.000000,0.000000,-0.075509 +0.997256,0.000000,0.000000,-0.074027 +0.997365,0.000000,0.000000,-0.072543 +0.997472,0.000000,0.000000,-0.071058 +0.997577,0.000000,0.000000,-0.069571 +0.997680,0.000000,0.000000,-0.068082 +0.997780,0.000000,0.000000,-0.066592 +0.997879,0.000000,0.000000,-0.065101 +0.997975,0.000000,0.000000,-0.063607 +0.998069,0.000000,0.000000,-0.062113 +0.998161,0.000000,0.000000,-0.060616 +0.998251,0.000000,0.000000,-0.059118 +0.998339,0.000000,0.000000,-0.057619 +0.998424,0.000000,0.000000,-0.056118 +0.998507,0.000000,0.000000,-0.054615 +0.998589,0.000000,0.000000,-0.053111 +0.998668,0.000000,0.000000,-0.051606 +0.998744,0.000000,0.000000,-0.050099 +0.998819,0.000000,0.000000,-0.048590 +0.998891,0.000000,0.000000,-0.047080 +0.998961,0.000000,0.000000,-0.045569 +0.999029,0.000000,0.000000,-0.044056 +0.999095,0.000000,0.000000,-0.042542 +0.999158,0.000000,0.000000,-0.041026 +0.999219,0.000000,0.000000,-0.039509 +0.999278,0.000000,0.000000,-0.037990 +0.999335,0.000000,0.000000,-0.036470 +0.999389,0.000000,0.000000,-0.034949 +0.999441,0.000000,0.000000,-0.033426 +0.999491,0.000000,0.000000,-0.031902 +0.999539,0.000000,0.000000,-0.030377 +0.999584,0.000000,0.000000,-0.028850 +0.999627,0.000000,0.000000,-0.027322 +0.999667,0.000000,0.000000,-0.025792 +0.999706,0.000000,0.000000,-0.024261 +0.999742,0.000000,0.000000,-0.022729 +0.999775,0.000000,0.000000,-0.021196 +0.999807,0.000000,0.000000,-0.019661 +0.999836,0.000000,0.000000,-0.018125 +0.999862,0.000000,0.000000,-0.016588 +0.999887,0.000000,0.000000,-0.015049 +0.999909,0.000000,0.000000,-0.013509 +0.999928,0.000000,0.000000,-0.011968 +0.999946,0.000000,0.000000,-0.010426 +0.999961,0.000000,0.000000,-0.008882 +0.999973,0.000000,0.000000,-0.007338 +0.999983,0.000000,0.000000,-0.005792 +0.999991,0.000000,0.000000,-0.004245 +0.999996,0.000000,0.000000,-0.002696 +0.999999,0.000000,0.000000,-0.001147 +1.000000,0.000000,0.000000,0.000404 +0.999998,0.000000,0.000000,0.001955 +0.999994,0.000000,0.000000,0.003508 +0.999987,0.000000,0.000000,0.005062 +0.999978,0.000000,0.000000,0.006617 +0.999967,0.000000,0.000000,0.008173 +0.999953,0.000000,0.000000,0.009731 +0.999936,0.000000,0.000000,0.011289 +0.999917,0.000000,0.000000,0.012849 +0.999896,0.000000,0.000000,0.014409 +0.999872,0.000000,0.000000,0.015971 +0.999846,0.000000,0.000000,0.017533 +0.999818,0.000000,0.000000,0.019097 +0.999787,0.000000,0.000000,0.020661 +0.999753,0.000000,0.000000,0.022227 +0.999717,0.000000,0.000000,0.023794 +0.999678,0.000000,0.000000,0.025361 +0.999637,0.000000,0.000000,0.026930 +0.999594,0.000000,0.000000,0.028500 +0.999548,0.000000,0.000000,0.030070 +0.999499,0.000000,0.000000,0.031642 +0.999448,0.000000,0.000000,0.033214 +0.999395,0.000000,0.000000,0.034787 +0.999339,0.000000,0.000000,0.036362 +0.999280,0.000000,0.000000,0.037937 +0.999219,0.000000,0.000000,0.039513 +0.999155,0.000000,0.000000,0.041090 +0.999089,0.000000,0.000000,0.042667 +0.999021,0.000000,0.000000,0.044246 +0.998949,0.000000,0.000000,0.045825 +0.998876,0.000000,0.000000,0.047406 +0.998799,0.000000,0.000000,0.048987 +0.998721,0.000000,0.000000,0.050569 +0.998639,0.000000,0.000000,0.052151 +0.998555,0.000000,0.000000,0.053735 +0.998469,0.000000,0.000000,0.055319 +0.998380,0.000000,0.000000,0.056904 +0.998288,0.000000,0.000000,0.058490 +0.998194,0.000000,0.000000,0.060077 +0.998097,0.000000,0.000000,0.061664 +0.997998,0.000000,0.000000,0.063252 +0.997896,0.000000,0.000000,0.064840 +0.997791,0.000000,0.000000,0.066430 +0.997684,0.000000,0.000000,0.068020 +0.997574,0.000000,0.000000,0.069611 +0.997462,0.000000,0.000000,0.071202 +0.997347,0.000000,0.000000,0.072794 +0.997229,0.000000,0.000000,0.074387 +0.997109,0.000000,0.000000,0.075980 +0.996987,0.000000,0.000000,0.077574 +0.996861,0.000000,0.000000,0.079169 +0.996733,0.000000,0.000000,0.080764 +0.996603,0.000000,0.000000,0.082360 +0.996469,0.000000,0.000000,0.083956 +0.996334,0.000000,0.000000,0.085553 +0.996195,0.000000,0.000000,0.087150 +0.996054,0.000000,0.000000,0.088748 +0.995910,0.000000,0.000000,0.090347 +0.995764,0.000000,0.000000,0.091946 +0.995615,0.000000,0.000000,0.093545 +0.995463,0.000000,0.000000,0.095145 +0.995309,0.000000,0.000000,0.096746 +0.995152,0.000000,0.000000,0.098347 +0.994993,0.000000,0.000000,0.099948 +0.994830,0.000000,0.000000,0.101550 +0.994666,0.000000,0.000000,0.103152 +0.994498,0.000000,0.000000,0.104755 +0.994328,0.000000,0.000000,0.106358 +0.994155,0.000000,0.000000,0.107962 +0.993980,0.000000,0.000000,0.109566 +0.993801,0.000000,0.000000,0.111170 +0.993621,0.000000,0.000000,0.112775 +0.993437,0.000000,0.000000,0.114380 +0.993251,0.000000,0.000000,0.115985 +0.993062,0.000000,0.000000,0.117591 +0.992871,0.000000,0.000000,0.119197 +0.992677,0.000000,0.000000,0.120803 +0.992480,0.000000,0.000000,0.122410 +0.992280,0.000000,0.000000,0.124016 +0.992078,0.000000,0.000000,0.125624 +0.991873,0.000000,0.000000,0.127231 +0.991666,0.000000,0.000000,0.128839 +0.991455,0.000000,0.000000,0.130447 +0.991242,0.000000,0.000000,0.132055 +0.991027,0.000000,0.000000,0.133663 +0.990809,0.000000,0.000000,0.135272 +0.990588,0.000000,0.000000,0.136881 +0.990364,0.000000,0.000000,0.138489 +0.990138,0.000000,0.000000,0.140099 +0.989909,0.000000,0.000000,0.141708 +0.989677,0.000000,0.000000,0.143317 +0.989442,0.000000,0.000000,0.144927 +0.989205,0.000000,0.000000,0.146536 +0.988965,0.000000,0.000000,0.148146 +0.988723,0.000000,0.000000,0.149756 +0.988478,0.000000,0.000000,0.151366 +0.988230,0.000000,0.000000,0.152976 +0.987979,0.000000,0.000000,0.154586 +0.987726,0.000000,0.000000,0.156196 +0.987470,0.000000,0.000000,0.157807 +0.987211,0.000000,0.000000,0.159417 +0.986950,0.000000,0.000000,0.161027 +0.986686,0.000000,0.000000,0.162637 +0.986419,0.000000,0.000000,0.164247 +0.986150,0.000000,0.000000,0.165858 +0.985878,0.000000,0.000000,0.167468 +0.985603,0.000000,0.000000,0.169078 +0.985325,0.000000,0.000000,0.170688 +0.985045,0.000000,0.000000,0.172298 +0.984762,0.000000,0.000000,0.173908 +0.984476,0.000000,0.000000,0.175518 +0.984188,0.000000,0.000000,0.177128 +0.983897,0.000000,0.000000,0.178737 +0.983603,0.000000,0.000000,0.180347 +0.983307,0.000000,0.000000,0.181956 +0.983007,0.000000,0.000000,0.183565 +0.982706,0.000000,0.000000,0.185174 +0.982401,0.000000,0.000000,0.186783 +0.982094,0.000000,0.000000,0.188392 +0.981784,0.000000,0.000000,0.190001 +0.981471,0.000000,0.000000,0.191609 +0.981156,0.000000,0.000000,0.193217 +0.980838,0.000000,0.000000,0.194825 +0.980517,0.000000,0.000000,0.196433 +0.980194,0.000000,0.000000,0.198040 +0.979868,0.000000,0.000000,0.199647 +0.979539,0.000000,0.000000,0.201254 +0.979208,0.000000,0.000000,0.202860 +0.978874,0.000000,0.000000,0.204467 +0.978537,0.000000,0.000000,0.206073 +0.978197,0.000000,0.000000,0.207678 +0.977855,0.000000,0.000000,0.209284 +0.977510,0.000000,0.000000,0.210889 +0.977163,0.000000,0.000000,0.212493 +0.976812,0.000000,0.000000,0.214097 +0.976459,0.000000,0.000000,0.215701 +0.976104,0.000000,0.000000,0.217305 +0.975746,0.000000,0.000000,0.218908 +0.975385,0.000000,0.000000,0.220510 +0.975021,0.000000,0.000000,0.222112 +0.974655,0.000000,0.000000,0.223714 +0.974286,0.000000,0.000000,0.225316 +0.973914,0.000000,0.000000,0.226916 +0.973540,0.000000,0.000000,0.228517 +0.973163,0.000000,0.000000,0.230117 +0.972783,0.000000,0.000000,0.231716 +0.972401,0.000000,0.000000,0.233315 +0.972016,0.000000,0.000000,0.234913 +0.971629,0.000000,0.000000,0.236511 +0.971239,0.000000,0.000000,0.238109 +0.970846,0.000000,0.000000,0.239705 +0.970450,0.000000,0.000000,0.241301 +0.970052,0.000000,0.000000,0.242897 +0.969651,0.000000,0.000000,0.244492 +0.969248,0.000000,0.000000,0.246087 +0.968842,0.000000,0.000000,0.247680 +0.968433,0.000000,0.000000,0.249274 +0.968022,0.000000,0.000000,0.250866 +0.967608,0.000000,0.000000,0.252458 +0.967191,0.000000,0.000000,0.254049 +0.966772,0.000000,0.000000,0.255640 +0.966350,0.000000,0.000000,0.257230 diff --git a/scripts/testv/stvISM1.csv b/scripts/testv/stvISM1.csv index e69de29bb2..8d729654c4 100644 --- a/scripts/testv/stvISM1.csv +++ b/scripts/testv/stvISM1.csv @@ -0,0 +1,1500 @@ +0.00,0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +9.60,0.00,1.00,0.00,1.00 +14.40,0.00,1.00,0.00,1.00 +19.20,0.00,1.00,0.00,1.00 +24.00,0.00,1.00,0.00,1.00 +28.80,0.00,1.00,0.00,1.00 +33.60,0.00,1.00,0.00,1.00 +38.40,0.00,1.00,0.00,1.00 +43.20,0.00,1.00,0.00,1.00 +48.00,0.00,1.00,0.00,1.00 +52.80,0.00,1.00,0.00,1.00 +57.60,0.00,1.00,0.00,1.00 +62.40,0.00,1.00,0.00,1.00 +67.20,0.00,1.00,0.00,1.00 +72.00,0.00,1.00,0.00,1.00 +76.80,0.00,1.00,0.00,1.00 +81.60,0.00,1.00,0.00,1.00 +86.40,0.00,1.00,0.00,1.00 +91.20,0.00,1.00,0.00,1.00 +96.00,0.00,1.00,0.00,1.00 +100.80,0.00,1.00,0.00,1.00 +105.60,0.00,1.00,0.00,1.00 +110.40,0.00,1.00,0.00,1.00 +115.20,0.00,1.00,0.00,1.00 +120.00,0.00,1.00,0.00,1.00 +124.80,0.00,1.00,0.00,1.00 +129.60,0.00,1.00,0.00,1.00 +134.40,0.00,1.00,0.00,1.00 +139.20,0.00,1.00,0.00,1.00 +144.00,0.00,1.00,0.00,1.00 +148.80,0.00,1.00,0.00,1.00 +153.60,0.00,1.00,0.00,1.00 +158.40,0.00,1.00,0.00,1.00 +163.20,0.00,1.00,0.00,1.00 +168.00,0.00,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +-163.20,0.00,1.00,0.00,1.00 +-158.40,0.00,1.00,0.00,1.00 +-153.60,0.00,1.00,0.00,1.00 +-148.80,0.00,1.00,0.00,1.00 +-144.00,0.00,1.00,0.00,1.00 +-139.20,0.00,1.00,0.00,1.00 +-134.40,0.00,1.00,0.00,1.00 +-129.60,0.00,1.00,0.00,1.00 +-124.80,0.00,1.00,0.00,1.00 +-120.00,0.00,1.00,0.00,1.00 +-115.20,0.00,1.00,0.00,1.00 +-110.40,0.00,1.00,0.00,1.00 +-105.60,0.00,1.00,0.00,1.00 +-100.80,0.00,1.00,0.00,1.00 +-96.00,0.00,1.00,0.00,1.00 +-91.20,0.00,1.00,0.00,1.00 +-86.40,0.00,1.00,0.00,1.00 +-81.60,0.00,1.00,0.00,1.00 +-76.80,0.00,1.00,0.00,1.00 +-72.00,0.00,1.00,0.00,1.00 +-67.20,0.00,1.00,0.00,1.00 +-62.40,0.00,1.00,0.00,1.00 +-57.60,0.00,1.00,0.00,1.00 +-52.80,0.00,1.00,0.00,1.00 +-48.00,0.00,1.00,0.00,1.00 +-43.20,0.00,1.00,0.00,1.00 +-38.40,0.00,1.00,0.00,1.00 +-33.60,0.00,1.00,0.00,1.00 +-28.80,0.00,1.00,0.00,1.00 +-24.00,0.00,1.00,0.00,1.00 +-19.20,0.00,1.00,0.00,1.00 +-14.40,0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +14.40,-0.00,1.00,0.00,1.00 +19.20,-0.00,1.00,0.00,1.00 +24.00,-0.00,1.00,0.00,1.00 +28.80,-0.00,1.00,0.00,1.00 +33.60,-4.80,1.00,0.00,1.00 +38.40,-4.80,1.00,0.00,1.00 +43.20,-4.80,1.00,0.00,1.00 +48.00,-4.80,1.00,0.00,1.00 +52.80,-4.80,1.00,0.00,1.00 +57.60,-4.80,1.00,0.00,1.00 +62.40,-4.80,1.00,0.00,1.00 +67.20,-4.80,1.00,0.00,1.00 +72.00,-4.80,1.00,0.00,1.00 +76.80,-4.80,1.00,0.00,1.00 +81.60,-4.80,1.00,0.00,1.00 +86.40,-4.80,1.00,0.00,1.00 +91.20,-4.80,1.00,0.00,1.00 +96.00,-4.80,1.00,0.00,1.00 +100.80,-4.80,1.00,0.00,1.00 +105.60,-4.80,1.00,0.00,1.00 +110.40,-4.80,1.00,0.00,1.00 +115.20,-4.80,1.00,0.00,1.00 +120.00,-4.80,1.00,0.00,1.00 +124.80,-4.80,1.00,0.00,1.00 +129.60,-4.80,1.00,0.00,1.00 +134.40,-4.80,1.00,0.00,1.00 +139.20,-4.80,1.00,0.00,1.00 +144.00,-4.80,1.00,0.00,1.00 +148.80,-4.80,1.00,0.00,1.00 +153.60,-0.00,1.00,0.00,1.00 +158.40,-0.00,1.00,0.00,1.00 +163.20,-0.00,1.00,0.00,1.00 +168.00,-0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +-163.20,0.00,1.00,0.00,1.00 +-158.40,0.00,1.00,0.00,1.00 +-153.60,0.00,1.00,0.00,1.00 +-148.80,4.80,1.00,0.00,1.00 +-144.00,4.80,1.00,0.00,1.00 +-139.20,4.80,1.00,0.00,1.00 +-134.40,4.80,1.00,0.00,1.00 +-129.60,4.80,1.00,0.00,1.00 +-124.80,4.80,1.00,0.00,1.00 +-120.00,4.80,1.00,0.00,1.00 +-115.20,4.80,1.00,0.00,1.00 +-110.40,4.80,1.00,0.00,1.00 +-105.60,4.80,1.00,0.00,1.00 +-100.80,4.80,1.00,0.00,1.00 +-96.00,4.80,1.00,0.00,1.00 +-91.20,4.80,1.00,0.00,1.00 +-86.40,4.80,1.00,0.00,1.00 +-81.60,4.80,1.00,0.00,1.00 +-76.80,4.80,1.00,0.00,1.00 +-72.00,4.80,1.00,0.00,1.00 +-67.20,4.80,1.00,0.00,1.00 +-62.40,4.80,1.00,0.00,1.00 +-57.60,4.80,1.00,0.00,1.00 +-52.80,4.80,1.00,0.00,1.00 +-48.00,4.80,1.00,0.00,1.00 +-43.20,4.80,1.00,0.00,1.00 +-38.40,4.80,1.00,0.00,1.00 +-33.60,4.80,1.00,0.00,1.00 +-28.80,0.00,1.00,0.00,1.00 +-24.00,0.00,1.00,0.00,1.00 +-19.20,0.00,1.00,0.00,1.00 +-14.40,0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +14.40,-0.00,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +24.00,-4.80,1.00,0.00,1.00 +28.80,-4.80,1.00,0.00,1.00 +33.60,-4.80,1.00,0.00,1.00 +38.40,-4.80,1.00,0.00,1.00 +43.20,-4.80,1.00,0.00,1.00 +48.00,-4.80,1.00,0.00,1.00 +52.80,-9.60,1.00,0.00,1.00 +57.60,-9.60,1.00,0.00,1.00 +62.40,-9.60,1.00,0.00,1.00 +67.20,-9.60,1.00,0.00,1.00 +72.00,-9.60,1.00,0.00,1.00 +76.80,-9.60,1.00,0.00,1.00 +81.60,-9.60,1.00,0.00,1.00 +86.40,-9.60,1.00,0.00,1.00 +91.20,-9.60,1.00,0.00,1.00 +96.00,-9.60,1.00,0.00,1.00 +100.80,-9.60,1.00,0.00,1.00 +105.60,-9.60,1.00,0.00,1.00 +110.40,-9.60,1.00,0.00,1.00 +115.20,-9.60,1.00,0.00,1.00 +120.00,-9.60,1.00,0.00,1.00 +124.80,-9.60,1.00,0.00,1.00 +129.60,-9.60,1.00,0.00,1.00 +134.40,-4.80,1.00,0.00,1.00 +139.20,-4.80,1.00,0.00,1.00 +144.00,-4.80,1.00,0.00,1.00 +148.80,-4.80,1.00,0.00,1.00 +153.60,-4.80,1.00,0.00,1.00 +158.40,-4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +168.00,-0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +-163.20,4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +-153.60,4.80,1.00,0.00,1.00 +-148.80,4.80,1.00,0.00,1.00 +-144.00,4.80,1.00,0.00,1.00 +-139.20,4.80,1.00,0.00,1.00 +-134.40,4.80,1.00,0.00,1.00 +-129.60,9.60,1.00,0.00,1.00 +-124.80,9.60,1.00,0.00,1.00 +-120.00,9.60,1.00,0.00,1.00 +-115.20,9.60,1.00,0.00,1.00 +-110.40,9.60,1.00,0.00,1.00 +-105.60,9.60,1.00,0.00,1.00 +-100.80,9.60,1.00,0.00,1.00 +-96.00,9.60,1.00,0.00,1.00 +-91.20,9.60,1.00,0.00,1.00 +-86.40,9.60,1.00,0.00,1.00 +-81.60,9.60,1.00,0.00,1.00 +-76.80,9.60,1.00,0.00,1.00 +-72.00,9.60,1.00,0.00,1.00 +-67.20,9.60,1.00,0.00,1.00 +-62.40,9.60,1.00,0.00,1.00 +-57.60,9.60,1.00,0.00,1.00 +-52.80,9.60,1.00,0.00,1.00 +-48.00,4.80,1.00,0.00,1.00 +-43.20,4.80,1.00,0.00,1.00 +-38.40,4.80,1.00,0.00,1.00 +-33.60,4.80,1.00,0.00,1.00 +-28.80,4.80,1.00,0.00,1.00 +-24.00,4.80,1.00,0.00,1.00 +-19.20,4.80,1.00,0.00,1.00 +-14.40,0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +24.00,-4.80,1.00,0.00,1.00 +28.80,-4.80,1.00,0.00,1.00 +33.60,-9.60,1.00,0.00,1.00 +38.40,-9.60,1.00,0.00,1.00 +43.20,-9.60,1.00,0.00,1.00 +48.00,-9.60,1.00,0.00,1.00 +52.80,-9.60,1.00,0.00,1.00 +57.60,-14.40,1.00,0.00,1.00 +62.40,-14.40,1.00,0.00,1.00 +67.20,-14.40,1.00,0.00,1.00 +72.00,-14.40,1.00,0.00,1.00 +76.80,-14.40,1.00,0.00,1.00 +81.60,-14.40,1.00,0.00,1.00 +86.40,-14.40,1.00,0.00,1.00 +91.20,-14.40,1.00,0.00,1.00 +96.00,-14.40,1.00,0.00,1.00 +100.80,-14.40,1.00,0.00,1.00 +105.60,-14.40,1.00,0.00,1.00 +110.40,-14.40,1.00,0.00,1.00 +115.20,-14.40,1.00,0.00,1.00 +120.00,-14.40,1.00,0.00,1.00 +124.80,-9.60,1.00,0.00,1.00 +129.60,-9.60,1.00,0.00,1.00 +134.40,-9.60,1.00,0.00,1.00 +139.20,-9.60,1.00,0.00,1.00 +144.00,-9.60,1.00,0.00,1.00 +148.80,-9.60,1.00,0.00,1.00 +153.60,-4.80,1.00,0.00,1.00 +158.40,-4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-163.20,4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +-153.60,4.80,1.00,0.00,1.00 +-148.80,9.60,1.00,0.00,1.00 +-144.00,9.60,1.00,0.00,1.00 +-139.20,9.60,1.00,0.00,1.00 +-134.40,9.60,1.00,0.00,1.00 +-129.60,9.60,1.00,0.00,1.00 +-124.80,9.60,1.00,0.00,1.00 +-120.00,14.40,1.00,0.00,1.00 +-115.20,14.40,1.00,0.00,1.00 +-110.40,14.40,1.00,0.00,1.00 +-105.60,14.40,1.00,0.00,1.00 +-100.80,14.40,1.00,0.00,1.00 +-96.00,14.40,1.00,0.00,1.00 +-91.20,14.40,1.00,0.00,1.00 +-86.40,14.40,1.00,0.00,1.00 +-81.60,14.40,1.00,0.00,1.00 +-76.80,14.40,1.00,0.00,1.00 +-72.00,14.40,1.00,0.00,1.00 +-67.20,14.40,1.00,0.00,1.00 +-62.40,14.40,1.00,0.00,1.00 +-57.60,14.40,1.00,0.00,1.00 +-52.80,9.60,1.00,0.00,1.00 +-48.00,9.60,1.00,0.00,1.00 +-43.20,9.60,1.00,0.00,1.00 +-38.40,9.60,1.00,0.00,1.00 +-33.60,9.60,1.00,0.00,1.00 +-28.80,4.80,1.00,0.00,1.00 +-24.00,4.80,1.00,0.00,1.00 +-19.20,4.80,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +24.00,-9.60,1.00,0.00,1.00 +28.80,-9.60,1.00,0.00,1.00 +33.60,-9.60,1.00,0.00,1.00 +38.40,-9.60,1.00,0.00,1.00 +43.20,-14.40,1.00,0.00,1.00 +48.00,-14.40,1.00,0.00,1.00 +52.80,-14.40,1.00,0.00,1.00 +57.60,-14.40,1.00,0.00,1.00 +62.40,-19.20,1.00,0.00,1.00 +67.20,-19.20,1.00,0.00,1.00 +72.00,-19.20,1.00,0.00,1.00 +76.80,-19.20,1.00,0.00,1.00 +81.60,-19.20,1.00,0.00,1.00 +86.40,-19.20,1.00,0.00,1.00 +91.20,-19.20,1.00,0.00,1.00 +96.00,-19.20,1.00,0.00,1.00 +100.80,-19.20,1.00,0.00,1.00 +105.60,-19.20,1.00,0.00,1.00 +110.40,-19.20,1.00,0.00,1.00 +115.20,-19.20,1.00,0.00,1.00 +120.00,-14.40,1.00,0.00,1.00 +124.80,-14.40,1.00,0.00,1.00 +129.60,-14.40,1.00,0.00,1.00 +134.40,-14.40,1.00,0.00,1.00 +139.20,-14.40,1.00,0.00,1.00 +144.00,-9.60,1.00,0.00,1.00 +148.80,-9.60,1.00,0.00,1.00 +153.60,-9.60,1.00,0.00,1.00 +158.40,-4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-163.20,4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +-153.60,9.60,1.00,0.00,1.00 +-148.80,9.60,1.00,0.00,1.00 +-144.00,9.60,1.00,0.00,1.00 +-139.20,14.40,1.00,0.00,1.00 +-134.40,14.40,1.00,0.00,1.00 +-129.60,14.40,1.00,0.00,1.00 +-124.80,14.40,1.00,0.00,1.00 +-120.00,14.40,1.00,0.00,1.00 +-115.20,19.20,1.00,0.00,1.00 +-110.40,19.20,1.00,0.00,1.00 +-105.60,19.20,1.00,0.00,1.00 +-100.80,19.20,1.00,0.00,1.00 +-96.00,19.20,1.00,0.00,1.00 +-91.20,19.20,1.00,0.00,1.00 +-86.40,19.20,1.00,0.00,1.00 +-81.60,19.20,1.00,0.00,1.00 +-76.80,19.20,1.00,0.00,1.00 +-72.00,19.20,1.00,0.00,1.00 +-67.20,19.20,1.00,0.00,1.00 +-62.40,19.20,1.00,0.00,1.00 +-57.60,14.40,1.00,0.00,1.00 +-52.80,14.40,1.00,0.00,1.00 +-48.00,14.40,1.00,0.00,1.00 +-43.20,14.40,1.00,0.00,1.00 +-38.40,9.60,1.00,0.00,1.00 +-33.60,9.60,1.00,0.00,1.00 +-28.80,9.60,1.00,0.00,1.00 +-24.00,9.60,1.00,0.00,1.00 +-19.20,4.80,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +19.20,-9.60,1.00,0.00,1.00 +24.00,-9.60,1.00,0.00,1.00 +28.80,-9.60,1.00,0.00,1.00 +33.60,-14.40,1.00,0.00,1.00 +33.60,-14.40,1.00,0.00,1.00 +38.40,-14.40,1.00,0.00,1.00 +43.20,-19.20,1.00,0.00,1.00 +48.00,-19.20,1.00,0.00,1.00 +57.60,-19.20,1.00,0.00,1.00 +62.40,-19.20,1.00,0.00,1.00 +67.20,-24.00,1.00,0.00,1.00 +72.00,-24.00,1.00,0.00,1.00 +76.80,-24.00,1.00,0.00,1.00 +81.60,-24.00,1.00,0.00,1.00 +86.40,-24.00,1.00,0.00,1.00 +91.20,-24.00,1.00,0.00,1.00 +96.00,-24.00,1.00,0.00,1.00 +100.80,-24.00,1.00,0.00,1.00 +105.60,-24.00,1.00,0.00,1.00 +110.40,-24.00,1.00,0.00,1.00 +115.20,-19.20,1.00,0.00,1.00 +120.00,-19.20,1.00,0.00,1.00 +129.60,-19.20,1.00,0.00,1.00 +134.40,-19.20,1.00,0.00,1.00 +139.20,-19.20,1.00,0.00,1.00 +144.00,-14.40,1.00,0.00,1.00 +148.80,-14.40,1.00,0.00,1.00 +148.80,-14.40,1.00,0.00,1.00 +153.60,-9.60,1.00,0.00,1.00 +158.40,-9.60,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-163.20,4.80,1.00,0.00,1.00 +-158.40,9.60,1.00,0.00,1.00 +-153.60,9.60,1.00,0.00,1.00 +-148.80,14.40,1.00,0.00,1.00 +-148.80,14.40,1.00,0.00,1.00 +-144.00,14.40,1.00,0.00,1.00 +-139.20,19.20,1.00,0.00,1.00 +-134.40,19.20,1.00,0.00,1.00 +-129.60,19.20,1.00,0.00,1.00 +-120.00,19.20,1.00,0.00,1.00 +-115.20,19.20,1.00,0.00,1.00 +-110.40,24.00,1.00,0.00,1.00 +-105.60,24.00,1.00,0.00,1.00 +-100.80,24.00,1.00,0.00,1.00 +-96.00,24.00,1.00,0.00,1.00 +-91.20,24.00,1.00,0.00,1.00 +-86.40,24.00,1.00,0.00,1.00 +-81.60,24.00,1.00,0.00,1.00 +-76.80,24.00,1.00,0.00,1.00 +-72.00,24.00,1.00,0.00,1.00 +-67.20,24.00,1.00,0.00,1.00 +-62.40,19.20,1.00,0.00,1.00 +-57.60,19.20,1.00,0.00,1.00 +-48.00,19.20,1.00,0.00,1.00 +-43.20,19.20,1.00,0.00,1.00 +-38.40,14.40,1.00,0.00,1.00 +-33.60,14.40,1.00,0.00,1.00 +-33.60,14.40,1.00,0.00,1.00 +-28.80,9.60,1.00,0.00,1.00 +-24.00,9.60,1.00,0.00,1.00 +-19.20,9.60,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +19.20,-9.60,1.00,0.00,1.00 +19.20,-9.60,1.00,0.00,1.00 +24.00,-14.40,1.00,0.00,1.00 +28.80,-14.40,1.00,0.00,1.00 +33.60,-19.20,1.00,0.00,1.00 +38.40,-19.20,1.00,0.00,1.00 +43.20,-19.20,1.00,0.00,1.00 +48.00,-24.00,1.00,0.00,1.00 +52.80,-24.00,1.00,0.00,1.00 +57.60,-24.00,1.00,0.00,1.00 +62.40,-24.00,1.00,0.00,1.00 +72.00,-28.80,1.00,0.00,1.00 +76.80,-28.80,1.00,0.00,1.00 +81.60,-28.80,1.00,0.00,1.00 +86.40,-28.80,1.00,0.00,1.00 +91.20,-28.80,1.00,0.00,1.00 +96.00,-28.80,1.00,0.00,1.00 +100.80,-28.80,1.00,0.00,1.00 +105.60,-28.80,1.00,0.00,1.00 +115.20,-28.80,1.00,0.00,1.00 +120.00,-24.00,1.00,0.00,1.00 +124.80,-24.00,1.00,0.00,1.00 +129.60,-24.00,1.00,0.00,1.00 +134.40,-24.00,1.00,0.00,1.00 +139.20,-19.20,1.00,0.00,1.00 +144.00,-19.20,1.00,0.00,1.00 +148.80,-14.40,1.00,0.00,1.00 +153.60,-14.40,1.00,0.00,1.00 +158.40,-14.40,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-163.20,9.60,1.00,0.00,1.00 +-163.20,9.60,1.00,0.00,1.00 +-158.40,14.40,1.00,0.00,1.00 +-153.60,14.40,1.00,0.00,1.00 +-148.80,14.40,1.00,0.00,1.00 +-144.00,19.20,1.00,0.00,1.00 +-139.20,19.20,1.00,0.00,1.00 +-134.40,24.00,1.00,0.00,1.00 +-129.60,24.00,1.00,0.00,1.00 +-124.80,24.00,1.00,0.00,1.00 +-120.00,24.00,1.00,0.00,1.00 +-115.20,28.80,1.00,0.00,1.00 +-105.60,28.80,1.00,0.00,1.00 +-100.80,28.80,1.00,0.00,1.00 +-96.00,28.80,1.00,0.00,1.00 +-91.20,28.80,1.00,0.00,1.00 +-86.40,28.80,1.00,0.00,1.00 +-81.60,28.80,1.00,0.00,1.00 +-76.80,28.80,1.00,0.00,1.00 +-72.00,28.80,1.00,0.00,1.00 +-62.40,24.00,1.00,0.00,1.00 +-57.60,24.00,1.00,0.00,1.00 +-52.80,24.00,1.00,0.00,1.00 +-48.00,24.00,1.00,0.00,1.00 +-43.20,19.20,1.00,0.00,1.00 +-38.40,19.20,1.00,0.00,1.00 +-33.60,19.20,1.00,0.00,1.00 +-28.80,14.40,1.00,0.00,1.00 +-24.00,14.40,1.00,0.00,1.00 +-19.20,9.60,1.00,0.00,1.00 +-19.20,9.60,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +19.20,-14.40,1.00,0.00,1.00 +24.00,-14.40,1.00,0.00,1.00 +28.80,-19.20,1.00,0.00,1.00 +33.60,-19.20,1.00,0.00,1.00 +38.40,-24.00,1.00,0.00,1.00 +43.20,-24.00,1.00,0.00,1.00 +48.00,-24.00,1.00,0.00,1.00 +52.80,-28.80,1.00,0.00,1.00 +57.60,-28.80,1.00,0.00,1.00 +62.40,-28.80,1.00,0.00,1.00 +67.20,-33.60,1.00,0.00,1.00 +72.00,-33.60,1.00,0.00,1.00 +81.60,-33.60,1.00,0.00,1.00 +86.40,-33.60,1.00,0.00,1.00 +91.20,-33.60,1.00,0.00,1.00 +96.00,-33.60,1.00,0.00,1.00 +100.80,-33.60,1.00,0.00,1.00 +110.40,-33.60,1.00,0.00,1.00 +115.20,-33.60,1.00,0.00,1.00 +120.00,-28.80,1.00,0.00,1.00 +124.80,-28.80,1.00,0.00,1.00 +129.60,-28.80,1.00,0.00,1.00 +134.40,-24.00,1.00,0.00,1.00 +139.20,-24.00,1.00,0.00,1.00 +144.00,-19.20,1.00,0.00,1.00 +148.80,-19.20,1.00,0.00,1.00 +153.60,-14.40,1.00,0.00,1.00 +158.40,-14.40,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +168.00,-9.60,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +-163.20,9.60,1.00,0.00,1.00 +-158.40,14.40,1.00,0.00,1.00 +-153.60,14.40,1.00,0.00,1.00 +-148.80,19.20,1.00,0.00,1.00 +-144.00,19.20,1.00,0.00,1.00 +-139.20,24.00,1.00,0.00,1.00 +-134.40,24.00,1.00,0.00,1.00 +-129.60,28.80,1.00,0.00,1.00 +-124.80,28.80,1.00,0.00,1.00 +-120.00,28.80,1.00,0.00,1.00 +-115.20,33.60,1.00,0.00,1.00 +-110.40,33.60,1.00,0.00,1.00 +-100.80,33.60,1.00,0.00,1.00 +-96.00,33.60,1.00,0.00,1.00 +-91.20,33.60,1.00,0.00,1.00 +-86.40,33.60,1.00,0.00,1.00 +-81.60,33.60,1.00,0.00,1.00 +-72.00,33.60,1.00,0.00,1.00 +-67.20,33.60,1.00,0.00,1.00 +-62.40,28.80,1.00,0.00,1.00 +-57.60,28.80,1.00,0.00,1.00 +-52.80,28.80,1.00,0.00,1.00 +-48.00,24.00,1.00,0.00,1.00 +-43.20,24.00,1.00,0.00,1.00 +-38.40,24.00,1.00,0.00,1.00 +-33.60,19.20,1.00,0.00,1.00 +-28.80,19.20,1.00,0.00,1.00 +-24.00,14.40,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +-14.40,9.60,1.00,0.00,1.00 +-14.40,9.60,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +9.60,-9.60,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +19.20,-14.40,1.00,0.00,1.00 +24.00,-19.20,1.00,0.00,1.00 +28.80,-19.20,1.00,0.00,1.00 +33.60,-24.00,1.00,0.00,1.00 +38.40,-24.00,1.00,0.00,1.00 +43.20,-28.80,1.00,0.00,1.00 +48.00,-28.80,1.00,0.00,1.00 +52.80,-33.60,1.00,0.00,1.00 +57.60,-33.60,1.00,0.00,1.00 +62.40,-33.60,1.00,0.00,1.00 +67.20,-38.40,1.00,0.00,1.00 +72.00,-38.40,1.00,0.00,1.00 +81.60,-38.40,1.00,0.00,1.00 +86.40,-38.40,1.00,0.00,1.00 +91.20,-38.40,1.00,0.00,1.00 +96.00,-38.40,1.00,0.00,1.00 +105.60,-38.40,1.00,0.00,1.00 +110.40,-38.40,1.00,0.00,1.00 +115.20,-33.60,1.00,0.00,1.00 +120.00,-33.60,1.00,0.00,1.00 +124.80,-33.60,1.00,0.00,1.00 +129.60,-28.80,1.00,0.00,1.00 +134.40,-28.80,1.00,0.00,1.00 +139.20,-24.00,1.00,0.00,1.00 +144.00,-24.00,1.00,0.00,1.00 +148.80,-19.20,1.00,0.00,1.00 +153.60,-19.20,1.00,0.00,1.00 +158.40,-14.40,1.00,0.00,1.00 +163.20,-14.40,1.00,0.00,1.00 +168.00,-9.60,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +-158.40,14.40,1.00,0.00,1.00 +-153.60,19.20,1.00,0.00,1.00 +-148.80,19.20,1.00,0.00,1.00 +-144.00,24.00,1.00,0.00,1.00 +-139.20,24.00,1.00,0.00,1.00 +-134.40,28.80,1.00,0.00,1.00 +-129.60,28.80,1.00,0.00,1.00 +-124.80,33.60,1.00,0.00,1.00 +-120.00,33.60,1.00,0.00,1.00 +-115.20,33.60,1.00,0.00,1.00 +-110.40,38.40,1.00,0.00,1.00 +-105.60,38.40,1.00,0.00,1.00 +-96.00,38.40,1.00,0.00,1.00 +-91.20,38.40,1.00,0.00,1.00 +-86.40,38.40,1.00,0.00,1.00 +-81.60,38.40,1.00,0.00,1.00 +-72.00,38.40,1.00,0.00,1.00 +-67.20,38.40,1.00,0.00,1.00 +-62.40,33.60,1.00,0.00,1.00 +-57.60,33.60,1.00,0.00,1.00 +-52.80,33.60,1.00,0.00,1.00 +-48.00,28.80,1.00,0.00,1.00 +-43.20,28.80,1.00,0.00,1.00 +-38.40,24.00,1.00,0.00,1.00 +-33.60,24.00,1.00,0.00,1.00 +-28.80,19.20,1.00,0.00,1.00 +-24.00,19.20,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +-14.40,9.60,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +9.60,-9.60,1.00,0.00,1.00 +14.40,-14.40,1.00,0.00,1.00 +19.20,-14.40,1.00,0.00,1.00 +24.00,-19.20,1.00,0.00,1.00 +24.00,-24.00,1.00,0.00,1.00 +28.80,-24.00,1.00,0.00,1.00 +33.60,-28.80,1.00,0.00,1.00 +38.40,-28.80,1.00,0.00,1.00 +43.20,-33.60,1.00,0.00,1.00 +48.00,-33.60,1.00,0.00,1.00 +52.80,-38.40,1.00,0.00,1.00 +62.40,-38.40,1.00,0.00,1.00 +67.20,-38.40,1.00,0.00,1.00 +72.00,-43.20,1.00,0.00,1.00 +76.80,-43.20,1.00,0.00,1.00 +86.40,-43.20,1.00,0.00,1.00 +91.20,-43.20,1.00,0.00,1.00 +96.00,-43.20,1.00,0.00,1.00 +105.60,-43.20,1.00,0.00,1.00 +110.40,-43.20,1.00,0.00,1.00 +115.20,-38.40,1.00,0.00,1.00 +124.80,-38.40,1.00,0.00,1.00 +129.60,-38.40,1.00,0.00,1.00 +134.40,-33.60,1.00,0.00,1.00 +139.20,-33.60,1.00,0.00,1.00 +144.00,-28.80,1.00,0.00,1.00 +148.80,-28.80,1.00,0.00,1.00 +153.60,-24.00,1.00,0.00,1.00 +158.40,-19.20,1.00,0.00,1.00 +158.40,-19.20,1.00,0.00,1.00 +163.20,-14.40,1.00,0.00,1.00 +168.00,-9.60,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +-158.40,19.20,1.00,0.00,1.00 +-158.40,19.20,1.00,0.00,1.00 +-153.60,24.00,1.00,0.00,1.00 +-148.80,28.80,1.00,0.00,1.00 +-144.00,28.80,1.00,0.00,1.00 +-139.20,33.60,1.00,0.00,1.00 +-134.40,33.60,1.00,0.00,1.00 +-129.60,38.40,1.00,0.00,1.00 +-124.80,38.40,1.00,0.00,1.00 +-115.20,38.40,1.00,0.00,1.00 +-110.40,43.20,1.00,0.00,1.00 +-105.60,43.20,1.00,0.00,1.00 +-96.00,43.20,1.00,0.00,1.00 +-91.20,43.20,1.00,0.00,1.00 +-86.40,43.20,1.00,0.00,1.00 +-76.80,43.20,1.00,0.00,1.00 +-72.00,43.20,1.00,0.00,1.00 +-67.20,38.40,1.00,0.00,1.00 +-62.40,38.40,1.00,0.00,1.00 +-52.80,38.40,1.00,0.00,1.00 +-48.00,33.60,1.00,0.00,1.00 +-43.20,33.60,1.00,0.00,1.00 +-38.40,28.80,1.00,0.00,1.00 +-33.60,28.80,1.00,0.00,1.00 +-28.80,24.00,1.00,0.00,1.00 +-24.00,24.00,1.00,0.00,1.00 +-24.00,19.20,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +-14.40,14.40,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +9.60,-9.60,1.00,0.00,1.00 +14.40,-14.40,1.00,0.00,1.00 +14.40,-19.20,1.00,0.00,1.00 +19.20,-19.20,1.00,0.00,1.00 +24.00,-24.00,1.00,0.00,1.00 +28.80,-28.80,1.00,0.00,1.00 +33.60,-28.80,1.00,0.00,1.00 +38.40,-33.60,1.00,0.00,1.00 +43.20,-38.40,1.00,0.00,1.00 +48.00,-38.40,1.00,0.00,1.00 +52.80,-43.20,1.00,0.00,1.00 +57.60,-43.20,1.00,0.00,1.00 +62.40,-43.20,1.00,0.00,1.00 +72.00,-48.00,1.00,0.00,1.00 +76.80,-48.00,1.00,0.00,1.00 +86.40,-48.00,1.00,0.00,1.00 +91.20,-48.00,1.00,0.00,1.00 +100.80,-48.00,1.00,0.00,1.00 +105.60,-48.00,1.00,0.00,1.00 +110.40,-48.00,1.00,0.00,1.00 +120.00,-43.20,1.00,0.00,1.00 +124.80,-43.20,1.00,0.00,1.00 +129.60,-38.40,1.00,0.00,1.00 +134.40,-38.40,1.00,0.00,1.00 +139.20,-33.60,1.00,0.00,1.00 +144.00,-33.60,1.00,0.00,1.00 +148.80,-28.80,1.00,0.00,1.00 +153.60,-24.00,1.00,0.00,1.00 +158.40,-24.00,1.00,0.00,1.00 +163.20,-19.20,1.00,0.00,1.00 +163.20,-14.40,1.00,0.00,1.00 +168.00,-14.40,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-168.00,14.40,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +-163.20,19.20,1.00,0.00,1.00 +-158.40,24.00,1.00,0.00,1.00 +-153.60,24.00,1.00,0.00,1.00 +-148.80,28.80,1.00,0.00,1.00 +-144.00,33.60,1.00,0.00,1.00 +-139.20,33.60,1.00,0.00,1.00 +-134.40,38.40,1.00,0.00,1.00 +-129.60,38.40,1.00,0.00,1.00 +-124.80,43.20,1.00,0.00,1.00 +-120.00,43.20,1.00,0.00,1.00 +-110.40,48.00,1.00,0.00,1.00 +-105.60,48.00,1.00,0.00,1.00 +-100.80,48.00,1.00,0.00,1.00 +-91.20,48.00,1.00,0.00,1.00 +-86.40,48.00,1.00,0.00,1.00 +-76.80,48.00,1.00,0.00,1.00 +-72.00,48.00,1.00,0.00,1.00 +-62.40,43.20,1.00,0.00,1.00 +-57.60,43.20,1.00,0.00,1.00 +-52.80,43.20,1.00,0.00,1.00 +-48.00,38.40,1.00,0.00,1.00 +-43.20,38.40,1.00,0.00,1.00 +-38.40,33.60,1.00,0.00,1.00 +-33.60,28.80,1.00,0.00,1.00 +-28.80,28.80,1.00,0.00,1.00 +-24.00,24.00,1.00,0.00,1.00 +-19.20,19.20,1.00,0.00,1.00 +-14.40,19.20,1.00,0.00,1.00 +-14.40,14.40,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +9.60,-9.60,1.00,0.00,1.00 +9.60,-14.40,1.00,0.00,1.00 +14.40,-19.20,1.00,0.00,1.00 +19.20,-24.00,1.00,0.00,1.00 +24.00,-24.00,1.00,0.00,1.00 +24.00,-28.80,1.00,0.00,1.00 +28.80,-33.60,1.00,0.00,1.00 +33.60,-38.40,1.00,0.00,1.00 +38.40,-38.40,1.00,0.00,1.00 +43.20,-43.20,1.00,0.00,1.00 +48.00,-43.20,1.00,0.00,1.00 +52.80,-48.00,1.00,0.00,1.00 +62.40,-48.00,1.00,0.00,1.00 +67.20,-52.80,1.00,0.00,1.00 +76.80,-52.80,1.00,0.00,1.00 +86.40,-52.80,1.00,0.00,1.00 +91.20,-52.80,1.00,0.00,1.00 +100.80,-52.80,1.00,0.00,1.00 +105.60,-52.80,1.00,0.00,1.00 +115.20,-48.00,1.00,0.00,1.00 +120.00,-48.00,1.00,0.00,1.00 +129.60,-48.00,1.00,0.00,1.00 +134.40,-43.20,1.00,0.00,1.00 +139.20,-43.20,1.00,0.00,1.00 +144.00,-38.40,1.00,0.00,1.00 +148.80,-33.60,1.00,0.00,1.00 +153.60,-33.60,1.00,0.00,1.00 +158.40,-28.80,1.00,0.00,1.00 +158.40,-24.00,1.00,0.00,1.00 +163.20,-19.20,1.00,0.00,1.00 +168.00,-19.20,1.00,0.00,1.00 +168.00,-14.40,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-168.00,14.40,1.00,0.00,1.00 +-168.00,19.20,1.00,0.00,1.00 +-163.20,19.20,1.00,0.00,1.00 +-158.40,24.00,1.00,0.00,1.00 +-158.40,28.80,1.00,0.00,1.00 +-153.60,33.60,1.00,0.00,1.00 +-148.80,33.60,1.00,0.00,1.00 +-144.00,38.40,1.00,0.00,1.00 +-139.20,43.20,1.00,0.00,1.00 +-134.40,43.20,1.00,0.00,1.00 +-129.60,48.00,1.00,0.00,1.00 +-120.00,48.00,1.00,0.00,1.00 +-115.20,48.00,1.00,0.00,1.00 +-105.60,52.80,1.00,0.00,1.00 +-100.80,52.80,1.00,0.00,1.00 +-91.20,52.80,1.00,0.00,1.00 +-86.40,52.80,1.00,0.00,1.00 +-76.80,52.80,1.00,0.00,1.00 +-67.20,52.80,1.00,0.00,1.00 +-62.40,48.00,1.00,0.00,1.00 +-52.80,48.00,1.00,0.00,1.00 +-48.00,43.20,1.00,0.00,1.00 +-43.20,43.20,1.00,0.00,1.00 +-38.40,38.40,1.00,0.00,1.00 +-33.60,38.40,1.00,0.00,1.00 +-28.80,33.60,1.00,0.00,1.00 +-24.00,28.80,1.00,0.00,1.00 +-24.00,24.00,1.00,0.00,1.00 +-19.20,24.00,1.00,0.00,1.00 +-14.40,19.20,1.00,0.00,1.00 +-9.60,14.40,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +9.60,-14.40,1.00,0.00,1.00 +9.60,-14.40,1.00,0.00,1.00 +14.40,-19.20,1.00,0.00,1.00 +14.40,-24.00,1.00,0.00,1.00 +19.20,-28.80,1.00,0.00,1.00 +24.00,-33.60,1.00,0.00,1.00 +28.80,-33.60,1.00,0.00,1.00 +28.80,-38.40,1.00,0.00,1.00 +33.60,-43.20,1.00,0.00,1.00 +38.40,-43.20,1.00,0.00,1.00 +48.00,-48.00,1.00,0.00,1.00 +52.80,-52.80,1.00,0.00,1.00 +57.60,-52.80,1.00,0.00,1.00 +67.20,-57.60,1.00,0.00,1.00 +76.80,-57.60,1.00,0.00,1.00 +81.60,-57.60,1.00,0.00,1.00 +91.20,-57.60,1.00,0.00,1.00 +100.80,-57.60,1.00,0.00,1.00 +110.40,-57.60,1.00,0.00,1.00 +115.20,-52.80,1.00,0.00,1.00 +124.80,-52.80,1.00,0.00,1.00 +129.60,-48.00,1.00,0.00,1.00 +139.20,-48.00,1.00,0.00,1.00 +144.00,-43.20,1.00,0.00,1.00 +148.80,-38.40,1.00,0.00,1.00 +153.60,-38.40,1.00,0.00,1.00 +153.60,-33.60,1.00,0.00,1.00 +158.40,-28.80,1.00,0.00,1.00 +163.20,-24.00,1.00,0.00,1.00 +163.20,-24.00,1.00,0.00,1.00 +168.00,-19.20,1.00,0.00,1.00 +172.80,-14.40,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-172.80,14.40,1.00,0.00,1.00 +-168.00,19.20,1.00,0.00,1.00 +-163.20,24.00,1.00,0.00,1.00 +-163.20,24.00,1.00,0.00,1.00 +-158.40,28.80,1.00,0.00,1.00 +-153.60,33.60,1.00,0.00,1.00 +-153.60,38.40,1.00,0.00,1.00 +-148.80,38.40,1.00,0.00,1.00 +-144.00,43.20,1.00,0.00,1.00 +-139.20,48.00,1.00,0.00,1.00 +-129.60,48.00,1.00,0.00,1.00 +-124.80,52.80,1.00,0.00,1.00 +-115.20,52.80,1.00,0.00,1.00 +-110.40,57.60,1.00,0.00,1.00 +-100.80,57.60,1.00,0.00,1.00 +-91.20,57.60,1.00,0.00,1.00 +-81.60,57.60,1.00,0.00,1.00 +-76.80,57.60,1.00,0.00,1.00 +-67.20,57.60,1.00,0.00,1.00 +-57.60,52.80,1.00,0.00,1.00 +-52.80,52.80,1.00,0.00,1.00 +-48.00,48.00,1.00,0.00,1.00 +-38.40,43.20,1.00,0.00,1.00 +-33.60,43.20,1.00,0.00,1.00 +-28.80,38.40,1.00,0.00,1.00 +-28.80,33.60,1.00,0.00,1.00 +-24.00,33.60,1.00,0.00,1.00 +-19.20,28.80,1.00,0.00,1.00 +-14.40,24.00,1.00,0.00,1.00 +-14.40,19.20,1.00,0.00,1.00 +-9.60,14.40,1.00,0.00,1.00 +-9.60,14.40,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +4.80,-14.40,1.00,0.00,1.00 +9.60,-19.20,1.00,0.00,1.00 +9.60,-19.20,1.00,0.00,1.00 +14.40,-24.00,1.00,0.00,1.00 +19.20,-28.80,1.00,0.00,1.00 +19.20,-33.60,1.00,0.00,1.00 +24.00,-38.40,1.00,0.00,1.00 +28.80,-43.20,1.00,0.00,1.00 +33.60,-43.20,1.00,0.00,1.00 +38.40,-48.00,1.00,0.00,1.00 +43.20,-52.80,1.00,0.00,1.00 +48.00,-52.80,1.00,0.00,1.00 +52.80,-57.60,1.00,0.00,1.00 +62.40,-57.60,1.00,0.00,1.00 +72.00,-62.40,1.00,0.00,1.00 +81.60,-62.40,1.00,0.00,1.00 +91.20,-62.40,1.00,0.00,1.00 +100.80,-62.40,1.00,0.00,1.00 +110.40,-62.40,1.00,0.00,1.00 +120.00,-57.60,1.00,0.00,1.00 +129.60,-57.60,1.00,0.00,1.00 +134.40,-52.80,1.00,0.00,1.00 +139.20,-48.00,1.00,0.00,1.00 +144.00,-48.00,1.00,0.00,1.00 +148.80,-43.20,1.00,0.00,1.00 +153.60,-38.40,1.00,0.00,1.00 +158.40,-33.60,1.00,0.00,1.00 +163.20,-33.60,1.00,0.00,1.00 +163.20,-28.80,1.00,0.00,1.00 +168.00,-24.00,1.00,0.00,1.00 +168.00,-19.20,1.00,0.00,1.00 +172.80,-14.40,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-172.80,14.40,1.00,0.00,1.00 +-168.00,19.20,1.00,0.00,1.00 +-168.00,24.00,1.00,0.00,1.00 +-163.20,28.80,1.00,0.00,1.00 +-163.20,33.60,1.00,0.00,1.00 +-158.40,33.60,1.00,0.00,1.00 +-153.60,38.40,1.00,0.00,1.00 +-148.80,43.20,1.00,0.00,1.00 +-144.00,48.00,1.00,0.00,1.00 +-139.20,48.00,1.00,0.00,1.00 +-134.40,52.80,1.00,0.00,1.00 +-129.60,57.60,1.00,0.00,1.00 +-120.00,57.60,1.00,0.00,1.00 +-110.40,62.40,1.00,0.00,1.00 +-100.80,62.40,1.00,0.00,1.00 +-91.20,62.40,1.00,0.00,1.00 +-81.60,62.40,1.00,0.00,1.00 +-72.00,62.40,1.00,0.00,1.00 +-62.40,57.60,1.00,0.00,1.00 +-52.80,57.60,1.00,0.00,1.00 +-48.00,52.80,1.00,0.00,1.00 +-43.20,52.80,1.00,0.00,1.00 +-38.40,48.00,1.00,0.00,1.00 +-33.60,43.20,1.00,0.00,1.00 +-28.80,43.20,1.00,0.00,1.00 +-24.00,38.40,1.00,0.00,1.00 +-19.20,33.60,1.00,0.00,1.00 +-19.20,28.80,1.00,0.00,1.00 +-14.40,24.00,1.00,0.00,1.00 +-9.60,19.20,1.00,0.00,1.00 +-9.60,19.20,1.00,0.00,1.00 +-4.80,14.40,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +4.80,-14.40,1.00,0.00,1.00 +9.60,-19.20,1.00,0.00,1.00 +9.60,-24.00,1.00,0.00,1.00 +14.40,-24.00,1.00,0.00,1.00 +14.40,-28.80,1.00,0.00,1.00 +19.20,-33.60,1.00,0.00,1.00 +19.20,-38.40,1.00,0.00,1.00 +24.00,-43.20,1.00,0.00,1.00 +28.80,-48.00,1.00,0.00,1.00 +33.60,-52.80,1.00,0.00,1.00 +38.40,-52.80,1.00,0.00,1.00 +43.20,-57.60,1.00,0.00,1.00 +48.00,-62.40,1.00,0.00,1.00 +57.60,-62.40,1.00,0.00,1.00 +67.20,-67.20,1.00,0.00,1.00 +81.60,-67.20,1.00,0.00,1.00 +91.20,-67.20,1.00,0.00,1.00 +105.60,-67.20,1.00,0.00,1.00 +115.20,-67.20,1.00,0.00,1.00 +124.80,-62.40,1.00,0.00,1.00 +134.40,-57.60,1.00,0.00,1.00 +139.20,-57.60,1.00,0.00,1.00 +144.00,-52.80,1.00,0.00,1.00 +148.80,-48.00,1.00,0.00,1.00 +153.60,-43.20,1.00,0.00,1.00 +158.40,-43.20,1.00,0.00,1.00 +163.20,-38.40,1.00,0.00,1.00 +163.20,-33.60,1.00,0.00,1.00 +168.00,-28.80,1.00,0.00,1.00 +168.00,-24.00,1.00,0.00,1.00 +172.80,-19.20,1.00,0.00,1.00 +172.80,-14.40,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-172.80,14.40,1.00,0.00,1.00 +-172.80,19.20,1.00,0.00,1.00 +-168.00,24.00,1.00,0.00,1.00 +-168.00,28.80,1.00,0.00,1.00 +-163.20,33.60,1.00,0.00,1.00 +-163.20,38.40,1.00,0.00,1.00 +-158.40,43.20,1.00,0.00,1.00 +-153.60,43.20,1.00,0.00,1.00 +-148.80,48.00,1.00,0.00,1.00 +-144.00,52.80,1.00,0.00,1.00 +-139.20,57.60,1.00,0.00,1.00 +-134.40,57.60,1.00,0.00,1.00 +-124.80,62.40,1.00,0.00,1.00 +-115.20,67.20,1.00,0.00,1.00 +-105.60,67.20,1.00,0.00,1.00 +-91.20,67.20,1.00,0.00,1.00 +-81.60,67.20,1.00,0.00,1.00 +-67.20,67.20,1.00,0.00,1.00 +-57.60,62.40,1.00,0.00,1.00 +-48.00,62.40,1.00,0.00,1.00 +-43.20,57.60,1.00,0.00,1.00 +-38.40,52.80,1.00,0.00,1.00 +-33.60,52.80,1.00,0.00,1.00 +-28.80,48.00,1.00,0.00,1.00 +-24.00,43.20,1.00,0.00,1.00 +-19.20,38.40,1.00,0.00,1.00 +-19.20,33.60,1.00,0.00,1.00 +-14.40,28.80,1.00,0.00,1.00 +-14.40,24.00,1.00,0.00,1.00 +-9.60,24.00,1.00,0.00,1.00 +-9.60,19.20,1.00,0.00,1.00 +-4.80,14.40,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +4.80,-14.40,1.00,0.00,1.00 +4.80,-19.20,1.00,0.00,1.00 +9.60,-24.00,1.00,0.00,1.00 +9.60,-28.80,1.00,0.00,1.00 +9.60,-33.60,1.00,0.00,1.00 +14.40,-38.40,1.00,0.00,1.00 +14.40,-38.40,1.00,0.00,1.00 +19.20,-43.20,1.00,0.00,1.00 +24.00,-48.00,1.00,0.00,1.00 +24.00,-52.80,1.00,0.00,1.00 +28.80,-57.60,1.00,0.00,1.00 +38.40,-62.40,1.00,0.00,1.00 +43.20,-62.40,1.00,0.00,1.00 +52.80,-67.20,1.00,0.00,1.00 +62.40,-72.00,1.00,0.00,1.00 +76.80,-72.00,1.00,0.00,1.00 +96.00,-72.00,1.00,0.00,1.00 +110.40,-72.00,1.00,0.00,1.00 +120.00,-67.20,1.00,0.00,1.00 +134.40,-67.20,1.00,0.00,1.00 +139.20,-62.40,1.00,0.00,1.00 +148.80,-57.60,1.00,0.00,1.00 +153.60,-57.60,1.00,0.00,1.00 +158.40,-52.80,1.00,0.00,1.00 +158.40,-48.00,1.00,0.00,1.00 +163.20,-43.20,1.00,0.00,1.00 +163.20,-38.40,1.00,0.00,1.00 +168.00,-33.60,1.00,0.00,1.00 +168.00,-28.80,1.00,0.00,1.00 +172.80,-24.00,1.00,0.00,1.00 +172.80,-19.20,1.00,0.00,1.00 +172.80,-14.40,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-172.80,14.40,1.00,0.00,1.00 +-172.80,19.20,1.00,0.00,1.00 +-172.80,24.00,1.00,0.00,1.00 +-168.00,28.80,1.00,0.00,1.00 +-168.00,33.60,1.00,0.00,1.00 +-163.20,38.40,1.00,0.00,1.00 +-163.20,43.20,1.00,0.00,1.00 +-158.40,48.00,1.00,0.00,1.00 +-158.40,52.80,1.00,0.00,1.00 +-153.60,57.60,1.00,0.00,1.00 +-148.80,57.60,1.00,0.00,1.00 +-139.20,62.40,1.00,0.00,1.00 +-134.40,67.20,1.00,0.00,1.00 +-120.00,67.20,1.00,0.00,1.00 +-110.40,72.00,1.00,0.00,1.00 +-96.00,72.00,1.00,0.00,1.00 +-76.80,72.00,1.00,0.00,1.00 +-62.40,72.00,1.00,0.00,1.00 +-52.80,67.20,1.00,0.00,1.00 +-43.20,62.40,1.00,0.00,1.00 +-38.40,62.40,1.00,0.00,1.00 +-28.80,57.60,1.00,0.00,1.00 +-24.00,52.80,1.00,0.00,1.00 +-24.00,48.00,1.00,0.00,1.00 +-19.20,43.20,1.00,0.00,1.00 +-14.40,38.40,1.00,0.00,1.00 +-14.40,38.40,1.00,0.00,1.00 +-9.60,33.60,1.00,0.00,1.00 +-9.60,28.80,1.00,0.00,1.00 +-9.60,24.00,1.00,0.00,1.00 +-4.80,19.20,1.00,0.00,1.00 +-4.80,14.40,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,-9.60,1.00,0.00,1.00 +4.80,-14.40,1.00,0.00,1.00 +4.80,-19.20,1.00,0.00,1.00 +4.80,-24.00,1.00,0.00,1.00 +4.80,-28.80,1.00,0.00,1.00 +9.60,-33.60,1.00,0.00,1.00 +9.60,-38.40,1.00,0.00,1.00 +14.40,-43.20,1.00,0.00,1.00 +14.40,-48.00,1.00,0.00,1.00 +14.40,-52.80,1.00,0.00,1.00 +19.20,-57.60,1.00,0.00,1.00 +24.00,-57.60,1.00,0.00,1.00 +28.80,-62.40,1.00,0.00,1.00 +33.60,-67.20,1.00,0.00,1.00 +43.20,-72.00,1.00,0.00,1.00 +57.60,-72.00,1.00,0.00,1.00 +76.80,-76.80,1.00,0.00,1.00 +96.00,-76.80,1.00,0.00,1.00 +115.20,-76.80,1.00,0.00,1.00 +129.60,-72.00,1.00,0.00,1.00 +139.20,-72.00,1.00,0.00,1.00 +148.80,-67.20,1.00,0.00,1.00 +153.60,-62.40,1.00,0.00,1.00 +158.40,-57.60,1.00,0.00,1.00 +163.20,-52.80,1.00,0.00,1.00 +163.20,-48.00,1.00,0.00,1.00 +168.00,-43.20,1.00,0.00,1.00 +168.00,-38.40,1.00,0.00,1.00 +172.80,-33.60,1.00,0.00,1.00 +172.80,-28.80,1.00,0.00,1.00 +172.80,-24.00,1.00,0.00,1.00 +172.80,-19.20,1.00,0.00,1.00 +177.60,-14.40,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-177.60,14.40,1.00,0.00,1.00 +-172.80,19.20,1.00,0.00,1.00 +-172.80,24.00,1.00,0.00,1.00 +-172.80,28.80,1.00,0.00,1.00 +-172.80,33.60,1.00,0.00,1.00 +-168.00,38.40,1.00,0.00,1.00 +-168.00,43.20,1.00,0.00,1.00 +-163.20,48.00,1.00,0.00,1.00 +-163.20,52.80,1.00,0.00,1.00 +-158.40,57.60,1.00,0.00,1.00 +-153.60,62.40,1.00,0.00,1.00 +-148.80,67.20,1.00,0.00,1.00 +-139.20,72.00,1.00,0.00,1.00 +-129.60,72.00,1.00,0.00,1.00 +-115.20,76.80,1.00,0.00,1.00 +-96.00,76.80,1.00,0.00,1.00 +-76.80,76.80,1.00,0.00,1.00 +-57.60,72.00,1.00,0.00,1.00 +-43.20,72.00,1.00,0.00,1.00 +-33.60,67.20,1.00,0.00,1.00 +-28.80,62.40,1.00,0.00,1.00 +-24.00,57.60,1.00,0.00,1.00 +-19.20,57.60,1.00,0.00,1.00 +-14.40,52.80,1.00,0.00,1.00 +-14.40,48.00,1.00,0.00,1.00 +-14.40,43.20,1.00,0.00,1.00 +-9.60,38.40,1.00,0.00,1.00 +-9.60,33.60,1.00,0.00,1.00 +-4.80,28.80,1.00,0.00,1.00 +-4.80,24.00,1.00,0.00,1.00 +-4.80,19.20,1.00,0.00,1.00 +-4.80,14.40,1.00,0.00,1.00 +-0.00,9.60,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,-9.60,1.00,0.00,1.00 +0.00,-14.40,1.00,0.00,1.00 +4.80,-19.20,1.00,0.00,1.00 +4.80,-24.00,1.00,0.00,1.00 +4.80,-28.80,1.00,0.00,1.00 +4.80,-33.60,1.00,0.00,1.00 +4.80,-38.40,1.00,0.00,1.00 +9.60,-43.20,1.00,0.00,1.00 +9.60,-48.00,1.00,0.00,1.00 +9.60,-52.80,1.00,0.00,1.00 +14.40,-57.60,1.00,0.00,1.00 +14.40,-62.40,1.00,0.00,1.00 +19.20,-67.20,1.00,0.00,1.00 +24.00,-72.00,1.00,0.00,1.00 +33.60,-72.00,1.00,0.00,1.00 +43.20,-76.80,1.00,0.00,1.00 +67.20,-81.60,1.00,0.00,1.00 +96.00,-81.60,1.00,0.00,1.00 +124.80,-81.60,1.00,0.00,1.00 +144.00,-76.80,1.00,0.00,1.00 +153.60,-72.00,1.00,0.00,1.00 +158.40,-67.20,1.00,0.00,1.00 +163.20,-62.40,1.00,0.00,1.00 +168.00,-57.60,1.00,0.00,1.00 +168.00,-52.80,1.00,0.00,1.00 +168.00,-48.00,1.00,0.00,1.00 +172.80,-43.20,1.00,0.00,1.00 +172.80,-38.40,1.00,0.00,1.00 +172.80,-33.60,1.00,0.00,1.00 +172.80,-28.80,1.00,0.00,1.00 +177.60,-24.00,1.00,0.00,1.00 +177.60,-19.20,1.00,0.00,1.00 +177.60,-14.40,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-177.60,14.40,1.00,0.00,1.00 +-177.60,19.20,1.00,0.00,1.00 +-177.60,24.00,1.00,0.00,1.00 +-172.80,28.80,1.00,0.00,1.00 +-172.80,33.60,1.00,0.00,1.00 +-172.80,38.40,1.00,0.00,1.00 +-172.80,43.20,1.00,0.00,1.00 +-168.00,48.00,1.00,0.00,1.00 +-168.00,52.80,1.00,0.00,1.00 +-168.00,57.60,1.00,0.00,1.00 +-163.20,62.40,1.00,0.00,1.00 +-158.40,67.20,1.00,0.00,1.00 +-153.60,72.00,1.00,0.00,1.00 +-144.00,76.80,1.00,0.00,1.00 +-124.80,81.60,1.00,0.00,1.00 +-96.00,81.60,1.00,0.00,1.00 +-67.20,81.60,1.00,0.00,1.00 +-43.20,76.80,1.00,0.00,1.00 +-33.60,72.00,1.00,0.00,1.00 +-24.00,72.00,1.00,0.00,1.00 +-19.20,67.20,1.00,0.00,1.00 +-14.40,62.40,1.00,0.00,1.00 +-14.40,57.60,1.00,0.00,1.00 +-9.60,52.80,1.00,0.00,1.00 +-9.60,48.00,1.00,0.00,1.00 +-9.60,43.20,1.00,0.00,1.00 +-4.80,38.40,1.00,0.00,1.00 +-4.80,33.60,1.00,0.00,1.00 +-4.80,28.80,1.00,0.00,1.00 +-4.80,24.00,1.00,0.00,1.00 +-4.80,19.20,1.00,0.00,1.00 +-0.00,14.40,1.00,0.00,1.00 +-0.00,9.60,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,-9.60,1.00,0.00,1.00 +0.00,-14.40,1.00,0.00,1.00 +0.00,-19.20,1.00,0.00,1.00 +0.00,-24.00,1.00,0.00,1.00 +0.00,-28.80,1.00,0.00,1.00 +0.00,-33.60,1.00,0.00,1.00 +4.80,-38.40,1.00,0.00,1.00 +4.80,-43.20,1.00,0.00,1.00 +4.80,-48.00,1.00,0.00,1.00 +4.80,-52.80,1.00,0.00,1.00 +4.80,-57.60,1.00,0.00,1.00 +4.80,-62.40,1.00,0.00,1.00 +9.60,-67.20,1.00,0.00,1.00 +9.60,-72.00,1.00,0.00,1.00 +14.40,-76.80,1.00,0.00,1.00 +24.00,-81.60,1.00,0.00,1.00 +43.20,-86.40,1.00,0.00,1.00 +110.40,-86.40,1.00,0.00,1.00 +148.80,-81.60,1.00,0.00,1.00 +163.20,-76.80,1.00,0.00,1.00 +168.00,-72.00,1.00,0.00,1.00 +172.80,-67.20,1.00,0.00,1.00 +172.80,-62.40,1.00,0.00,1.00 +172.80,-57.60,1.00,0.00,1.00 +172.80,-52.80,1.00,0.00,1.00 +177.60,-48.00,1.00,0.00,1.00 +177.60,-43.20,1.00,0.00,1.00 +177.60,-38.40,1.00,0.00,1.00 +177.60,-33.60,1.00,0.00,1.00 +177.60,-28.80,1.00,0.00,1.00 +177.60,-24.00,1.00,0.00,1.00 +177.60,-19.20,1.00,0.00,1.00 +177.60,-14.40,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-177.60,14.40,1.00,0.00,1.00 +-177.60,19.20,1.00,0.00,1.00 +-177.60,24.00,1.00,0.00,1.00 +-177.60,28.80,1.00,0.00,1.00 +-177.60,33.60,1.00,0.00,1.00 +-177.60,38.40,1.00,0.00,1.00 +-177.60,43.20,1.00,0.00,1.00 +-177.60,48.00,1.00,0.00,1.00 +-172.80,52.80,1.00,0.00,1.00 +-172.80,57.60,1.00,0.00,1.00 +-172.80,62.40,1.00,0.00,1.00 +-172.80,67.20,1.00,0.00,1.00 +-168.00,72.00,1.00,0.00,1.00 +-163.20,76.80,1.00,0.00,1.00 +-148.80,81.60,1.00,0.00,1.00 +-110.40,86.40,1.00,0.00,1.00 +-43.20,86.40,1.00,0.00,1.00 +-24.00,81.60,1.00,0.00,1.00 +-14.40,76.80,1.00,0.00,1.00 +-9.60,72.00,1.00,0.00,1.00 +-9.60,67.20,1.00,0.00,1.00 +-4.80,62.40,1.00,0.00,1.00 +-4.80,57.60,1.00,0.00,1.00 +-4.80,52.80,1.00,0.00,1.00 +-4.80,48.00,1.00,0.00,1.00 +-4.80,43.20,1.00,0.00,1.00 +-4.80,38.40,1.00,0.00,1.00 +-0.00,33.60,1.00,0.00,1.00 +-0.00,28.80,1.00,0.00,1.00 +-0.00,24.00,1.00,0.00,1.00 +-0.00,19.20,1.00,0.00,1.00 +-0.00,14.40,1.00,0.00,1.00 +-0.00,9.60,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-0.00,-4.80,1.00,0.00,1.00 +-0.00,-9.60,1.00,0.00,1.00 +-0.00,-14.40,1.00,0.00,1.00 +-0.00,-19.20,1.00,0.00,1.00 +-0.00,-24.00,1.00,0.00,1.00 +-0.00,-28.80,1.00,0.00,1.00 +-0.00,-33.60,1.00,0.00,1.00 +-0.00,-38.40,1.00,0.00,1.00 +-0.00,-43.20,1.00,0.00,1.00 +-0.00,-48.00,1.00,0.00,1.00 +-0.00,-52.80,1.00,0.00,1.00 +-0.00,-57.60,1.00,0.00,1.00 +-0.00,-62.40,1.00,0.00,1.00 +-4.80,-67.20,1.00,0.00,1.00 +-4.80,-72.00,1.00,0.00,1.00 +-4.80,-76.80,1.00,0.00,1.00 +-9.60,-81.60,1.00,0.00,1.00 +-19.20,-86.40,1.00,0.00,1.00 +-134.40,-86.40,1.00,0.00,1.00 +-168.00,-81.60,1.00,0.00,1.00 +-172.80,-76.80,1.00,0.00,1.00 +-177.60,-72.00,1.00,0.00,1.00 +-177.60,-67.20,1.00,0.00,1.00 +-177.60,-62.40,1.00,0.00,1.00 +-177.60,-57.60,1.00,0.00,1.00 +-177.60,-52.80,1.00,0.00,1.00 +-177.60,-48.00,1.00,0.00,1.00 +-177.60,-43.20,1.00,0.00,1.00 +-177.60,-38.40,1.00,0.00,1.00 +-177.60,-33.60,1.00,0.00,1.00 +-177.60,-28.80,1.00,0.00,1.00 +-177.60,-24.00,1.00,0.00,1.00 +-177.60,-19.20,1.00,0.00,1.00 +-177.60,-14.40,1.00,0.00,1.00 +-177.60,-9.60,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,9.60,1.00,0.00,1.00 +177.60,14.40,1.00,0.00,1.00 +177.60,19.20,1.00,0.00,1.00 +177.60,24.00,1.00,0.00,1.00 +177.60,28.80,1.00,0.00,1.00 +177.60,33.60,1.00,0.00,1.00 +177.60,38.40,1.00,0.00,1.00 +177.60,43.20,1.00,0.00,1.00 +177.60,48.00,1.00,0.00,1.00 +177.60,52.80,1.00,0.00,1.00 +177.60,57.60,1.00,0.00,1.00 +177.60,62.40,1.00,0.00,1.00 +177.60,67.20,1.00,0.00,1.00 +177.60,72.00,1.00,0.00,1.00 +172.80,76.80,1.00,0.00,1.00 +168.00,81.60,1.00,0.00,1.00 +134.40,86.40,1.00,0.00,1.00 +19.20,86.40,1.00,0.00,1.00 +9.60,81.60,1.00,0.00,1.00 +4.80,76.80,1.00,0.00,1.00 +4.80,72.00,1.00,0.00,1.00 +4.80,67.20,1.00,0.00,1.00 +0.00,62.40,1.00,0.00,1.00 +0.00,57.60,1.00,0.00,1.00 +0.00,52.80,1.00,0.00,1.00 +0.00,48.00,1.00,0.00,1.00 +0.00,43.20,1.00,0.00,1.00 +0.00,38.40,1.00,0.00,1.00 +0.00,33.60,1.00,0.00,1.00 +0.00,28.80,1.00,0.00,1.00 +0.00,24.00,1.00,0.00,1.00 +0.00,19.20,1.00,0.00,1.00 +0.00,14.40,1.00,0.00,1.00 +0.00,9.60,1.00,0.00,1.00 +0.00,4.80,1.00,0.00,1.00 diff --git a/scripts/testv/stvISM2.csv b/scripts/testv/stvISM2.csv index e69de29bb2..dcd3fee39c 100644 --- a/scripts/testv/stvISM2.csv +++ b/scripts/testv/stvISM2.csv @@ -0,0 +1,1500 @@ +0.00,4.80,1.00,0.00,1.00 +0.00,9.60,1.00,0.00,1.00 +0.00,14.40,1.00,0.00,1.00 +0.00,19.20,1.00,0.00,1.00 +0.00,24.00,1.00,0.00,1.00 +0.00,28.80,1.00,0.00,1.00 +0.00,33.60,1.00,0.00,1.00 +0.00,38.40,1.00,0.00,1.00 +0.00,43.20,1.00,0.00,1.00 +0.00,48.00,1.00,0.00,1.00 +0.00,52.80,1.00,0.00,1.00 +0.00,57.60,1.00,0.00,1.00 +0.00,62.40,1.00,0.00,1.00 +4.80,67.20,1.00,0.00,1.00 +4.80,72.00,1.00,0.00,1.00 +4.80,76.80,1.00,0.00,1.00 +9.60,81.60,1.00,0.00,1.00 +19.20,86.40,1.00,0.00,1.00 +134.40,86.40,1.00,0.00,1.00 +168.00,81.60,1.00,0.00,1.00 +172.80,76.80,1.00,0.00,1.00 +177.60,72.00,1.00,0.00,1.00 +177.60,67.20,1.00,0.00,1.00 +177.60,62.40,1.00,0.00,1.00 +177.60,57.60,1.00,0.00,1.00 +177.60,52.80,1.00,0.00,1.00 +177.60,48.00,1.00,0.00,1.00 +177.60,43.20,1.00,0.00,1.00 +177.60,38.40,1.00,0.00,1.00 +177.60,33.60,1.00,0.00,1.00 +177.60,28.80,1.00,0.00,1.00 +177.60,24.00,1.00,0.00,1.00 +177.60,19.20,1.00,0.00,1.00 +177.60,14.40,1.00,0.00,1.00 +177.60,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-177.60,-9.60,1.00,0.00,1.00 +-177.60,-14.40,1.00,0.00,1.00 +-177.60,-19.20,1.00,0.00,1.00 +-177.60,-24.00,1.00,0.00,1.00 +-177.60,-28.80,1.00,0.00,1.00 +-177.60,-33.60,1.00,0.00,1.00 +-177.60,-38.40,1.00,0.00,1.00 +-177.60,-43.20,1.00,0.00,1.00 +-177.60,-48.00,1.00,0.00,1.00 +-177.60,-52.80,1.00,0.00,1.00 +-177.60,-57.60,1.00,0.00,1.00 +-177.60,-62.40,1.00,0.00,1.00 +-177.60,-67.20,1.00,0.00,1.00 +-177.60,-72.00,1.00,0.00,1.00 +-172.80,-76.80,1.00,0.00,1.00 +-168.00,-81.60,1.00,0.00,1.00 +-134.40,-86.40,1.00,0.00,1.00 +-19.20,-86.40,1.00,0.00,1.00 +-9.60,-81.60,1.00,0.00,1.00 +-4.80,-76.80,1.00,0.00,1.00 +-4.80,-72.00,1.00,0.00,1.00 +-4.80,-67.20,1.00,0.00,1.00 +-0.00,-62.40,1.00,0.00,1.00 +-0.00,-57.60,1.00,0.00,1.00 +-0.00,-52.80,1.00,0.00,1.00 +-0.00,-48.00,1.00,0.00,1.00 +-0.00,-43.20,1.00,0.00,1.00 +-0.00,-38.40,1.00,0.00,1.00 +-0.00,-33.60,1.00,0.00,1.00 +-0.00,-28.80,1.00,0.00,1.00 +-0.00,-24.00,1.00,0.00,1.00 +-0.00,-19.20,1.00,0.00,1.00 +-0.00,-14.40,1.00,0.00,1.00 +-0.00,-9.60,1.00,0.00,1.00 +-0.00,-4.80,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +-0.00,9.60,1.00,0.00,1.00 +-0.00,14.40,1.00,0.00,1.00 +-0.00,19.20,1.00,0.00,1.00 +-0.00,24.00,1.00,0.00,1.00 +-0.00,28.80,1.00,0.00,1.00 +-0.00,33.60,1.00,0.00,1.00 +-4.80,38.40,1.00,0.00,1.00 +-4.80,43.20,1.00,0.00,1.00 +-4.80,48.00,1.00,0.00,1.00 +-4.80,52.80,1.00,0.00,1.00 +-4.80,57.60,1.00,0.00,1.00 +-4.80,62.40,1.00,0.00,1.00 +-9.60,67.20,1.00,0.00,1.00 +-9.60,72.00,1.00,0.00,1.00 +-14.40,76.80,1.00,0.00,1.00 +-24.00,81.60,1.00,0.00,1.00 +-43.20,86.40,1.00,0.00,1.00 +-110.40,86.40,1.00,0.00,1.00 +-148.80,81.60,1.00,0.00,1.00 +-163.20,76.80,1.00,0.00,1.00 +-168.00,72.00,1.00,0.00,1.00 +-172.80,67.20,1.00,0.00,1.00 +-172.80,62.40,1.00,0.00,1.00 +-172.80,57.60,1.00,0.00,1.00 +-172.80,52.80,1.00,0.00,1.00 +-177.60,48.00,1.00,0.00,1.00 +-177.60,43.20,1.00,0.00,1.00 +-177.60,38.40,1.00,0.00,1.00 +-177.60,33.60,1.00,0.00,1.00 +-177.60,28.80,1.00,0.00,1.00 +-177.60,24.00,1.00,0.00,1.00 +-177.60,19.20,1.00,0.00,1.00 +-177.60,14.40,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +177.60,-14.40,1.00,0.00,1.00 +177.60,-19.20,1.00,0.00,1.00 +177.60,-24.00,1.00,0.00,1.00 +177.60,-28.80,1.00,0.00,1.00 +177.60,-33.60,1.00,0.00,1.00 +177.60,-38.40,1.00,0.00,1.00 +177.60,-43.20,1.00,0.00,1.00 +177.60,-48.00,1.00,0.00,1.00 +172.80,-52.80,1.00,0.00,1.00 +172.80,-57.60,1.00,0.00,1.00 +172.80,-62.40,1.00,0.00,1.00 +172.80,-67.20,1.00,0.00,1.00 +168.00,-72.00,1.00,0.00,1.00 +163.20,-76.80,1.00,0.00,1.00 +148.80,-81.60,1.00,0.00,1.00 +110.40,-86.40,1.00,0.00,1.00 +43.20,-86.40,1.00,0.00,1.00 +24.00,-81.60,1.00,0.00,1.00 +14.40,-76.80,1.00,0.00,1.00 +9.60,-72.00,1.00,0.00,1.00 +9.60,-67.20,1.00,0.00,1.00 +4.80,-62.40,1.00,0.00,1.00 +4.80,-57.60,1.00,0.00,1.00 +4.80,-52.80,1.00,0.00,1.00 +4.80,-48.00,1.00,0.00,1.00 +4.80,-43.20,1.00,0.00,1.00 +4.80,-38.40,1.00,0.00,1.00 +0.00,-33.60,1.00,0.00,1.00 +0.00,-28.80,1.00,0.00,1.00 +0.00,-24.00,1.00,0.00,1.00 +0.00,-19.20,1.00,0.00,1.00 +0.00,-14.40,1.00,0.00,1.00 +0.00,-9.60,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +-0.00,9.60,1.00,0.00,1.00 +-0.00,14.40,1.00,0.00,1.00 +-4.80,19.20,1.00,0.00,1.00 +-4.80,24.00,1.00,0.00,1.00 +-4.80,28.80,1.00,0.00,1.00 +-4.80,33.60,1.00,0.00,1.00 +-4.80,38.40,1.00,0.00,1.00 +-9.60,43.20,1.00,0.00,1.00 +-9.60,48.00,1.00,0.00,1.00 +-9.60,52.80,1.00,0.00,1.00 +-14.40,57.60,1.00,0.00,1.00 +-14.40,62.40,1.00,0.00,1.00 +-19.20,67.20,1.00,0.00,1.00 +-24.00,72.00,1.00,0.00,1.00 +-33.60,72.00,1.00,0.00,1.00 +-43.20,76.80,1.00,0.00,1.00 +-67.20,81.60,1.00,0.00,1.00 +-96.00,81.60,1.00,0.00,1.00 +-124.80,81.60,1.00,0.00,1.00 +-144.00,76.80,1.00,0.00,1.00 +-153.60,72.00,1.00,0.00,1.00 +-158.40,67.20,1.00,0.00,1.00 +-163.20,62.40,1.00,0.00,1.00 +-168.00,57.60,1.00,0.00,1.00 +-168.00,52.80,1.00,0.00,1.00 +-168.00,48.00,1.00,0.00,1.00 +-172.80,43.20,1.00,0.00,1.00 +-172.80,38.40,1.00,0.00,1.00 +-172.80,33.60,1.00,0.00,1.00 +-172.80,28.80,1.00,0.00,1.00 +-177.60,24.00,1.00,0.00,1.00 +-177.60,19.20,1.00,0.00,1.00 +-177.60,14.40,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +177.60,-14.40,1.00,0.00,1.00 +177.60,-19.20,1.00,0.00,1.00 +177.60,-24.00,1.00,0.00,1.00 +172.80,-28.80,1.00,0.00,1.00 +172.80,-33.60,1.00,0.00,1.00 +172.80,-38.40,1.00,0.00,1.00 +172.80,-43.20,1.00,0.00,1.00 +168.00,-48.00,1.00,0.00,1.00 +168.00,-52.80,1.00,0.00,1.00 +168.00,-57.60,1.00,0.00,1.00 +163.20,-62.40,1.00,0.00,1.00 +158.40,-67.20,1.00,0.00,1.00 +153.60,-72.00,1.00,0.00,1.00 +144.00,-76.80,1.00,0.00,1.00 +124.80,-81.60,1.00,0.00,1.00 +96.00,-81.60,1.00,0.00,1.00 +67.20,-81.60,1.00,0.00,1.00 +43.20,-76.80,1.00,0.00,1.00 +33.60,-72.00,1.00,0.00,1.00 +24.00,-72.00,1.00,0.00,1.00 +19.20,-67.20,1.00,0.00,1.00 +14.40,-62.40,1.00,0.00,1.00 +14.40,-57.60,1.00,0.00,1.00 +9.60,-52.80,1.00,0.00,1.00 +9.60,-48.00,1.00,0.00,1.00 +9.60,-43.20,1.00,0.00,1.00 +4.80,-38.40,1.00,0.00,1.00 +4.80,-33.60,1.00,0.00,1.00 +4.80,-28.80,1.00,0.00,1.00 +4.80,-24.00,1.00,0.00,1.00 +4.80,-19.20,1.00,0.00,1.00 +0.00,-14.40,1.00,0.00,1.00 +0.00,-9.60,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +-0.00,9.60,1.00,0.00,1.00 +-4.80,14.40,1.00,0.00,1.00 +-4.80,19.20,1.00,0.00,1.00 +-4.80,24.00,1.00,0.00,1.00 +-4.80,28.80,1.00,0.00,1.00 +-9.60,33.60,1.00,0.00,1.00 +-9.60,38.40,1.00,0.00,1.00 +-14.40,43.20,1.00,0.00,1.00 +-14.40,48.00,1.00,0.00,1.00 +-14.40,52.80,1.00,0.00,1.00 +-19.20,57.60,1.00,0.00,1.00 +-24.00,57.60,1.00,0.00,1.00 +-28.80,62.40,1.00,0.00,1.00 +-33.60,67.20,1.00,0.00,1.00 +-43.20,72.00,1.00,0.00,1.00 +-57.60,72.00,1.00,0.00,1.00 +-76.80,76.80,1.00,0.00,1.00 +-96.00,76.80,1.00,0.00,1.00 +-115.20,76.80,1.00,0.00,1.00 +-129.60,72.00,1.00,0.00,1.00 +-139.20,72.00,1.00,0.00,1.00 +-148.80,67.20,1.00,0.00,1.00 +-153.60,62.40,1.00,0.00,1.00 +-158.40,57.60,1.00,0.00,1.00 +-163.20,52.80,1.00,0.00,1.00 +-163.20,48.00,1.00,0.00,1.00 +-168.00,43.20,1.00,0.00,1.00 +-168.00,38.40,1.00,0.00,1.00 +-172.80,33.60,1.00,0.00,1.00 +-172.80,28.80,1.00,0.00,1.00 +-172.80,24.00,1.00,0.00,1.00 +-172.80,19.20,1.00,0.00,1.00 +-177.60,14.40,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +177.60,-14.40,1.00,0.00,1.00 +172.80,-19.20,1.00,0.00,1.00 +172.80,-24.00,1.00,0.00,1.00 +172.80,-28.80,1.00,0.00,1.00 +172.80,-33.60,1.00,0.00,1.00 +168.00,-38.40,1.00,0.00,1.00 +168.00,-43.20,1.00,0.00,1.00 +163.20,-48.00,1.00,0.00,1.00 +163.20,-52.80,1.00,0.00,1.00 +158.40,-57.60,1.00,0.00,1.00 +153.60,-62.40,1.00,0.00,1.00 +148.80,-67.20,1.00,0.00,1.00 +139.20,-72.00,1.00,0.00,1.00 +129.60,-72.00,1.00,0.00,1.00 +115.20,-76.80,1.00,0.00,1.00 +96.00,-76.80,1.00,0.00,1.00 +76.80,-76.80,1.00,0.00,1.00 +57.60,-72.00,1.00,0.00,1.00 +43.20,-72.00,1.00,0.00,1.00 +33.60,-67.20,1.00,0.00,1.00 +28.80,-62.40,1.00,0.00,1.00 +24.00,-57.60,1.00,0.00,1.00 +19.20,-57.60,1.00,0.00,1.00 +14.40,-52.80,1.00,0.00,1.00 +14.40,-48.00,1.00,0.00,1.00 +14.40,-43.20,1.00,0.00,1.00 +9.60,-38.40,1.00,0.00,1.00 +9.60,-33.60,1.00,0.00,1.00 +4.80,-28.80,1.00,0.00,1.00 +4.80,-24.00,1.00,0.00,1.00 +4.80,-19.20,1.00,0.00,1.00 +4.80,-14.40,1.00,0.00,1.00 +0.00,-9.60,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-4.80,14.40,1.00,0.00,1.00 +-4.80,19.20,1.00,0.00,1.00 +-9.60,24.00,1.00,0.00,1.00 +-9.60,28.80,1.00,0.00,1.00 +-9.60,33.60,1.00,0.00,1.00 +-14.40,38.40,1.00,0.00,1.00 +-14.40,38.40,1.00,0.00,1.00 +-19.20,43.20,1.00,0.00,1.00 +-24.00,48.00,1.00,0.00,1.00 +-24.00,52.80,1.00,0.00,1.00 +-28.80,57.60,1.00,0.00,1.00 +-38.40,62.40,1.00,0.00,1.00 +-43.20,62.40,1.00,0.00,1.00 +-52.80,67.20,1.00,0.00,1.00 +-62.40,72.00,1.00,0.00,1.00 +-76.80,72.00,1.00,0.00,1.00 +-96.00,72.00,1.00,0.00,1.00 +-110.40,72.00,1.00,0.00,1.00 +-120.00,67.20,1.00,0.00,1.00 +-134.40,67.20,1.00,0.00,1.00 +-139.20,62.40,1.00,0.00,1.00 +-148.80,57.60,1.00,0.00,1.00 +-153.60,57.60,1.00,0.00,1.00 +-158.40,52.80,1.00,0.00,1.00 +-158.40,48.00,1.00,0.00,1.00 +-163.20,43.20,1.00,0.00,1.00 +-163.20,38.40,1.00,0.00,1.00 +-168.00,33.60,1.00,0.00,1.00 +-168.00,28.80,1.00,0.00,1.00 +-172.80,24.00,1.00,0.00,1.00 +-172.80,19.20,1.00,0.00,1.00 +-172.80,14.40,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +172.80,-14.40,1.00,0.00,1.00 +172.80,-19.20,1.00,0.00,1.00 +172.80,-24.00,1.00,0.00,1.00 +168.00,-28.80,1.00,0.00,1.00 +168.00,-33.60,1.00,0.00,1.00 +163.20,-38.40,1.00,0.00,1.00 +163.20,-43.20,1.00,0.00,1.00 +158.40,-48.00,1.00,0.00,1.00 +158.40,-52.80,1.00,0.00,1.00 +153.60,-57.60,1.00,0.00,1.00 +148.80,-57.60,1.00,0.00,1.00 +139.20,-62.40,1.00,0.00,1.00 +134.40,-67.20,1.00,0.00,1.00 +120.00,-67.20,1.00,0.00,1.00 +110.40,-72.00,1.00,0.00,1.00 +96.00,-72.00,1.00,0.00,1.00 +76.80,-72.00,1.00,0.00,1.00 +62.40,-72.00,1.00,0.00,1.00 +52.80,-67.20,1.00,0.00,1.00 +43.20,-62.40,1.00,0.00,1.00 +38.40,-62.40,1.00,0.00,1.00 +28.80,-57.60,1.00,0.00,1.00 +24.00,-52.80,1.00,0.00,1.00 +24.00,-48.00,1.00,0.00,1.00 +19.20,-43.20,1.00,0.00,1.00 +14.40,-38.40,1.00,0.00,1.00 +14.40,-38.40,1.00,0.00,1.00 +9.60,-33.60,1.00,0.00,1.00 +9.60,-28.80,1.00,0.00,1.00 +9.60,-24.00,1.00,0.00,1.00 +4.80,-19.20,1.00,0.00,1.00 +4.80,-14.40,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-4.80,14.40,1.00,0.00,1.00 +-9.60,19.20,1.00,0.00,1.00 +-9.60,24.00,1.00,0.00,1.00 +-14.40,24.00,1.00,0.00,1.00 +-14.40,28.80,1.00,0.00,1.00 +-19.20,33.60,1.00,0.00,1.00 +-19.20,38.40,1.00,0.00,1.00 +-24.00,43.20,1.00,0.00,1.00 +-28.80,48.00,1.00,0.00,1.00 +-33.60,52.80,1.00,0.00,1.00 +-38.40,52.80,1.00,0.00,1.00 +-43.20,57.60,1.00,0.00,1.00 +-48.00,62.40,1.00,0.00,1.00 +-57.60,62.40,1.00,0.00,1.00 +-67.20,67.20,1.00,0.00,1.00 +-81.60,67.20,1.00,0.00,1.00 +-91.20,67.20,1.00,0.00,1.00 +-105.60,67.20,1.00,0.00,1.00 +-115.20,67.20,1.00,0.00,1.00 +-124.80,62.40,1.00,0.00,1.00 +-134.40,57.60,1.00,0.00,1.00 +-139.20,57.60,1.00,0.00,1.00 +-144.00,52.80,1.00,0.00,1.00 +-148.80,48.00,1.00,0.00,1.00 +-153.60,43.20,1.00,0.00,1.00 +-158.40,43.20,1.00,0.00,1.00 +-163.20,38.40,1.00,0.00,1.00 +-163.20,33.60,1.00,0.00,1.00 +-168.00,28.80,1.00,0.00,1.00 +-168.00,24.00,1.00,0.00,1.00 +-172.80,19.20,1.00,0.00,1.00 +-172.80,14.40,1.00,0.00,1.00 +-177.60,9.60,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +177.60,-9.60,1.00,0.00,1.00 +172.80,-14.40,1.00,0.00,1.00 +172.80,-19.20,1.00,0.00,1.00 +168.00,-24.00,1.00,0.00,1.00 +168.00,-28.80,1.00,0.00,1.00 +163.20,-33.60,1.00,0.00,1.00 +163.20,-38.40,1.00,0.00,1.00 +158.40,-43.20,1.00,0.00,1.00 +153.60,-43.20,1.00,0.00,1.00 +148.80,-48.00,1.00,0.00,1.00 +144.00,-52.80,1.00,0.00,1.00 +139.20,-57.60,1.00,0.00,1.00 +134.40,-57.60,1.00,0.00,1.00 +124.80,-62.40,1.00,0.00,1.00 +115.20,-67.20,1.00,0.00,1.00 +105.60,-67.20,1.00,0.00,1.00 +91.20,-67.20,1.00,0.00,1.00 +81.60,-67.20,1.00,0.00,1.00 +67.20,-67.20,1.00,0.00,1.00 +57.60,-62.40,1.00,0.00,1.00 +48.00,-62.40,1.00,0.00,1.00 +43.20,-57.60,1.00,0.00,1.00 +38.40,-52.80,1.00,0.00,1.00 +33.60,-52.80,1.00,0.00,1.00 +28.80,-48.00,1.00,0.00,1.00 +24.00,-43.20,1.00,0.00,1.00 +19.20,-38.40,1.00,0.00,1.00 +19.20,-33.60,1.00,0.00,1.00 +14.40,-28.80,1.00,0.00,1.00 +14.40,-24.00,1.00,0.00,1.00 +9.60,-24.00,1.00,0.00,1.00 +9.60,-19.20,1.00,0.00,1.00 +4.80,-14.40,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-4.80,14.40,1.00,0.00,1.00 +-9.60,19.20,1.00,0.00,1.00 +-9.60,19.20,1.00,0.00,1.00 +-14.40,24.00,1.00,0.00,1.00 +-19.20,28.80,1.00,0.00,1.00 +-19.20,33.60,1.00,0.00,1.00 +-24.00,38.40,1.00,0.00,1.00 +-28.80,43.20,1.00,0.00,1.00 +-33.60,43.20,1.00,0.00,1.00 +-38.40,48.00,1.00,0.00,1.00 +-43.20,52.80,1.00,0.00,1.00 +-48.00,52.80,1.00,0.00,1.00 +-52.80,57.60,1.00,0.00,1.00 +-62.40,57.60,1.00,0.00,1.00 +-72.00,62.40,1.00,0.00,1.00 +-81.60,62.40,1.00,0.00,1.00 +-91.20,62.40,1.00,0.00,1.00 +-100.80,62.40,1.00,0.00,1.00 +-110.40,62.40,1.00,0.00,1.00 +-120.00,57.60,1.00,0.00,1.00 +-129.60,57.60,1.00,0.00,1.00 +-134.40,52.80,1.00,0.00,1.00 +-139.20,48.00,1.00,0.00,1.00 +-144.00,48.00,1.00,0.00,1.00 +-148.80,43.20,1.00,0.00,1.00 +-153.60,38.40,1.00,0.00,1.00 +-158.40,33.60,1.00,0.00,1.00 +-163.20,33.60,1.00,0.00,1.00 +-163.20,28.80,1.00,0.00,1.00 +-168.00,24.00,1.00,0.00,1.00 +-168.00,19.20,1.00,0.00,1.00 +-172.80,14.40,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +172.80,-14.40,1.00,0.00,1.00 +168.00,-19.20,1.00,0.00,1.00 +168.00,-24.00,1.00,0.00,1.00 +163.20,-28.80,1.00,0.00,1.00 +163.20,-33.60,1.00,0.00,1.00 +158.40,-33.60,1.00,0.00,1.00 +153.60,-38.40,1.00,0.00,1.00 +148.80,-43.20,1.00,0.00,1.00 +144.00,-48.00,1.00,0.00,1.00 +139.20,-48.00,1.00,0.00,1.00 +134.40,-52.80,1.00,0.00,1.00 +129.60,-57.60,1.00,0.00,1.00 +120.00,-57.60,1.00,0.00,1.00 +110.40,-62.40,1.00,0.00,1.00 +100.80,-62.40,1.00,0.00,1.00 +91.20,-62.40,1.00,0.00,1.00 +81.60,-62.40,1.00,0.00,1.00 +72.00,-62.40,1.00,0.00,1.00 +62.40,-57.60,1.00,0.00,1.00 +52.80,-57.60,1.00,0.00,1.00 +48.00,-52.80,1.00,0.00,1.00 +43.20,-52.80,1.00,0.00,1.00 +38.40,-48.00,1.00,0.00,1.00 +33.60,-43.20,1.00,0.00,1.00 +28.80,-43.20,1.00,0.00,1.00 +24.00,-38.40,1.00,0.00,1.00 +19.20,-33.60,1.00,0.00,1.00 +19.20,-28.80,1.00,0.00,1.00 +14.40,-24.00,1.00,0.00,1.00 +9.60,-19.20,1.00,0.00,1.00 +9.60,-19.20,1.00,0.00,1.00 +4.80,-14.40,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-9.60,14.40,1.00,0.00,1.00 +-9.60,14.40,1.00,0.00,1.00 +-14.40,19.20,1.00,0.00,1.00 +-14.40,24.00,1.00,0.00,1.00 +-19.20,28.80,1.00,0.00,1.00 +-24.00,33.60,1.00,0.00,1.00 +-28.80,33.60,1.00,0.00,1.00 +-28.80,38.40,1.00,0.00,1.00 +-33.60,43.20,1.00,0.00,1.00 +-38.40,43.20,1.00,0.00,1.00 +-48.00,48.00,1.00,0.00,1.00 +-52.80,52.80,1.00,0.00,1.00 +-57.60,52.80,1.00,0.00,1.00 +-67.20,57.60,1.00,0.00,1.00 +-76.80,57.60,1.00,0.00,1.00 +-81.60,57.60,1.00,0.00,1.00 +-91.20,57.60,1.00,0.00,1.00 +-100.80,57.60,1.00,0.00,1.00 +-110.40,57.60,1.00,0.00,1.00 +-115.20,52.80,1.00,0.00,1.00 +-124.80,52.80,1.00,0.00,1.00 +-129.60,48.00,1.00,0.00,1.00 +-139.20,48.00,1.00,0.00,1.00 +-144.00,43.20,1.00,0.00,1.00 +-148.80,38.40,1.00,0.00,1.00 +-153.60,38.40,1.00,0.00,1.00 +-153.60,33.60,1.00,0.00,1.00 +-158.40,28.80,1.00,0.00,1.00 +-163.20,24.00,1.00,0.00,1.00 +-163.20,24.00,1.00,0.00,1.00 +-168.00,19.20,1.00,0.00,1.00 +-172.80,14.40,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +172.80,-14.40,1.00,0.00,1.00 +168.00,-19.20,1.00,0.00,1.00 +163.20,-24.00,1.00,0.00,1.00 +163.20,-24.00,1.00,0.00,1.00 +158.40,-28.80,1.00,0.00,1.00 +153.60,-33.60,1.00,0.00,1.00 +153.60,-38.40,1.00,0.00,1.00 +148.80,-38.40,1.00,0.00,1.00 +144.00,-43.20,1.00,0.00,1.00 +139.20,-48.00,1.00,0.00,1.00 +129.60,-48.00,1.00,0.00,1.00 +124.80,-52.80,1.00,0.00,1.00 +115.20,-52.80,1.00,0.00,1.00 +110.40,-57.60,1.00,0.00,1.00 +100.80,-57.60,1.00,0.00,1.00 +91.20,-57.60,1.00,0.00,1.00 +81.60,-57.60,1.00,0.00,1.00 +76.80,-57.60,1.00,0.00,1.00 +67.20,-57.60,1.00,0.00,1.00 +57.60,-52.80,1.00,0.00,1.00 +52.80,-52.80,1.00,0.00,1.00 +48.00,-48.00,1.00,0.00,1.00 +38.40,-43.20,1.00,0.00,1.00 +33.60,-43.20,1.00,0.00,1.00 +28.80,-38.40,1.00,0.00,1.00 +28.80,-33.60,1.00,0.00,1.00 +24.00,-33.60,1.00,0.00,1.00 +19.20,-28.80,1.00,0.00,1.00 +14.40,-24.00,1.00,0.00,1.00 +14.40,-19.20,1.00,0.00,1.00 +9.60,-14.40,1.00,0.00,1.00 +9.60,-14.40,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-4.80,9.60,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +-9.60,14.40,1.00,0.00,1.00 +-14.40,19.20,1.00,0.00,1.00 +-19.20,24.00,1.00,0.00,1.00 +-24.00,24.00,1.00,0.00,1.00 +-24.00,28.80,1.00,0.00,1.00 +-28.80,33.60,1.00,0.00,1.00 +-33.60,38.40,1.00,0.00,1.00 +-38.40,38.40,1.00,0.00,1.00 +-43.20,43.20,1.00,0.00,1.00 +-48.00,43.20,1.00,0.00,1.00 +-52.80,48.00,1.00,0.00,1.00 +-62.40,48.00,1.00,0.00,1.00 +-67.20,52.80,1.00,0.00,1.00 +-76.80,52.80,1.00,0.00,1.00 +-86.40,52.80,1.00,0.00,1.00 +-91.20,52.80,1.00,0.00,1.00 +-100.80,52.80,1.00,0.00,1.00 +-105.60,52.80,1.00,0.00,1.00 +-115.20,48.00,1.00,0.00,1.00 +-120.00,48.00,1.00,0.00,1.00 +-129.60,48.00,1.00,0.00,1.00 +-134.40,43.20,1.00,0.00,1.00 +-139.20,43.20,1.00,0.00,1.00 +-144.00,38.40,1.00,0.00,1.00 +-148.80,33.60,1.00,0.00,1.00 +-153.60,33.60,1.00,0.00,1.00 +-158.40,28.80,1.00,0.00,1.00 +-158.40,24.00,1.00,0.00,1.00 +-163.20,19.20,1.00,0.00,1.00 +-168.00,19.20,1.00,0.00,1.00 +-168.00,14.40,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +177.60,-4.80,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +168.00,-14.40,1.00,0.00,1.00 +168.00,-19.20,1.00,0.00,1.00 +163.20,-19.20,1.00,0.00,1.00 +158.40,-24.00,1.00,0.00,1.00 +158.40,-28.80,1.00,0.00,1.00 +153.60,-33.60,1.00,0.00,1.00 +148.80,-33.60,1.00,0.00,1.00 +144.00,-38.40,1.00,0.00,1.00 +139.20,-43.20,1.00,0.00,1.00 +134.40,-43.20,1.00,0.00,1.00 +129.60,-48.00,1.00,0.00,1.00 +120.00,-48.00,1.00,0.00,1.00 +115.20,-48.00,1.00,0.00,1.00 +105.60,-52.80,1.00,0.00,1.00 +100.80,-52.80,1.00,0.00,1.00 +91.20,-52.80,1.00,0.00,1.00 +86.40,-52.80,1.00,0.00,1.00 +76.80,-52.80,1.00,0.00,1.00 +67.20,-52.80,1.00,0.00,1.00 +62.40,-48.00,1.00,0.00,1.00 +52.80,-48.00,1.00,0.00,1.00 +48.00,-43.20,1.00,0.00,1.00 +43.20,-43.20,1.00,0.00,1.00 +38.40,-38.40,1.00,0.00,1.00 +33.60,-38.40,1.00,0.00,1.00 +28.80,-33.60,1.00,0.00,1.00 +24.00,-28.80,1.00,0.00,1.00 +24.00,-24.00,1.00,0.00,1.00 +19.20,-24.00,1.00,0.00,1.00 +14.40,-19.20,1.00,0.00,1.00 +9.60,-14.40,1.00,0.00,1.00 +9.60,-9.60,1.00,0.00,1.00 +4.80,-9.60,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +-14.40,14.40,1.00,0.00,1.00 +-14.40,19.20,1.00,0.00,1.00 +-19.20,19.20,1.00,0.00,1.00 +-24.00,24.00,1.00,0.00,1.00 +-28.80,28.80,1.00,0.00,1.00 +-33.60,28.80,1.00,0.00,1.00 +-38.40,33.60,1.00,0.00,1.00 +-43.20,38.40,1.00,0.00,1.00 +-48.00,38.40,1.00,0.00,1.00 +-52.80,43.20,1.00,0.00,1.00 +-57.60,43.20,1.00,0.00,1.00 +-62.40,43.20,1.00,0.00,1.00 +-72.00,48.00,1.00,0.00,1.00 +-76.80,48.00,1.00,0.00,1.00 +-86.40,48.00,1.00,0.00,1.00 +-91.20,48.00,1.00,0.00,1.00 +-100.80,48.00,1.00,0.00,1.00 +-105.60,48.00,1.00,0.00,1.00 +-110.40,48.00,1.00,0.00,1.00 +-120.00,43.20,1.00,0.00,1.00 +-124.80,43.20,1.00,0.00,1.00 +-129.60,38.40,1.00,0.00,1.00 +-134.40,38.40,1.00,0.00,1.00 +-139.20,33.60,1.00,0.00,1.00 +-144.00,33.60,1.00,0.00,1.00 +-148.80,28.80,1.00,0.00,1.00 +-153.60,24.00,1.00,0.00,1.00 +-158.40,24.00,1.00,0.00,1.00 +-163.20,19.20,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +-168.00,14.40,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +168.00,-14.40,1.00,0.00,1.00 +163.20,-14.40,1.00,0.00,1.00 +163.20,-19.20,1.00,0.00,1.00 +158.40,-24.00,1.00,0.00,1.00 +153.60,-24.00,1.00,0.00,1.00 +148.80,-28.80,1.00,0.00,1.00 +144.00,-33.60,1.00,0.00,1.00 +139.20,-33.60,1.00,0.00,1.00 +134.40,-38.40,1.00,0.00,1.00 +129.60,-38.40,1.00,0.00,1.00 +124.80,-43.20,1.00,0.00,1.00 +120.00,-43.20,1.00,0.00,1.00 +110.40,-48.00,1.00,0.00,1.00 +105.60,-48.00,1.00,0.00,1.00 +100.80,-48.00,1.00,0.00,1.00 +91.20,-48.00,1.00,0.00,1.00 +86.40,-48.00,1.00,0.00,1.00 +76.80,-48.00,1.00,0.00,1.00 +72.00,-48.00,1.00,0.00,1.00 +62.40,-43.20,1.00,0.00,1.00 +57.60,-43.20,1.00,0.00,1.00 +52.80,-43.20,1.00,0.00,1.00 +48.00,-38.40,1.00,0.00,1.00 +43.20,-38.40,1.00,0.00,1.00 +38.40,-33.60,1.00,0.00,1.00 +33.60,-28.80,1.00,0.00,1.00 +28.80,-28.80,1.00,0.00,1.00 +24.00,-24.00,1.00,0.00,1.00 +19.20,-19.20,1.00,0.00,1.00 +14.40,-19.20,1.00,0.00,1.00 +14.40,-14.40,1.00,0.00,1.00 +9.60,-9.60,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +-14.40,14.40,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +-24.00,19.20,1.00,0.00,1.00 +-24.00,24.00,1.00,0.00,1.00 +-28.80,24.00,1.00,0.00,1.00 +-33.60,28.80,1.00,0.00,1.00 +-38.40,28.80,1.00,0.00,1.00 +-43.20,33.60,1.00,0.00,1.00 +-48.00,33.60,1.00,0.00,1.00 +-52.80,38.40,1.00,0.00,1.00 +-62.40,38.40,1.00,0.00,1.00 +-67.20,38.40,1.00,0.00,1.00 +-72.00,43.20,1.00,0.00,1.00 +-76.80,43.20,1.00,0.00,1.00 +-86.40,43.20,1.00,0.00,1.00 +-91.20,43.20,1.00,0.00,1.00 +-96.00,43.20,1.00,0.00,1.00 +-105.60,43.20,1.00,0.00,1.00 +-110.40,43.20,1.00,0.00,1.00 +-115.20,38.40,1.00,0.00,1.00 +-124.80,38.40,1.00,0.00,1.00 +-129.60,38.40,1.00,0.00,1.00 +-134.40,33.60,1.00,0.00,1.00 +-139.20,33.60,1.00,0.00,1.00 +-144.00,28.80,1.00,0.00,1.00 +-148.80,28.80,1.00,0.00,1.00 +-153.60,24.00,1.00,0.00,1.00 +-158.40,19.20,1.00,0.00,1.00 +-158.40,19.20,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +168.00,-9.60,1.00,0.00,1.00 +163.20,-14.40,1.00,0.00,1.00 +158.40,-19.20,1.00,0.00,1.00 +158.40,-19.20,1.00,0.00,1.00 +153.60,-24.00,1.00,0.00,1.00 +148.80,-28.80,1.00,0.00,1.00 +144.00,-28.80,1.00,0.00,1.00 +139.20,-33.60,1.00,0.00,1.00 +134.40,-33.60,1.00,0.00,1.00 +129.60,-38.40,1.00,0.00,1.00 +124.80,-38.40,1.00,0.00,1.00 +115.20,-38.40,1.00,0.00,1.00 +110.40,-43.20,1.00,0.00,1.00 +105.60,-43.20,1.00,0.00,1.00 +96.00,-43.20,1.00,0.00,1.00 +91.20,-43.20,1.00,0.00,1.00 +86.40,-43.20,1.00,0.00,1.00 +76.80,-43.20,1.00,0.00,1.00 +72.00,-43.20,1.00,0.00,1.00 +67.20,-38.40,1.00,0.00,1.00 +62.40,-38.40,1.00,0.00,1.00 +52.80,-38.40,1.00,0.00,1.00 +48.00,-33.60,1.00,0.00,1.00 +43.20,-33.60,1.00,0.00,1.00 +38.40,-28.80,1.00,0.00,1.00 +33.60,-28.80,1.00,0.00,1.00 +28.80,-24.00,1.00,0.00,1.00 +24.00,-24.00,1.00,0.00,1.00 +24.00,-19.20,1.00,0.00,1.00 +19.20,-14.40,1.00,0.00,1.00 +14.40,-14.40,1.00,0.00,1.00 +9.60,-9.60,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +-14.40,9.60,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +-24.00,19.20,1.00,0.00,1.00 +-28.80,19.20,1.00,0.00,1.00 +-33.60,24.00,1.00,0.00,1.00 +-38.40,24.00,1.00,0.00,1.00 +-43.20,28.80,1.00,0.00,1.00 +-48.00,28.80,1.00,0.00,1.00 +-52.80,33.60,1.00,0.00,1.00 +-57.60,33.60,1.00,0.00,1.00 +-62.40,33.60,1.00,0.00,1.00 +-67.20,38.40,1.00,0.00,1.00 +-72.00,38.40,1.00,0.00,1.00 +-81.60,38.40,1.00,0.00,1.00 +-86.40,38.40,1.00,0.00,1.00 +-91.20,38.40,1.00,0.00,1.00 +-96.00,38.40,1.00,0.00,1.00 +-105.60,38.40,1.00,0.00,1.00 +-110.40,38.40,1.00,0.00,1.00 +-115.20,33.60,1.00,0.00,1.00 +-120.00,33.60,1.00,0.00,1.00 +-124.80,33.60,1.00,0.00,1.00 +-129.60,28.80,1.00,0.00,1.00 +-134.40,28.80,1.00,0.00,1.00 +-139.20,24.00,1.00,0.00,1.00 +-144.00,24.00,1.00,0.00,1.00 +-148.80,19.20,1.00,0.00,1.00 +-153.60,19.20,1.00,0.00,1.00 +-158.40,14.40,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +172.80,-9.60,1.00,0.00,1.00 +168.00,-9.60,1.00,0.00,1.00 +163.20,-14.40,1.00,0.00,1.00 +158.40,-14.40,1.00,0.00,1.00 +153.60,-19.20,1.00,0.00,1.00 +148.80,-19.20,1.00,0.00,1.00 +144.00,-24.00,1.00,0.00,1.00 +139.20,-24.00,1.00,0.00,1.00 +134.40,-28.80,1.00,0.00,1.00 +129.60,-28.80,1.00,0.00,1.00 +124.80,-33.60,1.00,0.00,1.00 +120.00,-33.60,1.00,0.00,1.00 +115.20,-33.60,1.00,0.00,1.00 +110.40,-38.40,1.00,0.00,1.00 +105.60,-38.40,1.00,0.00,1.00 +96.00,-38.40,1.00,0.00,1.00 +91.20,-38.40,1.00,0.00,1.00 +86.40,-38.40,1.00,0.00,1.00 +81.60,-38.40,1.00,0.00,1.00 +72.00,-38.40,1.00,0.00,1.00 +67.20,-38.40,1.00,0.00,1.00 +62.40,-33.60,1.00,0.00,1.00 +57.60,-33.60,1.00,0.00,1.00 +52.80,-33.60,1.00,0.00,1.00 +48.00,-28.80,1.00,0.00,1.00 +43.20,-28.80,1.00,0.00,1.00 +38.40,-24.00,1.00,0.00,1.00 +33.60,-24.00,1.00,0.00,1.00 +28.80,-19.20,1.00,0.00,1.00 +24.00,-19.20,1.00,0.00,1.00 +19.20,-14.40,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +9.60,-9.60,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-14.40,9.60,1.00,0.00,1.00 +-14.40,9.60,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +-24.00,14.40,1.00,0.00,1.00 +-28.80,19.20,1.00,0.00,1.00 +-33.60,19.20,1.00,0.00,1.00 +-38.40,24.00,1.00,0.00,1.00 +-43.20,24.00,1.00,0.00,1.00 +-48.00,24.00,1.00,0.00,1.00 +-52.80,28.80,1.00,0.00,1.00 +-57.60,28.80,1.00,0.00,1.00 +-62.40,28.80,1.00,0.00,1.00 +-67.20,33.60,1.00,0.00,1.00 +-72.00,33.60,1.00,0.00,1.00 +-81.60,33.60,1.00,0.00,1.00 +-86.40,33.60,1.00,0.00,1.00 +-91.20,33.60,1.00,0.00,1.00 +-96.00,33.60,1.00,0.00,1.00 +-100.80,33.60,1.00,0.00,1.00 +-110.40,33.60,1.00,0.00,1.00 +-115.20,33.60,1.00,0.00,1.00 +-120.00,28.80,1.00,0.00,1.00 +-124.80,28.80,1.00,0.00,1.00 +-129.60,28.80,1.00,0.00,1.00 +-134.40,24.00,1.00,0.00,1.00 +-139.20,24.00,1.00,0.00,1.00 +-144.00,19.20,1.00,0.00,1.00 +-148.80,19.20,1.00,0.00,1.00 +-153.60,14.40,1.00,0.00,1.00 +-158.40,14.40,1.00,0.00,1.00 +-163.20,9.60,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +168.00,-9.60,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +158.40,-14.40,1.00,0.00,1.00 +153.60,-14.40,1.00,0.00,1.00 +148.80,-19.20,1.00,0.00,1.00 +144.00,-19.20,1.00,0.00,1.00 +139.20,-24.00,1.00,0.00,1.00 +134.40,-24.00,1.00,0.00,1.00 +129.60,-28.80,1.00,0.00,1.00 +124.80,-28.80,1.00,0.00,1.00 +120.00,-28.80,1.00,0.00,1.00 +115.20,-33.60,1.00,0.00,1.00 +110.40,-33.60,1.00,0.00,1.00 +100.80,-33.60,1.00,0.00,1.00 +96.00,-33.60,1.00,0.00,1.00 +91.20,-33.60,1.00,0.00,1.00 +86.40,-33.60,1.00,0.00,1.00 +81.60,-33.60,1.00,0.00,1.00 +72.00,-33.60,1.00,0.00,1.00 +67.20,-33.60,1.00,0.00,1.00 +62.40,-28.80,1.00,0.00,1.00 +57.60,-28.80,1.00,0.00,1.00 +52.80,-28.80,1.00,0.00,1.00 +48.00,-24.00,1.00,0.00,1.00 +43.20,-24.00,1.00,0.00,1.00 +38.40,-24.00,1.00,0.00,1.00 +33.60,-19.20,1.00,0.00,1.00 +28.80,-19.20,1.00,0.00,1.00 +24.00,-14.40,1.00,0.00,1.00 +19.20,-14.40,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +-19.20,9.60,1.00,0.00,1.00 +-19.20,9.60,1.00,0.00,1.00 +-24.00,14.40,1.00,0.00,1.00 +-28.80,14.40,1.00,0.00,1.00 +-33.60,19.20,1.00,0.00,1.00 +-38.40,19.20,1.00,0.00,1.00 +-43.20,19.20,1.00,0.00,1.00 +-48.00,24.00,1.00,0.00,1.00 +-52.80,24.00,1.00,0.00,1.00 +-57.60,24.00,1.00,0.00,1.00 +-62.40,24.00,1.00,0.00,1.00 +-72.00,28.80,1.00,0.00,1.00 +-76.80,28.80,1.00,0.00,1.00 +-81.60,28.80,1.00,0.00,1.00 +-86.40,28.80,1.00,0.00,1.00 +-91.20,28.80,1.00,0.00,1.00 +-96.00,28.80,1.00,0.00,1.00 +-100.80,28.80,1.00,0.00,1.00 +-105.60,28.80,1.00,0.00,1.00 +-115.20,28.80,1.00,0.00,1.00 +-120.00,24.00,1.00,0.00,1.00 +-124.80,24.00,1.00,0.00,1.00 +-129.60,24.00,1.00,0.00,1.00 +-134.40,24.00,1.00,0.00,1.00 +-139.20,19.20,1.00,0.00,1.00 +-144.00,19.20,1.00,0.00,1.00 +-148.80,14.40,1.00,0.00,1.00 +-153.60,14.40,1.00,0.00,1.00 +-158.40,14.40,1.00,0.00,1.00 +-163.20,9.60,1.00,0.00,1.00 +-163.20,9.60,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +158.40,-14.40,1.00,0.00,1.00 +153.60,-14.40,1.00,0.00,1.00 +148.80,-14.40,1.00,0.00,1.00 +144.00,-19.20,1.00,0.00,1.00 +139.20,-19.20,1.00,0.00,1.00 +134.40,-24.00,1.00,0.00,1.00 +129.60,-24.00,1.00,0.00,1.00 +124.80,-24.00,1.00,0.00,1.00 +120.00,-24.00,1.00,0.00,1.00 +115.20,-28.80,1.00,0.00,1.00 +105.60,-28.80,1.00,0.00,1.00 +100.80,-28.80,1.00,0.00,1.00 +96.00,-28.80,1.00,0.00,1.00 +91.20,-28.80,1.00,0.00,1.00 +86.40,-28.80,1.00,0.00,1.00 +81.60,-28.80,1.00,0.00,1.00 +76.80,-28.80,1.00,0.00,1.00 +72.00,-28.80,1.00,0.00,1.00 +62.40,-24.00,1.00,0.00,1.00 +57.60,-24.00,1.00,0.00,1.00 +52.80,-24.00,1.00,0.00,1.00 +48.00,-24.00,1.00,0.00,1.00 +43.20,-19.20,1.00,0.00,1.00 +38.40,-19.20,1.00,0.00,1.00 +33.60,-19.20,1.00,0.00,1.00 +28.80,-14.40,1.00,0.00,1.00 +24.00,-14.40,1.00,0.00,1.00 +19.20,-9.60,1.00,0.00,1.00 +19.20,-9.60,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +-19.20,9.60,1.00,0.00,1.00 +-24.00,9.60,1.00,0.00,1.00 +-28.80,9.60,1.00,0.00,1.00 +-33.60,14.40,1.00,0.00,1.00 +-33.60,14.40,1.00,0.00,1.00 +-38.40,14.40,1.00,0.00,1.00 +-43.20,19.20,1.00,0.00,1.00 +-48.00,19.20,1.00,0.00,1.00 +-57.60,19.20,1.00,0.00,1.00 +-62.40,19.20,1.00,0.00,1.00 +-67.20,24.00,1.00,0.00,1.00 +-72.00,24.00,1.00,0.00,1.00 +-76.80,24.00,1.00,0.00,1.00 +-81.60,24.00,1.00,0.00,1.00 +-86.40,24.00,1.00,0.00,1.00 +-91.20,24.00,1.00,0.00,1.00 +-96.00,24.00,1.00,0.00,1.00 +-100.80,24.00,1.00,0.00,1.00 +-105.60,24.00,1.00,0.00,1.00 +-110.40,24.00,1.00,0.00,1.00 +-115.20,19.20,1.00,0.00,1.00 +-120.00,19.20,1.00,0.00,1.00 +-129.60,19.20,1.00,0.00,1.00 +-134.40,19.20,1.00,0.00,1.00 +-139.20,19.20,1.00,0.00,1.00 +-144.00,14.40,1.00,0.00,1.00 +-148.80,14.40,1.00,0.00,1.00 +-148.80,14.40,1.00,0.00,1.00 +-153.60,9.60,1.00,0.00,1.00 +-158.40,9.60,1.00,0.00,1.00 +-163.20,4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-172.80,4.80,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +158.40,-9.60,1.00,0.00,1.00 +153.60,-9.60,1.00,0.00,1.00 +148.80,-14.40,1.00,0.00,1.00 +148.80,-14.40,1.00,0.00,1.00 +144.00,-14.40,1.00,0.00,1.00 +139.20,-19.20,1.00,0.00,1.00 +134.40,-19.20,1.00,0.00,1.00 +129.60,-19.20,1.00,0.00,1.00 +120.00,-19.20,1.00,0.00,1.00 +115.20,-19.20,1.00,0.00,1.00 +110.40,-24.00,1.00,0.00,1.00 +105.60,-24.00,1.00,0.00,1.00 +100.80,-24.00,1.00,0.00,1.00 +96.00,-24.00,1.00,0.00,1.00 +91.20,-24.00,1.00,0.00,1.00 +86.40,-24.00,1.00,0.00,1.00 +81.60,-24.00,1.00,0.00,1.00 +76.80,-24.00,1.00,0.00,1.00 +72.00,-24.00,1.00,0.00,1.00 +67.20,-24.00,1.00,0.00,1.00 +62.40,-19.20,1.00,0.00,1.00 +57.60,-19.20,1.00,0.00,1.00 +48.00,-19.20,1.00,0.00,1.00 +43.20,-19.20,1.00,0.00,1.00 +38.40,-14.40,1.00,0.00,1.00 +33.60,-14.40,1.00,0.00,1.00 +33.60,-14.40,1.00,0.00,1.00 +28.80,-9.60,1.00,0.00,1.00 +24.00,-9.60,1.00,0.00,1.00 +19.20,-9.60,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +-19.20,4.80,1.00,0.00,1.00 +-24.00,9.60,1.00,0.00,1.00 +-28.80,9.60,1.00,0.00,1.00 +-33.60,9.60,1.00,0.00,1.00 +-38.40,9.60,1.00,0.00,1.00 +-43.20,14.40,1.00,0.00,1.00 +-48.00,14.40,1.00,0.00,1.00 +-52.80,14.40,1.00,0.00,1.00 +-57.60,14.40,1.00,0.00,1.00 +-62.40,19.20,1.00,0.00,1.00 +-67.20,19.20,1.00,0.00,1.00 +-72.00,19.20,1.00,0.00,1.00 +-76.80,19.20,1.00,0.00,1.00 +-81.60,19.20,1.00,0.00,1.00 +-86.40,19.20,1.00,0.00,1.00 +-91.20,19.20,1.00,0.00,1.00 +-96.00,19.20,1.00,0.00,1.00 +-100.80,19.20,1.00,0.00,1.00 +-105.60,19.20,1.00,0.00,1.00 +-110.40,19.20,1.00,0.00,1.00 +-115.20,19.20,1.00,0.00,1.00 +-120.00,14.40,1.00,0.00,1.00 +-124.80,14.40,1.00,0.00,1.00 +-129.60,14.40,1.00,0.00,1.00 +-134.40,14.40,1.00,0.00,1.00 +-139.20,14.40,1.00,0.00,1.00 +-144.00,9.60,1.00,0.00,1.00 +-148.80,9.60,1.00,0.00,1.00 +-153.60,9.60,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +-163.20,4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +158.40,-4.80,1.00,0.00,1.00 +153.60,-9.60,1.00,0.00,1.00 +148.80,-9.60,1.00,0.00,1.00 +144.00,-9.60,1.00,0.00,1.00 +139.20,-14.40,1.00,0.00,1.00 +134.40,-14.40,1.00,0.00,1.00 +129.60,-14.40,1.00,0.00,1.00 +124.80,-14.40,1.00,0.00,1.00 +120.00,-14.40,1.00,0.00,1.00 +115.20,-19.20,1.00,0.00,1.00 +110.40,-19.20,1.00,0.00,1.00 +105.60,-19.20,1.00,0.00,1.00 +100.80,-19.20,1.00,0.00,1.00 +96.00,-19.20,1.00,0.00,1.00 +91.20,-19.20,1.00,0.00,1.00 +86.40,-19.20,1.00,0.00,1.00 +81.60,-19.20,1.00,0.00,1.00 +76.80,-19.20,1.00,0.00,1.00 +72.00,-19.20,1.00,0.00,1.00 +67.20,-19.20,1.00,0.00,1.00 +62.40,-19.20,1.00,0.00,1.00 +57.60,-14.40,1.00,0.00,1.00 +52.80,-14.40,1.00,0.00,1.00 +48.00,-14.40,1.00,0.00,1.00 +43.20,-14.40,1.00,0.00,1.00 +38.40,-9.60,1.00,0.00,1.00 +33.60,-9.60,1.00,0.00,1.00 +28.80,-9.60,1.00,0.00,1.00 +24.00,-9.60,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +-19.20,4.80,1.00,0.00,1.00 +-24.00,4.80,1.00,0.00,1.00 +-28.80,4.80,1.00,0.00,1.00 +-33.60,9.60,1.00,0.00,1.00 +-38.40,9.60,1.00,0.00,1.00 +-43.20,9.60,1.00,0.00,1.00 +-48.00,9.60,1.00,0.00,1.00 +-52.80,9.60,1.00,0.00,1.00 +-57.60,14.40,1.00,0.00,1.00 +-62.40,14.40,1.00,0.00,1.00 +-67.20,14.40,1.00,0.00,1.00 +-72.00,14.40,1.00,0.00,1.00 +-76.80,14.40,1.00,0.00,1.00 +-81.60,14.40,1.00,0.00,1.00 +-86.40,14.40,1.00,0.00,1.00 +-91.20,14.40,1.00,0.00,1.00 +-96.00,14.40,1.00,0.00,1.00 +-100.80,14.40,1.00,0.00,1.00 +-105.60,14.40,1.00,0.00,1.00 +-110.40,14.40,1.00,0.00,1.00 +-115.20,14.40,1.00,0.00,1.00 +-120.00,14.40,1.00,0.00,1.00 +-124.80,9.60,1.00,0.00,1.00 +-129.60,9.60,1.00,0.00,1.00 +-134.40,9.60,1.00,0.00,1.00 +-139.20,9.60,1.00,0.00,1.00 +-144.00,9.60,1.00,0.00,1.00 +-148.80,9.60,1.00,0.00,1.00 +-153.60,4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +-163.20,4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +168.00,-4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +158.40,-4.80,1.00,0.00,1.00 +153.60,-4.80,1.00,0.00,1.00 +148.80,-9.60,1.00,0.00,1.00 +144.00,-9.60,1.00,0.00,1.00 +139.20,-9.60,1.00,0.00,1.00 +134.40,-9.60,1.00,0.00,1.00 +129.60,-9.60,1.00,0.00,1.00 +124.80,-9.60,1.00,0.00,1.00 +120.00,-14.40,1.00,0.00,1.00 +115.20,-14.40,1.00,0.00,1.00 +110.40,-14.40,1.00,0.00,1.00 +105.60,-14.40,1.00,0.00,1.00 +100.80,-14.40,1.00,0.00,1.00 +96.00,-14.40,1.00,0.00,1.00 +91.20,-14.40,1.00,0.00,1.00 +86.40,-14.40,1.00,0.00,1.00 +81.60,-14.40,1.00,0.00,1.00 +76.80,-14.40,1.00,0.00,1.00 +72.00,-14.40,1.00,0.00,1.00 +67.20,-14.40,1.00,0.00,1.00 +62.40,-14.40,1.00,0.00,1.00 +57.60,-14.40,1.00,0.00,1.00 +52.80,-9.60,1.00,0.00,1.00 +48.00,-9.60,1.00,0.00,1.00 +43.20,-9.60,1.00,0.00,1.00 +38.40,-9.60,1.00,0.00,1.00 +33.60,-9.60,1.00,0.00,1.00 +28.80,-4.80,1.00,0.00,1.00 +24.00,-4.80,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +-14.40,0.00,1.00,0.00,1.00 +-19.20,4.80,1.00,0.00,1.00 +-24.00,4.80,1.00,0.00,1.00 +-28.80,4.80,1.00,0.00,1.00 +-33.60,4.80,1.00,0.00,1.00 +-38.40,4.80,1.00,0.00,1.00 +-43.20,4.80,1.00,0.00,1.00 +-48.00,4.80,1.00,0.00,1.00 +-52.80,9.60,1.00,0.00,1.00 +-57.60,9.60,1.00,0.00,1.00 +-62.40,9.60,1.00,0.00,1.00 +-67.20,9.60,1.00,0.00,1.00 +-72.00,9.60,1.00,0.00,1.00 +-76.80,9.60,1.00,0.00,1.00 +-81.60,9.60,1.00,0.00,1.00 +-86.40,9.60,1.00,0.00,1.00 +-91.20,9.60,1.00,0.00,1.00 +-96.00,9.60,1.00,0.00,1.00 +-100.80,9.60,1.00,0.00,1.00 +-105.60,9.60,1.00,0.00,1.00 +-110.40,9.60,1.00,0.00,1.00 +-115.20,9.60,1.00,0.00,1.00 +-120.00,9.60,1.00,0.00,1.00 +-124.80,9.60,1.00,0.00,1.00 +-129.60,9.60,1.00,0.00,1.00 +-134.40,4.80,1.00,0.00,1.00 +-139.20,4.80,1.00,0.00,1.00 +-144.00,4.80,1.00,0.00,1.00 +-148.80,4.80,1.00,0.00,1.00 +-153.60,4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +-163.20,4.80,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +168.00,-0.00,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +158.40,-4.80,1.00,0.00,1.00 +153.60,-4.80,1.00,0.00,1.00 +148.80,-4.80,1.00,0.00,1.00 +144.00,-4.80,1.00,0.00,1.00 +139.20,-4.80,1.00,0.00,1.00 +134.40,-4.80,1.00,0.00,1.00 +129.60,-9.60,1.00,0.00,1.00 +124.80,-9.60,1.00,0.00,1.00 +120.00,-9.60,1.00,0.00,1.00 +115.20,-9.60,1.00,0.00,1.00 +110.40,-9.60,1.00,0.00,1.00 +105.60,-9.60,1.00,0.00,1.00 +100.80,-9.60,1.00,0.00,1.00 +96.00,-9.60,1.00,0.00,1.00 +91.20,-9.60,1.00,0.00,1.00 +86.40,-9.60,1.00,0.00,1.00 +81.60,-9.60,1.00,0.00,1.00 +76.80,-9.60,1.00,0.00,1.00 +72.00,-9.60,1.00,0.00,1.00 +67.20,-9.60,1.00,0.00,1.00 +62.40,-9.60,1.00,0.00,1.00 +57.60,-9.60,1.00,0.00,1.00 +52.80,-9.60,1.00,0.00,1.00 +48.00,-4.80,1.00,0.00,1.00 +43.20,-4.80,1.00,0.00,1.00 +38.40,-4.80,1.00,0.00,1.00 +33.60,-4.80,1.00,0.00,1.00 +28.80,-4.80,1.00,0.00,1.00 +24.00,-4.80,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +14.40,-0.00,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +-14.40,0.00,1.00,0.00,1.00 +-19.20,0.00,1.00,0.00,1.00 +-24.00,0.00,1.00,0.00,1.00 +-28.80,0.00,1.00,0.00,1.00 +-33.60,4.80,1.00,0.00,1.00 +-38.40,4.80,1.00,0.00,1.00 +-43.20,4.80,1.00,0.00,1.00 +-48.00,4.80,1.00,0.00,1.00 +-52.80,4.80,1.00,0.00,1.00 +-57.60,4.80,1.00,0.00,1.00 +-62.40,4.80,1.00,0.00,1.00 +-67.20,4.80,1.00,0.00,1.00 +-72.00,4.80,1.00,0.00,1.00 +-76.80,4.80,1.00,0.00,1.00 +-81.60,4.80,1.00,0.00,1.00 +-86.40,4.80,1.00,0.00,1.00 +-91.20,4.80,1.00,0.00,1.00 +-96.00,4.80,1.00,0.00,1.00 +-100.80,4.80,1.00,0.00,1.00 +-105.60,4.80,1.00,0.00,1.00 +-110.40,4.80,1.00,0.00,1.00 +-115.20,4.80,1.00,0.00,1.00 +-120.00,4.80,1.00,0.00,1.00 +-124.80,4.80,1.00,0.00,1.00 +-129.60,4.80,1.00,0.00,1.00 +-134.40,4.80,1.00,0.00,1.00 +-139.20,4.80,1.00,0.00,1.00 +-144.00,4.80,1.00,0.00,1.00 +-148.80,4.80,1.00,0.00,1.00 +-153.60,0.00,1.00,0.00,1.00 +-158.40,0.00,1.00,0.00,1.00 +-163.20,0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +168.00,-0.00,1.00,0.00,1.00 +163.20,-0.00,1.00,0.00,1.00 +158.40,-0.00,1.00,0.00,1.00 +153.60,-0.00,1.00,0.00,1.00 +148.80,-4.80,1.00,0.00,1.00 +144.00,-4.80,1.00,0.00,1.00 +139.20,-4.80,1.00,0.00,1.00 +134.40,-4.80,1.00,0.00,1.00 +129.60,-4.80,1.00,0.00,1.00 +124.80,-4.80,1.00,0.00,1.00 +120.00,-4.80,1.00,0.00,1.00 +115.20,-4.80,1.00,0.00,1.00 +110.40,-4.80,1.00,0.00,1.00 +105.60,-4.80,1.00,0.00,1.00 +100.80,-4.80,1.00,0.00,1.00 +96.00,-4.80,1.00,0.00,1.00 +91.20,-4.80,1.00,0.00,1.00 +86.40,-4.80,1.00,0.00,1.00 +81.60,-4.80,1.00,0.00,1.00 +76.80,-4.80,1.00,0.00,1.00 +72.00,-4.80,1.00,0.00,1.00 +67.20,-4.80,1.00,0.00,1.00 +62.40,-4.80,1.00,0.00,1.00 +57.60,-4.80,1.00,0.00,1.00 +52.80,-4.80,1.00,0.00,1.00 +48.00,-4.80,1.00,0.00,1.00 +43.20,-4.80,1.00,0.00,1.00 +38.40,-4.80,1.00,0.00,1.00 +33.60,-4.80,1.00,0.00,1.00 +28.80,-0.00,1.00,0.00,1.00 +24.00,-0.00,1.00,0.00,1.00 +19.20,-0.00,1.00,0.00,1.00 +14.40,-0.00,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +-14.40,0.00,1.00,0.00,1.00 +-19.20,0.00,1.00,0.00,1.00 +-24.00,0.00,1.00,0.00,1.00 +-28.80,0.00,1.00,0.00,1.00 +-33.60,0.00,1.00,0.00,1.00 +-38.40,0.00,1.00,0.00,1.00 +-43.20,0.00,1.00,0.00,1.00 +-48.00,0.00,1.00,0.00,1.00 +-52.80,0.00,1.00,0.00,1.00 +-57.60,0.00,1.00,0.00,1.00 +-62.40,0.00,1.00,0.00,1.00 +-67.20,0.00,1.00,0.00,1.00 +-72.00,0.00,1.00,0.00,1.00 +-76.80,0.00,1.00,0.00,1.00 +-81.60,0.00,1.00,0.00,1.00 +-86.40,0.00,1.00,0.00,1.00 +-91.20,0.00,1.00,0.00,1.00 +-96.00,0.00,1.00,0.00,1.00 +-100.80,0.00,1.00,0.00,1.00 +-105.60,0.00,1.00,0.00,1.00 +-110.40,0.00,1.00,0.00,1.00 +-115.20,0.00,1.00,0.00,1.00 +-120.00,0.00,1.00,0.00,1.00 +-124.80,0.00,1.00,0.00,1.00 +-129.60,0.00,1.00,0.00,1.00 +-134.40,0.00,1.00,0.00,1.00 +-139.20,0.00,1.00,0.00,1.00 +-144.00,0.00,1.00,0.00,1.00 +-148.80,0.00,1.00,0.00,1.00 +-153.60,0.00,1.00,0.00,1.00 +-158.40,0.00,1.00,0.00,1.00 +-163.20,0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +168.00,0.00,1.00,0.00,1.00 +163.20,0.00,1.00,0.00,1.00 +158.40,0.00,1.00,0.00,1.00 +153.60,0.00,1.00,0.00,1.00 +148.80,0.00,1.00,0.00,1.00 +144.00,0.00,1.00,0.00,1.00 +139.20,0.00,1.00,0.00,1.00 +134.40,0.00,1.00,0.00,1.00 +129.60,0.00,1.00,0.00,1.00 +124.80,0.00,1.00,0.00,1.00 +120.00,0.00,1.00,0.00,1.00 +115.20,0.00,1.00,0.00,1.00 +110.40,0.00,1.00,0.00,1.00 +105.60,0.00,1.00,0.00,1.00 +100.80,0.00,1.00,0.00,1.00 +96.00,0.00,1.00,0.00,1.00 +91.20,0.00,1.00,0.00,1.00 +86.40,0.00,1.00,0.00,1.00 +81.60,0.00,1.00,0.00,1.00 +76.80,0.00,1.00,0.00,1.00 +72.00,0.00,1.00,0.00,1.00 +67.20,0.00,1.00,0.00,1.00 +62.40,0.00,1.00,0.00,1.00 +57.60,0.00,1.00,0.00,1.00 +52.80,0.00,1.00,0.00,1.00 +48.00,0.00,1.00,0.00,1.00 +43.20,0.00,1.00,0.00,1.00 +38.40,0.00,1.00,0.00,1.00 +33.60,0.00,1.00,0.00,1.00 +28.80,0.00,1.00,0.00,1.00 +24.00,0.00,1.00,0.00,1.00 +19.20,0.00,1.00,0.00,1.00 +14.40,0.00,1.00,0.00,1.00 +9.60,0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 diff --git a/scripts/testv/stvISM3.csv b/scripts/testv/stvISM3.csv index e69de29bb2..d2474d78fd 100644 --- a/scripts/testv/stvISM3.csv +++ b/scripts/testv/stvISM3.csv @@ -0,0 +1,1500 @@ +0.00,0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +-168.00,-9.60,1.00,0.00,1.00 +14.40,14.40,1.00,0.00,1.00 +-163.20,-14.40,1.00,0.00,1.00 +19.20,19.20,1.00,0.00,1.00 +-153.60,-24.00,1.00,0.00,1.00 +28.80,24.00,1.00,0.00,1.00 +-148.80,-28.80,1.00,0.00,1.00 +38.40,33.60,1.00,0.00,1.00 +-139.20,-33.60,1.00,0.00,1.00 +48.00,38.40,1.00,0.00,1.00 +-124.80,-38.40,1.00,0.00,1.00 +57.60,38.40,1.00,0.00,1.00 +-115.20,-43.20,1.00,0.00,1.00 +72.00,43.20,1.00,0.00,1.00 +-100.80,-43.20,1.00,0.00,1.00 +86.40,43.20,1.00,0.00,1.00 +-86.40,-43.20,1.00,0.00,1.00 +100.80,43.20,1.00,0.00,1.00 +-76.80,-43.20,1.00,0.00,1.00 +110.40,43.20,1.00,0.00,1.00 +-62.40,-43.20,1.00,0.00,1.00 +124.80,38.40,1.00,0.00,1.00 +-52.80,-38.40,1.00,0.00,1.00 +134.40,33.60,1.00,0.00,1.00 +-38.40,-33.60,1.00,0.00,1.00 +144.00,28.80,1.00,0.00,1.00 +-33.60,-28.80,1.00,0.00,1.00 +153.60,24.00,1.00,0.00,1.00 +-24.00,-19.20,1.00,0.00,1.00 +158.40,19.20,1.00,0.00,1.00 +-14.40,-14.40,1.00,0.00,1.00 +168.00,9.60,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +-172.80,-9.60,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +-163.20,-14.40,1.00,0.00,1.00 +19.20,19.20,1.00,0.00,1.00 +-158.40,-19.20,1.00,0.00,1.00 +28.80,24.00,1.00,0.00,1.00 +-148.80,-28.80,1.00,0.00,1.00 +33.60,28.80,1.00,0.00,1.00 +-139.20,-33.60,1.00,0.00,1.00 +43.20,33.60,1.00,0.00,1.00 +-129.60,-38.40,1.00,0.00,1.00 +57.60,38.40,1.00,0.00,1.00 +-120.00,-43.20,1.00,0.00,1.00 +67.20,43.20,1.00,0.00,1.00 +-105.60,-43.20,1.00,0.00,1.00 +81.60,43.20,1.00,0.00,1.00 +-91.20,-43.20,1.00,0.00,1.00 +96.00,43.20,1.00,0.00,1.00 +-76.80,-43.20,1.00,0.00,1.00 +110.40,43.20,1.00,0.00,1.00 +-67.20,-43.20,1.00,0.00,1.00 +120.00,38.40,1.00,0.00,1.00 +-52.80,-38.40,1.00,0.00,1.00 +129.60,38.40,1.00,0.00,1.00 +-43.20,-33.60,1.00,0.00,1.00 +144.00,33.60,1.00,0.00,1.00 +-33.60,-28.80,1.00,0.00,1.00 +148.80,24.00,1.00,0.00,1.00 +-24.00,-24.00,1.00,0.00,1.00 +158.40,19.20,1.00,0.00,1.00 +-19.20,-14.40,1.00,0.00,1.00 +168.00,14.40,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +-168.00,-9.60,1.00,0.00,1.00 +14.40,14.40,1.00,0.00,1.00 +-163.20,-14.40,1.00,0.00,1.00 +24.00,19.20,1.00,0.00,1.00 +-153.60,-19.20,1.00,0.00,1.00 +28.80,24.00,1.00,0.00,1.00 +-144.00,-24.00,1.00,0.00,1.00 +38.40,28.80,1.00,0.00,1.00 +-134.40,-28.80,1.00,0.00,1.00 +48.00,33.60,1.00,0.00,1.00 +-124.80,-33.60,1.00,0.00,1.00 +62.40,38.40,1.00,0.00,1.00 +-115.20,-38.40,1.00,0.00,1.00 +72.00,38.40,1.00,0.00,1.00 +-100.80,-38.40,1.00,0.00,1.00 +86.40,38.40,1.00,0.00,1.00 +-86.40,-38.40,1.00,0.00,1.00 +96.00,38.40,1.00,0.00,1.00 +-76.80,-38.40,1.00,0.00,1.00 +110.40,38.40,1.00,0.00,1.00 +-62.40,-38.40,1.00,0.00,1.00 +120.00,33.60,1.00,0.00,1.00 +-52.80,-33.60,1.00,0.00,1.00 +134.40,33.60,1.00,0.00,1.00 +-43.20,-28.80,1.00,0.00,1.00 +144.00,28.80,1.00,0.00,1.00 +-33.60,-24.00,1.00,0.00,1.00 +148.80,24.00,1.00,0.00,1.00 +-24.00,-19.20,1.00,0.00,1.00 +158.40,14.40,1.00,0.00,1.00 +-19.20,-14.40,1.00,0.00,1.00 +168.00,9.60,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +-172.80,-9.60,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +-163.20,-14.40,1.00,0.00,1.00 +19.20,14.40,1.00,0.00,1.00 +-153.60,-19.20,1.00,0.00,1.00 +28.80,24.00,1.00,0.00,1.00 +-148.80,-24.00,1.00,0.00,1.00 +38.40,28.80,1.00,0.00,1.00 +-139.20,-28.80,1.00,0.00,1.00 +48.00,33.60,1.00,0.00,1.00 +-124.80,-33.60,1.00,0.00,1.00 +57.60,33.60,1.00,0.00,1.00 +-115.20,-38.40,1.00,0.00,1.00 +72.00,38.40,1.00,0.00,1.00 +-105.60,-38.40,1.00,0.00,1.00 +81.60,38.40,1.00,0.00,1.00 +-91.20,-38.40,1.00,0.00,1.00 +96.00,38.40,1.00,0.00,1.00 +-76.80,-38.40,1.00,0.00,1.00 +105.60,38.40,1.00,0.00,1.00 +-67.20,-38.40,1.00,0.00,1.00 +120.00,38.40,1.00,0.00,1.00 +-57.60,-33.60,1.00,0.00,1.00 +129.60,33.60,1.00,0.00,1.00 +-43.20,-28.80,1.00,0.00,1.00 +139.20,28.80,1.00,0.00,1.00 +-33.60,-24.00,1.00,0.00,1.00 +148.80,24.00,1.00,0.00,1.00 +-28.80,-19.20,1.00,0.00,1.00 +158.40,19.20,1.00,0.00,1.00 +-19.20,-14.40,1.00,0.00,1.00 +163.20,14.40,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +-168.00,-9.60,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +-158.40,-14.40,1.00,0.00,1.00 +24.00,14.40,1.00,0.00,1.00 +-153.60,-19.20,1.00,0.00,1.00 +33.60,19.20,1.00,0.00,1.00 +-144.00,-24.00,1.00,0.00,1.00 +43.20,24.00,1.00,0.00,1.00 +-134.40,-28.80,1.00,0.00,1.00 +52.80,28.80,1.00,0.00,1.00 +-124.80,-28.80,1.00,0.00,1.00 +62.40,33.60,1.00,0.00,1.00 +-110.40,-33.60,1.00,0.00,1.00 +72.00,33.60,1.00,0.00,1.00 +-100.80,-33.60,1.00,0.00,1.00 +86.40,33.60,1.00,0.00,1.00 +-86.40,-33.60,1.00,0.00,1.00 +96.00,33.60,1.00,0.00,1.00 +-76.80,-33.60,1.00,0.00,1.00 +110.40,33.60,1.00,0.00,1.00 +-67.20,-33.60,1.00,0.00,1.00 +120.00,33.60,1.00,0.00,1.00 +-52.80,-28.80,1.00,0.00,1.00 +129.60,28.80,1.00,0.00,1.00 +-43.20,-28.80,1.00,0.00,1.00 +139.20,24.00,1.00,0.00,1.00 +-33.60,-24.00,1.00,0.00,1.00 +148.80,19.20,1.00,0.00,1.00 +-24.00,-19.20,1.00,0.00,1.00 +158.40,14.40,1.00,0.00,1.00 +-19.20,-14.40,1.00,0.00,1.00 +168.00,9.60,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +-163.20,-14.40,1.00,0.00,1.00 +24.00,14.40,1.00,0.00,1.00 +-153.60,-19.20,1.00,0.00,1.00 +28.80,19.20,1.00,0.00,1.00 +-144.00,-24.00,1.00,0.00,1.00 +38.40,24.00,1.00,0.00,1.00 +-134.40,-28.80,1.00,0.00,1.00 +48.00,28.80,1.00,0.00,1.00 +-124.80,-28.80,1.00,0.00,1.00 +62.40,33.60,1.00,0.00,1.00 +-115.20,-33.60,1.00,0.00,1.00 +72.00,33.60,1.00,0.00,1.00 +-100.80,-33.60,1.00,0.00,1.00 +81.60,33.60,1.00,0.00,1.00 +-91.20,-33.60,1.00,0.00,1.00 +96.00,33.60,1.00,0.00,1.00 +-81.60,-33.60,1.00,0.00,1.00 +105.60,33.60,1.00,0.00,1.00 +-67.20,-33.60,1.00,0.00,1.00 +115.20,33.60,1.00,0.00,1.00 +-57.60,-28.80,1.00,0.00,1.00 +129.60,28.80,1.00,0.00,1.00 +-48.00,-28.80,1.00,0.00,1.00 +139.20,24.00,1.00,0.00,1.00 +-38.40,-24.00,1.00,0.00,1.00 +148.80,19.20,1.00,0.00,1.00 +-28.80,-19.20,1.00,0.00,1.00 +153.60,14.40,1.00,0.00,1.00 +-19.20,-14.40,1.00,0.00,1.00 +163.20,9.60,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +-168.00,-9.60,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +-158.40,-9.60,1.00,0.00,1.00 +24.00,14.40,1.00,0.00,1.00 +-148.80,-14.40,1.00,0.00,1.00 +33.60,19.20,1.00,0.00,1.00 +-139.20,-19.20,1.00,0.00,1.00 +43.20,24.00,1.00,0.00,1.00 +-129.60,-24.00,1.00,0.00,1.00 +52.80,24.00,1.00,0.00,1.00 +-120.00,-28.80,1.00,0.00,1.00 +62.40,28.80,1.00,0.00,1.00 +-110.40,-28.80,1.00,0.00,1.00 +76.80,28.80,1.00,0.00,1.00 +-100.80,-28.80,1.00,0.00,1.00 +86.40,28.80,1.00,0.00,1.00 +-86.40,-28.80,1.00,0.00,1.00 +96.00,28.80,1.00,0.00,1.00 +-76.80,-28.80,1.00,0.00,1.00 +105.60,28.80,1.00,0.00,1.00 +-67.20,-28.80,1.00,0.00,1.00 +120.00,28.80,1.00,0.00,1.00 +-57.60,-24.00,1.00,0.00,1.00 +129.60,24.00,1.00,0.00,1.00 +-48.00,-24.00,1.00,0.00,1.00 +139.20,19.20,1.00,0.00,1.00 +-38.40,-19.20,1.00,0.00,1.00 +148.80,19.20,1.00,0.00,1.00 +-28.80,-14.40,1.00,0.00,1.00 +158.40,14.40,1.00,0.00,1.00 +-19.20,-9.60,1.00,0.00,1.00 +163.20,9.60,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +-163.20,-9.60,1.00,0.00,1.00 +24.00,14.40,1.00,0.00,1.00 +-153.60,-14.40,1.00,0.00,1.00 +33.60,19.20,1.00,0.00,1.00 +-144.00,-19.20,1.00,0.00,1.00 +43.20,19.20,1.00,0.00,1.00 +-134.40,-24.00,1.00,0.00,1.00 +52.80,24.00,1.00,0.00,1.00 +-124.80,-24.00,1.00,0.00,1.00 +62.40,28.80,1.00,0.00,1.00 +-115.20,-28.80,1.00,0.00,1.00 +72.00,28.80,1.00,0.00,1.00 +-100.80,-28.80,1.00,0.00,1.00 +81.60,28.80,1.00,0.00,1.00 +-91.20,-28.80,1.00,0.00,1.00 +96.00,28.80,1.00,0.00,1.00 +-81.60,-28.80,1.00,0.00,1.00 +105.60,28.80,1.00,0.00,1.00 +-67.20,-28.80,1.00,0.00,1.00 +115.20,28.80,1.00,0.00,1.00 +-57.60,-28.80,1.00,0.00,1.00 +124.80,24.00,1.00,0.00,1.00 +-48.00,-24.00,1.00,0.00,1.00 +134.40,24.00,1.00,0.00,1.00 +-38.40,-19.20,1.00,0.00,1.00 +144.00,19.20,1.00,0.00,1.00 +-28.80,-14.40,1.00,0.00,1.00 +153.60,14.40,1.00,0.00,1.00 +-19.20,-9.60,1.00,0.00,1.00 +163.20,9.60,1.00,0.00,1.00 +-14.40,-9.60,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +19.20,9.60,1.00,0.00,1.00 +-158.40,-9.60,1.00,0.00,1.00 +24.00,14.40,1.00,0.00,1.00 +-148.80,-14.40,1.00,0.00,1.00 +33.60,14.40,1.00,0.00,1.00 +-139.20,-19.20,1.00,0.00,1.00 +43.20,19.20,1.00,0.00,1.00 +-129.60,-19.20,1.00,0.00,1.00 +52.80,19.20,1.00,0.00,1.00 +-120.00,-24.00,1.00,0.00,1.00 +67.20,24.00,1.00,0.00,1.00 +-110.40,-24.00,1.00,0.00,1.00 +76.80,24.00,1.00,0.00,1.00 +-100.80,-24.00,1.00,0.00,1.00 +86.40,24.00,1.00,0.00,1.00 +-86.40,-24.00,1.00,0.00,1.00 +96.00,24.00,1.00,0.00,1.00 +-76.80,-24.00,1.00,0.00,1.00 +105.60,24.00,1.00,0.00,1.00 +-67.20,-24.00,1.00,0.00,1.00 +115.20,24.00,1.00,0.00,1.00 +-57.60,-24.00,1.00,0.00,1.00 +129.60,19.20,1.00,0.00,1.00 +-48.00,-19.20,1.00,0.00,1.00 +139.20,19.20,1.00,0.00,1.00 +-38.40,-14.40,1.00,0.00,1.00 +148.80,14.40,1.00,0.00,1.00 +-28.80,-14.40,1.00,0.00,1.00 +153.60,9.60,1.00,0.00,1.00 +-19.20,-9.60,1.00,0.00,1.00 +163.20,9.60,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +-158.40,-9.60,1.00,0.00,1.00 +24.00,9.60,1.00,0.00,1.00 +-153.60,-14.40,1.00,0.00,1.00 +33.60,14.40,1.00,0.00,1.00 +-144.00,-14.40,1.00,0.00,1.00 +43.20,19.20,1.00,0.00,1.00 +-134.40,-19.20,1.00,0.00,1.00 +52.80,19.20,1.00,0.00,1.00 +-124.80,-24.00,1.00,0.00,1.00 +62.40,24.00,1.00,0.00,1.00 +-110.40,-24.00,1.00,0.00,1.00 +72.00,24.00,1.00,0.00,1.00 +-100.80,-24.00,1.00,0.00,1.00 +81.60,24.00,1.00,0.00,1.00 +-91.20,-24.00,1.00,0.00,1.00 +96.00,24.00,1.00,0.00,1.00 +-81.60,-24.00,1.00,0.00,1.00 +105.60,24.00,1.00,0.00,1.00 +-72.00,-24.00,1.00,0.00,1.00 +115.20,24.00,1.00,0.00,1.00 +-57.60,-24.00,1.00,0.00,1.00 +124.80,19.20,1.00,0.00,1.00 +-48.00,-19.20,1.00,0.00,1.00 +134.40,19.20,1.00,0.00,1.00 +-38.40,-19.20,1.00,0.00,1.00 +144.00,14.40,1.00,0.00,1.00 +-28.80,-14.40,1.00,0.00,1.00 +153.60,14.40,1.00,0.00,1.00 +-24.00,-9.60,1.00,0.00,1.00 +163.20,9.60,1.00,0.00,1.00 +-14.40,-4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +19.20,4.80,1.00,0.00,1.00 +-158.40,-9.60,1.00,0.00,1.00 +28.80,9.60,1.00,0.00,1.00 +-148.80,-9.60,1.00,0.00,1.00 +38.40,14.40,1.00,0.00,1.00 +-139.20,-14.40,1.00,0.00,1.00 +48.00,14.40,1.00,0.00,1.00 +-129.60,-14.40,1.00,0.00,1.00 +57.60,19.20,1.00,0.00,1.00 +-120.00,-19.20,1.00,0.00,1.00 +67.20,19.20,1.00,0.00,1.00 +-110.40,-19.20,1.00,0.00,1.00 +76.80,19.20,1.00,0.00,1.00 +-100.80,-19.20,1.00,0.00,1.00 +86.40,19.20,1.00,0.00,1.00 +-86.40,-19.20,1.00,0.00,1.00 +96.00,19.20,1.00,0.00,1.00 +-76.80,-19.20,1.00,0.00,1.00 +105.60,19.20,1.00,0.00,1.00 +-67.20,-19.20,1.00,0.00,1.00 +115.20,19.20,1.00,0.00,1.00 +-57.60,-19.20,1.00,0.00,1.00 +124.80,19.20,1.00,0.00,1.00 +-48.00,-14.40,1.00,0.00,1.00 +134.40,14.40,1.00,0.00,1.00 +-38.40,-14.40,1.00,0.00,1.00 +144.00,14.40,1.00,0.00,1.00 +-28.80,-9.60,1.00,0.00,1.00 +153.60,9.60,1.00,0.00,1.00 +-19.20,-9.60,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +14.40,4.80,1.00,0.00,1.00 +-158.40,-9.60,1.00,0.00,1.00 +24.00,9.60,1.00,0.00,1.00 +-148.80,-9.60,1.00,0.00,1.00 +33.60,14.40,1.00,0.00,1.00 +-139.20,-14.40,1.00,0.00,1.00 +43.20,14.40,1.00,0.00,1.00 +-129.60,-14.40,1.00,0.00,1.00 +52.80,19.20,1.00,0.00,1.00 +-120.00,-19.20,1.00,0.00,1.00 +62.40,19.20,1.00,0.00,1.00 +-110.40,-19.20,1.00,0.00,1.00 +72.00,19.20,1.00,0.00,1.00 +-100.80,-19.20,1.00,0.00,1.00 +81.60,19.20,1.00,0.00,1.00 +-91.20,-19.20,1.00,0.00,1.00 +96.00,19.20,1.00,0.00,1.00 +-81.60,-19.20,1.00,0.00,1.00 +105.60,19.20,1.00,0.00,1.00 +-72.00,-19.20,1.00,0.00,1.00 +115.20,19.20,1.00,0.00,1.00 +-62.40,-19.20,1.00,0.00,1.00 +124.80,19.20,1.00,0.00,1.00 +-52.80,-14.40,1.00,0.00,1.00 +134.40,14.40,1.00,0.00,1.00 +-43.20,-14.40,1.00,0.00,1.00 +144.00,14.40,1.00,0.00,1.00 +-33.60,-9.60,1.00,0.00,1.00 +153.60,9.60,1.00,0.00,1.00 +-24.00,-9.60,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +-14.40,-4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +19.20,4.80,1.00,0.00,1.00 +-158.40,-4.80,1.00,0.00,1.00 +28.80,9.60,1.00,0.00,1.00 +-148.80,-9.60,1.00,0.00,1.00 +38.40,9.60,1.00,0.00,1.00 +-139.20,-9.60,1.00,0.00,1.00 +48.00,9.60,1.00,0.00,1.00 +-129.60,-14.40,1.00,0.00,1.00 +57.60,14.40,1.00,0.00,1.00 +-120.00,-14.40,1.00,0.00,1.00 +67.20,14.40,1.00,0.00,1.00 +-110.40,-14.40,1.00,0.00,1.00 +76.80,14.40,1.00,0.00,1.00 +-100.80,-14.40,1.00,0.00,1.00 +86.40,14.40,1.00,0.00,1.00 +-86.40,-14.40,1.00,0.00,1.00 +96.00,14.40,1.00,0.00,1.00 +-76.80,-14.40,1.00,0.00,1.00 +105.60,14.40,1.00,0.00,1.00 +-67.20,-14.40,1.00,0.00,1.00 +115.20,14.40,1.00,0.00,1.00 +-57.60,-14.40,1.00,0.00,1.00 +124.80,14.40,1.00,0.00,1.00 +-48.00,-14.40,1.00,0.00,1.00 +134.40,9.60,1.00,0.00,1.00 +-38.40,-9.60,1.00,0.00,1.00 +144.00,9.60,1.00,0.00,1.00 +-28.80,-9.60,1.00,0.00,1.00 +153.60,4.80,1.00,0.00,1.00 +-19.20,-4.80,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +14.40,4.80,1.00,0.00,1.00 +-158.40,-4.80,1.00,0.00,1.00 +24.00,4.80,1.00,0.00,1.00 +-148.80,-9.60,1.00,0.00,1.00 +33.60,9.60,1.00,0.00,1.00 +-139.20,-9.60,1.00,0.00,1.00 +43.20,9.60,1.00,0.00,1.00 +-129.60,-14.40,1.00,0.00,1.00 +52.80,14.40,1.00,0.00,1.00 +-120.00,-14.40,1.00,0.00,1.00 +62.40,14.40,1.00,0.00,1.00 +-110.40,-14.40,1.00,0.00,1.00 +72.00,14.40,1.00,0.00,1.00 +-100.80,-14.40,1.00,0.00,1.00 +81.60,14.40,1.00,0.00,1.00 +-91.20,-14.40,1.00,0.00,1.00 +96.00,14.40,1.00,0.00,1.00 +-81.60,-14.40,1.00,0.00,1.00 +105.60,14.40,1.00,0.00,1.00 +-72.00,-14.40,1.00,0.00,1.00 +115.20,14.40,1.00,0.00,1.00 +-62.40,-14.40,1.00,0.00,1.00 +124.80,14.40,1.00,0.00,1.00 +-52.80,-14.40,1.00,0.00,1.00 +134.40,9.60,1.00,0.00,1.00 +-43.20,-9.60,1.00,0.00,1.00 +144.00,9.60,1.00,0.00,1.00 +-33.60,-9.60,1.00,0.00,1.00 +153.60,9.60,1.00,0.00,1.00 +-24.00,-4.80,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +-14.40,-4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +9.60,0.00,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +19.20,4.80,1.00,0.00,1.00 +-158.40,-4.80,1.00,0.00,1.00 +28.80,4.80,1.00,0.00,1.00 +-148.80,-4.80,1.00,0.00,1.00 +38.40,4.80,1.00,0.00,1.00 +-139.20,-9.60,1.00,0.00,1.00 +48.00,9.60,1.00,0.00,1.00 +-129.60,-9.60,1.00,0.00,1.00 +57.60,9.60,1.00,0.00,1.00 +-120.00,-9.60,1.00,0.00,1.00 +67.20,9.60,1.00,0.00,1.00 +-110.40,-9.60,1.00,0.00,1.00 +76.80,9.60,1.00,0.00,1.00 +-100.80,-9.60,1.00,0.00,1.00 +86.40,9.60,1.00,0.00,1.00 +-86.40,-9.60,1.00,0.00,1.00 +96.00,9.60,1.00,0.00,1.00 +-76.80,-9.60,1.00,0.00,1.00 +105.60,9.60,1.00,0.00,1.00 +-67.20,-9.60,1.00,0.00,1.00 +115.20,9.60,1.00,0.00,1.00 +-57.60,-9.60,1.00,0.00,1.00 +124.80,9.60,1.00,0.00,1.00 +-48.00,-9.60,1.00,0.00,1.00 +134.40,9.60,1.00,0.00,1.00 +-38.40,-9.60,1.00,0.00,1.00 +144.00,4.80,1.00,0.00,1.00 +-28.80,-4.80,1.00,0.00,1.00 +153.60,4.80,1.00,0.00,1.00 +-19.20,-4.80,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +-9.60,-0.00,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +-168.00,-0.00,1.00,0.00,1.00 +14.40,4.80,1.00,0.00,1.00 +-158.40,-4.80,1.00,0.00,1.00 +24.00,4.80,1.00,0.00,1.00 +-148.80,-4.80,1.00,0.00,1.00 +33.60,4.80,1.00,0.00,1.00 +-139.20,-9.60,1.00,0.00,1.00 +43.20,9.60,1.00,0.00,1.00 +-129.60,-9.60,1.00,0.00,1.00 +52.80,9.60,1.00,0.00,1.00 +-120.00,-9.60,1.00,0.00,1.00 +62.40,9.60,1.00,0.00,1.00 +-110.40,-9.60,1.00,0.00,1.00 +72.00,9.60,1.00,0.00,1.00 +-100.80,-9.60,1.00,0.00,1.00 +81.60,9.60,1.00,0.00,1.00 +-91.20,-9.60,1.00,0.00,1.00 +96.00,9.60,1.00,0.00,1.00 +-81.60,-9.60,1.00,0.00,1.00 +105.60,9.60,1.00,0.00,1.00 +-72.00,-9.60,1.00,0.00,1.00 +115.20,9.60,1.00,0.00,1.00 +-62.40,-9.60,1.00,0.00,1.00 +124.80,9.60,1.00,0.00,1.00 +-52.80,-9.60,1.00,0.00,1.00 +134.40,9.60,1.00,0.00,1.00 +-43.20,-9.60,1.00,0.00,1.00 +144.00,4.80,1.00,0.00,1.00 +-33.60,-4.80,1.00,0.00,1.00 +153.60,4.80,1.00,0.00,1.00 +-24.00,-4.80,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +-14.40,-4.80,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +9.60,0.00,1.00,0.00,1.00 +-168.00,-0.00,1.00,0.00,1.00 +19.20,0.00,1.00,0.00,1.00 +-158.40,-4.80,1.00,0.00,1.00 +28.80,4.80,1.00,0.00,1.00 +-148.80,-4.80,1.00,0.00,1.00 +38.40,4.80,1.00,0.00,1.00 +-139.20,-4.80,1.00,0.00,1.00 +48.00,4.80,1.00,0.00,1.00 +-129.60,-4.80,1.00,0.00,1.00 +57.60,4.80,1.00,0.00,1.00 +-120.00,-4.80,1.00,0.00,1.00 +67.20,4.80,1.00,0.00,1.00 +-110.40,-4.80,1.00,0.00,1.00 +76.80,4.80,1.00,0.00,1.00 +-100.80,-4.80,1.00,0.00,1.00 +86.40,4.80,1.00,0.00,1.00 +-86.40,-4.80,1.00,0.00,1.00 +96.00,4.80,1.00,0.00,1.00 +-76.80,-4.80,1.00,0.00,1.00 +105.60,4.80,1.00,0.00,1.00 +-67.20,-4.80,1.00,0.00,1.00 +115.20,4.80,1.00,0.00,1.00 +-57.60,-4.80,1.00,0.00,1.00 +124.80,4.80,1.00,0.00,1.00 +-48.00,-4.80,1.00,0.00,1.00 +134.40,4.80,1.00,0.00,1.00 +-38.40,-4.80,1.00,0.00,1.00 +144.00,4.80,1.00,0.00,1.00 +-28.80,-4.80,1.00,0.00,1.00 +153.60,4.80,1.00,0.00,1.00 +-19.20,-4.80,1.00,0.00,1.00 +163.20,0.00,1.00,0.00,1.00 +-9.60,-0.00,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +-168.00,-0.00,1.00,0.00,1.00 +14.40,0.00,1.00,0.00,1.00 +-158.40,-4.80,1.00,0.00,1.00 +24.00,4.80,1.00,0.00,1.00 +-148.80,-4.80,1.00,0.00,1.00 +33.60,4.80,1.00,0.00,1.00 +-139.20,-4.80,1.00,0.00,1.00 +43.20,4.80,1.00,0.00,1.00 +-129.60,-4.80,1.00,0.00,1.00 +52.80,4.80,1.00,0.00,1.00 +-120.00,-4.80,1.00,0.00,1.00 +62.40,4.80,1.00,0.00,1.00 +-110.40,-4.80,1.00,0.00,1.00 +72.00,4.80,1.00,0.00,1.00 +-100.80,-4.80,1.00,0.00,1.00 +81.60,4.80,1.00,0.00,1.00 +-91.20,-4.80,1.00,0.00,1.00 +96.00,4.80,1.00,0.00,1.00 +-81.60,-4.80,1.00,0.00,1.00 +105.60,4.80,1.00,0.00,1.00 +-72.00,-4.80,1.00,0.00,1.00 +115.20,4.80,1.00,0.00,1.00 +-62.40,-4.80,1.00,0.00,1.00 +124.80,4.80,1.00,0.00,1.00 +-52.80,-4.80,1.00,0.00,1.00 +134.40,4.80,1.00,0.00,1.00 +-43.20,-4.80,1.00,0.00,1.00 +144.00,4.80,1.00,0.00,1.00 +-33.60,-4.80,1.00,0.00,1.00 +153.60,4.80,1.00,0.00,1.00 +-24.00,-4.80,1.00,0.00,1.00 +163.20,0.00,1.00,0.00,1.00 +-14.40,-0.00,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +9.60,0.00,1.00,0.00,1.00 +-168.00,-0.00,1.00,0.00,1.00 +19.20,0.00,1.00,0.00,1.00 +-158.40,-0.00,1.00,0.00,1.00 +28.80,0.00,1.00,0.00,1.00 +-148.80,-0.00,1.00,0.00,1.00 +38.40,0.00,1.00,0.00,1.00 +-139.20,-0.00,1.00,0.00,1.00 +48.00,0.00,1.00,0.00,1.00 +-129.60,-0.00,1.00,0.00,1.00 +57.60,0.00,1.00,0.00,1.00 +-120.00,-0.00,1.00,0.00,1.00 +67.20,0.00,1.00,0.00,1.00 +-110.40,-0.00,1.00,0.00,1.00 +76.80,0.00,1.00,0.00,1.00 +-100.80,-0.00,1.00,0.00,1.00 +86.40,0.00,1.00,0.00,1.00 +-86.40,-0.00,1.00,0.00,1.00 +96.00,0.00,1.00,0.00,1.00 +-76.80,-0.00,1.00,0.00,1.00 +105.60,0.00,1.00,0.00,1.00 +-67.20,-0.00,1.00,0.00,1.00 +115.20,0.00,1.00,0.00,1.00 +-57.60,-0.00,1.00,0.00,1.00 +124.80,0.00,1.00,0.00,1.00 +-48.00,-0.00,1.00,0.00,1.00 +134.40,0.00,1.00,0.00,1.00 +-38.40,-0.00,1.00,0.00,1.00 +144.00,0.00,1.00,0.00,1.00 +-28.80,-0.00,1.00,0.00,1.00 +153.60,0.00,1.00,0.00,1.00 +-19.20,-0.00,1.00,0.00,1.00 +163.20,0.00,1.00,0.00,1.00 +-9.60,-0.00,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +-0.00,-0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +-168.00,-0.00,1.00,0.00,1.00 +14.40,0.00,1.00,0.00,1.00 +-158.40,-0.00,1.00,0.00,1.00 +24.00,0.00,1.00,0.00,1.00 +-148.80,-0.00,1.00,0.00,1.00 +33.60,0.00,1.00,0.00,1.00 +-139.20,-0.00,1.00,0.00,1.00 +43.20,0.00,1.00,0.00,1.00 +-129.60,-0.00,1.00,0.00,1.00 +52.80,0.00,1.00,0.00,1.00 +-120.00,-0.00,1.00,0.00,1.00 +62.40,0.00,1.00,0.00,1.00 +-110.40,-0.00,1.00,0.00,1.00 +72.00,0.00,1.00,0.00,1.00 +-100.80,-0.00,1.00,0.00,1.00 +81.60,0.00,1.00,0.00,1.00 +-91.20,-0.00,1.00,0.00,1.00 +96.00,0.00,1.00,0.00,1.00 +-81.60,-0.00,1.00,0.00,1.00 +105.60,0.00,1.00,0.00,1.00 +-72.00,-0.00,1.00,0.00,1.00 +115.20,0.00,1.00,0.00,1.00 +-62.40,-0.00,1.00,0.00,1.00 +124.80,0.00,1.00,0.00,1.00 +-52.80,-0.00,1.00,0.00,1.00 +134.40,0.00,1.00,0.00,1.00 +-43.20,-0.00,1.00,0.00,1.00 +144.00,0.00,1.00,0.00,1.00 +-33.60,-0.00,1.00,0.00,1.00 +153.60,0.00,1.00,0.00,1.00 +-24.00,-0.00,1.00,0.00,1.00 +163.20,0.00,1.00,0.00,1.00 +-14.40,-0.00,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +19.20,-0.00,1.00,0.00,1.00 +-158.40,0.00,1.00,0.00,1.00 +28.80,-0.00,1.00,0.00,1.00 +-148.80,0.00,1.00,0.00,1.00 +38.40,-0.00,1.00,0.00,1.00 +-139.20,0.00,1.00,0.00,1.00 +48.00,-0.00,1.00,0.00,1.00 +-129.60,0.00,1.00,0.00,1.00 +57.60,-4.80,1.00,0.00,1.00 +-120.00,4.80,1.00,0.00,1.00 +67.20,-4.80,1.00,0.00,1.00 +-110.40,4.80,1.00,0.00,1.00 +76.80,-4.80,1.00,0.00,1.00 +-100.80,4.80,1.00,0.00,1.00 +86.40,-4.80,1.00,0.00,1.00 +-86.40,4.80,1.00,0.00,1.00 +96.00,-4.80,1.00,0.00,1.00 +-76.80,4.80,1.00,0.00,1.00 +105.60,-4.80,1.00,0.00,1.00 +-67.20,4.80,1.00,0.00,1.00 +115.20,-4.80,1.00,0.00,1.00 +-57.60,4.80,1.00,0.00,1.00 +124.80,-4.80,1.00,0.00,1.00 +-48.00,0.00,1.00,0.00,1.00 +134.40,-0.00,1.00,0.00,1.00 +-38.40,0.00,1.00,0.00,1.00 +144.00,-0.00,1.00,0.00,1.00 +-28.80,0.00,1.00,0.00,1.00 +153.60,-0.00,1.00,0.00,1.00 +-19.20,0.00,1.00,0.00,1.00 +163.20,-0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +14.40,-0.00,1.00,0.00,1.00 +-158.40,0.00,1.00,0.00,1.00 +24.00,-0.00,1.00,0.00,1.00 +-148.80,0.00,1.00,0.00,1.00 +33.60,-0.00,1.00,0.00,1.00 +-139.20,0.00,1.00,0.00,1.00 +43.20,-0.00,1.00,0.00,1.00 +-129.60,0.00,1.00,0.00,1.00 +52.80,-4.80,1.00,0.00,1.00 +-120.00,4.80,1.00,0.00,1.00 +62.40,-4.80,1.00,0.00,1.00 +-110.40,4.80,1.00,0.00,1.00 +72.00,-4.80,1.00,0.00,1.00 +-100.80,4.80,1.00,0.00,1.00 +81.60,-4.80,1.00,0.00,1.00 +-91.20,4.80,1.00,0.00,1.00 +96.00,-4.80,1.00,0.00,1.00 +-81.60,4.80,1.00,0.00,1.00 +105.60,-4.80,1.00,0.00,1.00 +-72.00,4.80,1.00,0.00,1.00 +115.20,-4.80,1.00,0.00,1.00 +-62.40,4.80,1.00,0.00,1.00 +124.80,-4.80,1.00,0.00,1.00 +-52.80,0.00,1.00,0.00,1.00 +134.40,-0.00,1.00,0.00,1.00 +-43.20,0.00,1.00,0.00,1.00 +144.00,-0.00,1.00,0.00,1.00 +-33.60,0.00,1.00,0.00,1.00 +153.60,-0.00,1.00,0.00,1.00 +-24.00,0.00,1.00,0.00,1.00 +163.20,-0.00,1.00,0.00,1.00 +-14.40,0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +28.80,-4.80,1.00,0.00,1.00 +-148.80,4.80,1.00,0.00,1.00 +38.40,-4.80,1.00,0.00,1.00 +-139.20,4.80,1.00,0.00,1.00 +48.00,-4.80,1.00,0.00,1.00 +-129.60,4.80,1.00,0.00,1.00 +57.60,-4.80,1.00,0.00,1.00 +-120.00,4.80,1.00,0.00,1.00 +67.20,-4.80,1.00,0.00,1.00 +-110.40,9.60,1.00,0.00,1.00 +76.80,-9.60,1.00,0.00,1.00 +-100.80,9.60,1.00,0.00,1.00 +86.40,-9.60,1.00,0.00,1.00 +-86.40,9.60,1.00,0.00,1.00 +96.00,-9.60,1.00,0.00,1.00 +-76.80,9.60,1.00,0.00,1.00 +105.60,-9.60,1.00,0.00,1.00 +-67.20,9.60,1.00,0.00,1.00 +115.20,-4.80,1.00,0.00,1.00 +-57.60,4.80,1.00,0.00,1.00 +124.80,-4.80,1.00,0.00,1.00 +-48.00,4.80,1.00,0.00,1.00 +134.40,-4.80,1.00,0.00,1.00 +-38.40,4.80,1.00,0.00,1.00 +144.00,-4.80,1.00,0.00,1.00 +-28.80,4.80,1.00,0.00,1.00 +153.60,-4.80,1.00,0.00,1.00 +-19.20,4.80,1.00,0.00,1.00 +163.20,-0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +14.40,-0.00,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +24.00,-4.80,1.00,0.00,1.00 +-148.80,4.80,1.00,0.00,1.00 +33.60,-4.80,1.00,0.00,1.00 +-139.20,4.80,1.00,0.00,1.00 +43.20,-4.80,1.00,0.00,1.00 +-129.60,4.80,1.00,0.00,1.00 +52.80,-4.80,1.00,0.00,1.00 +-120.00,4.80,1.00,0.00,1.00 +62.40,-4.80,1.00,0.00,1.00 +-110.40,9.60,1.00,0.00,1.00 +72.00,-9.60,1.00,0.00,1.00 +-100.80,9.60,1.00,0.00,1.00 +81.60,-9.60,1.00,0.00,1.00 +-91.20,9.60,1.00,0.00,1.00 +96.00,-9.60,1.00,0.00,1.00 +-81.60,9.60,1.00,0.00,1.00 +105.60,-9.60,1.00,0.00,1.00 +-72.00,9.60,1.00,0.00,1.00 +115.20,-4.80,1.00,0.00,1.00 +-62.40,4.80,1.00,0.00,1.00 +124.80,-4.80,1.00,0.00,1.00 +-52.80,4.80,1.00,0.00,1.00 +134.40,-4.80,1.00,0.00,1.00 +-43.20,4.80,1.00,0.00,1.00 +144.00,-4.80,1.00,0.00,1.00 +-33.60,4.80,1.00,0.00,1.00 +153.60,-4.80,1.00,0.00,1.00 +-24.00,4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +-14.40,0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +28.80,-4.80,1.00,0.00,1.00 +-148.80,4.80,1.00,0.00,1.00 +38.40,-9.60,1.00,0.00,1.00 +-139.20,9.60,1.00,0.00,1.00 +48.00,-9.60,1.00,0.00,1.00 +-129.60,9.60,1.00,0.00,1.00 +57.60,-9.60,1.00,0.00,1.00 +-120.00,9.60,1.00,0.00,1.00 +67.20,-9.60,1.00,0.00,1.00 +-110.40,9.60,1.00,0.00,1.00 +76.80,-14.40,1.00,0.00,1.00 +-100.80,14.40,1.00,0.00,1.00 +86.40,-14.40,1.00,0.00,1.00 +-86.40,14.40,1.00,0.00,1.00 +96.00,-14.40,1.00,0.00,1.00 +-76.80,14.40,1.00,0.00,1.00 +105.60,-14.40,1.00,0.00,1.00 +-67.20,9.60,1.00,0.00,1.00 +115.20,-9.60,1.00,0.00,1.00 +-57.60,9.60,1.00,0.00,1.00 +124.80,-9.60,1.00,0.00,1.00 +-48.00,9.60,1.00,0.00,1.00 +134.40,-9.60,1.00,0.00,1.00 +-38.40,9.60,1.00,0.00,1.00 +144.00,-9.60,1.00,0.00,1.00 +-28.80,4.80,1.00,0.00,1.00 +153.60,-4.80,1.00,0.00,1.00 +-19.20,4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +24.00,-4.80,1.00,0.00,1.00 +-148.80,4.80,1.00,0.00,1.00 +33.60,-9.60,1.00,0.00,1.00 +-139.20,9.60,1.00,0.00,1.00 +43.20,-9.60,1.00,0.00,1.00 +-129.60,9.60,1.00,0.00,1.00 +52.80,-9.60,1.00,0.00,1.00 +-120.00,9.60,1.00,0.00,1.00 +62.40,-9.60,1.00,0.00,1.00 +-110.40,9.60,1.00,0.00,1.00 +72.00,-14.40,1.00,0.00,1.00 +-100.80,14.40,1.00,0.00,1.00 +81.60,-14.40,1.00,0.00,1.00 +-91.20,14.40,1.00,0.00,1.00 +96.00,-14.40,1.00,0.00,1.00 +-81.60,14.40,1.00,0.00,1.00 +105.60,-14.40,1.00,0.00,1.00 +-72.00,9.60,1.00,0.00,1.00 +115.20,-9.60,1.00,0.00,1.00 +-62.40,9.60,1.00,0.00,1.00 +124.80,-9.60,1.00,0.00,1.00 +-52.80,9.60,1.00,0.00,1.00 +134.40,-9.60,1.00,0.00,1.00 +-43.20,9.60,1.00,0.00,1.00 +144.00,-9.60,1.00,0.00,1.00 +-33.60,4.80,1.00,0.00,1.00 +153.60,-4.80,1.00,0.00,1.00 +-24.00,4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +28.80,-9.60,1.00,0.00,1.00 +-148.80,9.60,1.00,0.00,1.00 +38.40,-9.60,1.00,0.00,1.00 +-139.20,9.60,1.00,0.00,1.00 +48.00,-14.40,1.00,0.00,1.00 +-129.60,14.40,1.00,0.00,1.00 +57.60,-14.40,1.00,0.00,1.00 +-120.00,14.40,1.00,0.00,1.00 +67.20,-14.40,1.00,0.00,1.00 +-110.40,14.40,1.00,0.00,1.00 +76.80,-19.20,1.00,0.00,1.00 +-100.80,19.20,1.00,0.00,1.00 +86.40,-19.20,1.00,0.00,1.00 +-86.40,19.20,1.00,0.00,1.00 +96.00,-19.20,1.00,0.00,1.00 +-76.80,19.20,1.00,0.00,1.00 +105.60,-14.40,1.00,0.00,1.00 +-67.20,14.40,1.00,0.00,1.00 +115.20,-14.40,1.00,0.00,1.00 +-57.60,14.40,1.00,0.00,1.00 +124.80,-14.40,1.00,0.00,1.00 +-48.00,14.40,1.00,0.00,1.00 +134.40,-14.40,1.00,0.00,1.00 +-38.40,9.60,1.00,0.00,1.00 +144.00,-9.60,1.00,0.00,1.00 +-28.80,9.60,1.00,0.00,1.00 +153.60,-9.60,1.00,0.00,1.00 +-19.20,4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +-158.40,4.80,1.00,0.00,1.00 +24.00,-9.60,1.00,0.00,1.00 +-148.80,9.60,1.00,0.00,1.00 +33.60,-9.60,1.00,0.00,1.00 +-139.20,9.60,1.00,0.00,1.00 +43.20,-14.40,1.00,0.00,1.00 +-129.60,14.40,1.00,0.00,1.00 +52.80,-14.40,1.00,0.00,1.00 +-120.00,14.40,1.00,0.00,1.00 +62.40,-14.40,1.00,0.00,1.00 +-110.40,14.40,1.00,0.00,1.00 +72.00,-14.40,1.00,0.00,1.00 +-100.80,19.20,1.00,0.00,1.00 +81.60,-19.20,1.00,0.00,1.00 +-91.20,19.20,1.00,0.00,1.00 +96.00,-19.20,1.00,0.00,1.00 +-81.60,19.20,1.00,0.00,1.00 +105.60,-19.20,1.00,0.00,1.00 +-72.00,14.40,1.00,0.00,1.00 +115.20,-14.40,1.00,0.00,1.00 +-62.40,14.40,1.00,0.00,1.00 +124.80,-14.40,1.00,0.00,1.00 +-52.80,14.40,1.00,0.00,1.00 +134.40,-14.40,1.00,0.00,1.00 +-43.20,9.60,1.00,0.00,1.00 +144.00,-9.60,1.00,0.00,1.00 +-33.60,9.60,1.00,0.00,1.00 +153.60,-9.60,1.00,0.00,1.00 +-24.00,4.80,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +19.20,-4.80,1.00,0.00,1.00 +-158.40,9.60,1.00,0.00,1.00 +28.80,-9.60,1.00,0.00,1.00 +-148.80,14.40,1.00,0.00,1.00 +38.40,-14.40,1.00,0.00,1.00 +-139.20,14.40,1.00,0.00,1.00 +48.00,-14.40,1.00,0.00,1.00 +-129.60,19.20,1.00,0.00,1.00 +57.60,-19.20,1.00,0.00,1.00 +-120.00,19.20,1.00,0.00,1.00 +67.20,-19.20,1.00,0.00,1.00 +-110.40,19.20,1.00,0.00,1.00 +76.80,-19.20,1.00,0.00,1.00 +-100.80,24.00,1.00,0.00,1.00 +86.40,-24.00,1.00,0.00,1.00 +-86.40,24.00,1.00,0.00,1.00 +96.00,-24.00,1.00,0.00,1.00 +-76.80,24.00,1.00,0.00,1.00 +105.60,-19.20,1.00,0.00,1.00 +-67.20,19.20,1.00,0.00,1.00 +115.20,-19.20,1.00,0.00,1.00 +-57.60,19.20,1.00,0.00,1.00 +124.80,-19.20,1.00,0.00,1.00 +-48.00,19.20,1.00,0.00,1.00 +134.40,-14.40,1.00,0.00,1.00 +-38.40,14.40,1.00,0.00,1.00 +144.00,-14.40,1.00,0.00,1.00 +-28.80,9.60,1.00,0.00,1.00 +153.60,-9.60,1.00,0.00,1.00 +-19.20,9.60,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +14.40,-4.80,1.00,0.00,1.00 +-158.40,9.60,1.00,0.00,1.00 +24.00,-9.60,1.00,0.00,1.00 +-148.80,9.60,1.00,0.00,1.00 +33.60,-14.40,1.00,0.00,1.00 +-139.20,14.40,1.00,0.00,1.00 +43.20,-14.40,1.00,0.00,1.00 +-129.60,19.20,1.00,0.00,1.00 +52.80,-19.20,1.00,0.00,1.00 +-120.00,19.20,1.00,0.00,1.00 +62.40,-19.20,1.00,0.00,1.00 +-110.40,19.20,1.00,0.00,1.00 +72.00,-19.20,1.00,0.00,1.00 +-100.80,24.00,1.00,0.00,1.00 +81.60,-24.00,1.00,0.00,1.00 +-91.20,24.00,1.00,0.00,1.00 +96.00,-24.00,1.00,0.00,1.00 +-81.60,24.00,1.00,0.00,1.00 +105.60,-19.20,1.00,0.00,1.00 +-72.00,19.20,1.00,0.00,1.00 +115.20,-19.20,1.00,0.00,1.00 +-62.40,19.20,1.00,0.00,1.00 +124.80,-19.20,1.00,0.00,1.00 +-52.80,19.20,1.00,0.00,1.00 +134.40,-14.40,1.00,0.00,1.00 +-43.20,14.40,1.00,0.00,1.00 +144.00,-14.40,1.00,0.00,1.00 +-33.60,14.40,1.00,0.00,1.00 +153.60,-9.60,1.00,0.00,1.00 +-24.00,9.60,1.00,0.00,1.00 +163.20,-4.80,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +19.20,-9.60,1.00,0.00,1.00 +-158.40,9.60,1.00,0.00,1.00 +24.00,-14.40,1.00,0.00,1.00 +-148.80,14.40,1.00,0.00,1.00 +33.60,-14.40,1.00,0.00,1.00 +-139.20,19.20,1.00,0.00,1.00 +43.20,-19.20,1.00,0.00,1.00 +-129.60,19.20,1.00,0.00,1.00 +52.80,-24.00,1.00,0.00,1.00 +-120.00,24.00,1.00,0.00,1.00 +62.40,-24.00,1.00,0.00,1.00 +-110.40,24.00,1.00,0.00,1.00 +76.80,-24.00,1.00,0.00,1.00 +-100.80,28.80,1.00,0.00,1.00 +86.40,-28.80,1.00,0.00,1.00 +-86.40,28.80,1.00,0.00,1.00 +96.00,-28.80,1.00,0.00,1.00 +-76.80,28.80,1.00,0.00,1.00 +105.60,-24.00,1.00,0.00,1.00 +-67.20,24.00,1.00,0.00,1.00 +120.00,-24.00,1.00,0.00,1.00 +-57.60,24.00,1.00,0.00,1.00 +129.60,-24.00,1.00,0.00,1.00 +-48.00,19.20,1.00,0.00,1.00 +139.20,-19.20,1.00,0.00,1.00 +-38.40,19.20,1.00,0.00,1.00 +148.80,-14.40,1.00,0.00,1.00 +-28.80,14.40,1.00,0.00,1.00 +158.40,-9.60,1.00,0.00,1.00 +-19.20,9.60,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +-158.40,9.60,1.00,0.00,1.00 +24.00,-9.60,1.00,0.00,1.00 +-153.60,14.40,1.00,0.00,1.00 +33.60,-14.40,1.00,0.00,1.00 +-144.00,19.20,1.00,0.00,1.00 +43.20,-19.20,1.00,0.00,1.00 +-134.40,19.20,1.00,0.00,1.00 +52.80,-24.00,1.00,0.00,1.00 +-124.80,24.00,1.00,0.00,1.00 +62.40,-24.00,1.00,0.00,1.00 +-110.40,24.00,1.00,0.00,1.00 +72.00,-24.00,1.00,0.00,1.00 +-100.80,28.80,1.00,0.00,1.00 +81.60,-28.80,1.00,0.00,1.00 +-91.20,28.80,1.00,0.00,1.00 +96.00,-28.80,1.00,0.00,1.00 +-81.60,28.80,1.00,0.00,1.00 +105.60,-24.00,1.00,0.00,1.00 +-72.00,24.00,1.00,0.00,1.00 +115.20,-24.00,1.00,0.00,1.00 +-57.60,24.00,1.00,0.00,1.00 +124.80,-24.00,1.00,0.00,1.00 +-48.00,19.20,1.00,0.00,1.00 +134.40,-19.20,1.00,0.00,1.00 +-38.40,19.20,1.00,0.00,1.00 +144.00,-14.40,1.00,0.00,1.00 +-28.80,14.40,1.00,0.00,1.00 +153.60,-14.40,1.00,0.00,1.00 +-24.00,9.60,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +-14.40,4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +-158.40,14.40,1.00,0.00,1.00 +24.00,-14.40,1.00,0.00,1.00 +-148.80,19.20,1.00,0.00,1.00 +33.60,-19.20,1.00,0.00,1.00 +-139.20,19.20,1.00,0.00,1.00 +43.20,-24.00,1.00,0.00,1.00 +-129.60,24.00,1.00,0.00,1.00 +52.80,-28.80,1.00,0.00,1.00 +-120.00,28.80,1.00,0.00,1.00 +62.40,-28.80,1.00,0.00,1.00 +-110.40,28.80,1.00,0.00,1.00 +76.80,-28.80,1.00,0.00,1.00 +-100.80,33.60,1.00,0.00,1.00 +86.40,-33.60,1.00,0.00,1.00 +-86.40,33.60,1.00,0.00,1.00 +96.00,-33.60,1.00,0.00,1.00 +-76.80,28.80,1.00,0.00,1.00 +110.40,-28.80,1.00,0.00,1.00 +-67.20,28.80,1.00,0.00,1.00 +120.00,-28.80,1.00,0.00,1.00 +-57.60,28.80,1.00,0.00,1.00 +129.60,-24.00,1.00,0.00,1.00 +-48.00,24.00,1.00,0.00,1.00 +139.20,-24.00,1.00,0.00,1.00 +-38.40,19.20,1.00,0.00,1.00 +148.80,-19.20,1.00,0.00,1.00 +-28.80,14.40,1.00,0.00,1.00 +158.40,-14.40,1.00,0.00,1.00 +-19.20,9.60,1.00,0.00,1.00 +168.00,-9.60,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +-163.20,9.60,1.00,0.00,1.00 +24.00,-14.40,1.00,0.00,1.00 +-153.60,14.40,1.00,0.00,1.00 +33.60,-19.20,1.00,0.00,1.00 +-144.00,19.20,1.00,0.00,1.00 +43.20,-24.00,1.00,0.00,1.00 +-134.40,24.00,1.00,0.00,1.00 +52.80,-24.00,1.00,0.00,1.00 +-124.80,28.80,1.00,0.00,1.00 +62.40,-28.80,1.00,0.00,1.00 +-115.20,28.80,1.00,0.00,1.00 +72.00,-28.80,1.00,0.00,1.00 +-100.80,28.80,1.00,0.00,1.00 +81.60,-33.60,1.00,0.00,1.00 +-91.20,33.60,1.00,0.00,1.00 +96.00,-33.60,1.00,0.00,1.00 +-81.60,33.60,1.00,0.00,1.00 +105.60,-28.80,1.00,0.00,1.00 +-67.20,28.80,1.00,0.00,1.00 +115.20,-28.80,1.00,0.00,1.00 +-57.60,28.80,1.00,0.00,1.00 +124.80,-28.80,1.00,0.00,1.00 +-48.00,24.00,1.00,0.00,1.00 +134.40,-24.00,1.00,0.00,1.00 +-38.40,19.20,1.00,0.00,1.00 +144.00,-19.20,1.00,0.00,1.00 +-28.80,19.20,1.00,0.00,1.00 +153.60,-14.40,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +-14.40,9.60,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +-158.40,14.40,1.00,0.00,1.00 +24.00,-14.40,1.00,0.00,1.00 +-153.60,19.20,1.00,0.00,1.00 +33.60,-24.00,1.00,0.00,1.00 +-144.00,24.00,1.00,0.00,1.00 +43.20,-24.00,1.00,0.00,1.00 +-134.40,28.80,1.00,0.00,1.00 +52.80,-28.80,1.00,0.00,1.00 +-124.80,33.60,1.00,0.00,1.00 +62.40,-33.60,1.00,0.00,1.00 +-110.40,33.60,1.00,0.00,1.00 +72.00,-33.60,1.00,0.00,1.00 +-100.80,38.40,1.00,0.00,1.00 +86.40,-38.40,1.00,0.00,1.00 +-86.40,38.40,1.00,0.00,1.00 +96.00,-38.40,1.00,0.00,1.00 +-76.80,33.60,1.00,0.00,1.00 +110.40,-33.60,1.00,0.00,1.00 +-67.20,33.60,1.00,0.00,1.00 +120.00,-33.60,1.00,0.00,1.00 +-52.80,28.80,1.00,0.00,1.00 +129.60,-28.80,1.00,0.00,1.00 +-43.20,28.80,1.00,0.00,1.00 +139.20,-24.00,1.00,0.00,1.00 +-33.60,24.00,1.00,0.00,1.00 +148.80,-19.20,1.00,0.00,1.00 +-24.00,19.20,1.00,0.00,1.00 +158.40,-14.40,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +168.00,-9.60,1.00,0.00,1.00 +-9.60,4.80,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +-168.00,4.80,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +24.00,-14.40,1.00,0.00,1.00 +-153.60,19.20,1.00,0.00,1.00 +28.80,-19.20,1.00,0.00,1.00 +-144.00,24.00,1.00,0.00,1.00 +38.40,-24.00,1.00,0.00,1.00 +-134.40,28.80,1.00,0.00,1.00 +48.00,-28.80,1.00,0.00,1.00 +-124.80,28.80,1.00,0.00,1.00 +57.60,-33.60,1.00,0.00,1.00 +-115.20,33.60,1.00,0.00,1.00 +72.00,-33.60,1.00,0.00,1.00 +-105.60,33.60,1.00,0.00,1.00 +81.60,-38.40,1.00,0.00,1.00 +-91.20,38.40,1.00,0.00,1.00 +96.00,-38.40,1.00,0.00,1.00 +-81.60,38.40,1.00,0.00,1.00 +105.60,-33.60,1.00,0.00,1.00 +-67.20,33.60,1.00,0.00,1.00 +120.00,-33.60,1.00,0.00,1.00 +-57.60,33.60,1.00,0.00,1.00 +129.60,-28.80,1.00,0.00,1.00 +-48.00,28.80,1.00,0.00,1.00 +139.20,-24.00,1.00,0.00,1.00 +-38.40,24.00,1.00,0.00,1.00 +148.80,-24.00,1.00,0.00,1.00 +-28.80,19.20,1.00,0.00,1.00 +158.40,-14.40,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +163.20,-9.60,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +9.60,-4.80,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +14.40,-14.40,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +24.00,-19.20,1.00,0.00,1.00 +-153.60,19.20,1.00,0.00,1.00 +28.80,-24.00,1.00,0.00,1.00 +-144.00,28.80,1.00,0.00,1.00 +38.40,-28.80,1.00,0.00,1.00 +-134.40,33.60,1.00,0.00,1.00 +48.00,-33.60,1.00,0.00,1.00 +-124.80,33.60,1.00,0.00,1.00 +62.40,-38.40,1.00,0.00,1.00 +-115.20,38.40,1.00,0.00,1.00 +72.00,-38.40,1.00,0.00,1.00 +-100.80,43.20,1.00,0.00,1.00 +86.40,-43.20,1.00,0.00,1.00 +-86.40,43.20,1.00,0.00,1.00 +96.00,-43.20,1.00,0.00,1.00 +-76.80,38.40,1.00,0.00,1.00 +110.40,-38.40,1.00,0.00,1.00 +-62.40,38.40,1.00,0.00,1.00 +120.00,-38.40,1.00,0.00,1.00 +-52.80,33.60,1.00,0.00,1.00 +134.40,-33.60,1.00,0.00,1.00 +-43.20,28.80,1.00,0.00,1.00 +144.00,-28.80,1.00,0.00,1.00 +-33.60,24.00,1.00,0.00,1.00 +153.60,-24.00,1.00,0.00,1.00 +-24.00,19.20,1.00,0.00,1.00 +158.40,-19.20,1.00,0.00,1.00 +-14.40,14.40,1.00,0.00,1.00 +168.00,-9.60,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +14.40,-9.60,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +19.20,-19.20,1.00,0.00,1.00 +-153.60,19.20,1.00,0.00,1.00 +28.80,-24.00,1.00,0.00,1.00 +-148.80,24.00,1.00,0.00,1.00 +38.40,-28.80,1.00,0.00,1.00 +-139.20,28.80,1.00,0.00,1.00 +48.00,-33.60,1.00,0.00,1.00 +-129.60,33.60,1.00,0.00,1.00 +57.60,-38.40,1.00,0.00,1.00 +-115.20,38.40,1.00,0.00,1.00 +67.20,-38.40,1.00,0.00,1.00 +-105.60,38.40,1.00,0.00,1.00 +81.60,-43.20,1.00,0.00,1.00 +-91.20,43.20,1.00,0.00,1.00 +96.00,-43.20,1.00,0.00,1.00 +-76.80,43.20,1.00,0.00,1.00 +105.60,-38.40,1.00,0.00,1.00 +-67.20,38.40,1.00,0.00,1.00 +120.00,-38.40,1.00,0.00,1.00 +-52.80,33.60,1.00,0.00,1.00 +129.60,-33.60,1.00,0.00,1.00 +-43.20,33.60,1.00,0.00,1.00 +139.20,-28.80,1.00,0.00,1.00 +-33.60,28.80,1.00,0.00,1.00 +148.80,-24.00,1.00,0.00,1.00 +-28.80,19.20,1.00,0.00,1.00 +158.40,-19.20,1.00,0.00,1.00 +-19.20,14.40,1.00,0.00,1.00 +163.20,-14.40,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +-177.60,4.80,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +-168.00,9.60,1.00,0.00,1.00 +14.40,-14.40,1.00,0.00,1.00 +-163.20,19.20,1.00,0.00,1.00 +19.20,-19.20,1.00,0.00,1.00 +-153.60,24.00,1.00,0.00,1.00 +28.80,-28.80,1.00,0.00,1.00 +-148.80,28.80,1.00,0.00,1.00 +38.40,-33.60,1.00,0.00,1.00 +-139.20,33.60,1.00,0.00,1.00 +48.00,-38.40,1.00,0.00,1.00 +-124.80,38.40,1.00,0.00,1.00 +57.60,-43.20,1.00,0.00,1.00 +-115.20,43.20,1.00,0.00,1.00 +72.00,-43.20,1.00,0.00,1.00 +-100.80,43.20,1.00,0.00,1.00 +86.40,-48.00,1.00,0.00,1.00 +-86.40,48.00,1.00,0.00,1.00 +100.80,-48.00,1.00,0.00,1.00 +-76.80,43.20,1.00,0.00,1.00 +110.40,-43.20,1.00,0.00,1.00 +-62.40,43.20,1.00,0.00,1.00 +124.80,-38.40,1.00,0.00,1.00 +-48.00,38.40,1.00,0.00,1.00 +134.40,-38.40,1.00,0.00,1.00 +-38.40,33.60,1.00,0.00,1.00 +144.00,-28.80,1.00,0.00,1.00 +-28.80,28.80,1.00,0.00,1.00 +153.60,-24.00,1.00,0.00,1.00 +-24.00,24.00,1.00,0.00,1.00 +163.20,-19.20,1.00,0.00,1.00 +-14.40,14.40,1.00,0.00,1.00 +168.00,-14.40,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-0.00,0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +4.80,-4.80,1.00,0.00,1.00 +-172.80,9.60,1.00,0.00,1.00 +9.60,-14.40,1.00,0.00,1.00 +-163.20,14.40,1.00,0.00,1.00 +19.20,-19.20,1.00,0.00,1.00 +-158.40,24.00,1.00,0.00,1.00 +28.80,-24.00,1.00,0.00,1.00 +-148.80,28.80,1.00,0.00,1.00 +33.60,-28.80,1.00,0.00,1.00 +-139.20,33.60,1.00,0.00,1.00 +43.20,-38.40,1.00,0.00,1.00 +-129.60,38.40,1.00,0.00,1.00 +57.60,-38.40,1.00,0.00,1.00 +-120.00,43.20,1.00,0.00,1.00 +67.20,-43.20,1.00,0.00,1.00 +-105.60,43.20,1.00,0.00,1.00 +81.60,-48.00,1.00,0.00,1.00 +-91.20,48.00,1.00,0.00,1.00 +96.00,-48.00,1.00,0.00,1.00 +-76.80,43.20,1.00,0.00,1.00 +110.40,-43.20,1.00,0.00,1.00 +-67.20,43.20,1.00,0.00,1.00 +120.00,-43.20,1.00,0.00,1.00 +-52.80,38.40,1.00,0.00,1.00 +134.40,-38.40,1.00,0.00,1.00 +-43.20,33.60,1.00,0.00,1.00 +144.00,-33.60,1.00,0.00,1.00 +-33.60,28.80,1.00,0.00,1.00 +153.60,-28.80,1.00,0.00,1.00 +-24.00,24.00,1.00,0.00,1.00 +158.40,-19.20,1.00,0.00,1.00 +-19.20,19.20,1.00,0.00,1.00 +168.00,-14.40,1.00,0.00,1.00 +-9.60,9.60,1.00,0.00,1.00 +172.80,-4.80,1.00,0.00,1.00 +-4.80,4.80,1.00,0.00,1.00 diff --git a/scripts/testv/stvISM4.csv b/scripts/testv/stvISM4.csv index e69de29bb2..9afd15ba07 100644 --- a/scripts/testv/stvISM4.csv +++ b/scripts/testv/stvISM4.csv @@ -0,0 +1,1500 @@ +-0.00,0.00,1.00,0.00,1.00 +-0.00,4.80,1.00,0.00,1.00 +-0.00,9.60,1.00,0.00,1.00 +-0.00,14.40,1.00,0.00,1.00 +-0.00,19.20,1.00,0.00,1.00 +-0.00,24.00,1.00,0.00,1.00 +-0.00,28.80,1.00,0.00,1.00 +-0.00,33.60,1.00,0.00,1.00 +-0.00,38.40,1.00,0.00,1.00 +-0.00,43.20,1.00,0.00,1.00 +-0.00,48.00,1.00,0.00,1.00 +-0.00,52.80,1.00,0.00,1.00 +-0.00,57.60,1.00,0.00,1.00 +-0.00,62.40,1.00,0.00,1.00 +-0.00,67.20,1.00,0.00,1.00 +-0.00,72.00,1.00,0.00,1.00 +-0.00,76.80,1.00,0.00,1.00 +-0.00,81.60,1.00,0.00,1.00 +-0.00,86.40,1.00,0.00,1.00 +-177.60,91.20,1.00,0.00,1.00 +-177.60,86.40,1.00,0.00,1.00 +-177.60,81.60,1.00,0.00,1.00 +-177.60,76.80,1.00,0.00,1.00 +-177.60,72.00,1.00,0.00,1.00 +-177.60,67.20,1.00,0.00,1.00 +177.60,62.40,1.00,0.00,1.00 +177.60,57.60,1.00,0.00,1.00 +177.60,52.80,1.00,0.00,1.00 +177.60,48.00,1.00,0.00,1.00 +177.60,43.20,1.00,0.00,1.00 +177.60,38.40,1.00,0.00,1.00 +177.60,33.60,1.00,0.00,1.00 +177.60,28.80,1.00,0.00,1.00 +177.60,24.00,1.00,0.00,1.00 +177.60,19.20,1.00,0.00,1.00 +177.60,14.40,1.00,0.00,1.00 +177.60,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-177.60,-9.60,1.00,0.00,1.00 +-177.60,-14.40,1.00,0.00,1.00 +-177.60,-19.20,1.00,0.00,1.00 +-177.60,-24.00,1.00,0.00,1.00 +-177.60,-28.80,1.00,0.00,1.00 +-177.60,-33.60,1.00,0.00,1.00 +-177.60,-38.40,1.00,0.00,1.00 +-177.60,-48.00,1.00,0.00,1.00 +-177.60,-48.00,1.00,0.00,1.00 +-177.60,-52.80,1.00,0.00,1.00 +-177.60,-57.60,1.00,0.00,1.00 +177.60,-62.40,1.00,0.00,1.00 +177.60,-67.20,1.00,0.00,1.00 +177.60,-76.80,1.00,0.00,1.00 +177.60,-76.80,1.00,0.00,1.00 +177.60,-86.40,1.00,0.00,1.00 +177.60,-91.20,1.00,0.00,1.00 +0.00,-86.40,1.00,0.00,1.00 +0.00,-81.60,1.00,0.00,1.00 +0.00,-76.80,1.00,0.00,1.00 +0.00,-72.00,1.00,0.00,1.00 +0.00,-67.20,1.00,0.00,1.00 +0.00,-62.40,1.00,0.00,1.00 +0.00,-57.60,1.00,0.00,1.00 +0.00,-52.80,1.00,0.00,1.00 +0.00,-48.00,1.00,0.00,1.00 +0.00,-43.20,1.00,0.00,1.00 +0.00,-38.40,1.00,0.00,1.00 +0.00,-33.60,1.00,0.00,1.00 +0.00,-28.80,1.00,0.00,1.00 +0.00,-24.00,1.00,0.00,1.00 +0.00,-19.20,1.00,0.00,1.00 +0.00,-14.40,1.00,0.00,1.00 +0.00,-9.60,1.00,0.00,1.00 +0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,4.80,1.00,0.00,1.00 +0.00,9.60,1.00,0.00,1.00 +0.00,14.40,1.00,0.00,1.00 +0.00,19.20,1.00,0.00,1.00 +0.00,24.00,1.00,0.00,1.00 +4.80,28.80,1.00,0.00,1.00 +4.80,33.60,1.00,0.00,1.00 +4.80,38.40,1.00,0.00,1.00 +4.80,43.20,1.00,0.00,1.00 +4.80,48.00,1.00,0.00,1.00 +4.80,52.80,1.00,0.00,1.00 +9.60,57.60,1.00,0.00,1.00 +9.60,62.40,1.00,0.00,1.00 +9.60,67.20,1.00,0.00,1.00 +14.40,72.00,1.00,0.00,1.00 +19.20,76.80,1.00,0.00,1.00 +28.80,81.60,1.00,0.00,1.00 +52.80,86.40,1.00,0.00,1.00 +105.60,86.40,1.00,0.00,1.00 +139.20,81.60,1.00,0.00,1.00 +158.40,76.80,1.00,0.00,1.00 +163.20,72.00,1.00,0.00,1.00 +168.00,67.20,1.00,0.00,1.00 +168.00,62.40,1.00,0.00,1.00 +172.80,57.60,1.00,0.00,1.00 +172.80,52.80,1.00,0.00,1.00 +172.80,48.00,1.00,0.00,1.00 +172.80,43.20,1.00,0.00,1.00 +177.60,38.40,1.00,0.00,1.00 +177.60,33.60,1.00,0.00,1.00 +177.60,28.80,1.00,0.00,1.00 +177.60,24.00,1.00,0.00,1.00 +177.60,19.20,1.00,0.00,1.00 +177.60,14.40,1.00,0.00,1.00 +177.60,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-177.60,-9.60,1.00,0.00,1.00 +-177.60,-14.40,1.00,0.00,1.00 +-177.60,-19.20,1.00,0.00,1.00 +-177.60,-24.00,1.00,0.00,1.00 +-177.60,-28.80,1.00,0.00,1.00 +-177.60,-33.60,1.00,0.00,1.00 +-177.60,-38.40,1.00,0.00,1.00 +-172.80,-43.20,1.00,0.00,1.00 +-172.80,-48.00,1.00,0.00,1.00 +-172.80,-52.80,1.00,0.00,1.00 +-172.80,-57.60,1.00,0.00,1.00 +-168.00,-62.40,1.00,0.00,1.00 +-168.00,-67.20,1.00,0.00,1.00 +-163.20,-72.00,1.00,0.00,1.00 +-158.40,-76.80,1.00,0.00,1.00 +-139.20,-81.60,1.00,0.00,1.00 +-105.60,-86.40,1.00,0.00,1.00 +-52.80,-86.40,1.00,0.00,1.00 +-28.80,-81.60,1.00,0.00,1.00 +-19.20,-76.80,1.00,0.00,1.00 +-14.40,-72.00,1.00,0.00,1.00 +-9.60,-67.20,1.00,0.00,1.00 +-9.60,-62.40,1.00,0.00,1.00 +-9.60,-57.60,1.00,0.00,1.00 +-4.80,-52.80,1.00,0.00,1.00 +-4.80,-48.00,1.00,0.00,1.00 +-4.80,-43.20,1.00,0.00,1.00 +-4.80,-38.40,1.00,0.00,1.00 +-4.80,-33.60,1.00,0.00,1.00 +-4.80,-28.80,1.00,0.00,1.00 +-0.00,-24.00,1.00,0.00,1.00 +-0.00,-19.20,1.00,0.00,1.00 +-0.00,-14.40,1.00,0.00,1.00 +-0.00,-9.60,1.00,0.00,1.00 +-0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,4.80,1.00,0.00,1.00 +0.00,9.60,1.00,0.00,1.00 +4.80,14.40,1.00,0.00,1.00 +4.80,19.20,1.00,0.00,1.00 +4.80,24.00,1.00,0.00,1.00 +4.80,28.80,1.00,0.00,1.00 +4.80,33.60,1.00,0.00,1.00 +9.60,38.40,1.00,0.00,1.00 +9.60,43.20,1.00,0.00,1.00 +9.60,48.00,1.00,0.00,1.00 +14.40,52.80,1.00,0.00,1.00 +14.40,57.60,1.00,0.00,1.00 +19.20,62.40,1.00,0.00,1.00 +24.00,67.20,1.00,0.00,1.00 +28.80,72.00,1.00,0.00,1.00 +33.60,72.00,1.00,0.00,1.00 +48.00,76.80,1.00,0.00,1.00 +67.20,81.60,1.00,0.00,1.00 +96.00,81.60,1.00,0.00,1.00 +120.00,76.80,1.00,0.00,1.00 +139.20,76.80,1.00,0.00,1.00 +148.80,72.00,1.00,0.00,1.00 +153.60,67.20,1.00,0.00,1.00 +158.40,62.40,1.00,0.00,1.00 +163.20,57.60,1.00,0.00,1.00 +168.00,52.80,1.00,0.00,1.00 +168.00,48.00,1.00,0.00,1.00 +168.00,43.20,1.00,0.00,1.00 +172.80,38.40,1.00,0.00,1.00 +172.80,33.60,1.00,0.00,1.00 +172.80,28.80,1.00,0.00,1.00 +177.60,24.00,1.00,0.00,1.00 +177.60,19.20,1.00,0.00,1.00 +177.60,14.40,1.00,0.00,1.00 +177.60,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-177.60,-9.60,1.00,0.00,1.00 +-177.60,-14.40,1.00,0.00,1.00 +-177.60,-19.20,1.00,0.00,1.00 +-177.60,-24.00,1.00,0.00,1.00 +-172.80,-28.80,1.00,0.00,1.00 +-172.80,-33.60,1.00,0.00,1.00 +-172.80,-38.40,1.00,0.00,1.00 +-168.00,-43.20,1.00,0.00,1.00 +-168.00,-48.00,1.00,0.00,1.00 +-168.00,-52.80,1.00,0.00,1.00 +-163.20,-57.60,1.00,0.00,1.00 +-158.40,-62.40,1.00,0.00,1.00 +-153.60,-67.20,1.00,0.00,1.00 +-148.80,-72.00,1.00,0.00,1.00 +-139.20,-76.80,1.00,0.00,1.00 +-120.00,-76.80,1.00,0.00,1.00 +-96.00,-81.60,1.00,0.00,1.00 +-67.20,-81.60,1.00,0.00,1.00 +-48.00,-76.80,1.00,0.00,1.00 +-33.60,-72.00,1.00,0.00,1.00 +-28.80,-72.00,1.00,0.00,1.00 +-24.00,-67.20,1.00,0.00,1.00 +-19.20,-62.40,1.00,0.00,1.00 +-14.40,-57.60,1.00,0.00,1.00 +-14.40,-52.80,1.00,0.00,1.00 +-9.60,-48.00,1.00,0.00,1.00 +-9.60,-43.20,1.00,0.00,1.00 +-9.60,-38.40,1.00,0.00,1.00 +-4.80,-33.60,1.00,0.00,1.00 +-4.80,-28.80,1.00,0.00,1.00 +-4.80,-24.00,1.00,0.00,1.00 +-4.80,-19.20,1.00,0.00,1.00 +-4.80,-14.40,1.00,0.00,1.00 +-0.00,-9.60,1.00,0.00,1.00 +-0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,4.80,1.00,0.00,1.00 +4.80,9.60,1.00,0.00,1.00 +4.80,14.40,1.00,0.00,1.00 +4.80,19.20,1.00,0.00,1.00 +4.80,24.00,1.00,0.00,1.00 +9.60,28.80,1.00,0.00,1.00 +9.60,33.60,1.00,0.00,1.00 +9.60,38.40,1.00,0.00,1.00 +14.40,43.20,1.00,0.00,1.00 +14.40,48.00,1.00,0.00,1.00 +19.20,52.80,1.00,0.00,1.00 +19.20,52.80,1.00,0.00,1.00 +24.00,57.60,1.00,0.00,1.00 +28.80,62.40,1.00,0.00,1.00 +38.40,67.20,1.00,0.00,1.00 +48.00,72.00,1.00,0.00,1.00 +57.60,72.00,1.00,0.00,1.00 +76.80,76.80,1.00,0.00,1.00 +96.00,76.80,1.00,0.00,1.00 +115.20,76.80,1.00,0.00,1.00 +129.60,72.00,1.00,0.00,1.00 +139.20,67.20,1.00,0.00,1.00 +144.00,67.20,1.00,0.00,1.00 +153.60,62.40,1.00,0.00,1.00 +158.40,57.60,1.00,0.00,1.00 +158.40,52.80,1.00,0.00,1.00 +163.20,48.00,1.00,0.00,1.00 +168.00,43.20,1.00,0.00,1.00 +168.00,38.40,1.00,0.00,1.00 +168.00,33.60,1.00,0.00,1.00 +172.80,28.80,1.00,0.00,1.00 +172.80,24.00,1.00,0.00,1.00 +172.80,19.20,1.00,0.00,1.00 +177.60,14.40,1.00,0.00,1.00 +177.60,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-177.60,-9.60,1.00,0.00,1.00 +-177.60,-14.40,1.00,0.00,1.00 +-172.80,-19.20,1.00,0.00,1.00 +-172.80,-24.00,1.00,0.00,1.00 +-172.80,-28.80,1.00,0.00,1.00 +-168.00,-33.60,1.00,0.00,1.00 +-168.00,-38.40,1.00,0.00,1.00 +-168.00,-43.20,1.00,0.00,1.00 +-163.20,-48.00,1.00,0.00,1.00 +-158.40,-52.80,1.00,0.00,1.00 +-158.40,-57.60,1.00,0.00,1.00 +-153.60,-62.40,1.00,0.00,1.00 +-144.00,-67.20,1.00,0.00,1.00 +-139.20,-67.20,1.00,0.00,1.00 +-129.60,-72.00,1.00,0.00,1.00 +-115.20,-76.80,1.00,0.00,1.00 +-96.00,-76.80,1.00,0.00,1.00 +-76.80,-76.80,1.00,0.00,1.00 +-57.60,-72.00,1.00,0.00,1.00 +-48.00,-72.00,1.00,0.00,1.00 +-38.40,-67.20,1.00,0.00,1.00 +-28.80,-62.40,1.00,0.00,1.00 +-24.00,-57.60,1.00,0.00,1.00 +-19.20,-52.80,1.00,0.00,1.00 +-19.20,-52.80,1.00,0.00,1.00 +-14.40,-48.00,1.00,0.00,1.00 +-14.40,-43.20,1.00,0.00,1.00 +-9.60,-38.40,1.00,0.00,1.00 +-9.60,-33.60,1.00,0.00,1.00 +-9.60,-28.80,1.00,0.00,1.00 +-4.80,-24.00,1.00,0.00,1.00 +-4.80,-19.20,1.00,0.00,1.00 +-4.80,-14.40,1.00,0.00,1.00 +-4.80,-9.60,1.00,0.00,1.00 +-0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,4.80,1.00,0.00,1.00 +4.80,9.60,1.00,0.00,1.00 +4.80,14.40,1.00,0.00,1.00 +4.80,19.20,1.00,0.00,1.00 +9.60,24.00,1.00,0.00,1.00 +9.60,28.80,1.00,0.00,1.00 +14.40,33.60,1.00,0.00,1.00 +14.40,33.60,1.00,0.00,1.00 +19.20,38.40,1.00,0.00,1.00 +19.20,43.20,1.00,0.00,1.00 +24.00,48.00,1.00,0.00,1.00 +28.80,52.80,1.00,0.00,1.00 +33.60,57.60,1.00,0.00,1.00 +38.40,62.40,1.00,0.00,1.00 +43.20,62.40,1.00,0.00,1.00 +52.80,67.20,1.00,0.00,1.00 +67.20,67.20,1.00,0.00,1.00 +76.80,72.00,1.00,0.00,1.00 +96.00,72.00,1.00,0.00,1.00 +105.60,72.00,1.00,0.00,1.00 +120.00,67.20,1.00,0.00,1.00 +129.60,67.20,1.00,0.00,1.00 +139.20,62.40,1.00,0.00,1.00 +144.00,57.60,1.00,0.00,1.00 +148.80,52.80,1.00,0.00,1.00 +153.60,52.80,1.00,0.00,1.00 +158.40,48.00,1.00,0.00,1.00 +163.20,43.20,1.00,0.00,1.00 +163.20,38.40,1.00,0.00,1.00 +168.00,33.60,1.00,0.00,1.00 +168.00,28.80,1.00,0.00,1.00 +172.80,24.00,1.00,0.00,1.00 +172.80,19.20,1.00,0.00,1.00 +172.80,14.40,1.00,0.00,1.00 +177.60,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-177.60,-9.60,1.00,0.00,1.00 +-172.80,-14.40,1.00,0.00,1.00 +-172.80,-19.20,1.00,0.00,1.00 +-172.80,-24.00,1.00,0.00,1.00 +-168.00,-28.80,1.00,0.00,1.00 +-168.00,-33.60,1.00,0.00,1.00 +-163.20,-38.40,1.00,0.00,1.00 +-163.20,-43.20,1.00,0.00,1.00 +-158.40,-48.00,1.00,0.00,1.00 +-153.60,-52.80,1.00,0.00,1.00 +-148.80,-52.80,1.00,0.00,1.00 +-144.00,-57.60,1.00,0.00,1.00 +-139.20,-62.40,1.00,0.00,1.00 +-129.60,-67.20,1.00,0.00,1.00 +-120.00,-67.20,1.00,0.00,1.00 +-105.60,-72.00,1.00,0.00,1.00 +-96.00,-72.00,1.00,0.00,1.00 +-76.80,-72.00,1.00,0.00,1.00 +-67.20,-67.20,1.00,0.00,1.00 +-52.80,-67.20,1.00,0.00,1.00 +-43.20,-62.40,1.00,0.00,1.00 +-38.40,-62.40,1.00,0.00,1.00 +-33.60,-57.60,1.00,0.00,1.00 +-28.80,-52.80,1.00,0.00,1.00 +-24.00,-48.00,1.00,0.00,1.00 +-19.20,-43.20,1.00,0.00,1.00 +-19.20,-38.40,1.00,0.00,1.00 +-14.40,-33.60,1.00,0.00,1.00 +-14.40,-33.60,1.00,0.00,1.00 +-9.60,-28.80,1.00,0.00,1.00 +-9.60,-24.00,1.00,0.00,1.00 +-4.80,-19.20,1.00,0.00,1.00 +-4.80,-14.40,1.00,0.00,1.00 +-4.80,-9.60,1.00,0.00,1.00 +-0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,4.80,1.00,0.00,1.00 +4.80,9.60,1.00,0.00,1.00 +4.80,14.40,1.00,0.00,1.00 +9.60,19.20,1.00,0.00,1.00 +9.60,24.00,1.00,0.00,1.00 +14.40,24.00,1.00,0.00,1.00 +14.40,28.80,1.00,0.00,1.00 +19.20,33.60,1.00,0.00,1.00 +19.20,38.40,1.00,0.00,1.00 +24.00,43.20,1.00,0.00,1.00 +28.80,48.00,1.00,0.00,1.00 +33.60,52.80,1.00,0.00,1.00 +38.40,52.80,1.00,0.00,1.00 +43.20,57.60,1.00,0.00,1.00 +52.80,62.40,1.00,0.00,1.00 +62.40,62.40,1.00,0.00,1.00 +72.00,62.40,1.00,0.00,1.00 +81.60,67.20,1.00,0.00,1.00 +91.20,67.20,1.00,0.00,1.00 +105.60,67.20,1.00,0.00,1.00 +115.20,62.40,1.00,0.00,1.00 +124.80,62.40,1.00,0.00,1.00 +134.40,57.60,1.00,0.00,1.00 +139.20,57.60,1.00,0.00,1.00 +144.00,52.80,1.00,0.00,1.00 +148.80,48.00,1.00,0.00,1.00 +153.60,43.20,1.00,0.00,1.00 +158.40,38.40,1.00,0.00,1.00 +158.40,38.40,1.00,0.00,1.00 +163.20,33.60,1.00,0.00,1.00 +168.00,28.80,1.00,0.00,1.00 +168.00,24.00,1.00,0.00,1.00 +172.80,19.20,1.00,0.00,1.00 +172.80,14.40,1.00,0.00,1.00 +172.80,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-172.80,-9.60,1.00,0.00,1.00 +-172.80,-14.40,1.00,0.00,1.00 +-172.80,-19.20,1.00,0.00,1.00 +-168.00,-24.00,1.00,0.00,1.00 +-168.00,-28.80,1.00,0.00,1.00 +-163.20,-33.60,1.00,0.00,1.00 +-158.40,-38.40,1.00,0.00,1.00 +-158.40,-38.40,1.00,0.00,1.00 +-153.60,-43.20,1.00,0.00,1.00 +-148.80,-48.00,1.00,0.00,1.00 +-144.00,-52.80,1.00,0.00,1.00 +-139.20,-57.60,1.00,0.00,1.00 +-134.40,-57.60,1.00,0.00,1.00 +-124.80,-62.40,1.00,0.00,1.00 +-115.20,-62.40,1.00,0.00,1.00 +-105.60,-67.20,1.00,0.00,1.00 +-91.20,-67.20,1.00,0.00,1.00 +-81.60,-67.20,1.00,0.00,1.00 +-72.00,-62.40,1.00,0.00,1.00 +-62.40,-62.40,1.00,0.00,1.00 +-52.80,-62.40,1.00,0.00,1.00 +-43.20,-57.60,1.00,0.00,1.00 +-38.40,-52.80,1.00,0.00,1.00 +-33.60,-52.80,1.00,0.00,1.00 +-28.80,-48.00,1.00,0.00,1.00 +-24.00,-43.20,1.00,0.00,1.00 +-19.20,-38.40,1.00,0.00,1.00 +-19.20,-33.60,1.00,0.00,1.00 +-14.40,-28.80,1.00,0.00,1.00 +-14.40,-24.00,1.00,0.00,1.00 +-9.60,-24.00,1.00,0.00,1.00 +-9.60,-19.20,1.00,0.00,1.00 +-4.80,-14.40,1.00,0.00,1.00 +-4.80,-9.60,1.00,0.00,1.00 +-0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +0.00,4.80,1.00,0.00,1.00 +4.80,9.60,1.00,0.00,1.00 +4.80,14.40,1.00,0.00,1.00 +9.60,14.40,1.00,0.00,1.00 +14.40,19.20,1.00,0.00,1.00 +14.40,24.00,1.00,0.00,1.00 +19.20,28.80,1.00,0.00,1.00 +19.20,33.60,1.00,0.00,1.00 +24.00,38.40,1.00,0.00,1.00 +28.80,38.40,1.00,0.00,1.00 +33.60,43.20,1.00,0.00,1.00 +38.40,48.00,1.00,0.00,1.00 +43.20,52.80,1.00,0.00,1.00 +48.00,52.80,1.00,0.00,1.00 +57.60,57.60,1.00,0.00,1.00 +62.40,57.60,1.00,0.00,1.00 +72.00,62.40,1.00,0.00,1.00 +81.60,62.40,1.00,0.00,1.00 +91.20,62.40,1.00,0.00,1.00 +100.80,62.40,1.00,0.00,1.00 +110.40,57.60,1.00,0.00,1.00 +120.00,57.60,1.00,0.00,1.00 +129.60,57.60,1.00,0.00,1.00 +134.40,52.80,1.00,0.00,1.00 +139.20,48.00,1.00,0.00,1.00 +144.00,48.00,1.00,0.00,1.00 +148.80,43.20,1.00,0.00,1.00 +153.60,38.40,1.00,0.00,1.00 +158.40,33.60,1.00,0.00,1.00 +158.40,28.80,1.00,0.00,1.00 +163.20,28.80,1.00,0.00,1.00 +168.00,24.00,1.00,0.00,1.00 +168.00,19.20,1.00,0.00,1.00 +172.80,14.40,1.00,0.00,1.00 +172.80,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-172.80,-9.60,1.00,0.00,1.00 +-172.80,-14.40,1.00,0.00,1.00 +-168.00,-19.20,1.00,0.00,1.00 +-168.00,-24.00,1.00,0.00,1.00 +-163.20,-28.80,1.00,0.00,1.00 +-158.40,-28.80,1.00,0.00,1.00 +-158.40,-33.60,1.00,0.00,1.00 +-153.60,-38.40,1.00,0.00,1.00 +-148.80,-43.20,1.00,0.00,1.00 +-144.00,-48.00,1.00,0.00,1.00 +-139.20,-48.00,1.00,0.00,1.00 +-134.40,-52.80,1.00,0.00,1.00 +-129.60,-57.60,1.00,0.00,1.00 +-120.00,-57.60,1.00,0.00,1.00 +-110.40,-57.60,1.00,0.00,1.00 +-100.80,-62.40,1.00,0.00,1.00 +-91.20,-62.40,1.00,0.00,1.00 +-81.60,-62.40,1.00,0.00,1.00 +-72.00,-62.40,1.00,0.00,1.00 +-62.40,-57.60,1.00,0.00,1.00 +-57.60,-57.60,1.00,0.00,1.00 +-48.00,-52.80,1.00,0.00,1.00 +-43.20,-52.80,1.00,0.00,1.00 +-38.40,-48.00,1.00,0.00,1.00 +-33.60,-43.20,1.00,0.00,1.00 +-28.80,-38.40,1.00,0.00,1.00 +-24.00,-38.40,1.00,0.00,1.00 +-19.20,-33.60,1.00,0.00,1.00 +-19.20,-28.80,1.00,0.00,1.00 +-14.40,-24.00,1.00,0.00,1.00 +-14.40,-19.20,1.00,0.00,1.00 +-9.60,-14.40,1.00,0.00,1.00 +-4.80,-14.40,1.00,0.00,1.00 +-4.80,-9.60,1.00,0.00,1.00 +-0.00,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +4.80,9.60,1.00,0.00,1.00 +9.60,9.60,1.00,0.00,1.00 +9.60,14.40,1.00,0.00,1.00 +14.40,19.20,1.00,0.00,1.00 +19.20,24.00,1.00,0.00,1.00 +19.20,28.80,1.00,0.00,1.00 +24.00,28.80,1.00,0.00,1.00 +28.80,33.60,1.00,0.00,1.00 +33.60,38.40,1.00,0.00,1.00 +38.40,43.20,1.00,0.00,1.00 +43.20,43.20,1.00,0.00,1.00 +48.00,48.00,1.00,0.00,1.00 +52.80,48.00,1.00,0.00,1.00 +57.60,52.80,1.00,0.00,1.00 +67.20,52.80,1.00,0.00,1.00 +76.80,57.60,1.00,0.00,1.00 +81.60,57.60,1.00,0.00,1.00 +91.20,57.60,1.00,0.00,1.00 +100.80,57.60,1.00,0.00,1.00 +110.40,52.80,1.00,0.00,1.00 +115.20,52.80,1.00,0.00,1.00 +124.80,52.80,1.00,0.00,1.00 +129.60,48.00,1.00,0.00,1.00 +134.40,48.00,1.00,0.00,1.00 +139.20,43.20,1.00,0.00,1.00 +144.00,38.40,1.00,0.00,1.00 +148.80,38.40,1.00,0.00,1.00 +153.60,33.60,1.00,0.00,1.00 +158.40,28.80,1.00,0.00,1.00 +163.20,24.00,1.00,0.00,1.00 +163.20,24.00,1.00,0.00,1.00 +168.00,19.20,1.00,0.00,1.00 +172.80,14.40,1.00,0.00,1.00 +172.80,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-172.80,-9.60,1.00,0.00,1.00 +-172.80,-14.40,1.00,0.00,1.00 +-168.00,-19.20,1.00,0.00,1.00 +-163.20,-24.00,1.00,0.00,1.00 +-163.20,-24.00,1.00,0.00,1.00 +-158.40,-28.80,1.00,0.00,1.00 +-153.60,-33.60,1.00,0.00,1.00 +-148.80,-38.40,1.00,0.00,1.00 +-144.00,-38.40,1.00,0.00,1.00 +-139.20,-43.20,1.00,0.00,1.00 +-134.40,-48.00,1.00,0.00,1.00 +-129.60,-48.00,1.00,0.00,1.00 +-124.80,-52.80,1.00,0.00,1.00 +-115.20,-52.80,1.00,0.00,1.00 +-110.40,-52.80,1.00,0.00,1.00 +-100.80,-57.60,1.00,0.00,1.00 +-91.20,-57.60,1.00,0.00,1.00 +-81.60,-57.60,1.00,0.00,1.00 +-76.80,-57.60,1.00,0.00,1.00 +-67.20,-52.80,1.00,0.00,1.00 +-57.60,-52.80,1.00,0.00,1.00 +-52.80,-48.00,1.00,0.00,1.00 +-48.00,-48.00,1.00,0.00,1.00 +-43.20,-43.20,1.00,0.00,1.00 +-38.40,-43.20,1.00,0.00,1.00 +-33.60,-38.40,1.00,0.00,1.00 +-28.80,-33.60,1.00,0.00,1.00 +-24.00,-28.80,1.00,0.00,1.00 +-19.20,-28.80,1.00,0.00,1.00 +-19.20,-24.00,1.00,0.00,1.00 +-14.40,-19.20,1.00,0.00,1.00 +-9.60,-14.40,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +-4.80,-9.60,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +4.80,9.60,1.00,0.00,1.00 +9.60,9.60,1.00,0.00,1.00 +14.40,14.40,1.00,0.00,1.00 +14.40,19.20,1.00,0.00,1.00 +19.20,24.00,1.00,0.00,1.00 +24.00,24.00,1.00,0.00,1.00 +24.00,28.80,1.00,0.00,1.00 +28.80,33.60,1.00,0.00,1.00 +33.60,33.60,1.00,0.00,1.00 +38.40,38.40,1.00,0.00,1.00 +43.20,43.20,1.00,0.00,1.00 +48.00,43.20,1.00,0.00,1.00 +57.60,48.00,1.00,0.00,1.00 +62.40,48.00,1.00,0.00,1.00 +67.20,48.00,1.00,0.00,1.00 +76.80,52.80,1.00,0.00,1.00 +86.40,52.80,1.00,0.00,1.00 +91.20,52.80,1.00,0.00,1.00 +100.80,52.80,1.00,0.00,1.00 +105.60,48.00,1.00,0.00,1.00 +115.20,48.00,1.00,0.00,1.00 +120.00,48.00,1.00,0.00,1.00 +124.80,43.20,1.00,0.00,1.00 +134.40,43.20,1.00,0.00,1.00 +139.20,38.40,1.00,0.00,1.00 +144.00,38.40,1.00,0.00,1.00 +148.80,33.60,1.00,0.00,1.00 +153.60,28.80,1.00,0.00,1.00 +153.60,28.80,1.00,0.00,1.00 +158.40,24.00,1.00,0.00,1.00 +163.20,19.20,1.00,0.00,1.00 +168.00,14.40,1.00,0.00,1.00 +168.00,14.40,1.00,0.00,1.00 +172.80,9.60,1.00,0.00,1.00 +177.60,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-177.60,-4.80,1.00,0.00,1.00 +-172.80,-9.60,1.00,0.00,1.00 +-168.00,-14.40,1.00,0.00,1.00 +-168.00,-14.40,1.00,0.00,1.00 +-163.20,-19.20,1.00,0.00,1.00 +-158.40,-24.00,1.00,0.00,1.00 +-153.60,-28.80,1.00,0.00,1.00 +-153.60,-28.80,1.00,0.00,1.00 +-148.80,-33.60,1.00,0.00,1.00 +-144.00,-38.40,1.00,0.00,1.00 +-139.20,-38.40,1.00,0.00,1.00 +-134.40,-43.20,1.00,0.00,1.00 +-124.80,-43.20,1.00,0.00,1.00 +-120.00,-48.00,1.00,0.00,1.00 +-115.20,-48.00,1.00,0.00,1.00 +-105.60,-48.00,1.00,0.00,1.00 +-100.80,-52.80,1.00,0.00,1.00 +-91.20,-52.80,1.00,0.00,1.00 +-86.40,-52.80,1.00,0.00,1.00 +-76.80,-52.80,1.00,0.00,1.00 +-67.20,-48.00,1.00,0.00,1.00 +-62.40,-48.00,1.00,0.00,1.00 +-57.60,-48.00,1.00,0.00,1.00 +-48.00,-43.20,1.00,0.00,1.00 +-43.20,-43.20,1.00,0.00,1.00 +-38.40,-38.40,1.00,0.00,1.00 +-33.60,-33.60,1.00,0.00,1.00 +-28.80,-33.60,1.00,0.00,1.00 +-24.00,-28.80,1.00,0.00,1.00 +-24.00,-24.00,1.00,0.00,1.00 +-19.20,-24.00,1.00,0.00,1.00 +-14.40,-19.20,1.00,0.00,1.00 +-14.40,-14.40,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +-4.80,-9.60,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +9.60,9.60,1.00,0.00,1.00 +14.40,14.40,1.00,0.00,1.00 +19.20,19.20,1.00,0.00,1.00 +19.20,19.20,1.00,0.00,1.00 +24.00,24.00,1.00,0.00,1.00 +28.80,28.80,1.00,0.00,1.00 +33.60,28.80,1.00,0.00,1.00 +38.40,33.60,1.00,0.00,1.00 +43.20,33.60,1.00,0.00,1.00 +48.00,38.40,1.00,0.00,1.00 +52.80,38.40,1.00,0.00,1.00 +57.60,43.20,1.00,0.00,1.00 +62.40,43.20,1.00,0.00,1.00 +72.00,43.20,1.00,0.00,1.00 +76.80,48.00,1.00,0.00,1.00 +86.40,48.00,1.00,0.00,1.00 +91.20,48.00,1.00,0.00,1.00 +100.80,48.00,1.00,0.00,1.00 +105.60,48.00,1.00,0.00,1.00 +110.40,43.20,1.00,0.00,1.00 +120.00,43.20,1.00,0.00,1.00 +124.80,43.20,1.00,0.00,1.00 +129.60,38.40,1.00,0.00,1.00 +134.40,38.40,1.00,0.00,1.00 +139.20,33.60,1.00,0.00,1.00 +144.00,33.60,1.00,0.00,1.00 +148.80,28.80,1.00,0.00,1.00 +153.60,24.00,1.00,0.00,1.00 +158.40,24.00,1.00,0.00,1.00 +163.20,19.20,1.00,0.00,1.00 +163.20,14.40,1.00,0.00,1.00 +168.00,14.40,1.00,0.00,1.00 +172.80,9.60,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-4.80,1.00,0.00,1.00 +-172.80,-9.60,1.00,0.00,1.00 +-168.00,-14.40,1.00,0.00,1.00 +-163.20,-14.40,1.00,0.00,1.00 +-163.20,-19.20,1.00,0.00,1.00 +-158.40,-24.00,1.00,0.00,1.00 +-153.60,-24.00,1.00,0.00,1.00 +-148.80,-28.80,1.00,0.00,1.00 +-144.00,-33.60,1.00,0.00,1.00 +-139.20,-33.60,1.00,0.00,1.00 +-134.40,-38.40,1.00,0.00,1.00 +-129.60,-38.40,1.00,0.00,1.00 +-124.80,-43.20,1.00,0.00,1.00 +-120.00,-43.20,1.00,0.00,1.00 +-110.40,-43.20,1.00,0.00,1.00 +-105.60,-48.00,1.00,0.00,1.00 +-100.80,-48.00,1.00,0.00,1.00 +-91.20,-48.00,1.00,0.00,1.00 +-86.40,-48.00,1.00,0.00,1.00 +-76.80,-48.00,1.00,0.00,1.00 +-72.00,-43.20,1.00,0.00,1.00 +-62.40,-43.20,1.00,0.00,1.00 +-57.60,-43.20,1.00,0.00,1.00 +-52.80,-38.40,1.00,0.00,1.00 +-48.00,-38.40,1.00,0.00,1.00 +-43.20,-33.60,1.00,0.00,1.00 +-38.40,-33.60,1.00,0.00,1.00 +-33.60,-28.80,1.00,0.00,1.00 +-28.80,-28.80,1.00,0.00,1.00 +-24.00,-24.00,1.00,0.00,1.00 +-19.20,-19.20,1.00,0.00,1.00 +-19.20,-19.20,1.00,0.00,1.00 +-14.40,-14.40,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +9.60,9.60,1.00,0.00,1.00 +14.40,14.40,1.00,0.00,1.00 +19.20,14.40,1.00,0.00,1.00 +24.00,19.20,1.00,0.00,1.00 +24.00,24.00,1.00,0.00,1.00 +28.80,24.00,1.00,0.00,1.00 +33.60,28.80,1.00,0.00,1.00 +38.40,28.80,1.00,0.00,1.00 +43.20,33.60,1.00,0.00,1.00 +48.00,33.60,1.00,0.00,1.00 +52.80,38.40,1.00,0.00,1.00 +62.40,38.40,1.00,0.00,1.00 +67.20,38.40,1.00,0.00,1.00 +72.00,38.40,1.00,0.00,1.00 +76.80,43.20,1.00,0.00,1.00 +86.40,43.20,1.00,0.00,1.00 +91.20,43.20,1.00,0.00,1.00 +96.00,43.20,1.00,0.00,1.00 +105.60,43.20,1.00,0.00,1.00 +110.40,38.40,1.00,0.00,1.00 +115.20,38.40,1.00,0.00,1.00 +120.00,38.40,1.00,0.00,1.00 +129.60,33.60,1.00,0.00,1.00 +134.40,33.60,1.00,0.00,1.00 +139.20,28.80,1.00,0.00,1.00 +144.00,28.80,1.00,0.00,1.00 +148.80,24.00,1.00,0.00,1.00 +153.60,24.00,1.00,0.00,1.00 +153.60,19.20,1.00,0.00,1.00 +158.40,19.20,1.00,0.00,1.00 +163.20,14.40,1.00,0.00,1.00 +168.00,9.60,1.00,0.00,1.00 +172.80,9.60,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-4.80,1.00,0.00,1.00 +-172.80,-9.60,1.00,0.00,1.00 +-168.00,-9.60,1.00,0.00,1.00 +-163.20,-14.40,1.00,0.00,1.00 +-158.40,-19.20,1.00,0.00,1.00 +-153.60,-19.20,1.00,0.00,1.00 +-153.60,-24.00,1.00,0.00,1.00 +-148.80,-24.00,1.00,0.00,1.00 +-144.00,-28.80,1.00,0.00,1.00 +-139.20,-28.80,1.00,0.00,1.00 +-134.40,-33.60,1.00,0.00,1.00 +-129.60,-33.60,1.00,0.00,1.00 +-120.00,-38.40,1.00,0.00,1.00 +-115.20,-38.40,1.00,0.00,1.00 +-110.40,-38.40,1.00,0.00,1.00 +-105.60,-43.20,1.00,0.00,1.00 +-96.00,-43.20,1.00,0.00,1.00 +-91.20,-43.20,1.00,0.00,1.00 +-86.40,-43.20,1.00,0.00,1.00 +-76.80,-43.20,1.00,0.00,1.00 +-72.00,-38.40,1.00,0.00,1.00 +-67.20,-38.40,1.00,0.00,1.00 +-62.40,-38.40,1.00,0.00,1.00 +-52.80,-38.40,1.00,0.00,1.00 +-48.00,-33.60,1.00,0.00,1.00 +-43.20,-33.60,1.00,0.00,1.00 +-38.40,-28.80,1.00,0.00,1.00 +-33.60,-28.80,1.00,0.00,1.00 +-28.80,-24.00,1.00,0.00,1.00 +-24.00,-24.00,1.00,0.00,1.00 +-24.00,-19.20,1.00,0.00,1.00 +-19.20,-14.40,1.00,0.00,1.00 +-14.40,-14.40,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +9.60,9.60,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +19.20,14.40,1.00,0.00,1.00 +24.00,19.20,1.00,0.00,1.00 +28.80,19.20,1.00,0.00,1.00 +33.60,24.00,1.00,0.00,1.00 +38.40,24.00,1.00,0.00,1.00 +43.20,28.80,1.00,0.00,1.00 +48.00,28.80,1.00,0.00,1.00 +52.80,28.80,1.00,0.00,1.00 +57.60,33.60,1.00,0.00,1.00 +62.40,33.60,1.00,0.00,1.00 +67.20,33.60,1.00,0.00,1.00 +72.00,38.40,1.00,0.00,1.00 +81.60,38.40,1.00,0.00,1.00 +86.40,38.40,1.00,0.00,1.00 +91.20,38.40,1.00,0.00,1.00 +96.00,38.40,1.00,0.00,1.00 +105.60,38.40,1.00,0.00,1.00 +110.40,33.60,1.00,0.00,1.00 +115.20,33.60,1.00,0.00,1.00 +120.00,33.60,1.00,0.00,1.00 +124.80,33.60,1.00,0.00,1.00 +129.60,28.80,1.00,0.00,1.00 +134.40,28.80,1.00,0.00,1.00 +139.20,24.00,1.00,0.00,1.00 +144.00,24.00,1.00,0.00,1.00 +148.80,19.20,1.00,0.00,1.00 +153.60,19.20,1.00,0.00,1.00 +158.40,14.40,1.00,0.00,1.00 +163.20,14.40,1.00,0.00,1.00 +168.00,9.60,1.00,0.00,1.00 +168.00,9.60,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-4.80,1.00,0.00,1.00 +-168.00,-9.60,1.00,0.00,1.00 +-168.00,-9.60,1.00,0.00,1.00 +-163.20,-14.40,1.00,0.00,1.00 +-158.40,-14.40,1.00,0.00,1.00 +-153.60,-19.20,1.00,0.00,1.00 +-148.80,-19.20,1.00,0.00,1.00 +-144.00,-24.00,1.00,0.00,1.00 +-139.20,-24.00,1.00,0.00,1.00 +-134.40,-28.80,1.00,0.00,1.00 +-129.60,-28.80,1.00,0.00,1.00 +-124.80,-33.60,1.00,0.00,1.00 +-120.00,-33.60,1.00,0.00,1.00 +-115.20,-33.60,1.00,0.00,1.00 +-110.40,-33.60,1.00,0.00,1.00 +-105.60,-38.40,1.00,0.00,1.00 +-96.00,-38.40,1.00,0.00,1.00 +-91.20,-38.40,1.00,0.00,1.00 +-86.40,-38.40,1.00,0.00,1.00 +-81.60,-38.40,1.00,0.00,1.00 +-72.00,-38.40,1.00,0.00,1.00 +-67.20,-33.60,1.00,0.00,1.00 +-62.40,-33.60,1.00,0.00,1.00 +-57.60,-33.60,1.00,0.00,1.00 +-52.80,-28.80,1.00,0.00,1.00 +-48.00,-28.80,1.00,0.00,1.00 +-43.20,-28.80,1.00,0.00,1.00 +-38.40,-24.00,1.00,0.00,1.00 +-33.60,-24.00,1.00,0.00,1.00 +-28.80,-19.20,1.00,0.00,1.00 +-24.00,-19.20,1.00,0.00,1.00 +-19.20,-14.40,1.00,0.00,1.00 +-14.40,-9.60,1.00,0.00,1.00 +-9.60,-9.60,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,4.80,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +14.40,9.60,1.00,0.00,1.00 +19.20,14.40,1.00,0.00,1.00 +24.00,14.40,1.00,0.00,1.00 +28.80,19.20,1.00,0.00,1.00 +33.60,19.20,1.00,0.00,1.00 +38.40,19.20,1.00,0.00,1.00 +43.20,24.00,1.00,0.00,1.00 +48.00,24.00,1.00,0.00,1.00 +52.80,28.80,1.00,0.00,1.00 +57.60,28.80,1.00,0.00,1.00 +62.40,28.80,1.00,0.00,1.00 +67.20,28.80,1.00,0.00,1.00 +76.80,33.60,1.00,0.00,1.00 +81.60,33.60,1.00,0.00,1.00 +86.40,33.60,1.00,0.00,1.00 +91.20,33.60,1.00,0.00,1.00 +96.00,33.60,1.00,0.00,1.00 +100.80,33.60,1.00,0.00,1.00 +110.40,28.80,1.00,0.00,1.00 +115.20,28.80,1.00,0.00,1.00 +120.00,28.80,1.00,0.00,1.00 +124.80,28.80,1.00,0.00,1.00 +129.60,24.00,1.00,0.00,1.00 +134.40,24.00,1.00,0.00,1.00 +139.20,24.00,1.00,0.00,1.00 +144.00,19.20,1.00,0.00,1.00 +148.80,19.20,1.00,0.00,1.00 +153.60,14.40,1.00,0.00,1.00 +158.40,14.40,1.00,0.00,1.00 +163.20,9.60,1.00,0.00,1.00 +168.00,9.60,1.00,0.00,1.00 +168.00,4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +-168.00,-9.60,1.00,0.00,1.00 +-163.20,-9.60,1.00,0.00,1.00 +-158.40,-14.40,1.00,0.00,1.00 +-153.60,-14.40,1.00,0.00,1.00 +-148.80,-19.20,1.00,0.00,1.00 +-144.00,-19.20,1.00,0.00,1.00 +-139.20,-24.00,1.00,0.00,1.00 +-134.40,-24.00,1.00,0.00,1.00 +-129.60,-24.00,1.00,0.00,1.00 +-124.80,-28.80,1.00,0.00,1.00 +-120.00,-28.80,1.00,0.00,1.00 +-115.20,-28.80,1.00,0.00,1.00 +-110.40,-28.80,1.00,0.00,1.00 +-100.80,-33.60,1.00,0.00,1.00 +-96.00,-33.60,1.00,0.00,1.00 +-91.20,-33.60,1.00,0.00,1.00 +-86.40,-33.60,1.00,0.00,1.00 +-81.60,-33.60,1.00,0.00,1.00 +-76.80,-33.60,1.00,0.00,1.00 +-67.20,-28.80,1.00,0.00,1.00 +-62.40,-28.80,1.00,0.00,1.00 +-57.60,-28.80,1.00,0.00,1.00 +-52.80,-28.80,1.00,0.00,1.00 +-48.00,-24.00,1.00,0.00,1.00 +-43.20,-24.00,1.00,0.00,1.00 +-38.40,-19.20,1.00,0.00,1.00 +-33.60,-19.20,1.00,0.00,1.00 +-28.80,-19.20,1.00,0.00,1.00 +-24.00,-14.40,1.00,0.00,1.00 +-19.20,-14.40,1.00,0.00,1.00 +-14.40,-9.60,1.00,0.00,1.00 +-14.40,-9.60,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +-4.80,-4.80,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +14.40,4.80,1.00,0.00,1.00 +19.20,9.60,1.00,0.00,1.00 +19.20,9.60,1.00,0.00,1.00 +24.00,14.40,1.00,0.00,1.00 +28.80,14.40,1.00,0.00,1.00 +33.60,14.40,1.00,0.00,1.00 +38.40,19.20,1.00,0.00,1.00 +43.20,19.20,1.00,0.00,1.00 +48.00,24.00,1.00,0.00,1.00 +52.80,24.00,1.00,0.00,1.00 +57.60,24.00,1.00,0.00,1.00 +62.40,24.00,1.00,0.00,1.00 +72.00,24.00,1.00,0.00,1.00 +76.80,28.80,1.00,0.00,1.00 +81.60,28.80,1.00,0.00,1.00 +86.40,28.80,1.00,0.00,1.00 +91.20,28.80,1.00,0.00,1.00 +96.00,28.80,1.00,0.00,1.00 +100.80,28.80,1.00,0.00,1.00 +105.60,28.80,1.00,0.00,1.00 +110.40,24.00,1.00,0.00,1.00 +120.00,24.00,1.00,0.00,1.00 +124.80,24.00,1.00,0.00,1.00 +129.60,24.00,1.00,0.00,1.00 +134.40,19.20,1.00,0.00,1.00 +139.20,19.20,1.00,0.00,1.00 +144.00,19.20,1.00,0.00,1.00 +148.80,14.40,1.00,0.00,1.00 +153.60,14.40,1.00,0.00,1.00 +158.40,9.60,1.00,0.00,1.00 +158.40,9.60,1.00,0.00,1.00 +163.20,9.60,1.00,0.00,1.00 +168.00,4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +-163.20,-9.60,1.00,0.00,1.00 +-158.40,-9.60,1.00,0.00,1.00 +-158.40,-9.60,1.00,0.00,1.00 +-153.60,-14.40,1.00,0.00,1.00 +-148.80,-14.40,1.00,0.00,1.00 +-144.00,-19.20,1.00,0.00,1.00 +-139.20,-19.20,1.00,0.00,1.00 +-134.40,-19.20,1.00,0.00,1.00 +-129.60,-24.00,1.00,0.00,1.00 +-124.80,-24.00,1.00,0.00,1.00 +-120.00,-24.00,1.00,0.00,1.00 +-110.40,-24.00,1.00,0.00,1.00 +-105.60,-28.80,1.00,0.00,1.00 +-100.80,-28.80,1.00,0.00,1.00 +-96.00,-28.80,1.00,0.00,1.00 +-91.20,-28.80,1.00,0.00,1.00 +-86.40,-28.80,1.00,0.00,1.00 +-81.60,-28.80,1.00,0.00,1.00 +-76.80,-28.80,1.00,0.00,1.00 +-72.00,-24.00,1.00,0.00,1.00 +-62.40,-24.00,1.00,0.00,1.00 +-57.60,-24.00,1.00,0.00,1.00 +-52.80,-24.00,1.00,0.00,1.00 +-48.00,-24.00,1.00,0.00,1.00 +-43.20,-19.20,1.00,0.00,1.00 +-38.40,-19.20,1.00,0.00,1.00 +-33.60,-14.40,1.00,0.00,1.00 +-28.80,-14.40,1.00,0.00,1.00 +-24.00,-14.40,1.00,0.00,1.00 +-19.20,-9.60,1.00,0.00,1.00 +-19.20,-9.60,1.00,0.00,1.00 +-14.40,-4.80,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +14.40,4.80,1.00,0.00,1.00 +19.20,9.60,1.00,0.00,1.00 +24.00,9.60,1.00,0.00,1.00 +28.80,9.60,1.00,0.00,1.00 +33.60,14.40,1.00,0.00,1.00 +38.40,14.40,1.00,0.00,1.00 +43.20,14.40,1.00,0.00,1.00 +48.00,14.40,1.00,0.00,1.00 +52.80,19.20,1.00,0.00,1.00 +57.60,19.20,1.00,0.00,1.00 +62.40,19.20,1.00,0.00,1.00 +67.20,19.20,1.00,0.00,1.00 +72.00,24.00,1.00,0.00,1.00 +76.80,24.00,1.00,0.00,1.00 +81.60,24.00,1.00,0.00,1.00 +86.40,24.00,1.00,0.00,1.00 +91.20,24.00,1.00,0.00,1.00 +96.00,24.00,1.00,0.00,1.00 +100.80,24.00,1.00,0.00,1.00 +105.60,24.00,1.00,0.00,1.00 +110.40,19.20,1.00,0.00,1.00 +115.20,19.20,1.00,0.00,1.00 +120.00,19.20,1.00,0.00,1.00 +124.80,19.20,1.00,0.00,1.00 +129.60,19.20,1.00,0.00,1.00 +134.40,14.40,1.00,0.00,1.00 +139.20,14.40,1.00,0.00,1.00 +144.00,14.40,1.00,0.00,1.00 +148.80,9.60,1.00,0.00,1.00 +153.60,9.60,1.00,0.00,1.00 +158.40,9.60,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +168.00,4.80,1.00,0.00,1.00 +172.80,4.80,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-4.80,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +-163.20,-4.80,1.00,0.00,1.00 +-158.40,-9.60,1.00,0.00,1.00 +-153.60,-9.60,1.00,0.00,1.00 +-148.80,-9.60,1.00,0.00,1.00 +-144.00,-14.40,1.00,0.00,1.00 +-139.20,-14.40,1.00,0.00,1.00 +-134.40,-14.40,1.00,0.00,1.00 +-129.60,-19.20,1.00,0.00,1.00 +-124.80,-19.20,1.00,0.00,1.00 +-120.00,-19.20,1.00,0.00,1.00 +-115.20,-19.20,1.00,0.00,1.00 +-110.40,-19.20,1.00,0.00,1.00 +-105.60,-24.00,1.00,0.00,1.00 +-100.80,-24.00,1.00,0.00,1.00 +-96.00,-24.00,1.00,0.00,1.00 +-91.20,-24.00,1.00,0.00,1.00 +-86.40,-24.00,1.00,0.00,1.00 +-81.60,-24.00,1.00,0.00,1.00 +-76.80,-24.00,1.00,0.00,1.00 +-72.00,-24.00,1.00,0.00,1.00 +-67.20,-19.20,1.00,0.00,1.00 +-62.40,-19.20,1.00,0.00,1.00 +-57.60,-19.20,1.00,0.00,1.00 +-52.80,-19.20,1.00,0.00,1.00 +-48.00,-14.40,1.00,0.00,1.00 +-43.20,-14.40,1.00,0.00,1.00 +-38.40,-14.40,1.00,0.00,1.00 +-33.60,-14.40,1.00,0.00,1.00 +-28.80,-9.60,1.00,0.00,1.00 +-24.00,-9.60,1.00,0.00,1.00 +-19.20,-9.60,1.00,0.00,1.00 +-14.40,-4.80,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +9.60,4.80,1.00,0.00,1.00 +14.40,4.80,1.00,0.00,1.00 +19.20,4.80,1.00,0.00,1.00 +24.00,9.60,1.00,0.00,1.00 +28.80,9.60,1.00,0.00,1.00 +33.60,9.60,1.00,0.00,1.00 +38.40,9.60,1.00,0.00,1.00 +43.20,14.40,1.00,0.00,1.00 +48.00,14.40,1.00,0.00,1.00 +52.80,14.40,1.00,0.00,1.00 +57.60,14.40,1.00,0.00,1.00 +62.40,14.40,1.00,0.00,1.00 +67.20,14.40,1.00,0.00,1.00 +72.00,19.20,1.00,0.00,1.00 +76.80,19.20,1.00,0.00,1.00 +81.60,19.20,1.00,0.00,1.00 +86.40,19.20,1.00,0.00,1.00 +91.20,19.20,1.00,0.00,1.00 +96.00,19.20,1.00,0.00,1.00 +100.80,19.20,1.00,0.00,1.00 +105.60,19.20,1.00,0.00,1.00 +110.40,19.20,1.00,0.00,1.00 +115.20,14.40,1.00,0.00,1.00 +120.00,14.40,1.00,0.00,1.00 +124.80,14.40,1.00,0.00,1.00 +129.60,14.40,1.00,0.00,1.00 +134.40,14.40,1.00,0.00,1.00 +139.20,9.60,1.00,0.00,1.00 +144.00,9.60,1.00,0.00,1.00 +148.80,9.60,1.00,0.00,1.00 +153.60,9.60,1.00,0.00,1.00 +158.40,4.80,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +168.00,4.80,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-0.00,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +-163.20,-4.80,1.00,0.00,1.00 +-158.40,-4.80,1.00,0.00,1.00 +-153.60,-9.60,1.00,0.00,1.00 +-148.80,-9.60,1.00,0.00,1.00 +-144.00,-9.60,1.00,0.00,1.00 +-139.20,-9.60,1.00,0.00,1.00 +-134.40,-14.40,1.00,0.00,1.00 +-129.60,-14.40,1.00,0.00,1.00 +-124.80,-14.40,1.00,0.00,1.00 +-120.00,-14.40,1.00,0.00,1.00 +-115.20,-14.40,1.00,0.00,1.00 +-110.40,-19.20,1.00,0.00,1.00 +-105.60,-19.20,1.00,0.00,1.00 +-100.80,-19.20,1.00,0.00,1.00 +-96.00,-19.20,1.00,0.00,1.00 +-91.20,-19.20,1.00,0.00,1.00 +-86.40,-19.20,1.00,0.00,1.00 +-81.60,-19.20,1.00,0.00,1.00 +-76.80,-19.20,1.00,0.00,1.00 +-72.00,-19.20,1.00,0.00,1.00 +-67.20,-14.40,1.00,0.00,1.00 +-62.40,-14.40,1.00,0.00,1.00 +-57.60,-14.40,1.00,0.00,1.00 +-52.80,-14.40,1.00,0.00,1.00 +-48.00,-14.40,1.00,0.00,1.00 +-43.20,-14.40,1.00,0.00,1.00 +-38.40,-9.60,1.00,0.00,1.00 +-33.60,-9.60,1.00,0.00,1.00 +-28.80,-9.60,1.00,0.00,1.00 +-24.00,-9.60,1.00,0.00,1.00 +-19.20,-4.80,1.00,0.00,1.00 +-14.40,-4.80,1.00,0.00,1.00 +-9.60,-4.80,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +9.60,0.00,1.00,0.00,1.00 +14.40,4.80,1.00,0.00,1.00 +19.20,4.80,1.00,0.00,1.00 +24.00,4.80,1.00,0.00,1.00 +28.80,4.80,1.00,0.00,1.00 +33.60,9.60,1.00,0.00,1.00 +38.40,9.60,1.00,0.00,1.00 +43.20,9.60,1.00,0.00,1.00 +48.00,9.60,1.00,0.00,1.00 +52.80,9.60,1.00,0.00,1.00 +57.60,9.60,1.00,0.00,1.00 +62.40,9.60,1.00,0.00,1.00 +67.20,14.40,1.00,0.00,1.00 +72.00,14.40,1.00,0.00,1.00 +76.80,14.40,1.00,0.00,1.00 +81.60,14.40,1.00,0.00,1.00 +86.40,14.40,1.00,0.00,1.00 +91.20,14.40,1.00,0.00,1.00 +96.00,14.40,1.00,0.00,1.00 +100.80,14.40,1.00,0.00,1.00 +105.60,14.40,1.00,0.00,1.00 +110.40,14.40,1.00,0.00,1.00 +115.20,9.60,1.00,0.00,1.00 +120.00,9.60,1.00,0.00,1.00 +124.80,9.60,1.00,0.00,1.00 +129.60,9.60,1.00,0.00,1.00 +134.40,9.60,1.00,0.00,1.00 +139.20,9.60,1.00,0.00,1.00 +144.00,9.60,1.00,0.00,1.00 +148.80,4.80,1.00,0.00,1.00 +153.60,4.80,1.00,0.00,1.00 +158.40,4.80,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +168.00,4.80,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-0.00,1.00,0.00,1.00 +-168.00,-4.80,1.00,0.00,1.00 +-163.20,-4.80,1.00,0.00,1.00 +-158.40,-4.80,1.00,0.00,1.00 +-153.60,-4.80,1.00,0.00,1.00 +-148.80,-4.80,1.00,0.00,1.00 +-144.00,-9.60,1.00,0.00,1.00 +-139.20,-9.60,1.00,0.00,1.00 +-134.40,-9.60,1.00,0.00,1.00 +-129.60,-9.60,1.00,0.00,1.00 +-124.80,-9.60,1.00,0.00,1.00 +-120.00,-9.60,1.00,0.00,1.00 +-115.20,-9.60,1.00,0.00,1.00 +-110.40,-14.40,1.00,0.00,1.00 +-105.60,-14.40,1.00,0.00,1.00 +-100.80,-14.40,1.00,0.00,1.00 +-96.00,-14.40,1.00,0.00,1.00 +-91.20,-14.40,1.00,0.00,1.00 +-86.40,-14.40,1.00,0.00,1.00 +-81.60,-14.40,1.00,0.00,1.00 +-76.80,-14.40,1.00,0.00,1.00 +-72.00,-14.40,1.00,0.00,1.00 +-67.20,-14.40,1.00,0.00,1.00 +-62.40,-9.60,1.00,0.00,1.00 +-57.60,-9.60,1.00,0.00,1.00 +-52.80,-9.60,1.00,0.00,1.00 +-48.00,-9.60,1.00,0.00,1.00 +-43.20,-9.60,1.00,0.00,1.00 +-38.40,-9.60,1.00,0.00,1.00 +-33.60,-9.60,1.00,0.00,1.00 +-28.80,-4.80,1.00,0.00,1.00 +-24.00,-4.80,1.00,0.00,1.00 +-19.20,-4.80,1.00,0.00,1.00 +-14.40,-4.80,1.00,0.00,1.00 +-9.60,-0.00,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +9.60,0.00,1.00,0.00,1.00 +14.40,0.00,1.00,0.00,1.00 +19.20,4.80,1.00,0.00,1.00 +24.00,4.80,1.00,0.00,1.00 +28.80,4.80,1.00,0.00,1.00 +33.60,4.80,1.00,0.00,1.00 +38.40,4.80,1.00,0.00,1.00 +43.20,4.80,1.00,0.00,1.00 +48.00,4.80,1.00,0.00,1.00 +52.80,4.80,1.00,0.00,1.00 +57.60,4.80,1.00,0.00,1.00 +62.40,9.60,1.00,0.00,1.00 +67.20,9.60,1.00,0.00,1.00 +72.00,9.60,1.00,0.00,1.00 +76.80,9.60,1.00,0.00,1.00 +81.60,9.60,1.00,0.00,1.00 +86.40,9.60,1.00,0.00,1.00 +91.20,9.60,1.00,0.00,1.00 +96.00,9.60,1.00,0.00,1.00 +100.80,9.60,1.00,0.00,1.00 +105.60,9.60,1.00,0.00,1.00 +110.40,9.60,1.00,0.00,1.00 +115.20,9.60,1.00,0.00,1.00 +120.00,9.60,1.00,0.00,1.00 +124.80,4.80,1.00,0.00,1.00 +129.60,4.80,1.00,0.00,1.00 +134.40,4.80,1.00,0.00,1.00 +139.20,4.80,1.00,0.00,1.00 +144.00,4.80,1.00,0.00,1.00 +148.80,4.80,1.00,0.00,1.00 +153.60,4.80,1.00,0.00,1.00 +158.40,4.80,1.00,0.00,1.00 +163.20,4.80,1.00,0.00,1.00 +168.00,0.00,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-0.00,1.00,0.00,1.00 +-168.00,-0.00,1.00,0.00,1.00 +-163.20,-4.80,1.00,0.00,1.00 +-158.40,-4.80,1.00,0.00,1.00 +-153.60,-4.80,1.00,0.00,1.00 +-148.80,-4.80,1.00,0.00,1.00 +-144.00,-4.80,1.00,0.00,1.00 +-139.20,-4.80,1.00,0.00,1.00 +-134.40,-4.80,1.00,0.00,1.00 +-129.60,-4.80,1.00,0.00,1.00 +-124.80,-4.80,1.00,0.00,1.00 +-120.00,-9.60,1.00,0.00,1.00 +-115.20,-9.60,1.00,0.00,1.00 +-110.40,-9.60,1.00,0.00,1.00 +-105.60,-9.60,1.00,0.00,1.00 +-100.80,-9.60,1.00,0.00,1.00 +-96.00,-9.60,1.00,0.00,1.00 +-91.20,-9.60,1.00,0.00,1.00 +-86.40,-9.60,1.00,0.00,1.00 +-81.60,-9.60,1.00,0.00,1.00 +-76.80,-9.60,1.00,0.00,1.00 +-72.00,-9.60,1.00,0.00,1.00 +-67.20,-9.60,1.00,0.00,1.00 +-62.40,-9.60,1.00,0.00,1.00 +-57.60,-4.80,1.00,0.00,1.00 +-52.80,-4.80,1.00,0.00,1.00 +-48.00,-4.80,1.00,0.00,1.00 +-43.20,-4.80,1.00,0.00,1.00 +-38.40,-4.80,1.00,0.00,1.00 +-33.60,-4.80,1.00,0.00,1.00 +-28.80,-4.80,1.00,0.00,1.00 +-24.00,-4.80,1.00,0.00,1.00 +-19.20,-4.80,1.00,0.00,1.00 +-14.40,-0.00,1.00,0.00,1.00 +-9.60,-0.00,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,0.00,1.00,0.00,1.00 +9.60,0.00,1.00,0.00,1.00 +14.40,0.00,1.00,0.00,1.00 +19.20,0.00,1.00,0.00,1.00 +24.00,0.00,1.00,0.00,1.00 +28.80,0.00,1.00,0.00,1.00 +33.60,0.00,1.00,0.00,1.00 +38.40,0.00,1.00,0.00,1.00 +43.20,4.80,1.00,0.00,1.00 +48.00,4.80,1.00,0.00,1.00 +52.80,4.80,1.00,0.00,1.00 +57.60,4.80,1.00,0.00,1.00 +62.40,4.80,1.00,0.00,1.00 +67.20,4.80,1.00,0.00,1.00 +72.00,4.80,1.00,0.00,1.00 +76.80,4.80,1.00,0.00,1.00 +81.60,4.80,1.00,0.00,1.00 +86.40,4.80,1.00,0.00,1.00 +91.20,4.80,1.00,0.00,1.00 +96.00,4.80,1.00,0.00,1.00 +100.80,4.80,1.00,0.00,1.00 +105.60,4.80,1.00,0.00,1.00 +110.40,4.80,1.00,0.00,1.00 +115.20,4.80,1.00,0.00,1.00 +120.00,4.80,1.00,0.00,1.00 +124.80,4.80,1.00,0.00,1.00 +129.60,4.80,1.00,0.00,1.00 +134.40,4.80,1.00,0.00,1.00 +139.20,0.00,1.00,0.00,1.00 +144.00,0.00,1.00,0.00,1.00 +148.80,0.00,1.00,0.00,1.00 +153.60,0.00,1.00,0.00,1.00 +158.40,0.00,1.00,0.00,1.00 +163.20,0.00,1.00,0.00,1.00 +168.00,0.00,1.00,0.00,1.00 +172.80,0.00,1.00,0.00,1.00 +177.60,0.00,1.00,0.00,1.00 +-177.60,-0.00,1.00,0.00,1.00 +-172.80,-0.00,1.00,0.00,1.00 +-168.00,-0.00,1.00,0.00,1.00 +-163.20,-0.00,1.00,0.00,1.00 +-158.40,-0.00,1.00,0.00,1.00 +-153.60,-0.00,1.00,0.00,1.00 +-148.80,-0.00,1.00,0.00,1.00 +-144.00,-0.00,1.00,0.00,1.00 +-139.20,-0.00,1.00,0.00,1.00 +-134.40,-4.80,1.00,0.00,1.00 +-129.60,-4.80,1.00,0.00,1.00 +-124.80,-4.80,1.00,0.00,1.00 +-120.00,-4.80,1.00,0.00,1.00 +-115.20,-4.80,1.00,0.00,1.00 +-110.40,-4.80,1.00,0.00,1.00 +-105.60,-4.80,1.00,0.00,1.00 +-100.80,-4.80,1.00,0.00,1.00 +-96.00,-4.80,1.00,0.00,1.00 +-91.20,-4.80,1.00,0.00,1.00 +-86.40,-4.80,1.00,0.00,1.00 +-81.60,-4.80,1.00,0.00,1.00 +-76.80,-4.80,1.00,0.00,1.00 +-72.00,-4.80,1.00,0.00,1.00 +-67.20,-4.80,1.00,0.00,1.00 +-62.40,-4.80,1.00,0.00,1.00 +-57.60,-4.80,1.00,0.00,1.00 +-52.80,-4.80,1.00,0.00,1.00 +-48.00,-4.80,1.00,0.00,1.00 +-43.20,-4.80,1.00,0.00,1.00 +-38.40,-0.00,1.00,0.00,1.00 +-33.60,-0.00,1.00,0.00,1.00 +-28.80,-0.00,1.00,0.00,1.00 +-24.00,-0.00,1.00,0.00,1.00 +-19.20,-0.00,1.00,0.00,1.00 +-14.40,-0.00,1.00,0.00,1.00 +-9.60,-0.00,1.00,0.00,1.00 +-4.80,-0.00,1.00,0.00,1.00 +0.00,0.00,1.00,0.00,1.00 +4.80,-0.00,1.00,0.00,1.00 +9.60,-0.00,1.00,0.00,1.00 +14.40,-0.00,1.00,0.00,1.00 +19.20,-0.00,1.00,0.00,1.00 +24.00,-0.00,1.00,0.00,1.00 +28.80,-0.00,1.00,0.00,1.00 +33.60,-0.00,1.00,0.00,1.00 +38.40,-0.00,1.00,0.00,1.00 +43.20,-0.00,1.00,0.00,1.00 +48.00,-0.00,1.00,0.00,1.00 +52.80,-0.00,1.00,0.00,1.00 +57.60,-0.00,1.00,0.00,1.00 +62.40,-0.00,1.00,0.00,1.00 +67.20,-0.00,1.00,0.00,1.00 +72.00,-0.00,1.00,0.00,1.00 +76.80,-0.00,1.00,0.00,1.00 +81.60,-0.00,1.00,0.00,1.00 +86.40,-0.00,1.00,0.00,1.00 +91.20,-0.00,1.00,0.00,1.00 +96.00,-0.00,1.00,0.00,1.00 +100.80,-0.00,1.00,0.00,1.00 +105.60,-0.00,1.00,0.00,1.00 +110.40,-0.00,1.00,0.00,1.00 +115.20,-0.00,1.00,0.00,1.00 +120.00,-0.00,1.00,0.00,1.00 +124.80,-0.00,1.00,0.00,1.00 +129.60,-0.00,1.00,0.00,1.00 +134.40,-0.00,1.00,0.00,1.00 +139.20,-0.00,1.00,0.00,1.00 +144.00,-0.00,1.00,0.00,1.00 +148.80,-0.00,1.00,0.00,1.00 +153.60,-0.00,1.00,0.00,1.00 +158.40,-0.00,1.00,0.00,1.00 +163.20,-0.00,1.00,0.00,1.00 +168.00,-0.00,1.00,0.00,1.00 +172.80,-0.00,1.00,0.00,1.00 +177.60,-0.00,1.00,0.00,1.00 +-177.60,0.00,1.00,0.00,1.00 +-172.80,0.00,1.00,0.00,1.00 +-168.00,0.00,1.00,0.00,1.00 +-163.20,0.00,1.00,0.00,1.00 +-158.40,0.00,1.00,0.00,1.00 +-153.60,0.00,1.00,0.00,1.00 +-148.80,0.00,1.00,0.00,1.00 +-144.00,0.00,1.00,0.00,1.00 +-139.20,0.00,1.00,0.00,1.00 +-134.40,0.00,1.00,0.00,1.00 +-129.60,0.00,1.00,0.00,1.00 +-124.80,0.00,1.00,0.00,1.00 +-120.00,0.00,1.00,0.00,1.00 +-115.20,0.00,1.00,0.00,1.00 +-110.40,0.00,1.00,0.00,1.00 +-105.60,0.00,1.00,0.00,1.00 +-100.80,0.00,1.00,0.00,1.00 +-96.00,0.00,1.00,0.00,1.00 +-91.20,0.00,1.00,0.00,1.00 +-86.40,0.00,1.00,0.00,1.00 +-81.60,0.00,1.00,0.00,1.00 +-76.80,0.00,1.00,0.00,1.00 +-72.00,0.00,1.00,0.00,1.00 +-67.20,0.00,1.00,0.00,1.00 +-62.40,0.00,1.00,0.00,1.00 +-57.60,0.00,1.00,0.00,1.00 +-52.80,0.00,1.00,0.00,1.00 +-48.00,0.00,1.00,0.00,1.00 +-43.20,0.00,1.00,0.00,1.00 +-38.40,0.00,1.00,0.00,1.00 +-33.60,0.00,1.00,0.00,1.00 +-28.80,0.00,1.00,0.00,1.00 +-24.00,0.00,1.00,0.00,1.00 +-19.20,0.00,1.00,0.00,1.00 +-14.40,0.00,1.00,0.00,1.00 +-9.60,0.00,1.00,0.00,1.00 +-4.80,0.00,1.00,0.00,1.00 -- GitLab From db85a51af40de0edad3471cb4472905f76c8f1ea Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 24 Oct 2022 20:13:46 +0200 Subject: [PATCH 289/479] Fix in ISM reader -- first element needs to be read using strtok --- lib_util/ism_file_reader.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib_util/ism_file_reader.c b/lib_util/ism_file_reader.c index 66f1a39b58..c1f08a4c35 100644 --- a/lib_util/ism_file_reader.c +++ b/lib_util/ism_file_reader.c @@ -98,7 +98,9 @@ ivas_error IsmFileReader_readNextFrame( float meta_prm[NUM_ISM_METADATA_PER_LINE]; char *char_ptr; int16_t i; +#ifndef FIX_I173_I174 int32_t time_stamp; +#endif FILE *file; if ( ismMetadata == NULL || self->file == NULL ) @@ -112,8 +114,9 @@ ivas_error IsmFileReader_readNextFrame( { return IVAS_ERR_FAILED_FILE_READ; } -#ifndef FIX_I173_I174 + char_ptr = strtok( char_buff, "," ); +#ifndef FIX_I173_I174 time_stamp = (int32_t) atoi( char_ptr ); if ( time_stamp != self->frameCounter ) @@ -122,6 +125,9 @@ ivas_error IsmFileReader_readNextFrame( } #endif i = 0; +#ifdef FIX_I173_I174 + meta_prm[i++] = (float) atof( char_ptr ); +#endif while ( ( char_ptr = strtok( NULL, "," ) ) != NULL && i < NUM_ISM_METADATA_PER_LINE ) { meta_prm[i++] = (float) atof( char_ptr ); -- GitLab From 2e2d3d44ce419b87c9749c4ba0f218143576ef4c Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 24 Oct 2022 20:41:00 +0200 Subject: [PATCH 290/479] formatting, comments --- lib_com/cnst.h | 4 +-- lib_com/ivas_prot.h | 10 +++---- lib_com/ivas_sba_config.c | 12 ++++---- lib_com/ivas_tools.c | 10 +++---- lib_com/prot.h | 53 ++++++++++++++-------------------- lib_com/stat_com.h | 2 +- lib_dec/core_dec_switch.c | 3 +- lib_dec/dec_prm.c | 17 +++++------ lib_dec/dec_tcx.c | 11 +++---- lib_dec/er_dec_tcx.c | 14 ++++----- lib_dec/init_dec.c | 5 ++-- lib_dec/tonalMDCTconcealment.c | 7 ++--- lib_enc/ivas_dirac_enc.c | 2 +- lib_enc/ivas_spar_md_enc.c | 6 ++-- 14 files changed, 68 insertions(+), 88 deletions(-) diff --git a/lib_com/cnst.h b/lib_com/cnst.h index 40a4710579..e62ef001dc 100644 --- a/lib_com/cnst.h +++ b/lib_com/cnst.h @@ -810,11 +810,11 @@ typedef enum #define FORMANT_SHARPENING_G1_16k 0.8f /* Formant sharpening numerator weighting at 16kHz */ #define FORMANT_SHARPENING_G2_16k 0.92f /* Formant sharpening denominator weighting at 16kHz */ -#define FSCALE_DENOM 512 +#define FSCALE_DENOM 512 #define ACELP_FIXED_CDK_NB 41 #define ACELP_FIXED_CDK_BITS( n ) PulseConfTable[n].bits -#define L_FIR 31 +#define L_FIR 31 enum TRACKPOS { diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index ff23fb7ebf..df12064a13 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3080,7 +3080,7 @@ int16_t ivas_sba_get_order_transport( const int16_t nchan_transport /* i : Number of transport channels */ ); -/*!r: number of Ambisonic channels */ +/*! r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ @@ -3092,10 +3092,10 @@ int16_t ivas_sba_get_nchan_metadata( ); #ifdef SBA_HOA_HBR_IMPROV -/*! r: get the flag to code SPAR HOA MD for all band */ +/*! r: flag indicating to code SPAR HOA MD for all bands */ int16_t ivas_sba_get_spar_hoa_md_flag( - const int16_t sba_order, /* i : Ambisonic (SBA) order */ - const int32_t ivas_total_brate /* i : IVAS total bitrate */ + const int16_t sba_order, /* i : Ambisonic (SBA) order */ + const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); #endif @@ -4827,7 +4827,7 @@ void lls_interp_n( const int16_t N, /* i : length of the input vector */ float *a, /* o : calculated slope */ float *b, /* o : calculated offset */ - int16_t upd /* i : use 1 to update x[] with the interpolated output */ + const int16_t upd /* i : use 1 to update x[] with the interpolated output */ ); void computeReferencePower_enc( diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index d7e47960b0..cf22cf38ff 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -234,7 +234,7 @@ int16_t ivas_sba_get_order_transport( * Get number of Ambisonic channels *-------------------------------------------------------------------*/ -/*!r: number of Ambisonic channels */ +/*! r: number of Ambisonic channels */ int16_t ivas_sba_get_nchan( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int16_t sba_planar /* i : SBA planar flag */ @@ -285,16 +285,17 @@ int16_t ivas_sba_get_nchan_metadata( /*-------------------------------------------------------------------* * ivas_sba_get_spar_hoa_md_flag() * - * et the flag to code SPAR HOA MD for all band + * Get the flag to code SPAR HOA MD for all band *-------------------------------------------------------------------*/ -/*! r: get the flag to code SPAR HOA MD for all band */ +/*! r: flag indicating to code SPAR HOA MD for all bands */ int16_t ivas_sba_get_spar_hoa_md_flag( - const int16_t sba_order, /* i : Ambisonic (SBA) order */ - const int32_t ivas_total_brate /* i : IVAS total bitrate */ + const int16_t sba_order, /* i : Ambisonic (SBA) order */ + const int32_t ivas_total_brate /* i : IVAS total bitrate */ ) { int16_t spar_hoa_md_flag = 0; + if ( sba_order > 1 && ivas_total_brate >= IVAS_256k ) { spar_hoa_md_flag = 1; @@ -303,6 +304,7 @@ int16_t ivas_sba_get_spar_hoa_md_flag( { spar_hoa_md_flag = 0; } + return spar_hoa_md_flag; } #endif diff --git a/lib_com/ivas_tools.c b/lib_com/ivas_tools.c index 9594bf5900..3c941ccc77 100644 --- a/lib_com/ivas_tools.c +++ b/lib_com/ivas_tools.c @@ -954,11 +954,11 @@ void v_multc_acc( void lls_interp_n( - float x[], /* i/o: input/output vector */ - const int16_t N, /* i : length of the input vector */ - float *a, /* o : calculated slope */ - float *b, /* o : calculated offset */ - int16_t upd /* i : use 1 to update x[] with the interpolated output */ + float x[], /* i/o: input/output vector */ + const int16_t N, /* i : length of the input vector */ + float *a, /* o : calculated slope */ + float *b, /* o : calculated offset */ + const int16_t upd /* i : use 1 to update x[] with the interpolated output */ ) { int16_t i; diff --git a/lib_com/prot.h b/lib_com/prot.h index 5bc1e39753..6df1f543b7 100755 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -5143,10 +5143,9 @@ void decod_amr_wb( ); ivas_error init_decoder( - Decoder_State *st, /* o : Decoder static variables structure */ - const int16_t idchan /* i : channel ID */ - , - const MC_MODE mc_mode /* i : MC mode */ + Decoder_State *st, /* o : Decoder static variables structure */ + const int16_t idchan, /* i : channel ID */ + const MC_MODE mc_mode /* i : MC mode */ ); void destroy_decoder( @@ -6772,18 +6771,17 @@ void enc_acelp_tcx_main( ); void getTCXMode( - Decoder_State *st, /* i/o: decoder memory state */ - Decoder_State *st0 /* i : bitstream */ - , - const int16_t MCT_flag + Decoder_State *st, /* i/o: decoder memory state */ + Decoder_State *st0, /* i : bitstream */ + const int16_t MCT_flag /* i : MCT tool active(1) or deactive(0) */ ); void getTCXWindowing( - const int16_t core, /* i : current frame mode */ - const int16_t last_core, /* i : last frame mode */ - const int16_t element_mode, - TCX_CONFIG_HANDLE hTcxCfg, /* i/o: TCX configuration handle */ - Decoder_State *st0 /* i : bitstream */ + const int16_t core, /* i : current frame mode */ + const int16_t last_core, /* i : last frame mode */ + const int16_t element_mode, /* i : element mode */ + TCX_CONFIG_HANDLE hTcxCfg, /* i/o: TCX configuration handle */ + Decoder_State *st0 /* i : bitstream */ ); void getLPCparam( @@ -7888,10 +7886,8 @@ void decoder_tcx_post( float *synth, float *synthFB, float *A, - const int16_t bfi - , - const int16_t isMCT -); + const int16_t bfi, + const int16_t isMCT ); void coder_acelp( Encoder_State *st, /* i/o: coder memory state */ @@ -8127,14 +8123,12 @@ void con_acelp( ); void con_tcx( - Decoder_State *st, /* i/o: coder memory state */ - float synth[], /* i/o: synth[] */ - const float coh, /* i : coherence of stereo signal */ - int16_t *noise_seed, /* i/o: noise seed for stereo */ - const int16_t only_left /* i : TD-PLC only in left channel */ - , - const float *A_cng -); + Decoder_State *st, /* i/o: coder memory state */ + float synth[], /* i/o: synth[] */ + const float coh, /* i : coherence of stereo signal */ + int16_t *noise_seed, /* i/o: noise seed for stereo */ + const int16_t only_left, /* i : TD-PLC only in left channel */ + const float A_cng[] ); /*! r: codebook index */ int16_t tcxlpc_get_cdk( @@ -9228,8 +9222,7 @@ void mode_switch_decoder_LPD( const int32_t total_brate, /* i : total bitrate */ const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ - const int16_t is_mct /* i : MCT mode flag */ - , + const int16_t is_mct, /* i : MCT mode flag */ const int16_t last_element_mode /* i : last element mode */ ); @@ -9510,10 +9503,8 @@ void TonalMDCTConceal_SaveFreqSignal( const float *mdctSpectrum, const uint16_t numSamples, const uint16_t nNewSamplesCore, - const float *scaleFactors - , - const int16_t infoIGFStartLine -); + const float *scaleFactors, + const int16_t infoIGFStartLine ); void TonalMDCTConceal_UpdateState( TonalMDCTConcealPtr hTonalMDCTConc, diff --git a/lib_com/stat_com.h b/lib_com/stat_com.h index 7f82c9272f..4cf9c05f1e 100644 --- a/lib_com/stat_com.h +++ b/lib_com/stat_com.h @@ -395,7 +395,7 @@ typedef struct int16_t frame_type_previous; - float A_cng[17]; + float A_cng[M + 1]; float exc_cng[L_FRAME16k]; int32_t CngBitrate; diff --git a/lib_dec/core_dec_switch.c b/lib_dec/core_dec_switch.c index cc1619cba0..5b8a34f42c 100644 --- a/lib_dec/core_dec_switch.c +++ b/lib_dec/core_dec_switch.c @@ -56,8 +56,7 @@ void mode_switch_decoder_LPD( const int32_t total_brate, /* i : total bitrate */ const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size*/ - const int16_t is_mct /* i : MCT mode flag */ - , + const int16_t is_mct, /* i : MCT mode flag */ const int16_t last_element_mode /* i : last element mode */ ) { diff --git a/lib_dec/dec_prm.c b/lib_dec/dec_prm.c index d458d62aa4..f2d574c035 100644 --- a/lib_dec/dec_prm.c +++ b/lib_dec/dec_prm.c @@ -53,10 +53,9 @@ *--------------------------------------------------------------------*/ void getTCXMode( - Decoder_State *st, /* i/o: decoder memory state */ - Decoder_State *st0 /* i : bitstream */ - , - const int16_t MCT_flag + Decoder_State *st, /* i/o: decoder memory state */ + Decoder_State *st0, /* i : bitstream */ + const int16_t MCT_flag /* i : MCT tool active(1) or deactive(0) */ ) { uint16_t ind; @@ -206,11 +205,11 @@ void getTCXMode( *--------------------------------------------------------------------*/ void getTCXWindowing( - const int16_t core, /* i : current core */ - const int16_t last_core, /* i : last frame core */ - const int16_t element_mode, - TCX_CONFIG_HANDLE hTcxCfg, /* i/o: TCX configuration handle */ - Decoder_State *st0 /* i : bitstream */ + const int16_t core, /* i : current core */ + const int16_t last_core, /* i : last frame core */ + const int16_t element_mode, /* i : element mode */ + TCX_CONFIG_HANDLE hTcxCfg, /* i/o: TCX configuration handle */ + Decoder_State *st0 /* i : bitstream */ ) { int16_t overlap_code; diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index d625139a47..4f29033e04 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -124,10 +124,8 @@ void decoder_tcx_post( float *synth, float *synthFB, float *A, - const int16_t bfi - , - const int16_t isMCT -) + const int16_t bfi, + const int16_t isMCT ) { int16_t i; float level_syn, gainCNG = 0.0f, step; @@ -1212,7 +1210,6 @@ void decoder_tcx_noisefilling( if ( st->hTonalMDCTConc != NULL ) { if ( !bfi && st->element_mode != IVAS_CPE_MDCT ) - { TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x, L_frameTCX, L_frame, gainlpc2, infoIGFStartLine ); } @@ -1912,8 +1909,8 @@ void decoder_tcx_IGF_stereo( const int16_t L_frame, /* i : frame length */ const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ - const int16_t bfi, /* i : bad frame indicator */ - const int16_t is_mct /* i : flag to signal MCT or SMDCT */ + const int16_t bfi, /* i : bad frame indicator */ + const int16_t is_mct /* i : flag to signal MCT or SMDCT */ ) { int16_t coreMsMask[N_MAX]; diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index bf561c2abd..4b507df683 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -54,14 +54,12 @@ *-----------------------------------------------------------------*/ void con_tcx( - Decoder_State *st, /* i/o: coder memory state */ - float synth[], /* i/o: synth[] */ - const float coh, /* i : coherence of stereo signal */ - int16_t *noise_seed, /* i/o: noise seed for stereo */ - const int16_t only_left /* i : TD-PLC only in left channel */ - , - const float *A_cng -) + Decoder_State *st, /* i/o: coder memory state */ + float synth[], /* i/o: synth[] */ + const float coh, /* i : coherence of stereo signal */ + int16_t *noise_seed, /* i/o: noise seed for stereo */ + const int16_t only_left, /* i : TD-PLC only in left channel */ + const float A_cng[] ) { int16_t i, n, L_frame, L_subfr, fLowPassFilter, T0; int16_t offset = 0; diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 2598cf29b6..4f022e2811 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -52,9 +52,8 @@ *----------------------------------------------------------------------*/ ivas_error init_decoder( - Decoder_State *st, /* o : Decoder static variables structure */ - const int16_t idchan /* i : channel ID */ - , + Decoder_State *st, /* o : Decoder static variables structure */ + const int16_t idchan, /* i : channel ID */ const MC_MODE mc_mode /* i : MC mode */ ) { diff --git a/lib_dec/tonalMDCTconcealment.c b/lib_dec/tonalMDCTconcealment.c index 0078ca8bb4..a16638da51 100644 --- a/lib_dec/tonalMDCTconcealment.c +++ b/lib_dec/tonalMDCTconcealment.c @@ -122,10 +122,8 @@ void TonalMDCTConceal_SaveFreqSignal( const float *mdctSpectrum, const uint16_t nNewSamples, const uint16_t nNewSamplesCore, - const float *scaleFactors - , - const int16_t infoIGFStartLine -) + const float *scaleFactors, + const int16_t infoIGFStartLine ) { float *temp; int16_t nOldSamples; @@ -1180,4 +1178,3 @@ void TonalMdctConceal_whiten_noise_shape( wmops_sub_end(); } - diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 063ec02d8f..04f4becd22 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -515,7 +515,7 @@ void computeReferencePower_enc( const int16_t num_freq_bands /* i : Number of frequency bands */ #ifdef SBA_HOA_HBR_IMPROV , - const SBA_MODE sba_mode + const SBA_MODE sba_mode /* i : SBA mode */ #endif ) { diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 2624389cc4..263d32292a 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -845,10 +845,8 @@ ivas_error ivas_spar_md_enc_process( { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) { - /* Use the prediction coeffs computed based on DirAC MD - to generate mixer matrix */ - pred_coeffs_re[i][b] = - pred_coeffs_re_local[i][b]; + /* Use the prediction coeffs computed based on DirAC MD to generate mixer matrix */ + pred_coeffs_re[i][b] = pred_coeffs_re_local[i][b]; hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i] = 0; hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re[i] = 0; } -- GitLab From 4b5b08b08cc1503058f6b6a38568ae611a2c694c Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 24 Oct 2022 21:06:32 +0200 Subject: [PATCH 291/479] Updated csv metadata and trajectory examples --- .../metadata/create_metadata_v3.m | 2 +- .../metadata/csv/t01_ch1.csv | 2000 +- .../metadata/csv/t02_ch1.csv | 2000 +- .../metadata/csv/t03_ch1.csv | 2000 +- .../metadata/csv/t04_ch1.csv | 2000 +- .../metadata/csv/t05_ch1.csv | 2000 +- .../metadata/csv/t05_ch2.csv | 2000 +- .../metadata/csv/t05_ch3.csv | 2000 +- .../metadata/csv/t05_ch4.csv | 2000 +- .../metadata/csv/t06_ch1.csv | 2000 +- .../metadata/csv/t06_ch2.csv | 2000 +- .../metadata/csv/t06_ch3.csv | 2000 +- .../metadata/csv/t07_ch1.csv | 2000 +- .../metadata/csv/t08_ch1.csv | 2000 +- .../metadata/csv/t09_ch1.csv | 2000 +- .../metadata/csv/t10_ch1.csv | 2000 +- .../metadata/csv/t11_ch1.csv | 2000 +- .../metadata/csv/t11_ch2.csv | 2000 +- .../azi+2-ele+2-every-100-frames-Euler.csv | 24000 ++++++++-------- .../azi+2-ele+2-every-100-frames.csv | 24000 ++++++++-------- .../trajectories/circle-with-up-down-15s.csv | 6000 ++-- scripts/trajectories/const000.csv | 8 +- scripts/trajectories/const030.csv | 8 +- scripts/trajectories/const090.csv | 8 +- scripts/trajectories/const120.csv | 8 +- scripts/trajectories/const180.csv | 8 +- scripts/trajectories/const240.csv | 8 +- scripts/trajectories/const250.csv | 8 +- scripts/trajectories/const270.csv | 8 +- scripts/trajectories/const320.csv | 8 +- scripts/trajectories/full-circle-15s.csv | 6000 ++-- .../trajectories/full-circle-T15.0-w0.0.csv | 6000 ++-- .../trajectories/full-circle-T15.0-w0.2.csv | 6000 ++-- .../trajectories/full-circle-T15.0-w0.4.csv | 6000 ++-- .../trajectories/full-circle-T15.0-w1.0.csv | 6000 ++-- .../trajectories/full_circle_in_15s-Euler.csv | 6000 ++-- scripts/trajectories/full_circle_in_15s.csv | 6000 ++-- .../half-circle-front-over-top-15s.csv | 6000 ++-- .../trajectories/half-circle-over-top-15s.csv | 6000 ++-- scripts/trajectories/headrot-1.5s-Euler.csv | 16200 +++++------ scripts/trajectories/headrot-1.5s.csv | 16200 +++++------ scripts/trajectories/headrot-15s.csv | 16200 +++++------ .../linear-ypr-T15.0-w0.1-Euler.csv | 6000 ++-- .../trajectories/linear-ypr-T15.0-w0.1.csv | 6000 ++-- .../trajectories/rotate_yaw_pitch_roll1.csv | 4800 ++-- .../trajectories/rotate_yaw_pitch_roll2.csv | 4800 ++-- 46 files changed, 106137 insertions(+), 106137 deletions(-) diff --git a/scripts/td_object_renderer/metadata/create_metadata_v3.m b/scripts/td_object_renderer/metadata/create_metadata_v3.m index a8e04c3221..3bdd398fde 100644 --- a/scripts/td_object_renderer/metadata/create_metadata_v3.m +++ b/scripts/td_object_renderer/metadata/create_metadata_v3.m @@ -369,7 +369,7 @@ for i = 1:length(fileNamePatterns) azim_store(ob,iFrame) = azim; elev_store(ob,iFrame) = elev; - fprintf(fileID_txt,'%04d,', iFrame-1); + %fprintf(fileID_txt,'%04d,', iFrame-1); fprintf(fileID_txt,'%+07.2f,', azim); fprintf(fileID_txt,'%+06.2f,', elev); fprintf(fileID_txt,'%05.2f,', r); diff --git a/scripts/td_object_renderer/metadata/csv/t01_ch1.csv b/scripts/td_object_renderer/metadata/csv/t01_ch1.csv index 6ba66e86c6..d639a92ffb 100644 --- a/scripts/td_object_renderer/metadata/csv/t01_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t01_ch1.csv @@ -1,1000 +1,1000 @@ -0000,-015.00,+00.00,01.00,000.00,1.00 -0001,-015.00,+00.00,01.00,000.00,1.00 -0002,-015.00,+00.00,01.00,000.00,1.00 -0003,-015.00,+00.00,01.00,000.00,1.00 -0004,-015.00,+00.00,01.00,000.00,1.00 -0005,-015.00,+00.00,01.00,000.00,1.00 -0006,-015.00,+00.00,01.00,000.00,1.00 -0007,-015.00,+00.00,01.00,000.00,1.00 -0008,-015.00,+00.00,01.00,000.00,1.00 -0009,-015.00,+00.00,01.00,000.00,1.00 -0010,-015.00,+00.00,01.00,000.00,1.00 -0011,-015.00,+00.00,01.00,000.00,1.00 -0012,-015.00,+00.00,01.00,000.00,1.00 -0013,-015.00,+00.00,01.00,000.00,1.00 -0014,-015.00,+00.00,01.00,000.00,1.00 -0015,-015.00,+00.00,01.00,000.00,1.00 -0016,-015.00,+00.00,01.00,000.00,1.00 -0017,-015.00,+00.00,01.00,000.00,1.00 -0018,-015.00,+00.00,01.00,000.00,1.00 -0019,-015.00,+00.00,01.00,000.00,1.00 -0020,-015.00,+00.00,01.00,000.00,1.00 -0021,-015.00,+00.00,01.00,000.00,1.00 -0022,-015.00,+00.00,01.00,000.00,1.00 -0023,-015.00,+00.00,01.00,000.00,1.00 -0024,-015.00,+00.00,01.00,000.00,1.00 -0025,-015.00,+00.00,01.00,000.00,1.00 -0026,-015.00,+00.00,01.00,000.00,1.00 -0027,-015.00,+00.00,01.00,000.00,1.00 -0028,-015.00,+00.00,01.00,000.00,1.00 -0029,-015.00,+00.00,01.00,000.00,1.00 -0030,-015.00,+00.00,01.00,000.00,1.00 -0031,-015.00,+00.00,01.00,000.00,1.00 -0032,-015.00,+00.00,01.00,000.00,1.00 -0033,-015.00,+00.00,01.00,000.00,1.00 -0034,-015.00,+00.00,01.00,000.00,1.00 -0035,-015.00,+00.00,01.00,000.00,1.00 -0036,-015.00,+00.00,01.00,000.00,1.00 -0037,-015.00,+00.00,01.00,000.00,1.00 -0038,-015.00,+00.00,01.00,000.00,1.00 -0039,-015.00,+00.00,01.00,000.00,1.00 -0040,-015.00,+00.00,01.00,000.00,1.00 -0041,-015.00,+00.00,01.00,000.00,1.00 -0042,-015.00,+00.00,01.00,000.00,1.00 -0043,-015.00,+00.00,01.00,000.00,1.00 -0044,-015.00,+00.00,01.00,000.00,1.00 -0045,-015.00,+00.00,01.00,000.00,1.00 -0046,-015.00,+00.00,01.00,000.00,1.00 -0047,-015.00,+00.00,01.00,000.00,1.00 -0048,-015.00,+00.00,01.00,000.00,1.00 -0049,-015.00,+00.00,01.00,000.00,1.00 -0050,-015.00,+00.00,01.00,000.00,1.00 -0051,-015.00,+00.00,01.00,000.00,1.00 -0052,-015.00,+00.00,01.00,000.00,1.00 -0053,-015.00,+00.00,01.00,000.00,1.00 -0054,-015.00,+00.00,01.00,000.00,1.00 -0055,-015.00,+00.00,01.00,000.00,1.00 -0056,-015.00,+00.00,01.00,000.00,1.00 -0057,-015.00,+00.00,01.00,000.00,1.00 -0058,-015.00,+00.00,01.00,000.00,1.00 -0059,-015.00,+00.00,01.00,000.00,1.00 -0060,-015.00,+00.00,01.00,000.00,1.00 -0061,-015.00,+00.00,01.00,000.00,1.00 -0062,-015.00,+00.00,01.00,000.00,1.00 -0063,-015.00,+00.00,01.00,000.00,1.00 -0064,-015.00,+00.00,01.00,000.00,1.00 -0065,-015.00,+00.00,01.00,000.00,1.00 -0066,-015.00,+00.00,01.00,000.00,1.00 -0067,-015.00,+00.00,01.00,000.00,1.00 -0068,-015.00,+00.00,01.00,000.00,1.00 -0069,-015.00,+00.00,01.00,000.00,1.00 -0070,-015.00,+00.00,01.00,000.00,1.00 -0071,-015.00,+00.00,01.00,000.00,1.00 -0072,-015.00,+00.00,01.00,000.00,1.00 -0073,-015.00,+00.00,01.00,000.00,1.00 -0074,-015.00,+00.00,01.00,000.00,1.00 -0075,-015.00,+00.00,01.00,000.00,1.00 -0076,-015.00,+00.00,01.00,000.00,1.00 -0077,-015.00,+00.00,01.00,000.00,1.00 -0078,-015.00,+00.00,01.00,000.00,1.00 -0079,-015.00,+00.00,01.00,000.00,1.00 -0080,-015.00,+00.00,01.00,000.00,1.00 -0081,-015.00,+00.00,01.00,000.00,1.00 -0082,-015.00,+00.00,01.00,000.00,1.00 -0083,-015.00,+00.00,01.00,000.00,1.00 -0084,-015.00,+00.00,01.00,000.00,1.00 -0085,-015.00,+00.00,01.00,000.00,1.00 -0086,-015.00,+00.00,01.00,000.00,1.00 -0087,-015.00,+00.00,01.00,000.00,1.00 -0088,-015.00,+00.00,01.00,000.00,1.00 -0089,-015.00,+00.00,01.00,000.00,1.00 -0090,-015.00,+00.00,01.00,000.00,1.00 -0091,-015.00,+00.00,01.00,000.00,1.00 -0092,-015.00,+00.00,01.00,000.00,1.00 -0093,-015.00,+00.00,01.00,000.00,1.00 -0094,-015.00,+00.00,01.00,000.00,1.00 -0095,-015.00,+00.00,01.00,000.00,1.00 -0096,-015.00,+00.00,01.00,000.00,1.00 -0097,-015.00,+00.00,01.00,000.00,1.00 -0098,-015.00,+00.00,01.00,000.00,1.00 -0099,-015.00,+00.00,01.00,000.00,1.00 -0100,-015.00,+00.00,01.00,000.00,1.00 -0101,-015.00,+00.00,01.00,000.00,1.00 -0102,-015.00,+00.00,01.00,000.00,1.00 -0103,-015.00,+00.00,01.00,000.00,1.00 -0104,-015.00,+00.00,01.00,000.00,1.00 -0105,-015.00,+00.00,01.00,000.00,1.00 -0106,-015.00,+00.00,01.00,000.00,1.00 -0107,-015.00,+00.00,01.00,000.00,1.00 -0108,-015.00,+00.00,01.00,000.00,1.00 -0109,-015.00,+00.00,01.00,000.00,1.00 -0110,-015.00,+00.00,01.00,000.00,1.00 -0111,-015.00,+00.00,01.00,000.00,1.00 -0112,-015.00,+00.00,01.00,000.00,1.00 -0113,-015.00,+00.00,01.00,000.00,1.00 -0114,-015.00,+00.00,01.00,000.00,1.00 -0115,-015.00,+00.00,01.00,000.00,1.00 -0116,-015.00,+00.00,01.00,000.00,1.00 -0117,-015.00,+00.00,01.00,000.00,1.00 -0118,-015.00,+00.00,01.00,000.00,1.00 -0119,-015.00,+00.00,01.00,000.00,1.00 -0120,-015.00,+00.00,01.00,000.00,1.00 -0121,-015.00,+00.00,01.00,000.00,1.00 -0122,-015.00,+00.00,01.00,000.00,1.00 -0123,-015.00,+00.00,01.00,000.00,1.00 -0124,-015.00,+00.00,01.00,000.00,1.00 -0125,-015.00,+00.00,01.00,000.00,1.00 -0126,-015.00,+00.00,01.00,000.00,1.00 -0127,-015.00,+00.00,01.00,000.00,1.00 -0128,-015.00,+00.00,01.00,000.00,1.00 -0129,-015.00,+00.00,01.00,000.00,1.00 -0130,-015.00,+00.00,01.00,000.00,1.00 -0131,-015.00,+00.00,01.00,000.00,1.00 -0132,-015.00,+00.00,01.00,000.00,1.00 -0133,-015.00,+00.00,01.00,000.00,1.00 -0134,-015.00,+00.00,01.00,000.00,1.00 -0135,-015.00,+00.00,01.00,000.00,1.00 -0136,-015.00,+00.00,01.00,000.00,1.00 -0137,-015.00,+00.00,01.00,000.00,1.00 -0138,-015.00,+00.00,01.00,000.00,1.00 -0139,-015.00,+00.00,01.00,000.00,1.00 -0140,-015.00,+00.00,01.00,000.00,1.00 -0141,-015.00,+00.00,01.00,000.00,1.00 -0142,-015.00,+00.00,01.00,000.00,1.00 -0143,-015.00,+00.00,01.00,000.00,1.00 -0144,-015.00,+00.00,01.00,000.00,1.00 -0145,-015.00,+00.00,01.00,000.00,1.00 -0146,-015.00,+00.00,01.00,000.00,1.00 -0147,-015.00,+00.00,01.00,000.00,1.00 -0148,-015.00,+00.00,01.00,000.00,1.00 -0149,-015.00,+00.00,01.00,000.00,1.00 -0150,-015.00,+00.00,01.00,000.00,1.00 -0151,-015.00,+00.00,01.00,000.00,1.00 -0152,-015.00,+00.00,01.00,000.00,1.00 -0153,-015.00,+00.00,01.00,000.00,1.00 -0154,-015.00,+00.00,01.00,000.00,1.00 -0155,-015.00,+00.00,01.00,000.00,1.00 -0156,-015.00,+00.00,01.00,000.00,1.00 -0157,-015.00,+00.00,01.00,000.00,1.00 -0158,-015.00,+00.00,01.00,000.00,1.00 -0159,-015.00,+00.00,01.00,000.00,1.00 -0160,-015.00,+00.00,01.00,000.00,1.00 -0161,-015.00,+00.00,01.00,000.00,1.00 -0162,-015.00,+00.00,01.00,000.00,1.00 -0163,-015.00,+00.00,01.00,000.00,1.00 -0164,-015.00,+00.00,01.00,000.00,1.00 -0165,-015.00,+00.00,01.00,000.00,1.00 -0166,-015.00,+00.00,01.00,000.00,1.00 -0167,-015.00,+00.00,01.00,000.00,1.00 -0168,-015.00,+00.00,01.00,000.00,1.00 -0169,-015.00,+00.00,01.00,000.00,1.00 -0170,-015.00,+00.00,01.00,000.00,1.00 -0171,-015.00,+00.00,01.00,000.00,1.00 -0172,-015.00,+00.00,01.00,000.00,1.00 -0173,-015.00,+00.00,01.00,000.00,1.00 -0174,-015.00,+00.00,01.00,000.00,1.00 -0175,-015.00,+00.00,01.00,000.00,1.00 -0176,-015.00,+00.00,01.00,000.00,1.00 -0177,-015.00,+00.00,01.00,000.00,1.00 -0178,-015.00,+00.00,01.00,000.00,1.00 -0179,-015.00,+00.00,01.00,000.00,1.00 -0180,-015.00,+00.00,01.00,000.00,1.00 -0181,-015.00,+00.00,01.00,000.00,1.00 -0182,-015.00,+00.00,01.00,000.00,1.00 -0183,-015.00,+00.00,01.00,000.00,1.00 -0184,-015.00,+00.00,01.00,000.00,1.00 -0185,-015.00,+00.00,01.00,000.00,1.00 -0186,-015.00,+00.00,01.00,000.00,1.00 -0187,-015.00,+00.00,01.00,000.00,1.00 -0188,-015.00,+00.00,01.00,000.00,1.00 -0189,-015.00,+00.00,01.00,000.00,1.00 -0190,-015.00,+00.00,01.00,000.00,1.00 -0191,-015.00,+00.00,01.00,000.00,1.00 -0192,-015.00,+00.00,01.00,000.00,1.00 -0193,-015.00,+00.00,01.00,000.00,1.00 -0194,-015.00,+00.00,01.00,000.00,1.00 -0195,-015.00,+00.00,01.00,000.00,1.00 -0196,-015.00,+00.00,01.00,000.00,1.00 -0197,-015.00,+00.00,01.00,000.00,1.00 -0198,-015.00,+00.00,01.00,000.00,1.00 -0199,-015.00,+00.00,01.00,000.00,1.00 -0200,-015.00,+00.00,01.00,000.00,1.00 -0201,-015.00,+00.00,01.00,000.00,1.00 -0202,-015.00,+00.00,01.00,000.00,1.00 -0203,-015.00,+00.00,01.00,000.00,1.00 -0204,-015.00,+00.00,01.00,000.00,1.00 -0205,-015.00,+00.00,01.00,000.00,1.00 -0206,-015.00,+00.00,01.00,000.00,1.00 -0207,-015.00,+00.00,01.00,000.00,1.00 -0208,-015.00,+00.00,01.00,000.00,1.00 -0209,-015.00,+00.00,01.00,000.00,1.00 -0210,-015.00,+00.00,01.00,000.00,1.00 -0211,-015.00,+00.00,01.00,000.00,1.00 -0212,-015.00,+00.00,01.00,000.00,1.00 -0213,-015.00,+00.00,01.00,000.00,1.00 -0214,-015.00,+00.00,01.00,000.00,1.00 -0215,-015.00,+00.00,01.00,000.00,1.00 -0216,-015.00,+00.00,01.00,000.00,1.00 -0217,-015.00,+00.00,01.00,000.00,1.00 -0218,-015.00,+00.00,01.00,000.00,1.00 -0219,-015.00,+00.00,01.00,000.00,1.00 -0220,-015.00,+00.00,01.00,000.00,1.00 -0221,-015.00,+00.00,01.00,000.00,1.00 -0222,-015.00,+00.00,01.00,000.00,1.00 -0223,-015.00,+00.00,01.00,000.00,1.00 -0224,-015.00,+00.00,01.00,000.00,1.00 -0225,-015.00,+00.00,01.00,000.00,1.00 -0226,-015.00,+00.00,01.00,000.00,1.00 -0227,-015.00,+00.00,01.00,000.00,1.00 -0228,-015.00,+00.00,01.00,000.00,1.00 -0229,-015.00,+00.00,01.00,000.00,1.00 -0230,-015.00,+00.00,01.00,000.00,1.00 -0231,-015.00,+00.00,01.00,000.00,1.00 -0232,-015.00,+00.00,01.00,000.00,1.00 -0233,-015.00,+00.00,01.00,000.00,1.00 -0234,-015.00,+00.00,01.00,000.00,1.00 -0235,-015.00,+00.00,01.00,000.00,1.00 -0236,-015.00,+00.00,01.00,000.00,1.00 -0237,-015.00,+00.00,01.00,000.00,1.00 -0238,-015.00,+00.00,01.00,000.00,1.00 -0239,-015.00,+00.00,01.00,000.00,1.00 -0240,-015.00,+00.00,01.00,000.00,1.00 -0241,-015.00,+00.00,01.00,000.00,1.00 -0242,-015.00,+00.00,01.00,000.00,1.00 -0243,-015.00,+00.00,01.00,000.00,1.00 -0244,-015.00,+00.00,01.00,000.00,1.00 -0245,-015.00,+00.00,01.00,000.00,1.00 -0246,-015.00,+00.00,01.00,000.00,1.00 -0247,-015.00,+00.00,01.00,000.00,1.00 -0248,-015.00,+00.00,01.00,000.00,1.00 -0249,-015.00,+00.00,01.00,000.00,1.00 -0250,-015.00,+00.00,01.00,000.00,1.00 -0251,-015.00,+00.00,01.00,000.00,1.00 -0252,-015.00,+00.00,01.00,000.00,1.00 -0253,-015.00,+00.00,01.00,000.00,1.00 -0254,-015.00,+00.00,01.00,000.00,1.00 -0255,-015.00,+00.00,01.00,000.00,1.00 -0256,-015.00,+00.00,01.00,000.00,1.00 -0257,-015.00,+00.00,01.00,000.00,1.00 -0258,-015.00,+00.00,01.00,000.00,1.00 -0259,-015.00,+00.00,01.00,000.00,1.00 -0260,-015.00,+00.00,01.00,000.00,1.00 -0261,-015.00,+00.00,01.00,000.00,1.00 -0262,-015.00,+00.00,01.00,000.00,1.00 -0263,-015.00,+00.00,01.00,000.00,1.00 -0264,-015.00,+00.00,01.00,000.00,1.00 -0265,-015.00,+00.00,01.00,000.00,1.00 -0266,-015.00,+00.00,01.00,000.00,1.00 -0267,-015.00,+00.00,01.00,000.00,1.00 -0268,-015.00,+00.00,01.00,000.00,1.00 -0269,-015.00,+00.00,01.00,000.00,1.00 -0270,-015.00,+00.00,01.00,000.00,1.00 -0271,-015.00,+00.00,01.00,000.00,1.00 -0272,-015.00,+00.00,01.00,000.00,1.00 -0273,-015.00,+00.00,01.00,000.00,1.00 -0274,-015.00,+00.00,01.00,000.00,1.00 -0275,-015.00,+00.00,01.00,000.00,1.00 -0276,-015.00,+00.00,01.00,000.00,1.00 -0277,-015.00,+00.00,01.00,000.00,1.00 -0278,-015.00,+00.00,01.00,000.00,1.00 -0279,-015.00,+00.00,01.00,000.00,1.00 -0280,-015.00,+00.00,01.00,000.00,1.00 -0281,-015.00,+00.00,01.00,000.00,1.00 -0282,-015.00,+00.00,01.00,000.00,1.00 -0283,-015.00,+00.00,01.00,000.00,1.00 -0284,-015.00,+00.00,01.00,000.00,1.00 -0285,-015.00,+00.00,01.00,000.00,1.00 -0286,-015.00,+00.00,01.00,000.00,1.00 -0287,-015.00,+00.00,01.00,000.00,1.00 -0288,-015.00,+00.00,01.00,000.00,1.00 -0289,-015.00,+00.00,01.00,000.00,1.00 -0290,-015.00,+00.00,01.00,000.00,1.00 -0291,-015.00,+00.00,01.00,000.00,1.00 -0292,-015.00,+00.00,01.00,000.00,1.00 -0293,-015.00,+00.00,01.00,000.00,1.00 -0294,-015.00,+00.00,01.00,000.00,1.00 -0295,-015.00,+00.00,01.00,000.00,1.00 -0296,-015.00,+00.00,01.00,000.00,1.00 -0297,-015.00,+00.00,01.00,000.00,1.00 -0298,-015.00,+00.00,01.00,000.00,1.00 -0299,-015.00,+00.00,01.00,000.00,1.00 -0300,-015.00,+00.00,01.00,000.00,1.00 -0301,-015.00,+00.00,01.00,000.00,1.00 -0302,-015.00,+00.00,01.00,000.00,1.00 -0303,-015.00,+00.00,01.00,000.00,1.00 -0304,-015.00,+00.00,01.00,000.00,1.00 -0305,-015.00,+00.00,01.00,000.00,1.00 -0306,-015.00,+00.00,01.00,000.00,1.00 -0307,-015.00,+00.00,01.00,000.00,1.00 -0308,-015.00,+00.00,01.00,000.00,1.00 -0309,-015.00,+00.00,01.00,000.00,1.00 -0310,-015.00,+00.00,01.00,000.00,1.00 -0311,-015.00,+00.00,01.00,000.00,1.00 -0312,-015.00,+00.00,01.00,000.00,1.00 -0313,-015.00,+00.00,01.00,000.00,1.00 -0314,-015.00,+00.00,01.00,000.00,1.00 -0315,-015.00,+00.00,01.00,000.00,1.00 -0316,-015.00,+00.00,01.00,000.00,1.00 -0317,-015.00,+00.00,01.00,000.00,1.00 -0318,-015.00,+00.00,01.00,000.00,1.00 -0319,-015.00,+00.00,01.00,000.00,1.00 -0320,-015.00,+00.00,01.00,000.00,1.00 -0321,-015.00,+00.00,01.00,000.00,1.00 -0322,-015.00,+00.00,01.00,000.00,1.00 -0323,-015.00,+00.00,01.00,000.00,1.00 -0324,-015.00,+00.00,01.00,000.00,1.00 -0325,-015.00,+00.00,01.00,000.00,1.00 -0326,-015.00,+00.00,01.00,000.00,1.00 -0327,-015.00,+00.00,01.00,000.00,1.00 -0328,-015.00,+00.00,01.00,000.00,1.00 -0329,-015.00,+00.00,01.00,000.00,1.00 -0330,-015.00,+00.00,01.00,000.00,1.00 -0331,-015.00,+00.00,01.00,000.00,1.00 -0332,-015.00,+00.00,01.00,000.00,1.00 -0333,-015.00,+00.00,01.00,000.00,1.00 -0334,-015.00,+00.00,01.00,000.00,1.00 -0335,-015.00,+00.00,01.00,000.00,1.00 -0336,-015.00,+00.00,01.00,000.00,1.00 -0337,-015.00,+00.00,01.00,000.00,1.00 -0338,-015.00,+00.00,01.00,000.00,1.00 -0339,-015.00,+00.00,01.00,000.00,1.00 -0340,-015.00,+00.00,01.00,000.00,1.00 -0341,-015.00,+00.00,01.00,000.00,1.00 -0342,-015.00,+00.00,01.00,000.00,1.00 -0343,-015.00,+00.00,01.00,000.00,1.00 -0344,-015.00,+00.00,01.00,000.00,1.00 -0345,-015.00,+00.00,01.00,000.00,1.00 -0346,-015.00,+00.00,01.00,000.00,1.00 -0347,-015.00,+00.00,01.00,000.00,1.00 -0348,-015.00,+00.00,01.00,000.00,1.00 -0349,-015.00,+00.00,01.00,000.00,1.00 -0350,-015.00,+00.00,01.00,000.00,1.00 -0351,-015.00,+00.00,01.00,000.00,1.00 -0352,-015.00,+00.00,01.00,000.00,1.00 -0353,-015.00,+00.00,01.00,000.00,1.00 -0354,-015.00,+00.00,01.00,000.00,1.00 -0355,-015.00,+00.00,01.00,000.00,1.00 -0356,-015.00,+00.00,01.00,000.00,1.00 -0357,-015.00,+00.00,01.00,000.00,1.00 -0358,-015.00,+00.00,01.00,000.00,1.00 -0359,-015.00,+00.00,01.00,000.00,1.00 -0360,-015.00,+00.00,01.00,000.00,1.00 -0361,-015.00,+00.00,01.00,000.00,1.00 -0362,-015.00,+00.00,01.00,000.00,1.00 -0363,-015.00,+00.00,01.00,000.00,1.00 -0364,-015.00,+00.00,01.00,000.00,1.00 -0365,-015.00,+00.00,01.00,000.00,1.00 -0366,-015.00,+00.00,01.00,000.00,1.00 -0367,-015.00,+00.00,01.00,000.00,1.00 -0368,-015.00,+00.00,01.00,000.00,1.00 -0369,-015.00,+00.00,01.00,000.00,1.00 -0370,-015.00,+00.00,01.00,000.00,1.00 -0371,-015.00,+00.00,01.00,000.00,1.00 -0372,-015.00,+00.00,01.00,000.00,1.00 -0373,-015.00,+00.00,01.00,000.00,1.00 -0374,-015.00,+00.00,01.00,000.00,1.00 -0375,-015.00,+00.00,01.00,000.00,1.00 -0376,-015.00,+00.00,01.00,000.00,1.00 -0377,-015.00,+00.00,01.00,000.00,1.00 -0378,-015.00,+00.00,01.00,000.00,1.00 -0379,-015.00,+00.00,01.00,000.00,1.00 -0380,-015.00,+00.00,01.00,000.00,1.00 -0381,-015.00,+00.00,01.00,000.00,1.00 -0382,-015.00,+00.00,01.00,000.00,1.00 -0383,-015.00,+00.00,01.00,000.00,1.00 -0384,-015.00,+00.00,01.00,000.00,1.00 -0385,-015.00,+00.00,01.00,000.00,1.00 -0386,-015.00,+00.00,01.00,000.00,1.00 -0387,-015.00,+00.00,01.00,000.00,1.00 -0388,-015.00,+00.00,01.00,000.00,1.00 -0389,-015.00,+00.00,01.00,000.00,1.00 -0390,-015.00,+00.00,01.00,000.00,1.00 -0391,-015.00,+00.00,01.00,000.00,1.00 -0392,-015.00,+00.00,01.00,000.00,1.00 -0393,-015.00,+00.00,01.00,000.00,1.00 -0394,-015.00,+00.00,01.00,000.00,1.00 -0395,-015.00,+00.00,01.00,000.00,1.00 -0396,-015.00,+00.00,01.00,000.00,1.00 -0397,-015.00,+00.00,01.00,000.00,1.00 -0398,-015.00,+00.00,01.00,000.00,1.00 -0399,-015.00,+00.00,01.00,000.00,1.00 -0400,-015.00,+00.00,01.00,000.00,1.00 -0401,-015.00,+00.00,01.00,000.00,1.00 -0402,-015.00,+00.00,01.00,000.00,1.00 -0403,-015.00,+00.00,01.00,000.00,1.00 -0404,-015.00,+00.00,01.00,000.00,1.00 -0405,-015.00,+00.00,01.00,000.00,1.00 -0406,-015.00,+00.00,01.00,000.00,1.00 -0407,-015.00,+00.00,01.00,000.00,1.00 -0408,-015.00,+00.00,01.00,000.00,1.00 -0409,-015.00,+00.00,01.00,000.00,1.00 -0410,-015.00,+00.00,01.00,000.00,1.00 -0411,-015.00,+00.00,01.00,000.00,1.00 -0412,-015.00,+00.00,01.00,000.00,1.00 -0413,-015.00,+00.00,01.00,000.00,1.00 -0414,-015.00,+00.00,01.00,000.00,1.00 -0415,-015.00,+00.00,01.00,000.00,1.00 -0416,-015.00,+00.00,01.00,000.00,1.00 -0417,-015.00,+00.00,01.00,000.00,1.00 -0418,-015.00,+00.00,01.00,000.00,1.00 -0419,-015.00,+00.00,01.00,000.00,1.00 -0420,-015.00,+00.00,01.00,000.00,1.00 -0421,-015.00,+00.00,01.00,000.00,1.00 -0422,-015.00,+00.00,01.00,000.00,1.00 -0423,-015.00,+00.00,01.00,000.00,1.00 -0424,-015.00,+00.00,01.00,000.00,1.00 -0425,-015.00,+00.00,01.00,000.00,1.00 -0426,-015.00,+00.00,01.00,000.00,1.00 -0427,-015.00,+00.00,01.00,000.00,1.00 -0428,-015.00,+00.00,01.00,000.00,1.00 -0429,-015.00,+00.00,01.00,000.00,1.00 -0430,-015.00,+00.00,01.00,000.00,1.00 -0431,-015.00,+00.00,01.00,000.00,1.00 -0432,-015.00,+00.00,01.00,000.00,1.00 -0433,-015.00,+00.00,01.00,000.00,1.00 -0434,-015.00,+00.00,01.00,000.00,1.00 -0435,-015.00,+00.00,01.00,000.00,1.00 -0436,-015.00,+00.00,01.00,000.00,1.00 -0437,-015.00,+00.00,01.00,000.00,1.00 -0438,-015.00,+00.00,01.00,000.00,1.00 -0439,-015.00,+00.00,01.00,000.00,1.00 -0440,-015.00,+00.00,01.00,000.00,1.00 -0441,-015.00,+00.00,01.00,000.00,1.00 -0442,-015.00,+00.00,01.00,000.00,1.00 -0443,-015.00,+00.00,01.00,000.00,1.00 -0444,-015.00,+00.00,01.00,000.00,1.00 -0445,-015.00,+00.00,01.00,000.00,1.00 -0446,-015.00,+00.00,01.00,000.00,1.00 -0447,-015.00,+00.00,01.00,000.00,1.00 -0448,-015.00,+00.00,01.00,000.00,1.00 -0449,-015.00,+00.00,01.00,000.00,1.00 -0450,-015.00,+00.00,01.00,000.00,1.00 -0451,-015.00,+00.00,01.00,000.00,1.00 -0452,-015.00,+00.00,01.00,000.00,1.00 -0453,-015.00,+00.00,01.00,000.00,1.00 -0454,-015.00,+00.00,01.00,000.00,1.00 -0455,-015.00,+00.00,01.00,000.00,1.00 -0456,-015.00,+00.00,01.00,000.00,1.00 -0457,-015.00,+00.00,01.00,000.00,1.00 -0458,-015.00,+00.00,01.00,000.00,1.00 -0459,-015.00,+00.00,01.00,000.00,1.00 -0460,-015.00,+00.00,01.00,000.00,1.00 -0461,-015.00,+00.00,01.00,000.00,1.00 -0462,-015.00,+00.00,01.00,000.00,1.00 -0463,-015.00,+00.00,01.00,000.00,1.00 -0464,-015.00,+00.00,01.00,000.00,1.00 -0465,-015.00,+00.00,01.00,000.00,1.00 -0466,-015.00,+00.00,01.00,000.00,1.00 -0467,-015.00,+00.00,01.00,000.00,1.00 -0468,-015.00,+00.00,01.00,000.00,1.00 -0469,-015.00,+00.00,01.00,000.00,1.00 -0470,-015.00,+00.00,01.00,000.00,1.00 -0471,-015.00,+00.00,01.00,000.00,1.00 -0472,-015.00,+00.00,01.00,000.00,1.00 -0473,-015.00,+00.00,01.00,000.00,1.00 -0474,-015.00,+00.00,01.00,000.00,1.00 -0475,-015.00,+00.00,01.00,000.00,1.00 -0476,-015.00,+00.00,01.00,000.00,1.00 -0477,-015.00,+00.00,01.00,000.00,1.00 -0478,-015.00,+00.00,01.00,000.00,1.00 -0479,-015.00,+00.00,01.00,000.00,1.00 -0480,-015.00,+00.00,01.00,000.00,1.00 -0481,-015.00,+00.00,01.00,000.00,1.00 -0482,-015.00,+00.00,01.00,000.00,1.00 -0483,-015.00,+00.00,01.00,000.00,1.00 -0484,-015.00,+00.00,01.00,000.00,1.00 -0485,-015.00,+00.00,01.00,000.00,1.00 -0486,-015.00,+00.00,01.00,000.00,1.00 -0487,-015.00,+00.00,01.00,000.00,1.00 -0488,-015.00,+00.00,01.00,000.00,1.00 -0489,-015.00,+00.00,01.00,000.00,1.00 -0490,-015.00,+00.00,01.00,000.00,1.00 -0491,-015.00,+00.00,01.00,000.00,1.00 -0492,-015.00,+00.00,01.00,000.00,1.00 -0493,-015.00,+00.00,01.00,000.00,1.00 -0494,-015.00,+00.00,01.00,000.00,1.00 -0495,-015.00,+00.00,01.00,000.00,1.00 -0496,-015.00,+00.00,01.00,000.00,1.00 -0497,-015.00,+00.00,01.00,000.00,1.00 -0498,-015.00,+00.00,01.00,000.00,1.00 -0499,-015.00,+00.00,01.00,000.00,1.00 -0500,-015.00,+00.00,01.00,000.00,1.00 -0501,-015.00,+00.00,01.00,000.00,1.00 -0502,-015.00,+00.00,01.00,000.00,1.00 -0503,-015.00,+00.00,01.00,000.00,1.00 -0504,-015.00,+00.00,01.00,000.00,1.00 -0505,-015.00,+00.00,01.00,000.00,1.00 -0506,-015.00,+00.00,01.00,000.00,1.00 -0507,-015.00,+00.00,01.00,000.00,1.00 -0508,-015.00,+00.00,01.00,000.00,1.00 -0509,-015.00,+00.00,01.00,000.00,1.00 -0510,-015.00,+00.00,01.00,000.00,1.00 -0511,-015.00,+00.00,01.00,000.00,1.00 -0512,-015.00,+00.00,01.00,000.00,1.00 -0513,-015.00,+00.00,01.00,000.00,1.00 -0514,-015.00,+00.00,01.00,000.00,1.00 -0515,-015.00,+00.00,01.00,000.00,1.00 -0516,-015.00,+00.00,01.00,000.00,1.00 -0517,-015.00,+00.00,01.00,000.00,1.00 -0518,-015.00,+00.00,01.00,000.00,1.00 -0519,-015.00,+00.00,01.00,000.00,1.00 -0520,-015.00,+00.00,01.00,000.00,1.00 -0521,-015.00,+00.00,01.00,000.00,1.00 -0522,-015.00,+00.00,01.00,000.00,1.00 -0523,-015.00,+00.00,01.00,000.00,1.00 -0524,-015.00,+00.00,01.00,000.00,1.00 -0525,-015.00,+00.00,01.00,000.00,1.00 -0526,-015.00,+00.00,01.00,000.00,1.00 -0527,-015.00,+00.00,01.00,000.00,1.00 -0528,-015.00,+00.00,01.00,000.00,1.00 -0529,-015.00,+00.00,01.00,000.00,1.00 -0530,-015.00,+00.00,01.00,000.00,1.00 -0531,-015.00,+00.00,01.00,000.00,1.00 -0532,-015.00,+00.00,01.00,000.00,1.00 -0533,-015.00,+00.00,01.00,000.00,1.00 -0534,-015.00,+00.00,01.00,000.00,1.00 -0535,-015.00,+00.00,01.00,000.00,1.00 -0536,-015.00,+00.00,01.00,000.00,1.00 -0537,-015.00,+00.00,01.00,000.00,1.00 -0538,-015.00,+00.00,01.00,000.00,1.00 -0539,-015.00,+00.00,01.00,000.00,1.00 -0540,-015.00,+00.00,01.00,000.00,1.00 -0541,-015.00,+00.00,01.00,000.00,1.00 -0542,-015.00,+00.00,01.00,000.00,1.00 -0543,-015.00,+00.00,01.00,000.00,1.00 -0544,-015.00,+00.00,01.00,000.00,1.00 -0545,-015.00,+00.00,01.00,000.00,1.00 -0546,-015.00,+00.00,01.00,000.00,1.00 -0547,-015.00,+00.00,01.00,000.00,1.00 -0548,-015.00,+00.00,01.00,000.00,1.00 -0549,-015.00,+00.00,01.00,000.00,1.00 -0550,-015.00,+00.00,01.00,000.00,1.00 -0551,-015.00,+00.00,01.00,000.00,1.00 -0552,-015.00,+00.00,01.00,000.00,1.00 -0553,-015.00,+00.00,01.00,000.00,1.00 -0554,-015.00,+00.00,01.00,000.00,1.00 -0555,-015.00,+00.00,01.00,000.00,1.00 -0556,-015.00,+00.00,01.00,000.00,1.00 -0557,-015.00,+00.00,01.00,000.00,1.00 -0558,-015.00,+00.00,01.00,000.00,1.00 -0559,-015.00,+00.00,01.00,000.00,1.00 -0560,-015.00,+00.00,01.00,000.00,1.00 -0561,-015.00,+00.00,01.00,000.00,1.00 -0562,-015.00,+00.00,01.00,000.00,1.00 -0563,-015.00,+00.00,01.00,000.00,1.00 -0564,-015.00,+00.00,01.00,000.00,1.00 -0565,-015.00,+00.00,01.00,000.00,1.00 -0566,-015.00,+00.00,01.00,000.00,1.00 -0567,-015.00,+00.00,01.00,000.00,1.00 -0568,-015.00,+00.00,01.00,000.00,1.00 -0569,-015.00,+00.00,01.00,000.00,1.00 -0570,-015.00,+00.00,01.00,000.00,1.00 -0571,-015.00,+00.00,01.00,000.00,1.00 -0572,-015.00,+00.00,01.00,000.00,1.00 -0573,-015.00,+00.00,01.00,000.00,1.00 -0574,-015.00,+00.00,01.00,000.00,1.00 -0575,-015.00,+00.00,01.00,000.00,1.00 -0576,-015.00,+00.00,01.00,000.00,1.00 -0577,-015.00,+00.00,01.00,000.00,1.00 -0578,-015.00,+00.00,01.00,000.00,1.00 -0579,-015.00,+00.00,01.00,000.00,1.00 -0580,-015.00,+00.00,01.00,000.00,1.00 -0581,-015.00,+00.00,01.00,000.00,1.00 -0582,-015.00,+00.00,01.00,000.00,1.00 -0583,-015.00,+00.00,01.00,000.00,1.00 -0584,-015.00,+00.00,01.00,000.00,1.00 -0585,-015.00,+00.00,01.00,000.00,1.00 -0586,-015.00,+00.00,01.00,000.00,1.00 -0587,-015.00,+00.00,01.00,000.00,1.00 -0588,-015.00,+00.00,01.00,000.00,1.00 -0589,-015.00,+00.00,01.00,000.00,1.00 -0590,-015.00,+00.00,01.00,000.00,1.00 -0591,-015.00,+00.00,01.00,000.00,1.00 -0592,-015.00,+00.00,01.00,000.00,1.00 -0593,-015.00,+00.00,01.00,000.00,1.00 -0594,-015.00,+00.00,01.00,000.00,1.00 -0595,-015.00,+00.00,01.00,000.00,1.00 -0596,-015.00,+00.00,01.00,000.00,1.00 -0597,-015.00,+00.00,01.00,000.00,1.00 -0598,-015.00,+00.00,01.00,000.00,1.00 -0599,-015.00,+00.00,01.00,000.00,1.00 -0600,-015.00,+00.00,01.00,000.00,1.00 -0601,-015.00,+00.00,01.00,000.00,1.00 -0602,-015.00,+00.00,01.00,000.00,1.00 -0603,-015.00,+00.00,01.00,000.00,1.00 -0604,-015.00,+00.00,01.00,000.00,1.00 -0605,-015.00,+00.00,01.00,000.00,1.00 -0606,-015.00,+00.00,01.00,000.00,1.00 -0607,-015.00,+00.00,01.00,000.00,1.00 -0608,-015.00,+00.00,01.00,000.00,1.00 -0609,-015.00,+00.00,01.00,000.00,1.00 -0610,-015.00,+00.00,01.00,000.00,1.00 -0611,-015.00,+00.00,01.00,000.00,1.00 -0612,-015.00,+00.00,01.00,000.00,1.00 -0613,-015.00,+00.00,01.00,000.00,1.00 -0614,-015.00,+00.00,01.00,000.00,1.00 -0615,-015.00,+00.00,01.00,000.00,1.00 -0616,-015.00,+00.00,01.00,000.00,1.00 -0617,-015.00,+00.00,01.00,000.00,1.00 -0618,-015.00,+00.00,01.00,000.00,1.00 -0619,-015.00,+00.00,01.00,000.00,1.00 -0620,-015.00,+00.00,01.00,000.00,1.00 -0621,-015.00,+00.00,01.00,000.00,1.00 -0622,-015.00,+00.00,01.00,000.00,1.00 -0623,-015.00,+00.00,01.00,000.00,1.00 -0624,-015.00,+00.00,01.00,000.00,1.00 -0625,-015.00,+00.00,01.00,000.00,1.00 -0626,-015.00,+00.00,01.00,000.00,1.00 -0627,-015.00,+00.00,01.00,000.00,1.00 -0628,-015.00,+00.00,01.00,000.00,1.00 -0629,-015.00,+00.00,01.00,000.00,1.00 -0630,-015.00,+00.00,01.00,000.00,1.00 -0631,-015.00,+00.00,01.00,000.00,1.00 -0632,-015.00,+00.00,01.00,000.00,1.00 -0633,-015.00,+00.00,01.00,000.00,1.00 -0634,-015.00,+00.00,01.00,000.00,1.00 -0635,-015.00,+00.00,01.00,000.00,1.00 -0636,-015.00,+00.00,01.00,000.00,1.00 -0637,-015.00,+00.00,01.00,000.00,1.00 -0638,-015.00,+00.00,01.00,000.00,1.00 -0639,-015.00,+00.00,01.00,000.00,1.00 -0640,-015.00,+00.00,01.00,000.00,1.00 -0641,-015.00,+00.00,01.00,000.00,1.00 -0642,-015.00,+00.00,01.00,000.00,1.00 -0643,-015.00,+00.00,01.00,000.00,1.00 -0644,-015.00,+00.00,01.00,000.00,1.00 -0645,-015.00,+00.00,01.00,000.00,1.00 -0646,-015.00,+00.00,01.00,000.00,1.00 -0647,-015.00,+00.00,01.00,000.00,1.00 -0648,-015.00,+00.00,01.00,000.00,1.00 -0649,-015.00,+00.00,01.00,000.00,1.00 -0650,-015.00,+00.00,01.00,000.00,1.00 -0651,-015.00,+00.00,01.00,000.00,1.00 -0652,-015.00,+00.00,01.00,000.00,1.00 -0653,-015.00,+00.00,01.00,000.00,1.00 -0654,-015.00,+00.00,01.00,000.00,1.00 -0655,-015.00,+00.00,01.00,000.00,1.00 -0656,-015.00,+00.00,01.00,000.00,1.00 -0657,-015.00,+00.00,01.00,000.00,1.00 -0658,-015.00,+00.00,01.00,000.00,1.00 -0659,-015.00,+00.00,01.00,000.00,1.00 -0660,-015.00,+00.00,01.00,000.00,1.00 -0661,-015.00,+00.00,01.00,000.00,1.00 -0662,-015.00,+00.00,01.00,000.00,1.00 -0663,-015.00,+00.00,01.00,000.00,1.00 -0664,-015.00,+00.00,01.00,000.00,1.00 -0665,-015.00,+00.00,01.00,000.00,1.00 -0666,-015.00,+00.00,01.00,000.00,1.00 -0667,-015.00,+00.00,01.00,000.00,1.00 -0668,-015.00,+00.00,01.00,000.00,1.00 -0669,-015.00,+00.00,01.00,000.00,1.00 -0670,-015.00,+00.00,01.00,000.00,1.00 -0671,-015.00,+00.00,01.00,000.00,1.00 -0672,-015.00,+00.00,01.00,000.00,1.00 -0673,-015.00,+00.00,01.00,000.00,1.00 -0674,-015.00,+00.00,01.00,000.00,1.00 -0675,-015.00,+00.00,01.00,000.00,1.00 -0676,-015.00,+00.00,01.00,000.00,1.00 -0677,-015.00,+00.00,01.00,000.00,1.00 -0678,-015.00,+00.00,01.00,000.00,1.00 -0679,-015.00,+00.00,01.00,000.00,1.00 -0680,-015.00,+00.00,01.00,000.00,1.00 -0681,-015.00,+00.00,01.00,000.00,1.00 -0682,-015.00,+00.00,01.00,000.00,1.00 -0683,-015.00,+00.00,01.00,000.00,1.00 -0684,-015.00,+00.00,01.00,000.00,1.00 -0685,-015.00,+00.00,01.00,000.00,1.00 -0686,-015.00,+00.00,01.00,000.00,1.00 -0687,-015.00,+00.00,01.00,000.00,1.00 -0688,-015.00,+00.00,01.00,000.00,1.00 -0689,-015.00,+00.00,01.00,000.00,1.00 -0690,-015.00,+00.00,01.00,000.00,1.00 -0691,-015.00,+00.00,01.00,000.00,1.00 -0692,-015.00,+00.00,01.00,000.00,1.00 -0693,-015.00,+00.00,01.00,000.00,1.00 -0694,-015.00,+00.00,01.00,000.00,1.00 -0695,-015.00,+00.00,01.00,000.00,1.00 -0696,-015.00,+00.00,01.00,000.00,1.00 -0697,-015.00,+00.00,01.00,000.00,1.00 -0698,-015.00,+00.00,01.00,000.00,1.00 -0699,-015.00,+00.00,01.00,000.00,1.00 -0700,-015.00,+00.00,01.00,000.00,1.00 -0701,-015.00,+00.00,01.00,000.00,1.00 -0702,-015.00,+00.00,01.00,000.00,1.00 -0703,-015.00,+00.00,01.00,000.00,1.00 -0704,-015.00,+00.00,01.00,000.00,1.00 -0705,-015.00,+00.00,01.00,000.00,1.00 -0706,-015.00,+00.00,01.00,000.00,1.00 -0707,-015.00,+00.00,01.00,000.00,1.00 -0708,-015.00,+00.00,01.00,000.00,1.00 -0709,-015.00,+00.00,01.00,000.00,1.00 -0710,-015.00,+00.00,01.00,000.00,1.00 -0711,-015.00,+00.00,01.00,000.00,1.00 -0712,-015.00,+00.00,01.00,000.00,1.00 -0713,-015.00,+00.00,01.00,000.00,1.00 -0714,-015.00,+00.00,01.00,000.00,1.00 -0715,-015.00,+00.00,01.00,000.00,1.00 -0716,-015.00,+00.00,01.00,000.00,1.00 -0717,-015.00,+00.00,01.00,000.00,1.00 -0718,-015.00,+00.00,01.00,000.00,1.00 -0719,-015.00,+00.00,01.00,000.00,1.00 -0720,-015.00,+00.00,01.00,000.00,1.00 -0721,-015.00,+00.00,01.00,000.00,1.00 -0722,-015.00,+00.00,01.00,000.00,1.00 -0723,-015.00,+00.00,01.00,000.00,1.00 -0724,-015.00,+00.00,01.00,000.00,1.00 -0725,-015.00,+00.00,01.00,000.00,1.00 -0726,-015.00,+00.00,01.00,000.00,1.00 -0727,-015.00,+00.00,01.00,000.00,1.00 -0728,-015.00,+00.00,01.00,000.00,1.00 -0729,-015.00,+00.00,01.00,000.00,1.00 -0730,-015.00,+00.00,01.00,000.00,1.00 -0731,-015.00,+00.00,01.00,000.00,1.00 -0732,-015.00,+00.00,01.00,000.00,1.00 -0733,-015.00,+00.00,01.00,000.00,1.00 -0734,-015.00,+00.00,01.00,000.00,1.00 -0735,-015.00,+00.00,01.00,000.00,1.00 -0736,-015.00,+00.00,01.00,000.00,1.00 -0737,-015.00,+00.00,01.00,000.00,1.00 -0738,-015.00,+00.00,01.00,000.00,1.00 -0739,-015.00,+00.00,01.00,000.00,1.00 -0740,-015.00,+00.00,01.00,000.00,1.00 -0741,-015.00,+00.00,01.00,000.00,1.00 -0742,-015.00,+00.00,01.00,000.00,1.00 -0743,-015.00,+00.00,01.00,000.00,1.00 -0744,-015.00,+00.00,01.00,000.00,1.00 -0745,-015.00,+00.00,01.00,000.00,1.00 -0746,-015.00,+00.00,01.00,000.00,1.00 -0747,-015.00,+00.00,01.00,000.00,1.00 -0748,-015.00,+00.00,01.00,000.00,1.00 -0749,-015.00,+00.00,01.00,000.00,1.00 -0750,-015.00,+00.00,01.00,000.00,1.00 -0751,-015.00,+00.00,01.00,000.00,1.00 -0752,-015.00,+00.00,01.00,000.00,1.00 -0753,-015.00,+00.00,01.00,000.00,1.00 -0754,-015.00,+00.00,01.00,000.00,1.00 -0755,-015.00,+00.00,01.00,000.00,1.00 -0756,-015.00,+00.00,01.00,000.00,1.00 -0757,-015.00,+00.00,01.00,000.00,1.00 -0758,-015.00,+00.00,01.00,000.00,1.00 -0759,-015.00,+00.00,01.00,000.00,1.00 -0760,-015.00,+00.00,01.00,000.00,1.00 -0761,-015.00,+00.00,01.00,000.00,1.00 -0762,-015.00,+00.00,01.00,000.00,1.00 -0763,-015.00,+00.00,01.00,000.00,1.00 -0764,-015.00,+00.00,01.00,000.00,1.00 -0765,-015.00,+00.00,01.00,000.00,1.00 -0766,-015.00,+00.00,01.00,000.00,1.00 -0767,-015.00,+00.00,01.00,000.00,1.00 -0768,-015.00,+00.00,01.00,000.00,1.00 -0769,-015.00,+00.00,01.00,000.00,1.00 -0770,-015.00,+00.00,01.00,000.00,1.00 -0771,-015.00,+00.00,01.00,000.00,1.00 -0772,-015.00,+00.00,01.00,000.00,1.00 -0773,-015.00,+00.00,01.00,000.00,1.00 -0774,-015.00,+00.00,01.00,000.00,1.00 -0775,-015.00,+00.00,01.00,000.00,1.00 -0776,-015.00,+00.00,01.00,000.00,1.00 -0777,-015.00,+00.00,01.00,000.00,1.00 -0778,-015.00,+00.00,01.00,000.00,1.00 -0779,-015.00,+00.00,01.00,000.00,1.00 -0780,-015.00,+00.00,01.00,000.00,1.00 -0781,-015.00,+00.00,01.00,000.00,1.00 -0782,-015.00,+00.00,01.00,000.00,1.00 -0783,-015.00,+00.00,01.00,000.00,1.00 -0784,-015.00,+00.00,01.00,000.00,1.00 -0785,-015.00,+00.00,01.00,000.00,1.00 -0786,-015.00,+00.00,01.00,000.00,1.00 -0787,-015.00,+00.00,01.00,000.00,1.00 -0788,-015.00,+00.00,01.00,000.00,1.00 -0789,-015.00,+00.00,01.00,000.00,1.00 -0790,-015.00,+00.00,01.00,000.00,1.00 -0791,-015.00,+00.00,01.00,000.00,1.00 -0792,-015.00,+00.00,01.00,000.00,1.00 -0793,-015.00,+00.00,01.00,000.00,1.00 -0794,-015.00,+00.00,01.00,000.00,1.00 -0795,-015.00,+00.00,01.00,000.00,1.00 -0796,-015.00,+00.00,01.00,000.00,1.00 -0797,-015.00,+00.00,01.00,000.00,1.00 -0798,-015.00,+00.00,01.00,000.00,1.00 -0799,-015.00,+00.00,01.00,000.00,1.00 -0800,-015.00,+00.00,01.00,000.00,1.00 -0801,-015.00,+00.00,01.00,000.00,1.00 -0802,-015.00,+00.00,01.00,000.00,1.00 -0803,-015.00,+00.00,01.00,000.00,1.00 -0804,-015.00,+00.00,01.00,000.00,1.00 -0805,-015.00,+00.00,01.00,000.00,1.00 -0806,-015.00,+00.00,01.00,000.00,1.00 -0807,-015.00,+00.00,01.00,000.00,1.00 -0808,-015.00,+00.00,01.00,000.00,1.00 -0809,-015.00,+00.00,01.00,000.00,1.00 -0810,-015.00,+00.00,01.00,000.00,1.00 -0811,-015.00,+00.00,01.00,000.00,1.00 -0812,-015.00,+00.00,01.00,000.00,1.00 -0813,-015.00,+00.00,01.00,000.00,1.00 -0814,-015.00,+00.00,01.00,000.00,1.00 -0815,-015.00,+00.00,01.00,000.00,1.00 -0816,-015.00,+00.00,01.00,000.00,1.00 -0817,-015.00,+00.00,01.00,000.00,1.00 -0818,-015.00,+00.00,01.00,000.00,1.00 -0819,-015.00,+00.00,01.00,000.00,1.00 -0820,-015.00,+00.00,01.00,000.00,1.00 -0821,-015.00,+00.00,01.00,000.00,1.00 -0822,-015.00,+00.00,01.00,000.00,1.00 -0823,-015.00,+00.00,01.00,000.00,1.00 -0824,-015.00,+00.00,01.00,000.00,1.00 -0825,-015.00,+00.00,01.00,000.00,1.00 -0826,-015.00,+00.00,01.00,000.00,1.00 -0827,-015.00,+00.00,01.00,000.00,1.00 -0828,-015.00,+00.00,01.00,000.00,1.00 -0829,-015.00,+00.00,01.00,000.00,1.00 -0830,-015.00,+00.00,01.00,000.00,1.00 -0831,-015.00,+00.00,01.00,000.00,1.00 -0832,-015.00,+00.00,01.00,000.00,1.00 -0833,-015.00,+00.00,01.00,000.00,1.00 -0834,-015.00,+00.00,01.00,000.00,1.00 -0835,-015.00,+00.00,01.00,000.00,1.00 -0836,-015.00,+00.00,01.00,000.00,1.00 -0837,-015.00,+00.00,01.00,000.00,1.00 -0838,-015.00,+00.00,01.00,000.00,1.00 -0839,-015.00,+00.00,01.00,000.00,1.00 -0840,-015.00,+00.00,01.00,000.00,1.00 -0841,-015.00,+00.00,01.00,000.00,1.00 -0842,-015.00,+00.00,01.00,000.00,1.00 -0843,-015.00,+00.00,01.00,000.00,1.00 -0844,-015.00,+00.00,01.00,000.00,1.00 -0845,-015.00,+00.00,01.00,000.00,1.00 -0846,-015.00,+00.00,01.00,000.00,1.00 -0847,-015.00,+00.00,01.00,000.00,1.00 -0848,-015.00,+00.00,01.00,000.00,1.00 -0849,-015.00,+00.00,01.00,000.00,1.00 -0850,-015.00,+00.00,01.00,000.00,1.00 -0851,-015.00,+00.00,01.00,000.00,1.00 -0852,-015.00,+00.00,01.00,000.00,1.00 -0853,-015.00,+00.00,01.00,000.00,1.00 -0854,-015.00,+00.00,01.00,000.00,1.00 -0855,-015.00,+00.00,01.00,000.00,1.00 -0856,-015.00,+00.00,01.00,000.00,1.00 -0857,-015.00,+00.00,01.00,000.00,1.00 -0858,-015.00,+00.00,01.00,000.00,1.00 -0859,-015.00,+00.00,01.00,000.00,1.00 -0860,-015.00,+00.00,01.00,000.00,1.00 -0861,-015.00,+00.00,01.00,000.00,1.00 -0862,-015.00,+00.00,01.00,000.00,1.00 -0863,-015.00,+00.00,01.00,000.00,1.00 -0864,-015.00,+00.00,01.00,000.00,1.00 -0865,-015.00,+00.00,01.00,000.00,1.00 -0866,-015.00,+00.00,01.00,000.00,1.00 -0867,-015.00,+00.00,01.00,000.00,1.00 -0868,-015.00,+00.00,01.00,000.00,1.00 -0869,-015.00,+00.00,01.00,000.00,1.00 -0870,-015.00,+00.00,01.00,000.00,1.00 -0871,-015.00,+00.00,01.00,000.00,1.00 -0872,-015.00,+00.00,01.00,000.00,1.00 -0873,-015.00,+00.00,01.00,000.00,1.00 -0874,-015.00,+00.00,01.00,000.00,1.00 -0875,-015.00,+00.00,01.00,000.00,1.00 -0876,-015.00,+00.00,01.00,000.00,1.00 -0877,-015.00,+00.00,01.00,000.00,1.00 -0878,-015.00,+00.00,01.00,000.00,1.00 -0879,-015.00,+00.00,01.00,000.00,1.00 -0880,-015.00,+00.00,01.00,000.00,1.00 -0881,-015.00,+00.00,01.00,000.00,1.00 -0882,-015.00,+00.00,01.00,000.00,1.00 -0883,-015.00,+00.00,01.00,000.00,1.00 -0884,-015.00,+00.00,01.00,000.00,1.00 -0885,-015.00,+00.00,01.00,000.00,1.00 -0886,-015.00,+00.00,01.00,000.00,1.00 -0887,-015.00,+00.00,01.00,000.00,1.00 -0888,-015.00,+00.00,01.00,000.00,1.00 -0889,-015.00,+00.00,01.00,000.00,1.00 -0890,-015.00,+00.00,01.00,000.00,1.00 -0891,-015.00,+00.00,01.00,000.00,1.00 -0892,-015.00,+00.00,01.00,000.00,1.00 -0893,-015.00,+00.00,01.00,000.00,1.00 -0894,-015.00,+00.00,01.00,000.00,1.00 -0895,-015.00,+00.00,01.00,000.00,1.00 -0896,-015.00,+00.00,01.00,000.00,1.00 -0897,-015.00,+00.00,01.00,000.00,1.00 -0898,-015.00,+00.00,01.00,000.00,1.00 -0899,-015.00,+00.00,01.00,000.00,1.00 -0900,-015.00,+00.00,01.00,000.00,1.00 -0901,-015.00,+00.00,01.00,000.00,1.00 -0902,-015.00,+00.00,01.00,000.00,1.00 -0903,-015.00,+00.00,01.00,000.00,1.00 -0904,-015.00,+00.00,01.00,000.00,1.00 -0905,-015.00,+00.00,01.00,000.00,1.00 -0906,-015.00,+00.00,01.00,000.00,1.00 -0907,-015.00,+00.00,01.00,000.00,1.00 -0908,-015.00,+00.00,01.00,000.00,1.00 -0909,-015.00,+00.00,01.00,000.00,1.00 -0910,-015.00,+00.00,01.00,000.00,1.00 -0911,-015.00,+00.00,01.00,000.00,1.00 -0912,-015.00,+00.00,01.00,000.00,1.00 -0913,-015.00,+00.00,01.00,000.00,1.00 -0914,-015.00,+00.00,01.00,000.00,1.00 -0915,-015.00,+00.00,01.00,000.00,1.00 -0916,-015.00,+00.00,01.00,000.00,1.00 -0917,-015.00,+00.00,01.00,000.00,1.00 -0918,-015.00,+00.00,01.00,000.00,1.00 -0919,-015.00,+00.00,01.00,000.00,1.00 -0920,-015.00,+00.00,01.00,000.00,1.00 -0921,-015.00,+00.00,01.00,000.00,1.00 -0922,-015.00,+00.00,01.00,000.00,1.00 -0923,-015.00,+00.00,01.00,000.00,1.00 -0924,-015.00,+00.00,01.00,000.00,1.00 -0925,-015.00,+00.00,01.00,000.00,1.00 -0926,-015.00,+00.00,01.00,000.00,1.00 -0927,-015.00,+00.00,01.00,000.00,1.00 -0928,-015.00,+00.00,01.00,000.00,1.00 -0929,-015.00,+00.00,01.00,000.00,1.00 -0930,-015.00,+00.00,01.00,000.00,1.00 -0931,-015.00,+00.00,01.00,000.00,1.00 -0932,-015.00,+00.00,01.00,000.00,1.00 -0933,-015.00,+00.00,01.00,000.00,1.00 -0934,-015.00,+00.00,01.00,000.00,1.00 -0935,-015.00,+00.00,01.00,000.00,1.00 -0936,-015.00,+00.00,01.00,000.00,1.00 -0937,-015.00,+00.00,01.00,000.00,1.00 -0938,-015.00,+00.00,01.00,000.00,1.00 -0939,-015.00,+00.00,01.00,000.00,1.00 -0940,-015.00,+00.00,01.00,000.00,1.00 -0941,-015.00,+00.00,01.00,000.00,1.00 -0942,-015.00,+00.00,01.00,000.00,1.00 -0943,-015.00,+00.00,01.00,000.00,1.00 -0944,-015.00,+00.00,01.00,000.00,1.00 -0945,-015.00,+00.00,01.00,000.00,1.00 -0946,-015.00,+00.00,01.00,000.00,1.00 -0947,-015.00,+00.00,01.00,000.00,1.00 -0948,-015.00,+00.00,01.00,000.00,1.00 -0949,-015.00,+00.00,01.00,000.00,1.00 -0950,-015.00,+00.00,01.00,000.00,1.00 -0951,-015.00,+00.00,01.00,000.00,1.00 -0952,-015.00,+00.00,01.00,000.00,1.00 -0953,-015.00,+00.00,01.00,000.00,1.00 -0954,-015.00,+00.00,01.00,000.00,1.00 -0955,-015.00,+00.00,01.00,000.00,1.00 -0956,-015.00,+00.00,01.00,000.00,1.00 -0957,-015.00,+00.00,01.00,000.00,1.00 -0958,-015.00,+00.00,01.00,000.00,1.00 -0959,-015.00,+00.00,01.00,000.00,1.00 -0960,-015.00,+00.00,01.00,000.00,1.00 -0961,-015.00,+00.00,01.00,000.00,1.00 -0962,-015.00,+00.00,01.00,000.00,1.00 -0963,-015.00,+00.00,01.00,000.00,1.00 -0964,-015.00,+00.00,01.00,000.00,1.00 -0965,-015.00,+00.00,01.00,000.00,1.00 -0966,-015.00,+00.00,01.00,000.00,1.00 -0967,-015.00,+00.00,01.00,000.00,1.00 -0968,-015.00,+00.00,01.00,000.00,1.00 -0969,-015.00,+00.00,01.00,000.00,1.00 -0970,-015.00,+00.00,01.00,000.00,1.00 -0971,-015.00,+00.00,01.00,000.00,1.00 -0972,-015.00,+00.00,01.00,000.00,1.00 -0973,-015.00,+00.00,01.00,000.00,1.00 -0974,-015.00,+00.00,01.00,000.00,1.00 -0975,-015.00,+00.00,01.00,000.00,1.00 -0976,-015.00,+00.00,01.00,000.00,1.00 -0977,-015.00,+00.00,01.00,000.00,1.00 -0978,-015.00,+00.00,01.00,000.00,1.00 -0979,-015.00,+00.00,01.00,000.00,1.00 -0980,-015.00,+00.00,01.00,000.00,1.00 -0981,-015.00,+00.00,01.00,000.00,1.00 -0982,-015.00,+00.00,01.00,000.00,1.00 -0983,-015.00,+00.00,01.00,000.00,1.00 -0984,-015.00,+00.00,01.00,000.00,1.00 -0985,-015.00,+00.00,01.00,000.00,1.00 -0986,-015.00,+00.00,01.00,000.00,1.00 -0987,-015.00,+00.00,01.00,000.00,1.00 -0988,-015.00,+00.00,01.00,000.00,1.00 -0989,-015.00,+00.00,01.00,000.00,1.00 -0990,-015.00,+00.00,01.00,000.00,1.00 -0991,-015.00,+00.00,01.00,000.00,1.00 -0992,-015.00,+00.00,01.00,000.00,1.00 -0993,-015.00,+00.00,01.00,000.00,1.00 -0994,-015.00,+00.00,01.00,000.00,1.00 -0995,-015.00,+00.00,01.00,000.00,1.00 -0996,-015.00,+00.00,01.00,000.00,1.00 -0997,-015.00,+00.00,01.00,000.00,1.00 -0998,-015.00,+00.00,01.00,000.00,1.00 -0999,-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 +-015.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t02_ch1.csv b/scripts/td_object_renderer/metadata/csv/t02_ch1.csv index 9d7f23dbd0..82a50f1b3e 100644 --- a/scripts/td_object_renderer/metadata/csv/t02_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t02_ch1.csv @@ -1,1000 +1,1000 @@ -0000,+030.00,+00.00,01.00,000.00,1.00 -0001,+030.00,+00.00,01.00,000.00,1.00 -0002,+030.00,+00.00,01.00,000.00,1.00 -0003,+030.00,+00.00,01.00,000.00,1.00 -0004,+030.00,+00.00,01.00,000.00,1.00 -0005,+030.00,+00.00,01.00,000.00,1.00 -0006,+030.00,+00.00,01.00,000.00,1.00 -0007,+030.00,+00.00,01.00,000.00,1.00 -0008,+030.00,+00.00,01.00,000.00,1.00 -0009,+030.00,+00.00,01.00,000.00,1.00 -0010,+030.00,+00.00,01.00,000.00,1.00 -0011,+030.00,+00.00,01.00,000.00,1.00 -0012,+030.00,+00.00,01.00,000.00,1.00 -0013,+030.00,+00.00,01.00,000.00,1.00 -0014,+030.00,+00.00,01.00,000.00,1.00 -0015,+030.00,+00.00,01.00,000.00,1.00 -0016,+030.00,+00.00,01.00,000.00,1.00 -0017,+030.00,+00.00,01.00,000.00,1.00 -0018,+030.00,+00.00,01.00,000.00,1.00 -0019,+030.00,+00.00,01.00,000.00,1.00 -0020,+030.00,+00.00,01.00,000.00,1.00 -0021,+030.00,+00.00,01.00,000.00,1.00 -0022,+030.00,+00.00,01.00,000.00,1.00 -0023,+030.00,+00.00,01.00,000.00,1.00 -0024,+030.00,+00.00,01.00,000.00,1.00 -0025,+030.00,+00.00,01.00,000.00,1.00 -0026,+030.00,+00.00,01.00,000.00,1.00 -0027,+030.00,+00.00,01.00,000.00,1.00 -0028,+030.00,+00.00,01.00,000.00,1.00 -0029,+030.00,+00.00,01.00,000.00,1.00 -0030,+030.00,+00.00,01.00,000.00,1.00 -0031,+030.00,+00.00,01.00,000.00,1.00 -0032,+030.00,+00.00,01.00,000.00,1.00 -0033,+030.00,+00.00,01.00,000.00,1.00 -0034,+030.00,+00.00,01.00,000.00,1.00 -0035,+030.00,+00.00,01.00,000.00,1.00 -0036,+030.00,+00.00,01.00,000.00,1.00 -0037,+030.00,+00.00,01.00,000.00,1.00 -0038,+030.00,+00.00,01.00,000.00,1.00 -0039,+030.00,+00.00,01.00,000.00,1.00 -0040,+030.00,+00.00,01.00,000.00,1.00 -0041,+030.00,+00.00,01.00,000.00,1.00 -0042,+030.00,+00.00,01.00,000.00,1.00 -0043,+030.00,+00.00,01.00,000.00,1.00 -0044,+030.00,+00.00,01.00,000.00,1.00 -0045,+030.00,+00.00,01.00,000.00,1.00 -0046,+030.00,+00.00,01.00,000.00,1.00 -0047,+030.00,+00.00,01.00,000.00,1.00 -0048,+030.00,+00.00,01.00,000.00,1.00 -0049,+030.00,+00.00,01.00,000.00,1.00 -0050,+030.00,+00.00,01.00,000.00,1.00 -0051,+030.00,+00.00,01.00,000.00,1.00 -0052,+030.00,+00.00,01.00,000.00,1.00 -0053,+030.00,+00.00,01.00,000.00,1.00 -0054,+030.00,+00.00,01.00,000.00,1.00 -0055,+030.00,+00.00,01.00,000.00,1.00 -0056,+030.00,+00.00,01.00,000.00,1.00 -0057,+030.00,+00.00,01.00,000.00,1.00 -0058,+030.00,+00.00,01.00,000.00,1.00 -0059,+030.00,+00.00,01.00,000.00,1.00 -0060,+030.00,+00.00,01.00,000.00,1.00 -0061,+030.00,+00.00,01.00,000.00,1.00 -0062,+030.00,+00.00,01.00,000.00,1.00 -0063,+030.00,+00.00,01.00,000.00,1.00 -0064,+030.00,+00.00,01.00,000.00,1.00 -0065,+030.00,+00.00,01.00,000.00,1.00 -0066,+030.00,+00.00,01.00,000.00,1.00 -0067,+030.00,+00.00,01.00,000.00,1.00 -0068,+030.00,+00.00,01.00,000.00,1.00 -0069,+030.00,+00.00,01.00,000.00,1.00 -0070,+030.00,+00.00,01.00,000.00,1.00 -0071,+030.00,+00.00,01.00,000.00,1.00 -0072,+030.00,+00.00,01.00,000.00,1.00 -0073,+030.00,+00.00,01.00,000.00,1.00 -0074,+030.00,+00.00,01.00,000.00,1.00 -0075,+030.00,+00.00,01.00,000.00,1.00 -0076,+030.00,+00.00,01.00,000.00,1.00 -0077,+030.00,+00.00,01.00,000.00,1.00 -0078,+030.00,+00.00,01.00,000.00,1.00 -0079,+030.00,+00.00,01.00,000.00,1.00 -0080,+030.00,+00.00,01.00,000.00,1.00 -0081,+030.00,+00.00,01.00,000.00,1.00 -0082,+030.00,+00.00,01.00,000.00,1.00 -0083,+030.00,+00.00,01.00,000.00,1.00 -0084,+030.00,+00.00,01.00,000.00,1.00 -0085,+030.00,+00.00,01.00,000.00,1.00 -0086,+030.00,+00.00,01.00,000.00,1.00 -0087,+030.00,+00.00,01.00,000.00,1.00 -0088,+030.00,+00.00,01.00,000.00,1.00 -0089,+030.00,+00.00,01.00,000.00,1.00 -0090,+030.00,+00.00,01.00,000.00,1.00 -0091,+030.00,+00.00,01.00,000.00,1.00 -0092,+030.00,+00.00,01.00,000.00,1.00 -0093,+030.00,+00.00,01.00,000.00,1.00 -0094,+030.00,+00.00,01.00,000.00,1.00 -0095,+030.00,+00.00,01.00,000.00,1.00 -0096,+030.00,+00.00,01.00,000.00,1.00 -0097,+030.00,+00.00,01.00,000.00,1.00 -0098,+030.00,+00.00,01.00,000.00,1.00 -0099,+030.00,+00.00,01.00,000.00,1.00 -0100,+030.00,+00.00,01.00,000.00,1.00 -0101,+030.00,+00.00,01.00,000.00,1.00 -0102,+030.00,+00.00,01.00,000.00,1.00 -0103,+030.00,+00.00,01.00,000.00,1.00 -0104,+030.00,+00.00,01.00,000.00,1.00 -0105,+030.00,+00.00,01.00,000.00,1.00 -0106,+030.00,+00.00,01.00,000.00,1.00 -0107,+030.00,+00.00,01.00,000.00,1.00 -0108,+030.00,+00.00,01.00,000.00,1.00 -0109,+030.00,+00.00,01.00,000.00,1.00 -0110,+030.00,+00.00,01.00,000.00,1.00 -0111,+030.00,+00.00,01.00,000.00,1.00 -0112,+030.00,+00.00,01.00,000.00,1.00 -0113,+030.00,+00.00,01.00,000.00,1.00 -0114,+030.00,+00.00,01.00,000.00,1.00 -0115,+030.00,+00.00,01.00,000.00,1.00 -0116,+030.00,+00.00,01.00,000.00,1.00 -0117,+030.00,+00.00,01.00,000.00,1.00 -0118,+030.00,+00.00,01.00,000.00,1.00 -0119,+030.00,+00.00,01.00,000.00,1.00 -0120,+030.00,+00.00,01.00,000.00,1.00 -0121,+030.00,+00.00,01.00,000.00,1.00 -0122,+030.00,+00.00,01.00,000.00,1.00 -0123,+030.00,+00.00,01.00,000.00,1.00 -0124,+030.00,+00.00,01.00,000.00,1.00 -0125,+030.00,+00.00,01.00,000.00,1.00 -0126,+030.00,+00.00,01.00,000.00,1.00 -0127,+030.00,+00.00,01.00,000.00,1.00 -0128,+030.00,+00.00,01.00,000.00,1.00 -0129,+030.00,+00.00,01.00,000.00,1.00 -0130,+030.00,+00.00,01.00,000.00,1.00 -0131,+030.00,+00.00,01.00,000.00,1.00 -0132,+030.00,+00.00,01.00,000.00,1.00 -0133,+030.00,+00.00,01.00,000.00,1.00 -0134,+030.00,+00.00,01.00,000.00,1.00 -0135,+030.00,+00.00,01.00,000.00,1.00 -0136,+030.00,+00.00,01.00,000.00,1.00 -0137,+030.00,+00.00,01.00,000.00,1.00 -0138,+030.00,+00.00,01.00,000.00,1.00 -0139,+030.00,+00.00,01.00,000.00,1.00 -0140,+030.00,+00.00,01.00,000.00,1.00 -0141,+030.00,+00.00,01.00,000.00,1.00 -0142,+030.00,+00.00,01.00,000.00,1.00 -0143,+030.00,+00.00,01.00,000.00,1.00 -0144,+030.00,+00.00,01.00,000.00,1.00 -0145,+030.00,+00.00,01.00,000.00,1.00 -0146,+030.00,+00.00,01.00,000.00,1.00 -0147,+030.00,+00.00,01.00,000.00,1.00 -0148,+030.00,+00.00,01.00,000.00,1.00 -0149,+030.00,+00.00,01.00,000.00,1.00 -0150,+030.00,+00.00,01.00,000.00,1.00 -0151,+030.00,+00.00,01.00,000.00,1.00 -0152,+030.00,+00.00,01.00,000.00,1.00 -0153,+030.00,+00.00,01.00,000.00,1.00 -0154,+030.00,+00.00,01.00,000.00,1.00 -0155,+030.00,+00.00,01.00,000.00,1.00 -0156,+030.00,+00.00,01.00,000.00,1.00 -0157,+030.00,+00.00,01.00,000.00,1.00 -0158,+030.00,+00.00,01.00,000.00,1.00 -0159,+030.00,+00.00,01.00,000.00,1.00 -0160,+030.00,+00.00,01.00,000.00,1.00 -0161,+030.00,+00.00,01.00,000.00,1.00 -0162,+030.00,+00.00,01.00,000.00,1.00 -0163,+030.00,+00.00,01.00,000.00,1.00 -0164,+030.00,+00.00,01.00,000.00,1.00 -0165,+030.00,+00.00,01.00,000.00,1.00 -0166,+030.00,+00.00,01.00,000.00,1.00 -0167,+030.00,+00.00,01.00,000.00,1.00 -0168,+030.00,+00.00,01.00,000.00,1.00 -0169,+030.00,+00.00,01.00,000.00,1.00 -0170,+030.00,+00.00,01.00,000.00,1.00 -0171,+030.00,+00.00,01.00,000.00,1.00 -0172,+030.00,+00.00,01.00,000.00,1.00 -0173,+030.00,+00.00,01.00,000.00,1.00 -0174,+030.00,+00.00,01.00,000.00,1.00 -0175,+030.00,+00.00,01.00,000.00,1.00 -0176,+030.00,+00.00,01.00,000.00,1.00 -0177,+030.00,+00.00,01.00,000.00,1.00 -0178,+030.00,+00.00,01.00,000.00,1.00 -0179,+030.00,+00.00,01.00,000.00,1.00 -0180,+030.00,+00.00,01.00,000.00,1.00 -0181,+030.00,+00.00,01.00,000.00,1.00 -0182,+030.00,+00.00,01.00,000.00,1.00 -0183,+030.00,+00.00,01.00,000.00,1.00 -0184,+030.00,+00.00,01.00,000.00,1.00 -0185,+030.00,+00.00,01.00,000.00,1.00 -0186,+030.00,+00.00,01.00,000.00,1.00 -0187,+030.00,+00.00,01.00,000.00,1.00 -0188,+030.00,+00.00,01.00,000.00,1.00 -0189,+030.00,+00.00,01.00,000.00,1.00 -0190,+030.00,+00.00,01.00,000.00,1.00 -0191,+030.00,+00.00,01.00,000.00,1.00 -0192,+030.00,+00.00,01.00,000.00,1.00 -0193,+030.00,+00.00,01.00,000.00,1.00 -0194,+030.00,+00.00,01.00,000.00,1.00 -0195,+030.00,+00.00,01.00,000.00,1.00 -0196,+030.00,+00.00,01.00,000.00,1.00 -0197,+030.00,+00.00,01.00,000.00,1.00 -0198,+030.00,+00.00,01.00,000.00,1.00 -0199,+030.00,+00.00,01.00,000.00,1.00 -0200,+030.00,+00.00,01.00,000.00,1.00 -0201,+030.00,+00.00,01.00,000.00,1.00 -0202,+030.00,+00.00,01.00,000.00,1.00 -0203,+030.00,+00.00,01.00,000.00,1.00 -0204,+030.00,+00.00,01.00,000.00,1.00 -0205,+030.00,+00.00,01.00,000.00,1.00 -0206,+030.00,+00.00,01.00,000.00,1.00 -0207,+030.00,+00.00,01.00,000.00,1.00 -0208,+030.00,+00.00,01.00,000.00,1.00 -0209,+030.00,+00.00,01.00,000.00,1.00 -0210,+030.00,+00.00,01.00,000.00,1.00 -0211,+030.00,+00.00,01.00,000.00,1.00 -0212,+030.00,+00.00,01.00,000.00,1.00 -0213,+030.00,+00.00,01.00,000.00,1.00 -0214,+030.00,+00.00,01.00,000.00,1.00 -0215,+030.00,+00.00,01.00,000.00,1.00 -0216,+030.00,+00.00,01.00,000.00,1.00 -0217,+030.00,+00.00,01.00,000.00,1.00 -0218,+030.00,+00.00,01.00,000.00,1.00 -0219,+030.00,+00.00,01.00,000.00,1.00 -0220,+030.00,+00.00,01.00,000.00,1.00 -0221,+030.00,+00.00,01.00,000.00,1.00 -0222,+030.00,+00.00,01.00,000.00,1.00 -0223,+030.00,+00.00,01.00,000.00,1.00 -0224,+030.00,+00.00,01.00,000.00,1.00 -0225,+030.00,+00.00,01.00,000.00,1.00 -0226,+030.00,+00.00,01.00,000.00,1.00 -0227,+030.00,+00.00,01.00,000.00,1.00 -0228,+030.00,+00.00,01.00,000.00,1.00 -0229,+030.00,+00.00,01.00,000.00,1.00 -0230,+030.00,+00.00,01.00,000.00,1.00 -0231,+030.00,+00.00,01.00,000.00,1.00 -0232,+030.00,+00.00,01.00,000.00,1.00 -0233,+030.00,+00.00,01.00,000.00,1.00 -0234,+030.00,+00.00,01.00,000.00,1.00 -0235,+030.00,+00.00,01.00,000.00,1.00 -0236,+030.00,+00.00,01.00,000.00,1.00 -0237,+030.00,+00.00,01.00,000.00,1.00 -0238,+030.00,+00.00,01.00,000.00,1.00 -0239,+030.00,+00.00,01.00,000.00,1.00 -0240,+030.00,+00.00,01.00,000.00,1.00 -0241,+030.00,+00.00,01.00,000.00,1.00 -0242,+030.00,+00.00,01.00,000.00,1.00 -0243,+030.00,+00.00,01.00,000.00,1.00 -0244,+030.00,+00.00,01.00,000.00,1.00 -0245,+030.00,+00.00,01.00,000.00,1.00 -0246,+030.00,+00.00,01.00,000.00,1.00 -0247,+030.00,+00.00,01.00,000.00,1.00 -0248,+030.00,+00.00,01.00,000.00,1.00 -0249,+030.00,+00.00,01.00,000.00,1.00 -0250,+030.00,+00.00,01.00,000.00,1.00 -0251,+030.00,+00.00,01.00,000.00,1.00 -0252,+030.00,+00.00,01.00,000.00,1.00 -0253,+030.00,+00.00,01.00,000.00,1.00 -0254,+030.00,+00.00,01.00,000.00,1.00 -0255,+030.00,+00.00,01.00,000.00,1.00 -0256,+030.00,+00.00,01.00,000.00,1.00 -0257,+030.00,+00.00,01.00,000.00,1.00 -0258,+030.00,+00.00,01.00,000.00,1.00 -0259,+030.00,+00.00,01.00,000.00,1.00 -0260,+030.00,+00.00,01.00,000.00,1.00 -0261,+030.00,+00.00,01.00,000.00,1.00 -0262,+030.00,+00.00,01.00,000.00,1.00 -0263,+030.00,+00.00,01.00,000.00,1.00 -0264,+030.00,+00.00,01.00,000.00,1.00 -0265,+030.00,+00.00,01.00,000.00,1.00 -0266,+030.00,+00.00,01.00,000.00,1.00 -0267,+030.00,+00.00,01.00,000.00,1.00 -0268,+030.00,+00.00,01.00,000.00,1.00 -0269,+030.00,+00.00,01.00,000.00,1.00 -0270,+030.00,+00.00,01.00,000.00,1.00 -0271,+030.00,+00.00,01.00,000.00,1.00 -0272,+030.00,+00.00,01.00,000.00,1.00 -0273,+030.00,+00.00,01.00,000.00,1.00 -0274,+030.00,+00.00,01.00,000.00,1.00 -0275,+030.00,+00.00,01.00,000.00,1.00 -0276,+030.00,+00.00,01.00,000.00,1.00 -0277,+030.00,+00.00,01.00,000.00,1.00 -0278,+030.00,+00.00,01.00,000.00,1.00 -0279,+030.00,+00.00,01.00,000.00,1.00 -0280,+030.00,+00.00,01.00,000.00,1.00 -0281,+030.00,+00.00,01.00,000.00,1.00 -0282,+030.00,+00.00,01.00,000.00,1.00 -0283,+030.00,+00.00,01.00,000.00,1.00 -0284,+030.00,+00.00,01.00,000.00,1.00 -0285,+030.00,+00.00,01.00,000.00,1.00 -0286,+030.00,+00.00,01.00,000.00,1.00 -0287,+030.00,+00.00,01.00,000.00,1.00 -0288,+030.00,+00.00,01.00,000.00,1.00 -0289,+030.00,+00.00,01.00,000.00,1.00 -0290,+030.00,+00.00,01.00,000.00,1.00 -0291,+030.00,+00.00,01.00,000.00,1.00 -0292,+030.00,+00.00,01.00,000.00,1.00 -0293,+030.00,+00.00,01.00,000.00,1.00 -0294,+030.00,+00.00,01.00,000.00,1.00 -0295,+030.00,+00.00,01.00,000.00,1.00 -0296,+030.00,+00.00,01.00,000.00,1.00 -0297,+030.00,+00.00,01.00,000.00,1.00 -0298,+030.00,+00.00,01.00,000.00,1.00 -0299,+030.00,+00.00,01.00,000.00,1.00 -0300,+030.00,+00.00,01.00,000.00,1.00 -0301,+030.00,+00.00,01.00,000.00,1.00 -0302,+030.00,+00.00,01.00,000.00,1.00 -0303,+030.00,+00.00,01.00,000.00,1.00 -0304,+030.00,+00.00,01.00,000.00,1.00 -0305,+030.00,+00.00,01.00,000.00,1.00 -0306,+030.00,+00.00,01.00,000.00,1.00 -0307,+030.00,+00.00,01.00,000.00,1.00 -0308,+030.00,+00.00,01.00,000.00,1.00 -0309,+030.00,+00.00,01.00,000.00,1.00 -0310,+030.00,+00.00,01.00,000.00,1.00 -0311,+030.00,+00.00,01.00,000.00,1.00 -0312,+030.00,+00.00,01.00,000.00,1.00 -0313,+030.00,+00.00,01.00,000.00,1.00 -0314,+030.00,+00.00,01.00,000.00,1.00 -0315,+030.00,+00.00,01.00,000.00,1.00 -0316,+030.00,+00.00,01.00,000.00,1.00 -0317,+030.00,+00.00,01.00,000.00,1.00 -0318,+030.00,+00.00,01.00,000.00,1.00 -0319,+030.00,+00.00,01.00,000.00,1.00 -0320,+030.00,+00.00,01.00,000.00,1.00 -0321,+030.00,+00.00,01.00,000.00,1.00 -0322,+030.00,+00.00,01.00,000.00,1.00 -0323,+030.00,+00.00,01.00,000.00,1.00 -0324,+030.00,+00.00,01.00,000.00,1.00 -0325,+030.00,+00.00,01.00,000.00,1.00 -0326,+030.00,+00.00,01.00,000.00,1.00 -0327,+030.00,+00.00,01.00,000.00,1.00 -0328,+030.00,+00.00,01.00,000.00,1.00 -0329,+030.00,+00.00,01.00,000.00,1.00 -0330,+030.00,+00.00,01.00,000.00,1.00 -0331,+030.00,+00.00,01.00,000.00,1.00 -0332,+030.00,+00.00,01.00,000.00,1.00 -0333,+030.00,+00.00,01.00,000.00,1.00 -0334,+030.00,+00.00,01.00,000.00,1.00 -0335,+030.00,+00.00,01.00,000.00,1.00 -0336,+030.00,+00.00,01.00,000.00,1.00 -0337,+030.00,+00.00,01.00,000.00,1.00 -0338,+030.00,+00.00,01.00,000.00,1.00 -0339,+030.00,+00.00,01.00,000.00,1.00 -0340,+030.00,+00.00,01.00,000.00,1.00 -0341,+030.00,+00.00,01.00,000.00,1.00 -0342,+030.00,+00.00,01.00,000.00,1.00 -0343,+030.00,+00.00,01.00,000.00,1.00 -0344,+030.00,+00.00,01.00,000.00,1.00 -0345,+030.00,+00.00,01.00,000.00,1.00 -0346,+030.00,+00.00,01.00,000.00,1.00 -0347,+030.00,+00.00,01.00,000.00,1.00 -0348,+030.00,+00.00,01.00,000.00,1.00 -0349,+030.00,+00.00,01.00,000.00,1.00 -0350,+030.00,+00.00,01.00,000.00,1.00 -0351,+030.00,+00.00,01.00,000.00,1.00 -0352,+030.00,+00.00,01.00,000.00,1.00 -0353,+030.00,+00.00,01.00,000.00,1.00 -0354,+030.00,+00.00,01.00,000.00,1.00 -0355,+030.00,+00.00,01.00,000.00,1.00 -0356,+030.00,+00.00,01.00,000.00,1.00 -0357,+030.00,+00.00,01.00,000.00,1.00 -0358,+030.00,+00.00,01.00,000.00,1.00 -0359,+030.00,+00.00,01.00,000.00,1.00 -0360,+030.00,+00.00,01.00,000.00,1.00 -0361,+030.00,+00.00,01.00,000.00,1.00 -0362,+030.00,+00.00,01.00,000.00,1.00 -0363,+030.00,+00.00,01.00,000.00,1.00 -0364,+030.00,+00.00,01.00,000.00,1.00 -0365,+030.00,+00.00,01.00,000.00,1.00 -0366,+030.00,+00.00,01.00,000.00,1.00 -0367,+030.00,+00.00,01.00,000.00,1.00 -0368,+030.00,+00.00,01.00,000.00,1.00 -0369,+030.00,+00.00,01.00,000.00,1.00 -0370,+030.00,+00.00,01.00,000.00,1.00 -0371,+030.00,+00.00,01.00,000.00,1.00 -0372,+030.00,+00.00,01.00,000.00,1.00 -0373,+030.00,+00.00,01.00,000.00,1.00 -0374,+030.00,+00.00,01.00,000.00,1.00 -0375,+030.00,+00.00,01.00,000.00,1.00 -0376,+030.00,+00.00,01.00,000.00,1.00 -0377,+030.00,+00.00,01.00,000.00,1.00 -0378,+030.00,+00.00,01.00,000.00,1.00 -0379,+030.00,+00.00,01.00,000.00,1.00 -0380,+030.00,+00.00,01.00,000.00,1.00 -0381,+030.00,+00.00,01.00,000.00,1.00 -0382,+030.00,+00.00,01.00,000.00,1.00 -0383,+030.00,+00.00,01.00,000.00,1.00 -0384,+030.00,+00.00,01.00,000.00,1.00 -0385,+030.00,+00.00,01.00,000.00,1.00 -0386,+030.00,+00.00,01.00,000.00,1.00 -0387,+030.00,+00.00,01.00,000.00,1.00 -0388,+030.00,+00.00,01.00,000.00,1.00 -0389,+030.00,+00.00,01.00,000.00,1.00 -0390,+030.00,+00.00,01.00,000.00,1.00 -0391,+030.00,+00.00,01.00,000.00,1.00 -0392,+030.00,+00.00,01.00,000.00,1.00 -0393,+030.00,+00.00,01.00,000.00,1.00 -0394,+030.00,+00.00,01.00,000.00,1.00 -0395,+030.00,+00.00,01.00,000.00,1.00 -0396,+030.00,+00.00,01.00,000.00,1.00 -0397,+030.00,+00.00,01.00,000.00,1.00 -0398,+030.00,+00.00,01.00,000.00,1.00 -0399,+030.00,+00.00,01.00,000.00,1.00 -0400,+030.00,+00.00,01.00,000.00,1.00 -0401,+030.00,+00.00,01.00,000.00,1.00 -0402,+030.00,+00.00,01.00,000.00,1.00 -0403,+030.00,+00.00,01.00,000.00,1.00 -0404,+030.00,+00.00,01.00,000.00,1.00 -0405,+030.00,+00.00,01.00,000.00,1.00 -0406,+030.00,+00.00,01.00,000.00,1.00 -0407,+030.00,+00.00,01.00,000.00,1.00 -0408,+030.00,+00.00,01.00,000.00,1.00 -0409,+030.00,+00.00,01.00,000.00,1.00 -0410,+030.00,+00.00,01.00,000.00,1.00 -0411,+030.00,+00.00,01.00,000.00,1.00 -0412,+030.00,+00.00,01.00,000.00,1.00 -0413,+030.00,+00.00,01.00,000.00,1.00 -0414,+030.00,+00.00,01.00,000.00,1.00 -0415,+030.00,+00.00,01.00,000.00,1.00 -0416,+030.00,+00.00,01.00,000.00,1.00 -0417,+030.00,+00.00,01.00,000.00,1.00 -0418,+030.00,+00.00,01.00,000.00,1.00 -0419,+030.00,+00.00,01.00,000.00,1.00 -0420,+030.00,+00.00,01.00,000.00,1.00 -0421,+030.00,+00.00,01.00,000.00,1.00 -0422,+030.00,+00.00,01.00,000.00,1.00 -0423,+030.00,+00.00,01.00,000.00,1.00 -0424,+030.00,+00.00,01.00,000.00,1.00 -0425,+030.00,+00.00,01.00,000.00,1.00 -0426,+030.00,+00.00,01.00,000.00,1.00 -0427,+030.00,+00.00,01.00,000.00,1.00 -0428,+030.00,+00.00,01.00,000.00,1.00 -0429,+030.00,+00.00,01.00,000.00,1.00 -0430,+030.00,+00.00,01.00,000.00,1.00 -0431,+030.00,+00.00,01.00,000.00,1.00 -0432,+030.00,+00.00,01.00,000.00,1.00 -0433,+030.00,+00.00,01.00,000.00,1.00 -0434,+030.00,+00.00,01.00,000.00,1.00 -0435,+030.00,+00.00,01.00,000.00,1.00 -0436,+030.00,+00.00,01.00,000.00,1.00 -0437,+030.00,+00.00,01.00,000.00,1.00 -0438,+030.00,+00.00,01.00,000.00,1.00 -0439,+030.00,+00.00,01.00,000.00,1.00 -0440,+030.00,+00.00,01.00,000.00,1.00 -0441,+030.00,+00.00,01.00,000.00,1.00 -0442,+030.00,+00.00,01.00,000.00,1.00 -0443,+030.00,+00.00,01.00,000.00,1.00 -0444,+030.00,+00.00,01.00,000.00,1.00 -0445,+030.00,+00.00,01.00,000.00,1.00 -0446,+030.00,+00.00,01.00,000.00,1.00 -0447,+030.00,+00.00,01.00,000.00,1.00 -0448,+030.00,+00.00,01.00,000.00,1.00 -0449,+030.00,+00.00,01.00,000.00,1.00 -0450,+030.00,+00.00,01.00,000.00,1.00 -0451,+030.00,+00.00,01.00,000.00,1.00 -0452,+030.00,+00.00,01.00,000.00,1.00 -0453,+030.00,+00.00,01.00,000.00,1.00 -0454,+030.00,+00.00,01.00,000.00,1.00 -0455,+030.00,+00.00,01.00,000.00,1.00 -0456,+030.00,+00.00,01.00,000.00,1.00 -0457,+030.00,+00.00,01.00,000.00,1.00 -0458,+030.00,+00.00,01.00,000.00,1.00 -0459,+030.00,+00.00,01.00,000.00,1.00 -0460,+030.00,+00.00,01.00,000.00,1.00 -0461,+030.00,+00.00,01.00,000.00,1.00 -0462,+030.00,+00.00,01.00,000.00,1.00 -0463,+030.00,+00.00,01.00,000.00,1.00 -0464,+030.00,+00.00,01.00,000.00,1.00 -0465,+030.00,+00.00,01.00,000.00,1.00 -0466,+030.00,+00.00,01.00,000.00,1.00 -0467,+030.00,+00.00,01.00,000.00,1.00 -0468,+030.00,+00.00,01.00,000.00,1.00 -0469,+030.00,+00.00,01.00,000.00,1.00 -0470,+030.00,+00.00,01.00,000.00,1.00 -0471,+030.00,+00.00,01.00,000.00,1.00 -0472,+030.00,+00.00,01.00,000.00,1.00 -0473,+030.00,+00.00,01.00,000.00,1.00 -0474,+030.00,+00.00,01.00,000.00,1.00 -0475,+030.00,+00.00,01.00,000.00,1.00 -0476,+030.00,+00.00,01.00,000.00,1.00 -0477,+030.00,+00.00,01.00,000.00,1.00 -0478,+030.00,+00.00,01.00,000.00,1.00 -0479,+030.00,+00.00,01.00,000.00,1.00 -0480,+030.00,+00.00,01.00,000.00,1.00 -0481,+030.00,+00.00,01.00,000.00,1.00 -0482,+030.00,+00.00,01.00,000.00,1.00 -0483,+030.00,+00.00,01.00,000.00,1.00 -0484,+030.00,+00.00,01.00,000.00,1.00 -0485,+030.00,+00.00,01.00,000.00,1.00 -0486,+030.00,+00.00,01.00,000.00,1.00 -0487,+030.00,+00.00,01.00,000.00,1.00 -0488,+030.00,+00.00,01.00,000.00,1.00 -0489,+030.00,+00.00,01.00,000.00,1.00 -0490,+030.00,+00.00,01.00,000.00,1.00 -0491,+030.00,+00.00,01.00,000.00,1.00 -0492,+030.00,+00.00,01.00,000.00,1.00 -0493,+030.00,+00.00,01.00,000.00,1.00 -0494,+030.00,+00.00,01.00,000.00,1.00 -0495,+030.00,+00.00,01.00,000.00,1.00 -0496,+030.00,+00.00,01.00,000.00,1.00 -0497,+030.00,+00.00,01.00,000.00,1.00 -0498,+030.00,+00.00,01.00,000.00,1.00 -0499,+030.00,+00.00,01.00,000.00,1.00 -0500,+030.00,+00.00,01.00,000.00,1.00 -0501,+030.00,+00.00,01.00,000.00,1.00 -0502,+030.00,+00.00,01.00,000.00,1.00 -0503,+030.00,+00.00,01.00,000.00,1.00 -0504,+030.00,+00.00,01.00,000.00,1.00 -0505,+030.00,+00.00,01.00,000.00,1.00 -0506,+030.00,+00.00,01.00,000.00,1.00 -0507,+030.00,+00.00,01.00,000.00,1.00 -0508,+030.00,+00.00,01.00,000.00,1.00 -0509,+030.00,+00.00,01.00,000.00,1.00 -0510,+030.00,+00.00,01.00,000.00,1.00 -0511,+030.00,+00.00,01.00,000.00,1.00 -0512,+030.00,+00.00,01.00,000.00,1.00 -0513,+030.00,+00.00,01.00,000.00,1.00 -0514,+030.00,+00.00,01.00,000.00,1.00 -0515,+030.00,+00.00,01.00,000.00,1.00 -0516,+030.00,+00.00,01.00,000.00,1.00 -0517,+030.00,+00.00,01.00,000.00,1.00 -0518,+030.00,+00.00,01.00,000.00,1.00 -0519,+030.00,+00.00,01.00,000.00,1.00 -0520,+030.00,+00.00,01.00,000.00,1.00 -0521,+030.00,+00.00,01.00,000.00,1.00 -0522,+030.00,+00.00,01.00,000.00,1.00 -0523,+030.00,+00.00,01.00,000.00,1.00 -0524,+030.00,+00.00,01.00,000.00,1.00 -0525,+030.00,+00.00,01.00,000.00,1.00 -0526,+030.00,+00.00,01.00,000.00,1.00 -0527,+030.00,+00.00,01.00,000.00,1.00 -0528,+030.00,+00.00,01.00,000.00,1.00 -0529,+030.00,+00.00,01.00,000.00,1.00 -0530,+030.00,+00.00,01.00,000.00,1.00 -0531,+030.00,+00.00,01.00,000.00,1.00 -0532,+030.00,+00.00,01.00,000.00,1.00 -0533,+030.00,+00.00,01.00,000.00,1.00 -0534,+030.00,+00.00,01.00,000.00,1.00 -0535,+030.00,+00.00,01.00,000.00,1.00 -0536,+030.00,+00.00,01.00,000.00,1.00 -0537,+030.00,+00.00,01.00,000.00,1.00 -0538,+030.00,+00.00,01.00,000.00,1.00 -0539,+030.00,+00.00,01.00,000.00,1.00 -0540,+030.00,+00.00,01.00,000.00,1.00 -0541,+030.00,+00.00,01.00,000.00,1.00 -0542,+030.00,+00.00,01.00,000.00,1.00 -0543,+030.00,+00.00,01.00,000.00,1.00 -0544,+030.00,+00.00,01.00,000.00,1.00 -0545,+030.00,+00.00,01.00,000.00,1.00 -0546,+030.00,+00.00,01.00,000.00,1.00 -0547,+030.00,+00.00,01.00,000.00,1.00 -0548,+030.00,+00.00,01.00,000.00,1.00 -0549,+030.00,+00.00,01.00,000.00,1.00 -0550,+030.00,+00.00,01.00,000.00,1.00 -0551,+030.00,+00.00,01.00,000.00,1.00 -0552,+030.00,+00.00,01.00,000.00,1.00 -0553,+030.00,+00.00,01.00,000.00,1.00 -0554,+030.00,+00.00,01.00,000.00,1.00 -0555,+030.00,+00.00,01.00,000.00,1.00 -0556,+030.00,+00.00,01.00,000.00,1.00 -0557,+030.00,+00.00,01.00,000.00,1.00 -0558,+030.00,+00.00,01.00,000.00,1.00 -0559,+030.00,+00.00,01.00,000.00,1.00 -0560,+030.00,+00.00,01.00,000.00,1.00 -0561,+030.00,+00.00,01.00,000.00,1.00 -0562,+030.00,+00.00,01.00,000.00,1.00 -0563,+030.00,+00.00,01.00,000.00,1.00 -0564,+030.00,+00.00,01.00,000.00,1.00 -0565,+030.00,+00.00,01.00,000.00,1.00 -0566,+030.00,+00.00,01.00,000.00,1.00 -0567,+030.00,+00.00,01.00,000.00,1.00 -0568,+030.00,+00.00,01.00,000.00,1.00 -0569,+030.00,+00.00,01.00,000.00,1.00 -0570,+030.00,+00.00,01.00,000.00,1.00 -0571,+030.00,+00.00,01.00,000.00,1.00 -0572,+030.00,+00.00,01.00,000.00,1.00 -0573,+030.00,+00.00,01.00,000.00,1.00 -0574,+030.00,+00.00,01.00,000.00,1.00 -0575,+030.00,+00.00,01.00,000.00,1.00 -0576,+030.00,+00.00,01.00,000.00,1.00 -0577,+030.00,+00.00,01.00,000.00,1.00 -0578,+030.00,+00.00,01.00,000.00,1.00 -0579,+030.00,+00.00,01.00,000.00,1.00 -0580,+030.00,+00.00,01.00,000.00,1.00 -0581,+030.00,+00.00,01.00,000.00,1.00 -0582,+030.00,+00.00,01.00,000.00,1.00 -0583,+030.00,+00.00,01.00,000.00,1.00 -0584,+030.00,+00.00,01.00,000.00,1.00 -0585,+030.00,+00.00,01.00,000.00,1.00 -0586,+030.00,+00.00,01.00,000.00,1.00 -0587,+030.00,+00.00,01.00,000.00,1.00 -0588,+030.00,+00.00,01.00,000.00,1.00 -0589,+030.00,+00.00,01.00,000.00,1.00 -0590,+030.00,+00.00,01.00,000.00,1.00 -0591,+030.00,+00.00,01.00,000.00,1.00 -0592,+030.00,+00.00,01.00,000.00,1.00 -0593,+030.00,+00.00,01.00,000.00,1.00 -0594,+030.00,+00.00,01.00,000.00,1.00 -0595,+030.00,+00.00,01.00,000.00,1.00 -0596,+030.00,+00.00,01.00,000.00,1.00 -0597,+030.00,+00.00,01.00,000.00,1.00 -0598,+030.00,+00.00,01.00,000.00,1.00 -0599,+030.00,+00.00,01.00,000.00,1.00 -0600,+030.00,+00.00,01.00,000.00,1.00 -0601,+030.00,+00.00,01.00,000.00,1.00 -0602,+030.00,+00.00,01.00,000.00,1.00 -0603,+030.00,+00.00,01.00,000.00,1.00 -0604,+030.00,+00.00,01.00,000.00,1.00 -0605,+030.00,+00.00,01.00,000.00,1.00 -0606,+030.00,+00.00,01.00,000.00,1.00 -0607,+030.00,+00.00,01.00,000.00,1.00 -0608,+030.00,+00.00,01.00,000.00,1.00 -0609,+030.00,+00.00,01.00,000.00,1.00 -0610,+030.00,+00.00,01.00,000.00,1.00 -0611,+030.00,+00.00,01.00,000.00,1.00 -0612,+030.00,+00.00,01.00,000.00,1.00 -0613,+030.00,+00.00,01.00,000.00,1.00 -0614,+030.00,+00.00,01.00,000.00,1.00 -0615,+030.00,+00.00,01.00,000.00,1.00 -0616,+030.00,+00.00,01.00,000.00,1.00 -0617,+030.00,+00.00,01.00,000.00,1.00 -0618,+030.00,+00.00,01.00,000.00,1.00 -0619,+030.00,+00.00,01.00,000.00,1.00 -0620,+030.00,+00.00,01.00,000.00,1.00 -0621,+030.00,+00.00,01.00,000.00,1.00 -0622,+030.00,+00.00,01.00,000.00,1.00 -0623,+030.00,+00.00,01.00,000.00,1.00 -0624,+030.00,+00.00,01.00,000.00,1.00 -0625,+030.00,+00.00,01.00,000.00,1.00 -0626,+030.00,+00.00,01.00,000.00,1.00 -0627,+030.00,+00.00,01.00,000.00,1.00 -0628,+030.00,+00.00,01.00,000.00,1.00 -0629,+030.00,+00.00,01.00,000.00,1.00 -0630,+030.00,+00.00,01.00,000.00,1.00 -0631,+030.00,+00.00,01.00,000.00,1.00 -0632,+030.00,+00.00,01.00,000.00,1.00 -0633,+030.00,+00.00,01.00,000.00,1.00 -0634,+030.00,+00.00,01.00,000.00,1.00 -0635,+030.00,+00.00,01.00,000.00,1.00 -0636,+030.00,+00.00,01.00,000.00,1.00 -0637,+030.00,+00.00,01.00,000.00,1.00 -0638,+030.00,+00.00,01.00,000.00,1.00 -0639,+030.00,+00.00,01.00,000.00,1.00 -0640,+030.00,+00.00,01.00,000.00,1.00 -0641,+030.00,+00.00,01.00,000.00,1.00 -0642,+030.00,+00.00,01.00,000.00,1.00 -0643,+030.00,+00.00,01.00,000.00,1.00 -0644,+030.00,+00.00,01.00,000.00,1.00 -0645,+030.00,+00.00,01.00,000.00,1.00 -0646,+030.00,+00.00,01.00,000.00,1.00 -0647,+030.00,+00.00,01.00,000.00,1.00 -0648,+030.00,+00.00,01.00,000.00,1.00 -0649,+030.00,+00.00,01.00,000.00,1.00 -0650,+030.00,+00.00,01.00,000.00,1.00 -0651,+030.00,+00.00,01.00,000.00,1.00 -0652,+030.00,+00.00,01.00,000.00,1.00 -0653,+030.00,+00.00,01.00,000.00,1.00 -0654,+030.00,+00.00,01.00,000.00,1.00 -0655,+030.00,+00.00,01.00,000.00,1.00 -0656,+030.00,+00.00,01.00,000.00,1.00 -0657,+030.00,+00.00,01.00,000.00,1.00 -0658,+030.00,+00.00,01.00,000.00,1.00 -0659,+030.00,+00.00,01.00,000.00,1.00 -0660,+030.00,+00.00,01.00,000.00,1.00 -0661,+030.00,+00.00,01.00,000.00,1.00 -0662,+030.00,+00.00,01.00,000.00,1.00 -0663,+030.00,+00.00,01.00,000.00,1.00 -0664,+030.00,+00.00,01.00,000.00,1.00 -0665,+030.00,+00.00,01.00,000.00,1.00 -0666,+030.00,+00.00,01.00,000.00,1.00 -0667,+030.00,+00.00,01.00,000.00,1.00 -0668,+030.00,+00.00,01.00,000.00,1.00 -0669,+030.00,+00.00,01.00,000.00,1.00 -0670,+030.00,+00.00,01.00,000.00,1.00 -0671,+030.00,+00.00,01.00,000.00,1.00 -0672,+030.00,+00.00,01.00,000.00,1.00 -0673,+030.00,+00.00,01.00,000.00,1.00 -0674,+030.00,+00.00,01.00,000.00,1.00 -0675,+030.00,+00.00,01.00,000.00,1.00 -0676,+030.00,+00.00,01.00,000.00,1.00 -0677,+030.00,+00.00,01.00,000.00,1.00 -0678,+030.00,+00.00,01.00,000.00,1.00 -0679,+030.00,+00.00,01.00,000.00,1.00 -0680,+030.00,+00.00,01.00,000.00,1.00 -0681,+030.00,+00.00,01.00,000.00,1.00 -0682,+030.00,+00.00,01.00,000.00,1.00 -0683,+030.00,+00.00,01.00,000.00,1.00 -0684,+030.00,+00.00,01.00,000.00,1.00 -0685,+030.00,+00.00,01.00,000.00,1.00 -0686,+030.00,+00.00,01.00,000.00,1.00 -0687,+030.00,+00.00,01.00,000.00,1.00 -0688,+030.00,+00.00,01.00,000.00,1.00 -0689,+030.00,+00.00,01.00,000.00,1.00 -0690,+030.00,+00.00,01.00,000.00,1.00 -0691,+030.00,+00.00,01.00,000.00,1.00 -0692,+030.00,+00.00,01.00,000.00,1.00 -0693,+030.00,+00.00,01.00,000.00,1.00 -0694,+030.00,+00.00,01.00,000.00,1.00 -0695,+030.00,+00.00,01.00,000.00,1.00 -0696,+030.00,+00.00,01.00,000.00,1.00 -0697,+030.00,+00.00,01.00,000.00,1.00 -0698,+030.00,+00.00,01.00,000.00,1.00 -0699,+030.00,+00.00,01.00,000.00,1.00 -0700,+030.00,+00.00,01.00,000.00,1.00 -0701,+030.00,+00.00,01.00,000.00,1.00 -0702,+030.00,+00.00,01.00,000.00,1.00 -0703,+030.00,+00.00,01.00,000.00,1.00 -0704,+030.00,+00.00,01.00,000.00,1.00 -0705,+030.00,+00.00,01.00,000.00,1.00 -0706,+030.00,+00.00,01.00,000.00,1.00 -0707,+030.00,+00.00,01.00,000.00,1.00 -0708,+030.00,+00.00,01.00,000.00,1.00 -0709,+030.00,+00.00,01.00,000.00,1.00 -0710,+030.00,+00.00,01.00,000.00,1.00 -0711,+030.00,+00.00,01.00,000.00,1.00 -0712,+030.00,+00.00,01.00,000.00,1.00 -0713,+030.00,+00.00,01.00,000.00,1.00 -0714,+030.00,+00.00,01.00,000.00,1.00 -0715,+030.00,+00.00,01.00,000.00,1.00 -0716,+030.00,+00.00,01.00,000.00,1.00 -0717,+030.00,+00.00,01.00,000.00,1.00 -0718,+030.00,+00.00,01.00,000.00,1.00 -0719,+030.00,+00.00,01.00,000.00,1.00 -0720,+030.00,+00.00,01.00,000.00,1.00 -0721,+030.00,+00.00,01.00,000.00,1.00 -0722,+030.00,+00.00,01.00,000.00,1.00 -0723,+030.00,+00.00,01.00,000.00,1.00 -0724,+030.00,+00.00,01.00,000.00,1.00 -0725,+030.00,+00.00,01.00,000.00,1.00 -0726,+030.00,+00.00,01.00,000.00,1.00 -0727,+030.00,+00.00,01.00,000.00,1.00 -0728,+030.00,+00.00,01.00,000.00,1.00 -0729,+030.00,+00.00,01.00,000.00,1.00 -0730,+030.00,+00.00,01.00,000.00,1.00 -0731,+030.00,+00.00,01.00,000.00,1.00 -0732,+030.00,+00.00,01.00,000.00,1.00 -0733,+030.00,+00.00,01.00,000.00,1.00 -0734,+030.00,+00.00,01.00,000.00,1.00 -0735,+030.00,+00.00,01.00,000.00,1.00 -0736,+030.00,+00.00,01.00,000.00,1.00 -0737,+030.00,+00.00,01.00,000.00,1.00 -0738,+030.00,+00.00,01.00,000.00,1.00 -0739,+030.00,+00.00,01.00,000.00,1.00 -0740,+030.00,+00.00,01.00,000.00,1.00 -0741,+030.00,+00.00,01.00,000.00,1.00 -0742,+030.00,+00.00,01.00,000.00,1.00 -0743,+030.00,+00.00,01.00,000.00,1.00 -0744,+030.00,+00.00,01.00,000.00,1.00 -0745,+030.00,+00.00,01.00,000.00,1.00 -0746,+030.00,+00.00,01.00,000.00,1.00 -0747,+030.00,+00.00,01.00,000.00,1.00 -0748,+030.00,+00.00,01.00,000.00,1.00 -0749,+030.00,+00.00,01.00,000.00,1.00 -0750,+030.00,+00.00,01.00,000.00,1.00 -0751,+030.00,+00.00,01.00,000.00,1.00 -0752,+030.00,+00.00,01.00,000.00,1.00 -0753,+030.00,+00.00,01.00,000.00,1.00 -0754,+030.00,+00.00,01.00,000.00,1.00 -0755,+030.00,+00.00,01.00,000.00,1.00 -0756,+030.00,+00.00,01.00,000.00,1.00 -0757,+030.00,+00.00,01.00,000.00,1.00 -0758,+030.00,+00.00,01.00,000.00,1.00 -0759,+030.00,+00.00,01.00,000.00,1.00 -0760,+030.00,+00.00,01.00,000.00,1.00 -0761,+030.00,+00.00,01.00,000.00,1.00 -0762,+030.00,+00.00,01.00,000.00,1.00 -0763,+030.00,+00.00,01.00,000.00,1.00 -0764,+030.00,+00.00,01.00,000.00,1.00 -0765,+030.00,+00.00,01.00,000.00,1.00 -0766,+030.00,+00.00,01.00,000.00,1.00 -0767,+030.00,+00.00,01.00,000.00,1.00 -0768,+030.00,+00.00,01.00,000.00,1.00 -0769,+030.00,+00.00,01.00,000.00,1.00 -0770,+030.00,+00.00,01.00,000.00,1.00 -0771,+030.00,+00.00,01.00,000.00,1.00 -0772,+030.00,+00.00,01.00,000.00,1.00 -0773,+030.00,+00.00,01.00,000.00,1.00 -0774,+030.00,+00.00,01.00,000.00,1.00 -0775,+030.00,+00.00,01.00,000.00,1.00 -0776,+030.00,+00.00,01.00,000.00,1.00 -0777,+030.00,+00.00,01.00,000.00,1.00 -0778,+030.00,+00.00,01.00,000.00,1.00 -0779,+030.00,+00.00,01.00,000.00,1.00 -0780,+030.00,+00.00,01.00,000.00,1.00 -0781,+030.00,+00.00,01.00,000.00,1.00 -0782,+030.00,+00.00,01.00,000.00,1.00 -0783,+030.00,+00.00,01.00,000.00,1.00 -0784,+030.00,+00.00,01.00,000.00,1.00 -0785,+030.00,+00.00,01.00,000.00,1.00 -0786,+030.00,+00.00,01.00,000.00,1.00 -0787,+030.00,+00.00,01.00,000.00,1.00 -0788,+030.00,+00.00,01.00,000.00,1.00 -0789,+030.00,+00.00,01.00,000.00,1.00 -0790,+030.00,+00.00,01.00,000.00,1.00 -0791,+030.00,+00.00,01.00,000.00,1.00 -0792,+030.00,+00.00,01.00,000.00,1.00 -0793,+030.00,+00.00,01.00,000.00,1.00 -0794,+030.00,+00.00,01.00,000.00,1.00 -0795,+030.00,+00.00,01.00,000.00,1.00 -0796,+030.00,+00.00,01.00,000.00,1.00 -0797,+030.00,+00.00,01.00,000.00,1.00 -0798,+030.00,+00.00,01.00,000.00,1.00 -0799,+030.00,+00.00,01.00,000.00,1.00 -0800,+030.00,+00.00,01.00,000.00,1.00 -0801,+030.00,+00.00,01.00,000.00,1.00 -0802,+030.00,+00.00,01.00,000.00,1.00 -0803,+030.00,+00.00,01.00,000.00,1.00 -0804,+030.00,+00.00,01.00,000.00,1.00 -0805,+030.00,+00.00,01.00,000.00,1.00 -0806,+030.00,+00.00,01.00,000.00,1.00 -0807,+030.00,+00.00,01.00,000.00,1.00 -0808,+030.00,+00.00,01.00,000.00,1.00 -0809,+030.00,+00.00,01.00,000.00,1.00 -0810,+030.00,+00.00,01.00,000.00,1.00 -0811,+030.00,+00.00,01.00,000.00,1.00 -0812,+030.00,+00.00,01.00,000.00,1.00 -0813,+030.00,+00.00,01.00,000.00,1.00 -0814,+030.00,+00.00,01.00,000.00,1.00 -0815,+030.00,+00.00,01.00,000.00,1.00 -0816,+030.00,+00.00,01.00,000.00,1.00 -0817,+030.00,+00.00,01.00,000.00,1.00 -0818,+030.00,+00.00,01.00,000.00,1.00 -0819,+030.00,+00.00,01.00,000.00,1.00 -0820,+030.00,+00.00,01.00,000.00,1.00 -0821,+030.00,+00.00,01.00,000.00,1.00 -0822,+030.00,+00.00,01.00,000.00,1.00 -0823,+030.00,+00.00,01.00,000.00,1.00 -0824,+030.00,+00.00,01.00,000.00,1.00 -0825,+030.00,+00.00,01.00,000.00,1.00 -0826,+030.00,+00.00,01.00,000.00,1.00 -0827,+030.00,+00.00,01.00,000.00,1.00 -0828,+030.00,+00.00,01.00,000.00,1.00 -0829,+030.00,+00.00,01.00,000.00,1.00 -0830,+030.00,+00.00,01.00,000.00,1.00 -0831,+030.00,+00.00,01.00,000.00,1.00 -0832,+030.00,+00.00,01.00,000.00,1.00 -0833,+030.00,+00.00,01.00,000.00,1.00 -0834,+030.00,+00.00,01.00,000.00,1.00 -0835,+030.00,+00.00,01.00,000.00,1.00 -0836,+030.00,+00.00,01.00,000.00,1.00 -0837,+030.00,+00.00,01.00,000.00,1.00 -0838,+030.00,+00.00,01.00,000.00,1.00 -0839,+030.00,+00.00,01.00,000.00,1.00 -0840,+030.00,+00.00,01.00,000.00,1.00 -0841,+030.00,+00.00,01.00,000.00,1.00 -0842,+030.00,+00.00,01.00,000.00,1.00 -0843,+030.00,+00.00,01.00,000.00,1.00 -0844,+030.00,+00.00,01.00,000.00,1.00 -0845,+030.00,+00.00,01.00,000.00,1.00 -0846,+030.00,+00.00,01.00,000.00,1.00 -0847,+030.00,+00.00,01.00,000.00,1.00 -0848,+030.00,+00.00,01.00,000.00,1.00 -0849,+030.00,+00.00,01.00,000.00,1.00 -0850,+030.00,+00.00,01.00,000.00,1.00 -0851,+030.00,+00.00,01.00,000.00,1.00 -0852,+030.00,+00.00,01.00,000.00,1.00 -0853,+030.00,+00.00,01.00,000.00,1.00 -0854,+030.00,+00.00,01.00,000.00,1.00 -0855,+030.00,+00.00,01.00,000.00,1.00 -0856,+030.00,+00.00,01.00,000.00,1.00 -0857,+030.00,+00.00,01.00,000.00,1.00 -0858,+030.00,+00.00,01.00,000.00,1.00 -0859,+030.00,+00.00,01.00,000.00,1.00 -0860,+030.00,+00.00,01.00,000.00,1.00 -0861,+030.00,+00.00,01.00,000.00,1.00 -0862,+030.00,+00.00,01.00,000.00,1.00 -0863,+030.00,+00.00,01.00,000.00,1.00 -0864,+030.00,+00.00,01.00,000.00,1.00 -0865,+030.00,+00.00,01.00,000.00,1.00 -0866,+030.00,+00.00,01.00,000.00,1.00 -0867,+030.00,+00.00,01.00,000.00,1.00 -0868,+030.00,+00.00,01.00,000.00,1.00 -0869,+030.00,+00.00,01.00,000.00,1.00 -0870,+030.00,+00.00,01.00,000.00,1.00 -0871,+030.00,+00.00,01.00,000.00,1.00 -0872,+030.00,+00.00,01.00,000.00,1.00 -0873,+030.00,+00.00,01.00,000.00,1.00 -0874,+030.00,+00.00,01.00,000.00,1.00 -0875,+030.00,+00.00,01.00,000.00,1.00 -0876,+030.00,+00.00,01.00,000.00,1.00 -0877,+030.00,+00.00,01.00,000.00,1.00 -0878,+030.00,+00.00,01.00,000.00,1.00 -0879,+030.00,+00.00,01.00,000.00,1.00 -0880,+030.00,+00.00,01.00,000.00,1.00 -0881,+030.00,+00.00,01.00,000.00,1.00 -0882,+030.00,+00.00,01.00,000.00,1.00 -0883,+030.00,+00.00,01.00,000.00,1.00 -0884,+030.00,+00.00,01.00,000.00,1.00 -0885,+030.00,+00.00,01.00,000.00,1.00 -0886,+030.00,+00.00,01.00,000.00,1.00 -0887,+030.00,+00.00,01.00,000.00,1.00 -0888,+030.00,+00.00,01.00,000.00,1.00 -0889,+030.00,+00.00,01.00,000.00,1.00 -0890,+030.00,+00.00,01.00,000.00,1.00 -0891,+030.00,+00.00,01.00,000.00,1.00 -0892,+030.00,+00.00,01.00,000.00,1.00 -0893,+030.00,+00.00,01.00,000.00,1.00 -0894,+030.00,+00.00,01.00,000.00,1.00 -0895,+030.00,+00.00,01.00,000.00,1.00 -0896,+030.00,+00.00,01.00,000.00,1.00 -0897,+030.00,+00.00,01.00,000.00,1.00 -0898,+030.00,+00.00,01.00,000.00,1.00 -0899,+030.00,+00.00,01.00,000.00,1.00 -0900,+030.00,+00.00,01.00,000.00,1.00 -0901,+030.00,+00.00,01.00,000.00,1.00 -0902,+030.00,+00.00,01.00,000.00,1.00 -0903,+030.00,+00.00,01.00,000.00,1.00 -0904,+030.00,+00.00,01.00,000.00,1.00 -0905,+030.00,+00.00,01.00,000.00,1.00 -0906,+030.00,+00.00,01.00,000.00,1.00 -0907,+030.00,+00.00,01.00,000.00,1.00 -0908,+030.00,+00.00,01.00,000.00,1.00 -0909,+030.00,+00.00,01.00,000.00,1.00 -0910,+030.00,+00.00,01.00,000.00,1.00 -0911,+030.00,+00.00,01.00,000.00,1.00 -0912,+030.00,+00.00,01.00,000.00,1.00 -0913,+030.00,+00.00,01.00,000.00,1.00 -0914,+030.00,+00.00,01.00,000.00,1.00 -0915,+030.00,+00.00,01.00,000.00,1.00 -0916,+030.00,+00.00,01.00,000.00,1.00 -0917,+030.00,+00.00,01.00,000.00,1.00 -0918,+030.00,+00.00,01.00,000.00,1.00 -0919,+030.00,+00.00,01.00,000.00,1.00 -0920,+030.00,+00.00,01.00,000.00,1.00 -0921,+030.00,+00.00,01.00,000.00,1.00 -0922,+030.00,+00.00,01.00,000.00,1.00 -0923,+030.00,+00.00,01.00,000.00,1.00 -0924,+030.00,+00.00,01.00,000.00,1.00 -0925,+030.00,+00.00,01.00,000.00,1.00 -0926,+030.00,+00.00,01.00,000.00,1.00 -0927,+030.00,+00.00,01.00,000.00,1.00 -0928,+030.00,+00.00,01.00,000.00,1.00 -0929,+030.00,+00.00,01.00,000.00,1.00 -0930,+030.00,+00.00,01.00,000.00,1.00 -0931,+030.00,+00.00,01.00,000.00,1.00 -0932,+030.00,+00.00,01.00,000.00,1.00 -0933,+030.00,+00.00,01.00,000.00,1.00 -0934,+030.00,+00.00,01.00,000.00,1.00 -0935,+030.00,+00.00,01.00,000.00,1.00 -0936,+030.00,+00.00,01.00,000.00,1.00 -0937,+030.00,+00.00,01.00,000.00,1.00 -0938,+030.00,+00.00,01.00,000.00,1.00 -0939,+030.00,+00.00,01.00,000.00,1.00 -0940,+030.00,+00.00,01.00,000.00,1.00 -0941,+030.00,+00.00,01.00,000.00,1.00 -0942,+030.00,+00.00,01.00,000.00,1.00 -0943,+030.00,+00.00,01.00,000.00,1.00 -0944,+030.00,+00.00,01.00,000.00,1.00 -0945,+030.00,+00.00,01.00,000.00,1.00 -0946,+030.00,+00.00,01.00,000.00,1.00 -0947,+030.00,+00.00,01.00,000.00,1.00 -0948,+030.00,+00.00,01.00,000.00,1.00 -0949,+030.00,+00.00,01.00,000.00,1.00 -0950,+030.00,+00.00,01.00,000.00,1.00 -0951,+030.00,+00.00,01.00,000.00,1.00 -0952,+030.00,+00.00,01.00,000.00,1.00 -0953,+030.00,+00.00,01.00,000.00,1.00 -0954,+030.00,+00.00,01.00,000.00,1.00 -0955,+030.00,+00.00,01.00,000.00,1.00 -0956,+030.00,+00.00,01.00,000.00,1.00 -0957,+030.00,+00.00,01.00,000.00,1.00 -0958,+030.00,+00.00,01.00,000.00,1.00 -0959,+030.00,+00.00,01.00,000.00,1.00 -0960,+030.00,+00.00,01.00,000.00,1.00 -0961,+030.00,+00.00,01.00,000.00,1.00 -0962,+030.00,+00.00,01.00,000.00,1.00 -0963,+030.00,+00.00,01.00,000.00,1.00 -0964,+030.00,+00.00,01.00,000.00,1.00 -0965,+030.00,+00.00,01.00,000.00,1.00 -0966,+030.00,+00.00,01.00,000.00,1.00 -0967,+030.00,+00.00,01.00,000.00,1.00 -0968,+030.00,+00.00,01.00,000.00,1.00 -0969,+030.00,+00.00,01.00,000.00,1.00 -0970,+030.00,+00.00,01.00,000.00,1.00 -0971,+030.00,+00.00,01.00,000.00,1.00 -0972,+030.00,+00.00,01.00,000.00,1.00 -0973,+030.00,+00.00,01.00,000.00,1.00 -0974,+030.00,+00.00,01.00,000.00,1.00 -0975,+030.00,+00.00,01.00,000.00,1.00 -0976,+030.00,+00.00,01.00,000.00,1.00 -0977,+030.00,+00.00,01.00,000.00,1.00 -0978,+030.00,+00.00,01.00,000.00,1.00 -0979,+030.00,+00.00,01.00,000.00,1.00 -0980,+030.00,+00.00,01.00,000.00,1.00 -0981,+030.00,+00.00,01.00,000.00,1.00 -0982,+030.00,+00.00,01.00,000.00,1.00 -0983,+030.00,+00.00,01.00,000.00,1.00 -0984,+030.00,+00.00,01.00,000.00,1.00 -0985,+030.00,+00.00,01.00,000.00,1.00 -0986,+030.00,+00.00,01.00,000.00,1.00 -0987,+030.00,+00.00,01.00,000.00,1.00 -0988,+030.00,+00.00,01.00,000.00,1.00 -0989,+030.00,+00.00,01.00,000.00,1.00 -0990,+030.00,+00.00,01.00,000.00,1.00 -0991,+030.00,+00.00,01.00,000.00,1.00 -0992,+030.00,+00.00,01.00,000.00,1.00 -0993,+030.00,+00.00,01.00,000.00,1.00 -0994,+030.00,+00.00,01.00,000.00,1.00 -0995,+030.00,+00.00,01.00,000.00,1.00 -0996,+030.00,+00.00,01.00,000.00,1.00 -0997,+030.00,+00.00,01.00,000.00,1.00 -0998,+030.00,+00.00,01.00,000.00,1.00 -0999,+030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t03_ch1.csv b/scripts/td_object_renderer/metadata/csv/t03_ch1.csv index 429364decb..7bdb46bd65 100644 --- a/scripts/td_object_renderer/metadata/csv/t03_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t03_ch1.csv @@ -1,1000 +1,1000 @@ -0000,+045.00,+00.00,01.00,000.00,1.00 -0001,+045.00,+00.00,01.00,000.00,1.00 -0002,+045.00,+00.00,01.00,000.00,1.00 -0003,+045.00,+00.00,01.00,000.00,1.00 -0004,+045.00,+00.00,01.00,000.00,1.00 -0005,+045.00,+00.00,01.00,000.00,1.00 -0006,+045.00,+00.00,01.00,000.00,1.00 -0007,+045.00,+00.00,01.00,000.00,1.00 -0008,+045.00,+00.00,01.00,000.00,1.00 -0009,+045.00,+00.00,01.00,000.00,1.00 -0010,+045.00,+00.00,01.00,000.00,1.00 -0011,+045.00,+00.00,01.00,000.00,1.00 -0012,+045.00,+00.00,01.00,000.00,1.00 -0013,+045.00,+00.00,01.00,000.00,1.00 -0014,+045.00,+00.00,01.00,000.00,1.00 -0015,+045.00,+00.00,01.00,000.00,1.00 -0016,+045.00,+00.00,01.00,000.00,1.00 -0017,+045.00,+00.00,01.00,000.00,1.00 -0018,+045.00,+00.00,01.00,000.00,1.00 -0019,+045.00,+00.00,01.00,000.00,1.00 -0020,+045.00,+00.00,01.00,000.00,1.00 -0021,+045.00,+00.00,01.00,000.00,1.00 -0022,+045.00,+00.00,01.00,000.00,1.00 -0023,+045.00,+00.00,01.00,000.00,1.00 -0024,+045.00,+00.00,01.00,000.00,1.00 -0025,+045.00,+00.00,01.00,000.00,1.00 -0026,+045.00,+00.00,01.00,000.00,1.00 -0027,+045.00,+00.00,01.00,000.00,1.00 -0028,+045.00,+00.00,01.00,000.00,1.00 -0029,+045.00,+00.00,01.00,000.00,1.00 -0030,+045.00,+00.00,01.00,000.00,1.00 -0031,+045.00,+00.00,01.00,000.00,1.00 -0032,+045.00,+00.00,01.00,000.00,1.00 -0033,+045.00,+00.00,01.00,000.00,1.00 -0034,+045.00,+00.00,01.00,000.00,1.00 -0035,+045.00,+00.00,01.00,000.00,1.00 -0036,+045.00,+00.00,01.00,000.00,1.00 -0037,+045.00,+00.00,01.00,000.00,1.00 -0038,+045.00,+00.00,01.00,000.00,1.00 -0039,+045.00,+00.00,01.00,000.00,1.00 -0040,+045.00,+00.00,01.00,000.00,1.00 -0041,+045.00,+00.00,01.00,000.00,1.00 -0042,+045.00,+00.00,01.00,000.00,1.00 -0043,+045.00,+00.00,01.00,000.00,1.00 -0044,+045.00,+00.00,01.00,000.00,1.00 -0045,+045.00,+00.00,01.00,000.00,1.00 -0046,+045.00,+00.00,01.00,000.00,1.00 -0047,+045.00,+00.00,01.00,000.00,1.00 -0048,+045.00,+00.00,01.00,000.00,1.00 -0049,+045.00,+00.00,01.00,000.00,1.00 -0050,+045.00,+00.00,01.00,000.00,1.00 -0051,+045.00,+00.00,01.00,000.00,1.00 -0052,+045.00,+00.00,01.00,000.00,1.00 -0053,+045.00,+00.00,01.00,000.00,1.00 -0054,+045.00,+00.00,01.00,000.00,1.00 -0055,+045.00,+00.00,01.00,000.00,1.00 -0056,+045.00,+00.00,01.00,000.00,1.00 -0057,+045.00,+00.00,01.00,000.00,1.00 -0058,+045.00,+00.00,01.00,000.00,1.00 -0059,+045.00,+00.00,01.00,000.00,1.00 -0060,+045.00,+00.00,01.00,000.00,1.00 -0061,+045.00,+00.00,01.00,000.00,1.00 -0062,+045.00,+00.00,01.00,000.00,1.00 -0063,+045.00,+00.00,01.00,000.00,1.00 -0064,+045.00,+00.00,01.00,000.00,1.00 -0065,+045.00,+00.00,01.00,000.00,1.00 -0066,+045.00,+00.00,01.00,000.00,1.00 -0067,+045.00,+00.00,01.00,000.00,1.00 -0068,+045.00,+00.00,01.00,000.00,1.00 -0069,+045.00,+00.00,01.00,000.00,1.00 -0070,+045.00,+00.00,01.00,000.00,1.00 -0071,+045.00,+00.00,01.00,000.00,1.00 -0072,+045.00,+00.00,01.00,000.00,1.00 -0073,+045.00,+00.00,01.00,000.00,1.00 -0074,+045.00,+00.00,01.00,000.00,1.00 -0075,+045.00,+00.00,01.00,000.00,1.00 -0076,+045.00,+00.00,01.00,000.00,1.00 -0077,+045.00,+00.00,01.00,000.00,1.00 -0078,+045.00,+00.00,01.00,000.00,1.00 -0079,+045.00,+00.00,01.00,000.00,1.00 -0080,+045.00,+00.00,01.00,000.00,1.00 -0081,+045.00,+00.00,01.00,000.00,1.00 -0082,+045.00,+00.00,01.00,000.00,1.00 -0083,+045.00,+00.00,01.00,000.00,1.00 -0084,+045.00,+00.00,01.00,000.00,1.00 -0085,+045.00,+00.00,01.00,000.00,1.00 -0086,+045.00,+00.00,01.00,000.00,1.00 -0087,+045.00,+00.00,01.00,000.00,1.00 -0088,+045.00,+00.00,01.00,000.00,1.00 -0089,+045.00,+00.00,01.00,000.00,1.00 -0090,+045.00,+00.00,01.00,000.00,1.00 -0091,+045.00,+00.00,01.00,000.00,1.00 -0092,+045.00,+00.00,01.00,000.00,1.00 -0093,+045.00,+00.00,01.00,000.00,1.00 -0094,+045.00,+00.00,01.00,000.00,1.00 -0095,+045.00,+00.00,01.00,000.00,1.00 -0096,+045.00,+00.00,01.00,000.00,1.00 -0097,+045.00,+00.00,01.00,000.00,1.00 -0098,+045.00,+00.00,01.00,000.00,1.00 -0099,+045.00,+00.00,01.00,000.00,1.00 -0100,+045.00,+00.00,01.00,000.00,1.00 -0101,+045.00,+00.00,01.00,000.00,1.00 -0102,+045.00,+00.00,01.00,000.00,1.00 -0103,+045.00,+00.00,01.00,000.00,1.00 -0104,+045.00,+00.00,01.00,000.00,1.00 -0105,+045.00,+00.00,01.00,000.00,1.00 -0106,+045.00,+00.00,01.00,000.00,1.00 -0107,+045.00,+00.00,01.00,000.00,1.00 -0108,+045.00,+00.00,01.00,000.00,1.00 -0109,+045.00,+00.00,01.00,000.00,1.00 -0110,+045.00,+00.00,01.00,000.00,1.00 -0111,+045.00,+00.00,01.00,000.00,1.00 -0112,+045.00,+00.00,01.00,000.00,1.00 -0113,+045.00,+00.00,01.00,000.00,1.00 -0114,+045.00,+00.00,01.00,000.00,1.00 -0115,+045.00,+00.00,01.00,000.00,1.00 -0116,+045.00,+00.00,01.00,000.00,1.00 -0117,+045.00,+00.00,01.00,000.00,1.00 -0118,+045.00,+00.00,01.00,000.00,1.00 -0119,+045.00,+00.00,01.00,000.00,1.00 -0120,+045.00,+00.00,01.00,000.00,1.00 -0121,+045.00,+00.00,01.00,000.00,1.00 -0122,+045.00,+00.00,01.00,000.00,1.00 -0123,+045.00,+00.00,01.00,000.00,1.00 -0124,+045.00,+00.00,01.00,000.00,1.00 -0125,+045.00,+00.00,01.00,000.00,1.00 -0126,+045.00,+00.00,01.00,000.00,1.00 -0127,+045.00,+00.00,01.00,000.00,1.00 -0128,+045.00,+00.00,01.00,000.00,1.00 -0129,+045.00,+00.00,01.00,000.00,1.00 -0130,+045.00,+00.00,01.00,000.00,1.00 -0131,+045.00,+00.00,01.00,000.00,1.00 -0132,+045.00,+00.00,01.00,000.00,1.00 -0133,+045.00,+00.00,01.00,000.00,1.00 -0134,+045.00,+00.00,01.00,000.00,1.00 -0135,+045.00,+00.00,01.00,000.00,1.00 -0136,+045.00,+00.00,01.00,000.00,1.00 -0137,+045.00,+00.00,01.00,000.00,1.00 -0138,+045.00,+00.00,01.00,000.00,1.00 -0139,+045.00,+00.00,01.00,000.00,1.00 -0140,+045.00,+00.00,01.00,000.00,1.00 -0141,+045.00,+00.00,01.00,000.00,1.00 -0142,+045.00,+00.00,01.00,000.00,1.00 -0143,+045.00,+00.00,01.00,000.00,1.00 -0144,+045.00,+00.00,01.00,000.00,1.00 -0145,+045.00,+00.00,01.00,000.00,1.00 -0146,+045.00,+00.00,01.00,000.00,1.00 -0147,+045.00,+00.00,01.00,000.00,1.00 -0148,+045.00,+00.00,01.00,000.00,1.00 -0149,+045.00,+00.00,01.00,000.00,1.00 -0150,+045.00,+00.00,01.00,000.00,1.00 -0151,+045.00,+00.00,01.00,000.00,1.00 -0152,+045.00,+00.00,01.00,000.00,1.00 -0153,+045.00,+00.00,01.00,000.00,1.00 -0154,+045.00,+00.00,01.00,000.00,1.00 -0155,+045.00,+00.00,01.00,000.00,1.00 -0156,+045.00,+00.00,01.00,000.00,1.00 -0157,+045.00,+00.00,01.00,000.00,1.00 -0158,+045.00,+00.00,01.00,000.00,1.00 -0159,+045.00,+00.00,01.00,000.00,1.00 -0160,+045.00,+00.00,01.00,000.00,1.00 -0161,+045.00,+00.00,01.00,000.00,1.00 -0162,+045.00,+00.00,01.00,000.00,1.00 -0163,+045.00,+00.00,01.00,000.00,1.00 -0164,+045.00,+00.00,01.00,000.00,1.00 -0165,+045.00,+00.00,01.00,000.00,1.00 -0166,+045.00,+00.00,01.00,000.00,1.00 -0167,+045.00,+00.00,01.00,000.00,1.00 -0168,+045.00,+00.00,01.00,000.00,1.00 -0169,+045.00,+00.00,01.00,000.00,1.00 -0170,+045.00,+00.00,01.00,000.00,1.00 -0171,+045.00,+00.00,01.00,000.00,1.00 -0172,+045.00,+00.00,01.00,000.00,1.00 -0173,+045.00,+00.00,01.00,000.00,1.00 -0174,+045.00,+00.00,01.00,000.00,1.00 -0175,+045.00,+00.00,01.00,000.00,1.00 -0176,+045.00,+00.00,01.00,000.00,1.00 -0177,+045.00,+00.00,01.00,000.00,1.00 -0178,+045.00,+00.00,01.00,000.00,1.00 -0179,+045.00,+00.00,01.00,000.00,1.00 -0180,+045.00,+00.00,01.00,000.00,1.00 -0181,+045.00,+00.00,01.00,000.00,1.00 -0182,+045.00,+00.00,01.00,000.00,1.00 -0183,+045.00,+00.00,01.00,000.00,1.00 -0184,+045.00,+00.00,01.00,000.00,1.00 -0185,+045.00,+00.00,01.00,000.00,1.00 -0186,+045.00,+00.00,01.00,000.00,1.00 -0187,+045.00,+00.00,01.00,000.00,1.00 -0188,+045.00,+00.00,01.00,000.00,1.00 -0189,+045.00,+00.00,01.00,000.00,1.00 -0190,+045.00,+00.00,01.00,000.00,1.00 -0191,+045.00,+00.00,01.00,000.00,1.00 -0192,+045.00,+00.00,01.00,000.00,1.00 -0193,+045.00,+00.00,01.00,000.00,1.00 -0194,+045.00,+00.00,01.00,000.00,1.00 -0195,+045.00,+00.00,01.00,000.00,1.00 -0196,+045.00,+00.00,01.00,000.00,1.00 -0197,+045.00,+00.00,01.00,000.00,1.00 -0198,+045.00,+00.00,01.00,000.00,1.00 -0199,+045.00,+00.00,01.00,000.00,1.00 -0200,+045.00,+00.00,01.00,000.00,1.00 -0201,+045.00,+00.00,01.00,000.00,1.00 -0202,+045.00,+00.00,01.00,000.00,1.00 -0203,+045.00,+00.00,01.00,000.00,1.00 -0204,+045.00,+00.00,01.00,000.00,1.00 -0205,+045.00,+00.00,01.00,000.00,1.00 -0206,+045.00,+00.00,01.00,000.00,1.00 -0207,+045.00,+00.00,01.00,000.00,1.00 -0208,+045.00,+00.00,01.00,000.00,1.00 -0209,+045.00,+00.00,01.00,000.00,1.00 -0210,+045.00,+00.00,01.00,000.00,1.00 -0211,+045.00,+00.00,01.00,000.00,1.00 -0212,+045.00,+00.00,01.00,000.00,1.00 -0213,+045.00,+00.00,01.00,000.00,1.00 -0214,+045.00,+00.00,01.00,000.00,1.00 -0215,+045.00,+00.00,01.00,000.00,1.00 -0216,+045.00,+00.00,01.00,000.00,1.00 -0217,+045.00,+00.00,01.00,000.00,1.00 -0218,+045.00,+00.00,01.00,000.00,1.00 -0219,+045.00,+00.00,01.00,000.00,1.00 -0220,+045.00,+00.00,01.00,000.00,1.00 -0221,+045.00,+00.00,01.00,000.00,1.00 -0222,+045.00,+00.00,01.00,000.00,1.00 -0223,+045.00,+00.00,01.00,000.00,1.00 -0224,+045.00,+00.00,01.00,000.00,1.00 -0225,+045.00,+00.00,01.00,000.00,1.00 -0226,+045.00,+00.00,01.00,000.00,1.00 -0227,+045.00,+00.00,01.00,000.00,1.00 -0228,+045.00,+00.00,01.00,000.00,1.00 -0229,+045.00,+00.00,01.00,000.00,1.00 -0230,+045.00,+00.00,01.00,000.00,1.00 -0231,+045.00,+00.00,01.00,000.00,1.00 -0232,+045.00,+00.00,01.00,000.00,1.00 -0233,+045.00,+00.00,01.00,000.00,1.00 -0234,+045.00,+00.00,01.00,000.00,1.00 -0235,+045.00,+00.00,01.00,000.00,1.00 -0236,+045.00,+00.00,01.00,000.00,1.00 -0237,+045.00,+00.00,01.00,000.00,1.00 -0238,+045.00,+00.00,01.00,000.00,1.00 -0239,+045.00,+00.00,01.00,000.00,1.00 -0240,+045.00,+00.00,01.00,000.00,1.00 -0241,+045.00,+00.00,01.00,000.00,1.00 -0242,+045.00,+00.00,01.00,000.00,1.00 -0243,+045.00,+00.00,01.00,000.00,1.00 -0244,+045.00,+00.00,01.00,000.00,1.00 -0245,+045.00,+00.00,01.00,000.00,1.00 -0246,+045.00,+00.00,01.00,000.00,1.00 -0247,+045.00,+00.00,01.00,000.00,1.00 -0248,+045.00,+00.00,01.00,000.00,1.00 -0249,+045.00,+00.00,01.00,000.00,1.00 -0250,+045.00,+00.00,01.00,000.00,1.00 -0251,+045.00,+00.00,01.00,000.00,1.00 -0252,+045.00,+00.00,01.00,000.00,1.00 -0253,+045.00,+00.00,01.00,000.00,1.00 -0254,+045.00,+00.00,01.00,000.00,1.00 -0255,+045.00,+00.00,01.00,000.00,1.00 -0256,+045.00,+00.00,01.00,000.00,1.00 -0257,+045.00,+00.00,01.00,000.00,1.00 -0258,+045.00,+00.00,01.00,000.00,1.00 -0259,+045.00,+00.00,01.00,000.00,1.00 -0260,+045.00,+00.00,01.00,000.00,1.00 -0261,+045.00,+00.00,01.00,000.00,1.00 -0262,+045.00,+00.00,01.00,000.00,1.00 -0263,+045.00,+00.00,01.00,000.00,1.00 -0264,+045.00,+00.00,01.00,000.00,1.00 -0265,+045.00,+00.00,01.00,000.00,1.00 -0266,+045.00,+00.00,01.00,000.00,1.00 -0267,+045.00,+00.00,01.00,000.00,1.00 -0268,+045.00,+00.00,01.00,000.00,1.00 -0269,+045.00,+00.00,01.00,000.00,1.00 -0270,+045.00,+00.00,01.00,000.00,1.00 -0271,+045.00,+00.00,01.00,000.00,1.00 -0272,+045.00,+00.00,01.00,000.00,1.00 -0273,+045.00,+00.00,01.00,000.00,1.00 -0274,+045.00,+00.00,01.00,000.00,1.00 -0275,+045.00,+00.00,01.00,000.00,1.00 -0276,+045.00,+00.00,01.00,000.00,1.00 -0277,+045.00,+00.00,01.00,000.00,1.00 -0278,+045.00,+00.00,01.00,000.00,1.00 -0279,+045.00,+00.00,01.00,000.00,1.00 -0280,+045.00,+00.00,01.00,000.00,1.00 -0281,+045.00,+00.00,01.00,000.00,1.00 -0282,+045.00,+00.00,01.00,000.00,1.00 -0283,+045.00,+00.00,01.00,000.00,1.00 -0284,+045.00,+00.00,01.00,000.00,1.00 -0285,+045.00,+00.00,01.00,000.00,1.00 -0286,+045.00,+00.00,01.00,000.00,1.00 -0287,+045.00,+00.00,01.00,000.00,1.00 -0288,+045.00,+00.00,01.00,000.00,1.00 -0289,+045.00,+00.00,01.00,000.00,1.00 -0290,+045.00,+00.00,01.00,000.00,1.00 -0291,+045.00,+00.00,01.00,000.00,1.00 -0292,+045.00,+00.00,01.00,000.00,1.00 -0293,+045.00,+00.00,01.00,000.00,1.00 -0294,+045.00,+00.00,01.00,000.00,1.00 -0295,+045.00,+00.00,01.00,000.00,1.00 -0296,+045.00,+00.00,01.00,000.00,1.00 -0297,+045.00,+00.00,01.00,000.00,1.00 -0298,+045.00,+00.00,01.00,000.00,1.00 -0299,+045.00,+00.00,01.00,000.00,1.00 -0300,+045.00,+00.00,01.00,000.00,1.00 -0301,+045.00,+00.00,01.00,000.00,1.00 -0302,+045.00,+00.00,01.00,000.00,1.00 -0303,+045.00,+00.00,01.00,000.00,1.00 -0304,+045.00,+00.00,01.00,000.00,1.00 -0305,+045.00,+00.00,01.00,000.00,1.00 -0306,+045.00,+00.00,01.00,000.00,1.00 -0307,+045.00,+00.00,01.00,000.00,1.00 -0308,+045.00,+00.00,01.00,000.00,1.00 -0309,+045.00,+00.00,01.00,000.00,1.00 -0310,+045.00,+00.00,01.00,000.00,1.00 -0311,+045.00,+00.00,01.00,000.00,1.00 -0312,+045.00,+00.00,01.00,000.00,1.00 -0313,+045.00,+00.00,01.00,000.00,1.00 -0314,+045.00,+00.00,01.00,000.00,1.00 -0315,+045.00,+00.00,01.00,000.00,1.00 -0316,+045.00,+00.00,01.00,000.00,1.00 -0317,+045.00,+00.00,01.00,000.00,1.00 -0318,+045.00,+00.00,01.00,000.00,1.00 -0319,+045.00,+00.00,01.00,000.00,1.00 -0320,+045.00,+00.00,01.00,000.00,1.00 -0321,+045.00,+00.00,01.00,000.00,1.00 -0322,+045.00,+00.00,01.00,000.00,1.00 -0323,+045.00,+00.00,01.00,000.00,1.00 -0324,+045.00,+00.00,01.00,000.00,1.00 -0325,+045.00,+00.00,01.00,000.00,1.00 -0326,+045.00,+00.00,01.00,000.00,1.00 -0327,+045.00,+00.00,01.00,000.00,1.00 -0328,+045.00,+00.00,01.00,000.00,1.00 -0329,+045.00,+00.00,01.00,000.00,1.00 -0330,+045.00,+00.00,01.00,000.00,1.00 -0331,+045.00,+00.00,01.00,000.00,1.00 -0332,+045.00,+00.00,01.00,000.00,1.00 -0333,+045.00,+00.00,01.00,000.00,1.00 -0334,+045.00,+00.00,01.00,000.00,1.00 -0335,+045.00,+00.00,01.00,000.00,1.00 -0336,+045.00,+00.00,01.00,000.00,1.00 -0337,+045.00,+00.00,01.00,000.00,1.00 -0338,+045.00,+00.00,01.00,000.00,1.00 -0339,+045.00,+00.00,01.00,000.00,1.00 -0340,+045.00,+00.00,01.00,000.00,1.00 -0341,+045.00,+00.00,01.00,000.00,1.00 -0342,+045.00,+00.00,01.00,000.00,1.00 -0343,+045.00,+00.00,01.00,000.00,1.00 -0344,+045.00,+00.00,01.00,000.00,1.00 -0345,+045.00,+00.00,01.00,000.00,1.00 -0346,+045.00,+00.00,01.00,000.00,1.00 -0347,+045.00,+00.00,01.00,000.00,1.00 -0348,+045.00,+00.00,01.00,000.00,1.00 -0349,+045.00,+00.00,01.00,000.00,1.00 -0350,+045.00,+00.00,01.00,000.00,1.00 -0351,+045.00,+00.00,01.00,000.00,1.00 -0352,+045.00,+00.00,01.00,000.00,1.00 -0353,+045.00,+00.00,01.00,000.00,1.00 -0354,+045.00,+00.00,01.00,000.00,1.00 -0355,+045.00,+00.00,01.00,000.00,1.00 -0356,+045.00,+00.00,01.00,000.00,1.00 -0357,+045.00,+00.00,01.00,000.00,1.00 -0358,+045.00,+00.00,01.00,000.00,1.00 -0359,+045.00,+00.00,01.00,000.00,1.00 -0360,+045.00,+00.00,01.00,000.00,1.00 -0361,+045.00,+00.00,01.00,000.00,1.00 -0362,+045.00,+00.00,01.00,000.00,1.00 -0363,+045.00,+00.00,01.00,000.00,1.00 -0364,+045.00,+00.00,01.00,000.00,1.00 -0365,+045.00,+00.00,01.00,000.00,1.00 -0366,+045.00,+00.00,01.00,000.00,1.00 -0367,+045.00,+00.00,01.00,000.00,1.00 -0368,+045.00,+00.00,01.00,000.00,1.00 -0369,+045.00,+00.00,01.00,000.00,1.00 -0370,+045.00,+00.00,01.00,000.00,1.00 -0371,+045.00,+00.00,01.00,000.00,1.00 -0372,+045.00,+00.00,01.00,000.00,1.00 -0373,+045.00,+00.00,01.00,000.00,1.00 -0374,+045.00,+00.00,01.00,000.00,1.00 -0375,+045.00,+00.00,01.00,000.00,1.00 -0376,+045.00,+00.00,01.00,000.00,1.00 -0377,+045.00,+00.00,01.00,000.00,1.00 -0378,+045.00,+00.00,01.00,000.00,1.00 -0379,+045.00,+00.00,01.00,000.00,1.00 -0380,+045.00,+00.00,01.00,000.00,1.00 -0381,+045.00,+00.00,01.00,000.00,1.00 -0382,+045.00,+00.00,01.00,000.00,1.00 -0383,+045.00,+00.00,01.00,000.00,1.00 -0384,+045.00,+00.00,01.00,000.00,1.00 -0385,+045.00,+00.00,01.00,000.00,1.00 -0386,+045.00,+00.00,01.00,000.00,1.00 -0387,+045.00,+00.00,01.00,000.00,1.00 -0388,+045.00,+00.00,01.00,000.00,1.00 -0389,+045.00,+00.00,01.00,000.00,1.00 -0390,+045.00,+00.00,01.00,000.00,1.00 -0391,+045.00,+00.00,01.00,000.00,1.00 -0392,+045.00,+00.00,01.00,000.00,1.00 -0393,+045.00,+00.00,01.00,000.00,1.00 -0394,+045.00,+00.00,01.00,000.00,1.00 -0395,+045.00,+00.00,01.00,000.00,1.00 -0396,+045.00,+00.00,01.00,000.00,1.00 -0397,+045.00,+00.00,01.00,000.00,1.00 -0398,+045.00,+00.00,01.00,000.00,1.00 -0399,+045.00,+00.00,01.00,000.00,1.00 -0400,+045.00,+00.00,01.00,000.00,1.00 -0401,+045.00,+00.00,01.00,000.00,1.00 -0402,+045.00,+00.00,01.00,000.00,1.00 -0403,+045.00,+00.00,01.00,000.00,1.00 -0404,+045.00,+00.00,01.00,000.00,1.00 -0405,+045.00,+00.00,01.00,000.00,1.00 -0406,+045.00,+00.00,01.00,000.00,1.00 -0407,+045.00,+00.00,01.00,000.00,1.00 -0408,+045.00,+00.00,01.00,000.00,1.00 -0409,+045.00,+00.00,01.00,000.00,1.00 -0410,+045.00,+00.00,01.00,000.00,1.00 -0411,+045.00,+00.00,01.00,000.00,1.00 -0412,+045.00,+00.00,01.00,000.00,1.00 -0413,+045.00,+00.00,01.00,000.00,1.00 -0414,+045.00,+00.00,01.00,000.00,1.00 -0415,+045.00,+00.00,01.00,000.00,1.00 -0416,+045.00,+00.00,01.00,000.00,1.00 -0417,+045.00,+00.00,01.00,000.00,1.00 -0418,+045.00,+00.00,01.00,000.00,1.00 -0419,+045.00,+00.00,01.00,000.00,1.00 -0420,+045.00,+00.00,01.00,000.00,1.00 -0421,+045.00,+00.00,01.00,000.00,1.00 -0422,+045.00,+00.00,01.00,000.00,1.00 -0423,+045.00,+00.00,01.00,000.00,1.00 -0424,+045.00,+00.00,01.00,000.00,1.00 -0425,+045.00,+00.00,01.00,000.00,1.00 -0426,+045.00,+00.00,01.00,000.00,1.00 -0427,+045.00,+00.00,01.00,000.00,1.00 -0428,+045.00,+00.00,01.00,000.00,1.00 -0429,+045.00,+00.00,01.00,000.00,1.00 -0430,+045.00,+00.00,01.00,000.00,1.00 -0431,+045.00,+00.00,01.00,000.00,1.00 -0432,+045.00,+00.00,01.00,000.00,1.00 -0433,+045.00,+00.00,01.00,000.00,1.00 -0434,+045.00,+00.00,01.00,000.00,1.00 -0435,+045.00,+00.00,01.00,000.00,1.00 -0436,+045.00,+00.00,01.00,000.00,1.00 -0437,+045.00,+00.00,01.00,000.00,1.00 -0438,+045.00,+00.00,01.00,000.00,1.00 -0439,+045.00,+00.00,01.00,000.00,1.00 -0440,+045.00,+00.00,01.00,000.00,1.00 -0441,+045.00,+00.00,01.00,000.00,1.00 -0442,+045.00,+00.00,01.00,000.00,1.00 -0443,+045.00,+00.00,01.00,000.00,1.00 -0444,+045.00,+00.00,01.00,000.00,1.00 -0445,+045.00,+00.00,01.00,000.00,1.00 -0446,+045.00,+00.00,01.00,000.00,1.00 -0447,+045.00,+00.00,01.00,000.00,1.00 -0448,+045.00,+00.00,01.00,000.00,1.00 -0449,+045.00,+00.00,01.00,000.00,1.00 -0450,+045.00,+00.00,01.00,000.00,1.00 -0451,+045.00,+00.00,01.00,000.00,1.00 -0452,+045.00,+00.00,01.00,000.00,1.00 -0453,+045.00,+00.00,01.00,000.00,1.00 -0454,+045.00,+00.00,01.00,000.00,1.00 -0455,+045.00,+00.00,01.00,000.00,1.00 -0456,+045.00,+00.00,01.00,000.00,1.00 -0457,+045.00,+00.00,01.00,000.00,1.00 -0458,+045.00,+00.00,01.00,000.00,1.00 -0459,+045.00,+00.00,01.00,000.00,1.00 -0460,+045.00,+00.00,01.00,000.00,1.00 -0461,+045.00,+00.00,01.00,000.00,1.00 -0462,+045.00,+00.00,01.00,000.00,1.00 -0463,+045.00,+00.00,01.00,000.00,1.00 -0464,+045.00,+00.00,01.00,000.00,1.00 -0465,+045.00,+00.00,01.00,000.00,1.00 -0466,+045.00,+00.00,01.00,000.00,1.00 -0467,+045.00,+00.00,01.00,000.00,1.00 -0468,+045.00,+00.00,01.00,000.00,1.00 -0469,+045.00,+00.00,01.00,000.00,1.00 -0470,+045.00,+00.00,01.00,000.00,1.00 -0471,+045.00,+00.00,01.00,000.00,1.00 -0472,+045.00,+00.00,01.00,000.00,1.00 -0473,+045.00,+00.00,01.00,000.00,1.00 -0474,+045.00,+00.00,01.00,000.00,1.00 -0475,+045.00,+00.00,01.00,000.00,1.00 -0476,+045.00,+00.00,01.00,000.00,1.00 -0477,+045.00,+00.00,01.00,000.00,1.00 -0478,+045.00,+00.00,01.00,000.00,1.00 -0479,+045.00,+00.00,01.00,000.00,1.00 -0480,+045.00,+00.00,01.00,000.00,1.00 -0481,+045.00,+00.00,01.00,000.00,1.00 -0482,+045.00,+00.00,01.00,000.00,1.00 -0483,+045.00,+00.00,01.00,000.00,1.00 -0484,+045.00,+00.00,01.00,000.00,1.00 -0485,+045.00,+00.00,01.00,000.00,1.00 -0486,+045.00,+00.00,01.00,000.00,1.00 -0487,+045.00,+00.00,01.00,000.00,1.00 -0488,+045.00,+00.00,01.00,000.00,1.00 -0489,+045.00,+00.00,01.00,000.00,1.00 -0490,+045.00,+00.00,01.00,000.00,1.00 -0491,+045.00,+00.00,01.00,000.00,1.00 -0492,+045.00,+00.00,01.00,000.00,1.00 -0493,+045.00,+00.00,01.00,000.00,1.00 -0494,+045.00,+00.00,01.00,000.00,1.00 -0495,+045.00,+00.00,01.00,000.00,1.00 -0496,+045.00,+00.00,01.00,000.00,1.00 -0497,+045.00,+00.00,01.00,000.00,1.00 -0498,+045.00,+00.00,01.00,000.00,1.00 -0499,+045.00,+00.00,01.00,000.00,1.00 -0500,+045.00,+00.00,01.00,000.00,1.00 -0501,+045.00,+00.00,01.00,000.00,1.00 -0502,+045.00,+00.00,01.00,000.00,1.00 -0503,+045.00,+00.00,01.00,000.00,1.00 -0504,+045.00,+00.00,01.00,000.00,1.00 -0505,+045.00,+00.00,01.00,000.00,1.00 -0506,+045.00,+00.00,01.00,000.00,1.00 -0507,+045.00,+00.00,01.00,000.00,1.00 -0508,+045.00,+00.00,01.00,000.00,1.00 -0509,+045.00,+00.00,01.00,000.00,1.00 -0510,+045.00,+00.00,01.00,000.00,1.00 -0511,+045.00,+00.00,01.00,000.00,1.00 -0512,+045.00,+00.00,01.00,000.00,1.00 -0513,+045.00,+00.00,01.00,000.00,1.00 -0514,+045.00,+00.00,01.00,000.00,1.00 -0515,+045.00,+00.00,01.00,000.00,1.00 -0516,+045.00,+00.00,01.00,000.00,1.00 -0517,+045.00,+00.00,01.00,000.00,1.00 -0518,+045.00,+00.00,01.00,000.00,1.00 -0519,+045.00,+00.00,01.00,000.00,1.00 -0520,+045.00,+00.00,01.00,000.00,1.00 -0521,+045.00,+00.00,01.00,000.00,1.00 -0522,+045.00,+00.00,01.00,000.00,1.00 -0523,+045.00,+00.00,01.00,000.00,1.00 -0524,+045.00,+00.00,01.00,000.00,1.00 -0525,+045.00,+00.00,01.00,000.00,1.00 -0526,+045.00,+00.00,01.00,000.00,1.00 -0527,+045.00,+00.00,01.00,000.00,1.00 -0528,+045.00,+00.00,01.00,000.00,1.00 -0529,+045.00,+00.00,01.00,000.00,1.00 -0530,+045.00,+00.00,01.00,000.00,1.00 -0531,+045.00,+00.00,01.00,000.00,1.00 -0532,+045.00,+00.00,01.00,000.00,1.00 -0533,+045.00,+00.00,01.00,000.00,1.00 -0534,+045.00,+00.00,01.00,000.00,1.00 -0535,+045.00,+00.00,01.00,000.00,1.00 -0536,+045.00,+00.00,01.00,000.00,1.00 -0537,+045.00,+00.00,01.00,000.00,1.00 -0538,+045.00,+00.00,01.00,000.00,1.00 -0539,+045.00,+00.00,01.00,000.00,1.00 -0540,+045.00,+00.00,01.00,000.00,1.00 -0541,+045.00,+00.00,01.00,000.00,1.00 -0542,+045.00,+00.00,01.00,000.00,1.00 -0543,+045.00,+00.00,01.00,000.00,1.00 -0544,+045.00,+00.00,01.00,000.00,1.00 -0545,+045.00,+00.00,01.00,000.00,1.00 -0546,+045.00,+00.00,01.00,000.00,1.00 -0547,+045.00,+00.00,01.00,000.00,1.00 -0548,+045.00,+00.00,01.00,000.00,1.00 -0549,+045.00,+00.00,01.00,000.00,1.00 -0550,+045.00,+00.00,01.00,000.00,1.00 -0551,+045.00,+00.00,01.00,000.00,1.00 -0552,+045.00,+00.00,01.00,000.00,1.00 -0553,+045.00,+00.00,01.00,000.00,1.00 -0554,+045.00,+00.00,01.00,000.00,1.00 -0555,+045.00,+00.00,01.00,000.00,1.00 -0556,+045.00,+00.00,01.00,000.00,1.00 -0557,+045.00,+00.00,01.00,000.00,1.00 -0558,+045.00,+00.00,01.00,000.00,1.00 -0559,+045.00,+00.00,01.00,000.00,1.00 -0560,+045.00,+00.00,01.00,000.00,1.00 -0561,+045.00,+00.00,01.00,000.00,1.00 -0562,+045.00,+00.00,01.00,000.00,1.00 -0563,+045.00,+00.00,01.00,000.00,1.00 -0564,+045.00,+00.00,01.00,000.00,1.00 -0565,+045.00,+00.00,01.00,000.00,1.00 -0566,+045.00,+00.00,01.00,000.00,1.00 -0567,+045.00,+00.00,01.00,000.00,1.00 -0568,+045.00,+00.00,01.00,000.00,1.00 -0569,+045.00,+00.00,01.00,000.00,1.00 -0570,+045.00,+00.00,01.00,000.00,1.00 -0571,+045.00,+00.00,01.00,000.00,1.00 -0572,+045.00,+00.00,01.00,000.00,1.00 -0573,+045.00,+00.00,01.00,000.00,1.00 -0574,+045.00,+00.00,01.00,000.00,1.00 -0575,+045.00,+00.00,01.00,000.00,1.00 -0576,+045.00,+00.00,01.00,000.00,1.00 -0577,+045.00,+00.00,01.00,000.00,1.00 -0578,+045.00,+00.00,01.00,000.00,1.00 -0579,+045.00,+00.00,01.00,000.00,1.00 -0580,+045.00,+00.00,01.00,000.00,1.00 -0581,+045.00,+00.00,01.00,000.00,1.00 -0582,+045.00,+00.00,01.00,000.00,1.00 -0583,+045.00,+00.00,01.00,000.00,1.00 -0584,+045.00,+00.00,01.00,000.00,1.00 -0585,+045.00,+00.00,01.00,000.00,1.00 -0586,+045.00,+00.00,01.00,000.00,1.00 -0587,+045.00,+00.00,01.00,000.00,1.00 -0588,+045.00,+00.00,01.00,000.00,1.00 -0589,+045.00,+00.00,01.00,000.00,1.00 -0590,+045.00,+00.00,01.00,000.00,1.00 -0591,+045.00,+00.00,01.00,000.00,1.00 -0592,+045.00,+00.00,01.00,000.00,1.00 -0593,+045.00,+00.00,01.00,000.00,1.00 -0594,+045.00,+00.00,01.00,000.00,1.00 -0595,+045.00,+00.00,01.00,000.00,1.00 -0596,+045.00,+00.00,01.00,000.00,1.00 -0597,+045.00,+00.00,01.00,000.00,1.00 -0598,+045.00,+00.00,01.00,000.00,1.00 -0599,+045.00,+00.00,01.00,000.00,1.00 -0600,+045.00,+00.00,01.00,000.00,1.00 -0601,+045.00,+00.00,01.00,000.00,1.00 -0602,+045.00,+00.00,01.00,000.00,1.00 -0603,+045.00,+00.00,01.00,000.00,1.00 -0604,+045.00,+00.00,01.00,000.00,1.00 -0605,+045.00,+00.00,01.00,000.00,1.00 -0606,+045.00,+00.00,01.00,000.00,1.00 -0607,+045.00,+00.00,01.00,000.00,1.00 -0608,+045.00,+00.00,01.00,000.00,1.00 -0609,+045.00,+00.00,01.00,000.00,1.00 -0610,+045.00,+00.00,01.00,000.00,1.00 -0611,+045.00,+00.00,01.00,000.00,1.00 -0612,+045.00,+00.00,01.00,000.00,1.00 -0613,+045.00,+00.00,01.00,000.00,1.00 -0614,+045.00,+00.00,01.00,000.00,1.00 -0615,+045.00,+00.00,01.00,000.00,1.00 -0616,+045.00,+00.00,01.00,000.00,1.00 -0617,+045.00,+00.00,01.00,000.00,1.00 -0618,+045.00,+00.00,01.00,000.00,1.00 -0619,+045.00,+00.00,01.00,000.00,1.00 -0620,+045.00,+00.00,01.00,000.00,1.00 -0621,+045.00,+00.00,01.00,000.00,1.00 -0622,+045.00,+00.00,01.00,000.00,1.00 -0623,+045.00,+00.00,01.00,000.00,1.00 -0624,+045.00,+00.00,01.00,000.00,1.00 -0625,+045.00,+00.00,01.00,000.00,1.00 -0626,+045.00,+00.00,01.00,000.00,1.00 -0627,+045.00,+00.00,01.00,000.00,1.00 -0628,+045.00,+00.00,01.00,000.00,1.00 -0629,+045.00,+00.00,01.00,000.00,1.00 -0630,+045.00,+00.00,01.00,000.00,1.00 -0631,+045.00,+00.00,01.00,000.00,1.00 -0632,+045.00,+00.00,01.00,000.00,1.00 -0633,+045.00,+00.00,01.00,000.00,1.00 -0634,+045.00,+00.00,01.00,000.00,1.00 -0635,+045.00,+00.00,01.00,000.00,1.00 -0636,+045.00,+00.00,01.00,000.00,1.00 -0637,+045.00,+00.00,01.00,000.00,1.00 -0638,+045.00,+00.00,01.00,000.00,1.00 -0639,+045.00,+00.00,01.00,000.00,1.00 -0640,+045.00,+00.00,01.00,000.00,1.00 -0641,+045.00,+00.00,01.00,000.00,1.00 -0642,+045.00,+00.00,01.00,000.00,1.00 -0643,+045.00,+00.00,01.00,000.00,1.00 -0644,+045.00,+00.00,01.00,000.00,1.00 -0645,+045.00,+00.00,01.00,000.00,1.00 -0646,+045.00,+00.00,01.00,000.00,1.00 -0647,+045.00,+00.00,01.00,000.00,1.00 -0648,+045.00,+00.00,01.00,000.00,1.00 -0649,+045.00,+00.00,01.00,000.00,1.00 -0650,+045.00,+00.00,01.00,000.00,1.00 -0651,+045.00,+00.00,01.00,000.00,1.00 -0652,+045.00,+00.00,01.00,000.00,1.00 -0653,+045.00,+00.00,01.00,000.00,1.00 -0654,+045.00,+00.00,01.00,000.00,1.00 -0655,+045.00,+00.00,01.00,000.00,1.00 -0656,+045.00,+00.00,01.00,000.00,1.00 -0657,+045.00,+00.00,01.00,000.00,1.00 -0658,+045.00,+00.00,01.00,000.00,1.00 -0659,+045.00,+00.00,01.00,000.00,1.00 -0660,+045.00,+00.00,01.00,000.00,1.00 -0661,+045.00,+00.00,01.00,000.00,1.00 -0662,+045.00,+00.00,01.00,000.00,1.00 -0663,+045.00,+00.00,01.00,000.00,1.00 -0664,+045.00,+00.00,01.00,000.00,1.00 -0665,+045.00,+00.00,01.00,000.00,1.00 -0666,+045.00,+00.00,01.00,000.00,1.00 -0667,+045.00,+00.00,01.00,000.00,1.00 -0668,+045.00,+00.00,01.00,000.00,1.00 -0669,+045.00,+00.00,01.00,000.00,1.00 -0670,+045.00,+00.00,01.00,000.00,1.00 -0671,+045.00,+00.00,01.00,000.00,1.00 -0672,+045.00,+00.00,01.00,000.00,1.00 -0673,+045.00,+00.00,01.00,000.00,1.00 -0674,+045.00,+00.00,01.00,000.00,1.00 -0675,+045.00,+00.00,01.00,000.00,1.00 -0676,+045.00,+00.00,01.00,000.00,1.00 -0677,+045.00,+00.00,01.00,000.00,1.00 -0678,+045.00,+00.00,01.00,000.00,1.00 -0679,+045.00,+00.00,01.00,000.00,1.00 -0680,+045.00,+00.00,01.00,000.00,1.00 -0681,+045.00,+00.00,01.00,000.00,1.00 -0682,+045.00,+00.00,01.00,000.00,1.00 -0683,+045.00,+00.00,01.00,000.00,1.00 -0684,+045.00,+00.00,01.00,000.00,1.00 -0685,+045.00,+00.00,01.00,000.00,1.00 -0686,+045.00,+00.00,01.00,000.00,1.00 -0687,+045.00,+00.00,01.00,000.00,1.00 -0688,+045.00,+00.00,01.00,000.00,1.00 -0689,+045.00,+00.00,01.00,000.00,1.00 -0690,+045.00,+00.00,01.00,000.00,1.00 -0691,+045.00,+00.00,01.00,000.00,1.00 -0692,+045.00,+00.00,01.00,000.00,1.00 -0693,+045.00,+00.00,01.00,000.00,1.00 -0694,+045.00,+00.00,01.00,000.00,1.00 -0695,+045.00,+00.00,01.00,000.00,1.00 -0696,+045.00,+00.00,01.00,000.00,1.00 -0697,+045.00,+00.00,01.00,000.00,1.00 -0698,+045.00,+00.00,01.00,000.00,1.00 -0699,+045.00,+00.00,01.00,000.00,1.00 -0700,+045.00,+00.00,01.00,000.00,1.00 -0701,+045.00,+00.00,01.00,000.00,1.00 -0702,+045.00,+00.00,01.00,000.00,1.00 -0703,+045.00,+00.00,01.00,000.00,1.00 -0704,+045.00,+00.00,01.00,000.00,1.00 -0705,+045.00,+00.00,01.00,000.00,1.00 -0706,+045.00,+00.00,01.00,000.00,1.00 -0707,+045.00,+00.00,01.00,000.00,1.00 -0708,+045.00,+00.00,01.00,000.00,1.00 -0709,+045.00,+00.00,01.00,000.00,1.00 -0710,+045.00,+00.00,01.00,000.00,1.00 -0711,+045.00,+00.00,01.00,000.00,1.00 -0712,+045.00,+00.00,01.00,000.00,1.00 -0713,+045.00,+00.00,01.00,000.00,1.00 -0714,+045.00,+00.00,01.00,000.00,1.00 -0715,+045.00,+00.00,01.00,000.00,1.00 -0716,+045.00,+00.00,01.00,000.00,1.00 -0717,+045.00,+00.00,01.00,000.00,1.00 -0718,+045.00,+00.00,01.00,000.00,1.00 -0719,+045.00,+00.00,01.00,000.00,1.00 -0720,+045.00,+00.00,01.00,000.00,1.00 -0721,+045.00,+00.00,01.00,000.00,1.00 -0722,+045.00,+00.00,01.00,000.00,1.00 -0723,+045.00,+00.00,01.00,000.00,1.00 -0724,+045.00,+00.00,01.00,000.00,1.00 -0725,+045.00,+00.00,01.00,000.00,1.00 -0726,+045.00,+00.00,01.00,000.00,1.00 -0727,+045.00,+00.00,01.00,000.00,1.00 -0728,+045.00,+00.00,01.00,000.00,1.00 -0729,+045.00,+00.00,01.00,000.00,1.00 -0730,+045.00,+00.00,01.00,000.00,1.00 -0731,+045.00,+00.00,01.00,000.00,1.00 -0732,+045.00,+00.00,01.00,000.00,1.00 -0733,+045.00,+00.00,01.00,000.00,1.00 -0734,+045.00,+00.00,01.00,000.00,1.00 -0735,+045.00,+00.00,01.00,000.00,1.00 -0736,+045.00,+00.00,01.00,000.00,1.00 -0737,+045.00,+00.00,01.00,000.00,1.00 -0738,+045.00,+00.00,01.00,000.00,1.00 -0739,+045.00,+00.00,01.00,000.00,1.00 -0740,+045.00,+00.00,01.00,000.00,1.00 -0741,+045.00,+00.00,01.00,000.00,1.00 -0742,+045.00,+00.00,01.00,000.00,1.00 -0743,+045.00,+00.00,01.00,000.00,1.00 -0744,+045.00,+00.00,01.00,000.00,1.00 -0745,+045.00,+00.00,01.00,000.00,1.00 -0746,+045.00,+00.00,01.00,000.00,1.00 -0747,+045.00,+00.00,01.00,000.00,1.00 -0748,+045.00,+00.00,01.00,000.00,1.00 -0749,+045.00,+00.00,01.00,000.00,1.00 -0750,+045.00,+00.00,01.00,000.00,1.00 -0751,+045.00,+00.00,01.00,000.00,1.00 -0752,+045.00,+00.00,01.00,000.00,1.00 -0753,+045.00,+00.00,01.00,000.00,1.00 -0754,+045.00,+00.00,01.00,000.00,1.00 -0755,+045.00,+00.00,01.00,000.00,1.00 -0756,+045.00,+00.00,01.00,000.00,1.00 -0757,+045.00,+00.00,01.00,000.00,1.00 -0758,+045.00,+00.00,01.00,000.00,1.00 -0759,+045.00,+00.00,01.00,000.00,1.00 -0760,+045.00,+00.00,01.00,000.00,1.00 -0761,+045.00,+00.00,01.00,000.00,1.00 -0762,+045.00,+00.00,01.00,000.00,1.00 -0763,+045.00,+00.00,01.00,000.00,1.00 -0764,+045.00,+00.00,01.00,000.00,1.00 -0765,+045.00,+00.00,01.00,000.00,1.00 -0766,+045.00,+00.00,01.00,000.00,1.00 -0767,+045.00,+00.00,01.00,000.00,1.00 -0768,+045.00,+00.00,01.00,000.00,1.00 -0769,+045.00,+00.00,01.00,000.00,1.00 -0770,+045.00,+00.00,01.00,000.00,1.00 -0771,+045.00,+00.00,01.00,000.00,1.00 -0772,+045.00,+00.00,01.00,000.00,1.00 -0773,+045.00,+00.00,01.00,000.00,1.00 -0774,+045.00,+00.00,01.00,000.00,1.00 -0775,+045.00,+00.00,01.00,000.00,1.00 -0776,+045.00,+00.00,01.00,000.00,1.00 -0777,+045.00,+00.00,01.00,000.00,1.00 -0778,+045.00,+00.00,01.00,000.00,1.00 -0779,+045.00,+00.00,01.00,000.00,1.00 -0780,+045.00,+00.00,01.00,000.00,1.00 -0781,+045.00,+00.00,01.00,000.00,1.00 -0782,+045.00,+00.00,01.00,000.00,1.00 -0783,+045.00,+00.00,01.00,000.00,1.00 -0784,+045.00,+00.00,01.00,000.00,1.00 -0785,+045.00,+00.00,01.00,000.00,1.00 -0786,+045.00,+00.00,01.00,000.00,1.00 -0787,+045.00,+00.00,01.00,000.00,1.00 -0788,+045.00,+00.00,01.00,000.00,1.00 -0789,+045.00,+00.00,01.00,000.00,1.00 -0790,+045.00,+00.00,01.00,000.00,1.00 -0791,+045.00,+00.00,01.00,000.00,1.00 -0792,+045.00,+00.00,01.00,000.00,1.00 -0793,+045.00,+00.00,01.00,000.00,1.00 -0794,+045.00,+00.00,01.00,000.00,1.00 -0795,+045.00,+00.00,01.00,000.00,1.00 -0796,+045.00,+00.00,01.00,000.00,1.00 -0797,+045.00,+00.00,01.00,000.00,1.00 -0798,+045.00,+00.00,01.00,000.00,1.00 -0799,+045.00,+00.00,01.00,000.00,1.00 -0800,+045.00,+00.00,01.00,000.00,1.00 -0801,+045.00,+00.00,01.00,000.00,1.00 -0802,+045.00,+00.00,01.00,000.00,1.00 -0803,+045.00,+00.00,01.00,000.00,1.00 -0804,+045.00,+00.00,01.00,000.00,1.00 -0805,+045.00,+00.00,01.00,000.00,1.00 -0806,+045.00,+00.00,01.00,000.00,1.00 -0807,+045.00,+00.00,01.00,000.00,1.00 -0808,+045.00,+00.00,01.00,000.00,1.00 -0809,+045.00,+00.00,01.00,000.00,1.00 -0810,+045.00,+00.00,01.00,000.00,1.00 -0811,+045.00,+00.00,01.00,000.00,1.00 -0812,+045.00,+00.00,01.00,000.00,1.00 -0813,+045.00,+00.00,01.00,000.00,1.00 -0814,+045.00,+00.00,01.00,000.00,1.00 -0815,+045.00,+00.00,01.00,000.00,1.00 -0816,+045.00,+00.00,01.00,000.00,1.00 -0817,+045.00,+00.00,01.00,000.00,1.00 -0818,+045.00,+00.00,01.00,000.00,1.00 -0819,+045.00,+00.00,01.00,000.00,1.00 -0820,+045.00,+00.00,01.00,000.00,1.00 -0821,+045.00,+00.00,01.00,000.00,1.00 -0822,+045.00,+00.00,01.00,000.00,1.00 -0823,+045.00,+00.00,01.00,000.00,1.00 -0824,+045.00,+00.00,01.00,000.00,1.00 -0825,+045.00,+00.00,01.00,000.00,1.00 -0826,+045.00,+00.00,01.00,000.00,1.00 -0827,+045.00,+00.00,01.00,000.00,1.00 -0828,+045.00,+00.00,01.00,000.00,1.00 -0829,+045.00,+00.00,01.00,000.00,1.00 -0830,+045.00,+00.00,01.00,000.00,1.00 -0831,+045.00,+00.00,01.00,000.00,1.00 -0832,+045.00,+00.00,01.00,000.00,1.00 -0833,+045.00,+00.00,01.00,000.00,1.00 -0834,+045.00,+00.00,01.00,000.00,1.00 -0835,+045.00,+00.00,01.00,000.00,1.00 -0836,+045.00,+00.00,01.00,000.00,1.00 -0837,+045.00,+00.00,01.00,000.00,1.00 -0838,+045.00,+00.00,01.00,000.00,1.00 -0839,+045.00,+00.00,01.00,000.00,1.00 -0840,+045.00,+00.00,01.00,000.00,1.00 -0841,+045.00,+00.00,01.00,000.00,1.00 -0842,+045.00,+00.00,01.00,000.00,1.00 -0843,+045.00,+00.00,01.00,000.00,1.00 -0844,+045.00,+00.00,01.00,000.00,1.00 -0845,+045.00,+00.00,01.00,000.00,1.00 -0846,+045.00,+00.00,01.00,000.00,1.00 -0847,+045.00,+00.00,01.00,000.00,1.00 -0848,+045.00,+00.00,01.00,000.00,1.00 -0849,+045.00,+00.00,01.00,000.00,1.00 -0850,+045.00,+00.00,01.00,000.00,1.00 -0851,+045.00,+00.00,01.00,000.00,1.00 -0852,+045.00,+00.00,01.00,000.00,1.00 -0853,+045.00,+00.00,01.00,000.00,1.00 -0854,+045.00,+00.00,01.00,000.00,1.00 -0855,+045.00,+00.00,01.00,000.00,1.00 -0856,+045.00,+00.00,01.00,000.00,1.00 -0857,+045.00,+00.00,01.00,000.00,1.00 -0858,+045.00,+00.00,01.00,000.00,1.00 -0859,+045.00,+00.00,01.00,000.00,1.00 -0860,+045.00,+00.00,01.00,000.00,1.00 -0861,+045.00,+00.00,01.00,000.00,1.00 -0862,+045.00,+00.00,01.00,000.00,1.00 -0863,+045.00,+00.00,01.00,000.00,1.00 -0864,+045.00,+00.00,01.00,000.00,1.00 -0865,+045.00,+00.00,01.00,000.00,1.00 -0866,+045.00,+00.00,01.00,000.00,1.00 -0867,+045.00,+00.00,01.00,000.00,1.00 -0868,+045.00,+00.00,01.00,000.00,1.00 -0869,+045.00,+00.00,01.00,000.00,1.00 -0870,+045.00,+00.00,01.00,000.00,1.00 -0871,+045.00,+00.00,01.00,000.00,1.00 -0872,+045.00,+00.00,01.00,000.00,1.00 -0873,+045.00,+00.00,01.00,000.00,1.00 -0874,+045.00,+00.00,01.00,000.00,1.00 -0875,+045.00,+00.00,01.00,000.00,1.00 -0876,+045.00,+00.00,01.00,000.00,1.00 -0877,+045.00,+00.00,01.00,000.00,1.00 -0878,+045.00,+00.00,01.00,000.00,1.00 -0879,+045.00,+00.00,01.00,000.00,1.00 -0880,+045.00,+00.00,01.00,000.00,1.00 -0881,+045.00,+00.00,01.00,000.00,1.00 -0882,+045.00,+00.00,01.00,000.00,1.00 -0883,+045.00,+00.00,01.00,000.00,1.00 -0884,+045.00,+00.00,01.00,000.00,1.00 -0885,+045.00,+00.00,01.00,000.00,1.00 -0886,+045.00,+00.00,01.00,000.00,1.00 -0887,+045.00,+00.00,01.00,000.00,1.00 -0888,+045.00,+00.00,01.00,000.00,1.00 -0889,+045.00,+00.00,01.00,000.00,1.00 -0890,+045.00,+00.00,01.00,000.00,1.00 -0891,+045.00,+00.00,01.00,000.00,1.00 -0892,+045.00,+00.00,01.00,000.00,1.00 -0893,+045.00,+00.00,01.00,000.00,1.00 -0894,+045.00,+00.00,01.00,000.00,1.00 -0895,+045.00,+00.00,01.00,000.00,1.00 -0896,+045.00,+00.00,01.00,000.00,1.00 -0897,+045.00,+00.00,01.00,000.00,1.00 -0898,+045.00,+00.00,01.00,000.00,1.00 -0899,+045.00,+00.00,01.00,000.00,1.00 -0900,+045.00,+00.00,01.00,000.00,1.00 -0901,+045.00,+00.00,01.00,000.00,1.00 -0902,+045.00,+00.00,01.00,000.00,1.00 -0903,+045.00,+00.00,01.00,000.00,1.00 -0904,+045.00,+00.00,01.00,000.00,1.00 -0905,+045.00,+00.00,01.00,000.00,1.00 -0906,+045.00,+00.00,01.00,000.00,1.00 -0907,+045.00,+00.00,01.00,000.00,1.00 -0908,+045.00,+00.00,01.00,000.00,1.00 -0909,+045.00,+00.00,01.00,000.00,1.00 -0910,+045.00,+00.00,01.00,000.00,1.00 -0911,+045.00,+00.00,01.00,000.00,1.00 -0912,+045.00,+00.00,01.00,000.00,1.00 -0913,+045.00,+00.00,01.00,000.00,1.00 -0914,+045.00,+00.00,01.00,000.00,1.00 -0915,+045.00,+00.00,01.00,000.00,1.00 -0916,+045.00,+00.00,01.00,000.00,1.00 -0917,+045.00,+00.00,01.00,000.00,1.00 -0918,+045.00,+00.00,01.00,000.00,1.00 -0919,+045.00,+00.00,01.00,000.00,1.00 -0920,+045.00,+00.00,01.00,000.00,1.00 -0921,+045.00,+00.00,01.00,000.00,1.00 -0922,+045.00,+00.00,01.00,000.00,1.00 -0923,+045.00,+00.00,01.00,000.00,1.00 -0924,+045.00,+00.00,01.00,000.00,1.00 -0925,+045.00,+00.00,01.00,000.00,1.00 -0926,+045.00,+00.00,01.00,000.00,1.00 -0927,+045.00,+00.00,01.00,000.00,1.00 -0928,+045.00,+00.00,01.00,000.00,1.00 -0929,+045.00,+00.00,01.00,000.00,1.00 -0930,+045.00,+00.00,01.00,000.00,1.00 -0931,+045.00,+00.00,01.00,000.00,1.00 -0932,+045.00,+00.00,01.00,000.00,1.00 -0933,+045.00,+00.00,01.00,000.00,1.00 -0934,+045.00,+00.00,01.00,000.00,1.00 -0935,+045.00,+00.00,01.00,000.00,1.00 -0936,+045.00,+00.00,01.00,000.00,1.00 -0937,+045.00,+00.00,01.00,000.00,1.00 -0938,+045.00,+00.00,01.00,000.00,1.00 -0939,+045.00,+00.00,01.00,000.00,1.00 -0940,+045.00,+00.00,01.00,000.00,1.00 -0941,+045.00,+00.00,01.00,000.00,1.00 -0942,+045.00,+00.00,01.00,000.00,1.00 -0943,+045.00,+00.00,01.00,000.00,1.00 -0944,+045.00,+00.00,01.00,000.00,1.00 -0945,+045.00,+00.00,01.00,000.00,1.00 -0946,+045.00,+00.00,01.00,000.00,1.00 -0947,+045.00,+00.00,01.00,000.00,1.00 -0948,+045.00,+00.00,01.00,000.00,1.00 -0949,+045.00,+00.00,01.00,000.00,1.00 -0950,+045.00,+00.00,01.00,000.00,1.00 -0951,+045.00,+00.00,01.00,000.00,1.00 -0952,+045.00,+00.00,01.00,000.00,1.00 -0953,+045.00,+00.00,01.00,000.00,1.00 -0954,+045.00,+00.00,01.00,000.00,1.00 -0955,+045.00,+00.00,01.00,000.00,1.00 -0956,+045.00,+00.00,01.00,000.00,1.00 -0957,+045.00,+00.00,01.00,000.00,1.00 -0958,+045.00,+00.00,01.00,000.00,1.00 -0959,+045.00,+00.00,01.00,000.00,1.00 -0960,+045.00,+00.00,01.00,000.00,1.00 -0961,+045.00,+00.00,01.00,000.00,1.00 -0962,+045.00,+00.00,01.00,000.00,1.00 -0963,+045.00,+00.00,01.00,000.00,1.00 -0964,+045.00,+00.00,01.00,000.00,1.00 -0965,+045.00,+00.00,01.00,000.00,1.00 -0966,+045.00,+00.00,01.00,000.00,1.00 -0967,+045.00,+00.00,01.00,000.00,1.00 -0968,+045.00,+00.00,01.00,000.00,1.00 -0969,+045.00,+00.00,01.00,000.00,1.00 -0970,+045.00,+00.00,01.00,000.00,1.00 -0971,+045.00,+00.00,01.00,000.00,1.00 -0972,+045.00,+00.00,01.00,000.00,1.00 -0973,+045.00,+00.00,01.00,000.00,1.00 -0974,+045.00,+00.00,01.00,000.00,1.00 -0975,+045.00,+00.00,01.00,000.00,1.00 -0976,+045.00,+00.00,01.00,000.00,1.00 -0977,+045.00,+00.00,01.00,000.00,1.00 -0978,+045.00,+00.00,01.00,000.00,1.00 -0979,+045.00,+00.00,01.00,000.00,1.00 -0980,+045.00,+00.00,01.00,000.00,1.00 -0981,+045.00,+00.00,01.00,000.00,1.00 -0982,+045.00,+00.00,01.00,000.00,1.00 -0983,+045.00,+00.00,01.00,000.00,1.00 -0984,+045.00,+00.00,01.00,000.00,1.00 -0985,+045.00,+00.00,01.00,000.00,1.00 -0986,+045.00,+00.00,01.00,000.00,1.00 -0987,+045.00,+00.00,01.00,000.00,1.00 -0988,+045.00,+00.00,01.00,000.00,1.00 -0989,+045.00,+00.00,01.00,000.00,1.00 -0990,+045.00,+00.00,01.00,000.00,1.00 -0991,+045.00,+00.00,01.00,000.00,1.00 -0992,+045.00,+00.00,01.00,000.00,1.00 -0993,+045.00,+00.00,01.00,000.00,1.00 -0994,+045.00,+00.00,01.00,000.00,1.00 -0995,+045.00,+00.00,01.00,000.00,1.00 -0996,+045.00,+00.00,01.00,000.00,1.00 -0997,+045.00,+00.00,01.00,000.00,1.00 -0998,+045.00,+00.00,01.00,000.00,1.00 -0999,+045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 ++045.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t04_ch1.csv b/scripts/td_object_renderer/metadata/csv/t04_ch1.csv index 9868c987cb..4f78a0c32f 100644 --- a/scripts/td_object_renderer/metadata/csv/t04_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t04_ch1.csv @@ -1,1000 +1,1000 @@ -0000,-030.00,+20.00,01.00,000.00,1.00 -0001,-030.00,+20.00,01.00,000.00,1.00 -0002,-030.00,+20.00,01.00,000.00,1.00 -0003,-030.00,+20.00,01.00,000.00,1.00 -0004,-030.00,+20.00,01.00,000.00,1.00 -0005,-030.00,+20.00,01.00,000.00,1.00 -0006,-030.00,+20.00,01.00,000.00,1.00 -0007,-030.00,+20.00,01.00,000.00,1.00 -0008,-030.00,+20.00,01.00,000.00,1.00 -0009,-030.00,+20.00,01.00,000.00,1.00 -0010,-030.00,+20.00,01.00,000.00,1.00 -0011,-030.00,+20.00,01.00,000.00,1.00 -0012,-030.00,+20.00,01.00,000.00,1.00 -0013,-030.00,+20.00,01.00,000.00,1.00 -0014,-030.00,+20.00,01.00,000.00,1.00 -0015,-030.00,+20.00,01.00,000.00,1.00 -0016,-030.00,+20.00,01.00,000.00,1.00 -0017,-030.00,+20.00,01.00,000.00,1.00 -0018,-030.00,+20.00,01.00,000.00,1.00 -0019,-030.00,+20.00,01.00,000.00,1.00 -0020,-030.00,+20.00,01.00,000.00,1.00 -0021,-030.00,+20.00,01.00,000.00,1.00 -0022,-030.00,+20.00,01.00,000.00,1.00 -0023,-030.00,+20.00,01.00,000.00,1.00 -0024,-030.00,+20.00,01.00,000.00,1.00 -0025,-030.00,+20.00,01.00,000.00,1.00 -0026,-030.00,+20.00,01.00,000.00,1.00 -0027,-030.00,+20.00,01.00,000.00,1.00 -0028,-030.00,+20.00,01.00,000.00,1.00 -0029,-030.00,+20.00,01.00,000.00,1.00 -0030,-030.00,+20.00,01.00,000.00,1.00 -0031,-030.00,+20.00,01.00,000.00,1.00 -0032,-030.00,+20.00,01.00,000.00,1.00 -0033,-030.00,+20.00,01.00,000.00,1.00 -0034,-030.00,+20.00,01.00,000.00,1.00 -0035,-030.00,+20.00,01.00,000.00,1.00 -0036,-030.00,+20.00,01.00,000.00,1.00 -0037,-030.00,+20.00,01.00,000.00,1.00 -0038,-030.00,+20.00,01.00,000.00,1.00 -0039,-030.00,+20.00,01.00,000.00,1.00 -0040,-030.00,+20.00,01.00,000.00,1.00 -0041,-030.00,+20.00,01.00,000.00,1.00 -0042,-030.00,+20.00,01.00,000.00,1.00 -0043,-030.00,+20.00,01.00,000.00,1.00 -0044,-030.00,+20.00,01.00,000.00,1.00 -0045,-030.00,+20.00,01.00,000.00,1.00 -0046,-030.00,+20.00,01.00,000.00,1.00 -0047,-030.00,+20.00,01.00,000.00,1.00 -0048,-030.00,+20.00,01.00,000.00,1.00 -0049,-030.00,+20.00,01.00,000.00,1.00 -0050,-030.00,+20.00,01.00,000.00,1.00 -0051,-030.00,+20.00,01.00,000.00,1.00 -0052,-030.00,+20.00,01.00,000.00,1.00 -0053,-030.00,+20.00,01.00,000.00,1.00 -0054,-030.00,+20.00,01.00,000.00,1.00 -0055,-030.00,+20.00,01.00,000.00,1.00 -0056,-030.00,+20.00,01.00,000.00,1.00 -0057,-030.00,+20.00,01.00,000.00,1.00 -0058,-030.00,+20.00,01.00,000.00,1.00 -0059,-030.00,+20.00,01.00,000.00,1.00 -0060,-030.00,+20.00,01.00,000.00,1.00 -0061,-030.00,+20.00,01.00,000.00,1.00 -0062,-030.00,+20.00,01.00,000.00,1.00 -0063,-030.00,+20.00,01.00,000.00,1.00 -0064,-030.00,+20.00,01.00,000.00,1.00 -0065,-030.00,+20.00,01.00,000.00,1.00 -0066,-030.00,+20.00,01.00,000.00,1.00 -0067,-030.00,+20.00,01.00,000.00,1.00 -0068,-030.00,+20.00,01.00,000.00,1.00 -0069,-030.00,+20.00,01.00,000.00,1.00 -0070,-030.00,+20.00,01.00,000.00,1.00 -0071,-030.00,+20.00,01.00,000.00,1.00 -0072,-030.00,+20.00,01.00,000.00,1.00 -0073,-030.00,+20.00,01.00,000.00,1.00 -0074,-030.00,+20.00,01.00,000.00,1.00 -0075,-030.00,+20.00,01.00,000.00,1.00 -0076,-030.00,+20.00,01.00,000.00,1.00 -0077,-030.00,+20.00,01.00,000.00,1.00 -0078,-030.00,+20.00,01.00,000.00,1.00 -0079,-030.00,+20.00,01.00,000.00,1.00 -0080,-030.00,+20.00,01.00,000.00,1.00 -0081,-030.00,+20.00,01.00,000.00,1.00 -0082,-030.00,+20.00,01.00,000.00,1.00 -0083,-030.00,+20.00,01.00,000.00,1.00 -0084,-030.00,+20.00,01.00,000.00,1.00 -0085,-030.00,+20.00,01.00,000.00,1.00 -0086,-030.00,+20.00,01.00,000.00,1.00 -0087,-030.00,+20.00,01.00,000.00,1.00 -0088,-030.00,+20.00,01.00,000.00,1.00 -0089,-030.00,+20.00,01.00,000.00,1.00 -0090,-030.00,+20.00,01.00,000.00,1.00 -0091,-030.00,+20.00,01.00,000.00,1.00 -0092,-030.00,+20.00,01.00,000.00,1.00 -0093,-030.00,+20.00,01.00,000.00,1.00 -0094,-030.00,+20.00,01.00,000.00,1.00 -0095,-030.00,+20.00,01.00,000.00,1.00 -0096,-030.00,+20.00,01.00,000.00,1.00 -0097,-030.00,+20.00,01.00,000.00,1.00 -0098,-030.00,+20.00,01.00,000.00,1.00 -0099,-030.00,+20.00,01.00,000.00,1.00 -0100,-030.00,+20.00,01.00,000.00,1.00 -0101,-030.00,+20.00,01.00,000.00,1.00 -0102,-030.00,+20.00,01.00,000.00,1.00 -0103,-030.00,+20.00,01.00,000.00,1.00 -0104,-030.00,+20.00,01.00,000.00,1.00 -0105,-030.00,+20.00,01.00,000.00,1.00 -0106,-030.00,+20.00,01.00,000.00,1.00 -0107,-030.00,+20.00,01.00,000.00,1.00 -0108,-030.00,+20.00,01.00,000.00,1.00 -0109,-030.00,+20.00,01.00,000.00,1.00 -0110,-030.00,+20.00,01.00,000.00,1.00 -0111,-030.00,+20.00,01.00,000.00,1.00 -0112,-030.00,+20.00,01.00,000.00,1.00 -0113,-030.00,+20.00,01.00,000.00,1.00 -0114,-030.00,+20.00,01.00,000.00,1.00 -0115,-030.00,+20.00,01.00,000.00,1.00 -0116,-030.00,+20.00,01.00,000.00,1.00 -0117,-030.00,+20.00,01.00,000.00,1.00 -0118,-030.00,+20.00,01.00,000.00,1.00 -0119,-030.00,+20.00,01.00,000.00,1.00 -0120,-030.00,+20.00,01.00,000.00,1.00 -0121,-030.00,+20.00,01.00,000.00,1.00 -0122,-030.00,+20.00,01.00,000.00,1.00 -0123,-030.00,+20.00,01.00,000.00,1.00 -0124,-030.00,+20.00,01.00,000.00,1.00 -0125,-030.00,+20.00,01.00,000.00,1.00 -0126,-030.00,+20.00,01.00,000.00,1.00 -0127,-030.00,+20.00,01.00,000.00,1.00 -0128,-030.00,+20.00,01.00,000.00,1.00 -0129,-030.00,+20.00,01.00,000.00,1.00 -0130,-030.00,+20.00,01.00,000.00,1.00 -0131,-030.00,+20.00,01.00,000.00,1.00 -0132,-030.00,+20.00,01.00,000.00,1.00 -0133,-030.00,+20.00,01.00,000.00,1.00 -0134,-030.00,+20.00,01.00,000.00,1.00 -0135,-030.00,+20.00,01.00,000.00,1.00 -0136,-030.00,+20.00,01.00,000.00,1.00 -0137,-030.00,+20.00,01.00,000.00,1.00 -0138,-030.00,+20.00,01.00,000.00,1.00 -0139,-030.00,+20.00,01.00,000.00,1.00 -0140,-030.00,+20.00,01.00,000.00,1.00 -0141,-030.00,+20.00,01.00,000.00,1.00 -0142,-030.00,+20.00,01.00,000.00,1.00 -0143,-030.00,+20.00,01.00,000.00,1.00 -0144,-030.00,+20.00,01.00,000.00,1.00 -0145,-030.00,+20.00,01.00,000.00,1.00 -0146,-030.00,+20.00,01.00,000.00,1.00 -0147,-030.00,+20.00,01.00,000.00,1.00 -0148,-030.00,+20.00,01.00,000.00,1.00 -0149,-030.00,+20.00,01.00,000.00,1.00 -0150,-030.00,+20.00,01.00,000.00,1.00 -0151,-030.00,+20.00,01.00,000.00,1.00 -0152,-030.00,+20.00,01.00,000.00,1.00 -0153,-030.00,+20.00,01.00,000.00,1.00 -0154,-030.00,+20.00,01.00,000.00,1.00 -0155,-030.00,+20.00,01.00,000.00,1.00 -0156,-030.00,+20.00,01.00,000.00,1.00 -0157,-030.00,+20.00,01.00,000.00,1.00 -0158,-030.00,+20.00,01.00,000.00,1.00 -0159,-030.00,+20.00,01.00,000.00,1.00 -0160,-030.00,+20.00,01.00,000.00,1.00 -0161,-030.00,+20.00,01.00,000.00,1.00 -0162,-030.00,+20.00,01.00,000.00,1.00 -0163,-030.00,+20.00,01.00,000.00,1.00 -0164,-030.00,+20.00,01.00,000.00,1.00 -0165,-030.00,+20.00,01.00,000.00,1.00 -0166,-030.00,+20.00,01.00,000.00,1.00 -0167,-030.00,+20.00,01.00,000.00,1.00 -0168,-030.00,+20.00,01.00,000.00,1.00 -0169,-030.00,+20.00,01.00,000.00,1.00 -0170,-030.00,+20.00,01.00,000.00,1.00 -0171,-030.00,+20.00,01.00,000.00,1.00 -0172,-030.00,+20.00,01.00,000.00,1.00 -0173,-030.00,+20.00,01.00,000.00,1.00 -0174,-030.00,+20.00,01.00,000.00,1.00 -0175,-030.00,+20.00,01.00,000.00,1.00 -0176,-030.00,+20.00,01.00,000.00,1.00 -0177,-030.00,+20.00,01.00,000.00,1.00 -0178,-030.00,+20.00,01.00,000.00,1.00 -0179,-030.00,+20.00,01.00,000.00,1.00 -0180,-030.00,+20.00,01.00,000.00,1.00 -0181,-030.00,+20.00,01.00,000.00,1.00 -0182,-030.00,+20.00,01.00,000.00,1.00 -0183,-030.00,+20.00,01.00,000.00,1.00 -0184,-030.00,+20.00,01.00,000.00,1.00 -0185,-030.00,+20.00,01.00,000.00,1.00 -0186,-030.00,+20.00,01.00,000.00,1.00 -0187,-030.00,+20.00,01.00,000.00,1.00 -0188,-030.00,+20.00,01.00,000.00,1.00 -0189,-030.00,+20.00,01.00,000.00,1.00 -0190,-030.00,+20.00,01.00,000.00,1.00 -0191,-030.00,+20.00,01.00,000.00,1.00 -0192,-030.00,+20.00,01.00,000.00,1.00 -0193,-030.00,+20.00,01.00,000.00,1.00 -0194,-030.00,+20.00,01.00,000.00,1.00 -0195,-030.00,+20.00,01.00,000.00,1.00 -0196,-030.00,+20.00,01.00,000.00,1.00 -0197,-030.00,+20.00,01.00,000.00,1.00 -0198,-030.00,+20.00,01.00,000.00,1.00 -0199,-030.00,+20.00,01.00,000.00,1.00 -0200,-030.00,+20.00,01.00,000.00,1.00 -0201,-030.00,+20.00,01.00,000.00,1.00 -0202,-030.00,+20.00,01.00,000.00,1.00 -0203,-030.00,+20.00,01.00,000.00,1.00 -0204,-030.00,+20.00,01.00,000.00,1.00 -0205,-030.00,+20.00,01.00,000.00,1.00 -0206,-030.00,+20.00,01.00,000.00,1.00 -0207,-030.00,+20.00,01.00,000.00,1.00 -0208,-030.00,+20.00,01.00,000.00,1.00 -0209,-030.00,+20.00,01.00,000.00,1.00 -0210,-030.00,+20.00,01.00,000.00,1.00 -0211,-030.00,+20.00,01.00,000.00,1.00 -0212,-030.00,+20.00,01.00,000.00,1.00 -0213,-030.00,+20.00,01.00,000.00,1.00 -0214,-030.00,+20.00,01.00,000.00,1.00 -0215,-030.00,+20.00,01.00,000.00,1.00 -0216,-030.00,+20.00,01.00,000.00,1.00 -0217,-030.00,+20.00,01.00,000.00,1.00 -0218,-030.00,+20.00,01.00,000.00,1.00 -0219,-030.00,+20.00,01.00,000.00,1.00 -0220,-030.00,+20.00,01.00,000.00,1.00 -0221,-030.00,+20.00,01.00,000.00,1.00 -0222,-030.00,+20.00,01.00,000.00,1.00 -0223,-030.00,+20.00,01.00,000.00,1.00 -0224,-030.00,+20.00,01.00,000.00,1.00 -0225,-030.00,+20.00,01.00,000.00,1.00 -0226,-030.00,+20.00,01.00,000.00,1.00 -0227,-030.00,+20.00,01.00,000.00,1.00 -0228,-030.00,+20.00,01.00,000.00,1.00 -0229,-030.00,+20.00,01.00,000.00,1.00 -0230,-030.00,+20.00,01.00,000.00,1.00 -0231,-030.00,+20.00,01.00,000.00,1.00 -0232,-030.00,+20.00,01.00,000.00,1.00 -0233,-030.00,+20.00,01.00,000.00,1.00 -0234,-030.00,+20.00,01.00,000.00,1.00 -0235,-030.00,+20.00,01.00,000.00,1.00 -0236,-030.00,+20.00,01.00,000.00,1.00 -0237,-030.00,+20.00,01.00,000.00,1.00 -0238,-030.00,+20.00,01.00,000.00,1.00 -0239,-030.00,+20.00,01.00,000.00,1.00 -0240,-030.00,+20.00,01.00,000.00,1.00 -0241,-030.00,+20.00,01.00,000.00,1.00 -0242,-030.00,+20.00,01.00,000.00,1.00 -0243,-030.00,+20.00,01.00,000.00,1.00 -0244,-030.00,+20.00,01.00,000.00,1.00 -0245,-030.00,+20.00,01.00,000.00,1.00 -0246,-030.00,+20.00,01.00,000.00,1.00 -0247,-030.00,+20.00,01.00,000.00,1.00 -0248,-030.00,+20.00,01.00,000.00,1.00 -0249,-030.00,+20.00,01.00,000.00,1.00 -0250,-030.00,+20.00,01.00,000.00,1.00 -0251,-030.00,+20.00,01.00,000.00,1.00 -0252,-030.00,+20.00,01.00,000.00,1.00 -0253,-030.00,+20.00,01.00,000.00,1.00 -0254,-030.00,+20.00,01.00,000.00,1.00 -0255,-030.00,+20.00,01.00,000.00,1.00 -0256,-030.00,+20.00,01.00,000.00,1.00 -0257,-030.00,+20.00,01.00,000.00,1.00 -0258,-030.00,+20.00,01.00,000.00,1.00 -0259,-030.00,+20.00,01.00,000.00,1.00 -0260,-030.00,+20.00,01.00,000.00,1.00 -0261,-030.00,+20.00,01.00,000.00,1.00 -0262,-030.00,+20.00,01.00,000.00,1.00 -0263,-030.00,+20.00,01.00,000.00,1.00 -0264,-030.00,+20.00,01.00,000.00,1.00 -0265,-030.00,+20.00,01.00,000.00,1.00 -0266,-030.00,+20.00,01.00,000.00,1.00 -0267,-030.00,+20.00,01.00,000.00,1.00 -0268,-030.00,+20.00,01.00,000.00,1.00 -0269,-030.00,+20.00,01.00,000.00,1.00 -0270,-030.00,+20.00,01.00,000.00,1.00 -0271,-030.00,+20.00,01.00,000.00,1.00 -0272,-030.00,+20.00,01.00,000.00,1.00 -0273,-030.00,+20.00,01.00,000.00,1.00 -0274,-030.00,+20.00,01.00,000.00,1.00 -0275,-030.00,+20.00,01.00,000.00,1.00 -0276,-030.00,+20.00,01.00,000.00,1.00 -0277,-030.00,+20.00,01.00,000.00,1.00 -0278,-030.00,+20.00,01.00,000.00,1.00 -0279,-030.00,+20.00,01.00,000.00,1.00 -0280,-030.00,+20.00,01.00,000.00,1.00 -0281,-030.00,+20.00,01.00,000.00,1.00 -0282,-030.00,+20.00,01.00,000.00,1.00 -0283,-030.00,+20.00,01.00,000.00,1.00 -0284,-030.00,+20.00,01.00,000.00,1.00 -0285,-030.00,+20.00,01.00,000.00,1.00 -0286,-030.00,+20.00,01.00,000.00,1.00 -0287,-030.00,+20.00,01.00,000.00,1.00 -0288,-030.00,+20.00,01.00,000.00,1.00 -0289,-030.00,+20.00,01.00,000.00,1.00 -0290,-030.00,+20.00,01.00,000.00,1.00 -0291,-030.00,+20.00,01.00,000.00,1.00 -0292,-030.00,+20.00,01.00,000.00,1.00 -0293,-030.00,+20.00,01.00,000.00,1.00 -0294,-030.00,+20.00,01.00,000.00,1.00 -0295,-030.00,+20.00,01.00,000.00,1.00 -0296,-030.00,+20.00,01.00,000.00,1.00 -0297,-030.00,+20.00,01.00,000.00,1.00 -0298,-030.00,+20.00,01.00,000.00,1.00 -0299,-030.00,+20.00,01.00,000.00,1.00 -0300,-030.00,+20.00,01.00,000.00,1.00 -0301,-030.00,+20.00,01.00,000.00,1.00 -0302,-030.00,+20.00,01.00,000.00,1.00 -0303,-030.00,+20.00,01.00,000.00,1.00 -0304,-030.00,+20.00,01.00,000.00,1.00 -0305,-030.00,+20.00,01.00,000.00,1.00 -0306,-030.00,+20.00,01.00,000.00,1.00 -0307,-030.00,+20.00,01.00,000.00,1.00 -0308,-030.00,+20.00,01.00,000.00,1.00 -0309,-030.00,+20.00,01.00,000.00,1.00 -0310,-030.00,+20.00,01.00,000.00,1.00 -0311,-030.00,+20.00,01.00,000.00,1.00 -0312,-030.00,+20.00,01.00,000.00,1.00 -0313,-030.00,+20.00,01.00,000.00,1.00 -0314,-030.00,+20.00,01.00,000.00,1.00 -0315,-030.00,+20.00,01.00,000.00,1.00 -0316,-030.00,+20.00,01.00,000.00,1.00 -0317,-030.00,+20.00,01.00,000.00,1.00 -0318,-030.00,+20.00,01.00,000.00,1.00 -0319,-030.00,+20.00,01.00,000.00,1.00 -0320,-030.00,+20.00,01.00,000.00,1.00 -0321,-030.00,+20.00,01.00,000.00,1.00 -0322,-030.00,+20.00,01.00,000.00,1.00 -0323,-030.00,+20.00,01.00,000.00,1.00 -0324,-030.00,+20.00,01.00,000.00,1.00 -0325,-030.00,+20.00,01.00,000.00,1.00 -0326,-030.00,+20.00,01.00,000.00,1.00 -0327,-030.00,+20.00,01.00,000.00,1.00 -0328,-030.00,+20.00,01.00,000.00,1.00 -0329,-030.00,+20.00,01.00,000.00,1.00 -0330,-030.00,+20.00,01.00,000.00,1.00 -0331,-030.00,+20.00,01.00,000.00,1.00 -0332,-030.00,+20.00,01.00,000.00,1.00 -0333,-030.00,+20.00,01.00,000.00,1.00 -0334,-030.00,+20.00,01.00,000.00,1.00 -0335,-030.00,+20.00,01.00,000.00,1.00 -0336,-030.00,+20.00,01.00,000.00,1.00 -0337,-030.00,+20.00,01.00,000.00,1.00 -0338,-030.00,+20.00,01.00,000.00,1.00 -0339,-030.00,+20.00,01.00,000.00,1.00 -0340,-030.00,+20.00,01.00,000.00,1.00 -0341,-030.00,+20.00,01.00,000.00,1.00 -0342,-030.00,+20.00,01.00,000.00,1.00 -0343,-030.00,+20.00,01.00,000.00,1.00 -0344,-030.00,+20.00,01.00,000.00,1.00 -0345,-030.00,+20.00,01.00,000.00,1.00 -0346,-030.00,+20.00,01.00,000.00,1.00 -0347,-030.00,+20.00,01.00,000.00,1.00 -0348,-030.00,+20.00,01.00,000.00,1.00 -0349,-030.00,+20.00,01.00,000.00,1.00 -0350,-030.00,+20.00,01.00,000.00,1.00 -0351,-030.00,+20.00,01.00,000.00,1.00 -0352,-030.00,+20.00,01.00,000.00,1.00 -0353,-030.00,+20.00,01.00,000.00,1.00 -0354,-030.00,+20.00,01.00,000.00,1.00 -0355,-030.00,+20.00,01.00,000.00,1.00 -0356,-030.00,+20.00,01.00,000.00,1.00 -0357,-030.00,+20.00,01.00,000.00,1.00 -0358,-030.00,+20.00,01.00,000.00,1.00 -0359,-030.00,+20.00,01.00,000.00,1.00 -0360,-030.00,+20.00,01.00,000.00,1.00 -0361,-030.00,+20.00,01.00,000.00,1.00 -0362,-030.00,+20.00,01.00,000.00,1.00 -0363,-030.00,+20.00,01.00,000.00,1.00 -0364,-030.00,+20.00,01.00,000.00,1.00 -0365,-030.00,+20.00,01.00,000.00,1.00 -0366,-030.00,+20.00,01.00,000.00,1.00 -0367,-030.00,+20.00,01.00,000.00,1.00 -0368,-030.00,+20.00,01.00,000.00,1.00 -0369,-030.00,+20.00,01.00,000.00,1.00 -0370,-030.00,+20.00,01.00,000.00,1.00 -0371,-030.00,+20.00,01.00,000.00,1.00 -0372,-030.00,+20.00,01.00,000.00,1.00 -0373,-030.00,+20.00,01.00,000.00,1.00 -0374,-030.00,+20.00,01.00,000.00,1.00 -0375,-030.00,+20.00,01.00,000.00,1.00 -0376,-030.00,+20.00,01.00,000.00,1.00 -0377,-030.00,+20.00,01.00,000.00,1.00 -0378,-030.00,+20.00,01.00,000.00,1.00 -0379,-030.00,+20.00,01.00,000.00,1.00 -0380,-030.00,+20.00,01.00,000.00,1.00 -0381,-030.00,+20.00,01.00,000.00,1.00 -0382,-030.00,+20.00,01.00,000.00,1.00 -0383,-030.00,+20.00,01.00,000.00,1.00 -0384,-030.00,+20.00,01.00,000.00,1.00 -0385,-030.00,+20.00,01.00,000.00,1.00 -0386,-030.00,+20.00,01.00,000.00,1.00 -0387,-030.00,+20.00,01.00,000.00,1.00 -0388,-030.00,+20.00,01.00,000.00,1.00 -0389,-030.00,+20.00,01.00,000.00,1.00 -0390,-030.00,+20.00,01.00,000.00,1.00 -0391,-030.00,+20.00,01.00,000.00,1.00 -0392,-030.00,+20.00,01.00,000.00,1.00 -0393,-030.00,+20.00,01.00,000.00,1.00 -0394,-030.00,+20.00,01.00,000.00,1.00 -0395,-030.00,+20.00,01.00,000.00,1.00 -0396,-030.00,+20.00,01.00,000.00,1.00 -0397,-030.00,+20.00,01.00,000.00,1.00 -0398,-030.00,+20.00,01.00,000.00,1.00 -0399,-030.00,+20.00,01.00,000.00,1.00 -0400,-030.00,+20.00,01.00,000.00,1.00 -0401,-030.00,+20.00,01.00,000.00,1.00 -0402,-030.00,+20.00,01.00,000.00,1.00 -0403,-030.00,+20.00,01.00,000.00,1.00 -0404,-030.00,+20.00,01.00,000.00,1.00 -0405,-030.00,+20.00,01.00,000.00,1.00 -0406,-030.00,+20.00,01.00,000.00,1.00 -0407,-030.00,+20.00,01.00,000.00,1.00 -0408,-030.00,+20.00,01.00,000.00,1.00 -0409,-030.00,+20.00,01.00,000.00,1.00 -0410,-030.00,+20.00,01.00,000.00,1.00 -0411,-030.00,+20.00,01.00,000.00,1.00 -0412,-030.00,+20.00,01.00,000.00,1.00 -0413,-030.00,+20.00,01.00,000.00,1.00 -0414,-030.00,+20.00,01.00,000.00,1.00 -0415,-030.00,+20.00,01.00,000.00,1.00 -0416,-030.00,+20.00,01.00,000.00,1.00 -0417,-030.00,+20.00,01.00,000.00,1.00 -0418,-030.00,+20.00,01.00,000.00,1.00 -0419,-030.00,+20.00,01.00,000.00,1.00 -0420,-030.00,+20.00,01.00,000.00,1.00 -0421,-030.00,+20.00,01.00,000.00,1.00 -0422,-030.00,+20.00,01.00,000.00,1.00 -0423,-030.00,+20.00,01.00,000.00,1.00 -0424,-030.00,+20.00,01.00,000.00,1.00 -0425,-030.00,+20.00,01.00,000.00,1.00 -0426,-030.00,+20.00,01.00,000.00,1.00 -0427,-030.00,+20.00,01.00,000.00,1.00 -0428,-030.00,+20.00,01.00,000.00,1.00 -0429,-030.00,+20.00,01.00,000.00,1.00 -0430,-030.00,+20.00,01.00,000.00,1.00 -0431,-030.00,+20.00,01.00,000.00,1.00 -0432,-030.00,+20.00,01.00,000.00,1.00 -0433,-030.00,+20.00,01.00,000.00,1.00 -0434,-030.00,+20.00,01.00,000.00,1.00 -0435,-030.00,+20.00,01.00,000.00,1.00 -0436,-030.00,+20.00,01.00,000.00,1.00 -0437,-030.00,+20.00,01.00,000.00,1.00 -0438,-030.00,+20.00,01.00,000.00,1.00 -0439,-030.00,+20.00,01.00,000.00,1.00 -0440,-030.00,+20.00,01.00,000.00,1.00 -0441,-030.00,+20.00,01.00,000.00,1.00 -0442,-030.00,+20.00,01.00,000.00,1.00 -0443,-030.00,+20.00,01.00,000.00,1.00 -0444,-030.00,+20.00,01.00,000.00,1.00 -0445,-030.00,+20.00,01.00,000.00,1.00 -0446,-030.00,+20.00,01.00,000.00,1.00 -0447,-030.00,+20.00,01.00,000.00,1.00 -0448,-030.00,+20.00,01.00,000.00,1.00 -0449,-030.00,+20.00,01.00,000.00,1.00 -0450,-030.00,+20.00,01.00,000.00,1.00 -0451,-030.00,+20.00,01.00,000.00,1.00 -0452,-030.00,+20.00,01.00,000.00,1.00 -0453,-030.00,+20.00,01.00,000.00,1.00 -0454,-030.00,+20.00,01.00,000.00,1.00 -0455,-030.00,+20.00,01.00,000.00,1.00 -0456,-030.00,+20.00,01.00,000.00,1.00 -0457,-030.00,+20.00,01.00,000.00,1.00 -0458,-030.00,+20.00,01.00,000.00,1.00 -0459,-030.00,+20.00,01.00,000.00,1.00 -0460,-030.00,+20.00,01.00,000.00,1.00 -0461,-030.00,+20.00,01.00,000.00,1.00 -0462,-030.00,+20.00,01.00,000.00,1.00 -0463,-030.00,+20.00,01.00,000.00,1.00 -0464,-030.00,+20.00,01.00,000.00,1.00 -0465,-030.00,+20.00,01.00,000.00,1.00 -0466,-030.00,+20.00,01.00,000.00,1.00 -0467,-030.00,+20.00,01.00,000.00,1.00 -0468,-030.00,+20.00,01.00,000.00,1.00 -0469,-030.00,+20.00,01.00,000.00,1.00 -0470,-030.00,+20.00,01.00,000.00,1.00 -0471,-030.00,+20.00,01.00,000.00,1.00 -0472,-030.00,+20.00,01.00,000.00,1.00 -0473,-030.00,+20.00,01.00,000.00,1.00 -0474,-030.00,+20.00,01.00,000.00,1.00 -0475,-030.00,+20.00,01.00,000.00,1.00 -0476,-030.00,+20.00,01.00,000.00,1.00 -0477,-030.00,+20.00,01.00,000.00,1.00 -0478,-030.00,+20.00,01.00,000.00,1.00 -0479,-030.00,+20.00,01.00,000.00,1.00 -0480,-030.00,+20.00,01.00,000.00,1.00 -0481,-030.00,+20.00,01.00,000.00,1.00 -0482,-030.00,+20.00,01.00,000.00,1.00 -0483,-030.00,+20.00,01.00,000.00,1.00 -0484,-030.00,+20.00,01.00,000.00,1.00 -0485,-030.00,+20.00,01.00,000.00,1.00 -0486,-030.00,+20.00,01.00,000.00,1.00 -0487,-030.00,+20.00,01.00,000.00,1.00 -0488,-030.00,+20.00,01.00,000.00,1.00 -0489,-030.00,+20.00,01.00,000.00,1.00 -0490,-030.00,+20.00,01.00,000.00,1.00 -0491,-030.00,+20.00,01.00,000.00,1.00 -0492,-030.00,+20.00,01.00,000.00,1.00 -0493,-030.00,+20.00,01.00,000.00,1.00 -0494,-030.00,+20.00,01.00,000.00,1.00 -0495,-030.00,+20.00,01.00,000.00,1.00 -0496,-030.00,+20.00,01.00,000.00,1.00 -0497,-030.00,+20.00,01.00,000.00,1.00 -0498,-030.00,+20.00,01.00,000.00,1.00 -0499,-030.00,+20.00,01.00,000.00,1.00 -0500,-030.00,+20.00,01.00,000.00,1.00 -0501,-030.00,+20.00,01.00,000.00,1.00 -0502,-030.00,+20.00,01.00,000.00,1.00 -0503,-030.00,+20.00,01.00,000.00,1.00 -0504,-030.00,+20.00,01.00,000.00,1.00 -0505,-030.00,+20.00,01.00,000.00,1.00 -0506,-030.00,+20.00,01.00,000.00,1.00 -0507,-030.00,+20.00,01.00,000.00,1.00 -0508,-030.00,+20.00,01.00,000.00,1.00 -0509,-030.00,+20.00,01.00,000.00,1.00 -0510,-030.00,+20.00,01.00,000.00,1.00 -0511,-030.00,+20.00,01.00,000.00,1.00 -0512,-030.00,+20.00,01.00,000.00,1.00 -0513,-030.00,+20.00,01.00,000.00,1.00 -0514,-030.00,+20.00,01.00,000.00,1.00 -0515,-030.00,+20.00,01.00,000.00,1.00 -0516,-030.00,+20.00,01.00,000.00,1.00 -0517,-030.00,+20.00,01.00,000.00,1.00 -0518,-030.00,+20.00,01.00,000.00,1.00 -0519,-030.00,+20.00,01.00,000.00,1.00 -0520,-030.00,+20.00,01.00,000.00,1.00 -0521,-030.00,+20.00,01.00,000.00,1.00 -0522,-030.00,+20.00,01.00,000.00,1.00 -0523,-030.00,+20.00,01.00,000.00,1.00 -0524,-030.00,+20.00,01.00,000.00,1.00 -0525,-030.00,+20.00,01.00,000.00,1.00 -0526,-030.00,+20.00,01.00,000.00,1.00 -0527,-030.00,+20.00,01.00,000.00,1.00 -0528,-030.00,+20.00,01.00,000.00,1.00 -0529,-030.00,+20.00,01.00,000.00,1.00 -0530,-030.00,+20.00,01.00,000.00,1.00 -0531,-030.00,+20.00,01.00,000.00,1.00 -0532,-030.00,+20.00,01.00,000.00,1.00 -0533,-030.00,+20.00,01.00,000.00,1.00 -0534,-030.00,+20.00,01.00,000.00,1.00 -0535,-030.00,+20.00,01.00,000.00,1.00 -0536,-030.00,+20.00,01.00,000.00,1.00 -0537,-030.00,+20.00,01.00,000.00,1.00 -0538,-030.00,+20.00,01.00,000.00,1.00 -0539,-030.00,+20.00,01.00,000.00,1.00 -0540,-030.00,+20.00,01.00,000.00,1.00 -0541,-030.00,+20.00,01.00,000.00,1.00 -0542,-030.00,+20.00,01.00,000.00,1.00 -0543,-030.00,+20.00,01.00,000.00,1.00 -0544,-030.00,+20.00,01.00,000.00,1.00 -0545,-030.00,+20.00,01.00,000.00,1.00 -0546,-030.00,+20.00,01.00,000.00,1.00 -0547,-030.00,+20.00,01.00,000.00,1.00 -0548,-030.00,+20.00,01.00,000.00,1.00 -0549,-030.00,+20.00,01.00,000.00,1.00 -0550,-030.00,+20.00,01.00,000.00,1.00 -0551,-030.00,+20.00,01.00,000.00,1.00 -0552,-030.00,+20.00,01.00,000.00,1.00 -0553,-030.00,+20.00,01.00,000.00,1.00 -0554,-030.00,+20.00,01.00,000.00,1.00 -0555,-030.00,+20.00,01.00,000.00,1.00 -0556,-030.00,+20.00,01.00,000.00,1.00 -0557,-030.00,+20.00,01.00,000.00,1.00 -0558,-030.00,+20.00,01.00,000.00,1.00 -0559,-030.00,+20.00,01.00,000.00,1.00 -0560,-030.00,+20.00,01.00,000.00,1.00 -0561,-030.00,+20.00,01.00,000.00,1.00 -0562,-030.00,+20.00,01.00,000.00,1.00 -0563,-030.00,+20.00,01.00,000.00,1.00 -0564,-030.00,+20.00,01.00,000.00,1.00 -0565,-030.00,+20.00,01.00,000.00,1.00 -0566,-030.00,+20.00,01.00,000.00,1.00 -0567,-030.00,+20.00,01.00,000.00,1.00 -0568,-030.00,+20.00,01.00,000.00,1.00 -0569,-030.00,+20.00,01.00,000.00,1.00 -0570,-030.00,+20.00,01.00,000.00,1.00 -0571,-030.00,+20.00,01.00,000.00,1.00 -0572,-030.00,+20.00,01.00,000.00,1.00 -0573,-030.00,+20.00,01.00,000.00,1.00 -0574,-030.00,+20.00,01.00,000.00,1.00 -0575,-030.00,+20.00,01.00,000.00,1.00 -0576,-030.00,+20.00,01.00,000.00,1.00 -0577,-030.00,+20.00,01.00,000.00,1.00 -0578,-030.00,+20.00,01.00,000.00,1.00 -0579,-030.00,+20.00,01.00,000.00,1.00 -0580,-030.00,+20.00,01.00,000.00,1.00 -0581,-030.00,+20.00,01.00,000.00,1.00 -0582,-030.00,+20.00,01.00,000.00,1.00 -0583,-030.00,+20.00,01.00,000.00,1.00 -0584,-030.00,+20.00,01.00,000.00,1.00 -0585,-030.00,+20.00,01.00,000.00,1.00 -0586,-030.00,+20.00,01.00,000.00,1.00 -0587,-030.00,+20.00,01.00,000.00,1.00 -0588,-030.00,+20.00,01.00,000.00,1.00 -0589,-030.00,+20.00,01.00,000.00,1.00 -0590,-030.00,+20.00,01.00,000.00,1.00 -0591,-030.00,+20.00,01.00,000.00,1.00 -0592,-030.00,+20.00,01.00,000.00,1.00 -0593,-030.00,+20.00,01.00,000.00,1.00 -0594,-030.00,+20.00,01.00,000.00,1.00 -0595,-030.00,+20.00,01.00,000.00,1.00 -0596,-030.00,+20.00,01.00,000.00,1.00 -0597,-030.00,+20.00,01.00,000.00,1.00 -0598,-030.00,+20.00,01.00,000.00,1.00 -0599,-030.00,+20.00,01.00,000.00,1.00 -0600,-030.00,+20.00,01.00,000.00,1.00 -0601,-030.00,+20.00,01.00,000.00,1.00 -0602,-030.00,+20.00,01.00,000.00,1.00 -0603,-030.00,+20.00,01.00,000.00,1.00 -0604,-030.00,+20.00,01.00,000.00,1.00 -0605,-030.00,+20.00,01.00,000.00,1.00 -0606,-030.00,+20.00,01.00,000.00,1.00 -0607,-030.00,+20.00,01.00,000.00,1.00 -0608,-030.00,+20.00,01.00,000.00,1.00 -0609,-030.00,+20.00,01.00,000.00,1.00 -0610,-030.00,+20.00,01.00,000.00,1.00 -0611,-030.00,+20.00,01.00,000.00,1.00 -0612,-030.00,+20.00,01.00,000.00,1.00 -0613,-030.00,+20.00,01.00,000.00,1.00 -0614,-030.00,+20.00,01.00,000.00,1.00 -0615,-030.00,+20.00,01.00,000.00,1.00 -0616,-030.00,+20.00,01.00,000.00,1.00 -0617,-030.00,+20.00,01.00,000.00,1.00 -0618,-030.00,+20.00,01.00,000.00,1.00 -0619,-030.00,+20.00,01.00,000.00,1.00 -0620,-030.00,+20.00,01.00,000.00,1.00 -0621,-030.00,+20.00,01.00,000.00,1.00 -0622,-030.00,+20.00,01.00,000.00,1.00 -0623,-030.00,+20.00,01.00,000.00,1.00 -0624,-030.00,+20.00,01.00,000.00,1.00 -0625,-030.00,+20.00,01.00,000.00,1.00 -0626,-030.00,+20.00,01.00,000.00,1.00 -0627,-030.00,+20.00,01.00,000.00,1.00 -0628,-030.00,+20.00,01.00,000.00,1.00 -0629,-030.00,+20.00,01.00,000.00,1.00 -0630,-030.00,+20.00,01.00,000.00,1.00 -0631,-030.00,+20.00,01.00,000.00,1.00 -0632,-030.00,+20.00,01.00,000.00,1.00 -0633,-030.00,+20.00,01.00,000.00,1.00 -0634,-030.00,+20.00,01.00,000.00,1.00 -0635,-030.00,+20.00,01.00,000.00,1.00 -0636,-030.00,+20.00,01.00,000.00,1.00 -0637,-030.00,+20.00,01.00,000.00,1.00 -0638,-030.00,+20.00,01.00,000.00,1.00 -0639,-030.00,+20.00,01.00,000.00,1.00 -0640,-030.00,+20.00,01.00,000.00,1.00 -0641,-030.00,+20.00,01.00,000.00,1.00 -0642,-030.00,+20.00,01.00,000.00,1.00 -0643,-030.00,+20.00,01.00,000.00,1.00 -0644,-030.00,+20.00,01.00,000.00,1.00 -0645,-030.00,+20.00,01.00,000.00,1.00 -0646,-030.00,+20.00,01.00,000.00,1.00 -0647,-030.00,+20.00,01.00,000.00,1.00 -0648,-030.00,+20.00,01.00,000.00,1.00 -0649,-030.00,+20.00,01.00,000.00,1.00 -0650,-030.00,+20.00,01.00,000.00,1.00 -0651,-030.00,+20.00,01.00,000.00,1.00 -0652,-030.00,+20.00,01.00,000.00,1.00 -0653,-030.00,+20.00,01.00,000.00,1.00 -0654,-030.00,+20.00,01.00,000.00,1.00 -0655,-030.00,+20.00,01.00,000.00,1.00 -0656,-030.00,+20.00,01.00,000.00,1.00 -0657,-030.00,+20.00,01.00,000.00,1.00 -0658,-030.00,+20.00,01.00,000.00,1.00 -0659,-030.00,+20.00,01.00,000.00,1.00 -0660,-030.00,+20.00,01.00,000.00,1.00 -0661,-030.00,+20.00,01.00,000.00,1.00 -0662,-030.00,+20.00,01.00,000.00,1.00 -0663,-030.00,+20.00,01.00,000.00,1.00 -0664,-030.00,+20.00,01.00,000.00,1.00 -0665,-030.00,+20.00,01.00,000.00,1.00 -0666,-030.00,+20.00,01.00,000.00,1.00 -0667,-030.00,+20.00,01.00,000.00,1.00 -0668,-030.00,+20.00,01.00,000.00,1.00 -0669,-030.00,+20.00,01.00,000.00,1.00 -0670,-030.00,+20.00,01.00,000.00,1.00 -0671,-030.00,+20.00,01.00,000.00,1.00 -0672,-030.00,+20.00,01.00,000.00,1.00 -0673,-030.00,+20.00,01.00,000.00,1.00 -0674,-030.00,+20.00,01.00,000.00,1.00 -0675,-030.00,+20.00,01.00,000.00,1.00 -0676,-030.00,+20.00,01.00,000.00,1.00 -0677,-030.00,+20.00,01.00,000.00,1.00 -0678,-030.00,+20.00,01.00,000.00,1.00 -0679,-030.00,+20.00,01.00,000.00,1.00 -0680,-030.00,+20.00,01.00,000.00,1.00 -0681,-030.00,+20.00,01.00,000.00,1.00 -0682,-030.00,+20.00,01.00,000.00,1.00 -0683,-030.00,+20.00,01.00,000.00,1.00 -0684,-030.00,+20.00,01.00,000.00,1.00 -0685,-030.00,+20.00,01.00,000.00,1.00 -0686,-030.00,+20.00,01.00,000.00,1.00 -0687,-030.00,+20.00,01.00,000.00,1.00 -0688,-030.00,+20.00,01.00,000.00,1.00 -0689,-030.00,+20.00,01.00,000.00,1.00 -0690,-030.00,+20.00,01.00,000.00,1.00 -0691,-030.00,+20.00,01.00,000.00,1.00 -0692,-030.00,+20.00,01.00,000.00,1.00 -0693,-030.00,+20.00,01.00,000.00,1.00 -0694,-030.00,+20.00,01.00,000.00,1.00 -0695,-030.00,+20.00,01.00,000.00,1.00 -0696,-030.00,+20.00,01.00,000.00,1.00 -0697,-030.00,+20.00,01.00,000.00,1.00 -0698,-030.00,+20.00,01.00,000.00,1.00 -0699,-030.00,+20.00,01.00,000.00,1.00 -0700,-030.00,+20.00,01.00,000.00,1.00 -0701,-030.00,+20.00,01.00,000.00,1.00 -0702,-030.00,+20.00,01.00,000.00,1.00 -0703,-030.00,+20.00,01.00,000.00,1.00 -0704,-030.00,+20.00,01.00,000.00,1.00 -0705,-030.00,+20.00,01.00,000.00,1.00 -0706,-030.00,+20.00,01.00,000.00,1.00 -0707,-030.00,+20.00,01.00,000.00,1.00 -0708,-030.00,+20.00,01.00,000.00,1.00 -0709,-030.00,+20.00,01.00,000.00,1.00 -0710,-030.00,+20.00,01.00,000.00,1.00 -0711,-030.00,+20.00,01.00,000.00,1.00 -0712,-030.00,+20.00,01.00,000.00,1.00 -0713,-030.00,+20.00,01.00,000.00,1.00 -0714,-030.00,+20.00,01.00,000.00,1.00 -0715,-030.00,+20.00,01.00,000.00,1.00 -0716,-030.00,+20.00,01.00,000.00,1.00 -0717,-030.00,+20.00,01.00,000.00,1.00 -0718,-030.00,+20.00,01.00,000.00,1.00 -0719,-030.00,+20.00,01.00,000.00,1.00 -0720,-030.00,+20.00,01.00,000.00,1.00 -0721,-030.00,+20.00,01.00,000.00,1.00 -0722,-030.00,+20.00,01.00,000.00,1.00 -0723,-030.00,+20.00,01.00,000.00,1.00 -0724,-030.00,+20.00,01.00,000.00,1.00 -0725,-030.00,+20.00,01.00,000.00,1.00 -0726,-030.00,+20.00,01.00,000.00,1.00 -0727,-030.00,+20.00,01.00,000.00,1.00 -0728,-030.00,+20.00,01.00,000.00,1.00 -0729,-030.00,+20.00,01.00,000.00,1.00 -0730,-030.00,+20.00,01.00,000.00,1.00 -0731,-030.00,+20.00,01.00,000.00,1.00 -0732,-030.00,+20.00,01.00,000.00,1.00 -0733,-030.00,+20.00,01.00,000.00,1.00 -0734,-030.00,+20.00,01.00,000.00,1.00 -0735,-030.00,+20.00,01.00,000.00,1.00 -0736,-030.00,+20.00,01.00,000.00,1.00 -0737,-030.00,+20.00,01.00,000.00,1.00 -0738,-030.00,+20.00,01.00,000.00,1.00 -0739,-030.00,+20.00,01.00,000.00,1.00 -0740,-030.00,+20.00,01.00,000.00,1.00 -0741,-030.00,+20.00,01.00,000.00,1.00 -0742,-030.00,+20.00,01.00,000.00,1.00 -0743,-030.00,+20.00,01.00,000.00,1.00 -0744,-030.00,+20.00,01.00,000.00,1.00 -0745,-030.00,+20.00,01.00,000.00,1.00 -0746,-030.00,+20.00,01.00,000.00,1.00 -0747,-030.00,+20.00,01.00,000.00,1.00 -0748,-030.00,+20.00,01.00,000.00,1.00 -0749,-030.00,+20.00,01.00,000.00,1.00 -0750,-030.00,+20.00,01.00,000.00,1.00 -0751,-030.00,+20.00,01.00,000.00,1.00 -0752,-030.00,+20.00,01.00,000.00,1.00 -0753,-030.00,+20.00,01.00,000.00,1.00 -0754,-030.00,+20.00,01.00,000.00,1.00 -0755,-030.00,+20.00,01.00,000.00,1.00 -0756,-030.00,+20.00,01.00,000.00,1.00 -0757,-030.00,+20.00,01.00,000.00,1.00 -0758,-030.00,+20.00,01.00,000.00,1.00 -0759,-030.00,+20.00,01.00,000.00,1.00 -0760,-030.00,+20.00,01.00,000.00,1.00 -0761,-030.00,+20.00,01.00,000.00,1.00 -0762,-030.00,+20.00,01.00,000.00,1.00 -0763,-030.00,+20.00,01.00,000.00,1.00 -0764,-030.00,+20.00,01.00,000.00,1.00 -0765,-030.00,+20.00,01.00,000.00,1.00 -0766,-030.00,+20.00,01.00,000.00,1.00 -0767,-030.00,+20.00,01.00,000.00,1.00 -0768,-030.00,+20.00,01.00,000.00,1.00 -0769,-030.00,+20.00,01.00,000.00,1.00 -0770,-030.00,+20.00,01.00,000.00,1.00 -0771,-030.00,+20.00,01.00,000.00,1.00 -0772,-030.00,+20.00,01.00,000.00,1.00 -0773,-030.00,+20.00,01.00,000.00,1.00 -0774,-030.00,+20.00,01.00,000.00,1.00 -0775,-030.00,+20.00,01.00,000.00,1.00 -0776,-030.00,+20.00,01.00,000.00,1.00 -0777,-030.00,+20.00,01.00,000.00,1.00 -0778,-030.00,+20.00,01.00,000.00,1.00 -0779,-030.00,+20.00,01.00,000.00,1.00 -0780,-030.00,+20.00,01.00,000.00,1.00 -0781,-030.00,+20.00,01.00,000.00,1.00 -0782,-030.00,+20.00,01.00,000.00,1.00 -0783,-030.00,+20.00,01.00,000.00,1.00 -0784,-030.00,+20.00,01.00,000.00,1.00 -0785,-030.00,+20.00,01.00,000.00,1.00 -0786,-030.00,+20.00,01.00,000.00,1.00 -0787,-030.00,+20.00,01.00,000.00,1.00 -0788,-030.00,+20.00,01.00,000.00,1.00 -0789,-030.00,+20.00,01.00,000.00,1.00 -0790,-030.00,+20.00,01.00,000.00,1.00 -0791,-030.00,+20.00,01.00,000.00,1.00 -0792,-030.00,+20.00,01.00,000.00,1.00 -0793,-030.00,+20.00,01.00,000.00,1.00 -0794,-030.00,+20.00,01.00,000.00,1.00 -0795,-030.00,+20.00,01.00,000.00,1.00 -0796,-030.00,+20.00,01.00,000.00,1.00 -0797,-030.00,+20.00,01.00,000.00,1.00 -0798,-030.00,+20.00,01.00,000.00,1.00 -0799,-030.00,+20.00,01.00,000.00,1.00 -0800,-030.00,+20.00,01.00,000.00,1.00 -0801,-030.00,+20.00,01.00,000.00,1.00 -0802,-030.00,+20.00,01.00,000.00,1.00 -0803,-030.00,+20.00,01.00,000.00,1.00 -0804,-030.00,+20.00,01.00,000.00,1.00 -0805,-030.00,+20.00,01.00,000.00,1.00 -0806,-030.00,+20.00,01.00,000.00,1.00 -0807,-030.00,+20.00,01.00,000.00,1.00 -0808,-030.00,+20.00,01.00,000.00,1.00 -0809,-030.00,+20.00,01.00,000.00,1.00 -0810,-030.00,+20.00,01.00,000.00,1.00 -0811,-030.00,+20.00,01.00,000.00,1.00 -0812,-030.00,+20.00,01.00,000.00,1.00 -0813,-030.00,+20.00,01.00,000.00,1.00 -0814,-030.00,+20.00,01.00,000.00,1.00 -0815,-030.00,+20.00,01.00,000.00,1.00 -0816,-030.00,+20.00,01.00,000.00,1.00 -0817,-030.00,+20.00,01.00,000.00,1.00 -0818,-030.00,+20.00,01.00,000.00,1.00 -0819,-030.00,+20.00,01.00,000.00,1.00 -0820,-030.00,+20.00,01.00,000.00,1.00 -0821,-030.00,+20.00,01.00,000.00,1.00 -0822,-030.00,+20.00,01.00,000.00,1.00 -0823,-030.00,+20.00,01.00,000.00,1.00 -0824,-030.00,+20.00,01.00,000.00,1.00 -0825,-030.00,+20.00,01.00,000.00,1.00 -0826,-030.00,+20.00,01.00,000.00,1.00 -0827,-030.00,+20.00,01.00,000.00,1.00 -0828,-030.00,+20.00,01.00,000.00,1.00 -0829,-030.00,+20.00,01.00,000.00,1.00 -0830,-030.00,+20.00,01.00,000.00,1.00 -0831,-030.00,+20.00,01.00,000.00,1.00 -0832,-030.00,+20.00,01.00,000.00,1.00 -0833,-030.00,+20.00,01.00,000.00,1.00 -0834,-030.00,+20.00,01.00,000.00,1.00 -0835,-030.00,+20.00,01.00,000.00,1.00 -0836,-030.00,+20.00,01.00,000.00,1.00 -0837,-030.00,+20.00,01.00,000.00,1.00 -0838,-030.00,+20.00,01.00,000.00,1.00 -0839,-030.00,+20.00,01.00,000.00,1.00 -0840,-030.00,+20.00,01.00,000.00,1.00 -0841,-030.00,+20.00,01.00,000.00,1.00 -0842,-030.00,+20.00,01.00,000.00,1.00 -0843,-030.00,+20.00,01.00,000.00,1.00 -0844,-030.00,+20.00,01.00,000.00,1.00 -0845,-030.00,+20.00,01.00,000.00,1.00 -0846,-030.00,+20.00,01.00,000.00,1.00 -0847,-030.00,+20.00,01.00,000.00,1.00 -0848,-030.00,+20.00,01.00,000.00,1.00 -0849,-030.00,+20.00,01.00,000.00,1.00 -0850,-030.00,+20.00,01.00,000.00,1.00 -0851,-030.00,+20.00,01.00,000.00,1.00 -0852,-030.00,+20.00,01.00,000.00,1.00 -0853,-030.00,+20.00,01.00,000.00,1.00 -0854,-030.00,+20.00,01.00,000.00,1.00 -0855,-030.00,+20.00,01.00,000.00,1.00 -0856,-030.00,+20.00,01.00,000.00,1.00 -0857,-030.00,+20.00,01.00,000.00,1.00 -0858,-030.00,+20.00,01.00,000.00,1.00 -0859,-030.00,+20.00,01.00,000.00,1.00 -0860,-030.00,+20.00,01.00,000.00,1.00 -0861,-030.00,+20.00,01.00,000.00,1.00 -0862,-030.00,+20.00,01.00,000.00,1.00 -0863,-030.00,+20.00,01.00,000.00,1.00 -0864,-030.00,+20.00,01.00,000.00,1.00 -0865,-030.00,+20.00,01.00,000.00,1.00 -0866,-030.00,+20.00,01.00,000.00,1.00 -0867,-030.00,+20.00,01.00,000.00,1.00 -0868,-030.00,+20.00,01.00,000.00,1.00 -0869,-030.00,+20.00,01.00,000.00,1.00 -0870,-030.00,+20.00,01.00,000.00,1.00 -0871,-030.00,+20.00,01.00,000.00,1.00 -0872,-030.00,+20.00,01.00,000.00,1.00 -0873,-030.00,+20.00,01.00,000.00,1.00 -0874,-030.00,+20.00,01.00,000.00,1.00 -0875,-030.00,+20.00,01.00,000.00,1.00 -0876,-030.00,+20.00,01.00,000.00,1.00 -0877,-030.00,+20.00,01.00,000.00,1.00 -0878,-030.00,+20.00,01.00,000.00,1.00 -0879,-030.00,+20.00,01.00,000.00,1.00 -0880,-030.00,+20.00,01.00,000.00,1.00 -0881,-030.00,+20.00,01.00,000.00,1.00 -0882,-030.00,+20.00,01.00,000.00,1.00 -0883,-030.00,+20.00,01.00,000.00,1.00 -0884,-030.00,+20.00,01.00,000.00,1.00 -0885,-030.00,+20.00,01.00,000.00,1.00 -0886,-030.00,+20.00,01.00,000.00,1.00 -0887,-030.00,+20.00,01.00,000.00,1.00 -0888,-030.00,+20.00,01.00,000.00,1.00 -0889,-030.00,+20.00,01.00,000.00,1.00 -0890,-030.00,+20.00,01.00,000.00,1.00 -0891,-030.00,+20.00,01.00,000.00,1.00 -0892,-030.00,+20.00,01.00,000.00,1.00 -0893,-030.00,+20.00,01.00,000.00,1.00 -0894,-030.00,+20.00,01.00,000.00,1.00 -0895,-030.00,+20.00,01.00,000.00,1.00 -0896,-030.00,+20.00,01.00,000.00,1.00 -0897,-030.00,+20.00,01.00,000.00,1.00 -0898,-030.00,+20.00,01.00,000.00,1.00 -0899,-030.00,+20.00,01.00,000.00,1.00 -0900,-030.00,+20.00,01.00,000.00,1.00 -0901,-030.00,+20.00,01.00,000.00,1.00 -0902,-030.00,+20.00,01.00,000.00,1.00 -0903,-030.00,+20.00,01.00,000.00,1.00 -0904,-030.00,+20.00,01.00,000.00,1.00 -0905,-030.00,+20.00,01.00,000.00,1.00 -0906,-030.00,+20.00,01.00,000.00,1.00 -0907,-030.00,+20.00,01.00,000.00,1.00 -0908,-030.00,+20.00,01.00,000.00,1.00 -0909,-030.00,+20.00,01.00,000.00,1.00 -0910,-030.00,+20.00,01.00,000.00,1.00 -0911,-030.00,+20.00,01.00,000.00,1.00 -0912,-030.00,+20.00,01.00,000.00,1.00 -0913,-030.00,+20.00,01.00,000.00,1.00 -0914,-030.00,+20.00,01.00,000.00,1.00 -0915,-030.00,+20.00,01.00,000.00,1.00 -0916,-030.00,+20.00,01.00,000.00,1.00 -0917,-030.00,+20.00,01.00,000.00,1.00 -0918,-030.00,+20.00,01.00,000.00,1.00 -0919,-030.00,+20.00,01.00,000.00,1.00 -0920,-030.00,+20.00,01.00,000.00,1.00 -0921,-030.00,+20.00,01.00,000.00,1.00 -0922,-030.00,+20.00,01.00,000.00,1.00 -0923,-030.00,+20.00,01.00,000.00,1.00 -0924,-030.00,+20.00,01.00,000.00,1.00 -0925,-030.00,+20.00,01.00,000.00,1.00 -0926,-030.00,+20.00,01.00,000.00,1.00 -0927,-030.00,+20.00,01.00,000.00,1.00 -0928,-030.00,+20.00,01.00,000.00,1.00 -0929,-030.00,+20.00,01.00,000.00,1.00 -0930,-030.00,+20.00,01.00,000.00,1.00 -0931,-030.00,+20.00,01.00,000.00,1.00 -0932,-030.00,+20.00,01.00,000.00,1.00 -0933,-030.00,+20.00,01.00,000.00,1.00 -0934,-030.00,+20.00,01.00,000.00,1.00 -0935,-030.00,+20.00,01.00,000.00,1.00 -0936,-030.00,+20.00,01.00,000.00,1.00 -0937,-030.00,+20.00,01.00,000.00,1.00 -0938,-030.00,+20.00,01.00,000.00,1.00 -0939,-030.00,+20.00,01.00,000.00,1.00 -0940,-030.00,+20.00,01.00,000.00,1.00 -0941,-030.00,+20.00,01.00,000.00,1.00 -0942,-030.00,+20.00,01.00,000.00,1.00 -0943,-030.00,+20.00,01.00,000.00,1.00 -0944,-030.00,+20.00,01.00,000.00,1.00 -0945,-030.00,+20.00,01.00,000.00,1.00 -0946,-030.00,+20.00,01.00,000.00,1.00 -0947,-030.00,+20.00,01.00,000.00,1.00 -0948,-030.00,+20.00,01.00,000.00,1.00 -0949,-030.00,+20.00,01.00,000.00,1.00 -0950,-030.00,+20.00,01.00,000.00,1.00 -0951,-030.00,+20.00,01.00,000.00,1.00 -0952,-030.00,+20.00,01.00,000.00,1.00 -0953,-030.00,+20.00,01.00,000.00,1.00 -0954,-030.00,+20.00,01.00,000.00,1.00 -0955,-030.00,+20.00,01.00,000.00,1.00 -0956,-030.00,+20.00,01.00,000.00,1.00 -0957,-030.00,+20.00,01.00,000.00,1.00 -0958,-030.00,+20.00,01.00,000.00,1.00 -0959,-030.00,+20.00,01.00,000.00,1.00 -0960,-030.00,+20.00,01.00,000.00,1.00 -0961,-030.00,+20.00,01.00,000.00,1.00 -0962,-030.00,+20.00,01.00,000.00,1.00 -0963,-030.00,+20.00,01.00,000.00,1.00 -0964,-030.00,+20.00,01.00,000.00,1.00 -0965,-030.00,+20.00,01.00,000.00,1.00 -0966,-030.00,+20.00,01.00,000.00,1.00 -0967,-030.00,+20.00,01.00,000.00,1.00 -0968,-030.00,+20.00,01.00,000.00,1.00 -0969,-030.00,+20.00,01.00,000.00,1.00 -0970,-030.00,+20.00,01.00,000.00,1.00 -0971,-030.00,+20.00,01.00,000.00,1.00 -0972,-030.00,+20.00,01.00,000.00,1.00 -0973,-030.00,+20.00,01.00,000.00,1.00 -0974,-030.00,+20.00,01.00,000.00,1.00 -0975,-030.00,+20.00,01.00,000.00,1.00 -0976,-030.00,+20.00,01.00,000.00,1.00 -0977,-030.00,+20.00,01.00,000.00,1.00 -0978,-030.00,+20.00,01.00,000.00,1.00 -0979,-030.00,+20.00,01.00,000.00,1.00 -0980,-030.00,+20.00,01.00,000.00,1.00 -0981,-030.00,+20.00,01.00,000.00,1.00 -0982,-030.00,+20.00,01.00,000.00,1.00 -0983,-030.00,+20.00,01.00,000.00,1.00 -0984,-030.00,+20.00,01.00,000.00,1.00 -0985,-030.00,+20.00,01.00,000.00,1.00 -0986,-030.00,+20.00,01.00,000.00,1.00 -0987,-030.00,+20.00,01.00,000.00,1.00 -0988,-030.00,+20.00,01.00,000.00,1.00 -0989,-030.00,+20.00,01.00,000.00,1.00 -0990,-030.00,+20.00,01.00,000.00,1.00 -0991,-030.00,+20.00,01.00,000.00,1.00 -0992,-030.00,+20.00,01.00,000.00,1.00 -0993,-030.00,+20.00,01.00,000.00,1.00 -0994,-030.00,+20.00,01.00,000.00,1.00 -0995,-030.00,+20.00,01.00,000.00,1.00 -0996,-030.00,+20.00,01.00,000.00,1.00 -0997,-030.00,+20.00,01.00,000.00,1.00 -0998,-030.00,+20.00,01.00,000.00,1.00 -0999,-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 +-030.00,+20.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t05_ch1.csv b/scripts/td_object_renderer/metadata/csv/t05_ch1.csv index 53be7317cf..4c841ef6d6 100644 --- a/scripts/td_object_renderer/metadata/csv/t05_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t05_ch1.csv @@ -1,1000 +1,1000 @@ -0000,-060.00,+00.00,01.00,000.00,1.00 -0001,-060.00,+00.00,01.00,000.00,1.00 -0002,-060.00,+00.00,01.00,000.00,1.00 -0003,-060.00,+00.00,01.00,000.00,1.00 -0004,-060.00,+00.00,01.00,000.00,1.00 -0005,-060.00,+00.00,01.00,000.00,1.00 -0006,-060.00,+00.00,01.00,000.00,1.00 -0007,-060.00,+00.00,01.00,000.00,1.00 -0008,-060.00,+00.00,01.00,000.00,1.00 -0009,-060.00,+00.00,01.00,000.00,1.00 -0010,-060.00,+00.00,01.00,000.00,1.00 -0011,-060.00,+00.00,01.00,000.00,1.00 -0012,-060.00,+00.00,01.00,000.00,1.00 -0013,-060.00,+00.00,01.00,000.00,1.00 -0014,-060.00,+00.00,01.00,000.00,1.00 -0015,-060.00,+00.00,01.00,000.00,1.00 -0016,-060.00,+00.00,01.00,000.00,1.00 -0017,-060.00,+00.00,01.00,000.00,1.00 -0018,-060.00,+00.00,01.00,000.00,1.00 -0019,-060.00,+00.00,01.00,000.00,1.00 -0020,-060.00,+00.00,01.00,000.00,1.00 -0021,-060.00,+00.00,01.00,000.00,1.00 -0022,-060.00,+00.00,01.00,000.00,1.00 -0023,-060.00,+00.00,01.00,000.00,1.00 -0024,-060.00,+00.00,01.00,000.00,1.00 -0025,-060.00,+00.00,01.00,000.00,1.00 -0026,-060.00,+00.00,01.00,000.00,1.00 -0027,-060.00,+00.00,01.00,000.00,1.00 -0028,-060.00,+00.00,01.00,000.00,1.00 -0029,-060.00,+00.00,01.00,000.00,1.00 -0030,-060.00,+00.00,01.00,000.00,1.00 -0031,-060.00,+00.00,01.00,000.00,1.00 -0032,-060.00,+00.00,01.00,000.00,1.00 -0033,-060.00,+00.00,01.00,000.00,1.00 -0034,-060.00,+00.00,01.00,000.00,1.00 -0035,-060.00,+00.00,01.00,000.00,1.00 -0036,-060.00,+00.00,01.00,000.00,1.00 -0037,-060.00,+00.00,01.00,000.00,1.00 -0038,-060.00,+00.00,01.00,000.00,1.00 -0039,-060.00,+00.00,01.00,000.00,1.00 -0040,-060.00,+00.00,01.00,000.00,1.00 -0041,-060.00,+00.00,01.00,000.00,1.00 -0042,-060.00,+00.00,01.00,000.00,1.00 -0043,-060.00,+00.00,01.00,000.00,1.00 -0044,-060.00,+00.00,01.00,000.00,1.00 -0045,-060.00,+00.00,01.00,000.00,1.00 -0046,-060.00,+00.00,01.00,000.00,1.00 -0047,-060.00,+00.00,01.00,000.00,1.00 -0048,-060.00,+00.00,01.00,000.00,1.00 -0049,-060.00,+00.00,01.00,000.00,1.00 -0050,-060.00,+00.00,01.00,000.00,1.00 -0051,-060.00,+00.00,01.00,000.00,1.00 -0052,-060.00,+00.00,01.00,000.00,1.00 -0053,-060.00,+00.00,01.00,000.00,1.00 -0054,-060.00,+00.00,01.00,000.00,1.00 -0055,-060.00,+00.00,01.00,000.00,1.00 -0056,-060.00,+00.00,01.00,000.00,1.00 -0057,-060.00,+00.00,01.00,000.00,1.00 -0058,-060.00,+00.00,01.00,000.00,1.00 -0059,-060.00,+00.00,01.00,000.00,1.00 -0060,-060.00,+00.00,01.00,000.00,1.00 -0061,-060.00,+00.00,01.00,000.00,1.00 -0062,-060.00,+00.00,01.00,000.00,1.00 -0063,-060.00,+00.00,01.00,000.00,1.00 -0064,-060.00,+00.00,01.00,000.00,1.00 -0065,-060.00,+00.00,01.00,000.00,1.00 -0066,-060.00,+00.00,01.00,000.00,1.00 -0067,-060.00,+00.00,01.00,000.00,1.00 -0068,-060.00,+00.00,01.00,000.00,1.00 -0069,-060.00,+00.00,01.00,000.00,1.00 -0070,-060.00,+00.00,01.00,000.00,1.00 -0071,-060.00,+00.00,01.00,000.00,1.00 -0072,-060.00,+00.00,01.00,000.00,1.00 -0073,-060.00,+00.00,01.00,000.00,1.00 -0074,-060.00,+00.00,01.00,000.00,1.00 -0075,-060.00,+00.00,01.00,000.00,1.00 -0076,-060.00,+00.00,01.00,000.00,1.00 -0077,-060.00,+00.00,01.00,000.00,1.00 -0078,-060.00,+00.00,01.00,000.00,1.00 -0079,-060.00,+00.00,01.00,000.00,1.00 -0080,-060.00,+00.00,01.00,000.00,1.00 -0081,-060.00,+00.00,01.00,000.00,1.00 -0082,-060.00,+00.00,01.00,000.00,1.00 -0083,-060.00,+00.00,01.00,000.00,1.00 -0084,-060.00,+00.00,01.00,000.00,1.00 -0085,-060.00,+00.00,01.00,000.00,1.00 -0086,-060.00,+00.00,01.00,000.00,1.00 -0087,-060.00,+00.00,01.00,000.00,1.00 -0088,-060.00,+00.00,01.00,000.00,1.00 -0089,-060.00,+00.00,01.00,000.00,1.00 -0090,-060.00,+00.00,01.00,000.00,1.00 -0091,-060.00,+00.00,01.00,000.00,1.00 -0092,-060.00,+00.00,01.00,000.00,1.00 -0093,-060.00,+00.00,01.00,000.00,1.00 -0094,-060.00,+00.00,01.00,000.00,1.00 -0095,-060.00,+00.00,01.00,000.00,1.00 -0096,-060.00,+00.00,01.00,000.00,1.00 -0097,-060.00,+00.00,01.00,000.00,1.00 -0098,-060.00,+00.00,01.00,000.00,1.00 -0099,-060.00,+00.00,01.00,000.00,1.00 -0100,-060.00,+00.00,01.00,000.00,1.00 -0101,-060.00,+00.00,01.00,000.00,1.00 -0102,-060.00,+00.00,01.00,000.00,1.00 -0103,-060.00,+00.00,01.00,000.00,1.00 -0104,-060.00,+00.00,01.00,000.00,1.00 -0105,-060.00,+00.00,01.00,000.00,1.00 -0106,-060.00,+00.00,01.00,000.00,1.00 -0107,-060.00,+00.00,01.00,000.00,1.00 -0108,-060.00,+00.00,01.00,000.00,1.00 -0109,-060.00,+00.00,01.00,000.00,1.00 -0110,-060.00,+00.00,01.00,000.00,1.00 -0111,-060.00,+00.00,01.00,000.00,1.00 -0112,-060.00,+00.00,01.00,000.00,1.00 -0113,-060.00,+00.00,01.00,000.00,1.00 -0114,-060.00,+00.00,01.00,000.00,1.00 -0115,-060.00,+00.00,01.00,000.00,1.00 -0116,-060.00,+00.00,01.00,000.00,1.00 -0117,-060.00,+00.00,01.00,000.00,1.00 -0118,-060.00,+00.00,01.00,000.00,1.00 -0119,-060.00,+00.00,01.00,000.00,1.00 -0120,-060.00,+00.00,01.00,000.00,1.00 -0121,-060.00,+00.00,01.00,000.00,1.00 -0122,-060.00,+00.00,01.00,000.00,1.00 -0123,-060.00,+00.00,01.00,000.00,1.00 -0124,-060.00,+00.00,01.00,000.00,1.00 -0125,-060.00,+00.00,01.00,000.00,1.00 -0126,-060.00,+00.00,01.00,000.00,1.00 -0127,-060.00,+00.00,01.00,000.00,1.00 -0128,-060.00,+00.00,01.00,000.00,1.00 -0129,-060.00,+00.00,01.00,000.00,1.00 -0130,-060.00,+00.00,01.00,000.00,1.00 -0131,-060.00,+00.00,01.00,000.00,1.00 -0132,-060.00,+00.00,01.00,000.00,1.00 -0133,-060.00,+00.00,01.00,000.00,1.00 -0134,-060.00,+00.00,01.00,000.00,1.00 -0135,-060.00,+00.00,01.00,000.00,1.00 -0136,-060.00,+00.00,01.00,000.00,1.00 -0137,-060.00,+00.00,01.00,000.00,1.00 -0138,-060.00,+00.00,01.00,000.00,1.00 -0139,-060.00,+00.00,01.00,000.00,1.00 -0140,-060.00,+00.00,01.00,000.00,1.00 -0141,-060.00,+00.00,01.00,000.00,1.00 -0142,-060.00,+00.00,01.00,000.00,1.00 -0143,-060.00,+00.00,01.00,000.00,1.00 -0144,-060.00,+00.00,01.00,000.00,1.00 -0145,-060.00,+00.00,01.00,000.00,1.00 -0146,-060.00,+00.00,01.00,000.00,1.00 -0147,-060.00,+00.00,01.00,000.00,1.00 -0148,-060.00,+00.00,01.00,000.00,1.00 -0149,-060.00,+00.00,01.00,000.00,1.00 -0150,-060.00,+00.00,01.00,000.00,1.00 -0151,-060.00,+00.00,01.00,000.00,1.00 -0152,-060.00,+00.00,01.00,000.00,1.00 -0153,-060.00,+00.00,01.00,000.00,1.00 -0154,-060.00,+00.00,01.00,000.00,1.00 -0155,-060.00,+00.00,01.00,000.00,1.00 -0156,-060.00,+00.00,01.00,000.00,1.00 -0157,-060.00,+00.00,01.00,000.00,1.00 -0158,-060.00,+00.00,01.00,000.00,1.00 -0159,-060.00,+00.00,01.00,000.00,1.00 -0160,-060.00,+00.00,01.00,000.00,1.00 -0161,-060.00,+00.00,01.00,000.00,1.00 -0162,-060.00,+00.00,01.00,000.00,1.00 -0163,-060.00,+00.00,01.00,000.00,1.00 -0164,-060.00,+00.00,01.00,000.00,1.00 -0165,-060.00,+00.00,01.00,000.00,1.00 -0166,-060.00,+00.00,01.00,000.00,1.00 -0167,-060.00,+00.00,01.00,000.00,1.00 -0168,-060.00,+00.00,01.00,000.00,1.00 -0169,-060.00,+00.00,01.00,000.00,1.00 -0170,-060.00,+00.00,01.00,000.00,1.00 -0171,-060.00,+00.00,01.00,000.00,1.00 -0172,-060.00,+00.00,01.00,000.00,1.00 -0173,-060.00,+00.00,01.00,000.00,1.00 -0174,-060.00,+00.00,01.00,000.00,1.00 -0175,-060.00,+00.00,01.00,000.00,1.00 -0176,-060.00,+00.00,01.00,000.00,1.00 -0177,-060.00,+00.00,01.00,000.00,1.00 -0178,-060.00,+00.00,01.00,000.00,1.00 -0179,-060.00,+00.00,01.00,000.00,1.00 -0180,-060.00,+00.00,01.00,000.00,1.00 -0181,-060.00,+00.00,01.00,000.00,1.00 -0182,-060.00,+00.00,01.00,000.00,1.00 -0183,-060.00,+00.00,01.00,000.00,1.00 -0184,-060.00,+00.00,01.00,000.00,1.00 -0185,-060.00,+00.00,01.00,000.00,1.00 -0186,-060.00,+00.00,01.00,000.00,1.00 -0187,-060.00,+00.00,01.00,000.00,1.00 -0188,-060.00,+00.00,01.00,000.00,1.00 -0189,-060.00,+00.00,01.00,000.00,1.00 -0190,-060.00,+00.00,01.00,000.00,1.00 -0191,-060.00,+00.00,01.00,000.00,1.00 -0192,-060.00,+00.00,01.00,000.00,1.00 -0193,-060.00,+00.00,01.00,000.00,1.00 -0194,-060.00,+00.00,01.00,000.00,1.00 -0195,-060.00,+00.00,01.00,000.00,1.00 -0196,-060.00,+00.00,01.00,000.00,1.00 -0197,-060.00,+00.00,01.00,000.00,1.00 -0198,-060.00,+00.00,01.00,000.00,1.00 -0199,-060.00,+00.00,01.00,000.00,1.00 -0200,-060.00,+00.00,01.00,000.00,1.00 -0201,-060.00,+00.00,01.00,000.00,1.00 -0202,-060.00,+00.00,01.00,000.00,1.00 -0203,-060.00,+00.00,01.00,000.00,1.00 -0204,-060.00,+00.00,01.00,000.00,1.00 -0205,-060.00,+00.00,01.00,000.00,1.00 -0206,-060.00,+00.00,01.00,000.00,1.00 -0207,-060.00,+00.00,01.00,000.00,1.00 -0208,-060.00,+00.00,01.00,000.00,1.00 -0209,-060.00,+00.00,01.00,000.00,1.00 -0210,-060.00,+00.00,01.00,000.00,1.00 -0211,-060.00,+00.00,01.00,000.00,1.00 -0212,-060.00,+00.00,01.00,000.00,1.00 -0213,-060.00,+00.00,01.00,000.00,1.00 -0214,-060.00,+00.00,01.00,000.00,1.00 -0215,-060.00,+00.00,01.00,000.00,1.00 -0216,-060.00,+00.00,01.00,000.00,1.00 -0217,-060.00,+00.00,01.00,000.00,1.00 -0218,-060.00,+00.00,01.00,000.00,1.00 -0219,-060.00,+00.00,01.00,000.00,1.00 -0220,-060.00,+00.00,01.00,000.00,1.00 -0221,-060.00,+00.00,01.00,000.00,1.00 -0222,-060.00,+00.00,01.00,000.00,1.00 -0223,-060.00,+00.00,01.00,000.00,1.00 -0224,-060.00,+00.00,01.00,000.00,1.00 -0225,-060.00,+00.00,01.00,000.00,1.00 -0226,-060.00,+00.00,01.00,000.00,1.00 -0227,-060.00,+00.00,01.00,000.00,1.00 -0228,-060.00,+00.00,01.00,000.00,1.00 -0229,-060.00,+00.00,01.00,000.00,1.00 -0230,-060.00,+00.00,01.00,000.00,1.00 -0231,-060.00,+00.00,01.00,000.00,1.00 -0232,-060.00,+00.00,01.00,000.00,1.00 -0233,-060.00,+00.00,01.00,000.00,1.00 -0234,-060.00,+00.00,01.00,000.00,1.00 -0235,-060.00,+00.00,01.00,000.00,1.00 -0236,-060.00,+00.00,01.00,000.00,1.00 -0237,-060.00,+00.00,01.00,000.00,1.00 -0238,-060.00,+00.00,01.00,000.00,1.00 -0239,-060.00,+00.00,01.00,000.00,1.00 -0240,-060.00,+00.00,01.00,000.00,1.00 -0241,-060.00,+00.00,01.00,000.00,1.00 -0242,-060.00,+00.00,01.00,000.00,1.00 -0243,-060.00,+00.00,01.00,000.00,1.00 -0244,-060.00,+00.00,01.00,000.00,1.00 -0245,-060.00,+00.00,01.00,000.00,1.00 -0246,-060.00,+00.00,01.00,000.00,1.00 -0247,-060.00,+00.00,01.00,000.00,1.00 -0248,-060.00,+00.00,01.00,000.00,1.00 -0249,-060.00,+00.00,01.00,000.00,1.00 -0250,-060.00,+00.00,01.00,000.00,1.00 -0251,-060.00,+00.00,01.00,000.00,1.00 -0252,-060.00,+00.00,01.00,000.00,1.00 -0253,-060.00,+00.00,01.00,000.00,1.00 -0254,-060.00,+00.00,01.00,000.00,1.00 -0255,-060.00,+00.00,01.00,000.00,1.00 -0256,-060.00,+00.00,01.00,000.00,1.00 -0257,-060.00,+00.00,01.00,000.00,1.00 -0258,-060.00,+00.00,01.00,000.00,1.00 -0259,-060.00,+00.00,01.00,000.00,1.00 -0260,-060.00,+00.00,01.00,000.00,1.00 -0261,-060.00,+00.00,01.00,000.00,1.00 -0262,-060.00,+00.00,01.00,000.00,1.00 -0263,-060.00,+00.00,01.00,000.00,1.00 -0264,-060.00,+00.00,01.00,000.00,1.00 -0265,-060.00,+00.00,01.00,000.00,1.00 -0266,-060.00,+00.00,01.00,000.00,1.00 -0267,-060.00,+00.00,01.00,000.00,1.00 -0268,-060.00,+00.00,01.00,000.00,1.00 -0269,-060.00,+00.00,01.00,000.00,1.00 -0270,-060.00,+00.00,01.00,000.00,1.00 -0271,-060.00,+00.00,01.00,000.00,1.00 -0272,-060.00,+00.00,01.00,000.00,1.00 -0273,-060.00,+00.00,01.00,000.00,1.00 -0274,-060.00,+00.00,01.00,000.00,1.00 -0275,-060.00,+00.00,01.00,000.00,1.00 -0276,-060.00,+00.00,01.00,000.00,1.00 -0277,-060.00,+00.00,01.00,000.00,1.00 -0278,-060.00,+00.00,01.00,000.00,1.00 -0279,-060.00,+00.00,01.00,000.00,1.00 -0280,-060.00,+00.00,01.00,000.00,1.00 -0281,-060.00,+00.00,01.00,000.00,1.00 -0282,-060.00,+00.00,01.00,000.00,1.00 -0283,-060.00,+00.00,01.00,000.00,1.00 -0284,-060.00,+00.00,01.00,000.00,1.00 -0285,-060.00,+00.00,01.00,000.00,1.00 -0286,-060.00,+00.00,01.00,000.00,1.00 -0287,-060.00,+00.00,01.00,000.00,1.00 -0288,-060.00,+00.00,01.00,000.00,1.00 -0289,-060.00,+00.00,01.00,000.00,1.00 -0290,-060.00,+00.00,01.00,000.00,1.00 -0291,-060.00,+00.00,01.00,000.00,1.00 -0292,-060.00,+00.00,01.00,000.00,1.00 -0293,-060.00,+00.00,01.00,000.00,1.00 -0294,-060.00,+00.00,01.00,000.00,1.00 -0295,-060.00,+00.00,01.00,000.00,1.00 -0296,-060.00,+00.00,01.00,000.00,1.00 -0297,-060.00,+00.00,01.00,000.00,1.00 -0298,-060.00,+00.00,01.00,000.00,1.00 -0299,-060.00,+00.00,01.00,000.00,1.00 -0300,-060.00,+00.00,01.00,000.00,1.00 -0301,-060.00,+00.00,01.00,000.00,1.00 -0302,-060.00,+00.00,01.00,000.00,1.00 -0303,-060.00,+00.00,01.00,000.00,1.00 -0304,-060.00,+00.00,01.00,000.00,1.00 -0305,-060.00,+00.00,01.00,000.00,1.00 -0306,-060.00,+00.00,01.00,000.00,1.00 -0307,-060.00,+00.00,01.00,000.00,1.00 -0308,-060.00,+00.00,01.00,000.00,1.00 -0309,-060.00,+00.00,01.00,000.00,1.00 -0310,-060.00,+00.00,01.00,000.00,1.00 -0311,-060.00,+00.00,01.00,000.00,1.00 -0312,-060.00,+00.00,01.00,000.00,1.00 -0313,-060.00,+00.00,01.00,000.00,1.00 -0314,-060.00,+00.00,01.00,000.00,1.00 -0315,-060.00,+00.00,01.00,000.00,1.00 -0316,-060.00,+00.00,01.00,000.00,1.00 -0317,-060.00,+00.00,01.00,000.00,1.00 -0318,-060.00,+00.00,01.00,000.00,1.00 -0319,-060.00,+00.00,01.00,000.00,1.00 -0320,-060.00,+00.00,01.00,000.00,1.00 -0321,-060.00,+00.00,01.00,000.00,1.00 -0322,-060.00,+00.00,01.00,000.00,1.00 -0323,-060.00,+00.00,01.00,000.00,1.00 -0324,-060.00,+00.00,01.00,000.00,1.00 -0325,-060.00,+00.00,01.00,000.00,1.00 -0326,-060.00,+00.00,01.00,000.00,1.00 -0327,-060.00,+00.00,01.00,000.00,1.00 -0328,-060.00,+00.00,01.00,000.00,1.00 -0329,-060.00,+00.00,01.00,000.00,1.00 -0330,-060.00,+00.00,01.00,000.00,1.00 -0331,-060.00,+00.00,01.00,000.00,1.00 -0332,-060.00,+00.00,01.00,000.00,1.00 -0333,-060.00,+00.00,01.00,000.00,1.00 -0334,-060.00,+00.00,01.00,000.00,1.00 -0335,-060.00,+00.00,01.00,000.00,1.00 -0336,-060.00,+00.00,01.00,000.00,1.00 -0337,-060.00,+00.00,01.00,000.00,1.00 -0338,-060.00,+00.00,01.00,000.00,1.00 -0339,-060.00,+00.00,01.00,000.00,1.00 -0340,-060.00,+00.00,01.00,000.00,1.00 -0341,-060.00,+00.00,01.00,000.00,1.00 -0342,-060.00,+00.00,01.00,000.00,1.00 -0343,-060.00,+00.00,01.00,000.00,1.00 -0344,-060.00,+00.00,01.00,000.00,1.00 -0345,-060.00,+00.00,01.00,000.00,1.00 -0346,-060.00,+00.00,01.00,000.00,1.00 -0347,-060.00,+00.00,01.00,000.00,1.00 -0348,-060.00,+00.00,01.00,000.00,1.00 -0349,-060.00,+00.00,01.00,000.00,1.00 -0350,-060.00,+00.00,01.00,000.00,1.00 -0351,-060.00,+00.00,01.00,000.00,1.00 -0352,-060.00,+00.00,01.00,000.00,1.00 -0353,-060.00,+00.00,01.00,000.00,1.00 -0354,-060.00,+00.00,01.00,000.00,1.00 -0355,-060.00,+00.00,01.00,000.00,1.00 -0356,-060.00,+00.00,01.00,000.00,1.00 -0357,-060.00,+00.00,01.00,000.00,1.00 -0358,-060.00,+00.00,01.00,000.00,1.00 -0359,-060.00,+00.00,01.00,000.00,1.00 -0360,-060.00,+00.00,01.00,000.00,1.00 -0361,-060.00,+00.00,01.00,000.00,1.00 -0362,-060.00,+00.00,01.00,000.00,1.00 -0363,-060.00,+00.00,01.00,000.00,1.00 -0364,-060.00,+00.00,01.00,000.00,1.00 -0365,-060.00,+00.00,01.00,000.00,1.00 -0366,-060.00,+00.00,01.00,000.00,1.00 -0367,-060.00,+00.00,01.00,000.00,1.00 -0368,-060.00,+00.00,01.00,000.00,1.00 -0369,-060.00,+00.00,01.00,000.00,1.00 -0370,-060.00,+00.00,01.00,000.00,1.00 -0371,-060.00,+00.00,01.00,000.00,1.00 -0372,-060.00,+00.00,01.00,000.00,1.00 -0373,-060.00,+00.00,01.00,000.00,1.00 -0374,-060.00,+00.00,01.00,000.00,1.00 -0375,-060.00,+00.00,01.00,000.00,1.00 -0376,-060.00,+00.00,01.00,000.00,1.00 -0377,-060.00,+00.00,01.00,000.00,1.00 -0378,-060.00,+00.00,01.00,000.00,1.00 -0379,-060.00,+00.00,01.00,000.00,1.00 -0380,-060.00,+00.00,01.00,000.00,1.00 -0381,-060.00,+00.00,01.00,000.00,1.00 -0382,-060.00,+00.00,01.00,000.00,1.00 -0383,-060.00,+00.00,01.00,000.00,1.00 -0384,-060.00,+00.00,01.00,000.00,1.00 -0385,-060.00,+00.00,01.00,000.00,1.00 -0386,-060.00,+00.00,01.00,000.00,1.00 -0387,-060.00,+00.00,01.00,000.00,1.00 -0388,-060.00,+00.00,01.00,000.00,1.00 -0389,-060.00,+00.00,01.00,000.00,1.00 -0390,-060.00,+00.00,01.00,000.00,1.00 -0391,-060.00,+00.00,01.00,000.00,1.00 -0392,-060.00,+00.00,01.00,000.00,1.00 -0393,-060.00,+00.00,01.00,000.00,1.00 -0394,-060.00,+00.00,01.00,000.00,1.00 -0395,-060.00,+00.00,01.00,000.00,1.00 -0396,-060.00,+00.00,01.00,000.00,1.00 -0397,-060.00,+00.00,01.00,000.00,1.00 -0398,-060.00,+00.00,01.00,000.00,1.00 -0399,-060.00,+00.00,01.00,000.00,1.00 -0400,-060.00,+00.00,01.00,000.00,1.00 -0401,-060.00,+00.00,01.00,000.00,1.00 -0402,-060.00,+00.00,01.00,000.00,1.00 -0403,-060.00,+00.00,01.00,000.00,1.00 -0404,-060.00,+00.00,01.00,000.00,1.00 -0405,-060.00,+00.00,01.00,000.00,1.00 -0406,-060.00,+00.00,01.00,000.00,1.00 -0407,-060.00,+00.00,01.00,000.00,1.00 -0408,-060.00,+00.00,01.00,000.00,1.00 -0409,-060.00,+00.00,01.00,000.00,1.00 -0410,-060.00,+00.00,01.00,000.00,1.00 -0411,-060.00,+00.00,01.00,000.00,1.00 -0412,-060.00,+00.00,01.00,000.00,1.00 -0413,-060.00,+00.00,01.00,000.00,1.00 -0414,-060.00,+00.00,01.00,000.00,1.00 -0415,-060.00,+00.00,01.00,000.00,1.00 -0416,-060.00,+00.00,01.00,000.00,1.00 -0417,-060.00,+00.00,01.00,000.00,1.00 -0418,-060.00,+00.00,01.00,000.00,1.00 -0419,-060.00,+00.00,01.00,000.00,1.00 -0420,-060.00,+00.00,01.00,000.00,1.00 -0421,-060.00,+00.00,01.00,000.00,1.00 -0422,-060.00,+00.00,01.00,000.00,1.00 -0423,-060.00,+00.00,01.00,000.00,1.00 -0424,-060.00,+00.00,01.00,000.00,1.00 -0425,-060.00,+00.00,01.00,000.00,1.00 -0426,-060.00,+00.00,01.00,000.00,1.00 -0427,-060.00,+00.00,01.00,000.00,1.00 -0428,-060.00,+00.00,01.00,000.00,1.00 -0429,-060.00,+00.00,01.00,000.00,1.00 -0430,-060.00,+00.00,01.00,000.00,1.00 -0431,-060.00,+00.00,01.00,000.00,1.00 -0432,-060.00,+00.00,01.00,000.00,1.00 -0433,-060.00,+00.00,01.00,000.00,1.00 -0434,-060.00,+00.00,01.00,000.00,1.00 -0435,-060.00,+00.00,01.00,000.00,1.00 -0436,-060.00,+00.00,01.00,000.00,1.00 -0437,-060.00,+00.00,01.00,000.00,1.00 -0438,-060.00,+00.00,01.00,000.00,1.00 -0439,-060.00,+00.00,01.00,000.00,1.00 -0440,-060.00,+00.00,01.00,000.00,1.00 -0441,-060.00,+00.00,01.00,000.00,1.00 -0442,-060.00,+00.00,01.00,000.00,1.00 -0443,-060.00,+00.00,01.00,000.00,1.00 -0444,-060.00,+00.00,01.00,000.00,1.00 -0445,-060.00,+00.00,01.00,000.00,1.00 -0446,-060.00,+00.00,01.00,000.00,1.00 -0447,-060.00,+00.00,01.00,000.00,1.00 -0448,-060.00,+00.00,01.00,000.00,1.00 -0449,-060.00,+00.00,01.00,000.00,1.00 -0450,-060.00,+00.00,01.00,000.00,1.00 -0451,-060.00,+00.00,01.00,000.00,1.00 -0452,-060.00,+00.00,01.00,000.00,1.00 -0453,-060.00,+00.00,01.00,000.00,1.00 -0454,-060.00,+00.00,01.00,000.00,1.00 -0455,-060.00,+00.00,01.00,000.00,1.00 -0456,-060.00,+00.00,01.00,000.00,1.00 -0457,-060.00,+00.00,01.00,000.00,1.00 -0458,-060.00,+00.00,01.00,000.00,1.00 -0459,-060.00,+00.00,01.00,000.00,1.00 -0460,-060.00,+00.00,01.00,000.00,1.00 -0461,-060.00,+00.00,01.00,000.00,1.00 -0462,-060.00,+00.00,01.00,000.00,1.00 -0463,-060.00,+00.00,01.00,000.00,1.00 -0464,-060.00,+00.00,01.00,000.00,1.00 -0465,-060.00,+00.00,01.00,000.00,1.00 -0466,-060.00,+00.00,01.00,000.00,1.00 -0467,-060.00,+00.00,01.00,000.00,1.00 -0468,-060.00,+00.00,01.00,000.00,1.00 -0469,-060.00,+00.00,01.00,000.00,1.00 -0470,-060.00,+00.00,01.00,000.00,1.00 -0471,-060.00,+00.00,01.00,000.00,1.00 -0472,-060.00,+00.00,01.00,000.00,1.00 -0473,-060.00,+00.00,01.00,000.00,1.00 -0474,-060.00,+00.00,01.00,000.00,1.00 -0475,-060.00,+00.00,01.00,000.00,1.00 -0476,-060.00,+00.00,01.00,000.00,1.00 -0477,-060.00,+00.00,01.00,000.00,1.00 -0478,-060.00,+00.00,01.00,000.00,1.00 -0479,-060.00,+00.00,01.00,000.00,1.00 -0480,-060.00,+00.00,01.00,000.00,1.00 -0481,-060.00,+00.00,01.00,000.00,1.00 -0482,-060.00,+00.00,01.00,000.00,1.00 -0483,-060.00,+00.00,01.00,000.00,1.00 -0484,-060.00,+00.00,01.00,000.00,1.00 -0485,-060.00,+00.00,01.00,000.00,1.00 -0486,-060.00,+00.00,01.00,000.00,1.00 -0487,-060.00,+00.00,01.00,000.00,1.00 -0488,-060.00,+00.00,01.00,000.00,1.00 -0489,-060.00,+00.00,01.00,000.00,1.00 -0490,-060.00,+00.00,01.00,000.00,1.00 -0491,-060.00,+00.00,01.00,000.00,1.00 -0492,-060.00,+00.00,01.00,000.00,1.00 -0493,-060.00,+00.00,01.00,000.00,1.00 -0494,-060.00,+00.00,01.00,000.00,1.00 -0495,-060.00,+00.00,01.00,000.00,1.00 -0496,-060.00,+00.00,01.00,000.00,1.00 -0497,-060.00,+00.00,01.00,000.00,1.00 -0498,-060.00,+00.00,01.00,000.00,1.00 -0499,-060.00,+00.00,01.00,000.00,1.00 -0500,-060.00,+00.00,01.00,000.00,1.00 -0501,-060.00,+00.00,01.00,000.00,1.00 -0502,-060.00,+00.00,01.00,000.00,1.00 -0503,-060.00,+00.00,01.00,000.00,1.00 -0504,-060.00,+00.00,01.00,000.00,1.00 -0505,-060.00,+00.00,01.00,000.00,1.00 -0506,-060.00,+00.00,01.00,000.00,1.00 -0507,-060.00,+00.00,01.00,000.00,1.00 -0508,-060.00,+00.00,01.00,000.00,1.00 -0509,-060.00,+00.00,01.00,000.00,1.00 -0510,-060.00,+00.00,01.00,000.00,1.00 -0511,-060.00,+00.00,01.00,000.00,1.00 -0512,-060.00,+00.00,01.00,000.00,1.00 -0513,-060.00,+00.00,01.00,000.00,1.00 -0514,-060.00,+00.00,01.00,000.00,1.00 -0515,-060.00,+00.00,01.00,000.00,1.00 -0516,-060.00,+00.00,01.00,000.00,1.00 -0517,-060.00,+00.00,01.00,000.00,1.00 -0518,-060.00,+00.00,01.00,000.00,1.00 -0519,-060.00,+00.00,01.00,000.00,1.00 -0520,-060.00,+00.00,01.00,000.00,1.00 -0521,-060.00,+00.00,01.00,000.00,1.00 -0522,-060.00,+00.00,01.00,000.00,1.00 -0523,-060.00,+00.00,01.00,000.00,1.00 -0524,-060.00,+00.00,01.00,000.00,1.00 -0525,-060.00,+00.00,01.00,000.00,1.00 -0526,-060.00,+00.00,01.00,000.00,1.00 -0527,-060.00,+00.00,01.00,000.00,1.00 -0528,-060.00,+00.00,01.00,000.00,1.00 -0529,-060.00,+00.00,01.00,000.00,1.00 -0530,-060.00,+00.00,01.00,000.00,1.00 -0531,-060.00,+00.00,01.00,000.00,1.00 -0532,-060.00,+00.00,01.00,000.00,1.00 -0533,-060.00,+00.00,01.00,000.00,1.00 -0534,-060.00,+00.00,01.00,000.00,1.00 -0535,-060.00,+00.00,01.00,000.00,1.00 -0536,-060.00,+00.00,01.00,000.00,1.00 -0537,-060.00,+00.00,01.00,000.00,1.00 -0538,-060.00,+00.00,01.00,000.00,1.00 -0539,-060.00,+00.00,01.00,000.00,1.00 -0540,-060.00,+00.00,01.00,000.00,1.00 -0541,-060.00,+00.00,01.00,000.00,1.00 -0542,-060.00,+00.00,01.00,000.00,1.00 -0543,-060.00,+00.00,01.00,000.00,1.00 -0544,-060.00,+00.00,01.00,000.00,1.00 -0545,-060.00,+00.00,01.00,000.00,1.00 -0546,-060.00,+00.00,01.00,000.00,1.00 -0547,-060.00,+00.00,01.00,000.00,1.00 -0548,-060.00,+00.00,01.00,000.00,1.00 -0549,-060.00,+00.00,01.00,000.00,1.00 -0550,-060.00,+00.00,01.00,000.00,1.00 -0551,-060.00,+00.00,01.00,000.00,1.00 -0552,-060.00,+00.00,01.00,000.00,1.00 -0553,-060.00,+00.00,01.00,000.00,1.00 -0554,-060.00,+00.00,01.00,000.00,1.00 -0555,-060.00,+00.00,01.00,000.00,1.00 -0556,-060.00,+00.00,01.00,000.00,1.00 -0557,-060.00,+00.00,01.00,000.00,1.00 -0558,-060.00,+00.00,01.00,000.00,1.00 -0559,-060.00,+00.00,01.00,000.00,1.00 -0560,-060.00,+00.00,01.00,000.00,1.00 -0561,-060.00,+00.00,01.00,000.00,1.00 -0562,-060.00,+00.00,01.00,000.00,1.00 -0563,-060.00,+00.00,01.00,000.00,1.00 -0564,-060.00,+00.00,01.00,000.00,1.00 -0565,-060.00,+00.00,01.00,000.00,1.00 -0566,-060.00,+00.00,01.00,000.00,1.00 -0567,-060.00,+00.00,01.00,000.00,1.00 -0568,-060.00,+00.00,01.00,000.00,1.00 -0569,-060.00,+00.00,01.00,000.00,1.00 -0570,-060.00,+00.00,01.00,000.00,1.00 -0571,-060.00,+00.00,01.00,000.00,1.00 -0572,-060.00,+00.00,01.00,000.00,1.00 -0573,-060.00,+00.00,01.00,000.00,1.00 -0574,-060.00,+00.00,01.00,000.00,1.00 -0575,-060.00,+00.00,01.00,000.00,1.00 -0576,-060.00,+00.00,01.00,000.00,1.00 -0577,-060.00,+00.00,01.00,000.00,1.00 -0578,-060.00,+00.00,01.00,000.00,1.00 -0579,-060.00,+00.00,01.00,000.00,1.00 -0580,-060.00,+00.00,01.00,000.00,1.00 -0581,-060.00,+00.00,01.00,000.00,1.00 -0582,-060.00,+00.00,01.00,000.00,1.00 -0583,-060.00,+00.00,01.00,000.00,1.00 -0584,-060.00,+00.00,01.00,000.00,1.00 -0585,-060.00,+00.00,01.00,000.00,1.00 -0586,-060.00,+00.00,01.00,000.00,1.00 -0587,-060.00,+00.00,01.00,000.00,1.00 -0588,-060.00,+00.00,01.00,000.00,1.00 -0589,-060.00,+00.00,01.00,000.00,1.00 -0590,-060.00,+00.00,01.00,000.00,1.00 -0591,-060.00,+00.00,01.00,000.00,1.00 -0592,-060.00,+00.00,01.00,000.00,1.00 -0593,-060.00,+00.00,01.00,000.00,1.00 -0594,-060.00,+00.00,01.00,000.00,1.00 -0595,-060.00,+00.00,01.00,000.00,1.00 -0596,-060.00,+00.00,01.00,000.00,1.00 -0597,-060.00,+00.00,01.00,000.00,1.00 -0598,-060.00,+00.00,01.00,000.00,1.00 -0599,-060.00,+00.00,01.00,000.00,1.00 -0600,-060.00,+00.00,01.00,000.00,1.00 -0601,-060.00,+00.00,01.00,000.00,1.00 -0602,-060.00,+00.00,01.00,000.00,1.00 -0603,-060.00,+00.00,01.00,000.00,1.00 -0604,-060.00,+00.00,01.00,000.00,1.00 -0605,-060.00,+00.00,01.00,000.00,1.00 -0606,-060.00,+00.00,01.00,000.00,1.00 -0607,-060.00,+00.00,01.00,000.00,1.00 -0608,-060.00,+00.00,01.00,000.00,1.00 -0609,-060.00,+00.00,01.00,000.00,1.00 -0610,-060.00,+00.00,01.00,000.00,1.00 -0611,-060.00,+00.00,01.00,000.00,1.00 -0612,-060.00,+00.00,01.00,000.00,1.00 -0613,-060.00,+00.00,01.00,000.00,1.00 -0614,-060.00,+00.00,01.00,000.00,1.00 -0615,-060.00,+00.00,01.00,000.00,1.00 -0616,-060.00,+00.00,01.00,000.00,1.00 -0617,-060.00,+00.00,01.00,000.00,1.00 -0618,-060.00,+00.00,01.00,000.00,1.00 -0619,-060.00,+00.00,01.00,000.00,1.00 -0620,-060.00,+00.00,01.00,000.00,1.00 -0621,-060.00,+00.00,01.00,000.00,1.00 -0622,-060.00,+00.00,01.00,000.00,1.00 -0623,-060.00,+00.00,01.00,000.00,1.00 -0624,-060.00,+00.00,01.00,000.00,1.00 -0625,-060.00,+00.00,01.00,000.00,1.00 -0626,-060.00,+00.00,01.00,000.00,1.00 -0627,-060.00,+00.00,01.00,000.00,1.00 -0628,-060.00,+00.00,01.00,000.00,1.00 -0629,-060.00,+00.00,01.00,000.00,1.00 -0630,-060.00,+00.00,01.00,000.00,1.00 -0631,-060.00,+00.00,01.00,000.00,1.00 -0632,-060.00,+00.00,01.00,000.00,1.00 -0633,-060.00,+00.00,01.00,000.00,1.00 -0634,-060.00,+00.00,01.00,000.00,1.00 -0635,-060.00,+00.00,01.00,000.00,1.00 -0636,-060.00,+00.00,01.00,000.00,1.00 -0637,-060.00,+00.00,01.00,000.00,1.00 -0638,-060.00,+00.00,01.00,000.00,1.00 -0639,-060.00,+00.00,01.00,000.00,1.00 -0640,-060.00,+00.00,01.00,000.00,1.00 -0641,-060.00,+00.00,01.00,000.00,1.00 -0642,-060.00,+00.00,01.00,000.00,1.00 -0643,-060.00,+00.00,01.00,000.00,1.00 -0644,-060.00,+00.00,01.00,000.00,1.00 -0645,-060.00,+00.00,01.00,000.00,1.00 -0646,-060.00,+00.00,01.00,000.00,1.00 -0647,-060.00,+00.00,01.00,000.00,1.00 -0648,-060.00,+00.00,01.00,000.00,1.00 -0649,-060.00,+00.00,01.00,000.00,1.00 -0650,-060.00,+00.00,01.00,000.00,1.00 -0651,-060.00,+00.00,01.00,000.00,1.00 -0652,-060.00,+00.00,01.00,000.00,1.00 -0653,-060.00,+00.00,01.00,000.00,1.00 -0654,-060.00,+00.00,01.00,000.00,1.00 -0655,-060.00,+00.00,01.00,000.00,1.00 -0656,-060.00,+00.00,01.00,000.00,1.00 -0657,-060.00,+00.00,01.00,000.00,1.00 -0658,-060.00,+00.00,01.00,000.00,1.00 -0659,-060.00,+00.00,01.00,000.00,1.00 -0660,-060.00,+00.00,01.00,000.00,1.00 -0661,-060.00,+00.00,01.00,000.00,1.00 -0662,-060.00,+00.00,01.00,000.00,1.00 -0663,-060.00,+00.00,01.00,000.00,1.00 -0664,-060.00,+00.00,01.00,000.00,1.00 -0665,-060.00,+00.00,01.00,000.00,1.00 -0666,-060.00,+00.00,01.00,000.00,1.00 -0667,-060.00,+00.00,01.00,000.00,1.00 -0668,-060.00,+00.00,01.00,000.00,1.00 -0669,-060.00,+00.00,01.00,000.00,1.00 -0670,-060.00,+00.00,01.00,000.00,1.00 -0671,-060.00,+00.00,01.00,000.00,1.00 -0672,-060.00,+00.00,01.00,000.00,1.00 -0673,-060.00,+00.00,01.00,000.00,1.00 -0674,-060.00,+00.00,01.00,000.00,1.00 -0675,-060.00,+00.00,01.00,000.00,1.00 -0676,-060.00,+00.00,01.00,000.00,1.00 -0677,-060.00,+00.00,01.00,000.00,1.00 -0678,-060.00,+00.00,01.00,000.00,1.00 -0679,-060.00,+00.00,01.00,000.00,1.00 -0680,-060.00,+00.00,01.00,000.00,1.00 -0681,-060.00,+00.00,01.00,000.00,1.00 -0682,-060.00,+00.00,01.00,000.00,1.00 -0683,-060.00,+00.00,01.00,000.00,1.00 -0684,-060.00,+00.00,01.00,000.00,1.00 -0685,-060.00,+00.00,01.00,000.00,1.00 -0686,-060.00,+00.00,01.00,000.00,1.00 -0687,-060.00,+00.00,01.00,000.00,1.00 -0688,-060.00,+00.00,01.00,000.00,1.00 -0689,-060.00,+00.00,01.00,000.00,1.00 -0690,-060.00,+00.00,01.00,000.00,1.00 -0691,-060.00,+00.00,01.00,000.00,1.00 -0692,-060.00,+00.00,01.00,000.00,1.00 -0693,-060.00,+00.00,01.00,000.00,1.00 -0694,-060.00,+00.00,01.00,000.00,1.00 -0695,-060.00,+00.00,01.00,000.00,1.00 -0696,-060.00,+00.00,01.00,000.00,1.00 -0697,-060.00,+00.00,01.00,000.00,1.00 -0698,-060.00,+00.00,01.00,000.00,1.00 -0699,-060.00,+00.00,01.00,000.00,1.00 -0700,-060.00,+00.00,01.00,000.00,1.00 -0701,-060.00,+00.00,01.00,000.00,1.00 -0702,-060.00,+00.00,01.00,000.00,1.00 -0703,-060.00,+00.00,01.00,000.00,1.00 -0704,-060.00,+00.00,01.00,000.00,1.00 -0705,-060.00,+00.00,01.00,000.00,1.00 -0706,-060.00,+00.00,01.00,000.00,1.00 -0707,-060.00,+00.00,01.00,000.00,1.00 -0708,-060.00,+00.00,01.00,000.00,1.00 -0709,-060.00,+00.00,01.00,000.00,1.00 -0710,-060.00,+00.00,01.00,000.00,1.00 -0711,-060.00,+00.00,01.00,000.00,1.00 -0712,-060.00,+00.00,01.00,000.00,1.00 -0713,-060.00,+00.00,01.00,000.00,1.00 -0714,-060.00,+00.00,01.00,000.00,1.00 -0715,-060.00,+00.00,01.00,000.00,1.00 -0716,-060.00,+00.00,01.00,000.00,1.00 -0717,-060.00,+00.00,01.00,000.00,1.00 -0718,-060.00,+00.00,01.00,000.00,1.00 -0719,-060.00,+00.00,01.00,000.00,1.00 -0720,-060.00,+00.00,01.00,000.00,1.00 -0721,-060.00,+00.00,01.00,000.00,1.00 -0722,-060.00,+00.00,01.00,000.00,1.00 -0723,-060.00,+00.00,01.00,000.00,1.00 -0724,-060.00,+00.00,01.00,000.00,1.00 -0725,-060.00,+00.00,01.00,000.00,1.00 -0726,-060.00,+00.00,01.00,000.00,1.00 -0727,-060.00,+00.00,01.00,000.00,1.00 -0728,-060.00,+00.00,01.00,000.00,1.00 -0729,-060.00,+00.00,01.00,000.00,1.00 -0730,-060.00,+00.00,01.00,000.00,1.00 -0731,-060.00,+00.00,01.00,000.00,1.00 -0732,-060.00,+00.00,01.00,000.00,1.00 -0733,-060.00,+00.00,01.00,000.00,1.00 -0734,-060.00,+00.00,01.00,000.00,1.00 -0735,-060.00,+00.00,01.00,000.00,1.00 -0736,-060.00,+00.00,01.00,000.00,1.00 -0737,-060.00,+00.00,01.00,000.00,1.00 -0738,-060.00,+00.00,01.00,000.00,1.00 -0739,-060.00,+00.00,01.00,000.00,1.00 -0740,-060.00,+00.00,01.00,000.00,1.00 -0741,-060.00,+00.00,01.00,000.00,1.00 -0742,-060.00,+00.00,01.00,000.00,1.00 -0743,-060.00,+00.00,01.00,000.00,1.00 -0744,-060.00,+00.00,01.00,000.00,1.00 -0745,-060.00,+00.00,01.00,000.00,1.00 -0746,-060.00,+00.00,01.00,000.00,1.00 -0747,-060.00,+00.00,01.00,000.00,1.00 -0748,-060.00,+00.00,01.00,000.00,1.00 -0749,-060.00,+00.00,01.00,000.00,1.00 -0750,-060.00,+00.00,01.00,000.00,1.00 -0751,-060.00,+00.00,01.00,000.00,1.00 -0752,-060.00,+00.00,01.00,000.00,1.00 -0753,-060.00,+00.00,01.00,000.00,1.00 -0754,-060.00,+00.00,01.00,000.00,1.00 -0755,-060.00,+00.00,01.00,000.00,1.00 -0756,-060.00,+00.00,01.00,000.00,1.00 -0757,-060.00,+00.00,01.00,000.00,1.00 -0758,-060.00,+00.00,01.00,000.00,1.00 -0759,-060.00,+00.00,01.00,000.00,1.00 -0760,-060.00,+00.00,01.00,000.00,1.00 -0761,-060.00,+00.00,01.00,000.00,1.00 -0762,-060.00,+00.00,01.00,000.00,1.00 -0763,-060.00,+00.00,01.00,000.00,1.00 -0764,-060.00,+00.00,01.00,000.00,1.00 -0765,-060.00,+00.00,01.00,000.00,1.00 -0766,-060.00,+00.00,01.00,000.00,1.00 -0767,-060.00,+00.00,01.00,000.00,1.00 -0768,-060.00,+00.00,01.00,000.00,1.00 -0769,-060.00,+00.00,01.00,000.00,1.00 -0770,-060.00,+00.00,01.00,000.00,1.00 -0771,-060.00,+00.00,01.00,000.00,1.00 -0772,-060.00,+00.00,01.00,000.00,1.00 -0773,-060.00,+00.00,01.00,000.00,1.00 -0774,-060.00,+00.00,01.00,000.00,1.00 -0775,-060.00,+00.00,01.00,000.00,1.00 -0776,-060.00,+00.00,01.00,000.00,1.00 -0777,-060.00,+00.00,01.00,000.00,1.00 -0778,-060.00,+00.00,01.00,000.00,1.00 -0779,-060.00,+00.00,01.00,000.00,1.00 -0780,-060.00,+00.00,01.00,000.00,1.00 -0781,-060.00,+00.00,01.00,000.00,1.00 -0782,-060.00,+00.00,01.00,000.00,1.00 -0783,-060.00,+00.00,01.00,000.00,1.00 -0784,-060.00,+00.00,01.00,000.00,1.00 -0785,-060.00,+00.00,01.00,000.00,1.00 -0786,-060.00,+00.00,01.00,000.00,1.00 -0787,-060.00,+00.00,01.00,000.00,1.00 -0788,-060.00,+00.00,01.00,000.00,1.00 -0789,-060.00,+00.00,01.00,000.00,1.00 -0790,-060.00,+00.00,01.00,000.00,1.00 -0791,-060.00,+00.00,01.00,000.00,1.00 -0792,-060.00,+00.00,01.00,000.00,1.00 -0793,-060.00,+00.00,01.00,000.00,1.00 -0794,-060.00,+00.00,01.00,000.00,1.00 -0795,-060.00,+00.00,01.00,000.00,1.00 -0796,-060.00,+00.00,01.00,000.00,1.00 -0797,-060.00,+00.00,01.00,000.00,1.00 -0798,-060.00,+00.00,01.00,000.00,1.00 -0799,-060.00,+00.00,01.00,000.00,1.00 -0800,-060.00,+00.00,01.00,000.00,1.00 -0801,-060.00,+00.00,01.00,000.00,1.00 -0802,-060.00,+00.00,01.00,000.00,1.00 -0803,-060.00,+00.00,01.00,000.00,1.00 -0804,-060.00,+00.00,01.00,000.00,1.00 -0805,-060.00,+00.00,01.00,000.00,1.00 -0806,-060.00,+00.00,01.00,000.00,1.00 -0807,-060.00,+00.00,01.00,000.00,1.00 -0808,-060.00,+00.00,01.00,000.00,1.00 -0809,-060.00,+00.00,01.00,000.00,1.00 -0810,-060.00,+00.00,01.00,000.00,1.00 -0811,-060.00,+00.00,01.00,000.00,1.00 -0812,-060.00,+00.00,01.00,000.00,1.00 -0813,-060.00,+00.00,01.00,000.00,1.00 -0814,-060.00,+00.00,01.00,000.00,1.00 -0815,-060.00,+00.00,01.00,000.00,1.00 -0816,-060.00,+00.00,01.00,000.00,1.00 -0817,-060.00,+00.00,01.00,000.00,1.00 -0818,-060.00,+00.00,01.00,000.00,1.00 -0819,-060.00,+00.00,01.00,000.00,1.00 -0820,-060.00,+00.00,01.00,000.00,1.00 -0821,-060.00,+00.00,01.00,000.00,1.00 -0822,-060.00,+00.00,01.00,000.00,1.00 -0823,-060.00,+00.00,01.00,000.00,1.00 -0824,-060.00,+00.00,01.00,000.00,1.00 -0825,-060.00,+00.00,01.00,000.00,1.00 -0826,-060.00,+00.00,01.00,000.00,1.00 -0827,-060.00,+00.00,01.00,000.00,1.00 -0828,-060.00,+00.00,01.00,000.00,1.00 -0829,-060.00,+00.00,01.00,000.00,1.00 -0830,-060.00,+00.00,01.00,000.00,1.00 -0831,-060.00,+00.00,01.00,000.00,1.00 -0832,-060.00,+00.00,01.00,000.00,1.00 -0833,-060.00,+00.00,01.00,000.00,1.00 -0834,-060.00,+00.00,01.00,000.00,1.00 -0835,-060.00,+00.00,01.00,000.00,1.00 -0836,-060.00,+00.00,01.00,000.00,1.00 -0837,-060.00,+00.00,01.00,000.00,1.00 -0838,-060.00,+00.00,01.00,000.00,1.00 -0839,-060.00,+00.00,01.00,000.00,1.00 -0840,-060.00,+00.00,01.00,000.00,1.00 -0841,-060.00,+00.00,01.00,000.00,1.00 -0842,-060.00,+00.00,01.00,000.00,1.00 -0843,-060.00,+00.00,01.00,000.00,1.00 -0844,-060.00,+00.00,01.00,000.00,1.00 -0845,-060.00,+00.00,01.00,000.00,1.00 -0846,-060.00,+00.00,01.00,000.00,1.00 -0847,-060.00,+00.00,01.00,000.00,1.00 -0848,-060.00,+00.00,01.00,000.00,1.00 -0849,-060.00,+00.00,01.00,000.00,1.00 -0850,-060.00,+00.00,01.00,000.00,1.00 -0851,-060.00,+00.00,01.00,000.00,1.00 -0852,-060.00,+00.00,01.00,000.00,1.00 -0853,-060.00,+00.00,01.00,000.00,1.00 -0854,-060.00,+00.00,01.00,000.00,1.00 -0855,-060.00,+00.00,01.00,000.00,1.00 -0856,-060.00,+00.00,01.00,000.00,1.00 -0857,-060.00,+00.00,01.00,000.00,1.00 -0858,-060.00,+00.00,01.00,000.00,1.00 -0859,-060.00,+00.00,01.00,000.00,1.00 -0860,-060.00,+00.00,01.00,000.00,1.00 -0861,-060.00,+00.00,01.00,000.00,1.00 -0862,-060.00,+00.00,01.00,000.00,1.00 -0863,-060.00,+00.00,01.00,000.00,1.00 -0864,-060.00,+00.00,01.00,000.00,1.00 -0865,-060.00,+00.00,01.00,000.00,1.00 -0866,-060.00,+00.00,01.00,000.00,1.00 -0867,-060.00,+00.00,01.00,000.00,1.00 -0868,-060.00,+00.00,01.00,000.00,1.00 -0869,-060.00,+00.00,01.00,000.00,1.00 -0870,-060.00,+00.00,01.00,000.00,1.00 -0871,-060.00,+00.00,01.00,000.00,1.00 -0872,-060.00,+00.00,01.00,000.00,1.00 -0873,-060.00,+00.00,01.00,000.00,1.00 -0874,-060.00,+00.00,01.00,000.00,1.00 -0875,-060.00,+00.00,01.00,000.00,1.00 -0876,-060.00,+00.00,01.00,000.00,1.00 -0877,-060.00,+00.00,01.00,000.00,1.00 -0878,-060.00,+00.00,01.00,000.00,1.00 -0879,-060.00,+00.00,01.00,000.00,1.00 -0880,-060.00,+00.00,01.00,000.00,1.00 -0881,-060.00,+00.00,01.00,000.00,1.00 -0882,-060.00,+00.00,01.00,000.00,1.00 -0883,-060.00,+00.00,01.00,000.00,1.00 -0884,-060.00,+00.00,01.00,000.00,1.00 -0885,-060.00,+00.00,01.00,000.00,1.00 -0886,-060.00,+00.00,01.00,000.00,1.00 -0887,-060.00,+00.00,01.00,000.00,1.00 -0888,-060.00,+00.00,01.00,000.00,1.00 -0889,-060.00,+00.00,01.00,000.00,1.00 -0890,-060.00,+00.00,01.00,000.00,1.00 -0891,-060.00,+00.00,01.00,000.00,1.00 -0892,-060.00,+00.00,01.00,000.00,1.00 -0893,-060.00,+00.00,01.00,000.00,1.00 -0894,-060.00,+00.00,01.00,000.00,1.00 -0895,-060.00,+00.00,01.00,000.00,1.00 -0896,-060.00,+00.00,01.00,000.00,1.00 -0897,-060.00,+00.00,01.00,000.00,1.00 -0898,-060.00,+00.00,01.00,000.00,1.00 -0899,-060.00,+00.00,01.00,000.00,1.00 -0900,-060.00,+00.00,01.00,000.00,1.00 -0901,-060.00,+00.00,01.00,000.00,1.00 -0902,-060.00,+00.00,01.00,000.00,1.00 -0903,-060.00,+00.00,01.00,000.00,1.00 -0904,-060.00,+00.00,01.00,000.00,1.00 -0905,-060.00,+00.00,01.00,000.00,1.00 -0906,-060.00,+00.00,01.00,000.00,1.00 -0907,-060.00,+00.00,01.00,000.00,1.00 -0908,-060.00,+00.00,01.00,000.00,1.00 -0909,-060.00,+00.00,01.00,000.00,1.00 -0910,-060.00,+00.00,01.00,000.00,1.00 -0911,-060.00,+00.00,01.00,000.00,1.00 -0912,-060.00,+00.00,01.00,000.00,1.00 -0913,-060.00,+00.00,01.00,000.00,1.00 -0914,-060.00,+00.00,01.00,000.00,1.00 -0915,-060.00,+00.00,01.00,000.00,1.00 -0916,-060.00,+00.00,01.00,000.00,1.00 -0917,-060.00,+00.00,01.00,000.00,1.00 -0918,-060.00,+00.00,01.00,000.00,1.00 -0919,-060.00,+00.00,01.00,000.00,1.00 -0920,-060.00,+00.00,01.00,000.00,1.00 -0921,-060.00,+00.00,01.00,000.00,1.00 -0922,-060.00,+00.00,01.00,000.00,1.00 -0923,-060.00,+00.00,01.00,000.00,1.00 -0924,-060.00,+00.00,01.00,000.00,1.00 -0925,-060.00,+00.00,01.00,000.00,1.00 -0926,-060.00,+00.00,01.00,000.00,1.00 -0927,-060.00,+00.00,01.00,000.00,1.00 -0928,-060.00,+00.00,01.00,000.00,1.00 -0929,-060.00,+00.00,01.00,000.00,1.00 -0930,-060.00,+00.00,01.00,000.00,1.00 -0931,-060.00,+00.00,01.00,000.00,1.00 -0932,-060.00,+00.00,01.00,000.00,1.00 -0933,-060.00,+00.00,01.00,000.00,1.00 -0934,-060.00,+00.00,01.00,000.00,1.00 -0935,-060.00,+00.00,01.00,000.00,1.00 -0936,-060.00,+00.00,01.00,000.00,1.00 -0937,-060.00,+00.00,01.00,000.00,1.00 -0938,-060.00,+00.00,01.00,000.00,1.00 -0939,-060.00,+00.00,01.00,000.00,1.00 -0940,-060.00,+00.00,01.00,000.00,1.00 -0941,-060.00,+00.00,01.00,000.00,1.00 -0942,-060.00,+00.00,01.00,000.00,1.00 -0943,-060.00,+00.00,01.00,000.00,1.00 -0944,-060.00,+00.00,01.00,000.00,1.00 -0945,-060.00,+00.00,01.00,000.00,1.00 -0946,-060.00,+00.00,01.00,000.00,1.00 -0947,-060.00,+00.00,01.00,000.00,1.00 -0948,-060.00,+00.00,01.00,000.00,1.00 -0949,-060.00,+00.00,01.00,000.00,1.00 -0950,-060.00,+00.00,01.00,000.00,1.00 -0951,-060.00,+00.00,01.00,000.00,1.00 -0952,-060.00,+00.00,01.00,000.00,1.00 -0953,-060.00,+00.00,01.00,000.00,1.00 -0954,-060.00,+00.00,01.00,000.00,1.00 -0955,-060.00,+00.00,01.00,000.00,1.00 -0956,-060.00,+00.00,01.00,000.00,1.00 -0957,-060.00,+00.00,01.00,000.00,1.00 -0958,-060.00,+00.00,01.00,000.00,1.00 -0959,-060.00,+00.00,01.00,000.00,1.00 -0960,-060.00,+00.00,01.00,000.00,1.00 -0961,-060.00,+00.00,01.00,000.00,1.00 -0962,-060.00,+00.00,01.00,000.00,1.00 -0963,-060.00,+00.00,01.00,000.00,1.00 -0964,-060.00,+00.00,01.00,000.00,1.00 -0965,-060.00,+00.00,01.00,000.00,1.00 -0966,-060.00,+00.00,01.00,000.00,1.00 -0967,-060.00,+00.00,01.00,000.00,1.00 -0968,-060.00,+00.00,01.00,000.00,1.00 -0969,-060.00,+00.00,01.00,000.00,1.00 -0970,-060.00,+00.00,01.00,000.00,1.00 -0971,-060.00,+00.00,01.00,000.00,1.00 -0972,-060.00,+00.00,01.00,000.00,1.00 -0973,-060.00,+00.00,01.00,000.00,1.00 -0974,-060.00,+00.00,01.00,000.00,1.00 -0975,-060.00,+00.00,01.00,000.00,1.00 -0976,-060.00,+00.00,01.00,000.00,1.00 -0977,-060.00,+00.00,01.00,000.00,1.00 -0978,-060.00,+00.00,01.00,000.00,1.00 -0979,-060.00,+00.00,01.00,000.00,1.00 -0980,-060.00,+00.00,01.00,000.00,1.00 -0981,-060.00,+00.00,01.00,000.00,1.00 -0982,-060.00,+00.00,01.00,000.00,1.00 -0983,-060.00,+00.00,01.00,000.00,1.00 -0984,-060.00,+00.00,01.00,000.00,1.00 -0985,-060.00,+00.00,01.00,000.00,1.00 -0986,-060.00,+00.00,01.00,000.00,1.00 -0987,-060.00,+00.00,01.00,000.00,1.00 -0988,-060.00,+00.00,01.00,000.00,1.00 -0989,-060.00,+00.00,01.00,000.00,1.00 -0990,-060.00,+00.00,01.00,000.00,1.00 -0991,-060.00,+00.00,01.00,000.00,1.00 -0992,-060.00,+00.00,01.00,000.00,1.00 -0993,-060.00,+00.00,01.00,000.00,1.00 -0994,-060.00,+00.00,01.00,000.00,1.00 -0995,-060.00,+00.00,01.00,000.00,1.00 -0996,-060.00,+00.00,01.00,000.00,1.00 -0997,-060.00,+00.00,01.00,000.00,1.00 -0998,-060.00,+00.00,01.00,000.00,1.00 -0999,-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 +-060.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t05_ch2.csv b/scripts/td_object_renderer/metadata/csv/t05_ch2.csv index 8a4f928c25..f64e78d8c2 100644 --- a/scripts/td_object_renderer/metadata/csv/t05_ch2.csv +++ b/scripts/td_object_renderer/metadata/csv/t05_ch2.csv @@ -1,1000 +1,1000 @@ -0000,-020.00,+00.00,01.00,000.00,1.00 -0001,-020.00,+00.00,01.00,000.00,1.00 -0002,-020.00,+00.00,01.00,000.00,1.00 -0003,-020.00,+00.00,01.00,000.00,1.00 -0004,-020.00,+00.00,01.00,000.00,1.00 -0005,-020.00,+00.00,01.00,000.00,1.00 -0006,-020.00,+00.00,01.00,000.00,1.00 -0007,-020.00,+00.00,01.00,000.00,1.00 -0008,-020.00,+00.00,01.00,000.00,1.00 -0009,-020.00,+00.00,01.00,000.00,1.00 -0010,-020.00,+00.00,01.00,000.00,1.00 -0011,-020.00,+00.00,01.00,000.00,1.00 -0012,-020.00,+00.00,01.00,000.00,1.00 -0013,-020.00,+00.00,01.00,000.00,1.00 -0014,-020.00,+00.00,01.00,000.00,1.00 -0015,-020.00,+00.00,01.00,000.00,1.00 -0016,-020.00,+00.00,01.00,000.00,1.00 -0017,-020.00,+00.00,01.00,000.00,1.00 -0018,-020.00,+00.00,01.00,000.00,1.00 -0019,-020.00,+00.00,01.00,000.00,1.00 -0020,-020.00,+00.00,01.00,000.00,1.00 -0021,-020.00,+00.00,01.00,000.00,1.00 -0022,-020.00,+00.00,01.00,000.00,1.00 -0023,-020.00,+00.00,01.00,000.00,1.00 -0024,-020.00,+00.00,01.00,000.00,1.00 -0025,-020.00,+00.00,01.00,000.00,1.00 -0026,-020.00,+00.00,01.00,000.00,1.00 -0027,-020.00,+00.00,01.00,000.00,1.00 -0028,-020.00,+00.00,01.00,000.00,1.00 -0029,-020.00,+00.00,01.00,000.00,1.00 -0030,-020.00,+00.00,01.00,000.00,1.00 -0031,-020.00,+00.00,01.00,000.00,1.00 -0032,-020.00,+00.00,01.00,000.00,1.00 -0033,-020.00,+00.00,01.00,000.00,1.00 -0034,-020.00,+00.00,01.00,000.00,1.00 -0035,-020.00,+00.00,01.00,000.00,1.00 -0036,-020.00,+00.00,01.00,000.00,1.00 -0037,-020.00,+00.00,01.00,000.00,1.00 -0038,-020.00,+00.00,01.00,000.00,1.00 -0039,-020.00,+00.00,01.00,000.00,1.00 -0040,-020.00,+00.00,01.00,000.00,1.00 -0041,-020.00,+00.00,01.00,000.00,1.00 -0042,-020.00,+00.00,01.00,000.00,1.00 -0043,-020.00,+00.00,01.00,000.00,1.00 -0044,-020.00,+00.00,01.00,000.00,1.00 -0045,-020.00,+00.00,01.00,000.00,1.00 -0046,-020.00,+00.00,01.00,000.00,1.00 -0047,-020.00,+00.00,01.00,000.00,1.00 -0048,-020.00,+00.00,01.00,000.00,1.00 -0049,-020.00,+00.00,01.00,000.00,1.00 -0050,-020.00,+00.00,01.00,000.00,1.00 -0051,-020.00,+00.00,01.00,000.00,1.00 -0052,-020.00,+00.00,01.00,000.00,1.00 -0053,-020.00,+00.00,01.00,000.00,1.00 -0054,-020.00,+00.00,01.00,000.00,1.00 -0055,-020.00,+00.00,01.00,000.00,1.00 -0056,-020.00,+00.00,01.00,000.00,1.00 -0057,-020.00,+00.00,01.00,000.00,1.00 -0058,-020.00,+00.00,01.00,000.00,1.00 -0059,-020.00,+00.00,01.00,000.00,1.00 -0060,-020.00,+00.00,01.00,000.00,1.00 -0061,-020.00,+00.00,01.00,000.00,1.00 -0062,-020.00,+00.00,01.00,000.00,1.00 -0063,-020.00,+00.00,01.00,000.00,1.00 -0064,-020.00,+00.00,01.00,000.00,1.00 -0065,-020.00,+00.00,01.00,000.00,1.00 -0066,-020.00,+00.00,01.00,000.00,1.00 -0067,-020.00,+00.00,01.00,000.00,1.00 -0068,-020.00,+00.00,01.00,000.00,1.00 -0069,-020.00,+00.00,01.00,000.00,1.00 -0070,-020.00,+00.00,01.00,000.00,1.00 -0071,-020.00,+00.00,01.00,000.00,1.00 -0072,-020.00,+00.00,01.00,000.00,1.00 -0073,-020.00,+00.00,01.00,000.00,1.00 -0074,-020.00,+00.00,01.00,000.00,1.00 -0075,-020.00,+00.00,01.00,000.00,1.00 -0076,-020.00,+00.00,01.00,000.00,1.00 -0077,-020.00,+00.00,01.00,000.00,1.00 -0078,-020.00,+00.00,01.00,000.00,1.00 -0079,-020.00,+00.00,01.00,000.00,1.00 -0080,-020.00,+00.00,01.00,000.00,1.00 -0081,-020.00,+00.00,01.00,000.00,1.00 -0082,-020.00,+00.00,01.00,000.00,1.00 -0083,-020.00,+00.00,01.00,000.00,1.00 -0084,-020.00,+00.00,01.00,000.00,1.00 -0085,-020.00,+00.00,01.00,000.00,1.00 -0086,-020.00,+00.00,01.00,000.00,1.00 -0087,-020.00,+00.00,01.00,000.00,1.00 -0088,-020.00,+00.00,01.00,000.00,1.00 -0089,-020.00,+00.00,01.00,000.00,1.00 -0090,-020.00,+00.00,01.00,000.00,1.00 -0091,-020.00,+00.00,01.00,000.00,1.00 -0092,-020.00,+00.00,01.00,000.00,1.00 -0093,-020.00,+00.00,01.00,000.00,1.00 -0094,-020.00,+00.00,01.00,000.00,1.00 -0095,-020.00,+00.00,01.00,000.00,1.00 -0096,-020.00,+00.00,01.00,000.00,1.00 -0097,-020.00,+00.00,01.00,000.00,1.00 -0098,-020.00,+00.00,01.00,000.00,1.00 -0099,-020.00,+00.00,01.00,000.00,1.00 -0100,-020.00,+00.00,01.00,000.00,1.00 -0101,-020.00,+00.00,01.00,000.00,1.00 -0102,-020.00,+00.00,01.00,000.00,1.00 -0103,-020.00,+00.00,01.00,000.00,1.00 -0104,-020.00,+00.00,01.00,000.00,1.00 -0105,-020.00,+00.00,01.00,000.00,1.00 -0106,-020.00,+00.00,01.00,000.00,1.00 -0107,-020.00,+00.00,01.00,000.00,1.00 -0108,-020.00,+00.00,01.00,000.00,1.00 -0109,-020.00,+00.00,01.00,000.00,1.00 -0110,-020.00,+00.00,01.00,000.00,1.00 -0111,-020.00,+00.00,01.00,000.00,1.00 -0112,-020.00,+00.00,01.00,000.00,1.00 -0113,-020.00,+00.00,01.00,000.00,1.00 -0114,-020.00,+00.00,01.00,000.00,1.00 -0115,-020.00,+00.00,01.00,000.00,1.00 -0116,-020.00,+00.00,01.00,000.00,1.00 -0117,-020.00,+00.00,01.00,000.00,1.00 -0118,-020.00,+00.00,01.00,000.00,1.00 -0119,-020.00,+00.00,01.00,000.00,1.00 -0120,-020.00,+00.00,01.00,000.00,1.00 -0121,-020.00,+00.00,01.00,000.00,1.00 -0122,-020.00,+00.00,01.00,000.00,1.00 -0123,-020.00,+00.00,01.00,000.00,1.00 -0124,-020.00,+00.00,01.00,000.00,1.00 -0125,-020.00,+00.00,01.00,000.00,1.00 -0126,-020.00,+00.00,01.00,000.00,1.00 -0127,-020.00,+00.00,01.00,000.00,1.00 -0128,-020.00,+00.00,01.00,000.00,1.00 -0129,-020.00,+00.00,01.00,000.00,1.00 -0130,-020.00,+00.00,01.00,000.00,1.00 -0131,-020.00,+00.00,01.00,000.00,1.00 -0132,-020.00,+00.00,01.00,000.00,1.00 -0133,-020.00,+00.00,01.00,000.00,1.00 -0134,-020.00,+00.00,01.00,000.00,1.00 -0135,-020.00,+00.00,01.00,000.00,1.00 -0136,-020.00,+00.00,01.00,000.00,1.00 -0137,-020.00,+00.00,01.00,000.00,1.00 -0138,-020.00,+00.00,01.00,000.00,1.00 -0139,-020.00,+00.00,01.00,000.00,1.00 -0140,-020.00,+00.00,01.00,000.00,1.00 -0141,-020.00,+00.00,01.00,000.00,1.00 -0142,-020.00,+00.00,01.00,000.00,1.00 -0143,-020.00,+00.00,01.00,000.00,1.00 -0144,-020.00,+00.00,01.00,000.00,1.00 -0145,-020.00,+00.00,01.00,000.00,1.00 -0146,-020.00,+00.00,01.00,000.00,1.00 -0147,-020.00,+00.00,01.00,000.00,1.00 -0148,-020.00,+00.00,01.00,000.00,1.00 -0149,-020.00,+00.00,01.00,000.00,1.00 -0150,-020.00,+00.00,01.00,000.00,1.00 -0151,-020.00,+00.00,01.00,000.00,1.00 -0152,-020.00,+00.00,01.00,000.00,1.00 -0153,-020.00,+00.00,01.00,000.00,1.00 -0154,-020.00,+00.00,01.00,000.00,1.00 -0155,-020.00,+00.00,01.00,000.00,1.00 -0156,-020.00,+00.00,01.00,000.00,1.00 -0157,-020.00,+00.00,01.00,000.00,1.00 -0158,-020.00,+00.00,01.00,000.00,1.00 -0159,-020.00,+00.00,01.00,000.00,1.00 -0160,-020.00,+00.00,01.00,000.00,1.00 -0161,-020.00,+00.00,01.00,000.00,1.00 -0162,-020.00,+00.00,01.00,000.00,1.00 -0163,-020.00,+00.00,01.00,000.00,1.00 -0164,-020.00,+00.00,01.00,000.00,1.00 -0165,-020.00,+00.00,01.00,000.00,1.00 -0166,-020.00,+00.00,01.00,000.00,1.00 -0167,-020.00,+00.00,01.00,000.00,1.00 -0168,-020.00,+00.00,01.00,000.00,1.00 -0169,-020.00,+00.00,01.00,000.00,1.00 -0170,-020.00,+00.00,01.00,000.00,1.00 -0171,-020.00,+00.00,01.00,000.00,1.00 -0172,-020.00,+00.00,01.00,000.00,1.00 -0173,-020.00,+00.00,01.00,000.00,1.00 -0174,-020.00,+00.00,01.00,000.00,1.00 -0175,-020.00,+00.00,01.00,000.00,1.00 -0176,-020.00,+00.00,01.00,000.00,1.00 -0177,-020.00,+00.00,01.00,000.00,1.00 -0178,-020.00,+00.00,01.00,000.00,1.00 -0179,-020.00,+00.00,01.00,000.00,1.00 -0180,-020.00,+00.00,01.00,000.00,1.00 -0181,-020.00,+00.00,01.00,000.00,1.00 -0182,-020.00,+00.00,01.00,000.00,1.00 -0183,-020.00,+00.00,01.00,000.00,1.00 -0184,-020.00,+00.00,01.00,000.00,1.00 -0185,-020.00,+00.00,01.00,000.00,1.00 -0186,-020.00,+00.00,01.00,000.00,1.00 -0187,-020.00,+00.00,01.00,000.00,1.00 -0188,-020.00,+00.00,01.00,000.00,1.00 -0189,-020.00,+00.00,01.00,000.00,1.00 -0190,-020.00,+00.00,01.00,000.00,1.00 -0191,-020.00,+00.00,01.00,000.00,1.00 -0192,-020.00,+00.00,01.00,000.00,1.00 -0193,-020.00,+00.00,01.00,000.00,1.00 -0194,-020.00,+00.00,01.00,000.00,1.00 -0195,-020.00,+00.00,01.00,000.00,1.00 -0196,-020.00,+00.00,01.00,000.00,1.00 -0197,-020.00,+00.00,01.00,000.00,1.00 -0198,-020.00,+00.00,01.00,000.00,1.00 -0199,-020.00,+00.00,01.00,000.00,1.00 -0200,-020.00,+00.00,01.00,000.00,1.00 -0201,-020.00,+00.00,01.00,000.00,1.00 -0202,-020.00,+00.00,01.00,000.00,1.00 -0203,-020.00,+00.00,01.00,000.00,1.00 -0204,-020.00,+00.00,01.00,000.00,1.00 -0205,-020.00,+00.00,01.00,000.00,1.00 -0206,-020.00,+00.00,01.00,000.00,1.00 -0207,-020.00,+00.00,01.00,000.00,1.00 -0208,-020.00,+00.00,01.00,000.00,1.00 -0209,-020.00,+00.00,01.00,000.00,1.00 -0210,-020.00,+00.00,01.00,000.00,1.00 -0211,-020.00,+00.00,01.00,000.00,1.00 -0212,-020.00,+00.00,01.00,000.00,1.00 -0213,-020.00,+00.00,01.00,000.00,1.00 -0214,-020.00,+00.00,01.00,000.00,1.00 -0215,-020.00,+00.00,01.00,000.00,1.00 -0216,-020.00,+00.00,01.00,000.00,1.00 -0217,-020.00,+00.00,01.00,000.00,1.00 -0218,-020.00,+00.00,01.00,000.00,1.00 -0219,-020.00,+00.00,01.00,000.00,1.00 -0220,-020.00,+00.00,01.00,000.00,1.00 -0221,-020.00,+00.00,01.00,000.00,1.00 -0222,-020.00,+00.00,01.00,000.00,1.00 -0223,-020.00,+00.00,01.00,000.00,1.00 -0224,-020.00,+00.00,01.00,000.00,1.00 -0225,-020.00,+00.00,01.00,000.00,1.00 -0226,-020.00,+00.00,01.00,000.00,1.00 -0227,-020.00,+00.00,01.00,000.00,1.00 -0228,-020.00,+00.00,01.00,000.00,1.00 -0229,-020.00,+00.00,01.00,000.00,1.00 -0230,-020.00,+00.00,01.00,000.00,1.00 -0231,-020.00,+00.00,01.00,000.00,1.00 -0232,-020.00,+00.00,01.00,000.00,1.00 -0233,-020.00,+00.00,01.00,000.00,1.00 -0234,-020.00,+00.00,01.00,000.00,1.00 -0235,-020.00,+00.00,01.00,000.00,1.00 -0236,-020.00,+00.00,01.00,000.00,1.00 -0237,-020.00,+00.00,01.00,000.00,1.00 -0238,-020.00,+00.00,01.00,000.00,1.00 -0239,-020.00,+00.00,01.00,000.00,1.00 -0240,-020.00,+00.00,01.00,000.00,1.00 -0241,-020.00,+00.00,01.00,000.00,1.00 -0242,-020.00,+00.00,01.00,000.00,1.00 -0243,-020.00,+00.00,01.00,000.00,1.00 -0244,-020.00,+00.00,01.00,000.00,1.00 -0245,-020.00,+00.00,01.00,000.00,1.00 -0246,-020.00,+00.00,01.00,000.00,1.00 -0247,-020.00,+00.00,01.00,000.00,1.00 -0248,-020.00,+00.00,01.00,000.00,1.00 -0249,-020.00,+00.00,01.00,000.00,1.00 -0250,-020.00,+00.00,01.00,000.00,1.00 -0251,-020.00,+00.00,01.00,000.00,1.00 -0252,-020.00,+00.00,01.00,000.00,1.00 -0253,-020.00,+00.00,01.00,000.00,1.00 -0254,-020.00,+00.00,01.00,000.00,1.00 -0255,-020.00,+00.00,01.00,000.00,1.00 -0256,-020.00,+00.00,01.00,000.00,1.00 -0257,-020.00,+00.00,01.00,000.00,1.00 -0258,-020.00,+00.00,01.00,000.00,1.00 -0259,-020.00,+00.00,01.00,000.00,1.00 -0260,-020.00,+00.00,01.00,000.00,1.00 -0261,-020.00,+00.00,01.00,000.00,1.00 -0262,-020.00,+00.00,01.00,000.00,1.00 -0263,-020.00,+00.00,01.00,000.00,1.00 -0264,-020.00,+00.00,01.00,000.00,1.00 -0265,-020.00,+00.00,01.00,000.00,1.00 -0266,-020.00,+00.00,01.00,000.00,1.00 -0267,-020.00,+00.00,01.00,000.00,1.00 -0268,-020.00,+00.00,01.00,000.00,1.00 -0269,-020.00,+00.00,01.00,000.00,1.00 -0270,-020.00,+00.00,01.00,000.00,1.00 -0271,-020.00,+00.00,01.00,000.00,1.00 -0272,-020.00,+00.00,01.00,000.00,1.00 -0273,-020.00,+00.00,01.00,000.00,1.00 -0274,-020.00,+00.00,01.00,000.00,1.00 -0275,-020.00,+00.00,01.00,000.00,1.00 -0276,-020.00,+00.00,01.00,000.00,1.00 -0277,-020.00,+00.00,01.00,000.00,1.00 -0278,-020.00,+00.00,01.00,000.00,1.00 -0279,-020.00,+00.00,01.00,000.00,1.00 -0280,-020.00,+00.00,01.00,000.00,1.00 -0281,-020.00,+00.00,01.00,000.00,1.00 -0282,-020.00,+00.00,01.00,000.00,1.00 -0283,-020.00,+00.00,01.00,000.00,1.00 -0284,-020.00,+00.00,01.00,000.00,1.00 -0285,-020.00,+00.00,01.00,000.00,1.00 -0286,-020.00,+00.00,01.00,000.00,1.00 -0287,-020.00,+00.00,01.00,000.00,1.00 -0288,-020.00,+00.00,01.00,000.00,1.00 -0289,-020.00,+00.00,01.00,000.00,1.00 -0290,-020.00,+00.00,01.00,000.00,1.00 -0291,-020.00,+00.00,01.00,000.00,1.00 -0292,-020.00,+00.00,01.00,000.00,1.00 -0293,-020.00,+00.00,01.00,000.00,1.00 -0294,-020.00,+00.00,01.00,000.00,1.00 -0295,-020.00,+00.00,01.00,000.00,1.00 -0296,-020.00,+00.00,01.00,000.00,1.00 -0297,-020.00,+00.00,01.00,000.00,1.00 -0298,-020.00,+00.00,01.00,000.00,1.00 -0299,-020.00,+00.00,01.00,000.00,1.00 -0300,-020.00,+00.00,01.00,000.00,1.00 -0301,-020.00,+00.00,01.00,000.00,1.00 -0302,-020.00,+00.00,01.00,000.00,1.00 -0303,-020.00,+00.00,01.00,000.00,1.00 -0304,-020.00,+00.00,01.00,000.00,1.00 -0305,-020.00,+00.00,01.00,000.00,1.00 -0306,-020.00,+00.00,01.00,000.00,1.00 -0307,-020.00,+00.00,01.00,000.00,1.00 -0308,-020.00,+00.00,01.00,000.00,1.00 -0309,-020.00,+00.00,01.00,000.00,1.00 -0310,-020.00,+00.00,01.00,000.00,1.00 -0311,-020.00,+00.00,01.00,000.00,1.00 -0312,-020.00,+00.00,01.00,000.00,1.00 -0313,-020.00,+00.00,01.00,000.00,1.00 -0314,-020.00,+00.00,01.00,000.00,1.00 -0315,-020.00,+00.00,01.00,000.00,1.00 -0316,-020.00,+00.00,01.00,000.00,1.00 -0317,-020.00,+00.00,01.00,000.00,1.00 -0318,-020.00,+00.00,01.00,000.00,1.00 -0319,-020.00,+00.00,01.00,000.00,1.00 -0320,-020.00,+00.00,01.00,000.00,1.00 -0321,-020.00,+00.00,01.00,000.00,1.00 -0322,-020.00,+00.00,01.00,000.00,1.00 -0323,-020.00,+00.00,01.00,000.00,1.00 -0324,-020.00,+00.00,01.00,000.00,1.00 -0325,-020.00,+00.00,01.00,000.00,1.00 -0326,-020.00,+00.00,01.00,000.00,1.00 -0327,-020.00,+00.00,01.00,000.00,1.00 -0328,-020.00,+00.00,01.00,000.00,1.00 -0329,-020.00,+00.00,01.00,000.00,1.00 -0330,-020.00,+00.00,01.00,000.00,1.00 -0331,-020.00,+00.00,01.00,000.00,1.00 -0332,-020.00,+00.00,01.00,000.00,1.00 -0333,-020.00,+00.00,01.00,000.00,1.00 -0334,-020.00,+00.00,01.00,000.00,1.00 -0335,-020.00,+00.00,01.00,000.00,1.00 -0336,-020.00,+00.00,01.00,000.00,1.00 -0337,-020.00,+00.00,01.00,000.00,1.00 -0338,-020.00,+00.00,01.00,000.00,1.00 -0339,-020.00,+00.00,01.00,000.00,1.00 -0340,-020.00,+00.00,01.00,000.00,1.00 -0341,-020.00,+00.00,01.00,000.00,1.00 -0342,-020.00,+00.00,01.00,000.00,1.00 -0343,-020.00,+00.00,01.00,000.00,1.00 -0344,-020.00,+00.00,01.00,000.00,1.00 -0345,-020.00,+00.00,01.00,000.00,1.00 -0346,-020.00,+00.00,01.00,000.00,1.00 -0347,-020.00,+00.00,01.00,000.00,1.00 -0348,-020.00,+00.00,01.00,000.00,1.00 -0349,-020.00,+00.00,01.00,000.00,1.00 -0350,-020.00,+00.00,01.00,000.00,1.00 -0351,-020.00,+00.00,01.00,000.00,1.00 -0352,-020.00,+00.00,01.00,000.00,1.00 -0353,-020.00,+00.00,01.00,000.00,1.00 -0354,-020.00,+00.00,01.00,000.00,1.00 -0355,-020.00,+00.00,01.00,000.00,1.00 -0356,-020.00,+00.00,01.00,000.00,1.00 -0357,-020.00,+00.00,01.00,000.00,1.00 -0358,-020.00,+00.00,01.00,000.00,1.00 -0359,-020.00,+00.00,01.00,000.00,1.00 -0360,-020.00,+00.00,01.00,000.00,1.00 -0361,-020.00,+00.00,01.00,000.00,1.00 -0362,-020.00,+00.00,01.00,000.00,1.00 -0363,-020.00,+00.00,01.00,000.00,1.00 -0364,-020.00,+00.00,01.00,000.00,1.00 -0365,-020.00,+00.00,01.00,000.00,1.00 -0366,-020.00,+00.00,01.00,000.00,1.00 -0367,-020.00,+00.00,01.00,000.00,1.00 -0368,-020.00,+00.00,01.00,000.00,1.00 -0369,-020.00,+00.00,01.00,000.00,1.00 -0370,-020.00,+00.00,01.00,000.00,1.00 -0371,-020.00,+00.00,01.00,000.00,1.00 -0372,-020.00,+00.00,01.00,000.00,1.00 -0373,-020.00,+00.00,01.00,000.00,1.00 -0374,-020.00,+00.00,01.00,000.00,1.00 -0375,-020.00,+00.00,01.00,000.00,1.00 -0376,-020.00,+00.00,01.00,000.00,1.00 -0377,-020.00,+00.00,01.00,000.00,1.00 -0378,-020.00,+00.00,01.00,000.00,1.00 -0379,-020.00,+00.00,01.00,000.00,1.00 -0380,-020.00,+00.00,01.00,000.00,1.00 -0381,-020.00,+00.00,01.00,000.00,1.00 -0382,-020.00,+00.00,01.00,000.00,1.00 -0383,-020.00,+00.00,01.00,000.00,1.00 -0384,-020.00,+00.00,01.00,000.00,1.00 -0385,-020.00,+00.00,01.00,000.00,1.00 -0386,-020.00,+00.00,01.00,000.00,1.00 -0387,-020.00,+00.00,01.00,000.00,1.00 -0388,-020.00,+00.00,01.00,000.00,1.00 -0389,-020.00,+00.00,01.00,000.00,1.00 -0390,-020.00,+00.00,01.00,000.00,1.00 -0391,-020.00,+00.00,01.00,000.00,1.00 -0392,-020.00,+00.00,01.00,000.00,1.00 -0393,-020.00,+00.00,01.00,000.00,1.00 -0394,-020.00,+00.00,01.00,000.00,1.00 -0395,-020.00,+00.00,01.00,000.00,1.00 -0396,-020.00,+00.00,01.00,000.00,1.00 -0397,-020.00,+00.00,01.00,000.00,1.00 -0398,-020.00,+00.00,01.00,000.00,1.00 -0399,-020.00,+00.00,01.00,000.00,1.00 -0400,-020.00,+00.00,01.00,000.00,1.00 -0401,-020.00,+00.00,01.00,000.00,1.00 -0402,-020.00,+00.00,01.00,000.00,1.00 -0403,-020.00,+00.00,01.00,000.00,1.00 -0404,-020.00,+00.00,01.00,000.00,1.00 -0405,-020.00,+00.00,01.00,000.00,1.00 -0406,-020.00,+00.00,01.00,000.00,1.00 -0407,-020.00,+00.00,01.00,000.00,1.00 -0408,-020.00,+00.00,01.00,000.00,1.00 -0409,-020.00,+00.00,01.00,000.00,1.00 -0410,-020.00,+00.00,01.00,000.00,1.00 -0411,-020.00,+00.00,01.00,000.00,1.00 -0412,-020.00,+00.00,01.00,000.00,1.00 -0413,-020.00,+00.00,01.00,000.00,1.00 -0414,-020.00,+00.00,01.00,000.00,1.00 -0415,-020.00,+00.00,01.00,000.00,1.00 -0416,-020.00,+00.00,01.00,000.00,1.00 -0417,-020.00,+00.00,01.00,000.00,1.00 -0418,-020.00,+00.00,01.00,000.00,1.00 -0419,-020.00,+00.00,01.00,000.00,1.00 -0420,-020.00,+00.00,01.00,000.00,1.00 -0421,-020.00,+00.00,01.00,000.00,1.00 -0422,-020.00,+00.00,01.00,000.00,1.00 -0423,-020.00,+00.00,01.00,000.00,1.00 -0424,-020.00,+00.00,01.00,000.00,1.00 -0425,-020.00,+00.00,01.00,000.00,1.00 -0426,-020.00,+00.00,01.00,000.00,1.00 -0427,-020.00,+00.00,01.00,000.00,1.00 -0428,-020.00,+00.00,01.00,000.00,1.00 -0429,-020.00,+00.00,01.00,000.00,1.00 -0430,-020.00,+00.00,01.00,000.00,1.00 -0431,-020.00,+00.00,01.00,000.00,1.00 -0432,-020.00,+00.00,01.00,000.00,1.00 -0433,-020.00,+00.00,01.00,000.00,1.00 -0434,-020.00,+00.00,01.00,000.00,1.00 -0435,-020.00,+00.00,01.00,000.00,1.00 -0436,-020.00,+00.00,01.00,000.00,1.00 -0437,-020.00,+00.00,01.00,000.00,1.00 -0438,-020.00,+00.00,01.00,000.00,1.00 -0439,-020.00,+00.00,01.00,000.00,1.00 -0440,-020.00,+00.00,01.00,000.00,1.00 -0441,-020.00,+00.00,01.00,000.00,1.00 -0442,-020.00,+00.00,01.00,000.00,1.00 -0443,-020.00,+00.00,01.00,000.00,1.00 -0444,-020.00,+00.00,01.00,000.00,1.00 -0445,-020.00,+00.00,01.00,000.00,1.00 -0446,-020.00,+00.00,01.00,000.00,1.00 -0447,-020.00,+00.00,01.00,000.00,1.00 -0448,-020.00,+00.00,01.00,000.00,1.00 -0449,-020.00,+00.00,01.00,000.00,1.00 -0450,-020.00,+00.00,01.00,000.00,1.00 -0451,-020.00,+00.00,01.00,000.00,1.00 -0452,-020.00,+00.00,01.00,000.00,1.00 -0453,-020.00,+00.00,01.00,000.00,1.00 -0454,-020.00,+00.00,01.00,000.00,1.00 -0455,-020.00,+00.00,01.00,000.00,1.00 -0456,-020.00,+00.00,01.00,000.00,1.00 -0457,-020.00,+00.00,01.00,000.00,1.00 -0458,-020.00,+00.00,01.00,000.00,1.00 -0459,-020.00,+00.00,01.00,000.00,1.00 -0460,-020.00,+00.00,01.00,000.00,1.00 -0461,-020.00,+00.00,01.00,000.00,1.00 -0462,-020.00,+00.00,01.00,000.00,1.00 -0463,-020.00,+00.00,01.00,000.00,1.00 -0464,-020.00,+00.00,01.00,000.00,1.00 -0465,-020.00,+00.00,01.00,000.00,1.00 -0466,-020.00,+00.00,01.00,000.00,1.00 -0467,-020.00,+00.00,01.00,000.00,1.00 -0468,-020.00,+00.00,01.00,000.00,1.00 -0469,-020.00,+00.00,01.00,000.00,1.00 -0470,-020.00,+00.00,01.00,000.00,1.00 -0471,-020.00,+00.00,01.00,000.00,1.00 -0472,-020.00,+00.00,01.00,000.00,1.00 -0473,-020.00,+00.00,01.00,000.00,1.00 -0474,-020.00,+00.00,01.00,000.00,1.00 -0475,-020.00,+00.00,01.00,000.00,1.00 -0476,-020.00,+00.00,01.00,000.00,1.00 -0477,-020.00,+00.00,01.00,000.00,1.00 -0478,-020.00,+00.00,01.00,000.00,1.00 -0479,-020.00,+00.00,01.00,000.00,1.00 -0480,-020.00,+00.00,01.00,000.00,1.00 -0481,-020.00,+00.00,01.00,000.00,1.00 -0482,-020.00,+00.00,01.00,000.00,1.00 -0483,-020.00,+00.00,01.00,000.00,1.00 -0484,-020.00,+00.00,01.00,000.00,1.00 -0485,-020.00,+00.00,01.00,000.00,1.00 -0486,-020.00,+00.00,01.00,000.00,1.00 -0487,-020.00,+00.00,01.00,000.00,1.00 -0488,-020.00,+00.00,01.00,000.00,1.00 -0489,-020.00,+00.00,01.00,000.00,1.00 -0490,-020.00,+00.00,01.00,000.00,1.00 -0491,-020.00,+00.00,01.00,000.00,1.00 -0492,-020.00,+00.00,01.00,000.00,1.00 -0493,-020.00,+00.00,01.00,000.00,1.00 -0494,-020.00,+00.00,01.00,000.00,1.00 -0495,-020.00,+00.00,01.00,000.00,1.00 -0496,-020.00,+00.00,01.00,000.00,1.00 -0497,-020.00,+00.00,01.00,000.00,1.00 -0498,-020.00,+00.00,01.00,000.00,1.00 -0499,-020.00,+00.00,01.00,000.00,1.00 -0500,-020.00,+00.00,01.00,000.00,1.00 -0501,-020.00,+00.00,01.00,000.00,1.00 -0502,-020.00,+00.00,01.00,000.00,1.00 -0503,-020.00,+00.00,01.00,000.00,1.00 -0504,-020.00,+00.00,01.00,000.00,1.00 -0505,-020.00,+00.00,01.00,000.00,1.00 -0506,-020.00,+00.00,01.00,000.00,1.00 -0507,-020.00,+00.00,01.00,000.00,1.00 -0508,-020.00,+00.00,01.00,000.00,1.00 -0509,-020.00,+00.00,01.00,000.00,1.00 -0510,-020.00,+00.00,01.00,000.00,1.00 -0511,-020.00,+00.00,01.00,000.00,1.00 -0512,-020.00,+00.00,01.00,000.00,1.00 -0513,-020.00,+00.00,01.00,000.00,1.00 -0514,-020.00,+00.00,01.00,000.00,1.00 -0515,-020.00,+00.00,01.00,000.00,1.00 -0516,-020.00,+00.00,01.00,000.00,1.00 -0517,-020.00,+00.00,01.00,000.00,1.00 -0518,-020.00,+00.00,01.00,000.00,1.00 -0519,-020.00,+00.00,01.00,000.00,1.00 -0520,-020.00,+00.00,01.00,000.00,1.00 -0521,-020.00,+00.00,01.00,000.00,1.00 -0522,-020.00,+00.00,01.00,000.00,1.00 -0523,-020.00,+00.00,01.00,000.00,1.00 -0524,-020.00,+00.00,01.00,000.00,1.00 -0525,-020.00,+00.00,01.00,000.00,1.00 -0526,-020.00,+00.00,01.00,000.00,1.00 -0527,-020.00,+00.00,01.00,000.00,1.00 -0528,-020.00,+00.00,01.00,000.00,1.00 -0529,-020.00,+00.00,01.00,000.00,1.00 -0530,-020.00,+00.00,01.00,000.00,1.00 -0531,-020.00,+00.00,01.00,000.00,1.00 -0532,-020.00,+00.00,01.00,000.00,1.00 -0533,-020.00,+00.00,01.00,000.00,1.00 -0534,-020.00,+00.00,01.00,000.00,1.00 -0535,-020.00,+00.00,01.00,000.00,1.00 -0536,-020.00,+00.00,01.00,000.00,1.00 -0537,-020.00,+00.00,01.00,000.00,1.00 -0538,-020.00,+00.00,01.00,000.00,1.00 -0539,-020.00,+00.00,01.00,000.00,1.00 -0540,-020.00,+00.00,01.00,000.00,1.00 -0541,-020.00,+00.00,01.00,000.00,1.00 -0542,-020.00,+00.00,01.00,000.00,1.00 -0543,-020.00,+00.00,01.00,000.00,1.00 -0544,-020.00,+00.00,01.00,000.00,1.00 -0545,-020.00,+00.00,01.00,000.00,1.00 -0546,-020.00,+00.00,01.00,000.00,1.00 -0547,-020.00,+00.00,01.00,000.00,1.00 -0548,-020.00,+00.00,01.00,000.00,1.00 -0549,-020.00,+00.00,01.00,000.00,1.00 -0550,-020.00,+00.00,01.00,000.00,1.00 -0551,-020.00,+00.00,01.00,000.00,1.00 -0552,-020.00,+00.00,01.00,000.00,1.00 -0553,-020.00,+00.00,01.00,000.00,1.00 -0554,-020.00,+00.00,01.00,000.00,1.00 -0555,-020.00,+00.00,01.00,000.00,1.00 -0556,-020.00,+00.00,01.00,000.00,1.00 -0557,-020.00,+00.00,01.00,000.00,1.00 -0558,-020.00,+00.00,01.00,000.00,1.00 -0559,-020.00,+00.00,01.00,000.00,1.00 -0560,-020.00,+00.00,01.00,000.00,1.00 -0561,-020.00,+00.00,01.00,000.00,1.00 -0562,-020.00,+00.00,01.00,000.00,1.00 -0563,-020.00,+00.00,01.00,000.00,1.00 -0564,-020.00,+00.00,01.00,000.00,1.00 -0565,-020.00,+00.00,01.00,000.00,1.00 -0566,-020.00,+00.00,01.00,000.00,1.00 -0567,-020.00,+00.00,01.00,000.00,1.00 -0568,-020.00,+00.00,01.00,000.00,1.00 -0569,-020.00,+00.00,01.00,000.00,1.00 -0570,-020.00,+00.00,01.00,000.00,1.00 -0571,-020.00,+00.00,01.00,000.00,1.00 -0572,-020.00,+00.00,01.00,000.00,1.00 -0573,-020.00,+00.00,01.00,000.00,1.00 -0574,-020.00,+00.00,01.00,000.00,1.00 -0575,-020.00,+00.00,01.00,000.00,1.00 -0576,-020.00,+00.00,01.00,000.00,1.00 -0577,-020.00,+00.00,01.00,000.00,1.00 -0578,-020.00,+00.00,01.00,000.00,1.00 -0579,-020.00,+00.00,01.00,000.00,1.00 -0580,-020.00,+00.00,01.00,000.00,1.00 -0581,-020.00,+00.00,01.00,000.00,1.00 -0582,-020.00,+00.00,01.00,000.00,1.00 -0583,-020.00,+00.00,01.00,000.00,1.00 -0584,-020.00,+00.00,01.00,000.00,1.00 -0585,-020.00,+00.00,01.00,000.00,1.00 -0586,-020.00,+00.00,01.00,000.00,1.00 -0587,-020.00,+00.00,01.00,000.00,1.00 -0588,-020.00,+00.00,01.00,000.00,1.00 -0589,-020.00,+00.00,01.00,000.00,1.00 -0590,-020.00,+00.00,01.00,000.00,1.00 -0591,-020.00,+00.00,01.00,000.00,1.00 -0592,-020.00,+00.00,01.00,000.00,1.00 -0593,-020.00,+00.00,01.00,000.00,1.00 -0594,-020.00,+00.00,01.00,000.00,1.00 -0595,-020.00,+00.00,01.00,000.00,1.00 -0596,-020.00,+00.00,01.00,000.00,1.00 -0597,-020.00,+00.00,01.00,000.00,1.00 -0598,-020.00,+00.00,01.00,000.00,1.00 -0599,-020.00,+00.00,01.00,000.00,1.00 -0600,-020.00,+00.00,01.00,000.00,1.00 -0601,-020.00,+00.00,01.00,000.00,1.00 -0602,-020.00,+00.00,01.00,000.00,1.00 -0603,-020.00,+00.00,01.00,000.00,1.00 -0604,-020.00,+00.00,01.00,000.00,1.00 -0605,-020.00,+00.00,01.00,000.00,1.00 -0606,-020.00,+00.00,01.00,000.00,1.00 -0607,-020.00,+00.00,01.00,000.00,1.00 -0608,-020.00,+00.00,01.00,000.00,1.00 -0609,-020.00,+00.00,01.00,000.00,1.00 -0610,-020.00,+00.00,01.00,000.00,1.00 -0611,-020.00,+00.00,01.00,000.00,1.00 -0612,-020.00,+00.00,01.00,000.00,1.00 -0613,-020.00,+00.00,01.00,000.00,1.00 -0614,-020.00,+00.00,01.00,000.00,1.00 -0615,-020.00,+00.00,01.00,000.00,1.00 -0616,-020.00,+00.00,01.00,000.00,1.00 -0617,-020.00,+00.00,01.00,000.00,1.00 -0618,-020.00,+00.00,01.00,000.00,1.00 -0619,-020.00,+00.00,01.00,000.00,1.00 -0620,-020.00,+00.00,01.00,000.00,1.00 -0621,-020.00,+00.00,01.00,000.00,1.00 -0622,-020.00,+00.00,01.00,000.00,1.00 -0623,-020.00,+00.00,01.00,000.00,1.00 -0624,-020.00,+00.00,01.00,000.00,1.00 -0625,-020.00,+00.00,01.00,000.00,1.00 -0626,-020.00,+00.00,01.00,000.00,1.00 -0627,-020.00,+00.00,01.00,000.00,1.00 -0628,-020.00,+00.00,01.00,000.00,1.00 -0629,-020.00,+00.00,01.00,000.00,1.00 -0630,-020.00,+00.00,01.00,000.00,1.00 -0631,-020.00,+00.00,01.00,000.00,1.00 -0632,-020.00,+00.00,01.00,000.00,1.00 -0633,-020.00,+00.00,01.00,000.00,1.00 -0634,-020.00,+00.00,01.00,000.00,1.00 -0635,-020.00,+00.00,01.00,000.00,1.00 -0636,-020.00,+00.00,01.00,000.00,1.00 -0637,-020.00,+00.00,01.00,000.00,1.00 -0638,-020.00,+00.00,01.00,000.00,1.00 -0639,-020.00,+00.00,01.00,000.00,1.00 -0640,-020.00,+00.00,01.00,000.00,1.00 -0641,-020.00,+00.00,01.00,000.00,1.00 -0642,-020.00,+00.00,01.00,000.00,1.00 -0643,-020.00,+00.00,01.00,000.00,1.00 -0644,-020.00,+00.00,01.00,000.00,1.00 -0645,-020.00,+00.00,01.00,000.00,1.00 -0646,-020.00,+00.00,01.00,000.00,1.00 -0647,-020.00,+00.00,01.00,000.00,1.00 -0648,-020.00,+00.00,01.00,000.00,1.00 -0649,-020.00,+00.00,01.00,000.00,1.00 -0650,-020.00,+00.00,01.00,000.00,1.00 -0651,-020.00,+00.00,01.00,000.00,1.00 -0652,-020.00,+00.00,01.00,000.00,1.00 -0653,-020.00,+00.00,01.00,000.00,1.00 -0654,-020.00,+00.00,01.00,000.00,1.00 -0655,-020.00,+00.00,01.00,000.00,1.00 -0656,-020.00,+00.00,01.00,000.00,1.00 -0657,-020.00,+00.00,01.00,000.00,1.00 -0658,-020.00,+00.00,01.00,000.00,1.00 -0659,-020.00,+00.00,01.00,000.00,1.00 -0660,-020.00,+00.00,01.00,000.00,1.00 -0661,-020.00,+00.00,01.00,000.00,1.00 -0662,-020.00,+00.00,01.00,000.00,1.00 -0663,-020.00,+00.00,01.00,000.00,1.00 -0664,-020.00,+00.00,01.00,000.00,1.00 -0665,-020.00,+00.00,01.00,000.00,1.00 -0666,-020.00,+00.00,01.00,000.00,1.00 -0667,-020.00,+00.00,01.00,000.00,1.00 -0668,-020.00,+00.00,01.00,000.00,1.00 -0669,-020.00,+00.00,01.00,000.00,1.00 -0670,-020.00,+00.00,01.00,000.00,1.00 -0671,-020.00,+00.00,01.00,000.00,1.00 -0672,-020.00,+00.00,01.00,000.00,1.00 -0673,-020.00,+00.00,01.00,000.00,1.00 -0674,-020.00,+00.00,01.00,000.00,1.00 -0675,-020.00,+00.00,01.00,000.00,1.00 -0676,-020.00,+00.00,01.00,000.00,1.00 -0677,-020.00,+00.00,01.00,000.00,1.00 -0678,-020.00,+00.00,01.00,000.00,1.00 -0679,-020.00,+00.00,01.00,000.00,1.00 -0680,-020.00,+00.00,01.00,000.00,1.00 -0681,-020.00,+00.00,01.00,000.00,1.00 -0682,-020.00,+00.00,01.00,000.00,1.00 -0683,-020.00,+00.00,01.00,000.00,1.00 -0684,-020.00,+00.00,01.00,000.00,1.00 -0685,-020.00,+00.00,01.00,000.00,1.00 -0686,-020.00,+00.00,01.00,000.00,1.00 -0687,-020.00,+00.00,01.00,000.00,1.00 -0688,-020.00,+00.00,01.00,000.00,1.00 -0689,-020.00,+00.00,01.00,000.00,1.00 -0690,-020.00,+00.00,01.00,000.00,1.00 -0691,-020.00,+00.00,01.00,000.00,1.00 -0692,-020.00,+00.00,01.00,000.00,1.00 -0693,-020.00,+00.00,01.00,000.00,1.00 -0694,-020.00,+00.00,01.00,000.00,1.00 -0695,-020.00,+00.00,01.00,000.00,1.00 -0696,-020.00,+00.00,01.00,000.00,1.00 -0697,-020.00,+00.00,01.00,000.00,1.00 -0698,-020.00,+00.00,01.00,000.00,1.00 -0699,-020.00,+00.00,01.00,000.00,1.00 -0700,-020.00,+00.00,01.00,000.00,1.00 -0701,-020.00,+00.00,01.00,000.00,1.00 -0702,-020.00,+00.00,01.00,000.00,1.00 -0703,-020.00,+00.00,01.00,000.00,1.00 -0704,-020.00,+00.00,01.00,000.00,1.00 -0705,-020.00,+00.00,01.00,000.00,1.00 -0706,-020.00,+00.00,01.00,000.00,1.00 -0707,-020.00,+00.00,01.00,000.00,1.00 -0708,-020.00,+00.00,01.00,000.00,1.00 -0709,-020.00,+00.00,01.00,000.00,1.00 -0710,-020.00,+00.00,01.00,000.00,1.00 -0711,-020.00,+00.00,01.00,000.00,1.00 -0712,-020.00,+00.00,01.00,000.00,1.00 -0713,-020.00,+00.00,01.00,000.00,1.00 -0714,-020.00,+00.00,01.00,000.00,1.00 -0715,-020.00,+00.00,01.00,000.00,1.00 -0716,-020.00,+00.00,01.00,000.00,1.00 -0717,-020.00,+00.00,01.00,000.00,1.00 -0718,-020.00,+00.00,01.00,000.00,1.00 -0719,-020.00,+00.00,01.00,000.00,1.00 -0720,-020.00,+00.00,01.00,000.00,1.00 -0721,-020.00,+00.00,01.00,000.00,1.00 -0722,-020.00,+00.00,01.00,000.00,1.00 -0723,-020.00,+00.00,01.00,000.00,1.00 -0724,-020.00,+00.00,01.00,000.00,1.00 -0725,-020.00,+00.00,01.00,000.00,1.00 -0726,-020.00,+00.00,01.00,000.00,1.00 -0727,-020.00,+00.00,01.00,000.00,1.00 -0728,-020.00,+00.00,01.00,000.00,1.00 -0729,-020.00,+00.00,01.00,000.00,1.00 -0730,-020.00,+00.00,01.00,000.00,1.00 -0731,-020.00,+00.00,01.00,000.00,1.00 -0732,-020.00,+00.00,01.00,000.00,1.00 -0733,-020.00,+00.00,01.00,000.00,1.00 -0734,-020.00,+00.00,01.00,000.00,1.00 -0735,-020.00,+00.00,01.00,000.00,1.00 -0736,-020.00,+00.00,01.00,000.00,1.00 -0737,-020.00,+00.00,01.00,000.00,1.00 -0738,-020.00,+00.00,01.00,000.00,1.00 -0739,-020.00,+00.00,01.00,000.00,1.00 -0740,-020.00,+00.00,01.00,000.00,1.00 -0741,-020.00,+00.00,01.00,000.00,1.00 -0742,-020.00,+00.00,01.00,000.00,1.00 -0743,-020.00,+00.00,01.00,000.00,1.00 -0744,-020.00,+00.00,01.00,000.00,1.00 -0745,-020.00,+00.00,01.00,000.00,1.00 -0746,-020.00,+00.00,01.00,000.00,1.00 -0747,-020.00,+00.00,01.00,000.00,1.00 -0748,-020.00,+00.00,01.00,000.00,1.00 -0749,-020.00,+00.00,01.00,000.00,1.00 -0750,-020.00,+00.00,01.00,000.00,1.00 -0751,-020.00,+00.00,01.00,000.00,1.00 -0752,-020.00,+00.00,01.00,000.00,1.00 -0753,-020.00,+00.00,01.00,000.00,1.00 -0754,-020.00,+00.00,01.00,000.00,1.00 -0755,-020.00,+00.00,01.00,000.00,1.00 -0756,-020.00,+00.00,01.00,000.00,1.00 -0757,-020.00,+00.00,01.00,000.00,1.00 -0758,-020.00,+00.00,01.00,000.00,1.00 -0759,-020.00,+00.00,01.00,000.00,1.00 -0760,-020.00,+00.00,01.00,000.00,1.00 -0761,-020.00,+00.00,01.00,000.00,1.00 -0762,-020.00,+00.00,01.00,000.00,1.00 -0763,-020.00,+00.00,01.00,000.00,1.00 -0764,-020.00,+00.00,01.00,000.00,1.00 -0765,-020.00,+00.00,01.00,000.00,1.00 -0766,-020.00,+00.00,01.00,000.00,1.00 -0767,-020.00,+00.00,01.00,000.00,1.00 -0768,-020.00,+00.00,01.00,000.00,1.00 -0769,-020.00,+00.00,01.00,000.00,1.00 -0770,-020.00,+00.00,01.00,000.00,1.00 -0771,-020.00,+00.00,01.00,000.00,1.00 -0772,-020.00,+00.00,01.00,000.00,1.00 -0773,-020.00,+00.00,01.00,000.00,1.00 -0774,-020.00,+00.00,01.00,000.00,1.00 -0775,-020.00,+00.00,01.00,000.00,1.00 -0776,-020.00,+00.00,01.00,000.00,1.00 -0777,-020.00,+00.00,01.00,000.00,1.00 -0778,-020.00,+00.00,01.00,000.00,1.00 -0779,-020.00,+00.00,01.00,000.00,1.00 -0780,-020.00,+00.00,01.00,000.00,1.00 -0781,-020.00,+00.00,01.00,000.00,1.00 -0782,-020.00,+00.00,01.00,000.00,1.00 -0783,-020.00,+00.00,01.00,000.00,1.00 -0784,-020.00,+00.00,01.00,000.00,1.00 -0785,-020.00,+00.00,01.00,000.00,1.00 -0786,-020.00,+00.00,01.00,000.00,1.00 -0787,-020.00,+00.00,01.00,000.00,1.00 -0788,-020.00,+00.00,01.00,000.00,1.00 -0789,-020.00,+00.00,01.00,000.00,1.00 -0790,-020.00,+00.00,01.00,000.00,1.00 -0791,-020.00,+00.00,01.00,000.00,1.00 -0792,-020.00,+00.00,01.00,000.00,1.00 -0793,-020.00,+00.00,01.00,000.00,1.00 -0794,-020.00,+00.00,01.00,000.00,1.00 -0795,-020.00,+00.00,01.00,000.00,1.00 -0796,-020.00,+00.00,01.00,000.00,1.00 -0797,-020.00,+00.00,01.00,000.00,1.00 -0798,-020.00,+00.00,01.00,000.00,1.00 -0799,-020.00,+00.00,01.00,000.00,1.00 -0800,-020.00,+00.00,01.00,000.00,1.00 -0801,-020.00,+00.00,01.00,000.00,1.00 -0802,-020.00,+00.00,01.00,000.00,1.00 -0803,-020.00,+00.00,01.00,000.00,1.00 -0804,-020.00,+00.00,01.00,000.00,1.00 -0805,-020.00,+00.00,01.00,000.00,1.00 -0806,-020.00,+00.00,01.00,000.00,1.00 -0807,-020.00,+00.00,01.00,000.00,1.00 -0808,-020.00,+00.00,01.00,000.00,1.00 -0809,-020.00,+00.00,01.00,000.00,1.00 -0810,-020.00,+00.00,01.00,000.00,1.00 -0811,-020.00,+00.00,01.00,000.00,1.00 -0812,-020.00,+00.00,01.00,000.00,1.00 -0813,-020.00,+00.00,01.00,000.00,1.00 -0814,-020.00,+00.00,01.00,000.00,1.00 -0815,-020.00,+00.00,01.00,000.00,1.00 -0816,-020.00,+00.00,01.00,000.00,1.00 -0817,-020.00,+00.00,01.00,000.00,1.00 -0818,-020.00,+00.00,01.00,000.00,1.00 -0819,-020.00,+00.00,01.00,000.00,1.00 -0820,-020.00,+00.00,01.00,000.00,1.00 -0821,-020.00,+00.00,01.00,000.00,1.00 -0822,-020.00,+00.00,01.00,000.00,1.00 -0823,-020.00,+00.00,01.00,000.00,1.00 -0824,-020.00,+00.00,01.00,000.00,1.00 -0825,-020.00,+00.00,01.00,000.00,1.00 -0826,-020.00,+00.00,01.00,000.00,1.00 -0827,-020.00,+00.00,01.00,000.00,1.00 -0828,-020.00,+00.00,01.00,000.00,1.00 -0829,-020.00,+00.00,01.00,000.00,1.00 -0830,-020.00,+00.00,01.00,000.00,1.00 -0831,-020.00,+00.00,01.00,000.00,1.00 -0832,-020.00,+00.00,01.00,000.00,1.00 -0833,-020.00,+00.00,01.00,000.00,1.00 -0834,-020.00,+00.00,01.00,000.00,1.00 -0835,-020.00,+00.00,01.00,000.00,1.00 -0836,-020.00,+00.00,01.00,000.00,1.00 -0837,-020.00,+00.00,01.00,000.00,1.00 -0838,-020.00,+00.00,01.00,000.00,1.00 -0839,-020.00,+00.00,01.00,000.00,1.00 -0840,-020.00,+00.00,01.00,000.00,1.00 -0841,-020.00,+00.00,01.00,000.00,1.00 -0842,-020.00,+00.00,01.00,000.00,1.00 -0843,-020.00,+00.00,01.00,000.00,1.00 -0844,-020.00,+00.00,01.00,000.00,1.00 -0845,-020.00,+00.00,01.00,000.00,1.00 -0846,-020.00,+00.00,01.00,000.00,1.00 -0847,-020.00,+00.00,01.00,000.00,1.00 -0848,-020.00,+00.00,01.00,000.00,1.00 -0849,-020.00,+00.00,01.00,000.00,1.00 -0850,-020.00,+00.00,01.00,000.00,1.00 -0851,-020.00,+00.00,01.00,000.00,1.00 -0852,-020.00,+00.00,01.00,000.00,1.00 -0853,-020.00,+00.00,01.00,000.00,1.00 -0854,-020.00,+00.00,01.00,000.00,1.00 -0855,-020.00,+00.00,01.00,000.00,1.00 -0856,-020.00,+00.00,01.00,000.00,1.00 -0857,-020.00,+00.00,01.00,000.00,1.00 -0858,-020.00,+00.00,01.00,000.00,1.00 -0859,-020.00,+00.00,01.00,000.00,1.00 -0860,-020.00,+00.00,01.00,000.00,1.00 -0861,-020.00,+00.00,01.00,000.00,1.00 -0862,-020.00,+00.00,01.00,000.00,1.00 -0863,-020.00,+00.00,01.00,000.00,1.00 -0864,-020.00,+00.00,01.00,000.00,1.00 -0865,-020.00,+00.00,01.00,000.00,1.00 -0866,-020.00,+00.00,01.00,000.00,1.00 -0867,-020.00,+00.00,01.00,000.00,1.00 -0868,-020.00,+00.00,01.00,000.00,1.00 -0869,-020.00,+00.00,01.00,000.00,1.00 -0870,-020.00,+00.00,01.00,000.00,1.00 -0871,-020.00,+00.00,01.00,000.00,1.00 -0872,-020.00,+00.00,01.00,000.00,1.00 -0873,-020.00,+00.00,01.00,000.00,1.00 -0874,-020.00,+00.00,01.00,000.00,1.00 -0875,-020.00,+00.00,01.00,000.00,1.00 -0876,-020.00,+00.00,01.00,000.00,1.00 -0877,-020.00,+00.00,01.00,000.00,1.00 -0878,-020.00,+00.00,01.00,000.00,1.00 -0879,-020.00,+00.00,01.00,000.00,1.00 -0880,-020.00,+00.00,01.00,000.00,1.00 -0881,-020.00,+00.00,01.00,000.00,1.00 -0882,-020.00,+00.00,01.00,000.00,1.00 -0883,-020.00,+00.00,01.00,000.00,1.00 -0884,-020.00,+00.00,01.00,000.00,1.00 -0885,-020.00,+00.00,01.00,000.00,1.00 -0886,-020.00,+00.00,01.00,000.00,1.00 -0887,-020.00,+00.00,01.00,000.00,1.00 -0888,-020.00,+00.00,01.00,000.00,1.00 -0889,-020.00,+00.00,01.00,000.00,1.00 -0890,-020.00,+00.00,01.00,000.00,1.00 -0891,-020.00,+00.00,01.00,000.00,1.00 -0892,-020.00,+00.00,01.00,000.00,1.00 -0893,-020.00,+00.00,01.00,000.00,1.00 -0894,-020.00,+00.00,01.00,000.00,1.00 -0895,-020.00,+00.00,01.00,000.00,1.00 -0896,-020.00,+00.00,01.00,000.00,1.00 -0897,-020.00,+00.00,01.00,000.00,1.00 -0898,-020.00,+00.00,01.00,000.00,1.00 -0899,-020.00,+00.00,01.00,000.00,1.00 -0900,-020.00,+00.00,01.00,000.00,1.00 -0901,-020.00,+00.00,01.00,000.00,1.00 -0902,-020.00,+00.00,01.00,000.00,1.00 -0903,-020.00,+00.00,01.00,000.00,1.00 -0904,-020.00,+00.00,01.00,000.00,1.00 -0905,-020.00,+00.00,01.00,000.00,1.00 -0906,-020.00,+00.00,01.00,000.00,1.00 -0907,-020.00,+00.00,01.00,000.00,1.00 -0908,-020.00,+00.00,01.00,000.00,1.00 -0909,-020.00,+00.00,01.00,000.00,1.00 -0910,-020.00,+00.00,01.00,000.00,1.00 -0911,-020.00,+00.00,01.00,000.00,1.00 -0912,-020.00,+00.00,01.00,000.00,1.00 -0913,-020.00,+00.00,01.00,000.00,1.00 -0914,-020.00,+00.00,01.00,000.00,1.00 -0915,-020.00,+00.00,01.00,000.00,1.00 -0916,-020.00,+00.00,01.00,000.00,1.00 -0917,-020.00,+00.00,01.00,000.00,1.00 -0918,-020.00,+00.00,01.00,000.00,1.00 -0919,-020.00,+00.00,01.00,000.00,1.00 -0920,-020.00,+00.00,01.00,000.00,1.00 -0921,-020.00,+00.00,01.00,000.00,1.00 -0922,-020.00,+00.00,01.00,000.00,1.00 -0923,-020.00,+00.00,01.00,000.00,1.00 -0924,-020.00,+00.00,01.00,000.00,1.00 -0925,-020.00,+00.00,01.00,000.00,1.00 -0926,-020.00,+00.00,01.00,000.00,1.00 -0927,-020.00,+00.00,01.00,000.00,1.00 -0928,-020.00,+00.00,01.00,000.00,1.00 -0929,-020.00,+00.00,01.00,000.00,1.00 -0930,-020.00,+00.00,01.00,000.00,1.00 -0931,-020.00,+00.00,01.00,000.00,1.00 -0932,-020.00,+00.00,01.00,000.00,1.00 -0933,-020.00,+00.00,01.00,000.00,1.00 -0934,-020.00,+00.00,01.00,000.00,1.00 -0935,-020.00,+00.00,01.00,000.00,1.00 -0936,-020.00,+00.00,01.00,000.00,1.00 -0937,-020.00,+00.00,01.00,000.00,1.00 -0938,-020.00,+00.00,01.00,000.00,1.00 -0939,-020.00,+00.00,01.00,000.00,1.00 -0940,-020.00,+00.00,01.00,000.00,1.00 -0941,-020.00,+00.00,01.00,000.00,1.00 -0942,-020.00,+00.00,01.00,000.00,1.00 -0943,-020.00,+00.00,01.00,000.00,1.00 -0944,-020.00,+00.00,01.00,000.00,1.00 -0945,-020.00,+00.00,01.00,000.00,1.00 -0946,-020.00,+00.00,01.00,000.00,1.00 -0947,-020.00,+00.00,01.00,000.00,1.00 -0948,-020.00,+00.00,01.00,000.00,1.00 -0949,-020.00,+00.00,01.00,000.00,1.00 -0950,-020.00,+00.00,01.00,000.00,1.00 -0951,-020.00,+00.00,01.00,000.00,1.00 -0952,-020.00,+00.00,01.00,000.00,1.00 -0953,-020.00,+00.00,01.00,000.00,1.00 -0954,-020.00,+00.00,01.00,000.00,1.00 -0955,-020.00,+00.00,01.00,000.00,1.00 -0956,-020.00,+00.00,01.00,000.00,1.00 -0957,-020.00,+00.00,01.00,000.00,1.00 -0958,-020.00,+00.00,01.00,000.00,1.00 -0959,-020.00,+00.00,01.00,000.00,1.00 -0960,-020.00,+00.00,01.00,000.00,1.00 -0961,-020.00,+00.00,01.00,000.00,1.00 -0962,-020.00,+00.00,01.00,000.00,1.00 -0963,-020.00,+00.00,01.00,000.00,1.00 -0964,-020.00,+00.00,01.00,000.00,1.00 -0965,-020.00,+00.00,01.00,000.00,1.00 -0966,-020.00,+00.00,01.00,000.00,1.00 -0967,-020.00,+00.00,01.00,000.00,1.00 -0968,-020.00,+00.00,01.00,000.00,1.00 -0969,-020.00,+00.00,01.00,000.00,1.00 -0970,-020.00,+00.00,01.00,000.00,1.00 -0971,-020.00,+00.00,01.00,000.00,1.00 -0972,-020.00,+00.00,01.00,000.00,1.00 -0973,-020.00,+00.00,01.00,000.00,1.00 -0974,-020.00,+00.00,01.00,000.00,1.00 -0975,-020.00,+00.00,01.00,000.00,1.00 -0976,-020.00,+00.00,01.00,000.00,1.00 -0977,-020.00,+00.00,01.00,000.00,1.00 -0978,-020.00,+00.00,01.00,000.00,1.00 -0979,-020.00,+00.00,01.00,000.00,1.00 -0980,-020.00,+00.00,01.00,000.00,1.00 -0981,-020.00,+00.00,01.00,000.00,1.00 -0982,-020.00,+00.00,01.00,000.00,1.00 -0983,-020.00,+00.00,01.00,000.00,1.00 -0984,-020.00,+00.00,01.00,000.00,1.00 -0985,-020.00,+00.00,01.00,000.00,1.00 -0986,-020.00,+00.00,01.00,000.00,1.00 -0987,-020.00,+00.00,01.00,000.00,1.00 -0988,-020.00,+00.00,01.00,000.00,1.00 -0989,-020.00,+00.00,01.00,000.00,1.00 -0990,-020.00,+00.00,01.00,000.00,1.00 -0991,-020.00,+00.00,01.00,000.00,1.00 -0992,-020.00,+00.00,01.00,000.00,1.00 -0993,-020.00,+00.00,01.00,000.00,1.00 -0994,-020.00,+00.00,01.00,000.00,1.00 -0995,-020.00,+00.00,01.00,000.00,1.00 -0996,-020.00,+00.00,01.00,000.00,1.00 -0997,-020.00,+00.00,01.00,000.00,1.00 -0998,-020.00,+00.00,01.00,000.00,1.00 -0999,-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t05_ch3.csv b/scripts/td_object_renderer/metadata/csv/t05_ch3.csv index 5ac00018d4..0ca1953e37 100644 --- a/scripts/td_object_renderer/metadata/csv/t05_ch3.csv +++ b/scripts/td_object_renderer/metadata/csv/t05_ch3.csv @@ -1,1000 +1,1000 @@ -0000,+020.00,+00.00,01.00,000.00,1.00 -0001,+020.00,+00.00,01.00,000.00,1.00 -0002,+020.00,+00.00,01.00,000.00,1.00 -0003,+020.00,+00.00,01.00,000.00,1.00 -0004,+020.00,+00.00,01.00,000.00,1.00 -0005,+020.00,+00.00,01.00,000.00,1.00 -0006,+020.00,+00.00,01.00,000.00,1.00 -0007,+020.00,+00.00,01.00,000.00,1.00 -0008,+020.00,+00.00,01.00,000.00,1.00 -0009,+020.00,+00.00,01.00,000.00,1.00 -0010,+020.00,+00.00,01.00,000.00,1.00 -0011,+020.00,+00.00,01.00,000.00,1.00 -0012,+020.00,+00.00,01.00,000.00,1.00 -0013,+020.00,+00.00,01.00,000.00,1.00 -0014,+020.00,+00.00,01.00,000.00,1.00 -0015,+020.00,+00.00,01.00,000.00,1.00 -0016,+020.00,+00.00,01.00,000.00,1.00 -0017,+020.00,+00.00,01.00,000.00,1.00 -0018,+020.00,+00.00,01.00,000.00,1.00 -0019,+020.00,+00.00,01.00,000.00,1.00 -0020,+020.00,+00.00,01.00,000.00,1.00 -0021,+020.00,+00.00,01.00,000.00,1.00 -0022,+020.00,+00.00,01.00,000.00,1.00 -0023,+020.00,+00.00,01.00,000.00,1.00 -0024,+020.00,+00.00,01.00,000.00,1.00 -0025,+020.00,+00.00,01.00,000.00,1.00 -0026,+020.00,+00.00,01.00,000.00,1.00 -0027,+020.00,+00.00,01.00,000.00,1.00 -0028,+020.00,+00.00,01.00,000.00,1.00 -0029,+020.00,+00.00,01.00,000.00,1.00 -0030,+020.00,+00.00,01.00,000.00,1.00 -0031,+020.00,+00.00,01.00,000.00,1.00 -0032,+020.00,+00.00,01.00,000.00,1.00 -0033,+020.00,+00.00,01.00,000.00,1.00 -0034,+020.00,+00.00,01.00,000.00,1.00 -0035,+020.00,+00.00,01.00,000.00,1.00 -0036,+020.00,+00.00,01.00,000.00,1.00 -0037,+020.00,+00.00,01.00,000.00,1.00 -0038,+020.00,+00.00,01.00,000.00,1.00 -0039,+020.00,+00.00,01.00,000.00,1.00 -0040,+020.00,+00.00,01.00,000.00,1.00 -0041,+020.00,+00.00,01.00,000.00,1.00 -0042,+020.00,+00.00,01.00,000.00,1.00 -0043,+020.00,+00.00,01.00,000.00,1.00 -0044,+020.00,+00.00,01.00,000.00,1.00 -0045,+020.00,+00.00,01.00,000.00,1.00 -0046,+020.00,+00.00,01.00,000.00,1.00 -0047,+020.00,+00.00,01.00,000.00,1.00 -0048,+020.00,+00.00,01.00,000.00,1.00 -0049,+020.00,+00.00,01.00,000.00,1.00 -0050,+020.00,+00.00,01.00,000.00,1.00 -0051,+020.00,+00.00,01.00,000.00,1.00 -0052,+020.00,+00.00,01.00,000.00,1.00 -0053,+020.00,+00.00,01.00,000.00,1.00 -0054,+020.00,+00.00,01.00,000.00,1.00 -0055,+020.00,+00.00,01.00,000.00,1.00 -0056,+020.00,+00.00,01.00,000.00,1.00 -0057,+020.00,+00.00,01.00,000.00,1.00 -0058,+020.00,+00.00,01.00,000.00,1.00 -0059,+020.00,+00.00,01.00,000.00,1.00 -0060,+020.00,+00.00,01.00,000.00,1.00 -0061,+020.00,+00.00,01.00,000.00,1.00 -0062,+020.00,+00.00,01.00,000.00,1.00 -0063,+020.00,+00.00,01.00,000.00,1.00 -0064,+020.00,+00.00,01.00,000.00,1.00 -0065,+020.00,+00.00,01.00,000.00,1.00 -0066,+020.00,+00.00,01.00,000.00,1.00 -0067,+020.00,+00.00,01.00,000.00,1.00 -0068,+020.00,+00.00,01.00,000.00,1.00 -0069,+020.00,+00.00,01.00,000.00,1.00 -0070,+020.00,+00.00,01.00,000.00,1.00 -0071,+020.00,+00.00,01.00,000.00,1.00 -0072,+020.00,+00.00,01.00,000.00,1.00 -0073,+020.00,+00.00,01.00,000.00,1.00 -0074,+020.00,+00.00,01.00,000.00,1.00 -0075,+020.00,+00.00,01.00,000.00,1.00 -0076,+020.00,+00.00,01.00,000.00,1.00 -0077,+020.00,+00.00,01.00,000.00,1.00 -0078,+020.00,+00.00,01.00,000.00,1.00 -0079,+020.00,+00.00,01.00,000.00,1.00 -0080,+020.00,+00.00,01.00,000.00,1.00 -0081,+020.00,+00.00,01.00,000.00,1.00 -0082,+020.00,+00.00,01.00,000.00,1.00 -0083,+020.00,+00.00,01.00,000.00,1.00 -0084,+020.00,+00.00,01.00,000.00,1.00 -0085,+020.00,+00.00,01.00,000.00,1.00 -0086,+020.00,+00.00,01.00,000.00,1.00 -0087,+020.00,+00.00,01.00,000.00,1.00 -0088,+020.00,+00.00,01.00,000.00,1.00 -0089,+020.00,+00.00,01.00,000.00,1.00 -0090,+020.00,+00.00,01.00,000.00,1.00 -0091,+020.00,+00.00,01.00,000.00,1.00 -0092,+020.00,+00.00,01.00,000.00,1.00 -0093,+020.00,+00.00,01.00,000.00,1.00 -0094,+020.00,+00.00,01.00,000.00,1.00 -0095,+020.00,+00.00,01.00,000.00,1.00 -0096,+020.00,+00.00,01.00,000.00,1.00 -0097,+020.00,+00.00,01.00,000.00,1.00 -0098,+020.00,+00.00,01.00,000.00,1.00 -0099,+020.00,+00.00,01.00,000.00,1.00 -0100,+020.00,+00.00,01.00,000.00,1.00 -0101,+020.00,+00.00,01.00,000.00,1.00 -0102,+020.00,+00.00,01.00,000.00,1.00 -0103,+020.00,+00.00,01.00,000.00,1.00 -0104,+020.00,+00.00,01.00,000.00,1.00 -0105,+020.00,+00.00,01.00,000.00,1.00 -0106,+020.00,+00.00,01.00,000.00,1.00 -0107,+020.00,+00.00,01.00,000.00,1.00 -0108,+020.00,+00.00,01.00,000.00,1.00 -0109,+020.00,+00.00,01.00,000.00,1.00 -0110,+020.00,+00.00,01.00,000.00,1.00 -0111,+020.00,+00.00,01.00,000.00,1.00 -0112,+020.00,+00.00,01.00,000.00,1.00 -0113,+020.00,+00.00,01.00,000.00,1.00 -0114,+020.00,+00.00,01.00,000.00,1.00 -0115,+020.00,+00.00,01.00,000.00,1.00 -0116,+020.00,+00.00,01.00,000.00,1.00 -0117,+020.00,+00.00,01.00,000.00,1.00 -0118,+020.00,+00.00,01.00,000.00,1.00 -0119,+020.00,+00.00,01.00,000.00,1.00 -0120,+020.00,+00.00,01.00,000.00,1.00 -0121,+020.00,+00.00,01.00,000.00,1.00 -0122,+020.00,+00.00,01.00,000.00,1.00 -0123,+020.00,+00.00,01.00,000.00,1.00 -0124,+020.00,+00.00,01.00,000.00,1.00 -0125,+020.00,+00.00,01.00,000.00,1.00 -0126,+020.00,+00.00,01.00,000.00,1.00 -0127,+020.00,+00.00,01.00,000.00,1.00 -0128,+020.00,+00.00,01.00,000.00,1.00 -0129,+020.00,+00.00,01.00,000.00,1.00 -0130,+020.00,+00.00,01.00,000.00,1.00 -0131,+020.00,+00.00,01.00,000.00,1.00 -0132,+020.00,+00.00,01.00,000.00,1.00 -0133,+020.00,+00.00,01.00,000.00,1.00 -0134,+020.00,+00.00,01.00,000.00,1.00 -0135,+020.00,+00.00,01.00,000.00,1.00 -0136,+020.00,+00.00,01.00,000.00,1.00 -0137,+020.00,+00.00,01.00,000.00,1.00 -0138,+020.00,+00.00,01.00,000.00,1.00 -0139,+020.00,+00.00,01.00,000.00,1.00 -0140,+020.00,+00.00,01.00,000.00,1.00 -0141,+020.00,+00.00,01.00,000.00,1.00 -0142,+020.00,+00.00,01.00,000.00,1.00 -0143,+020.00,+00.00,01.00,000.00,1.00 -0144,+020.00,+00.00,01.00,000.00,1.00 -0145,+020.00,+00.00,01.00,000.00,1.00 -0146,+020.00,+00.00,01.00,000.00,1.00 -0147,+020.00,+00.00,01.00,000.00,1.00 -0148,+020.00,+00.00,01.00,000.00,1.00 -0149,+020.00,+00.00,01.00,000.00,1.00 -0150,+020.00,+00.00,01.00,000.00,1.00 -0151,+020.00,+00.00,01.00,000.00,1.00 -0152,+020.00,+00.00,01.00,000.00,1.00 -0153,+020.00,+00.00,01.00,000.00,1.00 -0154,+020.00,+00.00,01.00,000.00,1.00 -0155,+020.00,+00.00,01.00,000.00,1.00 -0156,+020.00,+00.00,01.00,000.00,1.00 -0157,+020.00,+00.00,01.00,000.00,1.00 -0158,+020.00,+00.00,01.00,000.00,1.00 -0159,+020.00,+00.00,01.00,000.00,1.00 -0160,+020.00,+00.00,01.00,000.00,1.00 -0161,+020.00,+00.00,01.00,000.00,1.00 -0162,+020.00,+00.00,01.00,000.00,1.00 -0163,+020.00,+00.00,01.00,000.00,1.00 -0164,+020.00,+00.00,01.00,000.00,1.00 -0165,+020.00,+00.00,01.00,000.00,1.00 -0166,+020.00,+00.00,01.00,000.00,1.00 -0167,+020.00,+00.00,01.00,000.00,1.00 -0168,+020.00,+00.00,01.00,000.00,1.00 -0169,+020.00,+00.00,01.00,000.00,1.00 -0170,+020.00,+00.00,01.00,000.00,1.00 -0171,+020.00,+00.00,01.00,000.00,1.00 -0172,+020.00,+00.00,01.00,000.00,1.00 -0173,+020.00,+00.00,01.00,000.00,1.00 -0174,+020.00,+00.00,01.00,000.00,1.00 -0175,+020.00,+00.00,01.00,000.00,1.00 -0176,+020.00,+00.00,01.00,000.00,1.00 -0177,+020.00,+00.00,01.00,000.00,1.00 -0178,+020.00,+00.00,01.00,000.00,1.00 -0179,+020.00,+00.00,01.00,000.00,1.00 -0180,+020.00,+00.00,01.00,000.00,1.00 -0181,+020.00,+00.00,01.00,000.00,1.00 -0182,+020.00,+00.00,01.00,000.00,1.00 -0183,+020.00,+00.00,01.00,000.00,1.00 -0184,+020.00,+00.00,01.00,000.00,1.00 -0185,+020.00,+00.00,01.00,000.00,1.00 -0186,+020.00,+00.00,01.00,000.00,1.00 -0187,+020.00,+00.00,01.00,000.00,1.00 -0188,+020.00,+00.00,01.00,000.00,1.00 -0189,+020.00,+00.00,01.00,000.00,1.00 -0190,+020.00,+00.00,01.00,000.00,1.00 -0191,+020.00,+00.00,01.00,000.00,1.00 -0192,+020.00,+00.00,01.00,000.00,1.00 -0193,+020.00,+00.00,01.00,000.00,1.00 -0194,+020.00,+00.00,01.00,000.00,1.00 -0195,+020.00,+00.00,01.00,000.00,1.00 -0196,+020.00,+00.00,01.00,000.00,1.00 -0197,+020.00,+00.00,01.00,000.00,1.00 -0198,+020.00,+00.00,01.00,000.00,1.00 -0199,+020.00,+00.00,01.00,000.00,1.00 -0200,+020.00,+00.00,01.00,000.00,1.00 -0201,+020.00,+00.00,01.00,000.00,1.00 -0202,+020.00,+00.00,01.00,000.00,1.00 -0203,+020.00,+00.00,01.00,000.00,1.00 -0204,+020.00,+00.00,01.00,000.00,1.00 -0205,+020.00,+00.00,01.00,000.00,1.00 -0206,+020.00,+00.00,01.00,000.00,1.00 -0207,+020.00,+00.00,01.00,000.00,1.00 -0208,+020.00,+00.00,01.00,000.00,1.00 -0209,+020.00,+00.00,01.00,000.00,1.00 -0210,+020.00,+00.00,01.00,000.00,1.00 -0211,+020.00,+00.00,01.00,000.00,1.00 -0212,+020.00,+00.00,01.00,000.00,1.00 -0213,+020.00,+00.00,01.00,000.00,1.00 -0214,+020.00,+00.00,01.00,000.00,1.00 -0215,+020.00,+00.00,01.00,000.00,1.00 -0216,+020.00,+00.00,01.00,000.00,1.00 -0217,+020.00,+00.00,01.00,000.00,1.00 -0218,+020.00,+00.00,01.00,000.00,1.00 -0219,+020.00,+00.00,01.00,000.00,1.00 -0220,+020.00,+00.00,01.00,000.00,1.00 -0221,+020.00,+00.00,01.00,000.00,1.00 -0222,+020.00,+00.00,01.00,000.00,1.00 -0223,+020.00,+00.00,01.00,000.00,1.00 -0224,+020.00,+00.00,01.00,000.00,1.00 -0225,+020.00,+00.00,01.00,000.00,1.00 -0226,+020.00,+00.00,01.00,000.00,1.00 -0227,+020.00,+00.00,01.00,000.00,1.00 -0228,+020.00,+00.00,01.00,000.00,1.00 -0229,+020.00,+00.00,01.00,000.00,1.00 -0230,+020.00,+00.00,01.00,000.00,1.00 -0231,+020.00,+00.00,01.00,000.00,1.00 -0232,+020.00,+00.00,01.00,000.00,1.00 -0233,+020.00,+00.00,01.00,000.00,1.00 -0234,+020.00,+00.00,01.00,000.00,1.00 -0235,+020.00,+00.00,01.00,000.00,1.00 -0236,+020.00,+00.00,01.00,000.00,1.00 -0237,+020.00,+00.00,01.00,000.00,1.00 -0238,+020.00,+00.00,01.00,000.00,1.00 -0239,+020.00,+00.00,01.00,000.00,1.00 -0240,+020.00,+00.00,01.00,000.00,1.00 -0241,+020.00,+00.00,01.00,000.00,1.00 -0242,+020.00,+00.00,01.00,000.00,1.00 -0243,+020.00,+00.00,01.00,000.00,1.00 -0244,+020.00,+00.00,01.00,000.00,1.00 -0245,+020.00,+00.00,01.00,000.00,1.00 -0246,+020.00,+00.00,01.00,000.00,1.00 -0247,+020.00,+00.00,01.00,000.00,1.00 -0248,+020.00,+00.00,01.00,000.00,1.00 -0249,+020.00,+00.00,01.00,000.00,1.00 -0250,+020.00,+00.00,01.00,000.00,1.00 -0251,+020.00,+00.00,01.00,000.00,1.00 -0252,+020.00,+00.00,01.00,000.00,1.00 -0253,+020.00,+00.00,01.00,000.00,1.00 -0254,+020.00,+00.00,01.00,000.00,1.00 -0255,+020.00,+00.00,01.00,000.00,1.00 -0256,+020.00,+00.00,01.00,000.00,1.00 -0257,+020.00,+00.00,01.00,000.00,1.00 -0258,+020.00,+00.00,01.00,000.00,1.00 -0259,+020.00,+00.00,01.00,000.00,1.00 -0260,+020.00,+00.00,01.00,000.00,1.00 -0261,+020.00,+00.00,01.00,000.00,1.00 -0262,+020.00,+00.00,01.00,000.00,1.00 -0263,+020.00,+00.00,01.00,000.00,1.00 -0264,+020.00,+00.00,01.00,000.00,1.00 -0265,+020.00,+00.00,01.00,000.00,1.00 -0266,+020.00,+00.00,01.00,000.00,1.00 -0267,+020.00,+00.00,01.00,000.00,1.00 -0268,+020.00,+00.00,01.00,000.00,1.00 -0269,+020.00,+00.00,01.00,000.00,1.00 -0270,+020.00,+00.00,01.00,000.00,1.00 -0271,+020.00,+00.00,01.00,000.00,1.00 -0272,+020.00,+00.00,01.00,000.00,1.00 -0273,+020.00,+00.00,01.00,000.00,1.00 -0274,+020.00,+00.00,01.00,000.00,1.00 -0275,+020.00,+00.00,01.00,000.00,1.00 -0276,+020.00,+00.00,01.00,000.00,1.00 -0277,+020.00,+00.00,01.00,000.00,1.00 -0278,+020.00,+00.00,01.00,000.00,1.00 -0279,+020.00,+00.00,01.00,000.00,1.00 -0280,+020.00,+00.00,01.00,000.00,1.00 -0281,+020.00,+00.00,01.00,000.00,1.00 -0282,+020.00,+00.00,01.00,000.00,1.00 -0283,+020.00,+00.00,01.00,000.00,1.00 -0284,+020.00,+00.00,01.00,000.00,1.00 -0285,+020.00,+00.00,01.00,000.00,1.00 -0286,+020.00,+00.00,01.00,000.00,1.00 -0287,+020.00,+00.00,01.00,000.00,1.00 -0288,+020.00,+00.00,01.00,000.00,1.00 -0289,+020.00,+00.00,01.00,000.00,1.00 -0290,+020.00,+00.00,01.00,000.00,1.00 -0291,+020.00,+00.00,01.00,000.00,1.00 -0292,+020.00,+00.00,01.00,000.00,1.00 -0293,+020.00,+00.00,01.00,000.00,1.00 -0294,+020.00,+00.00,01.00,000.00,1.00 -0295,+020.00,+00.00,01.00,000.00,1.00 -0296,+020.00,+00.00,01.00,000.00,1.00 -0297,+020.00,+00.00,01.00,000.00,1.00 -0298,+020.00,+00.00,01.00,000.00,1.00 -0299,+020.00,+00.00,01.00,000.00,1.00 -0300,+020.00,+00.00,01.00,000.00,1.00 -0301,+020.00,+00.00,01.00,000.00,1.00 -0302,+020.00,+00.00,01.00,000.00,1.00 -0303,+020.00,+00.00,01.00,000.00,1.00 -0304,+020.00,+00.00,01.00,000.00,1.00 -0305,+020.00,+00.00,01.00,000.00,1.00 -0306,+020.00,+00.00,01.00,000.00,1.00 -0307,+020.00,+00.00,01.00,000.00,1.00 -0308,+020.00,+00.00,01.00,000.00,1.00 -0309,+020.00,+00.00,01.00,000.00,1.00 -0310,+020.00,+00.00,01.00,000.00,1.00 -0311,+020.00,+00.00,01.00,000.00,1.00 -0312,+020.00,+00.00,01.00,000.00,1.00 -0313,+020.00,+00.00,01.00,000.00,1.00 -0314,+020.00,+00.00,01.00,000.00,1.00 -0315,+020.00,+00.00,01.00,000.00,1.00 -0316,+020.00,+00.00,01.00,000.00,1.00 -0317,+020.00,+00.00,01.00,000.00,1.00 -0318,+020.00,+00.00,01.00,000.00,1.00 -0319,+020.00,+00.00,01.00,000.00,1.00 -0320,+020.00,+00.00,01.00,000.00,1.00 -0321,+020.00,+00.00,01.00,000.00,1.00 -0322,+020.00,+00.00,01.00,000.00,1.00 -0323,+020.00,+00.00,01.00,000.00,1.00 -0324,+020.00,+00.00,01.00,000.00,1.00 -0325,+020.00,+00.00,01.00,000.00,1.00 -0326,+020.00,+00.00,01.00,000.00,1.00 -0327,+020.00,+00.00,01.00,000.00,1.00 -0328,+020.00,+00.00,01.00,000.00,1.00 -0329,+020.00,+00.00,01.00,000.00,1.00 -0330,+020.00,+00.00,01.00,000.00,1.00 -0331,+020.00,+00.00,01.00,000.00,1.00 -0332,+020.00,+00.00,01.00,000.00,1.00 -0333,+020.00,+00.00,01.00,000.00,1.00 -0334,+020.00,+00.00,01.00,000.00,1.00 -0335,+020.00,+00.00,01.00,000.00,1.00 -0336,+020.00,+00.00,01.00,000.00,1.00 -0337,+020.00,+00.00,01.00,000.00,1.00 -0338,+020.00,+00.00,01.00,000.00,1.00 -0339,+020.00,+00.00,01.00,000.00,1.00 -0340,+020.00,+00.00,01.00,000.00,1.00 -0341,+020.00,+00.00,01.00,000.00,1.00 -0342,+020.00,+00.00,01.00,000.00,1.00 -0343,+020.00,+00.00,01.00,000.00,1.00 -0344,+020.00,+00.00,01.00,000.00,1.00 -0345,+020.00,+00.00,01.00,000.00,1.00 -0346,+020.00,+00.00,01.00,000.00,1.00 -0347,+020.00,+00.00,01.00,000.00,1.00 -0348,+020.00,+00.00,01.00,000.00,1.00 -0349,+020.00,+00.00,01.00,000.00,1.00 -0350,+020.00,+00.00,01.00,000.00,1.00 -0351,+020.00,+00.00,01.00,000.00,1.00 -0352,+020.00,+00.00,01.00,000.00,1.00 -0353,+020.00,+00.00,01.00,000.00,1.00 -0354,+020.00,+00.00,01.00,000.00,1.00 -0355,+020.00,+00.00,01.00,000.00,1.00 -0356,+020.00,+00.00,01.00,000.00,1.00 -0357,+020.00,+00.00,01.00,000.00,1.00 -0358,+020.00,+00.00,01.00,000.00,1.00 -0359,+020.00,+00.00,01.00,000.00,1.00 -0360,+020.00,+00.00,01.00,000.00,1.00 -0361,+020.00,+00.00,01.00,000.00,1.00 -0362,+020.00,+00.00,01.00,000.00,1.00 -0363,+020.00,+00.00,01.00,000.00,1.00 -0364,+020.00,+00.00,01.00,000.00,1.00 -0365,+020.00,+00.00,01.00,000.00,1.00 -0366,+020.00,+00.00,01.00,000.00,1.00 -0367,+020.00,+00.00,01.00,000.00,1.00 -0368,+020.00,+00.00,01.00,000.00,1.00 -0369,+020.00,+00.00,01.00,000.00,1.00 -0370,+020.00,+00.00,01.00,000.00,1.00 -0371,+020.00,+00.00,01.00,000.00,1.00 -0372,+020.00,+00.00,01.00,000.00,1.00 -0373,+020.00,+00.00,01.00,000.00,1.00 -0374,+020.00,+00.00,01.00,000.00,1.00 -0375,+020.00,+00.00,01.00,000.00,1.00 -0376,+020.00,+00.00,01.00,000.00,1.00 -0377,+020.00,+00.00,01.00,000.00,1.00 -0378,+020.00,+00.00,01.00,000.00,1.00 -0379,+020.00,+00.00,01.00,000.00,1.00 -0380,+020.00,+00.00,01.00,000.00,1.00 -0381,+020.00,+00.00,01.00,000.00,1.00 -0382,+020.00,+00.00,01.00,000.00,1.00 -0383,+020.00,+00.00,01.00,000.00,1.00 -0384,+020.00,+00.00,01.00,000.00,1.00 -0385,+020.00,+00.00,01.00,000.00,1.00 -0386,+020.00,+00.00,01.00,000.00,1.00 -0387,+020.00,+00.00,01.00,000.00,1.00 -0388,+020.00,+00.00,01.00,000.00,1.00 -0389,+020.00,+00.00,01.00,000.00,1.00 -0390,+020.00,+00.00,01.00,000.00,1.00 -0391,+020.00,+00.00,01.00,000.00,1.00 -0392,+020.00,+00.00,01.00,000.00,1.00 -0393,+020.00,+00.00,01.00,000.00,1.00 -0394,+020.00,+00.00,01.00,000.00,1.00 -0395,+020.00,+00.00,01.00,000.00,1.00 -0396,+020.00,+00.00,01.00,000.00,1.00 -0397,+020.00,+00.00,01.00,000.00,1.00 -0398,+020.00,+00.00,01.00,000.00,1.00 -0399,+020.00,+00.00,01.00,000.00,1.00 -0400,+020.00,+00.00,01.00,000.00,1.00 -0401,+020.00,+00.00,01.00,000.00,1.00 -0402,+020.00,+00.00,01.00,000.00,1.00 -0403,+020.00,+00.00,01.00,000.00,1.00 -0404,+020.00,+00.00,01.00,000.00,1.00 -0405,+020.00,+00.00,01.00,000.00,1.00 -0406,+020.00,+00.00,01.00,000.00,1.00 -0407,+020.00,+00.00,01.00,000.00,1.00 -0408,+020.00,+00.00,01.00,000.00,1.00 -0409,+020.00,+00.00,01.00,000.00,1.00 -0410,+020.00,+00.00,01.00,000.00,1.00 -0411,+020.00,+00.00,01.00,000.00,1.00 -0412,+020.00,+00.00,01.00,000.00,1.00 -0413,+020.00,+00.00,01.00,000.00,1.00 -0414,+020.00,+00.00,01.00,000.00,1.00 -0415,+020.00,+00.00,01.00,000.00,1.00 -0416,+020.00,+00.00,01.00,000.00,1.00 -0417,+020.00,+00.00,01.00,000.00,1.00 -0418,+020.00,+00.00,01.00,000.00,1.00 -0419,+020.00,+00.00,01.00,000.00,1.00 -0420,+020.00,+00.00,01.00,000.00,1.00 -0421,+020.00,+00.00,01.00,000.00,1.00 -0422,+020.00,+00.00,01.00,000.00,1.00 -0423,+020.00,+00.00,01.00,000.00,1.00 -0424,+020.00,+00.00,01.00,000.00,1.00 -0425,+020.00,+00.00,01.00,000.00,1.00 -0426,+020.00,+00.00,01.00,000.00,1.00 -0427,+020.00,+00.00,01.00,000.00,1.00 -0428,+020.00,+00.00,01.00,000.00,1.00 -0429,+020.00,+00.00,01.00,000.00,1.00 -0430,+020.00,+00.00,01.00,000.00,1.00 -0431,+020.00,+00.00,01.00,000.00,1.00 -0432,+020.00,+00.00,01.00,000.00,1.00 -0433,+020.00,+00.00,01.00,000.00,1.00 -0434,+020.00,+00.00,01.00,000.00,1.00 -0435,+020.00,+00.00,01.00,000.00,1.00 -0436,+020.00,+00.00,01.00,000.00,1.00 -0437,+020.00,+00.00,01.00,000.00,1.00 -0438,+020.00,+00.00,01.00,000.00,1.00 -0439,+020.00,+00.00,01.00,000.00,1.00 -0440,+020.00,+00.00,01.00,000.00,1.00 -0441,+020.00,+00.00,01.00,000.00,1.00 -0442,+020.00,+00.00,01.00,000.00,1.00 -0443,+020.00,+00.00,01.00,000.00,1.00 -0444,+020.00,+00.00,01.00,000.00,1.00 -0445,+020.00,+00.00,01.00,000.00,1.00 -0446,+020.00,+00.00,01.00,000.00,1.00 -0447,+020.00,+00.00,01.00,000.00,1.00 -0448,+020.00,+00.00,01.00,000.00,1.00 -0449,+020.00,+00.00,01.00,000.00,1.00 -0450,+020.00,+00.00,01.00,000.00,1.00 -0451,+020.00,+00.00,01.00,000.00,1.00 -0452,+020.00,+00.00,01.00,000.00,1.00 -0453,+020.00,+00.00,01.00,000.00,1.00 -0454,+020.00,+00.00,01.00,000.00,1.00 -0455,+020.00,+00.00,01.00,000.00,1.00 -0456,+020.00,+00.00,01.00,000.00,1.00 -0457,+020.00,+00.00,01.00,000.00,1.00 -0458,+020.00,+00.00,01.00,000.00,1.00 -0459,+020.00,+00.00,01.00,000.00,1.00 -0460,+020.00,+00.00,01.00,000.00,1.00 -0461,+020.00,+00.00,01.00,000.00,1.00 -0462,+020.00,+00.00,01.00,000.00,1.00 -0463,+020.00,+00.00,01.00,000.00,1.00 -0464,+020.00,+00.00,01.00,000.00,1.00 -0465,+020.00,+00.00,01.00,000.00,1.00 -0466,+020.00,+00.00,01.00,000.00,1.00 -0467,+020.00,+00.00,01.00,000.00,1.00 -0468,+020.00,+00.00,01.00,000.00,1.00 -0469,+020.00,+00.00,01.00,000.00,1.00 -0470,+020.00,+00.00,01.00,000.00,1.00 -0471,+020.00,+00.00,01.00,000.00,1.00 -0472,+020.00,+00.00,01.00,000.00,1.00 -0473,+020.00,+00.00,01.00,000.00,1.00 -0474,+020.00,+00.00,01.00,000.00,1.00 -0475,+020.00,+00.00,01.00,000.00,1.00 -0476,+020.00,+00.00,01.00,000.00,1.00 -0477,+020.00,+00.00,01.00,000.00,1.00 -0478,+020.00,+00.00,01.00,000.00,1.00 -0479,+020.00,+00.00,01.00,000.00,1.00 -0480,+020.00,+00.00,01.00,000.00,1.00 -0481,+020.00,+00.00,01.00,000.00,1.00 -0482,+020.00,+00.00,01.00,000.00,1.00 -0483,+020.00,+00.00,01.00,000.00,1.00 -0484,+020.00,+00.00,01.00,000.00,1.00 -0485,+020.00,+00.00,01.00,000.00,1.00 -0486,+020.00,+00.00,01.00,000.00,1.00 -0487,+020.00,+00.00,01.00,000.00,1.00 -0488,+020.00,+00.00,01.00,000.00,1.00 -0489,+020.00,+00.00,01.00,000.00,1.00 -0490,+020.00,+00.00,01.00,000.00,1.00 -0491,+020.00,+00.00,01.00,000.00,1.00 -0492,+020.00,+00.00,01.00,000.00,1.00 -0493,+020.00,+00.00,01.00,000.00,1.00 -0494,+020.00,+00.00,01.00,000.00,1.00 -0495,+020.00,+00.00,01.00,000.00,1.00 -0496,+020.00,+00.00,01.00,000.00,1.00 -0497,+020.00,+00.00,01.00,000.00,1.00 -0498,+020.00,+00.00,01.00,000.00,1.00 -0499,+020.00,+00.00,01.00,000.00,1.00 -0500,+020.00,+00.00,01.00,000.00,1.00 -0501,+020.00,+00.00,01.00,000.00,1.00 -0502,+020.00,+00.00,01.00,000.00,1.00 -0503,+020.00,+00.00,01.00,000.00,1.00 -0504,+020.00,+00.00,01.00,000.00,1.00 -0505,+020.00,+00.00,01.00,000.00,1.00 -0506,+020.00,+00.00,01.00,000.00,1.00 -0507,+020.00,+00.00,01.00,000.00,1.00 -0508,+020.00,+00.00,01.00,000.00,1.00 -0509,+020.00,+00.00,01.00,000.00,1.00 -0510,+020.00,+00.00,01.00,000.00,1.00 -0511,+020.00,+00.00,01.00,000.00,1.00 -0512,+020.00,+00.00,01.00,000.00,1.00 -0513,+020.00,+00.00,01.00,000.00,1.00 -0514,+020.00,+00.00,01.00,000.00,1.00 -0515,+020.00,+00.00,01.00,000.00,1.00 -0516,+020.00,+00.00,01.00,000.00,1.00 -0517,+020.00,+00.00,01.00,000.00,1.00 -0518,+020.00,+00.00,01.00,000.00,1.00 -0519,+020.00,+00.00,01.00,000.00,1.00 -0520,+020.00,+00.00,01.00,000.00,1.00 -0521,+020.00,+00.00,01.00,000.00,1.00 -0522,+020.00,+00.00,01.00,000.00,1.00 -0523,+020.00,+00.00,01.00,000.00,1.00 -0524,+020.00,+00.00,01.00,000.00,1.00 -0525,+020.00,+00.00,01.00,000.00,1.00 -0526,+020.00,+00.00,01.00,000.00,1.00 -0527,+020.00,+00.00,01.00,000.00,1.00 -0528,+020.00,+00.00,01.00,000.00,1.00 -0529,+020.00,+00.00,01.00,000.00,1.00 -0530,+020.00,+00.00,01.00,000.00,1.00 -0531,+020.00,+00.00,01.00,000.00,1.00 -0532,+020.00,+00.00,01.00,000.00,1.00 -0533,+020.00,+00.00,01.00,000.00,1.00 -0534,+020.00,+00.00,01.00,000.00,1.00 -0535,+020.00,+00.00,01.00,000.00,1.00 -0536,+020.00,+00.00,01.00,000.00,1.00 -0537,+020.00,+00.00,01.00,000.00,1.00 -0538,+020.00,+00.00,01.00,000.00,1.00 -0539,+020.00,+00.00,01.00,000.00,1.00 -0540,+020.00,+00.00,01.00,000.00,1.00 -0541,+020.00,+00.00,01.00,000.00,1.00 -0542,+020.00,+00.00,01.00,000.00,1.00 -0543,+020.00,+00.00,01.00,000.00,1.00 -0544,+020.00,+00.00,01.00,000.00,1.00 -0545,+020.00,+00.00,01.00,000.00,1.00 -0546,+020.00,+00.00,01.00,000.00,1.00 -0547,+020.00,+00.00,01.00,000.00,1.00 -0548,+020.00,+00.00,01.00,000.00,1.00 -0549,+020.00,+00.00,01.00,000.00,1.00 -0550,+020.00,+00.00,01.00,000.00,1.00 -0551,+020.00,+00.00,01.00,000.00,1.00 -0552,+020.00,+00.00,01.00,000.00,1.00 -0553,+020.00,+00.00,01.00,000.00,1.00 -0554,+020.00,+00.00,01.00,000.00,1.00 -0555,+020.00,+00.00,01.00,000.00,1.00 -0556,+020.00,+00.00,01.00,000.00,1.00 -0557,+020.00,+00.00,01.00,000.00,1.00 -0558,+020.00,+00.00,01.00,000.00,1.00 -0559,+020.00,+00.00,01.00,000.00,1.00 -0560,+020.00,+00.00,01.00,000.00,1.00 -0561,+020.00,+00.00,01.00,000.00,1.00 -0562,+020.00,+00.00,01.00,000.00,1.00 -0563,+020.00,+00.00,01.00,000.00,1.00 -0564,+020.00,+00.00,01.00,000.00,1.00 -0565,+020.00,+00.00,01.00,000.00,1.00 -0566,+020.00,+00.00,01.00,000.00,1.00 -0567,+020.00,+00.00,01.00,000.00,1.00 -0568,+020.00,+00.00,01.00,000.00,1.00 -0569,+020.00,+00.00,01.00,000.00,1.00 -0570,+020.00,+00.00,01.00,000.00,1.00 -0571,+020.00,+00.00,01.00,000.00,1.00 -0572,+020.00,+00.00,01.00,000.00,1.00 -0573,+020.00,+00.00,01.00,000.00,1.00 -0574,+020.00,+00.00,01.00,000.00,1.00 -0575,+020.00,+00.00,01.00,000.00,1.00 -0576,+020.00,+00.00,01.00,000.00,1.00 -0577,+020.00,+00.00,01.00,000.00,1.00 -0578,+020.00,+00.00,01.00,000.00,1.00 -0579,+020.00,+00.00,01.00,000.00,1.00 -0580,+020.00,+00.00,01.00,000.00,1.00 -0581,+020.00,+00.00,01.00,000.00,1.00 -0582,+020.00,+00.00,01.00,000.00,1.00 -0583,+020.00,+00.00,01.00,000.00,1.00 -0584,+020.00,+00.00,01.00,000.00,1.00 -0585,+020.00,+00.00,01.00,000.00,1.00 -0586,+020.00,+00.00,01.00,000.00,1.00 -0587,+020.00,+00.00,01.00,000.00,1.00 -0588,+020.00,+00.00,01.00,000.00,1.00 -0589,+020.00,+00.00,01.00,000.00,1.00 -0590,+020.00,+00.00,01.00,000.00,1.00 -0591,+020.00,+00.00,01.00,000.00,1.00 -0592,+020.00,+00.00,01.00,000.00,1.00 -0593,+020.00,+00.00,01.00,000.00,1.00 -0594,+020.00,+00.00,01.00,000.00,1.00 -0595,+020.00,+00.00,01.00,000.00,1.00 -0596,+020.00,+00.00,01.00,000.00,1.00 -0597,+020.00,+00.00,01.00,000.00,1.00 -0598,+020.00,+00.00,01.00,000.00,1.00 -0599,+020.00,+00.00,01.00,000.00,1.00 -0600,+020.00,+00.00,01.00,000.00,1.00 -0601,+020.00,+00.00,01.00,000.00,1.00 -0602,+020.00,+00.00,01.00,000.00,1.00 -0603,+020.00,+00.00,01.00,000.00,1.00 -0604,+020.00,+00.00,01.00,000.00,1.00 -0605,+020.00,+00.00,01.00,000.00,1.00 -0606,+020.00,+00.00,01.00,000.00,1.00 -0607,+020.00,+00.00,01.00,000.00,1.00 -0608,+020.00,+00.00,01.00,000.00,1.00 -0609,+020.00,+00.00,01.00,000.00,1.00 -0610,+020.00,+00.00,01.00,000.00,1.00 -0611,+020.00,+00.00,01.00,000.00,1.00 -0612,+020.00,+00.00,01.00,000.00,1.00 -0613,+020.00,+00.00,01.00,000.00,1.00 -0614,+020.00,+00.00,01.00,000.00,1.00 -0615,+020.00,+00.00,01.00,000.00,1.00 -0616,+020.00,+00.00,01.00,000.00,1.00 -0617,+020.00,+00.00,01.00,000.00,1.00 -0618,+020.00,+00.00,01.00,000.00,1.00 -0619,+020.00,+00.00,01.00,000.00,1.00 -0620,+020.00,+00.00,01.00,000.00,1.00 -0621,+020.00,+00.00,01.00,000.00,1.00 -0622,+020.00,+00.00,01.00,000.00,1.00 -0623,+020.00,+00.00,01.00,000.00,1.00 -0624,+020.00,+00.00,01.00,000.00,1.00 -0625,+020.00,+00.00,01.00,000.00,1.00 -0626,+020.00,+00.00,01.00,000.00,1.00 -0627,+020.00,+00.00,01.00,000.00,1.00 -0628,+020.00,+00.00,01.00,000.00,1.00 -0629,+020.00,+00.00,01.00,000.00,1.00 -0630,+020.00,+00.00,01.00,000.00,1.00 -0631,+020.00,+00.00,01.00,000.00,1.00 -0632,+020.00,+00.00,01.00,000.00,1.00 -0633,+020.00,+00.00,01.00,000.00,1.00 -0634,+020.00,+00.00,01.00,000.00,1.00 -0635,+020.00,+00.00,01.00,000.00,1.00 -0636,+020.00,+00.00,01.00,000.00,1.00 -0637,+020.00,+00.00,01.00,000.00,1.00 -0638,+020.00,+00.00,01.00,000.00,1.00 -0639,+020.00,+00.00,01.00,000.00,1.00 -0640,+020.00,+00.00,01.00,000.00,1.00 -0641,+020.00,+00.00,01.00,000.00,1.00 -0642,+020.00,+00.00,01.00,000.00,1.00 -0643,+020.00,+00.00,01.00,000.00,1.00 -0644,+020.00,+00.00,01.00,000.00,1.00 -0645,+020.00,+00.00,01.00,000.00,1.00 -0646,+020.00,+00.00,01.00,000.00,1.00 -0647,+020.00,+00.00,01.00,000.00,1.00 -0648,+020.00,+00.00,01.00,000.00,1.00 -0649,+020.00,+00.00,01.00,000.00,1.00 -0650,+020.00,+00.00,01.00,000.00,1.00 -0651,+020.00,+00.00,01.00,000.00,1.00 -0652,+020.00,+00.00,01.00,000.00,1.00 -0653,+020.00,+00.00,01.00,000.00,1.00 -0654,+020.00,+00.00,01.00,000.00,1.00 -0655,+020.00,+00.00,01.00,000.00,1.00 -0656,+020.00,+00.00,01.00,000.00,1.00 -0657,+020.00,+00.00,01.00,000.00,1.00 -0658,+020.00,+00.00,01.00,000.00,1.00 -0659,+020.00,+00.00,01.00,000.00,1.00 -0660,+020.00,+00.00,01.00,000.00,1.00 -0661,+020.00,+00.00,01.00,000.00,1.00 -0662,+020.00,+00.00,01.00,000.00,1.00 -0663,+020.00,+00.00,01.00,000.00,1.00 -0664,+020.00,+00.00,01.00,000.00,1.00 -0665,+020.00,+00.00,01.00,000.00,1.00 -0666,+020.00,+00.00,01.00,000.00,1.00 -0667,+020.00,+00.00,01.00,000.00,1.00 -0668,+020.00,+00.00,01.00,000.00,1.00 -0669,+020.00,+00.00,01.00,000.00,1.00 -0670,+020.00,+00.00,01.00,000.00,1.00 -0671,+020.00,+00.00,01.00,000.00,1.00 -0672,+020.00,+00.00,01.00,000.00,1.00 -0673,+020.00,+00.00,01.00,000.00,1.00 -0674,+020.00,+00.00,01.00,000.00,1.00 -0675,+020.00,+00.00,01.00,000.00,1.00 -0676,+020.00,+00.00,01.00,000.00,1.00 -0677,+020.00,+00.00,01.00,000.00,1.00 -0678,+020.00,+00.00,01.00,000.00,1.00 -0679,+020.00,+00.00,01.00,000.00,1.00 -0680,+020.00,+00.00,01.00,000.00,1.00 -0681,+020.00,+00.00,01.00,000.00,1.00 -0682,+020.00,+00.00,01.00,000.00,1.00 -0683,+020.00,+00.00,01.00,000.00,1.00 -0684,+020.00,+00.00,01.00,000.00,1.00 -0685,+020.00,+00.00,01.00,000.00,1.00 -0686,+020.00,+00.00,01.00,000.00,1.00 -0687,+020.00,+00.00,01.00,000.00,1.00 -0688,+020.00,+00.00,01.00,000.00,1.00 -0689,+020.00,+00.00,01.00,000.00,1.00 -0690,+020.00,+00.00,01.00,000.00,1.00 -0691,+020.00,+00.00,01.00,000.00,1.00 -0692,+020.00,+00.00,01.00,000.00,1.00 -0693,+020.00,+00.00,01.00,000.00,1.00 -0694,+020.00,+00.00,01.00,000.00,1.00 -0695,+020.00,+00.00,01.00,000.00,1.00 -0696,+020.00,+00.00,01.00,000.00,1.00 -0697,+020.00,+00.00,01.00,000.00,1.00 -0698,+020.00,+00.00,01.00,000.00,1.00 -0699,+020.00,+00.00,01.00,000.00,1.00 -0700,+020.00,+00.00,01.00,000.00,1.00 -0701,+020.00,+00.00,01.00,000.00,1.00 -0702,+020.00,+00.00,01.00,000.00,1.00 -0703,+020.00,+00.00,01.00,000.00,1.00 -0704,+020.00,+00.00,01.00,000.00,1.00 -0705,+020.00,+00.00,01.00,000.00,1.00 -0706,+020.00,+00.00,01.00,000.00,1.00 -0707,+020.00,+00.00,01.00,000.00,1.00 -0708,+020.00,+00.00,01.00,000.00,1.00 -0709,+020.00,+00.00,01.00,000.00,1.00 -0710,+020.00,+00.00,01.00,000.00,1.00 -0711,+020.00,+00.00,01.00,000.00,1.00 -0712,+020.00,+00.00,01.00,000.00,1.00 -0713,+020.00,+00.00,01.00,000.00,1.00 -0714,+020.00,+00.00,01.00,000.00,1.00 -0715,+020.00,+00.00,01.00,000.00,1.00 -0716,+020.00,+00.00,01.00,000.00,1.00 -0717,+020.00,+00.00,01.00,000.00,1.00 -0718,+020.00,+00.00,01.00,000.00,1.00 -0719,+020.00,+00.00,01.00,000.00,1.00 -0720,+020.00,+00.00,01.00,000.00,1.00 -0721,+020.00,+00.00,01.00,000.00,1.00 -0722,+020.00,+00.00,01.00,000.00,1.00 -0723,+020.00,+00.00,01.00,000.00,1.00 -0724,+020.00,+00.00,01.00,000.00,1.00 -0725,+020.00,+00.00,01.00,000.00,1.00 -0726,+020.00,+00.00,01.00,000.00,1.00 -0727,+020.00,+00.00,01.00,000.00,1.00 -0728,+020.00,+00.00,01.00,000.00,1.00 -0729,+020.00,+00.00,01.00,000.00,1.00 -0730,+020.00,+00.00,01.00,000.00,1.00 -0731,+020.00,+00.00,01.00,000.00,1.00 -0732,+020.00,+00.00,01.00,000.00,1.00 -0733,+020.00,+00.00,01.00,000.00,1.00 -0734,+020.00,+00.00,01.00,000.00,1.00 -0735,+020.00,+00.00,01.00,000.00,1.00 -0736,+020.00,+00.00,01.00,000.00,1.00 -0737,+020.00,+00.00,01.00,000.00,1.00 -0738,+020.00,+00.00,01.00,000.00,1.00 -0739,+020.00,+00.00,01.00,000.00,1.00 -0740,+020.00,+00.00,01.00,000.00,1.00 -0741,+020.00,+00.00,01.00,000.00,1.00 -0742,+020.00,+00.00,01.00,000.00,1.00 -0743,+020.00,+00.00,01.00,000.00,1.00 -0744,+020.00,+00.00,01.00,000.00,1.00 -0745,+020.00,+00.00,01.00,000.00,1.00 -0746,+020.00,+00.00,01.00,000.00,1.00 -0747,+020.00,+00.00,01.00,000.00,1.00 -0748,+020.00,+00.00,01.00,000.00,1.00 -0749,+020.00,+00.00,01.00,000.00,1.00 -0750,+020.00,+00.00,01.00,000.00,1.00 -0751,+020.00,+00.00,01.00,000.00,1.00 -0752,+020.00,+00.00,01.00,000.00,1.00 -0753,+020.00,+00.00,01.00,000.00,1.00 -0754,+020.00,+00.00,01.00,000.00,1.00 -0755,+020.00,+00.00,01.00,000.00,1.00 -0756,+020.00,+00.00,01.00,000.00,1.00 -0757,+020.00,+00.00,01.00,000.00,1.00 -0758,+020.00,+00.00,01.00,000.00,1.00 -0759,+020.00,+00.00,01.00,000.00,1.00 -0760,+020.00,+00.00,01.00,000.00,1.00 -0761,+020.00,+00.00,01.00,000.00,1.00 -0762,+020.00,+00.00,01.00,000.00,1.00 -0763,+020.00,+00.00,01.00,000.00,1.00 -0764,+020.00,+00.00,01.00,000.00,1.00 -0765,+020.00,+00.00,01.00,000.00,1.00 -0766,+020.00,+00.00,01.00,000.00,1.00 -0767,+020.00,+00.00,01.00,000.00,1.00 -0768,+020.00,+00.00,01.00,000.00,1.00 -0769,+020.00,+00.00,01.00,000.00,1.00 -0770,+020.00,+00.00,01.00,000.00,1.00 -0771,+020.00,+00.00,01.00,000.00,1.00 -0772,+020.00,+00.00,01.00,000.00,1.00 -0773,+020.00,+00.00,01.00,000.00,1.00 -0774,+020.00,+00.00,01.00,000.00,1.00 -0775,+020.00,+00.00,01.00,000.00,1.00 -0776,+020.00,+00.00,01.00,000.00,1.00 -0777,+020.00,+00.00,01.00,000.00,1.00 -0778,+020.00,+00.00,01.00,000.00,1.00 -0779,+020.00,+00.00,01.00,000.00,1.00 -0780,+020.00,+00.00,01.00,000.00,1.00 -0781,+020.00,+00.00,01.00,000.00,1.00 -0782,+020.00,+00.00,01.00,000.00,1.00 -0783,+020.00,+00.00,01.00,000.00,1.00 -0784,+020.00,+00.00,01.00,000.00,1.00 -0785,+020.00,+00.00,01.00,000.00,1.00 -0786,+020.00,+00.00,01.00,000.00,1.00 -0787,+020.00,+00.00,01.00,000.00,1.00 -0788,+020.00,+00.00,01.00,000.00,1.00 -0789,+020.00,+00.00,01.00,000.00,1.00 -0790,+020.00,+00.00,01.00,000.00,1.00 -0791,+020.00,+00.00,01.00,000.00,1.00 -0792,+020.00,+00.00,01.00,000.00,1.00 -0793,+020.00,+00.00,01.00,000.00,1.00 -0794,+020.00,+00.00,01.00,000.00,1.00 -0795,+020.00,+00.00,01.00,000.00,1.00 -0796,+020.00,+00.00,01.00,000.00,1.00 -0797,+020.00,+00.00,01.00,000.00,1.00 -0798,+020.00,+00.00,01.00,000.00,1.00 -0799,+020.00,+00.00,01.00,000.00,1.00 -0800,+020.00,+00.00,01.00,000.00,1.00 -0801,+020.00,+00.00,01.00,000.00,1.00 -0802,+020.00,+00.00,01.00,000.00,1.00 -0803,+020.00,+00.00,01.00,000.00,1.00 -0804,+020.00,+00.00,01.00,000.00,1.00 -0805,+020.00,+00.00,01.00,000.00,1.00 -0806,+020.00,+00.00,01.00,000.00,1.00 -0807,+020.00,+00.00,01.00,000.00,1.00 -0808,+020.00,+00.00,01.00,000.00,1.00 -0809,+020.00,+00.00,01.00,000.00,1.00 -0810,+020.00,+00.00,01.00,000.00,1.00 -0811,+020.00,+00.00,01.00,000.00,1.00 -0812,+020.00,+00.00,01.00,000.00,1.00 -0813,+020.00,+00.00,01.00,000.00,1.00 -0814,+020.00,+00.00,01.00,000.00,1.00 -0815,+020.00,+00.00,01.00,000.00,1.00 -0816,+020.00,+00.00,01.00,000.00,1.00 -0817,+020.00,+00.00,01.00,000.00,1.00 -0818,+020.00,+00.00,01.00,000.00,1.00 -0819,+020.00,+00.00,01.00,000.00,1.00 -0820,+020.00,+00.00,01.00,000.00,1.00 -0821,+020.00,+00.00,01.00,000.00,1.00 -0822,+020.00,+00.00,01.00,000.00,1.00 -0823,+020.00,+00.00,01.00,000.00,1.00 -0824,+020.00,+00.00,01.00,000.00,1.00 -0825,+020.00,+00.00,01.00,000.00,1.00 -0826,+020.00,+00.00,01.00,000.00,1.00 -0827,+020.00,+00.00,01.00,000.00,1.00 -0828,+020.00,+00.00,01.00,000.00,1.00 -0829,+020.00,+00.00,01.00,000.00,1.00 -0830,+020.00,+00.00,01.00,000.00,1.00 -0831,+020.00,+00.00,01.00,000.00,1.00 -0832,+020.00,+00.00,01.00,000.00,1.00 -0833,+020.00,+00.00,01.00,000.00,1.00 -0834,+020.00,+00.00,01.00,000.00,1.00 -0835,+020.00,+00.00,01.00,000.00,1.00 -0836,+020.00,+00.00,01.00,000.00,1.00 -0837,+020.00,+00.00,01.00,000.00,1.00 -0838,+020.00,+00.00,01.00,000.00,1.00 -0839,+020.00,+00.00,01.00,000.00,1.00 -0840,+020.00,+00.00,01.00,000.00,1.00 -0841,+020.00,+00.00,01.00,000.00,1.00 -0842,+020.00,+00.00,01.00,000.00,1.00 -0843,+020.00,+00.00,01.00,000.00,1.00 -0844,+020.00,+00.00,01.00,000.00,1.00 -0845,+020.00,+00.00,01.00,000.00,1.00 -0846,+020.00,+00.00,01.00,000.00,1.00 -0847,+020.00,+00.00,01.00,000.00,1.00 -0848,+020.00,+00.00,01.00,000.00,1.00 -0849,+020.00,+00.00,01.00,000.00,1.00 -0850,+020.00,+00.00,01.00,000.00,1.00 -0851,+020.00,+00.00,01.00,000.00,1.00 -0852,+020.00,+00.00,01.00,000.00,1.00 -0853,+020.00,+00.00,01.00,000.00,1.00 -0854,+020.00,+00.00,01.00,000.00,1.00 -0855,+020.00,+00.00,01.00,000.00,1.00 -0856,+020.00,+00.00,01.00,000.00,1.00 -0857,+020.00,+00.00,01.00,000.00,1.00 -0858,+020.00,+00.00,01.00,000.00,1.00 -0859,+020.00,+00.00,01.00,000.00,1.00 -0860,+020.00,+00.00,01.00,000.00,1.00 -0861,+020.00,+00.00,01.00,000.00,1.00 -0862,+020.00,+00.00,01.00,000.00,1.00 -0863,+020.00,+00.00,01.00,000.00,1.00 -0864,+020.00,+00.00,01.00,000.00,1.00 -0865,+020.00,+00.00,01.00,000.00,1.00 -0866,+020.00,+00.00,01.00,000.00,1.00 -0867,+020.00,+00.00,01.00,000.00,1.00 -0868,+020.00,+00.00,01.00,000.00,1.00 -0869,+020.00,+00.00,01.00,000.00,1.00 -0870,+020.00,+00.00,01.00,000.00,1.00 -0871,+020.00,+00.00,01.00,000.00,1.00 -0872,+020.00,+00.00,01.00,000.00,1.00 -0873,+020.00,+00.00,01.00,000.00,1.00 -0874,+020.00,+00.00,01.00,000.00,1.00 -0875,+020.00,+00.00,01.00,000.00,1.00 -0876,+020.00,+00.00,01.00,000.00,1.00 -0877,+020.00,+00.00,01.00,000.00,1.00 -0878,+020.00,+00.00,01.00,000.00,1.00 -0879,+020.00,+00.00,01.00,000.00,1.00 -0880,+020.00,+00.00,01.00,000.00,1.00 -0881,+020.00,+00.00,01.00,000.00,1.00 -0882,+020.00,+00.00,01.00,000.00,1.00 -0883,+020.00,+00.00,01.00,000.00,1.00 -0884,+020.00,+00.00,01.00,000.00,1.00 -0885,+020.00,+00.00,01.00,000.00,1.00 -0886,+020.00,+00.00,01.00,000.00,1.00 -0887,+020.00,+00.00,01.00,000.00,1.00 -0888,+020.00,+00.00,01.00,000.00,1.00 -0889,+020.00,+00.00,01.00,000.00,1.00 -0890,+020.00,+00.00,01.00,000.00,1.00 -0891,+020.00,+00.00,01.00,000.00,1.00 -0892,+020.00,+00.00,01.00,000.00,1.00 -0893,+020.00,+00.00,01.00,000.00,1.00 -0894,+020.00,+00.00,01.00,000.00,1.00 -0895,+020.00,+00.00,01.00,000.00,1.00 -0896,+020.00,+00.00,01.00,000.00,1.00 -0897,+020.00,+00.00,01.00,000.00,1.00 -0898,+020.00,+00.00,01.00,000.00,1.00 -0899,+020.00,+00.00,01.00,000.00,1.00 -0900,+020.00,+00.00,01.00,000.00,1.00 -0901,+020.00,+00.00,01.00,000.00,1.00 -0902,+020.00,+00.00,01.00,000.00,1.00 -0903,+020.00,+00.00,01.00,000.00,1.00 -0904,+020.00,+00.00,01.00,000.00,1.00 -0905,+020.00,+00.00,01.00,000.00,1.00 -0906,+020.00,+00.00,01.00,000.00,1.00 -0907,+020.00,+00.00,01.00,000.00,1.00 -0908,+020.00,+00.00,01.00,000.00,1.00 -0909,+020.00,+00.00,01.00,000.00,1.00 -0910,+020.00,+00.00,01.00,000.00,1.00 -0911,+020.00,+00.00,01.00,000.00,1.00 -0912,+020.00,+00.00,01.00,000.00,1.00 -0913,+020.00,+00.00,01.00,000.00,1.00 -0914,+020.00,+00.00,01.00,000.00,1.00 -0915,+020.00,+00.00,01.00,000.00,1.00 -0916,+020.00,+00.00,01.00,000.00,1.00 -0917,+020.00,+00.00,01.00,000.00,1.00 -0918,+020.00,+00.00,01.00,000.00,1.00 -0919,+020.00,+00.00,01.00,000.00,1.00 -0920,+020.00,+00.00,01.00,000.00,1.00 -0921,+020.00,+00.00,01.00,000.00,1.00 -0922,+020.00,+00.00,01.00,000.00,1.00 -0923,+020.00,+00.00,01.00,000.00,1.00 -0924,+020.00,+00.00,01.00,000.00,1.00 -0925,+020.00,+00.00,01.00,000.00,1.00 -0926,+020.00,+00.00,01.00,000.00,1.00 -0927,+020.00,+00.00,01.00,000.00,1.00 -0928,+020.00,+00.00,01.00,000.00,1.00 -0929,+020.00,+00.00,01.00,000.00,1.00 -0930,+020.00,+00.00,01.00,000.00,1.00 -0931,+020.00,+00.00,01.00,000.00,1.00 -0932,+020.00,+00.00,01.00,000.00,1.00 -0933,+020.00,+00.00,01.00,000.00,1.00 -0934,+020.00,+00.00,01.00,000.00,1.00 -0935,+020.00,+00.00,01.00,000.00,1.00 -0936,+020.00,+00.00,01.00,000.00,1.00 -0937,+020.00,+00.00,01.00,000.00,1.00 -0938,+020.00,+00.00,01.00,000.00,1.00 -0939,+020.00,+00.00,01.00,000.00,1.00 -0940,+020.00,+00.00,01.00,000.00,1.00 -0941,+020.00,+00.00,01.00,000.00,1.00 -0942,+020.00,+00.00,01.00,000.00,1.00 -0943,+020.00,+00.00,01.00,000.00,1.00 -0944,+020.00,+00.00,01.00,000.00,1.00 -0945,+020.00,+00.00,01.00,000.00,1.00 -0946,+020.00,+00.00,01.00,000.00,1.00 -0947,+020.00,+00.00,01.00,000.00,1.00 -0948,+020.00,+00.00,01.00,000.00,1.00 -0949,+020.00,+00.00,01.00,000.00,1.00 -0950,+020.00,+00.00,01.00,000.00,1.00 -0951,+020.00,+00.00,01.00,000.00,1.00 -0952,+020.00,+00.00,01.00,000.00,1.00 -0953,+020.00,+00.00,01.00,000.00,1.00 -0954,+020.00,+00.00,01.00,000.00,1.00 -0955,+020.00,+00.00,01.00,000.00,1.00 -0956,+020.00,+00.00,01.00,000.00,1.00 -0957,+020.00,+00.00,01.00,000.00,1.00 -0958,+020.00,+00.00,01.00,000.00,1.00 -0959,+020.00,+00.00,01.00,000.00,1.00 -0960,+020.00,+00.00,01.00,000.00,1.00 -0961,+020.00,+00.00,01.00,000.00,1.00 -0962,+020.00,+00.00,01.00,000.00,1.00 -0963,+020.00,+00.00,01.00,000.00,1.00 -0964,+020.00,+00.00,01.00,000.00,1.00 -0965,+020.00,+00.00,01.00,000.00,1.00 -0966,+020.00,+00.00,01.00,000.00,1.00 -0967,+020.00,+00.00,01.00,000.00,1.00 -0968,+020.00,+00.00,01.00,000.00,1.00 -0969,+020.00,+00.00,01.00,000.00,1.00 -0970,+020.00,+00.00,01.00,000.00,1.00 -0971,+020.00,+00.00,01.00,000.00,1.00 -0972,+020.00,+00.00,01.00,000.00,1.00 -0973,+020.00,+00.00,01.00,000.00,1.00 -0974,+020.00,+00.00,01.00,000.00,1.00 -0975,+020.00,+00.00,01.00,000.00,1.00 -0976,+020.00,+00.00,01.00,000.00,1.00 -0977,+020.00,+00.00,01.00,000.00,1.00 -0978,+020.00,+00.00,01.00,000.00,1.00 -0979,+020.00,+00.00,01.00,000.00,1.00 -0980,+020.00,+00.00,01.00,000.00,1.00 -0981,+020.00,+00.00,01.00,000.00,1.00 -0982,+020.00,+00.00,01.00,000.00,1.00 -0983,+020.00,+00.00,01.00,000.00,1.00 -0984,+020.00,+00.00,01.00,000.00,1.00 -0985,+020.00,+00.00,01.00,000.00,1.00 -0986,+020.00,+00.00,01.00,000.00,1.00 -0987,+020.00,+00.00,01.00,000.00,1.00 -0988,+020.00,+00.00,01.00,000.00,1.00 -0989,+020.00,+00.00,01.00,000.00,1.00 -0990,+020.00,+00.00,01.00,000.00,1.00 -0991,+020.00,+00.00,01.00,000.00,1.00 -0992,+020.00,+00.00,01.00,000.00,1.00 -0993,+020.00,+00.00,01.00,000.00,1.00 -0994,+020.00,+00.00,01.00,000.00,1.00 -0995,+020.00,+00.00,01.00,000.00,1.00 -0996,+020.00,+00.00,01.00,000.00,1.00 -0997,+020.00,+00.00,01.00,000.00,1.00 -0998,+020.00,+00.00,01.00,000.00,1.00 -0999,+020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 ++020.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t05_ch4.csv b/scripts/td_object_renderer/metadata/csv/t05_ch4.csv index da715b0e0c..89201e59a4 100644 --- a/scripts/td_object_renderer/metadata/csv/t05_ch4.csv +++ b/scripts/td_object_renderer/metadata/csv/t05_ch4.csv @@ -1,1000 +1,1000 @@ -0000,+060.00,+00.00,01.00,000.00,1.00 -0001,+060.00,+00.00,01.00,000.00,1.00 -0002,+060.00,+00.00,01.00,000.00,1.00 -0003,+060.00,+00.00,01.00,000.00,1.00 -0004,+060.00,+00.00,01.00,000.00,1.00 -0005,+060.00,+00.00,01.00,000.00,1.00 -0006,+060.00,+00.00,01.00,000.00,1.00 -0007,+060.00,+00.00,01.00,000.00,1.00 -0008,+060.00,+00.00,01.00,000.00,1.00 -0009,+060.00,+00.00,01.00,000.00,1.00 -0010,+060.00,+00.00,01.00,000.00,1.00 -0011,+060.00,+00.00,01.00,000.00,1.00 -0012,+060.00,+00.00,01.00,000.00,1.00 -0013,+060.00,+00.00,01.00,000.00,1.00 -0014,+060.00,+00.00,01.00,000.00,1.00 -0015,+060.00,+00.00,01.00,000.00,1.00 -0016,+060.00,+00.00,01.00,000.00,1.00 -0017,+060.00,+00.00,01.00,000.00,1.00 -0018,+060.00,+00.00,01.00,000.00,1.00 -0019,+060.00,+00.00,01.00,000.00,1.00 -0020,+060.00,+00.00,01.00,000.00,1.00 -0021,+060.00,+00.00,01.00,000.00,1.00 -0022,+060.00,+00.00,01.00,000.00,1.00 -0023,+060.00,+00.00,01.00,000.00,1.00 -0024,+060.00,+00.00,01.00,000.00,1.00 -0025,+060.00,+00.00,01.00,000.00,1.00 -0026,+060.00,+00.00,01.00,000.00,1.00 -0027,+060.00,+00.00,01.00,000.00,1.00 -0028,+060.00,+00.00,01.00,000.00,1.00 -0029,+060.00,+00.00,01.00,000.00,1.00 -0030,+060.00,+00.00,01.00,000.00,1.00 -0031,+060.00,+00.00,01.00,000.00,1.00 -0032,+060.00,+00.00,01.00,000.00,1.00 -0033,+060.00,+00.00,01.00,000.00,1.00 -0034,+060.00,+00.00,01.00,000.00,1.00 -0035,+060.00,+00.00,01.00,000.00,1.00 -0036,+060.00,+00.00,01.00,000.00,1.00 -0037,+060.00,+00.00,01.00,000.00,1.00 -0038,+060.00,+00.00,01.00,000.00,1.00 -0039,+060.00,+00.00,01.00,000.00,1.00 -0040,+060.00,+00.00,01.00,000.00,1.00 -0041,+060.00,+00.00,01.00,000.00,1.00 -0042,+060.00,+00.00,01.00,000.00,1.00 -0043,+060.00,+00.00,01.00,000.00,1.00 -0044,+060.00,+00.00,01.00,000.00,1.00 -0045,+060.00,+00.00,01.00,000.00,1.00 -0046,+060.00,+00.00,01.00,000.00,1.00 -0047,+060.00,+00.00,01.00,000.00,1.00 -0048,+060.00,+00.00,01.00,000.00,1.00 -0049,+060.00,+00.00,01.00,000.00,1.00 -0050,+060.00,+00.00,01.00,000.00,1.00 -0051,+060.00,+00.00,01.00,000.00,1.00 -0052,+060.00,+00.00,01.00,000.00,1.00 -0053,+060.00,+00.00,01.00,000.00,1.00 -0054,+060.00,+00.00,01.00,000.00,1.00 -0055,+060.00,+00.00,01.00,000.00,1.00 -0056,+060.00,+00.00,01.00,000.00,1.00 -0057,+060.00,+00.00,01.00,000.00,1.00 -0058,+060.00,+00.00,01.00,000.00,1.00 -0059,+060.00,+00.00,01.00,000.00,1.00 -0060,+060.00,+00.00,01.00,000.00,1.00 -0061,+060.00,+00.00,01.00,000.00,1.00 -0062,+060.00,+00.00,01.00,000.00,1.00 -0063,+060.00,+00.00,01.00,000.00,1.00 -0064,+060.00,+00.00,01.00,000.00,1.00 -0065,+060.00,+00.00,01.00,000.00,1.00 -0066,+060.00,+00.00,01.00,000.00,1.00 -0067,+060.00,+00.00,01.00,000.00,1.00 -0068,+060.00,+00.00,01.00,000.00,1.00 -0069,+060.00,+00.00,01.00,000.00,1.00 -0070,+060.00,+00.00,01.00,000.00,1.00 -0071,+060.00,+00.00,01.00,000.00,1.00 -0072,+060.00,+00.00,01.00,000.00,1.00 -0073,+060.00,+00.00,01.00,000.00,1.00 -0074,+060.00,+00.00,01.00,000.00,1.00 -0075,+060.00,+00.00,01.00,000.00,1.00 -0076,+060.00,+00.00,01.00,000.00,1.00 -0077,+060.00,+00.00,01.00,000.00,1.00 -0078,+060.00,+00.00,01.00,000.00,1.00 -0079,+060.00,+00.00,01.00,000.00,1.00 -0080,+060.00,+00.00,01.00,000.00,1.00 -0081,+060.00,+00.00,01.00,000.00,1.00 -0082,+060.00,+00.00,01.00,000.00,1.00 -0083,+060.00,+00.00,01.00,000.00,1.00 -0084,+060.00,+00.00,01.00,000.00,1.00 -0085,+060.00,+00.00,01.00,000.00,1.00 -0086,+060.00,+00.00,01.00,000.00,1.00 -0087,+060.00,+00.00,01.00,000.00,1.00 -0088,+060.00,+00.00,01.00,000.00,1.00 -0089,+060.00,+00.00,01.00,000.00,1.00 -0090,+060.00,+00.00,01.00,000.00,1.00 -0091,+060.00,+00.00,01.00,000.00,1.00 -0092,+060.00,+00.00,01.00,000.00,1.00 -0093,+060.00,+00.00,01.00,000.00,1.00 -0094,+060.00,+00.00,01.00,000.00,1.00 -0095,+060.00,+00.00,01.00,000.00,1.00 -0096,+060.00,+00.00,01.00,000.00,1.00 -0097,+060.00,+00.00,01.00,000.00,1.00 -0098,+060.00,+00.00,01.00,000.00,1.00 -0099,+060.00,+00.00,01.00,000.00,1.00 -0100,+060.00,+00.00,01.00,000.00,1.00 -0101,+060.00,+00.00,01.00,000.00,1.00 -0102,+060.00,+00.00,01.00,000.00,1.00 -0103,+060.00,+00.00,01.00,000.00,1.00 -0104,+060.00,+00.00,01.00,000.00,1.00 -0105,+060.00,+00.00,01.00,000.00,1.00 -0106,+060.00,+00.00,01.00,000.00,1.00 -0107,+060.00,+00.00,01.00,000.00,1.00 -0108,+060.00,+00.00,01.00,000.00,1.00 -0109,+060.00,+00.00,01.00,000.00,1.00 -0110,+060.00,+00.00,01.00,000.00,1.00 -0111,+060.00,+00.00,01.00,000.00,1.00 -0112,+060.00,+00.00,01.00,000.00,1.00 -0113,+060.00,+00.00,01.00,000.00,1.00 -0114,+060.00,+00.00,01.00,000.00,1.00 -0115,+060.00,+00.00,01.00,000.00,1.00 -0116,+060.00,+00.00,01.00,000.00,1.00 -0117,+060.00,+00.00,01.00,000.00,1.00 -0118,+060.00,+00.00,01.00,000.00,1.00 -0119,+060.00,+00.00,01.00,000.00,1.00 -0120,+060.00,+00.00,01.00,000.00,1.00 -0121,+060.00,+00.00,01.00,000.00,1.00 -0122,+060.00,+00.00,01.00,000.00,1.00 -0123,+060.00,+00.00,01.00,000.00,1.00 -0124,+060.00,+00.00,01.00,000.00,1.00 -0125,+060.00,+00.00,01.00,000.00,1.00 -0126,+060.00,+00.00,01.00,000.00,1.00 -0127,+060.00,+00.00,01.00,000.00,1.00 -0128,+060.00,+00.00,01.00,000.00,1.00 -0129,+060.00,+00.00,01.00,000.00,1.00 -0130,+060.00,+00.00,01.00,000.00,1.00 -0131,+060.00,+00.00,01.00,000.00,1.00 -0132,+060.00,+00.00,01.00,000.00,1.00 -0133,+060.00,+00.00,01.00,000.00,1.00 -0134,+060.00,+00.00,01.00,000.00,1.00 -0135,+060.00,+00.00,01.00,000.00,1.00 -0136,+060.00,+00.00,01.00,000.00,1.00 -0137,+060.00,+00.00,01.00,000.00,1.00 -0138,+060.00,+00.00,01.00,000.00,1.00 -0139,+060.00,+00.00,01.00,000.00,1.00 -0140,+060.00,+00.00,01.00,000.00,1.00 -0141,+060.00,+00.00,01.00,000.00,1.00 -0142,+060.00,+00.00,01.00,000.00,1.00 -0143,+060.00,+00.00,01.00,000.00,1.00 -0144,+060.00,+00.00,01.00,000.00,1.00 -0145,+060.00,+00.00,01.00,000.00,1.00 -0146,+060.00,+00.00,01.00,000.00,1.00 -0147,+060.00,+00.00,01.00,000.00,1.00 -0148,+060.00,+00.00,01.00,000.00,1.00 -0149,+060.00,+00.00,01.00,000.00,1.00 -0150,+060.00,+00.00,01.00,000.00,1.00 -0151,+060.00,+00.00,01.00,000.00,1.00 -0152,+060.00,+00.00,01.00,000.00,1.00 -0153,+060.00,+00.00,01.00,000.00,1.00 -0154,+060.00,+00.00,01.00,000.00,1.00 -0155,+060.00,+00.00,01.00,000.00,1.00 -0156,+060.00,+00.00,01.00,000.00,1.00 -0157,+060.00,+00.00,01.00,000.00,1.00 -0158,+060.00,+00.00,01.00,000.00,1.00 -0159,+060.00,+00.00,01.00,000.00,1.00 -0160,+060.00,+00.00,01.00,000.00,1.00 -0161,+060.00,+00.00,01.00,000.00,1.00 -0162,+060.00,+00.00,01.00,000.00,1.00 -0163,+060.00,+00.00,01.00,000.00,1.00 -0164,+060.00,+00.00,01.00,000.00,1.00 -0165,+060.00,+00.00,01.00,000.00,1.00 -0166,+060.00,+00.00,01.00,000.00,1.00 -0167,+060.00,+00.00,01.00,000.00,1.00 -0168,+060.00,+00.00,01.00,000.00,1.00 -0169,+060.00,+00.00,01.00,000.00,1.00 -0170,+060.00,+00.00,01.00,000.00,1.00 -0171,+060.00,+00.00,01.00,000.00,1.00 -0172,+060.00,+00.00,01.00,000.00,1.00 -0173,+060.00,+00.00,01.00,000.00,1.00 -0174,+060.00,+00.00,01.00,000.00,1.00 -0175,+060.00,+00.00,01.00,000.00,1.00 -0176,+060.00,+00.00,01.00,000.00,1.00 -0177,+060.00,+00.00,01.00,000.00,1.00 -0178,+060.00,+00.00,01.00,000.00,1.00 -0179,+060.00,+00.00,01.00,000.00,1.00 -0180,+060.00,+00.00,01.00,000.00,1.00 -0181,+060.00,+00.00,01.00,000.00,1.00 -0182,+060.00,+00.00,01.00,000.00,1.00 -0183,+060.00,+00.00,01.00,000.00,1.00 -0184,+060.00,+00.00,01.00,000.00,1.00 -0185,+060.00,+00.00,01.00,000.00,1.00 -0186,+060.00,+00.00,01.00,000.00,1.00 -0187,+060.00,+00.00,01.00,000.00,1.00 -0188,+060.00,+00.00,01.00,000.00,1.00 -0189,+060.00,+00.00,01.00,000.00,1.00 -0190,+060.00,+00.00,01.00,000.00,1.00 -0191,+060.00,+00.00,01.00,000.00,1.00 -0192,+060.00,+00.00,01.00,000.00,1.00 -0193,+060.00,+00.00,01.00,000.00,1.00 -0194,+060.00,+00.00,01.00,000.00,1.00 -0195,+060.00,+00.00,01.00,000.00,1.00 -0196,+060.00,+00.00,01.00,000.00,1.00 -0197,+060.00,+00.00,01.00,000.00,1.00 -0198,+060.00,+00.00,01.00,000.00,1.00 -0199,+060.00,+00.00,01.00,000.00,1.00 -0200,+060.00,+00.00,01.00,000.00,1.00 -0201,+060.00,+00.00,01.00,000.00,1.00 -0202,+060.00,+00.00,01.00,000.00,1.00 -0203,+060.00,+00.00,01.00,000.00,1.00 -0204,+060.00,+00.00,01.00,000.00,1.00 -0205,+060.00,+00.00,01.00,000.00,1.00 -0206,+060.00,+00.00,01.00,000.00,1.00 -0207,+060.00,+00.00,01.00,000.00,1.00 -0208,+060.00,+00.00,01.00,000.00,1.00 -0209,+060.00,+00.00,01.00,000.00,1.00 -0210,+060.00,+00.00,01.00,000.00,1.00 -0211,+060.00,+00.00,01.00,000.00,1.00 -0212,+060.00,+00.00,01.00,000.00,1.00 -0213,+060.00,+00.00,01.00,000.00,1.00 -0214,+060.00,+00.00,01.00,000.00,1.00 -0215,+060.00,+00.00,01.00,000.00,1.00 -0216,+060.00,+00.00,01.00,000.00,1.00 -0217,+060.00,+00.00,01.00,000.00,1.00 -0218,+060.00,+00.00,01.00,000.00,1.00 -0219,+060.00,+00.00,01.00,000.00,1.00 -0220,+060.00,+00.00,01.00,000.00,1.00 -0221,+060.00,+00.00,01.00,000.00,1.00 -0222,+060.00,+00.00,01.00,000.00,1.00 -0223,+060.00,+00.00,01.00,000.00,1.00 -0224,+060.00,+00.00,01.00,000.00,1.00 -0225,+060.00,+00.00,01.00,000.00,1.00 -0226,+060.00,+00.00,01.00,000.00,1.00 -0227,+060.00,+00.00,01.00,000.00,1.00 -0228,+060.00,+00.00,01.00,000.00,1.00 -0229,+060.00,+00.00,01.00,000.00,1.00 -0230,+060.00,+00.00,01.00,000.00,1.00 -0231,+060.00,+00.00,01.00,000.00,1.00 -0232,+060.00,+00.00,01.00,000.00,1.00 -0233,+060.00,+00.00,01.00,000.00,1.00 -0234,+060.00,+00.00,01.00,000.00,1.00 -0235,+060.00,+00.00,01.00,000.00,1.00 -0236,+060.00,+00.00,01.00,000.00,1.00 -0237,+060.00,+00.00,01.00,000.00,1.00 -0238,+060.00,+00.00,01.00,000.00,1.00 -0239,+060.00,+00.00,01.00,000.00,1.00 -0240,+060.00,+00.00,01.00,000.00,1.00 -0241,+060.00,+00.00,01.00,000.00,1.00 -0242,+060.00,+00.00,01.00,000.00,1.00 -0243,+060.00,+00.00,01.00,000.00,1.00 -0244,+060.00,+00.00,01.00,000.00,1.00 -0245,+060.00,+00.00,01.00,000.00,1.00 -0246,+060.00,+00.00,01.00,000.00,1.00 -0247,+060.00,+00.00,01.00,000.00,1.00 -0248,+060.00,+00.00,01.00,000.00,1.00 -0249,+060.00,+00.00,01.00,000.00,1.00 -0250,+060.00,+00.00,01.00,000.00,1.00 -0251,+060.00,+00.00,01.00,000.00,1.00 -0252,+060.00,+00.00,01.00,000.00,1.00 -0253,+060.00,+00.00,01.00,000.00,1.00 -0254,+060.00,+00.00,01.00,000.00,1.00 -0255,+060.00,+00.00,01.00,000.00,1.00 -0256,+060.00,+00.00,01.00,000.00,1.00 -0257,+060.00,+00.00,01.00,000.00,1.00 -0258,+060.00,+00.00,01.00,000.00,1.00 -0259,+060.00,+00.00,01.00,000.00,1.00 -0260,+060.00,+00.00,01.00,000.00,1.00 -0261,+060.00,+00.00,01.00,000.00,1.00 -0262,+060.00,+00.00,01.00,000.00,1.00 -0263,+060.00,+00.00,01.00,000.00,1.00 -0264,+060.00,+00.00,01.00,000.00,1.00 -0265,+060.00,+00.00,01.00,000.00,1.00 -0266,+060.00,+00.00,01.00,000.00,1.00 -0267,+060.00,+00.00,01.00,000.00,1.00 -0268,+060.00,+00.00,01.00,000.00,1.00 -0269,+060.00,+00.00,01.00,000.00,1.00 -0270,+060.00,+00.00,01.00,000.00,1.00 -0271,+060.00,+00.00,01.00,000.00,1.00 -0272,+060.00,+00.00,01.00,000.00,1.00 -0273,+060.00,+00.00,01.00,000.00,1.00 -0274,+060.00,+00.00,01.00,000.00,1.00 -0275,+060.00,+00.00,01.00,000.00,1.00 -0276,+060.00,+00.00,01.00,000.00,1.00 -0277,+060.00,+00.00,01.00,000.00,1.00 -0278,+060.00,+00.00,01.00,000.00,1.00 -0279,+060.00,+00.00,01.00,000.00,1.00 -0280,+060.00,+00.00,01.00,000.00,1.00 -0281,+060.00,+00.00,01.00,000.00,1.00 -0282,+060.00,+00.00,01.00,000.00,1.00 -0283,+060.00,+00.00,01.00,000.00,1.00 -0284,+060.00,+00.00,01.00,000.00,1.00 -0285,+060.00,+00.00,01.00,000.00,1.00 -0286,+060.00,+00.00,01.00,000.00,1.00 -0287,+060.00,+00.00,01.00,000.00,1.00 -0288,+060.00,+00.00,01.00,000.00,1.00 -0289,+060.00,+00.00,01.00,000.00,1.00 -0290,+060.00,+00.00,01.00,000.00,1.00 -0291,+060.00,+00.00,01.00,000.00,1.00 -0292,+060.00,+00.00,01.00,000.00,1.00 -0293,+060.00,+00.00,01.00,000.00,1.00 -0294,+060.00,+00.00,01.00,000.00,1.00 -0295,+060.00,+00.00,01.00,000.00,1.00 -0296,+060.00,+00.00,01.00,000.00,1.00 -0297,+060.00,+00.00,01.00,000.00,1.00 -0298,+060.00,+00.00,01.00,000.00,1.00 -0299,+060.00,+00.00,01.00,000.00,1.00 -0300,+060.00,+00.00,01.00,000.00,1.00 -0301,+060.00,+00.00,01.00,000.00,1.00 -0302,+060.00,+00.00,01.00,000.00,1.00 -0303,+060.00,+00.00,01.00,000.00,1.00 -0304,+060.00,+00.00,01.00,000.00,1.00 -0305,+060.00,+00.00,01.00,000.00,1.00 -0306,+060.00,+00.00,01.00,000.00,1.00 -0307,+060.00,+00.00,01.00,000.00,1.00 -0308,+060.00,+00.00,01.00,000.00,1.00 -0309,+060.00,+00.00,01.00,000.00,1.00 -0310,+060.00,+00.00,01.00,000.00,1.00 -0311,+060.00,+00.00,01.00,000.00,1.00 -0312,+060.00,+00.00,01.00,000.00,1.00 -0313,+060.00,+00.00,01.00,000.00,1.00 -0314,+060.00,+00.00,01.00,000.00,1.00 -0315,+060.00,+00.00,01.00,000.00,1.00 -0316,+060.00,+00.00,01.00,000.00,1.00 -0317,+060.00,+00.00,01.00,000.00,1.00 -0318,+060.00,+00.00,01.00,000.00,1.00 -0319,+060.00,+00.00,01.00,000.00,1.00 -0320,+060.00,+00.00,01.00,000.00,1.00 -0321,+060.00,+00.00,01.00,000.00,1.00 -0322,+060.00,+00.00,01.00,000.00,1.00 -0323,+060.00,+00.00,01.00,000.00,1.00 -0324,+060.00,+00.00,01.00,000.00,1.00 -0325,+060.00,+00.00,01.00,000.00,1.00 -0326,+060.00,+00.00,01.00,000.00,1.00 -0327,+060.00,+00.00,01.00,000.00,1.00 -0328,+060.00,+00.00,01.00,000.00,1.00 -0329,+060.00,+00.00,01.00,000.00,1.00 -0330,+060.00,+00.00,01.00,000.00,1.00 -0331,+060.00,+00.00,01.00,000.00,1.00 -0332,+060.00,+00.00,01.00,000.00,1.00 -0333,+060.00,+00.00,01.00,000.00,1.00 -0334,+060.00,+00.00,01.00,000.00,1.00 -0335,+060.00,+00.00,01.00,000.00,1.00 -0336,+060.00,+00.00,01.00,000.00,1.00 -0337,+060.00,+00.00,01.00,000.00,1.00 -0338,+060.00,+00.00,01.00,000.00,1.00 -0339,+060.00,+00.00,01.00,000.00,1.00 -0340,+060.00,+00.00,01.00,000.00,1.00 -0341,+060.00,+00.00,01.00,000.00,1.00 -0342,+060.00,+00.00,01.00,000.00,1.00 -0343,+060.00,+00.00,01.00,000.00,1.00 -0344,+060.00,+00.00,01.00,000.00,1.00 -0345,+060.00,+00.00,01.00,000.00,1.00 -0346,+060.00,+00.00,01.00,000.00,1.00 -0347,+060.00,+00.00,01.00,000.00,1.00 -0348,+060.00,+00.00,01.00,000.00,1.00 -0349,+060.00,+00.00,01.00,000.00,1.00 -0350,+060.00,+00.00,01.00,000.00,1.00 -0351,+060.00,+00.00,01.00,000.00,1.00 -0352,+060.00,+00.00,01.00,000.00,1.00 -0353,+060.00,+00.00,01.00,000.00,1.00 -0354,+060.00,+00.00,01.00,000.00,1.00 -0355,+060.00,+00.00,01.00,000.00,1.00 -0356,+060.00,+00.00,01.00,000.00,1.00 -0357,+060.00,+00.00,01.00,000.00,1.00 -0358,+060.00,+00.00,01.00,000.00,1.00 -0359,+060.00,+00.00,01.00,000.00,1.00 -0360,+060.00,+00.00,01.00,000.00,1.00 -0361,+060.00,+00.00,01.00,000.00,1.00 -0362,+060.00,+00.00,01.00,000.00,1.00 -0363,+060.00,+00.00,01.00,000.00,1.00 -0364,+060.00,+00.00,01.00,000.00,1.00 -0365,+060.00,+00.00,01.00,000.00,1.00 -0366,+060.00,+00.00,01.00,000.00,1.00 -0367,+060.00,+00.00,01.00,000.00,1.00 -0368,+060.00,+00.00,01.00,000.00,1.00 -0369,+060.00,+00.00,01.00,000.00,1.00 -0370,+060.00,+00.00,01.00,000.00,1.00 -0371,+060.00,+00.00,01.00,000.00,1.00 -0372,+060.00,+00.00,01.00,000.00,1.00 -0373,+060.00,+00.00,01.00,000.00,1.00 -0374,+060.00,+00.00,01.00,000.00,1.00 -0375,+060.00,+00.00,01.00,000.00,1.00 -0376,+060.00,+00.00,01.00,000.00,1.00 -0377,+060.00,+00.00,01.00,000.00,1.00 -0378,+060.00,+00.00,01.00,000.00,1.00 -0379,+060.00,+00.00,01.00,000.00,1.00 -0380,+060.00,+00.00,01.00,000.00,1.00 -0381,+060.00,+00.00,01.00,000.00,1.00 -0382,+060.00,+00.00,01.00,000.00,1.00 -0383,+060.00,+00.00,01.00,000.00,1.00 -0384,+060.00,+00.00,01.00,000.00,1.00 -0385,+060.00,+00.00,01.00,000.00,1.00 -0386,+060.00,+00.00,01.00,000.00,1.00 -0387,+060.00,+00.00,01.00,000.00,1.00 -0388,+060.00,+00.00,01.00,000.00,1.00 -0389,+060.00,+00.00,01.00,000.00,1.00 -0390,+060.00,+00.00,01.00,000.00,1.00 -0391,+060.00,+00.00,01.00,000.00,1.00 -0392,+060.00,+00.00,01.00,000.00,1.00 -0393,+060.00,+00.00,01.00,000.00,1.00 -0394,+060.00,+00.00,01.00,000.00,1.00 -0395,+060.00,+00.00,01.00,000.00,1.00 -0396,+060.00,+00.00,01.00,000.00,1.00 -0397,+060.00,+00.00,01.00,000.00,1.00 -0398,+060.00,+00.00,01.00,000.00,1.00 -0399,+060.00,+00.00,01.00,000.00,1.00 -0400,+060.00,+00.00,01.00,000.00,1.00 -0401,+060.00,+00.00,01.00,000.00,1.00 -0402,+060.00,+00.00,01.00,000.00,1.00 -0403,+060.00,+00.00,01.00,000.00,1.00 -0404,+060.00,+00.00,01.00,000.00,1.00 -0405,+060.00,+00.00,01.00,000.00,1.00 -0406,+060.00,+00.00,01.00,000.00,1.00 -0407,+060.00,+00.00,01.00,000.00,1.00 -0408,+060.00,+00.00,01.00,000.00,1.00 -0409,+060.00,+00.00,01.00,000.00,1.00 -0410,+060.00,+00.00,01.00,000.00,1.00 -0411,+060.00,+00.00,01.00,000.00,1.00 -0412,+060.00,+00.00,01.00,000.00,1.00 -0413,+060.00,+00.00,01.00,000.00,1.00 -0414,+060.00,+00.00,01.00,000.00,1.00 -0415,+060.00,+00.00,01.00,000.00,1.00 -0416,+060.00,+00.00,01.00,000.00,1.00 -0417,+060.00,+00.00,01.00,000.00,1.00 -0418,+060.00,+00.00,01.00,000.00,1.00 -0419,+060.00,+00.00,01.00,000.00,1.00 -0420,+060.00,+00.00,01.00,000.00,1.00 -0421,+060.00,+00.00,01.00,000.00,1.00 -0422,+060.00,+00.00,01.00,000.00,1.00 -0423,+060.00,+00.00,01.00,000.00,1.00 -0424,+060.00,+00.00,01.00,000.00,1.00 -0425,+060.00,+00.00,01.00,000.00,1.00 -0426,+060.00,+00.00,01.00,000.00,1.00 -0427,+060.00,+00.00,01.00,000.00,1.00 -0428,+060.00,+00.00,01.00,000.00,1.00 -0429,+060.00,+00.00,01.00,000.00,1.00 -0430,+060.00,+00.00,01.00,000.00,1.00 -0431,+060.00,+00.00,01.00,000.00,1.00 -0432,+060.00,+00.00,01.00,000.00,1.00 -0433,+060.00,+00.00,01.00,000.00,1.00 -0434,+060.00,+00.00,01.00,000.00,1.00 -0435,+060.00,+00.00,01.00,000.00,1.00 -0436,+060.00,+00.00,01.00,000.00,1.00 -0437,+060.00,+00.00,01.00,000.00,1.00 -0438,+060.00,+00.00,01.00,000.00,1.00 -0439,+060.00,+00.00,01.00,000.00,1.00 -0440,+060.00,+00.00,01.00,000.00,1.00 -0441,+060.00,+00.00,01.00,000.00,1.00 -0442,+060.00,+00.00,01.00,000.00,1.00 -0443,+060.00,+00.00,01.00,000.00,1.00 -0444,+060.00,+00.00,01.00,000.00,1.00 -0445,+060.00,+00.00,01.00,000.00,1.00 -0446,+060.00,+00.00,01.00,000.00,1.00 -0447,+060.00,+00.00,01.00,000.00,1.00 -0448,+060.00,+00.00,01.00,000.00,1.00 -0449,+060.00,+00.00,01.00,000.00,1.00 -0450,+060.00,+00.00,01.00,000.00,1.00 -0451,+060.00,+00.00,01.00,000.00,1.00 -0452,+060.00,+00.00,01.00,000.00,1.00 -0453,+060.00,+00.00,01.00,000.00,1.00 -0454,+060.00,+00.00,01.00,000.00,1.00 -0455,+060.00,+00.00,01.00,000.00,1.00 -0456,+060.00,+00.00,01.00,000.00,1.00 -0457,+060.00,+00.00,01.00,000.00,1.00 -0458,+060.00,+00.00,01.00,000.00,1.00 -0459,+060.00,+00.00,01.00,000.00,1.00 -0460,+060.00,+00.00,01.00,000.00,1.00 -0461,+060.00,+00.00,01.00,000.00,1.00 -0462,+060.00,+00.00,01.00,000.00,1.00 -0463,+060.00,+00.00,01.00,000.00,1.00 -0464,+060.00,+00.00,01.00,000.00,1.00 -0465,+060.00,+00.00,01.00,000.00,1.00 -0466,+060.00,+00.00,01.00,000.00,1.00 -0467,+060.00,+00.00,01.00,000.00,1.00 -0468,+060.00,+00.00,01.00,000.00,1.00 -0469,+060.00,+00.00,01.00,000.00,1.00 -0470,+060.00,+00.00,01.00,000.00,1.00 -0471,+060.00,+00.00,01.00,000.00,1.00 -0472,+060.00,+00.00,01.00,000.00,1.00 -0473,+060.00,+00.00,01.00,000.00,1.00 -0474,+060.00,+00.00,01.00,000.00,1.00 -0475,+060.00,+00.00,01.00,000.00,1.00 -0476,+060.00,+00.00,01.00,000.00,1.00 -0477,+060.00,+00.00,01.00,000.00,1.00 -0478,+060.00,+00.00,01.00,000.00,1.00 -0479,+060.00,+00.00,01.00,000.00,1.00 -0480,+060.00,+00.00,01.00,000.00,1.00 -0481,+060.00,+00.00,01.00,000.00,1.00 -0482,+060.00,+00.00,01.00,000.00,1.00 -0483,+060.00,+00.00,01.00,000.00,1.00 -0484,+060.00,+00.00,01.00,000.00,1.00 -0485,+060.00,+00.00,01.00,000.00,1.00 -0486,+060.00,+00.00,01.00,000.00,1.00 -0487,+060.00,+00.00,01.00,000.00,1.00 -0488,+060.00,+00.00,01.00,000.00,1.00 -0489,+060.00,+00.00,01.00,000.00,1.00 -0490,+060.00,+00.00,01.00,000.00,1.00 -0491,+060.00,+00.00,01.00,000.00,1.00 -0492,+060.00,+00.00,01.00,000.00,1.00 -0493,+060.00,+00.00,01.00,000.00,1.00 -0494,+060.00,+00.00,01.00,000.00,1.00 -0495,+060.00,+00.00,01.00,000.00,1.00 -0496,+060.00,+00.00,01.00,000.00,1.00 -0497,+060.00,+00.00,01.00,000.00,1.00 -0498,+060.00,+00.00,01.00,000.00,1.00 -0499,+060.00,+00.00,01.00,000.00,1.00 -0500,+060.00,+00.00,01.00,000.00,1.00 -0501,+060.00,+00.00,01.00,000.00,1.00 -0502,+060.00,+00.00,01.00,000.00,1.00 -0503,+060.00,+00.00,01.00,000.00,1.00 -0504,+060.00,+00.00,01.00,000.00,1.00 -0505,+060.00,+00.00,01.00,000.00,1.00 -0506,+060.00,+00.00,01.00,000.00,1.00 -0507,+060.00,+00.00,01.00,000.00,1.00 -0508,+060.00,+00.00,01.00,000.00,1.00 -0509,+060.00,+00.00,01.00,000.00,1.00 -0510,+060.00,+00.00,01.00,000.00,1.00 -0511,+060.00,+00.00,01.00,000.00,1.00 -0512,+060.00,+00.00,01.00,000.00,1.00 -0513,+060.00,+00.00,01.00,000.00,1.00 -0514,+060.00,+00.00,01.00,000.00,1.00 -0515,+060.00,+00.00,01.00,000.00,1.00 -0516,+060.00,+00.00,01.00,000.00,1.00 -0517,+060.00,+00.00,01.00,000.00,1.00 -0518,+060.00,+00.00,01.00,000.00,1.00 -0519,+060.00,+00.00,01.00,000.00,1.00 -0520,+060.00,+00.00,01.00,000.00,1.00 -0521,+060.00,+00.00,01.00,000.00,1.00 -0522,+060.00,+00.00,01.00,000.00,1.00 -0523,+060.00,+00.00,01.00,000.00,1.00 -0524,+060.00,+00.00,01.00,000.00,1.00 -0525,+060.00,+00.00,01.00,000.00,1.00 -0526,+060.00,+00.00,01.00,000.00,1.00 -0527,+060.00,+00.00,01.00,000.00,1.00 -0528,+060.00,+00.00,01.00,000.00,1.00 -0529,+060.00,+00.00,01.00,000.00,1.00 -0530,+060.00,+00.00,01.00,000.00,1.00 -0531,+060.00,+00.00,01.00,000.00,1.00 -0532,+060.00,+00.00,01.00,000.00,1.00 -0533,+060.00,+00.00,01.00,000.00,1.00 -0534,+060.00,+00.00,01.00,000.00,1.00 -0535,+060.00,+00.00,01.00,000.00,1.00 -0536,+060.00,+00.00,01.00,000.00,1.00 -0537,+060.00,+00.00,01.00,000.00,1.00 -0538,+060.00,+00.00,01.00,000.00,1.00 -0539,+060.00,+00.00,01.00,000.00,1.00 -0540,+060.00,+00.00,01.00,000.00,1.00 -0541,+060.00,+00.00,01.00,000.00,1.00 -0542,+060.00,+00.00,01.00,000.00,1.00 -0543,+060.00,+00.00,01.00,000.00,1.00 -0544,+060.00,+00.00,01.00,000.00,1.00 -0545,+060.00,+00.00,01.00,000.00,1.00 -0546,+060.00,+00.00,01.00,000.00,1.00 -0547,+060.00,+00.00,01.00,000.00,1.00 -0548,+060.00,+00.00,01.00,000.00,1.00 -0549,+060.00,+00.00,01.00,000.00,1.00 -0550,+060.00,+00.00,01.00,000.00,1.00 -0551,+060.00,+00.00,01.00,000.00,1.00 -0552,+060.00,+00.00,01.00,000.00,1.00 -0553,+060.00,+00.00,01.00,000.00,1.00 -0554,+060.00,+00.00,01.00,000.00,1.00 -0555,+060.00,+00.00,01.00,000.00,1.00 -0556,+060.00,+00.00,01.00,000.00,1.00 -0557,+060.00,+00.00,01.00,000.00,1.00 -0558,+060.00,+00.00,01.00,000.00,1.00 -0559,+060.00,+00.00,01.00,000.00,1.00 -0560,+060.00,+00.00,01.00,000.00,1.00 -0561,+060.00,+00.00,01.00,000.00,1.00 -0562,+060.00,+00.00,01.00,000.00,1.00 -0563,+060.00,+00.00,01.00,000.00,1.00 -0564,+060.00,+00.00,01.00,000.00,1.00 -0565,+060.00,+00.00,01.00,000.00,1.00 -0566,+060.00,+00.00,01.00,000.00,1.00 -0567,+060.00,+00.00,01.00,000.00,1.00 -0568,+060.00,+00.00,01.00,000.00,1.00 -0569,+060.00,+00.00,01.00,000.00,1.00 -0570,+060.00,+00.00,01.00,000.00,1.00 -0571,+060.00,+00.00,01.00,000.00,1.00 -0572,+060.00,+00.00,01.00,000.00,1.00 -0573,+060.00,+00.00,01.00,000.00,1.00 -0574,+060.00,+00.00,01.00,000.00,1.00 -0575,+060.00,+00.00,01.00,000.00,1.00 -0576,+060.00,+00.00,01.00,000.00,1.00 -0577,+060.00,+00.00,01.00,000.00,1.00 -0578,+060.00,+00.00,01.00,000.00,1.00 -0579,+060.00,+00.00,01.00,000.00,1.00 -0580,+060.00,+00.00,01.00,000.00,1.00 -0581,+060.00,+00.00,01.00,000.00,1.00 -0582,+060.00,+00.00,01.00,000.00,1.00 -0583,+060.00,+00.00,01.00,000.00,1.00 -0584,+060.00,+00.00,01.00,000.00,1.00 -0585,+060.00,+00.00,01.00,000.00,1.00 -0586,+060.00,+00.00,01.00,000.00,1.00 -0587,+060.00,+00.00,01.00,000.00,1.00 -0588,+060.00,+00.00,01.00,000.00,1.00 -0589,+060.00,+00.00,01.00,000.00,1.00 -0590,+060.00,+00.00,01.00,000.00,1.00 -0591,+060.00,+00.00,01.00,000.00,1.00 -0592,+060.00,+00.00,01.00,000.00,1.00 -0593,+060.00,+00.00,01.00,000.00,1.00 -0594,+060.00,+00.00,01.00,000.00,1.00 -0595,+060.00,+00.00,01.00,000.00,1.00 -0596,+060.00,+00.00,01.00,000.00,1.00 -0597,+060.00,+00.00,01.00,000.00,1.00 -0598,+060.00,+00.00,01.00,000.00,1.00 -0599,+060.00,+00.00,01.00,000.00,1.00 -0600,+060.00,+00.00,01.00,000.00,1.00 -0601,+060.00,+00.00,01.00,000.00,1.00 -0602,+060.00,+00.00,01.00,000.00,1.00 -0603,+060.00,+00.00,01.00,000.00,1.00 -0604,+060.00,+00.00,01.00,000.00,1.00 -0605,+060.00,+00.00,01.00,000.00,1.00 -0606,+060.00,+00.00,01.00,000.00,1.00 -0607,+060.00,+00.00,01.00,000.00,1.00 -0608,+060.00,+00.00,01.00,000.00,1.00 -0609,+060.00,+00.00,01.00,000.00,1.00 -0610,+060.00,+00.00,01.00,000.00,1.00 -0611,+060.00,+00.00,01.00,000.00,1.00 -0612,+060.00,+00.00,01.00,000.00,1.00 -0613,+060.00,+00.00,01.00,000.00,1.00 -0614,+060.00,+00.00,01.00,000.00,1.00 -0615,+060.00,+00.00,01.00,000.00,1.00 -0616,+060.00,+00.00,01.00,000.00,1.00 -0617,+060.00,+00.00,01.00,000.00,1.00 -0618,+060.00,+00.00,01.00,000.00,1.00 -0619,+060.00,+00.00,01.00,000.00,1.00 -0620,+060.00,+00.00,01.00,000.00,1.00 -0621,+060.00,+00.00,01.00,000.00,1.00 -0622,+060.00,+00.00,01.00,000.00,1.00 -0623,+060.00,+00.00,01.00,000.00,1.00 -0624,+060.00,+00.00,01.00,000.00,1.00 -0625,+060.00,+00.00,01.00,000.00,1.00 -0626,+060.00,+00.00,01.00,000.00,1.00 -0627,+060.00,+00.00,01.00,000.00,1.00 -0628,+060.00,+00.00,01.00,000.00,1.00 -0629,+060.00,+00.00,01.00,000.00,1.00 -0630,+060.00,+00.00,01.00,000.00,1.00 -0631,+060.00,+00.00,01.00,000.00,1.00 -0632,+060.00,+00.00,01.00,000.00,1.00 -0633,+060.00,+00.00,01.00,000.00,1.00 -0634,+060.00,+00.00,01.00,000.00,1.00 -0635,+060.00,+00.00,01.00,000.00,1.00 -0636,+060.00,+00.00,01.00,000.00,1.00 -0637,+060.00,+00.00,01.00,000.00,1.00 -0638,+060.00,+00.00,01.00,000.00,1.00 -0639,+060.00,+00.00,01.00,000.00,1.00 -0640,+060.00,+00.00,01.00,000.00,1.00 -0641,+060.00,+00.00,01.00,000.00,1.00 -0642,+060.00,+00.00,01.00,000.00,1.00 -0643,+060.00,+00.00,01.00,000.00,1.00 -0644,+060.00,+00.00,01.00,000.00,1.00 -0645,+060.00,+00.00,01.00,000.00,1.00 -0646,+060.00,+00.00,01.00,000.00,1.00 -0647,+060.00,+00.00,01.00,000.00,1.00 -0648,+060.00,+00.00,01.00,000.00,1.00 -0649,+060.00,+00.00,01.00,000.00,1.00 -0650,+060.00,+00.00,01.00,000.00,1.00 -0651,+060.00,+00.00,01.00,000.00,1.00 -0652,+060.00,+00.00,01.00,000.00,1.00 -0653,+060.00,+00.00,01.00,000.00,1.00 -0654,+060.00,+00.00,01.00,000.00,1.00 -0655,+060.00,+00.00,01.00,000.00,1.00 -0656,+060.00,+00.00,01.00,000.00,1.00 -0657,+060.00,+00.00,01.00,000.00,1.00 -0658,+060.00,+00.00,01.00,000.00,1.00 -0659,+060.00,+00.00,01.00,000.00,1.00 -0660,+060.00,+00.00,01.00,000.00,1.00 -0661,+060.00,+00.00,01.00,000.00,1.00 -0662,+060.00,+00.00,01.00,000.00,1.00 -0663,+060.00,+00.00,01.00,000.00,1.00 -0664,+060.00,+00.00,01.00,000.00,1.00 -0665,+060.00,+00.00,01.00,000.00,1.00 -0666,+060.00,+00.00,01.00,000.00,1.00 -0667,+060.00,+00.00,01.00,000.00,1.00 -0668,+060.00,+00.00,01.00,000.00,1.00 -0669,+060.00,+00.00,01.00,000.00,1.00 -0670,+060.00,+00.00,01.00,000.00,1.00 -0671,+060.00,+00.00,01.00,000.00,1.00 -0672,+060.00,+00.00,01.00,000.00,1.00 -0673,+060.00,+00.00,01.00,000.00,1.00 -0674,+060.00,+00.00,01.00,000.00,1.00 -0675,+060.00,+00.00,01.00,000.00,1.00 -0676,+060.00,+00.00,01.00,000.00,1.00 -0677,+060.00,+00.00,01.00,000.00,1.00 -0678,+060.00,+00.00,01.00,000.00,1.00 -0679,+060.00,+00.00,01.00,000.00,1.00 -0680,+060.00,+00.00,01.00,000.00,1.00 -0681,+060.00,+00.00,01.00,000.00,1.00 -0682,+060.00,+00.00,01.00,000.00,1.00 -0683,+060.00,+00.00,01.00,000.00,1.00 -0684,+060.00,+00.00,01.00,000.00,1.00 -0685,+060.00,+00.00,01.00,000.00,1.00 -0686,+060.00,+00.00,01.00,000.00,1.00 -0687,+060.00,+00.00,01.00,000.00,1.00 -0688,+060.00,+00.00,01.00,000.00,1.00 -0689,+060.00,+00.00,01.00,000.00,1.00 -0690,+060.00,+00.00,01.00,000.00,1.00 -0691,+060.00,+00.00,01.00,000.00,1.00 -0692,+060.00,+00.00,01.00,000.00,1.00 -0693,+060.00,+00.00,01.00,000.00,1.00 -0694,+060.00,+00.00,01.00,000.00,1.00 -0695,+060.00,+00.00,01.00,000.00,1.00 -0696,+060.00,+00.00,01.00,000.00,1.00 -0697,+060.00,+00.00,01.00,000.00,1.00 -0698,+060.00,+00.00,01.00,000.00,1.00 -0699,+060.00,+00.00,01.00,000.00,1.00 -0700,+060.00,+00.00,01.00,000.00,1.00 -0701,+060.00,+00.00,01.00,000.00,1.00 -0702,+060.00,+00.00,01.00,000.00,1.00 -0703,+060.00,+00.00,01.00,000.00,1.00 -0704,+060.00,+00.00,01.00,000.00,1.00 -0705,+060.00,+00.00,01.00,000.00,1.00 -0706,+060.00,+00.00,01.00,000.00,1.00 -0707,+060.00,+00.00,01.00,000.00,1.00 -0708,+060.00,+00.00,01.00,000.00,1.00 -0709,+060.00,+00.00,01.00,000.00,1.00 -0710,+060.00,+00.00,01.00,000.00,1.00 -0711,+060.00,+00.00,01.00,000.00,1.00 -0712,+060.00,+00.00,01.00,000.00,1.00 -0713,+060.00,+00.00,01.00,000.00,1.00 -0714,+060.00,+00.00,01.00,000.00,1.00 -0715,+060.00,+00.00,01.00,000.00,1.00 -0716,+060.00,+00.00,01.00,000.00,1.00 -0717,+060.00,+00.00,01.00,000.00,1.00 -0718,+060.00,+00.00,01.00,000.00,1.00 -0719,+060.00,+00.00,01.00,000.00,1.00 -0720,+060.00,+00.00,01.00,000.00,1.00 -0721,+060.00,+00.00,01.00,000.00,1.00 -0722,+060.00,+00.00,01.00,000.00,1.00 -0723,+060.00,+00.00,01.00,000.00,1.00 -0724,+060.00,+00.00,01.00,000.00,1.00 -0725,+060.00,+00.00,01.00,000.00,1.00 -0726,+060.00,+00.00,01.00,000.00,1.00 -0727,+060.00,+00.00,01.00,000.00,1.00 -0728,+060.00,+00.00,01.00,000.00,1.00 -0729,+060.00,+00.00,01.00,000.00,1.00 -0730,+060.00,+00.00,01.00,000.00,1.00 -0731,+060.00,+00.00,01.00,000.00,1.00 -0732,+060.00,+00.00,01.00,000.00,1.00 -0733,+060.00,+00.00,01.00,000.00,1.00 -0734,+060.00,+00.00,01.00,000.00,1.00 -0735,+060.00,+00.00,01.00,000.00,1.00 -0736,+060.00,+00.00,01.00,000.00,1.00 -0737,+060.00,+00.00,01.00,000.00,1.00 -0738,+060.00,+00.00,01.00,000.00,1.00 -0739,+060.00,+00.00,01.00,000.00,1.00 -0740,+060.00,+00.00,01.00,000.00,1.00 -0741,+060.00,+00.00,01.00,000.00,1.00 -0742,+060.00,+00.00,01.00,000.00,1.00 -0743,+060.00,+00.00,01.00,000.00,1.00 -0744,+060.00,+00.00,01.00,000.00,1.00 -0745,+060.00,+00.00,01.00,000.00,1.00 -0746,+060.00,+00.00,01.00,000.00,1.00 -0747,+060.00,+00.00,01.00,000.00,1.00 -0748,+060.00,+00.00,01.00,000.00,1.00 -0749,+060.00,+00.00,01.00,000.00,1.00 -0750,+060.00,+00.00,01.00,000.00,1.00 -0751,+060.00,+00.00,01.00,000.00,1.00 -0752,+060.00,+00.00,01.00,000.00,1.00 -0753,+060.00,+00.00,01.00,000.00,1.00 -0754,+060.00,+00.00,01.00,000.00,1.00 -0755,+060.00,+00.00,01.00,000.00,1.00 -0756,+060.00,+00.00,01.00,000.00,1.00 -0757,+060.00,+00.00,01.00,000.00,1.00 -0758,+060.00,+00.00,01.00,000.00,1.00 -0759,+060.00,+00.00,01.00,000.00,1.00 -0760,+060.00,+00.00,01.00,000.00,1.00 -0761,+060.00,+00.00,01.00,000.00,1.00 -0762,+060.00,+00.00,01.00,000.00,1.00 -0763,+060.00,+00.00,01.00,000.00,1.00 -0764,+060.00,+00.00,01.00,000.00,1.00 -0765,+060.00,+00.00,01.00,000.00,1.00 -0766,+060.00,+00.00,01.00,000.00,1.00 -0767,+060.00,+00.00,01.00,000.00,1.00 -0768,+060.00,+00.00,01.00,000.00,1.00 -0769,+060.00,+00.00,01.00,000.00,1.00 -0770,+060.00,+00.00,01.00,000.00,1.00 -0771,+060.00,+00.00,01.00,000.00,1.00 -0772,+060.00,+00.00,01.00,000.00,1.00 -0773,+060.00,+00.00,01.00,000.00,1.00 -0774,+060.00,+00.00,01.00,000.00,1.00 -0775,+060.00,+00.00,01.00,000.00,1.00 -0776,+060.00,+00.00,01.00,000.00,1.00 -0777,+060.00,+00.00,01.00,000.00,1.00 -0778,+060.00,+00.00,01.00,000.00,1.00 -0779,+060.00,+00.00,01.00,000.00,1.00 -0780,+060.00,+00.00,01.00,000.00,1.00 -0781,+060.00,+00.00,01.00,000.00,1.00 -0782,+060.00,+00.00,01.00,000.00,1.00 -0783,+060.00,+00.00,01.00,000.00,1.00 -0784,+060.00,+00.00,01.00,000.00,1.00 -0785,+060.00,+00.00,01.00,000.00,1.00 -0786,+060.00,+00.00,01.00,000.00,1.00 -0787,+060.00,+00.00,01.00,000.00,1.00 -0788,+060.00,+00.00,01.00,000.00,1.00 -0789,+060.00,+00.00,01.00,000.00,1.00 -0790,+060.00,+00.00,01.00,000.00,1.00 -0791,+060.00,+00.00,01.00,000.00,1.00 -0792,+060.00,+00.00,01.00,000.00,1.00 -0793,+060.00,+00.00,01.00,000.00,1.00 -0794,+060.00,+00.00,01.00,000.00,1.00 -0795,+060.00,+00.00,01.00,000.00,1.00 -0796,+060.00,+00.00,01.00,000.00,1.00 -0797,+060.00,+00.00,01.00,000.00,1.00 -0798,+060.00,+00.00,01.00,000.00,1.00 -0799,+060.00,+00.00,01.00,000.00,1.00 -0800,+060.00,+00.00,01.00,000.00,1.00 -0801,+060.00,+00.00,01.00,000.00,1.00 -0802,+060.00,+00.00,01.00,000.00,1.00 -0803,+060.00,+00.00,01.00,000.00,1.00 -0804,+060.00,+00.00,01.00,000.00,1.00 -0805,+060.00,+00.00,01.00,000.00,1.00 -0806,+060.00,+00.00,01.00,000.00,1.00 -0807,+060.00,+00.00,01.00,000.00,1.00 -0808,+060.00,+00.00,01.00,000.00,1.00 -0809,+060.00,+00.00,01.00,000.00,1.00 -0810,+060.00,+00.00,01.00,000.00,1.00 -0811,+060.00,+00.00,01.00,000.00,1.00 -0812,+060.00,+00.00,01.00,000.00,1.00 -0813,+060.00,+00.00,01.00,000.00,1.00 -0814,+060.00,+00.00,01.00,000.00,1.00 -0815,+060.00,+00.00,01.00,000.00,1.00 -0816,+060.00,+00.00,01.00,000.00,1.00 -0817,+060.00,+00.00,01.00,000.00,1.00 -0818,+060.00,+00.00,01.00,000.00,1.00 -0819,+060.00,+00.00,01.00,000.00,1.00 -0820,+060.00,+00.00,01.00,000.00,1.00 -0821,+060.00,+00.00,01.00,000.00,1.00 -0822,+060.00,+00.00,01.00,000.00,1.00 -0823,+060.00,+00.00,01.00,000.00,1.00 -0824,+060.00,+00.00,01.00,000.00,1.00 -0825,+060.00,+00.00,01.00,000.00,1.00 -0826,+060.00,+00.00,01.00,000.00,1.00 -0827,+060.00,+00.00,01.00,000.00,1.00 -0828,+060.00,+00.00,01.00,000.00,1.00 -0829,+060.00,+00.00,01.00,000.00,1.00 -0830,+060.00,+00.00,01.00,000.00,1.00 -0831,+060.00,+00.00,01.00,000.00,1.00 -0832,+060.00,+00.00,01.00,000.00,1.00 -0833,+060.00,+00.00,01.00,000.00,1.00 -0834,+060.00,+00.00,01.00,000.00,1.00 -0835,+060.00,+00.00,01.00,000.00,1.00 -0836,+060.00,+00.00,01.00,000.00,1.00 -0837,+060.00,+00.00,01.00,000.00,1.00 -0838,+060.00,+00.00,01.00,000.00,1.00 -0839,+060.00,+00.00,01.00,000.00,1.00 -0840,+060.00,+00.00,01.00,000.00,1.00 -0841,+060.00,+00.00,01.00,000.00,1.00 -0842,+060.00,+00.00,01.00,000.00,1.00 -0843,+060.00,+00.00,01.00,000.00,1.00 -0844,+060.00,+00.00,01.00,000.00,1.00 -0845,+060.00,+00.00,01.00,000.00,1.00 -0846,+060.00,+00.00,01.00,000.00,1.00 -0847,+060.00,+00.00,01.00,000.00,1.00 -0848,+060.00,+00.00,01.00,000.00,1.00 -0849,+060.00,+00.00,01.00,000.00,1.00 -0850,+060.00,+00.00,01.00,000.00,1.00 -0851,+060.00,+00.00,01.00,000.00,1.00 -0852,+060.00,+00.00,01.00,000.00,1.00 -0853,+060.00,+00.00,01.00,000.00,1.00 -0854,+060.00,+00.00,01.00,000.00,1.00 -0855,+060.00,+00.00,01.00,000.00,1.00 -0856,+060.00,+00.00,01.00,000.00,1.00 -0857,+060.00,+00.00,01.00,000.00,1.00 -0858,+060.00,+00.00,01.00,000.00,1.00 -0859,+060.00,+00.00,01.00,000.00,1.00 -0860,+060.00,+00.00,01.00,000.00,1.00 -0861,+060.00,+00.00,01.00,000.00,1.00 -0862,+060.00,+00.00,01.00,000.00,1.00 -0863,+060.00,+00.00,01.00,000.00,1.00 -0864,+060.00,+00.00,01.00,000.00,1.00 -0865,+060.00,+00.00,01.00,000.00,1.00 -0866,+060.00,+00.00,01.00,000.00,1.00 -0867,+060.00,+00.00,01.00,000.00,1.00 -0868,+060.00,+00.00,01.00,000.00,1.00 -0869,+060.00,+00.00,01.00,000.00,1.00 -0870,+060.00,+00.00,01.00,000.00,1.00 -0871,+060.00,+00.00,01.00,000.00,1.00 -0872,+060.00,+00.00,01.00,000.00,1.00 -0873,+060.00,+00.00,01.00,000.00,1.00 -0874,+060.00,+00.00,01.00,000.00,1.00 -0875,+060.00,+00.00,01.00,000.00,1.00 -0876,+060.00,+00.00,01.00,000.00,1.00 -0877,+060.00,+00.00,01.00,000.00,1.00 -0878,+060.00,+00.00,01.00,000.00,1.00 -0879,+060.00,+00.00,01.00,000.00,1.00 -0880,+060.00,+00.00,01.00,000.00,1.00 -0881,+060.00,+00.00,01.00,000.00,1.00 -0882,+060.00,+00.00,01.00,000.00,1.00 -0883,+060.00,+00.00,01.00,000.00,1.00 -0884,+060.00,+00.00,01.00,000.00,1.00 -0885,+060.00,+00.00,01.00,000.00,1.00 -0886,+060.00,+00.00,01.00,000.00,1.00 -0887,+060.00,+00.00,01.00,000.00,1.00 -0888,+060.00,+00.00,01.00,000.00,1.00 -0889,+060.00,+00.00,01.00,000.00,1.00 -0890,+060.00,+00.00,01.00,000.00,1.00 -0891,+060.00,+00.00,01.00,000.00,1.00 -0892,+060.00,+00.00,01.00,000.00,1.00 -0893,+060.00,+00.00,01.00,000.00,1.00 -0894,+060.00,+00.00,01.00,000.00,1.00 -0895,+060.00,+00.00,01.00,000.00,1.00 -0896,+060.00,+00.00,01.00,000.00,1.00 -0897,+060.00,+00.00,01.00,000.00,1.00 -0898,+060.00,+00.00,01.00,000.00,1.00 -0899,+060.00,+00.00,01.00,000.00,1.00 -0900,+060.00,+00.00,01.00,000.00,1.00 -0901,+060.00,+00.00,01.00,000.00,1.00 -0902,+060.00,+00.00,01.00,000.00,1.00 -0903,+060.00,+00.00,01.00,000.00,1.00 -0904,+060.00,+00.00,01.00,000.00,1.00 -0905,+060.00,+00.00,01.00,000.00,1.00 -0906,+060.00,+00.00,01.00,000.00,1.00 -0907,+060.00,+00.00,01.00,000.00,1.00 -0908,+060.00,+00.00,01.00,000.00,1.00 -0909,+060.00,+00.00,01.00,000.00,1.00 -0910,+060.00,+00.00,01.00,000.00,1.00 -0911,+060.00,+00.00,01.00,000.00,1.00 -0912,+060.00,+00.00,01.00,000.00,1.00 -0913,+060.00,+00.00,01.00,000.00,1.00 -0914,+060.00,+00.00,01.00,000.00,1.00 -0915,+060.00,+00.00,01.00,000.00,1.00 -0916,+060.00,+00.00,01.00,000.00,1.00 -0917,+060.00,+00.00,01.00,000.00,1.00 -0918,+060.00,+00.00,01.00,000.00,1.00 -0919,+060.00,+00.00,01.00,000.00,1.00 -0920,+060.00,+00.00,01.00,000.00,1.00 -0921,+060.00,+00.00,01.00,000.00,1.00 -0922,+060.00,+00.00,01.00,000.00,1.00 -0923,+060.00,+00.00,01.00,000.00,1.00 -0924,+060.00,+00.00,01.00,000.00,1.00 -0925,+060.00,+00.00,01.00,000.00,1.00 -0926,+060.00,+00.00,01.00,000.00,1.00 -0927,+060.00,+00.00,01.00,000.00,1.00 -0928,+060.00,+00.00,01.00,000.00,1.00 -0929,+060.00,+00.00,01.00,000.00,1.00 -0930,+060.00,+00.00,01.00,000.00,1.00 -0931,+060.00,+00.00,01.00,000.00,1.00 -0932,+060.00,+00.00,01.00,000.00,1.00 -0933,+060.00,+00.00,01.00,000.00,1.00 -0934,+060.00,+00.00,01.00,000.00,1.00 -0935,+060.00,+00.00,01.00,000.00,1.00 -0936,+060.00,+00.00,01.00,000.00,1.00 -0937,+060.00,+00.00,01.00,000.00,1.00 -0938,+060.00,+00.00,01.00,000.00,1.00 -0939,+060.00,+00.00,01.00,000.00,1.00 -0940,+060.00,+00.00,01.00,000.00,1.00 -0941,+060.00,+00.00,01.00,000.00,1.00 -0942,+060.00,+00.00,01.00,000.00,1.00 -0943,+060.00,+00.00,01.00,000.00,1.00 -0944,+060.00,+00.00,01.00,000.00,1.00 -0945,+060.00,+00.00,01.00,000.00,1.00 -0946,+060.00,+00.00,01.00,000.00,1.00 -0947,+060.00,+00.00,01.00,000.00,1.00 -0948,+060.00,+00.00,01.00,000.00,1.00 -0949,+060.00,+00.00,01.00,000.00,1.00 -0950,+060.00,+00.00,01.00,000.00,1.00 -0951,+060.00,+00.00,01.00,000.00,1.00 -0952,+060.00,+00.00,01.00,000.00,1.00 -0953,+060.00,+00.00,01.00,000.00,1.00 -0954,+060.00,+00.00,01.00,000.00,1.00 -0955,+060.00,+00.00,01.00,000.00,1.00 -0956,+060.00,+00.00,01.00,000.00,1.00 -0957,+060.00,+00.00,01.00,000.00,1.00 -0958,+060.00,+00.00,01.00,000.00,1.00 -0959,+060.00,+00.00,01.00,000.00,1.00 -0960,+060.00,+00.00,01.00,000.00,1.00 -0961,+060.00,+00.00,01.00,000.00,1.00 -0962,+060.00,+00.00,01.00,000.00,1.00 -0963,+060.00,+00.00,01.00,000.00,1.00 -0964,+060.00,+00.00,01.00,000.00,1.00 -0965,+060.00,+00.00,01.00,000.00,1.00 -0966,+060.00,+00.00,01.00,000.00,1.00 -0967,+060.00,+00.00,01.00,000.00,1.00 -0968,+060.00,+00.00,01.00,000.00,1.00 -0969,+060.00,+00.00,01.00,000.00,1.00 -0970,+060.00,+00.00,01.00,000.00,1.00 -0971,+060.00,+00.00,01.00,000.00,1.00 -0972,+060.00,+00.00,01.00,000.00,1.00 -0973,+060.00,+00.00,01.00,000.00,1.00 -0974,+060.00,+00.00,01.00,000.00,1.00 -0975,+060.00,+00.00,01.00,000.00,1.00 -0976,+060.00,+00.00,01.00,000.00,1.00 -0977,+060.00,+00.00,01.00,000.00,1.00 -0978,+060.00,+00.00,01.00,000.00,1.00 -0979,+060.00,+00.00,01.00,000.00,1.00 -0980,+060.00,+00.00,01.00,000.00,1.00 -0981,+060.00,+00.00,01.00,000.00,1.00 -0982,+060.00,+00.00,01.00,000.00,1.00 -0983,+060.00,+00.00,01.00,000.00,1.00 -0984,+060.00,+00.00,01.00,000.00,1.00 -0985,+060.00,+00.00,01.00,000.00,1.00 -0986,+060.00,+00.00,01.00,000.00,1.00 -0987,+060.00,+00.00,01.00,000.00,1.00 -0988,+060.00,+00.00,01.00,000.00,1.00 -0989,+060.00,+00.00,01.00,000.00,1.00 -0990,+060.00,+00.00,01.00,000.00,1.00 -0991,+060.00,+00.00,01.00,000.00,1.00 -0992,+060.00,+00.00,01.00,000.00,1.00 -0993,+060.00,+00.00,01.00,000.00,1.00 -0994,+060.00,+00.00,01.00,000.00,1.00 -0995,+060.00,+00.00,01.00,000.00,1.00 -0996,+060.00,+00.00,01.00,000.00,1.00 -0997,+060.00,+00.00,01.00,000.00,1.00 -0998,+060.00,+00.00,01.00,000.00,1.00 -0999,+060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 ++060.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t06_ch1.csv b/scripts/td_object_renderer/metadata/csv/t06_ch1.csv index 779d8f654a..846e212989 100644 --- a/scripts/td_object_renderer/metadata/csv/t06_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t06_ch1.csv @@ -1,1000 +1,1000 @@ -0000,-050.00,+00.00,01.00,000.00,1.00 -0001,-050.00,+00.00,01.00,000.00,1.00 -0002,-050.00,+00.00,01.00,000.00,1.00 -0003,-050.00,+00.00,01.00,000.00,1.00 -0004,-050.00,+00.00,01.00,000.00,1.00 -0005,-050.00,+00.00,01.00,000.00,1.00 -0006,-050.00,+00.00,01.00,000.00,1.00 -0007,-050.00,+00.00,01.00,000.00,1.00 -0008,-050.00,+00.00,01.00,000.00,1.00 -0009,-050.00,+00.00,01.00,000.00,1.00 -0010,-050.00,+00.00,01.00,000.00,1.00 -0011,-050.00,+00.00,01.00,000.00,1.00 -0012,-050.00,+00.00,01.00,000.00,1.00 -0013,-050.00,+00.00,01.00,000.00,1.00 -0014,-050.00,+00.00,01.00,000.00,1.00 -0015,-050.00,+00.00,01.00,000.00,1.00 -0016,-050.00,+00.00,01.00,000.00,1.00 -0017,-050.00,+00.00,01.00,000.00,1.00 -0018,-050.00,+00.00,01.00,000.00,1.00 -0019,-050.00,+00.00,01.00,000.00,1.00 -0020,-050.00,+00.00,01.00,000.00,1.00 -0021,-050.00,+00.00,01.00,000.00,1.00 -0022,-050.00,+00.00,01.00,000.00,1.00 -0023,-050.00,+00.00,01.00,000.00,1.00 -0024,-050.00,+00.00,01.00,000.00,1.00 -0025,-050.00,+00.00,01.00,000.00,1.00 -0026,-050.00,+00.00,01.00,000.00,1.00 -0027,-050.00,+00.00,01.00,000.00,1.00 -0028,-050.00,+00.00,01.00,000.00,1.00 -0029,-050.00,+00.00,01.00,000.00,1.00 -0030,-050.00,+00.00,01.00,000.00,1.00 -0031,-050.00,+00.00,01.00,000.00,1.00 -0032,-050.00,+00.00,01.00,000.00,1.00 -0033,-050.00,+00.00,01.00,000.00,1.00 -0034,-050.00,+00.00,01.00,000.00,1.00 -0035,-050.00,+00.00,01.00,000.00,1.00 -0036,-050.00,+00.00,01.00,000.00,1.00 -0037,-050.00,+00.00,01.00,000.00,1.00 -0038,-050.00,+00.00,01.00,000.00,1.00 -0039,-050.00,+00.00,01.00,000.00,1.00 -0040,-050.00,+00.00,01.00,000.00,1.00 -0041,-050.00,+00.00,01.00,000.00,1.00 -0042,-050.00,+00.00,01.00,000.00,1.00 -0043,-050.00,+00.00,01.00,000.00,1.00 -0044,-050.00,+00.00,01.00,000.00,1.00 -0045,-050.00,+00.00,01.00,000.00,1.00 -0046,-050.00,+00.00,01.00,000.00,1.00 -0047,-050.00,+00.00,01.00,000.00,1.00 -0048,-050.00,+00.00,01.00,000.00,1.00 -0049,-050.00,+00.00,01.00,000.00,1.00 -0050,-050.00,+00.00,01.00,000.00,1.00 -0051,-050.00,+00.00,01.00,000.00,1.00 -0052,-050.00,+00.00,01.00,000.00,1.00 -0053,-050.00,+00.00,01.00,000.00,1.00 -0054,-050.00,+00.00,01.00,000.00,1.00 -0055,-050.00,+00.00,01.00,000.00,1.00 -0056,-050.00,+00.00,01.00,000.00,1.00 -0057,-050.00,+00.00,01.00,000.00,1.00 -0058,-050.00,+00.00,01.00,000.00,1.00 -0059,-050.00,+00.00,01.00,000.00,1.00 -0060,-050.00,+00.00,01.00,000.00,1.00 -0061,-050.00,+00.00,01.00,000.00,1.00 -0062,-050.00,+00.00,01.00,000.00,1.00 -0063,-050.00,+00.00,01.00,000.00,1.00 -0064,-050.00,+00.00,01.00,000.00,1.00 -0065,-050.00,+00.00,01.00,000.00,1.00 -0066,-050.00,+00.00,01.00,000.00,1.00 -0067,-050.00,+00.00,01.00,000.00,1.00 -0068,-050.00,+00.00,01.00,000.00,1.00 -0069,-050.00,+00.00,01.00,000.00,1.00 -0070,-050.00,+00.00,01.00,000.00,1.00 -0071,-050.00,+00.00,01.00,000.00,1.00 -0072,-050.00,+00.00,01.00,000.00,1.00 -0073,-050.00,+00.00,01.00,000.00,1.00 -0074,-050.00,+00.00,01.00,000.00,1.00 -0075,-050.00,+00.00,01.00,000.00,1.00 -0076,-050.00,+00.00,01.00,000.00,1.00 -0077,-050.00,+00.00,01.00,000.00,1.00 -0078,-050.00,+00.00,01.00,000.00,1.00 -0079,-050.00,+00.00,01.00,000.00,1.00 -0080,-050.00,+00.00,01.00,000.00,1.00 -0081,-050.00,+00.00,01.00,000.00,1.00 -0082,-050.00,+00.00,01.00,000.00,1.00 -0083,-050.00,+00.00,01.00,000.00,1.00 -0084,-050.00,+00.00,01.00,000.00,1.00 -0085,-050.00,+00.00,01.00,000.00,1.00 -0086,-050.00,+00.00,01.00,000.00,1.00 -0087,-050.00,+00.00,01.00,000.00,1.00 -0088,-050.00,+00.00,01.00,000.00,1.00 -0089,-050.00,+00.00,01.00,000.00,1.00 -0090,-050.00,+00.00,01.00,000.00,1.00 -0091,-050.00,+00.00,01.00,000.00,1.00 -0092,-050.00,+00.00,01.00,000.00,1.00 -0093,-050.00,+00.00,01.00,000.00,1.00 -0094,-050.00,+00.00,01.00,000.00,1.00 -0095,-050.00,+00.00,01.00,000.00,1.00 -0096,-050.00,+00.00,01.00,000.00,1.00 -0097,-050.00,+00.00,01.00,000.00,1.00 -0098,-050.00,+00.00,01.00,000.00,1.00 -0099,-050.00,+00.00,01.00,000.00,1.00 -0100,-050.00,+00.00,01.00,000.00,1.00 -0101,-050.00,+00.00,01.00,000.00,1.00 -0102,-050.00,+00.00,01.00,000.00,1.00 -0103,-050.00,+00.00,01.00,000.00,1.00 -0104,-050.00,+00.00,01.00,000.00,1.00 -0105,-050.00,+00.00,01.00,000.00,1.00 -0106,-050.00,+00.00,01.00,000.00,1.00 -0107,-050.00,+00.00,01.00,000.00,1.00 -0108,-050.00,+00.00,01.00,000.00,1.00 -0109,-050.00,+00.00,01.00,000.00,1.00 -0110,-050.00,+00.00,01.00,000.00,1.00 -0111,-050.00,+00.00,01.00,000.00,1.00 -0112,-050.00,+00.00,01.00,000.00,1.00 -0113,-050.00,+00.00,01.00,000.00,1.00 -0114,-050.00,+00.00,01.00,000.00,1.00 -0115,-050.00,+00.00,01.00,000.00,1.00 -0116,-050.00,+00.00,01.00,000.00,1.00 -0117,-050.00,+00.00,01.00,000.00,1.00 -0118,-050.00,+00.00,01.00,000.00,1.00 -0119,-050.00,+00.00,01.00,000.00,1.00 -0120,-050.00,+00.00,01.00,000.00,1.00 -0121,-050.00,+00.00,01.00,000.00,1.00 -0122,-050.00,+00.00,01.00,000.00,1.00 -0123,-050.00,+00.00,01.00,000.00,1.00 -0124,-050.00,+00.00,01.00,000.00,1.00 -0125,-050.00,+00.00,01.00,000.00,1.00 -0126,-050.00,+00.00,01.00,000.00,1.00 -0127,-050.00,+00.00,01.00,000.00,1.00 -0128,-050.00,+00.00,01.00,000.00,1.00 -0129,-050.00,+00.00,01.00,000.00,1.00 -0130,-050.00,+00.00,01.00,000.00,1.00 -0131,-050.00,+00.00,01.00,000.00,1.00 -0132,-050.00,+00.00,01.00,000.00,1.00 -0133,-050.00,+00.00,01.00,000.00,1.00 -0134,-050.00,+00.00,01.00,000.00,1.00 -0135,-050.00,+00.00,01.00,000.00,1.00 -0136,-050.00,+00.00,01.00,000.00,1.00 -0137,-050.00,+00.00,01.00,000.00,1.00 -0138,-050.00,+00.00,01.00,000.00,1.00 -0139,-050.00,+00.00,01.00,000.00,1.00 -0140,-050.00,+00.00,01.00,000.00,1.00 -0141,-050.00,+00.00,01.00,000.00,1.00 -0142,-050.00,+00.00,01.00,000.00,1.00 -0143,-050.00,+00.00,01.00,000.00,1.00 -0144,-050.00,+00.00,01.00,000.00,1.00 -0145,-050.00,+00.00,01.00,000.00,1.00 -0146,-050.00,+00.00,01.00,000.00,1.00 -0147,-050.00,+00.00,01.00,000.00,1.00 -0148,-050.00,+00.00,01.00,000.00,1.00 -0149,-050.00,+00.00,01.00,000.00,1.00 -0150,-050.00,+00.00,01.00,000.00,1.00 -0151,-050.00,+00.00,01.00,000.00,1.00 -0152,-050.00,+00.00,01.00,000.00,1.00 -0153,-050.00,+00.00,01.00,000.00,1.00 -0154,-050.00,+00.00,01.00,000.00,1.00 -0155,-050.00,+00.00,01.00,000.00,1.00 -0156,-050.00,+00.00,01.00,000.00,1.00 -0157,-050.00,+00.00,01.00,000.00,1.00 -0158,-050.00,+00.00,01.00,000.00,1.00 -0159,-050.00,+00.00,01.00,000.00,1.00 -0160,-050.00,+00.00,01.00,000.00,1.00 -0161,-050.00,+00.00,01.00,000.00,1.00 -0162,-050.00,+00.00,01.00,000.00,1.00 -0163,-050.00,+00.00,01.00,000.00,1.00 -0164,-050.00,+00.00,01.00,000.00,1.00 -0165,-050.00,+00.00,01.00,000.00,1.00 -0166,-050.00,+00.00,01.00,000.00,1.00 -0167,-050.00,+00.00,01.00,000.00,1.00 -0168,-050.00,+00.00,01.00,000.00,1.00 -0169,-050.00,+00.00,01.00,000.00,1.00 -0170,-050.00,+00.00,01.00,000.00,1.00 -0171,-050.00,+00.00,01.00,000.00,1.00 -0172,-050.00,+00.00,01.00,000.00,1.00 -0173,-050.00,+00.00,01.00,000.00,1.00 -0174,-050.00,+00.00,01.00,000.00,1.00 -0175,-050.00,+00.00,01.00,000.00,1.00 -0176,-050.00,+00.00,01.00,000.00,1.00 -0177,-050.00,+00.00,01.00,000.00,1.00 -0178,-050.00,+00.00,01.00,000.00,1.00 -0179,-050.00,+00.00,01.00,000.00,1.00 -0180,-050.00,+00.00,01.00,000.00,1.00 -0181,-050.00,+00.00,01.00,000.00,1.00 -0182,-050.00,+00.00,01.00,000.00,1.00 -0183,-050.00,+00.00,01.00,000.00,1.00 -0184,-050.00,+00.00,01.00,000.00,1.00 -0185,-050.00,+00.00,01.00,000.00,1.00 -0186,-050.00,+00.00,01.00,000.00,1.00 -0187,-050.00,+00.00,01.00,000.00,1.00 -0188,-050.00,+00.00,01.00,000.00,1.00 -0189,-050.00,+00.00,01.00,000.00,1.00 -0190,-050.00,+00.00,01.00,000.00,1.00 -0191,-050.00,+00.00,01.00,000.00,1.00 -0192,-050.00,+00.00,01.00,000.00,1.00 -0193,-050.00,+00.00,01.00,000.00,1.00 -0194,-050.00,+00.00,01.00,000.00,1.00 -0195,-050.00,+00.00,01.00,000.00,1.00 -0196,-050.00,+00.00,01.00,000.00,1.00 -0197,-050.00,+00.00,01.00,000.00,1.00 -0198,-050.00,+00.00,01.00,000.00,1.00 -0199,-050.00,+00.00,01.00,000.00,1.00 -0200,-050.00,+00.00,01.00,000.00,1.00 -0201,-050.00,+00.00,01.00,000.00,1.00 -0202,-050.00,+00.00,01.00,000.00,1.00 -0203,-050.00,+00.00,01.00,000.00,1.00 -0204,-050.00,+00.00,01.00,000.00,1.00 -0205,-050.00,+00.00,01.00,000.00,1.00 -0206,-050.00,+00.00,01.00,000.00,1.00 -0207,-050.00,+00.00,01.00,000.00,1.00 -0208,-050.00,+00.00,01.00,000.00,1.00 -0209,-050.00,+00.00,01.00,000.00,1.00 -0210,-050.00,+00.00,01.00,000.00,1.00 -0211,-050.00,+00.00,01.00,000.00,1.00 -0212,-050.00,+00.00,01.00,000.00,1.00 -0213,-050.00,+00.00,01.00,000.00,1.00 -0214,-050.00,+00.00,01.00,000.00,1.00 -0215,-050.00,+00.00,01.00,000.00,1.00 -0216,-050.00,+00.00,01.00,000.00,1.00 -0217,-050.00,+00.00,01.00,000.00,1.00 -0218,-050.00,+00.00,01.00,000.00,1.00 -0219,-050.00,+00.00,01.00,000.00,1.00 -0220,-050.00,+00.00,01.00,000.00,1.00 -0221,-050.00,+00.00,01.00,000.00,1.00 -0222,-050.00,+00.00,01.00,000.00,1.00 -0223,-050.00,+00.00,01.00,000.00,1.00 -0224,-050.00,+00.00,01.00,000.00,1.00 -0225,-050.00,+00.00,01.00,000.00,1.00 -0226,-050.00,+00.00,01.00,000.00,1.00 -0227,-050.00,+00.00,01.00,000.00,1.00 -0228,-050.00,+00.00,01.00,000.00,1.00 -0229,-050.00,+00.00,01.00,000.00,1.00 -0230,-050.00,+00.00,01.00,000.00,1.00 -0231,-050.00,+00.00,01.00,000.00,1.00 -0232,-050.00,+00.00,01.00,000.00,1.00 -0233,-050.00,+00.00,01.00,000.00,1.00 -0234,-050.00,+00.00,01.00,000.00,1.00 -0235,-050.00,+00.00,01.00,000.00,1.00 -0236,-050.00,+00.00,01.00,000.00,1.00 -0237,-050.00,+00.00,01.00,000.00,1.00 -0238,-050.00,+00.00,01.00,000.00,1.00 -0239,-050.00,+00.00,01.00,000.00,1.00 -0240,-050.00,+00.00,01.00,000.00,1.00 -0241,-050.00,+00.00,01.00,000.00,1.00 -0242,-050.00,+00.00,01.00,000.00,1.00 -0243,-050.00,+00.00,01.00,000.00,1.00 -0244,-050.00,+00.00,01.00,000.00,1.00 -0245,-050.00,+00.00,01.00,000.00,1.00 -0246,-050.00,+00.00,01.00,000.00,1.00 -0247,-050.00,+00.00,01.00,000.00,1.00 -0248,-050.00,+00.00,01.00,000.00,1.00 -0249,-050.00,+00.00,01.00,000.00,1.00 -0250,-050.00,+00.00,01.00,000.00,1.00 -0251,-050.00,+00.00,01.00,000.00,1.00 -0252,-050.00,+00.00,01.00,000.00,1.00 -0253,-050.00,+00.00,01.00,000.00,1.00 -0254,-050.00,+00.00,01.00,000.00,1.00 -0255,-050.00,+00.00,01.00,000.00,1.00 -0256,-050.00,+00.00,01.00,000.00,1.00 -0257,-050.00,+00.00,01.00,000.00,1.00 -0258,-050.00,+00.00,01.00,000.00,1.00 -0259,-050.00,+00.00,01.00,000.00,1.00 -0260,-050.00,+00.00,01.00,000.00,1.00 -0261,-050.00,+00.00,01.00,000.00,1.00 -0262,-050.00,+00.00,01.00,000.00,1.00 -0263,-050.00,+00.00,01.00,000.00,1.00 -0264,-050.00,+00.00,01.00,000.00,1.00 -0265,-050.00,+00.00,01.00,000.00,1.00 -0266,-050.00,+00.00,01.00,000.00,1.00 -0267,-050.00,+00.00,01.00,000.00,1.00 -0268,-050.00,+00.00,01.00,000.00,1.00 -0269,-050.00,+00.00,01.00,000.00,1.00 -0270,-050.00,+00.00,01.00,000.00,1.00 -0271,-050.00,+00.00,01.00,000.00,1.00 -0272,-050.00,+00.00,01.00,000.00,1.00 -0273,-050.00,+00.00,01.00,000.00,1.00 -0274,-050.00,+00.00,01.00,000.00,1.00 -0275,-050.00,+00.00,01.00,000.00,1.00 -0276,-050.00,+00.00,01.00,000.00,1.00 -0277,-050.00,+00.00,01.00,000.00,1.00 -0278,-050.00,+00.00,01.00,000.00,1.00 -0279,-050.00,+00.00,01.00,000.00,1.00 -0280,-050.00,+00.00,01.00,000.00,1.00 -0281,-050.00,+00.00,01.00,000.00,1.00 -0282,-050.00,+00.00,01.00,000.00,1.00 -0283,-050.00,+00.00,01.00,000.00,1.00 -0284,-050.00,+00.00,01.00,000.00,1.00 -0285,-050.00,+00.00,01.00,000.00,1.00 -0286,-050.00,+00.00,01.00,000.00,1.00 -0287,-050.00,+00.00,01.00,000.00,1.00 -0288,-050.00,+00.00,01.00,000.00,1.00 -0289,-050.00,+00.00,01.00,000.00,1.00 -0290,-050.00,+00.00,01.00,000.00,1.00 -0291,-050.00,+00.00,01.00,000.00,1.00 -0292,-050.00,+00.00,01.00,000.00,1.00 -0293,-050.00,+00.00,01.00,000.00,1.00 -0294,-050.00,+00.00,01.00,000.00,1.00 -0295,-050.00,+00.00,01.00,000.00,1.00 -0296,-050.00,+00.00,01.00,000.00,1.00 -0297,-050.00,+00.00,01.00,000.00,1.00 -0298,-050.00,+00.00,01.00,000.00,1.00 -0299,-050.00,+00.00,01.00,000.00,1.00 -0300,-050.00,+00.00,01.00,000.00,1.00 -0301,-050.00,+00.00,01.00,000.00,1.00 -0302,-050.00,+00.00,01.00,000.00,1.00 -0303,-050.00,+00.00,01.00,000.00,1.00 -0304,-050.00,+00.00,01.00,000.00,1.00 -0305,-050.00,+00.00,01.00,000.00,1.00 -0306,-050.00,+00.00,01.00,000.00,1.00 -0307,-050.00,+00.00,01.00,000.00,1.00 -0308,-050.00,+00.00,01.00,000.00,1.00 -0309,-050.00,+00.00,01.00,000.00,1.00 -0310,-050.00,+00.00,01.00,000.00,1.00 -0311,-050.00,+00.00,01.00,000.00,1.00 -0312,-050.00,+00.00,01.00,000.00,1.00 -0313,-050.00,+00.00,01.00,000.00,1.00 -0314,-050.00,+00.00,01.00,000.00,1.00 -0315,-050.00,+00.00,01.00,000.00,1.00 -0316,-050.00,+00.00,01.00,000.00,1.00 -0317,-050.00,+00.00,01.00,000.00,1.00 -0318,-050.00,+00.00,01.00,000.00,1.00 -0319,-050.00,+00.00,01.00,000.00,1.00 -0320,-050.00,+00.00,01.00,000.00,1.00 -0321,-050.00,+00.00,01.00,000.00,1.00 -0322,-050.00,+00.00,01.00,000.00,1.00 -0323,-050.00,+00.00,01.00,000.00,1.00 -0324,-050.00,+00.00,01.00,000.00,1.00 -0325,-050.00,+00.00,01.00,000.00,1.00 -0326,-050.00,+00.00,01.00,000.00,1.00 -0327,-050.00,+00.00,01.00,000.00,1.00 -0328,-050.00,+00.00,01.00,000.00,1.00 -0329,-050.00,+00.00,01.00,000.00,1.00 -0330,-050.00,+00.00,01.00,000.00,1.00 -0331,-050.00,+00.00,01.00,000.00,1.00 -0332,-050.00,+00.00,01.00,000.00,1.00 -0333,-050.00,+00.00,01.00,000.00,1.00 -0334,-050.00,+00.00,01.00,000.00,1.00 -0335,-050.00,+00.00,01.00,000.00,1.00 -0336,-050.00,+00.00,01.00,000.00,1.00 -0337,-050.00,+00.00,01.00,000.00,1.00 -0338,-050.00,+00.00,01.00,000.00,1.00 -0339,-050.00,+00.00,01.00,000.00,1.00 -0340,-050.00,+00.00,01.00,000.00,1.00 -0341,-050.00,+00.00,01.00,000.00,1.00 -0342,-050.00,+00.00,01.00,000.00,1.00 -0343,-050.00,+00.00,01.00,000.00,1.00 -0344,-050.00,+00.00,01.00,000.00,1.00 -0345,-050.00,+00.00,01.00,000.00,1.00 -0346,-050.00,+00.00,01.00,000.00,1.00 -0347,-050.00,+00.00,01.00,000.00,1.00 -0348,-050.00,+00.00,01.00,000.00,1.00 -0349,-050.00,+00.00,01.00,000.00,1.00 -0350,-050.00,+00.00,01.00,000.00,1.00 -0351,-050.00,+00.00,01.00,000.00,1.00 -0352,-050.00,+00.00,01.00,000.00,1.00 -0353,-050.00,+00.00,01.00,000.00,1.00 -0354,-050.00,+00.00,01.00,000.00,1.00 -0355,-050.00,+00.00,01.00,000.00,1.00 -0356,-050.00,+00.00,01.00,000.00,1.00 -0357,-050.00,+00.00,01.00,000.00,1.00 -0358,-050.00,+00.00,01.00,000.00,1.00 -0359,-050.00,+00.00,01.00,000.00,1.00 -0360,-050.00,+00.00,01.00,000.00,1.00 -0361,-050.00,+00.00,01.00,000.00,1.00 -0362,-050.00,+00.00,01.00,000.00,1.00 -0363,-050.00,+00.00,01.00,000.00,1.00 -0364,-050.00,+00.00,01.00,000.00,1.00 -0365,-050.00,+00.00,01.00,000.00,1.00 -0366,-050.00,+00.00,01.00,000.00,1.00 -0367,-050.00,+00.00,01.00,000.00,1.00 -0368,-050.00,+00.00,01.00,000.00,1.00 -0369,-050.00,+00.00,01.00,000.00,1.00 -0370,-050.00,+00.00,01.00,000.00,1.00 -0371,-050.00,+00.00,01.00,000.00,1.00 -0372,-050.00,+00.00,01.00,000.00,1.00 -0373,-050.00,+00.00,01.00,000.00,1.00 -0374,-050.00,+00.00,01.00,000.00,1.00 -0375,-050.00,+00.00,01.00,000.00,1.00 -0376,-050.00,+00.00,01.00,000.00,1.00 -0377,-050.00,+00.00,01.00,000.00,1.00 -0378,-050.00,+00.00,01.00,000.00,1.00 -0379,-050.00,+00.00,01.00,000.00,1.00 -0380,-050.00,+00.00,01.00,000.00,1.00 -0381,-050.00,+00.00,01.00,000.00,1.00 -0382,-050.00,+00.00,01.00,000.00,1.00 -0383,-050.00,+00.00,01.00,000.00,1.00 -0384,-050.00,+00.00,01.00,000.00,1.00 -0385,-050.00,+00.00,01.00,000.00,1.00 -0386,-050.00,+00.00,01.00,000.00,1.00 -0387,-050.00,+00.00,01.00,000.00,1.00 -0388,-050.00,+00.00,01.00,000.00,1.00 -0389,-050.00,+00.00,01.00,000.00,1.00 -0390,-050.00,+00.00,01.00,000.00,1.00 -0391,-050.00,+00.00,01.00,000.00,1.00 -0392,-050.00,+00.00,01.00,000.00,1.00 -0393,-050.00,+00.00,01.00,000.00,1.00 -0394,-050.00,+00.00,01.00,000.00,1.00 -0395,-050.00,+00.00,01.00,000.00,1.00 -0396,-050.00,+00.00,01.00,000.00,1.00 -0397,-050.00,+00.00,01.00,000.00,1.00 -0398,-050.00,+00.00,01.00,000.00,1.00 -0399,-050.00,+00.00,01.00,000.00,1.00 -0400,-050.00,+00.00,01.00,000.00,1.00 -0401,-050.00,+00.00,01.00,000.00,1.00 -0402,-050.00,+00.00,01.00,000.00,1.00 -0403,-050.00,+00.00,01.00,000.00,1.00 -0404,-050.00,+00.00,01.00,000.00,1.00 -0405,-050.00,+00.00,01.00,000.00,1.00 -0406,-050.00,+00.00,01.00,000.00,1.00 -0407,-050.00,+00.00,01.00,000.00,1.00 -0408,-050.00,+00.00,01.00,000.00,1.00 -0409,-050.00,+00.00,01.00,000.00,1.00 -0410,-050.00,+00.00,01.00,000.00,1.00 -0411,-050.00,+00.00,01.00,000.00,1.00 -0412,-050.00,+00.00,01.00,000.00,1.00 -0413,-050.00,+00.00,01.00,000.00,1.00 -0414,-050.00,+00.00,01.00,000.00,1.00 -0415,-050.00,+00.00,01.00,000.00,1.00 -0416,-050.00,+00.00,01.00,000.00,1.00 -0417,-050.00,+00.00,01.00,000.00,1.00 -0418,-050.00,+00.00,01.00,000.00,1.00 -0419,-050.00,+00.00,01.00,000.00,1.00 -0420,-050.00,+00.00,01.00,000.00,1.00 -0421,-050.00,+00.00,01.00,000.00,1.00 -0422,-050.00,+00.00,01.00,000.00,1.00 -0423,-050.00,+00.00,01.00,000.00,1.00 -0424,-050.00,+00.00,01.00,000.00,1.00 -0425,-050.00,+00.00,01.00,000.00,1.00 -0426,-050.00,+00.00,01.00,000.00,1.00 -0427,-050.00,+00.00,01.00,000.00,1.00 -0428,-050.00,+00.00,01.00,000.00,1.00 -0429,-050.00,+00.00,01.00,000.00,1.00 -0430,-050.00,+00.00,01.00,000.00,1.00 -0431,-050.00,+00.00,01.00,000.00,1.00 -0432,-050.00,+00.00,01.00,000.00,1.00 -0433,-050.00,+00.00,01.00,000.00,1.00 -0434,-050.00,+00.00,01.00,000.00,1.00 -0435,-050.00,+00.00,01.00,000.00,1.00 -0436,-050.00,+00.00,01.00,000.00,1.00 -0437,-050.00,+00.00,01.00,000.00,1.00 -0438,-050.00,+00.00,01.00,000.00,1.00 -0439,-050.00,+00.00,01.00,000.00,1.00 -0440,-050.00,+00.00,01.00,000.00,1.00 -0441,-050.00,+00.00,01.00,000.00,1.00 -0442,-050.00,+00.00,01.00,000.00,1.00 -0443,-050.00,+00.00,01.00,000.00,1.00 -0444,-050.00,+00.00,01.00,000.00,1.00 -0445,-050.00,+00.00,01.00,000.00,1.00 -0446,-050.00,+00.00,01.00,000.00,1.00 -0447,-050.00,+00.00,01.00,000.00,1.00 -0448,-050.00,+00.00,01.00,000.00,1.00 -0449,-050.00,+00.00,01.00,000.00,1.00 -0450,-050.00,+00.00,01.00,000.00,1.00 -0451,-050.00,+00.00,01.00,000.00,1.00 -0452,-050.00,+00.00,01.00,000.00,1.00 -0453,-050.00,+00.00,01.00,000.00,1.00 -0454,-050.00,+00.00,01.00,000.00,1.00 -0455,-050.00,+00.00,01.00,000.00,1.00 -0456,-050.00,+00.00,01.00,000.00,1.00 -0457,-050.00,+00.00,01.00,000.00,1.00 -0458,-050.00,+00.00,01.00,000.00,1.00 -0459,-050.00,+00.00,01.00,000.00,1.00 -0460,-050.00,+00.00,01.00,000.00,1.00 -0461,-050.00,+00.00,01.00,000.00,1.00 -0462,-050.00,+00.00,01.00,000.00,1.00 -0463,-050.00,+00.00,01.00,000.00,1.00 -0464,-050.00,+00.00,01.00,000.00,1.00 -0465,-050.00,+00.00,01.00,000.00,1.00 -0466,-050.00,+00.00,01.00,000.00,1.00 -0467,-050.00,+00.00,01.00,000.00,1.00 -0468,-050.00,+00.00,01.00,000.00,1.00 -0469,-050.00,+00.00,01.00,000.00,1.00 -0470,-050.00,+00.00,01.00,000.00,1.00 -0471,-050.00,+00.00,01.00,000.00,1.00 -0472,-050.00,+00.00,01.00,000.00,1.00 -0473,-050.00,+00.00,01.00,000.00,1.00 -0474,-050.00,+00.00,01.00,000.00,1.00 -0475,-050.00,+00.00,01.00,000.00,1.00 -0476,-050.00,+00.00,01.00,000.00,1.00 -0477,-050.00,+00.00,01.00,000.00,1.00 -0478,-050.00,+00.00,01.00,000.00,1.00 -0479,-050.00,+00.00,01.00,000.00,1.00 -0480,-050.00,+00.00,01.00,000.00,1.00 -0481,-050.00,+00.00,01.00,000.00,1.00 -0482,-050.00,+00.00,01.00,000.00,1.00 -0483,-050.00,+00.00,01.00,000.00,1.00 -0484,-050.00,+00.00,01.00,000.00,1.00 -0485,-050.00,+00.00,01.00,000.00,1.00 -0486,-050.00,+00.00,01.00,000.00,1.00 -0487,-050.00,+00.00,01.00,000.00,1.00 -0488,-050.00,+00.00,01.00,000.00,1.00 -0489,-050.00,+00.00,01.00,000.00,1.00 -0490,-050.00,+00.00,01.00,000.00,1.00 -0491,-050.00,+00.00,01.00,000.00,1.00 -0492,-050.00,+00.00,01.00,000.00,1.00 -0493,-050.00,+00.00,01.00,000.00,1.00 -0494,-050.00,+00.00,01.00,000.00,1.00 -0495,-050.00,+00.00,01.00,000.00,1.00 -0496,-050.00,+00.00,01.00,000.00,1.00 -0497,-050.00,+00.00,01.00,000.00,1.00 -0498,-050.00,+00.00,01.00,000.00,1.00 -0499,-050.00,+00.00,01.00,000.00,1.00 -0500,-050.00,+00.00,01.00,000.00,1.00 -0501,-050.00,+00.00,01.00,000.00,1.00 -0502,-050.00,+00.00,01.00,000.00,1.00 -0503,-050.00,+00.00,01.00,000.00,1.00 -0504,-050.00,+00.00,01.00,000.00,1.00 -0505,-050.00,+00.00,01.00,000.00,1.00 -0506,-050.00,+00.00,01.00,000.00,1.00 -0507,-050.00,+00.00,01.00,000.00,1.00 -0508,-050.00,+00.00,01.00,000.00,1.00 -0509,-050.00,+00.00,01.00,000.00,1.00 -0510,-050.00,+00.00,01.00,000.00,1.00 -0511,-050.00,+00.00,01.00,000.00,1.00 -0512,-050.00,+00.00,01.00,000.00,1.00 -0513,-050.00,+00.00,01.00,000.00,1.00 -0514,-050.00,+00.00,01.00,000.00,1.00 -0515,-050.00,+00.00,01.00,000.00,1.00 -0516,-050.00,+00.00,01.00,000.00,1.00 -0517,-050.00,+00.00,01.00,000.00,1.00 -0518,-050.00,+00.00,01.00,000.00,1.00 -0519,-050.00,+00.00,01.00,000.00,1.00 -0520,-050.00,+00.00,01.00,000.00,1.00 -0521,-050.00,+00.00,01.00,000.00,1.00 -0522,-050.00,+00.00,01.00,000.00,1.00 -0523,-050.00,+00.00,01.00,000.00,1.00 -0524,-050.00,+00.00,01.00,000.00,1.00 -0525,-050.00,+00.00,01.00,000.00,1.00 -0526,-050.00,+00.00,01.00,000.00,1.00 -0527,-050.00,+00.00,01.00,000.00,1.00 -0528,-050.00,+00.00,01.00,000.00,1.00 -0529,-050.00,+00.00,01.00,000.00,1.00 -0530,-050.00,+00.00,01.00,000.00,1.00 -0531,-050.00,+00.00,01.00,000.00,1.00 -0532,-050.00,+00.00,01.00,000.00,1.00 -0533,-050.00,+00.00,01.00,000.00,1.00 -0534,-050.00,+00.00,01.00,000.00,1.00 -0535,-050.00,+00.00,01.00,000.00,1.00 -0536,-050.00,+00.00,01.00,000.00,1.00 -0537,-050.00,+00.00,01.00,000.00,1.00 -0538,-050.00,+00.00,01.00,000.00,1.00 -0539,-050.00,+00.00,01.00,000.00,1.00 -0540,-050.00,+00.00,01.00,000.00,1.00 -0541,-050.00,+00.00,01.00,000.00,1.00 -0542,-050.00,+00.00,01.00,000.00,1.00 -0543,-050.00,+00.00,01.00,000.00,1.00 -0544,-050.00,+00.00,01.00,000.00,1.00 -0545,-050.00,+00.00,01.00,000.00,1.00 -0546,-050.00,+00.00,01.00,000.00,1.00 -0547,-050.00,+00.00,01.00,000.00,1.00 -0548,-050.00,+00.00,01.00,000.00,1.00 -0549,-050.00,+00.00,01.00,000.00,1.00 -0550,-050.00,+00.00,01.00,000.00,1.00 -0551,-050.00,+00.00,01.00,000.00,1.00 -0552,-050.00,+00.00,01.00,000.00,1.00 -0553,-050.00,+00.00,01.00,000.00,1.00 -0554,-050.00,+00.00,01.00,000.00,1.00 -0555,-050.00,+00.00,01.00,000.00,1.00 -0556,-050.00,+00.00,01.00,000.00,1.00 -0557,-050.00,+00.00,01.00,000.00,1.00 -0558,-050.00,+00.00,01.00,000.00,1.00 -0559,-050.00,+00.00,01.00,000.00,1.00 -0560,-050.00,+00.00,01.00,000.00,1.00 -0561,-050.00,+00.00,01.00,000.00,1.00 -0562,-050.00,+00.00,01.00,000.00,1.00 -0563,-050.00,+00.00,01.00,000.00,1.00 -0564,-050.00,+00.00,01.00,000.00,1.00 -0565,-050.00,+00.00,01.00,000.00,1.00 -0566,-050.00,+00.00,01.00,000.00,1.00 -0567,-050.00,+00.00,01.00,000.00,1.00 -0568,-050.00,+00.00,01.00,000.00,1.00 -0569,-050.00,+00.00,01.00,000.00,1.00 -0570,-050.00,+00.00,01.00,000.00,1.00 -0571,-050.00,+00.00,01.00,000.00,1.00 -0572,-050.00,+00.00,01.00,000.00,1.00 -0573,-050.00,+00.00,01.00,000.00,1.00 -0574,-050.00,+00.00,01.00,000.00,1.00 -0575,-050.00,+00.00,01.00,000.00,1.00 -0576,-050.00,+00.00,01.00,000.00,1.00 -0577,-050.00,+00.00,01.00,000.00,1.00 -0578,-050.00,+00.00,01.00,000.00,1.00 -0579,-050.00,+00.00,01.00,000.00,1.00 -0580,-050.00,+00.00,01.00,000.00,1.00 -0581,-050.00,+00.00,01.00,000.00,1.00 -0582,-050.00,+00.00,01.00,000.00,1.00 -0583,-050.00,+00.00,01.00,000.00,1.00 -0584,-050.00,+00.00,01.00,000.00,1.00 -0585,-050.00,+00.00,01.00,000.00,1.00 -0586,-050.00,+00.00,01.00,000.00,1.00 -0587,-050.00,+00.00,01.00,000.00,1.00 -0588,-050.00,+00.00,01.00,000.00,1.00 -0589,-050.00,+00.00,01.00,000.00,1.00 -0590,-050.00,+00.00,01.00,000.00,1.00 -0591,-050.00,+00.00,01.00,000.00,1.00 -0592,-050.00,+00.00,01.00,000.00,1.00 -0593,-050.00,+00.00,01.00,000.00,1.00 -0594,-050.00,+00.00,01.00,000.00,1.00 -0595,-050.00,+00.00,01.00,000.00,1.00 -0596,-050.00,+00.00,01.00,000.00,1.00 -0597,-050.00,+00.00,01.00,000.00,1.00 -0598,-050.00,+00.00,01.00,000.00,1.00 -0599,-050.00,+00.00,01.00,000.00,1.00 -0600,-050.00,+00.00,01.00,000.00,1.00 -0601,-050.00,+00.00,01.00,000.00,1.00 -0602,-050.00,+00.00,01.00,000.00,1.00 -0603,-050.00,+00.00,01.00,000.00,1.00 -0604,-050.00,+00.00,01.00,000.00,1.00 -0605,-050.00,+00.00,01.00,000.00,1.00 -0606,-050.00,+00.00,01.00,000.00,1.00 -0607,-050.00,+00.00,01.00,000.00,1.00 -0608,-050.00,+00.00,01.00,000.00,1.00 -0609,-050.00,+00.00,01.00,000.00,1.00 -0610,-050.00,+00.00,01.00,000.00,1.00 -0611,-050.00,+00.00,01.00,000.00,1.00 -0612,-050.00,+00.00,01.00,000.00,1.00 -0613,-050.00,+00.00,01.00,000.00,1.00 -0614,-050.00,+00.00,01.00,000.00,1.00 -0615,-050.00,+00.00,01.00,000.00,1.00 -0616,-050.00,+00.00,01.00,000.00,1.00 -0617,-050.00,+00.00,01.00,000.00,1.00 -0618,-050.00,+00.00,01.00,000.00,1.00 -0619,-050.00,+00.00,01.00,000.00,1.00 -0620,-050.00,+00.00,01.00,000.00,1.00 -0621,-050.00,+00.00,01.00,000.00,1.00 -0622,-050.00,+00.00,01.00,000.00,1.00 -0623,-050.00,+00.00,01.00,000.00,1.00 -0624,-050.00,+00.00,01.00,000.00,1.00 -0625,-050.00,+00.00,01.00,000.00,1.00 -0626,-050.00,+00.00,01.00,000.00,1.00 -0627,-050.00,+00.00,01.00,000.00,1.00 -0628,-050.00,+00.00,01.00,000.00,1.00 -0629,-050.00,+00.00,01.00,000.00,1.00 -0630,-050.00,+00.00,01.00,000.00,1.00 -0631,-050.00,+00.00,01.00,000.00,1.00 -0632,-050.00,+00.00,01.00,000.00,1.00 -0633,-050.00,+00.00,01.00,000.00,1.00 -0634,-050.00,+00.00,01.00,000.00,1.00 -0635,-050.00,+00.00,01.00,000.00,1.00 -0636,-050.00,+00.00,01.00,000.00,1.00 -0637,-050.00,+00.00,01.00,000.00,1.00 -0638,-050.00,+00.00,01.00,000.00,1.00 -0639,-050.00,+00.00,01.00,000.00,1.00 -0640,-050.00,+00.00,01.00,000.00,1.00 -0641,-050.00,+00.00,01.00,000.00,1.00 -0642,-050.00,+00.00,01.00,000.00,1.00 -0643,-050.00,+00.00,01.00,000.00,1.00 -0644,-050.00,+00.00,01.00,000.00,1.00 -0645,-050.00,+00.00,01.00,000.00,1.00 -0646,-050.00,+00.00,01.00,000.00,1.00 -0647,-050.00,+00.00,01.00,000.00,1.00 -0648,-050.00,+00.00,01.00,000.00,1.00 -0649,-050.00,+00.00,01.00,000.00,1.00 -0650,-050.00,+00.00,01.00,000.00,1.00 -0651,-050.00,+00.00,01.00,000.00,1.00 -0652,-050.00,+00.00,01.00,000.00,1.00 -0653,-050.00,+00.00,01.00,000.00,1.00 -0654,-050.00,+00.00,01.00,000.00,1.00 -0655,-050.00,+00.00,01.00,000.00,1.00 -0656,-050.00,+00.00,01.00,000.00,1.00 -0657,-050.00,+00.00,01.00,000.00,1.00 -0658,-050.00,+00.00,01.00,000.00,1.00 -0659,-050.00,+00.00,01.00,000.00,1.00 -0660,-050.00,+00.00,01.00,000.00,1.00 -0661,-050.00,+00.00,01.00,000.00,1.00 -0662,-050.00,+00.00,01.00,000.00,1.00 -0663,-050.00,+00.00,01.00,000.00,1.00 -0664,-050.00,+00.00,01.00,000.00,1.00 -0665,-050.00,+00.00,01.00,000.00,1.00 -0666,-050.00,+00.00,01.00,000.00,1.00 -0667,-050.00,+00.00,01.00,000.00,1.00 -0668,-050.00,+00.00,01.00,000.00,1.00 -0669,-050.00,+00.00,01.00,000.00,1.00 -0670,-050.00,+00.00,01.00,000.00,1.00 -0671,-050.00,+00.00,01.00,000.00,1.00 -0672,-050.00,+00.00,01.00,000.00,1.00 -0673,-050.00,+00.00,01.00,000.00,1.00 -0674,-050.00,+00.00,01.00,000.00,1.00 -0675,-050.00,+00.00,01.00,000.00,1.00 -0676,-050.00,+00.00,01.00,000.00,1.00 -0677,-050.00,+00.00,01.00,000.00,1.00 -0678,-050.00,+00.00,01.00,000.00,1.00 -0679,-050.00,+00.00,01.00,000.00,1.00 -0680,-050.00,+00.00,01.00,000.00,1.00 -0681,-050.00,+00.00,01.00,000.00,1.00 -0682,-050.00,+00.00,01.00,000.00,1.00 -0683,-050.00,+00.00,01.00,000.00,1.00 -0684,-050.00,+00.00,01.00,000.00,1.00 -0685,-050.00,+00.00,01.00,000.00,1.00 -0686,-050.00,+00.00,01.00,000.00,1.00 -0687,-050.00,+00.00,01.00,000.00,1.00 -0688,-050.00,+00.00,01.00,000.00,1.00 -0689,-050.00,+00.00,01.00,000.00,1.00 -0690,-050.00,+00.00,01.00,000.00,1.00 -0691,-050.00,+00.00,01.00,000.00,1.00 -0692,-050.00,+00.00,01.00,000.00,1.00 -0693,-050.00,+00.00,01.00,000.00,1.00 -0694,-050.00,+00.00,01.00,000.00,1.00 -0695,-050.00,+00.00,01.00,000.00,1.00 -0696,-050.00,+00.00,01.00,000.00,1.00 -0697,-050.00,+00.00,01.00,000.00,1.00 -0698,-050.00,+00.00,01.00,000.00,1.00 -0699,-050.00,+00.00,01.00,000.00,1.00 -0700,-050.00,+00.00,01.00,000.00,1.00 -0701,-050.00,+00.00,01.00,000.00,1.00 -0702,-050.00,+00.00,01.00,000.00,1.00 -0703,-050.00,+00.00,01.00,000.00,1.00 -0704,-050.00,+00.00,01.00,000.00,1.00 -0705,-050.00,+00.00,01.00,000.00,1.00 -0706,-050.00,+00.00,01.00,000.00,1.00 -0707,-050.00,+00.00,01.00,000.00,1.00 -0708,-050.00,+00.00,01.00,000.00,1.00 -0709,-050.00,+00.00,01.00,000.00,1.00 -0710,-050.00,+00.00,01.00,000.00,1.00 -0711,-050.00,+00.00,01.00,000.00,1.00 -0712,-050.00,+00.00,01.00,000.00,1.00 -0713,-050.00,+00.00,01.00,000.00,1.00 -0714,-050.00,+00.00,01.00,000.00,1.00 -0715,-050.00,+00.00,01.00,000.00,1.00 -0716,-050.00,+00.00,01.00,000.00,1.00 -0717,-050.00,+00.00,01.00,000.00,1.00 -0718,-050.00,+00.00,01.00,000.00,1.00 -0719,-050.00,+00.00,01.00,000.00,1.00 -0720,-050.00,+00.00,01.00,000.00,1.00 -0721,-050.00,+00.00,01.00,000.00,1.00 -0722,-050.00,+00.00,01.00,000.00,1.00 -0723,-050.00,+00.00,01.00,000.00,1.00 -0724,-050.00,+00.00,01.00,000.00,1.00 -0725,-050.00,+00.00,01.00,000.00,1.00 -0726,-050.00,+00.00,01.00,000.00,1.00 -0727,-050.00,+00.00,01.00,000.00,1.00 -0728,-050.00,+00.00,01.00,000.00,1.00 -0729,-050.00,+00.00,01.00,000.00,1.00 -0730,-050.00,+00.00,01.00,000.00,1.00 -0731,-050.00,+00.00,01.00,000.00,1.00 -0732,-050.00,+00.00,01.00,000.00,1.00 -0733,-050.00,+00.00,01.00,000.00,1.00 -0734,-050.00,+00.00,01.00,000.00,1.00 -0735,-050.00,+00.00,01.00,000.00,1.00 -0736,-050.00,+00.00,01.00,000.00,1.00 -0737,-050.00,+00.00,01.00,000.00,1.00 -0738,-050.00,+00.00,01.00,000.00,1.00 -0739,-050.00,+00.00,01.00,000.00,1.00 -0740,-050.00,+00.00,01.00,000.00,1.00 -0741,-050.00,+00.00,01.00,000.00,1.00 -0742,-050.00,+00.00,01.00,000.00,1.00 -0743,-050.00,+00.00,01.00,000.00,1.00 -0744,-050.00,+00.00,01.00,000.00,1.00 -0745,-050.00,+00.00,01.00,000.00,1.00 -0746,-050.00,+00.00,01.00,000.00,1.00 -0747,-050.00,+00.00,01.00,000.00,1.00 -0748,-050.00,+00.00,01.00,000.00,1.00 -0749,-050.00,+00.00,01.00,000.00,1.00 -0750,-050.00,+00.00,01.00,000.00,1.00 -0751,-050.00,+00.00,01.00,000.00,1.00 -0752,-050.00,+00.00,01.00,000.00,1.00 -0753,-050.00,+00.00,01.00,000.00,1.00 -0754,-050.00,+00.00,01.00,000.00,1.00 -0755,-050.00,+00.00,01.00,000.00,1.00 -0756,-050.00,+00.00,01.00,000.00,1.00 -0757,-050.00,+00.00,01.00,000.00,1.00 -0758,-050.00,+00.00,01.00,000.00,1.00 -0759,-050.00,+00.00,01.00,000.00,1.00 -0760,-050.00,+00.00,01.00,000.00,1.00 -0761,-050.00,+00.00,01.00,000.00,1.00 -0762,-050.00,+00.00,01.00,000.00,1.00 -0763,-050.00,+00.00,01.00,000.00,1.00 -0764,-050.00,+00.00,01.00,000.00,1.00 -0765,-050.00,+00.00,01.00,000.00,1.00 -0766,-050.00,+00.00,01.00,000.00,1.00 -0767,-050.00,+00.00,01.00,000.00,1.00 -0768,-050.00,+00.00,01.00,000.00,1.00 -0769,-050.00,+00.00,01.00,000.00,1.00 -0770,-050.00,+00.00,01.00,000.00,1.00 -0771,-050.00,+00.00,01.00,000.00,1.00 -0772,-050.00,+00.00,01.00,000.00,1.00 -0773,-050.00,+00.00,01.00,000.00,1.00 -0774,-050.00,+00.00,01.00,000.00,1.00 -0775,-050.00,+00.00,01.00,000.00,1.00 -0776,-050.00,+00.00,01.00,000.00,1.00 -0777,-050.00,+00.00,01.00,000.00,1.00 -0778,-050.00,+00.00,01.00,000.00,1.00 -0779,-050.00,+00.00,01.00,000.00,1.00 -0780,-050.00,+00.00,01.00,000.00,1.00 -0781,-050.00,+00.00,01.00,000.00,1.00 -0782,-050.00,+00.00,01.00,000.00,1.00 -0783,-050.00,+00.00,01.00,000.00,1.00 -0784,-050.00,+00.00,01.00,000.00,1.00 -0785,-050.00,+00.00,01.00,000.00,1.00 -0786,-050.00,+00.00,01.00,000.00,1.00 -0787,-050.00,+00.00,01.00,000.00,1.00 -0788,-050.00,+00.00,01.00,000.00,1.00 -0789,-050.00,+00.00,01.00,000.00,1.00 -0790,-050.00,+00.00,01.00,000.00,1.00 -0791,-050.00,+00.00,01.00,000.00,1.00 -0792,-050.00,+00.00,01.00,000.00,1.00 -0793,-050.00,+00.00,01.00,000.00,1.00 -0794,-050.00,+00.00,01.00,000.00,1.00 -0795,-050.00,+00.00,01.00,000.00,1.00 -0796,-050.00,+00.00,01.00,000.00,1.00 -0797,-050.00,+00.00,01.00,000.00,1.00 -0798,-050.00,+00.00,01.00,000.00,1.00 -0799,-050.00,+00.00,01.00,000.00,1.00 -0800,-050.00,+00.00,01.00,000.00,1.00 -0801,-050.00,+00.00,01.00,000.00,1.00 -0802,-050.00,+00.00,01.00,000.00,1.00 -0803,-050.00,+00.00,01.00,000.00,1.00 -0804,-050.00,+00.00,01.00,000.00,1.00 -0805,-050.00,+00.00,01.00,000.00,1.00 -0806,-050.00,+00.00,01.00,000.00,1.00 -0807,-050.00,+00.00,01.00,000.00,1.00 -0808,-050.00,+00.00,01.00,000.00,1.00 -0809,-050.00,+00.00,01.00,000.00,1.00 -0810,-050.00,+00.00,01.00,000.00,1.00 -0811,-050.00,+00.00,01.00,000.00,1.00 -0812,-050.00,+00.00,01.00,000.00,1.00 -0813,-050.00,+00.00,01.00,000.00,1.00 -0814,-050.00,+00.00,01.00,000.00,1.00 -0815,-050.00,+00.00,01.00,000.00,1.00 -0816,-050.00,+00.00,01.00,000.00,1.00 -0817,-050.00,+00.00,01.00,000.00,1.00 -0818,-050.00,+00.00,01.00,000.00,1.00 -0819,-050.00,+00.00,01.00,000.00,1.00 -0820,-050.00,+00.00,01.00,000.00,1.00 -0821,-050.00,+00.00,01.00,000.00,1.00 -0822,-050.00,+00.00,01.00,000.00,1.00 -0823,-050.00,+00.00,01.00,000.00,1.00 -0824,-050.00,+00.00,01.00,000.00,1.00 -0825,-050.00,+00.00,01.00,000.00,1.00 -0826,-050.00,+00.00,01.00,000.00,1.00 -0827,-050.00,+00.00,01.00,000.00,1.00 -0828,-050.00,+00.00,01.00,000.00,1.00 -0829,-050.00,+00.00,01.00,000.00,1.00 -0830,-050.00,+00.00,01.00,000.00,1.00 -0831,-050.00,+00.00,01.00,000.00,1.00 -0832,-050.00,+00.00,01.00,000.00,1.00 -0833,-050.00,+00.00,01.00,000.00,1.00 -0834,-050.00,+00.00,01.00,000.00,1.00 -0835,-050.00,+00.00,01.00,000.00,1.00 -0836,-050.00,+00.00,01.00,000.00,1.00 -0837,-050.00,+00.00,01.00,000.00,1.00 -0838,-050.00,+00.00,01.00,000.00,1.00 -0839,-050.00,+00.00,01.00,000.00,1.00 -0840,-050.00,+00.00,01.00,000.00,1.00 -0841,-050.00,+00.00,01.00,000.00,1.00 -0842,-050.00,+00.00,01.00,000.00,1.00 -0843,-050.00,+00.00,01.00,000.00,1.00 -0844,-050.00,+00.00,01.00,000.00,1.00 -0845,-050.00,+00.00,01.00,000.00,1.00 -0846,-050.00,+00.00,01.00,000.00,1.00 -0847,-050.00,+00.00,01.00,000.00,1.00 -0848,-050.00,+00.00,01.00,000.00,1.00 -0849,-050.00,+00.00,01.00,000.00,1.00 -0850,-050.00,+00.00,01.00,000.00,1.00 -0851,-050.00,+00.00,01.00,000.00,1.00 -0852,-050.00,+00.00,01.00,000.00,1.00 -0853,-050.00,+00.00,01.00,000.00,1.00 -0854,-050.00,+00.00,01.00,000.00,1.00 -0855,-050.00,+00.00,01.00,000.00,1.00 -0856,-050.00,+00.00,01.00,000.00,1.00 -0857,-050.00,+00.00,01.00,000.00,1.00 -0858,-050.00,+00.00,01.00,000.00,1.00 -0859,-050.00,+00.00,01.00,000.00,1.00 -0860,-050.00,+00.00,01.00,000.00,1.00 -0861,-050.00,+00.00,01.00,000.00,1.00 -0862,-050.00,+00.00,01.00,000.00,1.00 -0863,-050.00,+00.00,01.00,000.00,1.00 -0864,-050.00,+00.00,01.00,000.00,1.00 -0865,-050.00,+00.00,01.00,000.00,1.00 -0866,-050.00,+00.00,01.00,000.00,1.00 -0867,-050.00,+00.00,01.00,000.00,1.00 -0868,-050.00,+00.00,01.00,000.00,1.00 -0869,-050.00,+00.00,01.00,000.00,1.00 -0870,-050.00,+00.00,01.00,000.00,1.00 -0871,-050.00,+00.00,01.00,000.00,1.00 -0872,-050.00,+00.00,01.00,000.00,1.00 -0873,-050.00,+00.00,01.00,000.00,1.00 -0874,-050.00,+00.00,01.00,000.00,1.00 -0875,-050.00,+00.00,01.00,000.00,1.00 -0876,-050.00,+00.00,01.00,000.00,1.00 -0877,-050.00,+00.00,01.00,000.00,1.00 -0878,-050.00,+00.00,01.00,000.00,1.00 -0879,-050.00,+00.00,01.00,000.00,1.00 -0880,-050.00,+00.00,01.00,000.00,1.00 -0881,-050.00,+00.00,01.00,000.00,1.00 -0882,-050.00,+00.00,01.00,000.00,1.00 -0883,-050.00,+00.00,01.00,000.00,1.00 -0884,-050.00,+00.00,01.00,000.00,1.00 -0885,-050.00,+00.00,01.00,000.00,1.00 -0886,-050.00,+00.00,01.00,000.00,1.00 -0887,-050.00,+00.00,01.00,000.00,1.00 -0888,-050.00,+00.00,01.00,000.00,1.00 -0889,-050.00,+00.00,01.00,000.00,1.00 -0890,-050.00,+00.00,01.00,000.00,1.00 -0891,-050.00,+00.00,01.00,000.00,1.00 -0892,-050.00,+00.00,01.00,000.00,1.00 -0893,-050.00,+00.00,01.00,000.00,1.00 -0894,-050.00,+00.00,01.00,000.00,1.00 -0895,-050.00,+00.00,01.00,000.00,1.00 -0896,-050.00,+00.00,01.00,000.00,1.00 -0897,-050.00,+00.00,01.00,000.00,1.00 -0898,-050.00,+00.00,01.00,000.00,1.00 -0899,-050.00,+00.00,01.00,000.00,1.00 -0900,-050.00,+00.00,01.00,000.00,1.00 -0901,-050.00,+00.00,01.00,000.00,1.00 -0902,-050.00,+00.00,01.00,000.00,1.00 -0903,-050.00,+00.00,01.00,000.00,1.00 -0904,-050.00,+00.00,01.00,000.00,1.00 -0905,-050.00,+00.00,01.00,000.00,1.00 -0906,-050.00,+00.00,01.00,000.00,1.00 -0907,-050.00,+00.00,01.00,000.00,1.00 -0908,-050.00,+00.00,01.00,000.00,1.00 -0909,-050.00,+00.00,01.00,000.00,1.00 -0910,-050.00,+00.00,01.00,000.00,1.00 -0911,-050.00,+00.00,01.00,000.00,1.00 -0912,-050.00,+00.00,01.00,000.00,1.00 -0913,-050.00,+00.00,01.00,000.00,1.00 -0914,-050.00,+00.00,01.00,000.00,1.00 -0915,-050.00,+00.00,01.00,000.00,1.00 -0916,-050.00,+00.00,01.00,000.00,1.00 -0917,-050.00,+00.00,01.00,000.00,1.00 -0918,-050.00,+00.00,01.00,000.00,1.00 -0919,-050.00,+00.00,01.00,000.00,1.00 -0920,-050.00,+00.00,01.00,000.00,1.00 -0921,-050.00,+00.00,01.00,000.00,1.00 -0922,-050.00,+00.00,01.00,000.00,1.00 -0923,-050.00,+00.00,01.00,000.00,1.00 -0924,-050.00,+00.00,01.00,000.00,1.00 -0925,-050.00,+00.00,01.00,000.00,1.00 -0926,-050.00,+00.00,01.00,000.00,1.00 -0927,-050.00,+00.00,01.00,000.00,1.00 -0928,-050.00,+00.00,01.00,000.00,1.00 -0929,-050.00,+00.00,01.00,000.00,1.00 -0930,-050.00,+00.00,01.00,000.00,1.00 -0931,-050.00,+00.00,01.00,000.00,1.00 -0932,-050.00,+00.00,01.00,000.00,1.00 -0933,-050.00,+00.00,01.00,000.00,1.00 -0934,-050.00,+00.00,01.00,000.00,1.00 -0935,-050.00,+00.00,01.00,000.00,1.00 -0936,-050.00,+00.00,01.00,000.00,1.00 -0937,-050.00,+00.00,01.00,000.00,1.00 -0938,-050.00,+00.00,01.00,000.00,1.00 -0939,-050.00,+00.00,01.00,000.00,1.00 -0940,-050.00,+00.00,01.00,000.00,1.00 -0941,-050.00,+00.00,01.00,000.00,1.00 -0942,-050.00,+00.00,01.00,000.00,1.00 -0943,-050.00,+00.00,01.00,000.00,1.00 -0944,-050.00,+00.00,01.00,000.00,1.00 -0945,-050.00,+00.00,01.00,000.00,1.00 -0946,-050.00,+00.00,01.00,000.00,1.00 -0947,-050.00,+00.00,01.00,000.00,1.00 -0948,-050.00,+00.00,01.00,000.00,1.00 -0949,-050.00,+00.00,01.00,000.00,1.00 -0950,-050.00,+00.00,01.00,000.00,1.00 -0951,-050.00,+00.00,01.00,000.00,1.00 -0952,-050.00,+00.00,01.00,000.00,1.00 -0953,-050.00,+00.00,01.00,000.00,1.00 -0954,-050.00,+00.00,01.00,000.00,1.00 -0955,-050.00,+00.00,01.00,000.00,1.00 -0956,-050.00,+00.00,01.00,000.00,1.00 -0957,-050.00,+00.00,01.00,000.00,1.00 -0958,-050.00,+00.00,01.00,000.00,1.00 -0959,-050.00,+00.00,01.00,000.00,1.00 -0960,-050.00,+00.00,01.00,000.00,1.00 -0961,-050.00,+00.00,01.00,000.00,1.00 -0962,-050.00,+00.00,01.00,000.00,1.00 -0963,-050.00,+00.00,01.00,000.00,1.00 -0964,-050.00,+00.00,01.00,000.00,1.00 -0965,-050.00,+00.00,01.00,000.00,1.00 -0966,-050.00,+00.00,01.00,000.00,1.00 -0967,-050.00,+00.00,01.00,000.00,1.00 -0968,-050.00,+00.00,01.00,000.00,1.00 -0969,-050.00,+00.00,01.00,000.00,1.00 -0970,-050.00,+00.00,01.00,000.00,1.00 -0971,-050.00,+00.00,01.00,000.00,1.00 -0972,-050.00,+00.00,01.00,000.00,1.00 -0973,-050.00,+00.00,01.00,000.00,1.00 -0974,-050.00,+00.00,01.00,000.00,1.00 -0975,-050.00,+00.00,01.00,000.00,1.00 -0976,-050.00,+00.00,01.00,000.00,1.00 -0977,-050.00,+00.00,01.00,000.00,1.00 -0978,-050.00,+00.00,01.00,000.00,1.00 -0979,-050.00,+00.00,01.00,000.00,1.00 -0980,-050.00,+00.00,01.00,000.00,1.00 -0981,-050.00,+00.00,01.00,000.00,1.00 -0982,-050.00,+00.00,01.00,000.00,1.00 -0983,-050.00,+00.00,01.00,000.00,1.00 -0984,-050.00,+00.00,01.00,000.00,1.00 -0985,-050.00,+00.00,01.00,000.00,1.00 -0986,-050.00,+00.00,01.00,000.00,1.00 -0987,-050.00,+00.00,01.00,000.00,1.00 -0988,-050.00,+00.00,01.00,000.00,1.00 -0989,-050.00,+00.00,01.00,000.00,1.00 -0990,-050.00,+00.00,01.00,000.00,1.00 -0991,-050.00,+00.00,01.00,000.00,1.00 -0992,-050.00,+00.00,01.00,000.00,1.00 -0993,-050.00,+00.00,01.00,000.00,1.00 -0994,-050.00,+00.00,01.00,000.00,1.00 -0995,-050.00,+00.00,01.00,000.00,1.00 -0996,-050.00,+00.00,01.00,000.00,1.00 -0997,-050.00,+00.00,01.00,000.00,1.00 -0998,-050.00,+00.00,01.00,000.00,1.00 -0999,-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t06_ch2.csv b/scripts/td_object_renderer/metadata/csv/t06_ch2.csv index 8a4f928c25..f64e78d8c2 100644 --- a/scripts/td_object_renderer/metadata/csv/t06_ch2.csv +++ b/scripts/td_object_renderer/metadata/csv/t06_ch2.csv @@ -1,1000 +1,1000 @@ -0000,-020.00,+00.00,01.00,000.00,1.00 -0001,-020.00,+00.00,01.00,000.00,1.00 -0002,-020.00,+00.00,01.00,000.00,1.00 -0003,-020.00,+00.00,01.00,000.00,1.00 -0004,-020.00,+00.00,01.00,000.00,1.00 -0005,-020.00,+00.00,01.00,000.00,1.00 -0006,-020.00,+00.00,01.00,000.00,1.00 -0007,-020.00,+00.00,01.00,000.00,1.00 -0008,-020.00,+00.00,01.00,000.00,1.00 -0009,-020.00,+00.00,01.00,000.00,1.00 -0010,-020.00,+00.00,01.00,000.00,1.00 -0011,-020.00,+00.00,01.00,000.00,1.00 -0012,-020.00,+00.00,01.00,000.00,1.00 -0013,-020.00,+00.00,01.00,000.00,1.00 -0014,-020.00,+00.00,01.00,000.00,1.00 -0015,-020.00,+00.00,01.00,000.00,1.00 -0016,-020.00,+00.00,01.00,000.00,1.00 -0017,-020.00,+00.00,01.00,000.00,1.00 -0018,-020.00,+00.00,01.00,000.00,1.00 -0019,-020.00,+00.00,01.00,000.00,1.00 -0020,-020.00,+00.00,01.00,000.00,1.00 -0021,-020.00,+00.00,01.00,000.00,1.00 -0022,-020.00,+00.00,01.00,000.00,1.00 -0023,-020.00,+00.00,01.00,000.00,1.00 -0024,-020.00,+00.00,01.00,000.00,1.00 -0025,-020.00,+00.00,01.00,000.00,1.00 -0026,-020.00,+00.00,01.00,000.00,1.00 -0027,-020.00,+00.00,01.00,000.00,1.00 -0028,-020.00,+00.00,01.00,000.00,1.00 -0029,-020.00,+00.00,01.00,000.00,1.00 -0030,-020.00,+00.00,01.00,000.00,1.00 -0031,-020.00,+00.00,01.00,000.00,1.00 -0032,-020.00,+00.00,01.00,000.00,1.00 -0033,-020.00,+00.00,01.00,000.00,1.00 -0034,-020.00,+00.00,01.00,000.00,1.00 -0035,-020.00,+00.00,01.00,000.00,1.00 -0036,-020.00,+00.00,01.00,000.00,1.00 -0037,-020.00,+00.00,01.00,000.00,1.00 -0038,-020.00,+00.00,01.00,000.00,1.00 -0039,-020.00,+00.00,01.00,000.00,1.00 -0040,-020.00,+00.00,01.00,000.00,1.00 -0041,-020.00,+00.00,01.00,000.00,1.00 -0042,-020.00,+00.00,01.00,000.00,1.00 -0043,-020.00,+00.00,01.00,000.00,1.00 -0044,-020.00,+00.00,01.00,000.00,1.00 -0045,-020.00,+00.00,01.00,000.00,1.00 -0046,-020.00,+00.00,01.00,000.00,1.00 -0047,-020.00,+00.00,01.00,000.00,1.00 -0048,-020.00,+00.00,01.00,000.00,1.00 -0049,-020.00,+00.00,01.00,000.00,1.00 -0050,-020.00,+00.00,01.00,000.00,1.00 -0051,-020.00,+00.00,01.00,000.00,1.00 -0052,-020.00,+00.00,01.00,000.00,1.00 -0053,-020.00,+00.00,01.00,000.00,1.00 -0054,-020.00,+00.00,01.00,000.00,1.00 -0055,-020.00,+00.00,01.00,000.00,1.00 -0056,-020.00,+00.00,01.00,000.00,1.00 -0057,-020.00,+00.00,01.00,000.00,1.00 -0058,-020.00,+00.00,01.00,000.00,1.00 -0059,-020.00,+00.00,01.00,000.00,1.00 -0060,-020.00,+00.00,01.00,000.00,1.00 -0061,-020.00,+00.00,01.00,000.00,1.00 -0062,-020.00,+00.00,01.00,000.00,1.00 -0063,-020.00,+00.00,01.00,000.00,1.00 -0064,-020.00,+00.00,01.00,000.00,1.00 -0065,-020.00,+00.00,01.00,000.00,1.00 -0066,-020.00,+00.00,01.00,000.00,1.00 -0067,-020.00,+00.00,01.00,000.00,1.00 -0068,-020.00,+00.00,01.00,000.00,1.00 -0069,-020.00,+00.00,01.00,000.00,1.00 -0070,-020.00,+00.00,01.00,000.00,1.00 -0071,-020.00,+00.00,01.00,000.00,1.00 -0072,-020.00,+00.00,01.00,000.00,1.00 -0073,-020.00,+00.00,01.00,000.00,1.00 -0074,-020.00,+00.00,01.00,000.00,1.00 -0075,-020.00,+00.00,01.00,000.00,1.00 -0076,-020.00,+00.00,01.00,000.00,1.00 -0077,-020.00,+00.00,01.00,000.00,1.00 -0078,-020.00,+00.00,01.00,000.00,1.00 -0079,-020.00,+00.00,01.00,000.00,1.00 -0080,-020.00,+00.00,01.00,000.00,1.00 -0081,-020.00,+00.00,01.00,000.00,1.00 -0082,-020.00,+00.00,01.00,000.00,1.00 -0083,-020.00,+00.00,01.00,000.00,1.00 -0084,-020.00,+00.00,01.00,000.00,1.00 -0085,-020.00,+00.00,01.00,000.00,1.00 -0086,-020.00,+00.00,01.00,000.00,1.00 -0087,-020.00,+00.00,01.00,000.00,1.00 -0088,-020.00,+00.00,01.00,000.00,1.00 -0089,-020.00,+00.00,01.00,000.00,1.00 -0090,-020.00,+00.00,01.00,000.00,1.00 -0091,-020.00,+00.00,01.00,000.00,1.00 -0092,-020.00,+00.00,01.00,000.00,1.00 -0093,-020.00,+00.00,01.00,000.00,1.00 -0094,-020.00,+00.00,01.00,000.00,1.00 -0095,-020.00,+00.00,01.00,000.00,1.00 -0096,-020.00,+00.00,01.00,000.00,1.00 -0097,-020.00,+00.00,01.00,000.00,1.00 -0098,-020.00,+00.00,01.00,000.00,1.00 -0099,-020.00,+00.00,01.00,000.00,1.00 -0100,-020.00,+00.00,01.00,000.00,1.00 -0101,-020.00,+00.00,01.00,000.00,1.00 -0102,-020.00,+00.00,01.00,000.00,1.00 -0103,-020.00,+00.00,01.00,000.00,1.00 -0104,-020.00,+00.00,01.00,000.00,1.00 -0105,-020.00,+00.00,01.00,000.00,1.00 -0106,-020.00,+00.00,01.00,000.00,1.00 -0107,-020.00,+00.00,01.00,000.00,1.00 -0108,-020.00,+00.00,01.00,000.00,1.00 -0109,-020.00,+00.00,01.00,000.00,1.00 -0110,-020.00,+00.00,01.00,000.00,1.00 -0111,-020.00,+00.00,01.00,000.00,1.00 -0112,-020.00,+00.00,01.00,000.00,1.00 -0113,-020.00,+00.00,01.00,000.00,1.00 -0114,-020.00,+00.00,01.00,000.00,1.00 -0115,-020.00,+00.00,01.00,000.00,1.00 -0116,-020.00,+00.00,01.00,000.00,1.00 -0117,-020.00,+00.00,01.00,000.00,1.00 -0118,-020.00,+00.00,01.00,000.00,1.00 -0119,-020.00,+00.00,01.00,000.00,1.00 -0120,-020.00,+00.00,01.00,000.00,1.00 -0121,-020.00,+00.00,01.00,000.00,1.00 -0122,-020.00,+00.00,01.00,000.00,1.00 -0123,-020.00,+00.00,01.00,000.00,1.00 -0124,-020.00,+00.00,01.00,000.00,1.00 -0125,-020.00,+00.00,01.00,000.00,1.00 -0126,-020.00,+00.00,01.00,000.00,1.00 -0127,-020.00,+00.00,01.00,000.00,1.00 -0128,-020.00,+00.00,01.00,000.00,1.00 -0129,-020.00,+00.00,01.00,000.00,1.00 -0130,-020.00,+00.00,01.00,000.00,1.00 -0131,-020.00,+00.00,01.00,000.00,1.00 -0132,-020.00,+00.00,01.00,000.00,1.00 -0133,-020.00,+00.00,01.00,000.00,1.00 -0134,-020.00,+00.00,01.00,000.00,1.00 -0135,-020.00,+00.00,01.00,000.00,1.00 -0136,-020.00,+00.00,01.00,000.00,1.00 -0137,-020.00,+00.00,01.00,000.00,1.00 -0138,-020.00,+00.00,01.00,000.00,1.00 -0139,-020.00,+00.00,01.00,000.00,1.00 -0140,-020.00,+00.00,01.00,000.00,1.00 -0141,-020.00,+00.00,01.00,000.00,1.00 -0142,-020.00,+00.00,01.00,000.00,1.00 -0143,-020.00,+00.00,01.00,000.00,1.00 -0144,-020.00,+00.00,01.00,000.00,1.00 -0145,-020.00,+00.00,01.00,000.00,1.00 -0146,-020.00,+00.00,01.00,000.00,1.00 -0147,-020.00,+00.00,01.00,000.00,1.00 -0148,-020.00,+00.00,01.00,000.00,1.00 -0149,-020.00,+00.00,01.00,000.00,1.00 -0150,-020.00,+00.00,01.00,000.00,1.00 -0151,-020.00,+00.00,01.00,000.00,1.00 -0152,-020.00,+00.00,01.00,000.00,1.00 -0153,-020.00,+00.00,01.00,000.00,1.00 -0154,-020.00,+00.00,01.00,000.00,1.00 -0155,-020.00,+00.00,01.00,000.00,1.00 -0156,-020.00,+00.00,01.00,000.00,1.00 -0157,-020.00,+00.00,01.00,000.00,1.00 -0158,-020.00,+00.00,01.00,000.00,1.00 -0159,-020.00,+00.00,01.00,000.00,1.00 -0160,-020.00,+00.00,01.00,000.00,1.00 -0161,-020.00,+00.00,01.00,000.00,1.00 -0162,-020.00,+00.00,01.00,000.00,1.00 -0163,-020.00,+00.00,01.00,000.00,1.00 -0164,-020.00,+00.00,01.00,000.00,1.00 -0165,-020.00,+00.00,01.00,000.00,1.00 -0166,-020.00,+00.00,01.00,000.00,1.00 -0167,-020.00,+00.00,01.00,000.00,1.00 -0168,-020.00,+00.00,01.00,000.00,1.00 -0169,-020.00,+00.00,01.00,000.00,1.00 -0170,-020.00,+00.00,01.00,000.00,1.00 -0171,-020.00,+00.00,01.00,000.00,1.00 -0172,-020.00,+00.00,01.00,000.00,1.00 -0173,-020.00,+00.00,01.00,000.00,1.00 -0174,-020.00,+00.00,01.00,000.00,1.00 -0175,-020.00,+00.00,01.00,000.00,1.00 -0176,-020.00,+00.00,01.00,000.00,1.00 -0177,-020.00,+00.00,01.00,000.00,1.00 -0178,-020.00,+00.00,01.00,000.00,1.00 -0179,-020.00,+00.00,01.00,000.00,1.00 -0180,-020.00,+00.00,01.00,000.00,1.00 -0181,-020.00,+00.00,01.00,000.00,1.00 -0182,-020.00,+00.00,01.00,000.00,1.00 -0183,-020.00,+00.00,01.00,000.00,1.00 -0184,-020.00,+00.00,01.00,000.00,1.00 -0185,-020.00,+00.00,01.00,000.00,1.00 -0186,-020.00,+00.00,01.00,000.00,1.00 -0187,-020.00,+00.00,01.00,000.00,1.00 -0188,-020.00,+00.00,01.00,000.00,1.00 -0189,-020.00,+00.00,01.00,000.00,1.00 -0190,-020.00,+00.00,01.00,000.00,1.00 -0191,-020.00,+00.00,01.00,000.00,1.00 -0192,-020.00,+00.00,01.00,000.00,1.00 -0193,-020.00,+00.00,01.00,000.00,1.00 -0194,-020.00,+00.00,01.00,000.00,1.00 -0195,-020.00,+00.00,01.00,000.00,1.00 -0196,-020.00,+00.00,01.00,000.00,1.00 -0197,-020.00,+00.00,01.00,000.00,1.00 -0198,-020.00,+00.00,01.00,000.00,1.00 -0199,-020.00,+00.00,01.00,000.00,1.00 -0200,-020.00,+00.00,01.00,000.00,1.00 -0201,-020.00,+00.00,01.00,000.00,1.00 -0202,-020.00,+00.00,01.00,000.00,1.00 -0203,-020.00,+00.00,01.00,000.00,1.00 -0204,-020.00,+00.00,01.00,000.00,1.00 -0205,-020.00,+00.00,01.00,000.00,1.00 -0206,-020.00,+00.00,01.00,000.00,1.00 -0207,-020.00,+00.00,01.00,000.00,1.00 -0208,-020.00,+00.00,01.00,000.00,1.00 -0209,-020.00,+00.00,01.00,000.00,1.00 -0210,-020.00,+00.00,01.00,000.00,1.00 -0211,-020.00,+00.00,01.00,000.00,1.00 -0212,-020.00,+00.00,01.00,000.00,1.00 -0213,-020.00,+00.00,01.00,000.00,1.00 -0214,-020.00,+00.00,01.00,000.00,1.00 -0215,-020.00,+00.00,01.00,000.00,1.00 -0216,-020.00,+00.00,01.00,000.00,1.00 -0217,-020.00,+00.00,01.00,000.00,1.00 -0218,-020.00,+00.00,01.00,000.00,1.00 -0219,-020.00,+00.00,01.00,000.00,1.00 -0220,-020.00,+00.00,01.00,000.00,1.00 -0221,-020.00,+00.00,01.00,000.00,1.00 -0222,-020.00,+00.00,01.00,000.00,1.00 -0223,-020.00,+00.00,01.00,000.00,1.00 -0224,-020.00,+00.00,01.00,000.00,1.00 -0225,-020.00,+00.00,01.00,000.00,1.00 -0226,-020.00,+00.00,01.00,000.00,1.00 -0227,-020.00,+00.00,01.00,000.00,1.00 -0228,-020.00,+00.00,01.00,000.00,1.00 -0229,-020.00,+00.00,01.00,000.00,1.00 -0230,-020.00,+00.00,01.00,000.00,1.00 -0231,-020.00,+00.00,01.00,000.00,1.00 -0232,-020.00,+00.00,01.00,000.00,1.00 -0233,-020.00,+00.00,01.00,000.00,1.00 -0234,-020.00,+00.00,01.00,000.00,1.00 -0235,-020.00,+00.00,01.00,000.00,1.00 -0236,-020.00,+00.00,01.00,000.00,1.00 -0237,-020.00,+00.00,01.00,000.00,1.00 -0238,-020.00,+00.00,01.00,000.00,1.00 -0239,-020.00,+00.00,01.00,000.00,1.00 -0240,-020.00,+00.00,01.00,000.00,1.00 -0241,-020.00,+00.00,01.00,000.00,1.00 -0242,-020.00,+00.00,01.00,000.00,1.00 -0243,-020.00,+00.00,01.00,000.00,1.00 -0244,-020.00,+00.00,01.00,000.00,1.00 -0245,-020.00,+00.00,01.00,000.00,1.00 -0246,-020.00,+00.00,01.00,000.00,1.00 -0247,-020.00,+00.00,01.00,000.00,1.00 -0248,-020.00,+00.00,01.00,000.00,1.00 -0249,-020.00,+00.00,01.00,000.00,1.00 -0250,-020.00,+00.00,01.00,000.00,1.00 -0251,-020.00,+00.00,01.00,000.00,1.00 -0252,-020.00,+00.00,01.00,000.00,1.00 -0253,-020.00,+00.00,01.00,000.00,1.00 -0254,-020.00,+00.00,01.00,000.00,1.00 -0255,-020.00,+00.00,01.00,000.00,1.00 -0256,-020.00,+00.00,01.00,000.00,1.00 -0257,-020.00,+00.00,01.00,000.00,1.00 -0258,-020.00,+00.00,01.00,000.00,1.00 -0259,-020.00,+00.00,01.00,000.00,1.00 -0260,-020.00,+00.00,01.00,000.00,1.00 -0261,-020.00,+00.00,01.00,000.00,1.00 -0262,-020.00,+00.00,01.00,000.00,1.00 -0263,-020.00,+00.00,01.00,000.00,1.00 -0264,-020.00,+00.00,01.00,000.00,1.00 -0265,-020.00,+00.00,01.00,000.00,1.00 -0266,-020.00,+00.00,01.00,000.00,1.00 -0267,-020.00,+00.00,01.00,000.00,1.00 -0268,-020.00,+00.00,01.00,000.00,1.00 -0269,-020.00,+00.00,01.00,000.00,1.00 -0270,-020.00,+00.00,01.00,000.00,1.00 -0271,-020.00,+00.00,01.00,000.00,1.00 -0272,-020.00,+00.00,01.00,000.00,1.00 -0273,-020.00,+00.00,01.00,000.00,1.00 -0274,-020.00,+00.00,01.00,000.00,1.00 -0275,-020.00,+00.00,01.00,000.00,1.00 -0276,-020.00,+00.00,01.00,000.00,1.00 -0277,-020.00,+00.00,01.00,000.00,1.00 -0278,-020.00,+00.00,01.00,000.00,1.00 -0279,-020.00,+00.00,01.00,000.00,1.00 -0280,-020.00,+00.00,01.00,000.00,1.00 -0281,-020.00,+00.00,01.00,000.00,1.00 -0282,-020.00,+00.00,01.00,000.00,1.00 -0283,-020.00,+00.00,01.00,000.00,1.00 -0284,-020.00,+00.00,01.00,000.00,1.00 -0285,-020.00,+00.00,01.00,000.00,1.00 -0286,-020.00,+00.00,01.00,000.00,1.00 -0287,-020.00,+00.00,01.00,000.00,1.00 -0288,-020.00,+00.00,01.00,000.00,1.00 -0289,-020.00,+00.00,01.00,000.00,1.00 -0290,-020.00,+00.00,01.00,000.00,1.00 -0291,-020.00,+00.00,01.00,000.00,1.00 -0292,-020.00,+00.00,01.00,000.00,1.00 -0293,-020.00,+00.00,01.00,000.00,1.00 -0294,-020.00,+00.00,01.00,000.00,1.00 -0295,-020.00,+00.00,01.00,000.00,1.00 -0296,-020.00,+00.00,01.00,000.00,1.00 -0297,-020.00,+00.00,01.00,000.00,1.00 -0298,-020.00,+00.00,01.00,000.00,1.00 -0299,-020.00,+00.00,01.00,000.00,1.00 -0300,-020.00,+00.00,01.00,000.00,1.00 -0301,-020.00,+00.00,01.00,000.00,1.00 -0302,-020.00,+00.00,01.00,000.00,1.00 -0303,-020.00,+00.00,01.00,000.00,1.00 -0304,-020.00,+00.00,01.00,000.00,1.00 -0305,-020.00,+00.00,01.00,000.00,1.00 -0306,-020.00,+00.00,01.00,000.00,1.00 -0307,-020.00,+00.00,01.00,000.00,1.00 -0308,-020.00,+00.00,01.00,000.00,1.00 -0309,-020.00,+00.00,01.00,000.00,1.00 -0310,-020.00,+00.00,01.00,000.00,1.00 -0311,-020.00,+00.00,01.00,000.00,1.00 -0312,-020.00,+00.00,01.00,000.00,1.00 -0313,-020.00,+00.00,01.00,000.00,1.00 -0314,-020.00,+00.00,01.00,000.00,1.00 -0315,-020.00,+00.00,01.00,000.00,1.00 -0316,-020.00,+00.00,01.00,000.00,1.00 -0317,-020.00,+00.00,01.00,000.00,1.00 -0318,-020.00,+00.00,01.00,000.00,1.00 -0319,-020.00,+00.00,01.00,000.00,1.00 -0320,-020.00,+00.00,01.00,000.00,1.00 -0321,-020.00,+00.00,01.00,000.00,1.00 -0322,-020.00,+00.00,01.00,000.00,1.00 -0323,-020.00,+00.00,01.00,000.00,1.00 -0324,-020.00,+00.00,01.00,000.00,1.00 -0325,-020.00,+00.00,01.00,000.00,1.00 -0326,-020.00,+00.00,01.00,000.00,1.00 -0327,-020.00,+00.00,01.00,000.00,1.00 -0328,-020.00,+00.00,01.00,000.00,1.00 -0329,-020.00,+00.00,01.00,000.00,1.00 -0330,-020.00,+00.00,01.00,000.00,1.00 -0331,-020.00,+00.00,01.00,000.00,1.00 -0332,-020.00,+00.00,01.00,000.00,1.00 -0333,-020.00,+00.00,01.00,000.00,1.00 -0334,-020.00,+00.00,01.00,000.00,1.00 -0335,-020.00,+00.00,01.00,000.00,1.00 -0336,-020.00,+00.00,01.00,000.00,1.00 -0337,-020.00,+00.00,01.00,000.00,1.00 -0338,-020.00,+00.00,01.00,000.00,1.00 -0339,-020.00,+00.00,01.00,000.00,1.00 -0340,-020.00,+00.00,01.00,000.00,1.00 -0341,-020.00,+00.00,01.00,000.00,1.00 -0342,-020.00,+00.00,01.00,000.00,1.00 -0343,-020.00,+00.00,01.00,000.00,1.00 -0344,-020.00,+00.00,01.00,000.00,1.00 -0345,-020.00,+00.00,01.00,000.00,1.00 -0346,-020.00,+00.00,01.00,000.00,1.00 -0347,-020.00,+00.00,01.00,000.00,1.00 -0348,-020.00,+00.00,01.00,000.00,1.00 -0349,-020.00,+00.00,01.00,000.00,1.00 -0350,-020.00,+00.00,01.00,000.00,1.00 -0351,-020.00,+00.00,01.00,000.00,1.00 -0352,-020.00,+00.00,01.00,000.00,1.00 -0353,-020.00,+00.00,01.00,000.00,1.00 -0354,-020.00,+00.00,01.00,000.00,1.00 -0355,-020.00,+00.00,01.00,000.00,1.00 -0356,-020.00,+00.00,01.00,000.00,1.00 -0357,-020.00,+00.00,01.00,000.00,1.00 -0358,-020.00,+00.00,01.00,000.00,1.00 -0359,-020.00,+00.00,01.00,000.00,1.00 -0360,-020.00,+00.00,01.00,000.00,1.00 -0361,-020.00,+00.00,01.00,000.00,1.00 -0362,-020.00,+00.00,01.00,000.00,1.00 -0363,-020.00,+00.00,01.00,000.00,1.00 -0364,-020.00,+00.00,01.00,000.00,1.00 -0365,-020.00,+00.00,01.00,000.00,1.00 -0366,-020.00,+00.00,01.00,000.00,1.00 -0367,-020.00,+00.00,01.00,000.00,1.00 -0368,-020.00,+00.00,01.00,000.00,1.00 -0369,-020.00,+00.00,01.00,000.00,1.00 -0370,-020.00,+00.00,01.00,000.00,1.00 -0371,-020.00,+00.00,01.00,000.00,1.00 -0372,-020.00,+00.00,01.00,000.00,1.00 -0373,-020.00,+00.00,01.00,000.00,1.00 -0374,-020.00,+00.00,01.00,000.00,1.00 -0375,-020.00,+00.00,01.00,000.00,1.00 -0376,-020.00,+00.00,01.00,000.00,1.00 -0377,-020.00,+00.00,01.00,000.00,1.00 -0378,-020.00,+00.00,01.00,000.00,1.00 -0379,-020.00,+00.00,01.00,000.00,1.00 -0380,-020.00,+00.00,01.00,000.00,1.00 -0381,-020.00,+00.00,01.00,000.00,1.00 -0382,-020.00,+00.00,01.00,000.00,1.00 -0383,-020.00,+00.00,01.00,000.00,1.00 -0384,-020.00,+00.00,01.00,000.00,1.00 -0385,-020.00,+00.00,01.00,000.00,1.00 -0386,-020.00,+00.00,01.00,000.00,1.00 -0387,-020.00,+00.00,01.00,000.00,1.00 -0388,-020.00,+00.00,01.00,000.00,1.00 -0389,-020.00,+00.00,01.00,000.00,1.00 -0390,-020.00,+00.00,01.00,000.00,1.00 -0391,-020.00,+00.00,01.00,000.00,1.00 -0392,-020.00,+00.00,01.00,000.00,1.00 -0393,-020.00,+00.00,01.00,000.00,1.00 -0394,-020.00,+00.00,01.00,000.00,1.00 -0395,-020.00,+00.00,01.00,000.00,1.00 -0396,-020.00,+00.00,01.00,000.00,1.00 -0397,-020.00,+00.00,01.00,000.00,1.00 -0398,-020.00,+00.00,01.00,000.00,1.00 -0399,-020.00,+00.00,01.00,000.00,1.00 -0400,-020.00,+00.00,01.00,000.00,1.00 -0401,-020.00,+00.00,01.00,000.00,1.00 -0402,-020.00,+00.00,01.00,000.00,1.00 -0403,-020.00,+00.00,01.00,000.00,1.00 -0404,-020.00,+00.00,01.00,000.00,1.00 -0405,-020.00,+00.00,01.00,000.00,1.00 -0406,-020.00,+00.00,01.00,000.00,1.00 -0407,-020.00,+00.00,01.00,000.00,1.00 -0408,-020.00,+00.00,01.00,000.00,1.00 -0409,-020.00,+00.00,01.00,000.00,1.00 -0410,-020.00,+00.00,01.00,000.00,1.00 -0411,-020.00,+00.00,01.00,000.00,1.00 -0412,-020.00,+00.00,01.00,000.00,1.00 -0413,-020.00,+00.00,01.00,000.00,1.00 -0414,-020.00,+00.00,01.00,000.00,1.00 -0415,-020.00,+00.00,01.00,000.00,1.00 -0416,-020.00,+00.00,01.00,000.00,1.00 -0417,-020.00,+00.00,01.00,000.00,1.00 -0418,-020.00,+00.00,01.00,000.00,1.00 -0419,-020.00,+00.00,01.00,000.00,1.00 -0420,-020.00,+00.00,01.00,000.00,1.00 -0421,-020.00,+00.00,01.00,000.00,1.00 -0422,-020.00,+00.00,01.00,000.00,1.00 -0423,-020.00,+00.00,01.00,000.00,1.00 -0424,-020.00,+00.00,01.00,000.00,1.00 -0425,-020.00,+00.00,01.00,000.00,1.00 -0426,-020.00,+00.00,01.00,000.00,1.00 -0427,-020.00,+00.00,01.00,000.00,1.00 -0428,-020.00,+00.00,01.00,000.00,1.00 -0429,-020.00,+00.00,01.00,000.00,1.00 -0430,-020.00,+00.00,01.00,000.00,1.00 -0431,-020.00,+00.00,01.00,000.00,1.00 -0432,-020.00,+00.00,01.00,000.00,1.00 -0433,-020.00,+00.00,01.00,000.00,1.00 -0434,-020.00,+00.00,01.00,000.00,1.00 -0435,-020.00,+00.00,01.00,000.00,1.00 -0436,-020.00,+00.00,01.00,000.00,1.00 -0437,-020.00,+00.00,01.00,000.00,1.00 -0438,-020.00,+00.00,01.00,000.00,1.00 -0439,-020.00,+00.00,01.00,000.00,1.00 -0440,-020.00,+00.00,01.00,000.00,1.00 -0441,-020.00,+00.00,01.00,000.00,1.00 -0442,-020.00,+00.00,01.00,000.00,1.00 -0443,-020.00,+00.00,01.00,000.00,1.00 -0444,-020.00,+00.00,01.00,000.00,1.00 -0445,-020.00,+00.00,01.00,000.00,1.00 -0446,-020.00,+00.00,01.00,000.00,1.00 -0447,-020.00,+00.00,01.00,000.00,1.00 -0448,-020.00,+00.00,01.00,000.00,1.00 -0449,-020.00,+00.00,01.00,000.00,1.00 -0450,-020.00,+00.00,01.00,000.00,1.00 -0451,-020.00,+00.00,01.00,000.00,1.00 -0452,-020.00,+00.00,01.00,000.00,1.00 -0453,-020.00,+00.00,01.00,000.00,1.00 -0454,-020.00,+00.00,01.00,000.00,1.00 -0455,-020.00,+00.00,01.00,000.00,1.00 -0456,-020.00,+00.00,01.00,000.00,1.00 -0457,-020.00,+00.00,01.00,000.00,1.00 -0458,-020.00,+00.00,01.00,000.00,1.00 -0459,-020.00,+00.00,01.00,000.00,1.00 -0460,-020.00,+00.00,01.00,000.00,1.00 -0461,-020.00,+00.00,01.00,000.00,1.00 -0462,-020.00,+00.00,01.00,000.00,1.00 -0463,-020.00,+00.00,01.00,000.00,1.00 -0464,-020.00,+00.00,01.00,000.00,1.00 -0465,-020.00,+00.00,01.00,000.00,1.00 -0466,-020.00,+00.00,01.00,000.00,1.00 -0467,-020.00,+00.00,01.00,000.00,1.00 -0468,-020.00,+00.00,01.00,000.00,1.00 -0469,-020.00,+00.00,01.00,000.00,1.00 -0470,-020.00,+00.00,01.00,000.00,1.00 -0471,-020.00,+00.00,01.00,000.00,1.00 -0472,-020.00,+00.00,01.00,000.00,1.00 -0473,-020.00,+00.00,01.00,000.00,1.00 -0474,-020.00,+00.00,01.00,000.00,1.00 -0475,-020.00,+00.00,01.00,000.00,1.00 -0476,-020.00,+00.00,01.00,000.00,1.00 -0477,-020.00,+00.00,01.00,000.00,1.00 -0478,-020.00,+00.00,01.00,000.00,1.00 -0479,-020.00,+00.00,01.00,000.00,1.00 -0480,-020.00,+00.00,01.00,000.00,1.00 -0481,-020.00,+00.00,01.00,000.00,1.00 -0482,-020.00,+00.00,01.00,000.00,1.00 -0483,-020.00,+00.00,01.00,000.00,1.00 -0484,-020.00,+00.00,01.00,000.00,1.00 -0485,-020.00,+00.00,01.00,000.00,1.00 -0486,-020.00,+00.00,01.00,000.00,1.00 -0487,-020.00,+00.00,01.00,000.00,1.00 -0488,-020.00,+00.00,01.00,000.00,1.00 -0489,-020.00,+00.00,01.00,000.00,1.00 -0490,-020.00,+00.00,01.00,000.00,1.00 -0491,-020.00,+00.00,01.00,000.00,1.00 -0492,-020.00,+00.00,01.00,000.00,1.00 -0493,-020.00,+00.00,01.00,000.00,1.00 -0494,-020.00,+00.00,01.00,000.00,1.00 -0495,-020.00,+00.00,01.00,000.00,1.00 -0496,-020.00,+00.00,01.00,000.00,1.00 -0497,-020.00,+00.00,01.00,000.00,1.00 -0498,-020.00,+00.00,01.00,000.00,1.00 -0499,-020.00,+00.00,01.00,000.00,1.00 -0500,-020.00,+00.00,01.00,000.00,1.00 -0501,-020.00,+00.00,01.00,000.00,1.00 -0502,-020.00,+00.00,01.00,000.00,1.00 -0503,-020.00,+00.00,01.00,000.00,1.00 -0504,-020.00,+00.00,01.00,000.00,1.00 -0505,-020.00,+00.00,01.00,000.00,1.00 -0506,-020.00,+00.00,01.00,000.00,1.00 -0507,-020.00,+00.00,01.00,000.00,1.00 -0508,-020.00,+00.00,01.00,000.00,1.00 -0509,-020.00,+00.00,01.00,000.00,1.00 -0510,-020.00,+00.00,01.00,000.00,1.00 -0511,-020.00,+00.00,01.00,000.00,1.00 -0512,-020.00,+00.00,01.00,000.00,1.00 -0513,-020.00,+00.00,01.00,000.00,1.00 -0514,-020.00,+00.00,01.00,000.00,1.00 -0515,-020.00,+00.00,01.00,000.00,1.00 -0516,-020.00,+00.00,01.00,000.00,1.00 -0517,-020.00,+00.00,01.00,000.00,1.00 -0518,-020.00,+00.00,01.00,000.00,1.00 -0519,-020.00,+00.00,01.00,000.00,1.00 -0520,-020.00,+00.00,01.00,000.00,1.00 -0521,-020.00,+00.00,01.00,000.00,1.00 -0522,-020.00,+00.00,01.00,000.00,1.00 -0523,-020.00,+00.00,01.00,000.00,1.00 -0524,-020.00,+00.00,01.00,000.00,1.00 -0525,-020.00,+00.00,01.00,000.00,1.00 -0526,-020.00,+00.00,01.00,000.00,1.00 -0527,-020.00,+00.00,01.00,000.00,1.00 -0528,-020.00,+00.00,01.00,000.00,1.00 -0529,-020.00,+00.00,01.00,000.00,1.00 -0530,-020.00,+00.00,01.00,000.00,1.00 -0531,-020.00,+00.00,01.00,000.00,1.00 -0532,-020.00,+00.00,01.00,000.00,1.00 -0533,-020.00,+00.00,01.00,000.00,1.00 -0534,-020.00,+00.00,01.00,000.00,1.00 -0535,-020.00,+00.00,01.00,000.00,1.00 -0536,-020.00,+00.00,01.00,000.00,1.00 -0537,-020.00,+00.00,01.00,000.00,1.00 -0538,-020.00,+00.00,01.00,000.00,1.00 -0539,-020.00,+00.00,01.00,000.00,1.00 -0540,-020.00,+00.00,01.00,000.00,1.00 -0541,-020.00,+00.00,01.00,000.00,1.00 -0542,-020.00,+00.00,01.00,000.00,1.00 -0543,-020.00,+00.00,01.00,000.00,1.00 -0544,-020.00,+00.00,01.00,000.00,1.00 -0545,-020.00,+00.00,01.00,000.00,1.00 -0546,-020.00,+00.00,01.00,000.00,1.00 -0547,-020.00,+00.00,01.00,000.00,1.00 -0548,-020.00,+00.00,01.00,000.00,1.00 -0549,-020.00,+00.00,01.00,000.00,1.00 -0550,-020.00,+00.00,01.00,000.00,1.00 -0551,-020.00,+00.00,01.00,000.00,1.00 -0552,-020.00,+00.00,01.00,000.00,1.00 -0553,-020.00,+00.00,01.00,000.00,1.00 -0554,-020.00,+00.00,01.00,000.00,1.00 -0555,-020.00,+00.00,01.00,000.00,1.00 -0556,-020.00,+00.00,01.00,000.00,1.00 -0557,-020.00,+00.00,01.00,000.00,1.00 -0558,-020.00,+00.00,01.00,000.00,1.00 -0559,-020.00,+00.00,01.00,000.00,1.00 -0560,-020.00,+00.00,01.00,000.00,1.00 -0561,-020.00,+00.00,01.00,000.00,1.00 -0562,-020.00,+00.00,01.00,000.00,1.00 -0563,-020.00,+00.00,01.00,000.00,1.00 -0564,-020.00,+00.00,01.00,000.00,1.00 -0565,-020.00,+00.00,01.00,000.00,1.00 -0566,-020.00,+00.00,01.00,000.00,1.00 -0567,-020.00,+00.00,01.00,000.00,1.00 -0568,-020.00,+00.00,01.00,000.00,1.00 -0569,-020.00,+00.00,01.00,000.00,1.00 -0570,-020.00,+00.00,01.00,000.00,1.00 -0571,-020.00,+00.00,01.00,000.00,1.00 -0572,-020.00,+00.00,01.00,000.00,1.00 -0573,-020.00,+00.00,01.00,000.00,1.00 -0574,-020.00,+00.00,01.00,000.00,1.00 -0575,-020.00,+00.00,01.00,000.00,1.00 -0576,-020.00,+00.00,01.00,000.00,1.00 -0577,-020.00,+00.00,01.00,000.00,1.00 -0578,-020.00,+00.00,01.00,000.00,1.00 -0579,-020.00,+00.00,01.00,000.00,1.00 -0580,-020.00,+00.00,01.00,000.00,1.00 -0581,-020.00,+00.00,01.00,000.00,1.00 -0582,-020.00,+00.00,01.00,000.00,1.00 -0583,-020.00,+00.00,01.00,000.00,1.00 -0584,-020.00,+00.00,01.00,000.00,1.00 -0585,-020.00,+00.00,01.00,000.00,1.00 -0586,-020.00,+00.00,01.00,000.00,1.00 -0587,-020.00,+00.00,01.00,000.00,1.00 -0588,-020.00,+00.00,01.00,000.00,1.00 -0589,-020.00,+00.00,01.00,000.00,1.00 -0590,-020.00,+00.00,01.00,000.00,1.00 -0591,-020.00,+00.00,01.00,000.00,1.00 -0592,-020.00,+00.00,01.00,000.00,1.00 -0593,-020.00,+00.00,01.00,000.00,1.00 -0594,-020.00,+00.00,01.00,000.00,1.00 -0595,-020.00,+00.00,01.00,000.00,1.00 -0596,-020.00,+00.00,01.00,000.00,1.00 -0597,-020.00,+00.00,01.00,000.00,1.00 -0598,-020.00,+00.00,01.00,000.00,1.00 -0599,-020.00,+00.00,01.00,000.00,1.00 -0600,-020.00,+00.00,01.00,000.00,1.00 -0601,-020.00,+00.00,01.00,000.00,1.00 -0602,-020.00,+00.00,01.00,000.00,1.00 -0603,-020.00,+00.00,01.00,000.00,1.00 -0604,-020.00,+00.00,01.00,000.00,1.00 -0605,-020.00,+00.00,01.00,000.00,1.00 -0606,-020.00,+00.00,01.00,000.00,1.00 -0607,-020.00,+00.00,01.00,000.00,1.00 -0608,-020.00,+00.00,01.00,000.00,1.00 -0609,-020.00,+00.00,01.00,000.00,1.00 -0610,-020.00,+00.00,01.00,000.00,1.00 -0611,-020.00,+00.00,01.00,000.00,1.00 -0612,-020.00,+00.00,01.00,000.00,1.00 -0613,-020.00,+00.00,01.00,000.00,1.00 -0614,-020.00,+00.00,01.00,000.00,1.00 -0615,-020.00,+00.00,01.00,000.00,1.00 -0616,-020.00,+00.00,01.00,000.00,1.00 -0617,-020.00,+00.00,01.00,000.00,1.00 -0618,-020.00,+00.00,01.00,000.00,1.00 -0619,-020.00,+00.00,01.00,000.00,1.00 -0620,-020.00,+00.00,01.00,000.00,1.00 -0621,-020.00,+00.00,01.00,000.00,1.00 -0622,-020.00,+00.00,01.00,000.00,1.00 -0623,-020.00,+00.00,01.00,000.00,1.00 -0624,-020.00,+00.00,01.00,000.00,1.00 -0625,-020.00,+00.00,01.00,000.00,1.00 -0626,-020.00,+00.00,01.00,000.00,1.00 -0627,-020.00,+00.00,01.00,000.00,1.00 -0628,-020.00,+00.00,01.00,000.00,1.00 -0629,-020.00,+00.00,01.00,000.00,1.00 -0630,-020.00,+00.00,01.00,000.00,1.00 -0631,-020.00,+00.00,01.00,000.00,1.00 -0632,-020.00,+00.00,01.00,000.00,1.00 -0633,-020.00,+00.00,01.00,000.00,1.00 -0634,-020.00,+00.00,01.00,000.00,1.00 -0635,-020.00,+00.00,01.00,000.00,1.00 -0636,-020.00,+00.00,01.00,000.00,1.00 -0637,-020.00,+00.00,01.00,000.00,1.00 -0638,-020.00,+00.00,01.00,000.00,1.00 -0639,-020.00,+00.00,01.00,000.00,1.00 -0640,-020.00,+00.00,01.00,000.00,1.00 -0641,-020.00,+00.00,01.00,000.00,1.00 -0642,-020.00,+00.00,01.00,000.00,1.00 -0643,-020.00,+00.00,01.00,000.00,1.00 -0644,-020.00,+00.00,01.00,000.00,1.00 -0645,-020.00,+00.00,01.00,000.00,1.00 -0646,-020.00,+00.00,01.00,000.00,1.00 -0647,-020.00,+00.00,01.00,000.00,1.00 -0648,-020.00,+00.00,01.00,000.00,1.00 -0649,-020.00,+00.00,01.00,000.00,1.00 -0650,-020.00,+00.00,01.00,000.00,1.00 -0651,-020.00,+00.00,01.00,000.00,1.00 -0652,-020.00,+00.00,01.00,000.00,1.00 -0653,-020.00,+00.00,01.00,000.00,1.00 -0654,-020.00,+00.00,01.00,000.00,1.00 -0655,-020.00,+00.00,01.00,000.00,1.00 -0656,-020.00,+00.00,01.00,000.00,1.00 -0657,-020.00,+00.00,01.00,000.00,1.00 -0658,-020.00,+00.00,01.00,000.00,1.00 -0659,-020.00,+00.00,01.00,000.00,1.00 -0660,-020.00,+00.00,01.00,000.00,1.00 -0661,-020.00,+00.00,01.00,000.00,1.00 -0662,-020.00,+00.00,01.00,000.00,1.00 -0663,-020.00,+00.00,01.00,000.00,1.00 -0664,-020.00,+00.00,01.00,000.00,1.00 -0665,-020.00,+00.00,01.00,000.00,1.00 -0666,-020.00,+00.00,01.00,000.00,1.00 -0667,-020.00,+00.00,01.00,000.00,1.00 -0668,-020.00,+00.00,01.00,000.00,1.00 -0669,-020.00,+00.00,01.00,000.00,1.00 -0670,-020.00,+00.00,01.00,000.00,1.00 -0671,-020.00,+00.00,01.00,000.00,1.00 -0672,-020.00,+00.00,01.00,000.00,1.00 -0673,-020.00,+00.00,01.00,000.00,1.00 -0674,-020.00,+00.00,01.00,000.00,1.00 -0675,-020.00,+00.00,01.00,000.00,1.00 -0676,-020.00,+00.00,01.00,000.00,1.00 -0677,-020.00,+00.00,01.00,000.00,1.00 -0678,-020.00,+00.00,01.00,000.00,1.00 -0679,-020.00,+00.00,01.00,000.00,1.00 -0680,-020.00,+00.00,01.00,000.00,1.00 -0681,-020.00,+00.00,01.00,000.00,1.00 -0682,-020.00,+00.00,01.00,000.00,1.00 -0683,-020.00,+00.00,01.00,000.00,1.00 -0684,-020.00,+00.00,01.00,000.00,1.00 -0685,-020.00,+00.00,01.00,000.00,1.00 -0686,-020.00,+00.00,01.00,000.00,1.00 -0687,-020.00,+00.00,01.00,000.00,1.00 -0688,-020.00,+00.00,01.00,000.00,1.00 -0689,-020.00,+00.00,01.00,000.00,1.00 -0690,-020.00,+00.00,01.00,000.00,1.00 -0691,-020.00,+00.00,01.00,000.00,1.00 -0692,-020.00,+00.00,01.00,000.00,1.00 -0693,-020.00,+00.00,01.00,000.00,1.00 -0694,-020.00,+00.00,01.00,000.00,1.00 -0695,-020.00,+00.00,01.00,000.00,1.00 -0696,-020.00,+00.00,01.00,000.00,1.00 -0697,-020.00,+00.00,01.00,000.00,1.00 -0698,-020.00,+00.00,01.00,000.00,1.00 -0699,-020.00,+00.00,01.00,000.00,1.00 -0700,-020.00,+00.00,01.00,000.00,1.00 -0701,-020.00,+00.00,01.00,000.00,1.00 -0702,-020.00,+00.00,01.00,000.00,1.00 -0703,-020.00,+00.00,01.00,000.00,1.00 -0704,-020.00,+00.00,01.00,000.00,1.00 -0705,-020.00,+00.00,01.00,000.00,1.00 -0706,-020.00,+00.00,01.00,000.00,1.00 -0707,-020.00,+00.00,01.00,000.00,1.00 -0708,-020.00,+00.00,01.00,000.00,1.00 -0709,-020.00,+00.00,01.00,000.00,1.00 -0710,-020.00,+00.00,01.00,000.00,1.00 -0711,-020.00,+00.00,01.00,000.00,1.00 -0712,-020.00,+00.00,01.00,000.00,1.00 -0713,-020.00,+00.00,01.00,000.00,1.00 -0714,-020.00,+00.00,01.00,000.00,1.00 -0715,-020.00,+00.00,01.00,000.00,1.00 -0716,-020.00,+00.00,01.00,000.00,1.00 -0717,-020.00,+00.00,01.00,000.00,1.00 -0718,-020.00,+00.00,01.00,000.00,1.00 -0719,-020.00,+00.00,01.00,000.00,1.00 -0720,-020.00,+00.00,01.00,000.00,1.00 -0721,-020.00,+00.00,01.00,000.00,1.00 -0722,-020.00,+00.00,01.00,000.00,1.00 -0723,-020.00,+00.00,01.00,000.00,1.00 -0724,-020.00,+00.00,01.00,000.00,1.00 -0725,-020.00,+00.00,01.00,000.00,1.00 -0726,-020.00,+00.00,01.00,000.00,1.00 -0727,-020.00,+00.00,01.00,000.00,1.00 -0728,-020.00,+00.00,01.00,000.00,1.00 -0729,-020.00,+00.00,01.00,000.00,1.00 -0730,-020.00,+00.00,01.00,000.00,1.00 -0731,-020.00,+00.00,01.00,000.00,1.00 -0732,-020.00,+00.00,01.00,000.00,1.00 -0733,-020.00,+00.00,01.00,000.00,1.00 -0734,-020.00,+00.00,01.00,000.00,1.00 -0735,-020.00,+00.00,01.00,000.00,1.00 -0736,-020.00,+00.00,01.00,000.00,1.00 -0737,-020.00,+00.00,01.00,000.00,1.00 -0738,-020.00,+00.00,01.00,000.00,1.00 -0739,-020.00,+00.00,01.00,000.00,1.00 -0740,-020.00,+00.00,01.00,000.00,1.00 -0741,-020.00,+00.00,01.00,000.00,1.00 -0742,-020.00,+00.00,01.00,000.00,1.00 -0743,-020.00,+00.00,01.00,000.00,1.00 -0744,-020.00,+00.00,01.00,000.00,1.00 -0745,-020.00,+00.00,01.00,000.00,1.00 -0746,-020.00,+00.00,01.00,000.00,1.00 -0747,-020.00,+00.00,01.00,000.00,1.00 -0748,-020.00,+00.00,01.00,000.00,1.00 -0749,-020.00,+00.00,01.00,000.00,1.00 -0750,-020.00,+00.00,01.00,000.00,1.00 -0751,-020.00,+00.00,01.00,000.00,1.00 -0752,-020.00,+00.00,01.00,000.00,1.00 -0753,-020.00,+00.00,01.00,000.00,1.00 -0754,-020.00,+00.00,01.00,000.00,1.00 -0755,-020.00,+00.00,01.00,000.00,1.00 -0756,-020.00,+00.00,01.00,000.00,1.00 -0757,-020.00,+00.00,01.00,000.00,1.00 -0758,-020.00,+00.00,01.00,000.00,1.00 -0759,-020.00,+00.00,01.00,000.00,1.00 -0760,-020.00,+00.00,01.00,000.00,1.00 -0761,-020.00,+00.00,01.00,000.00,1.00 -0762,-020.00,+00.00,01.00,000.00,1.00 -0763,-020.00,+00.00,01.00,000.00,1.00 -0764,-020.00,+00.00,01.00,000.00,1.00 -0765,-020.00,+00.00,01.00,000.00,1.00 -0766,-020.00,+00.00,01.00,000.00,1.00 -0767,-020.00,+00.00,01.00,000.00,1.00 -0768,-020.00,+00.00,01.00,000.00,1.00 -0769,-020.00,+00.00,01.00,000.00,1.00 -0770,-020.00,+00.00,01.00,000.00,1.00 -0771,-020.00,+00.00,01.00,000.00,1.00 -0772,-020.00,+00.00,01.00,000.00,1.00 -0773,-020.00,+00.00,01.00,000.00,1.00 -0774,-020.00,+00.00,01.00,000.00,1.00 -0775,-020.00,+00.00,01.00,000.00,1.00 -0776,-020.00,+00.00,01.00,000.00,1.00 -0777,-020.00,+00.00,01.00,000.00,1.00 -0778,-020.00,+00.00,01.00,000.00,1.00 -0779,-020.00,+00.00,01.00,000.00,1.00 -0780,-020.00,+00.00,01.00,000.00,1.00 -0781,-020.00,+00.00,01.00,000.00,1.00 -0782,-020.00,+00.00,01.00,000.00,1.00 -0783,-020.00,+00.00,01.00,000.00,1.00 -0784,-020.00,+00.00,01.00,000.00,1.00 -0785,-020.00,+00.00,01.00,000.00,1.00 -0786,-020.00,+00.00,01.00,000.00,1.00 -0787,-020.00,+00.00,01.00,000.00,1.00 -0788,-020.00,+00.00,01.00,000.00,1.00 -0789,-020.00,+00.00,01.00,000.00,1.00 -0790,-020.00,+00.00,01.00,000.00,1.00 -0791,-020.00,+00.00,01.00,000.00,1.00 -0792,-020.00,+00.00,01.00,000.00,1.00 -0793,-020.00,+00.00,01.00,000.00,1.00 -0794,-020.00,+00.00,01.00,000.00,1.00 -0795,-020.00,+00.00,01.00,000.00,1.00 -0796,-020.00,+00.00,01.00,000.00,1.00 -0797,-020.00,+00.00,01.00,000.00,1.00 -0798,-020.00,+00.00,01.00,000.00,1.00 -0799,-020.00,+00.00,01.00,000.00,1.00 -0800,-020.00,+00.00,01.00,000.00,1.00 -0801,-020.00,+00.00,01.00,000.00,1.00 -0802,-020.00,+00.00,01.00,000.00,1.00 -0803,-020.00,+00.00,01.00,000.00,1.00 -0804,-020.00,+00.00,01.00,000.00,1.00 -0805,-020.00,+00.00,01.00,000.00,1.00 -0806,-020.00,+00.00,01.00,000.00,1.00 -0807,-020.00,+00.00,01.00,000.00,1.00 -0808,-020.00,+00.00,01.00,000.00,1.00 -0809,-020.00,+00.00,01.00,000.00,1.00 -0810,-020.00,+00.00,01.00,000.00,1.00 -0811,-020.00,+00.00,01.00,000.00,1.00 -0812,-020.00,+00.00,01.00,000.00,1.00 -0813,-020.00,+00.00,01.00,000.00,1.00 -0814,-020.00,+00.00,01.00,000.00,1.00 -0815,-020.00,+00.00,01.00,000.00,1.00 -0816,-020.00,+00.00,01.00,000.00,1.00 -0817,-020.00,+00.00,01.00,000.00,1.00 -0818,-020.00,+00.00,01.00,000.00,1.00 -0819,-020.00,+00.00,01.00,000.00,1.00 -0820,-020.00,+00.00,01.00,000.00,1.00 -0821,-020.00,+00.00,01.00,000.00,1.00 -0822,-020.00,+00.00,01.00,000.00,1.00 -0823,-020.00,+00.00,01.00,000.00,1.00 -0824,-020.00,+00.00,01.00,000.00,1.00 -0825,-020.00,+00.00,01.00,000.00,1.00 -0826,-020.00,+00.00,01.00,000.00,1.00 -0827,-020.00,+00.00,01.00,000.00,1.00 -0828,-020.00,+00.00,01.00,000.00,1.00 -0829,-020.00,+00.00,01.00,000.00,1.00 -0830,-020.00,+00.00,01.00,000.00,1.00 -0831,-020.00,+00.00,01.00,000.00,1.00 -0832,-020.00,+00.00,01.00,000.00,1.00 -0833,-020.00,+00.00,01.00,000.00,1.00 -0834,-020.00,+00.00,01.00,000.00,1.00 -0835,-020.00,+00.00,01.00,000.00,1.00 -0836,-020.00,+00.00,01.00,000.00,1.00 -0837,-020.00,+00.00,01.00,000.00,1.00 -0838,-020.00,+00.00,01.00,000.00,1.00 -0839,-020.00,+00.00,01.00,000.00,1.00 -0840,-020.00,+00.00,01.00,000.00,1.00 -0841,-020.00,+00.00,01.00,000.00,1.00 -0842,-020.00,+00.00,01.00,000.00,1.00 -0843,-020.00,+00.00,01.00,000.00,1.00 -0844,-020.00,+00.00,01.00,000.00,1.00 -0845,-020.00,+00.00,01.00,000.00,1.00 -0846,-020.00,+00.00,01.00,000.00,1.00 -0847,-020.00,+00.00,01.00,000.00,1.00 -0848,-020.00,+00.00,01.00,000.00,1.00 -0849,-020.00,+00.00,01.00,000.00,1.00 -0850,-020.00,+00.00,01.00,000.00,1.00 -0851,-020.00,+00.00,01.00,000.00,1.00 -0852,-020.00,+00.00,01.00,000.00,1.00 -0853,-020.00,+00.00,01.00,000.00,1.00 -0854,-020.00,+00.00,01.00,000.00,1.00 -0855,-020.00,+00.00,01.00,000.00,1.00 -0856,-020.00,+00.00,01.00,000.00,1.00 -0857,-020.00,+00.00,01.00,000.00,1.00 -0858,-020.00,+00.00,01.00,000.00,1.00 -0859,-020.00,+00.00,01.00,000.00,1.00 -0860,-020.00,+00.00,01.00,000.00,1.00 -0861,-020.00,+00.00,01.00,000.00,1.00 -0862,-020.00,+00.00,01.00,000.00,1.00 -0863,-020.00,+00.00,01.00,000.00,1.00 -0864,-020.00,+00.00,01.00,000.00,1.00 -0865,-020.00,+00.00,01.00,000.00,1.00 -0866,-020.00,+00.00,01.00,000.00,1.00 -0867,-020.00,+00.00,01.00,000.00,1.00 -0868,-020.00,+00.00,01.00,000.00,1.00 -0869,-020.00,+00.00,01.00,000.00,1.00 -0870,-020.00,+00.00,01.00,000.00,1.00 -0871,-020.00,+00.00,01.00,000.00,1.00 -0872,-020.00,+00.00,01.00,000.00,1.00 -0873,-020.00,+00.00,01.00,000.00,1.00 -0874,-020.00,+00.00,01.00,000.00,1.00 -0875,-020.00,+00.00,01.00,000.00,1.00 -0876,-020.00,+00.00,01.00,000.00,1.00 -0877,-020.00,+00.00,01.00,000.00,1.00 -0878,-020.00,+00.00,01.00,000.00,1.00 -0879,-020.00,+00.00,01.00,000.00,1.00 -0880,-020.00,+00.00,01.00,000.00,1.00 -0881,-020.00,+00.00,01.00,000.00,1.00 -0882,-020.00,+00.00,01.00,000.00,1.00 -0883,-020.00,+00.00,01.00,000.00,1.00 -0884,-020.00,+00.00,01.00,000.00,1.00 -0885,-020.00,+00.00,01.00,000.00,1.00 -0886,-020.00,+00.00,01.00,000.00,1.00 -0887,-020.00,+00.00,01.00,000.00,1.00 -0888,-020.00,+00.00,01.00,000.00,1.00 -0889,-020.00,+00.00,01.00,000.00,1.00 -0890,-020.00,+00.00,01.00,000.00,1.00 -0891,-020.00,+00.00,01.00,000.00,1.00 -0892,-020.00,+00.00,01.00,000.00,1.00 -0893,-020.00,+00.00,01.00,000.00,1.00 -0894,-020.00,+00.00,01.00,000.00,1.00 -0895,-020.00,+00.00,01.00,000.00,1.00 -0896,-020.00,+00.00,01.00,000.00,1.00 -0897,-020.00,+00.00,01.00,000.00,1.00 -0898,-020.00,+00.00,01.00,000.00,1.00 -0899,-020.00,+00.00,01.00,000.00,1.00 -0900,-020.00,+00.00,01.00,000.00,1.00 -0901,-020.00,+00.00,01.00,000.00,1.00 -0902,-020.00,+00.00,01.00,000.00,1.00 -0903,-020.00,+00.00,01.00,000.00,1.00 -0904,-020.00,+00.00,01.00,000.00,1.00 -0905,-020.00,+00.00,01.00,000.00,1.00 -0906,-020.00,+00.00,01.00,000.00,1.00 -0907,-020.00,+00.00,01.00,000.00,1.00 -0908,-020.00,+00.00,01.00,000.00,1.00 -0909,-020.00,+00.00,01.00,000.00,1.00 -0910,-020.00,+00.00,01.00,000.00,1.00 -0911,-020.00,+00.00,01.00,000.00,1.00 -0912,-020.00,+00.00,01.00,000.00,1.00 -0913,-020.00,+00.00,01.00,000.00,1.00 -0914,-020.00,+00.00,01.00,000.00,1.00 -0915,-020.00,+00.00,01.00,000.00,1.00 -0916,-020.00,+00.00,01.00,000.00,1.00 -0917,-020.00,+00.00,01.00,000.00,1.00 -0918,-020.00,+00.00,01.00,000.00,1.00 -0919,-020.00,+00.00,01.00,000.00,1.00 -0920,-020.00,+00.00,01.00,000.00,1.00 -0921,-020.00,+00.00,01.00,000.00,1.00 -0922,-020.00,+00.00,01.00,000.00,1.00 -0923,-020.00,+00.00,01.00,000.00,1.00 -0924,-020.00,+00.00,01.00,000.00,1.00 -0925,-020.00,+00.00,01.00,000.00,1.00 -0926,-020.00,+00.00,01.00,000.00,1.00 -0927,-020.00,+00.00,01.00,000.00,1.00 -0928,-020.00,+00.00,01.00,000.00,1.00 -0929,-020.00,+00.00,01.00,000.00,1.00 -0930,-020.00,+00.00,01.00,000.00,1.00 -0931,-020.00,+00.00,01.00,000.00,1.00 -0932,-020.00,+00.00,01.00,000.00,1.00 -0933,-020.00,+00.00,01.00,000.00,1.00 -0934,-020.00,+00.00,01.00,000.00,1.00 -0935,-020.00,+00.00,01.00,000.00,1.00 -0936,-020.00,+00.00,01.00,000.00,1.00 -0937,-020.00,+00.00,01.00,000.00,1.00 -0938,-020.00,+00.00,01.00,000.00,1.00 -0939,-020.00,+00.00,01.00,000.00,1.00 -0940,-020.00,+00.00,01.00,000.00,1.00 -0941,-020.00,+00.00,01.00,000.00,1.00 -0942,-020.00,+00.00,01.00,000.00,1.00 -0943,-020.00,+00.00,01.00,000.00,1.00 -0944,-020.00,+00.00,01.00,000.00,1.00 -0945,-020.00,+00.00,01.00,000.00,1.00 -0946,-020.00,+00.00,01.00,000.00,1.00 -0947,-020.00,+00.00,01.00,000.00,1.00 -0948,-020.00,+00.00,01.00,000.00,1.00 -0949,-020.00,+00.00,01.00,000.00,1.00 -0950,-020.00,+00.00,01.00,000.00,1.00 -0951,-020.00,+00.00,01.00,000.00,1.00 -0952,-020.00,+00.00,01.00,000.00,1.00 -0953,-020.00,+00.00,01.00,000.00,1.00 -0954,-020.00,+00.00,01.00,000.00,1.00 -0955,-020.00,+00.00,01.00,000.00,1.00 -0956,-020.00,+00.00,01.00,000.00,1.00 -0957,-020.00,+00.00,01.00,000.00,1.00 -0958,-020.00,+00.00,01.00,000.00,1.00 -0959,-020.00,+00.00,01.00,000.00,1.00 -0960,-020.00,+00.00,01.00,000.00,1.00 -0961,-020.00,+00.00,01.00,000.00,1.00 -0962,-020.00,+00.00,01.00,000.00,1.00 -0963,-020.00,+00.00,01.00,000.00,1.00 -0964,-020.00,+00.00,01.00,000.00,1.00 -0965,-020.00,+00.00,01.00,000.00,1.00 -0966,-020.00,+00.00,01.00,000.00,1.00 -0967,-020.00,+00.00,01.00,000.00,1.00 -0968,-020.00,+00.00,01.00,000.00,1.00 -0969,-020.00,+00.00,01.00,000.00,1.00 -0970,-020.00,+00.00,01.00,000.00,1.00 -0971,-020.00,+00.00,01.00,000.00,1.00 -0972,-020.00,+00.00,01.00,000.00,1.00 -0973,-020.00,+00.00,01.00,000.00,1.00 -0974,-020.00,+00.00,01.00,000.00,1.00 -0975,-020.00,+00.00,01.00,000.00,1.00 -0976,-020.00,+00.00,01.00,000.00,1.00 -0977,-020.00,+00.00,01.00,000.00,1.00 -0978,-020.00,+00.00,01.00,000.00,1.00 -0979,-020.00,+00.00,01.00,000.00,1.00 -0980,-020.00,+00.00,01.00,000.00,1.00 -0981,-020.00,+00.00,01.00,000.00,1.00 -0982,-020.00,+00.00,01.00,000.00,1.00 -0983,-020.00,+00.00,01.00,000.00,1.00 -0984,-020.00,+00.00,01.00,000.00,1.00 -0985,-020.00,+00.00,01.00,000.00,1.00 -0986,-020.00,+00.00,01.00,000.00,1.00 -0987,-020.00,+00.00,01.00,000.00,1.00 -0988,-020.00,+00.00,01.00,000.00,1.00 -0989,-020.00,+00.00,01.00,000.00,1.00 -0990,-020.00,+00.00,01.00,000.00,1.00 -0991,-020.00,+00.00,01.00,000.00,1.00 -0992,-020.00,+00.00,01.00,000.00,1.00 -0993,-020.00,+00.00,01.00,000.00,1.00 -0994,-020.00,+00.00,01.00,000.00,1.00 -0995,-020.00,+00.00,01.00,000.00,1.00 -0996,-020.00,+00.00,01.00,000.00,1.00 -0997,-020.00,+00.00,01.00,000.00,1.00 -0998,-020.00,+00.00,01.00,000.00,1.00 -0999,-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t06_ch3.csv b/scripts/td_object_renderer/metadata/csv/t06_ch3.csv index 9d7f23dbd0..82a50f1b3e 100644 --- a/scripts/td_object_renderer/metadata/csv/t06_ch3.csv +++ b/scripts/td_object_renderer/metadata/csv/t06_ch3.csv @@ -1,1000 +1,1000 @@ -0000,+030.00,+00.00,01.00,000.00,1.00 -0001,+030.00,+00.00,01.00,000.00,1.00 -0002,+030.00,+00.00,01.00,000.00,1.00 -0003,+030.00,+00.00,01.00,000.00,1.00 -0004,+030.00,+00.00,01.00,000.00,1.00 -0005,+030.00,+00.00,01.00,000.00,1.00 -0006,+030.00,+00.00,01.00,000.00,1.00 -0007,+030.00,+00.00,01.00,000.00,1.00 -0008,+030.00,+00.00,01.00,000.00,1.00 -0009,+030.00,+00.00,01.00,000.00,1.00 -0010,+030.00,+00.00,01.00,000.00,1.00 -0011,+030.00,+00.00,01.00,000.00,1.00 -0012,+030.00,+00.00,01.00,000.00,1.00 -0013,+030.00,+00.00,01.00,000.00,1.00 -0014,+030.00,+00.00,01.00,000.00,1.00 -0015,+030.00,+00.00,01.00,000.00,1.00 -0016,+030.00,+00.00,01.00,000.00,1.00 -0017,+030.00,+00.00,01.00,000.00,1.00 -0018,+030.00,+00.00,01.00,000.00,1.00 -0019,+030.00,+00.00,01.00,000.00,1.00 -0020,+030.00,+00.00,01.00,000.00,1.00 -0021,+030.00,+00.00,01.00,000.00,1.00 -0022,+030.00,+00.00,01.00,000.00,1.00 -0023,+030.00,+00.00,01.00,000.00,1.00 -0024,+030.00,+00.00,01.00,000.00,1.00 -0025,+030.00,+00.00,01.00,000.00,1.00 -0026,+030.00,+00.00,01.00,000.00,1.00 -0027,+030.00,+00.00,01.00,000.00,1.00 -0028,+030.00,+00.00,01.00,000.00,1.00 -0029,+030.00,+00.00,01.00,000.00,1.00 -0030,+030.00,+00.00,01.00,000.00,1.00 -0031,+030.00,+00.00,01.00,000.00,1.00 -0032,+030.00,+00.00,01.00,000.00,1.00 -0033,+030.00,+00.00,01.00,000.00,1.00 -0034,+030.00,+00.00,01.00,000.00,1.00 -0035,+030.00,+00.00,01.00,000.00,1.00 -0036,+030.00,+00.00,01.00,000.00,1.00 -0037,+030.00,+00.00,01.00,000.00,1.00 -0038,+030.00,+00.00,01.00,000.00,1.00 -0039,+030.00,+00.00,01.00,000.00,1.00 -0040,+030.00,+00.00,01.00,000.00,1.00 -0041,+030.00,+00.00,01.00,000.00,1.00 -0042,+030.00,+00.00,01.00,000.00,1.00 -0043,+030.00,+00.00,01.00,000.00,1.00 -0044,+030.00,+00.00,01.00,000.00,1.00 -0045,+030.00,+00.00,01.00,000.00,1.00 -0046,+030.00,+00.00,01.00,000.00,1.00 -0047,+030.00,+00.00,01.00,000.00,1.00 -0048,+030.00,+00.00,01.00,000.00,1.00 -0049,+030.00,+00.00,01.00,000.00,1.00 -0050,+030.00,+00.00,01.00,000.00,1.00 -0051,+030.00,+00.00,01.00,000.00,1.00 -0052,+030.00,+00.00,01.00,000.00,1.00 -0053,+030.00,+00.00,01.00,000.00,1.00 -0054,+030.00,+00.00,01.00,000.00,1.00 -0055,+030.00,+00.00,01.00,000.00,1.00 -0056,+030.00,+00.00,01.00,000.00,1.00 -0057,+030.00,+00.00,01.00,000.00,1.00 -0058,+030.00,+00.00,01.00,000.00,1.00 -0059,+030.00,+00.00,01.00,000.00,1.00 -0060,+030.00,+00.00,01.00,000.00,1.00 -0061,+030.00,+00.00,01.00,000.00,1.00 -0062,+030.00,+00.00,01.00,000.00,1.00 -0063,+030.00,+00.00,01.00,000.00,1.00 -0064,+030.00,+00.00,01.00,000.00,1.00 -0065,+030.00,+00.00,01.00,000.00,1.00 -0066,+030.00,+00.00,01.00,000.00,1.00 -0067,+030.00,+00.00,01.00,000.00,1.00 -0068,+030.00,+00.00,01.00,000.00,1.00 -0069,+030.00,+00.00,01.00,000.00,1.00 -0070,+030.00,+00.00,01.00,000.00,1.00 -0071,+030.00,+00.00,01.00,000.00,1.00 -0072,+030.00,+00.00,01.00,000.00,1.00 -0073,+030.00,+00.00,01.00,000.00,1.00 -0074,+030.00,+00.00,01.00,000.00,1.00 -0075,+030.00,+00.00,01.00,000.00,1.00 -0076,+030.00,+00.00,01.00,000.00,1.00 -0077,+030.00,+00.00,01.00,000.00,1.00 -0078,+030.00,+00.00,01.00,000.00,1.00 -0079,+030.00,+00.00,01.00,000.00,1.00 -0080,+030.00,+00.00,01.00,000.00,1.00 -0081,+030.00,+00.00,01.00,000.00,1.00 -0082,+030.00,+00.00,01.00,000.00,1.00 -0083,+030.00,+00.00,01.00,000.00,1.00 -0084,+030.00,+00.00,01.00,000.00,1.00 -0085,+030.00,+00.00,01.00,000.00,1.00 -0086,+030.00,+00.00,01.00,000.00,1.00 -0087,+030.00,+00.00,01.00,000.00,1.00 -0088,+030.00,+00.00,01.00,000.00,1.00 -0089,+030.00,+00.00,01.00,000.00,1.00 -0090,+030.00,+00.00,01.00,000.00,1.00 -0091,+030.00,+00.00,01.00,000.00,1.00 -0092,+030.00,+00.00,01.00,000.00,1.00 -0093,+030.00,+00.00,01.00,000.00,1.00 -0094,+030.00,+00.00,01.00,000.00,1.00 -0095,+030.00,+00.00,01.00,000.00,1.00 -0096,+030.00,+00.00,01.00,000.00,1.00 -0097,+030.00,+00.00,01.00,000.00,1.00 -0098,+030.00,+00.00,01.00,000.00,1.00 -0099,+030.00,+00.00,01.00,000.00,1.00 -0100,+030.00,+00.00,01.00,000.00,1.00 -0101,+030.00,+00.00,01.00,000.00,1.00 -0102,+030.00,+00.00,01.00,000.00,1.00 -0103,+030.00,+00.00,01.00,000.00,1.00 -0104,+030.00,+00.00,01.00,000.00,1.00 -0105,+030.00,+00.00,01.00,000.00,1.00 -0106,+030.00,+00.00,01.00,000.00,1.00 -0107,+030.00,+00.00,01.00,000.00,1.00 -0108,+030.00,+00.00,01.00,000.00,1.00 -0109,+030.00,+00.00,01.00,000.00,1.00 -0110,+030.00,+00.00,01.00,000.00,1.00 -0111,+030.00,+00.00,01.00,000.00,1.00 -0112,+030.00,+00.00,01.00,000.00,1.00 -0113,+030.00,+00.00,01.00,000.00,1.00 -0114,+030.00,+00.00,01.00,000.00,1.00 -0115,+030.00,+00.00,01.00,000.00,1.00 -0116,+030.00,+00.00,01.00,000.00,1.00 -0117,+030.00,+00.00,01.00,000.00,1.00 -0118,+030.00,+00.00,01.00,000.00,1.00 -0119,+030.00,+00.00,01.00,000.00,1.00 -0120,+030.00,+00.00,01.00,000.00,1.00 -0121,+030.00,+00.00,01.00,000.00,1.00 -0122,+030.00,+00.00,01.00,000.00,1.00 -0123,+030.00,+00.00,01.00,000.00,1.00 -0124,+030.00,+00.00,01.00,000.00,1.00 -0125,+030.00,+00.00,01.00,000.00,1.00 -0126,+030.00,+00.00,01.00,000.00,1.00 -0127,+030.00,+00.00,01.00,000.00,1.00 -0128,+030.00,+00.00,01.00,000.00,1.00 -0129,+030.00,+00.00,01.00,000.00,1.00 -0130,+030.00,+00.00,01.00,000.00,1.00 -0131,+030.00,+00.00,01.00,000.00,1.00 -0132,+030.00,+00.00,01.00,000.00,1.00 -0133,+030.00,+00.00,01.00,000.00,1.00 -0134,+030.00,+00.00,01.00,000.00,1.00 -0135,+030.00,+00.00,01.00,000.00,1.00 -0136,+030.00,+00.00,01.00,000.00,1.00 -0137,+030.00,+00.00,01.00,000.00,1.00 -0138,+030.00,+00.00,01.00,000.00,1.00 -0139,+030.00,+00.00,01.00,000.00,1.00 -0140,+030.00,+00.00,01.00,000.00,1.00 -0141,+030.00,+00.00,01.00,000.00,1.00 -0142,+030.00,+00.00,01.00,000.00,1.00 -0143,+030.00,+00.00,01.00,000.00,1.00 -0144,+030.00,+00.00,01.00,000.00,1.00 -0145,+030.00,+00.00,01.00,000.00,1.00 -0146,+030.00,+00.00,01.00,000.00,1.00 -0147,+030.00,+00.00,01.00,000.00,1.00 -0148,+030.00,+00.00,01.00,000.00,1.00 -0149,+030.00,+00.00,01.00,000.00,1.00 -0150,+030.00,+00.00,01.00,000.00,1.00 -0151,+030.00,+00.00,01.00,000.00,1.00 -0152,+030.00,+00.00,01.00,000.00,1.00 -0153,+030.00,+00.00,01.00,000.00,1.00 -0154,+030.00,+00.00,01.00,000.00,1.00 -0155,+030.00,+00.00,01.00,000.00,1.00 -0156,+030.00,+00.00,01.00,000.00,1.00 -0157,+030.00,+00.00,01.00,000.00,1.00 -0158,+030.00,+00.00,01.00,000.00,1.00 -0159,+030.00,+00.00,01.00,000.00,1.00 -0160,+030.00,+00.00,01.00,000.00,1.00 -0161,+030.00,+00.00,01.00,000.00,1.00 -0162,+030.00,+00.00,01.00,000.00,1.00 -0163,+030.00,+00.00,01.00,000.00,1.00 -0164,+030.00,+00.00,01.00,000.00,1.00 -0165,+030.00,+00.00,01.00,000.00,1.00 -0166,+030.00,+00.00,01.00,000.00,1.00 -0167,+030.00,+00.00,01.00,000.00,1.00 -0168,+030.00,+00.00,01.00,000.00,1.00 -0169,+030.00,+00.00,01.00,000.00,1.00 -0170,+030.00,+00.00,01.00,000.00,1.00 -0171,+030.00,+00.00,01.00,000.00,1.00 -0172,+030.00,+00.00,01.00,000.00,1.00 -0173,+030.00,+00.00,01.00,000.00,1.00 -0174,+030.00,+00.00,01.00,000.00,1.00 -0175,+030.00,+00.00,01.00,000.00,1.00 -0176,+030.00,+00.00,01.00,000.00,1.00 -0177,+030.00,+00.00,01.00,000.00,1.00 -0178,+030.00,+00.00,01.00,000.00,1.00 -0179,+030.00,+00.00,01.00,000.00,1.00 -0180,+030.00,+00.00,01.00,000.00,1.00 -0181,+030.00,+00.00,01.00,000.00,1.00 -0182,+030.00,+00.00,01.00,000.00,1.00 -0183,+030.00,+00.00,01.00,000.00,1.00 -0184,+030.00,+00.00,01.00,000.00,1.00 -0185,+030.00,+00.00,01.00,000.00,1.00 -0186,+030.00,+00.00,01.00,000.00,1.00 -0187,+030.00,+00.00,01.00,000.00,1.00 -0188,+030.00,+00.00,01.00,000.00,1.00 -0189,+030.00,+00.00,01.00,000.00,1.00 -0190,+030.00,+00.00,01.00,000.00,1.00 -0191,+030.00,+00.00,01.00,000.00,1.00 -0192,+030.00,+00.00,01.00,000.00,1.00 -0193,+030.00,+00.00,01.00,000.00,1.00 -0194,+030.00,+00.00,01.00,000.00,1.00 -0195,+030.00,+00.00,01.00,000.00,1.00 -0196,+030.00,+00.00,01.00,000.00,1.00 -0197,+030.00,+00.00,01.00,000.00,1.00 -0198,+030.00,+00.00,01.00,000.00,1.00 -0199,+030.00,+00.00,01.00,000.00,1.00 -0200,+030.00,+00.00,01.00,000.00,1.00 -0201,+030.00,+00.00,01.00,000.00,1.00 -0202,+030.00,+00.00,01.00,000.00,1.00 -0203,+030.00,+00.00,01.00,000.00,1.00 -0204,+030.00,+00.00,01.00,000.00,1.00 -0205,+030.00,+00.00,01.00,000.00,1.00 -0206,+030.00,+00.00,01.00,000.00,1.00 -0207,+030.00,+00.00,01.00,000.00,1.00 -0208,+030.00,+00.00,01.00,000.00,1.00 -0209,+030.00,+00.00,01.00,000.00,1.00 -0210,+030.00,+00.00,01.00,000.00,1.00 -0211,+030.00,+00.00,01.00,000.00,1.00 -0212,+030.00,+00.00,01.00,000.00,1.00 -0213,+030.00,+00.00,01.00,000.00,1.00 -0214,+030.00,+00.00,01.00,000.00,1.00 -0215,+030.00,+00.00,01.00,000.00,1.00 -0216,+030.00,+00.00,01.00,000.00,1.00 -0217,+030.00,+00.00,01.00,000.00,1.00 -0218,+030.00,+00.00,01.00,000.00,1.00 -0219,+030.00,+00.00,01.00,000.00,1.00 -0220,+030.00,+00.00,01.00,000.00,1.00 -0221,+030.00,+00.00,01.00,000.00,1.00 -0222,+030.00,+00.00,01.00,000.00,1.00 -0223,+030.00,+00.00,01.00,000.00,1.00 -0224,+030.00,+00.00,01.00,000.00,1.00 -0225,+030.00,+00.00,01.00,000.00,1.00 -0226,+030.00,+00.00,01.00,000.00,1.00 -0227,+030.00,+00.00,01.00,000.00,1.00 -0228,+030.00,+00.00,01.00,000.00,1.00 -0229,+030.00,+00.00,01.00,000.00,1.00 -0230,+030.00,+00.00,01.00,000.00,1.00 -0231,+030.00,+00.00,01.00,000.00,1.00 -0232,+030.00,+00.00,01.00,000.00,1.00 -0233,+030.00,+00.00,01.00,000.00,1.00 -0234,+030.00,+00.00,01.00,000.00,1.00 -0235,+030.00,+00.00,01.00,000.00,1.00 -0236,+030.00,+00.00,01.00,000.00,1.00 -0237,+030.00,+00.00,01.00,000.00,1.00 -0238,+030.00,+00.00,01.00,000.00,1.00 -0239,+030.00,+00.00,01.00,000.00,1.00 -0240,+030.00,+00.00,01.00,000.00,1.00 -0241,+030.00,+00.00,01.00,000.00,1.00 -0242,+030.00,+00.00,01.00,000.00,1.00 -0243,+030.00,+00.00,01.00,000.00,1.00 -0244,+030.00,+00.00,01.00,000.00,1.00 -0245,+030.00,+00.00,01.00,000.00,1.00 -0246,+030.00,+00.00,01.00,000.00,1.00 -0247,+030.00,+00.00,01.00,000.00,1.00 -0248,+030.00,+00.00,01.00,000.00,1.00 -0249,+030.00,+00.00,01.00,000.00,1.00 -0250,+030.00,+00.00,01.00,000.00,1.00 -0251,+030.00,+00.00,01.00,000.00,1.00 -0252,+030.00,+00.00,01.00,000.00,1.00 -0253,+030.00,+00.00,01.00,000.00,1.00 -0254,+030.00,+00.00,01.00,000.00,1.00 -0255,+030.00,+00.00,01.00,000.00,1.00 -0256,+030.00,+00.00,01.00,000.00,1.00 -0257,+030.00,+00.00,01.00,000.00,1.00 -0258,+030.00,+00.00,01.00,000.00,1.00 -0259,+030.00,+00.00,01.00,000.00,1.00 -0260,+030.00,+00.00,01.00,000.00,1.00 -0261,+030.00,+00.00,01.00,000.00,1.00 -0262,+030.00,+00.00,01.00,000.00,1.00 -0263,+030.00,+00.00,01.00,000.00,1.00 -0264,+030.00,+00.00,01.00,000.00,1.00 -0265,+030.00,+00.00,01.00,000.00,1.00 -0266,+030.00,+00.00,01.00,000.00,1.00 -0267,+030.00,+00.00,01.00,000.00,1.00 -0268,+030.00,+00.00,01.00,000.00,1.00 -0269,+030.00,+00.00,01.00,000.00,1.00 -0270,+030.00,+00.00,01.00,000.00,1.00 -0271,+030.00,+00.00,01.00,000.00,1.00 -0272,+030.00,+00.00,01.00,000.00,1.00 -0273,+030.00,+00.00,01.00,000.00,1.00 -0274,+030.00,+00.00,01.00,000.00,1.00 -0275,+030.00,+00.00,01.00,000.00,1.00 -0276,+030.00,+00.00,01.00,000.00,1.00 -0277,+030.00,+00.00,01.00,000.00,1.00 -0278,+030.00,+00.00,01.00,000.00,1.00 -0279,+030.00,+00.00,01.00,000.00,1.00 -0280,+030.00,+00.00,01.00,000.00,1.00 -0281,+030.00,+00.00,01.00,000.00,1.00 -0282,+030.00,+00.00,01.00,000.00,1.00 -0283,+030.00,+00.00,01.00,000.00,1.00 -0284,+030.00,+00.00,01.00,000.00,1.00 -0285,+030.00,+00.00,01.00,000.00,1.00 -0286,+030.00,+00.00,01.00,000.00,1.00 -0287,+030.00,+00.00,01.00,000.00,1.00 -0288,+030.00,+00.00,01.00,000.00,1.00 -0289,+030.00,+00.00,01.00,000.00,1.00 -0290,+030.00,+00.00,01.00,000.00,1.00 -0291,+030.00,+00.00,01.00,000.00,1.00 -0292,+030.00,+00.00,01.00,000.00,1.00 -0293,+030.00,+00.00,01.00,000.00,1.00 -0294,+030.00,+00.00,01.00,000.00,1.00 -0295,+030.00,+00.00,01.00,000.00,1.00 -0296,+030.00,+00.00,01.00,000.00,1.00 -0297,+030.00,+00.00,01.00,000.00,1.00 -0298,+030.00,+00.00,01.00,000.00,1.00 -0299,+030.00,+00.00,01.00,000.00,1.00 -0300,+030.00,+00.00,01.00,000.00,1.00 -0301,+030.00,+00.00,01.00,000.00,1.00 -0302,+030.00,+00.00,01.00,000.00,1.00 -0303,+030.00,+00.00,01.00,000.00,1.00 -0304,+030.00,+00.00,01.00,000.00,1.00 -0305,+030.00,+00.00,01.00,000.00,1.00 -0306,+030.00,+00.00,01.00,000.00,1.00 -0307,+030.00,+00.00,01.00,000.00,1.00 -0308,+030.00,+00.00,01.00,000.00,1.00 -0309,+030.00,+00.00,01.00,000.00,1.00 -0310,+030.00,+00.00,01.00,000.00,1.00 -0311,+030.00,+00.00,01.00,000.00,1.00 -0312,+030.00,+00.00,01.00,000.00,1.00 -0313,+030.00,+00.00,01.00,000.00,1.00 -0314,+030.00,+00.00,01.00,000.00,1.00 -0315,+030.00,+00.00,01.00,000.00,1.00 -0316,+030.00,+00.00,01.00,000.00,1.00 -0317,+030.00,+00.00,01.00,000.00,1.00 -0318,+030.00,+00.00,01.00,000.00,1.00 -0319,+030.00,+00.00,01.00,000.00,1.00 -0320,+030.00,+00.00,01.00,000.00,1.00 -0321,+030.00,+00.00,01.00,000.00,1.00 -0322,+030.00,+00.00,01.00,000.00,1.00 -0323,+030.00,+00.00,01.00,000.00,1.00 -0324,+030.00,+00.00,01.00,000.00,1.00 -0325,+030.00,+00.00,01.00,000.00,1.00 -0326,+030.00,+00.00,01.00,000.00,1.00 -0327,+030.00,+00.00,01.00,000.00,1.00 -0328,+030.00,+00.00,01.00,000.00,1.00 -0329,+030.00,+00.00,01.00,000.00,1.00 -0330,+030.00,+00.00,01.00,000.00,1.00 -0331,+030.00,+00.00,01.00,000.00,1.00 -0332,+030.00,+00.00,01.00,000.00,1.00 -0333,+030.00,+00.00,01.00,000.00,1.00 -0334,+030.00,+00.00,01.00,000.00,1.00 -0335,+030.00,+00.00,01.00,000.00,1.00 -0336,+030.00,+00.00,01.00,000.00,1.00 -0337,+030.00,+00.00,01.00,000.00,1.00 -0338,+030.00,+00.00,01.00,000.00,1.00 -0339,+030.00,+00.00,01.00,000.00,1.00 -0340,+030.00,+00.00,01.00,000.00,1.00 -0341,+030.00,+00.00,01.00,000.00,1.00 -0342,+030.00,+00.00,01.00,000.00,1.00 -0343,+030.00,+00.00,01.00,000.00,1.00 -0344,+030.00,+00.00,01.00,000.00,1.00 -0345,+030.00,+00.00,01.00,000.00,1.00 -0346,+030.00,+00.00,01.00,000.00,1.00 -0347,+030.00,+00.00,01.00,000.00,1.00 -0348,+030.00,+00.00,01.00,000.00,1.00 -0349,+030.00,+00.00,01.00,000.00,1.00 -0350,+030.00,+00.00,01.00,000.00,1.00 -0351,+030.00,+00.00,01.00,000.00,1.00 -0352,+030.00,+00.00,01.00,000.00,1.00 -0353,+030.00,+00.00,01.00,000.00,1.00 -0354,+030.00,+00.00,01.00,000.00,1.00 -0355,+030.00,+00.00,01.00,000.00,1.00 -0356,+030.00,+00.00,01.00,000.00,1.00 -0357,+030.00,+00.00,01.00,000.00,1.00 -0358,+030.00,+00.00,01.00,000.00,1.00 -0359,+030.00,+00.00,01.00,000.00,1.00 -0360,+030.00,+00.00,01.00,000.00,1.00 -0361,+030.00,+00.00,01.00,000.00,1.00 -0362,+030.00,+00.00,01.00,000.00,1.00 -0363,+030.00,+00.00,01.00,000.00,1.00 -0364,+030.00,+00.00,01.00,000.00,1.00 -0365,+030.00,+00.00,01.00,000.00,1.00 -0366,+030.00,+00.00,01.00,000.00,1.00 -0367,+030.00,+00.00,01.00,000.00,1.00 -0368,+030.00,+00.00,01.00,000.00,1.00 -0369,+030.00,+00.00,01.00,000.00,1.00 -0370,+030.00,+00.00,01.00,000.00,1.00 -0371,+030.00,+00.00,01.00,000.00,1.00 -0372,+030.00,+00.00,01.00,000.00,1.00 -0373,+030.00,+00.00,01.00,000.00,1.00 -0374,+030.00,+00.00,01.00,000.00,1.00 -0375,+030.00,+00.00,01.00,000.00,1.00 -0376,+030.00,+00.00,01.00,000.00,1.00 -0377,+030.00,+00.00,01.00,000.00,1.00 -0378,+030.00,+00.00,01.00,000.00,1.00 -0379,+030.00,+00.00,01.00,000.00,1.00 -0380,+030.00,+00.00,01.00,000.00,1.00 -0381,+030.00,+00.00,01.00,000.00,1.00 -0382,+030.00,+00.00,01.00,000.00,1.00 -0383,+030.00,+00.00,01.00,000.00,1.00 -0384,+030.00,+00.00,01.00,000.00,1.00 -0385,+030.00,+00.00,01.00,000.00,1.00 -0386,+030.00,+00.00,01.00,000.00,1.00 -0387,+030.00,+00.00,01.00,000.00,1.00 -0388,+030.00,+00.00,01.00,000.00,1.00 -0389,+030.00,+00.00,01.00,000.00,1.00 -0390,+030.00,+00.00,01.00,000.00,1.00 -0391,+030.00,+00.00,01.00,000.00,1.00 -0392,+030.00,+00.00,01.00,000.00,1.00 -0393,+030.00,+00.00,01.00,000.00,1.00 -0394,+030.00,+00.00,01.00,000.00,1.00 -0395,+030.00,+00.00,01.00,000.00,1.00 -0396,+030.00,+00.00,01.00,000.00,1.00 -0397,+030.00,+00.00,01.00,000.00,1.00 -0398,+030.00,+00.00,01.00,000.00,1.00 -0399,+030.00,+00.00,01.00,000.00,1.00 -0400,+030.00,+00.00,01.00,000.00,1.00 -0401,+030.00,+00.00,01.00,000.00,1.00 -0402,+030.00,+00.00,01.00,000.00,1.00 -0403,+030.00,+00.00,01.00,000.00,1.00 -0404,+030.00,+00.00,01.00,000.00,1.00 -0405,+030.00,+00.00,01.00,000.00,1.00 -0406,+030.00,+00.00,01.00,000.00,1.00 -0407,+030.00,+00.00,01.00,000.00,1.00 -0408,+030.00,+00.00,01.00,000.00,1.00 -0409,+030.00,+00.00,01.00,000.00,1.00 -0410,+030.00,+00.00,01.00,000.00,1.00 -0411,+030.00,+00.00,01.00,000.00,1.00 -0412,+030.00,+00.00,01.00,000.00,1.00 -0413,+030.00,+00.00,01.00,000.00,1.00 -0414,+030.00,+00.00,01.00,000.00,1.00 -0415,+030.00,+00.00,01.00,000.00,1.00 -0416,+030.00,+00.00,01.00,000.00,1.00 -0417,+030.00,+00.00,01.00,000.00,1.00 -0418,+030.00,+00.00,01.00,000.00,1.00 -0419,+030.00,+00.00,01.00,000.00,1.00 -0420,+030.00,+00.00,01.00,000.00,1.00 -0421,+030.00,+00.00,01.00,000.00,1.00 -0422,+030.00,+00.00,01.00,000.00,1.00 -0423,+030.00,+00.00,01.00,000.00,1.00 -0424,+030.00,+00.00,01.00,000.00,1.00 -0425,+030.00,+00.00,01.00,000.00,1.00 -0426,+030.00,+00.00,01.00,000.00,1.00 -0427,+030.00,+00.00,01.00,000.00,1.00 -0428,+030.00,+00.00,01.00,000.00,1.00 -0429,+030.00,+00.00,01.00,000.00,1.00 -0430,+030.00,+00.00,01.00,000.00,1.00 -0431,+030.00,+00.00,01.00,000.00,1.00 -0432,+030.00,+00.00,01.00,000.00,1.00 -0433,+030.00,+00.00,01.00,000.00,1.00 -0434,+030.00,+00.00,01.00,000.00,1.00 -0435,+030.00,+00.00,01.00,000.00,1.00 -0436,+030.00,+00.00,01.00,000.00,1.00 -0437,+030.00,+00.00,01.00,000.00,1.00 -0438,+030.00,+00.00,01.00,000.00,1.00 -0439,+030.00,+00.00,01.00,000.00,1.00 -0440,+030.00,+00.00,01.00,000.00,1.00 -0441,+030.00,+00.00,01.00,000.00,1.00 -0442,+030.00,+00.00,01.00,000.00,1.00 -0443,+030.00,+00.00,01.00,000.00,1.00 -0444,+030.00,+00.00,01.00,000.00,1.00 -0445,+030.00,+00.00,01.00,000.00,1.00 -0446,+030.00,+00.00,01.00,000.00,1.00 -0447,+030.00,+00.00,01.00,000.00,1.00 -0448,+030.00,+00.00,01.00,000.00,1.00 -0449,+030.00,+00.00,01.00,000.00,1.00 -0450,+030.00,+00.00,01.00,000.00,1.00 -0451,+030.00,+00.00,01.00,000.00,1.00 -0452,+030.00,+00.00,01.00,000.00,1.00 -0453,+030.00,+00.00,01.00,000.00,1.00 -0454,+030.00,+00.00,01.00,000.00,1.00 -0455,+030.00,+00.00,01.00,000.00,1.00 -0456,+030.00,+00.00,01.00,000.00,1.00 -0457,+030.00,+00.00,01.00,000.00,1.00 -0458,+030.00,+00.00,01.00,000.00,1.00 -0459,+030.00,+00.00,01.00,000.00,1.00 -0460,+030.00,+00.00,01.00,000.00,1.00 -0461,+030.00,+00.00,01.00,000.00,1.00 -0462,+030.00,+00.00,01.00,000.00,1.00 -0463,+030.00,+00.00,01.00,000.00,1.00 -0464,+030.00,+00.00,01.00,000.00,1.00 -0465,+030.00,+00.00,01.00,000.00,1.00 -0466,+030.00,+00.00,01.00,000.00,1.00 -0467,+030.00,+00.00,01.00,000.00,1.00 -0468,+030.00,+00.00,01.00,000.00,1.00 -0469,+030.00,+00.00,01.00,000.00,1.00 -0470,+030.00,+00.00,01.00,000.00,1.00 -0471,+030.00,+00.00,01.00,000.00,1.00 -0472,+030.00,+00.00,01.00,000.00,1.00 -0473,+030.00,+00.00,01.00,000.00,1.00 -0474,+030.00,+00.00,01.00,000.00,1.00 -0475,+030.00,+00.00,01.00,000.00,1.00 -0476,+030.00,+00.00,01.00,000.00,1.00 -0477,+030.00,+00.00,01.00,000.00,1.00 -0478,+030.00,+00.00,01.00,000.00,1.00 -0479,+030.00,+00.00,01.00,000.00,1.00 -0480,+030.00,+00.00,01.00,000.00,1.00 -0481,+030.00,+00.00,01.00,000.00,1.00 -0482,+030.00,+00.00,01.00,000.00,1.00 -0483,+030.00,+00.00,01.00,000.00,1.00 -0484,+030.00,+00.00,01.00,000.00,1.00 -0485,+030.00,+00.00,01.00,000.00,1.00 -0486,+030.00,+00.00,01.00,000.00,1.00 -0487,+030.00,+00.00,01.00,000.00,1.00 -0488,+030.00,+00.00,01.00,000.00,1.00 -0489,+030.00,+00.00,01.00,000.00,1.00 -0490,+030.00,+00.00,01.00,000.00,1.00 -0491,+030.00,+00.00,01.00,000.00,1.00 -0492,+030.00,+00.00,01.00,000.00,1.00 -0493,+030.00,+00.00,01.00,000.00,1.00 -0494,+030.00,+00.00,01.00,000.00,1.00 -0495,+030.00,+00.00,01.00,000.00,1.00 -0496,+030.00,+00.00,01.00,000.00,1.00 -0497,+030.00,+00.00,01.00,000.00,1.00 -0498,+030.00,+00.00,01.00,000.00,1.00 -0499,+030.00,+00.00,01.00,000.00,1.00 -0500,+030.00,+00.00,01.00,000.00,1.00 -0501,+030.00,+00.00,01.00,000.00,1.00 -0502,+030.00,+00.00,01.00,000.00,1.00 -0503,+030.00,+00.00,01.00,000.00,1.00 -0504,+030.00,+00.00,01.00,000.00,1.00 -0505,+030.00,+00.00,01.00,000.00,1.00 -0506,+030.00,+00.00,01.00,000.00,1.00 -0507,+030.00,+00.00,01.00,000.00,1.00 -0508,+030.00,+00.00,01.00,000.00,1.00 -0509,+030.00,+00.00,01.00,000.00,1.00 -0510,+030.00,+00.00,01.00,000.00,1.00 -0511,+030.00,+00.00,01.00,000.00,1.00 -0512,+030.00,+00.00,01.00,000.00,1.00 -0513,+030.00,+00.00,01.00,000.00,1.00 -0514,+030.00,+00.00,01.00,000.00,1.00 -0515,+030.00,+00.00,01.00,000.00,1.00 -0516,+030.00,+00.00,01.00,000.00,1.00 -0517,+030.00,+00.00,01.00,000.00,1.00 -0518,+030.00,+00.00,01.00,000.00,1.00 -0519,+030.00,+00.00,01.00,000.00,1.00 -0520,+030.00,+00.00,01.00,000.00,1.00 -0521,+030.00,+00.00,01.00,000.00,1.00 -0522,+030.00,+00.00,01.00,000.00,1.00 -0523,+030.00,+00.00,01.00,000.00,1.00 -0524,+030.00,+00.00,01.00,000.00,1.00 -0525,+030.00,+00.00,01.00,000.00,1.00 -0526,+030.00,+00.00,01.00,000.00,1.00 -0527,+030.00,+00.00,01.00,000.00,1.00 -0528,+030.00,+00.00,01.00,000.00,1.00 -0529,+030.00,+00.00,01.00,000.00,1.00 -0530,+030.00,+00.00,01.00,000.00,1.00 -0531,+030.00,+00.00,01.00,000.00,1.00 -0532,+030.00,+00.00,01.00,000.00,1.00 -0533,+030.00,+00.00,01.00,000.00,1.00 -0534,+030.00,+00.00,01.00,000.00,1.00 -0535,+030.00,+00.00,01.00,000.00,1.00 -0536,+030.00,+00.00,01.00,000.00,1.00 -0537,+030.00,+00.00,01.00,000.00,1.00 -0538,+030.00,+00.00,01.00,000.00,1.00 -0539,+030.00,+00.00,01.00,000.00,1.00 -0540,+030.00,+00.00,01.00,000.00,1.00 -0541,+030.00,+00.00,01.00,000.00,1.00 -0542,+030.00,+00.00,01.00,000.00,1.00 -0543,+030.00,+00.00,01.00,000.00,1.00 -0544,+030.00,+00.00,01.00,000.00,1.00 -0545,+030.00,+00.00,01.00,000.00,1.00 -0546,+030.00,+00.00,01.00,000.00,1.00 -0547,+030.00,+00.00,01.00,000.00,1.00 -0548,+030.00,+00.00,01.00,000.00,1.00 -0549,+030.00,+00.00,01.00,000.00,1.00 -0550,+030.00,+00.00,01.00,000.00,1.00 -0551,+030.00,+00.00,01.00,000.00,1.00 -0552,+030.00,+00.00,01.00,000.00,1.00 -0553,+030.00,+00.00,01.00,000.00,1.00 -0554,+030.00,+00.00,01.00,000.00,1.00 -0555,+030.00,+00.00,01.00,000.00,1.00 -0556,+030.00,+00.00,01.00,000.00,1.00 -0557,+030.00,+00.00,01.00,000.00,1.00 -0558,+030.00,+00.00,01.00,000.00,1.00 -0559,+030.00,+00.00,01.00,000.00,1.00 -0560,+030.00,+00.00,01.00,000.00,1.00 -0561,+030.00,+00.00,01.00,000.00,1.00 -0562,+030.00,+00.00,01.00,000.00,1.00 -0563,+030.00,+00.00,01.00,000.00,1.00 -0564,+030.00,+00.00,01.00,000.00,1.00 -0565,+030.00,+00.00,01.00,000.00,1.00 -0566,+030.00,+00.00,01.00,000.00,1.00 -0567,+030.00,+00.00,01.00,000.00,1.00 -0568,+030.00,+00.00,01.00,000.00,1.00 -0569,+030.00,+00.00,01.00,000.00,1.00 -0570,+030.00,+00.00,01.00,000.00,1.00 -0571,+030.00,+00.00,01.00,000.00,1.00 -0572,+030.00,+00.00,01.00,000.00,1.00 -0573,+030.00,+00.00,01.00,000.00,1.00 -0574,+030.00,+00.00,01.00,000.00,1.00 -0575,+030.00,+00.00,01.00,000.00,1.00 -0576,+030.00,+00.00,01.00,000.00,1.00 -0577,+030.00,+00.00,01.00,000.00,1.00 -0578,+030.00,+00.00,01.00,000.00,1.00 -0579,+030.00,+00.00,01.00,000.00,1.00 -0580,+030.00,+00.00,01.00,000.00,1.00 -0581,+030.00,+00.00,01.00,000.00,1.00 -0582,+030.00,+00.00,01.00,000.00,1.00 -0583,+030.00,+00.00,01.00,000.00,1.00 -0584,+030.00,+00.00,01.00,000.00,1.00 -0585,+030.00,+00.00,01.00,000.00,1.00 -0586,+030.00,+00.00,01.00,000.00,1.00 -0587,+030.00,+00.00,01.00,000.00,1.00 -0588,+030.00,+00.00,01.00,000.00,1.00 -0589,+030.00,+00.00,01.00,000.00,1.00 -0590,+030.00,+00.00,01.00,000.00,1.00 -0591,+030.00,+00.00,01.00,000.00,1.00 -0592,+030.00,+00.00,01.00,000.00,1.00 -0593,+030.00,+00.00,01.00,000.00,1.00 -0594,+030.00,+00.00,01.00,000.00,1.00 -0595,+030.00,+00.00,01.00,000.00,1.00 -0596,+030.00,+00.00,01.00,000.00,1.00 -0597,+030.00,+00.00,01.00,000.00,1.00 -0598,+030.00,+00.00,01.00,000.00,1.00 -0599,+030.00,+00.00,01.00,000.00,1.00 -0600,+030.00,+00.00,01.00,000.00,1.00 -0601,+030.00,+00.00,01.00,000.00,1.00 -0602,+030.00,+00.00,01.00,000.00,1.00 -0603,+030.00,+00.00,01.00,000.00,1.00 -0604,+030.00,+00.00,01.00,000.00,1.00 -0605,+030.00,+00.00,01.00,000.00,1.00 -0606,+030.00,+00.00,01.00,000.00,1.00 -0607,+030.00,+00.00,01.00,000.00,1.00 -0608,+030.00,+00.00,01.00,000.00,1.00 -0609,+030.00,+00.00,01.00,000.00,1.00 -0610,+030.00,+00.00,01.00,000.00,1.00 -0611,+030.00,+00.00,01.00,000.00,1.00 -0612,+030.00,+00.00,01.00,000.00,1.00 -0613,+030.00,+00.00,01.00,000.00,1.00 -0614,+030.00,+00.00,01.00,000.00,1.00 -0615,+030.00,+00.00,01.00,000.00,1.00 -0616,+030.00,+00.00,01.00,000.00,1.00 -0617,+030.00,+00.00,01.00,000.00,1.00 -0618,+030.00,+00.00,01.00,000.00,1.00 -0619,+030.00,+00.00,01.00,000.00,1.00 -0620,+030.00,+00.00,01.00,000.00,1.00 -0621,+030.00,+00.00,01.00,000.00,1.00 -0622,+030.00,+00.00,01.00,000.00,1.00 -0623,+030.00,+00.00,01.00,000.00,1.00 -0624,+030.00,+00.00,01.00,000.00,1.00 -0625,+030.00,+00.00,01.00,000.00,1.00 -0626,+030.00,+00.00,01.00,000.00,1.00 -0627,+030.00,+00.00,01.00,000.00,1.00 -0628,+030.00,+00.00,01.00,000.00,1.00 -0629,+030.00,+00.00,01.00,000.00,1.00 -0630,+030.00,+00.00,01.00,000.00,1.00 -0631,+030.00,+00.00,01.00,000.00,1.00 -0632,+030.00,+00.00,01.00,000.00,1.00 -0633,+030.00,+00.00,01.00,000.00,1.00 -0634,+030.00,+00.00,01.00,000.00,1.00 -0635,+030.00,+00.00,01.00,000.00,1.00 -0636,+030.00,+00.00,01.00,000.00,1.00 -0637,+030.00,+00.00,01.00,000.00,1.00 -0638,+030.00,+00.00,01.00,000.00,1.00 -0639,+030.00,+00.00,01.00,000.00,1.00 -0640,+030.00,+00.00,01.00,000.00,1.00 -0641,+030.00,+00.00,01.00,000.00,1.00 -0642,+030.00,+00.00,01.00,000.00,1.00 -0643,+030.00,+00.00,01.00,000.00,1.00 -0644,+030.00,+00.00,01.00,000.00,1.00 -0645,+030.00,+00.00,01.00,000.00,1.00 -0646,+030.00,+00.00,01.00,000.00,1.00 -0647,+030.00,+00.00,01.00,000.00,1.00 -0648,+030.00,+00.00,01.00,000.00,1.00 -0649,+030.00,+00.00,01.00,000.00,1.00 -0650,+030.00,+00.00,01.00,000.00,1.00 -0651,+030.00,+00.00,01.00,000.00,1.00 -0652,+030.00,+00.00,01.00,000.00,1.00 -0653,+030.00,+00.00,01.00,000.00,1.00 -0654,+030.00,+00.00,01.00,000.00,1.00 -0655,+030.00,+00.00,01.00,000.00,1.00 -0656,+030.00,+00.00,01.00,000.00,1.00 -0657,+030.00,+00.00,01.00,000.00,1.00 -0658,+030.00,+00.00,01.00,000.00,1.00 -0659,+030.00,+00.00,01.00,000.00,1.00 -0660,+030.00,+00.00,01.00,000.00,1.00 -0661,+030.00,+00.00,01.00,000.00,1.00 -0662,+030.00,+00.00,01.00,000.00,1.00 -0663,+030.00,+00.00,01.00,000.00,1.00 -0664,+030.00,+00.00,01.00,000.00,1.00 -0665,+030.00,+00.00,01.00,000.00,1.00 -0666,+030.00,+00.00,01.00,000.00,1.00 -0667,+030.00,+00.00,01.00,000.00,1.00 -0668,+030.00,+00.00,01.00,000.00,1.00 -0669,+030.00,+00.00,01.00,000.00,1.00 -0670,+030.00,+00.00,01.00,000.00,1.00 -0671,+030.00,+00.00,01.00,000.00,1.00 -0672,+030.00,+00.00,01.00,000.00,1.00 -0673,+030.00,+00.00,01.00,000.00,1.00 -0674,+030.00,+00.00,01.00,000.00,1.00 -0675,+030.00,+00.00,01.00,000.00,1.00 -0676,+030.00,+00.00,01.00,000.00,1.00 -0677,+030.00,+00.00,01.00,000.00,1.00 -0678,+030.00,+00.00,01.00,000.00,1.00 -0679,+030.00,+00.00,01.00,000.00,1.00 -0680,+030.00,+00.00,01.00,000.00,1.00 -0681,+030.00,+00.00,01.00,000.00,1.00 -0682,+030.00,+00.00,01.00,000.00,1.00 -0683,+030.00,+00.00,01.00,000.00,1.00 -0684,+030.00,+00.00,01.00,000.00,1.00 -0685,+030.00,+00.00,01.00,000.00,1.00 -0686,+030.00,+00.00,01.00,000.00,1.00 -0687,+030.00,+00.00,01.00,000.00,1.00 -0688,+030.00,+00.00,01.00,000.00,1.00 -0689,+030.00,+00.00,01.00,000.00,1.00 -0690,+030.00,+00.00,01.00,000.00,1.00 -0691,+030.00,+00.00,01.00,000.00,1.00 -0692,+030.00,+00.00,01.00,000.00,1.00 -0693,+030.00,+00.00,01.00,000.00,1.00 -0694,+030.00,+00.00,01.00,000.00,1.00 -0695,+030.00,+00.00,01.00,000.00,1.00 -0696,+030.00,+00.00,01.00,000.00,1.00 -0697,+030.00,+00.00,01.00,000.00,1.00 -0698,+030.00,+00.00,01.00,000.00,1.00 -0699,+030.00,+00.00,01.00,000.00,1.00 -0700,+030.00,+00.00,01.00,000.00,1.00 -0701,+030.00,+00.00,01.00,000.00,1.00 -0702,+030.00,+00.00,01.00,000.00,1.00 -0703,+030.00,+00.00,01.00,000.00,1.00 -0704,+030.00,+00.00,01.00,000.00,1.00 -0705,+030.00,+00.00,01.00,000.00,1.00 -0706,+030.00,+00.00,01.00,000.00,1.00 -0707,+030.00,+00.00,01.00,000.00,1.00 -0708,+030.00,+00.00,01.00,000.00,1.00 -0709,+030.00,+00.00,01.00,000.00,1.00 -0710,+030.00,+00.00,01.00,000.00,1.00 -0711,+030.00,+00.00,01.00,000.00,1.00 -0712,+030.00,+00.00,01.00,000.00,1.00 -0713,+030.00,+00.00,01.00,000.00,1.00 -0714,+030.00,+00.00,01.00,000.00,1.00 -0715,+030.00,+00.00,01.00,000.00,1.00 -0716,+030.00,+00.00,01.00,000.00,1.00 -0717,+030.00,+00.00,01.00,000.00,1.00 -0718,+030.00,+00.00,01.00,000.00,1.00 -0719,+030.00,+00.00,01.00,000.00,1.00 -0720,+030.00,+00.00,01.00,000.00,1.00 -0721,+030.00,+00.00,01.00,000.00,1.00 -0722,+030.00,+00.00,01.00,000.00,1.00 -0723,+030.00,+00.00,01.00,000.00,1.00 -0724,+030.00,+00.00,01.00,000.00,1.00 -0725,+030.00,+00.00,01.00,000.00,1.00 -0726,+030.00,+00.00,01.00,000.00,1.00 -0727,+030.00,+00.00,01.00,000.00,1.00 -0728,+030.00,+00.00,01.00,000.00,1.00 -0729,+030.00,+00.00,01.00,000.00,1.00 -0730,+030.00,+00.00,01.00,000.00,1.00 -0731,+030.00,+00.00,01.00,000.00,1.00 -0732,+030.00,+00.00,01.00,000.00,1.00 -0733,+030.00,+00.00,01.00,000.00,1.00 -0734,+030.00,+00.00,01.00,000.00,1.00 -0735,+030.00,+00.00,01.00,000.00,1.00 -0736,+030.00,+00.00,01.00,000.00,1.00 -0737,+030.00,+00.00,01.00,000.00,1.00 -0738,+030.00,+00.00,01.00,000.00,1.00 -0739,+030.00,+00.00,01.00,000.00,1.00 -0740,+030.00,+00.00,01.00,000.00,1.00 -0741,+030.00,+00.00,01.00,000.00,1.00 -0742,+030.00,+00.00,01.00,000.00,1.00 -0743,+030.00,+00.00,01.00,000.00,1.00 -0744,+030.00,+00.00,01.00,000.00,1.00 -0745,+030.00,+00.00,01.00,000.00,1.00 -0746,+030.00,+00.00,01.00,000.00,1.00 -0747,+030.00,+00.00,01.00,000.00,1.00 -0748,+030.00,+00.00,01.00,000.00,1.00 -0749,+030.00,+00.00,01.00,000.00,1.00 -0750,+030.00,+00.00,01.00,000.00,1.00 -0751,+030.00,+00.00,01.00,000.00,1.00 -0752,+030.00,+00.00,01.00,000.00,1.00 -0753,+030.00,+00.00,01.00,000.00,1.00 -0754,+030.00,+00.00,01.00,000.00,1.00 -0755,+030.00,+00.00,01.00,000.00,1.00 -0756,+030.00,+00.00,01.00,000.00,1.00 -0757,+030.00,+00.00,01.00,000.00,1.00 -0758,+030.00,+00.00,01.00,000.00,1.00 -0759,+030.00,+00.00,01.00,000.00,1.00 -0760,+030.00,+00.00,01.00,000.00,1.00 -0761,+030.00,+00.00,01.00,000.00,1.00 -0762,+030.00,+00.00,01.00,000.00,1.00 -0763,+030.00,+00.00,01.00,000.00,1.00 -0764,+030.00,+00.00,01.00,000.00,1.00 -0765,+030.00,+00.00,01.00,000.00,1.00 -0766,+030.00,+00.00,01.00,000.00,1.00 -0767,+030.00,+00.00,01.00,000.00,1.00 -0768,+030.00,+00.00,01.00,000.00,1.00 -0769,+030.00,+00.00,01.00,000.00,1.00 -0770,+030.00,+00.00,01.00,000.00,1.00 -0771,+030.00,+00.00,01.00,000.00,1.00 -0772,+030.00,+00.00,01.00,000.00,1.00 -0773,+030.00,+00.00,01.00,000.00,1.00 -0774,+030.00,+00.00,01.00,000.00,1.00 -0775,+030.00,+00.00,01.00,000.00,1.00 -0776,+030.00,+00.00,01.00,000.00,1.00 -0777,+030.00,+00.00,01.00,000.00,1.00 -0778,+030.00,+00.00,01.00,000.00,1.00 -0779,+030.00,+00.00,01.00,000.00,1.00 -0780,+030.00,+00.00,01.00,000.00,1.00 -0781,+030.00,+00.00,01.00,000.00,1.00 -0782,+030.00,+00.00,01.00,000.00,1.00 -0783,+030.00,+00.00,01.00,000.00,1.00 -0784,+030.00,+00.00,01.00,000.00,1.00 -0785,+030.00,+00.00,01.00,000.00,1.00 -0786,+030.00,+00.00,01.00,000.00,1.00 -0787,+030.00,+00.00,01.00,000.00,1.00 -0788,+030.00,+00.00,01.00,000.00,1.00 -0789,+030.00,+00.00,01.00,000.00,1.00 -0790,+030.00,+00.00,01.00,000.00,1.00 -0791,+030.00,+00.00,01.00,000.00,1.00 -0792,+030.00,+00.00,01.00,000.00,1.00 -0793,+030.00,+00.00,01.00,000.00,1.00 -0794,+030.00,+00.00,01.00,000.00,1.00 -0795,+030.00,+00.00,01.00,000.00,1.00 -0796,+030.00,+00.00,01.00,000.00,1.00 -0797,+030.00,+00.00,01.00,000.00,1.00 -0798,+030.00,+00.00,01.00,000.00,1.00 -0799,+030.00,+00.00,01.00,000.00,1.00 -0800,+030.00,+00.00,01.00,000.00,1.00 -0801,+030.00,+00.00,01.00,000.00,1.00 -0802,+030.00,+00.00,01.00,000.00,1.00 -0803,+030.00,+00.00,01.00,000.00,1.00 -0804,+030.00,+00.00,01.00,000.00,1.00 -0805,+030.00,+00.00,01.00,000.00,1.00 -0806,+030.00,+00.00,01.00,000.00,1.00 -0807,+030.00,+00.00,01.00,000.00,1.00 -0808,+030.00,+00.00,01.00,000.00,1.00 -0809,+030.00,+00.00,01.00,000.00,1.00 -0810,+030.00,+00.00,01.00,000.00,1.00 -0811,+030.00,+00.00,01.00,000.00,1.00 -0812,+030.00,+00.00,01.00,000.00,1.00 -0813,+030.00,+00.00,01.00,000.00,1.00 -0814,+030.00,+00.00,01.00,000.00,1.00 -0815,+030.00,+00.00,01.00,000.00,1.00 -0816,+030.00,+00.00,01.00,000.00,1.00 -0817,+030.00,+00.00,01.00,000.00,1.00 -0818,+030.00,+00.00,01.00,000.00,1.00 -0819,+030.00,+00.00,01.00,000.00,1.00 -0820,+030.00,+00.00,01.00,000.00,1.00 -0821,+030.00,+00.00,01.00,000.00,1.00 -0822,+030.00,+00.00,01.00,000.00,1.00 -0823,+030.00,+00.00,01.00,000.00,1.00 -0824,+030.00,+00.00,01.00,000.00,1.00 -0825,+030.00,+00.00,01.00,000.00,1.00 -0826,+030.00,+00.00,01.00,000.00,1.00 -0827,+030.00,+00.00,01.00,000.00,1.00 -0828,+030.00,+00.00,01.00,000.00,1.00 -0829,+030.00,+00.00,01.00,000.00,1.00 -0830,+030.00,+00.00,01.00,000.00,1.00 -0831,+030.00,+00.00,01.00,000.00,1.00 -0832,+030.00,+00.00,01.00,000.00,1.00 -0833,+030.00,+00.00,01.00,000.00,1.00 -0834,+030.00,+00.00,01.00,000.00,1.00 -0835,+030.00,+00.00,01.00,000.00,1.00 -0836,+030.00,+00.00,01.00,000.00,1.00 -0837,+030.00,+00.00,01.00,000.00,1.00 -0838,+030.00,+00.00,01.00,000.00,1.00 -0839,+030.00,+00.00,01.00,000.00,1.00 -0840,+030.00,+00.00,01.00,000.00,1.00 -0841,+030.00,+00.00,01.00,000.00,1.00 -0842,+030.00,+00.00,01.00,000.00,1.00 -0843,+030.00,+00.00,01.00,000.00,1.00 -0844,+030.00,+00.00,01.00,000.00,1.00 -0845,+030.00,+00.00,01.00,000.00,1.00 -0846,+030.00,+00.00,01.00,000.00,1.00 -0847,+030.00,+00.00,01.00,000.00,1.00 -0848,+030.00,+00.00,01.00,000.00,1.00 -0849,+030.00,+00.00,01.00,000.00,1.00 -0850,+030.00,+00.00,01.00,000.00,1.00 -0851,+030.00,+00.00,01.00,000.00,1.00 -0852,+030.00,+00.00,01.00,000.00,1.00 -0853,+030.00,+00.00,01.00,000.00,1.00 -0854,+030.00,+00.00,01.00,000.00,1.00 -0855,+030.00,+00.00,01.00,000.00,1.00 -0856,+030.00,+00.00,01.00,000.00,1.00 -0857,+030.00,+00.00,01.00,000.00,1.00 -0858,+030.00,+00.00,01.00,000.00,1.00 -0859,+030.00,+00.00,01.00,000.00,1.00 -0860,+030.00,+00.00,01.00,000.00,1.00 -0861,+030.00,+00.00,01.00,000.00,1.00 -0862,+030.00,+00.00,01.00,000.00,1.00 -0863,+030.00,+00.00,01.00,000.00,1.00 -0864,+030.00,+00.00,01.00,000.00,1.00 -0865,+030.00,+00.00,01.00,000.00,1.00 -0866,+030.00,+00.00,01.00,000.00,1.00 -0867,+030.00,+00.00,01.00,000.00,1.00 -0868,+030.00,+00.00,01.00,000.00,1.00 -0869,+030.00,+00.00,01.00,000.00,1.00 -0870,+030.00,+00.00,01.00,000.00,1.00 -0871,+030.00,+00.00,01.00,000.00,1.00 -0872,+030.00,+00.00,01.00,000.00,1.00 -0873,+030.00,+00.00,01.00,000.00,1.00 -0874,+030.00,+00.00,01.00,000.00,1.00 -0875,+030.00,+00.00,01.00,000.00,1.00 -0876,+030.00,+00.00,01.00,000.00,1.00 -0877,+030.00,+00.00,01.00,000.00,1.00 -0878,+030.00,+00.00,01.00,000.00,1.00 -0879,+030.00,+00.00,01.00,000.00,1.00 -0880,+030.00,+00.00,01.00,000.00,1.00 -0881,+030.00,+00.00,01.00,000.00,1.00 -0882,+030.00,+00.00,01.00,000.00,1.00 -0883,+030.00,+00.00,01.00,000.00,1.00 -0884,+030.00,+00.00,01.00,000.00,1.00 -0885,+030.00,+00.00,01.00,000.00,1.00 -0886,+030.00,+00.00,01.00,000.00,1.00 -0887,+030.00,+00.00,01.00,000.00,1.00 -0888,+030.00,+00.00,01.00,000.00,1.00 -0889,+030.00,+00.00,01.00,000.00,1.00 -0890,+030.00,+00.00,01.00,000.00,1.00 -0891,+030.00,+00.00,01.00,000.00,1.00 -0892,+030.00,+00.00,01.00,000.00,1.00 -0893,+030.00,+00.00,01.00,000.00,1.00 -0894,+030.00,+00.00,01.00,000.00,1.00 -0895,+030.00,+00.00,01.00,000.00,1.00 -0896,+030.00,+00.00,01.00,000.00,1.00 -0897,+030.00,+00.00,01.00,000.00,1.00 -0898,+030.00,+00.00,01.00,000.00,1.00 -0899,+030.00,+00.00,01.00,000.00,1.00 -0900,+030.00,+00.00,01.00,000.00,1.00 -0901,+030.00,+00.00,01.00,000.00,1.00 -0902,+030.00,+00.00,01.00,000.00,1.00 -0903,+030.00,+00.00,01.00,000.00,1.00 -0904,+030.00,+00.00,01.00,000.00,1.00 -0905,+030.00,+00.00,01.00,000.00,1.00 -0906,+030.00,+00.00,01.00,000.00,1.00 -0907,+030.00,+00.00,01.00,000.00,1.00 -0908,+030.00,+00.00,01.00,000.00,1.00 -0909,+030.00,+00.00,01.00,000.00,1.00 -0910,+030.00,+00.00,01.00,000.00,1.00 -0911,+030.00,+00.00,01.00,000.00,1.00 -0912,+030.00,+00.00,01.00,000.00,1.00 -0913,+030.00,+00.00,01.00,000.00,1.00 -0914,+030.00,+00.00,01.00,000.00,1.00 -0915,+030.00,+00.00,01.00,000.00,1.00 -0916,+030.00,+00.00,01.00,000.00,1.00 -0917,+030.00,+00.00,01.00,000.00,1.00 -0918,+030.00,+00.00,01.00,000.00,1.00 -0919,+030.00,+00.00,01.00,000.00,1.00 -0920,+030.00,+00.00,01.00,000.00,1.00 -0921,+030.00,+00.00,01.00,000.00,1.00 -0922,+030.00,+00.00,01.00,000.00,1.00 -0923,+030.00,+00.00,01.00,000.00,1.00 -0924,+030.00,+00.00,01.00,000.00,1.00 -0925,+030.00,+00.00,01.00,000.00,1.00 -0926,+030.00,+00.00,01.00,000.00,1.00 -0927,+030.00,+00.00,01.00,000.00,1.00 -0928,+030.00,+00.00,01.00,000.00,1.00 -0929,+030.00,+00.00,01.00,000.00,1.00 -0930,+030.00,+00.00,01.00,000.00,1.00 -0931,+030.00,+00.00,01.00,000.00,1.00 -0932,+030.00,+00.00,01.00,000.00,1.00 -0933,+030.00,+00.00,01.00,000.00,1.00 -0934,+030.00,+00.00,01.00,000.00,1.00 -0935,+030.00,+00.00,01.00,000.00,1.00 -0936,+030.00,+00.00,01.00,000.00,1.00 -0937,+030.00,+00.00,01.00,000.00,1.00 -0938,+030.00,+00.00,01.00,000.00,1.00 -0939,+030.00,+00.00,01.00,000.00,1.00 -0940,+030.00,+00.00,01.00,000.00,1.00 -0941,+030.00,+00.00,01.00,000.00,1.00 -0942,+030.00,+00.00,01.00,000.00,1.00 -0943,+030.00,+00.00,01.00,000.00,1.00 -0944,+030.00,+00.00,01.00,000.00,1.00 -0945,+030.00,+00.00,01.00,000.00,1.00 -0946,+030.00,+00.00,01.00,000.00,1.00 -0947,+030.00,+00.00,01.00,000.00,1.00 -0948,+030.00,+00.00,01.00,000.00,1.00 -0949,+030.00,+00.00,01.00,000.00,1.00 -0950,+030.00,+00.00,01.00,000.00,1.00 -0951,+030.00,+00.00,01.00,000.00,1.00 -0952,+030.00,+00.00,01.00,000.00,1.00 -0953,+030.00,+00.00,01.00,000.00,1.00 -0954,+030.00,+00.00,01.00,000.00,1.00 -0955,+030.00,+00.00,01.00,000.00,1.00 -0956,+030.00,+00.00,01.00,000.00,1.00 -0957,+030.00,+00.00,01.00,000.00,1.00 -0958,+030.00,+00.00,01.00,000.00,1.00 -0959,+030.00,+00.00,01.00,000.00,1.00 -0960,+030.00,+00.00,01.00,000.00,1.00 -0961,+030.00,+00.00,01.00,000.00,1.00 -0962,+030.00,+00.00,01.00,000.00,1.00 -0963,+030.00,+00.00,01.00,000.00,1.00 -0964,+030.00,+00.00,01.00,000.00,1.00 -0965,+030.00,+00.00,01.00,000.00,1.00 -0966,+030.00,+00.00,01.00,000.00,1.00 -0967,+030.00,+00.00,01.00,000.00,1.00 -0968,+030.00,+00.00,01.00,000.00,1.00 -0969,+030.00,+00.00,01.00,000.00,1.00 -0970,+030.00,+00.00,01.00,000.00,1.00 -0971,+030.00,+00.00,01.00,000.00,1.00 -0972,+030.00,+00.00,01.00,000.00,1.00 -0973,+030.00,+00.00,01.00,000.00,1.00 -0974,+030.00,+00.00,01.00,000.00,1.00 -0975,+030.00,+00.00,01.00,000.00,1.00 -0976,+030.00,+00.00,01.00,000.00,1.00 -0977,+030.00,+00.00,01.00,000.00,1.00 -0978,+030.00,+00.00,01.00,000.00,1.00 -0979,+030.00,+00.00,01.00,000.00,1.00 -0980,+030.00,+00.00,01.00,000.00,1.00 -0981,+030.00,+00.00,01.00,000.00,1.00 -0982,+030.00,+00.00,01.00,000.00,1.00 -0983,+030.00,+00.00,01.00,000.00,1.00 -0984,+030.00,+00.00,01.00,000.00,1.00 -0985,+030.00,+00.00,01.00,000.00,1.00 -0986,+030.00,+00.00,01.00,000.00,1.00 -0987,+030.00,+00.00,01.00,000.00,1.00 -0988,+030.00,+00.00,01.00,000.00,1.00 -0989,+030.00,+00.00,01.00,000.00,1.00 -0990,+030.00,+00.00,01.00,000.00,1.00 -0991,+030.00,+00.00,01.00,000.00,1.00 -0992,+030.00,+00.00,01.00,000.00,1.00 -0993,+030.00,+00.00,01.00,000.00,1.00 -0994,+030.00,+00.00,01.00,000.00,1.00 -0995,+030.00,+00.00,01.00,000.00,1.00 -0996,+030.00,+00.00,01.00,000.00,1.00 -0997,+030.00,+00.00,01.00,000.00,1.00 -0998,+030.00,+00.00,01.00,000.00,1.00 -0999,+030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t07_ch1.csv b/scripts/td_object_renderer/metadata/csv/t07_ch1.csv index 9816a5e6f3..c73471b79a 100644 --- a/scripts/td_object_renderer/metadata/csv/t07_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t07_ch1.csv @@ -1,1000 +1,1000 @@ -0000,+000.00,+00.00,01.00,000.00,1.00 -0001,+001.00,+00.00,01.00,000.00,1.00 -0002,+002.00,+00.00,01.00,000.00,1.00 -0003,+003.00,+00.00,01.00,000.00,1.00 -0004,+004.00,+00.00,01.00,000.00,1.00 -0005,+005.01,+00.00,01.00,000.00,1.00 -0006,+006.01,+00.00,01.00,000.00,1.00 -0007,+007.01,+00.00,01.00,000.00,1.00 -0008,+008.01,+00.00,01.00,000.00,1.00 -0009,+009.01,+00.00,01.00,000.00,1.00 -0010,+010.01,+00.00,01.00,000.00,1.00 -0011,+011.01,+00.00,01.00,000.00,1.00 -0012,+012.01,+00.00,01.00,000.00,1.00 -0013,+013.01,+00.00,01.00,000.00,1.00 -0014,+014.02,+00.00,01.00,000.00,1.00 -0015,+015.02,+00.00,01.00,000.00,1.00 -0016,+016.02,+00.00,01.00,000.00,1.00 -0017,+017.02,+00.00,01.00,000.00,1.00 -0018,+018.02,+00.00,01.00,000.00,1.00 -0019,+019.02,+00.00,01.00,000.00,1.00 -0020,+020.02,+00.00,01.00,000.00,1.00 -0021,+021.02,+00.00,01.00,000.00,1.00 -0022,+022.02,+00.00,01.00,000.00,1.00 -0023,+023.03,+00.00,01.00,000.00,1.00 -0024,+024.03,+00.00,01.00,000.00,1.00 -0025,+025.03,+00.00,01.00,000.00,1.00 -0026,+026.03,+00.00,01.00,000.00,1.00 -0027,+027.03,+00.00,01.00,000.00,1.00 -0028,+028.03,+00.00,01.00,000.00,1.00 -0029,+029.03,+00.00,01.00,000.00,1.00 -0030,+030.03,+00.00,01.00,000.00,1.00 -0031,+031.03,+00.00,01.00,000.00,1.00 -0032,+032.04,+00.00,01.00,000.00,1.00 -0033,+033.04,+00.00,01.00,000.00,1.00 -0034,+034.04,+00.00,01.00,000.00,1.00 -0035,+035.04,+00.00,01.00,000.00,1.00 -0036,+036.04,+00.00,01.00,000.00,1.00 -0037,+037.04,+00.00,01.00,000.00,1.00 -0038,+038.04,+00.00,01.00,000.00,1.00 -0039,+039.04,+00.00,01.00,000.00,1.00 -0040,+040.04,+00.00,01.00,000.00,1.00 -0041,+041.05,+00.00,01.00,000.00,1.00 -0042,+042.05,+00.00,01.00,000.00,1.00 -0043,+043.05,+00.00,01.00,000.00,1.00 -0044,+044.05,+00.00,01.00,000.00,1.00 -0045,+045.05,+00.00,01.00,000.00,1.00 -0046,+046.05,+00.00,01.00,000.00,1.00 -0047,+047.05,+00.00,01.00,000.00,1.00 -0048,+048.05,+00.00,01.00,000.00,1.00 -0049,+049.05,+00.00,01.00,000.00,1.00 -0050,+050.06,+00.00,01.00,000.00,1.00 -0051,+051.06,+00.00,01.00,000.00,1.00 -0052,+052.06,+00.00,01.00,000.00,1.00 -0053,+053.06,+00.00,01.00,000.00,1.00 -0054,+054.06,+00.00,01.00,000.00,1.00 -0055,+055.06,+00.00,01.00,000.00,1.00 -0056,+056.06,+00.00,01.00,000.00,1.00 -0057,+057.06,+00.00,01.00,000.00,1.00 -0058,+058.06,+00.00,01.00,000.00,1.00 -0059,+059.07,+00.00,01.00,000.00,1.00 -0060,+060.07,+00.00,01.00,000.00,1.00 -0061,+061.07,+00.00,01.00,000.00,1.00 -0062,+062.07,+00.00,01.00,000.00,1.00 -0063,+063.07,+00.00,01.00,000.00,1.00 -0064,+064.07,+00.00,01.00,000.00,1.00 -0065,+065.07,+00.00,01.00,000.00,1.00 -0066,+066.07,+00.00,01.00,000.00,1.00 -0067,+067.07,+00.00,01.00,000.00,1.00 -0068,+068.08,+00.00,01.00,000.00,1.00 -0069,+069.08,+00.00,01.00,000.00,1.00 -0070,+070.08,+00.00,01.00,000.00,1.00 -0071,+071.08,+00.00,01.00,000.00,1.00 -0072,+072.08,+00.00,01.00,000.00,1.00 -0073,+073.08,+00.00,01.00,000.00,1.00 -0074,+074.08,+00.00,01.00,000.00,1.00 -0075,+075.08,+00.00,01.00,000.00,1.00 -0076,+076.08,+00.00,01.00,000.00,1.00 -0077,+077.09,+00.00,01.00,000.00,1.00 -0078,+078.09,+00.00,01.00,000.00,1.00 -0079,+079.09,+00.00,01.00,000.00,1.00 -0080,+080.09,+00.00,01.00,000.00,1.00 -0081,+081.09,+00.00,01.00,000.00,1.00 -0082,+082.09,+00.00,01.00,000.00,1.00 -0083,+083.09,+00.00,01.00,000.00,1.00 -0084,+084.09,+00.00,01.00,000.00,1.00 -0085,+085.09,+00.00,01.00,000.00,1.00 -0086,+086.10,+00.00,01.00,000.00,1.00 -0087,+087.10,+00.00,01.00,000.00,1.00 -0088,+088.10,+00.00,01.00,000.00,1.00 -0089,+089.10,+00.00,01.00,000.00,1.00 -0090,+090.10,+00.00,01.00,000.00,1.00 -0091,+091.10,+00.00,01.00,000.00,1.00 -0092,+092.10,+00.00,01.00,000.00,1.00 -0093,+093.10,+00.00,01.00,000.00,1.00 -0094,+094.10,+00.00,01.00,000.00,1.00 -0095,+095.11,+00.00,01.00,000.00,1.00 -0096,+096.11,+00.00,01.00,000.00,1.00 -0097,+097.11,+00.00,01.00,000.00,1.00 -0098,+098.11,+00.00,01.00,000.00,1.00 -0099,+099.11,+00.00,01.00,000.00,1.00 -0100,+100.11,+00.00,01.00,000.00,1.00 -0101,+101.11,+00.00,01.00,000.00,1.00 -0102,+102.11,+00.00,01.00,000.00,1.00 -0103,+103.11,+00.00,01.00,000.00,1.00 -0104,+104.12,+00.00,01.00,000.00,1.00 -0105,+105.12,+00.00,01.00,000.00,1.00 -0106,+106.12,+00.00,01.00,000.00,1.00 -0107,+107.12,+00.00,01.00,000.00,1.00 -0108,+108.12,+00.00,01.00,000.00,1.00 -0109,+109.12,+00.00,01.00,000.00,1.00 -0110,+110.12,+00.00,01.00,000.00,1.00 -0111,+111.12,+00.00,01.00,000.00,1.00 -0112,+112.12,+00.00,01.00,000.00,1.00 -0113,+113.13,+00.00,01.00,000.00,1.00 -0114,+114.13,+00.00,01.00,000.00,1.00 -0115,+115.13,+00.00,01.00,000.00,1.00 -0116,+116.13,+00.00,01.00,000.00,1.00 -0117,+117.13,+00.00,01.00,000.00,1.00 -0118,+118.13,+00.00,01.00,000.00,1.00 -0119,+119.13,+00.00,01.00,000.00,1.00 -0120,+120.13,+00.00,01.00,000.00,1.00 -0121,+121.13,+00.00,01.00,000.00,1.00 -0122,+122.14,+00.00,01.00,000.00,1.00 -0123,+123.14,+00.00,01.00,000.00,1.00 -0124,+124.14,+00.00,01.00,000.00,1.00 -0125,+125.14,+00.00,01.00,000.00,1.00 -0126,+126.14,+00.00,01.00,000.00,1.00 -0127,+127.14,+00.00,01.00,000.00,1.00 -0128,+128.14,+00.00,01.00,000.00,1.00 -0129,+129.14,+00.00,01.00,000.00,1.00 -0130,+130.14,+00.00,01.00,000.00,1.00 -0131,+131.15,+00.00,01.00,000.00,1.00 -0132,+132.15,+00.00,01.00,000.00,1.00 -0133,+133.15,+00.00,01.00,000.00,1.00 -0134,+134.15,+00.00,01.00,000.00,1.00 -0135,+135.15,+00.00,01.00,000.00,1.00 -0136,+136.15,+00.00,01.00,000.00,1.00 -0137,+137.15,+00.00,01.00,000.00,1.00 -0138,+138.15,+00.00,01.00,000.00,1.00 -0139,+139.15,+00.00,01.00,000.00,1.00 -0140,+140.16,+00.00,01.00,000.00,1.00 -0141,+141.16,+00.00,01.00,000.00,1.00 -0142,+142.16,+00.00,01.00,000.00,1.00 -0143,+143.16,+00.00,01.00,000.00,1.00 -0144,+144.16,+00.00,01.00,000.00,1.00 -0145,+145.16,+00.00,01.00,000.00,1.00 -0146,+146.16,+00.00,01.00,000.00,1.00 -0147,+147.16,+00.00,01.00,000.00,1.00 -0148,+148.16,+00.00,01.00,000.00,1.00 -0149,+149.17,+00.00,01.00,000.00,1.00 -0150,+150.17,+00.00,01.00,000.00,1.00 -0151,+151.17,+00.00,01.00,000.00,1.00 -0152,+152.17,+00.00,01.00,000.00,1.00 -0153,+153.17,+00.00,01.00,000.00,1.00 -0154,+154.17,+00.00,01.00,000.00,1.00 -0155,+155.17,+00.00,01.00,000.00,1.00 -0156,+156.17,+00.00,01.00,000.00,1.00 -0157,+157.17,+00.00,01.00,000.00,1.00 -0158,+158.18,+00.00,01.00,000.00,1.00 -0159,+159.18,+00.00,01.00,000.00,1.00 -0160,+160.18,+00.00,01.00,000.00,1.00 -0161,+161.18,+00.00,01.00,000.00,1.00 -0162,+162.18,+00.00,01.00,000.00,1.00 -0163,+163.18,+00.00,01.00,000.00,1.00 -0164,+164.18,+00.00,01.00,000.00,1.00 -0165,+165.18,+00.00,01.00,000.00,1.00 -0166,+166.18,+00.00,01.00,000.00,1.00 -0167,+167.19,+00.00,01.00,000.00,1.00 -0168,+168.19,+00.00,01.00,000.00,1.00 -0169,+169.19,+00.00,01.00,000.00,1.00 -0170,+170.19,+00.00,01.00,000.00,1.00 -0171,+171.19,+00.00,01.00,000.00,1.00 -0172,+172.19,+00.00,01.00,000.00,1.00 -0173,+173.19,+00.00,01.00,000.00,1.00 -0174,+174.19,+00.00,01.00,000.00,1.00 -0175,+175.19,+00.00,01.00,000.00,1.00 -0176,+176.20,+00.00,01.00,000.00,1.00 -0177,+177.20,+00.00,01.00,000.00,1.00 -0178,+178.20,+00.00,01.00,000.00,1.00 -0179,+179.20,+00.00,01.00,000.00,1.00 -0180,-179.80,+00.00,01.00,000.00,1.00 -0181,-178.80,+00.00,01.00,000.00,1.00 -0182,-177.80,+00.00,01.00,000.00,1.00 -0183,-176.80,+00.00,01.00,000.00,1.00 -0184,-175.80,+00.00,01.00,000.00,1.00 -0185,-174.79,+00.00,01.00,000.00,1.00 -0186,-173.79,+00.00,01.00,000.00,1.00 -0187,-172.79,+00.00,01.00,000.00,1.00 -0188,-171.79,+00.00,01.00,000.00,1.00 -0189,-170.79,+00.00,01.00,000.00,1.00 -0190,-169.79,+00.00,01.00,000.00,1.00 -0191,-168.79,+00.00,01.00,000.00,1.00 -0192,-167.79,+00.00,01.00,000.00,1.00 -0193,-166.79,+00.00,01.00,000.00,1.00 -0194,-165.78,+00.00,01.00,000.00,1.00 -0195,-164.78,+00.00,01.00,000.00,1.00 -0196,-163.78,+00.00,01.00,000.00,1.00 -0197,-162.78,+00.00,01.00,000.00,1.00 -0198,-161.78,+00.00,01.00,000.00,1.00 -0199,-160.78,+00.00,01.00,000.00,1.00 -0200,-159.78,+00.00,01.00,000.00,1.00 -0201,-158.78,+00.00,01.00,000.00,1.00 -0202,-157.78,+00.00,01.00,000.00,1.00 -0203,-156.77,+00.00,01.00,000.00,1.00 -0204,-155.77,+00.00,01.00,000.00,1.00 -0205,-154.77,+00.00,01.00,000.00,1.00 -0206,-153.77,+00.00,01.00,000.00,1.00 -0207,-152.77,+00.00,01.00,000.00,1.00 -0208,-151.77,+00.00,01.00,000.00,1.00 -0209,-150.77,+00.00,01.00,000.00,1.00 -0210,-149.77,+00.00,01.00,000.00,1.00 -0211,-148.77,+00.00,01.00,000.00,1.00 -0212,-147.76,+00.00,01.00,000.00,1.00 -0213,-146.76,+00.00,01.00,000.00,1.00 -0214,-145.76,+00.00,01.00,000.00,1.00 -0215,-144.76,+00.00,01.00,000.00,1.00 -0216,-143.76,+00.00,01.00,000.00,1.00 -0217,-142.76,+00.00,01.00,000.00,1.00 -0218,-141.76,+00.00,01.00,000.00,1.00 -0219,-140.76,+00.00,01.00,000.00,1.00 -0220,-139.76,+00.00,01.00,000.00,1.00 -0221,-138.75,+00.00,01.00,000.00,1.00 -0222,-137.75,+00.00,01.00,000.00,1.00 -0223,-136.75,+00.00,01.00,000.00,1.00 -0224,-135.75,+00.00,01.00,000.00,1.00 -0225,-134.75,+00.00,01.00,000.00,1.00 -0226,-133.75,+00.00,01.00,000.00,1.00 -0227,-132.75,+00.00,01.00,000.00,1.00 -0228,-131.75,+00.00,01.00,000.00,1.00 -0229,-130.75,+00.00,01.00,000.00,1.00 -0230,-129.74,+00.00,01.00,000.00,1.00 -0231,-128.74,+00.00,01.00,000.00,1.00 -0232,-127.74,+00.00,01.00,000.00,1.00 -0233,-126.74,+00.00,01.00,000.00,1.00 -0234,-125.74,+00.00,01.00,000.00,1.00 -0235,-124.74,+00.00,01.00,000.00,1.00 -0236,-123.74,+00.00,01.00,000.00,1.00 -0237,-122.74,+00.00,01.00,000.00,1.00 -0238,-121.74,+00.00,01.00,000.00,1.00 -0239,-120.73,+00.00,01.00,000.00,1.00 -0240,-119.73,+00.00,01.00,000.00,1.00 -0241,-118.73,+00.00,01.00,000.00,1.00 -0242,-117.73,+00.00,01.00,000.00,1.00 -0243,-116.73,+00.00,01.00,000.00,1.00 -0244,-115.73,+00.00,01.00,000.00,1.00 -0245,-114.73,+00.00,01.00,000.00,1.00 -0246,-113.73,+00.00,01.00,000.00,1.00 -0247,-112.73,+00.00,01.00,000.00,1.00 -0248,-111.72,+00.00,01.00,000.00,1.00 -0249,-110.72,+00.00,01.00,000.00,1.00 -0250,-109.72,+00.00,01.00,000.00,1.00 -0251,-108.72,+00.00,01.00,000.00,1.00 -0252,-107.72,+00.00,01.00,000.00,1.00 -0253,-106.72,+00.00,01.00,000.00,1.00 -0254,-105.72,+00.00,01.00,000.00,1.00 -0255,-104.72,+00.00,01.00,000.00,1.00 -0256,-103.72,+00.00,01.00,000.00,1.00 -0257,-102.71,+00.00,01.00,000.00,1.00 -0258,-101.71,+00.00,01.00,000.00,1.00 -0259,-100.71,+00.00,01.00,000.00,1.00 -0260,-099.71,+00.00,01.00,000.00,1.00 -0261,-098.71,+00.00,01.00,000.00,1.00 -0262,-097.71,+00.00,01.00,000.00,1.00 -0263,-096.71,+00.00,01.00,000.00,1.00 -0264,-095.71,+00.00,01.00,000.00,1.00 -0265,-094.71,+00.00,01.00,000.00,1.00 -0266,-093.70,+00.00,01.00,000.00,1.00 -0267,-092.70,+00.00,01.00,000.00,1.00 -0268,-091.70,+00.00,01.00,000.00,1.00 -0269,-090.70,+00.00,01.00,000.00,1.00 -0270,-089.70,+00.00,01.00,000.00,1.00 -0271,-088.70,+00.00,01.00,000.00,1.00 -0272,-087.70,+00.00,01.00,000.00,1.00 -0273,-086.70,+00.00,01.00,000.00,1.00 -0274,-085.70,+00.00,01.00,000.00,1.00 -0275,-084.69,+00.00,01.00,000.00,1.00 -0276,-083.69,+00.00,01.00,000.00,1.00 -0277,-082.69,+00.00,01.00,000.00,1.00 -0278,-081.69,+00.00,01.00,000.00,1.00 -0279,-080.69,+00.00,01.00,000.00,1.00 -0280,-079.69,+00.00,01.00,000.00,1.00 -0281,-078.69,+00.00,01.00,000.00,1.00 -0282,-077.69,+00.00,01.00,000.00,1.00 -0283,-076.69,+00.00,01.00,000.00,1.00 -0284,-075.68,+00.00,01.00,000.00,1.00 -0285,-074.68,+00.00,01.00,000.00,1.00 -0286,-073.68,+00.00,01.00,000.00,1.00 -0287,-072.68,+00.00,01.00,000.00,1.00 -0288,-071.68,+00.00,01.00,000.00,1.00 -0289,-070.68,+00.00,01.00,000.00,1.00 -0290,-069.68,+00.00,01.00,000.00,1.00 -0291,-068.68,+00.00,01.00,000.00,1.00 -0292,-067.68,+00.00,01.00,000.00,1.00 -0293,-066.67,+00.00,01.00,000.00,1.00 -0294,-065.67,+00.00,01.00,000.00,1.00 -0295,-064.67,+00.00,01.00,000.00,1.00 -0296,-063.67,+00.00,01.00,000.00,1.00 -0297,-062.67,+00.00,01.00,000.00,1.00 -0298,-061.67,+00.00,01.00,000.00,1.00 -0299,-060.67,+00.00,01.00,000.00,1.00 -0300,-059.67,+00.00,01.00,000.00,1.00 -0301,-058.67,+00.00,01.00,000.00,1.00 -0302,-057.66,+00.00,01.00,000.00,1.00 -0303,-056.66,+00.00,01.00,000.00,1.00 -0304,-055.66,+00.00,01.00,000.00,1.00 -0305,-054.66,+00.00,01.00,000.00,1.00 -0306,-053.66,+00.00,01.00,000.00,1.00 -0307,-052.66,+00.00,01.00,000.00,1.00 -0308,-051.66,+00.00,01.00,000.00,1.00 -0309,-050.66,+00.00,01.00,000.00,1.00 -0310,-049.66,+00.00,01.00,000.00,1.00 -0311,-048.65,+00.00,01.00,000.00,1.00 -0312,-047.65,+00.00,01.00,000.00,1.00 -0313,-046.65,+00.00,01.00,000.00,1.00 -0314,-045.65,+00.00,01.00,000.00,1.00 -0315,-044.65,+00.00,01.00,000.00,1.00 -0316,-043.65,+00.00,01.00,000.00,1.00 -0317,-042.65,+00.00,01.00,000.00,1.00 -0318,-041.65,+00.00,01.00,000.00,1.00 -0319,-040.65,+00.00,01.00,000.00,1.00 -0320,-039.64,+00.00,01.00,000.00,1.00 -0321,-038.64,+00.00,01.00,000.00,1.00 -0322,-037.64,+00.00,01.00,000.00,1.00 -0323,-036.64,+00.00,01.00,000.00,1.00 -0324,-035.64,+00.00,01.00,000.00,1.00 -0325,-034.64,+00.00,01.00,000.00,1.00 -0326,-033.64,+00.00,01.00,000.00,1.00 -0327,-032.64,+00.00,01.00,000.00,1.00 -0328,-031.64,+00.00,01.00,000.00,1.00 -0329,-030.63,+00.00,01.00,000.00,1.00 -0330,-029.63,+00.00,01.00,000.00,1.00 -0331,-028.63,+00.00,01.00,000.00,1.00 -0332,-027.63,+00.00,01.00,000.00,1.00 -0333,-026.63,+00.00,01.00,000.00,1.00 -0334,-025.63,+00.00,01.00,000.00,1.00 -0335,-024.63,+00.00,01.00,000.00,1.00 -0336,-023.63,+00.00,01.00,000.00,1.00 -0337,-022.63,+00.00,01.00,000.00,1.00 -0338,-021.62,+00.00,01.00,000.00,1.00 -0339,-020.62,+00.00,01.00,000.00,1.00 -0340,-019.62,+00.00,01.00,000.00,1.00 -0341,-018.62,+00.00,01.00,000.00,1.00 -0342,-017.62,+00.00,01.00,000.00,1.00 -0343,-016.62,+00.00,01.00,000.00,1.00 -0344,-015.62,+00.00,01.00,000.00,1.00 -0345,-014.62,+00.00,01.00,000.00,1.00 -0346,-013.62,+00.00,01.00,000.00,1.00 -0347,-012.61,+00.00,01.00,000.00,1.00 -0348,-011.61,+00.00,01.00,000.00,1.00 -0349,-010.61,+00.00,01.00,000.00,1.00 -0350,-009.61,+00.00,01.00,000.00,1.00 -0351,-008.61,+00.00,01.00,000.00,1.00 -0352,-007.61,+00.00,01.00,000.00,1.00 -0353,-006.61,+00.00,01.00,000.00,1.00 -0354,-005.61,+00.00,01.00,000.00,1.00 -0355,-004.61,+00.00,01.00,000.00,1.00 -0356,-003.60,+00.00,01.00,000.00,1.00 -0357,-002.60,+00.00,01.00,000.00,1.00 -0358,-001.60,+00.00,01.00,000.00,1.00 -0359,-000.60,+00.00,01.00,000.00,1.00 -0360,+000.40,+00.00,01.00,000.00,1.00 -0361,+001.40,+00.00,01.00,000.00,1.00 -0362,+002.40,+00.00,01.00,000.00,1.00 -0363,+003.40,+00.00,01.00,000.00,1.00 -0364,+004.40,+00.00,01.00,000.00,1.00 -0365,+005.41,+00.00,01.00,000.00,1.00 -0366,+006.41,+00.00,01.00,000.00,1.00 -0367,+007.41,+00.00,01.00,000.00,1.00 -0368,+008.41,+00.00,01.00,000.00,1.00 -0369,+009.41,+00.00,01.00,000.00,1.00 -0370,+010.41,+00.00,01.00,000.00,1.00 -0371,+011.41,+00.00,01.00,000.00,1.00 -0372,+012.41,+00.00,01.00,000.00,1.00 -0373,+013.41,+00.00,01.00,000.00,1.00 -0374,+014.42,+00.00,01.00,000.00,1.00 -0375,+015.42,+00.00,01.00,000.00,1.00 -0376,+016.42,+00.00,01.00,000.00,1.00 -0377,+017.42,+00.00,01.00,000.00,1.00 -0378,+018.42,+00.00,01.00,000.00,1.00 -0379,+019.42,+00.00,01.00,000.00,1.00 -0380,+020.42,+00.00,01.00,000.00,1.00 -0381,+021.42,+00.00,01.00,000.00,1.00 -0382,+022.42,+00.00,01.00,000.00,1.00 -0383,+023.43,+00.00,01.00,000.00,1.00 -0384,+024.43,+00.00,01.00,000.00,1.00 -0385,+025.43,+00.00,01.00,000.00,1.00 -0386,+026.43,+00.00,01.00,000.00,1.00 -0387,+027.43,+00.00,01.00,000.00,1.00 -0388,+028.43,+00.00,01.00,000.00,1.00 -0389,+029.43,+00.00,01.00,000.00,1.00 -0390,+030.43,+00.00,01.00,000.00,1.00 -0391,+031.43,+00.00,01.00,000.00,1.00 -0392,+032.44,+00.00,01.00,000.00,1.00 -0393,+033.44,+00.00,01.00,000.00,1.00 -0394,+034.44,+00.00,01.00,000.00,1.00 -0395,+035.44,+00.00,01.00,000.00,1.00 -0396,+036.44,+00.00,01.00,000.00,1.00 -0397,+037.44,+00.00,01.00,000.00,1.00 -0398,+038.44,+00.00,01.00,000.00,1.00 -0399,+039.44,+00.00,01.00,000.00,1.00 -0400,+040.44,+00.00,01.00,000.00,1.00 -0401,+041.45,+00.00,01.00,000.00,1.00 -0402,+042.45,+00.00,01.00,000.00,1.00 -0403,+043.45,+00.00,01.00,000.00,1.00 -0404,+044.45,+00.00,01.00,000.00,1.00 -0405,+045.45,+00.00,01.00,000.00,1.00 -0406,+046.45,+00.00,01.00,000.00,1.00 -0407,+047.45,+00.00,01.00,000.00,1.00 -0408,+048.45,+00.00,01.00,000.00,1.00 -0409,+049.45,+00.00,01.00,000.00,1.00 -0410,+050.46,+00.00,01.00,000.00,1.00 -0411,+051.46,+00.00,01.00,000.00,1.00 -0412,+052.46,+00.00,01.00,000.00,1.00 -0413,+053.46,+00.00,01.00,000.00,1.00 -0414,+054.46,+00.00,01.00,000.00,1.00 -0415,+055.46,+00.00,01.00,000.00,1.00 -0416,+056.46,+00.00,01.00,000.00,1.00 -0417,+057.46,+00.00,01.00,000.00,1.00 -0418,+058.46,+00.00,01.00,000.00,1.00 -0419,+059.47,+00.00,01.00,000.00,1.00 -0420,+060.47,+00.00,01.00,000.00,1.00 -0421,+061.47,+00.00,01.00,000.00,1.00 -0422,+062.47,+00.00,01.00,000.00,1.00 -0423,+063.47,+00.00,01.00,000.00,1.00 -0424,+064.47,+00.00,01.00,000.00,1.00 -0425,+065.47,+00.00,01.00,000.00,1.00 -0426,+066.47,+00.00,01.00,000.00,1.00 -0427,+067.47,+00.00,01.00,000.00,1.00 -0428,+068.48,+00.00,01.00,000.00,1.00 -0429,+069.48,+00.00,01.00,000.00,1.00 -0430,+070.48,+00.00,01.00,000.00,1.00 -0431,+071.48,+00.00,01.00,000.00,1.00 -0432,+072.48,+00.00,01.00,000.00,1.00 -0433,+073.48,+00.00,01.00,000.00,1.00 -0434,+074.48,+00.00,01.00,000.00,1.00 -0435,+075.48,+00.00,01.00,000.00,1.00 -0436,+076.48,+00.00,01.00,000.00,1.00 -0437,+077.49,+00.00,01.00,000.00,1.00 -0438,+078.49,+00.00,01.00,000.00,1.00 -0439,+079.49,+00.00,01.00,000.00,1.00 -0440,+080.49,+00.00,01.00,000.00,1.00 -0441,+081.49,+00.00,01.00,000.00,1.00 -0442,+082.49,+00.00,01.00,000.00,1.00 -0443,+083.49,+00.00,01.00,000.00,1.00 -0444,+084.49,+00.00,01.00,000.00,1.00 -0445,+085.49,+00.00,01.00,000.00,1.00 -0446,+086.50,+00.00,01.00,000.00,1.00 -0447,+087.50,+00.00,01.00,000.00,1.00 -0448,+088.50,+00.00,01.00,000.00,1.00 -0449,+089.50,+00.00,01.00,000.00,1.00 -0450,+090.50,+00.00,01.00,000.00,1.00 -0451,+091.50,+00.00,01.00,000.00,1.00 -0452,+092.50,+00.00,01.00,000.00,1.00 -0453,+093.50,+00.00,01.00,000.00,1.00 -0454,+094.51,+00.00,01.00,000.00,1.00 -0455,+095.51,+00.00,01.00,000.00,1.00 -0456,+096.51,+00.00,01.00,000.00,1.00 -0457,+097.51,+00.00,01.00,000.00,1.00 -0458,+098.51,+00.00,01.00,000.00,1.00 -0459,+099.51,+00.00,01.00,000.00,1.00 -0460,+100.51,+00.00,01.00,000.00,1.00 -0461,+101.51,+00.00,01.00,000.00,1.00 -0462,+102.51,+00.00,01.00,000.00,1.00 -0463,+103.52,+00.00,01.00,000.00,1.00 -0464,+104.52,+00.00,01.00,000.00,1.00 -0465,+105.52,+00.00,01.00,000.00,1.00 -0466,+106.52,+00.00,01.00,000.00,1.00 -0467,+107.52,+00.00,01.00,000.00,1.00 -0468,+108.52,+00.00,01.00,000.00,1.00 -0469,+109.52,+00.00,01.00,000.00,1.00 -0470,+110.52,+00.00,01.00,000.00,1.00 -0471,+111.52,+00.00,01.00,000.00,1.00 -0472,+112.53,+00.00,01.00,000.00,1.00 -0473,+113.53,+00.00,01.00,000.00,1.00 -0474,+114.53,+00.00,01.00,000.00,1.00 -0475,+115.53,+00.00,01.00,000.00,1.00 -0476,+116.53,+00.00,01.00,000.00,1.00 -0477,+117.53,+00.00,01.00,000.00,1.00 -0478,+118.53,+00.00,01.00,000.00,1.00 -0479,+119.53,+00.00,01.00,000.00,1.00 -0480,+120.53,+00.00,01.00,000.00,1.00 -0481,+121.54,+00.00,01.00,000.00,1.00 -0482,+122.54,+00.00,01.00,000.00,1.00 -0483,+123.54,+00.00,01.00,000.00,1.00 -0484,+124.54,+00.00,01.00,000.00,1.00 -0485,+125.54,+00.00,01.00,000.00,1.00 -0486,+126.54,+00.00,01.00,000.00,1.00 -0487,+127.54,+00.00,01.00,000.00,1.00 -0488,+128.54,+00.00,01.00,000.00,1.00 -0489,+129.54,+00.00,01.00,000.00,1.00 -0490,+130.55,+00.00,01.00,000.00,1.00 -0491,+131.55,+00.00,01.00,000.00,1.00 -0492,+132.55,+00.00,01.00,000.00,1.00 -0493,+133.55,+00.00,01.00,000.00,1.00 -0494,+134.55,+00.00,01.00,000.00,1.00 -0495,+135.55,+00.00,01.00,000.00,1.00 -0496,+136.55,+00.00,01.00,000.00,1.00 -0497,+137.55,+00.00,01.00,000.00,1.00 -0498,+138.55,+00.00,01.00,000.00,1.00 -0499,+139.56,+00.00,01.00,000.00,1.00 -0500,+140.56,+00.00,01.00,000.00,1.00 -0501,+141.56,+00.00,01.00,000.00,1.00 -0502,+142.56,+00.00,01.00,000.00,1.00 -0503,+143.56,+00.00,01.00,000.00,1.00 -0504,+144.56,+00.00,01.00,000.00,1.00 -0505,+145.56,+00.00,01.00,000.00,1.00 -0506,+146.56,+00.00,01.00,000.00,1.00 -0507,+147.56,+00.00,01.00,000.00,1.00 -0508,+148.57,+00.00,01.00,000.00,1.00 -0509,+149.57,+00.00,01.00,000.00,1.00 -0510,+150.57,+00.00,01.00,000.00,1.00 -0511,+151.57,+00.00,01.00,000.00,1.00 -0512,+152.57,+00.00,01.00,000.00,1.00 -0513,+153.57,+00.00,01.00,000.00,1.00 -0514,+154.57,+00.00,01.00,000.00,1.00 -0515,+155.57,+00.00,01.00,000.00,1.00 -0516,+156.57,+00.00,01.00,000.00,1.00 -0517,+157.58,+00.00,01.00,000.00,1.00 -0518,+158.58,+00.00,01.00,000.00,1.00 -0519,+159.58,+00.00,01.00,000.00,1.00 -0520,+160.58,+00.00,01.00,000.00,1.00 -0521,+161.58,+00.00,01.00,000.00,1.00 -0522,+162.58,+00.00,01.00,000.00,1.00 -0523,+163.58,+00.00,01.00,000.00,1.00 -0524,+164.58,+00.00,01.00,000.00,1.00 -0525,+165.58,+00.00,01.00,000.00,1.00 -0526,+166.59,+00.00,01.00,000.00,1.00 -0527,+167.59,+00.00,01.00,000.00,1.00 -0528,+168.59,+00.00,01.00,000.00,1.00 -0529,+169.59,+00.00,01.00,000.00,1.00 -0530,+170.59,+00.00,01.00,000.00,1.00 -0531,+171.59,+00.00,01.00,000.00,1.00 -0532,+172.59,+00.00,01.00,000.00,1.00 -0533,+173.59,+00.00,01.00,000.00,1.00 -0534,+174.59,+00.00,01.00,000.00,1.00 -0535,+175.60,+00.00,01.00,000.00,1.00 -0536,+176.60,+00.00,01.00,000.00,1.00 -0537,+177.60,+00.00,01.00,000.00,1.00 -0538,+178.60,+00.00,01.00,000.00,1.00 -0539,+179.60,+00.00,01.00,000.00,1.00 -0540,-179.40,+00.00,01.00,000.00,1.00 -0541,-178.40,+00.00,01.00,000.00,1.00 -0542,-177.40,+00.00,01.00,000.00,1.00 -0543,-176.40,+00.00,01.00,000.00,1.00 -0544,-175.39,+00.00,01.00,000.00,1.00 -0545,-174.39,+00.00,01.00,000.00,1.00 -0546,-173.39,+00.00,01.00,000.00,1.00 -0547,-172.39,+00.00,01.00,000.00,1.00 -0548,-171.39,+00.00,01.00,000.00,1.00 -0549,-170.39,+00.00,01.00,000.00,1.00 -0550,-169.39,+00.00,01.00,000.00,1.00 -0551,-168.39,+00.00,01.00,000.00,1.00 -0552,-167.39,+00.00,01.00,000.00,1.00 -0553,-166.38,+00.00,01.00,000.00,1.00 -0554,-165.38,+00.00,01.00,000.00,1.00 -0555,-164.38,+00.00,01.00,000.00,1.00 -0556,-163.38,+00.00,01.00,000.00,1.00 -0557,-162.38,+00.00,01.00,000.00,1.00 -0558,-161.38,+00.00,01.00,000.00,1.00 -0559,-160.38,+00.00,01.00,000.00,1.00 -0560,-159.38,+00.00,01.00,000.00,1.00 -0561,-158.38,+00.00,01.00,000.00,1.00 -0562,-157.37,+00.00,01.00,000.00,1.00 -0563,-156.37,+00.00,01.00,000.00,1.00 -0564,-155.37,+00.00,01.00,000.00,1.00 -0565,-154.37,+00.00,01.00,000.00,1.00 -0566,-153.37,+00.00,01.00,000.00,1.00 -0567,-152.37,+00.00,01.00,000.00,1.00 -0568,-151.37,+00.00,01.00,000.00,1.00 -0569,-150.37,+00.00,01.00,000.00,1.00 -0570,-149.37,+00.00,01.00,000.00,1.00 -0571,-148.36,+00.00,01.00,000.00,1.00 -0572,-147.36,+00.00,01.00,000.00,1.00 -0573,-146.36,+00.00,01.00,000.00,1.00 -0574,-145.36,+00.00,01.00,000.00,1.00 -0575,-144.36,+00.00,01.00,000.00,1.00 -0576,-143.36,+00.00,01.00,000.00,1.00 -0577,-142.36,+00.00,01.00,000.00,1.00 -0578,-141.36,+00.00,01.00,000.00,1.00 -0579,-140.36,+00.00,01.00,000.00,1.00 -0580,-139.35,+00.00,01.00,000.00,1.00 -0581,-138.35,+00.00,01.00,000.00,1.00 -0582,-137.35,+00.00,01.00,000.00,1.00 -0583,-136.35,+00.00,01.00,000.00,1.00 -0584,-135.35,+00.00,01.00,000.00,1.00 -0585,-134.35,+00.00,01.00,000.00,1.00 -0586,-133.35,+00.00,01.00,000.00,1.00 -0587,-132.35,+00.00,01.00,000.00,1.00 -0588,-131.35,+00.00,01.00,000.00,1.00 -0589,-130.34,+00.00,01.00,000.00,1.00 -0590,-129.34,+00.00,01.00,000.00,1.00 -0591,-128.34,+00.00,01.00,000.00,1.00 -0592,-127.34,+00.00,01.00,000.00,1.00 -0593,-126.34,+00.00,01.00,000.00,1.00 -0594,-125.34,+00.00,01.00,000.00,1.00 -0595,-124.34,+00.00,01.00,000.00,1.00 -0596,-123.34,+00.00,01.00,000.00,1.00 -0597,-122.34,+00.00,01.00,000.00,1.00 -0598,-121.33,+00.00,01.00,000.00,1.00 -0599,-120.33,+00.00,01.00,000.00,1.00 -0600,-119.33,+00.00,01.00,000.00,1.00 -0601,-118.33,+00.00,01.00,000.00,1.00 -0602,-117.33,+00.00,01.00,000.00,1.00 -0603,-116.33,+00.00,01.00,000.00,1.00 -0604,-115.33,+00.00,01.00,000.00,1.00 -0605,-114.33,+00.00,01.00,000.00,1.00 -0606,-113.33,+00.00,01.00,000.00,1.00 -0607,-112.32,+00.00,01.00,000.00,1.00 -0608,-111.32,+00.00,01.00,000.00,1.00 -0609,-110.32,+00.00,01.00,000.00,1.00 -0610,-109.32,+00.00,01.00,000.00,1.00 -0611,-108.32,+00.00,01.00,000.00,1.00 -0612,-107.32,+00.00,01.00,000.00,1.00 -0613,-106.32,+00.00,01.00,000.00,1.00 -0614,-105.32,+00.00,01.00,000.00,1.00 -0615,-104.32,+00.00,01.00,000.00,1.00 -0616,-103.31,+00.00,01.00,000.00,1.00 -0617,-102.31,+00.00,01.00,000.00,1.00 -0618,-101.31,+00.00,01.00,000.00,1.00 -0619,-100.31,+00.00,01.00,000.00,1.00 -0620,-099.31,+00.00,01.00,000.00,1.00 -0621,-098.31,+00.00,01.00,000.00,1.00 -0622,-097.31,+00.00,01.00,000.00,1.00 -0623,-096.31,+00.00,01.00,000.00,1.00 -0624,-095.31,+00.00,01.00,000.00,1.00 -0625,-094.30,+00.00,01.00,000.00,1.00 -0626,-093.30,+00.00,01.00,000.00,1.00 -0627,-092.30,+00.00,01.00,000.00,1.00 -0628,-091.30,+00.00,01.00,000.00,1.00 -0629,-090.30,+00.00,01.00,000.00,1.00 -0630,-089.30,+00.00,01.00,000.00,1.00 -0631,-088.30,+00.00,01.00,000.00,1.00 -0632,-087.30,+00.00,01.00,000.00,1.00 -0633,-086.30,+00.00,01.00,000.00,1.00 -0634,-085.29,+00.00,01.00,000.00,1.00 -0635,-084.29,+00.00,01.00,000.00,1.00 -0636,-083.29,+00.00,01.00,000.00,1.00 -0637,-082.29,+00.00,01.00,000.00,1.00 -0638,-081.29,+00.00,01.00,000.00,1.00 -0639,-080.29,+00.00,01.00,000.00,1.00 -0640,-079.29,+00.00,01.00,000.00,1.00 -0641,-078.29,+00.00,01.00,000.00,1.00 -0642,-077.29,+00.00,01.00,000.00,1.00 -0643,-076.28,+00.00,01.00,000.00,1.00 -0644,-075.28,+00.00,01.00,000.00,1.00 -0645,-074.28,+00.00,01.00,000.00,1.00 -0646,-073.28,+00.00,01.00,000.00,1.00 -0647,-072.28,+00.00,01.00,000.00,1.00 -0648,-071.28,+00.00,01.00,000.00,1.00 -0649,-070.28,+00.00,01.00,000.00,1.00 -0650,-069.28,+00.00,01.00,000.00,1.00 -0651,-068.28,+00.00,01.00,000.00,1.00 -0652,-067.27,+00.00,01.00,000.00,1.00 -0653,-066.27,+00.00,01.00,000.00,1.00 -0654,-065.27,+00.00,01.00,000.00,1.00 -0655,-064.27,+00.00,01.00,000.00,1.00 -0656,-063.27,+00.00,01.00,000.00,1.00 -0657,-062.27,+00.00,01.00,000.00,1.00 -0658,-061.27,+00.00,01.00,000.00,1.00 -0659,-060.27,+00.00,01.00,000.00,1.00 -0660,-059.27,+00.00,01.00,000.00,1.00 -0661,-058.26,+00.00,01.00,000.00,1.00 -0662,-057.26,+00.00,01.00,000.00,1.00 -0663,-056.26,+00.00,01.00,000.00,1.00 -0664,-055.26,+00.00,01.00,000.00,1.00 -0665,-054.26,+00.00,01.00,000.00,1.00 -0666,-053.26,+00.00,01.00,000.00,1.00 -0667,-052.26,+00.00,01.00,000.00,1.00 -0668,-051.26,+00.00,01.00,000.00,1.00 -0669,-050.26,+00.00,01.00,000.00,1.00 -0670,-049.25,+00.00,01.00,000.00,1.00 -0671,-048.25,+00.00,01.00,000.00,1.00 -0672,-047.25,+00.00,01.00,000.00,1.00 -0673,-046.25,+00.00,01.00,000.00,1.00 -0674,-045.25,+00.00,01.00,000.00,1.00 -0675,-044.25,+00.00,01.00,000.00,1.00 -0676,-043.25,+00.00,01.00,000.00,1.00 -0677,-042.25,+00.00,01.00,000.00,1.00 -0678,-041.25,+00.00,01.00,000.00,1.00 -0679,-040.24,+00.00,01.00,000.00,1.00 -0680,-039.24,+00.00,01.00,000.00,1.00 -0681,-038.24,+00.00,01.00,000.00,1.00 -0682,-037.24,+00.00,01.00,000.00,1.00 -0683,-036.24,+00.00,01.00,000.00,1.00 -0684,-035.24,+00.00,01.00,000.00,1.00 -0685,-034.24,+00.00,01.00,000.00,1.00 -0686,-033.24,+00.00,01.00,000.00,1.00 -0687,-032.24,+00.00,01.00,000.00,1.00 -0688,-031.23,+00.00,01.00,000.00,1.00 -0689,-030.23,+00.00,01.00,000.00,1.00 -0690,-029.23,+00.00,01.00,000.00,1.00 -0691,-028.23,+00.00,01.00,000.00,1.00 -0692,-027.23,+00.00,01.00,000.00,1.00 -0693,-026.23,+00.00,01.00,000.00,1.00 -0694,-025.23,+00.00,01.00,000.00,1.00 -0695,-024.23,+00.00,01.00,000.00,1.00 -0696,-023.23,+00.00,01.00,000.00,1.00 -0697,-022.22,+00.00,01.00,000.00,1.00 -0698,-021.22,+00.00,01.00,000.00,1.00 -0699,-020.22,+00.00,01.00,000.00,1.00 -0700,-019.22,+00.00,01.00,000.00,1.00 -0701,-018.22,+00.00,01.00,000.00,1.00 -0702,-017.22,+00.00,01.00,000.00,1.00 -0703,-016.22,+00.00,01.00,000.00,1.00 -0704,-015.22,+00.00,01.00,000.00,1.00 -0705,-014.22,+00.00,01.00,000.00,1.00 -0706,-013.21,+00.00,01.00,000.00,1.00 -0707,-012.21,+00.00,01.00,000.00,1.00 -0708,-011.21,+00.00,01.00,000.00,1.00 -0709,-010.21,+00.00,01.00,000.00,1.00 -0710,-009.21,+00.00,01.00,000.00,1.00 -0711,-008.21,+00.00,01.00,000.00,1.00 -0712,-007.21,+00.00,01.00,000.00,1.00 -0713,-006.21,+00.00,01.00,000.00,1.00 -0714,-005.21,+00.00,01.00,000.00,1.00 -0715,-004.20,+00.00,01.00,000.00,1.00 -0716,-003.20,+00.00,01.00,000.00,1.00 -0717,-002.20,+00.00,01.00,000.00,1.00 -0718,-001.20,+00.00,01.00,000.00,1.00 -0719,-000.20,+00.00,01.00,000.00,1.00 -0720,+000.80,+00.00,01.00,000.00,1.00 -0721,+001.80,+00.00,01.00,000.00,1.00 -0722,+002.80,+00.00,01.00,000.00,1.00 -0723,+003.80,+00.00,01.00,000.00,1.00 -0724,+004.81,+00.00,01.00,000.00,1.00 -0725,+005.81,+00.00,01.00,000.00,1.00 -0726,+006.81,+00.00,01.00,000.00,1.00 -0727,+007.81,+00.00,01.00,000.00,1.00 -0728,+008.81,+00.00,01.00,000.00,1.00 -0729,+009.81,+00.00,01.00,000.00,1.00 -0730,+010.81,+00.00,01.00,000.00,1.00 -0731,+011.81,+00.00,01.00,000.00,1.00 -0732,+012.81,+00.00,01.00,000.00,1.00 -0733,+013.82,+00.00,01.00,000.00,1.00 -0734,+014.82,+00.00,01.00,000.00,1.00 -0735,+015.82,+00.00,01.00,000.00,1.00 -0736,+016.82,+00.00,01.00,000.00,1.00 -0737,+017.82,+00.00,01.00,000.00,1.00 -0738,+018.82,+00.00,01.00,000.00,1.00 -0739,+019.82,+00.00,01.00,000.00,1.00 -0740,+020.82,+00.00,01.00,000.00,1.00 -0741,+021.82,+00.00,01.00,000.00,1.00 -0742,+022.83,+00.00,01.00,000.00,1.00 -0743,+023.83,+00.00,01.00,000.00,1.00 -0744,+024.83,+00.00,01.00,000.00,1.00 -0745,+025.83,+00.00,01.00,000.00,1.00 -0746,+026.83,+00.00,01.00,000.00,1.00 -0747,+027.83,+00.00,01.00,000.00,1.00 -0748,+028.83,+00.00,01.00,000.00,1.00 -0749,+029.83,+00.00,01.00,000.00,1.00 -0750,+030.83,+00.00,01.00,000.00,1.00 -0751,+031.84,+00.00,01.00,000.00,1.00 -0752,+032.84,+00.00,01.00,000.00,1.00 -0753,+033.84,+00.00,01.00,000.00,1.00 -0754,+034.84,+00.00,01.00,000.00,1.00 -0755,+035.84,+00.00,01.00,000.00,1.00 -0756,+036.84,+00.00,01.00,000.00,1.00 -0757,+037.84,+00.00,01.00,000.00,1.00 -0758,+038.84,+00.00,01.00,000.00,1.00 -0759,+039.84,+00.00,01.00,000.00,1.00 -0760,+040.85,+00.00,01.00,000.00,1.00 -0761,+041.85,+00.00,01.00,000.00,1.00 -0762,+042.85,+00.00,01.00,000.00,1.00 -0763,+043.85,+00.00,01.00,000.00,1.00 -0764,+044.85,+00.00,01.00,000.00,1.00 -0765,+045.85,+00.00,01.00,000.00,1.00 -0766,+046.85,+00.00,01.00,000.00,1.00 -0767,+047.85,+00.00,01.00,000.00,1.00 -0768,+048.85,+00.00,01.00,000.00,1.00 -0769,+049.86,+00.00,01.00,000.00,1.00 -0770,+050.86,+00.00,01.00,000.00,1.00 -0771,+051.86,+00.00,01.00,000.00,1.00 -0772,+052.86,+00.00,01.00,000.00,1.00 -0773,+053.86,+00.00,01.00,000.00,1.00 -0774,+054.86,+00.00,01.00,000.00,1.00 -0775,+055.86,+00.00,01.00,000.00,1.00 -0776,+056.86,+00.00,01.00,000.00,1.00 -0777,+057.86,+00.00,01.00,000.00,1.00 -0778,+058.87,+00.00,01.00,000.00,1.00 -0779,+059.87,+00.00,01.00,000.00,1.00 -0780,+060.87,+00.00,01.00,000.00,1.00 -0781,+061.87,+00.00,01.00,000.00,1.00 -0782,+062.87,+00.00,01.00,000.00,1.00 -0783,+063.87,+00.00,01.00,000.00,1.00 -0784,+064.87,+00.00,01.00,000.00,1.00 -0785,+065.87,+00.00,01.00,000.00,1.00 -0786,+066.87,+00.00,01.00,000.00,1.00 -0787,+067.88,+00.00,01.00,000.00,1.00 -0788,+068.88,+00.00,01.00,000.00,1.00 -0789,+069.88,+00.00,01.00,000.00,1.00 -0790,+070.88,+00.00,01.00,000.00,1.00 -0791,+071.88,+00.00,01.00,000.00,1.00 -0792,+072.88,+00.00,01.00,000.00,1.00 -0793,+073.88,+00.00,01.00,000.00,1.00 -0794,+074.88,+00.00,01.00,000.00,1.00 -0795,+075.88,+00.00,01.00,000.00,1.00 -0796,+076.89,+00.00,01.00,000.00,1.00 -0797,+077.89,+00.00,01.00,000.00,1.00 -0798,+078.89,+00.00,01.00,000.00,1.00 -0799,+079.89,+00.00,01.00,000.00,1.00 -0800,+080.89,+00.00,01.00,000.00,1.00 -0801,+081.89,+00.00,01.00,000.00,1.00 -0802,+082.89,+00.00,01.00,000.00,1.00 -0803,+083.89,+00.00,01.00,000.00,1.00 -0804,+084.89,+00.00,01.00,000.00,1.00 -0805,+085.90,+00.00,01.00,000.00,1.00 -0806,+086.90,+00.00,01.00,000.00,1.00 -0807,+087.90,+00.00,01.00,000.00,1.00 -0808,+088.90,+00.00,01.00,000.00,1.00 -0809,+089.90,+00.00,01.00,000.00,1.00 -0810,+090.90,+00.00,01.00,000.00,1.00 -0811,+091.90,+00.00,01.00,000.00,1.00 -0812,+092.90,+00.00,01.00,000.00,1.00 -0813,+093.90,+00.00,01.00,000.00,1.00 -0814,+094.91,+00.00,01.00,000.00,1.00 -0815,+095.91,+00.00,01.00,000.00,1.00 -0816,+096.91,+00.00,01.00,000.00,1.00 -0817,+097.91,+00.00,01.00,000.00,1.00 -0818,+098.91,+00.00,01.00,000.00,1.00 -0819,+099.91,+00.00,01.00,000.00,1.00 -0820,+100.91,+00.00,01.00,000.00,1.00 -0821,+101.91,+00.00,01.00,000.00,1.00 -0822,+102.91,+00.00,01.00,000.00,1.00 -0823,+103.92,+00.00,01.00,000.00,1.00 -0824,+104.92,+00.00,01.00,000.00,1.00 -0825,+105.92,+00.00,01.00,000.00,1.00 -0826,+106.92,+00.00,01.00,000.00,1.00 -0827,+107.92,+00.00,01.00,000.00,1.00 -0828,+108.92,+00.00,01.00,000.00,1.00 -0829,+109.92,+00.00,01.00,000.00,1.00 -0830,+110.92,+00.00,01.00,000.00,1.00 -0831,+111.92,+00.00,01.00,000.00,1.00 -0832,+112.93,+00.00,01.00,000.00,1.00 -0833,+113.93,+00.00,01.00,000.00,1.00 -0834,+114.93,+00.00,01.00,000.00,1.00 -0835,+115.93,+00.00,01.00,000.00,1.00 -0836,+116.93,+00.00,01.00,000.00,1.00 -0837,+117.93,+00.00,01.00,000.00,1.00 -0838,+118.93,+00.00,01.00,000.00,1.00 -0839,+119.93,+00.00,01.00,000.00,1.00 -0840,+120.93,+00.00,01.00,000.00,1.00 -0841,+121.94,+00.00,01.00,000.00,1.00 -0842,+122.94,+00.00,01.00,000.00,1.00 -0843,+123.94,+00.00,01.00,000.00,1.00 -0844,+124.94,+00.00,01.00,000.00,1.00 -0845,+125.94,+00.00,01.00,000.00,1.00 -0846,+126.94,+00.00,01.00,000.00,1.00 -0847,+127.94,+00.00,01.00,000.00,1.00 -0848,+128.94,+00.00,01.00,000.00,1.00 -0849,+129.94,+00.00,01.00,000.00,1.00 -0850,+130.95,+00.00,01.00,000.00,1.00 -0851,+131.95,+00.00,01.00,000.00,1.00 -0852,+132.95,+00.00,01.00,000.00,1.00 -0853,+133.95,+00.00,01.00,000.00,1.00 -0854,+134.95,+00.00,01.00,000.00,1.00 -0855,+135.95,+00.00,01.00,000.00,1.00 -0856,+136.95,+00.00,01.00,000.00,1.00 -0857,+137.95,+00.00,01.00,000.00,1.00 -0858,+138.95,+00.00,01.00,000.00,1.00 -0859,+139.96,+00.00,01.00,000.00,1.00 -0860,+140.96,+00.00,01.00,000.00,1.00 -0861,+141.96,+00.00,01.00,000.00,1.00 -0862,+142.96,+00.00,01.00,000.00,1.00 -0863,+143.96,+00.00,01.00,000.00,1.00 -0864,+144.96,+00.00,01.00,000.00,1.00 -0865,+145.96,+00.00,01.00,000.00,1.00 -0866,+146.96,+00.00,01.00,000.00,1.00 -0867,+147.96,+00.00,01.00,000.00,1.00 -0868,+148.97,+00.00,01.00,000.00,1.00 -0869,+149.97,+00.00,01.00,000.00,1.00 -0870,+150.97,+00.00,01.00,000.00,1.00 -0871,+151.97,+00.00,01.00,000.00,1.00 -0872,+152.97,+00.00,01.00,000.00,1.00 -0873,+153.97,+00.00,01.00,000.00,1.00 -0874,+154.97,+00.00,01.00,000.00,1.00 -0875,+155.97,+00.00,01.00,000.00,1.00 -0876,+156.97,+00.00,01.00,000.00,1.00 -0877,+157.98,+00.00,01.00,000.00,1.00 -0878,+158.98,+00.00,01.00,000.00,1.00 -0879,+159.98,+00.00,01.00,000.00,1.00 -0880,+160.98,+00.00,01.00,000.00,1.00 -0881,+161.98,+00.00,01.00,000.00,1.00 -0882,+162.98,+00.00,01.00,000.00,1.00 -0883,+163.98,+00.00,01.00,000.00,1.00 -0884,+164.98,+00.00,01.00,000.00,1.00 -0885,+165.98,+00.00,01.00,000.00,1.00 -0886,+166.99,+00.00,01.00,000.00,1.00 -0887,+167.99,+00.00,01.00,000.00,1.00 -0888,+168.99,+00.00,01.00,000.00,1.00 -0889,+169.99,+00.00,01.00,000.00,1.00 -0890,+170.99,+00.00,01.00,000.00,1.00 -0891,+171.99,+00.00,01.00,000.00,1.00 -0892,+172.99,+00.00,01.00,000.00,1.00 -0893,+173.99,+00.00,01.00,000.00,1.00 -0894,+174.99,+00.00,01.00,000.00,1.00 -0895,+176.00,+00.00,01.00,000.00,1.00 -0896,+177.00,+00.00,01.00,000.00,1.00 -0897,+178.00,+00.00,01.00,000.00,1.00 -0898,+179.00,+00.00,01.00,000.00,1.00 -0899,+180.00,+00.00,01.00,000.00,1.00 -0900,-179.00,+00.00,01.00,000.00,1.00 -0901,-178.00,+00.00,01.00,000.00,1.00 -0902,-177.00,+00.00,01.00,000.00,1.00 -0903,-176.00,+00.00,01.00,000.00,1.00 -0904,-174.99,+00.00,01.00,000.00,1.00 -0905,-173.99,+00.00,01.00,000.00,1.00 -0906,-172.99,+00.00,01.00,000.00,1.00 -0907,-171.99,+00.00,01.00,000.00,1.00 -0908,-170.99,+00.00,01.00,000.00,1.00 -0909,-169.99,+00.00,01.00,000.00,1.00 -0910,-168.99,+00.00,01.00,000.00,1.00 -0911,-167.99,+00.00,01.00,000.00,1.00 -0912,-166.99,+00.00,01.00,000.00,1.00 -0913,-165.98,+00.00,01.00,000.00,1.00 -0914,-164.98,+00.00,01.00,000.00,1.00 -0915,-163.98,+00.00,01.00,000.00,1.00 -0916,-162.98,+00.00,01.00,000.00,1.00 -0917,-161.98,+00.00,01.00,000.00,1.00 -0918,-160.98,+00.00,01.00,000.00,1.00 -0919,-159.98,+00.00,01.00,000.00,1.00 -0920,-158.98,+00.00,01.00,000.00,1.00 -0921,-157.98,+00.00,01.00,000.00,1.00 -0922,-156.97,+00.00,01.00,000.00,1.00 -0923,-155.97,+00.00,01.00,000.00,1.00 -0924,-154.97,+00.00,01.00,000.00,1.00 -0925,-153.97,+00.00,01.00,000.00,1.00 -0926,-152.97,+00.00,01.00,000.00,1.00 -0927,-151.97,+00.00,01.00,000.00,1.00 -0928,-150.97,+00.00,01.00,000.00,1.00 -0929,-149.97,+00.00,01.00,000.00,1.00 -0930,-148.97,+00.00,01.00,000.00,1.00 -0931,-147.96,+00.00,01.00,000.00,1.00 -0932,-146.96,+00.00,01.00,000.00,1.00 -0933,-145.96,+00.00,01.00,000.00,1.00 -0934,-144.96,+00.00,01.00,000.00,1.00 -0935,-143.96,+00.00,01.00,000.00,1.00 -0936,-142.96,+00.00,01.00,000.00,1.00 -0937,-141.96,+00.00,01.00,000.00,1.00 -0938,-140.96,+00.00,01.00,000.00,1.00 -0939,-139.96,+00.00,01.00,000.00,1.00 -0940,-138.95,+00.00,01.00,000.00,1.00 -0941,-137.95,+00.00,01.00,000.00,1.00 -0942,-136.95,+00.00,01.00,000.00,1.00 -0943,-135.95,+00.00,01.00,000.00,1.00 -0944,-134.95,+00.00,01.00,000.00,1.00 -0945,-133.95,+00.00,01.00,000.00,1.00 -0946,-132.95,+00.00,01.00,000.00,1.00 -0947,-131.95,+00.00,01.00,000.00,1.00 -0948,-130.95,+00.00,01.00,000.00,1.00 -0949,-129.94,+00.00,01.00,000.00,1.00 -0950,-128.94,+00.00,01.00,000.00,1.00 -0951,-127.94,+00.00,01.00,000.00,1.00 -0952,-126.94,+00.00,01.00,000.00,1.00 -0953,-125.94,+00.00,01.00,000.00,1.00 -0954,-124.94,+00.00,01.00,000.00,1.00 -0955,-123.94,+00.00,01.00,000.00,1.00 -0956,-122.94,+00.00,01.00,000.00,1.00 -0957,-121.94,+00.00,01.00,000.00,1.00 -0958,-120.93,+00.00,01.00,000.00,1.00 -0959,-119.93,+00.00,01.00,000.00,1.00 -0960,-118.93,+00.00,01.00,000.00,1.00 -0961,-117.93,+00.00,01.00,000.00,1.00 -0962,-116.93,+00.00,01.00,000.00,1.00 -0963,-115.93,+00.00,01.00,000.00,1.00 -0964,-114.93,+00.00,01.00,000.00,1.00 -0965,-113.93,+00.00,01.00,000.00,1.00 -0966,-112.93,+00.00,01.00,000.00,1.00 -0967,-111.92,+00.00,01.00,000.00,1.00 -0968,-110.92,+00.00,01.00,000.00,1.00 -0969,-109.92,+00.00,01.00,000.00,1.00 -0970,-108.92,+00.00,01.00,000.00,1.00 -0971,-107.92,+00.00,01.00,000.00,1.00 -0972,-106.92,+00.00,01.00,000.00,1.00 -0973,-105.92,+00.00,01.00,000.00,1.00 -0974,-104.92,+00.00,01.00,000.00,1.00 -0975,-103.92,+00.00,01.00,000.00,1.00 -0976,-102.91,+00.00,01.00,000.00,1.00 -0977,-101.91,+00.00,01.00,000.00,1.00 -0978,-100.91,+00.00,01.00,000.00,1.00 -0979,-099.91,+00.00,01.00,000.00,1.00 -0980,-098.91,+00.00,01.00,000.00,1.00 -0981,-097.91,+00.00,01.00,000.00,1.00 -0982,-096.91,+00.00,01.00,000.00,1.00 -0983,-095.91,+00.00,01.00,000.00,1.00 -0984,-094.91,+00.00,01.00,000.00,1.00 -0985,-093.90,+00.00,01.00,000.00,1.00 -0986,-092.90,+00.00,01.00,000.00,1.00 -0987,-091.90,+00.00,01.00,000.00,1.00 -0988,-090.90,+00.00,01.00,000.00,1.00 -0989,-089.90,+00.00,01.00,000.00,1.00 -0990,-088.90,+00.00,01.00,000.00,1.00 -0991,-087.90,+00.00,01.00,000.00,1.00 -0992,-086.90,+00.00,01.00,000.00,1.00 -0993,-085.90,+00.00,01.00,000.00,1.00 -0994,-084.89,+00.00,01.00,000.00,1.00 -0995,-083.89,+00.00,01.00,000.00,1.00 -0996,-082.89,+00.00,01.00,000.00,1.00 -0997,-081.89,+00.00,01.00,000.00,1.00 -0998,-080.89,+00.00,01.00,000.00,1.00 -0999,-079.89,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++001.00,+00.00,01.00,000.00,1.00 ++002.00,+00.00,01.00,000.00,1.00 ++003.00,+00.00,01.00,000.00,1.00 ++004.00,+00.00,01.00,000.00,1.00 ++005.01,+00.00,01.00,000.00,1.00 ++006.01,+00.00,01.00,000.00,1.00 ++007.01,+00.00,01.00,000.00,1.00 ++008.01,+00.00,01.00,000.00,1.00 ++009.01,+00.00,01.00,000.00,1.00 ++010.01,+00.00,01.00,000.00,1.00 ++011.01,+00.00,01.00,000.00,1.00 ++012.01,+00.00,01.00,000.00,1.00 ++013.01,+00.00,01.00,000.00,1.00 ++014.02,+00.00,01.00,000.00,1.00 ++015.02,+00.00,01.00,000.00,1.00 ++016.02,+00.00,01.00,000.00,1.00 ++017.02,+00.00,01.00,000.00,1.00 ++018.02,+00.00,01.00,000.00,1.00 ++019.02,+00.00,01.00,000.00,1.00 ++020.02,+00.00,01.00,000.00,1.00 ++021.02,+00.00,01.00,000.00,1.00 ++022.02,+00.00,01.00,000.00,1.00 ++023.03,+00.00,01.00,000.00,1.00 ++024.03,+00.00,01.00,000.00,1.00 ++025.03,+00.00,01.00,000.00,1.00 ++026.03,+00.00,01.00,000.00,1.00 ++027.03,+00.00,01.00,000.00,1.00 ++028.03,+00.00,01.00,000.00,1.00 ++029.03,+00.00,01.00,000.00,1.00 ++030.03,+00.00,01.00,000.00,1.00 ++031.03,+00.00,01.00,000.00,1.00 ++032.04,+00.00,01.00,000.00,1.00 ++033.04,+00.00,01.00,000.00,1.00 ++034.04,+00.00,01.00,000.00,1.00 ++035.04,+00.00,01.00,000.00,1.00 ++036.04,+00.00,01.00,000.00,1.00 ++037.04,+00.00,01.00,000.00,1.00 ++038.04,+00.00,01.00,000.00,1.00 ++039.04,+00.00,01.00,000.00,1.00 ++040.04,+00.00,01.00,000.00,1.00 ++041.05,+00.00,01.00,000.00,1.00 ++042.05,+00.00,01.00,000.00,1.00 ++043.05,+00.00,01.00,000.00,1.00 ++044.05,+00.00,01.00,000.00,1.00 ++045.05,+00.00,01.00,000.00,1.00 ++046.05,+00.00,01.00,000.00,1.00 ++047.05,+00.00,01.00,000.00,1.00 ++048.05,+00.00,01.00,000.00,1.00 ++049.05,+00.00,01.00,000.00,1.00 ++050.06,+00.00,01.00,000.00,1.00 ++051.06,+00.00,01.00,000.00,1.00 ++052.06,+00.00,01.00,000.00,1.00 ++053.06,+00.00,01.00,000.00,1.00 ++054.06,+00.00,01.00,000.00,1.00 ++055.06,+00.00,01.00,000.00,1.00 ++056.06,+00.00,01.00,000.00,1.00 ++057.06,+00.00,01.00,000.00,1.00 ++058.06,+00.00,01.00,000.00,1.00 ++059.07,+00.00,01.00,000.00,1.00 ++060.07,+00.00,01.00,000.00,1.00 ++061.07,+00.00,01.00,000.00,1.00 ++062.07,+00.00,01.00,000.00,1.00 ++063.07,+00.00,01.00,000.00,1.00 ++064.07,+00.00,01.00,000.00,1.00 ++065.07,+00.00,01.00,000.00,1.00 ++066.07,+00.00,01.00,000.00,1.00 ++067.07,+00.00,01.00,000.00,1.00 ++068.08,+00.00,01.00,000.00,1.00 ++069.08,+00.00,01.00,000.00,1.00 ++070.08,+00.00,01.00,000.00,1.00 ++071.08,+00.00,01.00,000.00,1.00 ++072.08,+00.00,01.00,000.00,1.00 ++073.08,+00.00,01.00,000.00,1.00 ++074.08,+00.00,01.00,000.00,1.00 ++075.08,+00.00,01.00,000.00,1.00 ++076.08,+00.00,01.00,000.00,1.00 ++077.09,+00.00,01.00,000.00,1.00 ++078.09,+00.00,01.00,000.00,1.00 ++079.09,+00.00,01.00,000.00,1.00 ++080.09,+00.00,01.00,000.00,1.00 ++081.09,+00.00,01.00,000.00,1.00 ++082.09,+00.00,01.00,000.00,1.00 ++083.09,+00.00,01.00,000.00,1.00 ++084.09,+00.00,01.00,000.00,1.00 ++085.09,+00.00,01.00,000.00,1.00 ++086.10,+00.00,01.00,000.00,1.00 ++087.10,+00.00,01.00,000.00,1.00 ++088.10,+00.00,01.00,000.00,1.00 ++089.10,+00.00,01.00,000.00,1.00 ++090.10,+00.00,01.00,000.00,1.00 ++091.10,+00.00,01.00,000.00,1.00 ++092.10,+00.00,01.00,000.00,1.00 ++093.10,+00.00,01.00,000.00,1.00 ++094.10,+00.00,01.00,000.00,1.00 ++095.11,+00.00,01.00,000.00,1.00 ++096.11,+00.00,01.00,000.00,1.00 ++097.11,+00.00,01.00,000.00,1.00 ++098.11,+00.00,01.00,000.00,1.00 ++099.11,+00.00,01.00,000.00,1.00 ++100.11,+00.00,01.00,000.00,1.00 ++101.11,+00.00,01.00,000.00,1.00 ++102.11,+00.00,01.00,000.00,1.00 ++103.11,+00.00,01.00,000.00,1.00 ++104.12,+00.00,01.00,000.00,1.00 ++105.12,+00.00,01.00,000.00,1.00 ++106.12,+00.00,01.00,000.00,1.00 ++107.12,+00.00,01.00,000.00,1.00 ++108.12,+00.00,01.00,000.00,1.00 ++109.12,+00.00,01.00,000.00,1.00 ++110.12,+00.00,01.00,000.00,1.00 ++111.12,+00.00,01.00,000.00,1.00 ++112.12,+00.00,01.00,000.00,1.00 ++113.13,+00.00,01.00,000.00,1.00 ++114.13,+00.00,01.00,000.00,1.00 ++115.13,+00.00,01.00,000.00,1.00 ++116.13,+00.00,01.00,000.00,1.00 ++117.13,+00.00,01.00,000.00,1.00 ++118.13,+00.00,01.00,000.00,1.00 ++119.13,+00.00,01.00,000.00,1.00 ++120.13,+00.00,01.00,000.00,1.00 ++121.13,+00.00,01.00,000.00,1.00 ++122.14,+00.00,01.00,000.00,1.00 ++123.14,+00.00,01.00,000.00,1.00 ++124.14,+00.00,01.00,000.00,1.00 ++125.14,+00.00,01.00,000.00,1.00 ++126.14,+00.00,01.00,000.00,1.00 ++127.14,+00.00,01.00,000.00,1.00 ++128.14,+00.00,01.00,000.00,1.00 ++129.14,+00.00,01.00,000.00,1.00 ++130.14,+00.00,01.00,000.00,1.00 ++131.15,+00.00,01.00,000.00,1.00 ++132.15,+00.00,01.00,000.00,1.00 ++133.15,+00.00,01.00,000.00,1.00 ++134.15,+00.00,01.00,000.00,1.00 ++135.15,+00.00,01.00,000.00,1.00 ++136.15,+00.00,01.00,000.00,1.00 ++137.15,+00.00,01.00,000.00,1.00 ++138.15,+00.00,01.00,000.00,1.00 ++139.15,+00.00,01.00,000.00,1.00 ++140.16,+00.00,01.00,000.00,1.00 ++141.16,+00.00,01.00,000.00,1.00 ++142.16,+00.00,01.00,000.00,1.00 ++143.16,+00.00,01.00,000.00,1.00 ++144.16,+00.00,01.00,000.00,1.00 ++145.16,+00.00,01.00,000.00,1.00 ++146.16,+00.00,01.00,000.00,1.00 ++147.16,+00.00,01.00,000.00,1.00 ++148.16,+00.00,01.00,000.00,1.00 ++149.17,+00.00,01.00,000.00,1.00 ++150.17,+00.00,01.00,000.00,1.00 ++151.17,+00.00,01.00,000.00,1.00 ++152.17,+00.00,01.00,000.00,1.00 ++153.17,+00.00,01.00,000.00,1.00 ++154.17,+00.00,01.00,000.00,1.00 ++155.17,+00.00,01.00,000.00,1.00 ++156.17,+00.00,01.00,000.00,1.00 ++157.17,+00.00,01.00,000.00,1.00 ++158.18,+00.00,01.00,000.00,1.00 ++159.18,+00.00,01.00,000.00,1.00 ++160.18,+00.00,01.00,000.00,1.00 ++161.18,+00.00,01.00,000.00,1.00 ++162.18,+00.00,01.00,000.00,1.00 ++163.18,+00.00,01.00,000.00,1.00 ++164.18,+00.00,01.00,000.00,1.00 ++165.18,+00.00,01.00,000.00,1.00 ++166.18,+00.00,01.00,000.00,1.00 ++167.19,+00.00,01.00,000.00,1.00 ++168.19,+00.00,01.00,000.00,1.00 ++169.19,+00.00,01.00,000.00,1.00 ++170.19,+00.00,01.00,000.00,1.00 ++171.19,+00.00,01.00,000.00,1.00 ++172.19,+00.00,01.00,000.00,1.00 ++173.19,+00.00,01.00,000.00,1.00 ++174.19,+00.00,01.00,000.00,1.00 ++175.19,+00.00,01.00,000.00,1.00 ++176.20,+00.00,01.00,000.00,1.00 ++177.20,+00.00,01.00,000.00,1.00 ++178.20,+00.00,01.00,000.00,1.00 ++179.20,+00.00,01.00,000.00,1.00 +-179.80,+00.00,01.00,000.00,1.00 +-178.80,+00.00,01.00,000.00,1.00 +-177.80,+00.00,01.00,000.00,1.00 +-176.80,+00.00,01.00,000.00,1.00 +-175.80,+00.00,01.00,000.00,1.00 +-174.79,+00.00,01.00,000.00,1.00 +-173.79,+00.00,01.00,000.00,1.00 +-172.79,+00.00,01.00,000.00,1.00 +-171.79,+00.00,01.00,000.00,1.00 +-170.79,+00.00,01.00,000.00,1.00 +-169.79,+00.00,01.00,000.00,1.00 +-168.79,+00.00,01.00,000.00,1.00 +-167.79,+00.00,01.00,000.00,1.00 +-166.79,+00.00,01.00,000.00,1.00 +-165.78,+00.00,01.00,000.00,1.00 +-164.78,+00.00,01.00,000.00,1.00 +-163.78,+00.00,01.00,000.00,1.00 +-162.78,+00.00,01.00,000.00,1.00 +-161.78,+00.00,01.00,000.00,1.00 +-160.78,+00.00,01.00,000.00,1.00 +-159.78,+00.00,01.00,000.00,1.00 +-158.78,+00.00,01.00,000.00,1.00 +-157.78,+00.00,01.00,000.00,1.00 +-156.77,+00.00,01.00,000.00,1.00 +-155.77,+00.00,01.00,000.00,1.00 +-154.77,+00.00,01.00,000.00,1.00 +-153.77,+00.00,01.00,000.00,1.00 +-152.77,+00.00,01.00,000.00,1.00 +-151.77,+00.00,01.00,000.00,1.00 +-150.77,+00.00,01.00,000.00,1.00 +-149.77,+00.00,01.00,000.00,1.00 +-148.77,+00.00,01.00,000.00,1.00 +-147.76,+00.00,01.00,000.00,1.00 +-146.76,+00.00,01.00,000.00,1.00 +-145.76,+00.00,01.00,000.00,1.00 +-144.76,+00.00,01.00,000.00,1.00 +-143.76,+00.00,01.00,000.00,1.00 +-142.76,+00.00,01.00,000.00,1.00 +-141.76,+00.00,01.00,000.00,1.00 +-140.76,+00.00,01.00,000.00,1.00 +-139.76,+00.00,01.00,000.00,1.00 +-138.75,+00.00,01.00,000.00,1.00 +-137.75,+00.00,01.00,000.00,1.00 +-136.75,+00.00,01.00,000.00,1.00 +-135.75,+00.00,01.00,000.00,1.00 +-134.75,+00.00,01.00,000.00,1.00 +-133.75,+00.00,01.00,000.00,1.00 +-132.75,+00.00,01.00,000.00,1.00 +-131.75,+00.00,01.00,000.00,1.00 +-130.75,+00.00,01.00,000.00,1.00 +-129.74,+00.00,01.00,000.00,1.00 +-128.74,+00.00,01.00,000.00,1.00 +-127.74,+00.00,01.00,000.00,1.00 +-126.74,+00.00,01.00,000.00,1.00 +-125.74,+00.00,01.00,000.00,1.00 +-124.74,+00.00,01.00,000.00,1.00 +-123.74,+00.00,01.00,000.00,1.00 +-122.74,+00.00,01.00,000.00,1.00 +-121.74,+00.00,01.00,000.00,1.00 +-120.73,+00.00,01.00,000.00,1.00 +-119.73,+00.00,01.00,000.00,1.00 +-118.73,+00.00,01.00,000.00,1.00 +-117.73,+00.00,01.00,000.00,1.00 +-116.73,+00.00,01.00,000.00,1.00 +-115.73,+00.00,01.00,000.00,1.00 +-114.73,+00.00,01.00,000.00,1.00 +-113.73,+00.00,01.00,000.00,1.00 +-112.73,+00.00,01.00,000.00,1.00 +-111.72,+00.00,01.00,000.00,1.00 +-110.72,+00.00,01.00,000.00,1.00 +-109.72,+00.00,01.00,000.00,1.00 +-108.72,+00.00,01.00,000.00,1.00 +-107.72,+00.00,01.00,000.00,1.00 +-106.72,+00.00,01.00,000.00,1.00 +-105.72,+00.00,01.00,000.00,1.00 +-104.72,+00.00,01.00,000.00,1.00 +-103.72,+00.00,01.00,000.00,1.00 +-102.71,+00.00,01.00,000.00,1.00 +-101.71,+00.00,01.00,000.00,1.00 +-100.71,+00.00,01.00,000.00,1.00 +-099.71,+00.00,01.00,000.00,1.00 +-098.71,+00.00,01.00,000.00,1.00 +-097.71,+00.00,01.00,000.00,1.00 +-096.71,+00.00,01.00,000.00,1.00 +-095.71,+00.00,01.00,000.00,1.00 +-094.71,+00.00,01.00,000.00,1.00 +-093.70,+00.00,01.00,000.00,1.00 +-092.70,+00.00,01.00,000.00,1.00 +-091.70,+00.00,01.00,000.00,1.00 +-090.70,+00.00,01.00,000.00,1.00 +-089.70,+00.00,01.00,000.00,1.00 +-088.70,+00.00,01.00,000.00,1.00 +-087.70,+00.00,01.00,000.00,1.00 +-086.70,+00.00,01.00,000.00,1.00 +-085.70,+00.00,01.00,000.00,1.00 +-084.69,+00.00,01.00,000.00,1.00 +-083.69,+00.00,01.00,000.00,1.00 +-082.69,+00.00,01.00,000.00,1.00 +-081.69,+00.00,01.00,000.00,1.00 +-080.69,+00.00,01.00,000.00,1.00 +-079.69,+00.00,01.00,000.00,1.00 +-078.69,+00.00,01.00,000.00,1.00 +-077.69,+00.00,01.00,000.00,1.00 +-076.69,+00.00,01.00,000.00,1.00 +-075.68,+00.00,01.00,000.00,1.00 +-074.68,+00.00,01.00,000.00,1.00 +-073.68,+00.00,01.00,000.00,1.00 +-072.68,+00.00,01.00,000.00,1.00 +-071.68,+00.00,01.00,000.00,1.00 +-070.68,+00.00,01.00,000.00,1.00 +-069.68,+00.00,01.00,000.00,1.00 +-068.68,+00.00,01.00,000.00,1.00 +-067.68,+00.00,01.00,000.00,1.00 +-066.67,+00.00,01.00,000.00,1.00 +-065.67,+00.00,01.00,000.00,1.00 +-064.67,+00.00,01.00,000.00,1.00 +-063.67,+00.00,01.00,000.00,1.00 +-062.67,+00.00,01.00,000.00,1.00 +-061.67,+00.00,01.00,000.00,1.00 +-060.67,+00.00,01.00,000.00,1.00 +-059.67,+00.00,01.00,000.00,1.00 +-058.67,+00.00,01.00,000.00,1.00 +-057.66,+00.00,01.00,000.00,1.00 +-056.66,+00.00,01.00,000.00,1.00 +-055.66,+00.00,01.00,000.00,1.00 +-054.66,+00.00,01.00,000.00,1.00 +-053.66,+00.00,01.00,000.00,1.00 +-052.66,+00.00,01.00,000.00,1.00 +-051.66,+00.00,01.00,000.00,1.00 +-050.66,+00.00,01.00,000.00,1.00 +-049.66,+00.00,01.00,000.00,1.00 +-048.65,+00.00,01.00,000.00,1.00 +-047.65,+00.00,01.00,000.00,1.00 +-046.65,+00.00,01.00,000.00,1.00 +-045.65,+00.00,01.00,000.00,1.00 +-044.65,+00.00,01.00,000.00,1.00 +-043.65,+00.00,01.00,000.00,1.00 +-042.65,+00.00,01.00,000.00,1.00 +-041.65,+00.00,01.00,000.00,1.00 +-040.65,+00.00,01.00,000.00,1.00 +-039.64,+00.00,01.00,000.00,1.00 +-038.64,+00.00,01.00,000.00,1.00 +-037.64,+00.00,01.00,000.00,1.00 +-036.64,+00.00,01.00,000.00,1.00 +-035.64,+00.00,01.00,000.00,1.00 +-034.64,+00.00,01.00,000.00,1.00 +-033.64,+00.00,01.00,000.00,1.00 +-032.64,+00.00,01.00,000.00,1.00 +-031.64,+00.00,01.00,000.00,1.00 +-030.63,+00.00,01.00,000.00,1.00 +-029.63,+00.00,01.00,000.00,1.00 +-028.63,+00.00,01.00,000.00,1.00 +-027.63,+00.00,01.00,000.00,1.00 +-026.63,+00.00,01.00,000.00,1.00 +-025.63,+00.00,01.00,000.00,1.00 +-024.63,+00.00,01.00,000.00,1.00 +-023.63,+00.00,01.00,000.00,1.00 +-022.63,+00.00,01.00,000.00,1.00 +-021.62,+00.00,01.00,000.00,1.00 +-020.62,+00.00,01.00,000.00,1.00 +-019.62,+00.00,01.00,000.00,1.00 +-018.62,+00.00,01.00,000.00,1.00 +-017.62,+00.00,01.00,000.00,1.00 +-016.62,+00.00,01.00,000.00,1.00 +-015.62,+00.00,01.00,000.00,1.00 +-014.62,+00.00,01.00,000.00,1.00 +-013.62,+00.00,01.00,000.00,1.00 +-012.61,+00.00,01.00,000.00,1.00 +-011.61,+00.00,01.00,000.00,1.00 +-010.61,+00.00,01.00,000.00,1.00 +-009.61,+00.00,01.00,000.00,1.00 +-008.61,+00.00,01.00,000.00,1.00 +-007.61,+00.00,01.00,000.00,1.00 +-006.61,+00.00,01.00,000.00,1.00 +-005.61,+00.00,01.00,000.00,1.00 +-004.61,+00.00,01.00,000.00,1.00 +-003.60,+00.00,01.00,000.00,1.00 +-002.60,+00.00,01.00,000.00,1.00 +-001.60,+00.00,01.00,000.00,1.00 +-000.60,+00.00,01.00,000.00,1.00 ++000.40,+00.00,01.00,000.00,1.00 ++001.40,+00.00,01.00,000.00,1.00 ++002.40,+00.00,01.00,000.00,1.00 ++003.40,+00.00,01.00,000.00,1.00 ++004.40,+00.00,01.00,000.00,1.00 ++005.41,+00.00,01.00,000.00,1.00 ++006.41,+00.00,01.00,000.00,1.00 ++007.41,+00.00,01.00,000.00,1.00 ++008.41,+00.00,01.00,000.00,1.00 ++009.41,+00.00,01.00,000.00,1.00 ++010.41,+00.00,01.00,000.00,1.00 ++011.41,+00.00,01.00,000.00,1.00 ++012.41,+00.00,01.00,000.00,1.00 ++013.41,+00.00,01.00,000.00,1.00 ++014.42,+00.00,01.00,000.00,1.00 ++015.42,+00.00,01.00,000.00,1.00 ++016.42,+00.00,01.00,000.00,1.00 ++017.42,+00.00,01.00,000.00,1.00 ++018.42,+00.00,01.00,000.00,1.00 ++019.42,+00.00,01.00,000.00,1.00 ++020.42,+00.00,01.00,000.00,1.00 ++021.42,+00.00,01.00,000.00,1.00 ++022.42,+00.00,01.00,000.00,1.00 ++023.43,+00.00,01.00,000.00,1.00 ++024.43,+00.00,01.00,000.00,1.00 ++025.43,+00.00,01.00,000.00,1.00 ++026.43,+00.00,01.00,000.00,1.00 ++027.43,+00.00,01.00,000.00,1.00 ++028.43,+00.00,01.00,000.00,1.00 ++029.43,+00.00,01.00,000.00,1.00 ++030.43,+00.00,01.00,000.00,1.00 ++031.43,+00.00,01.00,000.00,1.00 ++032.44,+00.00,01.00,000.00,1.00 ++033.44,+00.00,01.00,000.00,1.00 ++034.44,+00.00,01.00,000.00,1.00 ++035.44,+00.00,01.00,000.00,1.00 ++036.44,+00.00,01.00,000.00,1.00 ++037.44,+00.00,01.00,000.00,1.00 ++038.44,+00.00,01.00,000.00,1.00 ++039.44,+00.00,01.00,000.00,1.00 ++040.44,+00.00,01.00,000.00,1.00 ++041.45,+00.00,01.00,000.00,1.00 ++042.45,+00.00,01.00,000.00,1.00 ++043.45,+00.00,01.00,000.00,1.00 ++044.45,+00.00,01.00,000.00,1.00 ++045.45,+00.00,01.00,000.00,1.00 ++046.45,+00.00,01.00,000.00,1.00 ++047.45,+00.00,01.00,000.00,1.00 ++048.45,+00.00,01.00,000.00,1.00 ++049.45,+00.00,01.00,000.00,1.00 ++050.46,+00.00,01.00,000.00,1.00 ++051.46,+00.00,01.00,000.00,1.00 ++052.46,+00.00,01.00,000.00,1.00 ++053.46,+00.00,01.00,000.00,1.00 ++054.46,+00.00,01.00,000.00,1.00 ++055.46,+00.00,01.00,000.00,1.00 ++056.46,+00.00,01.00,000.00,1.00 ++057.46,+00.00,01.00,000.00,1.00 ++058.46,+00.00,01.00,000.00,1.00 ++059.47,+00.00,01.00,000.00,1.00 ++060.47,+00.00,01.00,000.00,1.00 ++061.47,+00.00,01.00,000.00,1.00 ++062.47,+00.00,01.00,000.00,1.00 ++063.47,+00.00,01.00,000.00,1.00 ++064.47,+00.00,01.00,000.00,1.00 ++065.47,+00.00,01.00,000.00,1.00 ++066.47,+00.00,01.00,000.00,1.00 ++067.47,+00.00,01.00,000.00,1.00 ++068.48,+00.00,01.00,000.00,1.00 ++069.48,+00.00,01.00,000.00,1.00 ++070.48,+00.00,01.00,000.00,1.00 ++071.48,+00.00,01.00,000.00,1.00 ++072.48,+00.00,01.00,000.00,1.00 ++073.48,+00.00,01.00,000.00,1.00 ++074.48,+00.00,01.00,000.00,1.00 ++075.48,+00.00,01.00,000.00,1.00 ++076.48,+00.00,01.00,000.00,1.00 ++077.49,+00.00,01.00,000.00,1.00 ++078.49,+00.00,01.00,000.00,1.00 ++079.49,+00.00,01.00,000.00,1.00 ++080.49,+00.00,01.00,000.00,1.00 ++081.49,+00.00,01.00,000.00,1.00 ++082.49,+00.00,01.00,000.00,1.00 ++083.49,+00.00,01.00,000.00,1.00 ++084.49,+00.00,01.00,000.00,1.00 ++085.49,+00.00,01.00,000.00,1.00 ++086.50,+00.00,01.00,000.00,1.00 ++087.50,+00.00,01.00,000.00,1.00 ++088.50,+00.00,01.00,000.00,1.00 ++089.50,+00.00,01.00,000.00,1.00 ++090.50,+00.00,01.00,000.00,1.00 ++091.50,+00.00,01.00,000.00,1.00 ++092.50,+00.00,01.00,000.00,1.00 ++093.50,+00.00,01.00,000.00,1.00 ++094.51,+00.00,01.00,000.00,1.00 ++095.51,+00.00,01.00,000.00,1.00 ++096.51,+00.00,01.00,000.00,1.00 ++097.51,+00.00,01.00,000.00,1.00 ++098.51,+00.00,01.00,000.00,1.00 ++099.51,+00.00,01.00,000.00,1.00 ++100.51,+00.00,01.00,000.00,1.00 ++101.51,+00.00,01.00,000.00,1.00 ++102.51,+00.00,01.00,000.00,1.00 ++103.52,+00.00,01.00,000.00,1.00 ++104.52,+00.00,01.00,000.00,1.00 ++105.52,+00.00,01.00,000.00,1.00 ++106.52,+00.00,01.00,000.00,1.00 ++107.52,+00.00,01.00,000.00,1.00 ++108.52,+00.00,01.00,000.00,1.00 ++109.52,+00.00,01.00,000.00,1.00 ++110.52,+00.00,01.00,000.00,1.00 ++111.52,+00.00,01.00,000.00,1.00 ++112.53,+00.00,01.00,000.00,1.00 ++113.53,+00.00,01.00,000.00,1.00 ++114.53,+00.00,01.00,000.00,1.00 ++115.53,+00.00,01.00,000.00,1.00 ++116.53,+00.00,01.00,000.00,1.00 ++117.53,+00.00,01.00,000.00,1.00 ++118.53,+00.00,01.00,000.00,1.00 ++119.53,+00.00,01.00,000.00,1.00 ++120.53,+00.00,01.00,000.00,1.00 ++121.54,+00.00,01.00,000.00,1.00 ++122.54,+00.00,01.00,000.00,1.00 ++123.54,+00.00,01.00,000.00,1.00 ++124.54,+00.00,01.00,000.00,1.00 ++125.54,+00.00,01.00,000.00,1.00 ++126.54,+00.00,01.00,000.00,1.00 ++127.54,+00.00,01.00,000.00,1.00 ++128.54,+00.00,01.00,000.00,1.00 ++129.54,+00.00,01.00,000.00,1.00 ++130.55,+00.00,01.00,000.00,1.00 ++131.55,+00.00,01.00,000.00,1.00 ++132.55,+00.00,01.00,000.00,1.00 ++133.55,+00.00,01.00,000.00,1.00 ++134.55,+00.00,01.00,000.00,1.00 ++135.55,+00.00,01.00,000.00,1.00 ++136.55,+00.00,01.00,000.00,1.00 ++137.55,+00.00,01.00,000.00,1.00 ++138.55,+00.00,01.00,000.00,1.00 ++139.56,+00.00,01.00,000.00,1.00 ++140.56,+00.00,01.00,000.00,1.00 ++141.56,+00.00,01.00,000.00,1.00 ++142.56,+00.00,01.00,000.00,1.00 ++143.56,+00.00,01.00,000.00,1.00 ++144.56,+00.00,01.00,000.00,1.00 ++145.56,+00.00,01.00,000.00,1.00 ++146.56,+00.00,01.00,000.00,1.00 ++147.56,+00.00,01.00,000.00,1.00 ++148.57,+00.00,01.00,000.00,1.00 ++149.57,+00.00,01.00,000.00,1.00 ++150.57,+00.00,01.00,000.00,1.00 ++151.57,+00.00,01.00,000.00,1.00 ++152.57,+00.00,01.00,000.00,1.00 ++153.57,+00.00,01.00,000.00,1.00 ++154.57,+00.00,01.00,000.00,1.00 ++155.57,+00.00,01.00,000.00,1.00 ++156.57,+00.00,01.00,000.00,1.00 ++157.58,+00.00,01.00,000.00,1.00 ++158.58,+00.00,01.00,000.00,1.00 ++159.58,+00.00,01.00,000.00,1.00 ++160.58,+00.00,01.00,000.00,1.00 ++161.58,+00.00,01.00,000.00,1.00 ++162.58,+00.00,01.00,000.00,1.00 ++163.58,+00.00,01.00,000.00,1.00 ++164.58,+00.00,01.00,000.00,1.00 ++165.58,+00.00,01.00,000.00,1.00 ++166.59,+00.00,01.00,000.00,1.00 ++167.59,+00.00,01.00,000.00,1.00 ++168.59,+00.00,01.00,000.00,1.00 ++169.59,+00.00,01.00,000.00,1.00 ++170.59,+00.00,01.00,000.00,1.00 ++171.59,+00.00,01.00,000.00,1.00 ++172.59,+00.00,01.00,000.00,1.00 ++173.59,+00.00,01.00,000.00,1.00 ++174.59,+00.00,01.00,000.00,1.00 ++175.60,+00.00,01.00,000.00,1.00 ++176.60,+00.00,01.00,000.00,1.00 ++177.60,+00.00,01.00,000.00,1.00 ++178.60,+00.00,01.00,000.00,1.00 ++179.60,+00.00,01.00,000.00,1.00 +-179.40,+00.00,01.00,000.00,1.00 +-178.40,+00.00,01.00,000.00,1.00 +-177.40,+00.00,01.00,000.00,1.00 +-176.40,+00.00,01.00,000.00,1.00 +-175.39,+00.00,01.00,000.00,1.00 +-174.39,+00.00,01.00,000.00,1.00 +-173.39,+00.00,01.00,000.00,1.00 +-172.39,+00.00,01.00,000.00,1.00 +-171.39,+00.00,01.00,000.00,1.00 +-170.39,+00.00,01.00,000.00,1.00 +-169.39,+00.00,01.00,000.00,1.00 +-168.39,+00.00,01.00,000.00,1.00 +-167.39,+00.00,01.00,000.00,1.00 +-166.38,+00.00,01.00,000.00,1.00 +-165.38,+00.00,01.00,000.00,1.00 +-164.38,+00.00,01.00,000.00,1.00 +-163.38,+00.00,01.00,000.00,1.00 +-162.38,+00.00,01.00,000.00,1.00 +-161.38,+00.00,01.00,000.00,1.00 +-160.38,+00.00,01.00,000.00,1.00 +-159.38,+00.00,01.00,000.00,1.00 +-158.38,+00.00,01.00,000.00,1.00 +-157.37,+00.00,01.00,000.00,1.00 +-156.37,+00.00,01.00,000.00,1.00 +-155.37,+00.00,01.00,000.00,1.00 +-154.37,+00.00,01.00,000.00,1.00 +-153.37,+00.00,01.00,000.00,1.00 +-152.37,+00.00,01.00,000.00,1.00 +-151.37,+00.00,01.00,000.00,1.00 +-150.37,+00.00,01.00,000.00,1.00 +-149.37,+00.00,01.00,000.00,1.00 +-148.36,+00.00,01.00,000.00,1.00 +-147.36,+00.00,01.00,000.00,1.00 +-146.36,+00.00,01.00,000.00,1.00 +-145.36,+00.00,01.00,000.00,1.00 +-144.36,+00.00,01.00,000.00,1.00 +-143.36,+00.00,01.00,000.00,1.00 +-142.36,+00.00,01.00,000.00,1.00 +-141.36,+00.00,01.00,000.00,1.00 +-140.36,+00.00,01.00,000.00,1.00 +-139.35,+00.00,01.00,000.00,1.00 +-138.35,+00.00,01.00,000.00,1.00 +-137.35,+00.00,01.00,000.00,1.00 +-136.35,+00.00,01.00,000.00,1.00 +-135.35,+00.00,01.00,000.00,1.00 +-134.35,+00.00,01.00,000.00,1.00 +-133.35,+00.00,01.00,000.00,1.00 +-132.35,+00.00,01.00,000.00,1.00 +-131.35,+00.00,01.00,000.00,1.00 +-130.34,+00.00,01.00,000.00,1.00 +-129.34,+00.00,01.00,000.00,1.00 +-128.34,+00.00,01.00,000.00,1.00 +-127.34,+00.00,01.00,000.00,1.00 +-126.34,+00.00,01.00,000.00,1.00 +-125.34,+00.00,01.00,000.00,1.00 +-124.34,+00.00,01.00,000.00,1.00 +-123.34,+00.00,01.00,000.00,1.00 +-122.34,+00.00,01.00,000.00,1.00 +-121.33,+00.00,01.00,000.00,1.00 +-120.33,+00.00,01.00,000.00,1.00 +-119.33,+00.00,01.00,000.00,1.00 +-118.33,+00.00,01.00,000.00,1.00 +-117.33,+00.00,01.00,000.00,1.00 +-116.33,+00.00,01.00,000.00,1.00 +-115.33,+00.00,01.00,000.00,1.00 +-114.33,+00.00,01.00,000.00,1.00 +-113.33,+00.00,01.00,000.00,1.00 +-112.32,+00.00,01.00,000.00,1.00 +-111.32,+00.00,01.00,000.00,1.00 +-110.32,+00.00,01.00,000.00,1.00 +-109.32,+00.00,01.00,000.00,1.00 +-108.32,+00.00,01.00,000.00,1.00 +-107.32,+00.00,01.00,000.00,1.00 +-106.32,+00.00,01.00,000.00,1.00 +-105.32,+00.00,01.00,000.00,1.00 +-104.32,+00.00,01.00,000.00,1.00 +-103.31,+00.00,01.00,000.00,1.00 +-102.31,+00.00,01.00,000.00,1.00 +-101.31,+00.00,01.00,000.00,1.00 +-100.31,+00.00,01.00,000.00,1.00 +-099.31,+00.00,01.00,000.00,1.00 +-098.31,+00.00,01.00,000.00,1.00 +-097.31,+00.00,01.00,000.00,1.00 +-096.31,+00.00,01.00,000.00,1.00 +-095.31,+00.00,01.00,000.00,1.00 +-094.30,+00.00,01.00,000.00,1.00 +-093.30,+00.00,01.00,000.00,1.00 +-092.30,+00.00,01.00,000.00,1.00 +-091.30,+00.00,01.00,000.00,1.00 +-090.30,+00.00,01.00,000.00,1.00 +-089.30,+00.00,01.00,000.00,1.00 +-088.30,+00.00,01.00,000.00,1.00 +-087.30,+00.00,01.00,000.00,1.00 +-086.30,+00.00,01.00,000.00,1.00 +-085.29,+00.00,01.00,000.00,1.00 +-084.29,+00.00,01.00,000.00,1.00 +-083.29,+00.00,01.00,000.00,1.00 +-082.29,+00.00,01.00,000.00,1.00 +-081.29,+00.00,01.00,000.00,1.00 +-080.29,+00.00,01.00,000.00,1.00 +-079.29,+00.00,01.00,000.00,1.00 +-078.29,+00.00,01.00,000.00,1.00 +-077.29,+00.00,01.00,000.00,1.00 +-076.28,+00.00,01.00,000.00,1.00 +-075.28,+00.00,01.00,000.00,1.00 +-074.28,+00.00,01.00,000.00,1.00 +-073.28,+00.00,01.00,000.00,1.00 +-072.28,+00.00,01.00,000.00,1.00 +-071.28,+00.00,01.00,000.00,1.00 +-070.28,+00.00,01.00,000.00,1.00 +-069.28,+00.00,01.00,000.00,1.00 +-068.28,+00.00,01.00,000.00,1.00 +-067.27,+00.00,01.00,000.00,1.00 +-066.27,+00.00,01.00,000.00,1.00 +-065.27,+00.00,01.00,000.00,1.00 +-064.27,+00.00,01.00,000.00,1.00 +-063.27,+00.00,01.00,000.00,1.00 +-062.27,+00.00,01.00,000.00,1.00 +-061.27,+00.00,01.00,000.00,1.00 +-060.27,+00.00,01.00,000.00,1.00 +-059.27,+00.00,01.00,000.00,1.00 +-058.26,+00.00,01.00,000.00,1.00 +-057.26,+00.00,01.00,000.00,1.00 +-056.26,+00.00,01.00,000.00,1.00 +-055.26,+00.00,01.00,000.00,1.00 +-054.26,+00.00,01.00,000.00,1.00 +-053.26,+00.00,01.00,000.00,1.00 +-052.26,+00.00,01.00,000.00,1.00 +-051.26,+00.00,01.00,000.00,1.00 +-050.26,+00.00,01.00,000.00,1.00 +-049.25,+00.00,01.00,000.00,1.00 +-048.25,+00.00,01.00,000.00,1.00 +-047.25,+00.00,01.00,000.00,1.00 +-046.25,+00.00,01.00,000.00,1.00 +-045.25,+00.00,01.00,000.00,1.00 +-044.25,+00.00,01.00,000.00,1.00 +-043.25,+00.00,01.00,000.00,1.00 +-042.25,+00.00,01.00,000.00,1.00 +-041.25,+00.00,01.00,000.00,1.00 +-040.24,+00.00,01.00,000.00,1.00 +-039.24,+00.00,01.00,000.00,1.00 +-038.24,+00.00,01.00,000.00,1.00 +-037.24,+00.00,01.00,000.00,1.00 +-036.24,+00.00,01.00,000.00,1.00 +-035.24,+00.00,01.00,000.00,1.00 +-034.24,+00.00,01.00,000.00,1.00 +-033.24,+00.00,01.00,000.00,1.00 +-032.24,+00.00,01.00,000.00,1.00 +-031.23,+00.00,01.00,000.00,1.00 +-030.23,+00.00,01.00,000.00,1.00 +-029.23,+00.00,01.00,000.00,1.00 +-028.23,+00.00,01.00,000.00,1.00 +-027.23,+00.00,01.00,000.00,1.00 +-026.23,+00.00,01.00,000.00,1.00 +-025.23,+00.00,01.00,000.00,1.00 +-024.23,+00.00,01.00,000.00,1.00 +-023.23,+00.00,01.00,000.00,1.00 +-022.22,+00.00,01.00,000.00,1.00 +-021.22,+00.00,01.00,000.00,1.00 +-020.22,+00.00,01.00,000.00,1.00 +-019.22,+00.00,01.00,000.00,1.00 +-018.22,+00.00,01.00,000.00,1.00 +-017.22,+00.00,01.00,000.00,1.00 +-016.22,+00.00,01.00,000.00,1.00 +-015.22,+00.00,01.00,000.00,1.00 +-014.22,+00.00,01.00,000.00,1.00 +-013.21,+00.00,01.00,000.00,1.00 +-012.21,+00.00,01.00,000.00,1.00 +-011.21,+00.00,01.00,000.00,1.00 +-010.21,+00.00,01.00,000.00,1.00 +-009.21,+00.00,01.00,000.00,1.00 +-008.21,+00.00,01.00,000.00,1.00 +-007.21,+00.00,01.00,000.00,1.00 +-006.21,+00.00,01.00,000.00,1.00 +-005.21,+00.00,01.00,000.00,1.00 +-004.20,+00.00,01.00,000.00,1.00 +-003.20,+00.00,01.00,000.00,1.00 +-002.20,+00.00,01.00,000.00,1.00 +-001.20,+00.00,01.00,000.00,1.00 +-000.20,+00.00,01.00,000.00,1.00 ++000.80,+00.00,01.00,000.00,1.00 ++001.80,+00.00,01.00,000.00,1.00 ++002.80,+00.00,01.00,000.00,1.00 ++003.80,+00.00,01.00,000.00,1.00 ++004.81,+00.00,01.00,000.00,1.00 ++005.81,+00.00,01.00,000.00,1.00 ++006.81,+00.00,01.00,000.00,1.00 ++007.81,+00.00,01.00,000.00,1.00 ++008.81,+00.00,01.00,000.00,1.00 ++009.81,+00.00,01.00,000.00,1.00 ++010.81,+00.00,01.00,000.00,1.00 ++011.81,+00.00,01.00,000.00,1.00 ++012.81,+00.00,01.00,000.00,1.00 ++013.82,+00.00,01.00,000.00,1.00 ++014.82,+00.00,01.00,000.00,1.00 ++015.82,+00.00,01.00,000.00,1.00 ++016.82,+00.00,01.00,000.00,1.00 ++017.82,+00.00,01.00,000.00,1.00 ++018.82,+00.00,01.00,000.00,1.00 ++019.82,+00.00,01.00,000.00,1.00 ++020.82,+00.00,01.00,000.00,1.00 ++021.82,+00.00,01.00,000.00,1.00 ++022.83,+00.00,01.00,000.00,1.00 ++023.83,+00.00,01.00,000.00,1.00 ++024.83,+00.00,01.00,000.00,1.00 ++025.83,+00.00,01.00,000.00,1.00 ++026.83,+00.00,01.00,000.00,1.00 ++027.83,+00.00,01.00,000.00,1.00 ++028.83,+00.00,01.00,000.00,1.00 ++029.83,+00.00,01.00,000.00,1.00 ++030.83,+00.00,01.00,000.00,1.00 ++031.84,+00.00,01.00,000.00,1.00 ++032.84,+00.00,01.00,000.00,1.00 ++033.84,+00.00,01.00,000.00,1.00 ++034.84,+00.00,01.00,000.00,1.00 ++035.84,+00.00,01.00,000.00,1.00 ++036.84,+00.00,01.00,000.00,1.00 ++037.84,+00.00,01.00,000.00,1.00 ++038.84,+00.00,01.00,000.00,1.00 ++039.84,+00.00,01.00,000.00,1.00 ++040.85,+00.00,01.00,000.00,1.00 ++041.85,+00.00,01.00,000.00,1.00 ++042.85,+00.00,01.00,000.00,1.00 ++043.85,+00.00,01.00,000.00,1.00 ++044.85,+00.00,01.00,000.00,1.00 ++045.85,+00.00,01.00,000.00,1.00 ++046.85,+00.00,01.00,000.00,1.00 ++047.85,+00.00,01.00,000.00,1.00 ++048.85,+00.00,01.00,000.00,1.00 ++049.86,+00.00,01.00,000.00,1.00 ++050.86,+00.00,01.00,000.00,1.00 ++051.86,+00.00,01.00,000.00,1.00 ++052.86,+00.00,01.00,000.00,1.00 ++053.86,+00.00,01.00,000.00,1.00 ++054.86,+00.00,01.00,000.00,1.00 ++055.86,+00.00,01.00,000.00,1.00 ++056.86,+00.00,01.00,000.00,1.00 ++057.86,+00.00,01.00,000.00,1.00 ++058.87,+00.00,01.00,000.00,1.00 ++059.87,+00.00,01.00,000.00,1.00 ++060.87,+00.00,01.00,000.00,1.00 ++061.87,+00.00,01.00,000.00,1.00 ++062.87,+00.00,01.00,000.00,1.00 ++063.87,+00.00,01.00,000.00,1.00 ++064.87,+00.00,01.00,000.00,1.00 ++065.87,+00.00,01.00,000.00,1.00 ++066.87,+00.00,01.00,000.00,1.00 ++067.88,+00.00,01.00,000.00,1.00 ++068.88,+00.00,01.00,000.00,1.00 ++069.88,+00.00,01.00,000.00,1.00 ++070.88,+00.00,01.00,000.00,1.00 ++071.88,+00.00,01.00,000.00,1.00 ++072.88,+00.00,01.00,000.00,1.00 ++073.88,+00.00,01.00,000.00,1.00 ++074.88,+00.00,01.00,000.00,1.00 ++075.88,+00.00,01.00,000.00,1.00 ++076.89,+00.00,01.00,000.00,1.00 ++077.89,+00.00,01.00,000.00,1.00 ++078.89,+00.00,01.00,000.00,1.00 ++079.89,+00.00,01.00,000.00,1.00 ++080.89,+00.00,01.00,000.00,1.00 ++081.89,+00.00,01.00,000.00,1.00 ++082.89,+00.00,01.00,000.00,1.00 ++083.89,+00.00,01.00,000.00,1.00 ++084.89,+00.00,01.00,000.00,1.00 ++085.90,+00.00,01.00,000.00,1.00 ++086.90,+00.00,01.00,000.00,1.00 ++087.90,+00.00,01.00,000.00,1.00 ++088.90,+00.00,01.00,000.00,1.00 ++089.90,+00.00,01.00,000.00,1.00 ++090.90,+00.00,01.00,000.00,1.00 ++091.90,+00.00,01.00,000.00,1.00 ++092.90,+00.00,01.00,000.00,1.00 ++093.90,+00.00,01.00,000.00,1.00 ++094.91,+00.00,01.00,000.00,1.00 ++095.91,+00.00,01.00,000.00,1.00 ++096.91,+00.00,01.00,000.00,1.00 ++097.91,+00.00,01.00,000.00,1.00 ++098.91,+00.00,01.00,000.00,1.00 ++099.91,+00.00,01.00,000.00,1.00 ++100.91,+00.00,01.00,000.00,1.00 ++101.91,+00.00,01.00,000.00,1.00 ++102.91,+00.00,01.00,000.00,1.00 ++103.92,+00.00,01.00,000.00,1.00 ++104.92,+00.00,01.00,000.00,1.00 ++105.92,+00.00,01.00,000.00,1.00 ++106.92,+00.00,01.00,000.00,1.00 ++107.92,+00.00,01.00,000.00,1.00 ++108.92,+00.00,01.00,000.00,1.00 ++109.92,+00.00,01.00,000.00,1.00 ++110.92,+00.00,01.00,000.00,1.00 ++111.92,+00.00,01.00,000.00,1.00 ++112.93,+00.00,01.00,000.00,1.00 ++113.93,+00.00,01.00,000.00,1.00 ++114.93,+00.00,01.00,000.00,1.00 ++115.93,+00.00,01.00,000.00,1.00 ++116.93,+00.00,01.00,000.00,1.00 ++117.93,+00.00,01.00,000.00,1.00 ++118.93,+00.00,01.00,000.00,1.00 ++119.93,+00.00,01.00,000.00,1.00 ++120.93,+00.00,01.00,000.00,1.00 ++121.94,+00.00,01.00,000.00,1.00 ++122.94,+00.00,01.00,000.00,1.00 ++123.94,+00.00,01.00,000.00,1.00 ++124.94,+00.00,01.00,000.00,1.00 ++125.94,+00.00,01.00,000.00,1.00 ++126.94,+00.00,01.00,000.00,1.00 ++127.94,+00.00,01.00,000.00,1.00 ++128.94,+00.00,01.00,000.00,1.00 ++129.94,+00.00,01.00,000.00,1.00 ++130.95,+00.00,01.00,000.00,1.00 ++131.95,+00.00,01.00,000.00,1.00 ++132.95,+00.00,01.00,000.00,1.00 ++133.95,+00.00,01.00,000.00,1.00 ++134.95,+00.00,01.00,000.00,1.00 ++135.95,+00.00,01.00,000.00,1.00 ++136.95,+00.00,01.00,000.00,1.00 ++137.95,+00.00,01.00,000.00,1.00 ++138.95,+00.00,01.00,000.00,1.00 ++139.96,+00.00,01.00,000.00,1.00 ++140.96,+00.00,01.00,000.00,1.00 ++141.96,+00.00,01.00,000.00,1.00 ++142.96,+00.00,01.00,000.00,1.00 ++143.96,+00.00,01.00,000.00,1.00 ++144.96,+00.00,01.00,000.00,1.00 ++145.96,+00.00,01.00,000.00,1.00 ++146.96,+00.00,01.00,000.00,1.00 ++147.96,+00.00,01.00,000.00,1.00 ++148.97,+00.00,01.00,000.00,1.00 ++149.97,+00.00,01.00,000.00,1.00 ++150.97,+00.00,01.00,000.00,1.00 ++151.97,+00.00,01.00,000.00,1.00 ++152.97,+00.00,01.00,000.00,1.00 ++153.97,+00.00,01.00,000.00,1.00 ++154.97,+00.00,01.00,000.00,1.00 ++155.97,+00.00,01.00,000.00,1.00 ++156.97,+00.00,01.00,000.00,1.00 ++157.98,+00.00,01.00,000.00,1.00 ++158.98,+00.00,01.00,000.00,1.00 ++159.98,+00.00,01.00,000.00,1.00 ++160.98,+00.00,01.00,000.00,1.00 ++161.98,+00.00,01.00,000.00,1.00 ++162.98,+00.00,01.00,000.00,1.00 ++163.98,+00.00,01.00,000.00,1.00 ++164.98,+00.00,01.00,000.00,1.00 ++165.98,+00.00,01.00,000.00,1.00 ++166.99,+00.00,01.00,000.00,1.00 ++167.99,+00.00,01.00,000.00,1.00 ++168.99,+00.00,01.00,000.00,1.00 ++169.99,+00.00,01.00,000.00,1.00 ++170.99,+00.00,01.00,000.00,1.00 ++171.99,+00.00,01.00,000.00,1.00 ++172.99,+00.00,01.00,000.00,1.00 ++173.99,+00.00,01.00,000.00,1.00 ++174.99,+00.00,01.00,000.00,1.00 ++176.00,+00.00,01.00,000.00,1.00 ++177.00,+00.00,01.00,000.00,1.00 ++178.00,+00.00,01.00,000.00,1.00 ++179.00,+00.00,01.00,000.00,1.00 ++180.00,+00.00,01.00,000.00,1.00 +-179.00,+00.00,01.00,000.00,1.00 +-178.00,+00.00,01.00,000.00,1.00 +-177.00,+00.00,01.00,000.00,1.00 +-176.00,+00.00,01.00,000.00,1.00 +-174.99,+00.00,01.00,000.00,1.00 +-173.99,+00.00,01.00,000.00,1.00 +-172.99,+00.00,01.00,000.00,1.00 +-171.99,+00.00,01.00,000.00,1.00 +-170.99,+00.00,01.00,000.00,1.00 +-169.99,+00.00,01.00,000.00,1.00 +-168.99,+00.00,01.00,000.00,1.00 +-167.99,+00.00,01.00,000.00,1.00 +-166.99,+00.00,01.00,000.00,1.00 +-165.98,+00.00,01.00,000.00,1.00 +-164.98,+00.00,01.00,000.00,1.00 +-163.98,+00.00,01.00,000.00,1.00 +-162.98,+00.00,01.00,000.00,1.00 +-161.98,+00.00,01.00,000.00,1.00 +-160.98,+00.00,01.00,000.00,1.00 +-159.98,+00.00,01.00,000.00,1.00 +-158.98,+00.00,01.00,000.00,1.00 +-157.98,+00.00,01.00,000.00,1.00 +-156.97,+00.00,01.00,000.00,1.00 +-155.97,+00.00,01.00,000.00,1.00 +-154.97,+00.00,01.00,000.00,1.00 +-153.97,+00.00,01.00,000.00,1.00 +-152.97,+00.00,01.00,000.00,1.00 +-151.97,+00.00,01.00,000.00,1.00 +-150.97,+00.00,01.00,000.00,1.00 +-149.97,+00.00,01.00,000.00,1.00 +-148.97,+00.00,01.00,000.00,1.00 +-147.96,+00.00,01.00,000.00,1.00 +-146.96,+00.00,01.00,000.00,1.00 +-145.96,+00.00,01.00,000.00,1.00 +-144.96,+00.00,01.00,000.00,1.00 +-143.96,+00.00,01.00,000.00,1.00 +-142.96,+00.00,01.00,000.00,1.00 +-141.96,+00.00,01.00,000.00,1.00 +-140.96,+00.00,01.00,000.00,1.00 +-139.96,+00.00,01.00,000.00,1.00 +-138.95,+00.00,01.00,000.00,1.00 +-137.95,+00.00,01.00,000.00,1.00 +-136.95,+00.00,01.00,000.00,1.00 +-135.95,+00.00,01.00,000.00,1.00 +-134.95,+00.00,01.00,000.00,1.00 +-133.95,+00.00,01.00,000.00,1.00 +-132.95,+00.00,01.00,000.00,1.00 +-131.95,+00.00,01.00,000.00,1.00 +-130.95,+00.00,01.00,000.00,1.00 +-129.94,+00.00,01.00,000.00,1.00 +-128.94,+00.00,01.00,000.00,1.00 +-127.94,+00.00,01.00,000.00,1.00 +-126.94,+00.00,01.00,000.00,1.00 +-125.94,+00.00,01.00,000.00,1.00 +-124.94,+00.00,01.00,000.00,1.00 +-123.94,+00.00,01.00,000.00,1.00 +-122.94,+00.00,01.00,000.00,1.00 +-121.94,+00.00,01.00,000.00,1.00 +-120.93,+00.00,01.00,000.00,1.00 +-119.93,+00.00,01.00,000.00,1.00 +-118.93,+00.00,01.00,000.00,1.00 +-117.93,+00.00,01.00,000.00,1.00 +-116.93,+00.00,01.00,000.00,1.00 +-115.93,+00.00,01.00,000.00,1.00 +-114.93,+00.00,01.00,000.00,1.00 +-113.93,+00.00,01.00,000.00,1.00 +-112.93,+00.00,01.00,000.00,1.00 +-111.92,+00.00,01.00,000.00,1.00 +-110.92,+00.00,01.00,000.00,1.00 +-109.92,+00.00,01.00,000.00,1.00 +-108.92,+00.00,01.00,000.00,1.00 +-107.92,+00.00,01.00,000.00,1.00 +-106.92,+00.00,01.00,000.00,1.00 +-105.92,+00.00,01.00,000.00,1.00 +-104.92,+00.00,01.00,000.00,1.00 +-103.92,+00.00,01.00,000.00,1.00 +-102.91,+00.00,01.00,000.00,1.00 +-101.91,+00.00,01.00,000.00,1.00 +-100.91,+00.00,01.00,000.00,1.00 +-099.91,+00.00,01.00,000.00,1.00 +-098.91,+00.00,01.00,000.00,1.00 +-097.91,+00.00,01.00,000.00,1.00 +-096.91,+00.00,01.00,000.00,1.00 +-095.91,+00.00,01.00,000.00,1.00 +-094.91,+00.00,01.00,000.00,1.00 +-093.90,+00.00,01.00,000.00,1.00 +-092.90,+00.00,01.00,000.00,1.00 +-091.90,+00.00,01.00,000.00,1.00 +-090.90,+00.00,01.00,000.00,1.00 +-089.90,+00.00,01.00,000.00,1.00 +-088.90,+00.00,01.00,000.00,1.00 +-087.90,+00.00,01.00,000.00,1.00 +-086.90,+00.00,01.00,000.00,1.00 +-085.90,+00.00,01.00,000.00,1.00 +-084.89,+00.00,01.00,000.00,1.00 +-083.89,+00.00,01.00,000.00,1.00 +-082.89,+00.00,01.00,000.00,1.00 +-081.89,+00.00,01.00,000.00,1.00 +-080.89,+00.00,01.00,000.00,1.00 +-079.89,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t08_ch1.csv b/scripts/td_object_renderer/metadata/csv/t08_ch1.csv index ebc98c7aaf..2eaf94bbc4 100644 --- a/scripts/td_object_renderer/metadata/csv/t08_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t08_ch1.csv @@ -1,1000 +1,1000 @@ -0000,+000.00,+30.00,01.00,000.00,1.00 -0001,+000.00,+29.99,01.00,000.00,1.00 -0002,+000.00,+29.98,01.00,000.00,1.00 -0003,+000.00,+29.95,01.00,000.00,1.00 -0004,+000.00,+29.92,01.00,000.00,1.00 -0005,+000.00,+29.87,01.00,000.00,1.00 -0006,+000.00,+29.82,01.00,000.00,1.00 -0007,+000.00,+29.75,01.00,000.00,1.00 -0008,+000.00,+29.68,01.00,000.00,1.00 -0009,+000.00,+29.59,01.00,000.00,1.00 -0010,+000.00,+29.50,01.00,000.00,1.00 -0011,+000.00,+29.39,01.00,000.00,1.00 -0012,+000.00,+29.28,01.00,000.00,1.00 -0013,+000.00,+29.15,01.00,000.00,1.00 -0014,+000.00,+29.02,01.00,000.00,1.00 -0015,+000.00,+28.88,01.00,000.00,1.00 -0016,+000.00,+28.72,01.00,000.00,1.00 -0017,+000.00,+28.56,01.00,000.00,1.00 -0018,+000.00,+28.39,01.00,000.00,1.00 -0019,+000.00,+28.21,01.00,000.00,1.00 -0020,+000.00,+28.02,01.00,000.00,1.00 -0021,+000.00,+27.82,01.00,000.00,1.00 -0022,+000.00,+27.61,01.00,000.00,1.00 -0023,+000.00,+27.40,01.00,000.00,1.00 -0024,+000.00,+27.17,01.00,000.00,1.00 -0025,+000.00,+26.94,01.00,000.00,1.00 -0026,+000.00,+26.70,01.00,000.00,1.00 -0027,+000.00,+26.45,01.00,000.00,1.00 -0028,+000.00,+26.19,01.00,000.00,1.00 -0029,+000.00,+25.92,01.00,000.00,1.00 -0030,+000.00,+25.65,01.00,000.00,1.00 -0031,+000.00,+25.37,01.00,000.00,1.00 -0032,+000.00,+25.08,01.00,000.00,1.00 -0033,+000.00,+24.78,01.00,000.00,1.00 -0034,+000.00,+24.48,01.00,000.00,1.00 -0035,+000.00,+24.17,01.00,000.00,1.00 -0036,+000.00,+23.85,01.00,000.00,1.00 -0037,+000.00,+23.52,01.00,000.00,1.00 -0038,+000.00,+23.19,01.00,000.00,1.00 -0039,+000.00,+22.85,01.00,000.00,1.00 -0040,+000.00,+22.51,01.00,000.00,1.00 -0041,+000.00,+22.15,01.00,000.00,1.00 -0042,+000.00,+21.80,01.00,000.00,1.00 -0043,+000.00,+21.43,01.00,000.00,1.00 -0044,+000.00,+21.06,01.00,000.00,1.00 -0045,+000.00,+20.69,01.00,000.00,1.00 -0046,+000.00,+20.30,01.00,000.00,1.00 -0047,+000.00,+19.92,01.00,000.00,1.00 -0048,+000.00,+19.53,01.00,000.00,1.00 -0049,+000.00,+19.13,01.00,000.00,1.00 -0050,+000.00,+18.72,01.00,000.00,1.00 -0051,+000.00,+18.32,01.00,000.00,1.00 -0052,+000.00,+17.90,01.00,000.00,1.00 -0053,+000.00,+17.49,01.00,000.00,1.00 -0054,+000.00,+17.07,01.00,000.00,1.00 -0055,+000.00,+16.64,01.00,000.00,1.00 -0056,+000.00,+16.21,01.00,000.00,1.00 -0057,+000.00,+15.77,01.00,000.00,1.00 -0058,+000.00,+15.34,01.00,000.00,1.00 -0059,+000.00,+14.89,01.00,000.00,1.00 -0060,+000.00,+14.45,01.00,000.00,1.00 -0061,+000.00,+14.00,01.00,000.00,1.00 -0062,+000.00,+13.54,01.00,000.00,1.00 -0063,+000.00,+13.09,01.00,000.00,1.00 -0064,+000.00,+12.63,01.00,000.00,1.00 -0065,+000.00,+12.17,01.00,000.00,1.00 -0066,+000.00,+11.70,01.00,000.00,1.00 -0067,+000.00,+11.23,01.00,000.00,1.00 -0068,+000.00,+10.76,01.00,000.00,1.00 -0069,+000.00,+10.29,01.00,000.00,1.00 -0070,+000.00,+09.81,01.00,000.00,1.00 -0071,+000.00,+09.33,01.00,000.00,1.00 -0072,+000.00,+08.85,01.00,000.00,1.00 -0073,+000.00,+08.37,01.00,000.00,1.00 -0074,+000.00,+07.88,01.00,000.00,1.00 -0075,+000.00,+07.39,01.00,000.00,1.00 -0076,+000.00,+06.91,01.00,000.00,1.00 -0077,+000.00,+06.42,01.00,000.00,1.00 -0078,+000.00,+05.92,01.00,000.00,1.00 -0079,+000.00,+05.43,01.00,000.00,1.00 -0080,+000.00,+04.94,01.00,000.00,1.00 -0081,+000.00,+04.44,01.00,000.00,1.00 -0082,+000.00,+03.94,01.00,000.00,1.00 -0083,+000.00,+03.45,01.00,000.00,1.00 -0084,+000.00,+02.95,01.00,000.00,1.00 -0085,+000.00,+02.45,01.00,000.00,1.00 -0086,+000.00,+01.95,01.00,000.00,1.00 -0087,+000.00,+01.45,01.00,000.00,1.00 -0088,+000.00,+00.95,01.00,000.00,1.00 -0089,+000.00,+00.45,01.00,000.00,1.00 -0090,+000.00,-00.05,01.00,000.00,1.00 -0091,+000.00,-00.55,01.00,000.00,1.00 -0092,+000.00,-01.05,01.00,000.00,1.00 -0093,+000.00,-01.55,01.00,000.00,1.00 -0094,+000.00,-02.05,01.00,000.00,1.00 -0095,+000.00,-02.55,01.00,000.00,1.00 -0096,+000.00,-03.05,01.00,000.00,1.00 -0097,+000.00,-03.55,01.00,000.00,1.00 -0098,+000.00,-04.04,01.00,000.00,1.00 -0099,+000.00,-04.54,01.00,000.00,1.00 -0100,+000.00,-05.04,01.00,000.00,1.00 -0101,+000.00,-05.53,01.00,000.00,1.00 -0102,+000.00,-06.02,01.00,000.00,1.00 -0103,+000.00,-06.51,01.00,000.00,1.00 -0104,+000.00,-07.00,01.00,000.00,1.00 -0105,+000.00,-07.49,01.00,000.00,1.00 -0106,+000.00,-07.98,01.00,000.00,1.00 -0107,+000.00,-08.46,01.00,000.00,1.00 -0108,+000.00,-08.95,01.00,000.00,1.00 -0109,+000.00,-09.43,01.00,000.00,1.00 -0110,+000.00,-09.90,01.00,000.00,1.00 -0111,+000.00,-10.38,01.00,000.00,1.00 -0112,+000.00,-10.85,01.00,000.00,1.00 -0113,+000.00,-11.33,01.00,000.00,1.00 -0114,+000.00,-11.79,01.00,000.00,1.00 -0115,+000.00,-12.26,01.00,000.00,1.00 -0116,+000.00,-12.72,01.00,000.00,1.00 -0117,+000.00,-13.18,01.00,000.00,1.00 -0118,+000.00,-13.64,01.00,000.00,1.00 -0119,+000.00,-14.09,01.00,000.00,1.00 -0120,+000.00,-14.54,01.00,000.00,1.00 -0121,+000.00,-14.98,01.00,000.00,1.00 -0122,+000.00,-15.42,01.00,000.00,1.00 -0123,+000.00,-15.86,01.00,000.00,1.00 -0124,+000.00,-16.30,01.00,000.00,1.00 -0125,+000.00,-16.73,01.00,000.00,1.00 -0126,+000.00,-17.15,01.00,000.00,1.00 -0127,+000.00,-17.57,01.00,000.00,1.00 -0128,+000.00,-17.99,01.00,000.00,1.00 -0129,+000.00,-18.40,01.00,000.00,1.00 -0130,+000.00,-18.81,01.00,000.00,1.00 -0131,+000.00,-19.21,01.00,000.00,1.00 -0132,+000.00,-19.60,01.00,000.00,1.00 -0133,+000.00,-20.00,01.00,000.00,1.00 -0134,+000.00,-20.38,01.00,000.00,1.00 -0135,+000.00,-20.76,01.00,000.00,1.00 -0136,+000.00,-21.14,01.00,000.00,1.00 -0137,+000.00,-21.51,01.00,000.00,1.00 -0138,+000.00,-21.87,01.00,000.00,1.00 -0139,+000.00,-22.22,01.00,000.00,1.00 -0140,+000.00,-22.58,01.00,000.00,1.00 -0141,+000.00,-22.92,01.00,000.00,1.00 -0142,+000.00,-23.26,01.00,000.00,1.00 -0143,+000.00,-23.59,01.00,000.00,1.00 -0144,+000.00,-23.91,01.00,000.00,1.00 -0145,+000.00,-24.23,01.00,000.00,1.00 -0146,+000.00,-24.54,01.00,000.00,1.00 -0147,+000.00,-24.84,01.00,000.00,1.00 -0148,+000.00,-25.14,01.00,000.00,1.00 -0149,+000.00,-25.42,01.00,000.00,1.00 -0150,+000.00,-25.71,01.00,000.00,1.00 -0151,+000.00,-25.98,01.00,000.00,1.00 -0152,+000.00,-26.24,01.00,000.00,1.00 -0153,+000.00,-26.50,01.00,000.00,1.00 -0154,+000.00,-26.75,01.00,000.00,1.00 -0155,+000.00,-26.99,01.00,000.00,1.00 -0156,+000.00,-27.22,01.00,000.00,1.00 -0157,+000.00,-27.44,01.00,000.00,1.00 -0158,+000.00,-27.66,01.00,000.00,1.00 -0159,+000.00,-27.86,01.00,000.00,1.00 -0160,+000.00,-28.06,01.00,000.00,1.00 -0161,+000.00,-28.25,01.00,000.00,1.00 -0162,+000.00,-28.43,01.00,000.00,1.00 -0163,+000.00,-28.59,01.00,000.00,1.00 -0164,+000.00,-28.76,01.00,000.00,1.00 -0165,+000.00,-28.91,01.00,000.00,1.00 -0166,+000.00,-29.05,01.00,000.00,1.00 -0167,+000.00,-29.18,01.00,000.00,1.00 -0168,+000.00,-29.30,01.00,000.00,1.00 -0169,+000.00,-29.41,01.00,000.00,1.00 -0170,+000.00,-29.52,01.00,000.00,1.00 -0171,+000.00,-29.61,01.00,000.00,1.00 -0172,+000.00,-29.69,01.00,000.00,1.00 -0173,+000.00,-29.77,01.00,000.00,1.00 -0174,+000.00,-29.83,01.00,000.00,1.00 -0175,+000.00,-29.88,01.00,000.00,1.00 -0176,+000.00,-29.93,01.00,000.00,1.00 -0177,+000.00,-29.96,01.00,000.00,1.00 -0178,+000.00,-29.98,01.00,000.00,1.00 -0179,+000.00,-30.00,01.00,000.00,1.00 -0180,+000.00,-30.00,01.00,000.00,1.00 -0181,+000.00,-29.99,01.00,000.00,1.00 -0182,+000.00,-29.98,01.00,000.00,1.00 -0183,+000.00,-29.95,01.00,000.00,1.00 -0184,+000.00,-29.91,01.00,000.00,1.00 -0185,+000.00,-29.86,01.00,000.00,1.00 -0186,+000.00,-29.81,01.00,000.00,1.00 -0187,+000.00,-29.74,01.00,000.00,1.00 -0188,+000.00,-29.66,01.00,000.00,1.00 -0189,+000.00,-29.57,01.00,000.00,1.00 -0190,+000.00,-29.48,01.00,000.00,1.00 -0191,+000.00,-29.37,01.00,000.00,1.00 -0192,+000.00,-29.25,01.00,000.00,1.00 -0193,+000.00,-29.13,01.00,000.00,1.00 -0194,+000.00,-28.99,01.00,000.00,1.00 -0195,+000.00,-28.85,01.00,000.00,1.00 -0196,+000.00,-28.69,01.00,000.00,1.00 -0197,+000.00,-28.53,01.00,000.00,1.00 -0198,+000.00,-28.35,01.00,000.00,1.00 -0199,+000.00,-28.17,01.00,000.00,1.00 -0200,+000.00,-27.98,01.00,000.00,1.00 -0201,+000.00,-27.78,01.00,000.00,1.00 -0202,+000.00,-27.57,01.00,000.00,1.00 -0203,+000.00,-27.35,01.00,000.00,1.00 -0204,+000.00,-27.13,01.00,000.00,1.00 -0205,+000.00,-26.89,01.00,000.00,1.00 -0206,+000.00,-26.65,01.00,000.00,1.00 -0207,+000.00,-26.40,01.00,000.00,1.00 -0208,+000.00,-26.14,01.00,000.00,1.00 -0209,+000.00,-25.87,01.00,000.00,1.00 -0210,+000.00,-25.59,01.00,000.00,1.00 -0211,+000.00,-25.31,01.00,000.00,1.00 -0212,+000.00,-25.02,01.00,000.00,1.00 -0213,+000.00,-24.72,01.00,000.00,1.00 -0214,+000.00,-24.42,01.00,000.00,1.00 -0215,+000.00,-24.10,01.00,000.00,1.00 -0216,+000.00,-23.78,01.00,000.00,1.00 -0217,+000.00,-23.46,01.00,000.00,1.00 -0218,+000.00,-23.12,01.00,000.00,1.00 -0219,+000.00,-22.78,01.00,000.00,1.00 -0220,+000.00,-22.44,01.00,000.00,1.00 -0221,+000.00,-22.08,01.00,000.00,1.00 -0222,+000.00,-21.72,01.00,000.00,1.00 -0223,+000.00,-21.36,01.00,000.00,1.00 -0224,+000.00,-20.99,01.00,000.00,1.00 -0225,+000.00,-20.61,01.00,000.00,1.00 -0226,+000.00,-20.23,01.00,000.00,1.00 -0227,+000.00,-19.84,01.00,000.00,1.00 -0228,+000.00,-19.45,01.00,000.00,1.00 -0229,+000.00,-19.05,01.00,000.00,1.00 -0230,+000.00,-18.64,01.00,000.00,1.00 -0231,+000.00,-18.23,01.00,000.00,1.00 -0232,+000.00,-17.82,01.00,000.00,1.00 -0233,+000.00,-17.40,01.00,000.00,1.00 -0234,+000.00,-16.98,01.00,000.00,1.00 -0235,+000.00,-16.55,01.00,000.00,1.00 -0236,+000.00,-16.12,01.00,000.00,1.00 -0237,+000.00,-15.69,01.00,000.00,1.00 -0238,+000.00,-15.25,01.00,000.00,1.00 -0239,+000.00,-14.80,01.00,000.00,1.00 -0240,+000.00,-14.36,01.00,000.00,1.00 -0241,+000.00,-13.91,01.00,000.00,1.00 -0242,+000.00,-13.45,01.00,000.00,1.00 -0243,+000.00,-13.00,01.00,000.00,1.00 -0244,+000.00,-12.54,01.00,000.00,1.00 -0245,+000.00,-12.07,01.00,000.00,1.00 -0246,+000.00,-11.61,01.00,000.00,1.00 -0247,+000.00,-11.14,01.00,000.00,1.00 -0248,+000.00,-10.67,01.00,000.00,1.00 -0249,+000.00,-10.19,01.00,000.00,1.00 -0250,+000.00,-09.71,01.00,000.00,1.00 -0251,+000.00,-09.23,01.00,000.00,1.00 -0252,+000.00,-08.75,01.00,000.00,1.00 -0253,+000.00,-08.27,01.00,000.00,1.00 -0254,+000.00,-07.78,01.00,000.00,1.00 -0255,+000.00,-07.30,01.00,000.00,1.00 -0256,+000.00,-06.81,01.00,000.00,1.00 -0257,+000.00,-06.32,01.00,000.00,1.00 -0258,+000.00,-05.83,01.00,000.00,1.00 -0259,+000.00,-05.33,01.00,000.00,1.00 -0260,+000.00,-04.84,01.00,000.00,1.00 -0261,+000.00,-04.34,01.00,000.00,1.00 -0262,+000.00,-03.85,01.00,000.00,1.00 -0263,+000.00,-03.35,01.00,000.00,1.00 -0264,+000.00,-02.85,01.00,000.00,1.00 -0265,+000.00,-02.35,01.00,000.00,1.00 -0266,+000.00,-01.85,01.00,000.00,1.00 -0267,+000.00,-01.35,01.00,000.00,1.00 -0268,+000.00,-00.85,01.00,000.00,1.00 -0269,+000.00,-00.35,01.00,000.00,1.00 -0270,+000.00,+00.15,01.00,000.00,1.00 -0271,+000.00,+00.65,01.00,000.00,1.00 -0272,+000.00,+01.15,01.00,000.00,1.00 -0273,+000.00,+01.65,01.00,000.00,1.00 -0274,+000.00,+02.15,01.00,000.00,1.00 -0275,+000.00,+02.65,01.00,000.00,1.00 -0276,+000.00,+03.15,01.00,000.00,1.00 -0277,+000.00,+03.65,01.00,000.00,1.00 -0278,+000.00,+04.14,01.00,000.00,1.00 -0279,+000.00,+04.64,01.00,000.00,1.00 -0280,+000.00,+05.13,01.00,000.00,1.00 -0281,+000.00,+05.63,01.00,000.00,1.00 -0282,+000.00,+06.12,01.00,000.00,1.00 -0283,+000.00,+06.61,01.00,000.00,1.00 -0284,+000.00,+07.10,01.00,000.00,1.00 -0285,+000.00,+07.59,01.00,000.00,1.00 -0286,+000.00,+08.08,01.00,000.00,1.00 -0287,+000.00,+08.56,01.00,000.00,1.00 -0288,+000.00,+09.04,01.00,000.00,1.00 -0289,+000.00,+09.52,01.00,000.00,1.00 -0290,+000.00,+10.00,01.00,000.00,1.00 -0291,+000.00,+10.48,01.00,000.00,1.00 -0292,+000.00,+10.95,01.00,000.00,1.00 -0293,+000.00,+11.42,01.00,000.00,1.00 -0294,+000.00,+11.89,01.00,000.00,1.00 -0295,+000.00,+12.35,01.00,000.00,1.00 -0296,+000.00,+12.81,01.00,000.00,1.00 -0297,+000.00,+13.27,01.00,000.00,1.00 -0298,+000.00,+13.73,01.00,000.00,1.00 -0299,+000.00,+14.18,01.00,000.00,1.00 -0300,+000.00,+14.63,01.00,000.00,1.00 -0301,+000.00,+15.07,01.00,000.00,1.00 -0302,+000.00,+15.51,01.00,000.00,1.00 -0303,+000.00,+15.95,01.00,000.00,1.00 -0304,+000.00,+16.38,01.00,000.00,1.00 -0305,+000.00,+16.81,01.00,000.00,1.00 -0306,+000.00,+17.23,01.00,000.00,1.00 -0307,+000.00,+17.65,01.00,000.00,1.00 -0308,+000.00,+18.07,01.00,000.00,1.00 -0309,+000.00,+18.48,01.00,000.00,1.00 -0310,+000.00,+18.89,01.00,000.00,1.00 -0311,+000.00,+19.29,01.00,000.00,1.00 -0312,+000.00,+19.68,01.00,000.00,1.00 -0313,+000.00,+20.07,01.00,000.00,1.00 -0314,+000.00,+20.46,01.00,000.00,1.00 -0315,+000.00,+20.84,01.00,000.00,1.00 -0316,+000.00,+21.21,01.00,000.00,1.00 -0317,+000.00,+21.58,01.00,000.00,1.00 -0318,+000.00,+21.94,01.00,000.00,1.00 -0319,+000.00,+22.30,01.00,000.00,1.00 -0320,+000.00,+22.64,01.00,000.00,1.00 -0321,+000.00,+22.99,01.00,000.00,1.00 -0322,+000.00,+23.32,01.00,000.00,1.00 -0323,+000.00,+23.65,01.00,000.00,1.00 -0324,+000.00,+23.98,01.00,000.00,1.00 -0325,+000.00,+24.29,01.00,000.00,1.00 -0326,+000.00,+24.60,01.00,000.00,1.00 -0327,+000.00,+24.90,01.00,000.00,1.00 -0328,+000.00,+25.20,01.00,000.00,1.00 -0329,+000.00,+25.48,01.00,000.00,1.00 -0330,+000.00,+25.76,01.00,000.00,1.00 -0331,+000.00,+26.03,01.00,000.00,1.00 -0332,+000.00,+26.29,01.00,000.00,1.00 -0333,+000.00,+26.55,01.00,000.00,1.00 -0334,+000.00,+26.80,01.00,000.00,1.00 -0335,+000.00,+27.03,01.00,000.00,1.00 -0336,+000.00,+27.26,01.00,000.00,1.00 -0337,+000.00,+27.49,01.00,000.00,1.00 -0338,+000.00,+27.70,01.00,000.00,1.00 -0339,+000.00,+27.90,01.00,000.00,1.00 -0340,+000.00,+28.10,01.00,000.00,1.00 -0341,+000.00,+28.28,01.00,000.00,1.00 -0342,+000.00,+28.46,01.00,000.00,1.00 -0343,+000.00,+28.63,01.00,000.00,1.00 -0344,+000.00,+28.79,01.00,000.00,1.00 -0345,+000.00,+28.94,01.00,000.00,1.00 -0346,+000.00,+29.07,01.00,000.00,1.00 -0347,+000.00,+29.20,01.00,000.00,1.00 -0348,+000.00,+29.33,01.00,000.00,1.00 -0349,+000.00,+29.44,01.00,000.00,1.00 -0350,+000.00,+29.54,01.00,000.00,1.00 -0351,+000.00,+29.63,01.00,000.00,1.00 -0352,+000.00,+29.71,01.00,000.00,1.00 -0353,+000.00,+29.78,01.00,000.00,1.00 -0354,+000.00,+29.84,01.00,000.00,1.00 -0355,+000.00,+29.89,01.00,000.00,1.00 -0356,+000.00,+29.93,01.00,000.00,1.00 -0357,+000.00,+29.97,01.00,000.00,1.00 -0358,+000.00,+29.99,01.00,000.00,1.00 -0359,+000.00,+30.00,01.00,000.00,1.00 -0360,+000.00,+30.00,01.00,000.00,1.00 -0361,+000.00,+29.99,01.00,000.00,1.00 -0362,+000.00,+29.97,01.00,000.00,1.00 -0363,+000.00,+29.94,01.00,000.00,1.00 -0364,+000.00,+29.90,01.00,000.00,1.00 -0365,+000.00,+29.85,01.00,000.00,1.00 -0366,+000.00,+29.79,01.00,000.00,1.00 -0367,+000.00,+29.72,01.00,000.00,1.00 -0368,+000.00,+29.64,01.00,000.00,1.00 -0369,+000.00,+29.56,01.00,000.00,1.00 -0370,+000.00,+29.46,01.00,000.00,1.00 -0371,+000.00,+29.35,01.00,000.00,1.00 -0372,+000.00,+29.23,01.00,000.00,1.00 -0373,+000.00,+29.10,01.00,000.00,1.00 -0374,+000.00,+28.96,01.00,000.00,1.00 -0375,+000.00,+28.82,01.00,000.00,1.00 -0376,+000.00,+28.66,01.00,000.00,1.00 -0377,+000.00,+28.49,01.00,000.00,1.00 -0378,+000.00,+28.32,01.00,000.00,1.00 -0379,+000.00,+28.13,01.00,000.00,1.00 -0380,+000.00,+27.94,01.00,000.00,1.00 -0381,+000.00,+27.74,01.00,000.00,1.00 -0382,+000.00,+27.53,01.00,000.00,1.00 -0383,+000.00,+27.31,01.00,000.00,1.00 -0384,+000.00,+27.08,01.00,000.00,1.00 -0385,+000.00,+26.84,01.00,000.00,1.00 -0386,+000.00,+26.60,01.00,000.00,1.00 -0387,+000.00,+26.35,01.00,000.00,1.00 -0388,+000.00,+26.08,01.00,000.00,1.00 -0389,+000.00,+25.81,01.00,000.00,1.00 -0390,+000.00,+25.54,01.00,000.00,1.00 -0391,+000.00,+25.25,01.00,000.00,1.00 -0392,+000.00,+24.96,01.00,000.00,1.00 -0393,+000.00,+24.66,01.00,000.00,1.00 -0394,+000.00,+24.35,01.00,000.00,1.00 -0395,+000.00,+24.04,01.00,000.00,1.00 -0396,+000.00,+23.72,01.00,000.00,1.00 -0397,+000.00,+23.39,01.00,000.00,1.00 -0398,+000.00,+23.06,01.00,000.00,1.00 -0399,+000.00,+22.71,01.00,000.00,1.00 -0400,+000.00,+22.37,01.00,000.00,1.00 -0401,+000.00,+22.01,01.00,000.00,1.00 -0402,+000.00,+21.65,01.00,000.00,1.00 -0403,+000.00,+21.28,01.00,000.00,1.00 -0404,+000.00,+20.91,01.00,000.00,1.00 -0405,+000.00,+20.53,01.00,000.00,1.00 -0406,+000.00,+20.15,01.00,000.00,1.00 -0407,+000.00,+19.76,01.00,000.00,1.00 -0408,+000.00,+19.37,01.00,000.00,1.00 -0409,+000.00,+18.97,01.00,000.00,1.00 -0410,+000.00,+18.56,01.00,000.00,1.00 -0411,+000.00,+18.15,01.00,000.00,1.00 -0412,+000.00,+17.74,01.00,000.00,1.00 -0413,+000.00,+17.32,01.00,000.00,1.00 -0414,+000.00,+16.90,01.00,000.00,1.00 -0415,+000.00,+16.47,01.00,000.00,1.00 -0416,+000.00,+16.04,01.00,000.00,1.00 -0417,+000.00,+15.60,01.00,000.00,1.00 -0418,+000.00,+15.16,01.00,000.00,1.00 -0419,+000.00,+14.72,01.00,000.00,1.00 -0420,+000.00,+14.27,01.00,000.00,1.00 -0421,+000.00,+13.82,01.00,000.00,1.00 -0422,+000.00,+13.36,01.00,000.00,1.00 -0423,+000.00,+12.90,01.00,000.00,1.00 -0424,+000.00,+12.44,01.00,000.00,1.00 -0425,+000.00,+11.98,01.00,000.00,1.00 -0426,+000.00,+11.51,01.00,000.00,1.00 -0427,+000.00,+11.04,01.00,000.00,1.00 -0428,+000.00,+10.57,01.00,000.00,1.00 -0429,+000.00,+10.10,01.00,000.00,1.00 -0430,+000.00,+09.62,01.00,000.00,1.00 -0431,+000.00,+09.14,01.00,000.00,1.00 -0432,+000.00,+08.66,01.00,000.00,1.00 -0433,+000.00,+08.17,01.00,000.00,1.00 -0434,+000.00,+07.69,01.00,000.00,1.00 -0435,+000.00,+07.20,01.00,000.00,1.00 -0436,+000.00,+06.71,01.00,000.00,1.00 -0437,+000.00,+06.22,01.00,000.00,1.00 -0438,+000.00,+05.73,01.00,000.00,1.00 -0439,+000.00,+05.23,01.00,000.00,1.00 -0440,+000.00,+04.74,01.00,000.00,1.00 -0441,+000.00,+04.24,01.00,000.00,1.00 -0442,+000.00,+03.75,01.00,000.00,1.00 -0443,+000.00,+03.25,01.00,000.00,1.00 -0444,+000.00,+02.75,01.00,000.00,1.00 -0445,+000.00,+02.25,01.00,000.00,1.00 -0446,+000.00,+01.75,01.00,000.00,1.00 -0447,+000.00,+01.25,01.00,000.00,1.00 -0448,+000.00,+00.75,01.00,000.00,1.00 -0449,+000.00,+00.25,01.00,000.00,1.00 -0450,+000.00,-00.25,01.00,000.00,1.00 -0451,+000.00,-00.75,01.00,000.00,1.00 -0452,+000.00,-01.25,01.00,000.00,1.00 -0453,+000.00,-01.75,01.00,000.00,1.00 -0454,+000.00,-02.25,01.00,000.00,1.00 -0455,+000.00,-02.75,01.00,000.00,1.00 -0456,+000.00,-03.25,01.00,000.00,1.00 -0457,+000.00,-03.75,01.00,000.00,1.00 -0458,+000.00,-04.24,01.00,000.00,1.00 -0459,+000.00,-04.74,01.00,000.00,1.00 -0460,+000.00,-05.23,01.00,000.00,1.00 -0461,+000.00,-05.73,01.00,000.00,1.00 -0462,+000.00,-06.22,01.00,000.00,1.00 -0463,+000.00,-06.71,01.00,000.00,1.00 -0464,+000.00,-07.20,01.00,000.00,1.00 -0465,+000.00,-07.69,01.00,000.00,1.00 -0466,+000.00,-08.17,01.00,000.00,1.00 -0467,+000.00,-08.66,01.00,000.00,1.00 -0468,+000.00,-09.14,01.00,000.00,1.00 -0469,+000.00,-09.62,01.00,000.00,1.00 -0470,+000.00,-10.10,01.00,000.00,1.00 -0471,+000.00,-10.57,01.00,000.00,1.00 -0472,+000.00,-11.04,01.00,000.00,1.00 -0473,+000.00,-11.51,01.00,000.00,1.00 -0474,+000.00,-11.98,01.00,000.00,1.00 -0475,+000.00,-12.44,01.00,000.00,1.00 -0476,+000.00,-12.90,01.00,000.00,1.00 -0477,+000.00,-13.36,01.00,000.00,1.00 -0478,+000.00,-13.82,01.00,000.00,1.00 -0479,+000.00,-14.27,01.00,000.00,1.00 -0480,+000.00,-14.72,01.00,000.00,1.00 -0481,+000.00,-15.16,01.00,000.00,1.00 -0482,+000.00,-15.60,01.00,000.00,1.00 -0483,+000.00,-16.04,01.00,000.00,1.00 -0484,+000.00,-16.47,01.00,000.00,1.00 -0485,+000.00,-16.90,01.00,000.00,1.00 -0486,+000.00,-17.32,01.00,000.00,1.00 -0487,+000.00,-17.74,01.00,000.00,1.00 -0488,+000.00,-18.15,01.00,000.00,1.00 -0489,+000.00,-18.56,01.00,000.00,1.00 -0490,+000.00,-18.97,01.00,000.00,1.00 -0491,+000.00,-19.37,01.00,000.00,1.00 -0492,+000.00,-19.76,01.00,000.00,1.00 -0493,+000.00,-20.15,01.00,000.00,1.00 -0494,+000.00,-20.53,01.00,000.00,1.00 -0495,+000.00,-20.91,01.00,000.00,1.00 -0496,+000.00,-21.28,01.00,000.00,1.00 -0497,+000.00,-21.65,01.00,000.00,1.00 -0498,+000.00,-22.01,01.00,000.00,1.00 -0499,+000.00,-22.37,01.00,000.00,1.00 -0500,+000.00,-22.71,01.00,000.00,1.00 -0501,+000.00,-23.06,01.00,000.00,1.00 -0502,+000.00,-23.39,01.00,000.00,1.00 -0503,+000.00,-23.72,01.00,000.00,1.00 -0504,+000.00,-24.04,01.00,000.00,1.00 -0505,+000.00,-24.35,01.00,000.00,1.00 -0506,+000.00,-24.66,01.00,000.00,1.00 -0507,+000.00,-24.96,01.00,000.00,1.00 -0508,+000.00,-25.25,01.00,000.00,1.00 -0509,+000.00,-25.54,01.00,000.00,1.00 -0510,+000.00,-25.81,01.00,000.00,1.00 -0511,+000.00,-26.08,01.00,000.00,1.00 -0512,+000.00,-26.35,01.00,000.00,1.00 -0513,+000.00,-26.60,01.00,000.00,1.00 -0514,+000.00,-26.84,01.00,000.00,1.00 -0515,+000.00,-27.08,01.00,000.00,1.00 -0516,+000.00,-27.31,01.00,000.00,1.00 -0517,+000.00,-27.53,01.00,000.00,1.00 -0518,+000.00,-27.74,01.00,000.00,1.00 -0519,+000.00,-27.94,01.00,000.00,1.00 -0520,+000.00,-28.13,01.00,000.00,1.00 -0521,+000.00,-28.32,01.00,000.00,1.00 -0522,+000.00,-28.49,01.00,000.00,1.00 -0523,+000.00,-28.66,01.00,000.00,1.00 -0524,+000.00,-28.82,01.00,000.00,1.00 -0525,+000.00,-28.96,01.00,000.00,1.00 -0526,+000.00,-29.10,01.00,000.00,1.00 -0527,+000.00,-29.23,01.00,000.00,1.00 -0528,+000.00,-29.35,01.00,000.00,1.00 -0529,+000.00,-29.46,01.00,000.00,1.00 -0530,+000.00,-29.56,01.00,000.00,1.00 -0531,+000.00,-29.64,01.00,000.00,1.00 -0532,+000.00,-29.72,01.00,000.00,1.00 -0533,+000.00,-29.79,01.00,000.00,1.00 -0534,+000.00,-29.85,01.00,000.00,1.00 -0535,+000.00,-29.90,01.00,000.00,1.00 -0536,+000.00,-29.94,01.00,000.00,1.00 -0537,+000.00,-29.97,01.00,000.00,1.00 -0538,+000.00,-29.99,01.00,000.00,1.00 -0539,+000.00,-30.00,01.00,000.00,1.00 -0540,+000.00,-30.00,01.00,000.00,1.00 -0541,+000.00,-29.99,01.00,000.00,1.00 -0542,+000.00,-29.97,01.00,000.00,1.00 -0543,+000.00,-29.93,01.00,000.00,1.00 -0544,+000.00,-29.89,01.00,000.00,1.00 -0545,+000.00,-29.84,01.00,000.00,1.00 -0546,+000.00,-29.78,01.00,000.00,1.00 -0547,+000.00,-29.71,01.00,000.00,1.00 -0548,+000.00,-29.63,01.00,000.00,1.00 -0549,+000.00,-29.54,01.00,000.00,1.00 -0550,+000.00,-29.44,01.00,000.00,1.00 -0551,+000.00,-29.33,01.00,000.00,1.00 -0552,+000.00,-29.20,01.00,000.00,1.00 -0553,+000.00,-29.07,01.00,000.00,1.00 -0554,+000.00,-28.94,01.00,000.00,1.00 -0555,+000.00,-28.79,01.00,000.00,1.00 -0556,+000.00,-28.63,01.00,000.00,1.00 -0557,+000.00,-28.46,01.00,000.00,1.00 -0558,+000.00,-28.28,01.00,000.00,1.00 -0559,+000.00,-28.10,01.00,000.00,1.00 -0560,+000.00,-27.90,01.00,000.00,1.00 -0561,+000.00,-27.70,01.00,000.00,1.00 -0562,+000.00,-27.49,01.00,000.00,1.00 -0563,+000.00,-27.26,01.00,000.00,1.00 -0564,+000.00,-27.03,01.00,000.00,1.00 -0565,+000.00,-26.80,01.00,000.00,1.00 -0566,+000.00,-26.55,01.00,000.00,1.00 -0567,+000.00,-26.29,01.00,000.00,1.00 -0568,+000.00,-26.03,01.00,000.00,1.00 -0569,+000.00,-25.76,01.00,000.00,1.00 -0570,+000.00,-25.48,01.00,000.00,1.00 -0571,+000.00,-25.20,01.00,000.00,1.00 -0572,+000.00,-24.90,01.00,000.00,1.00 -0573,+000.00,-24.60,01.00,000.00,1.00 -0574,+000.00,-24.29,01.00,000.00,1.00 -0575,+000.00,-23.98,01.00,000.00,1.00 -0576,+000.00,-23.65,01.00,000.00,1.00 -0577,+000.00,-23.32,01.00,000.00,1.00 -0578,+000.00,-22.99,01.00,000.00,1.00 -0579,+000.00,-22.64,01.00,000.00,1.00 -0580,+000.00,-22.30,01.00,000.00,1.00 -0581,+000.00,-21.94,01.00,000.00,1.00 -0582,+000.00,-21.58,01.00,000.00,1.00 -0583,+000.00,-21.21,01.00,000.00,1.00 -0584,+000.00,-20.84,01.00,000.00,1.00 -0585,+000.00,-20.46,01.00,000.00,1.00 -0586,+000.00,-20.07,01.00,000.00,1.00 -0587,+000.00,-19.68,01.00,000.00,1.00 -0588,+000.00,-19.29,01.00,000.00,1.00 -0589,+000.00,-18.89,01.00,000.00,1.00 -0590,+000.00,-18.48,01.00,000.00,1.00 -0591,+000.00,-18.07,01.00,000.00,1.00 -0592,+000.00,-17.65,01.00,000.00,1.00 -0593,+000.00,-17.23,01.00,000.00,1.00 -0594,+000.00,-16.81,01.00,000.00,1.00 -0595,+000.00,-16.38,01.00,000.00,1.00 -0596,+000.00,-15.95,01.00,000.00,1.00 -0597,+000.00,-15.51,01.00,000.00,1.00 -0598,+000.00,-15.07,01.00,000.00,1.00 -0599,+000.00,-14.63,01.00,000.00,1.00 -0600,+000.00,-14.18,01.00,000.00,1.00 -0601,+000.00,-13.73,01.00,000.00,1.00 -0602,+000.00,-13.27,01.00,000.00,1.00 -0603,+000.00,-12.81,01.00,000.00,1.00 -0604,+000.00,-12.35,01.00,000.00,1.00 -0605,+000.00,-11.89,01.00,000.00,1.00 -0606,+000.00,-11.42,01.00,000.00,1.00 -0607,+000.00,-10.95,01.00,000.00,1.00 -0608,+000.00,-10.48,01.00,000.00,1.00 -0609,+000.00,-10.00,01.00,000.00,1.00 -0610,+000.00,-09.52,01.00,000.00,1.00 -0611,+000.00,-09.04,01.00,000.00,1.00 -0612,+000.00,-08.56,01.00,000.00,1.00 -0613,+000.00,-08.08,01.00,000.00,1.00 -0614,+000.00,-07.59,01.00,000.00,1.00 -0615,+000.00,-07.10,01.00,000.00,1.00 -0616,+000.00,-06.61,01.00,000.00,1.00 -0617,+000.00,-06.12,01.00,000.00,1.00 -0618,+000.00,-05.63,01.00,000.00,1.00 -0619,+000.00,-05.13,01.00,000.00,1.00 -0620,+000.00,-04.64,01.00,000.00,1.00 -0621,+000.00,-04.14,01.00,000.00,1.00 -0622,+000.00,-03.65,01.00,000.00,1.00 -0623,+000.00,-03.15,01.00,000.00,1.00 -0624,+000.00,-02.65,01.00,000.00,1.00 -0625,+000.00,-02.15,01.00,000.00,1.00 -0626,+000.00,-01.65,01.00,000.00,1.00 -0627,+000.00,-01.15,01.00,000.00,1.00 -0628,+000.00,-00.65,01.00,000.00,1.00 -0629,+000.00,-00.15,01.00,000.00,1.00 -0630,+000.00,+00.35,01.00,000.00,1.00 -0631,+000.00,+00.85,01.00,000.00,1.00 -0632,+000.00,+01.35,01.00,000.00,1.00 -0633,+000.00,+01.85,01.00,000.00,1.00 -0634,+000.00,+02.35,01.00,000.00,1.00 -0635,+000.00,+02.85,01.00,000.00,1.00 -0636,+000.00,+03.35,01.00,000.00,1.00 -0637,+000.00,+03.85,01.00,000.00,1.00 -0638,+000.00,+04.34,01.00,000.00,1.00 -0639,+000.00,+04.84,01.00,000.00,1.00 -0640,+000.00,+05.33,01.00,000.00,1.00 -0641,+000.00,+05.83,01.00,000.00,1.00 -0642,+000.00,+06.32,01.00,000.00,1.00 -0643,+000.00,+06.81,01.00,000.00,1.00 -0644,+000.00,+07.30,01.00,000.00,1.00 -0645,+000.00,+07.78,01.00,000.00,1.00 -0646,+000.00,+08.27,01.00,000.00,1.00 -0647,+000.00,+08.75,01.00,000.00,1.00 -0648,+000.00,+09.23,01.00,000.00,1.00 -0649,+000.00,+09.71,01.00,000.00,1.00 -0650,+000.00,+10.19,01.00,000.00,1.00 -0651,+000.00,+10.67,01.00,000.00,1.00 -0652,+000.00,+11.14,01.00,000.00,1.00 -0653,+000.00,+11.61,01.00,000.00,1.00 -0654,+000.00,+12.07,01.00,000.00,1.00 -0655,+000.00,+12.54,01.00,000.00,1.00 -0656,+000.00,+13.00,01.00,000.00,1.00 -0657,+000.00,+13.45,01.00,000.00,1.00 -0658,+000.00,+13.91,01.00,000.00,1.00 -0659,+000.00,+14.36,01.00,000.00,1.00 -0660,+000.00,+14.80,01.00,000.00,1.00 -0661,+000.00,+15.25,01.00,000.00,1.00 -0662,+000.00,+15.69,01.00,000.00,1.00 -0663,+000.00,+16.12,01.00,000.00,1.00 -0664,+000.00,+16.55,01.00,000.00,1.00 -0665,+000.00,+16.98,01.00,000.00,1.00 -0666,+000.00,+17.40,01.00,000.00,1.00 -0667,+000.00,+17.82,01.00,000.00,1.00 -0668,+000.00,+18.23,01.00,000.00,1.00 -0669,+000.00,+18.64,01.00,000.00,1.00 -0670,+000.00,+19.05,01.00,000.00,1.00 -0671,+000.00,+19.45,01.00,000.00,1.00 -0672,+000.00,+19.84,01.00,000.00,1.00 -0673,+000.00,+20.23,01.00,000.00,1.00 -0674,+000.00,+20.61,01.00,000.00,1.00 -0675,+000.00,+20.99,01.00,000.00,1.00 -0676,+000.00,+21.36,01.00,000.00,1.00 -0677,+000.00,+21.72,01.00,000.00,1.00 -0678,+000.00,+22.08,01.00,000.00,1.00 -0679,+000.00,+22.44,01.00,000.00,1.00 -0680,+000.00,+22.78,01.00,000.00,1.00 -0681,+000.00,+23.12,01.00,000.00,1.00 -0682,+000.00,+23.46,01.00,000.00,1.00 -0683,+000.00,+23.78,01.00,000.00,1.00 -0684,+000.00,+24.10,01.00,000.00,1.00 -0685,+000.00,+24.42,01.00,000.00,1.00 -0686,+000.00,+24.72,01.00,000.00,1.00 -0687,+000.00,+25.02,01.00,000.00,1.00 -0688,+000.00,+25.31,01.00,000.00,1.00 -0689,+000.00,+25.59,01.00,000.00,1.00 -0690,+000.00,+25.87,01.00,000.00,1.00 -0691,+000.00,+26.14,01.00,000.00,1.00 -0692,+000.00,+26.40,01.00,000.00,1.00 -0693,+000.00,+26.65,01.00,000.00,1.00 -0694,+000.00,+26.89,01.00,000.00,1.00 -0695,+000.00,+27.13,01.00,000.00,1.00 -0696,+000.00,+27.35,01.00,000.00,1.00 -0697,+000.00,+27.57,01.00,000.00,1.00 -0698,+000.00,+27.78,01.00,000.00,1.00 -0699,+000.00,+27.98,01.00,000.00,1.00 -0700,+000.00,+28.17,01.00,000.00,1.00 -0701,+000.00,+28.35,01.00,000.00,1.00 -0702,+000.00,+28.53,01.00,000.00,1.00 -0703,+000.00,+28.69,01.00,000.00,1.00 -0704,+000.00,+28.85,01.00,000.00,1.00 -0705,+000.00,+28.99,01.00,000.00,1.00 -0706,+000.00,+29.13,01.00,000.00,1.00 -0707,+000.00,+29.25,01.00,000.00,1.00 -0708,+000.00,+29.37,01.00,000.00,1.00 -0709,+000.00,+29.48,01.00,000.00,1.00 -0710,+000.00,+29.57,01.00,000.00,1.00 -0711,+000.00,+29.66,01.00,000.00,1.00 -0712,+000.00,+29.74,01.00,000.00,1.00 -0713,+000.00,+29.81,01.00,000.00,1.00 -0714,+000.00,+29.86,01.00,000.00,1.00 -0715,+000.00,+29.91,01.00,000.00,1.00 -0716,+000.00,+29.95,01.00,000.00,1.00 -0717,+000.00,+29.98,01.00,000.00,1.00 -0718,+000.00,+29.99,01.00,000.00,1.00 -0719,+000.00,+30.00,01.00,000.00,1.00 -0720,+000.00,+30.00,01.00,000.00,1.00 -0721,+000.00,+29.98,01.00,000.00,1.00 -0722,+000.00,+29.96,01.00,000.00,1.00 -0723,+000.00,+29.93,01.00,000.00,1.00 -0724,+000.00,+29.88,01.00,000.00,1.00 -0725,+000.00,+29.83,01.00,000.00,1.00 -0726,+000.00,+29.77,01.00,000.00,1.00 -0727,+000.00,+29.69,01.00,000.00,1.00 -0728,+000.00,+29.61,01.00,000.00,1.00 -0729,+000.00,+29.52,01.00,000.00,1.00 -0730,+000.00,+29.41,01.00,000.00,1.00 -0731,+000.00,+29.30,01.00,000.00,1.00 -0732,+000.00,+29.18,01.00,000.00,1.00 -0733,+000.00,+29.05,01.00,000.00,1.00 -0734,+000.00,+28.91,01.00,000.00,1.00 -0735,+000.00,+28.76,01.00,000.00,1.00 -0736,+000.00,+28.59,01.00,000.00,1.00 -0737,+000.00,+28.43,01.00,000.00,1.00 -0738,+000.00,+28.25,01.00,000.00,1.00 -0739,+000.00,+28.06,01.00,000.00,1.00 -0740,+000.00,+27.86,01.00,000.00,1.00 -0741,+000.00,+27.66,01.00,000.00,1.00 -0742,+000.00,+27.44,01.00,000.00,1.00 -0743,+000.00,+27.22,01.00,000.00,1.00 -0744,+000.00,+26.99,01.00,000.00,1.00 -0745,+000.00,+26.75,01.00,000.00,1.00 -0746,+000.00,+26.50,01.00,000.00,1.00 -0747,+000.00,+26.24,01.00,000.00,1.00 -0748,+000.00,+25.98,01.00,000.00,1.00 -0749,+000.00,+25.71,01.00,000.00,1.00 -0750,+000.00,+25.42,01.00,000.00,1.00 -0751,+000.00,+25.14,01.00,000.00,1.00 -0752,+000.00,+24.84,01.00,000.00,1.00 -0753,+000.00,+24.54,01.00,000.00,1.00 -0754,+000.00,+24.23,01.00,000.00,1.00 -0755,+000.00,+23.91,01.00,000.00,1.00 -0756,+000.00,+23.59,01.00,000.00,1.00 -0757,+000.00,+23.26,01.00,000.00,1.00 -0758,+000.00,+22.92,01.00,000.00,1.00 -0759,+000.00,+22.58,01.00,000.00,1.00 -0760,+000.00,+22.22,01.00,000.00,1.00 -0761,+000.00,+21.87,01.00,000.00,1.00 -0762,+000.00,+21.51,01.00,000.00,1.00 -0763,+000.00,+21.14,01.00,000.00,1.00 -0764,+000.00,+20.76,01.00,000.00,1.00 -0765,+000.00,+20.38,01.00,000.00,1.00 -0766,+000.00,+20.00,01.00,000.00,1.00 -0767,+000.00,+19.60,01.00,000.00,1.00 -0768,+000.00,+19.21,01.00,000.00,1.00 -0769,+000.00,+18.81,01.00,000.00,1.00 -0770,+000.00,+18.40,01.00,000.00,1.00 -0771,+000.00,+17.99,01.00,000.00,1.00 -0772,+000.00,+17.57,01.00,000.00,1.00 -0773,+000.00,+17.15,01.00,000.00,1.00 -0774,+000.00,+16.73,01.00,000.00,1.00 -0775,+000.00,+16.30,01.00,000.00,1.00 -0776,+000.00,+15.86,01.00,000.00,1.00 -0777,+000.00,+15.42,01.00,000.00,1.00 -0778,+000.00,+14.98,01.00,000.00,1.00 -0779,+000.00,+14.54,01.00,000.00,1.00 -0780,+000.00,+14.09,01.00,000.00,1.00 -0781,+000.00,+13.64,01.00,000.00,1.00 -0782,+000.00,+13.18,01.00,000.00,1.00 -0783,+000.00,+12.72,01.00,000.00,1.00 -0784,+000.00,+12.26,01.00,000.00,1.00 -0785,+000.00,+11.79,01.00,000.00,1.00 -0786,+000.00,+11.33,01.00,000.00,1.00 -0787,+000.00,+10.85,01.00,000.00,1.00 -0788,+000.00,+10.38,01.00,000.00,1.00 -0789,+000.00,+09.90,01.00,000.00,1.00 -0790,+000.00,+09.43,01.00,000.00,1.00 -0791,+000.00,+08.95,01.00,000.00,1.00 -0792,+000.00,+08.46,01.00,000.00,1.00 -0793,+000.00,+07.98,01.00,000.00,1.00 -0794,+000.00,+07.49,01.00,000.00,1.00 -0795,+000.00,+07.00,01.00,000.00,1.00 -0796,+000.00,+06.51,01.00,000.00,1.00 -0797,+000.00,+06.02,01.00,000.00,1.00 -0798,+000.00,+05.53,01.00,000.00,1.00 -0799,+000.00,+05.04,01.00,000.00,1.00 -0800,+000.00,+04.54,01.00,000.00,1.00 -0801,+000.00,+04.04,01.00,000.00,1.00 -0802,+000.00,+03.55,01.00,000.00,1.00 -0803,+000.00,+03.05,01.00,000.00,1.00 -0804,+000.00,+02.55,01.00,000.00,1.00 -0805,+000.00,+02.05,01.00,000.00,1.00 -0806,+000.00,+01.55,01.00,000.00,1.00 -0807,+000.00,+01.05,01.00,000.00,1.00 -0808,+000.00,+00.55,01.00,000.00,1.00 -0809,+000.00,+00.05,01.00,000.00,1.00 -0810,+000.00,-00.45,01.00,000.00,1.00 -0811,+000.00,-00.95,01.00,000.00,1.00 -0812,+000.00,-01.45,01.00,000.00,1.00 -0813,+000.00,-01.95,01.00,000.00,1.00 -0814,+000.00,-02.45,01.00,000.00,1.00 -0815,+000.00,-02.95,01.00,000.00,1.00 -0816,+000.00,-03.45,01.00,000.00,1.00 -0817,+000.00,-03.94,01.00,000.00,1.00 -0818,+000.00,-04.44,01.00,000.00,1.00 -0819,+000.00,-04.94,01.00,000.00,1.00 -0820,+000.00,-05.43,01.00,000.00,1.00 -0821,+000.00,-05.92,01.00,000.00,1.00 -0822,+000.00,-06.42,01.00,000.00,1.00 -0823,+000.00,-06.91,01.00,000.00,1.00 -0824,+000.00,-07.39,01.00,000.00,1.00 -0825,+000.00,-07.88,01.00,000.00,1.00 -0826,+000.00,-08.37,01.00,000.00,1.00 -0827,+000.00,-08.85,01.00,000.00,1.00 -0828,+000.00,-09.33,01.00,000.00,1.00 -0829,+000.00,-09.81,01.00,000.00,1.00 -0830,+000.00,-10.29,01.00,000.00,1.00 -0831,+000.00,-10.76,01.00,000.00,1.00 -0832,+000.00,-11.23,01.00,000.00,1.00 -0833,+000.00,-11.70,01.00,000.00,1.00 -0834,+000.00,-12.17,01.00,000.00,1.00 -0835,+000.00,-12.63,01.00,000.00,1.00 -0836,+000.00,-13.09,01.00,000.00,1.00 -0837,+000.00,-13.54,01.00,000.00,1.00 -0838,+000.00,-14.00,01.00,000.00,1.00 -0839,+000.00,-14.45,01.00,000.00,1.00 -0840,+000.00,-14.89,01.00,000.00,1.00 -0841,+000.00,-15.34,01.00,000.00,1.00 -0842,+000.00,-15.77,01.00,000.00,1.00 -0843,+000.00,-16.21,01.00,000.00,1.00 -0844,+000.00,-16.64,01.00,000.00,1.00 -0845,+000.00,-17.07,01.00,000.00,1.00 -0846,+000.00,-17.49,01.00,000.00,1.00 -0847,+000.00,-17.90,01.00,000.00,1.00 -0848,+000.00,-18.32,01.00,000.00,1.00 -0849,+000.00,-18.72,01.00,000.00,1.00 -0850,+000.00,-19.13,01.00,000.00,1.00 -0851,+000.00,-19.53,01.00,000.00,1.00 -0852,+000.00,-19.92,01.00,000.00,1.00 -0853,+000.00,-20.30,01.00,000.00,1.00 -0854,+000.00,-20.69,01.00,000.00,1.00 -0855,+000.00,-21.06,01.00,000.00,1.00 -0856,+000.00,-21.43,01.00,000.00,1.00 -0857,+000.00,-21.80,01.00,000.00,1.00 -0858,+000.00,-22.15,01.00,000.00,1.00 -0859,+000.00,-22.51,01.00,000.00,1.00 -0860,+000.00,-22.85,01.00,000.00,1.00 -0861,+000.00,-23.19,01.00,000.00,1.00 -0862,+000.00,-23.52,01.00,000.00,1.00 -0863,+000.00,-23.85,01.00,000.00,1.00 -0864,+000.00,-24.17,01.00,000.00,1.00 -0865,+000.00,-24.48,01.00,000.00,1.00 -0866,+000.00,-24.78,01.00,000.00,1.00 -0867,+000.00,-25.08,01.00,000.00,1.00 -0868,+000.00,-25.37,01.00,000.00,1.00 -0869,+000.00,-25.65,01.00,000.00,1.00 -0870,+000.00,-25.92,01.00,000.00,1.00 -0871,+000.00,-26.19,01.00,000.00,1.00 -0872,+000.00,-26.45,01.00,000.00,1.00 -0873,+000.00,-26.70,01.00,000.00,1.00 -0874,+000.00,-26.94,01.00,000.00,1.00 -0875,+000.00,-27.17,01.00,000.00,1.00 -0876,+000.00,-27.40,01.00,000.00,1.00 -0877,+000.00,-27.61,01.00,000.00,1.00 -0878,+000.00,-27.82,01.00,000.00,1.00 -0879,+000.00,-28.02,01.00,000.00,1.00 -0880,+000.00,-28.21,01.00,000.00,1.00 -0881,+000.00,-28.39,01.00,000.00,1.00 -0882,+000.00,-28.56,01.00,000.00,1.00 -0883,+000.00,-28.72,01.00,000.00,1.00 -0884,+000.00,-28.88,01.00,000.00,1.00 -0885,+000.00,-29.02,01.00,000.00,1.00 -0886,+000.00,-29.15,01.00,000.00,1.00 -0887,+000.00,-29.28,01.00,000.00,1.00 -0888,+000.00,-29.39,01.00,000.00,1.00 -0889,+000.00,-29.50,01.00,000.00,1.00 -0890,+000.00,-29.59,01.00,000.00,1.00 -0891,+000.00,-29.68,01.00,000.00,1.00 -0892,+000.00,-29.75,01.00,000.00,1.00 -0893,+000.00,-29.82,01.00,000.00,1.00 -0894,+000.00,-29.87,01.00,000.00,1.00 -0895,+000.00,-29.92,01.00,000.00,1.00 -0896,+000.00,-29.95,01.00,000.00,1.00 -0897,+000.00,-29.98,01.00,000.00,1.00 -0898,+000.00,-29.99,01.00,000.00,1.00 -0899,+000.00,-30.00,01.00,000.00,1.00 -0900,+000.00,-29.99,01.00,000.00,1.00 -0901,+000.00,-29.98,01.00,000.00,1.00 -0902,+000.00,-29.95,01.00,000.00,1.00 -0903,+000.00,-29.92,01.00,000.00,1.00 -0904,+000.00,-29.87,01.00,000.00,1.00 -0905,+000.00,-29.82,01.00,000.00,1.00 -0906,+000.00,-29.75,01.00,000.00,1.00 -0907,+000.00,-29.68,01.00,000.00,1.00 -0908,+000.00,-29.59,01.00,000.00,1.00 -0909,+000.00,-29.50,01.00,000.00,1.00 -0910,+000.00,-29.39,01.00,000.00,1.00 -0911,+000.00,-29.28,01.00,000.00,1.00 -0912,+000.00,-29.15,01.00,000.00,1.00 -0913,+000.00,-29.02,01.00,000.00,1.00 -0914,+000.00,-28.88,01.00,000.00,1.00 -0915,+000.00,-28.72,01.00,000.00,1.00 -0916,+000.00,-28.56,01.00,000.00,1.00 -0917,+000.00,-28.39,01.00,000.00,1.00 -0918,+000.00,-28.21,01.00,000.00,1.00 -0919,+000.00,-28.02,01.00,000.00,1.00 -0920,+000.00,-27.82,01.00,000.00,1.00 -0921,+000.00,-27.61,01.00,000.00,1.00 -0922,+000.00,-27.40,01.00,000.00,1.00 -0923,+000.00,-27.17,01.00,000.00,1.00 -0924,+000.00,-26.94,01.00,000.00,1.00 -0925,+000.00,-26.70,01.00,000.00,1.00 -0926,+000.00,-26.45,01.00,000.00,1.00 -0927,+000.00,-26.19,01.00,000.00,1.00 -0928,+000.00,-25.92,01.00,000.00,1.00 -0929,+000.00,-25.65,01.00,000.00,1.00 -0930,+000.00,-25.37,01.00,000.00,1.00 -0931,+000.00,-25.08,01.00,000.00,1.00 -0932,+000.00,-24.78,01.00,000.00,1.00 -0933,+000.00,-24.48,01.00,000.00,1.00 -0934,+000.00,-24.17,01.00,000.00,1.00 -0935,+000.00,-23.85,01.00,000.00,1.00 -0936,+000.00,-23.52,01.00,000.00,1.00 -0937,+000.00,-23.19,01.00,000.00,1.00 -0938,+000.00,-22.85,01.00,000.00,1.00 -0939,+000.00,-22.51,01.00,000.00,1.00 -0940,+000.00,-22.15,01.00,000.00,1.00 -0941,+000.00,-21.80,01.00,000.00,1.00 -0942,+000.00,-21.43,01.00,000.00,1.00 -0943,+000.00,-21.06,01.00,000.00,1.00 -0944,+000.00,-20.69,01.00,000.00,1.00 -0945,+000.00,-20.30,01.00,000.00,1.00 -0946,+000.00,-19.92,01.00,000.00,1.00 -0947,+000.00,-19.53,01.00,000.00,1.00 -0948,+000.00,-19.13,01.00,000.00,1.00 -0949,+000.00,-18.72,01.00,000.00,1.00 -0950,+000.00,-18.32,01.00,000.00,1.00 -0951,+000.00,-17.90,01.00,000.00,1.00 -0952,+000.00,-17.49,01.00,000.00,1.00 -0953,+000.00,-17.07,01.00,000.00,1.00 -0954,+000.00,-16.64,01.00,000.00,1.00 -0955,+000.00,-16.21,01.00,000.00,1.00 -0956,+000.00,-15.77,01.00,000.00,1.00 -0957,+000.00,-15.34,01.00,000.00,1.00 -0958,+000.00,-14.89,01.00,000.00,1.00 -0959,+000.00,-14.45,01.00,000.00,1.00 -0960,+000.00,-14.00,01.00,000.00,1.00 -0961,+000.00,-13.54,01.00,000.00,1.00 -0962,+000.00,-13.09,01.00,000.00,1.00 -0963,+000.00,-12.63,01.00,000.00,1.00 -0964,+000.00,-12.17,01.00,000.00,1.00 -0965,+000.00,-11.70,01.00,000.00,1.00 -0966,+000.00,-11.23,01.00,000.00,1.00 -0967,+000.00,-10.76,01.00,000.00,1.00 -0968,+000.00,-10.29,01.00,000.00,1.00 -0969,+000.00,-09.81,01.00,000.00,1.00 -0970,+000.00,-09.33,01.00,000.00,1.00 -0971,+000.00,-08.85,01.00,000.00,1.00 -0972,+000.00,-08.37,01.00,000.00,1.00 -0973,+000.00,-07.88,01.00,000.00,1.00 -0974,+000.00,-07.39,01.00,000.00,1.00 -0975,+000.00,-06.91,01.00,000.00,1.00 -0976,+000.00,-06.42,01.00,000.00,1.00 -0977,+000.00,-05.92,01.00,000.00,1.00 -0978,+000.00,-05.43,01.00,000.00,1.00 -0979,+000.00,-04.94,01.00,000.00,1.00 -0980,+000.00,-04.44,01.00,000.00,1.00 -0981,+000.00,-03.94,01.00,000.00,1.00 -0982,+000.00,-03.45,01.00,000.00,1.00 -0983,+000.00,-02.95,01.00,000.00,1.00 -0984,+000.00,-02.45,01.00,000.00,1.00 -0985,+000.00,-01.95,01.00,000.00,1.00 -0986,+000.00,-01.45,01.00,000.00,1.00 -0987,+000.00,-00.95,01.00,000.00,1.00 -0988,+000.00,-00.45,01.00,000.00,1.00 -0989,+000.00,+00.05,01.00,000.00,1.00 -0990,+000.00,+00.55,01.00,000.00,1.00 -0991,+000.00,+01.05,01.00,000.00,1.00 -0992,+000.00,+01.55,01.00,000.00,1.00 -0993,+000.00,+02.05,01.00,000.00,1.00 -0994,+000.00,+02.55,01.00,000.00,1.00 -0995,+000.00,+03.05,01.00,000.00,1.00 -0996,+000.00,+03.55,01.00,000.00,1.00 -0997,+000.00,+04.04,01.00,000.00,1.00 -0998,+000.00,+04.54,01.00,000.00,1.00 -0999,+000.00,+05.04,01.00,000.00,1.00 ++000.00,+30.00,01.00,000.00,1.00 ++000.00,+29.99,01.00,000.00,1.00 ++000.00,+29.98,01.00,000.00,1.00 ++000.00,+29.95,01.00,000.00,1.00 ++000.00,+29.92,01.00,000.00,1.00 ++000.00,+29.87,01.00,000.00,1.00 ++000.00,+29.82,01.00,000.00,1.00 ++000.00,+29.75,01.00,000.00,1.00 ++000.00,+29.68,01.00,000.00,1.00 ++000.00,+29.59,01.00,000.00,1.00 ++000.00,+29.50,01.00,000.00,1.00 ++000.00,+29.39,01.00,000.00,1.00 ++000.00,+29.28,01.00,000.00,1.00 ++000.00,+29.15,01.00,000.00,1.00 ++000.00,+29.02,01.00,000.00,1.00 ++000.00,+28.88,01.00,000.00,1.00 ++000.00,+28.72,01.00,000.00,1.00 ++000.00,+28.56,01.00,000.00,1.00 ++000.00,+28.39,01.00,000.00,1.00 ++000.00,+28.21,01.00,000.00,1.00 ++000.00,+28.02,01.00,000.00,1.00 ++000.00,+27.82,01.00,000.00,1.00 ++000.00,+27.61,01.00,000.00,1.00 ++000.00,+27.40,01.00,000.00,1.00 ++000.00,+27.17,01.00,000.00,1.00 ++000.00,+26.94,01.00,000.00,1.00 ++000.00,+26.70,01.00,000.00,1.00 ++000.00,+26.45,01.00,000.00,1.00 ++000.00,+26.19,01.00,000.00,1.00 ++000.00,+25.92,01.00,000.00,1.00 ++000.00,+25.65,01.00,000.00,1.00 ++000.00,+25.37,01.00,000.00,1.00 ++000.00,+25.08,01.00,000.00,1.00 ++000.00,+24.78,01.00,000.00,1.00 ++000.00,+24.48,01.00,000.00,1.00 ++000.00,+24.17,01.00,000.00,1.00 ++000.00,+23.85,01.00,000.00,1.00 ++000.00,+23.52,01.00,000.00,1.00 ++000.00,+23.19,01.00,000.00,1.00 ++000.00,+22.85,01.00,000.00,1.00 ++000.00,+22.51,01.00,000.00,1.00 ++000.00,+22.15,01.00,000.00,1.00 ++000.00,+21.80,01.00,000.00,1.00 ++000.00,+21.43,01.00,000.00,1.00 ++000.00,+21.06,01.00,000.00,1.00 ++000.00,+20.69,01.00,000.00,1.00 ++000.00,+20.30,01.00,000.00,1.00 ++000.00,+19.92,01.00,000.00,1.00 ++000.00,+19.53,01.00,000.00,1.00 ++000.00,+19.13,01.00,000.00,1.00 ++000.00,+18.72,01.00,000.00,1.00 ++000.00,+18.32,01.00,000.00,1.00 ++000.00,+17.90,01.00,000.00,1.00 ++000.00,+17.49,01.00,000.00,1.00 ++000.00,+17.07,01.00,000.00,1.00 ++000.00,+16.64,01.00,000.00,1.00 ++000.00,+16.21,01.00,000.00,1.00 ++000.00,+15.77,01.00,000.00,1.00 ++000.00,+15.34,01.00,000.00,1.00 ++000.00,+14.89,01.00,000.00,1.00 ++000.00,+14.45,01.00,000.00,1.00 ++000.00,+14.00,01.00,000.00,1.00 ++000.00,+13.54,01.00,000.00,1.00 ++000.00,+13.09,01.00,000.00,1.00 ++000.00,+12.63,01.00,000.00,1.00 ++000.00,+12.17,01.00,000.00,1.00 ++000.00,+11.70,01.00,000.00,1.00 ++000.00,+11.23,01.00,000.00,1.00 ++000.00,+10.76,01.00,000.00,1.00 ++000.00,+10.29,01.00,000.00,1.00 ++000.00,+09.81,01.00,000.00,1.00 ++000.00,+09.33,01.00,000.00,1.00 ++000.00,+08.85,01.00,000.00,1.00 ++000.00,+08.37,01.00,000.00,1.00 ++000.00,+07.88,01.00,000.00,1.00 ++000.00,+07.39,01.00,000.00,1.00 ++000.00,+06.91,01.00,000.00,1.00 ++000.00,+06.42,01.00,000.00,1.00 ++000.00,+05.92,01.00,000.00,1.00 ++000.00,+05.43,01.00,000.00,1.00 ++000.00,+04.94,01.00,000.00,1.00 ++000.00,+04.44,01.00,000.00,1.00 ++000.00,+03.94,01.00,000.00,1.00 ++000.00,+03.45,01.00,000.00,1.00 ++000.00,+02.95,01.00,000.00,1.00 ++000.00,+02.45,01.00,000.00,1.00 ++000.00,+01.95,01.00,000.00,1.00 ++000.00,+01.45,01.00,000.00,1.00 ++000.00,+00.95,01.00,000.00,1.00 ++000.00,+00.45,01.00,000.00,1.00 ++000.00,-00.05,01.00,000.00,1.00 ++000.00,-00.55,01.00,000.00,1.00 ++000.00,-01.05,01.00,000.00,1.00 ++000.00,-01.55,01.00,000.00,1.00 ++000.00,-02.05,01.00,000.00,1.00 ++000.00,-02.55,01.00,000.00,1.00 ++000.00,-03.05,01.00,000.00,1.00 ++000.00,-03.55,01.00,000.00,1.00 ++000.00,-04.04,01.00,000.00,1.00 ++000.00,-04.54,01.00,000.00,1.00 ++000.00,-05.04,01.00,000.00,1.00 ++000.00,-05.53,01.00,000.00,1.00 ++000.00,-06.02,01.00,000.00,1.00 ++000.00,-06.51,01.00,000.00,1.00 ++000.00,-07.00,01.00,000.00,1.00 ++000.00,-07.49,01.00,000.00,1.00 ++000.00,-07.98,01.00,000.00,1.00 ++000.00,-08.46,01.00,000.00,1.00 ++000.00,-08.95,01.00,000.00,1.00 ++000.00,-09.43,01.00,000.00,1.00 ++000.00,-09.90,01.00,000.00,1.00 ++000.00,-10.38,01.00,000.00,1.00 ++000.00,-10.85,01.00,000.00,1.00 ++000.00,-11.33,01.00,000.00,1.00 ++000.00,-11.79,01.00,000.00,1.00 ++000.00,-12.26,01.00,000.00,1.00 ++000.00,-12.72,01.00,000.00,1.00 ++000.00,-13.18,01.00,000.00,1.00 ++000.00,-13.64,01.00,000.00,1.00 ++000.00,-14.09,01.00,000.00,1.00 ++000.00,-14.54,01.00,000.00,1.00 ++000.00,-14.98,01.00,000.00,1.00 ++000.00,-15.42,01.00,000.00,1.00 ++000.00,-15.86,01.00,000.00,1.00 ++000.00,-16.30,01.00,000.00,1.00 ++000.00,-16.73,01.00,000.00,1.00 ++000.00,-17.15,01.00,000.00,1.00 ++000.00,-17.57,01.00,000.00,1.00 ++000.00,-17.99,01.00,000.00,1.00 ++000.00,-18.40,01.00,000.00,1.00 ++000.00,-18.81,01.00,000.00,1.00 ++000.00,-19.21,01.00,000.00,1.00 ++000.00,-19.60,01.00,000.00,1.00 ++000.00,-20.00,01.00,000.00,1.00 ++000.00,-20.38,01.00,000.00,1.00 ++000.00,-20.76,01.00,000.00,1.00 ++000.00,-21.14,01.00,000.00,1.00 ++000.00,-21.51,01.00,000.00,1.00 ++000.00,-21.87,01.00,000.00,1.00 ++000.00,-22.22,01.00,000.00,1.00 ++000.00,-22.58,01.00,000.00,1.00 ++000.00,-22.92,01.00,000.00,1.00 ++000.00,-23.26,01.00,000.00,1.00 ++000.00,-23.59,01.00,000.00,1.00 ++000.00,-23.91,01.00,000.00,1.00 ++000.00,-24.23,01.00,000.00,1.00 ++000.00,-24.54,01.00,000.00,1.00 ++000.00,-24.84,01.00,000.00,1.00 ++000.00,-25.14,01.00,000.00,1.00 ++000.00,-25.42,01.00,000.00,1.00 ++000.00,-25.71,01.00,000.00,1.00 ++000.00,-25.98,01.00,000.00,1.00 ++000.00,-26.24,01.00,000.00,1.00 ++000.00,-26.50,01.00,000.00,1.00 ++000.00,-26.75,01.00,000.00,1.00 ++000.00,-26.99,01.00,000.00,1.00 ++000.00,-27.22,01.00,000.00,1.00 ++000.00,-27.44,01.00,000.00,1.00 ++000.00,-27.66,01.00,000.00,1.00 ++000.00,-27.86,01.00,000.00,1.00 ++000.00,-28.06,01.00,000.00,1.00 ++000.00,-28.25,01.00,000.00,1.00 ++000.00,-28.43,01.00,000.00,1.00 ++000.00,-28.59,01.00,000.00,1.00 ++000.00,-28.76,01.00,000.00,1.00 ++000.00,-28.91,01.00,000.00,1.00 ++000.00,-29.05,01.00,000.00,1.00 ++000.00,-29.18,01.00,000.00,1.00 ++000.00,-29.30,01.00,000.00,1.00 ++000.00,-29.41,01.00,000.00,1.00 ++000.00,-29.52,01.00,000.00,1.00 ++000.00,-29.61,01.00,000.00,1.00 ++000.00,-29.69,01.00,000.00,1.00 ++000.00,-29.77,01.00,000.00,1.00 ++000.00,-29.83,01.00,000.00,1.00 ++000.00,-29.88,01.00,000.00,1.00 ++000.00,-29.93,01.00,000.00,1.00 ++000.00,-29.96,01.00,000.00,1.00 ++000.00,-29.98,01.00,000.00,1.00 ++000.00,-30.00,01.00,000.00,1.00 ++000.00,-30.00,01.00,000.00,1.00 ++000.00,-29.99,01.00,000.00,1.00 ++000.00,-29.98,01.00,000.00,1.00 ++000.00,-29.95,01.00,000.00,1.00 ++000.00,-29.91,01.00,000.00,1.00 ++000.00,-29.86,01.00,000.00,1.00 ++000.00,-29.81,01.00,000.00,1.00 ++000.00,-29.74,01.00,000.00,1.00 ++000.00,-29.66,01.00,000.00,1.00 ++000.00,-29.57,01.00,000.00,1.00 ++000.00,-29.48,01.00,000.00,1.00 ++000.00,-29.37,01.00,000.00,1.00 ++000.00,-29.25,01.00,000.00,1.00 ++000.00,-29.13,01.00,000.00,1.00 ++000.00,-28.99,01.00,000.00,1.00 ++000.00,-28.85,01.00,000.00,1.00 ++000.00,-28.69,01.00,000.00,1.00 ++000.00,-28.53,01.00,000.00,1.00 ++000.00,-28.35,01.00,000.00,1.00 ++000.00,-28.17,01.00,000.00,1.00 ++000.00,-27.98,01.00,000.00,1.00 ++000.00,-27.78,01.00,000.00,1.00 ++000.00,-27.57,01.00,000.00,1.00 ++000.00,-27.35,01.00,000.00,1.00 ++000.00,-27.13,01.00,000.00,1.00 ++000.00,-26.89,01.00,000.00,1.00 ++000.00,-26.65,01.00,000.00,1.00 ++000.00,-26.40,01.00,000.00,1.00 ++000.00,-26.14,01.00,000.00,1.00 ++000.00,-25.87,01.00,000.00,1.00 ++000.00,-25.59,01.00,000.00,1.00 ++000.00,-25.31,01.00,000.00,1.00 ++000.00,-25.02,01.00,000.00,1.00 ++000.00,-24.72,01.00,000.00,1.00 ++000.00,-24.42,01.00,000.00,1.00 ++000.00,-24.10,01.00,000.00,1.00 ++000.00,-23.78,01.00,000.00,1.00 ++000.00,-23.46,01.00,000.00,1.00 ++000.00,-23.12,01.00,000.00,1.00 ++000.00,-22.78,01.00,000.00,1.00 ++000.00,-22.44,01.00,000.00,1.00 ++000.00,-22.08,01.00,000.00,1.00 ++000.00,-21.72,01.00,000.00,1.00 ++000.00,-21.36,01.00,000.00,1.00 ++000.00,-20.99,01.00,000.00,1.00 ++000.00,-20.61,01.00,000.00,1.00 ++000.00,-20.23,01.00,000.00,1.00 ++000.00,-19.84,01.00,000.00,1.00 ++000.00,-19.45,01.00,000.00,1.00 ++000.00,-19.05,01.00,000.00,1.00 ++000.00,-18.64,01.00,000.00,1.00 ++000.00,-18.23,01.00,000.00,1.00 ++000.00,-17.82,01.00,000.00,1.00 ++000.00,-17.40,01.00,000.00,1.00 ++000.00,-16.98,01.00,000.00,1.00 ++000.00,-16.55,01.00,000.00,1.00 ++000.00,-16.12,01.00,000.00,1.00 ++000.00,-15.69,01.00,000.00,1.00 ++000.00,-15.25,01.00,000.00,1.00 ++000.00,-14.80,01.00,000.00,1.00 ++000.00,-14.36,01.00,000.00,1.00 ++000.00,-13.91,01.00,000.00,1.00 ++000.00,-13.45,01.00,000.00,1.00 ++000.00,-13.00,01.00,000.00,1.00 ++000.00,-12.54,01.00,000.00,1.00 ++000.00,-12.07,01.00,000.00,1.00 ++000.00,-11.61,01.00,000.00,1.00 ++000.00,-11.14,01.00,000.00,1.00 ++000.00,-10.67,01.00,000.00,1.00 ++000.00,-10.19,01.00,000.00,1.00 ++000.00,-09.71,01.00,000.00,1.00 ++000.00,-09.23,01.00,000.00,1.00 ++000.00,-08.75,01.00,000.00,1.00 ++000.00,-08.27,01.00,000.00,1.00 ++000.00,-07.78,01.00,000.00,1.00 ++000.00,-07.30,01.00,000.00,1.00 ++000.00,-06.81,01.00,000.00,1.00 ++000.00,-06.32,01.00,000.00,1.00 ++000.00,-05.83,01.00,000.00,1.00 ++000.00,-05.33,01.00,000.00,1.00 ++000.00,-04.84,01.00,000.00,1.00 ++000.00,-04.34,01.00,000.00,1.00 ++000.00,-03.85,01.00,000.00,1.00 ++000.00,-03.35,01.00,000.00,1.00 ++000.00,-02.85,01.00,000.00,1.00 ++000.00,-02.35,01.00,000.00,1.00 ++000.00,-01.85,01.00,000.00,1.00 ++000.00,-01.35,01.00,000.00,1.00 ++000.00,-00.85,01.00,000.00,1.00 ++000.00,-00.35,01.00,000.00,1.00 ++000.00,+00.15,01.00,000.00,1.00 ++000.00,+00.65,01.00,000.00,1.00 ++000.00,+01.15,01.00,000.00,1.00 ++000.00,+01.65,01.00,000.00,1.00 ++000.00,+02.15,01.00,000.00,1.00 ++000.00,+02.65,01.00,000.00,1.00 ++000.00,+03.15,01.00,000.00,1.00 ++000.00,+03.65,01.00,000.00,1.00 ++000.00,+04.14,01.00,000.00,1.00 ++000.00,+04.64,01.00,000.00,1.00 ++000.00,+05.13,01.00,000.00,1.00 ++000.00,+05.63,01.00,000.00,1.00 ++000.00,+06.12,01.00,000.00,1.00 ++000.00,+06.61,01.00,000.00,1.00 ++000.00,+07.10,01.00,000.00,1.00 ++000.00,+07.59,01.00,000.00,1.00 ++000.00,+08.08,01.00,000.00,1.00 ++000.00,+08.56,01.00,000.00,1.00 ++000.00,+09.04,01.00,000.00,1.00 ++000.00,+09.52,01.00,000.00,1.00 ++000.00,+10.00,01.00,000.00,1.00 ++000.00,+10.48,01.00,000.00,1.00 ++000.00,+10.95,01.00,000.00,1.00 ++000.00,+11.42,01.00,000.00,1.00 ++000.00,+11.89,01.00,000.00,1.00 ++000.00,+12.35,01.00,000.00,1.00 ++000.00,+12.81,01.00,000.00,1.00 ++000.00,+13.27,01.00,000.00,1.00 ++000.00,+13.73,01.00,000.00,1.00 ++000.00,+14.18,01.00,000.00,1.00 ++000.00,+14.63,01.00,000.00,1.00 ++000.00,+15.07,01.00,000.00,1.00 ++000.00,+15.51,01.00,000.00,1.00 ++000.00,+15.95,01.00,000.00,1.00 ++000.00,+16.38,01.00,000.00,1.00 ++000.00,+16.81,01.00,000.00,1.00 ++000.00,+17.23,01.00,000.00,1.00 ++000.00,+17.65,01.00,000.00,1.00 ++000.00,+18.07,01.00,000.00,1.00 ++000.00,+18.48,01.00,000.00,1.00 ++000.00,+18.89,01.00,000.00,1.00 ++000.00,+19.29,01.00,000.00,1.00 ++000.00,+19.68,01.00,000.00,1.00 ++000.00,+20.07,01.00,000.00,1.00 ++000.00,+20.46,01.00,000.00,1.00 ++000.00,+20.84,01.00,000.00,1.00 ++000.00,+21.21,01.00,000.00,1.00 ++000.00,+21.58,01.00,000.00,1.00 ++000.00,+21.94,01.00,000.00,1.00 ++000.00,+22.30,01.00,000.00,1.00 ++000.00,+22.64,01.00,000.00,1.00 ++000.00,+22.99,01.00,000.00,1.00 ++000.00,+23.32,01.00,000.00,1.00 ++000.00,+23.65,01.00,000.00,1.00 ++000.00,+23.98,01.00,000.00,1.00 ++000.00,+24.29,01.00,000.00,1.00 ++000.00,+24.60,01.00,000.00,1.00 ++000.00,+24.90,01.00,000.00,1.00 ++000.00,+25.20,01.00,000.00,1.00 ++000.00,+25.48,01.00,000.00,1.00 ++000.00,+25.76,01.00,000.00,1.00 ++000.00,+26.03,01.00,000.00,1.00 ++000.00,+26.29,01.00,000.00,1.00 ++000.00,+26.55,01.00,000.00,1.00 ++000.00,+26.80,01.00,000.00,1.00 ++000.00,+27.03,01.00,000.00,1.00 ++000.00,+27.26,01.00,000.00,1.00 ++000.00,+27.49,01.00,000.00,1.00 ++000.00,+27.70,01.00,000.00,1.00 ++000.00,+27.90,01.00,000.00,1.00 ++000.00,+28.10,01.00,000.00,1.00 ++000.00,+28.28,01.00,000.00,1.00 ++000.00,+28.46,01.00,000.00,1.00 ++000.00,+28.63,01.00,000.00,1.00 ++000.00,+28.79,01.00,000.00,1.00 ++000.00,+28.94,01.00,000.00,1.00 ++000.00,+29.07,01.00,000.00,1.00 ++000.00,+29.20,01.00,000.00,1.00 ++000.00,+29.33,01.00,000.00,1.00 ++000.00,+29.44,01.00,000.00,1.00 ++000.00,+29.54,01.00,000.00,1.00 ++000.00,+29.63,01.00,000.00,1.00 ++000.00,+29.71,01.00,000.00,1.00 ++000.00,+29.78,01.00,000.00,1.00 ++000.00,+29.84,01.00,000.00,1.00 ++000.00,+29.89,01.00,000.00,1.00 ++000.00,+29.93,01.00,000.00,1.00 ++000.00,+29.97,01.00,000.00,1.00 ++000.00,+29.99,01.00,000.00,1.00 ++000.00,+30.00,01.00,000.00,1.00 ++000.00,+30.00,01.00,000.00,1.00 ++000.00,+29.99,01.00,000.00,1.00 ++000.00,+29.97,01.00,000.00,1.00 ++000.00,+29.94,01.00,000.00,1.00 ++000.00,+29.90,01.00,000.00,1.00 ++000.00,+29.85,01.00,000.00,1.00 ++000.00,+29.79,01.00,000.00,1.00 ++000.00,+29.72,01.00,000.00,1.00 ++000.00,+29.64,01.00,000.00,1.00 ++000.00,+29.56,01.00,000.00,1.00 ++000.00,+29.46,01.00,000.00,1.00 ++000.00,+29.35,01.00,000.00,1.00 ++000.00,+29.23,01.00,000.00,1.00 ++000.00,+29.10,01.00,000.00,1.00 ++000.00,+28.96,01.00,000.00,1.00 ++000.00,+28.82,01.00,000.00,1.00 ++000.00,+28.66,01.00,000.00,1.00 ++000.00,+28.49,01.00,000.00,1.00 ++000.00,+28.32,01.00,000.00,1.00 ++000.00,+28.13,01.00,000.00,1.00 ++000.00,+27.94,01.00,000.00,1.00 ++000.00,+27.74,01.00,000.00,1.00 ++000.00,+27.53,01.00,000.00,1.00 ++000.00,+27.31,01.00,000.00,1.00 ++000.00,+27.08,01.00,000.00,1.00 ++000.00,+26.84,01.00,000.00,1.00 ++000.00,+26.60,01.00,000.00,1.00 ++000.00,+26.35,01.00,000.00,1.00 ++000.00,+26.08,01.00,000.00,1.00 ++000.00,+25.81,01.00,000.00,1.00 ++000.00,+25.54,01.00,000.00,1.00 ++000.00,+25.25,01.00,000.00,1.00 ++000.00,+24.96,01.00,000.00,1.00 ++000.00,+24.66,01.00,000.00,1.00 ++000.00,+24.35,01.00,000.00,1.00 ++000.00,+24.04,01.00,000.00,1.00 ++000.00,+23.72,01.00,000.00,1.00 ++000.00,+23.39,01.00,000.00,1.00 ++000.00,+23.06,01.00,000.00,1.00 ++000.00,+22.71,01.00,000.00,1.00 ++000.00,+22.37,01.00,000.00,1.00 ++000.00,+22.01,01.00,000.00,1.00 ++000.00,+21.65,01.00,000.00,1.00 ++000.00,+21.28,01.00,000.00,1.00 ++000.00,+20.91,01.00,000.00,1.00 ++000.00,+20.53,01.00,000.00,1.00 ++000.00,+20.15,01.00,000.00,1.00 ++000.00,+19.76,01.00,000.00,1.00 ++000.00,+19.37,01.00,000.00,1.00 ++000.00,+18.97,01.00,000.00,1.00 ++000.00,+18.56,01.00,000.00,1.00 ++000.00,+18.15,01.00,000.00,1.00 ++000.00,+17.74,01.00,000.00,1.00 ++000.00,+17.32,01.00,000.00,1.00 ++000.00,+16.90,01.00,000.00,1.00 ++000.00,+16.47,01.00,000.00,1.00 ++000.00,+16.04,01.00,000.00,1.00 ++000.00,+15.60,01.00,000.00,1.00 ++000.00,+15.16,01.00,000.00,1.00 ++000.00,+14.72,01.00,000.00,1.00 ++000.00,+14.27,01.00,000.00,1.00 ++000.00,+13.82,01.00,000.00,1.00 ++000.00,+13.36,01.00,000.00,1.00 ++000.00,+12.90,01.00,000.00,1.00 ++000.00,+12.44,01.00,000.00,1.00 ++000.00,+11.98,01.00,000.00,1.00 ++000.00,+11.51,01.00,000.00,1.00 ++000.00,+11.04,01.00,000.00,1.00 ++000.00,+10.57,01.00,000.00,1.00 ++000.00,+10.10,01.00,000.00,1.00 ++000.00,+09.62,01.00,000.00,1.00 ++000.00,+09.14,01.00,000.00,1.00 ++000.00,+08.66,01.00,000.00,1.00 ++000.00,+08.17,01.00,000.00,1.00 ++000.00,+07.69,01.00,000.00,1.00 ++000.00,+07.20,01.00,000.00,1.00 ++000.00,+06.71,01.00,000.00,1.00 ++000.00,+06.22,01.00,000.00,1.00 ++000.00,+05.73,01.00,000.00,1.00 ++000.00,+05.23,01.00,000.00,1.00 ++000.00,+04.74,01.00,000.00,1.00 ++000.00,+04.24,01.00,000.00,1.00 ++000.00,+03.75,01.00,000.00,1.00 ++000.00,+03.25,01.00,000.00,1.00 ++000.00,+02.75,01.00,000.00,1.00 ++000.00,+02.25,01.00,000.00,1.00 ++000.00,+01.75,01.00,000.00,1.00 ++000.00,+01.25,01.00,000.00,1.00 ++000.00,+00.75,01.00,000.00,1.00 ++000.00,+00.25,01.00,000.00,1.00 ++000.00,-00.25,01.00,000.00,1.00 ++000.00,-00.75,01.00,000.00,1.00 ++000.00,-01.25,01.00,000.00,1.00 ++000.00,-01.75,01.00,000.00,1.00 ++000.00,-02.25,01.00,000.00,1.00 ++000.00,-02.75,01.00,000.00,1.00 ++000.00,-03.25,01.00,000.00,1.00 ++000.00,-03.75,01.00,000.00,1.00 ++000.00,-04.24,01.00,000.00,1.00 ++000.00,-04.74,01.00,000.00,1.00 ++000.00,-05.23,01.00,000.00,1.00 ++000.00,-05.73,01.00,000.00,1.00 ++000.00,-06.22,01.00,000.00,1.00 ++000.00,-06.71,01.00,000.00,1.00 ++000.00,-07.20,01.00,000.00,1.00 ++000.00,-07.69,01.00,000.00,1.00 ++000.00,-08.17,01.00,000.00,1.00 ++000.00,-08.66,01.00,000.00,1.00 ++000.00,-09.14,01.00,000.00,1.00 ++000.00,-09.62,01.00,000.00,1.00 ++000.00,-10.10,01.00,000.00,1.00 ++000.00,-10.57,01.00,000.00,1.00 ++000.00,-11.04,01.00,000.00,1.00 ++000.00,-11.51,01.00,000.00,1.00 ++000.00,-11.98,01.00,000.00,1.00 ++000.00,-12.44,01.00,000.00,1.00 ++000.00,-12.90,01.00,000.00,1.00 ++000.00,-13.36,01.00,000.00,1.00 ++000.00,-13.82,01.00,000.00,1.00 ++000.00,-14.27,01.00,000.00,1.00 ++000.00,-14.72,01.00,000.00,1.00 ++000.00,-15.16,01.00,000.00,1.00 ++000.00,-15.60,01.00,000.00,1.00 ++000.00,-16.04,01.00,000.00,1.00 ++000.00,-16.47,01.00,000.00,1.00 ++000.00,-16.90,01.00,000.00,1.00 ++000.00,-17.32,01.00,000.00,1.00 ++000.00,-17.74,01.00,000.00,1.00 ++000.00,-18.15,01.00,000.00,1.00 ++000.00,-18.56,01.00,000.00,1.00 ++000.00,-18.97,01.00,000.00,1.00 ++000.00,-19.37,01.00,000.00,1.00 ++000.00,-19.76,01.00,000.00,1.00 ++000.00,-20.15,01.00,000.00,1.00 ++000.00,-20.53,01.00,000.00,1.00 ++000.00,-20.91,01.00,000.00,1.00 ++000.00,-21.28,01.00,000.00,1.00 ++000.00,-21.65,01.00,000.00,1.00 ++000.00,-22.01,01.00,000.00,1.00 ++000.00,-22.37,01.00,000.00,1.00 ++000.00,-22.71,01.00,000.00,1.00 ++000.00,-23.06,01.00,000.00,1.00 ++000.00,-23.39,01.00,000.00,1.00 ++000.00,-23.72,01.00,000.00,1.00 ++000.00,-24.04,01.00,000.00,1.00 ++000.00,-24.35,01.00,000.00,1.00 ++000.00,-24.66,01.00,000.00,1.00 ++000.00,-24.96,01.00,000.00,1.00 ++000.00,-25.25,01.00,000.00,1.00 ++000.00,-25.54,01.00,000.00,1.00 ++000.00,-25.81,01.00,000.00,1.00 ++000.00,-26.08,01.00,000.00,1.00 ++000.00,-26.35,01.00,000.00,1.00 ++000.00,-26.60,01.00,000.00,1.00 ++000.00,-26.84,01.00,000.00,1.00 ++000.00,-27.08,01.00,000.00,1.00 ++000.00,-27.31,01.00,000.00,1.00 ++000.00,-27.53,01.00,000.00,1.00 ++000.00,-27.74,01.00,000.00,1.00 ++000.00,-27.94,01.00,000.00,1.00 ++000.00,-28.13,01.00,000.00,1.00 ++000.00,-28.32,01.00,000.00,1.00 ++000.00,-28.49,01.00,000.00,1.00 ++000.00,-28.66,01.00,000.00,1.00 ++000.00,-28.82,01.00,000.00,1.00 ++000.00,-28.96,01.00,000.00,1.00 ++000.00,-29.10,01.00,000.00,1.00 ++000.00,-29.23,01.00,000.00,1.00 ++000.00,-29.35,01.00,000.00,1.00 ++000.00,-29.46,01.00,000.00,1.00 ++000.00,-29.56,01.00,000.00,1.00 ++000.00,-29.64,01.00,000.00,1.00 ++000.00,-29.72,01.00,000.00,1.00 ++000.00,-29.79,01.00,000.00,1.00 ++000.00,-29.85,01.00,000.00,1.00 ++000.00,-29.90,01.00,000.00,1.00 ++000.00,-29.94,01.00,000.00,1.00 ++000.00,-29.97,01.00,000.00,1.00 ++000.00,-29.99,01.00,000.00,1.00 ++000.00,-30.00,01.00,000.00,1.00 ++000.00,-30.00,01.00,000.00,1.00 ++000.00,-29.99,01.00,000.00,1.00 ++000.00,-29.97,01.00,000.00,1.00 ++000.00,-29.93,01.00,000.00,1.00 ++000.00,-29.89,01.00,000.00,1.00 ++000.00,-29.84,01.00,000.00,1.00 ++000.00,-29.78,01.00,000.00,1.00 ++000.00,-29.71,01.00,000.00,1.00 ++000.00,-29.63,01.00,000.00,1.00 ++000.00,-29.54,01.00,000.00,1.00 ++000.00,-29.44,01.00,000.00,1.00 ++000.00,-29.33,01.00,000.00,1.00 ++000.00,-29.20,01.00,000.00,1.00 ++000.00,-29.07,01.00,000.00,1.00 ++000.00,-28.94,01.00,000.00,1.00 ++000.00,-28.79,01.00,000.00,1.00 ++000.00,-28.63,01.00,000.00,1.00 ++000.00,-28.46,01.00,000.00,1.00 ++000.00,-28.28,01.00,000.00,1.00 ++000.00,-28.10,01.00,000.00,1.00 ++000.00,-27.90,01.00,000.00,1.00 ++000.00,-27.70,01.00,000.00,1.00 ++000.00,-27.49,01.00,000.00,1.00 ++000.00,-27.26,01.00,000.00,1.00 ++000.00,-27.03,01.00,000.00,1.00 ++000.00,-26.80,01.00,000.00,1.00 ++000.00,-26.55,01.00,000.00,1.00 ++000.00,-26.29,01.00,000.00,1.00 ++000.00,-26.03,01.00,000.00,1.00 ++000.00,-25.76,01.00,000.00,1.00 ++000.00,-25.48,01.00,000.00,1.00 ++000.00,-25.20,01.00,000.00,1.00 ++000.00,-24.90,01.00,000.00,1.00 ++000.00,-24.60,01.00,000.00,1.00 ++000.00,-24.29,01.00,000.00,1.00 ++000.00,-23.98,01.00,000.00,1.00 ++000.00,-23.65,01.00,000.00,1.00 ++000.00,-23.32,01.00,000.00,1.00 ++000.00,-22.99,01.00,000.00,1.00 ++000.00,-22.64,01.00,000.00,1.00 ++000.00,-22.30,01.00,000.00,1.00 ++000.00,-21.94,01.00,000.00,1.00 ++000.00,-21.58,01.00,000.00,1.00 ++000.00,-21.21,01.00,000.00,1.00 ++000.00,-20.84,01.00,000.00,1.00 ++000.00,-20.46,01.00,000.00,1.00 ++000.00,-20.07,01.00,000.00,1.00 ++000.00,-19.68,01.00,000.00,1.00 ++000.00,-19.29,01.00,000.00,1.00 ++000.00,-18.89,01.00,000.00,1.00 ++000.00,-18.48,01.00,000.00,1.00 ++000.00,-18.07,01.00,000.00,1.00 ++000.00,-17.65,01.00,000.00,1.00 ++000.00,-17.23,01.00,000.00,1.00 ++000.00,-16.81,01.00,000.00,1.00 ++000.00,-16.38,01.00,000.00,1.00 ++000.00,-15.95,01.00,000.00,1.00 ++000.00,-15.51,01.00,000.00,1.00 ++000.00,-15.07,01.00,000.00,1.00 ++000.00,-14.63,01.00,000.00,1.00 ++000.00,-14.18,01.00,000.00,1.00 ++000.00,-13.73,01.00,000.00,1.00 ++000.00,-13.27,01.00,000.00,1.00 ++000.00,-12.81,01.00,000.00,1.00 ++000.00,-12.35,01.00,000.00,1.00 ++000.00,-11.89,01.00,000.00,1.00 ++000.00,-11.42,01.00,000.00,1.00 ++000.00,-10.95,01.00,000.00,1.00 ++000.00,-10.48,01.00,000.00,1.00 ++000.00,-10.00,01.00,000.00,1.00 ++000.00,-09.52,01.00,000.00,1.00 ++000.00,-09.04,01.00,000.00,1.00 ++000.00,-08.56,01.00,000.00,1.00 ++000.00,-08.08,01.00,000.00,1.00 ++000.00,-07.59,01.00,000.00,1.00 ++000.00,-07.10,01.00,000.00,1.00 ++000.00,-06.61,01.00,000.00,1.00 ++000.00,-06.12,01.00,000.00,1.00 ++000.00,-05.63,01.00,000.00,1.00 ++000.00,-05.13,01.00,000.00,1.00 ++000.00,-04.64,01.00,000.00,1.00 ++000.00,-04.14,01.00,000.00,1.00 ++000.00,-03.65,01.00,000.00,1.00 ++000.00,-03.15,01.00,000.00,1.00 ++000.00,-02.65,01.00,000.00,1.00 ++000.00,-02.15,01.00,000.00,1.00 ++000.00,-01.65,01.00,000.00,1.00 ++000.00,-01.15,01.00,000.00,1.00 ++000.00,-00.65,01.00,000.00,1.00 ++000.00,-00.15,01.00,000.00,1.00 ++000.00,+00.35,01.00,000.00,1.00 ++000.00,+00.85,01.00,000.00,1.00 ++000.00,+01.35,01.00,000.00,1.00 ++000.00,+01.85,01.00,000.00,1.00 ++000.00,+02.35,01.00,000.00,1.00 ++000.00,+02.85,01.00,000.00,1.00 ++000.00,+03.35,01.00,000.00,1.00 ++000.00,+03.85,01.00,000.00,1.00 ++000.00,+04.34,01.00,000.00,1.00 ++000.00,+04.84,01.00,000.00,1.00 ++000.00,+05.33,01.00,000.00,1.00 ++000.00,+05.83,01.00,000.00,1.00 ++000.00,+06.32,01.00,000.00,1.00 ++000.00,+06.81,01.00,000.00,1.00 ++000.00,+07.30,01.00,000.00,1.00 ++000.00,+07.78,01.00,000.00,1.00 ++000.00,+08.27,01.00,000.00,1.00 ++000.00,+08.75,01.00,000.00,1.00 ++000.00,+09.23,01.00,000.00,1.00 ++000.00,+09.71,01.00,000.00,1.00 ++000.00,+10.19,01.00,000.00,1.00 ++000.00,+10.67,01.00,000.00,1.00 ++000.00,+11.14,01.00,000.00,1.00 ++000.00,+11.61,01.00,000.00,1.00 ++000.00,+12.07,01.00,000.00,1.00 ++000.00,+12.54,01.00,000.00,1.00 ++000.00,+13.00,01.00,000.00,1.00 ++000.00,+13.45,01.00,000.00,1.00 ++000.00,+13.91,01.00,000.00,1.00 ++000.00,+14.36,01.00,000.00,1.00 ++000.00,+14.80,01.00,000.00,1.00 ++000.00,+15.25,01.00,000.00,1.00 ++000.00,+15.69,01.00,000.00,1.00 ++000.00,+16.12,01.00,000.00,1.00 ++000.00,+16.55,01.00,000.00,1.00 ++000.00,+16.98,01.00,000.00,1.00 ++000.00,+17.40,01.00,000.00,1.00 ++000.00,+17.82,01.00,000.00,1.00 ++000.00,+18.23,01.00,000.00,1.00 ++000.00,+18.64,01.00,000.00,1.00 ++000.00,+19.05,01.00,000.00,1.00 ++000.00,+19.45,01.00,000.00,1.00 ++000.00,+19.84,01.00,000.00,1.00 ++000.00,+20.23,01.00,000.00,1.00 ++000.00,+20.61,01.00,000.00,1.00 ++000.00,+20.99,01.00,000.00,1.00 ++000.00,+21.36,01.00,000.00,1.00 ++000.00,+21.72,01.00,000.00,1.00 ++000.00,+22.08,01.00,000.00,1.00 ++000.00,+22.44,01.00,000.00,1.00 ++000.00,+22.78,01.00,000.00,1.00 ++000.00,+23.12,01.00,000.00,1.00 ++000.00,+23.46,01.00,000.00,1.00 ++000.00,+23.78,01.00,000.00,1.00 ++000.00,+24.10,01.00,000.00,1.00 ++000.00,+24.42,01.00,000.00,1.00 ++000.00,+24.72,01.00,000.00,1.00 ++000.00,+25.02,01.00,000.00,1.00 ++000.00,+25.31,01.00,000.00,1.00 ++000.00,+25.59,01.00,000.00,1.00 ++000.00,+25.87,01.00,000.00,1.00 ++000.00,+26.14,01.00,000.00,1.00 ++000.00,+26.40,01.00,000.00,1.00 ++000.00,+26.65,01.00,000.00,1.00 ++000.00,+26.89,01.00,000.00,1.00 ++000.00,+27.13,01.00,000.00,1.00 ++000.00,+27.35,01.00,000.00,1.00 ++000.00,+27.57,01.00,000.00,1.00 ++000.00,+27.78,01.00,000.00,1.00 ++000.00,+27.98,01.00,000.00,1.00 ++000.00,+28.17,01.00,000.00,1.00 ++000.00,+28.35,01.00,000.00,1.00 ++000.00,+28.53,01.00,000.00,1.00 ++000.00,+28.69,01.00,000.00,1.00 ++000.00,+28.85,01.00,000.00,1.00 ++000.00,+28.99,01.00,000.00,1.00 ++000.00,+29.13,01.00,000.00,1.00 ++000.00,+29.25,01.00,000.00,1.00 ++000.00,+29.37,01.00,000.00,1.00 ++000.00,+29.48,01.00,000.00,1.00 ++000.00,+29.57,01.00,000.00,1.00 ++000.00,+29.66,01.00,000.00,1.00 ++000.00,+29.74,01.00,000.00,1.00 ++000.00,+29.81,01.00,000.00,1.00 ++000.00,+29.86,01.00,000.00,1.00 ++000.00,+29.91,01.00,000.00,1.00 ++000.00,+29.95,01.00,000.00,1.00 ++000.00,+29.98,01.00,000.00,1.00 ++000.00,+29.99,01.00,000.00,1.00 ++000.00,+30.00,01.00,000.00,1.00 ++000.00,+30.00,01.00,000.00,1.00 ++000.00,+29.98,01.00,000.00,1.00 ++000.00,+29.96,01.00,000.00,1.00 ++000.00,+29.93,01.00,000.00,1.00 ++000.00,+29.88,01.00,000.00,1.00 ++000.00,+29.83,01.00,000.00,1.00 ++000.00,+29.77,01.00,000.00,1.00 ++000.00,+29.69,01.00,000.00,1.00 ++000.00,+29.61,01.00,000.00,1.00 ++000.00,+29.52,01.00,000.00,1.00 ++000.00,+29.41,01.00,000.00,1.00 ++000.00,+29.30,01.00,000.00,1.00 ++000.00,+29.18,01.00,000.00,1.00 ++000.00,+29.05,01.00,000.00,1.00 ++000.00,+28.91,01.00,000.00,1.00 ++000.00,+28.76,01.00,000.00,1.00 ++000.00,+28.59,01.00,000.00,1.00 ++000.00,+28.43,01.00,000.00,1.00 ++000.00,+28.25,01.00,000.00,1.00 ++000.00,+28.06,01.00,000.00,1.00 ++000.00,+27.86,01.00,000.00,1.00 ++000.00,+27.66,01.00,000.00,1.00 ++000.00,+27.44,01.00,000.00,1.00 ++000.00,+27.22,01.00,000.00,1.00 ++000.00,+26.99,01.00,000.00,1.00 ++000.00,+26.75,01.00,000.00,1.00 ++000.00,+26.50,01.00,000.00,1.00 ++000.00,+26.24,01.00,000.00,1.00 ++000.00,+25.98,01.00,000.00,1.00 ++000.00,+25.71,01.00,000.00,1.00 ++000.00,+25.42,01.00,000.00,1.00 ++000.00,+25.14,01.00,000.00,1.00 ++000.00,+24.84,01.00,000.00,1.00 ++000.00,+24.54,01.00,000.00,1.00 ++000.00,+24.23,01.00,000.00,1.00 ++000.00,+23.91,01.00,000.00,1.00 ++000.00,+23.59,01.00,000.00,1.00 ++000.00,+23.26,01.00,000.00,1.00 ++000.00,+22.92,01.00,000.00,1.00 ++000.00,+22.58,01.00,000.00,1.00 ++000.00,+22.22,01.00,000.00,1.00 ++000.00,+21.87,01.00,000.00,1.00 ++000.00,+21.51,01.00,000.00,1.00 ++000.00,+21.14,01.00,000.00,1.00 ++000.00,+20.76,01.00,000.00,1.00 ++000.00,+20.38,01.00,000.00,1.00 ++000.00,+20.00,01.00,000.00,1.00 ++000.00,+19.60,01.00,000.00,1.00 ++000.00,+19.21,01.00,000.00,1.00 ++000.00,+18.81,01.00,000.00,1.00 ++000.00,+18.40,01.00,000.00,1.00 ++000.00,+17.99,01.00,000.00,1.00 ++000.00,+17.57,01.00,000.00,1.00 ++000.00,+17.15,01.00,000.00,1.00 ++000.00,+16.73,01.00,000.00,1.00 ++000.00,+16.30,01.00,000.00,1.00 ++000.00,+15.86,01.00,000.00,1.00 ++000.00,+15.42,01.00,000.00,1.00 ++000.00,+14.98,01.00,000.00,1.00 ++000.00,+14.54,01.00,000.00,1.00 ++000.00,+14.09,01.00,000.00,1.00 ++000.00,+13.64,01.00,000.00,1.00 ++000.00,+13.18,01.00,000.00,1.00 ++000.00,+12.72,01.00,000.00,1.00 ++000.00,+12.26,01.00,000.00,1.00 ++000.00,+11.79,01.00,000.00,1.00 ++000.00,+11.33,01.00,000.00,1.00 ++000.00,+10.85,01.00,000.00,1.00 ++000.00,+10.38,01.00,000.00,1.00 ++000.00,+09.90,01.00,000.00,1.00 ++000.00,+09.43,01.00,000.00,1.00 ++000.00,+08.95,01.00,000.00,1.00 ++000.00,+08.46,01.00,000.00,1.00 ++000.00,+07.98,01.00,000.00,1.00 ++000.00,+07.49,01.00,000.00,1.00 ++000.00,+07.00,01.00,000.00,1.00 ++000.00,+06.51,01.00,000.00,1.00 ++000.00,+06.02,01.00,000.00,1.00 ++000.00,+05.53,01.00,000.00,1.00 ++000.00,+05.04,01.00,000.00,1.00 ++000.00,+04.54,01.00,000.00,1.00 ++000.00,+04.04,01.00,000.00,1.00 ++000.00,+03.55,01.00,000.00,1.00 ++000.00,+03.05,01.00,000.00,1.00 ++000.00,+02.55,01.00,000.00,1.00 ++000.00,+02.05,01.00,000.00,1.00 ++000.00,+01.55,01.00,000.00,1.00 ++000.00,+01.05,01.00,000.00,1.00 ++000.00,+00.55,01.00,000.00,1.00 ++000.00,+00.05,01.00,000.00,1.00 ++000.00,-00.45,01.00,000.00,1.00 ++000.00,-00.95,01.00,000.00,1.00 ++000.00,-01.45,01.00,000.00,1.00 ++000.00,-01.95,01.00,000.00,1.00 ++000.00,-02.45,01.00,000.00,1.00 ++000.00,-02.95,01.00,000.00,1.00 ++000.00,-03.45,01.00,000.00,1.00 ++000.00,-03.94,01.00,000.00,1.00 ++000.00,-04.44,01.00,000.00,1.00 ++000.00,-04.94,01.00,000.00,1.00 ++000.00,-05.43,01.00,000.00,1.00 ++000.00,-05.92,01.00,000.00,1.00 ++000.00,-06.42,01.00,000.00,1.00 ++000.00,-06.91,01.00,000.00,1.00 ++000.00,-07.39,01.00,000.00,1.00 ++000.00,-07.88,01.00,000.00,1.00 ++000.00,-08.37,01.00,000.00,1.00 ++000.00,-08.85,01.00,000.00,1.00 ++000.00,-09.33,01.00,000.00,1.00 ++000.00,-09.81,01.00,000.00,1.00 ++000.00,-10.29,01.00,000.00,1.00 ++000.00,-10.76,01.00,000.00,1.00 ++000.00,-11.23,01.00,000.00,1.00 ++000.00,-11.70,01.00,000.00,1.00 ++000.00,-12.17,01.00,000.00,1.00 ++000.00,-12.63,01.00,000.00,1.00 ++000.00,-13.09,01.00,000.00,1.00 ++000.00,-13.54,01.00,000.00,1.00 ++000.00,-14.00,01.00,000.00,1.00 ++000.00,-14.45,01.00,000.00,1.00 ++000.00,-14.89,01.00,000.00,1.00 ++000.00,-15.34,01.00,000.00,1.00 ++000.00,-15.77,01.00,000.00,1.00 ++000.00,-16.21,01.00,000.00,1.00 ++000.00,-16.64,01.00,000.00,1.00 ++000.00,-17.07,01.00,000.00,1.00 ++000.00,-17.49,01.00,000.00,1.00 ++000.00,-17.90,01.00,000.00,1.00 ++000.00,-18.32,01.00,000.00,1.00 ++000.00,-18.72,01.00,000.00,1.00 ++000.00,-19.13,01.00,000.00,1.00 ++000.00,-19.53,01.00,000.00,1.00 ++000.00,-19.92,01.00,000.00,1.00 ++000.00,-20.30,01.00,000.00,1.00 ++000.00,-20.69,01.00,000.00,1.00 ++000.00,-21.06,01.00,000.00,1.00 ++000.00,-21.43,01.00,000.00,1.00 ++000.00,-21.80,01.00,000.00,1.00 ++000.00,-22.15,01.00,000.00,1.00 ++000.00,-22.51,01.00,000.00,1.00 ++000.00,-22.85,01.00,000.00,1.00 ++000.00,-23.19,01.00,000.00,1.00 ++000.00,-23.52,01.00,000.00,1.00 ++000.00,-23.85,01.00,000.00,1.00 ++000.00,-24.17,01.00,000.00,1.00 ++000.00,-24.48,01.00,000.00,1.00 ++000.00,-24.78,01.00,000.00,1.00 ++000.00,-25.08,01.00,000.00,1.00 ++000.00,-25.37,01.00,000.00,1.00 ++000.00,-25.65,01.00,000.00,1.00 ++000.00,-25.92,01.00,000.00,1.00 ++000.00,-26.19,01.00,000.00,1.00 ++000.00,-26.45,01.00,000.00,1.00 ++000.00,-26.70,01.00,000.00,1.00 ++000.00,-26.94,01.00,000.00,1.00 ++000.00,-27.17,01.00,000.00,1.00 ++000.00,-27.40,01.00,000.00,1.00 ++000.00,-27.61,01.00,000.00,1.00 ++000.00,-27.82,01.00,000.00,1.00 ++000.00,-28.02,01.00,000.00,1.00 ++000.00,-28.21,01.00,000.00,1.00 ++000.00,-28.39,01.00,000.00,1.00 ++000.00,-28.56,01.00,000.00,1.00 ++000.00,-28.72,01.00,000.00,1.00 ++000.00,-28.88,01.00,000.00,1.00 ++000.00,-29.02,01.00,000.00,1.00 ++000.00,-29.15,01.00,000.00,1.00 ++000.00,-29.28,01.00,000.00,1.00 ++000.00,-29.39,01.00,000.00,1.00 ++000.00,-29.50,01.00,000.00,1.00 ++000.00,-29.59,01.00,000.00,1.00 ++000.00,-29.68,01.00,000.00,1.00 ++000.00,-29.75,01.00,000.00,1.00 ++000.00,-29.82,01.00,000.00,1.00 ++000.00,-29.87,01.00,000.00,1.00 ++000.00,-29.92,01.00,000.00,1.00 ++000.00,-29.95,01.00,000.00,1.00 ++000.00,-29.98,01.00,000.00,1.00 ++000.00,-29.99,01.00,000.00,1.00 ++000.00,-30.00,01.00,000.00,1.00 ++000.00,-29.99,01.00,000.00,1.00 ++000.00,-29.98,01.00,000.00,1.00 ++000.00,-29.95,01.00,000.00,1.00 ++000.00,-29.92,01.00,000.00,1.00 ++000.00,-29.87,01.00,000.00,1.00 ++000.00,-29.82,01.00,000.00,1.00 ++000.00,-29.75,01.00,000.00,1.00 ++000.00,-29.68,01.00,000.00,1.00 ++000.00,-29.59,01.00,000.00,1.00 ++000.00,-29.50,01.00,000.00,1.00 ++000.00,-29.39,01.00,000.00,1.00 ++000.00,-29.28,01.00,000.00,1.00 ++000.00,-29.15,01.00,000.00,1.00 ++000.00,-29.02,01.00,000.00,1.00 ++000.00,-28.88,01.00,000.00,1.00 ++000.00,-28.72,01.00,000.00,1.00 ++000.00,-28.56,01.00,000.00,1.00 ++000.00,-28.39,01.00,000.00,1.00 ++000.00,-28.21,01.00,000.00,1.00 ++000.00,-28.02,01.00,000.00,1.00 ++000.00,-27.82,01.00,000.00,1.00 ++000.00,-27.61,01.00,000.00,1.00 ++000.00,-27.40,01.00,000.00,1.00 ++000.00,-27.17,01.00,000.00,1.00 ++000.00,-26.94,01.00,000.00,1.00 ++000.00,-26.70,01.00,000.00,1.00 ++000.00,-26.45,01.00,000.00,1.00 ++000.00,-26.19,01.00,000.00,1.00 ++000.00,-25.92,01.00,000.00,1.00 ++000.00,-25.65,01.00,000.00,1.00 ++000.00,-25.37,01.00,000.00,1.00 ++000.00,-25.08,01.00,000.00,1.00 ++000.00,-24.78,01.00,000.00,1.00 ++000.00,-24.48,01.00,000.00,1.00 ++000.00,-24.17,01.00,000.00,1.00 ++000.00,-23.85,01.00,000.00,1.00 ++000.00,-23.52,01.00,000.00,1.00 ++000.00,-23.19,01.00,000.00,1.00 ++000.00,-22.85,01.00,000.00,1.00 ++000.00,-22.51,01.00,000.00,1.00 ++000.00,-22.15,01.00,000.00,1.00 ++000.00,-21.80,01.00,000.00,1.00 ++000.00,-21.43,01.00,000.00,1.00 ++000.00,-21.06,01.00,000.00,1.00 ++000.00,-20.69,01.00,000.00,1.00 ++000.00,-20.30,01.00,000.00,1.00 ++000.00,-19.92,01.00,000.00,1.00 ++000.00,-19.53,01.00,000.00,1.00 ++000.00,-19.13,01.00,000.00,1.00 ++000.00,-18.72,01.00,000.00,1.00 ++000.00,-18.32,01.00,000.00,1.00 ++000.00,-17.90,01.00,000.00,1.00 ++000.00,-17.49,01.00,000.00,1.00 ++000.00,-17.07,01.00,000.00,1.00 ++000.00,-16.64,01.00,000.00,1.00 ++000.00,-16.21,01.00,000.00,1.00 ++000.00,-15.77,01.00,000.00,1.00 ++000.00,-15.34,01.00,000.00,1.00 ++000.00,-14.89,01.00,000.00,1.00 ++000.00,-14.45,01.00,000.00,1.00 ++000.00,-14.00,01.00,000.00,1.00 ++000.00,-13.54,01.00,000.00,1.00 ++000.00,-13.09,01.00,000.00,1.00 ++000.00,-12.63,01.00,000.00,1.00 ++000.00,-12.17,01.00,000.00,1.00 ++000.00,-11.70,01.00,000.00,1.00 ++000.00,-11.23,01.00,000.00,1.00 ++000.00,-10.76,01.00,000.00,1.00 ++000.00,-10.29,01.00,000.00,1.00 ++000.00,-09.81,01.00,000.00,1.00 ++000.00,-09.33,01.00,000.00,1.00 ++000.00,-08.85,01.00,000.00,1.00 ++000.00,-08.37,01.00,000.00,1.00 ++000.00,-07.88,01.00,000.00,1.00 ++000.00,-07.39,01.00,000.00,1.00 ++000.00,-06.91,01.00,000.00,1.00 ++000.00,-06.42,01.00,000.00,1.00 ++000.00,-05.92,01.00,000.00,1.00 ++000.00,-05.43,01.00,000.00,1.00 ++000.00,-04.94,01.00,000.00,1.00 ++000.00,-04.44,01.00,000.00,1.00 ++000.00,-03.94,01.00,000.00,1.00 ++000.00,-03.45,01.00,000.00,1.00 ++000.00,-02.95,01.00,000.00,1.00 ++000.00,-02.45,01.00,000.00,1.00 ++000.00,-01.95,01.00,000.00,1.00 ++000.00,-01.45,01.00,000.00,1.00 ++000.00,-00.95,01.00,000.00,1.00 ++000.00,-00.45,01.00,000.00,1.00 ++000.00,+00.05,01.00,000.00,1.00 ++000.00,+00.55,01.00,000.00,1.00 ++000.00,+01.05,01.00,000.00,1.00 ++000.00,+01.55,01.00,000.00,1.00 ++000.00,+02.05,01.00,000.00,1.00 ++000.00,+02.55,01.00,000.00,1.00 ++000.00,+03.05,01.00,000.00,1.00 ++000.00,+03.55,01.00,000.00,1.00 ++000.00,+04.04,01.00,000.00,1.00 ++000.00,+04.54,01.00,000.00,1.00 ++000.00,+05.04,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t09_ch1.csv b/scripts/td_object_renderer/metadata/csv/t09_ch1.csv index 03e0e49d7e..803c0f92c9 100644 --- a/scripts/td_object_renderer/metadata/csv/t09_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t09_ch1.csv @@ -1,1000 +1,1000 @@ -0000,+000.00,+30.00,01.00,000.00,1.00 -0001,+000.58,+29.99,01.00,000.00,1.00 -0002,+001.16,+29.98,01.00,000.00,1.00 -0003,+001.73,+29.95,01.00,000.00,1.00 -0004,+002.31,+29.92,01.00,000.00,1.00 -0005,+002.88,+29.87,01.00,000.00,1.00 -0006,+003.46,+29.82,01.00,000.00,1.00 -0007,+004.03,+29.75,01.00,000.00,1.00 -0008,+004.60,+29.68,01.00,000.00,1.00 -0009,+005.17,+29.59,01.00,000.00,1.00 -0010,+005.73,+29.50,01.00,000.00,1.00 -0011,+006.29,+29.39,01.00,000.00,1.00 -0012,+006.85,+29.28,01.00,000.00,1.00 -0013,+007.41,+29.15,01.00,000.00,1.00 -0014,+007.96,+29.02,01.00,000.00,1.00 -0015,+008.51,+28.88,01.00,000.00,1.00 -0016,+009.05,+28.72,01.00,000.00,1.00 -0017,+009.59,+28.56,01.00,000.00,1.00 -0018,+010.13,+28.39,01.00,000.00,1.00 -0019,+010.66,+28.21,01.00,000.00,1.00 -0020,+011.18,+28.02,01.00,000.00,1.00 -0021,+011.70,+27.82,01.00,000.00,1.00 -0022,+012.22,+27.61,01.00,000.00,1.00 -0023,+012.73,+27.40,01.00,000.00,1.00 -0024,+013.23,+27.17,01.00,000.00,1.00 -0025,+013.73,+26.94,01.00,000.00,1.00 -0026,+014.22,+26.70,01.00,000.00,1.00 -0027,+014.70,+26.45,01.00,000.00,1.00 -0028,+015.18,+26.19,01.00,000.00,1.00 -0029,+015.65,+25.92,01.00,000.00,1.00 -0030,+016.12,+25.65,01.00,000.00,1.00 -0031,+016.58,+25.37,01.00,000.00,1.00 -0032,+017.03,+25.08,01.00,000.00,1.00 -0033,+017.47,+24.78,01.00,000.00,1.00 -0034,+017.91,+24.48,01.00,000.00,1.00 -0035,+018.34,+24.17,01.00,000.00,1.00 -0036,+018.76,+23.85,01.00,000.00,1.00 -0037,+019.18,+23.52,01.00,000.00,1.00 -0038,+019.58,+23.19,01.00,000.00,1.00 -0039,+019.99,+22.85,01.00,000.00,1.00 -0040,+020.38,+22.51,01.00,000.00,1.00 -0041,+020.76,+22.15,01.00,000.00,1.00 -0042,+021.14,+21.80,01.00,000.00,1.00 -0043,+021.51,+21.43,01.00,000.00,1.00 -0044,+021.87,+21.06,01.00,000.00,1.00 -0045,+022.23,+20.69,01.00,000.00,1.00 -0046,+022.57,+20.30,01.00,000.00,1.00 -0047,+022.91,+19.92,01.00,000.00,1.00 -0048,+023.24,+19.53,01.00,000.00,1.00 -0049,+023.56,+19.13,01.00,000.00,1.00 -0050,+023.88,+18.72,01.00,000.00,1.00 -0051,+024.18,+18.32,01.00,000.00,1.00 -0052,+024.48,+17.90,01.00,000.00,1.00 -0053,+024.77,+17.49,01.00,000.00,1.00 -0054,+025.05,+17.07,01.00,000.00,1.00 -0055,+025.33,+16.64,01.00,000.00,1.00 -0056,+025.59,+16.21,01.00,000.00,1.00 -0057,+025.85,+15.77,01.00,000.00,1.00 -0058,+026.10,+15.34,01.00,000.00,1.00 -0059,+026.35,+14.89,01.00,000.00,1.00 -0060,+026.58,+14.45,01.00,000.00,1.00 -0061,+026.81,+14.00,01.00,000.00,1.00 -0062,+027.03,+13.54,01.00,000.00,1.00 -0063,+027.24,+13.09,01.00,000.00,1.00 -0064,+027.44,+12.63,01.00,000.00,1.00 -0065,+027.63,+12.17,01.00,000.00,1.00 -0066,+027.82,+11.70,01.00,000.00,1.00 -0067,+028.00,+11.23,01.00,000.00,1.00 -0068,+028.17,+10.76,01.00,000.00,1.00 -0069,+028.34,+10.29,01.00,000.00,1.00 -0070,+028.49,+09.81,01.00,000.00,1.00 -0071,+028.64,+09.33,01.00,000.00,1.00 -0072,+028.78,+08.85,01.00,000.00,1.00 -0073,+028.91,+08.37,01.00,000.00,1.00 -0074,+029.04,+07.88,01.00,000.00,1.00 -0075,+029.16,+07.39,01.00,000.00,1.00 -0076,+029.27,+06.91,01.00,000.00,1.00 -0077,+029.37,+06.42,01.00,000.00,1.00 -0078,+029.46,+05.92,01.00,000.00,1.00 -0079,+029.55,+05.43,01.00,000.00,1.00 -0080,+029.63,+04.94,01.00,000.00,1.00 -0081,+029.70,+04.44,01.00,000.00,1.00 -0082,+029.76,+03.94,01.00,000.00,1.00 -0083,+029.82,+03.45,01.00,000.00,1.00 -0084,+029.87,+02.95,01.00,000.00,1.00 -0085,+029.91,+02.45,01.00,000.00,1.00 -0086,+029.94,+01.95,01.00,000.00,1.00 -0087,+029.97,+01.45,01.00,000.00,1.00 -0088,+029.99,+00.95,01.00,000.00,1.00 -0089,+030.00,+00.45,01.00,000.00,1.00 -0090,+030.00,-00.05,01.00,000.00,1.00 -0091,+030.00,-00.55,01.00,000.00,1.00 -0092,+029.98,-01.05,01.00,000.00,1.00 -0093,+029.96,-01.55,01.00,000.00,1.00 -0094,+029.94,-02.05,01.00,000.00,1.00 -0095,+029.90,-02.55,01.00,000.00,1.00 -0096,+029.86,-03.05,01.00,000.00,1.00 -0097,+029.81,-03.55,01.00,000.00,1.00 -0098,+029.75,-04.04,01.00,000.00,1.00 -0099,+029.69,-04.54,01.00,000.00,1.00 -0100,+029.61,-05.04,01.00,000.00,1.00 -0101,+029.53,-05.53,01.00,000.00,1.00 -0102,+029.44,-06.02,01.00,000.00,1.00 -0103,+029.35,-06.51,01.00,000.00,1.00 -0104,+029.25,-07.00,01.00,000.00,1.00 -0105,+029.13,-07.49,01.00,000.00,1.00 -0106,+029.02,-07.98,01.00,000.00,1.00 -0107,+028.89,-08.46,01.00,000.00,1.00 -0108,+028.75,-08.95,01.00,000.00,1.00 -0109,+028.61,-09.43,01.00,000.00,1.00 -0110,+028.46,-09.90,01.00,000.00,1.00 -0111,+028.30,-10.38,01.00,000.00,1.00 -0112,+028.14,-10.85,01.00,000.00,1.00 -0113,+027.97,-11.33,01.00,000.00,1.00 -0114,+027.79,-11.79,01.00,000.00,1.00 -0115,+027.60,-12.26,01.00,000.00,1.00 -0116,+027.40,-12.72,01.00,000.00,1.00 -0117,+027.20,-13.18,01.00,000.00,1.00 -0118,+026.98,-13.64,01.00,000.00,1.00 -0119,+026.76,-14.09,01.00,000.00,1.00 -0120,+026.53,-14.54,01.00,000.00,1.00 -0121,+026.30,-14.98,01.00,000.00,1.00 -0122,+026.05,-15.42,01.00,000.00,1.00 -0123,+025.80,-15.86,01.00,000.00,1.00 -0124,+025.54,-16.30,01.00,000.00,1.00 -0125,+025.27,-16.73,01.00,000.00,1.00 -0126,+025.00,-17.15,01.00,000.00,1.00 -0127,+024.71,-17.57,01.00,000.00,1.00 -0128,+024.42,-17.99,01.00,000.00,1.00 -0129,+024.12,-18.40,01.00,000.00,1.00 -0130,+023.81,-18.81,01.00,000.00,1.00 -0131,+023.50,-19.21,01.00,000.00,1.00 -0132,+023.17,-19.60,01.00,000.00,1.00 -0133,+022.84,-20.00,01.00,000.00,1.00 -0134,+022.50,-20.38,01.00,000.00,1.00 -0135,+022.16,-20.76,01.00,000.00,1.00 -0136,+021.80,-21.14,01.00,000.00,1.00 -0137,+021.44,-21.51,01.00,000.00,1.00 -0138,+021.07,-21.87,01.00,000.00,1.00 -0139,+020.69,-22.22,01.00,000.00,1.00 -0140,+020.30,-22.58,01.00,000.00,1.00 -0141,+019.91,-22.92,01.00,000.00,1.00 -0142,+019.50,-23.26,01.00,000.00,1.00 -0143,+019.09,-23.59,01.00,000.00,1.00 -0144,+018.68,-23.91,01.00,000.00,1.00 -0145,+018.25,-24.23,01.00,000.00,1.00 -0146,+017.82,-24.54,01.00,000.00,1.00 -0147,+017.38,-24.84,01.00,000.00,1.00 -0148,+016.94,-25.14,01.00,000.00,1.00 -0149,+016.48,-25.42,01.00,000.00,1.00 -0150,+016.03,-25.71,01.00,000.00,1.00 -0151,+015.56,-25.98,01.00,000.00,1.00 -0152,+015.09,-26.24,01.00,000.00,1.00 -0153,+014.61,-26.50,01.00,000.00,1.00 -0154,+014.12,-26.75,01.00,000.00,1.00 -0155,+013.63,-26.99,01.00,000.00,1.00 -0156,+013.13,-27.22,01.00,000.00,1.00 -0157,+012.62,-27.44,01.00,000.00,1.00 -0158,+012.11,-27.66,01.00,000.00,1.00 -0159,+011.60,-27.86,01.00,000.00,1.00 -0160,+011.08,-28.06,01.00,000.00,1.00 -0161,+010.55,-28.25,01.00,000.00,1.00 -0162,+010.02,-28.43,01.00,000.00,1.00 -0163,+009.48,-28.59,01.00,000.00,1.00 -0164,+008.94,-28.76,01.00,000.00,1.00 -0165,+008.40,-28.91,01.00,000.00,1.00 -0166,+007.85,-29.05,01.00,000.00,1.00 -0167,+007.30,-29.18,01.00,000.00,1.00 -0168,+006.74,-29.30,01.00,000.00,1.00 -0169,+006.18,-29.41,01.00,000.00,1.00 -0170,+005.62,-29.52,01.00,000.00,1.00 -0171,+005.05,-29.61,01.00,000.00,1.00 -0172,+004.49,-29.69,01.00,000.00,1.00 -0173,+003.92,-29.77,01.00,000.00,1.00 -0174,+003.34,-29.83,01.00,000.00,1.00 -0175,+002.77,-29.88,01.00,000.00,1.00 -0176,+002.19,-29.93,01.00,000.00,1.00 -0177,+001.62,-29.96,01.00,000.00,1.00 -0178,+001.04,-29.98,01.00,000.00,1.00 -0179,+000.46,-30.00,01.00,000.00,1.00 -0180,-000.12,-30.00,01.00,000.00,1.00 -0181,-000.69,-29.99,01.00,000.00,1.00 -0182,-001.27,-29.98,01.00,000.00,1.00 -0183,-001.85,-29.95,01.00,000.00,1.00 -0184,-002.42,-29.91,01.00,000.00,1.00 -0185,-003.00,-29.86,01.00,000.00,1.00 -0186,-003.57,-29.81,01.00,000.00,1.00 -0187,-004.14,-29.74,01.00,000.00,1.00 -0188,-004.71,-29.66,01.00,000.00,1.00 -0189,-005.28,-29.57,01.00,000.00,1.00 -0190,-005.84,-29.48,01.00,000.00,1.00 -0191,-006.41,-29.37,01.00,000.00,1.00 -0192,-006.96,-29.25,01.00,000.00,1.00 -0193,-007.52,-29.13,01.00,000.00,1.00 -0194,-008.07,-28.99,01.00,000.00,1.00 -0195,-008.62,-28.85,01.00,000.00,1.00 -0196,-009.16,-28.69,01.00,000.00,1.00 -0197,-009.70,-28.53,01.00,000.00,1.00 -0198,-010.23,-28.35,01.00,000.00,1.00 -0199,-010.76,-28.17,01.00,000.00,1.00 -0200,-011.29,-27.98,01.00,000.00,1.00 -0201,-011.81,-27.78,01.00,000.00,1.00 -0202,-012.32,-27.57,01.00,000.00,1.00 -0203,-012.83,-27.35,01.00,000.00,1.00 -0204,-013.33,-27.13,01.00,000.00,1.00 -0205,-013.82,-26.89,01.00,000.00,1.00 -0206,-014.31,-26.65,01.00,000.00,1.00 -0207,-014.80,-26.40,01.00,000.00,1.00 -0208,-015.28,-26.14,01.00,000.00,1.00 -0209,-015.75,-25.87,01.00,000.00,1.00 -0210,-016.21,-25.59,01.00,000.00,1.00 -0211,-016.67,-25.31,01.00,000.00,1.00 -0212,-017.12,-25.02,01.00,000.00,1.00 -0213,-017.56,-24.72,01.00,000.00,1.00 -0214,-018.00,-24.42,01.00,000.00,1.00 -0215,-018.42,-24.10,01.00,000.00,1.00 -0216,-018.85,-23.78,01.00,000.00,1.00 -0217,-019.26,-23.46,01.00,000.00,1.00 -0218,-019.67,-23.12,01.00,000.00,1.00 -0219,-020.06,-22.78,01.00,000.00,1.00 -0220,-020.46,-22.44,01.00,000.00,1.00 -0221,-020.84,-22.08,01.00,000.00,1.00 -0222,-021.21,-21.72,01.00,000.00,1.00 -0223,-021.58,-21.36,01.00,000.00,1.00 -0224,-021.94,-20.99,01.00,000.00,1.00 -0225,-022.29,-20.61,01.00,000.00,1.00 -0226,-022.64,-20.23,01.00,000.00,1.00 -0227,-022.98,-19.84,01.00,000.00,1.00 -0228,-023.30,-19.45,01.00,000.00,1.00 -0229,-023.63,-19.05,01.00,000.00,1.00 -0230,-023.94,-18.64,01.00,000.00,1.00 -0231,-024.24,-18.23,01.00,000.00,1.00 -0232,-024.54,-17.82,01.00,000.00,1.00 -0233,-024.83,-17.40,01.00,000.00,1.00 -0234,-025.11,-16.98,01.00,000.00,1.00 -0235,-025.38,-16.55,01.00,000.00,1.00 -0236,-025.65,-16.12,01.00,000.00,1.00 -0237,-025.90,-15.69,01.00,000.00,1.00 -0238,-026.15,-15.25,01.00,000.00,1.00 -0239,-026.39,-14.80,01.00,000.00,1.00 -0240,-026.63,-14.36,01.00,000.00,1.00 -0241,-026.85,-13.91,01.00,000.00,1.00 -0242,-027.07,-13.45,01.00,000.00,1.00 -0243,-027.28,-13.00,01.00,000.00,1.00 -0244,-027.48,-12.54,01.00,000.00,1.00 -0245,-027.67,-12.07,01.00,000.00,1.00 -0246,-027.86,-11.61,01.00,000.00,1.00 -0247,-028.04,-11.14,01.00,000.00,1.00 -0248,-028.21,-10.67,01.00,000.00,1.00 -0249,-028.37,-10.19,01.00,000.00,1.00 -0250,-028.52,-09.71,01.00,000.00,1.00 -0251,-028.67,-09.23,01.00,000.00,1.00 -0252,-028.81,-08.75,01.00,000.00,1.00 -0253,-028.94,-08.27,01.00,000.00,1.00 -0254,-029.06,-07.78,01.00,000.00,1.00 -0255,-029.18,-07.30,01.00,000.00,1.00 -0256,-029.29,-06.81,01.00,000.00,1.00 -0257,-029.39,-06.32,01.00,000.00,1.00 -0258,-029.48,-05.83,01.00,000.00,1.00 -0259,-029.57,-05.33,01.00,000.00,1.00 -0260,-029.64,-04.84,01.00,000.00,1.00 -0261,-029.71,-04.34,01.00,000.00,1.00 -0262,-029.78,-03.85,01.00,000.00,1.00 -0263,-029.83,-03.35,01.00,000.00,1.00 -0264,-029.88,-02.85,01.00,000.00,1.00 -0265,-029.92,-02.35,01.00,000.00,1.00 -0266,-029.95,-01.85,01.00,000.00,1.00 -0267,-029.97,-01.35,01.00,000.00,1.00 -0268,-029.99,-00.85,01.00,000.00,1.00 -0269,-030.00,-00.35,01.00,000.00,1.00 -0270,-030.00,+00.15,01.00,000.00,1.00 -0271,-029.99,+00.65,01.00,000.00,1.00 -0272,-029.98,+01.15,01.00,000.00,1.00 -0273,-029.96,+01.65,01.00,000.00,1.00 -0274,-029.93,+02.15,01.00,000.00,1.00 -0275,-029.89,+02.65,01.00,000.00,1.00 -0276,-029.85,+03.15,01.00,000.00,1.00 -0277,-029.80,+03.65,01.00,000.00,1.00 -0278,-029.74,+04.14,01.00,000.00,1.00 -0279,-029.67,+04.64,01.00,000.00,1.00 -0280,-029.60,+05.13,01.00,000.00,1.00 -0281,-029.52,+05.63,01.00,000.00,1.00 -0282,-029.43,+06.12,01.00,000.00,1.00 -0283,-029.33,+06.61,01.00,000.00,1.00 -0284,-029.22,+07.10,01.00,000.00,1.00 -0285,-029.11,+07.59,01.00,000.00,1.00 -0286,-028.99,+08.08,01.00,000.00,1.00 -0287,-028.86,+08.56,01.00,000.00,1.00 -0288,-028.73,+09.04,01.00,000.00,1.00 -0289,-028.58,+09.52,01.00,000.00,1.00 -0290,-028.43,+10.00,01.00,000.00,1.00 -0291,-028.27,+10.48,01.00,000.00,1.00 -0292,-028.11,+10.95,01.00,000.00,1.00 -0293,-027.93,+11.42,01.00,000.00,1.00 -0294,-027.75,+11.89,01.00,000.00,1.00 -0295,-027.56,+12.35,01.00,000.00,1.00 -0296,-027.36,+12.81,01.00,000.00,1.00 -0297,-027.15,+13.27,01.00,000.00,1.00 -0298,-026.94,+13.73,01.00,000.00,1.00 -0299,-026.72,+14.18,01.00,000.00,1.00 -0300,-026.49,+14.63,01.00,000.00,1.00 -0301,-026.25,+15.07,01.00,000.00,1.00 -0302,-026.00,+15.51,01.00,000.00,1.00 -0303,-025.75,+15.95,01.00,000.00,1.00 -0304,-025.49,+16.38,01.00,000.00,1.00 -0305,-025.22,+16.81,01.00,000.00,1.00 -0306,-024.94,+17.23,01.00,000.00,1.00 -0307,-024.66,+17.65,01.00,000.00,1.00 -0308,-024.36,+18.07,01.00,000.00,1.00 -0309,-024.06,+18.48,01.00,000.00,1.00 -0310,-023.75,+18.89,01.00,000.00,1.00 -0311,-023.43,+19.29,01.00,000.00,1.00 -0312,-023.11,+19.68,01.00,000.00,1.00 -0313,-022.77,+20.07,01.00,000.00,1.00 -0314,-022.43,+20.46,01.00,000.00,1.00 -0315,-022.08,+20.84,01.00,000.00,1.00 -0316,-021.73,+21.21,01.00,000.00,1.00 -0317,-021.36,+21.58,01.00,000.00,1.00 -0318,-020.99,+21.94,01.00,000.00,1.00 -0319,-020.61,+22.30,01.00,000.00,1.00 -0320,-020.22,+22.64,01.00,000.00,1.00 -0321,-019.83,+22.99,01.00,000.00,1.00 -0322,-019.42,+23.32,01.00,000.00,1.00 -0323,-019.01,+23.65,01.00,000.00,1.00 -0324,-018.59,+23.98,01.00,000.00,1.00 -0325,-018.17,+24.29,01.00,000.00,1.00 -0326,-017.74,+24.60,01.00,000.00,1.00 -0327,-017.29,+24.90,01.00,000.00,1.00 -0328,-016.85,+25.20,01.00,000.00,1.00 -0329,-016.39,+25.48,01.00,000.00,1.00 -0330,-015.93,+25.76,01.00,000.00,1.00 -0331,-015.46,+26.03,01.00,000.00,1.00 -0332,-014.99,+26.29,01.00,000.00,1.00 -0333,-014.51,+26.55,01.00,000.00,1.00 -0334,-014.02,+26.80,01.00,000.00,1.00 -0335,-013.53,+27.03,01.00,000.00,1.00 -0336,-013.03,+27.26,01.00,000.00,1.00 -0337,-012.52,+27.49,01.00,000.00,1.00 -0338,-012.01,+27.70,01.00,000.00,1.00 -0339,-011.49,+27.90,01.00,000.00,1.00 -0340,-010.97,+28.10,01.00,000.00,1.00 -0341,-010.45,+28.28,01.00,000.00,1.00 -0342,-009.91,+28.46,01.00,000.00,1.00 -0343,-009.38,+28.63,01.00,000.00,1.00 -0344,-008.83,+28.79,01.00,000.00,1.00 -0345,-008.29,+28.94,01.00,000.00,1.00 -0346,-007.74,+29.07,01.00,000.00,1.00 -0347,-007.19,+29.20,01.00,000.00,1.00 -0348,-006.63,+29.33,01.00,000.00,1.00 -0349,-006.07,+29.44,01.00,000.00,1.00 -0350,-005.51,+29.54,01.00,000.00,1.00 -0351,-004.94,+29.63,01.00,000.00,1.00 -0352,-004.37,+29.71,01.00,000.00,1.00 -0353,-003.80,+29.78,01.00,000.00,1.00 -0354,-003.23,+29.84,01.00,000.00,1.00 -0355,-002.65,+29.89,01.00,000.00,1.00 -0356,-002.08,+29.93,01.00,000.00,1.00 -0357,-001.50,+29.97,01.00,000.00,1.00 -0358,-000.92,+29.99,01.00,000.00,1.00 -0359,-000.35,+30.00,01.00,000.00,1.00 -0360,+000.23,+30.00,01.00,000.00,1.00 -0361,+000.81,+29.99,01.00,000.00,1.00 -0362,+001.39,+29.97,01.00,000.00,1.00 -0363,+001.96,+29.94,01.00,000.00,1.00 -0364,+002.54,+29.90,01.00,000.00,1.00 -0365,+003.11,+29.85,01.00,000.00,1.00 -0366,+003.69,+29.79,01.00,000.00,1.00 -0367,+004.26,+29.72,01.00,000.00,1.00 -0368,+004.83,+29.64,01.00,000.00,1.00 -0369,+005.39,+29.56,01.00,000.00,1.00 -0370,+005.96,+29.46,01.00,000.00,1.00 -0371,+006.52,+29.35,01.00,000.00,1.00 -0372,+007.07,+29.23,01.00,000.00,1.00 -0373,+007.63,+29.10,01.00,000.00,1.00 -0374,+008.18,+28.96,01.00,000.00,1.00 -0375,+008.73,+28.82,01.00,000.00,1.00 -0376,+009.27,+28.66,01.00,000.00,1.00 -0377,+009.81,+28.49,01.00,000.00,1.00 -0378,+010.34,+28.32,01.00,000.00,1.00 -0379,+010.87,+28.13,01.00,000.00,1.00 -0380,+011.39,+27.94,01.00,000.00,1.00 -0381,+011.91,+27.74,01.00,000.00,1.00 -0382,+012.42,+27.53,01.00,000.00,1.00 -0383,+012.93,+27.31,01.00,000.00,1.00 -0384,+013.43,+27.08,01.00,000.00,1.00 -0385,+013.92,+26.84,01.00,000.00,1.00 -0386,+014.41,+26.60,01.00,000.00,1.00 -0387,+014.89,+26.35,01.00,000.00,1.00 -0388,+015.37,+26.08,01.00,000.00,1.00 -0389,+015.84,+25.81,01.00,000.00,1.00 -0390,+016.30,+25.54,01.00,000.00,1.00 -0391,+016.76,+25.25,01.00,000.00,1.00 -0392,+017.21,+24.96,01.00,000.00,1.00 -0393,+017.65,+24.66,01.00,000.00,1.00 -0394,+018.08,+24.35,01.00,000.00,1.00 -0395,+018.51,+24.04,01.00,000.00,1.00 -0396,+018.93,+23.72,01.00,000.00,1.00 -0397,+019.34,+23.39,01.00,000.00,1.00 -0398,+019.75,+23.06,01.00,000.00,1.00 -0399,+020.14,+22.71,01.00,000.00,1.00 -0400,+020.53,+22.37,01.00,000.00,1.00 -0401,+020.91,+22.01,01.00,000.00,1.00 -0402,+021.29,+21.65,01.00,000.00,1.00 -0403,+021.66,+21.28,01.00,000.00,1.00 -0404,+022.01,+20.91,01.00,000.00,1.00 -0405,+022.36,+20.53,01.00,000.00,1.00 -0406,+022.71,+20.15,01.00,000.00,1.00 -0407,+023.04,+19.76,01.00,000.00,1.00 -0408,+023.37,+19.37,01.00,000.00,1.00 -0409,+023.69,+18.97,01.00,000.00,1.00 -0410,+024.00,+18.56,01.00,000.00,1.00 -0411,+024.30,+18.15,01.00,000.00,1.00 -0412,+024.60,+17.74,01.00,000.00,1.00 -0413,+024.88,+17.32,01.00,000.00,1.00 -0414,+025.16,+16.90,01.00,000.00,1.00 -0415,+025.44,+16.47,01.00,000.00,1.00 -0416,+025.70,+16.04,01.00,000.00,1.00 -0417,+025.95,+15.60,01.00,000.00,1.00 -0418,+026.20,+15.16,01.00,000.00,1.00 -0419,+026.44,+14.72,01.00,000.00,1.00 -0420,+026.67,+14.27,01.00,000.00,1.00 -0421,+026.90,+13.82,01.00,000.00,1.00 -0422,+027.11,+13.36,01.00,000.00,1.00 -0423,+027.32,+12.90,01.00,000.00,1.00 -0424,+027.52,+12.44,01.00,000.00,1.00 -0425,+027.71,+11.98,01.00,000.00,1.00 -0426,+027.89,+11.51,01.00,000.00,1.00 -0427,+028.07,+11.04,01.00,000.00,1.00 -0428,+028.24,+10.57,01.00,000.00,1.00 -0429,+028.40,+10.10,01.00,000.00,1.00 -0430,+028.55,+09.62,01.00,000.00,1.00 -0431,+028.70,+09.14,01.00,000.00,1.00 -0432,+028.84,+08.66,01.00,000.00,1.00 -0433,+028.97,+08.17,01.00,000.00,1.00 -0434,+029.09,+07.69,01.00,000.00,1.00 -0435,+029.20,+07.20,01.00,000.00,1.00 -0436,+029.31,+06.71,01.00,000.00,1.00 -0437,+029.41,+06.22,01.00,000.00,1.00 -0438,+029.50,+05.73,01.00,000.00,1.00 -0439,+029.58,+05.23,01.00,000.00,1.00 -0440,+029.66,+04.74,01.00,000.00,1.00 -0441,+029.73,+04.24,01.00,000.00,1.00 -0442,+029.79,+03.75,01.00,000.00,1.00 -0443,+029.84,+03.25,01.00,000.00,1.00 -0444,+029.89,+02.75,01.00,000.00,1.00 -0445,+029.92,+02.25,01.00,000.00,1.00 -0446,+029.95,+01.75,01.00,000.00,1.00 -0447,+029.98,+01.25,01.00,000.00,1.00 -0448,+029.99,+00.75,01.00,000.00,1.00 -0449,+030.00,+00.25,01.00,000.00,1.00 -0450,+030.00,-00.25,01.00,000.00,1.00 -0451,+029.99,-00.75,01.00,000.00,1.00 -0452,+029.98,-01.25,01.00,000.00,1.00 -0453,+029.95,-01.75,01.00,000.00,1.00 -0454,+029.92,-02.25,01.00,000.00,1.00 -0455,+029.89,-02.75,01.00,000.00,1.00 -0456,+029.84,-03.25,01.00,000.00,1.00 -0457,+029.79,-03.75,01.00,000.00,1.00 -0458,+029.73,-04.24,01.00,000.00,1.00 -0459,+029.66,-04.74,01.00,000.00,1.00 -0460,+029.58,-05.23,01.00,000.00,1.00 -0461,+029.50,-05.73,01.00,000.00,1.00 -0462,+029.41,-06.22,01.00,000.00,1.00 -0463,+029.31,-06.71,01.00,000.00,1.00 -0464,+029.20,-07.20,01.00,000.00,1.00 -0465,+029.09,-07.69,01.00,000.00,1.00 -0466,+028.97,-08.17,01.00,000.00,1.00 -0467,+028.84,-08.66,01.00,000.00,1.00 -0468,+028.70,-09.14,01.00,000.00,1.00 -0469,+028.55,-09.62,01.00,000.00,1.00 -0470,+028.40,-10.10,01.00,000.00,1.00 -0471,+028.24,-10.57,01.00,000.00,1.00 -0472,+028.07,-11.04,01.00,000.00,1.00 -0473,+027.89,-11.51,01.00,000.00,1.00 -0474,+027.71,-11.98,01.00,000.00,1.00 -0475,+027.52,-12.44,01.00,000.00,1.00 -0476,+027.32,-12.90,01.00,000.00,1.00 -0477,+027.11,-13.36,01.00,000.00,1.00 -0478,+026.90,-13.82,01.00,000.00,1.00 -0479,+026.67,-14.27,01.00,000.00,1.00 -0480,+026.44,-14.72,01.00,000.00,1.00 -0481,+026.20,-15.16,01.00,000.00,1.00 -0482,+025.95,-15.60,01.00,000.00,1.00 -0483,+025.70,-16.04,01.00,000.00,1.00 -0484,+025.44,-16.47,01.00,000.00,1.00 -0485,+025.16,-16.90,01.00,000.00,1.00 -0486,+024.88,-17.32,01.00,000.00,1.00 -0487,+024.60,-17.74,01.00,000.00,1.00 -0488,+024.30,-18.15,01.00,000.00,1.00 -0489,+024.00,-18.56,01.00,000.00,1.00 -0490,+023.69,-18.97,01.00,000.00,1.00 -0491,+023.37,-19.37,01.00,000.00,1.00 -0492,+023.04,-19.76,01.00,000.00,1.00 -0493,+022.71,-20.15,01.00,000.00,1.00 -0494,+022.36,-20.53,01.00,000.00,1.00 -0495,+022.01,-20.91,01.00,000.00,1.00 -0496,+021.66,-21.28,01.00,000.00,1.00 -0497,+021.29,-21.65,01.00,000.00,1.00 -0498,+020.91,-22.01,01.00,000.00,1.00 -0499,+020.53,-22.37,01.00,000.00,1.00 -0500,+020.14,-22.71,01.00,000.00,1.00 -0501,+019.75,-23.06,01.00,000.00,1.00 -0502,+019.34,-23.39,01.00,000.00,1.00 -0503,+018.93,-23.72,01.00,000.00,1.00 -0504,+018.51,-24.04,01.00,000.00,1.00 -0505,+018.08,-24.35,01.00,000.00,1.00 -0506,+017.65,-24.66,01.00,000.00,1.00 -0507,+017.21,-24.96,01.00,000.00,1.00 -0508,+016.76,-25.25,01.00,000.00,1.00 -0509,+016.30,-25.54,01.00,000.00,1.00 -0510,+015.84,-25.81,01.00,000.00,1.00 -0511,+015.37,-26.08,01.00,000.00,1.00 -0512,+014.89,-26.35,01.00,000.00,1.00 -0513,+014.41,-26.60,01.00,000.00,1.00 -0514,+013.92,-26.84,01.00,000.00,1.00 -0515,+013.43,-27.08,01.00,000.00,1.00 -0516,+012.93,-27.31,01.00,000.00,1.00 -0517,+012.42,-27.53,01.00,000.00,1.00 -0518,+011.91,-27.74,01.00,000.00,1.00 -0519,+011.39,-27.94,01.00,000.00,1.00 -0520,+010.87,-28.13,01.00,000.00,1.00 -0521,+010.34,-28.32,01.00,000.00,1.00 -0522,+009.81,-28.49,01.00,000.00,1.00 -0523,+009.27,-28.66,01.00,000.00,1.00 -0524,+008.73,-28.82,01.00,000.00,1.00 -0525,+008.18,-28.96,01.00,000.00,1.00 -0526,+007.63,-29.10,01.00,000.00,1.00 -0527,+007.07,-29.23,01.00,000.00,1.00 -0528,+006.52,-29.35,01.00,000.00,1.00 -0529,+005.96,-29.46,01.00,000.00,1.00 -0530,+005.39,-29.56,01.00,000.00,1.00 -0531,+004.83,-29.64,01.00,000.00,1.00 -0532,+004.26,-29.72,01.00,000.00,1.00 -0533,+003.69,-29.79,01.00,000.00,1.00 -0534,+003.11,-29.85,01.00,000.00,1.00 -0535,+002.54,-29.90,01.00,000.00,1.00 -0536,+001.96,-29.94,01.00,000.00,1.00 -0537,+001.39,-29.97,01.00,000.00,1.00 -0538,+000.81,-29.99,01.00,000.00,1.00 -0539,+000.23,-30.00,01.00,000.00,1.00 -0540,-000.35,-30.00,01.00,000.00,1.00 -0541,-000.92,-29.99,01.00,000.00,1.00 -0542,-001.50,-29.97,01.00,000.00,1.00 -0543,-002.08,-29.93,01.00,000.00,1.00 -0544,-002.65,-29.89,01.00,000.00,1.00 -0545,-003.23,-29.84,01.00,000.00,1.00 -0546,-003.80,-29.78,01.00,000.00,1.00 -0547,-004.37,-29.71,01.00,000.00,1.00 -0548,-004.94,-29.63,01.00,000.00,1.00 -0549,-005.51,-29.54,01.00,000.00,1.00 -0550,-006.07,-29.44,01.00,000.00,1.00 -0551,-006.63,-29.33,01.00,000.00,1.00 -0552,-007.19,-29.20,01.00,000.00,1.00 -0553,-007.74,-29.07,01.00,000.00,1.00 -0554,-008.29,-28.94,01.00,000.00,1.00 -0555,-008.83,-28.79,01.00,000.00,1.00 -0556,-009.38,-28.63,01.00,000.00,1.00 -0557,-009.91,-28.46,01.00,000.00,1.00 -0558,-010.45,-28.28,01.00,000.00,1.00 -0559,-010.97,-28.10,01.00,000.00,1.00 -0560,-011.49,-27.90,01.00,000.00,1.00 -0561,-012.01,-27.70,01.00,000.00,1.00 -0562,-012.52,-27.49,01.00,000.00,1.00 -0563,-013.03,-27.26,01.00,000.00,1.00 -0564,-013.53,-27.03,01.00,000.00,1.00 -0565,-014.02,-26.80,01.00,000.00,1.00 -0566,-014.51,-26.55,01.00,000.00,1.00 -0567,-014.99,-26.29,01.00,000.00,1.00 -0568,-015.46,-26.03,01.00,000.00,1.00 -0569,-015.93,-25.76,01.00,000.00,1.00 -0570,-016.39,-25.48,01.00,000.00,1.00 -0571,-016.85,-25.20,01.00,000.00,1.00 -0572,-017.29,-24.90,01.00,000.00,1.00 -0573,-017.74,-24.60,01.00,000.00,1.00 -0574,-018.17,-24.29,01.00,000.00,1.00 -0575,-018.59,-23.98,01.00,000.00,1.00 -0576,-019.01,-23.65,01.00,000.00,1.00 -0577,-019.42,-23.32,01.00,000.00,1.00 -0578,-019.83,-22.99,01.00,000.00,1.00 -0579,-020.22,-22.64,01.00,000.00,1.00 -0580,-020.61,-22.30,01.00,000.00,1.00 -0581,-020.99,-21.94,01.00,000.00,1.00 -0582,-021.36,-21.58,01.00,000.00,1.00 -0583,-021.73,-21.21,01.00,000.00,1.00 -0584,-022.08,-20.84,01.00,000.00,1.00 -0585,-022.43,-20.46,01.00,000.00,1.00 -0586,-022.77,-20.07,01.00,000.00,1.00 -0587,-023.11,-19.68,01.00,000.00,1.00 -0588,-023.43,-19.29,01.00,000.00,1.00 -0589,-023.75,-18.89,01.00,000.00,1.00 -0590,-024.06,-18.48,01.00,000.00,1.00 -0591,-024.36,-18.07,01.00,000.00,1.00 -0592,-024.66,-17.65,01.00,000.00,1.00 -0593,-024.94,-17.23,01.00,000.00,1.00 -0594,-025.22,-16.81,01.00,000.00,1.00 -0595,-025.49,-16.38,01.00,000.00,1.00 -0596,-025.75,-15.95,01.00,000.00,1.00 -0597,-026.00,-15.51,01.00,000.00,1.00 -0598,-026.25,-15.07,01.00,000.00,1.00 -0599,-026.49,-14.63,01.00,000.00,1.00 -0600,-026.72,-14.18,01.00,000.00,1.00 -0601,-026.94,-13.73,01.00,000.00,1.00 -0602,-027.15,-13.27,01.00,000.00,1.00 -0603,-027.36,-12.81,01.00,000.00,1.00 -0604,-027.56,-12.35,01.00,000.00,1.00 -0605,-027.75,-11.89,01.00,000.00,1.00 -0606,-027.93,-11.42,01.00,000.00,1.00 -0607,-028.11,-10.95,01.00,000.00,1.00 -0608,-028.27,-10.48,01.00,000.00,1.00 -0609,-028.43,-10.00,01.00,000.00,1.00 -0610,-028.58,-09.52,01.00,000.00,1.00 -0611,-028.73,-09.04,01.00,000.00,1.00 -0612,-028.86,-08.56,01.00,000.00,1.00 -0613,-028.99,-08.08,01.00,000.00,1.00 -0614,-029.11,-07.59,01.00,000.00,1.00 -0615,-029.22,-07.10,01.00,000.00,1.00 -0616,-029.33,-06.61,01.00,000.00,1.00 -0617,-029.43,-06.12,01.00,000.00,1.00 -0618,-029.52,-05.63,01.00,000.00,1.00 -0619,-029.60,-05.13,01.00,000.00,1.00 -0620,-029.67,-04.64,01.00,000.00,1.00 -0621,-029.74,-04.14,01.00,000.00,1.00 -0622,-029.80,-03.65,01.00,000.00,1.00 -0623,-029.85,-03.15,01.00,000.00,1.00 -0624,-029.89,-02.65,01.00,000.00,1.00 -0625,-029.93,-02.15,01.00,000.00,1.00 -0626,-029.96,-01.65,01.00,000.00,1.00 -0627,-029.98,-01.15,01.00,000.00,1.00 -0628,-029.99,-00.65,01.00,000.00,1.00 -0629,-030.00,-00.15,01.00,000.00,1.00 -0630,-030.00,+00.35,01.00,000.00,1.00 -0631,-029.99,+00.85,01.00,000.00,1.00 -0632,-029.97,+01.35,01.00,000.00,1.00 -0633,-029.95,+01.85,01.00,000.00,1.00 -0634,-029.92,+02.35,01.00,000.00,1.00 -0635,-029.88,+02.85,01.00,000.00,1.00 -0636,-029.83,+03.35,01.00,000.00,1.00 -0637,-029.78,+03.85,01.00,000.00,1.00 -0638,-029.71,+04.34,01.00,000.00,1.00 -0639,-029.64,+04.84,01.00,000.00,1.00 -0640,-029.57,+05.33,01.00,000.00,1.00 -0641,-029.48,+05.83,01.00,000.00,1.00 -0642,-029.39,+06.32,01.00,000.00,1.00 -0643,-029.29,+06.81,01.00,000.00,1.00 -0644,-029.18,+07.30,01.00,000.00,1.00 -0645,-029.06,+07.78,01.00,000.00,1.00 -0646,-028.94,+08.27,01.00,000.00,1.00 -0647,-028.81,+08.75,01.00,000.00,1.00 -0648,-028.67,+09.23,01.00,000.00,1.00 -0649,-028.52,+09.71,01.00,000.00,1.00 -0650,-028.37,+10.19,01.00,000.00,1.00 -0651,-028.21,+10.67,01.00,000.00,1.00 -0652,-028.04,+11.14,01.00,000.00,1.00 -0653,-027.86,+11.61,01.00,000.00,1.00 -0654,-027.67,+12.07,01.00,000.00,1.00 -0655,-027.48,+12.54,01.00,000.00,1.00 -0656,-027.28,+13.00,01.00,000.00,1.00 -0657,-027.07,+13.45,01.00,000.00,1.00 -0658,-026.85,+13.91,01.00,000.00,1.00 -0659,-026.63,+14.36,01.00,000.00,1.00 -0660,-026.39,+14.80,01.00,000.00,1.00 -0661,-026.15,+15.25,01.00,000.00,1.00 -0662,-025.90,+15.69,01.00,000.00,1.00 -0663,-025.65,+16.12,01.00,000.00,1.00 -0664,-025.38,+16.55,01.00,000.00,1.00 -0665,-025.11,+16.98,01.00,000.00,1.00 -0666,-024.83,+17.40,01.00,000.00,1.00 -0667,-024.54,+17.82,01.00,000.00,1.00 -0668,-024.24,+18.23,01.00,000.00,1.00 -0669,-023.94,+18.64,01.00,000.00,1.00 -0670,-023.63,+19.05,01.00,000.00,1.00 -0671,-023.30,+19.45,01.00,000.00,1.00 -0672,-022.98,+19.84,01.00,000.00,1.00 -0673,-022.64,+20.23,01.00,000.00,1.00 -0674,-022.29,+20.61,01.00,000.00,1.00 -0675,-021.94,+20.99,01.00,000.00,1.00 -0676,-021.58,+21.36,01.00,000.00,1.00 -0677,-021.21,+21.72,01.00,000.00,1.00 -0678,-020.84,+22.08,01.00,000.00,1.00 -0679,-020.46,+22.44,01.00,000.00,1.00 -0680,-020.06,+22.78,01.00,000.00,1.00 -0681,-019.67,+23.12,01.00,000.00,1.00 -0682,-019.26,+23.46,01.00,000.00,1.00 -0683,-018.85,+23.78,01.00,000.00,1.00 -0684,-018.42,+24.10,01.00,000.00,1.00 -0685,-018.00,+24.42,01.00,000.00,1.00 -0686,-017.56,+24.72,01.00,000.00,1.00 -0687,-017.12,+25.02,01.00,000.00,1.00 -0688,-016.67,+25.31,01.00,000.00,1.00 -0689,-016.21,+25.59,01.00,000.00,1.00 -0690,-015.75,+25.87,01.00,000.00,1.00 -0691,-015.28,+26.14,01.00,000.00,1.00 -0692,-014.80,+26.40,01.00,000.00,1.00 -0693,-014.31,+26.65,01.00,000.00,1.00 -0694,-013.82,+26.89,01.00,000.00,1.00 -0695,-013.33,+27.13,01.00,000.00,1.00 -0696,-012.83,+27.35,01.00,000.00,1.00 -0697,-012.32,+27.57,01.00,000.00,1.00 -0698,-011.81,+27.78,01.00,000.00,1.00 -0699,-011.29,+27.98,01.00,000.00,1.00 -0700,-010.76,+28.17,01.00,000.00,1.00 -0701,-010.23,+28.35,01.00,000.00,1.00 -0702,-009.70,+28.53,01.00,000.00,1.00 -0703,-009.16,+28.69,01.00,000.00,1.00 -0704,-008.62,+28.85,01.00,000.00,1.00 -0705,-008.07,+28.99,01.00,000.00,1.00 -0706,-007.52,+29.13,01.00,000.00,1.00 -0707,-006.96,+29.25,01.00,000.00,1.00 -0708,-006.41,+29.37,01.00,000.00,1.00 -0709,-005.84,+29.48,01.00,000.00,1.00 -0710,-005.28,+29.57,01.00,000.00,1.00 -0711,-004.71,+29.66,01.00,000.00,1.00 -0712,-004.14,+29.74,01.00,000.00,1.00 -0713,-003.57,+29.81,01.00,000.00,1.00 -0714,-003.00,+29.86,01.00,000.00,1.00 -0715,-002.42,+29.91,01.00,000.00,1.00 -0716,-001.85,+29.95,01.00,000.00,1.00 -0717,-001.27,+29.98,01.00,000.00,1.00 -0718,-000.69,+29.99,01.00,000.00,1.00 -0719,-000.12,+30.00,01.00,000.00,1.00 -0720,+000.46,+30.00,01.00,000.00,1.00 -0721,+001.04,+29.98,01.00,000.00,1.00 -0722,+001.62,+29.96,01.00,000.00,1.00 -0723,+002.19,+29.93,01.00,000.00,1.00 -0724,+002.77,+29.88,01.00,000.00,1.00 -0725,+003.34,+29.83,01.00,000.00,1.00 -0726,+003.92,+29.77,01.00,000.00,1.00 -0727,+004.49,+29.69,01.00,000.00,1.00 -0728,+005.05,+29.61,01.00,000.00,1.00 -0729,+005.62,+29.52,01.00,000.00,1.00 -0730,+006.18,+29.41,01.00,000.00,1.00 -0731,+006.74,+29.30,01.00,000.00,1.00 -0732,+007.30,+29.18,01.00,000.00,1.00 -0733,+007.85,+29.05,01.00,000.00,1.00 -0734,+008.40,+28.91,01.00,000.00,1.00 -0735,+008.94,+28.76,01.00,000.00,1.00 -0736,+009.48,+28.59,01.00,000.00,1.00 -0737,+010.02,+28.43,01.00,000.00,1.00 -0738,+010.55,+28.25,01.00,000.00,1.00 -0739,+011.08,+28.06,01.00,000.00,1.00 -0740,+011.60,+27.86,01.00,000.00,1.00 -0741,+012.11,+27.66,01.00,000.00,1.00 -0742,+012.62,+27.44,01.00,000.00,1.00 -0743,+013.13,+27.22,01.00,000.00,1.00 -0744,+013.63,+26.99,01.00,000.00,1.00 -0745,+014.12,+26.75,01.00,000.00,1.00 -0746,+014.61,+26.50,01.00,000.00,1.00 -0747,+015.09,+26.24,01.00,000.00,1.00 -0748,+015.56,+25.98,01.00,000.00,1.00 -0749,+016.03,+25.71,01.00,000.00,1.00 -0750,+016.48,+25.42,01.00,000.00,1.00 -0751,+016.94,+25.14,01.00,000.00,1.00 -0752,+017.38,+24.84,01.00,000.00,1.00 -0753,+017.82,+24.54,01.00,000.00,1.00 -0754,+018.25,+24.23,01.00,000.00,1.00 -0755,+018.68,+23.91,01.00,000.00,1.00 -0756,+019.09,+23.59,01.00,000.00,1.00 -0757,+019.50,+23.26,01.00,000.00,1.00 -0758,+019.91,+22.92,01.00,000.00,1.00 -0759,+020.30,+22.58,01.00,000.00,1.00 -0760,+020.69,+22.22,01.00,000.00,1.00 -0761,+021.07,+21.87,01.00,000.00,1.00 -0762,+021.44,+21.51,01.00,000.00,1.00 -0763,+021.80,+21.14,01.00,000.00,1.00 -0764,+022.16,+20.76,01.00,000.00,1.00 -0765,+022.50,+20.38,01.00,000.00,1.00 -0766,+022.84,+20.00,01.00,000.00,1.00 -0767,+023.17,+19.60,01.00,000.00,1.00 -0768,+023.50,+19.21,01.00,000.00,1.00 -0769,+023.81,+18.81,01.00,000.00,1.00 -0770,+024.12,+18.40,01.00,000.00,1.00 -0771,+024.42,+17.99,01.00,000.00,1.00 -0772,+024.71,+17.57,01.00,000.00,1.00 -0773,+025.00,+17.15,01.00,000.00,1.00 -0774,+025.27,+16.73,01.00,000.00,1.00 -0775,+025.54,+16.30,01.00,000.00,1.00 -0776,+025.80,+15.86,01.00,000.00,1.00 -0777,+026.05,+15.42,01.00,000.00,1.00 -0778,+026.30,+14.98,01.00,000.00,1.00 -0779,+026.53,+14.54,01.00,000.00,1.00 -0780,+026.76,+14.09,01.00,000.00,1.00 -0781,+026.98,+13.64,01.00,000.00,1.00 -0782,+027.20,+13.18,01.00,000.00,1.00 -0783,+027.40,+12.72,01.00,000.00,1.00 -0784,+027.60,+12.26,01.00,000.00,1.00 -0785,+027.79,+11.79,01.00,000.00,1.00 -0786,+027.97,+11.33,01.00,000.00,1.00 -0787,+028.14,+10.85,01.00,000.00,1.00 -0788,+028.30,+10.38,01.00,000.00,1.00 -0789,+028.46,+09.90,01.00,000.00,1.00 -0790,+028.61,+09.43,01.00,000.00,1.00 -0791,+028.75,+08.95,01.00,000.00,1.00 -0792,+028.89,+08.46,01.00,000.00,1.00 -0793,+029.02,+07.98,01.00,000.00,1.00 -0794,+029.13,+07.49,01.00,000.00,1.00 -0795,+029.25,+07.00,01.00,000.00,1.00 -0796,+029.35,+06.51,01.00,000.00,1.00 -0797,+029.44,+06.02,01.00,000.00,1.00 -0798,+029.53,+05.53,01.00,000.00,1.00 -0799,+029.61,+05.04,01.00,000.00,1.00 -0800,+029.69,+04.54,01.00,000.00,1.00 -0801,+029.75,+04.04,01.00,000.00,1.00 -0802,+029.81,+03.55,01.00,000.00,1.00 -0803,+029.86,+03.05,01.00,000.00,1.00 -0804,+029.90,+02.55,01.00,000.00,1.00 -0805,+029.94,+02.05,01.00,000.00,1.00 -0806,+029.96,+01.55,01.00,000.00,1.00 -0807,+029.98,+01.05,01.00,000.00,1.00 -0808,+030.00,+00.55,01.00,000.00,1.00 -0809,+030.00,+00.05,01.00,000.00,1.00 -0810,+030.00,-00.45,01.00,000.00,1.00 -0811,+029.99,-00.95,01.00,000.00,1.00 -0812,+029.97,-01.45,01.00,000.00,1.00 -0813,+029.94,-01.95,01.00,000.00,1.00 -0814,+029.91,-02.45,01.00,000.00,1.00 -0815,+029.87,-02.95,01.00,000.00,1.00 -0816,+029.82,-03.45,01.00,000.00,1.00 -0817,+029.76,-03.94,01.00,000.00,1.00 -0818,+029.70,-04.44,01.00,000.00,1.00 -0819,+029.63,-04.94,01.00,000.00,1.00 -0820,+029.55,-05.43,01.00,000.00,1.00 -0821,+029.46,-05.92,01.00,000.00,1.00 -0822,+029.37,-06.42,01.00,000.00,1.00 -0823,+029.27,-06.91,01.00,000.00,1.00 -0824,+029.16,-07.39,01.00,000.00,1.00 -0825,+029.04,-07.88,01.00,000.00,1.00 -0826,+028.91,-08.37,01.00,000.00,1.00 -0827,+028.78,-08.85,01.00,000.00,1.00 -0828,+028.64,-09.33,01.00,000.00,1.00 -0829,+028.49,-09.81,01.00,000.00,1.00 -0830,+028.34,-10.29,01.00,000.00,1.00 -0831,+028.17,-10.76,01.00,000.00,1.00 -0832,+028.00,-11.23,01.00,000.00,1.00 -0833,+027.82,-11.70,01.00,000.00,1.00 -0834,+027.63,-12.17,01.00,000.00,1.00 -0835,+027.44,-12.63,01.00,000.00,1.00 -0836,+027.24,-13.09,01.00,000.00,1.00 -0837,+027.03,-13.54,01.00,000.00,1.00 -0838,+026.81,-14.00,01.00,000.00,1.00 -0839,+026.58,-14.45,01.00,000.00,1.00 -0840,+026.35,-14.89,01.00,000.00,1.00 -0841,+026.10,-15.34,01.00,000.00,1.00 -0842,+025.85,-15.77,01.00,000.00,1.00 -0843,+025.59,-16.21,01.00,000.00,1.00 -0844,+025.33,-16.64,01.00,000.00,1.00 -0845,+025.05,-17.07,01.00,000.00,1.00 -0846,+024.77,-17.49,01.00,000.00,1.00 -0847,+024.48,-17.90,01.00,000.00,1.00 -0848,+024.18,-18.32,01.00,000.00,1.00 -0849,+023.88,-18.72,01.00,000.00,1.00 -0850,+023.56,-19.13,01.00,000.00,1.00 -0851,+023.24,-19.53,01.00,000.00,1.00 -0852,+022.91,-19.92,01.00,000.00,1.00 -0853,+022.57,-20.30,01.00,000.00,1.00 -0854,+022.23,-20.69,01.00,000.00,1.00 -0855,+021.87,-21.06,01.00,000.00,1.00 -0856,+021.51,-21.43,01.00,000.00,1.00 -0857,+021.14,-21.80,01.00,000.00,1.00 -0858,+020.76,-22.15,01.00,000.00,1.00 -0859,+020.38,-22.51,01.00,000.00,1.00 -0860,+019.99,-22.85,01.00,000.00,1.00 -0861,+019.58,-23.19,01.00,000.00,1.00 -0862,+019.18,-23.52,01.00,000.00,1.00 -0863,+018.76,-23.85,01.00,000.00,1.00 -0864,+018.34,-24.17,01.00,000.00,1.00 -0865,+017.91,-24.48,01.00,000.00,1.00 -0866,+017.47,-24.78,01.00,000.00,1.00 -0867,+017.03,-25.08,01.00,000.00,1.00 -0868,+016.58,-25.37,01.00,000.00,1.00 -0869,+016.12,-25.65,01.00,000.00,1.00 -0870,+015.65,-25.92,01.00,000.00,1.00 -0871,+015.18,-26.19,01.00,000.00,1.00 -0872,+014.70,-26.45,01.00,000.00,1.00 -0873,+014.22,-26.70,01.00,000.00,1.00 -0874,+013.73,-26.94,01.00,000.00,1.00 -0875,+013.23,-27.17,01.00,000.00,1.00 -0876,+012.73,-27.40,01.00,000.00,1.00 -0877,+012.22,-27.61,01.00,000.00,1.00 -0878,+011.70,-27.82,01.00,000.00,1.00 -0879,+011.18,-28.02,01.00,000.00,1.00 -0880,+010.66,-28.21,01.00,000.00,1.00 -0881,+010.13,-28.39,01.00,000.00,1.00 -0882,+009.59,-28.56,01.00,000.00,1.00 -0883,+009.05,-28.72,01.00,000.00,1.00 -0884,+008.51,-28.88,01.00,000.00,1.00 -0885,+007.96,-29.02,01.00,000.00,1.00 -0886,+007.41,-29.15,01.00,000.00,1.00 -0887,+006.85,-29.28,01.00,000.00,1.00 -0888,+006.29,-29.39,01.00,000.00,1.00 -0889,+005.73,-29.50,01.00,000.00,1.00 -0890,+005.17,-29.59,01.00,000.00,1.00 -0891,+004.60,-29.68,01.00,000.00,1.00 -0892,+004.03,-29.75,01.00,000.00,1.00 -0893,+003.46,-29.82,01.00,000.00,1.00 -0894,+002.88,-29.87,01.00,000.00,1.00 -0895,+002.31,-29.92,01.00,000.00,1.00 -0896,+001.73,-29.95,01.00,000.00,1.00 -0897,+001.16,-29.98,01.00,000.00,1.00 -0898,+000.58,-29.99,01.00,000.00,1.00 -0899,+000.00,-30.00,01.00,000.00,1.00 -0900,-000.58,-29.99,01.00,000.00,1.00 -0901,-001.16,-29.98,01.00,000.00,1.00 -0902,-001.73,-29.95,01.00,000.00,1.00 -0903,-002.31,-29.92,01.00,000.00,1.00 -0904,-002.88,-29.87,01.00,000.00,1.00 -0905,-003.46,-29.82,01.00,000.00,1.00 -0906,-004.03,-29.75,01.00,000.00,1.00 -0907,-004.60,-29.68,01.00,000.00,1.00 -0908,-005.17,-29.59,01.00,000.00,1.00 -0909,-005.73,-29.50,01.00,000.00,1.00 -0910,-006.29,-29.39,01.00,000.00,1.00 -0911,-006.85,-29.28,01.00,000.00,1.00 -0912,-007.41,-29.15,01.00,000.00,1.00 -0913,-007.96,-29.02,01.00,000.00,1.00 -0914,-008.51,-28.88,01.00,000.00,1.00 -0915,-009.05,-28.72,01.00,000.00,1.00 -0916,-009.59,-28.56,01.00,000.00,1.00 -0917,-010.13,-28.39,01.00,000.00,1.00 -0918,-010.66,-28.21,01.00,000.00,1.00 -0919,-011.18,-28.02,01.00,000.00,1.00 -0920,-011.70,-27.82,01.00,000.00,1.00 -0921,-012.22,-27.61,01.00,000.00,1.00 -0922,-012.73,-27.40,01.00,000.00,1.00 -0923,-013.23,-27.17,01.00,000.00,1.00 -0924,-013.73,-26.94,01.00,000.00,1.00 -0925,-014.22,-26.70,01.00,000.00,1.00 -0926,-014.70,-26.45,01.00,000.00,1.00 -0927,-015.18,-26.19,01.00,000.00,1.00 -0928,-015.65,-25.92,01.00,000.00,1.00 -0929,-016.12,-25.65,01.00,000.00,1.00 -0930,-016.58,-25.37,01.00,000.00,1.00 -0931,-017.03,-25.08,01.00,000.00,1.00 -0932,-017.47,-24.78,01.00,000.00,1.00 -0933,-017.91,-24.48,01.00,000.00,1.00 -0934,-018.34,-24.17,01.00,000.00,1.00 -0935,-018.76,-23.85,01.00,000.00,1.00 -0936,-019.18,-23.52,01.00,000.00,1.00 -0937,-019.58,-23.19,01.00,000.00,1.00 -0938,-019.99,-22.85,01.00,000.00,1.00 -0939,-020.38,-22.51,01.00,000.00,1.00 -0940,-020.76,-22.15,01.00,000.00,1.00 -0941,-021.14,-21.80,01.00,000.00,1.00 -0942,-021.51,-21.43,01.00,000.00,1.00 -0943,-021.87,-21.06,01.00,000.00,1.00 -0944,-022.23,-20.69,01.00,000.00,1.00 -0945,-022.57,-20.30,01.00,000.00,1.00 -0946,-022.91,-19.92,01.00,000.00,1.00 -0947,-023.24,-19.53,01.00,000.00,1.00 -0948,-023.56,-19.13,01.00,000.00,1.00 -0949,-023.88,-18.72,01.00,000.00,1.00 -0950,-024.18,-18.32,01.00,000.00,1.00 -0951,-024.48,-17.90,01.00,000.00,1.00 -0952,-024.77,-17.49,01.00,000.00,1.00 -0953,-025.05,-17.07,01.00,000.00,1.00 -0954,-025.33,-16.64,01.00,000.00,1.00 -0955,-025.59,-16.21,01.00,000.00,1.00 -0956,-025.85,-15.77,01.00,000.00,1.00 -0957,-026.10,-15.34,01.00,000.00,1.00 -0958,-026.35,-14.89,01.00,000.00,1.00 -0959,-026.58,-14.45,01.00,000.00,1.00 -0960,-026.81,-14.00,01.00,000.00,1.00 -0961,-027.03,-13.54,01.00,000.00,1.00 -0962,-027.24,-13.09,01.00,000.00,1.00 -0963,-027.44,-12.63,01.00,000.00,1.00 -0964,-027.63,-12.17,01.00,000.00,1.00 -0965,-027.82,-11.70,01.00,000.00,1.00 -0966,-028.00,-11.23,01.00,000.00,1.00 -0967,-028.17,-10.76,01.00,000.00,1.00 -0968,-028.34,-10.29,01.00,000.00,1.00 -0969,-028.49,-09.81,01.00,000.00,1.00 -0970,-028.64,-09.33,01.00,000.00,1.00 -0971,-028.78,-08.85,01.00,000.00,1.00 -0972,-028.91,-08.37,01.00,000.00,1.00 -0973,-029.04,-07.88,01.00,000.00,1.00 -0974,-029.16,-07.39,01.00,000.00,1.00 -0975,-029.27,-06.91,01.00,000.00,1.00 -0976,-029.37,-06.42,01.00,000.00,1.00 -0977,-029.46,-05.92,01.00,000.00,1.00 -0978,-029.55,-05.43,01.00,000.00,1.00 -0979,-029.63,-04.94,01.00,000.00,1.00 -0980,-029.70,-04.44,01.00,000.00,1.00 -0981,-029.76,-03.94,01.00,000.00,1.00 -0982,-029.82,-03.45,01.00,000.00,1.00 -0983,-029.87,-02.95,01.00,000.00,1.00 -0984,-029.91,-02.45,01.00,000.00,1.00 -0985,-029.94,-01.95,01.00,000.00,1.00 -0986,-029.97,-01.45,01.00,000.00,1.00 -0987,-029.99,-00.95,01.00,000.00,1.00 -0988,-030.00,-00.45,01.00,000.00,1.00 -0989,-030.00,+00.05,01.00,000.00,1.00 -0990,-030.00,+00.55,01.00,000.00,1.00 -0991,-029.98,+01.05,01.00,000.00,1.00 -0992,-029.96,+01.55,01.00,000.00,1.00 -0993,-029.94,+02.05,01.00,000.00,1.00 -0994,-029.90,+02.55,01.00,000.00,1.00 -0995,-029.86,+03.05,01.00,000.00,1.00 -0996,-029.81,+03.55,01.00,000.00,1.00 -0997,-029.75,+04.04,01.00,000.00,1.00 -0998,-029.69,+04.54,01.00,000.00,1.00 -0999,-029.61,+05.04,01.00,000.00,1.00 ++000.00,+30.00,01.00,000.00,1.00 ++000.58,+29.99,01.00,000.00,1.00 ++001.16,+29.98,01.00,000.00,1.00 ++001.73,+29.95,01.00,000.00,1.00 ++002.31,+29.92,01.00,000.00,1.00 ++002.88,+29.87,01.00,000.00,1.00 ++003.46,+29.82,01.00,000.00,1.00 ++004.03,+29.75,01.00,000.00,1.00 ++004.60,+29.68,01.00,000.00,1.00 ++005.17,+29.59,01.00,000.00,1.00 ++005.73,+29.50,01.00,000.00,1.00 ++006.29,+29.39,01.00,000.00,1.00 ++006.85,+29.28,01.00,000.00,1.00 ++007.41,+29.15,01.00,000.00,1.00 ++007.96,+29.02,01.00,000.00,1.00 ++008.51,+28.88,01.00,000.00,1.00 ++009.05,+28.72,01.00,000.00,1.00 ++009.59,+28.56,01.00,000.00,1.00 ++010.13,+28.39,01.00,000.00,1.00 ++010.66,+28.21,01.00,000.00,1.00 ++011.18,+28.02,01.00,000.00,1.00 ++011.70,+27.82,01.00,000.00,1.00 ++012.22,+27.61,01.00,000.00,1.00 ++012.73,+27.40,01.00,000.00,1.00 ++013.23,+27.17,01.00,000.00,1.00 ++013.73,+26.94,01.00,000.00,1.00 ++014.22,+26.70,01.00,000.00,1.00 ++014.70,+26.45,01.00,000.00,1.00 ++015.18,+26.19,01.00,000.00,1.00 ++015.65,+25.92,01.00,000.00,1.00 ++016.12,+25.65,01.00,000.00,1.00 ++016.58,+25.37,01.00,000.00,1.00 ++017.03,+25.08,01.00,000.00,1.00 ++017.47,+24.78,01.00,000.00,1.00 ++017.91,+24.48,01.00,000.00,1.00 ++018.34,+24.17,01.00,000.00,1.00 ++018.76,+23.85,01.00,000.00,1.00 ++019.18,+23.52,01.00,000.00,1.00 ++019.58,+23.19,01.00,000.00,1.00 ++019.99,+22.85,01.00,000.00,1.00 ++020.38,+22.51,01.00,000.00,1.00 ++020.76,+22.15,01.00,000.00,1.00 ++021.14,+21.80,01.00,000.00,1.00 ++021.51,+21.43,01.00,000.00,1.00 ++021.87,+21.06,01.00,000.00,1.00 ++022.23,+20.69,01.00,000.00,1.00 ++022.57,+20.30,01.00,000.00,1.00 ++022.91,+19.92,01.00,000.00,1.00 ++023.24,+19.53,01.00,000.00,1.00 ++023.56,+19.13,01.00,000.00,1.00 ++023.88,+18.72,01.00,000.00,1.00 ++024.18,+18.32,01.00,000.00,1.00 ++024.48,+17.90,01.00,000.00,1.00 ++024.77,+17.49,01.00,000.00,1.00 ++025.05,+17.07,01.00,000.00,1.00 ++025.33,+16.64,01.00,000.00,1.00 ++025.59,+16.21,01.00,000.00,1.00 ++025.85,+15.77,01.00,000.00,1.00 ++026.10,+15.34,01.00,000.00,1.00 ++026.35,+14.89,01.00,000.00,1.00 ++026.58,+14.45,01.00,000.00,1.00 ++026.81,+14.00,01.00,000.00,1.00 ++027.03,+13.54,01.00,000.00,1.00 ++027.24,+13.09,01.00,000.00,1.00 ++027.44,+12.63,01.00,000.00,1.00 ++027.63,+12.17,01.00,000.00,1.00 ++027.82,+11.70,01.00,000.00,1.00 ++028.00,+11.23,01.00,000.00,1.00 ++028.17,+10.76,01.00,000.00,1.00 ++028.34,+10.29,01.00,000.00,1.00 ++028.49,+09.81,01.00,000.00,1.00 ++028.64,+09.33,01.00,000.00,1.00 ++028.78,+08.85,01.00,000.00,1.00 ++028.91,+08.37,01.00,000.00,1.00 ++029.04,+07.88,01.00,000.00,1.00 ++029.16,+07.39,01.00,000.00,1.00 ++029.27,+06.91,01.00,000.00,1.00 ++029.37,+06.42,01.00,000.00,1.00 ++029.46,+05.92,01.00,000.00,1.00 ++029.55,+05.43,01.00,000.00,1.00 ++029.63,+04.94,01.00,000.00,1.00 ++029.70,+04.44,01.00,000.00,1.00 ++029.76,+03.94,01.00,000.00,1.00 ++029.82,+03.45,01.00,000.00,1.00 ++029.87,+02.95,01.00,000.00,1.00 ++029.91,+02.45,01.00,000.00,1.00 ++029.94,+01.95,01.00,000.00,1.00 ++029.97,+01.45,01.00,000.00,1.00 ++029.99,+00.95,01.00,000.00,1.00 ++030.00,+00.45,01.00,000.00,1.00 ++030.00,-00.05,01.00,000.00,1.00 ++030.00,-00.55,01.00,000.00,1.00 ++029.98,-01.05,01.00,000.00,1.00 ++029.96,-01.55,01.00,000.00,1.00 ++029.94,-02.05,01.00,000.00,1.00 ++029.90,-02.55,01.00,000.00,1.00 ++029.86,-03.05,01.00,000.00,1.00 ++029.81,-03.55,01.00,000.00,1.00 ++029.75,-04.04,01.00,000.00,1.00 ++029.69,-04.54,01.00,000.00,1.00 ++029.61,-05.04,01.00,000.00,1.00 ++029.53,-05.53,01.00,000.00,1.00 ++029.44,-06.02,01.00,000.00,1.00 ++029.35,-06.51,01.00,000.00,1.00 ++029.25,-07.00,01.00,000.00,1.00 ++029.13,-07.49,01.00,000.00,1.00 ++029.02,-07.98,01.00,000.00,1.00 ++028.89,-08.46,01.00,000.00,1.00 ++028.75,-08.95,01.00,000.00,1.00 ++028.61,-09.43,01.00,000.00,1.00 ++028.46,-09.90,01.00,000.00,1.00 ++028.30,-10.38,01.00,000.00,1.00 ++028.14,-10.85,01.00,000.00,1.00 ++027.97,-11.33,01.00,000.00,1.00 ++027.79,-11.79,01.00,000.00,1.00 ++027.60,-12.26,01.00,000.00,1.00 ++027.40,-12.72,01.00,000.00,1.00 ++027.20,-13.18,01.00,000.00,1.00 ++026.98,-13.64,01.00,000.00,1.00 ++026.76,-14.09,01.00,000.00,1.00 ++026.53,-14.54,01.00,000.00,1.00 ++026.30,-14.98,01.00,000.00,1.00 ++026.05,-15.42,01.00,000.00,1.00 ++025.80,-15.86,01.00,000.00,1.00 ++025.54,-16.30,01.00,000.00,1.00 ++025.27,-16.73,01.00,000.00,1.00 ++025.00,-17.15,01.00,000.00,1.00 ++024.71,-17.57,01.00,000.00,1.00 ++024.42,-17.99,01.00,000.00,1.00 ++024.12,-18.40,01.00,000.00,1.00 ++023.81,-18.81,01.00,000.00,1.00 ++023.50,-19.21,01.00,000.00,1.00 ++023.17,-19.60,01.00,000.00,1.00 ++022.84,-20.00,01.00,000.00,1.00 ++022.50,-20.38,01.00,000.00,1.00 ++022.16,-20.76,01.00,000.00,1.00 ++021.80,-21.14,01.00,000.00,1.00 ++021.44,-21.51,01.00,000.00,1.00 ++021.07,-21.87,01.00,000.00,1.00 ++020.69,-22.22,01.00,000.00,1.00 ++020.30,-22.58,01.00,000.00,1.00 ++019.91,-22.92,01.00,000.00,1.00 ++019.50,-23.26,01.00,000.00,1.00 ++019.09,-23.59,01.00,000.00,1.00 ++018.68,-23.91,01.00,000.00,1.00 ++018.25,-24.23,01.00,000.00,1.00 ++017.82,-24.54,01.00,000.00,1.00 ++017.38,-24.84,01.00,000.00,1.00 ++016.94,-25.14,01.00,000.00,1.00 ++016.48,-25.42,01.00,000.00,1.00 ++016.03,-25.71,01.00,000.00,1.00 ++015.56,-25.98,01.00,000.00,1.00 ++015.09,-26.24,01.00,000.00,1.00 ++014.61,-26.50,01.00,000.00,1.00 ++014.12,-26.75,01.00,000.00,1.00 ++013.63,-26.99,01.00,000.00,1.00 ++013.13,-27.22,01.00,000.00,1.00 ++012.62,-27.44,01.00,000.00,1.00 ++012.11,-27.66,01.00,000.00,1.00 ++011.60,-27.86,01.00,000.00,1.00 ++011.08,-28.06,01.00,000.00,1.00 ++010.55,-28.25,01.00,000.00,1.00 ++010.02,-28.43,01.00,000.00,1.00 ++009.48,-28.59,01.00,000.00,1.00 ++008.94,-28.76,01.00,000.00,1.00 ++008.40,-28.91,01.00,000.00,1.00 ++007.85,-29.05,01.00,000.00,1.00 ++007.30,-29.18,01.00,000.00,1.00 ++006.74,-29.30,01.00,000.00,1.00 ++006.18,-29.41,01.00,000.00,1.00 ++005.62,-29.52,01.00,000.00,1.00 ++005.05,-29.61,01.00,000.00,1.00 ++004.49,-29.69,01.00,000.00,1.00 ++003.92,-29.77,01.00,000.00,1.00 ++003.34,-29.83,01.00,000.00,1.00 ++002.77,-29.88,01.00,000.00,1.00 ++002.19,-29.93,01.00,000.00,1.00 ++001.62,-29.96,01.00,000.00,1.00 ++001.04,-29.98,01.00,000.00,1.00 ++000.46,-30.00,01.00,000.00,1.00 +-000.12,-30.00,01.00,000.00,1.00 +-000.69,-29.99,01.00,000.00,1.00 +-001.27,-29.98,01.00,000.00,1.00 +-001.85,-29.95,01.00,000.00,1.00 +-002.42,-29.91,01.00,000.00,1.00 +-003.00,-29.86,01.00,000.00,1.00 +-003.57,-29.81,01.00,000.00,1.00 +-004.14,-29.74,01.00,000.00,1.00 +-004.71,-29.66,01.00,000.00,1.00 +-005.28,-29.57,01.00,000.00,1.00 +-005.84,-29.48,01.00,000.00,1.00 +-006.41,-29.37,01.00,000.00,1.00 +-006.96,-29.25,01.00,000.00,1.00 +-007.52,-29.13,01.00,000.00,1.00 +-008.07,-28.99,01.00,000.00,1.00 +-008.62,-28.85,01.00,000.00,1.00 +-009.16,-28.69,01.00,000.00,1.00 +-009.70,-28.53,01.00,000.00,1.00 +-010.23,-28.35,01.00,000.00,1.00 +-010.76,-28.17,01.00,000.00,1.00 +-011.29,-27.98,01.00,000.00,1.00 +-011.81,-27.78,01.00,000.00,1.00 +-012.32,-27.57,01.00,000.00,1.00 +-012.83,-27.35,01.00,000.00,1.00 +-013.33,-27.13,01.00,000.00,1.00 +-013.82,-26.89,01.00,000.00,1.00 +-014.31,-26.65,01.00,000.00,1.00 +-014.80,-26.40,01.00,000.00,1.00 +-015.28,-26.14,01.00,000.00,1.00 +-015.75,-25.87,01.00,000.00,1.00 +-016.21,-25.59,01.00,000.00,1.00 +-016.67,-25.31,01.00,000.00,1.00 +-017.12,-25.02,01.00,000.00,1.00 +-017.56,-24.72,01.00,000.00,1.00 +-018.00,-24.42,01.00,000.00,1.00 +-018.42,-24.10,01.00,000.00,1.00 +-018.85,-23.78,01.00,000.00,1.00 +-019.26,-23.46,01.00,000.00,1.00 +-019.67,-23.12,01.00,000.00,1.00 +-020.06,-22.78,01.00,000.00,1.00 +-020.46,-22.44,01.00,000.00,1.00 +-020.84,-22.08,01.00,000.00,1.00 +-021.21,-21.72,01.00,000.00,1.00 +-021.58,-21.36,01.00,000.00,1.00 +-021.94,-20.99,01.00,000.00,1.00 +-022.29,-20.61,01.00,000.00,1.00 +-022.64,-20.23,01.00,000.00,1.00 +-022.98,-19.84,01.00,000.00,1.00 +-023.30,-19.45,01.00,000.00,1.00 +-023.63,-19.05,01.00,000.00,1.00 +-023.94,-18.64,01.00,000.00,1.00 +-024.24,-18.23,01.00,000.00,1.00 +-024.54,-17.82,01.00,000.00,1.00 +-024.83,-17.40,01.00,000.00,1.00 +-025.11,-16.98,01.00,000.00,1.00 +-025.38,-16.55,01.00,000.00,1.00 +-025.65,-16.12,01.00,000.00,1.00 +-025.90,-15.69,01.00,000.00,1.00 +-026.15,-15.25,01.00,000.00,1.00 +-026.39,-14.80,01.00,000.00,1.00 +-026.63,-14.36,01.00,000.00,1.00 +-026.85,-13.91,01.00,000.00,1.00 +-027.07,-13.45,01.00,000.00,1.00 +-027.28,-13.00,01.00,000.00,1.00 +-027.48,-12.54,01.00,000.00,1.00 +-027.67,-12.07,01.00,000.00,1.00 +-027.86,-11.61,01.00,000.00,1.00 +-028.04,-11.14,01.00,000.00,1.00 +-028.21,-10.67,01.00,000.00,1.00 +-028.37,-10.19,01.00,000.00,1.00 +-028.52,-09.71,01.00,000.00,1.00 +-028.67,-09.23,01.00,000.00,1.00 +-028.81,-08.75,01.00,000.00,1.00 +-028.94,-08.27,01.00,000.00,1.00 +-029.06,-07.78,01.00,000.00,1.00 +-029.18,-07.30,01.00,000.00,1.00 +-029.29,-06.81,01.00,000.00,1.00 +-029.39,-06.32,01.00,000.00,1.00 +-029.48,-05.83,01.00,000.00,1.00 +-029.57,-05.33,01.00,000.00,1.00 +-029.64,-04.84,01.00,000.00,1.00 +-029.71,-04.34,01.00,000.00,1.00 +-029.78,-03.85,01.00,000.00,1.00 +-029.83,-03.35,01.00,000.00,1.00 +-029.88,-02.85,01.00,000.00,1.00 +-029.92,-02.35,01.00,000.00,1.00 +-029.95,-01.85,01.00,000.00,1.00 +-029.97,-01.35,01.00,000.00,1.00 +-029.99,-00.85,01.00,000.00,1.00 +-030.00,-00.35,01.00,000.00,1.00 +-030.00,+00.15,01.00,000.00,1.00 +-029.99,+00.65,01.00,000.00,1.00 +-029.98,+01.15,01.00,000.00,1.00 +-029.96,+01.65,01.00,000.00,1.00 +-029.93,+02.15,01.00,000.00,1.00 +-029.89,+02.65,01.00,000.00,1.00 +-029.85,+03.15,01.00,000.00,1.00 +-029.80,+03.65,01.00,000.00,1.00 +-029.74,+04.14,01.00,000.00,1.00 +-029.67,+04.64,01.00,000.00,1.00 +-029.60,+05.13,01.00,000.00,1.00 +-029.52,+05.63,01.00,000.00,1.00 +-029.43,+06.12,01.00,000.00,1.00 +-029.33,+06.61,01.00,000.00,1.00 +-029.22,+07.10,01.00,000.00,1.00 +-029.11,+07.59,01.00,000.00,1.00 +-028.99,+08.08,01.00,000.00,1.00 +-028.86,+08.56,01.00,000.00,1.00 +-028.73,+09.04,01.00,000.00,1.00 +-028.58,+09.52,01.00,000.00,1.00 +-028.43,+10.00,01.00,000.00,1.00 +-028.27,+10.48,01.00,000.00,1.00 +-028.11,+10.95,01.00,000.00,1.00 +-027.93,+11.42,01.00,000.00,1.00 +-027.75,+11.89,01.00,000.00,1.00 +-027.56,+12.35,01.00,000.00,1.00 +-027.36,+12.81,01.00,000.00,1.00 +-027.15,+13.27,01.00,000.00,1.00 +-026.94,+13.73,01.00,000.00,1.00 +-026.72,+14.18,01.00,000.00,1.00 +-026.49,+14.63,01.00,000.00,1.00 +-026.25,+15.07,01.00,000.00,1.00 +-026.00,+15.51,01.00,000.00,1.00 +-025.75,+15.95,01.00,000.00,1.00 +-025.49,+16.38,01.00,000.00,1.00 +-025.22,+16.81,01.00,000.00,1.00 +-024.94,+17.23,01.00,000.00,1.00 +-024.66,+17.65,01.00,000.00,1.00 +-024.36,+18.07,01.00,000.00,1.00 +-024.06,+18.48,01.00,000.00,1.00 +-023.75,+18.89,01.00,000.00,1.00 +-023.43,+19.29,01.00,000.00,1.00 +-023.11,+19.68,01.00,000.00,1.00 +-022.77,+20.07,01.00,000.00,1.00 +-022.43,+20.46,01.00,000.00,1.00 +-022.08,+20.84,01.00,000.00,1.00 +-021.73,+21.21,01.00,000.00,1.00 +-021.36,+21.58,01.00,000.00,1.00 +-020.99,+21.94,01.00,000.00,1.00 +-020.61,+22.30,01.00,000.00,1.00 +-020.22,+22.64,01.00,000.00,1.00 +-019.83,+22.99,01.00,000.00,1.00 +-019.42,+23.32,01.00,000.00,1.00 +-019.01,+23.65,01.00,000.00,1.00 +-018.59,+23.98,01.00,000.00,1.00 +-018.17,+24.29,01.00,000.00,1.00 +-017.74,+24.60,01.00,000.00,1.00 +-017.29,+24.90,01.00,000.00,1.00 +-016.85,+25.20,01.00,000.00,1.00 +-016.39,+25.48,01.00,000.00,1.00 +-015.93,+25.76,01.00,000.00,1.00 +-015.46,+26.03,01.00,000.00,1.00 +-014.99,+26.29,01.00,000.00,1.00 +-014.51,+26.55,01.00,000.00,1.00 +-014.02,+26.80,01.00,000.00,1.00 +-013.53,+27.03,01.00,000.00,1.00 +-013.03,+27.26,01.00,000.00,1.00 +-012.52,+27.49,01.00,000.00,1.00 +-012.01,+27.70,01.00,000.00,1.00 +-011.49,+27.90,01.00,000.00,1.00 +-010.97,+28.10,01.00,000.00,1.00 +-010.45,+28.28,01.00,000.00,1.00 +-009.91,+28.46,01.00,000.00,1.00 +-009.38,+28.63,01.00,000.00,1.00 +-008.83,+28.79,01.00,000.00,1.00 +-008.29,+28.94,01.00,000.00,1.00 +-007.74,+29.07,01.00,000.00,1.00 +-007.19,+29.20,01.00,000.00,1.00 +-006.63,+29.33,01.00,000.00,1.00 +-006.07,+29.44,01.00,000.00,1.00 +-005.51,+29.54,01.00,000.00,1.00 +-004.94,+29.63,01.00,000.00,1.00 +-004.37,+29.71,01.00,000.00,1.00 +-003.80,+29.78,01.00,000.00,1.00 +-003.23,+29.84,01.00,000.00,1.00 +-002.65,+29.89,01.00,000.00,1.00 +-002.08,+29.93,01.00,000.00,1.00 +-001.50,+29.97,01.00,000.00,1.00 +-000.92,+29.99,01.00,000.00,1.00 +-000.35,+30.00,01.00,000.00,1.00 ++000.23,+30.00,01.00,000.00,1.00 ++000.81,+29.99,01.00,000.00,1.00 ++001.39,+29.97,01.00,000.00,1.00 ++001.96,+29.94,01.00,000.00,1.00 ++002.54,+29.90,01.00,000.00,1.00 ++003.11,+29.85,01.00,000.00,1.00 ++003.69,+29.79,01.00,000.00,1.00 ++004.26,+29.72,01.00,000.00,1.00 ++004.83,+29.64,01.00,000.00,1.00 ++005.39,+29.56,01.00,000.00,1.00 ++005.96,+29.46,01.00,000.00,1.00 ++006.52,+29.35,01.00,000.00,1.00 ++007.07,+29.23,01.00,000.00,1.00 ++007.63,+29.10,01.00,000.00,1.00 ++008.18,+28.96,01.00,000.00,1.00 ++008.73,+28.82,01.00,000.00,1.00 ++009.27,+28.66,01.00,000.00,1.00 ++009.81,+28.49,01.00,000.00,1.00 ++010.34,+28.32,01.00,000.00,1.00 ++010.87,+28.13,01.00,000.00,1.00 ++011.39,+27.94,01.00,000.00,1.00 ++011.91,+27.74,01.00,000.00,1.00 ++012.42,+27.53,01.00,000.00,1.00 ++012.93,+27.31,01.00,000.00,1.00 ++013.43,+27.08,01.00,000.00,1.00 ++013.92,+26.84,01.00,000.00,1.00 ++014.41,+26.60,01.00,000.00,1.00 ++014.89,+26.35,01.00,000.00,1.00 ++015.37,+26.08,01.00,000.00,1.00 ++015.84,+25.81,01.00,000.00,1.00 ++016.30,+25.54,01.00,000.00,1.00 ++016.76,+25.25,01.00,000.00,1.00 ++017.21,+24.96,01.00,000.00,1.00 ++017.65,+24.66,01.00,000.00,1.00 ++018.08,+24.35,01.00,000.00,1.00 ++018.51,+24.04,01.00,000.00,1.00 ++018.93,+23.72,01.00,000.00,1.00 ++019.34,+23.39,01.00,000.00,1.00 ++019.75,+23.06,01.00,000.00,1.00 ++020.14,+22.71,01.00,000.00,1.00 ++020.53,+22.37,01.00,000.00,1.00 ++020.91,+22.01,01.00,000.00,1.00 ++021.29,+21.65,01.00,000.00,1.00 ++021.66,+21.28,01.00,000.00,1.00 ++022.01,+20.91,01.00,000.00,1.00 ++022.36,+20.53,01.00,000.00,1.00 ++022.71,+20.15,01.00,000.00,1.00 ++023.04,+19.76,01.00,000.00,1.00 ++023.37,+19.37,01.00,000.00,1.00 ++023.69,+18.97,01.00,000.00,1.00 ++024.00,+18.56,01.00,000.00,1.00 ++024.30,+18.15,01.00,000.00,1.00 ++024.60,+17.74,01.00,000.00,1.00 ++024.88,+17.32,01.00,000.00,1.00 ++025.16,+16.90,01.00,000.00,1.00 ++025.44,+16.47,01.00,000.00,1.00 ++025.70,+16.04,01.00,000.00,1.00 ++025.95,+15.60,01.00,000.00,1.00 ++026.20,+15.16,01.00,000.00,1.00 ++026.44,+14.72,01.00,000.00,1.00 ++026.67,+14.27,01.00,000.00,1.00 ++026.90,+13.82,01.00,000.00,1.00 ++027.11,+13.36,01.00,000.00,1.00 ++027.32,+12.90,01.00,000.00,1.00 ++027.52,+12.44,01.00,000.00,1.00 ++027.71,+11.98,01.00,000.00,1.00 ++027.89,+11.51,01.00,000.00,1.00 ++028.07,+11.04,01.00,000.00,1.00 ++028.24,+10.57,01.00,000.00,1.00 ++028.40,+10.10,01.00,000.00,1.00 ++028.55,+09.62,01.00,000.00,1.00 ++028.70,+09.14,01.00,000.00,1.00 ++028.84,+08.66,01.00,000.00,1.00 ++028.97,+08.17,01.00,000.00,1.00 ++029.09,+07.69,01.00,000.00,1.00 ++029.20,+07.20,01.00,000.00,1.00 ++029.31,+06.71,01.00,000.00,1.00 ++029.41,+06.22,01.00,000.00,1.00 ++029.50,+05.73,01.00,000.00,1.00 ++029.58,+05.23,01.00,000.00,1.00 ++029.66,+04.74,01.00,000.00,1.00 ++029.73,+04.24,01.00,000.00,1.00 ++029.79,+03.75,01.00,000.00,1.00 ++029.84,+03.25,01.00,000.00,1.00 ++029.89,+02.75,01.00,000.00,1.00 ++029.92,+02.25,01.00,000.00,1.00 ++029.95,+01.75,01.00,000.00,1.00 ++029.98,+01.25,01.00,000.00,1.00 ++029.99,+00.75,01.00,000.00,1.00 ++030.00,+00.25,01.00,000.00,1.00 ++030.00,-00.25,01.00,000.00,1.00 ++029.99,-00.75,01.00,000.00,1.00 ++029.98,-01.25,01.00,000.00,1.00 ++029.95,-01.75,01.00,000.00,1.00 ++029.92,-02.25,01.00,000.00,1.00 ++029.89,-02.75,01.00,000.00,1.00 ++029.84,-03.25,01.00,000.00,1.00 ++029.79,-03.75,01.00,000.00,1.00 ++029.73,-04.24,01.00,000.00,1.00 ++029.66,-04.74,01.00,000.00,1.00 ++029.58,-05.23,01.00,000.00,1.00 ++029.50,-05.73,01.00,000.00,1.00 ++029.41,-06.22,01.00,000.00,1.00 ++029.31,-06.71,01.00,000.00,1.00 ++029.20,-07.20,01.00,000.00,1.00 ++029.09,-07.69,01.00,000.00,1.00 ++028.97,-08.17,01.00,000.00,1.00 ++028.84,-08.66,01.00,000.00,1.00 ++028.70,-09.14,01.00,000.00,1.00 ++028.55,-09.62,01.00,000.00,1.00 ++028.40,-10.10,01.00,000.00,1.00 ++028.24,-10.57,01.00,000.00,1.00 ++028.07,-11.04,01.00,000.00,1.00 ++027.89,-11.51,01.00,000.00,1.00 ++027.71,-11.98,01.00,000.00,1.00 ++027.52,-12.44,01.00,000.00,1.00 ++027.32,-12.90,01.00,000.00,1.00 ++027.11,-13.36,01.00,000.00,1.00 ++026.90,-13.82,01.00,000.00,1.00 ++026.67,-14.27,01.00,000.00,1.00 ++026.44,-14.72,01.00,000.00,1.00 ++026.20,-15.16,01.00,000.00,1.00 ++025.95,-15.60,01.00,000.00,1.00 ++025.70,-16.04,01.00,000.00,1.00 ++025.44,-16.47,01.00,000.00,1.00 ++025.16,-16.90,01.00,000.00,1.00 ++024.88,-17.32,01.00,000.00,1.00 ++024.60,-17.74,01.00,000.00,1.00 ++024.30,-18.15,01.00,000.00,1.00 ++024.00,-18.56,01.00,000.00,1.00 ++023.69,-18.97,01.00,000.00,1.00 ++023.37,-19.37,01.00,000.00,1.00 ++023.04,-19.76,01.00,000.00,1.00 ++022.71,-20.15,01.00,000.00,1.00 ++022.36,-20.53,01.00,000.00,1.00 ++022.01,-20.91,01.00,000.00,1.00 ++021.66,-21.28,01.00,000.00,1.00 ++021.29,-21.65,01.00,000.00,1.00 ++020.91,-22.01,01.00,000.00,1.00 ++020.53,-22.37,01.00,000.00,1.00 ++020.14,-22.71,01.00,000.00,1.00 ++019.75,-23.06,01.00,000.00,1.00 ++019.34,-23.39,01.00,000.00,1.00 ++018.93,-23.72,01.00,000.00,1.00 ++018.51,-24.04,01.00,000.00,1.00 ++018.08,-24.35,01.00,000.00,1.00 ++017.65,-24.66,01.00,000.00,1.00 ++017.21,-24.96,01.00,000.00,1.00 ++016.76,-25.25,01.00,000.00,1.00 ++016.30,-25.54,01.00,000.00,1.00 ++015.84,-25.81,01.00,000.00,1.00 ++015.37,-26.08,01.00,000.00,1.00 ++014.89,-26.35,01.00,000.00,1.00 ++014.41,-26.60,01.00,000.00,1.00 ++013.92,-26.84,01.00,000.00,1.00 ++013.43,-27.08,01.00,000.00,1.00 ++012.93,-27.31,01.00,000.00,1.00 ++012.42,-27.53,01.00,000.00,1.00 ++011.91,-27.74,01.00,000.00,1.00 ++011.39,-27.94,01.00,000.00,1.00 ++010.87,-28.13,01.00,000.00,1.00 ++010.34,-28.32,01.00,000.00,1.00 ++009.81,-28.49,01.00,000.00,1.00 ++009.27,-28.66,01.00,000.00,1.00 ++008.73,-28.82,01.00,000.00,1.00 ++008.18,-28.96,01.00,000.00,1.00 ++007.63,-29.10,01.00,000.00,1.00 ++007.07,-29.23,01.00,000.00,1.00 ++006.52,-29.35,01.00,000.00,1.00 ++005.96,-29.46,01.00,000.00,1.00 ++005.39,-29.56,01.00,000.00,1.00 ++004.83,-29.64,01.00,000.00,1.00 ++004.26,-29.72,01.00,000.00,1.00 ++003.69,-29.79,01.00,000.00,1.00 ++003.11,-29.85,01.00,000.00,1.00 ++002.54,-29.90,01.00,000.00,1.00 ++001.96,-29.94,01.00,000.00,1.00 ++001.39,-29.97,01.00,000.00,1.00 ++000.81,-29.99,01.00,000.00,1.00 ++000.23,-30.00,01.00,000.00,1.00 +-000.35,-30.00,01.00,000.00,1.00 +-000.92,-29.99,01.00,000.00,1.00 +-001.50,-29.97,01.00,000.00,1.00 +-002.08,-29.93,01.00,000.00,1.00 +-002.65,-29.89,01.00,000.00,1.00 +-003.23,-29.84,01.00,000.00,1.00 +-003.80,-29.78,01.00,000.00,1.00 +-004.37,-29.71,01.00,000.00,1.00 +-004.94,-29.63,01.00,000.00,1.00 +-005.51,-29.54,01.00,000.00,1.00 +-006.07,-29.44,01.00,000.00,1.00 +-006.63,-29.33,01.00,000.00,1.00 +-007.19,-29.20,01.00,000.00,1.00 +-007.74,-29.07,01.00,000.00,1.00 +-008.29,-28.94,01.00,000.00,1.00 +-008.83,-28.79,01.00,000.00,1.00 +-009.38,-28.63,01.00,000.00,1.00 +-009.91,-28.46,01.00,000.00,1.00 +-010.45,-28.28,01.00,000.00,1.00 +-010.97,-28.10,01.00,000.00,1.00 +-011.49,-27.90,01.00,000.00,1.00 +-012.01,-27.70,01.00,000.00,1.00 +-012.52,-27.49,01.00,000.00,1.00 +-013.03,-27.26,01.00,000.00,1.00 +-013.53,-27.03,01.00,000.00,1.00 +-014.02,-26.80,01.00,000.00,1.00 +-014.51,-26.55,01.00,000.00,1.00 +-014.99,-26.29,01.00,000.00,1.00 +-015.46,-26.03,01.00,000.00,1.00 +-015.93,-25.76,01.00,000.00,1.00 +-016.39,-25.48,01.00,000.00,1.00 +-016.85,-25.20,01.00,000.00,1.00 +-017.29,-24.90,01.00,000.00,1.00 +-017.74,-24.60,01.00,000.00,1.00 +-018.17,-24.29,01.00,000.00,1.00 +-018.59,-23.98,01.00,000.00,1.00 +-019.01,-23.65,01.00,000.00,1.00 +-019.42,-23.32,01.00,000.00,1.00 +-019.83,-22.99,01.00,000.00,1.00 +-020.22,-22.64,01.00,000.00,1.00 +-020.61,-22.30,01.00,000.00,1.00 +-020.99,-21.94,01.00,000.00,1.00 +-021.36,-21.58,01.00,000.00,1.00 +-021.73,-21.21,01.00,000.00,1.00 +-022.08,-20.84,01.00,000.00,1.00 +-022.43,-20.46,01.00,000.00,1.00 +-022.77,-20.07,01.00,000.00,1.00 +-023.11,-19.68,01.00,000.00,1.00 +-023.43,-19.29,01.00,000.00,1.00 +-023.75,-18.89,01.00,000.00,1.00 +-024.06,-18.48,01.00,000.00,1.00 +-024.36,-18.07,01.00,000.00,1.00 +-024.66,-17.65,01.00,000.00,1.00 +-024.94,-17.23,01.00,000.00,1.00 +-025.22,-16.81,01.00,000.00,1.00 +-025.49,-16.38,01.00,000.00,1.00 +-025.75,-15.95,01.00,000.00,1.00 +-026.00,-15.51,01.00,000.00,1.00 +-026.25,-15.07,01.00,000.00,1.00 +-026.49,-14.63,01.00,000.00,1.00 +-026.72,-14.18,01.00,000.00,1.00 +-026.94,-13.73,01.00,000.00,1.00 +-027.15,-13.27,01.00,000.00,1.00 +-027.36,-12.81,01.00,000.00,1.00 +-027.56,-12.35,01.00,000.00,1.00 +-027.75,-11.89,01.00,000.00,1.00 +-027.93,-11.42,01.00,000.00,1.00 +-028.11,-10.95,01.00,000.00,1.00 +-028.27,-10.48,01.00,000.00,1.00 +-028.43,-10.00,01.00,000.00,1.00 +-028.58,-09.52,01.00,000.00,1.00 +-028.73,-09.04,01.00,000.00,1.00 +-028.86,-08.56,01.00,000.00,1.00 +-028.99,-08.08,01.00,000.00,1.00 +-029.11,-07.59,01.00,000.00,1.00 +-029.22,-07.10,01.00,000.00,1.00 +-029.33,-06.61,01.00,000.00,1.00 +-029.43,-06.12,01.00,000.00,1.00 +-029.52,-05.63,01.00,000.00,1.00 +-029.60,-05.13,01.00,000.00,1.00 +-029.67,-04.64,01.00,000.00,1.00 +-029.74,-04.14,01.00,000.00,1.00 +-029.80,-03.65,01.00,000.00,1.00 +-029.85,-03.15,01.00,000.00,1.00 +-029.89,-02.65,01.00,000.00,1.00 +-029.93,-02.15,01.00,000.00,1.00 +-029.96,-01.65,01.00,000.00,1.00 +-029.98,-01.15,01.00,000.00,1.00 +-029.99,-00.65,01.00,000.00,1.00 +-030.00,-00.15,01.00,000.00,1.00 +-030.00,+00.35,01.00,000.00,1.00 +-029.99,+00.85,01.00,000.00,1.00 +-029.97,+01.35,01.00,000.00,1.00 +-029.95,+01.85,01.00,000.00,1.00 +-029.92,+02.35,01.00,000.00,1.00 +-029.88,+02.85,01.00,000.00,1.00 +-029.83,+03.35,01.00,000.00,1.00 +-029.78,+03.85,01.00,000.00,1.00 +-029.71,+04.34,01.00,000.00,1.00 +-029.64,+04.84,01.00,000.00,1.00 +-029.57,+05.33,01.00,000.00,1.00 +-029.48,+05.83,01.00,000.00,1.00 +-029.39,+06.32,01.00,000.00,1.00 +-029.29,+06.81,01.00,000.00,1.00 +-029.18,+07.30,01.00,000.00,1.00 +-029.06,+07.78,01.00,000.00,1.00 +-028.94,+08.27,01.00,000.00,1.00 +-028.81,+08.75,01.00,000.00,1.00 +-028.67,+09.23,01.00,000.00,1.00 +-028.52,+09.71,01.00,000.00,1.00 +-028.37,+10.19,01.00,000.00,1.00 +-028.21,+10.67,01.00,000.00,1.00 +-028.04,+11.14,01.00,000.00,1.00 +-027.86,+11.61,01.00,000.00,1.00 +-027.67,+12.07,01.00,000.00,1.00 +-027.48,+12.54,01.00,000.00,1.00 +-027.28,+13.00,01.00,000.00,1.00 +-027.07,+13.45,01.00,000.00,1.00 +-026.85,+13.91,01.00,000.00,1.00 +-026.63,+14.36,01.00,000.00,1.00 +-026.39,+14.80,01.00,000.00,1.00 +-026.15,+15.25,01.00,000.00,1.00 +-025.90,+15.69,01.00,000.00,1.00 +-025.65,+16.12,01.00,000.00,1.00 +-025.38,+16.55,01.00,000.00,1.00 +-025.11,+16.98,01.00,000.00,1.00 +-024.83,+17.40,01.00,000.00,1.00 +-024.54,+17.82,01.00,000.00,1.00 +-024.24,+18.23,01.00,000.00,1.00 +-023.94,+18.64,01.00,000.00,1.00 +-023.63,+19.05,01.00,000.00,1.00 +-023.30,+19.45,01.00,000.00,1.00 +-022.98,+19.84,01.00,000.00,1.00 +-022.64,+20.23,01.00,000.00,1.00 +-022.29,+20.61,01.00,000.00,1.00 +-021.94,+20.99,01.00,000.00,1.00 +-021.58,+21.36,01.00,000.00,1.00 +-021.21,+21.72,01.00,000.00,1.00 +-020.84,+22.08,01.00,000.00,1.00 +-020.46,+22.44,01.00,000.00,1.00 +-020.06,+22.78,01.00,000.00,1.00 +-019.67,+23.12,01.00,000.00,1.00 +-019.26,+23.46,01.00,000.00,1.00 +-018.85,+23.78,01.00,000.00,1.00 +-018.42,+24.10,01.00,000.00,1.00 +-018.00,+24.42,01.00,000.00,1.00 +-017.56,+24.72,01.00,000.00,1.00 +-017.12,+25.02,01.00,000.00,1.00 +-016.67,+25.31,01.00,000.00,1.00 +-016.21,+25.59,01.00,000.00,1.00 +-015.75,+25.87,01.00,000.00,1.00 +-015.28,+26.14,01.00,000.00,1.00 +-014.80,+26.40,01.00,000.00,1.00 +-014.31,+26.65,01.00,000.00,1.00 +-013.82,+26.89,01.00,000.00,1.00 +-013.33,+27.13,01.00,000.00,1.00 +-012.83,+27.35,01.00,000.00,1.00 +-012.32,+27.57,01.00,000.00,1.00 +-011.81,+27.78,01.00,000.00,1.00 +-011.29,+27.98,01.00,000.00,1.00 +-010.76,+28.17,01.00,000.00,1.00 +-010.23,+28.35,01.00,000.00,1.00 +-009.70,+28.53,01.00,000.00,1.00 +-009.16,+28.69,01.00,000.00,1.00 +-008.62,+28.85,01.00,000.00,1.00 +-008.07,+28.99,01.00,000.00,1.00 +-007.52,+29.13,01.00,000.00,1.00 +-006.96,+29.25,01.00,000.00,1.00 +-006.41,+29.37,01.00,000.00,1.00 +-005.84,+29.48,01.00,000.00,1.00 +-005.28,+29.57,01.00,000.00,1.00 +-004.71,+29.66,01.00,000.00,1.00 +-004.14,+29.74,01.00,000.00,1.00 +-003.57,+29.81,01.00,000.00,1.00 +-003.00,+29.86,01.00,000.00,1.00 +-002.42,+29.91,01.00,000.00,1.00 +-001.85,+29.95,01.00,000.00,1.00 +-001.27,+29.98,01.00,000.00,1.00 +-000.69,+29.99,01.00,000.00,1.00 +-000.12,+30.00,01.00,000.00,1.00 ++000.46,+30.00,01.00,000.00,1.00 ++001.04,+29.98,01.00,000.00,1.00 ++001.62,+29.96,01.00,000.00,1.00 ++002.19,+29.93,01.00,000.00,1.00 ++002.77,+29.88,01.00,000.00,1.00 ++003.34,+29.83,01.00,000.00,1.00 ++003.92,+29.77,01.00,000.00,1.00 ++004.49,+29.69,01.00,000.00,1.00 ++005.05,+29.61,01.00,000.00,1.00 ++005.62,+29.52,01.00,000.00,1.00 ++006.18,+29.41,01.00,000.00,1.00 ++006.74,+29.30,01.00,000.00,1.00 ++007.30,+29.18,01.00,000.00,1.00 ++007.85,+29.05,01.00,000.00,1.00 ++008.40,+28.91,01.00,000.00,1.00 ++008.94,+28.76,01.00,000.00,1.00 ++009.48,+28.59,01.00,000.00,1.00 ++010.02,+28.43,01.00,000.00,1.00 ++010.55,+28.25,01.00,000.00,1.00 ++011.08,+28.06,01.00,000.00,1.00 ++011.60,+27.86,01.00,000.00,1.00 ++012.11,+27.66,01.00,000.00,1.00 ++012.62,+27.44,01.00,000.00,1.00 ++013.13,+27.22,01.00,000.00,1.00 ++013.63,+26.99,01.00,000.00,1.00 ++014.12,+26.75,01.00,000.00,1.00 ++014.61,+26.50,01.00,000.00,1.00 ++015.09,+26.24,01.00,000.00,1.00 ++015.56,+25.98,01.00,000.00,1.00 ++016.03,+25.71,01.00,000.00,1.00 ++016.48,+25.42,01.00,000.00,1.00 ++016.94,+25.14,01.00,000.00,1.00 ++017.38,+24.84,01.00,000.00,1.00 ++017.82,+24.54,01.00,000.00,1.00 ++018.25,+24.23,01.00,000.00,1.00 ++018.68,+23.91,01.00,000.00,1.00 ++019.09,+23.59,01.00,000.00,1.00 ++019.50,+23.26,01.00,000.00,1.00 ++019.91,+22.92,01.00,000.00,1.00 ++020.30,+22.58,01.00,000.00,1.00 ++020.69,+22.22,01.00,000.00,1.00 ++021.07,+21.87,01.00,000.00,1.00 ++021.44,+21.51,01.00,000.00,1.00 ++021.80,+21.14,01.00,000.00,1.00 ++022.16,+20.76,01.00,000.00,1.00 ++022.50,+20.38,01.00,000.00,1.00 ++022.84,+20.00,01.00,000.00,1.00 ++023.17,+19.60,01.00,000.00,1.00 ++023.50,+19.21,01.00,000.00,1.00 ++023.81,+18.81,01.00,000.00,1.00 ++024.12,+18.40,01.00,000.00,1.00 ++024.42,+17.99,01.00,000.00,1.00 ++024.71,+17.57,01.00,000.00,1.00 ++025.00,+17.15,01.00,000.00,1.00 ++025.27,+16.73,01.00,000.00,1.00 ++025.54,+16.30,01.00,000.00,1.00 ++025.80,+15.86,01.00,000.00,1.00 ++026.05,+15.42,01.00,000.00,1.00 ++026.30,+14.98,01.00,000.00,1.00 ++026.53,+14.54,01.00,000.00,1.00 ++026.76,+14.09,01.00,000.00,1.00 ++026.98,+13.64,01.00,000.00,1.00 ++027.20,+13.18,01.00,000.00,1.00 ++027.40,+12.72,01.00,000.00,1.00 ++027.60,+12.26,01.00,000.00,1.00 ++027.79,+11.79,01.00,000.00,1.00 ++027.97,+11.33,01.00,000.00,1.00 ++028.14,+10.85,01.00,000.00,1.00 ++028.30,+10.38,01.00,000.00,1.00 ++028.46,+09.90,01.00,000.00,1.00 ++028.61,+09.43,01.00,000.00,1.00 ++028.75,+08.95,01.00,000.00,1.00 ++028.89,+08.46,01.00,000.00,1.00 ++029.02,+07.98,01.00,000.00,1.00 ++029.13,+07.49,01.00,000.00,1.00 ++029.25,+07.00,01.00,000.00,1.00 ++029.35,+06.51,01.00,000.00,1.00 ++029.44,+06.02,01.00,000.00,1.00 ++029.53,+05.53,01.00,000.00,1.00 ++029.61,+05.04,01.00,000.00,1.00 ++029.69,+04.54,01.00,000.00,1.00 ++029.75,+04.04,01.00,000.00,1.00 ++029.81,+03.55,01.00,000.00,1.00 ++029.86,+03.05,01.00,000.00,1.00 ++029.90,+02.55,01.00,000.00,1.00 ++029.94,+02.05,01.00,000.00,1.00 ++029.96,+01.55,01.00,000.00,1.00 ++029.98,+01.05,01.00,000.00,1.00 ++030.00,+00.55,01.00,000.00,1.00 ++030.00,+00.05,01.00,000.00,1.00 ++030.00,-00.45,01.00,000.00,1.00 ++029.99,-00.95,01.00,000.00,1.00 ++029.97,-01.45,01.00,000.00,1.00 ++029.94,-01.95,01.00,000.00,1.00 ++029.91,-02.45,01.00,000.00,1.00 ++029.87,-02.95,01.00,000.00,1.00 ++029.82,-03.45,01.00,000.00,1.00 ++029.76,-03.94,01.00,000.00,1.00 ++029.70,-04.44,01.00,000.00,1.00 ++029.63,-04.94,01.00,000.00,1.00 ++029.55,-05.43,01.00,000.00,1.00 ++029.46,-05.92,01.00,000.00,1.00 ++029.37,-06.42,01.00,000.00,1.00 ++029.27,-06.91,01.00,000.00,1.00 ++029.16,-07.39,01.00,000.00,1.00 ++029.04,-07.88,01.00,000.00,1.00 ++028.91,-08.37,01.00,000.00,1.00 ++028.78,-08.85,01.00,000.00,1.00 ++028.64,-09.33,01.00,000.00,1.00 ++028.49,-09.81,01.00,000.00,1.00 ++028.34,-10.29,01.00,000.00,1.00 ++028.17,-10.76,01.00,000.00,1.00 ++028.00,-11.23,01.00,000.00,1.00 ++027.82,-11.70,01.00,000.00,1.00 ++027.63,-12.17,01.00,000.00,1.00 ++027.44,-12.63,01.00,000.00,1.00 ++027.24,-13.09,01.00,000.00,1.00 ++027.03,-13.54,01.00,000.00,1.00 ++026.81,-14.00,01.00,000.00,1.00 ++026.58,-14.45,01.00,000.00,1.00 ++026.35,-14.89,01.00,000.00,1.00 ++026.10,-15.34,01.00,000.00,1.00 ++025.85,-15.77,01.00,000.00,1.00 ++025.59,-16.21,01.00,000.00,1.00 ++025.33,-16.64,01.00,000.00,1.00 ++025.05,-17.07,01.00,000.00,1.00 ++024.77,-17.49,01.00,000.00,1.00 ++024.48,-17.90,01.00,000.00,1.00 ++024.18,-18.32,01.00,000.00,1.00 ++023.88,-18.72,01.00,000.00,1.00 ++023.56,-19.13,01.00,000.00,1.00 ++023.24,-19.53,01.00,000.00,1.00 ++022.91,-19.92,01.00,000.00,1.00 ++022.57,-20.30,01.00,000.00,1.00 ++022.23,-20.69,01.00,000.00,1.00 ++021.87,-21.06,01.00,000.00,1.00 ++021.51,-21.43,01.00,000.00,1.00 ++021.14,-21.80,01.00,000.00,1.00 ++020.76,-22.15,01.00,000.00,1.00 ++020.38,-22.51,01.00,000.00,1.00 ++019.99,-22.85,01.00,000.00,1.00 ++019.58,-23.19,01.00,000.00,1.00 ++019.18,-23.52,01.00,000.00,1.00 ++018.76,-23.85,01.00,000.00,1.00 ++018.34,-24.17,01.00,000.00,1.00 ++017.91,-24.48,01.00,000.00,1.00 ++017.47,-24.78,01.00,000.00,1.00 ++017.03,-25.08,01.00,000.00,1.00 ++016.58,-25.37,01.00,000.00,1.00 ++016.12,-25.65,01.00,000.00,1.00 ++015.65,-25.92,01.00,000.00,1.00 ++015.18,-26.19,01.00,000.00,1.00 ++014.70,-26.45,01.00,000.00,1.00 ++014.22,-26.70,01.00,000.00,1.00 ++013.73,-26.94,01.00,000.00,1.00 ++013.23,-27.17,01.00,000.00,1.00 ++012.73,-27.40,01.00,000.00,1.00 ++012.22,-27.61,01.00,000.00,1.00 ++011.70,-27.82,01.00,000.00,1.00 ++011.18,-28.02,01.00,000.00,1.00 ++010.66,-28.21,01.00,000.00,1.00 ++010.13,-28.39,01.00,000.00,1.00 ++009.59,-28.56,01.00,000.00,1.00 ++009.05,-28.72,01.00,000.00,1.00 ++008.51,-28.88,01.00,000.00,1.00 ++007.96,-29.02,01.00,000.00,1.00 ++007.41,-29.15,01.00,000.00,1.00 ++006.85,-29.28,01.00,000.00,1.00 ++006.29,-29.39,01.00,000.00,1.00 ++005.73,-29.50,01.00,000.00,1.00 ++005.17,-29.59,01.00,000.00,1.00 ++004.60,-29.68,01.00,000.00,1.00 ++004.03,-29.75,01.00,000.00,1.00 ++003.46,-29.82,01.00,000.00,1.00 ++002.88,-29.87,01.00,000.00,1.00 ++002.31,-29.92,01.00,000.00,1.00 ++001.73,-29.95,01.00,000.00,1.00 ++001.16,-29.98,01.00,000.00,1.00 ++000.58,-29.99,01.00,000.00,1.00 ++000.00,-30.00,01.00,000.00,1.00 +-000.58,-29.99,01.00,000.00,1.00 +-001.16,-29.98,01.00,000.00,1.00 +-001.73,-29.95,01.00,000.00,1.00 +-002.31,-29.92,01.00,000.00,1.00 +-002.88,-29.87,01.00,000.00,1.00 +-003.46,-29.82,01.00,000.00,1.00 +-004.03,-29.75,01.00,000.00,1.00 +-004.60,-29.68,01.00,000.00,1.00 +-005.17,-29.59,01.00,000.00,1.00 +-005.73,-29.50,01.00,000.00,1.00 +-006.29,-29.39,01.00,000.00,1.00 +-006.85,-29.28,01.00,000.00,1.00 +-007.41,-29.15,01.00,000.00,1.00 +-007.96,-29.02,01.00,000.00,1.00 +-008.51,-28.88,01.00,000.00,1.00 +-009.05,-28.72,01.00,000.00,1.00 +-009.59,-28.56,01.00,000.00,1.00 +-010.13,-28.39,01.00,000.00,1.00 +-010.66,-28.21,01.00,000.00,1.00 +-011.18,-28.02,01.00,000.00,1.00 +-011.70,-27.82,01.00,000.00,1.00 +-012.22,-27.61,01.00,000.00,1.00 +-012.73,-27.40,01.00,000.00,1.00 +-013.23,-27.17,01.00,000.00,1.00 +-013.73,-26.94,01.00,000.00,1.00 +-014.22,-26.70,01.00,000.00,1.00 +-014.70,-26.45,01.00,000.00,1.00 +-015.18,-26.19,01.00,000.00,1.00 +-015.65,-25.92,01.00,000.00,1.00 +-016.12,-25.65,01.00,000.00,1.00 +-016.58,-25.37,01.00,000.00,1.00 +-017.03,-25.08,01.00,000.00,1.00 +-017.47,-24.78,01.00,000.00,1.00 +-017.91,-24.48,01.00,000.00,1.00 +-018.34,-24.17,01.00,000.00,1.00 +-018.76,-23.85,01.00,000.00,1.00 +-019.18,-23.52,01.00,000.00,1.00 +-019.58,-23.19,01.00,000.00,1.00 +-019.99,-22.85,01.00,000.00,1.00 +-020.38,-22.51,01.00,000.00,1.00 +-020.76,-22.15,01.00,000.00,1.00 +-021.14,-21.80,01.00,000.00,1.00 +-021.51,-21.43,01.00,000.00,1.00 +-021.87,-21.06,01.00,000.00,1.00 +-022.23,-20.69,01.00,000.00,1.00 +-022.57,-20.30,01.00,000.00,1.00 +-022.91,-19.92,01.00,000.00,1.00 +-023.24,-19.53,01.00,000.00,1.00 +-023.56,-19.13,01.00,000.00,1.00 +-023.88,-18.72,01.00,000.00,1.00 +-024.18,-18.32,01.00,000.00,1.00 +-024.48,-17.90,01.00,000.00,1.00 +-024.77,-17.49,01.00,000.00,1.00 +-025.05,-17.07,01.00,000.00,1.00 +-025.33,-16.64,01.00,000.00,1.00 +-025.59,-16.21,01.00,000.00,1.00 +-025.85,-15.77,01.00,000.00,1.00 +-026.10,-15.34,01.00,000.00,1.00 +-026.35,-14.89,01.00,000.00,1.00 +-026.58,-14.45,01.00,000.00,1.00 +-026.81,-14.00,01.00,000.00,1.00 +-027.03,-13.54,01.00,000.00,1.00 +-027.24,-13.09,01.00,000.00,1.00 +-027.44,-12.63,01.00,000.00,1.00 +-027.63,-12.17,01.00,000.00,1.00 +-027.82,-11.70,01.00,000.00,1.00 +-028.00,-11.23,01.00,000.00,1.00 +-028.17,-10.76,01.00,000.00,1.00 +-028.34,-10.29,01.00,000.00,1.00 +-028.49,-09.81,01.00,000.00,1.00 +-028.64,-09.33,01.00,000.00,1.00 +-028.78,-08.85,01.00,000.00,1.00 +-028.91,-08.37,01.00,000.00,1.00 +-029.04,-07.88,01.00,000.00,1.00 +-029.16,-07.39,01.00,000.00,1.00 +-029.27,-06.91,01.00,000.00,1.00 +-029.37,-06.42,01.00,000.00,1.00 +-029.46,-05.92,01.00,000.00,1.00 +-029.55,-05.43,01.00,000.00,1.00 +-029.63,-04.94,01.00,000.00,1.00 +-029.70,-04.44,01.00,000.00,1.00 +-029.76,-03.94,01.00,000.00,1.00 +-029.82,-03.45,01.00,000.00,1.00 +-029.87,-02.95,01.00,000.00,1.00 +-029.91,-02.45,01.00,000.00,1.00 +-029.94,-01.95,01.00,000.00,1.00 +-029.97,-01.45,01.00,000.00,1.00 +-029.99,-00.95,01.00,000.00,1.00 +-030.00,-00.45,01.00,000.00,1.00 +-030.00,+00.05,01.00,000.00,1.00 +-030.00,+00.55,01.00,000.00,1.00 +-029.98,+01.05,01.00,000.00,1.00 +-029.96,+01.55,01.00,000.00,1.00 +-029.94,+02.05,01.00,000.00,1.00 +-029.90,+02.55,01.00,000.00,1.00 +-029.86,+03.05,01.00,000.00,1.00 +-029.81,+03.55,01.00,000.00,1.00 +-029.75,+04.04,01.00,000.00,1.00 +-029.69,+04.54,01.00,000.00,1.00 +-029.61,+05.04,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t10_ch1.csv b/scripts/td_object_renderer/metadata/csv/t10_ch1.csv index 62928fffb6..34205471ca 100644 --- a/scripts/td_object_renderer/metadata/csv/t10_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t10_ch1.csv @@ -1,1000 +1,1000 @@ -0000,+000.00,+20.00,01.00,000.00,1.00 -0001,+000.79,+20.00,01.00,000.00,1.00 -0002,+001.59,+20.00,01.00,000.00,1.00 -0003,+002.38,+20.00,01.00,000.00,1.00 -0004,+003.17,+20.00,01.00,000.00,1.00 -0005,+003.96,+20.00,01.00,000.00,1.00 -0006,+004.76,+20.00,01.00,000.00,1.00 -0007,+005.55,+20.00,01.00,000.00,1.00 -0008,+006.34,+20.00,01.00,000.00,1.00 -0009,+007.14,+20.00,01.00,000.00,1.00 -0010,+007.93,+20.00,01.00,000.00,1.00 -0011,+008.72,+20.00,01.00,000.00,1.00 -0012,+009.52,+20.00,01.00,000.00,1.00 -0013,+010.31,+20.00,01.00,000.00,1.00 -0014,+011.10,+20.00,01.00,000.00,1.00 -0015,+011.89,+20.00,01.00,000.00,1.00 -0016,+012.69,+20.00,01.00,000.00,1.00 -0017,+013.48,+20.00,01.00,000.00,1.00 -0018,+014.27,+20.00,01.00,000.00,1.00 -0019,+015.07,+20.00,01.00,000.00,1.00 -0020,+015.86,+20.00,01.00,000.00,1.00 -0021,+016.65,+20.00,01.00,000.00,1.00 -0022,+017.44,+20.00,01.00,000.00,1.00 -0023,+018.24,+20.00,01.00,000.00,1.00 -0024,+019.03,+20.00,01.00,000.00,1.00 -0025,+019.82,+20.00,01.00,000.00,1.00 -0026,+020.62,+20.00,01.00,000.00,1.00 -0027,+021.41,+20.00,01.00,000.00,1.00 -0028,+022.20,+20.00,01.00,000.00,1.00 -0029,+023.00,+20.00,01.00,000.00,1.00 -0030,+023.79,+20.00,01.00,000.00,1.00 -0031,+024.58,+20.00,01.00,000.00,1.00 -0032,+025.37,+20.00,01.00,000.00,1.00 -0033,+026.17,+20.00,01.00,000.00,1.00 -0034,+026.96,+20.00,01.00,000.00,1.00 -0035,+027.75,+20.00,01.00,000.00,1.00 -0036,+028.55,+20.00,01.00,000.00,1.00 -0037,+029.34,+20.00,01.00,000.00,1.00 -0038,+030.13,+20.00,01.00,000.00,1.00 -0039,+030.93,+20.00,01.00,000.00,1.00 -0040,+031.72,+20.00,01.00,000.00,1.00 -0041,+032.51,+20.00,01.00,000.00,1.00 -0042,+033.30,+20.00,01.00,000.00,1.00 -0043,+034.10,+20.00,01.00,000.00,1.00 -0044,+034.89,+20.00,01.00,000.00,1.00 -0045,+035.68,+20.00,01.00,000.00,1.00 -0046,+036.48,+20.00,01.00,000.00,1.00 -0047,+037.27,+20.00,01.00,000.00,1.00 -0048,+038.06,+20.00,01.00,000.00,1.00 -0049,+038.85,+20.00,01.00,000.00,1.00 -0050,+039.65,+20.00,01.00,000.00,1.00 -0051,+040.44,+20.00,01.00,000.00,1.00 -0052,+041.23,+20.00,01.00,000.00,1.00 -0053,+042.03,+20.00,01.00,000.00,1.00 -0054,+042.82,+20.00,01.00,000.00,1.00 -0055,+043.61,+20.00,01.00,000.00,1.00 -0056,+044.41,+20.00,01.00,000.00,1.00 -0057,+045.20,+20.00,01.00,000.00,1.00 -0058,+045.99,+20.00,01.00,000.00,1.00 -0059,+046.78,+20.00,01.00,000.00,1.00 -0060,+047.58,+20.00,01.00,000.00,1.00 -0061,+048.37,+20.00,01.00,000.00,1.00 -0062,+049.16,+20.00,01.00,000.00,1.00 -0063,+049.96,+20.00,01.00,000.00,1.00 -0064,+050.75,+20.00,01.00,000.00,1.00 -0065,+051.54,+20.00,01.00,000.00,1.00 -0066,+052.33,+20.00,01.00,000.00,1.00 -0067,+053.13,+20.00,01.00,000.00,1.00 -0068,+053.92,+20.00,01.00,000.00,1.00 -0069,+054.71,+20.00,01.00,000.00,1.00 -0070,+055.51,+20.00,01.00,000.00,1.00 -0071,+056.30,+20.00,01.00,000.00,1.00 -0072,+057.09,+20.00,01.00,000.00,1.00 -0073,+057.89,+20.00,01.00,000.00,1.00 -0074,+058.68,+20.00,01.00,000.00,1.00 -0075,+059.47,+20.00,01.00,000.00,1.00 -0076,+060.26,+20.00,01.00,000.00,1.00 -0077,+061.06,+20.00,01.00,000.00,1.00 -0078,+061.85,+20.00,01.00,000.00,1.00 -0079,+062.64,+20.00,01.00,000.00,1.00 -0080,+063.44,+20.00,01.00,000.00,1.00 -0081,+064.23,+20.00,01.00,000.00,1.00 -0082,+065.02,+20.00,01.00,000.00,1.00 -0083,+065.81,+20.00,01.00,000.00,1.00 -0084,+066.61,+20.00,01.00,000.00,1.00 -0085,+067.40,+20.00,01.00,000.00,1.00 -0086,+068.19,+20.00,01.00,000.00,1.00 -0087,+068.99,+20.00,01.00,000.00,1.00 -0088,+069.78,+20.00,01.00,000.00,1.00 -0089,+070.57,+20.00,01.00,000.00,1.00 -0090,+071.37,+20.00,01.00,000.00,1.00 -0091,+072.16,+20.00,01.00,000.00,1.00 -0092,+072.95,+20.00,01.00,000.00,1.00 -0093,+073.74,+20.00,01.00,000.00,1.00 -0094,+074.54,+20.00,01.00,000.00,1.00 -0095,+075.33,+20.00,01.00,000.00,1.00 -0096,+076.12,+20.00,01.00,000.00,1.00 -0097,+076.92,+20.00,01.00,000.00,1.00 -0098,+077.71,+20.00,01.00,000.00,1.00 -0099,+078.50,+20.00,01.00,000.00,1.00 -0100,+079.30,+20.00,01.00,000.00,1.00 -0101,+080.09,+20.00,01.00,000.00,1.00 -0102,+080.88,+20.00,01.00,000.00,1.00 -0103,+081.67,+20.00,01.00,000.00,1.00 -0104,+082.47,+20.00,01.00,000.00,1.00 -0105,+083.26,+20.00,01.00,000.00,1.00 -0106,+084.05,+20.00,01.00,000.00,1.00 -0107,+084.85,+20.00,01.00,000.00,1.00 -0108,+085.64,+20.00,01.00,000.00,1.00 -0109,+086.43,+20.00,01.00,000.00,1.00 -0110,+087.22,+20.00,01.00,000.00,1.00 -0111,+088.02,+20.00,01.00,000.00,1.00 -0112,+088.81,+20.00,01.00,000.00,1.00 -0113,+089.60,+20.00,01.00,000.00,1.00 -0114,+090.40,+20.00,01.00,000.00,1.00 -0115,+091.19,+20.00,01.00,000.00,1.00 -0116,+091.98,+20.00,01.00,000.00,1.00 -0117,+092.78,+20.00,01.00,000.00,1.00 -0118,+093.57,+20.00,01.00,000.00,1.00 -0119,+094.36,+20.00,01.00,000.00,1.00 -0120,+095.15,+20.00,01.00,000.00,1.00 -0121,+095.95,+20.00,01.00,000.00,1.00 -0122,+096.74,+20.00,01.00,000.00,1.00 -0123,+097.53,+20.00,01.00,000.00,1.00 -0124,+098.33,+20.00,01.00,000.00,1.00 -0125,+099.12,+20.00,01.00,000.00,1.00 -0126,+099.91,+20.00,01.00,000.00,1.00 -0127,+100.70,+20.00,01.00,000.00,1.00 -0128,+101.50,+20.00,01.00,000.00,1.00 -0129,+102.29,+20.00,01.00,000.00,1.00 -0130,+103.08,+20.00,01.00,000.00,1.00 -0131,+103.88,+20.00,01.00,000.00,1.00 -0132,+104.67,+20.00,01.00,000.00,1.00 -0133,+105.46,+20.00,01.00,000.00,1.00 -0134,+106.26,+20.00,01.00,000.00,1.00 -0135,+107.05,+20.00,01.00,000.00,1.00 -0136,+107.84,+20.00,01.00,000.00,1.00 -0137,+108.63,+20.00,01.00,000.00,1.00 -0138,+109.43,+20.00,01.00,000.00,1.00 -0139,+110.22,+20.00,01.00,000.00,1.00 -0140,+111.01,+20.00,01.00,000.00,1.00 -0141,+111.81,+20.00,01.00,000.00,1.00 -0142,+112.60,+20.00,01.00,000.00,1.00 -0143,+113.39,+20.00,01.00,000.00,1.00 -0144,+114.19,+20.00,01.00,000.00,1.00 -0145,+114.98,+20.00,01.00,000.00,1.00 -0146,+115.77,+20.00,01.00,000.00,1.00 -0147,+116.56,+20.00,01.00,000.00,1.00 -0148,+117.36,+20.00,01.00,000.00,1.00 -0149,+118.15,+20.00,01.00,000.00,1.00 -0150,+118.94,+20.00,01.00,000.00,1.00 -0151,+119.74,+20.00,01.00,000.00,1.00 -0152,+120.53,+20.00,01.00,000.00,1.00 -0153,+121.32,+20.00,01.00,000.00,1.00 -0154,+122.11,+20.00,01.00,000.00,1.00 -0155,+122.91,+20.00,01.00,000.00,1.00 -0156,+123.70,+20.00,01.00,000.00,1.00 -0157,+124.49,+20.00,01.00,000.00,1.00 -0158,+125.29,+20.00,01.00,000.00,1.00 -0159,+126.08,+20.00,01.00,000.00,1.00 -0160,+126.87,+20.00,01.00,000.00,1.00 -0161,+127.67,+20.00,01.00,000.00,1.00 -0162,+128.46,+20.00,01.00,000.00,1.00 -0163,+129.25,+20.00,01.00,000.00,1.00 -0164,+130.04,+20.00,01.00,000.00,1.00 -0165,+130.84,+20.00,01.00,000.00,1.00 -0166,+131.63,+20.00,01.00,000.00,1.00 -0167,+132.42,+20.00,01.00,000.00,1.00 -0168,+133.22,+20.00,01.00,000.00,1.00 -0169,+134.01,+20.00,01.00,000.00,1.00 -0170,+134.80,+20.00,01.00,000.00,1.00 -0171,+135.59,+20.00,01.00,000.00,1.00 -0172,+136.39,+20.00,01.00,000.00,1.00 -0173,+137.18,+20.00,01.00,000.00,1.00 -0174,+137.97,+20.00,01.00,000.00,1.00 -0175,+138.77,+20.00,01.00,000.00,1.00 -0176,+139.56,+20.00,01.00,000.00,1.00 -0177,+140.35,+20.00,01.00,000.00,1.00 -0178,+141.15,+20.00,01.00,000.00,1.00 -0179,+141.94,+20.00,01.00,000.00,1.00 -0180,+142.73,+20.00,01.00,000.00,1.00 -0181,+143.52,+20.00,01.00,000.00,1.00 -0182,+144.32,+20.00,01.00,000.00,1.00 -0183,+145.11,+20.00,01.00,000.00,1.00 -0184,+145.90,+20.00,01.00,000.00,1.00 -0185,+146.70,+20.00,01.00,000.00,1.00 -0186,+147.49,+20.00,01.00,000.00,1.00 -0187,+148.28,+20.00,01.00,000.00,1.00 -0188,+149.07,+20.00,01.00,000.00,1.00 -0189,+149.87,+20.00,01.00,000.00,1.00 -0190,+150.66,+20.00,01.00,000.00,1.00 -0191,+151.45,+20.00,01.00,000.00,1.00 -0192,+152.25,+20.00,01.00,000.00,1.00 -0193,+153.04,+20.00,01.00,000.00,1.00 -0194,+153.83,+20.00,01.00,000.00,1.00 -0195,+154.63,+20.00,01.00,000.00,1.00 -0196,+155.42,+20.00,01.00,000.00,1.00 -0197,+156.21,+20.00,01.00,000.00,1.00 -0198,+157.00,+20.00,01.00,000.00,1.00 -0199,+157.80,+20.00,01.00,000.00,1.00 -0200,+158.59,+20.00,01.00,000.00,1.00 -0201,+159.38,+20.00,01.00,000.00,1.00 -0202,+160.18,+20.00,01.00,000.00,1.00 -0203,+160.97,+20.00,01.00,000.00,1.00 -0204,+161.76,+20.00,01.00,000.00,1.00 -0205,+162.56,+20.00,01.00,000.00,1.00 -0206,+163.35,+20.00,01.00,000.00,1.00 -0207,+164.14,+20.00,01.00,000.00,1.00 -0208,+164.93,+20.00,01.00,000.00,1.00 -0209,+165.73,+20.00,01.00,000.00,1.00 -0210,+166.52,+20.00,01.00,000.00,1.00 -0211,+167.31,+20.00,01.00,000.00,1.00 -0212,+168.11,+20.00,01.00,000.00,1.00 -0213,+168.90,+20.00,01.00,000.00,1.00 -0214,+169.69,+20.00,01.00,000.00,1.00 -0215,+170.48,+20.00,01.00,000.00,1.00 -0216,+171.28,+20.00,01.00,000.00,1.00 -0217,+172.07,+20.00,01.00,000.00,1.00 -0218,+172.86,+20.00,01.00,000.00,1.00 -0219,+173.66,+20.00,01.00,000.00,1.00 -0220,+174.45,+20.00,01.00,000.00,1.00 -0221,+175.24,+20.00,01.00,000.00,1.00 -0222,+176.04,+20.00,01.00,000.00,1.00 -0223,+176.83,+20.00,01.00,000.00,1.00 -0224,+177.62,+20.00,01.00,000.00,1.00 -0225,+178.41,+20.00,01.00,000.00,1.00 -0226,+179.21,+20.00,01.00,000.00,1.00 -0227,+180.00,+20.00,01.00,000.00,1.00 -0228,-179.21,+20.00,01.00,000.00,1.00 -0229,-178.41,+20.00,01.00,000.00,1.00 -0230,-177.62,+20.00,01.00,000.00,1.00 -0231,-176.83,+20.00,01.00,000.00,1.00 -0232,-176.04,+20.00,01.00,000.00,1.00 -0233,-175.24,+20.00,01.00,000.00,1.00 -0234,-174.45,+20.00,01.00,000.00,1.00 -0235,-173.66,+20.00,01.00,000.00,1.00 -0236,-172.86,+20.00,01.00,000.00,1.00 -0237,-172.07,+20.00,01.00,000.00,1.00 -0238,-171.28,+20.00,01.00,000.00,1.00 -0239,-170.48,+20.00,01.00,000.00,1.00 -0240,-169.69,+20.00,01.00,000.00,1.00 -0241,-168.90,+20.00,01.00,000.00,1.00 -0242,-168.11,+20.00,01.00,000.00,1.00 -0243,-167.31,+20.00,01.00,000.00,1.00 -0244,-166.52,+20.00,01.00,000.00,1.00 -0245,-165.73,+20.00,01.00,000.00,1.00 -0246,-164.93,+20.00,01.00,000.00,1.00 -0247,-164.14,+20.00,01.00,000.00,1.00 -0248,-163.35,+20.00,01.00,000.00,1.00 -0249,-162.56,+20.00,01.00,000.00,1.00 -0250,-161.76,+20.00,01.00,000.00,1.00 -0251,-160.97,+20.00,01.00,000.00,1.00 -0252,-160.18,+20.00,01.00,000.00,1.00 -0253,-159.38,+20.00,01.00,000.00,1.00 -0254,-158.59,+20.00,01.00,000.00,1.00 -0255,-157.80,+20.00,01.00,000.00,1.00 -0256,-157.00,+20.00,01.00,000.00,1.00 -0257,-156.21,+20.00,01.00,000.00,1.00 -0258,-155.42,+20.00,01.00,000.00,1.00 -0259,-154.63,+20.00,01.00,000.00,1.00 -0260,-153.83,+20.00,01.00,000.00,1.00 -0261,-153.04,+20.00,01.00,000.00,1.00 -0262,-152.25,+20.00,01.00,000.00,1.00 -0263,-151.45,+20.00,01.00,000.00,1.00 -0264,-150.66,+20.00,01.00,000.00,1.00 -0265,-149.87,+20.00,01.00,000.00,1.00 -0266,-149.07,+20.00,01.00,000.00,1.00 -0267,-148.28,+20.00,01.00,000.00,1.00 -0268,-147.49,+20.00,01.00,000.00,1.00 -0269,-146.70,+20.00,01.00,000.00,1.00 -0270,-145.90,+20.00,01.00,000.00,1.00 -0271,-145.11,+20.00,01.00,000.00,1.00 -0272,-144.32,+20.00,01.00,000.00,1.00 -0273,-143.52,+20.00,01.00,000.00,1.00 -0274,-142.73,+20.00,01.00,000.00,1.00 -0275,-141.94,+20.00,01.00,000.00,1.00 -0276,-141.15,+20.00,01.00,000.00,1.00 -0277,-140.35,+20.00,01.00,000.00,1.00 -0278,-139.56,+20.00,01.00,000.00,1.00 -0279,-138.77,+20.00,01.00,000.00,1.00 -0280,-137.97,+20.00,01.00,000.00,1.00 -0281,-137.18,+20.00,01.00,000.00,1.00 -0282,-136.39,+20.00,01.00,000.00,1.00 -0283,-135.59,+20.00,01.00,000.00,1.00 -0284,-134.80,+20.00,01.00,000.00,1.00 -0285,-134.01,+20.00,01.00,000.00,1.00 -0286,-133.22,+20.00,01.00,000.00,1.00 -0287,-132.42,+20.00,01.00,000.00,1.00 -0288,-131.63,+20.00,01.00,000.00,1.00 -0289,-130.84,+20.00,01.00,000.00,1.00 -0290,-130.04,+20.00,01.00,000.00,1.00 -0291,-129.25,+20.00,01.00,000.00,1.00 -0292,-128.46,+20.00,01.00,000.00,1.00 -0293,-127.67,+20.00,01.00,000.00,1.00 -0294,-126.87,+20.00,01.00,000.00,1.00 -0295,-126.08,+20.00,01.00,000.00,1.00 -0296,-125.29,+20.00,01.00,000.00,1.00 -0297,-124.49,+20.00,01.00,000.00,1.00 -0298,-123.70,+20.00,01.00,000.00,1.00 -0299,-122.91,+20.00,01.00,000.00,1.00 -0300,-122.11,+20.00,01.00,000.00,1.00 -0301,-121.32,+20.00,01.00,000.00,1.00 -0302,-120.53,+20.00,01.00,000.00,1.00 -0303,-119.74,+20.00,01.00,000.00,1.00 -0304,-118.94,+20.00,01.00,000.00,1.00 -0305,-118.15,+20.00,01.00,000.00,1.00 -0306,-117.36,+20.00,01.00,000.00,1.00 -0307,-116.56,+20.00,01.00,000.00,1.00 -0308,-115.77,+20.00,01.00,000.00,1.00 -0309,-114.98,+20.00,01.00,000.00,1.00 -0310,-114.19,+20.00,01.00,000.00,1.00 -0311,-113.39,+20.00,01.00,000.00,1.00 -0312,-112.60,+20.00,01.00,000.00,1.00 -0313,-111.81,+20.00,01.00,000.00,1.00 -0314,-111.01,+20.00,01.00,000.00,1.00 -0315,-110.22,+20.00,01.00,000.00,1.00 -0316,-109.43,+20.00,01.00,000.00,1.00 -0317,-108.63,+20.00,01.00,000.00,1.00 -0318,-107.84,+20.00,01.00,000.00,1.00 -0319,-107.05,+20.00,01.00,000.00,1.00 -0320,-106.26,+20.00,01.00,000.00,1.00 -0321,-105.46,+20.00,01.00,000.00,1.00 -0322,-104.67,+20.00,01.00,000.00,1.00 -0323,-103.88,+20.00,01.00,000.00,1.00 -0324,-103.08,+20.00,01.00,000.00,1.00 -0325,-102.29,+20.00,01.00,000.00,1.00 -0326,-101.50,+20.00,01.00,000.00,1.00 -0327,-100.70,+20.00,01.00,000.00,1.00 -0328,-099.91,+20.00,01.00,000.00,1.00 -0329,-099.12,+20.00,01.00,000.00,1.00 -0330,-098.33,+20.00,01.00,000.00,1.00 -0331,-097.53,+20.00,01.00,000.00,1.00 -0332,-096.74,+20.00,01.00,000.00,1.00 -0333,-095.95,+20.00,01.00,000.00,1.00 -0334,-095.15,+20.00,01.00,000.00,1.00 -0335,-094.36,+20.00,01.00,000.00,1.00 -0336,-093.57,+20.00,01.00,000.00,1.00 -0337,-092.78,+20.00,01.00,000.00,1.00 -0338,-091.98,+20.00,01.00,000.00,1.00 -0339,-091.19,+20.00,01.00,000.00,1.00 -0340,-090.40,+20.00,01.00,000.00,1.00 -0341,-089.60,+20.00,01.00,000.00,1.00 -0342,-088.81,+20.00,01.00,000.00,1.00 -0343,-088.02,+20.00,01.00,000.00,1.00 -0344,-087.22,+20.00,01.00,000.00,1.00 -0345,-086.43,+20.00,01.00,000.00,1.00 -0346,-085.64,+20.00,01.00,000.00,1.00 -0347,-084.85,+20.00,01.00,000.00,1.00 -0348,-084.05,+20.00,01.00,000.00,1.00 -0349,-083.26,+20.00,01.00,000.00,1.00 -0350,-082.47,+20.00,01.00,000.00,1.00 -0351,-081.67,+20.00,01.00,000.00,1.00 -0352,-080.88,+20.00,01.00,000.00,1.00 -0353,-080.09,+20.00,01.00,000.00,1.00 -0354,-079.30,+20.00,01.00,000.00,1.00 -0355,-078.50,+20.00,01.00,000.00,1.00 -0356,-077.71,+20.00,01.00,000.00,1.00 -0357,-076.92,+20.00,01.00,000.00,1.00 -0358,-076.12,+20.00,01.00,000.00,1.00 -0359,-075.33,+20.00,01.00,000.00,1.00 -0360,-074.54,+20.00,01.00,000.00,1.00 -0361,-073.74,+20.00,01.00,000.00,1.00 -0362,-072.95,+20.00,01.00,000.00,1.00 -0363,-072.16,+20.00,01.00,000.00,1.00 -0364,-071.37,+20.00,01.00,000.00,1.00 -0365,-070.57,+20.00,01.00,000.00,1.00 -0366,-069.78,+20.00,01.00,000.00,1.00 -0367,-068.99,+20.00,01.00,000.00,1.00 -0368,-068.19,+20.00,01.00,000.00,1.00 -0369,-067.40,+20.00,01.00,000.00,1.00 -0370,-066.61,+20.00,01.00,000.00,1.00 -0371,-065.81,+20.00,01.00,000.00,1.00 -0372,-065.02,+20.00,01.00,000.00,1.00 -0373,-064.23,+20.00,01.00,000.00,1.00 -0374,-063.44,+20.00,01.00,000.00,1.00 -0375,-062.64,+20.00,01.00,000.00,1.00 -0376,-061.85,+20.00,01.00,000.00,1.00 -0377,-061.06,+20.00,01.00,000.00,1.00 -0378,-060.26,+20.00,01.00,000.00,1.00 -0379,-059.47,+20.00,01.00,000.00,1.00 -0380,-058.68,+20.00,01.00,000.00,1.00 -0381,-057.89,+20.00,01.00,000.00,1.00 -0382,-057.09,+20.00,01.00,000.00,1.00 -0383,-056.30,+20.00,01.00,000.00,1.00 -0384,-055.51,+20.00,01.00,000.00,1.00 -0385,-054.71,+20.00,01.00,000.00,1.00 -0386,-053.92,+20.00,01.00,000.00,1.00 -0387,-053.13,+20.00,01.00,000.00,1.00 -0388,-052.33,+20.00,01.00,000.00,1.00 -0389,-051.54,+20.00,01.00,000.00,1.00 -0390,-050.75,+20.00,01.00,000.00,1.00 -0391,-049.96,+20.00,01.00,000.00,1.00 -0392,-049.16,+20.00,01.00,000.00,1.00 -0393,-048.37,+20.00,01.00,000.00,1.00 -0394,-047.58,+20.00,01.00,000.00,1.00 -0395,-046.78,+20.00,01.00,000.00,1.00 -0396,-045.99,+20.00,01.00,000.00,1.00 -0397,-045.20,+20.00,01.00,000.00,1.00 -0398,-044.41,+20.00,01.00,000.00,1.00 -0399,-043.61,+20.00,01.00,000.00,1.00 -0400,-042.82,+20.00,01.00,000.00,1.00 -0401,-042.03,+20.00,01.00,000.00,1.00 -0402,-041.23,+20.00,01.00,000.00,1.00 -0403,-040.44,+20.00,01.00,000.00,1.00 -0404,-039.65,+20.00,01.00,000.00,1.00 -0405,-038.85,+20.00,01.00,000.00,1.00 -0406,-038.06,+20.00,01.00,000.00,1.00 -0407,-037.27,+20.00,01.00,000.00,1.00 -0408,-036.48,+20.00,01.00,000.00,1.00 -0409,-035.68,+20.00,01.00,000.00,1.00 -0410,-034.89,+20.00,01.00,000.00,1.00 -0411,-034.10,+20.00,01.00,000.00,1.00 -0412,-033.30,+20.00,01.00,000.00,1.00 -0413,-032.51,+20.00,01.00,000.00,1.00 -0414,-031.72,+20.00,01.00,000.00,1.00 -0415,-030.93,+20.00,01.00,000.00,1.00 -0416,-030.13,+20.00,01.00,000.00,1.00 -0417,-029.34,+20.00,01.00,000.00,1.00 -0418,-028.55,+20.00,01.00,000.00,1.00 -0419,-027.75,+20.00,01.00,000.00,1.00 -0420,-026.96,+20.00,01.00,000.00,1.00 -0421,-026.17,+20.00,01.00,000.00,1.00 -0422,-025.37,+20.00,01.00,000.00,1.00 -0423,-024.58,+20.00,01.00,000.00,1.00 -0424,-023.79,+20.00,01.00,000.00,1.00 -0425,-023.00,+20.00,01.00,000.00,1.00 -0426,-022.20,+20.00,01.00,000.00,1.00 -0427,-021.41,+20.00,01.00,000.00,1.00 -0428,-020.62,+20.00,01.00,000.00,1.00 -0429,-019.82,+20.00,01.00,000.00,1.00 -0430,-019.03,+20.00,01.00,000.00,1.00 -0431,-018.24,+20.00,01.00,000.00,1.00 -0432,-017.44,+20.00,01.00,000.00,1.00 -0433,-016.65,+20.00,01.00,000.00,1.00 -0434,-015.86,+20.00,01.00,000.00,1.00 -0435,-015.07,+20.00,01.00,000.00,1.00 -0436,-014.27,+20.00,01.00,000.00,1.00 -0437,-013.48,+20.00,01.00,000.00,1.00 -0438,-012.69,+20.00,01.00,000.00,1.00 -0439,-011.89,+20.00,01.00,000.00,1.00 -0440,-011.10,+20.00,01.00,000.00,1.00 -0441,-010.31,+20.00,01.00,000.00,1.00 -0442,-009.52,+20.00,01.00,000.00,1.00 -0443,-008.72,+20.00,01.00,000.00,1.00 -0444,-007.93,+20.00,01.00,000.00,1.00 -0445,-007.14,+20.00,01.00,000.00,1.00 -0446,-006.34,+20.00,01.00,000.00,1.00 -0447,-005.55,+20.00,01.00,000.00,1.00 -0448,-004.76,+20.00,01.00,000.00,1.00 -0449,-003.96,+20.00,01.00,000.00,1.00 -0450,-003.17,+20.00,01.00,000.00,1.00 -0451,-002.38,+20.00,01.00,000.00,1.00 -0452,-001.59,+20.00,01.00,000.00,1.00 -0453,-000.79,+20.00,01.00,000.00,1.00 -0454,-000.00,+20.00,01.00,000.00,1.00 -0455,+000.79,+20.00,01.00,000.00,1.00 -0456,+001.59,+20.00,01.00,000.00,1.00 -0457,+002.38,+20.00,01.00,000.00,1.00 -0458,+003.17,+20.00,01.00,000.00,1.00 -0459,+003.96,+20.00,01.00,000.00,1.00 -0460,+004.76,+20.00,01.00,000.00,1.00 -0461,+005.55,+20.00,01.00,000.00,1.00 -0462,+006.34,+20.00,01.00,000.00,1.00 -0463,+007.14,+20.00,01.00,000.00,1.00 -0464,+007.93,+20.00,01.00,000.00,1.00 -0465,+008.72,+20.00,01.00,000.00,1.00 -0466,+009.52,+20.00,01.00,000.00,1.00 -0467,+010.31,+20.00,01.00,000.00,1.00 -0468,+011.10,+20.00,01.00,000.00,1.00 -0469,+011.89,+20.00,01.00,000.00,1.00 -0470,+012.69,+20.00,01.00,000.00,1.00 -0471,+013.48,+20.00,01.00,000.00,1.00 -0472,+014.27,+20.00,01.00,000.00,1.00 -0473,+015.07,+20.00,01.00,000.00,1.00 -0474,+015.86,+20.00,01.00,000.00,1.00 -0475,+016.65,+20.00,01.00,000.00,1.00 -0476,+017.44,+20.00,01.00,000.00,1.00 -0477,+018.24,+20.00,01.00,000.00,1.00 -0478,+019.03,+20.00,01.00,000.00,1.00 -0479,+019.82,+20.00,01.00,000.00,1.00 -0480,+020.62,+20.00,01.00,000.00,1.00 -0481,+021.41,+20.00,01.00,000.00,1.00 -0482,+022.20,+20.00,01.00,000.00,1.00 -0483,+023.00,+20.00,01.00,000.00,1.00 -0484,+023.79,+20.00,01.00,000.00,1.00 -0485,+024.58,+20.00,01.00,000.00,1.00 -0486,+025.37,+20.00,01.00,000.00,1.00 -0487,+026.17,+20.00,01.00,000.00,1.00 -0488,+026.96,+20.00,01.00,000.00,1.00 -0489,+027.75,+20.00,01.00,000.00,1.00 -0490,+028.55,+20.00,01.00,000.00,1.00 -0491,+029.34,+20.00,01.00,000.00,1.00 -0492,+030.13,+20.00,01.00,000.00,1.00 -0493,+030.93,+20.00,01.00,000.00,1.00 -0494,+031.72,+20.00,01.00,000.00,1.00 -0495,+032.51,+20.00,01.00,000.00,1.00 -0496,+033.30,+20.00,01.00,000.00,1.00 -0497,+034.10,+20.00,01.00,000.00,1.00 -0498,+034.89,+20.00,01.00,000.00,1.00 -0499,+035.68,+20.00,01.00,000.00,1.00 -0500,+036.48,+20.00,01.00,000.00,1.00 -0501,+037.27,+20.00,01.00,000.00,1.00 -0502,+038.06,+20.00,01.00,000.00,1.00 -0503,+038.85,+20.00,01.00,000.00,1.00 -0504,+039.65,+20.00,01.00,000.00,1.00 -0505,+040.44,+20.00,01.00,000.00,1.00 -0506,+041.23,+20.00,01.00,000.00,1.00 -0507,+042.03,+20.00,01.00,000.00,1.00 -0508,+042.82,+20.00,01.00,000.00,1.00 -0509,+043.61,+20.00,01.00,000.00,1.00 -0510,+044.41,+20.00,01.00,000.00,1.00 -0511,+045.20,+20.00,01.00,000.00,1.00 -0512,+045.99,+20.00,01.00,000.00,1.00 -0513,+046.78,+20.00,01.00,000.00,1.00 -0514,+047.58,+20.00,01.00,000.00,1.00 -0515,+048.37,+20.00,01.00,000.00,1.00 -0516,+049.16,+20.00,01.00,000.00,1.00 -0517,+049.96,+20.00,01.00,000.00,1.00 -0518,+050.75,+20.00,01.00,000.00,1.00 -0519,+051.54,+20.00,01.00,000.00,1.00 -0520,+052.33,+20.00,01.00,000.00,1.00 -0521,+053.13,+20.00,01.00,000.00,1.00 -0522,+053.92,+20.00,01.00,000.00,1.00 -0523,+054.71,+20.00,01.00,000.00,1.00 -0524,+055.51,+20.00,01.00,000.00,1.00 -0525,+056.30,+20.00,01.00,000.00,1.00 -0526,+057.09,+20.00,01.00,000.00,1.00 -0527,+057.89,+20.00,01.00,000.00,1.00 -0528,+058.68,+20.00,01.00,000.00,1.00 -0529,+059.47,+20.00,01.00,000.00,1.00 -0530,+060.26,+20.00,01.00,000.00,1.00 -0531,+061.06,+20.00,01.00,000.00,1.00 -0532,+061.85,+20.00,01.00,000.00,1.00 -0533,+062.64,+20.00,01.00,000.00,1.00 -0534,+063.44,+20.00,01.00,000.00,1.00 -0535,+064.23,+20.00,01.00,000.00,1.00 -0536,+065.02,+20.00,01.00,000.00,1.00 -0537,+065.81,+20.00,01.00,000.00,1.00 -0538,+066.61,+20.00,01.00,000.00,1.00 -0539,+067.40,+20.00,01.00,000.00,1.00 -0540,+068.19,+20.00,01.00,000.00,1.00 -0541,+068.99,+20.00,01.00,000.00,1.00 -0542,+069.78,+20.00,01.00,000.00,1.00 -0543,+070.57,+20.00,01.00,000.00,1.00 -0544,+071.37,+20.00,01.00,000.00,1.00 -0545,+072.16,+20.00,01.00,000.00,1.00 -0546,+072.95,+20.00,01.00,000.00,1.00 -0547,+073.74,+20.00,01.00,000.00,1.00 -0548,+074.54,+20.00,01.00,000.00,1.00 -0549,+075.33,+20.00,01.00,000.00,1.00 -0550,+076.12,+20.00,01.00,000.00,1.00 -0551,+076.92,+20.00,01.00,000.00,1.00 -0552,+077.71,+20.00,01.00,000.00,1.00 -0553,+078.50,+20.00,01.00,000.00,1.00 -0554,+079.30,+20.00,01.00,000.00,1.00 -0555,+080.09,+20.00,01.00,000.00,1.00 -0556,+080.88,+20.00,01.00,000.00,1.00 -0557,+081.67,+20.00,01.00,000.00,1.00 -0558,+082.47,+20.00,01.00,000.00,1.00 -0559,+083.26,+20.00,01.00,000.00,1.00 -0560,+084.05,+20.00,01.00,000.00,1.00 -0561,+084.85,+20.00,01.00,000.00,1.00 -0562,+085.64,+20.00,01.00,000.00,1.00 -0563,+086.43,+20.00,01.00,000.00,1.00 -0564,+087.22,+20.00,01.00,000.00,1.00 -0565,+088.02,+20.00,01.00,000.00,1.00 -0566,+088.81,+20.00,01.00,000.00,1.00 -0567,+089.60,+20.00,01.00,000.00,1.00 -0568,+090.40,+20.00,01.00,000.00,1.00 -0569,+091.19,+20.00,01.00,000.00,1.00 -0570,+091.98,+20.00,01.00,000.00,1.00 -0571,+092.78,+20.00,01.00,000.00,1.00 -0572,+093.57,+20.00,01.00,000.00,1.00 -0573,+094.36,+20.00,01.00,000.00,1.00 -0574,+095.15,+20.00,01.00,000.00,1.00 -0575,+095.95,+20.00,01.00,000.00,1.00 -0576,+096.74,+20.00,01.00,000.00,1.00 -0577,+097.53,+20.00,01.00,000.00,1.00 -0578,+098.33,+20.00,01.00,000.00,1.00 -0579,+099.12,+20.00,01.00,000.00,1.00 -0580,+099.91,+20.00,01.00,000.00,1.00 -0581,+100.70,+20.00,01.00,000.00,1.00 -0582,+101.50,+20.00,01.00,000.00,1.00 -0583,+102.29,+20.00,01.00,000.00,1.00 -0584,+103.08,+20.00,01.00,000.00,1.00 -0585,+103.88,+20.00,01.00,000.00,1.00 -0586,+104.67,+20.00,01.00,000.00,1.00 -0587,+105.46,+20.00,01.00,000.00,1.00 -0588,+106.26,+20.00,01.00,000.00,1.00 -0589,+107.05,+20.00,01.00,000.00,1.00 -0590,+107.84,+20.00,01.00,000.00,1.00 -0591,+108.63,+20.00,01.00,000.00,1.00 -0592,+109.43,+20.00,01.00,000.00,1.00 -0593,+110.22,+20.00,01.00,000.00,1.00 -0594,+111.01,+20.00,01.00,000.00,1.00 -0595,+111.81,+20.00,01.00,000.00,1.00 -0596,+112.60,+20.00,01.00,000.00,1.00 -0597,+113.39,+20.00,01.00,000.00,1.00 -0598,+114.19,+20.00,01.00,000.00,1.00 -0599,+114.98,+20.00,01.00,000.00,1.00 -0600,+115.77,+20.00,01.00,000.00,1.00 -0601,+116.56,+20.00,01.00,000.00,1.00 -0602,+117.36,+20.00,01.00,000.00,1.00 -0603,+118.15,+20.00,01.00,000.00,1.00 -0604,+118.94,+20.00,01.00,000.00,1.00 -0605,+119.74,+20.00,01.00,000.00,1.00 -0606,+120.53,+20.00,01.00,000.00,1.00 -0607,+121.32,+20.00,01.00,000.00,1.00 -0608,+122.11,+20.00,01.00,000.00,1.00 -0609,+122.91,+20.00,01.00,000.00,1.00 -0610,+123.70,+20.00,01.00,000.00,1.00 -0611,+124.49,+20.00,01.00,000.00,1.00 -0612,+125.29,+20.00,01.00,000.00,1.00 -0613,+126.08,+20.00,01.00,000.00,1.00 -0614,+126.87,+20.00,01.00,000.00,1.00 -0615,+127.67,+20.00,01.00,000.00,1.00 -0616,+128.46,+20.00,01.00,000.00,1.00 -0617,+129.25,+20.00,01.00,000.00,1.00 -0618,+130.04,+20.00,01.00,000.00,1.00 -0619,+130.84,+20.00,01.00,000.00,1.00 -0620,+131.63,+20.00,01.00,000.00,1.00 -0621,+132.42,+20.00,01.00,000.00,1.00 -0622,+133.22,+20.00,01.00,000.00,1.00 -0623,+134.01,+20.00,01.00,000.00,1.00 -0624,+134.80,+20.00,01.00,000.00,1.00 -0625,+135.59,+20.00,01.00,000.00,1.00 -0626,+136.39,+20.00,01.00,000.00,1.00 -0627,+137.18,+20.00,01.00,000.00,1.00 -0628,+137.97,+20.00,01.00,000.00,1.00 -0629,+138.77,+20.00,01.00,000.00,1.00 -0630,+139.56,+20.00,01.00,000.00,1.00 -0631,+140.35,+20.00,01.00,000.00,1.00 -0632,+141.15,+20.00,01.00,000.00,1.00 -0633,+141.94,+20.00,01.00,000.00,1.00 -0634,+142.73,+20.00,01.00,000.00,1.00 -0635,+143.52,+20.00,01.00,000.00,1.00 -0636,+144.32,+20.00,01.00,000.00,1.00 -0637,+145.11,+20.00,01.00,000.00,1.00 -0638,+145.90,+20.00,01.00,000.00,1.00 -0639,+146.70,+20.00,01.00,000.00,1.00 -0640,+147.49,+20.00,01.00,000.00,1.00 -0641,+148.28,+20.00,01.00,000.00,1.00 -0642,+149.07,+20.00,01.00,000.00,1.00 -0643,+149.87,+20.00,01.00,000.00,1.00 -0644,+150.66,+20.00,01.00,000.00,1.00 -0645,+151.45,+20.00,01.00,000.00,1.00 -0646,+152.25,+20.00,01.00,000.00,1.00 -0647,+153.04,+20.00,01.00,000.00,1.00 -0648,+153.83,+20.00,01.00,000.00,1.00 -0649,+154.63,+20.00,01.00,000.00,1.00 -0650,+155.42,+20.00,01.00,000.00,1.00 -0651,+156.21,+20.00,01.00,000.00,1.00 -0652,+157.00,+20.00,01.00,000.00,1.00 -0653,+157.80,+20.00,01.00,000.00,1.00 -0654,+158.59,+20.00,01.00,000.00,1.00 -0655,+159.38,+20.00,01.00,000.00,1.00 -0656,+160.18,+20.00,01.00,000.00,1.00 -0657,+160.97,+20.00,01.00,000.00,1.00 -0658,+161.76,+20.00,01.00,000.00,1.00 -0659,+162.56,+20.00,01.00,000.00,1.00 -0660,+163.35,+20.00,01.00,000.00,1.00 -0661,+164.14,+20.00,01.00,000.00,1.00 -0662,+164.93,+20.00,01.00,000.00,1.00 -0663,+165.73,+20.00,01.00,000.00,1.00 -0664,+166.52,+20.00,01.00,000.00,1.00 -0665,+167.31,+20.00,01.00,000.00,1.00 -0666,+168.11,+20.00,01.00,000.00,1.00 -0667,+168.90,+20.00,01.00,000.00,1.00 -0668,+169.69,+20.00,01.00,000.00,1.00 -0669,+170.48,+20.00,01.00,000.00,1.00 -0670,+171.28,+20.00,01.00,000.00,1.00 -0671,+172.07,+20.00,01.00,000.00,1.00 -0672,+172.86,+20.00,01.00,000.00,1.00 -0673,+173.66,+20.00,01.00,000.00,1.00 -0674,+174.45,+20.00,01.00,000.00,1.00 -0675,+175.24,+20.00,01.00,000.00,1.00 -0676,+176.04,+20.00,01.00,000.00,1.00 -0677,+176.83,+20.00,01.00,000.00,1.00 -0678,+177.62,+20.00,01.00,000.00,1.00 -0679,+178.41,+20.00,01.00,000.00,1.00 -0680,+179.21,+20.00,01.00,000.00,1.00 -0681,+180.00,+20.00,01.00,000.00,1.00 -0682,-179.21,+20.00,01.00,000.00,1.00 -0683,-178.41,+20.00,01.00,000.00,1.00 -0684,-177.62,+20.00,01.00,000.00,1.00 -0685,-176.83,+20.00,01.00,000.00,1.00 -0686,-176.04,+20.00,01.00,000.00,1.00 -0687,-175.24,+20.00,01.00,000.00,1.00 -0688,-174.45,+20.00,01.00,000.00,1.00 -0689,-173.66,+20.00,01.00,000.00,1.00 -0690,-172.86,+20.00,01.00,000.00,1.00 -0691,-172.07,+20.00,01.00,000.00,1.00 -0692,-171.28,+20.00,01.00,000.00,1.00 -0693,-170.48,+20.00,01.00,000.00,1.00 -0694,-169.69,+20.00,01.00,000.00,1.00 -0695,-168.90,+20.00,01.00,000.00,1.00 -0696,-168.11,+20.00,01.00,000.00,1.00 -0697,-167.31,+20.00,01.00,000.00,1.00 -0698,-166.52,+20.00,01.00,000.00,1.00 -0699,-165.73,+20.00,01.00,000.00,1.00 -0700,-164.93,+20.00,01.00,000.00,1.00 -0701,-164.14,+20.00,01.00,000.00,1.00 -0702,-163.35,+20.00,01.00,000.00,1.00 -0703,-162.56,+20.00,01.00,000.00,1.00 -0704,-161.76,+20.00,01.00,000.00,1.00 -0705,-160.97,+20.00,01.00,000.00,1.00 -0706,-160.18,+20.00,01.00,000.00,1.00 -0707,-159.38,+20.00,01.00,000.00,1.00 -0708,-158.59,+20.00,01.00,000.00,1.00 -0709,-157.80,+20.00,01.00,000.00,1.00 -0710,-157.00,+20.00,01.00,000.00,1.00 -0711,-156.21,+20.00,01.00,000.00,1.00 -0712,-155.42,+20.00,01.00,000.00,1.00 -0713,-154.63,+20.00,01.00,000.00,1.00 -0714,-153.83,+20.00,01.00,000.00,1.00 -0715,-153.04,+20.00,01.00,000.00,1.00 -0716,-152.25,+20.00,01.00,000.00,1.00 -0717,-151.45,+20.00,01.00,000.00,1.00 -0718,-150.66,+20.00,01.00,000.00,1.00 -0719,-149.87,+20.00,01.00,000.00,1.00 -0720,-149.07,+20.00,01.00,000.00,1.00 -0721,-148.28,+20.00,01.00,000.00,1.00 -0722,-147.49,+20.00,01.00,000.00,1.00 -0723,-146.70,+20.00,01.00,000.00,1.00 -0724,-145.90,+20.00,01.00,000.00,1.00 -0725,-145.11,+20.00,01.00,000.00,1.00 -0726,-144.32,+20.00,01.00,000.00,1.00 -0727,-143.52,+20.00,01.00,000.00,1.00 -0728,-142.73,+20.00,01.00,000.00,1.00 -0729,-141.94,+20.00,01.00,000.00,1.00 -0730,-141.15,+20.00,01.00,000.00,1.00 -0731,-140.35,+20.00,01.00,000.00,1.00 -0732,-139.56,+20.00,01.00,000.00,1.00 -0733,-138.77,+20.00,01.00,000.00,1.00 -0734,-137.97,+20.00,01.00,000.00,1.00 -0735,-137.18,+20.00,01.00,000.00,1.00 -0736,-136.39,+20.00,01.00,000.00,1.00 -0737,-135.59,+20.00,01.00,000.00,1.00 -0738,-134.80,+20.00,01.00,000.00,1.00 -0739,-134.01,+20.00,01.00,000.00,1.00 -0740,-133.22,+20.00,01.00,000.00,1.00 -0741,-132.42,+20.00,01.00,000.00,1.00 -0742,-131.63,+20.00,01.00,000.00,1.00 -0743,-130.84,+20.00,01.00,000.00,1.00 -0744,-130.04,+20.00,01.00,000.00,1.00 -0745,-129.25,+20.00,01.00,000.00,1.00 -0746,-128.46,+20.00,01.00,000.00,1.00 -0747,-127.67,+20.00,01.00,000.00,1.00 -0748,-126.87,+20.00,01.00,000.00,1.00 -0749,-126.08,+20.00,01.00,000.00,1.00 -0750,-125.29,+20.00,01.00,000.00,1.00 -0751,-124.49,+20.00,01.00,000.00,1.00 -0752,-123.70,+20.00,01.00,000.00,1.00 -0753,-122.91,+20.00,01.00,000.00,1.00 -0754,-122.11,+20.00,01.00,000.00,1.00 -0755,-121.32,+20.00,01.00,000.00,1.00 -0756,-120.53,+20.00,01.00,000.00,1.00 -0757,-119.74,+20.00,01.00,000.00,1.00 -0758,-118.94,+20.00,01.00,000.00,1.00 -0759,-118.15,+20.00,01.00,000.00,1.00 -0760,-117.36,+20.00,01.00,000.00,1.00 -0761,-116.56,+20.00,01.00,000.00,1.00 -0762,-115.77,+20.00,01.00,000.00,1.00 -0763,-114.98,+20.00,01.00,000.00,1.00 -0764,-114.19,+20.00,01.00,000.00,1.00 -0765,-113.39,+20.00,01.00,000.00,1.00 -0766,-112.60,+20.00,01.00,000.00,1.00 -0767,-111.81,+20.00,01.00,000.00,1.00 -0768,-111.01,+20.00,01.00,000.00,1.00 -0769,-110.22,+20.00,01.00,000.00,1.00 -0770,-109.43,+20.00,01.00,000.00,1.00 -0771,-108.63,+20.00,01.00,000.00,1.00 -0772,-107.84,+20.00,01.00,000.00,1.00 -0773,-107.05,+20.00,01.00,000.00,1.00 -0774,-106.26,+20.00,01.00,000.00,1.00 -0775,-105.46,+20.00,01.00,000.00,1.00 -0776,-104.67,+20.00,01.00,000.00,1.00 -0777,-103.88,+20.00,01.00,000.00,1.00 -0778,-103.08,+20.00,01.00,000.00,1.00 -0779,-102.29,+20.00,01.00,000.00,1.00 -0780,-101.50,+20.00,01.00,000.00,1.00 -0781,-100.70,+20.00,01.00,000.00,1.00 -0782,-099.91,+20.00,01.00,000.00,1.00 -0783,-099.12,+20.00,01.00,000.00,1.00 -0784,-098.33,+20.00,01.00,000.00,1.00 -0785,-097.53,+20.00,01.00,000.00,1.00 -0786,-096.74,+20.00,01.00,000.00,1.00 -0787,-095.95,+20.00,01.00,000.00,1.00 -0788,-095.15,+20.00,01.00,000.00,1.00 -0789,-094.36,+20.00,01.00,000.00,1.00 -0790,-093.57,+20.00,01.00,000.00,1.00 -0791,-092.78,+20.00,01.00,000.00,1.00 -0792,-091.98,+20.00,01.00,000.00,1.00 -0793,-091.19,+20.00,01.00,000.00,1.00 -0794,-090.40,+20.00,01.00,000.00,1.00 -0795,-089.60,+20.00,01.00,000.00,1.00 -0796,-088.81,+20.00,01.00,000.00,1.00 -0797,-088.02,+20.00,01.00,000.00,1.00 -0798,-087.22,+20.00,01.00,000.00,1.00 -0799,-086.43,+20.00,01.00,000.00,1.00 -0800,-085.64,+20.00,01.00,000.00,1.00 -0801,-084.85,+20.00,01.00,000.00,1.00 -0802,-084.05,+20.00,01.00,000.00,1.00 -0803,-083.26,+20.00,01.00,000.00,1.00 -0804,-082.47,+20.00,01.00,000.00,1.00 -0805,-081.67,+20.00,01.00,000.00,1.00 -0806,-080.88,+20.00,01.00,000.00,1.00 -0807,-080.09,+20.00,01.00,000.00,1.00 -0808,-079.30,+20.00,01.00,000.00,1.00 -0809,-078.50,+20.00,01.00,000.00,1.00 -0810,-077.71,+20.00,01.00,000.00,1.00 -0811,-076.92,+20.00,01.00,000.00,1.00 -0812,-076.12,+20.00,01.00,000.00,1.00 -0813,-075.33,+20.00,01.00,000.00,1.00 -0814,-074.54,+20.00,01.00,000.00,1.00 -0815,-073.74,+20.00,01.00,000.00,1.00 -0816,-072.95,+20.00,01.00,000.00,1.00 -0817,-072.16,+20.00,01.00,000.00,1.00 -0818,-071.37,+20.00,01.00,000.00,1.00 -0819,-070.57,+20.00,01.00,000.00,1.00 -0820,-069.78,+20.00,01.00,000.00,1.00 -0821,-068.99,+20.00,01.00,000.00,1.00 -0822,-068.19,+20.00,01.00,000.00,1.00 -0823,-067.40,+20.00,01.00,000.00,1.00 -0824,-066.61,+20.00,01.00,000.00,1.00 -0825,-065.81,+20.00,01.00,000.00,1.00 -0826,-065.02,+20.00,01.00,000.00,1.00 -0827,-064.23,+20.00,01.00,000.00,1.00 -0828,-063.44,+20.00,01.00,000.00,1.00 -0829,-062.64,+20.00,01.00,000.00,1.00 -0830,-061.85,+20.00,01.00,000.00,1.00 -0831,-061.06,+20.00,01.00,000.00,1.00 -0832,-060.26,+20.00,01.00,000.00,1.00 -0833,-059.47,+20.00,01.00,000.00,1.00 -0834,-058.68,+20.00,01.00,000.00,1.00 -0835,-057.89,+20.00,01.00,000.00,1.00 -0836,-057.09,+20.00,01.00,000.00,1.00 -0837,-056.30,+20.00,01.00,000.00,1.00 -0838,-055.51,+20.00,01.00,000.00,1.00 -0839,-054.71,+20.00,01.00,000.00,1.00 -0840,-053.92,+20.00,01.00,000.00,1.00 -0841,-053.13,+20.00,01.00,000.00,1.00 -0842,-052.33,+20.00,01.00,000.00,1.00 -0843,-051.54,+20.00,01.00,000.00,1.00 -0844,-050.75,+20.00,01.00,000.00,1.00 -0845,-049.96,+20.00,01.00,000.00,1.00 -0846,-049.16,+20.00,01.00,000.00,1.00 -0847,-048.37,+20.00,01.00,000.00,1.00 -0848,-047.58,+20.00,01.00,000.00,1.00 -0849,-046.78,+20.00,01.00,000.00,1.00 -0850,-045.99,+20.00,01.00,000.00,1.00 -0851,-045.20,+20.00,01.00,000.00,1.00 -0852,-044.41,+20.00,01.00,000.00,1.00 -0853,-043.61,+20.00,01.00,000.00,1.00 -0854,-042.82,+20.00,01.00,000.00,1.00 -0855,-042.03,+20.00,01.00,000.00,1.00 -0856,-041.23,+20.00,01.00,000.00,1.00 -0857,-040.44,+20.00,01.00,000.00,1.00 -0858,-039.65,+20.00,01.00,000.00,1.00 -0859,-038.85,+20.00,01.00,000.00,1.00 -0860,-038.06,+20.00,01.00,000.00,1.00 -0861,-037.27,+20.00,01.00,000.00,1.00 -0862,-036.48,+20.00,01.00,000.00,1.00 -0863,-035.68,+20.00,01.00,000.00,1.00 -0864,-034.89,+20.00,01.00,000.00,1.00 -0865,-034.10,+20.00,01.00,000.00,1.00 -0866,-033.30,+20.00,01.00,000.00,1.00 -0867,-032.51,+20.00,01.00,000.00,1.00 -0868,-031.72,+20.00,01.00,000.00,1.00 -0869,-030.93,+20.00,01.00,000.00,1.00 -0870,-030.13,+20.00,01.00,000.00,1.00 -0871,-029.34,+20.00,01.00,000.00,1.00 -0872,-028.55,+20.00,01.00,000.00,1.00 -0873,-027.75,+20.00,01.00,000.00,1.00 -0874,-026.96,+20.00,01.00,000.00,1.00 -0875,-026.17,+20.00,01.00,000.00,1.00 -0876,-025.37,+20.00,01.00,000.00,1.00 -0877,-024.58,+20.00,01.00,000.00,1.00 -0878,-023.79,+20.00,01.00,000.00,1.00 -0879,-023.00,+20.00,01.00,000.00,1.00 -0880,-022.20,+20.00,01.00,000.00,1.00 -0881,-021.41,+20.00,01.00,000.00,1.00 -0882,-020.62,+20.00,01.00,000.00,1.00 -0883,-019.82,+20.00,01.00,000.00,1.00 -0884,-019.03,+20.00,01.00,000.00,1.00 -0885,-018.24,+20.00,01.00,000.00,1.00 -0886,-017.44,+20.00,01.00,000.00,1.00 -0887,-016.65,+20.00,01.00,000.00,1.00 -0888,-015.86,+20.00,01.00,000.00,1.00 -0889,-015.07,+20.00,01.00,000.00,1.00 -0890,-014.27,+20.00,01.00,000.00,1.00 -0891,-013.48,+20.00,01.00,000.00,1.00 -0892,-012.69,+20.00,01.00,000.00,1.00 -0893,-011.89,+20.00,01.00,000.00,1.00 -0894,-011.10,+20.00,01.00,000.00,1.00 -0895,-010.31,+20.00,01.00,000.00,1.00 -0896,-009.52,+20.00,01.00,000.00,1.00 -0897,-008.72,+20.00,01.00,000.00,1.00 -0898,-007.93,+20.00,01.00,000.00,1.00 -0899,-007.14,+20.00,01.00,000.00,1.00 -0900,-006.34,+20.00,01.00,000.00,1.00 -0901,-005.55,+20.00,01.00,000.00,1.00 -0902,-004.76,+20.00,01.00,000.00,1.00 -0903,-003.96,+20.00,01.00,000.00,1.00 -0904,-003.17,+20.00,01.00,000.00,1.00 -0905,-002.38,+20.00,01.00,000.00,1.00 -0906,-001.59,+20.00,01.00,000.00,1.00 -0907,-000.79,+20.00,01.00,000.00,1.00 -0908,-000.00,+20.00,01.00,000.00,1.00 -0909,+000.79,+20.00,01.00,000.00,1.00 -0910,+001.59,+20.00,01.00,000.00,1.00 -0911,+002.38,+20.00,01.00,000.00,1.00 -0912,+003.17,+20.00,01.00,000.00,1.00 -0913,+003.96,+20.00,01.00,000.00,1.00 -0914,+004.76,+20.00,01.00,000.00,1.00 -0915,+005.55,+20.00,01.00,000.00,1.00 -0916,+006.34,+20.00,01.00,000.00,1.00 -0917,+007.14,+20.00,01.00,000.00,1.00 -0918,+007.93,+20.00,01.00,000.00,1.00 -0919,+008.72,+20.00,01.00,000.00,1.00 -0920,+009.52,+20.00,01.00,000.00,1.00 -0921,+010.31,+20.00,01.00,000.00,1.00 -0922,+011.10,+20.00,01.00,000.00,1.00 -0923,+011.89,+20.00,01.00,000.00,1.00 -0924,+012.69,+20.00,01.00,000.00,1.00 -0925,+013.48,+20.00,01.00,000.00,1.00 -0926,+014.27,+20.00,01.00,000.00,1.00 -0927,+015.07,+20.00,01.00,000.00,1.00 -0928,+015.86,+20.00,01.00,000.00,1.00 -0929,+016.65,+20.00,01.00,000.00,1.00 -0930,+017.44,+20.00,01.00,000.00,1.00 -0931,+018.24,+20.00,01.00,000.00,1.00 -0932,+019.03,+20.00,01.00,000.00,1.00 -0933,+019.82,+20.00,01.00,000.00,1.00 -0934,+020.62,+20.00,01.00,000.00,1.00 -0935,+021.41,+20.00,01.00,000.00,1.00 -0936,+022.20,+20.00,01.00,000.00,1.00 -0937,+023.00,+20.00,01.00,000.00,1.00 -0938,+023.79,+20.00,01.00,000.00,1.00 -0939,+024.58,+20.00,01.00,000.00,1.00 -0940,+025.37,+20.00,01.00,000.00,1.00 -0941,+026.17,+20.00,01.00,000.00,1.00 -0942,+026.96,+20.00,01.00,000.00,1.00 -0943,+027.75,+20.00,01.00,000.00,1.00 -0944,+028.55,+20.00,01.00,000.00,1.00 -0945,+029.34,+20.00,01.00,000.00,1.00 -0946,+030.13,+20.00,01.00,000.00,1.00 -0947,+030.93,+20.00,01.00,000.00,1.00 -0948,+031.72,+20.00,01.00,000.00,1.00 -0949,+032.51,+20.00,01.00,000.00,1.00 -0950,+033.30,+20.00,01.00,000.00,1.00 -0951,+034.10,+20.00,01.00,000.00,1.00 -0952,+034.89,+20.00,01.00,000.00,1.00 -0953,+035.68,+20.00,01.00,000.00,1.00 -0954,+036.48,+20.00,01.00,000.00,1.00 -0955,+037.27,+20.00,01.00,000.00,1.00 -0956,+038.06,+20.00,01.00,000.00,1.00 -0957,+038.85,+20.00,01.00,000.00,1.00 -0958,+039.65,+20.00,01.00,000.00,1.00 -0959,+040.44,+20.00,01.00,000.00,1.00 -0960,+041.23,+20.00,01.00,000.00,1.00 -0961,+042.03,+20.00,01.00,000.00,1.00 -0962,+042.82,+20.00,01.00,000.00,1.00 -0963,+043.61,+20.00,01.00,000.00,1.00 -0964,+044.41,+20.00,01.00,000.00,1.00 -0965,+045.20,+20.00,01.00,000.00,1.00 -0966,+045.99,+20.00,01.00,000.00,1.00 -0967,+046.78,+20.00,01.00,000.00,1.00 -0968,+047.58,+20.00,01.00,000.00,1.00 -0969,+048.37,+20.00,01.00,000.00,1.00 -0970,+049.16,+20.00,01.00,000.00,1.00 -0971,+049.96,+20.00,01.00,000.00,1.00 -0972,+050.75,+20.00,01.00,000.00,1.00 -0973,+051.54,+20.00,01.00,000.00,1.00 -0974,+052.33,+20.00,01.00,000.00,1.00 -0975,+053.13,+20.00,01.00,000.00,1.00 -0976,+053.92,+20.00,01.00,000.00,1.00 -0977,+054.71,+20.00,01.00,000.00,1.00 -0978,+055.51,+20.00,01.00,000.00,1.00 -0979,+056.30,+20.00,01.00,000.00,1.00 -0980,+057.09,+20.00,01.00,000.00,1.00 -0981,+057.89,+20.00,01.00,000.00,1.00 -0982,+058.68,+20.00,01.00,000.00,1.00 -0983,+059.47,+20.00,01.00,000.00,1.00 -0984,+060.26,+20.00,01.00,000.00,1.00 -0985,+061.06,+20.00,01.00,000.00,1.00 -0986,+061.85,+20.00,01.00,000.00,1.00 -0987,+062.64,+20.00,01.00,000.00,1.00 -0988,+063.44,+20.00,01.00,000.00,1.00 -0989,+064.23,+20.00,01.00,000.00,1.00 -0990,+065.02,+20.00,01.00,000.00,1.00 -0991,+065.81,+20.00,01.00,000.00,1.00 -0992,+066.61,+20.00,01.00,000.00,1.00 -0993,+067.40,+20.00,01.00,000.00,1.00 -0994,+068.19,+20.00,01.00,000.00,1.00 -0995,+068.99,+20.00,01.00,000.00,1.00 -0996,+069.78,+20.00,01.00,000.00,1.00 -0997,+070.57,+20.00,01.00,000.00,1.00 -0998,+071.37,+20.00,01.00,000.00,1.00 -0999,+072.16,+20.00,01.00,000.00,1.00 ++000.00,+20.00,01.00,000.00,1.00 ++000.79,+20.00,01.00,000.00,1.00 ++001.59,+20.00,01.00,000.00,1.00 ++002.38,+20.00,01.00,000.00,1.00 ++003.17,+20.00,01.00,000.00,1.00 ++003.96,+20.00,01.00,000.00,1.00 ++004.76,+20.00,01.00,000.00,1.00 ++005.55,+20.00,01.00,000.00,1.00 ++006.34,+20.00,01.00,000.00,1.00 ++007.14,+20.00,01.00,000.00,1.00 ++007.93,+20.00,01.00,000.00,1.00 ++008.72,+20.00,01.00,000.00,1.00 ++009.52,+20.00,01.00,000.00,1.00 ++010.31,+20.00,01.00,000.00,1.00 ++011.10,+20.00,01.00,000.00,1.00 ++011.89,+20.00,01.00,000.00,1.00 ++012.69,+20.00,01.00,000.00,1.00 ++013.48,+20.00,01.00,000.00,1.00 ++014.27,+20.00,01.00,000.00,1.00 ++015.07,+20.00,01.00,000.00,1.00 ++015.86,+20.00,01.00,000.00,1.00 ++016.65,+20.00,01.00,000.00,1.00 ++017.44,+20.00,01.00,000.00,1.00 ++018.24,+20.00,01.00,000.00,1.00 ++019.03,+20.00,01.00,000.00,1.00 ++019.82,+20.00,01.00,000.00,1.00 ++020.62,+20.00,01.00,000.00,1.00 ++021.41,+20.00,01.00,000.00,1.00 ++022.20,+20.00,01.00,000.00,1.00 ++023.00,+20.00,01.00,000.00,1.00 ++023.79,+20.00,01.00,000.00,1.00 ++024.58,+20.00,01.00,000.00,1.00 ++025.37,+20.00,01.00,000.00,1.00 ++026.17,+20.00,01.00,000.00,1.00 ++026.96,+20.00,01.00,000.00,1.00 ++027.75,+20.00,01.00,000.00,1.00 ++028.55,+20.00,01.00,000.00,1.00 ++029.34,+20.00,01.00,000.00,1.00 ++030.13,+20.00,01.00,000.00,1.00 ++030.93,+20.00,01.00,000.00,1.00 ++031.72,+20.00,01.00,000.00,1.00 ++032.51,+20.00,01.00,000.00,1.00 ++033.30,+20.00,01.00,000.00,1.00 ++034.10,+20.00,01.00,000.00,1.00 ++034.89,+20.00,01.00,000.00,1.00 ++035.68,+20.00,01.00,000.00,1.00 ++036.48,+20.00,01.00,000.00,1.00 ++037.27,+20.00,01.00,000.00,1.00 ++038.06,+20.00,01.00,000.00,1.00 ++038.85,+20.00,01.00,000.00,1.00 ++039.65,+20.00,01.00,000.00,1.00 ++040.44,+20.00,01.00,000.00,1.00 ++041.23,+20.00,01.00,000.00,1.00 ++042.03,+20.00,01.00,000.00,1.00 ++042.82,+20.00,01.00,000.00,1.00 ++043.61,+20.00,01.00,000.00,1.00 ++044.41,+20.00,01.00,000.00,1.00 ++045.20,+20.00,01.00,000.00,1.00 ++045.99,+20.00,01.00,000.00,1.00 ++046.78,+20.00,01.00,000.00,1.00 ++047.58,+20.00,01.00,000.00,1.00 ++048.37,+20.00,01.00,000.00,1.00 ++049.16,+20.00,01.00,000.00,1.00 ++049.96,+20.00,01.00,000.00,1.00 ++050.75,+20.00,01.00,000.00,1.00 ++051.54,+20.00,01.00,000.00,1.00 ++052.33,+20.00,01.00,000.00,1.00 ++053.13,+20.00,01.00,000.00,1.00 ++053.92,+20.00,01.00,000.00,1.00 ++054.71,+20.00,01.00,000.00,1.00 ++055.51,+20.00,01.00,000.00,1.00 ++056.30,+20.00,01.00,000.00,1.00 ++057.09,+20.00,01.00,000.00,1.00 ++057.89,+20.00,01.00,000.00,1.00 ++058.68,+20.00,01.00,000.00,1.00 ++059.47,+20.00,01.00,000.00,1.00 ++060.26,+20.00,01.00,000.00,1.00 ++061.06,+20.00,01.00,000.00,1.00 ++061.85,+20.00,01.00,000.00,1.00 ++062.64,+20.00,01.00,000.00,1.00 ++063.44,+20.00,01.00,000.00,1.00 ++064.23,+20.00,01.00,000.00,1.00 ++065.02,+20.00,01.00,000.00,1.00 ++065.81,+20.00,01.00,000.00,1.00 ++066.61,+20.00,01.00,000.00,1.00 ++067.40,+20.00,01.00,000.00,1.00 ++068.19,+20.00,01.00,000.00,1.00 ++068.99,+20.00,01.00,000.00,1.00 ++069.78,+20.00,01.00,000.00,1.00 ++070.57,+20.00,01.00,000.00,1.00 ++071.37,+20.00,01.00,000.00,1.00 ++072.16,+20.00,01.00,000.00,1.00 ++072.95,+20.00,01.00,000.00,1.00 ++073.74,+20.00,01.00,000.00,1.00 ++074.54,+20.00,01.00,000.00,1.00 ++075.33,+20.00,01.00,000.00,1.00 ++076.12,+20.00,01.00,000.00,1.00 ++076.92,+20.00,01.00,000.00,1.00 ++077.71,+20.00,01.00,000.00,1.00 ++078.50,+20.00,01.00,000.00,1.00 ++079.30,+20.00,01.00,000.00,1.00 ++080.09,+20.00,01.00,000.00,1.00 ++080.88,+20.00,01.00,000.00,1.00 ++081.67,+20.00,01.00,000.00,1.00 ++082.47,+20.00,01.00,000.00,1.00 ++083.26,+20.00,01.00,000.00,1.00 ++084.05,+20.00,01.00,000.00,1.00 ++084.85,+20.00,01.00,000.00,1.00 ++085.64,+20.00,01.00,000.00,1.00 ++086.43,+20.00,01.00,000.00,1.00 ++087.22,+20.00,01.00,000.00,1.00 ++088.02,+20.00,01.00,000.00,1.00 ++088.81,+20.00,01.00,000.00,1.00 ++089.60,+20.00,01.00,000.00,1.00 ++090.40,+20.00,01.00,000.00,1.00 ++091.19,+20.00,01.00,000.00,1.00 ++091.98,+20.00,01.00,000.00,1.00 ++092.78,+20.00,01.00,000.00,1.00 ++093.57,+20.00,01.00,000.00,1.00 ++094.36,+20.00,01.00,000.00,1.00 ++095.15,+20.00,01.00,000.00,1.00 ++095.95,+20.00,01.00,000.00,1.00 ++096.74,+20.00,01.00,000.00,1.00 ++097.53,+20.00,01.00,000.00,1.00 ++098.33,+20.00,01.00,000.00,1.00 ++099.12,+20.00,01.00,000.00,1.00 ++099.91,+20.00,01.00,000.00,1.00 ++100.70,+20.00,01.00,000.00,1.00 ++101.50,+20.00,01.00,000.00,1.00 ++102.29,+20.00,01.00,000.00,1.00 ++103.08,+20.00,01.00,000.00,1.00 ++103.88,+20.00,01.00,000.00,1.00 ++104.67,+20.00,01.00,000.00,1.00 ++105.46,+20.00,01.00,000.00,1.00 ++106.26,+20.00,01.00,000.00,1.00 ++107.05,+20.00,01.00,000.00,1.00 ++107.84,+20.00,01.00,000.00,1.00 ++108.63,+20.00,01.00,000.00,1.00 ++109.43,+20.00,01.00,000.00,1.00 ++110.22,+20.00,01.00,000.00,1.00 ++111.01,+20.00,01.00,000.00,1.00 ++111.81,+20.00,01.00,000.00,1.00 ++112.60,+20.00,01.00,000.00,1.00 ++113.39,+20.00,01.00,000.00,1.00 ++114.19,+20.00,01.00,000.00,1.00 ++114.98,+20.00,01.00,000.00,1.00 ++115.77,+20.00,01.00,000.00,1.00 ++116.56,+20.00,01.00,000.00,1.00 ++117.36,+20.00,01.00,000.00,1.00 ++118.15,+20.00,01.00,000.00,1.00 ++118.94,+20.00,01.00,000.00,1.00 ++119.74,+20.00,01.00,000.00,1.00 ++120.53,+20.00,01.00,000.00,1.00 ++121.32,+20.00,01.00,000.00,1.00 ++122.11,+20.00,01.00,000.00,1.00 ++122.91,+20.00,01.00,000.00,1.00 ++123.70,+20.00,01.00,000.00,1.00 ++124.49,+20.00,01.00,000.00,1.00 ++125.29,+20.00,01.00,000.00,1.00 ++126.08,+20.00,01.00,000.00,1.00 ++126.87,+20.00,01.00,000.00,1.00 ++127.67,+20.00,01.00,000.00,1.00 ++128.46,+20.00,01.00,000.00,1.00 ++129.25,+20.00,01.00,000.00,1.00 ++130.04,+20.00,01.00,000.00,1.00 ++130.84,+20.00,01.00,000.00,1.00 ++131.63,+20.00,01.00,000.00,1.00 ++132.42,+20.00,01.00,000.00,1.00 ++133.22,+20.00,01.00,000.00,1.00 ++134.01,+20.00,01.00,000.00,1.00 ++134.80,+20.00,01.00,000.00,1.00 ++135.59,+20.00,01.00,000.00,1.00 ++136.39,+20.00,01.00,000.00,1.00 ++137.18,+20.00,01.00,000.00,1.00 ++137.97,+20.00,01.00,000.00,1.00 ++138.77,+20.00,01.00,000.00,1.00 ++139.56,+20.00,01.00,000.00,1.00 ++140.35,+20.00,01.00,000.00,1.00 ++141.15,+20.00,01.00,000.00,1.00 ++141.94,+20.00,01.00,000.00,1.00 ++142.73,+20.00,01.00,000.00,1.00 ++143.52,+20.00,01.00,000.00,1.00 ++144.32,+20.00,01.00,000.00,1.00 ++145.11,+20.00,01.00,000.00,1.00 ++145.90,+20.00,01.00,000.00,1.00 ++146.70,+20.00,01.00,000.00,1.00 ++147.49,+20.00,01.00,000.00,1.00 ++148.28,+20.00,01.00,000.00,1.00 ++149.07,+20.00,01.00,000.00,1.00 ++149.87,+20.00,01.00,000.00,1.00 ++150.66,+20.00,01.00,000.00,1.00 ++151.45,+20.00,01.00,000.00,1.00 ++152.25,+20.00,01.00,000.00,1.00 ++153.04,+20.00,01.00,000.00,1.00 ++153.83,+20.00,01.00,000.00,1.00 ++154.63,+20.00,01.00,000.00,1.00 ++155.42,+20.00,01.00,000.00,1.00 ++156.21,+20.00,01.00,000.00,1.00 ++157.00,+20.00,01.00,000.00,1.00 ++157.80,+20.00,01.00,000.00,1.00 ++158.59,+20.00,01.00,000.00,1.00 ++159.38,+20.00,01.00,000.00,1.00 ++160.18,+20.00,01.00,000.00,1.00 ++160.97,+20.00,01.00,000.00,1.00 ++161.76,+20.00,01.00,000.00,1.00 ++162.56,+20.00,01.00,000.00,1.00 ++163.35,+20.00,01.00,000.00,1.00 ++164.14,+20.00,01.00,000.00,1.00 ++164.93,+20.00,01.00,000.00,1.00 ++165.73,+20.00,01.00,000.00,1.00 ++166.52,+20.00,01.00,000.00,1.00 ++167.31,+20.00,01.00,000.00,1.00 ++168.11,+20.00,01.00,000.00,1.00 ++168.90,+20.00,01.00,000.00,1.00 ++169.69,+20.00,01.00,000.00,1.00 ++170.48,+20.00,01.00,000.00,1.00 ++171.28,+20.00,01.00,000.00,1.00 ++172.07,+20.00,01.00,000.00,1.00 ++172.86,+20.00,01.00,000.00,1.00 ++173.66,+20.00,01.00,000.00,1.00 ++174.45,+20.00,01.00,000.00,1.00 ++175.24,+20.00,01.00,000.00,1.00 ++176.04,+20.00,01.00,000.00,1.00 ++176.83,+20.00,01.00,000.00,1.00 ++177.62,+20.00,01.00,000.00,1.00 ++178.41,+20.00,01.00,000.00,1.00 ++179.21,+20.00,01.00,000.00,1.00 ++180.00,+20.00,01.00,000.00,1.00 +-179.21,+20.00,01.00,000.00,1.00 +-178.41,+20.00,01.00,000.00,1.00 +-177.62,+20.00,01.00,000.00,1.00 +-176.83,+20.00,01.00,000.00,1.00 +-176.04,+20.00,01.00,000.00,1.00 +-175.24,+20.00,01.00,000.00,1.00 +-174.45,+20.00,01.00,000.00,1.00 +-173.66,+20.00,01.00,000.00,1.00 +-172.86,+20.00,01.00,000.00,1.00 +-172.07,+20.00,01.00,000.00,1.00 +-171.28,+20.00,01.00,000.00,1.00 +-170.48,+20.00,01.00,000.00,1.00 +-169.69,+20.00,01.00,000.00,1.00 +-168.90,+20.00,01.00,000.00,1.00 +-168.11,+20.00,01.00,000.00,1.00 +-167.31,+20.00,01.00,000.00,1.00 +-166.52,+20.00,01.00,000.00,1.00 +-165.73,+20.00,01.00,000.00,1.00 +-164.93,+20.00,01.00,000.00,1.00 +-164.14,+20.00,01.00,000.00,1.00 +-163.35,+20.00,01.00,000.00,1.00 +-162.56,+20.00,01.00,000.00,1.00 +-161.76,+20.00,01.00,000.00,1.00 +-160.97,+20.00,01.00,000.00,1.00 +-160.18,+20.00,01.00,000.00,1.00 +-159.38,+20.00,01.00,000.00,1.00 +-158.59,+20.00,01.00,000.00,1.00 +-157.80,+20.00,01.00,000.00,1.00 +-157.00,+20.00,01.00,000.00,1.00 +-156.21,+20.00,01.00,000.00,1.00 +-155.42,+20.00,01.00,000.00,1.00 +-154.63,+20.00,01.00,000.00,1.00 +-153.83,+20.00,01.00,000.00,1.00 +-153.04,+20.00,01.00,000.00,1.00 +-152.25,+20.00,01.00,000.00,1.00 +-151.45,+20.00,01.00,000.00,1.00 +-150.66,+20.00,01.00,000.00,1.00 +-149.87,+20.00,01.00,000.00,1.00 +-149.07,+20.00,01.00,000.00,1.00 +-148.28,+20.00,01.00,000.00,1.00 +-147.49,+20.00,01.00,000.00,1.00 +-146.70,+20.00,01.00,000.00,1.00 +-145.90,+20.00,01.00,000.00,1.00 +-145.11,+20.00,01.00,000.00,1.00 +-144.32,+20.00,01.00,000.00,1.00 +-143.52,+20.00,01.00,000.00,1.00 +-142.73,+20.00,01.00,000.00,1.00 +-141.94,+20.00,01.00,000.00,1.00 +-141.15,+20.00,01.00,000.00,1.00 +-140.35,+20.00,01.00,000.00,1.00 +-139.56,+20.00,01.00,000.00,1.00 +-138.77,+20.00,01.00,000.00,1.00 +-137.97,+20.00,01.00,000.00,1.00 +-137.18,+20.00,01.00,000.00,1.00 +-136.39,+20.00,01.00,000.00,1.00 +-135.59,+20.00,01.00,000.00,1.00 +-134.80,+20.00,01.00,000.00,1.00 +-134.01,+20.00,01.00,000.00,1.00 +-133.22,+20.00,01.00,000.00,1.00 +-132.42,+20.00,01.00,000.00,1.00 +-131.63,+20.00,01.00,000.00,1.00 +-130.84,+20.00,01.00,000.00,1.00 +-130.04,+20.00,01.00,000.00,1.00 +-129.25,+20.00,01.00,000.00,1.00 +-128.46,+20.00,01.00,000.00,1.00 +-127.67,+20.00,01.00,000.00,1.00 +-126.87,+20.00,01.00,000.00,1.00 +-126.08,+20.00,01.00,000.00,1.00 +-125.29,+20.00,01.00,000.00,1.00 +-124.49,+20.00,01.00,000.00,1.00 +-123.70,+20.00,01.00,000.00,1.00 +-122.91,+20.00,01.00,000.00,1.00 +-122.11,+20.00,01.00,000.00,1.00 +-121.32,+20.00,01.00,000.00,1.00 +-120.53,+20.00,01.00,000.00,1.00 +-119.74,+20.00,01.00,000.00,1.00 +-118.94,+20.00,01.00,000.00,1.00 +-118.15,+20.00,01.00,000.00,1.00 +-117.36,+20.00,01.00,000.00,1.00 +-116.56,+20.00,01.00,000.00,1.00 +-115.77,+20.00,01.00,000.00,1.00 +-114.98,+20.00,01.00,000.00,1.00 +-114.19,+20.00,01.00,000.00,1.00 +-113.39,+20.00,01.00,000.00,1.00 +-112.60,+20.00,01.00,000.00,1.00 +-111.81,+20.00,01.00,000.00,1.00 +-111.01,+20.00,01.00,000.00,1.00 +-110.22,+20.00,01.00,000.00,1.00 +-109.43,+20.00,01.00,000.00,1.00 +-108.63,+20.00,01.00,000.00,1.00 +-107.84,+20.00,01.00,000.00,1.00 +-107.05,+20.00,01.00,000.00,1.00 +-106.26,+20.00,01.00,000.00,1.00 +-105.46,+20.00,01.00,000.00,1.00 +-104.67,+20.00,01.00,000.00,1.00 +-103.88,+20.00,01.00,000.00,1.00 +-103.08,+20.00,01.00,000.00,1.00 +-102.29,+20.00,01.00,000.00,1.00 +-101.50,+20.00,01.00,000.00,1.00 +-100.70,+20.00,01.00,000.00,1.00 +-099.91,+20.00,01.00,000.00,1.00 +-099.12,+20.00,01.00,000.00,1.00 +-098.33,+20.00,01.00,000.00,1.00 +-097.53,+20.00,01.00,000.00,1.00 +-096.74,+20.00,01.00,000.00,1.00 +-095.95,+20.00,01.00,000.00,1.00 +-095.15,+20.00,01.00,000.00,1.00 +-094.36,+20.00,01.00,000.00,1.00 +-093.57,+20.00,01.00,000.00,1.00 +-092.78,+20.00,01.00,000.00,1.00 +-091.98,+20.00,01.00,000.00,1.00 +-091.19,+20.00,01.00,000.00,1.00 +-090.40,+20.00,01.00,000.00,1.00 +-089.60,+20.00,01.00,000.00,1.00 +-088.81,+20.00,01.00,000.00,1.00 +-088.02,+20.00,01.00,000.00,1.00 +-087.22,+20.00,01.00,000.00,1.00 +-086.43,+20.00,01.00,000.00,1.00 +-085.64,+20.00,01.00,000.00,1.00 +-084.85,+20.00,01.00,000.00,1.00 +-084.05,+20.00,01.00,000.00,1.00 +-083.26,+20.00,01.00,000.00,1.00 +-082.47,+20.00,01.00,000.00,1.00 +-081.67,+20.00,01.00,000.00,1.00 +-080.88,+20.00,01.00,000.00,1.00 +-080.09,+20.00,01.00,000.00,1.00 +-079.30,+20.00,01.00,000.00,1.00 +-078.50,+20.00,01.00,000.00,1.00 +-077.71,+20.00,01.00,000.00,1.00 +-076.92,+20.00,01.00,000.00,1.00 +-076.12,+20.00,01.00,000.00,1.00 +-075.33,+20.00,01.00,000.00,1.00 +-074.54,+20.00,01.00,000.00,1.00 +-073.74,+20.00,01.00,000.00,1.00 +-072.95,+20.00,01.00,000.00,1.00 +-072.16,+20.00,01.00,000.00,1.00 +-071.37,+20.00,01.00,000.00,1.00 +-070.57,+20.00,01.00,000.00,1.00 +-069.78,+20.00,01.00,000.00,1.00 +-068.99,+20.00,01.00,000.00,1.00 +-068.19,+20.00,01.00,000.00,1.00 +-067.40,+20.00,01.00,000.00,1.00 +-066.61,+20.00,01.00,000.00,1.00 +-065.81,+20.00,01.00,000.00,1.00 +-065.02,+20.00,01.00,000.00,1.00 +-064.23,+20.00,01.00,000.00,1.00 +-063.44,+20.00,01.00,000.00,1.00 +-062.64,+20.00,01.00,000.00,1.00 +-061.85,+20.00,01.00,000.00,1.00 +-061.06,+20.00,01.00,000.00,1.00 +-060.26,+20.00,01.00,000.00,1.00 +-059.47,+20.00,01.00,000.00,1.00 +-058.68,+20.00,01.00,000.00,1.00 +-057.89,+20.00,01.00,000.00,1.00 +-057.09,+20.00,01.00,000.00,1.00 +-056.30,+20.00,01.00,000.00,1.00 +-055.51,+20.00,01.00,000.00,1.00 +-054.71,+20.00,01.00,000.00,1.00 +-053.92,+20.00,01.00,000.00,1.00 +-053.13,+20.00,01.00,000.00,1.00 +-052.33,+20.00,01.00,000.00,1.00 +-051.54,+20.00,01.00,000.00,1.00 +-050.75,+20.00,01.00,000.00,1.00 +-049.96,+20.00,01.00,000.00,1.00 +-049.16,+20.00,01.00,000.00,1.00 +-048.37,+20.00,01.00,000.00,1.00 +-047.58,+20.00,01.00,000.00,1.00 +-046.78,+20.00,01.00,000.00,1.00 +-045.99,+20.00,01.00,000.00,1.00 +-045.20,+20.00,01.00,000.00,1.00 +-044.41,+20.00,01.00,000.00,1.00 +-043.61,+20.00,01.00,000.00,1.00 +-042.82,+20.00,01.00,000.00,1.00 +-042.03,+20.00,01.00,000.00,1.00 +-041.23,+20.00,01.00,000.00,1.00 +-040.44,+20.00,01.00,000.00,1.00 +-039.65,+20.00,01.00,000.00,1.00 +-038.85,+20.00,01.00,000.00,1.00 +-038.06,+20.00,01.00,000.00,1.00 +-037.27,+20.00,01.00,000.00,1.00 +-036.48,+20.00,01.00,000.00,1.00 +-035.68,+20.00,01.00,000.00,1.00 +-034.89,+20.00,01.00,000.00,1.00 +-034.10,+20.00,01.00,000.00,1.00 +-033.30,+20.00,01.00,000.00,1.00 +-032.51,+20.00,01.00,000.00,1.00 +-031.72,+20.00,01.00,000.00,1.00 +-030.93,+20.00,01.00,000.00,1.00 +-030.13,+20.00,01.00,000.00,1.00 +-029.34,+20.00,01.00,000.00,1.00 +-028.55,+20.00,01.00,000.00,1.00 +-027.75,+20.00,01.00,000.00,1.00 +-026.96,+20.00,01.00,000.00,1.00 +-026.17,+20.00,01.00,000.00,1.00 +-025.37,+20.00,01.00,000.00,1.00 +-024.58,+20.00,01.00,000.00,1.00 +-023.79,+20.00,01.00,000.00,1.00 +-023.00,+20.00,01.00,000.00,1.00 +-022.20,+20.00,01.00,000.00,1.00 +-021.41,+20.00,01.00,000.00,1.00 +-020.62,+20.00,01.00,000.00,1.00 +-019.82,+20.00,01.00,000.00,1.00 +-019.03,+20.00,01.00,000.00,1.00 +-018.24,+20.00,01.00,000.00,1.00 +-017.44,+20.00,01.00,000.00,1.00 +-016.65,+20.00,01.00,000.00,1.00 +-015.86,+20.00,01.00,000.00,1.00 +-015.07,+20.00,01.00,000.00,1.00 +-014.27,+20.00,01.00,000.00,1.00 +-013.48,+20.00,01.00,000.00,1.00 +-012.69,+20.00,01.00,000.00,1.00 +-011.89,+20.00,01.00,000.00,1.00 +-011.10,+20.00,01.00,000.00,1.00 +-010.31,+20.00,01.00,000.00,1.00 +-009.52,+20.00,01.00,000.00,1.00 +-008.72,+20.00,01.00,000.00,1.00 +-007.93,+20.00,01.00,000.00,1.00 +-007.14,+20.00,01.00,000.00,1.00 +-006.34,+20.00,01.00,000.00,1.00 +-005.55,+20.00,01.00,000.00,1.00 +-004.76,+20.00,01.00,000.00,1.00 +-003.96,+20.00,01.00,000.00,1.00 +-003.17,+20.00,01.00,000.00,1.00 +-002.38,+20.00,01.00,000.00,1.00 +-001.59,+20.00,01.00,000.00,1.00 +-000.79,+20.00,01.00,000.00,1.00 +-000.00,+20.00,01.00,000.00,1.00 ++000.79,+20.00,01.00,000.00,1.00 ++001.59,+20.00,01.00,000.00,1.00 ++002.38,+20.00,01.00,000.00,1.00 ++003.17,+20.00,01.00,000.00,1.00 ++003.96,+20.00,01.00,000.00,1.00 ++004.76,+20.00,01.00,000.00,1.00 ++005.55,+20.00,01.00,000.00,1.00 ++006.34,+20.00,01.00,000.00,1.00 ++007.14,+20.00,01.00,000.00,1.00 ++007.93,+20.00,01.00,000.00,1.00 ++008.72,+20.00,01.00,000.00,1.00 ++009.52,+20.00,01.00,000.00,1.00 ++010.31,+20.00,01.00,000.00,1.00 ++011.10,+20.00,01.00,000.00,1.00 ++011.89,+20.00,01.00,000.00,1.00 ++012.69,+20.00,01.00,000.00,1.00 ++013.48,+20.00,01.00,000.00,1.00 ++014.27,+20.00,01.00,000.00,1.00 ++015.07,+20.00,01.00,000.00,1.00 ++015.86,+20.00,01.00,000.00,1.00 ++016.65,+20.00,01.00,000.00,1.00 ++017.44,+20.00,01.00,000.00,1.00 ++018.24,+20.00,01.00,000.00,1.00 ++019.03,+20.00,01.00,000.00,1.00 ++019.82,+20.00,01.00,000.00,1.00 ++020.62,+20.00,01.00,000.00,1.00 ++021.41,+20.00,01.00,000.00,1.00 ++022.20,+20.00,01.00,000.00,1.00 ++023.00,+20.00,01.00,000.00,1.00 ++023.79,+20.00,01.00,000.00,1.00 ++024.58,+20.00,01.00,000.00,1.00 ++025.37,+20.00,01.00,000.00,1.00 ++026.17,+20.00,01.00,000.00,1.00 ++026.96,+20.00,01.00,000.00,1.00 ++027.75,+20.00,01.00,000.00,1.00 ++028.55,+20.00,01.00,000.00,1.00 ++029.34,+20.00,01.00,000.00,1.00 ++030.13,+20.00,01.00,000.00,1.00 ++030.93,+20.00,01.00,000.00,1.00 ++031.72,+20.00,01.00,000.00,1.00 ++032.51,+20.00,01.00,000.00,1.00 ++033.30,+20.00,01.00,000.00,1.00 ++034.10,+20.00,01.00,000.00,1.00 ++034.89,+20.00,01.00,000.00,1.00 ++035.68,+20.00,01.00,000.00,1.00 ++036.48,+20.00,01.00,000.00,1.00 ++037.27,+20.00,01.00,000.00,1.00 ++038.06,+20.00,01.00,000.00,1.00 ++038.85,+20.00,01.00,000.00,1.00 ++039.65,+20.00,01.00,000.00,1.00 ++040.44,+20.00,01.00,000.00,1.00 ++041.23,+20.00,01.00,000.00,1.00 ++042.03,+20.00,01.00,000.00,1.00 ++042.82,+20.00,01.00,000.00,1.00 ++043.61,+20.00,01.00,000.00,1.00 ++044.41,+20.00,01.00,000.00,1.00 ++045.20,+20.00,01.00,000.00,1.00 ++045.99,+20.00,01.00,000.00,1.00 ++046.78,+20.00,01.00,000.00,1.00 ++047.58,+20.00,01.00,000.00,1.00 ++048.37,+20.00,01.00,000.00,1.00 ++049.16,+20.00,01.00,000.00,1.00 ++049.96,+20.00,01.00,000.00,1.00 ++050.75,+20.00,01.00,000.00,1.00 ++051.54,+20.00,01.00,000.00,1.00 ++052.33,+20.00,01.00,000.00,1.00 ++053.13,+20.00,01.00,000.00,1.00 ++053.92,+20.00,01.00,000.00,1.00 ++054.71,+20.00,01.00,000.00,1.00 ++055.51,+20.00,01.00,000.00,1.00 ++056.30,+20.00,01.00,000.00,1.00 ++057.09,+20.00,01.00,000.00,1.00 ++057.89,+20.00,01.00,000.00,1.00 ++058.68,+20.00,01.00,000.00,1.00 ++059.47,+20.00,01.00,000.00,1.00 ++060.26,+20.00,01.00,000.00,1.00 ++061.06,+20.00,01.00,000.00,1.00 ++061.85,+20.00,01.00,000.00,1.00 ++062.64,+20.00,01.00,000.00,1.00 ++063.44,+20.00,01.00,000.00,1.00 ++064.23,+20.00,01.00,000.00,1.00 ++065.02,+20.00,01.00,000.00,1.00 ++065.81,+20.00,01.00,000.00,1.00 ++066.61,+20.00,01.00,000.00,1.00 ++067.40,+20.00,01.00,000.00,1.00 ++068.19,+20.00,01.00,000.00,1.00 ++068.99,+20.00,01.00,000.00,1.00 ++069.78,+20.00,01.00,000.00,1.00 ++070.57,+20.00,01.00,000.00,1.00 ++071.37,+20.00,01.00,000.00,1.00 ++072.16,+20.00,01.00,000.00,1.00 ++072.95,+20.00,01.00,000.00,1.00 ++073.74,+20.00,01.00,000.00,1.00 ++074.54,+20.00,01.00,000.00,1.00 ++075.33,+20.00,01.00,000.00,1.00 ++076.12,+20.00,01.00,000.00,1.00 ++076.92,+20.00,01.00,000.00,1.00 ++077.71,+20.00,01.00,000.00,1.00 ++078.50,+20.00,01.00,000.00,1.00 ++079.30,+20.00,01.00,000.00,1.00 ++080.09,+20.00,01.00,000.00,1.00 ++080.88,+20.00,01.00,000.00,1.00 ++081.67,+20.00,01.00,000.00,1.00 ++082.47,+20.00,01.00,000.00,1.00 ++083.26,+20.00,01.00,000.00,1.00 ++084.05,+20.00,01.00,000.00,1.00 ++084.85,+20.00,01.00,000.00,1.00 ++085.64,+20.00,01.00,000.00,1.00 ++086.43,+20.00,01.00,000.00,1.00 ++087.22,+20.00,01.00,000.00,1.00 ++088.02,+20.00,01.00,000.00,1.00 ++088.81,+20.00,01.00,000.00,1.00 ++089.60,+20.00,01.00,000.00,1.00 ++090.40,+20.00,01.00,000.00,1.00 ++091.19,+20.00,01.00,000.00,1.00 ++091.98,+20.00,01.00,000.00,1.00 ++092.78,+20.00,01.00,000.00,1.00 ++093.57,+20.00,01.00,000.00,1.00 ++094.36,+20.00,01.00,000.00,1.00 ++095.15,+20.00,01.00,000.00,1.00 ++095.95,+20.00,01.00,000.00,1.00 ++096.74,+20.00,01.00,000.00,1.00 ++097.53,+20.00,01.00,000.00,1.00 ++098.33,+20.00,01.00,000.00,1.00 ++099.12,+20.00,01.00,000.00,1.00 ++099.91,+20.00,01.00,000.00,1.00 ++100.70,+20.00,01.00,000.00,1.00 ++101.50,+20.00,01.00,000.00,1.00 ++102.29,+20.00,01.00,000.00,1.00 ++103.08,+20.00,01.00,000.00,1.00 ++103.88,+20.00,01.00,000.00,1.00 ++104.67,+20.00,01.00,000.00,1.00 ++105.46,+20.00,01.00,000.00,1.00 ++106.26,+20.00,01.00,000.00,1.00 ++107.05,+20.00,01.00,000.00,1.00 ++107.84,+20.00,01.00,000.00,1.00 ++108.63,+20.00,01.00,000.00,1.00 ++109.43,+20.00,01.00,000.00,1.00 ++110.22,+20.00,01.00,000.00,1.00 ++111.01,+20.00,01.00,000.00,1.00 ++111.81,+20.00,01.00,000.00,1.00 ++112.60,+20.00,01.00,000.00,1.00 ++113.39,+20.00,01.00,000.00,1.00 ++114.19,+20.00,01.00,000.00,1.00 ++114.98,+20.00,01.00,000.00,1.00 ++115.77,+20.00,01.00,000.00,1.00 ++116.56,+20.00,01.00,000.00,1.00 ++117.36,+20.00,01.00,000.00,1.00 ++118.15,+20.00,01.00,000.00,1.00 ++118.94,+20.00,01.00,000.00,1.00 ++119.74,+20.00,01.00,000.00,1.00 ++120.53,+20.00,01.00,000.00,1.00 ++121.32,+20.00,01.00,000.00,1.00 ++122.11,+20.00,01.00,000.00,1.00 ++122.91,+20.00,01.00,000.00,1.00 ++123.70,+20.00,01.00,000.00,1.00 ++124.49,+20.00,01.00,000.00,1.00 ++125.29,+20.00,01.00,000.00,1.00 ++126.08,+20.00,01.00,000.00,1.00 ++126.87,+20.00,01.00,000.00,1.00 ++127.67,+20.00,01.00,000.00,1.00 ++128.46,+20.00,01.00,000.00,1.00 ++129.25,+20.00,01.00,000.00,1.00 ++130.04,+20.00,01.00,000.00,1.00 ++130.84,+20.00,01.00,000.00,1.00 ++131.63,+20.00,01.00,000.00,1.00 ++132.42,+20.00,01.00,000.00,1.00 ++133.22,+20.00,01.00,000.00,1.00 ++134.01,+20.00,01.00,000.00,1.00 ++134.80,+20.00,01.00,000.00,1.00 ++135.59,+20.00,01.00,000.00,1.00 ++136.39,+20.00,01.00,000.00,1.00 ++137.18,+20.00,01.00,000.00,1.00 ++137.97,+20.00,01.00,000.00,1.00 ++138.77,+20.00,01.00,000.00,1.00 ++139.56,+20.00,01.00,000.00,1.00 ++140.35,+20.00,01.00,000.00,1.00 ++141.15,+20.00,01.00,000.00,1.00 ++141.94,+20.00,01.00,000.00,1.00 ++142.73,+20.00,01.00,000.00,1.00 ++143.52,+20.00,01.00,000.00,1.00 ++144.32,+20.00,01.00,000.00,1.00 ++145.11,+20.00,01.00,000.00,1.00 ++145.90,+20.00,01.00,000.00,1.00 ++146.70,+20.00,01.00,000.00,1.00 ++147.49,+20.00,01.00,000.00,1.00 ++148.28,+20.00,01.00,000.00,1.00 ++149.07,+20.00,01.00,000.00,1.00 ++149.87,+20.00,01.00,000.00,1.00 ++150.66,+20.00,01.00,000.00,1.00 ++151.45,+20.00,01.00,000.00,1.00 ++152.25,+20.00,01.00,000.00,1.00 ++153.04,+20.00,01.00,000.00,1.00 ++153.83,+20.00,01.00,000.00,1.00 ++154.63,+20.00,01.00,000.00,1.00 ++155.42,+20.00,01.00,000.00,1.00 ++156.21,+20.00,01.00,000.00,1.00 ++157.00,+20.00,01.00,000.00,1.00 ++157.80,+20.00,01.00,000.00,1.00 ++158.59,+20.00,01.00,000.00,1.00 ++159.38,+20.00,01.00,000.00,1.00 ++160.18,+20.00,01.00,000.00,1.00 ++160.97,+20.00,01.00,000.00,1.00 ++161.76,+20.00,01.00,000.00,1.00 ++162.56,+20.00,01.00,000.00,1.00 ++163.35,+20.00,01.00,000.00,1.00 ++164.14,+20.00,01.00,000.00,1.00 ++164.93,+20.00,01.00,000.00,1.00 ++165.73,+20.00,01.00,000.00,1.00 ++166.52,+20.00,01.00,000.00,1.00 ++167.31,+20.00,01.00,000.00,1.00 ++168.11,+20.00,01.00,000.00,1.00 ++168.90,+20.00,01.00,000.00,1.00 ++169.69,+20.00,01.00,000.00,1.00 ++170.48,+20.00,01.00,000.00,1.00 ++171.28,+20.00,01.00,000.00,1.00 ++172.07,+20.00,01.00,000.00,1.00 ++172.86,+20.00,01.00,000.00,1.00 ++173.66,+20.00,01.00,000.00,1.00 ++174.45,+20.00,01.00,000.00,1.00 ++175.24,+20.00,01.00,000.00,1.00 ++176.04,+20.00,01.00,000.00,1.00 ++176.83,+20.00,01.00,000.00,1.00 ++177.62,+20.00,01.00,000.00,1.00 ++178.41,+20.00,01.00,000.00,1.00 ++179.21,+20.00,01.00,000.00,1.00 ++180.00,+20.00,01.00,000.00,1.00 +-179.21,+20.00,01.00,000.00,1.00 +-178.41,+20.00,01.00,000.00,1.00 +-177.62,+20.00,01.00,000.00,1.00 +-176.83,+20.00,01.00,000.00,1.00 +-176.04,+20.00,01.00,000.00,1.00 +-175.24,+20.00,01.00,000.00,1.00 +-174.45,+20.00,01.00,000.00,1.00 +-173.66,+20.00,01.00,000.00,1.00 +-172.86,+20.00,01.00,000.00,1.00 +-172.07,+20.00,01.00,000.00,1.00 +-171.28,+20.00,01.00,000.00,1.00 +-170.48,+20.00,01.00,000.00,1.00 +-169.69,+20.00,01.00,000.00,1.00 +-168.90,+20.00,01.00,000.00,1.00 +-168.11,+20.00,01.00,000.00,1.00 +-167.31,+20.00,01.00,000.00,1.00 +-166.52,+20.00,01.00,000.00,1.00 +-165.73,+20.00,01.00,000.00,1.00 +-164.93,+20.00,01.00,000.00,1.00 +-164.14,+20.00,01.00,000.00,1.00 +-163.35,+20.00,01.00,000.00,1.00 +-162.56,+20.00,01.00,000.00,1.00 +-161.76,+20.00,01.00,000.00,1.00 +-160.97,+20.00,01.00,000.00,1.00 +-160.18,+20.00,01.00,000.00,1.00 +-159.38,+20.00,01.00,000.00,1.00 +-158.59,+20.00,01.00,000.00,1.00 +-157.80,+20.00,01.00,000.00,1.00 +-157.00,+20.00,01.00,000.00,1.00 +-156.21,+20.00,01.00,000.00,1.00 +-155.42,+20.00,01.00,000.00,1.00 +-154.63,+20.00,01.00,000.00,1.00 +-153.83,+20.00,01.00,000.00,1.00 +-153.04,+20.00,01.00,000.00,1.00 +-152.25,+20.00,01.00,000.00,1.00 +-151.45,+20.00,01.00,000.00,1.00 +-150.66,+20.00,01.00,000.00,1.00 +-149.87,+20.00,01.00,000.00,1.00 +-149.07,+20.00,01.00,000.00,1.00 +-148.28,+20.00,01.00,000.00,1.00 +-147.49,+20.00,01.00,000.00,1.00 +-146.70,+20.00,01.00,000.00,1.00 +-145.90,+20.00,01.00,000.00,1.00 +-145.11,+20.00,01.00,000.00,1.00 +-144.32,+20.00,01.00,000.00,1.00 +-143.52,+20.00,01.00,000.00,1.00 +-142.73,+20.00,01.00,000.00,1.00 +-141.94,+20.00,01.00,000.00,1.00 +-141.15,+20.00,01.00,000.00,1.00 +-140.35,+20.00,01.00,000.00,1.00 +-139.56,+20.00,01.00,000.00,1.00 +-138.77,+20.00,01.00,000.00,1.00 +-137.97,+20.00,01.00,000.00,1.00 +-137.18,+20.00,01.00,000.00,1.00 +-136.39,+20.00,01.00,000.00,1.00 +-135.59,+20.00,01.00,000.00,1.00 +-134.80,+20.00,01.00,000.00,1.00 +-134.01,+20.00,01.00,000.00,1.00 +-133.22,+20.00,01.00,000.00,1.00 +-132.42,+20.00,01.00,000.00,1.00 +-131.63,+20.00,01.00,000.00,1.00 +-130.84,+20.00,01.00,000.00,1.00 +-130.04,+20.00,01.00,000.00,1.00 +-129.25,+20.00,01.00,000.00,1.00 +-128.46,+20.00,01.00,000.00,1.00 +-127.67,+20.00,01.00,000.00,1.00 +-126.87,+20.00,01.00,000.00,1.00 +-126.08,+20.00,01.00,000.00,1.00 +-125.29,+20.00,01.00,000.00,1.00 +-124.49,+20.00,01.00,000.00,1.00 +-123.70,+20.00,01.00,000.00,1.00 +-122.91,+20.00,01.00,000.00,1.00 +-122.11,+20.00,01.00,000.00,1.00 +-121.32,+20.00,01.00,000.00,1.00 +-120.53,+20.00,01.00,000.00,1.00 +-119.74,+20.00,01.00,000.00,1.00 +-118.94,+20.00,01.00,000.00,1.00 +-118.15,+20.00,01.00,000.00,1.00 +-117.36,+20.00,01.00,000.00,1.00 +-116.56,+20.00,01.00,000.00,1.00 +-115.77,+20.00,01.00,000.00,1.00 +-114.98,+20.00,01.00,000.00,1.00 +-114.19,+20.00,01.00,000.00,1.00 +-113.39,+20.00,01.00,000.00,1.00 +-112.60,+20.00,01.00,000.00,1.00 +-111.81,+20.00,01.00,000.00,1.00 +-111.01,+20.00,01.00,000.00,1.00 +-110.22,+20.00,01.00,000.00,1.00 +-109.43,+20.00,01.00,000.00,1.00 +-108.63,+20.00,01.00,000.00,1.00 +-107.84,+20.00,01.00,000.00,1.00 +-107.05,+20.00,01.00,000.00,1.00 +-106.26,+20.00,01.00,000.00,1.00 +-105.46,+20.00,01.00,000.00,1.00 +-104.67,+20.00,01.00,000.00,1.00 +-103.88,+20.00,01.00,000.00,1.00 +-103.08,+20.00,01.00,000.00,1.00 +-102.29,+20.00,01.00,000.00,1.00 +-101.50,+20.00,01.00,000.00,1.00 +-100.70,+20.00,01.00,000.00,1.00 +-099.91,+20.00,01.00,000.00,1.00 +-099.12,+20.00,01.00,000.00,1.00 +-098.33,+20.00,01.00,000.00,1.00 +-097.53,+20.00,01.00,000.00,1.00 +-096.74,+20.00,01.00,000.00,1.00 +-095.95,+20.00,01.00,000.00,1.00 +-095.15,+20.00,01.00,000.00,1.00 +-094.36,+20.00,01.00,000.00,1.00 +-093.57,+20.00,01.00,000.00,1.00 +-092.78,+20.00,01.00,000.00,1.00 +-091.98,+20.00,01.00,000.00,1.00 +-091.19,+20.00,01.00,000.00,1.00 +-090.40,+20.00,01.00,000.00,1.00 +-089.60,+20.00,01.00,000.00,1.00 +-088.81,+20.00,01.00,000.00,1.00 +-088.02,+20.00,01.00,000.00,1.00 +-087.22,+20.00,01.00,000.00,1.00 +-086.43,+20.00,01.00,000.00,1.00 +-085.64,+20.00,01.00,000.00,1.00 +-084.85,+20.00,01.00,000.00,1.00 +-084.05,+20.00,01.00,000.00,1.00 +-083.26,+20.00,01.00,000.00,1.00 +-082.47,+20.00,01.00,000.00,1.00 +-081.67,+20.00,01.00,000.00,1.00 +-080.88,+20.00,01.00,000.00,1.00 +-080.09,+20.00,01.00,000.00,1.00 +-079.30,+20.00,01.00,000.00,1.00 +-078.50,+20.00,01.00,000.00,1.00 +-077.71,+20.00,01.00,000.00,1.00 +-076.92,+20.00,01.00,000.00,1.00 +-076.12,+20.00,01.00,000.00,1.00 +-075.33,+20.00,01.00,000.00,1.00 +-074.54,+20.00,01.00,000.00,1.00 +-073.74,+20.00,01.00,000.00,1.00 +-072.95,+20.00,01.00,000.00,1.00 +-072.16,+20.00,01.00,000.00,1.00 +-071.37,+20.00,01.00,000.00,1.00 +-070.57,+20.00,01.00,000.00,1.00 +-069.78,+20.00,01.00,000.00,1.00 +-068.99,+20.00,01.00,000.00,1.00 +-068.19,+20.00,01.00,000.00,1.00 +-067.40,+20.00,01.00,000.00,1.00 +-066.61,+20.00,01.00,000.00,1.00 +-065.81,+20.00,01.00,000.00,1.00 +-065.02,+20.00,01.00,000.00,1.00 +-064.23,+20.00,01.00,000.00,1.00 +-063.44,+20.00,01.00,000.00,1.00 +-062.64,+20.00,01.00,000.00,1.00 +-061.85,+20.00,01.00,000.00,1.00 +-061.06,+20.00,01.00,000.00,1.00 +-060.26,+20.00,01.00,000.00,1.00 +-059.47,+20.00,01.00,000.00,1.00 +-058.68,+20.00,01.00,000.00,1.00 +-057.89,+20.00,01.00,000.00,1.00 +-057.09,+20.00,01.00,000.00,1.00 +-056.30,+20.00,01.00,000.00,1.00 +-055.51,+20.00,01.00,000.00,1.00 +-054.71,+20.00,01.00,000.00,1.00 +-053.92,+20.00,01.00,000.00,1.00 +-053.13,+20.00,01.00,000.00,1.00 +-052.33,+20.00,01.00,000.00,1.00 +-051.54,+20.00,01.00,000.00,1.00 +-050.75,+20.00,01.00,000.00,1.00 +-049.96,+20.00,01.00,000.00,1.00 +-049.16,+20.00,01.00,000.00,1.00 +-048.37,+20.00,01.00,000.00,1.00 +-047.58,+20.00,01.00,000.00,1.00 +-046.78,+20.00,01.00,000.00,1.00 +-045.99,+20.00,01.00,000.00,1.00 +-045.20,+20.00,01.00,000.00,1.00 +-044.41,+20.00,01.00,000.00,1.00 +-043.61,+20.00,01.00,000.00,1.00 +-042.82,+20.00,01.00,000.00,1.00 +-042.03,+20.00,01.00,000.00,1.00 +-041.23,+20.00,01.00,000.00,1.00 +-040.44,+20.00,01.00,000.00,1.00 +-039.65,+20.00,01.00,000.00,1.00 +-038.85,+20.00,01.00,000.00,1.00 +-038.06,+20.00,01.00,000.00,1.00 +-037.27,+20.00,01.00,000.00,1.00 +-036.48,+20.00,01.00,000.00,1.00 +-035.68,+20.00,01.00,000.00,1.00 +-034.89,+20.00,01.00,000.00,1.00 +-034.10,+20.00,01.00,000.00,1.00 +-033.30,+20.00,01.00,000.00,1.00 +-032.51,+20.00,01.00,000.00,1.00 +-031.72,+20.00,01.00,000.00,1.00 +-030.93,+20.00,01.00,000.00,1.00 +-030.13,+20.00,01.00,000.00,1.00 +-029.34,+20.00,01.00,000.00,1.00 +-028.55,+20.00,01.00,000.00,1.00 +-027.75,+20.00,01.00,000.00,1.00 +-026.96,+20.00,01.00,000.00,1.00 +-026.17,+20.00,01.00,000.00,1.00 +-025.37,+20.00,01.00,000.00,1.00 +-024.58,+20.00,01.00,000.00,1.00 +-023.79,+20.00,01.00,000.00,1.00 +-023.00,+20.00,01.00,000.00,1.00 +-022.20,+20.00,01.00,000.00,1.00 +-021.41,+20.00,01.00,000.00,1.00 +-020.62,+20.00,01.00,000.00,1.00 +-019.82,+20.00,01.00,000.00,1.00 +-019.03,+20.00,01.00,000.00,1.00 +-018.24,+20.00,01.00,000.00,1.00 +-017.44,+20.00,01.00,000.00,1.00 +-016.65,+20.00,01.00,000.00,1.00 +-015.86,+20.00,01.00,000.00,1.00 +-015.07,+20.00,01.00,000.00,1.00 +-014.27,+20.00,01.00,000.00,1.00 +-013.48,+20.00,01.00,000.00,1.00 +-012.69,+20.00,01.00,000.00,1.00 +-011.89,+20.00,01.00,000.00,1.00 +-011.10,+20.00,01.00,000.00,1.00 +-010.31,+20.00,01.00,000.00,1.00 +-009.52,+20.00,01.00,000.00,1.00 +-008.72,+20.00,01.00,000.00,1.00 +-007.93,+20.00,01.00,000.00,1.00 +-007.14,+20.00,01.00,000.00,1.00 +-006.34,+20.00,01.00,000.00,1.00 +-005.55,+20.00,01.00,000.00,1.00 +-004.76,+20.00,01.00,000.00,1.00 +-003.96,+20.00,01.00,000.00,1.00 +-003.17,+20.00,01.00,000.00,1.00 +-002.38,+20.00,01.00,000.00,1.00 +-001.59,+20.00,01.00,000.00,1.00 +-000.79,+20.00,01.00,000.00,1.00 +-000.00,+20.00,01.00,000.00,1.00 ++000.79,+20.00,01.00,000.00,1.00 ++001.59,+20.00,01.00,000.00,1.00 ++002.38,+20.00,01.00,000.00,1.00 ++003.17,+20.00,01.00,000.00,1.00 ++003.96,+20.00,01.00,000.00,1.00 ++004.76,+20.00,01.00,000.00,1.00 ++005.55,+20.00,01.00,000.00,1.00 ++006.34,+20.00,01.00,000.00,1.00 ++007.14,+20.00,01.00,000.00,1.00 ++007.93,+20.00,01.00,000.00,1.00 ++008.72,+20.00,01.00,000.00,1.00 ++009.52,+20.00,01.00,000.00,1.00 ++010.31,+20.00,01.00,000.00,1.00 ++011.10,+20.00,01.00,000.00,1.00 ++011.89,+20.00,01.00,000.00,1.00 ++012.69,+20.00,01.00,000.00,1.00 ++013.48,+20.00,01.00,000.00,1.00 ++014.27,+20.00,01.00,000.00,1.00 ++015.07,+20.00,01.00,000.00,1.00 ++015.86,+20.00,01.00,000.00,1.00 ++016.65,+20.00,01.00,000.00,1.00 ++017.44,+20.00,01.00,000.00,1.00 ++018.24,+20.00,01.00,000.00,1.00 ++019.03,+20.00,01.00,000.00,1.00 ++019.82,+20.00,01.00,000.00,1.00 ++020.62,+20.00,01.00,000.00,1.00 ++021.41,+20.00,01.00,000.00,1.00 ++022.20,+20.00,01.00,000.00,1.00 ++023.00,+20.00,01.00,000.00,1.00 ++023.79,+20.00,01.00,000.00,1.00 ++024.58,+20.00,01.00,000.00,1.00 ++025.37,+20.00,01.00,000.00,1.00 ++026.17,+20.00,01.00,000.00,1.00 ++026.96,+20.00,01.00,000.00,1.00 ++027.75,+20.00,01.00,000.00,1.00 ++028.55,+20.00,01.00,000.00,1.00 ++029.34,+20.00,01.00,000.00,1.00 ++030.13,+20.00,01.00,000.00,1.00 ++030.93,+20.00,01.00,000.00,1.00 ++031.72,+20.00,01.00,000.00,1.00 ++032.51,+20.00,01.00,000.00,1.00 ++033.30,+20.00,01.00,000.00,1.00 ++034.10,+20.00,01.00,000.00,1.00 ++034.89,+20.00,01.00,000.00,1.00 ++035.68,+20.00,01.00,000.00,1.00 ++036.48,+20.00,01.00,000.00,1.00 ++037.27,+20.00,01.00,000.00,1.00 ++038.06,+20.00,01.00,000.00,1.00 ++038.85,+20.00,01.00,000.00,1.00 ++039.65,+20.00,01.00,000.00,1.00 ++040.44,+20.00,01.00,000.00,1.00 ++041.23,+20.00,01.00,000.00,1.00 ++042.03,+20.00,01.00,000.00,1.00 ++042.82,+20.00,01.00,000.00,1.00 ++043.61,+20.00,01.00,000.00,1.00 ++044.41,+20.00,01.00,000.00,1.00 ++045.20,+20.00,01.00,000.00,1.00 ++045.99,+20.00,01.00,000.00,1.00 ++046.78,+20.00,01.00,000.00,1.00 ++047.58,+20.00,01.00,000.00,1.00 ++048.37,+20.00,01.00,000.00,1.00 ++049.16,+20.00,01.00,000.00,1.00 ++049.96,+20.00,01.00,000.00,1.00 ++050.75,+20.00,01.00,000.00,1.00 ++051.54,+20.00,01.00,000.00,1.00 ++052.33,+20.00,01.00,000.00,1.00 ++053.13,+20.00,01.00,000.00,1.00 ++053.92,+20.00,01.00,000.00,1.00 ++054.71,+20.00,01.00,000.00,1.00 ++055.51,+20.00,01.00,000.00,1.00 ++056.30,+20.00,01.00,000.00,1.00 ++057.09,+20.00,01.00,000.00,1.00 ++057.89,+20.00,01.00,000.00,1.00 ++058.68,+20.00,01.00,000.00,1.00 ++059.47,+20.00,01.00,000.00,1.00 ++060.26,+20.00,01.00,000.00,1.00 ++061.06,+20.00,01.00,000.00,1.00 ++061.85,+20.00,01.00,000.00,1.00 ++062.64,+20.00,01.00,000.00,1.00 ++063.44,+20.00,01.00,000.00,1.00 ++064.23,+20.00,01.00,000.00,1.00 ++065.02,+20.00,01.00,000.00,1.00 ++065.81,+20.00,01.00,000.00,1.00 ++066.61,+20.00,01.00,000.00,1.00 ++067.40,+20.00,01.00,000.00,1.00 ++068.19,+20.00,01.00,000.00,1.00 ++068.99,+20.00,01.00,000.00,1.00 ++069.78,+20.00,01.00,000.00,1.00 ++070.57,+20.00,01.00,000.00,1.00 ++071.37,+20.00,01.00,000.00,1.00 ++072.16,+20.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t11_ch1.csv b/scripts/td_object_renderer/metadata/csv/t11_ch1.csv index 779d8f654a..846e212989 100644 --- a/scripts/td_object_renderer/metadata/csv/t11_ch1.csv +++ b/scripts/td_object_renderer/metadata/csv/t11_ch1.csv @@ -1,1000 +1,1000 @@ -0000,-050.00,+00.00,01.00,000.00,1.00 -0001,-050.00,+00.00,01.00,000.00,1.00 -0002,-050.00,+00.00,01.00,000.00,1.00 -0003,-050.00,+00.00,01.00,000.00,1.00 -0004,-050.00,+00.00,01.00,000.00,1.00 -0005,-050.00,+00.00,01.00,000.00,1.00 -0006,-050.00,+00.00,01.00,000.00,1.00 -0007,-050.00,+00.00,01.00,000.00,1.00 -0008,-050.00,+00.00,01.00,000.00,1.00 -0009,-050.00,+00.00,01.00,000.00,1.00 -0010,-050.00,+00.00,01.00,000.00,1.00 -0011,-050.00,+00.00,01.00,000.00,1.00 -0012,-050.00,+00.00,01.00,000.00,1.00 -0013,-050.00,+00.00,01.00,000.00,1.00 -0014,-050.00,+00.00,01.00,000.00,1.00 -0015,-050.00,+00.00,01.00,000.00,1.00 -0016,-050.00,+00.00,01.00,000.00,1.00 -0017,-050.00,+00.00,01.00,000.00,1.00 -0018,-050.00,+00.00,01.00,000.00,1.00 -0019,-050.00,+00.00,01.00,000.00,1.00 -0020,-050.00,+00.00,01.00,000.00,1.00 -0021,-050.00,+00.00,01.00,000.00,1.00 -0022,-050.00,+00.00,01.00,000.00,1.00 -0023,-050.00,+00.00,01.00,000.00,1.00 -0024,-050.00,+00.00,01.00,000.00,1.00 -0025,-050.00,+00.00,01.00,000.00,1.00 -0026,-050.00,+00.00,01.00,000.00,1.00 -0027,-050.00,+00.00,01.00,000.00,1.00 -0028,-050.00,+00.00,01.00,000.00,1.00 -0029,-050.00,+00.00,01.00,000.00,1.00 -0030,-050.00,+00.00,01.00,000.00,1.00 -0031,-050.00,+00.00,01.00,000.00,1.00 -0032,-050.00,+00.00,01.00,000.00,1.00 -0033,-050.00,+00.00,01.00,000.00,1.00 -0034,-050.00,+00.00,01.00,000.00,1.00 -0035,-050.00,+00.00,01.00,000.00,1.00 -0036,-050.00,+00.00,01.00,000.00,1.00 -0037,-050.00,+00.00,01.00,000.00,1.00 -0038,-050.00,+00.00,01.00,000.00,1.00 -0039,-050.00,+00.00,01.00,000.00,1.00 -0040,-050.00,+00.00,01.00,000.00,1.00 -0041,-050.00,+00.00,01.00,000.00,1.00 -0042,-050.00,+00.00,01.00,000.00,1.00 -0043,-050.00,+00.00,01.00,000.00,1.00 -0044,-050.00,+00.00,01.00,000.00,1.00 -0045,-050.00,+00.00,01.00,000.00,1.00 -0046,-050.00,+00.00,01.00,000.00,1.00 -0047,-050.00,+00.00,01.00,000.00,1.00 -0048,-050.00,+00.00,01.00,000.00,1.00 -0049,-050.00,+00.00,01.00,000.00,1.00 -0050,-050.00,+00.00,01.00,000.00,1.00 -0051,-050.00,+00.00,01.00,000.00,1.00 -0052,-050.00,+00.00,01.00,000.00,1.00 -0053,-050.00,+00.00,01.00,000.00,1.00 -0054,-050.00,+00.00,01.00,000.00,1.00 -0055,-050.00,+00.00,01.00,000.00,1.00 -0056,-050.00,+00.00,01.00,000.00,1.00 -0057,-050.00,+00.00,01.00,000.00,1.00 -0058,-050.00,+00.00,01.00,000.00,1.00 -0059,-050.00,+00.00,01.00,000.00,1.00 -0060,-050.00,+00.00,01.00,000.00,1.00 -0061,-050.00,+00.00,01.00,000.00,1.00 -0062,-050.00,+00.00,01.00,000.00,1.00 -0063,-050.00,+00.00,01.00,000.00,1.00 -0064,-050.00,+00.00,01.00,000.00,1.00 -0065,-050.00,+00.00,01.00,000.00,1.00 -0066,-050.00,+00.00,01.00,000.00,1.00 -0067,-050.00,+00.00,01.00,000.00,1.00 -0068,-050.00,+00.00,01.00,000.00,1.00 -0069,-050.00,+00.00,01.00,000.00,1.00 -0070,-050.00,+00.00,01.00,000.00,1.00 -0071,-050.00,+00.00,01.00,000.00,1.00 -0072,-050.00,+00.00,01.00,000.00,1.00 -0073,-050.00,+00.00,01.00,000.00,1.00 -0074,-050.00,+00.00,01.00,000.00,1.00 -0075,-050.00,+00.00,01.00,000.00,1.00 -0076,-050.00,+00.00,01.00,000.00,1.00 -0077,-050.00,+00.00,01.00,000.00,1.00 -0078,-050.00,+00.00,01.00,000.00,1.00 -0079,-050.00,+00.00,01.00,000.00,1.00 -0080,-050.00,+00.00,01.00,000.00,1.00 -0081,-050.00,+00.00,01.00,000.00,1.00 -0082,-050.00,+00.00,01.00,000.00,1.00 -0083,-050.00,+00.00,01.00,000.00,1.00 -0084,-050.00,+00.00,01.00,000.00,1.00 -0085,-050.00,+00.00,01.00,000.00,1.00 -0086,-050.00,+00.00,01.00,000.00,1.00 -0087,-050.00,+00.00,01.00,000.00,1.00 -0088,-050.00,+00.00,01.00,000.00,1.00 -0089,-050.00,+00.00,01.00,000.00,1.00 -0090,-050.00,+00.00,01.00,000.00,1.00 -0091,-050.00,+00.00,01.00,000.00,1.00 -0092,-050.00,+00.00,01.00,000.00,1.00 -0093,-050.00,+00.00,01.00,000.00,1.00 -0094,-050.00,+00.00,01.00,000.00,1.00 -0095,-050.00,+00.00,01.00,000.00,1.00 -0096,-050.00,+00.00,01.00,000.00,1.00 -0097,-050.00,+00.00,01.00,000.00,1.00 -0098,-050.00,+00.00,01.00,000.00,1.00 -0099,-050.00,+00.00,01.00,000.00,1.00 -0100,-050.00,+00.00,01.00,000.00,1.00 -0101,-050.00,+00.00,01.00,000.00,1.00 -0102,-050.00,+00.00,01.00,000.00,1.00 -0103,-050.00,+00.00,01.00,000.00,1.00 -0104,-050.00,+00.00,01.00,000.00,1.00 -0105,-050.00,+00.00,01.00,000.00,1.00 -0106,-050.00,+00.00,01.00,000.00,1.00 -0107,-050.00,+00.00,01.00,000.00,1.00 -0108,-050.00,+00.00,01.00,000.00,1.00 -0109,-050.00,+00.00,01.00,000.00,1.00 -0110,-050.00,+00.00,01.00,000.00,1.00 -0111,-050.00,+00.00,01.00,000.00,1.00 -0112,-050.00,+00.00,01.00,000.00,1.00 -0113,-050.00,+00.00,01.00,000.00,1.00 -0114,-050.00,+00.00,01.00,000.00,1.00 -0115,-050.00,+00.00,01.00,000.00,1.00 -0116,-050.00,+00.00,01.00,000.00,1.00 -0117,-050.00,+00.00,01.00,000.00,1.00 -0118,-050.00,+00.00,01.00,000.00,1.00 -0119,-050.00,+00.00,01.00,000.00,1.00 -0120,-050.00,+00.00,01.00,000.00,1.00 -0121,-050.00,+00.00,01.00,000.00,1.00 -0122,-050.00,+00.00,01.00,000.00,1.00 -0123,-050.00,+00.00,01.00,000.00,1.00 -0124,-050.00,+00.00,01.00,000.00,1.00 -0125,-050.00,+00.00,01.00,000.00,1.00 -0126,-050.00,+00.00,01.00,000.00,1.00 -0127,-050.00,+00.00,01.00,000.00,1.00 -0128,-050.00,+00.00,01.00,000.00,1.00 -0129,-050.00,+00.00,01.00,000.00,1.00 -0130,-050.00,+00.00,01.00,000.00,1.00 -0131,-050.00,+00.00,01.00,000.00,1.00 -0132,-050.00,+00.00,01.00,000.00,1.00 -0133,-050.00,+00.00,01.00,000.00,1.00 -0134,-050.00,+00.00,01.00,000.00,1.00 -0135,-050.00,+00.00,01.00,000.00,1.00 -0136,-050.00,+00.00,01.00,000.00,1.00 -0137,-050.00,+00.00,01.00,000.00,1.00 -0138,-050.00,+00.00,01.00,000.00,1.00 -0139,-050.00,+00.00,01.00,000.00,1.00 -0140,-050.00,+00.00,01.00,000.00,1.00 -0141,-050.00,+00.00,01.00,000.00,1.00 -0142,-050.00,+00.00,01.00,000.00,1.00 -0143,-050.00,+00.00,01.00,000.00,1.00 -0144,-050.00,+00.00,01.00,000.00,1.00 -0145,-050.00,+00.00,01.00,000.00,1.00 -0146,-050.00,+00.00,01.00,000.00,1.00 -0147,-050.00,+00.00,01.00,000.00,1.00 -0148,-050.00,+00.00,01.00,000.00,1.00 -0149,-050.00,+00.00,01.00,000.00,1.00 -0150,-050.00,+00.00,01.00,000.00,1.00 -0151,-050.00,+00.00,01.00,000.00,1.00 -0152,-050.00,+00.00,01.00,000.00,1.00 -0153,-050.00,+00.00,01.00,000.00,1.00 -0154,-050.00,+00.00,01.00,000.00,1.00 -0155,-050.00,+00.00,01.00,000.00,1.00 -0156,-050.00,+00.00,01.00,000.00,1.00 -0157,-050.00,+00.00,01.00,000.00,1.00 -0158,-050.00,+00.00,01.00,000.00,1.00 -0159,-050.00,+00.00,01.00,000.00,1.00 -0160,-050.00,+00.00,01.00,000.00,1.00 -0161,-050.00,+00.00,01.00,000.00,1.00 -0162,-050.00,+00.00,01.00,000.00,1.00 -0163,-050.00,+00.00,01.00,000.00,1.00 -0164,-050.00,+00.00,01.00,000.00,1.00 -0165,-050.00,+00.00,01.00,000.00,1.00 -0166,-050.00,+00.00,01.00,000.00,1.00 -0167,-050.00,+00.00,01.00,000.00,1.00 -0168,-050.00,+00.00,01.00,000.00,1.00 -0169,-050.00,+00.00,01.00,000.00,1.00 -0170,-050.00,+00.00,01.00,000.00,1.00 -0171,-050.00,+00.00,01.00,000.00,1.00 -0172,-050.00,+00.00,01.00,000.00,1.00 -0173,-050.00,+00.00,01.00,000.00,1.00 -0174,-050.00,+00.00,01.00,000.00,1.00 -0175,-050.00,+00.00,01.00,000.00,1.00 -0176,-050.00,+00.00,01.00,000.00,1.00 -0177,-050.00,+00.00,01.00,000.00,1.00 -0178,-050.00,+00.00,01.00,000.00,1.00 -0179,-050.00,+00.00,01.00,000.00,1.00 -0180,-050.00,+00.00,01.00,000.00,1.00 -0181,-050.00,+00.00,01.00,000.00,1.00 -0182,-050.00,+00.00,01.00,000.00,1.00 -0183,-050.00,+00.00,01.00,000.00,1.00 -0184,-050.00,+00.00,01.00,000.00,1.00 -0185,-050.00,+00.00,01.00,000.00,1.00 -0186,-050.00,+00.00,01.00,000.00,1.00 -0187,-050.00,+00.00,01.00,000.00,1.00 -0188,-050.00,+00.00,01.00,000.00,1.00 -0189,-050.00,+00.00,01.00,000.00,1.00 -0190,-050.00,+00.00,01.00,000.00,1.00 -0191,-050.00,+00.00,01.00,000.00,1.00 -0192,-050.00,+00.00,01.00,000.00,1.00 -0193,-050.00,+00.00,01.00,000.00,1.00 -0194,-050.00,+00.00,01.00,000.00,1.00 -0195,-050.00,+00.00,01.00,000.00,1.00 -0196,-050.00,+00.00,01.00,000.00,1.00 -0197,-050.00,+00.00,01.00,000.00,1.00 -0198,-050.00,+00.00,01.00,000.00,1.00 -0199,-050.00,+00.00,01.00,000.00,1.00 -0200,-050.00,+00.00,01.00,000.00,1.00 -0201,-050.00,+00.00,01.00,000.00,1.00 -0202,-050.00,+00.00,01.00,000.00,1.00 -0203,-050.00,+00.00,01.00,000.00,1.00 -0204,-050.00,+00.00,01.00,000.00,1.00 -0205,-050.00,+00.00,01.00,000.00,1.00 -0206,-050.00,+00.00,01.00,000.00,1.00 -0207,-050.00,+00.00,01.00,000.00,1.00 -0208,-050.00,+00.00,01.00,000.00,1.00 -0209,-050.00,+00.00,01.00,000.00,1.00 -0210,-050.00,+00.00,01.00,000.00,1.00 -0211,-050.00,+00.00,01.00,000.00,1.00 -0212,-050.00,+00.00,01.00,000.00,1.00 -0213,-050.00,+00.00,01.00,000.00,1.00 -0214,-050.00,+00.00,01.00,000.00,1.00 -0215,-050.00,+00.00,01.00,000.00,1.00 -0216,-050.00,+00.00,01.00,000.00,1.00 -0217,-050.00,+00.00,01.00,000.00,1.00 -0218,-050.00,+00.00,01.00,000.00,1.00 -0219,-050.00,+00.00,01.00,000.00,1.00 -0220,-050.00,+00.00,01.00,000.00,1.00 -0221,-050.00,+00.00,01.00,000.00,1.00 -0222,-050.00,+00.00,01.00,000.00,1.00 -0223,-050.00,+00.00,01.00,000.00,1.00 -0224,-050.00,+00.00,01.00,000.00,1.00 -0225,-050.00,+00.00,01.00,000.00,1.00 -0226,-050.00,+00.00,01.00,000.00,1.00 -0227,-050.00,+00.00,01.00,000.00,1.00 -0228,-050.00,+00.00,01.00,000.00,1.00 -0229,-050.00,+00.00,01.00,000.00,1.00 -0230,-050.00,+00.00,01.00,000.00,1.00 -0231,-050.00,+00.00,01.00,000.00,1.00 -0232,-050.00,+00.00,01.00,000.00,1.00 -0233,-050.00,+00.00,01.00,000.00,1.00 -0234,-050.00,+00.00,01.00,000.00,1.00 -0235,-050.00,+00.00,01.00,000.00,1.00 -0236,-050.00,+00.00,01.00,000.00,1.00 -0237,-050.00,+00.00,01.00,000.00,1.00 -0238,-050.00,+00.00,01.00,000.00,1.00 -0239,-050.00,+00.00,01.00,000.00,1.00 -0240,-050.00,+00.00,01.00,000.00,1.00 -0241,-050.00,+00.00,01.00,000.00,1.00 -0242,-050.00,+00.00,01.00,000.00,1.00 -0243,-050.00,+00.00,01.00,000.00,1.00 -0244,-050.00,+00.00,01.00,000.00,1.00 -0245,-050.00,+00.00,01.00,000.00,1.00 -0246,-050.00,+00.00,01.00,000.00,1.00 -0247,-050.00,+00.00,01.00,000.00,1.00 -0248,-050.00,+00.00,01.00,000.00,1.00 -0249,-050.00,+00.00,01.00,000.00,1.00 -0250,-050.00,+00.00,01.00,000.00,1.00 -0251,-050.00,+00.00,01.00,000.00,1.00 -0252,-050.00,+00.00,01.00,000.00,1.00 -0253,-050.00,+00.00,01.00,000.00,1.00 -0254,-050.00,+00.00,01.00,000.00,1.00 -0255,-050.00,+00.00,01.00,000.00,1.00 -0256,-050.00,+00.00,01.00,000.00,1.00 -0257,-050.00,+00.00,01.00,000.00,1.00 -0258,-050.00,+00.00,01.00,000.00,1.00 -0259,-050.00,+00.00,01.00,000.00,1.00 -0260,-050.00,+00.00,01.00,000.00,1.00 -0261,-050.00,+00.00,01.00,000.00,1.00 -0262,-050.00,+00.00,01.00,000.00,1.00 -0263,-050.00,+00.00,01.00,000.00,1.00 -0264,-050.00,+00.00,01.00,000.00,1.00 -0265,-050.00,+00.00,01.00,000.00,1.00 -0266,-050.00,+00.00,01.00,000.00,1.00 -0267,-050.00,+00.00,01.00,000.00,1.00 -0268,-050.00,+00.00,01.00,000.00,1.00 -0269,-050.00,+00.00,01.00,000.00,1.00 -0270,-050.00,+00.00,01.00,000.00,1.00 -0271,-050.00,+00.00,01.00,000.00,1.00 -0272,-050.00,+00.00,01.00,000.00,1.00 -0273,-050.00,+00.00,01.00,000.00,1.00 -0274,-050.00,+00.00,01.00,000.00,1.00 -0275,-050.00,+00.00,01.00,000.00,1.00 -0276,-050.00,+00.00,01.00,000.00,1.00 -0277,-050.00,+00.00,01.00,000.00,1.00 -0278,-050.00,+00.00,01.00,000.00,1.00 -0279,-050.00,+00.00,01.00,000.00,1.00 -0280,-050.00,+00.00,01.00,000.00,1.00 -0281,-050.00,+00.00,01.00,000.00,1.00 -0282,-050.00,+00.00,01.00,000.00,1.00 -0283,-050.00,+00.00,01.00,000.00,1.00 -0284,-050.00,+00.00,01.00,000.00,1.00 -0285,-050.00,+00.00,01.00,000.00,1.00 -0286,-050.00,+00.00,01.00,000.00,1.00 -0287,-050.00,+00.00,01.00,000.00,1.00 -0288,-050.00,+00.00,01.00,000.00,1.00 -0289,-050.00,+00.00,01.00,000.00,1.00 -0290,-050.00,+00.00,01.00,000.00,1.00 -0291,-050.00,+00.00,01.00,000.00,1.00 -0292,-050.00,+00.00,01.00,000.00,1.00 -0293,-050.00,+00.00,01.00,000.00,1.00 -0294,-050.00,+00.00,01.00,000.00,1.00 -0295,-050.00,+00.00,01.00,000.00,1.00 -0296,-050.00,+00.00,01.00,000.00,1.00 -0297,-050.00,+00.00,01.00,000.00,1.00 -0298,-050.00,+00.00,01.00,000.00,1.00 -0299,-050.00,+00.00,01.00,000.00,1.00 -0300,-050.00,+00.00,01.00,000.00,1.00 -0301,-050.00,+00.00,01.00,000.00,1.00 -0302,-050.00,+00.00,01.00,000.00,1.00 -0303,-050.00,+00.00,01.00,000.00,1.00 -0304,-050.00,+00.00,01.00,000.00,1.00 -0305,-050.00,+00.00,01.00,000.00,1.00 -0306,-050.00,+00.00,01.00,000.00,1.00 -0307,-050.00,+00.00,01.00,000.00,1.00 -0308,-050.00,+00.00,01.00,000.00,1.00 -0309,-050.00,+00.00,01.00,000.00,1.00 -0310,-050.00,+00.00,01.00,000.00,1.00 -0311,-050.00,+00.00,01.00,000.00,1.00 -0312,-050.00,+00.00,01.00,000.00,1.00 -0313,-050.00,+00.00,01.00,000.00,1.00 -0314,-050.00,+00.00,01.00,000.00,1.00 -0315,-050.00,+00.00,01.00,000.00,1.00 -0316,-050.00,+00.00,01.00,000.00,1.00 -0317,-050.00,+00.00,01.00,000.00,1.00 -0318,-050.00,+00.00,01.00,000.00,1.00 -0319,-050.00,+00.00,01.00,000.00,1.00 -0320,-050.00,+00.00,01.00,000.00,1.00 -0321,-050.00,+00.00,01.00,000.00,1.00 -0322,-050.00,+00.00,01.00,000.00,1.00 -0323,-050.00,+00.00,01.00,000.00,1.00 -0324,-050.00,+00.00,01.00,000.00,1.00 -0325,-050.00,+00.00,01.00,000.00,1.00 -0326,-050.00,+00.00,01.00,000.00,1.00 -0327,-050.00,+00.00,01.00,000.00,1.00 -0328,-050.00,+00.00,01.00,000.00,1.00 -0329,-050.00,+00.00,01.00,000.00,1.00 -0330,-050.00,+00.00,01.00,000.00,1.00 -0331,-050.00,+00.00,01.00,000.00,1.00 -0332,-050.00,+00.00,01.00,000.00,1.00 -0333,-050.00,+00.00,01.00,000.00,1.00 -0334,-050.00,+00.00,01.00,000.00,1.00 -0335,-050.00,+00.00,01.00,000.00,1.00 -0336,-050.00,+00.00,01.00,000.00,1.00 -0337,-050.00,+00.00,01.00,000.00,1.00 -0338,-050.00,+00.00,01.00,000.00,1.00 -0339,-050.00,+00.00,01.00,000.00,1.00 -0340,-050.00,+00.00,01.00,000.00,1.00 -0341,-050.00,+00.00,01.00,000.00,1.00 -0342,-050.00,+00.00,01.00,000.00,1.00 -0343,-050.00,+00.00,01.00,000.00,1.00 -0344,-050.00,+00.00,01.00,000.00,1.00 -0345,-050.00,+00.00,01.00,000.00,1.00 -0346,-050.00,+00.00,01.00,000.00,1.00 -0347,-050.00,+00.00,01.00,000.00,1.00 -0348,-050.00,+00.00,01.00,000.00,1.00 -0349,-050.00,+00.00,01.00,000.00,1.00 -0350,-050.00,+00.00,01.00,000.00,1.00 -0351,-050.00,+00.00,01.00,000.00,1.00 -0352,-050.00,+00.00,01.00,000.00,1.00 -0353,-050.00,+00.00,01.00,000.00,1.00 -0354,-050.00,+00.00,01.00,000.00,1.00 -0355,-050.00,+00.00,01.00,000.00,1.00 -0356,-050.00,+00.00,01.00,000.00,1.00 -0357,-050.00,+00.00,01.00,000.00,1.00 -0358,-050.00,+00.00,01.00,000.00,1.00 -0359,-050.00,+00.00,01.00,000.00,1.00 -0360,-050.00,+00.00,01.00,000.00,1.00 -0361,-050.00,+00.00,01.00,000.00,1.00 -0362,-050.00,+00.00,01.00,000.00,1.00 -0363,-050.00,+00.00,01.00,000.00,1.00 -0364,-050.00,+00.00,01.00,000.00,1.00 -0365,-050.00,+00.00,01.00,000.00,1.00 -0366,-050.00,+00.00,01.00,000.00,1.00 -0367,-050.00,+00.00,01.00,000.00,1.00 -0368,-050.00,+00.00,01.00,000.00,1.00 -0369,-050.00,+00.00,01.00,000.00,1.00 -0370,-050.00,+00.00,01.00,000.00,1.00 -0371,-050.00,+00.00,01.00,000.00,1.00 -0372,-050.00,+00.00,01.00,000.00,1.00 -0373,-050.00,+00.00,01.00,000.00,1.00 -0374,-050.00,+00.00,01.00,000.00,1.00 -0375,-050.00,+00.00,01.00,000.00,1.00 -0376,-050.00,+00.00,01.00,000.00,1.00 -0377,-050.00,+00.00,01.00,000.00,1.00 -0378,-050.00,+00.00,01.00,000.00,1.00 -0379,-050.00,+00.00,01.00,000.00,1.00 -0380,-050.00,+00.00,01.00,000.00,1.00 -0381,-050.00,+00.00,01.00,000.00,1.00 -0382,-050.00,+00.00,01.00,000.00,1.00 -0383,-050.00,+00.00,01.00,000.00,1.00 -0384,-050.00,+00.00,01.00,000.00,1.00 -0385,-050.00,+00.00,01.00,000.00,1.00 -0386,-050.00,+00.00,01.00,000.00,1.00 -0387,-050.00,+00.00,01.00,000.00,1.00 -0388,-050.00,+00.00,01.00,000.00,1.00 -0389,-050.00,+00.00,01.00,000.00,1.00 -0390,-050.00,+00.00,01.00,000.00,1.00 -0391,-050.00,+00.00,01.00,000.00,1.00 -0392,-050.00,+00.00,01.00,000.00,1.00 -0393,-050.00,+00.00,01.00,000.00,1.00 -0394,-050.00,+00.00,01.00,000.00,1.00 -0395,-050.00,+00.00,01.00,000.00,1.00 -0396,-050.00,+00.00,01.00,000.00,1.00 -0397,-050.00,+00.00,01.00,000.00,1.00 -0398,-050.00,+00.00,01.00,000.00,1.00 -0399,-050.00,+00.00,01.00,000.00,1.00 -0400,-050.00,+00.00,01.00,000.00,1.00 -0401,-050.00,+00.00,01.00,000.00,1.00 -0402,-050.00,+00.00,01.00,000.00,1.00 -0403,-050.00,+00.00,01.00,000.00,1.00 -0404,-050.00,+00.00,01.00,000.00,1.00 -0405,-050.00,+00.00,01.00,000.00,1.00 -0406,-050.00,+00.00,01.00,000.00,1.00 -0407,-050.00,+00.00,01.00,000.00,1.00 -0408,-050.00,+00.00,01.00,000.00,1.00 -0409,-050.00,+00.00,01.00,000.00,1.00 -0410,-050.00,+00.00,01.00,000.00,1.00 -0411,-050.00,+00.00,01.00,000.00,1.00 -0412,-050.00,+00.00,01.00,000.00,1.00 -0413,-050.00,+00.00,01.00,000.00,1.00 -0414,-050.00,+00.00,01.00,000.00,1.00 -0415,-050.00,+00.00,01.00,000.00,1.00 -0416,-050.00,+00.00,01.00,000.00,1.00 -0417,-050.00,+00.00,01.00,000.00,1.00 -0418,-050.00,+00.00,01.00,000.00,1.00 -0419,-050.00,+00.00,01.00,000.00,1.00 -0420,-050.00,+00.00,01.00,000.00,1.00 -0421,-050.00,+00.00,01.00,000.00,1.00 -0422,-050.00,+00.00,01.00,000.00,1.00 -0423,-050.00,+00.00,01.00,000.00,1.00 -0424,-050.00,+00.00,01.00,000.00,1.00 -0425,-050.00,+00.00,01.00,000.00,1.00 -0426,-050.00,+00.00,01.00,000.00,1.00 -0427,-050.00,+00.00,01.00,000.00,1.00 -0428,-050.00,+00.00,01.00,000.00,1.00 -0429,-050.00,+00.00,01.00,000.00,1.00 -0430,-050.00,+00.00,01.00,000.00,1.00 -0431,-050.00,+00.00,01.00,000.00,1.00 -0432,-050.00,+00.00,01.00,000.00,1.00 -0433,-050.00,+00.00,01.00,000.00,1.00 -0434,-050.00,+00.00,01.00,000.00,1.00 -0435,-050.00,+00.00,01.00,000.00,1.00 -0436,-050.00,+00.00,01.00,000.00,1.00 -0437,-050.00,+00.00,01.00,000.00,1.00 -0438,-050.00,+00.00,01.00,000.00,1.00 -0439,-050.00,+00.00,01.00,000.00,1.00 -0440,-050.00,+00.00,01.00,000.00,1.00 -0441,-050.00,+00.00,01.00,000.00,1.00 -0442,-050.00,+00.00,01.00,000.00,1.00 -0443,-050.00,+00.00,01.00,000.00,1.00 -0444,-050.00,+00.00,01.00,000.00,1.00 -0445,-050.00,+00.00,01.00,000.00,1.00 -0446,-050.00,+00.00,01.00,000.00,1.00 -0447,-050.00,+00.00,01.00,000.00,1.00 -0448,-050.00,+00.00,01.00,000.00,1.00 -0449,-050.00,+00.00,01.00,000.00,1.00 -0450,-050.00,+00.00,01.00,000.00,1.00 -0451,-050.00,+00.00,01.00,000.00,1.00 -0452,-050.00,+00.00,01.00,000.00,1.00 -0453,-050.00,+00.00,01.00,000.00,1.00 -0454,-050.00,+00.00,01.00,000.00,1.00 -0455,-050.00,+00.00,01.00,000.00,1.00 -0456,-050.00,+00.00,01.00,000.00,1.00 -0457,-050.00,+00.00,01.00,000.00,1.00 -0458,-050.00,+00.00,01.00,000.00,1.00 -0459,-050.00,+00.00,01.00,000.00,1.00 -0460,-050.00,+00.00,01.00,000.00,1.00 -0461,-050.00,+00.00,01.00,000.00,1.00 -0462,-050.00,+00.00,01.00,000.00,1.00 -0463,-050.00,+00.00,01.00,000.00,1.00 -0464,-050.00,+00.00,01.00,000.00,1.00 -0465,-050.00,+00.00,01.00,000.00,1.00 -0466,-050.00,+00.00,01.00,000.00,1.00 -0467,-050.00,+00.00,01.00,000.00,1.00 -0468,-050.00,+00.00,01.00,000.00,1.00 -0469,-050.00,+00.00,01.00,000.00,1.00 -0470,-050.00,+00.00,01.00,000.00,1.00 -0471,-050.00,+00.00,01.00,000.00,1.00 -0472,-050.00,+00.00,01.00,000.00,1.00 -0473,-050.00,+00.00,01.00,000.00,1.00 -0474,-050.00,+00.00,01.00,000.00,1.00 -0475,-050.00,+00.00,01.00,000.00,1.00 -0476,-050.00,+00.00,01.00,000.00,1.00 -0477,-050.00,+00.00,01.00,000.00,1.00 -0478,-050.00,+00.00,01.00,000.00,1.00 -0479,-050.00,+00.00,01.00,000.00,1.00 -0480,-050.00,+00.00,01.00,000.00,1.00 -0481,-050.00,+00.00,01.00,000.00,1.00 -0482,-050.00,+00.00,01.00,000.00,1.00 -0483,-050.00,+00.00,01.00,000.00,1.00 -0484,-050.00,+00.00,01.00,000.00,1.00 -0485,-050.00,+00.00,01.00,000.00,1.00 -0486,-050.00,+00.00,01.00,000.00,1.00 -0487,-050.00,+00.00,01.00,000.00,1.00 -0488,-050.00,+00.00,01.00,000.00,1.00 -0489,-050.00,+00.00,01.00,000.00,1.00 -0490,-050.00,+00.00,01.00,000.00,1.00 -0491,-050.00,+00.00,01.00,000.00,1.00 -0492,-050.00,+00.00,01.00,000.00,1.00 -0493,-050.00,+00.00,01.00,000.00,1.00 -0494,-050.00,+00.00,01.00,000.00,1.00 -0495,-050.00,+00.00,01.00,000.00,1.00 -0496,-050.00,+00.00,01.00,000.00,1.00 -0497,-050.00,+00.00,01.00,000.00,1.00 -0498,-050.00,+00.00,01.00,000.00,1.00 -0499,-050.00,+00.00,01.00,000.00,1.00 -0500,-050.00,+00.00,01.00,000.00,1.00 -0501,-050.00,+00.00,01.00,000.00,1.00 -0502,-050.00,+00.00,01.00,000.00,1.00 -0503,-050.00,+00.00,01.00,000.00,1.00 -0504,-050.00,+00.00,01.00,000.00,1.00 -0505,-050.00,+00.00,01.00,000.00,1.00 -0506,-050.00,+00.00,01.00,000.00,1.00 -0507,-050.00,+00.00,01.00,000.00,1.00 -0508,-050.00,+00.00,01.00,000.00,1.00 -0509,-050.00,+00.00,01.00,000.00,1.00 -0510,-050.00,+00.00,01.00,000.00,1.00 -0511,-050.00,+00.00,01.00,000.00,1.00 -0512,-050.00,+00.00,01.00,000.00,1.00 -0513,-050.00,+00.00,01.00,000.00,1.00 -0514,-050.00,+00.00,01.00,000.00,1.00 -0515,-050.00,+00.00,01.00,000.00,1.00 -0516,-050.00,+00.00,01.00,000.00,1.00 -0517,-050.00,+00.00,01.00,000.00,1.00 -0518,-050.00,+00.00,01.00,000.00,1.00 -0519,-050.00,+00.00,01.00,000.00,1.00 -0520,-050.00,+00.00,01.00,000.00,1.00 -0521,-050.00,+00.00,01.00,000.00,1.00 -0522,-050.00,+00.00,01.00,000.00,1.00 -0523,-050.00,+00.00,01.00,000.00,1.00 -0524,-050.00,+00.00,01.00,000.00,1.00 -0525,-050.00,+00.00,01.00,000.00,1.00 -0526,-050.00,+00.00,01.00,000.00,1.00 -0527,-050.00,+00.00,01.00,000.00,1.00 -0528,-050.00,+00.00,01.00,000.00,1.00 -0529,-050.00,+00.00,01.00,000.00,1.00 -0530,-050.00,+00.00,01.00,000.00,1.00 -0531,-050.00,+00.00,01.00,000.00,1.00 -0532,-050.00,+00.00,01.00,000.00,1.00 -0533,-050.00,+00.00,01.00,000.00,1.00 -0534,-050.00,+00.00,01.00,000.00,1.00 -0535,-050.00,+00.00,01.00,000.00,1.00 -0536,-050.00,+00.00,01.00,000.00,1.00 -0537,-050.00,+00.00,01.00,000.00,1.00 -0538,-050.00,+00.00,01.00,000.00,1.00 -0539,-050.00,+00.00,01.00,000.00,1.00 -0540,-050.00,+00.00,01.00,000.00,1.00 -0541,-050.00,+00.00,01.00,000.00,1.00 -0542,-050.00,+00.00,01.00,000.00,1.00 -0543,-050.00,+00.00,01.00,000.00,1.00 -0544,-050.00,+00.00,01.00,000.00,1.00 -0545,-050.00,+00.00,01.00,000.00,1.00 -0546,-050.00,+00.00,01.00,000.00,1.00 -0547,-050.00,+00.00,01.00,000.00,1.00 -0548,-050.00,+00.00,01.00,000.00,1.00 -0549,-050.00,+00.00,01.00,000.00,1.00 -0550,-050.00,+00.00,01.00,000.00,1.00 -0551,-050.00,+00.00,01.00,000.00,1.00 -0552,-050.00,+00.00,01.00,000.00,1.00 -0553,-050.00,+00.00,01.00,000.00,1.00 -0554,-050.00,+00.00,01.00,000.00,1.00 -0555,-050.00,+00.00,01.00,000.00,1.00 -0556,-050.00,+00.00,01.00,000.00,1.00 -0557,-050.00,+00.00,01.00,000.00,1.00 -0558,-050.00,+00.00,01.00,000.00,1.00 -0559,-050.00,+00.00,01.00,000.00,1.00 -0560,-050.00,+00.00,01.00,000.00,1.00 -0561,-050.00,+00.00,01.00,000.00,1.00 -0562,-050.00,+00.00,01.00,000.00,1.00 -0563,-050.00,+00.00,01.00,000.00,1.00 -0564,-050.00,+00.00,01.00,000.00,1.00 -0565,-050.00,+00.00,01.00,000.00,1.00 -0566,-050.00,+00.00,01.00,000.00,1.00 -0567,-050.00,+00.00,01.00,000.00,1.00 -0568,-050.00,+00.00,01.00,000.00,1.00 -0569,-050.00,+00.00,01.00,000.00,1.00 -0570,-050.00,+00.00,01.00,000.00,1.00 -0571,-050.00,+00.00,01.00,000.00,1.00 -0572,-050.00,+00.00,01.00,000.00,1.00 -0573,-050.00,+00.00,01.00,000.00,1.00 -0574,-050.00,+00.00,01.00,000.00,1.00 -0575,-050.00,+00.00,01.00,000.00,1.00 -0576,-050.00,+00.00,01.00,000.00,1.00 -0577,-050.00,+00.00,01.00,000.00,1.00 -0578,-050.00,+00.00,01.00,000.00,1.00 -0579,-050.00,+00.00,01.00,000.00,1.00 -0580,-050.00,+00.00,01.00,000.00,1.00 -0581,-050.00,+00.00,01.00,000.00,1.00 -0582,-050.00,+00.00,01.00,000.00,1.00 -0583,-050.00,+00.00,01.00,000.00,1.00 -0584,-050.00,+00.00,01.00,000.00,1.00 -0585,-050.00,+00.00,01.00,000.00,1.00 -0586,-050.00,+00.00,01.00,000.00,1.00 -0587,-050.00,+00.00,01.00,000.00,1.00 -0588,-050.00,+00.00,01.00,000.00,1.00 -0589,-050.00,+00.00,01.00,000.00,1.00 -0590,-050.00,+00.00,01.00,000.00,1.00 -0591,-050.00,+00.00,01.00,000.00,1.00 -0592,-050.00,+00.00,01.00,000.00,1.00 -0593,-050.00,+00.00,01.00,000.00,1.00 -0594,-050.00,+00.00,01.00,000.00,1.00 -0595,-050.00,+00.00,01.00,000.00,1.00 -0596,-050.00,+00.00,01.00,000.00,1.00 -0597,-050.00,+00.00,01.00,000.00,1.00 -0598,-050.00,+00.00,01.00,000.00,1.00 -0599,-050.00,+00.00,01.00,000.00,1.00 -0600,-050.00,+00.00,01.00,000.00,1.00 -0601,-050.00,+00.00,01.00,000.00,1.00 -0602,-050.00,+00.00,01.00,000.00,1.00 -0603,-050.00,+00.00,01.00,000.00,1.00 -0604,-050.00,+00.00,01.00,000.00,1.00 -0605,-050.00,+00.00,01.00,000.00,1.00 -0606,-050.00,+00.00,01.00,000.00,1.00 -0607,-050.00,+00.00,01.00,000.00,1.00 -0608,-050.00,+00.00,01.00,000.00,1.00 -0609,-050.00,+00.00,01.00,000.00,1.00 -0610,-050.00,+00.00,01.00,000.00,1.00 -0611,-050.00,+00.00,01.00,000.00,1.00 -0612,-050.00,+00.00,01.00,000.00,1.00 -0613,-050.00,+00.00,01.00,000.00,1.00 -0614,-050.00,+00.00,01.00,000.00,1.00 -0615,-050.00,+00.00,01.00,000.00,1.00 -0616,-050.00,+00.00,01.00,000.00,1.00 -0617,-050.00,+00.00,01.00,000.00,1.00 -0618,-050.00,+00.00,01.00,000.00,1.00 -0619,-050.00,+00.00,01.00,000.00,1.00 -0620,-050.00,+00.00,01.00,000.00,1.00 -0621,-050.00,+00.00,01.00,000.00,1.00 -0622,-050.00,+00.00,01.00,000.00,1.00 -0623,-050.00,+00.00,01.00,000.00,1.00 -0624,-050.00,+00.00,01.00,000.00,1.00 -0625,-050.00,+00.00,01.00,000.00,1.00 -0626,-050.00,+00.00,01.00,000.00,1.00 -0627,-050.00,+00.00,01.00,000.00,1.00 -0628,-050.00,+00.00,01.00,000.00,1.00 -0629,-050.00,+00.00,01.00,000.00,1.00 -0630,-050.00,+00.00,01.00,000.00,1.00 -0631,-050.00,+00.00,01.00,000.00,1.00 -0632,-050.00,+00.00,01.00,000.00,1.00 -0633,-050.00,+00.00,01.00,000.00,1.00 -0634,-050.00,+00.00,01.00,000.00,1.00 -0635,-050.00,+00.00,01.00,000.00,1.00 -0636,-050.00,+00.00,01.00,000.00,1.00 -0637,-050.00,+00.00,01.00,000.00,1.00 -0638,-050.00,+00.00,01.00,000.00,1.00 -0639,-050.00,+00.00,01.00,000.00,1.00 -0640,-050.00,+00.00,01.00,000.00,1.00 -0641,-050.00,+00.00,01.00,000.00,1.00 -0642,-050.00,+00.00,01.00,000.00,1.00 -0643,-050.00,+00.00,01.00,000.00,1.00 -0644,-050.00,+00.00,01.00,000.00,1.00 -0645,-050.00,+00.00,01.00,000.00,1.00 -0646,-050.00,+00.00,01.00,000.00,1.00 -0647,-050.00,+00.00,01.00,000.00,1.00 -0648,-050.00,+00.00,01.00,000.00,1.00 -0649,-050.00,+00.00,01.00,000.00,1.00 -0650,-050.00,+00.00,01.00,000.00,1.00 -0651,-050.00,+00.00,01.00,000.00,1.00 -0652,-050.00,+00.00,01.00,000.00,1.00 -0653,-050.00,+00.00,01.00,000.00,1.00 -0654,-050.00,+00.00,01.00,000.00,1.00 -0655,-050.00,+00.00,01.00,000.00,1.00 -0656,-050.00,+00.00,01.00,000.00,1.00 -0657,-050.00,+00.00,01.00,000.00,1.00 -0658,-050.00,+00.00,01.00,000.00,1.00 -0659,-050.00,+00.00,01.00,000.00,1.00 -0660,-050.00,+00.00,01.00,000.00,1.00 -0661,-050.00,+00.00,01.00,000.00,1.00 -0662,-050.00,+00.00,01.00,000.00,1.00 -0663,-050.00,+00.00,01.00,000.00,1.00 -0664,-050.00,+00.00,01.00,000.00,1.00 -0665,-050.00,+00.00,01.00,000.00,1.00 -0666,-050.00,+00.00,01.00,000.00,1.00 -0667,-050.00,+00.00,01.00,000.00,1.00 -0668,-050.00,+00.00,01.00,000.00,1.00 -0669,-050.00,+00.00,01.00,000.00,1.00 -0670,-050.00,+00.00,01.00,000.00,1.00 -0671,-050.00,+00.00,01.00,000.00,1.00 -0672,-050.00,+00.00,01.00,000.00,1.00 -0673,-050.00,+00.00,01.00,000.00,1.00 -0674,-050.00,+00.00,01.00,000.00,1.00 -0675,-050.00,+00.00,01.00,000.00,1.00 -0676,-050.00,+00.00,01.00,000.00,1.00 -0677,-050.00,+00.00,01.00,000.00,1.00 -0678,-050.00,+00.00,01.00,000.00,1.00 -0679,-050.00,+00.00,01.00,000.00,1.00 -0680,-050.00,+00.00,01.00,000.00,1.00 -0681,-050.00,+00.00,01.00,000.00,1.00 -0682,-050.00,+00.00,01.00,000.00,1.00 -0683,-050.00,+00.00,01.00,000.00,1.00 -0684,-050.00,+00.00,01.00,000.00,1.00 -0685,-050.00,+00.00,01.00,000.00,1.00 -0686,-050.00,+00.00,01.00,000.00,1.00 -0687,-050.00,+00.00,01.00,000.00,1.00 -0688,-050.00,+00.00,01.00,000.00,1.00 -0689,-050.00,+00.00,01.00,000.00,1.00 -0690,-050.00,+00.00,01.00,000.00,1.00 -0691,-050.00,+00.00,01.00,000.00,1.00 -0692,-050.00,+00.00,01.00,000.00,1.00 -0693,-050.00,+00.00,01.00,000.00,1.00 -0694,-050.00,+00.00,01.00,000.00,1.00 -0695,-050.00,+00.00,01.00,000.00,1.00 -0696,-050.00,+00.00,01.00,000.00,1.00 -0697,-050.00,+00.00,01.00,000.00,1.00 -0698,-050.00,+00.00,01.00,000.00,1.00 -0699,-050.00,+00.00,01.00,000.00,1.00 -0700,-050.00,+00.00,01.00,000.00,1.00 -0701,-050.00,+00.00,01.00,000.00,1.00 -0702,-050.00,+00.00,01.00,000.00,1.00 -0703,-050.00,+00.00,01.00,000.00,1.00 -0704,-050.00,+00.00,01.00,000.00,1.00 -0705,-050.00,+00.00,01.00,000.00,1.00 -0706,-050.00,+00.00,01.00,000.00,1.00 -0707,-050.00,+00.00,01.00,000.00,1.00 -0708,-050.00,+00.00,01.00,000.00,1.00 -0709,-050.00,+00.00,01.00,000.00,1.00 -0710,-050.00,+00.00,01.00,000.00,1.00 -0711,-050.00,+00.00,01.00,000.00,1.00 -0712,-050.00,+00.00,01.00,000.00,1.00 -0713,-050.00,+00.00,01.00,000.00,1.00 -0714,-050.00,+00.00,01.00,000.00,1.00 -0715,-050.00,+00.00,01.00,000.00,1.00 -0716,-050.00,+00.00,01.00,000.00,1.00 -0717,-050.00,+00.00,01.00,000.00,1.00 -0718,-050.00,+00.00,01.00,000.00,1.00 -0719,-050.00,+00.00,01.00,000.00,1.00 -0720,-050.00,+00.00,01.00,000.00,1.00 -0721,-050.00,+00.00,01.00,000.00,1.00 -0722,-050.00,+00.00,01.00,000.00,1.00 -0723,-050.00,+00.00,01.00,000.00,1.00 -0724,-050.00,+00.00,01.00,000.00,1.00 -0725,-050.00,+00.00,01.00,000.00,1.00 -0726,-050.00,+00.00,01.00,000.00,1.00 -0727,-050.00,+00.00,01.00,000.00,1.00 -0728,-050.00,+00.00,01.00,000.00,1.00 -0729,-050.00,+00.00,01.00,000.00,1.00 -0730,-050.00,+00.00,01.00,000.00,1.00 -0731,-050.00,+00.00,01.00,000.00,1.00 -0732,-050.00,+00.00,01.00,000.00,1.00 -0733,-050.00,+00.00,01.00,000.00,1.00 -0734,-050.00,+00.00,01.00,000.00,1.00 -0735,-050.00,+00.00,01.00,000.00,1.00 -0736,-050.00,+00.00,01.00,000.00,1.00 -0737,-050.00,+00.00,01.00,000.00,1.00 -0738,-050.00,+00.00,01.00,000.00,1.00 -0739,-050.00,+00.00,01.00,000.00,1.00 -0740,-050.00,+00.00,01.00,000.00,1.00 -0741,-050.00,+00.00,01.00,000.00,1.00 -0742,-050.00,+00.00,01.00,000.00,1.00 -0743,-050.00,+00.00,01.00,000.00,1.00 -0744,-050.00,+00.00,01.00,000.00,1.00 -0745,-050.00,+00.00,01.00,000.00,1.00 -0746,-050.00,+00.00,01.00,000.00,1.00 -0747,-050.00,+00.00,01.00,000.00,1.00 -0748,-050.00,+00.00,01.00,000.00,1.00 -0749,-050.00,+00.00,01.00,000.00,1.00 -0750,-050.00,+00.00,01.00,000.00,1.00 -0751,-050.00,+00.00,01.00,000.00,1.00 -0752,-050.00,+00.00,01.00,000.00,1.00 -0753,-050.00,+00.00,01.00,000.00,1.00 -0754,-050.00,+00.00,01.00,000.00,1.00 -0755,-050.00,+00.00,01.00,000.00,1.00 -0756,-050.00,+00.00,01.00,000.00,1.00 -0757,-050.00,+00.00,01.00,000.00,1.00 -0758,-050.00,+00.00,01.00,000.00,1.00 -0759,-050.00,+00.00,01.00,000.00,1.00 -0760,-050.00,+00.00,01.00,000.00,1.00 -0761,-050.00,+00.00,01.00,000.00,1.00 -0762,-050.00,+00.00,01.00,000.00,1.00 -0763,-050.00,+00.00,01.00,000.00,1.00 -0764,-050.00,+00.00,01.00,000.00,1.00 -0765,-050.00,+00.00,01.00,000.00,1.00 -0766,-050.00,+00.00,01.00,000.00,1.00 -0767,-050.00,+00.00,01.00,000.00,1.00 -0768,-050.00,+00.00,01.00,000.00,1.00 -0769,-050.00,+00.00,01.00,000.00,1.00 -0770,-050.00,+00.00,01.00,000.00,1.00 -0771,-050.00,+00.00,01.00,000.00,1.00 -0772,-050.00,+00.00,01.00,000.00,1.00 -0773,-050.00,+00.00,01.00,000.00,1.00 -0774,-050.00,+00.00,01.00,000.00,1.00 -0775,-050.00,+00.00,01.00,000.00,1.00 -0776,-050.00,+00.00,01.00,000.00,1.00 -0777,-050.00,+00.00,01.00,000.00,1.00 -0778,-050.00,+00.00,01.00,000.00,1.00 -0779,-050.00,+00.00,01.00,000.00,1.00 -0780,-050.00,+00.00,01.00,000.00,1.00 -0781,-050.00,+00.00,01.00,000.00,1.00 -0782,-050.00,+00.00,01.00,000.00,1.00 -0783,-050.00,+00.00,01.00,000.00,1.00 -0784,-050.00,+00.00,01.00,000.00,1.00 -0785,-050.00,+00.00,01.00,000.00,1.00 -0786,-050.00,+00.00,01.00,000.00,1.00 -0787,-050.00,+00.00,01.00,000.00,1.00 -0788,-050.00,+00.00,01.00,000.00,1.00 -0789,-050.00,+00.00,01.00,000.00,1.00 -0790,-050.00,+00.00,01.00,000.00,1.00 -0791,-050.00,+00.00,01.00,000.00,1.00 -0792,-050.00,+00.00,01.00,000.00,1.00 -0793,-050.00,+00.00,01.00,000.00,1.00 -0794,-050.00,+00.00,01.00,000.00,1.00 -0795,-050.00,+00.00,01.00,000.00,1.00 -0796,-050.00,+00.00,01.00,000.00,1.00 -0797,-050.00,+00.00,01.00,000.00,1.00 -0798,-050.00,+00.00,01.00,000.00,1.00 -0799,-050.00,+00.00,01.00,000.00,1.00 -0800,-050.00,+00.00,01.00,000.00,1.00 -0801,-050.00,+00.00,01.00,000.00,1.00 -0802,-050.00,+00.00,01.00,000.00,1.00 -0803,-050.00,+00.00,01.00,000.00,1.00 -0804,-050.00,+00.00,01.00,000.00,1.00 -0805,-050.00,+00.00,01.00,000.00,1.00 -0806,-050.00,+00.00,01.00,000.00,1.00 -0807,-050.00,+00.00,01.00,000.00,1.00 -0808,-050.00,+00.00,01.00,000.00,1.00 -0809,-050.00,+00.00,01.00,000.00,1.00 -0810,-050.00,+00.00,01.00,000.00,1.00 -0811,-050.00,+00.00,01.00,000.00,1.00 -0812,-050.00,+00.00,01.00,000.00,1.00 -0813,-050.00,+00.00,01.00,000.00,1.00 -0814,-050.00,+00.00,01.00,000.00,1.00 -0815,-050.00,+00.00,01.00,000.00,1.00 -0816,-050.00,+00.00,01.00,000.00,1.00 -0817,-050.00,+00.00,01.00,000.00,1.00 -0818,-050.00,+00.00,01.00,000.00,1.00 -0819,-050.00,+00.00,01.00,000.00,1.00 -0820,-050.00,+00.00,01.00,000.00,1.00 -0821,-050.00,+00.00,01.00,000.00,1.00 -0822,-050.00,+00.00,01.00,000.00,1.00 -0823,-050.00,+00.00,01.00,000.00,1.00 -0824,-050.00,+00.00,01.00,000.00,1.00 -0825,-050.00,+00.00,01.00,000.00,1.00 -0826,-050.00,+00.00,01.00,000.00,1.00 -0827,-050.00,+00.00,01.00,000.00,1.00 -0828,-050.00,+00.00,01.00,000.00,1.00 -0829,-050.00,+00.00,01.00,000.00,1.00 -0830,-050.00,+00.00,01.00,000.00,1.00 -0831,-050.00,+00.00,01.00,000.00,1.00 -0832,-050.00,+00.00,01.00,000.00,1.00 -0833,-050.00,+00.00,01.00,000.00,1.00 -0834,-050.00,+00.00,01.00,000.00,1.00 -0835,-050.00,+00.00,01.00,000.00,1.00 -0836,-050.00,+00.00,01.00,000.00,1.00 -0837,-050.00,+00.00,01.00,000.00,1.00 -0838,-050.00,+00.00,01.00,000.00,1.00 -0839,-050.00,+00.00,01.00,000.00,1.00 -0840,-050.00,+00.00,01.00,000.00,1.00 -0841,-050.00,+00.00,01.00,000.00,1.00 -0842,-050.00,+00.00,01.00,000.00,1.00 -0843,-050.00,+00.00,01.00,000.00,1.00 -0844,-050.00,+00.00,01.00,000.00,1.00 -0845,-050.00,+00.00,01.00,000.00,1.00 -0846,-050.00,+00.00,01.00,000.00,1.00 -0847,-050.00,+00.00,01.00,000.00,1.00 -0848,-050.00,+00.00,01.00,000.00,1.00 -0849,-050.00,+00.00,01.00,000.00,1.00 -0850,-050.00,+00.00,01.00,000.00,1.00 -0851,-050.00,+00.00,01.00,000.00,1.00 -0852,-050.00,+00.00,01.00,000.00,1.00 -0853,-050.00,+00.00,01.00,000.00,1.00 -0854,-050.00,+00.00,01.00,000.00,1.00 -0855,-050.00,+00.00,01.00,000.00,1.00 -0856,-050.00,+00.00,01.00,000.00,1.00 -0857,-050.00,+00.00,01.00,000.00,1.00 -0858,-050.00,+00.00,01.00,000.00,1.00 -0859,-050.00,+00.00,01.00,000.00,1.00 -0860,-050.00,+00.00,01.00,000.00,1.00 -0861,-050.00,+00.00,01.00,000.00,1.00 -0862,-050.00,+00.00,01.00,000.00,1.00 -0863,-050.00,+00.00,01.00,000.00,1.00 -0864,-050.00,+00.00,01.00,000.00,1.00 -0865,-050.00,+00.00,01.00,000.00,1.00 -0866,-050.00,+00.00,01.00,000.00,1.00 -0867,-050.00,+00.00,01.00,000.00,1.00 -0868,-050.00,+00.00,01.00,000.00,1.00 -0869,-050.00,+00.00,01.00,000.00,1.00 -0870,-050.00,+00.00,01.00,000.00,1.00 -0871,-050.00,+00.00,01.00,000.00,1.00 -0872,-050.00,+00.00,01.00,000.00,1.00 -0873,-050.00,+00.00,01.00,000.00,1.00 -0874,-050.00,+00.00,01.00,000.00,1.00 -0875,-050.00,+00.00,01.00,000.00,1.00 -0876,-050.00,+00.00,01.00,000.00,1.00 -0877,-050.00,+00.00,01.00,000.00,1.00 -0878,-050.00,+00.00,01.00,000.00,1.00 -0879,-050.00,+00.00,01.00,000.00,1.00 -0880,-050.00,+00.00,01.00,000.00,1.00 -0881,-050.00,+00.00,01.00,000.00,1.00 -0882,-050.00,+00.00,01.00,000.00,1.00 -0883,-050.00,+00.00,01.00,000.00,1.00 -0884,-050.00,+00.00,01.00,000.00,1.00 -0885,-050.00,+00.00,01.00,000.00,1.00 -0886,-050.00,+00.00,01.00,000.00,1.00 -0887,-050.00,+00.00,01.00,000.00,1.00 -0888,-050.00,+00.00,01.00,000.00,1.00 -0889,-050.00,+00.00,01.00,000.00,1.00 -0890,-050.00,+00.00,01.00,000.00,1.00 -0891,-050.00,+00.00,01.00,000.00,1.00 -0892,-050.00,+00.00,01.00,000.00,1.00 -0893,-050.00,+00.00,01.00,000.00,1.00 -0894,-050.00,+00.00,01.00,000.00,1.00 -0895,-050.00,+00.00,01.00,000.00,1.00 -0896,-050.00,+00.00,01.00,000.00,1.00 -0897,-050.00,+00.00,01.00,000.00,1.00 -0898,-050.00,+00.00,01.00,000.00,1.00 -0899,-050.00,+00.00,01.00,000.00,1.00 -0900,-050.00,+00.00,01.00,000.00,1.00 -0901,-050.00,+00.00,01.00,000.00,1.00 -0902,-050.00,+00.00,01.00,000.00,1.00 -0903,-050.00,+00.00,01.00,000.00,1.00 -0904,-050.00,+00.00,01.00,000.00,1.00 -0905,-050.00,+00.00,01.00,000.00,1.00 -0906,-050.00,+00.00,01.00,000.00,1.00 -0907,-050.00,+00.00,01.00,000.00,1.00 -0908,-050.00,+00.00,01.00,000.00,1.00 -0909,-050.00,+00.00,01.00,000.00,1.00 -0910,-050.00,+00.00,01.00,000.00,1.00 -0911,-050.00,+00.00,01.00,000.00,1.00 -0912,-050.00,+00.00,01.00,000.00,1.00 -0913,-050.00,+00.00,01.00,000.00,1.00 -0914,-050.00,+00.00,01.00,000.00,1.00 -0915,-050.00,+00.00,01.00,000.00,1.00 -0916,-050.00,+00.00,01.00,000.00,1.00 -0917,-050.00,+00.00,01.00,000.00,1.00 -0918,-050.00,+00.00,01.00,000.00,1.00 -0919,-050.00,+00.00,01.00,000.00,1.00 -0920,-050.00,+00.00,01.00,000.00,1.00 -0921,-050.00,+00.00,01.00,000.00,1.00 -0922,-050.00,+00.00,01.00,000.00,1.00 -0923,-050.00,+00.00,01.00,000.00,1.00 -0924,-050.00,+00.00,01.00,000.00,1.00 -0925,-050.00,+00.00,01.00,000.00,1.00 -0926,-050.00,+00.00,01.00,000.00,1.00 -0927,-050.00,+00.00,01.00,000.00,1.00 -0928,-050.00,+00.00,01.00,000.00,1.00 -0929,-050.00,+00.00,01.00,000.00,1.00 -0930,-050.00,+00.00,01.00,000.00,1.00 -0931,-050.00,+00.00,01.00,000.00,1.00 -0932,-050.00,+00.00,01.00,000.00,1.00 -0933,-050.00,+00.00,01.00,000.00,1.00 -0934,-050.00,+00.00,01.00,000.00,1.00 -0935,-050.00,+00.00,01.00,000.00,1.00 -0936,-050.00,+00.00,01.00,000.00,1.00 -0937,-050.00,+00.00,01.00,000.00,1.00 -0938,-050.00,+00.00,01.00,000.00,1.00 -0939,-050.00,+00.00,01.00,000.00,1.00 -0940,-050.00,+00.00,01.00,000.00,1.00 -0941,-050.00,+00.00,01.00,000.00,1.00 -0942,-050.00,+00.00,01.00,000.00,1.00 -0943,-050.00,+00.00,01.00,000.00,1.00 -0944,-050.00,+00.00,01.00,000.00,1.00 -0945,-050.00,+00.00,01.00,000.00,1.00 -0946,-050.00,+00.00,01.00,000.00,1.00 -0947,-050.00,+00.00,01.00,000.00,1.00 -0948,-050.00,+00.00,01.00,000.00,1.00 -0949,-050.00,+00.00,01.00,000.00,1.00 -0950,-050.00,+00.00,01.00,000.00,1.00 -0951,-050.00,+00.00,01.00,000.00,1.00 -0952,-050.00,+00.00,01.00,000.00,1.00 -0953,-050.00,+00.00,01.00,000.00,1.00 -0954,-050.00,+00.00,01.00,000.00,1.00 -0955,-050.00,+00.00,01.00,000.00,1.00 -0956,-050.00,+00.00,01.00,000.00,1.00 -0957,-050.00,+00.00,01.00,000.00,1.00 -0958,-050.00,+00.00,01.00,000.00,1.00 -0959,-050.00,+00.00,01.00,000.00,1.00 -0960,-050.00,+00.00,01.00,000.00,1.00 -0961,-050.00,+00.00,01.00,000.00,1.00 -0962,-050.00,+00.00,01.00,000.00,1.00 -0963,-050.00,+00.00,01.00,000.00,1.00 -0964,-050.00,+00.00,01.00,000.00,1.00 -0965,-050.00,+00.00,01.00,000.00,1.00 -0966,-050.00,+00.00,01.00,000.00,1.00 -0967,-050.00,+00.00,01.00,000.00,1.00 -0968,-050.00,+00.00,01.00,000.00,1.00 -0969,-050.00,+00.00,01.00,000.00,1.00 -0970,-050.00,+00.00,01.00,000.00,1.00 -0971,-050.00,+00.00,01.00,000.00,1.00 -0972,-050.00,+00.00,01.00,000.00,1.00 -0973,-050.00,+00.00,01.00,000.00,1.00 -0974,-050.00,+00.00,01.00,000.00,1.00 -0975,-050.00,+00.00,01.00,000.00,1.00 -0976,-050.00,+00.00,01.00,000.00,1.00 -0977,-050.00,+00.00,01.00,000.00,1.00 -0978,-050.00,+00.00,01.00,000.00,1.00 -0979,-050.00,+00.00,01.00,000.00,1.00 -0980,-050.00,+00.00,01.00,000.00,1.00 -0981,-050.00,+00.00,01.00,000.00,1.00 -0982,-050.00,+00.00,01.00,000.00,1.00 -0983,-050.00,+00.00,01.00,000.00,1.00 -0984,-050.00,+00.00,01.00,000.00,1.00 -0985,-050.00,+00.00,01.00,000.00,1.00 -0986,-050.00,+00.00,01.00,000.00,1.00 -0987,-050.00,+00.00,01.00,000.00,1.00 -0988,-050.00,+00.00,01.00,000.00,1.00 -0989,-050.00,+00.00,01.00,000.00,1.00 -0990,-050.00,+00.00,01.00,000.00,1.00 -0991,-050.00,+00.00,01.00,000.00,1.00 -0992,-050.00,+00.00,01.00,000.00,1.00 -0993,-050.00,+00.00,01.00,000.00,1.00 -0994,-050.00,+00.00,01.00,000.00,1.00 -0995,-050.00,+00.00,01.00,000.00,1.00 -0996,-050.00,+00.00,01.00,000.00,1.00 -0997,-050.00,+00.00,01.00,000.00,1.00 -0998,-050.00,+00.00,01.00,000.00,1.00 -0999,-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 +-050.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/td_object_renderer/metadata/csv/t11_ch2.csv b/scripts/td_object_renderer/metadata/csv/t11_ch2.csv index b5095dac1d..59fc7ed029 100644 --- a/scripts/td_object_renderer/metadata/csv/t11_ch2.csv +++ b/scripts/td_object_renderer/metadata/csv/t11_ch2.csv @@ -1,1000 +1,1000 @@ -0000,-020.00,+00.00,01.00,000.00,1.00 -0001,-019.10,+00.00,01.00,000.00,1.00 -0002,-018.20,+00.00,01.00,000.00,1.00 -0003,-017.30,+00.00,01.00,000.00,1.00 -0004,-016.40,+00.00,01.00,000.00,1.00 -0005,-015.50,+00.00,01.00,000.00,1.00 -0006,-014.60,+00.00,01.00,000.00,1.00 -0007,-013.70,+00.00,01.00,000.00,1.00 -0008,-012.80,+00.00,01.00,000.00,1.00 -0009,-011.90,+00.00,01.00,000.00,1.00 -0010,-011.00,+00.00,01.00,000.00,1.00 -0011,-010.10,+00.00,01.00,000.00,1.00 -0012,-009.20,+00.00,01.00,000.00,1.00 -0013,-008.30,+00.00,01.00,000.00,1.00 -0014,-007.40,+00.00,01.00,000.00,1.00 -0015,-006.50,+00.00,01.00,000.00,1.00 -0016,-005.60,+00.00,01.00,000.00,1.00 -0017,-004.70,+00.00,01.00,000.00,1.00 -0018,-003.80,+00.00,01.00,000.00,1.00 -0019,-002.90,+00.00,01.00,000.00,1.00 -0020,-002.00,+00.00,01.00,000.00,1.00 -0021,-001.10,+00.00,01.00,000.00,1.00 -0022,-000.20,+00.00,01.00,000.00,1.00 -0023,+000.70,+00.00,01.00,000.00,1.00 -0024,+001.60,+00.00,01.00,000.00,1.00 -0025,+002.50,+00.00,01.00,000.00,1.00 -0026,+003.40,+00.00,01.00,000.00,1.00 -0027,+004.30,+00.00,01.00,000.00,1.00 -0028,+005.20,+00.00,01.00,000.00,1.00 -0029,+006.10,+00.00,01.00,000.00,1.00 -0030,+007.00,+00.00,01.00,000.00,1.00 -0031,+007.90,+00.00,01.00,000.00,1.00 -0032,+008.80,+00.00,01.00,000.00,1.00 -0033,+009.70,+00.00,01.00,000.00,1.00 -0034,+010.60,+00.00,01.00,000.00,1.00 -0035,+011.50,+00.00,01.00,000.00,1.00 -0036,+012.40,+00.00,01.00,000.00,1.00 -0037,+013.30,+00.00,01.00,000.00,1.00 -0038,+014.20,+00.00,01.00,000.00,1.00 -0039,+015.10,+00.00,01.00,000.00,1.00 -0040,+016.00,+00.00,01.00,000.00,1.00 -0041,+016.90,+00.00,01.00,000.00,1.00 -0042,+017.80,+00.00,01.00,000.00,1.00 -0043,+018.70,+00.00,01.00,000.00,1.00 -0044,+019.60,+00.00,01.00,000.00,1.00 -0045,+020.50,+00.00,01.00,000.00,1.00 -0046,+021.40,+00.00,01.00,000.00,1.00 -0047,+022.30,+00.00,01.00,000.00,1.00 -0048,+023.20,+00.00,01.00,000.00,1.00 -0049,+024.10,+00.00,01.00,000.00,1.00 -0050,+025.00,+00.00,01.00,000.00,1.00 -0051,+025.90,+00.00,01.00,000.00,1.00 -0052,+026.80,+00.00,01.00,000.00,1.00 -0053,+027.70,+00.00,01.00,000.00,1.00 -0054,+028.60,+00.00,01.00,000.00,1.00 -0055,+029.50,+00.00,01.00,000.00,1.00 -0056,+030.40,+00.00,01.00,000.00,1.00 -0057,+031.30,+00.00,01.00,000.00,1.00 -0058,+032.20,+00.00,01.00,000.00,1.00 -0059,+033.10,+00.00,01.00,000.00,1.00 -0060,+034.00,+00.00,01.00,000.00,1.00 -0061,+034.90,+00.00,01.00,000.00,1.00 -0062,+035.80,+00.00,01.00,000.00,1.00 -0063,+036.70,+00.00,01.00,000.00,1.00 -0064,+037.60,+00.00,01.00,000.00,1.00 -0065,+038.50,+00.00,01.00,000.00,1.00 -0066,+039.40,+00.00,01.00,000.00,1.00 -0067,+040.30,+00.00,01.00,000.00,1.00 -0068,+041.20,+00.00,01.00,000.00,1.00 -0069,+042.10,+00.00,01.00,000.00,1.00 -0070,+043.00,+00.00,01.00,000.00,1.00 -0071,+043.90,+00.00,01.00,000.00,1.00 -0072,+044.80,+00.00,01.00,000.00,1.00 -0073,+045.70,+00.00,01.00,000.00,1.00 -0074,+046.60,+00.00,01.00,000.00,1.00 -0075,+047.50,+00.00,01.00,000.00,1.00 -0076,+048.40,+00.00,01.00,000.00,1.00 -0077,+049.30,+00.00,01.00,000.00,1.00 -0078,+050.20,+00.00,01.00,000.00,1.00 -0079,+051.10,+00.00,01.00,000.00,1.00 -0080,+052.00,+00.00,01.00,000.00,1.00 -0081,+052.90,+00.00,01.00,000.00,1.00 -0082,+053.80,+00.00,01.00,000.00,1.00 -0083,+054.70,+00.00,01.00,000.00,1.00 -0084,+055.60,+00.00,01.00,000.00,1.00 -0085,+056.50,+00.00,01.00,000.00,1.00 -0086,+057.40,+00.00,01.00,000.00,1.00 -0087,+058.30,+00.00,01.00,000.00,1.00 -0088,+059.20,+00.00,01.00,000.00,1.00 -0089,+060.10,+00.00,01.00,000.00,1.00 -0090,+061.00,+00.00,01.00,000.00,1.00 -0091,+061.90,+00.00,01.00,000.00,1.00 -0092,+062.80,+00.00,01.00,000.00,1.00 -0093,+063.70,+00.00,01.00,000.00,1.00 -0094,+064.60,+00.00,01.00,000.00,1.00 -0095,+065.50,+00.00,01.00,000.00,1.00 -0096,+066.40,+00.00,01.00,000.00,1.00 -0097,+067.30,+00.00,01.00,000.00,1.00 -0098,+068.20,+00.00,01.00,000.00,1.00 -0099,+069.10,+00.00,01.00,000.00,1.00 -0100,+070.00,+00.00,01.00,000.00,1.00 -0101,+070.90,+00.00,01.00,000.00,1.00 -0102,+071.80,+00.00,01.00,000.00,1.00 -0103,+072.70,+00.00,01.00,000.00,1.00 -0104,+073.60,+00.00,01.00,000.00,1.00 -0105,+074.50,+00.00,01.00,000.00,1.00 -0106,+075.40,+00.00,01.00,000.00,1.00 -0107,+076.30,+00.00,01.00,000.00,1.00 -0108,+077.20,+00.00,01.00,000.00,1.00 -0109,+078.10,+00.00,01.00,000.00,1.00 -0110,+079.00,+00.00,01.00,000.00,1.00 -0111,+079.90,+00.00,01.00,000.00,1.00 -0112,+080.80,+00.00,01.00,000.00,1.00 -0113,+081.70,+00.00,01.00,000.00,1.00 -0114,+082.60,+00.00,01.00,000.00,1.00 -0115,+083.50,+00.00,01.00,000.00,1.00 -0116,+084.40,+00.00,01.00,000.00,1.00 -0117,+085.30,+00.00,01.00,000.00,1.00 -0118,+086.20,+00.00,01.00,000.00,1.00 -0119,+087.10,+00.00,01.00,000.00,1.00 -0120,+088.00,+00.00,01.00,000.00,1.00 -0121,+088.90,+00.00,01.00,000.00,1.00 -0122,+089.80,+00.00,01.00,000.00,1.00 -0123,+090.70,+00.00,01.00,000.00,1.00 -0124,+091.60,+00.00,01.00,000.00,1.00 -0125,+092.50,+00.00,01.00,000.00,1.00 -0126,+093.40,+00.00,01.00,000.00,1.00 -0127,+094.30,+00.00,01.00,000.00,1.00 -0128,+095.20,+00.00,01.00,000.00,1.00 -0129,+096.10,+00.00,01.00,000.00,1.00 -0130,+097.00,+00.00,01.00,000.00,1.00 -0131,+097.90,+00.00,01.00,000.00,1.00 -0132,+098.80,+00.00,01.00,000.00,1.00 -0133,+099.70,+00.00,01.00,000.00,1.00 -0134,+100.60,+00.00,01.00,000.00,1.00 -0135,+101.50,+00.00,01.00,000.00,1.00 -0136,+102.40,+00.00,01.00,000.00,1.00 -0137,+103.30,+00.00,01.00,000.00,1.00 -0138,+104.20,+00.00,01.00,000.00,1.00 -0139,+105.10,+00.00,01.00,000.00,1.00 -0140,+106.00,+00.00,01.00,000.00,1.00 -0141,+106.90,+00.00,01.00,000.00,1.00 -0142,+107.80,+00.00,01.00,000.00,1.00 -0143,+108.70,+00.00,01.00,000.00,1.00 -0144,+109.60,+00.00,01.00,000.00,1.00 -0145,+110.50,+00.00,01.00,000.00,1.00 -0146,+111.40,+00.00,01.00,000.00,1.00 -0147,+112.30,+00.00,01.00,000.00,1.00 -0148,+113.20,+00.00,01.00,000.00,1.00 -0149,+114.10,+00.00,01.00,000.00,1.00 -0150,+115.00,+00.00,01.00,000.00,1.00 -0151,+115.90,+00.00,01.00,000.00,1.00 -0152,+116.80,+00.00,01.00,000.00,1.00 -0153,+117.70,+00.00,01.00,000.00,1.00 -0154,+118.60,+00.00,01.00,000.00,1.00 -0155,+119.50,+00.00,01.00,000.00,1.00 -0156,+120.40,+00.00,01.00,000.00,1.00 -0157,+121.30,+00.00,01.00,000.00,1.00 -0158,+122.20,+00.00,01.00,000.00,1.00 -0159,+123.10,+00.00,01.00,000.00,1.00 -0160,+124.00,+00.00,01.00,000.00,1.00 -0161,+124.90,+00.00,01.00,000.00,1.00 -0162,+125.80,+00.00,01.00,000.00,1.00 -0163,+126.70,+00.00,01.00,000.00,1.00 -0164,+127.60,+00.00,01.00,000.00,1.00 -0165,+128.50,+00.00,01.00,000.00,1.00 -0166,+129.40,+00.00,01.00,000.00,1.00 -0167,+130.30,+00.00,01.00,000.00,1.00 -0168,+131.20,+00.00,01.00,000.00,1.00 -0169,+132.10,+00.00,01.00,000.00,1.00 -0170,+133.00,+00.00,01.00,000.00,1.00 -0171,+133.90,+00.00,01.00,000.00,1.00 -0172,+134.80,+00.00,01.00,000.00,1.00 -0173,+135.70,+00.00,01.00,000.00,1.00 -0174,+136.60,+00.00,01.00,000.00,1.00 -0175,+137.50,+00.00,01.00,000.00,1.00 -0176,+138.40,+00.00,01.00,000.00,1.00 -0177,+139.30,+00.00,01.00,000.00,1.00 -0178,+140.20,+00.00,01.00,000.00,1.00 -0179,+141.10,+00.00,01.00,000.00,1.00 -0180,+142.00,+00.00,01.00,000.00,1.00 -0181,+142.90,+00.00,01.00,000.00,1.00 -0182,+143.80,+00.00,01.00,000.00,1.00 -0183,+144.70,+00.00,01.00,000.00,1.00 -0184,+145.60,+00.00,01.00,000.00,1.00 -0185,+146.50,+00.00,01.00,000.00,1.00 -0186,+147.40,+00.00,01.00,000.00,1.00 -0187,+148.30,+00.00,01.00,000.00,1.00 -0188,+149.20,+00.00,01.00,000.00,1.00 -0189,+150.10,+00.00,01.00,000.00,1.00 -0190,+151.00,+00.00,01.00,000.00,1.00 -0191,+151.90,+00.00,01.00,000.00,1.00 -0192,+152.80,+00.00,01.00,000.00,1.00 -0193,+153.70,+00.00,01.00,000.00,1.00 -0194,+154.60,+00.00,01.00,000.00,1.00 -0195,+155.50,+00.00,01.00,000.00,1.00 -0196,+156.40,+00.00,01.00,000.00,1.00 -0197,+157.30,+00.00,01.00,000.00,1.00 -0198,+158.20,+00.00,01.00,000.00,1.00 -0199,+159.10,+00.00,01.00,000.00,1.00 -0200,+160.00,+00.00,01.00,000.00,1.00 -0201,+160.90,+00.00,01.00,000.00,1.00 -0202,+161.80,+00.00,01.00,000.00,1.00 -0203,+162.70,+00.00,01.00,000.00,1.00 -0204,+163.60,+00.00,01.00,000.00,1.00 -0205,+164.50,+00.00,01.00,000.00,1.00 -0206,+165.40,+00.00,01.00,000.00,1.00 -0207,+166.30,+00.00,01.00,000.00,1.00 -0208,+167.20,+00.00,01.00,000.00,1.00 -0209,+168.10,+00.00,01.00,000.00,1.00 -0210,+169.00,+00.00,01.00,000.00,1.00 -0211,+169.90,+00.00,01.00,000.00,1.00 -0212,+170.80,+00.00,01.00,000.00,1.00 -0213,+171.70,+00.00,01.00,000.00,1.00 -0214,+172.60,+00.00,01.00,000.00,1.00 -0215,+173.50,+00.00,01.00,000.00,1.00 -0216,+174.40,+00.00,01.00,000.00,1.00 -0217,+175.30,+00.00,01.00,000.00,1.00 -0218,+176.20,+00.00,01.00,000.00,1.00 -0219,+177.10,+00.00,01.00,000.00,1.00 -0220,+178.00,+00.00,01.00,000.00,1.00 -0221,+178.90,+00.00,01.00,000.00,1.00 -0222,+179.80,+00.00,01.00,000.00,1.00 -0223,-179.30,+00.00,01.00,000.00,1.00 -0224,-178.40,+00.00,01.00,000.00,1.00 -0225,-177.50,+00.00,01.00,000.00,1.00 -0226,-176.60,+00.00,01.00,000.00,1.00 -0227,-175.70,+00.00,01.00,000.00,1.00 -0228,-174.80,+00.00,01.00,000.00,1.00 -0229,-173.90,+00.00,01.00,000.00,1.00 -0230,-173.00,+00.00,01.00,000.00,1.00 -0231,-172.10,+00.00,01.00,000.00,1.00 -0232,-171.20,+00.00,01.00,000.00,1.00 -0233,-170.30,+00.00,01.00,000.00,1.00 -0234,-169.40,+00.00,01.00,000.00,1.00 -0235,-168.50,+00.00,01.00,000.00,1.00 -0236,-167.60,+00.00,01.00,000.00,1.00 -0237,-166.70,+00.00,01.00,000.00,1.00 -0238,-165.80,+00.00,01.00,000.00,1.00 -0239,-164.90,+00.00,01.00,000.00,1.00 -0240,-164.00,+00.00,01.00,000.00,1.00 -0241,-163.10,+00.00,01.00,000.00,1.00 -0242,-162.20,+00.00,01.00,000.00,1.00 -0243,-161.30,+00.00,01.00,000.00,1.00 -0244,-160.40,+00.00,01.00,000.00,1.00 -0245,-159.50,+00.00,01.00,000.00,1.00 -0246,-158.60,+00.00,01.00,000.00,1.00 -0247,-157.70,+00.00,01.00,000.00,1.00 -0248,-156.80,+00.00,01.00,000.00,1.00 -0249,-155.90,+00.00,01.00,000.00,1.00 -0250,-155.00,+00.00,01.00,000.00,1.00 -0251,-154.10,+00.00,01.00,000.00,1.00 -0252,-153.20,+00.00,01.00,000.00,1.00 -0253,-152.30,+00.00,01.00,000.00,1.00 -0254,-151.40,+00.00,01.00,000.00,1.00 -0255,-150.50,+00.00,01.00,000.00,1.00 -0256,-149.60,+00.00,01.00,000.00,1.00 -0257,-148.70,+00.00,01.00,000.00,1.00 -0258,-147.80,+00.00,01.00,000.00,1.00 -0259,-146.90,+00.00,01.00,000.00,1.00 -0260,-146.00,+00.00,01.00,000.00,1.00 -0261,-145.10,+00.00,01.00,000.00,1.00 -0262,-144.20,+00.00,01.00,000.00,1.00 -0263,-143.30,+00.00,01.00,000.00,1.00 -0264,-142.40,+00.00,01.00,000.00,1.00 -0265,-141.50,+00.00,01.00,000.00,1.00 -0266,-140.60,+00.00,01.00,000.00,1.00 -0267,-139.70,+00.00,01.00,000.00,1.00 -0268,-138.80,+00.00,01.00,000.00,1.00 -0269,-137.90,+00.00,01.00,000.00,1.00 -0270,-137.00,+00.00,01.00,000.00,1.00 -0271,-136.10,+00.00,01.00,000.00,1.00 -0272,-135.20,+00.00,01.00,000.00,1.00 -0273,-134.30,+00.00,01.00,000.00,1.00 -0274,-133.40,+00.00,01.00,000.00,1.00 -0275,-132.50,+00.00,01.00,000.00,1.00 -0276,-131.60,+00.00,01.00,000.00,1.00 -0277,-130.70,+00.00,01.00,000.00,1.00 -0278,-129.80,+00.00,01.00,000.00,1.00 -0279,-128.90,+00.00,01.00,000.00,1.00 -0280,-128.00,+00.00,01.00,000.00,1.00 -0281,-127.10,+00.00,01.00,000.00,1.00 -0282,-126.20,+00.00,01.00,000.00,1.00 -0283,-125.30,+00.00,01.00,000.00,1.00 -0284,-124.40,+00.00,01.00,000.00,1.00 -0285,-123.50,+00.00,01.00,000.00,1.00 -0286,-122.60,+00.00,01.00,000.00,1.00 -0287,-121.70,+00.00,01.00,000.00,1.00 -0288,-120.80,+00.00,01.00,000.00,1.00 -0289,-119.90,+00.00,01.00,000.00,1.00 -0290,-119.00,+00.00,01.00,000.00,1.00 -0291,-118.10,+00.00,01.00,000.00,1.00 -0292,-117.20,+00.00,01.00,000.00,1.00 -0293,-116.30,+00.00,01.00,000.00,1.00 -0294,-115.40,+00.00,01.00,000.00,1.00 -0295,-114.50,+00.00,01.00,000.00,1.00 -0296,-113.60,+00.00,01.00,000.00,1.00 -0297,-112.70,+00.00,01.00,000.00,1.00 -0298,-111.80,+00.00,01.00,000.00,1.00 -0299,-110.90,+00.00,01.00,000.00,1.00 -0300,-110.00,+00.00,01.00,000.00,1.00 -0301,-109.10,+00.00,01.00,000.00,1.00 -0302,-108.20,+00.00,01.00,000.00,1.00 -0303,-107.30,+00.00,01.00,000.00,1.00 -0304,-106.40,+00.00,01.00,000.00,1.00 -0305,-105.50,+00.00,01.00,000.00,1.00 -0306,-104.60,+00.00,01.00,000.00,1.00 -0307,-103.70,+00.00,01.00,000.00,1.00 -0308,-102.80,+00.00,01.00,000.00,1.00 -0309,-101.90,+00.00,01.00,000.00,1.00 -0310,-101.00,+00.00,01.00,000.00,1.00 -0311,-100.10,+00.00,01.00,000.00,1.00 -0312,-099.20,+00.00,01.00,000.00,1.00 -0313,-098.30,+00.00,01.00,000.00,1.00 -0314,-097.40,+00.00,01.00,000.00,1.00 -0315,-096.50,+00.00,01.00,000.00,1.00 -0316,-095.60,+00.00,01.00,000.00,1.00 -0317,-094.70,+00.00,01.00,000.00,1.00 -0318,-093.80,+00.00,01.00,000.00,1.00 -0319,-092.90,+00.00,01.00,000.00,1.00 -0320,-092.00,+00.00,01.00,000.00,1.00 -0321,-091.10,+00.00,01.00,000.00,1.00 -0322,-090.20,+00.00,01.00,000.00,1.00 -0323,-089.30,+00.00,01.00,000.00,1.00 -0324,-088.40,+00.00,01.00,000.00,1.00 -0325,-087.50,+00.00,01.00,000.00,1.00 -0326,-086.60,+00.00,01.00,000.00,1.00 -0327,-085.70,+00.00,01.00,000.00,1.00 -0328,-084.80,+00.00,01.00,000.00,1.00 -0329,-083.90,+00.00,01.00,000.00,1.00 -0330,-083.00,+00.00,01.00,000.00,1.00 -0331,-082.10,+00.00,01.00,000.00,1.00 -0332,-081.20,+00.00,01.00,000.00,1.00 -0333,-080.30,+00.00,01.00,000.00,1.00 -0334,-079.40,+00.00,01.00,000.00,1.00 -0335,-078.50,+00.00,01.00,000.00,1.00 -0336,-077.60,+00.00,01.00,000.00,1.00 -0337,-076.70,+00.00,01.00,000.00,1.00 -0338,-075.80,+00.00,01.00,000.00,1.00 -0339,-074.90,+00.00,01.00,000.00,1.00 -0340,-074.00,+00.00,01.00,000.00,1.00 -0341,-073.10,+00.00,01.00,000.00,1.00 -0342,-072.20,+00.00,01.00,000.00,1.00 -0343,-071.30,+00.00,01.00,000.00,1.00 -0344,-070.40,+00.00,01.00,000.00,1.00 -0345,-069.50,+00.00,01.00,000.00,1.00 -0346,-068.60,+00.00,01.00,000.00,1.00 -0347,-067.70,+00.00,01.00,000.00,1.00 -0348,-066.80,+00.00,01.00,000.00,1.00 -0349,-065.90,+00.00,01.00,000.00,1.00 -0350,-065.00,+00.00,01.00,000.00,1.00 -0351,-064.10,+00.00,01.00,000.00,1.00 -0352,-063.20,+00.00,01.00,000.00,1.00 -0353,-062.30,+00.00,01.00,000.00,1.00 -0354,-061.40,+00.00,01.00,000.00,1.00 -0355,-060.50,+00.00,01.00,000.00,1.00 -0356,-059.60,+00.00,01.00,000.00,1.00 -0357,-058.70,+00.00,01.00,000.00,1.00 -0358,-057.80,+00.00,01.00,000.00,1.00 -0359,-056.90,+00.00,01.00,000.00,1.00 -0360,-056.00,+00.00,01.00,000.00,1.00 -0361,-055.10,+00.00,01.00,000.00,1.00 -0362,-054.20,+00.00,01.00,000.00,1.00 -0363,-053.30,+00.00,01.00,000.00,1.00 -0364,-052.40,+00.00,01.00,000.00,1.00 -0365,-051.50,+00.00,01.00,000.00,1.00 -0366,-050.60,+00.00,01.00,000.00,1.00 -0367,-049.70,+00.00,01.00,000.00,1.00 -0368,-048.80,+00.00,01.00,000.00,1.00 -0369,-047.90,+00.00,01.00,000.00,1.00 -0370,-047.00,+00.00,01.00,000.00,1.00 -0371,-046.10,+00.00,01.00,000.00,1.00 -0372,-045.20,+00.00,01.00,000.00,1.00 -0373,-044.30,+00.00,01.00,000.00,1.00 -0374,-043.40,+00.00,01.00,000.00,1.00 -0375,-042.50,+00.00,01.00,000.00,1.00 -0376,-041.60,+00.00,01.00,000.00,1.00 -0377,-040.70,+00.00,01.00,000.00,1.00 -0378,-039.80,+00.00,01.00,000.00,1.00 -0379,-038.90,+00.00,01.00,000.00,1.00 -0380,-038.00,+00.00,01.00,000.00,1.00 -0381,-037.10,+00.00,01.00,000.00,1.00 -0382,-036.20,+00.00,01.00,000.00,1.00 -0383,-035.30,+00.00,01.00,000.00,1.00 -0384,-034.40,+00.00,01.00,000.00,1.00 -0385,-033.50,+00.00,01.00,000.00,1.00 -0386,-032.60,+00.00,01.00,000.00,1.00 -0387,-031.70,+00.00,01.00,000.00,1.00 -0388,-030.80,+00.00,01.00,000.00,1.00 -0389,-029.90,+00.00,01.00,000.00,1.00 -0390,-029.00,+00.00,01.00,000.00,1.00 -0391,-028.10,+00.00,01.00,000.00,1.00 -0392,-027.20,+00.00,01.00,000.00,1.00 -0393,-026.30,+00.00,01.00,000.00,1.00 -0394,-025.40,+00.00,01.00,000.00,1.00 -0395,-024.50,+00.00,01.00,000.00,1.00 -0396,-023.60,+00.00,01.00,000.00,1.00 -0397,-022.70,+00.00,01.00,000.00,1.00 -0398,-021.80,+00.00,01.00,000.00,1.00 -0399,-020.90,+00.00,01.00,000.00,1.00 -0400,-020.00,+00.00,01.00,000.00,1.00 -0401,-019.10,+00.00,01.00,000.00,1.00 -0402,-018.20,+00.00,01.00,000.00,1.00 -0403,-017.30,+00.00,01.00,000.00,1.00 -0404,-016.40,+00.00,01.00,000.00,1.00 -0405,-015.50,+00.00,01.00,000.00,1.00 -0406,-014.60,+00.00,01.00,000.00,1.00 -0407,-013.70,+00.00,01.00,000.00,1.00 -0408,-012.80,+00.00,01.00,000.00,1.00 -0409,-011.90,+00.00,01.00,000.00,1.00 -0410,-011.00,+00.00,01.00,000.00,1.00 -0411,-010.10,+00.00,01.00,000.00,1.00 -0412,-009.20,+00.00,01.00,000.00,1.00 -0413,-008.30,+00.00,01.00,000.00,1.00 -0414,-007.40,+00.00,01.00,000.00,1.00 -0415,-006.50,+00.00,01.00,000.00,1.00 -0416,-005.60,+00.00,01.00,000.00,1.00 -0417,-004.70,+00.00,01.00,000.00,1.00 -0418,-003.80,+00.00,01.00,000.00,1.00 -0419,-002.90,+00.00,01.00,000.00,1.00 -0420,-002.00,+00.00,01.00,000.00,1.00 -0421,-001.10,+00.00,01.00,000.00,1.00 -0422,-000.20,+00.00,01.00,000.00,1.00 -0423,+000.70,+00.00,01.00,000.00,1.00 -0424,+001.60,+00.00,01.00,000.00,1.00 -0425,+002.50,+00.00,01.00,000.00,1.00 -0426,+003.40,+00.00,01.00,000.00,1.00 -0427,+004.30,+00.00,01.00,000.00,1.00 -0428,+005.20,+00.00,01.00,000.00,1.00 -0429,+006.10,+00.00,01.00,000.00,1.00 -0430,+007.00,+00.00,01.00,000.00,1.00 -0431,+007.90,+00.00,01.00,000.00,1.00 -0432,+008.80,+00.00,01.00,000.00,1.00 -0433,+009.70,+00.00,01.00,000.00,1.00 -0434,+010.60,+00.00,01.00,000.00,1.00 -0435,+011.50,+00.00,01.00,000.00,1.00 -0436,+012.40,+00.00,01.00,000.00,1.00 -0437,+013.30,+00.00,01.00,000.00,1.00 -0438,+014.20,+00.00,01.00,000.00,1.00 -0439,+015.10,+00.00,01.00,000.00,1.00 -0440,+016.00,+00.00,01.00,000.00,1.00 -0441,+016.90,+00.00,01.00,000.00,1.00 -0442,+017.80,+00.00,01.00,000.00,1.00 -0443,+018.70,+00.00,01.00,000.00,1.00 -0444,+019.60,+00.00,01.00,000.00,1.00 -0445,+020.50,+00.00,01.00,000.00,1.00 -0446,+021.40,+00.00,01.00,000.00,1.00 -0447,+022.30,+00.00,01.00,000.00,1.00 -0448,+023.20,+00.00,01.00,000.00,1.00 -0449,+024.10,+00.00,01.00,000.00,1.00 -0450,+025.00,+00.00,01.00,000.00,1.00 -0451,+025.90,+00.00,01.00,000.00,1.00 -0452,+026.80,+00.00,01.00,000.00,1.00 -0453,+027.70,+00.00,01.00,000.00,1.00 -0454,+028.60,+00.00,01.00,000.00,1.00 -0455,+029.50,+00.00,01.00,000.00,1.00 -0456,+030.40,+00.00,01.00,000.00,1.00 -0457,+031.30,+00.00,01.00,000.00,1.00 -0458,+032.20,+00.00,01.00,000.00,1.00 -0459,+033.10,+00.00,01.00,000.00,1.00 -0460,+034.00,+00.00,01.00,000.00,1.00 -0461,+034.90,+00.00,01.00,000.00,1.00 -0462,+035.80,+00.00,01.00,000.00,1.00 -0463,+036.70,+00.00,01.00,000.00,1.00 -0464,+037.60,+00.00,01.00,000.00,1.00 -0465,+038.50,+00.00,01.00,000.00,1.00 -0466,+039.40,+00.00,01.00,000.00,1.00 -0467,+040.30,+00.00,01.00,000.00,1.00 -0468,+041.20,+00.00,01.00,000.00,1.00 -0469,+042.10,+00.00,01.00,000.00,1.00 -0470,+043.00,+00.00,01.00,000.00,1.00 -0471,+043.90,+00.00,01.00,000.00,1.00 -0472,+044.80,+00.00,01.00,000.00,1.00 -0473,+045.70,+00.00,01.00,000.00,1.00 -0474,+046.60,+00.00,01.00,000.00,1.00 -0475,+047.50,+00.00,01.00,000.00,1.00 -0476,+048.40,+00.00,01.00,000.00,1.00 -0477,+049.30,+00.00,01.00,000.00,1.00 -0478,+050.20,+00.00,01.00,000.00,1.00 -0479,+051.10,+00.00,01.00,000.00,1.00 -0480,+052.00,+00.00,01.00,000.00,1.00 -0481,+052.90,+00.00,01.00,000.00,1.00 -0482,+053.80,+00.00,01.00,000.00,1.00 -0483,+054.70,+00.00,01.00,000.00,1.00 -0484,+055.60,+00.00,01.00,000.00,1.00 -0485,+056.50,+00.00,01.00,000.00,1.00 -0486,+057.40,+00.00,01.00,000.00,1.00 -0487,+058.30,+00.00,01.00,000.00,1.00 -0488,+059.20,+00.00,01.00,000.00,1.00 -0489,+060.10,+00.00,01.00,000.00,1.00 -0490,+061.00,+00.00,01.00,000.00,1.00 -0491,+061.90,+00.00,01.00,000.00,1.00 -0492,+062.80,+00.00,01.00,000.00,1.00 -0493,+063.70,+00.00,01.00,000.00,1.00 -0494,+064.60,+00.00,01.00,000.00,1.00 -0495,+065.50,+00.00,01.00,000.00,1.00 -0496,+066.40,+00.00,01.00,000.00,1.00 -0497,+067.30,+00.00,01.00,000.00,1.00 -0498,+068.20,+00.00,01.00,000.00,1.00 -0499,+069.10,+00.00,01.00,000.00,1.00 -0500,+070.00,+00.00,01.00,000.00,1.00 -0501,+070.90,+00.00,01.00,000.00,1.00 -0502,+071.80,+00.00,01.00,000.00,1.00 -0503,+072.70,+00.00,01.00,000.00,1.00 -0504,+073.60,+00.00,01.00,000.00,1.00 -0505,+074.50,+00.00,01.00,000.00,1.00 -0506,+075.40,+00.00,01.00,000.00,1.00 -0507,+076.30,+00.00,01.00,000.00,1.00 -0508,+077.20,+00.00,01.00,000.00,1.00 -0509,+078.10,+00.00,01.00,000.00,1.00 -0510,+079.00,+00.00,01.00,000.00,1.00 -0511,+079.90,+00.00,01.00,000.00,1.00 -0512,+080.80,+00.00,01.00,000.00,1.00 -0513,+081.70,+00.00,01.00,000.00,1.00 -0514,+082.60,+00.00,01.00,000.00,1.00 -0515,+083.50,+00.00,01.00,000.00,1.00 -0516,+084.40,+00.00,01.00,000.00,1.00 -0517,+085.30,+00.00,01.00,000.00,1.00 -0518,+086.20,+00.00,01.00,000.00,1.00 -0519,+087.10,+00.00,01.00,000.00,1.00 -0520,+088.00,+00.00,01.00,000.00,1.00 -0521,+088.90,+00.00,01.00,000.00,1.00 -0522,+089.80,+00.00,01.00,000.00,1.00 -0523,+090.70,+00.00,01.00,000.00,1.00 -0524,+091.60,+00.00,01.00,000.00,1.00 -0525,+092.50,+00.00,01.00,000.00,1.00 -0526,+093.40,+00.00,01.00,000.00,1.00 -0527,+094.30,+00.00,01.00,000.00,1.00 -0528,+095.20,+00.00,01.00,000.00,1.00 -0529,+096.10,+00.00,01.00,000.00,1.00 -0530,+097.00,+00.00,01.00,000.00,1.00 -0531,+097.90,+00.00,01.00,000.00,1.00 -0532,+098.80,+00.00,01.00,000.00,1.00 -0533,+099.70,+00.00,01.00,000.00,1.00 -0534,+100.60,+00.00,01.00,000.00,1.00 -0535,+101.50,+00.00,01.00,000.00,1.00 -0536,+102.40,+00.00,01.00,000.00,1.00 -0537,+103.30,+00.00,01.00,000.00,1.00 -0538,+104.20,+00.00,01.00,000.00,1.00 -0539,+105.10,+00.00,01.00,000.00,1.00 -0540,+106.00,+00.00,01.00,000.00,1.00 -0541,+106.90,+00.00,01.00,000.00,1.00 -0542,+107.80,+00.00,01.00,000.00,1.00 -0543,+108.70,+00.00,01.00,000.00,1.00 -0544,+109.60,+00.00,01.00,000.00,1.00 -0545,+110.50,+00.00,01.00,000.00,1.00 -0546,+111.40,+00.00,01.00,000.00,1.00 -0547,+112.30,+00.00,01.00,000.00,1.00 -0548,+113.20,+00.00,01.00,000.00,1.00 -0549,+114.10,+00.00,01.00,000.00,1.00 -0550,+115.00,+00.00,01.00,000.00,1.00 -0551,+115.90,+00.00,01.00,000.00,1.00 -0552,+116.80,+00.00,01.00,000.00,1.00 -0553,+117.70,+00.00,01.00,000.00,1.00 -0554,+118.60,+00.00,01.00,000.00,1.00 -0555,+119.50,+00.00,01.00,000.00,1.00 -0556,+120.40,+00.00,01.00,000.00,1.00 -0557,+121.30,+00.00,01.00,000.00,1.00 -0558,+122.20,+00.00,01.00,000.00,1.00 -0559,+123.10,+00.00,01.00,000.00,1.00 -0560,+124.00,+00.00,01.00,000.00,1.00 -0561,+124.90,+00.00,01.00,000.00,1.00 -0562,+125.80,+00.00,01.00,000.00,1.00 -0563,+126.70,+00.00,01.00,000.00,1.00 -0564,+127.60,+00.00,01.00,000.00,1.00 -0565,+128.50,+00.00,01.00,000.00,1.00 -0566,+129.40,+00.00,01.00,000.00,1.00 -0567,+130.30,+00.00,01.00,000.00,1.00 -0568,+131.20,+00.00,01.00,000.00,1.00 -0569,+132.10,+00.00,01.00,000.00,1.00 -0570,+133.00,+00.00,01.00,000.00,1.00 -0571,+133.90,+00.00,01.00,000.00,1.00 -0572,+134.80,+00.00,01.00,000.00,1.00 -0573,+135.70,+00.00,01.00,000.00,1.00 -0574,+136.60,+00.00,01.00,000.00,1.00 -0575,+137.50,+00.00,01.00,000.00,1.00 -0576,+138.40,+00.00,01.00,000.00,1.00 -0577,+139.30,+00.00,01.00,000.00,1.00 -0578,+140.20,+00.00,01.00,000.00,1.00 -0579,+141.10,+00.00,01.00,000.00,1.00 -0580,+142.00,+00.00,01.00,000.00,1.00 -0581,+142.90,+00.00,01.00,000.00,1.00 -0582,+143.80,+00.00,01.00,000.00,1.00 -0583,+144.70,+00.00,01.00,000.00,1.00 -0584,+145.60,+00.00,01.00,000.00,1.00 -0585,+146.50,+00.00,01.00,000.00,1.00 -0586,+147.40,+00.00,01.00,000.00,1.00 -0587,+148.30,+00.00,01.00,000.00,1.00 -0588,+149.20,+00.00,01.00,000.00,1.00 -0589,+150.10,+00.00,01.00,000.00,1.00 -0590,+151.00,+00.00,01.00,000.00,1.00 -0591,+151.90,+00.00,01.00,000.00,1.00 -0592,+152.80,+00.00,01.00,000.00,1.00 -0593,+153.70,+00.00,01.00,000.00,1.00 -0594,+154.60,+00.00,01.00,000.00,1.00 -0595,+155.50,+00.00,01.00,000.00,1.00 -0596,+156.40,+00.00,01.00,000.00,1.00 -0597,+157.30,+00.00,01.00,000.00,1.00 -0598,+158.20,+00.00,01.00,000.00,1.00 -0599,+159.10,+00.00,01.00,000.00,1.00 -0600,+160.00,+00.00,01.00,000.00,1.00 -0601,+160.90,+00.00,01.00,000.00,1.00 -0602,+161.80,+00.00,01.00,000.00,1.00 -0603,+162.70,+00.00,01.00,000.00,1.00 -0604,+163.60,+00.00,01.00,000.00,1.00 -0605,+164.50,+00.00,01.00,000.00,1.00 -0606,+165.40,+00.00,01.00,000.00,1.00 -0607,+166.30,+00.00,01.00,000.00,1.00 -0608,+167.20,+00.00,01.00,000.00,1.00 -0609,+168.10,+00.00,01.00,000.00,1.00 -0610,+169.00,+00.00,01.00,000.00,1.00 -0611,+169.90,+00.00,01.00,000.00,1.00 -0612,+170.80,+00.00,01.00,000.00,1.00 -0613,+171.70,+00.00,01.00,000.00,1.00 -0614,+172.60,+00.00,01.00,000.00,1.00 -0615,+173.50,+00.00,01.00,000.00,1.00 -0616,+174.40,+00.00,01.00,000.00,1.00 -0617,+175.30,+00.00,01.00,000.00,1.00 -0618,+176.20,+00.00,01.00,000.00,1.00 -0619,+177.10,+00.00,01.00,000.00,1.00 -0620,+178.00,+00.00,01.00,000.00,1.00 -0621,+178.90,+00.00,01.00,000.00,1.00 -0622,+179.80,+00.00,01.00,000.00,1.00 -0623,-179.30,+00.00,01.00,000.00,1.00 -0624,-178.40,+00.00,01.00,000.00,1.00 -0625,-177.50,+00.00,01.00,000.00,1.00 -0626,-176.60,+00.00,01.00,000.00,1.00 -0627,-175.70,+00.00,01.00,000.00,1.00 -0628,-174.80,+00.00,01.00,000.00,1.00 -0629,-173.90,+00.00,01.00,000.00,1.00 -0630,-173.00,+00.00,01.00,000.00,1.00 -0631,-172.10,+00.00,01.00,000.00,1.00 -0632,-171.20,+00.00,01.00,000.00,1.00 -0633,-170.30,+00.00,01.00,000.00,1.00 -0634,-169.40,+00.00,01.00,000.00,1.00 -0635,-168.50,+00.00,01.00,000.00,1.00 -0636,-167.60,+00.00,01.00,000.00,1.00 -0637,-166.70,+00.00,01.00,000.00,1.00 -0638,-165.80,+00.00,01.00,000.00,1.00 -0639,-164.90,+00.00,01.00,000.00,1.00 -0640,-164.00,+00.00,01.00,000.00,1.00 -0641,-163.10,+00.00,01.00,000.00,1.00 -0642,-162.20,+00.00,01.00,000.00,1.00 -0643,-161.30,+00.00,01.00,000.00,1.00 -0644,-160.40,+00.00,01.00,000.00,1.00 -0645,-159.50,+00.00,01.00,000.00,1.00 -0646,-158.60,+00.00,01.00,000.00,1.00 -0647,-157.70,+00.00,01.00,000.00,1.00 -0648,-156.80,+00.00,01.00,000.00,1.00 -0649,-155.90,+00.00,01.00,000.00,1.00 -0650,-155.00,+00.00,01.00,000.00,1.00 -0651,-154.10,+00.00,01.00,000.00,1.00 -0652,-153.20,+00.00,01.00,000.00,1.00 -0653,-152.30,+00.00,01.00,000.00,1.00 -0654,-151.40,+00.00,01.00,000.00,1.00 -0655,-150.50,+00.00,01.00,000.00,1.00 -0656,-149.60,+00.00,01.00,000.00,1.00 -0657,-148.70,+00.00,01.00,000.00,1.00 -0658,-147.80,+00.00,01.00,000.00,1.00 -0659,-146.90,+00.00,01.00,000.00,1.00 -0660,-146.00,+00.00,01.00,000.00,1.00 -0661,-145.10,+00.00,01.00,000.00,1.00 -0662,-144.20,+00.00,01.00,000.00,1.00 -0663,-143.30,+00.00,01.00,000.00,1.00 -0664,-142.40,+00.00,01.00,000.00,1.00 -0665,-141.50,+00.00,01.00,000.00,1.00 -0666,-140.60,+00.00,01.00,000.00,1.00 -0667,-139.70,+00.00,01.00,000.00,1.00 -0668,-138.80,+00.00,01.00,000.00,1.00 -0669,-137.90,+00.00,01.00,000.00,1.00 -0670,-137.00,+00.00,01.00,000.00,1.00 -0671,-136.10,+00.00,01.00,000.00,1.00 -0672,-135.20,+00.00,01.00,000.00,1.00 -0673,-134.30,+00.00,01.00,000.00,1.00 -0674,-133.40,+00.00,01.00,000.00,1.00 -0675,-132.50,+00.00,01.00,000.00,1.00 -0676,-131.60,+00.00,01.00,000.00,1.00 -0677,-130.70,+00.00,01.00,000.00,1.00 -0678,-129.80,+00.00,01.00,000.00,1.00 -0679,-128.90,+00.00,01.00,000.00,1.00 -0680,-128.00,+00.00,01.00,000.00,1.00 -0681,-127.10,+00.00,01.00,000.00,1.00 -0682,-126.20,+00.00,01.00,000.00,1.00 -0683,-125.30,+00.00,01.00,000.00,1.00 -0684,-124.40,+00.00,01.00,000.00,1.00 -0685,-123.50,+00.00,01.00,000.00,1.00 -0686,-122.60,+00.00,01.00,000.00,1.00 -0687,-121.70,+00.00,01.00,000.00,1.00 -0688,-120.80,+00.00,01.00,000.00,1.00 -0689,-119.90,+00.00,01.00,000.00,1.00 -0690,-119.00,+00.00,01.00,000.00,1.00 -0691,-118.10,+00.00,01.00,000.00,1.00 -0692,-117.20,+00.00,01.00,000.00,1.00 -0693,-116.30,+00.00,01.00,000.00,1.00 -0694,-115.40,+00.00,01.00,000.00,1.00 -0695,-114.50,+00.00,01.00,000.00,1.00 -0696,-113.60,+00.00,01.00,000.00,1.00 -0697,-112.70,+00.00,01.00,000.00,1.00 -0698,-111.80,+00.00,01.00,000.00,1.00 -0699,-110.90,+00.00,01.00,000.00,1.00 -0700,-110.00,+00.00,01.00,000.00,1.00 -0701,-109.10,+00.00,01.00,000.00,1.00 -0702,-108.20,+00.00,01.00,000.00,1.00 -0703,-107.30,+00.00,01.00,000.00,1.00 -0704,-106.40,+00.00,01.00,000.00,1.00 -0705,-105.50,+00.00,01.00,000.00,1.00 -0706,-104.60,+00.00,01.00,000.00,1.00 -0707,-103.70,+00.00,01.00,000.00,1.00 -0708,-102.80,+00.00,01.00,000.00,1.00 -0709,-101.90,+00.00,01.00,000.00,1.00 -0710,-101.00,+00.00,01.00,000.00,1.00 -0711,-100.10,+00.00,01.00,000.00,1.00 -0712,-099.20,+00.00,01.00,000.00,1.00 -0713,-098.30,+00.00,01.00,000.00,1.00 -0714,-097.40,+00.00,01.00,000.00,1.00 -0715,-096.50,+00.00,01.00,000.00,1.00 -0716,-095.60,+00.00,01.00,000.00,1.00 -0717,-094.70,+00.00,01.00,000.00,1.00 -0718,-093.80,+00.00,01.00,000.00,1.00 -0719,-092.90,+00.00,01.00,000.00,1.00 -0720,-092.00,+00.00,01.00,000.00,1.00 -0721,-091.10,+00.00,01.00,000.00,1.00 -0722,-090.20,+00.00,01.00,000.00,1.00 -0723,-089.30,+00.00,01.00,000.00,1.00 -0724,-088.40,+00.00,01.00,000.00,1.00 -0725,-087.50,+00.00,01.00,000.00,1.00 -0726,-086.60,+00.00,01.00,000.00,1.00 -0727,-085.70,+00.00,01.00,000.00,1.00 -0728,-084.80,+00.00,01.00,000.00,1.00 -0729,-083.90,+00.00,01.00,000.00,1.00 -0730,-083.00,+00.00,01.00,000.00,1.00 -0731,-082.10,+00.00,01.00,000.00,1.00 -0732,-081.20,+00.00,01.00,000.00,1.00 -0733,-080.30,+00.00,01.00,000.00,1.00 -0734,-079.40,+00.00,01.00,000.00,1.00 -0735,-078.50,+00.00,01.00,000.00,1.00 -0736,-077.60,+00.00,01.00,000.00,1.00 -0737,-076.70,+00.00,01.00,000.00,1.00 -0738,-075.80,+00.00,01.00,000.00,1.00 -0739,-074.90,+00.00,01.00,000.00,1.00 -0740,-074.00,+00.00,01.00,000.00,1.00 -0741,-073.10,+00.00,01.00,000.00,1.00 -0742,-072.20,+00.00,01.00,000.00,1.00 -0743,-071.30,+00.00,01.00,000.00,1.00 -0744,-070.40,+00.00,01.00,000.00,1.00 -0745,-069.50,+00.00,01.00,000.00,1.00 -0746,-068.60,+00.00,01.00,000.00,1.00 -0747,-067.70,+00.00,01.00,000.00,1.00 -0748,-066.80,+00.00,01.00,000.00,1.00 -0749,-065.90,+00.00,01.00,000.00,1.00 -0750,-065.00,+00.00,01.00,000.00,1.00 -0751,-064.10,+00.00,01.00,000.00,1.00 -0752,-063.20,+00.00,01.00,000.00,1.00 -0753,-062.30,+00.00,01.00,000.00,1.00 -0754,-061.40,+00.00,01.00,000.00,1.00 -0755,-060.50,+00.00,01.00,000.00,1.00 -0756,-059.60,+00.00,01.00,000.00,1.00 -0757,-058.70,+00.00,01.00,000.00,1.00 -0758,-057.80,+00.00,01.00,000.00,1.00 -0759,-056.90,+00.00,01.00,000.00,1.00 -0760,-056.00,+00.00,01.00,000.00,1.00 -0761,-055.10,+00.00,01.00,000.00,1.00 -0762,-054.20,+00.00,01.00,000.00,1.00 -0763,-053.30,+00.00,01.00,000.00,1.00 -0764,-052.40,+00.00,01.00,000.00,1.00 -0765,-051.50,+00.00,01.00,000.00,1.00 -0766,-050.60,+00.00,01.00,000.00,1.00 -0767,-049.70,+00.00,01.00,000.00,1.00 -0768,-048.80,+00.00,01.00,000.00,1.00 -0769,-047.90,+00.00,01.00,000.00,1.00 -0770,-047.00,+00.00,01.00,000.00,1.00 -0771,-046.10,+00.00,01.00,000.00,1.00 -0772,-045.20,+00.00,01.00,000.00,1.00 -0773,-044.30,+00.00,01.00,000.00,1.00 -0774,-043.40,+00.00,01.00,000.00,1.00 -0775,-042.50,+00.00,01.00,000.00,1.00 -0776,-041.60,+00.00,01.00,000.00,1.00 -0777,-040.70,+00.00,01.00,000.00,1.00 -0778,-039.80,+00.00,01.00,000.00,1.00 -0779,-038.90,+00.00,01.00,000.00,1.00 -0780,-038.00,+00.00,01.00,000.00,1.00 -0781,-037.10,+00.00,01.00,000.00,1.00 -0782,-036.20,+00.00,01.00,000.00,1.00 -0783,-035.30,+00.00,01.00,000.00,1.00 -0784,-034.40,+00.00,01.00,000.00,1.00 -0785,-033.50,+00.00,01.00,000.00,1.00 -0786,-032.60,+00.00,01.00,000.00,1.00 -0787,-031.70,+00.00,01.00,000.00,1.00 -0788,-030.80,+00.00,01.00,000.00,1.00 -0789,-029.90,+00.00,01.00,000.00,1.00 -0790,-029.00,+00.00,01.00,000.00,1.00 -0791,-028.10,+00.00,01.00,000.00,1.00 -0792,-027.20,+00.00,01.00,000.00,1.00 -0793,-026.30,+00.00,01.00,000.00,1.00 -0794,-025.40,+00.00,01.00,000.00,1.00 -0795,-024.50,+00.00,01.00,000.00,1.00 -0796,-023.60,+00.00,01.00,000.00,1.00 -0797,-022.70,+00.00,01.00,000.00,1.00 -0798,-021.80,+00.00,01.00,000.00,1.00 -0799,-020.90,+00.00,01.00,000.00,1.00 -0800,-020.00,+00.00,01.00,000.00,1.00 -0801,-019.10,+00.00,01.00,000.00,1.00 -0802,-018.20,+00.00,01.00,000.00,1.00 -0803,-017.30,+00.00,01.00,000.00,1.00 -0804,-016.40,+00.00,01.00,000.00,1.00 -0805,-015.50,+00.00,01.00,000.00,1.00 -0806,-014.60,+00.00,01.00,000.00,1.00 -0807,-013.70,+00.00,01.00,000.00,1.00 -0808,-012.80,+00.00,01.00,000.00,1.00 -0809,-011.90,+00.00,01.00,000.00,1.00 -0810,-011.00,+00.00,01.00,000.00,1.00 -0811,-010.10,+00.00,01.00,000.00,1.00 -0812,-009.20,+00.00,01.00,000.00,1.00 -0813,-008.30,+00.00,01.00,000.00,1.00 -0814,-007.40,+00.00,01.00,000.00,1.00 -0815,-006.50,+00.00,01.00,000.00,1.00 -0816,-005.60,+00.00,01.00,000.00,1.00 -0817,-004.70,+00.00,01.00,000.00,1.00 -0818,-003.80,+00.00,01.00,000.00,1.00 -0819,-002.90,+00.00,01.00,000.00,1.00 -0820,-002.00,+00.00,01.00,000.00,1.00 -0821,-001.10,+00.00,01.00,000.00,1.00 -0822,-000.20,+00.00,01.00,000.00,1.00 -0823,+000.70,+00.00,01.00,000.00,1.00 -0824,+001.60,+00.00,01.00,000.00,1.00 -0825,+002.50,+00.00,01.00,000.00,1.00 -0826,+003.40,+00.00,01.00,000.00,1.00 -0827,+004.30,+00.00,01.00,000.00,1.00 -0828,+005.20,+00.00,01.00,000.00,1.00 -0829,+006.10,+00.00,01.00,000.00,1.00 -0830,+007.00,+00.00,01.00,000.00,1.00 -0831,+007.90,+00.00,01.00,000.00,1.00 -0832,+008.80,+00.00,01.00,000.00,1.00 -0833,+009.70,+00.00,01.00,000.00,1.00 -0834,+010.60,+00.00,01.00,000.00,1.00 -0835,+011.50,+00.00,01.00,000.00,1.00 -0836,+012.40,+00.00,01.00,000.00,1.00 -0837,+013.30,+00.00,01.00,000.00,1.00 -0838,+014.20,+00.00,01.00,000.00,1.00 -0839,+015.10,+00.00,01.00,000.00,1.00 -0840,+016.00,+00.00,01.00,000.00,1.00 -0841,+016.90,+00.00,01.00,000.00,1.00 -0842,+017.80,+00.00,01.00,000.00,1.00 -0843,+018.70,+00.00,01.00,000.00,1.00 -0844,+019.60,+00.00,01.00,000.00,1.00 -0845,+020.50,+00.00,01.00,000.00,1.00 -0846,+021.40,+00.00,01.00,000.00,1.00 -0847,+022.30,+00.00,01.00,000.00,1.00 -0848,+023.20,+00.00,01.00,000.00,1.00 -0849,+024.10,+00.00,01.00,000.00,1.00 -0850,+025.00,+00.00,01.00,000.00,1.00 -0851,+025.90,+00.00,01.00,000.00,1.00 -0852,+026.80,+00.00,01.00,000.00,1.00 -0853,+027.70,+00.00,01.00,000.00,1.00 -0854,+028.60,+00.00,01.00,000.00,1.00 -0855,+029.50,+00.00,01.00,000.00,1.00 -0856,+030.40,+00.00,01.00,000.00,1.00 -0857,+031.30,+00.00,01.00,000.00,1.00 -0858,+032.20,+00.00,01.00,000.00,1.00 -0859,+033.10,+00.00,01.00,000.00,1.00 -0860,+034.00,+00.00,01.00,000.00,1.00 -0861,+034.90,+00.00,01.00,000.00,1.00 -0862,+035.80,+00.00,01.00,000.00,1.00 -0863,+036.70,+00.00,01.00,000.00,1.00 -0864,+037.60,+00.00,01.00,000.00,1.00 -0865,+038.50,+00.00,01.00,000.00,1.00 -0866,+039.40,+00.00,01.00,000.00,1.00 -0867,+040.30,+00.00,01.00,000.00,1.00 -0868,+041.20,+00.00,01.00,000.00,1.00 -0869,+042.10,+00.00,01.00,000.00,1.00 -0870,+043.00,+00.00,01.00,000.00,1.00 -0871,+043.90,+00.00,01.00,000.00,1.00 -0872,+044.80,+00.00,01.00,000.00,1.00 -0873,+045.70,+00.00,01.00,000.00,1.00 -0874,+046.60,+00.00,01.00,000.00,1.00 -0875,+047.50,+00.00,01.00,000.00,1.00 -0876,+048.40,+00.00,01.00,000.00,1.00 -0877,+049.30,+00.00,01.00,000.00,1.00 -0878,+050.20,+00.00,01.00,000.00,1.00 -0879,+051.10,+00.00,01.00,000.00,1.00 -0880,+052.00,+00.00,01.00,000.00,1.00 -0881,+052.90,+00.00,01.00,000.00,1.00 -0882,+053.80,+00.00,01.00,000.00,1.00 -0883,+054.70,+00.00,01.00,000.00,1.00 -0884,+055.60,+00.00,01.00,000.00,1.00 -0885,+056.50,+00.00,01.00,000.00,1.00 -0886,+057.40,+00.00,01.00,000.00,1.00 -0887,+058.30,+00.00,01.00,000.00,1.00 -0888,+059.20,+00.00,01.00,000.00,1.00 -0889,+060.10,+00.00,01.00,000.00,1.00 -0890,+061.00,+00.00,01.00,000.00,1.00 -0891,+061.90,+00.00,01.00,000.00,1.00 -0892,+062.80,+00.00,01.00,000.00,1.00 -0893,+063.70,+00.00,01.00,000.00,1.00 -0894,+064.60,+00.00,01.00,000.00,1.00 -0895,+065.50,+00.00,01.00,000.00,1.00 -0896,+066.40,+00.00,01.00,000.00,1.00 -0897,+067.30,+00.00,01.00,000.00,1.00 -0898,+068.20,+00.00,01.00,000.00,1.00 -0899,+069.10,+00.00,01.00,000.00,1.00 -0900,+070.00,+00.00,01.00,000.00,1.00 -0901,+070.90,+00.00,01.00,000.00,1.00 -0902,+071.80,+00.00,01.00,000.00,1.00 -0903,+072.70,+00.00,01.00,000.00,1.00 -0904,+073.60,+00.00,01.00,000.00,1.00 -0905,+074.50,+00.00,01.00,000.00,1.00 -0906,+075.40,+00.00,01.00,000.00,1.00 -0907,+076.30,+00.00,01.00,000.00,1.00 -0908,+077.20,+00.00,01.00,000.00,1.00 -0909,+078.10,+00.00,01.00,000.00,1.00 -0910,+079.00,+00.00,01.00,000.00,1.00 -0911,+079.90,+00.00,01.00,000.00,1.00 -0912,+080.80,+00.00,01.00,000.00,1.00 -0913,+081.70,+00.00,01.00,000.00,1.00 -0914,+082.60,+00.00,01.00,000.00,1.00 -0915,+083.50,+00.00,01.00,000.00,1.00 -0916,+084.40,+00.00,01.00,000.00,1.00 -0917,+085.30,+00.00,01.00,000.00,1.00 -0918,+086.20,+00.00,01.00,000.00,1.00 -0919,+087.10,+00.00,01.00,000.00,1.00 -0920,+088.00,+00.00,01.00,000.00,1.00 -0921,+088.90,+00.00,01.00,000.00,1.00 -0922,+089.80,+00.00,01.00,000.00,1.00 -0923,+090.70,+00.00,01.00,000.00,1.00 -0924,+091.60,+00.00,01.00,000.00,1.00 -0925,+092.50,+00.00,01.00,000.00,1.00 -0926,+093.40,+00.00,01.00,000.00,1.00 -0927,+094.30,+00.00,01.00,000.00,1.00 -0928,+095.20,+00.00,01.00,000.00,1.00 -0929,+096.10,+00.00,01.00,000.00,1.00 -0930,+097.00,+00.00,01.00,000.00,1.00 -0931,+097.90,+00.00,01.00,000.00,1.00 -0932,+098.80,+00.00,01.00,000.00,1.00 -0933,+099.70,+00.00,01.00,000.00,1.00 -0934,+100.60,+00.00,01.00,000.00,1.00 -0935,+101.50,+00.00,01.00,000.00,1.00 -0936,+102.40,+00.00,01.00,000.00,1.00 -0937,+103.30,+00.00,01.00,000.00,1.00 -0938,+104.20,+00.00,01.00,000.00,1.00 -0939,+105.10,+00.00,01.00,000.00,1.00 -0940,+106.00,+00.00,01.00,000.00,1.00 -0941,+106.90,+00.00,01.00,000.00,1.00 -0942,+107.80,+00.00,01.00,000.00,1.00 -0943,+108.70,+00.00,01.00,000.00,1.00 -0944,+109.60,+00.00,01.00,000.00,1.00 -0945,+110.50,+00.00,01.00,000.00,1.00 -0946,+111.40,+00.00,01.00,000.00,1.00 -0947,+112.30,+00.00,01.00,000.00,1.00 -0948,+113.20,+00.00,01.00,000.00,1.00 -0949,+114.10,+00.00,01.00,000.00,1.00 -0950,+115.00,+00.00,01.00,000.00,1.00 -0951,+115.90,+00.00,01.00,000.00,1.00 -0952,+116.80,+00.00,01.00,000.00,1.00 -0953,+117.70,+00.00,01.00,000.00,1.00 -0954,+118.60,+00.00,01.00,000.00,1.00 -0955,+119.50,+00.00,01.00,000.00,1.00 -0956,+120.40,+00.00,01.00,000.00,1.00 -0957,+121.30,+00.00,01.00,000.00,1.00 -0958,+122.20,+00.00,01.00,000.00,1.00 -0959,+123.10,+00.00,01.00,000.00,1.00 -0960,+124.00,+00.00,01.00,000.00,1.00 -0961,+124.90,+00.00,01.00,000.00,1.00 -0962,+125.80,+00.00,01.00,000.00,1.00 -0963,+126.70,+00.00,01.00,000.00,1.00 -0964,+127.60,+00.00,01.00,000.00,1.00 -0965,+128.50,+00.00,01.00,000.00,1.00 -0966,+129.40,+00.00,01.00,000.00,1.00 -0967,+130.30,+00.00,01.00,000.00,1.00 -0968,+131.20,+00.00,01.00,000.00,1.00 -0969,+132.10,+00.00,01.00,000.00,1.00 -0970,+133.00,+00.00,01.00,000.00,1.00 -0971,+133.90,+00.00,01.00,000.00,1.00 -0972,+134.80,+00.00,01.00,000.00,1.00 -0973,+135.70,+00.00,01.00,000.00,1.00 -0974,+136.60,+00.00,01.00,000.00,1.00 -0975,+137.50,+00.00,01.00,000.00,1.00 -0976,+138.40,+00.00,01.00,000.00,1.00 -0977,+139.30,+00.00,01.00,000.00,1.00 -0978,+140.20,+00.00,01.00,000.00,1.00 -0979,+141.10,+00.00,01.00,000.00,1.00 -0980,+142.00,+00.00,01.00,000.00,1.00 -0981,+142.90,+00.00,01.00,000.00,1.00 -0982,+143.80,+00.00,01.00,000.00,1.00 -0983,+144.70,+00.00,01.00,000.00,1.00 -0984,+145.60,+00.00,01.00,000.00,1.00 -0985,+146.50,+00.00,01.00,000.00,1.00 -0986,+147.40,+00.00,01.00,000.00,1.00 -0987,+148.30,+00.00,01.00,000.00,1.00 -0988,+149.20,+00.00,01.00,000.00,1.00 -0989,+150.10,+00.00,01.00,000.00,1.00 -0990,+151.00,+00.00,01.00,000.00,1.00 -0991,+151.90,+00.00,01.00,000.00,1.00 -0992,+152.80,+00.00,01.00,000.00,1.00 -0993,+153.70,+00.00,01.00,000.00,1.00 -0994,+154.60,+00.00,01.00,000.00,1.00 -0995,+155.50,+00.00,01.00,000.00,1.00 -0996,+156.40,+00.00,01.00,000.00,1.00 -0997,+157.30,+00.00,01.00,000.00,1.00 -0998,+158.20,+00.00,01.00,000.00,1.00 -0999,+159.10,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-019.10,+00.00,01.00,000.00,1.00 +-018.20,+00.00,01.00,000.00,1.00 +-017.30,+00.00,01.00,000.00,1.00 +-016.40,+00.00,01.00,000.00,1.00 +-015.50,+00.00,01.00,000.00,1.00 +-014.60,+00.00,01.00,000.00,1.00 +-013.70,+00.00,01.00,000.00,1.00 +-012.80,+00.00,01.00,000.00,1.00 +-011.90,+00.00,01.00,000.00,1.00 +-011.00,+00.00,01.00,000.00,1.00 +-010.10,+00.00,01.00,000.00,1.00 +-009.20,+00.00,01.00,000.00,1.00 +-008.30,+00.00,01.00,000.00,1.00 +-007.40,+00.00,01.00,000.00,1.00 +-006.50,+00.00,01.00,000.00,1.00 +-005.60,+00.00,01.00,000.00,1.00 +-004.70,+00.00,01.00,000.00,1.00 +-003.80,+00.00,01.00,000.00,1.00 +-002.90,+00.00,01.00,000.00,1.00 +-002.00,+00.00,01.00,000.00,1.00 +-001.10,+00.00,01.00,000.00,1.00 +-000.20,+00.00,01.00,000.00,1.00 ++000.70,+00.00,01.00,000.00,1.00 ++001.60,+00.00,01.00,000.00,1.00 ++002.50,+00.00,01.00,000.00,1.00 ++003.40,+00.00,01.00,000.00,1.00 ++004.30,+00.00,01.00,000.00,1.00 ++005.20,+00.00,01.00,000.00,1.00 ++006.10,+00.00,01.00,000.00,1.00 ++007.00,+00.00,01.00,000.00,1.00 ++007.90,+00.00,01.00,000.00,1.00 ++008.80,+00.00,01.00,000.00,1.00 ++009.70,+00.00,01.00,000.00,1.00 ++010.60,+00.00,01.00,000.00,1.00 ++011.50,+00.00,01.00,000.00,1.00 ++012.40,+00.00,01.00,000.00,1.00 ++013.30,+00.00,01.00,000.00,1.00 ++014.20,+00.00,01.00,000.00,1.00 ++015.10,+00.00,01.00,000.00,1.00 ++016.00,+00.00,01.00,000.00,1.00 ++016.90,+00.00,01.00,000.00,1.00 ++017.80,+00.00,01.00,000.00,1.00 ++018.70,+00.00,01.00,000.00,1.00 ++019.60,+00.00,01.00,000.00,1.00 ++020.50,+00.00,01.00,000.00,1.00 ++021.40,+00.00,01.00,000.00,1.00 ++022.30,+00.00,01.00,000.00,1.00 ++023.20,+00.00,01.00,000.00,1.00 ++024.10,+00.00,01.00,000.00,1.00 ++025.00,+00.00,01.00,000.00,1.00 ++025.90,+00.00,01.00,000.00,1.00 ++026.80,+00.00,01.00,000.00,1.00 ++027.70,+00.00,01.00,000.00,1.00 ++028.60,+00.00,01.00,000.00,1.00 ++029.50,+00.00,01.00,000.00,1.00 ++030.40,+00.00,01.00,000.00,1.00 ++031.30,+00.00,01.00,000.00,1.00 ++032.20,+00.00,01.00,000.00,1.00 ++033.10,+00.00,01.00,000.00,1.00 ++034.00,+00.00,01.00,000.00,1.00 ++034.90,+00.00,01.00,000.00,1.00 ++035.80,+00.00,01.00,000.00,1.00 ++036.70,+00.00,01.00,000.00,1.00 ++037.60,+00.00,01.00,000.00,1.00 ++038.50,+00.00,01.00,000.00,1.00 ++039.40,+00.00,01.00,000.00,1.00 ++040.30,+00.00,01.00,000.00,1.00 ++041.20,+00.00,01.00,000.00,1.00 ++042.10,+00.00,01.00,000.00,1.00 ++043.00,+00.00,01.00,000.00,1.00 ++043.90,+00.00,01.00,000.00,1.00 ++044.80,+00.00,01.00,000.00,1.00 ++045.70,+00.00,01.00,000.00,1.00 ++046.60,+00.00,01.00,000.00,1.00 ++047.50,+00.00,01.00,000.00,1.00 ++048.40,+00.00,01.00,000.00,1.00 ++049.30,+00.00,01.00,000.00,1.00 ++050.20,+00.00,01.00,000.00,1.00 ++051.10,+00.00,01.00,000.00,1.00 ++052.00,+00.00,01.00,000.00,1.00 ++052.90,+00.00,01.00,000.00,1.00 ++053.80,+00.00,01.00,000.00,1.00 ++054.70,+00.00,01.00,000.00,1.00 ++055.60,+00.00,01.00,000.00,1.00 ++056.50,+00.00,01.00,000.00,1.00 ++057.40,+00.00,01.00,000.00,1.00 ++058.30,+00.00,01.00,000.00,1.00 ++059.20,+00.00,01.00,000.00,1.00 ++060.10,+00.00,01.00,000.00,1.00 ++061.00,+00.00,01.00,000.00,1.00 ++061.90,+00.00,01.00,000.00,1.00 ++062.80,+00.00,01.00,000.00,1.00 ++063.70,+00.00,01.00,000.00,1.00 ++064.60,+00.00,01.00,000.00,1.00 ++065.50,+00.00,01.00,000.00,1.00 ++066.40,+00.00,01.00,000.00,1.00 ++067.30,+00.00,01.00,000.00,1.00 ++068.20,+00.00,01.00,000.00,1.00 ++069.10,+00.00,01.00,000.00,1.00 ++070.00,+00.00,01.00,000.00,1.00 ++070.90,+00.00,01.00,000.00,1.00 ++071.80,+00.00,01.00,000.00,1.00 ++072.70,+00.00,01.00,000.00,1.00 ++073.60,+00.00,01.00,000.00,1.00 ++074.50,+00.00,01.00,000.00,1.00 ++075.40,+00.00,01.00,000.00,1.00 ++076.30,+00.00,01.00,000.00,1.00 ++077.20,+00.00,01.00,000.00,1.00 ++078.10,+00.00,01.00,000.00,1.00 ++079.00,+00.00,01.00,000.00,1.00 ++079.90,+00.00,01.00,000.00,1.00 ++080.80,+00.00,01.00,000.00,1.00 ++081.70,+00.00,01.00,000.00,1.00 ++082.60,+00.00,01.00,000.00,1.00 ++083.50,+00.00,01.00,000.00,1.00 ++084.40,+00.00,01.00,000.00,1.00 ++085.30,+00.00,01.00,000.00,1.00 ++086.20,+00.00,01.00,000.00,1.00 ++087.10,+00.00,01.00,000.00,1.00 ++088.00,+00.00,01.00,000.00,1.00 ++088.90,+00.00,01.00,000.00,1.00 ++089.80,+00.00,01.00,000.00,1.00 ++090.70,+00.00,01.00,000.00,1.00 ++091.60,+00.00,01.00,000.00,1.00 ++092.50,+00.00,01.00,000.00,1.00 ++093.40,+00.00,01.00,000.00,1.00 ++094.30,+00.00,01.00,000.00,1.00 ++095.20,+00.00,01.00,000.00,1.00 ++096.10,+00.00,01.00,000.00,1.00 ++097.00,+00.00,01.00,000.00,1.00 ++097.90,+00.00,01.00,000.00,1.00 ++098.80,+00.00,01.00,000.00,1.00 ++099.70,+00.00,01.00,000.00,1.00 ++100.60,+00.00,01.00,000.00,1.00 ++101.50,+00.00,01.00,000.00,1.00 ++102.40,+00.00,01.00,000.00,1.00 ++103.30,+00.00,01.00,000.00,1.00 ++104.20,+00.00,01.00,000.00,1.00 ++105.10,+00.00,01.00,000.00,1.00 ++106.00,+00.00,01.00,000.00,1.00 ++106.90,+00.00,01.00,000.00,1.00 ++107.80,+00.00,01.00,000.00,1.00 ++108.70,+00.00,01.00,000.00,1.00 ++109.60,+00.00,01.00,000.00,1.00 ++110.50,+00.00,01.00,000.00,1.00 ++111.40,+00.00,01.00,000.00,1.00 ++112.30,+00.00,01.00,000.00,1.00 ++113.20,+00.00,01.00,000.00,1.00 ++114.10,+00.00,01.00,000.00,1.00 ++115.00,+00.00,01.00,000.00,1.00 ++115.90,+00.00,01.00,000.00,1.00 ++116.80,+00.00,01.00,000.00,1.00 ++117.70,+00.00,01.00,000.00,1.00 ++118.60,+00.00,01.00,000.00,1.00 ++119.50,+00.00,01.00,000.00,1.00 ++120.40,+00.00,01.00,000.00,1.00 ++121.30,+00.00,01.00,000.00,1.00 ++122.20,+00.00,01.00,000.00,1.00 ++123.10,+00.00,01.00,000.00,1.00 ++124.00,+00.00,01.00,000.00,1.00 ++124.90,+00.00,01.00,000.00,1.00 ++125.80,+00.00,01.00,000.00,1.00 ++126.70,+00.00,01.00,000.00,1.00 ++127.60,+00.00,01.00,000.00,1.00 ++128.50,+00.00,01.00,000.00,1.00 ++129.40,+00.00,01.00,000.00,1.00 ++130.30,+00.00,01.00,000.00,1.00 ++131.20,+00.00,01.00,000.00,1.00 ++132.10,+00.00,01.00,000.00,1.00 ++133.00,+00.00,01.00,000.00,1.00 ++133.90,+00.00,01.00,000.00,1.00 ++134.80,+00.00,01.00,000.00,1.00 ++135.70,+00.00,01.00,000.00,1.00 ++136.60,+00.00,01.00,000.00,1.00 ++137.50,+00.00,01.00,000.00,1.00 ++138.40,+00.00,01.00,000.00,1.00 ++139.30,+00.00,01.00,000.00,1.00 ++140.20,+00.00,01.00,000.00,1.00 ++141.10,+00.00,01.00,000.00,1.00 ++142.00,+00.00,01.00,000.00,1.00 ++142.90,+00.00,01.00,000.00,1.00 ++143.80,+00.00,01.00,000.00,1.00 ++144.70,+00.00,01.00,000.00,1.00 ++145.60,+00.00,01.00,000.00,1.00 ++146.50,+00.00,01.00,000.00,1.00 ++147.40,+00.00,01.00,000.00,1.00 ++148.30,+00.00,01.00,000.00,1.00 ++149.20,+00.00,01.00,000.00,1.00 ++150.10,+00.00,01.00,000.00,1.00 ++151.00,+00.00,01.00,000.00,1.00 ++151.90,+00.00,01.00,000.00,1.00 ++152.80,+00.00,01.00,000.00,1.00 ++153.70,+00.00,01.00,000.00,1.00 ++154.60,+00.00,01.00,000.00,1.00 ++155.50,+00.00,01.00,000.00,1.00 ++156.40,+00.00,01.00,000.00,1.00 ++157.30,+00.00,01.00,000.00,1.00 ++158.20,+00.00,01.00,000.00,1.00 ++159.10,+00.00,01.00,000.00,1.00 ++160.00,+00.00,01.00,000.00,1.00 ++160.90,+00.00,01.00,000.00,1.00 ++161.80,+00.00,01.00,000.00,1.00 ++162.70,+00.00,01.00,000.00,1.00 ++163.60,+00.00,01.00,000.00,1.00 ++164.50,+00.00,01.00,000.00,1.00 ++165.40,+00.00,01.00,000.00,1.00 ++166.30,+00.00,01.00,000.00,1.00 ++167.20,+00.00,01.00,000.00,1.00 ++168.10,+00.00,01.00,000.00,1.00 ++169.00,+00.00,01.00,000.00,1.00 ++169.90,+00.00,01.00,000.00,1.00 ++170.80,+00.00,01.00,000.00,1.00 ++171.70,+00.00,01.00,000.00,1.00 ++172.60,+00.00,01.00,000.00,1.00 ++173.50,+00.00,01.00,000.00,1.00 ++174.40,+00.00,01.00,000.00,1.00 ++175.30,+00.00,01.00,000.00,1.00 ++176.20,+00.00,01.00,000.00,1.00 ++177.10,+00.00,01.00,000.00,1.00 ++178.00,+00.00,01.00,000.00,1.00 ++178.90,+00.00,01.00,000.00,1.00 ++179.80,+00.00,01.00,000.00,1.00 +-179.30,+00.00,01.00,000.00,1.00 +-178.40,+00.00,01.00,000.00,1.00 +-177.50,+00.00,01.00,000.00,1.00 +-176.60,+00.00,01.00,000.00,1.00 +-175.70,+00.00,01.00,000.00,1.00 +-174.80,+00.00,01.00,000.00,1.00 +-173.90,+00.00,01.00,000.00,1.00 +-173.00,+00.00,01.00,000.00,1.00 +-172.10,+00.00,01.00,000.00,1.00 +-171.20,+00.00,01.00,000.00,1.00 +-170.30,+00.00,01.00,000.00,1.00 +-169.40,+00.00,01.00,000.00,1.00 +-168.50,+00.00,01.00,000.00,1.00 +-167.60,+00.00,01.00,000.00,1.00 +-166.70,+00.00,01.00,000.00,1.00 +-165.80,+00.00,01.00,000.00,1.00 +-164.90,+00.00,01.00,000.00,1.00 +-164.00,+00.00,01.00,000.00,1.00 +-163.10,+00.00,01.00,000.00,1.00 +-162.20,+00.00,01.00,000.00,1.00 +-161.30,+00.00,01.00,000.00,1.00 +-160.40,+00.00,01.00,000.00,1.00 +-159.50,+00.00,01.00,000.00,1.00 +-158.60,+00.00,01.00,000.00,1.00 +-157.70,+00.00,01.00,000.00,1.00 +-156.80,+00.00,01.00,000.00,1.00 +-155.90,+00.00,01.00,000.00,1.00 +-155.00,+00.00,01.00,000.00,1.00 +-154.10,+00.00,01.00,000.00,1.00 +-153.20,+00.00,01.00,000.00,1.00 +-152.30,+00.00,01.00,000.00,1.00 +-151.40,+00.00,01.00,000.00,1.00 +-150.50,+00.00,01.00,000.00,1.00 +-149.60,+00.00,01.00,000.00,1.00 +-148.70,+00.00,01.00,000.00,1.00 +-147.80,+00.00,01.00,000.00,1.00 +-146.90,+00.00,01.00,000.00,1.00 +-146.00,+00.00,01.00,000.00,1.00 +-145.10,+00.00,01.00,000.00,1.00 +-144.20,+00.00,01.00,000.00,1.00 +-143.30,+00.00,01.00,000.00,1.00 +-142.40,+00.00,01.00,000.00,1.00 +-141.50,+00.00,01.00,000.00,1.00 +-140.60,+00.00,01.00,000.00,1.00 +-139.70,+00.00,01.00,000.00,1.00 +-138.80,+00.00,01.00,000.00,1.00 +-137.90,+00.00,01.00,000.00,1.00 +-137.00,+00.00,01.00,000.00,1.00 +-136.10,+00.00,01.00,000.00,1.00 +-135.20,+00.00,01.00,000.00,1.00 +-134.30,+00.00,01.00,000.00,1.00 +-133.40,+00.00,01.00,000.00,1.00 +-132.50,+00.00,01.00,000.00,1.00 +-131.60,+00.00,01.00,000.00,1.00 +-130.70,+00.00,01.00,000.00,1.00 +-129.80,+00.00,01.00,000.00,1.00 +-128.90,+00.00,01.00,000.00,1.00 +-128.00,+00.00,01.00,000.00,1.00 +-127.10,+00.00,01.00,000.00,1.00 +-126.20,+00.00,01.00,000.00,1.00 +-125.30,+00.00,01.00,000.00,1.00 +-124.40,+00.00,01.00,000.00,1.00 +-123.50,+00.00,01.00,000.00,1.00 +-122.60,+00.00,01.00,000.00,1.00 +-121.70,+00.00,01.00,000.00,1.00 +-120.80,+00.00,01.00,000.00,1.00 +-119.90,+00.00,01.00,000.00,1.00 +-119.00,+00.00,01.00,000.00,1.00 +-118.10,+00.00,01.00,000.00,1.00 +-117.20,+00.00,01.00,000.00,1.00 +-116.30,+00.00,01.00,000.00,1.00 +-115.40,+00.00,01.00,000.00,1.00 +-114.50,+00.00,01.00,000.00,1.00 +-113.60,+00.00,01.00,000.00,1.00 +-112.70,+00.00,01.00,000.00,1.00 +-111.80,+00.00,01.00,000.00,1.00 +-110.90,+00.00,01.00,000.00,1.00 +-110.00,+00.00,01.00,000.00,1.00 +-109.10,+00.00,01.00,000.00,1.00 +-108.20,+00.00,01.00,000.00,1.00 +-107.30,+00.00,01.00,000.00,1.00 +-106.40,+00.00,01.00,000.00,1.00 +-105.50,+00.00,01.00,000.00,1.00 +-104.60,+00.00,01.00,000.00,1.00 +-103.70,+00.00,01.00,000.00,1.00 +-102.80,+00.00,01.00,000.00,1.00 +-101.90,+00.00,01.00,000.00,1.00 +-101.00,+00.00,01.00,000.00,1.00 +-100.10,+00.00,01.00,000.00,1.00 +-099.20,+00.00,01.00,000.00,1.00 +-098.30,+00.00,01.00,000.00,1.00 +-097.40,+00.00,01.00,000.00,1.00 +-096.50,+00.00,01.00,000.00,1.00 +-095.60,+00.00,01.00,000.00,1.00 +-094.70,+00.00,01.00,000.00,1.00 +-093.80,+00.00,01.00,000.00,1.00 +-092.90,+00.00,01.00,000.00,1.00 +-092.00,+00.00,01.00,000.00,1.00 +-091.10,+00.00,01.00,000.00,1.00 +-090.20,+00.00,01.00,000.00,1.00 +-089.30,+00.00,01.00,000.00,1.00 +-088.40,+00.00,01.00,000.00,1.00 +-087.50,+00.00,01.00,000.00,1.00 +-086.60,+00.00,01.00,000.00,1.00 +-085.70,+00.00,01.00,000.00,1.00 +-084.80,+00.00,01.00,000.00,1.00 +-083.90,+00.00,01.00,000.00,1.00 +-083.00,+00.00,01.00,000.00,1.00 +-082.10,+00.00,01.00,000.00,1.00 +-081.20,+00.00,01.00,000.00,1.00 +-080.30,+00.00,01.00,000.00,1.00 +-079.40,+00.00,01.00,000.00,1.00 +-078.50,+00.00,01.00,000.00,1.00 +-077.60,+00.00,01.00,000.00,1.00 +-076.70,+00.00,01.00,000.00,1.00 +-075.80,+00.00,01.00,000.00,1.00 +-074.90,+00.00,01.00,000.00,1.00 +-074.00,+00.00,01.00,000.00,1.00 +-073.10,+00.00,01.00,000.00,1.00 +-072.20,+00.00,01.00,000.00,1.00 +-071.30,+00.00,01.00,000.00,1.00 +-070.40,+00.00,01.00,000.00,1.00 +-069.50,+00.00,01.00,000.00,1.00 +-068.60,+00.00,01.00,000.00,1.00 +-067.70,+00.00,01.00,000.00,1.00 +-066.80,+00.00,01.00,000.00,1.00 +-065.90,+00.00,01.00,000.00,1.00 +-065.00,+00.00,01.00,000.00,1.00 +-064.10,+00.00,01.00,000.00,1.00 +-063.20,+00.00,01.00,000.00,1.00 +-062.30,+00.00,01.00,000.00,1.00 +-061.40,+00.00,01.00,000.00,1.00 +-060.50,+00.00,01.00,000.00,1.00 +-059.60,+00.00,01.00,000.00,1.00 +-058.70,+00.00,01.00,000.00,1.00 +-057.80,+00.00,01.00,000.00,1.00 +-056.90,+00.00,01.00,000.00,1.00 +-056.00,+00.00,01.00,000.00,1.00 +-055.10,+00.00,01.00,000.00,1.00 +-054.20,+00.00,01.00,000.00,1.00 +-053.30,+00.00,01.00,000.00,1.00 +-052.40,+00.00,01.00,000.00,1.00 +-051.50,+00.00,01.00,000.00,1.00 +-050.60,+00.00,01.00,000.00,1.00 +-049.70,+00.00,01.00,000.00,1.00 +-048.80,+00.00,01.00,000.00,1.00 +-047.90,+00.00,01.00,000.00,1.00 +-047.00,+00.00,01.00,000.00,1.00 +-046.10,+00.00,01.00,000.00,1.00 +-045.20,+00.00,01.00,000.00,1.00 +-044.30,+00.00,01.00,000.00,1.00 +-043.40,+00.00,01.00,000.00,1.00 +-042.50,+00.00,01.00,000.00,1.00 +-041.60,+00.00,01.00,000.00,1.00 +-040.70,+00.00,01.00,000.00,1.00 +-039.80,+00.00,01.00,000.00,1.00 +-038.90,+00.00,01.00,000.00,1.00 +-038.00,+00.00,01.00,000.00,1.00 +-037.10,+00.00,01.00,000.00,1.00 +-036.20,+00.00,01.00,000.00,1.00 +-035.30,+00.00,01.00,000.00,1.00 +-034.40,+00.00,01.00,000.00,1.00 +-033.50,+00.00,01.00,000.00,1.00 +-032.60,+00.00,01.00,000.00,1.00 +-031.70,+00.00,01.00,000.00,1.00 +-030.80,+00.00,01.00,000.00,1.00 +-029.90,+00.00,01.00,000.00,1.00 +-029.00,+00.00,01.00,000.00,1.00 +-028.10,+00.00,01.00,000.00,1.00 +-027.20,+00.00,01.00,000.00,1.00 +-026.30,+00.00,01.00,000.00,1.00 +-025.40,+00.00,01.00,000.00,1.00 +-024.50,+00.00,01.00,000.00,1.00 +-023.60,+00.00,01.00,000.00,1.00 +-022.70,+00.00,01.00,000.00,1.00 +-021.80,+00.00,01.00,000.00,1.00 +-020.90,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-019.10,+00.00,01.00,000.00,1.00 +-018.20,+00.00,01.00,000.00,1.00 +-017.30,+00.00,01.00,000.00,1.00 +-016.40,+00.00,01.00,000.00,1.00 +-015.50,+00.00,01.00,000.00,1.00 +-014.60,+00.00,01.00,000.00,1.00 +-013.70,+00.00,01.00,000.00,1.00 +-012.80,+00.00,01.00,000.00,1.00 +-011.90,+00.00,01.00,000.00,1.00 +-011.00,+00.00,01.00,000.00,1.00 +-010.10,+00.00,01.00,000.00,1.00 +-009.20,+00.00,01.00,000.00,1.00 +-008.30,+00.00,01.00,000.00,1.00 +-007.40,+00.00,01.00,000.00,1.00 +-006.50,+00.00,01.00,000.00,1.00 +-005.60,+00.00,01.00,000.00,1.00 +-004.70,+00.00,01.00,000.00,1.00 +-003.80,+00.00,01.00,000.00,1.00 +-002.90,+00.00,01.00,000.00,1.00 +-002.00,+00.00,01.00,000.00,1.00 +-001.10,+00.00,01.00,000.00,1.00 +-000.20,+00.00,01.00,000.00,1.00 ++000.70,+00.00,01.00,000.00,1.00 ++001.60,+00.00,01.00,000.00,1.00 ++002.50,+00.00,01.00,000.00,1.00 ++003.40,+00.00,01.00,000.00,1.00 ++004.30,+00.00,01.00,000.00,1.00 ++005.20,+00.00,01.00,000.00,1.00 ++006.10,+00.00,01.00,000.00,1.00 ++007.00,+00.00,01.00,000.00,1.00 ++007.90,+00.00,01.00,000.00,1.00 ++008.80,+00.00,01.00,000.00,1.00 ++009.70,+00.00,01.00,000.00,1.00 ++010.60,+00.00,01.00,000.00,1.00 ++011.50,+00.00,01.00,000.00,1.00 ++012.40,+00.00,01.00,000.00,1.00 ++013.30,+00.00,01.00,000.00,1.00 ++014.20,+00.00,01.00,000.00,1.00 ++015.10,+00.00,01.00,000.00,1.00 ++016.00,+00.00,01.00,000.00,1.00 ++016.90,+00.00,01.00,000.00,1.00 ++017.80,+00.00,01.00,000.00,1.00 ++018.70,+00.00,01.00,000.00,1.00 ++019.60,+00.00,01.00,000.00,1.00 ++020.50,+00.00,01.00,000.00,1.00 ++021.40,+00.00,01.00,000.00,1.00 ++022.30,+00.00,01.00,000.00,1.00 ++023.20,+00.00,01.00,000.00,1.00 ++024.10,+00.00,01.00,000.00,1.00 ++025.00,+00.00,01.00,000.00,1.00 ++025.90,+00.00,01.00,000.00,1.00 ++026.80,+00.00,01.00,000.00,1.00 ++027.70,+00.00,01.00,000.00,1.00 ++028.60,+00.00,01.00,000.00,1.00 ++029.50,+00.00,01.00,000.00,1.00 ++030.40,+00.00,01.00,000.00,1.00 ++031.30,+00.00,01.00,000.00,1.00 ++032.20,+00.00,01.00,000.00,1.00 ++033.10,+00.00,01.00,000.00,1.00 ++034.00,+00.00,01.00,000.00,1.00 ++034.90,+00.00,01.00,000.00,1.00 ++035.80,+00.00,01.00,000.00,1.00 ++036.70,+00.00,01.00,000.00,1.00 ++037.60,+00.00,01.00,000.00,1.00 ++038.50,+00.00,01.00,000.00,1.00 ++039.40,+00.00,01.00,000.00,1.00 ++040.30,+00.00,01.00,000.00,1.00 ++041.20,+00.00,01.00,000.00,1.00 ++042.10,+00.00,01.00,000.00,1.00 ++043.00,+00.00,01.00,000.00,1.00 ++043.90,+00.00,01.00,000.00,1.00 ++044.80,+00.00,01.00,000.00,1.00 ++045.70,+00.00,01.00,000.00,1.00 ++046.60,+00.00,01.00,000.00,1.00 ++047.50,+00.00,01.00,000.00,1.00 ++048.40,+00.00,01.00,000.00,1.00 ++049.30,+00.00,01.00,000.00,1.00 ++050.20,+00.00,01.00,000.00,1.00 ++051.10,+00.00,01.00,000.00,1.00 ++052.00,+00.00,01.00,000.00,1.00 ++052.90,+00.00,01.00,000.00,1.00 ++053.80,+00.00,01.00,000.00,1.00 ++054.70,+00.00,01.00,000.00,1.00 ++055.60,+00.00,01.00,000.00,1.00 ++056.50,+00.00,01.00,000.00,1.00 ++057.40,+00.00,01.00,000.00,1.00 ++058.30,+00.00,01.00,000.00,1.00 ++059.20,+00.00,01.00,000.00,1.00 ++060.10,+00.00,01.00,000.00,1.00 ++061.00,+00.00,01.00,000.00,1.00 ++061.90,+00.00,01.00,000.00,1.00 ++062.80,+00.00,01.00,000.00,1.00 ++063.70,+00.00,01.00,000.00,1.00 ++064.60,+00.00,01.00,000.00,1.00 ++065.50,+00.00,01.00,000.00,1.00 ++066.40,+00.00,01.00,000.00,1.00 ++067.30,+00.00,01.00,000.00,1.00 ++068.20,+00.00,01.00,000.00,1.00 ++069.10,+00.00,01.00,000.00,1.00 ++070.00,+00.00,01.00,000.00,1.00 ++070.90,+00.00,01.00,000.00,1.00 ++071.80,+00.00,01.00,000.00,1.00 ++072.70,+00.00,01.00,000.00,1.00 ++073.60,+00.00,01.00,000.00,1.00 ++074.50,+00.00,01.00,000.00,1.00 ++075.40,+00.00,01.00,000.00,1.00 ++076.30,+00.00,01.00,000.00,1.00 ++077.20,+00.00,01.00,000.00,1.00 ++078.10,+00.00,01.00,000.00,1.00 ++079.00,+00.00,01.00,000.00,1.00 ++079.90,+00.00,01.00,000.00,1.00 ++080.80,+00.00,01.00,000.00,1.00 ++081.70,+00.00,01.00,000.00,1.00 ++082.60,+00.00,01.00,000.00,1.00 ++083.50,+00.00,01.00,000.00,1.00 ++084.40,+00.00,01.00,000.00,1.00 ++085.30,+00.00,01.00,000.00,1.00 ++086.20,+00.00,01.00,000.00,1.00 ++087.10,+00.00,01.00,000.00,1.00 ++088.00,+00.00,01.00,000.00,1.00 ++088.90,+00.00,01.00,000.00,1.00 ++089.80,+00.00,01.00,000.00,1.00 ++090.70,+00.00,01.00,000.00,1.00 ++091.60,+00.00,01.00,000.00,1.00 ++092.50,+00.00,01.00,000.00,1.00 ++093.40,+00.00,01.00,000.00,1.00 ++094.30,+00.00,01.00,000.00,1.00 ++095.20,+00.00,01.00,000.00,1.00 ++096.10,+00.00,01.00,000.00,1.00 ++097.00,+00.00,01.00,000.00,1.00 ++097.90,+00.00,01.00,000.00,1.00 ++098.80,+00.00,01.00,000.00,1.00 ++099.70,+00.00,01.00,000.00,1.00 ++100.60,+00.00,01.00,000.00,1.00 ++101.50,+00.00,01.00,000.00,1.00 ++102.40,+00.00,01.00,000.00,1.00 ++103.30,+00.00,01.00,000.00,1.00 ++104.20,+00.00,01.00,000.00,1.00 ++105.10,+00.00,01.00,000.00,1.00 ++106.00,+00.00,01.00,000.00,1.00 ++106.90,+00.00,01.00,000.00,1.00 ++107.80,+00.00,01.00,000.00,1.00 ++108.70,+00.00,01.00,000.00,1.00 ++109.60,+00.00,01.00,000.00,1.00 ++110.50,+00.00,01.00,000.00,1.00 ++111.40,+00.00,01.00,000.00,1.00 ++112.30,+00.00,01.00,000.00,1.00 ++113.20,+00.00,01.00,000.00,1.00 ++114.10,+00.00,01.00,000.00,1.00 ++115.00,+00.00,01.00,000.00,1.00 ++115.90,+00.00,01.00,000.00,1.00 ++116.80,+00.00,01.00,000.00,1.00 ++117.70,+00.00,01.00,000.00,1.00 ++118.60,+00.00,01.00,000.00,1.00 ++119.50,+00.00,01.00,000.00,1.00 ++120.40,+00.00,01.00,000.00,1.00 ++121.30,+00.00,01.00,000.00,1.00 ++122.20,+00.00,01.00,000.00,1.00 ++123.10,+00.00,01.00,000.00,1.00 ++124.00,+00.00,01.00,000.00,1.00 ++124.90,+00.00,01.00,000.00,1.00 ++125.80,+00.00,01.00,000.00,1.00 ++126.70,+00.00,01.00,000.00,1.00 ++127.60,+00.00,01.00,000.00,1.00 ++128.50,+00.00,01.00,000.00,1.00 ++129.40,+00.00,01.00,000.00,1.00 ++130.30,+00.00,01.00,000.00,1.00 ++131.20,+00.00,01.00,000.00,1.00 ++132.10,+00.00,01.00,000.00,1.00 ++133.00,+00.00,01.00,000.00,1.00 ++133.90,+00.00,01.00,000.00,1.00 ++134.80,+00.00,01.00,000.00,1.00 ++135.70,+00.00,01.00,000.00,1.00 ++136.60,+00.00,01.00,000.00,1.00 ++137.50,+00.00,01.00,000.00,1.00 ++138.40,+00.00,01.00,000.00,1.00 ++139.30,+00.00,01.00,000.00,1.00 ++140.20,+00.00,01.00,000.00,1.00 ++141.10,+00.00,01.00,000.00,1.00 ++142.00,+00.00,01.00,000.00,1.00 ++142.90,+00.00,01.00,000.00,1.00 ++143.80,+00.00,01.00,000.00,1.00 ++144.70,+00.00,01.00,000.00,1.00 ++145.60,+00.00,01.00,000.00,1.00 ++146.50,+00.00,01.00,000.00,1.00 ++147.40,+00.00,01.00,000.00,1.00 ++148.30,+00.00,01.00,000.00,1.00 ++149.20,+00.00,01.00,000.00,1.00 ++150.10,+00.00,01.00,000.00,1.00 ++151.00,+00.00,01.00,000.00,1.00 ++151.90,+00.00,01.00,000.00,1.00 ++152.80,+00.00,01.00,000.00,1.00 ++153.70,+00.00,01.00,000.00,1.00 ++154.60,+00.00,01.00,000.00,1.00 ++155.50,+00.00,01.00,000.00,1.00 ++156.40,+00.00,01.00,000.00,1.00 ++157.30,+00.00,01.00,000.00,1.00 ++158.20,+00.00,01.00,000.00,1.00 ++159.10,+00.00,01.00,000.00,1.00 ++160.00,+00.00,01.00,000.00,1.00 ++160.90,+00.00,01.00,000.00,1.00 ++161.80,+00.00,01.00,000.00,1.00 ++162.70,+00.00,01.00,000.00,1.00 ++163.60,+00.00,01.00,000.00,1.00 ++164.50,+00.00,01.00,000.00,1.00 ++165.40,+00.00,01.00,000.00,1.00 ++166.30,+00.00,01.00,000.00,1.00 ++167.20,+00.00,01.00,000.00,1.00 ++168.10,+00.00,01.00,000.00,1.00 ++169.00,+00.00,01.00,000.00,1.00 ++169.90,+00.00,01.00,000.00,1.00 ++170.80,+00.00,01.00,000.00,1.00 ++171.70,+00.00,01.00,000.00,1.00 ++172.60,+00.00,01.00,000.00,1.00 ++173.50,+00.00,01.00,000.00,1.00 ++174.40,+00.00,01.00,000.00,1.00 ++175.30,+00.00,01.00,000.00,1.00 ++176.20,+00.00,01.00,000.00,1.00 ++177.10,+00.00,01.00,000.00,1.00 ++178.00,+00.00,01.00,000.00,1.00 ++178.90,+00.00,01.00,000.00,1.00 ++179.80,+00.00,01.00,000.00,1.00 +-179.30,+00.00,01.00,000.00,1.00 +-178.40,+00.00,01.00,000.00,1.00 +-177.50,+00.00,01.00,000.00,1.00 +-176.60,+00.00,01.00,000.00,1.00 +-175.70,+00.00,01.00,000.00,1.00 +-174.80,+00.00,01.00,000.00,1.00 +-173.90,+00.00,01.00,000.00,1.00 +-173.00,+00.00,01.00,000.00,1.00 +-172.10,+00.00,01.00,000.00,1.00 +-171.20,+00.00,01.00,000.00,1.00 +-170.30,+00.00,01.00,000.00,1.00 +-169.40,+00.00,01.00,000.00,1.00 +-168.50,+00.00,01.00,000.00,1.00 +-167.60,+00.00,01.00,000.00,1.00 +-166.70,+00.00,01.00,000.00,1.00 +-165.80,+00.00,01.00,000.00,1.00 +-164.90,+00.00,01.00,000.00,1.00 +-164.00,+00.00,01.00,000.00,1.00 +-163.10,+00.00,01.00,000.00,1.00 +-162.20,+00.00,01.00,000.00,1.00 +-161.30,+00.00,01.00,000.00,1.00 +-160.40,+00.00,01.00,000.00,1.00 +-159.50,+00.00,01.00,000.00,1.00 +-158.60,+00.00,01.00,000.00,1.00 +-157.70,+00.00,01.00,000.00,1.00 +-156.80,+00.00,01.00,000.00,1.00 +-155.90,+00.00,01.00,000.00,1.00 +-155.00,+00.00,01.00,000.00,1.00 +-154.10,+00.00,01.00,000.00,1.00 +-153.20,+00.00,01.00,000.00,1.00 +-152.30,+00.00,01.00,000.00,1.00 +-151.40,+00.00,01.00,000.00,1.00 +-150.50,+00.00,01.00,000.00,1.00 +-149.60,+00.00,01.00,000.00,1.00 +-148.70,+00.00,01.00,000.00,1.00 +-147.80,+00.00,01.00,000.00,1.00 +-146.90,+00.00,01.00,000.00,1.00 +-146.00,+00.00,01.00,000.00,1.00 +-145.10,+00.00,01.00,000.00,1.00 +-144.20,+00.00,01.00,000.00,1.00 +-143.30,+00.00,01.00,000.00,1.00 +-142.40,+00.00,01.00,000.00,1.00 +-141.50,+00.00,01.00,000.00,1.00 +-140.60,+00.00,01.00,000.00,1.00 +-139.70,+00.00,01.00,000.00,1.00 +-138.80,+00.00,01.00,000.00,1.00 +-137.90,+00.00,01.00,000.00,1.00 +-137.00,+00.00,01.00,000.00,1.00 +-136.10,+00.00,01.00,000.00,1.00 +-135.20,+00.00,01.00,000.00,1.00 +-134.30,+00.00,01.00,000.00,1.00 +-133.40,+00.00,01.00,000.00,1.00 +-132.50,+00.00,01.00,000.00,1.00 +-131.60,+00.00,01.00,000.00,1.00 +-130.70,+00.00,01.00,000.00,1.00 +-129.80,+00.00,01.00,000.00,1.00 +-128.90,+00.00,01.00,000.00,1.00 +-128.00,+00.00,01.00,000.00,1.00 +-127.10,+00.00,01.00,000.00,1.00 +-126.20,+00.00,01.00,000.00,1.00 +-125.30,+00.00,01.00,000.00,1.00 +-124.40,+00.00,01.00,000.00,1.00 +-123.50,+00.00,01.00,000.00,1.00 +-122.60,+00.00,01.00,000.00,1.00 +-121.70,+00.00,01.00,000.00,1.00 +-120.80,+00.00,01.00,000.00,1.00 +-119.90,+00.00,01.00,000.00,1.00 +-119.00,+00.00,01.00,000.00,1.00 +-118.10,+00.00,01.00,000.00,1.00 +-117.20,+00.00,01.00,000.00,1.00 +-116.30,+00.00,01.00,000.00,1.00 +-115.40,+00.00,01.00,000.00,1.00 +-114.50,+00.00,01.00,000.00,1.00 +-113.60,+00.00,01.00,000.00,1.00 +-112.70,+00.00,01.00,000.00,1.00 +-111.80,+00.00,01.00,000.00,1.00 +-110.90,+00.00,01.00,000.00,1.00 +-110.00,+00.00,01.00,000.00,1.00 +-109.10,+00.00,01.00,000.00,1.00 +-108.20,+00.00,01.00,000.00,1.00 +-107.30,+00.00,01.00,000.00,1.00 +-106.40,+00.00,01.00,000.00,1.00 +-105.50,+00.00,01.00,000.00,1.00 +-104.60,+00.00,01.00,000.00,1.00 +-103.70,+00.00,01.00,000.00,1.00 +-102.80,+00.00,01.00,000.00,1.00 +-101.90,+00.00,01.00,000.00,1.00 +-101.00,+00.00,01.00,000.00,1.00 +-100.10,+00.00,01.00,000.00,1.00 +-099.20,+00.00,01.00,000.00,1.00 +-098.30,+00.00,01.00,000.00,1.00 +-097.40,+00.00,01.00,000.00,1.00 +-096.50,+00.00,01.00,000.00,1.00 +-095.60,+00.00,01.00,000.00,1.00 +-094.70,+00.00,01.00,000.00,1.00 +-093.80,+00.00,01.00,000.00,1.00 +-092.90,+00.00,01.00,000.00,1.00 +-092.00,+00.00,01.00,000.00,1.00 +-091.10,+00.00,01.00,000.00,1.00 +-090.20,+00.00,01.00,000.00,1.00 +-089.30,+00.00,01.00,000.00,1.00 +-088.40,+00.00,01.00,000.00,1.00 +-087.50,+00.00,01.00,000.00,1.00 +-086.60,+00.00,01.00,000.00,1.00 +-085.70,+00.00,01.00,000.00,1.00 +-084.80,+00.00,01.00,000.00,1.00 +-083.90,+00.00,01.00,000.00,1.00 +-083.00,+00.00,01.00,000.00,1.00 +-082.10,+00.00,01.00,000.00,1.00 +-081.20,+00.00,01.00,000.00,1.00 +-080.30,+00.00,01.00,000.00,1.00 +-079.40,+00.00,01.00,000.00,1.00 +-078.50,+00.00,01.00,000.00,1.00 +-077.60,+00.00,01.00,000.00,1.00 +-076.70,+00.00,01.00,000.00,1.00 +-075.80,+00.00,01.00,000.00,1.00 +-074.90,+00.00,01.00,000.00,1.00 +-074.00,+00.00,01.00,000.00,1.00 +-073.10,+00.00,01.00,000.00,1.00 +-072.20,+00.00,01.00,000.00,1.00 +-071.30,+00.00,01.00,000.00,1.00 +-070.40,+00.00,01.00,000.00,1.00 +-069.50,+00.00,01.00,000.00,1.00 +-068.60,+00.00,01.00,000.00,1.00 +-067.70,+00.00,01.00,000.00,1.00 +-066.80,+00.00,01.00,000.00,1.00 +-065.90,+00.00,01.00,000.00,1.00 +-065.00,+00.00,01.00,000.00,1.00 +-064.10,+00.00,01.00,000.00,1.00 +-063.20,+00.00,01.00,000.00,1.00 +-062.30,+00.00,01.00,000.00,1.00 +-061.40,+00.00,01.00,000.00,1.00 +-060.50,+00.00,01.00,000.00,1.00 +-059.60,+00.00,01.00,000.00,1.00 +-058.70,+00.00,01.00,000.00,1.00 +-057.80,+00.00,01.00,000.00,1.00 +-056.90,+00.00,01.00,000.00,1.00 +-056.00,+00.00,01.00,000.00,1.00 +-055.10,+00.00,01.00,000.00,1.00 +-054.20,+00.00,01.00,000.00,1.00 +-053.30,+00.00,01.00,000.00,1.00 +-052.40,+00.00,01.00,000.00,1.00 +-051.50,+00.00,01.00,000.00,1.00 +-050.60,+00.00,01.00,000.00,1.00 +-049.70,+00.00,01.00,000.00,1.00 +-048.80,+00.00,01.00,000.00,1.00 +-047.90,+00.00,01.00,000.00,1.00 +-047.00,+00.00,01.00,000.00,1.00 +-046.10,+00.00,01.00,000.00,1.00 +-045.20,+00.00,01.00,000.00,1.00 +-044.30,+00.00,01.00,000.00,1.00 +-043.40,+00.00,01.00,000.00,1.00 +-042.50,+00.00,01.00,000.00,1.00 +-041.60,+00.00,01.00,000.00,1.00 +-040.70,+00.00,01.00,000.00,1.00 +-039.80,+00.00,01.00,000.00,1.00 +-038.90,+00.00,01.00,000.00,1.00 +-038.00,+00.00,01.00,000.00,1.00 +-037.10,+00.00,01.00,000.00,1.00 +-036.20,+00.00,01.00,000.00,1.00 +-035.30,+00.00,01.00,000.00,1.00 +-034.40,+00.00,01.00,000.00,1.00 +-033.50,+00.00,01.00,000.00,1.00 +-032.60,+00.00,01.00,000.00,1.00 +-031.70,+00.00,01.00,000.00,1.00 +-030.80,+00.00,01.00,000.00,1.00 +-029.90,+00.00,01.00,000.00,1.00 +-029.00,+00.00,01.00,000.00,1.00 +-028.10,+00.00,01.00,000.00,1.00 +-027.20,+00.00,01.00,000.00,1.00 +-026.30,+00.00,01.00,000.00,1.00 +-025.40,+00.00,01.00,000.00,1.00 +-024.50,+00.00,01.00,000.00,1.00 +-023.60,+00.00,01.00,000.00,1.00 +-022.70,+00.00,01.00,000.00,1.00 +-021.80,+00.00,01.00,000.00,1.00 +-020.90,+00.00,01.00,000.00,1.00 +-020.00,+00.00,01.00,000.00,1.00 +-019.10,+00.00,01.00,000.00,1.00 +-018.20,+00.00,01.00,000.00,1.00 +-017.30,+00.00,01.00,000.00,1.00 +-016.40,+00.00,01.00,000.00,1.00 +-015.50,+00.00,01.00,000.00,1.00 +-014.60,+00.00,01.00,000.00,1.00 +-013.70,+00.00,01.00,000.00,1.00 +-012.80,+00.00,01.00,000.00,1.00 +-011.90,+00.00,01.00,000.00,1.00 +-011.00,+00.00,01.00,000.00,1.00 +-010.10,+00.00,01.00,000.00,1.00 +-009.20,+00.00,01.00,000.00,1.00 +-008.30,+00.00,01.00,000.00,1.00 +-007.40,+00.00,01.00,000.00,1.00 +-006.50,+00.00,01.00,000.00,1.00 +-005.60,+00.00,01.00,000.00,1.00 +-004.70,+00.00,01.00,000.00,1.00 +-003.80,+00.00,01.00,000.00,1.00 +-002.90,+00.00,01.00,000.00,1.00 +-002.00,+00.00,01.00,000.00,1.00 +-001.10,+00.00,01.00,000.00,1.00 +-000.20,+00.00,01.00,000.00,1.00 ++000.70,+00.00,01.00,000.00,1.00 ++001.60,+00.00,01.00,000.00,1.00 ++002.50,+00.00,01.00,000.00,1.00 ++003.40,+00.00,01.00,000.00,1.00 ++004.30,+00.00,01.00,000.00,1.00 ++005.20,+00.00,01.00,000.00,1.00 ++006.10,+00.00,01.00,000.00,1.00 ++007.00,+00.00,01.00,000.00,1.00 ++007.90,+00.00,01.00,000.00,1.00 ++008.80,+00.00,01.00,000.00,1.00 ++009.70,+00.00,01.00,000.00,1.00 ++010.60,+00.00,01.00,000.00,1.00 ++011.50,+00.00,01.00,000.00,1.00 ++012.40,+00.00,01.00,000.00,1.00 ++013.30,+00.00,01.00,000.00,1.00 ++014.20,+00.00,01.00,000.00,1.00 ++015.10,+00.00,01.00,000.00,1.00 ++016.00,+00.00,01.00,000.00,1.00 ++016.90,+00.00,01.00,000.00,1.00 ++017.80,+00.00,01.00,000.00,1.00 ++018.70,+00.00,01.00,000.00,1.00 ++019.60,+00.00,01.00,000.00,1.00 ++020.50,+00.00,01.00,000.00,1.00 ++021.40,+00.00,01.00,000.00,1.00 ++022.30,+00.00,01.00,000.00,1.00 ++023.20,+00.00,01.00,000.00,1.00 ++024.10,+00.00,01.00,000.00,1.00 ++025.00,+00.00,01.00,000.00,1.00 ++025.90,+00.00,01.00,000.00,1.00 ++026.80,+00.00,01.00,000.00,1.00 ++027.70,+00.00,01.00,000.00,1.00 ++028.60,+00.00,01.00,000.00,1.00 ++029.50,+00.00,01.00,000.00,1.00 ++030.40,+00.00,01.00,000.00,1.00 ++031.30,+00.00,01.00,000.00,1.00 ++032.20,+00.00,01.00,000.00,1.00 ++033.10,+00.00,01.00,000.00,1.00 ++034.00,+00.00,01.00,000.00,1.00 ++034.90,+00.00,01.00,000.00,1.00 ++035.80,+00.00,01.00,000.00,1.00 ++036.70,+00.00,01.00,000.00,1.00 ++037.60,+00.00,01.00,000.00,1.00 ++038.50,+00.00,01.00,000.00,1.00 ++039.40,+00.00,01.00,000.00,1.00 ++040.30,+00.00,01.00,000.00,1.00 ++041.20,+00.00,01.00,000.00,1.00 ++042.10,+00.00,01.00,000.00,1.00 ++043.00,+00.00,01.00,000.00,1.00 ++043.90,+00.00,01.00,000.00,1.00 ++044.80,+00.00,01.00,000.00,1.00 ++045.70,+00.00,01.00,000.00,1.00 ++046.60,+00.00,01.00,000.00,1.00 ++047.50,+00.00,01.00,000.00,1.00 ++048.40,+00.00,01.00,000.00,1.00 ++049.30,+00.00,01.00,000.00,1.00 ++050.20,+00.00,01.00,000.00,1.00 ++051.10,+00.00,01.00,000.00,1.00 ++052.00,+00.00,01.00,000.00,1.00 ++052.90,+00.00,01.00,000.00,1.00 ++053.80,+00.00,01.00,000.00,1.00 ++054.70,+00.00,01.00,000.00,1.00 ++055.60,+00.00,01.00,000.00,1.00 ++056.50,+00.00,01.00,000.00,1.00 ++057.40,+00.00,01.00,000.00,1.00 ++058.30,+00.00,01.00,000.00,1.00 ++059.20,+00.00,01.00,000.00,1.00 ++060.10,+00.00,01.00,000.00,1.00 ++061.00,+00.00,01.00,000.00,1.00 ++061.90,+00.00,01.00,000.00,1.00 ++062.80,+00.00,01.00,000.00,1.00 ++063.70,+00.00,01.00,000.00,1.00 ++064.60,+00.00,01.00,000.00,1.00 ++065.50,+00.00,01.00,000.00,1.00 ++066.40,+00.00,01.00,000.00,1.00 ++067.30,+00.00,01.00,000.00,1.00 ++068.20,+00.00,01.00,000.00,1.00 ++069.10,+00.00,01.00,000.00,1.00 ++070.00,+00.00,01.00,000.00,1.00 ++070.90,+00.00,01.00,000.00,1.00 ++071.80,+00.00,01.00,000.00,1.00 ++072.70,+00.00,01.00,000.00,1.00 ++073.60,+00.00,01.00,000.00,1.00 ++074.50,+00.00,01.00,000.00,1.00 ++075.40,+00.00,01.00,000.00,1.00 ++076.30,+00.00,01.00,000.00,1.00 ++077.20,+00.00,01.00,000.00,1.00 ++078.10,+00.00,01.00,000.00,1.00 ++079.00,+00.00,01.00,000.00,1.00 ++079.90,+00.00,01.00,000.00,1.00 ++080.80,+00.00,01.00,000.00,1.00 ++081.70,+00.00,01.00,000.00,1.00 ++082.60,+00.00,01.00,000.00,1.00 ++083.50,+00.00,01.00,000.00,1.00 ++084.40,+00.00,01.00,000.00,1.00 ++085.30,+00.00,01.00,000.00,1.00 ++086.20,+00.00,01.00,000.00,1.00 ++087.10,+00.00,01.00,000.00,1.00 ++088.00,+00.00,01.00,000.00,1.00 ++088.90,+00.00,01.00,000.00,1.00 ++089.80,+00.00,01.00,000.00,1.00 ++090.70,+00.00,01.00,000.00,1.00 ++091.60,+00.00,01.00,000.00,1.00 ++092.50,+00.00,01.00,000.00,1.00 ++093.40,+00.00,01.00,000.00,1.00 ++094.30,+00.00,01.00,000.00,1.00 ++095.20,+00.00,01.00,000.00,1.00 ++096.10,+00.00,01.00,000.00,1.00 ++097.00,+00.00,01.00,000.00,1.00 ++097.90,+00.00,01.00,000.00,1.00 ++098.80,+00.00,01.00,000.00,1.00 ++099.70,+00.00,01.00,000.00,1.00 ++100.60,+00.00,01.00,000.00,1.00 ++101.50,+00.00,01.00,000.00,1.00 ++102.40,+00.00,01.00,000.00,1.00 ++103.30,+00.00,01.00,000.00,1.00 ++104.20,+00.00,01.00,000.00,1.00 ++105.10,+00.00,01.00,000.00,1.00 ++106.00,+00.00,01.00,000.00,1.00 ++106.90,+00.00,01.00,000.00,1.00 ++107.80,+00.00,01.00,000.00,1.00 ++108.70,+00.00,01.00,000.00,1.00 ++109.60,+00.00,01.00,000.00,1.00 ++110.50,+00.00,01.00,000.00,1.00 ++111.40,+00.00,01.00,000.00,1.00 ++112.30,+00.00,01.00,000.00,1.00 ++113.20,+00.00,01.00,000.00,1.00 ++114.10,+00.00,01.00,000.00,1.00 ++115.00,+00.00,01.00,000.00,1.00 ++115.90,+00.00,01.00,000.00,1.00 ++116.80,+00.00,01.00,000.00,1.00 ++117.70,+00.00,01.00,000.00,1.00 ++118.60,+00.00,01.00,000.00,1.00 ++119.50,+00.00,01.00,000.00,1.00 ++120.40,+00.00,01.00,000.00,1.00 ++121.30,+00.00,01.00,000.00,1.00 ++122.20,+00.00,01.00,000.00,1.00 ++123.10,+00.00,01.00,000.00,1.00 ++124.00,+00.00,01.00,000.00,1.00 ++124.90,+00.00,01.00,000.00,1.00 ++125.80,+00.00,01.00,000.00,1.00 ++126.70,+00.00,01.00,000.00,1.00 ++127.60,+00.00,01.00,000.00,1.00 ++128.50,+00.00,01.00,000.00,1.00 ++129.40,+00.00,01.00,000.00,1.00 ++130.30,+00.00,01.00,000.00,1.00 ++131.20,+00.00,01.00,000.00,1.00 ++132.10,+00.00,01.00,000.00,1.00 ++133.00,+00.00,01.00,000.00,1.00 ++133.90,+00.00,01.00,000.00,1.00 ++134.80,+00.00,01.00,000.00,1.00 ++135.70,+00.00,01.00,000.00,1.00 ++136.60,+00.00,01.00,000.00,1.00 ++137.50,+00.00,01.00,000.00,1.00 ++138.40,+00.00,01.00,000.00,1.00 ++139.30,+00.00,01.00,000.00,1.00 ++140.20,+00.00,01.00,000.00,1.00 ++141.10,+00.00,01.00,000.00,1.00 ++142.00,+00.00,01.00,000.00,1.00 ++142.90,+00.00,01.00,000.00,1.00 ++143.80,+00.00,01.00,000.00,1.00 ++144.70,+00.00,01.00,000.00,1.00 ++145.60,+00.00,01.00,000.00,1.00 ++146.50,+00.00,01.00,000.00,1.00 ++147.40,+00.00,01.00,000.00,1.00 ++148.30,+00.00,01.00,000.00,1.00 ++149.20,+00.00,01.00,000.00,1.00 ++150.10,+00.00,01.00,000.00,1.00 ++151.00,+00.00,01.00,000.00,1.00 ++151.90,+00.00,01.00,000.00,1.00 ++152.80,+00.00,01.00,000.00,1.00 ++153.70,+00.00,01.00,000.00,1.00 ++154.60,+00.00,01.00,000.00,1.00 ++155.50,+00.00,01.00,000.00,1.00 ++156.40,+00.00,01.00,000.00,1.00 ++157.30,+00.00,01.00,000.00,1.00 ++158.20,+00.00,01.00,000.00,1.00 ++159.10,+00.00,01.00,000.00,1.00 diff --git a/scripts/trajectories/azi+2-ele+2-every-100-frames-Euler.csv b/scripts/trajectories/azi+2-ele+2-every-100-frames-Euler.csv index 0c483aa368..08bb055d5e 100644 --- a/scripts/trajectories/azi+2-ele+2-every-100-frames-Euler.csv +++ b/scripts/trajectories/azi+2-ele+2-every-100-frames-Euler.csv @@ -1,12000 +1,12000 @@ -0, -3.000000, 90.000000, 45.000000, 0.000000 -1, -3.000000, 90.000000, 45.000000, 0.000000 -2, -3.000000, 90.000000, 45.000000, 0.000000 -3, -3.000000, 90.000000, 45.000000, 0.000000 -4, -3.000000, 90.000000, 45.000000, 0.000000 -5, -3.000000, 90.000000, 45.000000, 0.000000 -6, -3.000000, 90.000000, 45.000000, 0.000000 -7, -3.000000, 90.000000, 45.000000, 0.000000 -8, -3.000000, 90.000000, 45.000000, 0.000000 -9, -3.000000, 90.000000, 45.000000, 0.000000 -10, -3.000000, 90.000000, 45.000000, 0.000000 -11, -3.000000, 90.000000, 45.000000, 0.000000 -12, -3.000000, 90.000000, 45.000000, 0.000000 -13, -3.000000, 90.000000, 45.000000, 0.000000 -14, -3.000000, 90.000000, 45.000000, 0.000000 -15, -3.000000, 90.000000, 45.000000, 0.000000 -16, -3.000000, 90.000000, 45.000000, 0.000000 -17, -3.000000, 90.000000, 45.000000, 0.000000 -18, -3.000000, 90.000000, 45.000000, 0.000000 -19, -3.000000, 90.000000, 45.000000, 0.000000 -20, -3.000000, 90.000000, 45.000000, 0.000000 -21, -3.000000, 90.000000, 45.000000, 0.000000 -22, -3.000000, 90.000000, 45.000000, 0.000000 -23, -3.000000, 90.000000, 45.000000, 0.000000 -24, -3.000000, 90.000000, 45.000000, 0.000000 -25, -3.000000, 90.000000, 45.000000, 0.000000 -26, -3.000000, 90.000000, 45.000000, 0.000000 -27, -3.000000, 90.000000, 45.000000, 0.000000 -28, -3.000000, 90.000000, 45.000000, 0.000000 -29, -3.000000, 90.000000, 45.000000, 0.000000 -30, -3.000000, 90.000000, 45.000000, 0.000000 -31, -3.000000, 90.000000, 45.000000, 0.000000 -32, -3.000000, 90.000000, 45.000000, 0.000000 -33, -3.000000, 90.000000, 45.000000, 0.000000 -34, -3.000000, 90.000000, 45.000000, 0.000000 -35, -3.000000, 90.000000, 45.000000, 0.000000 -36, -3.000000, 90.000000, 45.000000, 0.000000 -37, -3.000000, 90.000000, 45.000000, 0.000000 -38, -3.000000, 90.000000, 45.000000, 0.000000 -39, -3.000000, 90.000000, 45.000000, 0.000000 -40, -3.000000, 90.000000, 45.000000, 0.000000 -41, -3.000000, 90.000000, 45.000000, 0.000000 -42, -3.000000, 90.000000, 45.000000, 0.000000 -43, -3.000000, 90.000000, 45.000000, 0.000000 -44, -3.000000, 90.000000, 45.000000, 0.000000 -45, -3.000000, 90.000000, 45.000000, 0.000000 -46, -3.000000, 90.000000, 45.000000, 0.000000 -47, -3.000000, 90.000000, 45.000000, 0.000000 -48, -3.000000, 90.000000, 45.000000, 0.000000 -49, -3.000000, 90.000000, 45.000000, 0.000000 -50, -3.000000, 90.000000, 45.000000, 0.000000 -51, -3.000000, 90.000000, 45.000000, 0.000000 -52, -3.000000, 90.000000, 45.000000, 0.000000 -53, -3.000000, 90.000000, 45.000000, 0.000000 -54, -3.000000, 90.000000, 45.000000, 0.000000 -55, -3.000000, 90.000000, 45.000000, 0.000000 -56, -3.000000, 90.000000, 45.000000, 0.000000 -57, -3.000000, 90.000000, 45.000000, 0.000000 -58, -3.000000, 90.000000, 45.000000, 0.000000 -59, -3.000000, 90.000000, 45.000000, 0.000000 -60, -3.000000, 90.000000, 45.000000, 0.000000 -61, -3.000000, 90.000000, 45.000000, 0.000000 -62, -3.000000, 90.000000, 45.000000, 0.000000 -63, -3.000000, 90.000000, 45.000000, 0.000000 -64, -3.000000, 90.000000, 45.000000, 0.000000 -65, -3.000000, 90.000000, 45.000000, 0.000000 -66, -3.000000, 90.000000, 45.000000, 0.000000 -67, -3.000000, 90.000000, 45.000000, 0.000000 -68, -3.000000, 90.000000, 45.000000, 0.000000 -69, -3.000000, 90.000000, 45.000000, 0.000000 -70, -3.000000, 90.000000, 45.000000, 0.000000 -71, -3.000000, 90.000000, 45.000000, 0.000000 -72, -3.000000, 90.000000, 45.000000, 0.000000 -73, -3.000000, 90.000000, 45.000000, 0.000000 -74, -3.000000, 90.000000, 45.000000, 0.000000 -75, -3.000000, 90.000000, 45.000000, 0.000000 -76, -3.000000, 90.000000, 45.000000, 0.000000 -77, -3.000000, 90.000000, 45.000000, 0.000000 -78, -3.000000, 90.000000, 45.000000, 0.000000 -79, -3.000000, 90.000000, 45.000000, 0.000000 -80, -3.000000, 90.000000, 45.000000, 0.000000 -81, -3.000000, 90.000000, 45.000000, 0.000000 -82, -3.000000, 90.000000, 45.000000, 0.000000 -83, -3.000000, 90.000000, 45.000000, 0.000000 -84, -3.000000, 90.000000, 45.000000, 0.000000 -85, -3.000000, 90.000000, 45.000000, 0.000000 -86, -3.000000, 90.000000, 45.000000, 0.000000 -87, -3.000000, 90.000000, 45.000000, 0.000000 -88, -3.000000, 90.000000, 45.000000, 0.000000 -89, -3.000000, 90.000000, 45.000000, 0.000000 -90, -3.000000, 90.000000, 45.000000, 0.000000 -91, -3.000000, 90.000000, 45.000000, 0.000000 -92, -3.000000, 90.000000, 45.000000, 0.000000 -93, -3.000000, 90.000000, 45.000000, 0.000000 -94, -3.000000, 90.000000, 45.000000, 0.000000 -95, -3.000000, 90.000000, 45.000000, 0.000000 -96, -3.000000, 90.000000, 45.000000, 0.000000 -97, -3.000000, 90.000000, 45.000000, 0.000000 -98, -3.000000, 90.000000, 45.000000, 0.000000 -99, -3.000000, 90.000000, 45.000000, 0.000000 -100, -3.000000, 92.000000, 48.000000, 0.000000 -101, -3.000000, 92.000000, 48.000000, 0.000000 -102, -3.000000, 92.000000, 48.000000, 0.000000 -103, -3.000000, 92.000000, 48.000000, 0.000000 -104, -3.000000, 92.000000, 48.000000, 0.000000 -105, -3.000000, 92.000000, 48.000000, 0.000000 -106, -3.000000, 92.000000, 48.000000, 0.000000 -107, -3.000000, 92.000000, 48.000000, 0.000000 -108, -3.000000, 92.000000, 48.000000, 0.000000 -109, -3.000000, 92.000000, 48.000000, 0.000000 -110, -3.000000, 92.000000, 48.000000, 0.000000 -111, -3.000000, 92.000000, 48.000000, 0.000000 -112, -3.000000, 92.000000, 48.000000, 0.000000 -113, -3.000000, 92.000000, 48.000000, 0.000000 -114, -3.000000, 92.000000, 48.000000, 0.000000 -115, -3.000000, 92.000000, 48.000000, 0.000000 -116, -3.000000, 92.000000, 48.000000, 0.000000 -117, -3.000000, 92.000000, 48.000000, 0.000000 -118, -3.000000, 92.000000, 48.000000, 0.000000 -119, -3.000000, 92.000000, 48.000000, 0.000000 -120, -3.000000, 92.000000, 48.000000, 0.000000 -121, -3.000000, 92.000000, 48.000000, 0.000000 -122, -3.000000, 92.000000, 48.000000, 0.000000 -123, -3.000000, 92.000000, 48.000000, 0.000000 -124, -3.000000, 92.000000, 48.000000, 0.000000 -125, -3.000000, 92.000000, 48.000000, 0.000000 -126, -3.000000, 92.000000, 48.000000, 0.000000 -127, -3.000000, 92.000000, 48.000000, 0.000000 -128, -3.000000, 92.000000, 48.000000, 0.000000 -129, -3.000000, 92.000000, 48.000000, 0.000000 -130, -3.000000, 92.000000, 48.000000, 0.000000 -131, -3.000000, 92.000000, 48.000000, 0.000000 -132, -3.000000, 92.000000, 48.000000, 0.000000 -133, -3.000000, 92.000000, 48.000000, 0.000000 -134, -3.000000, 92.000000, 48.000000, 0.000000 -135, -3.000000, 92.000000, 48.000000, 0.000000 -136, -3.000000, 92.000000, 48.000000, 0.000000 -137, -3.000000, 92.000000, 48.000000, 0.000000 -138, -3.000000, 92.000000, 48.000000, 0.000000 -139, -3.000000, 92.000000, 48.000000, 0.000000 -140, -3.000000, 92.000000, 48.000000, 0.000000 -141, -3.000000, 92.000000, 48.000000, 0.000000 -142, -3.000000, 92.000000, 48.000000, 0.000000 -143, -3.000000, 92.000000, 48.000000, 0.000000 -144, -3.000000, 92.000000, 48.000000, 0.000000 -145, -3.000000, 92.000000, 48.000000, 0.000000 -146, -3.000000, 92.000000, 48.000000, 0.000000 -147, -3.000000, 92.000000, 48.000000, 0.000000 -148, -3.000000, 92.000000, 48.000000, 0.000000 -149, -3.000000, 92.000000, 48.000000, 0.000000 -150, -3.000000, 92.000000, 48.000000, 0.000000 -151, -3.000000, 92.000000, 48.000000, 0.000000 -152, -3.000000, 92.000000, 48.000000, 0.000000 -153, -3.000000, 92.000000, 48.000000, 0.000000 -154, -3.000000, 92.000000, 48.000000, 0.000000 -155, -3.000000, 92.000000, 48.000000, 0.000000 -156, -3.000000, 92.000000, 48.000000, 0.000000 -157, -3.000000, 92.000000, 48.000000, 0.000000 -158, -3.000000, 92.000000, 48.000000, 0.000000 -159, -3.000000, 92.000000, 48.000000, 0.000000 -160, -3.000000, 92.000000, 48.000000, 0.000000 -161, -3.000000, 92.000000, 48.000000, 0.000000 -162, -3.000000, 92.000000, 48.000000, 0.000000 -163, -3.000000, 92.000000, 48.000000, 0.000000 -164, -3.000000, 92.000000, 48.000000, 0.000000 -165, -3.000000, 92.000000, 48.000000, 0.000000 -166, -3.000000, 92.000000, 48.000000, 0.000000 -167, -3.000000, 92.000000, 48.000000, 0.000000 -168, -3.000000, 92.000000, 48.000000, 0.000000 -169, -3.000000, 92.000000, 48.000000, 0.000000 -170, -3.000000, 92.000000, 48.000000, 0.000000 -171, -3.000000, 92.000000, 48.000000, 0.000000 -172, -3.000000, 92.000000, 48.000000, 0.000000 -173, -3.000000, 92.000000, 48.000000, 0.000000 -174, -3.000000, 92.000000, 48.000000, 0.000000 -175, -3.000000, 92.000000, 48.000000, 0.000000 -176, -3.000000, 92.000000, 48.000000, 0.000000 -177, -3.000000, 92.000000, 48.000000, 0.000000 -178, -3.000000, 92.000000, 48.000000, 0.000000 -179, -3.000000, 92.000000, 48.000000, 0.000000 -180, -3.000000, 92.000000, 48.000000, 0.000000 -181, -3.000000, 92.000000, 48.000000, 0.000000 -182, -3.000000, 92.000000, 48.000000, 0.000000 -183, -3.000000, 92.000000, 48.000000, 0.000000 -184, -3.000000, 92.000000, 48.000000, 0.000000 -185, -3.000000, 92.000000, 48.000000, 0.000000 -186, -3.000000, 92.000000, 48.000000, 0.000000 -187, -3.000000, 92.000000, 48.000000, 0.000000 -188, -3.000000, 92.000000, 48.000000, 0.000000 -189, -3.000000, 92.000000, 48.000000, 0.000000 -190, -3.000000, 92.000000, 48.000000, 0.000000 -191, -3.000000, 92.000000, 48.000000, 0.000000 -192, -3.000000, 92.000000, 48.000000, 0.000000 -193, -3.000000, 92.000000, 48.000000, 0.000000 -194, -3.000000, 92.000000, 48.000000, 0.000000 -195, -3.000000, 92.000000, 48.000000, 0.000000 -196, -3.000000, 92.000000, 48.000000, 0.000000 -197, -3.000000, 92.000000, 48.000000, 0.000000 -198, -3.000000, 92.000000, 48.000000, 0.000000 -199, -3.000000, 92.000000, 48.000000, 0.000000 -200, -3.000000, 94.000000, 51.000000, 0.000000 -201, -3.000000, 94.000000, 51.000000, 0.000000 -202, -3.000000, 94.000000, 51.000000, 0.000000 -203, -3.000000, 94.000000, 51.000000, 0.000000 -204, -3.000000, 94.000000, 51.000000, 0.000000 -205, -3.000000, 94.000000, 51.000000, 0.000000 -206, -3.000000, 94.000000, 51.000000, 0.000000 -207, -3.000000, 94.000000, 51.000000, 0.000000 -208, -3.000000, 94.000000, 51.000000, 0.000000 -209, -3.000000, 94.000000, 51.000000, 0.000000 -210, -3.000000, 94.000000, 51.000000, 0.000000 -211, -3.000000, 94.000000, 51.000000, 0.000000 -212, -3.000000, 94.000000, 51.000000, 0.000000 -213, -3.000000, 94.000000, 51.000000, 0.000000 -214, -3.000000, 94.000000, 51.000000, 0.000000 -215, -3.000000, 94.000000, 51.000000, 0.000000 -216, -3.000000, 94.000000, 51.000000, 0.000000 -217, -3.000000, 94.000000, 51.000000, 0.000000 -218, -3.000000, 94.000000, 51.000000, 0.000000 -219, -3.000000, 94.000000, 51.000000, 0.000000 -220, -3.000000, 94.000000, 51.000000, 0.000000 -221, -3.000000, 94.000000, 51.000000, 0.000000 -222, -3.000000, 94.000000, 51.000000, 0.000000 -223, -3.000000, 94.000000, 51.000000, 0.000000 -224, -3.000000, 94.000000, 51.000000, 0.000000 -225, -3.000000, 94.000000, 51.000000, 0.000000 -226, -3.000000, 94.000000, 51.000000, 0.000000 -227, -3.000000, 94.000000, 51.000000, 0.000000 -228, -3.000000, 94.000000, 51.000000, 0.000000 -229, -3.000000, 94.000000, 51.000000, 0.000000 -230, -3.000000, 94.000000, 51.000000, 0.000000 -231, -3.000000, 94.000000, 51.000000, 0.000000 -232, -3.000000, 94.000000, 51.000000, 0.000000 -233, -3.000000, 94.000000, 51.000000, 0.000000 -234, -3.000000, 94.000000, 51.000000, 0.000000 -235, -3.000000, 94.000000, 51.000000, 0.000000 -236, -3.000000, 94.000000, 51.000000, 0.000000 -237, -3.000000, 94.000000, 51.000000, 0.000000 -238, -3.000000, 94.000000, 51.000000, 0.000000 -239, -3.000000, 94.000000, 51.000000, 0.000000 -240, -3.000000, 94.000000, 51.000000, 0.000000 -241, -3.000000, 94.000000, 51.000000, 0.000000 -242, -3.000000, 94.000000, 51.000000, 0.000000 -243, -3.000000, 94.000000, 51.000000, 0.000000 -244, -3.000000, 94.000000, 51.000000, 0.000000 -245, -3.000000, 94.000000, 51.000000, 0.000000 -246, -3.000000, 94.000000, 51.000000, 0.000000 -247, -3.000000, 94.000000, 51.000000, 0.000000 -248, -3.000000, 94.000000, 51.000000, 0.000000 -249, -3.000000, 94.000000, 51.000000, 0.000000 -250, -3.000000, 94.000000, 51.000000, 0.000000 -251, -3.000000, 94.000000, 51.000000, 0.000000 -252, -3.000000, 94.000000, 51.000000, 0.000000 -253, -3.000000, 94.000000, 51.000000, 0.000000 -254, -3.000000, 94.000000, 51.000000, 0.000000 -255, -3.000000, 94.000000, 51.000000, 0.000000 -256, -3.000000, 94.000000, 51.000000, 0.000000 -257, -3.000000, 94.000000, 51.000000, 0.000000 -258, -3.000000, 94.000000, 51.000000, 0.000000 -259, -3.000000, 94.000000, 51.000000, 0.000000 -260, -3.000000, 94.000000, 51.000000, 0.000000 -261, -3.000000, 94.000000, 51.000000, 0.000000 -262, -3.000000, 94.000000, 51.000000, 0.000000 -263, -3.000000, 94.000000, 51.000000, 0.000000 -264, -3.000000, 94.000000, 51.000000, 0.000000 -265, -3.000000, 94.000000, 51.000000, 0.000000 -266, -3.000000, 94.000000, 51.000000, 0.000000 -267, -3.000000, 94.000000, 51.000000, 0.000000 -268, -3.000000, 94.000000, 51.000000, 0.000000 -269, -3.000000, 94.000000, 51.000000, 0.000000 -270, -3.000000, 94.000000, 51.000000, 0.000000 -271, -3.000000, 94.000000, 51.000000, 0.000000 -272, -3.000000, 94.000000, 51.000000, 0.000000 -273, -3.000000, 94.000000, 51.000000, 0.000000 -274, -3.000000, 94.000000, 51.000000, 0.000000 -275, -3.000000, 94.000000, 51.000000, 0.000000 -276, -3.000000, 94.000000, 51.000000, 0.000000 -277, -3.000000, 94.000000, 51.000000, 0.000000 -278, -3.000000, 94.000000, 51.000000, 0.000000 -279, -3.000000, 94.000000, 51.000000, 0.000000 -280, -3.000000, 94.000000, 51.000000, 0.000000 -281, -3.000000, 94.000000, 51.000000, 0.000000 -282, -3.000000, 94.000000, 51.000000, 0.000000 -283, -3.000000, 94.000000, 51.000000, 0.000000 -284, -3.000000, 94.000000, 51.000000, 0.000000 -285, -3.000000, 94.000000, 51.000000, 0.000000 -286, -3.000000, 94.000000, 51.000000, 0.000000 -287, -3.000000, 94.000000, 51.000000, 0.000000 -288, -3.000000, 94.000000, 51.000000, 0.000000 -289, -3.000000, 94.000000, 51.000000, 0.000000 -290, -3.000000, 94.000000, 51.000000, 0.000000 -291, -3.000000, 94.000000, 51.000000, 0.000000 -292, -3.000000, 94.000000, 51.000000, 0.000000 -293, -3.000000, 94.000000, 51.000000, 0.000000 -294, -3.000000, 94.000000, 51.000000, 0.000000 -295, -3.000000, 94.000000, 51.000000, 0.000000 -296, -3.000000, 94.000000, 51.000000, 0.000000 -297, -3.000000, 94.000000, 51.000000, 0.000000 -298, -3.000000, 94.000000, 51.000000, 0.000000 -299, -3.000000, 94.000000, 51.000000, 0.000000 -300, -3.000000, 96.000000, 54.000000, 0.000000 -301, -3.000000, 96.000000, 54.000000, 0.000000 -302, -3.000000, 96.000000, 54.000000, 0.000000 -303, -3.000000, 96.000000, 54.000000, 0.000000 -304, -3.000000, 96.000000, 54.000000, 0.000000 -305, -3.000000, 96.000000, 54.000000, 0.000000 -306, -3.000000, 96.000000, 54.000000, 0.000000 -307, -3.000000, 96.000000, 54.000000, 0.000000 -308, -3.000000, 96.000000, 54.000000, 0.000000 -309, -3.000000, 96.000000, 54.000000, 0.000000 -310, -3.000000, 96.000000, 54.000000, 0.000000 -311, -3.000000, 96.000000, 54.000000, 0.000000 -312, -3.000000, 96.000000, 54.000000, 0.000000 -313, -3.000000, 96.000000, 54.000000, 0.000000 -314, -3.000000, 96.000000, 54.000000, 0.000000 -315, -3.000000, 96.000000, 54.000000, 0.000000 -316, -3.000000, 96.000000, 54.000000, 0.000000 -317, -3.000000, 96.000000, 54.000000, 0.000000 -318, -3.000000, 96.000000, 54.000000, 0.000000 -319, -3.000000, 96.000000, 54.000000, 0.000000 -320, -3.000000, 96.000000, 54.000000, 0.000000 -321, -3.000000, 96.000000, 54.000000, 0.000000 -322, -3.000000, 96.000000, 54.000000, 0.000000 -323, -3.000000, 96.000000, 54.000000, 0.000000 -324, -3.000000, 96.000000, 54.000000, 0.000000 -325, -3.000000, 96.000000, 54.000000, 0.000000 -326, -3.000000, 96.000000, 54.000000, 0.000000 -327, -3.000000, 96.000000, 54.000000, 0.000000 -328, -3.000000, 96.000000, 54.000000, 0.000000 -329, -3.000000, 96.000000, 54.000000, 0.000000 -330, -3.000000, 96.000000, 54.000000, 0.000000 -331, -3.000000, 96.000000, 54.000000, 0.000000 -332, -3.000000, 96.000000, 54.000000, 0.000000 -333, -3.000000, 96.000000, 54.000000, 0.000000 -334, -3.000000, 96.000000, 54.000000, 0.000000 -335, -3.000000, 96.000000, 54.000000, 0.000000 -336, -3.000000, 96.000000, 54.000000, 0.000000 -337, -3.000000, 96.000000, 54.000000, 0.000000 -338, -3.000000, 96.000000, 54.000000, 0.000000 -339, -3.000000, 96.000000, 54.000000, 0.000000 -340, -3.000000, 96.000000, 54.000000, 0.000000 -341, -3.000000, 96.000000, 54.000000, 0.000000 -342, -3.000000, 96.000000, 54.000000, 0.000000 -343, -3.000000, 96.000000, 54.000000, 0.000000 -344, -3.000000, 96.000000, 54.000000, 0.000000 -345, -3.000000, 96.000000, 54.000000, 0.000000 -346, -3.000000, 96.000000, 54.000000, 0.000000 -347, -3.000000, 96.000000, 54.000000, 0.000000 -348, -3.000000, 96.000000, 54.000000, 0.000000 -349, -3.000000, 96.000000, 54.000000, 0.000000 -350, -3.000000, 96.000000, 54.000000, 0.000000 -351, -3.000000, 96.000000, 54.000000, 0.000000 -352, -3.000000, 96.000000, 54.000000, 0.000000 -353, -3.000000, 96.000000, 54.000000, 0.000000 -354, -3.000000, 96.000000, 54.000000, 0.000000 -355, -3.000000, 96.000000, 54.000000, 0.000000 -356, -3.000000, 96.000000, 54.000000, 0.000000 -357, -3.000000, 96.000000, 54.000000, 0.000000 -358, -3.000000, 96.000000, 54.000000, 0.000000 -359, -3.000000, 96.000000, 54.000000, 0.000000 -360, -3.000000, 96.000000, 54.000000, 0.000000 -361, -3.000000, 96.000000, 54.000000, 0.000000 -362, -3.000000, 96.000000, 54.000000, 0.000000 -363, -3.000000, 96.000000, 54.000000, 0.000000 -364, -3.000000, 96.000000, 54.000000, 0.000000 -365, -3.000000, 96.000000, 54.000000, 0.000000 -366, -3.000000, 96.000000, 54.000000, 0.000000 -367, -3.000000, 96.000000, 54.000000, 0.000000 -368, -3.000000, 96.000000, 54.000000, 0.000000 -369, -3.000000, 96.000000, 54.000000, 0.000000 -370, -3.000000, 96.000000, 54.000000, 0.000000 -371, -3.000000, 96.000000, 54.000000, 0.000000 -372, -3.000000, 96.000000, 54.000000, 0.000000 -373, -3.000000, 96.000000, 54.000000, 0.000000 -374, -3.000000, 96.000000, 54.000000, 0.000000 -375, -3.000000, 96.000000, 54.000000, 0.000000 -376, -3.000000, 96.000000, 54.000000, 0.000000 -377, -3.000000, 96.000000, 54.000000, 0.000000 -378, -3.000000, 96.000000, 54.000000, 0.000000 -379, -3.000000, 96.000000, 54.000000, 0.000000 -380, -3.000000, 96.000000, 54.000000, 0.000000 -381, -3.000000, 96.000000, 54.000000, 0.000000 -382, -3.000000, 96.000000, 54.000000, 0.000000 -383, -3.000000, 96.000000, 54.000000, 0.000000 -384, -3.000000, 96.000000, 54.000000, 0.000000 -385, -3.000000, 96.000000, 54.000000, 0.000000 -386, -3.000000, 96.000000, 54.000000, 0.000000 -387, -3.000000, 96.000000, 54.000000, 0.000000 -388, -3.000000, 96.000000, 54.000000, 0.000000 -389, -3.000000, 96.000000, 54.000000, 0.000000 -390, -3.000000, 96.000000, 54.000000, 0.000000 -391, -3.000000, 96.000000, 54.000000, 0.000000 -392, -3.000000, 96.000000, 54.000000, 0.000000 -393, -3.000000, 96.000000, 54.000000, 0.000000 -394, -3.000000, 96.000000, 54.000000, 0.000000 -395, -3.000000, 96.000000, 54.000000, 0.000000 -396, -3.000000, 96.000000, 54.000000, 0.000000 -397, -3.000000, 96.000000, 54.000000, 0.000000 -398, -3.000000, 96.000000, 54.000000, 0.000000 -399, -3.000000, 96.000000, 54.000000, 0.000000 -400, -3.000000, 98.000000, 57.000000, 0.000000 -401, -3.000000, 98.000000, 57.000000, 0.000000 -402, -3.000000, 98.000000, 57.000000, 0.000000 -403, -3.000000, 98.000000, 57.000000, 0.000000 -404, -3.000000, 98.000000, 57.000000, 0.000000 -405, -3.000000, 98.000000, 57.000000, 0.000000 -406, -3.000000, 98.000000, 57.000000, 0.000000 -407, -3.000000, 98.000000, 57.000000, 0.000000 -408, -3.000000, 98.000000, 57.000000, 0.000000 -409, -3.000000, 98.000000, 57.000000, 0.000000 -410, -3.000000, 98.000000, 57.000000, 0.000000 -411, -3.000000, 98.000000, 57.000000, 0.000000 -412, -3.000000, 98.000000, 57.000000, 0.000000 -413, -3.000000, 98.000000, 57.000000, 0.000000 -414, -3.000000, 98.000000, 57.000000, 0.000000 -415, -3.000000, 98.000000, 57.000000, 0.000000 -416, -3.000000, 98.000000, 57.000000, 0.000000 -417, -3.000000, 98.000000, 57.000000, 0.000000 -418, -3.000000, 98.000000, 57.000000, 0.000000 -419, -3.000000, 98.000000, 57.000000, 0.000000 -420, -3.000000, 98.000000, 57.000000, 0.000000 -421, -3.000000, 98.000000, 57.000000, 0.000000 -422, -3.000000, 98.000000, 57.000000, 0.000000 -423, -3.000000, 98.000000, 57.000000, 0.000000 -424, -3.000000, 98.000000, 57.000000, 0.000000 -425, -3.000000, 98.000000, 57.000000, 0.000000 -426, -3.000000, 98.000000, 57.000000, 0.000000 -427, -3.000000, 98.000000, 57.000000, 0.000000 -428, -3.000000, 98.000000, 57.000000, 0.000000 -429, -3.000000, 98.000000, 57.000000, 0.000000 -430, -3.000000, 98.000000, 57.000000, 0.000000 -431, -3.000000, 98.000000, 57.000000, 0.000000 -432, -3.000000, 98.000000, 57.000000, 0.000000 -433, -3.000000, 98.000000, 57.000000, 0.000000 -434, -3.000000, 98.000000, 57.000000, 0.000000 -435, -3.000000, 98.000000, 57.000000, 0.000000 -436, -3.000000, 98.000000, 57.000000, 0.000000 -437, -3.000000, 98.000000, 57.000000, 0.000000 -438, -3.000000, 98.000000, 57.000000, 0.000000 -439, -3.000000, 98.000000, 57.000000, 0.000000 -440, -3.000000, 98.000000, 57.000000, 0.000000 -441, -3.000000, 98.000000, 57.000000, 0.000000 -442, -3.000000, 98.000000, 57.000000, 0.000000 -443, -3.000000, 98.000000, 57.000000, 0.000000 -444, -3.000000, 98.000000, 57.000000, 0.000000 -445, -3.000000, 98.000000, 57.000000, 0.000000 -446, -3.000000, 98.000000, 57.000000, 0.000000 -447, -3.000000, 98.000000, 57.000000, 0.000000 -448, -3.000000, 98.000000, 57.000000, 0.000000 -449, -3.000000, 98.000000, 57.000000, 0.000000 -450, -3.000000, 98.000000, 57.000000, 0.000000 -451, -3.000000, 98.000000, 57.000000, 0.000000 -452, -3.000000, 98.000000, 57.000000, 0.000000 -453, -3.000000, 98.000000, 57.000000, 0.000000 -454, -3.000000, 98.000000, 57.000000, 0.000000 -455, -3.000000, 98.000000, 57.000000, 0.000000 -456, -3.000000, 98.000000, 57.000000, 0.000000 -457, -3.000000, 98.000000, 57.000000, 0.000000 -458, -3.000000, 98.000000, 57.000000, 0.000000 -459, -3.000000, 98.000000, 57.000000, 0.000000 -460, -3.000000, 98.000000, 57.000000, 0.000000 -461, -3.000000, 98.000000, 57.000000, 0.000000 -462, -3.000000, 98.000000, 57.000000, 0.000000 -463, -3.000000, 98.000000, 57.000000, 0.000000 -464, -3.000000, 98.000000, 57.000000, 0.000000 -465, -3.000000, 98.000000, 57.000000, 0.000000 -466, -3.000000, 98.000000, 57.000000, 0.000000 -467, -3.000000, 98.000000, 57.000000, 0.000000 -468, -3.000000, 98.000000, 57.000000, 0.000000 -469, -3.000000, 98.000000, 57.000000, 0.000000 -470, -3.000000, 98.000000, 57.000000, 0.000000 -471, -3.000000, 98.000000, 57.000000, 0.000000 -472, -3.000000, 98.000000, 57.000000, 0.000000 -473, -3.000000, 98.000000, 57.000000, 0.000000 -474, -3.000000, 98.000000, 57.000000, 0.000000 -475, -3.000000, 98.000000, 57.000000, 0.000000 -476, -3.000000, 98.000000, 57.000000, 0.000000 -477, -3.000000, 98.000000, 57.000000, 0.000000 -478, -3.000000, 98.000000, 57.000000, 0.000000 -479, -3.000000, 98.000000, 57.000000, 0.000000 -480, -3.000000, 98.000000, 57.000000, 0.000000 -481, -3.000000, 98.000000, 57.000000, 0.000000 -482, -3.000000, 98.000000, 57.000000, 0.000000 -483, -3.000000, 98.000000, 57.000000, 0.000000 -484, -3.000000, 98.000000, 57.000000, 0.000000 -485, -3.000000, 98.000000, 57.000000, 0.000000 -486, -3.000000, 98.000000, 57.000000, 0.000000 -487, -3.000000, 98.000000, 57.000000, 0.000000 -488, -3.000000, 98.000000, 57.000000, 0.000000 -489, -3.000000, 98.000000, 57.000000, 0.000000 -490, -3.000000, 98.000000, 57.000000, 0.000000 -491, -3.000000, 98.000000, 57.000000, 0.000000 -492, -3.000000, 98.000000, 57.000000, 0.000000 -493, -3.000000, 98.000000, 57.000000, 0.000000 -494, -3.000000, 98.000000, 57.000000, 0.000000 -495, -3.000000, 98.000000, 57.000000, 0.000000 -496, -3.000000, 98.000000, 57.000000, 0.000000 -497, -3.000000, 98.000000, 57.000000, 0.000000 -498, -3.000000, 98.000000, 57.000000, 0.000000 -499, -3.000000, 98.000000, 57.000000, 0.000000 -500, -3.000000, 100.000000, 60.000000, 0.000000 -501, -3.000000, 100.000000, 60.000000, 0.000000 -502, -3.000000, 100.000000, 60.000000, 0.000000 -503, -3.000000, 100.000000, 60.000000, 0.000000 -504, -3.000000, 100.000000, 60.000000, 0.000000 -505, -3.000000, 100.000000, 60.000000, 0.000000 -506, -3.000000, 100.000000, 60.000000, 0.000000 -507, -3.000000, 100.000000, 60.000000, 0.000000 -508, -3.000000, 100.000000, 60.000000, 0.000000 -509, -3.000000, 100.000000, 60.000000, 0.000000 -510, -3.000000, 100.000000, 60.000000, 0.000000 -511, -3.000000, 100.000000, 60.000000, 0.000000 -512, -3.000000, 100.000000, 60.000000, 0.000000 -513, -3.000000, 100.000000, 60.000000, 0.000000 -514, -3.000000, 100.000000, 60.000000, 0.000000 -515, -3.000000, 100.000000, 60.000000, 0.000000 -516, -3.000000, 100.000000, 60.000000, 0.000000 -517, -3.000000, 100.000000, 60.000000, 0.000000 -518, -3.000000, 100.000000, 60.000000, 0.000000 -519, -3.000000, 100.000000, 60.000000, 0.000000 -520, -3.000000, 100.000000, 60.000000, 0.000000 -521, -3.000000, 100.000000, 60.000000, 0.000000 -522, -3.000000, 100.000000, 60.000000, 0.000000 -523, -3.000000, 100.000000, 60.000000, 0.000000 -524, -3.000000, 100.000000, 60.000000, 0.000000 -525, -3.000000, 100.000000, 60.000000, 0.000000 -526, -3.000000, 100.000000, 60.000000, 0.000000 -527, -3.000000, 100.000000, 60.000000, 0.000000 -528, -3.000000, 100.000000, 60.000000, 0.000000 -529, -3.000000, 100.000000, 60.000000, 0.000000 -530, -3.000000, 100.000000, 60.000000, 0.000000 -531, -3.000000, 100.000000, 60.000000, 0.000000 -532, -3.000000, 100.000000, 60.000000, 0.000000 -533, -3.000000, 100.000000, 60.000000, 0.000000 -534, -3.000000, 100.000000, 60.000000, 0.000000 -535, -3.000000, 100.000000, 60.000000, 0.000000 -536, -3.000000, 100.000000, 60.000000, 0.000000 -537, -3.000000, 100.000000, 60.000000, 0.000000 -538, -3.000000, 100.000000, 60.000000, 0.000000 -539, -3.000000, 100.000000, 60.000000, 0.000000 -540, -3.000000, 100.000000, 60.000000, 0.000000 -541, -3.000000, 100.000000, 60.000000, 0.000000 -542, -3.000000, 100.000000, 60.000000, 0.000000 -543, -3.000000, 100.000000, 60.000000, 0.000000 -544, -3.000000, 100.000000, 60.000000, 0.000000 -545, -3.000000, 100.000000, 60.000000, 0.000000 -546, -3.000000, 100.000000, 60.000000, 0.000000 -547, -3.000000, 100.000000, 60.000000, 0.000000 -548, -3.000000, 100.000000, 60.000000, 0.000000 -549, -3.000000, 100.000000, 60.000000, 0.000000 -550, -3.000000, 100.000000, 60.000000, 0.000000 -551, -3.000000, 100.000000, 60.000000, 0.000000 -552, -3.000000, 100.000000, 60.000000, 0.000000 -553, -3.000000, 100.000000, 60.000000, 0.000000 -554, -3.000000, 100.000000, 60.000000, 0.000000 -555, -3.000000, 100.000000, 60.000000, 0.000000 -556, -3.000000, 100.000000, 60.000000, 0.000000 -557, -3.000000, 100.000000, 60.000000, 0.000000 -558, -3.000000, 100.000000, 60.000000, 0.000000 -559, -3.000000, 100.000000, 60.000000, 0.000000 -560, -3.000000, 100.000000, 60.000000, 0.000000 -561, -3.000000, 100.000000, 60.000000, 0.000000 -562, -3.000000, 100.000000, 60.000000, 0.000000 -563, -3.000000, 100.000000, 60.000000, 0.000000 -564, -3.000000, 100.000000, 60.000000, 0.000000 -565, -3.000000, 100.000000, 60.000000, 0.000000 -566, -3.000000, 100.000000, 60.000000, 0.000000 -567, -3.000000, 100.000000, 60.000000, 0.000000 -568, -3.000000, 100.000000, 60.000000, 0.000000 -569, -3.000000, 100.000000, 60.000000, 0.000000 -570, -3.000000, 100.000000, 60.000000, 0.000000 -571, -3.000000, 100.000000, 60.000000, 0.000000 -572, -3.000000, 100.000000, 60.000000, 0.000000 -573, -3.000000, 100.000000, 60.000000, 0.000000 -574, -3.000000, 100.000000, 60.000000, 0.000000 -575, -3.000000, 100.000000, 60.000000, 0.000000 -576, -3.000000, 100.000000, 60.000000, 0.000000 -577, -3.000000, 100.000000, 60.000000, 0.000000 -578, -3.000000, 100.000000, 60.000000, 0.000000 -579, -3.000000, 100.000000, 60.000000, 0.000000 -580, -3.000000, 100.000000, 60.000000, 0.000000 -581, -3.000000, 100.000000, 60.000000, 0.000000 -582, -3.000000, 100.000000, 60.000000, 0.000000 -583, -3.000000, 100.000000, 60.000000, 0.000000 -584, -3.000000, 100.000000, 60.000000, 0.000000 -585, -3.000000, 100.000000, 60.000000, 0.000000 -586, -3.000000, 100.000000, 60.000000, 0.000000 -587, -3.000000, 100.000000, 60.000000, 0.000000 -588, -3.000000, 100.000000, 60.000000, 0.000000 -589, -3.000000, 100.000000, 60.000000, 0.000000 -590, -3.000000, 100.000000, 60.000000, 0.000000 -591, -3.000000, 100.000000, 60.000000, 0.000000 -592, -3.000000, 100.000000, 60.000000, 0.000000 -593, -3.000000, 100.000000, 60.000000, 0.000000 -594, -3.000000, 100.000000, 60.000000, 0.000000 -595, -3.000000, 100.000000, 60.000000, 0.000000 -596, -3.000000, 100.000000, 60.000000, 0.000000 -597, -3.000000, 100.000000, 60.000000, 0.000000 -598, -3.000000, 100.000000, 60.000000, 0.000000 -599, -3.000000, 100.000000, 60.000000, 0.000000 -600, -3.000000, 102.000000, 63.000000, 0.000000 -601, -3.000000, 102.000000, 63.000000, 0.000000 -602, -3.000000, 102.000000, 63.000000, 0.000000 -603, -3.000000, 102.000000, 63.000000, 0.000000 -604, -3.000000, 102.000000, 63.000000, 0.000000 -605, -3.000000, 102.000000, 63.000000, 0.000000 -606, -3.000000, 102.000000, 63.000000, 0.000000 -607, -3.000000, 102.000000, 63.000000, 0.000000 -608, -3.000000, 102.000000, 63.000000, 0.000000 -609, -3.000000, 102.000000, 63.000000, 0.000000 -610, -3.000000, 102.000000, 63.000000, 0.000000 -611, -3.000000, 102.000000, 63.000000, 0.000000 -612, -3.000000, 102.000000, 63.000000, 0.000000 -613, -3.000000, 102.000000, 63.000000, 0.000000 -614, -3.000000, 102.000000, 63.000000, 0.000000 -615, -3.000000, 102.000000, 63.000000, 0.000000 -616, -3.000000, 102.000000, 63.000000, 0.000000 -617, -3.000000, 102.000000, 63.000000, 0.000000 -618, -3.000000, 102.000000, 63.000000, 0.000000 -619, -3.000000, 102.000000, 63.000000, 0.000000 -620, -3.000000, 102.000000, 63.000000, 0.000000 -621, -3.000000, 102.000000, 63.000000, 0.000000 -622, -3.000000, 102.000000, 63.000000, 0.000000 -623, -3.000000, 102.000000, 63.000000, 0.000000 -624, -3.000000, 102.000000, 63.000000, 0.000000 -625, -3.000000, 102.000000, 63.000000, 0.000000 -626, -3.000000, 102.000000, 63.000000, 0.000000 -627, -3.000000, 102.000000, 63.000000, 0.000000 -628, -3.000000, 102.000000, 63.000000, 0.000000 -629, -3.000000, 102.000000, 63.000000, 0.000000 -630, -3.000000, 102.000000, 63.000000, 0.000000 -631, -3.000000, 102.000000, 63.000000, 0.000000 -632, -3.000000, 102.000000, 63.000000, 0.000000 -633, -3.000000, 102.000000, 63.000000, 0.000000 -634, -3.000000, 102.000000, 63.000000, 0.000000 -635, -3.000000, 102.000000, 63.000000, 0.000000 -636, -3.000000, 102.000000, 63.000000, 0.000000 -637, -3.000000, 102.000000, 63.000000, 0.000000 -638, -3.000000, 102.000000, 63.000000, 0.000000 -639, -3.000000, 102.000000, 63.000000, 0.000000 -640, -3.000000, 102.000000, 63.000000, 0.000000 -641, -3.000000, 102.000000, 63.000000, 0.000000 -642, -3.000000, 102.000000, 63.000000, 0.000000 -643, -3.000000, 102.000000, 63.000000, 0.000000 -644, -3.000000, 102.000000, 63.000000, 0.000000 -645, -3.000000, 102.000000, 63.000000, 0.000000 -646, -3.000000, 102.000000, 63.000000, 0.000000 -647, -3.000000, 102.000000, 63.000000, 0.000000 -648, -3.000000, 102.000000, 63.000000, 0.000000 -649, -3.000000, 102.000000, 63.000000, 0.000000 -650, -3.000000, 102.000000, 63.000000, 0.000000 -651, -3.000000, 102.000000, 63.000000, 0.000000 -652, -3.000000, 102.000000, 63.000000, 0.000000 -653, -3.000000, 102.000000, 63.000000, 0.000000 -654, -3.000000, 102.000000, 63.000000, 0.000000 -655, -3.000000, 102.000000, 63.000000, 0.000000 -656, -3.000000, 102.000000, 63.000000, 0.000000 -657, -3.000000, 102.000000, 63.000000, 0.000000 -658, -3.000000, 102.000000, 63.000000, 0.000000 -659, -3.000000, 102.000000, 63.000000, 0.000000 -660, -3.000000, 102.000000, 63.000000, 0.000000 -661, -3.000000, 102.000000, 63.000000, 0.000000 -662, -3.000000, 102.000000, 63.000000, 0.000000 -663, -3.000000, 102.000000, 63.000000, 0.000000 -664, -3.000000, 102.000000, 63.000000, 0.000000 -665, -3.000000, 102.000000, 63.000000, 0.000000 -666, -3.000000, 102.000000, 63.000000, 0.000000 -667, -3.000000, 102.000000, 63.000000, 0.000000 -668, -3.000000, 102.000000, 63.000000, 0.000000 -669, -3.000000, 102.000000, 63.000000, 0.000000 -670, -3.000000, 102.000000, 63.000000, 0.000000 -671, -3.000000, 102.000000, 63.000000, 0.000000 -672, -3.000000, 102.000000, 63.000000, 0.000000 -673, -3.000000, 102.000000, 63.000000, 0.000000 -674, -3.000000, 102.000000, 63.000000, 0.000000 -675, -3.000000, 102.000000, 63.000000, 0.000000 -676, -3.000000, 102.000000, 63.000000, 0.000000 -677, -3.000000, 102.000000, 63.000000, 0.000000 -678, -3.000000, 102.000000, 63.000000, 0.000000 -679, -3.000000, 102.000000, 63.000000, 0.000000 -680, -3.000000, 102.000000, 63.000000, 0.000000 -681, -3.000000, 102.000000, 63.000000, 0.000000 -682, -3.000000, 102.000000, 63.000000, 0.000000 -683, -3.000000, 102.000000, 63.000000, 0.000000 -684, -3.000000, 102.000000, 63.000000, 0.000000 -685, -3.000000, 102.000000, 63.000000, 0.000000 -686, -3.000000, 102.000000, 63.000000, 0.000000 -687, -3.000000, 102.000000, 63.000000, 0.000000 -688, -3.000000, 102.000000, 63.000000, 0.000000 -689, -3.000000, 102.000000, 63.000000, 0.000000 -690, -3.000000, 102.000000, 63.000000, 0.000000 -691, -3.000000, 102.000000, 63.000000, 0.000000 -692, -3.000000, 102.000000, 63.000000, 0.000000 -693, -3.000000, 102.000000, 63.000000, 0.000000 -694, -3.000000, 102.000000, 63.000000, 0.000000 -695, -3.000000, 102.000000, 63.000000, 0.000000 -696, -3.000000, 102.000000, 63.000000, 0.000000 -697, -3.000000, 102.000000, 63.000000, 0.000000 -698, -3.000000, 102.000000, 63.000000, 0.000000 -699, -3.000000, 102.000000, 63.000000, 0.000000 -700, -3.000000, 104.000000, 66.000000, 0.000000 -701, -3.000000, 104.000000, 66.000000, 0.000000 -702, -3.000000, 104.000000, 66.000000, 0.000000 -703, -3.000000, 104.000000, 66.000000, 0.000000 -704, -3.000000, 104.000000, 66.000000, 0.000000 -705, -3.000000, 104.000000, 66.000000, 0.000000 -706, -3.000000, 104.000000, 66.000000, 0.000000 -707, -3.000000, 104.000000, 66.000000, 0.000000 -708, -3.000000, 104.000000, 66.000000, 0.000000 -709, -3.000000, 104.000000, 66.000000, 0.000000 -710, -3.000000, 104.000000, 66.000000, 0.000000 -711, -3.000000, 104.000000, 66.000000, 0.000000 -712, -3.000000, 104.000000, 66.000000, 0.000000 -713, -3.000000, 104.000000, 66.000000, 0.000000 -714, -3.000000, 104.000000, 66.000000, 0.000000 -715, -3.000000, 104.000000, 66.000000, 0.000000 -716, -3.000000, 104.000000, 66.000000, 0.000000 -717, -3.000000, 104.000000, 66.000000, 0.000000 -718, -3.000000, 104.000000, 66.000000, 0.000000 -719, -3.000000, 104.000000, 66.000000, 0.000000 -720, -3.000000, 104.000000, 66.000000, 0.000000 -721, -3.000000, 104.000000, 66.000000, 0.000000 -722, -3.000000, 104.000000, 66.000000, 0.000000 -723, -3.000000, 104.000000, 66.000000, 0.000000 -724, -3.000000, 104.000000, 66.000000, 0.000000 -725, -3.000000, 104.000000, 66.000000, 0.000000 -726, -3.000000, 104.000000, 66.000000, 0.000000 -727, -3.000000, 104.000000, 66.000000, 0.000000 -728, -3.000000, 104.000000, 66.000000, 0.000000 -729, -3.000000, 104.000000, 66.000000, 0.000000 -730, -3.000000, 104.000000, 66.000000, 0.000000 -731, -3.000000, 104.000000, 66.000000, 0.000000 -732, -3.000000, 104.000000, 66.000000, 0.000000 -733, -3.000000, 104.000000, 66.000000, 0.000000 -734, -3.000000, 104.000000, 66.000000, 0.000000 -735, -3.000000, 104.000000, 66.000000, 0.000000 -736, -3.000000, 104.000000, 66.000000, 0.000000 -737, -3.000000, 104.000000, 66.000000, 0.000000 -738, -3.000000, 104.000000, 66.000000, 0.000000 -739, -3.000000, 104.000000, 66.000000, 0.000000 -740, -3.000000, 104.000000, 66.000000, 0.000000 -741, -3.000000, 104.000000, 66.000000, 0.000000 -742, -3.000000, 104.000000, 66.000000, 0.000000 -743, -3.000000, 104.000000, 66.000000, 0.000000 -744, -3.000000, 104.000000, 66.000000, 0.000000 -745, -3.000000, 104.000000, 66.000000, 0.000000 -746, -3.000000, 104.000000, 66.000000, 0.000000 -747, -3.000000, 104.000000, 66.000000, 0.000000 -748, -3.000000, 104.000000, 66.000000, 0.000000 -749, -3.000000, 104.000000, 66.000000, 0.000000 -750, -3.000000, 104.000000, 66.000000, 0.000000 -751, -3.000000, 104.000000, 66.000000, 0.000000 -752, -3.000000, 104.000000, 66.000000, 0.000000 -753, -3.000000, 104.000000, 66.000000, 0.000000 -754, -3.000000, 104.000000, 66.000000, 0.000000 -755, -3.000000, 104.000000, 66.000000, 0.000000 -756, -3.000000, 104.000000, 66.000000, 0.000000 -757, -3.000000, 104.000000, 66.000000, 0.000000 -758, -3.000000, 104.000000, 66.000000, 0.000000 -759, -3.000000, 104.000000, 66.000000, 0.000000 -760, -3.000000, 104.000000, 66.000000, 0.000000 -761, -3.000000, 104.000000, 66.000000, 0.000000 -762, -3.000000, 104.000000, 66.000000, 0.000000 -763, -3.000000, 104.000000, 66.000000, 0.000000 -764, -3.000000, 104.000000, 66.000000, 0.000000 -765, -3.000000, 104.000000, 66.000000, 0.000000 -766, -3.000000, 104.000000, 66.000000, 0.000000 -767, -3.000000, 104.000000, 66.000000, 0.000000 -768, -3.000000, 104.000000, 66.000000, 0.000000 -769, -3.000000, 104.000000, 66.000000, 0.000000 -770, -3.000000, 104.000000, 66.000000, 0.000000 -771, -3.000000, 104.000000, 66.000000, 0.000000 -772, -3.000000, 104.000000, 66.000000, 0.000000 -773, -3.000000, 104.000000, 66.000000, 0.000000 -774, -3.000000, 104.000000, 66.000000, 0.000000 -775, -3.000000, 104.000000, 66.000000, 0.000000 -776, -3.000000, 104.000000, 66.000000, 0.000000 -777, -3.000000, 104.000000, 66.000000, 0.000000 -778, -3.000000, 104.000000, 66.000000, 0.000000 -779, -3.000000, 104.000000, 66.000000, 0.000000 -780, -3.000000, 104.000000, 66.000000, 0.000000 -781, -3.000000, 104.000000, 66.000000, 0.000000 -782, -3.000000, 104.000000, 66.000000, 0.000000 -783, -3.000000, 104.000000, 66.000000, 0.000000 -784, -3.000000, 104.000000, 66.000000, 0.000000 -785, -3.000000, 104.000000, 66.000000, 0.000000 -786, -3.000000, 104.000000, 66.000000, 0.000000 -787, -3.000000, 104.000000, 66.000000, 0.000000 -788, -3.000000, 104.000000, 66.000000, 0.000000 -789, -3.000000, 104.000000, 66.000000, 0.000000 -790, -3.000000, 104.000000, 66.000000, 0.000000 -791, -3.000000, 104.000000, 66.000000, 0.000000 -792, -3.000000, 104.000000, 66.000000, 0.000000 -793, -3.000000, 104.000000, 66.000000, 0.000000 -794, -3.000000, 104.000000, 66.000000, 0.000000 -795, -3.000000, 104.000000, 66.000000, 0.000000 -796, -3.000000, 104.000000, 66.000000, 0.000000 -797, -3.000000, 104.000000, 66.000000, 0.000000 -798, -3.000000, 104.000000, 66.000000, 0.000000 -799, -3.000000, 104.000000, 66.000000, 0.000000 -800, -3.000000, 106.000000, 69.000000, 0.000000 -801, -3.000000, 106.000000, 69.000000, 0.000000 -802, -3.000000, 106.000000, 69.000000, 0.000000 -803, -3.000000, 106.000000, 69.000000, 0.000000 -804, -3.000000, 106.000000, 69.000000, 0.000000 -805, -3.000000, 106.000000, 69.000000, 0.000000 -806, -3.000000, 106.000000, 69.000000, 0.000000 -807, -3.000000, 106.000000, 69.000000, 0.000000 -808, -3.000000, 106.000000, 69.000000, 0.000000 -809, -3.000000, 106.000000, 69.000000, 0.000000 -810, -3.000000, 106.000000, 69.000000, 0.000000 -811, -3.000000, 106.000000, 69.000000, 0.000000 -812, -3.000000, 106.000000, 69.000000, 0.000000 -813, -3.000000, 106.000000, 69.000000, 0.000000 -814, -3.000000, 106.000000, 69.000000, 0.000000 -815, -3.000000, 106.000000, 69.000000, 0.000000 -816, -3.000000, 106.000000, 69.000000, 0.000000 -817, -3.000000, 106.000000, 69.000000, 0.000000 -818, -3.000000, 106.000000, 69.000000, 0.000000 -819, -3.000000, 106.000000, 69.000000, 0.000000 -820, -3.000000, 106.000000, 69.000000, 0.000000 -821, -3.000000, 106.000000, 69.000000, 0.000000 -822, -3.000000, 106.000000, 69.000000, 0.000000 -823, -3.000000, 106.000000, 69.000000, 0.000000 -824, -3.000000, 106.000000, 69.000000, 0.000000 -825, -3.000000, 106.000000, 69.000000, 0.000000 -826, -3.000000, 106.000000, 69.000000, 0.000000 -827, -3.000000, 106.000000, 69.000000, 0.000000 -828, -3.000000, 106.000000, 69.000000, 0.000000 -829, -3.000000, 106.000000, 69.000000, 0.000000 -830, -3.000000, 106.000000, 69.000000, 0.000000 -831, -3.000000, 106.000000, 69.000000, 0.000000 -832, -3.000000, 106.000000, 69.000000, 0.000000 -833, -3.000000, 106.000000, 69.000000, 0.000000 -834, -3.000000, 106.000000, 69.000000, 0.000000 -835, -3.000000, 106.000000, 69.000000, 0.000000 -836, -3.000000, 106.000000, 69.000000, 0.000000 -837, -3.000000, 106.000000, 69.000000, 0.000000 -838, -3.000000, 106.000000, 69.000000, 0.000000 -839, -3.000000, 106.000000, 69.000000, 0.000000 -840, -3.000000, 106.000000, 69.000000, 0.000000 -841, -3.000000, 106.000000, 69.000000, 0.000000 -842, -3.000000, 106.000000, 69.000000, 0.000000 -843, -3.000000, 106.000000, 69.000000, 0.000000 -844, -3.000000, 106.000000, 69.000000, 0.000000 -845, -3.000000, 106.000000, 69.000000, 0.000000 -846, -3.000000, 106.000000, 69.000000, 0.000000 -847, -3.000000, 106.000000, 69.000000, 0.000000 -848, -3.000000, 106.000000, 69.000000, 0.000000 -849, -3.000000, 106.000000, 69.000000, 0.000000 -850, -3.000000, 106.000000, 69.000000, 0.000000 -851, -3.000000, 106.000000, 69.000000, 0.000000 -852, -3.000000, 106.000000, 69.000000, 0.000000 -853, -3.000000, 106.000000, 69.000000, 0.000000 -854, -3.000000, 106.000000, 69.000000, 0.000000 -855, -3.000000, 106.000000, 69.000000, 0.000000 -856, -3.000000, 106.000000, 69.000000, 0.000000 -857, -3.000000, 106.000000, 69.000000, 0.000000 -858, -3.000000, 106.000000, 69.000000, 0.000000 -859, -3.000000, 106.000000, 69.000000, 0.000000 -860, -3.000000, 106.000000, 69.000000, 0.000000 -861, -3.000000, 106.000000, 69.000000, 0.000000 -862, -3.000000, 106.000000, 69.000000, 0.000000 -863, -3.000000, 106.000000, 69.000000, 0.000000 -864, -3.000000, 106.000000, 69.000000, 0.000000 -865, -3.000000, 106.000000, 69.000000, 0.000000 -866, -3.000000, 106.000000, 69.000000, 0.000000 -867, -3.000000, 106.000000, 69.000000, 0.000000 -868, -3.000000, 106.000000, 69.000000, 0.000000 -869, -3.000000, 106.000000, 69.000000, 0.000000 -870, -3.000000, 106.000000, 69.000000, 0.000000 -871, -3.000000, 106.000000, 69.000000, 0.000000 -872, -3.000000, 106.000000, 69.000000, 0.000000 -873, -3.000000, 106.000000, 69.000000, 0.000000 -874, -3.000000, 106.000000, 69.000000, 0.000000 -875, -3.000000, 106.000000, 69.000000, 0.000000 -876, -3.000000, 106.000000, 69.000000, 0.000000 -877, -3.000000, 106.000000, 69.000000, 0.000000 -878, -3.000000, 106.000000, 69.000000, 0.000000 -879, -3.000000, 106.000000, 69.000000, 0.000000 -880, -3.000000, 106.000000, 69.000000, 0.000000 -881, -3.000000, 106.000000, 69.000000, 0.000000 -882, -3.000000, 106.000000, 69.000000, 0.000000 -883, -3.000000, 106.000000, 69.000000, 0.000000 -884, -3.000000, 106.000000, 69.000000, 0.000000 -885, -3.000000, 106.000000, 69.000000, 0.000000 -886, -3.000000, 106.000000, 69.000000, 0.000000 -887, -3.000000, 106.000000, 69.000000, 0.000000 -888, -3.000000, 106.000000, 69.000000, 0.000000 -889, -3.000000, 106.000000, 69.000000, 0.000000 -890, -3.000000, 106.000000, 69.000000, 0.000000 -891, -3.000000, 106.000000, 69.000000, 0.000000 -892, -3.000000, 106.000000, 69.000000, 0.000000 -893, -3.000000, 106.000000, 69.000000, 0.000000 -894, -3.000000, 106.000000, 69.000000, 0.000000 -895, -3.000000, 106.000000, 69.000000, 0.000000 -896, -3.000000, 106.000000, 69.000000, 0.000000 -897, -3.000000, 106.000000, 69.000000, 0.000000 -898, -3.000000, 106.000000, 69.000000, 0.000000 -899, -3.000000, 106.000000, 69.000000, 0.000000 -900, -3.000000, 108.000000, 72.000000, 0.000000 -901, -3.000000, 108.000000, 72.000000, 0.000000 -902, -3.000000, 108.000000, 72.000000, 0.000000 -903, -3.000000, 108.000000, 72.000000, 0.000000 -904, -3.000000, 108.000000, 72.000000, 0.000000 -905, -3.000000, 108.000000, 72.000000, 0.000000 -906, -3.000000, 108.000000, 72.000000, 0.000000 -907, -3.000000, 108.000000, 72.000000, 0.000000 -908, -3.000000, 108.000000, 72.000000, 0.000000 -909, -3.000000, 108.000000, 72.000000, 0.000000 -910, -3.000000, 108.000000, 72.000000, 0.000000 -911, -3.000000, 108.000000, 72.000000, 0.000000 -912, -3.000000, 108.000000, 72.000000, 0.000000 -913, -3.000000, 108.000000, 72.000000, 0.000000 -914, -3.000000, 108.000000, 72.000000, 0.000000 -915, -3.000000, 108.000000, 72.000000, 0.000000 -916, -3.000000, 108.000000, 72.000000, 0.000000 -917, -3.000000, 108.000000, 72.000000, 0.000000 -918, -3.000000, 108.000000, 72.000000, 0.000000 -919, -3.000000, 108.000000, 72.000000, 0.000000 -920, -3.000000, 108.000000, 72.000000, 0.000000 -921, -3.000000, 108.000000, 72.000000, 0.000000 -922, -3.000000, 108.000000, 72.000000, 0.000000 -923, -3.000000, 108.000000, 72.000000, 0.000000 -924, -3.000000, 108.000000, 72.000000, 0.000000 -925, -3.000000, 108.000000, 72.000000, 0.000000 -926, -3.000000, 108.000000, 72.000000, 0.000000 -927, -3.000000, 108.000000, 72.000000, 0.000000 -928, -3.000000, 108.000000, 72.000000, 0.000000 -929, -3.000000, 108.000000, 72.000000, 0.000000 -930, -3.000000, 108.000000, 72.000000, 0.000000 -931, -3.000000, 108.000000, 72.000000, 0.000000 -932, -3.000000, 108.000000, 72.000000, 0.000000 -933, -3.000000, 108.000000, 72.000000, 0.000000 -934, -3.000000, 108.000000, 72.000000, 0.000000 -935, -3.000000, 108.000000, 72.000000, 0.000000 -936, -3.000000, 108.000000, 72.000000, 0.000000 -937, -3.000000, 108.000000, 72.000000, 0.000000 -938, -3.000000, 108.000000, 72.000000, 0.000000 -939, -3.000000, 108.000000, 72.000000, 0.000000 -940, -3.000000, 108.000000, 72.000000, 0.000000 -941, -3.000000, 108.000000, 72.000000, 0.000000 -942, -3.000000, 108.000000, 72.000000, 0.000000 -943, -3.000000, 108.000000, 72.000000, 0.000000 -944, -3.000000, 108.000000, 72.000000, 0.000000 -945, -3.000000, 108.000000, 72.000000, 0.000000 -946, -3.000000, 108.000000, 72.000000, 0.000000 -947, -3.000000, 108.000000, 72.000000, 0.000000 -948, -3.000000, 108.000000, 72.000000, 0.000000 -949, -3.000000, 108.000000, 72.000000, 0.000000 -950, -3.000000, 108.000000, 72.000000, 0.000000 -951, -3.000000, 108.000000, 72.000000, 0.000000 -952, -3.000000, 108.000000, 72.000000, 0.000000 -953, -3.000000, 108.000000, 72.000000, 0.000000 -954, -3.000000, 108.000000, 72.000000, 0.000000 -955, -3.000000, 108.000000, 72.000000, 0.000000 -956, -3.000000, 108.000000, 72.000000, 0.000000 -957, -3.000000, 108.000000, 72.000000, 0.000000 -958, -3.000000, 108.000000, 72.000000, 0.000000 -959, -3.000000, 108.000000, 72.000000, 0.000000 -960, -3.000000, 108.000000, 72.000000, 0.000000 -961, -3.000000, 108.000000, 72.000000, 0.000000 -962, -3.000000, 108.000000, 72.000000, 0.000000 -963, -3.000000, 108.000000, 72.000000, 0.000000 -964, -3.000000, 108.000000, 72.000000, 0.000000 -965, -3.000000, 108.000000, 72.000000, 0.000000 -966, -3.000000, 108.000000, 72.000000, 0.000000 -967, -3.000000, 108.000000, 72.000000, 0.000000 -968, -3.000000, 108.000000, 72.000000, 0.000000 -969, -3.000000, 108.000000, 72.000000, 0.000000 -970, -3.000000, 108.000000, 72.000000, 0.000000 -971, -3.000000, 108.000000, 72.000000, 0.000000 -972, -3.000000, 108.000000, 72.000000, 0.000000 -973, -3.000000, 108.000000, 72.000000, 0.000000 -974, -3.000000, 108.000000, 72.000000, 0.000000 -975, -3.000000, 108.000000, 72.000000, 0.000000 -976, -3.000000, 108.000000, 72.000000, 0.000000 -977, -3.000000, 108.000000, 72.000000, 0.000000 -978, -3.000000, 108.000000, 72.000000, 0.000000 -979, -3.000000, 108.000000, 72.000000, 0.000000 -980, -3.000000, 108.000000, 72.000000, 0.000000 -981, -3.000000, 108.000000, 72.000000, 0.000000 -982, -3.000000, 108.000000, 72.000000, 0.000000 -983, -3.000000, 108.000000, 72.000000, 0.000000 -984, -3.000000, 108.000000, 72.000000, 0.000000 -985, -3.000000, 108.000000, 72.000000, 0.000000 -986, -3.000000, 108.000000, 72.000000, 0.000000 -987, -3.000000, 108.000000, 72.000000, 0.000000 -988, -3.000000, 108.000000, 72.000000, 0.000000 -989, -3.000000, 108.000000, 72.000000, 0.000000 -990, -3.000000, 108.000000, 72.000000, 0.000000 -991, -3.000000, 108.000000, 72.000000, 0.000000 -992, -3.000000, 108.000000, 72.000000, 0.000000 -993, -3.000000, 108.000000, 72.000000, 0.000000 -994, -3.000000, 108.000000, 72.000000, 0.000000 -995, -3.000000, 108.000000, 72.000000, 0.000000 -996, -3.000000, 108.000000, 72.000000, 0.000000 -997, -3.000000, 108.000000, 72.000000, 0.000000 -998, -3.000000, 108.000000, 72.000000, 0.000000 -999, -3.000000, 108.000000, 72.000000, 0.000000 -1000, -3.000000, 110.000000, 75.000000, 0.000000 -1001, -3.000000, 110.000000, 75.000000, 0.000000 -1002, -3.000000, 110.000000, 75.000000, 0.000000 -1003, -3.000000, 110.000000, 75.000000, 0.000000 -1004, -3.000000, 110.000000, 75.000000, 0.000000 -1005, -3.000000, 110.000000, 75.000000, 0.000000 -1006, -3.000000, 110.000000, 75.000000, 0.000000 -1007, -3.000000, 110.000000, 75.000000, 0.000000 -1008, -3.000000, 110.000000, 75.000000, 0.000000 -1009, -3.000000, 110.000000, 75.000000, 0.000000 -1010, -3.000000, 110.000000, 75.000000, 0.000000 -1011, -3.000000, 110.000000, 75.000000, 0.000000 -1012, -3.000000, 110.000000, 75.000000, 0.000000 -1013, -3.000000, 110.000000, 75.000000, 0.000000 -1014, -3.000000, 110.000000, 75.000000, 0.000000 -1015, -3.000000, 110.000000, 75.000000, 0.000000 -1016, -3.000000, 110.000000, 75.000000, 0.000000 -1017, -3.000000, 110.000000, 75.000000, 0.000000 -1018, -3.000000, 110.000000, 75.000000, 0.000000 -1019, -3.000000, 110.000000, 75.000000, 0.000000 -1020, -3.000000, 110.000000, 75.000000, 0.000000 -1021, -3.000000, 110.000000, 75.000000, 0.000000 -1022, -3.000000, 110.000000, 75.000000, 0.000000 -1023, -3.000000, 110.000000, 75.000000, 0.000000 -1024, -3.000000, 110.000000, 75.000000, 0.000000 -1025, -3.000000, 110.000000, 75.000000, 0.000000 -1026, -3.000000, 110.000000, 75.000000, 0.000000 -1027, -3.000000, 110.000000, 75.000000, 0.000000 -1028, -3.000000, 110.000000, 75.000000, 0.000000 -1029, -3.000000, 110.000000, 75.000000, 0.000000 -1030, -3.000000, 110.000000, 75.000000, 0.000000 -1031, -3.000000, 110.000000, 75.000000, 0.000000 -1032, -3.000000, 110.000000, 75.000000, 0.000000 -1033, -3.000000, 110.000000, 75.000000, 0.000000 -1034, -3.000000, 110.000000, 75.000000, 0.000000 -1035, -3.000000, 110.000000, 75.000000, 0.000000 -1036, -3.000000, 110.000000, 75.000000, 0.000000 -1037, -3.000000, 110.000000, 75.000000, 0.000000 -1038, -3.000000, 110.000000, 75.000000, 0.000000 -1039, -3.000000, 110.000000, 75.000000, 0.000000 -1040, -3.000000, 110.000000, 75.000000, 0.000000 -1041, -3.000000, 110.000000, 75.000000, 0.000000 -1042, -3.000000, 110.000000, 75.000000, 0.000000 -1043, -3.000000, 110.000000, 75.000000, 0.000000 -1044, -3.000000, 110.000000, 75.000000, 0.000000 -1045, -3.000000, 110.000000, 75.000000, 0.000000 -1046, -3.000000, 110.000000, 75.000000, 0.000000 -1047, -3.000000, 110.000000, 75.000000, 0.000000 -1048, -3.000000, 110.000000, 75.000000, 0.000000 -1049, -3.000000, 110.000000, 75.000000, 0.000000 -1050, -3.000000, 110.000000, 75.000000, 0.000000 -1051, -3.000000, 110.000000, 75.000000, 0.000000 -1052, -3.000000, 110.000000, 75.000000, 0.000000 -1053, -3.000000, 110.000000, 75.000000, 0.000000 -1054, -3.000000, 110.000000, 75.000000, 0.000000 -1055, -3.000000, 110.000000, 75.000000, 0.000000 -1056, -3.000000, 110.000000, 75.000000, 0.000000 -1057, -3.000000, 110.000000, 75.000000, 0.000000 -1058, -3.000000, 110.000000, 75.000000, 0.000000 -1059, -3.000000, 110.000000, 75.000000, 0.000000 -1060, -3.000000, 110.000000, 75.000000, 0.000000 -1061, -3.000000, 110.000000, 75.000000, 0.000000 -1062, -3.000000, 110.000000, 75.000000, 0.000000 -1063, -3.000000, 110.000000, 75.000000, 0.000000 -1064, -3.000000, 110.000000, 75.000000, 0.000000 -1065, -3.000000, 110.000000, 75.000000, 0.000000 -1066, -3.000000, 110.000000, 75.000000, 0.000000 -1067, -3.000000, 110.000000, 75.000000, 0.000000 -1068, -3.000000, 110.000000, 75.000000, 0.000000 -1069, -3.000000, 110.000000, 75.000000, 0.000000 -1070, -3.000000, 110.000000, 75.000000, 0.000000 -1071, -3.000000, 110.000000, 75.000000, 0.000000 -1072, -3.000000, 110.000000, 75.000000, 0.000000 -1073, -3.000000, 110.000000, 75.000000, 0.000000 -1074, -3.000000, 110.000000, 75.000000, 0.000000 -1075, -3.000000, 110.000000, 75.000000, 0.000000 -1076, -3.000000, 110.000000, 75.000000, 0.000000 -1077, -3.000000, 110.000000, 75.000000, 0.000000 -1078, -3.000000, 110.000000, 75.000000, 0.000000 -1079, -3.000000, 110.000000, 75.000000, 0.000000 -1080, -3.000000, 110.000000, 75.000000, 0.000000 -1081, -3.000000, 110.000000, 75.000000, 0.000000 -1082, -3.000000, 110.000000, 75.000000, 0.000000 -1083, -3.000000, 110.000000, 75.000000, 0.000000 -1084, -3.000000, 110.000000, 75.000000, 0.000000 -1085, -3.000000, 110.000000, 75.000000, 0.000000 -1086, -3.000000, 110.000000, 75.000000, 0.000000 -1087, -3.000000, 110.000000, 75.000000, 0.000000 -1088, -3.000000, 110.000000, 75.000000, 0.000000 -1089, -3.000000, 110.000000, 75.000000, 0.000000 -1090, -3.000000, 110.000000, 75.000000, 0.000000 -1091, -3.000000, 110.000000, 75.000000, 0.000000 -1092, -3.000000, 110.000000, 75.000000, 0.000000 -1093, -3.000000, 110.000000, 75.000000, 0.000000 -1094, -3.000000, 110.000000, 75.000000, 0.000000 -1095, -3.000000, 110.000000, 75.000000, 0.000000 -1096, -3.000000, 110.000000, 75.000000, 0.000000 -1097, -3.000000, 110.000000, 75.000000, 0.000000 -1098, -3.000000, 110.000000, 75.000000, 0.000000 -1099, -3.000000, 110.000000, 75.000000, 0.000000 -1100, -3.000000, 112.000000, 78.000000, 0.000000 -1101, -3.000000, 112.000000, 78.000000, 0.000000 -1102, -3.000000, 112.000000, 78.000000, 0.000000 -1103, -3.000000, 112.000000, 78.000000, 0.000000 -1104, -3.000000, 112.000000, 78.000000, 0.000000 -1105, -3.000000, 112.000000, 78.000000, 0.000000 -1106, -3.000000, 112.000000, 78.000000, 0.000000 -1107, -3.000000, 112.000000, 78.000000, 0.000000 -1108, -3.000000, 112.000000, 78.000000, 0.000000 -1109, -3.000000, 112.000000, 78.000000, 0.000000 -1110, -3.000000, 112.000000, 78.000000, 0.000000 -1111, -3.000000, 112.000000, 78.000000, 0.000000 -1112, -3.000000, 112.000000, 78.000000, 0.000000 -1113, -3.000000, 112.000000, 78.000000, 0.000000 -1114, -3.000000, 112.000000, 78.000000, 0.000000 -1115, -3.000000, 112.000000, 78.000000, 0.000000 -1116, -3.000000, 112.000000, 78.000000, 0.000000 -1117, -3.000000, 112.000000, 78.000000, 0.000000 -1118, -3.000000, 112.000000, 78.000000, 0.000000 -1119, -3.000000, 112.000000, 78.000000, 0.000000 -1120, -3.000000, 112.000000, 78.000000, 0.000000 -1121, -3.000000, 112.000000, 78.000000, 0.000000 -1122, -3.000000, 112.000000, 78.000000, 0.000000 -1123, -3.000000, 112.000000, 78.000000, 0.000000 -1124, -3.000000, 112.000000, 78.000000, 0.000000 -1125, -3.000000, 112.000000, 78.000000, 0.000000 -1126, -3.000000, 112.000000, 78.000000, 0.000000 -1127, -3.000000, 112.000000, 78.000000, 0.000000 -1128, -3.000000, 112.000000, 78.000000, 0.000000 -1129, -3.000000, 112.000000, 78.000000, 0.000000 -1130, -3.000000, 112.000000, 78.000000, 0.000000 -1131, -3.000000, 112.000000, 78.000000, 0.000000 -1132, -3.000000, 112.000000, 78.000000, 0.000000 -1133, -3.000000, 112.000000, 78.000000, 0.000000 -1134, -3.000000, 112.000000, 78.000000, 0.000000 -1135, -3.000000, 112.000000, 78.000000, 0.000000 -1136, -3.000000, 112.000000, 78.000000, 0.000000 -1137, -3.000000, 112.000000, 78.000000, 0.000000 -1138, -3.000000, 112.000000, 78.000000, 0.000000 -1139, -3.000000, 112.000000, 78.000000, 0.000000 -1140, -3.000000, 112.000000, 78.000000, 0.000000 -1141, -3.000000, 112.000000, 78.000000, 0.000000 -1142, -3.000000, 112.000000, 78.000000, 0.000000 -1143, -3.000000, 112.000000, 78.000000, 0.000000 -1144, -3.000000, 112.000000, 78.000000, 0.000000 -1145, -3.000000, 112.000000, 78.000000, 0.000000 -1146, -3.000000, 112.000000, 78.000000, 0.000000 -1147, -3.000000, 112.000000, 78.000000, 0.000000 -1148, -3.000000, 112.000000, 78.000000, 0.000000 -1149, -3.000000, 112.000000, 78.000000, 0.000000 -1150, -3.000000, 112.000000, 78.000000, 0.000000 -1151, -3.000000, 112.000000, 78.000000, 0.000000 -1152, -3.000000, 112.000000, 78.000000, 0.000000 -1153, -3.000000, 112.000000, 78.000000, 0.000000 -1154, -3.000000, 112.000000, 78.000000, 0.000000 -1155, -3.000000, 112.000000, 78.000000, 0.000000 -1156, -3.000000, 112.000000, 78.000000, 0.000000 -1157, -3.000000, 112.000000, 78.000000, 0.000000 -1158, -3.000000, 112.000000, 78.000000, 0.000000 -1159, -3.000000, 112.000000, 78.000000, 0.000000 -1160, -3.000000, 112.000000, 78.000000, 0.000000 -1161, -3.000000, 112.000000, 78.000000, 0.000000 -1162, -3.000000, 112.000000, 78.000000, 0.000000 -1163, -3.000000, 112.000000, 78.000000, 0.000000 -1164, -3.000000, 112.000000, 78.000000, 0.000000 -1165, -3.000000, 112.000000, 78.000000, 0.000000 -1166, -3.000000, 112.000000, 78.000000, 0.000000 -1167, -3.000000, 112.000000, 78.000000, 0.000000 -1168, -3.000000, 112.000000, 78.000000, 0.000000 -1169, -3.000000, 112.000000, 78.000000, 0.000000 -1170, -3.000000, 112.000000, 78.000000, 0.000000 -1171, -3.000000, 112.000000, 78.000000, 0.000000 -1172, -3.000000, 112.000000, 78.000000, 0.000000 -1173, -3.000000, 112.000000, 78.000000, 0.000000 -1174, -3.000000, 112.000000, 78.000000, 0.000000 -1175, -3.000000, 112.000000, 78.000000, 0.000000 -1176, -3.000000, 112.000000, 78.000000, 0.000000 -1177, -3.000000, 112.000000, 78.000000, 0.000000 -1178, -3.000000, 112.000000, 78.000000, 0.000000 -1179, -3.000000, 112.000000, 78.000000, 0.000000 -1180, -3.000000, 112.000000, 78.000000, 0.000000 -1181, -3.000000, 112.000000, 78.000000, 0.000000 -1182, -3.000000, 112.000000, 78.000000, 0.000000 -1183, -3.000000, 112.000000, 78.000000, 0.000000 -1184, -3.000000, 112.000000, 78.000000, 0.000000 -1185, -3.000000, 112.000000, 78.000000, 0.000000 -1186, -3.000000, 112.000000, 78.000000, 0.000000 -1187, -3.000000, 112.000000, 78.000000, 0.000000 -1188, -3.000000, 112.000000, 78.000000, 0.000000 -1189, -3.000000, 112.000000, 78.000000, 0.000000 -1190, -3.000000, 112.000000, 78.000000, 0.000000 -1191, -3.000000, 112.000000, 78.000000, 0.000000 -1192, -3.000000, 112.000000, 78.000000, 0.000000 -1193, -3.000000, 112.000000, 78.000000, 0.000000 -1194, -3.000000, 112.000000, 78.000000, 0.000000 -1195, -3.000000, 112.000000, 78.000000, 0.000000 -1196, -3.000000, 112.000000, 78.000000, 0.000000 -1197, -3.000000, 112.000000, 78.000000, 0.000000 -1198, -3.000000, 112.000000, 78.000000, 0.000000 -1199, -3.000000, 112.000000, 78.000000, 0.000000 -1200, -3.000000, 114.000000, 81.000000, 0.000000 -1201, -3.000000, 114.000000, 81.000000, 0.000000 -1202, -3.000000, 114.000000, 81.000000, 0.000000 -1203, -3.000000, 114.000000, 81.000000, 0.000000 -1204, -3.000000, 114.000000, 81.000000, 0.000000 -1205, -3.000000, 114.000000, 81.000000, 0.000000 -1206, -3.000000, 114.000000, 81.000000, 0.000000 -1207, -3.000000, 114.000000, 81.000000, 0.000000 -1208, -3.000000, 114.000000, 81.000000, 0.000000 -1209, -3.000000, 114.000000, 81.000000, 0.000000 -1210, -3.000000, 114.000000, 81.000000, 0.000000 -1211, -3.000000, 114.000000, 81.000000, 0.000000 -1212, -3.000000, 114.000000, 81.000000, 0.000000 -1213, -3.000000, 114.000000, 81.000000, 0.000000 -1214, -3.000000, 114.000000, 81.000000, 0.000000 -1215, -3.000000, 114.000000, 81.000000, 0.000000 -1216, -3.000000, 114.000000, 81.000000, 0.000000 -1217, -3.000000, 114.000000, 81.000000, 0.000000 -1218, -3.000000, 114.000000, 81.000000, 0.000000 -1219, -3.000000, 114.000000, 81.000000, 0.000000 -1220, -3.000000, 114.000000, 81.000000, 0.000000 -1221, -3.000000, 114.000000, 81.000000, 0.000000 -1222, -3.000000, 114.000000, 81.000000, 0.000000 -1223, -3.000000, 114.000000, 81.000000, 0.000000 -1224, -3.000000, 114.000000, 81.000000, 0.000000 -1225, -3.000000, 114.000000, 81.000000, 0.000000 -1226, -3.000000, 114.000000, 81.000000, 0.000000 -1227, -3.000000, 114.000000, 81.000000, 0.000000 -1228, -3.000000, 114.000000, 81.000000, 0.000000 -1229, -3.000000, 114.000000, 81.000000, 0.000000 -1230, -3.000000, 114.000000, 81.000000, 0.000000 -1231, -3.000000, 114.000000, 81.000000, 0.000000 -1232, -3.000000, 114.000000, 81.000000, 0.000000 -1233, -3.000000, 114.000000, 81.000000, 0.000000 -1234, -3.000000, 114.000000, 81.000000, 0.000000 -1235, -3.000000, 114.000000, 81.000000, 0.000000 -1236, -3.000000, 114.000000, 81.000000, 0.000000 -1237, -3.000000, 114.000000, 81.000000, 0.000000 -1238, -3.000000, 114.000000, 81.000000, 0.000000 -1239, -3.000000, 114.000000, 81.000000, 0.000000 -1240, -3.000000, 114.000000, 81.000000, 0.000000 -1241, -3.000000, 114.000000, 81.000000, 0.000000 -1242, -3.000000, 114.000000, 81.000000, 0.000000 -1243, -3.000000, 114.000000, 81.000000, 0.000000 -1244, -3.000000, 114.000000, 81.000000, 0.000000 -1245, -3.000000, 114.000000, 81.000000, 0.000000 -1246, -3.000000, 114.000000, 81.000000, 0.000000 -1247, -3.000000, 114.000000, 81.000000, 0.000000 -1248, -3.000000, 114.000000, 81.000000, 0.000000 -1249, -3.000000, 114.000000, 81.000000, 0.000000 -1250, -3.000000, 114.000000, 81.000000, 0.000000 -1251, -3.000000, 114.000000, 81.000000, 0.000000 -1252, -3.000000, 114.000000, 81.000000, 0.000000 -1253, -3.000000, 114.000000, 81.000000, 0.000000 -1254, -3.000000, 114.000000, 81.000000, 0.000000 -1255, -3.000000, 114.000000, 81.000000, 0.000000 -1256, -3.000000, 114.000000, 81.000000, 0.000000 -1257, -3.000000, 114.000000, 81.000000, 0.000000 -1258, -3.000000, 114.000000, 81.000000, 0.000000 -1259, -3.000000, 114.000000, 81.000000, 0.000000 -1260, -3.000000, 114.000000, 81.000000, 0.000000 -1261, -3.000000, 114.000000, 81.000000, 0.000000 -1262, -3.000000, 114.000000, 81.000000, 0.000000 -1263, -3.000000, 114.000000, 81.000000, 0.000000 -1264, -3.000000, 114.000000, 81.000000, 0.000000 -1265, -3.000000, 114.000000, 81.000000, 0.000000 -1266, -3.000000, 114.000000, 81.000000, 0.000000 -1267, -3.000000, 114.000000, 81.000000, 0.000000 -1268, -3.000000, 114.000000, 81.000000, 0.000000 -1269, -3.000000, 114.000000, 81.000000, 0.000000 -1270, -3.000000, 114.000000, 81.000000, 0.000000 -1271, -3.000000, 114.000000, 81.000000, 0.000000 -1272, -3.000000, 114.000000, 81.000000, 0.000000 -1273, -3.000000, 114.000000, 81.000000, 0.000000 -1274, -3.000000, 114.000000, 81.000000, 0.000000 -1275, -3.000000, 114.000000, 81.000000, 0.000000 -1276, -3.000000, 114.000000, 81.000000, 0.000000 -1277, -3.000000, 114.000000, 81.000000, 0.000000 -1278, -3.000000, 114.000000, 81.000000, 0.000000 -1279, -3.000000, 114.000000, 81.000000, 0.000000 -1280, -3.000000, 114.000000, 81.000000, 0.000000 -1281, -3.000000, 114.000000, 81.000000, 0.000000 -1282, -3.000000, 114.000000, 81.000000, 0.000000 -1283, -3.000000, 114.000000, 81.000000, 0.000000 -1284, -3.000000, 114.000000, 81.000000, 0.000000 -1285, -3.000000, 114.000000, 81.000000, 0.000000 -1286, -3.000000, 114.000000, 81.000000, 0.000000 -1287, -3.000000, 114.000000, 81.000000, 0.000000 -1288, -3.000000, 114.000000, 81.000000, 0.000000 -1289, -3.000000, 114.000000, 81.000000, 0.000000 -1290, -3.000000, 114.000000, 81.000000, 0.000000 -1291, -3.000000, 114.000000, 81.000000, 0.000000 -1292, -3.000000, 114.000000, 81.000000, 0.000000 -1293, -3.000000, 114.000000, 81.000000, 0.000000 -1294, -3.000000, 114.000000, 81.000000, 0.000000 -1295, -3.000000, 114.000000, 81.000000, 0.000000 -1296, -3.000000, 114.000000, 81.000000, 0.000000 -1297, -3.000000, 114.000000, 81.000000, 0.000000 -1298, -3.000000, 114.000000, 81.000000, 0.000000 -1299, -3.000000, 114.000000, 81.000000, 0.000000 -1300, -3.000000, 116.000000, 84.000000, 0.000000 -1301, -3.000000, 116.000000, 84.000000, 0.000000 -1302, -3.000000, 116.000000, 84.000000, 0.000000 -1303, -3.000000, 116.000000, 84.000000, 0.000000 -1304, -3.000000, 116.000000, 84.000000, 0.000000 -1305, -3.000000, 116.000000, 84.000000, 0.000000 -1306, -3.000000, 116.000000, 84.000000, 0.000000 -1307, -3.000000, 116.000000, 84.000000, 0.000000 -1308, -3.000000, 116.000000, 84.000000, 0.000000 -1309, -3.000000, 116.000000, 84.000000, 0.000000 -1310, -3.000000, 116.000000, 84.000000, 0.000000 -1311, -3.000000, 116.000000, 84.000000, 0.000000 -1312, -3.000000, 116.000000, 84.000000, 0.000000 -1313, -3.000000, 116.000000, 84.000000, 0.000000 -1314, -3.000000, 116.000000, 84.000000, 0.000000 -1315, -3.000000, 116.000000, 84.000000, 0.000000 -1316, -3.000000, 116.000000, 84.000000, 0.000000 -1317, -3.000000, 116.000000, 84.000000, 0.000000 -1318, -3.000000, 116.000000, 84.000000, 0.000000 -1319, -3.000000, 116.000000, 84.000000, 0.000000 -1320, -3.000000, 116.000000, 84.000000, 0.000000 -1321, -3.000000, 116.000000, 84.000000, 0.000000 -1322, -3.000000, 116.000000, 84.000000, 0.000000 -1323, -3.000000, 116.000000, 84.000000, 0.000000 -1324, -3.000000, 116.000000, 84.000000, 0.000000 -1325, -3.000000, 116.000000, 84.000000, 0.000000 -1326, -3.000000, 116.000000, 84.000000, 0.000000 -1327, -3.000000, 116.000000, 84.000000, 0.000000 -1328, -3.000000, 116.000000, 84.000000, 0.000000 -1329, -3.000000, 116.000000, 84.000000, 0.000000 -1330, -3.000000, 116.000000, 84.000000, 0.000000 -1331, -3.000000, 116.000000, 84.000000, 0.000000 -1332, -3.000000, 116.000000, 84.000000, 0.000000 -1333, -3.000000, 116.000000, 84.000000, 0.000000 -1334, -3.000000, 116.000000, 84.000000, 0.000000 -1335, -3.000000, 116.000000, 84.000000, 0.000000 -1336, -3.000000, 116.000000, 84.000000, 0.000000 -1337, -3.000000, 116.000000, 84.000000, 0.000000 -1338, -3.000000, 116.000000, 84.000000, 0.000000 -1339, -3.000000, 116.000000, 84.000000, 0.000000 -1340, -3.000000, 116.000000, 84.000000, 0.000000 -1341, -3.000000, 116.000000, 84.000000, 0.000000 -1342, -3.000000, 116.000000, 84.000000, 0.000000 -1343, -3.000000, 116.000000, 84.000000, 0.000000 -1344, -3.000000, 116.000000, 84.000000, 0.000000 -1345, -3.000000, 116.000000, 84.000000, 0.000000 -1346, -3.000000, 116.000000, 84.000000, 0.000000 -1347, -3.000000, 116.000000, 84.000000, 0.000000 -1348, -3.000000, 116.000000, 84.000000, 0.000000 -1349, -3.000000, 116.000000, 84.000000, 0.000000 -1350, -3.000000, 116.000000, 84.000000, 0.000000 -1351, -3.000000, 116.000000, 84.000000, 0.000000 -1352, -3.000000, 116.000000, 84.000000, 0.000000 -1353, -3.000000, 116.000000, 84.000000, 0.000000 -1354, -3.000000, 116.000000, 84.000000, 0.000000 -1355, -3.000000, 116.000000, 84.000000, 0.000000 -1356, -3.000000, 116.000000, 84.000000, 0.000000 -1357, -3.000000, 116.000000, 84.000000, 0.000000 -1358, -3.000000, 116.000000, 84.000000, 0.000000 -1359, -3.000000, 116.000000, 84.000000, 0.000000 -1360, -3.000000, 116.000000, 84.000000, 0.000000 -1361, -3.000000, 116.000000, 84.000000, 0.000000 -1362, -3.000000, 116.000000, 84.000000, 0.000000 -1363, -3.000000, 116.000000, 84.000000, 0.000000 -1364, -3.000000, 116.000000, 84.000000, 0.000000 -1365, -3.000000, 116.000000, 84.000000, 0.000000 -1366, -3.000000, 116.000000, 84.000000, 0.000000 -1367, -3.000000, 116.000000, 84.000000, 0.000000 -1368, -3.000000, 116.000000, 84.000000, 0.000000 -1369, -3.000000, 116.000000, 84.000000, 0.000000 -1370, -3.000000, 116.000000, 84.000000, 0.000000 -1371, -3.000000, 116.000000, 84.000000, 0.000000 -1372, -3.000000, 116.000000, 84.000000, 0.000000 -1373, -3.000000, 116.000000, 84.000000, 0.000000 -1374, -3.000000, 116.000000, 84.000000, 0.000000 -1375, -3.000000, 116.000000, 84.000000, 0.000000 -1376, -3.000000, 116.000000, 84.000000, 0.000000 -1377, -3.000000, 116.000000, 84.000000, 0.000000 -1378, -3.000000, 116.000000, 84.000000, 0.000000 -1379, -3.000000, 116.000000, 84.000000, 0.000000 -1380, -3.000000, 116.000000, 84.000000, 0.000000 -1381, -3.000000, 116.000000, 84.000000, 0.000000 -1382, -3.000000, 116.000000, 84.000000, 0.000000 -1383, -3.000000, 116.000000, 84.000000, 0.000000 -1384, -3.000000, 116.000000, 84.000000, 0.000000 -1385, -3.000000, 116.000000, 84.000000, 0.000000 -1386, -3.000000, 116.000000, 84.000000, 0.000000 -1387, -3.000000, 116.000000, 84.000000, 0.000000 -1388, -3.000000, 116.000000, 84.000000, 0.000000 -1389, -3.000000, 116.000000, 84.000000, 0.000000 -1390, -3.000000, 116.000000, 84.000000, 0.000000 -1391, -3.000000, 116.000000, 84.000000, 0.000000 -1392, -3.000000, 116.000000, 84.000000, 0.000000 -1393, -3.000000, 116.000000, 84.000000, 0.000000 -1394, -3.000000, 116.000000, 84.000000, 0.000000 -1395, -3.000000, 116.000000, 84.000000, 0.000000 -1396, -3.000000, 116.000000, 84.000000, 0.000000 -1397, -3.000000, 116.000000, 84.000000, 0.000000 -1398, -3.000000, 116.000000, 84.000000, 0.000000 -1399, -3.000000, 116.000000, 84.000000, 0.000000 -1400, -3.000000, 118.000000, 87.000000, 0.000000 -1401, -3.000000, 118.000000, 87.000000, 0.000000 -1402, -3.000000, 118.000000, 87.000000, 0.000000 -1403, -3.000000, 118.000000, 87.000000, 0.000000 -1404, -3.000000, 118.000000, 87.000000, 0.000000 -1405, -3.000000, 118.000000, 87.000000, 0.000000 -1406, -3.000000, 118.000000, 87.000000, 0.000000 -1407, -3.000000, 118.000000, 87.000000, 0.000000 -1408, -3.000000, 118.000000, 87.000000, 0.000000 -1409, -3.000000, 118.000000, 87.000000, 0.000000 -1410, -3.000000, 118.000000, 87.000000, 0.000000 -1411, -3.000000, 118.000000, 87.000000, 0.000000 -1412, -3.000000, 118.000000, 87.000000, 0.000000 -1413, -3.000000, 118.000000, 87.000000, 0.000000 -1414, -3.000000, 118.000000, 87.000000, 0.000000 -1415, -3.000000, 118.000000, 87.000000, 0.000000 -1416, -3.000000, 118.000000, 87.000000, 0.000000 -1417, -3.000000, 118.000000, 87.000000, 0.000000 -1418, -3.000000, 118.000000, 87.000000, 0.000000 -1419, -3.000000, 118.000000, 87.000000, 0.000000 -1420, -3.000000, 118.000000, 87.000000, 0.000000 -1421, -3.000000, 118.000000, 87.000000, 0.000000 -1422, -3.000000, 118.000000, 87.000000, 0.000000 -1423, -3.000000, 118.000000, 87.000000, 0.000000 -1424, -3.000000, 118.000000, 87.000000, 0.000000 -1425, -3.000000, 118.000000, 87.000000, 0.000000 -1426, -3.000000, 118.000000, 87.000000, 0.000000 -1427, -3.000000, 118.000000, 87.000000, 0.000000 -1428, -3.000000, 118.000000, 87.000000, 0.000000 -1429, -3.000000, 118.000000, 87.000000, 0.000000 -1430, -3.000000, 118.000000, 87.000000, 0.000000 -1431, -3.000000, 118.000000, 87.000000, 0.000000 -1432, -3.000000, 118.000000, 87.000000, 0.000000 -1433, -3.000000, 118.000000, 87.000000, 0.000000 -1434, -3.000000, 118.000000, 87.000000, 0.000000 -1435, -3.000000, 118.000000, 87.000000, 0.000000 -1436, -3.000000, 118.000000, 87.000000, 0.000000 -1437, -3.000000, 118.000000, 87.000000, 0.000000 -1438, -3.000000, 118.000000, 87.000000, 0.000000 -1439, -3.000000, 118.000000, 87.000000, 0.000000 -1440, -3.000000, 118.000000, 87.000000, 0.000000 -1441, -3.000000, 118.000000, 87.000000, 0.000000 -1442, -3.000000, 118.000000, 87.000000, 0.000000 -1443, -3.000000, 118.000000, 87.000000, 0.000000 -1444, -3.000000, 118.000000, 87.000000, 0.000000 -1445, -3.000000, 118.000000, 87.000000, 0.000000 -1446, -3.000000, 118.000000, 87.000000, 0.000000 -1447, -3.000000, 118.000000, 87.000000, 0.000000 -1448, -3.000000, 118.000000, 87.000000, 0.000000 -1449, -3.000000, 118.000000, 87.000000, 0.000000 -1450, -3.000000, 118.000000, 87.000000, 0.000000 -1451, -3.000000, 118.000000, 87.000000, 0.000000 -1452, -3.000000, 118.000000, 87.000000, 0.000000 -1453, -3.000000, 118.000000, 87.000000, 0.000000 -1454, -3.000000, 118.000000, 87.000000, 0.000000 -1455, -3.000000, 118.000000, 87.000000, 0.000000 -1456, -3.000000, 118.000000, 87.000000, 0.000000 -1457, -3.000000, 118.000000, 87.000000, 0.000000 -1458, -3.000000, 118.000000, 87.000000, 0.000000 -1459, -3.000000, 118.000000, 87.000000, 0.000000 -1460, -3.000000, 118.000000, 87.000000, 0.000000 -1461, -3.000000, 118.000000, 87.000000, 0.000000 -1462, -3.000000, 118.000000, 87.000000, 0.000000 -1463, -3.000000, 118.000000, 87.000000, 0.000000 -1464, -3.000000, 118.000000, 87.000000, 0.000000 -1465, -3.000000, 118.000000, 87.000000, 0.000000 -1466, -3.000000, 118.000000, 87.000000, 0.000000 -1467, -3.000000, 118.000000, 87.000000, 0.000000 -1468, -3.000000, 118.000000, 87.000000, 0.000000 -1469, -3.000000, 118.000000, 87.000000, 0.000000 -1470, -3.000000, 118.000000, 87.000000, 0.000000 -1471, -3.000000, 118.000000, 87.000000, 0.000000 -1472, -3.000000, 118.000000, 87.000000, 0.000000 -1473, -3.000000, 118.000000, 87.000000, 0.000000 -1474, -3.000000, 118.000000, 87.000000, 0.000000 -1475, -3.000000, 118.000000, 87.000000, 0.000000 -1476, -3.000000, 118.000000, 87.000000, 0.000000 -1477, -3.000000, 118.000000, 87.000000, 0.000000 -1478, -3.000000, 118.000000, 87.000000, 0.000000 -1479, -3.000000, 118.000000, 87.000000, 0.000000 -1480, -3.000000, 118.000000, 87.000000, 0.000000 -1481, -3.000000, 118.000000, 87.000000, 0.000000 -1482, -3.000000, 118.000000, 87.000000, 0.000000 -1483, -3.000000, 118.000000, 87.000000, 0.000000 -1484, -3.000000, 118.000000, 87.000000, 0.000000 -1485, -3.000000, 118.000000, 87.000000, 0.000000 -1486, -3.000000, 118.000000, 87.000000, 0.000000 -1487, -3.000000, 118.000000, 87.000000, 0.000000 -1488, -3.000000, 118.000000, 87.000000, 0.000000 -1489, -3.000000, 118.000000, 87.000000, 0.000000 -1490, -3.000000, 118.000000, 87.000000, 0.000000 -1491, -3.000000, 118.000000, 87.000000, 0.000000 -1492, -3.000000, 118.000000, 87.000000, 0.000000 -1493, -3.000000, 118.000000, 87.000000, 0.000000 -1494, -3.000000, 118.000000, 87.000000, 0.000000 -1495, -3.000000, 118.000000, 87.000000, 0.000000 -1496, -3.000000, 118.000000, 87.000000, 0.000000 -1497, -3.000000, 118.000000, 87.000000, 0.000000 -1498, -3.000000, 118.000000, 87.000000, 0.000000 -1499, -3.000000, 118.000000, 87.000000, 0.000000 -1500, -3.000000, 120.000000, 90.000000, 0.000000 -1501, -3.000000, 120.000000, 90.000000, 0.000000 -1502, -3.000000, 120.000000, 90.000000, 0.000000 -1503, -3.000000, 120.000000, 90.000000, 0.000000 -1504, -3.000000, 120.000000, 90.000000, 0.000000 -1505, -3.000000, 120.000000, 90.000000, 0.000000 -1506, -3.000000, 120.000000, 90.000000, 0.000000 -1507, -3.000000, 120.000000, 90.000000, 0.000000 -1508, -3.000000, 120.000000, 90.000000, 0.000000 -1509, -3.000000, 120.000000, 90.000000, 0.000000 -1510, -3.000000, 120.000000, 90.000000, 0.000000 -1511, -3.000000, 120.000000, 90.000000, 0.000000 -1512, -3.000000, 120.000000, 90.000000, 0.000000 -1513, -3.000000, 120.000000, 90.000000, 0.000000 -1514, -3.000000, 120.000000, 90.000000, 0.000000 -1515, -3.000000, 120.000000, 90.000000, 0.000000 -1516, -3.000000, 120.000000, 90.000000, 0.000000 -1517, -3.000000, 120.000000, 90.000000, 0.000000 -1518, -3.000000, 120.000000, 90.000000, 0.000000 -1519, -3.000000, 120.000000, 90.000000, 0.000000 -1520, -3.000000, 120.000000, 90.000000, 0.000000 -1521, -3.000000, 120.000000, 90.000000, 0.000000 -1522, -3.000000, 120.000000, 90.000000, 0.000000 -1523, -3.000000, 120.000000, 90.000000, 0.000000 -1524, -3.000000, 120.000000, 90.000000, 0.000000 -1525, -3.000000, 120.000000, 90.000000, 0.000000 -1526, -3.000000, 120.000000, 90.000000, 0.000000 -1527, -3.000000, 120.000000, 90.000000, 0.000000 -1528, -3.000000, 120.000000, 90.000000, 0.000000 -1529, -3.000000, 120.000000, 90.000000, 0.000000 -1530, -3.000000, 120.000000, 90.000000, 0.000000 -1531, -3.000000, 120.000000, 90.000000, 0.000000 -1532, -3.000000, 120.000000, 90.000000, 0.000000 -1533, -3.000000, 120.000000, 90.000000, 0.000000 -1534, -3.000000, 120.000000, 90.000000, 0.000000 -1535, -3.000000, 120.000000, 90.000000, 0.000000 -1536, -3.000000, 120.000000, 90.000000, 0.000000 -1537, -3.000000, 120.000000, 90.000000, 0.000000 -1538, -3.000000, 120.000000, 90.000000, 0.000000 -1539, -3.000000, 120.000000, 90.000000, 0.000000 -1540, -3.000000, 120.000000, 90.000000, 0.000000 -1541, -3.000000, 120.000000, 90.000000, 0.000000 -1542, -3.000000, 120.000000, 90.000000, 0.000000 -1543, -3.000000, 120.000000, 90.000000, 0.000000 -1544, -3.000000, 120.000000, 90.000000, 0.000000 -1545, -3.000000, 120.000000, 90.000000, 0.000000 -1546, -3.000000, 120.000000, 90.000000, 0.000000 -1547, -3.000000, 120.000000, 90.000000, 0.000000 -1548, -3.000000, 120.000000, 90.000000, 0.000000 -1549, -3.000000, 120.000000, 90.000000, 0.000000 -1550, -3.000000, 120.000000, 90.000000, 0.000000 -1551, -3.000000, 120.000000, 90.000000, 0.000000 -1552, -3.000000, 120.000000, 90.000000, 0.000000 -1553, -3.000000, 120.000000, 90.000000, 0.000000 -1554, -3.000000, 120.000000, 90.000000, 0.000000 -1555, -3.000000, 120.000000, 90.000000, 0.000000 -1556, -3.000000, 120.000000, 90.000000, 0.000000 -1557, -3.000000, 120.000000, 90.000000, 0.000000 -1558, -3.000000, 120.000000, 90.000000, 0.000000 -1559, -3.000000, 120.000000, 90.000000, 0.000000 -1560, -3.000000, 120.000000, 90.000000, 0.000000 -1561, -3.000000, 120.000000, 90.000000, 0.000000 -1562, -3.000000, 120.000000, 90.000000, 0.000000 -1563, -3.000000, 120.000000, 90.000000, 0.000000 -1564, -3.000000, 120.000000, 90.000000, 0.000000 -1565, -3.000000, 120.000000, 90.000000, 0.000000 -1566, -3.000000, 120.000000, 90.000000, 0.000000 -1567, -3.000000, 120.000000, 90.000000, 0.000000 -1568, -3.000000, 120.000000, 90.000000, 0.000000 -1569, -3.000000, 120.000000, 90.000000, 0.000000 -1570, -3.000000, 120.000000, 90.000000, 0.000000 -1571, -3.000000, 120.000000, 90.000000, 0.000000 -1572, -3.000000, 120.000000, 90.000000, 0.000000 -1573, -3.000000, 120.000000, 90.000000, 0.000000 -1574, -3.000000, 120.000000, 90.000000, 0.000000 -1575, -3.000000, 120.000000, 90.000000, 0.000000 -1576, -3.000000, 120.000000, 90.000000, 0.000000 -1577, -3.000000, 120.000000, 90.000000, 0.000000 -1578, -3.000000, 120.000000, 90.000000, 0.000000 -1579, -3.000000, 120.000000, 90.000000, 0.000000 -1580, -3.000000, 120.000000, 90.000000, 0.000000 -1581, -3.000000, 120.000000, 90.000000, 0.000000 -1582, -3.000000, 120.000000, 90.000000, 0.000000 -1583, -3.000000, 120.000000, 90.000000, 0.000000 -1584, -3.000000, 120.000000, 90.000000, 0.000000 -1585, -3.000000, 120.000000, 90.000000, 0.000000 -1586, -3.000000, 120.000000, 90.000000, 0.000000 -1587, -3.000000, 120.000000, 90.000000, 0.000000 -1588, -3.000000, 120.000000, 90.000000, 0.000000 -1589, -3.000000, 120.000000, 90.000000, 0.000000 -1590, -3.000000, 120.000000, 90.000000, 0.000000 -1591, -3.000000, 120.000000, 90.000000, 0.000000 -1592, -3.000000, 120.000000, 90.000000, 0.000000 -1593, -3.000000, 120.000000, 90.000000, 0.000000 -1594, -3.000000, 120.000000, 90.000000, 0.000000 -1595, -3.000000, 120.000000, 90.000000, 0.000000 -1596, -3.000000, 120.000000, 90.000000, 0.000000 -1597, -3.000000, 120.000000, 90.000000, 0.000000 -1598, -3.000000, 120.000000, 90.000000, 0.000000 -1599, -3.000000, 120.000000, 90.000000, 0.000000 -1600, -3.000000, 122.000000, 93.000000, 0.000000 -1601, -3.000000, 122.000000, 93.000000, 0.000000 -1602, -3.000000, 122.000000, 93.000000, 0.000000 -1603, -3.000000, 122.000000, 93.000000, 0.000000 -1604, -3.000000, 122.000000, 93.000000, 0.000000 -1605, -3.000000, 122.000000, 93.000000, 0.000000 -1606, -3.000000, 122.000000, 93.000000, 0.000000 -1607, -3.000000, 122.000000, 93.000000, 0.000000 -1608, -3.000000, 122.000000, 93.000000, 0.000000 -1609, -3.000000, 122.000000, 93.000000, 0.000000 -1610, -3.000000, 122.000000, 93.000000, 0.000000 -1611, -3.000000, 122.000000, 93.000000, 0.000000 -1612, -3.000000, 122.000000, 93.000000, 0.000000 -1613, -3.000000, 122.000000, 93.000000, 0.000000 -1614, -3.000000, 122.000000, 93.000000, 0.000000 -1615, -3.000000, 122.000000, 93.000000, 0.000000 -1616, -3.000000, 122.000000, 93.000000, 0.000000 -1617, -3.000000, 122.000000, 93.000000, 0.000000 -1618, -3.000000, 122.000000, 93.000000, 0.000000 -1619, -3.000000, 122.000000, 93.000000, 0.000000 -1620, -3.000000, 122.000000, 93.000000, 0.000000 -1621, -3.000000, 122.000000, 93.000000, 0.000000 -1622, -3.000000, 122.000000, 93.000000, 0.000000 -1623, -3.000000, 122.000000, 93.000000, 0.000000 -1624, -3.000000, 122.000000, 93.000000, 0.000000 -1625, -3.000000, 122.000000, 93.000000, 0.000000 -1626, -3.000000, 122.000000, 93.000000, 0.000000 -1627, -3.000000, 122.000000, 93.000000, 0.000000 -1628, -3.000000, 122.000000, 93.000000, 0.000000 -1629, -3.000000, 122.000000, 93.000000, 0.000000 -1630, -3.000000, 122.000000, 93.000000, 0.000000 -1631, -3.000000, 122.000000, 93.000000, 0.000000 -1632, -3.000000, 122.000000, 93.000000, 0.000000 -1633, -3.000000, 122.000000, 93.000000, 0.000000 -1634, -3.000000, 122.000000, 93.000000, 0.000000 -1635, -3.000000, 122.000000, 93.000000, 0.000000 -1636, -3.000000, 122.000000, 93.000000, 0.000000 -1637, -3.000000, 122.000000, 93.000000, 0.000000 -1638, -3.000000, 122.000000, 93.000000, 0.000000 -1639, -3.000000, 122.000000, 93.000000, 0.000000 -1640, -3.000000, 122.000000, 93.000000, 0.000000 -1641, -3.000000, 122.000000, 93.000000, 0.000000 -1642, -3.000000, 122.000000, 93.000000, 0.000000 -1643, -3.000000, 122.000000, 93.000000, 0.000000 -1644, -3.000000, 122.000000, 93.000000, 0.000000 -1645, -3.000000, 122.000000, 93.000000, 0.000000 -1646, -3.000000, 122.000000, 93.000000, 0.000000 -1647, -3.000000, 122.000000, 93.000000, 0.000000 -1648, -3.000000, 122.000000, 93.000000, 0.000000 -1649, -3.000000, 122.000000, 93.000000, 0.000000 -1650, -3.000000, 122.000000, 93.000000, 0.000000 -1651, -3.000000, 122.000000, 93.000000, 0.000000 -1652, -3.000000, 122.000000, 93.000000, 0.000000 -1653, -3.000000, 122.000000, 93.000000, 0.000000 -1654, -3.000000, 122.000000, 93.000000, 0.000000 -1655, -3.000000, 122.000000, 93.000000, 0.000000 -1656, -3.000000, 122.000000, 93.000000, 0.000000 -1657, -3.000000, 122.000000, 93.000000, 0.000000 -1658, -3.000000, 122.000000, 93.000000, 0.000000 -1659, -3.000000, 122.000000, 93.000000, 0.000000 -1660, -3.000000, 122.000000, 93.000000, 0.000000 -1661, -3.000000, 122.000000, 93.000000, 0.000000 -1662, -3.000000, 122.000000, 93.000000, 0.000000 -1663, -3.000000, 122.000000, 93.000000, 0.000000 -1664, -3.000000, 122.000000, 93.000000, 0.000000 -1665, -3.000000, 122.000000, 93.000000, 0.000000 -1666, -3.000000, 122.000000, 93.000000, 0.000000 -1667, -3.000000, 122.000000, 93.000000, 0.000000 -1668, -3.000000, 122.000000, 93.000000, 0.000000 -1669, -3.000000, 122.000000, 93.000000, 0.000000 -1670, -3.000000, 122.000000, 93.000000, 0.000000 -1671, -3.000000, 122.000000, 93.000000, 0.000000 -1672, -3.000000, 122.000000, 93.000000, 0.000000 -1673, -3.000000, 122.000000, 93.000000, 0.000000 -1674, -3.000000, 122.000000, 93.000000, 0.000000 -1675, -3.000000, 122.000000, 93.000000, 0.000000 -1676, -3.000000, 122.000000, 93.000000, 0.000000 -1677, -3.000000, 122.000000, 93.000000, 0.000000 -1678, -3.000000, 122.000000, 93.000000, 0.000000 -1679, -3.000000, 122.000000, 93.000000, 0.000000 -1680, -3.000000, 122.000000, 93.000000, 0.000000 -1681, -3.000000, 122.000000, 93.000000, 0.000000 -1682, -3.000000, 122.000000, 93.000000, 0.000000 -1683, -3.000000, 122.000000, 93.000000, 0.000000 -1684, -3.000000, 122.000000, 93.000000, 0.000000 -1685, -3.000000, 122.000000, 93.000000, 0.000000 -1686, -3.000000, 122.000000, 93.000000, 0.000000 -1687, -3.000000, 122.000000, 93.000000, 0.000000 -1688, -3.000000, 122.000000, 93.000000, 0.000000 -1689, -3.000000, 122.000000, 93.000000, 0.000000 -1690, -3.000000, 122.000000, 93.000000, 0.000000 -1691, -3.000000, 122.000000, 93.000000, 0.000000 -1692, -3.000000, 122.000000, 93.000000, 0.000000 -1693, -3.000000, 122.000000, 93.000000, 0.000000 -1694, -3.000000, 122.000000, 93.000000, 0.000000 -1695, -3.000000, 122.000000, 93.000000, 0.000000 -1696, -3.000000, 122.000000, 93.000000, 0.000000 -1697, -3.000000, 122.000000, 93.000000, 0.000000 -1698, -3.000000, 122.000000, 93.000000, 0.000000 -1699, -3.000000, 122.000000, 93.000000, 0.000000 -1700, -3.000000, 124.000000, 96.000000, 0.000000 -1701, -3.000000, 124.000000, 96.000000, 0.000000 -1702, -3.000000, 124.000000, 96.000000, 0.000000 -1703, -3.000000, 124.000000, 96.000000, 0.000000 -1704, -3.000000, 124.000000, 96.000000, 0.000000 -1705, -3.000000, 124.000000, 96.000000, 0.000000 -1706, -3.000000, 124.000000, 96.000000, 0.000000 -1707, -3.000000, 124.000000, 96.000000, 0.000000 -1708, -3.000000, 124.000000, 96.000000, 0.000000 -1709, -3.000000, 124.000000, 96.000000, 0.000000 -1710, -3.000000, 124.000000, 96.000000, 0.000000 -1711, -3.000000, 124.000000, 96.000000, 0.000000 -1712, -3.000000, 124.000000, 96.000000, 0.000000 -1713, -3.000000, 124.000000, 96.000000, 0.000000 -1714, -3.000000, 124.000000, 96.000000, 0.000000 -1715, -3.000000, 124.000000, 96.000000, 0.000000 -1716, -3.000000, 124.000000, 96.000000, 0.000000 -1717, -3.000000, 124.000000, 96.000000, 0.000000 -1718, -3.000000, 124.000000, 96.000000, 0.000000 -1719, -3.000000, 124.000000, 96.000000, 0.000000 -1720, -3.000000, 124.000000, 96.000000, 0.000000 -1721, -3.000000, 124.000000, 96.000000, 0.000000 -1722, -3.000000, 124.000000, 96.000000, 0.000000 -1723, -3.000000, 124.000000, 96.000000, 0.000000 -1724, -3.000000, 124.000000, 96.000000, 0.000000 -1725, -3.000000, 124.000000, 96.000000, 0.000000 -1726, -3.000000, 124.000000, 96.000000, 0.000000 -1727, -3.000000, 124.000000, 96.000000, 0.000000 -1728, -3.000000, 124.000000, 96.000000, 0.000000 -1729, -3.000000, 124.000000, 96.000000, 0.000000 -1730, -3.000000, 124.000000, 96.000000, 0.000000 -1731, -3.000000, 124.000000, 96.000000, 0.000000 -1732, -3.000000, 124.000000, 96.000000, 0.000000 -1733, -3.000000, 124.000000, 96.000000, 0.000000 -1734, -3.000000, 124.000000, 96.000000, 0.000000 -1735, -3.000000, 124.000000, 96.000000, 0.000000 -1736, -3.000000, 124.000000, 96.000000, 0.000000 -1737, -3.000000, 124.000000, 96.000000, 0.000000 -1738, -3.000000, 124.000000, 96.000000, 0.000000 -1739, -3.000000, 124.000000, 96.000000, 0.000000 -1740, -3.000000, 124.000000, 96.000000, 0.000000 -1741, -3.000000, 124.000000, 96.000000, 0.000000 -1742, -3.000000, 124.000000, 96.000000, 0.000000 -1743, -3.000000, 124.000000, 96.000000, 0.000000 -1744, -3.000000, 124.000000, 96.000000, 0.000000 -1745, -3.000000, 124.000000, 96.000000, 0.000000 -1746, -3.000000, 124.000000, 96.000000, 0.000000 -1747, -3.000000, 124.000000, 96.000000, 0.000000 -1748, -3.000000, 124.000000, 96.000000, 0.000000 -1749, -3.000000, 124.000000, 96.000000, 0.000000 -1750, -3.000000, 124.000000, 96.000000, 0.000000 -1751, -3.000000, 124.000000, 96.000000, 0.000000 -1752, -3.000000, 124.000000, 96.000000, 0.000000 -1753, -3.000000, 124.000000, 96.000000, 0.000000 -1754, -3.000000, 124.000000, 96.000000, 0.000000 -1755, -3.000000, 124.000000, 96.000000, 0.000000 -1756, -3.000000, 124.000000, 96.000000, 0.000000 -1757, -3.000000, 124.000000, 96.000000, 0.000000 -1758, -3.000000, 124.000000, 96.000000, 0.000000 -1759, -3.000000, 124.000000, 96.000000, 0.000000 -1760, -3.000000, 124.000000, 96.000000, 0.000000 -1761, -3.000000, 124.000000, 96.000000, 0.000000 -1762, -3.000000, 124.000000, 96.000000, 0.000000 -1763, -3.000000, 124.000000, 96.000000, 0.000000 -1764, -3.000000, 124.000000, 96.000000, 0.000000 -1765, -3.000000, 124.000000, 96.000000, 0.000000 -1766, -3.000000, 124.000000, 96.000000, 0.000000 -1767, -3.000000, 124.000000, 96.000000, 0.000000 -1768, -3.000000, 124.000000, 96.000000, 0.000000 -1769, -3.000000, 124.000000, 96.000000, 0.000000 -1770, -3.000000, 124.000000, 96.000000, 0.000000 -1771, -3.000000, 124.000000, 96.000000, 0.000000 -1772, -3.000000, 124.000000, 96.000000, 0.000000 -1773, -3.000000, 124.000000, 96.000000, 0.000000 -1774, -3.000000, 124.000000, 96.000000, 0.000000 -1775, -3.000000, 124.000000, 96.000000, 0.000000 -1776, -3.000000, 124.000000, 96.000000, 0.000000 -1777, -3.000000, 124.000000, 96.000000, 0.000000 -1778, -3.000000, 124.000000, 96.000000, 0.000000 -1779, -3.000000, 124.000000, 96.000000, 0.000000 -1780, -3.000000, 124.000000, 96.000000, 0.000000 -1781, -3.000000, 124.000000, 96.000000, 0.000000 -1782, -3.000000, 124.000000, 96.000000, 0.000000 -1783, -3.000000, 124.000000, 96.000000, 0.000000 -1784, -3.000000, 124.000000, 96.000000, 0.000000 -1785, -3.000000, 124.000000, 96.000000, 0.000000 -1786, -3.000000, 124.000000, 96.000000, 0.000000 -1787, -3.000000, 124.000000, 96.000000, 0.000000 -1788, -3.000000, 124.000000, 96.000000, 0.000000 -1789, -3.000000, 124.000000, 96.000000, 0.000000 -1790, -3.000000, 124.000000, 96.000000, 0.000000 -1791, -3.000000, 124.000000, 96.000000, 0.000000 -1792, -3.000000, 124.000000, 96.000000, 0.000000 -1793, -3.000000, 124.000000, 96.000000, 0.000000 -1794, -3.000000, 124.000000, 96.000000, 0.000000 -1795, -3.000000, 124.000000, 96.000000, 0.000000 -1796, -3.000000, 124.000000, 96.000000, 0.000000 -1797, -3.000000, 124.000000, 96.000000, 0.000000 -1798, -3.000000, 124.000000, 96.000000, 0.000000 -1799, -3.000000, 124.000000, 96.000000, 0.000000 -1800, -3.000000, 126.000000, 99.000000, 0.000000 -1801, -3.000000, 126.000000, 99.000000, 0.000000 -1802, -3.000000, 126.000000, 99.000000, 0.000000 -1803, -3.000000, 126.000000, 99.000000, 0.000000 -1804, -3.000000, 126.000000, 99.000000, 0.000000 -1805, -3.000000, 126.000000, 99.000000, 0.000000 -1806, -3.000000, 126.000000, 99.000000, 0.000000 -1807, -3.000000, 126.000000, 99.000000, 0.000000 -1808, -3.000000, 126.000000, 99.000000, 0.000000 -1809, -3.000000, 126.000000, 99.000000, 0.000000 -1810, -3.000000, 126.000000, 99.000000, 0.000000 -1811, -3.000000, 126.000000, 99.000000, 0.000000 -1812, -3.000000, 126.000000, 99.000000, 0.000000 -1813, -3.000000, 126.000000, 99.000000, 0.000000 -1814, -3.000000, 126.000000, 99.000000, 0.000000 -1815, -3.000000, 126.000000, 99.000000, 0.000000 -1816, -3.000000, 126.000000, 99.000000, 0.000000 -1817, -3.000000, 126.000000, 99.000000, 0.000000 -1818, -3.000000, 126.000000, 99.000000, 0.000000 -1819, -3.000000, 126.000000, 99.000000, 0.000000 -1820, -3.000000, 126.000000, 99.000000, 0.000000 -1821, -3.000000, 126.000000, 99.000000, 0.000000 -1822, -3.000000, 126.000000, 99.000000, 0.000000 -1823, -3.000000, 126.000000, 99.000000, 0.000000 -1824, -3.000000, 126.000000, 99.000000, 0.000000 -1825, -3.000000, 126.000000, 99.000000, 0.000000 -1826, -3.000000, 126.000000, 99.000000, 0.000000 -1827, -3.000000, 126.000000, 99.000000, 0.000000 -1828, -3.000000, 126.000000, 99.000000, 0.000000 -1829, -3.000000, 126.000000, 99.000000, 0.000000 -1830, -3.000000, 126.000000, 99.000000, 0.000000 -1831, -3.000000, 126.000000, 99.000000, 0.000000 -1832, -3.000000, 126.000000, 99.000000, 0.000000 -1833, -3.000000, 126.000000, 99.000000, 0.000000 -1834, -3.000000, 126.000000, 99.000000, 0.000000 -1835, -3.000000, 126.000000, 99.000000, 0.000000 -1836, -3.000000, 126.000000, 99.000000, 0.000000 -1837, -3.000000, 126.000000, 99.000000, 0.000000 -1838, -3.000000, 126.000000, 99.000000, 0.000000 -1839, -3.000000, 126.000000, 99.000000, 0.000000 -1840, -3.000000, 126.000000, 99.000000, 0.000000 -1841, -3.000000, 126.000000, 99.000000, 0.000000 -1842, -3.000000, 126.000000, 99.000000, 0.000000 -1843, -3.000000, 126.000000, 99.000000, 0.000000 -1844, -3.000000, 126.000000, 99.000000, 0.000000 -1845, -3.000000, 126.000000, 99.000000, 0.000000 -1846, -3.000000, 126.000000, 99.000000, 0.000000 -1847, -3.000000, 126.000000, 99.000000, 0.000000 -1848, -3.000000, 126.000000, 99.000000, 0.000000 -1849, -3.000000, 126.000000, 99.000000, 0.000000 -1850, -3.000000, 126.000000, 99.000000, 0.000000 -1851, -3.000000, 126.000000, 99.000000, 0.000000 -1852, -3.000000, 126.000000, 99.000000, 0.000000 -1853, -3.000000, 126.000000, 99.000000, 0.000000 -1854, -3.000000, 126.000000, 99.000000, 0.000000 -1855, -3.000000, 126.000000, 99.000000, 0.000000 -1856, -3.000000, 126.000000, 99.000000, 0.000000 -1857, -3.000000, 126.000000, 99.000000, 0.000000 -1858, -3.000000, 126.000000, 99.000000, 0.000000 -1859, -3.000000, 126.000000, 99.000000, 0.000000 -1860, -3.000000, 126.000000, 99.000000, 0.000000 -1861, -3.000000, 126.000000, 99.000000, 0.000000 -1862, -3.000000, 126.000000, 99.000000, 0.000000 -1863, -3.000000, 126.000000, 99.000000, 0.000000 -1864, -3.000000, 126.000000, 99.000000, 0.000000 -1865, -3.000000, 126.000000, 99.000000, 0.000000 -1866, -3.000000, 126.000000, 99.000000, 0.000000 -1867, -3.000000, 126.000000, 99.000000, 0.000000 -1868, -3.000000, 126.000000, 99.000000, 0.000000 -1869, -3.000000, 126.000000, 99.000000, 0.000000 -1870, -3.000000, 126.000000, 99.000000, 0.000000 -1871, -3.000000, 126.000000, 99.000000, 0.000000 -1872, -3.000000, 126.000000, 99.000000, 0.000000 -1873, -3.000000, 126.000000, 99.000000, 0.000000 -1874, -3.000000, 126.000000, 99.000000, 0.000000 -1875, -3.000000, 126.000000, 99.000000, 0.000000 -1876, -3.000000, 126.000000, 99.000000, 0.000000 -1877, -3.000000, 126.000000, 99.000000, 0.000000 -1878, -3.000000, 126.000000, 99.000000, 0.000000 -1879, -3.000000, 126.000000, 99.000000, 0.000000 -1880, -3.000000, 126.000000, 99.000000, 0.000000 -1881, -3.000000, 126.000000, 99.000000, 0.000000 -1882, -3.000000, 126.000000, 99.000000, 0.000000 -1883, -3.000000, 126.000000, 99.000000, 0.000000 -1884, -3.000000, 126.000000, 99.000000, 0.000000 -1885, -3.000000, 126.000000, 99.000000, 0.000000 -1886, -3.000000, 126.000000, 99.000000, 0.000000 -1887, -3.000000, 126.000000, 99.000000, 0.000000 -1888, -3.000000, 126.000000, 99.000000, 0.000000 -1889, -3.000000, 126.000000, 99.000000, 0.000000 -1890, -3.000000, 126.000000, 99.000000, 0.000000 -1891, -3.000000, 126.000000, 99.000000, 0.000000 -1892, -3.000000, 126.000000, 99.000000, 0.000000 -1893, -3.000000, 126.000000, 99.000000, 0.000000 -1894, -3.000000, 126.000000, 99.000000, 0.000000 -1895, -3.000000, 126.000000, 99.000000, 0.000000 -1896, -3.000000, 126.000000, 99.000000, 0.000000 -1897, -3.000000, 126.000000, 99.000000, 0.000000 -1898, -3.000000, 126.000000, 99.000000, 0.000000 -1899, -3.000000, 126.000000, 99.000000, 0.000000 -1900, -3.000000, 128.000000, 102.000000, 0.000000 -1901, -3.000000, 128.000000, 102.000000, 0.000000 -1902, -3.000000, 128.000000, 102.000000, 0.000000 -1903, -3.000000, 128.000000, 102.000000, 0.000000 -1904, -3.000000, 128.000000, 102.000000, 0.000000 -1905, -3.000000, 128.000000, 102.000000, 0.000000 -1906, -3.000000, 128.000000, 102.000000, 0.000000 -1907, -3.000000, 128.000000, 102.000000, 0.000000 -1908, -3.000000, 128.000000, 102.000000, 0.000000 -1909, -3.000000, 128.000000, 102.000000, 0.000000 -1910, -3.000000, 128.000000, 102.000000, 0.000000 -1911, -3.000000, 128.000000, 102.000000, 0.000000 -1912, -3.000000, 128.000000, 102.000000, 0.000000 -1913, -3.000000, 128.000000, 102.000000, 0.000000 -1914, -3.000000, 128.000000, 102.000000, 0.000000 -1915, -3.000000, 128.000000, 102.000000, 0.000000 -1916, -3.000000, 128.000000, 102.000000, 0.000000 -1917, -3.000000, 128.000000, 102.000000, 0.000000 -1918, -3.000000, 128.000000, 102.000000, 0.000000 -1919, -3.000000, 128.000000, 102.000000, 0.000000 -1920, -3.000000, 128.000000, 102.000000, 0.000000 -1921, -3.000000, 128.000000, 102.000000, 0.000000 -1922, -3.000000, 128.000000, 102.000000, 0.000000 -1923, -3.000000, 128.000000, 102.000000, 0.000000 -1924, -3.000000, 128.000000, 102.000000, 0.000000 -1925, -3.000000, 128.000000, 102.000000, 0.000000 -1926, -3.000000, 128.000000, 102.000000, 0.000000 -1927, -3.000000, 128.000000, 102.000000, 0.000000 -1928, -3.000000, 128.000000, 102.000000, 0.000000 -1929, -3.000000, 128.000000, 102.000000, 0.000000 -1930, -3.000000, 128.000000, 102.000000, 0.000000 -1931, -3.000000, 128.000000, 102.000000, 0.000000 -1932, -3.000000, 128.000000, 102.000000, 0.000000 -1933, -3.000000, 128.000000, 102.000000, 0.000000 -1934, -3.000000, 128.000000, 102.000000, 0.000000 -1935, -3.000000, 128.000000, 102.000000, 0.000000 -1936, -3.000000, 128.000000, 102.000000, 0.000000 -1937, -3.000000, 128.000000, 102.000000, 0.000000 -1938, -3.000000, 128.000000, 102.000000, 0.000000 -1939, -3.000000, 128.000000, 102.000000, 0.000000 -1940, -3.000000, 128.000000, 102.000000, 0.000000 -1941, -3.000000, 128.000000, 102.000000, 0.000000 -1942, -3.000000, 128.000000, 102.000000, 0.000000 -1943, -3.000000, 128.000000, 102.000000, 0.000000 -1944, -3.000000, 128.000000, 102.000000, 0.000000 -1945, -3.000000, 128.000000, 102.000000, 0.000000 -1946, -3.000000, 128.000000, 102.000000, 0.000000 -1947, -3.000000, 128.000000, 102.000000, 0.000000 -1948, -3.000000, 128.000000, 102.000000, 0.000000 -1949, -3.000000, 128.000000, 102.000000, 0.000000 -1950, -3.000000, 128.000000, 102.000000, 0.000000 -1951, -3.000000, 128.000000, 102.000000, 0.000000 -1952, -3.000000, 128.000000, 102.000000, 0.000000 -1953, -3.000000, 128.000000, 102.000000, 0.000000 -1954, -3.000000, 128.000000, 102.000000, 0.000000 -1955, -3.000000, 128.000000, 102.000000, 0.000000 -1956, -3.000000, 128.000000, 102.000000, 0.000000 -1957, -3.000000, 128.000000, 102.000000, 0.000000 -1958, -3.000000, 128.000000, 102.000000, 0.000000 -1959, -3.000000, 128.000000, 102.000000, 0.000000 -1960, -3.000000, 128.000000, 102.000000, 0.000000 -1961, -3.000000, 128.000000, 102.000000, 0.000000 -1962, -3.000000, 128.000000, 102.000000, 0.000000 -1963, -3.000000, 128.000000, 102.000000, 0.000000 -1964, -3.000000, 128.000000, 102.000000, 0.000000 -1965, -3.000000, 128.000000, 102.000000, 0.000000 -1966, -3.000000, 128.000000, 102.000000, 0.000000 -1967, -3.000000, 128.000000, 102.000000, 0.000000 -1968, -3.000000, 128.000000, 102.000000, 0.000000 -1969, -3.000000, 128.000000, 102.000000, 0.000000 -1970, -3.000000, 128.000000, 102.000000, 0.000000 -1971, -3.000000, 128.000000, 102.000000, 0.000000 -1972, -3.000000, 128.000000, 102.000000, 0.000000 -1973, -3.000000, 128.000000, 102.000000, 0.000000 -1974, -3.000000, 128.000000, 102.000000, 0.000000 -1975, -3.000000, 128.000000, 102.000000, 0.000000 -1976, -3.000000, 128.000000, 102.000000, 0.000000 -1977, -3.000000, 128.000000, 102.000000, 0.000000 -1978, -3.000000, 128.000000, 102.000000, 0.000000 -1979, -3.000000, 128.000000, 102.000000, 0.000000 -1980, -3.000000, 128.000000, 102.000000, 0.000000 -1981, -3.000000, 128.000000, 102.000000, 0.000000 -1982, -3.000000, 128.000000, 102.000000, 0.000000 -1983, -3.000000, 128.000000, 102.000000, 0.000000 -1984, -3.000000, 128.000000, 102.000000, 0.000000 -1985, -3.000000, 128.000000, 102.000000, 0.000000 -1986, -3.000000, 128.000000, 102.000000, 0.000000 -1987, -3.000000, 128.000000, 102.000000, 0.000000 -1988, -3.000000, 128.000000, 102.000000, 0.000000 -1989, -3.000000, 128.000000, 102.000000, 0.000000 -1990, -3.000000, 128.000000, 102.000000, 0.000000 -1991, -3.000000, 128.000000, 102.000000, 0.000000 -1992, -3.000000, 128.000000, 102.000000, 0.000000 -1993, -3.000000, 128.000000, 102.000000, 0.000000 -1994, -3.000000, 128.000000, 102.000000, 0.000000 -1995, -3.000000, 128.000000, 102.000000, 0.000000 -1996, -3.000000, 128.000000, 102.000000, 0.000000 -1997, -3.000000, 128.000000, 102.000000, 0.000000 -1998, -3.000000, 128.000000, 102.000000, 0.000000 -1999, -3.000000, 128.000000, 102.000000, 0.000000 -2000, -3.000000, 130.000000, 105.000000, 0.000000 -2001, -3.000000, 130.000000, 105.000000, 0.000000 -2002, -3.000000, 130.000000, 105.000000, 0.000000 -2003, -3.000000, 130.000000, 105.000000, 0.000000 -2004, -3.000000, 130.000000, 105.000000, 0.000000 -2005, -3.000000, 130.000000, 105.000000, 0.000000 -2006, -3.000000, 130.000000, 105.000000, 0.000000 -2007, -3.000000, 130.000000, 105.000000, 0.000000 -2008, -3.000000, 130.000000, 105.000000, 0.000000 -2009, -3.000000, 130.000000, 105.000000, 0.000000 -2010, -3.000000, 130.000000, 105.000000, 0.000000 -2011, -3.000000, 130.000000, 105.000000, 0.000000 -2012, -3.000000, 130.000000, 105.000000, 0.000000 -2013, -3.000000, 130.000000, 105.000000, 0.000000 -2014, -3.000000, 130.000000, 105.000000, 0.000000 -2015, -3.000000, 130.000000, 105.000000, 0.000000 -2016, -3.000000, 130.000000, 105.000000, 0.000000 -2017, -3.000000, 130.000000, 105.000000, 0.000000 -2018, -3.000000, 130.000000, 105.000000, 0.000000 -2019, -3.000000, 130.000000, 105.000000, 0.000000 -2020, -3.000000, 130.000000, 105.000000, 0.000000 -2021, -3.000000, 130.000000, 105.000000, 0.000000 -2022, -3.000000, 130.000000, 105.000000, 0.000000 -2023, -3.000000, 130.000000, 105.000000, 0.000000 -2024, -3.000000, 130.000000, 105.000000, 0.000000 -2025, -3.000000, 130.000000, 105.000000, 0.000000 -2026, -3.000000, 130.000000, 105.000000, 0.000000 -2027, -3.000000, 130.000000, 105.000000, 0.000000 -2028, -3.000000, 130.000000, 105.000000, 0.000000 -2029, -3.000000, 130.000000, 105.000000, 0.000000 -2030, -3.000000, 130.000000, 105.000000, 0.000000 -2031, -3.000000, 130.000000, 105.000000, 0.000000 -2032, -3.000000, 130.000000, 105.000000, 0.000000 -2033, -3.000000, 130.000000, 105.000000, 0.000000 -2034, -3.000000, 130.000000, 105.000000, 0.000000 -2035, -3.000000, 130.000000, 105.000000, 0.000000 -2036, -3.000000, 130.000000, 105.000000, 0.000000 -2037, -3.000000, 130.000000, 105.000000, 0.000000 -2038, -3.000000, 130.000000, 105.000000, 0.000000 -2039, -3.000000, 130.000000, 105.000000, 0.000000 -2040, -3.000000, 130.000000, 105.000000, 0.000000 -2041, -3.000000, 130.000000, 105.000000, 0.000000 -2042, -3.000000, 130.000000, 105.000000, 0.000000 -2043, -3.000000, 130.000000, 105.000000, 0.000000 -2044, -3.000000, 130.000000, 105.000000, 0.000000 -2045, -3.000000, 130.000000, 105.000000, 0.000000 -2046, -3.000000, 130.000000, 105.000000, 0.000000 -2047, -3.000000, 130.000000, 105.000000, 0.000000 -2048, -3.000000, 130.000000, 105.000000, 0.000000 -2049, -3.000000, 130.000000, 105.000000, 0.000000 -2050, -3.000000, 130.000000, 105.000000, 0.000000 -2051, -3.000000, 130.000000, 105.000000, 0.000000 -2052, -3.000000, 130.000000, 105.000000, 0.000000 -2053, -3.000000, 130.000000, 105.000000, 0.000000 -2054, -3.000000, 130.000000, 105.000000, 0.000000 -2055, -3.000000, 130.000000, 105.000000, 0.000000 -2056, -3.000000, 130.000000, 105.000000, 0.000000 -2057, -3.000000, 130.000000, 105.000000, 0.000000 -2058, -3.000000, 130.000000, 105.000000, 0.000000 -2059, -3.000000, 130.000000, 105.000000, 0.000000 -2060, -3.000000, 130.000000, 105.000000, 0.000000 -2061, -3.000000, 130.000000, 105.000000, 0.000000 -2062, -3.000000, 130.000000, 105.000000, 0.000000 -2063, -3.000000, 130.000000, 105.000000, 0.000000 -2064, -3.000000, 130.000000, 105.000000, 0.000000 -2065, -3.000000, 130.000000, 105.000000, 0.000000 -2066, -3.000000, 130.000000, 105.000000, 0.000000 -2067, -3.000000, 130.000000, 105.000000, 0.000000 -2068, -3.000000, 130.000000, 105.000000, 0.000000 -2069, -3.000000, 130.000000, 105.000000, 0.000000 -2070, -3.000000, 130.000000, 105.000000, 0.000000 -2071, -3.000000, 130.000000, 105.000000, 0.000000 -2072, -3.000000, 130.000000, 105.000000, 0.000000 -2073, -3.000000, 130.000000, 105.000000, 0.000000 -2074, -3.000000, 130.000000, 105.000000, 0.000000 -2075, -3.000000, 130.000000, 105.000000, 0.000000 -2076, -3.000000, 130.000000, 105.000000, 0.000000 -2077, -3.000000, 130.000000, 105.000000, 0.000000 -2078, -3.000000, 130.000000, 105.000000, 0.000000 -2079, -3.000000, 130.000000, 105.000000, 0.000000 -2080, -3.000000, 130.000000, 105.000000, 0.000000 -2081, -3.000000, 130.000000, 105.000000, 0.000000 -2082, -3.000000, 130.000000, 105.000000, 0.000000 -2083, -3.000000, 130.000000, 105.000000, 0.000000 -2084, -3.000000, 130.000000, 105.000000, 0.000000 -2085, -3.000000, 130.000000, 105.000000, 0.000000 -2086, -3.000000, 130.000000, 105.000000, 0.000000 -2087, -3.000000, 130.000000, 105.000000, 0.000000 -2088, -3.000000, 130.000000, 105.000000, 0.000000 -2089, -3.000000, 130.000000, 105.000000, 0.000000 -2090, -3.000000, 130.000000, 105.000000, 0.000000 -2091, -3.000000, 130.000000, 105.000000, 0.000000 -2092, -3.000000, 130.000000, 105.000000, 0.000000 -2093, -3.000000, 130.000000, 105.000000, 0.000000 -2094, -3.000000, 130.000000, 105.000000, 0.000000 -2095, -3.000000, 130.000000, 105.000000, 0.000000 -2096, -3.000000, 130.000000, 105.000000, 0.000000 -2097, -3.000000, 130.000000, 105.000000, 0.000000 -2098, -3.000000, 130.000000, 105.000000, 0.000000 -2099, -3.000000, 130.000000, 105.000000, 0.000000 -2100, -3.000000, 132.000000, 108.000000, 0.000000 -2101, -3.000000, 132.000000, 108.000000, 0.000000 -2102, -3.000000, 132.000000, 108.000000, 0.000000 -2103, -3.000000, 132.000000, 108.000000, 0.000000 -2104, -3.000000, 132.000000, 108.000000, 0.000000 -2105, -3.000000, 132.000000, 108.000000, 0.000000 -2106, -3.000000, 132.000000, 108.000000, 0.000000 -2107, -3.000000, 132.000000, 108.000000, 0.000000 -2108, -3.000000, 132.000000, 108.000000, 0.000000 -2109, -3.000000, 132.000000, 108.000000, 0.000000 -2110, -3.000000, 132.000000, 108.000000, 0.000000 -2111, -3.000000, 132.000000, 108.000000, 0.000000 -2112, -3.000000, 132.000000, 108.000000, 0.000000 -2113, -3.000000, 132.000000, 108.000000, 0.000000 -2114, -3.000000, 132.000000, 108.000000, 0.000000 -2115, -3.000000, 132.000000, 108.000000, 0.000000 -2116, -3.000000, 132.000000, 108.000000, 0.000000 -2117, -3.000000, 132.000000, 108.000000, 0.000000 -2118, -3.000000, 132.000000, 108.000000, 0.000000 -2119, -3.000000, 132.000000, 108.000000, 0.000000 -2120, -3.000000, 132.000000, 108.000000, 0.000000 -2121, -3.000000, 132.000000, 108.000000, 0.000000 -2122, -3.000000, 132.000000, 108.000000, 0.000000 -2123, -3.000000, 132.000000, 108.000000, 0.000000 -2124, -3.000000, 132.000000, 108.000000, 0.000000 -2125, -3.000000, 132.000000, 108.000000, 0.000000 -2126, -3.000000, 132.000000, 108.000000, 0.000000 -2127, -3.000000, 132.000000, 108.000000, 0.000000 -2128, -3.000000, 132.000000, 108.000000, 0.000000 -2129, -3.000000, 132.000000, 108.000000, 0.000000 -2130, -3.000000, 132.000000, 108.000000, 0.000000 -2131, -3.000000, 132.000000, 108.000000, 0.000000 -2132, -3.000000, 132.000000, 108.000000, 0.000000 -2133, -3.000000, 132.000000, 108.000000, 0.000000 -2134, -3.000000, 132.000000, 108.000000, 0.000000 -2135, -3.000000, 132.000000, 108.000000, 0.000000 -2136, -3.000000, 132.000000, 108.000000, 0.000000 -2137, -3.000000, 132.000000, 108.000000, 0.000000 -2138, -3.000000, 132.000000, 108.000000, 0.000000 -2139, -3.000000, 132.000000, 108.000000, 0.000000 -2140, -3.000000, 132.000000, 108.000000, 0.000000 -2141, -3.000000, 132.000000, 108.000000, 0.000000 -2142, -3.000000, 132.000000, 108.000000, 0.000000 -2143, -3.000000, 132.000000, 108.000000, 0.000000 -2144, -3.000000, 132.000000, 108.000000, 0.000000 -2145, -3.000000, 132.000000, 108.000000, 0.000000 -2146, -3.000000, 132.000000, 108.000000, 0.000000 -2147, -3.000000, 132.000000, 108.000000, 0.000000 -2148, -3.000000, 132.000000, 108.000000, 0.000000 -2149, -3.000000, 132.000000, 108.000000, 0.000000 -2150, -3.000000, 132.000000, 108.000000, 0.000000 -2151, -3.000000, 132.000000, 108.000000, 0.000000 -2152, -3.000000, 132.000000, 108.000000, 0.000000 -2153, -3.000000, 132.000000, 108.000000, 0.000000 -2154, -3.000000, 132.000000, 108.000000, 0.000000 -2155, -3.000000, 132.000000, 108.000000, 0.000000 -2156, -3.000000, 132.000000, 108.000000, 0.000000 -2157, -3.000000, 132.000000, 108.000000, 0.000000 -2158, -3.000000, 132.000000, 108.000000, 0.000000 -2159, -3.000000, 132.000000, 108.000000, 0.000000 -2160, -3.000000, 132.000000, 108.000000, 0.000000 -2161, -3.000000, 132.000000, 108.000000, 0.000000 -2162, -3.000000, 132.000000, 108.000000, 0.000000 -2163, -3.000000, 132.000000, 108.000000, 0.000000 -2164, -3.000000, 132.000000, 108.000000, 0.000000 -2165, -3.000000, 132.000000, 108.000000, 0.000000 -2166, -3.000000, 132.000000, 108.000000, 0.000000 -2167, -3.000000, 132.000000, 108.000000, 0.000000 -2168, -3.000000, 132.000000, 108.000000, 0.000000 -2169, -3.000000, 132.000000, 108.000000, 0.000000 -2170, -3.000000, 132.000000, 108.000000, 0.000000 -2171, -3.000000, 132.000000, 108.000000, 0.000000 -2172, -3.000000, 132.000000, 108.000000, 0.000000 -2173, -3.000000, 132.000000, 108.000000, 0.000000 -2174, -3.000000, 132.000000, 108.000000, 0.000000 -2175, -3.000000, 132.000000, 108.000000, 0.000000 -2176, -3.000000, 132.000000, 108.000000, 0.000000 -2177, -3.000000, 132.000000, 108.000000, 0.000000 -2178, -3.000000, 132.000000, 108.000000, 0.000000 -2179, -3.000000, 132.000000, 108.000000, 0.000000 -2180, -3.000000, 132.000000, 108.000000, 0.000000 -2181, -3.000000, 132.000000, 108.000000, 0.000000 -2182, -3.000000, 132.000000, 108.000000, 0.000000 -2183, -3.000000, 132.000000, 108.000000, 0.000000 -2184, -3.000000, 132.000000, 108.000000, 0.000000 -2185, -3.000000, 132.000000, 108.000000, 0.000000 -2186, -3.000000, 132.000000, 108.000000, 0.000000 -2187, -3.000000, 132.000000, 108.000000, 0.000000 -2188, -3.000000, 132.000000, 108.000000, 0.000000 -2189, -3.000000, 132.000000, 108.000000, 0.000000 -2190, -3.000000, 132.000000, 108.000000, 0.000000 -2191, -3.000000, 132.000000, 108.000000, 0.000000 -2192, -3.000000, 132.000000, 108.000000, 0.000000 -2193, -3.000000, 132.000000, 108.000000, 0.000000 -2194, -3.000000, 132.000000, 108.000000, 0.000000 -2195, -3.000000, 132.000000, 108.000000, 0.000000 -2196, -3.000000, 132.000000, 108.000000, 0.000000 -2197, -3.000000, 132.000000, 108.000000, 0.000000 -2198, -3.000000, 132.000000, 108.000000, 0.000000 -2199, -3.000000, 132.000000, 108.000000, 0.000000 -2200, -3.000000, 134.000000, 111.000000, 0.000000 -2201, -3.000000, 134.000000, 111.000000, 0.000000 -2202, -3.000000, 134.000000, 111.000000, 0.000000 -2203, -3.000000, 134.000000, 111.000000, 0.000000 -2204, -3.000000, 134.000000, 111.000000, 0.000000 -2205, -3.000000, 134.000000, 111.000000, 0.000000 -2206, -3.000000, 134.000000, 111.000000, 0.000000 -2207, -3.000000, 134.000000, 111.000000, 0.000000 -2208, -3.000000, 134.000000, 111.000000, 0.000000 -2209, -3.000000, 134.000000, 111.000000, 0.000000 -2210, -3.000000, 134.000000, 111.000000, 0.000000 -2211, -3.000000, 134.000000, 111.000000, 0.000000 -2212, -3.000000, 134.000000, 111.000000, 0.000000 -2213, -3.000000, 134.000000, 111.000000, 0.000000 -2214, -3.000000, 134.000000, 111.000000, 0.000000 -2215, -3.000000, 134.000000, 111.000000, 0.000000 -2216, -3.000000, 134.000000, 111.000000, 0.000000 -2217, -3.000000, 134.000000, 111.000000, 0.000000 -2218, -3.000000, 134.000000, 111.000000, 0.000000 -2219, -3.000000, 134.000000, 111.000000, 0.000000 -2220, -3.000000, 134.000000, 111.000000, 0.000000 -2221, -3.000000, 134.000000, 111.000000, 0.000000 -2222, -3.000000, 134.000000, 111.000000, 0.000000 -2223, -3.000000, 134.000000, 111.000000, 0.000000 -2224, -3.000000, 134.000000, 111.000000, 0.000000 -2225, -3.000000, 134.000000, 111.000000, 0.000000 -2226, -3.000000, 134.000000, 111.000000, 0.000000 -2227, -3.000000, 134.000000, 111.000000, 0.000000 -2228, -3.000000, 134.000000, 111.000000, 0.000000 -2229, -3.000000, 134.000000, 111.000000, 0.000000 -2230, -3.000000, 134.000000, 111.000000, 0.000000 -2231, -3.000000, 134.000000, 111.000000, 0.000000 -2232, -3.000000, 134.000000, 111.000000, 0.000000 -2233, -3.000000, 134.000000, 111.000000, 0.000000 -2234, -3.000000, 134.000000, 111.000000, 0.000000 -2235, -3.000000, 134.000000, 111.000000, 0.000000 -2236, -3.000000, 134.000000, 111.000000, 0.000000 -2237, -3.000000, 134.000000, 111.000000, 0.000000 -2238, -3.000000, 134.000000, 111.000000, 0.000000 -2239, -3.000000, 134.000000, 111.000000, 0.000000 -2240, -3.000000, 134.000000, 111.000000, 0.000000 -2241, -3.000000, 134.000000, 111.000000, 0.000000 -2242, -3.000000, 134.000000, 111.000000, 0.000000 -2243, -3.000000, 134.000000, 111.000000, 0.000000 -2244, -3.000000, 134.000000, 111.000000, 0.000000 -2245, -3.000000, 134.000000, 111.000000, 0.000000 -2246, -3.000000, 134.000000, 111.000000, 0.000000 -2247, -3.000000, 134.000000, 111.000000, 0.000000 -2248, -3.000000, 134.000000, 111.000000, 0.000000 -2249, -3.000000, 134.000000, 111.000000, 0.000000 -2250, -3.000000, 134.000000, 111.000000, 0.000000 -2251, -3.000000, 134.000000, 111.000000, 0.000000 -2252, -3.000000, 134.000000, 111.000000, 0.000000 -2253, -3.000000, 134.000000, 111.000000, 0.000000 -2254, -3.000000, 134.000000, 111.000000, 0.000000 -2255, -3.000000, 134.000000, 111.000000, 0.000000 -2256, -3.000000, 134.000000, 111.000000, 0.000000 -2257, -3.000000, 134.000000, 111.000000, 0.000000 -2258, -3.000000, 134.000000, 111.000000, 0.000000 -2259, -3.000000, 134.000000, 111.000000, 0.000000 -2260, -3.000000, 134.000000, 111.000000, 0.000000 -2261, -3.000000, 134.000000, 111.000000, 0.000000 -2262, -3.000000, 134.000000, 111.000000, 0.000000 -2263, -3.000000, 134.000000, 111.000000, 0.000000 -2264, -3.000000, 134.000000, 111.000000, 0.000000 -2265, -3.000000, 134.000000, 111.000000, 0.000000 -2266, -3.000000, 134.000000, 111.000000, 0.000000 -2267, -3.000000, 134.000000, 111.000000, 0.000000 -2268, -3.000000, 134.000000, 111.000000, 0.000000 -2269, -3.000000, 134.000000, 111.000000, 0.000000 -2270, -3.000000, 134.000000, 111.000000, 0.000000 -2271, -3.000000, 134.000000, 111.000000, 0.000000 -2272, -3.000000, 134.000000, 111.000000, 0.000000 -2273, -3.000000, 134.000000, 111.000000, 0.000000 -2274, -3.000000, 134.000000, 111.000000, 0.000000 -2275, -3.000000, 134.000000, 111.000000, 0.000000 -2276, -3.000000, 134.000000, 111.000000, 0.000000 -2277, -3.000000, 134.000000, 111.000000, 0.000000 -2278, -3.000000, 134.000000, 111.000000, 0.000000 -2279, -3.000000, 134.000000, 111.000000, 0.000000 -2280, -3.000000, 134.000000, 111.000000, 0.000000 -2281, -3.000000, 134.000000, 111.000000, 0.000000 -2282, -3.000000, 134.000000, 111.000000, 0.000000 -2283, -3.000000, 134.000000, 111.000000, 0.000000 -2284, -3.000000, 134.000000, 111.000000, 0.000000 -2285, -3.000000, 134.000000, 111.000000, 0.000000 -2286, -3.000000, 134.000000, 111.000000, 0.000000 -2287, -3.000000, 134.000000, 111.000000, 0.000000 -2288, -3.000000, 134.000000, 111.000000, 0.000000 -2289, -3.000000, 134.000000, 111.000000, 0.000000 -2290, -3.000000, 134.000000, 111.000000, 0.000000 -2291, -3.000000, 134.000000, 111.000000, 0.000000 -2292, -3.000000, 134.000000, 111.000000, 0.000000 -2293, -3.000000, 134.000000, 111.000000, 0.000000 -2294, -3.000000, 134.000000, 111.000000, 0.000000 -2295, -3.000000, 134.000000, 111.000000, 0.000000 -2296, -3.000000, 134.000000, 111.000000, 0.000000 -2297, -3.000000, 134.000000, 111.000000, 0.000000 -2298, -3.000000, 134.000000, 111.000000, 0.000000 -2299, -3.000000, 134.000000, 111.000000, 0.000000 -2300, -3.000000, 136.000000, 114.000000, 0.000000 -2301, -3.000000, 136.000000, 114.000000, 0.000000 -2302, -3.000000, 136.000000, 114.000000, 0.000000 -2303, -3.000000, 136.000000, 114.000000, 0.000000 -2304, -3.000000, 136.000000, 114.000000, 0.000000 -2305, -3.000000, 136.000000, 114.000000, 0.000000 -2306, -3.000000, 136.000000, 114.000000, 0.000000 -2307, -3.000000, 136.000000, 114.000000, 0.000000 -2308, -3.000000, 136.000000, 114.000000, 0.000000 -2309, -3.000000, 136.000000, 114.000000, 0.000000 -2310, -3.000000, 136.000000, 114.000000, 0.000000 -2311, -3.000000, 136.000000, 114.000000, 0.000000 -2312, -3.000000, 136.000000, 114.000000, 0.000000 -2313, -3.000000, 136.000000, 114.000000, 0.000000 -2314, -3.000000, 136.000000, 114.000000, 0.000000 -2315, -3.000000, 136.000000, 114.000000, 0.000000 -2316, -3.000000, 136.000000, 114.000000, 0.000000 -2317, -3.000000, 136.000000, 114.000000, 0.000000 -2318, -3.000000, 136.000000, 114.000000, 0.000000 -2319, -3.000000, 136.000000, 114.000000, 0.000000 -2320, -3.000000, 136.000000, 114.000000, 0.000000 -2321, -3.000000, 136.000000, 114.000000, 0.000000 -2322, -3.000000, 136.000000, 114.000000, 0.000000 -2323, -3.000000, 136.000000, 114.000000, 0.000000 -2324, -3.000000, 136.000000, 114.000000, 0.000000 -2325, -3.000000, 136.000000, 114.000000, 0.000000 -2326, -3.000000, 136.000000, 114.000000, 0.000000 -2327, -3.000000, 136.000000, 114.000000, 0.000000 -2328, -3.000000, 136.000000, 114.000000, 0.000000 -2329, -3.000000, 136.000000, 114.000000, 0.000000 -2330, -3.000000, 136.000000, 114.000000, 0.000000 -2331, -3.000000, 136.000000, 114.000000, 0.000000 -2332, -3.000000, 136.000000, 114.000000, 0.000000 -2333, -3.000000, 136.000000, 114.000000, 0.000000 -2334, -3.000000, 136.000000, 114.000000, 0.000000 -2335, -3.000000, 136.000000, 114.000000, 0.000000 -2336, -3.000000, 136.000000, 114.000000, 0.000000 -2337, -3.000000, 136.000000, 114.000000, 0.000000 -2338, -3.000000, 136.000000, 114.000000, 0.000000 -2339, -3.000000, 136.000000, 114.000000, 0.000000 -2340, -3.000000, 136.000000, 114.000000, 0.000000 -2341, -3.000000, 136.000000, 114.000000, 0.000000 -2342, -3.000000, 136.000000, 114.000000, 0.000000 -2343, -3.000000, 136.000000, 114.000000, 0.000000 -2344, -3.000000, 136.000000, 114.000000, 0.000000 -2345, -3.000000, 136.000000, 114.000000, 0.000000 -2346, -3.000000, 136.000000, 114.000000, 0.000000 -2347, -3.000000, 136.000000, 114.000000, 0.000000 -2348, -3.000000, 136.000000, 114.000000, 0.000000 -2349, -3.000000, 136.000000, 114.000000, 0.000000 -2350, -3.000000, 136.000000, 114.000000, 0.000000 -2351, -3.000000, 136.000000, 114.000000, 0.000000 -2352, -3.000000, 136.000000, 114.000000, 0.000000 -2353, -3.000000, 136.000000, 114.000000, 0.000000 -2354, -3.000000, 136.000000, 114.000000, 0.000000 -2355, -3.000000, 136.000000, 114.000000, 0.000000 -2356, -3.000000, 136.000000, 114.000000, 0.000000 -2357, -3.000000, 136.000000, 114.000000, 0.000000 -2358, -3.000000, 136.000000, 114.000000, 0.000000 -2359, -3.000000, 136.000000, 114.000000, 0.000000 -2360, -3.000000, 136.000000, 114.000000, 0.000000 -2361, -3.000000, 136.000000, 114.000000, 0.000000 -2362, -3.000000, 136.000000, 114.000000, 0.000000 -2363, -3.000000, 136.000000, 114.000000, 0.000000 -2364, -3.000000, 136.000000, 114.000000, 0.000000 -2365, -3.000000, 136.000000, 114.000000, 0.000000 -2366, -3.000000, 136.000000, 114.000000, 0.000000 -2367, -3.000000, 136.000000, 114.000000, 0.000000 -2368, -3.000000, 136.000000, 114.000000, 0.000000 -2369, -3.000000, 136.000000, 114.000000, 0.000000 -2370, -3.000000, 136.000000, 114.000000, 0.000000 -2371, -3.000000, 136.000000, 114.000000, 0.000000 -2372, -3.000000, 136.000000, 114.000000, 0.000000 -2373, -3.000000, 136.000000, 114.000000, 0.000000 -2374, -3.000000, 136.000000, 114.000000, 0.000000 -2375, -3.000000, 136.000000, 114.000000, 0.000000 -2376, -3.000000, 136.000000, 114.000000, 0.000000 -2377, -3.000000, 136.000000, 114.000000, 0.000000 -2378, -3.000000, 136.000000, 114.000000, 0.000000 -2379, -3.000000, 136.000000, 114.000000, 0.000000 -2380, -3.000000, 136.000000, 114.000000, 0.000000 -2381, -3.000000, 136.000000, 114.000000, 0.000000 -2382, -3.000000, 136.000000, 114.000000, 0.000000 -2383, -3.000000, 136.000000, 114.000000, 0.000000 -2384, -3.000000, 136.000000, 114.000000, 0.000000 -2385, -3.000000, 136.000000, 114.000000, 0.000000 -2386, -3.000000, 136.000000, 114.000000, 0.000000 -2387, -3.000000, 136.000000, 114.000000, 0.000000 -2388, -3.000000, 136.000000, 114.000000, 0.000000 -2389, -3.000000, 136.000000, 114.000000, 0.000000 -2390, -3.000000, 136.000000, 114.000000, 0.000000 -2391, -3.000000, 136.000000, 114.000000, 0.000000 -2392, -3.000000, 136.000000, 114.000000, 0.000000 -2393, -3.000000, 136.000000, 114.000000, 0.000000 -2394, -3.000000, 136.000000, 114.000000, 0.000000 -2395, -3.000000, 136.000000, 114.000000, 0.000000 -2396, -3.000000, 136.000000, 114.000000, 0.000000 -2397, -3.000000, 136.000000, 114.000000, 0.000000 -2398, -3.000000, 136.000000, 114.000000, 0.000000 -2399, -3.000000, 136.000000, 114.000000, 0.000000 -2400, -3.000000, 138.000000, 117.000000, 0.000000 -2401, -3.000000, 138.000000, 117.000000, 0.000000 -2402, -3.000000, 138.000000, 117.000000, 0.000000 -2403, -3.000000, 138.000000, 117.000000, 0.000000 -2404, -3.000000, 138.000000, 117.000000, 0.000000 -2405, -3.000000, 138.000000, 117.000000, 0.000000 -2406, -3.000000, 138.000000, 117.000000, 0.000000 -2407, -3.000000, 138.000000, 117.000000, 0.000000 -2408, -3.000000, 138.000000, 117.000000, 0.000000 -2409, -3.000000, 138.000000, 117.000000, 0.000000 -2410, -3.000000, 138.000000, 117.000000, 0.000000 -2411, -3.000000, 138.000000, 117.000000, 0.000000 -2412, -3.000000, 138.000000, 117.000000, 0.000000 -2413, -3.000000, 138.000000, 117.000000, 0.000000 -2414, -3.000000, 138.000000, 117.000000, 0.000000 -2415, -3.000000, 138.000000, 117.000000, 0.000000 -2416, -3.000000, 138.000000, 117.000000, 0.000000 -2417, -3.000000, 138.000000, 117.000000, 0.000000 -2418, -3.000000, 138.000000, 117.000000, 0.000000 -2419, -3.000000, 138.000000, 117.000000, 0.000000 -2420, -3.000000, 138.000000, 117.000000, 0.000000 -2421, -3.000000, 138.000000, 117.000000, 0.000000 -2422, -3.000000, 138.000000, 117.000000, 0.000000 -2423, -3.000000, 138.000000, 117.000000, 0.000000 -2424, -3.000000, 138.000000, 117.000000, 0.000000 -2425, -3.000000, 138.000000, 117.000000, 0.000000 -2426, -3.000000, 138.000000, 117.000000, 0.000000 -2427, -3.000000, 138.000000, 117.000000, 0.000000 -2428, -3.000000, 138.000000, 117.000000, 0.000000 -2429, -3.000000, 138.000000, 117.000000, 0.000000 -2430, -3.000000, 138.000000, 117.000000, 0.000000 -2431, -3.000000, 138.000000, 117.000000, 0.000000 -2432, -3.000000, 138.000000, 117.000000, 0.000000 -2433, -3.000000, 138.000000, 117.000000, 0.000000 -2434, -3.000000, 138.000000, 117.000000, 0.000000 -2435, -3.000000, 138.000000, 117.000000, 0.000000 -2436, -3.000000, 138.000000, 117.000000, 0.000000 -2437, -3.000000, 138.000000, 117.000000, 0.000000 -2438, -3.000000, 138.000000, 117.000000, 0.000000 -2439, -3.000000, 138.000000, 117.000000, 0.000000 -2440, -3.000000, 138.000000, 117.000000, 0.000000 -2441, -3.000000, 138.000000, 117.000000, 0.000000 -2442, -3.000000, 138.000000, 117.000000, 0.000000 -2443, -3.000000, 138.000000, 117.000000, 0.000000 -2444, -3.000000, 138.000000, 117.000000, 0.000000 -2445, -3.000000, 138.000000, 117.000000, 0.000000 -2446, -3.000000, 138.000000, 117.000000, 0.000000 -2447, -3.000000, 138.000000, 117.000000, 0.000000 -2448, -3.000000, 138.000000, 117.000000, 0.000000 -2449, -3.000000, 138.000000, 117.000000, 0.000000 -2450, -3.000000, 138.000000, 117.000000, 0.000000 -2451, -3.000000, 138.000000, 117.000000, 0.000000 -2452, -3.000000, 138.000000, 117.000000, 0.000000 -2453, -3.000000, 138.000000, 117.000000, 0.000000 -2454, -3.000000, 138.000000, 117.000000, 0.000000 -2455, -3.000000, 138.000000, 117.000000, 0.000000 -2456, -3.000000, 138.000000, 117.000000, 0.000000 -2457, -3.000000, 138.000000, 117.000000, 0.000000 -2458, -3.000000, 138.000000, 117.000000, 0.000000 -2459, -3.000000, 138.000000, 117.000000, 0.000000 -2460, -3.000000, 138.000000, 117.000000, 0.000000 -2461, -3.000000, 138.000000, 117.000000, 0.000000 -2462, -3.000000, 138.000000, 117.000000, 0.000000 -2463, -3.000000, 138.000000, 117.000000, 0.000000 -2464, -3.000000, 138.000000, 117.000000, 0.000000 -2465, -3.000000, 138.000000, 117.000000, 0.000000 -2466, -3.000000, 138.000000, 117.000000, 0.000000 -2467, -3.000000, 138.000000, 117.000000, 0.000000 -2468, -3.000000, 138.000000, 117.000000, 0.000000 -2469, -3.000000, 138.000000, 117.000000, 0.000000 -2470, -3.000000, 138.000000, 117.000000, 0.000000 -2471, -3.000000, 138.000000, 117.000000, 0.000000 -2472, -3.000000, 138.000000, 117.000000, 0.000000 -2473, -3.000000, 138.000000, 117.000000, 0.000000 -2474, -3.000000, 138.000000, 117.000000, 0.000000 -2475, -3.000000, 138.000000, 117.000000, 0.000000 -2476, -3.000000, 138.000000, 117.000000, 0.000000 -2477, -3.000000, 138.000000, 117.000000, 0.000000 -2478, -3.000000, 138.000000, 117.000000, 0.000000 -2479, -3.000000, 138.000000, 117.000000, 0.000000 -2480, -3.000000, 138.000000, 117.000000, 0.000000 -2481, -3.000000, 138.000000, 117.000000, 0.000000 -2482, -3.000000, 138.000000, 117.000000, 0.000000 -2483, -3.000000, 138.000000, 117.000000, 0.000000 -2484, -3.000000, 138.000000, 117.000000, 0.000000 -2485, -3.000000, 138.000000, 117.000000, 0.000000 -2486, -3.000000, 138.000000, 117.000000, 0.000000 -2487, -3.000000, 138.000000, 117.000000, 0.000000 -2488, -3.000000, 138.000000, 117.000000, 0.000000 -2489, -3.000000, 138.000000, 117.000000, 0.000000 -2490, -3.000000, 138.000000, 117.000000, 0.000000 -2491, -3.000000, 138.000000, 117.000000, 0.000000 -2492, -3.000000, 138.000000, 117.000000, 0.000000 -2493, -3.000000, 138.000000, 117.000000, 0.000000 -2494, -3.000000, 138.000000, 117.000000, 0.000000 -2495, -3.000000, 138.000000, 117.000000, 0.000000 -2496, -3.000000, 138.000000, 117.000000, 0.000000 -2497, -3.000000, 138.000000, 117.000000, 0.000000 -2498, -3.000000, 138.000000, 117.000000, 0.000000 -2499, -3.000000, 138.000000, 117.000000, 0.000000 -2500, -3.000000, 140.000000, 120.000000, 0.000000 -2501, -3.000000, 140.000000, 120.000000, 0.000000 -2502, -3.000000, 140.000000, 120.000000, 0.000000 -2503, -3.000000, 140.000000, 120.000000, 0.000000 -2504, -3.000000, 140.000000, 120.000000, 0.000000 -2505, -3.000000, 140.000000, 120.000000, 0.000000 -2506, -3.000000, 140.000000, 120.000000, 0.000000 -2507, -3.000000, 140.000000, 120.000000, 0.000000 -2508, -3.000000, 140.000000, 120.000000, 0.000000 -2509, -3.000000, 140.000000, 120.000000, 0.000000 -2510, -3.000000, 140.000000, 120.000000, 0.000000 -2511, -3.000000, 140.000000, 120.000000, 0.000000 -2512, -3.000000, 140.000000, 120.000000, 0.000000 -2513, -3.000000, 140.000000, 120.000000, 0.000000 -2514, -3.000000, 140.000000, 120.000000, 0.000000 -2515, -3.000000, 140.000000, 120.000000, 0.000000 -2516, -3.000000, 140.000000, 120.000000, 0.000000 -2517, -3.000000, 140.000000, 120.000000, 0.000000 -2518, -3.000000, 140.000000, 120.000000, 0.000000 -2519, -3.000000, 140.000000, 120.000000, 0.000000 -2520, -3.000000, 140.000000, 120.000000, 0.000000 -2521, -3.000000, 140.000000, 120.000000, 0.000000 -2522, -3.000000, 140.000000, 120.000000, 0.000000 -2523, -3.000000, 140.000000, 120.000000, 0.000000 -2524, -3.000000, 140.000000, 120.000000, 0.000000 -2525, -3.000000, 140.000000, 120.000000, 0.000000 -2526, -3.000000, 140.000000, 120.000000, 0.000000 -2527, -3.000000, 140.000000, 120.000000, 0.000000 -2528, -3.000000, 140.000000, 120.000000, 0.000000 -2529, -3.000000, 140.000000, 120.000000, 0.000000 -2530, -3.000000, 140.000000, 120.000000, 0.000000 -2531, -3.000000, 140.000000, 120.000000, 0.000000 -2532, -3.000000, 140.000000, 120.000000, 0.000000 -2533, -3.000000, 140.000000, 120.000000, 0.000000 -2534, -3.000000, 140.000000, 120.000000, 0.000000 -2535, -3.000000, 140.000000, 120.000000, 0.000000 -2536, -3.000000, 140.000000, 120.000000, 0.000000 -2537, -3.000000, 140.000000, 120.000000, 0.000000 -2538, -3.000000, 140.000000, 120.000000, 0.000000 -2539, -3.000000, 140.000000, 120.000000, 0.000000 -2540, -3.000000, 140.000000, 120.000000, 0.000000 -2541, -3.000000, 140.000000, 120.000000, 0.000000 -2542, -3.000000, 140.000000, 120.000000, 0.000000 -2543, -3.000000, 140.000000, 120.000000, 0.000000 -2544, -3.000000, 140.000000, 120.000000, 0.000000 -2545, -3.000000, 140.000000, 120.000000, 0.000000 -2546, -3.000000, 140.000000, 120.000000, 0.000000 -2547, -3.000000, 140.000000, 120.000000, 0.000000 -2548, -3.000000, 140.000000, 120.000000, 0.000000 -2549, -3.000000, 140.000000, 120.000000, 0.000000 -2550, -3.000000, 140.000000, 120.000000, 0.000000 -2551, -3.000000, 140.000000, 120.000000, 0.000000 -2552, -3.000000, 140.000000, 120.000000, 0.000000 -2553, -3.000000, 140.000000, 120.000000, 0.000000 -2554, -3.000000, 140.000000, 120.000000, 0.000000 -2555, -3.000000, 140.000000, 120.000000, 0.000000 -2556, -3.000000, 140.000000, 120.000000, 0.000000 -2557, -3.000000, 140.000000, 120.000000, 0.000000 -2558, -3.000000, 140.000000, 120.000000, 0.000000 -2559, -3.000000, 140.000000, 120.000000, 0.000000 -2560, -3.000000, 140.000000, 120.000000, 0.000000 -2561, -3.000000, 140.000000, 120.000000, 0.000000 -2562, -3.000000, 140.000000, 120.000000, 0.000000 -2563, -3.000000, 140.000000, 120.000000, 0.000000 -2564, -3.000000, 140.000000, 120.000000, 0.000000 -2565, -3.000000, 140.000000, 120.000000, 0.000000 -2566, -3.000000, 140.000000, 120.000000, 0.000000 -2567, -3.000000, 140.000000, 120.000000, 0.000000 -2568, -3.000000, 140.000000, 120.000000, 0.000000 -2569, -3.000000, 140.000000, 120.000000, 0.000000 -2570, -3.000000, 140.000000, 120.000000, 0.000000 -2571, -3.000000, 140.000000, 120.000000, 0.000000 -2572, -3.000000, 140.000000, 120.000000, 0.000000 -2573, -3.000000, 140.000000, 120.000000, 0.000000 -2574, -3.000000, 140.000000, 120.000000, 0.000000 -2575, -3.000000, 140.000000, 120.000000, 0.000000 -2576, -3.000000, 140.000000, 120.000000, 0.000000 -2577, -3.000000, 140.000000, 120.000000, 0.000000 -2578, -3.000000, 140.000000, 120.000000, 0.000000 -2579, -3.000000, 140.000000, 120.000000, 0.000000 -2580, -3.000000, 140.000000, 120.000000, 0.000000 -2581, -3.000000, 140.000000, 120.000000, 0.000000 -2582, -3.000000, 140.000000, 120.000000, 0.000000 -2583, -3.000000, 140.000000, 120.000000, 0.000000 -2584, -3.000000, 140.000000, 120.000000, 0.000000 -2585, -3.000000, 140.000000, 120.000000, 0.000000 -2586, -3.000000, 140.000000, 120.000000, 0.000000 -2587, -3.000000, 140.000000, 120.000000, 0.000000 -2588, -3.000000, 140.000000, 120.000000, 0.000000 -2589, -3.000000, 140.000000, 120.000000, 0.000000 -2590, -3.000000, 140.000000, 120.000000, 0.000000 -2591, -3.000000, 140.000000, 120.000000, 0.000000 -2592, -3.000000, 140.000000, 120.000000, 0.000000 -2593, -3.000000, 140.000000, 120.000000, 0.000000 -2594, -3.000000, 140.000000, 120.000000, 0.000000 -2595, -3.000000, 140.000000, 120.000000, 0.000000 -2596, -3.000000, 140.000000, 120.000000, 0.000000 -2597, -3.000000, 140.000000, 120.000000, 0.000000 -2598, -3.000000, 140.000000, 120.000000, 0.000000 -2599, -3.000000, 140.000000, 120.000000, 0.000000 -2600, -3.000000, 142.000000, 123.000000, 0.000000 -2601, -3.000000, 142.000000, 123.000000, 0.000000 -2602, -3.000000, 142.000000, 123.000000, 0.000000 -2603, -3.000000, 142.000000, 123.000000, 0.000000 -2604, -3.000000, 142.000000, 123.000000, 0.000000 -2605, -3.000000, 142.000000, 123.000000, 0.000000 -2606, -3.000000, 142.000000, 123.000000, 0.000000 -2607, -3.000000, 142.000000, 123.000000, 0.000000 -2608, -3.000000, 142.000000, 123.000000, 0.000000 -2609, -3.000000, 142.000000, 123.000000, 0.000000 -2610, -3.000000, 142.000000, 123.000000, 0.000000 -2611, -3.000000, 142.000000, 123.000000, 0.000000 -2612, -3.000000, 142.000000, 123.000000, 0.000000 -2613, -3.000000, 142.000000, 123.000000, 0.000000 -2614, -3.000000, 142.000000, 123.000000, 0.000000 -2615, -3.000000, 142.000000, 123.000000, 0.000000 -2616, -3.000000, 142.000000, 123.000000, 0.000000 -2617, -3.000000, 142.000000, 123.000000, 0.000000 -2618, -3.000000, 142.000000, 123.000000, 0.000000 -2619, -3.000000, 142.000000, 123.000000, 0.000000 -2620, -3.000000, 142.000000, 123.000000, 0.000000 -2621, -3.000000, 142.000000, 123.000000, 0.000000 -2622, -3.000000, 142.000000, 123.000000, 0.000000 -2623, -3.000000, 142.000000, 123.000000, 0.000000 -2624, -3.000000, 142.000000, 123.000000, 0.000000 -2625, -3.000000, 142.000000, 123.000000, 0.000000 -2626, -3.000000, 142.000000, 123.000000, 0.000000 -2627, -3.000000, 142.000000, 123.000000, 0.000000 -2628, -3.000000, 142.000000, 123.000000, 0.000000 -2629, -3.000000, 142.000000, 123.000000, 0.000000 -2630, -3.000000, 142.000000, 123.000000, 0.000000 -2631, -3.000000, 142.000000, 123.000000, 0.000000 -2632, -3.000000, 142.000000, 123.000000, 0.000000 -2633, -3.000000, 142.000000, 123.000000, 0.000000 -2634, -3.000000, 142.000000, 123.000000, 0.000000 -2635, -3.000000, 142.000000, 123.000000, 0.000000 -2636, -3.000000, 142.000000, 123.000000, 0.000000 -2637, -3.000000, 142.000000, 123.000000, 0.000000 -2638, -3.000000, 142.000000, 123.000000, 0.000000 -2639, -3.000000, 142.000000, 123.000000, 0.000000 -2640, -3.000000, 142.000000, 123.000000, 0.000000 -2641, -3.000000, 142.000000, 123.000000, 0.000000 -2642, -3.000000, 142.000000, 123.000000, 0.000000 -2643, -3.000000, 142.000000, 123.000000, 0.000000 -2644, -3.000000, 142.000000, 123.000000, 0.000000 -2645, -3.000000, 142.000000, 123.000000, 0.000000 -2646, -3.000000, 142.000000, 123.000000, 0.000000 -2647, -3.000000, 142.000000, 123.000000, 0.000000 -2648, -3.000000, 142.000000, 123.000000, 0.000000 -2649, -3.000000, 142.000000, 123.000000, 0.000000 -2650, -3.000000, 142.000000, 123.000000, 0.000000 -2651, -3.000000, 142.000000, 123.000000, 0.000000 -2652, -3.000000, 142.000000, 123.000000, 0.000000 -2653, -3.000000, 142.000000, 123.000000, 0.000000 -2654, -3.000000, 142.000000, 123.000000, 0.000000 -2655, -3.000000, 142.000000, 123.000000, 0.000000 -2656, -3.000000, 142.000000, 123.000000, 0.000000 -2657, -3.000000, 142.000000, 123.000000, 0.000000 -2658, -3.000000, 142.000000, 123.000000, 0.000000 -2659, -3.000000, 142.000000, 123.000000, 0.000000 -2660, -3.000000, 142.000000, 123.000000, 0.000000 -2661, -3.000000, 142.000000, 123.000000, 0.000000 -2662, -3.000000, 142.000000, 123.000000, 0.000000 -2663, -3.000000, 142.000000, 123.000000, 0.000000 -2664, -3.000000, 142.000000, 123.000000, 0.000000 -2665, -3.000000, 142.000000, 123.000000, 0.000000 -2666, -3.000000, 142.000000, 123.000000, 0.000000 -2667, -3.000000, 142.000000, 123.000000, 0.000000 -2668, -3.000000, 142.000000, 123.000000, 0.000000 -2669, -3.000000, 142.000000, 123.000000, 0.000000 -2670, -3.000000, 142.000000, 123.000000, 0.000000 -2671, -3.000000, 142.000000, 123.000000, 0.000000 -2672, -3.000000, 142.000000, 123.000000, 0.000000 -2673, -3.000000, 142.000000, 123.000000, 0.000000 -2674, -3.000000, 142.000000, 123.000000, 0.000000 -2675, -3.000000, 142.000000, 123.000000, 0.000000 -2676, -3.000000, 142.000000, 123.000000, 0.000000 -2677, -3.000000, 142.000000, 123.000000, 0.000000 -2678, -3.000000, 142.000000, 123.000000, 0.000000 -2679, -3.000000, 142.000000, 123.000000, 0.000000 -2680, -3.000000, 142.000000, 123.000000, 0.000000 -2681, -3.000000, 142.000000, 123.000000, 0.000000 -2682, -3.000000, 142.000000, 123.000000, 0.000000 -2683, -3.000000, 142.000000, 123.000000, 0.000000 -2684, -3.000000, 142.000000, 123.000000, 0.000000 -2685, -3.000000, 142.000000, 123.000000, 0.000000 -2686, -3.000000, 142.000000, 123.000000, 0.000000 -2687, -3.000000, 142.000000, 123.000000, 0.000000 -2688, -3.000000, 142.000000, 123.000000, 0.000000 -2689, -3.000000, 142.000000, 123.000000, 0.000000 -2690, -3.000000, 142.000000, 123.000000, 0.000000 -2691, -3.000000, 142.000000, 123.000000, 0.000000 -2692, -3.000000, 142.000000, 123.000000, 0.000000 -2693, -3.000000, 142.000000, 123.000000, 0.000000 -2694, -3.000000, 142.000000, 123.000000, 0.000000 -2695, -3.000000, 142.000000, 123.000000, 0.000000 -2696, -3.000000, 142.000000, 123.000000, 0.000000 -2697, -3.000000, 142.000000, 123.000000, 0.000000 -2698, -3.000000, 142.000000, 123.000000, 0.000000 -2699, -3.000000, 142.000000, 123.000000, 0.000000 -2700, -3.000000, 144.000000, 126.000000, 0.000000 -2701, -3.000000, 144.000000, 126.000000, 0.000000 -2702, -3.000000, 144.000000, 126.000000, 0.000000 -2703, -3.000000, 144.000000, 126.000000, 0.000000 -2704, -3.000000, 144.000000, 126.000000, 0.000000 -2705, -3.000000, 144.000000, 126.000000, 0.000000 -2706, -3.000000, 144.000000, 126.000000, 0.000000 -2707, -3.000000, 144.000000, 126.000000, 0.000000 -2708, -3.000000, 144.000000, 126.000000, 0.000000 -2709, -3.000000, 144.000000, 126.000000, 0.000000 -2710, -3.000000, 144.000000, 126.000000, 0.000000 -2711, -3.000000, 144.000000, 126.000000, 0.000000 -2712, -3.000000, 144.000000, 126.000000, 0.000000 -2713, -3.000000, 144.000000, 126.000000, 0.000000 -2714, -3.000000, 144.000000, 126.000000, 0.000000 -2715, -3.000000, 144.000000, 126.000000, 0.000000 -2716, -3.000000, 144.000000, 126.000000, 0.000000 -2717, -3.000000, 144.000000, 126.000000, 0.000000 -2718, -3.000000, 144.000000, 126.000000, 0.000000 -2719, -3.000000, 144.000000, 126.000000, 0.000000 -2720, -3.000000, 144.000000, 126.000000, 0.000000 -2721, -3.000000, 144.000000, 126.000000, 0.000000 -2722, -3.000000, 144.000000, 126.000000, 0.000000 -2723, -3.000000, 144.000000, 126.000000, 0.000000 -2724, -3.000000, 144.000000, 126.000000, 0.000000 -2725, -3.000000, 144.000000, 126.000000, 0.000000 -2726, -3.000000, 144.000000, 126.000000, 0.000000 -2727, -3.000000, 144.000000, 126.000000, 0.000000 -2728, -3.000000, 144.000000, 126.000000, 0.000000 -2729, -3.000000, 144.000000, 126.000000, 0.000000 -2730, -3.000000, 144.000000, 126.000000, 0.000000 -2731, -3.000000, 144.000000, 126.000000, 0.000000 -2732, -3.000000, 144.000000, 126.000000, 0.000000 -2733, -3.000000, 144.000000, 126.000000, 0.000000 -2734, -3.000000, 144.000000, 126.000000, 0.000000 -2735, -3.000000, 144.000000, 126.000000, 0.000000 -2736, -3.000000, 144.000000, 126.000000, 0.000000 -2737, -3.000000, 144.000000, 126.000000, 0.000000 -2738, -3.000000, 144.000000, 126.000000, 0.000000 -2739, -3.000000, 144.000000, 126.000000, 0.000000 -2740, -3.000000, 144.000000, 126.000000, 0.000000 -2741, -3.000000, 144.000000, 126.000000, 0.000000 -2742, -3.000000, 144.000000, 126.000000, 0.000000 -2743, -3.000000, 144.000000, 126.000000, 0.000000 -2744, -3.000000, 144.000000, 126.000000, 0.000000 -2745, -3.000000, 144.000000, 126.000000, 0.000000 -2746, -3.000000, 144.000000, 126.000000, 0.000000 -2747, -3.000000, 144.000000, 126.000000, 0.000000 -2748, -3.000000, 144.000000, 126.000000, 0.000000 -2749, -3.000000, 144.000000, 126.000000, 0.000000 -2750, -3.000000, 144.000000, 126.000000, 0.000000 -2751, -3.000000, 144.000000, 126.000000, 0.000000 -2752, -3.000000, 144.000000, 126.000000, 0.000000 -2753, -3.000000, 144.000000, 126.000000, 0.000000 -2754, -3.000000, 144.000000, 126.000000, 0.000000 -2755, -3.000000, 144.000000, 126.000000, 0.000000 -2756, -3.000000, 144.000000, 126.000000, 0.000000 -2757, -3.000000, 144.000000, 126.000000, 0.000000 -2758, -3.000000, 144.000000, 126.000000, 0.000000 -2759, -3.000000, 144.000000, 126.000000, 0.000000 -2760, -3.000000, 144.000000, 126.000000, 0.000000 -2761, -3.000000, 144.000000, 126.000000, 0.000000 -2762, -3.000000, 144.000000, 126.000000, 0.000000 -2763, -3.000000, 144.000000, 126.000000, 0.000000 -2764, -3.000000, 144.000000, 126.000000, 0.000000 -2765, -3.000000, 144.000000, 126.000000, 0.000000 -2766, -3.000000, 144.000000, 126.000000, 0.000000 -2767, -3.000000, 144.000000, 126.000000, 0.000000 -2768, -3.000000, 144.000000, 126.000000, 0.000000 -2769, -3.000000, 144.000000, 126.000000, 0.000000 -2770, -3.000000, 144.000000, 126.000000, 0.000000 -2771, -3.000000, 144.000000, 126.000000, 0.000000 -2772, -3.000000, 144.000000, 126.000000, 0.000000 -2773, -3.000000, 144.000000, 126.000000, 0.000000 -2774, -3.000000, 144.000000, 126.000000, 0.000000 -2775, -3.000000, 144.000000, 126.000000, 0.000000 -2776, -3.000000, 144.000000, 126.000000, 0.000000 -2777, -3.000000, 144.000000, 126.000000, 0.000000 -2778, -3.000000, 144.000000, 126.000000, 0.000000 -2779, -3.000000, 144.000000, 126.000000, 0.000000 -2780, -3.000000, 144.000000, 126.000000, 0.000000 -2781, -3.000000, 144.000000, 126.000000, 0.000000 -2782, -3.000000, 144.000000, 126.000000, 0.000000 -2783, -3.000000, 144.000000, 126.000000, 0.000000 -2784, -3.000000, 144.000000, 126.000000, 0.000000 -2785, -3.000000, 144.000000, 126.000000, 0.000000 -2786, -3.000000, 144.000000, 126.000000, 0.000000 -2787, -3.000000, 144.000000, 126.000000, 0.000000 -2788, -3.000000, 144.000000, 126.000000, 0.000000 -2789, -3.000000, 144.000000, 126.000000, 0.000000 -2790, -3.000000, 144.000000, 126.000000, 0.000000 -2791, -3.000000, 144.000000, 126.000000, 0.000000 -2792, -3.000000, 144.000000, 126.000000, 0.000000 -2793, -3.000000, 144.000000, 126.000000, 0.000000 -2794, -3.000000, 144.000000, 126.000000, 0.000000 -2795, -3.000000, 144.000000, 126.000000, 0.000000 -2796, -3.000000, 144.000000, 126.000000, 0.000000 -2797, -3.000000, 144.000000, 126.000000, 0.000000 -2798, -3.000000, 144.000000, 126.000000, 0.000000 -2799, -3.000000, 144.000000, 126.000000, 0.000000 -2800, -3.000000, 146.000000, 129.000000, 0.000000 -2801, -3.000000, 146.000000, 129.000000, 0.000000 -2802, -3.000000, 146.000000, 129.000000, 0.000000 -2803, -3.000000, 146.000000, 129.000000, 0.000000 -2804, -3.000000, 146.000000, 129.000000, 0.000000 -2805, -3.000000, 146.000000, 129.000000, 0.000000 -2806, -3.000000, 146.000000, 129.000000, 0.000000 -2807, -3.000000, 146.000000, 129.000000, 0.000000 -2808, -3.000000, 146.000000, 129.000000, 0.000000 -2809, -3.000000, 146.000000, 129.000000, 0.000000 -2810, -3.000000, 146.000000, 129.000000, 0.000000 -2811, -3.000000, 146.000000, 129.000000, 0.000000 -2812, -3.000000, 146.000000, 129.000000, 0.000000 -2813, -3.000000, 146.000000, 129.000000, 0.000000 -2814, -3.000000, 146.000000, 129.000000, 0.000000 -2815, -3.000000, 146.000000, 129.000000, 0.000000 -2816, -3.000000, 146.000000, 129.000000, 0.000000 -2817, -3.000000, 146.000000, 129.000000, 0.000000 -2818, -3.000000, 146.000000, 129.000000, 0.000000 -2819, -3.000000, 146.000000, 129.000000, 0.000000 -2820, -3.000000, 146.000000, 129.000000, 0.000000 -2821, -3.000000, 146.000000, 129.000000, 0.000000 -2822, -3.000000, 146.000000, 129.000000, 0.000000 -2823, -3.000000, 146.000000, 129.000000, 0.000000 -2824, -3.000000, 146.000000, 129.000000, 0.000000 -2825, -3.000000, 146.000000, 129.000000, 0.000000 -2826, -3.000000, 146.000000, 129.000000, 0.000000 -2827, -3.000000, 146.000000, 129.000000, 0.000000 -2828, -3.000000, 146.000000, 129.000000, 0.000000 -2829, -3.000000, 146.000000, 129.000000, 0.000000 -2830, -3.000000, 146.000000, 129.000000, 0.000000 -2831, -3.000000, 146.000000, 129.000000, 0.000000 -2832, -3.000000, 146.000000, 129.000000, 0.000000 -2833, -3.000000, 146.000000, 129.000000, 0.000000 -2834, -3.000000, 146.000000, 129.000000, 0.000000 -2835, -3.000000, 146.000000, 129.000000, 0.000000 -2836, -3.000000, 146.000000, 129.000000, 0.000000 -2837, -3.000000, 146.000000, 129.000000, 0.000000 -2838, -3.000000, 146.000000, 129.000000, 0.000000 -2839, -3.000000, 146.000000, 129.000000, 0.000000 -2840, -3.000000, 146.000000, 129.000000, 0.000000 -2841, -3.000000, 146.000000, 129.000000, 0.000000 -2842, -3.000000, 146.000000, 129.000000, 0.000000 -2843, -3.000000, 146.000000, 129.000000, 0.000000 -2844, -3.000000, 146.000000, 129.000000, 0.000000 -2845, -3.000000, 146.000000, 129.000000, 0.000000 -2846, -3.000000, 146.000000, 129.000000, 0.000000 -2847, -3.000000, 146.000000, 129.000000, 0.000000 -2848, -3.000000, 146.000000, 129.000000, 0.000000 -2849, -3.000000, 146.000000, 129.000000, 0.000000 -2850, -3.000000, 146.000000, 129.000000, 0.000000 -2851, -3.000000, 146.000000, 129.000000, 0.000000 -2852, -3.000000, 146.000000, 129.000000, 0.000000 -2853, -3.000000, 146.000000, 129.000000, 0.000000 -2854, -3.000000, 146.000000, 129.000000, 0.000000 -2855, -3.000000, 146.000000, 129.000000, 0.000000 -2856, -3.000000, 146.000000, 129.000000, 0.000000 -2857, -3.000000, 146.000000, 129.000000, 0.000000 -2858, -3.000000, 146.000000, 129.000000, 0.000000 -2859, -3.000000, 146.000000, 129.000000, 0.000000 -2860, -3.000000, 146.000000, 129.000000, 0.000000 -2861, -3.000000, 146.000000, 129.000000, 0.000000 -2862, -3.000000, 146.000000, 129.000000, 0.000000 -2863, -3.000000, 146.000000, 129.000000, 0.000000 -2864, -3.000000, 146.000000, 129.000000, 0.000000 -2865, -3.000000, 146.000000, 129.000000, 0.000000 -2866, -3.000000, 146.000000, 129.000000, 0.000000 -2867, -3.000000, 146.000000, 129.000000, 0.000000 -2868, -3.000000, 146.000000, 129.000000, 0.000000 -2869, -3.000000, 146.000000, 129.000000, 0.000000 -2870, -3.000000, 146.000000, 129.000000, 0.000000 -2871, -3.000000, 146.000000, 129.000000, 0.000000 -2872, -3.000000, 146.000000, 129.000000, 0.000000 -2873, -3.000000, 146.000000, 129.000000, 0.000000 -2874, -3.000000, 146.000000, 129.000000, 0.000000 -2875, -3.000000, 146.000000, 129.000000, 0.000000 -2876, -3.000000, 146.000000, 129.000000, 0.000000 -2877, -3.000000, 146.000000, 129.000000, 0.000000 -2878, -3.000000, 146.000000, 129.000000, 0.000000 -2879, -3.000000, 146.000000, 129.000000, 0.000000 -2880, -3.000000, 146.000000, 129.000000, 0.000000 -2881, -3.000000, 146.000000, 129.000000, 0.000000 -2882, -3.000000, 146.000000, 129.000000, 0.000000 -2883, -3.000000, 146.000000, 129.000000, 0.000000 -2884, -3.000000, 146.000000, 129.000000, 0.000000 -2885, -3.000000, 146.000000, 129.000000, 0.000000 -2886, -3.000000, 146.000000, 129.000000, 0.000000 -2887, -3.000000, 146.000000, 129.000000, 0.000000 -2888, -3.000000, 146.000000, 129.000000, 0.000000 -2889, -3.000000, 146.000000, 129.000000, 0.000000 -2890, -3.000000, 146.000000, 129.000000, 0.000000 -2891, -3.000000, 146.000000, 129.000000, 0.000000 -2892, -3.000000, 146.000000, 129.000000, 0.000000 -2893, -3.000000, 146.000000, 129.000000, 0.000000 -2894, -3.000000, 146.000000, 129.000000, 0.000000 -2895, -3.000000, 146.000000, 129.000000, 0.000000 -2896, -3.000000, 146.000000, 129.000000, 0.000000 -2897, -3.000000, 146.000000, 129.000000, 0.000000 -2898, -3.000000, 146.000000, 129.000000, 0.000000 -2899, -3.000000, 146.000000, 129.000000, 0.000000 -2900, -3.000000, 148.000000, 132.000000, 0.000000 -2901, -3.000000, 148.000000, 132.000000, 0.000000 -2902, -3.000000, 148.000000, 132.000000, 0.000000 -2903, -3.000000, 148.000000, 132.000000, 0.000000 -2904, -3.000000, 148.000000, 132.000000, 0.000000 -2905, -3.000000, 148.000000, 132.000000, 0.000000 -2906, -3.000000, 148.000000, 132.000000, 0.000000 -2907, -3.000000, 148.000000, 132.000000, 0.000000 -2908, -3.000000, 148.000000, 132.000000, 0.000000 -2909, -3.000000, 148.000000, 132.000000, 0.000000 -2910, -3.000000, 148.000000, 132.000000, 0.000000 -2911, -3.000000, 148.000000, 132.000000, 0.000000 -2912, -3.000000, 148.000000, 132.000000, 0.000000 -2913, -3.000000, 148.000000, 132.000000, 0.000000 -2914, -3.000000, 148.000000, 132.000000, 0.000000 -2915, -3.000000, 148.000000, 132.000000, 0.000000 -2916, -3.000000, 148.000000, 132.000000, 0.000000 -2917, -3.000000, 148.000000, 132.000000, 0.000000 -2918, -3.000000, 148.000000, 132.000000, 0.000000 -2919, -3.000000, 148.000000, 132.000000, 0.000000 -2920, -3.000000, 148.000000, 132.000000, 0.000000 -2921, -3.000000, 148.000000, 132.000000, 0.000000 -2922, -3.000000, 148.000000, 132.000000, 0.000000 -2923, -3.000000, 148.000000, 132.000000, 0.000000 -2924, -3.000000, 148.000000, 132.000000, 0.000000 -2925, -3.000000, 148.000000, 132.000000, 0.000000 -2926, -3.000000, 148.000000, 132.000000, 0.000000 -2927, -3.000000, 148.000000, 132.000000, 0.000000 -2928, -3.000000, 148.000000, 132.000000, 0.000000 -2929, -3.000000, 148.000000, 132.000000, 0.000000 -2930, -3.000000, 148.000000, 132.000000, 0.000000 -2931, -3.000000, 148.000000, 132.000000, 0.000000 -2932, -3.000000, 148.000000, 132.000000, 0.000000 -2933, -3.000000, 148.000000, 132.000000, 0.000000 -2934, -3.000000, 148.000000, 132.000000, 0.000000 -2935, -3.000000, 148.000000, 132.000000, 0.000000 -2936, -3.000000, 148.000000, 132.000000, 0.000000 -2937, -3.000000, 148.000000, 132.000000, 0.000000 -2938, -3.000000, 148.000000, 132.000000, 0.000000 -2939, -3.000000, 148.000000, 132.000000, 0.000000 -2940, -3.000000, 148.000000, 132.000000, 0.000000 -2941, -3.000000, 148.000000, 132.000000, 0.000000 -2942, -3.000000, 148.000000, 132.000000, 0.000000 -2943, -3.000000, 148.000000, 132.000000, 0.000000 -2944, -3.000000, 148.000000, 132.000000, 0.000000 -2945, -3.000000, 148.000000, 132.000000, 0.000000 -2946, -3.000000, 148.000000, 132.000000, 0.000000 -2947, -3.000000, 148.000000, 132.000000, 0.000000 -2948, -3.000000, 148.000000, 132.000000, 0.000000 -2949, -3.000000, 148.000000, 132.000000, 0.000000 -2950, -3.000000, 148.000000, 132.000000, 0.000000 -2951, -3.000000, 148.000000, 132.000000, 0.000000 -2952, -3.000000, 148.000000, 132.000000, 0.000000 -2953, -3.000000, 148.000000, 132.000000, 0.000000 -2954, -3.000000, 148.000000, 132.000000, 0.000000 -2955, -3.000000, 148.000000, 132.000000, 0.000000 -2956, -3.000000, 148.000000, 132.000000, 0.000000 -2957, -3.000000, 148.000000, 132.000000, 0.000000 -2958, -3.000000, 148.000000, 132.000000, 0.000000 -2959, -3.000000, 148.000000, 132.000000, 0.000000 -2960, -3.000000, 148.000000, 132.000000, 0.000000 -2961, -3.000000, 148.000000, 132.000000, 0.000000 -2962, -3.000000, 148.000000, 132.000000, 0.000000 -2963, -3.000000, 148.000000, 132.000000, 0.000000 -2964, -3.000000, 148.000000, 132.000000, 0.000000 -2965, -3.000000, 148.000000, 132.000000, 0.000000 -2966, -3.000000, 148.000000, 132.000000, 0.000000 -2967, -3.000000, 148.000000, 132.000000, 0.000000 -2968, -3.000000, 148.000000, 132.000000, 0.000000 -2969, -3.000000, 148.000000, 132.000000, 0.000000 -2970, -3.000000, 148.000000, 132.000000, 0.000000 -2971, -3.000000, 148.000000, 132.000000, 0.000000 -2972, -3.000000, 148.000000, 132.000000, 0.000000 -2973, -3.000000, 148.000000, 132.000000, 0.000000 -2974, -3.000000, 148.000000, 132.000000, 0.000000 -2975, -3.000000, 148.000000, 132.000000, 0.000000 -2976, -3.000000, 148.000000, 132.000000, 0.000000 -2977, -3.000000, 148.000000, 132.000000, 0.000000 -2978, -3.000000, 148.000000, 132.000000, 0.000000 -2979, -3.000000, 148.000000, 132.000000, 0.000000 -2980, -3.000000, 148.000000, 132.000000, 0.000000 -2981, -3.000000, 148.000000, 132.000000, 0.000000 -2982, -3.000000, 148.000000, 132.000000, 0.000000 -2983, -3.000000, 148.000000, 132.000000, 0.000000 -2984, -3.000000, 148.000000, 132.000000, 0.000000 -2985, -3.000000, 148.000000, 132.000000, 0.000000 -2986, -3.000000, 148.000000, 132.000000, 0.000000 -2987, -3.000000, 148.000000, 132.000000, 0.000000 -2988, -3.000000, 148.000000, 132.000000, 0.000000 -2989, -3.000000, 148.000000, 132.000000, 0.000000 -2990, -3.000000, 148.000000, 132.000000, 0.000000 -2991, -3.000000, 148.000000, 132.000000, 0.000000 -2992, -3.000000, 148.000000, 132.000000, 0.000000 -2993, -3.000000, 148.000000, 132.000000, 0.000000 -2994, -3.000000, 148.000000, 132.000000, 0.000000 -2995, -3.000000, 148.000000, 132.000000, 0.000000 -2996, -3.000000, 148.000000, 132.000000, 0.000000 -2997, -3.000000, 148.000000, 132.000000, 0.000000 -2998, -3.000000, 148.000000, 132.000000, 0.000000 -2999, -3.000000, 148.000000, 132.000000, 0.000000 -3000, -3.000000, 150.000000, 135.000000, 0.000000 -3001, -3.000000, 150.000000, 135.000000, 0.000000 -3002, -3.000000, 150.000000, 135.000000, 0.000000 -3003, -3.000000, 150.000000, 135.000000, 0.000000 -3004, -3.000000, 150.000000, 135.000000, 0.000000 -3005, -3.000000, 150.000000, 135.000000, 0.000000 -3006, -3.000000, 150.000000, 135.000000, 0.000000 -3007, -3.000000, 150.000000, 135.000000, 0.000000 -3008, -3.000000, 150.000000, 135.000000, 0.000000 -3009, -3.000000, 150.000000, 135.000000, 0.000000 -3010, -3.000000, 150.000000, 135.000000, 0.000000 -3011, -3.000000, 150.000000, 135.000000, 0.000000 -3012, -3.000000, 150.000000, 135.000000, 0.000000 -3013, -3.000000, 150.000000, 135.000000, 0.000000 -3014, -3.000000, 150.000000, 135.000000, 0.000000 -3015, -3.000000, 150.000000, 135.000000, 0.000000 -3016, -3.000000, 150.000000, 135.000000, 0.000000 -3017, -3.000000, 150.000000, 135.000000, 0.000000 -3018, -3.000000, 150.000000, 135.000000, 0.000000 -3019, -3.000000, 150.000000, 135.000000, 0.000000 -3020, -3.000000, 150.000000, 135.000000, 0.000000 -3021, -3.000000, 150.000000, 135.000000, 0.000000 -3022, -3.000000, 150.000000, 135.000000, 0.000000 -3023, -3.000000, 150.000000, 135.000000, 0.000000 -3024, -3.000000, 150.000000, 135.000000, 0.000000 -3025, -3.000000, 150.000000, 135.000000, 0.000000 -3026, -3.000000, 150.000000, 135.000000, 0.000000 -3027, -3.000000, 150.000000, 135.000000, 0.000000 -3028, -3.000000, 150.000000, 135.000000, 0.000000 -3029, -3.000000, 150.000000, 135.000000, 0.000000 -3030, -3.000000, 150.000000, 135.000000, 0.000000 -3031, -3.000000, 150.000000, 135.000000, 0.000000 -3032, -3.000000, 150.000000, 135.000000, 0.000000 -3033, -3.000000, 150.000000, 135.000000, 0.000000 -3034, -3.000000, 150.000000, 135.000000, 0.000000 -3035, -3.000000, 150.000000, 135.000000, 0.000000 -3036, -3.000000, 150.000000, 135.000000, 0.000000 -3037, -3.000000, 150.000000, 135.000000, 0.000000 -3038, -3.000000, 150.000000, 135.000000, 0.000000 -3039, -3.000000, 150.000000, 135.000000, 0.000000 -3040, -3.000000, 150.000000, 135.000000, 0.000000 -3041, -3.000000, 150.000000, 135.000000, 0.000000 -3042, -3.000000, 150.000000, 135.000000, 0.000000 -3043, -3.000000, 150.000000, 135.000000, 0.000000 -3044, -3.000000, 150.000000, 135.000000, 0.000000 -3045, -3.000000, 150.000000, 135.000000, 0.000000 -3046, -3.000000, 150.000000, 135.000000, 0.000000 -3047, -3.000000, 150.000000, 135.000000, 0.000000 -3048, -3.000000, 150.000000, 135.000000, 0.000000 -3049, -3.000000, 150.000000, 135.000000, 0.000000 -3050, -3.000000, 150.000000, 135.000000, 0.000000 -3051, -3.000000, 150.000000, 135.000000, 0.000000 -3052, -3.000000, 150.000000, 135.000000, 0.000000 -3053, -3.000000, 150.000000, 135.000000, 0.000000 -3054, -3.000000, 150.000000, 135.000000, 0.000000 -3055, -3.000000, 150.000000, 135.000000, 0.000000 -3056, -3.000000, 150.000000, 135.000000, 0.000000 -3057, -3.000000, 150.000000, 135.000000, 0.000000 -3058, -3.000000, 150.000000, 135.000000, 0.000000 -3059, -3.000000, 150.000000, 135.000000, 0.000000 -3060, -3.000000, 150.000000, 135.000000, 0.000000 -3061, -3.000000, 150.000000, 135.000000, 0.000000 -3062, -3.000000, 150.000000, 135.000000, 0.000000 -3063, -3.000000, 150.000000, 135.000000, 0.000000 -3064, -3.000000, 150.000000, 135.000000, 0.000000 -3065, -3.000000, 150.000000, 135.000000, 0.000000 -3066, -3.000000, 150.000000, 135.000000, 0.000000 -3067, -3.000000, 150.000000, 135.000000, 0.000000 -3068, -3.000000, 150.000000, 135.000000, 0.000000 -3069, -3.000000, 150.000000, 135.000000, 0.000000 -3070, -3.000000, 150.000000, 135.000000, 0.000000 -3071, -3.000000, 150.000000, 135.000000, 0.000000 -3072, -3.000000, 150.000000, 135.000000, 0.000000 -3073, -3.000000, 150.000000, 135.000000, 0.000000 -3074, -3.000000, 150.000000, 135.000000, 0.000000 -3075, -3.000000, 150.000000, 135.000000, 0.000000 -3076, -3.000000, 150.000000, 135.000000, 0.000000 -3077, -3.000000, 150.000000, 135.000000, 0.000000 -3078, -3.000000, 150.000000, 135.000000, 0.000000 -3079, -3.000000, 150.000000, 135.000000, 0.000000 -3080, -3.000000, 150.000000, 135.000000, 0.000000 -3081, -3.000000, 150.000000, 135.000000, 0.000000 -3082, -3.000000, 150.000000, 135.000000, 0.000000 -3083, -3.000000, 150.000000, 135.000000, 0.000000 -3084, -3.000000, 150.000000, 135.000000, 0.000000 -3085, -3.000000, 150.000000, 135.000000, 0.000000 -3086, -3.000000, 150.000000, 135.000000, 0.000000 -3087, -3.000000, 150.000000, 135.000000, 0.000000 -3088, -3.000000, 150.000000, 135.000000, 0.000000 -3089, -3.000000, 150.000000, 135.000000, 0.000000 -3090, -3.000000, 150.000000, 135.000000, 0.000000 -3091, -3.000000, 150.000000, 135.000000, 0.000000 -3092, -3.000000, 150.000000, 135.000000, 0.000000 -3093, -3.000000, 150.000000, 135.000000, 0.000000 -3094, -3.000000, 150.000000, 135.000000, 0.000000 -3095, -3.000000, 150.000000, 135.000000, 0.000000 -3096, -3.000000, 150.000000, 135.000000, 0.000000 -3097, -3.000000, 150.000000, 135.000000, 0.000000 -3098, -3.000000, 150.000000, 135.000000, 0.000000 -3099, -3.000000, 150.000000, 135.000000, 0.000000 -3100, -3.000000, 152.000000, 138.000000, 0.000000 -3101, -3.000000, 152.000000, 138.000000, 0.000000 -3102, -3.000000, 152.000000, 138.000000, 0.000000 -3103, -3.000000, 152.000000, 138.000000, 0.000000 -3104, -3.000000, 152.000000, 138.000000, 0.000000 -3105, -3.000000, 152.000000, 138.000000, 0.000000 -3106, -3.000000, 152.000000, 138.000000, 0.000000 -3107, -3.000000, 152.000000, 138.000000, 0.000000 -3108, -3.000000, 152.000000, 138.000000, 0.000000 -3109, -3.000000, 152.000000, 138.000000, 0.000000 -3110, -3.000000, 152.000000, 138.000000, 0.000000 -3111, -3.000000, 152.000000, 138.000000, 0.000000 -3112, -3.000000, 152.000000, 138.000000, 0.000000 -3113, -3.000000, 152.000000, 138.000000, 0.000000 -3114, -3.000000, 152.000000, 138.000000, 0.000000 -3115, -3.000000, 152.000000, 138.000000, 0.000000 -3116, -3.000000, 152.000000, 138.000000, 0.000000 -3117, -3.000000, 152.000000, 138.000000, 0.000000 -3118, -3.000000, 152.000000, 138.000000, 0.000000 -3119, -3.000000, 152.000000, 138.000000, 0.000000 -3120, -3.000000, 152.000000, 138.000000, 0.000000 -3121, -3.000000, 152.000000, 138.000000, 0.000000 -3122, -3.000000, 152.000000, 138.000000, 0.000000 -3123, -3.000000, 152.000000, 138.000000, 0.000000 -3124, -3.000000, 152.000000, 138.000000, 0.000000 -3125, -3.000000, 152.000000, 138.000000, 0.000000 -3126, -3.000000, 152.000000, 138.000000, 0.000000 -3127, -3.000000, 152.000000, 138.000000, 0.000000 -3128, -3.000000, 152.000000, 138.000000, 0.000000 -3129, -3.000000, 152.000000, 138.000000, 0.000000 -3130, -3.000000, 152.000000, 138.000000, 0.000000 -3131, -3.000000, 152.000000, 138.000000, 0.000000 -3132, -3.000000, 152.000000, 138.000000, 0.000000 -3133, -3.000000, 152.000000, 138.000000, 0.000000 -3134, -3.000000, 152.000000, 138.000000, 0.000000 -3135, -3.000000, 152.000000, 138.000000, 0.000000 -3136, -3.000000, 152.000000, 138.000000, 0.000000 -3137, -3.000000, 152.000000, 138.000000, 0.000000 -3138, -3.000000, 152.000000, 138.000000, 0.000000 -3139, -3.000000, 152.000000, 138.000000, 0.000000 -3140, -3.000000, 152.000000, 138.000000, 0.000000 -3141, -3.000000, 152.000000, 138.000000, 0.000000 -3142, -3.000000, 152.000000, 138.000000, 0.000000 -3143, -3.000000, 152.000000, 138.000000, 0.000000 -3144, -3.000000, 152.000000, 138.000000, 0.000000 -3145, -3.000000, 152.000000, 138.000000, 0.000000 -3146, -3.000000, 152.000000, 138.000000, 0.000000 -3147, -3.000000, 152.000000, 138.000000, 0.000000 -3148, -3.000000, 152.000000, 138.000000, 0.000000 -3149, -3.000000, 152.000000, 138.000000, 0.000000 -3150, -3.000000, 152.000000, 138.000000, 0.000000 -3151, -3.000000, 152.000000, 138.000000, 0.000000 -3152, -3.000000, 152.000000, 138.000000, 0.000000 -3153, -3.000000, 152.000000, 138.000000, 0.000000 -3154, -3.000000, 152.000000, 138.000000, 0.000000 -3155, -3.000000, 152.000000, 138.000000, 0.000000 -3156, -3.000000, 152.000000, 138.000000, 0.000000 -3157, -3.000000, 152.000000, 138.000000, 0.000000 -3158, -3.000000, 152.000000, 138.000000, 0.000000 -3159, -3.000000, 152.000000, 138.000000, 0.000000 -3160, -3.000000, 152.000000, 138.000000, 0.000000 -3161, -3.000000, 152.000000, 138.000000, 0.000000 -3162, -3.000000, 152.000000, 138.000000, 0.000000 -3163, -3.000000, 152.000000, 138.000000, 0.000000 -3164, -3.000000, 152.000000, 138.000000, 0.000000 -3165, -3.000000, 152.000000, 138.000000, 0.000000 -3166, -3.000000, 152.000000, 138.000000, 0.000000 -3167, -3.000000, 152.000000, 138.000000, 0.000000 -3168, -3.000000, 152.000000, 138.000000, 0.000000 -3169, -3.000000, 152.000000, 138.000000, 0.000000 -3170, -3.000000, 152.000000, 138.000000, 0.000000 -3171, -3.000000, 152.000000, 138.000000, 0.000000 -3172, -3.000000, 152.000000, 138.000000, 0.000000 -3173, -3.000000, 152.000000, 138.000000, 0.000000 -3174, -3.000000, 152.000000, 138.000000, 0.000000 -3175, -3.000000, 152.000000, 138.000000, 0.000000 -3176, -3.000000, 152.000000, 138.000000, 0.000000 -3177, -3.000000, 152.000000, 138.000000, 0.000000 -3178, -3.000000, 152.000000, 138.000000, 0.000000 -3179, -3.000000, 152.000000, 138.000000, 0.000000 -3180, -3.000000, 152.000000, 138.000000, 0.000000 -3181, -3.000000, 152.000000, 138.000000, 0.000000 -3182, -3.000000, 152.000000, 138.000000, 0.000000 -3183, -3.000000, 152.000000, 138.000000, 0.000000 -3184, -3.000000, 152.000000, 138.000000, 0.000000 -3185, -3.000000, 152.000000, 138.000000, 0.000000 -3186, -3.000000, 152.000000, 138.000000, 0.000000 -3187, -3.000000, 152.000000, 138.000000, 0.000000 -3188, -3.000000, 152.000000, 138.000000, 0.000000 -3189, -3.000000, 152.000000, 138.000000, 0.000000 -3190, -3.000000, 152.000000, 138.000000, 0.000000 -3191, -3.000000, 152.000000, 138.000000, 0.000000 -3192, -3.000000, 152.000000, 138.000000, 0.000000 -3193, -3.000000, 152.000000, 138.000000, 0.000000 -3194, -3.000000, 152.000000, 138.000000, 0.000000 -3195, -3.000000, 152.000000, 138.000000, 0.000000 -3196, -3.000000, 152.000000, 138.000000, 0.000000 -3197, -3.000000, 152.000000, 138.000000, 0.000000 -3198, -3.000000, 152.000000, 138.000000, 0.000000 -3199, -3.000000, 152.000000, 138.000000, 0.000000 -3200, -3.000000, 154.000000, 141.000000, 0.000000 -3201, -3.000000, 154.000000, 141.000000, 0.000000 -3202, -3.000000, 154.000000, 141.000000, 0.000000 -3203, -3.000000, 154.000000, 141.000000, 0.000000 -3204, -3.000000, 154.000000, 141.000000, 0.000000 -3205, -3.000000, 154.000000, 141.000000, 0.000000 -3206, -3.000000, 154.000000, 141.000000, 0.000000 -3207, -3.000000, 154.000000, 141.000000, 0.000000 -3208, -3.000000, 154.000000, 141.000000, 0.000000 -3209, -3.000000, 154.000000, 141.000000, 0.000000 -3210, -3.000000, 154.000000, 141.000000, 0.000000 -3211, -3.000000, 154.000000, 141.000000, 0.000000 -3212, -3.000000, 154.000000, 141.000000, 0.000000 -3213, -3.000000, 154.000000, 141.000000, 0.000000 -3214, -3.000000, 154.000000, 141.000000, 0.000000 -3215, -3.000000, 154.000000, 141.000000, 0.000000 -3216, -3.000000, 154.000000, 141.000000, 0.000000 -3217, -3.000000, 154.000000, 141.000000, 0.000000 -3218, -3.000000, 154.000000, 141.000000, 0.000000 -3219, -3.000000, 154.000000, 141.000000, 0.000000 -3220, -3.000000, 154.000000, 141.000000, 0.000000 -3221, -3.000000, 154.000000, 141.000000, 0.000000 -3222, -3.000000, 154.000000, 141.000000, 0.000000 -3223, -3.000000, 154.000000, 141.000000, 0.000000 -3224, -3.000000, 154.000000, 141.000000, 0.000000 -3225, -3.000000, 154.000000, 141.000000, 0.000000 -3226, -3.000000, 154.000000, 141.000000, 0.000000 -3227, -3.000000, 154.000000, 141.000000, 0.000000 -3228, -3.000000, 154.000000, 141.000000, 0.000000 -3229, -3.000000, 154.000000, 141.000000, 0.000000 -3230, -3.000000, 154.000000, 141.000000, 0.000000 -3231, -3.000000, 154.000000, 141.000000, 0.000000 -3232, -3.000000, 154.000000, 141.000000, 0.000000 -3233, -3.000000, 154.000000, 141.000000, 0.000000 -3234, -3.000000, 154.000000, 141.000000, 0.000000 -3235, -3.000000, 154.000000, 141.000000, 0.000000 -3236, -3.000000, 154.000000, 141.000000, 0.000000 -3237, -3.000000, 154.000000, 141.000000, 0.000000 -3238, -3.000000, 154.000000, 141.000000, 0.000000 -3239, -3.000000, 154.000000, 141.000000, 0.000000 -3240, -3.000000, 154.000000, 141.000000, 0.000000 -3241, -3.000000, 154.000000, 141.000000, 0.000000 -3242, -3.000000, 154.000000, 141.000000, 0.000000 -3243, -3.000000, 154.000000, 141.000000, 0.000000 -3244, -3.000000, 154.000000, 141.000000, 0.000000 -3245, -3.000000, 154.000000, 141.000000, 0.000000 -3246, -3.000000, 154.000000, 141.000000, 0.000000 -3247, -3.000000, 154.000000, 141.000000, 0.000000 -3248, -3.000000, 154.000000, 141.000000, 0.000000 -3249, -3.000000, 154.000000, 141.000000, 0.000000 -3250, -3.000000, 154.000000, 141.000000, 0.000000 -3251, -3.000000, 154.000000, 141.000000, 0.000000 -3252, -3.000000, 154.000000, 141.000000, 0.000000 -3253, -3.000000, 154.000000, 141.000000, 0.000000 -3254, -3.000000, 154.000000, 141.000000, 0.000000 -3255, -3.000000, 154.000000, 141.000000, 0.000000 -3256, -3.000000, 154.000000, 141.000000, 0.000000 -3257, -3.000000, 154.000000, 141.000000, 0.000000 -3258, -3.000000, 154.000000, 141.000000, 0.000000 -3259, -3.000000, 154.000000, 141.000000, 0.000000 -3260, -3.000000, 154.000000, 141.000000, 0.000000 -3261, -3.000000, 154.000000, 141.000000, 0.000000 -3262, -3.000000, 154.000000, 141.000000, 0.000000 -3263, -3.000000, 154.000000, 141.000000, 0.000000 -3264, -3.000000, 154.000000, 141.000000, 0.000000 -3265, -3.000000, 154.000000, 141.000000, 0.000000 -3266, -3.000000, 154.000000, 141.000000, 0.000000 -3267, -3.000000, 154.000000, 141.000000, 0.000000 -3268, -3.000000, 154.000000, 141.000000, 0.000000 -3269, -3.000000, 154.000000, 141.000000, 0.000000 -3270, -3.000000, 154.000000, 141.000000, 0.000000 -3271, -3.000000, 154.000000, 141.000000, 0.000000 -3272, -3.000000, 154.000000, 141.000000, 0.000000 -3273, -3.000000, 154.000000, 141.000000, 0.000000 -3274, -3.000000, 154.000000, 141.000000, 0.000000 -3275, -3.000000, 154.000000, 141.000000, 0.000000 -3276, -3.000000, 154.000000, 141.000000, 0.000000 -3277, -3.000000, 154.000000, 141.000000, 0.000000 -3278, -3.000000, 154.000000, 141.000000, 0.000000 -3279, -3.000000, 154.000000, 141.000000, 0.000000 -3280, -3.000000, 154.000000, 141.000000, 0.000000 -3281, -3.000000, 154.000000, 141.000000, 0.000000 -3282, -3.000000, 154.000000, 141.000000, 0.000000 -3283, -3.000000, 154.000000, 141.000000, 0.000000 -3284, -3.000000, 154.000000, 141.000000, 0.000000 -3285, -3.000000, 154.000000, 141.000000, 0.000000 -3286, -3.000000, 154.000000, 141.000000, 0.000000 -3287, -3.000000, 154.000000, 141.000000, 0.000000 -3288, -3.000000, 154.000000, 141.000000, 0.000000 -3289, -3.000000, 154.000000, 141.000000, 0.000000 -3290, -3.000000, 154.000000, 141.000000, 0.000000 -3291, -3.000000, 154.000000, 141.000000, 0.000000 -3292, -3.000000, 154.000000, 141.000000, 0.000000 -3293, -3.000000, 154.000000, 141.000000, 0.000000 -3294, -3.000000, 154.000000, 141.000000, 0.000000 -3295, -3.000000, 154.000000, 141.000000, 0.000000 -3296, -3.000000, 154.000000, 141.000000, 0.000000 -3297, -3.000000, 154.000000, 141.000000, 0.000000 -3298, -3.000000, 154.000000, 141.000000, 0.000000 -3299, -3.000000, 154.000000, 141.000000, 0.000000 -3300, -3.000000, 156.000000, 144.000000, 0.000000 -3301, -3.000000, 156.000000, 144.000000, 0.000000 -3302, -3.000000, 156.000000, 144.000000, 0.000000 -3303, -3.000000, 156.000000, 144.000000, 0.000000 -3304, -3.000000, 156.000000, 144.000000, 0.000000 -3305, -3.000000, 156.000000, 144.000000, 0.000000 -3306, -3.000000, 156.000000, 144.000000, 0.000000 -3307, -3.000000, 156.000000, 144.000000, 0.000000 -3308, -3.000000, 156.000000, 144.000000, 0.000000 -3309, -3.000000, 156.000000, 144.000000, 0.000000 -3310, -3.000000, 156.000000, 144.000000, 0.000000 -3311, -3.000000, 156.000000, 144.000000, 0.000000 -3312, -3.000000, 156.000000, 144.000000, 0.000000 -3313, -3.000000, 156.000000, 144.000000, 0.000000 -3314, -3.000000, 156.000000, 144.000000, 0.000000 -3315, -3.000000, 156.000000, 144.000000, 0.000000 -3316, -3.000000, 156.000000, 144.000000, 0.000000 -3317, -3.000000, 156.000000, 144.000000, 0.000000 -3318, -3.000000, 156.000000, 144.000000, 0.000000 -3319, -3.000000, 156.000000, 144.000000, 0.000000 -3320, -3.000000, 156.000000, 144.000000, 0.000000 -3321, -3.000000, 156.000000, 144.000000, 0.000000 -3322, -3.000000, 156.000000, 144.000000, 0.000000 -3323, -3.000000, 156.000000, 144.000000, 0.000000 -3324, -3.000000, 156.000000, 144.000000, 0.000000 -3325, -3.000000, 156.000000, 144.000000, 0.000000 -3326, -3.000000, 156.000000, 144.000000, 0.000000 -3327, -3.000000, 156.000000, 144.000000, 0.000000 -3328, -3.000000, 156.000000, 144.000000, 0.000000 -3329, -3.000000, 156.000000, 144.000000, 0.000000 -3330, -3.000000, 156.000000, 144.000000, 0.000000 -3331, -3.000000, 156.000000, 144.000000, 0.000000 -3332, -3.000000, 156.000000, 144.000000, 0.000000 -3333, -3.000000, 156.000000, 144.000000, 0.000000 -3334, -3.000000, 156.000000, 144.000000, 0.000000 -3335, -3.000000, 156.000000, 144.000000, 0.000000 -3336, -3.000000, 156.000000, 144.000000, 0.000000 -3337, -3.000000, 156.000000, 144.000000, 0.000000 -3338, -3.000000, 156.000000, 144.000000, 0.000000 -3339, -3.000000, 156.000000, 144.000000, 0.000000 -3340, -3.000000, 156.000000, 144.000000, 0.000000 -3341, -3.000000, 156.000000, 144.000000, 0.000000 -3342, -3.000000, 156.000000, 144.000000, 0.000000 -3343, -3.000000, 156.000000, 144.000000, 0.000000 -3344, -3.000000, 156.000000, 144.000000, 0.000000 -3345, -3.000000, 156.000000, 144.000000, 0.000000 -3346, -3.000000, 156.000000, 144.000000, 0.000000 -3347, -3.000000, 156.000000, 144.000000, 0.000000 -3348, -3.000000, 156.000000, 144.000000, 0.000000 -3349, -3.000000, 156.000000, 144.000000, 0.000000 -3350, -3.000000, 156.000000, 144.000000, 0.000000 -3351, -3.000000, 156.000000, 144.000000, 0.000000 -3352, -3.000000, 156.000000, 144.000000, 0.000000 -3353, -3.000000, 156.000000, 144.000000, 0.000000 -3354, -3.000000, 156.000000, 144.000000, 0.000000 -3355, -3.000000, 156.000000, 144.000000, 0.000000 -3356, -3.000000, 156.000000, 144.000000, 0.000000 -3357, -3.000000, 156.000000, 144.000000, 0.000000 -3358, -3.000000, 156.000000, 144.000000, 0.000000 -3359, -3.000000, 156.000000, 144.000000, 0.000000 -3360, -3.000000, 156.000000, 144.000000, 0.000000 -3361, -3.000000, 156.000000, 144.000000, 0.000000 -3362, -3.000000, 156.000000, 144.000000, 0.000000 -3363, -3.000000, 156.000000, 144.000000, 0.000000 -3364, -3.000000, 156.000000, 144.000000, 0.000000 -3365, -3.000000, 156.000000, 144.000000, 0.000000 -3366, -3.000000, 156.000000, 144.000000, 0.000000 -3367, -3.000000, 156.000000, 144.000000, 0.000000 -3368, -3.000000, 156.000000, 144.000000, 0.000000 -3369, -3.000000, 156.000000, 144.000000, 0.000000 -3370, -3.000000, 156.000000, 144.000000, 0.000000 -3371, -3.000000, 156.000000, 144.000000, 0.000000 -3372, -3.000000, 156.000000, 144.000000, 0.000000 -3373, -3.000000, 156.000000, 144.000000, 0.000000 -3374, -3.000000, 156.000000, 144.000000, 0.000000 -3375, -3.000000, 156.000000, 144.000000, 0.000000 -3376, -3.000000, 156.000000, 144.000000, 0.000000 -3377, -3.000000, 156.000000, 144.000000, 0.000000 -3378, -3.000000, 156.000000, 144.000000, 0.000000 -3379, -3.000000, 156.000000, 144.000000, 0.000000 -3380, -3.000000, 156.000000, 144.000000, 0.000000 -3381, -3.000000, 156.000000, 144.000000, 0.000000 -3382, -3.000000, 156.000000, 144.000000, 0.000000 -3383, -3.000000, 156.000000, 144.000000, 0.000000 -3384, -3.000000, 156.000000, 144.000000, 0.000000 -3385, -3.000000, 156.000000, 144.000000, 0.000000 -3386, -3.000000, 156.000000, 144.000000, 0.000000 -3387, -3.000000, 156.000000, 144.000000, 0.000000 -3388, -3.000000, 156.000000, 144.000000, 0.000000 -3389, -3.000000, 156.000000, 144.000000, 0.000000 -3390, -3.000000, 156.000000, 144.000000, 0.000000 -3391, -3.000000, 156.000000, 144.000000, 0.000000 -3392, -3.000000, 156.000000, 144.000000, 0.000000 -3393, -3.000000, 156.000000, 144.000000, 0.000000 -3394, -3.000000, 156.000000, 144.000000, 0.000000 -3395, -3.000000, 156.000000, 144.000000, 0.000000 -3396, -3.000000, 156.000000, 144.000000, 0.000000 -3397, -3.000000, 156.000000, 144.000000, 0.000000 -3398, -3.000000, 156.000000, 144.000000, 0.000000 -3399, -3.000000, 156.000000, 144.000000, 0.000000 -3400, -3.000000, 158.000000, 147.000000, 0.000000 -3401, -3.000000, 158.000000, 147.000000, 0.000000 -3402, -3.000000, 158.000000, 147.000000, 0.000000 -3403, -3.000000, 158.000000, 147.000000, 0.000000 -3404, -3.000000, 158.000000, 147.000000, 0.000000 -3405, -3.000000, 158.000000, 147.000000, 0.000000 -3406, -3.000000, 158.000000, 147.000000, 0.000000 -3407, -3.000000, 158.000000, 147.000000, 0.000000 -3408, -3.000000, 158.000000, 147.000000, 0.000000 -3409, -3.000000, 158.000000, 147.000000, 0.000000 -3410, -3.000000, 158.000000, 147.000000, 0.000000 -3411, -3.000000, 158.000000, 147.000000, 0.000000 -3412, -3.000000, 158.000000, 147.000000, 0.000000 -3413, -3.000000, 158.000000, 147.000000, 0.000000 -3414, -3.000000, 158.000000, 147.000000, 0.000000 -3415, -3.000000, 158.000000, 147.000000, 0.000000 -3416, -3.000000, 158.000000, 147.000000, 0.000000 -3417, -3.000000, 158.000000, 147.000000, 0.000000 -3418, -3.000000, 158.000000, 147.000000, 0.000000 -3419, -3.000000, 158.000000, 147.000000, 0.000000 -3420, -3.000000, 158.000000, 147.000000, 0.000000 -3421, -3.000000, 158.000000, 147.000000, 0.000000 -3422, -3.000000, 158.000000, 147.000000, 0.000000 -3423, -3.000000, 158.000000, 147.000000, 0.000000 -3424, -3.000000, 158.000000, 147.000000, 0.000000 -3425, -3.000000, 158.000000, 147.000000, 0.000000 -3426, -3.000000, 158.000000, 147.000000, 0.000000 -3427, -3.000000, 158.000000, 147.000000, 0.000000 -3428, -3.000000, 158.000000, 147.000000, 0.000000 -3429, -3.000000, 158.000000, 147.000000, 0.000000 -3430, -3.000000, 158.000000, 147.000000, 0.000000 -3431, -3.000000, 158.000000, 147.000000, 0.000000 -3432, -3.000000, 158.000000, 147.000000, 0.000000 -3433, -3.000000, 158.000000, 147.000000, 0.000000 -3434, -3.000000, 158.000000, 147.000000, 0.000000 -3435, -3.000000, 158.000000, 147.000000, 0.000000 -3436, -3.000000, 158.000000, 147.000000, 0.000000 -3437, -3.000000, 158.000000, 147.000000, 0.000000 -3438, -3.000000, 158.000000, 147.000000, 0.000000 -3439, -3.000000, 158.000000, 147.000000, 0.000000 -3440, -3.000000, 158.000000, 147.000000, 0.000000 -3441, -3.000000, 158.000000, 147.000000, 0.000000 -3442, -3.000000, 158.000000, 147.000000, 0.000000 -3443, -3.000000, 158.000000, 147.000000, 0.000000 -3444, -3.000000, 158.000000, 147.000000, 0.000000 -3445, -3.000000, 158.000000, 147.000000, 0.000000 -3446, -3.000000, 158.000000, 147.000000, 0.000000 -3447, -3.000000, 158.000000, 147.000000, 0.000000 -3448, -3.000000, 158.000000, 147.000000, 0.000000 -3449, -3.000000, 158.000000, 147.000000, 0.000000 -3450, -3.000000, 158.000000, 147.000000, 0.000000 -3451, -3.000000, 158.000000, 147.000000, 0.000000 -3452, -3.000000, 158.000000, 147.000000, 0.000000 -3453, -3.000000, 158.000000, 147.000000, 0.000000 -3454, -3.000000, 158.000000, 147.000000, 0.000000 -3455, -3.000000, 158.000000, 147.000000, 0.000000 -3456, -3.000000, 158.000000, 147.000000, 0.000000 -3457, -3.000000, 158.000000, 147.000000, 0.000000 -3458, -3.000000, 158.000000, 147.000000, 0.000000 -3459, -3.000000, 158.000000, 147.000000, 0.000000 -3460, -3.000000, 158.000000, 147.000000, 0.000000 -3461, -3.000000, 158.000000, 147.000000, 0.000000 -3462, -3.000000, 158.000000, 147.000000, 0.000000 -3463, -3.000000, 158.000000, 147.000000, 0.000000 -3464, -3.000000, 158.000000, 147.000000, 0.000000 -3465, -3.000000, 158.000000, 147.000000, 0.000000 -3466, -3.000000, 158.000000, 147.000000, 0.000000 -3467, -3.000000, 158.000000, 147.000000, 0.000000 -3468, -3.000000, 158.000000, 147.000000, 0.000000 -3469, -3.000000, 158.000000, 147.000000, 0.000000 -3470, -3.000000, 158.000000, 147.000000, 0.000000 -3471, -3.000000, 158.000000, 147.000000, 0.000000 -3472, -3.000000, 158.000000, 147.000000, 0.000000 -3473, -3.000000, 158.000000, 147.000000, 0.000000 -3474, -3.000000, 158.000000, 147.000000, 0.000000 -3475, -3.000000, 158.000000, 147.000000, 0.000000 -3476, -3.000000, 158.000000, 147.000000, 0.000000 -3477, -3.000000, 158.000000, 147.000000, 0.000000 -3478, -3.000000, 158.000000, 147.000000, 0.000000 -3479, -3.000000, 158.000000, 147.000000, 0.000000 -3480, -3.000000, 158.000000, 147.000000, 0.000000 -3481, -3.000000, 158.000000, 147.000000, 0.000000 -3482, -3.000000, 158.000000, 147.000000, 0.000000 -3483, -3.000000, 158.000000, 147.000000, 0.000000 -3484, -3.000000, 158.000000, 147.000000, 0.000000 -3485, -3.000000, 158.000000, 147.000000, 0.000000 -3486, -3.000000, 158.000000, 147.000000, 0.000000 -3487, -3.000000, 158.000000, 147.000000, 0.000000 -3488, -3.000000, 158.000000, 147.000000, 0.000000 -3489, -3.000000, 158.000000, 147.000000, 0.000000 -3490, -3.000000, 158.000000, 147.000000, 0.000000 -3491, -3.000000, 158.000000, 147.000000, 0.000000 -3492, -3.000000, 158.000000, 147.000000, 0.000000 -3493, -3.000000, 158.000000, 147.000000, 0.000000 -3494, -3.000000, 158.000000, 147.000000, 0.000000 -3495, -3.000000, 158.000000, 147.000000, 0.000000 -3496, -3.000000, 158.000000, 147.000000, 0.000000 -3497, -3.000000, 158.000000, 147.000000, 0.000000 -3498, -3.000000, 158.000000, 147.000000, 0.000000 -3499, -3.000000, 158.000000, 147.000000, 0.000000 -3500, -3.000000, 160.000000, 150.000000, 0.000000 -3501, -3.000000, 160.000000, 150.000000, 0.000000 -3502, -3.000000, 160.000000, 150.000000, 0.000000 -3503, -3.000000, 160.000000, 150.000000, 0.000000 -3504, -3.000000, 160.000000, 150.000000, 0.000000 -3505, -3.000000, 160.000000, 150.000000, 0.000000 -3506, -3.000000, 160.000000, 150.000000, 0.000000 -3507, -3.000000, 160.000000, 150.000000, 0.000000 -3508, -3.000000, 160.000000, 150.000000, 0.000000 -3509, -3.000000, 160.000000, 150.000000, 0.000000 -3510, -3.000000, 160.000000, 150.000000, 0.000000 -3511, -3.000000, 160.000000, 150.000000, 0.000000 -3512, -3.000000, 160.000000, 150.000000, 0.000000 -3513, -3.000000, 160.000000, 150.000000, 0.000000 -3514, -3.000000, 160.000000, 150.000000, 0.000000 -3515, -3.000000, 160.000000, 150.000000, 0.000000 -3516, -3.000000, 160.000000, 150.000000, 0.000000 -3517, -3.000000, 160.000000, 150.000000, 0.000000 -3518, -3.000000, 160.000000, 150.000000, 0.000000 -3519, -3.000000, 160.000000, 150.000000, 0.000000 -3520, -3.000000, 160.000000, 150.000000, 0.000000 -3521, -3.000000, 160.000000, 150.000000, 0.000000 -3522, -3.000000, 160.000000, 150.000000, 0.000000 -3523, -3.000000, 160.000000, 150.000000, 0.000000 -3524, -3.000000, 160.000000, 150.000000, 0.000000 -3525, -3.000000, 160.000000, 150.000000, 0.000000 -3526, -3.000000, 160.000000, 150.000000, 0.000000 -3527, -3.000000, 160.000000, 150.000000, 0.000000 -3528, -3.000000, 160.000000, 150.000000, 0.000000 -3529, -3.000000, 160.000000, 150.000000, 0.000000 -3530, -3.000000, 160.000000, 150.000000, 0.000000 -3531, -3.000000, 160.000000, 150.000000, 0.000000 -3532, -3.000000, 160.000000, 150.000000, 0.000000 -3533, -3.000000, 160.000000, 150.000000, 0.000000 -3534, -3.000000, 160.000000, 150.000000, 0.000000 -3535, -3.000000, 160.000000, 150.000000, 0.000000 -3536, -3.000000, 160.000000, 150.000000, 0.000000 -3537, -3.000000, 160.000000, 150.000000, 0.000000 -3538, -3.000000, 160.000000, 150.000000, 0.000000 -3539, -3.000000, 160.000000, 150.000000, 0.000000 -3540, -3.000000, 160.000000, 150.000000, 0.000000 -3541, -3.000000, 160.000000, 150.000000, 0.000000 -3542, -3.000000, 160.000000, 150.000000, 0.000000 -3543, -3.000000, 160.000000, 150.000000, 0.000000 -3544, -3.000000, 160.000000, 150.000000, 0.000000 -3545, -3.000000, 160.000000, 150.000000, 0.000000 -3546, -3.000000, 160.000000, 150.000000, 0.000000 -3547, -3.000000, 160.000000, 150.000000, 0.000000 -3548, -3.000000, 160.000000, 150.000000, 0.000000 -3549, -3.000000, 160.000000, 150.000000, 0.000000 -3550, -3.000000, 160.000000, 150.000000, 0.000000 -3551, -3.000000, 160.000000, 150.000000, 0.000000 -3552, -3.000000, 160.000000, 150.000000, 0.000000 -3553, -3.000000, 160.000000, 150.000000, 0.000000 -3554, -3.000000, 160.000000, 150.000000, 0.000000 -3555, -3.000000, 160.000000, 150.000000, 0.000000 -3556, -3.000000, 160.000000, 150.000000, 0.000000 -3557, -3.000000, 160.000000, 150.000000, 0.000000 -3558, -3.000000, 160.000000, 150.000000, 0.000000 -3559, -3.000000, 160.000000, 150.000000, 0.000000 -3560, -3.000000, 160.000000, 150.000000, 0.000000 -3561, -3.000000, 160.000000, 150.000000, 0.000000 -3562, -3.000000, 160.000000, 150.000000, 0.000000 -3563, -3.000000, 160.000000, 150.000000, 0.000000 -3564, -3.000000, 160.000000, 150.000000, 0.000000 -3565, -3.000000, 160.000000, 150.000000, 0.000000 -3566, -3.000000, 160.000000, 150.000000, 0.000000 -3567, -3.000000, 160.000000, 150.000000, 0.000000 -3568, -3.000000, 160.000000, 150.000000, 0.000000 -3569, -3.000000, 160.000000, 150.000000, 0.000000 -3570, -3.000000, 160.000000, 150.000000, 0.000000 -3571, -3.000000, 160.000000, 150.000000, 0.000000 -3572, -3.000000, 160.000000, 150.000000, 0.000000 -3573, -3.000000, 160.000000, 150.000000, 0.000000 -3574, -3.000000, 160.000000, 150.000000, 0.000000 -3575, -3.000000, 160.000000, 150.000000, 0.000000 -3576, -3.000000, 160.000000, 150.000000, 0.000000 -3577, -3.000000, 160.000000, 150.000000, 0.000000 -3578, -3.000000, 160.000000, 150.000000, 0.000000 -3579, -3.000000, 160.000000, 150.000000, 0.000000 -3580, -3.000000, 160.000000, 150.000000, 0.000000 -3581, -3.000000, 160.000000, 150.000000, 0.000000 -3582, -3.000000, 160.000000, 150.000000, 0.000000 -3583, -3.000000, 160.000000, 150.000000, 0.000000 -3584, -3.000000, 160.000000, 150.000000, 0.000000 -3585, -3.000000, 160.000000, 150.000000, 0.000000 -3586, -3.000000, 160.000000, 150.000000, 0.000000 -3587, -3.000000, 160.000000, 150.000000, 0.000000 -3588, -3.000000, 160.000000, 150.000000, 0.000000 -3589, -3.000000, 160.000000, 150.000000, 0.000000 -3590, -3.000000, 160.000000, 150.000000, 0.000000 -3591, -3.000000, 160.000000, 150.000000, 0.000000 -3592, -3.000000, 160.000000, 150.000000, 0.000000 -3593, -3.000000, 160.000000, 150.000000, 0.000000 -3594, -3.000000, 160.000000, 150.000000, 0.000000 -3595, -3.000000, 160.000000, 150.000000, 0.000000 -3596, -3.000000, 160.000000, 150.000000, 0.000000 -3597, -3.000000, 160.000000, 150.000000, 0.000000 -3598, -3.000000, 160.000000, 150.000000, 0.000000 -3599, -3.000000, 160.000000, 150.000000, 0.000000 -3600, -3.000000, 162.000000, 153.000000, 0.000000 -3601, -3.000000, 162.000000, 153.000000, 0.000000 -3602, -3.000000, 162.000000, 153.000000, 0.000000 -3603, -3.000000, 162.000000, 153.000000, 0.000000 -3604, -3.000000, 162.000000, 153.000000, 0.000000 -3605, -3.000000, 162.000000, 153.000000, 0.000000 -3606, -3.000000, 162.000000, 153.000000, 0.000000 -3607, -3.000000, 162.000000, 153.000000, 0.000000 -3608, -3.000000, 162.000000, 153.000000, 0.000000 -3609, -3.000000, 162.000000, 153.000000, 0.000000 -3610, -3.000000, 162.000000, 153.000000, 0.000000 -3611, -3.000000, 162.000000, 153.000000, 0.000000 -3612, -3.000000, 162.000000, 153.000000, 0.000000 -3613, -3.000000, 162.000000, 153.000000, 0.000000 -3614, -3.000000, 162.000000, 153.000000, 0.000000 -3615, -3.000000, 162.000000, 153.000000, 0.000000 -3616, -3.000000, 162.000000, 153.000000, 0.000000 -3617, -3.000000, 162.000000, 153.000000, 0.000000 -3618, -3.000000, 162.000000, 153.000000, 0.000000 -3619, -3.000000, 162.000000, 153.000000, 0.000000 -3620, -3.000000, 162.000000, 153.000000, 0.000000 -3621, -3.000000, 162.000000, 153.000000, 0.000000 -3622, -3.000000, 162.000000, 153.000000, 0.000000 -3623, -3.000000, 162.000000, 153.000000, 0.000000 -3624, -3.000000, 162.000000, 153.000000, 0.000000 -3625, -3.000000, 162.000000, 153.000000, 0.000000 -3626, -3.000000, 162.000000, 153.000000, 0.000000 -3627, -3.000000, 162.000000, 153.000000, 0.000000 -3628, -3.000000, 162.000000, 153.000000, 0.000000 -3629, -3.000000, 162.000000, 153.000000, 0.000000 -3630, -3.000000, 162.000000, 153.000000, 0.000000 -3631, -3.000000, 162.000000, 153.000000, 0.000000 -3632, -3.000000, 162.000000, 153.000000, 0.000000 -3633, -3.000000, 162.000000, 153.000000, 0.000000 -3634, -3.000000, 162.000000, 153.000000, 0.000000 -3635, -3.000000, 162.000000, 153.000000, 0.000000 -3636, -3.000000, 162.000000, 153.000000, 0.000000 -3637, -3.000000, 162.000000, 153.000000, 0.000000 -3638, -3.000000, 162.000000, 153.000000, 0.000000 -3639, -3.000000, 162.000000, 153.000000, 0.000000 -3640, -3.000000, 162.000000, 153.000000, 0.000000 -3641, -3.000000, 162.000000, 153.000000, 0.000000 -3642, -3.000000, 162.000000, 153.000000, 0.000000 -3643, -3.000000, 162.000000, 153.000000, 0.000000 -3644, -3.000000, 162.000000, 153.000000, 0.000000 -3645, -3.000000, 162.000000, 153.000000, 0.000000 -3646, -3.000000, 162.000000, 153.000000, 0.000000 -3647, -3.000000, 162.000000, 153.000000, 0.000000 -3648, -3.000000, 162.000000, 153.000000, 0.000000 -3649, -3.000000, 162.000000, 153.000000, 0.000000 -3650, -3.000000, 162.000000, 153.000000, 0.000000 -3651, -3.000000, 162.000000, 153.000000, 0.000000 -3652, -3.000000, 162.000000, 153.000000, 0.000000 -3653, -3.000000, 162.000000, 153.000000, 0.000000 -3654, -3.000000, 162.000000, 153.000000, 0.000000 -3655, -3.000000, 162.000000, 153.000000, 0.000000 -3656, -3.000000, 162.000000, 153.000000, 0.000000 -3657, -3.000000, 162.000000, 153.000000, 0.000000 -3658, -3.000000, 162.000000, 153.000000, 0.000000 -3659, -3.000000, 162.000000, 153.000000, 0.000000 -3660, -3.000000, 162.000000, 153.000000, 0.000000 -3661, -3.000000, 162.000000, 153.000000, 0.000000 -3662, -3.000000, 162.000000, 153.000000, 0.000000 -3663, -3.000000, 162.000000, 153.000000, 0.000000 -3664, -3.000000, 162.000000, 153.000000, 0.000000 -3665, -3.000000, 162.000000, 153.000000, 0.000000 -3666, -3.000000, 162.000000, 153.000000, 0.000000 -3667, -3.000000, 162.000000, 153.000000, 0.000000 -3668, -3.000000, 162.000000, 153.000000, 0.000000 -3669, -3.000000, 162.000000, 153.000000, 0.000000 -3670, -3.000000, 162.000000, 153.000000, 0.000000 -3671, -3.000000, 162.000000, 153.000000, 0.000000 -3672, -3.000000, 162.000000, 153.000000, 0.000000 -3673, -3.000000, 162.000000, 153.000000, 0.000000 -3674, -3.000000, 162.000000, 153.000000, 0.000000 -3675, -3.000000, 162.000000, 153.000000, 0.000000 -3676, -3.000000, 162.000000, 153.000000, 0.000000 -3677, -3.000000, 162.000000, 153.000000, 0.000000 -3678, -3.000000, 162.000000, 153.000000, 0.000000 -3679, -3.000000, 162.000000, 153.000000, 0.000000 -3680, -3.000000, 162.000000, 153.000000, 0.000000 -3681, -3.000000, 162.000000, 153.000000, 0.000000 -3682, -3.000000, 162.000000, 153.000000, 0.000000 -3683, -3.000000, 162.000000, 153.000000, 0.000000 -3684, -3.000000, 162.000000, 153.000000, 0.000000 -3685, -3.000000, 162.000000, 153.000000, 0.000000 -3686, -3.000000, 162.000000, 153.000000, 0.000000 -3687, -3.000000, 162.000000, 153.000000, 0.000000 -3688, -3.000000, 162.000000, 153.000000, 0.000000 -3689, -3.000000, 162.000000, 153.000000, 0.000000 -3690, -3.000000, 162.000000, 153.000000, 0.000000 -3691, -3.000000, 162.000000, 153.000000, 0.000000 -3692, -3.000000, 162.000000, 153.000000, 0.000000 -3693, -3.000000, 162.000000, 153.000000, 0.000000 -3694, -3.000000, 162.000000, 153.000000, 0.000000 -3695, -3.000000, 162.000000, 153.000000, 0.000000 -3696, -3.000000, 162.000000, 153.000000, 0.000000 -3697, -3.000000, 162.000000, 153.000000, 0.000000 -3698, -3.000000, 162.000000, 153.000000, 0.000000 -3699, -3.000000, 162.000000, 153.000000, 0.000000 -3700, -3.000000, 164.000000, 156.000000, 0.000000 -3701, -3.000000, 164.000000, 156.000000, 0.000000 -3702, -3.000000, 164.000000, 156.000000, 0.000000 -3703, -3.000000, 164.000000, 156.000000, 0.000000 -3704, -3.000000, 164.000000, 156.000000, 0.000000 -3705, -3.000000, 164.000000, 156.000000, 0.000000 -3706, -3.000000, 164.000000, 156.000000, 0.000000 -3707, -3.000000, 164.000000, 156.000000, 0.000000 -3708, -3.000000, 164.000000, 156.000000, 0.000000 -3709, -3.000000, 164.000000, 156.000000, 0.000000 -3710, -3.000000, 164.000000, 156.000000, 0.000000 -3711, -3.000000, 164.000000, 156.000000, 0.000000 -3712, -3.000000, 164.000000, 156.000000, 0.000000 -3713, -3.000000, 164.000000, 156.000000, 0.000000 -3714, -3.000000, 164.000000, 156.000000, 0.000000 -3715, -3.000000, 164.000000, 156.000000, 0.000000 -3716, -3.000000, 164.000000, 156.000000, 0.000000 -3717, -3.000000, 164.000000, 156.000000, 0.000000 -3718, -3.000000, 164.000000, 156.000000, 0.000000 -3719, -3.000000, 164.000000, 156.000000, 0.000000 -3720, -3.000000, 164.000000, 156.000000, 0.000000 -3721, -3.000000, 164.000000, 156.000000, 0.000000 -3722, -3.000000, 164.000000, 156.000000, 0.000000 -3723, -3.000000, 164.000000, 156.000000, 0.000000 -3724, -3.000000, 164.000000, 156.000000, 0.000000 -3725, -3.000000, 164.000000, 156.000000, 0.000000 -3726, -3.000000, 164.000000, 156.000000, 0.000000 -3727, -3.000000, 164.000000, 156.000000, 0.000000 -3728, -3.000000, 164.000000, 156.000000, 0.000000 -3729, -3.000000, 164.000000, 156.000000, 0.000000 -3730, -3.000000, 164.000000, 156.000000, 0.000000 -3731, -3.000000, 164.000000, 156.000000, 0.000000 -3732, -3.000000, 164.000000, 156.000000, 0.000000 -3733, -3.000000, 164.000000, 156.000000, 0.000000 -3734, -3.000000, 164.000000, 156.000000, 0.000000 -3735, -3.000000, 164.000000, 156.000000, 0.000000 -3736, -3.000000, 164.000000, 156.000000, 0.000000 -3737, -3.000000, 164.000000, 156.000000, 0.000000 -3738, -3.000000, 164.000000, 156.000000, 0.000000 -3739, -3.000000, 164.000000, 156.000000, 0.000000 -3740, -3.000000, 164.000000, 156.000000, 0.000000 -3741, -3.000000, 164.000000, 156.000000, 0.000000 -3742, -3.000000, 164.000000, 156.000000, 0.000000 -3743, -3.000000, 164.000000, 156.000000, 0.000000 -3744, -3.000000, 164.000000, 156.000000, 0.000000 -3745, -3.000000, 164.000000, 156.000000, 0.000000 -3746, -3.000000, 164.000000, 156.000000, 0.000000 -3747, -3.000000, 164.000000, 156.000000, 0.000000 -3748, -3.000000, 164.000000, 156.000000, 0.000000 -3749, -3.000000, 164.000000, 156.000000, 0.000000 -3750, -3.000000, 164.000000, 156.000000, 0.000000 -3751, -3.000000, 164.000000, 156.000000, 0.000000 -3752, -3.000000, 164.000000, 156.000000, 0.000000 -3753, -3.000000, 164.000000, 156.000000, 0.000000 -3754, -3.000000, 164.000000, 156.000000, 0.000000 -3755, -3.000000, 164.000000, 156.000000, 0.000000 -3756, -3.000000, 164.000000, 156.000000, 0.000000 -3757, -3.000000, 164.000000, 156.000000, 0.000000 -3758, -3.000000, 164.000000, 156.000000, 0.000000 -3759, -3.000000, 164.000000, 156.000000, 0.000000 -3760, -3.000000, 164.000000, 156.000000, 0.000000 -3761, -3.000000, 164.000000, 156.000000, 0.000000 -3762, -3.000000, 164.000000, 156.000000, 0.000000 -3763, -3.000000, 164.000000, 156.000000, 0.000000 -3764, -3.000000, 164.000000, 156.000000, 0.000000 -3765, -3.000000, 164.000000, 156.000000, 0.000000 -3766, -3.000000, 164.000000, 156.000000, 0.000000 -3767, -3.000000, 164.000000, 156.000000, 0.000000 -3768, -3.000000, 164.000000, 156.000000, 0.000000 -3769, -3.000000, 164.000000, 156.000000, 0.000000 -3770, -3.000000, 164.000000, 156.000000, 0.000000 -3771, -3.000000, 164.000000, 156.000000, 0.000000 -3772, -3.000000, 164.000000, 156.000000, 0.000000 -3773, -3.000000, 164.000000, 156.000000, 0.000000 -3774, -3.000000, 164.000000, 156.000000, 0.000000 -3775, -3.000000, 164.000000, 156.000000, 0.000000 -3776, -3.000000, 164.000000, 156.000000, 0.000000 -3777, -3.000000, 164.000000, 156.000000, 0.000000 -3778, -3.000000, 164.000000, 156.000000, 0.000000 -3779, -3.000000, 164.000000, 156.000000, 0.000000 -3780, -3.000000, 164.000000, 156.000000, 0.000000 -3781, -3.000000, 164.000000, 156.000000, 0.000000 -3782, -3.000000, 164.000000, 156.000000, 0.000000 -3783, -3.000000, 164.000000, 156.000000, 0.000000 -3784, -3.000000, 164.000000, 156.000000, 0.000000 -3785, -3.000000, 164.000000, 156.000000, 0.000000 -3786, -3.000000, 164.000000, 156.000000, 0.000000 -3787, -3.000000, 164.000000, 156.000000, 0.000000 -3788, -3.000000, 164.000000, 156.000000, 0.000000 -3789, -3.000000, 164.000000, 156.000000, 0.000000 -3790, -3.000000, 164.000000, 156.000000, 0.000000 -3791, -3.000000, 164.000000, 156.000000, 0.000000 -3792, -3.000000, 164.000000, 156.000000, 0.000000 -3793, -3.000000, 164.000000, 156.000000, 0.000000 -3794, -3.000000, 164.000000, 156.000000, 0.000000 -3795, -3.000000, 164.000000, 156.000000, 0.000000 -3796, -3.000000, 164.000000, 156.000000, 0.000000 -3797, -3.000000, 164.000000, 156.000000, 0.000000 -3798, -3.000000, 164.000000, 156.000000, 0.000000 -3799, -3.000000, 164.000000, 156.000000, 0.000000 -3800, -3.000000, 166.000000, 159.000000, 0.000000 -3801, -3.000000, 166.000000, 159.000000, 0.000000 -3802, -3.000000, 166.000000, 159.000000, 0.000000 -3803, -3.000000, 166.000000, 159.000000, 0.000000 -3804, -3.000000, 166.000000, 159.000000, 0.000000 -3805, -3.000000, 166.000000, 159.000000, 0.000000 -3806, -3.000000, 166.000000, 159.000000, 0.000000 -3807, -3.000000, 166.000000, 159.000000, 0.000000 -3808, -3.000000, 166.000000, 159.000000, 0.000000 -3809, -3.000000, 166.000000, 159.000000, 0.000000 -3810, -3.000000, 166.000000, 159.000000, 0.000000 -3811, -3.000000, 166.000000, 159.000000, 0.000000 -3812, -3.000000, 166.000000, 159.000000, 0.000000 -3813, -3.000000, 166.000000, 159.000000, 0.000000 -3814, -3.000000, 166.000000, 159.000000, 0.000000 -3815, -3.000000, 166.000000, 159.000000, 0.000000 -3816, -3.000000, 166.000000, 159.000000, 0.000000 -3817, -3.000000, 166.000000, 159.000000, 0.000000 -3818, -3.000000, 166.000000, 159.000000, 0.000000 -3819, -3.000000, 166.000000, 159.000000, 0.000000 -3820, -3.000000, 166.000000, 159.000000, 0.000000 -3821, -3.000000, 166.000000, 159.000000, 0.000000 -3822, -3.000000, 166.000000, 159.000000, 0.000000 -3823, -3.000000, 166.000000, 159.000000, 0.000000 -3824, -3.000000, 166.000000, 159.000000, 0.000000 -3825, -3.000000, 166.000000, 159.000000, 0.000000 -3826, -3.000000, 166.000000, 159.000000, 0.000000 -3827, -3.000000, 166.000000, 159.000000, 0.000000 -3828, -3.000000, 166.000000, 159.000000, 0.000000 -3829, -3.000000, 166.000000, 159.000000, 0.000000 -3830, -3.000000, 166.000000, 159.000000, 0.000000 -3831, -3.000000, 166.000000, 159.000000, 0.000000 -3832, -3.000000, 166.000000, 159.000000, 0.000000 -3833, -3.000000, 166.000000, 159.000000, 0.000000 -3834, -3.000000, 166.000000, 159.000000, 0.000000 -3835, -3.000000, 166.000000, 159.000000, 0.000000 -3836, -3.000000, 166.000000, 159.000000, 0.000000 -3837, -3.000000, 166.000000, 159.000000, 0.000000 -3838, -3.000000, 166.000000, 159.000000, 0.000000 -3839, -3.000000, 166.000000, 159.000000, 0.000000 -3840, -3.000000, 166.000000, 159.000000, 0.000000 -3841, -3.000000, 166.000000, 159.000000, 0.000000 -3842, -3.000000, 166.000000, 159.000000, 0.000000 -3843, -3.000000, 166.000000, 159.000000, 0.000000 -3844, -3.000000, 166.000000, 159.000000, 0.000000 -3845, -3.000000, 166.000000, 159.000000, 0.000000 -3846, -3.000000, 166.000000, 159.000000, 0.000000 -3847, -3.000000, 166.000000, 159.000000, 0.000000 -3848, -3.000000, 166.000000, 159.000000, 0.000000 -3849, -3.000000, 166.000000, 159.000000, 0.000000 -3850, -3.000000, 166.000000, 159.000000, 0.000000 -3851, -3.000000, 166.000000, 159.000000, 0.000000 -3852, -3.000000, 166.000000, 159.000000, 0.000000 -3853, -3.000000, 166.000000, 159.000000, 0.000000 -3854, -3.000000, 166.000000, 159.000000, 0.000000 -3855, -3.000000, 166.000000, 159.000000, 0.000000 -3856, -3.000000, 166.000000, 159.000000, 0.000000 -3857, -3.000000, 166.000000, 159.000000, 0.000000 -3858, -3.000000, 166.000000, 159.000000, 0.000000 -3859, -3.000000, 166.000000, 159.000000, 0.000000 -3860, -3.000000, 166.000000, 159.000000, 0.000000 -3861, -3.000000, 166.000000, 159.000000, 0.000000 -3862, -3.000000, 166.000000, 159.000000, 0.000000 -3863, -3.000000, 166.000000, 159.000000, 0.000000 -3864, -3.000000, 166.000000, 159.000000, 0.000000 -3865, -3.000000, 166.000000, 159.000000, 0.000000 -3866, -3.000000, 166.000000, 159.000000, 0.000000 -3867, -3.000000, 166.000000, 159.000000, 0.000000 -3868, -3.000000, 166.000000, 159.000000, 0.000000 -3869, -3.000000, 166.000000, 159.000000, 0.000000 -3870, -3.000000, 166.000000, 159.000000, 0.000000 -3871, -3.000000, 166.000000, 159.000000, 0.000000 -3872, -3.000000, 166.000000, 159.000000, 0.000000 -3873, -3.000000, 166.000000, 159.000000, 0.000000 -3874, -3.000000, 166.000000, 159.000000, 0.000000 -3875, -3.000000, 166.000000, 159.000000, 0.000000 -3876, -3.000000, 166.000000, 159.000000, 0.000000 -3877, -3.000000, 166.000000, 159.000000, 0.000000 -3878, -3.000000, 166.000000, 159.000000, 0.000000 -3879, -3.000000, 166.000000, 159.000000, 0.000000 -3880, -3.000000, 166.000000, 159.000000, 0.000000 -3881, -3.000000, 166.000000, 159.000000, 0.000000 -3882, -3.000000, 166.000000, 159.000000, 0.000000 -3883, -3.000000, 166.000000, 159.000000, 0.000000 -3884, -3.000000, 166.000000, 159.000000, 0.000000 -3885, -3.000000, 166.000000, 159.000000, 0.000000 -3886, -3.000000, 166.000000, 159.000000, 0.000000 -3887, -3.000000, 166.000000, 159.000000, 0.000000 -3888, -3.000000, 166.000000, 159.000000, 0.000000 -3889, -3.000000, 166.000000, 159.000000, 0.000000 -3890, -3.000000, 166.000000, 159.000000, 0.000000 -3891, -3.000000, 166.000000, 159.000000, 0.000000 -3892, -3.000000, 166.000000, 159.000000, 0.000000 -3893, -3.000000, 166.000000, 159.000000, 0.000000 -3894, -3.000000, 166.000000, 159.000000, 0.000000 -3895, -3.000000, 166.000000, 159.000000, 0.000000 -3896, -3.000000, 166.000000, 159.000000, 0.000000 -3897, -3.000000, 166.000000, 159.000000, 0.000000 -3898, -3.000000, 166.000000, 159.000000, 0.000000 -3899, -3.000000, 166.000000, 159.000000, 0.000000 -3900, -3.000000, 168.000000, 162.000000, 0.000000 -3901, -3.000000, 168.000000, 162.000000, 0.000000 -3902, -3.000000, 168.000000, 162.000000, 0.000000 -3903, -3.000000, 168.000000, 162.000000, 0.000000 -3904, -3.000000, 168.000000, 162.000000, 0.000000 -3905, -3.000000, 168.000000, 162.000000, 0.000000 -3906, -3.000000, 168.000000, 162.000000, 0.000000 -3907, -3.000000, 168.000000, 162.000000, 0.000000 -3908, -3.000000, 168.000000, 162.000000, 0.000000 -3909, -3.000000, 168.000000, 162.000000, 0.000000 -3910, -3.000000, 168.000000, 162.000000, 0.000000 -3911, -3.000000, 168.000000, 162.000000, 0.000000 -3912, -3.000000, 168.000000, 162.000000, 0.000000 -3913, -3.000000, 168.000000, 162.000000, 0.000000 -3914, -3.000000, 168.000000, 162.000000, 0.000000 -3915, -3.000000, 168.000000, 162.000000, 0.000000 -3916, -3.000000, 168.000000, 162.000000, 0.000000 -3917, -3.000000, 168.000000, 162.000000, 0.000000 -3918, -3.000000, 168.000000, 162.000000, 0.000000 -3919, -3.000000, 168.000000, 162.000000, 0.000000 -3920, -3.000000, 168.000000, 162.000000, 0.000000 -3921, -3.000000, 168.000000, 162.000000, 0.000000 -3922, -3.000000, 168.000000, 162.000000, 0.000000 -3923, -3.000000, 168.000000, 162.000000, 0.000000 -3924, -3.000000, 168.000000, 162.000000, 0.000000 -3925, -3.000000, 168.000000, 162.000000, 0.000000 -3926, -3.000000, 168.000000, 162.000000, 0.000000 -3927, -3.000000, 168.000000, 162.000000, 0.000000 -3928, -3.000000, 168.000000, 162.000000, 0.000000 -3929, -3.000000, 168.000000, 162.000000, 0.000000 -3930, -3.000000, 168.000000, 162.000000, 0.000000 -3931, -3.000000, 168.000000, 162.000000, 0.000000 -3932, -3.000000, 168.000000, 162.000000, 0.000000 -3933, -3.000000, 168.000000, 162.000000, 0.000000 -3934, -3.000000, 168.000000, 162.000000, 0.000000 -3935, -3.000000, 168.000000, 162.000000, 0.000000 -3936, -3.000000, 168.000000, 162.000000, 0.000000 -3937, -3.000000, 168.000000, 162.000000, 0.000000 -3938, -3.000000, 168.000000, 162.000000, 0.000000 -3939, -3.000000, 168.000000, 162.000000, 0.000000 -3940, -3.000000, 168.000000, 162.000000, 0.000000 -3941, -3.000000, 168.000000, 162.000000, 0.000000 -3942, -3.000000, 168.000000, 162.000000, 0.000000 -3943, -3.000000, 168.000000, 162.000000, 0.000000 -3944, -3.000000, 168.000000, 162.000000, 0.000000 -3945, -3.000000, 168.000000, 162.000000, 0.000000 -3946, -3.000000, 168.000000, 162.000000, 0.000000 -3947, -3.000000, 168.000000, 162.000000, 0.000000 -3948, -3.000000, 168.000000, 162.000000, 0.000000 -3949, -3.000000, 168.000000, 162.000000, 0.000000 -3950, -3.000000, 168.000000, 162.000000, 0.000000 -3951, -3.000000, 168.000000, 162.000000, 0.000000 -3952, -3.000000, 168.000000, 162.000000, 0.000000 -3953, -3.000000, 168.000000, 162.000000, 0.000000 -3954, -3.000000, 168.000000, 162.000000, 0.000000 -3955, -3.000000, 168.000000, 162.000000, 0.000000 -3956, -3.000000, 168.000000, 162.000000, 0.000000 -3957, -3.000000, 168.000000, 162.000000, 0.000000 -3958, -3.000000, 168.000000, 162.000000, 0.000000 -3959, -3.000000, 168.000000, 162.000000, 0.000000 -3960, -3.000000, 168.000000, 162.000000, 0.000000 -3961, -3.000000, 168.000000, 162.000000, 0.000000 -3962, -3.000000, 168.000000, 162.000000, 0.000000 -3963, -3.000000, 168.000000, 162.000000, 0.000000 -3964, -3.000000, 168.000000, 162.000000, 0.000000 -3965, -3.000000, 168.000000, 162.000000, 0.000000 -3966, -3.000000, 168.000000, 162.000000, 0.000000 -3967, -3.000000, 168.000000, 162.000000, 0.000000 -3968, -3.000000, 168.000000, 162.000000, 0.000000 -3969, -3.000000, 168.000000, 162.000000, 0.000000 -3970, -3.000000, 168.000000, 162.000000, 0.000000 -3971, -3.000000, 168.000000, 162.000000, 0.000000 -3972, -3.000000, 168.000000, 162.000000, 0.000000 -3973, -3.000000, 168.000000, 162.000000, 0.000000 -3974, -3.000000, 168.000000, 162.000000, 0.000000 -3975, -3.000000, 168.000000, 162.000000, 0.000000 -3976, -3.000000, 168.000000, 162.000000, 0.000000 -3977, -3.000000, 168.000000, 162.000000, 0.000000 -3978, -3.000000, 168.000000, 162.000000, 0.000000 -3979, -3.000000, 168.000000, 162.000000, 0.000000 -3980, -3.000000, 168.000000, 162.000000, 0.000000 -3981, -3.000000, 168.000000, 162.000000, 0.000000 -3982, -3.000000, 168.000000, 162.000000, 0.000000 -3983, -3.000000, 168.000000, 162.000000, 0.000000 -3984, -3.000000, 168.000000, 162.000000, 0.000000 -3985, -3.000000, 168.000000, 162.000000, 0.000000 -3986, -3.000000, 168.000000, 162.000000, 0.000000 -3987, -3.000000, 168.000000, 162.000000, 0.000000 -3988, -3.000000, 168.000000, 162.000000, 0.000000 -3989, -3.000000, 168.000000, 162.000000, 0.000000 -3990, -3.000000, 168.000000, 162.000000, 0.000000 -3991, -3.000000, 168.000000, 162.000000, 0.000000 -3992, -3.000000, 168.000000, 162.000000, 0.000000 -3993, -3.000000, 168.000000, 162.000000, 0.000000 -3994, -3.000000, 168.000000, 162.000000, 0.000000 -3995, -3.000000, 168.000000, 162.000000, 0.000000 -3996, -3.000000, 168.000000, 162.000000, 0.000000 -3997, -3.000000, 168.000000, 162.000000, 0.000000 -3998, -3.000000, 168.000000, 162.000000, 0.000000 -3999, -3.000000, 168.000000, 162.000000, 0.000000 -4000, -3.000000, 170.000000, 165.000000, 0.000000 -4001, -3.000000, 170.000000, 165.000000, 0.000000 -4002, -3.000000, 170.000000, 165.000000, 0.000000 -4003, -3.000000, 170.000000, 165.000000, 0.000000 -4004, -3.000000, 170.000000, 165.000000, 0.000000 -4005, -3.000000, 170.000000, 165.000000, 0.000000 -4006, -3.000000, 170.000000, 165.000000, 0.000000 -4007, -3.000000, 170.000000, 165.000000, 0.000000 -4008, -3.000000, 170.000000, 165.000000, 0.000000 -4009, -3.000000, 170.000000, 165.000000, 0.000000 -4010, -3.000000, 170.000000, 165.000000, 0.000000 -4011, -3.000000, 170.000000, 165.000000, 0.000000 -4012, -3.000000, 170.000000, 165.000000, 0.000000 -4013, -3.000000, 170.000000, 165.000000, 0.000000 -4014, -3.000000, 170.000000, 165.000000, 0.000000 -4015, -3.000000, 170.000000, 165.000000, 0.000000 -4016, -3.000000, 170.000000, 165.000000, 0.000000 -4017, -3.000000, 170.000000, 165.000000, 0.000000 -4018, -3.000000, 170.000000, 165.000000, 0.000000 -4019, -3.000000, 170.000000, 165.000000, 0.000000 -4020, -3.000000, 170.000000, 165.000000, 0.000000 -4021, -3.000000, 170.000000, 165.000000, 0.000000 -4022, -3.000000, 170.000000, 165.000000, 0.000000 -4023, -3.000000, 170.000000, 165.000000, 0.000000 -4024, -3.000000, 170.000000, 165.000000, 0.000000 -4025, -3.000000, 170.000000, 165.000000, 0.000000 -4026, -3.000000, 170.000000, 165.000000, 0.000000 -4027, -3.000000, 170.000000, 165.000000, 0.000000 -4028, -3.000000, 170.000000, 165.000000, 0.000000 -4029, -3.000000, 170.000000, 165.000000, 0.000000 -4030, -3.000000, 170.000000, 165.000000, 0.000000 -4031, -3.000000, 170.000000, 165.000000, 0.000000 -4032, -3.000000, 170.000000, 165.000000, 0.000000 -4033, -3.000000, 170.000000, 165.000000, 0.000000 -4034, -3.000000, 170.000000, 165.000000, 0.000000 -4035, -3.000000, 170.000000, 165.000000, 0.000000 -4036, -3.000000, 170.000000, 165.000000, 0.000000 -4037, -3.000000, 170.000000, 165.000000, 0.000000 -4038, -3.000000, 170.000000, 165.000000, 0.000000 -4039, -3.000000, 170.000000, 165.000000, 0.000000 -4040, -3.000000, 170.000000, 165.000000, 0.000000 -4041, -3.000000, 170.000000, 165.000000, 0.000000 -4042, -3.000000, 170.000000, 165.000000, 0.000000 -4043, -3.000000, 170.000000, 165.000000, 0.000000 -4044, -3.000000, 170.000000, 165.000000, 0.000000 -4045, -3.000000, 170.000000, 165.000000, 0.000000 -4046, -3.000000, 170.000000, 165.000000, 0.000000 -4047, -3.000000, 170.000000, 165.000000, 0.000000 -4048, -3.000000, 170.000000, 165.000000, 0.000000 -4049, -3.000000, 170.000000, 165.000000, 0.000000 -4050, -3.000000, 170.000000, 165.000000, 0.000000 -4051, -3.000000, 170.000000, 165.000000, 0.000000 -4052, -3.000000, 170.000000, 165.000000, 0.000000 -4053, -3.000000, 170.000000, 165.000000, 0.000000 -4054, -3.000000, 170.000000, 165.000000, 0.000000 -4055, -3.000000, 170.000000, 165.000000, 0.000000 -4056, -3.000000, 170.000000, 165.000000, 0.000000 -4057, -3.000000, 170.000000, 165.000000, 0.000000 -4058, -3.000000, 170.000000, 165.000000, 0.000000 -4059, -3.000000, 170.000000, 165.000000, 0.000000 -4060, -3.000000, 170.000000, 165.000000, 0.000000 -4061, -3.000000, 170.000000, 165.000000, 0.000000 -4062, -3.000000, 170.000000, 165.000000, 0.000000 -4063, -3.000000, 170.000000, 165.000000, 0.000000 -4064, -3.000000, 170.000000, 165.000000, 0.000000 -4065, -3.000000, 170.000000, 165.000000, 0.000000 -4066, -3.000000, 170.000000, 165.000000, 0.000000 -4067, -3.000000, 170.000000, 165.000000, 0.000000 -4068, -3.000000, 170.000000, 165.000000, 0.000000 -4069, -3.000000, 170.000000, 165.000000, 0.000000 -4070, -3.000000, 170.000000, 165.000000, 0.000000 -4071, -3.000000, 170.000000, 165.000000, 0.000000 -4072, -3.000000, 170.000000, 165.000000, 0.000000 -4073, -3.000000, 170.000000, 165.000000, 0.000000 -4074, -3.000000, 170.000000, 165.000000, 0.000000 -4075, -3.000000, 170.000000, 165.000000, 0.000000 -4076, -3.000000, 170.000000, 165.000000, 0.000000 -4077, -3.000000, 170.000000, 165.000000, 0.000000 -4078, -3.000000, 170.000000, 165.000000, 0.000000 -4079, -3.000000, 170.000000, 165.000000, 0.000000 -4080, -3.000000, 170.000000, 165.000000, 0.000000 -4081, -3.000000, 170.000000, 165.000000, 0.000000 -4082, -3.000000, 170.000000, 165.000000, 0.000000 -4083, -3.000000, 170.000000, 165.000000, 0.000000 -4084, -3.000000, 170.000000, 165.000000, 0.000000 -4085, -3.000000, 170.000000, 165.000000, 0.000000 -4086, -3.000000, 170.000000, 165.000000, 0.000000 -4087, -3.000000, 170.000000, 165.000000, 0.000000 -4088, -3.000000, 170.000000, 165.000000, 0.000000 -4089, -3.000000, 170.000000, 165.000000, 0.000000 -4090, -3.000000, 170.000000, 165.000000, 0.000000 -4091, -3.000000, 170.000000, 165.000000, 0.000000 -4092, -3.000000, 170.000000, 165.000000, 0.000000 -4093, -3.000000, 170.000000, 165.000000, 0.000000 -4094, -3.000000, 170.000000, 165.000000, 0.000000 -4095, -3.000000, 170.000000, 165.000000, 0.000000 -4096, -3.000000, 170.000000, 165.000000, 0.000000 -4097, -3.000000, 170.000000, 165.000000, 0.000000 -4098, -3.000000, 170.000000, 165.000000, 0.000000 -4099, -3.000000, 170.000000, 165.000000, 0.000000 -4100, -3.000000, 172.000000, 168.000000, 0.000000 -4101, -3.000000, 172.000000, 168.000000, 0.000000 -4102, -3.000000, 172.000000, 168.000000, 0.000000 -4103, -3.000000, 172.000000, 168.000000, 0.000000 -4104, -3.000000, 172.000000, 168.000000, 0.000000 -4105, -3.000000, 172.000000, 168.000000, 0.000000 -4106, -3.000000, 172.000000, 168.000000, 0.000000 -4107, -3.000000, 172.000000, 168.000000, 0.000000 -4108, -3.000000, 172.000000, 168.000000, 0.000000 -4109, -3.000000, 172.000000, 168.000000, 0.000000 -4110, -3.000000, 172.000000, 168.000000, 0.000000 -4111, -3.000000, 172.000000, 168.000000, 0.000000 -4112, -3.000000, 172.000000, 168.000000, 0.000000 -4113, -3.000000, 172.000000, 168.000000, 0.000000 -4114, -3.000000, 172.000000, 168.000000, 0.000000 -4115, -3.000000, 172.000000, 168.000000, 0.000000 -4116, -3.000000, 172.000000, 168.000000, 0.000000 -4117, -3.000000, 172.000000, 168.000000, 0.000000 -4118, -3.000000, 172.000000, 168.000000, 0.000000 -4119, -3.000000, 172.000000, 168.000000, 0.000000 -4120, -3.000000, 172.000000, 168.000000, 0.000000 -4121, -3.000000, 172.000000, 168.000000, 0.000000 -4122, -3.000000, 172.000000, 168.000000, 0.000000 -4123, -3.000000, 172.000000, 168.000000, 0.000000 -4124, -3.000000, 172.000000, 168.000000, 0.000000 -4125, -3.000000, 172.000000, 168.000000, 0.000000 -4126, -3.000000, 172.000000, 168.000000, 0.000000 -4127, -3.000000, 172.000000, 168.000000, 0.000000 -4128, -3.000000, 172.000000, 168.000000, 0.000000 -4129, -3.000000, 172.000000, 168.000000, 0.000000 -4130, -3.000000, 172.000000, 168.000000, 0.000000 -4131, -3.000000, 172.000000, 168.000000, 0.000000 -4132, -3.000000, 172.000000, 168.000000, 0.000000 -4133, -3.000000, 172.000000, 168.000000, 0.000000 -4134, -3.000000, 172.000000, 168.000000, 0.000000 -4135, -3.000000, 172.000000, 168.000000, 0.000000 -4136, -3.000000, 172.000000, 168.000000, 0.000000 -4137, -3.000000, 172.000000, 168.000000, 0.000000 -4138, -3.000000, 172.000000, 168.000000, 0.000000 -4139, -3.000000, 172.000000, 168.000000, 0.000000 -4140, -3.000000, 172.000000, 168.000000, 0.000000 -4141, -3.000000, 172.000000, 168.000000, 0.000000 -4142, -3.000000, 172.000000, 168.000000, 0.000000 -4143, -3.000000, 172.000000, 168.000000, 0.000000 -4144, -3.000000, 172.000000, 168.000000, 0.000000 -4145, -3.000000, 172.000000, 168.000000, 0.000000 -4146, -3.000000, 172.000000, 168.000000, 0.000000 -4147, -3.000000, 172.000000, 168.000000, 0.000000 -4148, -3.000000, 172.000000, 168.000000, 0.000000 -4149, -3.000000, 172.000000, 168.000000, 0.000000 -4150, -3.000000, 172.000000, 168.000000, 0.000000 -4151, -3.000000, 172.000000, 168.000000, 0.000000 -4152, -3.000000, 172.000000, 168.000000, 0.000000 -4153, -3.000000, 172.000000, 168.000000, 0.000000 -4154, -3.000000, 172.000000, 168.000000, 0.000000 -4155, -3.000000, 172.000000, 168.000000, 0.000000 -4156, -3.000000, 172.000000, 168.000000, 0.000000 -4157, -3.000000, 172.000000, 168.000000, 0.000000 -4158, -3.000000, 172.000000, 168.000000, 0.000000 -4159, -3.000000, 172.000000, 168.000000, 0.000000 -4160, -3.000000, 172.000000, 168.000000, 0.000000 -4161, -3.000000, 172.000000, 168.000000, 0.000000 -4162, -3.000000, 172.000000, 168.000000, 0.000000 -4163, -3.000000, 172.000000, 168.000000, 0.000000 -4164, -3.000000, 172.000000, 168.000000, 0.000000 -4165, -3.000000, 172.000000, 168.000000, 0.000000 -4166, -3.000000, 172.000000, 168.000000, 0.000000 -4167, -3.000000, 172.000000, 168.000000, 0.000000 -4168, -3.000000, 172.000000, 168.000000, 0.000000 -4169, -3.000000, 172.000000, 168.000000, 0.000000 -4170, -3.000000, 172.000000, 168.000000, 0.000000 -4171, -3.000000, 172.000000, 168.000000, 0.000000 -4172, -3.000000, 172.000000, 168.000000, 0.000000 -4173, -3.000000, 172.000000, 168.000000, 0.000000 -4174, -3.000000, 172.000000, 168.000000, 0.000000 -4175, -3.000000, 172.000000, 168.000000, 0.000000 -4176, -3.000000, 172.000000, 168.000000, 0.000000 -4177, -3.000000, 172.000000, 168.000000, 0.000000 -4178, -3.000000, 172.000000, 168.000000, 0.000000 -4179, -3.000000, 172.000000, 168.000000, 0.000000 -4180, -3.000000, 172.000000, 168.000000, 0.000000 -4181, -3.000000, 172.000000, 168.000000, 0.000000 -4182, -3.000000, 172.000000, 168.000000, 0.000000 -4183, -3.000000, 172.000000, 168.000000, 0.000000 -4184, -3.000000, 172.000000, 168.000000, 0.000000 -4185, -3.000000, 172.000000, 168.000000, 0.000000 -4186, -3.000000, 172.000000, 168.000000, 0.000000 -4187, -3.000000, 172.000000, 168.000000, 0.000000 -4188, -3.000000, 172.000000, 168.000000, 0.000000 -4189, -3.000000, 172.000000, 168.000000, 0.000000 -4190, -3.000000, 172.000000, 168.000000, 0.000000 -4191, -3.000000, 172.000000, 168.000000, 0.000000 -4192, -3.000000, 172.000000, 168.000000, 0.000000 -4193, -3.000000, 172.000000, 168.000000, 0.000000 -4194, -3.000000, 172.000000, 168.000000, 0.000000 -4195, -3.000000, 172.000000, 168.000000, 0.000000 -4196, -3.000000, 172.000000, 168.000000, 0.000000 -4197, -3.000000, 172.000000, 168.000000, 0.000000 -4198, -3.000000, 172.000000, 168.000000, 0.000000 -4199, -3.000000, 172.000000, 168.000000, 0.000000 -4200, -3.000000, 174.000000, 171.000000, 0.000000 -4201, -3.000000, 174.000000, 171.000000, 0.000000 -4202, -3.000000, 174.000000, 171.000000, 0.000000 -4203, -3.000000, 174.000000, 171.000000, 0.000000 -4204, -3.000000, 174.000000, 171.000000, 0.000000 -4205, -3.000000, 174.000000, 171.000000, 0.000000 -4206, -3.000000, 174.000000, 171.000000, 0.000000 -4207, -3.000000, 174.000000, 171.000000, 0.000000 -4208, -3.000000, 174.000000, 171.000000, 0.000000 -4209, -3.000000, 174.000000, 171.000000, 0.000000 -4210, -3.000000, 174.000000, 171.000000, 0.000000 -4211, -3.000000, 174.000000, 171.000000, 0.000000 -4212, -3.000000, 174.000000, 171.000000, 0.000000 -4213, -3.000000, 174.000000, 171.000000, 0.000000 -4214, -3.000000, 174.000000, 171.000000, 0.000000 -4215, -3.000000, 174.000000, 171.000000, 0.000000 -4216, -3.000000, 174.000000, 171.000000, 0.000000 -4217, -3.000000, 174.000000, 171.000000, 0.000000 -4218, -3.000000, 174.000000, 171.000000, 0.000000 -4219, -3.000000, 174.000000, 171.000000, 0.000000 -4220, -3.000000, 174.000000, 171.000000, 0.000000 -4221, -3.000000, 174.000000, 171.000000, 0.000000 -4222, -3.000000, 174.000000, 171.000000, 0.000000 -4223, -3.000000, 174.000000, 171.000000, 0.000000 -4224, -3.000000, 174.000000, 171.000000, 0.000000 -4225, -3.000000, 174.000000, 171.000000, 0.000000 -4226, -3.000000, 174.000000, 171.000000, 0.000000 -4227, -3.000000, 174.000000, 171.000000, 0.000000 -4228, -3.000000, 174.000000, 171.000000, 0.000000 -4229, -3.000000, 174.000000, 171.000000, 0.000000 -4230, -3.000000, 174.000000, 171.000000, 0.000000 -4231, -3.000000, 174.000000, 171.000000, 0.000000 -4232, -3.000000, 174.000000, 171.000000, 0.000000 -4233, -3.000000, 174.000000, 171.000000, 0.000000 -4234, -3.000000, 174.000000, 171.000000, 0.000000 -4235, -3.000000, 174.000000, 171.000000, 0.000000 -4236, -3.000000, 174.000000, 171.000000, 0.000000 -4237, -3.000000, 174.000000, 171.000000, 0.000000 -4238, -3.000000, 174.000000, 171.000000, 0.000000 -4239, -3.000000, 174.000000, 171.000000, 0.000000 -4240, -3.000000, 174.000000, 171.000000, 0.000000 -4241, -3.000000, 174.000000, 171.000000, 0.000000 -4242, -3.000000, 174.000000, 171.000000, 0.000000 -4243, -3.000000, 174.000000, 171.000000, 0.000000 -4244, -3.000000, 174.000000, 171.000000, 0.000000 -4245, -3.000000, 174.000000, 171.000000, 0.000000 -4246, -3.000000, 174.000000, 171.000000, 0.000000 -4247, -3.000000, 174.000000, 171.000000, 0.000000 -4248, -3.000000, 174.000000, 171.000000, 0.000000 -4249, -3.000000, 174.000000, 171.000000, 0.000000 -4250, -3.000000, 174.000000, 171.000000, 0.000000 -4251, -3.000000, 174.000000, 171.000000, 0.000000 -4252, -3.000000, 174.000000, 171.000000, 0.000000 -4253, -3.000000, 174.000000, 171.000000, 0.000000 -4254, -3.000000, 174.000000, 171.000000, 0.000000 -4255, -3.000000, 174.000000, 171.000000, 0.000000 -4256, -3.000000, 174.000000, 171.000000, 0.000000 -4257, -3.000000, 174.000000, 171.000000, 0.000000 -4258, -3.000000, 174.000000, 171.000000, 0.000000 -4259, -3.000000, 174.000000, 171.000000, 0.000000 -4260, -3.000000, 174.000000, 171.000000, 0.000000 -4261, -3.000000, 174.000000, 171.000000, 0.000000 -4262, -3.000000, 174.000000, 171.000000, 0.000000 -4263, -3.000000, 174.000000, 171.000000, 0.000000 -4264, -3.000000, 174.000000, 171.000000, 0.000000 -4265, -3.000000, 174.000000, 171.000000, 0.000000 -4266, -3.000000, 174.000000, 171.000000, 0.000000 -4267, -3.000000, 174.000000, 171.000000, 0.000000 -4268, -3.000000, 174.000000, 171.000000, 0.000000 -4269, -3.000000, 174.000000, 171.000000, 0.000000 -4270, -3.000000, 174.000000, 171.000000, 0.000000 -4271, -3.000000, 174.000000, 171.000000, 0.000000 -4272, -3.000000, 174.000000, 171.000000, 0.000000 -4273, -3.000000, 174.000000, 171.000000, 0.000000 -4274, -3.000000, 174.000000, 171.000000, 0.000000 -4275, -3.000000, 174.000000, 171.000000, 0.000000 -4276, -3.000000, 174.000000, 171.000000, 0.000000 -4277, -3.000000, 174.000000, 171.000000, 0.000000 -4278, -3.000000, 174.000000, 171.000000, 0.000000 -4279, -3.000000, 174.000000, 171.000000, 0.000000 -4280, -3.000000, 174.000000, 171.000000, 0.000000 -4281, -3.000000, 174.000000, 171.000000, 0.000000 -4282, -3.000000, 174.000000, 171.000000, 0.000000 -4283, -3.000000, 174.000000, 171.000000, 0.000000 -4284, -3.000000, 174.000000, 171.000000, 0.000000 -4285, -3.000000, 174.000000, 171.000000, 0.000000 -4286, -3.000000, 174.000000, 171.000000, 0.000000 -4287, -3.000000, 174.000000, 171.000000, 0.000000 -4288, -3.000000, 174.000000, 171.000000, 0.000000 -4289, -3.000000, 174.000000, 171.000000, 0.000000 -4290, -3.000000, 174.000000, 171.000000, 0.000000 -4291, -3.000000, 174.000000, 171.000000, 0.000000 -4292, -3.000000, 174.000000, 171.000000, 0.000000 -4293, -3.000000, 174.000000, 171.000000, 0.000000 -4294, -3.000000, 174.000000, 171.000000, 0.000000 -4295, -3.000000, 174.000000, 171.000000, 0.000000 -4296, -3.000000, 174.000000, 171.000000, 0.000000 -4297, -3.000000, 174.000000, 171.000000, 0.000000 -4298, -3.000000, 174.000000, 171.000000, 0.000000 -4299, -3.000000, 174.000000, 171.000000, 0.000000 -4300, -3.000000, 176.000000, 174.000000, 0.000000 -4301, -3.000000, 176.000000, 174.000000, 0.000000 -4302, -3.000000, 176.000000, 174.000000, 0.000000 -4303, -3.000000, 176.000000, 174.000000, 0.000000 -4304, -3.000000, 176.000000, 174.000000, 0.000000 -4305, -3.000000, 176.000000, 174.000000, 0.000000 -4306, -3.000000, 176.000000, 174.000000, 0.000000 -4307, -3.000000, 176.000000, 174.000000, 0.000000 -4308, -3.000000, 176.000000, 174.000000, 0.000000 -4309, -3.000000, 176.000000, 174.000000, 0.000000 -4310, -3.000000, 176.000000, 174.000000, 0.000000 -4311, -3.000000, 176.000000, 174.000000, 0.000000 -4312, -3.000000, 176.000000, 174.000000, 0.000000 -4313, -3.000000, 176.000000, 174.000000, 0.000000 -4314, -3.000000, 176.000000, 174.000000, 0.000000 -4315, -3.000000, 176.000000, 174.000000, 0.000000 -4316, -3.000000, 176.000000, 174.000000, 0.000000 -4317, -3.000000, 176.000000, 174.000000, 0.000000 -4318, -3.000000, 176.000000, 174.000000, 0.000000 -4319, -3.000000, 176.000000, 174.000000, 0.000000 -4320, -3.000000, 176.000000, 174.000000, 0.000000 -4321, -3.000000, 176.000000, 174.000000, 0.000000 -4322, -3.000000, 176.000000, 174.000000, 0.000000 -4323, -3.000000, 176.000000, 174.000000, 0.000000 -4324, -3.000000, 176.000000, 174.000000, 0.000000 -4325, -3.000000, 176.000000, 174.000000, 0.000000 -4326, -3.000000, 176.000000, 174.000000, 0.000000 -4327, -3.000000, 176.000000, 174.000000, 0.000000 -4328, -3.000000, 176.000000, 174.000000, 0.000000 -4329, -3.000000, 176.000000, 174.000000, 0.000000 -4330, -3.000000, 176.000000, 174.000000, 0.000000 -4331, -3.000000, 176.000000, 174.000000, 0.000000 -4332, -3.000000, 176.000000, 174.000000, 0.000000 -4333, -3.000000, 176.000000, 174.000000, 0.000000 -4334, -3.000000, 176.000000, 174.000000, 0.000000 -4335, -3.000000, 176.000000, 174.000000, 0.000000 -4336, -3.000000, 176.000000, 174.000000, 0.000000 -4337, -3.000000, 176.000000, 174.000000, 0.000000 -4338, -3.000000, 176.000000, 174.000000, 0.000000 -4339, -3.000000, 176.000000, 174.000000, 0.000000 -4340, -3.000000, 176.000000, 174.000000, 0.000000 -4341, -3.000000, 176.000000, 174.000000, 0.000000 -4342, -3.000000, 176.000000, 174.000000, 0.000000 -4343, -3.000000, 176.000000, 174.000000, 0.000000 -4344, -3.000000, 176.000000, 174.000000, 0.000000 -4345, -3.000000, 176.000000, 174.000000, 0.000000 -4346, -3.000000, 176.000000, 174.000000, 0.000000 -4347, -3.000000, 176.000000, 174.000000, 0.000000 -4348, -3.000000, 176.000000, 174.000000, 0.000000 -4349, -3.000000, 176.000000, 174.000000, 0.000000 -4350, -3.000000, 176.000000, 174.000000, 0.000000 -4351, -3.000000, 176.000000, 174.000000, 0.000000 -4352, -3.000000, 176.000000, 174.000000, 0.000000 -4353, -3.000000, 176.000000, 174.000000, 0.000000 -4354, -3.000000, 176.000000, 174.000000, 0.000000 -4355, -3.000000, 176.000000, 174.000000, 0.000000 -4356, -3.000000, 176.000000, 174.000000, 0.000000 -4357, -3.000000, 176.000000, 174.000000, 0.000000 -4358, -3.000000, 176.000000, 174.000000, 0.000000 -4359, -3.000000, 176.000000, 174.000000, 0.000000 -4360, -3.000000, 176.000000, 174.000000, 0.000000 -4361, -3.000000, 176.000000, 174.000000, 0.000000 -4362, -3.000000, 176.000000, 174.000000, 0.000000 -4363, -3.000000, 176.000000, 174.000000, 0.000000 -4364, -3.000000, 176.000000, 174.000000, 0.000000 -4365, -3.000000, 176.000000, 174.000000, 0.000000 -4366, -3.000000, 176.000000, 174.000000, 0.000000 -4367, -3.000000, 176.000000, 174.000000, 0.000000 -4368, -3.000000, 176.000000, 174.000000, 0.000000 -4369, -3.000000, 176.000000, 174.000000, 0.000000 -4370, -3.000000, 176.000000, 174.000000, 0.000000 -4371, -3.000000, 176.000000, 174.000000, 0.000000 -4372, -3.000000, 176.000000, 174.000000, 0.000000 -4373, -3.000000, 176.000000, 174.000000, 0.000000 -4374, -3.000000, 176.000000, 174.000000, 0.000000 -4375, -3.000000, 176.000000, 174.000000, 0.000000 -4376, -3.000000, 176.000000, 174.000000, 0.000000 -4377, -3.000000, 176.000000, 174.000000, 0.000000 -4378, -3.000000, 176.000000, 174.000000, 0.000000 -4379, -3.000000, 176.000000, 174.000000, 0.000000 -4380, -3.000000, 176.000000, 174.000000, 0.000000 -4381, -3.000000, 176.000000, 174.000000, 0.000000 -4382, -3.000000, 176.000000, 174.000000, 0.000000 -4383, -3.000000, 176.000000, 174.000000, 0.000000 -4384, -3.000000, 176.000000, 174.000000, 0.000000 -4385, -3.000000, 176.000000, 174.000000, 0.000000 -4386, -3.000000, 176.000000, 174.000000, 0.000000 -4387, -3.000000, 176.000000, 174.000000, 0.000000 -4388, -3.000000, 176.000000, 174.000000, 0.000000 -4389, -3.000000, 176.000000, 174.000000, 0.000000 -4390, -3.000000, 176.000000, 174.000000, 0.000000 -4391, -3.000000, 176.000000, 174.000000, 0.000000 -4392, -3.000000, 176.000000, 174.000000, 0.000000 -4393, -3.000000, 176.000000, 174.000000, 0.000000 -4394, -3.000000, 176.000000, 174.000000, 0.000000 -4395, -3.000000, 176.000000, 174.000000, 0.000000 -4396, -3.000000, 176.000000, 174.000000, 0.000000 -4397, -3.000000, 176.000000, 174.000000, 0.000000 -4398, -3.000000, 176.000000, 174.000000, 0.000000 -4399, -3.000000, 176.000000, 174.000000, 0.000000 -4400, -3.000000, 178.000000, 177.000000, 0.000000 -4401, -3.000000, 178.000000, 177.000000, 0.000000 -4402, -3.000000, 178.000000, 177.000000, 0.000000 -4403, -3.000000, 178.000000, 177.000000, 0.000000 -4404, -3.000000, 178.000000, 177.000000, 0.000000 -4405, -3.000000, 178.000000, 177.000000, 0.000000 -4406, -3.000000, 178.000000, 177.000000, 0.000000 -4407, -3.000000, 178.000000, 177.000000, 0.000000 -4408, -3.000000, 178.000000, 177.000000, 0.000000 -4409, -3.000000, 178.000000, 177.000000, 0.000000 -4410, -3.000000, 178.000000, 177.000000, 0.000000 -4411, -3.000000, 178.000000, 177.000000, 0.000000 -4412, -3.000000, 178.000000, 177.000000, 0.000000 -4413, -3.000000, 178.000000, 177.000000, 0.000000 -4414, -3.000000, 178.000000, 177.000000, 0.000000 -4415, -3.000000, 178.000000, 177.000000, 0.000000 -4416, -3.000000, 178.000000, 177.000000, 0.000000 -4417, -3.000000, 178.000000, 177.000000, 0.000000 -4418, -3.000000, 178.000000, 177.000000, 0.000000 -4419, -3.000000, 178.000000, 177.000000, 0.000000 -4420, -3.000000, 178.000000, 177.000000, 0.000000 -4421, -3.000000, 178.000000, 177.000000, 0.000000 -4422, -3.000000, 178.000000, 177.000000, 0.000000 -4423, -3.000000, 178.000000, 177.000000, 0.000000 -4424, -3.000000, 178.000000, 177.000000, 0.000000 -4425, -3.000000, 178.000000, 177.000000, 0.000000 -4426, -3.000000, 178.000000, 177.000000, 0.000000 -4427, -3.000000, 178.000000, 177.000000, 0.000000 -4428, -3.000000, 178.000000, 177.000000, 0.000000 -4429, -3.000000, 178.000000, 177.000000, 0.000000 -4430, -3.000000, 178.000000, 177.000000, 0.000000 -4431, -3.000000, 178.000000, 177.000000, 0.000000 -4432, -3.000000, 178.000000, 177.000000, 0.000000 -4433, -3.000000, 178.000000, 177.000000, 0.000000 -4434, -3.000000, 178.000000, 177.000000, 0.000000 -4435, -3.000000, 178.000000, 177.000000, 0.000000 -4436, -3.000000, 178.000000, 177.000000, 0.000000 -4437, -3.000000, 178.000000, 177.000000, 0.000000 -4438, -3.000000, 178.000000, 177.000000, 0.000000 -4439, -3.000000, 178.000000, 177.000000, 0.000000 -4440, -3.000000, 178.000000, 177.000000, 0.000000 -4441, -3.000000, 178.000000, 177.000000, 0.000000 -4442, -3.000000, 178.000000, 177.000000, 0.000000 -4443, -3.000000, 178.000000, 177.000000, 0.000000 -4444, -3.000000, 178.000000, 177.000000, 0.000000 -4445, -3.000000, 178.000000, 177.000000, 0.000000 -4446, -3.000000, 178.000000, 177.000000, 0.000000 -4447, -3.000000, 178.000000, 177.000000, 0.000000 -4448, -3.000000, 178.000000, 177.000000, 0.000000 -4449, -3.000000, 178.000000, 177.000000, 0.000000 -4450, -3.000000, 178.000000, 177.000000, 0.000000 -4451, -3.000000, 178.000000, 177.000000, 0.000000 -4452, -3.000000, 178.000000, 177.000000, 0.000000 -4453, -3.000000, 178.000000, 177.000000, 0.000000 -4454, -3.000000, 178.000000, 177.000000, 0.000000 -4455, -3.000000, 178.000000, 177.000000, 0.000000 -4456, -3.000000, 178.000000, 177.000000, 0.000000 -4457, -3.000000, 178.000000, 177.000000, 0.000000 -4458, -3.000000, 178.000000, 177.000000, 0.000000 -4459, -3.000000, 178.000000, 177.000000, 0.000000 -4460, -3.000000, 178.000000, 177.000000, 0.000000 -4461, -3.000000, 178.000000, 177.000000, 0.000000 -4462, -3.000000, 178.000000, 177.000000, 0.000000 -4463, -3.000000, 178.000000, 177.000000, 0.000000 -4464, -3.000000, 178.000000, 177.000000, 0.000000 -4465, -3.000000, 178.000000, 177.000000, 0.000000 -4466, -3.000000, 178.000000, 177.000000, 0.000000 -4467, -3.000000, 178.000000, 177.000000, 0.000000 -4468, -3.000000, 178.000000, 177.000000, 0.000000 -4469, -3.000000, 178.000000, 177.000000, 0.000000 -4470, -3.000000, 178.000000, 177.000000, 0.000000 -4471, -3.000000, 178.000000, 177.000000, 0.000000 -4472, -3.000000, 178.000000, 177.000000, 0.000000 -4473, -3.000000, 178.000000, 177.000000, 0.000000 -4474, -3.000000, 178.000000, 177.000000, 0.000000 -4475, -3.000000, 178.000000, 177.000000, 0.000000 -4476, -3.000000, 178.000000, 177.000000, 0.000000 -4477, -3.000000, 178.000000, 177.000000, 0.000000 -4478, -3.000000, 178.000000, 177.000000, 0.000000 -4479, -3.000000, 178.000000, 177.000000, 0.000000 -4480, -3.000000, 178.000000, 177.000000, 0.000000 -4481, -3.000000, 178.000000, 177.000000, 0.000000 -4482, -3.000000, 178.000000, 177.000000, 0.000000 -4483, -3.000000, 178.000000, 177.000000, 0.000000 -4484, -3.000000, 178.000000, 177.000000, 0.000000 -4485, -3.000000, 178.000000, 177.000000, 0.000000 -4486, -3.000000, 178.000000, 177.000000, 0.000000 -4487, -3.000000, 178.000000, 177.000000, 0.000000 -4488, -3.000000, 178.000000, 177.000000, 0.000000 -4489, -3.000000, 178.000000, 177.000000, 0.000000 -4490, -3.000000, 178.000000, 177.000000, 0.000000 -4491, -3.000000, 178.000000, 177.000000, 0.000000 -4492, -3.000000, 178.000000, 177.000000, 0.000000 -4493, -3.000000, 178.000000, 177.000000, 0.000000 -4494, -3.000000, 178.000000, 177.000000, 0.000000 -4495, -3.000000, 178.000000, 177.000000, 0.000000 -4496, -3.000000, 178.000000, 177.000000, 0.000000 -4497, -3.000000, 178.000000, 177.000000, 0.000000 -4498, -3.000000, 178.000000, 177.000000, 0.000000 -4499, -3.000000, 178.000000, 177.000000, 0.000000 -4500, -3.000000, 180.000000, 180.000000, 0.000000 -4501, -3.000000, 180.000000, 180.000000, 0.000000 -4502, -3.000000, 180.000000, 180.000000, 0.000000 -4503, -3.000000, 180.000000, 180.000000, 0.000000 -4504, -3.000000, 180.000000, 180.000000, 0.000000 -4505, -3.000000, 180.000000, 180.000000, 0.000000 -4506, -3.000000, 180.000000, 180.000000, 0.000000 -4507, -3.000000, 180.000000, 180.000000, 0.000000 -4508, -3.000000, 180.000000, 180.000000, 0.000000 -4509, -3.000000, 180.000000, 180.000000, 0.000000 -4510, -3.000000, 180.000000, 180.000000, 0.000000 -4511, -3.000000, 180.000000, 180.000000, 0.000000 -4512, -3.000000, 180.000000, 180.000000, 0.000000 -4513, -3.000000, 180.000000, 180.000000, 0.000000 -4514, -3.000000, 180.000000, 180.000000, 0.000000 -4515, -3.000000, 180.000000, 180.000000, 0.000000 -4516, -3.000000, 180.000000, 180.000000, 0.000000 -4517, -3.000000, 180.000000, 180.000000, 0.000000 -4518, -3.000000, 180.000000, 180.000000, 0.000000 -4519, -3.000000, 180.000000, 180.000000, 0.000000 -4520, -3.000000, 180.000000, 180.000000, 0.000000 -4521, -3.000000, 180.000000, 180.000000, 0.000000 -4522, -3.000000, 180.000000, 180.000000, 0.000000 -4523, -3.000000, 180.000000, 180.000000, 0.000000 -4524, -3.000000, 180.000000, 180.000000, 0.000000 -4525, -3.000000, 180.000000, 180.000000, 0.000000 -4526, -3.000000, 180.000000, 180.000000, 0.000000 -4527, -3.000000, 180.000000, 180.000000, 0.000000 -4528, -3.000000, 180.000000, 180.000000, 0.000000 -4529, -3.000000, 180.000000, 180.000000, 0.000000 -4530, -3.000000, 180.000000, 180.000000, 0.000000 -4531, -3.000000, 180.000000, 180.000000, 0.000000 -4532, -3.000000, 180.000000, 180.000000, 0.000000 -4533, -3.000000, 180.000000, 180.000000, 0.000000 -4534, -3.000000, 180.000000, 180.000000, 0.000000 -4535, -3.000000, 180.000000, 180.000000, 0.000000 -4536, -3.000000, 180.000000, 180.000000, 0.000000 -4537, -3.000000, 180.000000, 180.000000, 0.000000 -4538, -3.000000, 180.000000, 180.000000, 0.000000 -4539, -3.000000, 180.000000, 180.000000, 0.000000 -4540, -3.000000, 180.000000, 180.000000, 0.000000 -4541, -3.000000, 180.000000, 180.000000, 0.000000 -4542, -3.000000, 180.000000, 180.000000, 0.000000 -4543, -3.000000, 180.000000, 180.000000, 0.000000 -4544, -3.000000, 180.000000, 180.000000, 0.000000 -4545, -3.000000, 180.000000, 180.000000, 0.000000 -4546, -3.000000, 180.000000, 180.000000, 0.000000 -4547, -3.000000, 180.000000, 180.000000, 0.000000 -4548, -3.000000, 180.000000, 180.000000, 0.000000 -4549, -3.000000, 180.000000, 180.000000, 0.000000 -4550, -3.000000, 180.000000, 180.000000, 0.000000 -4551, -3.000000, 180.000000, 180.000000, 0.000000 -4552, -3.000000, 180.000000, 180.000000, 0.000000 -4553, -3.000000, 180.000000, 180.000000, 0.000000 -4554, -3.000000, 180.000000, 180.000000, 0.000000 -4555, -3.000000, 180.000000, 180.000000, 0.000000 -4556, -3.000000, 180.000000, 180.000000, 0.000000 -4557, -3.000000, 180.000000, 180.000000, 0.000000 -4558, -3.000000, 180.000000, 180.000000, 0.000000 -4559, -3.000000, 180.000000, 180.000000, 0.000000 -4560, -3.000000, 180.000000, 180.000000, 0.000000 -4561, -3.000000, 180.000000, 180.000000, 0.000000 -4562, -3.000000, 180.000000, 180.000000, 0.000000 -4563, -3.000000, 180.000000, 180.000000, 0.000000 -4564, -3.000000, 180.000000, 180.000000, 0.000000 -4565, -3.000000, 180.000000, 180.000000, 0.000000 -4566, -3.000000, 180.000000, 180.000000, 0.000000 -4567, -3.000000, 180.000000, 180.000000, 0.000000 -4568, -3.000000, 180.000000, 180.000000, 0.000000 -4569, -3.000000, 180.000000, 180.000000, 0.000000 -4570, -3.000000, 180.000000, 180.000000, 0.000000 -4571, -3.000000, 180.000000, 180.000000, 0.000000 -4572, -3.000000, 180.000000, 180.000000, 0.000000 -4573, -3.000000, 180.000000, 180.000000, 0.000000 -4574, -3.000000, 180.000000, 180.000000, 0.000000 -4575, -3.000000, 180.000000, 180.000000, 0.000000 -4576, -3.000000, 180.000000, 180.000000, 0.000000 -4577, -3.000000, 180.000000, 180.000000, 0.000000 -4578, -3.000000, 180.000000, 180.000000, 0.000000 -4579, -3.000000, 180.000000, 180.000000, 0.000000 -4580, -3.000000, 180.000000, 180.000000, 0.000000 -4581, -3.000000, 180.000000, 180.000000, 0.000000 -4582, -3.000000, 180.000000, 180.000000, 0.000000 -4583, -3.000000, 180.000000, 180.000000, 0.000000 -4584, -3.000000, 180.000000, 180.000000, 0.000000 -4585, -3.000000, 180.000000, 180.000000, 0.000000 -4586, -3.000000, 180.000000, 180.000000, 0.000000 -4587, -3.000000, 180.000000, 180.000000, 0.000000 -4588, -3.000000, 180.000000, 180.000000, 0.000000 -4589, -3.000000, 180.000000, 180.000000, 0.000000 -4590, -3.000000, 180.000000, 180.000000, 0.000000 -4591, -3.000000, 180.000000, 180.000000, 0.000000 -4592, -3.000000, 180.000000, 180.000000, 0.000000 -4593, -3.000000, 180.000000, 180.000000, 0.000000 -4594, -3.000000, 180.000000, 180.000000, 0.000000 -4595, -3.000000, 180.000000, 180.000000, 0.000000 -4596, -3.000000, 180.000000, 180.000000, 0.000000 -4597, -3.000000, 180.000000, 180.000000, 0.000000 -4598, -3.000000, 180.000000, 180.000000, 0.000000 -4599, -3.000000, 180.000000, 180.000000, 0.000000 -4600, -3.000000, 182.000000, 183.000000, 0.000000 -4601, -3.000000, 182.000000, 183.000000, 0.000000 -4602, -3.000000, 182.000000, 183.000000, 0.000000 -4603, -3.000000, 182.000000, 183.000000, 0.000000 -4604, -3.000000, 182.000000, 183.000000, 0.000000 -4605, -3.000000, 182.000000, 183.000000, 0.000000 -4606, -3.000000, 182.000000, 183.000000, 0.000000 -4607, -3.000000, 182.000000, 183.000000, 0.000000 -4608, -3.000000, 182.000000, 183.000000, 0.000000 -4609, -3.000000, 182.000000, 183.000000, 0.000000 -4610, -3.000000, 182.000000, 183.000000, 0.000000 -4611, -3.000000, 182.000000, 183.000000, 0.000000 -4612, -3.000000, 182.000000, 183.000000, 0.000000 -4613, -3.000000, 182.000000, 183.000000, 0.000000 -4614, -3.000000, 182.000000, 183.000000, 0.000000 -4615, -3.000000, 182.000000, 183.000000, 0.000000 -4616, -3.000000, 182.000000, 183.000000, 0.000000 -4617, -3.000000, 182.000000, 183.000000, 0.000000 -4618, -3.000000, 182.000000, 183.000000, 0.000000 -4619, -3.000000, 182.000000, 183.000000, 0.000000 -4620, -3.000000, 182.000000, 183.000000, 0.000000 -4621, -3.000000, 182.000000, 183.000000, 0.000000 -4622, -3.000000, 182.000000, 183.000000, 0.000000 -4623, -3.000000, 182.000000, 183.000000, 0.000000 -4624, -3.000000, 182.000000, 183.000000, 0.000000 -4625, -3.000000, 182.000000, 183.000000, 0.000000 -4626, -3.000000, 182.000000, 183.000000, 0.000000 -4627, -3.000000, 182.000000, 183.000000, 0.000000 -4628, -3.000000, 182.000000, 183.000000, 0.000000 -4629, -3.000000, 182.000000, 183.000000, 0.000000 -4630, -3.000000, 182.000000, 183.000000, 0.000000 -4631, -3.000000, 182.000000, 183.000000, 0.000000 -4632, -3.000000, 182.000000, 183.000000, 0.000000 -4633, -3.000000, 182.000000, 183.000000, 0.000000 -4634, -3.000000, 182.000000, 183.000000, 0.000000 -4635, -3.000000, 182.000000, 183.000000, 0.000000 -4636, -3.000000, 182.000000, 183.000000, 0.000000 -4637, -3.000000, 182.000000, 183.000000, 0.000000 -4638, -3.000000, 182.000000, 183.000000, 0.000000 -4639, -3.000000, 182.000000, 183.000000, 0.000000 -4640, -3.000000, 182.000000, 183.000000, 0.000000 -4641, -3.000000, 182.000000, 183.000000, 0.000000 -4642, -3.000000, 182.000000, 183.000000, 0.000000 -4643, -3.000000, 182.000000, 183.000000, 0.000000 -4644, -3.000000, 182.000000, 183.000000, 0.000000 -4645, -3.000000, 182.000000, 183.000000, 0.000000 -4646, -3.000000, 182.000000, 183.000000, 0.000000 -4647, -3.000000, 182.000000, 183.000000, 0.000000 -4648, -3.000000, 182.000000, 183.000000, 0.000000 -4649, -3.000000, 182.000000, 183.000000, 0.000000 -4650, -3.000000, 182.000000, 183.000000, 0.000000 -4651, -3.000000, 182.000000, 183.000000, 0.000000 -4652, -3.000000, 182.000000, 183.000000, 0.000000 -4653, -3.000000, 182.000000, 183.000000, 0.000000 -4654, -3.000000, 182.000000, 183.000000, 0.000000 -4655, -3.000000, 182.000000, 183.000000, 0.000000 -4656, -3.000000, 182.000000, 183.000000, 0.000000 -4657, -3.000000, 182.000000, 183.000000, 0.000000 -4658, -3.000000, 182.000000, 183.000000, 0.000000 -4659, -3.000000, 182.000000, 183.000000, 0.000000 -4660, -3.000000, 182.000000, 183.000000, 0.000000 -4661, -3.000000, 182.000000, 183.000000, 0.000000 -4662, -3.000000, 182.000000, 183.000000, 0.000000 -4663, -3.000000, 182.000000, 183.000000, 0.000000 -4664, -3.000000, 182.000000, 183.000000, 0.000000 -4665, -3.000000, 182.000000, 183.000000, 0.000000 -4666, -3.000000, 182.000000, 183.000000, 0.000000 -4667, -3.000000, 182.000000, 183.000000, 0.000000 -4668, -3.000000, 182.000000, 183.000000, 0.000000 -4669, -3.000000, 182.000000, 183.000000, 0.000000 -4670, -3.000000, 182.000000, 183.000000, 0.000000 -4671, -3.000000, 182.000000, 183.000000, 0.000000 -4672, -3.000000, 182.000000, 183.000000, 0.000000 -4673, -3.000000, 182.000000, 183.000000, 0.000000 -4674, -3.000000, 182.000000, 183.000000, 0.000000 -4675, -3.000000, 182.000000, 183.000000, 0.000000 -4676, -3.000000, 182.000000, 183.000000, 0.000000 -4677, -3.000000, 182.000000, 183.000000, 0.000000 -4678, -3.000000, 182.000000, 183.000000, 0.000000 -4679, -3.000000, 182.000000, 183.000000, 0.000000 -4680, -3.000000, 182.000000, 183.000000, 0.000000 -4681, -3.000000, 182.000000, 183.000000, 0.000000 -4682, -3.000000, 182.000000, 183.000000, 0.000000 -4683, -3.000000, 182.000000, 183.000000, 0.000000 -4684, -3.000000, 182.000000, 183.000000, 0.000000 -4685, -3.000000, 182.000000, 183.000000, 0.000000 -4686, -3.000000, 182.000000, 183.000000, 0.000000 -4687, -3.000000, 182.000000, 183.000000, 0.000000 -4688, -3.000000, 182.000000, 183.000000, 0.000000 -4689, -3.000000, 182.000000, 183.000000, 0.000000 -4690, -3.000000, 182.000000, 183.000000, 0.000000 -4691, -3.000000, 182.000000, 183.000000, 0.000000 -4692, -3.000000, 182.000000, 183.000000, 0.000000 -4693, -3.000000, 182.000000, 183.000000, 0.000000 -4694, -3.000000, 182.000000, 183.000000, 0.000000 -4695, -3.000000, 182.000000, 183.000000, 0.000000 -4696, -3.000000, 182.000000, 183.000000, 0.000000 -4697, -3.000000, 182.000000, 183.000000, 0.000000 -4698, -3.000000, 182.000000, 183.000000, 0.000000 -4699, -3.000000, 182.000000, 183.000000, 0.000000 -4700, -3.000000, 184.000000, 186.000000, 0.000000 -4701, -3.000000, 184.000000, 186.000000, 0.000000 -4702, -3.000000, 184.000000, 186.000000, 0.000000 -4703, -3.000000, 184.000000, 186.000000, 0.000000 -4704, -3.000000, 184.000000, 186.000000, 0.000000 -4705, -3.000000, 184.000000, 186.000000, 0.000000 -4706, -3.000000, 184.000000, 186.000000, 0.000000 -4707, -3.000000, 184.000000, 186.000000, 0.000000 -4708, -3.000000, 184.000000, 186.000000, 0.000000 -4709, -3.000000, 184.000000, 186.000000, 0.000000 -4710, -3.000000, 184.000000, 186.000000, 0.000000 -4711, -3.000000, 184.000000, 186.000000, 0.000000 -4712, -3.000000, 184.000000, 186.000000, 0.000000 -4713, -3.000000, 184.000000, 186.000000, 0.000000 -4714, -3.000000, 184.000000, 186.000000, 0.000000 -4715, -3.000000, 184.000000, 186.000000, 0.000000 -4716, -3.000000, 184.000000, 186.000000, 0.000000 -4717, -3.000000, 184.000000, 186.000000, 0.000000 -4718, -3.000000, 184.000000, 186.000000, 0.000000 -4719, -3.000000, 184.000000, 186.000000, 0.000000 -4720, -3.000000, 184.000000, 186.000000, 0.000000 -4721, -3.000000, 184.000000, 186.000000, 0.000000 -4722, -3.000000, 184.000000, 186.000000, 0.000000 -4723, -3.000000, 184.000000, 186.000000, 0.000000 -4724, -3.000000, 184.000000, 186.000000, 0.000000 -4725, -3.000000, 184.000000, 186.000000, 0.000000 -4726, -3.000000, 184.000000, 186.000000, 0.000000 -4727, -3.000000, 184.000000, 186.000000, 0.000000 -4728, -3.000000, 184.000000, 186.000000, 0.000000 -4729, -3.000000, 184.000000, 186.000000, 0.000000 -4730, -3.000000, 184.000000, 186.000000, 0.000000 -4731, -3.000000, 184.000000, 186.000000, 0.000000 -4732, -3.000000, 184.000000, 186.000000, 0.000000 -4733, -3.000000, 184.000000, 186.000000, 0.000000 -4734, -3.000000, 184.000000, 186.000000, 0.000000 -4735, -3.000000, 184.000000, 186.000000, 0.000000 -4736, -3.000000, 184.000000, 186.000000, 0.000000 -4737, -3.000000, 184.000000, 186.000000, 0.000000 -4738, -3.000000, 184.000000, 186.000000, 0.000000 -4739, -3.000000, 184.000000, 186.000000, 0.000000 -4740, -3.000000, 184.000000, 186.000000, 0.000000 -4741, -3.000000, 184.000000, 186.000000, 0.000000 -4742, -3.000000, 184.000000, 186.000000, 0.000000 -4743, -3.000000, 184.000000, 186.000000, 0.000000 -4744, -3.000000, 184.000000, 186.000000, 0.000000 -4745, -3.000000, 184.000000, 186.000000, 0.000000 -4746, -3.000000, 184.000000, 186.000000, 0.000000 -4747, -3.000000, 184.000000, 186.000000, 0.000000 -4748, -3.000000, 184.000000, 186.000000, 0.000000 -4749, -3.000000, 184.000000, 186.000000, 0.000000 -4750, -3.000000, 184.000000, 186.000000, 0.000000 -4751, -3.000000, 184.000000, 186.000000, 0.000000 -4752, -3.000000, 184.000000, 186.000000, 0.000000 -4753, -3.000000, 184.000000, 186.000000, 0.000000 -4754, -3.000000, 184.000000, 186.000000, 0.000000 -4755, -3.000000, 184.000000, 186.000000, 0.000000 -4756, -3.000000, 184.000000, 186.000000, 0.000000 -4757, -3.000000, 184.000000, 186.000000, 0.000000 -4758, -3.000000, 184.000000, 186.000000, 0.000000 -4759, -3.000000, 184.000000, 186.000000, 0.000000 -4760, -3.000000, 184.000000, 186.000000, 0.000000 -4761, -3.000000, 184.000000, 186.000000, 0.000000 -4762, -3.000000, 184.000000, 186.000000, 0.000000 -4763, -3.000000, 184.000000, 186.000000, 0.000000 -4764, -3.000000, 184.000000, 186.000000, 0.000000 -4765, -3.000000, 184.000000, 186.000000, 0.000000 -4766, -3.000000, 184.000000, 186.000000, 0.000000 -4767, -3.000000, 184.000000, 186.000000, 0.000000 -4768, -3.000000, 184.000000, 186.000000, 0.000000 -4769, -3.000000, 184.000000, 186.000000, 0.000000 -4770, -3.000000, 184.000000, 186.000000, 0.000000 -4771, -3.000000, 184.000000, 186.000000, 0.000000 -4772, -3.000000, 184.000000, 186.000000, 0.000000 -4773, -3.000000, 184.000000, 186.000000, 0.000000 -4774, -3.000000, 184.000000, 186.000000, 0.000000 -4775, -3.000000, 184.000000, 186.000000, 0.000000 -4776, -3.000000, 184.000000, 186.000000, 0.000000 -4777, -3.000000, 184.000000, 186.000000, 0.000000 -4778, -3.000000, 184.000000, 186.000000, 0.000000 -4779, -3.000000, 184.000000, 186.000000, 0.000000 -4780, -3.000000, 184.000000, 186.000000, 0.000000 -4781, -3.000000, 184.000000, 186.000000, 0.000000 -4782, -3.000000, 184.000000, 186.000000, 0.000000 -4783, -3.000000, 184.000000, 186.000000, 0.000000 -4784, -3.000000, 184.000000, 186.000000, 0.000000 -4785, -3.000000, 184.000000, 186.000000, 0.000000 -4786, -3.000000, 184.000000, 186.000000, 0.000000 -4787, -3.000000, 184.000000, 186.000000, 0.000000 -4788, -3.000000, 184.000000, 186.000000, 0.000000 -4789, -3.000000, 184.000000, 186.000000, 0.000000 -4790, -3.000000, 184.000000, 186.000000, 0.000000 -4791, -3.000000, 184.000000, 186.000000, 0.000000 -4792, -3.000000, 184.000000, 186.000000, 0.000000 -4793, -3.000000, 184.000000, 186.000000, 0.000000 -4794, -3.000000, 184.000000, 186.000000, 0.000000 -4795, -3.000000, 184.000000, 186.000000, 0.000000 -4796, -3.000000, 184.000000, 186.000000, 0.000000 -4797, -3.000000, 184.000000, 186.000000, 0.000000 -4798, -3.000000, 184.000000, 186.000000, 0.000000 -4799, -3.000000, 184.000000, 186.000000, 0.000000 -4800, -3.000000, 186.000000, 189.000000, 0.000000 -4801, -3.000000, 186.000000, 189.000000, 0.000000 -4802, -3.000000, 186.000000, 189.000000, 0.000000 -4803, -3.000000, 186.000000, 189.000000, 0.000000 -4804, -3.000000, 186.000000, 189.000000, 0.000000 -4805, -3.000000, 186.000000, 189.000000, 0.000000 -4806, -3.000000, 186.000000, 189.000000, 0.000000 -4807, -3.000000, 186.000000, 189.000000, 0.000000 -4808, -3.000000, 186.000000, 189.000000, 0.000000 -4809, -3.000000, 186.000000, 189.000000, 0.000000 -4810, -3.000000, 186.000000, 189.000000, 0.000000 -4811, -3.000000, 186.000000, 189.000000, 0.000000 -4812, -3.000000, 186.000000, 189.000000, 0.000000 -4813, -3.000000, 186.000000, 189.000000, 0.000000 -4814, -3.000000, 186.000000, 189.000000, 0.000000 -4815, -3.000000, 186.000000, 189.000000, 0.000000 -4816, -3.000000, 186.000000, 189.000000, 0.000000 -4817, -3.000000, 186.000000, 189.000000, 0.000000 -4818, -3.000000, 186.000000, 189.000000, 0.000000 -4819, -3.000000, 186.000000, 189.000000, 0.000000 -4820, -3.000000, 186.000000, 189.000000, 0.000000 -4821, -3.000000, 186.000000, 189.000000, 0.000000 -4822, -3.000000, 186.000000, 189.000000, 0.000000 -4823, -3.000000, 186.000000, 189.000000, 0.000000 -4824, -3.000000, 186.000000, 189.000000, 0.000000 -4825, -3.000000, 186.000000, 189.000000, 0.000000 -4826, -3.000000, 186.000000, 189.000000, 0.000000 -4827, -3.000000, 186.000000, 189.000000, 0.000000 -4828, -3.000000, 186.000000, 189.000000, 0.000000 -4829, -3.000000, 186.000000, 189.000000, 0.000000 -4830, -3.000000, 186.000000, 189.000000, 0.000000 -4831, -3.000000, 186.000000, 189.000000, 0.000000 -4832, -3.000000, 186.000000, 189.000000, 0.000000 -4833, -3.000000, 186.000000, 189.000000, 0.000000 -4834, -3.000000, 186.000000, 189.000000, 0.000000 -4835, -3.000000, 186.000000, 189.000000, 0.000000 -4836, -3.000000, 186.000000, 189.000000, 0.000000 -4837, -3.000000, 186.000000, 189.000000, 0.000000 -4838, -3.000000, 186.000000, 189.000000, 0.000000 -4839, -3.000000, 186.000000, 189.000000, 0.000000 -4840, -3.000000, 186.000000, 189.000000, 0.000000 -4841, -3.000000, 186.000000, 189.000000, 0.000000 -4842, -3.000000, 186.000000, 189.000000, 0.000000 -4843, -3.000000, 186.000000, 189.000000, 0.000000 -4844, -3.000000, 186.000000, 189.000000, 0.000000 -4845, -3.000000, 186.000000, 189.000000, 0.000000 -4846, -3.000000, 186.000000, 189.000000, 0.000000 -4847, -3.000000, 186.000000, 189.000000, 0.000000 -4848, -3.000000, 186.000000, 189.000000, 0.000000 -4849, -3.000000, 186.000000, 189.000000, 0.000000 -4850, -3.000000, 186.000000, 189.000000, 0.000000 -4851, -3.000000, 186.000000, 189.000000, 0.000000 -4852, -3.000000, 186.000000, 189.000000, 0.000000 -4853, -3.000000, 186.000000, 189.000000, 0.000000 -4854, -3.000000, 186.000000, 189.000000, 0.000000 -4855, -3.000000, 186.000000, 189.000000, 0.000000 -4856, -3.000000, 186.000000, 189.000000, 0.000000 -4857, -3.000000, 186.000000, 189.000000, 0.000000 -4858, -3.000000, 186.000000, 189.000000, 0.000000 -4859, -3.000000, 186.000000, 189.000000, 0.000000 -4860, -3.000000, 186.000000, 189.000000, 0.000000 -4861, -3.000000, 186.000000, 189.000000, 0.000000 -4862, -3.000000, 186.000000, 189.000000, 0.000000 -4863, -3.000000, 186.000000, 189.000000, 0.000000 -4864, -3.000000, 186.000000, 189.000000, 0.000000 -4865, -3.000000, 186.000000, 189.000000, 0.000000 -4866, -3.000000, 186.000000, 189.000000, 0.000000 -4867, -3.000000, 186.000000, 189.000000, 0.000000 -4868, -3.000000, 186.000000, 189.000000, 0.000000 -4869, -3.000000, 186.000000, 189.000000, 0.000000 -4870, -3.000000, 186.000000, 189.000000, 0.000000 -4871, -3.000000, 186.000000, 189.000000, 0.000000 -4872, -3.000000, 186.000000, 189.000000, 0.000000 -4873, -3.000000, 186.000000, 189.000000, 0.000000 -4874, -3.000000, 186.000000, 189.000000, 0.000000 -4875, -3.000000, 186.000000, 189.000000, 0.000000 -4876, -3.000000, 186.000000, 189.000000, 0.000000 -4877, -3.000000, 186.000000, 189.000000, 0.000000 -4878, -3.000000, 186.000000, 189.000000, 0.000000 -4879, -3.000000, 186.000000, 189.000000, 0.000000 -4880, -3.000000, 186.000000, 189.000000, 0.000000 -4881, -3.000000, 186.000000, 189.000000, 0.000000 -4882, -3.000000, 186.000000, 189.000000, 0.000000 -4883, -3.000000, 186.000000, 189.000000, 0.000000 -4884, -3.000000, 186.000000, 189.000000, 0.000000 -4885, -3.000000, 186.000000, 189.000000, 0.000000 -4886, -3.000000, 186.000000, 189.000000, 0.000000 -4887, -3.000000, 186.000000, 189.000000, 0.000000 -4888, -3.000000, 186.000000, 189.000000, 0.000000 -4889, -3.000000, 186.000000, 189.000000, 0.000000 -4890, -3.000000, 186.000000, 189.000000, 0.000000 -4891, -3.000000, 186.000000, 189.000000, 0.000000 -4892, -3.000000, 186.000000, 189.000000, 0.000000 -4893, -3.000000, 186.000000, 189.000000, 0.000000 -4894, -3.000000, 186.000000, 189.000000, 0.000000 -4895, -3.000000, 186.000000, 189.000000, 0.000000 -4896, -3.000000, 186.000000, 189.000000, 0.000000 -4897, -3.000000, 186.000000, 189.000000, 0.000000 -4898, -3.000000, 186.000000, 189.000000, 0.000000 -4899, -3.000000, 186.000000, 189.000000, 0.000000 -4900, -3.000000, 188.000000, 192.000000, 0.000000 -4901, -3.000000, 188.000000, 192.000000, 0.000000 -4902, -3.000000, 188.000000, 192.000000, 0.000000 -4903, -3.000000, 188.000000, 192.000000, 0.000000 -4904, -3.000000, 188.000000, 192.000000, 0.000000 -4905, -3.000000, 188.000000, 192.000000, 0.000000 -4906, -3.000000, 188.000000, 192.000000, 0.000000 -4907, -3.000000, 188.000000, 192.000000, 0.000000 -4908, -3.000000, 188.000000, 192.000000, 0.000000 -4909, -3.000000, 188.000000, 192.000000, 0.000000 -4910, -3.000000, 188.000000, 192.000000, 0.000000 -4911, -3.000000, 188.000000, 192.000000, 0.000000 -4912, -3.000000, 188.000000, 192.000000, 0.000000 -4913, -3.000000, 188.000000, 192.000000, 0.000000 -4914, -3.000000, 188.000000, 192.000000, 0.000000 -4915, -3.000000, 188.000000, 192.000000, 0.000000 -4916, -3.000000, 188.000000, 192.000000, 0.000000 -4917, -3.000000, 188.000000, 192.000000, 0.000000 -4918, -3.000000, 188.000000, 192.000000, 0.000000 -4919, -3.000000, 188.000000, 192.000000, 0.000000 -4920, -3.000000, 188.000000, 192.000000, 0.000000 -4921, -3.000000, 188.000000, 192.000000, 0.000000 -4922, -3.000000, 188.000000, 192.000000, 0.000000 -4923, -3.000000, 188.000000, 192.000000, 0.000000 -4924, -3.000000, 188.000000, 192.000000, 0.000000 -4925, -3.000000, 188.000000, 192.000000, 0.000000 -4926, -3.000000, 188.000000, 192.000000, 0.000000 -4927, -3.000000, 188.000000, 192.000000, 0.000000 -4928, -3.000000, 188.000000, 192.000000, 0.000000 -4929, -3.000000, 188.000000, 192.000000, 0.000000 -4930, -3.000000, 188.000000, 192.000000, 0.000000 -4931, -3.000000, 188.000000, 192.000000, 0.000000 -4932, -3.000000, 188.000000, 192.000000, 0.000000 -4933, -3.000000, 188.000000, 192.000000, 0.000000 -4934, -3.000000, 188.000000, 192.000000, 0.000000 -4935, -3.000000, 188.000000, 192.000000, 0.000000 -4936, -3.000000, 188.000000, 192.000000, 0.000000 -4937, -3.000000, 188.000000, 192.000000, 0.000000 -4938, -3.000000, 188.000000, 192.000000, 0.000000 -4939, -3.000000, 188.000000, 192.000000, 0.000000 -4940, -3.000000, 188.000000, 192.000000, 0.000000 -4941, -3.000000, 188.000000, 192.000000, 0.000000 -4942, -3.000000, 188.000000, 192.000000, 0.000000 -4943, -3.000000, 188.000000, 192.000000, 0.000000 -4944, -3.000000, 188.000000, 192.000000, 0.000000 -4945, -3.000000, 188.000000, 192.000000, 0.000000 -4946, -3.000000, 188.000000, 192.000000, 0.000000 -4947, -3.000000, 188.000000, 192.000000, 0.000000 -4948, -3.000000, 188.000000, 192.000000, 0.000000 -4949, -3.000000, 188.000000, 192.000000, 0.000000 -4950, -3.000000, 188.000000, 192.000000, 0.000000 -4951, -3.000000, 188.000000, 192.000000, 0.000000 -4952, -3.000000, 188.000000, 192.000000, 0.000000 -4953, -3.000000, 188.000000, 192.000000, 0.000000 -4954, -3.000000, 188.000000, 192.000000, 0.000000 -4955, -3.000000, 188.000000, 192.000000, 0.000000 -4956, -3.000000, 188.000000, 192.000000, 0.000000 -4957, -3.000000, 188.000000, 192.000000, 0.000000 -4958, -3.000000, 188.000000, 192.000000, 0.000000 -4959, -3.000000, 188.000000, 192.000000, 0.000000 -4960, -3.000000, 188.000000, 192.000000, 0.000000 -4961, -3.000000, 188.000000, 192.000000, 0.000000 -4962, -3.000000, 188.000000, 192.000000, 0.000000 -4963, -3.000000, 188.000000, 192.000000, 0.000000 -4964, -3.000000, 188.000000, 192.000000, 0.000000 -4965, -3.000000, 188.000000, 192.000000, 0.000000 -4966, -3.000000, 188.000000, 192.000000, 0.000000 -4967, -3.000000, 188.000000, 192.000000, 0.000000 -4968, -3.000000, 188.000000, 192.000000, 0.000000 -4969, -3.000000, 188.000000, 192.000000, 0.000000 -4970, -3.000000, 188.000000, 192.000000, 0.000000 -4971, -3.000000, 188.000000, 192.000000, 0.000000 -4972, -3.000000, 188.000000, 192.000000, 0.000000 -4973, -3.000000, 188.000000, 192.000000, 0.000000 -4974, -3.000000, 188.000000, 192.000000, 0.000000 -4975, -3.000000, 188.000000, 192.000000, 0.000000 -4976, -3.000000, 188.000000, 192.000000, 0.000000 -4977, -3.000000, 188.000000, 192.000000, 0.000000 -4978, -3.000000, 188.000000, 192.000000, 0.000000 -4979, -3.000000, 188.000000, 192.000000, 0.000000 -4980, -3.000000, 188.000000, 192.000000, 0.000000 -4981, -3.000000, 188.000000, 192.000000, 0.000000 -4982, -3.000000, 188.000000, 192.000000, 0.000000 -4983, -3.000000, 188.000000, 192.000000, 0.000000 -4984, -3.000000, 188.000000, 192.000000, 0.000000 -4985, -3.000000, 188.000000, 192.000000, 0.000000 -4986, -3.000000, 188.000000, 192.000000, 0.000000 -4987, -3.000000, 188.000000, 192.000000, 0.000000 -4988, -3.000000, 188.000000, 192.000000, 0.000000 -4989, -3.000000, 188.000000, 192.000000, 0.000000 -4990, -3.000000, 188.000000, 192.000000, 0.000000 -4991, -3.000000, 188.000000, 192.000000, 0.000000 -4992, -3.000000, 188.000000, 192.000000, 0.000000 -4993, -3.000000, 188.000000, 192.000000, 0.000000 -4994, -3.000000, 188.000000, 192.000000, 0.000000 -4995, -3.000000, 188.000000, 192.000000, 0.000000 -4996, -3.000000, 188.000000, 192.000000, 0.000000 -4997, -3.000000, 188.000000, 192.000000, 0.000000 -4998, -3.000000, 188.000000, 192.000000, 0.000000 -4999, -3.000000, 188.000000, 192.000000, 0.000000 -5000, -3.000000, 190.000000, 195.000000, 0.000000 -5001, -3.000000, 190.000000, 195.000000, 0.000000 -5002, -3.000000, 190.000000, 195.000000, 0.000000 -5003, -3.000000, 190.000000, 195.000000, 0.000000 -5004, -3.000000, 190.000000, 195.000000, 0.000000 -5005, -3.000000, 190.000000, 195.000000, 0.000000 -5006, -3.000000, 190.000000, 195.000000, 0.000000 -5007, -3.000000, 190.000000, 195.000000, 0.000000 -5008, -3.000000, 190.000000, 195.000000, 0.000000 -5009, -3.000000, 190.000000, 195.000000, 0.000000 -5010, -3.000000, 190.000000, 195.000000, 0.000000 -5011, -3.000000, 190.000000, 195.000000, 0.000000 -5012, -3.000000, 190.000000, 195.000000, 0.000000 -5013, -3.000000, 190.000000, 195.000000, 0.000000 -5014, -3.000000, 190.000000, 195.000000, 0.000000 -5015, -3.000000, 190.000000, 195.000000, 0.000000 -5016, -3.000000, 190.000000, 195.000000, 0.000000 -5017, -3.000000, 190.000000, 195.000000, 0.000000 -5018, -3.000000, 190.000000, 195.000000, 0.000000 -5019, -3.000000, 190.000000, 195.000000, 0.000000 -5020, -3.000000, 190.000000, 195.000000, 0.000000 -5021, -3.000000, 190.000000, 195.000000, 0.000000 -5022, -3.000000, 190.000000, 195.000000, 0.000000 -5023, -3.000000, 190.000000, 195.000000, 0.000000 -5024, -3.000000, 190.000000, 195.000000, 0.000000 -5025, -3.000000, 190.000000, 195.000000, 0.000000 -5026, -3.000000, 190.000000, 195.000000, 0.000000 -5027, -3.000000, 190.000000, 195.000000, 0.000000 -5028, -3.000000, 190.000000, 195.000000, 0.000000 -5029, -3.000000, 190.000000, 195.000000, 0.000000 -5030, -3.000000, 190.000000, 195.000000, 0.000000 -5031, -3.000000, 190.000000, 195.000000, 0.000000 -5032, -3.000000, 190.000000, 195.000000, 0.000000 -5033, -3.000000, 190.000000, 195.000000, 0.000000 -5034, -3.000000, 190.000000, 195.000000, 0.000000 -5035, -3.000000, 190.000000, 195.000000, 0.000000 -5036, -3.000000, 190.000000, 195.000000, 0.000000 -5037, -3.000000, 190.000000, 195.000000, 0.000000 -5038, -3.000000, 190.000000, 195.000000, 0.000000 -5039, -3.000000, 190.000000, 195.000000, 0.000000 -5040, -3.000000, 190.000000, 195.000000, 0.000000 -5041, -3.000000, 190.000000, 195.000000, 0.000000 -5042, -3.000000, 190.000000, 195.000000, 0.000000 -5043, -3.000000, 190.000000, 195.000000, 0.000000 -5044, -3.000000, 190.000000, 195.000000, 0.000000 -5045, -3.000000, 190.000000, 195.000000, 0.000000 -5046, -3.000000, 190.000000, 195.000000, 0.000000 -5047, -3.000000, 190.000000, 195.000000, 0.000000 -5048, -3.000000, 190.000000, 195.000000, 0.000000 -5049, -3.000000, 190.000000, 195.000000, 0.000000 -5050, -3.000000, 190.000000, 195.000000, 0.000000 -5051, -3.000000, 190.000000, 195.000000, 0.000000 -5052, -3.000000, 190.000000, 195.000000, 0.000000 -5053, -3.000000, 190.000000, 195.000000, 0.000000 -5054, -3.000000, 190.000000, 195.000000, 0.000000 -5055, -3.000000, 190.000000, 195.000000, 0.000000 -5056, -3.000000, 190.000000, 195.000000, 0.000000 -5057, -3.000000, 190.000000, 195.000000, 0.000000 -5058, -3.000000, 190.000000, 195.000000, 0.000000 -5059, -3.000000, 190.000000, 195.000000, 0.000000 -5060, -3.000000, 190.000000, 195.000000, 0.000000 -5061, -3.000000, 190.000000, 195.000000, 0.000000 -5062, -3.000000, 190.000000, 195.000000, 0.000000 -5063, -3.000000, 190.000000, 195.000000, 0.000000 -5064, -3.000000, 190.000000, 195.000000, 0.000000 -5065, -3.000000, 190.000000, 195.000000, 0.000000 -5066, -3.000000, 190.000000, 195.000000, 0.000000 -5067, -3.000000, 190.000000, 195.000000, 0.000000 -5068, -3.000000, 190.000000, 195.000000, 0.000000 -5069, -3.000000, 190.000000, 195.000000, 0.000000 -5070, -3.000000, 190.000000, 195.000000, 0.000000 -5071, -3.000000, 190.000000, 195.000000, 0.000000 -5072, -3.000000, 190.000000, 195.000000, 0.000000 -5073, -3.000000, 190.000000, 195.000000, 0.000000 -5074, -3.000000, 190.000000, 195.000000, 0.000000 -5075, -3.000000, 190.000000, 195.000000, 0.000000 -5076, -3.000000, 190.000000, 195.000000, 0.000000 -5077, -3.000000, 190.000000, 195.000000, 0.000000 -5078, -3.000000, 190.000000, 195.000000, 0.000000 -5079, -3.000000, 190.000000, 195.000000, 0.000000 -5080, -3.000000, 190.000000, 195.000000, 0.000000 -5081, -3.000000, 190.000000, 195.000000, 0.000000 -5082, -3.000000, 190.000000, 195.000000, 0.000000 -5083, -3.000000, 190.000000, 195.000000, 0.000000 -5084, -3.000000, 190.000000, 195.000000, 0.000000 -5085, -3.000000, 190.000000, 195.000000, 0.000000 -5086, -3.000000, 190.000000, 195.000000, 0.000000 -5087, -3.000000, 190.000000, 195.000000, 0.000000 -5088, -3.000000, 190.000000, 195.000000, 0.000000 -5089, -3.000000, 190.000000, 195.000000, 0.000000 -5090, -3.000000, 190.000000, 195.000000, 0.000000 -5091, -3.000000, 190.000000, 195.000000, 0.000000 -5092, -3.000000, 190.000000, 195.000000, 0.000000 -5093, -3.000000, 190.000000, 195.000000, 0.000000 -5094, -3.000000, 190.000000, 195.000000, 0.000000 -5095, -3.000000, 190.000000, 195.000000, 0.000000 -5096, -3.000000, 190.000000, 195.000000, 0.000000 -5097, -3.000000, 190.000000, 195.000000, 0.000000 -5098, -3.000000, 190.000000, 195.000000, 0.000000 -5099, -3.000000, 190.000000, 195.000000, 0.000000 -5100, -3.000000, 192.000000, 198.000000, 0.000000 -5101, -3.000000, 192.000000, 198.000000, 0.000000 -5102, -3.000000, 192.000000, 198.000000, 0.000000 -5103, -3.000000, 192.000000, 198.000000, 0.000000 -5104, -3.000000, 192.000000, 198.000000, 0.000000 -5105, -3.000000, 192.000000, 198.000000, 0.000000 -5106, -3.000000, 192.000000, 198.000000, 0.000000 -5107, -3.000000, 192.000000, 198.000000, 0.000000 -5108, -3.000000, 192.000000, 198.000000, 0.000000 -5109, -3.000000, 192.000000, 198.000000, 0.000000 -5110, -3.000000, 192.000000, 198.000000, 0.000000 -5111, -3.000000, 192.000000, 198.000000, 0.000000 -5112, -3.000000, 192.000000, 198.000000, 0.000000 -5113, -3.000000, 192.000000, 198.000000, 0.000000 -5114, -3.000000, 192.000000, 198.000000, 0.000000 -5115, -3.000000, 192.000000, 198.000000, 0.000000 -5116, -3.000000, 192.000000, 198.000000, 0.000000 -5117, -3.000000, 192.000000, 198.000000, 0.000000 -5118, -3.000000, 192.000000, 198.000000, 0.000000 -5119, -3.000000, 192.000000, 198.000000, 0.000000 -5120, -3.000000, 192.000000, 198.000000, 0.000000 -5121, -3.000000, 192.000000, 198.000000, 0.000000 -5122, -3.000000, 192.000000, 198.000000, 0.000000 -5123, -3.000000, 192.000000, 198.000000, 0.000000 -5124, -3.000000, 192.000000, 198.000000, 0.000000 -5125, -3.000000, 192.000000, 198.000000, 0.000000 -5126, -3.000000, 192.000000, 198.000000, 0.000000 -5127, -3.000000, 192.000000, 198.000000, 0.000000 -5128, -3.000000, 192.000000, 198.000000, 0.000000 -5129, -3.000000, 192.000000, 198.000000, 0.000000 -5130, -3.000000, 192.000000, 198.000000, 0.000000 -5131, -3.000000, 192.000000, 198.000000, 0.000000 -5132, -3.000000, 192.000000, 198.000000, 0.000000 -5133, -3.000000, 192.000000, 198.000000, 0.000000 -5134, -3.000000, 192.000000, 198.000000, 0.000000 -5135, -3.000000, 192.000000, 198.000000, 0.000000 -5136, -3.000000, 192.000000, 198.000000, 0.000000 -5137, -3.000000, 192.000000, 198.000000, 0.000000 -5138, -3.000000, 192.000000, 198.000000, 0.000000 -5139, -3.000000, 192.000000, 198.000000, 0.000000 -5140, -3.000000, 192.000000, 198.000000, 0.000000 -5141, -3.000000, 192.000000, 198.000000, 0.000000 -5142, -3.000000, 192.000000, 198.000000, 0.000000 -5143, -3.000000, 192.000000, 198.000000, 0.000000 -5144, -3.000000, 192.000000, 198.000000, 0.000000 -5145, -3.000000, 192.000000, 198.000000, 0.000000 -5146, -3.000000, 192.000000, 198.000000, 0.000000 -5147, -3.000000, 192.000000, 198.000000, 0.000000 -5148, -3.000000, 192.000000, 198.000000, 0.000000 -5149, -3.000000, 192.000000, 198.000000, 0.000000 -5150, -3.000000, 192.000000, 198.000000, 0.000000 -5151, -3.000000, 192.000000, 198.000000, 0.000000 -5152, -3.000000, 192.000000, 198.000000, 0.000000 -5153, -3.000000, 192.000000, 198.000000, 0.000000 -5154, -3.000000, 192.000000, 198.000000, 0.000000 -5155, -3.000000, 192.000000, 198.000000, 0.000000 -5156, -3.000000, 192.000000, 198.000000, 0.000000 -5157, -3.000000, 192.000000, 198.000000, 0.000000 -5158, -3.000000, 192.000000, 198.000000, 0.000000 -5159, -3.000000, 192.000000, 198.000000, 0.000000 -5160, -3.000000, 192.000000, 198.000000, 0.000000 -5161, -3.000000, 192.000000, 198.000000, 0.000000 -5162, -3.000000, 192.000000, 198.000000, 0.000000 -5163, -3.000000, 192.000000, 198.000000, 0.000000 -5164, -3.000000, 192.000000, 198.000000, 0.000000 -5165, -3.000000, 192.000000, 198.000000, 0.000000 -5166, -3.000000, 192.000000, 198.000000, 0.000000 -5167, -3.000000, 192.000000, 198.000000, 0.000000 -5168, -3.000000, 192.000000, 198.000000, 0.000000 -5169, -3.000000, 192.000000, 198.000000, 0.000000 -5170, -3.000000, 192.000000, 198.000000, 0.000000 -5171, -3.000000, 192.000000, 198.000000, 0.000000 -5172, -3.000000, 192.000000, 198.000000, 0.000000 -5173, -3.000000, 192.000000, 198.000000, 0.000000 -5174, -3.000000, 192.000000, 198.000000, 0.000000 -5175, -3.000000, 192.000000, 198.000000, 0.000000 -5176, -3.000000, 192.000000, 198.000000, 0.000000 -5177, -3.000000, 192.000000, 198.000000, 0.000000 -5178, -3.000000, 192.000000, 198.000000, 0.000000 -5179, -3.000000, 192.000000, 198.000000, 0.000000 -5180, -3.000000, 192.000000, 198.000000, 0.000000 -5181, -3.000000, 192.000000, 198.000000, 0.000000 -5182, -3.000000, 192.000000, 198.000000, 0.000000 -5183, -3.000000, 192.000000, 198.000000, 0.000000 -5184, -3.000000, 192.000000, 198.000000, 0.000000 -5185, -3.000000, 192.000000, 198.000000, 0.000000 -5186, -3.000000, 192.000000, 198.000000, 0.000000 -5187, -3.000000, 192.000000, 198.000000, 0.000000 -5188, -3.000000, 192.000000, 198.000000, 0.000000 -5189, -3.000000, 192.000000, 198.000000, 0.000000 -5190, -3.000000, 192.000000, 198.000000, 0.000000 -5191, -3.000000, 192.000000, 198.000000, 0.000000 -5192, -3.000000, 192.000000, 198.000000, 0.000000 -5193, -3.000000, 192.000000, 198.000000, 0.000000 -5194, -3.000000, 192.000000, 198.000000, 0.000000 -5195, -3.000000, 192.000000, 198.000000, 0.000000 -5196, -3.000000, 192.000000, 198.000000, 0.000000 -5197, -3.000000, 192.000000, 198.000000, 0.000000 -5198, -3.000000, 192.000000, 198.000000, 0.000000 -5199, -3.000000, 192.000000, 198.000000, 0.000000 -5200, -3.000000, 194.000000, 201.000000, 0.000000 -5201, -3.000000, 194.000000, 201.000000, 0.000000 -5202, -3.000000, 194.000000, 201.000000, 0.000000 -5203, -3.000000, 194.000000, 201.000000, 0.000000 -5204, -3.000000, 194.000000, 201.000000, 0.000000 -5205, -3.000000, 194.000000, 201.000000, 0.000000 -5206, -3.000000, 194.000000, 201.000000, 0.000000 -5207, -3.000000, 194.000000, 201.000000, 0.000000 -5208, -3.000000, 194.000000, 201.000000, 0.000000 -5209, -3.000000, 194.000000, 201.000000, 0.000000 -5210, -3.000000, 194.000000, 201.000000, 0.000000 -5211, -3.000000, 194.000000, 201.000000, 0.000000 -5212, -3.000000, 194.000000, 201.000000, 0.000000 -5213, -3.000000, 194.000000, 201.000000, 0.000000 -5214, -3.000000, 194.000000, 201.000000, 0.000000 -5215, -3.000000, 194.000000, 201.000000, 0.000000 -5216, -3.000000, 194.000000, 201.000000, 0.000000 -5217, -3.000000, 194.000000, 201.000000, 0.000000 -5218, -3.000000, 194.000000, 201.000000, 0.000000 -5219, -3.000000, 194.000000, 201.000000, 0.000000 -5220, -3.000000, 194.000000, 201.000000, 0.000000 -5221, -3.000000, 194.000000, 201.000000, 0.000000 -5222, -3.000000, 194.000000, 201.000000, 0.000000 -5223, -3.000000, 194.000000, 201.000000, 0.000000 -5224, -3.000000, 194.000000, 201.000000, 0.000000 -5225, -3.000000, 194.000000, 201.000000, 0.000000 -5226, -3.000000, 194.000000, 201.000000, 0.000000 -5227, -3.000000, 194.000000, 201.000000, 0.000000 -5228, -3.000000, 194.000000, 201.000000, 0.000000 -5229, -3.000000, 194.000000, 201.000000, 0.000000 -5230, -3.000000, 194.000000, 201.000000, 0.000000 -5231, -3.000000, 194.000000, 201.000000, 0.000000 -5232, -3.000000, 194.000000, 201.000000, 0.000000 -5233, -3.000000, 194.000000, 201.000000, 0.000000 -5234, -3.000000, 194.000000, 201.000000, 0.000000 -5235, -3.000000, 194.000000, 201.000000, 0.000000 -5236, -3.000000, 194.000000, 201.000000, 0.000000 -5237, -3.000000, 194.000000, 201.000000, 0.000000 -5238, -3.000000, 194.000000, 201.000000, 0.000000 -5239, -3.000000, 194.000000, 201.000000, 0.000000 -5240, -3.000000, 194.000000, 201.000000, 0.000000 -5241, -3.000000, 194.000000, 201.000000, 0.000000 -5242, -3.000000, 194.000000, 201.000000, 0.000000 -5243, -3.000000, 194.000000, 201.000000, 0.000000 -5244, -3.000000, 194.000000, 201.000000, 0.000000 -5245, -3.000000, 194.000000, 201.000000, 0.000000 -5246, -3.000000, 194.000000, 201.000000, 0.000000 -5247, -3.000000, 194.000000, 201.000000, 0.000000 -5248, -3.000000, 194.000000, 201.000000, 0.000000 -5249, -3.000000, 194.000000, 201.000000, 0.000000 -5250, -3.000000, 194.000000, 201.000000, 0.000000 -5251, -3.000000, 194.000000, 201.000000, 0.000000 -5252, -3.000000, 194.000000, 201.000000, 0.000000 -5253, -3.000000, 194.000000, 201.000000, 0.000000 -5254, -3.000000, 194.000000, 201.000000, 0.000000 -5255, -3.000000, 194.000000, 201.000000, 0.000000 -5256, -3.000000, 194.000000, 201.000000, 0.000000 -5257, -3.000000, 194.000000, 201.000000, 0.000000 -5258, -3.000000, 194.000000, 201.000000, 0.000000 -5259, -3.000000, 194.000000, 201.000000, 0.000000 -5260, -3.000000, 194.000000, 201.000000, 0.000000 -5261, -3.000000, 194.000000, 201.000000, 0.000000 -5262, -3.000000, 194.000000, 201.000000, 0.000000 -5263, -3.000000, 194.000000, 201.000000, 0.000000 -5264, -3.000000, 194.000000, 201.000000, 0.000000 -5265, -3.000000, 194.000000, 201.000000, 0.000000 -5266, -3.000000, 194.000000, 201.000000, 0.000000 -5267, -3.000000, 194.000000, 201.000000, 0.000000 -5268, -3.000000, 194.000000, 201.000000, 0.000000 -5269, -3.000000, 194.000000, 201.000000, 0.000000 -5270, -3.000000, 194.000000, 201.000000, 0.000000 -5271, -3.000000, 194.000000, 201.000000, 0.000000 -5272, -3.000000, 194.000000, 201.000000, 0.000000 -5273, -3.000000, 194.000000, 201.000000, 0.000000 -5274, -3.000000, 194.000000, 201.000000, 0.000000 -5275, -3.000000, 194.000000, 201.000000, 0.000000 -5276, -3.000000, 194.000000, 201.000000, 0.000000 -5277, -3.000000, 194.000000, 201.000000, 0.000000 -5278, -3.000000, 194.000000, 201.000000, 0.000000 -5279, -3.000000, 194.000000, 201.000000, 0.000000 -5280, -3.000000, 194.000000, 201.000000, 0.000000 -5281, -3.000000, 194.000000, 201.000000, 0.000000 -5282, -3.000000, 194.000000, 201.000000, 0.000000 -5283, -3.000000, 194.000000, 201.000000, 0.000000 -5284, -3.000000, 194.000000, 201.000000, 0.000000 -5285, -3.000000, 194.000000, 201.000000, 0.000000 -5286, -3.000000, 194.000000, 201.000000, 0.000000 -5287, -3.000000, 194.000000, 201.000000, 0.000000 -5288, -3.000000, 194.000000, 201.000000, 0.000000 -5289, -3.000000, 194.000000, 201.000000, 0.000000 -5290, -3.000000, 194.000000, 201.000000, 0.000000 -5291, -3.000000, 194.000000, 201.000000, 0.000000 -5292, -3.000000, 194.000000, 201.000000, 0.000000 -5293, -3.000000, 194.000000, 201.000000, 0.000000 -5294, -3.000000, 194.000000, 201.000000, 0.000000 -5295, -3.000000, 194.000000, 201.000000, 0.000000 -5296, -3.000000, 194.000000, 201.000000, 0.000000 -5297, -3.000000, 194.000000, 201.000000, 0.000000 -5298, -3.000000, 194.000000, 201.000000, 0.000000 -5299, -3.000000, 194.000000, 201.000000, 0.000000 -5300, -3.000000, 196.000000, 204.000000, 0.000000 -5301, -3.000000, 196.000000, 204.000000, 0.000000 -5302, -3.000000, 196.000000, 204.000000, 0.000000 -5303, -3.000000, 196.000000, 204.000000, 0.000000 -5304, -3.000000, 196.000000, 204.000000, 0.000000 -5305, -3.000000, 196.000000, 204.000000, 0.000000 -5306, -3.000000, 196.000000, 204.000000, 0.000000 -5307, -3.000000, 196.000000, 204.000000, 0.000000 -5308, -3.000000, 196.000000, 204.000000, 0.000000 -5309, -3.000000, 196.000000, 204.000000, 0.000000 -5310, -3.000000, 196.000000, 204.000000, 0.000000 -5311, -3.000000, 196.000000, 204.000000, 0.000000 -5312, -3.000000, 196.000000, 204.000000, 0.000000 -5313, -3.000000, 196.000000, 204.000000, 0.000000 -5314, -3.000000, 196.000000, 204.000000, 0.000000 -5315, -3.000000, 196.000000, 204.000000, 0.000000 -5316, -3.000000, 196.000000, 204.000000, 0.000000 -5317, -3.000000, 196.000000, 204.000000, 0.000000 -5318, -3.000000, 196.000000, 204.000000, 0.000000 -5319, -3.000000, 196.000000, 204.000000, 0.000000 -5320, -3.000000, 196.000000, 204.000000, 0.000000 -5321, -3.000000, 196.000000, 204.000000, 0.000000 -5322, -3.000000, 196.000000, 204.000000, 0.000000 -5323, -3.000000, 196.000000, 204.000000, 0.000000 -5324, -3.000000, 196.000000, 204.000000, 0.000000 -5325, -3.000000, 196.000000, 204.000000, 0.000000 -5326, -3.000000, 196.000000, 204.000000, 0.000000 -5327, -3.000000, 196.000000, 204.000000, 0.000000 -5328, -3.000000, 196.000000, 204.000000, 0.000000 -5329, -3.000000, 196.000000, 204.000000, 0.000000 -5330, -3.000000, 196.000000, 204.000000, 0.000000 -5331, -3.000000, 196.000000, 204.000000, 0.000000 -5332, -3.000000, 196.000000, 204.000000, 0.000000 -5333, -3.000000, 196.000000, 204.000000, 0.000000 -5334, -3.000000, 196.000000, 204.000000, 0.000000 -5335, -3.000000, 196.000000, 204.000000, 0.000000 -5336, -3.000000, 196.000000, 204.000000, 0.000000 -5337, -3.000000, 196.000000, 204.000000, 0.000000 -5338, -3.000000, 196.000000, 204.000000, 0.000000 -5339, -3.000000, 196.000000, 204.000000, 0.000000 -5340, -3.000000, 196.000000, 204.000000, 0.000000 -5341, -3.000000, 196.000000, 204.000000, 0.000000 -5342, -3.000000, 196.000000, 204.000000, 0.000000 -5343, -3.000000, 196.000000, 204.000000, 0.000000 -5344, -3.000000, 196.000000, 204.000000, 0.000000 -5345, -3.000000, 196.000000, 204.000000, 0.000000 -5346, -3.000000, 196.000000, 204.000000, 0.000000 -5347, -3.000000, 196.000000, 204.000000, 0.000000 -5348, -3.000000, 196.000000, 204.000000, 0.000000 -5349, -3.000000, 196.000000, 204.000000, 0.000000 -5350, -3.000000, 196.000000, 204.000000, 0.000000 -5351, -3.000000, 196.000000, 204.000000, 0.000000 -5352, -3.000000, 196.000000, 204.000000, 0.000000 -5353, -3.000000, 196.000000, 204.000000, 0.000000 -5354, -3.000000, 196.000000, 204.000000, 0.000000 -5355, -3.000000, 196.000000, 204.000000, 0.000000 -5356, -3.000000, 196.000000, 204.000000, 0.000000 -5357, -3.000000, 196.000000, 204.000000, 0.000000 -5358, -3.000000, 196.000000, 204.000000, 0.000000 -5359, -3.000000, 196.000000, 204.000000, 0.000000 -5360, -3.000000, 196.000000, 204.000000, 0.000000 -5361, -3.000000, 196.000000, 204.000000, 0.000000 -5362, -3.000000, 196.000000, 204.000000, 0.000000 -5363, -3.000000, 196.000000, 204.000000, 0.000000 -5364, -3.000000, 196.000000, 204.000000, 0.000000 -5365, -3.000000, 196.000000, 204.000000, 0.000000 -5366, -3.000000, 196.000000, 204.000000, 0.000000 -5367, -3.000000, 196.000000, 204.000000, 0.000000 -5368, -3.000000, 196.000000, 204.000000, 0.000000 -5369, -3.000000, 196.000000, 204.000000, 0.000000 -5370, -3.000000, 196.000000, 204.000000, 0.000000 -5371, -3.000000, 196.000000, 204.000000, 0.000000 -5372, -3.000000, 196.000000, 204.000000, 0.000000 -5373, -3.000000, 196.000000, 204.000000, 0.000000 -5374, -3.000000, 196.000000, 204.000000, 0.000000 -5375, -3.000000, 196.000000, 204.000000, 0.000000 -5376, -3.000000, 196.000000, 204.000000, 0.000000 -5377, -3.000000, 196.000000, 204.000000, 0.000000 -5378, -3.000000, 196.000000, 204.000000, 0.000000 -5379, -3.000000, 196.000000, 204.000000, 0.000000 -5380, -3.000000, 196.000000, 204.000000, 0.000000 -5381, -3.000000, 196.000000, 204.000000, 0.000000 -5382, -3.000000, 196.000000, 204.000000, 0.000000 -5383, -3.000000, 196.000000, 204.000000, 0.000000 -5384, -3.000000, 196.000000, 204.000000, 0.000000 -5385, -3.000000, 196.000000, 204.000000, 0.000000 -5386, -3.000000, 196.000000, 204.000000, 0.000000 -5387, -3.000000, 196.000000, 204.000000, 0.000000 -5388, -3.000000, 196.000000, 204.000000, 0.000000 -5389, -3.000000, 196.000000, 204.000000, 0.000000 -5390, -3.000000, 196.000000, 204.000000, 0.000000 -5391, -3.000000, 196.000000, 204.000000, 0.000000 -5392, -3.000000, 196.000000, 204.000000, 0.000000 -5393, -3.000000, 196.000000, 204.000000, 0.000000 -5394, -3.000000, 196.000000, 204.000000, 0.000000 -5395, -3.000000, 196.000000, 204.000000, 0.000000 -5396, -3.000000, 196.000000, 204.000000, 0.000000 -5397, -3.000000, 196.000000, 204.000000, 0.000000 -5398, -3.000000, 196.000000, 204.000000, 0.000000 -5399, -3.000000, 196.000000, 204.000000, 0.000000 -5400, -3.000000, 198.000000, 207.000000, 0.000000 -5401, -3.000000, 198.000000, 207.000000, 0.000000 -5402, -3.000000, 198.000000, 207.000000, 0.000000 -5403, -3.000000, 198.000000, 207.000000, 0.000000 -5404, -3.000000, 198.000000, 207.000000, 0.000000 -5405, -3.000000, 198.000000, 207.000000, 0.000000 -5406, -3.000000, 198.000000, 207.000000, 0.000000 -5407, -3.000000, 198.000000, 207.000000, 0.000000 -5408, -3.000000, 198.000000, 207.000000, 0.000000 -5409, -3.000000, 198.000000, 207.000000, 0.000000 -5410, -3.000000, 198.000000, 207.000000, 0.000000 -5411, -3.000000, 198.000000, 207.000000, 0.000000 -5412, -3.000000, 198.000000, 207.000000, 0.000000 -5413, -3.000000, 198.000000, 207.000000, 0.000000 -5414, -3.000000, 198.000000, 207.000000, 0.000000 -5415, -3.000000, 198.000000, 207.000000, 0.000000 -5416, -3.000000, 198.000000, 207.000000, 0.000000 -5417, -3.000000, 198.000000, 207.000000, 0.000000 -5418, -3.000000, 198.000000, 207.000000, 0.000000 -5419, -3.000000, 198.000000, 207.000000, 0.000000 -5420, -3.000000, 198.000000, 207.000000, 0.000000 -5421, -3.000000, 198.000000, 207.000000, 0.000000 -5422, -3.000000, 198.000000, 207.000000, 0.000000 -5423, -3.000000, 198.000000, 207.000000, 0.000000 -5424, -3.000000, 198.000000, 207.000000, 0.000000 -5425, -3.000000, 198.000000, 207.000000, 0.000000 -5426, -3.000000, 198.000000, 207.000000, 0.000000 -5427, -3.000000, 198.000000, 207.000000, 0.000000 -5428, -3.000000, 198.000000, 207.000000, 0.000000 -5429, -3.000000, 198.000000, 207.000000, 0.000000 -5430, -3.000000, 198.000000, 207.000000, 0.000000 -5431, -3.000000, 198.000000, 207.000000, 0.000000 -5432, -3.000000, 198.000000, 207.000000, 0.000000 -5433, -3.000000, 198.000000, 207.000000, 0.000000 -5434, -3.000000, 198.000000, 207.000000, 0.000000 -5435, -3.000000, 198.000000, 207.000000, 0.000000 -5436, -3.000000, 198.000000, 207.000000, 0.000000 -5437, -3.000000, 198.000000, 207.000000, 0.000000 -5438, -3.000000, 198.000000, 207.000000, 0.000000 -5439, -3.000000, 198.000000, 207.000000, 0.000000 -5440, -3.000000, 198.000000, 207.000000, 0.000000 -5441, -3.000000, 198.000000, 207.000000, 0.000000 -5442, -3.000000, 198.000000, 207.000000, 0.000000 -5443, -3.000000, 198.000000, 207.000000, 0.000000 -5444, -3.000000, 198.000000, 207.000000, 0.000000 -5445, -3.000000, 198.000000, 207.000000, 0.000000 -5446, -3.000000, 198.000000, 207.000000, 0.000000 -5447, -3.000000, 198.000000, 207.000000, 0.000000 -5448, -3.000000, 198.000000, 207.000000, 0.000000 -5449, -3.000000, 198.000000, 207.000000, 0.000000 -5450, -3.000000, 198.000000, 207.000000, 0.000000 -5451, -3.000000, 198.000000, 207.000000, 0.000000 -5452, -3.000000, 198.000000, 207.000000, 0.000000 -5453, -3.000000, 198.000000, 207.000000, 0.000000 -5454, -3.000000, 198.000000, 207.000000, 0.000000 -5455, -3.000000, 198.000000, 207.000000, 0.000000 -5456, -3.000000, 198.000000, 207.000000, 0.000000 -5457, -3.000000, 198.000000, 207.000000, 0.000000 -5458, -3.000000, 198.000000, 207.000000, 0.000000 -5459, -3.000000, 198.000000, 207.000000, 0.000000 -5460, -3.000000, 198.000000, 207.000000, 0.000000 -5461, -3.000000, 198.000000, 207.000000, 0.000000 -5462, -3.000000, 198.000000, 207.000000, 0.000000 -5463, -3.000000, 198.000000, 207.000000, 0.000000 -5464, -3.000000, 198.000000, 207.000000, 0.000000 -5465, -3.000000, 198.000000, 207.000000, 0.000000 -5466, -3.000000, 198.000000, 207.000000, 0.000000 -5467, -3.000000, 198.000000, 207.000000, 0.000000 -5468, -3.000000, 198.000000, 207.000000, 0.000000 -5469, -3.000000, 198.000000, 207.000000, 0.000000 -5470, -3.000000, 198.000000, 207.000000, 0.000000 -5471, -3.000000, 198.000000, 207.000000, 0.000000 -5472, -3.000000, 198.000000, 207.000000, 0.000000 -5473, -3.000000, 198.000000, 207.000000, 0.000000 -5474, -3.000000, 198.000000, 207.000000, 0.000000 -5475, -3.000000, 198.000000, 207.000000, 0.000000 -5476, -3.000000, 198.000000, 207.000000, 0.000000 -5477, -3.000000, 198.000000, 207.000000, 0.000000 -5478, -3.000000, 198.000000, 207.000000, 0.000000 -5479, -3.000000, 198.000000, 207.000000, 0.000000 -5480, -3.000000, 198.000000, 207.000000, 0.000000 -5481, -3.000000, 198.000000, 207.000000, 0.000000 -5482, -3.000000, 198.000000, 207.000000, 0.000000 -5483, -3.000000, 198.000000, 207.000000, 0.000000 -5484, -3.000000, 198.000000, 207.000000, 0.000000 -5485, -3.000000, 198.000000, 207.000000, 0.000000 -5486, -3.000000, 198.000000, 207.000000, 0.000000 -5487, -3.000000, 198.000000, 207.000000, 0.000000 -5488, -3.000000, 198.000000, 207.000000, 0.000000 -5489, -3.000000, 198.000000, 207.000000, 0.000000 -5490, -3.000000, 198.000000, 207.000000, 0.000000 -5491, -3.000000, 198.000000, 207.000000, 0.000000 -5492, -3.000000, 198.000000, 207.000000, 0.000000 -5493, -3.000000, 198.000000, 207.000000, 0.000000 -5494, -3.000000, 198.000000, 207.000000, 0.000000 -5495, -3.000000, 198.000000, 207.000000, 0.000000 -5496, -3.000000, 198.000000, 207.000000, 0.000000 -5497, -3.000000, 198.000000, 207.000000, 0.000000 -5498, -3.000000, 198.000000, 207.000000, 0.000000 -5499, -3.000000, 198.000000, 207.000000, 0.000000 -5500, -3.000000, 200.000000, 210.000000, 0.000000 -5501, -3.000000, 200.000000, 210.000000, 0.000000 -5502, -3.000000, 200.000000, 210.000000, 0.000000 -5503, -3.000000, 200.000000, 210.000000, 0.000000 -5504, -3.000000, 200.000000, 210.000000, 0.000000 -5505, -3.000000, 200.000000, 210.000000, 0.000000 -5506, -3.000000, 200.000000, 210.000000, 0.000000 -5507, -3.000000, 200.000000, 210.000000, 0.000000 -5508, -3.000000, 200.000000, 210.000000, 0.000000 -5509, -3.000000, 200.000000, 210.000000, 0.000000 -5510, -3.000000, 200.000000, 210.000000, 0.000000 -5511, -3.000000, 200.000000, 210.000000, 0.000000 -5512, -3.000000, 200.000000, 210.000000, 0.000000 -5513, -3.000000, 200.000000, 210.000000, 0.000000 -5514, -3.000000, 200.000000, 210.000000, 0.000000 -5515, -3.000000, 200.000000, 210.000000, 0.000000 -5516, -3.000000, 200.000000, 210.000000, 0.000000 -5517, -3.000000, 200.000000, 210.000000, 0.000000 -5518, -3.000000, 200.000000, 210.000000, 0.000000 -5519, -3.000000, 200.000000, 210.000000, 0.000000 -5520, -3.000000, 200.000000, 210.000000, 0.000000 -5521, -3.000000, 200.000000, 210.000000, 0.000000 -5522, -3.000000, 200.000000, 210.000000, 0.000000 -5523, -3.000000, 200.000000, 210.000000, 0.000000 -5524, -3.000000, 200.000000, 210.000000, 0.000000 -5525, -3.000000, 200.000000, 210.000000, 0.000000 -5526, -3.000000, 200.000000, 210.000000, 0.000000 -5527, -3.000000, 200.000000, 210.000000, 0.000000 -5528, -3.000000, 200.000000, 210.000000, 0.000000 -5529, -3.000000, 200.000000, 210.000000, 0.000000 -5530, -3.000000, 200.000000, 210.000000, 0.000000 -5531, -3.000000, 200.000000, 210.000000, 0.000000 -5532, -3.000000, 200.000000, 210.000000, 0.000000 -5533, -3.000000, 200.000000, 210.000000, 0.000000 -5534, -3.000000, 200.000000, 210.000000, 0.000000 -5535, -3.000000, 200.000000, 210.000000, 0.000000 -5536, -3.000000, 200.000000, 210.000000, 0.000000 -5537, -3.000000, 200.000000, 210.000000, 0.000000 -5538, -3.000000, 200.000000, 210.000000, 0.000000 -5539, -3.000000, 200.000000, 210.000000, 0.000000 -5540, -3.000000, 200.000000, 210.000000, 0.000000 -5541, -3.000000, 200.000000, 210.000000, 0.000000 -5542, -3.000000, 200.000000, 210.000000, 0.000000 -5543, -3.000000, 200.000000, 210.000000, 0.000000 -5544, -3.000000, 200.000000, 210.000000, 0.000000 -5545, -3.000000, 200.000000, 210.000000, 0.000000 -5546, -3.000000, 200.000000, 210.000000, 0.000000 -5547, -3.000000, 200.000000, 210.000000, 0.000000 -5548, -3.000000, 200.000000, 210.000000, 0.000000 -5549, -3.000000, 200.000000, 210.000000, 0.000000 -5550, -3.000000, 200.000000, 210.000000, 0.000000 -5551, -3.000000, 200.000000, 210.000000, 0.000000 -5552, -3.000000, 200.000000, 210.000000, 0.000000 -5553, -3.000000, 200.000000, 210.000000, 0.000000 -5554, -3.000000, 200.000000, 210.000000, 0.000000 -5555, -3.000000, 200.000000, 210.000000, 0.000000 -5556, -3.000000, 200.000000, 210.000000, 0.000000 -5557, -3.000000, 200.000000, 210.000000, 0.000000 -5558, -3.000000, 200.000000, 210.000000, 0.000000 -5559, -3.000000, 200.000000, 210.000000, 0.000000 -5560, -3.000000, 200.000000, 210.000000, 0.000000 -5561, -3.000000, 200.000000, 210.000000, 0.000000 -5562, -3.000000, 200.000000, 210.000000, 0.000000 -5563, -3.000000, 200.000000, 210.000000, 0.000000 -5564, -3.000000, 200.000000, 210.000000, 0.000000 -5565, -3.000000, 200.000000, 210.000000, 0.000000 -5566, -3.000000, 200.000000, 210.000000, 0.000000 -5567, -3.000000, 200.000000, 210.000000, 0.000000 -5568, -3.000000, 200.000000, 210.000000, 0.000000 -5569, -3.000000, 200.000000, 210.000000, 0.000000 -5570, -3.000000, 200.000000, 210.000000, 0.000000 -5571, -3.000000, 200.000000, 210.000000, 0.000000 -5572, -3.000000, 200.000000, 210.000000, 0.000000 -5573, -3.000000, 200.000000, 210.000000, 0.000000 -5574, -3.000000, 200.000000, 210.000000, 0.000000 -5575, -3.000000, 200.000000, 210.000000, 0.000000 -5576, -3.000000, 200.000000, 210.000000, 0.000000 -5577, -3.000000, 200.000000, 210.000000, 0.000000 -5578, -3.000000, 200.000000, 210.000000, 0.000000 -5579, -3.000000, 200.000000, 210.000000, 0.000000 -5580, -3.000000, 200.000000, 210.000000, 0.000000 -5581, -3.000000, 200.000000, 210.000000, 0.000000 -5582, -3.000000, 200.000000, 210.000000, 0.000000 -5583, -3.000000, 200.000000, 210.000000, 0.000000 -5584, -3.000000, 200.000000, 210.000000, 0.000000 -5585, -3.000000, 200.000000, 210.000000, 0.000000 -5586, -3.000000, 200.000000, 210.000000, 0.000000 -5587, -3.000000, 200.000000, 210.000000, 0.000000 -5588, -3.000000, 200.000000, 210.000000, 0.000000 -5589, -3.000000, 200.000000, 210.000000, 0.000000 -5590, -3.000000, 200.000000, 210.000000, 0.000000 -5591, -3.000000, 200.000000, 210.000000, 0.000000 -5592, -3.000000, 200.000000, 210.000000, 0.000000 -5593, -3.000000, 200.000000, 210.000000, 0.000000 -5594, -3.000000, 200.000000, 210.000000, 0.000000 -5595, -3.000000, 200.000000, 210.000000, 0.000000 -5596, -3.000000, 200.000000, 210.000000, 0.000000 -5597, -3.000000, 200.000000, 210.000000, 0.000000 -5598, -3.000000, 200.000000, 210.000000, 0.000000 -5599, -3.000000, 200.000000, 210.000000, 0.000000 -5600, -3.000000, 202.000000, 213.000000, 0.000000 -5601, -3.000000, 202.000000, 213.000000, 0.000000 -5602, -3.000000, 202.000000, 213.000000, 0.000000 -5603, -3.000000, 202.000000, 213.000000, 0.000000 -5604, -3.000000, 202.000000, 213.000000, 0.000000 -5605, -3.000000, 202.000000, 213.000000, 0.000000 -5606, -3.000000, 202.000000, 213.000000, 0.000000 -5607, -3.000000, 202.000000, 213.000000, 0.000000 -5608, -3.000000, 202.000000, 213.000000, 0.000000 -5609, -3.000000, 202.000000, 213.000000, 0.000000 -5610, -3.000000, 202.000000, 213.000000, 0.000000 -5611, -3.000000, 202.000000, 213.000000, 0.000000 -5612, -3.000000, 202.000000, 213.000000, 0.000000 -5613, -3.000000, 202.000000, 213.000000, 0.000000 -5614, -3.000000, 202.000000, 213.000000, 0.000000 -5615, -3.000000, 202.000000, 213.000000, 0.000000 -5616, -3.000000, 202.000000, 213.000000, 0.000000 -5617, -3.000000, 202.000000, 213.000000, 0.000000 -5618, -3.000000, 202.000000, 213.000000, 0.000000 -5619, -3.000000, 202.000000, 213.000000, 0.000000 -5620, -3.000000, 202.000000, 213.000000, 0.000000 -5621, -3.000000, 202.000000, 213.000000, 0.000000 -5622, -3.000000, 202.000000, 213.000000, 0.000000 -5623, -3.000000, 202.000000, 213.000000, 0.000000 -5624, -3.000000, 202.000000, 213.000000, 0.000000 -5625, -3.000000, 202.000000, 213.000000, 0.000000 -5626, -3.000000, 202.000000, 213.000000, 0.000000 -5627, -3.000000, 202.000000, 213.000000, 0.000000 -5628, -3.000000, 202.000000, 213.000000, 0.000000 -5629, -3.000000, 202.000000, 213.000000, 0.000000 -5630, -3.000000, 202.000000, 213.000000, 0.000000 -5631, -3.000000, 202.000000, 213.000000, 0.000000 -5632, -3.000000, 202.000000, 213.000000, 0.000000 -5633, -3.000000, 202.000000, 213.000000, 0.000000 -5634, -3.000000, 202.000000, 213.000000, 0.000000 -5635, -3.000000, 202.000000, 213.000000, 0.000000 -5636, -3.000000, 202.000000, 213.000000, 0.000000 -5637, -3.000000, 202.000000, 213.000000, 0.000000 -5638, -3.000000, 202.000000, 213.000000, 0.000000 -5639, -3.000000, 202.000000, 213.000000, 0.000000 -5640, -3.000000, 202.000000, 213.000000, 0.000000 -5641, -3.000000, 202.000000, 213.000000, 0.000000 -5642, -3.000000, 202.000000, 213.000000, 0.000000 -5643, -3.000000, 202.000000, 213.000000, 0.000000 -5644, -3.000000, 202.000000, 213.000000, 0.000000 -5645, -3.000000, 202.000000, 213.000000, 0.000000 -5646, -3.000000, 202.000000, 213.000000, 0.000000 -5647, -3.000000, 202.000000, 213.000000, 0.000000 -5648, -3.000000, 202.000000, 213.000000, 0.000000 -5649, -3.000000, 202.000000, 213.000000, 0.000000 -5650, -3.000000, 202.000000, 213.000000, 0.000000 -5651, -3.000000, 202.000000, 213.000000, 0.000000 -5652, -3.000000, 202.000000, 213.000000, 0.000000 -5653, -3.000000, 202.000000, 213.000000, 0.000000 -5654, -3.000000, 202.000000, 213.000000, 0.000000 -5655, -3.000000, 202.000000, 213.000000, 0.000000 -5656, -3.000000, 202.000000, 213.000000, 0.000000 -5657, -3.000000, 202.000000, 213.000000, 0.000000 -5658, -3.000000, 202.000000, 213.000000, 0.000000 -5659, -3.000000, 202.000000, 213.000000, 0.000000 -5660, -3.000000, 202.000000, 213.000000, 0.000000 -5661, -3.000000, 202.000000, 213.000000, 0.000000 -5662, -3.000000, 202.000000, 213.000000, 0.000000 -5663, -3.000000, 202.000000, 213.000000, 0.000000 -5664, -3.000000, 202.000000, 213.000000, 0.000000 -5665, -3.000000, 202.000000, 213.000000, 0.000000 -5666, -3.000000, 202.000000, 213.000000, 0.000000 -5667, -3.000000, 202.000000, 213.000000, 0.000000 -5668, -3.000000, 202.000000, 213.000000, 0.000000 -5669, -3.000000, 202.000000, 213.000000, 0.000000 -5670, -3.000000, 202.000000, 213.000000, 0.000000 -5671, -3.000000, 202.000000, 213.000000, 0.000000 -5672, -3.000000, 202.000000, 213.000000, 0.000000 -5673, -3.000000, 202.000000, 213.000000, 0.000000 -5674, -3.000000, 202.000000, 213.000000, 0.000000 -5675, -3.000000, 202.000000, 213.000000, 0.000000 -5676, -3.000000, 202.000000, 213.000000, 0.000000 -5677, -3.000000, 202.000000, 213.000000, 0.000000 -5678, -3.000000, 202.000000, 213.000000, 0.000000 -5679, -3.000000, 202.000000, 213.000000, 0.000000 -5680, -3.000000, 202.000000, 213.000000, 0.000000 -5681, -3.000000, 202.000000, 213.000000, 0.000000 -5682, -3.000000, 202.000000, 213.000000, 0.000000 -5683, -3.000000, 202.000000, 213.000000, 0.000000 -5684, -3.000000, 202.000000, 213.000000, 0.000000 -5685, -3.000000, 202.000000, 213.000000, 0.000000 -5686, -3.000000, 202.000000, 213.000000, 0.000000 -5687, -3.000000, 202.000000, 213.000000, 0.000000 -5688, -3.000000, 202.000000, 213.000000, 0.000000 -5689, -3.000000, 202.000000, 213.000000, 0.000000 -5690, -3.000000, 202.000000, 213.000000, 0.000000 -5691, -3.000000, 202.000000, 213.000000, 0.000000 -5692, -3.000000, 202.000000, 213.000000, 0.000000 -5693, -3.000000, 202.000000, 213.000000, 0.000000 -5694, -3.000000, 202.000000, 213.000000, 0.000000 -5695, -3.000000, 202.000000, 213.000000, 0.000000 -5696, -3.000000, 202.000000, 213.000000, 0.000000 -5697, -3.000000, 202.000000, 213.000000, 0.000000 -5698, -3.000000, 202.000000, 213.000000, 0.000000 -5699, -3.000000, 202.000000, 213.000000, 0.000000 -5700, -3.000000, 204.000000, 216.000000, 0.000000 -5701, -3.000000, 204.000000, 216.000000, 0.000000 -5702, -3.000000, 204.000000, 216.000000, 0.000000 -5703, -3.000000, 204.000000, 216.000000, 0.000000 -5704, -3.000000, 204.000000, 216.000000, 0.000000 -5705, -3.000000, 204.000000, 216.000000, 0.000000 -5706, -3.000000, 204.000000, 216.000000, 0.000000 -5707, -3.000000, 204.000000, 216.000000, 0.000000 -5708, -3.000000, 204.000000, 216.000000, 0.000000 -5709, -3.000000, 204.000000, 216.000000, 0.000000 -5710, -3.000000, 204.000000, 216.000000, 0.000000 -5711, -3.000000, 204.000000, 216.000000, 0.000000 -5712, -3.000000, 204.000000, 216.000000, 0.000000 -5713, -3.000000, 204.000000, 216.000000, 0.000000 -5714, -3.000000, 204.000000, 216.000000, 0.000000 -5715, -3.000000, 204.000000, 216.000000, 0.000000 -5716, -3.000000, 204.000000, 216.000000, 0.000000 -5717, -3.000000, 204.000000, 216.000000, 0.000000 -5718, -3.000000, 204.000000, 216.000000, 0.000000 -5719, -3.000000, 204.000000, 216.000000, 0.000000 -5720, -3.000000, 204.000000, 216.000000, 0.000000 -5721, -3.000000, 204.000000, 216.000000, 0.000000 -5722, -3.000000, 204.000000, 216.000000, 0.000000 -5723, -3.000000, 204.000000, 216.000000, 0.000000 -5724, -3.000000, 204.000000, 216.000000, 0.000000 -5725, -3.000000, 204.000000, 216.000000, 0.000000 -5726, -3.000000, 204.000000, 216.000000, 0.000000 -5727, -3.000000, 204.000000, 216.000000, 0.000000 -5728, -3.000000, 204.000000, 216.000000, 0.000000 -5729, -3.000000, 204.000000, 216.000000, 0.000000 -5730, -3.000000, 204.000000, 216.000000, 0.000000 -5731, -3.000000, 204.000000, 216.000000, 0.000000 -5732, -3.000000, 204.000000, 216.000000, 0.000000 -5733, -3.000000, 204.000000, 216.000000, 0.000000 -5734, -3.000000, 204.000000, 216.000000, 0.000000 -5735, -3.000000, 204.000000, 216.000000, 0.000000 -5736, -3.000000, 204.000000, 216.000000, 0.000000 -5737, -3.000000, 204.000000, 216.000000, 0.000000 -5738, -3.000000, 204.000000, 216.000000, 0.000000 -5739, -3.000000, 204.000000, 216.000000, 0.000000 -5740, -3.000000, 204.000000, 216.000000, 0.000000 -5741, -3.000000, 204.000000, 216.000000, 0.000000 -5742, -3.000000, 204.000000, 216.000000, 0.000000 -5743, -3.000000, 204.000000, 216.000000, 0.000000 -5744, -3.000000, 204.000000, 216.000000, 0.000000 -5745, -3.000000, 204.000000, 216.000000, 0.000000 -5746, -3.000000, 204.000000, 216.000000, 0.000000 -5747, -3.000000, 204.000000, 216.000000, 0.000000 -5748, -3.000000, 204.000000, 216.000000, 0.000000 -5749, -3.000000, 204.000000, 216.000000, 0.000000 -5750, -3.000000, 204.000000, 216.000000, 0.000000 -5751, -3.000000, 204.000000, 216.000000, 0.000000 -5752, -3.000000, 204.000000, 216.000000, 0.000000 -5753, -3.000000, 204.000000, 216.000000, 0.000000 -5754, -3.000000, 204.000000, 216.000000, 0.000000 -5755, -3.000000, 204.000000, 216.000000, 0.000000 -5756, -3.000000, 204.000000, 216.000000, 0.000000 -5757, -3.000000, 204.000000, 216.000000, 0.000000 -5758, -3.000000, 204.000000, 216.000000, 0.000000 -5759, -3.000000, 204.000000, 216.000000, 0.000000 -5760, -3.000000, 204.000000, 216.000000, 0.000000 -5761, -3.000000, 204.000000, 216.000000, 0.000000 -5762, -3.000000, 204.000000, 216.000000, 0.000000 -5763, -3.000000, 204.000000, 216.000000, 0.000000 -5764, -3.000000, 204.000000, 216.000000, 0.000000 -5765, -3.000000, 204.000000, 216.000000, 0.000000 -5766, -3.000000, 204.000000, 216.000000, 0.000000 -5767, -3.000000, 204.000000, 216.000000, 0.000000 -5768, -3.000000, 204.000000, 216.000000, 0.000000 -5769, -3.000000, 204.000000, 216.000000, 0.000000 -5770, -3.000000, 204.000000, 216.000000, 0.000000 -5771, -3.000000, 204.000000, 216.000000, 0.000000 -5772, -3.000000, 204.000000, 216.000000, 0.000000 -5773, -3.000000, 204.000000, 216.000000, 0.000000 -5774, -3.000000, 204.000000, 216.000000, 0.000000 -5775, -3.000000, 204.000000, 216.000000, 0.000000 -5776, -3.000000, 204.000000, 216.000000, 0.000000 -5777, -3.000000, 204.000000, 216.000000, 0.000000 -5778, -3.000000, 204.000000, 216.000000, 0.000000 -5779, -3.000000, 204.000000, 216.000000, 0.000000 -5780, -3.000000, 204.000000, 216.000000, 0.000000 -5781, -3.000000, 204.000000, 216.000000, 0.000000 -5782, -3.000000, 204.000000, 216.000000, 0.000000 -5783, -3.000000, 204.000000, 216.000000, 0.000000 -5784, -3.000000, 204.000000, 216.000000, 0.000000 -5785, -3.000000, 204.000000, 216.000000, 0.000000 -5786, -3.000000, 204.000000, 216.000000, 0.000000 -5787, -3.000000, 204.000000, 216.000000, 0.000000 -5788, -3.000000, 204.000000, 216.000000, 0.000000 -5789, -3.000000, 204.000000, 216.000000, 0.000000 -5790, -3.000000, 204.000000, 216.000000, 0.000000 -5791, -3.000000, 204.000000, 216.000000, 0.000000 -5792, -3.000000, 204.000000, 216.000000, 0.000000 -5793, -3.000000, 204.000000, 216.000000, 0.000000 -5794, -3.000000, 204.000000, 216.000000, 0.000000 -5795, -3.000000, 204.000000, 216.000000, 0.000000 -5796, -3.000000, 204.000000, 216.000000, 0.000000 -5797, -3.000000, 204.000000, 216.000000, 0.000000 -5798, -3.000000, 204.000000, 216.000000, 0.000000 -5799, -3.000000, 204.000000, 216.000000, 0.000000 -5800, -3.000000, 206.000000, 219.000000, 0.000000 -5801, -3.000000, 206.000000, 219.000000, 0.000000 -5802, -3.000000, 206.000000, 219.000000, 0.000000 -5803, -3.000000, 206.000000, 219.000000, 0.000000 -5804, -3.000000, 206.000000, 219.000000, 0.000000 -5805, -3.000000, 206.000000, 219.000000, 0.000000 -5806, -3.000000, 206.000000, 219.000000, 0.000000 -5807, -3.000000, 206.000000, 219.000000, 0.000000 -5808, -3.000000, 206.000000, 219.000000, 0.000000 -5809, -3.000000, 206.000000, 219.000000, 0.000000 -5810, -3.000000, 206.000000, 219.000000, 0.000000 -5811, -3.000000, 206.000000, 219.000000, 0.000000 -5812, -3.000000, 206.000000, 219.000000, 0.000000 -5813, -3.000000, 206.000000, 219.000000, 0.000000 -5814, -3.000000, 206.000000, 219.000000, 0.000000 -5815, -3.000000, 206.000000, 219.000000, 0.000000 -5816, -3.000000, 206.000000, 219.000000, 0.000000 -5817, -3.000000, 206.000000, 219.000000, 0.000000 -5818, -3.000000, 206.000000, 219.000000, 0.000000 -5819, -3.000000, 206.000000, 219.000000, 0.000000 -5820, -3.000000, 206.000000, 219.000000, 0.000000 -5821, -3.000000, 206.000000, 219.000000, 0.000000 -5822, -3.000000, 206.000000, 219.000000, 0.000000 -5823, -3.000000, 206.000000, 219.000000, 0.000000 -5824, -3.000000, 206.000000, 219.000000, 0.000000 -5825, -3.000000, 206.000000, 219.000000, 0.000000 -5826, -3.000000, 206.000000, 219.000000, 0.000000 -5827, -3.000000, 206.000000, 219.000000, 0.000000 -5828, -3.000000, 206.000000, 219.000000, 0.000000 -5829, -3.000000, 206.000000, 219.000000, 0.000000 -5830, -3.000000, 206.000000, 219.000000, 0.000000 -5831, -3.000000, 206.000000, 219.000000, 0.000000 -5832, -3.000000, 206.000000, 219.000000, 0.000000 -5833, -3.000000, 206.000000, 219.000000, 0.000000 -5834, -3.000000, 206.000000, 219.000000, 0.000000 -5835, -3.000000, 206.000000, 219.000000, 0.000000 -5836, -3.000000, 206.000000, 219.000000, 0.000000 -5837, -3.000000, 206.000000, 219.000000, 0.000000 -5838, -3.000000, 206.000000, 219.000000, 0.000000 -5839, -3.000000, 206.000000, 219.000000, 0.000000 -5840, -3.000000, 206.000000, 219.000000, 0.000000 -5841, -3.000000, 206.000000, 219.000000, 0.000000 -5842, -3.000000, 206.000000, 219.000000, 0.000000 -5843, -3.000000, 206.000000, 219.000000, 0.000000 -5844, -3.000000, 206.000000, 219.000000, 0.000000 -5845, -3.000000, 206.000000, 219.000000, 0.000000 -5846, -3.000000, 206.000000, 219.000000, 0.000000 -5847, -3.000000, 206.000000, 219.000000, 0.000000 -5848, -3.000000, 206.000000, 219.000000, 0.000000 -5849, -3.000000, 206.000000, 219.000000, 0.000000 -5850, -3.000000, 206.000000, 219.000000, 0.000000 -5851, -3.000000, 206.000000, 219.000000, 0.000000 -5852, -3.000000, 206.000000, 219.000000, 0.000000 -5853, -3.000000, 206.000000, 219.000000, 0.000000 -5854, -3.000000, 206.000000, 219.000000, 0.000000 -5855, -3.000000, 206.000000, 219.000000, 0.000000 -5856, -3.000000, 206.000000, 219.000000, 0.000000 -5857, -3.000000, 206.000000, 219.000000, 0.000000 -5858, -3.000000, 206.000000, 219.000000, 0.000000 -5859, -3.000000, 206.000000, 219.000000, 0.000000 -5860, -3.000000, 206.000000, 219.000000, 0.000000 -5861, -3.000000, 206.000000, 219.000000, 0.000000 -5862, -3.000000, 206.000000, 219.000000, 0.000000 -5863, -3.000000, 206.000000, 219.000000, 0.000000 -5864, -3.000000, 206.000000, 219.000000, 0.000000 -5865, -3.000000, 206.000000, 219.000000, 0.000000 -5866, -3.000000, 206.000000, 219.000000, 0.000000 -5867, -3.000000, 206.000000, 219.000000, 0.000000 -5868, -3.000000, 206.000000, 219.000000, 0.000000 -5869, -3.000000, 206.000000, 219.000000, 0.000000 -5870, -3.000000, 206.000000, 219.000000, 0.000000 -5871, -3.000000, 206.000000, 219.000000, 0.000000 -5872, -3.000000, 206.000000, 219.000000, 0.000000 -5873, -3.000000, 206.000000, 219.000000, 0.000000 -5874, -3.000000, 206.000000, 219.000000, 0.000000 -5875, -3.000000, 206.000000, 219.000000, 0.000000 -5876, -3.000000, 206.000000, 219.000000, 0.000000 -5877, -3.000000, 206.000000, 219.000000, 0.000000 -5878, -3.000000, 206.000000, 219.000000, 0.000000 -5879, -3.000000, 206.000000, 219.000000, 0.000000 -5880, -3.000000, 206.000000, 219.000000, 0.000000 -5881, -3.000000, 206.000000, 219.000000, 0.000000 -5882, -3.000000, 206.000000, 219.000000, 0.000000 -5883, -3.000000, 206.000000, 219.000000, 0.000000 -5884, -3.000000, 206.000000, 219.000000, 0.000000 -5885, -3.000000, 206.000000, 219.000000, 0.000000 -5886, -3.000000, 206.000000, 219.000000, 0.000000 -5887, -3.000000, 206.000000, 219.000000, 0.000000 -5888, -3.000000, 206.000000, 219.000000, 0.000000 -5889, -3.000000, 206.000000, 219.000000, 0.000000 -5890, -3.000000, 206.000000, 219.000000, 0.000000 -5891, -3.000000, 206.000000, 219.000000, 0.000000 -5892, -3.000000, 206.000000, 219.000000, 0.000000 -5893, -3.000000, 206.000000, 219.000000, 0.000000 -5894, -3.000000, 206.000000, 219.000000, 0.000000 -5895, -3.000000, 206.000000, 219.000000, 0.000000 -5896, -3.000000, 206.000000, 219.000000, 0.000000 -5897, -3.000000, 206.000000, 219.000000, 0.000000 -5898, -3.000000, 206.000000, 219.000000, 0.000000 -5899, -3.000000, 206.000000, 219.000000, 0.000000 -5900, -3.000000, 208.000000, 222.000000, 0.000000 -5901, -3.000000, 208.000000, 222.000000, 0.000000 -5902, -3.000000, 208.000000, 222.000000, 0.000000 -5903, -3.000000, 208.000000, 222.000000, 0.000000 -5904, -3.000000, 208.000000, 222.000000, 0.000000 -5905, -3.000000, 208.000000, 222.000000, 0.000000 -5906, -3.000000, 208.000000, 222.000000, 0.000000 -5907, -3.000000, 208.000000, 222.000000, 0.000000 -5908, -3.000000, 208.000000, 222.000000, 0.000000 -5909, -3.000000, 208.000000, 222.000000, 0.000000 -5910, -3.000000, 208.000000, 222.000000, 0.000000 -5911, -3.000000, 208.000000, 222.000000, 0.000000 -5912, -3.000000, 208.000000, 222.000000, 0.000000 -5913, -3.000000, 208.000000, 222.000000, 0.000000 -5914, -3.000000, 208.000000, 222.000000, 0.000000 -5915, -3.000000, 208.000000, 222.000000, 0.000000 -5916, -3.000000, 208.000000, 222.000000, 0.000000 -5917, -3.000000, 208.000000, 222.000000, 0.000000 -5918, -3.000000, 208.000000, 222.000000, 0.000000 -5919, -3.000000, 208.000000, 222.000000, 0.000000 -5920, -3.000000, 208.000000, 222.000000, 0.000000 -5921, -3.000000, 208.000000, 222.000000, 0.000000 -5922, -3.000000, 208.000000, 222.000000, 0.000000 -5923, -3.000000, 208.000000, 222.000000, 0.000000 -5924, -3.000000, 208.000000, 222.000000, 0.000000 -5925, -3.000000, 208.000000, 222.000000, 0.000000 -5926, -3.000000, 208.000000, 222.000000, 0.000000 -5927, -3.000000, 208.000000, 222.000000, 0.000000 -5928, -3.000000, 208.000000, 222.000000, 0.000000 -5929, -3.000000, 208.000000, 222.000000, 0.000000 -5930, -3.000000, 208.000000, 222.000000, 0.000000 -5931, -3.000000, 208.000000, 222.000000, 0.000000 -5932, -3.000000, 208.000000, 222.000000, 0.000000 -5933, -3.000000, 208.000000, 222.000000, 0.000000 -5934, -3.000000, 208.000000, 222.000000, 0.000000 -5935, -3.000000, 208.000000, 222.000000, 0.000000 -5936, -3.000000, 208.000000, 222.000000, 0.000000 -5937, -3.000000, 208.000000, 222.000000, 0.000000 -5938, -3.000000, 208.000000, 222.000000, 0.000000 -5939, -3.000000, 208.000000, 222.000000, 0.000000 -5940, -3.000000, 208.000000, 222.000000, 0.000000 -5941, -3.000000, 208.000000, 222.000000, 0.000000 -5942, -3.000000, 208.000000, 222.000000, 0.000000 -5943, -3.000000, 208.000000, 222.000000, 0.000000 -5944, -3.000000, 208.000000, 222.000000, 0.000000 -5945, -3.000000, 208.000000, 222.000000, 0.000000 -5946, -3.000000, 208.000000, 222.000000, 0.000000 -5947, -3.000000, 208.000000, 222.000000, 0.000000 -5948, -3.000000, 208.000000, 222.000000, 0.000000 -5949, -3.000000, 208.000000, 222.000000, 0.000000 -5950, -3.000000, 208.000000, 222.000000, 0.000000 -5951, -3.000000, 208.000000, 222.000000, 0.000000 -5952, -3.000000, 208.000000, 222.000000, 0.000000 -5953, -3.000000, 208.000000, 222.000000, 0.000000 -5954, -3.000000, 208.000000, 222.000000, 0.000000 -5955, -3.000000, 208.000000, 222.000000, 0.000000 -5956, -3.000000, 208.000000, 222.000000, 0.000000 -5957, -3.000000, 208.000000, 222.000000, 0.000000 -5958, -3.000000, 208.000000, 222.000000, 0.000000 -5959, -3.000000, 208.000000, 222.000000, 0.000000 -5960, -3.000000, 208.000000, 222.000000, 0.000000 -5961, -3.000000, 208.000000, 222.000000, 0.000000 -5962, -3.000000, 208.000000, 222.000000, 0.000000 -5963, -3.000000, 208.000000, 222.000000, 0.000000 -5964, -3.000000, 208.000000, 222.000000, 0.000000 -5965, -3.000000, 208.000000, 222.000000, 0.000000 -5966, -3.000000, 208.000000, 222.000000, 0.000000 -5967, -3.000000, 208.000000, 222.000000, 0.000000 -5968, -3.000000, 208.000000, 222.000000, 0.000000 -5969, -3.000000, 208.000000, 222.000000, 0.000000 -5970, -3.000000, 208.000000, 222.000000, 0.000000 -5971, -3.000000, 208.000000, 222.000000, 0.000000 -5972, -3.000000, 208.000000, 222.000000, 0.000000 -5973, -3.000000, 208.000000, 222.000000, 0.000000 -5974, -3.000000, 208.000000, 222.000000, 0.000000 -5975, -3.000000, 208.000000, 222.000000, 0.000000 -5976, -3.000000, 208.000000, 222.000000, 0.000000 -5977, -3.000000, 208.000000, 222.000000, 0.000000 -5978, -3.000000, 208.000000, 222.000000, 0.000000 -5979, -3.000000, 208.000000, 222.000000, 0.000000 -5980, -3.000000, 208.000000, 222.000000, 0.000000 -5981, -3.000000, 208.000000, 222.000000, 0.000000 -5982, -3.000000, 208.000000, 222.000000, 0.000000 -5983, -3.000000, 208.000000, 222.000000, 0.000000 -5984, -3.000000, 208.000000, 222.000000, 0.000000 -5985, -3.000000, 208.000000, 222.000000, 0.000000 -5986, -3.000000, 208.000000, 222.000000, 0.000000 -5987, -3.000000, 208.000000, 222.000000, 0.000000 -5988, -3.000000, 208.000000, 222.000000, 0.000000 -5989, -3.000000, 208.000000, 222.000000, 0.000000 -5990, -3.000000, 208.000000, 222.000000, 0.000000 -5991, -3.000000, 208.000000, 222.000000, 0.000000 -5992, -3.000000, 208.000000, 222.000000, 0.000000 -5993, -3.000000, 208.000000, 222.000000, 0.000000 -5994, -3.000000, 208.000000, 222.000000, 0.000000 -5995, -3.000000, 208.000000, 222.000000, 0.000000 -5996, -3.000000, 208.000000, 222.000000, 0.000000 -5997, -3.000000, 208.000000, 222.000000, 0.000000 -5998, -3.000000, 208.000000, 222.000000, 0.000000 -5999, -3.000000, 208.000000, 222.000000, 0.000000 -6000, -3.000000, 210.000000, 225.000000, 0.000000 -6001, -3.000000, 210.000000, 225.000000, 0.000000 -6002, -3.000000, 210.000000, 225.000000, 0.000000 -6003, -3.000000, 210.000000, 225.000000, 0.000000 -6004, -3.000000, 210.000000, 225.000000, 0.000000 -6005, -3.000000, 210.000000, 225.000000, 0.000000 -6006, -3.000000, 210.000000, 225.000000, 0.000000 -6007, -3.000000, 210.000000, 225.000000, 0.000000 -6008, -3.000000, 210.000000, 225.000000, 0.000000 -6009, -3.000000, 210.000000, 225.000000, 0.000000 -6010, -3.000000, 210.000000, 225.000000, 0.000000 -6011, -3.000000, 210.000000, 225.000000, 0.000000 -6012, -3.000000, 210.000000, 225.000000, 0.000000 -6013, -3.000000, 210.000000, 225.000000, 0.000000 -6014, -3.000000, 210.000000, 225.000000, 0.000000 -6015, -3.000000, 210.000000, 225.000000, 0.000000 -6016, -3.000000, 210.000000, 225.000000, 0.000000 -6017, -3.000000, 210.000000, 225.000000, 0.000000 -6018, -3.000000, 210.000000, 225.000000, 0.000000 -6019, -3.000000, 210.000000, 225.000000, 0.000000 -6020, -3.000000, 210.000000, 225.000000, 0.000000 -6021, -3.000000, 210.000000, 225.000000, 0.000000 -6022, -3.000000, 210.000000, 225.000000, 0.000000 -6023, -3.000000, 210.000000, 225.000000, 0.000000 -6024, -3.000000, 210.000000, 225.000000, 0.000000 -6025, -3.000000, 210.000000, 225.000000, 0.000000 -6026, -3.000000, 210.000000, 225.000000, 0.000000 -6027, -3.000000, 210.000000, 225.000000, 0.000000 -6028, -3.000000, 210.000000, 225.000000, 0.000000 -6029, -3.000000, 210.000000, 225.000000, 0.000000 -6030, -3.000000, 210.000000, 225.000000, 0.000000 -6031, -3.000000, 210.000000, 225.000000, 0.000000 -6032, -3.000000, 210.000000, 225.000000, 0.000000 -6033, -3.000000, 210.000000, 225.000000, 0.000000 -6034, -3.000000, 210.000000, 225.000000, 0.000000 -6035, -3.000000, 210.000000, 225.000000, 0.000000 -6036, -3.000000, 210.000000, 225.000000, 0.000000 -6037, -3.000000, 210.000000, 225.000000, 0.000000 -6038, -3.000000, 210.000000, 225.000000, 0.000000 -6039, -3.000000, 210.000000, 225.000000, 0.000000 -6040, -3.000000, 210.000000, 225.000000, 0.000000 -6041, -3.000000, 210.000000, 225.000000, 0.000000 -6042, -3.000000, 210.000000, 225.000000, 0.000000 -6043, -3.000000, 210.000000, 225.000000, 0.000000 -6044, -3.000000, 210.000000, 225.000000, 0.000000 -6045, -3.000000, 210.000000, 225.000000, 0.000000 -6046, -3.000000, 210.000000, 225.000000, 0.000000 -6047, -3.000000, 210.000000, 225.000000, 0.000000 -6048, -3.000000, 210.000000, 225.000000, 0.000000 -6049, -3.000000, 210.000000, 225.000000, 0.000000 -6050, -3.000000, 210.000000, 225.000000, 0.000000 -6051, -3.000000, 210.000000, 225.000000, 0.000000 -6052, -3.000000, 210.000000, 225.000000, 0.000000 -6053, -3.000000, 210.000000, 225.000000, 0.000000 -6054, -3.000000, 210.000000, 225.000000, 0.000000 -6055, -3.000000, 210.000000, 225.000000, 0.000000 -6056, -3.000000, 210.000000, 225.000000, 0.000000 -6057, -3.000000, 210.000000, 225.000000, 0.000000 -6058, -3.000000, 210.000000, 225.000000, 0.000000 -6059, -3.000000, 210.000000, 225.000000, 0.000000 -6060, -3.000000, 210.000000, 225.000000, 0.000000 -6061, -3.000000, 210.000000, 225.000000, 0.000000 -6062, -3.000000, 210.000000, 225.000000, 0.000000 -6063, -3.000000, 210.000000, 225.000000, 0.000000 -6064, -3.000000, 210.000000, 225.000000, 0.000000 -6065, -3.000000, 210.000000, 225.000000, 0.000000 -6066, -3.000000, 210.000000, 225.000000, 0.000000 -6067, -3.000000, 210.000000, 225.000000, 0.000000 -6068, -3.000000, 210.000000, 225.000000, 0.000000 -6069, -3.000000, 210.000000, 225.000000, 0.000000 -6070, -3.000000, 210.000000, 225.000000, 0.000000 -6071, -3.000000, 210.000000, 225.000000, 0.000000 -6072, -3.000000, 210.000000, 225.000000, 0.000000 -6073, -3.000000, 210.000000, 225.000000, 0.000000 -6074, -3.000000, 210.000000, 225.000000, 0.000000 -6075, -3.000000, 210.000000, 225.000000, 0.000000 -6076, -3.000000, 210.000000, 225.000000, 0.000000 -6077, -3.000000, 210.000000, 225.000000, 0.000000 -6078, -3.000000, 210.000000, 225.000000, 0.000000 -6079, -3.000000, 210.000000, 225.000000, 0.000000 -6080, -3.000000, 210.000000, 225.000000, 0.000000 -6081, -3.000000, 210.000000, 225.000000, 0.000000 -6082, -3.000000, 210.000000, 225.000000, 0.000000 -6083, -3.000000, 210.000000, 225.000000, 0.000000 -6084, -3.000000, 210.000000, 225.000000, 0.000000 -6085, -3.000000, 210.000000, 225.000000, 0.000000 -6086, -3.000000, 210.000000, 225.000000, 0.000000 -6087, -3.000000, 210.000000, 225.000000, 0.000000 -6088, -3.000000, 210.000000, 225.000000, 0.000000 -6089, -3.000000, 210.000000, 225.000000, 0.000000 -6090, -3.000000, 210.000000, 225.000000, 0.000000 -6091, -3.000000, 210.000000, 225.000000, 0.000000 -6092, -3.000000, 210.000000, 225.000000, 0.000000 -6093, -3.000000, 210.000000, 225.000000, 0.000000 -6094, -3.000000, 210.000000, 225.000000, 0.000000 -6095, -3.000000, 210.000000, 225.000000, 0.000000 -6096, -3.000000, 210.000000, 225.000000, 0.000000 -6097, -3.000000, 210.000000, 225.000000, 0.000000 -6098, -3.000000, 210.000000, 225.000000, 0.000000 -6099, -3.000000, 210.000000, 225.000000, 0.000000 -6100, -3.000000, 212.000000, 228.000000, 0.000000 -6101, -3.000000, 212.000000, 228.000000, 0.000000 -6102, -3.000000, 212.000000, 228.000000, 0.000000 -6103, -3.000000, 212.000000, 228.000000, 0.000000 -6104, -3.000000, 212.000000, 228.000000, 0.000000 -6105, -3.000000, 212.000000, 228.000000, 0.000000 -6106, -3.000000, 212.000000, 228.000000, 0.000000 -6107, -3.000000, 212.000000, 228.000000, 0.000000 -6108, -3.000000, 212.000000, 228.000000, 0.000000 -6109, -3.000000, 212.000000, 228.000000, 0.000000 -6110, -3.000000, 212.000000, 228.000000, 0.000000 -6111, -3.000000, 212.000000, 228.000000, 0.000000 -6112, -3.000000, 212.000000, 228.000000, 0.000000 -6113, -3.000000, 212.000000, 228.000000, 0.000000 -6114, -3.000000, 212.000000, 228.000000, 0.000000 -6115, -3.000000, 212.000000, 228.000000, 0.000000 -6116, -3.000000, 212.000000, 228.000000, 0.000000 -6117, -3.000000, 212.000000, 228.000000, 0.000000 -6118, -3.000000, 212.000000, 228.000000, 0.000000 -6119, -3.000000, 212.000000, 228.000000, 0.000000 -6120, -3.000000, 212.000000, 228.000000, 0.000000 -6121, -3.000000, 212.000000, 228.000000, 0.000000 -6122, -3.000000, 212.000000, 228.000000, 0.000000 -6123, -3.000000, 212.000000, 228.000000, 0.000000 -6124, -3.000000, 212.000000, 228.000000, 0.000000 -6125, -3.000000, 212.000000, 228.000000, 0.000000 -6126, -3.000000, 212.000000, 228.000000, 0.000000 -6127, -3.000000, 212.000000, 228.000000, 0.000000 -6128, -3.000000, 212.000000, 228.000000, 0.000000 -6129, -3.000000, 212.000000, 228.000000, 0.000000 -6130, -3.000000, 212.000000, 228.000000, 0.000000 -6131, -3.000000, 212.000000, 228.000000, 0.000000 -6132, -3.000000, 212.000000, 228.000000, 0.000000 -6133, -3.000000, 212.000000, 228.000000, 0.000000 -6134, -3.000000, 212.000000, 228.000000, 0.000000 -6135, -3.000000, 212.000000, 228.000000, 0.000000 -6136, -3.000000, 212.000000, 228.000000, 0.000000 -6137, -3.000000, 212.000000, 228.000000, 0.000000 -6138, -3.000000, 212.000000, 228.000000, 0.000000 -6139, -3.000000, 212.000000, 228.000000, 0.000000 -6140, -3.000000, 212.000000, 228.000000, 0.000000 -6141, -3.000000, 212.000000, 228.000000, 0.000000 -6142, -3.000000, 212.000000, 228.000000, 0.000000 -6143, -3.000000, 212.000000, 228.000000, 0.000000 -6144, -3.000000, 212.000000, 228.000000, 0.000000 -6145, -3.000000, 212.000000, 228.000000, 0.000000 -6146, -3.000000, 212.000000, 228.000000, 0.000000 -6147, -3.000000, 212.000000, 228.000000, 0.000000 -6148, -3.000000, 212.000000, 228.000000, 0.000000 -6149, -3.000000, 212.000000, 228.000000, 0.000000 -6150, -3.000000, 212.000000, 228.000000, 0.000000 -6151, -3.000000, 212.000000, 228.000000, 0.000000 -6152, -3.000000, 212.000000, 228.000000, 0.000000 -6153, -3.000000, 212.000000, 228.000000, 0.000000 -6154, -3.000000, 212.000000, 228.000000, 0.000000 -6155, -3.000000, 212.000000, 228.000000, 0.000000 -6156, -3.000000, 212.000000, 228.000000, 0.000000 -6157, -3.000000, 212.000000, 228.000000, 0.000000 -6158, -3.000000, 212.000000, 228.000000, 0.000000 -6159, -3.000000, 212.000000, 228.000000, 0.000000 -6160, -3.000000, 212.000000, 228.000000, 0.000000 -6161, -3.000000, 212.000000, 228.000000, 0.000000 -6162, -3.000000, 212.000000, 228.000000, 0.000000 -6163, -3.000000, 212.000000, 228.000000, 0.000000 -6164, -3.000000, 212.000000, 228.000000, 0.000000 -6165, -3.000000, 212.000000, 228.000000, 0.000000 -6166, -3.000000, 212.000000, 228.000000, 0.000000 -6167, -3.000000, 212.000000, 228.000000, 0.000000 -6168, -3.000000, 212.000000, 228.000000, 0.000000 -6169, -3.000000, 212.000000, 228.000000, 0.000000 -6170, -3.000000, 212.000000, 228.000000, 0.000000 -6171, -3.000000, 212.000000, 228.000000, 0.000000 -6172, -3.000000, 212.000000, 228.000000, 0.000000 -6173, -3.000000, 212.000000, 228.000000, 0.000000 -6174, -3.000000, 212.000000, 228.000000, 0.000000 -6175, -3.000000, 212.000000, 228.000000, 0.000000 -6176, -3.000000, 212.000000, 228.000000, 0.000000 -6177, -3.000000, 212.000000, 228.000000, 0.000000 -6178, -3.000000, 212.000000, 228.000000, 0.000000 -6179, -3.000000, 212.000000, 228.000000, 0.000000 -6180, -3.000000, 212.000000, 228.000000, 0.000000 -6181, -3.000000, 212.000000, 228.000000, 0.000000 -6182, -3.000000, 212.000000, 228.000000, 0.000000 -6183, -3.000000, 212.000000, 228.000000, 0.000000 -6184, -3.000000, 212.000000, 228.000000, 0.000000 -6185, -3.000000, 212.000000, 228.000000, 0.000000 -6186, -3.000000, 212.000000, 228.000000, 0.000000 -6187, -3.000000, 212.000000, 228.000000, 0.000000 -6188, -3.000000, 212.000000, 228.000000, 0.000000 -6189, -3.000000, 212.000000, 228.000000, 0.000000 -6190, -3.000000, 212.000000, 228.000000, 0.000000 -6191, -3.000000, 212.000000, 228.000000, 0.000000 -6192, -3.000000, 212.000000, 228.000000, 0.000000 -6193, -3.000000, 212.000000, 228.000000, 0.000000 -6194, -3.000000, 212.000000, 228.000000, 0.000000 -6195, -3.000000, 212.000000, 228.000000, 0.000000 -6196, -3.000000, 212.000000, 228.000000, 0.000000 -6197, -3.000000, 212.000000, 228.000000, 0.000000 -6198, -3.000000, 212.000000, 228.000000, 0.000000 -6199, -3.000000, 212.000000, 228.000000, 0.000000 -6200, -3.000000, 214.000000, 231.000000, 0.000000 -6201, -3.000000, 214.000000, 231.000000, 0.000000 -6202, -3.000000, 214.000000, 231.000000, 0.000000 -6203, -3.000000, 214.000000, 231.000000, 0.000000 -6204, -3.000000, 214.000000, 231.000000, 0.000000 -6205, -3.000000, 214.000000, 231.000000, 0.000000 -6206, -3.000000, 214.000000, 231.000000, 0.000000 -6207, -3.000000, 214.000000, 231.000000, 0.000000 -6208, -3.000000, 214.000000, 231.000000, 0.000000 -6209, -3.000000, 214.000000, 231.000000, 0.000000 -6210, -3.000000, 214.000000, 231.000000, 0.000000 -6211, -3.000000, 214.000000, 231.000000, 0.000000 -6212, -3.000000, 214.000000, 231.000000, 0.000000 -6213, -3.000000, 214.000000, 231.000000, 0.000000 -6214, -3.000000, 214.000000, 231.000000, 0.000000 -6215, -3.000000, 214.000000, 231.000000, 0.000000 -6216, -3.000000, 214.000000, 231.000000, 0.000000 -6217, -3.000000, 214.000000, 231.000000, 0.000000 -6218, -3.000000, 214.000000, 231.000000, 0.000000 -6219, -3.000000, 214.000000, 231.000000, 0.000000 -6220, -3.000000, 214.000000, 231.000000, 0.000000 -6221, -3.000000, 214.000000, 231.000000, 0.000000 -6222, -3.000000, 214.000000, 231.000000, 0.000000 -6223, -3.000000, 214.000000, 231.000000, 0.000000 -6224, -3.000000, 214.000000, 231.000000, 0.000000 -6225, -3.000000, 214.000000, 231.000000, 0.000000 -6226, -3.000000, 214.000000, 231.000000, 0.000000 -6227, -3.000000, 214.000000, 231.000000, 0.000000 -6228, -3.000000, 214.000000, 231.000000, 0.000000 -6229, -3.000000, 214.000000, 231.000000, 0.000000 -6230, -3.000000, 214.000000, 231.000000, 0.000000 -6231, -3.000000, 214.000000, 231.000000, 0.000000 -6232, -3.000000, 214.000000, 231.000000, 0.000000 -6233, -3.000000, 214.000000, 231.000000, 0.000000 -6234, -3.000000, 214.000000, 231.000000, 0.000000 -6235, -3.000000, 214.000000, 231.000000, 0.000000 -6236, -3.000000, 214.000000, 231.000000, 0.000000 -6237, -3.000000, 214.000000, 231.000000, 0.000000 -6238, -3.000000, 214.000000, 231.000000, 0.000000 -6239, -3.000000, 214.000000, 231.000000, 0.000000 -6240, -3.000000, 214.000000, 231.000000, 0.000000 -6241, -3.000000, 214.000000, 231.000000, 0.000000 -6242, -3.000000, 214.000000, 231.000000, 0.000000 -6243, -3.000000, 214.000000, 231.000000, 0.000000 -6244, -3.000000, 214.000000, 231.000000, 0.000000 -6245, -3.000000, 214.000000, 231.000000, 0.000000 -6246, -3.000000, 214.000000, 231.000000, 0.000000 -6247, -3.000000, 214.000000, 231.000000, 0.000000 -6248, -3.000000, 214.000000, 231.000000, 0.000000 -6249, -3.000000, 214.000000, 231.000000, 0.000000 -6250, -3.000000, 214.000000, 231.000000, 0.000000 -6251, -3.000000, 214.000000, 231.000000, 0.000000 -6252, -3.000000, 214.000000, 231.000000, 0.000000 -6253, -3.000000, 214.000000, 231.000000, 0.000000 -6254, -3.000000, 214.000000, 231.000000, 0.000000 -6255, -3.000000, 214.000000, 231.000000, 0.000000 -6256, -3.000000, 214.000000, 231.000000, 0.000000 -6257, -3.000000, 214.000000, 231.000000, 0.000000 -6258, -3.000000, 214.000000, 231.000000, 0.000000 -6259, -3.000000, 214.000000, 231.000000, 0.000000 -6260, -3.000000, 214.000000, 231.000000, 0.000000 -6261, -3.000000, 214.000000, 231.000000, 0.000000 -6262, -3.000000, 214.000000, 231.000000, 0.000000 -6263, -3.000000, 214.000000, 231.000000, 0.000000 -6264, -3.000000, 214.000000, 231.000000, 0.000000 -6265, -3.000000, 214.000000, 231.000000, 0.000000 -6266, -3.000000, 214.000000, 231.000000, 0.000000 -6267, -3.000000, 214.000000, 231.000000, 0.000000 -6268, -3.000000, 214.000000, 231.000000, 0.000000 -6269, -3.000000, 214.000000, 231.000000, 0.000000 -6270, -3.000000, 214.000000, 231.000000, 0.000000 -6271, -3.000000, 214.000000, 231.000000, 0.000000 -6272, -3.000000, 214.000000, 231.000000, 0.000000 -6273, -3.000000, 214.000000, 231.000000, 0.000000 -6274, -3.000000, 214.000000, 231.000000, 0.000000 -6275, -3.000000, 214.000000, 231.000000, 0.000000 -6276, -3.000000, 214.000000, 231.000000, 0.000000 -6277, -3.000000, 214.000000, 231.000000, 0.000000 -6278, -3.000000, 214.000000, 231.000000, 0.000000 -6279, -3.000000, 214.000000, 231.000000, 0.000000 -6280, -3.000000, 214.000000, 231.000000, 0.000000 -6281, -3.000000, 214.000000, 231.000000, 0.000000 -6282, -3.000000, 214.000000, 231.000000, 0.000000 -6283, -3.000000, 214.000000, 231.000000, 0.000000 -6284, -3.000000, 214.000000, 231.000000, 0.000000 -6285, -3.000000, 214.000000, 231.000000, 0.000000 -6286, -3.000000, 214.000000, 231.000000, 0.000000 -6287, -3.000000, 214.000000, 231.000000, 0.000000 -6288, -3.000000, 214.000000, 231.000000, 0.000000 -6289, -3.000000, 214.000000, 231.000000, 0.000000 -6290, -3.000000, 214.000000, 231.000000, 0.000000 -6291, -3.000000, 214.000000, 231.000000, 0.000000 -6292, -3.000000, 214.000000, 231.000000, 0.000000 -6293, -3.000000, 214.000000, 231.000000, 0.000000 -6294, -3.000000, 214.000000, 231.000000, 0.000000 -6295, -3.000000, 214.000000, 231.000000, 0.000000 -6296, -3.000000, 214.000000, 231.000000, 0.000000 -6297, -3.000000, 214.000000, 231.000000, 0.000000 -6298, -3.000000, 214.000000, 231.000000, 0.000000 -6299, -3.000000, 214.000000, 231.000000, 0.000000 -6300, -3.000000, 216.000000, 234.000000, 0.000000 -6301, -3.000000, 216.000000, 234.000000, 0.000000 -6302, -3.000000, 216.000000, 234.000000, 0.000000 -6303, -3.000000, 216.000000, 234.000000, 0.000000 -6304, -3.000000, 216.000000, 234.000000, 0.000000 -6305, -3.000000, 216.000000, 234.000000, 0.000000 -6306, -3.000000, 216.000000, 234.000000, 0.000000 -6307, -3.000000, 216.000000, 234.000000, 0.000000 -6308, -3.000000, 216.000000, 234.000000, 0.000000 -6309, -3.000000, 216.000000, 234.000000, 0.000000 -6310, -3.000000, 216.000000, 234.000000, 0.000000 -6311, -3.000000, 216.000000, 234.000000, 0.000000 -6312, -3.000000, 216.000000, 234.000000, 0.000000 -6313, -3.000000, 216.000000, 234.000000, 0.000000 -6314, -3.000000, 216.000000, 234.000000, 0.000000 -6315, -3.000000, 216.000000, 234.000000, 0.000000 -6316, -3.000000, 216.000000, 234.000000, 0.000000 -6317, -3.000000, 216.000000, 234.000000, 0.000000 -6318, -3.000000, 216.000000, 234.000000, 0.000000 -6319, -3.000000, 216.000000, 234.000000, 0.000000 -6320, -3.000000, 216.000000, 234.000000, 0.000000 -6321, -3.000000, 216.000000, 234.000000, 0.000000 -6322, -3.000000, 216.000000, 234.000000, 0.000000 -6323, -3.000000, 216.000000, 234.000000, 0.000000 -6324, -3.000000, 216.000000, 234.000000, 0.000000 -6325, -3.000000, 216.000000, 234.000000, 0.000000 -6326, -3.000000, 216.000000, 234.000000, 0.000000 -6327, -3.000000, 216.000000, 234.000000, 0.000000 -6328, -3.000000, 216.000000, 234.000000, 0.000000 -6329, -3.000000, 216.000000, 234.000000, 0.000000 -6330, -3.000000, 216.000000, 234.000000, 0.000000 -6331, -3.000000, 216.000000, 234.000000, 0.000000 -6332, -3.000000, 216.000000, 234.000000, 0.000000 -6333, -3.000000, 216.000000, 234.000000, 0.000000 -6334, -3.000000, 216.000000, 234.000000, 0.000000 -6335, -3.000000, 216.000000, 234.000000, 0.000000 -6336, -3.000000, 216.000000, 234.000000, 0.000000 -6337, -3.000000, 216.000000, 234.000000, 0.000000 -6338, -3.000000, 216.000000, 234.000000, 0.000000 -6339, -3.000000, 216.000000, 234.000000, 0.000000 -6340, -3.000000, 216.000000, 234.000000, 0.000000 -6341, -3.000000, 216.000000, 234.000000, 0.000000 -6342, -3.000000, 216.000000, 234.000000, 0.000000 -6343, -3.000000, 216.000000, 234.000000, 0.000000 -6344, -3.000000, 216.000000, 234.000000, 0.000000 -6345, -3.000000, 216.000000, 234.000000, 0.000000 -6346, -3.000000, 216.000000, 234.000000, 0.000000 -6347, -3.000000, 216.000000, 234.000000, 0.000000 -6348, -3.000000, 216.000000, 234.000000, 0.000000 -6349, -3.000000, 216.000000, 234.000000, 0.000000 -6350, -3.000000, 216.000000, 234.000000, 0.000000 -6351, -3.000000, 216.000000, 234.000000, 0.000000 -6352, -3.000000, 216.000000, 234.000000, 0.000000 -6353, -3.000000, 216.000000, 234.000000, 0.000000 -6354, -3.000000, 216.000000, 234.000000, 0.000000 -6355, -3.000000, 216.000000, 234.000000, 0.000000 -6356, -3.000000, 216.000000, 234.000000, 0.000000 -6357, -3.000000, 216.000000, 234.000000, 0.000000 -6358, -3.000000, 216.000000, 234.000000, 0.000000 -6359, -3.000000, 216.000000, 234.000000, 0.000000 -6360, -3.000000, 216.000000, 234.000000, 0.000000 -6361, -3.000000, 216.000000, 234.000000, 0.000000 -6362, -3.000000, 216.000000, 234.000000, 0.000000 -6363, -3.000000, 216.000000, 234.000000, 0.000000 -6364, -3.000000, 216.000000, 234.000000, 0.000000 -6365, -3.000000, 216.000000, 234.000000, 0.000000 -6366, -3.000000, 216.000000, 234.000000, 0.000000 -6367, -3.000000, 216.000000, 234.000000, 0.000000 -6368, -3.000000, 216.000000, 234.000000, 0.000000 -6369, -3.000000, 216.000000, 234.000000, 0.000000 -6370, -3.000000, 216.000000, 234.000000, 0.000000 -6371, -3.000000, 216.000000, 234.000000, 0.000000 -6372, -3.000000, 216.000000, 234.000000, 0.000000 -6373, -3.000000, 216.000000, 234.000000, 0.000000 -6374, -3.000000, 216.000000, 234.000000, 0.000000 -6375, -3.000000, 216.000000, 234.000000, 0.000000 -6376, -3.000000, 216.000000, 234.000000, 0.000000 -6377, -3.000000, 216.000000, 234.000000, 0.000000 -6378, -3.000000, 216.000000, 234.000000, 0.000000 -6379, -3.000000, 216.000000, 234.000000, 0.000000 -6380, -3.000000, 216.000000, 234.000000, 0.000000 -6381, -3.000000, 216.000000, 234.000000, 0.000000 -6382, -3.000000, 216.000000, 234.000000, 0.000000 -6383, -3.000000, 216.000000, 234.000000, 0.000000 -6384, -3.000000, 216.000000, 234.000000, 0.000000 -6385, -3.000000, 216.000000, 234.000000, 0.000000 -6386, -3.000000, 216.000000, 234.000000, 0.000000 -6387, -3.000000, 216.000000, 234.000000, 0.000000 -6388, -3.000000, 216.000000, 234.000000, 0.000000 -6389, -3.000000, 216.000000, 234.000000, 0.000000 -6390, -3.000000, 216.000000, 234.000000, 0.000000 -6391, -3.000000, 216.000000, 234.000000, 0.000000 -6392, -3.000000, 216.000000, 234.000000, 0.000000 -6393, -3.000000, 216.000000, 234.000000, 0.000000 -6394, -3.000000, 216.000000, 234.000000, 0.000000 -6395, -3.000000, 216.000000, 234.000000, 0.000000 -6396, -3.000000, 216.000000, 234.000000, 0.000000 -6397, -3.000000, 216.000000, 234.000000, 0.000000 -6398, -3.000000, 216.000000, 234.000000, 0.000000 -6399, -3.000000, 216.000000, 234.000000, 0.000000 -6400, -3.000000, 218.000000, 237.000000, 0.000000 -6401, -3.000000, 218.000000, 237.000000, 0.000000 -6402, -3.000000, 218.000000, 237.000000, 0.000000 -6403, -3.000000, 218.000000, 237.000000, 0.000000 -6404, -3.000000, 218.000000, 237.000000, 0.000000 -6405, -3.000000, 218.000000, 237.000000, 0.000000 -6406, -3.000000, 218.000000, 237.000000, 0.000000 -6407, -3.000000, 218.000000, 237.000000, 0.000000 -6408, -3.000000, 218.000000, 237.000000, 0.000000 -6409, -3.000000, 218.000000, 237.000000, 0.000000 -6410, -3.000000, 218.000000, 237.000000, 0.000000 -6411, -3.000000, 218.000000, 237.000000, 0.000000 -6412, -3.000000, 218.000000, 237.000000, 0.000000 -6413, -3.000000, 218.000000, 237.000000, 0.000000 -6414, -3.000000, 218.000000, 237.000000, 0.000000 -6415, -3.000000, 218.000000, 237.000000, 0.000000 -6416, -3.000000, 218.000000, 237.000000, 0.000000 -6417, -3.000000, 218.000000, 237.000000, 0.000000 -6418, -3.000000, 218.000000, 237.000000, 0.000000 -6419, -3.000000, 218.000000, 237.000000, 0.000000 -6420, -3.000000, 218.000000, 237.000000, 0.000000 -6421, -3.000000, 218.000000, 237.000000, 0.000000 -6422, -3.000000, 218.000000, 237.000000, 0.000000 -6423, -3.000000, 218.000000, 237.000000, 0.000000 -6424, -3.000000, 218.000000, 237.000000, 0.000000 -6425, -3.000000, 218.000000, 237.000000, 0.000000 -6426, -3.000000, 218.000000, 237.000000, 0.000000 -6427, -3.000000, 218.000000, 237.000000, 0.000000 -6428, -3.000000, 218.000000, 237.000000, 0.000000 -6429, -3.000000, 218.000000, 237.000000, 0.000000 -6430, -3.000000, 218.000000, 237.000000, 0.000000 -6431, -3.000000, 218.000000, 237.000000, 0.000000 -6432, -3.000000, 218.000000, 237.000000, 0.000000 -6433, -3.000000, 218.000000, 237.000000, 0.000000 -6434, -3.000000, 218.000000, 237.000000, 0.000000 -6435, -3.000000, 218.000000, 237.000000, 0.000000 -6436, -3.000000, 218.000000, 237.000000, 0.000000 -6437, -3.000000, 218.000000, 237.000000, 0.000000 -6438, -3.000000, 218.000000, 237.000000, 0.000000 -6439, -3.000000, 218.000000, 237.000000, 0.000000 -6440, -3.000000, 218.000000, 237.000000, 0.000000 -6441, -3.000000, 218.000000, 237.000000, 0.000000 -6442, -3.000000, 218.000000, 237.000000, 0.000000 -6443, -3.000000, 218.000000, 237.000000, 0.000000 -6444, -3.000000, 218.000000, 237.000000, 0.000000 -6445, -3.000000, 218.000000, 237.000000, 0.000000 -6446, -3.000000, 218.000000, 237.000000, 0.000000 -6447, -3.000000, 218.000000, 237.000000, 0.000000 -6448, -3.000000, 218.000000, 237.000000, 0.000000 -6449, -3.000000, 218.000000, 237.000000, 0.000000 -6450, -3.000000, 218.000000, 237.000000, 0.000000 -6451, -3.000000, 218.000000, 237.000000, 0.000000 -6452, -3.000000, 218.000000, 237.000000, 0.000000 -6453, -3.000000, 218.000000, 237.000000, 0.000000 -6454, -3.000000, 218.000000, 237.000000, 0.000000 -6455, -3.000000, 218.000000, 237.000000, 0.000000 -6456, -3.000000, 218.000000, 237.000000, 0.000000 -6457, -3.000000, 218.000000, 237.000000, 0.000000 -6458, -3.000000, 218.000000, 237.000000, 0.000000 -6459, -3.000000, 218.000000, 237.000000, 0.000000 -6460, -3.000000, 218.000000, 237.000000, 0.000000 -6461, -3.000000, 218.000000, 237.000000, 0.000000 -6462, -3.000000, 218.000000, 237.000000, 0.000000 -6463, -3.000000, 218.000000, 237.000000, 0.000000 -6464, -3.000000, 218.000000, 237.000000, 0.000000 -6465, -3.000000, 218.000000, 237.000000, 0.000000 -6466, -3.000000, 218.000000, 237.000000, 0.000000 -6467, -3.000000, 218.000000, 237.000000, 0.000000 -6468, -3.000000, 218.000000, 237.000000, 0.000000 -6469, -3.000000, 218.000000, 237.000000, 0.000000 -6470, -3.000000, 218.000000, 237.000000, 0.000000 -6471, -3.000000, 218.000000, 237.000000, 0.000000 -6472, -3.000000, 218.000000, 237.000000, 0.000000 -6473, -3.000000, 218.000000, 237.000000, 0.000000 -6474, -3.000000, 218.000000, 237.000000, 0.000000 -6475, -3.000000, 218.000000, 237.000000, 0.000000 -6476, -3.000000, 218.000000, 237.000000, 0.000000 -6477, -3.000000, 218.000000, 237.000000, 0.000000 -6478, -3.000000, 218.000000, 237.000000, 0.000000 -6479, -3.000000, 218.000000, 237.000000, 0.000000 -6480, -3.000000, 218.000000, 237.000000, 0.000000 -6481, -3.000000, 218.000000, 237.000000, 0.000000 -6482, -3.000000, 218.000000, 237.000000, 0.000000 -6483, -3.000000, 218.000000, 237.000000, 0.000000 -6484, -3.000000, 218.000000, 237.000000, 0.000000 -6485, -3.000000, 218.000000, 237.000000, 0.000000 -6486, -3.000000, 218.000000, 237.000000, 0.000000 -6487, -3.000000, 218.000000, 237.000000, 0.000000 -6488, -3.000000, 218.000000, 237.000000, 0.000000 -6489, -3.000000, 218.000000, 237.000000, 0.000000 -6490, -3.000000, 218.000000, 237.000000, 0.000000 -6491, -3.000000, 218.000000, 237.000000, 0.000000 -6492, -3.000000, 218.000000, 237.000000, 0.000000 -6493, -3.000000, 218.000000, 237.000000, 0.000000 -6494, -3.000000, 218.000000, 237.000000, 0.000000 -6495, -3.000000, 218.000000, 237.000000, 0.000000 -6496, -3.000000, 218.000000, 237.000000, 0.000000 -6497, -3.000000, 218.000000, 237.000000, 0.000000 -6498, -3.000000, 218.000000, 237.000000, 0.000000 -6499, -3.000000, 218.000000, 237.000000, 0.000000 -6500, -3.000000, 220.000000, 240.000000, 0.000000 -6501, -3.000000, 220.000000, 240.000000, 0.000000 -6502, -3.000000, 220.000000, 240.000000, 0.000000 -6503, -3.000000, 220.000000, 240.000000, 0.000000 -6504, -3.000000, 220.000000, 240.000000, 0.000000 -6505, -3.000000, 220.000000, 240.000000, 0.000000 -6506, -3.000000, 220.000000, 240.000000, 0.000000 -6507, -3.000000, 220.000000, 240.000000, 0.000000 -6508, -3.000000, 220.000000, 240.000000, 0.000000 -6509, -3.000000, 220.000000, 240.000000, 0.000000 -6510, -3.000000, 220.000000, 240.000000, 0.000000 -6511, -3.000000, 220.000000, 240.000000, 0.000000 -6512, -3.000000, 220.000000, 240.000000, 0.000000 -6513, -3.000000, 220.000000, 240.000000, 0.000000 -6514, -3.000000, 220.000000, 240.000000, 0.000000 -6515, -3.000000, 220.000000, 240.000000, 0.000000 -6516, -3.000000, 220.000000, 240.000000, 0.000000 -6517, -3.000000, 220.000000, 240.000000, 0.000000 -6518, -3.000000, 220.000000, 240.000000, 0.000000 -6519, -3.000000, 220.000000, 240.000000, 0.000000 -6520, -3.000000, 220.000000, 240.000000, 0.000000 -6521, -3.000000, 220.000000, 240.000000, 0.000000 -6522, -3.000000, 220.000000, 240.000000, 0.000000 -6523, -3.000000, 220.000000, 240.000000, 0.000000 -6524, -3.000000, 220.000000, 240.000000, 0.000000 -6525, -3.000000, 220.000000, 240.000000, 0.000000 -6526, -3.000000, 220.000000, 240.000000, 0.000000 -6527, -3.000000, 220.000000, 240.000000, 0.000000 -6528, -3.000000, 220.000000, 240.000000, 0.000000 -6529, -3.000000, 220.000000, 240.000000, 0.000000 -6530, -3.000000, 220.000000, 240.000000, 0.000000 -6531, -3.000000, 220.000000, 240.000000, 0.000000 -6532, -3.000000, 220.000000, 240.000000, 0.000000 -6533, -3.000000, 220.000000, 240.000000, 0.000000 -6534, -3.000000, 220.000000, 240.000000, 0.000000 -6535, -3.000000, 220.000000, 240.000000, 0.000000 -6536, -3.000000, 220.000000, 240.000000, 0.000000 -6537, -3.000000, 220.000000, 240.000000, 0.000000 -6538, -3.000000, 220.000000, 240.000000, 0.000000 -6539, -3.000000, 220.000000, 240.000000, 0.000000 -6540, -3.000000, 220.000000, 240.000000, 0.000000 -6541, -3.000000, 220.000000, 240.000000, 0.000000 -6542, -3.000000, 220.000000, 240.000000, 0.000000 -6543, -3.000000, 220.000000, 240.000000, 0.000000 -6544, -3.000000, 220.000000, 240.000000, 0.000000 -6545, -3.000000, 220.000000, 240.000000, 0.000000 -6546, -3.000000, 220.000000, 240.000000, 0.000000 -6547, -3.000000, 220.000000, 240.000000, 0.000000 -6548, -3.000000, 220.000000, 240.000000, 0.000000 -6549, -3.000000, 220.000000, 240.000000, 0.000000 -6550, -3.000000, 220.000000, 240.000000, 0.000000 -6551, -3.000000, 220.000000, 240.000000, 0.000000 -6552, -3.000000, 220.000000, 240.000000, 0.000000 -6553, -3.000000, 220.000000, 240.000000, 0.000000 -6554, -3.000000, 220.000000, 240.000000, 0.000000 -6555, -3.000000, 220.000000, 240.000000, 0.000000 -6556, -3.000000, 220.000000, 240.000000, 0.000000 -6557, -3.000000, 220.000000, 240.000000, 0.000000 -6558, -3.000000, 220.000000, 240.000000, 0.000000 -6559, -3.000000, 220.000000, 240.000000, 0.000000 -6560, -3.000000, 220.000000, 240.000000, 0.000000 -6561, -3.000000, 220.000000, 240.000000, 0.000000 -6562, -3.000000, 220.000000, 240.000000, 0.000000 -6563, -3.000000, 220.000000, 240.000000, 0.000000 -6564, -3.000000, 220.000000, 240.000000, 0.000000 -6565, -3.000000, 220.000000, 240.000000, 0.000000 -6566, -3.000000, 220.000000, 240.000000, 0.000000 -6567, -3.000000, 220.000000, 240.000000, 0.000000 -6568, -3.000000, 220.000000, 240.000000, 0.000000 -6569, -3.000000, 220.000000, 240.000000, 0.000000 -6570, -3.000000, 220.000000, 240.000000, 0.000000 -6571, -3.000000, 220.000000, 240.000000, 0.000000 -6572, -3.000000, 220.000000, 240.000000, 0.000000 -6573, -3.000000, 220.000000, 240.000000, 0.000000 -6574, -3.000000, 220.000000, 240.000000, 0.000000 -6575, -3.000000, 220.000000, 240.000000, 0.000000 -6576, -3.000000, 220.000000, 240.000000, 0.000000 -6577, -3.000000, 220.000000, 240.000000, 0.000000 -6578, -3.000000, 220.000000, 240.000000, 0.000000 -6579, -3.000000, 220.000000, 240.000000, 0.000000 -6580, -3.000000, 220.000000, 240.000000, 0.000000 -6581, -3.000000, 220.000000, 240.000000, 0.000000 -6582, -3.000000, 220.000000, 240.000000, 0.000000 -6583, -3.000000, 220.000000, 240.000000, 0.000000 -6584, -3.000000, 220.000000, 240.000000, 0.000000 -6585, -3.000000, 220.000000, 240.000000, 0.000000 -6586, -3.000000, 220.000000, 240.000000, 0.000000 -6587, -3.000000, 220.000000, 240.000000, 0.000000 -6588, -3.000000, 220.000000, 240.000000, 0.000000 -6589, -3.000000, 220.000000, 240.000000, 0.000000 -6590, -3.000000, 220.000000, 240.000000, 0.000000 -6591, -3.000000, 220.000000, 240.000000, 0.000000 -6592, -3.000000, 220.000000, 240.000000, 0.000000 -6593, -3.000000, 220.000000, 240.000000, 0.000000 -6594, -3.000000, 220.000000, 240.000000, 0.000000 -6595, -3.000000, 220.000000, 240.000000, 0.000000 -6596, -3.000000, 220.000000, 240.000000, 0.000000 -6597, -3.000000, 220.000000, 240.000000, 0.000000 -6598, -3.000000, 220.000000, 240.000000, 0.000000 -6599, -3.000000, 220.000000, 240.000000, 0.000000 -6600, -3.000000, 222.000000, 243.000000, 0.000000 -6601, -3.000000, 222.000000, 243.000000, 0.000000 -6602, -3.000000, 222.000000, 243.000000, 0.000000 -6603, -3.000000, 222.000000, 243.000000, 0.000000 -6604, -3.000000, 222.000000, 243.000000, 0.000000 -6605, -3.000000, 222.000000, 243.000000, 0.000000 -6606, -3.000000, 222.000000, 243.000000, 0.000000 -6607, -3.000000, 222.000000, 243.000000, 0.000000 -6608, -3.000000, 222.000000, 243.000000, 0.000000 -6609, -3.000000, 222.000000, 243.000000, 0.000000 -6610, -3.000000, 222.000000, 243.000000, 0.000000 -6611, -3.000000, 222.000000, 243.000000, 0.000000 -6612, -3.000000, 222.000000, 243.000000, 0.000000 -6613, -3.000000, 222.000000, 243.000000, 0.000000 -6614, -3.000000, 222.000000, 243.000000, 0.000000 -6615, -3.000000, 222.000000, 243.000000, 0.000000 -6616, -3.000000, 222.000000, 243.000000, 0.000000 -6617, -3.000000, 222.000000, 243.000000, 0.000000 -6618, -3.000000, 222.000000, 243.000000, 0.000000 -6619, -3.000000, 222.000000, 243.000000, 0.000000 -6620, -3.000000, 222.000000, 243.000000, 0.000000 -6621, -3.000000, 222.000000, 243.000000, 0.000000 -6622, -3.000000, 222.000000, 243.000000, 0.000000 -6623, -3.000000, 222.000000, 243.000000, 0.000000 -6624, -3.000000, 222.000000, 243.000000, 0.000000 -6625, -3.000000, 222.000000, 243.000000, 0.000000 -6626, -3.000000, 222.000000, 243.000000, 0.000000 -6627, -3.000000, 222.000000, 243.000000, 0.000000 -6628, -3.000000, 222.000000, 243.000000, 0.000000 -6629, -3.000000, 222.000000, 243.000000, 0.000000 -6630, -3.000000, 222.000000, 243.000000, 0.000000 -6631, -3.000000, 222.000000, 243.000000, 0.000000 -6632, -3.000000, 222.000000, 243.000000, 0.000000 -6633, -3.000000, 222.000000, 243.000000, 0.000000 -6634, -3.000000, 222.000000, 243.000000, 0.000000 -6635, -3.000000, 222.000000, 243.000000, 0.000000 -6636, -3.000000, 222.000000, 243.000000, 0.000000 -6637, -3.000000, 222.000000, 243.000000, 0.000000 -6638, -3.000000, 222.000000, 243.000000, 0.000000 -6639, -3.000000, 222.000000, 243.000000, 0.000000 -6640, -3.000000, 222.000000, 243.000000, 0.000000 -6641, -3.000000, 222.000000, 243.000000, 0.000000 -6642, -3.000000, 222.000000, 243.000000, 0.000000 -6643, -3.000000, 222.000000, 243.000000, 0.000000 -6644, -3.000000, 222.000000, 243.000000, 0.000000 -6645, -3.000000, 222.000000, 243.000000, 0.000000 -6646, -3.000000, 222.000000, 243.000000, 0.000000 -6647, -3.000000, 222.000000, 243.000000, 0.000000 -6648, -3.000000, 222.000000, 243.000000, 0.000000 -6649, -3.000000, 222.000000, 243.000000, 0.000000 -6650, -3.000000, 222.000000, 243.000000, 0.000000 -6651, -3.000000, 222.000000, 243.000000, 0.000000 -6652, -3.000000, 222.000000, 243.000000, 0.000000 -6653, -3.000000, 222.000000, 243.000000, 0.000000 -6654, -3.000000, 222.000000, 243.000000, 0.000000 -6655, -3.000000, 222.000000, 243.000000, 0.000000 -6656, -3.000000, 222.000000, 243.000000, 0.000000 -6657, -3.000000, 222.000000, 243.000000, 0.000000 -6658, -3.000000, 222.000000, 243.000000, 0.000000 -6659, -3.000000, 222.000000, 243.000000, 0.000000 -6660, -3.000000, 222.000000, 243.000000, 0.000000 -6661, -3.000000, 222.000000, 243.000000, 0.000000 -6662, -3.000000, 222.000000, 243.000000, 0.000000 -6663, -3.000000, 222.000000, 243.000000, 0.000000 -6664, -3.000000, 222.000000, 243.000000, 0.000000 -6665, -3.000000, 222.000000, 243.000000, 0.000000 -6666, -3.000000, 222.000000, 243.000000, 0.000000 -6667, -3.000000, 222.000000, 243.000000, 0.000000 -6668, -3.000000, 222.000000, 243.000000, 0.000000 -6669, -3.000000, 222.000000, 243.000000, 0.000000 -6670, -3.000000, 222.000000, 243.000000, 0.000000 -6671, -3.000000, 222.000000, 243.000000, 0.000000 -6672, -3.000000, 222.000000, 243.000000, 0.000000 -6673, -3.000000, 222.000000, 243.000000, 0.000000 -6674, -3.000000, 222.000000, 243.000000, 0.000000 -6675, -3.000000, 222.000000, 243.000000, 0.000000 -6676, -3.000000, 222.000000, 243.000000, 0.000000 -6677, -3.000000, 222.000000, 243.000000, 0.000000 -6678, -3.000000, 222.000000, 243.000000, 0.000000 -6679, -3.000000, 222.000000, 243.000000, 0.000000 -6680, -3.000000, 222.000000, 243.000000, 0.000000 -6681, -3.000000, 222.000000, 243.000000, 0.000000 -6682, -3.000000, 222.000000, 243.000000, 0.000000 -6683, -3.000000, 222.000000, 243.000000, 0.000000 -6684, -3.000000, 222.000000, 243.000000, 0.000000 -6685, -3.000000, 222.000000, 243.000000, 0.000000 -6686, -3.000000, 222.000000, 243.000000, 0.000000 -6687, -3.000000, 222.000000, 243.000000, 0.000000 -6688, -3.000000, 222.000000, 243.000000, 0.000000 -6689, -3.000000, 222.000000, 243.000000, 0.000000 -6690, -3.000000, 222.000000, 243.000000, 0.000000 -6691, -3.000000, 222.000000, 243.000000, 0.000000 -6692, -3.000000, 222.000000, 243.000000, 0.000000 -6693, -3.000000, 222.000000, 243.000000, 0.000000 -6694, -3.000000, 222.000000, 243.000000, 0.000000 -6695, -3.000000, 222.000000, 243.000000, 0.000000 -6696, -3.000000, 222.000000, 243.000000, 0.000000 -6697, -3.000000, 222.000000, 243.000000, 0.000000 -6698, -3.000000, 222.000000, 243.000000, 0.000000 -6699, -3.000000, 222.000000, 243.000000, 0.000000 -6700, -3.000000, 224.000000, 246.000000, 0.000000 -6701, -3.000000, 224.000000, 246.000000, 0.000000 -6702, -3.000000, 224.000000, 246.000000, 0.000000 -6703, -3.000000, 224.000000, 246.000000, 0.000000 -6704, -3.000000, 224.000000, 246.000000, 0.000000 -6705, -3.000000, 224.000000, 246.000000, 0.000000 -6706, -3.000000, 224.000000, 246.000000, 0.000000 -6707, -3.000000, 224.000000, 246.000000, 0.000000 -6708, -3.000000, 224.000000, 246.000000, 0.000000 -6709, -3.000000, 224.000000, 246.000000, 0.000000 -6710, -3.000000, 224.000000, 246.000000, 0.000000 -6711, -3.000000, 224.000000, 246.000000, 0.000000 -6712, -3.000000, 224.000000, 246.000000, 0.000000 -6713, -3.000000, 224.000000, 246.000000, 0.000000 -6714, -3.000000, 224.000000, 246.000000, 0.000000 -6715, -3.000000, 224.000000, 246.000000, 0.000000 -6716, -3.000000, 224.000000, 246.000000, 0.000000 -6717, -3.000000, 224.000000, 246.000000, 0.000000 -6718, -3.000000, 224.000000, 246.000000, 0.000000 -6719, -3.000000, 224.000000, 246.000000, 0.000000 -6720, -3.000000, 224.000000, 246.000000, 0.000000 -6721, -3.000000, 224.000000, 246.000000, 0.000000 -6722, -3.000000, 224.000000, 246.000000, 0.000000 -6723, -3.000000, 224.000000, 246.000000, 0.000000 -6724, -3.000000, 224.000000, 246.000000, 0.000000 -6725, -3.000000, 224.000000, 246.000000, 0.000000 -6726, -3.000000, 224.000000, 246.000000, 0.000000 -6727, -3.000000, 224.000000, 246.000000, 0.000000 -6728, -3.000000, 224.000000, 246.000000, 0.000000 -6729, -3.000000, 224.000000, 246.000000, 0.000000 -6730, -3.000000, 224.000000, 246.000000, 0.000000 -6731, -3.000000, 224.000000, 246.000000, 0.000000 -6732, -3.000000, 224.000000, 246.000000, 0.000000 -6733, -3.000000, 224.000000, 246.000000, 0.000000 -6734, -3.000000, 224.000000, 246.000000, 0.000000 -6735, -3.000000, 224.000000, 246.000000, 0.000000 -6736, -3.000000, 224.000000, 246.000000, 0.000000 -6737, -3.000000, 224.000000, 246.000000, 0.000000 -6738, -3.000000, 224.000000, 246.000000, 0.000000 -6739, -3.000000, 224.000000, 246.000000, 0.000000 -6740, -3.000000, 224.000000, 246.000000, 0.000000 -6741, -3.000000, 224.000000, 246.000000, 0.000000 -6742, -3.000000, 224.000000, 246.000000, 0.000000 -6743, -3.000000, 224.000000, 246.000000, 0.000000 -6744, -3.000000, 224.000000, 246.000000, 0.000000 -6745, -3.000000, 224.000000, 246.000000, 0.000000 -6746, -3.000000, 224.000000, 246.000000, 0.000000 -6747, -3.000000, 224.000000, 246.000000, 0.000000 -6748, -3.000000, 224.000000, 246.000000, 0.000000 -6749, -3.000000, 224.000000, 246.000000, 0.000000 -6750, -3.000000, 224.000000, 246.000000, 0.000000 -6751, -3.000000, 224.000000, 246.000000, 0.000000 -6752, -3.000000, 224.000000, 246.000000, 0.000000 -6753, -3.000000, 224.000000, 246.000000, 0.000000 -6754, -3.000000, 224.000000, 246.000000, 0.000000 -6755, -3.000000, 224.000000, 246.000000, 0.000000 -6756, -3.000000, 224.000000, 246.000000, 0.000000 -6757, -3.000000, 224.000000, 246.000000, 0.000000 -6758, -3.000000, 224.000000, 246.000000, 0.000000 -6759, -3.000000, 224.000000, 246.000000, 0.000000 -6760, -3.000000, 224.000000, 246.000000, 0.000000 -6761, -3.000000, 224.000000, 246.000000, 0.000000 -6762, -3.000000, 224.000000, 246.000000, 0.000000 -6763, -3.000000, 224.000000, 246.000000, 0.000000 -6764, -3.000000, 224.000000, 246.000000, 0.000000 -6765, -3.000000, 224.000000, 246.000000, 0.000000 -6766, -3.000000, 224.000000, 246.000000, 0.000000 -6767, -3.000000, 224.000000, 246.000000, 0.000000 -6768, -3.000000, 224.000000, 246.000000, 0.000000 -6769, -3.000000, 224.000000, 246.000000, 0.000000 -6770, -3.000000, 224.000000, 246.000000, 0.000000 -6771, -3.000000, 224.000000, 246.000000, 0.000000 -6772, -3.000000, 224.000000, 246.000000, 0.000000 -6773, -3.000000, 224.000000, 246.000000, 0.000000 -6774, -3.000000, 224.000000, 246.000000, 0.000000 -6775, -3.000000, 224.000000, 246.000000, 0.000000 -6776, -3.000000, 224.000000, 246.000000, 0.000000 -6777, -3.000000, 224.000000, 246.000000, 0.000000 -6778, -3.000000, 224.000000, 246.000000, 0.000000 -6779, -3.000000, 224.000000, 246.000000, 0.000000 -6780, -3.000000, 224.000000, 246.000000, 0.000000 -6781, -3.000000, 224.000000, 246.000000, 0.000000 -6782, -3.000000, 224.000000, 246.000000, 0.000000 -6783, -3.000000, 224.000000, 246.000000, 0.000000 -6784, -3.000000, 224.000000, 246.000000, 0.000000 -6785, -3.000000, 224.000000, 246.000000, 0.000000 -6786, -3.000000, 224.000000, 246.000000, 0.000000 -6787, -3.000000, 224.000000, 246.000000, 0.000000 -6788, -3.000000, 224.000000, 246.000000, 0.000000 -6789, -3.000000, 224.000000, 246.000000, 0.000000 -6790, -3.000000, 224.000000, 246.000000, 0.000000 -6791, -3.000000, 224.000000, 246.000000, 0.000000 -6792, -3.000000, 224.000000, 246.000000, 0.000000 -6793, -3.000000, 224.000000, 246.000000, 0.000000 -6794, -3.000000, 224.000000, 246.000000, 0.000000 -6795, -3.000000, 224.000000, 246.000000, 0.000000 -6796, -3.000000, 224.000000, 246.000000, 0.000000 -6797, -3.000000, 224.000000, 246.000000, 0.000000 -6798, -3.000000, 224.000000, 246.000000, 0.000000 -6799, -3.000000, 224.000000, 246.000000, 0.000000 -6800, -3.000000, 226.000000, 249.000000, 0.000000 -6801, -3.000000, 226.000000, 249.000000, 0.000000 -6802, -3.000000, 226.000000, 249.000000, 0.000000 -6803, -3.000000, 226.000000, 249.000000, 0.000000 -6804, -3.000000, 226.000000, 249.000000, 0.000000 -6805, -3.000000, 226.000000, 249.000000, 0.000000 -6806, -3.000000, 226.000000, 249.000000, 0.000000 -6807, -3.000000, 226.000000, 249.000000, 0.000000 -6808, -3.000000, 226.000000, 249.000000, 0.000000 -6809, -3.000000, 226.000000, 249.000000, 0.000000 -6810, -3.000000, 226.000000, 249.000000, 0.000000 -6811, -3.000000, 226.000000, 249.000000, 0.000000 -6812, -3.000000, 226.000000, 249.000000, 0.000000 -6813, -3.000000, 226.000000, 249.000000, 0.000000 -6814, -3.000000, 226.000000, 249.000000, 0.000000 -6815, -3.000000, 226.000000, 249.000000, 0.000000 -6816, -3.000000, 226.000000, 249.000000, 0.000000 -6817, -3.000000, 226.000000, 249.000000, 0.000000 -6818, -3.000000, 226.000000, 249.000000, 0.000000 -6819, -3.000000, 226.000000, 249.000000, 0.000000 -6820, -3.000000, 226.000000, 249.000000, 0.000000 -6821, -3.000000, 226.000000, 249.000000, 0.000000 -6822, -3.000000, 226.000000, 249.000000, 0.000000 -6823, -3.000000, 226.000000, 249.000000, 0.000000 -6824, -3.000000, 226.000000, 249.000000, 0.000000 -6825, -3.000000, 226.000000, 249.000000, 0.000000 -6826, -3.000000, 226.000000, 249.000000, 0.000000 -6827, -3.000000, 226.000000, 249.000000, 0.000000 -6828, -3.000000, 226.000000, 249.000000, 0.000000 -6829, -3.000000, 226.000000, 249.000000, 0.000000 -6830, -3.000000, 226.000000, 249.000000, 0.000000 -6831, -3.000000, 226.000000, 249.000000, 0.000000 -6832, -3.000000, 226.000000, 249.000000, 0.000000 -6833, -3.000000, 226.000000, 249.000000, 0.000000 -6834, -3.000000, 226.000000, 249.000000, 0.000000 -6835, -3.000000, 226.000000, 249.000000, 0.000000 -6836, -3.000000, 226.000000, 249.000000, 0.000000 -6837, -3.000000, 226.000000, 249.000000, 0.000000 -6838, -3.000000, 226.000000, 249.000000, 0.000000 -6839, -3.000000, 226.000000, 249.000000, 0.000000 -6840, -3.000000, 226.000000, 249.000000, 0.000000 -6841, -3.000000, 226.000000, 249.000000, 0.000000 -6842, -3.000000, 226.000000, 249.000000, 0.000000 -6843, -3.000000, 226.000000, 249.000000, 0.000000 -6844, -3.000000, 226.000000, 249.000000, 0.000000 -6845, -3.000000, 226.000000, 249.000000, 0.000000 -6846, -3.000000, 226.000000, 249.000000, 0.000000 -6847, -3.000000, 226.000000, 249.000000, 0.000000 -6848, -3.000000, 226.000000, 249.000000, 0.000000 -6849, -3.000000, 226.000000, 249.000000, 0.000000 -6850, -3.000000, 226.000000, 249.000000, 0.000000 -6851, -3.000000, 226.000000, 249.000000, 0.000000 -6852, -3.000000, 226.000000, 249.000000, 0.000000 -6853, -3.000000, 226.000000, 249.000000, 0.000000 -6854, -3.000000, 226.000000, 249.000000, 0.000000 -6855, -3.000000, 226.000000, 249.000000, 0.000000 -6856, -3.000000, 226.000000, 249.000000, 0.000000 -6857, -3.000000, 226.000000, 249.000000, 0.000000 -6858, -3.000000, 226.000000, 249.000000, 0.000000 -6859, -3.000000, 226.000000, 249.000000, 0.000000 -6860, -3.000000, 226.000000, 249.000000, 0.000000 -6861, -3.000000, 226.000000, 249.000000, 0.000000 -6862, -3.000000, 226.000000, 249.000000, 0.000000 -6863, -3.000000, 226.000000, 249.000000, 0.000000 -6864, -3.000000, 226.000000, 249.000000, 0.000000 -6865, -3.000000, 226.000000, 249.000000, 0.000000 -6866, -3.000000, 226.000000, 249.000000, 0.000000 -6867, -3.000000, 226.000000, 249.000000, 0.000000 -6868, -3.000000, 226.000000, 249.000000, 0.000000 -6869, -3.000000, 226.000000, 249.000000, 0.000000 -6870, -3.000000, 226.000000, 249.000000, 0.000000 -6871, -3.000000, 226.000000, 249.000000, 0.000000 -6872, -3.000000, 226.000000, 249.000000, 0.000000 -6873, -3.000000, 226.000000, 249.000000, 0.000000 -6874, -3.000000, 226.000000, 249.000000, 0.000000 -6875, -3.000000, 226.000000, 249.000000, 0.000000 -6876, -3.000000, 226.000000, 249.000000, 0.000000 -6877, -3.000000, 226.000000, 249.000000, 0.000000 -6878, -3.000000, 226.000000, 249.000000, 0.000000 -6879, -3.000000, 226.000000, 249.000000, 0.000000 -6880, -3.000000, 226.000000, 249.000000, 0.000000 -6881, -3.000000, 226.000000, 249.000000, 0.000000 -6882, -3.000000, 226.000000, 249.000000, 0.000000 -6883, -3.000000, 226.000000, 249.000000, 0.000000 -6884, -3.000000, 226.000000, 249.000000, 0.000000 -6885, -3.000000, 226.000000, 249.000000, 0.000000 -6886, -3.000000, 226.000000, 249.000000, 0.000000 -6887, -3.000000, 226.000000, 249.000000, 0.000000 -6888, -3.000000, 226.000000, 249.000000, 0.000000 -6889, -3.000000, 226.000000, 249.000000, 0.000000 -6890, -3.000000, 226.000000, 249.000000, 0.000000 -6891, -3.000000, 226.000000, 249.000000, 0.000000 -6892, -3.000000, 226.000000, 249.000000, 0.000000 -6893, -3.000000, 226.000000, 249.000000, 0.000000 -6894, -3.000000, 226.000000, 249.000000, 0.000000 -6895, -3.000000, 226.000000, 249.000000, 0.000000 -6896, -3.000000, 226.000000, 249.000000, 0.000000 -6897, -3.000000, 226.000000, 249.000000, 0.000000 -6898, -3.000000, 226.000000, 249.000000, 0.000000 -6899, -3.000000, 226.000000, 249.000000, 0.000000 -6900, -3.000000, 228.000000, 252.000000, 0.000000 -6901, -3.000000, 228.000000, 252.000000, 0.000000 -6902, -3.000000, 228.000000, 252.000000, 0.000000 -6903, -3.000000, 228.000000, 252.000000, 0.000000 -6904, -3.000000, 228.000000, 252.000000, 0.000000 -6905, -3.000000, 228.000000, 252.000000, 0.000000 -6906, -3.000000, 228.000000, 252.000000, 0.000000 -6907, -3.000000, 228.000000, 252.000000, 0.000000 -6908, -3.000000, 228.000000, 252.000000, 0.000000 -6909, -3.000000, 228.000000, 252.000000, 0.000000 -6910, -3.000000, 228.000000, 252.000000, 0.000000 -6911, -3.000000, 228.000000, 252.000000, 0.000000 -6912, -3.000000, 228.000000, 252.000000, 0.000000 -6913, -3.000000, 228.000000, 252.000000, 0.000000 -6914, -3.000000, 228.000000, 252.000000, 0.000000 -6915, -3.000000, 228.000000, 252.000000, 0.000000 -6916, -3.000000, 228.000000, 252.000000, 0.000000 -6917, -3.000000, 228.000000, 252.000000, 0.000000 -6918, -3.000000, 228.000000, 252.000000, 0.000000 -6919, -3.000000, 228.000000, 252.000000, 0.000000 -6920, -3.000000, 228.000000, 252.000000, 0.000000 -6921, -3.000000, 228.000000, 252.000000, 0.000000 -6922, -3.000000, 228.000000, 252.000000, 0.000000 -6923, -3.000000, 228.000000, 252.000000, 0.000000 -6924, -3.000000, 228.000000, 252.000000, 0.000000 -6925, -3.000000, 228.000000, 252.000000, 0.000000 -6926, -3.000000, 228.000000, 252.000000, 0.000000 -6927, -3.000000, 228.000000, 252.000000, 0.000000 -6928, -3.000000, 228.000000, 252.000000, 0.000000 -6929, -3.000000, 228.000000, 252.000000, 0.000000 -6930, -3.000000, 228.000000, 252.000000, 0.000000 -6931, -3.000000, 228.000000, 252.000000, 0.000000 -6932, -3.000000, 228.000000, 252.000000, 0.000000 -6933, -3.000000, 228.000000, 252.000000, 0.000000 -6934, -3.000000, 228.000000, 252.000000, 0.000000 -6935, -3.000000, 228.000000, 252.000000, 0.000000 -6936, -3.000000, 228.000000, 252.000000, 0.000000 -6937, -3.000000, 228.000000, 252.000000, 0.000000 -6938, -3.000000, 228.000000, 252.000000, 0.000000 -6939, -3.000000, 228.000000, 252.000000, 0.000000 -6940, -3.000000, 228.000000, 252.000000, 0.000000 -6941, -3.000000, 228.000000, 252.000000, 0.000000 -6942, -3.000000, 228.000000, 252.000000, 0.000000 -6943, -3.000000, 228.000000, 252.000000, 0.000000 -6944, -3.000000, 228.000000, 252.000000, 0.000000 -6945, -3.000000, 228.000000, 252.000000, 0.000000 -6946, -3.000000, 228.000000, 252.000000, 0.000000 -6947, -3.000000, 228.000000, 252.000000, 0.000000 -6948, -3.000000, 228.000000, 252.000000, 0.000000 -6949, -3.000000, 228.000000, 252.000000, 0.000000 -6950, -3.000000, 228.000000, 252.000000, 0.000000 -6951, -3.000000, 228.000000, 252.000000, 0.000000 -6952, -3.000000, 228.000000, 252.000000, 0.000000 -6953, -3.000000, 228.000000, 252.000000, 0.000000 -6954, -3.000000, 228.000000, 252.000000, 0.000000 -6955, -3.000000, 228.000000, 252.000000, 0.000000 -6956, -3.000000, 228.000000, 252.000000, 0.000000 -6957, -3.000000, 228.000000, 252.000000, 0.000000 -6958, -3.000000, 228.000000, 252.000000, 0.000000 -6959, -3.000000, 228.000000, 252.000000, 0.000000 -6960, -3.000000, 228.000000, 252.000000, 0.000000 -6961, -3.000000, 228.000000, 252.000000, 0.000000 -6962, -3.000000, 228.000000, 252.000000, 0.000000 -6963, -3.000000, 228.000000, 252.000000, 0.000000 -6964, -3.000000, 228.000000, 252.000000, 0.000000 -6965, -3.000000, 228.000000, 252.000000, 0.000000 -6966, -3.000000, 228.000000, 252.000000, 0.000000 -6967, -3.000000, 228.000000, 252.000000, 0.000000 -6968, -3.000000, 228.000000, 252.000000, 0.000000 -6969, -3.000000, 228.000000, 252.000000, 0.000000 -6970, -3.000000, 228.000000, 252.000000, 0.000000 -6971, -3.000000, 228.000000, 252.000000, 0.000000 -6972, -3.000000, 228.000000, 252.000000, 0.000000 -6973, -3.000000, 228.000000, 252.000000, 0.000000 -6974, -3.000000, 228.000000, 252.000000, 0.000000 -6975, -3.000000, 228.000000, 252.000000, 0.000000 -6976, -3.000000, 228.000000, 252.000000, 0.000000 -6977, -3.000000, 228.000000, 252.000000, 0.000000 -6978, -3.000000, 228.000000, 252.000000, 0.000000 -6979, -3.000000, 228.000000, 252.000000, 0.000000 -6980, -3.000000, 228.000000, 252.000000, 0.000000 -6981, -3.000000, 228.000000, 252.000000, 0.000000 -6982, -3.000000, 228.000000, 252.000000, 0.000000 -6983, -3.000000, 228.000000, 252.000000, 0.000000 -6984, -3.000000, 228.000000, 252.000000, 0.000000 -6985, -3.000000, 228.000000, 252.000000, 0.000000 -6986, -3.000000, 228.000000, 252.000000, 0.000000 -6987, -3.000000, 228.000000, 252.000000, 0.000000 -6988, -3.000000, 228.000000, 252.000000, 0.000000 -6989, -3.000000, 228.000000, 252.000000, 0.000000 -6990, -3.000000, 228.000000, 252.000000, 0.000000 -6991, -3.000000, 228.000000, 252.000000, 0.000000 -6992, -3.000000, 228.000000, 252.000000, 0.000000 -6993, -3.000000, 228.000000, 252.000000, 0.000000 -6994, -3.000000, 228.000000, 252.000000, 0.000000 -6995, -3.000000, 228.000000, 252.000000, 0.000000 -6996, -3.000000, 228.000000, 252.000000, 0.000000 -6997, -3.000000, 228.000000, 252.000000, 0.000000 -6998, -3.000000, 228.000000, 252.000000, 0.000000 -6999, -3.000000, 228.000000, 252.000000, 0.000000 -7000, -3.000000, 230.000000, 255.000000, 0.000000 -7001, -3.000000, 230.000000, 255.000000, 0.000000 -7002, -3.000000, 230.000000, 255.000000, 0.000000 -7003, -3.000000, 230.000000, 255.000000, 0.000000 -7004, -3.000000, 230.000000, 255.000000, 0.000000 -7005, -3.000000, 230.000000, 255.000000, 0.000000 -7006, -3.000000, 230.000000, 255.000000, 0.000000 -7007, -3.000000, 230.000000, 255.000000, 0.000000 -7008, -3.000000, 230.000000, 255.000000, 0.000000 -7009, -3.000000, 230.000000, 255.000000, 0.000000 -7010, -3.000000, 230.000000, 255.000000, 0.000000 -7011, -3.000000, 230.000000, 255.000000, 0.000000 -7012, -3.000000, 230.000000, 255.000000, 0.000000 -7013, -3.000000, 230.000000, 255.000000, 0.000000 -7014, -3.000000, 230.000000, 255.000000, 0.000000 -7015, -3.000000, 230.000000, 255.000000, 0.000000 -7016, -3.000000, 230.000000, 255.000000, 0.000000 -7017, -3.000000, 230.000000, 255.000000, 0.000000 -7018, -3.000000, 230.000000, 255.000000, 0.000000 -7019, -3.000000, 230.000000, 255.000000, 0.000000 -7020, -3.000000, 230.000000, 255.000000, 0.000000 -7021, -3.000000, 230.000000, 255.000000, 0.000000 -7022, -3.000000, 230.000000, 255.000000, 0.000000 -7023, -3.000000, 230.000000, 255.000000, 0.000000 -7024, -3.000000, 230.000000, 255.000000, 0.000000 -7025, -3.000000, 230.000000, 255.000000, 0.000000 -7026, -3.000000, 230.000000, 255.000000, 0.000000 -7027, -3.000000, 230.000000, 255.000000, 0.000000 -7028, -3.000000, 230.000000, 255.000000, 0.000000 -7029, -3.000000, 230.000000, 255.000000, 0.000000 -7030, -3.000000, 230.000000, 255.000000, 0.000000 -7031, -3.000000, 230.000000, 255.000000, 0.000000 -7032, -3.000000, 230.000000, 255.000000, 0.000000 -7033, -3.000000, 230.000000, 255.000000, 0.000000 -7034, -3.000000, 230.000000, 255.000000, 0.000000 -7035, -3.000000, 230.000000, 255.000000, 0.000000 -7036, -3.000000, 230.000000, 255.000000, 0.000000 -7037, -3.000000, 230.000000, 255.000000, 0.000000 -7038, -3.000000, 230.000000, 255.000000, 0.000000 -7039, -3.000000, 230.000000, 255.000000, 0.000000 -7040, -3.000000, 230.000000, 255.000000, 0.000000 -7041, -3.000000, 230.000000, 255.000000, 0.000000 -7042, -3.000000, 230.000000, 255.000000, 0.000000 -7043, -3.000000, 230.000000, 255.000000, 0.000000 -7044, -3.000000, 230.000000, 255.000000, 0.000000 -7045, -3.000000, 230.000000, 255.000000, 0.000000 -7046, -3.000000, 230.000000, 255.000000, 0.000000 -7047, -3.000000, 230.000000, 255.000000, 0.000000 -7048, -3.000000, 230.000000, 255.000000, 0.000000 -7049, -3.000000, 230.000000, 255.000000, 0.000000 -7050, -3.000000, 230.000000, 255.000000, 0.000000 -7051, -3.000000, 230.000000, 255.000000, 0.000000 -7052, -3.000000, 230.000000, 255.000000, 0.000000 -7053, -3.000000, 230.000000, 255.000000, 0.000000 -7054, -3.000000, 230.000000, 255.000000, 0.000000 -7055, -3.000000, 230.000000, 255.000000, 0.000000 -7056, -3.000000, 230.000000, 255.000000, 0.000000 -7057, -3.000000, 230.000000, 255.000000, 0.000000 -7058, -3.000000, 230.000000, 255.000000, 0.000000 -7059, -3.000000, 230.000000, 255.000000, 0.000000 -7060, -3.000000, 230.000000, 255.000000, 0.000000 -7061, -3.000000, 230.000000, 255.000000, 0.000000 -7062, -3.000000, 230.000000, 255.000000, 0.000000 -7063, -3.000000, 230.000000, 255.000000, 0.000000 -7064, -3.000000, 230.000000, 255.000000, 0.000000 -7065, -3.000000, 230.000000, 255.000000, 0.000000 -7066, -3.000000, 230.000000, 255.000000, 0.000000 -7067, -3.000000, 230.000000, 255.000000, 0.000000 -7068, -3.000000, 230.000000, 255.000000, 0.000000 -7069, -3.000000, 230.000000, 255.000000, 0.000000 -7070, -3.000000, 230.000000, 255.000000, 0.000000 -7071, -3.000000, 230.000000, 255.000000, 0.000000 -7072, -3.000000, 230.000000, 255.000000, 0.000000 -7073, -3.000000, 230.000000, 255.000000, 0.000000 -7074, -3.000000, 230.000000, 255.000000, 0.000000 -7075, -3.000000, 230.000000, 255.000000, 0.000000 -7076, -3.000000, 230.000000, 255.000000, 0.000000 -7077, -3.000000, 230.000000, 255.000000, 0.000000 -7078, -3.000000, 230.000000, 255.000000, 0.000000 -7079, -3.000000, 230.000000, 255.000000, 0.000000 -7080, -3.000000, 230.000000, 255.000000, 0.000000 -7081, -3.000000, 230.000000, 255.000000, 0.000000 -7082, -3.000000, 230.000000, 255.000000, 0.000000 -7083, -3.000000, 230.000000, 255.000000, 0.000000 -7084, -3.000000, 230.000000, 255.000000, 0.000000 -7085, -3.000000, 230.000000, 255.000000, 0.000000 -7086, -3.000000, 230.000000, 255.000000, 0.000000 -7087, -3.000000, 230.000000, 255.000000, 0.000000 -7088, -3.000000, 230.000000, 255.000000, 0.000000 -7089, -3.000000, 230.000000, 255.000000, 0.000000 -7090, -3.000000, 230.000000, 255.000000, 0.000000 -7091, -3.000000, 230.000000, 255.000000, 0.000000 -7092, -3.000000, 230.000000, 255.000000, 0.000000 -7093, -3.000000, 230.000000, 255.000000, 0.000000 -7094, -3.000000, 230.000000, 255.000000, 0.000000 -7095, -3.000000, 230.000000, 255.000000, 0.000000 -7096, -3.000000, 230.000000, 255.000000, 0.000000 -7097, -3.000000, 230.000000, 255.000000, 0.000000 -7098, -3.000000, 230.000000, 255.000000, 0.000000 -7099, -3.000000, 230.000000, 255.000000, 0.000000 -7100, -3.000000, 232.000000, 258.000000, 0.000000 -7101, -3.000000, 232.000000, 258.000000, 0.000000 -7102, -3.000000, 232.000000, 258.000000, 0.000000 -7103, -3.000000, 232.000000, 258.000000, 0.000000 -7104, -3.000000, 232.000000, 258.000000, 0.000000 -7105, -3.000000, 232.000000, 258.000000, 0.000000 -7106, -3.000000, 232.000000, 258.000000, 0.000000 -7107, -3.000000, 232.000000, 258.000000, 0.000000 -7108, -3.000000, 232.000000, 258.000000, 0.000000 -7109, -3.000000, 232.000000, 258.000000, 0.000000 -7110, -3.000000, 232.000000, 258.000000, 0.000000 -7111, -3.000000, 232.000000, 258.000000, 0.000000 -7112, -3.000000, 232.000000, 258.000000, 0.000000 -7113, -3.000000, 232.000000, 258.000000, 0.000000 -7114, -3.000000, 232.000000, 258.000000, 0.000000 -7115, -3.000000, 232.000000, 258.000000, 0.000000 -7116, -3.000000, 232.000000, 258.000000, 0.000000 -7117, -3.000000, 232.000000, 258.000000, 0.000000 -7118, -3.000000, 232.000000, 258.000000, 0.000000 -7119, -3.000000, 232.000000, 258.000000, 0.000000 -7120, -3.000000, 232.000000, 258.000000, 0.000000 -7121, -3.000000, 232.000000, 258.000000, 0.000000 -7122, -3.000000, 232.000000, 258.000000, 0.000000 -7123, -3.000000, 232.000000, 258.000000, 0.000000 -7124, -3.000000, 232.000000, 258.000000, 0.000000 -7125, -3.000000, 232.000000, 258.000000, 0.000000 -7126, -3.000000, 232.000000, 258.000000, 0.000000 -7127, -3.000000, 232.000000, 258.000000, 0.000000 -7128, -3.000000, 232.000000, 258.000000, 0.000000 -7129, -3.000000, 232.000000, 258.000000, 0.000000 -7130, -3.000000, 232.000000, 258.000000, 0.000000 -7131, -3.000000, 232.000000, 258.000000, 0.000000 -7132, -3.000000, 232.000000, 258.000000, 0.000000 -7133, -3.000000, 232.000000, 258.000000, 0.000000 -7134, -3.000000, 232.000000, 258.000000, 0.000000 -7135, -3.000000, 232.000000, 258.000000, 0.000000 -7136, -3.000000, 232.000000, 258.000000, 0.000000 -7137, -3.000000, 232.000000, 258.000000, 0.000000 -7138, -3.000000, 232.000000, 258.000000, 0.000000 -7139, -3.000000, 232.000000, 258.000000, 0.000000 -7140, -3.000000, 232.000000, 258.000000, 0.000000 -7141, -3.000000, 232.000000, 258.000000, 0.000000 -7142, -3.000000, 232.000000, 258.000000, 0.000000 -7143, -3.000000, 232.000000, 258.000000, 0.000000 -7144, -3.000000, 232.000000, 258.000000, 0.000000 -7145, -3.000000, 232.000000, 258.000000, 0.000000 -7146, -3.000000, 232.000000, 258.000000, 0.000000 -7147, -3.000000, 232.000000, 258.000000, 0.000000 -7148, -3.000000, 232.000000, 258.000000, 0.000000 -7149, -3.000000, 232.000000, 258.000000, 0.000000 -7150, -3.000000, 232.000000, 258.000000, 0.000000 -7151, -3.000000, 232.000000, 258.000000, 0.000000 -7152, -3.000000, 232.000000, 258.000000, 0.000000 -7153, -3.000000, 232.000000, 258.000000, 0.000000 -7154, -3.000000, 232.000000, 258.000000, 0.000000 -7155, -3.000000, 232.000000, 258.000000, 0.000000 -7156, -3.000000, 232.000000, 258.000000, 0.000000 -7157, -3.000000, 232.000000, 258.000000, 0.000000 -7158, -3.000000, 232.000000, 258.000000, 0.000000 -7159, -3.000000, 232.000000, 258.000000, 0.000000 -7160, -3.000000, 232.000000, 258.000000, 0.000000 -7161, -3.000000, 232.000000, 258.000000, 0.000000 -7162, -3.000000, 232.000000, 258.000000, 0.000000 -7163, -3.000000, 232.000000, 258.000000, 0.000000 -7164, -3.000000, 232.000000, 258.000000, 0.000000 -7165, -3.000000, 232.000000, 258.000000, 0.000000 -7166, -3.000000, 232.000000, 258.000000, 0.000000 -7167, -3.000000, 232.000000, 258.000000, 0.000000 -7168, -3.000000, 232.000000, 258.000000, 0.000000 -7169, -3.000000, 232.000000, 258.000000, 0.000000 -7170, -3.000000, 232.000000, 258.000000, 0.000000 -7171, -3.000000, 232.000000, 258.000000, 0.000000 -7172, -3.000000, 232.000000, 258.000000, 0.000000 -7173, -3.000000, 232.000000, 258.000000, 0.000000 -7174, -3.000000, 232.000000, 258.000000, 0.000000 -7175, -3.000000, 232.000000, 258.000000, 0.000000 -7176, -3.000000, 232.000000, 258.000000, 0.000000 -7177, -3.000000, 232.000000, 258.000000, 0.000000 -7178, -3.000000, 232.000000, 258.000000, 0.000000 -7179, -3.000000, 232.000000, 258.000000, 0.000000 -7180, -3.000000, 232.000000, 258.000000, 0.000000 -7181, -3.000000, 232.000000, 258.000000, 0.000000 -7182, -3.000000, 232.000000, 258.000000, 0.000000 -7183, -3.000000, 232.000000, 258.000000, 0.000000 -7184, -3.000000, 232.000000, 258.000000, 0.000000 -7185, -3.000000, 232.000000, 258.000000, 0.000000 -7186, -3.000000, 232.000000, 258.000000, 0.000000 -7187, -3.000000, 232.000000, 258.000000, 0.000000 -7188, -3.000000, 232.000000, 258.000000, 0.000000 -7189, -3.000000, 232.000000, 258.000000, 0.000000 -7190, -3.000000, 232.000000, 258.000000, 0.000000 -7191, -3.000000, 232.000000, 258.000000, 0.000000 -7192, -3.000000, 232.000000, 258.000000, 0.000000 -7193, -3.000000, 232.000000, 258.000000, 0.000000 -7194, -3.000000, 232.000000, 258.000000, 0.000000 -7195, -3.000000, 232.000000, 258.000000, 0.000000 -7196, -3.000000, 232.000000, 258.000000, 0.000000 -7197, -3.000000, 232.000000, 258.000000, 0.000000 -7198, -3.000000, 232.000000, 258.000000, 0.000000 -7199, -3.000000, 232.000000, 258.000000, 0.000000 -7200, -3.000000, 234.000000, 261.000000, 0.000000 -7201, -3.000000, 234.000000, 261.000000, 0.000000 -7202, -3.000000, 234.000000, 261.000000, 0.000000 -7203, -3.000000, 234.000000, 261.000000, 0.000000 -7204, -3.000000, 234.000000, 261.000000, 0.000000 -7205, -3.000000, 234.000000, 261.000000, 0.000000 -7206, -3.000000, 234.000000, 261.000000, 0.000000 -7207, -3.000000, 234.000000, 261.000000, 0.000000 -7208, -3.000000, 234.000000, 261.000000, 0.000000 -7209, -3.000000, 234.000000, 261.000000, 0.000000 -7210, -3.000000, 234.000000, 261.000000, 0.000000 -7211, -3.000000, 234.000000, 261.000000, 0.000000 -7212, -3.000000, 234.000000, 261.000000, 0.000000 -7213, -3.000000, 234.000000, 261.000000, 0.000000 -7214, -3.000000, 234.000000, 261.000000, 0.000000 -7215, -3.000000, 234.000000, 261.000000, 0.000000 -7216, -3.000000, 234.000000, 261.000000, 0.000000 -7217, -3.000000, 234.000000, 261.000000, 0.000000 -7218, -3.000000, 234.000000, 261.000000, 0.000000 -7219, -3.000000, 234.000000, 261.000000, 0.000000 -7220, -3.000000, 234.000000, 261.000000, 0.000000 -7221, -3.000000, 234.000000, 261.000000, 0.000000 -7222, -3.000000, 234.000000, 261.000000, 0.000000 -7223, -3.000000, 234.000000, 261.000000, 0.000000 -7224, -3.000000, 234.000000, 261.000000, 0.000000 -7225, -3.000000, 234.000000, 261.000000, 0.000000 -7226, -3.000000, 234.000000, 261.000000, 0.000000 -7227, -3.000000, 234.000000, 261.000000, 0.000000 -7228, -3.000000, 234.000000, 261.000000, 0.000000 -7229, -3.000000, 234.000000, 261.000000, 0.000000 -7230, -3.000000, 234.000000, 261.000000, 0.000000 -7231, -3.000000, 234.000000, 261.000000, 0.000000 -7232, -3.000000, 234.000000, 261.000000, 0.000000 -7233, -3.000000, 234.000000, 261.000000, 0.000000 -7234, -3.000000, 234.000000, 261.000000, 0.000000 -7235, -3.000000, 234.000000, 261.000000, 0.000000 -7236, -3.000000, 234.000000, 261.000000, 0.000000 -7237, -3.000000, 234.000000, 261.000000, 0.000000 -7238, -3.000000, 234.000000, 261.000000, 0.000000 -7239, -3.000000, 234.000000, 261.000000, 0.000000 -7240, -3.000000, 234.000000, 261.000000, 0.000000 -7241, -3.000000, 234.000000, 261.000000, 0.000000 -7242, -3.000000, 234.000000, 261.000000, 0.000000 -7243, -3.000000, 234.000000, 261.000000, 0.000000 -7244, -3.000000, 234.000000, 261.000000, 0.000000 -7245, -3.000000, 234.000000, 261.000000, 0.000000 -7246, -3.000000, 234.000000, 261.000000, 0.000000 -7247, -3.000000, 234.000000, 261.000000, 0.000000 -7248, -3.000000, 234.000000, 261.000000, 0.000000 -7249, -3.000000, 234.000000, 261.000000, 0.000000 -7250, -3.000000, 234.000000, 261.000000, 0.000000 -7251, -3.000000, 234.000000, 261.000000, 0.000000 -7252, -3.000000, 234.000000, 261.000000, 0.000000 -7253, -3.000000, 234.000000, 261.000000, 0.000000 -7254, -3.000000, 234.000000, 261.000000, 0.000000 -7255, -3.000000, 234.000000, 261.000000, 0.000000 -7256, -3.000000, 234.000000, 261.000000, 0.000000 -7257, -3.000000, 234.000000, 261.000000, 0.000000 -7258, -3.000000, 234.000000, 261.000000, 0.000000 -7259, -3.000000, 234.000000, 261.000000, 0.000000 -7260, -3.000000, 234.000000, 261.000000, 0.000000 -7261, -3.000000, 234.000000, 261.000000, 0.000000 -7262, -3.000000, 234.000000, 261.000000, 0.000000 -7263, -3.000000, 234.000000, 261.000000, 0.000000 -7264, -3.000000, 234.000000, 261.000000, 0.000000 -7265, -3.000000, 234.000000, 261.000000, 0.000000 -7266, -3.000000, 234.000000, 261.000000, 0.000000 -7267, -3.000000, 234.000000, 261.000000, 0.000000 -7268, -3.000000, 234.000000, 261.000000, 0.000000 -7269, -3.000000, 234.000000, 261.000000, 0.000000 -7270, -3.000000, 234.000000, 261.000000, 0.000000 -7271, -3.000000, 234.000000, 261.000000, 0.000000 -7272, -3.000000, 234.000000, 261.000000, 0.000000 -7273, -3.000000, 234.000000, 261.000000, 0.000000 -7274, -3.000000, 234.000000, 261.000000, 0.000000 -7275, -3.000000, 234.000000, 261.000000, 0.000000 -7276, -3.000000, 234.000000, 261.000000, 0.000000 -7277, -3.000000, 234.000000, 261.000000, 0.000000 -7278, -3.000000, 234.000000, 261.000000, 0.000000 -7279, -3.000000, 234.000000, 261.000000, 0.000000 -7280, -3.000000, 234.000000, 261.000000, 0.000000 -7281, -3.000000, 234.000000, 261.000000, 0.000000 -7282, -3.000000, 234.000000, 261.000000, 0.000000 -7283, -3.000000, 234.000000, 261.000000, 0.000000 -7284, -3.000000, 234.000000, 261.000000, 0.000000 -7285, -3.000000, 234.000000, 261.000000, 0.000000 -7286, -3.000000, 234.000000, 261.000000, 0.000000 -7287, -3.000000, 234.000000, 261.000000, 0.000000 -7288, -3.000000, 234.000000, 261.000000, 0.000000 -7289, -3.000000, 234.000000, 261.000000, 0.000000 -7290, -3.000000, 234.000000, 261.000000, 0.000000 -7291, -3.000000, 234.000000, 261.000000, 0.000000 -7292, -3.000000, 234.000000, 261.000000, 0.000000 -7293, -3.000000, 234.000000, 261.000000, 0.000000 -7294, -3.000000, 234.000000, 261.000000, 0.000000 -7295, -3.000000, 234.000000, 261.000000, 0.000000 -7296, -3.000000, 234.000000, 261.000000, 0.000000 -7297, -3.000000, 234.000000, 261.000000, 0.000000 -7298, -3.000000, 234.000000, 261.000000, 0.000000 -7299, -3.000000, 234.000000, 261.000000, 0.000000 -7300, -3.000000, 236.000000, 264.000000, 0.000000 -7301, -3.000000, 236.000000, 264.000000, 0.000000 -7302, -3.000000, 236.000000, 264.000000, 0.000000 -7303, -3.000000, 236.000000, 264.000000, 0.000000 -7304, -3.000000, 236.000000, 264.000000, 0.000000 -7305, -3.000000, 236.000000, 264.000000, 0.000000 -7306, -3.000000, 236.000000, 264.000000, 0.000000 -7307, -3.000000, 236.000000, 264.000000, 0.000000 -7308, -3.000000, 236.000000, 264.000000, 0.000000 -7309, -3.000000, 236.000000, 264.000000, 0.000000 -7310, -3.000000, 236.000000, 264.000000, 0.000000 -7311, -3.000000, 236.000000, 264.000000, 0.000000 -7312, -3.000000, 236.000000, 264.000000, 0.000000 -7313, -3.000000, 236.000000, 264.000000, 0.000000 -7314, -3.000000, 236.000000, 264.000000, 0.000000 -7315, -3.000000, 236.000000, 264.000000, 0.000000 -7316, -3.000000, 236.000000, 264.000000, 0.000000 -7317, -3.000000, 236.000000, 264.000000, 0.000000 -7318, -3.000000, 236.000000, 264.000000, 0.000000 -7319, -3.000000, 236.000000, 264.000000, 0.000000 -7320, -3.000000, 236.000000, 264.000000, 0.000000 -7321, -3.000000, 236.000000, 264.000000, 0.000000 -7322, -3.000000, 236.000000, 264.000000, 0.000000 -7323, -3.000000, 236.000000, 264.000000, 0.000000 -7324, -3.000000, 236.000000, 264.000000, 0.000000 -7325, -3.000000, 236.000000, 264.000000, 0.000000 -7326, -3.000000, 236.000000, 264.000000, 0.000000 -7327, -3.000000, 236.000000, 264.000000, 0.000000 -7328, -3.000000, 236.000000, 264.000000, 0.000000 -7329, -3.000000, 236.000000, 264.000000, 0.000000 -7330, -3.000000, 236.000000, 264.000000, 0.000000 -7331, -3.000000, 236.000000, 264.000000, 0.000000 -7332, -3.000000, 236.000000, 264.000000, 0.000000 -7333, -3.000000, 236.000000, 264.000000, 0.000000 -7334, -3.000000, 236.000000, 264.000000, 0.000000 -7335, -3.000000, 236.000000, 264.000000, 0.000000 -7336, -3.000000, 236.000000, 264.000000, 0.000000 -7337, -3.000000, 236.000000, 264.000000, 0.000000 -7338, -3.000000, 236.000000, 264.000000, 0.000000 -7339, -3.000000, 236.000000, 264.000000, 0.000000 -7340, -3.000000, 236.000000, 264.000000, 0.000000 -7341, -3.000000, 236.000000, 264.000000, 0.000000 -7342, -3.000000, 236.000000, 264.000000, 0.000000 -7343, -3.000000, 236.000000, 264.000000, 0.000000 -7344, -3.000000, 236.000000, 264.000000, 0.000000 -7345, -3.000000, 236.000000, 264.000000, 0.000000 -7346, -3.000000, 236.000000, 264.000000, 0.000000 -7347, -3.000000, 236.000000, 264.000000, 0.000000 -7348, -3.000000, 236.000000, 264.000000, 0.000000 -7349, -3.000000, 236.000000, 264.000000, 0.000000 -7350, -3.000000, 236.000000, 264.000000, 0.000000 -7351, -3.000000, 236.000000, 264.000000, 0.000000 -7352, -3.000000, 236.000000, 264.000000, 0.000000 -7353, -3.000000, 236.000000, 264.000000, 0.000000 -7354, -3.000000, 236.000000, 264.000000, 0.000000 -7355, -3.000000, 236.000000, 264.000000, 0.000000 -7356, -3.000000, 236.000000, 264.000000, 0.000000 -7357, -3.000000, 236.000000, 264.000000, 0.000000 -7358, -3.000000, 236.000000, 264.000000, 0.000000 -7359, -3.000000, 236.000000, 264.000000, 0.000000 -7360, -3.000000, 236.000000, 264.000000, 0.000000 -7361, -3.000000, 236.000000, 264.000000, 0.000000 -7362, -3.000000, 236.000000, 264.000000, 0.000000 -7363, -3.000000, 236.000000, 264.000000, 0.000000 -7364, -3.000000, 236.000000, 264.000000, 0.000000 -7365, -3.000000, 236.000000, 264.000000, 0.000000 -7366, -3.000000, 236.000000, 264.000000, 0.000000 -7367, -3.000000, 236.000000, 264.000000, 0.000000 -7368, -3.000000, 236.000000, 264.000000, 0.000000 -7369, -3.000000, 236.000000, 264.000000, 0.000000 -7370, -3.000000, 236.000000, 264.000000, 0.000000 -7371, -3.000000, 236.000000, 264.000000, 0.000000 -7372, -3.000000, 236.000000, 264.000000, 0.000000 -7373, -3.000000, 236.000000, 264.000000, 0.000000 -7374, -3.000000, 236.000000, 264.000000, 0.000000 -7375, -3.000000, 236.000000, 264.000000, 0.000000 -7376, -3.000000, 236.000000, 264.000000, 0.000000 -7377, -3.000000, 236.000000, 264.000000, 0.000000 -7378, -3.000000, 236.000000, 264.000000, 0.000000 -7379, -3.000000, 236.000000, 264.000000, 0.000000 -7380, -3.000000, 236.000000, 264.000000, 0.000000 -7381, -3.000000, 236.000000, 264.000000, 0.000000 -7382, -3.000000, 236.000000, 264.000000, 0.000000 -7383, -3.000000, 236.000000, 264.000000, 0.000000 -7384, -3.000000, 236.000000, 264.000000, 0.000000 -7385, -3.000000, 236.000000, 264.000000, 0.000000 -7386, -3.000000, 236.000000, 264.000000, 0.000000 -7387, -3.000000, 236.000000, 264.000000, 0.000000 -7388, -3.000000, 236.000000, 264.000000, 0.000000 -7389, -3.000000, 236.000000, 264.000000, 0.000000 -7390, -3.000000, 236.000000, 264.000000, 0.000000 -7391, -3.000000, 236.000000, 264.000000, 0.000000 -7392, -3.000000, 236.000000, 264.000000, 0.000000 -7393, -3.000000, 236.000000, 264.000000, 0.000000 -7394, -3.000000, 236.000000, 264.000000, 0.000000 -7395, -3.000000, 236.000000, 264.000000, 0.000000 -7396, -3.000000, 236.000000, 264.000000, 0.000000 -7397, -3.000000, 236.000000, 264.000000, 0.000000 -7398, -3.000000, 236.000000, 264.000000, 0.000000 -7399, -3.000000, 236.000000, 264.000000, 0.000000 -7400, -3.000000, 238.000000, 267.000000, 0.000000 -7401, -3.000000, 238.000000, 267.000000, 0.000000 -7402, -3.000000, 238.000000, 267.000000, 0.000000 -7403, -3.000000, 238.000000, 267.000000, 0.000000 -7404, -3.000000, 238.000000, 267.000000, 0.000000 -7405, -3.000000, 238.000000, 267.000000, 0.000000 -7406, -3.000000, 238.000000, 267.000000, 0.000000 -7407, -3.000000, 238.000000, 267.000000, 0.000000 -7408, -3.000000, 238.000000, 267.000000, 0.000000 -7409, -3.000000, 238.000000, 267.000000, 0.000000 -7410, -3.000000, 238.000000, 267.000000, 0.000000 -7411, -3.000000, 238.000000, 267.000000, 0.000000 -7412, -3.000000, 238.000000, 267.000000, 0.000000 -7413, -3.000000, 238.000000, 267.000000, 0.000000 -7414, -3.000000, 238.000000, 267.000000, 0.000000 -7415, -3.000000, 238.000000, 267.000000, 0.000000 -7416, -3.000000, 238.000000, 267.000000, 0.000000 -7417, -3.000000, 238.000000, 267.000000, 0.000000 -7418, -3.000000, 238.000000, 267.000000, 0.000000 -7419, -3.000000, 238.000000, 267.000000, 0.000000 -7420, -3.000000, 238.000000, 267.000000, 0.000000 -7421, -3.000000, 238.000000, 267.000000, 0.000000 -7422, -3.000000, 238.000000, 267.000000, 0.000000 -7423, -3.000000, 238.000000, 267.000000, 0.000000 -7424, -3.000000, 238.000000, 267.000000, 0.000000 -7425, -3.000000, 238.000000, 267.000000, 0.000000 -7426, -3.000000, 238.000000, 267.000000, 0.000000 -7427, -3.000000, 238.000000, 267.000000, 0.000000 -7428, -3.000000, 238.000000, 267.000000, 0.000000 -7429, -3.000000, 238.000000, 267.000000, 0.000000 -7430, -3.000000, 238.000000, 267.000000, 0.000000 -7431, -3.000000, 238.000000, 267.000000, 0.000000 -7432, -3.000000, 238.000000, 267.000000, 0.000000 -7433, -3.000000, 238.000000, 267.000000, 0.000000 -7434, -3.000000, 238.000000, 267.000000, 0.000000 -7435, -3.000000, 238.000000, 267.000000, 0.000000 -7436, -3.000000, 238.000000, 267.000000, 0.000000 -7437, -3.000000, 238.000000, 267.000000, 0.000000 -7438, -3.000000, 238.000000, 267.000000, 0.000000 -7439, -3.000000, 238.000000, 267.000000, 0.000000 -7440, -3.000000, 238.000000, 267.000000, 0.000000 -7441, -3.000000, 238.000000, 267.000000, 0.000000 -7442, -3.000000, 238.000000, 267.000000, 0.000000 -7443, -3.000000, 238.000000, 267.000000, 0.000000 -7444, -3.000000, 238.000000, 267.000000, 0.000000 -7445, -3.000000, 238.000000, 267.000000, 0.000000 -7446, -3.000000, 238.000000, 267.000000, 0.000000 -7447, -3.000000, 238.000000, 267.000000, 0.000000 -7448, -3.000000, 238.000000, 267.000000, 0.000000 -7449, -3.000000, 238.000000, 267.000000, 0.000000 -7450, -3.000000, 238.000000, 267.000000, 0.000000 -7451, -3.000000, 238.000000, 267.000000, 0.000000 -7452, -3.000000, 238.000000, 267.000000, 0.000000 -7453, -3.000000, 238.000000, 267.000000, 0.000000 -7454, -3.000000, 238.000000, 267.000000, 0.000000 -7455, -3.000000, 238.000000, 267.000000, 0.000000 -7456, -3.000000, 238.000000, 267.000000, 0.000000 -7457, -3.000000, 238.000000, 267.000000, 0.000000 -7458, -3.000000, 238.000000, 267.000000, 0.000000 -7459, -3.000000, 238.000000, 267.000000, 0.000000 -7460, -3.000000, 238.000000, 267.000000, 0.000000 -7461, -3.000000, 238.000000, 267.000000, 0.000000 -7462, -3.000000, 238.000000, 267.000000, 0.000000 -7463, -3.000000, 238.000000, 267.000000, 0.000000 -7464, -3.000000, 238.000000, 267.000000, 0.000000 -7465, -3.000000, 238.000000, 267.000000, 0.000000 -7466, -3.000000, 238.000000, 267.000000, 0.000000 -7467, -3.000000, 238.000000, 267.000000, 0.000000 -7468, -3.000000, 238.000000, 267.000000, 0.000000 -7469, -3.000000, 238.000000, 267.000000, 0.000000 -7470, -3.000000, 238.000000, 267.000000, 0.000000 -7471, -3.000000, 238.000000, 267.000000, 0.000000 -7472, -3.000000, 238.000000, 267.000000, 0.000000 -7473, -3.000000, 238.000000, 267.000000, 0.000000 -7474, -3.000000, 238.000000, 267.000000, 0.000000 -7475, -3.000000, 238.000000, 267.000000, 0.000000 -7476, -3.000000, 238.000000, 267.000000, 0.000000 -7477, -3.000000, 238.000000, 267.000000, 0.000000 -7478, -3.000000, 238.000000, 267.000000, 0.000000 -7479, -3.000000, 238.000000, 267.000000, 0.000000 -7480, -3.000000, 238.000000, 267.000000, 0.000000 -7481, -3.000000, 238.000000, 267.000000, 0.000000 -7482, -3.000000, 238.000000, 267.000000, 0.000000 -7483, -3.000000, 238.000000, 267.000000, 0.000000 -7484, -3.000000, 238.000000, 267.000000, 0.000000 -7485, -3.000000, 238.000000, 267.000000, 0.000000 -7486, -3.000000, 238.000000, 267.000000, 0.000000 -7487, -3.000000, 238.000000, 267.000000, 0.000000 -7488, -3.000000, 238.000000, 267.000000, 0.000000 -7489, -3.000000, 238.000000, 267.000000, 0.000000 -7490, -3.000000, 238.000000, 267.000000, 0.000000 -7491, -3.000000, 238.000000, 267.000000, 0.000000 -7492, -3.000000, 238.000000, 267.000000, 0.000000 -7493, -3.000000, 238.000000, 267.000000, 0.000000 -7494, -3.000000, 238.000000, 267.000000, 0.000000 -7495, -3.000000, 238.000000, 267.000000, 0.000000 -7496, -3.000000, 238.000000, 267.000000, 0.000000 -7497, -3.000000, 238.000000, 267.000000, 0.000000 -7498, -3.000000, 238.000000, 267.000000, 0.000000 -7499, -3.000000, 238.000000, 267.000000, 0.000000 -7500, -3.000000, 240.000000, 270.000000, 0.000000 -7501, -3.000000, 240.000000, 270.000000, 0.000000 -7502, -3.000000, 240.000000, 270.000000, 0.000000 -7503, -3.000000, 240.000000, 270.000000, 0.000000 -7504, -3.000000, 240.000000, 270.000000, 0.000000 -7505, -3.000000, 240.000000, 270.000000, 0.000000 -7506, -3.000000, 240.000000, 270.000000, 0.000000 -7507, -3.000000, 240.000000, 270.000000, 0.000000 -7508, -3.000000, 240.000000, 270.000000, 0.000000 -7509, -3.000000, 240.000000, 270.000000, 0.000000 -7510, -3.000000, 240.000000, 270.000000, 0.000000 -7511, -3.000000, 240.000000, 270.000000, 0.000000 -7512, -3.000000, 240.000000, 270.000000, 0.000000 -7513, -3.000000, 240.000000, 270.000000, 0.000000 -7514, -3.000000, 240.000000, 270.000000, 0.000000 -7515, -3.000000, 240.000000, 270.000000, 0.000000 -7516, -3.000000, 240.000000, 270.000000, 0.000000 -7517, -3.000000, 240.000000, 270.000000, 0.000000 -7518, -3.000000, 240.000000, 270.000000, 0.000000 -7519, -3.000000, 240.000000, 270.000000, 0.000000 -7520, -3.000000, 240.000000, 270.000000, 0.000000 -7521, -3.000000, 240.000000, 270.000000, 0.000000 -7522, -3.000000, 240.000000, 270.000000, 0.000000 -7523, -3.000000, 240.000000, 270.000000, 0.000000 -7524, -3.000000, 240.000000, 270.000000, 0.000000 -7525, -3.000000, 240.000000, 270.000000, 0.000000 -7526, -3.000000, 240.000000, 270.000000, 0.000000 -7527, -3.000000, 240.000000, 270.000000, 0.000000 -7528, -3.000000, 240.000000, 270.000000, 0.000000 -7529, -3.000000, 240.000000, 270.000000, 0.000000 -7530, -3.000000, 240.000000, 270.000000, 0.000000 -7531, -3.000000, 240.000000, 270.000000, 0.000000 -7532, -3.000000, 240.000000, 270.000000, 0.000000 -7533, -3.000000, 240.000000, 270.000000, 0.000000 -7534, -3.000000, 240.000000, 270.000000, 0.000000 -7535, -3.000000, 240.000000, 270.000000, 0.000000 -7536, -3.000000, 240.000000, 270.000000, 0.000000 -7537, -3.000000, 240.000000, 270.000000, 0.000000 -7538, -3.000000, 240.000000, 270.000000, 0.000000 -7539, -3.000000, 240.000000, 270.000000, 0.000000 -7540, -3.000000, 240.000000, 270.000000, 0.000000 -7541, -3.000000, 240.000000, 270.000000, 0.000000 -7542, -3.000000, 240.000000, 270.000000, 0.000000 -7543, -3.000000, 240.000000, 270.000000, 0.000000 -7544, -3.000000, 240.000000, 270.000000, 0.000000 -7545, -3.000000, 240.000000, 270.000000, 0.000000 -7546, -3.000000, 240.000000, 270.000000, 0.000000 -7547, -3.000000, 240.000000, 270.000000, 0.000000 -7548, -3.000000, 240.000000, 270.000000, 0.000000 -7549, -3.000000, 240.000000, 270.000000, 0.000000 -7550, -3.000000, 240.000000, 270.000000, 0.000000 -7551, -3.000000, 240.000000, 270.000000, 0.000000 -7552, -3.000000, 240.000000, 270.000000, 0.000000 -7553, -3.000000, 240.000000, 270.000000, 0.000000 -7554, -3.000000, 240.000000, 270.000000, 0.000000 -7555, -3.000000, 240.000000, 270.000000, 0.000000 -7556, -3.000000, 240.000000, 270.000000, 0.000000 -7557, -3.000000, 240.000000, 270.000000, 0.000000 -7558, -3.000000, 240.000000, 270.000000, 0.000000 -7559, -3.000000, 240.000000, 270.000000, 0.000000 -7560, -3.000000, 240.000000, 270.000000, 0.000000 -7561, -3.000000, 240.000000, 270.000000, 0.000000 -7562, -3.000000, 240.000000, 270.000000, 0.000000 -7563, -3.000000, 240.000000, 270.000000, 0.000000 -7564, -3.000000, 240.000000, 270.000000, 0.000000 -7565, -3.000000, 240.000000, 270.000000, 0.000000 -7566, -3.000000, 240.000000, 270.000000, 0.000000 -7567, -3.000000, 240.000000, 270.000000, 0.000000 -7568, -3.000000, 240.000000, 270.000000, 0.000000 -7569, -3.000000, 240.000000, 270.000000, 0.000000 -7570, -3.000000, 240.000000, 270.000000, 0.000000 -7571, -3.000000, 240.000000, 270.000000, 0.000000 -7572, -3.000000, 240.000000, 270.000000, 0.000000 -7573, -3.000000, 240.000000, 270.000000, 0.000000 -7574, -3.000000, 240.000000, 270.000000, 0.000000 -7575, -3.000000, 240.000000, 270.000000, 0.000000 -7576, -3.000000, 240.000000, 270.000000, 0.000000 -7577, -3.000000, 240.000000, 270.000000, 0.000000 -7578, -3.000000, 240.000000, 270.000000, 0.000000 -7579, -3.000000, 240.000000, 270.000000, 0.000000 -7580, -3.000000, 240.000000, 270.000000, 0.000000 -7581, -3.000000, 240.000000, 270.000000, 0.000000 -7582, -3.000000, 240.000000, 270.000000, 0.000000 -7583, -3.000000, 240.000000, 270.000000, 0.000000 -7584, -3.000000, 240.000000, 270.000000, 0.000000 -7585, -3.000000, 240.000000, 270.000000, 0.000000 -7586, -3.000000, 240.000000, 270.000000, 0.000000 -7587, -3.000000, 240.000000, 270.000000, 0.000000 -7588, -3.000000, 240.000000, 270.000000, 0.000000 -7589, -3.000000, 240.000000, 270.000000, 0.000000 -7590, -3.000000, 240.000000, 270.000000, 0.000000 -7591, -3.000000, 240.000000, 270.000000, 0.000000 -7592, -3.000000, 240.000000, 270.000000, 0.000000 -7593, -3.000000, 240.000000, 270.000000, 0.000000 -7594, -3.000000, 240.000000, 270.000000, 0.000000 -7595, -3.000000, 240.000000, 270.000000, 0.000000 -7596, -3.000000, 240.000000, 270.000000, 0.000000 -7597, -3.000000, 240.000000, 270.000000, 0.000000 -7598, -3.000000, 240.000000, 270.000000, 0.000000 -7599, -3.000000, 240.000000, 270.000000, 0.000000 -7600, -3.000000, 242.000000, 273.000000, 0.000000 -7601, -3.000000, 242.000000, 273.000000, 0.000000 -7602, -3.000000, 242.000000, 273.000000, 0.000000 -7603, -3.000000, 242.000000, 273.000000, 0.000000 -7604, -3.000000, 242.000000, 273.000000, 0.000000 -7605, -3.000000, 242.000000, 273.000000, 0.000000 -7606, -3.000000, 242.000000, 273.000000, 0.000000 -7607, -3.000000, 242.000000, 273.000000, 0.000000 -7608, -3.000000, 242.000000, 273.000000, 0.000000 -7609, -3.000000, 242.000000, 273.000000, 0.000000 -7610, -3.000000, 242.000000, 273.000000, 0.000000 -7611, -3.000000, 242.000000, 273.000000, 0.000000 -7612, -3.000000, 242.000000, 273.000000, 0.000000 -7613, -3.000000, 242.000000, 273.000000, 0.000000 -7614, -3.000000, 242.000000, 273.000000, 0.000000 -7615, -3.000000, 242.000000, 273.000000, 0.000000 -7616, -3.000000, 242.000000, 273.000000, 0.000000 -7617, -3.000000, 242.000000, 273.000000, 0.000000 -7618, -3.000000, 242.000000, 273.000000, 0.000000 -7619, -3.000000, 242.000000, 273.000000, 0.000000 -7620, -3.000000, 242.000000, 273.000000, 0.000000 -7621, -3.000000, 242.000000, 273.000000, 0.000000 -7622, -3.000000, 242.000000, 273.000000, 0.000000 -7623, -3.000000, 242.000000, 273.000000, 0.000000 -7624, -3.000000, 242.000000, 273.000000, 0.000000 -7625, -3.000000, 242.000000, 273.000000, 0.000000 -7626, -3.000000, 242.000000, 273.000000, 0.000000 -7627, -3.000000, 242.000000, 273.000000, 0.000000 -7628, -3.000000, 242.000000, 273.000000, 0.000000 -7629, -3.000000, 242.000000, 273.000000, 0.000000 -7630, -3.000000, 242.000000, 273.000000, 0.000000 -7631, -3.000000, 242.000000, 273.000000, 0.000000 -7632, -3.000000, 242.000000, 273.000000, 0.000000 -7633, -3.000000, 242.000000, 273.000000, 0.000000 -7634, -3.000000, 242.000000, 273.000000, 0.000000 -7635, -3.000000, 242.000000, 273.000000, 0.000000 -7636, -3.000000, 242.000000, 273.000000, 0.000000 -7637, -3.000000, 242.000000, 273.000000, 0.000000 -7638, -3.000000, 242.000000, 273.000000, 0.000000 -7639, -3.000000, 242.000000, 273.000000, 0.000000 -7640, -3.000000, 242.000000, 273.000000, 0.000000 -7641, -3.000000, 242.000000, 273.000000, 0.000000 -7642, -3.000000, 242.000000, 273.000000, 0.000000 -7643, -3.000000, 242.000000, 273.000000, 0.000000 -7644, -3.000000, 242.000000, 273.000000, 0.000000 -7645, -3.000000, 242.000000, 273.000000, 0.000000 -7646, -3.000000, 242.000000, 273.000000, 0.000000 -7647, -3.000000, 242.000000, 273.000000, 0.000000 -7648, -3.000000, 242.000000, 273.000000, 0.000000 -7649, -3.000000, 242.000000, 273.000000, 0.000000 -7650, -3.000000, 242.000000, 273.000000, 0.000000 -7651, -3.000000, 242.000000, 273.000000, 0.000000 -7652, -3.000000, 242.000000, 273.000000, 0.000000 -7653, -3.000000, 242.000000, 273.000000, 0.000000 -7654, -3.000000, 242.000000, 273.000000, 0.000000 -7655, -3.000000, 242.000000, 273.000000, 0.000000 -7656, -3.000000, 242.000000, 273.000000, 0.000000 -7657, -3.000000, 242.000000, 273.000000, 0.000000 -7658, -3.000000, 242.000000, 273.000000, 0.000000 -7659, -3.000000, 242.000000, 273.000000, 0.000000 -7660, -3.000000, 242.000000, 273.000000, 0.000000 -7661, -3.000000, 242.000000, 273.000000, 0.000000 -7662, -3.000000, 242.000000, 273.000000, 0.000000 -7663, -3.000000, 242.000000, 273.000000, 0.000000 -7664, -3.000000, 242.000000, 273.000000, 0.000000 -7665, -3.000000, 242.000000, 273.000000, 0.000000 -7666, -3.000000, 242.000000, 273.000000, 0.000000 -7667, -3.000000, 242.000000, 273.000000, 0.000000 -7668, -3.000000, 242.000000, 273.000000, 0.000000 -7669, -3.000000, 242.000000, 273.000000, 0.000000 -7670, -3.000000, 242.000000, 273.000000, 0.000000 -7671, -3.000000, 242.000000, 273.000000, 0.000000 -7672, -3.000000, 242.000000, 273.000000, 0.000000 -7673, -3.000000, 242.000000, 273.000000, 0.000000 -7674, -3.000000, 242.000000, 273.000000, 0.000000 -7675, -3.000000, 242.000000, 273.000000, 0.000000 -7676, -3.000000, 242.000000, 273.000000, 0.000000 -7677, -3.000000, 242.000000, 273.000000, 0.000000 -7678, -3.000000, 242.000000, 273.000000, 0.000000 -7679, -3.000000, 242.000000, 273.000000, 0.000000 -7680, -3.000000, 242.000000, 273.000000, 0.000000 -7681, -3.000000, 242.000000, 273.000000, 0.000000 -7682, -3.000000, 242.000000, 273.000000, 0.000000 -7683, -3.000000, 242.000000, 273.000000, 0.000000 -7684, -3.000000, 242.000000, 273.000000, 0.000000 -7685, -3.000000, 242.000000, 273.000000, 0.000000 -7686, -3.000000, 242.000000, 273.000000, 0.000000 -7687, -3.000000, 242.000000, 273.000000, 0.000000 -7688, -3.000000, 242.000000, 273.000000, 0.000000 -7689, -3.000000, 242.000000, 273.000000, 0.000000 -7690, -3.000000, 242.000000, 273.000000, 0.000000 -7691, -3.000000, 242.000000, 273.000000, 0.000000 -7692, -3.000000, 242.000000, 273.000000, 0.000000 -7693, -3.000000, 242.000000, 273.000000, 0.000000 -7694, -3.000000, 242.000000, 273.000000, 0.000000 -7695, -3.000000, 242.000000, 273.000000, 0.000000 -7696, -3.000000, 242.000000, 273.000000, 0.000000 -7697, -3.000000, 242.000000, 273.000000, 0.000000 -7698, -3.000000, 242.000000, 273.000000, 0.000000 -7699, -3.000000, 242.000000, 273.000000, 0.000000 -7700, -3.000000, 244.000000, 276.000000, 0.000000 -7701, -3.000000, 244.000000, 276.000000, 0.000000 -7702, -3.000000, 244.000000, 276.000000, 0.000000 -7703, -3.000000, 244.000000, 276.000000, 0.000000 -7704, -3.000000, 244.000000, 276.000000, 0.000000 -7705, -3.000000, 244.000000, 276.000000, 0.000000 -7706, -3.000000, 244.000000, 276.000000, 0.000000 -7707, -3.000000, 244.000000, 276.000000, 0.000000 -7708, -3.000000, 244.000000, 276.000000, 0.000000 -7709, -3.000000, 244.000000, 276.000000, 0.000000 -7710, -3.000000, 244.000000, 276.000000, 0.000000 -7711, -3.000000, 244.000000, 276.000000, 0.000000 -7712, -3.000000, 244.000000, 276.000000, 0.000000 -7713, -3.000000, 244.000000, 276.000000, 0.000000 -7714, -3.000000, 244.000000, 276.000000, 0.000000 -7715, -3.000000, 244.000000, 276.000000, 0.000000 -7716, -3.000000, 244.000000, 276.000000, 0.000000 -7717, -3.000000, 244.000000, 276.000000, 0.000000 -7718, -3.000000, 244.000000, 276.000000, 0.000000 -7719, -3.000000, 244.000000, 276.000000, 0.000000 -7720, -3.000000, 244.000000, 276.000000, 0.000000 -7721, -3.000000, 244.000000, 276.000000, 0.000000 -7722, -3.000000, 244.000000, 276.000000, 0.000000 -7723, -3.000000, 244.000000, 276.000000, 0.000000 -7724, -3.000000, 244.000000, 276.000000, 0.000000 -7725, -3.000000, 244.000000, 276.000000, 0.000000 -7726, -3.000000, 244.000000, 276.000000, 0.000000 -7727, -3.000000, 244.000000, 276.000000, 0.000000 -7728, -3.000000, 244.000000, 276.000000, 0.000000 -7729, -3.000000, 244.000000, 276.000000, 0.000000 -7730, -3.000000, 244.000000, 276.000000, 0.000000 -7731, -3.000000, 244.000000, 276.000000, 0.000000 -7732, -3.000000, 244.000000, 276.000000, 0.000000 -7733, -3.000000, 244.000000, 276.000000, 0.000000 -7734, -3.000000, 244.000000, 276.000000, 0.000000 -7735, -3.000000, 244.000000, 276.000000, 0.000000 -7736, -3.000000, 244.000000, 276.000000, 0.000000 -7737, -3.000000, 244.000000, 276.000000, 0.000000 -7738, -3.000000, 244.000000, 276.000000, 0.000000 -7739, -3.000000, 244.000000, 276.000000, 0.000000 -7740, -3.000000, 244.000000, 276.000000, 0.000000 -7741, -3.000000, 244.000000, 276.000000, 0.000000 -7742, -3.000000, 244.000000, 276.000000, 0.000000 -7743, -3.000000, 244.000000, 276.000000, 0.000000 -7744, -3.000000, 244.000000, 276.000000, 0.000000 -7745, -3.000000, 244.000000, 276.000000, 0.000000 -7746, -3.000000, 244.000000, 276.000000, 0.000000 -7747, -3.000000, 244.000000, 276.000000, 0.000000 -7748, -3.000000, 244.000000, 276.000000, 0.000000 -7749, -3.000000, 244.000000, 276.000000, 0.000000 -7750, -3.000000, 244.000000, 276.000000, 0.000000 -7751, -3.000000, 244.000000, 276.000000, 0.000000 -7752, -3.000000, 244.000000, 276.000000, 0.000000 -7753, -3.000000, 244.000000, 276.000000, 0.000000 -7754, -3.000000, 244.000000, 276.000000, 0.000000 -7755, -3.000000, 244.000000, 276.000000, 0.000000 -7756, -3.000000, 244.000000, 276.000000, 0.000000 -7757, -3.000000, 244.000000, 276.000000, 0.000000 -7758, -3.000000, 244.000000, 276.000000, 0.000000 -7759, -3.000000, 244.000000, 276.000000, 0.000000 -7760, -3.000000, 244.000000, 276.000000, 0.000000 -7761, -3.000000, 244.000000, 276.000000, 0.000000 -7762, -3.000000, 244.000000, 276.000000, 0.000000 -7763, -3.000000, 244.000000, 276.000000, 0.000000 -7764, -3.000000, 244.000000, 276.000000, 0.000000 -7765, -3.000000, 244.000000, 276.000000, 0.000000 -7766, -3.000000, 244.000000, 276.000000, 0.000000 -7767, -3.000000, 244.000000, 276.000000, 0.000000 -7768, -3.000000, 244.000000, 276.000000, 0.000000 -7769, -3.000000, 244.000000, 276.000000, 0.000000 -7770, -3.000000, 244.000000, 276.000000, 0.000000 -7771, -3.000000, 244.000000, 276.000000, 0.000000 -7772, -3.000000, 244.000000, 276.000000, 0.000000 -7773, -3.000000, 244.000000, 276.000000, 0.000000 -7774, -3.000000, 244.000000, 276.000000, 0.000000 -7775, -3.000000, 244.000000, 276.000000, 0.000000 -7776, -3.000000, 244.000000, 276.000000, 0.000000 -7777, -3.000000, 244.000000, 276.000000, 0.000000 -7778, -3.000000, 244.000000, 276.000000, 0.000000 -7779, -3.000000, 244.000000, 276.000000, 0.000000 -7780, -3.000000, 244.000000, 276.000000, 0.000000 -7781, -3.000000, 244.000000, 276.000000, 0.000000 -7782, -3.000000, 244.000000, 276.000000, 0.000000 -7783, -3.000000, 244.000000, 276.000000, 0.000000 -7784, -3.000000, 244.000000, 276.000000, 0.000000 -7785, -3.000000, 244.000000, 276.000000, 0.000000 -7786, -3.000000, 244.000000, 276.000000, 0.000000 -7787, -3.000000, 244.000000, 276.000000, 0.000000 -7788, -3.000000, 244.000000, 276.000000, 0.000000 -7789, -3.000000, 244.000000, 276.000000, 0.000000 -7790, -3.000000, 244.000000, 276.000000, 0.000000 -7791, -3.000000, 244.000000, 276.000000, 0.000000 -7792, -3.000000, 244.000000, 276.000000, 0.000000 -7793, -3.000000, 244.000000, 276.000000, 0.000000 -7794, -3.000000, 244.000000, 276.000000, 0.000000 -7795, -3.000000, 244.000000, 276.000000, 0.000000 -7796, -3.000000, 244.000000, 276.000000, 0.000000 -7797, -3.000000, 244.000000, 276.000000, 0.000000 -7798, -3.000000, 244.000000, 276.000000, 0.000000 -7799, -3.000000, 244.000000, 276.000000, 0.000000 -7800, -3.000000, 246.000000, 279.000000, 0.000000 -7801, -3.000000, 246.000000, 279.000000, 0.000000 -7802, -3.000000, 246.000000, 279.000000, 0.000000 -7803, -3.000000, 246.000000, 279.000000, 0.000000 -7804, -3.000000, 246.000000, 279.000000, 0.000000 -7805, -3.000000, 246.000000, 279.000000, 0.000000 -7806, -3.000000, 246.000000, 279.000000, 0.000000 -7807, -3.000000, 246.000000, 279.000000, 0.000000 -7808, -3.000000, 246.000000, 279.000000, 0.000000 -7809, -3.000000, 246.000000, 279.000000, 0.000000 -7810, -3.000000, 246.000000, 279.000000, 0.000000 -7811, -3.000000, 246.000000, 279.000000, 0.000000 -7812, -3.000000, 246.000000, 279.000000, 0.000000 -7813, -3.000000, 246.000000, 279.000000, 0.000000 -7814, -3.000000, 246.000000, 279.000000, 0.000000 -7815, -3.000000, 246.000000, 279.000000, 0.000000 -7816, -3.000000, 246.000000, 279.000000, 0.000000 -7817, -3.000000, 246.000000, 279.000000, 0.000000 -7818, -3.000000, 246.000000, 279.000000, 0.000000 -7819, -3.000000, 246.000000, 279.000000, 0.000000 -7820, -3.000000, 246.000000, 279.000000, 0.000000 -7821, -3.000000, 246.000000, 279.000000, 0.000000 -7822, -3.000000, 246.000000, 279.000000, 0.000000 -7823, -3.000000, 246.000000, 279.000000, 0.000000 -7824, -3.000000, 246.000000, 279.000000, 0.000000 -7825, -3.000000, 246.000000, 279.000000, 0.000000 -7826, -3.000000, 246.000000, 279.000000, 0.000000 -7827, -3.000000, 246.000000, 279.000000, 0.000000 -7828, -3.000000, 246.000000, 279.000000, 0.000000 -7829, -3.000000, 246.000000, 279.000000, 0.000000 -7830, -3.000000, 246.000000, 279.000000, 0.000000 -7831, -3.000000, 246.000000, 279.000000, 0.000000 -7832, -3.000000, 246.000000, 279.000000, 0.000000 -7833, -3.000000, 246.000000, 279.000000, 0.000000 -7834, -3.000000, 246.000000, 279.000000, 0.000000 -7835, -3.000000, 246.000000, 279.000000, 0.000000 -7836, -3.000000, 246.000000, 279.000000, 0.000000 -7837, -3.000000, 246.000000, 279.000000, 0.000000 -7838, -3.000000, 246.000000, 279.000000, 0.000000 -7839, -3.000000, 246.000000, 279.000000, 0.000000 -7840, -3.000000, 246.000000, 279.000000, 0.000000 -7841, -3.000000, 246.000000, 279.000000, 0.000000 -7842, -3.000000, 246.000000, 279.000000, 0.000000 -7843, -3.000000, 246.000000, 279.000000, 0.000000 -7844, -3.000000, 246.000000, 279.000000, 0.000000 -7845, -3.000000, 246.000000, 279.000000, 0.000000 -7846, -3.000000, 246.000000, 279.000000, 0.000000 -7847, -3.000000, 246.000000, 279.000000, 0.000000 -7848, -3.000000, 246.000000, 279.000000, 0.000000 -7849, -3.000000, 246.000000, 279.000000, 0.000000 -7850, -3.000000, 246.000000, 279.000000, 0.000000 -7851, -3.000000, 246.000000, 279.000000, 0.000000 -7852, -3.000000, 246.000000, 279.000000, 0.000000 -7853, -3.000000, 246.000000, 279.000000, 0.000000 -7854, -3.000000, 246.000000, 279.000000, 0.000000 -7855, -3.000000, 246.000000, 279.000000, 0.000000 -7856, -3.000000, 246.000000, 279.000000, 0.000000 -7857, -3.000000, 246.000000, 279.000000, 0.000000 -7858, -3.000000, 246.000000, 279.000000, 0.000000 -7859, -3.000000, 246.000000, 279.000000, 0.000000 -7860, -3.000000, 246.000000, 279.000000, 0.000000 -7861, -3.000000, 246.000000, 279.000000, 0.000000 -7862, -3.000000, 246.000000, 279.000000, 0.000000 -7863, -3.000000, 246.000000, 279.000000, 0.000000 -7864, -3.000000, 246.000000, 279.000000, 0.000000 -7865, -3.000000, 246.000000, 279.000000, 0.000000 -7866, -3.000000, 246.000000, 279.000000, 0.000000 -7867, -3.000000, 246.000000, 279.000000, 0.000000 -7868, -3.000000, 246.000000, 279.000000, 0.000000 -7869, -3.000000, 246.000000, 279.000000, 0.000000 -7870, -3.000000, 246.000000, 279.000000, 0.000000 -7871, -3.000000, 246.000000, 279.000000, 0.000000 -7872, -3.000000, 246.000000, 279.000000, 0.000000 -7873, -3.000000, 246.000000, 279.000000, 0.000000 -7874, -3.000000, 246.000000, 279.000000, 0.000000 -7875, -3.000000, 246.000000, 279.000000, 0.000000 -7876, -3.000000, 246.000000, 279.000000, 0.000000 -7877, -3.000000, 246.000000, 279.000000, 0.000000 -7878, -3.000000, 246.000000, 279.000000, 0.000000 -7879, -3.000000, 246.000000, 279.000000, 0.000000 -7880, -3.000000, 246.000000, 279.000000, 0.000000 -7881, -3.000000, 246.000000, 279.000000, 0.000000 -7882, -3.000000, 246.000000, 279.000000, 0.000000 -7883, -3.000000, 246.000000, 279.000000, 0.000000 -7884, -3.000000, 246.000000, 279.000000, 0.000000 -7885, -3.000000, 246.000000, 279.000000, 0.000000 -7886, -3.000000, 246.000000, 279.000000, 0.000000 -7887, -3.000000, 246.000000, 279.000000, 0.000000 -7888, -3.000000, 246.000000, 279.000000, 0.000000 -7889, -3.000000, 246.000000, 279.000000, 0.000000 -7890, -3.000000, 246.000000, 279.000000, 0.000000 -7891, -3.000000, 246.000000, 279.000000, 0.000000 -7892, -3.000000, 246.000000, 279.000000, 0.000000 -7893, -3.000000, 246.000000, 279.000000, 0.000000 -7894, -3.000000, 246.000000, 279.000000, 0.000000 -7895, -3.000000, 246.000000, 279.000000, 0.000000 -7896, -3.000000, 246.000000, 279.000000, 0.000000 -7897, -3.000000, 246.000000, 279.000000, 0.000000 -7898, -3.000000, 246.000000, 279.000000, 0.000000 -7899, -3.000000, 246.000000, 279.000000, 0.000000 -7900, -3.000000, 248.000000, 282.000000, 0.000000 -7901, -3.000000, 248.000000, 282.000000, 0.000000 -7902, -3.000000, 248.000000, 282.000000, 0.000000 -7903, -3.000000, 248.000000, 282.000000, 0.000000 -7904, -3.000000, 248.000000, 282.000000, 0.000000 -7905, -3.000000, 248.000000, 282.000000, 0.000000 -7906, -3.000000, 248.000000, 282.000000, 0.000000 -7907, -3.000000, 248.000000, 282.000000, 0.000000 -7908, -3.000000, 248.000000, 282.000000, 0.000000 -7909, -3.000000, 248.000000, 282.000000, 0.000000 -7910, -3.000000, 248.000000, 282.000000, 0.000000 -7911, -3.000000, 248.000000, 282.000000, 0.000000 -7912, -3.000000, 248.000000, 282.000000, 0.000000 -7913, -3.000000, 248.000000, 282.000000, 0.000000 -7914, -3.000000, 248.000000, 282.000000, 0.000000 -7915, -3.000000, 248.000000, 282.000000, 0.000000 -7916, -3.000000, 248.000000, 282.000000, 0.000000 -7917, -3.000000, 248.000000, 282.000000, 0.000000 -7918, -3.000000, 248.000000, 282.000000, 0.000000 -7919, -3.000000, 248.000000, 282.000000, 0.000000 -7920, -3.000000, 248.000000, 282.000000, 0.000000 -7921, -3.000000, 248.000000, 282.000000, 0.000000 -7922, -3.000000, 248.000000, 282.000000, 0.000000 -7923, -3.000000, 248.000000, 282.000000, 0.000000 -7924, -3.000000, 248.000000, 282.000000, 0.000000 -7925, -3.000000, 248.000000, 282.000000, 0.000000 -7926, -3.000000, 248.000000, 282.000000, 0.000000 -7927, -3.000000, 248.000000, 282.000000, 0.000000 -7928, -3.000000, 248.000000, 282.000000, 0.000000 -7929, -3.000000, 248.000000, 282.000000, 0.000000 -7930, -3.000000, 248.000000, 282.000000, 0.000000 -7931, -3.000000, 248.000000, 282.000000, 0.000000 -7932, -3.000000, 248.000000, 282.000000, 0.000000 -7933, -3.000000, 248.000000, 282.000000, 0.000000 -7934, -3.000000, 248.000000, 282.000000, 0.000000 -7935, -3.000000, 248.000000, 282.000000, 0.000000 -7936, -3.000000, 248.000000, 282.000000, 0.000000 -7937, -3.000000, 248.000000, 282.000000, 0.000000 -7938, -3.000000, 248.000000, 282.000000, 0.000000 -7939, -3.000000, 248.000000, 282.000000, 0.000000 -7940, -3.000000, 248.000000, 282.000000, 0.000000 -7941, -3.000000, 248.000000, 282.000000, 0.000000 -7942, -3.000000, 248.000000, 282.000000, 0.000000 -7943, -3.000000, 248.000000, 282.000000, 0.000000 -7944, -3.000000, 248.000000, 282.000000, 0.000000 -7945, -3.000000, 248.000000, 282.000000, 0.000000 -7946, -3.000000, 248.000000, 282.000000, 0.000000 -7947, -3.000000, 248.000000, 282.000000, 0.000000 -7948, -3.000000, 248.000000, 282.000000, 0.000000 -7949, -3.000000, 248.000000, 282.000000, 0.000000 -7950, -3.000000, 248.000000, 282.000000, 0.000000 -7951, -3.000000, 248.000000, 282.000000, 0.000000 -7952, -3.000000, 248.000000, 282.000000, 0.000000 -7953, -3.000000, 248.000000, 282.000000, 0.000000 -7954, -3.000000, 248.000000, 282.000000, 0.000000 -7955, -3.000000, 248.000000, 282.000000, 0.000000 -7956, -3.000000, 248.000000, 282.000000, 0.000000 -7957, -3.000000, 248.000000, 282.000000, 0.000000 -7958, -3.000000, 248.000000, 282.000000, 0.000000 -7959, -3.000000, 248.000000, 282.000000, 0.000000 -7960, -3.000000, 248.000000, 282.000000, 0.000000 -7961, -3.000000, 248.000000, 282.000000, 0.000000 -7962, -3.000000, 248.000000, 282.000000, 0.000000 -7963, -3.000000, 248.000000, 282.000000, 0.000000 -7964, -3.000000, 248.000000, 282.000000, 0.000000 -7965, -3.000000, 248.000000, 282.000000, 0.000000 -7966, -3.000000, 248.000000, 282.000000, 0.000000 -7967, -3.000000, 248.000000, 282.000000, 0.000000 -7968, -3.000000, 248.000000, 282.000000, 0.000000 -7969, -3.000000, 248.000000, 282.000000, 0.000000 -7970, -3.000000, 248.000000, 282.000000, 0.000000 -7971, -3.000000, 248.000000, 282.000000, 0.000000 -7972, -3.000000, 248.000000, 282.000000, 0.000000 -7973, -3.000000, 248.000000, 282.000000, 0.000000 -7974, -3.000000, 248.000000, 282.000000, 0.000000 -7975, -3.000000, 248.000000, 282.000000, 0.000000 -7976, -3.000000, 248.000000, 282.000000, 0.000000 -7977, -3.000000, 248.000000, 282.000000, 0.000000 -7978, -3.000000, 248.000000, 282.000000, 0.000000 -7979, -3.000000, 248.000000, 282.000000, 0.000000 -7980, -3.000000, 248.000000, 282.000000, 0.000000 -7981, -3.000000, 248.000000, 282.000000, 0.000000 -7982, -3.000000, 248.000000, 282.000000, 0.000000 -7983, -3.000000, 248.000000, 282.000000, 0.000000 -7984, -3.000000, 248.000000, 282.000000, 0.000000 -7985, -3.000000, 248.000000, 282.000000, 0.000000 -7986, -3.000000, 248.000000, 282.000000, 0.000000 -7987, -3.000000, 248.000000, 282.000000, 0.000000 -7988, -3.000000, 248.000000, 282.000000, 0.000000 -7989, -3.000000, 248.000000, 282.000000, 0.000000 -7990, -3.000000, 248.000000, 282.000000, 0.000000 -7991, -3.000000, 248.000000, 282.000000, 0.000000 -7992, -3.000000, 248.000000, 282.000000, 0.000000 -7993, -3.000000, 248.000000, 282.000000, 0.000000 -7994, -3.000000, 248.000000, 282.000000, 0.000000 -7995, -3.000000, 248.000000, 282.000000, 0.000000 -7996, -3.000000, 248.000000, 282.000000, 0.000000 -7997, -3.000000, 248.000000, 282.000000, 0.000000 -7998, -3.000000, 248.000000, 282.000000, 0.000000 -7999, -3.000000, 248.000000, 282.000000, 0.000000 -8000, -3.000000, 250.000000, 285.000000, 0.000000 -8001, -3.000000, 250.000000, 285.000000, 0.000000 -8002, -3.000000, 250.000000, 285.000000, 0.000000 -8003, -3.000000, 250.000000, 285.000000, 0.000000 -8004, -3.000000, 250.000000, 285.000000, 0.000000 -8005, -3.000000, 250.000000, 285.000000, 0.000000 -8006, -3.000000, 250.000000, 285.000000, 0.000000 -8007, -3.000000, 250.000000, 285.000000, 0.000000 -8008, -3.000000, 250.000000, 285.000000, 0.000000 -8009, -3.000000, 250.000000, 285.000000, 0.000000 -8010, -3.000000, 250.000000, 285.000000, 0.000000 -8011, -3.000000, 250.000000, 285.000000, 0.000000 -8012, -3.000000, 250.000000, 285.000000, 0.000000 -8013, -3.000000, 250.000000, 285.000000, 0.000000 -8014, -3.000000, 250.000000, 285.000000, 0.000000 -8015, -3.000000, 250.000000, 285.000000, 0.000000 -8016, -3.000000, 250.000000, 285.000000, 0.000000 -8017, -3.000000, 250.000000, 285.000000, 0.000000 -8018, -3.000000, 250.000000, 285.000000, 0.000000 -8019, -3.000000, 250.000000, 285.000000, 0.000000 -8020, -3.000000, 250.000000, 285.000000, 0.000000 -8021, -3.000000, 250.000000, 285.000000, 0.000000 -8022, -3.000000, 250.000000, 285.000000, 0.000000 -8023, -3.000000, 250.000000, 285.000000, 0.000000 -8024, -3.000000, 250.000000, 285.000000, 0.000000 -8025, -3.000000, 250.000000, 285.000000, 0.000000 -8026, -3.000000, 250.000000, 285.000000, 0.000000 -8027, -3.000000, 250.000000, 285.000000, 0.000000 -8028, -3.000000, 250.000000, 285.000000, 0.000000 -8029, -3.000000, 250.000000, 285.000000, 0.000000 -8030, -3.000000, 250.000000, 285.000000, 0.000000 -8031, -3.000000, 250.000000, 285.000000, 0.000000 -8032, -3.000000, 250.000000, 285.000000, 0.000000 -8033, -3.000000, 250.000000, 285.000000, 0.000000 -8034, -3.000000, 250.000000, 285.000000, 0.000000 -8035, -3.000000, 250.000000, 285.000000, 0.000000 -8036, -3.000000, 250.000000, 285.000000, 0.000000 -8037, -3.000000, 250.000000, 285.000000, 0.000000 -8038, -3.000000, 250.000000, 285.000000, 0.000000 -8039, -3.000000, 250.000000, 285.000000, 0.000000 -8040, -3.000000, 250.000000, 285.000000, 0.000000 -8041, -3.000000, 250.000000, 285.000000, 0.000000 -8042, -3.000000, 250.000000, 285.000000, 0.000000 -8043, -3.000000, 250.000000, 285.000000, 0.000000 -8044, -3.000000, 250.000000, 285.000000, 0.000000 -8045, -3.000000, 250.000000, 285.000000, 0.000000 -8046, -3.000000, 250.000000, 285.000000, 0.000000 -8047, -3.000000, 250.000000, 285.000000, 0.000000 -8048, -3.000000, 250.000000, 285.000000, 0.000000 -8049, -3.000000, 250.000000, 285.000000, 0.000000 -8050, -3.000000, 250.000000, 285.000000, 0.000000 -8051, -3.000000, 250.000000, 285.000000, 0.000000 -8052, -3.000000, 250.000000, 285.000000, 0.000000 -8053, -3.000000, 250.000000, 285.000000, 0.000000 -8054, -3.000000, 250.000000, 285.000000, 0.000000 -8055, -3.000000, 250.000000, 285.000000, 0.000000 -8056, -3.000000, 250.000000, 285.000000, 0.000000 -8057, -3.000000, 250.000000, 285.000000, 0.000000 -8058, -3.000000, 250.000000, 285.000000, 0.000000 -8059, -3.000000, 250.000000, 285.000000, 0.000000 -8060, -3.000000, 250.000000, 285.000000, 0.000000 -8061, -3.000000, 250.000000, 285.000000, 0.000000 -8062, -3.000000, 250.000000, 285.000000, 0.000000 -8063, -3.000000, 250.000000, 285.000000, 0.000000 -8064, -3.000000, 250.000000, 285.000000, 0.000000 -8065, -3.000000, 250.000000, 285.000000, 0.000000 -8066, -3.000000, 250.000000, 285.000000, 0.000000 -8067, -3.000000, 250.000000, 285.000000, 0.000000 -8068, -3.000000, 250.000000, 285.000000, 0.000000 -8069, -3.000000, 250.000000, 285.000000, 0.000000 -8070, -3.000000, 250.000000, 285.000000, 0.000000 -8071, -3.000000, 250.000000, 285.000000, 0.000000 -8072, -3.000000, 250.000000, 285.000000, 0.000000 -8073, -3.000000, 250.000000, 285.000000, 0.000000 -8074, -3.000000, 250.000000, 285.000000, 0.000000 -8075, -3.000000, 250.000000, 285.000000, 0.000000 -8076, -3.000000, 250.000000, 285.000000, 0.000000 -8077, -3.000000, 250.000000, 285.000000, 0.000000 -8078, -3.000000, 250.000000, 285.000000, 0.000000 -8079, -3.000000, 250.000000, 285.000000, 0.000000 -8080, -3.000000, 250.000000, 285.000000, 0.000000 -8081, -3.000000, 250.000000, 285.000000, 0.000000 -8082, -3.000000, 250.000000, 285.000000, 0.000000 -8083, -3.000000, 250.000000, 285.000000, 0.000000 -8084, -3.000000, 250.000000, 285.000000, 0.000000 -8085, -3.000000, 250.000000, 285.000000, 0.000000 -8086, -3.000000, 250.000000, 285.000000, 0.000000 -8087, -3.000000, 250.000000, 285.000000, 0.000000 -8088, -3.000000, 250.000000, 285.000000, 0.000000 -8089, -3.000000, 250.000000, 285.000000, 0.000000 -8090, -3.000000, 250.000000, 285.000000, 0.000000 -8091, -3.000000, 250.000000, 285.000000, 0.000000 -8092, -3.000000, 250.000000, 285.000000, 0.000000 -8093, -3.000000, 250.000000, 285.000000, 0.000000 -8094, -3.000000, 250.000000, 285.000000, 0.000000 -8095, -3.000000, 250.000000, 285.000000, 0.000000 -8096, -3.000000, 250.000000, 285.000000, 0.000000 -8097, -3.000000, 250.000000, 285.000000, 0.000000 -8098, -3.000000, 250.000000, 285.000000, 0.000000 -8099, -3.000000, 250.000000, 285.000000, 0.000000 -8100, -3.000000, 252.000000, 288.000000, 0.000000 -8101, -3.000000, 252.000000, 288.000000, 0.000000 -8102, -3.000000, 252.000000, 288.000000, 0.000000 -8103, -3.000000, 252.000000, 288.000000, 0.000000 -8104, -3.000000, 252.000000, 288.000000, 0.000000 -8105, -3.000000, 252.000000, 288.000000, 0.000000 -8106, -3.000000, 252.000000, 288.000000, 0.000000 -8107, -3.000000, 252.000000, 288.000000, 0.000000 -8108, -3.000000, 252.000000, 288.000000, 0.000000 -8109, -3.000000, 252.000000, 288.000000, 0.000000 -8110, -3.000000, 252.000000, 288.000000, 0.000000 -8111, -3.000000, 252.000000, 288.000000, 0.000000 -8112, -3.000000, 252.000000, 288.000000, 0.000000 -8113, -3.000000, 252.000000, 288.000000, 0.000000 -8114, -3.000000, 252.000000, 288.000000, 0.000000 -8115, -3.000000, 252.000000, 288.000000, 0.000000 -8116, -3.000000, 252.000000, 288.000000, 0.000000 -8117, -3.000000, 252.000000, 288.000000, 0.000000 -8118, -3.000000, 252.000000, 288.000000, 0.000000 -8119, -3.000000, 252.000000, 288.000000, 0.000000 -8120, -3.000000, 252.000000, 288.000000, 0.000000 -8121, -3.000000, 252.000000, 288.000000, 0.000000 -8122, -3.000000, 252.000000, 288.000000, 0.000000 -8123, -3.000000, 252.000000, 288.000000, 0.000000 -8124, -3.000000, 252.000000, 288.000000, 0.000000 -8125, -3.000000, 252.000000, 288.000000, 0.000000 -8126, -3.000000, 252.000000, 288.000000, 0.000000 -8127, -3.000000, 252.000000, 288.000000, 0.000000 -8128, -3.000000, 252.000000, 288.000000, 0.000000 -8129, -3.000000, 252.000000, 288.000000, 0.000000 -8130, -3.000000, 252.000000, 288.000000, 0.000000 -8131, -3.000000, 252.000000, 288.000000, 0.000000 -8132, -3.000000, 252.000000, 288.000000, 0.000000 -8133, -3.000000, 252.000000, 288.000000, 0.000000 -8134, -3.000000, 252.000000, 288.000000, 0.000000 -8135, -3.000000, 252.000000, 288.000000, 0.000000 -8136, -3.000000, 252.000000, 288.000000, 0.000000 -8137, -3.000000, 252.000000, 288.000000, 0.000000 -8138, -3.000000, 252.000000, 288.000000, 0.000000 -8139, -3.000000, 252.000000, 288.000000, 0.000000 -8140, -3.000000, 252.000000, 288.000000, 0.000000 -8141, -3.000000, 252.000000, 288.000000, 0.000000 -8142, -3.000000, 252.000000, 288.000000, 0.000000 -8143, -3.000000, 252.000000, 288.000000, 0.000000 -8144, -3.000000, 252.000000, 288.000000, 0.000000 -8145, -3.000000, 252.000000, 288.000000, 0.000000 -8146, -3.000000, 252.000000, 288.000000, 0.000000 -8147, -3.000000, 252.000000, 288.000000, 0.000000 -8148, -3.000000, 252.000000, 288.000000, 0.000000 -8149, -3.000000, 252.000000, 288.000000, 0.000000 -8150, -3.000000, 252.000000, 288.000000, 0.000000 -8151, -3.000000, 252.000000, 288.000000, 0.000000 -8152, -3.000000, 252.000000, 288.000000, 0.000000 -8153, -3.000000, 252.000000, 288.000000, 0.000000 -8154, -3.000000, 252.000000, 288.000000, 0.000000 -8155, -3.000000, 252.000000, 288.000000, 0.000000 -8156, -3.000000, 252.000000, 288.000000, 0.000000 -8157, -3.000000, 252.000000, 288.000000, 0.000000 -8158, -3.000000, 252.000000, 288.000000, 0.000000 -8159, -3.000000, 252.000000, 288.000000, 0.000000 -8160, -3.000000, 252.000000, 288.000000, 0.000000 -8161, -3.000000, 252.000000, 288.000000, 0.000000 -8162, -3.000000, 252.000000, 288.000000, 0.000000 -8163, -3.000000, 252.000000, 288.000000, 0.000000 -8164, -3.000000, 252.000000, 288.000000, 0.000000 -8165, -3.000000, 252.000000, 288.000000, 0.000000 -8166, -3.000000, 252.000000, 288.000000, 0.000000 -8167, -3.000000, 252.000000, 288.000000, 0.000000 -8168, -3.000000, 252.000000, 288.000000, 0.000000 -8169, -3.000000, 252.000000, 288.000000, 0.000000 -8170, -3.000000, 252.000000, 288.000000, 0.000000 -8171, -3.000000, 252.000000, 288.000000, 0.000000 -8172, -3.000000, 252.000000, 288.000000, 0.000000 -8173, -3.000000, 252.000000, 288.000000, 0.000000 -8174, -3.000000, 252.000000, 288.000000, 0.000000 -8175, -3.000000, 252.000000, 288.000000, 0.000000 -8176, -3.000000, 252.000000, 288.000000, 0.000000 -8177, -3.000000, 252.000000, 288.000000, 0.000000 -8178, -3.000000, 252.000000, 288.000000, 0.000000 -8179, -3.000000, 252.000000, 288.000000, 0.000000 -8180, -3.000000, 252.000000, 288.000000, 0.000000 -8181, -3.000000, 252.000000, 288.000000, 0.000000 -8182, -3.000000, 252.000000, 288.000000, 0.000000 -8183, -3.000000, 252.000000, 288.000000, 0.000000 -8184, -3.000000, 252.000000, 288.000000, 0.000000 -8185, -3.000000, 252.000000, 288.000000, 0.000000 -8186, -3.000000, 252.000000, 288.000000, 0.000000 -8187, -3.000000, 252.000000, 288.000000, 0.000000 -8188, -3.000000, 252.000000, 288.000000, 0.000000 -8189, -3.000000, 252.000000, 288.000000, 0.000000 -8190, -3.000000, 252.000000, 288.000000, 0.000000 -8191, -3.000000, 252.000000, 288.000000, 0.000000 -8192, -3.000000, 252.000000, 288.000000, 0.000000 -8193, -3.000000, 252.000000, 288.000000, 0.000000 -8194, -3.000000, 252.000000, 288.000000, 0.000000 -8195, -3.000000, 252.000000, 288.000000, 0.000000 -8196, -3.000000, 252.000000, 288.000000, 0.000000 -8197, -3.000000, 252.000000, 288.000000, 0.000000 -8198, -3.000000, 252.000000, 288.000000, 0.000000 -8199, -3.000000, 252.000000, 288.000000, 0.000000 -8200, -3.000000, 254.000000, 291.000000, 0.000000 -8201, -3.000000, 254.000000, 291.000000, 0.000000 -8202, -3.000000, 254.000000, 291.000000, 0.000000 -8203, -3.000000, 254.000000, 291.000000, 0.000000 -8204, -3.000000, 254.000000, 291.000000, 0.000000 -8205, -3.000000, 254.000000, 291.000000, 0.000000 -8206, -3.000000, 254.000000, 291.000000, 0.000000 -8207, -3.000000, 254.000000, 291.000000, 0.000000 -8208, -3.000000, 254.000000, 291.000000, 0.000000 -8209, -3.000000, 254.000000, 291.000000, 0.000000 -8210, -3.000000, 254.000000, 291.000000, 0.000000 -8211, -3.000000, 254.000000, 291.000000, 0.000000 -8212, -3.000000, 254.000000, 291.000000, 0.000000 -8213, -3.000000, 254.000000, 291.000000, 0.000000 -8214, -3.000000, 254.000000, 291.000000, 0.000000 -8215, -3.000000, 254.000000, 291.000000, 0.000000 -8216, -3.000000, 254.000000, 291.000000, 0.000000 -8217, -3.000000, 254.000000, 291.000000, 0.000000 -8218, -3.000000, 254.000000, 291.000000, 0.000000 -8219, -3.000000, 254.000000, 291.000000, 0.000000 -8220, -3.000000, 254.000000, 291.000000, 0.000000 -8221, -3.000000, 254.000000, 291.000000, 0.000000 -8222, -3.000000, 254.000000, 291.000000, 0.000000 -8223, -3.000000, 254.000000, 291.000000, 0.000000 -8224, -3.000000, 254.000000, 291.000000, 0.000000 -8225, -3.000000, 254.000000, 291.000000, 0.000000 -8226, -3.000000, 254.000000, 291.000000, 0.000000 -8227, -3.000000, 254.000000, 291.000000, 0.000000 -8228, -3.000000, 254.000000, 291.000000, 0.000000 -8229, -3.000000, 254.000000, 291.000000, 0.000000 -8230, -3.000000, 254.000000, 291.000000, 0.000000 -8231, -3.000000, 254.000000, 291.000000, 0.000000 -8232, -3.000000, 254.000000, 291.000000, 0.000000 -8233, -3.000000, 254.000000, 291.000000, 0.000000 -8234, -3.000000, 254.000000, 291.000000, 0.000000 -8235, -3.000000, 254.000000, 291.000000, 0.000000 -8236, -3.000000, 254.000000, 291.000000, 0.000000 -8237, -3.000000, 254.000000, 291.000000, 0.000000 -8238, -3.000000, 254.000000, 291.000000, 0.000000 -8239, -3.000000, 254.000000, 291.000000, 0.000000 -8240, -3.000000, 254.000000, 291.000000, 0.000000 -8241, -3.000000, 254.000000, 291.000000, 0.000000 -8242, -3.000000, 254.000000, 291.000000, 0.000000 -8243, -3.000000, 254.000000, 291.000000, 0.000000 -8244, -3.000000, 254.000000, 291.000000, 0.000000 -8245, -3.000000, 254.000000, 291.000000, 0.000000 -8246, -3.000000, 254.000000, 291.000000, 0.000000 -8247, -3.000000, 254.000000, 291.000000, 0.000000 -8248, -3.000000, 254.000000, 291.000000, 0.000000 -8249, -3.000000, 254.000000, 291.000000, 0.000000 -8250, -3.000000, 254.000000, 291.000000, 0.000000 -8251, -3.000000, 254.000000, 291.000000, 0.000000 -8252, -3.000000, 254.000000, 291.000000, 0.000000 -8253, -3.000000, 254.000000, 291.000000, 0.000000 -8254, -3.000000, 254.000000, 291.000000, 0.000000 -8255, -3.000000, 254.000000, 291.000000, 0.000000 -8256, -3.000000, 254.000000, 291.000000, 0.000000 -8257, -3.000000, 254.000000, 291.000000, 0.000000 -8258, -3.000000, 254.000000, 291.000000, 0.000000 -8259, -3.000000, 254.000000, 291.000000, 0.000000 -8260, -3.000000, 254.000000, 291.000000, 0.000000 -8261, -3.000000, 254.000000, 291.000000, 0.000000 -8262, -3.000000, 254.000000, 291.000000, 0.000000 -8263, -3.000000, 254.000000, 291.000000, 0.000000 -8264, -3.000000, 254.000000, 291.000000, 0.000000 -8265, -3.000000, 254.000000, 291.000000, 0.000000 -8266, -3.000000, 254.000000, 291.000000, 0.000000 -8267, -3.000000, 254.000000, 291.000000, 0.000000 -8268, -3.000000, 254.000000, 291.000000, 0.000000 -8269, -3.000000, 254.000000, 291.000000, 0.000000 -8270, -3.000000, 254.000000, 291.000000, 0.000000 -8271, -3.000000, 254.000000, 291.000000, 0.000000 -8272, -3.000000, 254.000000, 291.000000, 0.000000 -8273, -3.000000, 254.000000, 291.000000, 0.000000 -8274, -3.000000, 254.000000, 291.000000, 0.000000 -8275, -3.000000, 254.000000, 291.000000, 0.000000 -8276, -3.000000, 254.000000, 291.000000, 0.000000 -8277, -3.000000, 254.000000, 291.000000, 0.000000 -8278, -3.000000, 254.000000, 291.000000, 0.000000 -8279, -3.000000, 254.000000, 291.000000, 0.000000 -8280, -3.000000, 254.000000, 291.000000, 0.000000 -8281, -3.000000, 254.000000, 291.000000, 0.000000 -8282, -3.000000, 254.000000, 291.000000, 0.000000 -8283, -3.000000, 254.000000, 291.000000, 0.000000 -8284, -3.000000, 254.000000, 291.000000, 0.000000 -8285, -3.000000, 254.000000, 291.000000, 0.000000 -8286, -3.000000, 254.000000, 291.000000, 0.000000 -8287, -3.000000, 254.000000, 291.000000, 0.000000 -8288, -3.000000, 254.000000, 291.000000, 0.000000 -8289, -3.000000, 254.000000, 291.000000, 0.000000 -8290, -3.000000, 254.000000, 291.000000, 0.000000 -8291, -3.000000, 254.000000, 291.000000, 0.000000 -8292, -3.000000, 254.000000, 291.000000, 0.000000 -8293, -3.000000, 254.000000, 291.000000, 0.000000 -8294, -3.000000, 254.000000, 291.000000, 0.000000 -8295, -3.000000, 254.000000, 291.000000, 0.000000 -8296, -3.000000, 254.000000, 291.000000, 0.000000 -8297, -3.000000, 254.000000, 291.000000, 0.000000 -8298, -3.000000, 254.000000, 291.000000, 0.000000 -8299, -3.000000, 254.000000, 291.000000, 0.000000 -8300, -3.000000, 256.000000, 294.000000, 0.000000 -8301, -3.000000, 256.000000, 294.000000, 0.000000 -8302, -3.000000, 256.000000, 294.000000, 0.000000 -8303, -3.000000, 256.000000, 294.000000, 0.000000 -8304, -3.000000, 256.000000, 294.000000, 0.000000 -8305, -3.000000, 256.000000, 294.000000, 0.000000 -8306, -3.000000, 256.000000, 294.000000, 0.000000 -8307, -3.000000, 256.000000, 294.000000, 0.000000 -8308, -3.000000, 256.000000, 294.000000, 0.000000 -8309, -3.000000, 256.000000, 294.000000, 0.000000 -8310, -3.000000, 256.000000, 294.000000, 0.000000 -8311, -3.000000, 256.000000, 294.000000, 0.000000 -8312, -3.000000, 256.000000, 294.000000, 0.000000 -8313, -3.000000, 256.000000, 294.000000, 0.000000 -8314, -3.000000, 256.000000, 294.000000, 0.000000 -8315, -3.000000, 256.000000, 294.000000, 0.000000 -8316, -3.000000, 256.000000, 294.000000, 0.000000 -8317, -3.000000, 256.000000, 294.000000, 0.000000 -8318, -3.000000, 256.000000, 294.000000, 0.000000 -8319, -3.000000, 256.000000, 294.000000, 0.000000 -8320, -3.000000, 256.000000, 294.000000, 0.000000 -8321, -3.000000, 256.000000, 294.000000, 0.000000 -8322, -3.000000, 256.000000, 294.000000, 0.000000 -8323, -3.000000, 256.000000, 294.000000, 0.000000 -8324, -3.000000, 256.000000, 294.000000, 0.000000 -8325, -3.000000, 256.000000, 294.000000, 0.000000 -8326, -3.000000, 256.000000, 294.000000, 0.000000 -8327, -3.000000, 256.000000, 294.000000, 0.000000 -8328, -3.000000, 256.000000, 294.000000, 0.000000 -8329, -3.000000, 256.000000, 294.000000, 0.000000 -8330, -3.000000, 256.000000, 294.000000, 0.000000 -8331, -3.000000, 256.000000, 294.000000, 0.000000 -8332, -3.000000, 256.000000, 294.000000, 0.000000 -8333, -3.000000, 256.000000, 294.000000, 0.000000 -8334, -3.000000, 256.000000, 294.000000, 0.000000 -8335, -3.000000, 256.000000, 294.000000, 0.000000 -8336, -3.000000, 256.000000, 294.000000, 0.000000 -8337, -3.000000, 256.000000, 294.000000, 0.000000 -8338, -3.000000, 256.000000, 294.000000, 0.000000 -8339, -3.000000, 256.000000, 294.000000, 0.000000 -8340, -3.000000, 256.000000, 294.000000, 0.000000 -8341, -3.000000, 256.000000, 294.000000, 0.000000 -8342, -3.000000, 256.000000, 294.000000, 0.000000 -8343, -3.000000, 256.000000, 294.000000, 0.000000 -8344, -3.000000, 256.000000, 294.000000, 0.000000 -8345, -3.000000, 256.000000, 294.000000, 0.000000 -8346, -3.000000, 256.000000, 294.000000, 0.000000 -8347, -3.000000, 256.000000, 294.000000, 0.000000 -8348, -3.000000, 256.000000, 294.000000, 0.000000 -8349, -3.000000, 256.000000, 294.000000, 0.000000 -8350, -3.000000, 256.000000, 294.000000, 0.000000 -8351, -3.000000, 256.000000, 294.000000, 0.000000 -8352, -3.000000, 256.000000, 294.000000, 0.000000 -8353, -3.000000, 256.000000, 294.000000, 0.000000 -8354, -3.000000, 256.000000, 294.000000, 0.000000 -8355, -3.000000, 256.000000, 294.000000, 0.000000 -8356, -3.000000, 256.000000, 294.000000, 0.000000 -8357, -3.000000, 256.000000, 294.000000, 0.000000 -8358, -3.000000, 256.000000, 294.000000, 0.000000 -8359, -3.000000, 256.000000, 294.000000, 0.000000 -8360, -3.000000, 256.000000, 294.000000, 0.000000 -8361, -3.000000, 256.000000, 294.000000, 0.000000 -8362, -3.000000, 256.000000, 294.000000, 0.000000 -8363, -3.000000, 256.000000, 294.000000, 0.000000 -8364, -3.000000, 256.000000, 294.000000, 0.000000 -8365, -3.000000, 256.000000, 294.000000, 0.000000 -8366, -3.000000, 256.000000, 294.000000, 0.000000 -8367, -3.000000, 256.000000, 294.000000, 0.000000 -8368, -3.000000, 256.000000, 294.000000, 0.000000 -8369, -3.000000, 256.000000, 294.000000, 0.000000 -8370, -3.000000, 256.000000, 294.000000, 0.000000 -8371, -3.000000, 256.000000, 294.000000, 0.000000 -8372, -3.000000, 256.000000, 294.000000, 0.000000 -8373, -3.000000, 256.000000, 294.000000, 0.000000 -8374, -3.000000, 256.000000, 294.000000, 0.000000 -8375, -3.000000, 256.000000, 294.000000, 0.000000 -8376, -3.000000, 256.000000, 294.000000, 0.000000 -8377, -3.000000, 256.000000, 294.000000, 0.000000 -8378, -3.000000, 256.000000, 294.000000, 0.000000 -8379, -3.000000, 256.000000, 294.000000, 0.000000 -8380, -3.000000, 256.000000, 294.000000, 0.000000 -8381, -3.000000, 256.000000, 294.000000, 0.000000 -8382, -3.000000, 256.000000, 294.000000, 0.000000 -8383, -3.000000, 256.000000, 294.000000, 0.000000 -8384, -3.000000, 256.000000, 294.000000, 0.000000 -8385, -3.000000, 256.000000, 294.000000, 0.000000 -8386, -3.000000, 256.000000, 294.000000, 0.000000 -8387, -3.000000, 256.000000, 294.000000, 0.000000 -8388, -3.000000, 256.000000, 294.000000, 0.000000 -8389, -3.000000, 256.000000, 294.000000, 0.000000 -8390, -3.000000, 256.000000, 294.000000, 0.000000 -8391, -3.000000, 256.000000, 294.000000, 0.000000 -8392, -3.000000, 256.000000, 294.000000, 0.000000 -8393, -3.000000, 256.000000, 294.000000, 0.000000 -8394, -3.000000, 256.000000, 294.000000, 0.000000 -8395, -3.000000, 256.000000, 294.000000, 0.000000 -8396, -3.000000, 256.000000, 294.000000, 0.000000 -8397, -3.000000, 256.000000, 294.000000, 0.000000 -8398, -3.000000, 256.000000, 294.000000, 0.000000 -8399, -3.000000, 256.000000, 294.000000, 0.000000 -8400, -3.000000, 258.000000, 297.000000, 0.000000 -8401, -3.000000, 258.000000, 297.000000, 0.000000 -8402, -3.000000, 258.000000, 297.000000, 0.000000 -8403, -3.000000, 258.000000, 297.000000, 0.000000 -8404, -3.000000, 258.000000, 297.000000, 0.000000 -8405, -3.000000, 258.000000, 297.000000, 0.000000 -8406, -3.000000, 258.000000, 297.000000, 0.000000 -8407, -3.000000, 258.000000, 297.000000, 0.000000 -8408, -3.000000, 258.000000, 297.000000, 0.000000 -8409, -3.000000, 258.000000, 297.000000, 0.000000 -8410, -3.000000, 258.000000, 297.000000, 0.000000 -8411, -3.000000, 258.000000, 297.000000, 0.000000 -8412, -3.000000, 258.000000, 297.000000, 0.000000 -8413, -3.000000, 258.000000, 297.000000, 0.000000 -8414, -3.000000, 258.000000, 297.000000, 0.000000 -8415, -3.000000, 258.000000, 297.000000, 0.000000 -8416, -3.000000, 258.000000, 297.000000, 0.000000 -8417, -3.000000, 258.000000, 297.000000, 0.000000 -8418, -3.000000, 258.000000, 297.000000, 0.000000 -8419, -3.000000, 258.000000, 297.000000, 0.000000 -8420, -3.000000, 258.000000, 297.000000, 0.000000 -8421, -3.000000, 258.000000, 297.000000, 0.000000 -8422, -3.000000, 258.000000, 297.000000, 0.000000 -8423, -3.000000, 258.000000, 297.000000, 0.000000 -8424, -3.000000, 258.000000, 297.000000, 0.000000 -8425, -3.000000, 258.000000, 297.000000, 0.000000 -8426, -3.000000, 258.000000, 297.000000, 0.000000 -8427, -3.000000, 258.000000, 297.000000, 0.000000 -8428, -3.000000, 258.000000, 297.000000, 0.000000 -8429, -3.000000, 258.000000, 297.000000, 0.000000 -8430, -3.000000, 258.000000, 297.000000, 0.000000 -8431, -3.000000, 258.000000, 297.000000, 0.000000 -8432, -3.000000, 258.000000, 297.000000, 0.000000 -8433, -3.000000, 258.000000, 297.000000, 0.000000 -8434, -3.000000, 258.000000, 297.000000, 0.000000 -8435, -3.000000, 258.000000, 297.000000, 0.000000 -8436, -3.000000, 258.000000, 297.000000, 0.000000 -8437, -3.000000, 258.000000, 297.000000, 0.000000 -8438, -3.000000, 258.000000, 297.000000, 0.000000 -8439, -3.000000, 258.000000, 297.000000, 0.000000 -8440, -3.000000, 258.000000, 297.000000, 0.000000 -8441, -3.000000, 258.000000, 297.000000, 0.000000 -8442, -3.000000, 258.000000, 297.000000, 0.000000 -8443, -3.000000, 258.000000, 297.000000, 0.000000 -8444, -3.000000, 258.000000, 297.000000, 0.000000 -8445, -3.000000, 258.000000, 297.000000, 0.000000 -8446, -3.000000, 258.000000, 297.000000, 0.000000 -8447, -3.000000, 258.000000, 297.000000, 0.000000 -8448, -3.000000, 258.000000, 297.000000, 0.000000 -8449, -3.000000, 258.000000, 297.000000, 0.000000 -8450, -3.000000, 258.000000, 297.000000, 0.000000 -8451, -3.000000, 258.000000, 297.000000, 0.000000 -8452, -3.000000, 258.000000, 297.000000, 0.000000 -8453, -3.000000, 258.000000, 297.000000, 0.000000 -8454, -3.000000, 258.000000, 297.000000, 0.000000 -8455, -3.000000, 258.000000, 297.000000, 0.000000 -8456, -3.000000, 258.000000, 297.000000, 0.000000 -8457, -3.000000, 258.000000, 297.000000, 0.000000 -8458, -3.000000, 258.000000, 297.000000, 0.000000 -8459, -3.000000, 258.000000, 297.000000, 0.000000 -8460, -3.000000, 258.000000, 297.000000, 0.000000 -8461, -3.000000, 258.000000, 297.000000, 0.000000 -8462, -3.000000, 258.000000, 297.000000, 0.000000 -8463, -3.000000, 258.000000, 297.000000, 0.000000 -8464, -3.000000, 258.000000, 297.000000, 0.000000 -8465, -3.000000, 258.000000, 297.000000, 0.000000 -8466, -3.000000, 258.000000, 297.000000, 0.000000 -8467, -3.000000, 258.000000, 297.000000, 0.000000 -8468, -3.000000, 258.000000, 297.000000, 0.000000 -8469, -3.000000, 258.000000, 297.000000, 0.000000 -8470, -3.000000, 258.000000, 297.000000, 0.000000 -8471, -3.000000, 258.000000, 297.000000, 0.000000 -8472, -3.000000, 258.000000, 297.000000, 0.000000 -8473, -3.000000, 258.000000, 297.000000, 0.000000 -8474, -3.000000, 258.000000, 297.000000, 0.000000 -8475, -3.000000, 258.000000, 297.000000, 0.000000 -8476, -3.000000, 258.000000, 297.000000, 0.000000 -8477, -3.000000, 258.000000, 297.000000, 0.000000 -8478, -3.000000, 258.000000, 297.000000, 0.000000 -8479, -3.000000, 258.000000, 297.000000, 0.000000 -8480, -3.000000, 258.000000, 297.000000, 0.000000 -8481, -3.000000, 258.000000, 297.000000, 0.000000 -8482, -3.000000, 258.000000, 297.000000, 0.000000 -8483, -3.000000, 258.000000, 297.000000, 0.000000 -8484, -3.000000, 258.000000, 297.000000, 0.000000 -8485, -3.000000, 258.000000, 297.000000, 0.000000 -8486, -3.000000, 258.000000, 297.000000, 0.000000 -8487, -3.000000, 258.000000, 297.000000, 0.000000 -8488, -3.000000, 258.000000, 297.000000, 0.000000 -8489, -3.000000, 258.000000, 297.000000, 0.000000 -8490, -3.000000, 258.000000, 297.000000, 0.000000 -8491, -3.000000, 258.000000, 297.000000, 0.000000 -8492, -3.000000, 258.000000, 297.000000, 0.000000 -8493, -3.000000, 258.000000, 297.000000, 0.000000 -8494, -3.000000, 258.000000, 297.000000, 0.000000 -8495, -3.000000, 258.000000, 297.000000, 0.000000 -8496, -3.000000, 258.000000, 297.000000, 0.000000 -8497, -3.000000, 258.000000, 297.000000, 0.000000 -8498, -3.000000, 258.000000, 297.000000, 0.000000 -8499, -3.000000, 258.000000, 297.000000, 0.000000 -8500, -3.000000, 260.000000, 300.000000, 0.000000 -8501, -3.000000, 260.000000, 300.000000, 0.000000 -8502, -3.000000, 260.000000, 300.000000, 0.000000 -8503, -3.000000, 260.000000, 300.000000, 0.000000 -8504, -3.000000, 260.000000, 300.000000, 0.000000 -8505, -3.000000, 260.000000, 300.000000, 0.000000 -8506, -3.000000, 260.000000, 300.000000, 0.000000 -8507, -3.000000, 260.000000, 300.000000, 0.000000 -8508, -3.000000, 260.000000, 300.000000, 0.000000 -8509, -3.000000, 260.000000, 300.000000, 0.000000 -8510, -3.000000, 260.000000, 300.000000, 0.000000 -8511, -3.000000, 260.000000, 300.000000, 0.000000 -8512, -3.000000, 260.000000, 300.000000, 0.000000 -8513, -3.000000, 260.000000, 300.000000, 0.000000 -8514, -3.000000, 260.000000, 300.000000, 0.000000 -8515, -3.000000, 260.000000, 300.000000, 0.000000 -8516, -3.000000, 260.000000, 300.000000, 0.000000 -8517, -3.000000, 260.000000, 300.000000, 0.000000 -8518, -3.000000, 260.000000, 300.000000, 0.000000 -8519, -3.000000, 260.000000, 300.000000, 0.000000 -8520, -3.000000, 260.000000, 300.000000, 0.000000 -8521, -3.000000, 260.000000, 300.000000, 0.000000 -8522, -3.000000, 260.000000, 300.000000, 0.000000 -8523, -3.000000, 260.000000, 300.000000, 0.000000 -8524, -3.000000, 260.000000, 300.000000, 0.000000 -8525, -3.000000, 260.000000, 300.000000, 0.000000 -8526, -3.000000, 260.000000, 300.000000, 0.000000 -8527, -3.000000, 260.000000, 300.000000, 0.000000 -8528, -3.000000, 260.000000, 300.000000, 0.000000 -8529, -3.000000, 260.000000, 300.000000, 0.000000 -8530, -3.000000, 260.000000, 300.000000, 0.000000 -8531, -3.000000, 260.000000, 300.000000, 0.000000 -8532, -3.000000, 260.000000, 300.000000, 0.000000 -8533, -3.000000, 260.000000, 300.000000, 0.000000 -8534, -3.000000, 260.000000, 300.000000, 0.000000 -8535, -3.000000, 260.000000, 300.000000, 0.000000 -8536, -3.000000, 260.000000, 300.000000, 0.000000 -8537, -3.000000, 260.000000, 300.000000, 0.000000 -8538, -3.000000, 260.000000, 300.000000, 0.000000 -8539, -3.000000, 260.000000, 300.000000, 0.000000 -8540, -3.000000, 260.000000, 300.000000, 0.000000 -8541, -3.000000, 260.000000, 300.000000, 0.000000 -8542, -3.000000, 260.000000, 300.000000, 0.000000 -8543, -3.000000, 260.000000, 300.000000, 0.000000 -8544, -3.000000, 260.000000, 300.000000, 0.000000 -8545, -3.000000, 260.000000, 300.000000, 0.000000 -8546, -3.000000, 260.000000, 300.000000, 0.000000 -8547, -3.000000, 260.000000, 300.000000, 0.000000 -8548, -3.000000, 260.000000, 300.000000, 0.000000 -8549, -3.000000, 260.000000, 300.000000, 0.000000 -8550, -3.000000, 260.000000, 300.000000, 0.000000 -8551, -3.000000, 260.000000, 300.000000, 0.000000 -8552, -3.000000, 260.000000, 300.000000, 0.000000 -8553, -3.000000, 260.000000, 300.000000, 0.000000 -8554, -3.000000, 260.000000, 300.000000, 0.000000 -8555, -3.000000, 260.000000, 300.000000, 0.000000 -8556, -3.000000, 260.000000, 300.000000, 0.000000 -8557, -3.000000, 260.000000, 300.000000, 0.000000 -8558, -3.000000, 260.000000, 300.000000, 0.000000 -8559, -3.000000, 260.000000, 300.000000, 0.000000 -8560, -3.000000, 260.000000, 300.000000, 0.000000 -8561, -3.000000, 260.000000, 300.000000, 0.000000 -8562, -3.000000, 260.000000, 300.000000, 0.000000 -8563, -3.000000, 260.000000, 300.000000, 0.000000 -8564, -3.000000, 260.000000, 300.000000, 0.000000 -8565, -3.000000, 260.000000, 300.000000, 0.000000 -8566, -3.000000, 260.000000, 300.000000, 0.000000 -8567, -3.000000, 260.000000, 300.000000, 0.000000 -8568, -3.000000, 260.000000, 300.000000, 0.000000 -8569, -3.000000, 260.000000, 300.000000, 0.000000 -8570, -3.000000, 260.000000, 300.000000, 0.000000 -8571, -3.000000, 260.000000, 300.000000, 0.000000 -8572, -3.000000, 260.000000, 300.000000, 0.000000 -8573, -3.000000, 260.000000, 300.000000, 0.000000 -8574, -3.000000, 260.000000, 300.000000, 0.000000 -8575, -3.000000, 260.000000, 300.000000, 0.000000 -8576, -3.000000, 260.000000, 300.000000, 0.000000 -8577, -3.000000, 260.000000, 300.000000, 0.000000 -8578, -3.000000, 260.000000, 300.000000, 0.000000 -8579, -3.000000, 260.000000, 300.000000, 0.000000 -8580, -3.000000, 260.000000, 300.000000, 0.000000 -8581, -3.000000, 260.000000, 300.000000, 0.000000 -8582, -3.000000, 260.000000, 300.000000, 0.000000 -8583, -3.000000, 260.000000, 300.000000, 0.000000 -8584, -3.000000, 260.000000, 300.000000, 0.000000 -8585, -3.000000, 260.000000, 300.000000, 0.000000 -8586, -3.000000, 260.000000, 300.000000, 0.000000 -8587, -3.000000, 260.000000, 300.000000, 0.000000 -8588, -3.000000, 260.000000, 300.000000, 0.000000 -8589, -3.000000, 260.000000, 300.000000, 0.000000 -8590, -3.000000, 260.000000, 300.000000, 0.000000 -8591, -3.000000, 260.000000, 300.000000, 0.000000 -8592, -3.000000, 260.000000, 300.000000, 0.000000 -8593, -3.000000, 260.000000, 300.000000, 0.000000 -8594, -3.000000, 260.000000, 300.000000, 0.000000 -8595, -3.000000, 260.000000, 300.000000, 0.000000 -8596, -3.000000, 260.000000, 300.000000, 0.000000 -8597, -3.000000, 260.000000, 300.000000, 0.000000 -8598, -3.000000, 260.000000, 300.000000, 0.000000 -8599, -3.000000, 260.000000, 300.000000, 0.000000 -8600, -3.000000, 262.000000, 303.000000, 0.000000 -8601, -3.000000, 262.000000, 303.000000, 0.000000 -8602, -3.000000, 262.000000, 303.000000, 0.000000 -8603, -3.000000, 262.000000, 303.000000, 0.000000 -8604, -3.000000, 262.000000, 303.000000, 0.000000 -8605, -3.000000, 262.000000, 303.000000, 0.000000 -8606, -3.000000, 262.000000, 303.000000, 0.000000 -8607, -3.000000, 262.000000, 303.000000, 0.000000 -8608, -3.000000, 262.000000, 303.000000, 0.000000 -8609, -3.000000, 262.000000, 303.000000, 0.000000 -8610, -3.000000, 262.000000, 303.000000, 0.000000 -8611, -3.000000, 262.000000, 303.000000, 0.000000 -8612, -3.000000, 262.000000, 303.000000, 0.000000 -8613, -3.000000, 262.000000, 303.000000, 0.000000 -8614, -3.000000, 262.000000, 303.000000, 0.000000 -8615, -3.000000, 262.000000, 303.000000, 0.000000 -8616, -3.000000, 262.000000, 303.000000, 0.000000 -8617, -3.000000, 262.000000, 303.000000, 0.000000 -8618, -3.000000, 262.000000, 303.000000, 0.000000 -8619, -3.000000, 262.000000, 303.000000, 0.000000 -8620, -3.000000, 262.000000, 303.000000, 0.000000 -8621, -3.000000, 262.000000, 303.000000, 0.000000 -8622, -3.000000, 262.000000, 303.000000, 0.000000 -8623, -3.000000, 262.000000, 303.000000, 0.000000 -8624, -3.000000, 262.000000, 303.000000, 0.000000 -8625, -3.000000, 262.000000, 303.000000, 0.000000 -8626, -3.000000, 262.000000, 303.000000, 0.000000 -8627, -3.000000, 262.000000, 303.000000, 0.000000 -8628, -3.000000, 262.000000, 303.000000, 0.000000 -8629, -3.000000, 262.000000, 303.000000, 0.000000 -8630, -3.000000, 262.000000, 303.000000, 0.000000 -8631, -3.000000, 262.000000, 303.000000, 0.000000 -8632, -3.000000, 262.000000, 303.000000, 0.000000 -8633, -3.000000, 262.000000, 303.000000, 0.000000 -8634, -3.000000, 262.000000, 303.000000, 0.000000 -8635, -3.000000, 262.000000, 303.000000, 0.000000 -8636, -3.000000, 262.000000, 303.000000, 0.000000 -8637, -3.000000, 262.000000, 303.000000, 0.000000 -8638, -3.000000, 262.000000, 303.000000, 0.000000 -8639, -3.000000, 262.000000, 303.000000, 0.000000 -8640, -3.000000, 262.000000, 303.000000, 0.000000 -8641, -3.000000, 262.000000, 303.000000, 0.000000 -8642, -3.000000, 262.000000, 303.000000, 0.000000 -8643, -3.000000, 262.000000, 303.000000, 0.000000 -8644, -3.000000, 262.000000, 303.000000, 0.000000 -8645, -3.000000, 262.000000, 303.000000, 0.000000 -8646, -3.000000, 262.000000, 303.000000, 0.000000 -8647, -3.000000, 262.000000, 303.000000, 0.000000 -8648, -3.000000, 262.000000, 303.000000, 0.000000 -8649, -3.000000, 262.000000, 303.000000, 0.000000 -8650, -3.000000, 262.000000, 303.000000, 0.000000 -8651, -3.000000, 262.000000, 303.000000, 0.000000 -8652, -3.000000, 262.000000, 303.000000, 0.000000 -8653, -3.000000, 262.000000, 303.000000, 0.000000 -8654, -3.000000, 262.000000, 303.000000, 0.000000 -8655, -3.000000, 262.000000, 303.000000, 0.000000 -8656, -3.000000, 262.000000, 303.000000, 0.000000 -8657, -3.000000, 262.000000, 303.000000, 0.000000 -8658, -3.000000, 262.000000, 303.000000, 0.000000 -8659, -3.000000, 262.000000, 303.000000, 0.000000 -8660, -3.000000, 262.000000, 303.000000, 0.000000 -8661, -3.000000, 262.000000, 303.000000, 0.000000 -8662, -3.000000, 262.000000, 303.000000, 0.000000 -8663, -3.000000, 262.000000, 303.000000, 0.000000 -8664, -3.000000, 262.000000, 303.000000, 0.000000 -8665, -3.000000, 262.000000, 303.000000, 0.000000 -8666, -3.000000, 262.000000, 303.000000, 0.000000 -8667, -3.000000, 262.000000, 303.000000, 0.000000 -8668, -3.000000, 262.000000, 303.000000, 0.000000 -8669, -3.000000, 262.000000, 303.000000, 0.000000 -8670, -3.000000, 262.000000, 303.000000, 0.000000 -8671, -3.000000, 262.000000, 303.000000, 0.000000 -8672, -3.000000, 262.000000, 303.000000, 0.000000 -8673, -3.000000, 262.000000, 303.000000, 0.000000 -8674, -3.000000, 262.000000, 303.000000, 0.000000 -8675, -3.000000, 262.000000, 303.000000, 0.000000 -8676, -3.000000, 262.000000, 303.000000, 0.000000 -8677, -3.000000, 262.000000, 303.000000, 0.000000 -8678, -3.000000, 262.000000, 303.000000, 0.000000 -8679, -3.000000, 262.000000, 303.000000, 0.000000 -8680, -3.000000, 262.000000, 303.000000, 0.000000 -8681, -3.000000, 262.000000, 303.000000, 0.000000 -8682, -3.000000, 262.000000, 303.000000, 0.000000 -8683, -3.000000, 262.000000, 303.000000, 0.000000 -8684, -3.000000, 262.000000, 303.000000, 0.000000 -8685, -3.000000, 262.000000, 303.000000, 0.000000 -8686, -3.000000, 262.000000, 303.000000, 0.000000 -8687, -3.000000, 262.000000, 303.000000, 0.000000 -8688, -3.000000, 262.000000, 303.000000, 0.000000 -8689, -3.000000, 262.000000, 303.000000, 0.000000 -8690, -3.000000, 262.000000, 303.000000, 0.000000 -8691, -3.000000, 262.000000, 303.000000, 0.000000 -8692, -3.000000, 262.000000, 303.000000, 0.000000 -8693, -3.000000, 262.000000, 303.000000, 0.000000 -8694, -3.000000, 262.000000, 303.000000, 0.000000 -8695, -3.000000, 262.000000, 303.000000, 0.000000 -8696, -3.000000, 262.000000, 303.000000, 0.000000 -8697, -3.000000, 262.000000, 303.000000, 0.000000 -8698, -3.000000, 262.000000, 303.000000, 0.000000 -8699, -3.000000, 262.000000, 303.000000, 0.000000 -8700, -3.000000, 264.000000, 306.000000, 0.000000 -8701, -3.000000, 264.000000, 306.000000, 0.000000 -8702, -3.000000, 264.000000, 306.000000, 0.000000 -8703, -3.000000, 264.000000, 306.000000, 0.000000 -8704, -3.000000, 264.000000, 306.000000, 0.000000 -8705, -3.000000, 264.000000, 306.000000, 0.000000 -8706, -3.000000, 264.000000, 306.000000, 0.000000 -8707, -3.000000, 264.000000, 306.000000, 0.000000 -8708, -3.000000, 264.000000, 306.000000, 0.000000 -8709, -3.000000, 264.000000, 306.000000, 0.000000 -8710, -3.000000, 264.000000, 306.000000, 0.000000 -8711, -3.000000, 264.000000, 306.000000, 0.000000 -8712, -3.000000, 264.000000, 306.000000, 0.000000 -8713, -3.000000, 264.000000, 306.000000, 0.000000 -8714, -3.000000, 264.000000, 306.000000, 0.000000 -8715, -3.000000, 264.000000, 306.000000, 0.000000 -8716, -3.000000, 264.000000, 306.000000, 0.000000 -8717, -3.000000, 264.000000, 306.000000, 0.000000 -8718, -3.000000, 264.000000, 306.000000, 0.000000 -8719, -3.000000, 264.000000, 306.000000, 0.000000 -8720, -3.000000, 264.000000, 306.000000, 0.000000 -8721, -3.000000, 264.000000, 306.000000, 0.000000 -8722, -3.000000, 264.000000, 306.000000, 0.000000 -8723, -3.000000, 264.000000, 306.000000, 0.000000 -8724, -3.000000, 264.000000, 306.000000, 0.000000 -8725, -3.000000, 264.000000, 306.000000, 0.000000 -8726, -3.000000, 264.000000, 306.000000, 0.000000 -8727, -3.000000, 264.000000, 306.000000, 0.000000 -8728, -3.000000, 264.000000, 306.000000, 0.000000 -8729, -3.000000, 264.000000, 306.000000, 0.000000 -8730, -3.000000, 264.000000, 306.000000, 0.000000 -8731, -3.000000, 264.000000, 306.000000, 0.000000 -8732, -3.000000, 264.000000, 306.000000, 0.000000 -8733, -3.000000, 264.000000, 306.000000, 0.000000 -8734, -3.000000, 264.000000, 306.000000, 0.000000 -8735, -3.000000, 264.000000, 306.000000, 0.000000 -8736, -3.000000, 264.000000, 306.000000, 0.000000 -8737, -3.000000, 264.000000, 306.000000, 0.000000 -8738, -3.000000, 264.000000, 306.000000, 0.000000 -8739, -3.000000, 264.000000, 306.000000, 0.000000 -8740, -3.000000, 264.000000, 306.000000, 0.000000 -8741, -3.000000, 264.000000, 306.000000, 0.000000 -8742, -3.000000, 264.000000, 306.000000, 0.000000 -8743, -3.000000, 264.000000, 306.000000, 0.000000 -8744, -3.000000, 264.000000, 306.000000, 0.000000 -8745, -3.000000, 264.000000, 306.000000, 0.000000 -8746, -3.000000, 264.000000, 306.000000, 0.000000 -8747, -3.000000, 264.000000, 306.000000, 0.000000 -8748, -3.000000, 264.000000, 306.000000, 0.000000 -8749, -3.000000, 264.000000, 306.000000, 0.000000 -8750, -3.000000, 264.000000, 306.000000, 0.000000 -8751, -3.000000, 264.000000, 306.000000, 0.000000 -8752, -3.000000, 264.000000, 306.000000, 0.000000 -8753, -3.000000, 264.000000, 306.000000, 0.000000 -8754, -3.000000, 264.000000, 306.000000, 0.000000 -8755, -3.000000, 264.000000, 306.000000, 0.000000 -8756, -3.000000, 264.000000, 306.000000, 0.000000 -8757, -3.000000, 264.000000, 306.000000, 0.000000 -8758, -3.000000, 264.000000, 306.000000, 0.000000 -8759, -3.000000, 264.000000, 306.000000, 0.000000 -8760, -3.000000, 264.000000, 306.000000, 0.000000 -8761, -3.000000, 264.000000, 306.000000, 0.000000 -8762, -3.000000, 264.000000, 306.000000, 0.000000 -8763, -3.000000, 264.000000, 306.000000, 0.000000 -8764, -3.000000, 264.000000, 306.000000, 0.000000 -8765, -3.000000, 264.000000, 306.000000, 0.000000 -8766, -3.000000, 264.000000, 306.000000, 0.000000 -8767, -3.000000, 264.000000, 306.000000, 0.000000 -8768, -3.000000, 264.000000, 306.000000, 0.000000 -8769, -3.000000, 264.000000, 306.000000, 0.000000 -8770, -3.000000, 264.000000, 306.000000, 0.000000 -8771, -3.000000, 264.000000, 306.000000, 0.000000 -8772, -3.000000, 264.000000, 306.000000, 0.000000 -8773, -3.000000, 264.000000, 306.000000, 0.000000 -8774, -3.000000, 264.000000, 306.000000, 0.000000 -8775, -3.000000, 264.000000, 306.000000, 0.000000 -8776, -3.000000, 264.000000, 306.000000, 0.000000 -8777, -3.000000, 264.000000, 306.000000, 0.000000 -8778, -3.000000, 264.000000, 306.000000, 0.000000 -8779, -3.000000, 264.000000, 306.000000, 0.000000 -8780, -3.000000, 264.000000, 306.000000, 0.000000 -8781, -3.000000, 264.000000, 306.000000, 0.000000 -8782, -3.000000, 264.000000, 306.000000, 0.000000 -8783, -3.000000, 264.000000, 306.000000, 0.000000 -8784, -3.000000, 264.000000, 306.000000, 0.000000 -8785, -3.000000, 264.000000, 306.000000, 0.000000 -8786, -3.000000, 264.000000, 306.000000, 0.000000 -8787, -3.000000, 264.000000, 306.000000, 0.000000 -8788, -3.000000, 264.000000, 306.000000, 0.000000 -8789, -3.000000, 264.000000, 306.000000, 0.000000 -8790, -3.000000, 264.000000, 306.000000, 0.000000 -8791, -3.000000, 264.000000, 306.000000, 0.000000 -8792, -3.000000, 264.000000, 306.000000, 0.000000 -8793, -3.000000, 264.000000, 306.000000, 0.000000 -8794, -3.000000, 264.000000, 306.000000, 0.000000 -8795, -3.000000, 264.000000, 306.000000, 0.000000 -8796, -3.000000, 264.000000, 306.000000, 0.000000 -8797, -3.000000, 264.000000, 306.000000, 0.000000 -8798, -3.000000, 264.000000, 306.000000, 0.000000 -8799, -3.000000, 264.000000, 306.000000, 0.000000 -8800, -3.000000, 266.000000, 309.000000, 0.000000 -8801, -3.000000, 266.000000, 309.000000, 0.000000 -8802, -3.000000, 266.000000, 309.000000, 0.000000 -8803, -3.000000, 266.000000, 309.000000, 0.000000 -8804, -3.000000, 266.000000, 309.000000, 0.000000 -8805, -3.000000, 266.000000, 309.000000, 0.000000 -8806, -3.000000, 266.000000, 309.000000, 0.000000 -8807, -3.000000, 266.000000, 309.000000, 0.000000 -8808, -3.000000, 266.000000, 309.000000, 0.000000 -8809, -3.000000, 266.000000, 309.000000, 0.000000 -8810, -3.000000, 266.000000, 309.000000, 0.000000 -8811, -3.000000, 266.000000, 309.000000, 0.000000 -8812, -3.000000, 266.000000, 309.000000, 0.000000 -8813, -3.000000, 266.000000, 309.000000, 0.000000 -8814, -3.000000, 266.000000, 309.000000, 0.000000 -8815, -3.000000, 266.000000, 309.000000, 0.000000 -8816, -3.000000, 266.000000, 309.000000, 0.000000 -8817, -3.000000, 266.000000, 309.000000, 0.000000 -8818, -3.000000, 266.000000, 309.000000, 0.000000 -8819, -3.000000, 266.000000, 309.000000, 0.000000 -8820, -3.000000, 266.000000, 309.000000, 0.000000 -8821, -3.000000, 266.000000, 309.000000, 0.000000 -8822, -3.000000, 266.000000, 309.000000, 0.000000 -8823, -3.000000, 266.000000, 309.000000, 0.000000 -8824, -3.000000, 266.000000, 309.000000, 0.000000 -8825, -3.000000, 266.000000, 309.000000, 0.000000 -8826, -3.000000, 266.000000, 309.000000, 0.000000 -8827, -3.000000, 266.000000, 309.000000, 0.000000 -8828, -3.000000, 266.000000, 309.000000, 0.000000 -8829, -3.000000, 266.000000, 309.000000, 0.000000 -8830, -3.000000, 266.000000, 309.000000, 0.000000 -8831, -3.000000, 266.000000, 309.000000, 0.000000 -8832, -3.000000, 266.000000, 309.000000, 0.000000 -8833, -3.000000, 266.000000, 309.000000, 0.000000 -8834, -3.000000, 266.000000, 309.000000, 0.000000 -8835, -3.000000, 266.000000, 309.000000, 0.000000 -8836, -3.000000, 266.000000, 309.000000, 0.000000 -8837, -3.000000, 266.000000, 309.000000, 0.000000 -8838, -3.000000, 266.000000, 309.000000, 0.000000 -8839, -3.000000, 266.000000, 309.000000, 0.000000 -8840, -3.000000, 266.000000, 309.000000, 0.000000 -8841, -3.000000, 266.000000, 309.000000, 0.000000 -8842, -3.000000, 266.000000, 309.000000, 0.000000 -8843, -3.000000, 266.000000, 309.000000, 0.000000 -8844, -3.000000, 266.000000, 309.000000, 0.000000 -8845, -3.000000, 266.000000, 309.000000, 0.000000 -8846, -3.000000, 266.000000, 309.000000, 0.000000 -8847, -3.000000, 266.000000, 309.000000, 0.000000 -8848, -3.000000, 266.000000, 309.000000, 0.000000 -8849, -3.000000, 266.000000, 309.000000, 0.000000 -8850, -3.000000, 266.000000, 309.000000, 0.000000 -8851, -3.000000, 266.000000, 309.000000, 0.000000 -8852, -3.000000, 266.000000, 309.000000, 0.000000 -8853, -3.000000, 266.000000, 309.000000, 0.000000 -8854, -3.000000, 266.000000, 309.000000, 0.000000 -8855, -3.000000, 266.000000, 309.000000, 0.000000 -8856, -3.000000, 266.000000, 309.000000, 0.000000 -8857, -3.000000, 266.000000, 309.000000, 0.000000 -8858, -3.000000, 266.000000, 309.000000, 0.000000 -8859, -3.000000, 266.000000, 309.000000, 0.000000 -8860, -3.000000, 266.000000, 309.000000, 0.000000 -8861, -3.000000, 266.000000, 309.000000, 0.000000 -8862, -3.000000, 266.000000, 309.000000, 0.000000 -8863, -3.000000, 266.000000, 309.000000, 0.000000 -8864, -3.000000, 266.000000, 309.000000, 0.000000 -8865, -3.000000, 266.000000, 309.000000, 0.000000 -8866, -3.000000, 266.000000, 309.000000, 0.000000 -8867, -3.000000, 266.000000, 309.000000, 0.000000 -8868, -3.000000, 266.000000, 309.000000, 0.000000 -8869, -3.000000, 266.000000, 309.000000, 0.000000 -8870, -3.000000, 266.000000, 309.000000, 0.000000 -8871, -3.000000, 266.000000, 309.000000, 0.000000 -8872, -3.000000, 266.000000, 309.000000, 0.000000 -8873, -3.000000, 266.000000, 309.000000, 0.000000 -8874, -3.000000, 266.000000, 309.000000, 0.000000 -8875, -3.000000, 266.000000, 309.000000, 0.000000 -8876, -3.000000, 266.000000, 309.000000, 0.000000 -8877, -3.000000, 266.000000, 309.000000, 0.000000 -8878, -3.000000, 266.000000, 309.000000, 0.000000 -8879, -3.000000, 266.000000, 309.000000, 0.000000 -8880, -3.000000, 266.000000, 309.000000, 0.000000 -8881, -3.000000, 266.000000, 309.000000, 0.000000 -8882, -3.000000, 266.000000, 309.000000, 0.000000 -8883, -3.000000, 266.000000, 309.000000, 0.000000 -8884, -3.000000, 266.000000, 309.000000, 0.000000 -8885, -3.000000, 266.000000, 309.000000, 0.000000 -8886, -3.000000, 266.000000, 309.000000, 0.000000 -8887, -3.000000, 266.000000, 309.000000, 0.000000 -8888, -3.000000, 266.000000, 309.000000, 0.000000 -8889, -3.000000, 266.000000, 309.000000, 0.000000 -8890, -3.000000, 266.000000, 309.000000, 0.000000 -8891, -3.000000, 266.000000, 309.000000, 0.000000 -8892, -3.000000, 266.000000, 309.000000, 0.000000 -8893, -3.000000, 266.000000, 309.000000, 0.000000 -8894, -3.000000, 266.000000, 309.000000, 0.000000 -8895, -3.000000, 266.000000, 309.000000, 0.000000 -8896, -3.000000, 266.000000, 309.000000, 0.000000 -8897, -3.000000, 266.000000, 309.000000, 0.000000 -8898, -3.000000, 266.000000, 309.000000, 0.000000 -8899, -3.000000, 266.000000, 309.000000, 0.000000 -8900, -3.000000, 268.000000, 312.000000, 0.000000 -8901, -3.000000, 268.000000, 312.000000, 0.000000 -8902, -3.000000, 268.000000, 312.000000, 0.000000 -8903, -3.000000, 268.000000, 312.000000, 0.000000 -8904, -3.000000, 268.000000, 312.000000, 0.000000 -8905, -3.000000, 268.000000, 312.000000, 0.000000 -8906, -3.000000, 268.000000, 312.000000, 0.000000 -8907, -3.000000, 268.000000, 312.000000, 0.000000 -8908, -3.000000, 268.000000, 312.000000, 0.000000 -8909, -3.000000, 268.000000, 312.000000, 0.000000 -8910, -3.000000, 268.000000, 312.000000, 0.000000 -8911, -3.000000, 268.000000, 312.000000, 0.000000 -8912, -3.000000, 268.000000, 312.000000, 0.000000 -8913, -3.000000, 268.000000, 312.000000, 0.000000 -8914, -3.000000, 268.000000, 312.000000, 0.000000 -8915, -3.000000, 268.000000, 312.000000, 0.000000 -8916, -3.000000, 268.000000, 312.000000, 0.000000 -8917, -3.000000, 268.000000, 312.000000, 0.000000 -8918, -3.000000, 268.000000, 312.000000, 0.000000 -8919, -3.000000, 268.000000, 312.000000, 0.000000 -8920, -3.000000, 268.000000, 312.000000, 0.000000 -8921, -3.000000, 268.000000, 312.000000, 0.000000 -8922, -3.000000, 268.000000, 312.000000, 0.000000 -8923, -3.000000, 268.000000, 312.000000, 0.000000 -8924, -3.000000, 268.000000, 312.000000, 0.000000 -8925, -3.000000, 268.000000, 312.000000, 0.000000 -8926, -3.000000, 268.000000, 312.000000, 0.000000 -8927, -3.000000, 268.000000, 312.000000, 0.000000 -8928, -3.000000, 268.000000, 312.000000, 0.000000 -8929, -3.000000, 268.000000, 312.000000, 0.000000 -8930, -3.000000, 268.000000, 312.000000, 0.000000 -8931, -3.000000, 268.000000, 312.000000, 0.000000 -8932, -3.000000, 268.000000, 312.000000, 0.000000 -8933, -3.000000, 268.000000, 312.000000, 0.000000 -8934, -3.000000, 268.000000, 312.000000, 0.000000 -8935, -3.000000, 268.000000, 312.000000, 0.000000 -8936, -3.000000, 268.000000, 312.000000, 0.000000 -8937, -3.000000, 268.000000, 312.000000, 0.000000 -8938, -3.000000, 268.000000, 312.000000, 0.000000 -8939, -3.000000, 268.000000, 312.000000, 0.000000 -8940, -3.000000, 268.000000, 312.000000, 0.000000 -8941, -3.000000, 268.000000, 312.000000, 0.000000 -8942, -3.000000, 268.000000, 312.000000, 0.000000 -8943, -3.000000, 268.000000, 312.000000, 0.000000 -8944, -3.000000, 268.000000, 312.000000, 0.000000 -8945, -3.000000, 268.000000, 312.000000, 0.000000 -8946, -3.000000, 268.000000, 312.000000, 0.000000 -8947, -3.000000, 268.000000, 312.000000, 0.000000 -8948, -3.000000, 268.000000, 312.000000, 0.000000 -8949, -3.000000, 268.000000, 312.000000, 0.000000 -8950, -3.000000, 268.000000, 312.000000, 0.000000 -8951, -3.000000, 268.000000, 312.000000, 0.000000 -8952, -3.000000, 268.000000, 312.000000, 0.000000 -8953, -3.000000, 268.000000, 312.000000, 0.000000 -8954, -3.000000, 268.000000, 312.000000, 0.000000 -8955, -3.000000, 268.000000, 312.000000, 0.000000 -8956, -3.000000, 268.000000, 312.000000, 0.000000 -8957, -3.000000, 268.000000, 312.000000, 0.000000 -8958, -3.000000, 268.000000, 312.000000, 0.000000 -8959, -3.000000, 268.000000, 312.000000, 0.000000 -8960, -3.000000, 268.000000, 312.000000, 0.000000 -8961, -3.000000, 268.000000, 312.000000, 0.000000 -8962, -3.000000, 268.000000, 312.000000, 0.000000 -8963, -3.000000, 268.000000, 312.000000, 0.000000 -8964, -3.000000, 268.000000, 312.000000, 0.000000 -8965, -3.000000, 268.000000, 312.000000, 0.000000 -8966, -3.000000, 268.000000, 312.000000, 0.000000 -8967, -3.000000, 268.000000, 312.000000, 0.000000 -8968, -3.000000, 268.000000, 312.000000, 0.000000 -8969, -3.000000, 268.000000, 312.000000, 0.000000 -8970, -3.000000, 268.000000, 312.000000, 0.000000 -8971, -3.000000, 268.000000, 312.000000, 0.000000 -8972, -3.000000, 268.000000, 312.000000, 0.000000 -8973, -3.000000, 268.000000, 312.000000, 0.000000 -8974, -3.000000, 268.000000, 312.000000, 0.000000 -8975, -3.000000, 268.000000, 312.000000, 0.000000 -8976, -3.000000, 268.000000, 312.000000, 0.000000 -8977, -3.000000, 268.000000, 312.000000, 0.000000 -8978, -3.000000, 268.000000, 312.000000, 0.000000 -8979, -3.000000, 268.000000, 312.000000, 0.000000 -8980, -3.000000, 268.000000, 312.000000, 0.000000 -8981, -3.000000, 268.000000, 312.000000, 0.000000 -8982, -3.000000, 268.000000, 312.000000, 0.000000 -8983, -3.000000, 268.000000, 312.000000, 0.000000 -8984, -3.000000, 268.000000, 312.000000, 0.000000 -8985, -3.000000, 268.000000, 312.000000, 0.000000 -8986, -3.000000, 268.000000, 312.000000, 0.000000 -8987, -3.000000, 268.000000, 312.000000, 0.000000 -8988, -3.000000, 268.000000, 312.000000, 0.000000 -8989, -3.000000, 268.000000, 312.000000, 0.000000 -8990, -3.000000, 268.000000, 312.000000, 0.000000 -8991, -3.000000, 268.000000, 312.000000, 0.000000 -8992, -3.000000, 268.000000, 312.000000, 0.000000 -8993, -3.000000, 268.000000, 312.000000, 0.000000 -8994, -3.000000, 268.000000, 312.000000, 0.000000 -8995, -3.000000, 268.000000, 312.000000, 0.000000 -8996, -3.000000, 268.000000, 312.000000, 0.000000 -8997, -3.000000, 268.000000, 312.000000, 0.000000 -8998, -3.000000, 268.000000, 312.000000, 0.000000 -8999, -3.000000, 268.000000, 312.000000, 0.000000 -9000, -3.000000, 270.000000, 315.000000, 0.000000 -9001, -3.000000, 270.000000, 315.000000, 0.000000 -9002, -3.000000, 270.000000, 315.000000, 0.000000 -9003, -3.000000, 270.000000, 315.000000, 0.000000 -9004, -3.000000, 270.000000, 315.000000, 0.000000 -9005, -3.000000, 270.000000, 315.000000, 0.000000 -9006, -3.000000, 270.000000, 315.000000, 0.000000 -9007, -3.000000, 270.000000, 315.000000, 0.000000 -9008, -3.000000, 270.000000, 315.000000, 0.000000 -9009, -3.000000, 270.000000, 315.000000, 0.000000 -9010, -3.000000, 270.000000, 315.000000, 0.000000 -9011, -3.000000, 270.000000, 315.000000, 0.000000 -9012, -3.000000, 270.000000, 315.000000, 0.000000 -9013, -3.000000, 270.000000, 315.000000, 0.000000 -9014, -3.000000, 270.000000, 315.000000, 0.000000 -9015, -3.000000, 270.000000, 315.000000, 0.000000 -9016, -3.000000, 270.000000, 315.000000, 0.000000 -9017, -3.000000, 270.000000, 315.000000, 0.000000 -9018, -3.000000, 270.000000, 315.000000, 0.000000 -9019, -3.000000, 270.000000, 315.000000, 0.000000 -9020, -3.000000, 270.000000, 315.000000, 0.000000 -9021, -3.000000, 270.000000, 315.000000, 0.000000 -9022, -3.000000, 270.000000, 315.000000, 0.000000 -9023, -3.000000, 270.000000, 315.000000, 0.000000 -9024, -3.000000, 270.000000, 315.000000, 0.000000 -9025, -3.000000, 270.000000, 315.000000, 0.000000 -9026, -3.000000, 270.000000, 315.000000, 0.000000 -9027, -3.000000, 270.000000, 315.000000, 0.000000 -9028, -3.000000, 270.000000, 315.000000, 0.000000 -9029, -3.000000, 270.000000, 315.000000, 0.000000 -9030, -3.000000, 270.000000, 315.000000, 0.000000 -9031, -3.000000, 270.000000, 315.000000, 0.000000 -9032, -3.000000, 270.000000, 315.000000, 0.000000 -9033, -3.000000, 270.000000, 315.000000, 0.000000 -9034, -3.000000, 270.000000, 315.000000, 0.000000 -9035, -3.000000, 270.000000, 315.000000, 0.000000 -9036, -3.000000, 270.000000, 315.000000, 0.000000 -9037, -3.000000, 270.000000, 315.000000, 0.000000 -9038, -3.000000, 270.000000, 315.000000, 0.000000 -9039, -3.000000, 270.000000, 315.000000, 0.000000 -9040, -3.000000, 270.000000, 315.000000, 0.000000 -9041, -3.000000, 270.000000, 315.000000, 0.000000 -9042, -3.000000, 270.000000, 315.000000, 0.000000 -9043, -3.000000, 270.000000, 315.000000, 0.000000 -9044, -3.000000, 270.000000, 315.000000, 0.000000 -9045, -3.000000, 270.000000, 315.000000, 0.000000 -9046, -3.000000, 270.000000, 315.000000, 0.000000 -9047, -3.000000, 270.000000, 315.000000, 0.000000 -9048, -3.000000, 270.000000, 315.000000, 0.000000 -9049, -3.000000, 270.000000, 315.000000, 0.000000 -9050, -3.000000, 270.000000, 315.000000, 0.000000 -9051, -3.000000, 270.000000, 315.000000, 0.000000 -9052, -3.000000, 270.000000, 315.000000, 0.000000 -9053, -3.000000, 270.000000, 315.000000, 0.000000 -9054, -3.000000, 270.000000, 315.000000, 0.000000 -9055, -3.000000, 270.000000, 315.000000, 0.000000 -9056, -3.000000, 270.000000, 315.000000, 0.000000 -9057, -3.000000, 270.000000, 315.000000, 0.000000 -9058, -3.000000, 270.000000, 315.000000, 0.000000 -9059, -3.000000, 270.000000, 315.000000, 0.000000 -9060, -3.000000, 270.000000, 315.000000, 0.000000 -9061, -3.000000, 270.000000, 315.000000, 0.000000 -9062, -3.000000, 270.000000, 315.000000, 0.000000 -9063, -3.000000, 270.000000, 315.000000, 0.000000 -9064, -3.000000, 270.000000, 315.000000, 0.000000 -9065, -3.000000, 270.000000, 315.000000, 0.000000 -9066, -3.000000, 270.000000, 315.000000, 0.000000 -9067, -3.000000, 270.000000, 315.000000, 0.000000 -9068, -3.000000, 270.000000, 315.000000, 0.000000 -9069, -3.000000, 270.000000, 315.000000, 0.000000 -9070, -3.000000, 270.000000, 315.000000, 0.000000 -9071, -3.000000, 270.000000, 315.000000, 0.000000 -9072, -3.000000, 270.000000, 315.000000, 0.000000 -9073, -3.000000, 270.000000, 315.000000, 0.000000 -9074, -3.000000, 270.000000, 315.000000, 0.000000 -9075, -3.000000, 270.000000, 315.000000, 0.000000 -9076, -3.000000, 270.000000, 315.000000, 0.000000 -9077, -3.000000, 270.000000, 315.000000, 0.000000 -9078, -3.000000, 270.000000, 315.000000, 0.000000 -9079, -3.000000, 270.000000, 315.000000, 0.000000 -9080, -3.000000, 270.000000, 315.000000, 0.000000 -9081, -3.000000, 270.000000, 315.000000, 0.000000 -9082, -3.000000, 270.000000, 315.000000, 0.000000 -9083, -3.000000, 270.000000, 315.000000, 0.000000 -9084, -3.000000, 270.000000, 315.000000, 0.000000 -9085, -3.000000, 270.000000, 315.000000, 0.000000 -9086, -3.000000, 270.000000, 315.000000, 0.000000 -9087, -3.000000, 270.000000, 315.000000, 0.000000 -9088, -3.000000, 270.000000, 315.000000, 0.000000 -9089, -3.000000, 270.000000, 315.000000, 0.000000 -9090, -3.000000, 270.000000, 315.000000, 0.000000 -9091, -3.000000, 270.000000, 315.000000, 0.000000 -9092, -3.000000, 270.000000, 315.000000, 0.000000 -9093, -3.000000, 270.000000, 315.000000, 0.000000 -9094, -3.000000, 270.000000, 315.000000, 0.000000 -9095, -3.000000, 270.000000, 315.000000, 0.000000 -9096, -3.000000, 270.000000, 315.000000, 0.000000 -9097, -3.000000, 270.000000, 315.000000, 0.000000 -9098, -3.000000, 270.000000, 315.000000, 0.000000 -9099, -3.000000, 270.000000, 315.000000, 0.000000 -9100, -3.000000, 272.000000, 318.000000, 0.000000 -9101, -3.000000, 272.000000, 318.000000, 0.000000 -9102, -3.000000, 272.000000, 318.000000, 0.000000 -9103, -3.000000, 272.000000, 318.000000, 0.000000 -9104, -3.000000, 272.000000, 318.000000, 0.000000 -9105, -3.000000, 272.000000, 318.000000, 0.000000 -9106, -3.000000, 272.000000, 318.000000, 0.000000 -9107, -3.000000, 272.000000, 318.000000, 0.000000 -9108, -3.000000, 272.000000, 318.000000, 0.000000 -9109, -3.000000, 272.000000, 318.000000, 0.000000 -9110, -3.000000, 272.000000, 318.000000, 0.000000 -9111, -3.000000, 272.000000, 318.000000, 0.000000 -9112, -3.000000, 272.000000, 318.000000, 0.000000 -9113, -3.000000, 272.000000, 318.000000, 0.000000 -9114, -3.000000, 272.000000, 318.000000, 0.000000 -9115, -3.000000, 272.000000, 318.000000, 0.000000 -9116, -3.000000, 272.000000, 318.000000, 0.000000 -9117, -3.000000, 272.000000, 318.000000, 0.000000 -9118, -3.000000, 272.000000, 318.000000, 0.000000 -9119, -3.000000, 272.000000, 318.000000, 0.000000 -9120, -3.000000, 272.000000, 318.000000, 0.000000 -9121, -3.000000, 272.000000, 318.000000, 0.000000 -9122, -3.000000, 272.000000, 318.000000, 0.000000 -9123, -3.000000, 272.000000, 318.000000, 0.000000 -9124, -3.000000, 272.000000, 318.000000, 0.000000 -9125, -3.000000, 272.000000, 318.000000, 0.000000 -9126, -3.000000, 272.000000, 318.000000, 0.000000 -9127, -3.000000, 272.000000, 318.000000, 0.000000 -9128, -3.000000, 272.000000, 318.000000, 0.000000 -9129, -3.000000, 272.000000, 318.000000, 0.000000 -9130, -3.000000, 272.000000, 318.000000, 0.000000 -9131, -3.000000, 272.000000, 318.000000, 0.000000 -9132, -3.000000, 272.000000, 318.000000, 0.000000 -9133, -3.000000, 272.000000, 318.000000, 0.000000 -9134, -3.000000, 272.000000, 318.000000, 0.000000 -9135, -3.000000, 272.000000, 318.000000, 0.000000 -9136, -3.000000, 272.000000, 318.000000, 0.000000 -9137, -3.000000, 272.000000, 318.000000, 0.000000 -9138, -3.000000, 272.000000, 318.000000, 0.000000 -9139, -3.000000, 272.000000, 318.000000, 0.000000 -9140, -3.000000, 272.000000, 318.000000, 0.000000 -9141, -3.000000, 272.000000, 318.000000, 0.000000 -9142, -3.000000, 272.000000, 318.000000, 0.000000 -9143, -3.000000, 272.000000, 318.000000, 0.000000 -9144, -3.000000, 272.000000, 318.000000, 0.000000 -9145, -3.000000, 272.000000, 318.000000, 0.000000 -9146, -3.000000, 272.000000, 318.000000, 0.000000 -9147, -3.000000, 272.000000, 318.000000, 0.000000 -9148, -3.000000, 272.000000, 318.000000, 0.000000 -9149, -3.000000, 272.000000, 318.000000, 0.000000 -9150, -3.000000, 272.000000, 318.000000, 0.000000 -9151, -3.000000, 272.000000, 318.000000, 0.000000 -9152, -3.000000, 272.000000, 318.000000, 0.000000 -9153, -3.000000, 272.000000, 318.000000, 0.000000 -9154, -3.000000, 272.000000, 318.000000, 0.000000 -9155, -3.000000, 272.000000, 318.000000, 0.000000 -9156, -3.000000, 272.000000, 318.000000, 0.000000 -9157, -3.000000, 272.000000, 318.000000, 0.000000 -9158, -3.000000, 272.000000, 318.000000, 0.000000 -9159, -3.000000, 272.000000, 318.000000, 0.000000 -9160, -3.000000, 272.000000, 318.000000, 0.000000 -9161, -3.000000, 272.000000, 318.000000, 0.000000 -9162, -3.000000, 272.000000, 318.000000, 0.000000 -9163, -3.000000, 272.000000, 318.000000, 0.000000 -9164, -3.000000, 272.000000, 318.000000, 0.000000 -9165, -3.000000, 272.000000, 318.000000, 0.000000 -9166, -3.000000, 272.000000, 318.000000, 0.000000 -9167, -3.000000, 272.000000, 318.000000, 0.000000 -9168, -3.000000, 272.000000, 318.000000, 0.000000 -9169, -3.000000, 272.000000, 318.000000, 0.000000 -9170, -3.000000, 272.000000, 318.000000, 0.000000 -9171, -3.000000, 272.000000, 318.000000, 0.000000 -9172, -3.000000, 272.000000, 318.000000, 0.000000 -9173, -3.000000, 272.000000, 318.000000, 0.000000 -9174, -3.000000, 272.000000, 318.000000, 0.000000 -9175, -3.000000, 272.000000, 318.000000, 0.000000 -9176, -3.000000, 272.000000, 318.000000, 0.000000 -9177, -3.000000, 272.000000, 318.000000, 0.000000 -9178, -3.000000, 272.000000, 318.000000, 0.000000 -9179, -3.000000, 272.000000, 318.000000, 0.000000 -9180, -3.000000, 272.000000, 318.000000, 0.000000 -9181, -3.000000, 272.000000, 318.000000, 0.000000 -9182, -3.000000, 272.000000, 318.000000, 0.000000 -9183, -3.000000, 272.000000, 318.000000, 0.000000 -9184, -3.000000, 272.000000, 318.000000, 0.000000 -9185, -3.000000, 272.000000, 318.000000, 0.000000 -9186, -3.000000, 272.000000, 318.000000, 0.000000 -9187, -3.000000, 272.000000, 318.000000, 0.000000 -9188, -3.000000, 272.000000, 318.000000, 0.000000 -9189, -3.000000, 272.000000, 318.000000, 0.000000 -9190, -3.000000, 272.000000, 318.000000, 0.000000 -9191, -3.000000, 272.000000, 318.000000, 0.000000 -9192, -3.000000, 272.000000, 318.000000, 0.000000 -9193, -3.000000, 272.000000, 318.000000, 0.000000 -9194, -3.000000, 272.000000, 318.000000, 0.000000 -9195, -3.000000, 272.000000, 318.000000, 0.000000 -9196, -3.000000, 272.000000, 318.000000, 0.000000 -9197, -3.000000, 272.000000, 318.000000, 0.000000 -9198, -3.000000, 272.000000, 318.000000, 0.000000 -9199, -3.000000, 272.000000, 318.000000, 0.000000 -9200, -3.000000, 274.000000, 321.000000, 0.000000 -9201, -3.000000, 274.000000, 321.000000, 0.000000 -9202, -3.000000, 274.000000, 321.000000, 0.000000 -9203, -3.000000, 274.000000, 321.000000, 0.000000 -9204, -3.000000, 274.000000, 321.000000, 0.000000 -9205, -3.000000, 274.000000, 321.000000, 0.000000 -9206, -3.000000, 274.000000, 321.000000, 0.000000 -9207, -3.000000, 274.000000, 321.000000, 0.000000 -9208, -3.000000, 274.000000, 321.000000, 0.000000 -9209, -3.000000, 274.000000, 321.000000, 0.000000 -9210, -3.000000, 274.000000, 321.000000, 0.000000 -9211, -3.000000, 274.000000, 321.000000, 0.000000 -9212, -3.000000, 274.000000, 321.000000, 0.000000 -9213, -3.000000, 274.000000, 321.000000, 0.000000 -9214, -3.000000, 274.000000, 321.000000, 0.000000 -9215, -3.000000, 274.000000, 321.000000, 0.000000 -9216, -3.000000, 274.000000, 321.000000, 0.000000 -9217, -3.000000, 274.000000, 321.000000, 0.000000 -9218, -3.000000, 274.000000, 321.000000, 0.000000 -9219, -3.000000, 274.000000, 321.000000, 0.000000 -9220, -3.000000, 274.000000, 321.000000, 0.000000 -9221, -3.000000, 274.000000, 321.000000, 0.000000 -9222, -3.000000, 274.000000, 321.000000, 0.000000 -9223, -3.000000, 274.000000, 321.000000, 0.000000 -9224, -3.000000, 274.000000, 321.000000, 0.000000 -9225, -3.000000, 274.000000, 321.000000, 0.000000 -9226, -3.000000, 274.000000, 321.000000, 0.000000 -9227, -3.000000, 274.000000, 321.000000, 0.000000 -9228, -3.000000, 274.000000, 321.000000, 0.000000 -9229, -3.000000, 274.000000, 321.000000, 0.000000 -9230, -3.000000, 274.000000, 321.000000, 0.000000 -9231, -3.000000, 274.000000, 321.000000, 0.000000 -9232, -3.000000, 274.000000, 321.000000, 0.000000 -9233, -3.000000, 274.000000, 321.000000, 0.000000 -9234, -3.000000, 274.000000, 321.000000, 0.000000 -9235, -3.000000, 274.000000, 321.000000, 0.000000 -9236, -3.000000, 274.000000, 321.000000, 0.000000 -9237, -3.000000, 274.000000, 321.000000, 0.000000 -9238, -3.000000, 274.000000, 321.000000, 0.000000 -9239, -3.000000, 274.000000, 321.000000, 0.000000 -9240, -3.000000, 274.000000, 321.000000, 0.000000 -9241, -3.000000, 274.000000, 321.000000, 0.000000 -9242, -3.000000, 274.000000, 321.000000, 0.000000 -9243, -3.000000, 274.000000, 321.000000, 0.000000 -9244, -3.000000, 274.000000, 321.000000, 0.000000 -9245, -3.000000, 274.000000, 321.000000, 0.000000 -9246, -3.000000, 274.000000, 321.000000, 0.000000 -9247, -3.000000, 274.000000, 321.000000, 0.000000 -9248, -3.000000, 274.000000, 321.000000, 0.000000 -9249, -3.000000, 274.000000, 321.000000, 0.000000 -9250, -3.000000, 274.000000, 321.000000, 0.000000 -9251, -3.000000, 274.000000, 321.000000, 0.000000 -9252, -3.000000, 274.000000, 321.000000, 0.000000 -9253, -3.000000, 274.000000, 321.000000, 0.000000 -9254, -3.000000, 274.000000, 321.000000, 0.000000 -9255, -3.000000, 274.000000, 321.000000, 0.000000 -9256, -3.000000, 274.000000, 321.000000, 0.000000 -9257, -3.000000, 274.000000, 321.000000, 0.000000 -9258, -3.000000, 274.000000, 321.000000, 0.000000 -9259, -3.000000, 274.000000, 321.000000, 0.000000 -9260, -3.000000, 274.000000, 321.000000, 0.000000 -9261, -3.000000, 274.000000, 321.000000, 0.000000 -9262, -3.000000, 274.000000, 321.000000, 0.000000 -9263, -3.000000, 274.000000, 321.000000, 0.000000 -9264, -3.000000, 274.000000, 321.000000, 0.000000 -9265, -3.000000, 274.000000, 321.000000, 0.000000 -9266, -3.000000, 274.000000, 321.000000, 0.000000 -9267, -3.000000, 274.000000, 321.000000, 0.000000 -9268, -3.000000, 274.000000, 321.000000, 0.000000 -9269, -3.000000, 274.000000, 321.000000, 0.000000 -9270, -3.000000, 274.000000, 321.000000, 0.000000 -9271, -3.000000, 274.000000, 321.000000, 0.000000 -9272, -3.000000, 274.000000, 321.000000, 0.000000 -9273, -3.000000, 274.000000, 321.000000, 0.000000 -9274, -3.000000, 274.000000, 321.000000, 0.000000 -9275, -3.000000, 274.000000, 321.000000, 0.000000 -9276, -3.000000, 274.000000, 321.000000, 0.000000 -9277, -3.000000, 274.000000, 321.000000, 0.000000 -9278, -3.000000, 274.000000, 321.000000, 0.000000 -9279, -3.000000, 274.000000, 321.000000, 0.000000 -9280, -3.000000, 274.000000, 321.000000, 0.000000 -9281, -3.000000, 274.000000, 321.000000, 0.000000 -9282, -3.000000, 274.000000, 321.000000, 0.000000 -9283, -3.000000, 274.000000, 321.000000, 0.000000 -9284, -3.000000, 274.000000, 321.000000, 0.000000 -9285, -3.000000, 274.000000, 321.000000, 0.000000 -9286, -3.000000, 274.000000, 321.000000, 0.000000 -9287, -3.000000, 274.000000, 321.000000, 0.000000 -9288, -3.000000, 274.000000, 321.000000, 0.000000 -9289, -3.000000, 274.000000, 321.000000, 0.000000 -9290, -3.000000, 274.000000, 321.000000, 0.000000 -9291, -3.000000, 274.000000, 321.000000, 0.000000 -9292, -3.000000, 274.000000, 321.000000, 0.000000 -9293, -3.000000, 274.000000, 321.000000, 0.000000 -9294, -3.000000, 274.000000, 321.000000, 0.000000 -9295, -3.000000, 274.000000, 321.000000, 0.000000 -9296, -3.000000, 274.000000, 321.000000, 0.000000 -9297, -3.000000, 274.000000, 321.000000, 0.000000 -9298, -3.000000, 274.000000, 321.000000, 0.000000 -9299, -3.000000, 274.000000, 321.000000, 0.000000 -9300, -3.000000, 276.000000, 324.000000, 0.000000 -9301, -3.000000, 276.000000, 324.000000, 0.000000 -9302, -3.000000, 276.000000, 324.000000, 0.000000 -9303, -3.000000, 276.000000, 324.000000, 0.000000 -9304, -3.000000, 276.000000, 324.000000, 0.000000 -9305, -3.000000, 276.000000, 324.000000, 0.000000 -9306, -3.000000, 276.000000, 324.000000, 0.000000 -9307, -3.000000, 276.000000, 324.000000, 0.000000 -9308, -3.000000, 276.000000, 324.000000, 0.000000 -9309, -3.000000, 276.000000, 324.000000, 0.000000 -9310, -3.000000, 276.000000, 324.000000, 0.000000 -9311, -3.000000, 276.000000, 324.000000, 0.000000 -9312, -3.000000, 276.000000, 324.000000, 0.000000 -9313, -3.000000, 276.000000, 324.000000, 0.000000 -9314, -3.000000, 276.000000, 324.000000, 0.000000 -9315, -3.000000, 276.000000, 324.000000, 0.000000 -9316, -3.000000, 276.000000, 324.000000, 0.000000 -9317, -3.000000, 276.000000, 324.000000, 0.000000 -9318, -3.000000, 276.000000, 324.000000, 0.000000 -9319, -3.000000, 276.000000, 324.000000, 0.000000 -9320, -3.000000, 276.000000, 324.000000, 0.000000 -9321, -3.000000, 276.000000, 324.000000, 0.000000 -9322, -3.000000, 276.000000, 324.000000, 0.000000 -9323, -3.000000, 276.000000, 324.000000, 0.000000 -9324, -3.000000, 276.000000, 324.000000, 0.000000 -9325, -3.000000, 276.000000, 324.000000, 0.000000 -9326, -3.000000, 276.000000, 324.000000, 0.000000 -9327, -3.000000, 276.000000, 324.000000, 0.000000 -9328, -3.000000, 276.000000, 324.000000, 0.000000 -9329, -3.000000, 276.000000, 324.000000, 0.000000 -9330, -3.000000, 276.000000, 324.000000, 0.000000 -9331, -3.000000, 276.000000, 324.000000, 0.000000 -9332, -3.000000, 276.000000, 324.000000, 0.000000 -9333, -3.000000, 276.000000, 324.000000, 0.000000 -9334, -3.000000, 276.000000, 324.000000, 0.000000 -9335, -3.000000, 276.000000, 324.000000, 0.000000 -9336, -3.000000, 276.000000, 324.000000, 0.000000 -9337, -3.000000, 276.000000, 324.000000, 0.000000 -9338, -3.000000, 276.000000, 324.000000, 0.000000 -9339, -3.000000, 276.000000, 324.000000, 0.000000 -9340, -3.000000, 276.000000, 324.000000, 0.000000 -9341, -3.000000, 276.000000, 324.000000, 0.000000 -9342, -3.000000, 276.000000, 324.000000, 0.000000 -9343, -3.000000, 276.000000, 324.000000, 0.000000 -9344, -3.000000, 276.000000, 324.000000, 0.000000 -9345, -3.000000, 276.000000, 324.000000, 0.000000 -9346, -3.000000, 276.000000, 324.000000, 0.000000 -9347, -3.000000, 276.000000, 324.000000, 0.000000 -9348, -3.000000, 276.000000, 324.000000, 0.000000 -9349, -3.000000, 276.000000, 324.000000, 0.000000 -9350, -3.000000, 276.000000, 324.000000, 0.000000 -9351, -3.000000, 276.000000, 324.000000, 0.000000 -9352, -3.000000, 276.000000, 324.000000, 0.000000 -9353, -3.000000, 276.000000, 324.000000, 0.000000 -9354, -3.000000, 276.000000, 324.000000, 0.000000 -9355, -3.000000, 276.000000, 324.000000, 0.000000 -9356, -3.000000, 276.000000, 324.000000, 0.000000 -9357, -3.000000, 276.000000, 324.000000, 0.000000 -9358, -3.000000, 276.000000, 324.000000, 0.000000 -9359, -3.000000, 276.000000, 324.000000, 0.000000 -9360, -3.000000, 276.000000, 324.000000, 0.000000 -9361, -3.000000, 276.000000, 324.000000, 0.000000 -9362, -3.000000, 276.000000, 324.000000, 0.000000 -9363, -3.000000, 276.000000, 324.000000, 0.000000 -9364, -3.000000, 276.000000, 324.000000, 0.000000 -9365, -3.000000, 276.000000, 324.000000, 0.000000 -9366, -3.000000, 276.000000, 324.000000, 0.000000 -9367, -3.000000, 276.000000, 324.000000, 0.000000 -9368, -3.000000, 276.000000, 324.000000, 0.000000 -9369, -3.000000, 276.000000, 324.000000, 0.000000 -9370, -3.000000, 276.000000, 324.000000, 0.000000 -9371, -3.000000, 276.000000, 324.000000, 0.000000 -9372, -3.000000, 276.000000, 324.000000, 0.000000 -9373, -3.000000, 276.000000, 324.000000, 0.000000 -9374, -3.000000, 276.000000, 324.000000, 0.000000 -9375, -3.000000, 276.000000, 324.000000, 0.000000 -9376, -3.000000, 276.000000, 324.000000, 0.000000 -9377, -3.000000, 276.000000, 324.000000, 0.000000 -9378, -3.000000, 276.000000, 324.000000, 0.000000 -9379, -3.000000, 276.000000, 324.000000, 0.000000 -9380, -3.000000, 276.000000, 324.000000, 0.000000 -9381, -3.000000, 276.000000, 324.000000, 0.000000 -9382, -3.000000, 276.000000, 324.000000, 0.000000 -9383, -3.000000, 276.000000, 324.000000, 0.000000 -9384, -3.000000, 276.000000, 324.000000, 0.000000 -9385, -3.000000, 276.000000, 324.000000, 0.000000 -9386, -3.000000, 276.000000, 324.000000, 0.000000 -9387, -3.000000, 276.000000, 324.000000, 0.000000 -9388, -3.000000, 276.000000, 324.000000, 0.000000 -9389, -3.000000, 276.000000, 324.000000, 0.000000 -9390, -3.000000, 276.000000, 324.000000, 0.000000 -9391, -3.000000, 276.000000, 324.000000, 0.000000 -9392, -3.000000, 276.000000, 324.000000, 0.000000 -9393, -3.000000, 276.000000, 324.000000, 0.000000 -9394, -3.000000, 276.000000, 324.000000, 0.000000 -9395, -3.000000, 276.000000, 324.000000, 0.000000 -9396, -3.000000, 276.000000, 324.000000, 0.000000 -9397, -3.000000, 276.000000, 324.000000, 0.000000 -9398, -3.000000, 276.000000, 324.000000, 0.000000 -9399, -3.000000, 276.000000, 324.000000, 0.000000 -9400, -3.000000, 278.000000, 327.000000, 0.000000 -9401, -3.000000, 278.000000, 327.000000, 0.000000 -9402, -3.000000, 278.000000, 327.000000, 0.000000 -9403, -3.000000, 278.000000, 327.000000, 0.000000 -9404, -3.000000, 278.000000, 327.000000, 0.000000 -9405, -3.000000, 278.000000, 327.000000, 0.000000 -9406, -3.000000, 278.000000, 327.000000, 0.000000 -9407, -3.000000, 278.000000, 327.000000, 0.000000 -9408, -3.000000, 278.000000, 327.000000, 0.000000 -9409, -3.000000, 278.000000, 327.000000, 0.000000 -9410, -3.000000, 278.000000, 327.000000, 0.000000 -9411, -3.000000, 278.000000, 327.000000, 0.000000 -9412, -3.000000, 278.000000, 327.000000, 0.000000 -9413, -3.000000, 278.000000, 327.000000, 0.000000 -9414, -3.000000, 278.000000, 327.000000, 0.000000 -9415, -3.000000, 278.000000, 327.000000, 0.000000 -9416, -3.000000, 278.000000, 327.000000, 0.000000 -9417, -3.000000, 278.000000, 327.000000, 0.000000 -9418, -3.000000, 278.000000, 327.000000, 0.000000 -9419, -3.000000, 278.000000, 327.000000, 0.000000 -9420, -3.000000, 278.000000, 327.000000, 0.000000 -9421, -3.000000, 278.000000, 327.000000, 0.000000 -9422, -3.000000, 278.000000, 327.000000, 0.000000 -9423, -3.000000, 278.000000, 327.000000, 0.000000 -9424, -3.000000, 278.000000, 327.000000, 0.000000 -9425, -3.000000, 278.000000, 327.000000, 0.000000 -9426, -3.000000, 278.000000, 327.000000, 0.000000 -9427, -3.000000, 278.000000, 327.000000, 0.000000 -9428, -3.000000, 278.000000, 327.000000, 0.000000 -9429, -3.000000, 278.000000, 327.000000, 0.000000 -9430, -3.000000, 278.000000, 327.000000, 0.000000 -9431, -3.000000, 278.000000, 327.000000, 0.000000 -9432, -3.000000, 278.000000, 327.000000, 0.000000 -9433, -3.000000, 278.000000, 327.000000, 0.000000 -9434, -3.000000, 278.000000, 327.000000, 0.000000 -9435, -3.000000, 278.000000, 327.000000, 0.000000 -9436, -3.000000, 278.000000, 327.000000, 0.000000 -9437, -3.000000, 278.000000, 327.000000, 0.000000 -9438, -3.000000, 278.000000, 327.000000, 0.000000 -9439, -3.000000, 278.000000, 327.000000, 0.000000 -9440, -3.000000, 278.000000, 327.000000, 0.000000 -9441, -3.000000, 278.000000, 327.000000, 0.000000 -9442, -3.000000, 278.000000, 327.000000, 0.000000 -9443, -3.000000, 278.000000, 327.000000, 0.000000 -9444, -3.000000, 278.000000, 327.000000, 0.000000 -9445, -3.000000, 278.000000, 327.000000, 0.000000 -9446, -3.000000, 278.000000, 327.000000, 0.000000 -9447, -3.000000, 278.000000, 327.000000, 0.000000 -9448, -3.000000, 278.000000, 327.000000, 0.000000 -9449, -3.000000, 278.000000, 327.000000, 0.000000 -9450, -3.000000, 278.000000, 327.000000, 0.000000 -9451, -3.000000, 278.000000, 327.000000, 0.000000 -9452, -3.000000, 278.000000, 327.000000, 0.000000 -9453, -3.000000, 278.000000, 327.000000, 0.000000 -9454, -3.000000, 278.000000, 327.000000, 0.000000 -9455, -3.000000, 278.000000, 327.000000, 0.000000 -9456, -3.000000, 278.000000, 327.000000, 0.000000 -9457, -3.000000, 278.000000, 327.000000, 0.000000 -9458, -3.000000, 278.000000, 327.000000, 0.000000 -9459, -3.000000, 278.000000, 327.000000, 0.000000 -9460, -3.000000, 278.000000, 327.000000, 0.000000 -9461, -3.000000, 278.000000, 327.000000, 0.000000 -9462, -3.000000, 278.000000, 327.000000, 0.000000 -9463, -3.000000, 278.000000, 327.000000, 0.000000 -9464, -3.000000, 278.000000, 327.000000, 0.000000 -9465, -3.000000, 278.000000, 327.000000, 0.000000 -9466, -3.000000, 278.000000, 327.000000, 0.000000 -9467, -3.000000, 278.000000, 327.000000, 0.000000 -9468, -3.000000, 278.000000, 327.000000, 0.000000 -9469, -3.000000, 278.000000, 327.000000, 0.000000 -9470, -3.000000, 278.000000, 327.000000, 0.000000 -9471, -3.000000, 278.000000, 327.000000, 0.000000 -9472, -3.000000, 278.000000, 327.000000, 0.000000 -9473, -3.000000, 278.000000, 327.000000, 0.000000 -9474, -3.000000, 278.000000, 327.000000, 0.000000 -9475, -3.000000, 278.000000, 327.000000, 0.000000 -9476, -3.000000, 278.000000, 327.000000, 0.000000 -9477, -3.000000, 278.000000, 327.000000, 0.000000 -9478, -3.000000, 278.000000, 327.000000, 0.000000 -9479, -3.000000, 278.000000, 327.000000, 0.000000 -9480, -3.000000, 278.000000, 327.000000, 0.000000 -9481, -3.000000, 278.000000, 327.000000, 0.000000 -9482, -3.000000, 278.000000, 327.000000, 0.000000 -9483, -3.000000, 278.000000, 327.000000, 0.000000 -9484, -3.000000, 278.000000, 327.000000, 0.000000 -9485, -3.000000, 278.000000, 327.000000, 0.000000 -9486, -3.000000, 278.000000, 327.000000, 0.000000 -9487, -3.000000, 278.000000, 327.000000, 0.000000 -9488, -3.000000, 278.000000, 327.000000, 0.000000 -9489, -3.000000, 278.000000, 327.000000, 0.000000 -9490, -3.000000, 278.000000, 327.000000, 0.000000 -9491, -3.000000, 278.000000, 327.000000, 0.000000 -9492, -3.000000, 278.000000, 327.000000, 0.000000 -9493, -3.000000, 278.000000, 327.000000, 0.000000 -9494, -3.000000, 278.000000, 327.000000, 0.000000 -9495, -3.000000, 278.000000, 327.000000, 0.000000 -9496, -3.000000, 278.000000, 327.000000, 0.000000 -9497, -3.000000, 278.000000, 327.000000, 0.000000 -9498, -3.000000, 278.000000, 327.000000, 0.000000 -9499, -3.000000, 278.000000, 327.000000, 0.000000 -9500, -3.000000, 280.000000, 330.000000, 0.000000 -9501, -3.000000, 280.000000, 330.000000, 0.000000 -9502, -3.000000, 280.000000, 330.000000, 0.000000 -9503, -3.000000, 280.000000, 330.000000, 0.000000 -9504, -3.000000, 280.000000, 330.000000, 0.000000 -9505, -3.000000, 280.000000, 330.000000, 0.000000 -9506, -3.000000, 280.000000, 330.000000, 0.000000 -9507, -3.000000, 280.000000, 330.000000, 0.000000 -9508, -3.000000, 280.000000, 330.000000, 0.000000 -9509, -3.000000, 280.000000, 330.000000, 0.000000 -9510, -3.000000, 280.000000, 330.000000, 0.000000 -9511, -3.000000, 280.000000, 330.000000, 0.000000 -9512, -3.000000, 280.000000, 330.000000, 0.000000 -9513, -3.000000, 280.000000, 330.000000, 0.000000 -9514, -3.000000, 280.000000, 330.000000, 0.000000 -9515, -3.000000, 280.000000, 330.000000, 0.000000 -9516, -3.000000, 280.000000, 330.000000, 0.000000 -9517, -3.000000, 280.000000, 330.000000, 0.000000 -9518, -3.000000, 280.000000, 330.000000, 0.000000 -9519, -3.000000, 280.000000, 330.000000, 0.000000 -9520, -3.000000, 280.000000, 330.000000, 0.000000 -9521, -3.000000, 280.000000, 330.000000, 0.000000 -9522, -3.000000, 280.000000, 330.000000, 0.000000 -9523, -3.000000, 280.000000, 330.000000, 0.000000 -9524, -3.000000, 280.000000, 330.000000, 0.000000 -9525, -3.000000, 280.000000, 330.000000, 0.000000 -9526, -3.000000, 280.000000, 330.000000, 0.000000 -9527, -3.000000, 280.000000, 330.000000, 0.000000 -9528, -3.000000, 280.000000, 330.000000, 0.000000 -9529, -3.000000, 280.000000, 330.000000, 0.000000 -9530, -3.000000, 280.000000, 330.000000, 0.000000 -9531, -3.000000, 280.000000, 330.000000, 0.000000 -9532, -3.000000, 280.000000, 330.000000, 0.000000 -9533, -3.000000, 280.000000, 330.000000, 0.000000 -9534, -3.000000, 280.000000, 330.000000, 0.000000 -9535, -3.000000, 280.000000, 330.000000, 0.000000 -9536, -3.000000, 280.000000, 330.000000, 0.000000 -9537, -3.000000, 280.000000, 330.000000, 0.000000 -9538, -3.000000, 280.000000, 330.000000, 0.000000 -9539, -3.000000, 280.000000, 330.000000, 0.000000 -9540, -3.000000, 280.000000, 330.000000, 0.000000 -9541, -3.000000, 280.000000, 330.000000, 0.000000 -9542, -3.000000, 280.000000, 330.000000, 0.000000 -9543, -3.000000, 280.000000, 330.000000, 0.000000 -9544, -3.000000, 280.000000, 330.000000, 0.000000 -9545, -3.000000, 280.000000, 330.000000, 0.000000 -9546, -3.000000, 280.000000, 330.000000, 0.000000 -9547, -3.000000, 280.000000, 330.000000, 0.000000 -9548, -3.000000, 280.000000, 330.000000, 0.000000 -9549, -3.000000, 280.000000, 330.000000, 0.000000 -9550, -3.000000, 280.000000, 330.000000, 0.000000 -9551, -3.000000, 280.000000, 330.000000, 0.000000 -9552, -3.000000, 280.000000, 330.000000, 0.000000 -9553, -3.000000, 280.000000, 330.000000, 0.000000 -9554, -3.000000, 280.000000, 330.000000, 0.000000 -9555, -3.000000, 280.000000, 330.000000, 0.000000 -9556, -3.000000, 280.000000, 330.000000, 0.000000 -9557, -3.000000, 280.000000, 330.000000, 0.000000 -9558, -3.000000, 280.000000, 330.000000, 0.000000 -9559, -3.000000, 280.000000, 330.000000, 0.000000 -9560, -3.000000, 280.000000, 330.000000, 0.000000 -9561, -3.000000, 280.000000, 330.000000, 0.000000 -9562, -3.000000, 280.000000, 330.000000, 0.000000 -9563, -3.000000, 280.000000, 330.000000, 0.000000 -9564, -3.000000, 280.000000, 330.000000, 0.000000 -9565, -3.000000, 280.000000, 330.000000, 0.000000 -9566, -3.000000, 280.000000, 330.000000, 0.000000 -9567, -3.000000, 280.000000, 330.000000, 0.000000 -9568, -3.000000, 280.000000, 330.000000, 0.000000 -9569, -3.000000, 280.000000, 330.000000, 0.000000 -9570, -3.000000, 280.000000, 330.000000, 0.000000 -9571, -3.000000, 280.000000, 330.000000, 0.000000 -9572, -3.000000, 280.000000, 330.000000, 0.000000 -9573, -3.000000, 280.000000, 330.000000, 0.000000 -9574, -3.000000, 280.000000, 330.000000, 0.000000 -9575, -3.000000, 280.000000, 330.000000, 0.000000 -9576, -3.000000, 280.000000, 330.000000, 0.000000 -9577, -3.000000, 280.000000, 330.000000, 0.000000 -9578, -3.000000, 280.000000, 330.000000, 0.000000 -9579, -3.000000, 280.000000, 330.000000, 0.000000 -9580, -3.000000, 280.000000, 330.000000, 0.000000 -9581, -3.000000, 280.000000, 330.000000, 0.000000 -9582, -3.000000, 280.000000, 330.000000, 0.000000 -9583, -3.000000, 280.000000, 330.000000, 0.000000 -9584, -3.000000, 280.000000, 330.000000, 0.000000 -9585, -3.000000, 280.000000, 330.000000, 0.000000 -9586, -3.000000, 280.000000, 330.000000, 0.000000 -9587, -3.000000, 280.000000, 330.000000, 0.000000 -9588, -3.000000, 280.000000, 330.000000, 0.000000 -9589, -3.000000, 280.000000, 330.000000, 0.000000 -9590, -3.000000, 280.000000, 330.000000, 0.000000 -9591, -3.000000, 280.000000, 330.000000, 0.000000 -9592, -3.000000, 280.000000, 330.000000, 0.000000 -9593, -3.000000, 280.000000, 330.000000, 0.000000 -9594, -3.000000, 280.000000, 330.000000, 0.000000 -9595, -3.000000, 280.000000, 330.000000, 0.000000 -9596, -3.000000, 280.000000, 330.000000, 0.000000 -9597, -3.000000, 280.000000, 330.000000, 0.000000 -9598, -3.000000, 280.000000, 330.000000, 0.000000 -9599, -3.000000, 280.000000, 330.000000, 0.000000 -9600, -3.000000, 282.000000, 333.000000, 0.000000 -9601, -3.000000, 282.000000, 333.000000, 0.000000 -9602, -3.000000, 282.000000, 333.000000, 0.000000 -9603, -3.000000, 282.000000, 333.000000, 0.000000 -9604, -3.000000, 282.000000, 333.000000, 0.000000 -9605, -3.000000, 282.000000, 333.000000, 0.000000 -9606, -3.000000, 282.000000, 333.000000, 0.000000 -9607, -3.000000, 282.000000, 333.000000, 0.000000 -9608, -3.000000, 282.000000, 333.000000, 0.000000 -9609, -3.000000, 282.000000, 333.000000, 0.000000 -9610, -3.000000, 282.000000, 333.000000, 0.000000 -9611, -3.000000, 282.000000, 333.000000, 0.000000 -9612, -3.000000, 282.000000, 333.000000, 0.000000 -9613, -3.000000, 282.000000, 333.000000, 0.000000 -9614, -3.000000, 282.000000, 333.000000, 0.000000 -9615, -3.000000, 282.000000, 333.000000, 0.000000 -9616, -3.000000, 282.000000, 333.000000, 0.000000 -9617, -3.000000, 282.000000, 333.000000, 0.000000 -9618, -3.000000, 282.000000, 333.000000, 0.000000 -9619, -3.000000, 282.000000, 333.000000, 0.000000 -9620, -3.000000, 282.000000, 333.000000, 0.000000 -9621, -3.000000, 282.000000, 333.000000, 0.000000 -9622, -3.000000, 282.000000, 333.000000, 0.000000 -9623, -3.000000, 282.000000, 333.000000, 0.000000 -9624, -3.000000, 282.000000, 333.000000, 0.000000 -9625, -3.000000, 282.000000, 333.000000, 0.000000 -9626, -3.000000, 282.000000, 333.000000, 0.000000 -9627, -3.000000, 282.000000, 333.000000, 0.000000 -9628, -3.000000, 282.000000, 333.000000, 0.000000 -9629, -3.000000, 282.000000, 333.000000, 0.000000 -9630, -3.000000, 282.000000, 333.000000, 0.000000 -9631, -3.000000, 282.000000, 333.000000, 0.000000 -9632, -3.000000, 282.000000, 333.000000, 0.000000 -9633, -3.000000, 282.000000, 333.000000, 0.000000 -9634, -3.000000, 282.000000, 333.000000, 0.000000 -9635, -3.000000, 282.000000, 333.000000, 0.000000 -9636, -3.000000, 282.000000, 333.000000, 0.000000 -9637, -3.000000, 282.000000, 333.000000, 0.000000 -9638, -3.000000, 282.000000, 333.000000, 0.000000 -9639, -3.000000, 282.000000, 333.000000, 0.000000 -9640, -3.000000, 282.000000, 333.000000, 0.000000 -9641, -3.000000, 282.000000, 333.000000, 0.000000 -9642, -3.000000, 282.000000, 333.000000, 0.000000 -9643, -3.000000, 282.000000, 333.000000, 0.000000 -9644, -3.000000, 282.000000, 333.000000, 0.000000 -9645, -3.000000, 282.000000, 333.000000, 0.000000 -9646, -3.000000, 282.000000, 333.000000, 0.000000 -9647, -3.000000, 282.000000, 333.000000, 0.000000 -9648, -3.000000, 282.000000, 333.000000, 0.000000 -9649, -3.000000, 282.000000, 333.000000, 0.000000 -9650, -3.000000, 282.000000, 333.000000, 0.000000 -9651, -3.000000, 282.000000, 333.000000, 0.000000 -9652, -3.000000, 282.000000, 333.000000, 0.000000 -9653, -3.000000, 282.000000, 333.000000, 0.000000 -9654, -3.000000, 282.000000, 333.000000, 0.000000 -9655, -3.000000, 282.000000, 333.000000, 0.000000 -9656, -3.000000, 282.000000, 333.000000, 0.000000 -9657, -3.000000, 282.000000, 333.000000, 0.000000 -9658, -3.000000, 282.000000, 333.000000, 0.000000 -9659, -3.000000, 282.000000, 333.000000, 0.000000 -9660, -3.000000, 282.000000, 333.000000, 0.000000 -9661, -3.000000, 282.000000, 333.000000, 0.000000 -9662, -3.000000, 282.000000, 333.000000, 0.000000 -9663, -3.000000, 282.000000, 333.000000, 0.000000 -9664, -3.000000, 282.000000, 333.000000, 0.000000 -9665, -3.000000, 282.000000, 333.000000, 0.000000 -9666, -3.000000, 282.000000, 333.000000, 0.000000 -9667, -3.000000, 282.000000, 333.000000, 0.000000 -9668, -3.000000, 282.000000, 333.000000, 0.000000 -9669, -3.000000, 282.000000, 333.000000, 0.000000 -9670, -3.000000, 282.000000, 333.000000, 0.000000 -9671, -3.000000, 282.000000, 333.000000, 0.000000 -9672, -3.000000, 282.000000, 333.000000, 0.000000 -9673, -3.000000, 282.000000, 333.000000, 0.000000 -9674, -3.000000, 282.000000, 333.000000, 0.000000 -9675, -3.000000, 282.000000, 333.000000, 0.000000 -9676, -3.000000, 282.000000, 333.000000, 0.000000 -9677, -3.000000, 282.000000, 333.000000, 0.000000 -9678, -3.000000, 282.000000, 333.000000, 0.000000 -9679, -3.000000, 282.000000, 333.000000, 0.000000 -9680, -3.000000, 282.000000, 333.000000, 0.000000 -9681, -3.000000, 282.000000, 333.000000, 0.000000 -9682, -3.000000, 282.000000, 333.000000, 0.000000 -9683, -3.000000, 282.000000, 333.000000, 0.000000 -9684, -3.000000, 282.000000, 333.000000, 0.000000 -9685, -3.000000, 282.000000, 333.000000, 0.000000 -9686, -3.000000, 282.000000, 333.000000, 0.000000 -9687, -3.000000, 282.000000, 333.000000, 0.000000 -9688, -3.000000, 282.000000, 333.000000, 0.000000 -9689, -3.000000, 282.000000, 333.000000, 0.000000 -9690, -3.000000, 282.000000, 333.000000, 0.000000 -9691, -3.000000, 282.000000, 333.000000, 0.000000 -9692, -3.000000, 282.000000, 333.000000, 0.000000 -9693, -3.000000, 282.000000, 333.000000, 0.000000 -9694, -3.000000, 282.000000, 333.000000, 0.000000 -9695, -3.000000, 282.000000, 333.000000, 0.000000 -9696, -3.000000, 282.000000, 333.000000, 0.000000 -9697, -3.000000, 282.000000, 333.000000, 0.000000 -9698, -3.000000, 282.000000, 333.000000, 0.000000 -9699, -3.000000, 282.000000, 333.000000, 0.000000 -9700, -3.000000, 284.000000, 336.000000, 0.000000 -9701, -3.000000, 284.000000, 336.000000, 0.000000 -9702, -3.000000, 284.000000, 336.000000, 0.000000 -9703, -3.000000, 284.000000, 336.000000, 0.000000 -9704, -3.000000, 284.000000, 336.000000, 0.000000 -9705, -3.000000, 284.000000, 336.000000, 0.000000 -9706, -3.000000, 284.000000, 336.000000, 0.000000 -9707, -3.000000, 284.000000, 336.000000, 0.000000 -9708, -3.000000, 284.000000, 336.000000, 0.000000 -9709, -3.000000, 284.000000, 336.000000, 0.000000 -9710, -3.000000, 284.000000, 336.000000, 0.000000 -9711, -3.000000, 284.000000, 336.000000, 0.000000 -9712, -3.000000, 284.000000, 336.000000, 0.000000 -9713, -3.000000, 284.000000, 336.000000, 0.000000 -9714, -3.000000, 284.000000, 336.000000, 0.000000 -9715, -3.000000, 284.000000, 336.000000, 0.000000 -9716, -3.000000, 284.000000, 336.000000, 0.000000 -9717, -3.000000, 284.000000, 336.000000, 0.000000 -9718, -3.000000, 284.000000, 336.000000, 0.000000 -9719, -3.000000, 284.000000, 336.000000, 0.000000 -9720, -3.000000, 284.000000, 336.000000, 0.000000 -9721, -3.000000, 284.000000, 336.000000, 0.000000 -9722, -3.000000, 284.000000, 336.000000, 0.000000 -9723, -3.000000, 284.000000, 336.000000, 0.000000 -9724, -3.000000, 284.000000, 336.000000, 0.000000 -9725, -3.000000, 284.000000, 336.000000, 0.000000 -9726, -3.000000, 284.000000, 336.000000, 0.000000 -9727, -3.000000, 284.000000, 336.000000, 0.000000 -9728, -3.000000, 284.000000, 336.000000, 0.000000 -9729, -3.000000, 284.000000, 336.000000, 0.000000 -9730, -3.000000, 284.000000, 336.000000, 0.000000 -9731, -3.000000, 284.000000, 336.000000, 0.000000 -9732, -3.000000, 284.000000, 336.000000, 0.000000 -9733, -3.000000, 284.000000, 336.000000, 0.000000 -9734, -3.000000, 284.000000, 336.000000, 0.000000 -9735, -3.000000, 284.000000, 336.000000, 0.000000 -9736, -3.000000, 284.000000, 336.000000, 0.000000 -9737, -3.000000, 284.000000, 336.000000, 0.000000 -9738, -3.000000, 284.000000, 336.000000, 0.000000 -9739, -3.000000, 284.000000, 336.000000, 0.000000 -9740, -3.000000, 284.000000, 336.000000, 0.000000 -9741, -3.000000, 284.000000, 336.000000, 0.000000 -9742, -3.000000, 284.000000, 336.000000, 0.000000 -9743, -3.000000, 284.000000, 336.000000, 0.000000 -9744, -3.000000, 284.000000, 336.000000, 0.000000 -9745, -3.000000, 284.000000, 336.000000, 0.000000 -9746, -3.000000, 284.000000, 336.000000, 0.000000 -9747, -3.000000, 284.000000, 336.000000, 0.000000 -9748, -3.000000, 284.000000, 336.000000, 0.000000 -9749, -3.000000, 284.000000, 336.000000, 0.000000 -9750, -3.000000, 284.000000, 336.000000, 0.000000 -9751, -3.000000, 284.000000, 336.000000, 0.000000 -9752, -3.000000, 284.000000, 336.000000, 0.000000 -9753, -3.000000, 284.000000, 336.000000, 0.000000 -9754, -3.000000, 284.000000, 336.000000, 0.000000 -9755, -3.000000, 284.000000, 336.000000, 0.000000 -9756, -3.000000, 284.000000, 336.000000, 0.000000 -9757, -3.000000, 284.000000, 336.000000, 0.000000 -9758, -3.000000, 284.000000, 336.000000, 0.000000 -9759, -3.000000, 284.000000, 336.000000, 0.000000 -9760, -3.000000, 284.000000, 336.000000, 0.000000 -9761, -3.000000, 284.000000, 336.000000, 0.000000 -9762, -3.000000, 284.000000, 336.000000, 0.000000 -9763, -3.000000, 284.000000, 336.000000, 0.000000 -9764, -3.000000, 284.000000, 336.000000, 0.000000 -9765, -3.000000, 284.000000, 336.000000, 0.000000 -9766, -3.000000, 284.000000, 336.000000, 0.000000 -9767, -3.000000, 284.000000, 336.000000, 0.000000 -9768, -3.000000, 284.000000, 336.000000, 0.000000 -9769, -3.000000, 284.000000, 336.000000, 0.000000 -9770, -3.000000, 284.000000, 336.000000, 0.000000 -9771, -3.000000, 284.000000, 336.000000, 0.000000 -9772, -3.000000, 284.000000, 336.000000, 0.000000 -9773, -3.000000, 284.000000, 336.000000, 0.000000 -9774, -3.000000, 284.000000, 336.000000, 0.000000 -9775, -3.000000, 284.000000, 336.000000, 0.000000 -9776, -3.000000, 284.000000, 336.000000, 0.000000 -9777, -3.000000, 284.000000, 336.000000, 0.000000 -9778, -3.000000, 284.000000, 336.000000, 0.000000 -9779, -3.000000, 284.000000, 336.000000, 0.000000 -9780, -3.000000, 284.000000, 336.000000, 0.000000 -9781, -3.000000, 284.000000, 336.000000, 0.000000 -9782, -3.000000, 284.000000, 336.000000, 0.000000 -9783, -3.000000, 284.000000, 336.000000, 0.000000 -9784, -3.000000, 284.000000, 336.000000, 0.000000 -9785, -3.000000, 284.000000, 336.000000, 0.000000 -9786, -3.000000, 284.000000, 336.000000, 0.000000 -9787, -3.000000, 284.000000, 336.000000, 0.000000 -9788, -3.000000, 284.000000, 336.000000, 0.000000 -9789, -3.000000, 284.000000, 336.000000, 0.000000 -9790, -3.000000, 284.000000, 336.000000, 0.000000 -9791, -3.000000, 284.000000, 336.000000, 0.000000 -9792, -3.000000, 284.000000, 336.000000, 0.000000 -9793, -3.000000, 284.000000, 336.000000, 0.000000 -9794, -3.000000, 284.000000, 336.000000, 0.000000 -9795, -3.000000, 284.000000, 336.000000, 0.000000 -9796, -3.000000, 284.000000, 336.000000, 0.000000 -9797, -3.000000, 284.000000, 336.000000, 0.000000 -9798, -3.000000, 284.000000, 336.000000, 0.000000 -9799, -3.000000, 284.000000, 336.000000, 0.000000 -9800, -3.000000, 286.000000, 339.000000, 0.000000 -9801, -3.000000, 286.000000, 339.000000, 0.000000 -9802, -3.000000, 286.000000, 339.000000, 0.000000 -9803, -3.000000, 286.000000, 339.000000, 0.000000 -9804, -3.000000, 286.000000, 339.000000, 0.000000 -9805, -3.000000, 286.000000, 339.000000, 0.000000 -9806, -3.000000, 286.000000, 339.000000, 0.000000 -9807, -3.000000, 286.000000, 339.000000, 0.000000 -9808, -3.000000, 286.000000, 339.000000, 0.000000 -9809, -3.000000, 286.000000, 339.000000, 0.000000 -9810, -3.000000, 286.000000, 339.000000, 0.000000 -9811, -3.000000, 286.000000, 339.000000, 0.000000 -9812, -3.000000, 286.000000, 339.000000, 0.000000 -9813, -3.000000, 286.000000, 339.000000, 0.000000 -9814, -3.000000, 286.000000, 339.000000, 0.000000 -9815, -3.000000, 286.000000, 339.000000, 0.000000 -9816, -3.000000, 286.000000, 339.000000, 0.000000 -9817, -3.000000, 286.000000, 339.000000, 0.000000 -9818, -3.000000, 286.000000, 339.000000, 0.000000 -9819, -3.000000, 286.000000, 339.000000, 0.000000 -9820, -3.000000, 286.000000, 339.000000, 0.000000 -9821, -3.000000, 286.000000, 339.000000, 0.000000 -9822, -3.000000, 286.000000, 339.000000, 0.000000 -9823, -3.000000, 286.000000, 339.000000, 0.000000 -9824, -3.000000, 286.000000, 339.000000, 0.000000 -9825, -3.000000, 286.000000, 339.000000, 0.000000 -9826, -3.000000, 286.000000, 339.000000, 0.000000 -9827, -3.000000, 286.000000, 339.000000, 0.000000 -9828, -3.000000, 286.000000, 339.000000, 0.000000 -9829, -3.000000, 286.000000, 339.000000, 0.000000 -9830, -3.000000, 286.000000, 339.000000, 0.000000 -9831, -3.000000, 286.000000, 339.000000, 0.000000 -9832, -3.000000, 286.000000, 339.000000, 0.000000 -9833, -3.000000, 286.000000, 339.000000, 0.000000 -9834, -3.000000, 286.000000, 339.000000, 0.000000 -9835, -3.000000, 286.000000, 339.000000, 0.000000 -9836, -3.000000, 286.000000, 339.000000, 0.000000 -9837, -3.000000, 286.000000, 339.000000, 0.000000 -9838, -3.000000, 286.000000, 339.000000, 0.000000 -9839, -3.000000, 286.000000, 339.000000, 0.000000 -9840, -3.000000, 286.000000, 339.000000, 0.000000 -9841, -3.000000, 286.000000, 339.000000, 0.000000 -9842, -3.000000, 286.000000, 339.000000, 0.000000 -9843, -3.000000, 286.000000, 339.000000, 0.000000 -9844, -3.000000, 286.000000, 339.000000, 0.000000 -9845, -3.000000, 286.000000, 339.000000, 0.000000 -9846, -3.000000, 286.000000, 339.000000, 0.000000 -9847, -3.000000, 286.000000, 339.000000, 0.000000 -9848, -3.000000, 286.000000, 339.000000, 0.000000 -9849, -3.000000, 286.000000, 339.000000, 0.000000 -9850, -3.000000, 286.000000, 339.000000, 0.000000 -9851, -3.000000, 286.000000, 339.000000, 0.000000 -9852, -3.000000, 286.000000, 339.000000, 0.000000 -9853, -3.000000, 286.000000, 339.000000, 0.000000 -9854, -3.000000, 286.000000, 339.000000, 0.000000 -9855, -3.000000, 286.000000, 339.000000, 0.000000 -9856, -3.000000, 286.000000, 339.000000, 0.000000 -9857, -3.000000, 286.000000, 339.000000, 0.000000 -9858, -3.000000, 286.000000, 339.000000, 0.000000 -9859, -3.000000, 286.000000, 339.000000, 0.000000 -9860, -3.000000, 286.000000, 339.000000, 0.000000 -9861, -3.000000, 286.000000, 339.000000, 0.000000 -9862, -3.000000, 286.000000, 339.000000, 0.000000 -9863, -3.000000, 286.000000, 339.000000, 0.000000 -9864, -3.000000, 286.000000, 339.000000, 0.000000 -9865, -3.000000, 286.000000, 339.000000, 0.000000 -9866, -3.000000, 286.000000, 339.000000, 0.000000 -9867, -3.000000, 286.000000, 339.000000, 0.000000 -9868, -3.000000, 286.000000, 339.000000, 0.000000 -9869, -3.000000, 286.000000, 339.000000, 0.000000 -9870, -3.000000, 286.000000, 339.000000, 0.000000 -9871, -3.000000, 286.000000, 339.000000, 0.000000 -9872, -3.000000, 286.000000, 339.000000, 0.000000 -9873, -3.000000, 286.000000, 339.000000, 0.000000 -9874, -3.000000, 286.000000, 339.000000, 0.000000 -9875, -3.000000, 286.000000, 339.000000, 0.000000 -9876, -3.000000, 286.000000, 339.000000, 0.000000 -9877, -3.000000, 286.000000, 339.000000, 0.000000 -9878, -3.000000, 286.000000, 339.000000, 0.000000 -9879, -3.000000, 286.000000, 339.000000, 0.000000 -9880, -3.000000, 286.000000, 339.000000, 0.000000 -9881, -3.000000, 286.000000, 339.000000, 0.000000 -9882, -3.000000, 286.000000, 339.000000, 0.000000 -9883, -3.000000, 286.000000, 339.000000, 0.000000 -9884, -3.000000, 286.000000, 339.000000, 0.000000 -9885, -3.000000, 286.000000, 339.000000, 0.000000 -9886, -3.000000, 286.000000, 339.000000, 0.000000 -9887, -3.000000, 286.000000, 339.000000, 0.000000 -9888, -3.000000, 286.000000, 339.000000, 0.000000 -9889, -3.000000, 286.000000, 339.000000, 0.000000 -9890, -3.000000, 286.000000, 339.000000, 0.000000 -9891, -3.000000, 286.000000, 339.000000, 0.000000 -9892, -3.000000, 286.000000, 339.000000, 0.000000 -9893, -3.000000, 286.000000, 339.000000, 0.000000 -9894, -3.000000, 286.000000, 339.000000, 0.000000 -9895, -3.000000, 286.000000, 339.000000, 0.000000 -9896, -3.000000, 286.000000, 339.000000, 0.000000 -9897, -3.000000, 286.000000, 339.000000, 0.000000 -9898, -3.000000, 286.000000, 339.000000, 0.000000 -9899, -3.000000, 286.000000, 339.000000, 0.000000 -9900, -3.000000, 288.000000, 342.000000, 0.000000 -9901, -3.000000, 288.000000, 342.000000, 0.000000 -9902, -3.000000, 288.000000, 342.000000, 0.000000 -9903, -3.000000, 288.000000, 342.000000, 0.000000 -9904, -3.000000, 288.000000, 342.000000, 0.000000 -9905, -3.000000, 288.000000, 342.000000, 0.000000 -9906, -3.000000, 288.000000, 342.000000, 0.000000 -9907, -3.000000, 288.000000, 342.000000, 0.000000 -9908, -3.000000, 288.000000, 342.000000, 0.000000 -9909, -3.000000, 288.000000, 342.000000, 0.000000 -9910, -3.000000, 288.000000, 342.000000, 0.000000 -9911, -3.000000, 288.000000, 342.000000, 0.000000 -9912, -3.000000, 288.000000, 342.000000, 0.000000 -9913, -3.000000, 288.000000, 342.000000, 0.000000 -9914, -3.000000, 288.000000, 342.000000, 0.000000 -9915, -3.000000, 288.000000, 342.000000, 0.000000 -9916, -3.000000, 288.000000, 342.000000, 0.000000 -9917, -3.000000, 288.000000, 342.000000, 0.000000 -9918, -3.000000, 288.000000, 342.000000, 0.000000 -9919, -3.000000, 288.000000, 342.000000, 0.000000 -9920, -3.000000, 288.000000, 342.000000, 0.000000 -9921, -3.000000, 288.000000, 342.000000, 0.000000 -9922, -3.000000, 288.000000, 342.000000, 0.000000 -9923, -3.000000, 288.000000, 342.000000, 0.000000 -9924, -3.000000, 288.000000, 342.000000, 0.000000 -9925, -3.000000, 288.000000, 342.000000, 0.000000 -9926, -3.000000, 288.000000, 342.000000, 0.000000 -9927, -3.000000, 288.000000, 342.000000, 0.000000 -9928, -3.000000, 288.000000, 342.000000, 0.000000 -9929, -3.000000, 288.000000, 342.000000, 0.000000 -9930, -3.000000, 288.000000, 342.000000, 0.000000 -9931, -3.000000, 288.000000, 342.000000, 0.000000 -9932, -3.000000, 288.000000, 342.000000, 0.000000 -9933, -3.000000, 288.000000, 342.000000, 0.000000 -9934, -3.000000, 288.000000, 342.000000, 0.000000 -9935, -3.000000, 288.000000, 342.000000, 0.000000 -9936, -3.000000, 288.000000, 342.000000, 0.000000 -9937, -3.000000, 288.000000, 342.000000, 0.000000 -9938, -3.000000, 288.000000, 342.000000, 0.000000 -9939, -3.000000, 288.000000, 342.000000, 0.000000 -9940, -3.000000, 288.000000, 342.000000, 0.000000 -9941, -3.000000, 288.000000, 342.000000, 0.000000 -9942, -3.000000, 288.000000, 342.000000, 0.000000 -9943, -3.000000, 288.000000, 342.000000, 0.000000 -9944, -3.000000, 288.000000, 342.000000, 0.000000 -9945, -3.000000, 288.000000, 342.000000, 0.000000 -9946, -3.000000, 288.000000, 342.000000, 0.000000 -9947, -3.000000, 288.000000, 342.000000, 0.000000 -9948, -3.000000, 288.000000, 342.000000, 0.000000 -9949, -3.000000, 288.000000, 342.000000, 0.000000 -9950, -3.000000, 288.000000, 342.000000, 0.000000 -9951, -3.000000, 288.000000, 342.000000, 0.000000 -9952, -3.000000, 288.000000, 342.000000, 0.000000 -9953, -3.000000, 288.000000, 342.000000, 0.000000 -9954, -3.000000, 288.000000, 342.000000, 0.000000 -9955, -3.000000, 288.000000, 342.000000, 0.000000 -9956, -3.000000, 288.000000, 342.000000, 0.000000 -9957, -3.000000, 288.000000, 342.000000, 0.000000 -9958, -3.000000, 288.000000, 342.000000, 0.000000 -9959, -3.000000, 288.000000, 342.000000, 0.000000 -9960, -3.000000, 288.000000, 342.000000, 0.000000 -9961, -3.000000, 288.000000, 342.000000, 0.000000 -9962, -3.000000, 288.000000, 342.000000, 0.000000 -9963, -3.000000, 288.000000, 342.000000, 0.000000 -9964, -3.000000, 288.000000, 342.000000, 0.000000 -9965, -3.000000, 288.000000, 342.000000, 0.000000 -9966, -3.000000, 288.000000, 342.000000, 0.000000 -9967, -3.000000, 288.000000, 342.000000, 0.000000 -9968, -3.000000, 288.000000, 342.000000, 0.000000 -9969, -3.000000, 288.000000, 342.000000, 0.000000 -9970, -3.000000, 288.000000, 342.000000, 0.000000 -9971, -3.000000, 288.000000, 342.000000, 0.000000 -9972, -3.000000, 288.000000, 342.000000, 0.000000 -9973, -3.000000, 288.000000, 342.000000, 0.000000 -9974, -3.000000, 288.000000, 342.000000, 0.000000 -9975, -3.000000, 288.000000, 342.000000, 0.000000 -9976, -3.000000, 288.000000, 342.000000, 0.000000 -9977, -3.000000, 288.000000, 342.000000, 0.000000 -9978, -3.000000, 288.000000, 342.000000, 0.000000 -9979, -3.000000, 288.000000, 342.000000, 0.000000 -9980, -3.000000, 288.000000, 342.000000, 0.000000 -9981, -3.000000, 288.000000, 342.000000, 0.000000 -9982, -3.000000, 288.000000, 342.000000, 0.000000 -9983, -3.000000, 288.000000, 342.000000, 0.000000 -9984, -3.000000, 288.000000, 342.000000, 0.000000 -9985, -3.000000, 288.000000, 342.000000, 0.000000 -9986, -3.000000, 288.000000, 342.000000, 0.000000 -9987, -3.000000, 288.000000, 342.000000, 0.000000 -9988, -3.000000, 288.000000, 342.000000, 0.000000 -9989, -3.000000, 288.000000, 342.000000, 0.000000 -9990, -3.000000, 288.000000, 342.000000, 0.000000 -9991, -3.000000, 288.000000, 342.000000, 0.000000 -9992, -3.000000, 288.000000, 342.000000, 0.000000 -9993, -3.000000, 288.000000, 342.000000, 0.000000 -9994, -3.000000, 288.000000, 342.000000, 0.000000 -9995, -3.000000, 288.000000, 342.000000, 0.000000 -9996, -3.000000, 288.000000, 342.000000, 0.000000 -9997, -3.000000, 288.000000, 342.000000, 0.000000 -9998, -3.000000, 288.000000, 342.000000, 0.000000 -9999, -3.000000, 288.000000, 342.000000, 0.000000 -10000, -3.000000, 290.000000, 345.000000, 0.000000 -10001, -3.000000, 290.000000, 345.000000, 0.000000 -10002, -3.000000, 290.000000, 345.000000, 0.000000 -10003, -3.000000, 290.000000, 345.000000, 0.000000 -10004, -3.000000, 290.000000, 345.000000, 0.000000 -10005, -3.000000, 290.000000, 345.000000, 0.000000 -10006, -3.000000, 290.000000, 345.000000, 0.000000 -10007, -3.000000, 290.000000, 345.000000, 0.000000 -10008, -3.000000, 290.000000, 345.000000, 0.000000 -10009, -3.000000, 290.000000, 345.000000, 0.000000 -10010, -3.000000, 290.000000, 345.000000, 0.000000 -10011, -3.000000, 290.000000, 345.000000, 0.000000 -10012, -3.000000, 290.000000, 345.000000, 0.000000 -10013, -3.000000, 290.000000, 345.000000, 0.000000 -10014, -3.000000, 290.000000, 345.000000, 0.000000 -10015, -3.000000, 290.000000, 345.000000, 0.000000 -10016, -3.000000, 290.000000, 345.000000, 0.000000 -10017, -3.000000, 290.000000, 345.000000, 0.000000 -10018, -3.000000, 290.000000, 345.000000, 0.000000 -10019, -3.000000, 290.000000, 345.000000, 0.000000 -10020, -3.000000, 290.000000, 345.000000, 0.000000 -10021, -3.000000, 290.000000, 345.000000, 0.000000 -10022, -3.000000, 290.000000, 345.000000, 0.000000 -10023, -3.000000, 290.000000, 345.000000, 0.000000 -10024, -3.000000, 290.000000, 345.000000, 0.000000 -10025, -3.000000, 290.000000, 345.000000, 0.000000 -10026, -3.000000, 290.000000, 345.000000, 0.000000 -10027, -3.000000, 290.000000, 345.000000, 0.000000 -10028, -3.000000, 290.000000, 345.000000, 0.000000 -10029, -3.000000, 290.000000, 345.000000, 0.000000 -10030, -3.000000, 290.000000, 345.000000, 0.000000 -10031, -3.000000, 290.000000, 345.000000, 0.000000 -10032, -3.000000, 290.000000, 345.000000, 0.000000 -10033, -3.000000, 290.000000, 345.000000, 0.000000 -10034, -3.000000, 290.000000, 345.000000, 0.000000 -10035, -3.000000, 290.000000, 345.000000, 0.000000 -10036, -3.000000, 290.000000, 345.000000, 0.000000 -10037, -3.000000, 290.000000, 345.000000, 0.000000 -10038, -3.000000, 290.000000, 345.000000, 0.000000 -10039, -3.000000, 290.000000, 345.000000, 0.000000 -10040, -3.000000, 290.000000, 345.000000, 0.000000 -10041, -3.000000, 290.000000, 345.000000, 0.000000 -10042, -3.000000, 290.000000, 345.000000, 0.000000 -10043, -3.000000, 290.000000, 345.000000, 0.000000 -10044, -3.000000, 290.000000, 345.000000, 0.000000 -10045, -3.000000, 290.000000, 345.000000, 0.000000 -10046, -3.000000, 290.000000, 345.000000, 0.000000 -10047, -3.000000, 290.000000, 345.000000, 0.000000 -10048, -3.000000, 290.000000, 345.000000, 0.000000 -10049, -3.000000, 290.000000, 345.000000, 0.000000 -10050, -3.000000, 290.000000, 345.000000, 0.000000 -10051, -3.000000, 290.000000, 345.000000, 0.000000 -10052, -3.000000, 290.000000, 345.000000, 0.000000 -10053, -3.000000, 290.000000, 345.000000, 0.000000 -10054, -3.000000, 290.000000, 345.000000, 0.000000 -10055, -3.000000, 290.000000, 345.000000, 0.000000 -10056, -3.000000, 290.000000, 345.000000, 0.000000 -10057, -3.000000, 290.000000, 345.000000, 0.000000 -10058, -3.000000, 290.000000, 345.000000, 0.000000 -10059, -3.000000, 290.000000, 345.000000, 0.000000 -10060, -3.000000, 290.000000, 345.000000, 0.000000 -10061, -3.000000, 290.000000, 345.000000, 0.000000 -10062, -3.000000, 290.000000, 345.000000, 0.000000 -10063, -3.000000, 290.000000, 345.000000, 0.000000 -10064, -3.000000, 290.000000, 345.000000, 0.000000 -10065, -3.000000, 290.000000, 345.000000, 0.000000 -10066, -3.000000, 290.000000, 345.000000, 0.000000 -10067, -3.000000, 290.000000, 345.000000, 0.000000 -10068, -3.000000, 290.000000, 345.000000, 0.000000 -10069, -3.000000, 290.000000, 345.000000, 0.000000 -10070, -3.000000, 290.000000, 345.000000, 0.000000 -10071, -3.000000, 290.000000, 345.000000, 0.000000 -10072, -3.000000, 290.000000, 345.000000, 0.000000 -10073, -3.000000, 290.000000, 345.000000, 0.000000 -10074, -3.000000, 290.000000, 345.000000, 0.000000 -10075, -3.000000, 290.000000, 345.000000, 0.000000 -10076, -3.000000, 290.000000, 345.000000, 0.000000 -10077, -3.000000, 290.000000, 345.000000, 0.000000 -10078, -3.000000, 290.000000, 345.000000, 0.000000 -10079, -3.000000, 290.000000, 345.000000, 0.000000 -10080, -3.000000, 290.000000, 345.000000, 0.000000 -10081, -3.000000, 290.000000, 345.000000, 0.000000 -10082, -3.000000, 290.000000, 345.000000, 0.000000 -10083, -3.000000, 290.000000, 345.000000, 0.000000 -10084, -3.000000, 290.000000, 345.000000, 0.000000 -10085, -3.000000, 290.000000, 345.000000, 0.000000 -10086, -3.000000, 290.000000, 345.000000, 0.000000 -10087, -3.000000, 290.000000, 345.000000, 0.000000 -10088, -3.000000, 290.000000, 345.000000, 0.000000 -10089, -3.000000, 290.000000, 345.000000, 0.000000 -10090, -3.000000, 290.000000, 345.000000, 0.000000 -10091, -3.000000, 290.000000, 345.000000, 0.000000 -10092, -3.000000, 290.000000, 345.000000, 0.000000 -10093, -3.000000, 290.000000, 345.000000, 0.000000 -10094, -3.000000, 290.000000, 345.000000, 0.000000 -10095, -3.000000, 290.000000, 345.000000, 0.000000 -10096, -3.000000, 290.000000, 345.000000, 0.000000 -10097, -3.000000, 290.000000, 345.000000, 0.000000 -10098, -3.000000, 290.000000, 345.000000, 0.000000 -10099, -3.000000, 290.000000, 345.000000, 0.000000 -10100, -3.000000, 292.000000, 348.000000, 0.000000 -10101, -3.000000, 292.000000, 348.000000, 0.000000 -10102, -3.000000, 292.000000, 348.000000, 0.000000 -10103, -3.000000, 292.000000, 348.000000, 0.000000 -10104, -3.000000, 292.000000, 348.000000, 0.000000 -10105, -3.000000, 292.000000, 348.000000, 0.000000 -10106, -3.000000, 292.000000, 348.000000, 0.000000 -10107, -3.000000, 292.000000, 348.000000, 0.000000 -10108, -3.000000, 292.000000, 348.000000, 0.000000 -10109, -3.000000, 292.000000, 348.000000, 0.000000 -10110, -3.000000, 292.000000, 348.000000, 0.000000 -10111, -3.000000, 292.000000, 348.000000, 0.000000 -10112, -3.000000, 292.000000, 348.000000, 0.000000 -10113, -3.000000, 292.000000, 348.000000, 0.000000 -10114, -3.000000, 292.000000, 348.000000, 0.000000 -10115, -3.000000, 292.000000, 348.000000, 0.000000 -10116, -3.000000, 292.000000, 348.000000, 0.000000 -10117, -3.000000, 292.000000, 348.000000, 0.000000 -10118, -3.000000, 292.000000, 348.000000, 0.000000 -10119, -3.000000, 292.000000, 348.000000, 0.000000 -10120, -3.000000, 292.000000, 348.000000, 0.000000 -10121, -3.000000, 292.000000, 348.000000, 0.000000 -10122, -3.000000, 292.000000, 348.000000, 0.000000 -10123, -3.000000, 292.000000, 348.000000, 0.000000 -10124, -3.000000, 292.000000, 348.000000, 0.000000 -10125, -3.000000, 292.000000, 348.000000, 0.000000 -10126, -3.000000, 292.000000, 348.000000, 0.000000 -10127, -3.000000, 292.000000, 348.000000, 0.000000 -10128, -3.000000, 292.000000, 348.000000, 0.000000 -10129, -3.000000, 292.000000, 348.000000, 0.000000 -10130, -3.000000, 292.000000, 348.000000, 0.000000 -10131, -3.000000, 292.000000, 348.000000, 0.000000 -10132, -3.000000, 292.000000, 348.000000, 0.000000 -10133, -3.000000, 292.000000, 348.000000, 0.000000 -10134, -3.000000, 292.000000, 348.000000, 0.000000 -10135, -3.000000, 292.000000, 348.000000, 0.000000 -10136, -3.000000, 292.000000, 348.000000, 0.000000 -10137, -3.000000, 292.000000, 348.000000, 0.000000 -10138, -3.000000, 292.000000, 348.000000, 0.000000 -10139, -3.000000, 292.000000, 348.000000, 0.000000 -10140, -3.000000, 292.000000, 348.000000, 0.000000 -10141, -3.000000, 292.000000, 348.000000, 0.000000 -10142, -3.000000, 292.000000, 348.000000, 0.000000 -10143, -3.000000, 292.000000, 348.000000, 0.000000 -10144, -3.000000, 292.000000, 348.000000, 0.000000 -10145, -3.000000, 292.000000, 348.000000, 0.000000 -10146, -3.000000, 292.000000, 348.000000, 0.000000 -10147, -3.000000, 292.000000, 348.000000, 0.000000 -10148, -3.000000, 292.000000, 348.000000, 0.000000 -10149, -3.000000, 292.000000, 348.000000, 0.000000 -10150, -3.000000, 292.000000, 348.000000, 0.000000 -10151, -3.000000, 292.000000, 348.000000, 0.000000 -10152, -3.000000, 292.000000, 348.000000, 0.000000 -10153, -3.000000, 292.000000, 348.000000, 0.000000 -10154, -3.000000, 292.000000, 348.000000, 0.000000 -10155, -3.000000, 292.000000, 348.000000, 0.000000 -10156, -3.000000, 292.000000, 348.000000, 0.000000 -10157, -3.000000, 292.000000, 348.000000, 0.000000 -10158, -3.000000, 292.000000, 348.000000, 0.000000 -10159, -3.000000, 292.000000, 348.000000, 0.000000 -10160, -3.000000, 292.000000, 348.000000, 0.000000 -10161, -3.000000, 292.000000, 348.000000, 0.000000 -10162, -3.000000, 292.000000, 348.000000, 0.000000 -10163, -3.000000, 292.000000, 348.000000, 0.000000 -10164, -3.000000, 292.000000, 348.000000, 0.000000 -10165, -3.000000, 292.000000, 348.000000, 0.000000 -10166, -3.000000, 292.000000, 348.000000, 0.000000 -10167, -3.000000, 292.000000, 348.000000, 0.000000 -10168, -3.000000, 292.000000, 348.000000, 0.000000 -10169, -3.000000, 292.000000, 348.000000, 0.000000 -10170, -3.000000, 292.000000, 348.000000, 0.000000 -10171, -3.000000, 292.000000, 348.000000, 0.000000 -10172, -3.000000, 292.000000, 348.000000, 0.000000 -10173, -3.000000, 292.000000, 348.000000, 0.000000 -10174, -3.000000, 292.000000, 348.000000, 0.000000 -10175, -3.000000, 292.000000, 348.000000, 0.000000 -10176, -3.000000, 292.000000, 348.000000, 0.000000 -10177, -3.000000, 292.000000, 348.000000, 0.000000 -10178, -3.000000, 292.000000, 348.000000, 0.000000 -10179, -3.000000, 292.000000, 348.000000, 0.000000 -10180, -3.000000, 292.000000, 348.000000, 0.000000 -10181, -3.000000, 292.000000, 348.000000, 0.000000 -10182, -3.000000, 292.000000, 348.000000, 0.000000 -10183, -3.000000, 292.000000, 348.000000, 0.000000 -10184, -3.000000, 292.000000, 348.000000, 0.000000 -10185, -3.000000, 292.000000, 348.000000, 0.000000 -10186, -3.000000, 292.000000, 348.000000, 0.000000 -10187, -3.000000, 292.000000, 348.000000, 0.000000 -10188, -3.000000, 292.000000, 348.000000, 0.000000 -10189, -3.000000, 292.000000, 348.000000, 0.000000 -10190, -3.000000, 292.000000, 348.000000, 0.000000 -10191, -3.000000, 292.000000, 348.000000, 0.000000 -10192, -3.000000, 292.000000, 348.000000, 0.000000 -10193, -3.000000, 292.000000, 348.000000, 0.000000 -10194, -3.000000, 292.000000, 348.000000, 0.000000 -10195, -3.000000, 292.000000, 348.000000, 0.000000 -10196, -3.000000, 292.000000, 348.000000, 0.000000 -10197, -3.000000, 292.000000, 348.000000, 0.000000 -10198, -3.000000, 292.000000, 348.000000, 0.000000 -10199, -3.000000, 292.000000, 348.000000, 0.000000 -10200, -3.000000, 294.000000, 351.000000, 0.000000 -10201, -3.000000, 294.000000, 351.000000, 0.000000 -10202, -3.000000, 294.000000, 351.000000, 0.000000 -10203, -3.000000, 294.000000, 351.000000, 0.000000 -10204, -3.000000, 294.000000, 351.000000, 0.000000 -10205, -3.000000, 294.000000, 351.000000, 0.000000 -10206, -3.000000, 294.000000, 351.000000, 0.000000 -10207, -3.000000, 294.000000, 351.000000, 0.000000 -10208, -3.000000, 294.000000, 351.000000, 0.000000 -10209, -3.000000, 294.000000, 351.000000, 0.000000 -10210, -3.000000, 294.000000, 351.000000, 0.000000 -10211, -3.000000, 294.000000, 351.000000, 0.000000 -10212, -3.000000, 294.000000, 351.000000, 0.000000 -10213, -3.000000, 294.000000, 351.000000, 0.000000 -10214, -3.000000, 294.000000, 351.000000, 0.000000 -10215, -3.000000, 294.000000, 351.000000, 0.000000 -10216, -3.000000, 294.000000, 351.000000, 0.000000 -10217, -3.000000, 294.000000, 351.000000, 0.000000 -10218, -3.000000, 294.000000, 351.000000, 0.000000 -10219, -3.000000, 294.000000, 351.000000, 0.000000 -10220, -3.000000, 294.000000, 351.000000, 0.000000 -10221, -3.000000, 294.000000, 351.000000, 0.000000 -10222, -3.000000, 294.000000, 351.000000, 0.000000 -10223, -3.000000, 294.000000, 351.000000, 0.000000 -10224, -3.000000, 294.000000, 351.000000, 0.000000 -10225, -3.000000, 294.000000, 351.000000, 0.000000 -10226, -3.000000, 294.000000, 351.000000, 0.000000 -10227, -3.000000, 294.000000, 351.000000, 0.000000 -10228, -3.000000, 294.000000, 351.000000, 0.000000 -10229, -3.000000, 294.000000, 351.000000, 0.000000 -10230, -3.000000, 294.000000, 351.000000, 0.000000 -10231, -3.000000, 294.000000, 351.000000, 0.000000 -10232, -3.000000, 294.000000, 351.000000, 0.000000 -10233, -3.000000, 294.000000, 351.000000, 0.000000 -10234, -3.000000, 294.000000, 351.000000, 0.000000 -10235, -3.000000, 294.000000, 351.000000, 0.000000 -10236, -3.000000, 294.000000, 351.000000, 0.000000 -10237, -3.000000, 294.000000, 351.000000, 0.000000 -10238, -3.000000, 294.000000, 351.000000, 0.000000 -10239, -3.000000, 294.000000, 351.000000, 0.000000 -10240, -3.000000, 294.000000, 351.000000, 0.000000 -10241, -3.000000, 294.000000, 351.000000, 0.000000 -10242, -3.000000, 294.000000, 351.000000, 0.000000 -10243, -3.000000, 294.000000, 351.000000, 0.000000 -10244, -3.000000, 294.000000, 351.000000, 0.000000 -10245, -3.000000, 294.000000, 351.000000, 0.000000 -10246, -3.000000, 294.000000, 351.000000, 0.000000 -10247, -3.000000, 294.000000, 351.000000, 0.000000 -10248, -3.000000, 294.000000, 351.000000, 0.000000 -10249, -3.000000, 294.000000, 351.000000, 0.000000 -10250, -3.000000, 294.000000, 351.000000, 0.000000 -10251, -3.000000, 294.000000, 351.000000, 0.000000 -10252, -3.000000, 294.000000, 351.000000, 0.000000 -10253, -3.000000, 294.000000, 351.000000, 0.000000 -10254, -3.000000, 294.000000, 351.000000, 0.000000 -10255, -3.000000, 294.000000, 351.000000, 0.000000 -10256, -3.000000, 294.000000, 351.000000, 0.000000 -10257, -3.000000, 294.000000, 351.000000, 0.000000 -10258, -3.000000, 294.000000, 351.000000, 0.000000 -10259, -3.000000, 294.000000, 351.000000, 0.000000 -10260, -3.000000, 294.000000, 351.000000, 0.000000 -10261, -3.000000, 294.000000, 351.000000, 0.000000 -10262, -3.000000, 294.000000, 351.000000, 0.000000 -10263, -3.000000, 294.000000, 351.000000, 0.000000 -10264, -3.000000, 294.000000, 351.000000, 0.000000 -10265, -3.000000, 294.000000, 351.000000, 0.000000 -10266, -3.000000, 294.000000, 351.000000, 0.000000 -10267, -3.000000, 294.000000, 351.000000, 0.000000 -10268, -3.000000, 294.000000, 351.000000, 0.000000 -10269, -3.000000, 294.000000, 351.000000, 0.000000 -10270, -3.000000, 294.000000, 351.000000, 0.000000 -10271, -3.000000, 294.000000, 351.000000, 0.000000 -10272, -3.000000, 294.000000, 351.000000, 0.000000 -10273, -3.000000, 294.000000, 351.000000, 0.000000 -10274, -3.000000, 294.000000, 351.000000, 0.000000 -10275, -3.000000, 294.000000, 351.000000, 0.000000 -10276, -3.000000, 294.000000, 351.000000, 0.000000 -10277, -3.000000, 294.000000, 351.000000, 0.000000 -10278, -3.000000, 294.000000, 351.000000, 0.000000 -10279, -3.000000, 294.000000, 351.000000, 0.000000 -10280, -3.000000, 294.000000, 351.000000, 0.000000 -10281, -3.000000, 294.000000, 351.000000, 0.000000 -10282, -3.000000, 294.000000, 351.000000, 0.000000 -10283, -3.000000, 294.000000, 351.000000, 0.000000 -10284, -3.000000, 294.000000, 351.000000, 0.000000 -10285, -3.000000, 294.000000, 351.000000, 0.000000 -10286, -3.000000, 294.000000, 351.000000, 0.000000 -10287, -3.000000, 294.000000, 351.000000, 0.000000 -10288, -3.000000, 294.000000, 351.000000, 0.000000 -10289, -3.000000, 294.000000, 351.000000, 0.000000 -10290, -3.000000, 294.000000, 351.000000, 0.000000 -10291, -3.000000, 294.000000, 351.000000, 0.000000 -10292, -3.000000, 294.000000, 351.000000, 0.000000 -10293, -3.000000, 294.000000, 351.000000, 0.000000 -10294, -3.000000, 294.000000, 351.000000, 0.000000 -10295, -3.000000, 294.000000, 351.000000, 0.000000 -10296, -3.000000, 294.000000, 351.000000, 0.000000 -10297, -3.000000, 294.000000, 351.000000, 0.000000 -10298, -3.000000, 294.000000, 351.000000, 0.000000 -10299, -3.000000, 294.000000, 351.000000, 0.000000 -10300, -3.000000, 296.000000, 354.000000, 0.000000 -10301, -3.000000, 296.000000, 354.000000, 0.000000 -10302, -3.000000, 296.000000, 354.000000, 0.000000 -10303, -3.000000, 296.000000, 354.000000, 0.000000 -10304, -3.000000, 296.000000, 354.000000, 0.000000 -10305, -3.000000, 296.000000, 354.000000, 0.000000 -10306, -3.000000, 296.000000, 354.000000, 0.000000 -10307, -3.000000, 296.000000, 354.000000, 0.000000 -10308, -3.000000, 296.000000, 354.000000, 0.000000 -10309, -3.000000, 296.000000, 354.000000, 0.000000 -10310, -3.000000, 296.000000, 354.000000, 0.000000 -10311, -3.000000, 296.000000, 354.000000, 0.000000 -10312, -3.000000, 296.000000, 354.000000, 0.000000 -10313, -3.000000, 296.000000, 354.000000, 0.000000 -10314, -3.000000, 296.000000, 354.000000, 0.000000 -10315, -3.000000, 296.000000, 354.000000, 0.000000 -10316, -3.000000, 296.000000, 354.000000, 0.000000 -10317, -3.000000, 296.000000, 354.000000, 0.000000 -10318, -3.000000, 296.000000, 354.000000, 0.000000 -10319, -3.000000, 296.000000, 354.000000, 0.000000 -10320, -3.000000, 296.000000, 354.000000, 0.000000 -10321, -3.000000, 296.000000, 354.000000, 0.000000 -10322, -3.000000, 296.000000, 354.000000, 0.000000 -10323, -3.000000, 296.000000, 354.000000, 0.000000 -10324, -3.000000, 296.000000, 354.000000, 0.000000 -10325, -3.000000, 296.000000, 354.000000, 0.000000 -10326, -3.000000, 296.000000, 354.000000, 0.000000 -10327, -3.000000, 296.000000, 354.000000, 0.000000 -10328, -3.000000, 296.000000, 354.000000, 0.000000 -10329, -3.000000, 296.000000, 354.000000, 0.000000 -10330, -3.000000, 296.000000, 354.000000, 0.000000 -10331, -3.000000, 296.000000, 354.000000, 0.000000 -10332, -3.000000, 296.000000, 354.000000, 0.000000 -10333, -3.000000, 296.000000, 354.000000, 0.000000 -10334, -3.000000, 296.000000, 354.000000, 0.000000 -10335, -3.000000, 296.000000, 354.000000, 0.000000 -10336, -3.000000, 296.000000, 354.000000, 0.000000 -10337, -3.000000, 296.000000, 354.000000, 0.000000 -10338, -3.000000, 296.000000, 354.000000, 0.000000 -10339, -3.000000, 296.000000, 354.000000, 0.000000 -10340, -3.000000, 296.000000, 354.000000, 0.000000 -10341, -3.000000, 296.000000, 354.000000, 0.000000 -10342, -3.000000, 296.000000, 354.000000, 0.000000 -10343, -3.000000, 296.000000, 354.000000, 0.000000 -10344, -3.000000, 296.000000, 354.000000, 0.000000 -10345, -3.000000, 296.000000, 354.000000, 0.000000 -10346, -3.000000, 296.000000, 354.000000, 0.000000 -10347, -3.000000, 296.000000, 354.000000, 0.000000 -10348, -3.000000, 296.000000, 354.000000, 0.000000 -10349, -3.000000, 296.000000, 354.000000, 0.000000 -10350, -3.000000, 296.000000, 354.000000, 0.000000 -10351, -3.000000, 296.000000, 354.000000, 0.000000 -10352, -3.000000, 296.000000, 354.000000, 0.000000 -10353, -3.000000, 296.000000, 354.000000, 0.000000 -10354, -3.000000, 296.000000, 354.000000, 0.000000 -10355, -3.000000, 296.000000, 354.000000, 0.000000 -10356, -3.000000, 296.000000, 354.000000, 0.000000 -10357, -3.000000, 296.000000, 354.000000, 0.000000 -10358, -3.000000, 296.000000, 354.000000, 0.000000 -10359, -3.000000, 296.000000, 354.000000, 0.000000 -10360, -3.000000, 296.000000, 354.000000, 0.000000 -10361, -3.000000, 296.000000, 354.000000, 0.000000 -10362, -3.000000, 296.000000, 354.000000, 0.000000 -10363, -3.000000, 296.000000, 354.000000, 0.000000 -10364, -3.000000, 296.000000, 354.000000, 0.000000 -10365, -3.000000, 296.000000, 354.000000, 0.000000 -10366, -3.000000, 296.000000, 354.000000, 0.000000 -10367, -3.000000, 296.000000, 354.000000, 0.000000 -10368, -3.000000, 296.000000, 354.000000, 0.000000 -10369, -3.000000, 296.000000, 354.000000, 0.000000 -10370, -3.000000, 296.000000, 354.000000, 0.000000 -10371, -3.000000, 296.000000, 354.000000, 0.000000 -10372, -3.000000, 296.000000, 354.000000, 0.000000 -10373, -3.000000, 296.000000, 354.000000, 0.000000 -10374, -3.000000, 296.000000, 354.000000, 0.000000 -10375, -3.000000, 296.000000, 354.000000, 0.000000 -10376, -3.000000, 296.000000, 354.000000, 0.000000 -10377, -3.000000, 296.000000, 354.000000, 0.000000 -10378, -3.000000, 296.000000, 354.000000, 0.000000 -10379, -3.000000, 296.000000, 354.000000, 0.000000 -10380, -3.000000, 296.000000, 354.000000, 0.000000 -10381, -3.000000, 296.000000, 354.000000, 0.000000 -10382, -3.000000, 296.000000, 354.000000, 0.000000 -10383, -3.000000, 296.000000, 354.000000, 0.000000 -10384, -3.000000, 296.000000, 354.000000, 0.000000 -10385, -3.000000, 296.000000, 354.000000, 0.000000 -10386, -3.000000, 296.000000, 354.000000, 0.000000 -10387, -3.000000, 296.000000, 354.000000, 0.000000 -10388, -3.000000, 296.000000, 354.000000, 0.000000 -10389, -3.000000, 296.000000, 354.000000, 0.000000 -10390, -3.000000, 296.000000, 354.000000, 0.000000 -10391, -3.000000, 296.000000, 354.000000, 0.000000 -10392, -3.000000, 296.000000, 354.000000, 0.000000 -10393, -3.000000, 296.000000, 354.000000, 0.000000 -10394, -3.000000, 296.000000, 354.000000, 0.000000 -10395, -3.000000, 296.000000, 354.000000, 0.000000 -10396, -3.000000, 296.000000, 354.000000, 0.000000 -10397, -3.000000, 296.000000, 354.000000, 0.000000 -10398, -3.000000, 296.000000, 354.000000, 0.000000 -10399, -3.000000, 296.000000, 354.000000, 0.000000 -10400, -3.000000, 298.000000, 357.000000, 0.000000 -10401, -3.000000, 298.000000, 357.000000, 0.000000 -10402, -3.000000, 298.000000, 357.000000, 0.000000 -10403, -3.000000, 298.000000, 357.000000, 0.000000 -10404, -3.000000, 298.000000, 357.000000, 0.000000 -10405, -3.000000, 298.000000, 357.000000, 0.000000 -10406, -3.000000, 298.000000, 357.000000, 0.000000 -10407, -3.000000, 298.000000, 357.000000, 0.000000 -10408, -3.000000, 298.000000, 357.000000, 0.000000 -10409, -3.000000, 298.000000, 357.000000, 0.000000 -10410, -3.000000, 298.000000, 357.000000, 0.000000 -10411, -3.000000, 298.000000, 357.000000, 0.000000 -10412, -3.000000, 298.000000, 357.000000, 0.000000 -10413, -3.000000, 298.000000, 357.000000, 0.000000 -10414, -3.000000, 298.000000, 357.000000, 0.000000 -10415, -3.000000, 298.000000, 357.000000, 0.000000 -10416, -3.000000, 298.000000, 357.000000, 0.000000 -10417, -3.000000, 298.000000, 357.000000, 0.000000 -10418, -3.000000, 298.000000, 357.000000, 0.000000 -10419, -3.000000, 298.000000, 357.000000, 0.000000 -10420, -3.000000, 298.000000, 357.000000, 0.000000 -10421, -3.000000, 298.000000, 357.000000, 0.000000 -10422, -3.000000, 298.000000, 357.000000, 0.000000 -10423, -3.000000, 298.000000, 357.000000, 0.000000 -10424, -3.000000, 298.000000, 357.000000, 0.000000 -10425, -3.000000, 298.000000, 357.000000, 0.000000 -10426, -3.000000, 298.000000, 357.000000, 0.000000 -10427, -3.000000, 298.000000, 357.000000, 0.000000 -10428, -3.000000, 298.000000, 357.000000, 0.000000 -10429, -3.000000, 298.000000, 357.000000, 0.000000 -10430, -3.000000, 298.000000, 357.000000, 0.000000 -10431, -3.000000, 298.000000, 357.000000, 0.000000 -10432, -3.000000, 298.000000, 357.000000, 0.000000 -10433, -3.000000, 298.000000, 357.000000, 0.000000 -10434, -3.000000, 298.000000, 357.000000, 0.000000 -10435, -3.000000, 298.000000, 357.000000, 0.000000 -10436, -3.000000, 298.000000, 357.000000, 0.000000 -10437, -3.000000, 298.000000, 357.000000, 0.000000 -10438, -3.000000, 298.000000, 357.000000, 0.000000 -10439, -3.000000, 298.000000, 357.000000, 0.000000 -10440, -3.000000, 298.000000, 357.000000, 0.000000 -10441, -3.000000, 298.000000, 357.000000, 0.000000 -10442, -3.000000, 298.000000, 357.000000, 0.000000 -10443, -3.000000, 298.000000, 357.000000, 0.000000 -10444, -3.000000, 298.000000, 357.000000, 0.000000 -10445, -3.000000, 298.000000, 357.000000, 0.000000 -10446, -3.000000, 298.000000, 357.000000, 0.000000 -10447, -3.000000, 298.000000, 357.000000, 0.000000 -10448, -3.000000, 298.000000, 357.000000, 0.000000 -10449, -3.000000, 298.000000, 357.000000, 0.000000 -10450, -3.000000, 298.000000, 357.000000, 0.000000 -10451, -3.000000, 298.000000, 357.000000, 0.000000 -10452, -3.000000, 298.000000, 357.000000, 0.000000 -10453, -3.000000, 298.000000, 357.000000, 0.000000 -10454, -3.000000, 298.000000, 357.000000, 0.000000 -10455, -3.000000, 298.000000, 357.000000, 0.000000 -10456, -3.000000, 298.000000, 357.000000, 0.000000 -10457, -3.000000, 298.000000, 357.000000, 0.000000 -10458, -3.000000, 298.000000, 357.000000, 0.000000 -10459, -3.000000, 298.000000, 357.000000, 0.000000 -10460, -3.000000, 298.000000, 357.000000, 0.000000 -10461, -3.000000, 298.000000, 357.000000, 0.000000 -10462, -3.000000, 298.000000, 357.000000, 0.000000 -10463, -3.000000, 298.000000, 357.000000, 0.000000 -10464, -3.000000, 298.000000, 357.000000, 0.000000 -10465, -3.000000, 298.000000, 357.000000, 0.000000 -10466, -3.000000, 298.000000, 357.000000, 0.000000 -10467, -3.000000, 298.000000, 357.000000, 0.000000 -10468, -3.000000, 298.000000, 357.000000, 0.000000 -10469, -3.000000, 298.000000, 357.000000, 0.000000 -10470, -3.000000, 298.000000, 357.000000, 0.000000 -10471, -3.000000, 298.000000, 357.000000, 0.000000 -10472, -3.000000, 298.000000, 357.000000, 0.000000 -10473, -3.000000, 298.000000, 357.000000, 0.000000 -10474, -3.000000, 298.000000, 357.000000, 0.000000 -10475, -3.000000, 298.000000, 357.000000, 0.000000 -10476, -3.000000, 298.000000, 357.000000, 0.000000 -10477, -3.000000, 298.000000, 357.000000, 0.000000 -10478, -3.000000, 298.000000, 357.000000, 0.000000 -10479, -3.000000, 298.000000, 357.000000, 0.000000 -10480, -3.000000, 298.000000, 357.000000, 0.000000 -10481, -3.000000, 298.000000, 357.000000, 0.000000 -10482, -3.000000, 298.000000, 357.000000, 0.000000 -10483, -3.000000, 298.000000, 357.000000, 0.000000 -10484, -3.000000, 298.000000, 357.000000, 0.000000 -10485, -3.000000, 298.000000, 357.000000, 0.000000 -10486, -3.000000, 298.000000, 357.000000, 0.000000 -10487, -3.000000, 298.000000, 357.000000, 0.000000 -10488, -3.000000, 298.000000, 357.000000, 0.000000 -10489, -3.000000, 298.000000, 357.000000, 0.000000 -10490, -3.000000, 298.000000, 357.000000, 0.000000 -10491, -3.000000, 298.000000, 357.000000, 0.000000 -10492, -3.000000, 298.000000, 357.000000, 0.000000 -10493, -3.000000, 298.000000, 357.000000, 0.000000 -10494, -3.000000, 298.000000, 357.000000, 0.000000 -10495, -3.000000, 298.000000, 357.000000, 0.000000 -10496, -3.000000, 298.000000, 357.000000, 0.000000 -10497, -3.000000, 298.000000, 357.000000, 0.000000 -10498, -3.000000, 298.000000, 357.000000, 0.000000 -10499, -3.000000, 298.000000, 357.000000, 0.000000 -10500, -3.000000, 300.000000, 360.000000, 0.000000 -10501, -3.000000, 300.000000, 360.000000, 0.000000 -10502, -3.000000, 300.000000, 360.000000, 0.000000 -10503, -3.000000, 300.000000, 360.000000, 0.000000 -10504, -3.000000, 300.000000, 360.000000, 0.000000 -10505, -3.000000, 300.000000, 360.000000, 0.000000 -10506, -3.000000, 300.000000, 360.000000, 0.000000 -10507, -3.000000, 300.000000, 360.000000, 0.000000 -10508, -3.000000, 300.000000, 360.000000, 0.000000 -10509, -3.000000, 300.000000, 360.000000, 0.000000 -10510, -3.000000, 300.000000, 360.000000, 0.000000 -10511, -3.000000, 300.000000, 360.000000, 0.000000 -10512, -3.000000, 300.000000, 360.000000, 0.000000 -10513, -3.000000, 300.000000, 360.000000, 0.000000 -10514, -3.000000, 300.000000, 360.000000, 0.000000 -10515, -3.000000, 300.000000, 360.000000, 0.000000 -10516, -3.000000, 300.000000, 360.000000, 0.000000 -10517, -3.000000, 300.000000, 360.000000, 0.000000 -10518, -3.000000, 300.000000, 360.000000, 0.000000 -10519, -3.000000, 300.000000, 360.000000, 0.000000 -10520, -3.000000, 300.000000, 360.000000, 0.000000 -10521, -3.000000, 300.000000, 360.000000, 0.000000 -10522, -3.000000, 300.000000, 360.000000, 0.000000 -10523, -3.000000, 300.000000, 360.000000, 0.000000 -10524, -3.000000, 300.000000, 360.000000, 0.000000 -10525, -3.000000, 300.000000, 360.000000, 0.000000 -10526, -3.000000, 300.000000, 360.000000, 0.000000 -10527, -3.000000, 300.000000, 360.000000, 0.000000 -10528, -3.000000, 300.000000, 360.000000, 0.000000 -10529, -3.000000, 300.000000, 360.000000, 0.000000 -10530, -3.000000, 300.000000, 360.000000, 0.000000 -10531, -3.000000, 300.000000, 360.000000, 0.000000 -10532, -3.000000, 300.000000, 360.000000, 0.000000 -10533, -3.000000, 300.000000, 360.000000, 0.000000 -10534, -3.000000, 300.000000, 360.000000, 0.000000 -10535, -3.000000, 300.000000, 360.000000, 0.000000 -10536, -3.000000, 300.000000, 360.000000, 0.000000 -10537, -3.000000, 300.000000, 360.000000, 0.000000 -10538, -3.000000, 300.000000, 360.000000, 0.000000 -10539, -3.000000, 300.000000, 360.000000, 0.000000 -10540, -3.000000, 300.000000, 360.000000, 0.000000 -10541, -3.000000, 300.000000, 360.000000, 0.000000 -10542, -3.000000, 300.000000, 360.000000, 0.000000 -10543, -3.000000, 300.000000, 360.000000, 0.000000 -10544, -3.000000, 300.000000, 360.000000, 0.000000 -10545, -3.000000, 300.000000, 360.000000, 0.000000 -10546, -3.000000, 300.000000, 360.000000, 0.000000 -10547, -3.000000, 300.000000, 360.000000, 0.000000 -10548, -3.000000, 300.000000, 360.000000, 0.000000 -10549, -3.000000, 300.000000, 360.000000, 0.000000 -10550, -3.000000, 300.000000, 360.000000, 0.000000 -10551, -3.000000, 300.000000, 360.000000, 0.000000 -10552, -3.000000, 300.000000, 360.000000, 0.000000 -10553, -3.000000, 300.000000, 360.000000, 0.000000 -10554, -3.000000, 300.000000, 360.000000, 0.000000 -10555, -3.000000, 300.000000, 360.000000, 0.000000 -10556, -3.000000, 300.000000, 360.000000, 0.000000 -10557, -3.000000, 300.000000, 360.000000, 0.000000 -10558, -3.000000, 300.000000, 360.000000, 0.000000 -10559, -3.000000, 300.000000, 360.000000, 0.000000 -10560, -3.000000, 300.000000, 360.000000, 0.000000 -10561, -3.000000, 300.000000, 360.000000, 0.000000 -10562, -3.000000, 300.000000, 360.000000, 0.000000 -10563, -3.000000, 300.000000, 360.000000, 0.000000 -10564, -3.000000, 300.000000, 360.000000, 0.000000 -10565, -3.000000, 300.000000, 360.000000, 0.000000 -10566, -3.000000, 300.000000, 360.000000, 0.000000 -10567, -3.000000, 300.000000, 360.000000, 0.000000 -10568, -3.000000, 300.000000, 360.000000, 0.000000 -10569, -3.000000, 300.000000, 360.000000, 0.000000 -10570, -3.000000, 300.000000, 360.000000, 0.000000 -10571, -3.000000, 300.000000, 360.000000, 0.000000 -10572, -3.000000, 300.000000, 360.000000, 0.000000 -10573, -3.000000, 300.000000, 360.000000, 0.000000 -10574, -3.000000, 300.000000, 360.000000, 0.000000 -10575, -3.000000, 300.000000, 360.000000, 0.000000 -10576, -3.000000, 300.000000, 360.000000, 0.000000 -10577, -3.000000, 300.000000, 360.000000, 0.000000 -10578, -3.000000, 300.000000, 360.000000, 0.000000 -10579, -3.000000, 300.000000, 360.000000, 0.000000 -10580, -3.000000, 300.000000, 360.000000, 0.000000 -10581, -3.000000, 300.000000, 360.000000, 0.000000 -10582, -3.000000, 300.000000, 360.000000, 0.000000 -10583, -3.000000, 300.000000, 360.000000, 0.000000 -10584, -3.000000, 300.000000, 360.000000, 0.000000 -10585, -3.000000, 300.000000, 360.000000, 0.000000 -10586, -3.000000, 300.000000, 360.000000, 0.000000 -10587, -3.000000, 300.000000, 360.000000, 0.000000 -10588, -3.000000, 300.000000, 360.000000, 0.000000 -10589, -3.000000, 300.000000, 360.000000, 0.000000 -10590, -3.000000, 300.000000, 360.000000, 0.000000 -10591, -3.000000, 300.000000, 360.000000, 0.000000 -10592, -3.000000, 300.000000, 360.000000, 0.000000 -10593, -3.000000, 300.000000, 360.000000, 0.000000 -10594, -3.000000, 300.000000, 360.000000, 0.000000 -10595, -3.000000, 300.000000, 360.000000, 0.000000 -10596, -3.000000, 300.000000, 360.000000, 0.000000 -10597, -3.000000, 300.000000, 360.000000, 0.000000 -10598, -3.000000, 300.000000, 360.000000, 0.000000 -10599, -3.000000, 300.000000, 360.000000, 0.000000 -10600, -3.000000, 302.000000, 363.000000, 0.000000 -10601, -3.000000, 302.000000, 363.000000, 0.000000 -10602, -3.000000, 302.000000, 363.000000, 0.000000 -10603, -3.000000, 302.000000, 363.000000, 0.000000 -10604, -3.000000, 302.000000, 363.000000, 0.000000 -10605, -3.000000, 302.000000, 363.000000, 0.000000 -10606, -3.000000, 302.000000, 363.000000, 0.000000 -10607, -3.000000, 302.000000, 363.000000, 0.000000 -10608, -3.000000, 302.000000, 363.000000, 0.000000 -10609, -3.000000, 302.000000, 363.000000, 0.000000 -10610, -3.000000, 302.000000, 363.000000, 0.000000 -10611, -3.000000, 302.000000, 363.000000, 0.000000 -10612, -3.000000, 302.000000, 363.000000, 0.000000 -10613, -3.000000, 302.000000, 363.000000, 0.000000 -10614, -3.000000, 302.000000, 363.000000, 0.000000 -10615, -3.000000, 302.000000, 363.000000, 0.000000 -10616, -3.000000, 302.000000, 363.000000, 0.000000 -10617, -3.000000, 302.000000, 363.000000, 0.000000 -10618, -3.000000, 302.000000, 363.000000, 0.000000 -10619, -3.000000, 302.000000, 363.000000, 0.000000 -10620, -3.000000, 302.000000, 363.000000, 0.000000 -10621, -3.000000, 302.000000, 363.000000, 0.000000 -10622, -3.000000, 302.000000, 363.000000, 0.000000 -10623, -3.000000, 302.000000, 363.000000, 0.000000 -10624, -3.000000, 302.000000, 363.000000, 0.000000 -10625, -3.000000, 302.000000, 363.000000, 0.000000 -10626, -3.000000, 302.000000, 363.000000, 0.000000 -10627, -3.000000, 302.000000, 363.000000, 0.000000 -10628, -3.000000, 302.000000, 363.000000, 0.000000 -10629, -3.000000, 302.000000, 363.000000, 0.000000 -10630, -3.000000, 302.000000, 363.000000, 0.000000 -10631, -3.000000, 302.000000, 363.000000, 0.000000 -10632, -3.000000, 302.000000, 363.000000, 0.000000 -10633, -3.000000, 302.000000, 363.000000, 0.000000 -10634, -3.000000, 302.000000, 363.000000, 0.000000 -10635, -3.000000, 302.000000, 363.000000, 0.000000 -10636, -3.000000, 302.000000, 363.000000, 0.000000 -10637, -3.000000, 302.000000, 363.000000, 0.000000 -10638, -3.000000, 302.000000, 363.000000, 0.000000 -10639, -3.000000, 302.000000, 363.000000, 0.000000 -10640, -3.000000, 302.000000, 363.000000, 0.000000 -10641, -3.000000, 302.000000, 363.000000, 0.000000 -10642, -3.000000, 302.000000, 363.000000, 0.000000 -10643, -3.000000, 302.000000, 363.000000, 0.000000 -10644, -3.000000, 302.000000, 363.000000, 0.000000 -10645, -3.000000, 302.000000, 363.000000, 0.000000 -10646, -3.000000, 302.000000, 363.000000, 0.000000 -10647, -3.000000, 302.000000, 363.000000, 0.000000 -10648, -3.000000, 302.000000, 363.000000, 0.000000 -10649, -3.000000, 302.000000, 363.000000, 0.000000 -10650, -3.000000, 302.000000, 363.000000, 0.000000 -10651, -3.000000, 302.000000, 363.000000, 0.000000 -10652, -3.000000, 302.000000, 363.000000, 0.000000 -10653, -3.000000, 302.000000, 363.000000, 0.000000 -10654, -3.000000, 302.000000, 363.000000, 0.000000 -10655, -3.000000, 302.000000, 363.000000, 0.000000 -10656, -3.000000, 302.000000, 363.000000, 0.000000 -10657, -3.000000, 302.000000, 363.000000, 0.000000 -10658, -3.000000, 302.000000, 363.000000, 0.000000 -10659, -3.000000, 302.000000, 363.000000, 0.000000 -10660, -3.000000, 302.000000, 363.000000, 0.000000 -10661, -3.000000, 302.000000, 363.000000, 0.000000 -10662, -3.000000, 302.000000, 363.000000, 0.000000 -10663, -3.000000, 302.000000, 363.000000, 0.000000 -10664, -3.000000, 302.000000, 363.000000, 0.000000 -10665, -3.000000, 302.000000, 363.000000, 0.000000 -10666, -3.000000, 302.000000, 363.000000, 0.000000 -10667, -3.000000, 302.000000, 363.000000, 0.000000 -10668, -3.000000, 302.000000, 363.000000, 0.000000 -10669, -3.000000, 302.000000, 363.000000, 0.000000 -10670, -3.000000, 302.000000, 363.000000, 0.000000 -10671, -3.000000, 302.000000, 363.000000, 0.000000 -10672, -3.000000, 302.000000, 363.000000, 0.000000 -10673, -3.000000, 302.000000, 363.000000, 0.000000 -10674, -3.000000, 302.000000, 363.000000, 0.000000 -10675, -3.000000, 302.000000, 363.000000, 0.000000 -10676, -3.000000, 302.000000, 363.000000, 0.000000 -10677, -3.000000, 302.000000, 363.000000, 0.000000 -10678, -3.000000, 302.000000, 363.000000, 0.000000 -10679, -3.000000, 302.000000, 363.000000, 0.000000 -10680, -3.000000, 302.000000, 363.000000, 0.000000 -10681, -3.000000, 302.000000, 363.000000, 0.000000 -10682, -3.000000, 302.000000, 363.000000, 0.000000 -10683, -3.000000, 302.000000, 363.000000, 0.000000 -10684, -3.000000, 302.000000, 363.000000, 0.000000 -10685, -3.000000, 302.000000, 363.000000, 0.000000 -10686, -3.000000, 302.000000, 363.000000, 0.000000 -10687, -3.000000, 302.000000, 363.000000, 0.000000 -10688, -3.000000, 302.000000, 363.000000, 0.000000 -10689, -3.000000, 302.000000, 363.000000, 0.000000 -10690, -3.000000, 302.000000, 363.000000, 0.000000 -10691, -3.000000, 302.000000, 363.000000, 0.000000 -10692, -3.000000, 302.000000, 363.000000, 0.000000 -10693, -3.000000, 302.000000, 363.000000, 0.000000 -10694, -3.000000, 302.000000, 363.000000, 0.000000 -10695, -3.000000, 302.000000, 363.000000, 0.000000 -10696, -3.000000, 302.000000, 363.000000, 0.000000 -10697, -3.000000, 302.000000, 363.000000, 0.000000 -10698, -3.000000, 302.000000, 363.000000, 0.000000 -10699, -3.000000, 302.000000, 363.000000, 0.000000 -10700, -3.000000, 304.000000, 366.000000, 0.000000 -10701, -3.000000, 304.000000, 366.000000, 0.000000 -10702, -3.000000, 304.000000, 366.000000, 0.000000 -10703, -3.000000, 304.000000, 366.000000, 0.000000 -10704, -3.000000, 304.000000, 366.000000, 0.000000 -10705, -3.000000, 304.000000, 366.000000, 0.000000 -10706, -3.000000, 304.000000, 366.000000, 0.000000 -10707, -3.000000, 304.000000, 366.000000, 0.000000 -10708, -3.000000, 304.000000, 366.000000, 0.000000 -10709, -3.000000, 304.000000, 366.000000, 0.000000 -10710, -3.000000, 304.000000, 366.000000, 0.000000 -10711, -3.000000, 304.000000, 366.000000, 0.000000 -10712, -3.000000, 304.000000, 366.000000, 0.000000 -10713, -3.000000, 304.000000, 366.000000, 0.000000 -10714, -3.000000, 304.000000, 366.000000, 0.000000 -10715, -3.000000, 304.000000, 366.000000, 0.000000 -10716, -3.000000, 304.000000, 366.000000, 0.000000 -10717, -3.000000, 304.000000, 366.000000, 0.000000 -10718, -3.000000, 304.000000, 366.000000, 0.000000 -10719, -3.000000, 304.000000, 366.000000, 0.000000 -10720, -3.000000, 304.000000, 366.000000, 0.000000 -10721, -3.000000, 304.000000, 366.000000, 0.000000 -10722, -3.000000, 304.000000, 366.000000, 0.000000 -10723, -3.000000, 304.000000, 366.000000, 0.000000 -10724, -3.000000, 304.000000, 366.000000, 0.000000 -10725, -3.000000, 304.000000, 366.000000, 0.000000 -10726, -3.000000, 304.000000, 366.000000, 0.000000 -10727, -3.000000, 304.000000, 366.000000, 0.000000 -10728, -3.000000, 304.000000, 366.000000, 0.000000 -10729, -3.000000, 304.000000, 366.000000, 0.000000 -10730, -3.000000, 304.000000, 366.000000, 0.000000 -10731, -3.000000, 304.000000, 366.000000, 0.000000 -10732, -3.000000, 304.000000, 366.000000, 0.000000 -10733, -3.000000, 304.000000, 366.000000, 0.000000 -10734, -3.000000, 304.000000, 366.000000, 0.000000 -10735, -3.000000, 304.000000, 366.000000, 0.000000 -10736, -3.000000, 304.000000, 366.000000, 0.000000 -10737, -3.000000, 304.000000, 366.000000, 0.000000 -10738, -3.000000, 304.000000, 366.000000, 0.000000 -10739, -3.000000, 304.000000, 366.000000, 0.000000 -10740, -3.000000, 304.000000, 366.000000, 0.000000 -10741, -3.000000, 304.000000, 366.000000, 0.000000 -10742, -3.000000, 304.000000, 366.000000, 0.000000 -10743, -3.000000, 304.000000, 366.000000, 0.000000 -10744, -3.000000, 304.000000, 366.000000, 0.000000 -10745, -3.000000, 304.000000, 366.000000, 0.000000 -10746, -3.000000, 304.000000, 366.000000, 0.000000 -10747, -3.000000, 304.000000, 366.000000, 0.000000 -10748, -3.000000, 304.000000, 366.000000, 0.000000 -10749, -3.000000, 304.000000, 366.000000, 0.000000 -10750, -3.000000, 304.000000, 366.000000, 0.000000 -10751, -3.000000, 304.000000, 366.000000, 0.000000 -10752, -3.000000, 304.000000, 366.000000, 0.000000 -10753, -3.000000, 304.000000, 366.000000, 0.000000 -10754, -3.000000, 304.000000, 366.000000, 0.000000 -10755, -3.000000, 304.000000, 366.000000, 0.000000 -10756, -3.000000, 304.000000, 366.000000, 0.000000 -10757, -3.000000, 304.000000, 366.000000, 0.000000 -10758, -3.000000, 304.000000, 366.000000, 0.000000 -10759, -3.000000, 304.000000, 366.000000, 0.000000 -10760, -3.000000, 304.000000, 366.000000, 0.000000 -10761, -3.000000, 304.000000, 366.000000, 0.000000 -10762, -3.000000, 304.000000, 366.000000, 0.000000 -10763, -3.000000, 304.000000, 366.000000, 0.000000 -10764, -3.000000, 304.000000, 366.000000, 0.000000 -10765, -3.000000, 304.000000, 366.000000, 0.000000 -10766, -3.000000, 304.000000, 366.000000, 0.000000 -10767, -3.000000, 304.000000, 366.000000, 0.000000 -10768, -3.000000, 304.000000, 366.000000, 0.000000 -10769, -3.000000, 304.000000, 366.000000, 0.000000 -10770, -3.000000, 304.000000, 366.000000, 0.000000 -10771, -3.000000, 304.000000, 366.000000, 0.000000 -10772, -3.000000, 304.000000, 366.000000, 0.000000 -10773, -3.000000, 304.000000, 366.000000, 0.000000 -10774, -3.000000, 304.000000, 366.000000, 0.000000 -10775, -3.000000, 304.000000, 366.000000, 0.000000 -10776, -3.000000, 304.000000, 366.000000, 0.000000 -10777, -3.000000, 304.000000, 366.000000, 0.000000 -10778, -3.000000, 304.000000, 366.000000, 0.000000 -10779, -3.000000, 304.000000, 366.000000, 0.000000 -10780, -3.000000, 304.000000, 366.000000, 0.000000 -10781, -3.000000, 304.000000, 366.000000, 0.000000 -10782, -3.000000, 304.000000, 366.000000, 0.000000 -10783, -3.000000, 304.000000, 366.000000, 0.000000 -10784, -3.000000, 304.000000, 366.000000, 0.000000 -10785, -3.000000, 304.000000, 366.000000, 0.000000 -10786, -3.000000, 304.000000, 366.000000, 0.000000 -10787, -3.000000, 304.000000, 366.000000, 0.000000 -10788, -3.000000, 304.000000, 366.000000, 0.000000 -10789, -3.000000, 304.000000, 366.000000, 0.000000 -10790, -3.000000, 304.000000, 366.000000, 0.000000 -10791, -3.000000, 304.000000, 366.000000, 0.000000 -10792, -3.000000, 304.000000, 366.000000, 0.000000 -10793, -3.000000, 304.000000, 366.000000, 0.000000 -10794, -3.000000, 304.000000, 366.000000, 0.000000 -10795, -3.000000, 304.000000, 366.000000, 0.000000 -10796, -3.000000, 304.000000, 366.000000, 0.000000 -10797, -3.000000, 304.000000, 366.000000, 0.000000 -10798, -3.000000, 304.000000, 366.000000, 0.000000 -10799, -3.000000, 304.000000, 366.000000, 0.000000 -10800, -3.000000, 306.000000, 369.000000, 0.000000 -10801, -3.000000, 306.000000, 369.000000, 0.000000 -10802, -3.000000, 306.000000, 369.000000, 0.000000 -10803, -3.000000, 306.000000, 369.000000, 0.000000 -10804, -3.000000, 306.000000, 369.000000, 0.000000 -10805, -3.000000, 306.000000, 369.000000, 0.000000 -10806, -3.000000, 306.000000, 369.000000, 0.000000 -10807, -3.000000, 306.000000, 369.000000, 0.000000 -10808, -3.000000, 306.000000, 369.000000, 0.000000 -10809, -3.000000, 306.000000, 369.000000, 0.000000 -10810, -3.000000, 306.000000, 369.000000, 0.000000 -10811, -3.000000, 306.000000, 369.000000, 0.000000 -10812, -3.000000, 306.000000, 369.000000, 0.000000 -10813, -3.000000, 306.000000, 369.000000, 0.000000 -10814, -3.000000, 306.000000, 369.000000, 0.000000 -10815, -3.000000, 306.000000, 369.000000, 0.000000 -10816, -3.000000, 306.000000, 369.000000, 0.000000 -10817, -3.000000, 306.000000, 369.000000, 0.000000 -10818, -3.000000, 306.000000, 369.000000, 0.000000 -10819, -3.000000, 306.000000, 369.000000, 0.000000 -10820, -3.000000, 306.000000, 369.000000, 0.000000 -10821, -3.000000, 306.000000, 369.000000, 0.000000 -10822, -3.000000, 306.000000, 369.000000, 0.000000 -10823, -3.000000, 306.000000, 369.000000, 0.000000 -10824, -3.000000, 306.000000, 369.000000, 0.000000 -10825, -3.000000, 306.000000, 369.000000, 0.000000 -10826, -3.000000, 306.000000, 369.000000, 0.000000 -10827, -3.000000, 306.000000, 369.000000, 0.000000 -10828, -3.000000, 306.000000, 369.000000, 0.000000 -10829, -3.000000, 306.000000, 369.000000, 0.000000 -10830, -3.000000, 306.000000, 369.000000, 0.000000 -10831, -3.000000, 306.000000, 369.000000, 0.000000 -10832, -3.000000, 306.000000, 369.000000, 0.000000 -10833, -3.000000, 306.000000, 369.000000, 0.000000 -10834, -3.000000, 306.000000, 369.000000, 0.000000 -10835, -3.000000, 306.000000, 369.000000, 0.000000 -10836, -3.000000, 306.000000, 369.000000, 0.000000 -10837, -3.000000, 306.000000, 369.000000, 0.000000 -10838, -3.000000, 306.000000, 369.000000, 0.000000 -10839, -3.000000, 306.000000, 369.000000, 0.000000 -10840, -3.000000, 306.000000, 369.000000, 0.000000 -10841, -3.000000, 306.000000, 369.000000, 0.000000 -10842, -3.000000, 306.000000, 369.000000, 0.000000 -10843, -3.000000, 306.000000, 369.000000, 0.000000 -10844, -3.000000, 306.000000, 369.000000, 0.000000 -10845, -3.000000, 306.000000, 369.000000, 0.000000 -10846, -3.000000, 306.000000, 369.000000, 0.000000 -10847, -3.000000, 306.000000, 369.000000, 0.000000 -10848, -3.000000, 306.000000, 369.000000, 0.000000 -10849, -3.000000, 306.000000, 369.000000, 0.000000 -10850, -3.000000, 306.000000, 369.000000, 0.000000 -10851, -3.000000, 306.000000, 369.000000, 0.000000 -10852, -3.000000, 306.000000, 369.000000, 0.000000 -10853, -3.000000, 306.000000, 369.000000, 0.000000 -10854, -3.000000, 306.000000, 369.000000, 0.000000 -10855, -3.000000, 306.000000, 369.000000, 0.000000 -10856, -3.000000, 306.000000, 369.000000, 0.000000 -10857, -3.000000, 306.000000, 369.000000, 0.000000 -10858, -3.000000, 306.000000, 369.000000, 0.000000 -10859, -3.000000, 306.000000, 369.000000, 0.000000 -10860, -3.000000, 306.000000, 369.000000, 0.000000 -10861, -3.000000, 306.000000, 369.000000, 0.000000 -10862, -3.000000, 306.000000, 369.000000, 0.000000 -10863, -3.000000, 306.000000, 369.000000, 0.000000 -10864, -3.000000, 306.000000, 369.000000, 0.000000 -10865, -3.000000, 306.000000, 369.000000, 0.000000 -10866, -3.000000, 306.000000, 369.000000, 0.000000 -10867, -3.000000, 306.000000, 369.000000, 0.000000 -10868, -3.000000, 306.000000, 369.000000, 0.000000 -10869, -3.000000, 306.000000, 369.000000, 0.000000 -10870, -3.000000, 306.000000, 369.000000, 0.000000 -10871, -3.000000, 306.000000, 369.000000, 0.000000 -10872, -3.000000, 306.000000, 369.000000, 0.000000 -10873, -3.000000, 306.000000, 369.000000, 0.000000 -10874, -3.000000, 306.000000, 369.000000, 0.000000 -10875, -3.000000, 306.000000, 369.000000, 0.000000 -10876, -3.000000, 306.000000, 369.000000, 0.000000 -10877, -3.000000, 306.000000, 369.000000, 0.000000 -10878, -3.000000, 306.000000, 369.000000, 0.000000 -10879, -3.000000, 306.000000, 369.000000, 0.000000 -10880, -3.000000, 306.000000, 369.000000, 0.000000 -10881, -3.000000, 306.000000, 369.000000, 0.000000 -10882, -3.000000, 306.000000, 369.000000, 0.000000 -10883, -3.000000, 306.000000, 369.000000, 0.000000 -10884, -3.000000, 306.000000, 369.000000, 0.000000 -10885, -3.000000, 306.000000, 369.000000, 0.000000 -10886, -3.000000, 306.000000, 369.000000, 0.000000 -10887, -3.000000, 306.000000, 369.000000, 0.000000 -10888, -3.000000, 306.000000, 369.000000, 0.000000 -10889, -3.000000, 306.000000, 369.000000, 0.000000 -10890, -3.000000, 306.000000, 369.000000, 0.000000 -10891, -3.000000, 306.000000, 369.000000, 0.000000 -10892, -3.000000, 306.000000, 369.000000, 0.000000 -10893, -3.000000, 306.000000, 369.000000, 0.000000 -10894, -3.000000, 306.000000, 369.000000, 0.000000 -10895, -3.000000, 306.000000, 369.000000, 0.000000 -10896, -3.000000, 306.000000, 369.000000, 0.000000 -10897, -3.000000, 306.000000, 369.000000, 0.000000 -10898, -3.000000, 306.000000, 369.000000, 0.000000 -10899, -3.000000, 306.000000, 369.000000, 0.000000 -10900, -3.000000, 308.000000, 372.000000, 0.000000 -10901, -3.000000, 308.000000, 372.000000, 0.000000 -10902, -3.000000, 308.000000, 372.000000, 0.000000 -10903, -3.000000, 308.000000, 372.000000, 0.000000 -10904, -3.000000, 308.000000, 372.000000, 0.000000 -10905, -3.000000, 308.000000, 372.000000, 0.000000 -10906, -3.000000, 308.000000, 372.000000, 0.000000 -10907, -3.000000, 308.000000, 372.000000, 0.000000 -10908, -3.000000, 308.000000, 372.000000, 0.000000 -10909, -3.000000, 308.000000, 372.000000, 0.000000 -10910, -3.000000, 308.000000, 372.000000, 0.000000 -10911, -3.000000, 308.000000, 372.000000, 0.000000 -10912, -3.000000, 308.000000, 372.000000, 0.000000 -10913, -3.000000, 308.000000, 372.000000, 0.000000 -10914, -3.000000, 308.000000, 372.000000, 0.000000 -10915, -3.000000, 308.000000, 372.000000, 0.000000 -10916, -3.000000, 308.000000, 372.000000, 0.000000 -10917, -3.000000, 308.000000, 372.000000, 0.000000 -10918, -3.000000, 308.000000, 372.000000, 0.000000 -10919, -3.000000, 308.000000, 372.000000, 0.000000 -10920, -3.000000, 308.000000, 372.000000, 0.000000 -10921, -3.000000, 308.000000, 372.000000, 0.000000 -10922, -3.000000, 308.000000, 372.000000, 0.000000 -10923, -3.000000, 308.000000, 372.000000, 0.000000 -10924, -3.000000, 308.000000, 372.000000, 0.000000 -10925, -3.000000, 308.000000, 372.000000, 0.000000 -10926, -3.000000, 308.000000, 372.000000, 0.000000 -10927, -3.000000, 308.000000, 372.000000, 0.000000 -10928, -3.000000, 308.000000, 372.000000, 0.000000 -10929, -3.000000, 308.000000, 372.000000, 0.000000 -10930, -3.000000, 308.000000, 372.000000, 0.000000 -10931, -3.000000, 308.000000, 372.000000, 0.000000 -10932, -3.000000, 308.000000, 372.000000, 0.000000 -10933, -3.000000, 308.000000, 372.000000, 0.000000 -10934, -3.000000, 308.000000, 372.000000, 0.000000 -10935, -3.000000, 308.000000, 372.000000, 0.000000 -10936, -3.000000, 308.000000, 372.000000, 0.000000 -10937, -3.000000, 308.000000, 372.000000, 0.000000 -10938, -3.000000, 308.000000, 372.000000, 0.000000 -10939, -3.000000, 308.000000, 372.000000, 0.000000 -10940, -3.000000, 308.000000, 372.000000, 0.000000 -10941, -3.000000, 308.000000, 372.000000, 0.000000 -10942, -3.000000, 308.000000, 372.000000, 0.000000 -10943, -3.000000, 308.000000, 372.000000, 0.000000 -10944, -3.000000, 308.000000, 372.000000, 0.000000 -10945, -3.000000, 308.000000, 372.000000, 0.000000 -10946, -3.000000, 308.000000, 372.000000, 0.000000 -10947, -3.000000, 308.000000, 372.000000, 0.000000 -10948, -3.000000, 308.000000, 372.000000, 0.000000 -10949, -3.000000, 308.000000, 372.000000, 0.000000 -10950, -3.000000, 308.000000, 372.000000, 0.000000 -10951, -3.000000, 308.000000, 372.000000, 0.000000 -10952, -3.000000, 308.000000, 372.000000, 0.000000 -10953, -3.000000, 308.000000, 372.000000, 0.000000 -10954, -3.000000, 308.000000, 372.000000, 0.000000 -10955, -3.000000, 308.000000, 372.000000, 0.000000 -10956, -3.000000, 308.000000, 372.000000, 0.000000 -10957, -3.000000, 308.000000, 372.000000, 0.000000 -10958, -3.000000, 308.000000, 372.000000, 0.000000 -10959, -3.000000, 308.000000, 372.000000, 0.000000 -10960, -3.000000, 308.000000, 372.000000, 0.000000 -10961, -3.000000, 308.000000, 372.000000, 0.000000 -10962, -3.000000, 308.000000, 372.000000, 0.000000 -10963, -3.000000, 308.000000, 372.000000, 0.000000 -10964, -3.000000, 308.000000, 372.000000, 0.000000 -10965, -3.000000, 308.000000, 372.000000, 0.000000 -10966, -3.000000, 308.000000, 372.000000, 0.000000 -10967, -3.000000, 308.000000, 372.000000, 0.000000 -10968, -3.000000, 308.000000, 372.000000, 0.000000 -10969, -3.000000, 308.000000, 372.000000, 0.000000 -10970, -3.000000, 308.000000, 372.000000, 0.000000 -10971, -3.000000, 308.000000, 372.000000, 0.000000 -10972, -3.000000, 308.000000, 372.000000, 0.000000 -10973, -3.000000, 308.000000, 372.000000, 0.000000 -10974, -3.000000, 308.000000, 372.000000, 0.000000 -10975, -3.000000, 308.000000, 372.000000, 0.000000 -10976, -3.000000, 308.000000, 372.000000, 0.000000 -10977, -3.000000, 308.000000, 372.000000, 0.000000 -10978, -3.000000, 308.000000, 372.000000, 0.000000 -10979, -3.000000, 308.000000, 372.000000, 0.000000 -10980, -3.000000, 308.000000, 372.000000, 0.000000 -10981, -3.000000, 308.000000, 372.000000, 0.000000 -10982, -3.000000, 308.000000, 372.000000, 0.000000 -10983, -3.000000, 308.000000, 372.000000, 0.000000 -10984, -3.000000, 308.000000, 372.000000, 0.000000 -10985, -3.000000, 308.000000, 372.000000, 0.000000 -10986, -3.000000, 308.000000, 372.000000, 0.000000 -10987, -3.000000, 308.000000, 372.000000, 0.000000 -10988, -3.000000, 308.000000, 372.000000, 0.000000 -10989, -3.000000, 308.000000, 372.000000, 0.000000 -10990, -3.000000, 308.000000, 372.000000, 0.000000 -10991, -3.000000, 308.000000, 372.000000, 0.000000 -10992, -3.000000, 308.000000, 372.000000, 0.000000 -10993, -3.000000, 308.000000, 372.000000, 0.000000 -10994, -3.000000, 308.000000, 372.000000, 0.000000 -10995, -3.000000, 308.000000, 372.000000, 0.000000 -10996, -3.000000, 308.000000, 372.000000, 0.000000 -10997, -3.000000, 308.000000, 372.000000, 0.000000 -10998, -3.000000, 308.000000, 372.000000, 0.000000 -10999, -3.000000, 308.000000, 372.000000, 0.000000 -11000, -3.000000, 310.000000, 375.000000, 0.000000 -11001, -3.000000, 310.000000, 375.000000, 0.000000 -11002, -3.000000, 310.000000, 375.000000, 0.000000 -11003, -3.000000, 310.000000, 375.000000, 0.000000 -11004, -3.000000, 310.000000, 375.000000, 0.000000 -11005, -3.000000, 310.000000, 375.000000, 0.000000 -11006, -3.000000, 310.000000, 375.000000, 0.000000 -11007, -3.000000, 310.000000, 375.000000, 0.000000 -11008, -3.000000, 310.000000, 375.000000, 0.000000 -11009, -3.000000, 310.000000, 375.000000, 0.000000 -11010, -3.000000, 310.000000, 375.000000, 0.000000 -11011, -3.000000, 310.000000, 375.000000, 0.000000 -11012, -3.000000, 310.000000, 375.000000, 0.000000 -11013, -3.000000, 310.000000, 375.000000, 0.000000 -11014, -3.000000, 310.000000, 375.000000, 0.000000 -11015, -3.000000, 310.000000, 375.000000, 0.000000 -11016, -3.000000, 310.000000, 375.000000, 0.000000 -11017, -3.000000, 310.000000, 375.000000, 0.000000 -11018, -3.000000, 310.000000, 375.000000, 0.000000 -11019, -3.000000, 310.000000, 375.000000, 0.000000 -11020, -3.000000, 310.000000, 375.000000, 0.000000 -11021, -3.000000, 310.000000, 375.000000, 0.000000 -11022, -3.000000, 310.000000, 375.000000, 0.000000 -11023, -3.000000, 310.000000, 375.000000, 0.000000 -11024, -3.000000, 310.000000, 375.000000, 0.000000 -11025, -3.000000, 310.000000, 375.000000, 0.000000 -11026, -3.000000, 310.000000, 375.000000, 0.000000 -11027, -3.000000, 310.000000, 375.000000, 0.000000 -11028, -3.000000, 310.000000, 375.000000, 0.000000 -11029, -3.000000, 310.000000, 375.000000, 0.000000 -11030, -3.000000, 310.000000, 375.000000, 0.000000 -11031, -3.000000, 310.000000, 375.000000, 0.000000 -11032, -3.000000, 310.000000, 375.000000, 0.000000 -11033, -3.000000, 310.000000, 375.000000, 0.000000 -11034, -3.000000, 310.000000, 375.000000, 0.000000 -11035, -3.000000, 310.000000, 375.000000, 0.000000 -11036, -3.000000, 310.000000, 375.000000, 0.000000 -11037, -3.000000, 310.000000, 375.000000, 0.000000 -11038, -3.000000, 310.000000, 375.000000, 0.000000 -11039, -3.000000, 310.000000, 375.000000, 0.000000 -11040, -3.000000, 310.000000, 375.000000, 0.000000 -11041, -3.000000, 310.000000, 375.000000, 0.000000 -11042, -3.000000, 310.000000, 375.000000, 0.000000 -11043, -3.000000, 310.000000, 375.000000, 0.000000 -11044, -3.000000, 310.000000, 375.000000, 0.000000 -11045, -3.000000, 310.000000, 375.000000, 0.000000 -11046, -3.000000, 310.000000, 375.000000, 0.000000 -11047, -3.000000, 310.000000, 375.000000, 0.000000 -11048, -3.000000, 310.000000, 375.000000, 0.000000 -11049, -3.000000, 310.000000, 375.000000, 0.000000 -11050, -3.000000, 310.000000, 375.000000, 0.000000 -11051, -3.000000, 310.000000, 375.000000, 0.000000 -11052, -3.000000, 310.000000, 375.000000, 0.000000 -11053, -3.000000, 310.000000, 375.000000, 0.000000 -11054, -3.000000, 310.000000, 375.000000, 0.000000 -11055, -3.000000, 310.000000, 375.000000, 0.000000 -11056, -3.000000, 310.000000, 375.000000, 0.000000 -11057, -3.000000, 310.000000, 375.000000, 0.000000 -11058, -3.000000, 310.000000, 375.000000, 0.000000 -11059, -3.000000, 310.000000, 375.000000, 0.000000 -11060, -3.000000, 310.000000, 375.000000, 0.000000 -11061, -3.000000, 310.000000, 375.000000, 0.000000 -11062, -3.000000, 310.000000, 375.000000, 0.000000 -11063, -3.000000, 310.000000, 375.000000, 0.000000 -11064, -3.000000, 310.000000, 375.000000, 0.000000 -11065, -3.000000, 310.000000, 375.000000, 0.000000 -11066, -3.000000, 310.000000, 375.000000, 0.000000 -11067, -3.000000, 310.000000, 375.000000, 0.000000 -11068, -3.000000, 310.000000, 375.000000, 0.000000 -11069, -3.000000, 310.000000, 375.000000, 0.000000 -11070, -3.000000, 310.000000, 375.000000, 0.000000 -11071, -3.000000, 310.000000, 375.000000, 0.000000 -11072, -3.000000, 310.000000, 375.000000, 0.000000 -11073, -3.000000, 310.000000, 375.000000, 0.000000 -11074, -3.000000, 310.000000, 375.000000, 0.000000 -11075, -3.000000, 310.000000, 375.000000, 0.000000 -11076, -3.000000, 310.000000, 375.000000, 0.000000 -11077, -3.000000, 310.000000, 375.000000, 0.000000 -11078, -3.000000, 310.000000, 375.000000, 0.000000 -11079, -3.000000, 310.000000, 375.000000, 0.000000 -11080, -3.000000, 310.000000, 375.000000, 0.000000 -11081, -3.000000, 310.000000, 375.000000, 0.000000 -11082, -3.000000, 310.000000, 375.000000, 0.000000 -11083, -3.000000, 310.000000, 375.000000, 0.000000 -11084, -3.000000, 310.000000, 375.000000, 0.000000 -11085, -3.000000, 310.000000, 375.000000, 0.000000 -11086, -3.000000, 310.000000, 375.000000, 0.000000 -11087, -3.000000, 310.000000, 375.000000, 0.000000 -11088, -3.000000, 310.000000, 375.000000, 0.000000 -11089, -3.000000, 310.000000, 375.000000, 0.000000 -11090, -3.000000, 310.000000, 375.000000, 0.000000 -11091, -3.000000, 310.000000, 375.000000, 0.000000 -11092, -3.000000, 310.000000, 375.000000, 0.000000 -11093, -3.000000, 310.000000, 375.000000, 0.000000 -11094, -3.000000, 310.000000, 375.000000, 0.000000 -11095, -3.000000, 310.000000, 375.000000, 0.000000 -11096, -3.000000, 310.000000, 375.000000, 0.000000 -11097, -3.000000, 310.000000, 375.000000, 0.000000 -11098, -3.000000, 310.000000, 375.000000, 0.000000 -11099, -3.000000, 310.000000, 375.000000, 0.000000 -11100, -3.000000, 312.000000, 378.000000, 0.000000 -11101, -3.000000, 312.000000, 378.000000, 0.000000 -11102, -3.000000, 312.000000, 378.000000, 0.000000 -11103, -3.000000, 312.000000, 378.000000, 0.000000 -11104, -3.000000, 312.000000, 378.000000, 0.000000 -11105, -3.000000, 312.000000, 378.000000, 0.000000 -11106, -3.000000, 312.000000, 378.000000, 0.000000 -11107, -3.000000, 312.000000, 378.000000, 0.000000 -11108, -3.000000, 312.000000, 378.000000, 0.000000 -11109, -3.000000, 312.000000, 378.000000, 0.000000 -11110, -3.000000, 312.000000, 378.000000, 0.000000 -11111, -3.000000, 312.000000, 378.000000, 0.000000 -11112, -3.000000, 312.000000, 378.000000, 0.000000 -11113, -3.000000, 312.000000, 378.000000, 0.000000 -11114, -3.000000, 312.000000, 378.000000, 0.000000 -11115, -3.000000, 312.000000, 378.000000, 0.000000 -11116, -3.000000, 312.000000, 378.000000, 0.000000 -11117, -3.000000, 312.000000, 378.000000, 0.000000 -11118, -3.000000, 312.000000, 378.000000, 0.000000 -11119, -3.000000, 312.000000, 378.000000, 0.000000 -11120, -3.000000, 312.000000, 378.000000, 0.000000 -11121, -3.000000, 312.000000, 378.000000, 0.000000 -11122, -3.000000, 312.000000, 378.000000, 0.000000 -11123, -3.000000, 312.000000, 378.000000, 0.000000 -11124, -3.000000, 312.000000, 378.000000, 0.000000 -11125, -3.000000, 312.000000, 378.000000, 0.000000 -11126, -3.000000, 312.000000, 378.000000, 0.000000 -11127, -3.000000, 312.000000, 378.000000, 0.000000 -11128, -3.000000, 312.000000, 378.000000, 0.000000 -11129, -3.000000, 312.000000, 378.000000, 0.000000 -11130, -3.000000, 312.000000, 378.000000, 0.000000 -11131, -3.000000, 312.000000, 378.000000, 0.000000 -11132, -3.000000, 312.000000, 378.000000, 0.000000 -11133, -3.000000, 312.000000, 378.000000, 0.000000 -11134, -3.000000, 312.000000, 378.000000, 0.000000 -11135, -3.000000, 312.000000, 378.000000, 0.000000 -11136, -3.000000, 312.000000, 378.000000, 0.000000 -11137, -3.000000, 312.000000, 378.000000, 0.000000 -11138, -3.000000, 312.000000, 378.000000, 0.000000 -11139, -3.000000, 312.000000, 378.000000, 0.000000 -11140, -3.000000, 312.000000, 378.000000, 0.000000 -11141, -3.000000, 312.000000, 378.000000, 0.000000 -11142, -3.000000, 312.000000, 378.000000, 0.000000 -11143, -3.000000, 312.000000, 378.000000, 0.000000 -11144, -3.000000, 312.000000, 378.000000, 0.000000 -11145, -3.000000, 312.000000, 378.000000, 0.000000 -11146, -3.000000, 312.000000, 378.000000, 0.000000 -11147, -3.000000, 312.000000, 378.000000, 0.000000 -11148, -3.000000, 312.000000, 378.000000, 0.000000 -11149, -3.000000, 312.000000, 378.000000, 0.000000 -11150, -3.000000, 312.000000, 378.000000, 0.000000 -11151, -3.000000, 312.000000, 378.000000, 0.000000 -11152, -3.000000, 312.000000, 378.000000, 0.000000 -11153, -3.000000, 312.000000, 378.000000, 0.000000 -11154, -3.000000, 312.000000, 378.000000, 0.000000 -11155, -3.000000, 312.000000, 378.000000, 0.000000 -11156, -3.000000, 312.000000, 378.000000, 0.000000 -11157, -3.000000, 312.000000, 378.000000, 0.000000 -11158, -3.000000, 312.000000, 378.000000, 0.000000 -11159, -3.000000, 312.000000, 378.000000, 0.000000 -11160, -3.000000, 312.000000, 378.000000, 0.000000 -11161, -3.000000, 312.000000, 378.000000, 0.000000 -11162, -3.000000, 312.000000, 378.000000, 0.000000 -11163, -3.000000, 312.000000, 378.000000, 0.000000 -11164, -3.000000, 312.000000, 378.000000, 0.000000 -11165, -3.000000, 312.000000, 378.000000, 0.000000 -11166, -3.000000, 312.000000, 378.000000, 0.000000 -11167, -3.000000, 312.000000, 378.000000, 0.000000 -11168, -3.000000, 312.000000, 378.000000, 0.000000 -11169, -3.000000, 312.000000, 378.000000, 0.000000 -11170, -3.000000, 312.000000, 378.000000, 0.000000 -11171, -3.000000, 312.000000, 378.000000, 0.000000 -11172, -3.000000, 312.000000, 378.000000, 0.000000 -11173, -3.000000, 312.000000, 378.000000, 0.000000 -11174, -3.000000, 312.000000, 378.000000, 0.000000 -11175, -3.000000, 312.000000, 378.000000, 0.000000 -11176, -3.000000, 312.000000, 378.000000, 0.000000 -11177, -3.000000, 312.000000, 378.000000, 0.000000 -11178, -3.000000, 312.000000, 378.000000, 0.000000 -11179, -3.000000, 312.000000, 378.000000, 0.000000 -11180, -3.000000, 312.000000, 378.000000, 0.000000 -11181, -3.000000, 312.000000, 378.000000, 0.000000 -11182, -3.000000, 312.000000, 378.000000, 0.000000 -11183, -3.000000, 312.000000, 378.000000, 0.000000 -11184, -3.000000, 312.000000, 378.000000, 0.000000 -11185, -3.000000, 312.000000, 378.000000, 0.000000 -11186, -3.000000, 312.000000, 378.000000, 0.000000 -11187, -3.000000, 312.000000, 378.000000, 0.000000 -11188, -3.000000, 312.000000, 378.000000, 0.000000 -11189, -3.000000, 312.000000, 378.000000, 0.000000 -11190, -3.000000, 312.000000, 378.000000, 0.000000 -11191, -3.000000, 312.000000, 378.000000, 0.000000 -11192, -3.000000, 312.000000, 378.000000, 0.000000 -11193, -3.000000, 312.000000, 378.000000, 0.000000 -11194, -3.000000, 312.000000, 378.000000, 0.000000 -11195, -3.000000, 312.000000, 378.000000, 0.000000 -11196, -3.000000, 312.000000, 378.000000, 0.000000 -11197, -3.000000, 312.000000, 378.000000, 0.000000 -11198, -3.000000, 312.000000, 378.000000, 0.000000 -11199, -3.000000, 312.000000, 378.000000, 0.000000 -11200, -3.000000, 314.000000, 381.000000, 0.000000 -11201, -3.000000, 314.000000, 381.000000, 0.000000 -11202, -3.000000, 314.000000, 381.000000, 0.000000 -11203, -3.000000, 314.000000, 381.000000, 0.000000 -11204, -3.000000, 314.000000, 381.000000, 0.000000 -11205, -3.000000, 314.000000, 381.000000, 0.000000 -11206, -3.000000, 314.000000, 381.000000, 0.000000 -11207, -3.000000, 314.000000, 381.000000, 0.000000 -11208, -3.000000, 314.000000, 381.000000, 0.000000 -11209, -3.000000, 314.000000, 381.000000, 0.000000 -11210, -3.000000, 314.000000, 381.000000, 0.000000 -11211, -3.000000, 314.000000, 381.000000, 0.000000 -11212, -3.000000, 314.000000, 381.000000, 0.000000 -11213, -3.000000, 314.000000, 381.000000, 0.000000 -11214, -3.000000, 314.000000, 381.000000, 0.000000 -11215, -3.000000, 314.000000, 381.000000, 0.000000 -11216, -3.000000, 314.000000, 381.000000, 0.000000 -11217, -3.000000, 314.000000, 381.000000, 0.000000 -11218, -3.000000, 314.000000, 381.000000, 0.000000 -11219, -3.000000, 314.000000, 381.000000, 0.000000 -11220, -3.000000, 314.000000, 381.000000, 0.000000 -11221, -3.000000, 314.000000, 381.000000, 0.000000 -11222, -3.000000, 314.000000, 381.000000, 0.000000 -11223, -3.000000, 314.000000, 381.000000, 0.000000 -11224, -3.000000, 314.000000, 381.000000, 0.000000 -11225, -3.000000, 314.000000, 381.000000, 0.000000 -11226, -3.000000, 314.000000, 381.000000, 0.000000 -11227, -3.000000, 314.000000, 381.000000, 0.000000 -11228, -3.000000, 314.000000, 381.000000, 0.000000 -11229, -3.000000, 314.000000, 381.000000, 0.000000 -11230, -3.000000, 314.000000, 381.000000, 0.000000 -11231, -3.000000, 314.000000, 381.000000, 0.000000 -11232, -3.000000, 314.000000, 381.000000, 0.000000 -11233, -3.000000, 314.000000, 381.000000, 0.000000 -11234, -3.000000, 314.000000, 381.000000, 0.000000 -11235, -3.000000, 314.000000, 381.000000, 0.000000 -11236, -3.000000, 314.000000, 381.000000, 0.000000 -11237, -3.000000, 314.000000, 381.000000, 0.000000 -11238, -3.000000, 314.000000, 381.000000, 0.000000 -11239, -3.000000, 314.000000, 381.000000, 0.000000 -11240, -3.000000, 314.000000, 381.000000, 0.000000 -11241, -3.000000, 314.000000, 381.000000, 0.000000 -11242, -3.000000, 314.000000, 381.000000, 0.000000 -11243, -3.000000, 314.000000, 381.000000, 0.000000 -11244, -3.000000, 314.000000, 381.000000, 0.000000 -11245, -3.000000, 314.000000, 381.000000, 0.000000 -11246, -3.000000, 314.000000, 381.000000, 0.000000 -11247, -3.000000, 314.000000, 381.000000, 0.000000 -11248, -3.000000, 314.000000, 381.000000, 0.000000 -11249, -3.000000, 314.000000, 381.000000, 0.000000 -11250, -3.000000, 314.000000, 381.000000, 0.000000 -11251, -3.000000, 314.000000, 381.000000, 0.000000 -11252, -3.000000, 314.000000, 381.000000, 0.000000 -11253, -3.000000, 314.000000, 381.000000, 0.000000 -11254, -3.000000, 314.000000, 381.000000, 0.000000 -11255, -3.000000, 314.000000, 381.000000, 0.000000 -11256, -3.000000, 314.000000, 381.000000, 0.000000 -11257, -3.000000, 314.000000, 381.000000, 0.000000 -11258, -3.000000, 314.000000, 381.000000, 0.000000 -11259, -3.000000, 314.000000, 381.000000, 0.000000 -11260, -3.000000, 314.000000, 381.000000, 0.000000 -11261, -3.000000, 314.000000, 381.000000, 0.000000 -11262, -3.000000, 314.000000, 381.000000, 0.000000 -11263, -3.000000, 314.000000, 381.000000, 0.000000 -11264, -3.000000, 314.000000, 381.000000, 0.000000 -11265, -3.000000, 314.000000, 381.000000, 0.000000 -11266, -3.000000, 314.000000, 381.000000, 0.000000 -11267, -3.000000, 314.000000, 381.000000, 0.000000 -11268, -3.000000, 314.000000, 381.000000, 0.000000 -11269, -3.000000, 314.000000, 381.000000, 0.000000 -11270, -3.000000, 314.000000, 381.000000, 0.000000 -11271, -3.000000, 314.000000, 381.000000, 0.000000 -11272, -3.000000, 314.000000, 381.000000, 0.000000 -11273, -3.000000, 314.000000, 381.000000, 0.000000 -11274, -3.000000, 314.000000, 381.000000, 0.000000 -11275, -3.000000, 314.000000, 381.000000, 0.000000 -11276, -3.000000, 314.000000, 381.000000, 0.000000 -11277, -3.000000, 314.000000, 381.000000, 0.000000 -11278, -3.000000, 314.000000, 381.000000, 0.000000 -11279, -3.000000, 314.000000, 381.000000, 0.000000 -11280, -3.000000, 314.000000, 381.000000, 0.000000 -11281, -3.000000, 314.000000, 381.000000, 0.000000 -11282, -3.000000, 314.000000, 381.000000, 0.000000 -11283, -3.000000, 314.000000, 381.000000, 0.000000 -11284, -3.000000, 314.000000, 381.000000, 0.000000 -11285, -3.000000, 314.000000, 381.000000, 0.000000 -11286, -3.000000, 314.000000, 381.000000, 0.000000 -11287, -3.000000, 314.000000, 381.000000, 0.000000 -11288, -3.000000, 314.000000, 381.000000, 0.000000 -11289, -3.000000, 314.000000, 381.000000, 0.000000 -11290, -3.000000, 314.000000, 381.000000, 0.000000 -11291, -3.000000, 314.000000, 381.000000, 0.000000 -11292, -3.000000, 314.000000, 381.000000, 0.000000 -11293, -3.000000, 314.000000, 381.000000, 0.000000 -11294, -3.000000, 314.000000, 381.000000, 0.000000 -11295, -3.000000, 314.000000, 381.000000, 0.000000 -11296, -3.000000, 314.000000, 381.000000, 0.000000 -11297, -3.000000, 314.000000, 381.000000, 0.000000 -11298, -3.000000, 314.000000, 381.000000, 0.000000 -11299, -3.000000, 314.000000, 381.000000, 0.000000 -11300, -3.000000, 316.000000, 384.000000, 0.000000 -11301, -3.000000, 316.000000, 384.000000, 0.000000 -11302, -3.000000, 316.000000, 384.000000, 0.000000 -11303, -3.000000, 316.000000, 384.000000, 0.000000 -11304, -3.000000, 316.000000, 384.000000, 0.000000 -11305, -3.000000, 316.000000, 384.000000, 0.000000 -11306, -3.000000, 316.000000, 384.000000, 0.000000 -11307, -3.000000, 316.000000, 384.000000, 0.000000 -11308, -3.000000, 316.000000, 384.000000, 0.000000 -11309, -3.000000, 316.000000, 384.000000, 0.000000 -11310, -3.000000, 316.000000, 384.000000, 0.000000 -11311, -3.000000, 316.000000, 384.000000, 0.000000 -11312, -3.000000, 316.000000, 384.000000, 0.000000 -11313, -3.000000, 316.000000, 384.000000, 0.000000 -11314, -3.000000, 316.000000, 384.000000, 0.000000 -11315, -3.000000, 316.000000, 384.000000, 0.000000 -11316, -3.000000, 316.000000, 384.000000, 0.000000 -11317, -3.000000, 316.000000, 384.000000, 0.000000 -11318, -3.000000, 316.000000, 384.000000, 0.000000 -11319, -3.000000, 316.000000, 384.000000, 0.000000 -11320, -3.000000, 316.000000, 384.000000, 0.000000 -11321, -3.000000, 316.000000, 384.000000, 0.000000 -11322, -3.000000, 316.000000, 384.000000, 0.000000 -11323, -3.000000, 316.000000, 384.000000, 0.000000 -11324, -3.000000, 316.000000, 384.000000, 0.000000 -11325, -3.000000, 316.000000, 384.000000, 0.000000 -11326, -3.000000, 316.000000, 384.000000, 0.000000 -11327, -3.000000, 316.000000, 384.000000, 0.000000 -11328, -3.000000, 316.000000, 384.000000, 0.000000 -11329, -3.000000, 316.000000, 384.000000, 0.000000 -11330, -3.000000, 316.000000, 384.000000, 0.000000 -11331, -3.000000, 316.000000, 384.000000, 0.000000 -11332, -3.000000, 316.000000, 384.000000, 0.000000 -11333, -3.000000, 316.000000, 384.000000, 0.000000 -11334, -3.000000, 316.000000, 384.000000, 0.000000 -11335, -3.000000, 316.000000, 384.000000, 0.000000 -11336, -3.000000, 316.000000, 384.000000, 0.000000 -11337, -3.000000, 316.000000, 384.000000, 0.000000 -11338, -3.000000, 316.000000, 384.000000, 0.000000 -11339, -3.000000, 316.000000, 384.000000, 0.000000 -11340, -3.000000, 316.000000, 384.000000, 0.000000 -11341, -3.000000, 316.000000, 384.000000, 0.000000 -11342, -3.000000, 316.000000, 384.000000, 0.000000 -11343, -3.000000, 316.000000, 384.000000, 0.000000 -11344, -3.000000, 316.000000, 384.000000, 0.000000 -11345, -3.000000, 316.000000, 384.000000, 0.000000 -11346, -3.000000, 316.000000, 384.000000, 0.000000 -11347, -3.000000, 316.000000, 384.000000, 0.000000 -11348, -3.000000, 316.000000, 384.000000, 0.000000 -11349, -3.000000, 316.000000, 384.000000, 0.000000 -11350, -3.000000, 316.000000, 384.000000, 0.000000 -11351, -3.000000, 316.000000, 384.000000, 0.000000 -11352, -3.000000, 316.000000, 384.000000, 0.000000 -11353, -3.000000, 316.000000, 384.000000, 0.000000 -11354, -3.000000, 316.000000, 384.000000, 0.000000 -11355, -3.000000, 316.000000, 384.000000, 0.000000 -11356, -3.000000, 316.000000, 384.000000, 0.000000 -11357, -3.000000, 316.000000, 384.000000, 0.000000 -11358, -3.000000, 316.000000, 384.000000, 0.000000 -11359, -3.000000, 316.000000, 384.000000, 0.000000 -11360, -3.000000, 316.000000, 384.000000, 0.000000 -11361, -3.000000, 316.000000, 384.000000, 0.000000 -11362, -3.000000, 316.000000, 384.000000, 0.000000 -11363, -3.000000, 316.000000, 384.000000, 0.000000 -11364, -3.000000, 316.000000, 384.000000, 0.000000 -11365, -3.000000, 316.000000, 384.000000, 0.000000 -11366, -3.000000, 316.000000, 384.000000, 0.000000 -11367, -3.000000, 316.000000, 384.000000, 0.000000 -11368, -3.000000, 316.000000, 384.000000, 0.000000 -11369, -3.000000, 316.000000, 384.000000, 0.000000 -11370, -3.000000, 316.000000, 384.000000, 0.000000 -11371, -3.000000, 316.000000, 384.000000, 0.000000 -11372, -3.000000, 316.000000, 384.000000, 0.000000 -11373, -3.000000, 316.000000, 384.000000, 0.000000 -11374, -3.000000, 316.000000, 384.000000, 0.000000 -11375, -3.000000, 316.000000, 384.000000, 0.000000 -11376, -3.000000, 316.000000, 384.000000, 0.000000 -11377, -3.000000, 316.000000, 384.000000, 0.000000 -11378, -3.000000, 316.000000, 384.000000, 0.000000 -11379, -3.000000, 316.000000, 384.000000, 0.000000 -11380, -3.000000, 316.000000, 384.000000, 0.000000 -11381, -3.000000, 316.000000, 384.000000, 0.000000 -11382, -3.000000, 316.000000, 384.000000, 0.000000 -11383, -3.000000, 316.000000, 384.000000, 0.000000 -11384, -3.000000, 316.000000, 384.000000, 0.000000 -11385, -3.000000, 316.000000, 384.000000, 0.000000 -11386, -3.000000, 316.000000, 384.000000, 0.000000 -11387, -3.000000, 316.000000, 384.000000, 0.000000 -11388, -3.000000, 316.000000, 384.000000, 0.000000 -11389, -3.000000, 316.000000, 384.000000, 0.000000 -11390, -3.000000, 316.000000, 384.000000, 0.000000 -11391, -3.000000, 316.000000, 384.000000, 0.000000 -11392, -3.000000, 316.000000, 384.000000, 0.000000 -11393, -3.000000, 316.000000, 384.000000, 0.000000 -11394, -3.000000, 316.000000, 384.000000, 0.000000 -11395, -3.000000, 316.000000, 384.000000, 0.000000 -11396, -3.000000, 316.000000, 384.000000, 0.000000 -11397, -3.000000, 316.000000, 384.000000, 0.000000 -11398, -3.000000, 316.000000, 384.000000, 0.000000 -11399, -3.000000, 316.000000, 384.000000, 0.000000 -11400, -3.000000, 318.000000, 387.000000, 0.000000 -11401, -3.000000, 318.000000, 387.000000, 0.000000 -11402, -3.000000, 318.000000, 387.000000, 0.000000 -11403, -3.000000, 318.000000, 387.000000, 0.000000 -11404, -3.000000, 318.000000, 387.000000, 0.000000 -11405, -3.000000, 318.000000, 387.000000, 0.000000 -11406, -3.000000, 318.000000, 387.000000, 0.000000 -11407, -3.000000, 318.000000, 387.000000, 0.000000 -11408, -3.000000, 318.000000, 387.000000, 0.000000 -11409, -3.000000, 318.000000, 387.000000, 0.000000 -11410, -3.000000, 318.000000, 387.000000, 0.000000 -11411, -3.000000, 318.000000, 387.000000, 0.000000 -11412, -3.000000, 318.000000, 387.000000, 0.000000 -11413, -3.000000, 318.000000, 387.000000, 0.000000 -11414, -3.000000, 318.000000, 387.000000, 0.000000 -11415, -3.000000, 318.000000, 387.000000, 0.000000 -11416, -3.000000, 318.000000, 387.000000, 0.000000 -11417, -3.000000, 318.000000, 387.000000, 0.000000 -11418, -3.000000, 318.000000, 387.000000, 0.000000 -11419, -3.000000, 318.000000, 387.000000, 0.000000 -11420, -3.000000, 318.000000, 387.000000, 0.000000 -11421, -3.000000, 318.000000, 387.000000, 0.000000 -11422, -3.000000, 318.000000, 387.000000, 0.000000 -11423, -3.000000, 318.000000, 387.000000, 0.000000 -11424, -3.000000, 318.000000, 387.000000, 0.000000 -11425, -3.000000, 318.000000, 387.000000, 0.000000 -11426, -3.000000, 318.000000, 387.000000, 0.000000 -11427, -3.000000, 318.000000, 387.000000, 0.000000 -11428, -3.000000, 318.000000, 387.000000, 0.000000 -11429, -3.000000, 318.000000, 387.000000, 0.000000 -11430, -3.000000, 318.000000, 387.000000, 0.000000 -11431, -3.000000, 318.000000, 387.000000, 0.000000 -11432, -3.000000, 318.000000, 387.000000, 0.000000 -11433, -3.000000, 318.000000, 387.000000, 0.000000 -11434, -3.000000, 318.000000, 387.000000, 0.000000 -11435, -3.000000, 318.000000, 387.000000, 0.000000 -11436, -3.000000, 318.000000, 387.000000, 0.000000 -11437, -3.000000, 318.000000, 387.000000, 0.000000 -11438, -3.000000, 318.000000, 387.000000, 0.000000 -11439, -3.000000, 318.000000, 387.000000, 0.000000 -11440, -3.000000, 318.000000, 387.000000, 0.000000 -11441, -3.000000, 318.000000, 387.000000, 0.000000 -11442, -3.000000, 318.000000, 387.000000, 0.000000 -11443, -3.000000, 318.000000, 387.000000, 0.000000 -11444, -3.000000, 318.000000, 387.000000, 0.000000 -11445, -3.000000, 318.000000, 387.000000, 0.000000 -11446, -3.000000, 318.000000, 387.000000, 0.000000 -11447, -3.000000, 318.000000, 387.000000, 0.000000 -11448, -3.000000, 318.000000, 387.000000, 0.000000 -11449, -3.000000, 318.000000, 387.000000, 0.000000 -11450, -3.000000, 318.000000, 387.000000, 0.000000 -11451, -3.000000, 318.000000, 387.000000, 0.000000 -11452, -3.000000, 318.000000, 387.000000, 0.000000 -11453, -3.000000, 318.000000, 387.000000, 0.000000 -11454, -3.000000, 318.000000, 387.000000, 0.000000 -11455, -3.000000, 318.000000, 387.000000, 0.000000 -11456, -3.000000, 318.000000, 387.000000, 0.000000 -11457, -3.000000, 318.000000, 387.000000, 0.000000 -11458, -3.000000, 318.000000, 387.000000, 0.000000 -11459, -3.000000, 318.000000, 387.000000, 0.000000 -11460, -3.000000, 318.000000, 387.000000, 0.000000 -11461, -3.000000, 318.000000, 387.000000, 0.000000 -11462, -3.000000, 318.000000, 387.000000, 0.000000 -11463, -3.000000, 318.000000, 387.000000, 0.000000 -11464, -3.000000, 318.000000, 387.000000, 0.000000 -11465, -3.000000, 318.000000, 387.000000, 0.000000 -11466, -3.000000, 318.000000, 387.000000, 0.000000 -11467, -3.000000, 318.000000, 387.000000, 0.000000 -11468, -3.000000, 318.000000, 387.000000, 0.000000 -11469, -3.000000, 318.000000, 387.000000, 0.000000 -11470, -3.000000, 318.000000, 387.000000, 0.000000 -11471, -3.000000, 318.000000, 387.000000, 0.000000 -11472, -3.000000, 318.000000, 387.000000, 0.000000 -11473, -3.000000, 318.000000, 387.000000, 0.000000 -11474, -3.000000, 318.000000, 387.000000, 0.000000 -11475, -3.000000, 318.000000, 387.000000, 0.000000 -11476, -3.000000, 318.000000, 387.000000, 0.000000 -11477, -3.000000, 318.000000, 387.000000, 0.000000 -11478, -3.000000, 318.000000, 387.000000, 0.000000 -11479, -3.000000, 318.000000, 387.000000, 0.000000 -11480, -3.000000, 318.000000, 387.000000, 0.000000 -11481, -3.000000, 318.000000, 387.000000, 0.000000 -11482, -3.000000, 318.000000, 387.000000, 0.000000 -11483, -3.000000, 318.000000, 387.000000, 0.000000 -11484, -3.000000, 318.000000, 387.000000, 0.000000 -11485, -3.000000, 318.000000, 387.000000, 0.000000 -11486, -3.000000, 318.000000, 387.000000, 0.000000 -11487, -3.000000, 318.000000, 387.000000, 0.000000 -11488, -3.000000, 318.000000, 387.000000, 0.000000 -11489, -3.000000, 318.000000, 387.000000, 0.000000 -11490, -3.000000, 318.000000, 387.000000, 0.000000 -11491, -3.000000, 318.000000, 387.000000, 0.000000 -11492, -3.000000, 318.000000, 387.000000, 0.000000 -11493, -3.000000, 318.000000, 387.000000, 0.000000 -11494, -3.000000, 318.000000, 387.000000, 0.000000 -11495, -3.000000, 318.000000, 387.000000, 0.000000 -11496, -3.000000, 318.000000, 387.000000, 0.000000 -11497, -3.000000, 318.000000, 387.000000, 0.000000 -11498, -3.000000, 318.000000, 387.000000, 0.000000 -11499, -3.000000, 318.000000, 387.000000, 0.000000 -11500, -3.000000, 320.000000, 390.000000, 0.000000 -11501, -3.000000, 320.000000, 390.000000, 0.000000 -11502, -3.000000, 320.000000, 390.000000, 0.000000 -11503, -3.000000, 320.000000, 390.000000, 0.000000 -11504, -3.000000, 320.000000, 390.000000, 0.000000 -11505, -3.000000, 320.000000, 390.000000, 0.000000 -11506, -3.000000, 320.000000, 390.000000, 0.000000 -11507, -3.000000, 320.000000, 390.000000, 0.000000 -11508, -3.000000, 320.000000, 390.000000, 0.000000 -11509, -3.000000, 320.000000, 390.000000, 0.000000 -11510, -3.000000, 320.000000, 390.000000, 0.000000 -11511, -3.000000, 320.000000, 390.000000, 0.000000 -11512, -3.000000, 320.000000, 390.000000, 0.000000 -11513, -3.000000, 320.000000, 390.000000, 0.000000 -11514, -3.000000, 320.000000, 390.000000, 0.000000 -11515, -3.000000, 320.000000, 390.000000, 0.000000 -11516, -3.000000, 320.000000, 390.000000, 0.000000 -11517, -3.000000, 320.000000, 390.000000, 0.000000 -11518, -3.000000, 320.000000, 390.000000, 0.000000 -11519, -3.000000, 320.000000, 390.000000, 0.000000 -11520, -3.000000, 320.000000, 390.000000, 0.000000 -11521, -3.000000, 320.000000, 390.000000, 0.000000 -11522, -3.000000, 320.000000, 390.000000, 0.000000 -11523, -3.000000, 320.000000, 390.000000, 0.000000 -11524, -3.000000, 320.000000, 390.000000, 0.000000 -11525, -3.000000, 320.000000, 390.000000, 0.000000 -11526, -3.000000, 320.000000, 390.000000, 0.000000 -11527, -3.000000, 320.000000, 390.000000, 0.000000 -11528, -3.000000, 320.000000, 390.000000, 0.000000 -11529, -3.000000, 320.000000, 390.000000, 0.000000 -11530, -3.000000, 320.000000, 390.000000, 0.000000 -11531, -3.000000, 320.000000, 390.000000, 0.000000 -11532, -3.000000, 320.000000, 390.000000, 0.000000 -11533, -3.000000, 320.000000, 390.000000, 0.000000 -11534, -3.000000, 320.000000, 390.000000, 0.000000 -11535, -3.000000, 320.000000, 390.000000, 0.000000 -11536, -3.000000, 320.000000, 390.000000, 0.000000 -11537, -3.000000, 320.000000, 390.000000, 0.000000 -11538, -3.000000, 320.000000, 390.000000, 0.000000 -11539, -3.000000, 320.000000, 390.000000, 0.000000 -11540, -3.000000, 320.000000, 390.000000, 0.000000 -11541, -3.000000, 320.000000, 390.000000, 0.000000 -11542, -3.000000, 320.000000, 390.000000, 0.000000 -11543, -3.000000, 320.000000, 390.000000, 0.000000 -11544, -3.000000, 320.000000, 390.000000, 0.000000 -11545, -3.000000, 320.000000, 390.000000, 0.000000 -11546, -3.000000, 320.000000, 390.000000, 0.000000 -11547, -3.000000, 320.000000, 390.000000, 0.000000 -11548, -3.000000, 320.000000, 390.000000, 0.000000 -11549, -3.000000, 320.000000, 390.000000, 0.000000 -11550, -3.000000, 320.000000, 390.000000, 0.000000 -11551, -3.000000, 320.000000, 390.000000, 0.000000 -11552, -3.000000, 320.000000, 390.000000, 0.000000 -11553, -3.000000, 320.000000, 390.000000, 0.000000 -11554, -3.000000, 320.000000, 390.000000, 0.000000 -11555, -3.000000, 320.000000, 390.000000, 0.000000 -11556, -3.000000, 320.000000, 390.000000, 0.000000 -11557, -3.000000, 320.000000, 390.000000, 0.000000 -11558, -3.000000, 320.000000, 390.000000, 0.000000 -11559, -3.000000, 320.000000, 390.000000, 0.000000 -11560, -3.000000, 320.000000, 390.000000, 0.000000 -11561, -3.000000, 320.000000, 390.000000, 0.000000 -11562, -3.000000, 320.000000, 390.000000, 0.000000 -11563, -3.000000, 320.000000, 390.000000, 0.000000 -11564, -3.000000, 320.000000, 390.000000, 0.000000 -11565, -3.000000, 320.000000, 390.000000, 0.000000 -11566, -3.000000, 320.000000, 390.000000, 0.000000 -11567, -3.000000, 320.000000, 390.000000, 0.000000 -11568, -3.000000, 320.000000, 390.000000, 0.000000 -11569, -3.000000, 320.000000, 390.000000, 0.000000 -11570, -3.000000, 320.000000, 390.000000, 0.000000 -11571, -3.000000, 320.000000, 390.000000, 0.000000 -11572, -3.000000, 320.000000, 390.000000, 0.000000 -11573, -3.000000, 320.000000, 390.000000, 0.000000 -11574, -3.000000, 320.000000, 390.000000, 0.000000 -11575, -3.000000, 320.000000, 390.000000, 0.000000 -11576, -3.000000, 320.000000, 390.000000, 0.000000 -11577, -3.000000, 320.000000, 390.000000, 0.000000 -11578, -3.000000, 320.000000, 390.000000, 0.000000 -11579, -3.000000, 320.000000, 390.000000, 0.000000 -11580, -3.000000, 320.000000, 390.000000, 0.000000 -11581, -3.000000, 320.000000, 390.000000, 0.000000 -11582, -3.000000, 320.000000, 390.000000, 0.000000 -11583, -3.000000, 320.000000, 390.000000, 0.000000 -11584, -3.000000, 320.000000, 390.000000, 0.000000 -11585, -3.000000, 320.000000, 390.000000, 0.000000 -11586, -3.000000, 320.000000, 390.000000, 0.000000 -11587, -3.000000, 320.000000, 390.000000, 0.000000 -11588, -3.000000, 320.000000, 390.000000, 0.000000 -11589, -3.000000, 320.000000, 390.000000, 0.000000 -11590, -3.000000, 320.000000, 390.000000, 0.000000 -11591, -3.000000, 320.000000, 390.000000, 0.000000 -11592, -3.000000, 320.000000, 390.000000, 0.000000 -11593, -3.000000, 320.000000, 390.000000, 0.000000 -11594, -3.000000, 320.000000, 390.000000, 0.000000 -11595, -3.000000, 320.000000, 390.000000, 0.000000 -11596, -3.000000, 320.000000, 390.000000, 0.000000 -11597, -3.000000, 320.000000, 390.000000, 0.000000 -11598, -3.000000, 320.000000, 390.000000, 0.000000 -11599, -3.000000, 320.000000, 390.000000, 0.000000 -11600, -3.000000, 322.000000, 393.000000, 0.000000 -11601, -3.000000, 322.000000, 393.000000, 0.000000 -11602, -3.000000, 322.000000, 393.000000, 0.000000 -11603, -3.000000, 322.000000, 393.000000, 0.000000 -11604, -3.000000, 322.000000, 393.000000, 0.000000 -11605, -3.000000, 322.000000, 393.000000, 0.000000 -11606, -3.000000, 322.000000, 393.000000, 0.000000 -11607, -3.000000, 322.000000, 393.000000, 0.000000 -11608, -3.000000, 322.000000, 393.000000, 0.000000 -11609, -3.000000, 322.000000, 393.000000, 0.000000 -11610, -3.000000, 322.000000, 393.000000, 0.000000 -11611, -3.000000, 322.000000, 393.000000, 0.000000 -11612, -3.000000, 322.000000, 393.000000, 0.000000 -11613, -3.000000, 322.000000, 393.000000, 0.000000 -11614, -3.000000, 322.000000, 393.000000, 0.000000 -11615, -3.000000, 322.000000, 393.000000, 0.000000 -11616, -3.000000, 322.000000, 393.000000, 0.000000 -11617, -3.000000, 322.000000, 393.000000, 0.000000 -11618, -3.000000, 322.000000, 393.000000, 0.000000 -11619, -3.000000, 322.000000, 393.000000, 0.000000 -11620, -3.000000, 322.000000, 393.000000, 0.000000 -11621, -3.000000, 322.000000, 393.000000, 0.000000 -11622, -3.000000, 322.000000, 393.000000, 0.000000 -11623, -3.000000, 322.000000, 393.000000, 0.000000 -11624, -3.000000, 322.000000, 393.000000, 0.000000 -11625, -3.000000, 322.000000, 393.000000, 0.000000 -11626, -3.000000, 322.000000, 393.000000, 0.000000 -11627, -3.000000, 322.000000, 393.000000, 0.000000 -11628, -3.000000, 322.000000, 393.000000, 0.000000 -11629, -3.000000, 322.000000, 393.000000, 0.000000 -11630, -3.000000, 322.000000, 393.000000, 0.000000 -11631, -3.000000, 322.000000, 393.000000, 0.000000 -11632, -3.000000, 322.000000, 393.000000, 0.000000 -11633, -3.000000, 322.000000, 393.000000, 0.000000 -11634, -3.000000, 322.000000, 393.000000, 0.000000 -11635, -3.000000, 322.000000, 393.000000, 0.000000 -11636, -3.000000, 322.000000, 393.000000, 0.000000 -11637, -3.000000, 322.000000, 393.000000, 0.000000 -11638, -3.000000, 322.000000, 393.000000, 0.000000 -11639, -3.000000, 322.000000, 393.000000, 0.000000 -11640, -3.000000, 322.000000, 393.000000, 0.000000 -11641, -3.000000, 322.000000, 393.000000, 0.000000 -11642, -3.000000, 322.000000, 393.000000, 0.000000 -11643, -3.000000, 322.000000, 393.000000, 0.000000 -11644, -3.000000, 322.000000, 393.000000, 0.000000 -11645, -3.000000, 322.000000, 393.000000, 0.000000 -11646, -3.000000, 322.000000, 393.000000, 0.000000 -11647, -3.000000, 322.000000, 393.000000, 0.000000 -11648, -3.000000, 322.000000, 393.000000, 0.000000 -11649, -3.000000, 322.000000, 393.000000, 0.000000 -11650, -3.000000, 322.000000, 393.000000, 0.000000 -11651, -3.000000, 322.000000, 393.000000, 0.000000 -11652, -3.000000, 322.000000, 393.000000, 0.000000 -11653, -3.000000, 322.000000, 393.000000, 0.000000 -11654, -3.000000, 322.000000, 393.000000, 0.000000 -11655, -3.000000, 322.000000, 393.000000, 0.000000 -11656, -3.000000, 322.000000, 393.000000, 0.000000 -11657, -3.000000, 322.000000, 393.000000, 0.000000 -11658, -3.000000, 322.000000, 393.000000, 0.000000 -11659, -3.000000, 322.000000, 393.000000, 0.000000 -11660, -3.000000, 322.000000, 393.000000, 0.000000 -11661, -3.000000, 322.000000, 393.000000, 0.000000 -11662, -3.000000, 322.000000, 393.000000, 0.000000 -11663, -3.000000, 322.000000, 393.000000, 0.000000 -11664, -3.000000, 322.000000, 393.000000, 0.000000 -11665, -3.000000, 322.000000, 393.000000, 0.000000 -11666, -3.000000, 322.000000, 393.000000, 0.000000 -11667, -3.000000, 322.000000, 393.000000, 0.000000 -11668, -3.000000, 322.000000, 393.000000, 0.000000 -11669, -3.000000, 322.000000, 393.000000, 0.000000 -11670, -3.000000, 322.000000, 393.000000, 0.000000 -11671, -3.000000, 322.000000, 393.000000, 0.000000 -11672, -3.000000, 322.000000, 393.000000, 0.000000 -11673, -3.000000, 322.000000, 393.000000, 0.000000 -11674, -3.000000, 322.000000, 393.000000, 0.000000 -11675, -3.000000, 322.000000, 393.000000, 0.000000 -11676, -3.000000, 322.000000, 393.000000, 0.000000 -11677, -3.000000, 322.000000, 393.000000, 0.000000 -11678, -3.000000, 322.000000, 393.000000, 0.000000 -11679, -3.000000, 322.000000, 393.000000, 0.000000 -11680, -3.000000, 322.000000, 393.000000, 0.000000 -11681, -3.000000, 322.000000, 393.000000, 0.000000 -11682, -3.000000, 322.000000, 393.000000, 0.000000 -11683, -3.000000, 322.000000, 393.000000, 0.000000 -11684, -3.000000, 322.000000, 393.000000, 0.000000 -11685, -3.000000, 322.000000, 393.000000, 0.000000 -11686, -3.000000, 322.000000, 393.000000, 0.000000 -11687, -3.000000, 322.000000, 393.000000, 0.000000 -11688, -3.000000, 322.000000, 393.000000, 0.000000 -11689, -3.000000, 322.000000, 393.000000, 0.000000 -11690, -3.000000, 322.000000, 393.000000, 0.000000 -11691, -3.000000, 322.000000, 393.000000, 0.000000 -11692, -3.000000, 322.000000, 393.000000, 0.000000 -11693, -3.000000, 322.000000, 393.000000, 0.000000 -11694, -3.000000, 322.000000, 393.000000, 0.000000 -11695, -3.000000, 322.000000, 393.000000, 0.000000 -11696, -3.000000, 322.000000, 393.000000, 0.000000 -11697, -3.000000, 322.000000, 393.000000, 0.000000 -11698, -3.000000, 322.000000, 393.000000, 0.000000 -11699, -3.000000, 322.000000, 393.000000, 0.000000 -11700, -3.000000, 324.000000, 396.000000, 0.000000 -11701, -3.000000, 324.000000, 396.000000, 0.000000 -11702, -3.000000, 324.000000, 396.000000, 0.000000 -11703, -3.000000, 324.000000, 396.000000, 0.000000 -11704, -3.000000, 324.000000, 396.000000, 0.000000 -11705, -3.000000, 324.000000, 396.000000, 0.000000 -11706, -3.000000, 324.000000, 396.000000, 0.000000 -11707, -3.000000, 324.000000, 396.000000, 0.000000 -11708, -3.000000, 324.000000, 396.000000, 0.000000 -11709, -3.000000, 324.000000, 396.000000, 0.000000 -11710, -3.000000, 324.000000, 396.000000, 0.000000 -11711, -3.000000, 324.000000, 396.000000, 0.000000 -11712, -3.000000, 324.000000, 396.000000, 0.000000 -11713, -3.000000, 324.000000, 396.000000, 0.000000 -11714, -3.000000, 324.000000, 396.000000, 0.000000 -11715, -3.000000, 324.000000, 396.000000, 0.000000 -11716, -3.000000, 324.000000, 396.000000, 0.000000 -11717, -3.000000, 324.000000, 396.000000, 0.000000 -11718, -3.000000, 324.000000, 396.000000, 0.000000 -11719, -3.000000, 324.000000, 396.000000, 0.000000 -11720, -3.000000, 324.000000, 396.000000, 0.000000 -11721, -3.000000, 324.000000, 396.000000, 0.000000 -11722, -3.000000, 324.000000, 396.000000, 0.000000 -11723, -3.000000, 324.000000, 396.000000, 0.000000 -11724, -3.000000, 324.000000, 396.000000, 0.000000 -11725, -3.000000, 324.000000, 396.000000, 0.000000 -11726, -3.000000, 324.000000, 396.000000, 0.000000 -11727, -3.000000, 324.000000, 396.000000, 0.000000 -11728, -3.000000, 324.000000, 396.000000, 0.000000 -11729, -3.000000, 324.000000, 396.000000, 0.000000 -11730, -3.000000, 324.000000, 396.000000, 0.000000 -11731, -3.000000, 324.000000, 396.000000, 0.000000 -11732, -3.000000, 324.000000, 396.000000, 0.000000 -11733, -3.000000, 324.000000, 396.000000, 0.000000 -11734, -3.000000, 324.000000, 396.000000, 0.000000 -11735, -3.000000, 324.000000, 396.000000, 0.000000 -11736, -3.000000, 324.000000, 396.000000, 0.000000 -11737, -3.000000, 324.000000, 396.000000, 0.000000 -11738, -3.000000, 324.000000, 396.000000, 0.000000 -11739, -3.000000, 324.000000, 396.000000, 0.000000 -11740, -3.000000, 324.000000, 396.000000, 0.000000 -11741, -3.000000, 324.000000, 396.000000, 0.000000 -11742, -3.000000, 324.000000, 396.000000, 0.000000 -11743, -3.000000, 324.000000, 396.000000, 0.000000 -11744, -3.000000, 324.000000, 396.000000, 0.000000 -11745, -3.000000, 324.000000, 396.000000, 0.000000 -11746, -3.000000, 324.000000, 396.000000, 0.000000 -11747, -3.000000, 324.000000, 396.000000, 0.000000 -11748, -3.000000, 324.000000, 396.000000, 0.000000 -11749, -3.000000, 324.000000, 396.000000, 0.000000 -11750, -3.000000, 324.000000, 396.000000, 0.000000 -11751, -3.000000, 324.000000, 396.000000, 0.000000 -11752, -3.000000, 324.000000, 396.000000, 0.000000 -11753, -3.000000, 324.000000, 396.000000, 0.000000 -11754, -3.000000, 324.000000, 396.000000, 0.000000 -11755, -3.000000, 324.000000, 396.000000, 0.000000 -11756, -3.000000, 324.000000, 396.000000, 0.000000 -11757, -3.000000, 324.000000, 396.000000, 0.000000 -11758, -3.000000, 324.000000, 396.000000, 0.000000 -11759, -3.000000, 324.000000, 396.000000, 0.000000 -11760, -3.000000, 324.000000, 396.000000, 0.000000 -11761, -3.000000, 324.000000, 396.000000, 0.000000 -11762, -3.000000, 324.000000, 396.000000, 0.000000 -11763, -3.000000, 324.000000, 396.000000, 0.000000 -11764, -3.000000, 324.000000, 396.000000, 0.000000 -11765, -3.000000, 324.000000, 396.000000, 0.000000 -11766, -3.000000, 324.000000, 396.000000, 0.000000 -11767, -3.000000, 324.000000, 396.000000, 0.000000 -11768, -3.000000, 324.000000, 396.000000, 0.000000 -11769, -3.000000, 324.000000, 396.000000, 0.000000 -11770, -3.000000, 324.000000, 396.000000, 0.000000 -11771, -3.000000, 324.000000, 396.000000, 0.000000 -11772, -3.000000, 324.000000, 396.000000, 0.000000 -11773, -3.000000, 324.000000, 396.000000, 0.000000 -11774, -3.000000, 324.000000, 396.000000, 0.000000 -11775, -3.000000, 324.000000, 396.000000, 0.000000 -11776, -3.000000, 324.000000, 396.000000, 0.000000 -11777, -3.000000, 324.000000, 396.000000, 0.000000 -11778, -3.000000, 324.000000, 396.000000, 0.000000 -11779, -3.000000, 324.000000, 396.000000, 0.000000 -11780, -3.000000, 324.000000, 396.000000, 0.000000 -11781, -3.000000, 324.000000, 396.000000, 0.000000 -11782, -3.000000, 324.000000, 396.000000, 0.000000 -11783, -3.000000, 324.000000, 396.000000, 0.000000 -11784, -3.000000, 324.000000, 396.000000, 0.000000 -11785, -3.000000, 324.000000, 396.000000, 0.000000 -11786, -3.000000, 324.000000, 396.000000, 0.000000 -11787, -3.000000, 324.000000, 396.000000, 0.000000 -11788, -3.000000, 324.000000, 396.000000, 0.000000 -11789, -3.000000, 324.000000, 396.000000, 0.000000 -11790, -3.000000, 324.000000, 396.000000, 0.000000 -11791, -3.000000, 324.000000, 396.000000, 0.000000 -11792, -3.000000, 324.000000, 396.000000, 0.000000 -11793, -3.000000, 324.000000, 396.000000, 0.000000 -11794, -3.000000, 324.000000, 396.000000, 0.000000 -11795, -3.000000, 324.000000, 396.000000, 0.000000 -11796, -3.000000, 324.000000, 396.000000, 0.000000 -11797, -3.000000, 324.000000, 396.000000, 0.000000 -11798, -3.000000, 324.000000, 396.000000, 0.000000 -11799, -3.000000, 324.000000, 396.000000, 0.000000 -11800, -3.000000, 326.000000, 399.000000, 0.000000 -11801, -3.000000, 326.000000, 399.000000, 0.000000 -11802, -3.000000, 326.000000, 399.000000, 0.000000 -11803, -3.000000, 326.000000, 399.000000, 0.000000 -11804, -3.000000, 326.000000, 399.000000, 0.000000 -11805, -3.000000, 326.000000, 399.000000, 0.000000 -11806, -3.000000, 326.000000, 399.000000, 0.000000 -11807, -3.000000, 326.000000, 399.000000, 0.000000 -11808, -3.000000, 326.000000, 399.000000, 0.000000 -11809, -3.000000, 326.000000, 399.000000, 0.000000 -11810, -3.000000, 326.000000, 399.000000, 0.000000 -11811, -3.000000, 326.000000, 399.000000, 0.000000 -11812, -3.000000, 326.000000, 399.000000, 0.000000 -11813, -3.000000, 326.000000, 399.000000, 0.000000 -11814, -3.000000, 326.000000, 399.000000, 0.000000 -11815, -3.000000, 326.000000, 399.000000, 0.000000 -11816, -3.000000, 326.000000, 399.000000, 0.000000 -11817, -3.000000, 326.000000, 399.000000, 0.000000 -11818, -3.000000, 326.000000, 399.000000, 0.000000 -11819, -3.000000, 326.000000, 399.000000, 0.000000 -11820, -3.000000, 326.000000, 399.000000, 0.000000 -11821, -3.000000, 326.000000, 399.000000, 0.000000 -11822, -3.000000, 326.000000, 399.000000, 0.000000 -11823, -3.000000, 326.000000, 399.000000, 0.000000 -11824, -3.000000, 326.000000, 399.000000, 0.000000 -11825, -3.000000, 326.000000, 399.000000, 0.000000 -11826, -3.000000, 326.000000, 399.000000, 0.000000 -11827, -3.000000, 326.000000, 399.000000, 0.000000 -11828, -3.000000, 326.000000, 399.000000, 0.000000 -11829, -3.000000, 326.000000, 399.000000, 0.000000 -11830, -3.000000, 326.000000, 399.000000, 0.000000 -11831, -3.000000, 326.000000, 399.000000, 0.000000 -11832, -3.000000, 326.000000, 399.000000, 0.000000 -11833, -3.000000, 326.000000, 399.000000, 0.000000 -11834, -3.000000, 326.000000, 399.000000, 0.000000 -11835, -3.000000, 326.000000, 399.000000, 0.000000 -11836, -3.000000, 326.000000, 399.000000, 0.000000 -11837, -3.000000, 326.000000, 399.000000, 0.000000 -11838, -3.000000, 326.000000, 399.000000, 0.000000 -11839, -3.000000, 326.000000, 399.000000, 0.000000 -11840, -3.000000, 326.000000, 399.000000, 0.000000 -11841, -3.000000, 326.000000, 399.000000, 0.000000 -11842, -3.000000, 326.000000, 399.000000, 0.000000 -11843, -3.000000, 326.000000, 399.000000, 0.000000 -11844, -3.000000, 326.000000, 399.000000, 0.000000 -11845, -3.000000, 326.000000, 399.000000, 0.000000 -11846, -3.000000, 326.000000, 399.000000, 0.000000 -11847, -3.000000, 326.000000, 399.000000, 0.000000 -11848, -3.000000, 326.000000, 399.000000, 0.000000 -11849, -3.000000, 326.000000, 399.000000, 0.000000 -11850, -3.000000, 326.000000, 399.000000, 0.000000 -11851, -3.000000, 326.000000, 399.000000, 0.000000 -11852, -3.000000, 326.000000, 399.000000, 0.000000 -11853, -3.000000, 326.000000, 399.000000, 0.000000 -11854, -3.000000, 326.000000, 399.000000, 0.000000 -11855, -3.000000, 326.000000, 399.000000, 0.000000 -11856, -3.000000, 326.000000, 399.000000, 0.000000 -11857, -3.000000, 326.000000, 399.000000, 0.000000 -11858, -3.000000, 326.000000, 399.000000, 0.000000 -11859, -3.000000, 326.000000, 399.000000, 0.000000 -11860, -3.000000, 326.000000, 399.000000, 0.000000 -11861, -3.000000, 326.000000, 399.000000, 0.000000 -11862, -3.000000, 326.000000, 399.000000, 0.000000 -11863, -3.000000, 326.000000, 399.000000, 0.000000 -11864, -3.000000, 326.000000, 399.000000, 0.000000 -11865, -3.000000, 326.000000, 399.000000, 0.000000 -11866, -3.000000, 326.000000, 399.000000, 0.000000 -11867, -3.000000, 326.000000, 399.000000, 0.000000 -11868, -3.000000, 326.000000, 399.000000, 0.000000 -11869, -3.000000, 326.000000, 399.000000, 0.000000 -11870, -3.000000, 326.000000, 399.000000, 0.000000 -11871, -3.000000, 326.000000, 399.000000, 0.000000 -11872, -3.000000, 326.000000, 399.000000, 0.000000 -11873, -3.000000, 326.000000, 399.000000, 0.000000 -11874, -3.000000, 326.000000, 399.000000, 0.000000 -11875, -3.000000, 326.000000, 399.000000, 0.000000 -11876, -3.000000, 326.000000, 399.000000, 0.000000 -11877, -3.000000, 326.000000, 399.000000, 0.000000 -11878, -3.000000, 326.000000, 399.000000, 0.000000 -11879, -3.000000, 326.000000, 399.000000, 0.000000 -11880, -3.000000, 326.000000, 399.000000, 0.000000 -11881, -3.000000, 326.000000, 399.000000, 0.000000 -11882, -3.000000, 326.000000, 399.000000, 0.000000 -11883, -3.000000, 326.000000, 399.000000, 0.000000 -11884, -3.000000, 326.000000, 399.000000, 0.000000 -11885, -3.000000, 326.000000, 399.000000, 0.000000 -11886, -3.000000, 326.000000, 399.000000, 0.000000 -11887, -3.000000, 326.000000, 399.000000, 0.000000 -11888, -3.000000, 326.000000, 399.000000, 0.000000 -11889, -3.000000, 326.000000, 399.000000, 0.000000 -11890, -3.000000, 326.000000, 399.000000, 0.000000 -11891, -3.000000, 326.000000, 399.000000, 0.000000 -11892, -3.000000, 326.000000, 399.000000, 0.000000 -11893, -3.000000, 326.000000, 399.000000, 0.000000 -11894, -3.000000, 326.000000, 399.000000, 0.000000 -11895, -3.000000, 326.000000, 399.000000, 0.000000 -11896, -3.000000, 326.000000, 399.000000, 0.000000 -11897, -3.000000, 326.000000, 399.000000, 0.000000 -11898, -3.000000, 326.000000, 399.000000, 0.000000 -11899, -3.000000, 326.000000, 399.000000, 0.000000 -11900, -3.000000, 328.000000, 402.000000, 0.000000 -11901, -3.000000, 328.000000, 402.000000, 0.000000 -11902, -3.000000, 328.000000, 402.000000, 0.000000 -11903, -3.000000, 328.000000, 402.000000, 0.000000 -11904, -3.000000, 328.000000, 402.000000, 0.000000 -11905, -3.000000, 328.000000, 402.000000, 0.000000 -11906, -3.000000, 328.000000, 402.000000, 0.000000 -11907, -3.000000, 328.000000, 402.000000, 0.000000 -11908, -3.000000, 328.000000, 402.000000, 0.000000 -11909, -3.000000, 328.000000, 402.000000, 0.000000 -11910, -3.000000, 328.000000, 402.000000, 0.000000 -11911, -3.000000, 328.000000, 402.000000, 0.000000 -11912, -3.000000, 328.000000, 402.000000, 0.000000 -11913, -3.000000, 328.000000, 402.000000, 0.000000 -11914, -3.000000, 328.000000, 402.000000, 0.000000 -11915, -3.000000, 328.000000, 402.000000, 0.000000 -11916, -3.000000, 328.000000, 402.000000, 0.000000 -11917, -3.000000, 328.000000, 402.000000, 0.000000 -11918, -3.000000, 328.000000, 402.000000, 0.000000 -11919, -3.000000, 328.000000, 402.000000, 0.000000 -11920, -3.000000, 328.000000, 402.000000, 0.000000 -11921, -3.000000, 328.000000, 402.000000, 0.000000 -11922, -3.000000, 328.000000, 402.000000, 0.000000 -11923, -3.000000, 328.000000, 402.000000, 0.000000 -11924, -3.000000, 328.000000, 402.000000, 0.000000 -11925, -3.000000, 328.000000, 402.000000, 0.000000 -11926, -3.000000, 328.000000, 402.000000, 0.000000 -11927, -3.000000, 328.000000, 402.000000, 0.000000 -11928, -3.000000, 328.000000, 402.000000, 0.000000 -11929, -3.000000, 328.000000, 402.000000, 0.000000 -11930, -3.000000, 328.000000, 402.000000, 0.000000 -11931, -3.000000, 328.000000, 402.000000, 0.000000 -11932, -3.000000, 328.000000, 402.000000, 0.000000 -11933, -3.000000, 328.000000, 402.000000, 0.000000 -11934, -3.000000, 328.000000, 402.000000, 0.000000 -11935, -3.000000, 328.000000, 402.000000, 0.000000 -11936, -3.000000, 328.000000, 402.000000, 0.000000 -11937, -3.000000, 328.000000, 402.000000, 0.000000 -11938, -3.000000, 328.000000, 402.000000, 0.000000 -11939, -3.000000, 328.000000, 402.000000, 0.000000 -11940, -3.000000, 328.000000, 402.000000, 0.000000 -11941, -3.000000, 328.000000, 402.000000, 0.000000 -11942, -3.000000, 328.000000, 402.000000, 0.000000 -11943, -3.000000, 328.000000, 402.000000, 0.000000 -11944, -3.000000, 328.000000, 402.000000, 0.000000 -11945, -3.000000, 328.000000, 402.000000, 0.000000 -11946, -3.000000, 328.000000, 402.000000, 0.000000 -11947, -3.000000, 328.000000, 402.000000, 0.000000 -11948, -3.000000, 328.000000, 402.000000, 0.000000 -11949, -3.000000, 328.000000, 402.000000, 0.000000 -11950, -3.000000, 328.000000, 402.000000, 0.000000 -11951, -3.000000, 328.000000, 402.000000, 0.000000 -11952, -3.000000, 328.000000, 402.000000, 0.000000 -11953, -3.000000, 328.000000, 402.000000, 0.000000 -11954, -3.000000, 328.000000, 402.000000, 0.000000 -11955, -3.000000, 328.000000, 402.000000, 0.000000 -11956, -3.000000, 328.000000, 402.000000, 0.000000 -11957, -3.000000, 328.000000, 402.000000, 0.000000 -11958, -3.000000, 328.000000, 402.000000, 0.000000 -11959, -3.000000, 328.000000, 402.000000, 0.000000 -11960, -3.000000, 328.000000, 402.000000, 0.000000 -11961, -3.000000, 328.000000, 402.000000, 0.000000 -11962, -3.000000, 328.000000, 402.000000, 0.000000 -11963, -3.000000, 328.000000, 402.000000, 0.000000 -11964, -3.000000, 328.000000, 402.000000, 0.000000 -11965, -3.000000, 328.000000, 402.000000, 0.000000 -11966, -3.000000, 328.000000, 402.000000, 0.000000 -11967, -3.000000, 328.000000, 402.000000, 0.000000 -11968, -3.000000, 328.000000, 402.000000, 0.000000 -11969, -3.000000, 328.000000, 402.000000, 0.000000 -11970, -3.000000, 328.000000, 402.000000, 0.000000 -11971, -3.000000, 328.000000, 402.000000, 0.000000 -11972, -3.000000, 328.000000, 402.000000, 0.000000 -11973, -3.000000, 328.000000, 402.000000, 0.000000 -11974, -3.000000, 328.000000, 402.000000, 0.000000 -11975, -3.000000, 328.000000, 402.000000, 0.000000 -11976, -3.000000, 328.000000, 402.000000, 0.000000 -11977, -3.000000, 328.000000, 402.000000, 0.000000 -11978, -3.000000, 328.000000, 402.000000, 0.000000 -11979, -3.000000, 328.000000, 402.000000, 0.000000 -11980, -3.000000, 328.000000, 402.000000, 0.000000 -11981, -3.000000, 328.000000, 402.000000, 0.000000 -11982, -3.000000, 328.000000, 402.000000, 0.000000 -11983, -3.000000, 328.000000, 402.000000, 0.000000 -11984, -3.000000, 328.000000, 402.000000, 0.000000 -11985, -3.000000, 328.000000, 402.000000, 0.000000 -11986, -3.000000, 328.000000, 402.000000, 0.000000 -11987, -3.000000, 328.000000, 402.000000, 0.000000 -11988, -3.000000, 328.000000, 402.000000, 0.000000 -11989, -3.000000, 328.000000, 402.000000, 0.000000 -11990, -3.000000, 328.000000, 402.000000, 0.000000 -11991, -3.000000, 328.000000, 402.000000, 0.000000 -11992, -3.000000, 328.000000, 402.000000, 0.000000 -11993, -3.000000, 328.000000, 402.000000, 0.000000 -11994, -3.000000, 328.000000, 402.000000, 0.000000 -11995, -3.000000, 328.000000, 402.000000, 0.000000 -11996, -3.000000, 328.000000, 402.000000, 0.000000 -11997, -3.000000, 328.000000, 402.000000, 0.000000 -11998, -3.000000, 328.000000, 402.000000, 0.000000 -11999, -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 90.000000, 45.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 92.000000, 48.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 94.000000, 51.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 96.000000, 54.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 98.000000, 57.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 100.000000, 60.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 102.000000, 63.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 104.000000, 66.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 106.000000, 69.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 108.000000, 72.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 110.000000, 75.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 112.000000, 78.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 114.000000, 81.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 116.000000, 84.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 118.000000, 87.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 120.000000, 90.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 122.000000, 93.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 124.000000, 96.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 126.000000, 99.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 128.000000, 102.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 130.000000, 105.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 132.000000, 108.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 134.000000, 111.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 136.000000, 114.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 138.000000, 117.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 140.000000, 120.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 142.000000, 123.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 144.000000, 126.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 146.000000, 129.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 148.000000, 132.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 150.000000, 135.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 152.000000, 138.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 154.000000, 141.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 156.000000, 144.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 158.000000, 147.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 160.000000, 150.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 162.000000, 153.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 164.000000, 156.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 166.000000, 159.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 168.000000, 162.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 170.000000, 165.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 172.000000, 168.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 174.000000, 171.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 176.000000, 174.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 178.000000, 177.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 180.000000, 180.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 182.000000, 183.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 184.000000, 186.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 186.000000, 189.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 188.000000, 192.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 190.000000, 195.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 192.000000, 198.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 194.000000, 201.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 196.000000, 204.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 198.000000, 207.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 200.000000, 210.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 202.000000, 213.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 204.000000, 216.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 206.000000, 219.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 208.000000, 222.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 210.000000, 225.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 212.000000, 228.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 214.000000, 231.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 216.000000, 234.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 218.000000, 237.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 220.000000, 240.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 222.000000, 243.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 224.000000, 246.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 226.000000, 249.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 228.000000, 252.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 230.000000, 255.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 232.000000, 258.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 234.000000, 261.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 236.000000, 264.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 238.000000, 267.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 240.000000, 270.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 242.000000, 273.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 244.000000, 276.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 246.000000, 279.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 248.000000, 282.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 250.000000, 285.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 252.000000, 288.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 254.000000, 291.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 256.000000, 294.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 258.000000, 297.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 260.000000, 300.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 262.000000, 303.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 264.000000, 306.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 266.000000, 309.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 268.000000, 312.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 270.000000, 315.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 272.000000, 318.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 274.000000, 321.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 276.000000, 324.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 278.000000, 327.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 280.000000, 330.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 282.000000, 333.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 284.000000, 336.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 286.000000, 339.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 288.000000, 342.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 290.000000, 345.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 292.000000, 348.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 294.000000, 351.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 296.000000, 354.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 298.000000, 357.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 300.000000, 360.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 302.000000, 363.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 304.000000, 366.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 306.000000, 369.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 308.000000, 372.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 310.000000, 375.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 312.000000, 378.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 314.000000, 381.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 316.000000, 384.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 318.000000, 387.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 320.000000, 390.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 322.000000, 393.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 324.000000, 396.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 326.000000, 399.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 + -3.000000, 328.000000, 402.000000, 0.000000 diff --git a/scripts/trajectories/azi+2-ele+2-every-100-frames.csv b/scripts/trajectories/azi+2-ele+2-every-100-frames.csv index 4dcf81416a..4bc5b22d93 100644 --- a/scripts/trajectories/azi+2-ele+2-every-100-frames.csv +++ b/scripts/trajectories/azi+2-ele+2-every-100-frames.csv @@ -1,12000 +1,12000 @@ -0, 0.653281, -0.270598, 0.270598, 0.653281 -1, 0.653281, -0.270598, 0.270598, 0.653281 -2, 0.653281, -0.270598, 0.270598, 0.653281 -3, 0.653281, -0.270598, 0.270598, 0.653281 -4, 0.653281, -0.270598, 0.270598, 0.653281 -5, 0.653281, -0.270598, 0.270598, 0.653281 -6, 0.653281, -0.270598, 0.270598, 0.653281 -7, 0.653281, -0.270598, 0.270598, 0.653281 -8, 0.653281, -0.270598, 0.270598, 0.653281 -9, 0.653281, -0.270598, 0.270598, 0.653281 -10, 0.653281, -0.270598, 0.270598, 0.653281 -11, 0.653281, -0.270598, 0.270598, 0.653281 -12, 0.653281, -0.270598, 0.270598, 0.653281 -13, 0.653281, -0.270598, 0.270598, 0.653281 -14, 0.653281, -0.270598, 0.270598, 0.653281 -15, 0.653281, -0.270598, 0.270598, 0.653281 -16, 0.653281, -0.270598, 0.270598, 0.653281 -17, 0.653281, -0.270598, 0.270598, 0.653281 -18, 0.653281, -0.270598, 0.270598, 0.653281 -19, 0.653281, -0.270598, 0.270598, 0.653281 -20, 0.653281, -0.270598, 0.270598, 0.653281 -21, 0.653281, -0.270598, 0.270598, 0.653281 -22, 0.653281, -0.270598, 0.270598, 0.653281 -23, 0.653281, -0.270598, 0.270598, 0.653281 -24, 0.653281, -0.270598, 0.270598, 0.653281 -25, 0.653281, -0.270598, 0.270598, 0.653281 -26, 0.653281, -0.270598, 0.270598, 0.653281 -27, 0.653281, -0.270598, 0.270598, 0.653281 -28, 0.653281, -0.270598, 0.270598, 0.653281 -29, 0.653281, -0.270598, 0.270598, 0.653281 -30, 0.653281, -0.270598, 0.270598, 0.653281 -31, 0.653281, -0.270598, 0.270598, 0.653281 -32, 0.653281, -0.270598, 0.270598, 0.653281 -33, 0.653281, -0.270598, 0.270598, 0.653281 -34, 0.653281, -0.270598, 0.270598, 0.653281 -35, 0.653281, -0.270598, 0.270598, 0.653281 -36, 0.653281, -0.270598, 0.270598, 0.653281 -37, 0.653281, -0.270598, 0.270598, 0.653281 -38, 0.653281, -0.270598, 0.270598, 0.653281 -39, 0.653281, -0.270598, 0.270598, 0.653281 -40, 0.653281, -0.270598, 0.270598, 0.653281 -41, 0.653281, -0.270598, 0.270598, 0.653281 -42, 0.653281, -0.270598, 0.270598, 0.653281 -43, 0.653281, -0.270598, 0.270598, 0.653281 -44, 0.653281, -0.270598, 0.270598, 0.653281 -45, 0.653281, -0.270598, 0.270598, 0.653281 -46, 0.653281, -0.270598, 0.270598, 0.653281 -47, 0.653281, -0.270598, 0.270598, 0.653281 -48, 0.653281, -0.270598, 0.270598, 0.653281 -49, 0.653281, -0.270598, 0.270598, 0.653281 -50, 0.653281, -0.270598, 0.270598, 0.653281 -51, 0.653281, -0.270598, 0.270598, 0.653281 -52, 0.653281, -0.270598, 0.270598, 0.653281 -53, 0.653281, -0.270598, 0.270598, 0.653281 -54, 0.653281, -0.270598, 0.270598, 0.653281 -55, 0.653281, -0.270598, 0.270598, 0.653281 -56, 0.653281, -0.270598, 0.270598, 0.653281 -57, 0.653281, -0.270598, 0.270598, 0.653281 -58, 0.653281, -0.270598, 0.270598, 0.653281 -59, 0.653281, -0.270598, 0.270598, 0.653281 -60, 0.653281, -0.270598, 0.270598, 0.653281 -61, 0.653281, -0.270598, 0.270598, 0.653281 -62, 0.653281, -0.270598, 0.270598, 0.653281 -63, 0.653281, -0.270598, 0.270598, 0.653281 -64, 0.653281, -0.270598, 0.270598, 0.653281 -65, 0.653281, -0.270598, 0.270598, 0.653281 -66, 0.653281, -0.270598, 0.270598, 0.653281 -67, 0.653281, -0.270598, 0.270598, 0.653281 -68, 0.653281, -0.270598, 0.270598, 0.653281 -69, 0.653281, -0.270598, 0.270598, 0.653281 -70, 0.653281, -0.270598, 0.270598, 0.653281 -71, 0.653281, -0.270598, 0.270598, 0.653281 -72, 0.653281, -0.270598, 0.270598, 0.653281 -73, 0.653281, -0.270598, 0.270598, 0.653281 -74, 0.653281, -0.270598, 0.270598, 0.653281 -75, 0.653281, -0.270598, 0.270598, 0.653281 -76, 0.653281, -0.270598, 0.270598, 0.653281 -77, 0.653281, -0.270598, 0.270598, 0.653281 -78, 0.653281, -0.270598, 0.270598, 0.653281 -79, 0.653281, -0.270598, 0.270598, 0.653281 -80, 0.653281, -0.270598, 0.270598, 0.653281 -81, 0.653281, -0.270598, 0.270598, 0.653281 -82, 0.653281, -0.270598, 0.270598, 0.653281 -83, 0.653281, -0.270598, 0.270598, 0.653281 -84, 0.653281, -0.270598, 0.270598, 0.653281 -85, 0.653281, -0.270598, 0.270598, 0.653281 -86, 0.653281, -0.270598, 0.270598, 0.653281 -87, 0.653281, -0.270598, 0.270598, 0.653281 -88, 0.653281, -0.270598, 0.270598, 0.653281 -89, 0.653281, -0.270598, 0.270598, 0.653281 -90, 0.653281, -0.270598, 0.270598, 0.653281 -91, 0.653281, -0.270598, 0.270598, 0.653281 -92, 0.653281, -0.270598, 0.270598, 0.653281 -93, 0.653281, -0.270598, 0.270598, 0.653281 -94, 0.653281, -0.270598, 0.270598, 0.653281 -95, 0.653281, -0.270598, 0.270598, 0.653281 -96, 0.653281, -0.270598, 0.270598, 0.653281 -97, 0.653281, -0.270598, 0.270598, 0.653281 -98, 0.653281, -0.270598, 0.270598, 0.653281 -99, 0.653281, -0.270598, 0.270598, 0.653281 -100, 0.634602, -0.292582, 0.282543, 0.657150 -101, 0.634602, -0.292582, 0.282543, 0.657150 -102, 0.634602, -0.292582, 0.282543, 0.657150 -103, 0.634602, -0.292582, 0.282543, 0.657150 -104, 0.634602, -0.292582, 0.282543, 0.657150 -105, 0.634602, -0.292582, 0.282543, 0.657150 -106, 0.634602, -0.292582, 0.282543, 0.657150 -107, 0.634602, -0.292582, 0.282543, 0.657150 -108, 0.634602, -0.292582, 0.282543, 0.657150 -109, 0.634602, -0.292582, 0.282543, 0.657150 -110, 0.634602, -0.292582, 0.282543, 0.657150 -111, 0.634602, -0.292582, 0.282543, 0.657150 -112, 0.634602, -0.292582, 0.282543, 0.657150 -113, 0.634602, -0.292582, 0.282543, 0.657150 -114, 0.634602, -0.292582, 0.282543, 0.657150 -115, 0.634602, -0.292582, 0.282543, 0.657150 -116, 0.634602, -0.292582, 0.282543, 0.657150 -117, 0.634602, -0.292582, 0.282543, 0.657150 -118, 0.634602, -0.292582, 0.282543, 0.657150 -119, 0.634602, -0.292582, 0.282543, 0.657150 -120, 0.634602, -0.292582, 0.282543, 0.657150 -121, 0.634602, -0.292582, 0.282543, 0.657150 -122, 0.634602, -0.292582, 0.282543, 0.657150 -123, 0.634602, -0.292582, 0.282543, 0.657150 -124, 0.634602, -0.292582, 0.282543, 0.657150 -125, 0.634602, -0.292582, 0.282543, 0.657150 -126, 0.634602, -0.292582, 0.282543, 0.657150 -127, 0.634602, -0.292582, 0.282543, 0.657150 -128, 0.634602, -0.292582, 0.282543, 0.657150 -129, 0.634602, -0.292582, 0.282543, 0.657150 -130, 0.634602, -0.292582, 0.282543, 0.657150 -131, 0.634602, -0.292582, 0.282543, 0.657150 -132, 0.634602, -0.292582, 0.282543, 0.657150 -133, 0.634602, -0.292582, 0.282543, 0.657150 -134, 0.634602, -0.292582, 0.282543, 0.657150 -135, 0.634602, -0.292582, 0.282543, 0.657150 -136, 0.634602, -0.292582, 0.282543, 0.657150 -137, 0.634602, -0.292582, 0.282543, 0.657150 -138, 0.634602, -0.292582, 0.282543, 0.657150 -139, 0.634602, -0.292582, 0.282543, 0.657150 -140, 0.634602, -0.292582, 0.282543, 0.657150 -141, 0.634602, -0.292582, 0.282543, 0.657150 -142, 0.634602, -0.292582, 0.282543, 0.657150 -143, 0.634602, -0.292582, 0.282543, 0.657150 -144, 0.634602, -0.292582, 0.282543, 0.657150 -145, 0.634602, -0.292582, 0.282543, 0.657150 -146, 0.634602, -0.292582, 0.282543, 0.657150 -147, 0.634602, -0.292582, 0.282543, 0.657150 -148, 0.634602, -0.292582, 0.282543, 0.657150 -149, 0.634602, -0.292582, 0.282543, 0.657150 -150, 0.634602, -0.292582, 0.282543, 0.657150 -151, 0.634602, -0.292582, 0.282543, 0.657150 -152, 0.634602, -0.292582, 0.282543, 0.657150 -153, 0.634602, -0.292582, 0.282543, 0.657150 -154, 0.634602, -0.292582, 0.282543, 0.657150 -155, 0.634602, -0.292582, 0.282543, 0.657150 -156, 0.634602, -0.292582, 0.282543, 0.657150 -157, 0.634602, -0.292582, 0.282543, 0.657150 -158, 0.634602, -0.292582, 0.282543, 0.657150 -159, 0.634602, -0.292582, 0.282543, 0.657150 -160, 0.634602, -0.292582, 0.282543, 0.657150 -161, 0.634602, -0.292582, 0.282543, 0.657150 -162, 0.634602, -0.292582, 0.282543, 0.657150 -163, 0.634602, -0.292582, 0.282543, 0.657150 -164, 0.634602, -0.292582, 0.282543, 0.657150 -165, 0.634602, -0.292582, 0.282543, 0.657150 -166, 0.634602, -0.292582, 0.282543, 0.657150 -167, 0.634602, -0.292582, 0.282543, 0.657150 -168, 0.634602, -0.292582, 0.282543, 0.657150 -169, 0.634602, -0.292582, 0.282543, 0.657150 -170, 0.634602, -0.292582, 0.282543, 0.657150 -171, 0.634602, -0.292582, 0.282543, 0.657150 -172, 0.634602, -0.292582, 0.282543, 0.657150 -173, 0.634602, -0.292582, 0.282543, 0.657150 -174, 0.634602, -0.292582, 0.282543, 0.657150 -175, 0.634602, -0.292582, 0.282543, 0.657150 -176, 0.634602, -0.292582, 0.282543, 0.657150 -177, 0.634602, -0.292582, 0.282543, 0.657150 -178, 0.634602, -0.292582, 0.282543, 0.657150 -179, 0.634602, -0.292582, 0.282543, 0.657150 -180, 0.634602, -0.292582, 0.282543, 0.657150 -181, 0.634602, -0.292582, 0.282543, 0.657150 -182, 0.634602, -0.292582, 0.282543, 0.657150 -183, 0.634602, -0.292582, 0.282543, 0.657150 -184, 0.634602, -0.292582, 0.282543, 0.657150 -185, 0.634602, -0.292582, 0.282543, 0.657150 -186, 0.634602, -0.292582, 0.282543, 0.657150 -187, 0.634602, -0.292582, 0.282543, 0.657150 -188, 0.634602, -0.292582, 0.282543, 0.657150 -189, 0.634602, -0.292582, 0.282543, 0.657150 -190, 0.634602, -0.292582, 0.282543, 0.657150 -191, 0.634602, -0.292582, 0.282543, 0.657150 -192, 0.634602, -0.292582, 0.282543, 0.657150 -193, 0.634602, -0.292582, 0.282543, 0.657150 -194, 0.634602, -0.292582, 0.282543, 0.657150 -195, 0.634602, -0.292582, 0.282543, 0.657150 -196, 0.634602, -0.292582, 0.282543, 0.657150 -197, 0.634602, -0.292582, 0.282543, 0.657150 -198, 0.634602, -0.292582, 0.282543, 0.657150 -199, 0.634602, -0.292582, 0.282543, 0.657150 -200, 0.615562, -0.314856, 0.293608, 0.660109 -201, 0.615562, -0.314856, 0.293608, 0.660109 -202, 0.615562, -0.314856, 0.293608, 0.660109 -203, 0.615562, -0.314856, 0.293608, 0.660109 -204, 0.615562, -0.314856, 0.293608, 0.660109 -205, 0.615562, -0.314856, 0.293608, 0.660109 -206, 0.615562, -0.314856, 0.293608, 0.660109 -207, 0.615562, -0.314856, 0.293608, 0.660109 -208, 0.615562, -0.314856, 0.293608, 0.660109 -209, 0.615562, -0.314856, 0.293608, 0.660109 -210, 0.615562, -0.314856, 0.293608, 0.660109 -211, 0.615562, -0.314856, 0.293608, 0.660109 -212, 0.615562, -0.314856, 0.293608, 0.660109 -213, 0.615562, -0.314856, 0.293608, 0.660109 -214, 0.615562, -0.314856, 0.293608, 0.660109 -215, 0.615562, -0.314856, 0.293608, 0.660109 -216, 0.615562, -0.314856, 0.293608, 0.660109 -217, 0.615562, -0.314856, 0.293608, 0.660109 -218, 0.615562, -0.314856, 0.293608, 0.660109 -219, 0.615562, -0.314856, 0.293608, 0.660109 -220, 0.615562, -0.314856, 0.293608, 0.660109 -221, 0.615562, -0.314856, 0.293608, 0.660109 -222, 0.615562, -0.314856, 0.293608, 0.660109 -223, 0.615562, -0.314856, 0.293608, 0.660109 -224, 0.615562, -0.314856, 0.293608, 0.660109 -225, 0.615562, -0.314856, 0.293608, 0.660109 -226, 0.615562, -0.314856, 0.293608, 0.660109 -227, 0.615562, -0.314856, 0.293608, 0.660109 -228, 0.615562, -0.314856, 0.293608, 0.660109 -229, 0.615562, -0.314856, 0.293608, 0.660109 -230, 0.615562, -0.314856, 0.293608, 0.660109 -231, 0.615562, -0.314856, 0.293608, 0.660109 -232, 0.615562, -0.314856, 0.293608, 0.660109 -233, 0.615562, -0.314856, 0.293608, 0.660109 -234, 0.615562, -0.314856, 0.293608, 0.660109 -235, 0.615562, -0.314856, 0.293608, 0.660109 -236, 0.615562, -0.314856, 0.293608, 0.660109 -237, 0.615562, -0.314856, 0.293608, 0.660109 -238, 0.615562, -0.314856, 0.293608, 0.660109 -239, 0.615562, -0.314856, 0.293608, 0.660109 -240, 0.615562, -0.314856, 0.293608, 0.660109 -241, 0.615562, -0.314856, 0.293608, 0.660109 -242, 0.615562, -0.314856, 0.293608, 0.660109 -243, 0.615562, -0.314856, 0.293608, 0.660109 -244, 0.615562, -0.314856, 0.293608, 0.660109 -245, 0.615562, -0.314856, 0.293608, 0.660109 -246, 0.615562, -0.314856, 0.293608, 0.660109 -247, 0.615562, -0.314856, 0.293608, 0.660109 -248, 0.615562, -0.314856, 0.293608, 0.660109 -249, 0.615562, -0.314856, 0.293608, 0.660109 -250, 0.615562, -0.314856, 0.293608, 0.660109 -251, 0.615562, -0.314856, 0.293608, 0.660109 -252, 0.615562, -0.314856, 0.293608, 0.660109 -253, 0.615562, -0.314856, 0.293608, 0.660109 -254, 0.615562, -0.314856, 0.293608, 0.660109 -255, 0.615562, -0.314856, 0.293608, 0.660109 -256, 0.615562, -0.314856, 0.293608, 0.660109 -257, 0.615562, -0.314856, 0.293608, 0.660109 -258, 0.615562, -0.314856, 0.293608, 0.660109 -259, 0.615562, -0.314856, 0.293608, 0.660109 -260, 0.615562, -0.314856, 0.293608, 0.660109 -261, 0.615562, -0.314856, 0.293608, 0.660109 -262, 0.615562, -0.314856, 0.293608, 0.660109 -263, 0.615562, -0.314856, 0.293608, 0.660109 -264, 0.615562, -0.314856, 0.293608, 0.660109 -265, 0.615562, -0.314856, 0.293608, 0.660109 -266, 0.615562, -0.314856, 0.293608, 0.660109 -267, 0.615562, -0.314856, 0.293608, 0.660109 -268, 0.615562, -0.314856, 0.293608, 0.660109 -269, 0.615562, -0.314856, 0.293608, 0.660109 -270, 0.615562, -0.314856, 0.293608, 0.660109 -271, 0.615562, -0.314856, 0.293608, 0.660109 -272, 0.615562, -0.314856, 0.293608, 0.660109 -273, 0.615562, -0.314856, 0.293608, 0.660109 -274, 0.615562, -0.314856, 0.293608, 0.660109 -275, 0.615562, -0.314856, 0.293608, 0.660109 -276, 0.615562, -0.314856, 0.293608, 0.660109 -277, 0.615562, -0.314856, 0.293608, 0.660109 -278, 0.615562, -0.314856, 0.293608, 0.660109 -279, 0.615562, -0.314856, 0.293608, 0.660109 -280, 0.615562, -0.314856, 0.293608, 0.660109 -281, 0.615562, -0.314856, 0.293608, 0.660109 -282, 0.615562, -0.314856, 0.293608, 0.660109 -283, 0.615562, -0.314856, 0.293608, 0.660109 -284, 0.615562, -0.314856, 0.293608, 0.660109 -285, 0.615562, -0.314856, 0.293608, 0.660109 -286, 0.615562, -0.314856, 0.293608, 0.660109 -287, 0.615562, -0.314856, 0.293608, 0.660109 -288, 0.615562, -0.314856, 0.293608, 0.660109 -289, 0.615562, -0.314856, 0.293608, 0.660109 -290, 0.615562, -0.314856, 0.293608, 0.660109 -291, 0.615562, -0.314856, 0.293608, 0.660109 -292, 0.615562, -0.314856, 0.293608, 0.660109 -293, 0.615562, -0.314856, 0.293608, 0.660109 -294, 0.615562, -0.314856, 0.293608, 0.660109 -295, 0.615562, -0.314856, 0.293608, 0.660109 -296, 0.615562, -0.314856, 0.293608, 0.660109 -297, 0.615562, -0.314856, 0.293608, 0.660109 -298, 0.615562, -0.314856, 0.293608, 0.660109 -299, 0.615562, -0.314856, 0.293608, 0.660109 -300, 0.596200, -0.337381, 0.303779, 0.662147 -301, 0.596200, -0.337381, 0.303779, 0.662147 -302, 0.596200, -0.337381, 0.303779, 0.662147 -303, 0.596200, -0.337381, 0.303779, 0.662147 -304, 0.596200, -0.337381, 0.303779, 0.662147 -305, 0.596200, -0.337381, 0.303779, 0.662147 -306, 0.596200, -0.337381, 0.303779, 0.662147 -307, 0.596200, -0.337381, 0.303779, 0.662147 -308, 0.596200, -0.337381, 0.303779, 0.662147 -309, 0.596200, -0.337381, 0.303779, 0.662147 -310, 0.596200, -0.337381, 0.303779, 0.662147 -311, 0.596200, -0.337381, 0.303779, 0.662147 -312, 0.596200, -0.337381, 0.303779, 0.662147 -313, 0.596200, -0.337381, 0.303779, 0.662147 -314, 0.596200, -0.337381, 0.303779, 0.662147 -315, 0.596200, -0.337381, 0.303779, 0.662147 -316, 0.596200, -0.337381, 0.303779, 0.662147 -317, 0.596200, -0.337381, 0.303779, 0.662147 -318, 0.596200, -0.337381, 0.303779, 0.662147 -319, 0.596200, -0.337381, 0.303779, 0.662147 -320, 0.596200, -0.337381, 0.303779, 0.662147 -321, 0.596200, -0.337381, 0.303779, 0.662147 -322, 0.596200, -0.337381, 0.303779, 0.662147 -323, 0.596200, -0.337381, 0.303779, 0.662147 -324, 0.596200, -0.337381, 0.303779, 0.662147 -325, 0.596200, -0.337381, 0.303779, 0.662147 -326, 0.596200, -0.337381, 0.303779, 0.662147 -327, 0.596200, -0.337381, 0.303779, 0.662147 -328, 0.596200, -0.337381, 0.303779, 0.662147 -329, 0.596200, -0.337381, 0.303779, 0.662147 -330, 0.596200, -0.337381, 0.303779, 0.662147 -331, 0.596200, -0.337381, 0.303779, 0.662147 -332, 0.596200, -0.337381, 0.303779, 0.662147 -333, 0.596200, -0.337381, 0.303779, 0.662147 -334, 0.596200, -0.337381, 0.303779, 0.662147 -335, 0.596200, -0.337381, 0.303779, 0.662147 -336, 0.596200, -0.337381, 0.303779, 0.662147 -337, 0.596200, -0.337381, 0.303779, 0.662147 -338, 0.596200, -0.337381, 0.303779, 0.662147 -339, 0.596200, -0.337381, 0.303779, 0.662147 -340, 0.596200, -0.337381, 0.303779, 0.662147 -341, 0.596200, -0.337381, 0.303779, 0.662147 -342, 0.596200, -0.337381, 0.303779, 0.662147 -343, 0.596200, -0.337381, 0.303779, 0.662147 -344, 0.596200, -0.337381, 0.303779, 0.662147 -345, 0.596200, -0.337381, 0.303779, 0.662147 -346, 0.596200, -0.337381, 0.303779, 0.662147 -347, 0.596200, -0.337381, 0.303779, 0.662147 -348, 0.596200, -0.337381, 0.303779, 0.662147 -349, 0.596200, -0.337381, 0.303779, 0.662147 -350, 0.596200, -0.337381, 0.303779, 0.662147 -351, 0.596200, -0.337381, 0.303779, 0.662147 -352, 0.596200, -0.337381, 0.303779, 0.662147 -353, 0.596200, -0.337381, 0.303779, 0.662147 -354, 0.596200, -0.337381, 0.303779, 0.662147 -355, 0.596200, -0.337381, 0.303779, 0.662147 -356, 0.596200, -0.337381, 0.303779, 0.662147 -357, 0.596200, -0.337381, 0.303779, 0.662147 -358, 0.596200, -0.337381, 0.303779, 0.662147 -359, 0.596200, -0.337381, 0.303779, 0.662147 -360, 0.596200, -0.337381, 0.303779, 0.662147 -361, 0.596200, -0.337381, 0.303779, 0.662147 -362, 0.596200, -0.337381, 0.303779, 0.662147 -363, 0.596200, -0.337381, 0.303779, 0.662147 -364, 0.596200, -0.337381, 0.303779, 0.662147 -365, 0.596200, -0.337381, 0.303779, 0.662147 -366, 0.596200, -0.337381, 0.303779, 0.662147 -367, 0.596200, -0.337381, 0.303779, 0.662147 -368, 0.596200, -0.337381, 0.303779, 0.662147 -369, 0.596200, -0.337381, 0.303779, 0.662147 -370, 0.596200, -0.337381, 0.303779, 0.662147 -371, 0.596200, -0.337381, 0.303779, 0.662147 -372, 0.596200, -0.337381, 0.303779, 0.662147 -373, 0.596200, -0.337381, 0.303779, 0.662147 -374, 0.596200, -0.337381, 0.303779, 0.662147 -375, 0.596200, -0.337381, 0.303779, 0.662147 -376, 0.596200, -0.337381, 0.303779, 0.662147 -377, 0.596200, -0.337381, 0.303779, 0.662147 -378, 0.596200, -0.337381, 0.303779, 0.662147 -379, 0.596200, -0.337381, 0.303779, 0.662147 -380, 0.596200, -0.337381, 0.303779, 0.662147 -381, 0.596200, -0.337381, 0.303779, 0.662147 -382, 0.596200, -0.337381, 0.303779, 0.662147 -383, 0.596200, -0.337381, 0.303779, 0.662147 -384, 0.596200, -0.337381, 0.303779, 0.662147 -385, 0.596200, -0.337381, 0.303779, 0.662147 -386, 0.596200, -0.337381, 0.303779, 0.662147 -387, 0.596200, -0.337381, 0.303779, 0.662147 -388, 0.596200, -0.337381, 0.303779, 0.662147 -389, 0.596200, -0.337381, 0.303779, 0.662147 -390, 0.596200, -0.337381, 0.303779, 0.662147 -391, 0.596200, -0.337381, 0.303779, 0.662147 -392, 0.596200, -0.337381, 0.303779, 0.662147 -393, 0.596200, -0.337381, 0.303779, 0.662147 -394, 0.596200, -0.337381, 0.303779, 0.662147 -395, 0.596200, -0.337381, 0.303779, 0.662147 -396, 0.596200, -0.337381, 0.303779, 0.662147 -397, 0.596200, -0.337381, 0.303779, 0.662147 -398, 0.596200, -0.337381, 0.303779, 0.662147 -399, 0.596200, -0.337381, 0.303779, 0.662147 -400, 0.576556, -0.360116, 0.313044, 0.663252 -401, 0.576556, -0.360116, 0.313044, 0.663252 -402, 0.576556, -0.360116, 0.313044, 0.663252 -403, 0.576556, -0.360116, 0.313044, 0.663252 -404, 0.576556, -0.360116, 0.313044, 0.663252 -405, 0.576556, -0.360116, 0.313044, 0.663252 -406, 0.576556, -0.360116, 0.313044, 0.663252 -407, 0.576556, -0.360116, 0.313044, 0.663252 -408, 0.576556, -0.360116, 0.313044, 0.663252 -409, 0.576556, -0.360116, 0.313044, 0.663252 -410, 0.576556, -0.360116, 0.313044, 0.663252 -411, 0.576556, -0.360116, 0.313044, 0.663252 -412, 0.576556, -0.360116, 0.313044, 0.663252 -413, 0.576556, -0.360116, 0.313044, 0.663252 -414, 0.576556, -0.360116, 0.313044, 0.663252 -415, 0.576556, -0.360116, 0.313044, 0.663252 -416, 0.576556, -0.360116, 0.313044, 0.663252 -417, 0.576556, -0.360116, 0.313044, 0.663252 -418, 0.576556, -0.360116, 0.313044, 0.663252 -419, 0.576556, -0.360116, 0.313044, 0.663252 -420, 0.576556, -0.360116, 0.313044, 0.663252 -421, 0.576556, -0.360116, 0.313044, 0.663252 -422, 0.576556, -0.360116, 0.313044, 0.663252 -423, 0.576556, -0.360116, 0.313044, 0.663252 -424, 0.576556, -0.360116, 0.313044, 0.663252 -425, 0.576556, -0.360116, 0.313044, 0.663252 -426, 0.576556, -0.360116, 0.313044, 0.663252 -427, 0.576556, -0.360116, 0.313044, 0.663252 -428, 0.576556, -0.360116, 0.313044, 0.663252 -429, 0.576556, -0.360116, 0.313044, 0.663252 -430, 0.576556, -0.360116, 0.313044, 0.663252 -431, 0.576556, -0.360116, 0.313044, 0.663252 -432, 0.576556, -0.360116, 0.313044, 0.663252 -433, 0.576556, -0.360116, 0.313044, 0.663252 -434, 0.576556, -0.360116, 0.313044, 0.663252 -435, 0.576556, -0.360116, 0.313044, 0.663252 -436, 0.576556, -0.360116, 0.313044, 0.663252 -437, 0.576556, -0.360116, 0.313044, 0.663252 -438, 0.576556, -0.360116, 0.313044, 0.663252 -439, 0.576556, -0.360116, 0.313044, 0.663252 -440, 0.576556, -0.360116, 0.313044, 0.663252 -441, 0.576556, -0.360116, 0.313044, 0.663252 -442, 0.576556, -0.360116, 0.313044, 0.663252 -443, 0.576556, -0.360116, 0.313044, 0.663252 -444, 0.576556, -0.360116, 0.313044, 0.663252 -445, 0.576556, -0.360116, 0.313044, 0.663252 -446, 0.576556, -0.360116, 0.313044, 0.663252 -447, 0.576556, -0.360116, 0.313044, 0.663252 -448, 0.576556, -0.360116, 0.313044, 0.663252 -449, 0.576556, -0.360116, 0.313044, 0.663252 -450, 0.576556, -0.360116, 0.313044, 0.663252 -451, 0.576556, -0.360116, 0.313044, 0.663252 -452, 0.576556, -0.360116, 0.313044, 0.663252 -453, 0.576556, -0.360116, 0.313044, 0.663252 -454, 0.576556, -0.360116, 0.313044, 0.663252 -455, 0.576556, -0.360116, 0.313044, 0.663252 -456, 0.576556, -0.360116, 0.313044, 0.663252 -457, 0.576556, -0.360116, 0.313044, 0.663252 -458, 0.576556, -0.360116, 0.313044, 0.663252 -459, 0.576556, -0.360116, 0.313044, 0.663252 -460, 0.576556, -0.360116, 0.313044, 0.663252 -461, 0.576556, -0.360116, 0.313044, 0.663252 -462, 0.576556, -0.360116, 0.313044, 0.663252 -463, 0.576556, -0.360116, 0.313044, 0.663252 -464, 0.576556, -0.360116, 0.313044, 0.663252 -465, 0.576556, -0.360116, 0.313044, 0.663252 -466, 0.576556, -0.360116, 0.313044, 0.663252 -467, 0.576556, -0.360116, 0.313044, 0.663252 -468, 0.576556, -0.360116, 0.313044, 0.663252 -469, 0.576556, -0.360116, 0.313044, 0.663252 -470, 0.576556, -0.360116, 0.313044, 0.663252 -471, 0.576556, -0.360116, 0.313044, 0.663252 -472, 0.576556, -0.360116, 0.313044, 0.663252 -473, 0.576556, -0.360116, 0.313044, 0.663252 -474, 0.576556, -0.360116, 0.313044, 0.663252 -475, 0.576556, -0.360116, 0.313044, 0.663252 -476, 0.576556, -0.360116, 0.313044, 0.663252 -477, 0.576556, -0.360116, 0.313044, 0.663252 -478, 0.576556, -0.360116, 0.313044, 0.663252 -479, 0.576556, -0.360116, 0.313044, 0.663252 -480, 0.576556, -0.360116, 0.313044, 0.663252 -481, 0.576556, -0.360116, 0.313044, 0.663252 -482, 0.576556, -0.360116, 0.313044, 0.663252 -483, 0.576556, -0.360116, 0.313044, 0.663252 -484, 0.576556, -0.360116, 0.313044, 0.663252 -485, 0.576556, -0.360116, 0.313044, 0.663252 -486, 0.576556, -0.360116, 0.313044, 0.663252 -487, 0.576556, -0.360116, 0.313044, 0.663252 -488, 0.576556, -0.360116, 0.313044, 0.663252 -489, 0.576556, -0.360116, 0.313044, 0.663252 -490, 0.576556, -0.360116, 0.313044, 0.663252 -491, 0.576556, -0.360116, 0.313044, 0.663252 -492, 0.576556, -0.360116, 0.313044, 0.663252 -493, 0.576556, -0.360116, 0.313044, 0.663252 -494, 0.576556, -0.360116, 0.313044, 0.663252 -495, 0.576556, -0.360116, 0.313044, 0.663252 -496, 0.576556, -0.360116, 0.313044, 0.663252 -497, 0.576556, -0.360116, 0.313044, 0.663252 -498, 0.576556, -0.360116, 0.313044, 0.663252 -499, 0.576556, -0.360116, 0.313044, 0.663252 -500, 0.556670, -0.383022, 0.321394, 0.663414 -501, 0.556670, -0.383022, 0.321394, 0.663414 -502, 0.556670, -0.383022, 0.321394, 0.663414 -503, 0.556670, -0.383022, 0.321394, 0.663414 -504, 0.556670, -0.383022, 0.321394, 0.663414 -505, 0.556670, -0.383022, 0.321394, 0.663414 -506, 0.556670, -0.383022, 0.321394, 0.663414 -507, 0.556670, -0.383022, 0.321394, 0.663414 -508, 0.556670, -0.383022, 0.321394, 0.663414 -509, 0.556670, -0.383022, 0.321394, 0.663414 -510, 0.556670, -0.383022, 0.321394, 0.663414 -511, 0.556670, -0.383022, 0.321394, 0.663414 -512, 0.556670, -0.383022, 0.321394, 0.663414 -513, 0.556670, -0.383022, 0.321394, 0.663414 -514, 0.556670, -0.383022, 0.321394, 0.663414 -515, 0.556670, -0.383022, 0.321394, 0.663414 -516, 0.556670, -0.383022, 0.321394, 0.663414 -517, 0.556670, -0.383022, 0.321394, 0.663414 -518, 0.556670, -0.383022, 0.321394, 0.663414 -519, 0.556670, -0.383022, 0.321394, 0.663414 -520, 0.556670, -0.383022, 0.321394, 0.663414 -521, 0.556670, -0.383022, 0.321394, 0.663414 -522, 0.556670, -0.383022, 0.321394, 0.663414 -523, 0.556670, -0.383022, 0.321394, 0.663414 -524, 0.556670, -0.383022, 0.321394, 0.663414 -525, 0.556670, -0.383022, 0.321394, 0.663414 -526, 0.556670, -0.383022, 0.321394, 0.663414 -527, 0.556670, -0.383022, 0.321394, 0.663414 -528, 0.556670, -0.383022, 0.321394, 0.663414 -529, 0.556670, -0.383022, 0.321394, 0.663414 -530, 0.556670, -0.383022, 0.321394, 0.663414 -531, 0.556670, -0.383022, 0.321394, 0.663414 -532, 0.556670, -0.383022, 0.321394, 0.663414 -533, 0.556670, -0.383022, 0.321394, 0.663414 -534, 0.556670, -0.383022, 0.321394, 0.663414 -535, 0.556670, -0.383022, 0.321394, 0.663414 -536, 0.556670, -0.383022, 0.321394, 0.663414 -537, 0.556670, -0.383022, 0.321394, 0.663414 -538, 0.556670, -0.383022, 0.321394, 0.663414 -539, 0.556670, -0.383022, 0.321394, 0.663414 -540, 0.556670, -0.383022, 0.321394, 0.663414 -541, 0.556670, -0.383022, 0.321394, 0.663414 -542, 0.556670, -0.383022, 0.321394, 0.663414 -543, 0.556670, -0.383022, 0.321394, 0.663414 -544, 0.556670, -0.383022, 0.321394, 0.663414 -545, 0.556670, -0.383022, 0.321394, 0.663414 -546, 0.556670, -0.383022, 0.321394, 0.663414 -547, 0.556670, -0.383022, 0.321394, 0.663414 -548, 0.556670, -0.383022, 0.321394, 0.663414 -549, 0.556670, -0.383022, 0.321394, 0.663414 -550, 0.556670, -0.383022, 0.321394, 0.663414 -551, 0.556670, -0.383022, 0.321394, 0.663414 -552, 0.556670, -0.383022, 0.321394, 0.663414 -553, 0.556670, -0.383022, 0.321394, 0.663414 -554, 0.556670, -0.383022, 0.321394, 0.663414 -555, 0.556670, -0.383022, 0.321394, 0.663414 -556, 0.556670, -0.383022, 0.321394, 0.663414 -557, 0.556670, -0.383022, 0.321394, 0.663414 -558, 0.556670, -0.383022, 0.321394, 0.663414 -559, 0.556670, -0.383022, 0.321394, 0.663414 -560, 0.556670, -0.383022, 0.321394, 0.663414 -561, 0.556670, -0.383022, 0.321394, 0.663414 -562, 0.556670, -0.383022, 0.321394, 0.663414 -563, 0.556670, -0.383022, 0.321394, 0.663414 -564, 0.556670, -0.383022, 0.321394, 0.663414 -565, 0.556670, -0.383022, 0.321394, 0.663414 -566, 0.556670, -0.383022, 0.321394, 0.663414 -567, 0.556670, -0.383022, 0.321394, 0.663414 -568, 0.556670, -0.383022, 0.321394, 0.663414 -569, 0.556670, -0.383022, 0.321394, 0.663414 -570, 0.556670, -0.383022, 0.321394, 0.663414 -571, 0.556670, -0.383022, 0.321394, 0.663414 -572, 0.556670, -0.383022, 0.321394, 0.663414 -573, 0.556670, -0.383022, 0.321394, 0.663414 -574, 0.556670, -0.383022, 0.321394, 0.663414 -575, 0.556670, -0.383022, 0.321394, 0.663414 -576, 0.556670, -0.383022, 0.321394, 0.663414 -577, 0.556670, -0.383022, 0.321394, 0.663414 -578, 0.556670, -0.383022, 0.321394, 0.663414 -579, 0.556670, -0.383022, 0.321394, 0.663414 -580, 0.556670, -0.383022, 0.321394, 0.663414 -581, 0.556670, -0.383022, 0.321394, 0.663414 -582, 0.556670, -0.383022, 0.321394, 0.663414 -583, 0.556670, -0.383022, 0.321394, 0.663414 -584, 0.556670, -0.383022, 0.321394, 0.663414 -585, 0.556670, -0.383022, 0.321394, 0.663414 -586, 0.556670, -0.383022, 0.321394, 0.663414 -587, 0.556670, -0.383022, 0.321394, 0.663414 -588, 0.556670, -0.383022, 0.321394, 0.663414 -589, 0.556670, -0.383022, 0.321394, 0.663414 -590, 0.556670, -0.383022, 0.321394, 0.663414 -591, 0.556670, -0.383022, 0.321394, 0.663414 -592, 0.556670, -0.383022, 0.321394, 0.663414 -593, 0.556670, -0.383022, 0.321394, 0.663414 -594, 0.556670, -0.383022, 0.321394, 0.663414 -595, 0.556670, -0.383022, 0.321394, 0.663414 -596, 0.556670, -0.383022, 0.321394, 0.663414 -597, 0.556670, -0.383022, 0.321394, 0.663414 -598, 0.556670, -0.383022, 0.321394, 0.663414 -599, 0.556670, -0.383022, 0.321394, 0.663414 -600, 0.536584, -0.406058, 0.328819, 0.662626 -601, 0.536584, -0.406058, 0.328819, 0.662626 -602, 0.536584, -0.406058, 0.328819, 0.662626 -603, 0.536584, -0.406058, 0.328819, 0.662626 -604, 0.536584, -0.406058, 0.328819, 0.662626 -605, 0.536584, -0.406058, 0.328819, 0.662626 -606, 0.536584, -0.406058, 0.328819, 0.662626 -607, 0.536584, -0.406058, 0.328819, 0.662626 -608, 0.536584, -0.406058, 0.328819, 0.662626 -609, 0.536584, -0.406058, 0.328819, 0.662626 -610, 0.536584, -0.406058, 0.328819, 0.662626 -611, 0.536584, -0.406058, 0.328819, 0.662626 -612, 0.536584, -0.406058, 0.328819, 0.662626 -613, 0.536584, -0.406058, 0.328819, 0.662626 -614, 0.536584, -0.406058, 0.328819, 0.662626 -615, 0.536584, -0.406058, 0.328819, 0.662626 -616, 0.536584, -0.406058, 0.328819, 0.662626 -617, 0.536584, -0.406058, 0.328819, 0.662626 -618, 0.536584, -0.406058, 0.328819, 0.662626 -619, 0.536584, -0.406058, 0.328819, 0.662626 -620, 0.536584, -0.406058, 0.328819, 0.662626 -621, 0.536584, -0.406058, 0.328819, 0.662626 -622, 0.536584, -0.406058, 0.328819, 0.662626 -623, 0.536584, -0.406058, 0.328819, 0.662626 -624, 0.536584, -0.406058, 0.328819, 0.662626 -625, 0.536584, -0.406058, 0.328819, 0.662626 -626, 0.536584, -0.406058, 0.328819, 0.662626 -627, 0.536584, -0.406058, 0.328819, 0.662626 -628, 0.536584, -0.406058, 0.328819, 0.662626 -629, 0.536584, -0.406058, 0.328819, 0.662626 -630, 0.536584, -0.406058, 0.328819, 0.662626 -631, 0.536584, -0.406058, 0.328819, 0.662626 -632, 0.536584, -0.406058, 0.328819, 0.662626 -633, 0.536584, -0.406058, 0.328819, 0.662626 -634, 0.536584, -0.406058, 0.328819, 0.662626 -635, 0.536584, -0.406058, 0.328819, 0.662626 -636, 0.536584, -0.406058, 0.328819, 0.662626 -637, 0.536584, -0.406058, 0.328819, 0.662626 -638, 0.536584, -0.406058, 0.328819, 0.662626 -639, 0.536584, -0.406058, 0.328819, 0.662626 -640, 0.536584, -0.406058, 0.328819, 0.662626 -641, 0.536584, -0.406058, 0.328819, 0.662626 -642, 0.536584, -0.406058, 0.328819, 0.662626 -643, 0.536584, -0.406058, 0.328819, 0.662626 -644, 0.536584, -0.406058, 0.328819, 0.662626 -645, 0.536584, -0.406058, 0.328819, 0.662626 -646, 0.536584, -0.406058, 0.328819, 0.662626 -647, 0.536584, -0.406058, 0.328819, 0.662626 -648, 0.536584, -0.406058, 0.328819, 0.662626 -649, 0.536584, -0.406058, 0.328819, 0.662626 -650, 0.536584, -0.406058, 0.328819, 0.662626 -651, 0.536584, -0.406058, 0.328819, 0.662626 -652, 0.536584, -0.406058, 0.328819, 0.662626 -653, 0.536584, -0.406058, 0.328819, 0.662626 -654, 0.536584, -0.406058, 0.328819, 0.662626 -655, 0.536584, -0.406058, 0.328819, 0.662626 -656, 0.536584, -0.406058, 0.328819, 0.662626 -657, 0.536584, -0.406058, 0.328819, 0.662626 -658, 0.536584, -0.406058, 0.328819, 0.662626 -659, 0.536584, -0.406058, 0.328819, 0.662626 -660, 0.536584, -0.406058, 0.328819, 0.662626 -661, 0.536584, -0.406058, 0.328819, 0.662626 -662, 0.536584, -0.406058, 0.328819, 0.662626 -663, 0.536584, -0.406058, 0.328819, 0.662626 -664, 0.536584, -0.406058, 0.328819, 0.662626 -665, 0.536584, -0.406058, 0.328819, 0.662626 -666, 0.536584, -0.406058, 0.328819, 0.662626 -667, 0.536584, -0.406058, 0.328819, 0.662626 -668, 0.536584, -0.406058, 0.328819, 0.662626 -669, 0.536584, -0.406058, 0.328819, 0.662626 -670, 0.536584, -0.406058, 0.328819, 0.662626 -671, 0.536584, -0.406058, 0.328819, 0.662626 -672, 0.536584, -0.406058, 0.328819, 0.662626 -673, 0.536584, -0.406058, 0.328819, 0.662626 -674, 0.536584, -0.406058, 0.328819, 0.662626 -675, 0.536584, -0.406058, 0.328819, 0.662626 -676, 0.536584, -0.406058, 0.328819, 0.662626 -677, 0.536584, -0.406058, 0.328819, 0.662626 -678, 0.536584, -0.406058, 0.328819, 0.662626 -679, 0.536584, -0.406058, 0.328819, 0.662626 -680, 0.536584, -0.406058, 0.328819, 0.662626 -681, 0.536584, -0.406058, 0.328819, 0.662626 -682, 0.536584, -0.406058, 0.328819, 0.662626 -683, 0.536584, -0.406058, 0.328819, 0.662626 -684, 0.536584, -0.406058, 0.328819, 0.662626 -685, 0.536584, -0.406058, 0.328819, 0.662626 -686, 0.536584, -0.406058, 0.328819, 0.662626 -687, 0.536584, -0.406058, 0.328819, 0.662626 -688, 0.536584, -0.406058, 0.328819, 0.662626 -689, 0.536584, -0.406058, 0.328819, 0.662626 -690, 0.536584, -0.406058, 0.328819, 0.662626 -691, 0.536584, -0.406058, 0.328819, 0.662626 -692, 0.536584, -0.406058, 0.328819, 0.662626 -693, 0.536584, -0.406058, 0.328819, 0.662626 -694, 0.536584, -0.406058, 0.328819, 0.662626 -695, 0.536584, -0.406058, 0.328819, 0.662626 -696, 0.536584, -0.406058, 0.328819, 0.662626 -697, 0.536584, -0.406058, 0.328819, 0.662626 -698, 0.536584, -0.406058, 0.328819, 0.662626 -699, 0.536584, -0.406058, 0.328819, 0.662626 -700, 0.516337, -0.429181, 0.335313, 0.660881 -701, 0.516337, -0.429181, 0.335313, 0.660881 -702, 0.516337, -0.429181, 0.335313, 0.660881 -703, 0.516337, -0.429181, 0.335313, 0.660881 -704, 0.516337, -0.429181, 0.335313, 0.660881 -705, 0.516337, -0.429181, 0.335313, 0.660881 -706, 0.516337, -0.429181, 0.335313, 0.660881 -707, 0.516337, -0.429181, 0.335313, 0.660881 -708, 0.516337, -0.429181, 0.335313, 0.660881 -709, 0.516337, -0.429181, 0.335313, 0.660881 -710, 0.516337, -0.429181, 0.335313, 0.660881 -711, 0.516337, -0.429181, 0.335313, 0.660881 -712, 0.516337, -0.429181, 0.335313, 0.660881 -713, 0.516337, -0.429181, 0.335313, 0.660881 -714, 0.516337, -0.429181, 0.335313, 0.660881 -715, 0.516337, -0.429181, 0.335313, 0.660881 -716, 0.516337, -0.429181, 0.335313, 0.660881 -717, 0.516337, -0.429181, 0.335313, 0.660881 -718, 0.516337, -0.429181, 0.335313, 0.660881 -719, 0.516337, -0.429181, 0.335313, 0.660881 -720, 0.516337, -0.429181, 0.335313, 0.660881 -721, 0.516337, -0.429181, 0.335313, 0.660881 -722, 0.516337, -0.429181, 0.335313, 0.660881 -723, 0.516337, -0.429181, 0.335313, 0.660881 -724, 0.516337, -0.429181, 0.335313, 0.660881 -725, 0.516337, -0.429181, 0.335313, 0.660881 -726, 0.516337, -0.429181, 0.335313, 0.660881 -727, 0.516337, -0.429181, 0.335313, 0.660881 -728, 0.516337, -0.429181, 0.335313, 0.660881 -729, 0.516337, -0.429181, 0.335313, 0.660881 -730, 0.516337, -0.429181, 0.335313, 0.660881 -731, 0.516337, -0.429181, 0.335313, 0.660881 -732, 0.516337, -0.429181, 0.335313, 0.660881 -733, 0.516337, -0.429181, 0.335313, 0.660881 -734, 0.516337, -0.429181, 0.335313, 0.660881 -735, 0.516337, -0.429181, 0.335313, 0.660881 -736, 0.516337, -0.429181, 0.335313, 0.660881 -737, 0.516337, -0.429181, 0.335313, 0.660881 -738, 0.516337, -0.429181, 0.335313, 0.660881 -739, 0.516337, -0.429181, 0.335313, 0.660881 -740, 0.516337, -0.429181, 0.335313, 0.660881 -741, 0.516337, -0.429181, 0.335313, 0.660881 -742, 0.516337, -0.429181, 0.335313, 0.660881 -743, 0.516337, -0.429181, 0.335313, 0.660881 -744, 0.516337, -0.429181, 0.335313, 0.660881 -745, 0.516337, -0.429181, 0.335313, 0.660881 -746, 0.516337, -0.429181, 0.335313, 0.660881 -747, 0.516337, -0.429181, 0.335313, 0.660881 -748, 0.516337, -0.429181, 0.335313, 0.660881 -749, 0.516337, -0.429181, 0.335313, 0.660881 -750, 0.516337, -0.429181, 0.335313, 0.660881 -751, 0.516337, -0.429181, 0.335313, 0.660881 -752, 0.516337, -0.429181, 0.335313, 0.660881 -753, 0.516337, -0.429181, 0.335313, 0.660881 -754, 0.516337, -0.429181, 0.335313, 0.660881 -755, 0.516337, -0.429181, 0.335313, 0.660881 -756, 0.516337, -0.429181, 0.335313, 0.660881 -757, 0.516337, -0.429181, 0.335313, 0.660881 -758, 0.516337, -0.429181, 0.335313, 0.660881 -759, 0.516337, -0.429181, 0.335313, 0.660881 -760, 0.516337, -0.429181, 0.335313, 0.660881 -761, 0.516337, -0.429181, 0.335313, 0.660881 -762, 0.516337, -0.429181, 0.335313, 0.660881 -763, 0.516337, -0.429181, 0.335313, 0.660881 -764, 0.516337, -0.429181, 0.335313, 0.660881 -765, 0.516337, -0.429181, 0.335313, 0.660881 -766, 0.516337, -0.429181, 0.335313, 0.660881 -767, 0.516337, -0.429181, 0.335313, 0.660881 -768, 0.516337, -0.429181, 0.335313, 0.660881 -769, 0.516337, -0.429181, 0.335313, 0.660881 -770, 0.516337, -0.429181, 0.335313, 0.660881 -771, 0.516337, -0.429181, 0.335313, 0.660881 -772, 0.516337, -0.429181, 0.335313, 0.660881 -773, 0.516337, -0.429181, 0.335313, 0.660881 -774, 0.516337, -0.429181, 0.335313, 0.660881 -775, 0.516337, -0.429181, 0.335313, 0.660881 -776, 0.516337, -0.429181, 0.335313, 0.660881 -777, 0.516337, -0.429181, 0.335313, 0.660881 -778, 0.516337, -0.429181, 0.335313, 0.660881 -779, 0.516337, -0.429181, 0.335313, 0.660881 -780, 0.516337, -0.429181, 0.335313, 0.660881 -781, 0.516337, -0.429181, 0.335313, 0.660881 -782, 0.516337, -0.429181, 0.335313, 0.660881 -783, 0.516337, -0.429181, 0.335313, 0.660881 -784, 0.516337, -0.429181, 0.335313, 0.660881 -785, 0.516337, -0.429181, 0.335313, 0.660881 -786, 0.516337, -0.429181, 0.335313, 0.660881 -787, 0.516337, -0.429181, 0.335313, 0.660881 -788, 0.516337, -0.429181, 0.335313, 0.660881 -789, 0.516337, -0.429181, 0.335313, 0.660881 -790, 0.516337, -0.429181, 0.335313, 0.660881 -791, 0.516337, -0.429181, 0.335313, 0.660881 -792, 0.516337, -0.429181, 0.335313, 0.660881 -793, 0.516337, -0.429181, 0.335313, 0.660881 -794, 0.516337, -0.429181, 0.335313, 0.660881 -795, 0.516337, -0.429181, 0.335313, 0.660881 -796, 0.516337, -0.429181, 0.335313, 0.660881 -797, 0.516337, -0.429181, 0.335313, 0.660881 -798, 0.516337, -0.429181, 0.335313, 0.660881 -799, 0.516337, -0.429181, 0.335313, 0.660881 -800, 0.495972, -0.452352, 0.340872, 0.658176 -801, 0.495972, -0.452352, 0.340872, 0.658176 -802, 0.495972, -0.452352, 0.340872, 0.658176 -803, 0.495972, -0.452352, 0.340872, 0.658176 -804, 0.495972, -0.452352, 0.340872, 0.658176 -805, 0.495972, -0.452352, 0.340872, 0.658176 -806, 0.495972, -0.452352, 0.340872, 0.658176 -807, 0.495972, -0.452352, 0.340872, 0.658176 -808, 0.495972, -0.452352, 0.340872, 0.658176 -809, 0.495972, -0.452352, 0.340872, 0.658176 -810, 0.495972, -0.452352, 0.340872, 0.658176 -811, 0.495972, -0.452352, 0.340872, 0.658176 -812, 0.495972, -0.452352, 0.340872, 0.658176 -813, 0.495972, -0.452352, 0.340872, 0.658176 -814, 0.495972, -0.452352, 0.340872, 0.658176 -815, 0.495972, -0.452352, 0.340872, 0.658176 -816, 0.495972, -0.452352, 0.340872, 0.658176 -817, 0.495972, -0.452352, 0.340872, 0.658176 -818, 0.495972, -0.452352, 0.340872, 0.658176 -819, 0.495972, -0.452352, 0.340872, 0.658176 -820, 0.495972, -0.452352, 0.340872, 0.658176 -821, 0.495972, -0.452352, 0.340872, 0.658176 -822, 0.495972, -0.452352, 0.340872, 0.658176 -823, 0.495972, -0.452352, 0.340872, 0.658176 -824, 0.495972, -0.452352, 0.340872, 0.658176 -825, 0.495972, -0.452352, 0.340872, 0.658176 -826, 0.495972, -0.452352, 0.340872, 0.658176 -827, 0.495972, -0.452352, 0.340872, 0.658176 -828, 0.495972, -0.452352, 0.340872, 0.658176 -829, 0.495972, -0.452352, 0.340872, 0.658176 -830, 0.495972, -0.452352, 0.340872, 0.658176 -831, 0.495972, -0.452352, 0.340872, 0.658176 -832, 0.495972, -0.452352, 0.340872, 0.658176 -833, 0.495972, -0.452352, 0.340872, 0.658176 -834, 0.495972, -0.452352, 0.340872, 0.658176 -835, 0.495972, -0.452352, 0.340872, 0.658176 -836, 0.495972, -0.452352, 0.340872, 0.658176 -837, 0.495972, -0.452352, 0.340872, 0.658176 -838, 0.495972, -0.452352, 0.340872, 0.658176 -839, 0.495972, -0.452352, 0.340872, 0.658176 -840, 0.495972, -0.452352, 0.340872, 0.658176 -841, 0.495972, -0.452352, 0.340872, 0.658176 -842, 0.495972, -0.452352, 0.340872, 0.658176 -843, 0.495972, -0.452352, 0.340872, 0.658176 -844, 0.495972, -0.452352, 0.340872, 0.658176 -845, 0.495972, -0.452352, 0.340872, 0.658176 -846, 0.495972, -0.452352, 0.340872, 0.658176 -847, 0.495972, -0.452352, 0.340872, 0.658176 -848, 0.495972, -0.452352, 0.340872, 0.658176 -849, 0.495972, -0.452352, 0.340872, 0.658176 -850, 0.495972, -0.452352, 0.340872, 0.658176 -851, 0.495972, -0.452352, 0.340872, 0.658176 -852, 0.495972, -0.452352, 0.340872, 0.658176 -853, 0.495972, -0.452352, 0.340872, 0.658176 -854, 0.495972, -0.452352, 0.340872, 0.658176 -855, 0.495972, -0.452352, 0.340872, 0.658176 -856, 0.495972, -0.452352, 0.340872, 0.658176 -857, 0.495972, -0.452352, 0.340872, 0.658176 -858, 0.495972, -0.452352, 0.340872, 0.658176 -859, 0.495972, -0.452352, 0.340872, 0.658176 -860, 0.495972, -0.452352, 0.340872, 0.658176 -861, 0.495972, -0.452352, 0.340872, 0.658176 -862, 0.495972, -0.452352, 0.340872, 0.658176 -863, 0.495972, -0.452352, 0.340872, 0.658176 -864, 0.495972, -0.452352, 0.340872, 0.658176 -865, 0.495972, -0.452352, 0.340872, 0.658176 -866, 0.495972, -0.452352, 0.340872, 0.658176 -867, 0.495972, -0.452352, 0.340872, 0.658176 -868, 0.495972, -0.452352, 0.340872, 0.658176 -869, 0.495972, -0.452352, 0.340872, 0.658176 -870, 0.495972, -0.452352, 0.340872, 0.658176 -871, 0.495972, -0.452352, 0.340872, 0.658176 -872, 0.495972, -0.452352, 0.340872, 0.658176 -873, 0.495972, -0.452352, 0.340872, 0.658176 -874, 0.495972, -0.452352, 0.340872, 0.658176 -875, 0.495972, -0.452352, 0.340872, 0.658176 -876, 0.495972, -0.452352, 0.340872, 0.658176 -877, 0.495972, -0.452352, 0.340872, 0.658176 -878, 0.495972, -0.452352, 0.340872, 0.658176 -879, 0.495972, -0.452352, 0.340872, 0.658176 -880, 0.495972, -0.452352, 0.340872, 0.658176 -881, 0.495972, -0.452352, 0.340872, 0.658176 -882, 0.495972, -0.452352, 0.340872, 0.658176 -883, 0.495972, -0.452352, 0.340872, 0.658176 -884, 0.495972, -0.452352, 0.340872, 0.658176 -885, 0.495972, -0.452352, 0.340872, 0.658176 -886, 0.495972, -0.452352, 0.340872, 0.658176 -887, 0.495972, -0.452352, 0.340872, 0.658176 -888, 0.495972, -0.452352, 0.340872, 0.658176 -889, 0.495972, -0.452352, 0.340872, 0.658176 -890, 0.495972, -0.452352, 0.340872, 0.658176 -891, 0.495972, -0.452352, 0.340872, 0.658176 -892, 0.495972, -0.452352, 0.340872, 0.658176 -893, 0.495972, -0.452352, 0.340872, 0.658176 -894, 0.495972, -0.452352, 0.340872, 0.658176 -895, 0.495972, -0.452352, 0.340872, 0.658176 -896, 0.495972, -0.452352, 0.340872, 0.658176 -897, 0.495972, -0.452352, 0.340872, 0.658176 -898, 0.495972, -0.452352, 0.340872, 0.658176 -899, 0.495972, -0.452352, 0.340872, 0.658176 -900, 0.475528, -0.475528, 0.345492, 0.654508 -901, 0.475528, -0.475528, 0.345492, 0.654508 -902, 0.475528, -0.475528, 0.345492, 0.654508 -903, 0.475528, -0.475528, 0.345492, 0.654508 -904, 0.475528, -0.475528, 0.345492, 0.654508 -905, 0.475528, -0.475528, 0.345492, 0.654508 -906, 0.475528, -0.475528, 0.345492, 0.654508 -907, 0.475528, -0.475528, 0.345492, 0.654508 -908, 0.475528, -0.475528, 0.345492, 0.654508 -909, 0.475528, -0.475528, 0.345492, 0.654508 -910, 0.475528, -0.475528, 0.345492, 0.654508 -911, 0.475528, -0.475528, 0.345492, 0.654508 -912, 0.475528, -0.475528, 0.345492, 0.654508 -913, 0.475528, -0.475528, 0.345492, 0.654508 -914, 0.475528, -0.475528, 0.345492, 0.654508 -915, 0.475528, -0.475528, 0.345492, 0.654508 -916, 0.475528, -0.475528, 0.345492, 0.654508 -917, 0.475528, -0.475528, 0.345492, 0.654508 -918, 0.475528, -0.475528, 0.345492, 0.654508 -919, 0.475528, -0.475528, 0.345492, 0.654508 -920, 0.475528, -0.475528, 0.345492, 0.654508 -921, 0.475528, -0.475528, 0.345492, 0.654508 -922, 0.475528, -0.475528, 0.345492, 0.654508 -923, 0.475528, -0.475528, 0.345492, 0.654508 -924, 0.475528, -0.475528, 0.345492, 0.654508 -925, 0.475528, -0.475528, 0.345492, 0.654508 -926, 0.475528, -0.475528, 0.345492, 0.654508 -927, 0.475528, -0.475528, 0.345492, 0.654508 -928, 0.475528, -0.475528, 0.345492, 0.654508 -929, 0.475528, -0.475528, 0.345492, 0.654508 -930, 0.475528, -0.475528, 0.345492, 0.654508 -931, 0.475528, -0.475528, 0.345492, 0.654508 -932, 0.475528, -0.475528, 0.345492, 0.654508 -933, 0.475528, -0.475528, 0.345492, 0.654508 -934, 0.475528, -0.475528, 0.345492, 0.654508 -935, 0.475528, -0.475528, 0.345492, 0.654508 -936, 0.475528, -0.475528, 0.345492, 0.654508 -937, 0.475528, -0.475528, 0.345492, 0.654508 -938, 0.475528, -0.475528, 0.345492, 0.654508 -939, 0.475528, -0.475528, 0.345492, 0.654508 -940, 0.475528, -0.475528, 0.345492, 0.654508 -941, 0.475528, -0.475528, 0.345492, 0.654508 -942, 0.475528, -0.475528, 0.345492, 0.654508 -943, 0.475528, -0.475528, 0.345492, 0.654508 -944, 0.475528, -0.475528, 0.345492, 0.654508 -945, 0.475528, -0.475528, 0.345492, 0.654508 -946, 0.475528, -0.475528, 0.345492, 0.654508 -947, 0.475528, -0.475528, 0.345492, 0.654508 -948, 0.475528, -0.475528, 0.345492, 0.654508 -949, 0.475528, -0.475528, 0.345492, 0.654508 -950, 0.475528, -0.475528, 0.345492, 0.654508 -951, 0.475528, -0.475528, 0.345492, 0.654508 -952, 0.475528, -0.475528, 0.345492, 0.654508 -953, 0.475528, -0.475528, 0.345492, 0.654508 -954, 0.475528, -0.475528, 0.345492, 0.654508 -955, 0.475528, -0.475528, 0.345492, 0.654508 -956, 0.475528, -0.475528, 0.345492, 0.654508 -957, 0.475528, -0.475528, 0.345492, 0.654508 -958, 0.475528, -0.475528, 0.345492, 0.654508 -959, 0.475528, -0.475528, 0.345492, 0.654508 -960, 0.475528, -0.475528, 0.345492, 0.654508 -961, 0.475528, -0.475528, 0.345492, 0.654508 -962, 0.475528, -0.475528, 0.345492, 0.654508 -963, 0.475528, -0.475528, 0.345492, 0.654508 -964, 0.475528, -0.475528, 0.345492, 0.654508 -965, 0.475528, -0.475528, 0.345492, 0.654508 -966, 0.475528, -0.475528, 0.345492, 0.654508 -967, 0.475528, -0.475528, 0.345492, 0.654508 -968, 0.475528, -0.475528, 0.345492, 0.654508 -969, 0.475528, -0.475528, 0.345492, 0.654508 -970, 0.475528, -0.475528, 0.345492, 0.654508 -971, 0.475528, -0.475528, 0.345492, 0.654508 -972, 0.475528, -0.475528, 0.345492, 0.654508 -973, 0.475528, -0.475528, 0.345492, 0.654508 -974, 0.475528, -0.475528, 0.345492, 0.654508 -975, 0.475528, -0.475528, 0.345492, 0.654508 -976, 0.475528, -0.475528, 0.345492, 0.654508 -977, 0.475528, -0.475528, 0.345492, 0.654508 -978, 0.475528, -0.475528, 0.345492, 0.654508 -979, 0.475528, -0.475528, 0.345492, 0.654508 -980, 0.475528, -0.475528, 0.345492, 0.654508 -981, 0.475528, -0.475528, 0.345492, 0.654508 -982, 0.475528, -0.475528, 0.345492, 0.654508 -983, 0.475528, -0.475528, 0.345492, 0.654508 -984, 0.475528, -0.475528, 0.345492, 0.654508 -985, 0.475528, -0.475528, 0.345492, 0.654508 -986, 0.475528, -0.475528, 0.345492, 0.654508 -987, 0.475528, -0.475528, 0.345492, 0.654508 -988, 0.475528, -0.475528, 0.345492, 0.654508 -989, 0.475528, -0.475528, 0.345492, 0.654508 -990, 0.475528, -0.475528, 0.345492, 0.654508 -991, 0.475528, -0.475528, 0.345492, 0.654508 -992, 0.475528, -0.475528, 0.345492, 0.654508 -993, 0.475528, -0.475528, 0.345492, 0.654508 -994, 0.475528, -0.475528, 0.345492, 0.654508 -995, 0.475528, -0.475528, 0.345492, 0.654508 -996, 0.475528, -0.475528, 0.345492, 0.654508 -997, 0.475528, -0.475528, 0.345492, 0.654508 -998, 0.475528, -0.475528, 0.345492, 0.654508 -999, 0.475528, -0.475528, 0.345492, 0.654508 -1000, 0.455049, -0.498668, 0.349171, 0.649877 -1001, 0.455049, -0.498668, 0.349171, 0.649877 -1002, 0.455049, -0.498668, 0.349171, 0.649877 -1003, 0.455049, -0.498668, 0.349171, 0.649877 -1004, 0.455049, -0.498668, 0.349171, 0.649877 -1005, 0.455049, -0.498668, 0.349171, 0.649877 -1006, 0.455049, -0.498668, 0.349171, 0.649877 -1007, 0.455049, -0.498668, 0.349171, 0.649877 -1008, 0.455049, -0.498668, 0.349171, 0.649877 -1009, 0.455049, -0.498668, 0.349171, 0.649877 -1010, 0.455049, -0.498668, 0.349171, 0.649877 -1011, 0.455049, -0.498668, 0.349171, 0.649877 -1012, 0.455049, -0.498668, 0.349171, 0.649877 -1013, 0.455049, -0.498668, 0.349171, 0.649877 -1014, 0.455049, -0.498668, 0.349171, 0.649877 -1015, 0.455049, -0.498668, 0.349171, 0.649877 -1016, 0.455049, -0.498668, 0.349171, 0.649877 -1017, 0.455049, -0.498668, 0.349171, 0.649877 -1018, 0.455049, -0.498668, 0.349171, 0.649877 -1019, 0.455049, -0.498668, 0.349171, 0.649877 -1020, 0.455049, -0.498668, 0.349171, 0.649877 -1021, 0.455049, -0.498668, 0.349171, 0.649877 -1022, 0.455049, -0.498668, 0.349171, 0.649877 -1023, 0.455049, -0.498668, 0.349171, 0.649877 -1024, 0.455049, -0.498668, 0.349171, 0.649877 -1025, 0.455049, -0.498668, 0.349171, 0.649877 -1026, 0.455049, -0.498668, 0.349171, 0.649877 -1027, 0.455049, -0.498668, 0.349171, 0.649877 -1028, 0.455049, -0.498668, 0.349171, 0.649877 -1029, 0.455049, -0.498668, 0.349171, 0.649877 -1030, 0.455049, -0.498668, 0.349171, 0.649877 -1031, 0.455049, -0.498668, 0.349171, 0.649877 -1032, 0.455049, -0.498668, 0.349171, 0.649877 -1033, 0.455049, -0.498668, 0.349171, 0.649877 -1034, 0.455049, -0.498668, 0.349171, 0.649877 -1035, 0.455049, -0.498668, 0.349171, 0.649877 -1036, 0.455049, -0.498668, 0.349171, 0.649877 -1037, 0.455049, -0.498668, 0.349171, 0.649877 -1038, 0.455049, -0.498668, 0.349171, 0.649877 -1039, 0.455049, -0.498668, 0.349171, 0.649877 -1040, 0.455049, -0.498668, 0.349171, 0.649877 -1041, 0.455049, -0.498668, 0.349171, 0.649877 -1042, 0.455049, -0.498668, 0.349171, 0.649877 -1043, 0.455049, -0.498668, 0.349171, 0.649877 -1044, 0.455049, -0.498668, 0.349171, 0.649877 -1045, 0.455049, -0.498668, 0.349171, 0.649877 -1046, 0.455049, -0.498668, 0.349171, 0.649877 -1047, 0.455049, -0.498668, 0.349171, 0.649877 -1048, 0.455049, -0.498668, 0.349171, 0.649877 -1049, 0.455049, -0.498668, 0.349171, 0.649877 -1050, 0.455049, -0.498668, 0.349171, 0.649877 -1051, 0.455049, -0.498668, 0.349171, 0.649877 -1052, 0.455049, -0.498668, 0.349171, 0.649877 -1053, 0.455049, -0.498668, 0.349171, 0.649877 -1054, 0.455049, -0.498668, 0.349171, 0.649877 -1055, 0.455049, -0.498668, 0.349171, 0.649877 -1056, 0.455049, -0.498668, 0.349171, 0.649877 -1057, 0.455049, -0.498668, 0.349171, 0.649877 -1058, 0.455049, -0.498668, 0.349171, 0.649877 -1059, 0.455049, -0.498668, 0.349171, 0.649877 -1060, 0.455049, -0.498668, 0.349171, 0.649877 -1061, 0.455049, -0.498668, 0.349171, 0.649877 -1062, 0.455049, -0.498668, 0.349171, 0.649877 -1063, 0.455049, -0.498668, 0.349171, 0.649877 -1064, 0.455049, -0.498668, 0.349171, 0.649877 -1065, 0.455049, -0.498668, 0.349171, 0.649877 -1066, 0.455049, -0.498668, 0.349171, 0.649877 -1067, 0.455049, -0.498668, 0.349171, 0.649877 -1068, 0.455049, -0.498668, 0.349171, 0.649877 -1069, 0.455049, -0.498668, 0.349171, 0.649877 -1070, 0.455049, -0.498668, 0.349171, 0.649877 -1071, 0.455049, -0.498668, 0.349171, 0.649877 -1072, 0.455049, -0.498668, 0.349171, 0.649877 -1073, 0.455049, -0.498668, 0.349171, 0.649877 -1074, 0.455049, -0.498668, 0.349171, 0.649877 -1075, 0.455049, -0.498668, 0.349171, 0.649877 -1076, 0.455049, -0.498668, 0.349171, 0.649877 -1077, 0.455049, -0.498668, 0.349171, 0.649877 -1078, 0.455049, -0.498668, 0.349171, 0.649877 -1079, 0.455049, -0.498668, 0.349171, 0.649877 -1080, 0.455049, -0.498668, 0.349171, 0.649877 -1081, 0.455049, -0.498668, 0.349171, 0.649877 -1082, 0.455049, -0.498668, 0.349171, 0.649877 -1083, 0.455049, -0.498668, 0.349171, 0.649877 -1084, 0.455049, -0.498668, 0.349171, 0.649877 -1085, 0.455049, -0.498668, 0.349171, 0.649877 -1086, 0.455049, -0.498668, 0.349171, 0.649877 -1087, 0.455049, -0.498668, 0.349171, 0.649877 -1088, 0.455049, -0.498668, 0.349171, 0.649877 -1089, 0.455049, -0.498668, 0.349171, 0.649877 -1090, 0.455049, -0.498668, 0.349171, 0.649877 -1091, 0.455049, -0.498668, 0.349171, 0.649877 -1092, 0.455049, -0.498668, 0.349171, 0.649877 -1093, 0.455049, -0.498668, 0.349171, 0.649877 -1094, 0.455049, -0.498668, 0.349171, 0.649877 -1095, 0.455049, -0.498668, 0.349171, 0.649877 -1096, 0.455049, -0.498668, 0.349171, 0.649877 -1097, 0.455049, -0.498668, 0.349171, 0.649877 -1098, 0.455049, -0.498668, 0.349171, 0.649877 -1099, 0.455049, -0.498668, 0.349171, 0.649877 -1100, 0.434575, -0.521730, 0.351911, 0.644283 -1101, 0.434575, -0.521730, 0.351911, 0.644283 -1102, 0.434575, -0.521730, 0.351911, 0.644283 -1103, 0.434575, -0.521730, 0.351911, 0.644283 -1104, 0.434575, -0.521730, 0.351911, 0.644283 -1105, 0.434575, -0.521730, 0.351911, 0.644283 -1106, 0.434575, -0.521730, 0.351911, 0.644283 -1107, 0.434575, -0.521730, 0.351911, 0.644283 -1108, 0.434575, -0.521730, 0.351911, 0.644283 -1109, 0.434575, -0.521730, 0.351911, 0.644283 -1110, 0.434575, -0.521730, 0.351911, 0.644283 -1111, 0.434575, -0.521730, 0.351911, 0.644283 -1112, 0.434575, -0.521730, 0.351911, 0.644283 -1113, 0.434575, -0.521730, 0.351911, 0.644283 -1114, 0.434575, -0.521730, 0.351911, 0.644283 -1115, 0.434575, -0.521730, 0.351911, 0.644283 -1116, 0.434575, -0.521730, 0.351911, 0.644283 -1117, 0.434575, -0.521730, 0.351911, 0.644283 -1118, 0.434575, -0.521730, 0.351911, 0.644283 -1119, 0.434575, -0.521730, 0.351911, 0.644283 -1120, 0.434575, -0.521730, 0.351911, 0.644283 -1121, 0.434575, -0.521730, 0.351911, 0.644283 -1122, 0.434575, -0.521730, 0.351911, 0.644283 -1123, 0.434575, -0.521730, 0.351911, 0.644283 -1124, 0.434575, -0.521730, 0.351911, 0.644283 -1125, 0.434575, -0.521730, 0.351911, 0.644283 -1126, 0.434575, -0.521730, 0.351911, 0.644283 -1127, 0.434575, -0.521730, 0.351911, 0.644283 -1128, 0.434575, -0.521730, 0.351911, 0.644283 -1129, 0.434575, -0.521730, 0.351911, 0.644283 -1130, 0.434575, -0.521730, 0.351911, 0.644283 -1131, 0.434575, -0.521730, 0.351911, 0.644283 -1132, 0.434575, -0.521730, 0.351911, 0.644283 -1133, 0.434575, -0.521730, 0.351911, 0.644283 -1134, 0.434575, -0.521730, 0.351911, 0.644283 -1135, 0.434575, -0.521730, 0.351911, 0.644283 -1136, 0.434575, -0.521730, 0.351911, 0.644283 -1137, 0.434575, -0.521730, 0.351911, 0.644283 -1138, 0.434575, -0.521730, 0.351911, 0.644283 -1139, 0.434575, -0.521730, 0.351911, 0.644283 -1140, 0.434575, -0.521730, 0.351911, 0.644283 -1141, 0.434575, -0.521730, 0.351911, 0.644283 -1142, 0.434575, -0.521730, 0.351911, 0.644283 -1143, 0.434575, -0.521730, 0.351911, 0.644283 -1144, 0.434575, -0.521730, 0.351911, 0.644283 -1145, 0.434575, -0.521730, 0.351911, 0.644283 -1146, 0.434575, -0.521730, 0.351911, 0.644283 -1147, 0.434575, -0.521730, 0.351911, 0.644283 -1148, 0.434575, -0.521730, 0.351911, 0.644283 -1149, 0.434575, -0.521730, 0.351911, 0.644283 -1150, 0.434575, -0.521730, 0.351911, 0.644283 -1151, 0.434575, -0.521730, 0.351911, 0.644283 -1152, 0.434575, -0.521730, 0.351911, 0.644283 -1153, 0.434575, -0.521730, 0.351911, 0.644283 -1154, 0.434575, -0.521730, 0.351911, 0.644283 -1155, 0.434575, -0.521730, 0.351911, 0.644283 -1156, 0.434575, -0.521730, 0.351911, 0.644283 -1157, 0.434575, -0.521730, 0.351911, 0.644283 -1158, 0.434575, -0.521730, 0.351911, 0.644283 -1159, 0.434575, -0.521730, 0.351911, 0.644283 -1160, 0.434575, -0.521730, 0.351911, 0.644283 -1161, 0.434575, -0.521730, 0.351911, 0.644283 -1162, 0.434575, -0.521730, 0.351911, 0.644283 -1163, 0.434575, -0.521730, 0.351911, 0.644283 -1164, 0.434575, -0.521730, 0.351911, 0.644283 -1165, 0.434575, -0.521730, 0.351911, 0.644283 -1166, 0.434575, -0.521730, 0.351911, 0.644283 -1167, 0.434575, -0.521730, 0.351911, 0.644283 -1168, 0.434575, -0.521730, 0.351911, 0.644283 -1169, 0.434575, -0.521730, 0.351911, 0.644283 -1170, 0.434575, -0.521730, 0.351911, 0.644283 -1171, 0.434575, -0.521730, 0.351911, 0.644283 -1172, 0.434575, -0.521730, 0.351911, 0.644283 -1173, 0.434575, -0.521730, 0.351911, 0.644283 -1174, 0.434575, -0.521730, 0.351911, 0.644283 -1175, 0.434575, -0.521730, 0.351911, 0.644283 -1176, 0.434575, -0.521730, 0.351911, 0.644283 -1177, 0.434575, -0.521730, 0.351911, 0.644283 -1178, 0.434575, -0.521730, 0.351911, 0.644283 -1179, 0.434575, -0.521730, 0.351911, 0.644283 -1180, 0.434575, -0.521730, 0.351911, 0.644283 -1181, 0.434575, -0.521730, 0.351911, 0.644283 -1182, 0.434575, -0.521730, 0.351911, 0.644283 -1183, 0.434575, -0.521730, 0.351911, 0.644283 -1184, 0.434575, -0.521730, 0.351911, 0.644283 -1185, 0.434575, -0.521730, 0.351911, 0.644283 -1186, 0.434575, -0.521730, 0.351911, 0.644283 -1187, 0.434575, -0.521730, 0.351911, 0.644283 -1188, 0.434575, -0.521730, 0.351911, 0.644283 -1189, 0.434575, -0.521730, 0.351911, 0.644283 -1190, 0.434575, -0.521730, 0.351911, 0.644283 -1191, 0.434575, -0.521730, 0.351911, 0.644283 -1192, 0.434575, -0.521730, 0.351911, 0.644283 -1193, 0.434575, -0.521730, 0.351911, 0.644283 -1194, 0.434575, -0.521730, 0.351911, 0.644283 -1195, 0.434575, -0.521730, 0.351911, 0.644283 -1196, 0.434575, -0.521730, 0.351911, 0.644283 -1197, 0.434575, -0.521730, 0.351911, 0.644283 -1198, 0.434575, -0.521730, 0.351911, 0.644283 -1199, 0.434575, -0.521730, 0.351911, 0.644283 -1200, 0.414147, -0.544673, 0.353715, 0.637730 -1201, 0.414147, -0.544673, 0.353715, 0.637730 -1202, 0.414147, -0.544673, 0.353715, 0.637730 -1203, 0.414147, -0.544673, 0.353715, 0.637730 -1204, 0.414147, -0.544673, 0.353715, 0.637730 -1205, 0.414147, -0.544673, 0.353715, 0.637730 -1206, 0.414147, -0.544673, 0.353715, 0.637730 -1207, 0.414147, -0.544673, 0.353715, 0.637730 -1208, 0.414147, -0.544673, 0.353715, 0.637730 -1209, 0.414147, -0.544673, 0.353715, 0.637730 -1210, 0.414147, -0.544673, 0.353715, 0.637730 -1211, 0.414147, -0.544673, 0.353715, 0.637730 -1212, 0.414147, -0.544673, 0.353715, 0.637730 -1213, 0.414147, -0.544673, 0.353715, 0.637730 -1214, 0.414147, -0.544673, 0.353715, 0.637730 -1215, 0.414147, -0.544673, 0.353715, 0.637730 -1216, 0.414147, -0.544673, 0.353715, 0.637730 -1217, 0.414147, -0.544673, 0.353715, 0.637730 -1218, 0.414147, -0.544673, 0.353715, 0.637730 -1219, 0.414147, -0.544673, 0.353715, 0.637730 -1220, 0.414147, -0.544673, 0.353715, 0.637730 -1221, 0.414147, -0.544673, 0.353715, 0.637730 -1222, 0.414147, -0.544673, 0.353715, 0.637730 -1223, 0.414147, -0.544673, 0.353715, 0.637730 -1224, 0.414147, -0.544673, 0.353715, 0.637730 -1225, 0.414147, -0.544673, 0.353715, 0.637730 -1226, 0.414147, -0.544673, 0.353715, 0.637730 -1227, 0.414147, -0.544673, 0.353715, 0.637730 -1228, 0.414147, -0.544673, 0.353715, 0.637730 -1229, 0.414147, -0.544673, 0.353715, 0.637730 -1230, 0.414147, -0.544673, 0.353715, 0.637730 -1231, 0.414147, -0.544673, 0.353715, 0.637730 -1232, 0.414147, -0.544673, 0.353715, 0.637730 -1233, 0.414147, -0.544673, 0.353715, 0.637730 -1234, 0.414147, -0.544673, 0.353715, 0.637730 -1235, 0.414147, -0.544673, 0.353715, 0.637730 -1236, 0.414147, -0.544673, 0.353715, 0.637730 -1237, 0.414147, -0.544673, 0.353715, 0.637730 -1238, 0.414147, -0.544673, 0.353715, 0.637730 -1239, 0.414147, -0.544673, 0.353715, 0.637730 -1240, 0.414147, -0.544673, 0.353715, 0.637730 -1241, 0.414147, -0.544673, 0.353715, 0.637730 -1242, 0.414147, -0.544673, 0.353715, 0.637730 -1243, 0.414147, -0.544673, 0.353715, 0.637730 -1244, 0.414147, -0.544673, 0.353715, 0.637730 -1245, 0.414147, -0.544673, 0.353715, 0.637730 -1246, 0.414147, -0.544673, 0.353715, 0.637730 -1247, 0.414147, -0.544673, 0.353715, 0.637730 -1248, 0.414147, -0.544673, 0.353715, 0.637730 -1249, 0.414147, -0.544673, 0.353715, 0.637730 -1250, 0.414147, -0.544673, 0.353715, 0.637730 -1251, 0.414147, -0.544673, 0.353715, 0.637730 -1252, 0.414147, -0.544673, 0.353715, 0.637730 -1253, 0.414147, -0.544673, 0.353715, 0.637730 -1254, 0.414147, -0.544673, 0.353715, 0.637730 -1255, 0.414147, -0.544673, 0.353715, 0.637730 -1256, 0.414147, -0.544673, 0.353715, 0.637730 -1257, 0.414147, -0.544673, 0.353715, 0.637730 -1258, 0.414147, -0.544673, 0.353715, 0.637730 -1259, 0.414147, -0.544673, 0.353715, 0.637730 -1260, 0.414147, -0.544673, 0.353715, 0.637730 -1261, 0.414147, -0.544673, 0.353715, 0.637730 -1262, 0.414147, -0.544673, 0.353715, 0.637730 -1263, 0.414147, -0.544673, 0.353715, 0.637730 -1264, 0.414147, -0.544673, 0.353715, 0.637730 -1265, 0.414147, -0.544673, 0.353715, 0.637730 -1266, 0.414147, -0.544673, 0.353715, 0.637730 -1267, 0.414147, -0.544673, 0.353715, 0.637730 -1268, 0.414147, -0.544673, 0.353715, 0.637730 -1269, 0.414147, -0.544673, 0.353715, 0.637730 -1270, 0.414147, -0.544673, 0.353715, 0.637730 -1271, 0.414147, -0.544673, 0.353715, 0.637730 -1272, 0.414147, -0.544673, 0.353715, 0.637730 -1273, 0.414147, -0.544673, 0.353715, 0.637730 -1274, 0.414147, -0.544673, 0.353715, 0.637730 -1275, 0.414147, -0.544673, 0.353715, 0.637730 -1276, 0.414147, -0.544673, 0.353715, 0.637730 -1277, 0.414147, -0.544673, 0.353715, 0.637730 -1278, 0.414147, -0.544673, 0.353715, 0.637730 -1279, 0.414147, -0.544673, 0.353715, 0.637730 -1280, 0.414147, -0.544673, 0.353715, 0.637730 -1281, 0.414147, -0.544673, 0.353715, 0.637730 -1282, 0.414147, -0.544673, 0.353715, 0.637730 -1283, 0.414147, -0.544673, 0.353715, 0.637730 -1284, 0.414147, -0.544673, 0.353715, 0.637730 -1285, 0.414147, -0.544673, 0.353715, 0.637730 -1286, 0.414147, -0.544673, 0.353715, 0.637730 -1287, 0.414147, -0.544673, 0.353715, 0.637730 -1288, 0.414147, -0.544673, 0.353715, 0.637730 -1289, 0.414147, -0.544673, 0.353715, 0.637730 -1290, 0.414147, -0.544673, 0.353715, 0.637730 -1291, 0.414147, -0.544673, 0.353715, 0.637730 -1292, 0.414147, -0.544673, 0.353715, 0.637730 -1293, 0.414147, -0.544673, 0.353715, 0.637730 -1294, 0.414147, -0.544673, 0.353715, 0.637730 -1295, 0.414147, -0.544673, 0.353715, 0.637730 -1296, 0.414147, -0.544673, 0.353715, 0.637730 -1297, 0.414147, -0.544673, 0.353715, 0.637730 -1298, 0.414147, -0.544673, 0.353715, 0.637730 -1299, 0.414147, -0.544673, 0.353715, 0.637730 -1300, 0.393807, -0.567455, 0.354585, 0.630223 -1301, 0.393807, -0.567455, 0.354585, 0.630223 -1302, 0.393807, -0.567455, 0.354585, 0.630223 -1303, 0.393807, -0.567455, 0.354585, 0.630223 -1304, 0.393807, -0.567455, 0.354585, 0.630223 -1305, 0.393807, -0.567455, 0.354585, 0.630223 -1306, 0.393807, -0.567455, 0.354585, 0.630223 -1307, 0.393807, -0.567455, 0.354585, 0.630223 -1308, 0.393807, -0.567455, 0.354585, 0.630223 -1309, 0.393807, -0.567455, 0.354585, 0.630223 -1310, 0.393807, -0.567455, 0.354585, 0.630223 -1311, 0.393807, -0.567455, 0.354585, 0.630223 -1312, 0.393807, -0.567455, 0.354585, 0.630223 -1313, 0.393807, -0.567455, 0.354585, 0.630223 -1314, 0.393807, -0.567455, 0.354585, 0.630223 -1315, 0.393807, -0.567455, 0.354585, 0.630223 -1316, 0.393807, -0.567455, 0.354585, 0.630223 -1317, 0.393807, -0.567455, 0.354585, 0.630223 -1318, 0.393807, -0.567455, 0.354585, 0.630223 -1319, 0.393807, -0.567455, 0.354585, 0.630223 -1320, 0.393807, -0.567455, 0.354585, 0.630223 -1321, 0.393807, -0.567455, 0.354585, 0.630223 -1322, 0.393807, -0.567455, 0.354585, 0.630223 -1323, 0.393807, -0.567455, 0.354585, 0.630223 -1324, 0.393807, -0.567455, 0.354585, 0.630223 -1325, 0.393807, -0.567455, 0.354585, 0.630223 -1326, 0.393807, -0.567455, 0.354585, 0.630223 -1327, 0.393807, -0.567455, 0.354585, 0.630223 -1328, 0.393807, -0.567455, 0.354585, 0.630223 -1329, 0.393807, -0.567455, 0.354585, 0.630223 -1330, 0.393807, -0.567455, 0.354585, 0.630223 -1331, 0.393807, -0.567455, 0.354585, 0.630223 -1332, 0.393807, -0.567455, 0.354585, 0.630223 -1333, 0.393807, -0.567455, 0.354585, 0.630223 -1334, 0.393807, -0.567455, 0.354585, 0.630223 -1335, 0.393807, -0.567455, 0.354585, 0.630223 -1336, 0.393807, -0.567455, 0.354585, 0.630223 -1337, 0.393807, -0.567455, 0.354585, 0.630223 -1338, 0.393807, -0.567455, 0.354585, 0.630223 -1339, 0.393807, -0.567455, 0.354585, 0.630223 -1340, 0.393807, -0.567455, 0.354585, 0.630223 -1341, 0.393807, -0.567455, 0.354585, 0.630223 -1342, 0.393807, -0.567455, 0.354585, 0.630223 -1343, 0.393807, -0.567455, 0.354585, 0.630223 -1344, 0.393807, -0.567455, 0.354585, 0.630223 -1345, 0.393807, -0.567455, 0.354585, 0.630223 -1346, 0.393807, -0.567455, 0.354585, 0.630223 -1347, 0.393807, -0.567455, 0.354585, 0.630223 -1348, 0.393807, -0.567455, 0.354585, 0.630223 -1349, 0.393807, -0.567455, 0.354585, 0.630223 -1350, 0.393807, -0.567455, 0.354585, 0.630223 -1351, 0.393807, -0.567455, 0.354585, 0.630223 -1352, 0.393807, -0.567455, 0.354585, 0.630223 -1353, 0.393807, -0.567455, 0.354585, 0.630223 -1354, 0.393807, -0.567455, 0.354585, 0.630223 -1355, 0.393807, -0.567455, 0.354585, 0.630223 -1356, 0.393807, -0.567455, 0.354585, 0.630223 -1357, 0.393807, -0.567455, 0.354585, 0.630223 -1358, 0.393807, -0.567455, 0.354585, 0.630223 -1359, 0.393807, -0.567455, 0.354585, 0.630223 -1360, 0.393807, -0.567455, 0.354585, 0.630223 -1361, 0.393807, -0.567455, 0.354585, 0.630223 -1362, 0.393807, -0.567455, 0.354585, 0.630223 -1363, 0.393807, -0.567455, 0.354585, 0.630223 -1364, 0.393807, -0.567455, 0.354585, 0.630223 -1365, 0.393807, -0.567455, 0.354585, 0.630223 -1366, 0.393807, -0.567455, 0.354585, 0.630223 -1367, 0.393807, -0.567455, 0.354585, 0.630223 -1368, 0.393807, -0.567455, 0.354585, 0.630223 -1369, 0.393807, -0.567455, 0.354585, 0.630223 -1370, 0.393807, -0.567455, 0.354585, 0.630223 -1371, 0.393807, -0.567455, 0.354585, 0.630223 -1372, 0.393807, -0.567455, 0.354585, 0.630223 -1373, 0.393807, -0.567455, 0.354585, 0.630223 -1374, 0.393807, -0.567455, 0.354585, 0.630223 -1375, 0.393807, -0.567455, 0.354585, 0.630223 -1376, 0.393807, -0.567455, 0.354585, 0.630223 -1377, 0.393807, -0.567455, 0.354585, 0.630223 -1378, 0.393807, -0.567455, 0.354585, 0.630223 -1379, 0.393807, -0.567455, 0.354585, 0.630223 -1380, 0.393807, -0.567455, 0.354585, 0.630223 -1381, 0.393807, -0.567455, 0.354585, 0.630223 -1382, 0.393807, -0.567455, 0.354585, 0.630223 -1383, 0.393807, -0.567455, 0.354585, 0.630223 -1384, 0.393807, -0.567455, 0.354585, 0.630223 -1385, 0.393807, -0.567455, 0.354585, 0.630223 -1386, 0.393807, -0.567455, 0.354585, 0.630223 -1387, 0.393807, -0.567455, 0.354585, 0.630223 -1388, 0.393807, -0.567455, 0.354585, 0.630223 -1389, 0.393807, -0.567455, 0.354585, 0.630223 -1390, 0.393807, -0.567455, 0.354585, 0.630223 -1391, 0.393807, -0.567455, 0.354585, 0.630223 -1392, 0.393807, -0.567455, 0.354585, 0.630223 -1393, 0.393807, -0.567455, 0.354585, 0.630223 -1394, 0.393807, -0.567455, 0.354585, 0.630223 -1395, 0.393807, -0.567455, 0.354585, 0.630223 -1396, 0.393807, -0.567455, 0.354585, 0.630223 -1397, 0.393807, -0.567455, 0.354585, 0.630223 -1398, 0.393807, -0.567455, 0.354585, 0.630223 -1399, 0.393807, -0.567455, 0.354585, 0.630223 -1400, 0.373595, -0.590035, 0.354529, 0.621767 -1401, 0.373595, -0.590035, 0.354529, 0.621767 -1402, 0.373595, -0.590035, 0.354529, 0.621767 -1403, 0.373595, -0.590035, 0.354529, 0.621767 -1404, 0.373595, -0.590035, 0.354529, 0.621767 -1405, 0.373595, -0.590035, 0.354529, 0.621767 -1406, 0.373595, -0.590035, 0.354529, 0.621767 -1407, 0.373595, -0.590035, 0.354529, 0.621767 -1408, 0.373595, -0.590035, 0.354529, 0.621767 -1409, 0.373595, -0.590035, 0.354529, 0.621767 -1410, 0.373595, -0.590035, 0.354529, 0.621767 -1411, 0.373595, -0.590035, 0.354529, 0.621767 -1412, 0.373595, -0.590035, 0.354529, 0.621767 -1413, 0.373595, -0.590035, 0.354529, 0.621767 -1414, 0.373595, -0.590035, 0.354529, 0.621767 -1415, 0.373595, -0.590035, 0.354529, 0.621767 -1416, 0.373595, -0.590035, 0.354529, 0.621767 -1417, 0.373595, -0.590035, 0.354529, 0.621767 -1418, 0.373595, -0.590035, 0.354529, 0.621767 -1419, 0.373595, -0.590035, 0.354529, 0.621767 -1420, 0.373595, -0.590035, 0.354529, 0.621767 -1421, 0.373595, -0.590035, 0.354529, 0.621767 -1422, 0.373595, -0.590035, 0.354529, 0.621767 -1423, 0.373595, -0.590035, 0.354529, 0.621767 -1424, 0.373595, -0.590035, 0.354529, 0.621767 -1425, 0.373595, -0.590035, 0.354529, 0.621767 -1426, 0.373595, -0.590035, 0.354529, 0.621767 -1427, 0.373595, -0.590035, 0.354529, 0.621767 -1428, 0.373595, -0.590035, 0.354529, 0.621767 -1429, 0.373595, -0.590035, 0.354529, 0.621767 -1430, 0.373595, -0.590035, 0.354529, 0.621767 -1431, 0.373595, -0.590035, 0.354529, 0.621767 -1432, 0.373595, -0.590035, 0.354529, 0.621767 -1433, 0.373595, -0.590035, 0.354529, 0.621767 -1434, 0.373595, -0.590035, 0.354529, 0.621767 -1435, 0.373595, -0.590035, 0.354529, 0.621767 -1436, 0.373595, -0.590035, 0.354529, 0.621767 -1437, 0.373595, -0.590035, 0.354529, 0.621767 -1438, 0.373595, -0.590035, 0.354529, 0.621767 -1439, 0.373595, -0.590035, 0.354529, 0.621767 -1440, 0.373595, -0.590035, 0.354529, 0.621767 -1441, 0.373595, -0.590035, 0.354529, 0.621767 -1442, 0.373595, -0.590035, 0.354529, 0.621767 -1443, 0.373595, -0.590035, 0.354529, 0.621767 -1444, 0.373595, -0.590035, 0.354529, 0.621767 -1445, 0.373595, -0.590035, 0.354529, 0.621767 -1446, 0.373595, -0.590035, 0.354529, 0.621767 -1447, 0.373595, -0.590035, 0.354529, 0.621767 -1448, 0.373595, -0.590035, 0.354529, 0.621767 -1449, 0.373595, -0.590035, 0.354529, 0.621767 -1450, 0.373595, -0.590035, 0.354529, 0.621767 -1451, 0.373595, -0.590035, 0.354529, 0.621767 -1452, 0.373595, -0.590035, 0.354529, 0.621767 -1453, 0.373595, -0.590035, 0.354529, 0.621767 -1454, 0.373595, -0.590035, 0.354529, 0.621767 -1455, 0.373595, -0.590035, 0.354529, 0.621767 -1456, 0.373595, -0.590035, 0.354529, 0.621767 -1457, 0.373595, -0.590035, 0.354529, 0.621767 -1458, 0.373595, -0.590035, 0.354529, 0.621767 -1459, 0.373595, -0.590035, 0.354529, 0.621767 -1460, 0.373595, -0.590035, 0.354529, 0.621767 -1461, 0.373595, -0.590035, 0.354529, 0.621767 -1462, 0.373595, -0.590035, 0.354529, 0.621767 -1463, 0.373595, -0.590035, 0.354529, 0.621767 -1464, 0.373595, -0.590035, 0.354529, 0.621767 -1465, 0.373595, -0.590035, 0.354529, 0.621767 -1466, 0.373595, -0.590035, 0.354529, 0.621767 -1467, 0.373595, -0.590035, 0.354529, 0.621767 -1468, 0.373595, -0.590035, 0.354529, 0.621767 -1469, 0.373595, -0.590035, 0.354529, 0.621767 -1470, 0.373595, -0.590035, 0.354529, 0.621767 -1471, 0.373595, -0.590035, 0.354529, 0.621767 -1472, 0.373595, -0.590035, 0.354529, 0.621767 -1473, 0.373595, -0.590035, 0.354529, 0.621767 -1474, 0.373595, -0.590035, 0.354529, 0.621767 -1475, 0.373595, -0.590035, 0.354529, 0.621767 -1476, 0.373595, -0.590035, 0.354529, 0.621767 -1477, 0.373595, -0.590035, 0.354529, 0.621767 -1478, 0.373595, -0.590035, 0.354529, 0.621767 -1479, 0.373595, -0.590035, 0.354529, 0.621767 -1480, 0.373595, -0.590035, 0.354529, 0.621767 -1481, 0.373595, -0.590035, 0.354529, 0.621767 -1482, 0.373595, -0.590035, 0.354529, 0.621767 -1483, 0.373595, -0.590035, 0.354529, 0.621767 -1484, 0.373595, -0.590035, 0.354529, 0.621767 -1485, 0.373595, -0.590035, 0.354529, 0.621767 -1486, 0.373595, -0.590035, 0.354529, 0.621767 -1487, 0.373595, -0.590035, 0.354529, 0.621767 -1488, 0.373595, -0.590035, 0.354529, 0.621767 -1489, 0.373595, -0.590035, 0.354529, 0.621767 -1490, 0.373595, -0.590035, 0.354529, 0.621767 -1491, 0.373595, -0.590035, 0.354529, 0.621767 -1492, 0.373595, -0.590035, 0.354529, 0.621767 -1493, 0.373595, -0.590035, 0.354529, 0.621767 -1494, 0.373595, -0.590035, 0.354529, 0.621767 -1495, 0.373595, -0.590035, 0.354529, 0.621767 -1496, 0.373595, -0.590035, 0.354529, 0.621767 -1497, 0.373595, -0.590035, 0.354529, 0.621767 -1498, 0.373595, -0.590035, 0.354529, 0.621767 -1499, 0.373595, -0.590035, 0.354529, 0.621767 -1500, 0.353553, -0.612372, 0.353553, 0.612372 -1501, 0.353553, -0.612372, 0.353553, 0.612372 -1502, 0.353553, -0.612372, 0.353553, 0.612372 -1503, 0.353553, -0.612372, 0.353553, 0.612372 -1504, 0.353553, -0.612372, 0.353553, 0.612372 -1505, 0.353553, -0.612372, 0.353553, 0.612372 -1506, 0.353553, -0.612372, 0.353553, 0.612372 -1507, 0.353553, -0.612372, 0.353553, 0.612372 -1508, 0.353553, -0.612372, 0.353553, 0.612372 -1509, 0.353553, -0.612372, 0.353553, 0.612372 -1510, 0.353553, -0.612372, 0.353553, 0.612372 -1511, 0.353553, -0.612372, 0.353553, 0.612372 -1512, 0.353553, -0.612372, 0.353553, 0.612372 -1513, 0.353553, -0.612372, 0.353553, 0.612372 -1514, 0.353553, -0.612372, 0.353553, 0.612372 -1515, 0.353553, -0.612372, 0.353553, 0.612372 -1516, 0.353553, -0.612372, 0.353553, 0.612372 -1517, 0.353553, -0.612372, 0.353553, 0.612372 -1518, 0.353553, -0.612372, 0.353553, 0.612372 -1519, 0.353553, -0.612372, 0.353553, 0.612372 -1520, 0.353553, -0.612372, 0.353553, 0.612372 -1521, 0.353553, -0.612372, 0.353553, 0.612372 -1522, 0.353553, -0.612372, 0.353553, 0.612372 -1523, 0.353553, -0.612372, 0.353553, 0.612372 -1524, 0.353553, -0.612372, 0.353553, 0.612372 -1525, 0.353553, -0.612372, 0.353553, 0.612372 -1526, 0.353553, -0.612372, 0.353553, 0.612372 -1527, 0.353553, -0.612372, 0.353553, 0.612372 -1528, 0.353553, -0.612372, 0.353553, 0.612372 -1529, 0.353553, -0.612372, 0.353553, 0.612372 -1530, 0.353553, -0.612372, 0.353553, 0.612372 -1531, 0.353553, -0.612372, 0.353553, 0.612372 -1532, 0.353553, -0.612372, 0.353553, 0.612372 -1533, 0.353553, -0.612372, 0.353553, 0.612372 -1534, 0.353553, -0.612372, 0.353553, 0.612372 -1535, 0.353553, -0.612372, 0.353553, 0.612372 -1536, 0.353553, -0.612372, 0.353553, 0.612372 -1537, 0.353553, -0.612372, 0.353553, 0.612372 -1538, 0.353553, -0.612372, 0.353553, 0.612372 -1539, 0.353553, -0.612372, 0.353553, 0.612372 -1540, 0.353553, -0.612372, 0.353553, 0.612372 -1541, 0.353553, -0.612372, 0.353553, 0.612372 -1542, 0.353553, -0.612372, 0.353553, 0.612372 -1543, 0.353553, -0.612372, 0.353553, 0.612372 -1544, 0.353553, -0.612372, 0.353553, 0.612372 -1545, 0.353553, -0.612372, 0.353553, 0.612372 -1546, 0.353553, -0.612372, 0.353553, 0.612372 -1547, 0.353553, -0.612372, 0.353553, 0.612372 -1548, 0.353553, -0.612372, 0.353553, 0.612372 -1549, 0.353553, -0.612372, 0.353553, 0.612372 -1550, 0.353553, -0.612372, 0.353553, 0.612372 -1551, 0.353553, -0.612372, 0.353553, 0.612372 -1552, 0.353553, -0.612372, 0.353553, 0.612372 -1553, 0.353553, -0.612372, 0.353553, 0.612372 -1554, 0.353553, -0.612372, 0.353553, 0.612372 -1555, 0.353553, -0.612372, 0.353553, 0.612372 -1556, 0.353553, -0.612372, 0.353553, 0.612372 -1557, 0.353553, -0.612372, 0.353553, 0.612372 -1558, 0.353553, -0.612372, 0.353553, 0.612372 -1559, 0.353553, -0.612372, 0.353553, 0.612372 -1560, 0.353553, -0.612372, 0.353553, 0.612372 -1561, 0.353553, -0.612372, 0.353553, 0.612372 -1562, 0.353553, -0.612372, 0.353553, 0.612372 -1563, 0.353553, -0.612372, 0.353553, 0.612372 -1564, 0.353553, -0.612372, 0.353553, 0.612372 -1565, 0.353553, -0.612372, 0.353553, 0.612372 -1566, 0.353553, -0.612372, 0.353553, 0.612372 -1567, 0.353553, -0.612372, 0.353553, 0.612372 -1568, 0.353553, -0.612372, 0.353553, 0.612372 -1569, 0.353553, -0.612372, 0.353553, 0.612372 -1570, 0.353553, -0.612372, 0.353553, 0.612372 -1571, 0.353553, -0.612372, 0.353553, 0.612372 -1572, 0.353553, -0.612372, 0.353553, 0.612372 -1573, 0.353553, -0.612372, 0.353553, 0.612372 -1574, 0.353553, -0.612372, 0.353553, 0.612372 -1575, 0.353553, -0.612372, 0.353553, 0.612372 -1576, 0.353553, -0.612372, 0.353553, 0.612372 -1577, 0.353553, -0.612372, 0.353553, 0.612372 -1578, 0.353553, -0.612372, 0.353553, 0.612372 -1579, 0.353553, -0.612372, 0.353553, 0.612372 -1580, 0.353553, -0.612372, 0.353553, 0.612372 -1581, 0.353553, -0.612372, 0.353553, 0.612372 -1582, 0.353553, -0.612372, 0.353553, 0.612372 -1583, 0.353553, -0.612372, 0.353553, 0.612372 -1584, 0.353553, -0.612372, 0.353553, 0.612372 -1585, 0.353553, -0.612372, 0.353553, 0.612372 -1586, 0.353553, -0.612372, 0.353553, 0.612372 -1587, 0.353553, -0.612372, 0.353553, 0.612372 -1588, 0.353553, -0.612372, 0.353553, 0.612372 -1589, 0.353553, -0.612372, 0.353553, 0.612372 -1590, 0.353553, -0.612372, 0.353553, 0.612372 -1591, 0.353553, -0.612372, 0.353553, 0.612372 -1592, 0.353553, -0.612372, 0.353553, 0.612372 -1593, 0.353553, -0.612372, 0.353553, 0.612372 -1594, 0.353553, -0.612372, 0.353553, 0.612372 -1595, 0.353553, -0.612372, 0.353553, 0.612372 -1596, 0.353553, -0.612372, 0.353553, 0.612372 -1597, 0.353553, -0.612372, 0.353553, 0.612372 -1598, 0.353553, -0.612372, 0.353553, 0.612372 -1599, 0.353553, -0.612372, 0.353553, 0.612372 -1600, 0.333721, -0.634427, 0.351668, 0.602048 -1601, 0.333721, -0.634427, 0.351668, 0.602048 -1602, 0.333721, -0.634427, 0.351668, 0.602048 -1603, 0.333721, -0.634427, 0.351668, 0.602048 -1604, 0.333721, -0.634427, 0.351668, 0.602048 -1605, 0.333721, -0.634427, 0.351668, 0.602048 -1606, 0.333721, -0.634427, 0.351668, 0.602048 -1607, 0.333721, -0.634427, 0.351668, 0.602048 -1608, 0.333721, -0.634427, 0.351668, 0.602048 -1609, 0.333721, -0.634427, 0.351668, 0.602048 -1610, 0.333721, -0.634427, 0.351668, 0.602048 -1611, 0.333721, -0.634427, 0.351668, 0.602048 -1612, 0.333721, -0.634427, 0.351668, 0.602048 -1613, 0.333721, -0.634427, 0.351668, 0.602048 -1614, 0.333721, -0.634427, 0.351668, 0.602048 -1615, 0.333721, -0.634427, 0.351668, 0.602048 -1616, 0.333721, -0.634427, 0.351668, 0.602048 -1617, 0.333721, -0.634427, 0.351668, 0.602048 -1618, 0.333721, -0.634427, 0.351668, 0.602048 -1619, 0.333721, -0.634427, 0.351668, 0.602048 -1620, 0.333721, -0.634427, 0.351668, 0.602048 -1621, 0.333721, -0.634427, 0.351668, 0.602048 -1622, 0.333721, -0.634427, 0.351668, 0.602048 -1623, 0.333721, -0.634427, 0.351668, 0.602048 -1624, 0.333721, -0.634427, 0.351668, 0.602048 -1625, 0.333721, -0.634427, 0.351668, 0.602048 -1626, 0.333721, -0.634427, 0.351668, 0.602048 -1627, 0.333721, -0.634427, 0.351668, 0.602048 -1628, 0.333721, -0.634427, 0.351668, 0.602048 -1629, 0.333721, -0.634427, 0.351668, 0.602048 -1630, 0.333721, -0.634427, 0.351668, 0.602048 -1631, 0.333721, -0.634427, 0.351668, 0.602048 -1632, 0.333721, -0.634427, 0.351668, 0.602048 -1633, 0.333721, -0.634427, 0.351668, 0.602048 -1634, 0.333721, -0.634427, 0.351668, 0.602048 -1635, 0.333721, -0.634427, 0.351668, 0.602048 -1636, 0.333721, -0.634427, 0.351668, 0.602048 -1637, 0.333721, -0.634427, 0.351668, 0.602048 -1638, 0.333721, -0.634427, 0.351668, 0.602048 -1639, 0.333721, -0.634427, 0.351668, 0.602048 -1640, 0.333721, -0.634427, 0.351668, 0.602048 -1641, 0.333721, -0.634427, 0.351668, 0.602048 -1642, 0.333721, -0.634427, 0.351668, 0.602048 -1643, 0.333721, -0.634427, 0.351668, 0.602048 -1644, 0.333721, -0.634427, 0.351668, 0.602048 -1645, 0.333721, -0.634427, 0.351668, 0.602048 -1646, 0.333721, -0.634427, 0.351668, 0.602048 -1647, 0.333721, -0.634427, 0.351668, 0.602048 -1648, 0.333721, -0.634427, 0.351668, 0.602048 -1649, 0.333721, -0.634427, 0.351668, 0.602048 -1650, 0.333721, -0.634427, 0.351668, 0.602048 -1651, 0.333721, -0.634427, 0.351668, 0.602048 -1652, 0.333721, -0.634427, 0.351668, 0.602048 -1653, 0.333721, -0.634427, 0.351668, 0.602048 -1654, 0.333721, -0.634427, 0.351668, 0.602048 -1655, 0.333721, -0.634427, 0.351668, 0.602048 -1656, 0.333721, -0.634427, 0.351668, 0.602048 -1657, 0.333721, -0.634427, 0.351668, 0.602048 -1658, 0.333721, -0.634427, 0.351668, 0.602048 -1659, 0.333721, -0.634427, 0.351668, 0.602048 -1660, 0.333721, -0.634427, 0.351668, 0.602048 -1661, 0.333721, -0.634427, 0.351668, 0.602048 -1662, 0.333721, -0.634427, 0.351668, 0.602048 -1663, 0.333721, -0.634427, 0.351668, 0.602048 -1664, 0.333721, -0.634427, 0.351668, 0.602048 -1665, 0.333721, -0.634427, 0.351668, 0.602048 -1666, 0.333721, -0.634427, 0.351668, 0.602048 -1667, 0.333721, -0.634427, 0.351668, 0.602048 -1668, 0.333721, -0.634427, 0.351668, 0.602048 -1669, 0.333721, -0.634427, 0.351668, 0.602048 -1670, 0.333721, -0.634427, 0.351668, 0.602048 -1671, 0.333721, -0.634427, 0.351668, 0.602048 -1672, 0.333721, -0.634427, 0.351668, 0.602048 -1673, 0.333721, -0.634427, 0.351668, 0.602048 -1674, 0.333721, -0.634427, 0.351668, 0.602048 -1675, 0.333721, -0.634427, 0.351668, 0.602048 -1676, 0.333721, -0.634427, 0.351668, 0.602048 -1677, 0.333721, -0.634427, 0.351668, 0.602048 -1678, 0.333721, -0.634427, 0.351668, 0.602048 -1679, 0.333721, -0.634427, 0.351668, 0.602048 -1680, 0.333721, -0.634427, 0.351668, 0.602048 -1681, 0.333721, -0.634427, 0.351668, 0.602048 -1682, 0.333721, -0.634427, 0.351668, 0.602048 -1683, 0.333721, -0.634427, 0.351668, 0.602048 -1684, 0.333721, -0.634427, 0.351668, 0.602048 -1685, 0.333721, -0.634427, 0.351668, 0.602048 -1686, 0.333721, -0.634427, 0.351668, 0.602048 -1687, 0.333721, -0.634427, 0.351668, 0.602048 -1688, 0.333721, -0.634427, 0.351668, 0.602048 -1689, 0.333721, -0.634427, 0.351668, 0.602048 -1690, 0.333721, -0.634427, 0.351668, 0.602048 -1691, 0.333721, -0.634427, 0.351668, 0.602048 -1692, 0.333721, -0.634427, 0.351668, 0.602048 -1693, 0.333721, -0.634427, 0.351668, 0.602048 -1694, 0.333721, -0.634427, 0.351668, 0.602048 -1695, 0.333721, -0.634427, 0.351668, 0.602048 -1696, 0.333721, -0.634427, 0.351668, 0.602048 -1697, 0.333721, -0.634427, 0.351668, 0.602048 -1698, 0.333721, -0.634427, 0.351668, 0.602048 -1699, 0.333721, -0.634427, 0.351668, 0.602048 -1700, 0.314138, -0.656158, 0.348885, 0.590807 -1701, 0.314138, -0.656158, 0.348885, 0.590807 -1702, 0.314138, -0.656158, 0.348885, 0.590807 -1703, 0.314138, -0.656158, 0.348885, 0.590807 -1704, 0.314138, -0.656158, 0.348885, 0.590807 -1705, 0.314138, -0.656158, 0.348885, 0.590807 -1706, 0.314138, -0.656158, 0.348885, 0.590807 -1707, 0.314138, -0.656158, 0.348885, 0.590807 -1708, 0.314138, -0.656158, 0.348885, 0.590807 -1709, 0.314138, -0.656158, 0.348885, 0.590807 -1710, 0.314138, -0.656158, 0.348885, 0.590807 -1711, 0.314138, -0.656158, 0.348885, 0.590807 -1712, 0.314138, -0.656158, 0.348885, 0.590807 -1713, 0.314138, -0.656158, 0.348885, 0.590807 -1714, 0.314138, -0.656158, 0.348885, 0.590807 -1715, 0.314138, -0.656158, 0.348885, 0.590807 -1716, 0.314138, -0.656158, 0.348885, 0.590807 -1717, 0.314138, -0.656158, 0.348885, 0.590807 -1718, 0.314138, -0.656158, 0.348885, 0.590807 -1719, 0.314138, -0.656158, 0.348885, 0.590807 -1720, 0.314138, -0.656158, 0.348885, 0.590807 -1721, 0.314138, -0.656158, 0.348885, 0.590807 -1722, 0.314138, -0.656158, 0.348885, 0.590807 -1723, 0.314138, -0.656158, 0.348885, 0.590807 -1724, 0.314138, -0.656158, 0.348885, 0.590807 -1725, 0.314138, -0.656158, 0.348885, 0.590807 -1726, 0.314138, -0.656158, 0.348885, 0.590807 -1727, 0.314138, -0.656158, 0.348885, 0.590807 -1728, 0.314138, -0.656158, 0.348885, 0.590807 -1729, 0.314138, -0.656158, 0.348885, 0.590807 -1730, 0.314138, -0.656158, 0.348885, 0.590807 -1731, 0.314138, -0.656158, 0.348885, 0.590807 -1732, 0.314138, -0.656158, 0.348885, 0.590807 -1733, 0.314138, -0.656158, 0.348885, 0.590807 -1734, 0.314138, -0.656158, 0.348885, 0.590807 -1735, 0.314138, -0.656158, 0.348885, 0.590807 -1736, 0.314138, -0.656158, 0.348885, 0.590807 -1737, 0.314138, -0.656158, 0.348885, 0.590807 -1738, 0.314138, -0.656158, 0.348885, 0.590807 -1739, 0.314138, -0.656158, 0.348885, 0.590807 -1740, 0.314138, -0.656158, 0.348885, 0.590807 -1741, 0.314138, -0.656158, 0.348885, 0.590807 -1742, 0.314138, -0.656158, 0.348885, 0.590807 -1743, 0.314138, -0.656158, 0.348885, 0.590807 -1744, 0.314138, -0.656158, 0.348885, 0.590807 -1745, 0.314138, -0.656158, 0.348885, 0.590807 -1746, 0.314138, -0.656158, 0.348885, 0.590807 -1747, 0.314138, -0.656158, 0.348885, 0.590807 -1748, 0.314138, -0.656158, 0.348885, 0.590807 -1749, 0.314138, -0.656158, 0.348885, 0.590807 -1750, 0.314138, -0.656158, 0.348885, 0.590807 -1751, 0.314138, -0.656158, 0.348885, 0.590807 -1752, 0.314138, -0.656158, 0.348885, 0.590807 -1753, 0.314138, -0.656158, 0.348885, 0.590807 -1754, 0.314138, -0.656158, 0.348885, 0.590807 -1755, 0.314138, -0.656158, 0.348885, 0.590807 -1756, 0.314138, -0.656158, 0.348885, 0.590807 -1757, 0.314138, -0.656158, 0.348885, 0.590807 -1758, 0.314138, -0.656158, 0.348885, 0.590807 -1759, 0.314138, -0.656158, 0.348885, 0.590807 -1760, 0.314138, -0.656158, 0.348885, 0.590807 -1761, 0.314138, -0.656158, 0.348885, 0.590807 -1762, 0.314138, -0.656158, 0.348885, 0.590807 -1763, 0.314138, -0.656158, 0.348885, 0.590807 -1764, 0.314138, -0.656158, 0.348885, 0.590807 -1765, 0.314138, -0.656158, 0.348885, 0.590807 -1766, 0.314138, -0.656158, 0.348885, 0.590807 -1767, 0.314138, -0.656158, 0.348885, 0.590807 -1768, 0.314138, -0.656158, 0.348885, 0.590807 -1769, 0.314138, -0.656158, 0.348885, 0.590807 -1770, 0.314138, -0.656158, 0.348885, 0.590807 -1771, 0.314138, -0.656158, 0.348885, 0.590807 -1772, 0.314138, -0.656158, 0.348885, 0.590807 -1773, 0.314138, -0.656158, 0.348885, 0.590807 -1774, 0.314138, -0.656158, 0.348885, 0.590807 -1775, 0.314138, -0.656158, 0.348885, 0.590807 -1776, 0.314138, -0.656158, 0.348885, 0.590807 -1777, 0.314138, -0.656158, 0.348885, 0.590807 -1778, 0.314138, -0.656158, 0.348885, 0.590807 -1779, 0.314138, -0.656158, 0.348885, 0.590807 -1780, 0.314138, -0.656158, 0.348885, 0.590807 -1781, 0.314138, -0.656158, 0.348885, 0.590807 -1782, 0.314138, -0.656158, 0.348885, 0.590807 -1783, 0.314138, -0.656158, 0.348885, 0.590807 -1784, 0.314138, -0.656158, 0.348885, 0.590807 -1785, 0.314138, -0.656158, 0.348885, 0.590807 -1786, 0.314138, -0.656158, 0.348885, 0.590807 -1787, 0.314138, -0.656158, 0.348885, 0.590807 -1788, 0.314138, -0.656158, 0.348885, 0.590807 -1789, 0.314138, -0.656158, 0.348885, 0.590807 -1790, 0.314138, -0.656158, 0.348885, 0.590807 -1791, 0.314138, -0.656158, 0.348885, 0.590807 -1792, 0.314138, -0.656158, 0.348885, 0.590807 -1793, 0.314138, -0.656158, 0.348885, 0.590807 -1794, 0.314138, -0.656158, 0.348885, 0.590807 -1795, 0.314138, -0.656158, 0.348885, 0.590807 -1796, 0.314138, -0.656158, 0.348885, 0.590807 -1797, 0.314138, -0.656158, 0.348885, 0.590807 -1798, 0.314138, -0.656158, 0.348885, 0.590807 -1799, 0.314138, -0.656158, 0.348885, 0.590807 -1800, 0.294843, -0.677527, 0.345217, 0.578662 -1801, 0.294843, -0.677527, 0.345217, 0.578662 -1802, 0.294843, -0.677527, 0.345217, 0.578662 -1803, 0.294843, -0.677527, 0.345217, 0.578662 -1804, 0.294843, -0.677527, 0.345217, 0.578662 -1805, 0.294843, -0.677527, 0.345217, 0.578662 -1806, 0.294843, -0.677527, 0.345217, 0.578662 -1807, 0.294843, -0.677527, 0.345217, 0.578662 -1808, 0.294843, -0.677527, 0.345217, 0.578662 -1809, 0.294843, -0.677527, 0.345217, 0.578662 -1810, 0.294843, -0.677527, 0.345217, 0.578662 -1811, 0.294843, -0.677527, 0.345217, 0.578662 -1812, 0.294843, -0.677527, 0.345217, 0.578662 -1813, 0.294843, -0.677527, 0.345217, 0.578662 -1814, 0.294843, -0.677527, 0.345217, 0.578662 -1815, 0.294843, -0.677527, 0.345217, 0.578662 -1816, 0.294843, -0.677527, 0.345217, 0.578662 -1817, 0.294843, -0.677527, 0.345217, 0.578662 -1818, 0.294843, -0.677527, 0.345217, 0.578662 -1819, 0.294843, -0.677527, 0.345217, 0.578662 -1820, 0.294843, -0.677527, 0.345217, 0.578662 -1821, 0.294843, -0.677527, 0.345217, 0.578662 -1822, 0.294843, -0.677527, 0.345217, 0.578662 -1823, 0.294843, -0.677527, 0.345217, 0.578662 -1824, 0.294843, -0.677527, 0.345217, 0.578662 -1825, 0.294843, -0.677527, 0.345217, 0.578662 -1826, 0.294843, -0.677527, 0.345217, 0.578662 -1827, 0.294843, -0.677527, 0.345217, 0.578662 -1828, 0.294843, -0.677527, 0.345217, 0.578662 -1829, 0.294843, -0.677527, 0.345217, 0.578662 -1830, 0.294843, -0.677527, 0.345217, 0.578662 -1831, 0.294843, -0.677527, 0.345217, 0.578662 -1832, 0.294843, -0.677527, 0.345217, 0.578662 -1833, 0.294843, -0.677527, 0.345217, 0.578662 -1834, 0.294843, -0.677527, 0.345217, 0.578662 -1835, 0.294843, -0.677527, 0.345217, 0.578662 -1836, 0.294843, -0.677527, 0.345217, 0.578662 -1837, 0.294843, -0.677527, 0.345217, 0.578662 -1838, 0.294843, -0.677527, 0.345217, 0.578662 -1839, 0.294843, -0.677527, 0.345217, 0.578662 -1840, 0.294843, -0.677527, 0.345217, 0.578662 -1841, 0.294843, -0.677527, 0.345217, 0.578662 -1842, 0.294843, -0.677527, 0.345217, 0.578662 -1843, 0.294843, -0.677527, 0.345217, 0.578662 -1844, 0.294843, -0.677527, 0.345217, 0.578662 -1845, 0.294843, -0.677527, 0.345217, 0.578662 -1846, 0.294843, -0.677527, 0.345217, 0.578662 -1847, 0.294843, -0.677527, 0.345217, 0.578662 -1848, 0.294843, -0.677527, 0.345217, 0.578662 -1849, 0.294843, -0.677527, 0.345217, 0.578662 -1850, 0.294843, -0.677527, 0.345217, 0.578662 -1851, 0.294843, -0.677527, 0.345217, 0.578662 -1852, 0.294843, -0.677527, 0.345217, 0.578662 -1853, 0.294843, -0.677527, 0.345217, 0.578662 -1854, 0.294843, -0.677527, 0.345217, 0.578662 -1855, 0.294843, -0.677527, 0.345217, 0.578662 -1856, 0.294843, -0.677527, 0.345217, 0.578662 -1857, 0.294843, -0.677527, 0.345217, 0.578662 -1858, 0.294843, -0.677527, 0.345217, 0.578662 -1859, 0.294843, -0.677527, 0.345217, 0.578662 -1860, 0.294843, -0.677527, 0.345217, 0.578662 -1861, 0.294843, -0.677527, 0.345217, 0.578662 -1862, 0.294843, -0.677527, 0.345217, 0.578662 -1863, 0.294843, -0.677527, 0.345217, 0.578662 -1864, 0.294843, -0.677527, 0.345217, 0.578662 -1865, 0.294843, -0.677527, 0.345217, 0.578662 -1866, 0.294843, -0.677527, 0.345217, 0.578662 -1867, 0.294843, -0.677527, 0.345217, 0.578662 -1868, 0.294843, -0.677527, 0.345217, 0.578662 -1869, 0.294843, -0.677527, 0.345217, 0.578662 -1870, 0.294843, -0.677527, 0.345217, 0.578662 -1871, 0.294843, -0.677527, 0.345217, 0.578662 -1872, 0.294843, -0.677527, 0.345217, 0.578662 -1873, 0.294843, -0.677527, 0.345217, 0.578662 -1874, 0.294843, -0.677527, 0.345217, 0.578662 -1875, 0.294843, -0.677527, 0.345217, 0.578662 -1876, 0.294843, -0.677527, 0.345217, 0.578662 -1877, 0.294843, -0.677527, 0.345217, 0.578662 -1878, 0.294843, -0.677527, 0.345217, 0.578662 -1879, 0.294843, -0.677527, 0.345217, 0.578662 -1880, 0.294843, -0.677527, 0.345217, 0.578662 -1881, 0.294843, -0.677527, 0.345217, 0.578662 -1882, 0.294843, -0.677527, 0.345217, 0.578662 -1883, 0.294843, -0.677527, 0.345217, 0.578662 -1884, 0.294843, -0.677527, 0.345217, 0.578662 -1885, 0.294843, -0.677527, 0.345217, 0.578662 -1886, 0.294843, -0.677527, 0.345217, 0.578662 -1887, 0.294843, -0.677527, 0.345217, 0.578662 -1888, 0.294843, -0.677527, 0.345217, 0.578662 -1889, 0.294843, -0.677527, 0.345217, 0.578662 -1890, 0.294843, -0.677527, 0.345217, 0.578662 -1891, 0.294843, -0.677527, 0.345217, 0.578662 -1892, 0.294843, -0.677527, 0.345217, 0.578662 -1893, 0.294843, -0.677527, 0.345217, 0.578662 -1894, 0.294843, -0.677527, 0.345217, 0.578662 -1895, 0.294843, -0.677527, 0.345217, 0.578662 -1896, 0.294843, -0.677527, 0.345217, 0.578662 -1897, 0.294843, -0.677527, 0.345217, 0.578662 -1898, 0.294843, -0.677527, 0.345217, 0.578662 -1899, 0.294843, -0.677527, 0.345217, 0.578662 -1900, 0.275876, -0.698494, 0.340678, 0.565629 -1901, 0.275876, -0.698494, 0.340678, 0.565629 -1902, 0.275876, -0.698494, 0.340678, 0.565629 -1903, 0.275876, -0.698494, 0.340678, 0.565629 -1904, 0.275876, -0.698494, 0.340678, 0.565629 -1905, 0.275876, -0.698494, 0.340678, 0.565629 -1906, 0.275876, -0.698494, 0.340678, 0.565629 -1907, 0.275876, -0.698494, 0.340678, 0.565629 -1908, 0.275876, -0.698494, 0.340678, 0.565629 -1909, 0.275876, -0.698494, 0.340678, 0.565629 -1910, 0.275876, -0.698494, 0.340678, 0.565629 -1911, 0.275876, -0.698494, 0.340678, 0.565629 -1912, 0.275876, -0.698494, 0.340678, 0.565629 -1913, 0.275876, -0.698494, 0.340678, 0.565629 -1914, 0.275876, -0.698494, 0.340678, 0.565629 -1915, 0.275876, -0.698494, 0.340678, 0.565629 -1916, 0.275876, -0.698494, 0.340678, 0.565629 -1917, 0.275876, -0.698494, 0.340678, 0.565629 -1918, 0.275876, -0.698494, 0.340678, 0.565629 -1919, 0.275876, -0.698494, 0.340678, 0.565629 -1920, 0.275876, -0.698494, 0.340678, 0.565629 -1921, 0.275876, -0.698494, 0.340678, 0.565629 -1922, 0.275876, -0.698494, 0.340678, 0.565629 -1923, 0.275876, -0.698494, 0.340678, 0.565629 -1924, 0.275876, -0.698494, 0.340678, 0.565629 -1925, 0.275876, -0.698494, 0.340678, 0.565629 -1926, 0.275876, -0.698494, 0.340678, 0.565629 -1927, 0.275876, -0.698494, 0.340678, 0.565629 -1928, 0.275876, -0.698494, 0.340678, 0.565629 -1929, 0.275876, -0.698494, 0.340678, 0.565629 -1930, 0.275876, -0.698494, 0.340678, 0.565629 -1931, 0.275876, -0.698494, 0.340678, 0.565629 -1932, 0.275876, -0.698494, 0.340678, 0.565629 -1933, 0.275876, -0.698494, 0.340678, 0.565629 -1934, 0.275876, -0.698494, 0.340678, 0.565629 -1935, 0.275876, -0.698494, 0.340678, 0.565629 -1936, 0.275876, -0.698494, 0.340678, 0.565629 -1937, 0.275876, -0.698494, 0.340678, 0.565629 -1938, 0.275876, -0.698494, 0.340678, 0.565629 -1939, 0.275876, -0.698494, 0.340678, 0.565629 -1940, 0.275876, -0.698494, 0.340678, 0.565629 -1941, 0.275876, -0.698494, 0.340678, 0.565629 -1942, 0.275876, -0.698494, 0.340678, 0.565629 -1943, 0.275876, -0.698494, 0.340678, 0.565629 -1944, 0.275876, -0.698494, 0.340678, 0.565629 -1945, 0.275876, -0.698494, 0.340678, 0.565629 -1946, 0.275876, -0.698494, 0.340678, 0.565629 -1947, 0.275876, -0.698494, 0.340678, 0.565629 -1948, 0.275876, -0.698494, 0.340678, 0.565629 -1949, 0.275876, -0.698494, 0.340678, 0.565629 -1950, 0.275876, -0.698494, 0.340678, 0.565629 -1951, 0.275876, -0.698494, 0.340678, 0.565629 -1952, 0.275876, -0.698494, 0.340678, 0.565629 -1953, 0.275876, -0.698494, 0.340678, 0.565629 -1954, 0.275876, -0.698494, 0.340678, 0.565629 -1955, 0.275876, -0.698494, 0.340678, 0.565629 -1956, 0.275876, -0.698494, 0.340678, 0.565629 -1957, 0.275876, -0.698494, 0.340678, 0.565629 -1958, 0.275876, -0.698494, 0.340678, 0.565629 -1959, 0.275876, -0.698494, 0.340678, 0.565629 -1960, 0.275876, -0.698494, 0.340678, 0.565629 -1961, 0.275876, -0.698494, 0.340678, 0.565629 -1962, 0.275876, -0.698494, 0.340678, 0.565629 -1963, 0.275876, -0.698494, 0.340678, 0.565629 -1964, 0.275876, -0.698494, 0.340678, 0.565629 -1965, 0.275876, -0.698494, 0.340678, 0.565629 -1966, 0.275876, -0.698494, 0.340678, 0.565629 -1967, 0.275876, -0.698494, 0.340678, 0.565629 -1968, 0.275876, -0.698494, 0.340678, 0.565629 -1969, 0.275876, -0.698494, 0.340678, 0.565629 -1970, 0.275876, -0.698494, 0.340678, 0.565629 -1971, 0.275876, -0.698494, 0.340678, 0.565629 -1972, 0.275876, -0.698494, 0.340678, 0.565629 -1973, 0.275876, -0.698494, 0.340678, 0.565629 -1974, 0.275876, -0.698494, 0.340678, 0.565629 -1975, 0.275876, -0.698494, 0.340678, 0.565629 -1976, 0.275876, -0.698494, 0.340678, 0.565629 -1977, 0.275876, -0.698494, 0.340678, 0.565629 -1978, 0.275876, -0.698494, 0.340678, 0.565629 -1979, 0.275876, -0.698494, 0.340678, 0.565629 -1980, 0.275876, -0.698494, 0.340678, 0.565629 -1981, 0.275876, -0.698494, 0.340678, 0.565629 -1982, 0.275876, -0.698494, 0.340678, 0.565629 -1983, 0.275876, -0.698494, 0.340678, 0.565629 -1984, 0.275876, -0.698494, 0.340678, 0.565629 -1985, 0.275876, -0.698494, 0.340678, 0.565629 -1986, 0.275876, -0.698494, 0.340678, 0.565629 -1987, 0.275876, -0.698494, 0.340678, 0.565629 -1988, 0.275876, -0.698494, 0.340678, 0.565629 -1989, 0.275876, -0.698494, 0.340678, 0.565629 -1990, 0.275876, -0.698494, 0.340678, 0.565629 -1991, 0.275876, -0.698494, 0.340678, 0.565629 -1992, 0.275876, -0.698494, 0.340678, 0.565629 -1993, 0.275876, -0.698494, 0.340678, 0.565629 -1994, 0.275876, -0.698494, 0.340678, 0.565629 -1995, 0.275876, -0.698494, 0.340678, 0.565629 -1996, 0.275876, -0.698494, 0.340678, 0.565629 -1997, 0.275876, -0.698494, 0.340678, 0.565629 -1998, 0.275876, -0.698494, 0.340678, 0.565629 -1999, 0.275876, -0.698494, 0.340678, 0.565629 -2000, 0.257274, -0.719022, 0.335286, 0.551725 -2001, 0.257274, -0.719022, 0.335286, 0.551725 -2002, 0.257274, -0.719022, 0.335286, 0.551725 -2003, 0.257274, -0.719022, 0.335286, 0.551725 -2004, 0.257274, -0.719022, 0.335286, 0.551725 -2005, 0.257274, -0.719022, 0.335286, 0.551725 -2006, 0.257274, -0.719022, 0.335286, 0.551725 -2007, 0.257274, -0.719022, 0.335286, 0.551725 -2008, 0.257274, -0.719022, 0.335286, 0.551725 -2009, 0.257274, -0.719022, 0.335286, 0.551725 -2010, 0.257274, -0.719022, 0.335286, 0.551725 -2011, 0.257274, -0.719022, 0.335286, 0.551725 -2012, 0.257274, -0.719022, 0.335286, 0.551725 -2013, 0.257274, -0.719022, 0.335286, 0.551725 -2014, 0.257274, -0.719022, 0.335286, 0.551725 -2015, 0.257274, -0.719022, 0.335286, 0.551725 -2016, 0.257274, -0.719022, 0.335286, 0.551725 -2017, 0.257274, -0.719022, 0.335286, 0.551725 -2018, 0.257274, -0.719022, 0.335286, 0.551725 -2019, 0.257274, -0.719022, 0.335286, 0.551725 -2020, 0.257274, -0.719022, 0.335286, 0.551725 -2021, 0.257274, -0.719022, 0.335286, 0.551725 -2022, 0.257274, -0.719022, 0.335286, 0.551725 -2023, 0.257274, -0.719022, 0.335286, 0.551725 -2024, 0.257274, -0.719022, 0.335286, 0.551725 -2025, 0.257274, -0.719022, 0.335286, 0.551725 -2026, 0.257274, -0.719022, 0.335286, 0.551725 -2027, 0.257274, -0.719022, 0.335286, 0.551725 -2028, 0.257274, -0.719022, 0.335286, 0.551725 -2029, 0.257274, -0.719022, 0.335286, 0.551725 -2030, 0.257274, -0.719022, 0.335286, 0.551725 -2031, 0.257274, -0.719022, 0.335286, 0.551725 -2032, 0.257274, -0.719022, 0.335286, 0.551725 -2033, 0.257274, -0.719022, 0.335286, 0.551725 -2034, 0.257274, -0.719022, 0.335286, 0.551725 -2035, 0.257274, -0.719022, 0.335286, 0.551725 -2036, 0.257274, -0.719022, 0.335286, 0.551725 -2037, 0.257274, -0.719022, 0.335286, 0.551725 -2038, 0.257274, -0.719022, 0.335286, 0.551725 -2039, 0.257274, -0.719022, 0.335286, 0.551725 -2040, 0.257274, -0.719022, 0.335286, 0.551725 -2041, 0.257274, -0.719022, 0.335286, 0.551725 -2042, 0.257274, -0.719022, 0.335286, 0.551725 -2043, 0.257274, -0.719022, 0.335286, 0.551725 -2044, 0.257274, -0.719022, 0.335286, 0.551725 -2045, 0.257274, -0.719022, 0.335286, 0.551725 -2046, 0.257274, -0.719022, 0.335286, 0.551725 -2047, 0.257274, -0.719022, 0.335286, 0.551725 -2048, 0.257274, -0.719022, 0.335286, 0.551725 -2049, 0.257274, -0.719022, 0.335286, 0.551725 -2050, 0.257274, -0.719022, 0.335286, 0.551725 -2051, 0.257274, -0.719022, 0.335286, 0.551725 -2052, 0.257274, -0.719022, 0.335286, 0.551725 -2053, 0.257274, -0.719022, 0.335286, 0.551725 -2054, 0.257274, -0.719022, 0.335286, 0.551725 -2055, 0.257274, -0.719022, 0.335286, 0.551725 -2056, 0.257274, -0.719022, 0.335286, 0.551725 -2057, 0.257274, -0.719022, 0.335286, 0.551725 -2058, 0.257274, -0.719022, 0.335286, 0.551725 -2059, 0.257274, -0.719022, 0.335286, 0.551725 -2060, 0.257274, -0.719022, 0.335286, 0.551725 -2061, 0.257274, -0.719022, 0.335286, 0.551725 -2062, 0.257274, -0.719022, 0.335286, 0.551725 -2063, 0.257274, -0.719022, 0.335286, 0.551725 -2064, 0.257274, -0.719022, 0.335286, 0.551725 -2065, 0.257274, -0.719022, 0.335286, 0.551725 -2066, 0.257274, -0.719022, 0.335286, 0.551725 -2067, 0.257274, -0.719022, 0.335286, 0.551725 -2068, 0.257274, -0.719022, 0.335286, 0.551725 -2069, 0.257274, -0.719022, 0.335286, 0.551725 -2070, 0.257274, -0.719022, 0.335286, 0.551725 -2071, 0.257274, -0.719022, 0.335286, 0.551725 -2072, 0.257274, -0.719022, 0.335286, 0.551725 -2073, 0.257274, -0.719022, 0.335286, 0.551725 -2074, 0.257274, -0.719022, 0.335286, 0.551725 -2075, 0.257274, -0.719022, 0.335286, 0.551725 -2076, 0.257274, -0.719022, 0.335286, 0.551725 -2077, 0.257274, -0.719022, 0.335286, 0.551725 -2078, 0.257274, -0.719022, 0.335286, 0.551725 -2079, 0.257274, -0.719022, 0.335286, 0.551725 -2080, 0.257274, -0.719022, 0.335286, 0.551725 -2081, 0.257274, -0.719022, 0.335286, 0.551725 -2082, 0.257274, -0.719022, 0.335286, 0.551725 -2083, 0.257274, -0.719022, 0.335286, 0.551725 -2084, 0.257274, -0.719022, 0.335286, 0.551725 -2085, 0.257274, -0.719022, 0.335286, 0.551725 -2086, 0.257274, -0.719022, 0.335286, 0.551725 -2087, 0.257274, -0.719022, 0.335286, 0.551725 -2088, 0.257274, -0.719022, 0.335286, 0.551725 -2089, 0.257274, -0.719022, 0.335286, 0.551725 -2090, 0.257274, -0.719022, 0.335286, 0.551725 -2091, 0.257274, -0.719022, 0.335286, 0.551725 -2092, 0.257274, -0.719022, 0.335286, 0.551725 -2093, 0.257274, -0.719022, 0.335286, 0.551725 -2094, 0.257274, -0.719022, 0.335286, 0.551725 -2095, 0.257274, -0.719022, 0.335286, 0.551725 -2096, 0.257274, -0.719022, 0.335286, 0.551725 -2097, 0.257274, -0.719022, 0.335286, 0.551725 -2098, 0.257274, -0.719022, 0.335286, 0.551725 -2099, 0.257274, -0.719022, 0.335286, 0.551725 -2100, 0.239074, -0.739074, 0.329057, 0.536969 -2101, 0.239074, -0.739074, 0.329057, 0.536969 -2102, 0.239074, -0.739074, 0.329057, 0.536969 -2103, 0.239074, -0.739074, 0.329057, 0.536969 -2104, 0.239074, -0.739074, 0.329057, 0.536969 -2105, 0.239074, -0.739074, 0.329057, 0.536969 -2106, 0.239074, -0.739074, 0.329057, 0.536969 -2107, 0.239074, -0.739074, 0.329057, 0.536969 -2108, 0.239074, -0.739074, 0.329057, 0.536969 -2109, 0.239074, -0.739074, 0.329057, 0.536969 -2110, 0.239074, -0.739074, 0.329057, 0.536969 -2111, 0.239074, -0.739074, 0.329057, 0.536969 -2112, 0.239074, -0.739074, 0.329057, 0.536969 -2113, 0.239074, -0.739074, 0.329057, 0.536969 -2114, 0.239074, -0.739074, 0.329057, 0.536969 -2115, 0.239074, -0.739074, 0.329057, 0.536969 -2116, 0.239074, -0.739074, 0.329057, 0.536969 -2117, 0.239074, -0.739074, 0.329057, 0.536969 -2118, 0.239074, -0.739074, 0.329057, 0.536969 -2119, 0.239074, -0.739074, 0.329057, 0.536969 -2120, 0.239074, -0.739074, 0.329057, 0.536969 -2121, 0.239074, -0.739074, 0.329057, 0.536969 -2122, 0.239074, -0.739074, 0.329057, 0.536969 -2123, 0.239074, -0.739074, 0.329057, 0.536969 -2124, 0.239074, -0.739074, 0.329057, 0.536969 -2125, 0.239074, -0.739074, 0.329057, 0.536969 -2126, 0.239074, -0.739074, 0.329057, 0.536969 -2127, 0.239074, -0.739074, 0.329057, 0.536969 -2128, 0.239074, -0.739074, 0.329057, 0.536969 -2129, 0.239074, -0.739074, 0.329057, 0.536969 -2130, 0.239074, -0.739074, 0.329057, 0.536969 -2131, 0.239074, -0.739074, 0.329057, 0.536969 -2132, 0.239074, -0.739074, 0.329057, 0.536969 -2133, 0.239074, -0.739074, 0.329057, 0.536969 -2134, 0.239074, -0.739074, 0.329057, 0.536969 -2135, 0.239074, -0.739074, 0.329057, 0.536969 -2136, 0.239074, -0.739074, 0.329057, 0.536969 -2137, 0.239074, -0.739074, 0.329057, 0.536969 -2138, 0.239074, -0.739074, 0.329057, 0.536969 -2139, 0.239074, -0.739074, 0.329057, 0.536969 -2140, 0.239074, -0.739074, 0.329057, 0.536969 -2141, 0.239074, -0.739074, 0.329057, 0.536969 -2142, 0.239074, -0.739074, 0.329057, 0.536969 -2143, 0.239074, -0.739074, 0.329057, 0.536969 -2144, 0.239074, -0.739074, 0.329057, 0.536969 -2145, 0.239074, -0.739074, 0.329057, 0.536969 -2146, 0.239074, -0.739074, 0.329057, 0.536969 -2147, 0.239074, -0.739074, 0.329057, 0.536969 -2148, 0.239074, -0.739074, 0.329057, 0.536969 -2149, 0.239074, -0.739074, 0.329057, 0.536969 -2150, 0.239074, -0.739074, 0.329057, 0.536969 -2151, 0.239074, -0.739074, 0.329057, 0.536969 -2152, 0.239074, -0.739074, 0.329057, 0.536969 -2153, 0.239074, -0.739074, 0.329057, 0.536969 -2154, 0.239074, -0.739074, 0.329057, 0.536969 -2155, 0.239074, -0.739074, 0.329057, 0.536969 -2156, 0.239074, -0.739074, 0.329057, 0.536969 -2157, 0.239074, -0.739074, 0.329057, 0.536969 -2158, 0.239074, -0.739074, 0.329057, 0.536969 -2159, 0.239074, -0.739074, 0.329057, 0.536969 -2160, 0.239074, -0.739074, 0.329057, 0.536969 -2161, 0.239074, -0.739074, 0.329057, 0.536969 -2162, 0.239074, -0.739074, 0.329057, 0.536969 -2163, 0.239074, -0.739074, 0.329057, 0.536969 -2164, 0.239074, -0.739074, 0.329057, 0.536969 -2165, 0.239074, -0.739074, 0.329057, 0.536969 -2166, 0.239074, -0.739074, 0.329057, 0.536969 -2167, 0.239074, -0.739074, 0.329057, 0.536969 -2168, 0.239074, -0.739074, 0.329057, 0.536969 -2169, 0.239074, -0.739074, 0.329057, 0.536969 -2170, 0.239074, -0.739074, 0.329057, 0.536969 -2171, 0.239074, -0.739074, 0.329057, 0.536969 -2172, 0.239074, -0.739074, 0.329057, 0.536969 -2173, 0.239074, -0.739074, 0.329057, 0.536969 -2174, 0.239074, -0.739074, 0.329057, 0.536969 -2175, 0.239074, -0.739074, 0.329057, 0.536969 -2176, 0.239074, -0.739074, 0.329057, 0.536969 -2177, 0.239074, -0.739074, 0.329057, 0.536969 -2178, 0.239074, -0.739074, 0.329057, 0.536969 -2179, 0.239074, -0.739074, 0.329057, 0.536969 -2180, 0.239074, -0.739074, 0.329057, 0.536969 -2181, 0.239074, -0.739074, 0.329057, 0.536969 -2182, 0.239074, -0.739074, 0.329057, 0.536969 -2183, 0.239074, -0.739074, 0.329057, 0.536969 -2184, 0.239074, -0.739074, 0.329057, 0.536969 -2185, 0.239074, -0.739074, 0.329057, 0.536969 -2186, 0.239074, -0.739074, 0.329057, 0.536969 -2187, 0.239074, -0.739074, 0.329057, 0.536969 -2188, 0.239074, -0.739074, 0.329057, 0.536969 -2189, 0.239074, -0.739074, 0.329057, 0.536969 -2190, 0.239074, -0.739074, 0.329057, 0.536969 -2191, 0.239074, -0.739074, 0.329057, 0.536969 -2192, 0.239074, -0.739074, 0.329057, 0.536969 -2193, 0.239074, -0.739074, 0.329057, 0.536969 -2194, 0.239074, -0.739074, 0.329057, 0.536969 -2195, 0.239074, -0.739074, 0.329057, 0.536969 -2196, 0.239074, -0.739074, 0.329057, 0.536969 -2197, 0.239074, -0.739074, 0.329057, 0.536969 -2198, 0.239074, -0.739074, 0.329057, 0.536969 -2199, 0.239074, -0.739074, 0.329057, 0.536969 -2200, 0.221313, -0.758612, 0.322012, 0.521380 -2201, 0.221313, -0.758612, 0.322012, 0.521380 -2202, 0.221313, -0.758612, 0.322012, 0.521380 -2203, 0.221313, -0.758612, 0.322012, 0.521380 -2204, 0.221313, -0.758612, 0.322012, 0.521380 -2205, 0.221313, -0.758612, 0.322012, 0.521380 -2206, 0.221313, -0.758612, 0.322012, 0.521380 -2207, 0.221313, -0.758612, 0.322012, 0.521380 -2208, 0.221313, -0.758612, 0.322012, 0.521380 -2209, 0.221313, -0.758612, 0.322012, 0.521380 -2210, 0.221313, -0.758612, 0.322012, 0.521380 -2211, 0.221313, -0.758612, 0.322012, 0.521380 -2212, 0.221313, -0.758612, 0.322012, 0.521380 -2213, 0.221313, -0.758612, 0.322012, 0.521380 -2214, 0.221313, -0.758612, 0.322012, 0.521380 -2215, 0.221313, -0.758612, 0.322012, 0.521380 -2216, 0.221313, -0.758612, 0.322012, 0.521380 -2217, 0.221313, -0.758612, 0.322012, 0.521380 -2218, 0.221313, -0.758612, 0.322012, 0.521380 -2219, 0.221313, -0.758612, 0.322012, 0.521380 -2220, 0.221313, -0.758612, 0.322012, 0.521380 -2221, 0.221313, -0.758612, 0.322012, 0.521380 -2222, 0.221313, -0.758612, 0.322012, 0.521380 -2223, 0.221313, -0.758612, 0.322012, 0.521380 -2224, 0.221313, -0.758612, 0.322012, 0.521380 -2225, 0.221313, -0.758612, 0.322012, 0.521380 -2226, 0.221313, -0.758612, 0.322012, 0.521380 -2227, 0.221313, -0.758612, 0.322012, 0.521380 -2228, 0.221313, -0.758612, 0.322012, 0.521380 -2229, 0.221313, -0.758612, 0.322012, 0.521380 -2230, 0.221313, -0.758612, 0.322012, 0.521380 -2231, 0.221313, -0.758612, 0.322012, 0.521380 -2232, 0.221313, -0.758612, 0.322012, 0.521380 -2233, 0.221313, -0.758612, 0.322012, 0.521380 -2234, 0.221313, -0.758612, 0.322012, 0.521380 -2235, 0.221313, -0.758612, 0.322012, 0.521380 -2236, 0.221313, -0.758612, 0.322012, 0.521380 -2237, 0.221313, -0.758612, 0.322012, 0.521380 -2238, 0.221313, -0.758612, 0.322012, 0.521380 -2239, 0.221313, -0.758612, 0.322012, 0.521380 -2240, 0.221313, -0.758612, 0.322012, 0.521380 -2241, 0.221313, -0.758612, 0.322012, 0.521380 -2242, 0.221313, -0.758612, 0.322012, 0.521380 -2243, 0.221313, -0.758612, 0.322012, 0.521380 -2244, 0.221313, -0.758612, 0.322012, 0.521380 -2245, 0.221313, -0.758612, 0.322012, 0.521380 -2246, 0.221313, -0.758612, 0.322012, 0.521380 -2247, 0.221313, -0.758612, 0.322012, 0.521380 -2248, 0.221313, -0.758612, 0.322012, 0.521380 -2249, 0.221313, -0.758612, 0.322012, 0.521380 -2250, 0.221313, -0.758612, 0.322012, 0.521380 -2251, 0.221313, -0.758612, 0.322012, 0.521380 -2252, 0.221313, -0.758612, 0.322012, 0.521380 -2253, 0.221313, -0.758612, 0.322012, 0.521380 -2254, 0.221313, -0.758612, 0.322012, 0.521380 -2255, 0.221313, -0.758612, 0.322012, 0.521380 -2256, 0.221313, -0.758612, 0.322012, 0.521380 -2257, 0.221313, -0.758612, 0.322012, 0.521380 -2258, 0.221313, -0.758612, 0.322012, 0.521380 -2259, 0.221313, -0.758612, 0.322012, 0.521380 -2260, 0.221313, -0.758612, 0.322012, 0.521380 -2261, 0.221313, -0.758612, 0.322012, 0.521380 -2262, 0.221313, -0.758612, 0.322012, 0.521380 -2263, 0.221313, -0.758612, 0.322012, 0.521380 -2264, 0.221313, -0.758612, 0.322012, 0.521380 -2265, 0.221313, -0.758612, 0.322012, 0.521380 -2266, 0.221313, -0.758612, 0.322012, 0.521380 -2267, 0.221313, -0.758612, 0.322012, 0.521380 -2268, 0.221313, -0.758612, 0.322012, 0.521380 -2269, 0.221313, -0.758612, 0.322012, 0.521380 -2270, 0.221313, -0.758612, 0.322012, 0.521380 -2271, 0.221313, -0.758612, 0.322012, 0.521380 -2272, 0.221313, -0.758612, 0.322012, 0.521380 -2273, 0.221313, -0.758612, 0.322012, 0.521380 -2274, 0.221313, -0.758612, 0.322012, 0.521380 -2275, 0.221313, -0.758612, 0.322012, 0.521380 -2276, 0.221313, -0.758612, 0.322012, 0.521380 -2277, 0.221313, -0.758612, 0.322012, 0.521380 -2278, 0.221313, -0.758612, 0.322012, 0.521380 -2279, 0.221313, -0.758612, 0.322012, 0.521380 -2280, 0.221313, -0.758612, 0.322012, 0.521380 -2281, 0.221313, -0.758612, 0.322012, 0.521380 -2282, 0.221313, -0.758612, 0.322012, 0.521380 -2283, 0.221313, -0.758612, 0.322012, 0.521380 -2284, 0.221313, -0.758612, 0.322012, 0.521380 -2285, 0.221313, -0.758612, 0.322012, 0.521380 -2286, 0.221313, -0.758612, 0.322012, 0.521380 -2287, 0.221313, -0.758612, 0.322012, 0.521380 -2288, 0.221313, -0.758612, 0.322012, 0.521380 -2289, 0.221313, -0.758612, 0.322012, 0.521380 -2290, 0.221313, -0.758612, 0.322012, 0.521380 -2291, 0.221313, -0.758612, 0.322012, 0.521380 -2292, 0.221313, -0.758612, 0.322012, 0.521380 -2293, 0.221313, -0.758612, 0.322012, 0.521380 -2294, 0.221313, -0.758612, 0.322012, 0.521380 -2295, 0.221313, -0.758612, 0.322012, 0.521380 -2296, 0.221313, -0.758612, 0.322012, 0.521380 -2297, 0.221313, -0.758612, 0.322012, 0.521380 -2298, 0.221313, -0.758612, 0.322012, 0.521380 -2299, 0.221313, -0.758612, 0.322012, 0.521380 -2300, 0.204025, -0.777602, 0.314172, 0.504981 -2301, 0.204025, -0.777602, 0.314172, 0.504981 -2302, 0.204025, -0.777602, 0.314172, 0.504981 -2303, 0.204025, -0.777602, 0.314172, 0.504981 -2304, 0.204025, -0.777602, 0.314172, 0.504981 -2305, 0.204025, -0.777602, 0.314172, 0.504981 -2306, 0.204025, -0.777602, 0.314172, 0.504981 -2307, 0.204025, -0.777602, 0.314172, 0.504981 -2308, 0.204025, -0.777602, 0.314172, 0.504981 -2309, 0.204025, -0.777602, 0.314172, 0.504981 -2310, 0.204025, -0.777602, 0.314172, 0.504981 -2311, 0.204025, -0.777602, 0.314172, 0.504981 -2312, 0.204025, -0.777602, 0.314172, 0.504981 -2313, 0.204025, -0.777602, 0.314172, 0.504981 -2314, 0.204025, -0.777602, 0.314172, 0.504981 -2315, 0.204025, -0.777602, 0.314172, 0.504981 -2316, 0.204025, -0.777602, 0.314172, 0.504981 -2317, 0.204025, -0.777602, 0.314172, 0.504981 -2318, 0.204025, -0.777602, 0.314172, 0.504981 -2319, 0.204025, -0.777602, 0.314172, 0.504981 -2320, 0.204025, -0.777602, 0.314172, 0.504981 -2321, 0.204025, -0.777602, 0.314172, 0.504981 -2322, 0.204025, -0.777602, 0.314172, 0.504981 -2323, 0.204025, -0.777602, 0.314172, 0.504981 -2324, 0.204025, -0.777602, 0.314172, 0.504981 -2325, 0.204025, -0.777602, 0.314172, 0.504981 -2326, 0.204025, -0.777602, 0.314172, 0.504981 -2327, 0.204025, -0.777602, 0.314172, 0.504981 -2328, 0.204025, -0.777602, 0.314172, 0.504981 -2329, 0.204025, -0.777602, 0.314172, 0.504981 -2330, 0.204025, -0.777602, 0.314172, 0.504981 -2331, 0.204025, -0.777602, 0.314172, 0.504981 -2332, 0.204025, -0.777602, 0.314172, 0.504981 -2333, 0.204025, -0.777602, 0.314172, 0.504981 -2334, 0.204025, -0.777602, 0.314172, 0.504981 -2335, 0.204025, -0.777602, 0.314172, 0.504981 -2336, 0.204025, -0.777602, 0.314172, 0.504981 -2337, 0.204025, -0.777602, 0.314172, 0.504981 -2338, 0.204025, -0.777602, 0.314172, 0.504981 -2339, 0.204025, -0.777602, 0.314172, 0.504981 -2340, 0.204025, -0.777602, 0.314172, 0.504981 -2341, 0.204025, -0.777602, 0.314172, 0.504981 -2342, 0.204025, -0.777602, 0.314172, 0.504981 -2343, 0.204025, -0.777602, 0.314172, 0.504981 -2344, 0.204025, -0.777602, 0.314172, 0.504981 -2345, 0.204025, -0.777602, 0.314172, 0.504981 -2346, 0.204025, -0.777602, 0.314172, 0.504981 -2347, 0.204025, -0.777602, 0.314172, 0.504981 -2348, 0.204025, -0.777602, 0.314172, 0.504981 -2349, 0.204025, -0.777602, 0.314172, 0.504981 -2350, 0.204025, -0.777602, 0.314172, 0.504981 -2351, 0.204025, -0.777602, 0.314172, 0.504981 -2352, 0.204025, -0.777602, 0.314172, 0.504981 -2353, 0.204025, -0.777602, 0.314172, 0.504981 -2354, 0.204025, -0.777602, 0.314172, 0.504981 -2355, 0.204025, -0.777602, 0.314172, 0.504981 -2356, 0.204025, -0.777602, 0.314172, 0.504981 -2357, 0.204025, -0.777602, 0.314172, 0.504981 -2358, 0.204025, -0.777602, 0.314172, 0.504981 -2359, 0.204025, -0.777602, 0.314172, 0.504981 -2360, 0.204025, -0.777602, 0.314172, 0.504981 -2361, 0.204025, -0.777602, 0.314172, 0.504981 -2362, 0.204025, -0.777602, 0.314172, 0.504981 -2363, 0.204025, -0.777602, 0.314172, 0.504981 -2364, 0.204025, -0.777602, 0.314172, 0.504981 -2365, 0.204025, -0.777602, 0.314172, 0.504981 -2366, 0.204025, -0.777602, 0.314172, 0.504981 -2367, 0.204025, -0.777602, 0.314172, 0.504981 -2368, 0.204025, -0.777602, 0.314172, 0.504981 -2369, 0.204025, -0.777602, 0.314172, 0.504981 -2370, 0.204025, -0.777602, 0.314172, 0.504981 -2371, 0.204025, -0.777602, 0.314172, 0.504981 -2372, 0.204025, -0.777602, 0.314172, 0.504981 -2373, 0.204025, -0.777602, 0.314172, 0.504981 -2374, 0.204025, -0.777602, 0.314172, 0.504981 -2375, 0.204025, -0.777602, 0.314172, 0.504981 -2376, 0.204025, -0.777602, 0.314172, 0.504981 -2377, 0.204025, -0.777602, 0.314172, 0.504981 -2378, 0.204025, -0.777602, 0.314172, 0.504981 -2379, 0.204025, -0.777602, 0.314172, 0.504981 -2380, 0.204025, -0.777602, 0.314172, 0.504981 -2381, 0.204025, -0.777602, 0.314172, 0.504981 -2382, 0.204025, -0.777602, 0.314172, 0.504981 -2383, 0.204025, -0.777602, 0.314172, 0.504981 -2384, 0.204025, -0.777602, 0.314172, 0.504981 -2385, 0.204025, -0.777602, 0.314172, 0.504981 -2386, 0.204025, -0.777602, 0.314172, 0.504981 -2387, 0.204025, -0.777602, 0.314172, 0.504981 -2388, 0.204025, -0.777602, 0.314172, 0.504981 -2389, 0.204025, -0.777602, 0.314172, 0.504981 -2390, 0.204025, -0.777602, 0.314172, 0.504981 -2391, 0.204025, -0.777602, 0.314172, 0.504981 -2392, 0.204025, -0.777602, 0.314172, 0.504981 -2393, 0.204025, -0.777602, 0.314172, 0.504981 -2394, 0.204025, -0.777602, 0.314172, 0.504981 -2395, 0.204025, -0.777602, 0.314172, 0.504981 -2396, 0.204025, -0.777602, 0.314172, 0.504981 -2397, 0.204025, -0.777602, 0.314172, 0.504981 -2398, 0.204025, -0.777602, 0.314172, 0.504981 -2399, 0.204025, -0.777602, 0.314172, 0.504981 -2400, 0.187247, -0.796008, 0.305559, 0.487794 -2401, 0.187247, -0.796008, 0.305559, 0.487794 -2402, 0.187247, -0.796008, 0.305559, 0.487794 -2403, 0.187247, -0.796008, 0.305559, 0.487794 -2404, 0.187247, -0.796008, 0.305559, 0.487794 -2405, 0.187247, -0.796008, 0.305559, 0.487794 -2406, 0.187247, -0.796008, 0.305559, 0.487794 -2407, 0.187247, -0.796008, 0.305559, 0.487794 -2408, 0.187247, -0.796008, 0.305559, 0.487794 -2409, 0.187247, -0.796008, 0.305559, 0.487794 -2410, 0.187247, -0.796008, 0.305559, 0.487794 -2411, 0.187247, -0.796008, 0.305559, 0.487794 -2412, 0.187247, -0.796008, 0.305559, 0.487794 -2413, 0.187247, -0.796008, 0.305559, 0.487794 -2414, 0.187247, -0.796008, 0.305559, 0.487794 -2415, 0.187247, -0.796008, 0.305559, 0.487794 -2416, 0.187247, -0.796008, 0.305559, 0.487794 -2417, 0.187247, -0.796008, 0.305559, 0.487794 -2418, 0.187247, -0.796008, 0.305559, 0.487794 -2419, 0.187247, -0.796008, 0.305559, 0.487794 -2420, 0.187247, -0.796008, 0.305559, 0.487794 -2421, 0.187247, -0.796008, 0.305559, 0.487794 -2422, 0.187247, -0.796008, 0.305559, 0.487794 -2423, 0.187247, -0.796008, 0.305559, 0.487794 -2424, 0.187247, -0.796008, 0.305559, 0.487794 -2425, 0.187247, -0.796008, 0.305559, 0.487794 -2426, 0.187247, -0.796008, 0.305559, 0.487794 -2427, 0.187247, -0.796008, 0.305559, 0.487794 -2428, 0.187247, -0.796008, 0.305559, 0.487794 -2429, 0.187247, -0.796008, 0.305559, 0.487794 -2430, 0.187247, -0.796008, 0.305559, 0.487794 -2431, 0.187247, -0.796008, 0.305559, 0.487794 -2432, 0.187247, -0.796008, 0.305559, 0.487794 -2433, 0.187247, -0.796008, 0.305559, 0.487794 -2434, 0.187247, -0.796008, 0.305559, 0.487794 -2435, 0.187247, -0.796008, 0.305559, 0.487794 -2436, 0.187247, -0.796008, 0.305559, 0.487794 -2437, 0.187247, -0.796008, 0.305559, 0.487794 -2438, 0.187247, -0.796008, 0.305559, 0.487794 -2439, 0.187247, -0.796008, 0.305559, 0.487794 -2440, 0.187247, -0.796008, 0.305559, 0.487794 -2441, 0.187247, -0.796008, 0.305559, 0.487794 -2442, 0.187247, -0.796008, 0.305559, 0.487794 -2443, 0.187247, -0.796008, 0.305559, 0.487794 -2444, 0.187247, -0.796008, 0.305559, 0.487794 -2445, 0.187247, -0.796008, 0.305559, 0.487794 -2446, 0.187247, -0.796008, 0.305559, 0.487794 -2447, 0.187247, -0.796008, 0.305559, 0.487794 -2448, 0.187247, -0.796008, 0.305559, 0.487794 -2449, 0.187247, -0.796008, 0.305559, 0.487794 -2450, 0.187247, -0.796008, 0.305559, 0.487794 -2451, 0.187247, -0.796008, 0.305559, 0.487794 -2452, 0.187247, -0.796008, 0.305559, 0.487794 -2453, 0.187247, -0.796008, 0.305559, 0.487794 -2454, 0.187247, -0.796008, 0.305559, 0.487794 -2455, 0.187247, -0.796008, 0.305559, 0.487794 -2456, 0.187247, -0.796008, 0.305559, 0.487794 -2457, 0.187247, -0.796008, 0.305559, 0.487794 -2458, 0.187247, -0.796008, 0.305559, 0.487794 -2459, 0.187247, -0.796008, 0.305559, 0.487794 -2460, 0.187247, -0.796008, 0.305559, 0.487794 -2461, 0.187247, -0.796008, 0.305559, 0.487794 -2462, 0.187247, -0.796008, 0.305559, 0.487794 -2463, 0.187247, -0.796008, 0.305559, 0.487794 -2464, 0.187247, -0.796008, 0.305559, 0.487794 -2465, 0.187247, -0.796008, 0.305559, 0.487794 -2466, 0.187247, -0.796008, 0.305559, 0.487794 -2467, 0.187247, -0.796008, 0.305559, 0.487794 -2468, 0.187247, -0.796008, 0.305559, 0.487794 -2469, 0.187247, -0.796008, 0.305559, 0.487794 -2470, 0.187247, -0.796008, 0.305559, 0.487794 -2471, 0.187247, -0.796008, 0.305559, 0.487794 -2472, 0.187247, -0.796008, 0.305559, 0.487794 -2473, 0.187247, -0.796008, 0.305559, 0.487794 -2474, 0.187247, -0.796008, 0.305559, 0.487794 -2475, 0.187247, -0.796008, 0.305559, 0.487794 -2476, 0.187247, -0.796008, 0.305559, 0.487794 -2477, 0.187247, -0.796008, 0.305559, 0.487794 -2478, 0.187247, -0.796008, 0.305559, 0.487794 -2479, 0.187247, -0.796008, 0.305559, 0.487794 -2480, 0.187247, -0.796008, 0.305559, 0.487794 -2481, 0.187247, -0.796008, 0.305559, 0.487794 -2482, 0.187247, -0.796008, 0.305559, 0.487794 -2483, 0.187247, -0.796008, 0.305559, 0.487794 -2484, 0.187247, -0.796008, 0.305559, 0.487794 -2485, 0.187247, -0.796008, 0.305559, 0.487794 -2486, 0.187247, -0.796008, 0.305559, 0.487794 -2487, 0.187247, -0.796008, 0.305559, 0.487794 -2488, 0.187247, -0.796008, 0.305559, 0.487794 -2489, 0.187247, -0.796008, 0.305559, 0.487794 -2490, 0.187247, -0.796008, 0.305559, 0.487794 -2491, 0.187247, -0.796008, 0.305559, 0.487794 -2492, 0.187247, -0.796008, 0.305559, 0.487794 -2493, 0.187247, -0.796008, 0.305559, 0.487794 -2494, 0.187247, -0.796008, 0.305559, 0.487794 -2495, 0.187247, -0.796008, 0.305559, 0.487794 -2496, 0.187247, -0.796008, 0.305559, 0.487794 -2497, 0.187247, -0.796008, 0.305559, 0.487794 -2498, 0.187247, -0.796008, 0.305559, 0.487794 -2499, 0.187247, -0.796008, 0.305559, 0.487794 -2500, 0.171010, -0.813798, 0.296198, 0.469846 -2501, 0.171010, -0.813798, 0.296198, 0.469846 -2502, 0.171010, -0.813798, 0.296198, 0.469846 -2503, 0.171010, -0.813798, 0.296198, 0.469846 -2504, 0.171010, -0.813798, 0.296198, 0.469846 -2505, 0.171010, -0.813798, 0.296198, 0.469846 -2506, 0.171010, -0.813798, 0.296198, 0.469846 -2507, 0.171010, -0.813798, 0.296198, 0.469846 -2508, 0.171010, -0.813798, 0.296198, 0.469846 -2509, 0.171010, -0.813798, 0.296198, 0.469846 -2510, 0.171010, -0.813798, 0.296198, 0.469846 -2511, 0.171010, -0.813798, 0.296198, 0.469846 -2512, 0.171010, -0.813798, 0.296198, 0.469846 -2513, 0.171010, -0.813798, 0.296198, 0.469846 -2514, 0.171010, -0.813798, 0.296198, 0.469846 -2515, 0.171010, -0.813798, 0.296198, 0.469846 -2516, 0.171010, -0.813798, 0.296198, 0.469846 -2517, 0.171010, -0.813798, 0.296198, 0.469846 -2518, 0.171010, -0.813798, 0.296198, 0.469846 -2519, 0.171010, -0.813798, 0.296198, 0.469846 -2520, 0.171010, -0.813798, 0.296198, 0.469846 -2521, 0.171010, -0.813798, 0.296198, 0.469846 -2522, 0.171010, -0.813798, 0.296198, 0.469846 -2523, 0.171010, -0.813798, 0.296198, 0.469846 -2524, 0.171010, -0.813798, 0.296198, 0.469846 -2525, 0.171010, -0.813798, 0.296198, 0.469846 -2526, 0.171010, -0.813798, 0.296198, 0.469846 -2527, 0.171010, -0.813798, 0.296198, 0.469846 -2528, 0.171010, -0.813798, 0.296198, 0.469846 -2529, 0.171010, -0.813798, 0.296198, 0.469846 -2530, 0.171010, -0.813798, 0.296198, 0.469846 -2531, 0.171010, -0.813798, 0.296198, 0.469846 -2532, 0.171010, -0.813798, 0.296198, 0.469846 -2533, 0.171010, -0.813798, 0.296198, 0.469846 -2534, 0.171010, -0.813798, 0.296198, 0.469846 -2535, 0.171010, -0.813798, 0.296198, 0.469846 -2536, 0.171010, -0.813798, 0.296198, 0.469846 -2537, 0.171010, -0.813798, 0.296198, 0.469846 -2538, 0.171010, -0.813798, 0.296198, 0.469846 -2539, 0.171010, -0.813798, 0.296198, 0.469846 -2540, 0.171010, -0.813798, 0.296198, 0.469846 -2541, 0.171010, -0.813798, 0.296198, 0.469846 -2542, 0.171010, -0.813798, 0.296198, 0.469846 -2543, 0.171010, -0.813798, 0.296198, 0.469846 -2544, 0.171010, -0.813798, 0.296198, 0.469846 -2545, 0.171010, -0.813798, 0.296198, 0.469846 -2546, 0.171010, -0.813798, 0.296198, 0.469846 -2547, 0.171010, -0.813798, 0.296198, 0.469846 -2548, 0.171010, -0.813798, 0.296198, 0.469846 -2549, 0.171010, -0.813798, 0.296198, 0.469846 -2550, 0.171010, -0.813798, 0.296198, 0.469846 -2551, 0.171010, -0.813798, 0.296198, 0.469846 -2552, 0.171010, -0.813798, 0.296198, 0.469846 -2553, 0.171010, -0.813798, 0.296198, 0.469846 -2554, 0.171010, -0.813798, 0.296198, 0.469846 -2555, 0.171010, -0.813798, 0.296198, 0.469846 -2556, 0.171010, -0.813798, 0.296198, 0.469846 -2557, 0.171010, -0.813798, 0.296198, 0.469846 -2558, 0.171010, -0.813798, 0.296198, 0.469846 -2559, 0.171010, -0.813798, 0.296198, 0.469846 -2560, 0.171010, -0.813798, 0.296198, 0.469846 -2561, 0.171010, -0.813798, 0.296198, 0.469846 -2562, 0.171010, -0.813798, 0.296198, 0.469846 -2563, 0.171010, -0.813798, 0.296198, 0.469846 -2564, 0.171010, -0.813798, 0.296198, 0.469846 -2565, 0.171010, -0.813798, 0.296198, 0.469846 -2566, 0.171010, -0.813798, 0.296198, 0.469846 -2567, 0.171010, -0.813798, 0.296198, 0.469846 -2568, 0.171010, -0.813798, 0.296198, 0.469846 -2569, 0.171010, -0.813798, 0.296198, 0.469846 -2570, 0.171010, -0.813798, 0.296198, 0.469846 -2571, 0.171010, -0.813798, 0.296198, 0.469846 -2572, 0.171010, -0.813798, 0.296198, 0.469846 -2573, 0.171010, -0.813798, 0.296198, 0.469846 -2574, 0.171010, -0.813798, 0.296198, 0.469846 -2575, 0.171010, -0.813798, 0.296198, 0.469846 -2576, 0.171010, -0.813798, 0.296198, 0.469846 -2577, 0.171010, -0.813798, 0.296198, 0.469846 -2578, 0.171010, -0.813798, 0.296198, 0.469846 -2579, 0.171010, -0.813798, 0.296198, 0.469846 -2580, 0.171010, -0.813798, 0.296198, 0.469846 -2581, 0.171010, -0.813798, 0.296198, 0.469846 -2582, 0.171010, -0.813798, 0.296198, 0.469846 -2583, 0.171010, -0.813798, 0.296198, 0.469846 -2584, 0.171010, -0.813798, 0.296198, 0.469846 -2585, 0.171010, -0.813798, 0.296198, 0.469846 -2586, 0.171010, -0.813798, 0.296198, 0.469846 -2587, 0.171010, -0.813798, 0.296198, 0.469846 -2588, 0.171010, -0.813798, 0.296198, 0.469846 -2589, 0.171010, -0.813798, 0.296198, 0.469846 -2590, 0.171010, -0.813798, 0.296198, 0.469846 -2591, 0.171010, -0.813798, 0.296198, 0.469846 -2592, 0.171010, -0.813798, 0.296198, 0.469846 -2593, 0.171010, -0.813798, 0.296198, 0.469846 -2594, 0.171010, -0.813798, 0.296198, 0.469846 -2595, 0.171010, -0.813798, 0.296198, 0.469846 -2596, 0.171010, -0.813798, 0.296198, 0.469846 -2597, 0.171010, -0.813798, 0.296198, 0.469846 -2598, 0.171010, -0.813798, 0.296198, 0.469846 -2599, 0.171010, -0.813798, 0.296198, 0.469846 -2600, 0.155348, -0.830938, 0.286115, 0.451162 -2601, 0.155348, -0.830938, 0.286115, 0.451162 -2602, 0.155348, -0.830938, 0.286115, 0.451162 -2603, 0.155348, -0.830938, 0.286115, 0.451162 -2604, 0.155348, -0.830938, 0.286115, 0.451162 -2605, 0.155348, -0.830938, 0.286115, 0.451162 -2606, 0.155348, -0.830938, 0.286115, 0.451162 -2607, 0.155348, -0.830938, 0.286115, 0.451162 -2608, 0.155348, -0.830938, 0.286115, 0.451162 -2609, 0.155348, -0.830938, 0.286115, 0.451162 -2610, 0.155348, -0.830938, 0.286115, 0.451162 -2611, 0.155348, -0.830938, 0.286115, 0.451162 -2612, 0.155348, -0.830938, 0.286115, 0.451162 -2613, 0.155348, -0.830938, 0.286115, 0.451162 -2614, 0.155348, -0.830938, 0.286115, 0.451162 -2615, 0.155348, -0.830938, 0.286115, 0.451162 -2616, 0.155348, -0.830938, 0.286115, 0.451162 -2617, 0.155348, -0.830938, 0.286115, 0.451162 -2618, 0.155348, -0.830938, 0.286115, 0.451162 -2619, 0.155348, -0.830938, 0.286115, 0.451162 -2620, 0.155348, -0.830938, 0.286115, 0.451162 -2621, 0.155348, -0.830938, 0.286115, 0.451162 -2622, 0.155348, -0.830938, 0.286115, 0.451162 -2623, 0.155348, -0.830938, 0.286115, 0.451162 -2624, 0.155348, -0.830938, 0.286115, 0.451162 -2625, 0.155348, -0.830938, 0.286115, 0.451162 -2626, 0.155348, -0.830938, 0.286115, 0.451162 -2627, 0.155348, -0.830938, 0.286115, 0.451162 -2628, 0.155348, -0.830938, 0.286115, 0.451162 -2629, 0.155348, -0.830938, 0.286115, 0.451162 -2630, 0.155348, -0.830938, 0.286115, 0.451162 -2631, 0.155348, -0.830938, 0.286115, 0.451162 -2632, 0.155348, -0.830938, 0.286115, 0.451162 -2633, 0.155348, -0.830938, 0.286115, 0.451162 -2634, 0.155348, -0.830938, 0.286115, 0.451162 -2635, 0.155348, -0.830938, 0.286115, 0.451162 -2636, 0.155348, -0.830938, 0.286115, 0.451162 -2637, 0.155348, -0.830938, 0.286115, 0.451162 -2638, 0.155348, -0.830938, 0.286115, 0.451162 -2639, 0.155348, -0.830938, 0.286115, 0.451162 -2640, 0.155348, -0.830938, 0.286115, 0.451162 -2641, 0.155348, -0.830938, 0.286115, 0.451162 -2642, 0.155348, -0.830938, 0.286115, 0.451162 -2643, 0.155348, -0.830938, 0.286115, 0.451162 -2644, 0.155348, -0.830938, 0.286115, 0.451162 -2645, 0.155348, -0.830938, 0.286115, 0.451162 -2646, 0.155348, -0.830938, 0.286115, 0.451162 -2647, 0.155348, -0.830938, 0.286115, 0.451162 -2648, 0.155348, -0.830938, 0.286115, 0.451162 -2649, 0.155348, -0.830938, 0.286115, 0.451162 -2650, 0.155348, -0.830938, 0.286115, 0.451162 -2651, 0.155348, -0.830938, 0.286115, 0.451162 -2652, 0.155348, -0.830938, 0.286115, 0.451162 -2653, 0.155348, -0.830938, 0.286115, 0.451162 -2654, 0.155348, -0.830938, 0.286115, 0.451162 -2655, 0.155348, -0.830938, 0.286115, 0.451162 -2656, 0.155348, -0.830938, 0.286115, 0.451162 -2657, 0.155348, -0.830938, 0.286115, 0.451162 -2658, 0.155348, -0.830938, 0.286115, 0.451162 -2659, 0.155348, -0.830938, 0.286115, 0.451162 -2660, 0.155348, -0.830938, 0.286115, 0.451162 -2661, 0.155348, -0.830938, 0.286115, 0.451162 -2662, 0.155348, -0.830938, 0.286115, 0.451162 -2663, 0.155348, -0.830938, 0.286115, 0.451162 -2664, 0.155348, -0.830938, 0.286115, 0.451162 -2665, 0.155348, -0.830938, 0.286115, 0.451162 -2666, 0.155348, -0.830938, 0.286115, 0.451162 -2667, 0.155348, -0.830938, 0.286115, 0.451162 -2668, 0.155348, -0.830938, 0.286115, 0.451162 -2669, 0.155348, -0.830938, 0.286115, 0.451162 -2670, 0.155348, -0.830938, 0.286115, 0.451162 -2671, 0.155348, -0.830938, 0.286115, 0.451162 -2672, 0.155348, -0.830938, 0.286115, 0.451162 -2673, 0.155348, -0.830938, 0.286115, 0.451162 -2674, 0.155348, -0.830938, 0.286115, 0.451162 -2675, 0.155348, -0.830938, 0.286115, 0.451162 -2676, 0.155348, -0.830938, 0.286115, 0.451162 -2677, 0.155348, -0.830938, 0.286115, 0.451162 -2678, 0.155348, -0.830938, 0.286115, 0.451162 -2679, 0.155348, -0.830938, 0.286115, 0.451162 -2680, 0.155348, -0.830938, 0.286115, 0.451162 -2681, 0.155348, -0.830938, 0.286115, 0.451162 -2682, 0.155348, -0.830938, 0.286115, 0.451162 -2683, 0.155348, -0.830938, 0.286115, 0.451162 -2684, 0.155348, -0.830938, 0.286115, 0.451162 -2685, 0.155348, -0.830938, 0.286115, 0.451162 -2686, 0.155348, -0.830938, 0.286115, 0.451162 -2687, 0.155348, -0.830938, 0.286115, 0.451162 -2688, 0.155348, -0.830938, 0.286115, 0.451162 -2689, 0.155348, -0.830938, 0.286115, 0.451162 -2690, 0.155348, -0.830938, 0.286115, 0.451162 -2691, 0.155348, -0.830938, 0.286115, 0.451162 -2692, 0.155348, -0.830938, 0.286115, 0.451162 -2693, 0.155348, -0.830938, 0.286115, 0.451162 -2694, 0.155348, -0.830938, 0.286115, 0.451162 -2695, 0.155348, -0.830938, 0.286115, 0.451162 -2696, 0.155348, -0.830938, 0.286115, 0.451162 -2697, 0.155348, -0.830938, 0.286115, 0.451162 -2698, 0.155348, -0.830938, 0.286115, 0.451162 -2699, 0.155348, -0.830938, 0.286115, 0.451162 -2700, 0.140291, -0.847398, 0.275336, 0.431771 -2701, 0.140291, -0.847398, 0.275336, 0.431771 -2702, 0.140291, -0.847398, 0.275336, 0.431771 -2703, 0.140291, -0.847398, 0.275336, 0.431771 -2704, 0.140291, -0.847398, 0.275336, 0.431771 -2705, 0.140291, -0.847398, 0.275336, 0.431771 -2706, 0.140291, -0.847398, 0.275336, 0.431771 -2707, 0.140291, -0.847398, 0.275336, 0.431771 -2708, 0.140291, -0.847398, 0.275336, 0.431771 -2709, 0.140291, -0.847398, 0.275336, 0.431771 -2710, 0.140291, -0.847398, 0.275336, 0.431771 -2711, 0.140291, -0.847398, 0.275336, 0.431771 -2712, 0.140291, -0.847398, 0.275336, 0.431771 -2713, 0.140291, -0.847398, 0.275336, 0.431771 -2714, 0.140291, -0.847398, 0.275336, 0.431771 -2715, 0.140291, -0.847398, 0.275336, 0.431771 -2716, 0.140291, -0.847398, 0.275336, 0.431771 -2717, 0.140291, -0.847398, 0.275336, 0.431771 -2718, 0.140291, -0.847398, 0.275336, 0.431771 -2719, 0.140291, -0.847398, 0.275336, 0.431771 -2720, 0.140291, -0.847398, 0.275336, 0.431771 -2721, 0.140291, -0.847398, 0.275336, 0.431771 -2722, 0.140291, -0.847398, 0.275336, 0.431771 -2723, 0.140291, -0.847398, 0.275336, 0.431771 -2724, 0.140291, -0.847398, 0.275336, 0.431771 -2725, 0.140291, -0.847398, 0.275336, 0.431771 -2726, 0.140291, -0.847398, 0.275336, 0.431771 -2727, 0.140291, -0.847398, 0.275336, 0.431771 -2728, 0.140291, -0.847398, 0.275336, 0.431771 -2729, 0.140291, -0.847398, 0.275336, 0.431771 -2730, 0.140291, -0.847398, 0.275336, 0.431771 -2731, 0.140291, -0.847398, 0.275336, 0.431771 -2732, 0.140291, -0.847398, 0.275336, 0.431771 -2733, 0.140291, -0.847398, 0.275336, 0.431771 -2734, 0.140291, -0.847398, 0.275336, 0.431771 -2735, 0.140291, -0.847398, 0.275336, 0.431771 -2736, 0.140291, -0.847398, 0.275336, 0.431771 -2737, 0.140291, -0.847398, 0.275336, 0.431771 -2738, 0.140291, -0.847398, 0.275336, 0.431771 -2739, 0.140291, -0.847398, 0.275336, 0.431771 -2740, 0.140291, -0.847398, 0.275336, 0.431771 -2741, 0.140291, -0.847398, 0.275336, 0.431771 -2742, 0.140291, -0.847398, 0.275336, 0.431771 -2743, 0.140291, -0.847398, 0.275336, 0.431771 -2744, 0.140291, -0.847398, 0.275336, 0.431771 -2745, 0.140291, -0.847398, 0.275336, 0.431771 -2746, 0.140291, -0.847398, 0.275336, 0.431771 -2747, 0.140291, -0.847398, 0.275336, 0.431771 -2748, 0.140291, -0.847398, 0.275336, 0.431771 -2749, 0.140291, -0.847398, 0.275336, 0.431771 -2750, 0.140291, -0.847398, 0.275336, 0.431771 -2751, 0.140291, -0.847398, 0.275336, 0.431771 -2752, 0.140291, -0.847398, 0.275336, 0.431771 -2753, 0.140291, -0.847398, 0.275336, 0.431771 -2754, 0.140291, -0.847398, 0.275336, 0.431771 -2755, 0.140291, -0.847398, 0.275336, 0.431771 -2756, 0.140291, -0.847398, 0.275336, 0.431771 -2757, 0.140291, -0.847398, 0.275336, 0.431771 -2758, 0.140291, -0.847398, 0.275336, 0.431771 -2759, 0.140291, -0.847398, 0.275336, 0.431771 -2760, 0.140291, -0.847398, 0.275336, 0.431771 -2761, 0.140291, -0.847398, 0.275336, 0.431771 -2762, 0.140291, -0.847398, 0.275336, 0.431771 -2763, 0.140291, -0.847398, 0.275336, 0.431771 -2764, 0.140291, -0.847398, 0.275336, 0.431771 -2765, 0.140291, -0.847398, 0.275336, 0.431771 -2766, 0.140291, -0.847398, 0.275336, 0.431771 -2767, 0.140291, -0.847398, 0.275336, 0.431771 -2768, 0.140291, -0.847398, 0.275336, 0.431771 -2769, 0.140291, -0.847398, 0.275336, 0.431771 -2770, 0.140291, -0.847398, 0.275336, 0.431771 -2771, 0.140291, -0.847398, 0.275336, 0.431771 -2772, 0.140291, -0.847398, 0.275336, 0.431771 -2773, 0.140291, -0.847398, 0.275336, 0.431771 -2774, 0.140291, -0.847398, 0.275336, 0.431771 -2775, 0.140291, -0.847398, 0.275336, 0.431771 -2776, 0.140291, -0.847398, 0.275336, 0.431771 -2777, 0.140291, -0.847398, 0.275336, 0.431771 -2778, 0.140291, -0.847398, 0.275336, 0.431771 -2779, 0.140291, -0.847398, 0.275336, 0.431771 -2780, 0.140291, -0.847398, 0.275336, 0.431771 -2781, 0.140291, -0.847398, 0.275336, 0.431771 -2782, 0.140291, -0.847398, 0.275336, 0.431771 -2783, 0.140291, -0.847398, 0.275336, 0.431771 -2784, 0.140291, -0.847398, 0.275336, 0.431771 -2785, 0.140291, -0.847398, 0.275336, 0.431771 -2786, 0.140291, -0.847398, 0.275336, 0.431771 -2787, 0.140291, -0.847398, 0.275336, 0.431771 -2788, 0.140291, -0.847398, 0.275336, 0.431771 -2789, 0.140291, -0.847398, 0.275336, 0.431771 -2790, 0.140291, -0.847398, 0.275336, 0.431771 -2791, 0.140291, -0.847398, 0.275336, 0.431771 -2792, 0.140291, -0.847398, 0.275336, 0.431771 -2793, 0.140291, -0.847398, 0.275336, 0.431771 -2794, 0.140291, -0.847398, 0.275336, 0.431771 -2795, 0.140291, -0.847398, 0.275336, 0.431771 -2796, 0.140291, -0.847398, 0.275336, 0.431771 -2797, 0.140291, -0.847398, 0.275336, 0.431771 -2798, 0.140291, -0.847398, 0.275336, 0.431771 -2799, 0.140291, -0.847398, 0.275336, 0.431771 -2800, 0.125869, -0.863147, 0.263890, 0.411700 -2801, 0.125869, -0.863147, 0.263890, 0.411700 -2802, 0.125869, -0.863147, 0.263890, 0.411700 -2803, 0.125869, -0.863147, 0.263890, 0.411700 -2804, 0.125869, -0.863147, 0.263890, 0.411700 -2805, 0.125869, -0.863147, 0.263890, 0.411700 -2806, 0.125869, -0.863147, 0.263890, 0.411700 -2807, 0.125869, -0.863147, 0.263890, 0.411700 -2808, 0.125869, -0.863147, 0.263890, 0.411700 -2809, 0.125869, -0.863147, 0.263890, 0.411700 -2810, 0.125869, -0.863147, 0.263890, 0.411700 -2811, 0.125869, -0.863147, 0.263890, 0.411700 -2812, 0.125869, -0.863147, 0.263890, 0.411700 -2813, 0.125869, -0.863147, 0.263890, 0.411700 -2814, 0.125869, -0.863147, 0.263890, 0.411700 -2815, 0.125869, -0.863147, 0.263890, 0.411700 -2816, 0.125869, -0.863147, 0.263890, 0.411700 -2817, 0.125869, -0.863147, 0.263890, 0.411700 -2818, 0.125869, -0.863147, 0.263890, 0.411700 -2819, 0.125869, -0.863147, 0.263890, 0.411700 -2820, 0.125869, -0.863147, 0.263890, 0.411700 -2821, 0.125869, -0.863147, 0.263890, 0.411700 -2822, 0.125869, -0.863147, 0.263890, 0.411700 -2823, 0.125869, -0.863147, 0.263890, 0.411700 -2824, 0.125869, -0.863147, 0.263890, 0.411700 -2825, 0.125869, -0.863147, 0.263890, 0.411700 -2826, 0.125869, -0.863147, 0.263890, 0.411700 -2827, 0.125869, -0.863147, 0.263890, 0.411700 -2828, 0.125869, -0.863147, 0.263890, 0.411700 -2829, 0.125869, -0.863147, 0.263890, 0.411700 -2830, 0.125869, -0.863147, 0.263890, 0.411700 -2831, 0.125869, -0.863147, 0.263890, 0.411700 -2832, 0.125869, -0.863147, 0.263890, 0.411700 -2833, 0.125869, -0.863147, 0.263890, 0.411700 -2834, 0.125869, -0.863147, 0.263890, 0.411700 -2835, 0.125869, -0.863147, 0.263890, 0.411700 -2836, 0.125869, -0.863147, 0.263890, 0.411700 -2837, 0.125869, -0.863147, 0.263890, 0.411700 -2838, 0.125869, -0.863147, 0.263890, 0.411700 -2839, 0.125869, -0.863147, 0.263890, 0.411700 -2840, 0.125869, -0.863147, 0.263890, 0.411700 -2841, 0.125869, -0.863147, 0.263890, 0.411700 -2842, 0.125869, -0.863147, 0.263890, 0.411700 -2843, 0.125869, -0.863147, 0.263890, 0.411700 -2844, 0.125869, -0.863147, 0.263890, 0.411700 -2845, 0.125869, -0.863147, 0.263890, 0.411700 -2846, 0.125869, -0.863147, 0.263890, 0.411700 -2847, 0.125869, -0.863147, 0.263890, 0.411700 -2848, 0.125869, -0.863147, 0.263890, 0.411700 -2849, 0.125869, -0.863147, 0.263890, 0.411700 -2850, 0.125869, -0.863147, 0.263890, 0.411700 -2851, 0.125869, -0.863147, 0.263890, 0.411700 -2852, 0.125869, -0.863147, 0.263890, 0.411700 -2853, 0.125869, -0.863147, 0.263890, 0.411700 -2854, 0.125869, -0.863147, 0.263890, 0.411700 -2855, 0.125869, -0.863147, 0.263890, 0.411700 -2856, 0.125869, -0.863147, 0.263890, 0.411700 -2857, 0.125869, -0.863147, 0.263890, 0.411700 -2858, 0.125869, -0.863147, 0.263890, 0.411700 -2859, 0.125869, -0.863147, 0.263890, 0.411700 -2860, 0.125869, -0.863147, 0.263890, 0.411700 -2861, 0.125869, -0.863147, 0.263890, 0.411700 -2862, 0.125869, -0.863147, 0.263890, 0.411700 -2863, 0.125869, -0.863147, 0.263890, 0.411700 -2864, 0.125869, -0.863147, 0.263890, 0.411700 -2865, 0.125869, -0.863147, 0.263890, 0.411700 -2866, 0.125869, -0.863147, 0.263890, 0.411700 -2867, 0.125869, -0.863147, 0.263890, 0.411700 -2868, 0.125869, -0.863147, 0.263890, 0.411700 -2869, 0.125869, -0.863147, 0.263890, 0.411700 -2870, 0.125869, -0.863147, 0.263890, 0.411700 -2871, 0.125869, -0.863147, 0.263890, 0.411700 -2872, 0.125869, -0.863147, 0.263890, 0.411700 -2873, 0.125869, -0.863147, 0.263890, 0.411700 -2874, 0.125869, -0.863147, 0.263890, 0.411700 -2875, 0.125869, -0.863147, 0.263890, 0.411700 -2876, 0.125869, -0.863147, 0.263890, 0.411700 -2877, 0.125869, -0.863147, 0.263890, 0.411700 -2878, 0.125869, -0.863147, 0.263890, 0.411700 -2879, 0.125869, -0.863147, 0.263890, 0.411700 -2880, 0.125869, -0.863147, 0.263890, 0.411700 -2881, 0.125869, -0.863147, 0.263890, 0.411700 -2882, 0.125869, -0.863147, 0.263890, 0.411700 -2883, 0.125869, -0.863147, 0.263890, 0.411700 -2884, 0.125869, -0.863147, 0.263890, 0.411700 -2885, 0.125869, -0.863147, 0.263890, 0.411700 -2886, 0.125869, -0.863147, 0.263890, 0.411700 -2887, 0.125869, -0.863147, 0.263890, 0.411700 -2888, 0.125869, -0.863147, 0.263890, 0.411700 -2889, 0.125869, -0.863147, 0.263890, 0.411700 -2890, 0.125869, -0.863147, 0.263890, 0.411700 -2891, 0.125869, -0.863147, 0.263890, 0.411700 -2892, 0.125869, -0.863147, 0.263890, 0.411700 -2893, 0.125869, -0.863147, 0.263890, 0.411700 -2894, 0.125869, -0.863147, 0.263890, 0.411700 -2895, 0.125869, -0.863147, 0.263890, 0.411700 -2896, 0.125869, -0.863147, 0.263890, 0.411700 -2897, 0.125869, -0.863147, 0.263890, 0.411700 -2898, 0.125869, -0.863147, 0.263890, 0.411700 -2899, 0.125869, -0.863147, 0.263890, 0.411700 -2900, 0.112112, -0.878156, 0.251807, 0.390980 -2901, 0.112112, -0.878156, 0.251807, 0.390980 -2902, 0.112112, -0.878156, 0.251807, 0.390980 -2903, 0.112112, -0.878156, 0.251807, 0.390980 -2904, 0.112112, -0.878156, 0.251807, 0.390980 -2905, 0.112112, -0.878156, 0.251807, 0.390980 -2906, 0.112112, -0.878156, 0.251807, 0.390980 -2907, 0.112112, -0.878156, 0.251807, 0.390980 -2908, 0.112112, -0.878156, 0.251807, 0.390980 -2909, 0.112112, -0.878156, 0.251807, 0.390980 -2910, 0.112112, -0.878156, 0.251807, 0.390980 -2911, 0.112112, -0.878156, 0.251807, 0.390980 -2912, 0.112112, -0.878156, 0.251807, 0.390980 -2913, 0.112112, -0.878156, 0.251807, 0.390980 -2914, 0.112112, -0.878156, 0.251807, 0.390980 -2915, 0.112112, -0.878156, 0.251807, 0.390980 -2916, 0.112112, -0.878156, 0.251807, 0.390980 -2917, 0.112112, -0.878156, 0.251807, 0.390980 -2918, 0.112112, -0.878156, 0.251807, 0.390980 -2919, 0.112112, -0.878156, 0.251807, 0.390980 -2920, 0.112112, -0.878156, 0.251807, 0.390980 -2921, 0.112112, -0.878156, 0.251807, 0.390980 -2922, 0.112112, -0.878156, 0.251807, 0.390980 -2923, 0.112112, -0.878156, 0.251807, 0.390980 -2924, 0.112112, -0.878156, 0.251807, 0.390980 -2925, 0.112112, -0.878156, 0.251807, 0.390980 -2926, 0.112112, -0.878156, 0.251807, 0.390980 -2927, 0.112112, -0.878156, 0.251807, 0.390980 -2928, 0.112112, -0.878156, 0.251807, 0.390980 -2929, 0.112112, -0.878156, 0.251807, 0.390980 -2930, 0.112112, -0.878156, 0.251807, 0.390980 -2931, 0.112112, -0.878156, 0.251807, 0.390980 -2932, 0.112112, -0.878156, 0.251807, 0.390980 -2933, 0.112112, -0.878156, 0.251807, 0.390980 -2934, 0.112112, -0.878156, 0.251807, 0.390980 -2935, 0.112112, -0.878156, 0.251807, 0.390980 -2936, 0.112112, -0.878156, 0.251807, 0.390980 -2937, 0.112112, -0.878156, 0.251807, 0.390980 -2938, 0.112112, -0.878156, 0.251807, 0.390980 -2939, 0.112112, -0.878156, 0.251807, 0.390980 -2940, 0.112112, -0.878156, 0.251807, 0.390980 -2941, 0.112112, -0.878156, 0.251807, 0.390980 -2942, 0.112112, -0.878156, 0.251807, 0.390980 -2943, 0.112112, -0.878156, 0.251807, 0.390980 -2944, 0.112112, -0.878156, 0.251807, 0.390980 -2945, 0.112112, -0.878156, 0.251807, 0.390980 -2946, 0.112112, -0.878156, 0.251807, 0.390980 -2947, 0.112112, -0.878156, 0.251807, 0.390980 -2948, 0.112112, -0.878156, 0.251807, 0.390980 -2949, 0.112112, -0.878156, 0.251807, 0.390980 -2950, 0.112112, -0.878156, 0.251807, 0.390980 -2951, 0.112112, -0.878156, 0.251807, 0.390980 -2952, 0.112112, -0.878156, 0.251807, 0.390980 -2953, 0.112112, -0.878156, 0.251807, 0.390980 -2954, 0.112112, -0.878156, 0.251807, 0.390980 -2955, 0.112112, -0.878156, 0.251807, 0.390980 -2956, 0.112112, -0.878156, 0.251807, 0.390980 -2957, 0.112112, -0.878156, 0.251807, 0.390980 -2958, 0.112112, -0.878156, 0.251807, 0.390980 -2959, 0.112112, -0.878156, 0.251807, 0.390980 -2960, 0.112112, -0.878156, 0.251807, 0.390980 -2961, 0.112112, -0.878156, 0.251807, 0.390980 -2962, 0.112112, -0.878156, 0.251807, 0.390980 -2963, 0.112112, -0.878156, 0.251807, 0.390980 -2964, 0.112112, -0.878156, 0.251807, 0.390980 -2965, 0.112112, -0.878156, 0.251807, 0.390980 -2966, 0.112112, -0.878156, 0.251807, 0.390980 -2967, 0.112112, -0.878156, 0.251807, 0.390980 -2968, 0.112112, -0.878156, 0.251807, 0.390980 -2969, 0.112112, -0.878156, 0.251807, 0.390980 -2970, 0.112112, -0.878156, 0.251807, 0.390980 -2971, 0.112112, -0.878156, 0.251807, 0.390980 -2972, 0.112112, -0.878156, 0.251807, 0.390980 -2973, 0.112112, -0.878156, 0.251807, 0.390980 -2974, 0.112112, -0.878156, 0.251807, 0.390980 -2975, 0.112112, -0.878156, 0.251807, 0.390980 -2976, 0.112112, -0.878156, 0.251807, 0.390980 -2977, 0.112112, -0.878156, 0.251807, 0.390980 -2978, 0.112112, -0.878156, 0.251807, 0.390980 -2979, 0.112112, -0.878156, 0.251807, 0.390980 -2980, 0.112112, -0.878156, 0.251807, 0.390980 -2981, 0.112112, -0.878156, 0.251807, 0.390980 -2982, 0.112112, -0.878156, 0.251807, 0.390980 -2983, 0.112112, -0.878156, 0.251807, 0.390980 -2984, 0.112112, -0.878156, 0.251807, 0.390980 -2985, 0.112112, -0.878156, 0.251807, 0.390980 -2986, 0.112112, -0.878156, 0.251807, 0.390980 -2987, 0.112112, -0.878156, 0.251807, 0.390980 -2988, 0.112112, -0.878156, 0.251807, 0.390980 -2989, 0.112112, -0.878156, 0.251807, 0.390980 -2990, 0.112112, -0.878156, 0.251807, 0.390980 -2991, 0.112112, -0.878156, 0.251807, 0.390980 -2992, 0.112112, -0.878156, 0.251807, 0.390980 -2993, 0.112112, -0.878156, 0.251807, 0.390980 -2994, 0.112112, -0.878156, 0.251807, 0.390980 -2995, 0.112112, -0.878156, 0.251807, 0.390980 -2996, 0.112112, -0.878156, 0.251807, 0.390980 -2997, 0.112112, -0.878156, 0.251807, 0.390980 -2998, 0.112112, -0.878156, 0.251807, 0.390980 -2999, 0.112112, -0.878156, 0.251807, 0.390980 -3000, 0.099046, -0.892399, 0.239118, 0.369644 -3001, 0.099046, -0.892399, 0.239118, 0.369644 -3002, 0.099046, -0.892399, 0.239118, 0.369644 -3003, 0.099046, -0.892399, 0.239118, 0.369644 -3004, 0.099046, -0.892399, 0.239118, 0.369644 -3005, 0.099046, -0.892399, 0.239118, 0.369644 -3006, 0.099046, -0.892399, 0.239118, 0.369644 -3007, 0.099046, -0.892399, 0.239118, 0.369644 -3008, 0.099046, -0.892399, 0.239118, 0.369644 -3009, 0.099046, -0.892399, 0.239118, 0.369644 -3010, 0.099046, -0.892399, 0.239118, 0.369644 -3011, 0.099046, -0.892399, 0.239118, 0.369644 -3012, 0.099046, -0.892399, 0.239118, 0.369644 -3013, 0.099046, -0.892399, 0.239118, 0.369644 -3014, 0.099046, -0.892399, 0.239118, 0.369644 -3015, 0.099046, -0.892399, 0.239118, 0.369644 -3016, 0.099046, -0.892399, 0.239118, 0.369644 -3017, 0.099046, -0.892399, 0.239118, 0.369644 -3018, 0.099046, -0.892399, 0.239118, 0.369644 -3019, 0.099046, -0.892399, 0.239118, 0.369644 -3020, 0.099046, -0.892399, 0.239118, 0.369644 -3021, 0.099046, -0.892399, 0.239118, 0.369644 -3022, 0.099046, -0.892399, 0.239118, 0.369644 -3023, 0.099046, -0.892399, 0.239118, 0.369644 -3024, 0.099046, -0.892399, 0.239118, 0.369644 -3025, 0.099046, -0.892399, 0.239118, 0.369644 -3026, 0.099046, -0.892399, 0.239118, 0.369644 -3027, 0.099046, -0.892399, 0.239118, 0.369644 -3028, 0.099046, -0.892399, 0.239118, 0.369644 -3029, 0.099046, -0.892399, 0.239118, 0.369644 -3030, 0.099046, -0.892399, 0.239118, 0.369644 -3031, 0.099046, -0.892399, 0.239118, 0.369644 -3032, 0.099046, -0.892399, 0.239118, 0.369644 -3033, 0.099046, -0.892399, 0.239118, 0.369644 -3034, 0.099046, -0.892399, 0.239118, 0.369644 -3035, 0.099046, -0.892399, 0.239118, 0.369644 -3036, 0.099046, -0.892399, 0.239118, 0.369644 -3037, 0.099046, -0.892399, 0.239118, 0.369644 -3038, 0.099046, -0.892399, 0.239118, 0.369644 -3039, 0.099046, -0.892399, 0.239118, 0.369644 -3040, 0.099046, -0.892399, 0.239118, 0.369644 -3041, 0.099046, -0.892399, 0.239118, 0.369644 -3042, 0.099046, -0.892399, 0.239118, 0.369644 -3043, 0.099046, -0.892399, 0.239118, 0.369644 -3044, 0.099046, -0.892399, 0.239118, 0.369644 -3045, 0.099046, -0.892399, 0.239118, 0.369644 -3046, 0.099046, -0.892399, 0.239118, 0.369644 -3047, 0.099046, -0.892399, 0.239118, 0.369644 -3048, 0.099046, -0.892399, 0.239118, 0.369644 -3049, 0.099046, -0.892399, 0.239118, 0.369644 -3050, 0.099046, -0.892399, 0.239118, 0.369644 -3051, 0.099046, -0.892399, 0.239118, 0.369644 -3052, 0.099046, -0.892399, 0.239118, 0.369644 -3053, 0.099046, -0.892399, 0.239118, 0.369644 -3054, 0.099046, -0.892399, 0.239118, 0.369644 -3055, 0.099046, -0.892399, 0.239118, 0.369644 -3056, 0.099046, -0.892399, 0.239118, 0.369644 -3057, 0.099046, -0.892399, 0.239118, 0.369644 -3058, 0.099046, -0.892399, 0.239118, 0.369644 -3059, 0.099046, -0.892399, 0.239118, 0.369644 -3060, 0.099046, -0.892399, 0.239118, 0.369644 -3061, 0.099046, -0.892399, 0.239118, 0.369644 -3062, 0.099046, -0.892399, 0.239118, 0.369644 -3063, 0.099046, -0.892399, 0.239118, 0.369644 -3064, 0.099046, -0.892399, 0.239118, 0.369644 -3065, 0.099046, -0.892399, 0.239118, 0.369644 -3066, 0.099046, -0.892399, 0.239118, 0.369644 -3067, 0.099046, -0.892399, 0.239118, 0.369644 -3068, 0.099046, -0.892399, 0.239118, 0.369644 -3069, 0.099046, -0.892399, 0.239118, 0.369644 -3070, 0.099046, -0.892399, 0.239118, 0.369644 -3071, 0.099046, -0.892399, 0.239118, 0.369644 -3072, 0.099046, -0.892399, 0.239118, 0.369644 -3073, 0.099046, -0.892399, 0.239118, 0.369644 -3074, 0.099046, -0.892399, 0.239118, 0.369644 -3075, 0.099046, -0.892399, 0.239118, 0.369644 -3076, 0.099046, -0.892399, 0.239118, 0.369644 -3077, 0.099046, -0.892399, 0.239118, 0.369644 -3078, 0.099046, -0.892399, 0.239118, 0.369644 -3079, 0.099046, -0.892399, 0.239118, 0.369644 -3080, 0.099046, -0.892399, 0.239118, 0.369644 -3081, 0.099046, -0.892399, 0.239118, 0.369644 -3082, 0.099046, -0.892399, 0.239118, 0.369644 -3083, 0.099046, -0.892399, 0.239118, 0.369644 -3084, 0.099046, -0.892399, 0.239118, 0.369644 -3085, 0.099046, -0.892399, 0.239118, 0.369644 -3086, 0.099046, -0.892399, 0.239118, 0.369644 -3087, 0.099046, -0.892399, 0.239118, 0.369644 -3088, 0.099046, -0.892399, 0.239118, 0.369644 -3089, 0.099046, -0.892399, 0.239118, 0.369644 -3090, 0.099046, -0.892399, 0.239118, 0.369644 -3091, 0.099046, -0.892399, 0.239118, 0.369644 -3092, 0.099046, -0.892399, 0.239118, 0.369644 -3093, 0.099046, -0.892399, 0.239118, 0.369644 -3094, 0.099046, -0.892399, 0.239118, 0.369644 -3095, 0.099046, -0.892399, 0.239118, 0.369644 -3096, 0.099046, -0.892399, 0.239118, 0.369644 -3097, 0.099046, -0.892399, 0.239118, 0.369644 -3098, 0.099046, -0.892399, 0.239118, 0.369644 -3099, 0.099046, -0.892399, 0.239118, 0.369644 -3100, 0.086697, -0.905849, 0.225854, 0.347723 -3101, 0.086697, -0.905849, 0.225854, 0.347723 -3102, 0.086697, -0.905849, 0.225854, 0.347723 -3103, 0.086697, -0.905849, 0.225854, 0.347723 -3104, 0.086697, -0.905849, 0.225854, 0.347723 -3105, 0.086697, -0.905849, 0.225854, 0.347723 -3106, 0.086697, -0.905849, 0.225854, 0.347723 -3107, 0.086697, -0.905849, 0.225854, 0.347723 -3108, 0.086697, -0.905849, 0.225854, 0.347723 -3109, 0.086697, -0.905849, 0.225854, 0.347723 -3110, 0.086697, -0.905849, 0.225854, 0.347723 -3111, 0.086697, -0.905849, 0.225854, 0.347723 -3112, 0.086697, -0.905849, 0.225854, 0.347723 -3113, 0.086697, -0.905849, 0.225854, 0.347723 -3114, 0.086697, -0.905849, 0.225854, 0.347723 -3115, 0.086697, -0.905849, 0.225854, 0.347723 -3116, 0.086697, -0.905849, 0.225854, 0.347723 -3117, 0.086697, -0.905849, 0.225854, 0.347723 -3118, 0.086697, -0.905849, 0.225854, 0.347723 -3119, 0.086697, -0.905849, 0.225854, 0.347723 -3120, 0.086697, -0.905849, 0.225854, 0.347723 -3121, 0.086697, -0.905849, 0.225854, 0.347723 -3122, 0.086697, -0.905849, 0.225854, 0.347723 -3123, 0.086697, -0.905849, 0.225854, 0.347723 -3124, 0.086697, -0.905849, 0.225854, 0.347723 -3125, 0.086697, -0.905849, 0.225854, 0.347723 -3126, 0.086697, -0.905849, 0.225854, 0.347723 -3127, 0.086697, -0.905849, 0.225854, 0.347723 -3128, 0.086697, -0.905849, 0.225854, 0.347723 -3129, 0.086697, -0.905849, 0.225854, 0.347723 -3130, 0.086697, -0.905849, 0.225854, 0.347723 -3131, 0.086697, -0.905849, 0.225854, 0.347723 -3132, 0.086697, -0.905849, 0.225854, 0.347723 -3133, 0.086697, -0.905849, 0.225854, 0.347723 -3134, 0.086697, -0.905849, 0.225854, 0.347723 -3135, 0.086697, -0.905849, 0.225854, 0.347723 -3136, 0.086697, -0.905849, 0.225854, 0.347723 -3137, 0.086697, -0.905849, 0.225854, 0.347723 -3138, 0.086697, -0.905849, 0.225854, 0.347723 -3139, 0.086697, -0.905849, 0.225854, 0.347723 -3140, 0.086697, -0.905849, 0.225854, 0.347723 -3141, 0.086697, -0.905849, 0.225854, 0.347723 -3142, 0.086697, -0.905849, 0.225854, 0.347723 -3143, 0.086697, -0.905849, 0.225854, 0.347723 -3144, 0.086697, -0.905849, 0.225854, 0.347723 -3145, 0.086697, -0.905849, 0.225854, 0.347723 -3146, 0.086697, -0.905849, 0.225854, 0.347723 -3147, 0.086697, -0.905849, 0.225854, 0.347723 -3148, 0.086697, -0.905849, 0.225854, 0.347723 -3149, 0.086697, -0.905849, 0.225854, 0.347723 -3150, 0.086697, -0.905849, 0.225854, 0.347723 -3151, 0.086697, -0.905849, 0.225854, 0.347723 -3152, 0.086697, -0.905849, 0.225854, 0.347723 -3153, 0.086697, -0.905849, 0.225854, 0.347723 -3154, 0.086697, -0.905849, 0.225854, 0.347723 -3155, 0.086697, -0.905849, 0.225854, 0.347723 -3156, 0.086697, -0.905849, 0.225854, 0.347723 -3157, 0.086697, -0.905849, 0.225854, 0.347723 -3158, 0.086697, -0.905849, 0.225854, 0.347723 -3159, 0.086697, -0.905849, 0.225854, 0.347723 -3160, 0.086697, -0.905849, 0.225854, 0.347723 -3161, 0.086697, -0.905849, 0.225854, 0.347723 -3162, 0.086697, -0.905849, 0.225854, 0.347723 -3163, 0.086697, -0.905849, 0.225854, 0.347723 -3164, 0.086697, -0.905849, 0.225854, 0.347723 -3165, 0.086697, -0.905849, 0.225854, 0.347723 -3166, 0.086697, -0.905849, 0.225854, 0.347723 -3167, 0.086697, -0.905849, 0.225854, 0.347723 -3168, 0.086697, -0.905849, 0.225854, 0.347723 -3169, 0.086697, -0.905849, 0.225854, 0.347723 -3170, 0.086697, -0.905849, 0.225854, 0.347723 -3171, 0.086697, -0.905849, 0.225854, 0.347723 -3172, 0.086697, -0.905849, 0.225854, 0.347723 -3173, 0.086697, -0.905849, 0.225854, 0.347723 -3174, 0.086697, -0.905849, 0.225854, 0.347723 -3175, 0.086697, -0.905849, 0.225854, 0.347723 -3176, 0.086697, -0.905849, 0.225854, 0.347723 -3177, 0.086697, -0.905849, 0.225854, 0.347723 -3178, 0.086697, -0.905849, 0.225854, 0.347723 -3179, 0.086697, -0.905849, 0.225854, 0.347723 -3180, 0.086697, -0.905849, 0.225854, 0.347723 -3181, 0.086697, -0.905849, 0.225854, 0.347723 -3182, 0.086697, -0.905849, 0.225854, 0.347723 -3183, 0.086697, -0.905849, 0.225854, 0.347723 -3184, 0.086697, -0.905849, 0.225854, 0.347723 -3185, 0.086697, -0.905849, 0.225854, 0.347723 -3186, 0.086697, -0.905849, 0.225854, 0.347723 -3187, 0.086697, -0.905849, 0.225854, 0.347723 -3188, 0.086697, -0.905849, 0.225854, 0.347723 -3189, 0.086697, -0.905849, 0.225854, 0.347723 -3190, 0.086697, -0.905849, 0.225854, 0.347723 -3191, 0.086697, -0.905849, 0.225854, 0.347723 -3192, 0.086697, -0.905849, 0.225854, 0.347723 -3193, 0.086697, -0.905849, 0.225854, 0.347723 -3194, 0.086697, -0.905849, 0.225854, 0.347723 -3195, 0.086697, -0.905849, 0.225854, 0.347723 -3196, 0.086697, -0.905849, 0.225854, 0.347723 -3197, 0.086697, -0.905849, 0.225854, 0.347723 -3198, 0.086697, -0.905849, 0.225854, 0.347723 -3199, 0.086697, -0.905849, 0.225854, 0.347723 -3200, 0.075090, -0.918482, 0.212048, 0.325251 -3201, 0.075090, -0.918482, 0.212048, 0.325251 -3202, 0.075090, -0.918482, 0.212048, 0.325251 -3203, 0.075090, -0.918482, 0.212048, 0.325251 -3204, 0.075090, -0.918482, 0.212048, 0.325251 -3205, 0.075090, -0.918482, 0.212048, 0.325251 -3206, 0.075090, -0.918482, 0.212048, 0.325251 -3207, 0.075090, -0.918482, 0.212048, 0.325251 -3208, 0.075090, -0.918482, 0.212048, 0.325251 -3209, 0.075090, -0.918482, 0.212048, 0.325251 -3210, 0.075090, -0.918482, 0.212048, 0.325251 -3211, 0.075090, -0.918482, 0.212048, 0.325251 -3212, 0.075090, -0.918482, 0.212048, 0.325251 -3213, 0.075090, -0.918482, 0.212048, 0.325251 -3214, 0.075090, -0.918482, 0.212048, 0.325251 -3215, 0.075090, -0.918482, 0.212048, 0.325251 -3216, 0.075090, -0.918482, 0.212048, 0.325251 -3217, 0.075090, -0.918482, 0.212048, 0.325251 -3218, 0.075090, -0.918482, 0.212048, 0.325251 -3219, 0.075090, -0.918482, 0.212048, 0.325251 -3220, 0.075090, -0.918482, 0.212048, 0.325251 -3221, 0.075090, -0.918482, 0.212048, 0.325251 -3222, 0.075090, -0.918482, 0.212048, 0.325251 -3223, 0.075090, -0.918482, 0.212048, 0.325251 -3224, 0.075090, -0.918482, 0.212048, 0.325251 -3225, 0.075090, -0.918482, 0.212048, 0.325251 -3226, 0.075090, -0.918482, 0.212048, 0.325251 -3227, 0.075090, -0.918482, 0.212048, 0.325251 -3228, 0.075090, -0.918482, 0.212048, 0.325251 -3229, 0.075090, -0.918482, 0.212048, 0.325251 -3230, 0.075090, -0.918482, 0.212048, 0.325251 -3231, 0.075090, -0.918482, 0.212048, 0.325251 -3232, 0.075090, -0.918482, 0.212048, 0.325251 -3233, 0.075090, -0.918482, 0.212048, 0.325251 -3234, 0.075090, -0.918482, 0.212048, 0.325251 -3235, 0.075090, -0.918482, 0.212048, 0.325251 -3236, 0.075090, -0.918482, 0.212048, 0.325251 -3237, 0.075090, -0.918482, 0.212048, 0.325251 -3238, 0.075090, -0.918482, 0.212048, 0.325251 -3239, 0.075090, -0.918482, 0.212048, 0.325251 -3240, 0.075090, -0.918482, 0.212048, 0.325251 -3241, 0.075090, -0.918482, 0.212048, 0.325251 -3242, 0.075090, -0.918482, 0.212048, 0.325251 -3243, 0.075090, -0.918482, 0.212048, 0.325251 -3244, 0.075090, -0.918482, 0.212048, 0.325251 -3245, 0.075090, -0.918482, 0.212048, 0.325251 -3246, 0.075090, -0.918482, 0.212048, 0.325251 -3247, 0.075090, -0.918482, 0.212048, 0.325251 -3248, 0.075090, -0.918482, 0.212048, 0.325251 -3249, 0.075090, -0.918482, 0.212048, 0.325251 -3250, 0.075090, -0.918482, 0.212048, 0.325251 -3251, 0.075090, -0.918482, 0.212048, 0.325251 -3252, 0.075090, -0.918482, 0.212048, 0.325251 -3253, 0.075090, -0.918482, 0.212048, 0.325251 -3254, 0.075090, -0.918482, 0.212048, 0.325251 -3255, 0.075090, -0.918482, 0.212048, 0.325251 -3256, 0.075090, -0.918482, 0.212048, 0.325251 -3257, 0.075090, -0.918482, 0.212048, 0.325251 -3258, 0.075090, -0.918482, 0.212048, 0.325251 -3259, 0.075090, -0.918482, 0.212048, 0.325251 -3260, 0.075090, -0.918482, 0.212048, 0.325251 -3261, 0.075090, -0.918482, 0.212048, 0.325251 -3262, 0.075090, -0.918482, 0.212048, 0.325251 -3263, 0.075090, -0.918482, 0.212048, 0.325251 -3264, 0.075090, -0.918482, 0.212048, 0.325251 -3265, 0.075090, -0.918482, 0.212048, 0.325251 -3266, 0.075090, -0.918482, 0.212048, 0.325251 -3267, 0.075090, -0.918482, 0.212048, 0.325251 -3268, 0.075090, -0.918482, 0.212048, 0.325251 -3269, 0.075090, -0.918482, 0.212048, 0.325251 -3270, 0.075090, -0.918482, 0.212048, 0.325251 -3271, 0.075090, -0.918482, 0.212048, 0.325251 -3272, 0.075090, -0.918482, 0.212048, 0.325251 -3273, 0.075090, -0.918482, 0.212048, 0.325251 -3274, 0.075090, -0.918482, 0.212048, 0.325251 -3275, 0.075090, -0.918482, 0.212048, 0.325251 -3276, 0.075090, -0.918482, 0.212048, 0.325251 -3277, 0.075090, -0.918482, 0.212048, 0.325251 -3278, 0.075090, -0.918482, 0.212048, 0.325251 -3279, 0.075090, -0.918482, 0.212048, 0.325251 -3280, 0.075090, -0.918482, 0.212048, 0.325251 -3281, 0.075090, -0.918482, 0.212048, 0.325251 -3282, 0.075090, -0.918482, 0.212048, 0.325251 -3283, 0.075090, -0.918482, 0.212048, 0.325251 -3284, 0.075090, -0.918482, 0.212048, 0.325251 -3285, 0.075090, -0.918482, 0.212048, 0.325251 -3286, 0.075090, -0.918482, 0.212048, 0.325251 -3287, 0.075090, -0.918482, 0.212048, 0.325251 -3288, 0.075090, -0.918482, 0.212048, 0.325251 -3289, 0.075090, -0.918482, 0.212048, 0.325251 -3290, 0.075090, -0.918482, 0.212048, 0.325251 -3291, 0.075090, -0.918482, 0.212048, 0.325251 -3292, 0.075090, -0.918482, 0.212048, 0.325251 -3293, 0.075090, -0.918482, 0.212048, 0.325251 -3294, 0.075090, -0.918482, 0.212048, 0.325251 -3295, 0.075090, -0.918482, 0.212048, 0.325251 -3296, 0.075090, -0.918482, 0.212048, 0.325251 -3297, 0.075090, -0.918482, 0.212048, 0.325251 -3298, 0.075090, -0.918482, 0.212048, 0.325251 -3299, 0.075090, -0.918482, 0.212048, 0.325251 -3300, 0.064248, -0.930274, 0.197736, 0.302264 -3301, 0.064248, -0.930274, 0.197736, 0.302264 -3302, 0.064248, -0.930274, 0.197736, 0.302264 -3303, 0.064248, -0.930274, 0.197736, 0.302264 -3304, 0.064248, -0.930274, 0.197736, 0.302264 -3305, 0.064248, -0.930274, 0.197736, 0.302264 -3306, 0.064248, -0.930274, 0.197736, 0.302264 -3307, 0.064248, -0.930274, 0.197736, 0.302264 -3308, 0.064248, -0.930274, 0.197736, 0.302264 -3309, 0.064248, -0.930274, 0.197736, 0.302264 -3310, 0.064248, -0.930274, 0.197736, 0.302264 -3311, 0.064248, -0.930274, 0.197736, 0.302264 -3312, 0.064248, -0.930274, 0.197736, 0.302264 -3313, 0.064248, -0.930274, 0.197736, 0.302264 -3314, 0.064248, -0.930274, 0.197736, 0.302264 -3315, 0.064248, -0.930274, 0.197736, 0.302264 -3316, 0.064248, -0.930274, 0.197736, 0.302264 -3317, 0.064248, -0.930274, 0.197736, 0.302264 -3318, 0.064248, -0.930274, 0.197736, 0.302264 -3319, 0.064248, -0.930274, 0.197736, 0.302264 -3320, 0.064248, -0.930274, 0.197736, 0.302264 -3321, 0.064248, -0.930274, 0.197736, 0.302264 -3322, 0.064248, -0.930274, 0.197736, 0.302264 -3323, 0.064248, -0.930274, 0.197736, 0.302264 -3324, 0.064248, -0.930274, 0.197736, 0.302264 -3325, 0.064248, -0.930274, 0.197736, 0.302264 -3326, 0.064248, -0.930274, 0.197736, 0.302264 -3327, 0.064248, -0.930274, 0.197736, 0.302264 -3328, 0.064248, -0.930274, 0.197736, 0.302264 -3329, 0.064248, -0.930274, 0.197736, 0.302264 -3330, 0.064248, -0.930274, 0.197736, 0.302264 -3331, 0.064248, -0.930274, 0.197736, 0.302264 -3332, 0.064248, -0.930274, 0.197736, 0.302264 -3333, 0.064248, -0.930274, 0.197736, 0.302264 -3334, 0.064248, -0.930274, 0.197736, 0.302264 -3335, 0.064248, -0.930274, 0.197736, 0.302264 -3336, 0.064248, -0.930274, 0.197736, 0.302264 -3337, 0.064248, -0.930274, 0.197736, 0.302264 -3338, 0.064248, -0.930274, 0.197736, 0.302264 -3339, 0.064248, -0.930274, 0.197736, 0.302264 -3340, 0.064248, -0.930274, 0.197736, 0.302264 -3341, 0.064248, -0.930274, 0.197736, 0.302264 -3342, 0.064248, -0.930274, 0.197736, 0.302264 -3343, 0.064248, -0.930274, 0.197736, 0.302264 -3344, 0.064248, -0.930274, 0.197736, 0.302264 -3345, 0.064248, -0.930274, 0.197736, 0.302264 -3346, 0.064248, -0.930274, 0.197736, 0.302264 -3347, 0.064248, -0.930274, 0.197736, 0.302264 -3348, 0.064248, -0.930274, 0.197736, 0.302264 -3349, 0.064248, -0.930274, 0.197736, 0.302264 -3350, 0.064248, -0.930274, 0.197736, 0.302264 -3351, 0.064248, -0.930274, 0.197736, 0.302264 -3352, 0.064248, -0.930274, 0.197736, 0.302264 -3353, 0.064248, -0.930274, 0.197736, 0.302264 -3354, 0.064248, -0.930274, 0.197736, 0.302264 -3355, 0.064248, -0.930274, 0.197736, 0.302264 -3356, 0.064248, -0.930274, 0.197736, 0.302264 -3357, 0.064248, -0.930274, 0.197736, 0.302264 -3358, 0.064248, -0.930274, 0.197736, 0.302264 -3359, 0.064248, -0.930274, 0.197736, 0.302264 -3360, 0.064248, -0.930274, 0.197736, 0.302264 -3361, 0.064248, -0.930274, 0.197736, 0.302264 -3362, 0.064248, -0.930274, 0.197736, 0.302264 -3363, 0.064248, -0.930274, 0.197736, 0.302264 -3364, 0.064248, -0.930274, 0.197736, 0.302264 -3365, 0.064248, -0.930274, 0.197736, 0.302264 -3366, 0.064248, -0.930274, 0.197736, 0.302264 -3367, 0.064248, -0.930274, 0.197736, 0.302264 -3368, 0.064248, -0.930274, 0.197736, 0.302264 -3369, 0.064248, -0.930274, 0.197736, 0.302264 -3370, 0.064248, -0.930274, 0.197736, 0.302264 -3371, 0.064248, -0.930274, 0.197736, 0.302264 -3372, 0.064248, -0.930274, 0.197736, 0.302264 -3373, 0.064248, -0.930274, 0.197736, 0.302264 -3374, 0.064248, -0.930274, 0.197736, 0.302264 -3375, 0.064248, -0.930274, 0.197736, 0.302264 -3376, 0.064248, -0.930274, 0.197736, 0.302264 -3377, 0.064248, -0.930274, 0.197736, 0.302264 -3378, 0.064248, -0.930274, 0.197736, 0.302264 -3379, 0.064248, -0.930274, 0.197736, 0.302264 -3380, 0.064248, -0.930274, 0.197736, 0.302264 -3381, 0.064248, -0.930274, 0.197736, 0.302264 -3382, 0.064248, -0.930274, 0.197736, 0.302264 -3383, 0.064248, -0.930274, 0.197736, 0.302264 -3384, 0.064248, -0.930274, 0.197736, 0.302264 -3385, 0.064248, -0.930274, 0.197736, 0.302264 -3386, 0.064248, -0.930274, 0.197736, 0.302264 -3387, 0.064248, -0.930274, 0.197736, 0.302264 -3388, 0.064248, -0.930274, 0.197736, 0.302264 -3389, 0.064248, -0.930274, 0.197736, 0.302264 -3390, 0.064248, -0.930274, 0.197736, 0.302264 -3391, 0.064248, -0.930274, 0.197736, 0.302264 -3392, 0.064248, -0.930274, 0.197736, 0.302264 -3393, 0.064248, -0.930274, 0.197736, 0.302264 -3394, 0.064248, -0.930274, 0.197736, 0.302264 -3395, 0.064248, -0.930274, 0.197736, 0.302264 -3396, 0.064248, -0.930274, 0.197736, 0.302264 -3397, 0.064248, -0.930274, 0.197736, 0.302264 -3398, 0.064248, -0.930274, 0.197736, 0.302264 -3399, 0.064248, -0.930274, 0.197736, 0.302264 -3400, 0.054193, -0.941204, 0.182951, 0.278797 -3401, 0.054193, -0.941204, 0.182951, 0.278797 -3402, 0.054193, -0.941204, 0.182951, 0.278797 -3403, 0.054193, -0.941204, 0.182951, 0.278797 -3404, 0.054193, -0.941204, 0.182951, 0.278797 -3405, 0.054193, -0.941204, 0.182951, 0.278797 -3406, 0.054193, -0.941204, 0.182951, 0.278797 -3407, 0.054193, -0.941204, 0.182951, 0.278797 -3408, 0.054193, -0.941204, 0.182951, 0.278797 -3409, 0.054193, -0.941204, 0.182951, 0.278797 -3410, 0.054193, -0.941204, 0.182951, 0.278797 -3411, 0.054193, -0.941204, 0.182951, 0.278797 -3412, 0.054193, -0.941204, 0.182951, 0.278797 -3413, 0.054193, -0.941204, 0.182951, 0.278797 -3414, 0.054193, -0.941204, 0.182951, 0.278797 -3415, 0.054193, -0.941204, 0.182951, 0.278797 -3416, 0.054193, -0.941204, 0.182951, 0.278797 -3417, 0.054193, -0.941204, 0.182951, 0.278797 -3418, 0.054193, -0.941204, 0.182951, 0.278797 -3419, 0.054193, -0.941204, 0.182951, 0.278797 -3420, 0.054193, -0.941204, 0.182951, 0.278797 -3421, 0.054193, -0.941204, 0.182951, 0.278797 -3422, 0.054193, -0.941204, 0.182951, 0.278797 -3423, 0.054193, -0.941204, 0.182951, 0.278797 -3424, 0.054193, -0.941204, 0.182951, 0.278797 -3425, 0.054193, -0.941204, 0.182951, 0.278797 -3426, 0.054193, -0.941204, 0.182951, 0.278797 -3427, 0.054193, -0.941204, 0.182951, 0.278797 -3428, 0.054193, -0.941204, 0.182951, 0.278797 -3429, 0.054193, -0.941204, 0.182951, 0.278797 -3430, 0.054193, -0.941204, 0.182951, 0.278797 -3431, 0.054193, -0.941204, 0.182951, 0.278797 -3432, 0.054193, -0.941204, 0.182951, 0.278797 -3433, 0.054193, -0.941204, 0.182951, 0.278797 -3434, 0.054193, -0.941204, 0.182951, 0.278797 -3435, 0.054193, -0.941204, 0.182951, 0.278797 -3436, 0.054193, -0.941204, 0.182951, 0.278797 -3437, 0.054193, -0.941204, 0.182951, 0.278797 -3438, 0.054193, -0.941204, 0.182951, 0.278797 -3439, 0.054193, -0.941204, 0.182951, 0.278797 -3440, 0.054193, -0.941204, 0.182951, 0.278797 -3441, 0.054193, -0.941204, 0.182951, 0.278797 -3442, 0.054193, -0.941204, 0.182951, 0.278797 -3443, 0.054193, -0.941204, 0.182951, 0.278797 -3444, 0.054193, -0.941204, 0.182951, 0.278797 -3445, 0.054193, -0.941204, 0.182951, 0.278797 -3446, 0.054193, -0.941204, 0.182951, 0.278797 -3447, 0.054193, -0.941204, 0.182951, 0.278797 -3448, 0.054193, -0.941204, 0.182951, 0.278797 -3449, 0.054193, -0.941204, 0.182951, 0.278797 -3450, 0.054193, -0.941204, 0.182951, 0.278797 -3451, 0.054193, -0.941204, 0.182951, 0.278797 -3452, 0.054193, -0.941204, 0.182951, 0.278797 -3453, 0.054193, -0.941204, 0.182951, 0.278797 -3454, 0.054193, -0.941204, 0.182951, 0.278797 -3455, 0.054193, -0.941204, 0.182951, 0.278797 -3456, 0.054193, -0.941204, 0.182951, 0.278797 -3457, 0.054193, -0.941204, 0.182951, 0.278797 -3458, 0.054193, -0.941204, 0.182951, 0.278797 -3459, 0.054193, -0.941204, 0.182951, 0.278797 -3460, 0.054193, -0.941204, 0.182951, 0.278797 -3461, 0.054193, -0.941204, 0.182951, 0.278797 -3462, 0.054193, -0.941204, 0.182951, 0.278797 -3463, 0.054193, -0.941204, 0.182951, 0.278797 -3464, 0.054193, -0.941204, 0.182951, 0.278797 -3465, 0.054193, -0.941204, 0.182951, 0.278797 -3466, 0.054193, -0.941204, 0.182951, 0.278797 -3467, 0.054193, -0.941204, 0.182951, 0.278797 -3468, 0.054193, -0.941204, 0.182951, 0.278797 -3469, 0.054193, -0.941204, 0.182951, 0.278797 -3470, 0.054193, -0.941204, 0.182951, 0.278797 -3471, 0.054193, -0.941204, 0.182951, 0.278797 -3472, 0.054193, -0.941204, 0.182951, 0.278797 -3473, 0.054193, -0.941204, 0.182951, 0.278797 -3474, 0.054193, -0.941204, 0.182951, 0.278797 -3475, 0.054193, -0.941204, 0.182951, 0.278797 -3476, 0.054193, -0.941204, 0.182951, 0.278797 -3477, 0.054193, -0.941204, 0.182951, 0.278797 -3478, 0.054193, -0.941204, 0.182951, 0.278797 -3479, 0.054193, -0.941204, 0.182951, 0.278797 -3480, 0.054193, -0.941204, 0.182951, 0.278797 -3481, 0.054193, -0.941204, 0.182951, 0.278797 -3482, 0.054193, -0.941204, 0.182951, 0.278797 -3483, 0.054193, -0.941204, 0.182951, 0.278797 -3484, 0.054193, -0.941204, 0.182951, 0.278797 -3485, 0.054193, -0.941204, 0.182951, 0.278797 -3486, 0.054193, -0.941204, 0.182951, 0.278797 -3487, 0.054193, -0.941204, 0.182951, 0.278797 -3488, 0.054193, -0.941204, 0.182951, 0.278797 -3489, 0.054193, -0.941204, 0.182951, 0.278797 -3490, 0.054193, -0.941204, 0.182951, 0.278797 -3491, 0.054193, -0.941204, 0.182951, 0.278797 -3492, 0.054193, -0.941204, 0.182951, 0.278797 -3493, 0.054193, -0.941204, 0.182951, 0.278797 -3494, 0.054193, -0.941204, 0.182951, 0.278797 -3495, 0.054193, -0.941204, 0.182951, 0.278797 -3496, 0.054193, -0.941204, 0.182951, 0.278797 -3497, 0.054193, -0.941204, 0.182951, 0.278797 -3498, 0.054193, -0.941204, 0.182951, 0.278797 -3499, 0.054193, -0.941204, 0.182951, 0.278797 -3500, 0.044943, -0.951251, 0.167731, 0.254887 -3501, 0.044943, -0.951251, 0.167731, 0.254887 -3502, 0.044943, -0.951251, 0.167731, 0.254887 -3503, 0.044943, -0.951251, 0.167731, 0.254887 -3504, 0.044943, -0.951251, 0.167731, 0.254887 -3505, 0.044943, -0.951251, 0.167731, 0.254887 -3506, 0.044943, -0.951251, 0.167731, 0.254887 -3507, 0.044943, -0.951251, 0.167731, 0.254887 -3508, 0.044943, -0.951251, 0.167731, 0.254887 -3509, 0.044943, -0.951251, 0.167731, 0.254887 -3510, 0.044943, -0.951251, 0.167731, 0.254887 -3511, 0.044943, -0.951251, 0.167731, 0.254887 -3512, 0.044943, -0.951251, 0.167731, 0.254887 -3513, 0.044943, -0.951251, 0.167731, 0.254887 -3514, 0.044943, -0.951251, 0.167731, 0.254887 -3515, 0.044943, -0.951251, 0.167731, 0.254887 -3516, 0.044943, -0.951251, 0.167731, 0.254887 -3517, 0.044943, -0.951251, 0.167731, 0.254887 -3518, 0.044943, -0.951251, 0.167731, 0.254887 -3519, 0.044943, -0.951251, 0.167731, 0.254887 -3520, 0.044943, -0.951251, 0.167731, 0.254887 -3521, 0.044943, -0.951251, 0.167731, 0.254887 -3522, 0.044943, -0.951251, 0.167731, 0.254887 -3523, 0.044943, -0.951251, 0.167731, 0.254887 -3524, 0.044943, -0.951251, 0.167731, 0.254887 -3525, 0.044943, -0.951251, 0.167731, 0.254887 -3526, 0.044943, -0.951251, 0.167731, 0.254887 -3527, 0.044943, -0.951251, 0.167731, 0.254887 -3528, 0.044943, -0.951251, 0.167731, 0.254887 -3529, 0.044943, -0.951251, 0.167731, 0.254887 -3530, 0.044943, -0.951251, 0.167731, 0.254887 -3531, 0.044943, -0.951251, 0.167731, 0.254887 -3532, 0.044943, -0.951251, 0.167731, 0.254887 -3533, 0.044943, -0.951251, 0.167731, 0.254887 -3534, 0.044943, -0.951251, 0.167731, 0.254887 -3535, 0.044943, -0.951251, 0.167731, 0.254887 -3536, 0.044943, -0.951251, 0.167731, 0.254887 -3537, 0.044943, -0.951251, 0.167731, 0.254887 -3538, 0.044943, -0.951251, 0.167731, 0.254887 -3539, 0.044943, -0.951251, 0.167731, 0.254887 -3540, 0.044943, -0.951251, 0.167731, 0.254887 -3541, 0.044943, -0.951251, 0.167731, 0.254887 -3542, 0.044943, -0.951251, 0.167731, 0.254887 -3543, 0.044943, -0.951251, 0.167731, 0.254887 -3544, 0.044943, -0.951251, 0.167731, 0.254887 -3545, 0.044943, -0.951251, 0.167731, 0.254887 -3546, 0.044943, -0.951251, 0.167731, 0.254887 -3547, 0.044943, -0.951251, 0.167731, 0.254887 -3548, 0.044943, -0.951251, 0.167731, 0.254887 -3549, 0.044943, -0.951251, 0.167731, 0.254887 -3550, 0.044943, -0.951251, 0.167731, 0.254887 -3551, 0.044943, -0.951251, 0.167731, 0.254887 -3552, 0.044943, -0.951251, 0.167731, 0.254887 -3553, 0.044943, -0.951251, 0.167731, 0.254887 -3554, 0.044943, -0.951251, 0.167731, 0.254887 -3555, 0.044943, -0.951251, 0.167731, 0.254887 -3556, 0.044943, -0.951251, 0.167731, 0.254887 -3557, 0.044943, -0.951251, 0.167731, 0.254887 -3558, 0.044943, -0.951251, 0.167731, 0.254887 -3559, 0.044943, -0.951251, 0.167731, 0.254887 -3560, 0.044943, -0.951251, 0.167731, 0.254887 -3561, 0.044943, -0.951251, 0.167731, 0.254887 -3562, 0.044943, -0.951251, 0.167731, 0.254887 -3563, 0.044943, -0.951251, 0.167731, 0.254887 -3564, 0.044943, -0.951251, 0.167731, 0.254887 -3565, 0.044943, -0.951251, 0.167731, 0.254887 -3566, 0.044943, -0.951251, 0.167731, 0.254887 -3567, 0.044943, -0.951251, 0.167731, 0.254887 -3568, 0.044943, -0.951251, 0.167731, 0.254887 -3569, 0.044943, -0.951251, 0.167731, 0.254887 -3570, 0.044943, -0.951251, 0.167731, 0.254887 -3571, 0.044943, -0.951251, 0.167731, 0.254887 -3572, 0.044943, -0.951251, 0.167731, 0.254887 -3573, 0.044943, -0.951251, 0.167731, 0.254887 -3574, 0.044943, -0.951251, 0.167731, 0.254887 -3575, 0.044943, -0.951251, 0.167731, 0.254887 -3576, 0.044943, -0.951251, 0.167731, 0.254887 -3577, 0.044943, -0.951251, 0.167731, 0.254887 -3578, 0.044943, -0.951251, 0.167731, 0.254887 -3579, 0.044943, -0.951251, 0.167731, 0.254887 -3580, 0.044943, -0.951251, 0.167731, 0.254887 -3581, 0.044943, -0.951251, 0.167731, 0.254887 -3582, 0.044943, -0.951251, 0.167731, 0.254887 -3583, 0.044943, -0.951251, 0.167731, 0.254887 -3584, 0.044943, -0.951251, 0.167731, 0.254887 -3585, 0.044943, -0.951251, 0.167731, 0.254887 -3586, 0.044943, -0.951251, 0.167731, 0.254887 -3587, 0.044943, -0.951251, 0.167731, 0.254887 -3588, 0.044943, -0.951251, 0.167731, 0.254887 -3589, 0.044943, -0.951251, 0.167731, 0.254887 -3590, 0.044943, -0.951251, 0.167731, 0.254887 -3591, 0.044943, -0.951251, 0.167731, 0.254887 -3592, 0.044943, -0.951251, 0.167731, 0.254887 -3593, 0.044943, -0.951251, 0.167731, 0.254887 -3594, 0.044943, -0.951251, 0.167731, 0.254887 -3595, 0.044943, -0.951251, 0.167731, 0.254887 -3596, 0.044943, -0.951251, 0.167731, 0.254887 -3597, 0.044943, -0.951251, 0.167731, 0.254887 -3598, 0.044943, -0.951251, 0.167731, 0.254887 -3599, 0.044943, -0.951251, 0.167731, 0.254887 -3600, 0.036519, -0.960398, 0.152112, 0.230571 -3601, 0.036519, -0.960398, 0.152112, 0.230571 -3602, 0.036519, -0.960398, 0.152112, 0.230571 -3603, 0.036519, -0.960398, 0.152112, 0.230571 -3604, 0.036519, -0.960398, 0.152112, 0.230571 -3605, 0.036519, -0.960398, 0.152112, 0.230571 -3606, 0.036519, -0.960398, 0.152112, 0.230571 -3607, 0.036519, -0.960398, 0.152112, 0.230571 -3608, 0.036519, -0.960398, 0.152112, 0.230571 -3609, 0.036519, -0.960398, 0.152112, 0.230571 -3610, 0.036519, -0.960398, 0.152112, 0.230571 -3611, 0.036519, -0.960398, 0.152112, 0.230571 -3612, 0.036519, -0.960398, 0.152112, 0.230571 -3613, 0.036519, -0.960398, 0.152112, 0.230571 -3614, 0.036519, -0.960398, 0.152112, 0.230571 -3615, 0.036519, -0.960398, 0.152112, 0.230571 -3616, 0.036519, -0.960398, 0.152112, 0.230571 -3617, 0.036519, -0.960398, 0.152112, 0.230571 -3618, 0.036519, -0.960398, 0.152112, 0.230571 -3619, 0.036519, -0.960398, 0.152112, 0.230571 -3620, 0.036519, -0.960398, 0.152112, 0.230571 -3621, 0.036519, -0.960398, 0.152112, 0.230571 -3622, 0.036519, -0.960398, 0.152112, 0.230571 -3623, 0.036519, -0.960398, 0.152112, 0.230571 -3624, 0.036519, -0.960398, 0.152112, 0.230571 -3625, 0.036519, -0.960398, 0.152112, 0.230571 -3626, 0.036519, -0.960398, 0.152112, 0.230571 -3627, 0.036519, -0.960398, 0.152112, 0.230571 -3628, 0.036519, -0.960398, 0.152112, 0.230571 -3629, 0.036519, -0.960398, 0.152112, 0.230571 -3630, 0.036519, -0.960398, 0.152112, 0.230571 -3631, 0.036519, -0.960398, 0.152112, 0.230571 -3632, 0.036519, -0.960398, 0.152112, 0.230571 -3633, 0.036519, -0.960398, 0.152112, 0.230571 -3634, 0.036519, -0.960398, 0.152112, 0.230571 -3635, 0.036519, -0.960398, 0.152112, 0.230571 -3636, 0.036519, -0.960398, 0.152112, 0.230571 -3637, 0.036519, -0.960398, 0.152112, 0.230571 -3638, 0.036519, -0.960398, 0.152112, 0.230571 -3639, 0.036519, -0.960398, 0.152112, 0.230571 -3640, 0.036519, -0.960398, 0.152112, 0.230571 -3641, 0.036519, -0.960398, 0.152112, 0.230571 -3642, 0.036519, -0.960398, 0.152112, 0.230571 -3643, 0.036519, -0.960398, 0.152112, 0.230571 -3644, 0.036519, -0.960398, 0.152112, 0.230571 -3645, 0.036519, -0.960398, 0.152112, 0.230571 -3646, 0.036519, -0.960398, 0.152112, 0.230571 -3647, 0.036519, -0.960398, 0.152112, 0.230571 -3648, 0.036519, -0.960398, 0.152112, 0.230571 -3649, 0.036519, -0.960398, 0.152112, 0.230571 -3650, 0.036519, -0.960398, 0.152112, 0.230571 -3651, 0.036519, -0.960398, 0.152112, 0.230571 -3652, 0.036519, -0.960398, 0.152112, 0.230571 -3653, 0.036519, -0.960398, 0.152112, 0.230571 -3654, 0.036519, -0.960398, 0.152112, 0.230571 -3655, 0.036519, -0.960398, 0.152112, 0.230571 -3656, 0.036519, -0.960398, 0.152112, 0.230571 -3657, 0.036519, -0.960398, 0.152112, 0.230571 -3658, 0.036519, -0.960398, 0.152112, 0.230571 -3659, 0.036519, -0.960398, 0.152112, 0.230571 -3660, 0.036519, -0.960398, 0.152112, 0.230571 -3661, 0.036519, -0.960398, 0.152112, 0.230571 -3662, 0.036519, -0.960398, 0.152112, 0.230571 -3663, 0.036519, -0.960398, 0.152112, 0.230571 -3664, 0.036519, -0.960398, 0.152112, 0.230571 -3665, 0.036519, -0.960398, 0.152112, 0.230571 -3666, 0.036519, -0.960398, 0.152112, 0.230571 -3667, 0.036519, -0.960398, 0.152112, 0.230571 -3668, 0.036519, -0.960398, 0.152112, 0.230571 -3669, 0.036519, -0.960398, 0.152112, 0.230571 -3670, 0.036519, -0.960398, 0.152112, 0.230571 -3671, 0.036519, -0.960398, 0.152112, 0.230571 -3672, 0.036519, -0.960398, 0.152112, 0.230571 -3673, 0.036519, -0.960398, 0.152112, 0.230571 -3674, 0.036519, -0.960398, 0.152112, 0.230571 -3675, 0.036519, -0.960398, 0.152112, 0.230571 -3676, 0.036519, -0.960398, 0.152112, 0.230571 -3677, 0.036519, -0.960398, 0.152112, 0.230571 -3678, 0.036519, -0.960398, 0.152112, 0.230571 -3679, 0.036519, -0.960398, 0.152112, 0.230571 -3680, 0.036519, -0.960398, 0.152112, 0.230571 -3681, 0.036519, -0.960398, 0.152112, 0.230571 -3682, 0.036519, -0.960398, 0.152112, 0.230571 -3683, 0.036519, -0.960398, 0.152112, 0.230571 -3684, 0.036519, -0.960398, 0.152112, 0.230571 -3685, 0.036519, -0.960398, 0.152112, 0.230571 -3686, 0.036519, -0.960398, 0.152112, 0.230571 -3687, 0.036519, -0.960398, 0.152112, 0.230571 -3688, 0.036519, -0.960398, 0.152112, 0.230571 -3689, 0.036519, -0.960398, 0.152112, 0.230571 -3690, 0.036519, -0.960398, 0.152112, 0.230571 -3691, 0.036519, -0.960398, 0.152112, 0.230571 -3692, 0.036519, -0.960398, 0.152112, 0.230571 -3693, 0.036519, -0.960398, 0.152112, 0.230571 -3694, 0.036519, -0.960398, 0.152112, 0.230571 -3695, 0.036519, -0.960398, 0.152112, 0.230571 -3696, 0.036519, -0.960398, 0.152112, 0.230571 -3697, 0.036519, -0.960398, 0.152112, 0.230571 -3698, 0.036519, -0.960398, 0.152112, 0.230571 -3699, 0.036519, -0.960398, 0.152112, 0.230571 -3700, 0.028936, -0.968628, 0.136132, 0.205888 -3701, 0.028936, -0.968628, 0.136132, 0.205888 -3702, 0.028936, -0.968628, 0.136132, 0.205888 -3703, 0.028936, -0.968628, 0.136132, 0.205888 -3704, 0.028936, -0.968628, 0.136132, 0.205888 -3705, 0.028936, -0.968628, 0.136132, 0.205888 -3706, 0.028936, -0.968628, 0.136132, 0.205888 -3707, 0.028936, -0.968628, 0.136132, 0.205888 -3708, 0.028936, -0.968628, 0.136132, 0.205888 -3709, 0.028936, -0.968628, 0.136132, 0.205888 -3710, 0.028936, -0.968628, 0.136132, 0.205888 -3711, 0.028936, -0.968628, 0.136132, 0.205888 -3712, 0.028936, -0.968628, 0.136132, 0.205888 -3713, 0.028936, -0.968628, 0.136132, 0.205888 -3714, 0.028936, -0.968628, 0.136132, 0.205888 -3715, 0.028936, -0.968628, 0.136132, 0.205888 -3716, 0.028936, -0.968628, 0.136132, 0.205888 -3717, 0.028936, -0.968628, 0.136132, 0.205888 -3718, 0.028936, -0.968628, 0.136132, 0.205888 -3719, 0.028936, -0.968628, 0.136132, 0.205888 -3720, 0.028936, -0.968628, 0.136132, 0.205888 -3721, 0.028936, -0.968628, 0.136132, 0.205888 -3722, 0.028936, -0.968628, 0.136132, 0.205888 -3723, 0.028936, -0.968628, 0.136132, 0.205888 -3724, 0.028936, -0.968628, 0.136132, 0.205888 -3725, 0.028936, -0.968628, 0.136132, 0.205888 -3726, 0.028936, -0.968628, 0.136132, 0.205888 -3727, 0.028936, -0.968628, 0.136132, 0.205888 -3728, 0.028936, -0.968628, 0.136132, 0.205888 -3729, 0.028936, -0.968628, 0.136132, 0.205888 -3730, 0.028936, -0.968628, 0.136132, 0.205888 -3731, 0.028936, -0.968628, 0.136132, 0.205888 -3732, 0.028936, -0.968628, 0.136132, 0.205888 -3733, 0.028936, -0.968628, 0.136132, 0.205888 -3734, 0.028936, -0.968628, 0.136132, 0.205888 -3735, 0.028936, -0.968628, 0.136132, 0.205888 -3736, 0.028936, -0.968628, 0.136132, 0.205888 -3737, 0.028936, -0.968628, 0.136132, 0.205888 -3738, 0.028936, -0.968628, 0.136132, 0.205888 -3739, 0.028936, -0.968628, 0.136132, 0.205888 -3740, 0.028936, -0.968628, 0.136132, 0.205888 -3741, 0.028936, -0.968628, 0.136132, 0.205888 -3742, 0.028936, -0.968628, 0.136132, 0.205888 -3743, 0.028936, -0.968628, 0.136132, 0.205888 -3744, 0.028936, -0.968628, 0.136132, 0.205888 -3745, 0.028936, -0.968628, 0.136132, 0.205888 -3746, 0.028936, -0.968628, 0.136132, 0.205888 -3747, 0.028936, -0.968628, 0.136132, 0.205888 -3748, 0.028936, -0.968628, 0.136132, 0.205888 -3749, 0.028936, -0.968628, 0.136132, 0.205888 -3750, 0.028936, -0.968628, 0.136132, 0.205888 -3751, 0.028936, -0.968628, 0.136132, 0.205888 -3752, 0.028936, -0.968628, 0.136132, 0.205888 -3753, 0.028936, -0.968628, 0.136132, 0.205888 -3754, 0.028936, -0.968628, 0.136132, 0.205888 -3755, 0.028936, -0.968628, 0.136132, 0.205888 -3756, 0.028936, -0.968628, 0.136132, 0.205888 -3757, 0.028936, -0.968628, 0.136132, 0.205888 -3758, 0.028936, -0.968628, 0.136132, 0.205888 -3759, 0.028936, -0.968628, 0.136132, 0.205888 -3760, 0.028936, -0.968628, 0.136132, 0.205888 -3761, 0.028936, -0.968628, 0.136132, 0.205888 -3762, 0.028936, -0.968628, 0.136132, 0.205888 -3763, 0.028936, -0.968628, 0.136132, 0.205888 -3764, 0.028936, -0.968628, 0.136132, 0.205888 -3765, 0.028936, -0.968628, 0.136132, 0.205888 -3766, 0.028936, -0.968628, 0.136132, 0.205888 -3767, 0.028936, -0.968628, 0.136132, 0.205888 -3768, 0.028936, -0.968628, 0.136132, 0.205888 -3769, 0.028936, -0.968628, 0.136132, 0.205888 -3770, 0.028936, -0.968628, 0.136132, 0.205888 -3771, 0.028936, -0.968628, 0.136132, 0.205888 -3772, 0.028936, -0.968628, 0.136132, 0.205888 -3773, 0.028936, -0.968628, 0.136132, 0.205888 -3774, 0.028936, -0.968628, 0.136132, 0.205888 -3775, 0.028936, -0.968628, 0.136132, 0.205888 -3776, 0.028936, -0.968628, 0.136132, 0.205888 -3777, 0.028936, -0.968628, 0.136132, 0.205888 -3778, 0.028936, -0.968628, 0.136132, 0.205888 -3779, 0.028936, -0.968628, 0.136132, 0.205888 -3780, 0.028936, -0.968628, 0.136132, 0.205888 -3781, 0.028936, -0.968628, 0.136132, 0.205888 -3782, 0.028936, -0.968628, 0.136132, 0.205888 -3783, 0.028936, -0.968628, 0.136132, 0.205888 -3784, 0.028936, -0.968628, 0.136132, 0.205888 -3785, 0.028936, -0.968628, 0.136132, 0.205888 -3786, 0.028936, -0.968628, 0.136132, 0.205888 -3787, 0.028936, -0.968628, 0.136132, 0.205888 -3788, 0.028936, -0.968628, 0.136132, 0.205888 -3789, 0.028936, -0.968628, 0.136132, 0.205888 -3790, 0.028936, -0.968628, 0.136132, 0.205888 -3791, 0.028936, -0.968628, 0.136132, 0.205888 -3792, 0.028936, -0.968628, 0.136132, 0.205888 -3793, 0.028936, -0.968628, 0.136132, 0.205888 -3794, 0.028936, -0.968628, 0.136132, 0.205888 -3795, 0.028936, -0.968628, 0.136132, 0.205888 -3796, 0.028936, -0.968628, 0.136132, 0.205888 -3797, 0.028936, -0.968628, 0.136132, 0.205888 -3798, 0.028936, -0.968628, 0.136132, 0.205888 -3799, 0.028936, -0.968628, 0.136132, 0.205888 -3800, 0.022209, -0.975926, 0.119829, 0.180877 -3801, 0.022209, -0.975926, 0.119829, 0.180877 -3802, 0.022209, -0.975926, 0.119829, 0.180877 -3803, 0.022209, -0.975926, 0.119829, 0.180877 -3804, 0.022209, -0.975926, 0.119829, 0.180877 -3805, 0.022209, -0.975926, 0.119829, 0.180877 -3806, 0.022209, -0.975926, 0.119829, 0.180877 -3807, 0.022209, -0.975926, 0.119829, 0.180877 -3808, 0.022209, -0.975926, 0.119829, 0.180877 -3809, 0.022209, -0.975926, 0.119829, 0.180877 -3810, 0.022209, -0.975926, 0.119829, 0.180877 -3811, 0.022209, -0.975926, 0.119829, 0.180877 -3812, 0.022209, -0.975926, 0.119829, 0.180877 -3813, 0.022209, -0.975926, 0.119829, 0.180877 -3814, 0.022209, -0.975926, 0.119829, 0.180877 -3815, 0.022209, -0.975926, 0.119829, 0.180877 -3816, 0.022209, -0.975926, 0.119829, 0.180877 -3817, 0.022209, -0.975926, 0.119829, 0.180877 -3818, 0.022209, -0.975926, 0.119829, 0.180877 -3819, 0.022209, -0.975926, 0.119829, 0.180877 -3820, 0.022209, -0.975926, 0.119829, 0.180877 -3821, 0.022209, -0.975926, 0.119829, 0.180877 -3822, 0.022209, -0.975926, 0.119829, 0.180877 -3823, 0.022209, -0.975926, 0.119829, 0.180877 -3824, 0.022209, -0.975926, 0.119829, 0.180877 -3825, 0.022209, -0.975926, 0.119829, 0.180877 -3826, 0.022209, -0.975926, 0.119829, 0.180877 -3827, 0.022209, -0.975926, 0.119829, 0.180877 -3828, 0.022209, -0.975926, 0.119829, 0.180877 -3829, 0.022209, -0.975926, 0.119829, 0.180877 -3830, 0.022209, -0.975926, 0.119829, 0.180877 -3831, 0.022209, -0.975926, 0.119829, 0.180877 -3832, 0.022209, -0.975926, 0.119829, 0.180877 -3833, 0.022209, -0.975926, 0.119829, 0.180877 -3834, 0.022209, -0.975926, 0.119829, 0.180877 -3835, 0.022209, -0.975926, 0.119829, 0.180877 -3836, 0.022209, -0.975926, 0.119829, 0.180877 -3837, 0.022209, -0.975926, 0.119829, 0.180877 -3838, 0.022209, -0.975926, 0.119829, 0.180877 -3839, 0.022209, -0.975926, 0.119829, 0.180877 -3840, 0.022209, -0.975926, 0.119829, 0.180877 -3841, 0.022209, -0.975926, 0.119829, 0.180877 -3842, 0.022209, -0.975926, 0.119829, 0.180877 -3843, 0.022209, -0.975926, 0.119829, 0.180877 -3844, 0.022209, -0.975926, 0.119829, 0.180877 -3845, 0.022209, -0.975926, 0.119829, 0.180877 -3846, 0.022209, -0.975926, 0.119829, 0.180877 -3847, 0.022209, -0.975926, 0.119829, 0.180877 -3848, 0.022209, -0.975926, 0.119829, 0.180877 -3849, 0.022209, -0.975926, 0.119829, 0.180877 -3850, 0.022209, -0.975926, 0.119829, 0.180877 -3851, 0.022209, -0.975926, 0.119829, 0.180877 -3852, 0.022209, -0.975926, 0.119829, 0.180877 -3853, 0.022209, -0.975926, 0.119829, 0.180877 -3854, 0.022209, -0.975926, 0.119829, 0.180877 -3855, 0.022209, -0.975926, 0.119829, 0.180877 -3856, 0.022209, -0.975926, 0.119829, 0.180877 -3857, 0.022209, -0.975926, 0.119829, 0.180877 -3858, 0.022209, -0.975926, 0.119829, 0.180877 -3859, 0.022209, -0.975926, 0.119829, 0.180877 -3860, 0.022209, -0.975926, 0.119829, 0.180877 -3861, 0.022209, -0.975926, 0.119829, 0.180877 -3862, 0.022209, -0.975926, 0.119829, 0.180877 -3863, 0.022209, -0.975926, 0.119829, 0.180877 -3864, 0.022209, -0.975926, 0.119829, 0.180877 -3865, 0.022209, -0.975926, 0.119829, 0.180877 -3866, 0.022209, -0.975926, 0.119829, 0.180877 -3867, 0.022209, -0.975926, 0.119829, 0.180877 -3868, 0.022209, -0.975926, 0.119829, 0.180877 -3869, 0.022209, -0.975926, 0.119829, 0.180877 -3870, 0.022209, -0.975926, 0.119829, 0.180877 -3871, 0.022209, -0.975926, 0.119829, 0.180877 -3872, 0.022209, -0.975926, 0.119829, 0.180877 -3873, 0.022209, -0.975926, 0.119829, 0.180877 -3874, 0.022209, -0.975926, 0.119829, 0.180877 -3875, 0.022209, -0.975926, 0.119829, 0.180877 -3876, 0.022209, -0.975926, 0.119829, 0.180877 -3877, 0.022209, -0.975926, 0.119829, 0.180877 -3878, 0.022209, -0.975926, 0.119829, 0.180877 -3879, 0.022209, -0.975926, 0.119829, 0.180877 -3880, 0.022209, -0.975926, 0.119829, 0.180877 -3881, 0.022209, -0.975926, 0.119829, 0.180877 -3882, 0.022209, -0.975926, 0.119829, 0.180877 -3883, 0.022209, -0.975926, 0.119829, 0.180877 -3884, 0.022209, -0.975926, 0.119829, 0.180877 -3885, 0.022209, -0.975926, 0.119829, 0.180877 -3886, 0.022209, -0.975926, 0.119829, 0.180877 -3887, 0.022209, -0.975926, 0.119829, 0.180877 -3888, 0.022209, -0.975926, 0.119829, 0.180877 -3889, 0.022209, -0.975926, 0.119829, 0.180877 -3890, 0.022209, -0.975926, 0.119829, 0.180877 -3891, 0.022209, -0.975926, 0.119829, 0.180877 -3892, 0.022209, -0.975926, 0.119829, 0.180877 -3893, 0.022209, -0.975926, 0.119829, 0.180877 -3894, 0.022209, -0.975926, 0.119829, 0.180877 -3895, 0.022209, -0.975926, 0.119829, 0.180877 -3896, 0.022209, -0.975926, 0.119829, 0.180877 -3897, 0.022209, -0.975926, 0.119829, 0.180877 -3898, 0.022209, -0.975926, 0.119829, 0.180877 -3899, 0.022209, -0.975926, 0.119829, 0.180877 -3900, 0.016352, -0.982278, 0.103242, 0.155578 -3901, 0.016352, -0.982278, 0.103242, 0.155578 -3902, 0.016352, -0.982278, 0.103242, 0.155578 -3903, 0.016352, -0.982278, 0.103242, 0.155578 -3904, 0.016352, -0.982278, 0.103242, 0.155578 -3905, 0.016352, -0.982278, 0.103242, 0.155578 -3906, 0.016352, -0.982278, 0.103242, 0.155578 -3907, 0.016352, -0.982278, 0.103242, 0.155578 -3908, 0.016352, -0.982278, 0.103242, 0.155578 -3909, 0.016352, -0.982278, 0.103242, 0.155578 -3910, 0.016352, -0.982278, 0.103242, 0.155578 -3911, 0.016352, -0.982278, 0.103242, 0.155578 -3912, 0.016352, -0.982278, 0.103242, 0.155578 -3913, 0.016352, -0.982278, 0.103242, 0.155578 -3914, 0.016352, -0.982278, 0.103242, 0.155578 -3915, 0.016352, -0.982278, 0.103242, 0.155578 -3916, 0.016352, -0.982278, 0.103242, 0.155578 -3917, 0.016352, -0.982278, 0.103242, 0.155578 -3918, 0.016352, -0.982278, 0.103242, 0.155578 -3919, 0.016352, -0.982278, 0.103242, 0.155578 -3920, 0.016352, -0.982278, 0.103242, 0.155578 -3921, 0.016352, -0.982278, 0.103242, 0.155578 -3922, 0.016352, -0.982278, 0.103242, 0.155578 -3923, 0.016352, -0.982278, 0.103242, 0.155578 -3924, 0.016352, -0.982278, 0.103242, 0.155578 -3925, 0.016352, -0.982278, 0.103242, 0.155578 -3926, 0.016352, -0.982278, 0.103242, 0.155578 -3927, 0.016352, -0.982278, 0.103242, 0.155578 -3928, 0.016352, -0.982278, 0.103242, 0.155578 -3929, 0.016352, -0.982278, 0.103242, 0.155578 -3930, 0.016352, -0.982278, 0.103242, 0.155578 -3931, 0.016352, -0.982278, 0.103242, 0.155578 -3932, 0.016352, -0.982278, 0.103242, 0.155578 -3933, 0.016352, -0.982278, 0.103242, 0.155578 -3934, 0.016352, -0.982278, 0.103242, 0.155578 -3935, 0.016352, -0.982278, 0.103242, 0.155578 -3936, 0.016352, -0.982278, 0.103242, 0.155578 -3937, 0.016352, -0.982278, 0.103242, 0.155578 -3938, 0.016352, -0.982278, 0.103242, 0.155578 -3939, 0.016352, -0.982278, 0.103242, 0.155578 -3940, 0.016352, -0.982278, 0.103242, 0.155578 -3941, 0.016352, -0.982278, 0.103242, 0.155578 -3942, 0.016352, -0.982278, 0.103242, 0.155578 -3943, 0.016352, -0.982278, 0.103242, 0.155578 -3944, 0.016352, -0.982278, 0.103242, 0.155578 -3945, 0.016352, -0.982278, 0.103242, 0.155578 -3946, 0.016352, -0.982278, 0.103242, 0.155578 -3947, 0.016352, -0.982278, 0.103242, 0.155578 -3948, 0.016352, -0.982278, 0.103242, 0.155578 -3949, 0.016352, -0.982278, 0.103242, 0.155578 -3950, 0.016352, -0.982278, 0.103242, 0.155578 -3951, 0.016352, -0.982278, 0.103242, 0.155578 -3952, 0.016352, -0.982278, 0.103242, 0.155578 -3953, 0.016352, -0.982278, 0.103242, 0.155578 -3954, 0.016352, -0.982278, 0.103242, 0.155578 -3955, 0.016352, -0.982278, 0.103242, 0.155578 -3956, 0.016352, -0.982278, 0.103242, 0.155578 -3957, 0.016352, -0.982278, 0.103242, 0.155578 -3958, 0.016352, -0.982278, 0.103242, 0.155578 -3959, 0.016352, -0.982278, 0.103242, 0.155578 -3960, 0.016352, -0.982278, 0.103242, 0.155578 -3961, 0.016352, -0.982278, 0.103242, 0.155578 -3962, 0.016352, -0.982278, 0.103242, 0.155578 -3963, 0.016352, -0.982278, 0.103242, 0.155578 -3964, 0.016352, -0.982278, 0.103242, 0.155578 -3965, 0.016352, -0.982278, 0.103242, 0.155578 -3966, 0.016352, -0.982278, 0.103242, 0.155578 -3967, 0.016352, -0.982278, 0.103242, 0.155578 -3968, 0.016352, -0.982278, 0.103242, 0.155578 -3969, 0.016352, -0.982278, 0.103242, 0.155578 -3970, 0.016352, -0.982278, 0.103242, 0.155578 -3971, 0.016352, -0.982278, 0.103242, 0.155578 -3972, 0.016352, -0.982278, 0.103242, 0.155578 -3973, 0.016352, -0.982278, 0.103242, 0.155578 -3974, 0.016352, -0.982278, 0.103242, 0.155578 -3975, 0.016352, -0.982278, 0.103242, 0.155578 -3976, 0.016352, -0.982278, 0.103242, 0.155578 -3977, 0.016352, -0.982278, 0.103242, 0.155578 -3978, 0.016352, -0.982278, 0.103242, 0.155578 -3979, 0.016352, -0.982278, 0.103242, 0.155578 -3980, 0.016352, -0.982278, 0.103242, 0.155578 -3981, 0.016352, -0.982278, 0.103242, 0.155578 -3982, 0.016352, -0.982278, 0.103242, 0.155578 -3983, 0.016352, -0.982278, 0.103242, 0.155578 -3984, 0.016352, -0.982278, 0.103242, 0.155578 -3985, 0.016352, -0.982278, 0.103242, 0.155578 -3986, 0.016352, -0.982278, 0.103242, 0.155578 -3987, 0.016352, -0.982278, 0.103242, 0.155578 -3988, 0.016352, -0.982278, 0.103242, 0.155578 -3989, 0.016352, -0.982278, 0.103242, 0.155578 -3990, 0.016352, -0.982278, 0.103242, 0.155578 -3991, 0.016352, -0.982278, 0.103242, 0.155578 -3992, 0.016352, -0.982278, 0.103242, 0.155578 -3993, 0.016352, -0.982278, 0.103242, 0.155578 -3994, 0.016352, -0.982278, 0.103242, 0.155578 -3995, 0.016352, -0.982278, 0.103242, 0.155578 -3996, 0.016352, -0.982278, 0.103242, 0.155578 -3997, 0.016352, -0.982278, 0.103242, 0.155578 -3998, 0.016352, -0.982278, 0.103242, 0.155578 -3999, 0.016352, -0.982278, 0.103242, 0.155578 -4000, 0.011376, -0.987672, 0.086410, 0.130030 -4001, 0.011376, -0.987672, 0.086410, 0.130030 -4002, 0.011376, -0.987672, 0.086410, 0.130030 -4003, 0.011376, -0.987672, 0.086410, 0.130030 -4004, 0.011376, -0.987672, 0.086410, 0.130030 -4005, 0.011376, -0.987672, 0.086410, 0.130030 -4006, 0.011376, -0.987672, 0.086410, 0.130030 -4007, 0.011376, -0.987672, 0.086410, 0.130030 -4008, 0.011376, -0.987672, 0.086410, 0.130030 -4009, 0.011376, -0.987672, 0.086410, 0.130030 -4010, 0.011376, -0.987672, 0.086410, 0.130030 -4011, 0.011376, -0.987672, 0.086410, 0.130030 -4012, 0.011376, -0.987672, 0.086410, 0.130030 -4013, 0.011376, -0.987672, 0.086410, 0.130030 -4014, 0.011376, -0.987672, 0.086410, 0.130030 -4015, 0.011376, -0.987672, 0.086410, 0.130030 -4016, 0.011376, -0.987672, 0.086410, 0.130030 -4017, 0.011376, -0.987672, 0.086410, 0.130030 -4018, 0.011376, -0.987672, 0.086410, 0.130030 -4019, 0.011376, -0.987672, 0.086410, 0.130030 -4020, 0.011376, -0.987672, 0.086410, 0.130030 -4021, 0.011376, -0.987672, 0.086410, 0.130030 -4022, 0.011376, -0.987672, 0.086410, 0.130030 -4023, 0.011376, -0.987672, 0.086410, 0.130030 -4024, 0.011376, -0.987672, 0.086410, 0.130030 -4025, 0.011376, -0.987672, 0.086410, 0.130030 -4026, 0.011376, -0.987672, 0.086410, 0.130030 -4027, 0.011376, -0.987672, 0.086410, 0.130030 -4028, 0.011376, -0.987672, 0.086410, 0.130030 -4029, 0.011376, -0.987672, 0.086410, 0.130030 -4030, 0.011376, -0.987672, 0.086410, 0.130030 -4031, 0.011376, -0.987672, 0.086410, 0.130030 -4032, 0.011376, -0.987672, 0.086410, 0.130030 -4033, 0.011376, -0.987672, 0.086410, 0.130030 -4034, 0.011376, -0.987672, 0.086410, 0.130030 -4035, 0.011376, -0.987672, 0.086410, 0.130030 -4036, 0.011376, -0.987672, 0.086410, 0.130030 -4037, 0.011376, -0.987672, 0.086410, 0.130030 -4038, 0.011376, -0.987672, 0.086410, 0.130030 -4039, 0.011376, -0.987672, 0.086410, 0.130030 -4040, 0.011376, -0.987672, 0.086410, 0.130030 -4041, 0.011376, -0.987672, 0.086410, 0.130030 -4042, 0.011376, -0.987672, 0.086410, 0.130030 -4043, 0.011376, -0.987672, 0.086410, 0.130030 -4044, 0.011376, -0.987672, 0.086410, 0.130030 -4045, 0.011376, -0.987672, 0.086410, 0.130030 -4046, 0.011376, -0.987672, 0.086410, 0.130030 -4047, 0.011376, -0.987672, 0.086410, 0.130030 -4048, 0.011376, -0.987672, 0.086410, 0.130030 -4049, 0.011376, -0.987672, 0.086410, 0.130030 -4050, 0.011376, -0.987672, 0.086410, 0.130030 -4051, 0.011376, -0.987672, 0.086410, 0.130030 -4052, 0.011376, -0.987672, 0.086410, 0.130030 -4053, 0.011376, -0.987672, 0.086410, 0.130030 -4054, 0.011376, -0.987672, 0.086410, 0.130030 -4055, 0.011376, -0.987672, 0.086410, 0.130030 -4056, 0.011376, -0.987672, 0.086410, 0.130030 -4057, 0.011376, -0.987672, 0.086410, 0.130030 -4058, 0.011376, -0.987672, 0.086410, 0.130030 -4059, 0.011376, -0.987672, 0.086410, 0.130030 -4060, 0.011376, -0.987672, 0.086410, 0.130030 -4061, 0.011376, -0.987672, 0.086410, 0.130030 -4062, 0.011376, -0.987672, 0.086410, 0.130030 -4063, 0.011376, -0.987672, 0.086410, 0.130030 -4064, 0.011376, -0.987672, 0.086410, 0.130030 -4065, 0.011376, -0.987672, 0.086410, 0.130030 -4066, 0.011376, -0.987672, 0.086410, 0.130030 -4067, 0.011376, -0.987672, 0.086410, 0.130030 -4068, 0.011376, -0.987672, 0.086410, 0.130030 -4069, 0.011376, -0.987672, 0.086410, 0.130030 -4070, 0.011376, -0.987672, 0.086410, 0.130030 -4071, 0.011376, -0.987672, 0.086410, 0.130030 -4072, 0.011376, -0.987672, 0.086410, 0.130030 -4073, 0.011376, -0.987672, 0.086410, 0.130030 -4074, 0.011376, -0.987672, 0.086410, 0.130030 -4075, 0.011376, -0.987672, 0.086410, 0.130030 -4076, 0.011376, -0.987672, 0.086410, 0.130030 -4077, 0.011376, -0.987672, 0.086410, 0.130030 -4078, 0.011376, -0.987672, 0.086410, 0.130030 -4079, 0.011376, -0.987672, 0.086410, 0.130030 -4080, 0.011376, -0.987672, 0.086410, 0.130030 -4081, 0.011376, -0.987672, 0.086410, 0.130030 -4082, 0.011376, -0.987672, 0.086410, 0.130030 -4083, 0.011376, -0.987672, 0.086410, 0.130030 -4084, 0.011376, -0.987672, 0.086410, 0.130030 -4085, 0.011376, -0.987672, 0.086410, 0.130030 -4086, 0.011376, -0.987672, 0.086410, 0.130030 -4087, 0.011376, -0.987672, 0.086410, 0.130030 -4088, 0.011376, -0.987672, 0.086410, 0.130030 -4089, 0.011376, -0.987672, 0.086410, 0.130030 -4090, 0.011376, -0.987672, 0.086410, 0.130030 -4091, 0.011376, -0.987672, 0.086410, 0.130030 -4092, 0.011376, -0.987672, 0.086410, 0.130030 -4093, 0.011376, -0.987672, 0.086410, 0.130030 -4094, 0.011376, -0.987672, 0.086410, 0.130030 -4095, 0.011376, -0.987672, 0.086410, 0.130030 -4096, 0.011376, -0.987672, 0.086410, 0.130030 -4097, 0.011376, -0.987672, 0.086410, 0.130030 -4098, 0.011376, -0.987672, 0.086410, 0.130030 -4099, 0.011376, -0.987672, 0.086410, 0.130030 -4100, 0.007292, -0.992099, 0.069374, 0.104274 -4101, 0.007292, -0.992099, 0.069374, 0.104274 -4102, 0.007292, -0.992099, 0.069374, 0.104274 -4103, 0.007292, -0.992099, 0.069374, 0.104274 -4104, 0.007292, -0.992099, 0.069374, 0.104274 -4105, 0.007292, -0.992099, 0.069374, 0.104274 -4106, 0.007292, -0.992099, 0.069374, 0.104274 -4107, 0.007292, -0.992099, 0.069374, 0.104274 -4108, 0.007292, -0.992099, 0.069374, 0.104274 -4109, 0.007292, -0.992099, 0.069374, 0.104274 -4110, 0.007292, -0.992099, 0.069374, 0.104274 -4111, 0.007292, -0.992099, 0.069374, 0.104274 -4112, 0.007292, -0.992099, 0.069374, 0.104274 -4113, 0.007292, -0.992099, 0.069374, 0.104274 -4114, 0.007292, -0.992099, 0.069374, 0.104274 -4115, 0.007292, -0.992099, 0.069374, 0.104274 -4116, 0.007292, -0.992099, 0.069374, 0.104274 -4117, 0.007292, -0.992099, 0.069374, 0.104274 -4118, 0.007292, -0.992099, 0.069374, 0.104274 -4119, 0.007292, -0.992099, 0.069374, 0.104274 -4120, 0.007292, -0.992099, 0.069374, 0.104274 -4121, 0.007292, -0.992099, 0.069374, 0.104274 -4122, 0.007292, -0.992099, 0.069374, 0.104274 -4123, 0.007292, -0.992099, 0.069374, 0.104274 -4124, 0.007292, -0.992099, 0.069374, 0.104274 -4125, 0.007292, -0.992099, 0.069374, 0.104274 -4126, 0.007292, -0.992099, 0.069374, 0.104274 -4127, 0.007292, -0.992099, 0.069374, 0.104274 -4128, 0.007292, -0.992099, 0.069374, 0.104274 -4129, 0.007292, -0.992099, 0.069374, 0.104274 -4130, 0.007292, -0.992099, 0.069374, 0.104274 -4131, 0.007292, -0.992099, 0.069374, 0.104274 -4132, 0.007292, -0.992099, 0.069374, 0.104274 -4133, 0.007292, -0.992099, 0.069374, 0.104274 -4134, 0.007292, -0.992099, 0.069374, 0.104274 -4135, 0.007292, -0.992099, 0.069374, 0.104274 -4136, 0.007292, -0.992099, 0.069374, 0.104274 -4137, 0.007292, -0.992099, 0.069374, 0.104274 -4138, 0.007292, -0.992099, 0.069374, 0.104274 -4139, 0.007292, -0.992099, 0.069374, 0.104274 -4140, 0.007292, -0.992099, 0.069374, 0.104274 -4141, 0.007292, -0.992099, 0.069374, 0.104274 -4142, 0.007292, -0.992099, 0.069374, 0.104274 -4143, 0.007292, -0.992099, 0.069374, 0.104274 -4144, 0.007292, -0.992099, 0.069374, 0.104274 -4145, 0.007292, -0.992099, 0.069374, 0.104274 -4146, 0.007292, -0.992099, 0.069374, 0.104274 -4147, 0.007292, -0.992099, 0.069374, 0.104274 -4148, 0.007292, -0.992099, 0.069374, 0.104274 -4149, 0.007292, -0.992099, 0.069374, 0.104274 -4150, 0.007292, -0.992099, 0.069374, 0.104274 -4151, 0.007292, -0.992099, 0.069374, 0.104274 -4152, 0.007292, -0.992099, 0.069374, 0.104274 -4153, 0.007292, -0.992099, 0.069374, 0.104274 -4154, 0.007292, -0.992099, 0.069374, 0.104274 -4155, 0.007292, -0.992099, 0.069374, 0.104274 -4156, 0.007292, -0.992099, 0.069374, 0.104274 -4157, 0.007292, -0.992099, 0.069374, 0.104274 -4158, 0.007292, -0.992099, 0.069374, 0.104274 -4159, 0.007292, -0.992099, 0.069374, 0.104274 -4160, 0.007292, -0.992099, 0.069374, 0.104274 -4161, 0.007292, -0.992099, 0.069374, 0.104274 -4162, 0.007292, -0.992099, 0.069374, 0.104274 -4163, 0.007292, -0.992099, 0.069374, 0.104274 -4164, 0.007292, -0.992099, 0.069374, 0.104274 -4165, 0.007292, -0.992099, 0.069374, 0.104274 -4166, 0.007292, -0.992099, 0.069374, 0.104274 -4167, 0.007292, -0.992099, 0.069374, 0.104274 -4168, 0.007292, -0.992099, 0.069374, 0.104274 -4169, 0.007292, -0.992099, 0.069374, 0.104274 -4170, 0.007292, -0.992099, 0.069374, 0.104274 -4171, 0.007292, -0.992099, 0.069374, 0.104274 -4172, 0.007292, -0.992099, 0.069374, 0.104274 -4173, 0.007292, -0.992099, 0.069374, 0.104274 -4174, 0.007292, -0.992099, 0.069374, 0.104274 -4175, 0.007292, -0.992099, 0.069374, 0.104274 -4176, 0.007292, -0.992099, 0.069374, 0.104274 -4177, 0.007292, -0.992099, 0.069374, 0.104274 -4178, 0.007292, -0.992099, 0.069374, 0.104274 -4179, 0.007292, -0.992099, 0.069374, 0.104274 -4180, 0.007292, -0.992099, 0.069374, 0.104274 -4181, 0.007292, -0.992099, 0.069374, 0.104274 -4182, 0.007292, -0.992099, 0.069374, 0.104274 -4183, 0.007292, -0.992099, 0.069374, 0.104274 -4184, 0.007292, -0.992099, 0.069374, 0.104274 -4185, 0.007292, -0.992099, 0.069374, 0.104274 -4186, 0.007292, -0.992099, 0.069374, 0.104274 -4187, 0.007292, -0.992099, 0.069374, 0.104274 -4188, 0.007292, -0.992099, 0.069374, 0.104274 -4189, 0.007292, -0.992099, 0.069374, 0.104274 -4190, 0.007292, -0.992099, 0.069374, 0.104274 -4191, 0.007292, -0.992099, 0.069374, 0.104274 -4192, 0.007292, -0.992099, 0.069374, 0.104274 -4193, 0.007292, -0.992099, 0.069374, 0.104274 -4194, 0.007292, -0.992099, 0.069374, 0.104274 -4195, 0.007292, -0.992099, 0.069374, 0.104274 -4196, 0.007292, -0.992099, 0.069374, 0.104274 -4197, 0.007292, -0.992099, 0.069374, 0.104274 -4198, 0.007292, -0.992099, 0.069374, 0.104274 -4199, 0.007292, -0.992099, 0.069374, 0.104274 -4200, 0.004106, -0.995551, 0.052175, 0.078352 -4201, 0.004106, -0.995551, 0.052175, 0.078352 -4202, 0.004106, -0.995551, 0.052175, 0.078352 -4203, 0.004106, -0.995551, 0.052175, 0.078352 -4204, 0.004106, -0.995551, 0.052175, 0.078352 -4205, 0.004106, -0.995551, 0.052175, 0.078352 -4206, 0.004106, -0.995551, 0.052175, 0.078352 -4207, 0.004106, -0.995551, 0.052175, 0.078352 -4208, 0.004106, -0.995551, 0.052175, 0.078352 -4209, 0.004106, -0.995551, 0.052175, 0.078352 -4210, 0.004106, -0.995551, 0.052175, 0.078352 -4211, 0.004106, -0.995551, 0.052175, 0.078352 -4212, 0.004106, -0.995551, 0.052175, 0.078352 -4213, 0.004106, -0.995551, 0.052175, 0.078352 -4214, 0.004106, -0.995551, 0.052175, 0.078352 -4215, 0.004106, -0.995551, 0.052175, 0.078352 -4216, 0.004106, -0.995551, 0.052175, 0.078352 -4217, 0.004106, -0.995551, 0.052175, 0.078352 -4218, 0.004106, -0.995551, 0.052175, 0.078352 -4219, 0.004106, -0.995551, 0.052175, 0.078352 -4220, 0.004106, -0.995551, 0.052175, 0.078352 -4221, 0.004106, -0.995551, 0.052175, 0.078352 -4222, 0.004106, -0.995551, 0.052175, 0.078352 -4223, 0.004106, -0.995551, 0.052175, 0.078352 -4224, 0.004106, -0.995551, 0.052175, 0.078352 -4225, 0.004106, -0.995551, 0.052175, 0.078352 -4226, 0.004106, -0.995551, 0.052175, 0.078352 -4227, 0.004106, -0.995551, 0.052175, 0.078352 -4228, 0.004106, -0.995551, 0.052175, 0.078352 -4229, 0.004106, -0.995551, 0.052175, 0.078352 -4230, 0.004106, -0.995551, 0.052175, 0.078352 -4231, 0.004106, -0.995551, 0.052175, 0.078352 -4232, 0.004106, -0.995551, 0.052175, 0.078352 -4233, 0.004106, -0.995551, 0.052175, 0.078352 -4234, 0.004106, -0.995551, 0.052175, 0.078352 -4235, 0.004106, -0.995551, 0.052175, 0.078352 -4236, 0.004106, -0.995551, 0.052175, 0.078352 -4237, 0.004106, -0.995551, 0.052175, 0.078352 -4238, 0.004106, -0.995551, 0.052175, 0.078352 -4239, 0.004106, -0.995551, 0.052175, 0.078352 -4240, 0.004106, -0.995551, 0.052175, 0.078352 -4241, 0.004106, -0.995551, 0.052175, 0.078352 -4242, 0.004106, -0.995551, 0.052175, 0.078352 -4243, 0.004106, -0.995551, 0.052175, 0.078352 -4244, 0.004106, -0.995551, 0.052175, 0.078352 -4245, 0.004106, -0.995551, 0.052175, 0.078352 -4246, 0.004106, -0.995551, 0.052175, 0.078352 -4247, 0.004106, -0.995551, 0.052175, 0.078352 -4248, 0.004106, -0.995551, 0.052175, 0.078352 -4249, 0.004106, -0.995551, 0.052175, 0.078352 -4250, 0.004106, -0.995551, 0.052175, 0.078352 -4251, 0.004106, -0.995551, 0.052175, 0.078352 -4252, 0.004106, -0.995551, 0.052175, 0.078352 -4253, 0.004106, -0.995551, 0.052175, 0.078352 -4254, 0.004106, -0.995551, 0.052175, 0.078352 -4255, 0.004106, -0.995551, 0.052175, 0.078352 -4256, 0.004106, -0.995551, 0.052175, 0.078352 -4257, 0.004106, -0.995551, 0.052175, 0.078352 -4258, 0.004106, -0.995551, 0.052175, 0.078352 -4259, 0.004106, -0.995551, 0.052175, 0.078352 -4260, 0.004106, -0.995551, 0.052175, 0.078352 -4261, 0.004106, -0.995551, 0.052175, 0.078352 -4262, 0.004106, -0.995551, 0.052175, 0.078352 -4263, 0.004106, -0.995551, 0.052175, 0.078352 -4264, 0.004106, -0.995551, 0.052175, 0.078352 -4265, 0.004106, -0.995551, 0.052175, 0.078352 -4266, 0.004106, -0.995551, 0.052175, 0.078352 -4267, 0.004106, -0.995551, 0.052175, 0.078352 -4268, 0.004106, -0.995551, 0.052175, 0.078352 -4269, 0.004106, -0.995551, 0.052175, 0.078352 -4270, 0.004106, -0.995551, 0.052175, 0.078352 -4271, 0.004106, -0.995551, 0.052175, 0.078352 -4272, 0.004106, -0.995551, 0.052175, 0.078352 -4273, 0.004106, -0.995551, 0.052175, 0.078352 -4274, 0.004106, -0.995551, 0.052175, 0.078352 -4275, 0.004106, -0.995551, 0.052175, 0.078352 -4276, 0.004106, -0.995551, 0.052175, 0.078352 -4277, 0.004106, -0.995551, 0.052175, 0.078352 -4278, 0.004106, -0.995551, 0.052175, 0.078352 -4279, 0.004106, -0.995551, 0.052175, 0.078352 -4280, 0.004106, -0.995551, 0.052175, 0.078352 -4281, 0.004106, -0.995551, 0.052175, 0.078352 -4282, 0.004106, -0.995551, 0.052175, 0.078352 -4283, 0.004106, -0.995551, 0.052175, 0.078352 -4284, 0.004106, -0.995551, 0.052175, 0.078352 -4285, 0.004106, -0.995551, 0.052175, 0.078352 -4286, 0.004106, -0.995551, 0.052175, 0.078352 -4287, 0.004106, -0.995551, 0.052175, 0.078352 -4288, 0.004106, -0.995551, 0.052175, 0.078352 -4289, 0.004106, -0.995551, 0.052175, 0.078352 -4290, 0.004106, -0.995551, 0.052175, 0.078352 -4291, 0.004106, -0.995551, 0.052175, 0.078352 -4292, 0.004106, -0.995551, 0.052175, 0.078352 -4293, 0.004106, -0.995551, 0.052175, 0.078352 -4294, 0.004106, -0.995551, 0.052175, 0.078352 -4295, 0.004106, -0.995551, 0.052175, 0.078352 -4296, 0.004106, -0.995551, 0.052175, 0.078352 -4297, 0.004106, -0.995551, 0.052175, 0.078352 -4298, 0.004106, -0.995551, 0.052175, 0.078352 -4299, 0.004106, -0.995551, 0.052175, 0.078352 -4300, 0.001826, -0.998021, 0.034852, 0.052304 -4301, 0.001826, -0.998021, 0.034852, 0.052304 -4302, 0.001826, -0.998021, 0.034852, 0.052304 -4303, 0.001826, -0.998021, 0.034852, 0.052304 -4304, 0.001826, -0.998021, 0.034852, 0.052304 -4305, 0.001826, -0.998021, 0.034852, 0.052304 -4306, 0.001826, -0.998021, 0.034852, 0.052304 -4307, 0.001826, -0.998021, 0.034852, 0.052304 -4308, 0.001826, -0.998021, 0.034852, 0.052304 -4309, 0.001826, -0.998021, 0.034852, 0.052304 -4310, 0.001826, -0.998021, 0.034852, 0.052304 -4311, 0.001826, -0.998021, 0.034852, 0.052304 -4312, 0.001826, -0.998021, 0.034852, 0.052304 -4313, 0.001826, -0.998021, 0.034852, 0.052304 -4314, 0.001826, -0.998021, 0.034852, 0.052304 -4315, 0.001826, -0.998021, 0.034852, 0.052304 -4316, 0.001826, -0.998021, 0.034852, 0.052304 -4317, 0.001826, -0.998021, 0.034852, 0.052304 -4318, 0.001826, -0.998021, 0.034852, 0.052304 -4319, 0.001826, -0.998021, 0.034852, 0.052304 -4320, 0.001826, -0.998021, 0.034852, 0.052304 -4321, 0.001826, -0.998021, 0.034852, 0.052304 -4322, 0.001826, -0.998021, 0.034852, 0.052304 -4323, 0.001826, -0.998021, 0.034852, 0.052304 -4324, 0.001826, -0.998021, 0.034852, 0.052304 -4325, 0.001826, -0.998021, 0.034852, 0.052304 -4326, 0.001826, -0.998021, 0.034852, 0.052304 -4327, 0.001826, -0.998021, 0.034852, 0.052304 -4328, 0.001826, -0.998021, 0.034852, 0.052304 -4329, 0.001826, -0.998021, 0.034852, 0.052304 -4330, 0.001826, -0.998021, 0.034852, 0.052304 -4331, 0.001826, -0.998021, 0.034852, 0.052304 -4332, 0.001826, -0.998021, 0.034852, 0.052304 -4333, 0.001826, -0.998021, 0.034852, 0.052304 -4334, 0.001826, -0.998021, 0.034852, 0.052304 -4335, 0.001826, -0.998021, 0.034852, 0.052304 -4336, 0.001826, -0.998021, 0.034852, 0.052304 -4337, 0.001826, -0.998021, 0.034852, 0.052304 -4338, 0.001826, -0.998021, 0.034852, 0.052304 -4339, 0.001826, -0.998021, 0.034852, 0.052304 -4340, 0.001826, -0.998021, 0.034852, 0.052304 -4341, 0.001826, -0.998021, 0.034852, 0.052304 -4342, 0.001826, -0.998021, 0.034852, 0.052304 -4343, 0.001826, -0.998021, 0.034852, 0.052304 -4344, 0.001826, -0.998021, 0.034852, 0.052304 -4345, 0.001826, -0.998021, 0.034852, 0.052304 -4346, 0.001826, -0.998021, 0.034852, 0.052304 -4347, 0.001826, -0.998021, 0.034852, 0.052304 -4348, 0.001826, -0.998021, 0.034852, 0.052304 -4349, 0.001826, -0.998021, 0.034852, 0.052304 -4350, 0.001826, -0.998021, 0.034852, 0.052304 -4351, 0.001826, -0.998021, 0.034852, 0.052304 -4352, 0.001826, -0.998021, 0.034852, 0.052304 -4353, 0.001826, -0.998021, 0.034852, 0.052304 -4354, 0.001826, -0.998021, 0.034852, 0.052304 -4355, 0.001826, -0.998021, 0.034852, 0.052304 -4356, 0.001826, -0.998021, 0.034852, 0.052304 -4357, 0.001826, -0.998021, 0.034852, 0.052304 -4358, 0.001826, -0.998021, 0.034852, 0.052304 -4359, 0.001826, -0.998021, 0.034852, 0.052304 -4360, 0.001826, -0.998021, 0.034852, 0.052304 -4361, 0.001826, -0.998021, 0.034852, 0.052304 -4362, 0.001826, -0.998021, 0.034852, 0.052304 -4363, 0.001826, -0.998021, 0.034852, 0.052304 -4364, 0.001826, -0.998021, 0.034852, 0.052304 -4365, 0.001826, -0.998021, 0.034852, 0.052304 -4366, 0.001826, -0.998021, 0.034852, 0.052304 -4367, 0.001826, -0.998021, 0.034852, 0.052304 -4368, 0.001826, -0.998021, 0.034852, 0.052304 -4369, 0.001826, -0.998021, 0.034852, 0.052304 -4370, 0.001826, -0.998021, 0.034852, 0.052304 -4371, 0.001826, -0.998021, 0.034852, 0.052304 -4372, 0.001826, -0.998021, 0.034852, 0.052304 -4373, 0.001826, -0.998021, 0.034852, 0.052304 -4374, 0.001826, -0.998021, 0.034852, 0.052304 -4375, 0.001826, -0.998021, 0.034852, 0.052304 -4376, 0.001826, -0.998021, 0.034852, 0.052304 -4377, 0.001826, -0.998021, 0.034852, 0.052304 -4378, 0.001826, -0.998021, 0.034852, 0.052304 -4379, 0.001826, -0.998021, 0.034852, 0.052304 -4380, 0.001826, -0.998021, 0.034852, 0.052304 -4381, 0.001826, -0.998021, 0.034852, 0.052304 -4382, 0.001826, -0.998021, 0.034852, 0.052304 -4383, 0.001826, -0.998021, 0.034852, 0.052304 -4384, 0.001826, -0.998021, 0.034852, 0.052304 -4385, 0.001826, -0.998021, 0.034852, 0.052304 -4386, 0.001826, -0.998021, 0.034852, 0.052304 -4387, 0.001826, -0.998021, 0.034852, 0.052304 -4388, 0.001826, -0.998021, 0.034852, 0.052304 -4389, 0.001826, -0.998021, 0.034852, 0.052304 -4390, 0.001826, -0.998021, 0.034852, 0.052304 -4391, 0.001826, -0.998021, 0.034852, 0.052304 -4392, 0.001826, -0.998021, 0.034852, 0.052304 -4393, 0.001826, -0.998021, 0.034852, 0.052304 -4394, 0.001826, -0.998021, 0.034852, 0.052304 -4395, 0.001826, -0.998021, 0.034852, 0.052304 -4396, 0.001826, -0.998021, 0.034852, 0.052304 -4397, 0.001826, -0.998021, 0.034852, 0.052304 -4398, 0.001826, -0.998021, 0.034852, 0.052304 -4399, 0.001826, -0.998021, 0.034852, 0.052304 -4400, 0.000457, -0.999505, 0.017446, 0.026173 -4401, 0.000457, -0.999505, 0.017446, 0.026173 -4402, 0.000457, -0.999505, 0.017446, 0.026173 -4403, 0.000457, -0.999505, 0.017446, 0.026173 -4404, 0.000457, -0.999505, 0.017446, 0.026173 -4405, 0.000457, -0.999505, 0.017446, 0.026173 -4406, 0.000457, -0.999505, 0.017446, 0.026173 -4407, 0.000457, -0.999505, 0.017446, 0.026173 -4408, 0.000457, -0.999505, 0.017446, 0.026173 -4409, 0.000457, -0.999505, 0.017446, 0.026173 -4410, 0.000457, -0.999505, 0.017446, 0.026173 -4411, 0.000457, -0.999505, 0.017446, 0.026173 -4412, 0.000457, -0.999505, 0.017446, 0.026173 -4413, 0.000457, -0.999505, 0.017446, 0.026173 -4414, 0.000457, -0.999505, 0.017446, 0.026173 -4415, 0.000457, -0.999505, 0.017446, 0.026173 -4416, 0.000457, -0.999505, 0.017446, 0.026173 -4417, 0.000457, -0.999505, 0.017446, 0.026173 -4418, 0.000457, -0.999505, 0.017446, 0.026173 -4419, 0.000457, -0.999505, 0.017446, 0.026173 -4420, 0.000457, -0.999505, 0.017446, 0.026173 -4421, 0.000457, -0.999505, 0.017446, 0.026173 -4422, 0.000457, -0.999505, 0.017446, 0.026173 -4423, 0.000457, -0.999505, 0.017446, 0.026173 -4424, 0.000457, -0.999505, 0.017446, 0.026173 -4425, 0.000457, -0.999505, 0.017446, 0.026173 -4426, 0.000457, -0.999505, 0.017446, 0.026173 -4427, 0.000457, -0.999505, 0.017446, 0.026173 -4428, 0.000457, -0.999505, 0.017446, 0.026173 -4429, 0.000457, -0.999505, 0.017446, 0.026173 -4430, 0.000457, -0.999505, 0.017446, 0.026173 -4431, 0.000457, -0.999505, 0.017446, 0.026173 -4432, 0.000457, -0.999505, 0.017446, 0.026173 -4433, 0.000457, -0.999505, 0.017446, 0.026173 -4434, 0.000457, -0.999505, 0.017446, 0.026173 -4435, 0.000457, -0.999505, 0.017446, 0.026173 -4436, 0.000457, -0.999505, 0.017446, 0.026173 -4437, 0.000457, -0.999505, 0.017446, 0.026173 -4438, 0.000457, -0.999505, 0.017446, 0.026173 -4439, 0.000457, -0.999505, 0.017446, 0.026173 -4440, 0.000457, -0.999505, 0.017446, 0.026173 -4441, 0.000457, -0.999505, 0.017446, 0.026173 -4442, 0.000457, -0.999505, 0.017446, 0.026173 -4443, 0.000457, -0.999505, 0.017446, 0.026173 -4444, 0.000457, -0.999505, 0.017446, 0.026173 -4445, 0.000457, -0.999505, 0.017446, 0.026173 -4446, 0.000457, -0.999505, 0.017446, 0.026173 -4447, 0.000457, -0.999505, 0.017446, 0.026173 -4448, 0.000457, -0.999505, 0.017446, 0.026173 -4449, 0.000457, -0.999505, 0.017446, 0.026173 -4450, 0.000457, -0.999505, 0.017446, 0.026173 -4451, 0.000457, -0.999505, 0.017446, 0.026173 -4452, 0.000457, -0.999505, 0.017446, 0.026173 -4453, 0.000457, -0.999505, 0.017446, 0.026173 -4454, 0.000457, -0.999505, 0.017446, 0.026173 -4455, 0.000457, -0.999505, 0.017446, 0.026173 -4456, 0.000457, -0.999505, 0.017446, 0.026173 -4457, 0.000457, -0.999505, 0.017446, 0.026173 -4458, 0.000457, -0.999505, 0.017446, 0.026173 -4459, 0.000457, -0.999505, 0.017446, 0.026173 -4460, 0.000457, -0.999505, 0.017446, 0.026173 -4461, 0.000457, -0.999505, 0.017446, 0.026173 -4462, 0.000457, -0.999505, 0.017446, 0.026173 -4463, 0.000457, -0.999505, 0.017446, 0.026173 -4464, 0.000457, -0.999505, 0.017446, 0.026173 -4465, 0.000457, -0.999505, 0.017446, 0.026173 -4466, 0.000457, -0.999505, 0.017446, 0.026173 -4467, 0.000457, -0.999505, 0.017446, 0.026173 -4468, 0.000457, -0.999505, 0.017446, 0.026173 -4469, 0.000457, -0.999505, 0.017446, 0.026173 -4470, 0.000457, -0.999505, 0.017446, 0.026173 -4471, 0.000457, -0.999505, 0.017446, 0.026173 -4472, 0.000457, -0.999505, 0.017446, 0.026173 -4473, 0.000457, -0.999505, 0.017446, 0.026173 -4474, 0.000457, -0.999505, 0.017446, 0.026173 -4475, 0.000457, -0.999505, 0.017446, 0.026173 -4476, 0.000457, -0.999505, 0.017446, 0.026173 -4477, 0.000457, -0.999505, 0.017446, 0.026173 -4478, 0.000457, -0.999505, 0.017446, 0.026173 -4479, 0.000457, -0.999505, 0.017446, 0.026173 -4480, 0.000457, -0.999505, 0.017446, 0.026173 -4481, 0.000457, -0.999505, 0.017446, 0.026173 -4482, 0.000457, -0.999505, 0.017446, 0.026173 -4483, 0.000457, -0.999505, 0.017446, 0.026173 -4484, 0.000457, -0.999505, 0.017446, 0.026173 -4485, 0.000457, -0.999505, 0.017446, 0.026173 -4486, 0.000457, -0.999505, 0.017446, 0.026173 -4487, 0.000457, -0.999505, 0.017446, 0.026173 -4488, 0.000457, -0.999505, 0.017446, 0.026173 -4489, 0.000457, -0.999505, 0.017446, 0.026173 -4490, 0.000457, -0.999505, 0.017446, 0.026173 -4491, 0.000457, -0.999505, 0.017446, 0.026173 -4492, 0.000457, -0.999505, 0.017446, 0.026173 -4493, 0.000457, -0.999505, 0.017446, 0.026173 -4494, 0.000457, -0.999505, 0.017446, 0.026173 -4495, 0.000457, -0.999505, 0.017446, 0.026173 -4496, 0.000457, -0.999505, 0.017446, 0.026173 -4497, 0.000457, -0.999505, 0.017446, 0.026173 -4498, 0.000457, -0.999505, 0.017446, 0.026173 -4499, 0.000457, -0.999505, 0.017446, 0.026173 -4500, 0.000000, -1.000000, 0.000000, 0.000000 -4501, 0.000000, -1.000000, 0.000000, 0.000000 -4502, 0.000000, -1.000000, 0.000000, 0.000000 -4503, 0.000000, -1.000000, 0.000000, 0.000000 -4504, 0.000000, -1.000000, 0.000000, 0.000000 -4505, 0.000000, -1.000000, 0.000000, 0.000000 -4506, 0.000000, -1.000000, 0.000000, 0.000000 -4507, 0.000000, -1.000000, 0.000000, 0.000000 -4508, 0.000000, -1.000000, 0.000000, 0.000000 -4509, 0.000000, -1.000000, 0.000000, 0.000000 -4510, 0.000000, -1.000000, 0.000000, 0.000000 -4511, 0.000000, -1.000000, 0.000000, 0.000000 -4512, 0.000000, -1.000000, 0.000000, 0.000000 -4513, 0.000000, -1.000000, 0.000000, 0.000000 -4514, 0.000000, -1.000000, 0.000000, 0.000000 -4515, 0.000000, -1.000000, 0.000000, 0.000000 -4516, 0.000000, -1.000000, 0.000000, 0.000000 -4517, 0.000000, -1.000000, 0.000000, 0.000000 -4518, 0.000000, -1.000000, 0.000000, 0.000000 -4519, 0.000000, -1.000000, 0.000000, 0.000000 -4520, 0.000000, -1.000000, 0.000000, 0.000000 -4521, 0.000000, -1.000000, 0.000000, 0.000000 -4522, 0.000000, -1.000000, 0.000000, 0.000000 -4523, 0.000000, -1.000000, 0.000000, 0.000000 -4524, 0.000000, -1.000000, 0.000000, 0.000000 -4525, 0.000000, -1.000000, 0.000000, 0.000000 -4526, 0.000000, -1.000000, 0.000000, 0.000000 -4527, 0.000000, -1.000000, 0.000000, 0.000000 -4528, 0.000000, -1.000000, 0.000000, 0.000000 -4529, 0.000000, -1.000000, 0.000000, 0.000000 -4530, 0.000000, -1.000000, 0.000000, 0.000000 -4531, 0.000000, -1.000000, 0.000000, 0.000000 -4532, 0.000000, -1.000000, 0.000000, 0.000000 -4533, 0.000000, -1.000000, 0.000000, 0.000000 -4534, 0.000000, -1.000000, 0.000000, 0.000000 -4535, 0.000000, -1.000000, 0.000000, 0.000000 -4536, 0.000000, -1.000000, 0.000000, 0.000000 -4537, 0.000000, -1.000000, 0.000000, 0.000000 -4538, 0.000000, -1.000000, 0.000000, 0.000000 -4539, 0.000000, -1.000000, 0.000000, 0.000000 -4540, 0.000000, -1.000000, 0.000000, 0.000000 -4541, 0.000000, -1.000000, 0.000000, 0.000000 -4542, 0.000000, -1.000000, 0.000000, 0.000000 -4543, 0.000000, -1.000000, 0.000000, 0.000000 -4544, 0.000000, -1.000000, 0.000000, 0.000000 -4545, 0.000000, -1.000000, 0.000000, 0.000000 -4546, 0.000000, -1.000000, 0.000000, 0.000000 -4547, 0.000000, -1.000000, 0.000000, 0.000000 -4548, 0.000000, -1.000000, 0.000000, 0.000000 -4549, 0.000000, -1.000000, 0.000000, 0.000000 -4550, 0.000000, -1.000000, 0.000000, 0.000000 -4551, 0.000000, -1.000000, 0.000000, 0.000000 -4552, 0.000000, -1.000000, 0.000000, 0.000000 -4553, 0.000000, -1.000000, 0.000000, 0.000000 -4554, 0.000000, -1.000000, 0.000000, 0.000000 -4555, 0.000000, -1.000000, 0.000000, 0.000000 -4556, 0.000000, -1.000000, 0.000000, 0.000000 -4557, 0.000000, -1.000000, 0.000000, 0.000000 -4558, 0.000000, -1.000000, 0.000000, 0.000000 -4559, 0.000000, -1.000000, 0.000000, 0.000000 -4560, 0.000000, -1.000000, 0.000000, 0.000000 -4561, 0.000000, -1.000000, 0.000000, 0.000000 -4562, 0.000000, -1.000000, 0.000000, 0.000000 -4563, 0.000000, -1.000000, 0.000000, 0.000000 -4564, 0.000000, -1.000000, 0.000000, 0.000000 -4565, 0.000000, -1.000000, 0.000000, 0.000000 -4566, 0.000000, -1.000000, 0.000000, 0.000000 -4567, 0.000000, -1.000000, 0.000000, 0.000000 -4568, 0.000000, -1.000000, 0.000000, 0.000000 -4569, 0.000000, -1.000000, 0.000000, 0.000000 -4570, 0.000000, -1.000000, 0.000000, 0.000000 -4571, 0.000000, -1.000000, 0.000000, 0.000000 -4572, 0.000000, -1.000000, 0.000000, 0.000000 -4573, 0.000000, -1.000000, 0.000000, 0.000000 -4574, 0.000000, -1.000000, 0.000000, 0.000000 -4575, 0.000000, -1.000000, 0.000000, 0.000000 -4576, 0.000000, -1.000000, 0.000000, 0.000000 -4577, 0.000000, -1.000000, 0.000000, 0.000000 -4578, 0.000000, -1.000000, 0.000000, 0.000000 -4579, 0.000000, -1.000000, 0.000000, 0.000000 -4580, 0.000000, -1.000000, 0.000000, 0.000000 -4581, 0.000000, -1.000000, 0.000000, 0.000000 -4582, 0.000000, -1.000000, 0.000000, 0.000000 -4583, 0.000000, -1.000000, 0.000000, 0.000000 -4584, 0.000000, -1.000000, 0.000000, 0.000000 -4585, 0.000000, -1.000000, 0.000000, 0.000000 -4586, 0.000000, -1.000000, 0.000000, 0.000000 -4587, 0.000000, -1.000000, 0.000000, 0.000000 -4588, 0.000000, -1.000000, 0.000000, 0.000000 -4589, 0.000000, -1.000000, 0.000000, 0.000000 -4590, 0.000000, -1.000000, 0.000000, 0.000000 -4591, 0.000000, -1.000000, 0.000000, 0.000000 -4592, 0.000000, -1.000000, 0.000000, 0.000000 -4593, 0.000000, -1.000000, 0.000000, 0.000000 -4594, 0.000000, -1.000000, 0.000000, 0.000000 -4595, 0.000000, -1.000000, 0.000000, 0.000000 -4596, 0.000000, -1.000000, 0.000000, 0.000000 -4597, 0.000000, -1.000000, 0.000000, 0.000000 -4598, 0.000000, -1.000000, 0.000000, 0.000000 -4599, 0.000000, -1.000000, 0.000000, 0.000000 -4600, 0.000457, -0.999505, -0.017446, -0.026173 -4601, 0.000457, -0.999505, -0.017446, -0.026173 -4602, 0.000457, -0.999505, -0.017446, -0.026173 -4603, 0.000457, -0.999505, -0.017446, -0.026173 -4604, 0.000457, -0.999505, -0.017446, -0.026173 -4605, 0.000457, -0.999505, -0.017446, -0.026173 -4606, 0.000457, -0.999505, -0.017446, -0.026173 -4607, 0.000457, -0.999505, -0.017446, -0.026173 -4608, 0.000457, -0.999505, -0.017446, -0.026173 -4609, 0.000457, -0.999505, -0.017446, -0.026173 -4610, 0.000457, -0.999505, -0.017446, -0.026173 -4611, 0.000457, -0.999505, -0.017446, -0.026173 -4612, 0.000457, -0.999505, -0.017446, -0.026173 -4613, 0.000457, -0.999505, -0.017446, -0.026173 -4614, 0.000457, -0.999505, -0.017446, -0.026173 -4615, 0.000457, -0.999505, -0.017446, -0.026173 -4616, 0.000457, -0.999505, -0.017446, -0.026173 -4617, 0.000457, -0.999505, -0.017446, -0.026173 -4618, 0.000457, -0.999505, -0.017446, -0.026173 -4619, 0.000457, -0.999505, -0.017446, -0.026173 -4620, 0.000457, -0.999505, -0.017446, -0.026173 -4621, 0.000457, -0.999505, -0.017446, -0.026173 -4622, 0.000457, -0.999505, -0.017446, -0.026173 -4623, 0.000457, -0.999505, -0.017446, -0.026173 -4624, 0.000457, -0.999505, -0.017446, -0.026173 -4625, 0.000457, -0.999505, -0.017446, -0.026173 -4626, 0.000457, -0.999505, -0.017446, -0.026173 -4627, 0.000457, -0.999505, -0.017446, -0.026173 -4628, 0.000457, -0.999505, -0.017446, -0.026173 -4629, 0.000457, -0.999505, -0.017446, -0.026173 -4630, 0.000457, -0.999505, -0.017446, -0.026173 -4631, 0.000457, -0.999505, -0.017446, -0.026173 -4632, 0.000457, -0.999505, -0.017446, -0.026173 -4633, 0.000457, -0.999505, -0.017446, -0.026173 -4634, 0.000457, -0.999505, -0.017446, -0.026173 -4635, 0.000457, -0.999505, -0.017446, -0.026173 -4636, 0.000457, -0.999505, -0.017446, -0.026173 -4637, 0.000457, -0.999505, -0.017446, -0.026173 -4638, 0.000457, -0.999505, -0.017446, -0.026173 -4639, 0.000457, -0.999505, -0.017446, -0.026173 -4640, 0.000457, -0.999505, -0.017446, -0.026173 -4641, 0.000457, -0.999505, -0.017446, -0.026173 -4642, 0.000457, -0.999505, -0.017446, -0.026173 -4643, 0.000457, -0.999505, -0.017446, -0.026173 -4644, 0.000457, -0.999505, -0.017446, -0.026173 -4645, 0.000457, -0.999505, -0.017446, -0.026173 -4646, 0.000457, -0.999505, -0.017446, -0.026173 -4647, 0.000457, -0.999505, -0.017446, -0.026173 -4648, 0.000457, -0.999505, -0.017446, -0.026173 -4649, 0.000457, -0.999505, -0.017446, -0.026173 -4650, 0.000457, -0.999505, -0.017446, -0.026173 -4651, 0.000457, -0.999505, -0.017446, -0.026173 -4652, 0.000457, -0.999505, -0.017446, -0.026173 -4653, 0.000457, -0.999505, -0.017446, -0.026173 -4654, 0.000457, -0.999505, -0.017446, -0.026173 -4655, 0.000457, -0.999505, -0.017446, -0.026173 -4656, 0.000457, -0.999505, -0.017446, -0.026173 -4657, 0.000457, -0.999505, -0.017446, -0.026173 -4658, 0.000457, -0.999505, -0.017446, -0.026173 -4659, 0.000457, -0.999505, -0.017446, -0.026173 -4660, 0.000457, -0.999505, -0.017446, -0.026173 -4661, 0.000457, -0.999505, -0.017446, -0.026173 -4662, 0.000457, -0.999505, -0.017446, -0.026173 -4663, 0.000457, -0.999505, -0.017446, -0.026173 -4664, 0.000457, -0.999505, -0.017446, -0.026173 -4665, 0.000457, -0.999505, -0.017446, -0.026173 -4666, 0.000457, -0.999505, -0.017446, -0.026173 -4667, 0.000457, -0.999505, -0.017446, -0.026173 -4668, 0.000457, -0.999505, -0.017446, -0.026173 -4669, 0.000457, -0.999505, -0.017446, -0.026173 -4670, 0.000457, -0.999505, -0.017446, -0.026173 -4671, 0.000457, -0.999505, -0.017446, -0.026173 -4672, 0.000457, -0.999505, -0.017446, -0.026173 -4673, 0.000457, -0.999505, -0.017446, -0.026173 -4674, 0.000457, -0.999505, -0.017446, -0.026173 -4675, 0.000457, -0.999505, -0.017446, -0.026173 -4676, 0.000457, -0.999505, -0.017446, -0.026173 -4677, 0.000457, -0.999505, -0.017446, -0.026173 -4678, 0.000457, -0.999505, -0.017446, -0.026173 -4679, 0.000457, -0.999505, -0.017446, -0.026173 -4680, 0.000457, -0.999505, -0.017446, -0.026173 -4681, 0.000457, -0.999505, -0.017446, -0.026173 -4682, 0.000457, -0.999505, -0.017446, -0.026173 -4683, 0.000457, -0.999505, -0.017446, -0.026173 -4684, 0.000457, -0.999505, -0.017446, -0.026173 -4685, 0.000457, -0.999505, -0.017446, -0.026173 -4686, 0.000457, -0.999505, -0.017446, -0.026173 -4687, 0.000457, -0.999505, -0.017446, -0.026173 -4688, 0.000457, -0.999505, -0.017446, -0.026173 -4689, 0.000457, -0.999505, -0.017446, -0.026173 -4690, 0.000457, -0.999505, -0.017446, -0.026173 -4691, 0.000457, -0.999505, -0.017446, -0.026173 -4692, 0.000457, -0.999505, -0.017446, -0.026173 -4693, 0.000457, -0.999505, -0.017446, -0.026173 -4694, 0.000457, -0.999505, -0.017446, -0.026173 -4695, 0.000457, -0.999505, -0.017446, -0.026173 -4696, 0.000457, -0.999505, -0.017446, -0.026173 -4697, 0.000457, -0.999505, -0.017446, -0.026173 -4698, 0.000457, -0.999505, -0.017446, -0.026173 -4699, 0.000457, -0.999505, -0.017446, -0.026173 -4700, 0.001826, -0.998021, -0.034852, -0.052304 -4701, 0.001826, -0.998021, -0.034852, -0.052304 -4702, 0.001826, -0.998021, -0.034852, -0.052304 -4703, 0.001826, -0.998021, -0.034852, -0.052304 -4704, 0.001826, -0.998021, -0.034852, -0.052304 -4705, 0.001826, -0.998021, -0.034852, -0.052304 -4706, 0.001826, -0.998021, -0.034852, -0.052304 -4707, 0.001826, -0.998021, -0.034852, -0.052304 -4708, 0.001826, -0.998021, -0.034852, -0.052304 -4709, 0.001826, -0.998021, -0.034852, -0.052304 -4710, 0.001826, -0.998021, -0.034852, -0.052304 -4711, 0.001826, -0.998021, -0.034852, -0.052304 -4712, 0.001826, -0.998021, -0.034852, -0.052304 -4713, 0.001826, -0.998021, -0.034852, -0.052304 -4714, 0.001826, -0.998021, -0.034852, -0.052304 -4715, 0.001826, -0.998021, -0.034852, -0.052304 -4716, 0.001826, -0.998021, -0.034852, -0.052304 -4717, 0.001826, -0.998021, -0.034852, -0.052304 -4718, 0.001826, -0.998021, -0.034852, -0.052304 -4719, 0.001826, -0.998021, -0.034852, -0.052304 -4720, 0.001826, -0.998021, -0.034852, -0.052304 -4721, 0.001826, -0.998021, -0.034852, -0.052304 -4722, 0.001826, -0.998021, -0.034852, -0.052304 -4723, 0.001826, -0.998021, -0.034852, -0.052304 -4724, 0.001826, -0.998021, -0.034852, -0.052304 -4725, 0.001826, -0.998021, -0.034852, -0.052304 -4726, 0.001826, -0.998021, -0.034852, -0.052304 -4727, 0.001826, -0.998021, -0.034852, -0.052304 -4728, 0.001826, -0.998021, -0.034852, -0.052304 -4729, 0.001826, -0.998021, -0.034852, -0.052304 -4730, 0.001826, -0.998021, -0.034852, -0.052304 -4731, 0.001826, -0.998021, -0.034852, -0.052304 -4732, 0.001826, -0.998021, -0.034852, -0.052304 -4733, 0.001826, -0.998021, -0.034852, -0.052304 -4734, 0.001826, -0.998021, -0.034852, -0.052304 -4735, 0.001826, -0.998021, -0.034852, -0.052304 -4736, 0.001826, -0.998021, -0.034852, -0.052304 -4737, 0.001826, -0.998021, -0.034852, -0.052304 -4738, 0.001826, -0.998021, -0.034852, -0.052304 -4739, 0.001826, -0.998021, -0.034852, -0.052304 -4740, 0.001826, -0.998021, -0.034852, -0.052304 -4741, 0.001826, -0.998021, -0.034852, -0.052304 -4742, 0.001826, -0.998021, -0.034852, -0.052304 -4743, 0.001826, -0.998021, -0.034852, -0.052304 -4744, 0.001826, -0.998021, -0.034852, -0.052304 -4745, 0.001826, -0.998021, -0.034852, -0.052304 -4746, 0.001826, -0.998021, -0.034852, -0.052304 -4747, 0.001826, -0.998021, -0.034852, -0.052304 -4748, 0.001826, -0.998021, -0.034852, -0.052304 -4749, 0.001826, -0.998021, -0.034852, -0.052304 -4750, 0.001826, -0.998021, -0.034852, -0.052304 -4751, 0.001826, -0.998021, -0.034852, -0.052304 -4752, 0.001826, -0.998021, -0.034852, -0.052304 -4753, 0.001826, -0.998021, -0.034852, -0.052304 -4754, 0.001826, -0.998021, -0.034852, -0.052304 -4755, 0.001826, -0.998021, -0.034852, -0.052304 -4756, 0.001826, -0.998021, -0.034852, -0.052304 -4757, 0.001826, -0.998021, -0.034852, -0.052304 -4758, 0.001826, -0.998021, -0.034852, -0.052304 -4759, 0.001826, -0.998021, -0.034852, -0.052304 -4760, 0.001826, -0.998021, -0.034852, -0.052304 -4761, 0.001826, -0.998021, -0.034852, -0.052304 -4762, 0.001826, -0.998021, -0.034852, -0.052304 -4763, 0.001826, -0.998021, -0.034852, -0.052304 -4764, 0.001826, -0.998021, -0.034852, -0.052304 -4765, 0.001826, -0.998021, -0.034852, -0.052304 -4766, 0.001826, -0.998021, -0.034852, -0.052304 -4767, 0.001826, -0.998021, -0.034852, -0.052304 -4768, 0.001826, -0.998021, -0.034852, -0.052304 -4769, 0.001826, -0.998021, -0.034852, -0.052304 -4770, 0.001826, -0.998021, -0.034852, -0.052304 -4771, 0.001826, -0.998021, -0.034852, -0.052304 -4772, 0.001826, -0.998021, -0.034852, -0.052304 -4773, 0.001826, -0.998021, -0.034852, -0.052304 -4774, 0.001826, -0.998021, -0.034852, -0.052304 -4775, 0.001826, -0.998021, -0.034852, -0.052304 -4776, 0.001826, -0.998021, -0.034852, -0.052304 -4777, 0.001826, -0.998021, -0.034852, -0.052304 -4778, 0.001826, -0.998021, -0.034852, -0.052304 -4779, 0.001826, -0.998021, -0.034852, -0.052304 -4780, 0.001826, -0.998021, -0.034852, -0.052304 -4781, 0.001826, -0.998021, -0.034852, -0.052304 -4782, 0.001826, -0.998021, -0.034852, -0.052304 -4783, 0.001826, -0.998021, -0.034852, -0.052304 -4784, 0.001826, -0.998021, -0.034852, -0.052304 -4785, 0.001826, -0.998021, -0.034852, -0.052304 -4786, 0.001826, -0.998021, -0.034852, -0.052304 -4787, 0.001826, -0.998021, -0.034852, -0.052304 -4788, 0.001826, -0.998021, -0.034852, -0.052304 -4789, 0.001826, -0.998021, -0.034852, -0.052304 -4790, 0.001826, -0.998021, -0.034852, -0.052304 -4791, 0.001826, -0.998021, -0.034852, -0.052304 -4792, 0.001826, -0.998021, -0.034852, -0.052304 -4793, 0.001826, -0.998021, -0.034852, -0.052304 -4794, 0.001826, -0.998021, -0.034852, -0.052304 -4795, 0.001826, -0.998021, -0.034852, -0.052304 -4796, 0.001826, -0.998021, -0.034852, -0.052304 -4797, 0.001826, -0.998021, -0.034852, -0.052304 -4798, 0.001826, -0.998021, -0.034852, -0.052304 -4799, 0.001826, -0.998021, -0.034852, -0.052304 -4800, 0.004106, -0.995551, -0.052175, -0.078352 -4801, 0.004106, -0.995551, -0.052175, -0.078352 -4802, 0.004106, -0.995551, -0.052175, -0.078352 -4803, 0.004106, -0.995551, -0.052175, -0.078352 -4804, 0.004106, -0.995551, -0.052175, -0.078352 -4805, 0.004106, -0.995551, -0.052175, -0.078352 -4806, 0.004106, -0.995551, -0.052175, -0.078352 -4807, 0.004106, -0.995551, -0.052175, -0.078352 -4808, 0.004106, -0.995551, -0.052175, -0.078352 -4809, 0.004106, -0.995551, -0.052175, -0.078352 -4810, 0.004106, -0.995551, -0.052175, -0.078352 -4811, 0.004106, -0.995551, -0.052175, -0.078352 -4812, 0.004106, -0.995551, -0.052175, -0.078352 -4813, 0.004106, -0.995551, -0.052175, -0.078352 -4814, 0.004106, -0.995551, -0.052175, -0.078352 -4815, 0.004106, -0.995551, -0.052175, -0.078352 -4816, 0.004106, -0.995551, -0.052175, -0.078352 -4817, 0.004106, -0.995551, -0.052175, -0.078352 -4818, 0.004106, -0.995551, -0.052175, -0.078352 -4819, 0.004106, -0.995551, -0.052175, -0.078352 -4820, 0.004106, -0.995551, -0.052175, -0.078352 -4821, 0.004106, -0.995551, -0.052175, -0.078352 -4822, 0.004106, -0.995551, -0.052175, -0.078352 -4823, 0.004106, -0.995551, -0.052175, -0.078352 -4824, 0.004106, -0.995551, -0.052175, -0.078352 -4825, 0.004106, -0.995551, -0.052175, -0.078352 -4826, 0.004106, -0.995551, -0.052175, -0.078352 -4827, 0.004106, -0.995551, -0.052175, -0.078352 -4828, 0.004106, -0.995551, -0.052175, -0.078352 -4829, 0.004106, -0.995551, -0.052175, -0.078352 -4830, 0.004106, -0.995551, -0.052175, -0.078352 -4831, 0.004106, -0.995551, -0.052175, -0.078352 -4832, 0.004106, -0.995551, -0.052175, -0.078352 -4833, 0.004106, -0.995551, -0.052175, -0.078352 -4834, 0.004106, -0.995551, -0.052175, -0.078352 -4835, 0.004106, -0.995551, -0.052175, -0.078352 -4836, 0.004106, -0.995551, -0.052175, -0.078352 -4837, 0.004106, -0.995551, -0.052175, -0.078352 -4838, 0.004106, -0.995551, -0.052175, -0.078352 -4839, 0.004106, -0.995551, -0.052175, -0.078352 -4840, 0.004106, -0.995551, -0.052175, -0.078352 -4841, 0.004106, -0.995551, -0.052175, -0.078352 -4842, 0.004106, -0.995551, -0.052175, -0.078352 -4843, 0.004106, -0.995551, -0.052175, -0.078352 -4844, 0.004106, -0.995551, -0.052175, -0.078352 -4845, 0.004106, -0.995551, -0.052175, -0.078352 -4846, 0.004106, -0.995551, -0.052175, -0.078352 -4847, 0.004106, -0.995551, -0.052175, -0.078352 -4848, 0.004106, -0.995551, -0.052175, -0.078352 -4849, 0.004106, -0.995551, -0.052175, -0.078352 -4850, 0.004106, -0.995551, -0.052175, -0.078352 -4851, 0.004106, -0.995551, -0.052175, -0.078352 -4852, 0.004106, -0.995551, -0.052175, -0.078352 -4853, 0.004106, -0.995551, -0.052175, -0.078352 -4854, 0.004106, -0.995551, -0.052175, -0.078352 -4855, 0.004106, -0.995551, -0.052175, -0.078352 -4856, 0.004106, -0.995551, -0.052175, -0.078352 -4857, 0.004106, -0.995551, -0.052175, -0.078352 -4858, 0.004106, -0.995551, -0.052175, -0.078352 -4859, 0.004106, -0.995551, -0.052175, -0.078352 -4860, 0.004106, -0.995551, -0.052175, -0.078352 -4861, 0.004106, -0.995551, -0.052175, -0.078352 -4862, 0.004106, -0.995551, -0.052175, -0.078352 -4863, 0.004106, -0.995551, -0.052175, -0.078352 -4864, 0.004106, -0.995551, -0.052175, -0.078352 -4865, 0.004106, -0.995551, -0.052175, -0.078352 -4866, 0.004106, -0.995551, -0.052175, -0.078352 -4867, 0.004106, -0.995551, -0.052175, -0.078352 -4868, 0.004106, -0.995551, -0.052175, -0.078352 -4869, 0.004106, -0.995551, -0.052175, -0.078352 -4870, 0.004106, -0.995551, -0.052175, -0.078352 -4871, 0.004106, -0.995551, -0.052175, -0.078352 -4872, 0.004106, -0.995551, -0.052175, -0.078352 -4873, 0.004106, -0.995551, -0.052175, -0.078352 -4874, 0.004106, -0.995551, -0.052175, -0.078352 -4875, 0.004106, -0.995551, -0.052175, -0.078352 -4876, 0.004106, -0.995551, -0.052175, -0.078352 -4877, 0.004106, -0.995551, -0.052175, -0.078352 -4878, 0.004106, -0.995551, -0.052175, -0.078352 -4879, 0.004106, -0.995551, -0.052175, -0.078352 -4880, 0.004106, -0.995551, -0.052175, -0.078352 -4881, 0.004106, -0.995551, -0.052175, -0.078352 -4882, 0.004106, -0.995551, -0.052175, -0.078352 -4883, 0.004106, -0.995551, -0.052175, -0.078352 -4884, 0.004106, -0.995551, -0.052175, -0.078352 -4885, 0.004106, -0.995551, -0.052175, -0.078352 -4886, 0.004106, -0.995551, -0.052175, -0.078352 -4887, 0.004106, -0.995551, -0.052175, -0.078352 -4888, 0.004106, -0.995551, -0.052175, -0.078352 -4889, 0.004106, -0.995551, -0.052175, -0.078352 -4890, 0.004106, -0.995551, -0.052175, -0.078352 -4891, 0.004106, -0.995551, -0.052175, -0.078352 -4892, 0.004106, -0.995551, -0.052175, -0.078352 -4893, 0.004106, -0.995551, -0.052175, -0.078352 -4894, 0.004106, -0.995551, -0.052175, -0.078352 -4895, 0.004106, -0.995551, -0.052175, -0.078352 -4896, 0.004106, -0.995551, -0.052175, -0.078352 -4897, 0.004106, -0.995551, -0.052175, -0.078352 -4898, 0.004106, -0.995551, -0.052175, -0.078352 -4899, 0.004106, -0.995551, -0.052175, -0.078352 -4900, 0.007292, -0.992099, -0.069374, -0.104274 -4901, 0.007292, -0.992099, -0.069374, -0.104274 -4902, 0.007292, -0.992099, -0.069374, -0.104274 -4903, 0.007292, -0.992099, -0.069374, -0.104274 -4904, 0.007292, -0.992099, -0.069374, -0.104274 -4905, 0.007292, -0.992099, -0.069374, -0.104274 -4906, 0.007292, -0.992099, -0.069374, -0.104274 -4907, 0.007292, -0.992099, -0.069374, -0.104274 -4908, 0.007292, -0.992099, -0.069374, -0.104274 -4909, 0.007292, -0.992099, -0.069374, -0.104274 -4910, 0.007292, -0.992099, -0.069374, -0.104274 -4911, 0.007292, -0.992099, -0.069374, -0.104274 -4912, 0.007292, -0.992099, -0.069374, -0.104274 -4913, 0.007292, -0.992099, -0.069374, -0.104274 -4914, 0.007292, -0.992099, -0.069374, -0.104274 -4915, 0.007292, -0.992099, -0.069374, -0.104274 -4916, 0.007292, -0.992099, -0.069374, -0.104274 -4917, 0.007292, -0.992099, -0.069374, -0.104274 -4918, 0.007292, -0.992099, -0.069374, -0.104274 -4919, 0.007292, -0.992099, -0.069374, -0.104274 -4920, 0.007292, -0.992099, -0.069374, -0.104274 -4921, 0.007292, -0.992099, -0.069374, -0.104274 -4922, 0.007292, -0.992099, -0.069374, -0.104274 -4923, 0.007292, -0.992099, -0.069374, -0.104274 -4924, 0.007292, -0.992099, -0.069374, -0.104274 -4925, 0.007292, -0.992099, -0.069374, -0.104274 -4926, 0.007292, -0.992099, -0.069374, -0.104274 -4927, 0.007292, -0.992099, -0.069374, -0.104274 -4928, 0.007292, -0.992099, -0.069374, -0.104274 -4929, 0.007292, -0.992099, -0.069374, -0.104274 -4930, 0.007292, -0.992099, -0.069374, -0.104274 -4931, 0.007292, -0.992099, -0.069374, -0.104274 -4932, 0.007292, -0.992099, -0.069374, -0.104274 -4933, 0.007292, -0.992099, -0.069374, -0.104274 -4934, 0.007292, -0.992099, -0.069374, -0.104274 -4935, 0.007292, -0.992099, -0.069374, -0.104274 -4936, 0.007292, -0.992099, -0.069374, -0.104274 -4937, 0.007292, -0.992099, -0.069374, -0.104274 -4938, 0.007292, -0.992099, -0.069374, -0.104274 -4939, 0.007292, -0.992099, -0.069374, -0.104274 -4940, 0.007292, -0.992099, -0.069374, -0.104274 -4941, 0.007292, -0.992099, -0.069374, -0.104274 -4942, 0.007292, -0.992099, -0.069374, -0.104274 -4943, 0.007292, -0.992099, -0.069374, -0.104274 -4944, 0.007292, -0.992099, -0.069374, -0.104274 -4945, 0.007292, -0.992099, -0.069374, -0.104274 -4946, 0.007292, -0.992099, -0.069374, -0.104274 -4947, 0.007292, -0.992099, -0.069374, -0.104274 -4948, 0.007292, -0.992099, -0.069374, -0.104274 -4949, 0.007292, -0.992099, -0.069374, -0.104274 -4950, 0.007292, -0.992099, -0.069374, -0.104274 -4951, 0.007292, -0.992099, -0.069374, -0.104274 -4952, 0.007292, -0.992099, -0.069374, -0.104274 -4953, 0.007292, -0.992099, -0.069374, -0.104274 -4954, 0.007292, -0.992099, -0.069374, -0.104274 -4955, 0.007292, -0.992099, -0.069374, -0.104274 -4956, 0.007292, -0.992099, -0.069374, -0.104274 -4957, 0.007292, -0.992099, -0.069374, -0.104274 -4958, 0.007292, -0.992099, -0.069374, -0.104274 -4959, 0.007292, -0.992099, -0.069374, -0.104274 -4960, 0.007292, -0.992099, -0.069374, -0.104274 -4961, 0.007292, -0.992099, -0.069374, -0.104274 -4962, 0.007292, -0.992099, -0.069374, -0.104274 -4963, 0.007292, -0.992099, -0.069374, -0.104274 -4964, 0.007292, -0.992099, -0.069374, -0.104274 -4965, 0.007292, -0.992099, -0.069374, -0.104274 -4966, 0.007292, -0.992099, -0.069374, -0.104274 -4967, 0.007292, -0.992099, -0.069374, -0.104274 -4968, 0.007292, -0.992099, -0.069374, -0.104274 -4969, 0.007292, -0.992099, -0.069374, -0.104274 -4970, 0.007292, -0.992099, -0.069374, -0.104274 -4971, 0.007292, -0.992099, -0.069374, -0.104274 -4972, 0.007292, -0.992099, -0.069374, -0.104274 -4973, 0.007292, -0.992099, -0.069374, -0.104274 -4974, 0.007292, -0.992099, -0.069374, -0.104274 -4975, 0.007292, -0.992099, -0.069374, -0.104274 -4976, 0.007292, -0.992099, -0.069374, -0.104274 -4977, 0.007292, -0.992099, -0.069374, -0.104274 -4978, 0.007292, -0.992099, -0.069374, -0.104274 -4979, 0.007292, -0.992099, -0.069374, -0.104274 -4980, 0.007292, -0.992099, -0.069374, -0.104274 -4981, 0.007292, -0.992099, -0.069374, -0.104274 -4982, 0.007292, -0.992099, -0.069374, -0.104274 -4983, 0.007292, -0.992099, -0.069374, -0.104274 -4984, 0.007292, -0.992099, -0.069374, -0.104274 -4985, 0.007292, -0.992099, -0.069374, -0.104274 -4986, 0.007292, -0.992099, -0.069374, -0.104274 -4987, 0.007292, -0.992099, -0.069374, -0.104274 -4988, 0.007292, -0.992099, -0.069374, -0.104274 -4989, 0.007292, -0.992099, -0.069374, -0.104274 -4990, 0.007292, -0.992099, -0.069374, -0.104274 -4991, 0.007292, -0.992099, -0.069374, -0.104274 -4992, 0.007292, -0.992099, -0.069374, -0.104274 -4993, 0.007292, -0.992099, -0.069374, -0.104274 -4994, 0.007292, -0.992099, -0.069374, -0.104274 -4995, 0.007292, -0.992099, -0.069374, -0.104274 -4996, 0.007292, -0.992099, -0.069374, -0.104274 -4997, 0.007292, -0.992099, -0.069374, -0.104274 -4998, 0.007292, -0.992099, -0.069374, -0.104274 -4999, 0.007292, -0.992099, -0.069374, -0.104274 -5000, 0.011376, -0.987672, -0.086410, -0.130030 -5001, 0.011376, -0.987672, -0.086410, -0.130030 -5002, 0.011376, -0.987672, -0.086410, -0.130030 -5003, 0.011376, -0.987672, -0.086410, -0.130030 -5004, 0.011376, -0.987672, -0.086410, -0.130030 -5005, 0.011376, -0.987672, -0.086410, -0.130030 -5006, 0.011376, -0.987672, -0.086410, -0.130030 -5007, 0.011376, -0.987672, -0.086410, -0.130030 -5008, 0.011376, -0.987672, -0.086410, -0.130030 -5009, 0.011376, -0.987672, -0.086410, -0.130030 -5010, 0.011376, -0.987672, -0.086410, -0.130030 -5011, 0.011376, -0.987672, -0.086410, -0.130030 -5012, 0.011376, -0.987672, -0.086410, -0.130030 -5013, 0.011376, -0.987672, -0.086410, -0.130030 -5014, 0.011376, -0.987672, -0.086410, -0.130030 -5015, 0.011376, -0.987672, -0.086410, -0.130030 -5016, 0.011376, -0.987672, -0.086410, -0.130030 -5017, 0.011376, -0.987672, -0.086410, -0.130030 -5018, 0.011376, -0.987672, -0.086410, -0.130030 -5019, 0.011376, -0.987672, -0.086410, -0.130030 -5020, 0.011376, -0.987672, -0.086410, -0.130030 -5021, 0.011376, -0.987672, -0.086410, -0.130030 -5022, 0.011376, -0.987672, -0.086410, -0.130030 -5023, 0.011376, -0.987672, -0.086410, -0.130030 -5024, 0.011376, -0.987672, -0.086410, -0.130030 -5025, 0.011376, -0.987672, -0.086410, -0.130030 -5026, 0.011376, -0.987672, -0.086410, -0.130030 -5027, 0.011376, -0.987672, -0.086410, -0.130030 -5028, 0.011376, -0.987672, -0.086410, -0.130030 -5029, 0.011376, -0.987672, -0.086410, -0.130030 -5030, 0.011376, -0.987672, -0.086410, -0.130030 -5031, 0.011376, -0.987672, -0.086410, -0.130030 -5032, 0.011376, -0.987672, -0.086410, -0.130030 -5033, 0.011376, -0.987672, -0.086410, -0.130030 -5034, 0.011376, -0.987672, -0.086410, -0.130030 -5035, 0.011376, -0.987672, -0.086410, -0.130030 -5036, 0.011376, -0.987672, -0.086410, -0.130030 -5037, 0.011376, -0.987672, -0.086410, -0.130030 -5038, 0.011376, -0.987672, -0.086410, -0.130030 -5039, 0.011376, -0.987672, -0.086410, -0.130030 -5040, 0.011376, -0.987672, -0.086410, -0.130030 -5041, 0.011376, -0.987672, -0.086410, -0.130030 -5042, 0.011376, -0.987672, -0.086410, -0.130030 -5043, 0.011376, -0.987672, -0.086410, -0.130030 -5044, 0.011376, -0.987672, -0.086410, -0.130030 -5045, 0.011376, -0.987672, -0.086410, -0.130030 -5046, 0.011376, -0.987672, -0.086410, -0.130030 -5047, 0.011376, -0.987672, -0.086410, -0.130030 -5048, 0.011376, -0.987672, -0.086410, -0.130030 -5049, 0.011376, -0.987672, -0.086410, -0.130030 -5050, 0.011376, -0.987672, -0.086410, -0.130030 -5051, 0.011376, -0.987672, -0.086410, -0.130030 -5052, 0.011376, -0.987672, -0.086410, -0.130030 -5053, 0.011376, -0.987672, -0.086410, -0.130030 -5054, 0.011376, -0.987672, -0.086410, -0.130030 -5055, 0.011376, -0.987672, -0.086410, -0.130030 -5056, 0.011376, -0.987672, -0.086410, -0.130030 -5057, 0.011376, -0.987672, -0.086410, -0.130030 -5058, 0.011376, -0.987672, -0.086410, -0.130030 -5059, 0.011376, -0.987672, -0.086410, -0.130030 -5060, 0.011376, -0.987672, -0.086410, -0.130030 -5061, 0.011376, -0.987672, -0.086410, -0.130030 -5062, 0.011376, -0.987672, -0.086410, -0.130030 -5063, 0.011376, -0.987672, -0.086410, -0.130030 -5064, 0.011376, -0.987672, -0.086410, -0.130030 -5065, 0.011376, -0.987672, -0.086410, -0.130030 -5066, 0.011376, -0.987672, -0.086410, -0.130030 -5067, 0.011376, -0.987672, -0.086410, -0.130030 -5068, 0.011376, -0.987672, -0.086410, -0.130030 -5069, 0.011376, -0.987672, -0.086410, -0.130030 -5070, 0.011376, -0.987672, -0.086410, -0.130030 -5071, 0.011376, -0.987672, -0.086410, -0.130030 -5072, 0.011376, -0.987672, -0.086410, -0.130030 -5073, 0.011376, -0.987672, -0.086410, -0.130030 -5074, 0.011376, -0.987672, -0.086410, -0.130030 -5075, 0.011376, -0.987672, -0.086410, -0.130030 -5076, 0.011376, -0.987672, -0.086410, -0.130030 -5077, 0.011376, -0.987672, -0.086410, -0.130030 -5078, 0.011376, -0.987672, -0.086410, -0.130030 -5079, 0.011376, -0.987672, -0.086410, -0.130030 -5080, 0.011376, -0.987672, -0.086410, -0.130030 -5081, 0.011376, -0.987672, -0.086410, -0.130030 -5082, 0.011376, -0.987672, -0.086410, -0.130030 -5083, 0.011376, -0.987672, -0.086410, -0.130030 -5084, 0.011376, -0.987672, -0.086410, -0.130030 -5085, 0.011376, -0.987672, -0.086410, -0.130030 -5086, 0.011376, -0.987672, -0.086410, -0.130030 -5087, 0.011376, -0.987672, -0.086410, -0.130030 -5088, 0.011376, -0.987672, -0.086410, -0.130030 -5089, 0.011376, -0.987672, -0.086410, -0.130030 -5090, 0.011376, -0.987672, -0.086410, -0.130030 -5091, 0.011376, -0.987672, -0.086410, -0.130030 -5092, 0.011376, -0.987672, -0.086410, -0.130030 -5093, 0.011376, -0.987672, -0.086410, -0.130030 -5094, 0.011376, -0.987672, -0.086410, -0.130030 -5095, 0.011376, -0.987672, -0.086410, -0.130030 -5096, 0.011376, -0.987672, -0.086410, -0.130030 -5097, 0.011376, -0.987672, -0.086410, -0.130030 -5098, 0.011376, -0.987672, -0.086410, -0.130030 -5099, 0.011376, -0.987672, -0.086410, -0.130030 -5100, 0.016352, -0.982278, -0.103242, -0.155578 -5101, 0.016352, -0.982278, -0.103242, -0.155578 -5102, 0.016352, -0.982278, -0.103242, -0.155578 -5103, 0.016352, -0.982278, -0.103242, -0.155578 -5104, 0.016352, -0.982278, -0.103242, -0.155578 -5105, 0.016352, -0.982278, -0.103242, -0.155578 -5106, 0.016352, -0.982278, -0.103242, -0.155578 -5107, 0.016352, -0.982278, -0.103242, -0.155578 -5108, 0.016352, -0.982278, -0.103242, -0.155578 -5109, 0.016352, -0.982278, -0.103242, -0.155578 -5110, 0.016352, -0.982278, -0.103242, -0.155578 -5111, 0.016352, -0.982278, -0.103242, -0.155578 -5112, 0.016352, -0.982278, -0.103242, -0.155578 -5113, 0.016352, -0.982278, -0.103242, -0.155578 -5114, 0.016352, -0.982278, -0.103242, -0.155578 -5115, 0.016352, -0.982278, -0.103242, -0.155578 -5116, 0.016352, -0.982278, -0.103242, -0.155578 -5117, 0.016352, -0.982278, -0.103242, -0.155578 -5118, 0.016352, -0.982278, -0.103242, -0.155578 -5119, 0.016352, -0.982278, -0.103242, -0.155578 -5120, 0.016352, -0.982278, -0.103242, -0.155578 -5121, 0.016352, -0.982278, -0.103242, -0.155578 -5122, 0.016352, -0.982278, -0.103242, -0.155578 -5123, 0.016352, -0.982278, -0.103242, -0.155578 -5124, 0.016352, -0.982278, -0.103242, -0.155578 -5125, 0.016352, -0.982278, -0.103242, -0.155578 -5126, 0.016352, -0.982278, -0.103242, -0.155578 -5127, 0.016352, -0.982278, -0.103242, -0.155578 -5128, 0.016352, -0.982278, -0.103242, -0.155578 -5129, 0.016352, -0.982278, -0.103242, -0.155578 -5130, 0.016352, -0.982278, -0.103242, -0.155578 -5131, 0.016352, -0.982278, -0.103242, -0.155578 -5132, 0.016352, -0.982278, -0.103242, -0.155578 -5133, 0.016352, -0.982278, -0.103242, -0.155578 -5134, 0.016352, -0.982278, -0.103242, -0.155578 -5135, 0.016352, -0.982278, -0.103242, -0.155578 -5136, 0.016352, -0.982278, -0.103242, -0.155578 -5137, 0.016352, -0.982278, -0.103242, -0.155578 -5138, 0.016352, -0.982278, -0.103242, -0.155578 -5139, 0.016352, -0.982278, -0.103242, -0.155578 -5140, 0.016352, -0.982278, -0.103242, -0.155578 -5141, 0.016352, -0.982278, -0.103242, -0.155578 -5142, 0.016352, -0.982278, -0.103242, -0.155578 -5143, 0.016352, -0.982278, -0.103242, -0.155578 -5144, 0.016352, -0.982278, -0.103242, -0.155578 -5145, 0.016352, -0.982278, -0.103242, -0.155578 -5146, 0.016352, -0.982278, -0.103242, -0.155578 -5147, 0.016352, -0.982278, -0.103242, -0.155578 -5148, 0.016352, -0.982278, -0.103242, -0.155578 -5149, 0.016352, -0.982278, -0.103242, -0.155578 -5150, 0.016352, -0.982278, -0.103242, -0.155578 -5151, 0.016352, -0.982278, -0.103242, -0.155578 -5152, 0.016352, -0.982278, -0.103242, -0.155578 -5153, 0.016352, -0.982278, -0.103242, -0.155578 -5154, 0.016352, -0.982278, -0.103242, -0.155578 -5155, 0.016352, -0.982278, -0.103242, -0.155578 -5156, 0.016352, -0.982278, -0.103242, -0.155578 -5157, 0.016352, -0.982278, -0.103242, -0.155578 -5158, 0.016352, -0.982278, -0.103242, -0.155578 -5159, 0.016352, -0.982278, -0.103242, -0.155578 -5160, 0.016352, -0.982278, -0.103242, -0.155578 -5161, 0.016352, -0.982278, -0.103242, -0.155578 -5162, 0.016352, -0.982278, -0.103242, -0.155578 -5163, 0.016352, -0.982278, -0.103242, -0.155578 -5164, 0.016352, -0.982278, -0.103242, -0.155578 -5165, 0.016352, -0.982278, -0.103242, -0.155578 -5166, 0.016352, -0.982278, -0.103242, -0.155578 -5167, 0.016352, -0.982278, -0.103242, -0.155578 -5168, 0.016352, -0.982278, -0.103242, -0.155578 -5169, 0.016352, -0.982278, -0.103242, -0.155578 -5170, 0.016352, -0.982278, -0.103242, -0.155578 -5171, 0.016352, -0.982278, -0.103242, -0.155578 -5172, 0.016352, -0.982278, -0.103242, -0.155578 -5173, 0.016352, -0.982278, -0.103242, -0.155578 -5174, 0.016352, -0.982278, -0.103242, -0.155578 -5175, 0.016352, -0.982278, -0.103242, -0.155578 -5176, 0.016352, -0.982278, -0.103242, -0.155578 -5177, 0.016352, -0.982278, -0.103242, -0.155578 -5178, 0.016352, -0.982278, -0.103242, -0.155578 -5179, 0.016352, -0.982278, -0.103242, -0.155578 -5180, 0.016352, -0.982278, -0.103242, -0.155578 -5181, 0.016352, -0.982278, -0.103242, -0.155578 -5182, 0.016352, -0.982278, -0.103242, -0.155578 -5183, 0.016352, -0.982278, -0.103242, -0.155578 -5184, 0.016352, -0.982278, -0.103242, -0.155578 -5185, 0.016352, -0.982278, -0.103242, -0.155578 -5186, 0.016352, -0.982278, -0.103242, -0.155578 -5187, 0.016352, -0.982278, -0.103242, -0.155578 -5188, 0.016352, -0.982278, -0.103242, -0.155578 -5189, 0.016352, -0.982278, -0.103242, -0.155578 -5190, 0.016352, -0.982278, -0.103242, -0.155578 -5191, 0.016352, -0.982278, -0.103242, -0.155578 -5192, 0.016352, -0.982278, -0.103242, -0.155578 -5193, 0.016352, -0.982278, -0.103242, -0.155578 -5194, 0.016352, -0.982278, -0.103242, -0.155578 -5195, 0.016352, -0.982278, -0.103242, -0.155578 -5196, 0.016352, -0.982278, -0.103242, -0.155578 -5197, 0.016352, -0.982278, -0.103242, -0.155578 -5198, 0.016352, -0.982278, -0.103242, -0.155578 -5199, 0.016352, -0.982278, -0.103242, -0.155578 -5200, 0.022209, -0.975926, -0.119829, -0.180877 -5201, 0.022209, -0.975926, -0.119829, -0.180877 -5202, 0.022209, -0.975926, -0.119829, -0.180877 -5203, 0.022209, -0.975926, -0.119829, -0.180877 -5204, 0.022209, -0.975926, -0.119829, -0.180877 -5205, 0.022209, -0.975926, -0.119829, -0.180877 -5206, 0.022209, -0.975926, -0.119829, -0.180877 -5207, 0.022209, -0.975926, -0.119829, -0.180877 -5208, 0.022209, -0.975926, -0.119829, -0.180877 -5209, 0.022209, -0.975926, -0.119829, -0.180877 -5210, 0.022209, -0.975926, -0.119829, -0.180877 -5211, 0.022209, -0.975926, -0.119829, -0.180877 -5212, 0.022209, -0.975926, -0.119829, -0.180877 -5213, 0.022209, -0.975926, -0.119829, -0.180877 -5214, 0.022209, -0.975926, -0.119829, -0.180877 -5215, 0.022209, -0.975926, -0.119829, -0.180877 -5216, 0.022209, -0.975926, -0.119829, -0.180877 -5217, 0.022209, -0.975926, -0.119829, -0.180877 -5218, 0.022209, -0.975926, -0.119829, -0.180877 -5219, 0.022209, -0.975926, -0.119829, -0.180877 -5220, 0.022209, -0.975926, -0.119829, -0.180877 -5221, 0.022209, -0.975926, -0.119829, -0.180877 -5222, 0.022209, -0.975926, -0.119829, -0.180877 -5223, 0.022209, -0.975926, -0.119829, -0.180877 -5224, 0.022209, -0.975926, -0.119829, -0.180877 -5225, 0.022209, -0.975926, -0.119829, -0.180877 -5226, 0.022209, -0.975926, -0.119829, -0.180877 -5227, 0.022209, -0.975926, -0.119829, -0.180877 -5228, 0.022209, -0.975926, -0.119829, -0.180877 -5229, 0.022209, -0.975926, -0.119829, -0.180877 -5230, 0.022209, -0.975926, -0.119829, -0.180877 -5231, 0.022209, -0.975926, -0.119829, -0.180877 -5232, 0.022209, -0.975926, -0.119829, -0.180877 -5233, 0.022209, -0.975926, -0.119829, -0.180877 -5234, 0.022209, -0.975926, -0.119829, -0.180877 -5235, 0.022209, -0.975926, -0.119829, -0.180877 -5236, 0.022209, -0.975926, -0.119829, -0.180877 -5237, 0.022209, -0.975926, -0.119829, -0.180877 -5238, 0.022209, -0.975926, -0.119829, -0.180877 -5239, 0.022209, -0.975926, -0.119829, -0.180877 -5240, 0.022209, -0.975926, -0.119829, -0.180877 -5241, 0.022209, -0.975926, -0.119829, -0.180877 -5242, 0.022209, -0.975926, -0.119829, -0.180877 -5243, 0.022209, -0.975926, -0.119829, -0.180877 -5244, 0.022209, -0.975926, -0.119829, -0.180877 -5245, 0.022209, -0.975926, -0.119829, -0.180877 -5246, 0.022209, -0.975926, -0.119829, -0.180877 -5247, 0.022209, -0.975926, -0.119829, -0.180877 -5248, 0.022209, -0.975926, -0.119829, -0.180877 -5249, 0.022209, -0.975926, -0.119829, -0.180877 -5250, 0.022209, -0.975926, -0.119829, -0.180877 -5251, 0.022209, -0.975926, -0.119829, -0.180877 -5252, 0.022209, -0.975926, -0.119829, -0.180877 -5253, 0.022209, -0.975926, -0.119829, -0.180877 -5254, 0.022209, -0.975926, -0.119829, -0.180877 -5255, 0.022209, -0.975926, -0.119829, -0.180877 -5256, 0.022209, -0.975926, -0.119829, -0.180877 -5257, 0.022209, -0.975926, -0.119829, -0.180877 -5258, 0.022209, -0.975926, -0.119829, -0.180877 -5259, 0.022209, -0.975926, -0.119829, -0.180877 -5260, 0.022209, -0.975926, -0.119829, -0.180877 -5261, 0.022209, -0.975926, -0.119829, -0.180877 -5262, 0.022209, -0.975926, -0.119829, -0.180877 -5263, 0.022209, -0.975926, -0.119829, -0.180877 -5264, 0.022209, -0.975926, -0.119829, -0.180877 -5265, 0.022209, -0.975926, -0.119829, -0.180877 -5266, 0.022209, -0.975926, -0.119829, -0.180877 -5267, 0.022209, -0.975926, -0.119829, -0.180877 -5268, 0.022209, -0.975926, -0.119829, -0.180877 -5269, 0.022209, -0.975926, -0.119829, -0.180877 -5270, 0.022209, -0.975926, -0.119829, -0.180877 -5271, 0.022209, -0.975926, -0.119829, -0.180877 -5272, 0.022209, -0.975926, -0.119829, -0.180877 -5273, 0.022209, -0.975926, -0.119829, -0.180877 -5274, 0.022209, -0.975926, -0.119829, -0.180877 -5275, 0.022209, -0.975926, -0.119829, -0.180877 -5276, 0.022209, -0.975926, -0.119829, -0.180877 -5277, 0.022209, -0.975926, -0.119829, -0.180877 -5278, 0.022209, -0.975926, -0.119829, -0.180877 -5279, 0.022209, -0.975926, -0.119829, -0.180877 -5280, 0.022209, -0.975926, -0.119829, -0.180877 -5281, 0.022209, -0.975926, -0.119829, -0.180877 -5282, 0.022209, -0.975926, -0.119829, -0.180877 -5283, 0.022209, -0.975926, -0.119829, -0.180877 -5284, 0.022209, -0.975926, -0.119829, -0.180877 -5285, 0.022209, -0.975926, -0.119829, -0.180877 -5286, 0.022209, -0.975926, -0.119829, -0.180877 -5287, 0.022209, -0.975926, -0.119829, -0.180877 -5288, 0.022209, -0.975926, -0.119829, -0.180877 -5289, 0.022209, -0.975926, -0.119829, -0.180877 -5290, 0.022209, -0.975926, -0.119829, -0.180877 -5291, 0.022209, -0.975926, -0.119829, -0.180877 -5292, 0.022209, -0.975926, -0.119829, -0.180877 -5293, 0.022209, -0.975926, -0.119829, -0.180877 -5294, 0.022209, -0.975926, -0.119829, -0.180877 -5295, 0.022209, -0.975926, -0.119829, -0.180877 -5296, 0.022209, -0.975926, -0.119829, -0.180877 -5297, 0.022209, -0.975926, -0.119829, -0.180877 -5298, 0.022209, -0.975926, -0.119829, -0.180877 -5299, 0.022209, -0.975926, -0.119829, -0.180877 -5300, 0.028936, -0.968628, -0.136132, -0.205888 -5301, 0.028936, -0.968628, -0.136132, -0.205888 -5302, 0.028936, -0.968628, -0.136132, -0.205888 -5303, 0.028936, -0.968628, -0.136132, -0.205888 -5304, 0.028936, -0.968628, -0.136132, -0.205888 -5305, 0.028936, -0.968628, -0.136132, -0.205888 -5306, 0.028936, -0.968628, -0.136132, -0.205888 -5307, 0.028936, -0.968628, -0.136132, -0.205888 -5308, 0.028936, -0.968628, -0.136132, -0.205888 -5309, 0.028936, -0.968628, -0.136132, -0.205888 -5310, 0.028936, -0.968628, -0.136132, -0.205888 -5311, 0.028936, -0.968628, -0.136132, -0.205888 -5312, 0.028936, -0.968628, -0.136132, -0.205888 -5313, 0.028936, -0.968628, -0.136132, -0.205888 -5314, 0.028936, -0.968628, -0.136132, -0.205888 -5315, 0.028936, -0.968628, -0.136132, -0.205888 -5316, 0.028936, -0.968628, -0.136132, -0.205888 -5317, 0.028936, -0.968628, -0.136132, -0.205888 -5318, 0.028936, -0.968628, -0.136132, -0.205888 -5319, 0.028936, -0.968628, -0.136132, -0.205888 -5320, 0.028936, -0.968628, -0.136132, -0.205888 -5321, 0.028936, -0.968628, -0.136132, -0.205888 -5322, 0.028936, -0.968628, -0.136132, -0.205888 -5323, 0.028936, -0.968628, -0.136132, -0.205888 -5324, 0.028936, -0.968628, -0.136132, -0.205888 -5325, 0.028936, -0.968628, -0.136132, -0.205888 -5326, 0.028936, -0.968628, -0.136132, -0.205888 -5327, 0.028936, -0.968628, -0.136132, -0.205888 -5328, 0.028936, -0.968628, -0.136132, -0.205888 -5329, 0.028936, -0.968628, -0.136132, -0.205888 -5330, 0.028936, -0.968628, -0.136132, -0.205888 -5331, 0.028936, -0.968628, -0.136132, -0.205888 -5332, 0.028936, -0.968628, -0.136132, -0.205888 -5333, 0.028936, -0.968628, -0.136132, -0.205888 -5334, 0.028936, -0.968628, -0.136132, -0.205888 -5335, 0.028936, -0.968628, -0.136132, -0.205888 -5336, 0.028936, -0.968628, -0.136132, -0.205888 -5337, 0.028936, -0.968628, -0.136132, -0.205888 -5338, 0.028936, -0.968628, -0.136132, -0.205888 -5339, 0.028936, -0.968628, -0.136132, -0.205888 -5340, 0.028936, -0.968628, -0.136132, -0.205888 -5341, 0.028936, -0.968628, -0.136132, -0.205888 -5342, 0.028936, -0.968628, -0.136132, -0.205888 -5343, 0.028936, -0.968628, -0.136132, -0.205888 -5344, 0.028936, -0.968628, -0.136132, -0.205888 -5345, 0.028936, -0.968628, -0.136132, -0.205888 -5346, 0.028936, -0.968628, -0.136132, -0.205888 -5347, 0.028936, -0.968628, -0.136132, -0.205888 -5348, 0.028936, -0.968628, -0.136132, -0.205888 -5349, 0.028936, -0.968628, -0.136132, -0.205888 -5350, 0.028936, -0.968628, -0.136132, -0.205888 -5351, 0.028936, -0.968628, -0.136132, -0.205888 -5352, 0.028936, -0.968628, -0.136132, -0.205888 -5353, 0.028936, -0.968628, -0.136132, -0.205888 -5354, 0.028936, -0.968628, -0.136132, -0.205888 -5355, 0.028936, -0.968628, -0.136132, -0.205888 -5356, 0.028936, -0.968628, -0.136132, -0.205888 -5357, 0.028936, -0.968628, -0.136132, -0.205888 -5358, 0.028936, -0.968628, -0.136132, -0.205888 -5359, 0.028936, -0.968628, -0.136132, -0.205888 -5360, 0.028936, -0.968628, -0.136132, -0.205888 -5361, 0.028936, -0.968628, -0.136132, -0.205888 -5362, 0.028936, -0.968628, -0.136132, -0.205888 -5363, 0.028936, -0.968628, -0.136132, -0.205888 -5364, 0.028936, -0.968628, -0.136132, -0.205888 -5365, 0.028936, -0.968628, -0.136132, -0.205888 -5366, 0.028936, -0.968628, -0.136132, -0.205888 -5367, 0.028936, -0.968628, -0.136132, -0.205888 -5368, 0.028936, -0.968628, -0.136132, -0.205888 -5369, 0.028936, -0.968628, -0.136132, -0.205888 -5370, 0.028936, -0.968628, -0.136132, -0.205888 -5371, 0.028936, -0.968628, -0.136132, -0.205888 -5372, 0.028936, -0.968628, -0.136132, -0.205888 -5373, 0.028936, -0.968628, -0.136132, -0.205888 -5374, 0.028936, -0.968628, -0.136132, -0.205888 -5375, 0.028936, -0.968628, -0.136132, -0.205888 -5376, 0.028936, -0.968628, -0.136132, -0.205888 -5377, 0.028936, -0.968628, -0.136132, -0.205888 -5378, 0.028936, -0.968628, -0.136132, -0.205888 -5379, 0.028936, -0.968628, -0.136132, -0.205888 -5380, 0.028936, -0.968628, -0.136132, -0.205888 -5381, 0.028936, -0.968628, -0.136132, -0.205888 -5382, 0.028936, -0.968628, -0.136132, -0.205888 -5383, 0.028936, -0.968628, -0.136132, -0.205888 -5384, 0.028936, -0.968628, -0.136132, -0.205888 -5385, 0.028936, -0.968628, -0.136132, -0.205888 -5386, 0.028936, -0.968628, -0.136132, -0.205888 -5387, 0.028936, -0.968628, -0.136132, -0.205888 -5388, 0.028936, -0.968628, -0.136132, -0.205888 -5389, 0.028936, -0.968628, -0.136132, -0.205888 -5390, 0.028936, -0.968628, -0.136132, -0.205888 -5391, 0.028936, -0.968628, -0.136132, -0.205888 -5392, 0.028936, -0.968628, -0.136132, -0.205888 -5393, 0.028936, -0.968628, -0.136132, -0.205888 -5394, 0.028936, -0.968628, -0.136132, -0.205888 -5395, 0.028936, -0.968628, -0.136132, -0.205888 -5396, 0.028936, -0.968628, -0.136132, -0.205888 -5397, 0.028936, -0.968628, -0.136132, -0.205888 -5398, 0.028936, -0.968628, -0.136132, -0.205888 -5399, 0.028936, -0.968628, -0.136132, -0.205888 -5400, 0.036519, -0.960398, -0.152112, -0.230571 -5401, 0.036519, -0.960398, -0.152112, -0.230571 -5402, 0.036519, -0.960398, -0.152112, -0.230571 -5403, 0.036519, -0.960398, -0.152112, -0.230571 -5404, 0.036519, -0.960398, -0.152112, -0.230571 -5405, 0.036519, -0.960398, -0.152112, -0.230571 -5406, 0.036519, -0.960398, -0.152112, -0.230571 -5407, 0.036519, -0.960398, -0.152112, -0.230571 -5408, 0.036519, -0.960398, -0.152112, -0.230571 -5409, 0.036519, -0.960398, -0.152112, -0.230571 -5410, 0.036519, -0.960398, -0.152112, -0.230571 -5411, 0.036519, -0.960398, -0.152112, -0.230571 -5412, 0.036519, -0.960398, -0.152112, -0.230571 -5413, 0.036519, -0.960398, -0.152112, -0.230571 -5414, 0.036519, -0.960398, -0.152112, -0.230571 -5415, 0.036519, -0.960398, -0.152112, -0.230571 -5416, 0.036519, -0.960398, -0.152112, -0.230571 -5417, 0.036519, -0.960398, -0.152112, -0.230571 -5418, 0.036519, -0.960398, -0.152112, -0.230571 -5419, 0.036519, -0.960398, -0.152112, -0.230571 -5420, 0.036519, -0.960398, -0.152112, -0.230571 -5421, 0.036519, -0.960398, -0.152112, -0.230571 -5422, 0.036519, -0.960398, -0.152112, -0.230571 -5423, 0.036519, -0.960398, -0.152112, -0.230571 -5424, 0.036519, -0.960398, -0.152112, -0.230571 -5425, 0.036519, -0.960398, -0.152112, -0.230571 -5426, 0.036519, -0.960398, -0.152112, -0.230571 -5427, 0.036519, -0.960398, -0.152112, -0.230571 -5428, 0.036519, -0.960398, -0.152112, -0.230571 -5429, 0.036519, -0.960398, -0.152112, -0.230571 -5430, 0.036519, -0.960398, -0.152112, -0.230571 -5431, 0.036519, -0.960398, -0.152112, -0.230571 -5432, 0.036519, -0.960398, -0.152112, -0.230571 -5433, 0.036519, -0.960398, -0.152112, -0.230571 -5434, 0.036519, -0.960398, -0.152112, -0.230571 -5435, 0.036519, -0.960398, -0.152112, -0.230571 -5436, 0.036519, -0.960398, -0.152112, -0.230571 -5437, 0.036519, -0.960398, -0.152112, -0.230571 -5438, 0.036519, -0.960398, -0.152112, -0.230571 -5439, 0.036519, -0.960398, -0.152112, -0.230571 -5440, 0.036519, -0.960398, -0.152112, -0.230571 -5441, 0.036519, -0.960398, -0.152112, -0.230571 -5442, 0.036519, -0.960398, -0.152112, -0.230571 -5443, 0.036519, -0.960398, -0.152112, -0.230571 -5444, 0.036519, -0.960398, -0.152112, -0.230571 -5445, 0.036519, -0.960398, -0.152112, -0.230571 -5446, 0.036519, -0.960398, -0.152112, -0.230571 -5447, 0.036519, -0.960398, -0.152112, -0.230571 -5448, 0.036519, -0.960398, -0.152112, -0.230571 -5449, 0.036519, -0.960398, -0.152112, -0.230571 -5450, 0.036519, -0.960398, -0.152112, -0.230571 -5451, 0.036519, -0.960398, -0.152112, -0.230571 -5452, 0.036519, -0.960398, -0.152112, -0.230571 -5453, 0.036519, -0.960398, -0.152112, -0.230571 -5454, 0.036519, -0.960398, -0.152112, -0.230571 -5455, 0.036519, -0.960398, -0.152112, -0.230571 -5456, 0.036519, -0.960398, -0.152112, -0.230571 -5457, 0.036519, -0.960398, -0.152112, -0.230571 -5458, 0.036519, -0.960398, -0.152112, -0.230571 -5459, 0.036519, -0.960398, -0.152112, -0.230571 -5460, 0.036519, -0.960398, -0.152112, -0.230571 -5461, 0.036519, -0.960398, -0.152112, -0.230571 -5462, 0.036519, -0.960398, -0.152112, -0.230571 -5463, 0.036519, -0.960398, -0.152112, -0.230571 -5464, 0.036519, -0.960398, -0.152112, -0.230571 -5465, 0.036519, -0.960398, -0.152112, -0.230571 -5466, 0.036519, -0.960398, -0.152112, -0.230571 -5467, 0.036519, -0.960398, -0.152112, -0.230571 -5468, 0.036519, -0.960398, -0.152112, -0.230571 -5469, 0.036519, -0.960398, -0.152112, -0.230571 -5470, 0.036519, -0.960398, -0.152112, -0.230571 -5471, 0.036519, -0.960398, -0.152112, -0.230571 -5472, 0.036519, -0.960398, -0.152112, -0.230571 -5473, 0.036519, -0.960398, -0.152112, -0.230571 -5474, 0.036519, -0.960398, -0.152112, -0.230571 -5475, 0.036519, -0.960398, -0.152112, -0.230571 -5476, 0.036519, -0.960398, -0.152112, -0.230571 -5477, 0.036519, -0.960398, -0.152112, -0.230571 -5478, 0.036519, -0.960398, -0.152112, -0.230571 -5479, 0.036519, -0.960398, -0.152112, -0.230571 -5480, 0.036519, -0.960398, -0.152112, -0.230571 -5481, 0.036519, -0.960398, -0.152112, -0.230571 -5482, 0.036519, -0.960398, -0.152112, -0.230571 -5483, 0.036519, -0.960398, -0.152112, -0.230571 -5484, 0.036519, -0.960398, -0.152112, -0.230571 -5485, 0.036519, -0.960398, -0.152112, -0.230571 -5486, 0.036519, -0.960398, -0.152112, -0.230571 -5487, 0.036519, -0.960398, -0.152112, -0.230571 -5488, 0.036519, -0.960398, -0.152112, -0.230571 -5489, 0.036519, -0.960398, -0.152112, -0.230571 -5490, 0.036519, -0.960398, -0.152112, -0.230571 -5491, 0.036519, -0.960398, -0.152112, -0.230571 -5492, 0.036519, -0.960398, -0.152112, -0.230571 -5493, 0.036519, -0.960398, -0.152112, -0.230571 -5494, 0.036519, -0.960398, -0.152112, -0.230571 -5495, 0.036519, -0.960398, -0.152112, -0.230571 -5496, 0.036519, -0.960398, -0.152112, -0.230571 -5497, 0.036519, -0.960398, -0.152112, -0.230571 -5498, 0.036519, -0.960398, -0.152112, -0.230571 -5499, 0.036519, -0.960398, -0.152112, -0.230571 -5500, 0.044943, -0.951251, -0.167731, -0.254887 -5501, 0.044943, -0.951251, -0.167731, -0.254887 -5502, 0.044943, -0.951251, -0.167731, -0.254887 -5503, 0.044943, -0.951251, -0.167731, -0.254887 -5504, 0.044943, -0.951251, -0.167731, -0.254887 -5505, 0.044943, -0.951251, -0.167731, -0.254887 -5506, 0.044943, -0.951251, -0.167731, -0.254887 -5507, 0.044943, -0.951251, -0.167731, -0.254887 -5508, 0.044943, -0.951251, -0.167731, -0.254887 -5509, 0.044943, -0.951251, -0.167731, -0.254887 -5510, 0.044943, -0.951251, -0.167731, -0.254887 -5511, 0.044943, -0.951251, -0.167731, -0.254887 -5512, 0.044943, -0.951251, -0.167731, -0.254887 -5513, 0.044943, -0.951251, -0.167731, -0.254887 -5514, 0.044943, -0.951251, -0.167731, -0.254887 -5515, 0.044943, -0.951251, -0.167731, -0.254887 -5516, 0.044943, -0.951251, -0.167731, -0.254887 -5517, 0.044943, -0.951251, -0.167731, -0.254887 -5518, 0.044943, -0.951251, -0.167731, -0.254887 -5519, 0.044943, -0.951251, -0.167731, -0.254887 -5520, 0.044943, -0.951251, -0.167731, -0.254887 -5521, 0.044943, -0.951251, -0.167731, -0.254887 -5522, 0.044943, -0.951251, -0.167731, -0.254887 -5523, 0.044943, -0.951251, -0.167731, -0.254887 -5524, 0.044943, -0.951251, -0.167731, -0.254887 -5525, 0.044943, -0.951251, -0.167731, -0.254887 -5526, 0.044943, -0.951251, -0.167731, -0.254887 -5527, 0.044943, -0.951251, -0.167731, -0.254887 -5528, 0.044943, -0.951251, -0.167731, -0.254887 -5529, 0.044943, -0.951251, -0.167731, -0.254887 -5530, 0.044943, -0.951251, -0.167731, -0.254887 -5531, 0.044943, -0.951251, -0.167731, -0.254887 -5532, 0.044943, -0.951251, -0.167731, -0.254887 -5533, 0.044943, -0.951251, -0.167731, -0.254887 -5534, 0.044943, -0.951251, -0.167731, -0.254887 -5535, 0.044943, -0.951251, -0.167731, -0.254887 -5536, 0.044943, -0.951251, -0.167731, -0.254887 -5537, 0.044943, -0.951251, -0.167731, -0.254887 -5538, 0.044943, -0.951251, -0.167731, -0.254887 -5539, 0.044943, -0.951251, -0.167731, -0.254887 -5540, 0.044943, -0.951251, -0.167731, -0.254887 -5541, 0.044943, -0.951251, -0.167731, -0.254887 -5542, 0.044943, -0.951251, -0.167731, -0.254887 -5543, 0.044943, -0.951251, -0.167731, -0.254887 -5544, 0.044943, -0.951251, -0.167731, -0.254887 -5545, 0.044943, -0.951251, -0.167731, -0.254887 -5546, 0.044943, -0.951251, -0.167731, -0.254887 -5547, 0.044943, -0.951251, -0.167731, -0.254887 -5548, 0.044943, -0.951251, -0.167731, -0.254887 -5549, 0.044943, -0.951251, -0.167731, -0.254887 -5550, 0.044943, -0.951251, -0.167731, -0.254887 -5551, 0.044943, -0.951251, -0.167731, -0.254887 -5552, 0.044943, -0.951251, -0.167731, -0.254887 -5553, 0.044943, -0.951251, -0.167731, -0.254887 -5554, 0.044943, -0.951251, -0.167731, -0.254887 -5555, 0.044943, -0.951251, -0.167731, -0.254887 -5556, 0.044943, -0.951251, -0.167731, -0.254887 -5557, 0.044943, -0.951251, -0.167731, -0.254887 -5558, 0.044943, -0.951251, -0.167731, -0.254887 -5559, 0.044943, -0.951251, -0.167731, -0.254887 -5560, 0.044943, -0.951251, -0.167731, -0.254887 -5561, 0.044943, -0.951251, -0.167731, -0.254887 -5562, 0.044943, -0.951251, -0.167731, -0.254887 -5563, 0.044943, -0.951251, -0.167731, -0.254887 -5564, 0.044943, -0.951251, -0.167731, -0.254887 -5565, 0.044943, -0.951251, -0.167731, -0.254887 -5566, 0.044943, -0.951251, -0.167731, -0.254887 -5567, 0.044943, -0.951251, -0.167731, -0.254887 -5568, 0.044943, -0.951251, -0.167731, -0.254887 -5569, 0.044943, -0.951251, -0.167731, -0.254887 -5570, 0.044943, -0.951251, -0.167731, -0.254887 -5571, 0.044943, -0.951251, -0.167731, -0.254887 -5572, 0.044943, -0.951251, -0.167731, -0.254887 -5573, 0.044943, -0.951251, -0.167731, -0.254887 -5574, 0.044943, -0.951251, -0.167731, -0.254887 -5575, 0.044943, -0.951251, -0.167731, -0.254887 -5576, 0.044943, -0.951251, -0.167731, -0.254887 -5577, 0.044943, -0.951251, -0.167731, -0.254887 -5578, 0.044943, -0.951251, -0.167731, -0.254887 -5579, 0.044943, -0.951251, -0.167731, -0.254887 -5580, 0.044943, -0.951251, -0.167731, -0.254887 -5581, 0.044943, -0.951251, -0.167731, -0.254887 -5582, 0.044943, -0.951251, -0.167731, -0.254887 -5583, 0.044943, -0.951251, -0.167731, -0.254887 -5584, 0.044943, -0.951251, -0.167731, -0.254887 -5585, 0.044943, -0.951251, -0.167731, -0.254887 -5586, 0.044943, -0.951251, -0.167731, -0.254887 -5587, 0.044943, -0.951251, -0.167731, -0.254887 -5588, 0.044943, -0.951251, -0.167731, -0.254887 -5589, 0.044943, -0.951251, -0.167731, -0.254887 -5590, 0.044943, -0.951251, -0.167731, -0.254887 -5591, 0.044943, -0.951251, -0.167731, -0.254887 -5592, 0.044943, -0.951251, -0.167731, -0.254887 -5593, 0.044943, -0.951251, -0.167731, -0.254887 -5594, 0.044943, -0.951251, -0.167731, -0.254887 -5595, 0.044943, -0.951251, -0.167731, -0.254887 -5596, 0.044943, -0.951251, -0.167731, -0.254887 -5597, 0.044943, -0.951251, -0.167731, -0.254887 -5598, 0.044943, -0.951251, -0.167731, -0.254887 -5599, 0.044943, -0.951251, -0.167731, -0.254887 -5600, 0.054193, -0.941204, -0.182951, -0.278797 -5601, 0.054193, -0.941204, -0.182951, -0.278797 -5602, 0.054193, -0.941204, -0.182951, -0.278797 -5603, 0.054193, -0.941204, -0.182951, -0.278797 -5604, 0.054193, -0.941204, -0.182951, -0.278797 -5605, 0.054193, -0.941204, -0.182951, -0.278797 -5606, 0.054193, -0.941204, -0.182951, -0.278797 -5607, 0.054193, -0.941204, -0.182951, -0.278797 -5608, 0.054193, -0.941204, -0.182951, -0.278797 -5609, 0.054193, -0.941204, -0.182951, -0.278797 -5610, 0.054193, -0.941204, -0.182951, -0.278797 -5611, 0.054193, -0.941204, -0.182951, -0.278797 -5612, 0.054193, -0.941204, -0.182951, -0.278797 -5613, 0.054193, -0.941204, -0.182951, -0.278797 -5614, 0.054193, -0.941204, -0.182951, -0.278797 -5615, 0.054193, -0.941204, -0.182951, -0.278797 -5616, 0.054193, -0.941204, -0.182951, -0.278797 -5617, 0.054193, -0.941204, -0.182951, -0.278797 -5618, 0.054193, -0.941204, -0.182951, -0.278797 -5619, 0.054193, -0.941204, -0.182951, -0.278797 -5620, 0.054193, -0.941204, -0.182951, -0.278797 -5621, 0.054193, -0.941204, -0.182951, -0.278797 -5622, 0.054193, -0.941204, -0.182951, -0.278797 -5623, 0.054193, -0.941204, -0.182951, -0.278797 -5624, 0.054193, -0.941204, -0.182951, -0.278797 -5625, 0.054193, -0.941204, -0.182951, -0.278797 -5626, 0.054193, -0.941204, -0.182951, -0.278797 -5627, 0.054193, -0.941204, -0.182951, -0.278797 -5628, 0.054193, -0.941204, -0.182951, -0.278797 -5629, 0.054193, -0.941204, -0.182951, -0.278797 -5630, 0.054193, -0.941204, -0.182951, -0.278797 -5631, 0.054193, -0.941204, -0.182951, -0.278797 -5632, 0.054193, -0.941204, -0.182951, -0.278797 -5633, 0.054193, -0.941204, -0.182951, -0.278797 -5634, 0.054193, -0.941204, -0.182951, -0.278797 -5635, 0.054193, -0.941204, -0.182951, -0.278797 -5636, 0.054193, -0.941204, -0.182951, -0.278797 -5637, 0.054193, -0.941204, -0.182951, -0.278797 -5638, 0.054193, -0.941204, -0.182951, -0.278797 -5639, 0.054193, -0.941204, -0.182951, -0.278797 -5640, 0.054193, -0.941204, -0.182951, -0.278797 -5641, 0.054193, -0.941204, -0.182951, -0.278797 -5642, 0.054193, -0.941204, -0.182951, -0.278797 -5643, 0.054193, -0.941204, -0.182951, -0.278797 -5644, 0.054193, -0.941204, -0.182951, -0.278797 -5645, 0.054193, -0.941204, -0.182951, -0.278797 -5646, 0.054193, -0.941204, -0.182951, -0.278797 -5647, 0.054193, -0.941204, -0.182951, -0.278797 -5648, 0.054193, -0.941204, -0.182951, -0.278797 -5649, 0.054193, -0.941204, -0.182951, -0.278797 -5650, 0.054193, -0.941204, -0.182951, -0.278797 -5651, 0.054193, -0.941204, -0.182951, -0.278797 -5652, 0.054193, -0.941204, -0.182951, -0.278797 -5653, 0.054193, -0.941204, -0.182951, -0.278797 -5654, 0.054193, -0.941204, -0.182951, -0.278797 -5655, 0.054193, -0.941204, -0.182951, -0.278797 -5656, 0.054193, -0.941204, -0.182951, -0.278797 -5657, 0.054193, -0.941204, -0.182951, -0.278797 -5658, 0.054193, -0.941204, -0.182951, -0.278797 -5659, 0.054193, -0.941204, -0.182951, -0.278797 -5660, 0.054193, -0.941204, -0.182951, -0.278797 -5661, 0.054193, -0.941204, -0.182951, -0.278797 -5662, 0.054193, -0.941204, -0.182951, -0.278797 -5663, 0.054193, -0.941204, -0.182951, -0.278797 -5664, 0.054193, -0.941204, -0.182951, -0.278797 -5665, 0.054193, -0.941204, -0.182951, -0.278797 -5666, 0.054193, -0.941204, -0.182951, -0.278797 -5667, 0.054193, -0.941204, -0.182951, -0.278797 -5668, 0.054193, -0.941204, -0.182951, -0.278797 -5669, 0.054193, -0.941204, -0.182951, -0.278797 -5670, 0.054193, -0.941204, -0.182951, -0.278797 -5671, 0.054193, -0.941204, -0.182951, -0.278797 -5672, 0.054193, -0.941204, -0.182951, -0.278797 -5673, 0.054193, -0.941204, -0.182951, -0.278797 -5674, 0.054193, -0.941204, -0.182951, -0.278797 -5675, 0.054193, -0.941204, -0.182951, -0.278797 -5676, 0.054193, -0.941204, -0.182951, -0.278797 -5677, 0.054193, -0.941204, -0.182951, -0.278797 -5678, 0.054193, -0.941204, -0.182951, -0.278797 -5679, 0.054193, -0.941204, -0.182951, -0.278797 -5680, 0.054193, -0.941204, -0.182951, -0.278797 -5681, 0.054193, -0.941204, -0.182951, -0.278797 -5682, 0.054193, -0.941204, -0.182951, -0.278797 -5683, 0.054193, -0.941204, -0.182951, -0.278797 -5684, 0.054193, -0.941204, -0.182951, -0.278797 -5685, 0.054193, -0.941204, -0.182951, -0.278797 -5686, 0.054193, -0.941204, -0.182951, -0.278797 -5687, 0.054193, -0.941204, -0.182951, -0.278797 -5688, 0.054193, -0.941204, -0.182951, -0.278797 -5689, 0.054193, -0.941204, -0.182951, -0.278797 -5690, 0.054193, -0.941204, -0.182951, -0.278797 -5691, 0.054193, -0.941204, -0.182951, -0.278797 -5692, 0.054193, -0.941204, -0.182951, -0.278797 -5693, 0.054193, -0.941204, -0.182951, -0.278797 -5694, 0.054193, -0.941204, -0.182951, -0.278797 -5695, 0.054193, -0.941204, -0.182951, -0.278797 -5696, 0.054193, -0.941204, -0.182951, -0.278797 -5697, 0.054193, -0.941204, -0.182951, -0.278797 -5698, 0.054193, -0.941204, -0.182951, -0.278797 -5699, 0.054193, -0.941204, -0.182951, -0.278797 -5700, 0.064248, -0.930274, -0.197736, -0.302264 -5701, 0.064248, -0.930274, -0.197736, -0.302264 -5702, 0.064248, -0.930274, -0.197736, -0.302264 -5703, 0.064248, -0.930274, -0.197736, -0.302264 -5704, 0.064248, -0.930274, -0.197736, -0.302264 -5705, 0.064248, -0.930274, -0.197736, -0.302264 -5706, 0.064248, -0.930274, -0.197736, -0.302264 -5707, 0.064248, -0.930274, -0.197736, -0.302264 -5708, 0.064248, -0.930274, -0.197736, -0.302264 -5709, 0.064248, -0.930274, -0.197736, -0.302264 -5710, 0.064248, -0.930274, -0.197736, -0.302264 -5711, 0.064248, -0.930274, -0.197736, -0.302264 -5712, 0.064248, -0.930274, -0.197736, -0.302264 -5713, 0.064248, -0.930274, -0.197736, -0.302264 -5714, 0.064248, -0.930274, -0.197736, -0.302264 -5715, 0.064248, -0.930274, -0.197736, -0.302264 -5716, 0.064248, -0.930274, -0.197736, -0.302264 -5717, 0.064248, -0.930274, -0.197736, -0.302264 -5718, 0.064248, -0.930274, -0.197736, -0.302264 -5719, 0.064248, -0.930274, -0.197736, -0.302264 -5720, 0.064248, -0.930274, -0.197736, -0.302264 -5721, 0.064248, -0.930274, -0.197736, -0.302264 -5722, 0.064248, -0.930274, -0.197736, -0.302264 -5723, 0.064248, -0.930274, -0.197736, -0.302264 -5724, 0.064248, -0.930274, -0.197736, -0.302264 -5725, 0.064248, -0.930274, -0.197736, -0.302264 -5726, 0.064248, -0.930274, -0.197736, -0.302264 -5727, 0.064248, -0.930274, -0.197736, -0.302264 -5728, 0.064248, -0.930274, -0.197736, -0.302264 -5729, 0.064248, -0.930274, -0.197736, -0.302264 -5730, 0.064248, -0.930274, -0.197736, -0.302264 -5731, 0.064248, -0.930274, -0.197736, -0.302264 -5732, 0.064248, -0.930274, -0.197736, -0.302264 -5733, 0.064248, -0.930274, -0.197736, -0.302264 -5734, 0.064248, -0.930274, -0.197736, -0.302264 -5735, 0.064248, -0.930274, -0.197736, -0.302264 -5736, 0.064248, -0.930274, -0.197736, -0.302264 -5737, 0.064248, -0.930274, -0.197736, -0.302264 -5738, 0.064248, -0.930274, -0.197736, -0.302264 -5739, 0.064248, -0.930274, -0.197736, -0.302264 -5740, 0.064248, -0.930274, -0.197736, -0.302264 -5741, 0.064248, -0.930274, -0.197736, -0.302264 -5742, 0.064248, -0.930274, -0.197736, -0.302264 -5743, 0.064248, -0.930274, -0.197736, -0.302264 -5744, 0.064248, -0.930274, -0.197736, -0.302264 -5745, 0.064248, -0.930274, -0.197736, -0.302264 -5746, 0.064248, -0.930274, -0.197736, -0.302264 -5747, 0.064248, -0.930274, -0.197736, -0.302264 -5748, 0.064248, -0.930274, -0.197736, -0.302264 -5749, 0.064248, -0.930274, -0.197736, -0.302264 -5750, 0.064248, -0.930274, -0.197736, -0.302264 -5751, 0.064248, -0.930274, -0.197736, -0.302264 -5752, 0.064248, -0.930274, -0.197736, -0.302264 -5753, 0.064248, -0.930274, -0.197736, -0.302264 -5754, 0.064248, -0.930274, -0.197736, -0.302264 -5755, 0.064248, -0.930274, -0.197736, -0.302264 -5756, 0.064248, -0.930274, -0.197736, -0.302264 -5757, 0.064248, -0.930274, -0.197736, -0.302264 -5758, 0.064248, -0.930274, -0.197736, -0.302264 -5759, 0.064248, -0.930274, -0.197736, -0.302264 -5760, 0.064248, -0.930274, -0.197736, -0.302264 -5761, 0.064248, -0.930274, -0.197736, -0.302264 -5762, 0.064248, -0.930274, -0.197736, -0.302264 -5763, 0.064248, -0.930274, -0.197736, -0.302264 -5764, 0.064248, -0.930274, -0.197736, -0.302264 -5765, 0.064248, -0.930274, -0.197736, -0.302264 -5766, 0.064248, -0.930274, -0.197736, -0.302264 -5767, 0.064248, -0.930274, -0.197736, -0.302264 -5768, 0.064248, -0.930274, -0.197736, -0.302264 -5769, 0.064248, -0.930274, -0.197736, -0.302264 -5770, 0.064248, -0.930274, -0.197736, -0.302264 -5771, 0.064248, -0.930274, -0.197736, -0.302264 -5772, 0.064248, -0.930274, -0.197736, -0.302264 -5773, 0.064248, -0.930274, -0.197736, -0.302264 -5774, 0.064248, -0.930274, -0.197736, -0.302264 -5775, 0.064248, -0.930274, -0.197736, -0.302264 -5776, 0.064248, -0.930274, -0.197736, -0.302264 -5777, 0.064248, -0.930274, -0.197736, -0.302264 -5778, 0.064248, -0.930274, -0.197736, -0.302264 -5779, 0.064248, -0.930274, -0.197736, -0.302264 -5780, 0.064248, -0.930274, -0.197736, -0.302264 -5781, 0.064248, -0.930274, -0.197736, -0.302264 -5782, 0.064248, -0.930274, -0.197736, -0.302264 -5783, 0.064248, -0.930274, -0.197736, -0.302264 -5784, 0.064248, -0.930274, -0.197736, -0.302264 -5785, 0.064248, -0.930274, -0.197736, -0.302264 -5786, 0.064248, -0.930274, -0.197736, -0.302264 -5787, 0.064248, -0.930274, -0.197736, -0.302264 -5788, 0.064248, -0.930274, -0.197736, -0.302264 -5789, 0.064248, -0.930274, -0.197736, -0.302264 -5790, 0.064248, -0.930274, -0.197736, -0.302264 -5791, 0.064248, -0.930274, -0.197736, -0.302264 -5792, 0.064248, -0.930274, -0.197736, -0.302264 -5793, 0.064248, -0.930274, -0.197736, -0.302264 -5794, 0.064248, -0.930274, -0.197736, -0.302264 -5795, 0.064248, -0.930274, -0.197736, -0.302264 -5796, 0.064248, -0.930274, -0.197736, -0.302264 -5797, 0.064248, -0.930274, -0.197736, -0.302264 -5798, 0.064248, -0.930274, -0.197736, -0.302264 -5799, 0.064248, -0.930274, -0.197736, -0.302264 -5800, 0.075090, -0.918482, -0.212048, -0.325251 -5801, 0.075090, -0.918482, -0.212048, -0.325251 -5802, 0.075090, -0.918482, -0.212048, -0.325251 -5803, 0.075090, -0.918482, -0.212048, -0.325251 -5804, 0.075090, -0.918482, -0.212048, -0.325251 -5805, 0.075090, -0.918482, -0.212048, -0.325251 -5806, 0.075090, -0.918482, -0.212048, -0.325251 -5807, 0.075090, -0.918482, -0.212048, -0.325251 -5808, 0.075090, -0.918482, -0.212048, -0.325251 -5809, 0.075090, -0.918482, -0.212048, -0.325251 -5810, 0.075090, -0.918482, -0.212048, -0.325251 -5811, 0.075090, -0.918482, -0.212048, -0.325251 -5812, 0.075090, -0.918482, -0.212048, -0.325251 -5813, 0.075090, -0.918482, -0.212048, -0.325251 -5814, 0.075090, -0.918482, -0.212048, -0.325251 -5815, 0.075090, -0.918482, -0.212048, -0.325251 -5816, 0.075090, -0.918482, -0.212048, -0.325251 -5817, 0.075090, -0.918482, -0.212048, -0.325251 -5818, 0.075090, -0.918482, -0.212048, -0.325251 -5819, 0.075090, -0.918482, -0.212048, -0.325251 -5820, 0.075090, -0.918482, -0.212048, -0.325251 -5821, 0.075090, -0.918482, -0.212048, -0.325251 -5822, 0.075090, -0.918482, -0.212048, -0.325251 -5823, 0.075090, -0.918482, -0.212048, -0.325251 -5824, 0.075090, -0.918482, -0.212048, -0.325251 -5825, 0.075090, -0.918482, -0.212048, -0.325251 -5826, 0.075090, -0.918482, -0.212048, -0.325251 -5827, 0.075090, -0.918482, -0.212048, -0.325251 -5828, 0.075090, -0.918482, -0.212048, -0.325251 -5829, 0.075090, -0.918482, -0.212048, -0.325251 -5830, 0.075090, -0.918482, -0.212048, -0.325251 -5831, 0.075090, -0.918482, -0.212048, -0.325251 -5832, 0.075090, -0.918482, -0.212048, -0.325251 -5833, 0.075090, -0.918482, -0.212048, -0.325251 -5834, 0.075090, -0.918482, -0.212048, -0.325251 -5835, 0.075090, -0.918482, -0.212048, -0.325251 -5836, 0.075090, -0.918482, -0.212048, -0.325251 -5837, 0.075090, -0.918482, -0.212048, -0.325251 -5838, 0.075090, -0.918482, -0.212048, -0.325251 -5839, 0.075090, -0.918482, -0.212048, -0.325251 -5840, 0.075090, -0.918482, -0.212048, -0.325251 -5841, 0.075090, -0.918482, -0.212048, -0.325251 -5842, 0.075090, -0.918482, -0.212048, -0.325251 -5843, 0.075090, -0.918482, -0.212048, -0.325251 -5844, 0.075090, -0.918482, -0.212048, -0.325251 -5845, 0.075090, -0.918482, -0.212048, -0.325251 -5846, 0.075090, -0.918482, -0.212048, -0.325251 -5847, 0.075090, -0.918482, -0.212048, -0.325251 -5848, 0.075090, -0.918482, -0.212048, -0.325251 -5849, 0.075090, -0.918482, -0.212048, -0.325251 -5850, 0.075090, -0.918482, -0.212048, -0.325251 -5851, 0.075090, -0.918482, -0.212048, -0.325251 -5852, 0.075090, -0.918482, -0.212048, -0.325251 -5853, 0.075090, -0.918482, -0.212048, -0.325251 -5854, 0.075090, -0.918482, -0.212048, -0.325251 -5855, 0.075090, -0.918482, -0.212048, -0.325251 -5856, 0.075090, -0.918482, -0.212048, -0.325251 -5857, 0.075090, -0.918482, -0.212048, -0.325251 -5858, 0.075090, -0.918482, -0.212048, -0.325251 -5859, 0.075090, -0.918482, -0.212048, -0.325251 -5860, 0.075090, -0.918482, -0.212048, -0.325251 -5861, 0.075090, -0.918482, -0.212048, -0.325251 -5862, 0.075090, -0.918482, -0.212048, -0.325251 -5863, 0.075090, -0.918482, -0.212048, -0.325251 -5864, 0.075090, -0.918482, -0.212048, -0.325251 -5865, 0.075090, -0.918482, -0.212048, -0.325251 -5866, 0.075090, -0.918482, -0.212048, -0.325251 -5867, 0.075090, -0.918482, -0.212048, -0.325251 -5868, 0.075090, -0.918482, -0.212048, -0.325251 -5869, 0.075090, -0.918482, -0.212048, -0.325251 -5870, 0.075090, -0.918482, -0.212048, -0.325251 -5871, 0.075090, -0.918482, -0.212048, -0.325251 -5872, 0.075090, -0.918482, -0.212048, -0.325251 -5873, 0.075090, -0.918482, -0.212048, -0.325251 -5874, 0.075090, -0.918482, -0.212048, -0.325251 -5875, 0.075090, -0.918482, -0.212048, -0.325251 -5876, 0.075090, -0.918482, -0.212048, -0.325251 -5877, 0.075090, -0.918482, -0.212048, -0.325251 -5878, 0.075090, -0.918482, -0.212048, -0.325251 -5879, 0.075090, -0.918482, -0.212048, -0.325251 -5880, 0.075090, -0.918482, -0.212048, -0.325251 -5881, 0.075090, -0.918482, -0.212048, -0.325251 -5882, 0.075090, -0.918482, -0.212048, -0.325251 -5883, 0.075090, -0.918482, -0.212048, -0.325251 -5884, 0.075090, -0.918482, -0.212048, -0.325251 -5885, 0.075090, -0.918482, -0.212048, -0.325251 -5886, 0.075090, -0.918482, -0.212048, -0.325251 -5887, 0.075090, -0.918482, -0.212048, -0.325251 -5888, 0.075090, -0.918482, -0.212048, -0.325251 -5889, 0.075090, -0.918482, -0.212048, -0.325251 -5890, 0.075090, -0.918482, -0.212048, -0.325251 -5891, 0.075090, -0.918482, -0.212048, -0.325251 -5892, 0.075090, -0.918482, -0.212048, -0.325251 -5893, 0.075090, -0.918482, -0.212048, -0.325251 -5894, 0.075090, -0.918482, -0.212048, -0.325251 -5895, 0.075090, -0.918482, -0.212048, -0.325251 -5896, 0.075090, -0.918482, -0.212048, -0.325251 -5897, 0.075090, -0.918482, -0.212048, -0.325251 -5898, 0.075090, -0.918482, -0.212048, -0.325251 -5899, 0.075090, -0.918482, -0.212048, -0.325251 -5900, 0.086697, -0.905849, -0.225854, -0.347723 -5901, 0.086697, -0.905849, -0.225854, -0.347723 -5902, 0.086697, -0.905849, -0.225854, -0.347723 -5903, 0.086697, -0.905849, -0.225854, -0.347723 -5904, 0.086697, -0.905849, -0.225854, -0.347723 -5905, 0.086697, -0.905849, -0.225854, -0.347723 -5906, 0.086697, -0.905849, -0.225854, -0.347723 -5907, 0.086697, -0.905849, -0.225854, -0.347723 -5908, 0.086697, -0.905849, -0.225854, -0.347723 -5909, 0.086697, -0.905849, -0.225854, -0.347723 -5910, 0.086697, -0.905849, -0.225854, -0.347723 -5911, 0.086697, -0.905849, -0.225854, -0.347723 -5912, 0.086697, -0.905849, -0.225854, -0.347723 -5913, 0.086697, -0.905849, -0.225854, -0.347723 -5914, 0.086697, -0.905849, -0.225854, -0.347723 -5915, 0.086697, -0.905849, -0.225854, -0.347723 -5916, 0.086697, -0.905849, -0.225854, -0.347723 -5917, 0.086697, -0.905849, -0.225854, -0.347723 -5918, 0.086697, -0.905849, -0.225854, -0.347723 -5919, 0.086697, -0.905849, -0.225854, -0.347723 -5920, 0.086697, -0.905849, -0.225854, -0.347723 -5921, 0.086697, -0.905849, -0.225854, -0.347723 -5922, 0.086697, -0.905849, -0.225854, -0.347723 -5923, 0.086697, -0.905849, -0.225854, -0.347723 -5924, 0.086697, -0.905849, -0.225854, -0.347723 -5925, 0.086697, -0.905849, -0.225854, -0.347723 -5926, 0.086697, -0.905849, -0.225854, -0.347723 -5927, 0.086697, -0.905849, -0.225854, -0.347723 -5928, 0.086697, -0.905849, -0.225854, -0.347723 -5929, 0.086697, -0.905849, -0.225854, -0.347723 -5930, 0.086697, -0.905849, -0.225854, -0.347723 -5931, 0.086697, -0.905849, -0.225854, -0.347723 -5932, 0.086697, -0.905849, -0.225854, -0.347723 -5933, 0.086697, -0.905849, -0.225854, -0.347723 -5934, 0.086697, -0.905849, -0.225854, -0.347723 -5935, 0.086697, -0.905849, -0.225854, -0.347723 -5936, 0.086697, -0.905849, -0.225854, -0.347723 -5937, 0.086697, -0.905849, -0.225854, -0.347723 -5938, 0.086697, -0.905849, -0.225854, -0.347723 -5939, 0.086697, -0.905849, -0.225854, -0.347723 -5940, 0.086697, -0.905849, -0.225854, -0.347723 -5941, 0.086697, -0.905849, -0.225854, -0.347723 -5942, 0.086697, -0.905849, -0.225854, -0.347723 -5943, 0.086697, -0.905849, -0.225854, -0.347723 -5944, 0.086697, -0.905849, -0.225854, -0.347723 -5945, 0.086697, -0.905849, -0.225854, -0.347723 -5946, 0.086697, -0.905849, -0.225854, -0.347723 -5947, 0.086697, -0.905849, -0.225854, -0.347723 -5948, 0.086697, -0.905849, -0.225854, -0.347723 -5949, 0.086697, -0.905849, -0.225854, -0.347723 -5950, 0.086697, -0.905849, -0.225854, -0.347723 -5951, 0.086697, -0.905849, -0.225854, -0.347723 -5952, 0.086697, -0.905849, -0.225854, -0.347723 -5953, 0.086697, -0.905849, -0.225854, -0.347723 -5954, 0.086697, -0.905849, -0.225854, -0.347723 -5955, 0.086697, -0.905849, -0.225854, -0.347723 -5956, 0.086697, -0.905849, -0.225854, -0.347723 -5957, 0.086697, -0.905849, -0.225854, -0.347723 -5958, 0.086697, -0.905849, -0.225854, -0.347723 -5959, 0.086697, -0.905849, -0.225854, -0.347723 -5960, 0.086697, -0.905849, -0.225854, -0.347723 -5961, 0.086697, -0.905849, -0.225854, -0.347723 -5962, 0.086697, -0.905849, -0.225854, -0.347723 -5963, 0.086697, -0.905849, -0.225854, -0.347723 -5964, 0.086697, -0.905849, -0.225854, -0.347723 -5965, 0.086697, -0.905849, -0.225854, -0.347723 -5966, 0.086697, -0.905849, -0.225854, -0.347723 -5967, 0.086697, -0.905849, -0.225854, -0.347723 -5968, 0.086697, -0.905849, -0.225854, -0.347723 -5969, 0.086697, -0.905849, -0.225854, -0.347723 -5970, 0.086697, -0.905849, -0.225854, -0.347723 -5971, 0.086697, -0.905849, -0.225854, -0.347723 -5972, 0.086697, -0.905849, -0.225854, -0.347723 -5973, 0.086697, -0.905849, -0.225854, -0.347723 -5974, 0.086697, -0.905849, -0.225854, -0.347723 -5975, 0.086697, -0.905849, -0.225854, -0.347723 -5976, 0.086697, -0.905849, -0.225854, -0.347723 -5977, 0.086697, -0.905849, -0.225854, -0.347723 -5978, 0.086697, -0.905849, -0.225854, -0.347723 -5979, 0.086697, -0.905849, -0.225854, -0.347723 -5980, 0.086697, -0.905849, -0.225854, -0.347723 -5981, 0.086697, -0.905849, -0.225854, -0.347723 -5982, 0.086697, -0.905849, -0.225854, -0.347723 -5983, 0.086697, -0.905849, -0.225854, -0.347723 -5984, 0.086697, -0.905849, -0.225854, -0.347723 -5985, 0.086697, -0.905849, -0.225854, -0.347723 -5986, 0.086697, -0.905849, -0.225854, -0.347723 -5987, 0.086697, -0.905849, -0.225854, -0.347723 -5988, 0.086697, -0.905849, -0.225854, -0.347723 -5989, 0.086697, -0.905849, -0.225854, -0.347723 -5990, 0.086697, -0.905849, -0.225854, -0.347723 -5991, 0.086697, -0.905849, -0.225854, -0.347723 -5992, 0.086697, -0.905849, -0.225854, -0.347723 -5993, 0.086697, -0.905849, -0.225854, -0.347723 -5994, 0.086697, -0.905849, -0.225854, -0.347723 -5995, 0.086697, -0.905849, -0.225854, -0.347723 -5996, 0.086697, -0.905849, -0.225854, -0.347723 -5997, 0.086697, -0.905849, -0.225854, -0.347723 -5998, 0.086697, -0.905849, -0.225854, -0.347723 -5999, 0.086697, -0.905849, -0.225854, -0.347723 -6000, 0.099046, -0.892399, -0.239118, -0.369644 -6001, 0.099046, -0.892399, -0.239118, -0.369644 -6002, 0.099046, -0.892399, -0.239118, -0.369644 -6003, 0.099046, -0.892399, -0.239118, -0.369644 -6004, 0.099046, -0.892399, -0.239118, -0.369644 -6005, 0.099046, -0.892399, -0.239118, -0.369644 -6006, 0.099046, -0.892399, -0.239118, -0.369644 -6007, 0.099046, -0.892399, -0.239118, -0.369644 -6008, 0.099046, -0.892399, -0.239118, -0.369644 -6009, 0.099046, -0.892399, -0.239118, -0.369644 -6010, 0.099046, -0.892399, -0.239118, -0.369644 -6011, 0.099046, -0.892399, -0.239118, -0.369644 -6012, 0.099046, -0.892399, -0.239118, -0.369644 -6013, 0.099046, -0.892399, -0.239118, -0.369644 -6014, 0.099046, -0.892399, -0.239118, -0.369644 -6015, 0.099046, -0.892399, -0.239118, -0.369644 -6016, 0.099046, -0.892399, -0.239118, -0.369644 -6017, 0.099046, -0.892399, -0.239118, -0.369644 -6018, 0.099046, -0.892399, -0.239118, -0.369644 -6019, 0.099046, -0.892399, -0.239118, -0.369644 -6020, 0.099046, -0.892399, -0.239118, -0.369644 -6021, 0.099046, -0.892399, -0.239118, -0.369644 -6022, 0.099046, -0.892399, -0.239118, -0.369644 -6023, 0.099046, -0.892399, -0.239118, -0.369644 -6024, 0.099046, -0.892399, -0.239118, -0.369644 -6025, 0.099046, -0.892399, -0.239118, -0.369644 -6026, 0.099046, -0.892399, -0.239118, -0.369644 -6027, 0.099046, -0.892399, -0.239118, -0.369644 -6028, 0.099046, -0.892399, -0.239118, -0.369644 -6029, 0.099046, -0.892399, -0.239118, -0.369644 -6030, 0.099046, -0.892399, -0.239118, -0.369644 -6031, 0.099046, -0.892399, -0.239118, -0.369644 -6032, 0.099046, -0.892399, -0.239118, -0.369644 -6033, 0.099046, -0.892399, -0.239118, -0.369644 -6034, 0.099046, -0.892399, -0.239118, -0.369644 -6035, 0.099046, -0.892399, -0.239118, -0.369644 -6036, 0.099046, -0.892399, -0.239118, -0.369644 -6037, 0.099046, -0.892399, -0.239118, -0.369644 -6038, 0.099046, -0.892399, -0.239118, -0.369644 -6039, 0.099046, -0.892399, -0.239118, -0.369644 -6040, 0.099046, -0.892399, -0.239118, -0.369644 -6041, 0.099046, -0.892399, -0.239118, -0.369644 -6042, 0.099046, -0.892399, -0.239118, -0.369644 -6043, 0.099046, -0.892399, -0.239118, -0.369644 -6044, 0.099046, -0.892399, -0.239118, -0.369644 -6045, 0.099046, -0.892399, -0.239118, -0.369644 -6046, 0.099046, -0.892399, -0.239118, -0.369644 -6047, 0.099046, -0.892399, -0.239118, -0.369644 -6048, 0.099046, -0.892399, -0.239118, -0.369644 -6049, 0.099046, -0.892399, -0.239118, -0.369644 -6050, 0.099046, -0.892399, -0.239118, -0.369644 -6051, 0.099046, -0.892399, -0.239118, -0.369644 -6052, 0.099046, -0.892399, -0.239118, -0.369644 -6053, 0.099046, -0.892399, -0.239118, -0.369644 -6054, 0.099046, -0.892399, -0.239118, -0.369644 -6055, 0.099046, -0.892399, -0.239118, -0.369644 -6056, 0.099046, -0.892399, -0.239118, -0.369644 -6057, 0.099046, -0.892399, -0.239118, -0.369644 -6058, 0.099046, -0.892399, -0.239118, -0.369644 -6059, 0.099046, -0.892399, -0.239118, -0.369644 -6060, 0.099046, -0.892399, -0.239118, -0.369644 -6061, 0.099046, -0.892399, -0.239118, -0.369644 -6062, 0.099046, -0.892399, -0.239118, -0.369644 -6063, 0.099046, -0.892399, -0.239118, -0.369644 -6064, 0.099046, -0.892399, -0.239118, -0.369644 -6065, 0.099046, -0.892399, -0.239118, -0.369644 -6066, 0.099046, -0.892399, -0.239118, -0.369644 -6067, 0.099046, -0.892399, -0.239118, -0.369644 -6068, 0.099046, -0.892399, -0.239118, -0.369644 -6069, 0.099046, -0.892399, -0.239118, -0.369644 -6070, 0.099046, -0.892399, -0.239118, -0.369644 -6071, 0.099046, -0.892399, -0.239118, -0.369644 -6072, 0.099046, -0.892399, -0.239118, -0.369644 -6073, 0.099046, -0.892399, -0.239118, -0.369644 -6074, 0.099046, -0.892399, -0.239118, -0.369644 -6075, 0.099046, -0.892399, -0.239118, -0.369644 -6076, 0.099046, -0.892399, -0.239118, -0.369644 -6077, 0.099046, -0.892399, -0.239118, -0.369644 -6078, 0.099046, -0.892399, -0.239118, -0.369644 -6079, 0.099046, -0.892399, -0.239118, -0.369644 -6080, 0.099046, -0.892399, -0.239118, -0.369644 -6081, 0.099046, -0.892399, -0.239118, -0.369644 -6082, 0.099046, -0.892399, -0.239118, -0.369644 -6083, 0.099046, -0.892399, -0.239118, -0.369644 -6084, 0.099046, -0.892399, -0.239118, -0.369644 -6085, 0.099046, -0.892399, -0.239118, -0.369644 -6086, 0.099046, -0.892399, -0.239118, -0.369644 -6087, 0.099046, -0.892399, -0.239118, -0.369644 -6088, 0.099046, -0.892399, -0.239118, -0.369644 -6089, 0.099046, -0.892399, -0.239118, -0.369644 -6090, 0.099046, -0.892399, -0.239118, -0.369644 -6091, 0.099046, -0.892399, -0.239118, -0.369644 -6092, 0.099046, -0.892399, -0.239118, -0.369644 -6093, 0.099046, -0.892399, -0.239118, -0.369644 -6094, 0.099046, -0.892399, -0.239118, -0.369644 -6095, 0.099046, -0.892399, -0.239118, -0.369644 -6096, 0.099046, -0.892399, -0.239118, -0.369644 -6097, 0.099046, -0.892399, -0.239118, -0.369644 -6098, 0.099046, -0.892399, -0.239118, -0.369644 -6099, 0.099046, -0.892399, -0.239118, -0.369644 -6100, 0.112112, -0.878156, -0.251807, -0.390980 -6101, 0.112112, -0.878156, -0.251807, -0.390980 -6102, 0.112112, -0.878156, -0.251807, -0.390980 -6103, 0.112112, -0.878156, -0.251807, -0.390980 -6104, 0.112112, -0.878156, -0.251807, -0.390980 -6105, 0.112112, -0.878156, -0.251807, -0.390980 -6106, 0.112112, -0.878156, -0.251807, -0.390980 -6107, 0.112112, -0.878156, -0.251807, -0.390980 -6108, 0.112112, -0.878156, -0.251807, -0.390980 -6109, 0.112112, -0.878156, -0.251807, -0.390980 -6110, 0.112112, -0.878156, -0.251807, -0.390980 -6111, 0.112112, -0.878156, -0.251807, -0.390980 -6112, 0.112112, -0.878156, -0.251807, -0.390980 -6113, 0.112112, -0.878156, -0.251807, -0.390980 -6114, 0.112112, -0.878156, -0.251807, -0.390980 -6115, 0.112112, -0.878156, -0.251807, -0.390980 -6116, 0.112112, -0.878156, -0.251807, -0.390980 -6117, 0.112112, -0.878156, -0.251807, -0.390980 -6118, 0.112112, -0.878156, -0.251807, -0.390980 -6119, 0.112112, -0.878156, -0.251807, -0.390980 -6120, 0.112112, -0.878156, -0.251807, -0.390980 -6121, 0.112112, -0.878156, -0.251807, -0.390980 -6122, 0.112112, -0.878156, -0.251807, -0.390980 -6123, 0.112112, -0.878156, -0.251807, -0.390980 -6124, 0.112112, -0.878156, -0.251807, -0.390980 -6125, 0.112112, -0.878156, -0.251807, -0.390980 -6126, 0.112112, -0.878156, -0.251807, -0.390980 -6127, 0.112112, -0.878156, -0.251807, -0.390980 -6128, 0.112112, -0.878156, -0.251807, -0.390980 -6129, 0.112112, -0.878156, -0.251807, -0.390980 -6130, 0.112112, -0.878156, -0.251807, -0.390980 -6131, 0.112112, -0.878156, -0.251807, -0.390980 -6132, 0.112112, -0.878156, -0.251807, -0.390980 -6133, 0.112112, -0.878156, -0.251807, -0.390980 -6134, 0.112112, -0.878156, -0.251807, -0.390980 -6135, 0.112112, -0.878156, -0.251807, -0.390980 -6136, 0.112112, -0.878156, -0.251807, -0.390980 -6137, 0.112112, -0.878156, -0.251807, -0.390980 -6138, 0.112112, -0.878156, -0.251807, -0.390980 -6139, 0.112112, -0.878156, -0.251807, -0.390980 -6140, 0.112112, -0.878156, -0.251807, -0.390980 -6141, 0.112112, -0.878156, -0.251807, -0.390980 -6142, 0.112112, -0.878156, -0.251807, -0.390980 -6143, 0.112112, -0.878156, -0.251807, -0.390980 -6144, 0.112112, -0.878156, -0.251807, -0.390980 -6145, 0.112112, -0.878156, -0.251807, -0.390980 -6146, 0.112112, -0.878156, -0.251807, -0.390980 -6147, 0.112112, -0.878156, -0.251807, -0.390980 -6148, 0.112112, -0.878156, -0.251807, -0.390980 -6149, 0.112112, -0.878156, -0.251807, -0.390980 -6150, 0.112112, -0.878156, -0.251807, -0.390980 -6151, 0.112112, -0.878156, -0.251807, -0.390980 -6152, 0.112112, -0.878156, -0.251807, -0.390980 -6153, 0.112112, -0.878156, -0.251807, -0.390980 -6154, 0.112112, -0.878156, -0.251807, -0.390980 -6155, 0.112112, -0.878156, -0.251807, -0.390980 -6156, 0.112112, -0.878156, -0.251807, -0.390980 -6157, 0.112112, -0.878156, -0.251807, -0.390980 -6158, 0.112112, -0.878156, -0.251807, -0.390980 -6159, 0.112112, -0.878156, -0.251807, -0.390980 -6160, 0.112112, -0.878156, -0.251807, -0.390980 -6161, 0.112112, -0.878156, -0.251807, -0.390980 -6162, 0.112112, -0.878156, -0.251807, -0.390980 -6163, 0.112112, -0.878156, -0.251807, -0.390980 -6164, 0.112112, -0.878156, -0.251807, -0.390980 -6165, 0.112112, -0.878156, -0.251807, -0.390980 -6166, 0.112112, -0.878156, -0.251807, -0.390980 -6167, 0.112112, -0.878156, -0.251807, -0.390980 -6168, 0.112112, -0.878156, -0.251807, -0.390980 -6169, 0.112112, -0.878156, -0.251807, -0.390980 -6170, 0.112112, -0.878156, -0.251807, -0.390980 -6171, 0.112112, -0.878156, -0.251807, -0.390980 -6172, 0.112112, -0.878156, -0.251807, -0.390980 -6173, 0.112112, -0.878156, -0.251807, -0.390980 -6174, 0.112112, -0.878156, -0.251807, -0.390980 -6175, 0.112112, -0.878156, -0.251807, -0.390980 -6176, 0.112112, -0.878156, -0.251807, -0.390980 -6177, 0.112112, -0.878156, -0.251807, -0.390980 -6178, 0.112112, -0.878156, -0.251807, -0.390980 -6179, 0.112112, -0.878156, -0.251807, -0.390980 -6180, 0.112112, -0.878156, -0.251807, -0.390980 -6181, 0.112112, -0.878156, -0.251807, -0.390980 -6182, 0.112112, -0.878156, -0.251807, -0.390980 -6183, 0.112112, -0.878156, -0.251807, -0.390980 -6184, 0.112112, -0.878156, -0.251807, -0.390980 -6185, 0.112112, -0.878156, -0.251807, -0.390980 -6186, 0.112112, -0.878156, -0.251807, -0.390980 -6187, 0.112112, -0.878156, -0.251807, -0.390980 -6188, 0.112112, -0.878156, -0.251807, -0.390980 -6189, 0.112112, -0.878156, -0.251807, -0.390980 -6190, 0.112112, -0.878156, -0.251807, -0.390980 -6191, 0.112112, -0.878156, -0.251807, -0.390980 -6192, 0.112112, -0.878156, -0.251807, -0.390980 -6193, 0.112112, -0.878156, -0.251807, -0.390980 -6194, 0.112112, -0.878156, -0.251807, -0.390980 -6195, 0.112112, -0.878156, -0.251807, -0.390980 -6196, 0.112112, -0.878156, -0.251807, -0.390980 -6197, 0.112112, -0.878156, -0.251807, -0.390980 -6198, 0.112112, -0.878156, -0.251807, -0.390980 -6199, 0.112112, -0.878156, -0.251807, -0.390980 -6200, 0.125869, -0.863147, -0.263890, -0.411700 -6201, 0.125869, -0.863147, -0.263890, -0.411700 -6202, 0.125869, -0.863147, -0.263890, -0.411700 -6203, 0.125869, -0.863147, -0.263890, -0.411700 -6204, 0.125869, -0.863147, -0.263890, -0.411700 -6205, 0.125869, -0.863147, -0.263890, -0.411700 -6206, 0.125869, -0.863147, -0.263890, -0.411700 -6207, 0.125869, -0.863147, -0.263890, -0.411700 -6208, 0.125869, -0.863147, -0.263890, -0.411700 -6209, 0.125869, -0.863147, -0.263890, -0.411700 -6210, 0.125869, -0.863147, -0.263890, -0.411700 -6211, 0.125869, -0.863147, -0.263890, -0.411700 -6212, 0.125869, -0.863147, -0.263890, -0.411700 -6213, 0.125869, -0.863147, -0.263890, -0.411700 -6214, 0.125869, -0.863147, -0.263890, -0.411700 -6215, 0.125869, -0.863147, -0.263890, -0.411700 -6216, 0.125869, -0.863147, -0.263890, -0.411700 -6217, 0.125869, -0.863147, -0.263890, -0.411700 -6218, 0.125869, -0.863147, -0.263890, -0.411700 -6219, 0.125869, -0.863147, -0.263890, -0.411700 -6220, 0.125869, -0.863147, -0.263890, -0.411700 -6221, 0.125869, -0.863147, -0.263890, -0.411700 -6222, 0.125869, -0.863147, -0.263890, -0.411700 -6223, 0.125869, -0.863147, -0.263890, -0.411700 -6224, 0.125869, -0.863147, -0.263890, -0.411700 -6225, 0.125869, -0.863147, -0.263890, -0.411700 -6226, 0.125869, -0.863147, -0.263890, -0.411700 -6227, 0.125869, -0.863147, -0.263890, -0.411700 -6228, 0.125869, -0.863147, -0.263890, -0.411700 -6229, 0.125869, -0.863147, -0.263890, -0.411700 -6230, 0.125869, -0.863147, -0.263890, -0.411700 -6231, 0.125869, -0.863147, -0.263890, -0.411700 -6232, 0.125869, -0.863147, -0.263890, -0.411700 -6233, 0.125869, -0.863147, -0.263890, -0.411700 -6234, 0.125869, -0.863147, -0.263890, -0.411700 -6235, 0.125869, -0.863147, -0.263890, -0.411700 -6236, 0.125869, -0.863147, -0.263890, -0.411700 -6237, 0.125869, -0.863147, -0.263890, -0.411700 -6238, 0.125869, -0.863147, -0.263890, -0.411700 -6239, 0.125869, -0.863147, -0.263890, -0.411700 -6240, 0.125869, -0.863147, -0.263890, -0.411700 -6241, 0.125869, -0.863147, -0.263890, -0.411700 -6242, 0.125869, -0.863147, -0.263890, -0.411700 -6243, 0.125869, -0.863147, -0.263890, -0.411700 -6244, 0.125869, -0.863147, -0.263890, -0.411700 -6245, 0.125869, -0.863147, -0.263890, -0.411700 -6246, 0.125869, -0.863147, -0.263890, -0.411700 -6247, 0.125869, -0.863147, -0.263890, -0.411700 -6248, 0.125869, -0.863147, -0.263890, -0.411700 -6249, 0.125869, -0.863147, -0.263890, -0.411700 -6250, 0.125869, -0.863147, -0.263890, -0.411700 -6251, 0.125869, -0.863147, -0.263890, -0.411700 -6252, 0.125869, -0.863147, -0.263890, -0.411700 -6253, 0.125869, -0.863147, -0.263890, -0.411700 -6254, 0.125869, -0.863147, -0.263890, -0.411700 -6255, 0.125869, -0.863147, -0.263890, -0.411700 -6256, 0.125869, -0.863147, -0.263890, -0.411700 -6257, 0.125869, -0.863147, -0.263890, -0.411700 -6258, 0.125869, -0.863147, -0.263890, -0.411700 -6259, 0.125869, -0.863147, -0.263890, -0.411700 -6260, 0.125869, -0.863147, -0.263890, -0.411700 -6261, 0.125869, -0.863147, -0.263890, -0.411700 -6262, 0.125869, -0.863147, -0.263890, -0.411700 -6263, 0.125869, -0.863147, -0.263890, -0.411700 -6264, 0.125869, -0.863147, -0.263890, -0.411700 -6265, 0.125869, -0.863147, -0.263890, -0.411700 -6266, 0.125869, -0.863147, -0.263890, -0.411700 -6267, 0.125869, -0.863147, -0.263890, -0.411700 -6268, 0.125869, -0.863147, -0.263890, -0.411700 -6269, 0.125869, -0.863147, -0.263890, -0.411700 -6270, 0.125869, -0.863147, -0.263890, -0.411700 -6271, 0.125869, -0.863147, -0.263890, -0.411700 -6272, 0.125869, -0.863147, -0.263890, -0.411700 -6273, 0.125869, -0.863147, -0.263890, -0.411700 -6274, 0.125869, -0.863147, -0.263890, -0.411700 -6275, 0.125869, -0.863147, -0.263890, -0.411700 -6276, 0.125869, -0.863147, -0.263890, -0.411700 -6277, 0.125869, -0.863147, -0.263890, -0.411700 -6278, 0.125869, -0.863147, -0.263890, -0.411700 -6279, 0.125869, -0.863147, -0.263890, -0.411700 -6280, 0.125869, -0.863147, -0.263890, -0.411700 -6281, 0.125869, -0.863147, -0.263890, -0.411700 -6282, 0.125869, -0.863147, -0.263890, -0.411700 -6283, 0.125869, -0.863147, -0.263890, -0.411700 -6284, 0.125869, -0.863147, -0.263890, -0.411700 -6285, 0.125869, -0.863147, -0.263890, -0.411700 -6286, 0.125869, -0.863147, -0.263890, -0.411700 -6287, 0.125869, -0.863147, -0.263890, -0.411700 -6288, 0.125869, -0.863147, -0.263890, -0.411700 -6289, 0.125869, -0.863147, -0.263890, -0.411700 -6290, 0.125869, -0.863147, -0.263890, -0.411700 -6291, 0.125869, -0.863147, -0.263890, -0.411700 -6292, 0.125869, -0.863147, -0.263890, -0.411700 -6293, 0.125869, -0.863147, -0.263890, -0.411700 -6294, 0.125869, -0.863147, -0.263890, -0.411700 -6295, 0.125869, -0.863147, -0.263890, -0.411700 -6296, 0.125869, -0.863147, -0.263890, -0.411700 -6297, 0.125869, -0.863147, -0.263890, -0.411700 -6298, 0.125869, -0.863147, -0.263890, -0.411700 -6299, 0.125869, -0.863147, -0.263890, -0.411700 -6300, 0.140291, -0.847398, -0.275336, -0.431771 -6301, 0.140291, -0.847398, -0.275336, -0.431771 -6302, 0.140291, -0.847398, -0.275336, -0.431771 -6303, 0.140291, -0.847398, -0.275336, -0.431771 -6304, 0.140291, -0.847398, -0.275336, -0.431771 -6305, 0.140291, -0.847398, -0.275336, -0.431771 -6306, 0.140291, -0.847398, -0.275336, -0.431771 -6307, 0.140291, -0.847398, -0.275336, -0.431771 -6308, 0.140291, -0.847398, -0.275336, -0.431771 -6309, 0.140291, -0.847398, -0.275336, -0.431771 -6310, 0.140291, -0.847398, -0.275336, -0.431771 -6311, 0.140291, -0.847398, -0.275336, -0.431771 -6312, 0.140291, -0.847398, -0.275336, -0.431771 -6313, 0.140291, -0.847398, -0.275336, -0.431771 -6314, 0.140291, -0.847398, -0.275336, -0.431771 -6315, 0.140291, -0.847398, -0.275336, -0.431771 -6316, 0.140291, -0.847398, -0.275336, -0.431771 -6317, 0.140291, -0.847398, -0.275336, -0.431771 -6318, 0.140291, -0.847398, -0.275336, -0.431771 -6319, 0.140291, -0.847398, -0.275336, -0.431771 -6320, 0.140291, -0.847398, -0.275336, -0.431771 -6321, 0.140291, -0.847398, -0.275336, -0.431771 -6322, 0.140291, -0.847398, -0.275336, -0.431771 -6323, 0.140291, -0.847398, -0.275336, -0.431771 -6324, 0.140291, -0.847398, -0.275336, -0.431771 -6325, 0.140291, -0.847398, -0.275336, -0.431771 -6326, 0.140291, -0.847398, -0.275336, -0.431771 -6327, 0.140291, -0.847398, -0.275336, -0.431771 -6328, 0.140291, -0.847398, -0.275336, -0.431771 -6329, 0.140291, -0.847398, -0.275336, -0.431771 -6330, 0.140291, -0.847398, -0.275336, -0.431771 -6331, 0.140291, -0.847398, -0.275336, -0.431771 -6332, 0.140291, -0.847398, -0.275336, -0.431771 -6333, 0.140291, -0.847398, -0.275336, -0.431771 -6334, 0.140291, -0.847398, -0.275336, -0.431771 -6335, 0.140291, -0.847398, -0.275336, -0.431771 -6336, 0.140291, -0.847398, -0.275336, -0.431771 -6337, 0.140291, -0.847398, -0.275336, -0.431771 -6338, 0.140291, -0.847398, -0.275336, -0.431771 -6339, 0.140291, -0.847398, -0.275336, -0.431771 -6340, 0.140291, -0.847398, -0.275336, -0.431771 -6341, 0.140291, -0.847398, -0.275336, -0.431771 -6342, 0.140291, -0.847398, -0.275336, -0.431771 -6343, 0.140291, -0.847398, -0.275336, -0.431771 -6344, 0.140291, -0.847398, -0.275336, -0.431771 -6345, 0.140291, -0.847398, -0.275336, -0.431771 -6346, 0.140291, -0.847398, -0.275336, -0.431771 -6347, 0.140291, -0.847398, -0.275336, -0.431771 -6348, 0.140291, -0.847398, -0.275336, -0.431771 -6349, 0.140291, -0.847398, -0.275336, -0.431771 -6350, 0.140291, -0.847398, -0.275336, -0.431771 -6351, 0.140291, -0.847398, -0.275336, -0.431771 -6352, 0.140291, -0.847398, -0.275336, -0.431771 -6353, 0.140291, -0.847398, -0.275336, -0.431771 -6354, 0.140291, -0.847398, -0.275336, -0.431771 -6355, 0.140291, -0.847398, -0.275336, -0.431771 -6356, 0.140291, -0.847398, -0.275336, -0.431771 -6357, 0.140291, -0.847398, -0.275336, -0.431771 -6358, 0.140291, -0.847398, -0.275336, -0.431771 -6359, 0.140291, -0.847398, -0.275336, -0.431771 -6360, 0.140291, -0.847398, -0.275336, -0.431771 -6361, 0.140291, -0.847398, -0.275336, -0.431771 -6362, 0.140291, -0.847398, -0.275336, -0.431771 -6363, 0.140291, -0.847398, -0.275336, -0.431771 -6364, 0.140291, -0.847398, -0.275336, -0.431771 -6365, 0.140291, -0.847398, -0.275336, -0.431771 -6366, 0.140291, -0.847398, -0.275336, -0.431771 -6367, 0.140291, -0.847398, -0.275336, -0.431771 -6368, 0.140291, -0.847398, -0.275336, -0.431771 -6369, 0.140291, -0.847398, -0.275336, -0.431771 -6370, 0.140291, -0.847398, -0.275336, -0.431771 -6371, 0.140291, -0.847398, -0.275336, -0.431771 -6372, 0.140291, -0.847398, -0.275336, -0.431771 -6373, 0.140291, -0.847398, -0.275336, -0.431771 -6374, 0.140291, -0.847398, -0.275336, -0.431771 -6375, 0.140291, -0.847398, -0.275336, -0.431771 -6376, 0.140291, -0.847398, -0.275336, -0.431771 -6377, 0.140291, -0.847398, -0.275336, -0.431771 -6378, 0.140291, -0.847398, -0.275336, -0.431771 -6379, 0.140291, -0.847398, -0.275336, -0.431771 -6380, 0.140291, -0.847398, -0.275336, -0.431771 -6381, 0.140291, -0.847398, -0.275336, -0.431771 -6382, 0.140291, -0.847398, -0.275336, -0.431771 -6383, 0.140291, -0.847398, -0.275336, -0.431771 -6384, 0.140291, -0.847398, -0.275336, -0.431771 -6385, 0.140291, -0.847398, -0.275336, -0.431771 -6386, 0.140291, -0.847398, -0.275336, -0.431771 -6387, 0.140291, -0.847398, -0.275336, -0.431771 -6388, 0.140291, -0.847398, -0.275336, -0.431771 -6389, 0.140291, -0.847398, -0.275336, -0.431771 -6390, 0.140291, -0.847398, -0.275336, -0.431771 -6391, 0.140291, -0.847398, -0.275336, -0.431771 -6392, 0.140291, -0.847398, -0.275336, -0.431771 -6393, 0.140291, -0.847398, -0.275336, -0.431771 -6394, 0.140291, -0.847398, -0.275336, -0.431771 -6395, 0.140291, -0.847398, -0.275336, -0.431771 -6396, 0.140291, -0.847398, -0.275336, -0.431771 -6397, 0.140291, -0.847398, -0.275336, -0.431771 -6398, 0.140291, -0.847398, -0.275336, -0.431771 -6399, 0.140291, -0.847398, -0.275336, -0.431771 -6400, 0.155348, -0.830938, -0.286115, -0.451162 -6401, 0.155348, -0.830938, -0.286115, -0.451162 -6402, 0.155348, -0.830938, -0.286115, -0.451162 -6403, 0.155348, -0.830938, -0.286115, -0.451162 -6404, 0.155348, -0.830938, -0.286115, -0.451162 -6405, 0.155348, -0.830938, -0.286115, -0.451162 -6406, 0.155348, -0.830938, -0.286115, -0.451162 -6407, 0.155348, -0.830938, -0.286115, -0.451162 -6408, 0.155348, -0.830938, -0.286115, -0.451162 -6409, 0.155348, -0.830938, -0.286115, -0.451162 -6410, 0.155348, -0.830938, -0.286115, -0.451162 -6411, 0.155348, -0.830938, -0.286115, -0.451162 -6412, 0.155348, -0.830938, -0.286115, -0.451162 -6413, 0.155348, -0.830938, -0.286115, -0.451162 -6414, 0.155348, -0.830938, -0.286115, -0.451162 -6415, 0.155348, -0.830938, -0.286115, -0.451162 -6416, 0.155348, -0.830938, -0.286115, -0.451162 -6417, 0.155348, -0.830938, -0.286115, -0.451162 -6418, 0.155348, -0.830938, -0.286115, -0.451162 -6419, 0.155348, -0.830938, -0.286115, -0.451162 -6420, 0.155348, -0.830938, -0.286115, -0.451162 -6421, 0.155348, -0.830938, -0.286115, -0.451162 -6422, 0.155348, -0.830938, -0.286115, -0.451162 -6423, 0.155348, -0.830938, -0.286115, -0.451162 -6424, 0.155348, -0.830938, -0.286115, -0.451162 -6425, 0.155348, -0.830938, -0.286115, -0.451162 -6426, 0.155348, -0.830938, -0.286115, -0.451162 -6427, 0.155348, -0.830938, -0.286115, -0.451162 -6428, 0.155348, -0.830938, -0.286115, -0.451162 -6429, 0.155348, -0.830938, -0.286115, -0.451162 -6430, 0.155348, -0.830938, -0.286115, -0.451162 -6431, 0.155348, -0.830938, -0.286115, -0.451162 -6432, 0.155348, -0.830938, -0.286115, -0.451162 -6433, 0.155348, -0.830938, -0.286115, -0.451162 -6434, 0.155348, -0.830938, -0.286115, -0.451162 -6435, 0.155348, -0.830938, -0.286115, -0.451162 -6436, 0.155348, -0.830938, -0.286115, -0.451162 -6437, 0.155348, -0.830938, -0.286115, -0.451162 -6438, 0.155348, -0.830938, -0.286115, -0.451162 -6439, 0.155348, -0.830938, -0.286115, -0.451162 -6440, 0.155348, -0.830938, -0.286115, -0.451162 -6441, 0.155348, -0.830938, -0.286115, -0.451162 -6442, 0.155348, -0.830938, -0.286115, -0.451162 -6443, 0.155348, -0.830938, -0.286115, -0.451162 -6444, 0.155348, -0.830938, -0.286115, -0.451162 -6445, 0.155348, -0.830938, -0.286115, -0.451162 -6446, 0.155348, -0.830938, -0.286115, -0.451162 -6447, 0.155348, -0.830938, -0.286115, -0.451162 -6448, 0.155348, -0.830938, -0.286115, -0.451162 -6449, 0.155348, -0.830938, -0.286115, -0.451162 -6450, 0.155348, -0.830938, -0.286115, -0.451162 -6451, 0.155348, -0.830938, -0.286115, -0.451162 -6452, 0.155348, -0.830938, -0.286115, -0.451162 -6453, 0.155348, -0.830938, -0.286115, -0.451162 -6454, 0.155348, -0.830938, -0.286115, -0.451162 -6455, 0.155348, -0.830938, -0.286115, -0.451162 -6456, 0.155348, -0.830938, -0.286115, -0.451162 -6457, 0.155348, -0.830938, -0.286115, -0.451162 -6458, 0.155348, -0.830938, -0.286115, -0.451162 -6459, 0.155348, -0.830938, -0.286115, -0.451162 -6460, 0.155348, -0.830938, -0.286115, -0.451162 -6461, 0.155348, -0.830938, -0.286115, -0.451162 -6462, 0.155348, -0.830938, -0.286115, -0.451162 -6463, 0.155348, -0.830938, -0.286115, -0.451162 -6464, 0.155348, -0.830938, -0.286115, -0.451162 -6465, 0.155348, -0.830938, -0.286115, -0.451162 -6466, 0.155348, -0.830938, -0.286115, -0.451162 -6467, 0.155348, -0.830938, -0.286115, -0.451162 -6468, 0.155348, -0.830938, -0.286115, -0.451162 -6469, 0.155348, -0.830938, -0.286115, -0.451162 -6470, 0.155348, -0.830938, -0.286115, -0.451162 -6471, 0.155348, -0.830938, -0.286115, -0.451162 -6472, 0.155348, -0.830938, -0.286115, -0.451162 -6473, 0.155348, -0.830938, -0.286115, -0.451162 -6474, 0.155348, -0.830938, -0.286115, -0.451162 -6475, 0.155348, -0.830938, -0.286115, -0.451162 -6476, 0.155348, -0.830938, -0.286115, -0.451162 -6477, 0.155348, -0.830938, -0.286115, -0.451162 -6478, 0.155348, -0.830938, -0.286115, -0.451162 -6479, 0.155348, -0.830938, -0.286115, -0.451162 -6480, 0.155348, -0.830938, -0.286115, -0.451162 -6481, 0.155348, -0.830938, -0.286115, -0.451162 -6482, 0.155348, -0.830938, -0.286115, -0.451162 -6483, 0.155348, -0.830938, -0.286115, -0.451162 -6484, 0.155348, -0.830938, -0.286115, -0.451162 -6485, 0.155348, -0.830938, -0.286115, -0.451162 -6486, 0.155348, -0.830938, -0.286115, -0.451162 -6487, 0.155348, -0.830938, -0.286115, -0.451162 -6488, 0.155348, -0.830938, -0.286115, -0.451162 -6489, 0.155348, -0.830938, -0.286115, -0.451162 -6490, 0.155348, -0.830938, -0.286115, -0.451162 -6491, 0.155348, -0.830938, -0.286115, -0.451162 -6492, 0.155348, -0.830938, -0.286115, -0.451162 -6493, 0.155348, -0.830938, -0.286115, -0.451162 -6494, 0.155348, -0.830938, -0.286115, -0.451162 -6495, 0.155348, -0.830938, -0.286115, -0.451162 -6496, 0.155348, -0.830938, -0.286115, -0.451162 -6497, 0.155348, -0.830938, -0.286115, -0.451162 -6498, 0.155348, -0.830938, -0.286115, -0.451162 -6499, 0.155348, -0.830938, -0.286115, -0.451162 -6500, 0.171010, -0.813798, -0.296198, -0.469846 -6501, 0.171010, -0.813798, -0.296198, -0.469846 -6502, 0.171010, -0.813798, -0.296198, -0.469846 -6503, 0.171010, -0.813798, -0.296198, -0.469846 -6504, 0.171010, -0.813798, -0.296198, -0.469846 -6505, 0.171010, -0.813798, -0.296198, -0.469846 -6506, 0.171010, -0.813798, -0.296198, -0.469846 -6507, 0.171010, -0.813798, -0.296198, -0.469846 -6508, 0.171010, -0.813798, -0.296198, -0.469846 -6509, 0.171010, -0.813798, -0.296198, -0.469846 -6510, 0.171010, -0.813798, -0.296198, -0.469846 -6511, 0.171010, -0.813798, -0.296198, -0.469846 -6512, 0.171010, -0.813798, -0.296198, -0.469846 -6513, 0.171010, -0.813798, -0.296198, -0.469846 -6514, 0.171010, -0.813798, -0.296198, -0.469846 -6515, 0.171010, -0.813798, -0.296198, -0.469846 -6516, 0.171010, -0.813798, -0.296198, -0.469846 -6517, 0.171010, -0.813798, -0.296198, -0.469846 -6518, 0.171010, -0.813798, -0.296198, -0.469846 -6519, 0.171010, -0.813798, -0.296198, -0.469846 -6520, 0.171010, -0.813798, -0.296198, -0.469846 -6521, 0.171010, -0.813798, -0.296198, -0.469846 -6522, 0.171010, -0.813798, -0.296198, -0.469846 -6523, 0.171010, -0.813798, -0.296198, -0.469846 -6524, 0.171010, -0.813798, -0.296198, -0.469846 -6525, 0.171010, -0.813798, -0.296198, -0.469846 -6526, 0.171010, -0.813798, -0.296198, -0.469846 -6527, 0.171010, -0.813798, -0.296198, -0.469846 -6528, 0.171010, -0.813798, -0.296198, -0.469846 -6529, 0.171010, -0.813798, -0.296198, -0.469846 -6530, 0.171010, -0.813798, -0.296198, -0.469846 -6531, 0.171010, -0.813798, -0.296198, -0.469846 -6532, 0.171010, -0.813798, -0.296198, -0.469846 -6533, 0.171010, -0.813798, -0.296198, -0.469846 -6534, 0.171010, -0.813798, -0.296198, -0.469846 -6535, 0.171010, -0.813798, -0.296198, -0.469846 -6536, 0.171010, -0.813798, -0.296198, -0.469846 -6537, 0.171010, -0.813798, -0.296198, -0.469846 -6538, 0.171010, -0.813798, -0.296198, -0.469846 -6539, 0.171010, -0.813798, -0.296198, -0.469846 -6540, 0.171010, -0.813798, -0.296198, -0.469846 -6541, 0.171010, -0.813798, -0.296198, -0.469846 -6542, 0.171010, -0.813798, -0.296198, -0.469846 -6543, 0.171010, -0.813798, -0.296198, -0.469846 -6544, 0.171010, -0.813798, -0.296198, -0.469846 -6545, 0.171010, -0.813798, -0.296198, -0.469846 -6546, 0.171010, -0.813798, -0.296198, -0.469846 -6547, 0.171010, -0.813798, -0.296198, -0.469846 -6548, 0.171010, -0.813798, -0.296198, -0.469846 -6549, 0.171010, -0.813798, -0.296198, -0.469846 -6550, 0.171010, -0.813798, -0.296198, -0.469846 -6551, 0.171010, -0.813798, -0.296198, -0.469846 -6552, 0.171010, -0.813798, -0.296198, -0.469846 -6553, 0.171010, -0.813798, -0.296198, -0.469846 -6554, 0.171010, -0.813798, -0.296198, -0.469846 -6555, 0.171010, -0.813798, -0.296198, -0.469846 -6556, 0.171010, -0.813798, -0.296198, -0.469846 -6557, 0.171010, -0.813798, -0.296198, -0.469846 -6558, 0.171010, -0.813798, -0.296198, -0.469846 -6559, 0.171010, -0.813798, -0.296198, -0.469846 -6560, 0.171010, -0.813798, -0.296198, -0.469846 -6561, 0.171010, -0.813798, -0.296198, -0.469846 -6562, 0.171010, -0.813798, -0.296198, -0.469846 -6563, 0.171010, -0.813798, -0.296198, -0.469846 -6564, 0.171010, -0.813798, -0.296198, -0.469846 -6565, 0.171010, -0.813798, -0.296198, -0.469846 -6566, 0.171010, -0.813798, -0.296198, -0.469846 -6567, 0.171010, -0.813798, -0.296198, -0.469846 -6568, 0.171010, -0.813798, -0.296198, -0.469846 -6569, 0.171010, -0.813798, -0.296198, -0.469846 -6570, 0.171010, -0.813798, -0.296198, -0.469846 -6571, 0.171010, -0.813798, -0.296198, -0.469846 -6572, 0.171010, -0.813798, -0.296198, -0.469846 -6573, 0.171010, -0.813798, -0.296198, -0.469846 -6574, 0.171010, -0.813798, -0.296198, -0.469846 -6575, 0.171010, -0.813798, -0.296198, -0.469846 -6576, 0.171010, -0.813798, -0.296198, -0.469846 -6577, 0.171010, -0.813798, -0.296198, -0.469846 -6578, 0.171010, -0.813798, -0.296198, -0.469846 -6579, 0.171010, -0.813798, -0.296198, -0.469846 -6580, 0.171010, -0.813798, -0.296198, -0.469846 -6581, 0.171010, -0.813798, -0.296198, -0.469846 -6582, 0.171010, -0.813798, -0.296198, -0.469846 -6583, 0.171010, -0.813798, -0.296198, -0.469846 -6584, 0.171010, -0.813798, -0.296198, -0.469846 -6585, 0.171010, -0.813798, -0.296198, -0.469846 -6586, 0.171010, -0.813798, -0.296198, -0.469846 -6587, 0.171010, -0.813798, -0.296198, -0.469846 -6588, 0.171010, -0.813798, -0.296198, -0.469846 -6589, 0.171010, -0.813798, -0.296198, -0.469846 -6590, 0.171010, -0.813798, -0.296198, -0.469846 -6591, 0.171010, -0.813798, -0.296198, -0.469846 -6592, 0.171010, -0.813798, -0.296198, -0.469846 -6593, 0.171010, -0.813798, -0.296198, -0.469846 -6594, 0.171010, -0.813798, -0.296198, -0.469846 -6595, 0.171010, -0.813798, -0.296198, -0.469846 -6596, 0.171010, -0.813798, -0.296198, -0.469846 -6597, 0.171010, -0.813798, -0.296198, -0.469846 -6598, 0.171010, -0.813798, -0.296198, -0.469846 -6599, 0.171010, -0.813798, -0.296198, -0.469846 -6600, 0.187247, -0.796008, -0.305559, -0.487794 -6601, 0.187247, -0.796008, -0.305559, -0.487794 -6602, 0.187247, -0.796008, -0.305559, -0.487794 -6603, 0.187247, -0.796008, -0.305559, -0.487794 -6604, 0.187247, -0.796008, -0.305559, -0.487794 -6605, 0.187247, -0.796008, -0.305559, -0.487794 -6606, 0.187247, -0.796008, -0.305559, -0.487794 -6607, 0.187247, -0.796008, -0.305559, -0.487794 -6608, 0.187247, -0.796008, -0.305559, -0.487794 -6609, 0.187247, -0.796008, -0.305559, -0.487794 -6610, 0.187247, -0.796008, -0.305559, -0.487794 -6611, 0.187247, -0.796008, -0.305559, -0.487794 -6612, 0.187247, -0.796008, -0.305559, -0.487794 -6613, 0.187247, -0.796008, -0.305559, -0.487794 -6614, 0.187247, -0.796008, -0.305559, -0.487794 -6615, 0.187247, -0.796008, -0.305559, -0.487794 -6616, 0.187247, -0.796008, -0.305559, -0.487794 -6617, 0.187247, -0.796008, -0.305559, -0.487794 -6618, 0.187247, -0.796008, -0.305559, -0.487794 -6619, 0.187247, -0.796008, -0.305559, -0.487794 -6620, 0.187247, -0.796008, -0.305559, -0.487794 -6621, 0.187247, -0.796008, -0.305559, -0.487794 -6622, 0.187247, -0.796008, -0.305559, -0.487794 -6623, 0.187247, -0.796008, -0.305559, -0.487794 -6624, 0.187247, -0.796008, -0.305559, -0.487794 -6625, 0.187247, -0.796008, -0.305559, -0.487794 -6626, 0.187247, -0.796008, -0.305559, -0.487794 -6627, 0.187247, -0.796008, -0.305559, -0.487794 -6628, 0.187247, -0.796008, -0.305559, -0.487794 -6629, 0.187247, -0.796008, -0.305559, -0.487794 -6630, 0.187247, -0.796008, -0.305559, -0.487794 -6631, 0.187247, -0.796008, -0.305559, -0.487794 -6632, 0.187247, -0.796008, -0.305559, -0.487794 -6633, 0.187247, -0.796008, -0.305559, -0.487794 -6634, 0.187247, -0.796008, -0.305559, -0.487794 -6635, 0.187247, -0.796008, -0.305559, -0.487794 -6636, 0.187247, -0.796008, -0.305559, -0.487794 -6637, 0.187247, -0.796008, -0.305559, -0.487794 -6638, 0.187247, -0.796008, -0.305559, -0.487794 -6639, 0.187247, -0.796008, -0.305559, -0.487794 -6640, 0.187247, -0.796008, -0.305559, -0.487794 -6641, 0.187247, -0.796008, -0.305559, -0.487794 -6642, 0.187247, -0.796008, -0.305559, -0.487794 -6643, 0.187247, -0.796008, -0.305559, -0.487794 -6644, 0.187247, -0.796008, -0.305559, -0.487794 -6645, 0.187247, -0.796008, -0.305559, -0.487794 -6646, 0.187247, -0.796008, -0.305559, -0.487794 -6647, 0.187247, -0.796008, -0.305559, -0.487794 -6648, 0.187247, -0.796008, -0.305559, -0.487794 -6649, 0.187247, -0.796008, -0.305559, -0.487794 -6650, 0.187247, -0.796008, -0.305559, -0.487794 -6651, 0.187247, -0.796008, -0.305559, -0.487794 -6652, 0.187247, -0.796008, -0.305559, -0.487794 -6653, 0.187247, -0.796008, -0.305559, -0.487794 -6654, 0.187247, -0.796008, -0.305559, -0.487794 -6655, 0.187247, -0.796008, -0.305559, -0.487794 -6656, 0.187247, -0.796008, -0.305559, -0.487794 -6657, 0.187247, -0.796008, -0.305559, -0.487794 -6658, 0.187247, -0.796008, -0.305559, -0.487794 -6659, 0.187247, -0.796008, -0.305559, -0.487794 -6660, 0.187247, -0.796008, -0.305559, -0.487794 -6661, 0.187247, -0.796008, -0.305559, -0.487794 -6662, 0.187247, -0.796008, -0.305559, -0.487794 -6663, 0.187247, -0.796008, -0.305559, -0.487794 -6664, 0.187247, -0.796008, -0.305559, -0.487794 -6665, 0.187247, -0.796008, -0.305559, -0.487794 -6666, 0.187247, -0.796008, -0.305559, -0.487794 -6667, 0.187247, -0.796008, -0.305559, -0.487794 -6668, 0.187247, -0.796008, -0.305559, -0.487794 -6669, 0.187247, -0.796008, -0.305559, -0.487794 -6670, 0.187247, -0.796008, -0.305559, -0.487794 -6671, 0.187247, -0.796008, -0.305559, -0.487794 -6672, 0.187247, -0.796008, -0.305559, -0.487794 -6673, 0.187247, -0.796008, -0.305559, -0.487794 -6674, 0.187247, -0.796008, -0.305559, -0.487794 -6675, 0.187247, -0.796008, -0.305559, -0.487794 -6676, 0.187247, -0.796008, -0.305559, -0.487794 -6677, 0.187247, -0.796008, -0.305559, -0.487794 -6678, 0.187247, -0.796008, -0.305559, -0.487794 -6679, 0.187247, -0.796008, -0.305559, -0.487794 -6680, 0.187247, -0.796008, -0.305559, -0.487794 -6681, 0.187247, -0.796008, -0.305559, -0.487794 -6682, 0.187247, -0.796008, -0.305559, -0.487794 -6683, 0.187247, -0.796008, -0.305559, -0.487794 -6684, 0.187247, -0.796008, -0.305559, -0.487794 -6685, 0.187247, -0.796008, -0.305559, -0.487794 -6686, 0.187247, -0.796008, -0.305559, -0.487794 -6687, 0.187247, -0.796008, -0.305559, -0.487794 -6688, 0.187247, -0.796008, -0.305559, -0.487794 -6689, 0.187247, -0.796008, -0.305559, -0.487794 -6690, 0.187247, -0.796008, -0.305559, -0.487794 -6691, 0.187247, -0.796008, -0.305559, -0.487794 -6692, 0.187247, -0.796008, -0.305559, -0.487794 -6693, 0.187247, -0.796008, -0.305559, -0.487794 -6694, 0.187247, -0.796008, -0.305559, -0.487794 -6695, 0.187247, -0.796008, -0.305559, -0.487794 -6696, 0.187247, -0.796008, -0.305559, -0.487794 -6697, 0.187247, -0.796008, -0.305559, -0.487794 -6698, 0.187247, -0.796008, -0.305559, -0.487794 -6699, 0.187247, -0.796008, -0.305559, -0.487794 -6700, 0.204025, -0.777602, -0.314172, -0.504981 -6701, 0.204025, -0.777602, -0.314172, -0.504981 -6702, 0.204025, -0.777602, -0.314172, -0.504981 -6703, 0.204025, -0.777602, -0.314172, -0.504981 -6704, 0.204025, -0.777602, -0.314172, -0.504981 -6705, 0.204025, -0.777602, -0.314172, -0.504981 -6706, 0.204025, -0.777602, -0.314172, -0.504981 -6707, 0.204025, -0.777602, -0.314172, -0.504981 -6708, 0.204025, -0.777602, -0.314172, -0.504981 -6709, 0.204025, -0.777602, -0.314172, -0.504981 -6710, 0.204025, -0.777602, -0.314172, -0.504981 -6711, 0.204025, -0.777602, -0.314172, -0.504981 -6712, 0.204025, -0.777602, -0.314172, -0.504981 -6713, 0.204025, -0.777602, -0.314172, -0.504981 -6714, 0.204025, -0.777602, -0.314172, -0.504981 -6715, 0.204025, -0.777602, -0.314172, -0.504981 -6716, 0.204025, -0.777602, -0.314172, -0.504981 -6717, 0.204025, -0.777602, -0.314172, -0.504981 -6718, 0.204025, -0.777602, -0.314172, -0.504981 -6719, 0.204025, -0.777602, -0.314172, -0.504981 -6720, 0.204025, -0.777602, -0.314172, -0.504981 -6721, 0.204025, -0.777602, -0.314172, -0.504981 -6722, 0.204025, -0.777602, -0.314172, -0.504981 -6723, 0.204025, -0.777602, -0.314172, -0.504981 -6724, 0.204025, -0.777602, -0.314172, -0.504981 -6725, 0.204025, -0.777602, -0.314172, -0.504981 -6726, 0.204025, -0.777602, -0.314172, -0.504981 -6727, 0.204025, -0.777602, -0.314172, -0.504981 -6728, 0.204025, -0.777602, -0.314172, -0.504981 -6729, 0.204025, -0.777602, -0.314172, -0.504981 -6730, 0.204025, -0.777602, -0.314172, -0.504981 -6731, 0.204025, -0.777602, -0.314172, -0.504981 -6732, 0.204025, -0.777602, -0.314172, -0.504981 -6733, 0.204025, -0.777602, -0.314172, -0.504981 -6734, 0.204025, -0.777602, -0.314172, -0.504981 -6735, 0.204025, -0.777602, -0.314172, -0.504981 -6736, 0.204025, -0.777602, -0.314172, -0.504981 -6737, 0.204025, -0.777602, -0.314172, -0.504981 -6738, 0.204025, -0.777602, -0.314172, -0.504981 -6739, 0.204025, -0.777602, -0.314172, -0.504981 -6740, 0.204025, -0.777602, -0.314172, -0.504981 -6741, 0.204025, -0.777602, -0.314172, -0.504981 -6742, 0.204025, -0.777602, -0.314172, -0.504981 -6743, 0.204025, -0.777602, -0.314172, -0.504981 -6744, 0.204025, -0.777602, -0.314172, -0.504981 -6745, 0.204025, -0.777602, -0.314172, -0.504981 -6746, 0.204025, -0.777602, -0.314172, -0.504981 -6747, 0.204025, -0.777602, -0.314172, -0.504981 -6748, 0.204025, -0.777602, -0.314172, -0.504981 -6749, 0.204025, -0.777602, -0.314172, -0.504981 -6750, 0.204025, -0.777602, -0.314172, -0.504981 -6751, 0.204025, -0.777602, -0.314172, -0.504981 -6752, 0.204025, -0.777602, -0.314172, -0.504981 -6753, 0.204025, -0.777602, -0.314172, -0.504981 -6754, 0.204025, -0.777602, -0.314172, -0.504981 -6755, 0.204025, -0.777602, -0.314172, -0.504981 -6756, 0.204025, -0.777602, -0.314172, -0.504981 -6757, 0.204025, -0.777602, -0.314172, -0.504981 -6758, 0.204025, -0.777602, -0.314172, -0.504981 -6759, 0.204025, -0.777602, -0.314172, -0.504981 -6760, 0.204025, -0.777602, -0.314172, -0.504981 -6761, 0.204025, -0.777602, -0.314172, -0.504981 -6762, 0.204025, -0.777602, -0.314172, -0.504981 -6763, 0.204025, -0.777602, -0.314172, -0.504981 -6764, 0.204025, -0.777602, -0.314172, -0.504981 -6765, 0.204025, -0.777602, -0.314172, -0.504981 -6766, 0.204025, -0.777602, -0.314172, -0.504981 -6767, 0.204025, -0.777602, -0.314172, -0.504981 -6768, 0.204025, -0.777602, -0.314172, -0.504981 -6769, 0.204025, -0.777602, -0.314172, -0.504981 -6770, 0.204025, -0.777602, -0.314172, -0.504981 -6771, 0.204025, -0.777602, -0.314172, -0.504981 -6772, 0.204025, -0.777602, -0.314172, -0.504981 -6773, 0.204025, -0.777602, -0.314172, -0.504981 -6774, 0.204025, -0.777602, -0.314172, -0.504981 -6775, 0.204025, -0.777602, -0.314172, -0.504981 -6776, 0.204025, -0.777602, -0.314172, -0.504981 -6777, 0.204025, -0.777602, -0.314172, -0.504981 -6778, 0.204025, -0.777602, -0.314172, -0.504981 -6779, 0.204025, -0.777602, -0.314172, -0.504981 -6780, 0.204025, -0.777602, -0.314172, -0.504981 -6781, 0.204025, -0.777602, -0.314172, -0.504981 -6782, 0.204025, -0.777602, -0.314172, -0.504981 -6783, 0.204025, -0.777602, -0.314172, -0.504981 -6784, 0.204025, -0.777602, -0.314172, -0.504981 -6785, 0.204025, -0.777602, -0.314172, -0.504981 -6786, 0.204025, -0.777602, -0.314172, -0.504981 -6787, 0.204025, -0.777602, -0.314172, -0.504981 -6788, 0.204025, -0.777602, -0.314172, -0.504981 -6789, 0.204025, -0.777602, -0.314172, -0.504981 -6790, 0.204025, -0.777602, -0.314172, -0.504981 -6791, 0.204025, -0.777602, -0.314172, -0.504981 -6792, 0.204025, -0.777602, -0.314172, -0.504981 -6793, 0.204025, -0.777602, -0.314172, -0.504981 -6794, 0.204025, -0.777602, -0.314172, -0.504981 -6795, 0.204025, -0.777602, -0.314172, -0.504981 -6796, 0.204025, -0.777602, -0.314172, -0.504981 -6797, 0.204025, -0.777602, -0.314172, -0.504981 -6798, 0.204025, -0.777602, -0.314172, -0.504981 -6799, 0.204025, -0.777602, -0.314172, -0.504981 -6800, 0.221313, -0.758612, -0.322012, -0.521380 -6801, 0.221313, -0.758612, -0.322012, -0.521380 -6802, 0.221313, -0.758612, -0.322012, -0.521380 -6803, 0.221313, -0.758612, -0.322012, -0.521380 -6804, 0.221313, -0.758612, -0.322012, -0.521380 -6805, 0.221313, -0.758612, -0.322012, -0.521380 -6806, 0.221313, -0.758612, -0.322012, -0.521380 -6807, 0.221313, -0.758612, -0.322012, -0.521380 -6808, 0.221313, -0.758612, -0.322012, -0.521380 -6809, 0.221313, -0.758612, -0.322012, -0.521380 -6810, 0.221313, -0.758612, -0.322012, -0.521380 -6811, 0.221313, -0.758612, -0.322012, -0.521380 -6812, 0.221313, -0.758612, -0.322012, -0.521380 -6813, 0.221313, -0.758612, -0.322012, -0.521380 -6814, 0.221313, -0.758612, -0.322012, -0.521380 -6815, 0.221313, -0.758612, -0.322012, -0.521380 -6816, 0.221313, -0.758612, -0.322012, -0.521380 -6817, 0.221313, -0.758612, -0.322012, -0.521380 -6818, 0.221313, -0.758612, -0.322012, -0.521380 -6819, 0.221313, -0.758612, -0.322012, -0.521380 -6820, 0.221313, -0.758612, -0.322012, -0.521380 -6821, 0.221313, -0.758612, -0.322012, -0.521380 -6822, 0.221313, -0.758612, -0.322012, -0.521380 -6823, 0.221313, -0.758612, -0.322012, -0.521380 -6824, 0.221313, -0.758612, -0.322012, -0.521380 -6825, 0.221313, -0.758612, -0.322012, -0.521380 -6826, 0.221313, -0.758612, -0.322012, -0.521380 -6827, 0.221313, -0.758612, -0.322012, -0.521380 -6828, 0.221313, -0.758612, -0.322012, -0.521380 -6829, 0.221313, -0.758612, -0.322012, -0.521380 -6830, 0.221313, -0.758612, -0.322012, -0.521380 -6831, 0.221313, -0.758612, -0.322012, -0.521380 -6832, 0.221313, -0.758612, -0.322012, -0.521380 -6833, 0.221313, -0.758612, -0.322012, -0.521380 -6834, 0.221313, -0.758612, -0.322012, -0.521380 -6835, 0.221313, -0.758612, -0.322012, -0.521380 -6836, 0.221313, -0.758612, -0.322012, -0.521380 -6837, 0.221313, -0.758612, -0.322012, -0.521380 -6838, 0.221313, -0.758612, -0.322012, -0.521380 -6839, 0.221313, -0.758612, -0.322012, -0.521380 -6840, 0.221313, -0.758612, -0.322012, -0.521380 -6841, 0.221313, -0.758612, -0.322012, -0.521380 -6842, 0.221313, -0.758612, -0.322012, -0.521380 -6843, 0.221313, -0.758612, -0.322012, -0.521380 -6844, 0.221313, -0.758612, -0.322012, -0.521380 -6845, 0.221313, -0.758612, -0.322012, -0.521380 -6846, 0.221313, -0.758612, -0.322012, -0.521380 -6847, 0.221313, -0.758612, -0.322012, -0.521380 -6848, 0.221313, -0.758612, -0.322012, -0.521380 -6849, 0.221313, -0.758612, -0.322012, -0.521380 -6850, 0.221313, -0.758612, -0.322012, -0.521380 -6851, 0.221313, -0.758612, -0.322012, -0.521380 -6852, 0.221313, -0.758612, -0.322012, -0.521380 -6853, 0.221313, -0.758612, -0.322012, -0.521380 -6854, 0.221313, -0.758612, -0.322012, -0.521380 -6855, 0.221313, -0.758612, -0.322012, -0.521380 -6856, 0.221313, -0.758612, -0.322012, -0.521380 -6857, 0.221313, -0.758612, -0.322012, -0.521380 -6858, 0.221313, -0.758612, -0.322012, -0.521380 -6859, 0.221313, -0.758612, -0.322012, -0.521380 -6860, 0.221313, -0.758612, -0.322012, -0.521380 -6861, 0.221313, -0.758612, -0.322012, -0.521380 -6862, 0.221313, -0.758612, -0.322012, -0.521380 -6863, 0.221313, -0.758612, -0.322012, -0.521380 -6864, 0.221313, -0.758612, -0.322012, -0.521380 -6865, 0.221313, -0.758612, -0.322012, -0.521380 -6866, 0.221313, -0.758612, -0.322012, -0.521380 -6867, 0.221313, -0.758612, -0.322012, -0.521380 -6868, 0.221313, -0.758612, -0.322012, -0.521380 -6869, 0.221313, -0.758612, -0.322012, -0.521380 -6870, 0.221313, -0.758612, -0.322012, -0.521380 -6871, 0.221313, -0.758612, -0.322012, -0.521380 -6872, 0.221313, -0.758612, -0.322012, -0.521380 -6873, 0.221313, -0.758612, -0.322012, -0.521380 -6874, 0.221313, -0.758612, -0.322012, -0.521380 -6875, 0.221313, -0.758612, -0.322012, -0.521380 -6876, 0.221313, -0.758612, -0.322012, -0.521380 -6877, 0.221313, -0.758612, -0.322012, -0.521380 -6878, 0.221313, -0.758612, -0.322012, -0.521380 -6879, 0.221313, -0.758612, -0.322012, -0.521380 -6880, 0.221313, -0.758612, -0.322012, -0.521380 -6881, 0.221313, -0.758612, -0.322012, -0.521380 -6882, 0.221313, -0.758612, -0.322012, -0.521380 -6883, 0.221313, -0.758612, -0.322012, -0.521380 -6884, 0.221313, -0.758612, -0.322012, -0.521380 -6885, 0.221313, -0.758612, -0.322012, -0.521380 -6886, 0.221313, -0.758612, -0.322012, -0.521380 -6887, 0.221313, -0.758612, -0.322012, -0.521380 -6888, 0.221313, -0.758612, -0.322012, -0.521380 -6889, 0.221313, -0.758612, -0.322012, -0.521380 -6890, 0.221313, -0.758612, -0.322012, -0.521380 -6891, 0.221313, -0.758612, -0.322012, -0.521380 -6892, 0.221313, -0.758612, -0.322012, -0.521380 -6893, 0.221313, -0.758612, -0.322012, -0.521380 -6894, 0.221313, -0.758612, -0.322012, -0.521380 -6895, 0.221313, -0.758612, -0.322012, -0.521380 -6896, 0.221313, -0.758612, -0.322012, -0.521380 -6897, 0.221313, -0.758612, -0.322012, -0.521380 -6898, 0.221313, -0.758612, -0.322012, -0.521380 -6899, 0.221313, -0.758612, -0.322012, -0.521380 -6900, 0.239074, -0.739074, -0.329057, -0.536969 -6901, 0.239074, -0.739074, -0.329057, -0.536969 -6902, 0.239074, -0.739074, -0.329057, -0.536969 -6903, 0.239074, -0.739074, -0.329057, -0.536969 -6904, 0.239074, -0.739074, -0.329057, -0.536969 -6905, 0.239074, -0.739074, -0.329057, -0.536969 -6906, 0.239074, -0.739074, -0.329057, -0.536969 -6907, 0.239074, -0.739074, -0.329057, -0.536969 -6908, 0.239074, -0.739074, -0.329057, -0.536969 -6909, 0.239074, -0.739074, -0.329057, -0.536969 -6910, 0.239074, -0.739074, -0.329057, -0.536969 -6911, 0.239074, -0.739074, -0.329057, -0.536969 -6912, 0.239074, -0.739074, -0.329057, -0.536969 -6913, 0.239074, -0.739074, -0.329057, -0.536969 -6914, 0.239074, -0.739074, -0.329057, -0.536969 -6915, 0.239074, -0.739074, -0.329057, -0.536969 -6916, 0.239074, -0.739074, -0.329057, -0.536969 -6917, 0.239074, -0.739074, -0.329057, -0.536969 -6918, 0.239074, -0.739074, -0.329057, -0.536969 -6919, 0.239074, -0.739074, -0.329057, -0.536969 -6920, 0.239074, -0.739074, -0.329057, -0.536969 -6921, 0.239074, -0.739074, -0.329057, -0.536969 -6922, 0.239074, -0.739074, -0.329057, -0.536969 -6923, 0.239074, -0.739074, -0.329057, -0.536969 -6924, 0.239074, -0.739074, -0.329057, -0.536969 -6925, 0.239074, -0.739074, -0.329057, -0.536969 -6926, 0.239074, -0.739074, -0.329057, -0.536969 -6927, 0.239074, -0.739074, -0.329057, -0.536969 -6928, 0.239074, -0.739074, -0.329057, -0.536969 -6929, 0.239074, -0.739074, -0.329057, -0.536969 -6930, 0.239074, -0.739074, -0.329057, -0.536969 -6931, 0.239074, -0.739074, -0.329057, -0.536969 -6932, 0.239074, -0.739074, -0.329057, -0.536969 -6933, 0.239074, -0.739074, -0.329057, -0.536969 -6934, 0.239074, -0.739074, -0.329057, -0.536969 -6935, 0.239074, -0.739074, -0.329057, -0.536969 -6936, 0.239074, -0.739074, -0.329057, -0.536969 -6937, 0.239074, -0.739074, -0.329057, -0.536969 -6938, 0.239074, -0.739074, -0.329057, -0.536969 -6939, 0.239074, -0.739074, -0.329057, -0.536969 -6940, 0.239074, -0.739074, -0.329057, -0.536969 -6941, 0.239074, -0.739074, -0.329057, -0.536969 -6942, 0.239074, -0.739074, -0.329057, -0.536969 -6943, 0.239074, -0.739074, -0.329057, -0.536969 -6944, 0.239074, -0.739074, -0.329057, -0.536969 -6945, 0.239074, -0.739074, -0.329057, -0.536969 -6946, 0.239074, -0.739074, -0.329057, -0.536969 -6947, 0.239074, -0.739074, -0.329057, -0.536969 -6948, 0.239074, -0.739074, -0.329057, -0.536969 -6949, 0.239074, -0.739074, -0.329057, -0.536969 -6950, 0.239074, -0.739074, -0.329057, -0.536969 -6951, 0.239074, -0.739074, -0.329057, -0.536969 -6952, 0.239074, -0.739074, -0.329057, -0.536969 -6953, 0.239074, -0.739074, -0.329057, -0.536969 -6954, 0.239074, -0.739074, -0.329057, -0.536969 -6955, 0.239074, -0.739074, -0.329057, -0.536969 -6956, 0.239074, -0.739074, -0.329057, -0.536969 -6957, 0.239074, -0.739074, -0.329057, -0.536969 -6958, 0.239074, -0.739074, -0.329057, -0.536969 -6959, 0.239074, -0.739074, -0.329057, -0.536969 -6960, 0.239074, -0.739074, -0.329057, -0.536969 -6961, 0.239074, -0.739074, -0.329057, -0.536969 -6962, 0.239074, -0.739074, -0.329057, -0.536969 -6963, 0.239074, -0.739074, -0.329057, -0.536969 -6964, 0.239074, -0.739074, -0.329057, -0.536969 -6965, 0.239074, -0.739074, -0.329057, -0.536969 -6966, 0.239074, -0.739074, -0.329057, -0.536969 -6967, 0.239074, -0.739074, -0.329057, -0.536969 -6968, 0.239074, -0.739074, -0.329057, -0.536969 -6969, 0.239074, -0.739074, -0.329057, -0.536969 -6970, 0.239074, -0.739074, -0.329057, -0.536969 -6971, 0.239074, -0.739074, -0.329057, -0.536969 -6972, 0.239074, -0.739074, -0.329057, -0.536969 -6973, 0.239074, -0.739074, -0.329057, -0.536969 -6974, 0.239074, -0.739074, -0.329057, -0.536969 -6975, 0.239074, -0.739074, -0.329057, -0.536969 -6976, 0.239074, -0.739074, -0.329057, -0.536969 -6977, 0.239074, -0.739074, -0.329057, -0.536969 -6978, 0.239074, -0.739074, -0.329057, -0.536969 -6979, 0.239074, -0.739074, -0.329057, -0.536969 -6980, 0.239074, -0.739074, -0.329057, -0.536969 -6981, 0.239074, -0.739074, -0.329057, -0.536969 -6982, 0.239074, -0.739074, -0.329057, -0.536969 -6983, 0.239074, -0.739074, -0.329057, -0.536969 -6984, 0.239074, -0.739074, -0.329057, -0.536969 -6985, 0.239074, -0.739074, -0.329057, -0.536969 -6986, 0.239074, -0.739074, -0.329057, -0.536969 -6987, 0.239074, -0.739074, -0.329057, -0.536969 -6988, 0.239074, -0.739074, -0.329057, -0.536969 -6989, 0.239074, -0.739074, -0.329057, -0.536969 -6990, 0.239074, -0.739074, -0.329057, -0.536969 -6991, 0.239074, -0.739074, -0.329057, -0.536969 -6992, 0.239074, -0.739074, -0.329057, -0.536969 -6993, 0.239074, -0.739074, -0.329057, -0.536969 -6994, 0.239074, -0.739074, -0.329057, -0.536969 -6995, 0.239074, -0.739074, -0.329057, -0.536969 -6996, 0.239074, -0.739074, -0.329057, -0.536969 -6997, 0.239074, -0.739074, -0.329057, -0.536969 -6998, 0.239074, -0.739074, -0.329057, -0.536969 -6999, 0.239074, -0.739074, -0.329057, -0.536969 -7000, 0.257274, -0.719022, -0.335286, -0.551725 -7001, 0.257274, -0.719022, -0.335286, -0.551725 -7002, 0.257274, -0.719022, -0.335286, -0.551725 -7003, 0.257274, -0.719022, -0.335286, -0.551725 -7004, 0.257274, -0.719022, -0.335286, -0.551725 -7005, 0.257274, -0.719022, -0.335286, -0.551725 -7006, 0.257274, -0.719022, -0.335286, -0.551725 -7007, 0.257274, -0.719022, -0.335286, -0.551725 -7008, 0.257274, -0.719022, -0.335286, -0.551725 -7009, 0.257274, -0.719022, -0.335286, -0.551725 -7010, 0.257274, -0.719022, -0.335286, -0.551725 -7011, 0.257274, -0.719022, -0.335286, -0.551725 -7012, 0.257274, -0.719022, -0.335286, -0.551725 -7013, 0.257274, -0.719022, -0.335286, -0.551725 -7014, 0.257274, -0.719022, -0.335286, -0.551725 -7015, 0.257274, -0.719022, -0.335286, -0.551725 -7016, 0.257274, -0.719022, -0.335286, -0.551725 -7017, 0.257274, -0.719022, -0.335286, -0.551725 -7018, 0.257274, -0.719022, -0.335286, -0.551725 -7019, 0.257274, -0.719022, -0.335286, -0.551725 -7020, 0.257274, -0.719022, -0.335286, -0.551725 -7021, 0.257274, -0.719022, -0.335286, -0.551725 -7022, 0.257274, -0.719022, -0.335286, -0.551725 -7023, 0.257274, -0.719022, -0.335286, -0.551725 -7024, 0.257274, -0.719022, -0.335286, -0.551725 -7025, 0.257274, -0.719022, -0.335286, -0.551725 -7026, 0.257274, -0.719022, -0.335286, -0.551725 -7027, 0.257274, -0.719022, -0.335286, -0.551725 -7028, 0.257274, -0.719022, -0.335286, -0.551725 -7029, 0.257274, -0.719022, -0.335286, -0.551725 -7030, 0.257274, -0.719022, -0.335286, -0.551725 -7031, 0.257274, -0.719022, -0.335286, -0.551725 -7032, 0.257274, -0.719022, -0.335286, -0.551725 -7033, 0.257274, -0.719022, -0.335286, -0.551725 -7034, 0.257274, -0.719022, -0.335286, -0.551725 -7035, 0.257274, -0.719022, -0.335286, -0.551725 -7036, 0.257274, -0.719022, -0.335286, -0.551725 -7037, 0.257274, -0.719022, -0.335286, -0.551725 -7038, 0.257274, -0.719022, -0.335286, -0.551725 -7039, 0.257274, -0.719022, -0.335286, -0.551725 -7040, 0.257274, -0.719022, -0.335286, -0.551725 -7041, 0.257274, -0.719022, -0.335286, -0.551725 -7042, 0.257274, -0.719022, -0.335286, -0.551725 -7043, 0.257274, -0.719022, -0.335286, -0.551725 -7044, 0.257274, -0.719022, -0.335286, -0.551725 -7045, 0.257274, -0.719022, -0.335286, -0.551725 -7046, 0.257274, -0.719022, -0.335286, -0.551725 -7047, 0.257274, -0.719022, -0.335286, -0.551725 -7048, 0.257274, -0.719022, -0.335286, -0.551725 -7049, 0.257274, -0.719022, -0.335286, -0.551725 -7050, 0.257274, -0.719022, -0.335286, -0.551725 -7051, 0.257274, -0.719022, -0.335286, -0.551725 -7052, 0.257274, -0.719022, -0.335286, -0.551725 -7053, 0.257274, -0.719022, -0.335286, -0.551725 -7054, 0.257274, -0.719022, -0.335286, -0.551725 -7055, 0.257274, -0.719022, -0.335286, -0.551725 -7056, 0.257274, -0.719022, -0.335286, -0.551725 -7057, 0.257274, -0.719022, -0.335286, -0.551725 -7058, 0.257274, -0.719022, -0.335286, -0.551725 -7059, 0.257274, -0.719022, -0.335286, -0.551725 -7060, 0.257274, -0.719022, -0.335286, -0.551725 -7061, 0.257274, -0.719022, -0.335286, -0.551725 -7062, 0.257274, -0.719022, -0.335286, -0.551725 -7063, 0.257274, -0.719022, -0.335286, -0.551725 -7064, 0.257274, -0.719022, -0.335286, -0.551725 -7065, 0.257274, -0.719022, -0.335286, -0.551725 -7066, 0.257274, -0.719022, -0.335286, -0.551725 -7067, 0.257274, -0.719022, -0.335286, -0.551725 -7068, 0.257274, -0.719022, -0.335286, -0.551725 -7069, 0.257274, -0.719022, -0.335286, -0.551725 -7070, 0.257274, -0.719022, -0.335286, -0.551725 -7071, 0.257274, -0.719022, -0.335286, -0.551725 -7072, 0.257274, -0.719022, -0.335286, -0.551725 -7073, 0.257274, -0.719022, -0.335286, -0.551725 -7074, 0.257274, -0.719022, -0.335286, -0.551725 -7075, 0.257274, -0.719022, -0.335286, -0.551725 -7076, 0.257274, -0.719022, -0.335286, -0.551725 -7077, 0.257274, -0.719022, -0.335286, -0.551725 -7078, 0.257274, -0.719022, -0.335286, -0.551725 -7079, 0.257274, -0.719022, -0.335286, -0.551725 -7080, 0.257274, -0.719022, -0.335286, -0.551725 -7081, 0.257274, -0.719022, -0.335286, -0.551725 -7082, 0.257274, -0.719022, -0.335286, -0.551725 -7083, 0.257274, -0.719022, -0.335286, -0.551725 -7084, 0.257274, -0.719022, -0.335286, -0.551725 -7085, 0.257274, -0.719022, -0.335286, -0.551725 -7086, 0.257274, -0.719022, -0.335286, -0.551725 -7087, 0.257274, -0.719022, -0.335286, -0.551725 -7088, 0.257274, -0.719022, -0.335286, -0.551725 -7089, 0.257274, -0.719022, -0.335286, -0.551725 -7090, 0.257274, -0.719022, -0.335286, -0.551725 -7091, 0.257274, -0.719022, -0.335286, -0.551725 -7092, 0.257274, -0.719022, -0.335286, -0.551725 -7093, 0.257274, -0.719022, -0.335286, -0.551725 -7094, 0.257274, -0.719022, -0.335286, -0.551725 -7095, 0.257274, -0.719022, -0.335286, -0.551725 -7096, 0.257274, -0.719022, -0.335286, -0.551725 -7097, 0.257274, -0.719022, -0.335286, -0.551725 -7098, 0.257274, -0.719022, -0.335286, -0.551725 -7099, 0.257274, -0.719022, -0.335286, -0.551725 -7100, 0.275876, -0.698494, -0.340678, -0.565629 -7101, 0.275876, -0.698494, -0.340678, -0.565629 -7102, 0.275876, -0.698494, -0.340678, -0.565629 -7103, 0.275876, -0.698494, -0.340678, -0.565629 -7104, 0.275876, -0.698494, -0.340678, -0.565629 -7105, 0.275876, -0.698494, -0.340678, -0.565629 -7106, 0.275876, -0.698494, -0.340678, -0.565629 -7107, 0.275876, -0.698494, -0.340678, -0.565629 -7108, 0.275876, -0.698494, -0.340678, -0.565629 -7109, 0.275876, -0.698494, -0.340678, -0.565629 -7110, 0.275876, -0.698494, -0.340678, -0.565629 -7111, 0.275876, -0.698494, -0.340678, -0.565629 -7112, 0.275876, -0.698494, -0.340678, -0.565629 -7113, 0.275876, -0.698494, -0.340678, -0.565629 -7114, 0.275876, -0.698494, -0.340678, -0.565629 -7115, 0.275876, -0.698494, -0.340678, -0.565629 -7116, 0.275876, -0.698494, -0.340678, -0.565629 -7117, 0.275876, -0.698494, -0.340678, -0.565629 -7118, 0.275876, -0.698494, -0.340678, -0.565629 -7119, 0.275876, -0.698494, -0.340678, -0.565629 -7120, 0.275876, -0.698494, -0.340678, -0.565629 -7121, 0.275876, -0.698494, -0.340678, -0.565629 -7122, 0.275876, -0.698494, -0.340678, -0.565629 -7123, 0.275876, -0.698494, -0.340678, -0.565629 -7124, 0.275876, -0.698494, -0.340678, -0.565629 -7125, 0.275876, -0.698494, -0.340678, -0.565629 -7126, 0.275876, -0.698494, -0.340678, -0.565629 -7127, 0.275876, -0.698494, -0.340678, -0.565629 -7128, 0.275876, -0.698494, -0.340678, -0.565629 -7129, 0.275876, -0.698494, -0.340678, -0.565629 -7130, 0.275876, -0.698494, -0.340678, -0.565629 -7131, 0.275876, -0.698494, -0.340678, -0.565629 -7132, 0.275876, -0.698494, -0.340678, -0.565629 -7133, 0.275876, -0.698494, -0.340678, -0.565629 -7134, 0.275876, -0.698494, -0.340678, -0.565629 -7135, 0.275876, -0.698494, -0.340678, -0.565629 -7136, 0.275876, -0.698494, -0.340678, -0.565629 -7137, 0.275876, -0.698494, -0.340678, -0.565629 -7138, 0.275876, -0.698494, -0.340678, -0.565629 -7139, 0.275876, -0.698494, -0.340678, -0.565629 -7140, 0.275876, -0.698494, -0.340678, -0.565629 -7141, 0.275876, -0.698494, -0.340678, -0.565629 -7142, 0.275876, -0.698494, -0.340678, -0.565629 -7143, 0.275876, -0.698494, -0.340678, -0.565629 -7144, 0.275876, -0.698494, -0.340678, -0.565629 -7145, 0.275876, -0.698494, -0.340678, -0.565629 -7146, 0.275876, -0.698494, -0.340678, -0.565629 -7147, 0.275876, -0.698494, -0.340678, -0.565629 -7148, 0.275876, -0.698494, -0.340678, -0.565629 -7149, 0.275876, -0.698494, -0.340678, -0.565629 -7150, 0.275876, -0.698494, -0.340678, -0.565629 -7151, 0.275876, -0.698494, -0.340678, -0.565629 -7152, 0.275876, -0.698494, -0.340678, -0.565629 -7153, 0.275876, -0.698494, -0.340678, -0.565629 -7154, 0.275876, -0.698494, -0.340678, -0.565629 -7155, 0.275876, -0.698494, -0.340678, -0.565629 -7156, 0.275876, -0.698494, -0.340678, -0.565629 -7157, 0.275876, -0.698494, -0.340678, -0.565629 -7158, 0.275876, -0.698494, -0.340678, -0.565629 -7159, 0.275876, -0.698494, -0.340678, -0.565629 -7160, 0.275876, -0.698494, -0.340678, -0.565629 -7161, 0.275876, -0.698494, -0.340678, -0.565629 -7162, 0.275876, -0.698494, -0.340678, -0.565629 -7163, 0.275876, -0.698494, -0.340678, -0.565629 -7164, 0.275876, -0.698494, -0.340678, -0.565629 -7165, 0.275876, -0.698494, -0.340678, -0.565629 -7166, 0.275876, -0.698494, -0.340678, -0.565629 -7167, 0.275876, -0.698494, -0.340678, -0.565629 -7168, 0.275876, -0.698494, -0.340678, -0.565629 -7169, 0.275876, -0.698494, -0.340678, -0.565629 -7170, 0.275876, -0.698494, -0.340678, -0.565629 -7171, 0.275876, -0.698494, -0.340678, -0.565629 -7172, 0.275876, -0.698494, -0.340678, -0.565629 -7173, 0.275876, -0.698494, -0.340678, -0.565629 -7174, 0.275876, -0.698494, -0.340678, -0.565629 -7175, 0.275876, -0.698494, -0.340678, -0.565629 -7176, 0.275876, -0.698494, -0.340678, -0.565629 -7177, 0.275876, -0.698494, -0.340678, -0.565629 -7178, 0.275876, -0.698494, -0.340678, -0.565629 -7179, 0.275876, -0.698494, -0.340678, -0.565629 -7180, 0.275876, -0.698494, -0.340678, -0.565629 -7181, 0.275876, -0.698494, -0.340678, -0.565629 -7182, 0.275876, -0.698494, -0.340678, -0.565629 -7183, 0.275876, -0.698494, -0.340678, -0.565629 -7184, 0.275876, -0.698494, -0.340678, -0.565629 -7185, 0.275876, -0.698494, -0.340678, -0.565629 -7186, 0.275876, -0.698494, -0.340678, -0.565629 -7187, 0.275876, -0.698494, -0.340678, -0.565629 -7188, 0.275876, -0.698494, -0.340678, -0.565629 -7189, 0.275876, -0.698494, -0.340678, -0.565629 -7190, 0.275876, -0.698494, -0.340678, -0.565629 -7191, 0.275876, -0.698494, -0.340678, -0.565629 -7192, 0.275876, -0.698494, -0.340678, -0.565629 -7193, 0.275876, -0.698494, -0.340678, -0.565629 -7194, 0.275876, -0.698494, -0.340678, -0.565629 -7195, 0.275876, -0.698494, -0.340678, -0.565629 -7196, 0.275876, -0.698494, -0.340678, -0.565629 -7197, 0.275876, -0.698494, -0.340678, -0.565629 -7198, 0.275876, -0.698494, -0.340678, -0.565629 -7199, 0.275876, -0.698494, -0.340678, -0.565629 -7200, 0.294843, -0.677527, -0.345217, -0.578662 -7201, 0.294843, -0.677527, -0.345217, -0.578662 -7202, 0.294843, -0.677527, -0.345217, -0.578662 -7203, 0.294843, -0.677527, -0.345217, -0.578662 -7204, 0.294843, -0.677527, -0.345217, -0.578662 -7205, 0.294843, -0.677527, -0.345217, -0.578662 -7206, 0.294843, -0.677527, -0.345217, -0.578662 -7207, 0.294843, -0.677527, -0.345217, -0.578662 -7208, 0.294843, -0.677527, -0.345217, -0.578662 -7209, 0.294843, -0.677527, -0.345217, -0.578662 -7210, 0.294843, -0.677527, -0.345217, -0.578662 -7211, 0.294843, -0.677527, -0.345217, -0.578662 -7212, 0.294843, -0.677527, -0.345217, -0.578662 -7213, 0.294843, -0.677527, -0.345217, -0.578662 -7214, 0.294843, -0.677527, -0.345217, -0.578662 -7215, 0.294843, -0.677527, -0.345217, -0.578662 -7216, 0.294843, -0.677527, -0.345217, -0.578662 -7217, 0.294843, -0.677527, -0.345217, -0.578662 -7218, 0.294843, -0.677527, -0.345217, -0.578662 -7219, 0.294843, -0.677527, -0.345217, -0.578662 -7220, 0.294843, -0.677527, -0.345217, -0.578662 -7221, 0.294843, -0.677527, -0.345217, -0.578662 -7222, 0.294843, -0.677527, -0.345217, -0.578662 -7223, 0.294843, -0.677527, -0.345217, -0.578662 -7224, 0.294843, -0.677527, -0.345217, -0.578662 -7225, 0.294843, -0.677527, -0.345217, -0.578662 -7226, 0.294843, -0.677527, -0.345217, -0.578662 -7227, 0.294843, -0.677527, -0.345217, -0.578662 -7228, 0.294843, -0.677527, -0.345217, -0.578662 -7229, 0.294843, -0.677527, -0.345217, -0.578662 -7230, 0.294843, -0.677527, -0.345217, -0.578662 -7231, 0.294843, -0.677527, -0.345217, -0.578662 -7232, 0.294843, -0.677527, -0.345217, -0.578662 -7233, 0.294843, -0.677527, -0.345217, -0.578662 -7234, 0.294843, -0.677527, -0.345217, -0.578662 -7235, 0.294843, -0.677527, -0.345217, -0.578662 -7236, 0.294843, -0.677527, -0.345217, -0.578662 -7237, 0.294843, -0.677527, -0.345217, -0.578662 -7238, 0.294843, -0.677527, -0.345217, -0.578662 -7239, 0.294843, -0.677527, -0.345217, -0.578662 -7240, 0.294843, -0.677527, -0.345217, -0.578662 -7241, 0.294843, -0.677527, -0.345217, -0.578662 -7242, 0.294843, -0.677527, -0.345217, -0.578662 -7243, 0.294843, -0.677527, -0.345217, -0.578662 -7244, 0.294843, -0.677527, -0.345217, -0.578662 -7245, 0.294843, -0.677527, -0.345217, -0.578662 -7246, 0.294843, -0.677527, -0.345217, -0.578662 -7247, 0.294843, -0.677527, -0.345217, -0.578662 -7248, 0.294843, -0.677527, -0.345217, -0.578662 -7249, 0.294843, -0.677527, -0.345217, -0.578662 -7250, 0.294843, -0.677527, -0.345217, -0.578662 -7251, 0.294843, -0.677527, -0.345217, -0.578662 -7252, 0.294843, -0.677527, -0.345217, -0.578662 -7253, 0.294843, -0.677527, -0.345217, -0.578662 -7254, 0.294843, -0.677527, -0.345217, -0.578662 -7255, 0.294843, -0.677527, -0.345217, -0.578662 -7256, 0.294843, -0.677527, -0.345217, -0.578662 -7257, 0.294843, -0.677527, -0.345217, -0.578662 -7258, 0.294843, -0.677527, -0.345217, -0.578662 -7259, 0.294843, -0.677527, -0.345217, -0.578662 -7260, 0.294843, -0.677527, -0.345217, -0.578662 -7261, 0.294843, -0.677527, -0.345217, -0.578662 -7262, 0.294843, -0.677527, -0.345217, -0.578662 -7263, 0.294843, -0.677527, -0.345217, -0.578662 -7264, 0.294843, -0.677527, -0.345217, -0.578662 -7265, 0.294843, -0.677527, -0.345217, -0.578662 -7266, 0.294843, -0.677527, -0.345217, -0.578662 -7267, 0.294843, -0.677527, -0.345217, -0.578662 -7268, 0.294843, -0.677527, -0.345217, -0.578662 -7269, 0.294843, -0.677527, -0.345217, -0.578662 -7270, 0.294843, -0.677527, -0.345217, -0.578662 -7271, 0.294843, -0.677527, -0.345217, -0.578662 -7272, 0.294843, -0.677527, -0.345217, -0.578662 -7273, 0.294843, -0.677527, -0.345217, -0.578662 -7274, 0.294843, -0.677527, -0.345217, -0.578662 -7275, 0.294843, -0.677527, -0.345217, -0.578662 -7276, 0.294843, -0.677527, -0.345217, -0.578662 -7277, 0.294843, -0.677527, -0.345217, -0.578662 -7278, 0.294843, -0.677527, -0.345217, -0.578662 -7279, 0.294843, -0.677527, -0.345217, -0.578662 -7280, 0.294843, -0.677527, -0.345217, -0.578662 -7281, 0.294843, -0.677527, -0.345217, -0.578662 -7282, 0.294843, -0.677527, -0.345217, -0.578662 -7283, 0.294843, -0.677527, -0.345217, -0.578662 -7284, 0.294843, -0.677527, -0.345217, -0.578662 -7285, 0.294843, -0.677527, -0.345217, -0.578662 -7286, 0.294843, -0.677527, -0.345217, -0.578662 -7287, 0.294843, -0.677527, -0.345217, -0.578662 -7288, 0.294843, -0.677527, -0.345217, -0.578662 -7289, 0.294843, -0.677527, -0.345217, -0.578662 -7290, 0.294843, -0.677527, -0.345217, -0.578662 -7291, 0.294843, -0.677527, -0.345217, -0.578662 -7292, 0.294843, -0.677527, -0.345217, -0.578662 -7293, 0.294843, -0.677527, -0.345217, -0.578662 -7294, 0.294843, -0.677527, -0.345217, -0.578662 -7295, 0.294843, -0.677527, -0.345217, -0.578662 -7296, 0.294843, -0.677527, -0.345217, -0.578662 -7297, 0.294843, -0.677527, -0.345217, -0.578662 -7298, 0.294843, -0.677527, -0.345217, -0.578662 -7299, 0.294843, -0.677527, -0.345217, -0.578662 -7300, 0.314138, -0.656158, -0.348885, -0.590807 -7301, 0.314138, -0.656158, -0.348885, -0.590807 -7302, 0.314138, -0.656158, -0.348885, -0.590807 -7303, 0.314138, -0.656158, -0.348885, -0.590807 -7304, 0.314138, -0.656158, -0.348885, -0.590807 -7305, 0.314138, -0.656158, -0.348885, -0.590807 -7306, 0.314138, -0.656158, -0.348885, -0.590807 -7307, 0.314138, -0.656158, -0.348885, -0.590807 -7308, 0.314138, -0.656158, -0.348885, -0.590807 -7309, 0.314138, -0.656158, -0.348885, -0.590807 -7310, 0.314138, -0.656158, -0.348885, -0.590807 -7311, 0.314138, -0.656158, -0.348885, -0.590807 -7312, 0.314138, -0.656158, -0.348885, -0.590807 -7313, 0.314138, -0.656158, -0.348885, -0.590807 -7314, 0.314138, -0.656158, -0.348885, -0.590807 -7315, 0.314138, -0.656158, -0.348885, -0.590807 -7316, 0.314138, -0.656158, -0.348885, -0.590807 -7317, 0.314138, -0.656158, -0.348885, -0.590807 -7318, 0.314138, -0.656158, -0.348885, -0.590807 -7319, 0.314138, -0.656158, -0.348885, -0.590807 -7320, 0.314138, -0.656158, -0.348885, -0.590807 -7321, 0.314138, -0.656158, -0.348885, -0.590807 -7322, 0.314138, -0.656158, -0.348885, -0.590807 -7323, 0.314138, -0.656158, -0.348885, -0.590807 -7324, 0.314138, -0.656158, -0.348885, -0.590807 -7325, 0.314138, -0.656158, -0.348885, -0.590807 -7326, 0.314138, -0.656158, -0.348885, -0.590807 -7327, 0.314138, -0.656158, -0.348885, -0.590807 -7328, 0.314138, -0.656158, -0.348885, -0.590807 -7329, 0.314138, -0.656158, -0.348885, -0.590807 -7330, 0.314138, -0.656158, -0.348885, -0.590807 -7331, 0.314138, -0.656158, -0.348885, -0.590807 -7332, 0.314138, -0.656158, -0.348885, -0.590807 -7333, 0.314138, -0.656158, -0.348885, -0.590807 -7334, 0.314138, -0.656158, -0.348885, -0.590807 -7335, 0.314138, -0.656158, -0.348885, -0.590807 -7336, 0.314138, -0.656158, -0.348885, -0.590807 -7337, 0.314138, -0.656158, -0.348885, -0.590807 -7338, 0.314138, -0.656158, -0.348885, -0.590807 -7339, 0.314138, -0.656158, -0.348885, -0.590807 -7340, 0.314138, -0.656158, -0.348885, -0.590807 -7341, 0.314138, -0.656158, -0.348885, -0.590807 -7342, 0.314138, -0.656158, -0.348885, -0.590807 -7343, 0.314138, -0.656158, -0.348885, -0.590807 -7344, 0.314138, -0.656158, -0.348885, -0.590807 -7345, 0.314138, -0.656158, -0.348885, -0.590807 -7346, 0.314138, -0.656158, -0.348885, -0.590807 -7347, 0.314138, -0.656158, -0.348885, -0.590807 -7348, 0.314138, -0.656158, -0.348885, -0.590807 -7349, 0.314138, -0.656158, -0.348885, -0.590807 -7350, 0.314138, -0.656158, -0.348885, -0.590807 -7351, 0.314138, -0.656158, -0.348885, -0.590807 -7352, 0.314138, -0.656158, -0.348885, -0.590807 -7353, 0.314138, -0.656158, -0.348885, -0.590807 -7354, 0.314138, -0.656158, -0.348885, -0.590807 -7355, 0.314138, -0.656158, -0.348885, -0.590807 -7356, 0.314138, -0.656158, -0.348885, -0.590807 -7357, 0.314138, -0.656158, -0.348885, -0.590807 -7358, 0.314138, -0.656158, -0.348885, -0.590807 -7359, 0.314138, -0.656158, -0.348885, -0.590807 -7360, 0.314138, -0.656158, -0.348885, -0.590807 -7361, 0.314138, -0.656158, -0.348885, -0.590807 -7362, 0.314138, -0.656158, -0.348885, -0.590807 -7363, 0.314138, -0.656158, -0.348885, -0.590807 -7364, 0.314138, -0.656158, -0.348885, -0.590807 -7365, 0.314138, -0.656158, -0.348885, -0.590807 -7366, 0.314138, -0.656158, -0.348885, -0.590807 -7367, 0.314138, -0.656158, -0.348885, -0.590807 -7368, 0.314138, -0.656158, -0.348885, -0.590807 -7369, 0.314138, -0.656158, -0.348885, -0.590807 -7370, 0.314138, -0.656158, -0.348885, -0.590807 -7371, 0.314138, -0.656158, -0.348885, -0.590807 -7372, 0.314138, -0.656158, -0.348885, -0.590807 -7373, 0.314138, -0.656158, -0.348885, -0.590807 -7374, 0.314138, -0.656158, -0.348885, -0.590807 -7375, 0.314138, -0.656158, -0.348885, -0.590807 -7376, 0.314138, -0.656158, -0.348885, -0.590807 -7377, 0.314138, -0.656158, -0.348885, -0.590807 -7378, 0.314138, -0.656158, -0.348885, -0.590807 -7379, 0.314138, -0.656158, -0.348885, -0.590807 -7380, 0.314138, -0.656158, -0.348885, -0.590807 -7381, 0.314138, -0.656158, -0.348885, -0.590807 -7382, 0.314138, -0.656158, -0.348885, -0.590807 -7383, 0.314138, -0.656158, -0.348885, -0.590807 -7384, 0.314138, -0.656158, -0.348885, -0.590807 -7385, 0.314138, -0.656158, -0.348885, -0.590807 -7386, 0.314138, -0.656158, -0.348885, -0.590807 -7387, 0.314138, -0.656158, -0.348885, -0.590807 -7388, 0.314138, -0.656158, -0.348885, -0.590807 -7389, 0.314138, -0.656158, -0.348885, -0.590807 -7390, 0.314138, -0.656158, -0.348885, -0.590807 -7391, 0.314138, -0.656158, -0.348885, -0.590807 -7392, 0.314138, -0.656158, -0.348885, -0.590807 -7393, 0.314138, -0.656158, -0.348885, -0.590807 -7394, 0.314138, -0.656158, -0.348885, -0.590807 -7395, 0.314138, -0.656158, -0.348885, -0.590807 -7396, 0.314138, -0.656158, -0.348885, -0.590807 -7397, 0.314138, -0.656158, -0.348885, -0.590807 -7398, 0.314138, -0.656158, -0.348885, -0.590807 -7399, 0.314138, -0.656158, -0.348885, -0.590807 -7400, 0.333721, -0.634427, -0.351668, -0.602048 -7401, 0.333721, -0.634427, -0.351668, -0.602048 -7402, 0.333721, -0.634427, -0.351668, -0.602048 -7403, 0.333721, -0.634427, -0.351668, -0.602048 -7404, 0.333721, -0.634427, -0.351668, -0.602048 -7405, 0.333721, -0.634427, -0.351668, -0.602048 -7406, 0.333721, -0.634427, -0.351668, -0.602048 -7407, 0.333721, -0.634427, -0.351668, -0.602048 -7408, 0.333721, -0.634427, -0.351668, -0.602048 -7409, 0.333721, -0.634427, -0.351668, -0.602048 -7410, 0.333721, -0.634427, -0.351668, -0.602048 -7411, 0.333721, -0.634427, -0.351668, -0.602048 -7412, 0.333721, -0.634427, -0.351668, -0.602048 -7413, 0.333721, -0.634427, -0.351668, -0.602048 -7414, 0.333721, -0.634427, -0.351668, -0.602048 -7415, 0.333721, -0.634427, -0.351668, -0.602048 -7416, 0.333721, -0.634427, -0.351668, -0.602048 -7417, 0.333721, -0.634427, -0.351668, -0.602048 -7418, 0.333721, -0.634427, -0.351668, -0.602048 -7419, 0.333721, -0.634427, -0.351668, -0.602048 -7420, 0.333721, -0.634427, -0.351668, -0.602048 -7421, 0.333721, -0.634427, -0.351668, -0.602048 -7422, 0.333721, -0.634427, -0.351668, -0.602048 -7423, 0.333721, -0.634427, -0.351668, -0.602048 -7424, 0.333721, -0.634427, -0.351668, -0.602048 -7425, 0.333721, -0.634427, -0.351668, -0.602048 -7426, 0.333721, -0.634427, -0.351668, -0.602048 -7427, 0.333721, -0.634427, -0.351668, -0.602048 -7428, 0.333721, -0.634427, -0.351668, -0.602048 -7429, 0.333721, -0.634427, -0.351668, -0.602048 -7430, 0.333721, -0.634427, -0.351668, -0.602048 -7431, 0.333721, -0.634427, -0.351668, -0.602048 -7432, 0.333721, -0.634427, -0.351668, -0.602048 -7433, 0.333721, -0.634427, -0.351668, -0.602048 -7434, 0.333721, -0.634427, -0.351668, -0.602048 -7435, 0.333721, -0.634427, -0.351668, -0.602048 -7436, 0.333721, -0.634427, -0.351668, -0.602048 -7437, 0.333721, -0.634427, -0.351668, -0.602048 -7438, 0.333721, -0.634427, -0.351668, -0.602048 -7439, 0.333721, -0.634427, -0.351668, -0.602048 -7440, 0.333721, -0.634427, -0.351668, -0.602048 -7441, 0.333721, -0.634427, -0.351668, -0.602048 -7442, 0.333721, -0.634427, -0.351668, -0.602048 -7443, 0.333721, -0.634427, -0.351668, -0.602048 -7444, 0.333721, -0.634427, -0.351668, -0.602048 -7445, 0.333721, -0.634427, -0.351668, -0.602048 -7446, 0.333721, -0.634427, -0.351668, -0.602048 -7447, 0.333721, -0.634427, -0.351668, -0.602048 -7448, 0.333721, -0.634427, -0.351668, -0.602048 -7449, 0.333721, -0.634427, -0.351668, -0.602048 -7450, 0.333721, -0.634427, -0.351668, -0.602048 -7451, 0.333721, -0.634427, -0.351668, -0.602048 -7452, 0.333721, -0.634427, -0.351668, -0.602048 -7453, 0.333721, -0.634427, -0.351668, -0.602048 -7454, 0.333721, -0.634427, -0.351668, -0.602048 -7455, 0.333721, -0.634427, -0.351668, -0.602048 -7456, 0.333721, -0.634427, -0.351668, -0.602048 -7457, 0.333721, -0.634427, -0.351668, -0.602048 -7458, 0.333721, -0.634427, -0.351668, -0.602048 -7459, 0.333721, -0.634427, -0.351668, -0.602048 -7460, 0.333721, -0.634427, -0.351668, -0.602048 -7461, 0.333721, -0.634427, -0.351668, -0.602048 -7462, 0.333721, -0.634427, -0.351668, -0.602048 -7463, 0.333721, -0.634427, -0.351668, -0.602048 -7464, 0.333721, -0.634427, -0.351668, -0.602048 -7465, 0.333721, -0.634427, -0.351668, -0.602048 -7466, 0.333721, -0.634427, -0.351668, -0.602048 -7467, 0.333721, -0.634427, -0.351668, -0.602048 -7468, 0.333721, -0.634427, -0.351668, -0.602048 -7469, 0.333721, -0.634427, -0.351668, -0.602048 -7470, 0.333721, -0.634427, -0.351668, -0.602048 -7471, 0.333721, -0.634427, -0.351668, -0.602048 -7472, 0.333721, -0.634427, -0.351668, -0.602048 -7473, 0.333721, -0.634427, -0.351668, -0.602048 -7474, 0.333721, -0.634427, -0.351668, -0.602048 -7475, 0.333721, -0.634427, -0.351668, -0.602048 -7476, 0.333721, -0.634427, -0.351668, -0.602048 -7477, 0.333721, -0.634427, -0.351668, -0.602048 -7478, 0.333721, -0.634427, -0.351668, -0.602048 -7479, 0.333721, -0.634427, -0.351668, -0.602048 -7480, 0.333721, -0.634427, -0.351668, -0.602048 -7481, 0.333721, -0.634427, -0.351668, -0.602048 -7482, 0.333721, -0.634427, -0.351668, -0.602048 -7483, 0.333721, -0.634427, -0.351668, -0.602048 -7484, 0.333721, -0.634427, -0.351668, -0.602048 -7485, 0.333721, -0.634427, -0.351668, -0.602048 -7486, 0.333721, -0.634427, -0.351668, -0.602048 -7487, 0.333721, -0.634427, -0.351668, -0.602048 -7488, 0.333721, -0.634427, -0.351668, -0.602048 -7489, 0.333721, -0.634427, -0.351668, -0.602048 -7490, 0.333721, -0.634427, -0.351668, -0.602048 -7491, 0.333721, -0.634427, -0.351668, -0.602048 -7492, 0.333721, -0.634427, -0.351668, -0.602048 -7493, 0.333721, -0.634427, -0.351668, -0.602048 -7494, 0.333721, -0.634427, -0.351668, -0.602048 -7495, 0.333721, -0.634427, -0.351668, -0.602048 -7496, 0.333721, -0.634427, -0.351668, -0.602048 -7497, 0.333721, -0.634427, -0.351668, -0.602048 -7498, 0.333721, -0.634427, -0.351668, -0.602048 -7499, 0.333721, -0.634427, -0.351668, -0.602048 -7500, 0.353553, -0.612372, -0.353553, -0.612372 -7501, 0.353553, -0.612372, -0.353553, -0.612372 -7502, 0.353553, -0.612372, -0.353553, -0.612372 -7503, 0.353553, -0.612372, -0.353553, -0.612372 -7504, 0.353553, -0.612372, -0.353553, -0.612372 -7505, 0.353553, -0.612372, -0.353553, -0.612372 -7506, 0.353553, -0.612372, -0.353553, -0.612372 -7507, 0.353553, -0.612372, -0.353553, -0.612372 -7508, 0.353553, -0.612372, -0.353553, -0.612372 -7509, 0.353553, -0.612372, -0.353553, -0.612372 -7510, 0.353553, -0.612372, -0.353553, -0.612372 -7511, 0.353553, -0.612372, -0.353553, -0.612372 -7512, 0.353553, -0.612372, -0.353553, -0.612372 -7513, 0.353553, -0.612372, -0.353553, -0.612372 -7514, 0.353553, -0.612372, -0.353553, -0.612372 -7515, 0.353553, -0.612372, -0.353553, -0.612372 -7516, 0.353553, -0.612372, -0.353553, -0.612372 -7517, 0.353553, -0.612372, -0.353553, -0.612372 -7518, 0.353553, -0.612372, -0.353553, -0.612372 -7519, 0.353553, -0.612372, -0.353553, -0.612372 -7520, 0.353553, -0.612372, -0.353553, -0.612372 -7521, 0.353553, -0.612372, -0.353553, -0.612372 -7522, 0.353553, -0.612372, -0.353553, -0.612372 -7523, 0.353553, -0.612372, -0.353553, -0.612372 -7524, 0.353553, -0.612372, -0.353553, -0.612372 -7525, 0.353553, -0.612372, -0.353553, -0.612372 -7526, 0.353553, -0.612372, -0.353553, -0.612372 -7527, 0.353553, -0.612372, -0.353553, -0.612372 -7528, 0.353553, -0.612372, -0.353553, -0.612372 -7529, 0.353553, -0.612372, -0.353553, -0.612372 -7530, 0.353553, -0.612372, -0.353553, -0.612372 -7531, 0.353553, -0.612372, -0.353553, -0.612372 -7532, 0.353553, -0.612372, -0.353553, -0.612372 -7533, 0.353553, -0.612372, -0.353553, -0.612372 -7534, 0.353553, -0.612372, -0.353553, -0.612372 -7535, 0.353553, -0.612372, -0.353553, -0.612372 -7536, 0.353553, -0.612372, -0.353553, -0.612372 -7537, 0.353553, -0.612372, -0.353553, -0.612372 -7538, 0.353553, -0.612372, -0.353553, -0.612372 -7539, 0.353553, -0.612372, -0.353553, -0.612372 -7540, 0.353553, -0.612372, -0.353553, -0.612372 -7541, 0.353553, -0.612372, -0.353553, -0.612372 -7542, 0.353553, -0.612372, -0.353553, -0.612372 -7543, 0.353553, -0.612372, -0.353553, -0.612372 -7544, 0.353553, -0.612372, -0.353553, -0.612372 -7545, 0.353553, -0.612372, -0.353553, -0.612372 -7546, 0.353553, -0.612372, -0.353553, -0.612372 -7547, 0.353553, -0.612372, -0.353553, -0.612372 -7548, 0.353553, -0.612372, -0.353553, -0.612372 -7549, 0.353553, -0.612372, -0.353553, -0.612372 -7550, 0.353553, -0.612372, -0.353553, -0.612372 -7551, 0.353553, -0.612372, -0.353553, -0.612372 -7552, 0.353553, -0.612372, -0.353553, -0.612372 -7553, 0.353553, -0.612372, -0.353553, -0.612372 -7554, 0.353553, -0.612372, -0.353553, -0.612372 -7555, 0.353553, -0.612372, -0.353553, -0.612372 -7556, 0.353553, -0.612372, -0.353553, -0.612372 -7557, 0.353553, -0.612372, -0.353553, -0.612372 -7558, 0.353553, -0.612372, -0.353553, -0.612372 -7559, 0.353553, -0.612372, -0.353553, -0.612372 -7560, 0.353553, -0.612372, -0.353553, -0.612372 -7561, 0.353553, -0.612372, -0.353553, -0.612372 -7562, 0.353553, -0.612372, -0.353553, -0.612372 -7563, 0.353553, -0.612372, -0.353553, -0.612372 -7564, 0.353553, -0.612372, -0.353553, -0.612372 -7565, 0.353553, -0.612372, -0.353553, -0.612372 -7566, 0.353553, -0.612372, -0.353553, -0.612372 -7567, 0.353553, -0.612372, -0.353553, -0.612372 -7568, 0.353553, -0.612372, -0.353553, -0.612372 -7569, 0.353553, -0.612372, -0.353553, -0.612372 -7570, 0.353553, -0.612372, -0.353553, -0.612372 -7571, 0.353553, -0.612372, -0.353553, -0.612372 -7572, 0.353553, -0.612372, -0.353553, -0.612372 -7573, 0.353553, -0.612372, -0.353553, -0.612372 -7574, 0.353553, -0.612372, -0.353553, -0.612372 -7575, 0.353553, -0.612372, -0.353553, -0.612372 -7576, 0.353553, -0.612372, -0.353553, -0.612372 -7577, 0.353553, -0.612372, -0.353553, -0.612372 -7578, 0.353553, -0.612372, -0.353553, -0.612372 -7579, 0.353553, -0.612372, -0.353553, -0.612372 -7580, 0.353553, -0.612372, -0.353553, -0.612372 -7581, 0.353553, -0.612372, -0.353553, -0.612372 -7582, 0.353553, -0.612372, -0.353553, -0.612372 -7583, 0.353553, -0.612372, -0.353553, -0.612372 -7584, 0.353553, -0.612372, -0.353553, -0.612372 -7585, 0.353553, -0.612372, -0.353553, -0.612372 -7586, 0.353553, -0.612372, -0.353553, -0.612372 -7587, 0.353553, -0.612372, -0.353553, -0.612372 -7588, 0.353553, -0.612372, -0.353553, -0.612372 -7589, 0.353553, -0.612372, -0.353553, -0.612372 -7590, 0.353553, -0.612372, -0.353553, -0.612372 -7591, 0.353553, -0.612372, -0.353553, -0.612372 -7592, 0.353553, -0.612372, -0.353553, -0.612372 -7593, 0.353553, -0.612372, -0.353553, -0.612372 -7594, 0.353553, -0.612372, -0.353553, -0.612372 -7595, 0.353553, -0.612372, -0.353553, -0.612372 -7596, 0.353553, -0.612372, -0.353553, -0.612372 -7597, 0.353553, -0.612372, -0.353553, -0.612372 -7598, 0.353553, -0.612372, -0.353553, -0.612372 -7599, 0.353553, -0.612372, -0.353553, -0.612372 -7600, 0.373595, -0.590035, -0.354529, -0.621767 -7601, 0.373595, -0.590035, -0.354529, -0.621767 -7602, 0.373595, -0.590035, -0.354529, -0.621767 -7603, 0.373595, -0.590035, -0.354529, -0.621767 -7604, 0.373595, -0.590035, -0.354529, -0.621767 -7605, 0.373595, -0.590035, -0.354529, -0.621767 -7606, 0.373595, -0.590035, -0.354529, -0.621767 -7607, 0.373595, -0.590035, -0.354529, -0.621767 -7608, 0.373595, -0.590035, -0.354529, -0.621767 -7609, 0.373595, -0.590035, -0.354529, -0.621767 -7610, 0.373595, -0.590035, -0.354529, -0.621767 -7611, 0.373595, -0.590035, -0.354529, -0.621767 -7612, 0.373595, -0.590035, -0.354529, -0.621767 -7613, 0.373595, -0.590035, -0.354529, -0.621767 -7614, 0.373595, -0.590035, -0.354529, -0.621767 -7615, 0.373595, -0.590035, -0.354529, -0.621767 -7616, 0.373595, -0.590035, -0.354529, -0.621767 -7617, 0.373595, -0.590035, -0.354529, -0.621767 -7618, 0.373595, -0.590035, -0.354529, -0.621767 -7619, 0.373595, -0.590035, -0.354529, -0.621767 -7620, 0.373595, -0.590035, -0.354529, -0.621767 -7621, 0.373595, -0.590035, -0.354529, -0.621767 -7622, 0.373595, -0.590035, -0.354529, -0.621767 -7623, 0.373595, -0.590035, -0.354529, -0.621767 -7624, 0.373595, -0.590035, -0.354529, -0.621767 -7625, 0.373595, -0.590035, -0.354529, -0.621767 -7626, 0.373595, -0.590035, -0.354529, -0.621767 -7627, 0.373595, -0.590035, -0.354529, -0.621767 -7628, 0.373595, -0.590035, -0.354529, -0.621767 -7629, 0.373595, -0.590035, -0.354529, -0.621767 -7630, 0.373595, -0.590035, -0.354529, -0.621767 -7631, 0.373595, -0.590035, -0.354529, -0.621767 -7632, 0.373595, -0.590035, -0.354529, -0.621767 -7633, 0.373595, -0.590035, -0.354529, -0.621767 -7634, 0.373595, -0.590035, -0.354529, -0.621767 -7635, 0.373595, -0.590035, -0.354529, -0.621767 -7636, 0.373595, -0.590035, -0.354529, -0.621767 -7637, 0.373595, -0.590035, -0.354529, -0.621767 -7638, 0.373595, -0.590035, -0.354529, -0.621767 -7639, 0.373595, -0.590035, -0.354529, -0.621767 -7640, 0.373595, -0.590035, -0.354529, -0.621767 -7641, 0.373595, -0.590035, -0.354529, -0.621767 -7642, 0.373595, -0.590035, -0.354529, -0.621767 -7643, 0.373595, -0.590035, -0.354529, -0.621767 -7644, 0.373595, -0.590035, -0.354529, -0.621767 -7645, 0.373595, -0.590035, -0.354529, -0.621767 -7646, 0.373595, -0.590035, -0.354529, -0.621767 -7647, 0.373595, -0.590035, -0.354529, -0.621767 -7648, 0.373595, -0.590035, -0.354529, -0.621767 -7649, 0.373595, -0.590035, -0.354529, -0.621767 -7650, 0.373595, -0.590035, -0.354529, -0.621767 -7651, 0.373595, -0.590035, -0.354529, -0.621767 -7652, 0.373595, -0.590035, -0.354529, -0.621767 -7653, 0.373595, -0.590035, -0.354529, -0.621767 -7654, 0.373595, -0.590035, -0.354529, -0.621767 -7655, 0.373595, -0.590035, -0.354529, -0.621767 -7656, 0.373595, -0.590035, -0.354529, -0.621767 -7657, 0.373595, -0.590035, -0.354529, -0.621767 -7658, 0.373595, -0.590035, -0.354529, -0.621767 -7659, 0.373595, -0.590035, -0.354529, -0.621767 -7660, 0.373595, -0.590035, -0.354529, -0.621767 -7661, 0.373595, -0.590035, -0.354529, -0.621767 -7662, 0.373595, -0.590035, -0.354529, -0.621767 -7663, 0.373595, -0.590035, -0.354529, -0.621767 -7664, 0.373595, -0.590035, -0.354529, -0.621767 -7665, 0.373595, -0.590035, -0.354529, -0.621767 -7666, 0.373595, -0.590035, -0.354529, -0.621767 -7667, 0.373595, -0.590035, -0.354529, -0.621767 -7668, 0.373595, -0.590035, -0.354529, -0.621767 -7669, 0.373595, -0.590035, -0.354529, -0.621767 -7670, 0.373595, -0.590035, -0.354529, -0.621767 -7671, 0.373595, -0.590035, -0.354529, -0.621767 -7672, 0.373595, -0.590035, -0.354529, -0.621767 -7673, 0.373595, -0.590035, -0.354529, -0.621767 -7674, 0.373595, -0.590035, -0.354529, -0.621767 -7675, 0.373595, -0.590035, -0.354529, -0.621767 -7676, 0.373595, -0.590035, -0.354529, -0.621767 -7677, 0.373595, -0.590035, -0.354529, -0.621767 -7678, 0.373595, -0.590035, -0.354529, -0.621767 -7679, 0.373595, -0.590035, -0.354529, -0.621767 -7680, 0.373595, -0.590035, -0.354529, -0.621767 -7681, 0.373595, -0.590035, -0.354529, -0.621767 -7682, 0.373595, -0.590035, -0.354529, -0.621767 -7683, 0.373595, -0.590035, -0.354529, -0.621767 -7684, 0.373595, -0.590035, -0.354529, -0.621767 -7685, 0.373595, -0.590035, -0.354529, -0.621767 -7686, 0.373595, -0.590035, -0.354529, -0.621767 -7687, 0.373595, -0.590035, -0.354529, -0.621767 -7688, 0.373595, -0.590035, -0.354529, -0.621767 -7689, 0.373595, -0.590035, -0.354529, -0.621767 -7690, 0.373595, -0.590035, -0.354529, -0.621767 -7691, 0.373595, -0.590035, -0.354529, -0.621767 -7692, 0.373595, -0.590035, -0.354529, -0.621767 -7693, 0.373595, -0.590035, -0.354529, -0.621767 -7694, 0.373595, -0.590035, -0.354529, -0.621767 -7695, 0.373595, -0.590035, -0.354529, -0.621767 -7696, 0.373595, -0.590035, -0.354529, -0.621767 -7697, 0.373595, -0.590035, -0.354529, -0.621767 -7698, 0.373595, -0.590035, -0.354529, -0.621767 -7699, 0.373595, -0.590035, -0.354529, -0.621767 -7700, 0.393807, -0.567455, -0.354585, -0.630223 -7701, 0.393807, -0.567455, -0.354585, -0.630223 -7702, 0.393807, -0.567455, -0.354585, -0.630223 -7703, 0.393807, -0.567455, -0.354585, -0.630223 -7704, 0.393807, -0.567455, -0.354585, -0.630223 -7705, 0.393807, -0.567455, -0.354585, -0.630223 -7706, 0.393807, -0.567455, -0.354585, -0.630223 -7707, 0.393807, -0.567455, -0.354585, -0.630223 -7708, 0.393807, -0.567455, -0.354585, -0.630223 -7709, 0.393807, -0.567455, -0.354585, -0.630223 -7710, 0.393807, -0.567455, -0.354585, -0.630223 -7711, 0.393807, -0.567455, -0.354585, -0.630223 -7712, 0.393807, -0.567455, -0.354585, -0.630223 -7713, 0.393807, -0.567455, -0.354585, -0.630223 -7714, 0.393807, -0.567455, -0.354585, -0.630223 -7715, 0.393807, -0.567455, -0.354585, -0.630223 -7716, 0.393807, -0.567455, -0.354585, -0.630223 -7717, 0.393807, -0.567455, -0.354585, -0.630223 -7718, 0.393807, -0.567455, -0.354585, -0.630223 -7719, 0.393807, -0.567455, -0.354585, -0.630223 -7720, 0.393807, -0.567455, -0.354585, -0.630223 -7721, 0.393807, -0.567455, -0.354585, -0.630223 -7722, 0.393807, -0.567455, -0.354585, -0.630223 -7723, 0.393807, -0.567455, -0.354585, -0.630223 -7724, 0.393807, -0.567455, -0.354585, -0.630223 -7725, 0.393807, -0.567455, -0.354585, -0.630223 -7726, 0.393807, -0.567455, -0.354585, -0.630223 -7727, 0.393807, -0.567455, -0.354585, -0.630223 -7728, 0.393807, -0.567455, -0.354585, -0.630223 -7729, 0.393807, -0.567455, -0.354585, -0.630223 -7730, 0.393807, -0.567455, -0.354585, -0.630223 -7731, 0.393807, -0.567455, -0.354585, -0.630223 -7732, 0.393807, -0.567455, -0.354585, -0.630223 -7733, 0.393807, -0.567455, -0.354585, -0.630223 -7734, 0.393807, -0.567455, -0.354585, -0.630223 -7735, 0.393807, -0.567455, -0.354585, -0.630223 -7736, 0.393807, -0.567455, -0.354585, -0.630223 -7737, 0.393807, -0.567455, -0.354585, -0.630223 -7738, 0.393807, -0.567455, -0.354585, -0.630223 -7739, 0.393807, -0.567455, -0.354585, -0.630223 -7740, 0.393807, -0.567455, -0.354585, -0.630223 -7741, 0.393807, -0.567455, -0.354585, -0.630223 -7742, 0.393807, -0.567455, -0.354585, -0.630223 -7743, 0.393807, -0.567455, -0.354585, -0.630223 -7744, 0.393807, -0.567455, -0.354585, -0.630223 -7745, 0.393807, -0.567455, -0.354585, -0.630223 -7746, 0.393807, -0.567455, -0.354585, -0.630223 -7747, 0.393807, -0.567455, -0.354585, -0.630223 -7748, 0.393807, -0.567455, -0.354585, -0.630223 -7749, 0.393807, -0.567455, -0.354585, -0.630223 -7750, 0.393807, -0.567455, -0.354585, -0.630223 -7751, 0.393807, -0.567455, -0.354585, -0.630223 -7752, 0.393807, -0.567455, -0.354585, -0.630223 -7753, 0.393807, -0.567455, -0.354585, -0.630223 -7754, 0.393807, -0.567455, -0.354585, -0.630223 -7755, 0.393807, -0.567455, -0.354585, -0.630223 -7756, 0.393807, -0.567455, -0.354585, -0.630223 -7757, 0.393807, -0.567455, -0.354585, -0.630223 -7758, 0.393807, -0.567455, -0.354585, -0.630223 -7759, 0.393807, -0.567455, -0.354585, -0.630223 -7760, 0.393807, -0.567455, -0.354585, -0.630223 -7761, 0.393807, -0.567455, -0.354585, -0.630223 -7762, 0.393807, -0.567455, -0.354585, -0.630223 -7763, 0.393807, -0.567455, -0.354585, -0.630223 -7764, 0.393807, -0.567455, -0.354585, -0.630223 -7765, 0.393807, -0.567455, -0.354585, -0.630223 -7766, 0.393807, -0.567455, -0.354585, -0.630223 -7767, 0.393807, -0.567455, -0.354585, -0.630223 -7768, 0.393807, -0.567455, -0.354585, -0.630223 -7769, 0.393807, -0.567455, -0.354585, -0.630223 -7770, 0.393807, -0.567455, -0.354585, -0.630223 -7771, 0.393807, -0.567455, -0.354585, -0.630223 -7772, 0.393807, -0.567455, -0.354585, -0.630223 -7773, 0.393807, -0.567455, -0.354585, -0.630223 -7774, 0.393807, -0.567455, -0.354585, -0.630223 -7775, 0.393807, -0.567455, -0.354585, -0.630223 -7776, 0.393807, -0.567455, -0.354585, -0.630223 -7777, 0.393807, -0.567455, -0.354585, -0.630223 -7778, 0.393807, -0.567455, -0.354585, -0.630223 -7779, 0.393807, -0.567455, -0.354585, -0.630223 -7780, 0.393807, -0.567455, -0.354585, -0.630223 -7781, 0.393807, -0.567455, -0.354585, -0.630223 -7782, 0.393807, -0.567455, -0.354585, -0.630223 -7783, 0.393807, -0.567455, -0.354585, -0.630223 -7784, 0.393807, -0.567455, -0.354585, -0.630223 -7785, 0.393807, -0.567455, -0.354585, -0.630223 -7786, 0.393807, -0.567455, -0.354585, -0.630223 -7787, 0.393807, -0.567455, -0.354585, -0.630223 -7788, 0.393807, -0.567455, -0.354585, -0.630223 -7789, 0.393807, -0.567455, -0.354585, -0.630223 -7790, 0.393807, -0.567455, -0.354585, -0.630223 -7791, 0.393807, -0.567455, -0.354585, -0.630223 -7792, 0.393807, -0.567455, -0.354585, -0.630223 -7793, 0.393807, -0.567455, -0.354585, -0.630223 -7794, 0.393807, -0.567455, -0.354585, -0.630223 -7795, 0.393807, -0.567455, -0.354585, -0.630223 -7796, 0.393807, -0.567455, -0.354585, -0.630223 -7797, 0.393807, -0.567455, -0.354585, -0.630223 -7798, 0.393807, -0.567455, -0.354585, -0.630223 -7799, 0.393807, -0.567455, -0.354585, -0.630223 -7800, 0.414147, -0.544673, -0.353715, -0.637730 -7801, 0.414147, -0.544673, -0.353715, -0.637730 -7802, 0.414147, -0.544673, -0.353715, -0.637730 -7803, 0.414147, -0.544673, -0.353715, -0.637730 -7804, 0.414147, -0.544673, -0.353715, -0.637730 -7805, 0.414147, -0.544673, -0.353715, -0.637730 -7806, 0.414147, -0.544673, -0.353715, -0.637730 -7807, 0.414147, -0.544673, -0.353715, -0.637730 -7808, 0.414147, -0.544673, -0.353715, -0.637730 -7809, 0.414147, -0.544673, -0.353715, -0.637730 -7810, 0.414147, -0.544673, -0.353715, -0.637730 -7811, 0.414147, -0.544673, -0.353715, -0.637730 -7812, 0.414147, -0.544673, -0.353715, -0.637730 -7813, 0.414147, -0.544673, -0.353715, -0.637730 -7814, 0.414147, -0.544673, -0.353715, -0.637730 -7815, 0.414147, -0.544673, -0.353715, -0.637730 -7816, 0.414147, -0.544673, -0.353715, -0.637730 -7817, 0.414147, -0.544673, -0.353715, -0.637730 -7818, 0.414147, -0.544673, -0.353715, -0.637730 -7819, 0.414147, -0.544673, -0.353715, -0.637730 -7820, 0.414147, -0.544673, -0.353715, -0.637730 -7821, 0.414147, -0.544673, -0.353715, -0.637730 -7822, 0.414147, -0.544673, -0.353715, -0.637730 -7823, 0.414147, -0.544673, -0.353715, -0.637730 -7824, 0.414147, -0.544673, -0.353715, -0.637730 -7825, 0.414147, -0.544673, -0.353715, -0.637730 -7826, 0.414147, -0.544673, -0.353715, -0.637730 -7827, 0.414147, -0.544673, -0.353715, -0.637730 -7828, 0.414147, -0.544673, -0.353715, -0.637730 -7829, 0.414147, -0.544673, -0.353715, -0.637730 -7830, 0.414147, -0.544673, -0.353715, -0.637730 -7831, 0.414147, -0.544673, -0.353715, -0.637730 -7832, 0.414147, -0.544673, -0.353715, -0.637730 -7833, 0.414147, -0.544673, -0.353715, -0.637730 -7834, 0.414147, -0.544673, -0.353715, -0.637730 -7835, 0.414147, -0.544673, -0.353715, -0.637730 -7836, 0.414147, -0.544673, -0.353715, -0.637730 -7837, 0.414147, -0.544673, -0.353715, -0.637730 -7838, 0.414147, -0.544673, -0.353715, -0.637730 -7839, 0.414147, -0.544673, -0.353715, -0.637730 -7840, 0.414147, -0.544673, -0.353715, -0.637730 -7841, 0.414147, -0.544673, -0.353715, -0.637730 -7842, 0.414147, -0.544673, -0.353715, -0.637730 -7843, 0.414147, -0.544673, -0.353715, -0.637730 -7844, 0.414147, -0.544673, -0.353715, -0.637730 -7845, 0.414147, -0.544673, -0.353715, -0.637730 -7846, 0.414147, -0.544673, -0.353715, -0.637730 -7847, 0.414147, -0.544673, -0.353715, -0.637730 -7848, 0.414147, -0.544673, -0.353715, -0.637730 -7849, 0.414147, -0.544673, -0.353715, -0.637730 -7850, 0.414147, -0.544673, -0.353715, -0.637730 -7851, 0.414147, -0.544673, -0.353715, -0.637730 -7852, 0.414147, -0.544673, -0.353715, -0.637730 -7853, 0.414147, -0.544673, -0.353715, -0.637730 -7854, 0.414147, -0.544673, -0.353715, -0.637730 -7855, 0.414147, -0.544673, -0.353715, -0.637730 -7856, 0.414147, -0.544673, -0.353715, -0.637730 -7857, 0.414147, -0.544673, -0.353715, -0.637730 -7858, 0.414147, -0.544673, -0.353715, -0.637730 -7859, 0.414147, -0.544673, -0.353715, -0.637730 -7860, 0.414147, -0.544673, -0.353715, -0.637730 -7861, 0.414147, -0.544673, -0.353715, -0.637730 -7862, 0.414147, -0.544673, -0.353715, -0.637730 -7863, 0.414147, -0.544673, -0.353715, -0.637730 -7864, 0.414147, -0.544673, -0.353715, -0.637730 -7865, 0.414147, -0.544673, -0.353715, -0.637730 -7866, 0.414147, -0.544673, -0.353715, -0.637730 -7867, 0.414147, -0.544673, -0.353715, -0.637730 -7868, 0.414147, -0.544673, -0.353715, -0.637730 -7869, 0.414147, -0.544673, -0.353715, -0.637730 -7870, 0.414147, -0.544673, -0.353715, -0.637730 -7871, 0.414147, -0.544673, -0.353715, -0.637730 -7872, 0.414147, -0.544673, -0.353715, -0.637730 -7873, 0.414147, -0.544673, -0.353715, -0.637730 -7874, 0.414147, -0.544673, -0.353715, -0.637730 -7875, 0.414147, -0.544673, -0.353715, -0.637730 -7876, 0.414147, -0.544673, -0.353715, -0.637730 -7877, 0.414147, -0.544673, -0.353715, -0.637730 -7878, 0.414147, -0.544673, -0.353715, -0.637730 -7879, 0.414147, -0.544673, -0.353715, -0.637730 -7880, 0.414147, -0.544673, -0.353715, -0.637730 -7881, 0.414147, -0.544673, -0.353715, -0.637730 -7882, 0.414147, -0.544673, -0.353715, -0.637730 -7883, 0.414147, -0.544673, -0.353715, -0.637730 -7884, 0.414147, -0.544673, -0.353715, -0.637730 -7885, 0.414147, -0.544673, -0.353715, -0.637730 -7886, 0.414147, -0.544673, -0.353715, -0.637730 -7887, 0.414147, -0.544673, -0.353715, -0.637730 -7888, 0.414147, -0.544673, -0.353715, -0.637730 -7889, 0.414147, -0.544673, -0.353715, -0.637730 -7890, 0.414147, -0.544673, -0.353715, -0.637730 -7891, 0.414147, -0.544673, -0.353715, -0.637730 -7892, 0.414147, -0.544673, -0.353715, -0.637730 -7893, 0.414147, -0.544673, -0.353715, -0.637730 -7894, 0.414147, -0.544673, -0.353715, -0.637730 -7895, 0.414147, -0.544673, -0.353715, -0.637730 -7896, 0.414147, -0.544673, -0.353715, -0.637730 -7897, 0.414147, -0.544673, -0.353715, -0.637730 -7898, 0.414147, -0.544673, -0.353715, -0.637730 -7899, 0.414147, -0.544673, -0.353715, -0.637730 -7900, 0.434575, -0.521730, -0.351911, -0.644283 -7901, 0.434575, -0.521730, -0.351911, -0.644283 -7902, 0.434575, -0.521730, -0.351911, -0.644283 -7903, 0.434575, -0.521730, -0.351911, -0.644283 -7904, 0.434575, -0.521730, -0.351911, -0.644283 -7905, 0.434575, -0.521730, -0.351911, -0.644283 -7906, 0.434575, -0.521730, -0.351911, -0.644283 -7907, 0.434575, -0.521730, -0.351911, -0.644283 -7908, 0.434575, -0.521730, -0.351911, -0.644283 -7909, 0.434575, -0.521730, -0.351911, -0.644283 -7910, 0.434575, -0.521730, -0.351911, -0.644283 -7911, 0.434575, -0.521730, -0.351911, -0.644283 -7912, 0.434575, -0.521730, -0.351911, -0.644283 -7913, 0.434575, -0.521730, -0.351911, -0.644283 -7914, 0.434575, -0.521730, -0.351911, -0.644283 -7915, 0.434575, -0.521730, -0.351911, -0.644283 -7916, 0.434575, -0.521730, -0.351911, -0.644283 -7917, 0.434575, -0.521730, -0.351911, -0.644283 -7918, 0.434575, -0.521730, -0.351911, -0.644283 -7919, 0.434575, -0.521730, -0.351911, -0.644283 -7920, 0.434575, -0.521730, -0.351911, -0.644283 -7921, 0.434575, -0.521730, -0.351911, -0.644283 -7922, 0.434575, -0.521730, -0.351911, -0.644283 -7923, 0.434575, -0.521730, -0.351911, -0.644283 -7924, 0.434575, -0.521730, -0.351911, -0.644283 -7925, 0.434575, -0.521730, -0.351911, -0.644283 -7926, 0.434575, -0.521730, -0.351911, -0.644283 -7927, 0.434575, -0.521730, -0.351911, -0.644283 -7928, 0.434575, -0.521730, -0.351911, -0.644283 -7929, 0.434575, -0.521730, -0.351911, -0.644283 -7930, 0.434575, -0.521730, -0.351911, -0.644283 -7931, 0.434575, -0.521730, -0.351911, -0.644283 -7932, 0.434575, -0.521730, -0.351911, -0.644283 -7933, 0.434575, -0.521730, -0.351911, -0.644283 -7934, 0.434575, -0.521730, -0.351911, -0.644283 -7935, 0.434575, -0.521730, -0.351911, -0.644283 -7936, 0.434575, -0.521730, -0.351911, -0.644283 -7937, 0.434575, -0.521730, -0.351911, -0.644283 -7938, 0.434575, -0.521730, -0.351911, -0.644283 -7939, 0.434575, -0.521730, -0.351911, -0.644283 -7940, 0.434575, -0.521730, -0.351911, -0.644283 -7941, 0.434575, -0.521730, -0.351911, -0.644283 -7942, 0.434575, -0.521730, -0.351911, -0.644283 -7943, 0.434575, -0.521730, -0.351911, -0.644283 -7944, 0.434575, -0.521730, -0.351911, -0.644283 -7945, 0.434575, -0.521730, -0.351911, -0.644283 -7946, 0.434575, -0.521730, -0.351911, -0.644283 -7947, 0.434575, -0.521730, -0.351911, -0.644283 -7948, 0.434575, -0.521730, -0.351911, -0.644283 -7949, 0.434575, -0.521730, -0.351911, -0.644283 -7950, 0.434575, -0.521730, -0.351911, -0.644283 -7951, 0.434575, -0.521730, -0.351911, -0.644283 -7952, 0.434575, -0.521730, -0.351911, -0.644283 -7953, 0.434575, -0.521730, -0.351911, -0.644283 -7954, 0.434575, -0.521730, -0.351911, -0.644283 -7955, 0.434575, -0.521730, -0.351911, -0.644283 -7956, 0.434575, -0.521730, -0.351911, -0.644283 -7957, 0.434575, -0.521730, -0.351911, -0.644283 -7958, 0.434575, -0.521730, -0.351911, -0.644283 -7959, 0.434575, -0.521730, -0.351911, -0.644283 -7960, 0.434575, -0.521730, -0.351911, -0.644283 -7961, 0.434575, -0.521730, -0.351911, -0.644283 -7962, 0.434575, -0.521730, -0.351911, -0.644283 -7963, 0.434575, -0.521730, -0.351911, -0.644283 -7964, 0.434575, -0.521730, -0.351911, -0.644283 -7965, 0.434575, -0.521730, -0.351911, -0.644283 -7966, 0.434575, -0.521730, -0.351911, -0.644283 -7967, 0.434575, -0.521730, -0.351911, -0.644283 -7968, 0.434575, -0.521730, -0.351911, -0.644283 -7969, 0.434575, -0.521730, -0.351911, -0.644283 -7970, 0.434575, -0.521730, -0.351911, -0.644283 -7971, 0.434575, -0.521730, -0.351911, -0.644283 -7972, 0.434575, -0.521730, -0.351911, -0.644283 -7973, 0.434575, -0.521730, -0.351911, -0.644283 -7974, 0.434575, -0.521730, -0.351911, -0.644283 -7975, 0.434575, -0.521730, -0.351911, -0.644283 -7976, 0.434575, -0.521730, -0.351911, -0.644283 -7977, 0.434575, -0.521730, -0.351911, -0.644283 -7978, 0.434575, -0.521730, -0.351911, -0.644283 -7979, 0.434575, -0.521730, -0.351911, -0.644283 -7980, 0.434575, -0.521730, -0.351911, -0.644283 -7981, 0.434575, -0.521730, -0.351911, -0.644283 -7982, 0.434575, -0.521730, -0.351911, -0.644283 -7983, 0.434575, -0.521730, -0.351911, -0.644283 -7984, 0.434575, -0.521730, -0.351911, -0.644283 -7985, 0.434575, -0.521730, -0.351911, -0.644283 -7986, 0.434575, -0.521730, -0.351911, -0.644283 -7987, 0.434575, -0.521730, -0.351911, -0.644283 -7988, 0.434575, -0.521730, -0.351911, -0.644283 -7989, 0.434575, -0.521730, -0.351911, -0.644283 -7990, 0.434575, -0.521730, -0.351911, -0.644283 -7991, 0.434575, -0.521730, -0.351911, -0.644283 -7992, 0.434575, -0.521730, -0.351911, -0.644283 -7993, 0.434575, -0.521730, -0.351911, -0.644283 -7994, 0.434575, -0.521730, -0.351911, -0.644283 -7995, 0.434575, -0.521730, -0.351911, -0.644283 -7996, 0.434575, -0.521730, -0.351911, -0.644283 -7997, 0.434575, -0.521730, -0.351911, -0.644283 -7998, 0.434575, -0.521730, -0.351911, -0.644283 -7999, 0.434575, -0.521730, -0.351911, -0.644283 -8000, 0.455049, -0.498668, -0.349171, -0.649877 -8001, 0.455049, -0.498668, -0.349171, -0.649877 -8002, 0.455049, -0.498668, -0.349171, -0.649877 -8003, 0.455049, -0.498668, -0.349171, -0.649877 -8004, 0.455049, -0.498668, -0.349171, -0.649877 -8005, 0.455049, -0.498668, -0.349171, -0.649877 -8006, 0.455049, -0.498668, -0.349171, -0.649877 -8007, 0.455049, -0.498668, -0.349171, -0.649877 -8008, 0.455049, -0.498668, -0.349171, -0.649877 -8009, 0.455049, -0.498668, -0.349171, -0.649877 -8010, 0.455049, -0.498668, -0.349171, -0.649877 -8011, 0.455049, -0.498668, -0.349171, -0.649877 -8012, 0.455049, -0.498668, -0.349171, -0.649877 -8013, 0.455049, -0.498668, -0.349171, -0.649877 -8014, 0.455049, -0.498668, -0.349171, -0.649877 -8015, 0.455049, -0.498668, -0.349171, -0.649877 -8016, 0.455049, -0.498668, -0.349171, -0.649877 -8017, 0.455049, -0.498668, -0.349171, -0.649877 -8018, 0.455049, -0.498668, -0.349171, -0.649877 -8019, 0.455049, -0.498668, -0.349171, -0.649877 -8020, 0.455049, -0.498668, -0.349171, -0.649877 -8021, 0.455049, -0.498668, -0.349171, -0.649877 -8022, 0.455049, -0.498668, -0.349171, -0.649877 -8023, 0.455049, -0.498668, -0.349171, -0.649877 -8024, 0.455049, -0.498668, -0.349171, -0.649877 -8025, 0.455049, -0.498668, -0.349171, -0.649877 -8026, 0.455049, -0.498668, -0.349171, -0.649877 -8027, 0.455049, -0.498668, -0.349171, -0.649877 -8028, 0.455049, -0.498668, -0.349171, -0.649877 -8029, 0.455049, -0.498668, -0.349171, -0.649877 -8030, 0.455049, -0.498668, -0.349171, -0.649877 -8031, 0.455049, -0.498668, -0.349171, -0.649877 -8032, 0.455049, -0.498668, -0.349171, -0.649877 -8033, 0.455049, -0.498668, -0.349171, -0.649877 -8034, 0.455049, -0.498668, -0.349171, -0.649877 -8035, 0.455049, -0.498668, -0.349171, -0.649877 -8036, 0.455049, -0.498668, -0.349171, -0.649877 -8037, 0.455049, -0.498668, -0.349171, -0.649877 -8038, 0.455049, -0.498668, -0.349171, -0.649877 -8039, 0.455049, -0.498668, -0.349171, -0.649877 -8040, 0.455049, -0.498668, -0.349171, -0.649877 -8041, 0.455049, -0.498668, -0.349171, -0.649877 -8042, 0.455049, -0.498668, -0.349171, -0.649877 -8043, 0.455049, -0.498668, -0.349171, -0.649877 -8044, 0.455049, -0.498668, -0.349171, -0.649877 -8045, 0.455049, -0.498668, -0.349171, -0.649877 -8046, 0.455049, -0.498668, -0.349171, -0.649877 -8047, 0.455049, -0.498668, -0.349171, -0.649877 -8048, 0.455049, -0.498668, -0.349171, -0.649877 -8049, 0.455049, -0.498668, -0.349171, -0.649877 -8050, 0.455049, -0.498668, -0.349171, -0.649877 -8051, 0.455049, -0.498668, -0.349171, -0.649877 -8052, 0.455049, -0.498668, -0.349171, -0.649877 -8053, 0.455049, -0.498668, -0.349171, -0.649877 -8054, 0.455049, -0.498668, -0.349171, -0.649877 -8055, 0.455049, -0.498668, -0.349171, -0.649877 -8056, 0.455049, -0.498668, -0.349171, -0.649877 -8057, 0.455049, -0.498668, -0.349171, -0.649877 -8058, 0.455049, -0.498668, -0.349171, -0.649877 -8059, 0.455049, -0.498668, -0.349171, -0.649877 -8060, 0.455049, -0.498668, -0.349171, -0.649877 -8061, 0.455049, -0.498668, -0.349171, -0.649877 -8062, 0.455049, -0.498668, -0.349171, -0.649877 -8063, 0.455049, -0.498668, -0.349171, -0.649877 -8064, 0.455049, -0.498668, -0.349171, -0.649877 -8065, 0.455049, -0.498668, -0.349171, -0.649877 -8066, 0.455049, -0.498668, -0.349171, -0.649877 -8067, 0.455049, -0.498668, -0.349171, -0.649877 -8068, 0.455049, -0.498668, -0.349171, -0.649877 -8069, 0.455049, -0.498668, -0.349171, -0.649877 -8070, 0.455049, -0.498668, -0.349171, -0.649877 -8071, 0.455049, -0.498668, -0.349171, -0.649877 -8072, 0.455049, -0.498668, -0.349171, -0.649877 -8073, 0.455049, -0.498668, -0.349171, -0.649877 -8074, 0.455049, -0.498668, -0.349171, -0.649877 -8075, 0.455049, -0.498668, -0.349171, -0.649877 -8076, 0.455049, -0.498668, -0.349171, -0.649877 -8077, 0.455049, -0.498668, -0.349171, -0.649877 -8078, 0.455049, -0.498668, -0.349171, -0.649877 -8079, 0.455049, -0.498668, -0.349171, -0.649877 -8080, 0.455049, -0.498668, -0.349171, -0.649877 -8081, 0.455049, -0.498668, -0.349171, -0.649877 -8082, 0.455049, -0.498668, -0.349171, -0.649877 -8083, 0.455049, -0.498668, -0.349171, -0.649877 -8084, 0.455049, -0.498668, -0.349171, -0.649877 -8085, 0.455049, -0.498668, -0.349171, -0.649877 -8086, 0.455049, -0.498668, -0.349171, -0.649877 -8087, 0.455049, -0.498668, -0.349171, -0.649877 -8088, 0.455049, -0.498668, -0.349171, -0.649877 -8089, 0.455049, -0.498668, -0.349171, -0.649877 -8090, 0.455049, -0.498668, -0.349171, -0.649877 -8091, 0.455049, -0.498668, -0.349171, -0.649877 -8092, 0.455049, -0.498668, -0.349171, -0.649877 -8093, 0.455049, -0.498668, -0.349171, -0.649877 -8094, 0.455049, -0.498668, -0.349171, -0.649877 -8095, 0.455049, -0.498668, -0.349171, -0.649877 -8096, 0.455049, -0.498668, -0.349171, -0.649877 -8097, 0.455049, -0.498668, -0.349171, -0.649877 -8098, 0.455049, -0.498668, -0.349171, -0.649877 -8099, 0.455049, -0.498668, -0.349171, -0.649877 -8100, 0.475528, -0.475528, -0.345492, -0.654508 -8101, 0.475528, -0.475528, -0.345492, -0.654508 -8102, 0.475528, -0.475528, -0.345492, -0.654508 -8103, 0.475528, -0.475528, -0.345492, -0.654508 -8104, 0.475528, -0.475528, -0.345492, -0.654508 -8105, 0.475528, -0.475528, -0.345492, -0.654508 -8106, 0.475528, -0.475528, -0.345492, -0.654508 -8107, 0.475528, -0.475528, -0.345492, -0.654508 -8108, 0.475528, -0.475528, -0.345492, -0.654508 -8109, 0.475528, -0.475528, -0.345492, -0.654508 -8110, 0.475528, -0.475528, -0.345492, -0.654508 -8111, 0.475528, -0.475528, -0.345492, -0.654508 -8112, 0.475528, -0.475528, -0.345492, -0.654508 -8113, 0.475528, -0.475528, -0.345492, -0.654508 -8114, 0.475528, -0.475528, -0.345492, -0.654508 -8115, 0.475528, -0.475528, -0.345492, -0.654508 -8116, 0.475528, -0.475528, -0.345492, -0.654508 -8117, 0.475528, -0.475528, -0.345492, -0.654508 -8118, 0.475528, -0.475528, -0.345492, -0.654508 -8119, 0.475528, -0.475528, -0.345492, -0.654508 -8120, 0.475528, -0.475528, -0.345492, -0.654508 -8121, 0.475528, -0.475528, -0.345492, -0.654508 -8122, 0.475528, -0.475528, -0.345492, -0.654508 -8123, 0.475528, -0.475528, -0.345492, -0.654508 -8124, 0.475528, -0.475528, -0.345492, -0.654508 -8125, 0.475528, -0.475528, -0.345492, -0.654508 -8126, 0.475528, -0.475528, -0.345492, -0.654508 -8127, 0.475528, -0.475528, -0.345492, -0.654508 -8128, 0.475528, -0.475528, -0.345492, -0.654508 -8129, 0.475528, -0.475528, -0.345492, -0.654508 -8130, 0.475528, -0.475528, -0.345492, -0.654508 -8131, 0.475528, -0.475528, -0.345492, -0.654508 -8132, 0.475528, -0.475528, -0.345492, -0.654508 -8133, 0.475528, -0.475528, -0.345492, -0.654508 -8134, 0.475528, -0.475528, -0.345492, -0.654508 -8135, 0.475528, -0.475528, -0.345492, -0.654508 -8136, 0.475528, -0.475528, -0.345492, -0.654508 -8137, 0.475528, -0.475528, -0.345492, -0.654508 -8138, 0.475528, -0.475528, -0.345492, -0.654508 -8139, 0.475528, -0.475528, -0.345492, -0.654508 -8140, 0.475528, -0.475528, -0.345492, -0.654508 -8141, 0.475528, -0.475528, -0.345492, -0.654508 -8142, 0.475528, -0.475528, -0.345492, -0.654508 -8143, 0.475528, -0.475528, -0.345492, -0.654508 -8144, 0.475528, -0.475528, -0.345492, -0.654508 -8145, 0.475528, -0.475528, -0.345492, -0.654508 -8146, 0.475528, -0.475528, -0.345492, -0.654508 -8147, 0.475528, -0.475528, -0.345492, -0.654508 -8148, 0.475528, -0.475528, -0.345492, -0.654508 -8149, 0.475528, -0.475528, -0.345492, -0.654508 -8150, 0.475528, -0.475528, -0.345492, -0.654508 -8151, 0.475528, -0.475528, -0.345492, -0.654508 -8152, 0.475528, -0.475528, -0.345492, -0.654508 -8153, 0.475528, -0.475528, -0.345492, -0.654508 -8154, 0.475528, -0.475528, -0.345492, -0.654508 -8155, 0.475528, -0.475528, -0.345492, -0.654508 -8156, 0.475528, -0.475528, -0.345492, -0.654508 -8157, 0.475528, -0.475528, -0.345492, -0.654508 -8158, 0.475528, -0.475528, -0.345492, -0.654508 -8159, 0.475528, -0.475528, -0.345492, -0.654508 -8160, 0.475528, -0.475528, -0.345492, -0.654508 -8161, 0.475528, -0.475528, -0.345492, -0.654508 -8162, 0.475528, -0.475528, -0.345492, -0.654508 -8163, 0.475528, -0.475528, -0.345492, -0.654508 -8164, 0.475528, -0.475528, -0.345492, -0.654508 -8165, 0.475528, -0.475528, -0.345492, -0.654508 -8166, 0.475528, -0.475528, -0.345492, -0.654508 -8167, 0.475528, -0.475528, -0.345492, -0.654508 -8168, 0.475528, -0.475528, -0.345492, -0.654508 -8169, 0.475528, -0.475528, -0.345492, -0.654508 -8170, 0.475528, -0.475528, -0.345492, -0.654508 -8171, 0.475528, -0.475528, -0.345492, -0.654508 -8172, 0.475528, -0.475528, -0.345492, -0.654508 -8173, 0.475528, -0.475528, -0.345492, -0.654508 -8174, 0.475528, -0.475528, -0.345492, -0.654508 -8175, 0.475528, -0.475528, -0.345492, -0.654508 -8176, 0.475528, -0.475528, -0.345492, -0.654508 -8177, 0.475528, -0.475528, -0.345492, -0.654508 -8178, 0.475528, -0.475528, -0.345492, -0.654508 -8179, 0.475528, -0.475528, -0.345492, -0.654508 -8180, 0.475528, -0.475528, -0.345492, -0.654508 -8181, 0.475528, -0.475528, -0.345492, -0.654508 -8182, 0.475528, -0.475528, -0.345492, -0.654508 -8183, 0.475528, -0.475528, -0.345492, -0.654508 -8184, 0.475528, -0.475528, -0.345492, -0.654508 -8185, 0.475528, -0.475528, -0.345492, -0.654508 -8186, 0.475528, -0.475528, -0.345492, -0.654508 -8187, 0.475528, -0.475528, -0.345492, -0.654508 -8188, 0.475528, -0.475528, -0.345492, -0.654508 -8189, 0.475528, -0.475528, -0.345492, -0.654508 -8190, 0.475528, -0.475528, -0.345492, -0.654508 -8191, 0.475528, -0.475528, -0.345492, -0.654508 -8192, 0.475528, -0.475528, -0.345492, -0.654508 -8193, 0.475528, -0.475528, -0.345492, -0.654508 -8194, 0.475528, -0.475528, -0.345492, -0.654508 -8195, 0.475528, -0.475528, -0.345492, -0.654508 -8196, 0.475528, -0.475528, -0.345492, -0.654508 -8197, 0.475528, -0.475528, -0.345492, -0.654508 -8198, 0.475528, -0.475528, -0.345492, -0.654508 -8199, 0.475528, -0.475528, -0.345492, -0.654508 -8200, 0.495972, -0.452352, -0.340872, -0.658176 -8201, 0.495972, -0.452352, -0.340872, -0.658176 -8202, 0.495972, -0.452352, -0.340872, -0.658176 -8203, 0.495972, -0.452352, -0.340872, -0.658176 -8204, 0.495972, -0.452352, -0.340872, -0.658176 -8205, 0.495972, -0.452352, -0.340872, -0.658176 -8206, 0.495972, -0.452352, -0.340872, -0.658176 -8207, 0.495972, -0.452352, -0.340872, -0.658176 -8208, 0.495972, -0.452352, -0.340872, -0.658176 -8209, 0.495972, -0.452352, -0.340872, -0.658176 -8210, 0.495972, -0.452352, -0.340872, -0.658176 -8211, 0.495972, -0.452352, -0.340872, -0.658176 -8212, 0.495972, -0.452352, -0.340872, -0.658176 -8213, 0.495972, -0.452352, -0.340872, -0.658176 -8214, 0.495972, -0.452352, -0.340872, -0.658176 -8215, 0.495972, -0.452352, -0.340872, -0.658176 -8216, 0.495972, -0.452352, -0.340872, -0.658176 -8217, 0.495972, -0.452352, -0.340872, -0.658176 -8218, 0.495972, -0.452352, -0.340872, -0.658176 -8219, 0.495972, -0.452352, -0.340872, -0.658176 -8220, 0.495972, -0.452352, -0.340872, -0.658176 -8221, 0.495972, -0.452352, -0.340872, -0.658176 -8222, 0.495972, -0.452352, -0.340872, -0.658176 -8223, 0.495972, -0.452352, -0.340872, -0.658176 -8224, 0.495972, -0.452352, -0.340872, -0.658176 -8225, 0.495972, -0.452352, -0.340872, -0.658176 -8226, 0.495972, -0.452352, -0.340872, -0.658176 -8227, 0.495972, -0.452352, -0.340872, -0.658176 -8228, 0.495972, -0.452352, -0.340872, -0.658176 -8229, 0.495972, -0.452352, -0.340872, -0.658176 -8230, 0.495972, -0.452352, -0.340872, -0.658176 -8231, 0.495972, -0.452352, -0.340872, -0.658176 -8232, 0.495972, -0.452352, -0.340872, -0.658176 -8233, 0.495972, -0.452352, -0.340872, -0.658176 -8234, 0.495972, -0.452352, -0.340872, -0.658176 -8235, 0.495972, -0.452352, -0.340872, -0.658176 -8236, 0.495972, -0.452352, -0.340872, -0.658176 -8237, 0.495972, -0.452352, -0.340872, -0.658176 -8238, 0.495972, -0.452352, -0.340872, -0.658176 -8239, 0.495972, -0.452352, -0.340872, -0.658176 -8240, 0.495972, -0.452352, -0.340872, -0.658176 -8241, 0.495972, -0.452352, -0.340872, -0.658176 -8242, 0.495972, -0.452352, -0.340872, -0.658176 -8243, 0.495972, -0.452352, -0.340872, -0.658176 -8244, 0.495972, -0.452352, -0.340872, -0.658176 -8245, 0.495972, -0.452352, -0.340872, -0.658176 -8246, 0.495972, -0.452352, -0.340872, -0.658176 -8247, 0.495972, -0.452352, -0.340872, -0.658176 -8248, 0.495972, -0.452352, -0.340872, -0.658176 -8249, 0.495972, -0.452352, -0.340872, -0.658176 -8250, 0.495972, -0.452352, -0.340872, -0.658176 -8251, 0.495972, -0.452352, -0.340872, -0.658176 -8252, 0.495972, -0.452352, -0.340872, -0.658176 -8253, 0.495972, -0.452352, -0.340872, -0.658176 -8254, 0.495972, -0.452352, -0.340872, -0.658176 -8255, 0.495972, -0.452352, -0.340872, -0.658176 -8256, 0.495972, -0.452352, -0.340872, -0.658176 -8257, 0.495972, -0.452352, -0.340872, -0.658176 -8258, 0.495972, -0.452352, -0.340872, -0.658176 -8259, 0.495972, -0.452352, -0.340872, -0.658176 -8260, 0.495972, -0.452352, -0.340872, -0.658176 -8261, 0.495972, -0.452352, -0.340872, -0.658176 -8262, 0.495972, -0.452352, -0.340872, -0.658176 -8263, 0.495972, -0.452352, -0.340872, -0.658176 -8264, 0.495972, -0.452352, -0.340872, -0.658176 -8265, 0.495972, -0.452352, -0.340872, -0.658176 -8266, 0.495972, -0.452352, -0.340872, -0.658176 -8267, 0.495972, -0.452352, -0.340872, -0.658176 -8268, 0.495972, -0.452352, -0.340872, -0.658176 -8269, 0.495972, -0.452352, -0.340872, -0.658176 -8270, 0.495972, -0.452352, -0.340872, -0.658176 -8271, 0.495972, -0.452352, -0.340872, -0.658176 -8272, 0.495972, -0.452352, -0.340872, -0.658176 -8273, 0.495972, -0.452352, -0.340872, -0.658176 -8274, 0.495972, -0.452352, -0.340872, -0.658176 -8275, 0.495972, -0.452352, -0.340872, -0.658176 -8276, 0.495972, -0.452352, -0.340872, -0.658176 -8277, 0.495972, -0.452352, -0.340872, -0.658176 -8278, 0.495972, -0.452352, -0.340872, -0.658176 -8279, 0.495972, -0.452352, -0.340872, -0.658176 -8280, 0.495972, -0.452352, -0.340872, -0.658176 -8281, 0.495972, -0.452352, -0.340872, -0.658176 -8282, 0.495972, -0.452352, -0.340872, -0.658176 -8283, 0.495972, -0.452352, -0.340872, -0.658176 -8284, 0.495972, -0.452352, -0.340872, -0.658176 -8285, 0.495972, -0.452352, -0.340872, -0.658176 -8286, 0.495972, -0.452352, -0.340872, -0.658176 -8287, 0.495972, -0.452352, -0.340872, -0.658176 -8288, 0.495972, -0.452352, -0.340872, -0.658176 -8289, 0.495972, -0.452352, -0.340872, -0.658176 -8290, 0.495972, -0.452352, -0.340872, -0.658176 -8291, 0.495972, -0.452352, -0.340872, -0.658176 -8292, 0.495972, -0.452352, -0.340872, -0.658176 -8293, 0.495972, -0.452352, -0.340872, -0.658176 -8294, 0.495972, -0.452352, -0.340872, -0.658176 -8295, 0.495972, -0.452352, -0.340872, -0.658176 -8296, 0.495972, -0.452352, -0.340872, -0.658176 -8297, 0.495972, -0.452352, -0.340872, -0.658176 -8298, 0.495972, -0.452352, -0.340872, -0.658176 -8299, 0.495972, -0.452352, -0.340872, -0.658176 -8300, 0.516337, -0.429181, -0.335313, -0.660881 -8301, 0.516337, -0.429181, -0.335313, -0.660881 -8302, 0.516337, -0.429181, -0.335313, -0.660881 -8303, 0.516337, -0.429181, -0.335313, -0.660881 -8304, 0.516337, -0.429181, -0.335313, -0.660881 -8305, 0.516337, -0.429181, -0.335313, -0.660881 -8306, 0.516337, -0.429181, -0.335313, -0.660881 -8307, 0.516337, -0.429181, -0.335313, -0.660881 -8308, 0.516337, -0.429181, -0.335313, -0.660881 -8309, 0.516337, -0.429181, -0.335313, -0.660881 -8310, 0.516337, -0.429181, -0.335313, -0.660881 -8311, 0.516337, -0.429181, -0.335313, -0.660881 -8312, 0.516337, -0.429181, -0.335313, -0.660881 -8313, 0.516337, -0.429181, -0.335313, -0.660881 -8314, 0.516337, -0.429181, -0.335313, -0.660881 -8315, 0.516337, -0.429181, -0.335313, -0.660881 -8316, 0.516337, -0.429181, -0.335313, -0.660881 -8317, 0.516337, -0.429181, -0.335313, -0.660881 -8318, 0.516337, -0.429181, -0.335313, -0.660881 -8319, 0.516337, -0.429181, -0.335313, -0.660881 -8320, 0.516337, -0.429181, -0.335313, -0.660881 -8321, 0.516337, -0.429181, -0.335313, -0.660881 -8322, 0.516337, -0.429181, -0.335313, -0.660881 -8323, 0.516337, -0.429181, -0.335313, -0.660881 -8324, 0.516337, -0.429181, -0.335313, -0.660881 -8325, 0.516337, -0.429181, -0.335313, -0.660881 -8326, 0.516337, -0.429181, -0.335313, -0.660881 -8327, 0.516337, -0.429181, -0.335313, -0.660881 -8328, 0.516337, -0.429181, -0.335313, -0.660881 -8329, 0.516337, -0.429181, -0.335313, -0.660881 -8330, 0.516337, -0.429181, -0.335313, -0.660881 -8331, 0.516337, -0.429181, -0.335313, -0.660881 -8332, 0.516337, -0.429181, -0.335313, -0.660881 -8333, 0.516337, -0.429181, -0.335313, -0.660881 -8334, 0.516337, -0.429181, -0.335313, -0.660881 -8335, 0.516337, -0.429181, -0.335313, -0.660881 -8336, 0.516337, -0.429181, -0.335313, -0.660881 -8337, 0.516337, -0.429181, -0.335313, -0.660881 -8338, 0.516337, -0.429181, -0.335313, -0.660881 -8339, 0.516337, -0.429181, -0.335313, -0.660881 -8340, 0.516337, -0.429181, -0.335313, -0.660881 -8341, 0.516337, -0.429181, -0.335313, -0.660881 -8342, 0.516337, -0.429181, -0.335313, -0.660881 -8343, 0.516337, -0.429181, -0.335313, -0.660881 -8344, 0.516337, -0.429181, -0.335313, -0.660881 -8345, 0.516337, -0.429181, -0.335313, -0.660881 -8346, 0.516337, -0.429181, -0.335313, -0.660881 -8347, 0.516337, -0.429181, -0.335313, -0.660881 -8348, 0.516337, -0.429181, -0.335313, -0.660881 -8349, 0.516337, -0.429181, -0.335313, -0.660881 -8350, 0.516337, -0.429181, -0.335313, -0.660881 -8351, 0.516337, -0.429181, -0.335313, -0.660881 -8352, 0.516337, -0.429181, -0.335313, -0.660881 -8353, 0.516337, -0.429181, -0.335313, -0.660881 -8354, 0.516337, -0.429181, -0.335313, -0.660881 -8355, 0.516337, -0.429181, -0.335313, -0.660881 -8356, 0.516337, -0.429181, -0.335313, -0.660881 -8357, 0.516337, -0.429181, -0.335313, -0.660881 -8358, 0.516337, -0.429181, -0.335313, -0.660881 -8359, 0.516337, -0.429181, -0.335313, -0.660881 -8360, 0.516337, -0.429181, -0.335313, -0.660881 -8361, 0.516337, -0.429181, -0.335313, -0.660881 -8362, 0.516337, -0.429181, -0.335313, -0.660881 -8363, 0.516337, -0.429181, -0.335313, -0.660881 -8364, 0.516337, -0.429181, -0.335313, -0.660881 -8365, 0.516337, -0.429181, -0.335313, -0.660881 -8366, 0.516337, -0.429181, -0.335313, -0.660881 -8367, 0.516337, -0.429181, -0.335313, -0.660881 -8368, 0.516337, -0.429181, -0.335313, -0.660881 -8369, 0.516337, -0.429181, -0.335313, -0.660881 -8370, 0.516337, -0.429181, -0.335313, -0.660881 -8371, 0.516337, -0.429181, -0.335313, -0.660881 -8372, 0.516337, -0.429181, -0.335313, -0.660881 -8373, 0.516337, -0.429181, -0.335313, -0.660881 -8374, 0.516337, -0.429181, -0.335313, -0.660881 -8375, 0.516337, -0.429181, -0.335313, -0.660881 -8376, 0.516337, -0.429181, -0.335313, -0.660881 -8377, 0.516337, -0.429181, -0.335313, -0.660881 -8378, 0.516337, -0.429181, -0.335313, -0.660881 -8379, 0.516337, -0.429181, -0.335313, -0.660881 -8380, 0.516337, -0.429181, -0.335313, -0.660881 -8381, 0.516337, -0.429181, -0.335313, -0.660881 -8382, 0.516337, -0.429181, -0.335313, -0.660881 -8383, 0.516337, -0.429181, -0.335313, -0.660881 -8384, 0.516337, -0.429181, -0.335313, -0.660881 -8385, 0.516337, -0.429181, -0.335313, -0.660881 -8386, 0.516337, -0.429181, -0.335313, -0.660881 -8387, 0.516337, -0.429181, -0.335313, -0.660881 -8388, 0.516337, -0.429181, -0.335313, -0.660881 -8389, 0.516337, -0.429181, -0.335313, -0.660881 -8390, 0.516337, -0.429181, -0.335313, -0.660881 -8391, 0.516337, -0.429181, -0.335313, -0.660881 -8392, 0.516337, -0.429181, -0.335313, -0.660881 -8393, 0.516337, -0.429181, -0.335313, -0.660881 -8394, 0.516337, -0.429181, -0.335313, -0.660881 -8395, 0.516337, -0.429181, -0.335313, -0.660881 -8396, 0.516337, -0.429181, -0.335313, -0.660881 -8397, 0.516337, -0.429181, -0.335313, -0.660881 -8398, 0.516337, -0.429181, -0.335313, -0.660881 -8399, 0.516337, -0.429181, -0.335313, -0.660881 -8400, 0.536584, -0.406058, -0.328819, -0.662626 -8401, 0.536584, -0.406058, -0.328819, -0.662626 -8402, 0.536584, -0.406058, -0.328819, -0.662626 -8403, 0.536584, -0.406058, -0.328819, -0.662626 -8404, 0.536584, -0.406058, -0.328819, -0.662626 -8405, 0.536584, -0.406058, -0.328819, -0.662626 -8406, 0.536584, -0.406058, -0.328819, -0.662626 -8407, 0.536584, -0.406058, -0.328819, -0.662626 -8408, 0.536584, -0.406058, -0.328819, -0.662626 -8409, 0.536584, -0.406058, -0.328819, -0.662626 -8410, 0.536584, -0.406058, -0.328819, -0.662626 -8411, 0.536584, -0.406058, -0.328819, -0.662626 -8412, 0.536584, -0.406058, -0.328819, -0.662626 -8413, 0.536584, -0.406058, -0.328819, -0.662626 -8414, 0.536584, -0.406058, -0.328819, -0.662626 -8415, 0.536584, -0.406058, -0.328819, -0.662626 -8416, 0.536584, -0.406058, -0.328819, -0.662626 -8417, 0.536584, -0.406058, -0.328819, -0.662626 -8418, 0.536584, -0.406058, -0.328819, -0.662626 -8419, 0.536584, -0.406058, -0.328819, -0.662626 -8420, 0.536584, -0.406058, -0.328819, -0.662626 -8421, 0.536584, -0.406058, -0.328819, -0.662626 -8422, 0.536584, -0.406058, -0.328819, -0.662626 -8423, 0.536584, -0.406058, -0.328819, -0.662626 -8424, 0.536584, -0.406058, -0.328819, -0.662626 -8425, 0.536584, -0.406058, -0.328819, -0.662626 -8426, 0.536584, -0.406058, -0.328819, -0.662626 -8427, 0.536584, -0.406058, -0.328819, -0.662626 -8428, 0.536584, -0.406058, -0.328819, -0.662626 -8429, 0.536584, -0.406058, -0.328819, -0.662626 -8430, 0.536584, -0.406058, -0.328819, -0.662626 -8431, 0.536584, -0.406058, -0.328819, -0.662626 -8432, 0.536584, -0.406058, -0.328819, -0.662626 -8433, 0.536584, -0.406058, -0.328819, -0.662626 -8434, 0.536584, -0.406058, -0.328819, -0.662626 -8435, 0.536584, -0.406058, -0.328819, -0.662626 -8436, 0.536584, -0.406058, -0.328819, -0.662626 -8437, 0.536584, -0.406058, -0.328819, -0.662626 -8438, 0.536584, -0.406058, -0.328819, -0.662626 -8439, 0.536584, -0.406058, -0.328819, -0.662626 -8440, 0.536584, -0.406058, -0.328819, -0.662626 -8441, 0.536584, -0.406058, -0.328819, -0.662626 -8442, 0.536584, -0.406058, -0.328819, -0.662626 -8443, 0.536584, -0.406058, -0.328819, -0.662626 -8444, 0.536584, -0.406058, -0.328819, -0.662626 -8445, 0.536584, -0.406058, -0.328819, -0.662626 -8446, 0.536584, -0.406058, -0.328819, -0.662626 -8447, 0.536584, -0.406058, -0.328819, -0.662626 -8448, 0.536584, -0.406058, -0.328819, -0.662626 -8449, 0.536584, -0.406058, -0.328819, -0.662626 -8450, 0.536584, -0.406058, -0.328819, -0.662626 -8451, 0.536584, -0.406058, -0.328819, -0.662626 -8452, 0.536584, -0.406058, -0.328819, -0.662626 -8453, 0.536584, -0.406058, -0.328819, -0.662626 -8454, 0.536584, -0.406058, -0.328819, -0.662626 -8455, 0.536584, -0.406058, -0.328819, -0.662626 -8456, 0.536584, -0.406058, -0.328819, -0.662626 -8457, 0.536584, -0.406058, -0.328819, -0.662626 -8458, 0.536584, -0.406058, -0.328819, -0.662626 -8459, 0.536584, -0.406058, -0.328819, -0.662626 -8460, 0.536584, -0.406058, -0.328819, -0.662626 -8461, 0.536584, -0.406058, -0.328819, -0.662626 -8462, 0.536584, -0.406058, -0.328819, -0.662626 -8463, 0.536584, -0.406058, -0.328819, -0.662626 -8464, 0.536584, -0.406058, -0.328819, -0.662626 -8465, 0.536584, -0.406058, -0.328819, -0.662626 -8466, 0.536584, -0.406058, -0.328819, -0.662626 -8467, 0.536584, -0.406058, -0.328819, -0.662626 -8468, 0.536584, -0.406058, -0.328819, -0.662626 -8469, 0.536584, -0.406058, -0.328819, -0.662626 -8470, 0.536584, -0.406058, -0.328819, -0.662626 -8471, 0.536584, -0.406058, -0.328819, -0.662626 -8472, 0.536584, -0.406058, -0.328819, -0.662626 -8473, 0.536584, -0.406058, -0.328819, -0.662626 -8474, 0.536584, -0.406058, -0.328819, -0.662626 -8475, 0.536584, -0.406058, -0.328819, -0.662626 -8476, 0.536584, -0.406058, -0.328819, -0.662626 -8477, 0.536584, -0.406058, -0.328819, -0.662626 -8478, 0.536584, -0.406058, -0.328819, -0.662626 -8479, 0.536584, -0.406058, -0.328819, -0.662626 -8480, 0.536584, -0.406058, -0.328819, -0.662626 -8481, 0.536584, -0.406058, -0.328819, -0.662626 -8482, 0.536584, -0.406058, -0.328819, -0.662626 -8483, 0.536584, -0.406058, -0.328819, -0.662626 -8484, 0.536584, -0.406058, -0.328819, -0.662626 -8485, 0.536584, -0.406058, -0.328819, -0.662626 -8486, 0.536584, -0.406058, -0.328819, -0.662626 -8487, 0.536584, -0.406058, -0.328819, -0.662626 -8488, 0.536584, -0.406058, -0.328819, -0.662626 -8489, 0.536584, -0.406058, -0.328819, -0.662626 -8490, 0.536584, -0.406058, -0.328819, -0.662626 -8491, 0.536584, -0.406058, -0.328819, -0.662626 -8492, 0.536584, -0.406058, -0.328819, -0.662626 -8493, 0.536584, -0.406058, -0.328819, -0.662626 -8494, 0.536584, -0.406058, -0.328819, -0.662626 -8495, 0.536584, -0.406058, -0.328819, -0.662626 -8496, 0.536584, -0.406058, -0.328819, -0.662626 -8497, 0.536584, -0.406058, -0.328819, -0.662626 -8498, 0.536584, -0.406058, -0.328819, -0.662626 -8499, 0.536584, -0.406058, -0.328819, -0.662626 -8500, 0.556670, -0.383022, -0.321394, -0.663414 -8501, 0.556670, -0.383022, -0.321394, -0.663414 -8502, 0.556670, -0.383022, -0.321394, -0.663414 -8503, 0.556670, -0.383022, -0.321394, -0.663414 -8504, 0.556670, -0.383022, -0.321394, -0.663414 -8505, 0.556670, -0.383022, -0.321394, -0.663414 -8506, 0.556670, -0.383022, -0.321394, -0.663414 -8507, 0.556670, -0.383022, -0.321394, -0.663414 -8508, 0.556670, -0.383022, -0.321394, -0.663414 -8509, 0.556670, -0.383022, -0.321394, -0.663414 -8510, 0.556670, -0.383022, -0.321394, -0.663414 -8511, 0.556670, -0.383022, -0.321394, -0.663414 -8512, 0.556670, -0.383022, -0.321394, -0.663414 -8513, 0.556670, -0.383022, -0.321394, -0.663414 -8514, 0.556670, -0.383022, -0.321394, -0.663414 -8515, 0.556670, -0.383022, -0.321394, -0.663414 -8516, 0.556670, -0.383022, -0.321394, -0.663414 -8517, 0.556670, -0.383022, -0.321394, -0.663414 -8518, 0.556670, -0.383022, -0.321394, -0.663414 -8519, 0.556670, -0.383022, -0.321394, -0.663414 -8520, 0.556670, -0.383022, -0.321394, -0.663414 -8521, 0.556670, -0.383022, -0.321394, -0.663414 -8522, 0.556670, -0.383022, -0.321394, -0.663414 -8523, 0.556670, -0.383022, -0.321394, -0.663414 -8524, 0.556670, -0.383022, -0.321394, -0.663414 -8525, 0.556670, -0.383022, -0.321394, -0.663414 -8526, 0.556670, -0.383022, -0.321394, -0.663414 -8527, 0.556670, -0.383022, -0.321394, -0.663414 -8528, 0.556670, -0.383022, -0.321394, -0.663414 -8529, 0.556670, -0.383022, -0.321394, -0.663414 -8530, 0.556670, -0.383022, -0.321394, -0.663414 -8531, 0.556670, -0.383022, -0.321394, -0.663414 -8532, 0.556670, -0.383022, -0.321394, -0.663414 -8533, 0.556670, -0.383022, -0.321394, -0.663414 -8534, 0.556670, -0.383022, -0.321394, -0.663414 -8535, 0.556670, -0.383022, -0.321394, -0.663414 -8536, 0.556670, -0.383022, -0.321394, -0.663414 -8537, 0.556670, -0.383022, -0.321394, -0.663414 -8538, 0.556670, -0.383022, -0.321394, -0.663414 -8539, 0.556670, -0.383022, -0.321394, -0.663414 -8540, 0.556670, -0.383022, -0.321394, -0.663414 -8541, 0.556670, -0.383022, -0.321394, -0.663414 -8542, 0.556670, -0.383022, -0.321394, -0.663414 -8543, 0.556670, -0.383022, -0.321394, -0.663414 -8544, 0.556670, -0.383022, -0.321394, -0.663414 -8545, 0.556670, -0.383022, -0.321394, -0.663414 -8546, 0.556670, -0.383022, -0.321394, -0.663414 -8547, 0.556670, -0.383022, -0.321394, -0.663414 -8548, 0.556670, -0.383022, -0.321394, -0.663414 -8549, 0.556670, -0.383022, -0.321394, -0.663414 -8550, 0.556670, -0.383022, -0.321394, -0.663414 -8551, 0.556670, -0.383022, -0.321394, -0.663414 -8552, 0.556670, -0.383022, -0.321394, -0.663414 -8553, 0.556670, -0.383022, -0.321394, -0.663414 -8554, 0.556670, -0.383022, -0.321394, -0.663414 -8555, 0.556670, -0.383022, -0.321394, -0.663414 -8556, 0.556670, -0.383022, -0.321394, -0.663414 -8557, 0.556670, -0.383022, -0.321394, -0.663414 -8558, 0.556670, -0.383022, -0.321394, -0.663414 -8559, 0.556670, -0.383022, -0.321394, -0.663414 -8560, 0.556670, -0.383022, -0.321394, -0.663414 -8561, 0.556670, -0.383022, -0.321394, -0.663414 -8562, 0.556670, -0.383022, -0.321394, -0.663414 -8563, 0.556670, -0.383022, -0.321394, -0.663414 -8564, 0.556670, -0.383022, -0.321394, -0.663414 -8565, 0.556670, -0.383022, -0.321394, -0.663414 -8566, 0.556670, -0.383022, -0.321394, -0.663414 -8567, 0.556670, -0.383022, -0.321394, -0.663414 -8568, 0.556670, -0.383022, -0.321394, -0.663414 -8569, 0.556670, -0.383022, -0.321394, -0.663414 -8570, 0.556670, -0.383022, -0.321394, -0.663414 -8571, 0.556670, -0.383022, -0.321394, -0.663414 -8572, 0.556670, -0.383022, -0.321394, -0.663414 -8573, 0.556670, -0.383022, -0.321394, -0.663414 -8574, 0.556670, -0.383022, -0.321394, -0.663414 -8575, 0.556670, -0.383022, -0.321394, -0.663414 -8576, 0.556670, -0.383022, -0.321394, -0.663414 -8577, 0.556670, -0.383022, -0.321394, -0.663414 -8578, 0.556670, -0.383022, -0.321394, -0.663414 -8579, 0.556670, -0.383022, -0.321394, -0.663414 -8580, 0.556670, -0.383022, -0.321394, -0.663414 -8581, 0.556670, -0.383022, -0.321394, -0.663414 -8582, 0.556670, -0.383022, -0.321394, -0.663414 -8583, 0.556670, -0.383022, -0.321394, -0.663414 -8584, 0.556670, -0.383022, -0.321394, -0.663414 -8585, 0.556670, -0.383022, -0.321394, -0.663414 -8586, 0.556670, -0.383022, -0.321394, -0.663414 -8587, 0.556670, -0.383022, -0.321394, -0.663414 -8588, 0.556670, -0.383022, -0.321394, -0.663414 -8589, 0.556670, -0.383022, -0.321394, -0.663414 -8590, 0.556670, -0.383022, -0.321394, -0.663414 -8591, 0.556670, -0.383022, -0.321394, -0.663414 -8592, 0.556670, -0.383022, -0.321394, -0.663414 -8593, 0.556670, -0.383022, -0.321394, -0.663414 -8594, 0.556670, -0.383022, -0.321394, -0.663414 -8595, 0.556670, -0.383022, -0.321394, -0.663414 -8596, 0.556670, -0.383022, -0.321394, -0.663414 -8597, 0.556670, -0.383022, -0.321394, -0.663414 -8598, 0.556670, -0.383022, -0.321394, -0.663414 -8599, 0.556670, -0.383022, -0.321394, -0.663414 -8600, 0.576556, -0.360116, -0.313044, -0.663252 -8601, 0.576556, -0.360116, -0.313044, -0.663252 -8602, 0.576556, -0.360116, -0.313044, -0.663252 -8603, 0.576556, -0.360116, -0.313044, -0.663252 -8604, 0.576556, -0.360116, -0.313044, -0.663252 -8605, 0.576556, -0.360116, -0.313044, -0.663252 -8606, 0.576556, -0.360116, -0.313044, -0.663252 -8607, 0.576556, -0.360116, -0.313044, -0.663252 -8608, 0.576556, -0.360116, -0.313044, -0.663252 -8609, 0.576556, -0.360116, -0.313044, -0.663252 -8610, 0.576556, -0.360116, -0.313044, -0.663252 -8611, 0.576556, -0.360116, -0.313044, -0.663252 -8612, 0.576556, -0.360116, -0.313044, -0.663252 -8613, 0.576556, -0.360116, -0.313044, -0.663252 -8614, 0.576556, -0.360116, -0.313044, -0.663252 -8615, 0.576556, -0.360116, -0.313044, -0.663252 -8616, 0.576556, -0.360116, -0.313044, -0.663252 -8617, 0.576556, -0.360116, -0.313044, -0.663252 -8618, 0.576556, -0.360116, -0.313044, -0.663252 -8619, 0.576556, -0.360116, -0.313044, -0.663252 -8620, 0.576556, -0.360116, -0.313044, -0.663252 -8621, 0.576556, -0.360116, -0.313044, -0.663252 -8622, 0.576556, -0.360116, -0.313044, -0.663252 -8623, 0.576556, -0.360116, -0.313044, -0.663252 -8624, 0.576556, -0.360116, -0.313044, -0.663252 -8625, 0.576556, -0.360116, -0.313044, -0.663252 -8626, 0.576556, -0.360116, -0.313044, -0.663252 -8627, 0.576556, -0.360116, -0.313044, -0.663252 -8628, 0.576556, -0.360116, -0.313044, -0.663252 -8629, 0.576556, -0.360116, -0.313044, -0.663252 -8630, 0.576556, -0.360116, -0.313044, -0.663252 -8631, 0.576556, -0.360116, -0.313044, -0.663252 -8632, 0.576556, -0.360116, -0.313044, -0.663252 -8633, 0.576556, -0.360116, -0.313044, -0.663252 -8634, 0.576556, -0.360116, -0.313044, -0.663252 -8635, 0.576556, -0.360116, -0.313044, -0.663252 -8636, 0.576556, -0.360116, -0.313044, -0.663252 -8637, 0.576556, -0.360116, -0.313044, -0.663252 -8638, 0.576556, -0.360116, -0.313044, -0.663252 -8639, 0.576556, -0.360116, -0.313044, -0.663252 -8640, 0.576556, -0.360116, -0.313044, -0.663252 -8641, 0.576556, -0.360116, -0.313044, -0.663252 -8642, 0.576556, -0.360116, -0.313044, -0.663252 -8643, 0.576556, -0.360116, -0.313044, -0.663252 -8644, 0.576556, -0.360116, -0.313044, -0.663252 -8645, 0.576556, -0.360116, -0.313044, -0.663252 -8646, 0.576556, -0.360116, -0.313044, -0.663252 -8647, 0.576556, -0.360116, -0.313044, -0.663252 -8648, 0.576556, -0.360116, -0.313044, -0.663252 -8649, 0.576556, -0.360116, -0.313044, -0.663252 -8650, 0.576556, -0.360116, -0.313044, -0.663252 -8651, 0.576556, -0.360116, -0.313044, -0.663252 -8652, 0.576556, -0.360116, -0.313044, -0.663252 -8653, 0.576556, -0.360116, -0.313044, -0.663252 -8654, 0.576556, -0.360116, -0.313044, -0.663252 -8655, 0.576556, -0.360116, -0.313044, -0.663252 -8656, 0.576556, -0.360116, -0.313044, -0.663252 -8657, 0.576556, -0.360116, -0.313044, -0.663252 -8658, 0.576556, -0.360116, -0.313044, -0.663252 -8659, 0.576556, -0.360116, -0.313044, -0.663252 -8660, 0.576556, -0.360116, -0.313044, -0.663252 -8661, 0.576556, -0.360116, -0.313044, -0.663252 -8662, 0.576556, -0.360116, -0.313044, -0.663252 -8663, 0.576556, -0.360116, -0.313044, -0.663252 -8664, 0.576556, -0.360116, -0.313044, -0.663252 -8665, 0.576556, -0.360116, -0.313044, -0.663252 -8666, 0.576556, -0.360116, -0.313044, -0.663252 -8667, 0.576556, -0.360116, -0.313044, -0.663252 -8668, 0.576556, -0.360116, -0.313044, -0.663252 -8669, 0.576556, -0.360116, -0.313044, -0.663252 -8670, 0.576556, -0.360116, -0.313044, -0.663252 -8671, 0.576556, -0.360116, -0.313044, -0.663252 -8672, 0.576556, -0.360116, -0.313044, -0.663252 -8673, 0.576556, -0.360116, -0.313044, -0.663252 -8674, 0.576556, -0.360116, -0.313044, -0.663252 -8675, 0.576556, -0.360116, -0.313044, -0.663252 -8676, 0.576556, -0.360116, -0.313044, -0.663252 -8677, 0.576556, -0.360116, -0.313044, -0.663252 -8678, 0.576556, -0.360116, -0.313044, -0.663252 -8679, 0.576556, -0.360116, -0.313044, -0.663252 -8680, 0.576556, -0.360116, -0.313044, -0.663252 -8681, 0.576556, -0.360116, -0.313044, -0.663252 -8682, 0.576556, -0.360116, -0.313044, -0.663252 -8683, 0.576556, -0.360116, -0.313044, -0.663252 -8684, 0.576556, -0.360116, -0.313044, -0.663252 -8685, 0.576556, -0.360116, -0.313044, -0.663252 -8686, 0.576556, -0.360116, -0.313044, -0.663252 -8687, 0.576556, -0.360116, -0.313044, -0.663252 -8688, 0.576556, -0.360116, -0.313044, -0.663252 -8689, 0.576556, -0.360116, -0.313044, -0.663252 -8690, 0.576556, -0.360116, -0.313044, -0.663252 -8691, 0.576556, -0.360116, -0.313044, -0.663252 -8692, 0.576556, -0.360116, -0.313044, -0.663252 -8693, 0.576556, -0.360116, -0.313044, -0.663252 -8694, 0.576556, -0.360116, -0.313044, -0.663252 -8695, 0.576556, -0.360116, -0.313044, -0.663252 -8696, 0.576556, -0.360116, -0.313044, -0.663252 -8697, 0.576556, -0.360116, -0.313044, -0.663252 -8698, 0.576556, -0.360116, -0.313044, -0.663252 -8699, 0.576556, -0.360116, -0.313044, -0.663252 -8700, 0.596200, -0.337381, -0.303779, -0.662147 -8701, 0.596200, -0.337381, -0.303779, -0.662147 -8702, 0.596200, -0.337381, -0.303779, -0.662147 -8703, 0.596200, -0.337381, -0.303779, -0.662147 -8704, 0.596200, -0.337381, -0.303779, -0.662147 -8705, 0.596200, -0.337381, -0.303779, -0.662147 -8706, 0.596200, -0.337381, -0.303779, -0.662147 -8707, 0.596200, -0.337381, -0.303779, -0.662147 -8708, 0.596200, -0.337381, -0.303779, -0.662147 -8709, 0.596200, -0.337381, -0.303779, -0.662147 -8710, 0.596200, -0.337381, -0.303779, -0.662147 -8711, 0.596200, -0.337381, -0.303779, -0.662147 -8712, 0.596200, -0.337381, -0.303779, -0.662147 -8713, 0.596200, -0.337381, -0.303779, -0.662147 -8714, 0.596200, -0.337381, -0.303779, -0.662147 -8715, 0.596200, -0.337381, -0.303779, -0.662147 -8716, 0.596200, -0.337381, -0.303779, -0.662147 -8717, 0.596200, -0.337381, -0.303779, -0.662147 -8718, 0.596200, -0.337381, -0.303779, -0.662147 -8719, 0.596200, -0.337381, -0.303779, -0.662147 -8720, 0.596200, -0.337381, -0.303779, -0.662147 -8721, 0.596200, -0.337381, -0.303779, -0.662147 -8722, 0.596200, -0.337381, -0.303779, -0.662147 -8723, 0.596200, -0.337381, -0.303779, -0.662147 -8724, 0.596200, -0.337381, -0.303779, -0.662147 -8725, 0.596200, -0.337381, -0.303779, -0.662147 -8726, 0.596200, -0.337381, -0.303779, -0.662147 -8727, 0.596200, -0.337381, -0.303779, -0.662147 -8728, 0.596200, -0.337381, -0.303779, -0.662147 -8729, 0.596200, -0.337381, -0.303779, -0.662147 -8730, 0.596200, -0.337381, -0.303779, -0.662147 -8731, 0.596200, -0.337381, -0.303779, -0.662147 -8732, 0.596200, -0.337381, -0.303779, -0.662147 -8733, 0.596200, -0.337381, -0.303779, -0.662147 -8734, 0.596200, -0.337381, -0.303779, -0.662147 -8735, 0.596200, -0.337381, -0.303779, -0.662147 -8736, 0.596200, -0.337381, -0.303779, -0.662147 -8737, 0.596200, -0.337381, -0.303779, -0.662147 -8738, 0.596200, -0.337381, -0.303779, -0.662147 -8739, 0.596200, -0.337381, -0.303779, -0.662147 -8740, 0.596200, -0.337381, -0.303779, -0.662147 -8741, 0.596200, -0.337381, -0.303779, -0.662147 -8742, 0.596200, -0.337381, -0.303779, -0.662147 -8743, 0.596200, -0.337381, -0.303779, -0.662147 -8744, 0.596200, -0.337381, -0.303779, -0.662147 -8745, 0.596200, -0.337381, -0.303779, -0.662147 -8746, 0.596200, -0.337381, -0.303779, -0.662147 -8747, 0.596200, -0.337381, -0.303779, -0.662147 -8748, 0.596200, -0.337381, -0.303779, -0.662147 -8749, 0.596200, -0.337381, -0.303779, -0.662147 -8750, 0.596200, -0.337381, -0.303779, -0.662147 -8751, 0.596200, -0.337381, -0.303779, -0.662147 -8752, 0.596200, -0.337381, -0.303779, -0.662147 -8753, 0.596200, -0.337381, -0.303779, -0.662147 -8754, 0.596200, -0.337381, -0.303779, -0.662147 -8755, 0.596200, -0.337381, -0.303779, -0.662147 -8756, 0.596200, -0.337381, -0.303779, -0.662147 -8757, 0.596200, -0.337381, -0.303779, -0.662147 -8758, 0.596200, -0.337381, -0.303779, -0.662147 -8759, 0.596200, -0.337381, -0.303779, -0.662147 -8760, 0.596200, -0.337381, -0.303779, -0.662147 -8761, 0.596200, -0.337381, -0.303779, -0.662147 -8762, 0.596200, -0.337381, -0.303779, -0.662147 -8763, 0.596200, -0.337381, -0.303779, -0.662147 -8764, 0.596200, -0.337381, -0.303779, -0.662147 -8765, 0.596200, -0.337381, -0.303779, -0.662147 -8766, 0.596200, -0.337381, -0.303779, -0.662147 -8767, 0.596200, -0.337381, -0.303779, -0.662147 -8768, 0.596200, -0.337381, -0.303779, -0.662147 -8769, 0.596200, -0.337381, -0.303779, -0.662147 -8770, 0.596200, -0.337381, -0.303779, -0.662147 -8771, 0.596200, -0.337381, -0.303779, -0.662147 -8772, 0.596200, -0.337381, -0.303779, -0.662147 -8773, 0.596200, -0.337381, -0.303779, -0.662147 -8774, 0.596200, -0.337381, -0.303779, -0.662147 -8775, 0.596200, -0.337381, -0.303779, -0.662147 -8776, 0.596200, -0.337381, -0.303779, -0.662147 -8777, 0.596200, -0.337381, -0.303779, -0.662147 -8778, 0.596200, -0.337381, -0.303779, -0.662147 -8779, 0.596200, -0.337381, -0.303779, -0.662147 -8780, 0.596200, -0.337381, -0.303779, -0.662147 -8781, 0.596200, -0.337381, -0.303779, -0.662147 -8782, 0.596200, -0.337381, -0.303779, -0.662147 -8783, 0.596200, -0.337381, -0.303779, -0.662147 -8784, 0.596200, -0.337381, -0.303779, -0.662147 -8785, 0.596200, -0.337381, -0.303779, -0.662147 -8786, 0.596200, -0.337381, -0.303779, -0.662147 -8787, 0.596200, -0.337381, -0.303779, -0.662147 -8788, 0.596200, -0.337381, -0.303779, -0.662147 -8789, 0.596200, -0.337381, -0.303779, -0.662147 -8790, 0.596200, -0.337381, -0.303779, -0.662147 -8791, 0.596200, -0.337381, -0.303779, -0.662147 -8792, 0.596200, -0.337381, -0.303779, -0.662147 -8793, 0.596200, -0.337381, -0.303779, -0.662147 -8794, 0.596200, -0.337381, -0.303779, -0.662147 -8795, 0.596200, -0.337381, -0.303779, -0.662147 -8796, 0.596200, -0.337381, -0.303779, -0.662147 -8797, 0.596200, -0.337381, -0.303779, -0.662147 -8798, 0.596200, -0.337381, -0.303779, -0.662147 -8799, 0.596200, -0.337381, -0.303779, -0.662147 -8800, 0.615562, -0.314856, -0.293608, -0.660109 -8801, 0.615562, -0.314856, -0.293608, -0.660109 -8802, 0.615562, -0.314856, -0.293608, -0.660109 -8803, 0.615562, -0.314856, -0.293608, -0.660109 -8804, 0.615562, -0.314856, -0.293608, -0.660109 -8805, 0.615562, -0.314856, -0.293608, -0.660109 -8806, 0.615562, -0.314856, -0.293608, -0.660109 -8807, 0.615562, -0.314856, -0.293608, -0.660109 -8808, 0.615562, -0.314856, -0.293608, -0.660109 -8809, 0.615562, -0.314856, -0.293608, -0.660109 -8810, 0.615562, -0.314856, -0.293608, -0.660109 -8811, 0.615562, -0.314856, -0.293608, -0.660109 -8812, 0.615562, -0.314856, -0.293608, -0.660109 -8813, 0.615562, -0.314856, -0.293608, -0.660109 -8814, 0.615562, -0.314856, -0.293608, -0.660109 -8815, 0.615562, -0.314856, -0.293608, -0.660109 -8816, 0.615562, -0.314856, -0.293608, -0.660109 -8817, 0.615562, -0.314856, -0.293608, -0.660109 -8818, 0.615562, -0.314856, -0.293608, -0.660109 -8819, 0.615562, -0.314856, -0.293608, -0.660109 -8820, 0.615562, -0.314856, -0.293608, -0.660109 -8821, 0.615562, -0.314856, -0.293608, -0.660109 -8822, 0.615562, -0.314856, -0.293608, -0.660109 -8823, 0.615562, -0.314856, -0.293608, -0.660109 -8824, 0.615562, -0.314856, -0.293608, -0.660109 -8825, 0.615562, -0.314856, -0.293608, -0.660109 -8826, 0.615562, -0.314856, -0.293608, -0.660109 -8827, 0.615562, -0.314856, -0.293608, -0.660109 -8828, 0.615562, -0.314856, -0.293608, -0.660109 -8829, 0.615562, -0.314856, -0.293608, -0.660109 -8830, 0.615562, -0.314856, -0.293608, -0.660109 -8831, 0.615562, -0.314856, -0.293608, -0.660109 -8832, 0.615562, -0.314856, -0.293608, -0.660109 -8833, 0.615562, -0.314856, -0.293608, -0.660109 -8834, 0.615562, -0.314856, -0.293608, -0.660109 -8835, 0.615562, -0.314856, -0.293608, -0.660109 -8836, 0.615562, -0.314856, -0.293608, -0.660109 -8837, 0.615562, -0.314856, -0.293608, -0.660109 -8838, 0.615562, -0.314856, -0.293608, -0.660109 -8839, 0.615562, -0.314856, -0.293608, -0.660109 -8840, 0.615562, -0.314856, -0.293608, -0.660109 -8841, 0.615562, -0.314856, -0.293608, -0.660109 -8842, 0.615562, -0.314856, -0.293608, -0.660109 -8843, 0.615562, -0.314856, -0.293608, -0.660109 -8844, 0.615562, -0.314856, -0.293608, -0.660109 -8845, 0.615562, -0.314856, -0.293608, -0.660109 -8846, 0.615562, -0.314856, -0.293608, -0.660109 -8847, 0.615562, -0.314856, -0.293608, -0.660109 -8848, 0.615562, -0.314856, -0.293608, -0.660109 -8849, 0.615562, -0.314856, -0.293608, -0.660109 -8850, 0.615562, -0.314856, -0.293608, -0.660109 -8851, 0.615562, -0.314856, -0.293608, -0.660109 -8852, 0.615562, -0.314856, -0.293608, -0.660109 -8853, 0.615562, -0.314856, -0.293608, -0.660109 -8854, 0.615562, -0.314856, -0.293608, -0.660109 -8855, 0.615562, -0.314856, -0.293608, -0.660109 -8856, 0.615562, -0.314856, -0.293608, -0.660109 -8857, 0.615562, -0.314856, -0.293608, -0.660109 -8858, 0.615562, -0.314856, -0.293608, -0.660109 -8859, 0.615562, -0.314856, -0.293608, -0.660109 -8860, 0.615562, -0.314856, -0.293608, -0.660109 -8861, 0.615562, -0.314856, -0.293608, -0.660109 -8862, 0.615562, -0.314856, -0.293608, -0.660109 -8863, 0.615562, -0.314856, -0.293608, -0.660109 -8864, 0.615562, -0.314856, -0.293608, -0.660109 -8865, 0.615562, -0.314856, -0.293608, -0.660109 -8866, 0.615562, -0.314856, -0.293608, -0.660109 -8867, 0.615562, -0.314856, -0.293608, -0.660109 -8868, 0.615562, -0.314856, -0.293608, -0.660109 -8869, 0.615562, -0.314856, -0.293608, -0.660109 -8870, 0.615562, -0.314856, -0.293608, -0.660109 -8871, 0.615562, -0.314856, -0.293608, -0.660109 -8872, 0.615562, -0.314856, -0.293608, -0.660109 -8873, 0.615562, -0.314856, -0.293608, -0.660109 -8874, 0.615562, -0.314856, -0.293608, -0.660109 -8875, 0.615562, -0.314856, -0.293608, -0.660109 -8876, 0.615562, -0.314856, -0.293608, -0.660109 -8877, 0.615562, -0.314856, -0.293608, -0.660109 -8878, 0.615562, -0.314856, -0.293608, -0.660109 -8879, 0.615562, -0.314856, -0.293608, -0.660109 -8880, 0.615562, -0.314856, -0.293608, -0.660109 -8881, 0.615562, -0.314856, -0.293608, -0.660109 -8882, 0.615562, -0.314856, -0.293608, -0.660109 -8883, 0.615562, -0.314856, -0.293608, -0.660109 -8884, 0.615562, -0.314856, -0.293608, -0.660109 -8885, 0.615562, -0.314856, -0.293608, -0.660109 -8886, 0.615562, -0.314856, -0.293608, -0.660109 -8887, 0.615562, -0.314856, -0.293608, -0.660109 -8888, 0.615562, -0.314856, -0.293608, -0.660109 -8889, 0.615562, -0.314856, -0.293608, -0.660109 -8890, 0.615562, -0.314856, -0.293608, -0.660109 -8891, 0.615562, -0.314856, -0.293608, -0.660109 -8892, 0.615562, -0.314856, -0.293608, -0.660109 -8893, 0.615562, -0.314856, -0.293608, -0.660109 -8894, 0.615562, -0.314856, -0.293608, -0.660109 -8895, 0.615562, -0.314856, -0.293608, -0.660109 -8896, 0.615562, -0.314856, -0.293608, -0.660109 -8897, 0.615562, -0.314856, -0.293608, -0.660109 -8898, 0.615562, -0.314856, -0.293608, -0.660109 -8899, 0.615562, -0.314856, -0.293608, -0.660109 -8900, 0.634602, -0.292582, -0.282543, -0.657150 -8901, 0.634602, -0.292582, -0.282543, -0.657150 -8902, 0.634602, -0.292582, -0.282543, -0.657150 -8903, 0.634602, -0.292582, -0.282543, -0.657150 -8904, 0.634602, -0.292582, -0.282543, -0.657150 -8905, 0.634602, -0.292582, -0.282543, -0.657150 -8906, 0.634602, -0.292582, -0.282543, -0.657150 -8907, 0.634602, -0.292582, -0.282543, -0.657150 -8908, 0.634602, -0.292582, -0.282543, -0.657150 -8909, 0.634602, -0.292582, -0.282543, -0.657150 -8910, 0.634602, -0.292582, -0.282543, -0.657150 -8911, 0.634602, -0.292582, -0.282543, -0.657150 -8912, 0.634602, -0.292582, -0.282543, -0.657150 -8913, 0.634602, -0.292582, -0.282543, -0.657150 -8914, 0.634602, -0.292582, -0.282543, -0.657150 -8915, 0.634602, -0.292582, -0.282543, -0.657150 -8916, 0.634602, -0.292582, -0.282543, -0.657150 -8917, 0.634602, -0.292582, -0.282543, -0.657150 -8918, 0.634602, -0.292582, -0.282543, -0.657150 -8919, 0.634602, -0.292582, -0.282543, -0.657150 -8920, 0.634602, -0.292582, -0.282543, -0.657150 -8921, 0.634602, -0.292582, -0.282543, -0.657150 -8922, 0.634602, -0.292582, -0.282543, -0.657150 -8923, 0.634602, -0.292582, -0.282543, -0.657150 -8924, 0.634602, -0.292582, -0.282543, -0.657150 -8925, 0.634602, -0.292582, -0.282543, -0.657150 -8926, 0.634602, -0.292582, -0.282543, -0.657150 -8927, 0.634602, -0.292582, -0.282543, -0.657150 -8928, 0.634602, -0.292582, -0.282543, -0.657150 -8929, 0.634602, -0.292582, -0.282543, -0.657150 -8930, 0.634602, -0.292582, -0.282543, -0.657150 -8931, 0.634602, -0.292582, -0.282543, -0.657150 -8932, 0.634602, -0.292582, -0.282543, -0.657150 -8933, 0.634602, -0.292582, -0.282543, -0.657150 -8934, 0.634602, -0.292582, -0.282543, -0.657150 -8935, 0.634602, -0.292582, -0.282543, -0.657150 -8936, 0.634602, -0.292582, -0.282543, -0.657150 -8937, 0.634602, -0.292582, -0.282543, -0.657150 -8938, 0.634602, -0.292582, -0.282543, -0.657150 -8939, 0.634602, -0.292582, -0.282543, -0.657150 -8940, 0.634602, -0.292582, -0.282543, -0.657150 -8941, 0.634602, -0.292582, -0.282543, -0.657150 -8942, 0.634602, -0.292582, -0.282543, -0.657150 -8943, 0.634602, -0.292582, -0.282543, -0.657150 -8944, 0.634602, -0.292582, -0.282543, -0.657150 -8945, 0.634602, -0.292582, -0.282543, -0.657150 -8946, 0.634602, -0.292582, -0.282543, -0.657150 -8947, 0.634602, -0.292582, -0.282543, -0.657150 -8948, 0.634602, -0.292582, -0.282543, -0.657150 -8949, 0.634602, -0.292582, -0.282543, -0.657150 -8950, 0.634602, -0.292582, -0.282543, -0.657150 -8951, 0.634602, -0.292582, -0.282543, -0.657150 -8952, 0.634602, -0.292582, -0.282543, -0.657150 -8953, 0.634602, -0.292582, -0.282543, -0.657150 -8954, 0.634602, -0.292582, -0.282543, -0.657150 -8955, 0.634602, -0.292582, -0.282543, -0.657150 -8956, 0.634602, -0.292582, -0.282543, -0.657150 -8957, 0.634602, -0.292582, -0.282543, -0.657150 -8958, 0.634602, -0.292582, -0.282543, -0.657150 -8959, 0.634602, -0.292582, -0.282543, -0.657150 -8960, 0.634602, -0.292582, -0.282543, -0.657150 -8961, 0.634602, -0.292582, -0.282543, -0.657150 -8962, 0.634602, -0.292582, -0.282543, -0.657150 -8963, 0.634602, -0.292582, -0.282543, -0.657150 -8964, 0.634602, -0.292582, -0.282543, -0.657150 -8965, 0.634602, -0.292582, -0.282543, -0.657150 -8966, 0.634602, -0.292582, -0.282543, -0.657150 -8967, 0.634602, -0.292582, -0.282543, -0.657150 -8968, 0.634602, -0.292582, -0.282543, -0.657150 -8969, 0.634602, -0.292582, -0.282543, -0.657150 -8970, 0.634602, -0.292582, -0.282543, -0.657150 -8971, 0.634602, -0.292582, -0.282543, -0.657150 -8972, 0.634602, -0.292582, -0.282543, -0.657150 -8973, 0.634602, -0.292582, -0.282543, -0.657150 -8974, 0.634602, -0.292582, -0.282543, -0.657150 -8975, 0.634602, -0.292582, -0.282543, -0.657150 -8976, 0.634602, -0.292582, -0.282543, -0.657150 -8977, 0.634602, -0.292582, -0.282543, -0.657150 -8978, 0.634602, -0.292582, -0.282543, -0.657150 -8979, 0.634602, -0.292582, -0.282543, -0.657150 -8980, 0.634602, -0.292582, -0.282543, -0.657150 -8981, 0.634602, -0.292582, -0.282543, -0.657150 -8982, 0.634602, -0.292582, -0.282543, -0.657150 -8983, 0.634602, -0.292582, -0.282543, -0.657150 -8984, 0.634602, -0.292582, -0.282543, -0.657150 -8985, 0.634602, -0.292582, -0.282543, -0.657150 -8986, 0.634602, -0.292582, -0.282543, -0.657150 -8987, 0.634602, -0.292582, -0.282543, -0.657150 -8988, 0.634602, -0.292582, -0.282543, -0.657150 -8989, 0.634602, -0.292582, -0.282543, -0.657150 -8990, 0.634602, -0.292582, -0.282543, -0.657150 -8991, 0.634602, -0.292582, -0.282543, -0.657150 -8992, 0.634602, -0.292582, -0.282543, -0.657150 -8993, 0.634602, -0.292582, -0.282543, -0.657150 -8994, 0.634602, -0.292582, -0.282543, -0.657150 -8995, 0.634602, -0.292582, -0.282543, -0.657150 -8996, 0.634602, -0.292582, -0.282543, -0.657150 -8997, 0.634602, -0.292582, -0.282543, -0.657150 -8998, 0.634602, -0.292582, -0.282543, -0.657150 -8999, 0.634602, -0.292582, -0.282543, -0.657150 -9000, 0.653281, -0.270598, -0.270598, -0.653281 -9001, 0.653281, -0.270598, -0.270598, -0.653281 -9002, 0.653281, -0.270598, -0.270598, -0.653281 -9003, 0.653281, -0.270598, -0.270598, -0.653281 -9004, 0.653281, -0.270598, -0.270598, -0.653281 -9005, 0.653281, -0.270598, -0.270598, -0.653281 -9006, 0.653281, -0.270598, -0.270598, -0.653281 -9007, 0.653281, -0.270598, -0.270598, -0.653281 -9008, 0.653281, -0.270598, -0.270598, -0.653281 -9009, 0.653281, -0.270598, -0.270598, -0.653281 -9010, 0.653281, -0.270598, -0.270598, -0.653281 -9011, 0.653281, -0.270598, -0.270598, -0.653281 -9012, 0.653281, -0.270598, -0.270598, -0.653281 -9013, 0.653281, -0.270598, -0.270598, -0.653281 -9014, 0.653281, -0.270598, -0.270598, -0.653281 -9015, 0.653281, -0.270598, -0.270598, -0.653281 -9016, 0.653281, -0.270598, -0.270598, -0.653281 -9017, 0.653281, -0.270598, -0.270598, -0.653281 -9018, 0.653281, -0.270598, -0.270598, -0.653281 -9019, 0.653281, -0.270598, -0.270598, -0.653281 -9020, 0.653281, -0.270598, -0.270598, -0.653281 -9021, 0.653281, -0.270598, -0.270598, -0.653281 -9022, 0.653281, -0.270598, -0.270598, -0.653281 -9023, 0.653281, -0.270598, -0.270598, -0.653281 -9024, 0.653281, -0.270598, -0.270598, -0.653281 -9025, 0.653281, -0.270598, -0.270598, -0.653281 -9026, 0.653281, -0.270598, -0.270598, -0.653281 -9027, 0.653281, -0.270598, -0.270598, -0.653281 -9028, 0.653281, -0.270598, -0.270598, -0.653281 -9029, 0.653281, -0.270598, -0.270598, -0.653281 -9030, 0.653281, -0.270598, -0.270598, -0.653281 -9031, 0.653281, -0.270598, -0.270598, -0.653281 -9032, 0.653281, -0.270598, -0.270598, -0.653281 -9033, 0.653281, -0.270598, -0.270598, -0.653281 -9034, 0.653281, -0.270598, -0.270598, -0.653281 -9035, 0.653281, -0.270598, -0.270598, -0.653281 -9036, 0.653281, -0.270598, -0.270598, -0.653281 -9037, 0.653281, -0.270598, -0.270598, -0.653281 -9038, 0.653281, -0.270598, -0.270598, -0.653281 -9039, 0.653281, -0.270598, -0.270598, -0.653281 -9040, 0.653281, -0.270598, -0.270598, -0.653281 -9041, 0.653281, -0.270598, -0.270598, -0.653281 -9042, 0.653281, -0.270598, -0.270598, -0.653281 -9043, 0.653281, -0.270598, -0.270598, -0.653281 -9044, 0.653281, -0.270598, -0.270598, -0.653281 -9045, 0.653281, -0.270598, -0.270598, -0.653281 -9046, 0.653281, -0.270598, -0.270598, -0.653281 -9047, 0.653281, -0.270598, -0.270598, -0.653281 -9048, 0.653281, -0.270598, -0.270598, -0.653281 -9049, 0.653281, -0.270598, -0.270598, -0.653281 -9050, 0.653281, -0.270598, -0.270598, -0.653281 -9051, 0.653281, -0.270598, -0.270598, -0.653281 -9052, 0.653281, -0.270598, -0.270598, -0.653281 -9053, 0.653281, -0.270598, -0.270598, -0.653281 -9054, 0.653281, -0.270598, -0.270598, -0.653281 -9055, 0.653281, -0.270598, -0.270598, -0.653281 -9056, 0.653281, -0.270598, -0.270598, -0.653281 -9057, 0.653281, -0.270598, -0.270598, -0.653281 -9058, 0.653281, -0.270598, -0.270598, -0.653281 -9059, 0.653281, -0.270598, -0.270598, -0.653281 -9060, 0.653281, -0.270598, -0.270598, -0.653281 -9061, 0.653281, -0.270598, -0.270598, -0.653281 -9062, 0.653281, -0.270598, -0.270598, -0.653281 -9063, 0.653281, -0.270598, -0.270598, -0.653281 -9064, 0.653281, -0.270598, -0.270598, -0.653281 -9065, 0.653281, -0.270598, -0.270598, -0.653281 -9066, 0.653281, -0.270598, -0.270598, -0.653281 -9067, 0.653281, -0.270598, -0.270598, -0.653281 -9068, 0.653281, -0.270598, -0.270598, -0.653281 -9069, 0.653281, -0.270598, -0.270598, -0.653281 -9070, 0.653281, -0.270598, -0.270598, -0.653281 -9071, 0.653281, -0.270598, -0.270598, -0.653281 -9072, 0.653281, -0.270598, -0.270598, -0.653281 -9073, 0.653281, -0.270598, -0.270598, -0.653281 -9074, 0.653281, -0.270598, -0.270598, -0.653281 -9075, 0.653281, -0.270598, -0.270598, -0.653281 -9076, 0.653281, -0.270598, -0.270598, -0.653281 -9077, 0.653281, -0.270598, -0.270598, -0.653281 -9078, 0.653281, -0.270598, -0.270598, -0.653281 -9079, 0.653281, -0.270598, -0.270598, -0.653281 -9080, 0.653281, -0.270598, -0.270598, -0.653281 -9081, 0.653281, -0.270598, -0.270598, -0.653281 -9082, 0.653281, -0.270598, -0.270598, -0.653281 -9083, 0.653281, -0.270598, -0.270598, -0.653281 -9084, 0.653281, -0.270598, -0.270598, -0.653281 -9085, 0.653281, -0.270598, -0.270598, -0.653281 -9086, 0.653281, -0.270598, -0.270598, -0.653281 -9087, 0.653281, -0.270598, -0.270598, -0.653281 -9088, 0.653281, -0.270598, -0.270598, -0.653281 -9089, 0.653281, -0.270598, -0.270598, -0.653281 -9090, 0.653281, -0.270598, -0.270598, -0.653281 -9091, 0.653281, -0.270598, -0.270598, -0.653281 -9092, 0.653281, -0.270598, -0.270598, -0.653281 -9093, 0.653281, -0.270598, -0.270598, -0.653281 -9094, 0.653281, -0.270598, -0.270598, -0.653281 -9095, 0.653281, -0.270598, -0.270598, -0.653281 -9096, 0.653281, -0.270598, -0.270598, -0.653281 -9097, 0.653281, -0.270598, -0.270598, -0.653281 -9098, 0.653281, -0.270598, -0.270598, -0.653281 -9099, 0.653281, -0.270598, -0.270598, -0.653281 -9100, 0.671562, -0.248943, -0.257788, -0.648519 -9101, 0.671562, -0.248943, -0.257788, -0.648519 -9102, 0.671562, -0.248943, -0.257788, -0.648519 -9103, 0.671562, -0.248943, -0.257788, -0.648519 -9104, 0.671562, -0.248943, -0.257788, -0.648519 -9105, 0.671562, -0.248943, -0.257788, -0.648519 -9106, 0.671562, -0.248943, -0.257788, -0.648519 -9107, 0.671562, -0.248943, -0.257788, -0.648519 -9108, 0.671562, -0.248943, -0.257788, -0.648519 -9109, 0.671562, -0.248943, -0.257788, -0.648519 -9110, 0.671562, -0.248943, -0.257788, -0.648519 -9111, 0.671562, -0.248943, -0.257788, -0.648519 -9112, 0.671562, -0.248943, -0.257788, -0.648519 -9113, 0.671562, -0.248943, -0.257788, -0.648519 -9114, 0.671562, -0.248943, -0.257788, -0.648519 -9115, 0.671562, -0.248943, -0.257788, -0.648519 -9116, 0.671562, -0.248943, -0.257788, -0.648519 -9117, 0.671562, -0.248943, -0.257788, -0.648519 -9118, 0.671562, -0.248943, -0.257788, -0.648519 -9119, 0.671562, -0.248943, -0.257788, -0.648519 -9120, 0.671562, -0.248943, -0.257788, -0.648519 -9121, 0.671562, -0.248943, -0.257788, -0.648519 -9122, 0.671562, -0.248943, -0.257788, -0.648519 -9123, 0.671562, -0.248943, -0.257788, -0.648519 -9124, 0.671562, -0.248943, -0.257788, -0.648519 -9125, 0.671562, -0.248943, -0.257788, -0.648519 -9126, 0.671562, -0.248943, -0.257788, -0.648519 -9127, 0.671562, -0.248943, -0.257788, -0.648519 -9128, 0.671562, -0.248943, -0.257788, -0.648519 -9129, 0.671562, -0.248943, -0.257788, -0.648519 -9130, 0.671562, -0.248943, -0.257788, -0.648519 -9131, 0.671562, -0.248943, -0.257788, -0.648519 -9132, 0.671562, -0.248943, -0.257788, -0.648519 -9133, 0.671562, -0.248943, -0.257788, -0.648519 -9134, 0.671562, -0.248943, -0.257788, -0.648519 -9135, 0.671562, -0.248943, -0.257788, -0.648519 -9136, 0.671562, -0.248943, -0.257788, -0.648519 -9137, 0.671562, -0.248943, -0.257788, -0.648519 -9138, 0.671562, -0.248943, -0.257788, -0.648519 -9139, 0.671562, -0.248943, -0.257788, -0.648519 -9140, 0.671562, -0.248943, -0.257788, -0.648519 -9141, 0.671562, -0.248943, -0.257788, -0.648519 -9142, 0.671562, -0.248943, -0.257788, -0.648519 -9143, 0.671562, -0.248943, -0.257788, -0.648519 -9144, 0.671562, -0.248943, -0.257788, -0.648519 -9145, 0.671562, -0.248943, -0.257788, -0.648519 -9146, 0.671562, -0.248943, -0.257788, -0.648519 -9147, 0.671562, -0.248943, -0.257788, -0.648519 -9148, 0.671562, -0.248943, -0.257788, -0.648519 -9149, 0.671562, -0.248943, -0.257788, -0.648519 -9150, 0.671562, -0.248943, -0.257788, -0.648519 -9151, 0.671562, -0.248943, -0.257788, -0.648519 -9152, 0.671562, -0.248943, -0.257788, -0.648519 -9153, 0.671562, -0.248943, -0.257788, -0.648519 -9154, 0.671562, -0.248943, -0.257788, -0.648519 -9155, 0.671562, -0.248943, -0.257788, -0.648519 -9156, 0.671562, -0.248943, -0.257788, -0.648519 -9157, 0.671562, -0.248943, -0.257788, -0.648519 -9158, 0.671562, -0.248943, -0.257788, -0.648519 -9159, 0.671562, -0.248943, -0.257788, -0.648519 -9160, 0.671562, -0.248943, -0.257788, -0.648519 -9161, 0.671562, -0.248943, -0.257788, -0.648519 -9162, 0.671562, -0.248943, -0.257788, -0.648519 -9163, 0.671562, -0.248943, -0.257788, -0.648519 -9164, 0.671562, -0.248943, -0.257788, -0.648519 -9165, 0.671562, -0.248943, -0.257788, -0.648519 -9166, 0.671562, -0.248943, -0.257788, -0.648519 -9167, 0.671562, -0.248943, -0.257788, -0.648519 -9168, 0.671562, -0.248943, -0.257788, -0.648519 -9169, 0.671562, -0.248943, -0.257788, -0.648519 -9170, 0.671562, -0.248943, -0.257788, -0.648519 -9171, 0.671562, -0.248943, -0.257788, -0.648519 -9172, 0.671562, -0.248943, -0.257788, -0.648519 -9173, 0.671562, -0.248943, -0.257788, -0.648519 -9174, 0.671562, -0.248943, -0.257788, -0.648519 -9175, 0.671562, -0.248943, -0.257788, -0.648519 -9176, 0.671562, -0.248943, -0.257788, -0.648519 -9177, 0.671562, -0.248943, -0.257788, -0.648519 -9178, 0.671562, -0.248943, -0.257788, -0.648519 -9179, 0.671562, -0.248943, -0.257788, -0.648519 -9180, 0.671562, -0.248943, -0.257788, -0.648519 -9181, 0.671562, -0.248943, -0.257788, -0.648519 -9182, 0.671562, -0.248943, -0.257788, -0.648519 -9183, 0.671562, -0.248943, -0.257788, -0.648519 -9184, 0.671562, -0.248943, -0.257788, -0.648519 -9185, 0.671562, -0.248943, -0.257788, -0.648519 -9186, 0.671562, -0.248943, -0.257788, -0.648519 -9187, 0.671562, -0.248943, -0.257788, -0.648519 -9188, 0.671562, -0.248943, -0.257788, -0.648519 -9189, 0.671562, -0.248943, -0.257788, -0.648519 -9190, 0.671562, -0.248943, -0.257788, -0.648519 -9191, 0.671562, -0.248943, -0.257788, -0.648519 -9192, 0.671562, -0.248943, -0.257788, -0.648519 -9193, 0.671562, -0.248943, -0.257788, -0.648519 -9194, 0.671562, -0.248943, -0.257788, -0.648519 -9195, 0.671562, -0.248943, -0.257788, -0.648519 -9196, 0.671562, -0.248943, -0.257788, -0.648519 -9197, 0.671562, -0.248943, -0.257788, -0.648519 -9198, 0.671562, -0.248943, -0.257788, -0.648519 -9199, 0.671562, -0.248943, -0.257788, -0.648519 -9200, 0.689404, -0.227656, -0.244131, -0.642880 -9201, 0.689404, -0.227656, -0.244131, -0.642880 -9202, 0.689404, -0.227656, -0.244131, -0.642880 -9203, 0.689404, -0.227656, -0.244131, -0.642880 -9204, 0.689404, -0.227656, -0.244131, -0.642880 -9205, 0.689404, -0.227656, -0.244131, -0.642880 -9206, 0.689404, -0.227656, -0.244131, -0.642880 -9207, 0.689404, -0.227656, -0.244131, -0.642880 -9208, 0.689404, -0.227656, -0.244131, -0.642880 -9209, 0.689404, -0.227656, -0.244131, -0.642880 -9210, 0.689404, -0.227656, -0.244131, -0.642880 -9211, 0.689404, -0.227656, -0.244131, -0.642880 -9212, 0.689404, -0.227656, -0.244131, -0.642880 -9213, 0.689404, -0.227656, -0.244131, -0.642880 -9214, 0.689404, -0.227656, -0.244131, -0.642880 -9215, 0.689404, -0.227656, -0.244131, -0.642880 -9216, 0.689404, -0.227656, -0.244131, -0.642880 -9217, 0.689404, -0.227656, -0.244131, -0.642880 -9218, 0.689404, -0.227656, -0.244131, -0.642880 -9219, 0.689404, -0.227656, -0.244131, -0.642880 -9220, 0.689404, -0.227656, -0.244131, -0.642880 -9221, 0.689404, -0.227656, -0.244131, -0.642880 -9222, 0.689404, -0.227656, -0.244131, -0.642880 -9223, 0.689404, -0.227656, -0.244131, -0.642880 -9224, 0.689404, -0.227656, -0.244131, -0.642880 -9225, 0.689404, -0.227656, -0.244131, -0.642880 -9226, 0.689404, -0.227656, -0.244131, -0.642880 -9227, 0.689404, -0.227656, -0.244131, -0.642880 -9228, 0.689404, -0.227656, -0.244131, -0.642880 -9229, 0.689404, -0.227656, -0.244131, -0.642880 -9230, 0.689404, -0.227656, -0.244131, -0.642880 -9231, 0.689404, -0.227656, -0.244131, -0.642880 -9232, 0.689404, -0.227656, -0.244131, -0.642880 -9233, 0.689404, -0.227656, -0.244131, -0.642880 -9234, 0.689404, -0.227656, -0.244131, -0.642880 -9235, 0.689404, -0.227656, -0.244131, -0.642880 -9236, 0.689404, -0.227656, -0.244131, -0.642880 -9237, 0.689404, -0.227656, -0.244131, -0.642880 -9238, 0.689404, -0.227656, -0.244131, -0.642880 -9239, 0.689404, -0.227656, -0.244131, -0.642880 -9240, 0.689404, -0.227656, -0.244131, -0.642880 -9241, 0.689404, -0.227656, -0.244131, -0.642880 -9242, 0.689404, -0.227656, -0.244131, -0.642880 -9243, 0.689404, -0.227656, -0.244131, -0.642880 -9244, 0.689404, -0.227656, -0.244131, -0.642880 -9245, 0.689404, -0.227656, -0.244131, -0.642880 -9246, 0.689404, -0.227656, -0.244131, -0.642880 -9247, 0.689404, -0.227656, -0.244131, -0.642880 -9248, 0.689404, -0.227656, -0.244131, -0.642880 -9249, 0.689404, -0.227656, -0.244131, -0.642880 -9250, 0.689404, -0.227656, -0.244131, -0.642880 -9251, 0.689404, -0.227656, -0.244131, -0.642880 -9252, 0.689404, -0.227656, -0.244131, -0.642880 -9253, 0.689404, -0.227656, -0.244131, -0.642880 -9254, 0.689404, -0.227656, -0.244131, -0.642880 -9255, 0.689404, -0.227656, -0.244131, -0.642880 -9256, 0.689404, -0.227656, -0.244131, -0.642880 -9257, 0.689404, -0.227656, -0.244131, -0.642880 -9258, 0.689404, -0.227656, -0.244131, -0.642880 -9259, 0.689404, -0.227656, -0.244131, -0.642880 -9260, 0.689404, -0.227656, -0.244131, -0.642880 -9261, 0.689404, -0.227656, -0.244131, -0.642880 -9262, 0.689404, -0.227656, -0.244131, -0.642880 -9263, 0.689404, -0.227656, -0.244131, -0.642880 -9264, 0.689404, -0.227656, -0.244131, -0.642880 -9265, 0.689404, -0.227656, -0.244131, -0.642880 -9266, 0.689404, -0.227656, -0.244131, -0.642880 -9267, 0.689404, -0.227656, -0.244131, -0.642880 -9268, 0.689404, -0.227656, -0.244131, -0.642880 -9269, 0.689404, -0.227656, -0.244131, -0.642880 -9270, 0.689404, -0.227656, -0.244131, -0.642880 -9271, 0.689404, -0.227656, -0.244131, -0.642880 -9272, 0.689404, -0.227656, -0.244131, -0.642880 -9273, 0.689404, -0.227656, -0.244131, -0.642880 -9274, 0.689404, -0.227656, -0.244131, -0.642880 -9275, 0.689404, -0.227656, -0.244131, -0.642880 -9276, 0.689404, -0.227656, -0.244131, -0.642880 -9277, 0.689404, -0.227656, -0.244131, -0.642880 -9278, 0.689404, -0.227656, -0.244131, -0.642880 -9279, 0.689404, -0.227656, -0.244131, -0.642880 -9280, 0.689404, -0.227656, -0.244131, -0.642880 -9281, 0.689404, -0.227656, -0.244131, -0.642880 -9282, 0.689404, -0.227656, -0.244131, -0.642880 -9283, 0.689404, -0.227656, -0.244131, -0.642880 -9284, 0.689404, -0.227656, -0.244131, -0.642880 -9285, 0.689404, -0.227656, -0.244131, -0.642880 -9286, 0.689404, -0.227656, -0.244131, -0.642880 -9287, 0.689404, -0.227656, -0.244131, -0.642880 -9288, 0.689404, -0.227656, -0.244131, -0.642880 -9289, 0.689404, -0.227656, -0.244131, -0.642880 -9290, 0.689404, -0.227656, -0.244131, -0.642880 -9291, 0.689404, -0.227656, -0.244131, -0.642880 -9292, 0.689404, -0.227656, -0.244131, -0.642880 -9293, 0.689404, -0.227656, -0.244131, -0.642880 -9294, 0.689404, -0.227656, -0.244131, -0.642880 -9295, 0.689404, -0.227656, -0.244131, -0.642880 -9296, 0.689404, -0.227656, -0.244131, -0.642880 -9297, 0.689404, -0.227656, -0.244131, -0.642880 -9298, 0.689404, -0.227656, -0.244131, -0.642880 -9299, 0.689404, -0.227656, -0.244131, -0.642880 -9300, 0.706773, -0.206773, -0.229644, -0.636381 -9301, 0.706773, -0.206773, -0.229644, -0.636381 -9302, 0.706773, -0.206773, -0.229644, -0.636381 -9303, 0.706773, -0.206773, -0.229644, -0.636381 -9304, 0.706773, -0.206773, -0.229644, -0.636381 -9305, 0.706773, -0.206773, -0.229644, -0.636381 -9306, 0.706773, -0.206773, -0.229644, -0.636381 -9307, 0.706773, -0.206773, -0.229644, -0.636381 -9308, 0.706773, -0.206773, -0.229644, -0.636381 -9309, 0.706773, -0.206773, -0.229644, -0.636381 -9310, 0.706773, -0.206773, -0.229644, -0.636381 -9311, 0.706773, -0.206773, -0.229644, -0.636381 -9312, 0.706773, -0.206773, -0.229644, -0.636381 -9313, 0.706773, -0.206773, -0.229644, -0.636381 -9314, 0.706773, -0.206773, -0.229644, -0.636381 -9315, 0.706773, -0.206773, -0.229644, -0.636381 -9316, 0.706773, -0.206773, -0.229644, -0.636381 -9317, 0.706773, -0.206773, -0.229644, -0.636381 -9318, 0.706773, -0.206773, -0.229644, -0.636381 -9319, 0.706773, -0.206773, -0.229644, -0.636381 -9320, 0.706773, -0.206773, -0.229644, -0.636381 -9321, 0.706773, -0.206773, -0.229644, -0.636381 -9322, 0.706773, -0.206773, -0.229644, -0.636381 -9323, 0.706773, -0.206773, -0.229644, -0.636381 -9324, 0.706773, -0.206773, -0.229644, -0.636381 -9325, 0.706773, -0.206773, -0.229644, -0.636381 -9326, 0.706773, -0.206773, -0.229644, -0.636381 -9327, 0.706773, -0.206773, -0.229644, -0.636381 -9328, 0.706773, -0.206773, -0.229644, -0.636381 -9329, 0.706773, -0.206773, -0.229644, -0.636381 -9330, 0.706773, -0.206773, -0.229644, -0.636381 -9331, 0.706773, -0.206773, -0.229644, -0.636381 -9332, 0.706773, -0.206773, -0.229644, -0.636381 -9333, 0.706773, -0.206773, -0.229644, -0.636381 -9334, 0.706773, -0.206773, -0.229644, -0.636381 -9335, 0.706773, -0.206773, -0.229644, -0.636381 -9336, 0.706773, -0.206773, -0.229644, -0.636381 -9337, 0.706773, -0.206773, -0.229644, -0.636381 -9338, 0.706773, -0.206773, -0.229644, -0.636381 -9339, 0.706773, -0.206773, -0.229644, -0.636381 -9340, 0.706773, -0.206773, -0.229644, -0.636381 -9341, 0.706773, -0.206773, -0.229644, -0.636381 -9342, 0.706773, -0.206773, -0.229644, -0.636381 -9343, 0.706773, -0.206773, -0.229644, -0.636381 -9344, 0.706773, -0.206773, -0.229644, -0.636381 -9345, 0.706773, -0.206773, -0.229644, -0.636381 -9346, 0.706773, -0.206773, -0.229644, -0.636381 -9347, 0.706773, -0.206773, -0.229644, -0.636381 -9348, 0.706773, -0.206773, -0.229644, -0.636381 -9349, 0.706773, -0.206773, -0.229644, -0.636381 -9350, 0.706773, -0.206773, -0.229644, -0.636381 -9351, 0.706773, -0.206773, -0.229644, -0.636381 -9352, 0.706773, -0.206773, -0.229644, -0.636381 -9353, 0.706773, -0.206773, -0.229644, -0.636381 -9354, 0.706773, -0.206773, -0.229644, -0.636381 -9355, 0.706773, -0.206773, -0.229644, -0.636381 -9356, 0.706773, -0.206773, -0.229644, -0.636381 -9357, 0.706773, -0.206773, -0.229644, -0.636381 -9358, 0.706773, -0.206773, -0.229644, -0.636381 -9359, 0.706773, -0.206773, -0.229644, -0.636381 -9360, 0.706773, -0.206773, -0.229644, -0.636381 -9361, 0.706773, -0.206773, -0.229644, -0.636381 -9362, 0.706773, -0.206773, -0.229644, -0.636381 -9363, 0.706773, -0.206773, -0.229644, -0.636381 -9364, 0.706773, -0.206773, -0.229644, -0.636381 -9365, 0.706773, -0.206773, -0.229644, -0.636381 -9366, 0.706773, -0.206773, -0.229644, -0.636381 -9367, 0.706773, -0.206773, -0.229644, -0.636381 -9368, 0.706773, -0.206773, -0.229644, -0.636381 -9369, 0.706773, -0.206773, -0.229644, -0.636381 -9370, 0.706773, -0.206773, -0.229644, -0.636381 -9371, 0.706773, -0.206773, -0.229644, -0.636381 -9372, 0.706773, -0.206773, -0.229644, -0.636381 -9373, 0.706773, -0.206773, -0.229644, -0.636381 -9374, 0.706773, -0.206773, -0.229644, -0.636381 -9375, 0.706773, -0.206773, -0.229644, -0.636381 -9376, 0.706773, -0.206773, -0.229644, -0.636381 -9377, 0.706773, -0.206773, -0.229644, -0.636381 -9378, 0.706773, -0.206773, -0.229644, -0.636381 -9379, 0.706773, -0.206773, -0.229644, -0.636381 -9380, 0.706773, -0.206773, -0.229644, -0.636381 -9381, 0.706773, -0.206773, -0.229644, -0.636381 -9382, 0.706773, -0.206773, -0.229644, -0.636381 -9383, 0.706773, -0.206773, -0.229644, -0.636381 -9384, 0.706773, -0.206773, -0.229644, -0.636381 -9385, 0.706773, -0.206773, -0.229644, -0.636381 -9386, 0.706773, -0.206773, -0.229644, -0.636381 -9387, 0.706773, -0.206773, -0.229644, -0.636381 -9388, 0.706773, -0.206773, -0.229644, -0.636381 -9389, 0.706773, -0.206773, -0.229644, -0.636381 -9390, 0.706773, -0.206773, -0.229644, -0.636381 -9391, 0.706773, -0.206773, -0.229644, -0.636381 -9392, 0.706773, -0.206773, -0.229644, -0.636381 -9393, 0.706773, -0.206773, -0.229644, -0.636381 -9394, 0.706773, -0.206773, -0.229644, -0.636381 -9395, 0.706773, -0.206773, -0.229644, -0.636381 -9396, 0.706773, -0.206773, -0.229644, -0.636381 -9397, 0.706773, -0.206773, -0.229644, -0.636381 -9398, 0.706773, -0.206773, -0.229644, -0.636381 -9399, 0.706773, -0.206773, -0.229644, -0.636381 -9400, 0.723630, -0.186331, -0.214349, -0.629042 -9401, 0.723630, -0.186331, -0.214349, -0.629042 -9402, 0.723630, -0.186331, -0.214349, -0.629042 -9403, 0.723630, -0.186331, -0.214349, -0.629042 -9404, 0.723630, -0.186331, -0.214349, -0.629042 -9405, 0.723630, -0.186331, -0.214349, -0.629042 -9406, 0.723630, -0.186331, -0.214349, -0.629042 -9407, 0.723630, -0.186331, -0.214349, -0.629042 -9408, 0.723630, -0.186331, -0.214349, -0.629042 -9409, 0.723630, -0.186331, -0.214349, -0.629042 -9410, 0.723630, -0.186331, -0.214349, -0.629042 -9411, 0.723630, -0.186331, -0.214349, -0.629042 -9412, 0.723630, -0.186331, -0.214349, -0.629042 -9413, 0.723630, -0.186331, -0.214349, -0.629042 -9414, 0.723630, -0.186331, -0.214349, -0.629042 -9415, 0.723630, -0.186331, -0.214349, -0.629042 -9416, 0.723630, -0.186331, -0.214349, -0.629042 -9417, 0.723630, -0.186331, -0.214349, -0.629042 -9418, 0.723630, -0.186331, -0.214349, -0.629042 -9419, 0.723630, -0.186331, -0.214349, -0.629042 -9420, 0.723630, -0.186331, -0.214349, -0.629042 -9421, 0.723630, -0.186331, -0.214349, -0.629042 -9422, 0.723630, -0.186331, -0.214349, -0.629042 -9423, 0.723630, -0.186331, -0.214349, -0.629042 -9424, 0.723630, -0.186331, -0.214349, -0.629042 -9425, 0.723630, -0.186331, -0.214349, -0.629042 -9426, 0.723630, -0.186331, -0.214349, -0.629042 -9427, 0.723630, -0.186331, -0.214349, -0.629042 -9428, 0.723630, -0.186331, -0.214349, -0.629042 -9429, 0.723630, -0.186331, -0.214349, -0.629042 -9430, 0.723630, -0.186331, -0.214349, -0.629042 -9431, 0.723630, -0.186331, -0.214349, -0.629042 -9432, 0.723630, -0.186331, -0.214349, -0.629042 -9433, 0.723630, -0.186331, -0.214349, -0.629042 -9434, 0.723630, -0.186331, -0.214349, -0.629042 -9435, 0.723630, -0.186331, -0.214349, -0.629042 -9436, 0.723630, -0.186331, -0.214349, -0.629042 -9437, 0.723630, -0.186331, -0.214349, -0.629042 -9438, 0.723630, -0.186331, -0.214349, -0.629042 -9439, 0.723630, -0.186331, -0.214349, -0.629042 -9440, 0.723630, -0.186331, -0.214349, -0.629042 -9441, 0.723630, -0.186331, -0.214349, -0.629042 -9442, 0.723630, -0.186331, -0.214349, -0.629042 -9443, 0.723630, -0.186331, -0.214349, -0.629042 -9444, 0.723630, -0.186331, -0.214349, -0.629042 -9445, 0.723630, -0.186331, -0.214349, -0.629042 -9446, 0.723630, -0.186331, -0.214349, -0.629042 -9447, 0.723630, -0.186331, -0.214349, -0.629042 -9448, 0.723630, -0.186331, -0.214349, -0.629042 -9449, 0.723630, -0.186331, -0.214349, -0.629042 -9450, 0.723630, -0.186331, -0.214349, -0.629042 -9451, 0.723630, -0.186331, -0.214349, -0.629042 -9452, 0.723630, -0.186331, -0.214349, -0.629042 -9453, 0.723630, -0.186331, -0.214349, -0.629042 -9454, 0.723630, -0.186331, -0.214349, -0.629042 -9455, 0.723630, -0.186331, -0.214349, -0.629042 -9456, 0.723630, -0.186331, -0.214349, -0.629042 -9457, 0.723630, -0.186331, -0.214349, -0.629042 -9458, 0.723630, -0.186331, -0.214349, -0.629042 -9459, 0.723630, -0.186331, -0.214349, -0.629042 -9460, 0.723630, -0.186331, -0.214349, -0.629042 -9461, 0.723630, -0.186331, -0.214349, -0.629042 -9462, 0.723630, -0.186331, -0.214349, -0.629042 -9463, 0.723630, -0.186331, -0.214349, -0.629042 -9464, 0.723630, -0.186331, -0.214349, -0.629042 -9465, 0.723630, -0.186331, -0.214349, -0.629042 -9466, 0.723630, -0.186331, -0.214349, -0.629042 -9467, 0.723630, -0.186331, -0.214349, -0.629042 -9468, 0.723630, -0.186331, -0.214349, -0.629042 -9469, 0.723630, -0.186331, -0.214349, -0.629042 -9470, 0.723630, -0.186331, -0.214349, -0.629042 -9471, 0.723630, -0.186331, -0.214349, -0.629042 -9472, 0.723630, -0.186331, -0.214349, -0.629042 -9473, 0.723630, -0.186331, -0.214349, -0.629042 -9474, 0.723630, -0.186331, -0.214349, -0.629042 -9475, 0.723630, -0.186331, -0.214349, -0.629042 -9476, 0.723630, -0.186331, -0.214349, -0.629042 -9477, 0.723630, -0.186331, -0.214349, -0.629042 -9478, 0.723630, -0.186331, -0.214349, -0.629042 -9479, 0.723630, -0.186331, -0.214349, -0.629042 -9480, 0.723630, -0.186331, -0.214349, -0.629042 -9481, 0.723630, -0.186331, -0.214349, -0.629042 -9482, 0.723630, -0.186331, -0.214349, -0.629042 -9483, 0.723630, -0.186331, -0.214349, -0.629042 -9484, 0.723630, -0.186331, -0.214349, -0.629042 -9485, 0.723630, -0.186331, -0.214349, -0.629042 -9486, 0.723630, -0.186331, -0.214349, -0.629042 -9487, 0.723630, -0.186331, -0.214349, -0.629042 -9488, 0.723630, -0.186331, -0.214349, -0.629042 -9489, 0.723630, -0.186331, -0.214349, -0.629042 -9490, 0.723630, -0.186331, -0.214349, -0.629042 -9491, 0.723630, -0.186331, -0.214349, -0.629042 -9492, 0.723630, -0.186331, -0.214349, -0.629042 -9493, 0.723630, -0.186331, -0.214349, -0.629042 -9494, 0.723630, -0.186331, -0.214349, -0.629042 -9495, 0.723630, -0.186331, -0.214349, -0.629042 -9496, 0.723630, -0.186331, -0.214349, -0.629042 -9497, 0.723630, -0.186331, -0.214349, -0.629042 -9498, 0.723630, -0.186331, -0.214349, -0.629042 -9499, 0.723630, -0.186331, -0.214349, -0.629042 -9500, 0.739942, -0.166366, -0.198267, -0.620885 -9501, 0.739942, -0.166366, -0.198267, -0.620885 -9502, 0.739942, -0.166366, -0.198267, -0.620885 -9503, 0.739942, -0.166366, -0.198267, -0.620885 -9504, 0.739942, -0.166366, -0.198267, -0.620885 -9505, 0.739942, -0.166366, -0.198267, -0.620885 -9506, 0.739942, -0.166366, -0.198267, -0.620885 -9507, 0.739942, -0.166366, -0.198267, -0.620885 -9508, 0.739942, -0.166366, -0.198267, -0.620885 -9509, 0.739942, -0.166366, -0.198267, -0.620885 -9510, 0.739942, -0.166366, -0.198267, -0.620885 -9511, 0.739942, -0.166366, -0.198267, -0.620885 -9512, 0.739942, -0.166366, -0.198267, -0.620885 -9513, 0.739942, -0.166366, -0.198267, -0.620885 -9514, 0.739942, -0.166366, -0.198267, -0.620885 -9515, 0.739942, -0.166366, -0.198267, -0.620885 -9516, 0.739942, -0.166366, -0.198267, -0.620885 -9517, 0.739942, -0.166366, -0.198267, -0.620885 -9518, 0.739942, -0.166366, -0.198267, -0.620885 -9519, 0.739942, -0.166366, -0.198267, -0.620885 -9520, 0.739942, -0.166366, -0.198267, -0.620885 -9521, 0.739942, -0.166366, -0.198267, -0.620885 -9522, 0.739942, -0.166366, -0.198267, -0.620885 -9523, 0.739942, -0.166366, -0.198267, -0.620885 -9524, 0.739942, -0.166366, -0.198267, -0.620885 -9525, 0.739942, -0.166366, -0.198267, -0.620885 -9526, 0.739942, -0.166366, -0.198267, -0.620885 -9527, 0.739942, -0.166366, -0.198267, -0.620885 -9528, 0.739942, -0.166366, -0.198267, -0.620885 -9529, 0.739942, -0.166366, -0.198267, -0.620885 -9530, 0.739942, -0.166366, -0.198267, -0.620885 -9531, 0.739942, -0.166366, -0.198267, -0.620885 -9532, 0.739942, -0.166366, -0.198267, -0.620885 -9533, 0.739942, -0.166366, -0.198267, -0.620885 -9534, 0.739942, -0.166366, -0.198267, -0.620885 -9535, 0.739942, -0.166366, -0.198267, -0.620885 -9536, 0.739942, -0.166366, -0.198267, -0.620885 -9537, 0.739942, -0.166366, -0.198267, -0.620885 -9538, 0.739942, -0.166366, -0.198267, -0.620885 -9539, 0.739942, -0.166366, -0.198267, -0.620885 -9540, 0.739942, -0.166366, -0.198267, -0.620885 -9541, 0.739942, -0.166366, -0.198267, -0.620885 -9542, 0.739942, -0.166366, -0.198267, -0.620885 -9543, 0.739942, -0.166366, -0.198267, -0.620885 -9544, 0.739942, -0.166366, -0.198267, -0.620885 -9545, 0.739942, -0.166366, -0.198267, -0.620885 -9546, 0.739942, -0.166366, -0.198267, -0.620885 -9547, 0.739942, -0.166366, -0.198267, -0.620885 -9548, 0.739942, -0.166366, -0.198267, -0.620885 -9549, 0.739942, -0.166366, -0.198267, -0.620885 -9550, 0.739942, -0.166366, -0.198267, -0.620885 -9551, 0.739942, -0.166366, -0.198267, -0.620885 -9552, 0.739942, -0.166366, -0.198267, -0.620885 -9553, 0.739942, -0.166366, -0.198267, -0.620885 -9554, 0.739942, -0.166366, -0.198267, -0.620885 -9555, 0.739942, -0.166366, -0.198267, -0.620885 -9556, 0.739942, -0.166366, -0.198267, -0.620885 -9557, 0.739942, -0.166366, -0.198267, -0.620885 -9558, 0.739942, -0.166366, -0.198267, -0.620885 -9559, 0.739942, -0.166366, -0.198267, -0.620885 -9560, 0.739942, -0.166366, -0.198267, -0.620885 -9561, 0.739942, -0.166366, -0.198267, -0.620885 -9562, 0.739942, -0.166366, -0.198267, -0.620885 -9563, 0.739942, -0.166366, -0.198267, -0.620885 -9564, 0.739942, -0.166366, -0.198267, -0.620885 -9565, 0.739942, -0.166366, -0.198267, -0.620885 -9566, 0.739942, -0.166366, -0.198267, -0.620885 -9567, 0.739942, -0.166366, -0.198267, -0.620885 -9568, 0.739942, -0.166366, -0.198267, -0.620885 -9569, 0.739942, -0.166366, -0.198267, -0.620885 -9570, 0.739942, -0.166366, -0.198267, -0.620885 -9571, 0.739942, -0.166366, -0.198267, -0.620885 -9572, 0.739942, -0.166366, -0.198267, -0.620885 -9573, 0.739942, -0.166366, -0.198267, -0.620885 -9574, 0.739942, -0.166366, -0.198267, -0.620885 -9575, 0.739942, -0.166366, -0.198267, -0.620885 -9576, 0.739942, -0.166366, -0.198267, -0.620885 -9577, 0.739942, -0.166366, -0.198267, -0.620885 -9578, 0.739942, -0.166366, -0.198267, -0.620885 -9579, 0.739942, -0.166366, -0.198267, -0.620885 -9580, 0.739942, -0.166366, -0.198267, -0.620885 -9581, 0.739942, -0.166366, -0.198267, -0.620885 -9582, 0.739942, -0.166366, -0.198267, -0.620885 -9583, 0.739942, -0.166366, -0.198267, -0.620885 -9584, 0.739942, -0.166366, -0.198267, -0.620885 -9585, 0.739942, -0.166366, -0.198267, -0.620885 -9586, 0.739942, -0.166366, -0.198267, -0.620885 -9587, 0.739942, -0.166366, -0.198267, -0.620885 -9588, 0.739942, -0.166366, -0.198267, -0.620885 -9589, 0.739942, -0.166366, -0.198267, -0.620885 -9590, 0.739942, -0.166366, -0.198267, -0.620885 -9591, 0.739942, -0.166366, -0.198267, -0.620885 -9592, 0.739942, -0.166366, -0.198267, -0.620885 -9593, 0.739942, -0.166366, -0.198267, -0.620885 -9594, 0.739942, -0.166366, -0.198267, -0.620885 -9595, 0.739942, -0.166366, -0.198267, -0.620885 -9596, 0.739942, -0.166366, -0.198267, -0.620885 -9597, 0.739942, -0.166366, -0.198267, -0.620885 -9598, 0.739942, -0.166366, -0.198267, -0.620885 -9599, 0.739942, -0.166366, -0.198267, -0.620885 -9600, 0.755673, -0.146912, -0.181421, -0.611932 -9601, 0.755673, -0.146912, -0.181421, -0.611932 -9602, 0.755673, -0.146912, -0.181421, -0.611932 -9603, 0.755673, -0.146912, -0.181421, -0.611932 -9604, 0.755673, -0.146912, -0.181421, -0.611932 -9605, 0.755673, -0.146912, -0.181421, -0.611932 -9606, 0.755673, -0.146912, -0.181421, -0.611932 -9607, 0.755673, -0.146912, -0.181421, -0.611932 -9608, 0.755673, -0.146912, -0.181421, -0.611932 -9609, 0.755673, -0.146912, -0.181421, -0.611932 -9610, 0.755673, -0.146912, -0.181421, -0.611932 -9611, 0.755673, -0.146912, -0.181421, -0.611932 -9612, 0.755673, -0.146912, -0.181421, -0.611932 -9613, 0.755673, -0.146912, -0.181421, -0.611932 -9614, 0.755673, -0.146912, -0.181421, -0.611932 -9615, 0.755673, -0.146912, -0.181421, -0.611932 -9616, 0.755673, -0.146912, -0.181421, -0.611932 -9617, 0.755673, -0.146912, -0.181421, -0.611932 -9618, 0.755673, -0.146912, -0.181421, -0.611932 -9619, 0.755673, -0.146912, -0.181421, -0.611932 -9620, 0.755673, -0.146912, -0.181421, -0.611932 -9621, 0.755673, -0.146912, -0.181421, -0.611932 -9622, 0.755673, -0.146912, -0.181421, -0.611932 -9623, 0.755673, -0.146912, -0.181421, -0.611932 -9624, 0.755673, -0.146912, -0.181421, -0.611932 -9625, 0.755673, -0.146912, -0.181421, -0.611932 -9626, 0.755673, -0.146912, -0.181421, -0.611932 -9627, 0.755673, -0.146912, -0.181421, -0.611932 -9628, 0.755673, -0.146912, -0.181421, -0.611932 -9629, 0.755673, -0.146912, -0.181421, -0.611932 -9630, 0.755673, -0.146912, -0.181421, -0.611932 -9631, 0.755673, -0.146912, -0.181421, -0.611932 -9632, 0.755673, -0.146912, -0.181421, -0.611932 -9633, 0.755673, -0.146912, -0.181421, -0.611932 -9634, 0.755673, -0.146912, -0.181421, -0.611932 -9635, 0.755673, -0.146912, -0.181421, -0.611932 -9636, 0.755673, -0.146912, -0.181421, -0.611932 -9637, 0.755673, -0.146912, -0.181421, -0.611932 -9638, 0.755673, -0.146912, -0.181421, -0.611932 -9639, 0.755673, -0.146912, -0.181421, -0.611932 -9640, 0.755673, -0.146912, -0.181421, -0.611932 -9641, 0.755673, -0.146912, -0.181421, -0.611932 -9642, 0.755673, -0.146912, -0.181421, -0.611932 -9643, 0.755673, -0.146912, -0.181421, -0.611932 -9644, 0.755673, -0.146912, -0.181421, -0.611932 -9645, 0.755673, -0.146912, -0.181421, -0.611932 -9646, 0.755673, -0.146912, -0.181421, -0.611932 -9647, 0.755673, -0.146912, -0.181421, -0.611932 -9648, 0.755673, -0.146912, -0.181421, -0.611932 -9649, 0.755673, -0.146912, -0.181421, -0.611932 -9650, 0.755673, -0.146912, -0.181421, -0.611932 -9651, 0.755673, -0.146912, -0.181421, -0.611932 -9652, 0.755673, -0.146912, -0.181421, -0.611932 -9653, 0.755673, -0.146912, -0.181421, -0.611932 -9654, 0.755673, -0.146912, -0.181421, -0.611932 -9655, 0.755673, -0.146912, -0.181421, -0.611932 -9656, 0.755673, -0.146912, -0.181421, -0.611932 -9657, 0.755673, -0.146912, -0.181421, -0.611932 -9658, 0.755673, -0.146912, -0.181421, -0.611932 -9659, 0.755673, -0.146912, -0.181421, -0.611932 -9660, 0.755673, -0.146912, -0.181421, -0.611932 -9661, 0.755673, -0.146912, -0.181421, -0.611932 -9662, 0.755673, -0.146912, -0.181421, -0.611932 -9663, 0.755673, -0.146912, -0.181421, -0.611932 -9664, 0.755673, -0.146912, -0.181421, -0.611932 -9665, 0.755673, -0.146912, -0.181421, -0.611932 -9666, 0.755673, -0.146912, -0.181421, -0.611932 -9667, 0.755673, -0.146912, -0.181421, -0.611932 -9668, 0.755673, -0.146912, -0.181421, -0.611932 -9669, 0.755673, -0.146912, -0.181421, -0.611932 -9670, 0.755673, -0.146912, -0.181421, -0.611932 -9671, 0.755673, -0.146912, -0.181421, -0.611932 -9672, 0.755673, -0.146912, -0.181421, -0.611932 -9673, 0.755673, -0.146912, -0.181421, -0.611932 -9674, 0.755673, -0.146912, -0.181421, -0.611932 -9675, 0.755673, -0.146912, -0.181421, -0.611932 -9676, 0.755673, -0.146912, -0.181421, -0.611932 -9677, 0.755673, -0.146912, -0.181421, -0.611932 -9678, 0.755673, -0.146912, -0.181421, -0.611932 -9679, 0.755673, -0.146912, -0.181421, -0.611932 -9680, 0.755673, -0.146912, -0.181421, -0.611932 -9681, 0.755673, -0.146912, -0.181421, -0.611932 -9682, 0.755673, -0.146912, -0.181421, -0.611932 -9683, 0.755673, -0.146912, -0.181421, -0.611932 -9684, 0.755673, -0.146912, -0.181421, -0.611932 -9685, 0.755673, -0.146912, -0.181421, -0.611932 -9686, 0.755673, -0.146912, -0.181421, -0.611932 -9687, 0.755673, -0.146912, -0.181421, -0.611932 -9688, 0.755673, -0.146912, -0.181421, -0.611932 -9689, 0.755673, -0.146912, -0.181421, -0.611932 -9690, 0.755673, -0.146912, -0.181421, -0.611932 -9691, 0.755673, -0.146912, -0.181421, -0.611932 -9692, 0.755673, -0.146912, -0.181421, -0.611932 -9693, 0.755673, -0.146912, -0.181421, -0.611932 -9694, 0.755673, -0.146912, -0.181421, -0.611932 -9695, 0.755673, -0.146912, -0.181421, -0.611932 -9696, 0.755673, -0.146912, -0.181421, -0.611932 -9697, 0.755673, -0.146912, -0.181421, -0.611932 -9698, 0.755673, -0.146912, -0.181421, -0.611932 -9699, 0.755673, -0.146912, -0.181421, -0.611932 -9700, 0.770791, -0.128003, -0.163837, -0.602208 -9701, 0.770791, -0.128003, -0.163837, -0.602208 -9702, 0.770791, -0.128003, -0.163837, -0.602208 -9703, 0.770791, -0.128003, -0.163837, -0.602208 -9704, 0.770791, -0.128003, -0.163837, -0.602208 -9705, 0.770791, -0.128003, -0.163837, -0.602208 -9706, 0.770791, -0.128003, -0.163837, -0.602208 -9707, 0.770791, -0.128003, -0.163837, -0.602208 -9708, 0.770791, -0.128003, -0.163837, -0.602208 -9709, 0.770791, -0.128003, -0.163837, -0.602208 -9710, 0.770791, -0.128003, -0.163837, -0.602208 -9711, 0.770791, -0.128003, -0.163837, -0.602208 -9712, 0.770791, -0.128003, -0.163837, -0.602208 -9713, 0.770791, -0.128003, -0.163837, -0.602208 -9714, 0.770791, -0.128003, -0.163837, -0.602208 -9715, 0.770791, -0.128003, -0.163837, -0.602208 -9716, 0.770791, -0.128003, -0.163837, -0.602208 -9717, 0.770791, -0.128003, -0.163837, -0.602208 -9718, 0.770791, -0.128003, -0.163837, -0.602208 -9719, 0.770791, -0.128003, -0.163837, -0.602208 -9720, 0.770791, -0.128003, -0.163837, -0.602208 -9721, 0.770791, -0.128003, -0.163837, -0.602208 -9722, 0.770791, -0.128003, -0.163837, -0.602208 -9723, 0.770791, -0.128003, -0.163837, -0.602208 -9724, 0.770791, -0.128003, -0.163837, -0.602208 -9725, 0.770791, -0.128003, -0.163837, -0.602208 -9726, 0.770791, -0.128003, -0.163837, -0.602208 -9727, 0.770791, -0.128003, -0.163837, -0.602208 -9728, 0.770791, -0.128003, -0.163837, -0.602208 -9729, 0.770791, -0.128003, -0.163837, -0.602208 -9730, 0.770791, -0.128003, -0.163837, -0.602208 -9731, 0.770791, -0.128003, -0.163837, -0.602208 -9732, 0.770791, -0.128003, -0.163837, -0.602208 -9733, 0.770791, -0.128003, -0.163837, -0.602208 -9734, 0.770791, -0.128003, -0.163837, -0.602208 -9735, 0.770791, -0.128003, -0.163837, -0.602208 -9736, 0.770791, -0.128003, -0.163837, -0.602208 -9737, 0.770791, -0.128003, -0.163837, -0.602208 -9738, 0.770791, -0.128003, -0.163837, -0.602208 -9739, 0.770791, -0.128003, -0.163837, -0.602208 -9740, 0.770791, -0.128003, -0.163837, -0.602208 -9741, 0.770791, -0.128003, -0.163837, -0.602208 -9742, 0.770791, -0.128003, -0.163837, -0.602208 -9743, 0.770791, -0.128003, -0.163837, -0.602208 -9744, 0.770791, -0.128003, -0.163837, -0.602208 -9745, 0.770791, -0.128003, -0.163837, -0.602208 -9746, 0.770791, -0.128003, -0.163837, -0.602208 -9747, 0.770791, -0.128003, -0.163837, -0.602208 -9748, 0.770791, -0.128003, -0.163837, -0.602208 -9749, 0.770791, -0.128003, -0.163837, -0.602208 -9750, 0.770791, -0.128003, -0.163837, -0.602208 -9751, 0.770791, -0.128003, -0.163837, -0.602208 -9752, 0.770791, -0.128003, -0.163837, -0.602208 -9753, 0.770791, -0.128003, -0.163837, -0.602208 -9754, 0.770791, -0.128003, -0.163837, -0.602208 -9755, 0.770791, -0.128003, -0.163837, -0.602208 -9756, 0.770791, -0.128003, -0.163837, -0.602208 -9757, 0.770791, -0.128003, -0.163837, -0.602208 -9758, 0.770791, -0.128003, -0.163837, -0.602208 -9759, 0.770791, -0.128003, -0.163837, -0.602208 -9760, 0.770791, -0.128003, -0.163837, -0.602208 -9761, 0.770791, -0.128003, -0.163837, -0.602208 -9762, 0.770791, -0.128003, -0.163837, -0.602208 -9763, 0.770791, -0.128003, -0.163837, -0.602208 -9764, 0.770791, -0.128003, -0.163837, -0.602208 -9765, 0.770791, -0.128003, -0.163837, -0.602208 -9766, 0.770791, -0.128003, -0.163837, -0.602208 -9767, 0.770791, -0.128003, -0.163837, -0.602208 -9768, 0.770791, -0.128003, -0.163837, -0.602208 -9769, 0.770791, -0.128003, -0.163837, -0.602208 -9770, 0.770791, -0.128003, -0.163837, -0.602208 -9771, 0.770791, -0.128003, -0.163837, -0.602208 -9772, 0.770791, -0.128003, -0.163837, -0.602208 -9773, 0.770791, -0.128003, -0.163837, -0.602208 -9774, 0.770791, -0.128003, -0.163837, -0.602208 -9775, 0.770791, -0.128003, -0.163837, -0.602208 -9776, 0.770791, -0.128003, -0.163837, -0.602208 -9777, 0.770791, -0.128003, -0.163837, -0.602208 -9778, 0.770791, -0.128003, -0.163837, -0.602208 -9779, 0.770791, -0.128003, -0.163837, -0.602208 -9780, 0.770791, -0.128003, -0.163837, -0.602208 -9781, 0.770791, -0.128003, -0.163837, -0.602208 -9782, 0.770791, -0.128003, -0.163837, -0.602208 -9783, 0.770791, -0.128003, -0.163837, -0.602208 -9784, 0.770791, -0.128003, -0.163837, -0.602208 -9785, 0.770791, -0.128003, -0.163837, -0.602208 -9786, 0.770791, -0.128003, -0.163837, -0.602208 -9787, 0.770791, -0.128003, -0.163837, -0.602208 -9788, 0.770791, -0.128003, -0.163837, -0.602208 -9789, 0.770791, -0.128003, -0.163837, -0.602208 -9790, 0.770791, -0.128003, -0.163837, -0.602208 -9791, 0.770791, -0.128003, -0.163837, -0.602208 -9792, 0.770791, -0.128003, -0.163837, -0.602208 -9793, 0.770791, -0.128003, -0.163837, -0.602208 -9794, 0.770791, -0.128003, -0.163837, -0.602208 -9795, 0.770791, -0.128003, -0.163837, -0.602208 -9796, 0.770791, -0.128003, -0.163837, -0.602208 -9797, 0.770791, -0.128003, -0.163837, -0.602208 -9798, 0.770791, -0.128003, -0.163837, -0.602208 -9799, 0.770791, -0.128003, -0.163837, -0.602208 -9800, 0.785262, -0.109672, -0.145540, -0.591738 -9801, 0.785262, -0.109672, -0.145540, -0.591738 -9802, 0.785262, -0.109672, -0.145540, -0.591738 -9803, 0.785262, -0.109672, -0.145540, -0.591738 -9804, 0.785262, -0.109672, -0.145540, -0.591738 -9805, 0.785262, -0.109672, -0.145540, -0.591738 -9806, 0.785262, -0.109672, -0.145540, -0.591738 -9807, 0.785262, -0.109672, -0.145540, -0.591738 -9808, 0.785262, -0.109672, -0.145540, -0.591738 -9809, 0.785262, -0.109672, -0.145540, -0.591738 -9810, 0.785262, -0.109672, -0.145540, -0.591738 -9811, 0.785262, -0.109672, -0.145540, -0.591738 -9812, 0.785262, -0.109672, -0.145540, -0.591738 -9813, 0.785262, -0.109672, -0.145540, -0.591738 -9814, 0.785262, -0.109672, -0.145540, -0.591738 -9815, 0.785262, -0.109672, -0.145540, -0.591738 -9816, 0.785262, -0.109672, -0.145540, -0.591738 -9817, 0.785262, -0.109672, -0.145540, -0.591738 -9818, 0.785262, -0.109672, -0.145540, -0.591738 -9819, 0.785262, -0.109672, -0.145540, -0.591738 -9820, 0.785262, -0.109672, -0.145540, -0.591738 -9821, 0.785262, -0.109672, -0.145540, -0.591738 -9822, 0.785262, -0.109672, -0.145540, -0.591738 -9823, 0.785262, -0.109672, -0.145540, -0.591738 -9824, 0.785262, -0.109672, -0.145540, -0.591738 -9825, 0.785262, -0.109672, -0.145540, -0.591738 -9826, 0.785262, -0.109672, -0.145540, -0.591738 -9827, 0.785262, -0.109672, -0.145540, -0.591738 -9828, 0.785262, -0.109672, -0.145540, -0.591738 -9829, 0.785262, -0.109672, -0.145540, -0.591738 -9830, 0.785262, -0.109672, -0.145540, -0.591738 -9831, 0.785262, -0.109672, -0.145540, -0.591738 -9832, 0.785262, -0.109672, -0.145540, -0.591738 -9833, 0.785262, -0.109672, -0.145540, -0.591738 -9834, 0.785262, -0.109672, -0.145540, -0.591738 -9835, 0.785262, -0.109672, -0.145540, -0.591738 -9836, 0.785262, -0.109672, -0.145540, -0.591738 -9837, 0.785262, -0.109672, -0.145540, -0.591738 -9838, 0.785262, -0.109672, -0.145540, -0.591738 -9839, 0.785262, -0.109672, -0.145540, -0.591738 -9840, 0.785262, -0.109672, -0.145540, -0.591738 -9841, 0.785262, -0.109672, -0.145540, -0.591738 -9842, 0.785262, -0.109672, -0.145540, -0.591738 -9843, 0.785262, -0.109672, -0.145540, -0.591738 -9844, 0.785262, -0.109672, -0.145540, -0.591738 -9845, 0.785262, -0.109672, -0.145540, -0.591738 -9846, 0.785262, -0.109672, -0.145540, -0.591738 -9847, 0.785262, -0.109672, -0.145540, -0.591738 -9848, 0.785262, -0.109672, -0.145540, -0.591738 -9849, 0.785262, -0.109672, -0.145540, -0.591738 -9850, 0.785262, -0.109672, -0.145540, -0.591738 -9851, 0.785262, -0.109672, -0.145540, -0.591738 -9852, 0.785262, -0.109672, -0.145540, -0.591738 -9853, 0.785262, -0.109672, -0.145540, -0.591738 -9854, 0.785262, -0.109672, -0.145540, -0.591738 -9855, 0.785262, -0.109672, -0.145540, -0.591738 -9856, 0.785262, -0.109672, -0.145540, -0.591738 -9857, 0.785262, -0.109672, -0.145540, -0.591738 -9858, 0.785262, -0.109672, -0.145540, -0.591738 -9859, 0.785262, -0.109672, -0.145540, -0.591738 -9860, 0.785262, -0.109672, -0.145540, -0.591738 -9861, 0.785262, -0.109672, -0.145540, -0.591738 -9862, 0.785262, -0.109672, -0.145540, -0.591738 -9863, 0.785262, -0.109672, -0.145540, -0.591738 -9864, 0.785262, -0.109672, -0.145540, -0.591738 -9865, 0.785262, -0.109672, -0.145540, -0.591738 -9866, 0.785262, -0.109672, -0.145540, -0.591738 -9867, 0.785262, -0.109672, -0.145540, -0.591738 -9868, 0.785262, -0.109672, -0.145540, -0.591738 -9869, 0.785262, -0.109672, -0.145540, -0.591738 -9870, 0.785262, -0.109672, -0.145540, -0.591738 -9871, 0.785262, -0.109672, -0.145540, -0.591738 -9872, 0.785262, -0.109672, -0.145540, -0.591738 -9873, 0.785262, -0.109672, -0.145540, -0.591738 -9874, 0.785262, -0.109672, -0.145540, -0.591738 -9875, 0.785262, -0.109672, -0.145540, -0.591738 -9876, 0.785262, -0.109672, -0.145540, -0.591738 -9877, 0.785262, -0.109672, -0.145540, -0.591738 -9878, 0.785262, -0.109672, -0.145540, -0.591738 -9879, 0.785262, -0.109672, -0.145540, -0.591738 -9880, 0.785262, -0.109672, -0.145540, -0.591738 -9881, 0.785262, -0.109672, -0.145540, -0.591738 -9882, 0.785262, -0.109672, -0.145540, -0.591738 -9883, 0.785262, -0.109672, -0.145540, -0.591738 -9884, 0.785262, -0.109672, -0.145540, -0.591738 -9885, 0.785262, -0.109672, -0.145540, -0.591738 -9886, 0.785262, -0.109672, -0.145540, -0.591738 -9887, 0.785262, -0.109672, -0.145540, -0.591738 -9888, 0.785262, -0.109672, -0.145540, -0.591738 -9889, 0.785262, -0.109672, -0.145540, -0.591738 -9890, 0.785262, -0.109672, -0.145540, -0.591738 -9891, 0.785262, -0.109672, -0.145540, -0.591738 -9892, 0.785262, -0.109672, -0.145540, -0.591738 -9893, 0.785262, -0.109672, -0.145540, -0.591738 -9894, 0.785262, -0.109672, -0.145540, -0.591738 -9895, 0.785262, -0.109672, -0.145540, -0.591738 -9896, 0.785262, -0.109672, -0.145540, -0.591738 -9897, 0.785262, -0.109672, -0.145540, -0.591738 -9898, 0.785262, -0.109672, -0.145540, -0.591738 -9899, 0.785262, -0.109672, -0.145540, -0.591738 -9900, 0.799057, -0.091950, -0.126558, -0.580549 -9901, 0.799057, -0.091950, -0.126558, -0.580549 -9902, 0.799057, -0.091950, -0.126558, -0.580549 -9903, 0.799057, -0.091950, -0.126558, -0.580549 -9904, 0.799057, -0.091950, -0.126558, -0.580549 -9905, 0.799057, -0.091950, -0.126558, -0.580549 -9906, 0.799057, -0.091950, -0.126558, -0.580549 -9907, 0.799057, -0.091950, -0.126558, -0.580549 -9908, 0.799057, -0.091950, -0.126558, -0.580549 -9909, 0.799057, -0.091950, -0.126558, -0.580549 -9910, 0.799057, -0.091950, -0.126558, -0.580549 -9911, 0.799057, -0.091950, -0.126558, -0.580549 -9912, 0.799057, -0.091950, -0.126558, -0.580549 -9913, 0.799057, -0.091950, -0.126558, -0.580549 -9914, 0.799057, -0.091950, -0.126558, -0.580549 -9915, 0.799057, -0.091950, -0.126558, -0.580549 -9916, 0.799057, -0.091950, -0.126558, -0.580549 -9917, 0.799057, -0.091950, -0.126558, -0.580549 -9918, 0.799057, -0.091950, -0.126558, -0.580549 -9919, 0.799057, -0.091950, -0.126558, -0.580549 -9920, 0.799057, -0.091950, -0.126558, -0.580549 -9921, 0.799057, -0.091950, -0.126558, -0.580549 -9922, 0.799057, -0.091950, -0.126558, -0.580549 -9923, 0.799057, -0.091950, -0.126558, -0.580549 -9924, 0.799057, -0.091950, -0.126558, -0.580549 -9925, 0.799057, -0.091950, -0.126558, -0.580549 -9926, 0.799057, -0.091950, -0.126558, -0.580549 -9927, 0.799057, -0.091950, -0.126558, -0.580549 -9928, 0.799057, -0.091950, -0.126558, -0.580549 -9929, 0.799057, -0.091950, -0.126558, -0.580549 -9930, 0.799057, -0.091950, -0.126558, -0.580549 -9931, 0.799057, -0.091950, -0.126558, -0.580549 -9932, 0.799057, -0.091950, -0.126558, -0.580549 -9933, 0.799057, -0.091950, -0.126558, -0.580549 -9934, 0.799057, -0.091950, -0.126558, -0.580549 -9935, 0.799057, -0.091950, -0.126558, -0.580549 -9936, 0.799057, -0.091950, -0.126558, -0.580549 -9937, 0.799057, -0.091950, -0.126558, -0.580549 -9938, 0.799057, -0.091950, -0.126558, -0.580549 -9939, 0.799057, -0.091950, -0.126558, -0.580549 -9940, 0.799057, -0.091950, -0.126558, -0.580549 -9941, 0.799057, -0.091950, -0.126558, -0.580549 -9942, 0.799057, -0.091950, -0.126558, -0.580549 -9943, 0.799057, -0.091950, -0.126558, -0.580549 -9944, 0.799057, -0.091950, -0.126558, -0.580549 -9945, 0.799057, -0.091950, -0.126558, -0.580549 -9946, 0.799057, -0.091950, -0.126558, -0.580549 -9947, 0.799057, -0.091950, -0.126558, -0.580549 -9948, 0.799057, -0.091950, -0.126558, -0.580549 -9949, 0.799057, -0.091950, -0.126558, -0.580549 -9950, 0.799057, -0.091950, -0.126558, -0.580549 -9951, 0.799057, -0.091950, -0.126558, -0.580549 -9952, 0.799057, -0.091950, -0.126558, -0.580549 -9953, 0.799057, -0.091950, -0.126558, -0.580549 -9954, 0.799057, -0.091950, -0.126558, -0.580549 -9955, 0.799057, -0.091950, -0.126558, -0.580549 -9956, 0.799057, -0.091950, -0.126558, -0.580549 -9957, 0.799057, -0.091950, -0.126558, -0.580549 -9958, 0.799057, -0.091950, -0.126558, -0.580549 -9959, 0.799057, -0.091950, -0.126558, -0.580549 -9960, 0.799057, -0.091950, -0.126558, -0.580549 -9961, 0.799057, -0.091950, -0.126558, -0.580549 -9962, 0.799057, -0.091950, -0.126558, -0.580549 -9963, 0.799057, -0.091950, -0.126558, -0.580549 -9964, 0.799057, -0.091950, -0.126558, -0.580549 -9965, 0.799057, -0.091950, -0.126558, -0.580549 -9966, 0.799057, -0.091950, -0.126558, -0.580549 -9967, 0.799057, -0.091950, -0.126558, -0.580549 -9968, 0.799057, -0.091950, -0.126558, -0.580549 -9969, 0.799057, -0.091950, -0.126558, -0.580549 -9970, 0.799057, -0.091950, -0.126558, -0.580549 -9971, 0.799057, -0.091950, -0.126558, -0.580549 -9972, 0.799057, -0.091950, -0.126558, -0.580549 -9973, 0.799057, -0.091950, -0.126558, -0.580549 -9974, 0.799057, -0.091950, -0.126558, -0.580549 -9975, 0.799057, -0.091950, -0.126558, -0.580549 -9976, 0.799057, -0.091950, -0.126558, -0.580549 -9977, 0.799057, -0.091950, -0.126558, -0.580549 -9978, 0.799057, -0.091950, -0.126558, -0.580549 -9979, 0.799057, -0.091950, -0.126558, -0.580549 -9980, 0.799057, -0.091950, -0.126558, -0.580549 -9981, 0.799057, -0.091950, -0.126558, -0.580549 -9982, 0.799057, -0.091950, -0.126558, -0.580549 -9983, 0.799057, -0.091950, -0.126558, -0.580549 -9984, 0.799057, -0.091950, -0.126558, -0.580549 -9985, 0.799057, -0.091950, -0.126558, -0.580549 -9986, 0.799057, -0.091950, -0.126558, -0.580549 -9987, 0.799057, -0.091950, -0.126558, -0.580549 -9988, 0.799057, -0.091950, -0.126558, -0.580549 -9989, 0.799057, -0.091950, -0.126558, -0.580549 -9990, 0.799057, -0.091950, -0.126558, -0.580549 -9991, 0.799057, -0.091950, -0.126558, -0.580549 -9992, 0.799057, -0.091950, -0.126558, -0.580549 -9993, 0.799057, -0.091950, -0.126558, -0.580549 -9994, 0.799057, -0.091950, -0.126558, -0.580549 -9995, 0.799057, -0.091950, -0.126558, -0.580549 -9996, 0.799057, -0.091950, -0.126558, -0.580549 -9997, 0.799057, -0.091950, -0.126558, -0.580549 -9998, 0.799057, -0.091950, -0.126558, -0.580549 -9999, 0.799057, -0.091950, -0.126558, -0.580549 -10000, 0.812144, -0.074867, -0.106921, -0.568669 -10001, 0.812144, -0.074867, -0.106921, -0.568669 -10002, 0.812144, -0.074867, -0.106921, -0.568669 -10003, 0.812144, -0.074867, -0.106921, -0.568669 -10004, 0.812144, -0.074867, -0.106921, -0.568669 -10005, 0.812144, -0.074867, -0.106921, -0.568669 -10006, 0.812144, -0.074867, -0.106921, -0.568669 -10007, 0.812144, -0.074867, -0.106921, -0.568669 -10008, 0.812144, -0.074867, -0.106921, -0.568669 -10009, 0.812144, -0.074867, -0.106921, -0.568669 -10010, 0.812144, -0.074867, -0.106921, -0.568669 -10011, 0.812144, -0.074867, -0.106921, -0.568669 -10012, 0.812144, -0.074867, -0.106921, -0.568669 -10013, 0.812144, -0.074867, -0.106921, -0.568669 -10014, 0.812144, -0.074867, -0.106921, -0.568669 -10015, 0.812144, -0.074867, -0.106921, -0.568669 -10016, 0.812144, -0.074867, -0.106921, -0.568669 -10017, 0.812144, -0.074867, -0.106921, -0.568669 -10018, 0.812144, -0.074867, -0.106921, -0.568669 -10019, 0.812144, -0.074867, -0.106921, -0.568669 -10020, 0.812144, -0.074867, -0.106921, -0.568669 -10021, 0.812144, -0.074867, -0.106921, -0.568669 -10022, 0.812144, -0.074867, -0.106921, -0.568669 -10023, 0.812144, -0.074867, -0.106921, -0.568669 -10024, 0.812144, -0.074867, -0.106921, -0.568669 -10025, 0.812144, -0.074867, -0.106921, -0.568669 -10026, 0.812144, -0.074867, -0.106921, -0.568669 -10027, 0.812144, -0.074867, -0.106921, -0.568669 -10028, 0.812144, -0.074867, -0.106921, -0.568669 -10029, 0.812144, -0.074867, -0.106921, -0.568669 -10030, 0.812144, -0.074867, -0.106921, -0.568669 -10031, 0.812144, -0.074867, -0.106921, -0.568669 -10032, 0.812144, -0.074867, -0.106921, -0.568669 -10033, 0.812144, -0.074867, -0.106921, -0.568669 -10034, 0.812144, -0.074867, -0.106921, -0.568669 -10035, 0.812144, -0.074867, -0.106921, -0.568669 -10036, 0.812144, -0.074867, -0.106921, -0.568669 -10037, 0.812144, -0.074867, -0.106921, -0.568669 -10038, 0.812144, -0.074867, -0.106921, -0.568669 -10039, 0.812144, -0.074867, -0.106921, -0.568669 -10040, 0.812144, -0.074867, -0.106921, -0.568669 -10041, 0.812144, -0.074867, -0.106921, -0.568669 -10042, 0.812144, -0.074867, -0.106921, -0.568669 -10043, 0.812144, -0.074867, -0.106921, -0.568669 -10044, 0.812144, -0.074867, -0.106921, -0.568669 -10045, 0.812144, -0.074867, -0.106921, -0.568669 -10046, 0.812144, -0.074867, -0.106921, -0.568669 -10047, 0.812144, -0.074867, -0.106921, -0.568669 -10048, 0.812144, -0.074867, -0.106921, -0.568669 -10049, 0.812144, -0.074867, -0.106921, -0.568669 -10050, 0.812144, -0.074867, -0.106921, -0.568669 -10051, 0.812144, -0.074867, -0.106921, -0.568669 -10052, 0.812144, -0.074867, -0.106921, -0.568669 -10053, 0.812144, -0.074867, -0.106921, -0.568669 -10054, 0.812144, -0.074867, -0.106921, -0.568669 -10055, 0.812144, -0.074867, -0.106921, -0.568669 -10056, 0.812144, -0.074867, -0.106921, -0.568669 -10057, 0.812144, -0.074867, -0.106921, -0.568669 -10058, 0.812144, -0.074867, -0.106921, -0.568669 -10059, 0.812144, -0.074867, -0.106921, -0.568669 -10060, 0.812144, -0.074867, -0.106921, -0.568669 -10061, 0.812144, -0.074867, -0.106921, -0.568669 -10062, 0.812144, -0.074867, -0.106921, -0.568669 -10063, 0.812144, -0.074867, -0.106921, -0.568669 -10064, 0.812144, -0.074867, -0.106921, -0.568669 -10065, 0.812144, -0.074867, -0.106921, -0.568669 -10066, 0.812144, -0.074867, -0.106921, -0.568669 -10067, 0.812144, -0.074867, -0.106921, -0.568669 -10068, 0.812144, -0.074867, -0.106921, -0.568669 -10069, 0.812144, -0.074867, -0.106921, -0.568669 -10070, 0.812144, -0.074867, -0.106921, -0.568669 -10071, 0.812144, -0.074867, -0.106921, -0.568669 -10072, 0.812144, -0.074867, -0.106921, -0.568669 -10073, 0.812144, -0.074867, -0.106921, -0.568669 -10074, 0.812144, -0.074867, -0.106921, -0.568669 -10075, 0.812144, -0.074867, -0.106921, -0.568669 -10076, 0.812144, -0.074867, -0.106921, -0.568669 -10077, 0.812144, -0.074867, -0.106921, -0.568669 -10078, 0.812144, -0.074867, -0.106921, -0.568669 -10079, 0.812144, -0.074867, -0.106921, -0.568669 -10080, 0.812144, -0.074867, -0.106921, -0.568669 -10081, 0.812144, -0.074867, -0.106921, -0.568669 -10082, 0.812144, -0.074867, -0.106921, -0.568669 -10083, 0.812144, -0.074867, -0.106921, -0.568669 -10084, 0.812144, -0.074867, -0.106921, -0.568669 -10085, 0.812144, -0.074867, -0.106921, -0.568669 -10086, 0.812144, -0.074867, -0.106921, -0.568669 -10087, 0.812144, -0.074867, -0.106921, -0.568669 -10088, 0.812144, -0.074867, -0.106921, -0.568669 -10089, 0.812144, -0.074867, -0.106921, -0.568669 -10090, 0.812144, -0.074867, -0.106921, -0.568669 -10091, 0.812144, -0.074867, -0.106921, -0.568669 -10092, 0.812144, -0.074867, -0.106921, -0.568669 -10093, 0.812144, -0.074867, -0.106921, -0.568669 -10094, 0.812144, -0.074867, -0.106921, -0.568669 -10095, 0.812144, -0.074867, -0.106921, -0.568669 -10096, 0.812144, -0.074867, -0.106921, -0.568669 -10097, 0.812144, -0.074867, -0.106921, -0.568669 -10098, 0.812144, -0.074867, -0.106921, -0.568669 -10099, 0.812144, -0.074867, -0.106921, -0.568669 -10100, 0.824496, -0.058452, -0.086658, -0.556130 -10101, 0.824496, -0.058452, -0.086658, -0.556130 -10102, 0.824496, -0.058452, -0.086658, -0.556130 -10103, 0.824496, -0.058452, -0.086658, -0.556130 -10104, 0.824496, -0.058452, -0.086658, -0.556130 -10105, 0.824496, -0.058452, -0.086658, -0.556130 -10106, 0.824496, -0.058452, -0.086658, -0.556130 -10107, 0.824496, -0.058452, -0.086658, -0.556130 -10108, 0.824496, -0.058452, -0.086658, -0.556130 -10109, 0.824496, -0.058452, -0.086658, -0.556130 -10110, 0.824496, -0.058452, -0.086658, -0.556130 -10111, 0.824496, -0.058452, -0.086658, -0.556130 -10112, 0.824496, -0.058452, -0.086658, -0.556130 -10113, 0.824496, -0.058452, -0.086658, -0.556130 -10114, 0.824496, -0.058452, -0.086658, -0.556130 -10115, 0.824496, -0.058452, -0.086658, -0.556130 -10116, 0.824496, -0.058452, -0.086658, -0.556130 -10117, 0.824496, -0.058452, -0.086658, -0.556130 -10118, 0.824496, -0.058452, -0.086658, -0.556130 -10119, 0.824496, -0.058452, -0.086658, -0.556130 -10120, 0.824496, -0.058452, -0.086658, -0.556130 -10121, 0.824496, -0.058452, -0.086658, -0.556130 -10122, 0.824496, -0.058452, -0.086658, -0.556130 -10123, 0.824496, -0.058452, -0.086658, -0.556130 -10124, 0.824496, -0.058452, -0.086658, -0.556130 -10125, 0.824496, -0.058452, -0.086658, -0.556130 -10126, 0.824496, -0.058452, -0.086658, -0.556130 -10127, 0.824496, -0.058452, -0.086658, -0.556130 -10128, 0.824496, -0.058452, -0.086658, -0.556130 -10129, 0.824496, -0.058452, -0.086658, -0.556130 -10130, 0.824496, -0.058452, -0.086658, -0.556130 -10131, 0.824496, -0.058452, -0.086658, -0.556130 -10132, 0.824496, -0.058452, -0.086658, -0.556130 -10133, 0.824496, -0.058452, -0.086658, -0.556130 -10134, 0.824496, -0.058452, -0.086658, -0.556130 -10135, 0.824496, -0.058452, -0.086658, -0.556130 -10136, 0.824496, -0.058452, -0.086658, -0.556130 -10137, 0.824496, -0.058452, -0.086658, -0.556130 -10138, 0.824496, -0.058452, -0.086658, -0.556130 -10139, 0.824496, -0.058452, -0.086658, -0.556130 -10140, 0.824496, -0.058452, -0.086658, -0.556130 -10141, 0.824496, -0.058452, -0.086658, -0.556130 -10142, 0.824496, -0.058452, -0.086658, -0.556130 -10143, 0.824496, -0.058452, -0.086658, -0.556130 -10144, 0.824496, -0.058452, -0.086658, -0.556130 -10145, 0.824496, -0.058452, -0.086658, -0.556130 -10146, 0.824496, -0.058452, -0.086658, -0.556130 -10147, 0.824496, -0.058452, -0.086658, -0.556130 -10148, 0.824496, -0.058452, -0.086658, -0.556130 -10149, 0.824496, -0.058452, -0.086658, -0.556130 -10150, 0.824496, -0.058452, -0.086658, -0.556130 -10151, 0.824496, -0.058452, -0.086658, -0.556130 -10152, 0.824496, -0.058452, -0.086658, -0.556130 -10153, 0.824496, -0.058452, -0.086658, -0.556130 -10154, 0.824496, -0.058452, -0.086658, -0.556130 -10155, 0.824496, -0.058452, -0.086658, -0.556130 -10156, 0.824496, -0.058452, -0.086658, -0.556130 -10157, 0.824496, -0.058452, -0.086658, -0.556130 -10158, 0.824496, -0.058452, -0.086658, -0.556130 -10159, 0.824496, -0.058452, -0.086658, -0.556130 -10160, 0.824496, -0.058452, -0.086658, -0.556130 -10161, 0.824496, -0.058452, -0.086658, -0.556130 -10162, 0.824496, -0.058452, -0.086658, -0.556130 -10163, 0.824496, -0.058452, -0.086658, -0.556130 -10164, 0.824496, -0.058452, -0.086658, -0.556130 -10165, 0.824496, -0.058452, -0.086658, -0.556130 -10166, 0.824496, -0.058452, -0.086658, -0.556130 -10167, 0.824496, -0.058452, -0.086658, -0.556130 -10168, 0.824496, -0.058452, -0.086658, -0.556130 -10169, 0.824496, -0.058452, -0.086658, -0.556130 -10170, 0.824496, -0.058452, -0.086658, -0.556130 -10171, 0.824496, -0.058452, -0.086658, -0.556130 -10172, 0.824496, -0.058452, -0.086658, -0.556130 -10173, 0.824496, -0.058452, -0.086658, -0.556130 -10174, 0.824496, -0.058452, -0.086658, -0.556130 -10175, 0.824496, -0.058452, -0.086658, -0.556130 -10176, 0.824496, -0.058452, -0.086658, -0.556130 -10177, 0.824496, -0.058452, -0.086658, -0.556130 -10178, 0.824496, -0.058452, -0.086658, -0.556130 -10179, 0.824496, -0.058452, -0.086658, -0.556130 -10180, 0.824496, -0.058452, -0.086658, -0.556130 -10181, 0.824496, -0.058452, -0.086658, -0.556130 -10182, 0.824496, -0.058452, -0.086658, -0.556130 -10183, 0.824496, -0.058452, -0.086658, -0.556130 -10184, 0.824496, -0.058452, -0.086658, -0.556130 -10185, 0.824496, -0.058452, -0.086658, -0.556130 -10186, 0.824496, -0.058452, -0.086658, -0.556130 -10187, 0.824496, -0.058452, -0.086658, -0.556130 -10188, 0.824496, -0.058452, -0.086658, -0.556130 -10189, 0.824496, -0.058452, -0.086658, -0.556130 -10190, 0.824496, -0.058452, -0.086658, -0.556130 -10191, 0.824496, -0.058452, -0.086658, -0.556130 -10192, 0.824496, -0.058452, -0.086658, -0.556130 -10193, 0.824496, -0.058452, -0.086658, -0.556130 -10194, 0.824496, -0.058452, -0.086658, -0.556130 -10195, 0.824496, -0.058452, -0.086658, -0.556130 -10196, 0.824496, -0.058452, -0.086658, -0.556130 -10197, 0.824496, -0.058452, -0.086658, -0.556130 -10198, 0.824496, -0.058452, -0.086658, -0.556130 -10199, 0.824496, -0.058452, -0.086658, -0.556130 -10200, 0.836085, -0.042732, -0.065801, -0.542960 -10201, 0.836085, -0.042732, -0.065801, -0.542960 -10202, 0.836085, -0.042732, -0.065801, -0.542960 -10203, 0.836085, -0.042732, -0.065801, -0.542960 -10204, 0.836085, -0.042732, -0.065801, -0.542960 -10205, 0.836085, -0.042732, -0.065801, -0.542960 -10206, 0.836085, -0.042732, -0.065801, -0.542960 -10207, 0.836085, -0.042732, -0.065801, -0.542960 -10208, 0.836085, -0.042732, -0.065801, -0.542960 -10209, 0.836085, -0.042732, -0.065801, -0.542960 -10210, 0.836085, -0.042732, -0.065801, -0.542960 -10211, 0.836085, -0.042732, -0.065801, -0.542960 -10212, 0.836085, -0.042732, -0.065801, -0.542960 -10213, 0.836085, -0.042732, -0.065801, -0.542960 -10214, 0.836085, -0.042732, -0.065801, -0.542960 -10215, 0.836085, -0.042732, -0.065801, -0.542960 -10216, 0.836085, -0.042732, -0.065801, -0.542960 -10217, 0.836085, -0.042732, -0.065801, -0.542960 -10218, 0.836085, -0.042732, -0.065801, -0.542960 -10219, 0.836085, -0.042732, -0.065801, -0.542960 -10220, 0.836085, -0.042732, -0.065801, -0.542960 -10221, 0.836085, -0.042732, -0.065801, -0.542960 -10222, 0.836085, -0.042732, -0.065801, -0.542960 -10223, 0.836085, -0.042732, -0.065801, -0.542960 -10224, 0.836085, -0.042732, -0.065801, -0.542960 -10225, 0.836085, -0.042732, -0.065801, -0.542960 -10226, 0.836085, -0.042732, -0.065801, -0.542960 -10227, 0.836085, -0.042732, -0.065801, -0.542960 -10228, 0.836085, -0.042732, -0.065801, -0.542960 -10229, 0.836085, -0.042732, -0.065801, -0.542960 -10230, 0.836085, -0.042732, -0.065801, -0.542960 -10231, 0.836085, -0.042732, -0.065801, -0.542960 -10232, 0.836085, -0.042732, -0.065801, -0.542960 -10233, 0.836085, -0.042732, -0.065801, -0.542960 -10234, 0.836085, -0.042732, -0.065801, -0.542960 -10235, 0.836085, -0.042732, -0.065801, -0.542960 -10236, 0.836085, -0.042732, -0.065801, -0.542960 -10237, 0.836085, -0.042732, -0.065801, -0.542960 -10238, 0.836085, -0.042732, -0.065801, -0.542960 -10239, 0.836085, -0.042732, -0.065801, -0.542960 -10240, 0.836085, -0.042732, -0.065801, -0.542960 -10241, 0.836085, -0.042732, -0.065801, -0.542960 -10242, 0.836085, -0.042732, -0.065801, -0.542960 -10243, 0.836085, -0.042732, -0.065801, -0.542960 -10244, 0.836085, -0.042732, -0.065801, -0.542960 -10245, 0.836085, -0.042732, -0.065801, -0.542960 -10246, 0.836085, -0.042732, -0.065801, -0.542960 -10247, 0.836085, -0.042732, -0.065801, -0.542960 -10248, 0.836085, -0.042732, -0.065801, -0.542960 -10249, 0.836085, -0.042732, -0.065801, -0.542960 -10250, 0.836085, -0.042732, -0.065801, -0.542960 -10251, 0.836085, -0.042732, -0.065801, -0.542960 -10252, 0.836085, -0.042732, -0.065801, -0.542960 -10253, 0.836085, -0.042732, -0.065801, -0.542960 -10254, 0.836085, -0.042732, -0.065801, -0.542960 -10255, 0.836085, -0.042732, -0.065801, -0.542960 -10256, 0.836085, -0.042732, -0.065801, -0.542960 -10257, 0.836085, -0.042732, -0.065801, -0.542960 -10258, 0.836085, -0.042732, -0.065801, -0.542960 -10259, 0.836085, -0.042732, -0.065801, -0.542960 -10260, 0.836085, -0.042732, -0.065801, -0.542960 -10261, 0.836085, -0.042732, -0.065801, -0.542960 -10262, 0.836085, -0.042732, -0.065801, -0.542960 -10263, 0.836085, -0.042732, -0.065801, -0.542960 -10264, 0.836085, -0.042732, -0.065801, -0.542960 -10265, 0.836085, -0.042732, -0.065801, -0.542960 -10266, 0.836085, -0.042732, -0.065801, -0.542960 -10267, 0.836085, -0.042732, -0.065801, -0.542960 -10268, 0.836085, -0.042732, -0.065801, -0.542960 -10269, 0.836085, -0.042732, -0.065801, -0.542960 -10270, 0.836085, -0.042732, -0.065801, -0.542960 -10271, 0.836085, -0.042732, -0.065801, -0.542960 -10272, 0.836085, -0.042732, -0.065801, -0.542960 -10273, 0.836085, -0.042732, -0.065801, -0.542960 -10274, 0.836085, -0.042732, -0.065801, -0.542960 -10275, 0.836085, -0.042732, -0.065801, -0.542960 -10276, 0.836085, -0.042732, -0.065801, -0.542960 -10277, 0.836085, -0.042732, -0.065801, -0.542960 -10278, 0.836085, -0.042732, -0.065801, -0.542960 -10279, 0.836085, -0.042732, -0.065801, -0.542960 -10280, 0.836085, -0.042732, -0.065801, -0.542960 -10281, 0.836085, -0.042732, -0.065801, -0.542960 -10282, 0.836085, -0.042732, -0.065801, -0.542960 -10283, 0.836085, -0.042732, -0.065801, -0.542960 -10284, 0.836085, -0.042732, -0.065801, -0.542960 -10285, 0.836085, -0.042732, -0.065801, -0.542960 -10286, 0.836085, -0.042732, -0.065801, -0.542960 -10287, 0.836085, -0.042732, -0.065801, -0.542960 -10288, 0.836085, -0.042732, -0.065801, -0.542960 -10289, 0.836085, -0.042732, -0.065801, -0.542960 -10290, 0.836085, -0.042732, -0.065801, -0.542960 -10291, 0.836085, -0.042732, -0.065801, -0.542960 -10292, 0.836085, -0.042732, -0.065801, -0.542960 -10293, 0.836085, -0.042732, -0.065801, -0.542960 -10294, 0.836085, -0.042732, -0.065801, -0.542960 -10295, 0.836085, -0.042732, -0.065801, -0.542960 -10296, 0.836085, -0.042732, -0.065801, -0.542960 -10297, 0.836085, -0.042732, -0.065801, -0.542960 -10298, 0.836085, -0.042732, -0.065801, -0.542960 -10299, 0.836085, -0.042732, -0.065801, -0.542960 -10300, 0.846886, -0.027734, -0.044383, -0.529193 -10301, 0.846886, -0.027734, -0.044383, -0.529193 -10302, 0.846886, -0.027734, -0.044383, -0.529193 -10303, 0.846886, -0.027734, -0.044383, -0.529193 -10304, 0.846886, -0.027734, -0.044383, -0.529193 -10305, 0.846886, -0.027734, -0.044383, -0.529193 -10306, 0.846886, -0.027734, -0.044383, -0.529193 -10307, 0.846886, -0.027734, -0.044383, -0.529193 -10308, 0.846886, -0.027734, -0.044383, -0.529193 -10309, 0.846886, -0.027734, -0.044383, -0.529193 -10310, 0.846886, -0.027734, -0.044383, -0.529193 -10311, 0.846886, -0.027734, -0.044383, -0.529193 -10312, 0.846886, -0.027734, -0.044383, -0.529193 -10313, 0.846886, -0.027734, -0.044383, -0.529193 -10314, 0.846886, -0.027734, -0.044383, -0.529193 -10315, 0.846886, -0.027734, -0.044383, -0.529193 -10316, 0.846886, -0.027734, -0.044383, -0.529193 -10317, 0.846886, -0.027734, -0.044383, -0.529193 -10318, 0.846886, -0.027734, -0.044383, -0.529193 -10319, 0.846886, -0.027734, -0.044383, -0.529193 -10320, 0.846886, -0.027734, -0.044383, -0.529193 -10321, 0.846886, -0.027734, -0.044383, -0.529193 -10322, 0.846886, -0.027734, -0.044383, -0.529193 -10323, 0.846886, -0.027734, -0.044383, -0.529193 -10324, 0.846886, -0.027734, -0.044383, -0.529193 -10325, 0.846886, -0.027734, -0.044383, -0.529193 -10326, 0.846886, -0.027734, -0.044383, -0.529193 -10327, 0.846886, -0.027734, -0.044383, -0.529193 -10328, 0.846886, -0.027734, -0.044383, -0.529193 -10329, 0.846886, -0.027734, -0.044383, -0.529193 -10330, 0.846886, -0.027734, -0.044383, -0.529193 -10331, 0.846886, -0.027734, -0.044383, -0.529193 -10332, 0.846886, -0.027734, -0.044383, -0.529193 -10333, 0.846886, -0.027734, -0.044383, -0.529193 -10334, 0.846886, -0.027734, -0.044383, -0.529193 -10335, 0.846886, -0.027734, -0.044383, -0.529193 -10336, 0.846886, -0.027734, -0.044383, -0.529193 -10337, 0.846886, -0.027734, -0.044383, -0.529193 -10338, 0.846886, -0.027734, -0.044383, -0.529193 -10339, 0.846886, -0.027734, -0.044383, -0.529193 -10340, 0.846886, -0.027734, -0.044383, -0.529193 -10341, 0.846886, -0.027734, -0.044383, -0.529193 -10342, 0.846886, -0.027734, -0.044383, -0.529193 -10343, 0.846886, -0.027734, -0.044383, -0.529193 -10344, 0.846886, -0.027734, -0.044383, -0.529193 -10345, 0.846886, -0.027734, -0.044383, -0.529193 -10346, 0.846886, -0.027734, -0.044383, -0.529193 -10347, 0.846886, -0.027734, -0.044383, -0.529193 -10348, 0.846886, -0.027734, -0.044383, -0.529193 -10349, 0.846886, -0.027734, -0.044383, -0.529193 -10350, 0.846886, -0.027734, -0.044383, -0.529193 -10351, 0.846886, -0.027734, -0.044383, -0.529193 -10352, 0.846886, -0.027734, -0.044383, -0.529193 -10353, 0.846886, -0.027734, -0.044383, -0.529193 -10354, 0.846886, -0.027734, -0.044383, -0.529193 -10355, 0.846886, -0.027734, -0.044383, -0.529193 -10356, 0.846886, -0.027734, -0.044383, -0.529193 -10357, 0.846886, -0.027734, -0.044383, -0.529193 -10358, 0.846886, -0.027734, -0.044383, -0.529193 -10359, 0.846886, -0.027734, -0.044383, -0.529193 -10360, 0.846886, -0.027734, -0.044383, -0.529193 -10361, 0.846886, -0.027734, -0.044383, -0.529193 -10362, 0.846886, -0.027734, -0.044383, -0.529193 -10363, 0.846886, -0.027734, -0.044383, -0.529193 -10364, 0.846886, -0.027734, -0.044383, -0.529193 -10365, 0.846886, -0.027734, -0.044383, -0.529193 -10366, 0.846886, -0.027734, -0.044383, -0.529193 -10367, 0.846886, -0.027734, -0.044383, -0.529193 -10368, 0.846886, -0.027734, -0.044383, -0.529193 -10369, 0.846886, -0.027734, -0.044383, -0.529193 -10370, 0.846886, -0.027734, -0.044383, -0.529193 -10371, 0.846886, -0.027734, -0.044383, -0.529193 -10372, 0.846886, -0.027734, -0.044383, -0.529193 -10373, 0.846886, -0.027734, -0.044383, -0.529193 -10374, 0.846886, -0.027734, -0.044383, -0.529193 -10375, 0.846886, -0.027734, -0.044383, -0.529193 -10376, 0.846886, -0.027734, -0.044383, -0.529193 -10377, 0.846886, -0.027734, -0.044383, -0.529193 -10378, 0.846886, -0.027734, -0.044383, -0.529193 -10379, 0.846886, -0.027734, -0.044383, -0.529193 -10380, 0.846886, -0.027734, -0.044383, -0.529193 -10381, 0.846886, -0.027734, -0.044383, -0.529193 -10382, 0.846886, -0.027734, -0.044383, -0.529193 -10383, 0.846886, -0.027734, -0.044383, -0.529193 -10384, 0.846886, -0.027734, -0.044383, -0.529193 -10385, 0.846886, -0.027734, -0.044383, -0.529193 -10386, 0.846886, -0.027734, -0.044383, -0.529193 -10387, 0.846886, -0.027734, -0.044383, -0.529193 -10388, 0.846886, -0.027734, -0.044383, -0.529193 -10389, 0.846886, -0.027734, -0.044383, -0.529193 -10390, 0.846886, -0.027734, -0.044383, -0.529193 -10391, 0.846886, -0.027734, -0.044383, -0.529193 -10392, 0.846886, -0.027734, -0.044383, -0.529193 -10393, 0.846886, -0.027734, -0.044383, -0.529193 -10394, 0.846886, -0.027734, -0.044383, -0.529193 -10395, 0.846886, -0.027734, -0.044383, -0.529193 -10396, 0.846886, -0.027734, -0.044383, -0.529193 -10397, 0.846886, -0.027734, -0.044383, -0.529193 -10398, 0.846886, -0.027734, -0.044383, -0.529193 -10399, 0.846886, -0.027734, -0.044383, -0.529193 -10400, 0.856874, -0.013482, -0.022438, -0.514862 -10401, 0.856874, -0.013482, -0.022438, -0.514862 -10402, 0.856874, -0.013482, -0.022438, -0.514862 -10403, 0.856874, -0.013482, -0.022438, -0.514862 -10404, 0.856874, -0.013482, -0.022438, -0.514862 -10405, 0.856874, -0.013482, -0.022438, -0.514862 -10406, 0.856874, -0.013482, -0.022438, -0.514862 -10407, 0.856874, -0.013482, -0.022438, -0.514862 -10408, 0.856874, -0.013482, -0.022438, -0.514862 -10409, 0.856874, -0.013482, -0.022438, -0.514862 -10410, 0.856874, -0.013482, -0.022438, -0.514862 -10411, 0.856874, -0.013482, -0.022438, -0.514862 -10412, 0.856874, -0.013482, -0.022438, -0.514862 -10413, 0.856874, -0.013482, -0.022438, -0.514862 -10414, 0.856874, -0.013482, -0.022438, -0.514862 -10415, 0.856874, -0.013482, -0.022438, -0.514862 -10416, 0.856874, -0.013482, -0.022438, -0.514862 -10417, 0.856874, -0.013482, -0.022438, -0.514862 -10418, 0.856874, -0.013482, -0.022438, -0.514862 -10419, 0.856874, -0.013482, -0.022438, -0.514862 -10420, 0.856874, -0.013482, -0.022438, -0.514862 -10421, 0.856874, -0.013482, -0.022438, -0.514862 -10422, 0.856874, -0.013482, -0.022438, -0.514862 -10423, 0.856874, -0.013482, -0.022438, -0.514862 -10424, 0.856874, -0.013482, -0.022438, -0.514862 -10425, 0.856874, -0.013482, -0.022438, -0.514862 -10426, 0.856874, -0.013482, -0.022438, -0.514862 -10427, 0.856874, -0.013482, -0.022438, -0.514862 -10428, 0.856874, -0.013482, -0.022438, -0.514862 -10429, 0.856874, -0.013482, -0.022438, -0.514862 -10430, 0.856874, -0.013482, -0.022438, -0.514862 -10431, 0.856874, -0.013482, -0.022438, -0.514862 -10432, 0.856874, -0.013482, -0.022438, -0.514862 -10433, 0.856874, -0.013482, -0.022438, -0.514862 -10434, 0.856874, -0.013482, -0.022438, -0.514862 -10435, 0.856874, -0.013482, -0.022438, -0.514862 -10436, 0.856874, -0.013482, -0.022438, -0.514862 -10437, 0.856874, -0.013482, -0.022438, -0.514862 -10438, 0.856874, -0.013482, -0.022438, -0.514862 -10439, 0.856874, -0.013482, -0.022438, -0.514862 -10440, 0.856874, -0.013482, -0.022438, -0.514862 -10441, 0.856874, -0.013482, -0.022438, -0.514862 -10442, 0.856874, -0.013482, -0.022438, -0.514862 -10443, 0.856874, -0.013482, -0.022438, -0.514862 -10444, 0.856874, -0.013482, -0.022438, -0.514862 -10445, 0.856874, -0.013482, -0.022438, -0.514862 -10446, 0.856874, -0.013482, -0.022438, -0.514862 -10447, 0.856874, -0.013482, -0.022438, -0.514862 -10448, 0.856874, -0.013482, -0.022438, -0.514862 -10449, 0.856874, -0.013482, -0.022438, -0.514862 -10450, 0.856874, -0.013482, -0.022438, -0.514862 -10451, 0.856874, -0.013482, -0.022438, -0.514862 -10452, 0.856874, -0.013482, -0.022438, -0.514862 -10453, 0.856874, -0.013482, -0.022438, -0.514862 -10454, 0.856874, -0.013482, -0.022438, -0.514862 -10455, 0.856874, -0.013482, -0.022438, -0.514862 -10456, 0.856874, -0.013482, -0.022438, -0.514862 -10457, 0.856874, -0.013482, -0.022438, -0.514862 -10458, 0.856874, -0.013482, -0.022438, -0.514862 -10459, 0.856874, -0.013482, -0.022438, -0.514862 -10460, 0.856874, -0.013482, -0.022438, -0.514862 -10461, 0.856874, -0.013482, -0.022438, -0.514862 -10462, 0.856874, -0.013482, -0.022438, -0.514862 -10463, 0.856874, -0.013482, -0.022438, -0.514862 -10464, 0.856874, -0.013482, -0.022438, -0.514862 -10465, 0.856874, -0.013482, -0.022438, -0.514862 -10466, 0.856874, -0.013482, -0.022438, -0.514862 -10467, 0.856874, -0.013482, -0.022438, -0.514862 -10468, 0.856874, -0.013482, -0.022438, -0.514862 -10469, 0.856874, -0.013482, -0.022438, -0.514862 -10470, 0.856874, -0.013482, -0.022438, -0.514862 -10471, 0.856874, -0.013482, -0.022438, -0.514862 -10472, 0.856874, -0.013482, -0.022438, -0.514862 -10473, 0.856874, -0.013482, -0.022438, -0.514862 -10474, 0.856874, -0.013482, -0.022438, -0.514862 -10475, 0.856874, -0.013482, -0.022438, -0.514862 -10476, 0.856874, -0.013482, -0.022438, -0.514862 -10477, 0.856874, -0.013482, -0.022438, -0.514862 -10478, 0.856874, -0.013482, -0.022438, -0.514862 -10479, 0.856874, -0.013482, -0.022438, -0.514862 -10480, 0.856874, -0.013482, -0.022438, -0.514862 -10481, 0.856874, -0.013482, -0.022438, -0.514862 -10482, 0.856874, -0.013482, -0.022438, -0.514862 -10483, 0.856874, -0.013482, -0.022438, -0.514862 -10484, 0.856874, -0.013482, -0.022438, -0.514862 -10485, 0.856874, -0.013482, -0.022438, -0.514862 -10486, 0.856874, -0.013482, -0.022438, -0.514862 -10487, 0.856874, -0.013482, -0.022438, -0.514862 -10488, 0.856874, -0.013482, -0.022438, -0.514862 -10489, 0.856874, -0.013482, -0.022438, -0.514862 -10490, 0.856874, -0.013482, -0.022438, -0.514862 -10491, 0.856874, -0.013482, -0.022438, -0.514862 -10492, 0.856874, -0.013482, -0.022438, -0.514862 -10493, 0.856874, -0.013482, -0.022438, -0.514862 -10494, 0.856874, -0.013482, -0.022438, -0.514862 -10495, 0.856874, -0.013482, -0.022438, -0.514862 -10496, 0.856874, -0.013482, -0.022438, -0.514862 -10497, 0.856874, -0.013482, -0.022438, -0.514862 -10498, 0.856874, -0.013482, -0.022438, -0.514862 -10499, 0.856874, -0.013482, -0.022438, -0.514862 -10500, 0.866025, -0.000000, -0.000000, -0.500000 -10501, 0.866025, -0.000000, -0.000000, -0.500000 -10502, 0.866025, -0.000000, -0.000000, -0.500000 -10503, 0.866025, -0.000000, -0.000000, -0.500000 -10504, 0.866025, -0.000000, -0.000000, -0.500000 -10505, 0.866025, -0.000000, -0.000000, -0.500000 -10506, 0.866025, -0.000000, -0.000000, -0.500000 -10507, 0.866025, -0.000000, -0.000000, -0.500000 -10508, 0.866025, -0.000000, -0.000000, -0.500000 -10509, 0.866025, -0.000000, -0.000000, -0.500000 -10510, 0.866025, -0.000000, -0.000000, -0.500000 -10511, 0.866025, -0.000000, -0.000000, -0.500000 -10512, 0.866025, -0.000000, -0.000000, -0.500000 -10513, 0.866025, -0.000000, -0.000000, -0.500000 -10514, 0.866025, -0.000000, -0.000000, -0.500000 -10515, 0.866025, -0.000000, -0.000000, -0.500000 -10516, 0.866025, -0.000000, -0.000000, -0.500000 -10517, 0.866025, -0.000000, -0.000000, -0.500000 -10518, 0.866025, -0.000000, -0.000000, -0.500000 -10519, 0.866025, -0.000000, -0.000000, -0.500000 -10520, 0.866025, -0.000000, -0.000000, -0.500000 -10521, 0.866025, -0.000000, -0.000000, -0.500000 -10522, 0.866025, -0.000000, -0.000000, -0.500000 -10523, 0.866025, -0.000000, -0.000000, -0.500000 -10524, 0.866025, -0.000000, -0.000000, -0.500000 -10525, 0.866025, -0.000000, -0.000000, -0.500000 -10526, 0.866025, -0.000000, -0.000000, -0.500000 -10527, 0.866025, -0.000000, -0.000000, -0.500000 -10528, 0.866025, -0.000000, -0.000000, -0.500000 -10529, 0.866025, -0.000000, -0.000000, -0.500000 -10530, 0.866025, -0.000000, -0.000000, -0.500000 -10531, 0.866025, -0.000000, -0.000000, -0.500000 -10532, 0.866025, -0.000000, -0.000000, -0.500000 -10533, 0.866025, -0.000000, -0.000000, -0.500000 -10534, 0.866025, -0.000000, -0.000000, -0.500000 -10535, 0.866025, -0.000000, -0.000000, -0.500000 -10536, 0.866025, -0.000000, -0.000000, -0.500000 -10537, 0.866025, -0.000000, -0.000000, -0.500000 -10538, 0.866025, -0.000000, -0.000000, -0.500000 -10539, 0.866025, -0.000000, -0.000000, -0.500000 -10540, 0.866025, -0.000000, -0.000000, -0.500000 -10541, 0.866025, -0.000000, -0.000000, -0.500000 -10542, 0.866025, -0.000000, -0.000000, -0.500000 -10543, 0.866025, -0.000000, -0.000000, -0.500000 -10544, 0.866025, -0.000000, -0.000000, -0.500000 -10545, 0.866025, -0.000000, -0.000000, -0.500000 -10546, 0.866025, -0.000000, -0.000000, -0.500000 -10547, 0.866025, -0.000000, -0.000000, -0.500000 -10548, 0.866025, -0.000000, -0.000000, -0.500000 -10549, 0.866025, -0.000000, -0.000000, -0.500000 -10550, 0.866025, -0.000000, -0.000000, -0.500000 -10551, 0.866025, -0.000000, -0.000000, -0.500000 -10552, 0.866025, -0.000000, -0.000000, -0.500000 -10553, 0.866025, -0.000000, -0.000000, -0.500000 -10554, 0.866025, -0.000000, -0.000000, -0.500000 -10555, 0.866025, -0.000000, -0.000000, -0.500000 -10556, 0.866025, -0.000000, -0.000000, -0.500000 -10557, 0.866025, -0.000000, -0.000000, -0.500000 -10558, 0.866025, -0.000000, -0.000000, -0.500000 -10559, 0.866025, -0.000000, -0.000000, -0.500000 -10560, 0.866025, -0.000000, -0.000000, -0.500000 -10561, 0.866025, -0.000000, -0.000000, -0.500000 -10562, 0.866025, -0.000000, -0.000000, -0.500000 -10563, 0.866025, -0.000000, -0.000000, -0.500000 -10564, 0.866025, -0.000000, -0.000000, -0.500000 -10565, 0.866025, -0.000000, -0.000000, -0.500000 -10566, 0.866025, -0.000000, -0.000000, -0.500000 -10567, 0.866025, -0.000000, -0.000000, -0.500000 -10568, 0.866025, -0.000000, -0.000000, -0.500000 -10569, 0.866025, -0.000000, -0.000000, -0.500000 -10570, 0.866025, -0.000000, -0.000000, -0.500000 -10571, 0.866025, -0.000000, -0.000000, -0.500000 -10572, 0.866025, -0.000000, -0.000000, -0.500000 -10573, 0.866025, -0.000000, -0.000000, -0.500000 -10574, 0.866025, -0.000000, -0.000000, -0.500000 -10575, 0.866025, -0.000000, -0.000000, -0.500000 -10576, 0.866025, -0.000000, -0.000000, -0.500000 -10577, 0.866025, -0.000000, -0.000000, -0.500000 -10578, 0.866025, -0.000000, -0.000000, -0.500000 -10579, 0.866025, -0.000000, -0.000000, -0.500000 -10580, 0.866025, -0.000000, -0.000000, -0.500000 -10581, 0.866025, -0.000000, -0.000000, -0.500000 -10582, 0.866025, -0.000000, -0.000000, -0.500000 -10583, 0.866025, -0.000000, -0.000000, -0.500000 -10584, 0.866025, -0.000000, -0.000000, -0.500000 -10585, 0.866025, -0.000000, -0.000000, -0.500000 -10586, 0.866025, -0.000000, -0.000000, -0.500000 -10587, 0.866025, -0.000000, -0.000000, -0.500000 -10588, 0.866025, -0.000000, -0.000000, -0.500000 -10589, 0.866025, -0.000000, -0.000000, -0.500000 -10590, 0.866025, -0.000000, -0.000000, -0.500000 -10591, 0.866025, -0.000000, -0.000000, -0.500000 -10592, 0.866025, -0.000000, -0.000000, -0.500000 -10593, 0.866025, -0.000000, -0.000000, -0.500000 -10594, 0.866025, -0.000000, -0.000000, -0.500000 -10595, 0.866025, -0.000000, -0.000000, -0.500000 -10596, 0.866025, -0.000000, -0.000000, -0.500000 -10597, 0.866025, -0.000000, -0.000000, -0.500000 -10598, 0.866025, -0.000000, -0.000000, -0.500000 -10599, 0.866025, -0.000000, -0.000000, -0.500000 -10600, 0.874320, 0.012691, 0.022895, -0.484643 -10601, 0.874320, 0.012691, 0.022895, -0.484643 -10602, 0.874320, 0.012691, 0.022895, -0.484643 -10603, 0.874320, 0.012691, 0.022895, -0.484643 -10604, 0.874320, 0.012691, 0.022895, -0.484643 -10605, 0.874320, 0.012691, 0.022895, -0.484643 -10606, 0.874320, 0.012691, 0.022895, -0.484643 -10607, 0.874320, 0.012691, 0.022895, -0.484643 -10608, 0.874320, 0.012691, 0.022895, -0.484643 -10609, 0.874320, 0.012691, 0.022895, -0.484643 -10610, 0.874320, 0.012691, 0.022895, -0.484643 -10611, 0.874320, 0.012691, 0.022895, -0.484643 -10612, 0.874320, 0.012691, 0.022895, -0.484643 -10613, 0.874320, 0.012691, 0.022895, -0.484643 -10614, 0.874320, 0.012691, 0.022895, -0.484643 -10615, 0.874320, 0.012691, 0.022895, -0.484643 -10616, 0.874320, 0.012691, 0.022895, -0.484643 -10617, 0.874320, 0.012691, 0.022895, -0.484643 -10618, 0.874320, 0.012691, 0.022895, -0.484643 -10619, 0.874320, 0.012691, 0.022895, -0.484643 -10620, 0.874320, 0.012691, 0.022895, -0.484643 -10621, 0.874320, 0.012691, 0.022895, -0.484643 -10622, 0.874320, 0.012691, 0.022895, -0.484643 -10623, 0.874320, 0.012691, 0.022895, -0.484643 -10624, 0.874320, 0.012691, 0.022895, -0.484643 -10625, 0.874320, 0.012691, 0.022895, -0.484643 -10626, 0.874320, 0.012691, 0.022895, -0.484643 -10627, 0.874320, 0.012691, 0.022895, -0.484643 -10628, 0.874320, 0.012691, 0.022895, -0.484643 -10629, 0.874320, 0.012691, 0.022895, -0.484643 -10630, 0.874320, 0.012691, 0.022895, -0.484643 -10631, 0.874320, 0.012691, 0.022895, -0.484643 -10632, 0.874320, 0.012691, 0.022895, -0.484643 -10633, 0.874320, 0.012691, 0.022895, -0.484643 -10634, 0.874320, 0.012691, 0.022895, -0.484643 -10635, 0.874320, 0.012691, 0.022895, -0.484643 -10636, 0.874320, 0.012691, 0.022895, -0.484643 -10637, 0.874320, 0.012691, 0.022895, -0.484643 -10638, 0.874320, 0.012691, 0.022895, -0.484643 -10639, 0.874320, 0.012691, 0.022895, -0.484643 -10640, 0.874320, 0.012691, 0.022895, -0.484643 -10641, 0.874320, 0.012691, 0.022895, -0.484643 -10642, 0.874320, 0.012691, 0.022895, -0.484643 -10643, 0.874320, 0.012691, 0.022895, -0.484643 -10644, 0.874320, 0.012691, 0.022895, -0.484643 -10645, 0.874320, 0.012691, 0.022895, -0.484643 -10646, 0.874320, 0.012691, 0.022895, -0.484643 -10647, 0.874320, 0.012691, 0.022895, -0.484643 -10648, 0.874320, 0.012691, 0.022895, -0.484643 -10649, 0.874320, 0.012691, 0.022895, -0.484643 -10650, 0.874320, 0.012691, 0.022895, -0.484643 -10651, 0.874320, 0.012691, 0.022895, -0.484643 -10652, 0.874320, 0.012691, 0.022895, -0.484643 -10653, 0.874320, 0.012691, 0.022895, -0.484643 -10654, 0.874320, 0.012691, 0.022895, -0.484643 -10655, 0.874320, 0.012691, 0.022895, -0.484643 -10656, 0.874320, 0.012691, 0.022895, -0.484643 -10657, 0.874320, 0.012691, 0.022895, -0.484643 -10658, 0.874320, 0.012691, 0.022895, -0.484643 -10659, 0.874320, 0.012691, 0.022895, -0.484643 -10660, 0.874320, 0.012691, 0.022895, -0.484643 -10661, 0.874320, 0.012691, 0.022895, -0.484643 -10662, 0.874320, 0.012691, 0.022895, -0.484643 -10663, 0.874320, 0.012691, 0.022895, -0.484643 -10664, 0.874320, 0.012691, 0.022895, -0.484643 -10665, 0.874320, 0.012691, 0.022895, -0.484643 -10666, 0.874320, 0.012691, 0.022895, -0.484643 -10667, 0.874320, 0.012691, 0.022895, -0.484643 -10668, 0.874320, 0.012691, 0.022895, -0.484643 -10669, 0.874320, 0.012691, 0.022895, -0.484643 -10670, 0.874320, 0.012691, 0.022895, -0.484643 -10671, 0.874320, 0.012691, 0.022895, -0.484643 -10672, 0.874320, 0.012691, 0.022895, -0.484643 -10673, 0.874320, 0.012691, 0.022895, -0.484643 -10674, 0.874320, 0.012691, 0.022895, -0.484643 -10675, 0.874320, 0.012691, 0.022895, -0.484643 -10676, 0.874320, 0.012691, 0.022895, -0.484643 -10677, 0.874320, 0.012691, 0.022895, -0.484643 -10678, 0.874320, 0.012691, 0.022895, -0.484643 -10679, 0.874320, 0.012691, 0.022895, -0.484643 -10680, 0.874320, 0.012691, 0.022895, -0.484643 -10681, 0.874320, 0.012691, 0.022895, -0.484643 -10682, 0.874320, 0.012691, 0.022895, -0.484643 -10683, 0.874320, 0.012691, 0.022895, -0.484643 -10684, 0.874320, 0.012691, 0.022895, -0.484643 -10685, 0.874320, 0.012691, 0.022895, -0.484643 -10686, 0.874320, 0.012691, 0.022895, -0.484643 -10687, 0.874320, 0.012691, 0.022895, -0.484643 -10688, 0.874320, 0.012691, 0.022895, -0.484643 -10689, 0.874320, 0.012691, 0.022895, -0.484643 -10690, 0.874320, 0.012691, 0.022895, -0.484643 -10691, 0.874320, 0.012691, 0.022895, -0.484643 -10692, 0.874320, 0.012691, 0.022895, -0.484643 -10693, 0.874320, 0.012691, 0.022895, -0.484643 -10694, 0.874320, 0.012691, 0.022895, -0.484643 -10695, 0.874320, 0.012691, 0.022895, -0.484643 -10696, 0.874320, 0.012691, 0.022895, -0.484643 -10697, 0.874320, 0.012691, 0.022895, -0.484643 -10698, 0.874320, 0.012691, 0.022895, -0.484643 -10699, 0.874320, 0.012691, 0.022895, -0.484643 -10700, 0.881738, 0.024570, 0.046210, -0.468828 -10701, 0.881738, 0.024570, 0.046210, -0.468828 -10702, 0.881738, 0.024570, 0.046210, -0.468828 -10703, 0.881738, 0.024570, 0.046210, -0.468828 -10704, 0.881738, 0.024570, 0.046210, -0.468828 -10705, 0.881738, 0.024570, 0.046210, -0.468828 -10706, 0.881738, 0.024570, 0.046210, -0.468828 -10707, 0.881738, 0.024570, 0.046210, -0.468828 -10708, 0.881738, 0.024570, 0.046210, -0.468828 -10709, 0.881738, 0.024570, 0.046210, -0.468828 -10710, 0.881738, 0.024570, 0.046210, -0.468828 -10711, 0.881738, 0.024570, 0.046210, -0.468828 -10712, 0.881738, 0.024570, 0.046210, -0.468828 -10713, 0.881738, 0.024570, 0.046210, -0.468828 -10714, 0.881738, 0.024570, 0.046210, -0.468828 -10715, 0.881738, 0.024570, 0.046210, -0.468828 -10716, 0.881738, 0.024570, 0.046210, -0.468828 -10717, 0.881738, 0.024570, 0.046210, -0.468828 -10718, 0.881738, 0.024570, 0.046210, -0.468828 -10719, 0.881738, 0.024570, 0.046210, -0.468828 -10720, 0.881738, 0.024570, 0.046210, -0.468828 -10721, 0.881738, 0.024570, 0.046210, -0.468828 -10722, 0.881738, 0.024570, 0.046210, -0.468828 -10723, 0.881738, 0.024570, 0.046210, -0.468828 -10724, 0.881738, 0.024570, 0.046210, -0.468828 -10725, 0.881738, 0.024570, 0.046210, -0.468828 -10726, 0.881738, 0.024570, 0.046210, -0.468828 -10727, 0.881738, 0.024570, 0.046210, -0.468828 -10728, 0.881738, 0.024570, 0.046210, -0.468828 -10729, 0.881738, 0.024570, 0.046210, -0.468828 -10730, 0.881738, 0.024570, 0.046210, -0.468828 -10731, 0.881738, 0.024570, 0.046210, -0.468828 -10732, 0.881738, 0.024570, 0.046210, -0.468828 -10733, 0.881738, 0.024570, 0.046210, -0.468828 -10734, 0.881738, 0.024570, 0.046210, -0.468828 -10735, 0.881738, 0.024570, 0.046210, -0.468828 -10736, 0.881738, 0.024570, 0.046210, -0.468828 -10737, 0.881738, 0.024570, 0.046210, -0.468828 -10738, 0.881738, 0.024570, 0.046210, -0.468828 -10739, 0.881738, 0.024570, 0.046210, -0.468828 -10740, 0.881738, 0.024570, 0.046210, -0.468828 -10741, 0.881738, 0.024570, 0.046210, -0.468828 -10742, 0.881738, 0.024570, 0.046210, -0.468828 -10743, 0.881738, 0.024570, 0.046210, -0.468828 -10744, 0.881738, 0.024570, 0.046210, -0.468828 -10745, 0.881738, 0.024570, 0.046210, -0.468828 -10746, 0.881738, 0.024570, 0.046210, -0.468828 -10747, 0.881738, 0.024570, 0.046210, -0.468828 -10748, 0.881738, 0.024570, 0.046210, -0.468828 -10749, 0.881738, 0.024570, 0.046210, -0.468828 -10750, 0.881738, 0.024570, 0.046210, -0.468828 -10751, 0.881738, 0.024570, 0.046210, -0.468828 -10752, 0.881738, 0.024570, 0.046210, -0.468828 -10753, 0.881738, 0.024570, 0.046210, -0.468828 -10754, 0.881738, 0.024570, 0.046210, -0.468828 -10755, 0.881738, 0.024570, 0.046210, -0.468828 -10756, 0.881738, 0.024570, 0.046210, -0.468828 -10757, 0.881738, 0.024570, 0.046210, -0.468828 -10758, 0.881738, 0.024570, 0.046210, -0.468828 -10759, 0.881738, 0.024570, 0.046210, -0.468828 -10760, 0.881738, 0.024570, 0.046210, -0.468828 -10761, 0.881738, 0.024570, 0.046210, -0.468828 -10762, 0.881738, 0.024570, 0.046210, -0.468828 -10763, 0.881738, 0.024570, 0.046210, -0.468828 -10764, 0.881738, 0.024570, 0.046210, -0.468828 -10765, 0.881738, 0.024570, 0.046210, -0.468828 -10766, 0.881738, 0.024570, 0.046210, -0.468828 -10767, 0.881738, 0.024570, 0.046210, -0.468828 -10768, 0.881738, 0.024570, 0.046210, -0.468828 -10769, 0.881738, 0.024570, 0.046210, -0.468828 -10770, 0.881738, 0.024570, 0.046210, -0.468828 -10771, 0.881738, 0.024570, 0.046210, -0.468828 -10772, 0.881738, 0.024570, 0.046210, -0.468828 -10773, 0.881738, 0.024570, 0.046210, -0.468828 -10774, 0.881738, 0.024570, 0.046210, -0.468828 -10775, 0.881738, 0.024570, 0.046210, -0.468828 -10776, 0.881738, 0.024570, 0.046210, -0.468828 -10777, 0.881738, 0.024570, 0.046210, -0.468828 -10778, 0.881738, 0.024570, 0.046210, -0.468828 -10779, 0.881738, 0.024570, 0.046210, -0.468828 -10780, 0.881738, 0.024570, 0.046210, -0.468828 -10781, 0.881738, 0.024570, 0.046210, -0.468828 -10782, 0.881738, 0.024570, 0.046210, -0.468828 -10783, 0.881738, 0.024570, 0.046210, -0.468828 -10784, 0.881738, 0.024570, 0.046210, -0.468828 -10785, 0.881738, 0.024570, 0.046210, -0.468828 -10786, 0.881738, 0.024570, 0.046210, -0.468828 -10787, 0.881738, 0.024570, 0.046210, -0.468828 -10788, 0.881738, 0.024570, 0.046210, -0.468828 -10789, 0.881738, 0.024570, 0.046210, -0.468828 -10790, 0.881738, 0.024570, 0.046210, -0.468828 -10791, 0.881738, 0.024570, 0.046210, -0.468828 -10792, 0.881738, 0.024570, 0.046210, -0.468828 -10793, 0.881738, 0.024570, 0.046210, -0.468828 -10794, 0.881738, 0.024570, 0.046210, -0.468828 -10795, 0.881738, 0.024570, 0.046210, -0.468828 -10796, 0.881738, 0.024570, 0.046210, -0.468828 -10797, 0.881738, 0.024570, 0.046210, -0.468828 -10798, 0.881738, 0.024570, 0.046210, -0.468828 -10799, 0.881738, 0.024570, 0.046210, -0.468828 -10800, 0.888260, 0.035620, 0.069908, -0.452591 -10801, 0.888260, 0.035620, 0.069908, -0.452591 -10802, 0.888260, 0.035620, 0.069908, -0.452591 -10803, 0.888260, 0.035620, 0.069908, -0.452591 -10804, 0.888260, 0.035620, 0.069908, -0.452591 -10805, 0.888260, 0.035620, 0.069908, -0.452591 -10806, 0.888260, 0.035620, 0.069908, -0.452591 -10807, 0.888260, 0.035620, 0.069908, -0.452591 -10808, 0.888260, 0.035620, 0.069908, -0.452591 -10809, 0.888260, 0.035620, 0.069908, -0.452591 -10810, 0.888260, 0.035620, 0.069908, -0.452591 -10811, 0.888260, 0.035620, 0.069908, -0.452591 -10812, 0.888260, 0.035620, 0.069908, -0.452591 -10813, 0.888260, 0.035620, 0.069908, -0.452591 -10814, 0.888260, 0.035620, 0.069908, -0.452591 -10815, 0.888260, 0.035620, 0.069908, -0.452591 -10816, 0.888260, 0.035620, 0.069908, -0.452591 -10817, 0.888260, 0.035620, 0.069908, -0.452591 -10818, 0.888260, 0.035620, 0.069908, -0.452591 -10819, 0.888260, 0.035620, 0.069908, -0.452591 -10820, 0.888260, 0.035620, 0.069908, -0.452591 -10821, 0.888260, 0.035620, 0.069908, -0.452591 -10822, 0.888260, 0.035620, 0.069908, -0.452591 -10823, 0.888260, 0.035620, 0.069908, -0.452591 -10824, 0.888260, 0.035620, 0.069908, -0.452591 -10825, 0.888260, 0.035620, 0.069908, -0.452591 -10826, 0.888260, 0.035620, 0.069908, -0.452591 -10827, 0.888260, 0.035620, 0.069908, -0.452591 -10828, 0.888260, 0.035620, 0.069908, -0.452591 -10829, 0.888260, 0.035620, 0.069908, -0.452591 -10830, 0.888260, 0.035620, 0.069908, -0.452591 -10831, 0.888260, 0.035620, 0.069908, -0.452591 -10832, 0.888260, 0.035620, 0.069908, -0.452591 -10833, 0.888260, 0.035620, 0.069908, -0.452591 -10834, 0.888260, 0.035620, 0.069908, -0.452591 -10835, 0.888260, 0.035620, 0.069908, -0.452591 -10836, 0.888260, 0.035620, 0.069908, -0.452591 -10837, 0.888260, 0.035620, 0.069908, -0.452591 -10838, 0.888260, 0.035620, 0.069908, -0.452591 -10839, 0.888260, 0.035620, 0.069908, -0.452591 -10840, 0.888260, 0.035620, 0.069908, -0.452591 -10841, 0.888260, 0.035620, 0.069908, -0.452591 -10842, 0.888260, 0.035620, 0.069908, -0.452591 -10843, 0.888260, 0.035620, 0.069908, -0.452591 -10844, 0.888260, 0.035620, 0.069908, -0.452591 -10845, 0.888260, 0.035620, 0.069908, -0.452591 -10846, 0.888260, 0.035620, 0.069908, -0.452591 -10847, 0.888260, 0.035620, 0.069908, -0.452591 -10848, 0.888260, 0.035620, 0.069908, -0.452591 -10849, 0.888260, 0.035620, 0.069908, -0.452591 -10850, 0.888260, 0.035620, 0.069908, -0.452591 -10851, 0.888260, 0.035620, 0.069908, -0.452591 -10852, 0.888260, 0.035620, 0.069908, -0.452591 -10853, 0.888260, 0.035620, 0.069908, -0.452591 -10854, 0.888260, 0.035620, 0.069908, -0.452591 -10855, 0.888260, 0.035620, 0.069908, -0.452591 -10856, 0.888260, 0.035620, 0.069908, -0.452591 -10857, 0.888260, 0.035620, 0.069908, -0.452591 -10858, 0.888260, 0.035620, 0.069908, -0.452591 -10859, 0.888260, 0.035620, 0.069908, -0.452591 -10860, 0.888260, 0.035620, 0.069908, -0.452591 -10861, 0.888260, 0.035620, 0.069908, -0.452591 -10862, 0.888260, 0.035620, 0.069908, -0.452591 -10863, 0.888260, 0.035620, 0.069908, -0.452591 -10864, 0.888260, 0.035620, 0.069908, -0.452591 -10865, 0.888260, 0.035620, 0.069908, -0.452591 -10866, 0.888260, 0.035620, 0.069908, -0.452591 -10867, 0.888260, 0.035620, 0.069908, -0.452591 -10868, 0.888260, 0.035620, 0.069908, -0.452591 -10869, 0.888260, 0.035620, 0.069908, -0.452591 -10870, 0.888260, 0.035620, 0.069908, -0.452591 -10871, 0.888260, 0.035620, 0.069908, -0.452591 -10872, 0.888260, 0.035620, 0.069908, -0.452591 -10873, 0.888260, 0.035620, 0.069908, -0.452591 -10874, 0.888260, 0.035620, 0.069908, -0.452591 -10875, 0.888260, 0.035620, 0.069908, -0.452591 -10876, 0.888260, 0.035620, 0.069908, -0.452591 -10877, 0.888260, 0.035620, 0.069908, -0.452591 -10878, 0.888260, 0.035620, 0.069908, -0.452591 -10879, 0.888260, 0.035620, 0.069908, -0.452591 -10880, 0.888260, 0.035620, 0.069908, -0.452591 -10881, 0.888260, 0.035620, 0.069908, -0.452591 -10882, 0.888260, 0.035620, 0.069908, -0.452591 -10883, 0.888260, 0.035620, 0.069908, -0.452591 -10884, 0.888260, 0.035620, 0.069908, -0.452591 -10885, 0.888260, 0.035620, 0.069908, -0.452591 -10886, 0.888260, 0.035620, 0.069908, -0.452591 -10887, 0.888260, 0.035620, 0.069908, -0.452591 -10888, 0.888260, 0.035620, 0.069908, -0.452591 -10889, 0.888260, 0.035620, 0.069908, -0.452591 -10890, 0.888260, 0.035620, 0.069908, -0.452591 -10891, 0.888260, 0.035620, 0.069908, -0.452591 -10892, 0.888260, 0.035620, 0.069908, -0.452591 -10893, 0.888260, 0.035620, 0.069908, -0.452591 -10894, 0.888260, 0.035620, 0.069908, -0.452591 -10895, 0.888260, 0.035620, 0.069908, -0.452591 -10896, 0.888260, 0.035620, 0.069908, -0.452591 -10897, 0.888260, 0.035620, 0.069908, -0.452591 -10898, 0.888260, 0.035620, 0.069908, -0.452591 -10899, 0.888260, 0.035620, 0.069908, -0.452591 -10900, 0.893870, 0.045822, 0.093950, -0.435970 -10901, 0.893870, 0.045822, 0.093950, -0.435970 -10902, 0.893870, 0.045822, 0.093950, -0.435970 -10903, 0.893870, 0.045822, 0.093950, -0.435970 -10904, 0.893870, 0.045822, 0.093950, -0.435970 -10905, 0.893870, 0.045822, 0.093950, -0.435970 -10906, 0.893870, 0.045822, 0.093950, -0.435970 -10907, 0.893870, 0.045822, 0.093950, -0.435970 -10908, 0.893870, 0.045822, 0.093950, -0.435970 -10909, 0.893870, 0.045822, 0.093950, -0.435970 -10910, 0.893870, 0.045822, 0.093950, -0.435970 -10911, 0.893870, 0.045822, 0.093950, -0.435970 -10912, 0.893870, 0.045822, 0.093950, -0.435970 -10913, 0.893870, 0.045822, 0.093950, -0.435970 -10914, 0.893870, 0.045822, 0.093950, -0.435970 -10915, 0.893870, 0.045822, 0.093950, -0.435970 -10916, 0.893870, 0.045822, 0.093950, -0.435970 -10917, 0.893870, 0.045822, 0.093950, -0.435970 -10918, 0.893870, 0.045822, 0.093950, -0.435970 -10919, 0.893870, 0.045822, 0.093950, -0.435970 -10920, 0.893870, 0.045822, 0.093950, -0.435970 -10921, 0.893870, 0.045822, 0.093950, -0.435970 -10922, 0.893870, 0.045822, 0.093950, -0.435970 -10923, 0.893870, 0.045822, 0.093950, -0.435970 -10924, 0.893870, 0.045822, 0.093950, -0.435970 -10925, 0.893870, 0.045822, 0.093950, -0.435970 -10926, 0.893870, 0.045822, 0.093950, -0.435970 -10927, 0.893870, 0.045822, 0.093950, -0.435970 -10928, 0.893870, 0.045822, 0.093950, -0.435970 -10929, 0.893870, 0.045822, 0.093950, -0.435970 -10930, 0.893870, 0.045822, 0.093950, -0.435970 -10931, 0.893870, 0.045822, 0.093950, -0.435970 -10932, 0.893870, 0.045822, 0.093950, -0.435970 -10933, 0.893870, 0.045822, 0.093950, -0.435970 -10934, 0.893870, 0.045822, 0.093950, -0.435970 -10935, 0.893870, 0.045822, 0.093950, -0.435970 -10936, 0.893870, 0.045822, 0.093950, -0.435970 -10937, 0.893870, 0.045822, 0.093950, -0.435970 -10938, 0.893870, 0.045822, 0.093950, -0.435970 -10939, 0.893870, 0.045822, 0.093950, -0.435970 -10940, 0.893870, 0.045822, 0.093950, -0.435970 -10941, 0.893870, 0.045822, 0.093950, -0.435970 -10942, 0.893870, 0.045822, 0.093950, -0.435970 -10943, 0.893870, 0.045822, 0.093950, -0.435970 -10944, 0.893870, 0.045822, 0.093950, -0.435970 -10945, 0.893870, 0.045822, 0.093950, -0.435970 -10946, 0.893870, 0.045822, 0.093950, -0.435970 -10947, 0.893870, 0.045822, 0.093950, -0.435970 -10948, 0.893870, 0.045822, 0.093950, -0.435970 -10949, 0.893870, 0.045822, 0.093950, -0.435970 -10950, 0.893870, 0.045822, 0.093950, -0.435970 -10951, 0.893870, 0.045822, 0.093950, -0.435970 -10952, 0.893870, 0.045822, 0.093950, -0.435970 -10953, 0.893870, 0.045822, 0.093950, -0.435970 -10954, 0.893870, 0.045822, 0.093950, -0.435970 -10955, 0.893870, 0.045822, 0.093950, -0.435970 -10956, 0.893870, 0.045822, 0.093950, -0.435970 -10957, 0.893870, 0.045822, 0.093950, -0.435970 -10958, 0.893870, 0.045822, 0.093950, -0.435970 -10959, 0.893870, 0.045822, 0.093950, -0.435970 -10960, 0.893870, 0.045822, 0.093950, -0.435970 -10961, 0.893870, 0.045822, 0.093950, -0.435970 -10962, 0.893870, 0.045822, 0.093950, -0.435970 -10963, 0.893870, 0.045822, 0.093950, -0.435970 -10964, 0.893870, 0.045822, 0.093950, -0.435970 -10965, 0.893870, 0.045822, 0.093950, -0.435970 -10966, 0.893870, 0.045822, 0.093950, -0.435970 -10967, 0.893870, 0.045822, 0.093950, -0.435970 -10968, 0.893870, 0.045822, 0.093950, -0.435970 -10969, 0.893870, 0.045822, 0.093950, -0.435970 -10970, 0.893870, 0.045822, 0.093950, -0.435970 -10971, 0.893870, 0.045822, 0.093950, -0.435970 -10972, 0.893870, 0.045822, 0.093950, -0.435970 -10973, 0.893870, 0.045822, 0.093950, -0.435970 -10974, 0.893870, 0.045822, 0.093950, -0.435970 -10975, 0.893870, 0.045822, 0.093950, -0.435970 -10976, 0.893870, 0.045822, 0.093950, -0.435970 -10977, 0.893870, 0.045822, 0.093950, -0.435970 -10978, 0.893870, 0.045822, 0.093950, -0.435970 -10979, 0.893870, 0.045822, 0.093950, -0.435970 -10980, 0.893870, 0.045822, 0.093950, -0.435970 -10981, 0.893870, 0.045822, 0.093950, -0.435970 -10982, 0.893870, 0.045822, 0.093950, -0.435970 -10983, 0.893870, 0.045822, 0.093950, -0.435970 -10984, 0.893870, 0.045822, 0.093950, -0.435970 -10985, 0.893870, 0.045822, 0.093950, -0.435970 -10986, 0.893870, 0.045822, 0.093950, -0.435970 -10987, 0.893870, 0.045822, 0.093950, -0.435970 -10988, 0.893870, 0.045822, 0.093950, -0.435970 -10989, 0.893870, 0.045822, 0.093950, -0.435970 -10990, 0.893870, 0.045822, 0.093950, -0.435970 -10991, 0.893870, 0.045822, 0.093950, -0.435970 -10992, 0.893870, 0.045822, 0.093950, -0.435970 -10993, 0.893870, 0.045822, 0.093950, -0.435970 -10994, 0.893870, 0.045822, 0.093950, -0.435970 -10995, 0.893870, 0.045822, 0.093950, -0.435970 -10996, 0.893870, 0.045822, 0.093950, -0.435970 -10997, 0.893870, 0.045822, 0.093950, -0.435970 -10998, 0.893870, 0.045822, 0.093950, -0.435970 -10999, 0.893870, 0.045822, 0.093950, -0.435970 -11000, 0.898554, 0.055163, 0.118297, -0.419003 -11001, 0.898554, 0.055163, 0.118297, -0.419003 -11002, 0.898554, 0.055163, 0.118297, -0.419003 -11003, 0.898554, 0.055163, 0.118297, -0.419003 -11004, 0.898554, 0.055163, 0.118297, -0.419003 -11005, 0.898554, 0.055163, 0.118297, -0.419003 -11006, 0.898554, 0.055163, 0.118297, -0.419003 -11007, 0.898554, 0.055163, 0.118297, -0.419003 -11008, 0.898554, 0.055163, 0.118297, -0.419003 -11009, 0.898554, 0.055163, 0.118297, -0.419003 -11010, 0.898554, 0.055163, 0.118297, -0.419003 -11011, 0.898554, 0.055163, 0.118297, -0.419003 -11012, 0.898554, 0.055163, 0.118297, -0.419003 -11013, 0.898554, 0.055163, 0.118297, -0.419003 -11014, 0.898554, 0.055163, 0.118297, -0.419003 -11015, 0.898554, 0.055163, 0.118297, -0.419003 -11016, 0.898554, 0.055163, 0.118297, -0.419003 -11017, 0.898554, 0.055163, 0.118297, -0.419003 -11018, 0.898554, 0.055163, 0.118297, -0.419003 -11019, 0.898554, 0.055163, 0.118297, -0.419003 -11020, 0.898554, 0.055163, 0.118297, -0.419003 -11021, 0.898554, 0.055163, 0.118297, -0.419003 -11022, 0.898554, 0.055163, 0.118297, -0.419003 -11023, 0.898554, 0.055163, 0.118297, -0.419003 -11024, 0.898554, 0.055163, 0.118297, -0.419003 -11025, 0.898554, 0.055163, 0.118297, -0.419003 -11026, 0.898554, 0.055163, 0.118297, -0.419003 -11027, 0.898554, 0.055163, 0.118297, -0.419003 -11028, 0.898554, 0.055163, 0.118297, -0.419003 -11029, 0.898554, 0.055163, 0.118297, -0.419003 -11030, 0.898554, 0.055163, 0.118297, -0.419003 -11031, 0.898554, 0.055163, 0.118297, -0.419003 -11032, 0.898554, 0.055163, 0.118297, -0.419003 -11033, 0.898554, 0.055163, 0.118297, -0.419003 -11034, 0.898554, 0.055163, 0.118297, -0.419003 -11035, 0.898554, 0.055163, 0.118297, -0.419003 -11036, 0.898554, 0.055163, 0.118297, -0.419003 -11037, 0.898554, 0.055163, 0.118297, -0.419003 -11038, 0.898554, 0.055163, 0.118297, -0.419003 -11039, 0.898554, 0.055163, 0.118297, -0.419003 -11040, 0.898554, 0.055163, 0.118297, -0.419003 -11041, 0.898554, 0.055163, 0.118297, -0.419003 -11042, 0.898554, 0.055163, 0.118297, -0.419003 -11043, 0.898554, 0.055163, 0.118297, -0.419003 -11044, 0.898554, 0.055163, 0.118297, -0.419003 -11045, 0.898554, 0.055163, 0.118297, -0.419003 -11046, 0.898554, 0.055163, 0.118297, -0.419003 -11047, 0.898554, 0.055163, 0.118297, -0.419003 -11048, 0.898554, 0.055163, 0.118297, -0.419003 -11049, 0.898554, 0.055163, 0.118297, -0.419003 -11050, 0.898554, 0.055163, 0.118297, -0.419003 -11051, 0.898554, 0.055163, 0.118297, -0.419003 -11052, 0.898554, 0.055163, 0.118297, -0.419003 -11053, 0.898554, 0.055163, 0.118297, -0.419003 -11054, 0.898554, 0.055163, 0.118297, -0.419003 -11055, 0.898554, 0.055163, 0.118297, -0.419003 -11056, 0.898554, 0.055163, 0.118297, -0.419003 -11057, 0.898554, 0.055163, 0.118297, -0.419003 -11058, 0.898554, 0.055163, 0.118297, -0.419003 -11059, 0.898554, 0.055163, 0.118297, -0.419003 -11060, 0.898554, 0.055163, 0.118297, -0.419003 -11061, 0.898554, 0.055163, 0.118297, -0.419003 -11062, 0.898554, 0.055163, 0.118297, -0.419003 -11063, 0.898554, 0.055163, 0.118297, -0.419003 -11064, 0.898554, 0.055163, 0.118297, -0.419003 -11065, 0.898554, 0.055163, 0.118297, -0.419003 -11066, 0.898554, 0.055163, 0.118297, -0.419003 -11067, 0.898554, 0.055163, 0.118297, -0.419003 -11068, 0.898554, 0.055163, 0.118297, -0.419003 -11069, 0.898554, 0.055163, 0.118297, -0.419003 -11070, 0.898554, 0.055163, 0.118297, -0.419003 -11071, 0.898554, 0.055163, 0.118297, -0.419003 -11072, 0.898554, 0.055163, 0.118297, -0.419003 -11073, 0.898554, 0.055163, 0.118297, -0.419003 -11074, 0.898554, 0.055163, 0.118297, -0.419003 -11075, 0.898554, 0.055163, 0.118297, -0.419003 -11076, 0.898554, 0.055163, 0.118297, -0.419003 -11077, 0.898554, 0.055163, 0.118297, -0.419003 -11078, 0.898554, 0.055163, 0.118297, -0.419003 -11079, 0.898554, 0.055163, 0.118297, -0.419003 -11080, 0.898554, 0.055163, 0.118297, -0.419003 -11081, 0.898554, 0.055163, 0.118297, -0.419003 -11082, 0.898554, 0.055163, 0.118297, -0.419003 -11083, 0.898554, 0.055163, 0.118297, -0.419003 -11084, 0.898554, 0.055163, 0.118297, -0.419003 -11085, 0.898554, 0.055163, 0.118297, -0.419003 -11086, 0.898554, 0.055163, 0.118297, -0.419003 -11087, 0.898554, 0.055163, 0.118297, -0.419003 -11088, 0.898554, 0.055163, 0.118297, -0.419003 -11089, 0.898554, 0.055163, 0.118297, -0.419003 -11090, 0.898554, 0.055163, 0.118297, -0.419003 -11091, 0.898554, 0.055163, 0.118297, -0.419003 -11092, 0.898554, 0.055163, 0.118297, -0.419003 -11093, 0.898554, 0.055163, 0.118297, -0.419003 -11094, 0.898554, 0.055163, 0.118297, -0.419003 -11095, 0.898554, 0.055163, 0.118297, -0.419003 -11096, 0.898554, 0.055163, 0.118297, -0.419003 -11097, 0.898554, 0.055163, 0.118297, -0.419003 -11098, 0.898554, 0.055163, 0.118297, -0.419003 -11099, 0.898554, 0.055163, 0.118297, -0.419003 -11100, 0.902298, 0.063628, 0.142910, -0.401729 -11101, 0.902298, 0.063628, 0.142910, -0.401729 -11102, 0.902298, 0.063628, 0.142910, -0.401729 -11103, 0.902298, 0.063628, 0.142910, -0.401729 -11104, 0.902298, 0.063628, 0.142910, -0.401729 -11105, 0.902298, 0.063628, 0.142910, -0.401729 -11106, 0.902298, 0.063628, 0.142910, -0.401729 -11107, 0.902298, 0.063628, 0.142910, -0.401729 -11108, 0.902298, 0.063628, 0.142910, -0.401729 -11109, 0.902298, 0.063628, 0.142910, -0.401729 -11110, 0.902298, 0.063628, 0.142910, -0.401729 -11111, 0.902298, 0.063628, 0.142910, -0.401729 -11112, 0.902298, 0.063628, 0.142910, -0.401729 -11113, 0.902298, 0.063628, 0.142910, -0.401729 -11114, 0.902298, 0.063628, 0.142910, -0.401729 -11115, 0.902298, 0.063628, 0.142910, -0.401729 -11116, 0.902298, 0.063628, 0.142910, -0.401729 -11117, 0.902298, 0.063628, 0.142910, -0.401729 -11118, 0.902298, 0.063628, 0.142910, -0.401729 -11119, 0.902298, 0.063628, 0.142910, -0.401729 -11120, 0.902298, 0.063628, 0.142910, -0.401729 -11121, 0.902298, 0.063628, 0.142910, -0.401729 -11122, 0.902298, 0.063628, 0.142910, -0.401729 -11123, 0.902298, 0.063628, 0.142910, -0.401729 -11124, 0.902298, 0.063628, 0.142910, -0.401729 -11125, 0.902298, 0.063628, 0.142910, -0.401729 -11126, 0.902298, 0.063628, 0.142910, -0.401729 -11127, 0.902298, 0.063628, 0.142910, -0.401729 -11128, 0.902298, 0.063628, 0.142910, -0.401729 -11129, 0.902298, 0.063628, 0.142910, -0.401729 -11130, 0.902298, 0.063628, 0.142910, -0.401729 -11131, 0.902298, 0.063628, 0.142910, -0.401729 -11132, 0.902298, 0.063628, 0.142910, -0.401729 -11133, 0.902298, 0.063628, 0.142910, -0.401729 -11134, 0.902298, 0.063628, 0.142910, -0.401729 -11135, 0.902298, 0.063628, 0.142910, -0.401729 -11136, 0.902298, 0.063628, 0.142910, -0.401729 -11137, 0.902298, 0.063628, 0.142910, -0.401729 -11138, 0.902298, 0.063628, 0.142910, -0.401729 -11139, 0.902298, 0.063628, 0.142910, -0.401729 -11140, 0.902298, 0.063628, 0.142910, -0.401729 -11141, 0.902298, 0.063628, 0.142910, -0.401729 -11142, 0.902298, 0.063628, 0.142910, -0.401729 -11143, 0.902298, 0.063628, 0.142910, -0.401729 -11144, 0.902298, 0.063628, 0.142910, -0.401729 -11145, 0.902298, 0.063628, 0.142910, -0.401729 -11146, 0.902298, 0.063628, 0.142910, -0.401729 -11147, 0.902298, 0.063628, 0.142910, -0.401729 -11148, 0.902298, 0.063628, 0.142910, -0.401729 -11149, 0.902298, 0.063628, 0.142910, -0.401729 -11150, 0.902298, 0.063628, 0.142910, -0.401729 -11151, 0.902298, 0.063628, 0.142910, -0.401729 -11152, 0.902298, 0.063628, 0.142910, -0.401729 -11153, 0.902298, 0.063628, 0.142910, -0.401729 -11154, 0.902298, 0.063628, 0.142910, -0.401729 -11155, 0.902298, 0.063628, 0.142910, -0.401729 -11156, 0.902298, 0.063628, 0.142910, -0.401729 -11157, 0.902298, 0.063628, 0.142910, -0.401729 -11158, 0.902298, 0.063628, 0.142910, -0.401729 -11159, 0.902298, 0.063628, 0.142910, -0.401729 -11160, 0.902298, 0.063628, 0.142910, -0.401729 -11161, 0.902298, 0.063628, 0.142910, -0.401729 -11162, 0.902298, 0.063628, 0.142910, -0.401729 -11163, 0.902298, 0.063628, 0.142910, -0.401729 -11164, 0.902298, 0.063628, 0.142910, -0.401729 -11165, 0.902298, 0.063628, 0.142910, -0.401729 -11166, 0.902298, 0.063628, 0.142910, -0.401729 -11167, 0.902298, 0.063628, 0.142910, -0.401729 -11168, 0.902298, 0.063628, 0.142910, -0.401729 -11169, 0.902298, 0.063628, 0.142910, -0.401729 -11170, 0.902298, 0.063628, 0.142910, -0.401729 -11171, 0.902298, 0.063628, 0.142910, -0.401729 -11172, 0.902298, 0.063628, 0.142910, -0.401729 -11173, 0.902298, 0.063628, 0.142910, -0.401729 -11174, 0.902298, 0.063628, 0.142910, -0.401729 -11175, 0.902298, 0.063628, 0.142910, -0.401729 -11176, 0.902298, 0.063628, 0.142910, -0.401729 -11177, 0.902298, 0.063628, 0.142910, -0.401729 -11178, 0.902298, 0.063628, 0.142910, -0.401729 -11179, 0.902298, 0.063628, 0.142910, -0.401729 -11180, 0.902298, 0.063628, 0.142910, -0.401729 -11181, 0.902298, 0.063628, 0.142910, -0.401729 -11182, 0.902298, 0.063628, 0.142910, -0.401729 -11183, 0.902298, 0.063628, 0.142910, -0.401729 -11184, 0.902298, 0.063628, 0.142910, -0.401729 -11185, 0.902298, 0.063628, 0.142910, -0.401729 -11186, 0.902298, 0.063628, 0.142910, -0.401729 -11187, 0.902298, 0.063628, 0.142910, -0.401729 -11188, 0.902298, 0.063628, 0.142910, -0.401729 -11189, 0.902298, 0.063628, 0.142910, -0.401729 -11190, 0.902298, 0.063628, 0.142910, -0.401729 -11191, 0.902298, 0.063628, 0.142910, -0.401729 -11192, 0.902298, 0.063628, 0.142910, -0.401729 -11193, 0.902298, 0.063628, 0.142910, -0.401729 -11194, 0.902298, 0.063628, 0.142910, -0.401729 -11195, 0.902298, 0.063628, 0.142910, -0.401729 -11196, 0.902298, 0.063628, 0.142910, -0.401729 -11197, 0.902298, 0.063628, 0.142910, -0.401729 -11198, 0.902298, 0.063628, 0.142910, -0.401729 -11199, 0.902298, 0.063628, 0.142910, -0.401729 -11200, 0.905091, 0.071205, 0.167749, -0.384188 -11201, 0.905091, 0.071205, 0.167749, -0.384188 -11202, 0.905091, 0.071205, 0.167749, -0.384188 -11203, 0.905091, 0.071205, 0.167749, -0.384188 -11204, 0.905091, 0.071205, 0.167749, -0.384188 -11205, 0.905091, 0.071205, 0.167749, -0.384188 -11206, 0.905091, 0.071205, 0.167749, -0.384188 -11207, 0.905091, 0.071205, 0.167749, -0.384188 -11208, 0.905091, 0.071205, 0.167749, -0.384188 -11209, 0.905091, 0.071205, 0.167749, -0.384188 -11210, 0.905091, 0.071205, 0.167749, -0.384188 -11211, 0.905091, 0.071205, 0.167749, -0.384188 -11212, 0.905091, 0.071205, 0.167749, -0.384188 -11213, 0.905091, 0.071205, 0.167749, -0.384188 -11214, 0.905091, 0.071205, 0.167749, -0.384188 -11215, 0.905091, 0.071205, 0.167749, -0.384188 -11216, 0.905091, 0.071205, 0.167749, -0.384188 -11217, 0.905091, 0.071205, 0.167749, -0.384188 -11218, 0.905091, 0.071205, 0.167749, -0.384188 -11219, 0.905091, 0.071205, 0.167749, -0.384188 -11220, 0.905091, 0.071205, 0.167749, -0.384188 -11221, 0.905091, 0.071205, 0.167749, -0.384188 -11222, 0.905091, 0.071205, 0.167749, -0.384188 -11223, 0.905091, 0.071205, 0.167749, -0.384188 -11224, 0.905091, 0.071205, 0.167749, -0.384188 -11225, 0.905091, 0.071205, 0.167749, -0.384188 -11226, 0.905091, 0.071205, 0.167749, -0.384188 -11227, 0.905091, 0.071205, 0.167749, -0.384188 -11228, 0.905091, 0.071205, 0.167749, -0.384188 -11229, 0.905091, 0.071205, 0.167749, -0.384188 -11230, 0.905091, 0.071205, 0.167749, -0.384188 -11231, 0.905091, 0.071205, 0.167749, -0.384188 -11232, 0.905091, 0.071205, 0.167749, -0.384188 -11233, 0.905091, 0.071205, 0.167749, -0.384188 -11234, 0.905091, 0.071205, 0.167749, -0.384188 -11235, 0.905091, 0.071205, 0.167749, -0.384188 -11236, 0.905091, 0.071205, 0.167749, -0.384188 -11237, 0.905091, 0.071205, 0.167749, -0.384188 -11238, 0.905091, 0.071205, 0.167749, -0.384188 -11239, 0.905091, 0.071205, 0.167749, -0.384188 -11240, 0.905091, 0.071205, 0.167749, -0.384188 -11241, 0.905091, 0.071205, 0.167749, -0.384188 -11242, 0.905091, 0.071205, 0.167749, -0.384188 -11243, 0.905091, 0.071205, 0.167749, -0.384188 -11244, 0.905091, 0.071205, 0.167749, -0.384188 -11245, 0.905091, 0.071205, 0.167749, -0.384188 -11246, 0.905091, 0.071205, 0.167749, -0.384188 -11247, 0.905091, 0.071205, 0.167749, -0.384188 -11248, 0.905091, 0.071205, 0.167749, -0.384188 -11249, 0.905091, 0.071205, 0.167749, -0.384188 -11250, 0.905091, 0.071205, 0.167749, -0.384188 -11251, 0.905091, 0.071205, 0.167749, -0.384188 -11252, 0.905091, 0.071205, 0.167749, -0.384188 -11253, 0.905091, 0.071205, 0.167749, -0.384188 -11254, 0.905091, 0.071205, 0.167749, -0.384188 -11255, 0.905091, 0.071205, 0.167749, -0.384188 -11256, 0.905091, 0.071205, 0.167749, -0.384188 -11257, 0.905091, 0.071205, 0.167749, -0.384188 -11258, 0.905091, 0.071205, 0.167749, -0.384188 -11259, 0.905091, 0.071205, 0.167749, -0.384188 -11260, 0.905091, 0.071205, 0.167749, -0.384188 -11261, 0.905091, 0.071205, 0.167749, -0.384188 -11262, 0.905091, 0.071205, 0.167749, -0.384188 -11263, 0.905091, 0.071205, 0.167749, -0.384188 -11264, 0.905091, 0.071205, 0.167749, -0.384188 -11265, 0.905091, 0.071205, 0.167749, -0.384188 -11266, 0.905091, 0.071205, 0.167749, -0.384188 -11267, 0.905091, 0.071205, 0.167749, -0.384188 -11268, 0.905091, 0.071205, 0.167749, -0.384188 -11269, 0.905091, 0.071205, 0.167749, -0.384188 -11270, 0.905091, 0.071205, 0.167749, -0.384188 -11271, 0.905091, 0.071205, 0.167749, -0.384188 -11272, 0.905091, 0.071205, 0.167749, -0.384188 -11273, 0.905091, 0.071205, 0.167749, -0.384188 -11274, 0.905091, 0.071205, 0.167749, -0.384188 -11275, 0.905091, 0.071205, 0.167749, -0.384188 -11276, 0.905091, 0.071205, 0.167749, -0.384188 -11277, 0.905091, 0.071205, 0.167749, -0.384188 -11278, 0.905091, 0.071205, 0.167749, -0.384188 -11279, 0.905091, 0.071205, 0.167749, -0.384188 -11280, 0.905091, 0.071205, 0.167749, -0.384188 -11281, 0.905091, 0.071205, 0.167749, -0.384188 -11282, 0.905091, 0.071205, 0.167749, -0.384188 -11283, 0.905091, 0.071205, 0.167749, -0.384188 -11284, 0.905091, 0.071205, 0.167749, -0.384188 -11285, 0.905091, 0.071205, 0.167749, -0.384188 -11286, 0.905091, 0.071205, 0.167749, -0.384188 -11287, 0.905091, 0.071205, 0.167749, -0.384188 -11288, 0.905091, 0.071205, 0.167749, -0.384188 -11289, 0.905091, 0.071205, 0.167749, -0.384188 -11290, 0.905091, 0.071205, 0.167749, -0.384188 -11291, 0.905091, 0.071205, 0.167749, -0.384188 -11292, 0.905091, 0.071205, 0.167749, -0.384188 -11293, 0.905091, 0.071205, 0.167749, -0.384188 -11294, 0.905091, 0.071205, 0.167749, -0.384188 -11295, 0.905091, 0.071205, 0.167749, -0.384188 -11296, 0.905091, 0.071205, 0.167749, -0.384188 -11297, 0.905091, 0.071205, 0.167749, -0.384188 -11298, 0.905091, 0.071205, 0.167749, -0.384188 -11299, 0.905091, 0.071205, 0.167749, -0.384188 -11300, 0.906923, 0.077885, 0.192772, -0.366421 -11301, 0.906923, 0.077885, 0.192772, -0.366421 -11302, 0.906923, 0.077885, 0.192772, -0.366421 -11303, 0.906923, 0.077885, 0.192772, -0.366421 -11304, 0.906923, 0.077885, 0.192772, -0.366421 -11305, 0.906923, 0.077885, 0.192772, -0.366421 -11306, 0.906923, 0.077885, 0.192772, -0.366421 -11307, 0.906923, 0.077885, 0.192772, -0.366421 -11308, 0.906923, 0.077885, 0.192772, -0.366421 -11309, 0.906923, 0.077885, 0.192772, -0.366421 -11310, 0.906923, 0.077885, 0.192772, -0.366421 -11311, 0.906923, 0.077885, 0.192772, -0.366421 -11312, 0.906923, 0.077885, 0.192772, -0.366421 -11313, 0.906923, 0.077885, 0.192772, -0.366421 -11314, 0.906923, 0.077885, 0.192772, -0.366421 -11315, 0.906923, 0.077885, 0.192772, -0.366421 -11316, 0.906923, 0.077885, 0.192772, -0.366421 -11317, 0.906923, 0.077885, 0.192772, -0.366421 -11318, 0.906923, 0.077885, 0.192772, -0.366421 -11319, 0.906923, 0.077885, 0.192772, -0.366421 -11320, 0.906923, 0.077885, 0.192772, -0.366421 -11321, 0.906923, 0.077885, 0.192772, -0.366421 -11322, 0.906923, 0.077885, 0.192772, -0.366421 -11323, 0.906923, 0.077885, 0.192772, -0.366421 -11324, 0.906923, 0.077885, 0.192772, -0.366421 -11325, 0.906923, 0.077885, 0.192772, -0.366421 -11326, 0.906923, 0.077885, 0.192772, -0.366421 -11327, 0.906923, 0.077885, 0.192772, -0.366421 -11328, 0.906923, 0.077885, 0.192772, -0.366421 -11329, 0.906923, 0.077885, 0.192772, -0.366421 -11330, 0.906923, 0.077885, 0.192772, -0.366421 -11331, 0.906923, 0.077885, 0.192772, -0.366421 -11332, 0.906923, 0.077885, 0.192772, -0.366421 -11333, 0.906923, 0.077885, 0.192772, -0.366421 -11334, 0.906923, 0.077885, 0.192772, -0.366421 -11335, 0.906923, 0.077885, 0.192772, -0.366421 -11336, 0.906923, 0.077885, 0.192772, -0.366421 -11337, 0.906923, 0.077885, 0.192772, -0.366421 -11338, 0.906923, 0.077885, 0.192772, -0.366421 -11339, 0.906923, 0.077885, 0.192772, -0.366421 -11340, 0.906923, 0.077885, 0.192772, -0.366421 -11341, 0.906923, 0.077885, 0.192772, -0.366421 -11342, 0.906923, 0.077885, 0.192772, -0.366421 -11343, 0.906923, 0.077885, 0.192772, -0.366421 -11344, 0.906923, 0.077885, 0.192772, -0.366421 -11345, 0.906923, 0.077885, 0.192772, -0.366421 -11346, 0.906923, 0.077885, 0.192772, -0.366421 -11347, 0.906923, 0.077885, 0.192772, -0.366421 -11348, 0.906923, 0.077885, 0.192772, -0.366421 -11349, 0.906923, 0.077885, 0.192772, -0.366421 -11350, 0.906923, 0.077885, 0.192772, -0.366421 -11351, 0.906923, 0.077885, 0.192772, -0.366421 -11352, 0.906923, 0.077885, 0.192772, -0.366421 -11353, 0.906923, 0.077885, 0.192772, -0.366421 -11354, 0.906923, 0.077885, 0.192772, -0.366421 -11355, 0.906923, 0.077885, 0.192772, -0.366421 -11356, 0.906923, 0.077885, 0.192772, -0.366421 -11357, 0.906923, 0.077885, 0.192772, -0.366421 -11358, 0.906923, 0.077885, 0.192772, -0.366421 -11359, 0.906923, 0.077885, 0.192772, -0.366421 -11360, 0.906923, 0.077885, 0.192772, -0.366421 -11361, 0.906923, 0.077885, 0.192772, -0.366421 -11362, 0.906923, 0.077885, 0.192772, -0.366421 -11363, 0.906923, 0.077885, 0.192772, -0.366421 -11364, 0.906923, 0.077885, 0.192772, -0.366421 -11365, 0.906923, 0.077885, 0.192772, -0.366421 -11366, 0.906923, 0.077885, 0.192772, -0.366421 -11367, 0.906923, 0.077885, 0.192772, -0.366421 -11368, 0.906923, 0.077885, 0.192772, -0.366421 -11369, 0.906923, 0.077885, 0.192772, -0.366421 -11370, 0.906923, 0.077885, 0.192772, -0.366421 -11371, 0.906923, 0.077885, 0.192772, -0.366421 -11372, 0.906923, 0.077885, 0.192772, -0.366421 -11373, 0.906923, 0.077885, 0.192772, -0.366421 -11374, 0.906923, 0.077885, 0.192772, -0.366421 -11375, 0.906923, 0.077885, 0.192772, -0.366421 -11376, 0.906923, 0.077885, 0.192772, -0.366421 -11377, 0.906923, 0.077885, 0.192772, -0.366421 -11378, 0.906923, 0.077885, 0.192772, -0.366421 -11379, 0.906923, 0.077885, 0.192772, -0.366421 -11380, 0.906923, 0.077885, 0.192772, -0.366421 -11381, 0.906923, 0.077885, 0.192772, -0.366421 -11382, 0.906923, 0.077885, 0.192772, -0.366421 -11383, 0.906923, 0.077885, 0.192772, -0.366421 -11384, 0.906923, 0.077885, 0.192772, -0.366421 -11385, 0.906923, 0.077885, 0.192772, -0.366421 -11386, 0.906923, 0.077885, 0.192772, -0.366421 -11387, 0.906923, 0.077885, 0.192772, -0.366421 -11388, 0.906923, 0.077885, 0.192772, -0.366421 -11389, 0.906923, 0.077885, 0.192772, -0.366421 -11390, 0.906923, 0.077885, 0.192772, -0.366421 -11391, 0.906923, 0.077885, 0.192772, -0.366421 -11392, 0.906923, 0.077885, 0.192772, -0.366421 -11393, 0.906923, 0.077885, 0.192772, -0.366421 -11394, 0.906923, 0.077885, 0.192772, -0.366421 -11395, 0.906923, 0.077885, 0.192772, -0.366421 -11396, 0.906923, 0.077885, 0.192772, -0.366421 -11397, 0.906923, 0.077885, 0.192772, -0.366421 -11398, 0.906923, 0.077885, 0.192772, -0.366421 -11399, 0.906923, 0.077885, 0.192772, -0.366421 -11400, 0.907786, 0.083659, 0.217940, -0.348466 -11401, 0.907786, 0.083659, 0.217940, -0.348466 -11402, 0.907786, 0.083659, 0.217940, -0.348466 -11403, 0.907786, 0.083659, 0.217940, -0.348466 -11404, 0.907786, 0.083659, 0.217940, -0.348466 -11405, 0.907786, 0.083659, 0.217940, -0.348466 -11406, 0.907786, 0.083659, 0.217940, -0.348466 -11407, 0.907786, 0.083659, 0.217940, -0.348466 -11408, 0.907786, 0.083659, 0.217940, -0.348466 -11409, 0.907786, 0.083659, 0.217940, -0.348466 -11410, 0.907786, 0.083659, 0.217940, -0.348466 -11411, 0.907786, 0.083659, 0.217940, -0.348466 -11412, 0.907786, 0.083659, 0.217940, -0.348466 -11413, 0.907786, 0.083659, 0.217940, -0.348466 -11414, 0.907786, 0.083659, 0.217940, -0.348466 -11415, 0.907786, 0.083659, 0.217940, -0.348466 -11416, 0.907786, 0.083659, 0.217940, -0.348466 -11417, 0.907786, 0.083659, 0.217940, -0.348466 -11418, 0.907786, 0.083659, 0.217940, -0.348466 -11419, 0.907786, 0.083659, 0.217940, -0.348466 -11420, 0.907786, 0.083659, 0.217940, -0.348466 -11421, 0.907786, 0.083659, 0.217940, -0.348466 -11422, 0.907786, 0.083659, 0.217940, -0.348466 -11423, 0.907786, 0.083659, 0.217940, -0.348466 -11424, 0.907786, 0.083659, 0.217940, -0.348466 -11425, 0.907786, 0.083659, 0.217940, -0.348466 -11426, 0.907786, 0.083659, 0.217940, -0.348466 -11427, 0.907786, 0.083659, 0.217940, -0.348466 -11428, 0.907786, 0.083659, 0.217940, -0.348466 -11429, 0.907786, 0.083659, 0.217940, -0.348466 -11430, 0.907786, 0.083659, 0.217940, -0.348466 -11431, 0.907786, 0.083659, 0.217940, -0.348466 -11432, 0.907786, 0.083659, 0.217940, -0.348466 -11433, 0.907786, 0.083659, 0.217940, -0.348466 -11434, 0.907786, 0.083659, 0.217940, -0.348466 -11435, 0.907786, 0.083659, 0.217940, -0.348466 -11436, 0.907786, 0.083659, 0.217940, -0.348466 -11437, 0.907786, 0.083659, 0.217940, -0.348466 -11438, 0.907786, 0.083659, 0.217940, -0.348466 -11439, 0.907786, 0.083659, 0.217940, -0.348466 -11440, 0.907786, 0.083659, 0.217940, -0.348466 -11441, 0.907786, 0.083659, 0.217940, -0.348466 -11442, 0.907786, 0.083659, 0.217940, -0.348466 -11443, 0.907786, 0.083659, 0.217940, -0.348466 -11444, 0.907786, 0.083659, 0.217940, -0.348466 -11445, 0.907786, 0.083659, 0.217940, -0.348466 -11446, 0.907786, 0.083659, 0.217940, -0.348466 -11447, 0.907786, 0.083659, 0.217940, -0.348466 -11448, 0.907786, 0.083659, 0.217940, -0.348466 -11449, 0.907786, 0.083659, 0.217940, -0.348466 -11450, 0.907786, 0.083659, 0.217940, -0.348466 -11451, 0.907786, 0.083659, 0.217940, -0.348466 -11452, 0.907786, 0.083659, 0.217940, -0.348466 -11453, 0.907786, 0.083659, 0.217940, -0.348466 -11454, 0.907786, 0.083659, 0.217940, -0.348466 -11455, 0.907786, 0.083659, 0.217940, -0.348466 -11456, 0.907786, 0.083659, 0.217940, -0.348466 -11457, 0.907786, 0.083659, 0.217940, -0.348466 -11458, 0.907786, 0.083659, 0.217940, -0.348466 -11459, 0.907786, 0.083659, 0.217940, -0.348466 -11460, 0.907786, 0.083659, 0.217940, -0.348466 -11461, 0.907786, 0.083659, 0.217940, -0.348466 -11462, 0.907786, 0.083659, 0.217940, -0.348466 -11463, 0.907786, 0.083659, 0.217940, -0.348466 -11464, 0.907786, 0.083659, 0.217940, -0.348466 -11465, 0.907786, 0.083659, 0.217940, -0.348466 -11466, 0.907786, 0.083659, 0.217940, -0.348466 -11467, 0.907786, 0.083659, 0.217940, -0.348466 -11468, 0.907786, 0.083659, 0.217940, -0.348466 -11469, 0.907786, 0.083659, 0.217940, -0.348466 -11470, 0.907786, 0.083659, 0.217940, -0.348466 -11471, 0.907786, 0.083659, 0.217940, -0.348466 -11472, 0.907786, 0.083659, 0.217940, -0.348466 -11473, 0.907786, 0.083659, 0.217940, -0.348466 -11474, 0.907786, 0.083659, 0.217940, -0.348466 -11475, 0.907786, 0.083659, 0.217940, -0.348466 -11476, 0.907786, 0.083659, 0.217940, -0.348466 -11477, 0.907786, 0.083659, 0.217940, -0.348466 -11478, 0.907786, 0.083659, 0.217940, -0.348466 -11479, 0.907786, 0.083659, 0.217940, -0.348466 -11480, 0.907786, 0.083659, 0.217940, -0.348466 -11481, 0.907786, 0.083659, 0.217940, -0.348466 -11482, 0.907786, 0.083659, 0.217940, -0.348466 -11483, 0.907786, 0.083659, 0.217940, -0.348466 -11484, 0.907786, 0.083659, 0.217940, -0.348466 -11485, 0.907786, 0.083659, 0.217940, -0.348466 -11486, 0.907786, 0.083659, 0.217940, -0.348466 -11487, 0.907786, 0.083659, 0.217940, -0.348466 -11488, 0.907786, 0.083659, 0.217940, -0.348466 -11489, 0.907786, 0.083659, 0.217940, -0.348466 -11490, 0.907786, 0.083659, 0.217940, -0.348466 -11491, 0.907786, 0.083659, 0.217940, -0.348466 -11492, 0.907786, 0.083659, 0.217940, -0.348466 -11493, 0.907786, 0.083659, 0.217940, -0.348466 -11494, 0.907786, 0.083659, 0.217940, -0.348466 -11495, 0.907786, 0.083659, 0.217940, -0.348466 -11496, 0.907786, 0.083659, 0.217940, -0.348466 -11497, 0.907786, 0.083659, 0.217940, -0.348466 -11498, 0.907786, 0.083659, 0.217940, -0.348466 -11499, 0.907786, 0.083659, 0.217940, -0.348466 -11500, 0.907673, 0.088521, 0.243210, -0.330366 -11501, 0.907673, 0.088521, 0.243210, -0.330366 -11502, 0.907673, 0.088521, 0.243210, -0.330366 -11503, 0.907673, 0.088521, 0.243210, -0.330366 -11504, 0.907673, 0.088521, 0.243210, -0.330366 -11505, 0.907673, 0.088521, 0.243210, -0.330366 -11506, 0.907673, 0.088521, 0.243210, -0.330366 -11507, 0.907673, 0.088521, 0.243210, -0.330366 -11508, 0.907673, 0.088521, 0.243210, -0.330366 -11509, 0.907673, 0.088521, 0.243210, -0.330366 -11510, 0.907673, 0.088521, 0.243210, -0.330366 -11511, 0.907673, 0.088521, 0.243210, -0.330366 -11512, 0.907673, 0.088521, 0.243210, -0.330366 -11513, 0.907673, 0.088521, 0.243210, -0.330366 -11514, 0.907673, 0.088521, 0.243210, -0.330366 -11515, 0.907673, 0.088521, 0.243210, -0.330366 -11516, 0.907673, 0.088521, 0.243210, -0.330366 -11517, 0.907673, 0.088521, 0.243210, -0.330366 -11518, 0.907673, 0.088521, 0.243210, -0.330366 -11519, 0.907673, 0.088521, 0.243210, -0.330366 -11520, 0.907673, 0.088521, 0.243210, -0.330366 -11521, 0.907673, 0.088521, 0.243210, -0.330366 -11522, 0.907673, 0.088521, 0.243210, -0.330366 -11523, 0.907673, 0.088521, 0.243210, -0.330366 -11524, 0.907673, 0.088521, 0.243210, -0.330366 -11525, 0.907673, 0.088521, 0.243210, -0.330366 -11526, 0.907673, 0.088521, 0.243210, -0.330366 -11527, 0.907673, 0.088521, 0.243210, -0.330366 -11528, 0.907673, 0.088521, 0.243210, -0.330366 -11529, 0.907673, 0.088521, 0.243210, -0.330366 -11530, 0.907673, 0.088521, 0.243210, -0.330366 -11531, 0.907673, 0.088521, 0.243210, -0.330366 -11532, 0.907673, 0.088521, 0.243210, -0.330366 -11533, 0.907673, 0.088521, 0.243210, -0.330366 -11534, 0.907673, 0.088521, 0.243210, -0.330366 -11535, 0.907673, 0.088521, 0.243210, -0.330366 -11536, 0.907673, 0.088521, 0.243210, -0.330366 -11537, 0.907673, 0.088521, 0.243210, -0.330366 -11538, 0.907673, 0.088521, 0.243210, -0.330366 -11539, 0.907673, 0.088521, 0.243210, -0.330366 -11540, 0.907673, 0.088521, 0.243210, -0.330366 -11541, 0.907673, 0.088521, 0.243210, -0.330366 -11542, 0.907673, 0.088521, 0.243210, -0.330366 -11543, 0.907673, 0.088521, 0.243210, -0.330366 -11544, 0.907673, 0.088521, 0.243210, -0.330366 -11545, 0.907673, 0.088521, 0.243210, -0.330366 -11546, 0.907673, 0.088521, 0.243210, -0.330366 -11547, 0.907673, 0.088521, 0.243210, -0.330366 -11548, 0.907673, 0.088521, 0.243210, -0.330366 -11549, 0.907673, 0.088521, 0.243210, -0.330366 -11550, 0.907673, 0.088521, 0.243210, -0.330366 -11551, 0.907673, 0.088521, 0.243210, -0.330366 -11552, 0.907673, 0.088521, 0.243210, -0.330366 -11553, 0.907673, 0.088521, 0.243210, -0.330366 -11554, 0.907673, 0.088521, 0.243210, -0.330366 -11555, 0.907673, 0.088521, 0.243210, -0.330366 -11556, 0.907673, 0.088521, 0.243210, -0.330366 -11557, 0.907673, 0.088521, 0.243210, -0.330366 -11558, 0.907673, 0.088521, 0.243210, -0.330366 -11559, 0.907673, 0.088521, 0.243210, -0.330366 -11560, 0.907673, 0.088521, 0.243210, -0.330366 -11561, 0.907673, 0.088521, 0.243210, -0.330366 -11562, 0.907673, 0.088521, 0.243210, -0.330366 -11563, 0.907673, 0.088521, 0.243210, -0.330366 -11564, 0.907673, 0.088521, 0.243210, -0.330366 -11565, 0.907673, 0.088521, 0.243210, -0.330366 -11566, 0.907673, 0.088521, 0.243210, -0.330366 -11567, 0.907673, 0.088521, 0.243210, -0.330366 -11568, 0.907673, 0.088521, 0.243210, -0.330366 -11569, 0.907673, 0.088521, 0.243210, -0.330366 -11570, 0.907673, 0.088521, 0.243210, -0.330366 -11571, 0.907673, 0.088521, 0.243210, -0.330366 -11572, 0.907673, 0.088521, 0.243210, -0.330366 -11573, 0.907673, 0.088521, 0.243210, -0.330366 -11574, 0.907673, 0.088521, 0.243210, -0.330366 -11575, 0.907673, 0.088521, 0.243210, -0.330366 -11576, 0.907673, 0.088521, 0.243210, -0.330366 -11577, 0.907673, 0.088521, 0.243210, -0.330366 -11578, 0.907673, 0.088521, 0.243210, -0.330366 -11579, 0.907673, 0.088521, 0.243210, -0.330366 -11580, 0.907673, 0.088521, 0.243210, -0.330366 -11581, 0.907673, 0.088521, 0.243210, -0.330366 -11582, 0.907673, 0.088521, 0.243210, -0.330366 -11583, 0.907673, 0.088521, 0.243210, -0.330366 -11584, 0.907673, 0.088521, 0.243210, -0.330366 -11585, 0.907673, 0.088521, 0.243210, -0.330366 -11586, 0.907673, 0.088521, 0.243210, -0.330366 -11587, 0.907673, 0.088521, 0.243210, -0.330366 -11588, 0.907673, 0.088521, 0.243210, -0.330366 -11589, 0.907673, 0.088521, 0.243210, -0.330366 -11590, 0.907673, 0.088521, 0.243210, -0.330366 -11591, 0.907673, 0.088521, 0.243210, -0.330366 -11592, 0.907673, 0.088521, 0.243210, -0.330366 -11593, 0.907673, 0.088521, 0.243210, -0.330366 -11594, 0.907673, 0.088521, 0.243210, -0.330366 -11595, 0.907673, 0.088521, 0.243210, -0.330366 -11596, 0.907673, 0.088521, 0.243210, -0.330366 -11597, 0.907673, 0.088521, 0.243210, -0.330366 -11598, 0.907673, 0.088521, 0.243210, -0.330366 -11599, 0.907673, 0.088521, 0.243210, -0.330366 -11600, 0.906582, 0.092466, 0.268542, -0.312161 -11601, 0.906582, 0.092466, 0.268542, -0.312161 -11602, 0.906582, 0.092466, 0.268542, -0.312161 -11603, 0.906582, 0.092466, 0.268542, -0.312161 -11604, 0.906582, 0.092466, 0.268542, -0.312161 -11605, 0.906582, 0.092466, 0.268542, -0.312161 -11606, 0.906582, 0.092466, 0.268542, -0.312161 -11607, 0.906582, 0.092466, 0.268542, -0.312161 -11608, 0.906582, 0.092466, 0.268542, -0.312161 -11609, 0.906582, 0.092466, 0.268542, -0.312161 -11610, 0.906582, 0.092466, 0.268542, -0.312161 -11611, 0.906582, 0.092466, 0.268542, -0.312161 -11612, 0.906582, 0.092466, 0.268542, -0.312161 -11613, 0.906582, 0.092466, 0.268542, -0.312161 -11614, 0.906582, 0.092466, 0.268542, -0.312161 -11615, 0.906582, 0.092466, 0.268542, -0.312161 -11616, 0.906582, 0.092466, 0.268542, -0.312161 -11617, 0.906582, 0.092466, 0.268542, -0.312161 -11618, 0.906582, 0.092466, 0.268542, -0.312161 -11619, 0.906582, 0.092466, 0.268542, -0.312161 -11620, 0.906582, 0.092466, 0.268542, -0.312161 -11621, 0.906582, 0.092466, 0.268542, -0.312161 -11622, 0.906582, 0.092466, 0.268542, -0.312161 -11623, 0.906582, 0.092466, 0.268542, -0.312161 -11624, 0.906582, 0.092466, 0.268542, -0.312161 -11625, 0.906582, 0.092466, 0.268542, -0.312161 -11626, 0.906582, 0.092466, 0.268542, -0.312161 -11627, 0.906582, 0.092466, 0.268542, -0.312161 -11628, 0.906582, 0.092466, 0.268542, -0.312161 -11629, 0.906582, 0.092466, 0.268542, -0.312161 -11630, 0.906582, 0.092466, 0.268542, -0.312161 -11631, 0.906582, 0.092466, 0.268542, -0.312161 -11632, 0.906582, 0.092466, 0.268542, -0.312161 -11633, 0.906582, 0.092466, 0.268542, -0.312161 -11634, 0.906582, 0.092466, 0.268542, -0.312161 -11635, 0.906582, 0.092466, 0.268542, -0.312161 -11636, 0.906582, 0.092466, 0.268542, -0.312161 -11637, 0.906582, 0.092466, 0.268542, -0.312161 -11638, 0.906582, 0.092466, 0.268542, -0.312161 -11639, 0.906582, 0.092466, 0.268542, -0.312161 -11640, 0.906582, 0.092466, 0.268542, -0.312161 -11641, 0.906582, 0.092466, 0.268542, -0.312161 -11642, 0.906582, 0.092466, 0.268542, -0.312161 -11643, 0.906582, 0.092466, 0.268542, -0.312161 -11644, 0.906582, 0.092466, 0.268542, -0.312161 -11645, 0.906582, 0.092466, 0.268542, -0.312161 -11646, 0.906582, 0.092466, 0.268542, -0.312161 -11647, 0.906582, 0.092466, 0.268542, -0.312161 -11648, 0.906582, 0.092466, 0.268542, -0.312161 -11649, 0.906582, 0.092466, 0.268542, -0.312161 -11650, 0.906582, 0.092466, 0.268542, -0.312161 -11651, 0.906582, 0.092466, 0.268542, -0.312161 -11652, 0.906582, 0.092466, 0.268542, -0.312161 -11653, 0.906582, 0.092466, 0.268542, -0.312161 -11654, 0.906582, 0.092466, 0.268542, -0.312161 -11655, 0.906582, 0.092466, 0.268542, -0.312161 -11656, 0.906582, 0.092466, 0.268542, -0.312161 -11657, 0.906582, 0.092466, 0.268542, -0.312161 -11658, 0.906582, 0.092466, 0.268542, -0.312161 -11659, 0.906582, 0.092466, 0.268542, -0.312161 -11660, 0.906582, 0.092466, 0.268542, -0.312161 -11661, 0.906582, 0.092466, 0.268542, -0.312161 -11662, 0.906582, 0.092466, 0.268542, -0.312161 -11663, 0.906582, 0.092466, 0.268542, -0.312161 -11664, 0.906582, 0.092466, 0.268542, -0.312161 -11665, 0.906582, 0.092466, 0.268542, -0.312161 -11666, 0.906582, 0.092466, 0.268542, -0.312161 -11667, 0.906582, 0.092466, 0.268542, -0.312161 -11668, 0.906582, 0.092466, 0.268542, -0.312161 -11669, 0.906582, 0.092466, 0.268542, -0.312161 -11670, 0.906582, 0.092466, 0.268542, -0.312161 -11671, 0.906582, 0.092466, 0.268542, -0.312161 -11672, 0.906582, 0.092466, 0.268542, -0.312161 -11673, 0.906582, 0.092466, 0.268542, -0.312161 -11674, 0.906582, 0.092466, 0.268542, -0.312161 -11675, 0.906582, 0.092466, 0.268542, -0.312161 -11676, 0.906582, 0.092466, 0.268542, -0.312161 -11677, 0.906582, 0.092466, 0.268542, -0.312161 -11678, 0.906582, 0.092466, 0.268542, -0.312161 -11679, 0.906582, 0.092466, 0.268542, -0.312161 -11680, 0.906582, 0.092466, 0.268542, -0.312161 -11681, 0.906582, 0.092466, 0.268542, -0.312161 -11682, 0.906582, 0.092466, 0.268542, -0.312161 -11683, 0.906582, 0.092466, 0.268542, -0.312161 -11684, 0.906582, 0.092466, 0.268542, -0.312161 -11685, 0.906582, 0.092466, 0.268542, -0.312161 -11686, 0.906582, 0.092466, 0.268542, -0.312161 -11687, 0.906582, 0.092466, 0.268542, -0.312161 -11688, 0.906582, 0.092466, 0.268542, -0.312161 -11689, 0.906582, 0.092466, 0.268542, -0.312161 -11690, 0.906582, 0.092466, 0.268542, -0.312161 -11691, 0.906582, 0.092466, 0.268542, -0.312161 -11692, 0.906582, 0.092466, 0.268542, -0.312161 -11693, 0.906582, 0.092466, 0.268542, -0.312161 -11694, 0.906582, 0.092466, 0.268542, -0.312161 -11695, 0.906582, 0.092466, 0.268542, -0.312161 -11696, 0.906582, 0.092466, 0.268542, -0.312161 -11697, 0.906582, 0.092466, 0.268542, -0.312161 -11698, 0.906582, 0.092466, 0.268542, -0.312161 -11699, 0.906582, 0.092466, 0.268542, -0.312161 -11700, 0.904508, 0.095492, 0.293893, -0.293893 -11701, 0.904508, 0.095492, 0.293893, -0.293893 -11702, 0.904508, 0.095492, 0.293893, -0.293893 -11703, 0.904508, 0.095492, 0.293893, -0.293893 -11704, 0.904508, 0.095492, 0.293893, -0.293893 -11705, 0.904508, 0.095492, 0.293893, -0.293893 -11706, 0.904508, 0.095492, 0.293893, -0.293893 -11707, 0.904508, 0.095492, 0.293893, -0.293893 -11708, 0.904508, 0.095492, 0.293893, -0.293893 -11709, 0.904508, 0.095492, 0.293893, -0.293893 -11710, 0.904508, 0.095492, 0.293893, -0.293893 -11711, 0.904508, 0.095492, 0.293893, -0.293893 -11712, 0.904508, 0.095492, 0.293893, -0.293893 -11713, 0.904508, 0.095492, 0.293893, -0.293893 -11714, 0.904508, 0.095492, 0.293893, -0.293893 -11715, 0.904508, 0.095492, 0.293893, -0.293893 -11716, 0.904508, 0.095492, 0.293893, -0.293893 -11717, 0.904508, 0.095492, 0.293893, -0.293893 -11718, 0.904508, 0.095492, 0.293893, -0.293893 -11719, 0.904508, 0.095492, 0.293893, -0.293893 -11720, 0.904508, 0.095492, 0.293893, -0.293893 -11721, 0.904508, 0.095492, 0.293893, -0.293893 -11722, 0.904508, 0.095492, 0.293893, -0.293893 -11723, 0.904508, 0.095492, 0.293893, -0.293893 -11724, 0.904508, 0.095492, 0.293893, -0.293893 -11725, 0.904508, 0.095492, 0.293893, -0.293893 -11726, 0.904508, 0.095492, 0.293893, -0.293893 -11727, 0.904508, 0.095492, 0.293893, -0.293893 -11728, 0.904508, 0.095492, 0.293893, -0.293893 -11729, 0.904508, 0.095492, 0.293893, -0.293893 -11730, 0.904508, 0.095492, 0.293893, -0.293893 -11731, 0.904508, 0.095492, 0.293893, -0.293893 -11732, 0.904508, 0.095492, 0.293893, -0.293893 -11733, 0.904508, 0.095492, 0.293893, -0.293893 -11734, 0.904508, 0.095492, 0.293893, -0.293893 -11735, 0.904508, 0.095492, 0.293893, -0.293893 -11736, 0.904508, 0.095492, 0.293893, -0.293893 -11737, 0.904508, 0.095492, 0.293893, -0.293893 -11738, 0.904508, 0.095492, 0.293893, -0.293893 -11739, 0.904508, 0.095492, 0.293893, -0.293893 -11740, 0.904508, 0.095492, 0.293893, -0.293893 -11741, 0.904508, 0.095492, 0.293893, -0.293893 -11742, 0.904508, 0.095492, 0.293893, -0.293893 -11743, 0.904508, 0.095492, 0.293893, -0.293893 -11744, 0.904508, 0.095492, 0.293893, -0.293893 -11745, 0.904508, 0.095492, 0.293893, -0.293893 -11746, 0.904508, 0.095492, 0.293893, -0.293893 -11747, 0.904508, 0.095492, 0.293893, -0.293893 -11748, 0.904508, 0.095492, 0.293893, -0.293893 -11749, 0.904508, 0.095492, 0.293893, -0.293893 -11750, 0.904508, 0.095492, 0.293893, -0.293893 -11751, 0.904508, 0.095492, 0.293893, -0.293893 -11752, 0.904508, 0.095492, 0.293893, -0.293893 -11753, 0.904508, 0.095492, 0.293893, -0.293893 -11754, 0.904508, 0.095492, 0.293893, -0.293893 -11755, 0.904508, 0.095492, 0.293893, -0.293893 -11756, 0.904508, 0.095492, 0.293893, -0.293893 -11757, 0.904508, 0.095492, 0.293893, -0.293893 -11758, 0.904508, 0.095492, 0.293893, -0.293893 -11759, 0.904508, 0.095492, 0.293893, -0.293893 -11760, 0.904508, 0.095492, 0.293893, -0.293893 -11761, 0.904508, 0.095492, 0.293893, -0.293893 -11762, 0.904508, 0.095492, 0.293893, -0.293893 -11763, 0.904508, 0.095492, 0.293893, -0.293893 -11764, 0.904508, 0.095492, 0.293893, -0.293893 -11765, 0.904508, 0.095492, 0.293893, -0.293893 -11766, 0.904508, 0.095492, 0.293893, -0.293893 -11767, 0.904508, 0.095492, 0.293893, -0.293893 -11768, 0.904508, 0.095492, 0.293893, -0.293893 -11769, 0.904508, 0.095492, 0.293893, -0.293893 -11770, 0.904508, 0.095492, 0.293893, -0.293893 -11771, 0.904508, 0.095492, 0.293893, -0.293893 -11772, 0.904508, 0.095492, 0.293893, -0.293893 -11773, 0.904508, 0.095492, 0.293893, -0.293893 -11774, 0.904508, 0.095492, 0.293893, -0.293893 -11775, 0.904508, 0.095492, 0.293893, -0.293893 -11776, 0.904508, 0.095492, 0.293893, -0.293893 -11777, 0.904508, 0.095492, 0.293893, -0.293893 -11778, 0.904508, 0.095492, 0.293893, -0.293893 -11779, 0.904508, 0.095492, 0.293893, -0.293893 -11780, 0.904508, 0.095492, 0.293893, -0.293893 -11781, 0.904508, 0.095492, 0.293893, -0.293893 -11782, 0.904508, 0.095492, 0.293893, -0.293893 -11783, 0.904508, 0.095492, 0.293893, -0.293893 -11784, 0.904508, 0.095492, 0.293893, -0.293893 -11785, 0.904508, 0.095492, 0.293893, -0.293893 -11786, 0.904508, 0.095492, 0.293893, -0.293893 -11787, 0.904508, 0.095492, 0.293893, -0.293893 -11788, 0.904508, 0.095492, 0.293893, -0.293893 -11789, 0.904508, 0.095492, 0.293893, -0.293893 -11790, 0.904508, 0.095492, 0.293893, -0.293893 -11791, 0.904508, 0.095492, 0.293893, -0.293893 -11792, 0.904508, 0.095492, 0.293893, -0.293893 -11793, 0.904508, 0.095492, 0.293893, -0.293893 -11794, 0.904508, 0.095492, 0.293893, -0.293893 -11795, 0.904508, 0.095492, 0.293893, -0.293893 -11796, 0.904508, 0.095492, 0.293893, -0.293893 -11797, 0.904508, 0.095492, 0.293893, -0.293893 -11798, 0.904508, 0.095492, 0.293893, -0.293893 -11799, 0.904508, 0.095492, 0.293893, -0.293893 -11800, 0.901453, 0.097596, 0.319221, -0.275602 -11801, 0.901453, 0.097596, 0.319221, -0.275602 -11802, 0.901453, 0.097596, 0.319221, -0.275602 -11803, 0.901453, 0.097596, 0.319221, -0.275602 -11804, 0.901453, 0.097596, 0.319221, -0.275602 -11805, 0.901453, 0.097596, 0.319221, -0.275602 -11806, 0.901453, 0.097596, 0.319221, -0.275602 -11807, 0.901453, 0.097596, 0.319221, -0.275602 -11808, 0.901453, 0.097596, 0.319221, -0.275602 -11809, 0.901453, 0.097596, 0.319221, -0.275602 -11810, 0.901453, 0.097596, 0.319221, -0.275602 -11811, 0.901453, 0.097596, 0.319221, -0.275602 -11812, 0.901453, 0.097596, 0.319221, -0.275602 -11813, 0.901453, 0.097596, 0.319221, -0.275602 -11814, 0.901453, 0.097596, 0.319221, -0.275602 -11815, 0.901453, 0.097596, 0.319221, -0.275602 -11816, 0.901453, 0.097596, 0.319221, -0.275602 -11817, 0.901453, 0.097596, 0.319221, -0.275602 -11818, 0.901453, 0.097596, 0.319221, -0.275602 -11819, 0.901453, 0.097596, 0.319221, -0.275602 -11820, 0.901453, 0.097596, 0.319221, -0.275602 -11821, 0.901453, 0.097596, 0.319221, -0.275602 -11822, 0.901453, 0.097596, 0.319221, -0.275602 -11823, 0.901453, 0.097596, 0.319221, -0.275602 -11824, 0.901453, 0.097596, 0.319221, -0.275602 -11825, 0.901453, 0.097596, 0.319221, -0.275602 -11826, 0.901453, 0.097596, 0.319221, -0.275602 -11827, 0.901453, 0.097596, 0.319221, -0.275602 -11828, 0.901453, 0.097596, 0.319221, -0.275602 -11829, 0.901453, 0.097596, 0.319221, -0.275602 -11830, 0.901453, 0.097596, 0.319221, -0.275602 -11831, 0.901453, 0.097596, 0.319221, -0.275602 -11832, 0.901453, 0.097596, 0.319221, -0.275602 -11833, 0.901453, 0.097596, 0.319221, -0.275602 -11834, 0.901453, 0.097596, 0.319221, -0.275602 -11835, 0.901453, 0.097596, 0.319221, -0.275602 -11836, 0.901453, 0.097596, 0.319221, -0.275602 -11837, 0.901453, 0.097596, 0.319221, -0.275602 -11838, 0.901453, 0.097596, 0.319221, -0.275602 -11839, 0.901453, 0.097596, 0.319221, -0.275602 -11840, 0.901453, 0.097596, 0.319221, -0.275602 -11841, 0.901453, 0.097596, 0.319221, -0.275602 -11842, 0.901453, 0.097596, 0.319221, -0.275602 -11843, 0.901453, 0.097596, 0.319221, -0.275602 -11844, 0.901453, 0.097596, 0.319221, -0.275602 -11845, 0.901453, 0.097596, 0.319221, -0.275602 -11846, 0.901453, 0.097596, 0.319221, -0.275602 -11847, 0.901453, 0.097596, 0.319221, -0.275602 -11848, 0.901453, 0.097596, 0.319221, -0.275602 -11849, 0.901453, 0.097596, 0.319221, -0.275602 -11850, 0.901453, 0.097596, 0.319221, -0.275602 -11851, 0.901453, 0.097596, 0.319221, -0.275602 -11852, 0.901453, 0.097596, 0.319221, -0.275602 -11853, 0.901453, 0.097596, 0.319221, -0.275602 -11854, 0.901453, 0.097596, 0.319221, -0.275602 -11855, 0.901453, 0.097596, 0.319221, -0.275602 -11856, 0.901453, 0.097596, 0.319221, -0.275602 -11857, 0.901453, 0.097596, 0.319221, -0.275602 -11858, 0.901453, 0.097596, 0.319221, -0.275602 -11859, 0.901453, 0.097596, 0.319221, -0.275602 -11860, 0.901453, 0.097596, 0.319221, -0.275602 -11861, 0.901453, 0.097596, 0.319221, -0.275602 -11862, 0.901453, 0.097596, 0.319221, -0.275602 -11863, 0.901453, 0.097596, 0.319221, -0.275602 -11864, 0.901453, 0.097596, 0.319221, -0.275602 -11865, 0.901453, 0.097596, 0.319221, -0.275602 -11866, 0.901453, 0.097596, 0.319221, -0.275602 -11867, 0.901453, 0.097596, 0.319221, -0.275602 -11868, 0.901453, 0.097596, 0.319221, -0.275602 -11869, 0.901453, 0.097596, 0.319221, -0.275602 -11870, 0.901453, 0.097596, 0.319221, -0.275602 -11871, 0.901453, 0.097596, 0.319221, -0.275602 -11872, 0.901453, 0.097596, 0.319221, -0.275602 -11873, 0.901453, 0.097596, 0.319221, -0.275602 -11874, 0.901453, 0.097596, 0.319221, -0.275602 -11875, 0.901453, 0.097596, 0.319221, -0.275602 -11876, 0.901453, 0.097596, 0.319221, -0.275602 -11877, 0.901453, 0.097596, 0.319221, -0.275602 -11878, 0.901453, 0.097596, 0.319221, -0.275602 -11879, 0.901453, 0.097596, 0.319221, -0.275602 -11880, 0.901453, 0.097596, 0.319221, -0.275602 -11881, 0.901453, 0.097596, 0.319221, -0.275602 -11882, 0.901453, 0.097596, 0.319221, -0.275602 -11883, 0.901453, 0.097596, 0.319221, -0.275602 -11884, 0.901453, 0.097596, 0.319221, -0.275602 -11885, 0.901453, 0.097596, 0.319221, -0.275602 -11886, 0.901453, 0.097596, 0.319221, -0.275602 -11887, 0.901453, 0.097596, 0.319221, -0.275602 -11888, 0.901453, 0.097596, 0.319221, -0.275602 -11889, 0.901453, 0.097596, 0.319221, -0.275602 -11890, 0.901453, 0.097596, 0.319221, -0.275602 -11891, 0.901453, 0.097596, 0.319221, -0.275602 -11892, 0.901453, 0.097596, 0.319221, -0.275602 -11893, 0.901453, 0.097596, 0.319221, -0.275602 -11894, 0.901453, 0.097596, 0.319221, -0.275602 -11895, 0.901453, 0.097596, 0.319221, -0.275602 -11896, 0.901453, 0.097596, 0.319221, -0.275602 -11897, 0.901453, 0.097596, 0.319221, -0.275602 -11898, 0.901453, 0.097596, 0.319221, -0.275602 -11899, 0.901453, 0.097596, 0.319221, -0.275602 -11900, 0.897415, 0.098780, 0.344485, -0.257330 -11901, 0.897415, 0.098780, 0.344485, -0.257330 -11902, 0.897415, 0.098780, 0.344485, -0.257330 -11903, 0.897415, 0.098780, 0.344485, -0.257330 -11904, 0.897415, 0.098780, 0.344485, -0.257330 -11905, 0.897415, 0.098780, 0.344485, -0.257330 -11906, 0.897415, 0.098780, 0.344485, -0.257330 -11907, 0.897415, 0.098780, 0.344485, -0.257330 -11908, 0.897415, 0.098780, 0.344485, -0.257330 -11909, 0.897415, 0.098780, 0.344485, -0.257330 -11910, 0.897415, 0.098780, 0.344485, -0.257330 -11911, 0.897415, 0.098780, 0.344485, -0.257330 -11912, 0.897415, 0.098780, 0.344485, -0.257330 -11913, 0.897415, 0.098780, 0.344485, -0.257330 -11914, 0.897415, 0.098780, 0.344485, -0.257330 -11915, 0.897415, 0.098780, 0.344485, -0.257330 -11916, 0.897415, 0.098780, 0.344485, -0.257330 -11917, 0.897415, 0.098780, 0.344485, -0.257330 -11918, 0.897415, 0.098780, 0.344485, -0.257330 -11919, 0.897415, 0.098780, 0.344485, -0.257330 -11920, 0.897415, 0.098780, 0.344485, -0.257330 -11921, 0.897415, 0.098780, 0.344485, -0.257330 -11922, 0.897415, 0.098780, 0.344485, -0.257330 -11923, 0.897415, 0.098780, 0.344485, -0.257330 -11924, 0.897415, 0.098780, 0.344485, -0.257330 -11925, 0.897415, 0.098780, 0.344485, -0.257330 -11926, 0.897415, 0.098780, 0.344485, -0.257330 -11927, 0.897415, 0.098780, 0.344485, -0.257330 -11928, 0.897415, 0.098780, 0.344485, -0.257330 -11929, 0.897415, 0.098780, 0.344485, -0.257330 -11930, 0.897415, 0.098780, 0.344485, -0.257330 -11931, 0.897415, 0.098780, 0.344485, -0.257330 -11932, 0.897415, 0.098780, 0.344485, -0.257330 -11933, 0.897415, 0.098780, 0.344485, -0.257330 -11934, 0.897415, 0.098780, 0.344485, -0.257330 -11935, 0.897415, 0.098780, 0.344485, -0.257330 -11936, 0.897415, 0.098780, 0.344485, -0.257330 -11937, 0.897415, 0.098780, 0.344485, -0.257330 -11938, 0.897415, 0.098780, 0.344485, -0.257330 -11939, 0.897415, 0.098780, 0.344485, -0.257330 -11940, 0.897415, 0.098780, 0.344485, -0.257330 -11941, 0.897415, 0.098780, 0.344485, -0.257330 -11942, 0.897415, 0.098780, 0.344485, -0.257330 -11943, 0.897415, 0.098780, 0.344485, -0.257330 -11944, 0.897415, 0.098780, 0.344485, -0.257330 -11945, 0.897415, 0.098780, 0.344485, -0.257330 -11946, 0.897415, 0.098780, 0.344485, -0.257330 -11947, 0.897415, 0.098780, 0.344485, -0.257330 -11948, 0.897415, 0.098780, 0.344485, -0.257330 -11949, 0.897415, 0.098780, 0.344485, -0.257330 -11950, 0.897415, 0.098780, 0.344485, -0.257330 -11951, 0.897415, 0.098780, 0.344485, -0.257330 -11952, 0.897415, 0.098780, 0.344485, -0.257330 -11953, 0.897415, 0.098780, 0.344485, -0.257330 -11954, 0.897415, 0.098780, 0.344485, -0.257330 -11955, 0.897415, 0.098780, 0.344485, -0.257330 -11956, 0.897415, 0.098780, 0.344485, -0.257330 -11957, 0.897415, 0.098780, 0.344485, -0.257330 -11958, 0.897415, 0.098780, 0.344485, -0.257330 -11959, 0.897415, 0.098780, 0.344485, -0.257330 -11960, 0.897415, 0.098780, 0.344485, -0.257330 -11961, 0.897415, 0.098780, 0.344485, -0.257330 -11962, 0.897415, 0.098780, 0.344485, -0.257330 -11963, 0.897415, 0.098780, 0.344485, -0.257330 -11964, 0.897415, 0.098780, 0.344485, -0.257330 -11965, 0.897415, 0.098780, 0.344485, -0.257330 -11966, 0.897415, 0.098780, 0.344485, -0.257330 -11967, 0.897415, 0.098780, 0.344485, -0.257330 -11968, 0.897415, 0.098780, 0.344485, -0.257330 -11969, 0.897415, 0.098780, 0.344485, -0.257330 -11970, 0.897415, 0.098780, 0.344485, -0.257330 -11971, 0.897415, 0.098780, 0.344485, -0.257330 -11972, 0.897415, 0.098780, 0.344485, -0.257330 -11973, 0.897415, 0.098780, 0.344485, -0.257330 -11974, 0.897415, 0.098780, 0.344485, -0.257330 -11975, 0.897415, 0.098780, 0.344485, -0.257330 -11976, 0.897415, 0.098780, 0.344485, -0.257330 -11977, 0.897415, 0.098780, 0.344485, -0.257330 -11978, 0.897415, 0.098780, 0.344485, -0.257330 -11979, 0.897415, 0.098780, 0.344485, -0.257330 -11980, 0.897415, 0.098780, 0.344485, -0.257330 -11981, 0.897415, 0.098780, 0.344485, -0.257330 -11982, 0.897415, 0.098780, 0.344485, -0.257330 -11983, 0.897415, 0.098780, 0.344485, -0.257330 -11984, 0.897415, 0.098780, 0.344485, -0.257330 -11985, 0.897415, 0.098780, 0.344485, -0.257330 -11986, 0.897415, 0.098780, 0.344485, -0.257330 -11987, 0.897415, 0.098780, 0.344485, -0.257330 -11988, 0.897415, 0.098780, 0.344485, -0.257330 -11989, 0.897415, 0.098780, 0.344485, -0.257330 -11990, 0.897415, 0.098780, 0.344485, -0.257330 -11991, 0.897415, 0.098780, 0.344485, -0.257330 -11992, 0.897415, 0.098780, 0.344485, -0.257330 -11993, 0.897415, 0.098780, 0.344485, -0.257330 -11994, 0.897415, 0.098780, 0.344485, -0.257330 -11995, 0.897415, 0.098780, 0.344485, -0.257330 -11996, 0.897415, 0.098780, 0.344485, -0.257330 -11997, 0.897415, 0.098780, 0.344485, -0.257330 -11998, 0.897415, 0.098780, 0.344485, -0.257330 -11999, 0.897415, 0.098780, 0.344485, -0.257330 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.653281, -0.270598, 0.270598, 0.653281 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.634602, -0.292582, 0.282543, 0.657150 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.615562, -0.314856, 0.293608, 0.660109 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.596200, -0.337381, 0.303779, 0.662147 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.576556, -0.360116, 0.313044, 0.663252 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.556670, -0.383022, 0.321394, 0.663414 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.536584, -0.406058, 0.328819, 0.662626 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.516337, -0.429181, 0.335313, 0.660881 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.495972, -0.452352, 0.340872, 0.658176 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.475528, -0.475528, 0.345492, 0.654508 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.455049, -0.498668, 0.349171, 0.649877 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.434575, -0.521730, 0.351911, 0.644283 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.414147, -0.544673, 0.353715, 0.637730 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.393807, -0.567455, 0.354585, 0.630223 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.373595, -0.590035, 0.354529, 0.621767 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.353553, -0.612372, 0.353553, 0.612372 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.333721, -0.634427, 0.351668, 0.602048 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.314138, -0.656158, 0.348885, 0.590807 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.294843, -0.677527, 0.345217, 0.578662 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.275876, -0.698494, 0.340678, 0.565629 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.257274, -0.719022, 0.335286, 0.551725 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.239074, -0.739074, 0.329057, 0.536969 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.221313, -0.758612, 0.322012, 0.521380 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.204025, -0.777602, 0.314172, 0.504981 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.187247, -0.796008, 0.305559, 0.487794 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.171010, -0.813798, 0.296198, 0.469846 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.155348, -0.830938, 0.286115, 0.451162 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.140291, -0.847398, 0.275336, 0.431771 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.125869, -0.863147, 0.263890, 0.411700 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.112112, -0.878156, 0.251807, 0.390980 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.099046, -0.892399, 0.239118, 0.369644 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.086697, -0.905849, 0.225854, 0.347723 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.075090, -0.918482, 0.212048, 0.325251 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.064248, -0.930274, 0.197736, 0.302264 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.054193, -0.941204, 0.182951, 0.278797 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.044943, -0.951251, 0.167731, 0.254887 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.036519, -0.960398, 0.152112, 0.230571 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.028936, -0.968628, 0.136132, 0.205888 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.022209, -0.975926, 0.119829, 0.180877 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.016352, -0.982278, 0.103242, 0.155578 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.011376, -0.987672, 0.086410, 0.130030 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.007292, -0.992099, 0.069374, 0.104274 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.004106, -0.995551, 0.052175, 0.078352 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.001826, -0.998021, 0.034852, 0.052304 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000457, -0.999505, 0.017446, 0.026173 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000000, -1.000000, 0.000000, 0.000000 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.000457, -0.999505, -0.017446, -0.026173 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.001826, -0.998021, -0.034852, -0.052304 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.004106, -0.995551, -0.052175, -0.078352 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.007292, -0.992099, -0.069374, -0.104274 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.011376, -0.987672, -0.086410, -0.130030 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.016352, -0.982278, -0.103242, -0.155578 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.022209, -0.975926, -0.119829, -0.180877 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.028936, -0.968628, -0.136132, -0.205888 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.036519, -0.960398, -0.152112, -0.230571 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.044943, -0.951251, -0.167731, -0.254887 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.054193, -0.941204, -0.182951, -0.278797 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.064248, -0.930274, -0.197736, -0.302264 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.075090, -0.918482, -0.212048, -0.325251 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.086697, -0.905849, -0.225854, -0.347723 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.099046, -0.892399, -0.239118, -0.369644 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.112112, -0.878156, -0.251807, -0.390980 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.125869, -0.863147, -0.263890, -0.411700 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.140291, -0.847398, -0.275336, -0.431771 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.155348, -0.830938, -0.286115, -0.451162 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.171010, -0.813798, -0.296198, -0.469846 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.187247, -0.796008, -0.305559, -0.487794 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.204025, -0.777602, -0.314172, -0.504981 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.221313, -0.758612, -0.322012, -0.521380 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.239074, -0.739074, -0.329057, -0.536969 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.257274, -0.719022, -0.335286, -0.551725 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.275876, -0.698494, -0.340678, -0.565629 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.294843, -0.677527, -0.345217, -0.578662 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.314138, -0.656158, -0.348885, -0.590807 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.333721, -0.634427, -0.351668, -0.602048 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.353553, -0.612372, -0.353553, -0.612372 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.373595, -0.590035, -0.354529, -0.621767 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.393807, -0.567455, -0.354585, -0.630223 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.414147, -0.544673, -0.353715, -0.637730 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.434575, -0.521730, -0.351911, -0.644283 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.455049, -0.498668, -0.349171, -0.649877 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.475528, -0.475528, -0.345492, -0.654508 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.495972, -0.452352, -0.340872, -0.658176 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.516337, -0.429181, -0.335313, -0.660881 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.536584, -0.406058, -0.328819, -0.662626 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.556670, -0.383022, -0.321394, -0.663414 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.576556, -0.360116, -0.313044, -0.663252 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.596200, -0.337381, -0.303779, -0.662147 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.615562, -0.314856, -0.293608, -0.660109 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.634602, -0.292582, -0.282543, -0.657150 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.653281, -0.270598, -0.270598, -0.653281 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.671562, -0.248943, -0.257788, -0.648519 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.689404, -0.227656, -0.244131, -0.642880 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.706773, -0.206773, -0.229644, -0.636381 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.723630, -0.186331, -0.214349, -0.629042 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.739942, -0.166366, -0.198267, -0.620885 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.755673, -0.146912, -0.181421, -0.611932 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.770791, -0.128003, -0.163837, -0.602208 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.785262, -0.109672, -0.145540, -0.591738 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.799057, -0.091950, -0.126558, -0.580549 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.812144, -0.074867, -0.106921, -0.568669 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.824496, -0.058452, -0.086658, -0.556130 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.836085, -0.042732, -0.065801, -0.542960 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.846886, -0.027734, -0.044383, -0.529193 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.856874, -0.013482, -0.022438, -0.514862 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.866025, -0.000000, -0.000000, -0.500000 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.874320, 0.012691, 0.022895, -0.484643 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.881738, 0.024570, 0.046210, -0.468828 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.888260, 0.035620, 0.069908, -0.452591 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.893870, 0.045822, 0.093950, -0.435970 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.898554, 0.055163, 0.118297, -0.419003 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.902298, 0.063628, 0.142910, -0.401729 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.905091, 0.071205, 0.167749, -0.384188 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.906923, 0.077885, 0.192772, -0.366421 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907786, 0.083659, 0.217940, -0.348466 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.907673, 0.088521, 0.243210, -0.330366 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.906582, 0.092466, 0.268542, -0.312161 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.904508, 0.095492, 0.293893, -0.293893 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.901453, 0.097596, 0.319221, -0.275602 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 + 0.897415, 0.098780, 0.344485, -0.257330 diff --git a/scripts/trajectories/circle-with-up-down-15s.csv b/scripts/trajectories/circle-with-up-down-15s.csv index 953021b03d..5aff04456a 100644 --- a/scripts/trajectories/circle-with-up-down-15s.csv +++ b/scripts/trajectories/circle-with-up-down-15s.csv @@ -1,3000 +1,3000 @@ -0, 1.000000, 0.000000, 0.000000, 0.000000 -1, 0.999999, 0.000000, -0.000001, 0.001048 -2, 0.999998, 0.000000, -0.000005, 0.002095 -3, 0.999995, 0.000000, -0.000012, 0.003143 -4, 0.999991, 0.000000, -0.000021, 0.004190 -5, 0.999986, 0.000000, -0.000034, 0.005238 -6, 0.999980, 0.000000, -0.000048, 0.006285 -7, 0.999973, 0.000000, -0.000066, 0.007333 -8, 0.999965, 0.000001, -0.000086, 0.008380 -9, 0.999956, 0.000001, -0.000109, 0.009428 -10, 0.999945, 0.000001, -0.000134, 0.010475 -11, 0.999934, 0.000002, -0.000162, 0.011523 -12, 0.999921, 0.000002, -0.000193, 0.012570 -13, 0.999907, 0.000003, -0.000226, 0.013618 -14, 0.999892, 0.000004, -0.000263, 0.014665 -15, 0.999877, 0.000005, -0.000302, 0.015713 -16, 0.999859, 0.000006, -0.000343, 0.016760 -17, 0.999841, 0.000007, -0.000387, 0.017807 -18, 0.999822, 0.000008, -0.000434, 0.018855 -19, 0.999802, 0.000010, -0.000484, 0.019902 -20, 0.999780, 0.000011, -0.000536, 0.020949 -21, 0.999758, 0.000013, -0.000591, 0.021997 -22, 0.999734, 0.000015, -0.000648, 0.023044 -23, 0.999710, 0.000017, -0.000708, 0.024091 -24, 0.999684, 0.000019, -0.000771, 0.025138 -25, 0.999657, 0.000022, -0.000837, 0.026186 -26, 0.999629, 0.000025, -0.000905, 0.027233 -27, 0.999600, 0.000028, -0.000976, 0.028280 -28, 0.999569, 0.000031, -0.001049, 0.029327 -29, 0.999538, 0.000034, -0.001126, 0.030374 -30, 0.999506, 0.000038, -0.001204, 0.031421 -31, 0.999472, 0.000042, -0.001286, 0.032468 -32, 0.999437, 0.000046, -0.001370, 0.033515 -33, 0.999401, 0.000050, -0.001457, 0.034562 -34, 0.999365, 0.000055, -0.001546, 0.035609 -35, 0.999327, 0.000060, -0.001638, 0.036656 -36, 0.999287, 0.000065, -0.001733, 0.037703 -37, 0.999247, 0.000071, -0.001830, 0.038749 -38, 0.999206, 0.000077, -0.001930, 0.039796 -39, 0.999164, 0.000083, -0.002033, 0.040843 -40, 0.999120, 0.000090, -0.002138, 0.041890 -41, 0.999075, 0.000097, -0.002246, 0.042936 -42, 0.999030, 0.000104, -0.002357, 0.043983 -43, 0.998983, 0.000111, -0.002470, 0.045029 -44, 0.998935, 0.000119, -0.002585, 0.046076 -45, 0.998885, 0.000128, -0.002704, 0.047122 -46, 0.998835, 0.000136, -0.002825, 0.048168 -47, 0.998784, 0.000145, -0.002948, 0.049215 -48, 0.998731, 0.000155, -0.003075, 0.050261 -49, 0.998678, 0.000165, -0.003203, 0.051307 -50, 0.998623, 0.000175, -0.003335, 0.052353 -51, 0.998567, 0.000186, -0.003469, 0.053399 -52, 0.998510, 0.000197, -0.003605, 0.054445 -53, 0.998452, 0.000208, -0.003745, 0.055491 -54, 0.998393, 0.000220, -0.003887, 0.056537 -55, 0.998333, 0.000232, -0.004031, 0.057583 -56, 0.998271, 0.000245, -0.004178, 0.058628 -57, 0.998208, 0.000259, -0.004327, 0.059674 -58, 0.998145, 0.000273, -0.004480, 0.060720 -59, 0.998080, 0.000287, -0.004634, 0.061765 -60, 0.998014, 0.000302, -0.004792, 0.062811 -61, 0.997947, 0.000317, -0.004951, 0.063856 -62, 0.997879, 0.000333, -0.005114, 0.064901 -63, 0.997809, 0.000349, -0.005279, 0.065947 -64, 0.997739, 0.000366, -0.005446, 0.066992 -65, 0.997667, 0.000383, -0.005616, 0.068037 -66, 0.997594, 0.000401, -0.005789, 0.069082 -67, 0.997520, 0.000419, -0.005964, 0.070127 -68, 0.997445, 0.000438, -0.006142, 0.071172 -69, 0.997369, 0.000458, -0.006322, 0.072216 -70, 0.997291, 0.000478, -0.006505, 0.073261 -71, 0.997213, 0.000498, -0.006690, 0.074306 -72, 0.997133, 0.000520, -0.006878, 0.075350 -73, 0.997052, 0.000542, -0.007068, 0.076394 -74, 0.996971, 0.000564, -0.007261, 0.077439 -75, 0.996887, 0.000587, -0.007456, 0.078483 -76, 0.996803, 0.000611, -0.007654, 0.079527 -77, 0.996718, 0.000635, -0.007854, 0.080571 -78, 0.996631, 0.000660, -0.008057, 0.081615 -79, 0.996543, 0.000685, -0.008263, 0.082659 -80, 0.996455, 0.000712, -0.008470, 0.083703 -81, 0.996364, 0.000738, -0.008681, 0.084746 -82, 0.996273, 0.000766, -0.008893, 0.085790 -83, 0.996181, 0.000794, -0.009108, 0.086833 -84, 0.996087, 0.000823, -0.009326, 0.087877 -85, 0.995993, 0.000852, -0.009546, 0.088920 -86, 0.995897, 0.000882, -0.009769, 0.089963 -87, 0.995800, 0.000913, -0.009994, 0.091006 -88, 0.995702, 0.000945, -0.010221, 0.092049 -89, 0.995602, 0.000977, -0.010451, 0.093092 -90, 0.995502, 0.001010, -0.010683, 0.094134 -91, 0.995400, 0.001044, -0.010918, 0.095177 -92, 0.995297, 0.001078, -0.011155, 0.096219 -93, 0.995193, 0.001114, -0.011395, 0.097261 -94, 0.995088, 0.001150, -0.011637, 0.098304 -95, 0.994981, 0.001186, -0.011881, 0.099346 -96, 0.994874, 0.001224, -0.012128, 0.100388 -97, 0.994765, 0.001262, -0.012377, 0.101429 -98, 0.994655, 0.001301, -0.012629, 0.102471 -99, 0.994544, 0.001341, -0.012883, 0.103513 -100, 0.994431, 0.001381, -0.013139, 0.104554 -101, 0.994318, 0.001423, -0.013398, 0.105595 -102, 0.994203, 0.001465, -0.013659, 0.106637 -103, 0.994087, 0.001508, -0.013922, 0.107678 -104, 0.993970, 0.001552, -0.014188, 0.108718 -105, 0.993852, 0.001596, -0.014456, 0.109759 -106, 0.993732, 0.001642, -0.014726, 0.110800 -107, 0.993612, 0.001688, -0.014999, 0.111840 -108, 0.993490, 0.001735, -0.015274, 0.112881 -109, 0.993367, 0.001783, -0.015551, 0.113921 -110, 0.993242, 0.001832, -0.015831, 0.114961 -111, 0.993117, 0.001882, -0.016113, 0.116001 -112, 0.992990, 0.001933, -0.016397, 0.117040 -113, 0.992862, 0.001984, -0.016683, 0.118080 -114, 0.992733, 0.002036, -0.016972, 0.119119 -115, 0.992602, 0.002090, -0.017263, 0.120159 -116, 0.992471, 0.002144, -0.017556, 0.121198 -117, 0.992338, 0.002199, -0.017852, 0.122237 -118, 0.992204, 0.002255, -0.018150, 0.123275 -119, 0.992069, 0.002312, -0.018450, 0.124314 -120, 0.991932, 0.002370, -0.018752, 0.125352 -121, 0.991795, 0.002428, -0.019057, 0.126391 -122, 0.991656, 0.002488, -0.019363, 0.127429 -123, 0.991515, 0.002549, -0.019672, 0.128467 -124, 0.991374, 0.002610, -0.019983, 0.129505 -125, 0.991231, 0.002673, -0.020297, 0.130542 -126, 0.991088, 0.002737, -0.020612, 0.131580 -127, 0.990942, 0.002801, -0.020930, 0.132617 -128, 0.990796, 0.002867, -0.021250, 0.133654 -129, 0.990649, 0.002933, -0.021572, 0.134691 -130, 0.990500, 0.003000, -0.021896, 0.135727 -131, 0.990350, 0.003069, -0.022223, 0.136764 -132, 0.990198, 0.003138, -0.022551, 0.137800 -133, 0.990046, 0.003209, -0.022882, 0.138836 -134, 0.989892, 0.003280, -0.023214, 0.139872 -135, 0.989737, 0.003353, -0.023549, 0.140908 -136, 0.989581, 0.003426, -0.023886, 0.141944 -137, 0.989423, 0.003501, -0.024226, 0.142979 -138, 0.989264, 0.003576, -0.024567, 0.144014 -139, 0.989104, 0.003653, -0.024910, 0.145049 -140, 0.988943, 0.003731, -0.025255, 0.146084 -141, 0.988780, 0.003809, -0.025603, 0.147118 -142, 0.988616, 0.003889, -0.025952, 0.148153 -143, 0.988451, 0.003970, -0.026304, 0.149187 -144, 0.988285, 0.004052, -0.026657, 0.150221 -145, 0.988117, 0.004135, -0.027013, 0.151254 -146, 0.987948, 0.004219, -0.027371, 0.152288 -147, 0.987778, 0.004304, -0.027730, 0.153321 -148, 0.987606, 0.004391, -0.028092, 0.154354 -149, 0.987434, 0.004478, -0.028456, 0.155387 -150, 0.987260, 0.004566, -0.028821, 0.156420 -151, 0.987084, 0.004656, -0.029189, 0.157452 -152, 0.986908, 0.004747, -0.029559, 0.158484 -153, 0.986730, 0.004839, -0.029930, 0.159516 -154, 0.986550, 0.004932, -0.030304, 0.160548 -155, 0.986370, 0.005026, -0.030679, 0.161579 -156, 0.986188, 0.005121, -0.031057, 0.162610 -157, 0.986005, 0.005217, -0.031436, 0.163641 -158, 0.985821, 0.005315, -0.031817, 0.164672 -159, 0.985635, 0.005413, -0.032201, 0.165702 -160, 0.985448, 0.005513, -0.032586, 0.166733 -161, 0.985260, 0.005614, -0.032973, 0.167763 -162, 0.985070, 0.005717, -0.033361, 0.168792 -163, 0.984879, 0.005820, -0.033752, 0.169822 -164, 0.984687, 0.005924, -0.034145, 0.170851 -165, 0.984494, 0.006030, -0.034539, 0.171880 -166, 0.984299, 0.006137, -0.034935, 0.172909 -167, 0.984103, 0.006245, -0.035334, 0.173937 -168, 0.983905, 0.006354, -0.035734, 0.174965 -169, 0.983707, 0.006465, -0.036135, 0.175993 -170, 0.983507, 0.006577, -0.036539, 0.177021 -171, 0.983305, 0.006690, -0.036944, 0.178048 -172, 0.983103, 0.006804, -0.037351, 0.179076 -173, 0.982898, 0.006919, -0.037760, 0.180102 -174, 0.982693, 0.007036, -0.038171, 0.181129 -175, 0.982486, 0.007153, -0.038583, 0.182155 -176, 0.982278, 0.007272, -0.038998, 0.183181 -177, 0.982069, 0.007393, -0.039413, 0.184207 -178, 0.981858, 0.007514, -0.039831, 0.185232 -179, 0.981646, 0.007637, -0.040250, 0.186257 -180, 0.981433, 0.007761, -0.040671, 0.187282 -181, 0.981218, 0.007886, -0.041094, 0.188307 -182, 0.981002, 0.008013, -0.041519, 0.189331 -183, 0.980785, 0.008141, -0.041945, 0.190355 -184, 0.980566, 0.008270, -0.042373, 0.191379 -185, 0.980346, 0.008400, -0.042802, 0.192402 -186, 0.980125, 0.008532, -0.043233, 0.193425 -187, 0.979902, 0.008665, -0.043666, 0.194448 -188, 0.979678, 0.008799, -0.044100, 0.195470 -189, 0.979453, 0.008935, -0.044536, 0.196492 -190, 0.979226, 0.009071, -0.044973, 0.197514 -191, 0.978998, 0.009209, -0.045413, 0.198536 -192, 0.978768, 0.009349, -0.045853, 0.199557 -193, 0.978537, 0.009490, -0.046295, 0.200578 -194, 0.978305, 0.009632, -0.046739, 0.201598 -195, 0.978072, 0.009775, -0.047185, 0.202618 -196, 0.977837, 0.009919, -0.047632, 0.203638 -197, 0.977600, 0.010065, -0.048080, 0.204658 -198, 0.977363, 0.010213, -0.048530, 0.205677 -199, 0.977124, 0.010361, -0.048981, 0.206696 -200, 0.976883, 0.010511, -0.049434, 0.207714 -201, 0.976641, 0.010662, -0.049889, 0.208732 -202, 0.976398, 0.010815, -0.050344, 0.209750 -203, 0.976154, 0.010969, -0.050802, 0.210768 -204, 0.975908, 0.011124, -0.051261, 0.211785 -205, 0.975660, 0.011281, -0.051721, 0.212802 -206, 0.975412, 0.011439, -0.052182, 0.213818 -207, 0.975162, 0.011598, -0.052645, 0.214834 -208, 0.974910, 0.011759, -0.053110, 0.215850 -209, 0.974657, 0.011921, -0.053576, 0.216865 -210, 0.974403, 0.012084, -0.054043, 0.217880 -211, 0.974148, 0.012249, -0.054511, 0.218895 -212, 0.973891, 0.012415, -0.054981, 0.219909 -213, 0.973632, 0.012583, -0.055453, 0.220923 -214, 0.973373, 0.012751, -0.055925, 0.221936 -215, 0.973111, 0.012922, -0.056399, 0.222949 -216, 0.972849, 0.013093, -0.056874, 0.223962 -217, 0.972585, 0.013266, -0.057351, 0.224974 -218, 0.972320, 0.013441, -0.057829, 0.225986 -219, 0.972053, 0.013616, -0.058308, 0.226998 -220, 0.971785, 0.013793, -0.058788, 0.228009 -221, 0.971515, 0.013972, -0.059270, 0.229020 -222, 0.971244, 0.014152, -0.059753, 0.230030 -223, 0.970972, 0.014333, -0.060237, 0.231040 -224, 0.970698, 0.014516, -0.060722, 0.232049 -225, 0.970423, 0.014700, -0.061209, 0.233059 -226, 0.970147, 0.014885, -0.061696, 0.234067 -227, 0.969869, 0.015072, -0.062185, 0.235076 -228, 0.969589, 0.015261, -0.062675, 0.236084 -229, 0.969309, 0.015450, -0.063166, 0.237091 -230, 0.969026, 0.015642, -0.063659, 0.238098 -231, 0.968743, 0.015834, -0.064152, 0.239105 -232, 0.968458, 0.016028, -0.064647, 0.240111 -233, 0.968171, 0.016223, -0.065143, 0.241117 -234, 0.967884, 0.016420, -0.065639, 0.242122 -235, 0.967594, 0.016618, -0.066137, 0.243127 -236, 0.967304, 0.016818, -0.066636, 0.244132 -237, 0.967012, 0.017019, -0.067136, 0.245136 -238, 0.966718, 0.017221, -0.067637, 0.246140 -239, 0.966423, 0.017425, -0.068139, 0.247143 -240, 0.966127, 0.017631, -0.068643, 0.248146 -241, 0.965829, 0.017837, -0.069147, 0.249148 -242, 0.965530, 0.018045, -0.069652, 0.250150 -243, 0.965229, 0.018255, -0.070158, 0.251151 -244, 0.964927, 0.018466, -0.070665, 0.252152 -245, 0.964624, 0.018678, -0.071173, 0.253153 -246, 0.964319, 0.018892, -0.071682, 0.254153 -247, 0.964013, 0.019108, -0.072192, 0.255152 -248, 0.963705, 0.019324, -0.072703, 0.256151 -249, 0.963396, 0.019542, -0.073215, 0.257150 -250, 0.963085, 0.019762, -0.073727, 0.258148 -251, 0.962773, 0.019983, -0.074241, 0.259146 -252, 0.962460, 0.020206, -0.074755, 0.260143 -253, 0.962145, 0.020430, -0.075271, 0.261140 -254, 0.961829, 0.020655, -0.075787, 0.262136 -255, 0.961511, 0.020882, -0.076304, 0.263132 -256, 0.961192, 0.021110, -0.076822, 0.264127 -257, 0.960871, 0.021340, -0.077340, 0.265122 -258, 0.960549, 0.021571, -0.077860, 0.266116 -259, 0.960226, 0.021803, -0.078380, 0.267110 -260, 0.959901, 0.022037, -0.078901, 0.268103 -261, 0.959575, 0.022273, -0.079423, 0.269096 -262, 0.959247, 0.022510, -0.079945, 0.270088 -263, 0.958918, 0.022748, -0.080468, 0.271080 -264, 0.958587, 0.022988, -0.080992, 0.272071 -265, 0.958255, 0.023229, -0.081517, 0.273062 -266, 0.957921, 0.023472, -0.082042, 0.274052 -267, 0.957587, 0.023716, -0.082568, 0.275042 -268, 0.957250, 0.023961, -0.083095, 0.276031 -269, 0.956912, 0.024208, -0.083623, 0.277020 -270, 0.956573, 0.024457, -0.084151, 0.278008 -271, 0.956232, 0.024706, -0.084679, 0.278996 -272, 0.955890, 0.024958, -0.085208, 0.279983 -273, 0.955547, 0.025211, -0.085738, 0.280969 -274, 0.955202, 0.025465, -0.086269, 0.281955 -275, 0.954855, 0.025720, -0.086800, 0.282941 -276, 0.954507, 0.025977, -0.087332, 0.283926 -277, 0.954158, 0.026236, -0.087864, 0.284910 -278, 0.953807, 0.026496, -0.088396, 0.285894 -279, 0.953455, 0.026757, -0.088930, 0.286877 -280, 0.953102, 0.027020, -0.089464, 0.287860 -281, 0.952747, 0.027284, -0.089998, 0.288842 -282, 0.952390, 0.027550, -0.090533, 0.289824 -283, 0.952032, 0.027817, -0.091068, 0.290805 -284, 0.951673, 0.028086, -0.091604, 0.291785 -285, 0.951312, 0.028356, -0.092140, 0.292765 -286, 0.950950, 0.028627, -0.092676, 0.293745 -287, 0.950586, 0.028900, -0.093213, 0.294724 -288, 0.950221, 0.029175, -0.093751, 0.295702 -289, 0.949855, 0.029450, -0.094289, 0.296680 -290, 0.949487, 0.029727, -0.094827, 0.297657 -291, 0.949117, 0.030006, -0.095365, 0.298633 -292, 0.948746, 0.030286, -0.095904, 0.299609 -293, 0.948374, 0.030568, -0.096444, 0.300584 -294, 0.948000, 0.030850, -0.096983, 0.301559 -295, 0.947625, 0.031135, -0.097523, 0.302533 -296, 0.947249, 0.031420, -0.098064, 0.303507 -297, 0.946871, 0.031708, -0.098604, 0.304480 -298, 0.946491, 0.031996, -0.099145, 0.305452 -299, 0.946110, 0.032286, -0.099686, 0.306424 -300, 0.945728, 0.032578, -0.100228, 0.307395 -301, 0.945344, 0.032870, -0.100769, 0.308366 -302, 0.944959, 0.033165, -0.101311, 0.309336 -303, 0.944572, 0.033460, -0.101853, 0.310305 -304, 0.944184, 0.033757, -0.102395, 0.311274 -305, 0.943795, 0.034056, -0.102938, 0.312242 -306, 0.943404, 0.034355, -0.103481, 0.313209 -307, 0.943012, 0.034657, -0.104023, 0.314176 -308, 0.942618, 0.034959, -0.104566, 0.315142 -309, 0.942223, 0.035263, -0.105110, 0.316108 -310, 0.941826, 0.035569, -0.105653, 0.317073 -311, 0.941428, 0.035876, -0.106196, 0.318037 -312, 0.941029, 0.036184, -0.106740, 0.319001 -313, 0.940628, 0.036493, -0.107283, 0.319964 -314, 0.940226, 0.036804, -0.107827, 0.320927 -315, 0.939822, 0.037117, -0.108370, 0.321889 -316, 0.939417, 0.037431, -0.108914, 0.322850 -317, 0.939011, 0.037746, -0.109458, 0.323810 -318, 0.938603, 0.038062, -0.110002, 0.324770 -319, 0.938193, 0.038380, -0.110545, 0.325729 -320, 0.937783, 0.038699, -0.111089, 0.326688 -321, 0.937371, 0.039020, -0.111633, 0.327646 -322, 0.936957, 0.039342, -0.112177, 0.328603 -323, 0.936542, 0.039665, -0.112720, 0.329560 -324, 0.936126, 0.039990, -0.113264, 0.330516 -325, 0.935708, 0.040316, -0.113807, 0.331471 -326, 0.935289, 0.040643, -0.114351, 0.332426 -327, 0.934868, 0.040972, -0.114894, 0.333380 -328, 0.934446, 0.041302, -0.115438, 0.334333 -329, 0.934023, 0.041634, -0.115981, 0.335286 -330, 0.933598, 0.041966, -0.116524, 0.336238 -331, 0.933172, 0.042300, -0.117067, 0.337189 -332, 0.932744, 0.042636, -0.117609, 0.338139 -333, 0.932315, 0.042973, -0.118152, 0.339089 -334, 0.931885, 0.043311, -0.118694, 0.340039 -335, 0.931453, 0.043650, -0.119236, 0.340987 -336, 0.931020, 0.043991, -0.119778, 0.341935 -337, 0.930586, 0.044333, -0.120320, 0.342882 -338, 0.930150, 0.044676, -0.120861, 0.343829 -339, 0.929712, 0.045021, -0.121402, 0.344774 -340, 0.929274, 0.045367, -0.121943, 0.345719 -341, 0.928834, 0.045714, -0.122484, 0.346664 -342, 0.928392, 0.046063, -0.123024, 0.347607 -343, 0.927950, 0.046412, -0.123564, 0.348550 -344, 0.927505, 0.046764, -0.124104, 0.349493 -345, 0.927060, 0.047116, -0.124644, 0.350434 -346, 0.926613, 0.047470, -0.125183, 0.351375 -347, 0.926165, 0.047825, -0.125721, 0.352315 -348, 0.925715, 0.048181, -0.126260, 0.353255 -349, 0.925264, 0.048538, -0.126798, 0.354194 -350, 0.924812, 0.048897, -0.127335, 0.355132 -351, 0.924358, 0.049257, -0.127872, 0.356069 -352, 0.923903, 0.049619, -0.128409, 0.357005 -353, 0.923446, 0.049981, -0.128945, 0.357941 -354, 0.922988, 0.050345, -0.129481, 0.358876 -355, 0.922529, 0.050710, -0.130017, 0.359811 -356, 0.922069, 0.051076, -0.130552, 0.360745 -357, 0.921607, 0.051444, -0.131086, 0.361678 -358, 0.921144, 0.051812, -0.131620, 0.362610 -359, 0.920679, 0.052182, -0.132153, 0.363541 -360, 0.920213, 0.052554, -0.132686, 0.364472 -361, 0.919746, 0.052926, -0.133219, 0.365402 -362, 0.919278, 0.053299, -0.133751, 0.366331 -363, 0.918808, 0.053674, -0.134282, 0.367260 -364, 0.918336, 0.054050, -0.134813, 0.368188 -365, 0.917864, 0.054427, -0.135343, 0.369115 -366, 0.917390, 0.054806, -0.135872, 0.370041 -367, 0.916915, 0.055185, -0.136401, 0.370967 -368, 0.916438, 0.055566, -0.136929, 0.371892 -369, 0.915961, 0.055948, -0.137457, 0.372816 -370, 0.915481, 0.056331, -0.137984, 0.373739 -371, 0.915001, 0.056715, -0.138510, 0.374662 -372, 0.914519, 0.057101, -0.139036, 0.375583 -373, 0.914036, 0.057487, -0.139561, 0.376505 -374, 0.913552, 0.057875, -0.140085, 0.377425 -375, 0.913066, 0.058264, -0.140609, 0.378344 -376, 0.912579, 0.058654, -0.141132, 0.379263 -377, 0.912091, 0.059045, -0.141654, 0.380181 -378, 0.911601, 0.059437, -0.142176, 0.381099 -379, 0.911111, 0.059830, -0.142696, 0.382015 -380, 0.910618, 0.060225, -0.143216, 0.382931 -381, 0.910125, 0.060620, -0.143735, 0.383846 -382, 0.909630, 0.061017, -0.144253, 0.384760 -383, 0.909134, 0.061415, -0.144771, 0.385674 -384, 0.908637, 0.061814, -0.145288, 0.386586 -385, 0.908139, 0.062214, -0.145803, 0.387498 -386, 0.907639, 0.062615, -0.146319, 0.388409 -387, 0.907138, 0.063017, -0.146833, 0.389320 -388, 0.906636, 0.063420, -0.147346, 0.390229 -389, 0.906132, 0.063824, -0.147858, 0.391138 -390, 0.905627, 0.064229, -0.148370, 0.392046 -391, 0.905121, 0.064636, -0.148881, 0.392954 -392, 0.904614, 0.065043, -0.149390, 0.393860 -393, 0.904105, 0.065451, -0.149899, 0.394766 -394, 0.903595, 0.065861, -0.150407, 0.395671 -395, 0.903084, 0.066271, -0.150914, 0.396575 -396, 0.902572, 0.066683, -0.151420, 0.397478 -397, 0.902059, 0.067095, -0.151925, 0.398381 -398, 0.901544, 0.067509, -0.152429, 0.399283 -399, 0.901028, 0.067923, -0.152932, 0.400184 -400, 0.900511, 0.068339, -0.153434, 0.401084 -401, 0.899992, 0.068755, -0.153935, 0.401983 -402, 0.899473, 0.069173, -0.154434, 0.402882 -403, 0.898952, 0.069591, -0.154933, 0.403780 -404, 0.898430, 0.070010, -0.155431, 0.404677 -405, 0.897907, 0.070431, -0.155928, 0.405573 -406, 0.897382, 0.070852, -0.156424, 0.406469 -407, 0.896857, 0.071274, -0.156918, 0.407363 -408, 0.896330, 0.071697, -0.157412, 0.408257 -409, 0.895802, 0.072121, -0.157904, 0.409150 -410, 0.895272, 0.072546, -0.158395, 0.410043 -411, 0.894742, 0.072972, -0.158886, 0.410934 -412, 0.894211, 0.073399, -0.159375, 0.411825 -413, 0.893678, 0.073827, -0.159862, 0.412715 -414, 0.893144, 0.074256, -0.160349, 0.413604 -415, 0.892609, 0.074685, -0.160834, 0.414492 -416, 0.892073, 0.075116, -0.161319, 0.415380 -417, 0.891535, 0.075547, -0.161802, 0.416267 -418, 0.890997, 0.075979, -0.162284, 0.417153 -419, 0.890457, 0.076412, -0.162764, 0.418038 -420, 0.889916, 0.076846, -0.163244, 0.418922 -421, 0.889374, 0.077281, -0.163722, 0.419806 -422, 0.888831, 0.077716, -0.164199, 0.420688 -423, 0.888287, 0.078153, -0.164675, 0.421570 -424, 0.887741, 0.078590, -0.165149, 0.422451 -425, 0.887195, 0.079028, -0.165622, 0.423332 -426, 0.886647, 0.079467, -0.166094, 0.424211 -427, 0.886098, 0.079906, -0.166565, 0.425090 -428, 0.885548, 0.080347, -0.167034, 0.425968 -429, 0.884997, 0.080788, -0.167502, 0.426845 -430, 0.884445, 0.081230, -0.167968, 0.427721 -431, 0.883892, 0.081673, -0.168433, 0.428597 -432, 0.883337, 0.082116, -0.168897, 0.429471 -433, 0.882782, 0.082561, -0.169359, 0.430345 -434, 0.882225, 0.083006, -0.169821, 0.431218 -435, 0.881668, 0.083451, -0.170280, 0.432091 -436, 0.881109, 0.083898, -0.170738, 0.432962 -437, 0.880549, 0.084345, -0.171195, 0.433833 -438, 0.879988, 0.084793, -0.171651, 0.434703 -439, 0.879427, 0.085242, -0.172105, 0.435572 -440, 0.878864, 0.085691, -0.172557, 0.436440 -441, 0.878300, 0.086141, -0.173008, 0.437307 -442, 0.877734, 0.086592, -0.173458, 0.438174 -443, 0.877168, 0.087043, -0.173906, 0.439040 -444, 0.876601, 0.087495, -0.174353, 0.439905 -445, 0.876033, 0.087948, -0.174798, 0.440769 -446, 0.875463, 0.088402, -0.175242, 0.441633 -447, 0.874893, 0.088856, -0.175684, 0.442495 -448, 0.874322, 0.089310, -0.176124, 0.443357 -449, 0.873749, 0.089766, -0.176564, 0.444218 -450, 0.873176, 0.090222, -0.177001, 0.445078 -451, 0.872601, 0.090678, -0.177437, 0.445938 -452, 0.872026, 0.091135, -0.177872, 0.446796 -453, 0.871449, 0.091593, -0.178304, 0.447654 -454, 0.870872, 0.092051, -0.178736, 0.448511 -455, 0.870294, 0.092510, -0.179165, 0.449367 -456, 0.869714, 0.092970, -0.179594, 0.450222 -457, 0.869134, 0.093430, -0.180020, 0.451077 -458, 0.868552, 0.093890, -0.180445, 0.451931 -459, 0.867970, 0.094351, -0.180868, 0.452784 -460, 0.867386, 0.094813, -0.181290, 0.453636 -461, 0.866802, 0.095275, -0.181710, 0.454487 -462, 0.866216, 0.095738, -0.182128, 0.455338 -463, 0.865630, 0.096201, -0.182545, 0.456188 -464, 0.865043, 0.096665, -0.182960, 0.457037 -465, 0.864455, 0.097129, -0.183373, 0.457885 -466, 0.863865, 0.097594, -0.183785, 0.458732 -467, 0.863275, 0.098059, -0.184194, 0.459579 -468, 0.862684, 0.098525, -0.184603, 0.460425 -469, 0.862092, 0.098991, -0.185009, 0.461270 -470, 0.861499, 0.099457, -0.185414, 0.462114 -471, 0.860905, 0.099924, -0.185817, 0.462957 -472, 0.860310, 0.100392, -0.186218, 0.463800 -473, 0.859715, 0.100859, -0.186618, 0.464642 -474, 0.859118, 0.101328, -0.187015, 0.465483 -475, 0.858520, 0.101796, -0.187411, 0.466323 -476, 0.857922, 0.102265, -0.187806, 0.467162 -477, 0.857323, 0.102735, -0.188198, 0.468001 -478, 0.856722, 0.103205, -0.188589, 0.468839 -479, 0.856121, 0.103675, -0.188977, 0.469676 -480, 0.855519, 0.104145, -0.189364, 0.470512 -481, 0.854916, 0.104616, -0.189750, 0.471348 -482, 0.854312, 0.105087, -0.190133, 0.472183 -483, 0.853708, 0.105559, -0.190515, 0.473017 -484, 0.853102, 0.106031, -0.190894, 0.473850 -485, 0.852496, 0.106503, -0.191272, 0.474682 -486, 0.851888, 0.106976, -0.191648, 0.475514 -487, 0.851280, 0.107448, -0.192022, 0.476345 -488, 0.850671, 0.107921, -0.192394, 0.477175 -489, 0.850062, 0.108395, -0.192765, 0.478004 -490, 0.849451, 0.108868, -0.193133, 0.478832 -491, 0.848839, 0.109342, -0.193500, 0.479660 -492, 0.848227, 0.109816, -0.193864, 0.480487 -493, 0.847614, 0.110291, -0.194227, 0.481313 -494, 0.847000, 0.110765, -0.194588, 0.482139 -495, 0.846385, 0.111240, -0.194947, 0.482963 -496, 0.845769, 0.111715, -0.195304, 0.483787 -497, 0.845153, 0.112191, -0.195659, 0.484610 -498, 0.844536, 0.112666, -0.196012, 0.485433 -499, 0.843918, 0.113142, -0.196363, 0.486254 -500, 0.843299, 0.113617, -0.196712, 0.487075 -501, 0.842679, 0.114093, -0.197059, 0.487895 -502, 0.842059, 0.114570, -0.197404, 0.488715 -503, 0.841438, 0.115046, -0.197747, 0.489533 -504, 0.840816, 0.115522, -0.198089, 0.490351 -505, 0.840193, 0.115999, -0.198428, 0.491168 -506, 0.839570, 0.116475, -0.198765, 0.491984 -507, 0.838946, 0.116952, -0.199100, 0.492800 -508, 0.838321, 0.117429, -0.199433, 0.493615 -509, 0.837695, 0.117906, -0.199764, 0.494429 -510, 0.837068, 0.118383, -0.200093, 0.495242 -511, 0.836441, 0.118860, -0.200420, 0.496055 -512, 0.835813, 0.119337, -0.200745, 0.496866 -513, 0.835184, 0.119814, -0.201068, 0.497678 -514, 0.834555, 0.120292, -0.201389, 0.498488 -515, 0.833925, 0.120769, -0.201708, 0.499297 -516, 0.833294, 0.121246, -0.202025, 0.500106 -517, 0.832663, 0.121724, -0.202339, 0.500914 -518, 0.832030, 0.122201, -0.202652, 0.501722 -519, 0.831397, 0.122678, -0.202962, 0.502529 -520, 0.830764, 0.123155, -0.203271, 0.503335 -521, 0.830129, 0.123633, -0.203577, 0.504140 -522, 0.829494, 0.124110, -0.203881, 0.504944 -523, 0.828858, 0.124587, -0.204183, 0.505748 -524, 0.828222, 0.125064, -0.204483, 0.506551 -525, 0.827585, 0.125541, -0.204781, 0.507353 -526, 0.826947, 0.126018, -0.205076, 0.508155 -527, 0.826309, 0.126495, -0.205370, 0.508956 -528, 0.825670, 0.126972, -0.205661, 0.509756 -529, 0.825030, 0.127449, -0.205950, 0.510556 -530, 0.824389, 0.127925, -0.206237, 0.511354 -531, 0.823748, 0.128402, -0.206522, 0.512152 -532, 0.823107, 0.128878, -0.206805, 0.512950 -533, 0.822464, 0.129354, -0.207085, 0.513746 -534, 0.821821, 0.129830, -0.207364, 0.514542 -535, 0.821178, 0.130306, -0.207640, 0.515338 -536, 0.820534, 0.130782, -0.207914, 0.516132 -537, 0.819889, 0.131258, -0.208186, 0.516926 -538, 0.819243, 0.131733, -0.208455, 0.517719 -539, 0.818597, 0.132208, -0.208723, 0.518512 -540, 0.817951, 0.132683, -0.208988, 0.519304 -541, 0.817303, 0.133158, -0.209251, 0.520095 -542, 0.816655, 0.133632, -0.209511, 0.520885 -543, 0.816007, 0.134106, -0.209770, 0.521675 -544, 0.815358, 0.134580, -0.210026, 0.522464 -545, 0.814708, 0.135054, -0.210280, 0.523252 -546, 0.814058, 0.135528, -0.210532, 0.524040 -547, 0.813407, 0.136001, -0.210782, 0.524827 -548, 0.812756, 0.136474, -0.211029, 0.525614 -549, 0.812104, 0.136946, -0.211274, 0.526399 -550, 0.811451, 0.137418, -0.211517, 0.527184 -551, 0.810798, 0.137890, -0.211757, 0.527969 -552, 0.810145, 0.138362, -0.211996, 0.528752 -553, 0.809491, 0.138833, -0.212232, 0.529536 -554, 0.808836, 0.139304, -0.212465, 0.530318 -555, 0.808181, 0.139775, -0.212697, 0.531100 -556, 0.807525, 0.140245, -0.212926, 0.531881 -557, 0.806869, 0.140715, -0.213153, 0.532661 -558, 0.806212, 0.141184, -0.213377, 0.533441 -559, 0.805555, 0.141653, -0.213600, 0.534220 -560, 0.804897, 0.142122, -0.213820, 0.534999 -561, 0.804238, 0.142590, -0.214037, 0.535777 -562, 0.803579, 0.143058, -0.214253, 0.536554 -563, 0.802920, 0.143525, -0.214466, 0.537331 -564, 0.802260, 0.143992, -0.214677, 0.538107 -565, 0.801600, 0.144458, -0.214885, 0.538882 -566, 0.800939, 0.144924, -0.215091, 0.539657 -567, 0.800278, 0.145390, -0.215295, 0.540431 -568, 0.799616, 0.145855, -0.215496, 0.541205 -569, 0.798953, 0.146319, -0.215695, 0.541978 -570, 0.798291, 0.146783, -0.215892, 0.542750 -571, 0.797627, 0.147247, -0.216087, 0.543522 -572, 0.796963, 0.147709, -0.216279, 0.544293 -573, 0.796299, 0.148172, -0.216469, 0.545063 -574, 0.795635, 0.148634, -0.216656, 0.545833 -575, 0.794969, 0.149095, -0.216841, 0.546602 -576, 0.794304, 0.149556, -0.217024, 0.547371 -577, 0.793638, 0.150016, -0.217204, 0.548139 -578, 0.792971, 0.150475, -0.217382, 0.548907 -579, 0.792304, 0.150934, -0.217558, 0.549674 -580, 0.791637, 0.151393, -0.217731, 0.550440 -581, 0.790969, 0.151850, -0.217902, 0.551206 -582, 0.790301, 0.152307, -0.218071, 0.551971 -583, 0.789632, 0.152764, -0.218237, 0.552735 -584, 0.788963, 0.153220, -0.218401, 0.553499 -585, 0.788294, 0.153675, -0.218562, 0.554263 -586, 0.787624, 0.154129, -0.218721, 0.555026 -587, 0.786954, 0.154583, -0.218878, 0.555788 -588, 0.786283, 0.155036, -0.219032, 0.556550 -589, 0.785612, 0.155489, -0.219184, 0.557311 -590, 0.784940, 0.155940, -0.219334, 0.558072 -591, 0.784269, 0.156391, -0.219481, 0.558832 -592, 0.783596, 0.156841, -0.219625, 0.559591 -593, 0.782924, 0.157291, -0.219768, 0.560350 -594, 0.782251, 0.157740, -0.219908, 0.561109 -595, 0.781577, 0.158188, -0.220045, 0.561866 -596, 0.780903, 0.158635, -0.220180, 0.562624 -597, 0.780229, 0.159082, -0.220313, 0.563381 -598, 0.779555, 0.159527, -0.220443, 0.564137 -599, 0.778880, 0.159972, -0.220571, 0.564893 -600, 0.778204, 0.160416, -0.220697, 0.565648 -601, 0.777529, 0.160860, -0.220820, 0.566402 -602, 0.776853, 0.161302, -0.220941, 0.567157 -603, 0.776176, 0.161744, -0.221059, 0.567910 -604, 0.775500, 0.162185, -0.221175, 0.568663 -605, 0.774823, 0.162624, -0.221288, 0.569416 -606, 0.774145, 0.163064, -0.221399, 0.570168 -607, 0.773468, 0.163502, -0.221508, 0.570920 -608, 0.772790, 0.163939, -0.221614, 0.571671 -609, 0.772111, 0.164375, -0.221718, 0.572421 -610, 0.771432, 0.164811, -0.221819, 0.573171 -611, 0.770753, 0.165246, -0.221918, 0.573921 -612, 0.770074, 0.165679, -0.222015, 0.574670 -613, 0.769394, 0.166112, -0.222109, 0.575419 -614, 0.768714, 0.166544, -0.222201, 0.576167 -615, 0.768034, 0.166975, -0.222290, 0.576914 -616, 0.767354, 0.167405, -0.222377, 0.577661 -617, 0.766673, 0.167834, -0.222461, 0.578408 -618, 0.765991, 0.168262, -0.222543, 0.579154 -619, 0.765310, 0.168689, -0.222623, 0.579900 -620, 0.764628, 0.169115, -0.222700, 0.580645 -621, 0.763946, 0.169540, -0.222775, 0.581390 -622, 0.763263, 0.169964, -0.222847, 0.582134 -623, 0.762581, 0.170387, -0.222917, 0.582878 -624, 0.761898, 0.170808, -0.222985, 0.583622 -625, 0.761215, 0.171229, -0.223050, 0.584364 -626, 0.760531, 0.171649, -0.223112, 0.585107 -627, 0.759847, 0.172068, -0.223172, 0.585849 -628, 0.759163, 0.172486, -0.223230, 0.586591 -629, 0.758479, 0.172902, -0.223285, 0.587332 -630, 0.757794, 0.173318, -0.223338, 0.588072 -631, 0.757109, 0.173732, -0.223389, 0.588813 -632, 0.756424, 0.174145, -0.223437, 0.589552 -633, 0.755739, 0.174558, -0.223482, 0.590292 -634, 0.755053, 0.174969, -0.223526, 0.591031 -635, 0.754367, 0.175379, -0.223566, 0.591769 -636, 0.753681, 0.175787, -0.223605, 0.592507 -637, 0.752994, 0.176195, -0.223641, 0.593245 -638, 0.752308, 0.176601, -0.223674, 0.593982 -639, 0.751621, 0.177007, -0.223705, 0.594719 -640, 0.750933, 0.177411, -0.223734, 0.595456 -641, 0.750246, 0.177814, -0.223760, 0.596192 -642, 0.749558, 0.178215, -0.223784, 0.596927 -643, 0.748870, 0.178616, -0.223805, 0.597663 -644, 0.748182, 0.179015, -0.223824, 0.598398 -645, 0.747494, 0.179413, -0.223841, 0.599132 -646, 0.746805, 0.179810, -0.223855, 0.599866 -647, 0.746116, 0.180205, -0.223867, 0.600600 -648, 0.745427, 0.180600, -0.223876, 0.601333 -649, 0.744738, 0.180993, -0.223883, 0.602066 -650, 0.744049, 0.181384, -0.223887, 0.602798 -651, 0.743359, 0.181775, -0.223889, 0.603530 -652, 0.742669, 0.182164, -0.223889, 0.604262 -653, 0.741979, 0.182552, -0.223886, 0.604994 -654, 0.741288, 0.182938, -0.223881, 0.605725 -655, 0.740598, 0.183324, -0.223873, 0.606455 -656, 0.739907, 0.183708, -0.223863, 0.607186 -657, 0.739216, 0.184090, -0.223851, 0.607915 -658, 0.738525, 0.184471, -0.223836, 0.608645 -659, 0.737833, 0.184851, -0.223819, 0.609374 -660, 0.737142, 0.185230, -0.223799, 0.610103 -661, 0.736450, 0.185607, -0.223777, 0.610831 -662, 0.735758, 0.185983, -0.223753, 0.611560 -663, 0.735066, 0.186357, -0.223726, 0.612287 -664, 0.734373, 0.186730, -0.223697, 0.613015 -665, 0.733681, 0.187102, -0.223665, 0.613742 -666, 0.732988, 0.187472, -0.223632, 0.614469 -667, 0.732295, 0.187840, -0.223595, 0.615195 -668, 0.731602, 0.188208, -0.223556, 0.615921 -669, 0.730909, 0.188574, -0.223515, 0.616647 -670, 0.730215, 0.188938, -0.223472, 0.617372 -671, 0.729521, 0.189301, -0.223426, 0.618098 -672, 0.728827, 0.189662, -0.223378, 0.618822 -673, 0.728133, 0.190022, -0.223327, 0.619547 -674, 0.727439, 0.190381, -0.223274, 0.620271 -675, 0.726745, 0.190738, -0.223219, 0.620995 -676, 0.726050, 0.191093, -0.223161, 0.621718 -677, 0.725355, 0.191448, -0.223101, 0.622442 -678, 0.724660, 0.191800, -0.223039, 0.623165 -679, 0.723965, 0.192151, -0.222974, 0.623887 -680, 0.723270, 0.192500, -0.222907, 0.624609 -681, 0.722574, 0.192848, -0.222837, 0.625331 -682, 0.721879, 0.193195, -0.222766, 0.626053 -683, 0.721183, 0.193539, -0.222691, 0.626775 -684, 0.720487, 0.193883, -0.222615, 0.627496 -685, 0.719791, 0.194224, -0.222536, 0.628217 -686, 0.719094, 0.194564, -0.222455, 0.628937 -687, 0.718398, 0.194903, -0.222371, 0.629657 -688, 0.717701, 0.195240, -0.222285, 0.630377 -689, 0.717004, 0.195575, -0.222197, 0.631097 -690, 0.716307, 0.195909, -0.222107, 0.631817 -691, 0.715610, 0.196241, -0.222014, 0.632536 -692, 0.714913, 0.196571, -0.221919, 0.633255 -693, 0.714215, 0.196900, -0.221821, 0.633973 -694, 0.713518, 0.197227, -0.221722, 0.634692 -695, 0.712820, 0.197552, -0.221620, 0.635410 -696, 0.712122, 0.197876, -0.221515, 0.636128 -697, 0.711424, 0.198198, -0.221409, 0.636845 -698, 0.710726, 0.198519, -0.221300, 0.637562 -699, 0.710027, 0.198837, -0.221188, 0.638280 -700, 0.709329, 0.199154, -0.221075, 0.638996 -701, 0.708630, 0.199470, -0.220959, 0.639713 -702, 0.707931, 0.199783, -0.220841, 0.640429 -703, 0.707232, 0.200095, -0.220720, 0.641145 -704, 0.706533, 0.200406, -0.220598, 0.641861 -705, 0.705833, 0.200714, -0.220473, 0.642577 -706, 0.705134, 0.201021, -0.220346, 0.643292 -707, 0.704434, 0.201326, -0.220216, 0.644007 -708, 0.703734, 0.201629, -0.220085, 0.644722 -709, 0.703034, 0.201931, -0.219951, 0.645437 -710, 0.702334, 0.202230, -0.219814, 0.646151 -711, 0.701634, 0.202528, -0.219676, 0.646865 -712, 0.700934, 0.202824, -0.219535, 0.647579 -713, 0.700233, 0.203119, -0.219392, 0.648293 -714, 0.699532, 0.203411, -0.219247, 0.649006 -715, 0.698831, 0.203702, -0.219100, 0.649719 -716, 0.698130, 0.203991, -0.218950, 0.650433 -717, 0.697429, 0.204278, -0.218798, 0.651145 -718, 0.696728, 0.204563, -0.218644, 0.651858 -719, 0.696026, 0.204847, -0.218488, 0.652570 -720, 0.695325, 0.205128, -0.218329, 0.653282 -721, 0.694623, 0.205408, -0.218169, 0.653994 -722, 0.693921, 0.205686, -0.218006, 0.654706 -723, 0.693219, 0.205962, -0.217841, 0.655418 -724, 0.692517, 0.206236, -0.217674, 0.656129 -725, 0.691814, 0.206509, -0.217504, 0.656840 -726, 0.691112, 0.206779, -0.217333, 0.657551 -727, 0.690409, 0.207047, -0.217159, 0.658262 -728, 0.689706, 0.207314, -0.216983, 0.658972 -729, 0.689003, 0.207579, -0.216805, 0.659683 -730, 0.688300, 0.207842, -0.216625, 0.660393 -731, 0.687597, 0.208103, -0.216442, 0.661103 -732, 0.686893, 0.208362, -0.216258, 0.661813 -733, 0.686190, 0.208619, -0.216071, 0.662522 -734, 0.685486, 0.208874, -0.215882, 0.663231 -735, 0.684782, 0.209127, -0.215691, 0.663941 -736, 0.684078, 0.209378, -0.215498, 0.664650 -737, 0.683373, 0.209627, -0.215303, 0.665358 -738, 0.682669, 0.209875, -0.215106, 0.666067 -739, 0.681964, 0.210120, -0.214906, 0.666775 -740, 0.681260, 0.210363, -0.214705, 0.667484 -741, 0.680555, 0.210605, -0.214501, 0.668192 -742, 0.679850, 0.210844, -0.214296, 0.668900 -743, 0.679144, 0.211081, -0.214088, 0.669607 -744, 0.678439, 0.211317, -0.213878, 0.670315 -745, 0.677733, 0.211550, -0.213666, 0.671022 -746, 0.677028, 0.211782, -0.213452, 0.671729 -747, 0.676322, 0.212011, -0.213236, 0.672436 -748, 0.675616, 0.212238, -0.213018, 0.673143 -749, 0.674910, 0.212463, -0.212798, 0.673850 -750, 0.674203, 0.212687, -0.212575, 0.674556 -751, 0.673497, 0.212908, -0.212351, 0.675263 -752, 0.672790, 0.213127, -0.212125, 0.675969 -753, 0.672083, 0.213344, -0.211896, 0.676675 -754, 0.671376, 0.213559, -0.211666, 0.677381 -755, 0.670669, 0.213772, -0.211434, 0.678086 -756, 0.669961, 0.213983, -0.211199, 0.678792 -757, 0.669253, 0.214192, -0.210963, 0.679497 -758, 0.668546, 0.214399, -0.210725, 0.680202 -759, 0.667838, 0.214603, -0.210484, 0.680907 -760, 0.667130, 0.214806, -0.210242, 0.681612 -761, 0.666421, 0.215006, -0.209998, 0.682317 -762, 0.665713, 0.215205, -0.209751, 0.683021 -763, 0.665004, 0.215401, -0.209503, 0.683726 -764, 0.664295, 0.215595, -0.209253, 0.684430 -765, 0.663586, 0.215787, -0.209001, 0.685134 -766, 0.662877, 0.215977, -0.208746, 0.685838 -767, 0.662167, 0.216165, -0.208490, 0.686541 -768, 0.661458, 0.216350, -0.208232, 0.687245 -769, 0.660748, 0.216534, -0.207972, 0.687948 -770, 0.660038, 0.216715, -0.207710, 0.688652 -771, 0.659328, 0.216894, -0.207447, 0.689355 -772, 0.658617, 0.217071, -0.207181, 0.690058 -773, 0.657907, 0.217246, -0.206913, 0.690760 -774, 0.657196, 0.217419, -0.206644, 0.691463 -775, 0.656485, 0.217589, -0.206373, 0.692166 -776, 0.655773, 0.217758, -0.206099, 0.692868 -777, 0.655062, 0.217924, -0.205824, 0.693570 -778, 0.654350, 0.218088, -0.205547, 0.694272 -779, 0.653638, 0.218249, -0.205268, 0.694974 -780, 0.652926, 0.218409, -0.204988, 0.695676 -781, 0.652214, 0.218566, -0.204705, 0.696377 -782, 0.651502, 0.218722, -0.204421, 0.697079 -783, 0.650789, 0.218874, -0.204135, 0.697780 -784, 0.650076, 0.219025, -0.203847, 0.698481 -785, 0.649363, 0.219174, -0.203557, 0.699182 -786, 0.648650, 0.219320, -0.203265, 0.699883 -787, 0.647936, 0.219464, -0.202972, 0.700583 -788, 0.647222, 0.219606, -0.202676, 0.701284 -789, 0.646508, 0.219745, -0.202379, 0.701984 -790, 0.645794, 0.219883, -0.202081, 0.702684 -791, 0.645079, 0.220018, -0.201780, 0.703384 -792, 0.644365, 0.220151, -0.201478, 0.704084 -793, 0.643650, 0.220281, -0.201174, 0.704784 -794, 0.642934, 0.220410, -0.200868, 0.705484 -795, 0.642219, 0.220536, -0.200560, 0.706183 -796, 0.641503, 0.220659, -0.200251, 0.706882 -797, 0.640787, 0.220781, -0.199940, 0.707581 -798, 0.640071, 0.220900, -0.199627, 0.708280 -799, 0.639355, 0.221017, -0.199312, 0.708979 -800, 0.638638, 0.221132, -0.198996, 0.709678 -801, 0.637921, 0.221244, -0.198678, 0.710376 -802, 0.637204, 0.221354, -0.198359, 0.711075 -803, 0.636486, 0.221462, -0.198037, 0.711773 -804, 0.635769, 0.221568, -0.197714, 0.712471 -805, 0.635051, 0.221671, -0.197390, 0.713169 -806, 0.634333, 0.221772, -0.197064, 0.713867 -807, 0.633614, 0.221870, -0.196736, 0.714564 -808, 0.632895, 0.221967, -0.196406, 0.715262 -809, 0.632176, 0.222061, -0.196075, 0.715959 -810, 0.631457, 0.222152, -0.195742, 0.716656 -811, 0.630737, 0.222242, -0.195408, 0.717353 -812, 0.630017, 0.222329, -0.195071, 0.718049 -813, 0.629297, 0.222413, -0.194734, 0.718746 -814, 0.628577, 0.222496, -0.194395, 0.719442 -815, 0.627856, 0.222576, -0.194054, 0.720139 -816, 0.627135, 0.222653, -0.193711, 0.720835 -817, 0.626414, 0.222729, -0.193367, 0.721531 -818, 0.625692, 0.222802, -0.193022, 0.722226 -819, 0.624971, 0.222872, -0.192675, 0.722922 -820, 0.624248, 0.222941, -0.192326, 0.723617 -821, 0.623526, 0.223007, -0.191976, 0.724313 -822, 0.622803, 0.223070, -0.191624, 0.725008 -823, 0.622080, 0.223131, -0.191271, 0.725703 -824, 0.621357, 0.223190, -0.190916, 0.726397 -825, 0.620633, 0.223247, -0.190560, 0.727092 -826, 0.619909, 0.223301, -0.190202, 0.727786 -827, 0.619185, 0.223353, -0.189843, 0.728480 -828, 0.618460, 0.223402, -0.189482, 0.729174 -829, 0.617735, 0.223449, -0.189120, 0.729868 -830, 0.617010, 0.223494, -0.188756, 0.730562 -831, 0.616284, 0.223536, -0.188391, 0.731255 -832, 0.615558, 0.223576, -0.188024, 0.731949 -833, 0.614832, 0.223614, -0.187656, 0.732642 -834, 0.614105, 0.223649, -0.187287, 0.733334 -835, 0.613378, 0.223682, -0.186916, 0.734027 -836, 0.612651, 0.223712, -0.186544, 0.734720 -837, 0.611924, 0.223740, -0.186170, 0.735412 -838, 0.611196, 0.223765, -0.185795, 0.736104 -839, 0.610467, 0.223789, -0.185419, 0.736796 -840, 0.609739, 0.223809, -0.185041, 0.737488 -841, 0.609010, 0.223828, -0.184662, 0.738179 -842, 0.608280, 0.223844, -0.184281, 0.738870 -843, 0.607551, 0.223857, -0.183899, 0.739562 -844, 0.606820, 0.223869, -0.183516, 0.740252 -845, 0.606090, 0.223877, -0.183131, 0.740943 -846, 0.605359, 0.223884, -0.182745, 0.741634 -847, 0.604628, 0.223888, -0.182358, 0.742324 -848, 0.603896, 0.223889, -0.181970, 0.743014 -849, 0.603164, 0.223889, -0.181580, 0.743704 -850, 0.602432, 0.223885, -0.181189, 0.744393 -851, 0.601699, 0.223880, -0.180796, 0.745083 -852, 0.600966, 0.223872, -0.180403, 0.745772 -853, 0.600233, 0.223861, -0.180008, 0.746461 -854, 0.599499, 0.223848, -0.179612, 0.747150 -855, 0.598765, 0.223833, -0.179214, 0.747838 -856, 0.598030, 0.223815, -0.178816, 0.748526 -857, 0.597295, 0.223795, -0.178416, 0.749214 -858, 0.596560, 0.223772, -0.178015, 0.749902 -859, 0.595824, 0.223747, -0.177612, 0.750590 -860, 0.595088, 0.223720, -0.177209, 0.751277 -861, 0.594351, 0.223690, -0.176804, 0.751964 -862, 0.593614, 0.223658, -0.176398, 0.752651 -863, 0.592876, 0.223623, -0.175991, 0.753338 -864, 0.592138, 0.223586, -0.175583, 0.754024 -865, 0.591400, 0.223546, -0.175174, 0.754710 -866, 0.590661, 0.223504, -0.174763, 0.755396 -867, 0.589922, 0.223460, -0.174352, 0.756081 -868, 0.589183, 0.223413, -0.173939, 0.756767 -869, 0.588443, 0.223364, -0.173525, 0.757452 -870, 0.587702, 0.223312, -0.173110, 0.758136 -871, 0.586961, 0.223258, -0.172694, 0.758821 -872, 0.586220, 0.223202, -0.172277, 0.759505 -873, 0.585478, 0.223143, -0.171859, 0.760189 -874, 0.584736, 0.223081, -0.171439, 0.760873 -875, 0.583993, 0.223017, -0.171019, 0.761556 -876, 0.583250, 0.222951, -0.170598, 0.762239 -877, 0.582506, 0.222883, -0.170175, 0.762922 -878, 0.581762, 0.222811, -0.169752, 0.763605 -879, 0.581018, 0.222738, -0.169327, 0.764287 -880, 0.580273, 0.222662, -0.168902, 0.764969 -881, 0.579527, 0.222584, -0.168475, 0.765651 -882, 0.578781, 0.222503, -0.168048, 0.766332 -883, 0.578035, 0.222420, -0.167619, 0.767013 -884, 0.577288, 0.222334, -0.167190, 0.767694 -885, 0.576541, 0.222246, -0.166760, 0.768374 -886, 0.575793, 0.222155, -0.166328, 0.769054 -887, 0.575044, 0.222062, -0.165896, 0.769734 -888, 0.574295, 0.221967, -0.165463, 0.770414 -889, 0.573546, 0.221869, -0.165028, 0.771093 -890, 0.572796, 0.221769, -0.164593, 0.771772 -891, 0.572046, 0.221667, -0.164157, 0.772450 -892, 0.571295, 0.221561, -0.163721, 0.773129 -893, 0.570544, 0.221454, -0.163283, 0.773807 -894, 0.569792, 0.221344, -0.162844, 0.774484 -895, 0.569040, 0.221232, -0.162405, 0.775161 -896, 0.568287, 0.221117, -0.161964, 0.775838 -897, 0.567533, 0.221000, -0.161523, 0.776515 -898, 0.566780, 0.220881, -0.161081, 0.777191 -899, 0.566025, 0.220759, -0.160638, 0.777867 -900, 0.565270, 0.220634, -0.160194, 0.778542 -901, 0.564515, 0.220508, -0.159750, 0.779217 -902, 0.563759, 0.220379, -0.159305, 0.779892 -903, 0.563002, 0.220247, -0.158858, 0.780566 -904, 0.562245, 0.220113, -0.158412, 0.781240 -905, 0.561488, 0.219977, -0.157964, 0.781914 -906, 0.560729, 0.219838, -0.157516, 0.782587 -907, 0.559971, 0.219697, -0.157066, 0.783260 -908, 0.559211, 0.219553, -0.156616, 0.783932 -909, 0.558452, 0.219407, -0.156166, 0.784605 -910, 0.557691, 0.219259, -0.155714, 0.785276 -911, 0.556930, 0.219108, -0.155262, 0.785948 -912, 0.556169, 0.218955, -0.154810, 0.786618 -913, 0.555407, 0.218800, -0.154356, 0.787289 -914, 0.554644, 0.218642, -0.153902, 0.787959 -915, 0.553881, 0.218482, -0.153447, 0.788629 -916, 0.553117, 0.218319, -0.152992, 0.789298 -917, 0.552353, 0.218154, -0.152536, 0.789967 -918, 0.551588, 0.217987, -0.152079, 0.790635 -919, 0.550823, 0.217817, -0.151621, 0.791303 -920, 0.550057, 0.217645, -0.151163, 0.791971 -921, 0.549290, 0.217470, -0.150705, 0.792638 -922, 0.548523, 0.217294, -0.150246, 0.793305 -923, 0.547755, 0.217114, -0.149786, 0.793971 -924, 0.546987, 0.216933, -0.149325, 0.794637 -925, 0.546218, 0.216749, -0.148864, 0.795302 -926, 0.545448, 0.216563, -0.148403, 0.795967 -927, 0.544678, 0.216374, -0.147941, 0.796631 -928, 0.543907, 0.216183, -0.147478, 0.797295 -929, 0.543136, 0.215990, -0.147015, 0.797959 -930, 0.542364, 0.215794, -0.146551, 0.798622 -931, 0.541591, 0.215596, -0.146087, 0.799285 -932, 0.540818, 0.215396, -0.145622, 0.799947 -933, 0.540044, 0.215193, -0.145157, 0.800608 -934, 0.539270, 0.214988, -0.144691, 0.801269 -935, 0.538495, 0.214781, -0.144225, 0.801930 -936, 0.537719, 0.214571, -0.143758, 0.802590 -937, 0.536943, 0.214360, -0.143291, 0.803250 -938, 0.536166, 0.214145, -0.142824, 0.803909 -939, 0.535388, 0.213929, -0.142356, 0.804568 -940, 0.534610, 0.213710, -0.141887, 0.805226 -941, 0.533831, 0.213489, -0.141419, 0.805883 -942, 0.533051, 0.213265, -0.140949, 0.806540 -943, 0.532271, 0.213040, -0.140480, 0.807197 -944, 0.531490, 0.212812, -0.140010, 0.807853 -945, 0.530709, 0.212581, -0.139539, 0.808508 -946, 0.529927, 0.212349, -0.139069, 0.809163 -947, 0.529144, 0.212114, -0.138598, 0.809818 -948, 0.528361, 0.211877, -0.138126, 0.810472 -949, 0.527577, 0.211637, -0.137654, 0.811125 -950, 0.526792, 0.211396, -0.137182, 0.811778 -951, 0.526007, 0.211152, -0.136710, 0.812430 -952, 0.525220, 0.210906, -0.136237, 0.813082 -953, 0.524434, 0.210657, -0.135764, 0.813733 -954, 0.523646, 0.210406, -0.135291, 0.814383 -955, 0.522858, 0.210154, -0.134817, 0.815033 -956, 0.522070, 0.209898, -0.134343, 0.815682 -957, 0.521280, 0.209641, -0.133869, 0.816331 -958, 0.520490, 0.209381, -0.133395, 0.816979 -959, 0.519699, 0.209120, -0.132920, 0.817627 -960, 0.518908, 0.208856, -0.132446, 0.818274 -961, 0.518116, 0.208589, -0.131971, 0.818920 -962, 0.517323, 0.208321, -0.131495, 0.819566 -963, 0.516529, 0.208050, -0.131020, 0.820211 -964, 0.515735, 0.207777, -0.130544, 0.820856 -965, 0.514940, 0.207502, -0.130068, 0.821500 -966, 0.514145, 0.207225, -0.129592, 0.822143 -967, 0.513348, 0.206945, -0.129116, 0.822786 -968, 0.512551, 0.206664, -0.128640, 0.823428 -969, 0.511753, 0.206380, -0.128164, 0.824069 -970, 0.510955, 0.206094, -0.127687, 0.824710 -971, 0.510156, 0.205806, -0.127210, 0.825350 -972, 0.509356, 0.205516, -0.126734, 0.825989 -973, 0.508556, 0.205223, -0.126257, 0.826628 -974, 0.507754, 0.204929, -0.125780, 0.827266 -975, 0.506952, 0.204632, -0.125303, 0.827904 -976, 0.506150, 0.204333, -0.124826, 0.828540 -977, 0.505346, 0.204032, -0.124349, 0.829176 -978, 0.504542, 0.203729, -0.123871, 0.829812 -979, 0.503737, 0.203424, -0.123394, 0.830447 -980, 0.502932, 0.203117, -0.122917, 0.831081 -981, 0.502125, 0.202807, -0.122440, 0.831714 -982, 0.501318, 0.202496, -0.121962, 0.832346 -983, 0.500511, 0.202182, -0.121485, 0.832978 -984, 0.499702, 0.201867, -0.121008, 0.833610 -985, 0.498893, 0.201549, -0.120530, 0.834240 -986, 0.498083, 0.201229, -0.120053, 0.834870 -987, 0.497272, 0.200907, -0.119576, 0.835499 -988, 0.496461, 0.200583, -0.119099, 0.836127 -989, 0.495648, 0.200257, -0.118621, 0.836755 -990, 0.494836, 0.199929, -0.118144, 0.837382 -991, 0.494022, 0.199599, -0.117667, 0.838008 -992, 0.493207, 0.199267, -0.117191, 0.838633 -993, 0.492392, 0.198933, -0.116714, 0.839258 -994, 0.491576, 0.198597, -0.116237, 0.839882 -995, 0.490760, 0.198258, -0.115760, 0.840505 -996, 0.489942, 0.197918, -0.115284, 0.841127 -997, 0.489124, 0.197576, -0.114808, 0.841749 -998, 0.488305, 0.197232, -0.114331, 0.842369 -999, 0.487485, 0.196886, -0.113855, 0.842989 -1000, 0.486665, 0.196538, -0.113380, 0.843609 -1001, 0.485844, 0.196187, -0.112904, 0.844227 -1002, 0.485022, 0.195835, -0.112428, 0.844845 -1003, 0.484199, 0.195481, -0.111953, 0.845461 -1004, 0.483375, 0.195125, -0.111478, 0.846077 -1005, 0.482551, 0.194767, -0.111003, 0.846693 -1006, 0.481726, 0.194408, -0.110528, 0.847307 -1007, 0.480900, 0.194046, -0.110054, 0.847921 -1008, 0.480074, 0.193682, -0.109579, 0.848533 -1009, 0.479246, 0.193317, -0.109105, 0.849145 -1010, 0.478418, 0.192949, -0.108632, 0.849756 -1011, 0.477589, 0.192580, -0.108158, 0.850367 -1012, 0.476760, 0.192208, -0.107685, 0.850976 -1013, 0.475929, 0.191835, -0.107212, 0.851584 -1014, 0.475098, 0.191460, -0.106739, 0.852192 -1015, 0.474266, 0.191083, -0.106267, 0.852799 -1016, 0.473433, 0.190705, -0.105795, 0.853405 -1017, 0.472600, 0.190324, -0.105323, 0.854010 -1018, 0.471765, 0.189942, -0.104852, 0.854614 -1019, 0.470930, 0.189557, -0.104381, 0.855218 -1020, 0.470094, 0.189171, -0.103910, 0.855820 -1021, 0.469258, 0.188783, -0.103440, 0.856422 -1022, 0.468420, 0.188394, -0.102970, 0.857023 -1023, 0.467582, 0.188002, -0.102500, 0.857622 -1024, 0.466743, 0.187609, -0.102031, 0.858221 -1025, 0.465903, 0.187214, -0.101562, 0.858819 -1026, 0.465062, 0.186817, -0.101094, 0.859416 -1027, 0.464221, 0.186418, -0.100625, 0.860013 -1028, 0.463379, 0.186018, -0.100158, 0.860608 -1029, 0.462536, 0.185616, -0.099691, 0.861202 -1030, 0.461692, 0.185212, -0.099224, 0.861796 -1031, 0.460847, 0.184806, -0.098758, 0.862388 -1032, 0.460002, 0.184399, -0.098292, 0.862980 -1033, 0.459156, 0.183990, -0.097826, 0.863570 -1034, 0.458309, 0.183579, -0.097361, 0.864160 -1035, 0.457461, 0.183167, -0.096897, 0.864749 -1036, 0.456612, 0.182752, -0.096433, 0.865337 -1037, 0.455763, 0.182337, -0.095970, 0.865923 -1038, 0.454913, 0.181919, -0.095507, 0.866509 -1039, 0.454062, 0.181500, -0.095044, 0.867094 -1040, 0.453210, 0.181079, -0.094582, 0.867678 -1041, 0.452357, 0.180657, -0.094121, 0.868261 -1042, 0.451504, 0.180233, -0.093660, 0.868843 -1043, 0.450650, 0.179807, -0.093200, 0.869424 -1044, 0.449795, 0.179380, -0.092740, 0.870004 -1045, 0.448939, 0.178951, -0.092281, 0.870583 -1046, 0.448083, 0.178520, -0.091822, 0.871161 -1047, 0.447225, 0.178088, -0.091364, 0.871738 -1048, 0.446367, 0.177655, -0.090907, 0.872314 -1049, 0.445508, 0.177219, -0.090450, 0.872889 -1050, 0.444648, 0.176782, -0.089994, 0.873463 -1051, 0.443788, 0.176344, -0.089538, 0.874036 -1052, 0.442926, 0.175904, -0.089083, 0.874608 -1053, 0.442064, 0.175463, -0.088629, 0.875178 -1054, 0.441201, 0.175020, -0.088175, 0.875748 -1055, 0.440337, 0.174576, -0.087722, 0.876317 -1056, 0.439473, 0.174130, -0.087269, 0.876885 -1057, 0.438607, 0.173682, -0.086818, 0.877451 -1058, 0.437741, 0.173233, -0.086367, 0.878017 -1059, 0.436874, 0.172783, -0.085916, 0.878582 -1060, 0.436006, 0.172331, -0.085466, 0.879145 -1061, 0.435137, 0.171878, -0.085017, 0.879708 -1062, 0.434268, 0.171423, -0.084569, 0.880269 -1063, 0.433398, 0.170967, -0.084122, 0.880829 -1064, 0.432527, 0.170509, -0.083675, 0.881389 -1065, 0.431655, 0.170051, -0.083228, 0.881947 -1066, 0.430782, 0.169590, -0.082783, 0.882504 -1067, 0.429908, 0.169128, -0.082338, 0.883060 -1068, 0.429034, 0.168665, -0.081895, 0.883615 -1069, 0.428159, 0.168201, -0.081451, 0.884169 -1070, 0.427283, 0.167735, -0.081009, 0.884721 -1071, 0.426407, 0.167268, -0.080567, 0.885273 -1072, 0.425529, 0.166799, -0.080127, 0.885823 -1073, 0.424651, 0.166329, -0.079686, 0.886373 -1074, 0.423772, 0.165858, -0.079247, 0.886921 -1075, 0.422892, 0.165386, -0.078809, 0.887468 -1076, 0.422011, 0.164912, -0.078371, 0.888014 -1077, 0.421129, 0.164437, -0.077934, 0.888559 -1078, 0.420247, 0.163961, -0.077498, 0.889103 -1079, 0.419364, 0.163483, -0.077063, 0.889645 -1080, 0.418480, 0.163004, -0.076629, 0.890187 -1081, 0.417595, 0.162524, -0.076195, 0.890727 -1082, 0.416710, 0.162043, -0.075763, 0.891266 -1083, 0.415823, 0.161561, -0.075331, 0.891804 -1084, 0.414936, 0.161077, -0.074900, 0.892341 -1085, 0.414048, 0.160592, -0.074470, 0.892876 -1086, 0.413160, 0.160106, -0.074041, 0.893411 -1087, 0.412270, 0.159619, -0.073613, 0.893944 -1088, 0.411380, 0.159130, -0.073186, 0.894476 -1089, 0.410489, 0.158641, -0.072759, 0.895007 -1090, 0.409597, 0.158150, -0.072334, 0.895537 -1091, 0.408704, 0.157658, -0.071909, 0.896066 -1092, 0.407811, 0.157165, -0.071486, 0.896593 -1093, 0.406916, 0.156671, -0.071063, 0.897120 -1094, 0.406021, 0.156176, -0.070641, 0.897645 -1095, 0.405125, 0.155680, -0.070220, 0.898168 -1096, 0.404229, 0.155182, -0.069801, 0.898691 -1097, 0.403331, 0.154684, -0.069382, 0.899212 -1098, 0.402433, 0.154185, -0.068964, 0.899733 -1099, 0.401534, 0.153684, -0.068547, 0.900252 -1100, 0.400634, 0.153183, -0.068131, 0.900770 -1101, 0.399733, 0.152680, -0.067716, 0.901286 -1102, 0.398832, 0.152177, -0.067302, 0.901801 -1103, 0.397930, 0.151672, -0.066889, 0.902316 -1104, 0.397027, 0.151167, -0.066477, 0.902828 -1105, 0.396123, 0.150660, -0.066066, 0.903340 -1106, 0.395218, 0.150153, -0.065656, 0.903851 -1107, 0.394313, 0.149645, -0.065247, 0.904360 -1108, 0.393407, 0.149135, -0.064839, 0.904868 -1109, 0.392500, 0.148625, -0.064432, 0.905374 -1110, 0.391592, 0.148114, -0.064027, 0.905880 -1111, 0.390684, 0.147602, -0.063622, 0.906384 -1112, 0.389775, 0.147089, -0.063218, 0.906887 -1113, 0.388865, 0.146576, -0.062816, 0.907389 -1114, 0.387954, 0.146061, -0.062414, 0.907889 -1115, 0.387042, 0.145546, -0.062014, 0.908388 -1116, 0.386130, 0.145029, -0.061614, 0.908886 -1117, 0.385217, 0.144512, -0.061216, 0.909383 -1118, 0.384303, 0.143994, -0.060819, 0.909878 -1119, 0.383389, 0.143476, -0.060422, 0.910372 -1120, 0.382473, 0.142956, -0.060027, 0.910865 -1121, 0.381557, 0.142436, -0.059634, 0.911356 -1122, 0.380640, 0.141915, -0.059241, 0.911846 -1123, 0.379722, 0.141393, -0.058849, 0.912335 -1124, 0.378804, 0.140871, -0.058459, 0.912823 -1125, 0.377885, 0.140347, -0.058069, 0.913309 -1126, 0.376965, 0.139823, -0.057681, 0.913794 -1127, 0.376044, 0.139299, -0.057294, 0.914278 -1128, 0.375123, 0.138773, -0.056908, 0.914760 -1129, 0.374200, 0.138247, -0.056523, 0.915241 -1130, 0.373277, 0.137721, -0.056139, 0.915721 -1131, 0.372354, 0.137193, -0.055757, 0.916200 -1132, 0.371429, 0.136665, -0.055376, 0.916677 -1133, 0.370504, 0.136137, -0.054995, 0.917153 -1134, 0.369578, 0.135608, -0.054616, 0.917627 -1135, 0.368651, 0.135078, -0.054239, 0.918100 -1136, 0.367724, 0.134547, -0.053862, 0.918572 -1137, 0.366796, 0.134016, -0.053487, 0.919043 -1138, 0.365867, 0.133485, -0.053113, 0.919512 -1139, 0.364937, 0.132953, -0.052740, 0.919980 -1140, 0.364007, 0.132420, -0.052368, 0.920446 -1141, 0.363076, 0.131887, -0.051997, 0.920912 -1142, 0.362144, 0.131353, -0.051628, 0.921376 -1143, 0.361211, 0.130819, -0.051260, 0.921838 -1144, 0.360278, 0.130284, -0.050893, 0.922299 -1145, 0.359344, 0.129749, -0.050527, 0.922759 -1146, 0.358409, 0.129213, -0.050163, 0.923218 -1147, 0.357473, 0.128677, -0.049800, 0.923675 -1148, 0.356537, 0.128141, -0.049438, 0.924130 -1149, 0.355600, 0.127604, -0.049077, 0.924585 -1150, 0.354663, 0.127066, -0.048718, 0.925038 -1151, 0.353724, 0.126529, -0.048360, 0.925490 -1152, 0.352785, 0.125991, -0.048003, 0.925940 -1153, 0.351845, 0.125452, -0.047647, 0.926389 -1154, 0.350905, 0.124913, -0.047293, 0.926836 -1155, 0.349964, 0.124374, -0.046940, 0.927283 -1156, 0.349022, 0.123834, -0.046588, 0.927728 -1157, 0.348079, 0.123294, -0.046237, 0.928171 -1158, 0.347136, 0.122754, -0.045888, 0.928613 -1159, 0.346192, 0.122214, -0.045540, 0.929054 -1160, 0.345247, 0.121673, -0.045194, 0.929493 -1161, 0.344302, 0.121132, -0.044848, 0.929931 -1162, 0.343355, 0.120591, -0.044504, 0.930368 -1163, 0.342409, 0.120049, -0.044162, 0.930803 -1164, 0.341461, 0.119507, -0.043820, 0.931237 -1165, 0.340513, 0.118965, -0.043480, 0.931669 -1166, 0.339564, 0.118423, -0.043141, 0.932100 -1167, 0.338614, 0.117880, -0.042804, 0.932530 -1168, 0.337664, 0.117338, -0.042468, 0.932958 -1169, 0.336713, 0.116795, -0.042133, 0.933385 -1170, 0.335762, 0.116252, -0.041800, 0.933811 -1171, 0.334809, 0.115709, -0.041468, 0.934235 -1172, 0.333856, 0.115166, -0.041137, 0.934657 -1173, 0.332903, 0.114623, -0.040807, 0.935079 -1174, 0.331948, 0.114079, -0.040479, 0.935499 -1175, 0.330994, 0.113536, -0.040153, 0.935917 -1176, 0.330038, 0.112992, -0.039827, 0.936334 -1177, 0.329082, 0.112448, -0.039503, 0.936750 -1178, 0.328125, 0.111905, -0.039181, 0.937164 -1179, 0.327167, 0.111361, -0.038859, 0.937577 -1180, 0.326209, 0.110817, -0.038539, 0.937988 -1181, 0.325250, 0.110273, -0.038221, 0.938398 -1182, 0.324290, 0.109730, -0.037904, 0.938807 -1183, 0.323330, 0.109186, -0.037588, 0.939214 -1184, 0.322369, 0.108642, -0.037273, 0.939620 -1185, 0.321408, 0.108099, -0.036960, 0.940024 -1186, 0.320446, 0.107555, -0.036649, 0.940427 -1187, 0.319483, 0.107011, -0.036338, 0.940829 -1188, 0.318519, 0.106468, -0.036030, 0.941229 -1189, 0.317555, 0.105924, -0.035722, 0.941628 -1190, 0.316591, 0.105381, -0.035416, 0.942025 -1191, 0.315625, 0.104838, -0.035111, 0.942421 -1192, 0.314659, 0.104295, -0.034808, 0.942815 -1193, 0.313693, 0.103752, -0.034506, 0.943208 -1194, 0.312726, 0.103209, -0.034205, 0.943600 -1195, 0.311758, 0.102667, -0.033906, 0.943990 -1196, 0.310789, 0.102124, -0.033609, 0.944379 -1197, 0.309820, 0.101582, -0.033312, 0.944766 -1198, 0.308851, 0.101040, -0.033017, 0.945152 -1199, 0.307881, 0.100498, -0.032724, 0.945536 -1200, 0.306910, 0.099957, -0.032432, 0.945919 -1201, 0.305938, 0.099416, -0.032141, 0.946301 -1202, 0.304966, 0.098875, -0.031852, 0.946681 -1203, 0.303993, 0.098334, -0.031564, 0.947060 -1204, 0.303020, 0.097793, -0.031277, 0.947437 -1205, 0.302046, 0.097253, -0.030992, 0.947813 -1206, 0.301072, 0.096714, -0.030709, 0.948187 -1207, 0.300097, 0.096174, -0.030427, 0.948560 -1208, 0.299121, 0.095635, -0.030146, 0.948932 -1209, 0.298145, 0.095096, -0.029867, 0.949302 -1210, 0.297168, 0.094558, -0.029589, 0.949671 -1211, 0.296191, 0.094020, -0.029312, 0.950038 -1212, 0.295213, 0.093482, -0.029037, 0.950404 -1213, 0.294234, 0.092945, -0.028764, 0.950768 -1214, 0.293255, 0.092408, -0.028491, 0.951131 -1215, 0.292276, 0.091872, -0.028221, 0.951493 -1216, 0.291295, 0.091336, -0.027951, 0.951853 -1217, 0.290314, 0.090800, -0.027684, 0.952211 -1218, 0.289333, 0.090265, -0.027417, 0.952569 -1219, 0.288351, 0.089731, -0.027152, 0.952924 -1220, 0.287369, 0.089197, -0.026889, 0.953279 -1221, 0.286386, 0.088663, -0.026626, 0.953632 -1222, 0.285402, 0.088130, -0.026366, 0.953983 -1223, 0.284418, 0.087598, -0.026107, 0.954333 -1224, 0.283433, 0.087066, -0.025849, 0.954682 -1225, 0.282448, 0.086534, -0.025592, 0.955029 -1226, 0.281462, 0.086004, -0.025337, 0.955374 -1227, 0.280476, 0.085473, -0.025084, 0.955719 -1228, 0.279489, 0.084944, -0.024832, 0.956062 -1229, 0.278502, 0.084415, -0.024581, 0.956403 -1230, 0.277514, 0.083886, -0.024332, 0.956743 -1231, 0.276526, 0.083359, -0.024085, 0.957081 -1232, 0.275537, 0.082832, -0.023838, 0.957419 -1233, 0.274547, 0.082305, -0.023593, 0.957754 -1234, 0.273557, 0.081780, -0.023350, 0.958088 -1235, 0.272567, 0.081255, -0.023108, 0.958421 -1236, 0.271576, 0.080730, -0.022868, 0.958753 -1237, 0.270584, 0.080207, -0.022629, 0.959082 -1238, 0.269592, 0.079684, -0.022391, 0.959411 -1239, 0.268600, 0.079162, -0.022155, 0.959738 -1240, 0.267607, 0.078640, -0.021920, 0.960064 -1241, 0.266613, 0.078120, -0.021687, 0.960388 -1242, 0.265619, 0.077600, -0.021455, 0.960710 -1243, 0.264624, 0.077081, -0.021225, 0.961032 -1244, 0.263629, 0.076563, -0.020996, 0.961352 -1245, 0.262634, 0.076045, -0.020768, 0.961670 -1246, 0.261638, 0.075529, -0.020542, 0.961987 -1247, 0.260641, 0.075013, -0.020317, 0.962303 -1248, 0.259644, 0.074498, -0.020094, 0.962617 -1249, 0.258647, 0.073984, -0.019872, 0.962929 -1250, 0.257649, 0.073471, -0.019652, 0.963241 -1251, 0.256651, 0.072959, -0.019433, 0.963551 -1252, 0.255652, 0.072447, -0.019216, 0.963859 -1253, 0.254652, 0.071937, -0.019000, 0.964166 -1254, 0.253653, 0.071428, -0.018785, 0.964472 -1255, 0.252652, 0.070919, -0.018572, 0.964776 -1256, 0.251652, 0.070411, -0.018360, 0.965079 -1257, 0.250650, 0.069905, -0.018150, 0.965380 -1258, 0.249649, 0.069399, -0.017941, 0.965680 -1259, 0.248647, 0.068895, -0.017734, 0.965978 -1260, 0.247644, 0.068391, -0.017528, 0.966275 -1261, 0.246641, 0.067888, -0.017323, 0.966571 -1262, 0.245638, 0.067387, -0.017120, 0.966865 -1263, 0.244634, 0.066886, -0.016918, 0.967158 -1264, 0.243630, 0.066387, -0.016718, 0.967449 -1265, 0.242625, 0.065888, -0.016519, 0.967739 -1266, 0.241620, 0.065391, -0.016322, 0.968028 -1267, 0.240614, 0.064895, -0.016125, 0.968315 -1268, 0.239608, 0.064399, -0.015931, 0.968600 -1269, 0.238602, 0.063905, -0.015738, 0.968885 -1270, 0.237595, 0.063413, -0.015546, 0.969168 -1271, 0.236587, 0.062921, -0.015355, 0.969449 -1272, 0.235580, 0.062430, -0.015166, 0.969729 -1273, 0.234572, 0.061941, -0.014979, 0.970008 -1274, 0.233563, 0.061452, -0.014793, 0.970285 -1275, 0.232554, 0.060965, -0.014608, 0.970561 -1276, 0.231545, 0.060479, -0.014424, 0.970835 -1277, 0.230535, 0.059995, -0.014242, 0.971108 -1278, 0.229525, 0.059511, -0.014062, 0.971380 -1279, 0.228514, 0.059029, -0.013883, 0.971650 -1280, 0.227503, 0.058548, -0.013705, 0.971919 -1281, 0.226492, 0.058068, -0.013528, 0.972186 -1282, 0.225480, 0.057590, -0.013353, 0.972452 -1283, 0.224468, 0.057113, -0.013180, 0.972717 -1284, 0.223456, 0.056637, -0.013007, 0.972980 -1285, 0.222443, 0.056162, -0.012836, 0.973242 -1286, 0.221429, 0.055689, -0.012667, 0.973503 -1287, 0.220416, 0.055217, -0.012499, 0.973762 -1288, 0.219402, 0.054746, -0.012332, 0.974019 -1289, 0.218387, 0.054277, -0.012166, 0.974276 -1290, 0.217373, 0.053809, -0.012002, 0.974531 -1291, 0.216357, 0.053343, -0.011840, 0.974784 -1292, 0.215342, 0.052877, -0.011678, 0.975036 -1293, 0.214326, 0.052414, -0.011518, 0.975287 -1294, 0.213310, 0.051951, -0.011360, 0.975536 -1295, 0.212293, 0.051490, -0.011202, 0.975784 -1296, 0.211276, 0.051031, -0.011046, 0.976031 -1297, 0.210259, 0.050573, -0.010892, 0.976276 -1298, 0.209241, 0.050116, -0.010739, 0.976520 -1299, 0.208223, 0.049661, -0.010587, 0.976762 -1300, 0.207205, 0.049208, -0.010436, 0.977003 -1301, 0.206186, 0.048755, -0.010287, 0.977243 -1302, 0.205167, 0.048305, -0.010139, 0.977482 -1303, 0.204148, 0.047856, -0.009992, 0.977719 -1304, 0.203128, 0.047408, -0.009847, 0.977954 -1305, 0.202108, 0.046962, -0.009703, 0.978188 -1306, 0.201088, 0.046517, -0.009560, 0.978421 -1307, 0.200067, 0.046074, -0.009419, 0.978653 -1308, 0.199046, 0.045633, -0.009279, 0.978883 -1309, 0.198025, 0.045193, -0.009140, 0.979112 -1310, 0.197003, 0.044754, -0.009003, 0.979339 -1311, 0.195981, 0.044318, -0.008867, 0.979566 -1312, 0.194959, 0.043883, -0.008732, 0.979790 -1313, 0.193937, 0.043449, -0.008598, 0.980014 -1314, 0.192914, 0.043017, -0.008466, 0.980236 -1315, 0.191890, 0.042587, -0.008335, 0.980456 -1316, 0.190867, 0.042158, -0.008205, 0.980676 -1317, 0.189843, 0.041731, -0.008077, 0.980894 -1318, 0.188819, 0.041306, -0.007950, 0.981111 -1319, 0.187795, 0.040883, -0.007824, 0.981326 -1320, 0.186770, 0.040461, -0.007699, 0.981540 -1321, 0.185745, 0.040041, -0.007576, 0.981753 -1322, 0.184720, 0.039622, -0.007453, 0.981964 -1323, 0.183694, 0.039205, -0.007332, 0.982174 -1324, 0.182668, 0.038790, -0.007213, 0.982383 -1325, 0.181642, 0.038377, -0.007094, 0.982590 -1326, 0.180616, 0.037965, -0.006977, 0.982796 -1327, 0.179589, 0.037556, -0.006861, 0.983001 -1328, 0.178562, 0.037148, -0.006746, 0.983204 -1329, 0.177535, 0.036741, -0.006633, 0.983406 -1330, 0.176507, 0.036337, -0.006521, 0.983607 -1331, 0.175479, 0.035934, -0.006410, 0.983806 -1332, 0.174451, 0.035533, -0.006300, 0.984004 -1333, 0.173423, 0.035134, -0.006191, 0.984201 -1334, 0.172395, 0.034737, -0.006083, 0.984396 -1335, 0.171366, 0.034342, -0.005977, 0.984591 -1336, 0.170337, 0.033948, -0.005872, 0.984783 -1337, 0.169307, 0.033557, -0.005768, 0.984975 -1338, 0.168278, 0.033167, -0.005665, 0.985165 -1339, 0.167248, 0.032779, -0.005564, 0.985354 -1340, 0.166218, 0.032393, -0.005463, 0.985542 -1341, 0.165187, 0.032009, -0.005364, 0.985728 -1342, 0.164157, 0.031626, -0.005266, 0.985913 -1343, 0.163126, 0.031246, -0.005169, 0.986097 -1344, 0.162095, 0.030868, -0.005073, 0.986279 -1345, 0.161063, 0.030491, -0.004978, 0.986460 -1346, 0.160032, 0.030117, -0.004885, 0.986640 -1347, 0.159000, 0.029744, -0.004793, 0.986819 -1348, 0.157968, 0.029374, -0.004701, 0.986996 -1349, 0.156936, 0.029005, -0.004611, 0.987172 -1350, 0.155903, 0.028638, -0.004522, 0.987347 -1351, 0.154871, 0.028274, -0.004434, 0.987520 -1352, 0.153838, 0.027911, -0.004347, 0.987692 -1353, 0.152804, 0.027550, -0.004262, 0.987863 -1354, 0.151771, 0.027192, -0.004177, 0.988033 -1355, 0.150738, 0.026835, -0.004093, 0.988201 -1356, 0.149704, 0.026480, -0.004011, 0.988368 -1357, 0.148670, 0.026128, -0.003929, 0.988534 -1358, 0.147635, 0.025777, -0.003849, 0.988698 -1359, 0.146601, 0.025429, -0.003770, 0.988862 -1360, 0.145566, 0.025082, -0.003692, 0.989024 -1361, 0.144532, 0.024738, -0.003615, 0.989184 -1362, 0.143497, 0.024396, -0.003538, 0.989344 -1363, 0.142461, 0.024056, -0.003463, 0.989502 -1364, 0.141426, 0.023718, -0.003389, 0.989659 -1365, 0.140390, 0.023382, -0.003316, 0.989815 -1366, 0.139354, 0.023048, -0.003244, 0.989969 -1367, 0.138318, 0.022716, -0.003173, 0.990122 -1368, 0.137282, 0.022387, -0.003103, 0.990274 -1369, 0.136246, 0.022059, -0.003035, 0.990425 -1370, 0.135209, 0.021734, -0.002967, 0.990574 -1371, 0.134172, 0.021411, -0.002900, 0.990722 -1372, 0.133135, 0.021090, -0.002834, 0.990869 -1373, 0.132098, 0.020771, -0.002769, 0.991015 -1374, 0.131061, 0.020454, -0.002705, 0.991160 -1375, 0.130023, 0.020140, -0.002642, 0.991303 -1376, 0.128986, 0.019828, -0.002580, 0.991445 -1377, 0.127948, 0.019518, -0.002518, 0.991586 -1378, 0.126910, 0.019210, -0.002458, 0.991725 -1379, 0.125872, 0.018904, -0.002399, 0.991864 -1380, 0.124833, 0.018601, -0.002341, 0.992001 -1381, 0.123795, 0.018299, -0.002283, 0.992136 -1382, 0.122756, 0.018001, -0.002227, 0.992271 -1383, 0.121717, 0.017704, -0.002171, 0.992405 -1384, 0.120678, 0.017409, -0.002117, 0.992537 -1385, 0.119639, 0.017117, -0.002063, 0.992668 -1386, 0.118600, 0.016827, -0.002010, 0.992798 -1387, 0.117560, 0.016540, -0.001958, 0.992926 -1388, 0.116520, 0.016254, -0.001907, 0.993053 -1389, 0.115481, 0.015971, -0.001857, 0.993180 -1390, 0.114441, 0.015690, -0.001808, 0.993305 -1391, 0.113401, 0.015412, -0.001759, 0.993428 -1392, 0.112360, 0.015136, -0.001712, 0.993551 -1393, 0.111320, 0.014862, -0.001665, 0.993672 -1394, 0.110279, 0.014590, -0.001619, 0.993792 -1395, 0.109239, 0.014321, -0.001574, 0.993911 -1396, 0.108198, 0.014054, -0.001530, 0.994029 -1397, 0.107157, 0.013790, -0.001486, 0.994145 -1398, 0.106116, 0.013528, -0.001444, 0.994261 -1399, 0.105075, 0.013268, -0.001402, 0.994375 -1400, 0.104033, 0.013010, -0.001361, 0.994488 -1401, 0.102992, 0.012755, -0.001321, 0.994600 -1402, 0.101950, 0.012503, -0.001281, 0.994710 -1403, 0.100909, 0.012252, -0.001243, 0.994819 -1404, 0.099867, 0.012004, -0.001205, 0.994928 -1405, 0.098825, 0.011759, -0.001168, 0.995035 -1406, 0.097783, 0.011516, -0.001132, 0.995141 -1407, 0.096740, 0.011275, -0.001096, 0.995245 -1408, 0.095698, 0.011036, -0.001061, 0.995349 -1409, 0.094655, 0.010801, -0.001027, 0.995451 -1410, 0.093613, 0.010567, -0.000994, 0.995552 -1411, 0.092570, 0.010336, -0.000961, 0.995652 -1412, 0.091527, 0.010107, -0.000929, 0.995751 -1413, 0.090484, 0.009881, -0.000898, 0.995848 -1414, 0.089441, 0.009657, -0.000867, 0.995945 -1415, 0.088398, 0.009436, -0.000837, 0.996040 -1416, 0.087355, 0.009217, -0.000808, 0.996134 -1417, 0.086312, 0.009001, -0.000780, 0.996227 -1418, 0.085268, 0.008787, -0.000752, 0.996319 -1419, 0.084224, 0.008575, -0.000725, 0.996410 -1420, 0.083181, 0.008366, -0.000698, 0.996499 -1421, 0.082137, 0.008160, -0.000672, 0.996587 -1422, 0.081093, 0.007956, -0.000647, 0.996675 -1423, 0.080049, 0.007754, -0.000623, 0.996761 -1424, 0.079005, 0.007555, -0.000599, 0.996845 -1425, 0.077961, 0.007358, -0.000575, 0.996929 -1426, 0.076917, 0.007164, -0.000553, 0.997012 -1427, 0.075872, 0.006973, -0.000531, 0.997093 -1428, 0.074828, 0.006784, -0.000509, 0.997173 -1429, 0.073783, 0.006597, -0.000488, 0.997252 -1430, 0.072739, 0.006413, -0.000468, 0.997330 -1431, 0.071694, 0.006232, -0.000448, 0.997407 -1432, 0.070649, 0.006053, -0.000429, 0.997483 -1433, 0.069604, 0.005876, -0.000410, 0.997557 -1434, 0.068559, 0.005702, -0.000392, 0.997631 -1435, 0.067514, 0.005531, -0.000374, 0.997703 -1436, 0.066469, 0.005362, -0.000357, 0.997774 -1437, 0.065424, 0.005196, -0.000341, 0.997844 -1438, 0.064379, 0.005032, -0.000325, 0.997913 -1439, 0.063333, 0.004871, -0.000309, 0.997980 -1440, 0.062288, 0.004713, -0.000294, 0.998047 -1441, 0.061242, 0.004557, -0.000280, 0.998112 -1442, 0.060197, 0.004403, -0.000266, 0.998177 -1443, 0.059151, 0.004252, -0.000252, 0.998240 -1444, 0.058106, 0.004104, -0.000239, 0.998302 -1445, 0.057060, 0.003958, -0.000226, 0.998363 -1446, 0.056014, 0.003815, -0.000214, 0.998423 -1447, 0.054968, 0.003675, -0.000202, 0.998481 -1448, 0.053922, 0.003537, -0.000191, 0.998539 -1449, 0.052876, 0.003402, -0.000180, 0.998595 -1450, 0.051830, 0.003269, -0.000170, 0.998651 -1451, 0.050784, 0.003139, -0.000160, 0.998705 -1452, 0.049738, 0.003011, -0.000150, 0.998758 -1453, 0.048691, 0.002886, -0.000141, 0.998810 -1454, 0.047645, 0.002764, -0.000132, 0.998860 -1455, 0.046599, 0.002644, -0.000123, 0.998910 -1456, 0.045552, 0.002527, -0.000115, 0.998959 -1457, 0.044506, 0.002413, -0.000107, 0.999006 -1458, 0.043459, 0.002301, -0.000100, 0.999053 -1459, 0.042413, 0.002192, -0.000093, 0.999098 -1460, 0.041366, 0.002085, -0.000086, 0.999142 -1461, 0.040320, 0.001981, -0.000080, 0.999185 -1462, 0.039273, 0.001880, -0.000074, 0.999227 -1463, 0.038226, 0.001781, -0.000068, 0.999268 -1464, 0.037179, 0.001685, -0.000063, 0.999307 -1465, 0.036132, 0.001592, -0.000058, 0.999346 -1466, 0.035086, 0.001501, -0.000053, 0.999383 -1467, 0.034039, 0.001413, -0.000048, 0.999420 -1468, 0.032992, 0.001328, -0.000044, 0.999455 -1469, 0.031945, 0.001245, -0.000040, 0.999489 -1470, 0.030898, 0.001165, -0.000036, 0.999522 -1471, 0.029851, 0.001087, -0.000032, 0.999554 -1472, 0.028804, 0.001012, -0.000029, 0.999585 -1473, 0.027756, 0.000940, -0.000026, 0.999614 -1474, 0.026709, 0.000871, -0.000023, 0.999643 -1475, 0.025662, 0.000804, -0.000021, 0.999670 -1476, 0.024615, 0.000740, -0.000018, 0.999697 -1477, 0.023568, 0.000678, -0.000016, 0.999722 -1478, 0.022520, 0.000619, -0.000014, 0.999746 -1479, 0.021473, 0.000563, -0.000012, 0.999769 -1480, 0.020426, 0.000509, -0.000010, 0.999791 -1481, 0.019378, 0.000459, -0.000009, 0.999812 -1482, 0.018331, 0.000410, -0.000008, 0.999832 -1483, 0.017284, 0.000365, -0.000006, 0.999851 -1484, 0.016236, 0.000322, -0.000005, 0.999868 -1485, 0.015189, 0.000282, -0.000004, 0.999885 -1486, 0.014141, 0.000244, -0.000003, 0.999900 -1487, 0.013094, 0.000209, -0.000003, 0.999914 -1488, 0.012046, 0.000177, -0.000002, 0.999927 -1489, 0.010999, 0.000148, -0.000002, 0.999939 -1490, 0.009952, 0.000121, -0.000001, 0.999950 -1491, 0.008904, 0.000097, -0.000001, 0.999960 -1492, 0.007857, 0.000075, -0.000001, 0.999969 -1493, 0.006809, 0.000057, -0.000000, 0.999977 -1494, 0.005761, 0.000041, -0.000000, 0.999983 -1495, 0.004714, 0.000027, -0.000000, 0.999989 -1496, 0.003666, 0.000016, -0.000000, 0.999993 -1497, 0.002619, 0.000008, -0.000000, 0.999997 -1498, 0.001571, 0.000003, -0.000000, 0.999999 -1499, 0.000524, 0.000000, -0.000000, 1.000000 -1500, -0.000524, 0.000000, 0.000000, 1.000000 -1501, -0.001571, 0.000003, 0.000000, 0.999999 -1502, -0.002619, 0.000008, 0.000000, 0.999997 -1503, -0.003666, 0.000016, 0.000000, 0.999993 -1504, -0.004714, 0.000027, 0.000000, 0.999989 -1505, -0.005761, 0.000041, 0.000000, 0.999983 -1506, -0.006809, 0.000057, 0.000000, 0.999977 -1507, -0.007857, 0.000075, 0.000001, 0.999969 -1508, -0.008904, 0.000097, 0.000001, 0.999960 -1509, -0.009952, 0.000121, 0.000001, 0.999950 -1510, -0.010999, 0.000148, 0.000002, 0.999939 -1511, -0.012046, 0.000177, 0.000002, 0.999927 -1512, -0.013094, 0.000209, 0.000003, 0.999914 -1513, -0.014141, 0.000244, 0.000003, 0.999900 -1514, -0.015189, 0.000282, 0.000004, 0.999885 -1515, -0.016236, 0.000322, 0.000005, 0.999868 -1516, -0.017284, 0.000365, 0.000006, 0.999851 -1517, -0.018331, 0.000410, 0.000008, 0.999832 -1518, -0.019378, 0.000459, 0.000009, 0.999812 -1519, -0.020426, 0.000509, 0.000010, 0.999791 -1520, -0.021473, 0.000563, 0.000012, 0.999769 -1521, -0.022520, 0.000619, 0.000014, 0.999746 -1522, -0.023568, 0.000678, 0.000016, 0.999722 -1523, -0.024615, 0.000740, 0.000018, 0.999697 -1524, -0.025662, 0.000804, 0.000021, 0.999670 -1525, -0.026709, 0.000871, 0.000023, 0.999643 -1526, -0.027756, 0.000940, 0.000026, 0.999614 -1527, -0.028804, 0.001012, 0.000029, 0.999585 -1528, -0.029851, 0.001087, 0.000032, 0.999554 -1529, -0.030898, 0.001165, 0.000036, 0.999522 -1530, -0.031945, 0.001245, 0.000040, 0.999489 -1531, -0.032992, 0.001328, 0.000044, 0.999455 -1532, -0.034039, 0.001413, 0.000048, 0.999420 -1533, -0.035086, 0.001501, 0.000053, 0.999383 -1534, -0.036132, 0.001592, 0.000058, 0.999346 -1535, -0.037179, 0.001685, 0.000063, 0.999307 -1536, -0.038226, 0.001781, 0.000068, 0.999268 -1537, -0.039273, 0.001880, 0.000074, 0.999227 -1538, -0.040320, 0.001981, 0.000080, 0.999185 -1539, -0.041366, 0.002085, 0.000086, 0.999142 -1540, -0.042413, 0.002192, 0.000093, 0.999098 -1541, -0.043459, 0.002301, 0.000100, 0.999053 -1542, -0.044506, 0.002413, 0.000107, 0.999006 -1543, -0.045552, 0.002527, 0.000115, 0.998959 -1544, -0.046599, 0.002644, 0.000123, 0.998910 -1545, -0.047645, 0.002764, 0.000132, 0.998860 -1546, -0.048691, 0.002886, 0.000141, 0.998810 -1547, -0.049738, 0.003011, 0.000150, 0.998758 -1548, -0.050784, 0.003139, 0.000160, 0.998705 -1549, -0.051830, 0.003269, 0.000170, 0.998651 -1550, -0.052876, 0.003402, 0.000180, 0.998595 -1551, -0.053922, 0.003537, 0.000191, 0.998539 -1552, -0.054968, 0.003675, 0.000202, 0.998481 -1553, -0.056014, 0.003815, 0.000214, 0.998423 -1554, -0.057060, 0.003958, 0.000226, 0.998363 -1555, -0.058106, 0.004104, 0.000239, 0.998302 -1556, -0.059151, 0.004252, 0.000252, 0.998240 -1557, -0.060197, 0.004403, 0.000266, 0.998177 -1558, -0.061242, 0.004557, 0.000280, 0.998112 -1559, -0.062288, 0.004713, 0.000294, 0.998047 -1560, -0.063333, 0.004871, 0.000309, 0.997980 -1561, -0.064379, 0.005032, 0.000325, 0.997913 -1562, -0.065424, 0.005196, 0.000341, 0.997844 -1563, -0.066469, 0.005362, 0.000357, 0.997774 -1564, -0.067514, 0.005531, 0.000374, 0.997703 -1565, -0.068559, 0.005702, 0.000392, 0.997631 -1566, -0.069604, 0.005876, 0.000410, 0.997557 -1567, -0.070649, 0.006053, 0.000429, 0.997483 -1568, -0.071694, 0.006232, 0.000448, 0.997407 -1569, -0.072739, 0.006413, 0.000468, 0.997330 -1570, -0.073783, 0.006597, 0.000488, 0.997252 -1571, -0.074828, 0.006784, 0.000509, 0.997173 -1572, -0.075872, 0.006973, 0.000531, 0.997093 -1573, -0.076917, 0.007164, 0.000553, 0.997012 -1574, -0.077961, 0.007358, 0.000575, 0.996929 -1575, -0.079005, 0.007555, 0.000599, 0.996845 -1576, -0.080049, 0.007754, 0.000623, 0.996761 -1577, -0.081093, 0.007956, 0.000647, 0.996675 -1578, -0.082137, 0.008160, 0.000672, 0.996587 -1579, -0.083181, 0.008366, 0.000698, 0.996499 -1580, -0.084224, 0.008575, 0.000725, 0.996410 -1581, -0.085268, 0.008787, 0.000752, 0.996319 -1582, -0.086312, 0.009001, 0.000780, 0.996227 -1583, -0.087355, 0.009217, 0.000808, 0.996134 -1584, -0.088398, 0.009436, 0.000837, 0.996040 -1585, -0.089441, 0.009657, 0.000867, 0.995945 -1586, -0.090484, 0.009881, 0.000898, 0.995848 -1587, -0.091527, 0.010107, 0.000929, 0.995751 -1588, -0.092570, 0.010336, 0.000961, 0.995652 -1589, -0.093613, 0.010567, 0.000994, 0.995552 -1590, -0.094655, 0.010801, 0.001027, 0.995451 -1591, -0.095698, 0.011036, 0.001061, 0.995349 -1592, -0.096740, 0.011275, 0.001096, 0.995245 -1593, -0.097783, 0.011516, 0.001132, 0.995141 -1594, -0.098825, 0.011759, 0.001168, 0.995035 -1595, -0.099867, 0.012004, 0.001205, 0.994928 -1596, -0.100909, 0.012252, 0.001243, 0.994819 -1597, -0.101950, 0.012503, 0.001281, 0.994710 -1598, -0.102992, 0.012755, 0.001321, 0.994600 -1599, -0.104033, 0.013010, 0.001361, 0.994488 -1600, -0.105075, 0.013268, 0.001402, 0.994375 -1601, -0.106116, 0.013528, 0.001444, 0.994261 -1602, -0.107157, 0.013790, 0.001486, 0.994145 -1603, -0.108198, 0.014054, 0.001530, 0.994029 -1604, -0.109239, 0.014321, 0.001574, 0.993911 -1605, -0.110279, 0.014590, 0.001619, 0.993792 -1606, -0.111320, 0.014862, 0.001665, 0.993672 -1607, -0.112360, 0.015136, 0.001712, 0.993551 -1608, -0.113401, 0.015412, 0.001759, 0.993428 -1609, -0.114441, 0.015690, 0.001808, 0.993305 -1610, -0.115481, 0.015971, 0.001857, 0.993180 -1611, -0.116520, 0.016254, 0.001907, 0.993053 -1612, -0.117560, 0.016540, 0.001958, 0.992926 -1613, -0.118600, 0.016827, 0.002010, 0.992798 -1614, -0.119639, 0.017117, 0.002063, 0.992668 -1615, -0.120678, 0.017409, 0.002117, 0.992537 -1616, -0.121717, 0.017704, 0.002171, 0.992405 -1617, -0.122756, 0.018001, 0.002227, 0.992271 -1618, -0.123795, 0.018299, 0.002283, 0.992136 -1619, -0.124833, 0.018601, 0.002341, 0.992001 -1620, -0.125872, 0.018904, 0.002399, 0.991864 -1621, -0.126910, 0.019210, 0.002458, 0.991725 -1622, -0.127948, 0.019518, 0.002518, 0.991586 -1623, -0.128986, 0.019828, 0.002580, 0.991445 -1624, -0.130023, 0.020140, 0.002642, 0.991303 -1625, -0.131061, 0.020454, 0.002705, 0.991160 -1626, -0.132098, 0.020771, 0.002769, 0.991015 -1627, -0.133135, 0.021090, 0.002834, 0.990869 -1628, -0.134172, 0.021411, 0.002900, 0.990722 -1629, -0.135209, 0.021734, 0.002967, 0.990574 -1630, -0.136246, 0.022059, 0.003035, 0.990425 -1631, -0.137282, 0.022387, 0.003103, 0.990274 -1632, -0.138318, 0.022716, 0.003173, 0.990122 -1633, -0.139354, 0.023048, 0.003244, 0.989969 -1634, -0.140390, 0.023382, 0.003316, 0.989815 -1635, -0.141426, 0.023718, 0.003389, 0.989659 -1636, -0.142461, 0.024056, 0.003463, 0.989502 -1637, -0.143497, 0.024396, 0.003538, 0.989344 -1638, -0.144532, 0.024738, 0.003615, 0.989184 -1639, -0.145566, 0.025082, 0.003692, 0.989024 -1640, -0.146601, 0.025429, 0.003770, 0.988862 -1641, -0.147635, 0.025777, 0.003849, 0.988698 -1642, -0.148670, 0.026128, 0.003929, 0.988534 -1643, -0.149704, 0.026480, 0.004011, 0.988368 -1644, -0.150738, 0.026835, 0.004093, 0.988201 -1645, -0.151771, 0.027192, 0.004177, 0.988033 -1646, -0.152804, 0.027550, 0.004262, 0.987863 -1647, -0.153838, 0.027911, 0.004347, 0.987692 -1648, -0.154871, 0.028274, 0.004434, 0.987520 -1649, -0.155903, 0.028638, 0.004522, 0.987347 -1650, -0.156936, 0.029005, 0.004611, 0.987172 -1651, -0.157968, 0.029374, 0.004701, 0.986996 -1652, -0.159000, 0.029744, 0.004793, 0.986819 -1653, -0.160032, 0.030117, 0.004885, 0.986640 -1654, -0.161063, 0.030491, 0.004978, 0.986460 -1655, -0.162095, 0.030868, 0.005073, 0.986279 -1656, -0.163126, 0.031246, 0.005169, 0.986097 -1657, -0.164157, 0.031626, 0.005266, 0.985913 -1658, -0.165187, 0.032009, 0.005364, 0.985728 -1659, -0.166218, 0.032393, 0.005463, 0.985542 -1660, -0.167248, 0.032779, 0.005564, 0.985354 -1661, -0.168278, 0.033167, 0.005665, 0.985165 -1662, -0.169307, 0.033557, 0.005768, 0.984975 -1663, -0.170337, 0.033948, 0.005872, 0.984783 -1664, -0.171366, 0.034342, 0.005977, 0.984591 -1665, -0.172395, 0.034737, 0.006083, 0.984396 -1666, -0.173423, 0.035134, 0.006191, 0.984201 -1667, -0.174451, 0.035533, 0.006300, 0.984004 -1668, -0.175479, 0.035934, 0.006410, 0.983806 -1669, -0.176507, 0.036337, 0.006521, 0.983607 -1670, -0.177535, 0.036741, 0.006633, 0.983406 -1671, -0.178562, 0.037148, 0.006746, 0.983204 -1672, -0.179589, 0.037556, 0.006861, 0.983001 -1673, -0.180616, 0.037965, 0.006977, 0.982796 -1674, -0.181642, 0.038377, 0.007094, 0.982590 -1675, -0.182668, 0.038790, 0.007213, 0.982383 -1676, -0.183694, 0.039205, 0.007332, 0.982174 -1677, -0.184720, 0.039622, 0.007453, 0.981964 -1678, -0.185745, 0.040041, 0.007576, 0.981753 -1679, -0.186770, 0.040461, 0.007699, 0.981540 -1680, -0.187795, 0.040883, 0.007824, 0.981326 -1681, -0.188819, 0.041306, 0.007950, 0.981111 -1682, -0.189843, 0.041731, 0.008077, 0.980894 -1683, -0.190867, 0.042158, 0.008205, 0.980676 -1684, -0.191890, 0.042587, 0.008335, 0.980456 -1685, -0.192914, 0.043017, 0.008466, 0.980236 -1686, -0.193937, 0.043449, 0.008598, 0.980014 -1687, -0.194959, 0.043883, 0.008732, 0.979790 -1688, -0.195981, 0.044318, 0.008867, 0.979566 -1689, -0.197003, 0.044754, 0.009003, 0.979339 -1690, -0.198025, 0.045193, 0.009140, 0.979112 -1691, -0.199046, 0.045633, 0.009279, 0.978883 -1692, -0.200067, 0.046074, 0.009419, 0.978653 -1693, -0.201088, 0.046517, 0.009560, 0.978421 -1694, -0.202108, 0.046962, 0.009703, 0.978188 -1695, -0.203128, 0.047408, 0.009847, 0.977954 -1696, -0.204148, 0.047856, 0.009992, 0.977719 -1697, -0.205167, 0.048305, 0.010139, 0.977482 -1698, -0.206186, 0.048755, 0.010287, 0.977243 -1699, -0.207205, 0.049208, 0.010436, 0.977003 -1700, -0.208223, 0.049661, 0.010587, 0.976762 -1701, -0.209241, 0.050116, 0.010739, 0.976520 -1702, -0.210259, 0.050573, 0.010892, 0.976276 -1703, -0.211276, 0.051031, 0.011046, 0.976031 -1704, -0.212293, 0.051490, 0.011202, 0.975784 -1705, -0.213310, 0.051951, 0.011360, 0.975536 -1706, -0.214326, 0.052414, 0.011518, 0.975287 -1707, -0.215342, 0.052877, 0.011678, 0.975036 -1708, -0.216357, 0.053343, 0.011840, 0.974784 -1709, -0.217373, 0.053809, 0.012002, 0.974531 -1710, -0.218387, 0.054277, 0.012166, 0.974276 -1711, -0.219402, 0.054746, 0.012332, 0.974019 -1712, -0.220416, 0.055217, 0.012499, 0.973762 -1713, -0.221429, 0.055689, 0.012667, 0.973503 -1714, -0.222443, 0.056162, 0.012836, 0.973242 -1715, -0.223456, 0.056637, 0.013007, 0.972980 -1716, -0.224468, 0.057113, 0.013180, 0.972717 -1717, -0.225480, 0.057590, 0.013353, 0.972452 -1718, -0.226492, 0.058068, 0.013528, 0.972186 -1719, -0.227503, 0.058548, 0.013705, 0.971919 -1720, -0.228514, 0.059029, 0.013883, 0.971650 -1721, -0.229525, 0.059511, 0.014062, 0.971380 -1722, -0.230535, 0.059995, 0.014242, 0.971108 -1723, -0.231545, 0.060479, 0.014424, 0.970835 -1724, -0.232554, 0.060965, 0.014608, 0.970561 -1725, -0.233563, 0.061452, 0.014793, 0.970285 -1726, -0.234572, 0.061941, 0.014979, 0.970008 -1727, -0.235580, 0.062430, 0.015166, 0.969729 -1728, -0.236587, 0.062921, 0.015355, 0.969449 -1729, -0.237595, 0.063413, 0.015546, 0.969168 -1730, -0.238602, 0.063905, 0.015738, 0.968885 -1731, -0.239608, 0.064399, 0.015931, 0.968600 -1732, -0.240614, 0.064895, 0.016125, 0.968315 -1733, -0.241620, 0.065391, 0.016322, 0.968028 -1734, -0.242625, 0.065888, 0.016519, 0.967739 -1735, -0.243630, 0.066387, 0.016718, 0.967449 -1736, -0.244634, 0.066886, 0.016918, 0.967158 -1737, -0.245638, 0.067387, 0.017120, 0.966865 -1738, -0.246641, 0.067888, 0.017323, 0.966571 -1739, -0.247644, 0.068391, 0.017528, 0.966275 -1740, -0.248647, 0.068895, 0.017734, 0.965978 -1741, -0.249649, 0.069399, 0.017941, 0.965680 -1742, -0.250650, 0.069905, 0.018150, 0.965380 -1743, -0.251652, 0.070411, 0.018360, 0.965079 -1744, -0.252652, 0.070919, 0.018572, 0.964776 -1745, -0.253653, 0.071428, 0.018785, 0.964472 -1746, -0.254652, 0.071937, 0.019000, 0.964166 -1747, -0.255652, 0.072447, 0.019216, 0.963859 -1748, -0.256651, 0.072959, 0.019433, 0.963551 -1749, -0.257649, 0.073471, 0.019652, 0.963241 -1750, -0.258647, 0.073984, 0.019872, 0.962929 -1751, -0.259644, 0.074498, 0.020094, 0.962617 -1752, -0.260641, 0.075013, 0.020317, 0.962303 -1753, -0.261638, 0.075529, 0.020542, 0.961987 -1754, -0.262634, 0.076045, 0.020768, 0.961670 -1755, -0.263629, 0.076563, 0.020996, 0.961352 -1756, -0.264624, 0.077081, 0.021225, 0.961032 -1757, -0.265619, 0.077600, 0.021455, 0.960710 -1758, -0.266613, 0.078120, 0.021687, 0.960388 -1759, -0.267607, 0.078640, 0.021920, 0.960064 -1760, -0.268600, 0.079162, 0.022155, 0.959738 -1761, -0.269592, 0.079684, 0.022391, 0.959411 -1762, -0.270584, 0.080207, 0.022629, 0.959082 -1763, -0.271576, 0.080730, 0.022868, 0.958753 -1764, -0.272567, 0.081255, 0.023108, 0.958421 -1765, -0.273557, 0.081780, 0.023350, 0.958088 -1766, -0.274547, 0.082305, 0.023593, 0.957754 -1767, -0.275537, 0.082832, 0.023838, 0.957419 -1768, -0.276526, 0.083359, 0.024085, 0.957081 -1769, -0.277514, 0.083886, 0.024332, 0.956743 -1770, -0.278502, 0.084415, 0.024581, 0.956403 -1771, -0.279489, 0.084944, 0.024832, 0.956062 -1772, -0.280476, 0.085473, 0.025084, 0.955719 -1773, -0.281462, 0.086004, 0.025337, 0.955374 -1774, -0.282448, 0.086534, 0.025592, 0.955029 -1775, -0.283433, 0.087066, 0.025849, 0.954682 -1776, -0.284418, 0.087598, 0.026107, 0.954333 -1777, -0.285402, 0.088130, 0.026366, 0.953983 -1778, -0.286386, 0.088663, 0.026626, 0.953632 -1779, -0.287369, 0.089197, 0.026889, 0.953279 -1780, -0.288351, 0.089731, 0.027152, 0.952924 -1781, -0.289333, 0.090265, 0.027417, 0.952569 -1782, -0.290314, 0.090800, 0.027684, 0.952211 -1783, -0.291295, 0.091336, 0.027951, 0.951853 -1784, -0.292276, 0.091872, 0.028221, 0.951493 -1785, -0.293255, 0.092408, 0.028491, 0.951131 -1786, -0.294234, 0.092945, 0.028764, 0.950768 -1787, -0.295213, 0.093482, 0.029037, 0.950404 -1788, -0.296191, 0.094020, 0.029312, 0.950038 -1789, -0.297168, 0.094558, 0.029589, 0.949671 -1790, -0.298145, 0.095096, 0.029867, 0.949302 -1791, -0.299121, 0.095635, 0.030146, 0.948932 -1792, -0.300097, 0.096174, 0.030427, 0.948560 -1793, -0.301072, 0.096714, 0.030709, 0.948187 -1794, -0.302046, 0.097253, 0.030992, 0.947813 -1795, -0.303020, 0.097793, 0.031277, 0.947437 -1796, -0.303993, 0.098334, 0.031564, 0.947060 -1797, -0.304966, 0.098875, 0.031852, 0.946681 -1798, -0.305938, 0.099416, 0.032141, 0.946301 -1799, -0.306910, 0.099957, 0.032432, 0.945919 -1800, -0.307881, 0.100498, 0.032724, 0.945536 -1801, -0.308851, 0.101040, 0.033017, 0.945152 -1802, -0.309820, 0.101582, 0.033312, 0.944766 -1803, -0.310789, 0.102124, 0.033609, 0.944379 -1804, -0.311758, 0.102667, 0.033906, 0.943990 -1805, -0.312726, 0.103209, 0.034205, 0.943600 -1806, -0.313693, 0.103752, 0.034506, 0.943208 -1807, -0.314659, 0.104295, 0.034808, 0.942815 -1808, -0.315625, 0.104838, 0.035111, 0.942421 -1809, -0.316591, 0.105381, 0.035416, 0.942025 -1810, -0.317555, 0.105924, 0.035722, 0.941628 -1811, -0.318519, 0.106468, 0.036030, 0.941229 -1812, -0.319483, 0.107011, 0.036338, 0.940829 -1813, -0.320446, 0.107555, 0.036649, 0.940427 -1814, -0.321408, 0.108099, 0.036960, 0.940024 -1815, -0.322369, 0.108642, 0.037273, 0.939620 -1816, -0.323330, 0.109186, 0.037588, 0.939214 -1817, -0.324290, 0.109730, 0.037904, 0.938807 -1818, -0.325250, 0.110273, 0.038221, 0.938398 -1819, -0.326209, 0.110817, 0.038539, 0.937988 -1820, -0.327167, 0.111361, 0.038859, 0.937577 -1821, -0.328125, 0.111905, 0.039181, 0.937164 -1822, -0.329082, 0.112448, 0.039503, 0.936750 -1823, -0.330038, 0.112992, 0.039827, 0.936334 -1824, -0.330994, 0.113536, 0.040153, 0.935917 -1825, -0.331948, 0.114079, 0.040479, 0.935499 -1826, -0.332903, 0.114623, 0.040807, 0.935079 -1827, -0.333856, 0.115166, 0.041137, 0.934657 -1828, -0.334809, 0.115709, 0.041468, 0.934235 -1829, -0.335762, 0.116252, 0.041800, 0.933811 -1830, -0.336713, 0.116795, 0.042133, 0.933385 -1831, -0.337664, 0.117338, 0.042468, 0.932958 -1832, -0.338614, 0.117880, 0.042804, 0.932530 -1833, -0.339564, 0.118423, 0.043141, 0.932100 -1834, -0.340513, 0.118965, 0.043480, 0.931669 -1835, -0.341461, 0.119507, 0.043820, 0.931237 -1836, -0.342409, 0.120049, 0.044162, 0.930803 -1837, -0.343355, 0.120591, 0.044504, 0.930368 -1838, -0.344302, 0.121132, 0.044848, 0.929931 -1839, -0.345247, 0.121673, 0.045194, 0.929493 -1840, -0.346192, 0.122214, 0.045540, 0.929054 -1841, -0.347136, 0.122754, 0.045888, 0.928613 -1842, -0.348079, 0.123294, 0.046237, 0.928171 -1843, -0.349022, 0.123834, 0.046588, 0.927728 -1844, -0.349964, 0.124374, 0.046940, 0.927283 -1845, -0.350905, 0.124913, 0.047293, 0.926836 -1846, -0.351845, 0.125452, 0.047647, 0.926389 -1847, -0.352785, 0.125991, 0.048003, 0.925940 -1848, -0.353724, 0.126529, 0.048360, 0.925490 -1849, -0.354663, 0.127066, 0.048718, 0.925038 -1850, -0.355600, 0.127604, 0.049077, 0.924585 -1851, -0.356537, 0.128141, 0.049438, 0.924130 -1852, -0.357473, 0.128677, 0.049800, 0.923675 -1853, -0.358409, 0.129213, 0.050163, 0.923218 -1854, -0.359344, 0.129749, 0.050527, 0.922759 -1855, -0.360278, 0.130284, 0.050893, 0.922299 -1856, -0.361211, 0.130819, 0.051260, 0.921838 -1857, -0.362144, 0.131353, 0.051628, 0.921376 -1858, -0.363076, 0.131887, 0.051997, 0.920912 -1859, -0.364007, 0.132420, 0.052368, 0.920446 -1860, -0.364937, 0.132953, 0.052740, 0.919980 -1861, -0.365867, 0.133485, 0.053113, 0.919512 -1862, -0.366796, 0.134016, 0.053487, 0.919043 -1863, -0.367724, 0.134547, 0.053862, 0.918572 -1864, -0.368651, 0.135078, 0.054239, 0.918100 -1865, -0.369578, 0.135608, 0.054616, 0.917627 -1866, -0.370504, 0.136137, 0.054995, 0.917153 -1867, -0.371429, 0.136665, 0.055376, 0.916677 -1868, -0.372354, 0.137193, 0.055757, 0.916200 -1869, -0.373277, 0.137721, 0.056139, 0.915721 -1870, -0.374200, 0.138247, 0.056523, 0.915241 -1871, -0.375123, 0.138773, 0.056908, 0.914760 -1872, -0.376044, 0.139299, 0.057294, 0.914278 -1873, -0.376965, 0.139823, 0.057681, 0.913794 -1874, -0.377885, 0.140347, 0.058069, 0.913309 -1875, -0.378804, 0.140871, 0.058459, 0.912823 -1876, -0.379722, 0.141393, 0.058849, 0.912335 -1877, -0.380640, 0.141915, 0.059241, 0.911846 -1878, -0.381557, 0.142436, 0.059634, 0.911356 -1879, -0.382473, 0.142956, 0.060027, 0.910865 -1880, -0.383389, 0.143476, 0.060422, 0.910372 -1881, -0.384303, 0.143994, 0.060819, 0.909878 -1882, -0.385217, 0.144512, 0.061216, 0.909383 -1883, -0.386130, 0.145029, 0.061614, 0.908886 -1884, -0.387042, 0.145546, 0.062014, 0.908388 -1885, -0.387954, 0.146061, 0.062414, 0.907889 -1886, -0.388865, 0.146576, 0.062816, 0.907389 -1887, -0.389775, 0.147089, 0.063218, 0.906887 -1888, -0.390684, 0.147602, 0.063622, 0.906384 -1889, -0.391592, 0.148114, 0.064027, 0.905880 -1890, -0.392500, 0.148625, 0.064432, 0.905374 -1891, -0.393407, 0.149135, 0.064839, 0.904868 -1892, -0.394313, 0.149645, 0.065247, 0.904360 -1893, -0.395218, 0.150153, 0.065656, 0.903851 -1894, -0.396123, 0.150660, 0.066066, 0.903340 -1895, -0.397027, 0.151167, 0.066477, 0.902828 -1896, -0.397930, 0.151672, 0.066889, 0.902316 -1897, -0.398832, 0.152177, 0.067302, 0.901801 -1898, -0.399733, 0.152680, 0.067716, 0.901286 -1899, -0.400634, 0.153183, 0.068131, 0.900770 -1900, -0.401534, 0.153684, 0.068547, 0.900252 -1901, -0.402433, 0.154185, 0.068964, 0.899733 -1902, -0.403331, 0.154684, 0.069382, 0.899212 -1903, -0.404229, 0.155182, 0.069801, 0.898691 -1904, -0.405125, 0.155680, 0.070220, 0.898168 -1905, -0.406021, 0.156176, 0.070641, 0.897645 -1906, -0.406916, 0.156671, 0.071063, 0.897120 -1907, -0.407811, 0.157165, 0.071486, 0.896593 -1908, -0.408704, 0.157658, 0.071909, 0.896066 -1909, -0.409597, 0.158150, 0.072334, 0.895537 -1910, -0.410489, 0.158641, 0.072759, 0.895007 -1911, -0.411380, 0.159130, 0.073186, 0.894476 -1912, -0.412270, 0.159619, 0.073613, 0.893944 -1913, -0.413160, 0.160106, 0.074041, 0.893411 -1914, -0.414048, 0.160592, 0.074470, 0.892876 -1915, -0.414936, 0.161077, 0.074900, 0.892341 -1916, -0.415823, 0.161561, 0.075331, 0.891804 -1917, -0.416710, 0.162043, 0.075763, 0.891266 -1918, -0.417595, 0.162524, 0.076195, 0.890727 -1919, -0.418480, 0.163004, 0.076629, 0.890187 -1920, -0.419364, 0.163483, 0.077063, 0.889645 -1921, -0.420247, 0.163961, 0.077498, 0.889103 -1922, -0.421129, 0.164437, 0.077934, 0.888559 -1923, -0.422011, 0.164912, 0.078371, 0.888014 -1924, -0.422892, 0.165386, 0.078809, 0.887468 -1925, -0.423772, 0.165858, 0.079247, 0.886921 -1926, -0.424651, 0.166329, 0.079686, 0.886373 -1927, -0.425529, 0.166799, 0.080127, 0.885823 -1928, -0.426407, 0.167268, 0.080567, 0.885273 -1929, -0.427283, 0.167735, 0.081009, 0.884721 -1930, -0.428159, 0.168201, 0.081451, 0.884169 -1931, -0.429034, 0.168665, 0.081895, 0.883615 -1932, -0.429908, 0.169128, 0.082338, 0.883060 -1933, -0.430782, 0.169590, 0.082783, 0.882504 -1934, -0.431655, 0.170051, 0.083228, 0.881947 -1935, -0.432527, 0.170509, 0.083675, 0.881389 -1936, -0.433398, 0.170967, 0.084122, 0.880829 -1937, -0.434268, 0.171423, 0.084569, 0.880269 -1938, -0.435137, 0.171878, 0.085017, 0.879708 -1939, -0.436006, 0.172331, 0.085466, 0.879145 -1940, -0.436874, 0.172783, 0.085916, 0.878582 -1941, -0.437741, 0.173233, 0.086367, 0.878017 -1942, -0.438607, 0.173682, 0.086818, 0.877451 -1943, -0.439473, 0.174130, 0.087269, 0.876885 -1944, -0.440337, 0.174576, 0.087722, 0.876317 -1945, -0.441201, 0.175020, 0.088175, 0.875748 -1946, -0.442064, 0.175463, 0.088629, 0.875178 -1947, -0.442926, 0.175904, 0.089083, 0.874608 -1948, -0.443788, 0.176344, 0.089538, 0.874036 -1949, -0.444648, 0.176782, 0.089994, 0.873463 -1950, -0.445508, 0.177219, 0.090450, 0.872889 -1951, -0.446367, 0.177655, 0.090907, 0.872314 -1952, -0.447225, 0.178088, 0.091364, 0.871738 -1953, -0.448083, 0.178520, 0.091822, 0.871161 -1954, -0.448939, 0.178951, 0.092281, 0.870583 -1955, -0.449795, 0.179380, 0.092740, 0.870004 -1956, -0.450650, 0.179807, 0.093200, 0.869424 -1957, -0.451504, 0.180233, 0.093660, 0.868843 -1958, -0.452357, 0.180657, 0.094121, 0.868261 -1959, -0.453210, 0.181079, 0.094582, 0.867678 -1960, -0.454062, 0.181500, 0.095044, 0.867094 -1961, -0.454913, 0.181919, 0.095507, 0.866509 -1962, -0.455763, 0.182337, 0.095970, 0.865923 -1963, -0.456612, 0.182752, 0.096433, 0.865337 -1964, -0.457461, 0.183167, 0.096897, 0.864749 -1965, -0.458309, 0.183579, 0.097361, 0.864160 -1966, -0.459156, 0.183990, 0.097826, 0.863570 -1967, -0.460002, 0.184399, 0.098292, 0.862980 -1968, -0.460847, 0.184806, 0.098758, 0.862388 -1969, -0.461692, 0.185212, 0.099224, 0.861796 -1970, -0.462536, 0.185616, 0.099691, 0.861202 -1971, -0.463379, 0.186018, 0.100158, 0.860608 -1972, -0.464221, 0.186418, 0.100625, 0.860013 -1973, -0.465062, 0.186817, 0.101094, 0.859416 -1974, -0.465903, 0.187214, 0.101562, 0.858819 -1975, -0.466743, 0.187609, 0.102031, 0.858221 -1976, -0.467582, 0.188002, 0.102500, 0.857622 -1977, -0.468420, 0.188394, 0.102970, 0.857023 -1978, -0.469258, 0.188783, 0.103440, 0.856422 -1979, -0.470094, 0.189171, 0.103910, 0.855820 -1980, -0.470930, 0.189557, 0.104381, 0.855218 -1981, -0.471765, 0.189942, 0.104852, 0.854614 -1982, -0.472600, 0.190324, 0.105323, 0.854010 -1983, -0.473433, 0.190705, 0.105795, 0.853405 -1984, -0.474266, 0.191083, 0.106267, 0.852799 -1985, -0.475098, 0.191460, 0.106739, 0.852192 -1986, -0.475929, 0.191835, 0.107212, 0.851584 -1987, -0.476760, 0.192208, 0.107685, 0.850976 -1988, -0.477589, 0.192580, 0.108158, 0.850367 -1989, -0.478418, 0.192949, 0.108632, 0.849756 -1990, -0.479246, 0.193317, 0.109105, 0.849145 -1991, -0.480074, 0.193682, 0.109579, 0.848533 -1992, -0.480900, 0.194046, 0.110054, 0.847921 -1993, -0.481726, 0.194408, 0.110528, 0.847307 -1994, -0.482551, 0.194767, 0.111003, 0.846693 -1995, -0.483375, 0.195125, 0.111478, 0.846077 -1996, -0.484199, 0.195481, 0.111953, 0.845461 -1997, -0.485022, 0.195835, 0.112428, 0.844845 -1998, -0.485844, 0.196187, 0.112904, 0.844227 -1999, -0.486665, 0.196538, 0.113380, 0.843609 -2000, -0.487485, 0.196886, 0.113855, 0.842989 -2001, -0.488305, 0.197232, 0.114331, 0.842369 -2002, -0.489124, 0.197576, 0.114808, 0.841749 -2003, -0.489942, 0.197918, 0.115284, 0.841127 -2004, -0.490760, 0.198258, 0.115760, 0.840505 -2005, -0.491576, 0.198597, 0.116237, 0.839882 -2006, -0.492392, 0.198933, 0.116714, 0.839258 -2007, -0.493207, 0.199267, 0.117191, 0.838633 -2008, -0.494022, 0.199599, 0.117667, 0.838008 -2009, -0.494836, 0.199929, 0.118144, 0.837382 -2010, -0.495648, 0.200257, 0.118621, 0.836755 -2011, -0.496461, 0.200583, 0.119099, 0.836127 -2012, -0.497272, 0.200907, 0.119576, 0.835499 -2013, -0.498083, 0.201229, 0.120053, 0.834870 -2014, -0.498893, 0.201549, 0.120530, 0.834240 -2015, -0.499702, 0.201867, 0.121008, 0.833610 -2016, -0.500511, 0.202182, 0.121485, 0.832978 -2017, -0.501318, 0.202496, 0.121962, 0.832346 -2018, -0.502125, 0.202807, 0.122440, 0.831714 -2019, -0.502932, 0.203117, 0.122917, 0.831081 -2020, -0.503737, 0.203424, 0.123394, 0.830447 -2021, -0.504542, 0.203729, 0.123871, 0.829812 -2022, -0.505346, 0.204032, 0.124349, 0.829176 -2023, -0.506150, 0.204333, 0.124826, 0.828540 -2024, -0.506952, 0.204632, 0.125303, 0.827904 -2025, -0.507754, 0.204929, 0.125780, 0.827266 -2026, -0.508556, 0.205223, 0.126257, 0.826628 -2027, -0.509356, 0.205516, 0.126734, 0.825989 -2028, -0.510156, 0.205806, 0.127210, 0.825350 -2029, -0.510955, 0.206094, 0.127687, 0.824710 -2030, -0.511753, 0.206380, 0.128164, 0.824069 -2031, -0.512551, 0.206664, 0.128640, 0.823428 -2032, -0.513348, 0.206945, 0.129116, 0.822786 -2033, -0.514145, 0.207225, 0.129592, 0.822143 -2034, -0.514940, 0.207502, 0.130068, 0.821500 -2035, -0.515735, 0.207777, 0.130544, 0.820856 -2036, -0.516529, 0.208050, 0.131020, 0.820211 -2037, -0.517323, 0.208321, 0.131495, 0.819566 -2038, -0.518116, 0.208589, 0.131971, 0.818920 -2039, -0.518908, 0.208856, 0.132446, 0.818274 -2040, -0.519699, 0.209120, 0.132920, 0.817627 -2041, -0.520490, 0.209381, 0.133395, 0.816979 -2042, -0.521280, 0.209641, 0.133869, 0.816331 -2043, -0.522070, 0.209898, 0.134343, 0.815682 -2044, -0.522858, 0.210154, 0.134817, 0.815033 -2045, -0.523646, 0.210406, 0.135291, 0.814383 -2046, -0.524434, 0.210657, 0.135764, 0.813733 -2047, -0.525220, 0.210906, 0.136237, 0.813082 -2048, -0.526007, 0.211152, 0.136710, 0.812430 -2049, -0.526792, 0.211396, 0.137182, 0.811778 -2050, -0.527577, 0.211637, 0.137654, 0.811125 -2051, -0.528361, 0.211877, 0.138126, 0.810472 -2052, -0.529144, 0.212114, 0.138598, 0.809818 -2053, -0.529927, 0.212349, 0.139069, 0.809163 -2054, -0.530709, 0.212581, 0.139539, 0.808508 -2055, -0.531490, 0.212812, 0.140010, 0.807853 -2056, -0.532271, 0.213040, 0.140480, 0.807197 -2057, -0.533051, 0.213265, 0.140949, 0.806540 -2058, -0.533831, 0.213489, 0.141419, 0.805883 -2059, -0.534610, 0.213710, 0.141887, 0.805226 -2060, -0.535388, 0.213929, 0.142356, 0.804568 -2061, -0.536166, 0.214145, 0.142824, 0.803909 -2062, -0.536943, 0.214360, 0.143291, 0.803250 -2063, -0.537719, 0.214571, 0.143758, 0.802590 -2064, -0.538495, 0.214781, 0.144225, 0.801930 -2065, -0.539270, 0.214988, 0.144691, 0.801269 -2066, -0.540044, 0.215193, 0.145157, 0.800608 -2067, -0.540818, 0.215396, 0.145622, 0.799947 -2068, -0.541591, 0.215596, 0.146087, 0.799285 -2069, -0.542364, 0.215794, 0.146551, 0.798622 -2070, -0.543136, 0.215990, 0.147015, 0.797959 -2071, -0.543907, 0.216183, 0.147478, 0.797295 -2072, -0.544678, 0.216374, 0.147941, 0.796631 -2073, -0.545448, 0.216563, 0.148403, 0.795967 -2074, -0.546218, 0.216749, 0.148864, 0.795302 -2075, -0.546987, 0.216933, 0.149325, 0.794637 -2076, -0.547755, 0.217114, 0.149786, 0.793971 -2077, -0.548523, 0.217294, 0.150246, 0.793305 -2078, -0.549290, 0.217470, 0.150705, 0.792638 -2079, -0.550057, 0.217645, 0.151163, 0.791971 -2080, -0.550823, 0.217817, 0.151621, 0.791303 -2081, -0.551588, 0.217987, 0.152079, 0.790635 -2082, -0.552353, 0.218154, 0.152536, 0.789967 -2083, -0.553117, 0.218319, 0.152992, 0.789298 -2084, -0.553881, 0.218482, 0.153447, 0.788629 -2085, -0.554644, 0.218642, 0.153902, 0.787959 -2086, -0.555407, 0.218800, 0.154356, 0.787289 -2087, -0.556169, 0.218955, 0.154810, 0.786618 -2088, -0.556930, 0.219108, 0.155262, 0.785948 -2089, -0.557691, 0.219259, 0.155714, 0.785276 -2090, -0.558452, 0.219407, 0.156166, 0.784605 -2091, -0.559211, 0.219553, 0.156616, 0.783932 -2092, -0.559971, 0.219697, 0.157066, 0.783260 -2093, -0.560729, 0.219838, 0.157516, 0.782587 -2094, -0.561488, 0.219977, 0.157964, 0.781914 -2095, -0.562245, 0.220113, 0.158412, 0.781240 -2096, -0.563002, 0.220247, 0.158858, 0.780566 -2097, -0.563759, 0.220379, 0.159305, 0.779892 -2098, -0.564515, 0.220508, 0.159750, 0.779217 -2099, -0.565270, 0.220634, 0.160194, 0.778542 -2100, -0.566025, 0.220759, 0.160638, 0.777867 -2101, -0.566780, 0.220881, 0.161081, 0.777191 -2102, -0.567533, 0.221000, 0.161523, 0.776515 -2103, -0.568287, 0.221117, 0.161964, 0.775838 -2104, -0.569040, 0.221232, 0.162405, 0.775161 -2105, -0.569792, 0.221344, 0.162844, 0.774484 -2106, -0.570544, 0.221454, 0.163283, 0.773807 -2107, -0.571295, 0.221561, 0.163721, 0.773129 -2108, -0.572046, 0.221667, 0.164157, 0.772450 -2109, -0.572796, 0.221769, 0.164593, 0.771772 -2110, -0.573546, 0.221869, 0.165028, 0.771093 -2111, -0.574295, 0.221967, 0.165463, 0.770414 -2112, -0.575044, 0.222062, 0.165896, 0.769734 -2113, -0.575793, 0.222155, 0.166328, 0.769054 -2114, -0.576541, 0.222246, 0.166760, 0.768374 -2115, -0.577288, 0.222334, 0.167190, 0.767694 -2116, -0.578035, 0.222420, 0.167619, 0.767013 -2117, -0.578781, 0.222503, 0.168048, 0.766332 -2118, -0.579527, 0.222584, 0.168475, 0.765651 -2119, -0.580273, 0.222662, 0.168902, 0.764969 -2120, -0.581018, 0.222738, 0.169327, 0.764287 -2121, -0.581762, 0.222811, 0.169752, 0.763605 -2122, -0.582506, 0.222883, 0.170175, 0.762922 -2123, -0.583250, 0.222951, 0.170598, 0.762239 -2124, -0.583993, 0.223017, 0.171019, 0.761556 -2125, -0.584736, 0.223081, 0.171439, 0.760873 -2126, -0.585478, 0.223143, 0.171859, 0.760189 -2127, -0.586220, 0.223202, 0.172277, 0.759505 -2128, -0.586961, 0.223258, 0.172694, 0.758821 -2129, -0.587702, 0.223312, 0.173110, 0.758136 -2130, -0.588443, 0.223364, 0.173525, 0.757452 -2131, -0.589183, 0.223413, 0.173939, 0.756767 -2132, -0.589922, 0.223460, 0.174352, 0.756081 -2133, -0.590661, 0.223504, 0.174763, 0.755396 -2134, -0.591400, 0.223546, 0.175174, 0.754710 -2135, -0.592138, 0.223586, 0.175583, 0.754024 -2136, -0.592876, 0.223623, 0.175991, 0.753338 -2137, -0.593614, 0.223658, 0.176398, 0.752651 -2138, -0.594351, 0.223690, 0.176804, 0.751964 -2139, -0.595088, 0.223720, 0.177209, 0.751277 -2140, -0.595824, 0.223747, 0.177612, 0.750590 -2141, -0.596560, 0.223772, 0.178015, 0.749902 -2142, -0.597295, 0.223795, 0.178416, 0.749214 -2143, -0.598030, 0.223815, 0.178816, 0.748526 -2144, -0.598765, 0.223833, 0.179214, 0.747838 -2145, -0.599499, 0.223848, 0.179612, 0.747150 -2146, -0.600233, 0.223861, 0.180008, 0.746461 -2147, -0.600966, 0.223872, 0.180403, 0.745772 -2148, -0.601699, 0.223880, 0.180796, 0.745083 -2149, -0.602432, 0.223885, 0.181189, 0.744393 -2150, -0.603164, 0.223889, 0.181580, 0.743704 -2151, -0.603896, 0.223889, 0.181970, 0.743014 -2152, -0.604628, 0.223888, 0.182358, 0.742324 -2153, -0.605359, 0.223884, 0.182745, 0.741634 -2154, -0.606090, 0.223877, 0.183131, 0.740943 -2155, -0.606820, 0.223869, 0.183516, 0.740252 -2156, -0.607551, 0.223857, 0.183899, 0.739562 -2157, -0.608280, 0.223844, 0.184281, 0.738870 -2158, -0.609010, 0.223828, 0.184662, 0.738179 -2159, -0.609739, 0.223809, 0.185041, 0.737488 -2160, -0.610467, 0.223789, 0.185419, 0.736796 -2161, -0.611196, 0.223765, 0.185795, 0.736104 -2162, -0.611924, 0.223740, 0.186170, 0.735412 -2163, -0.612651, 0.223712, 0.186544, 0.734720 -2164, -0.613378, 0.223682, 0.186916, 0.734027 -2165, -0.614105, 0.223649, 0.187287, 0.733334 -2166, -0.614832, 0.223614, 0.187656, 0.732642 -2167, -0.615558, 0.223576, 0.188024, 0.731949 -2168, -0.616284, 0.223536, 0.188391, 0.731255 -2169, -0.617010, 0.223494, 0.188756, 0.730562 -2170, -0.617735, 0.223449, 0.189120, 0.729868 -2171, -0.618460, 0.223402, 0.189482, 0.729174 -2172, -0.619185, 0.223353, 0.189843, 0.728480 -2173, -0.619909, 0.223301, 0.190202, 0.727786 -2174, -0.620633, 0.223247, 0.190560, 0.727092 -2175, -0.621357, 0.223190, 0.190916, 0.726397 -2176, -0.622080, 0.223131, 0.191271, 0.725703 -2177, -0.622803, 0.223070, 0.191624, 0.725008 -2178, -0.623526, 0.223007, 0.191976, 0.724313 -2179, -0.624248, 0.222941, 0.192326, 0.723617 -2180, -0.624971, 0.222872, 0.192675, 0.722922 -2181, -0.625692, 0.222802, 0.193022, 0.722226 -2182, -0.626414, 0.222729, 0.193367, 0.721531 -2183, -0.627135, 0.222653, 0.193711, 0.720835 -2184, -0.627856, 0.222576, 0.194054, 0.720139 -2185, -0.628577, 0.222496, 0.194395, 0.719442 -2186, -0.629297, 0.222413, 0.194734, 0.718746 -2187, -0.630017, 0.222329, 0.195071, 0.718049 -2188, -0.630737, 0.222242, 0.195408, 0.717353 -2189, -0.631457, 0.222152, 0.195742, 0.716656 -2190, -0.632176, 0.222061, 0.196075, 0.715959 -2191, -0.632895, 0.221967, 0.196406, 0.715262 -2192, -0.633614, 0.221870, 0.196736, 0.714564 -2193, -0.634333, 0.221772, 0.197064, 0.713867 -2194, -0.635051, 0.221671, 0.197390, 0.713169 -2195, -0.635769, 0.221568, 0.197714, 0.712471 -2196, -0.636486, 0.221462, 0.198037, 0.711773 -2197, -0.637204, 0.221354, 0.198359, 0.711075 -2198, -0.637921, 0.221244, 0.198678, 0.710376 -2199, -0.638638, 0.221132, 0.198996, 0.709678 -2200, -0.639355, 0.221017, 0.199312, 0.708979 -2201, -0.640071, 0.220900, 0.199627, 0.708280 -2202, -0.640787, 0.220781, 0.199940, 0.707581 -2203, -0.641503, 0.220659, 0.200251, 0.706882 -2204, -0.642219, 0.220536, 0.200560, 0.706183 -2205, -0.642934, 0.220410, 0.200868, 0.705484 -2206, -0.643650, 0.220281, 0.201174, 0.704784 -2207, -0.644365, 0.220151, 0.201478, 0.704084 -2208, -0.645079, 0.220018, 0.201780, 0.703384 -2209, -0.645794, 0.219883, 0.202081, 0.702684 -2210, -0.646508, 0.219745, 0.202379, 0.701984 -2211, -0.647222, 0.219606, 0.202676, 0.701284 -2212, -0.647936, 0.219464, 0.202972, 0.700583 -2213, -0.648650, 0.219320, 0.203265, 0.699883 -2214, -0.649363, 0.219174, 0.203557, 0.699182 -2215, -0.650076, 0.219025, 0.203847, 0.698481 -2216, -0.650789, 0.218874, 0.204135, 0.697780 -2217, -0.651502, 0.218722, 0.204421, 0.697079 -2218, -0.652214, 0.218566, 0.204705, 0.696377 -2219, -0.652926, 0.218409, 0.204988, 0.695676 -2220, -0.653638, 0.218249, 0.205268, 0.694974 -2221, -0.654350, 0.218088, 0.205547, 0.694272 -2222, -0.655062, 0.217924, 0.205824, 0.693570 -2223, -0.655773, 0.217758, 0.206099, 0.692868 -2224, -0.656485, 0.217589, 0.206373, 0.692166 -2225, -0.657196, 0.217419, 0.206644, 0.691463 -2226, -0.657907, 0.217246, 0.206913, 0.690760 -2227, -0.658617, 0.217071, 0.207181, 0.690058 -2228, -0.659328, 0.216894, 0.207447, 0.689355 -2229, -0.660038, 0.216715, 0.207710, 0.688652 -2230, -0.660748, 0.216534, 0.207972, 0.687948 -2231, -0.661458, 0.216350, 0.208232, 0.687245 -2232, -0.662167, 0.216165, 0.208490, 0.686541 -2233, -0.662877, 0.215977, 0.208746, 0.685838 -2234, -0.663586, 0.215787, 0.209001, 0.685134 -2235, -0.664295, 0.215595, 0.209253, 0.684430 -2236, -0.665004, 0.215401, 0.209503, 0.683726 -2237, -0.665713, 0.215205, 0.209751, 0.683021 -2238, -0.666421, 0.215006, 0.209998, 0.682317 -2239, -0.667130, 0.214806, 0.210242, 0.681612 -2240, -0.667838, 0.214603, 0.210484, 0.680907 -2241, -0.668546, 0.214399, 0.210725, 0.680202 -2242, -0.669253, 0.214192, 0.210963, 0.679497 -2243, -0.669961, 0.213983, 0.211199, 0.678792 -2244, -0.670669, 0.213772, 0.211434, 0.678086 -2245, -0.671376, 0.213559, 0.211666, 0.677381 -2246, -0.672083, 0.213344, 0.211896, 0.676675 -2247, -0.672790, 0.213127, 0.212125, 0.675969 -2248, -0.673497, 0.212908, 0.212351, 0.675263 -2249, -0.674203, 0.212687, 0.212575, 0.674556 -2250, -0.674910, 0.212463, 0.212798, 0.673850 -2251, -0.675616, 0.212238, 0.213018, 0.673143 -2252, -0.676322, 0.212011, 0.213236, 0.672436 -2253, -0.677028, 0.211782, 0.213452, 0.671729 -2254, -0.677733, 0.211550, 0.213666, 0.671022 -2255, -0.678439, 0.211317, 0.213878, 0.670315 -2256, -0.679144, 0.211081, 0.214088, 0.669607 -2257, -0.679850, 0.210844, 0.214296, 0.668900 -2258, -0.680555, 0.210605, 0.214501, 0.668192 -2259, -0.681260, 0.210363, 0.214705, 0.667484 -2260, -0.681964, 0.210120, 0.214906, 0.666775 -2261, -0.682669, 0.209875, 0.215106, 0.666067 -2262, -0.683373, 0.209627, 0.215303, 0.665358 -2263, -0.684078, 0.209378, 0.215498, 0.664650 -2264, -0.684782, 0.209127, 0.215691, 0.663941 -2265, -0.685486, 0.208874, 0.215882, 0.663231 -2266, -0.686190, 0.208619, 0.216071, 0.662522 -2267, -0.686893, 0.208362, 0.216258, 0.661813 -2268, -0.687597, 0.208103, 0.216442, 0.661103 -2269, -0.688300, 0.207842, 0.216625, 0.660393 -2270, -0.689003, 0.207579, 0.216805, 0.659683 -2271, -0.689706, 0.207314, 0.216983, 0.658972 -2272, -0.690409, 0.207047, 0.217159, 0.658262 -2273, -0.691112, 0.206779, 0.217333, 0.657551 -2274, -0.691814, 0.206509, 0.217504, 0.656840 -2275, -0.692517, 0.206236, 0.217674, 0.656129 -2276, -0.693219, 0.205962, 0.217841, 0.655418 -2277, -0.693921, 0.205686, 0.218006, 0.654706 -2278, -0.694623, 0.205408, 0.218169, 0.653994 -2279, -0.695325, 0.205128, 0.218329, 0.653282 -2280, -0.696026, 0.204847, 0.218488, 0.652570 -2281, -0.696728, 0.204563, 0.218644, 0.651858 -2282, -0.697429, 0.204278, 0.218798, 0.651145 -2283, -0.698130, 0.203991, 0.218950, 0.650433 -2284, -0.698831, 0.203702, 0.219100, 0.649719 -2285, -0.699532, 0.203411, 0.219247, 0.649006 -2286, -0.700233, 0.203119, 0.219392, 0.648293 -2287, -0.700934, 0.202824, 0.219535, 0.647579 -2288, -0.701634, 0.202528, 0.219676, 0.646865 -2289, -0.702334, 0.202230, 0.219814, 0.646151 -2290, -0.703034, 0.201931, 0.219951, 0.645437 -2291, -0.703734, 0.201629, 0.220085, 0.644722 -2292, -0.704434, 0.201326, 0.220216, 0.644007 -2293, -0.705134, 0.201021, 0.220346, 0.643292 -2294, -0.705833, 0.200714, 0.220473, 0.642577 -2295, -0.706533, 0.200406, 0.220598, 0.641861 -2296, -0.707232, 0.200095, 0.220720, 0.641145 -2297, -0.707931, 0.199783, 0.220841, 0.640429 -2298, -0.708630, 0.199470, 0.220959, 0.639713 -2299, -0.709329, 0.199154, 0.221075, 0.638996 -2300, -0.710027, 0.198837, 0.221188, 0.638280 -2301, -0.710726, 0.198519, 0.221300, 0.637562 -2302, -0.711424, 0.198198, 0.221409, 0.636845 -2303, -0.712122, 0.197876, 0.221515, 0.636128 -2304, -0.712820, 0.197552, 0.221620, 0.635410 -2305, -0.713518, 0.197227, 0.221722, 0.634692 -2306, -0.714215, 0.196900, 0.221821, 0.633973 -2307, -0.714913, 0.196571, 0.221919, 0.633255 -2308, -0.715610, 0.196241, 0.222014, 0.632536 -2309, -0.716307, 0.195909, 0.222107, 0.631817 -2310, -0.717004, 0.195575, 0.222197, 0.631097 -2311, -0.717701, 0.195240, 0.222285, 0.630377 -2312, -0.718398, 0.194903, 0.222371, 0.629657 -2313, -0.719094, 0.194564, 0.222455, 0.628937 -2314, -0.719791, 0.194224, 0.222536, 0.628217 -2315, -0.720487, 0.193883, 0.222615, 0.627496 -2316, -0.721183, 0.193539, 0.222691, 0.626775 -2317, -0.721879, 0.193195, 0.222766, 0.626053 -2318, -0.722574, 0.192848, 0.222837, 0.625331 -2319, -0.723270, 0.192500, 0.222907, 0.624609 -2320, -0.723965, 0.192151, 0.222974, 0.623887 -2321, -0.724660, 0.191800, 0.223039, 0.623165 -2322, -0.725355, 0.191448, 0.223101, 0.622442 -2323, -0.726050, 0.191093, 0.223161, 0.621718 -2324, -0.726745, 0.190738, 0.223219, 0.620995 -2325, -0.727439, 0.190381, 0.223274, 0.620271 -2326, -0.728133, 0.190022, 0.223327, 0.619547 -2327, -0.728827, 0.189662, 0.223378, 0.618822 -2328, -0.729521, 0.189301, 0.223426, 0.618098 -2329, -0.730215, 0.188938, 0.223472, 0.617372 -2330, -0.730909, 0.188574, 0.223515, 0.616647 -2331, -0.731602, 0.188208, 0.223556, 0.615921 -2332, -0.732295, 0.187840, 0.223595, 0.615195 -2333, -0.732988, 0.187472, 0.223632, 0.614469 -2334, -0.733681, 0.187102, 0.223665, 0.613742 -2335, -0.734373, 0.186730, 0.223697, 0.613015 -2336, -0.735066, 0.186357, 0.223726, 0.612287 -2337, -0.735758, 0.185983, 0.223753, 0.611560 -2338, -0.736450, 0.185607, 0.223777, 0.610831 -2339, -0.737142, 0.185230, 0.223799, 0.610103 -2340, -0.737833, 0.184851, 0.223819, 0.609374 -2341, -0.738525, 0.184471, 0.223836, 0.608645 -2342, -0.739216, 0.184090, 0.223851, 0.607915 -2343, -0.739907, 0.183708, 0.223863, 0.607186 -2344, -0.740598, 0.183324, 0.223873, 0.606455 -2345, -0.741288, 0.182938, 0.223881, 0.605725 -2346, -0.741979, 0.182552, 0.223886, 0.604994 -2347, -0.742669, 0.182164, 0.223889, 0.604262 -2348, -0.743359, 0.181775, 0.223889, 0.603530 -2349, -0.744049, 0.181384, 0.223887, 0.602798 -2350, -0.744738, 0.180993, 0.223883, 0.602066 -2351, -0.745427, 0.180600, 0.223876, 0.601333 -2352, -0.746116, 0.180205, 0.223867, 0.600600 -2353, -0.746805, 0.179810, 0.223855, 0.599866 -2354, -0.747494, 0.179413, 0.223841, 0.599132 -2355, -0.748182, 0.179015, 0.223824, 0.598398 -2356, -0.748870, 0.178616, 0.223805, 0.597663 -2357, -0.749558, 0.178215, 0.223784, 0.596927 -2358, -0.750246, 0.177814, 0.223760, 0.596192 -2359, -0.750933, 0.177411, 0.223734, 0.595456 -2360, -0.751621, 0.177007, 0.223705, 0.594719 -2361, -0.752308, 0.176601, 0.223674, 0.593982 -2362, -0.752994, 0.176195, 0.223641, 0.593245 -2363, -0.753681, 0.175787, 0.223605, 0.592507 -2364, -0.754367, 0.175379, 0.223566, 0.591769 -2365, -0.755053, 0.174969, 0.223526, 0.591031 -2366, -0.755739, 0.174558, 0.223482, 0.590292 -2367, -0.756424, 0.174145, 0.223437, 0.589552 -2368, -0.757109, 0.173732, 0.223389, 0.588813 -2369, -0.757794, 0.173318, 0.223338, 0.588072 -2370, -0.758479, 0.172902, 0.223285, 0.587332 -2371, -0.759163, 0.172486, 0.223230, 0.586591 -2372, -0.759847, 0.172068, 0.223172, 0.585849 -2373, -0.760531, 0.171649, 0.223112, 0.585107 -2374, -0.761215, 0.171229, 0.223050, 0.584364 -2375, -0.761898, 0.170808, 0.222985, 0.583622 -2376, -0.762581, 0.170387, 0.222917, 0.582878 -2377, -0.763263, 0.169964, 0.222847, 0.582134 -2378, -0.763946, 0.169540, 0.222775, 0.581390 -2379, -0.764628, 0.169115, 0.222700, 0.580645 -2380, -0.765310, 0.168689, 0.222623, 0.579900 -2381, -0.765991, 0.168262, 0.222543, 0.579154 -2382, -0.766673, 0.167834, 0.222461, 0.578408 -2383, -0.767354, 0.167405, 0.222377, 0.577661 -2384, -0.768034, 0.166975, 0.222290, 0.576914 -2385, -0.768714, 0.166544, 0.222201, 0.576167 -2386, -0.769394, 0.166112, 0.222109, 0.575419 -2387, -0.770074, 0.165679, 0.222015, 0.574670 -2388, -0.770753, 0.165246, 0.221918, 0.573921 -2389, -0.771432, 0.164811, 0.221819, 0.573171 -2390, -0.772111, 0.164375, 0.221718, 0.572421 -2391, -0.772790, 0.163939, 0.221614, 0.571671 -2392, -0.773468, 0.163502, 0.221508, 0.570920 -2393, -0.774145, 0.163064, 0.221399, 0.570168 -2394, -0.774823, 0.162624, 0.221288, 0.569416 -2395, -0.775500, 0.162185, 0.221175, 0.568663 -2396, -0.776176, 0.161744, 0.221059, 0.567910 -2397, -0.776853, 0.161302, 0.220941, 0.567157 -2398, -0.777529, 0.160860, 0.220820, 0.566402 -2399, -0.778204, 0.160416, 0.220697, 0.565648 -2400, -0.778880, 0.159972, 0.220571, 0.564893 -2401, -0.779555, 0.159527, 0.220443, 0.564137 -2402, -0.780229, 0.159082, 0.220313, 0.563381 -2403, -0.780903, 0.158635, 0.220180, 0.562624 -2404, -0.781577, 0.158188, 0.220045, 0.561866 -2405, -0.782251, 0.157740, 0.219908, 0.561109 -2406, -0.782924, 0.157291, 0.219768, 0.560350 -2407, -0.783596, 0.156841, 0.219625, 0.559591 -2408, -0.784269, 0.156391, 0.219481, 0.558832 -2409, -0.784940, 0.155940, 0.219334, 0.558072 -2410, -0.785612, 0.155489, 0.219184, 0.557311 -2411, -0.786283, 0.155036, 0.219032, 0.556550 -2412, -0.786954, 0.154583, 0.218878, 0.555788 -2413, -0.787624, 0.154129, 0.218721, 0.555026 -2414, -0.788294, 0.153675, 0.218562, 0.554263 -2415, -0.788963, 0.153220, 0.218401, 0.553499 -2416, -0.789632, 0.152764, 0.218237, 0.552735 -2417, -0.790301, 0.152307, 0.218071, 0.551971 -2418, -0.790969, 0.151850, 0.217902, 0.551206 -2419, -0.791637, 0.151393, 0.217731, 0.550440 -2420, -0.792304, 0.150934, 0.217558, 0.549674 -2421, -0.792971, 0.150475, 0.217382, 0.548907 -2422, -0.793638, 0.150016, 0.217204, 0.548139 -2423, -0.794304, 0.149556, 0.217024, 0.547371 -2424, -0.794969, 0.149095, 0.216841, 0.546602 -2425, -0.795635, 0.148634, 0.216656, 0.545833 -2426, -0.796299, 0.148172, 0.216469, 0.545063 -2427, -0.796963, 0.147709, 0.216279, 0.544293 -2428, -0.797627, 0.147247, 0.216087, 0.543522 -2429, -0.798291, 0.146783, 0.215892, 0.542750 -2430, -0.798953, 0.146319, 0.215695, 0.541978 -2431, -0.799616, 0.145855, 0.215496, 0.541205 -2432, -0.800278, 0.145390, 0.215295, 0.540431 -2433, -0.800939, 0.144924, 0.215091, 0.539657 -2434, -0.801600, 0.144458, 0.214885, 0.538882 -2435, -0.802260, 0.143992, 0.214677, 0.538107 -2436, -0.802920, 0.143525, 0.214466, 0.537331 -2437, -0.803579, 0.143058, 0.214253, 0.536554 -2438, -0.804238, 0.142590, 0.214037, 0.535777 -2439, -0.804897, 0.142122, 0.213820, 0.534999 -2440, -0.805555, 0.141653, 0.213600, 0.534220 -2441, -0.806212, 0.141184, 0.213377, 0.533441 -2442, -0.806869, 0.140715, 0.213153, 0.532661 -2443, -0.807525, 0.140245, 0.212926, 0.531881 -2444, -0.808181, 0.139775, 0.212697, 0.531100 -2445, -0.808836, 0.139304, 0.212465, 0.530318 -2446, -0.809491, 0.138833, 0.212232, 0.529536 -2447, -0.810145, 0.138362, 0.211996, 0.528752 -2448, -0.810798, 0.137890, 0.211757, 0.527969 -2449, -0.811451, 0.137418, 0.211517, 0.527184 -2450, -0.812104, 0.136946, 0.211274, 0.526399 -2451, -0.812756, 0.136474, 0.211029, 0.525614 -2452, -0.813407, 0.136001, 0.210782, 0.524827 -2453, -0.814058, 0.135528, 0.210532, 0.524040 -2454, -0.814708, 0.135054, 0.210280, 0.523252 -2455, -0.815358, 0.134580, 0.210026, 0.522464 -2456, -0.816007, 0.134106, 0.209770, 0.521675 -2457, -0.816655, 0.133632, 0.209511, 0.520885 -2458, -0.817303, 0.133158, 0.209251, 0.520095 -2459, -0.817951, 0.132683, 0.208988, 0.519304 -2460, -0.818597, 0.132208, 0.208723, 0.518512 -2461, -0.819243, 0.131733, 0.208455, 0.517719 -2462, -0.819889, 0.131258, 0.208186, 0.516926 -2463, -0.820534, 0.130782, 0.207914, 0.516132 -2464, -0.821178, 0.130306, 0.207640, 0.515338 -2465, -0.821821, 0.129830, 0.207364, 0.514542 -2466, -0.822464, 0.129354, 0.207085, 0.513746 -2467, -0.823107, 0.128878, 0.206805, 0.512950 -2468, -0.823748, 0.128402, 0.206522, 0.512152 -2469, -0.824389, 0.127925, 0.206237, 0.511354 -2470, -0.825030, 0.127449, 0.205950, 0.510556 -2471, -0.825670, 0.126972, 0.205661, 0.509756 -2472, -0.826309, 0.126495, 0.205370, 0.508956 -2473, -0.826947, 0.126018, 0.205076, 0.508155 -2474, -0.827585, 0.125541, 0.204781, 0.507353 -2475, -0.828222, 0.125064, 0.204483, 0.506551 -2476, -0.828858, 0.124587, 0.204183, 0.505748 -2477, -0.829494, 0.124110, 0.203881, 0.504944 -2478, -0.830129, 0.123633, 0.203577, 0.504140 -2479, -0.830764, 0.123155, 0.203271, 0.503335 -2480, -0.831397, 0.122678, 0.202962, 0.502529 -2481, -0.832030, 0.122201, 0.202652, 0.501722 -2482, -0.832663, 0.121724, 0.202339, 0.500914 -2483, -0.833294, 0.121246, 0.202025, 0.500106 -2484, -0.833925, 0.120769, 0.201708, 0.499297 -2485, -0.834555, 0.120292, 0.201389, 0.498488 -2486, -0.835184, 0.119814, 0.201068, 0.497678 -2487, -0.835813, 0.119337, 0.200745, 0.496866 -2488, -0.836441, 0.118860, 0.200420, 0.496055 -2489, -0.837068, 0.118383, 0.200093, 0.495242 -2490, -0.837695, 0.117906, 0.199764, 0.494429 -2491, -0.838321, 0.117429, 0.199433, 0.493615 -2492, -0.838946, 0.116952, 0.199100, 0.492800 -2493, -0.839570, 0.116475, 0.198765, 0.491984 -2494, -0.840193, 0.115999, 0.198428, 0.491168 -2495, -0.840816, 0.115522, 0.198089, 0.490351 -2496, -0.841438, 0.115046, 0.197747, 0.489533 -2497, -0.842059, 0.114570, 0.197404, 0.488715 -2498, -0.842679, 0.114093, 0.197059, 0.487895 -2499, -0.843299, 0.113617, 0.196712, 0.487075 -2500, -0.843918, 0.113142, 0.196363, 0.486254 -2501, -0.844536, 0.112666, 0.196012, 0.485433 -2502, -0.845153, 0.112191, 0.195659, 0.484610 -2503, -0.845769, 0.111715, 0.195304, 0.483787 -2504, -0.846385, 0.111240, 0.194947, 0.482963 -2505, -0.847000, 0.110765, 0.194588, 0.482139 -2506, -0.847614, 0.110291, 0.194227, 0.481313 -2507, -0.848227, 0.109816, 0.193864, 0.480487 -2508, -0.848839, 0.109342, 0.193500, 0.479660 -2509, -0.849451, 0.108868, 0.193133, 0.478832 -2510, -0.850062, 0.108395, 0.192765, 0.478004 -2511, -0.850671, 0.107921, 0.192394, 0.477175 -2512, -0.851280, 0.107448, 0.192022, 0.476345 -2513, -0.851888, 0.106976, 0.191648, 0.475514 -2514, -0.852496, 0.106503, 0.191272, 0.474682 -2515, -0.853102, 0.106031, 0.190894, 0.473850 -2516, -0.853708, 0.105559, 0.190515, 0.473017 -2517, -0.854312, 0.105087, 0.190133, 0.472183 -2518, -0.854916, 0.104616, 0.189750, 0.471348 -2519, -0.855519, 0.104145, 0.189364, 0.470512 -2520, -0.856121, 0.103675, 0.188977, 0.469676 -2521, -0.856722, 0.103205, 0.188589, 0.468839 -2522, -0.857323, 0.102735, 0.188198, 0.468001 -2523, -0.857922, 0.102265, 0.187806, 0.467162 -2524, -0.858520, 0.101796, 0.187411, 0.466323 -2525, -0.859118, 0.101328, 0.187015, 0.465483 -2526, -0.859715, 0.100859, 0.186618, 0.464642 -2527, -0.860310, 0.100392, 0.186218, 0.463800 -2528, -0.860905, 0.099924, 0.185817, 0.462957 -2529, -0.861499, 0.099457, 0.185414, 0.462114 -2530, -0.862092, 0.098991, 0.185009, 0.461270 -2531, -0.862684, 0.098525, 0.184603, 0.460425 -2532, -0.863275, 0.098059, 0.184194, 0.459579 -2533, -0.863865, 0.097594, 0.183785, 0.458732 -2534, -0.864455, 0.097129, 0.183373, 0.457885 -2535, -0.865043, 0.096665, 0.182960, 0.457037 -2536, -0.865630, 0.096201, 0.182545, 0.456188 -2537, -0.866216, 0.095738, 0.182128, 0.455338 -2538, -0.866802, 0.095275, 0.181710, 0.454487 -2539, -0.867386, 0.094813, 0.181290, 0.453636 -2540, -0.867970, 0.094351, 0.180868, 0.452784 -2541, -0.868552, 0.093890, 0.180445, 0.451931 -2542, -0.869134, 0.093430, 0.180020, 0.451077 -2543, -0.869714, 0.092970, 0.179594, 0.450222 -2544, -0.870294, 0.092510, 0.179165, 0.449367 -2545, -0.870872, 0.092051, 0.178736, 0.448511 -2546, -0.871449, 0.091593, 0.178304, 0.447654 -2547, -0.872026, 0.091135, 0.177872, 0.446796 -2548, -0.872601, 0.090678, 0.177437, 0.445938 -2549, -0.873176, 0.090222, 0.177001, 0.445078 -2550, -0.873749, 0.089766, 0.176564, 0.444218 -2551, -0.874322, 0.089310, 0.176124, 0.443357 -2552, -0.874893, 0.088856, 0.175684, 0.442495 -2553, -0.875463, 0.088402, 0.175242, 0.441633 -2554, -0.876033, 0.087948, 0.174798, 0.440769 -2555, -0.876601, 0.087495, 0.174353, 0.439905 -2556, -0.877168, 0.087043, 0.173906, 0.439040 -2557, -0.877734, 0.086592, 0.173458, 0.438174 -2558, -0.878300, 0.086141, 0.173008, 0.437307 -2559, -0.878864, 0.085691, 0.172557, 0.436440 -2560, -0.879427, 0.085242, 0.172105, 0.435572 -2561, -0.879988, 0.084793, 0.171651, 0.434703 -2562, -0.880549, 0.084345, 0.171195, 0.433833 -2563, -0.881109, 0.083898, 0.170738, 0.432962 -2564, -0.881668, 0.083451, 0.170280, 0.432091 -2565, -0.882225, 0.083006, 0.169821, 0.431218 -2566, -0.882782, 0.082561, 0.169359, 0.430345 -2567, -0.883337, 0.082116, 0.168897, 0.429471 -2568, -0.883892, 0.081673, 0.168433, 0.428597 -2569, -0.884445, 0.081230, 0.167968, 0.427721 -2570, -0.884997, 0.080788, 0.167502, 0.426845 -2571, -0.885548, 0.080347, 0.167034, 0.425968 -2572, -0.886098, 0.079906, 0.166565, 0.425090 -2573, -0.886647, 0.079467, 0.166094, 0.424211 -2574, -0.887195, 0.079028, 0.165622, 0.423332 -2575, -0.887741, 0.078590, 0.165149, 0.422451 -2576, -0.888287, 0.078153, 0.164675, 0.421570 -2577, -0.888831, 0.077716, 0.164199, 0.420688 -2578, -0.889374, 0.077281, 0.163722, 0.419806 -2579, -0.889916, 0.076846, 0.163244, 0.418922 -2580, -0.890457, 0.076412, 0.162764, 0.418038 -2581, -0.890997, 0.075979, 0.162284, 0.417153 -2582, -0.891535, 0.075547, 0.161802, 0.416267 -2583, -0.892073, 0.075116, 0.161319, 0.415380 -2584, -0.892609, 0.074685, 0.160834, 0.414492 -2585, -0.893144, 0.074256, 0.160349, 0.413604 -2586, -0.893678, 0.073827, 0.159862, 0.412715 -2587, -0.894211, 0.073399, 0.159375, 0.411825 -2588, -0.894742, 0.072972, 0.158886, 0.410934 -2589, -0.895272, 0.072546, 0.158395, 0.410043 -2590, -0.895802, 0.072121, 0.157904, 0.409150 -2591, -0.896330, 0.071697, 0.157412, 0.408257 -2592, -0.896857, 0.071274, 0.156918, 0.407363 -2593, -0.897382, 0.070852, 0.156424, 0.406469 -2594, -0.897907, 0.070431, 0.155928, 0.405573 -2595, -0.898430, 0.070010, 0.155431, 0.404677 -2596, -0.898952, 0.069591, 0.154933, 0.403780 -2597, -0.899473, 0.069173, 0.154434, 0.402882 -2598, -0.899992, 0.068755, 0.153935, 0.401983 -2599, -0.900511, 0.068339, 0.153434, 0.401084 -2600, -0.901028, 0.067923, 0.152932, 0.400184 -2601, -0.901544, 0.067509, 0.152429, 0.399283 -2602, -0.902059, 0.067095, 0.151925, 0.398381 -2603, -0.902572, 0.066683, 0.151420, 0.397478 -2604, -0.903084, 0.066271, 0.150914, 0.396575 -2605, -0.903595, 0.065861, 0.150407, 0.395671 -2606, -0.904105, 0.065451, 0.149899, 0.394766 -2607, -0.904614, 0.065043, 0.149390, 0.393860 -2608, -0.905121, 0.064636, 0.148881, 0.392954 -2609, -0.905627, 0.064229, 0.148370, 0.392046 -2610, -0.906132, 0.063824, 0.147858, 0.391138 -2611, -0.906636, 0.063420, 0.147346, 0.390229 -2612, -0.907138, 0.063017, 0.146833, 0.389320 -2613, -0.907639, 0.062615, 0.146319, 0.388409 -2614, -0.908139, 0.062214, 0.145803, 0.387498 -2615, -0.908637, 0.061814, 0.145288, 0.386586 -2616, -0.909134, 0.061415, 0.144771, 0.385674 -2617, -0.909630, 0.061017, 0.144253, 0.384760 -2618, -0.910125, 0.060620, 0.143735, 0.383846 -2619, -0.910618, 0.060225, 0.143216, 0.382931 -2620, -0.911111, 0.059830, 0.142696, 0.382015 -2621, -0.911601, 0.059437, 0.142176, 0.381099 -2622, -0.912091, 0.059045, 0.141654, 0.380181 -2623, -0.912579, 0.058654, 0.141132, 0.379263 -2624, -0.913066, 0.058264, 0.140609, 0.378344 -2625, -0.913552, 0.057875, 0.140085, 0.377425 -2626, -0.914036, 0.057487, 0.139561, 0.376505 -2627, -0.914519, 0.057101, 0.139036, 0.375583 -2628, -0.915001, 0.056715, 0.138510, 0.374662 -2629, -0.915481, 0.056331, 0.137984, 0.373739 -2630, -0.915961, 0.055948, 0.137457, 0.372816 -2631, -0.916438, 0.055566, 0.136929, 0.371892 -2632, -0.916915, 0.055185, 0.136401, 0.370967 -2633, -0.917390, 0.054806, 0.135872, 0.370041 -2634, -0.917864, 0.054427, 0.135343, 0.369115 -2635, -0.918336, 0.054050, 0.134813, 0.368188 -2636, -0.918808, 0.053674, 0.134282, 0.367260 -2637, -0.919278, 0.053299, 0.133751, 0.366331 -2638, -0.919746, 0.052926, 0.133219, 0.365402 -2639, -0.920213, 0.052554, 0.132686, 0.364472 -2640, -0.920679, 0.052182, 0.132153, 0.363541 -2641, -0.921144, 0.051812, 0.131620, 0.362610 -2642, -0.921607, 0.051444, 0.131086, 0.361678 -2643, -0.922069, 0.051076, 0.130552, 0.360745 -2644, -0.922529, 0.050710, 0.130017, 0.359811 -2645, -0.922988, 0.050345, 0.129481, 0.358876 -2646, -0.923446, 0.049981, 0.128945, 0.357941 -2647, -0.923903, 0.049619, 0.128409, 0.357005 -2648, -0.924358, 0.049257, 0.127872, 0.356069 -2649, -0.924812, 0.048897, 0.127335, 0.355132 -2650, -0.925264, 0.048538, 0.126798, 0.354194 -2651, -0.925715, 0.048181, 0.126260, 0.353255 -2652, -0.926165, 0.047825, 0.125721, 0.352315 -2653, -0.926613, 0.047470, 0.125183, 0.351375 -2654, -0.927060, 0.047116, 0.124644, 0.350434 -2655, -0.927505, 0.046764, 0.124104, 0.349493 -2656, -0.927950, 0.046412, 0.123564, 0.348550 -2657, -0.928392, 0.046063, 0.123024, 0.347607 -2658, -0.928834, 0.045714, 0.122484, 0.346664 -2659, -0.929274, 0.045367, 0.121943, 0.345719 -2660, -0.929712, 0.045021, 0.121402, 0.344774 -2661, -0.930150, 0.044676, 0.120861, 0.343829 -2662, -0.930586, 0.044333, 0.120320, 0.342882 -2663, -0.931020, 0.043991, 0.119778, 0.341935 -2664, -0.931453, 0.043650, 0.119236, 0.340987 -2665, -0.931885, 0.043311, 0.118694, 0.340039 -2666, -0.932315, 0.042973, 0.118152, 0.339089 -2667, -0.932744, 0.042636, 0.117609, 0.338139 -2668, -0.933172, 0.042300, 0.117067, 0.337189 -2669, -0.933598, 0.041966, 0.116524, 0.336238 -2670, -0.934023, 0.041634, 0.115981, 0.335286 -2671, -0.934446, 0.041302, 0.115438, 0.334333 -2672, -0.934868, 0.040972, 0.114894, 0.333380 -2673, -0.935289, 0.040643, 0.114351, 0.332426 -2674, -0.935708, 0.040316, 0.113807, 0.331471 -2675, -0.936126, 0.039990, 0.113264, 0.330516 -2676, -0.936542, 0.039665, 0.112720, 0.329560 -2677, -0.936957, 0.039342, 0.112177, 0.328603 -2678, -0.937371, 0.039020, 0.111633, 0.327646 -2679, -0.937783, 0.038699, 0.111089, 0.326688 -2680, -0.938193, 0.038380, 0.110545, 0.325729 -2681, -0.938603, 0.038062, 0.110002, 0.324770 -2682, -0.939011, 0.037746, 0.109458, 0.323810 -2683, -0.939417, 0.037431, 0.108914, 0.322850 -2684, -0.939822, 0.037117, 0.108370, 0.321889 -2685, -0.940226, 0.036804, 0.107827, 0.320927 -2686, -0.940628, 0.036493, 0.107283, 0.319964 -2687, -0.941029, 0.036184, 0.106740, 0.319001 -2688, -0.941428, 0.035876, 0.106196, 0.318037 -2689, -0.941826, 0.035569, 0.105653, 0.317073 -2690, -0.942223, 0.035263, 0.105110, 0.316108 -2691, -0.942618, 0.034959, 0.104566, 0.315142 -2692, -0.943012, 0.034657, 0.104023, 0.314176 -2693, -0.943404, 0.034355, 0.103481, 0.313209 -2694, -0.943795, 0.034056, 0.102938, 0.312242 -2695, -0.944184, 0.033757, 0.102395, 0.311274 -2696, -0.944572, 0.033460, 0.101853, 0.310305 -2697, -0.944959, 0.033165, 0.101311, 0.309336 -2698, -0.945344, 0.032870, 0.100769, 0.308366 -2699, -0.945728, 0.032578, 0.100228, 0.307395 -2700, -0.946110, 0.032286, 0.099686, 0.306424 -2701, -0.946491, 0.031996, 0.099145, 0.305452 -2702, -0.946871, 0.031708, 0.098604, 0.304480 -2703, -0.947249, 0.031420, 0.098064, 0.303507 -2704, -0.947625, 0.031135, 0.097523, 0.302533 -2705, -0.948000, 0.030850, 0.096983, 0.301559 -2706, -0.948374, 0.030568, 0.096444, 0.300584 -2707, -0.948746, 0.030286, 0.095904, 0.299609 -2708, -0.949117, 0.030006, 0.095365, 0.298633 -2709, -0.949487, 0.029727, 0.094827, 0.297657 -2710, -0.949855, 0.029450, 0.094289, 0.296680 -2711, -0.950221, 0.029175, 0.093751, 0.295702 -2712, -0.950586, 0.028900, 0.093213, 0.294724 -2713, -0.950950, 0.028627, 0.092676, 0.293745 -2714, -0.951312, 0.028356, 0.092140, 0.292765 -2715, -0.951673, 0.028086, 0.091604, 0.291785 -2716, -0.952032, 0.027817, 0.091068, 0.290805 -2717, -0.952390, 0.027550, 0.090533, 0.289824 -2718, -0.952747, 0.027284, 0.089998, 0.288842 -2719, -0.953102, 0.027020, 0.089464, 0.287860 -2720, -0.953455, 0.026757, 0.088930, 0.286877 -2721, -0.953807, 0.026496, 0.088396, 0.285894 -2722, -0.954158, 0.026236, 0.087864, 0.284910 -2723, -0.954507, 0.025977, 0.087332, 0.283926 -2724, -0.954855, 0.025720, 0.086800, 0.282941 -2725, -0.955202, 0.025465, 0.086269, 0.281955 -2726, -0.955547, 0.025211, 0.085738, 0.280969 -2727, -0.955890, 0.024958, 0.085208, 0.279983 -2728, -0.956232, 0.024706, 0.084679, 0.278996 -2729, -0.956573, 0.024457, 0.084151, 0.278008 -2730, -0.956912, 0.024208, 0.083623, 0.277020 -2731, -0.957250, 0.023961, 0.083095, 0.276031 -2732, -0.957587, 0.023716, 0.082568, 0.275042 -2733, -0.957921, 0.023472, 0.082042, 0.274052 -2734, -0.958255, 0.023229, 0.081517, 0.273062 -2735, -0.958587, 0.022988, 0.080992, 0.272071 -2736, -0.958918, 0.022748, 0.080468, 0.271080 -2737, -0.959247, 0.022510, 0.079945, 0.270088 -2738, -0.959575, 0.022273, 0.079423, 0.269096 -2739, -0.959901, 0.022037, 0.078901, 0.268103 -2740, -0.960226, 0.021803, 0.078380, 0.267110 -2741, -0.960549, 0.021571, 0.077860, 0.266116 -2742, -0.960871, 0.021340, 0.077340, 0.265122 -2743, -0.961192, 0.021110, 0.076822, 0.264127 -2744, -0.961511, 0.020882, 0.076304, 0.263132 -2745, -0.961829, 0.020655, 0.075787, 0.262136 -2746, -0.962145, 0.020430, 0.075271, 0.261140 -2747, -0.962460, 0.020206, 0.074755, 0.260143 -2748, -0.962773, 0.019983, 0.074241, 0.259146 -2749, -0.963085, 0.019762, 0.073727, 0.258148 -2750, -0.963396, 0.019542, 0.073215, 0.257150 -2751, -0.963705, 0.019324, 0.072703, 0.256151 -2752, -0.964013, 0.019108, 0.072192, 0.255152 -2753, -0.964319, 0.018892, 0.071682, 0.254153 -2754, -0.964624, 0.018678, 0.071173, 0.253153 -2755, -0.964927, 0.018466, 0.070665, 0.252152 -2756, -0.965229, 0.018255, 0.070158, 0.251151 -2757, -0.965530, 0.018045, 0.069652, 0.250150 -2758, -0.965829, 0.017837, 0.069147, 0.249148 -2759, -0.966127, 0.017631, 0.068643, 0.248146 -2760, -0.966423, 0.017425, 0.068139, 0.247143 -2761, -0.966718, 0.017221, 0.067637, 0.246140 -2762, -0.967012, 0.017019, 0.067136, 0.245136 -2763, -0.967304, 0.016818, 0.066636, 0.244132 -2764, -0.967594, 0.016618, 0.066137, 0.243127 -2765, -0.967884, 0.016420, 0.065639, 0.242122 -2766, -0.968171, 0.016223, 0.065143, 0.241117 -2767, -0.968458, 0.016028, 0.064647, 0.240111 -2768, -0.968743, 0.015834, 0.064152, 0.239105 -2769, -0.969026, 0.015642, 0.063659, 0.238098 -2770, -0.969309, 0.015450, 0.063166, 0.237091 -2771, -0.969589, 0.015261, 0.062675, 0.236084 -2772, -0.969869, 0.015072, 0.062185, 0.235076 -2773, -0.970147, 0.014885, 0.061696, 0.234067 -2774, -0.970423, 0.014700, 0.061209, 0.233059 -2775, -0.970698, 0.014516, 0.060722, 0.232049 -2776, -0.970972, 0.014333, 0.060237, 0.231040 -2777, -0.971244, 0.014152, 0.059753, 0.230030 -2778, -0.971515, 0.013972, 0.059270, 0.229020 -2779, -0.971785, 0.013793, 0.058788, 0.228009 -2780, -0.972053, 0.013616, 0.058308, 0.226998 -2781, -0.972320, 0.013441, 0.057829, 0.225986 -2782, -0.972585, 0.013266, 0.057351, 0.224974 -2783, -0.972849, 0.013093, 0.056874, 0.223962 -2784, -0.973111, 0.012922, 0.056399, 0.222949 -2785, -0.973373, 0.012751, 0.055925, 0.221936 -2786, -0.973632, 0.012583, 0.055453, 0.220923 -2787, -0.973891, 0.012415, 0.054981, 0.219909 -2788, -0.974148, 0.012249, 0.054511, 0.218895 -2789, -0.974403, 0.012084, 0.054043, 0.217880 -2790, -0.974657, 0.011921, 0.053576, 0.216865 -2791, -0.974910, 0.011759, 0.053110, 0.215850 -2792, -0.975162, 0.011598, 0.052645, 0.214834 -2793, -0.975412, 0.011439, 0.052182, 0.213818 -2794, -0.975660, 0.011281, 0.051721, 0.212802 -2795, -0.975908, 0.011124, 0.051261, 0.211785 -2796, -0.976154, 0.010969, 0.050802, 0.210768 -2797, -0.976398, 0.010815, 0.050344, 0.209750 -2798, -0.976641, 0.010662, 0.049889, 0.208732 -2799, -0.976883, 0.010511, 0.049434, 0.207714 -2800, -0.977124, 0.010361, 0.048981, 0.206696 -2801, -0.977363, 0.010213, 0.048530, 0.205677 -2802, -0.977600, 0.010065, 0.048080, 0.204658 -2803, -0.977837, 0.009919, 0.047632, 0.203638 -2804, -0.978072, 0.009775, 0.047185, 0.202618 -2805, -0.978305, 0.009632, 0.046739, 0.201598 -2806, -0.978537, 0.009490, 0.046295, 0.200578 -2807, -0.978768, 0.009349, 0.045853, 0.199557 -2808, -0.978998, 0.009209, 0.045413, 0.198536 -2809, -0.979226, 0.009071, 0.044973, 0.197514 -2810, -0.979453, 0.008935, 0.044536, 0.196492 -2811, -0.979678, 0.008799, 0.044100, 0.195470 -2812, -0.979902, 0.008665, 0.043666, 0.194448 -2813, -0.980125, 0.008532, 0.043233, 0.193425 -2814, -0.980346, 0.008400, 0.042802, 0.192402 -2815, -0.980566, 0.008270, 0.042373, 0.191379 -2816, -0.980785, 0.008141, 0.041945, 0.190355 -2817, -0.981002, 0.008013, 0.041519, 0.189331 -2818, -0.981218, 0.007886, 0.041094, 0.188307 -2819, -0.981433, 0.007761, 0.040671, 0.187282 -2820, -0.981646, 0.007637, 0.040250, 0.186257 -2821, -0.981858, 0.007514, 0.039831, 0.185232 -2822, -0.982069, 0.007393, 0.039413, 0.184207 -2823, -0.982278, 0.007272, 0.038998, 0.183181 -2824, -0.982486, 0.007153, 0.038583, 0.182155 -2825, -0.982693, 0.007036, 0.038171, 0.181129 -2826, -0.982898, 0.006919, 0.037760, 0.180102 -2827, -0.983103, 0.006804, 0.037351, 0.179076 -2828, -0.983305, 0.006690, 0.036944, 0.178048 -2829, -0.983507, 0.006577, 0.036539, 0.177021 -2830, -0.983707, 0.006465, 0.036135, 0.175993 -2831, -0.983905, 0.006354, 0.035734, 0.174965 -2832, -0.984103, 0.006245, 0.035334, 0.173937 -2833, -0.984299, 0.006137, 0.034935, 0.172909 -2834, -0.984494, 0.006030, 0.034539, 0.171880 -2835, -0.984687, 0.005924, 0.034145, 0.170851 -2836, -0.984879, 0.005820, 0.033752, 0.169822 -2837, -0.985070, 0.005717, 0.033361, 0.168792 -2838, -0.985260, 0.005614, 0.032973, 0.167763 -2839, -0.985448, 0.005513, 0.032586, 0.166733 -2840, -0.985635, 0.005413, 0.032201, 0.165702 -2841, -0.985821, 0.005315, 0.031817, 0.164672 -2842, -0.986005, 0.005217, 0.031436, 0.163641 -2843, -0.986188, 0.005121, 0.031057, 0.162610 -2844, -0.986370, 0.005026, 0.030679, 0.161579 -2845, -0.986550, 0.004932, 0.030304, 0.160548 -2846, -0.986730, 0.004839, 0.029930, 0.159516 -2847, -0.986908, 0.004747, 0.029559, 0.158484 -2848, -0.987084, 0.004656, 0.029189, 0.157452 -2849, -0.987260, 0.004566, 0.028821, 0.156420 -2850, -0.987434, 0.004478, 0.028456, 0.155387 -2851, -0.987606, 0.004391, 0.028092, 0.154354 -2852, -0.987778, 0.004304, 0.027730, 0.153321 -2853, -0.987948, 0.004219, 0.027371, 0.152288 -2854, -0.988117, 0.004135, 0.027013, 0.151254 -2855, -0.988285, 0.004052, 0.026657, 0.150221 -2856, -0.988451, 0.003970, 0.026304, 0.149187 -2857, -0.988616, 0.003889, 0.025952, 0.148153 -2858, -0.988780, 0.003809, 0.025603, 0.147118 -2859, -0.988943, 0.003731, 0.025255, 0.146084 -2860, -0.989104, 0.003653, 0.024910, 0.145049 -2861, -0.989264, 0.003576, 0.024567, 0.144014 -2862, -0.989423, 0.003501, 0.024226, 0.142979 -2863, -0.989581, 0.003426, 0.023886, 0.141944 -2864, -0.989737, 0.003353, 0.023549, 0.140908 -2865, -0.989892, 0.003280, 0.023214, 0.139872 -2866, -0.990046, 0.003209, 0.022882, 0.138836 -2867, -0.990198, 0.003138, 0.022551, 0.137800 -2868, -0.990350, 0.003069, 0.022223, 0.136764 -2869, -0.990500, 0.003000, 0.021896, 0.135727 -2870, -0.990649, 0.002933, 0.021572, 0.134691 -2871, -0.990796, 0.002867, 0.021250, 0.133654 -2872, -0.990942, 0.002801, 0.020930, 0.132617 -2873, -0.991088, 0.002737, 0.020612, 0.131580 -2874, -0.991231, 0.002673, 0.020297, 0.130542 -2875, -0.991374, 0.002610, 0.019983, 0.129505 -2876, -0.991515, 0.002549, 0.019672, 0.128467 -2877, -0.991656, 0.002488, 0.019363, 0.127429 -2878, -0.991795, 0.002428, 0.019057, 0.126391 -2879, -0.991932, 0.002370, 0.018752, 0.125352 -2880, -0.992069, 0.002312, 0.018450, 0.124314 -2881, -0.992204, 0.002255, 0.018150, 0.123275 -2882, -0.992338, 0.002199, 0.017852, 0.122237 -2883, -0.992471, 0.002144, 0.017556, 0.121198 -2884, -0.992602, 0.002090, 0.017263, 0.120159 -2885, -0.992733, 0.002036, 0.016972, 0.119119 -2886, -0.992862, 0.001984, 0.016683, 0.118080 -2887, -0.992990, 0.001933, 0.016397, 0.117040 -2888, -0.993117, 0.001882, 0.016113, 0.116001 -2889, -0.993242, 0.001832, 0.015831, 0.114961 -2890, -0.993367, 0.001783, 0.015551, 0.113921 -2891, -0.993490, 0.001735, 0.015274, 0.112881 -2892, -0.993612, 0.001688, 0.014999, 0.111840 -2893, -0.993732, 0.001642, 0.014726, 0.110800 -2894, -0.993852, 0.001596, 0.014456, 0.109759 -2895, -0.993970, 0.001552, 0.014188, 0.108718 -2896, -0.994087, 0.001508, 0.013922, 0.107678 -2897, -0.994203, 0.001465, 0.013659, 0.106637 -2898, -0.994318, 0.001423, 0.013398, 0.105595 -2899, -0.994431, 0.001381, 0.013139, 0.104554 -2900, -0.994544, 0.001341, 0.012883, 0.103513 -2901, -0.994655, 0.001301, 0.012629, 0.102471 -2902, -0.994765, 0.001262, 0.012377, 0.101429 -2903, -0.994874, 0.001224, 0.012128, 0.100388 -2904, -0.994981, 0.001186, 0.011881, 0.099346 -2905, -0.995088, 0.001150, 0.011637, 0.098304 -2906, -0.995193, 0.001114, 0.011395, 0.097261 -2907, -0.995297, 0.001078, 0.011155, 0.096219 -2908, -0.995400, 0.001044, 0.010918, 0.095177 -2909, -0.995502, 0.001010, 0.010683, 0.094134 -2910, -0.995602, 0.000977, 0.010451, 0.093092 -2911, -0.995702, 0.000945, 0.010221, 0.092049 -2912, -0.995800, 0.000913, 0.009994, 0.091006 -2913, -0.995897, 0.000882, 0.009769, 0.089963 -2914, -0.995993, 0.000852, 0.009546, 0.088920 -2915, -0.996087, 0.000823, 0.009326, 0.087877 -2916, -0.996181, 0.000794, 0.009108, 0.086833 -2917, -0.996273, 0.000766, 0.008893, 0.085790 -2918, -0.996364, 0.000738, 0.008681, 0.084746 -2919, -0.996455, 0.000712, 0.008470, 0.083703 -2920, -0.996543, 0.000685, 0.008263, 0.082659 -2921, -0.996631, 0.000660, 0.008057, 0.081615 -2922, -0.996718, 0.000635, 0.007854, 0.080571 -2923, -0.996803, 0.000611, 0.007654, 0.079527 -2924, -0.996887, 0.000587, 0.007456, 0.078483 -2925, -0.996971, 0.000564, 0.007261, 0.077439 -2926, -0.997052, 0.000542, 0.007068, 0.076394 -2927, -0.997133, 0.000520, 0.006878, 0.075350 -2928, -0.997213, 0.000498, 0.006690, 0.074306 -2929, -0.997291, 0.000478, 0.006505, 0.073261 -2930, -0.997369, 0.000458, 0.006322, 0.072216 -2931, -0.997445, 0.000438, 0.006142, 0.071172 -2932, -0.997520, 0.000419, 0.005964, 0.070127 -2933, -0.997594, 0.000401, 0.005789, 0.069082 -2934, -0.997667, 0.000383, 0.005616, 0.068037 -2935, -0.997739, 0.000366, 0.005446, 0.066992 -2936, -0.997809, 0.000349, 0.005279, 0.065947 -2937, -0.997879, 0.000333, 0.005114, 0.064901 -2938, -0.997947, 0.000317, 0.004951, 0.063856 -2939, -0.998014, 0.000302, 0.004792, 0.062811 -2940, -0.998080, 0.000287, 0.004634, 0.061765 -2941, -0.998145, 0.000273, 0.004480, 0.060720 -2942, -0.998208, 0.000259, 0.004327, 0.059674 -2943, -0.998271, 0.000245, 0.004178, 0.058628 -2944, -0.998333, 0.000232, 0.004031, 0.057583 -2945, -0.998393, 0.000220, 0.003887, 0.056537 -2946, -0.998452, 0.000208, 0.003745, 0.055491 -2947, -0.998510, 0.000197, 0.003605, 0.054445 -2948, -0.998567, 0.000186, 0.003469, 0.053399 -2949, -0.998623, 0.000175, 0.003335, 0.052353 -2950, -0.998678, 0.000165, 0.003203, 0.051307 -2951, -0.998731, 0.000155, 0.003075, 0.050261 -2952, -0.998784, 0.000145, 0.002948, 0.049215 -2953, -0.998835, 0.000136, 0.002825, 0.048168 -2954, -0.998885, 0.000128, 0.002704, 0.047122 -2955, -0.998935, 0.000119, 0.002585, 0.046076 -2956, -0.998983, 0.000111, 0.002470, 0.045029 -2957, -0.999030, 0.000104, 0.002357, 0.043983 -2958, -0.999075, 0.000097, 0.002246, 0.042936 -2959, -0.999120, 0.000090, 0.002138, 0.041890 -2960, -0.999164, 0.000083, 0.002033, 0.040843 -2961, -0.999206, 0.000077, 0.001930, 0.039796 -2962, -0.999247, 0.000071, 0.001830, 0.038749 -2963, -0.999287, 0.000065, 0.001733, 0.037703 -2964, -0.999327, 0.000060, 0.001638, 0.036656 -2965, -0.999365, 0.000055, 0.001546, 0.035609 -2966, -0.999401, 0.000050, 0.001457, 0.034562 -2967, -0.999437, 0.000046, 0.001370, 0.033515 -2968, -0.999472, 0.000042, 0.001286, 0.032468 -2969, -0.999506, 0.000038, 0.001204, 0.031421 -2970, -0.999538, 0.000034, 0.001126, 0.030374 -2971, -0.999569, 0.000031, 0.001049, 0.029327 -2972, -0.999600, 0.000028, 0.000976, 0.028280 -2973, -0.999629, 0.000025, 0.000905, 0.027233 -2974, -0.999657, 0.000022, 0.000837, 0.026186 -2975, -0.999684, 0.000019, 0.000771, 0.025138 -2976, -0.999710, 0.000017, 0.000708, 0.024091 -2977, -0.999734, 0.000015, 0.000648, 0.023044 -2978, -0.999758, 0.000013, 0.000591, 0.021997 -2979, -0.999780, 0.000011, 0.000536, 0.020949 -2980, -0.999802, 0.000010, 0.000484, 0.019902 -2981, -0.999822, 0.000008, 0.000434, 0.018855 -2982, -0.999841, 0.000007, 0.000387, 0.017807 -2983, -0.999859, 0.000006, 0.000343, 0.016760 -2984, -0.999877, 0.000005, 0.000302, 0.015713 -2985, -0.999892, 0.000004, 0.000263, 0.014665 -2986, -0.999907, 0.000003, 0.000226, 0.013618 -2987, -0.999921, 0.000002, 0.000193, 0.012570 -2988, -0.999934, 0.000002, 0.000162, 0.011523 -2989, -0.999945, 0.000001, 0.000134, 0.010475 -2990, -0.999956, 0.000001, 0.000109, 0.009428 -2991, -0.999965, 0.000001, 0.000086, 0.008380 -2992, -0.999973, 0.000000, 0.000066, 0.007333 -2993, -0.999980, 0.000000, 0.000048, 0.006285 -2994, -0.999986, 0.000000, 0.000034, 0.005238 -2995, -0.999991, 0.000000, 0.000021, 0.004190 -2996, -0.999995, 0.000000, 0.000012, 0.003143 -2997, -0.999998, 0.000000, 0.000005, 0.002095 -2998, -0.999999, 0.000000, 0.000001, 0.001048 -2999, -1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 0.999999, 0.000000, -0.000001, 0.001048 + 0.999998, 0.000000, -0.000005, 0.002095 + 0.999995, 0.000000, -0.000012, 0.003143 + 0.999991, 0.000000, -0.000021, 0.004190 + 0.999986, 0.000000, -0.000034, 0.005238 + 0.999980, 0.000000, -0.000048, 0.006285 + 0.999973, 0.000000, -0.000066, 0.007333 + 0.999965, 0.000001, -0.000086, 0.008380 + 0.999956, 0.000001, -0.000109, 0.009428 + 0.999945, 0.000001, -0.000134, 0.010475 + 0.999934, 0.000002, -0.000162, 0.011523 + 0.999921, 0.000002, -0.000193, 0.012570 + 0.999907, 0.000003, -0.000226, 0.013618 + 0.999892, 0.000004, -0.000263, 0.014665 + 0.999877, 0.000005, -0.000302, 0.015713 + 0.999859, 0.000006, -0.000343, 0.016760 + 0.999841, 0.000007, -0.000387, 0.017807 + 0.999822, 0.000008, -0.000434, 0.018855 + 0.999802, 0.000010, -0.000484, 0.019902 + 0.999780, 0.000011, -0.000536, 0.020949 + 0.999758, 0.000013, -0.000591, 0.021997 + 0.999734, 0.000015, -0.000648, 0.023044 + 0.999710, 0.000017, -0.000708, 0.024091 + 0.999684, 0.000019, -0.000771, 0.025138 + 0.999657, 0.000022, -0.000837, 0.026186 + 0.999629, 0.000025, -0.000905, 0.027233 + 0.999600, 0.000028, -0.000976, 0.028280 + 0.999569, 0.000031, -0.001049, 0.029327 + 0.999538, 0.000034, -0.001126, 0.030374 + 0.999506, 0.000038, -0.001204, 0.031421 + 0.999472, 0.000042, -0.001286, 0.032468 + 0.999437, 0.000046, -0.001370, 0.033515 + 0.999401, 0.000050, -0.001457, 0.034562 + 0.999365, 0.000055, -0.001546, 0.035609 + 0.999327, 0.000060, -0.001638, 0.036656 + 0.999287, 0.000065, -0.001733, 0.037703 + 0.999247, 0.000071, -0.001830, 0.038749 + 0.999206, 0.000077, -0.001930, 0.039796 + 0.999164, 0.000083, -0.002033, 0.040843 + 0.999120, 0.000090, -0.002138, 0.041890 + 0.999075, 0.000097, -0.002246, 0.042936 + 0.999030, 0.000104, -0.002357, 0.043983 + 0.998983, 0.000111, -0.002470, 0.045029 + 0.998935, 0.000119, -0.002585, 0.046076 + 0.998885, 0.000128, -0.002704, 0.047122 + 0.998835, 0.000136, -0.002825, 0.048168 + 0.998784, 0.000145, -0.002948, 0.049215 + 0.998731, 0.000155, -0.003075, 0.050261 + 0.998678, 0.000165, -0.003203, 0.051307 + 0.998623, 0.000175, -0.003335, 0.052353 + 0.998567, 0.000186, -0.003469, 0.053399 + 0.998510, 0.000197, -0.003605, 0.054445 + 0.998452, 0.000208, -0.003745, 0.055491 + 0.998393, 0.000220, -0.003887, 0.056537 + 0.998333, 0.000232, -0.004031, 0.057583 + 0.998271, 0.000245, -0.004178, 0.058628 + 0.998208, 0.000259, -0.004327, 0.059674 + 0.998145, 0.000273, -0.004480, 0.060720 + 0.998080, 0.000287, -0.004634, 0.061765 + 0.998014, 0.000302, -0.004792, 0.062811 + 0.997947, 0.000317, -0.004951, 0.063856 + 0.997879, 0.000333, -0.005114, 0.064901 + 0.997809, 0.000349, -0.005279, 0.065947 + 0.997739, 0.000366, -0.005446, 0.066992 + 0.997667, 0.000383, -0.005616, 0.068037 + 0.997594, 0.000401, -0.005789, 0.069082 + 0.997520, 0.000419, -0.005964, 0.070127 + 0.997445, 0.000438, -0.006142, 0.071172 + 0.997369, 0.000458, -0.006322, 0.072216 + 0.997291, 0.000478, -0.006505, 0.073261 + 0.997213, 0.000498, -0.006690, 0.074306 + 0.997133, 0.000520, -0.006878, 0.075350 + 0.997052, 0.000542, -0.007068, 0.076394 + 0.996971, 0.000564, -0.007261, 0.077439 + 0.996887, 0.000587, -0.007456, 0.078483 + 0.996803, 0.000611, -0.007654, 0.079527 + 0.996718, 0.000635, -0.007854, 0.080571 + 0.996631, 0.000660, -0.008057, 0.081615 + 0.996543, 0.000685, -0.008263, 0.082659 + 0.996455, 0.000712, -0.008470, 0.083703 + 0.996364, 0.000738, -0.008681, 0.084746 + 0.996273, 0.000766, -0.008893, 0.085790 + 0.996181, 0.000794, -0.009108, 0.086833 + 0.996087, 0.000823, -0.009326, 0.087877 + 0.995993, 0.000852, -0.009546, 0.088920 + 0.995897, 0.000882, -0.009769, 0.089963 + 0.995800, 0.000913, -0.009994, 0.091006 + 0.995702, 0.000945, -0.010221, 0.092049 + 0.995602, 0.000977, -0.010451, 0.093092 + 0.995502, 0.001010, -0.010683, 0.094134 + 0.995400, 0.001044, -0.010918, 0.095177 + 0.995297, 0.001078, -0.011155, 0.096219 + 0.995193, 0.001114, -0.011395, 0.097261 + 0.995088, 0.001150, -0.011637, 0.098304 + 0.994981, 0.001186, -0.011881, 0.099346 + 0.994874, 0.001224, -0.012128, 0.100388 + 0.994765, 0.001262, -0.012377, 0.101429 + 0.994655, 0.001301, -0.012629, 0.102471 + 0.994544, 0.001341, -0.012883, 0.103513 + 0.994431, 0.001381, -0.013139, 0.104554 + 0.994318, 0.001423, -0.013398, 0.105595 + 0.994203, 0.001465, -0.013659, 0.106637 + 0.994087, 0.001508, -0.013922, 0.107678 + 0.993970, 0.001552, -0.014188, 0.108718 + 0.993852, 0.001596, -0.014456, 0.109759 + 0.993732, 0.001642, -0.014726, 0.110800 + 0.993612, 0.001688, -0.014999, 0.111840 + 0.993490, 0.001735, -0.015274, 0.112881 + 0.993367, 0.001783, -0.015551, 0.113921 + 0.993242, 0.001832, -0.015831, 0.114961 + 0.993117, 0.001882, -0.016113, 0.116001 + 0.992990, 0.001933, -0.016397, 0.117040 + 0.992862, 0.001984, -0.016683, 0.118080 + 0.992733, 0.002036, -0.016972, 0.119119 + 0.992602, 0.002090, -0.017263, 0.120159 + 0.992471, 0.002144, -0.017556, 0.121198 + 0.992338, 0.002199, -0.017852, 0.122237 + 0.992204, 0.002255, -0.018150, 0.123275 + 0.992069, 0.002312, -0.018450, 0.124314 + 0.991932, 0.002370, -0.018752, 0.125352 + 0.991795, 0.002428, -0.019057, 0.126391 + 0.991656, 0.002488, -0.019363, 0.127429 + 0.991515, 0.002549, -0.019672, 0.128467 + 0.991374, 0.002610, -0.019983, 0.129505 + 0.991231, 0.002673, -0.020297, 0.130542 + 0.991088, 0.002737, -0.020612, 0.131580 + 0.990942, 0.002801, -0.020930, 0.132617 + 0.990796, 0.002867, -0.021250, 0.133654 + 0.990649, 0.002933, -0.021572, 0.134691 + 0.990500, 0.003000, -0.021896, 0.135727 + 0.990350, 0.003069, -0.022223, 0.136764 + 0.990198, 0.003138, -0.022551, 0.137800 + 0.990046, 0.003209, -0.022882, 0.138836 + 0.989892, 0.003280, -0.023214, 0.139872 + 0.989737, 0.003353, -0.023549, 0.140908 + 0.989581, 0.003426, -0.023886, 0.141944 + 0.989423, 0.003501, -0.024226, 0.142979 + 0.989264, 0.003576, -0.024567, 0.144014 + 0.989104, 0.003653, -0.024910, 0.145049 + 0.988943, 0.003731, -0.025255, 0.146084 + 0.988780, 0.003809, -0.025603, 0.147118 + 0.988616, 0.003889, -0.025952, 0.148153 + 0.988451, 0.003970, -0.026304, 0.149187 + 0.988285, 0.004052, -0.026657, 0.150221 + 0.988117, 0.004135, -0.027013, 0.151254 + 0.987948, 0.004219, -0.027371, 0.152288 + 0.987778, 0.004304, -0.027730, 0.153321 + 0.987606, 0.004391, -0.028092, 0.154354 + 0.987434, 0.004478, -0.028456, 0.155387 + 0.987260, 0.004566, -0.028821, 0.156420 + 0.987084, 0.004656, -0.029189, 0.157452 + 0.986908, 0.004747, -0.029559, 0.158484 + 0.986730, 0.004839, -0.029930, 0.159516 + 0.986550, 0.004932, -0.030304, 0.160548 + 0.986370, 0.005026, -0.030679, 0.161579 + 0.986188, 0.005121, -0.031057, 0.162610 + 0.986005, 0.005217, -0.031436, 0.163641 + 0.985821, 0.005315, -0.031817, 0.164672 + 0.985635, 0.005413, -0.032201, 0.165702 + 0.985448, 0.005513, -0.032586, 0.166733 + 0.985260, 0.005614, -0.032973, 0.167763 + 0.985070, 0.005717, -0.033361, 0.168792 + 0.984879, 0.005820, -0.033752, 0.169822 + 0.984687, 0.005924, -0.034145, 0.170851 + 0.984494, 0.006030, -0.034539, 0.171880 + 0.984299, 0.006137, -0.034935, 0.172909 + 0.984103, 0.006245, -0.035334, 0.173937 + 0.983905, 0.006354, -0.035734, 0.174965 + 0.983707, 0.006465, -0.036135, 0.175993 + 0.983507, 0.006577, -0.036539, 0.177021 + 0.983305, 0.006690, -0.036944, 0.178048 + 0.983103, 0.006804, -0.037351, 0.179076 + 0.982898, 0.006919, -0.037760, 0.180102 + 0.982693, 0.007036, -0.038171, 0.181129 + 0.982486, 0.007153, -0.038583, 0.182155 + 0.982278, 0.007272, -0.038998, 0.183181 + 0.982069, 0.007393, -0.039413, 0.184207 + 0.981858, 0.007514, -0.039831, 0.185232 + 0.981646, 0.007637, -0.040250, 0.186257 + 0.981433, 0.007761, -0.040671, 0.187282 + 0.981218, 0.007886, -0.041094, 0.188307 + 0.981002, 0.008013, -0.041519, 0.189331 + 0.980785, 0.008141, -0.041945, 0.190355 + 0.980566, 0.008270, -0.042373, 0.191379 + 0.980346, 0.008400, -0.042802, 0.192402 + 0.980125, 0.008532, -0.043233, 0.193425 + 0.979902, 0.008665, -0.043666, 0.194448 + 0.979678, 0.008799, -0.044100, 0.195470 + 0.979453, 0.008935, -0.044536, 0.196492 + 0.979226, 0.009071, -0.044973, 0.197514 + 0.978998, 0.009209, -0.045413, 0.198536 + 0.978768, 0.009349, -0.045853, 0.199557 + 0.978537, 0.009490, -0.046295, 0.200578 + 0.978305, 0.009632, -0.046739, 0.201598 + 0.978072, 0.009775, -0.047185, 0.202618 + 0.977837, 0.009919, -0.047632, 0.203638 + 0.977600, 0.010065, -0.048080, 0.204658 + 0.977363, 0.010213, -0.048530, 0.205677 + 0.977124, 0.010361, -0.048981, 0.206696 + 0.976883, 0.010511, -0.049434, 0.207714 + 0.976641, 0.010662, -0.049889, 0.208732 + 0.976398, 0.010815, -0.050344, 0.209750 + 0.976154, 0.010969, -0.050802, 0.210768 + 0.975908, 0.011124, -0.051261, 0.211785 + 0.975660, 0.011281, -0.051721, 0.212802 + 0.975412, 0.011439, -0.052182, 0.213818 + 0.975162, 0.011598, -0.052645, 0.214834 + 0.974910, 0.011759, -0.053110, 0.215850 + 0.974657, 0.011921, -0.053576, 0.216865 + 0.974403, 0.012084, -0.054043, 0.217880 + 0.974148, 0.012249, -0.054511, 0.218895 + 0.973891, 0.012415, -0.054981, 0.219909 + 0.973632, 0.012583, -0.055453, 0.220923 + 0.973373, 0.012751, -0.055925, 0.221936 + 0.973111, 0.012922, -0.056399, 0.222949 + 0.972849, 0.013093, -0.056874, 0.223962 + 0.972585, 0.013266, -0.057351, 0.224974 + 0.972320, 0.013441, -0.057829, 0.225986 + 0.972053, 0.013616, -0.058308, 0.226998 + 0.971785, 0.013793, -0.058788, 0.228009 + 0.971515, 0.013972, -0.059270, 0.229020 + 0.971244, 0.014152, -0.059753, 0.230030 + 0.970972, 0.014333, -0.060237, 0.231040 + 0.970698, 0.014516, -0.060722, 0.232049 + 0.970423, 0.014700, -0.061209, 0.233059 + 0.970147, 0.014885, -0.061696, 0.234067 + 0.969869, 0.015072, -0.062185, 0.235076 + 0.969589, 0.015261, -0.062675, 0.236084 + 0.969309, 0.015450, -0.063166, 0.237091 + 0.969026, 0.015642, -0.063659, 0.238098 + 0.968743, 0.015834, -0.064152, 0.239105 + 0.968458, 0.016028, -0.064647, 0.240111 + 0.968171, 0.016223, -0.065143, 0.241117 + 0.967884, 0.016420, -0.065639, 0.242122 + 0.967594, 0.016618, -0.066137, 0.243127 + 0.967304, 0.016818, -0.066636, 0.244132 + 0.967012, 0.017019, -0.067136, 0.245136 + 0.966718, 0.017221, -0.067637, 0.246140 + 0.966423, 0.017425, -0.068139, 0.247143 + 0.966127, 0.017631, -0.068643, 0.248146 + 0.965829, 0.017837, -0.069147, 0.249148 + 0.965530, 0.018045, -0.069652, 0.250150 + 0.965229, 0.018255, -0.070158, 0.251151 + 0.964927, 0.018466, -0.070665, 0.252152 + 0.964624, 0.018678, -0.071173, 0.253153 + 0.964319, 0.018892, -0.071682, 0.254153 + 0.964013, 0.019108, -0.072192, 0.255152 + 0.963705, 0.019324, -0.072703, 0.256151 + 0.963396, 0.019542, -0.073215, 0.257150 + 0.963085, 0.019762, -0.073727, 0.258148 + 0.962773, 0.019983, -0.074241, 0.259146 + 0.962460, 0.020206, -0.074755, 0.260143 + 0.962145, 0.020430, -0.075271, 0.261140 + 0.961829, 0.020655, -0.075787, 0.262136 + 0.961511, 0.020882, -0.076304, 0.263132 + 0.961192, 0.021110, -0.076822, 0.264127 + 0.960871, 0.021340, -0.077340, 0.265122 + 0.960549, 0.021571, -0.077860, 0.266116 + 0.960226, 0.021803, -0.078380, 0.267110 + 0.959901, 0.022037, -0.078901, 0.268103 + 0.959575, 0.022273, -0.079423, 0.269096 + 0.959247, 0.022510, -0.079945, 0.270088 + 0.958918, 0.022748, -0.080468, 0.271080 + 0.958587, 0.022988, -0.080992, 0.272071 + 0.958255, 0.023229, -0.081517, 0.273062 + 0.957921, 0.023472, -0.082042, 0.274052 + 0.957587, 0.023716, -0.082568, 0.275042 + 0.957250, 0.023961, -0.083095, 0.276031 + 0.956912, 0.024208, -0.083623, 0.277020 + 0.956573, 0.024457, -0.084151, 0.278008 + 0.956232, 0.024706, -0.084679, 0.278996 + 0.955890, 0.024958, -0.085208, 0.279983 + 0.955547, 0.025211, -0.085738, 0.280969 + 0.955202, 0.025465, -0.086269, 0.281955 + 0.954855, 0.025720, -0.086800, 0.282941 + 0.954507, 0.025977, -0.087332, 0.283926 + 0.954158, 0.026236, -0.087864, 0.284910 + 0.953807, 0.026496, -0.088396, 0.285894 + 0.953455, 0.026757, -0.088930, 0.286877 + 0.953102, 0.027020, -0.089464, 0.287860 + 0.952747, 0.027284, -0.089998, 0.288842 + 0.952390, 0.027550, -0.090533, 0.289824 + 0.952032, 0.027817, -0.091068, 0.290805 + 0.951673, 0.028086, -0.091604, 0.291785 + 0.951312, 0.028356, -0.092140, 0.292765 + 0.950950, 0.028627, -0.092676, 0.293745 + 0.950586, 0.028900, -0.093213, 0.294724 + 0.950221, 0.029175, -0.093751, 0.295702 + 0.949855, 0.029450, -0.094289, 0.296680 + 0.949487, 0.029727, -0.094827, 0.297657 + 0.949117, 0.030006, -0.095365, 0.298633 + 0.948746, 0.030286, -0.095904, 0.299609 + 0.948374, 0.030568, -0.096444, 0.300584 + 0.948000, 0.030850, -0.096983, 0.301559 + 0.947625, 0.031135, -0.097523, 0.302533 + 0.947249, 0.031420, -0.098064, 0.303507 + 0.946871, 0.031708, -0.098604, 0.304480 + 0.946491, 0.031996, -0.099145, 0.305452 + 0.946110, 0.032286, -0.099686, 0.306424 + 0.945728, 0.032578, -0.100228, 0.307395 + 0.945344, 0.032870, -0.100769, 0.308366 + 0.944959, 0.033165, -0.101311, 0.309336 + 0.944572, 0.033460, -0.101853, 0.310305 + 0.944184, 0.033757, -0.102395, 0.311274 + 0.943795, 0.034056, -0.102938, 0.312242 + 0.943404, 0.034355, -0.103481, 0.313209 + 0.943012, 0.034657, -0.104023, 0.314176 + 0.942618, 0.034959, -0.104566, 0.315142 + 0.942223, 0.035263, -0.105110, 0.316108 + 0.941826, 0.035569, -0.105653, 0.317073 + 0.941428, 0.035876, -0.106196, 0.318037 + 0.941029, 0.036184, -0.106740, 0.319001 + 0.940628, 0.036493, -0.107283, 0.319964 + 0.940226, 0.036804, -0.107827, 0.320927 + 0.939822, 0.037117, -0.108370, 0.321889 + 0.939417, 0.037431, -0.108914, 0.322850 + 0.939011, 0.037746, -0.109458, 0.323810 + 0.938603, 0.038062, -0.110002, 0.324770 + 0.938193, 0.038380, -0.110545, 0.325729 + 0.937783, 0.038699, -0.111089, 0.326688 + 0.937371, 0.039020, -0.111633, 0.327646 + 0.936957, 0.039342, -0.112177, 0.328603 + 0.936542, 0.039665, -0.112720, 0.329560 + 0.936126, 0.039990, -0.113264, 0.330516 + 0.935708, 0.040316, -0.113807, 0.331471 + 0.935289, 0.040643, -0.114351, 0.332426 + 0.934868, 0.040972, -0.114894, 0.333380 + 0.934446, 0.041302, -0.115438, 0.334333 + 0.934023, 0.041634, -0.115981, 0.335286 + 0.933598, 0.041966, -0.116524, 0.336238 + 0.933172, 0.042300, -0.117067, 0.337189 + 0.932744, 0.042636, -0.117609, 0.338139 + 0.932315, 0.042973, -0.118152, 0.339089 + 0.931885, 0.043311, -0.118694, 0.340039 + 0.931453, 0.043650, -0.119236, 0.340987 + 0.931020, 0.043991, -0.119778, 0.341935 + 0.930586, 0.044333, -0.120320, 0.342882 + 0.930150, 0.044676, -0.120861, 0.343829 + 0.929712, 0.045021, -0.121402, 0.344774 + 0.929274, 0.045367, -0.121943, 0.345719 + 0.928834, 0.045714, -0.122484, 0.346664 + 0.928392, 0.046063, -0.123024, 0.347607 + 0.927950, 0.046412, -0.123564, 0.348550 + 0.927505, 0.046764, -0.124104, 0.349493 + 0.927060, 0.047116, -0.124644, 0.350434 + 0.926613, 0.047470, -0.125183, 0.351375 + 0.926165, 0.047825, -0.125721, 0.352315 + 0.925715, 0.048181, -0.126260, 0.353255 + 0.925264, 0.048538, -0.126798, 0.354194 + 0.924812, 0.048897, -0.127335, 0.355132 + 0.924358, 0.049257, -0.127872, 0.356069 + 0.923903, 0.049619, -0.128409, 0.357005 + 0.923446, 0.049981, -0.128945, 0.357941 + 0.922988, 0.050345, -0.129481, 0.358876 + 0.922529, 0.050710, -0.130017, 0.359811 + 0.922069, 0.051076, -0.130552, 0.360745 + 0.921607, 0.051444, -0.131086, 0.361678 + 0.921144, 0.051812, -0.131620, 0.362610 + 0.920679, 0.052182, -0.132153, 0.363541 + 0.920213, 0.052554, -0.132686, 0.364472 + 0.919746, 0.052926, -0.133219, 0.365402 + 0.919278, 0.053299, -0.133751, 0.366331 + 0.918808, 0.053674, -0.134282, 0.367260 + 0.918336, 0.054050, -0.134813, 0.368188 + 0.917864, 0.054427, -0.135343, 0.369115 + 0.917390, 0.054806, -0.135872, 0.370041 + 0.916915, 0.055185, -0.136401, 0.370967 + 0.916438, 0.055566, -0.136929, 0.371892 + 0.915961, 0.055948, -0.137457, 0.372816 + 0.915481, 0.056331, -0.137984, 0.373739 + 0.915001, 0.056715, -0.138510, 0.374662 + 0.914519, 0.057101, -0.139036, 0.375583 + 0.914036, 0.057487, -0.139561, 0.376505 + 0.913552, 0.057875, -0.140085, 0.377425 + 0.913066, 0.058264, -0.140609, 0.378344 + 0.912579, 0.058654, -0.141132, 0.379263 + 0.912091, 0.059045, -0.141654, 0.380181 + 0.911601, 0.059437, -0.142176, 0.381099 + 0.911111, 0.059830, -0.142696, 0.382015 + 0.910618, 0.060225, -0.143216, 0.382931 + 0.910125, 0.060620, -0.143735, 0.383846 + 0.909630, 0.061017, -0.144253, 0.384760 + 0.909134, 0.061415, -0.144771, 0.385674 + 0.908637, 0.061814, -0.145288, 0.386586 + 0.908139, 0.062214, -0.145803, 0.387498 + 0.907639, 0.062615, -0.146319, 0.388409 + 0.907138, 0.063017, -0.146833, 0.389320 + 0.906636, 0.063420, -0.147346, 0.390229 + 0.906132, 0.063824, -0.147858, 0.391138 + 0.905627, 0.064229, -0.148370, 0.392046 + 0.905121, 0.064636, -0.148881, 0.392954 + 0.904614, 0.065043, -0.149390, 0.393860 + 0.904105, 0.065451, -0.149899, 0.394766 + 0.903595, 0.065861, -0.150407, 0.395671 + 0.903084, 0.066271, -0.150914, 0.396575 + 0.902572, 0.066683, -0.151420, 0.397478 + 0.902059, 0.067095, -0.151925, 0.398381 + 0.901544, 0.067509, -0.152429, 0.399283 + 0.901028, 0.067923, -0.152932, 0.400184 + 0.900511, 0.068339, -0.153434, 0.401084 + 0.899992, 0.068755, -0.153935, 0.401983 + 0.899473, 0.069173, -0.154434, 0.402882 + 0.898952, 0.069591, -0.154933, 0.403780 + 0.898430, 0.070010, -0.155431, 0.404677 + 0.897907, 0.070431, -0.155928, 0.405573 + 0.897382, 0.070852, -0.156424, 0.406469 + 0.896857, 0.071274, -0.156918, 0.407363 + 0.896330, 0.071697, -0.157412, 0.408257 + 0.895802, 0.072121, -0.157904, 0.409150 + 0.895272, 0.072546, -0.158395, 0.410043 + 0.894742, 0.072972, -0.158886, 0.410934 + 0.894211, 0.073399, -0.159375, 0.411825 + 0.893678, 0.073827, -0.159862, 0.412715 + 0.893144, 0.074256, -0.160349, 0.413604 + 0.892609, 0.074685, -0.160834, 0.414492 + 0.892073, 0.075116, -0.161319, 0.415380 + 0.891535, 0.075547, -0.161802, 0.416267 + 0.890997, 0.075979, -0.162284, 0.417153 + 0.890457, 0.076412, -0.162764, 0.418038 + 0.889916, 0.076846, -0.163244, 0.418922 + 0.889374, 0.077281, -0.163722, 0.419806 + 0.888831, 0.077716, -0.164199, 0.420688 + 0.888287, 0.078153, -0.164675, 0.421570 + 0.887741, 0.078590, -0.165149, 0.422451 + 0.887195, 0.079028, -0.165622, 0.423332 + 0.886647, 0.079467, -0.166094, 0.424211 + 0.886098, 0.079906, -0.166565, 0.425090 + 0.885548, 0.080347, -0.167034, 0.425968 + 0.884997, 0.080788, -0.167502, 0.426845 + 0.884445, 0.081230, -0.167968, 0.427721 + 0.883892, 0.081673, -0.168433, 0.428597 + 0.883337, 0.082116, -0.168897, 0.429471 + 0.882782, 0.082561, -0.169359, 0.430345 + 0.882225, 0.083006, -0.169821, 0.431218 + 0.881668, 0.083451, -0.170280, 0.432091 + 0.881109, 0.083898, -0.170738, 0.432962 + 0.880549, 0.084345, -0.171195, 0.433833 + 0.879988, 0.084793, -0.171651, 0.434703 + 0.879427, 0.085242, -0.172105, 0.435572 + 0.878864, 0.085691, -0.172557, 0.436440 + 0.878300, 0.086141, -0.173008, 0.437307 + 0.877734, 0.086592, -0.173458, 0.438174 + 0.877168, 0.087043, -0.173906, 0.439040 + 0.876601, 0.087495, -0.174353, 0.439905 + 0.876033, 0.087948, -0.174798, 0.440769 + 0.875463, 0.088402, -0.175242, 0.441633 + 0.874893, 0.088856, -0.175684, 0.442495 + 0.874322, 0.089310, -0.176124, 0.443357 + 0.873749, 0.089766, -0.176564, 0.444218 + 0.873176, 0.090222, -0.177001, 0.445078 + 0.872601, 0.090678, -0.177437, 0.445938 + 0.872026, 0.091135, -0.177872, 0.446796 + 0.871449, 0.091593, -0.178304, 0.447654 + 0.870872, 0.092051, -0.178736, 0.448511 + 0.870294, 0.092510, -0.179165, 0.449367 + 0.869714, 0.092970, -0.179594, 0.450222 + 0.869134, 0.093430, -0.180020, 0.451077 + 0.868552, 0.093890, -0.180445, 0.451931 + 0.867970, 0.094351, -0.180868, 0.452784 + 0.867386, 0.094813, -0.181290, 0.453636 + 0.866802, 0.095275, -0.181710, 0.454487 + 0.866216, 0.095738, -0.182128, 0.455338 + 0.865630, 0.096201, -0.182545, 0.456188 + 0.865043, 0.096665, -0.182960, 0.457037 + 0.864455, 0.097129, -0.183373, 0.457885 + 0.863865, 0.097594, -0.183785, 0.458732 + 0.863275, 0.098059, -0.184194, 0.459579 + 0.862684, 0.098525, -0.184603, 0.460425 + 0.862092, 0.098991, -0.185009, 0.461270 + 0.861499, 0.099457, -0.185414, 0.462114 + 0.860905, 0.099924, -0.185817, 0.462957 + 0.860310, 0.100392, -0.186218, 0.463800 + 0.859715, 0.100859, -0.186618, 0.464642 + 0.859118, 0.101328, -0.187015, 0.465483 + 0.858520, 0.101796, -0.187411, 0.466323 + 0.857922, 0.102265, -0.187806, 0.467162 + 0.857323, 0.102735, -0.188198, 0.468001 + 0.856722, 0.103205, -0.188589, 0.468839 + 0.856121, 0.103675, -0.188977, 0.469676 + 0.855519, 0.104145, -0.189364, 0.470512 + 0.854916, 0.104616, -0.189750, 0.471348 + 0.854312, 0.105087, -0.190133, 0.472183 + 0.853708, 0.105559, -0.190515, 0.473017 + 0.853102, 0.106031, -0.190894, 0.473850 + 0.852496, 0.106503, -0.191272, 0.474682 + 0.851888, 0.106976, -0.191648, 0.475514 + 0.851280, 0.107448, -0.192022, 0.476345 + 0.850671, 0.107921, -0.192394, 0.477175 + 0.850062, 0.108395, -0.192765, 0.478004 + 0.849451, 0.108868, -0.193133, 0.478832 + 0.848839, 0.109342, -0.193500, 0.479660 + 0.848227, 0.109816, -0.193864, 0.480487 + 0.847614, 0.110291, -0.194227, 0.481313 + 0.847000, 0.110765, -0.194588, 0.482139 + 0.846385, 0.111240, -0.194947, 0.482963 + 0.845769, 0.111715, -0.195304, 0.483787 + 0.845153, 0.112191, -0.195659, 0.484610 + 0.844536, 0.112666, -0.196012, 0.485433 + 0.843918, 0.113142, -0.196363, 0.486254 + 0.843299, 0.113617, -0.196712, 0.487075 + 0.842679, 0.114093, -0.197059, 0.487895 + 0.842059, 0.114570, -0.197404, 0.488715 + 0.841438, 0.115046, -0.197747, 0.489533 + 0.840816, 0.115522, -0.198089, 0.490351 + 0.840193, 0.115999, -0.198428, 0.491168 + 0.839570, 0.116475, -0.198765, 0.491984 + 0.838946, 0.116952, -0.199100, 0.492800 + 0.838321, 0.117429, -0.199433, 0.493615 + 0.837695, 0.117906, -0.199764, 0.494429 + 0.837068, 0.118383, -0.200093, 0.495242 + 0.836441, 0.118860, -0.200420, 0.496055 + 0.835813, 0.119337, -0.200745, 0.496866 + 0.835184, 0.119814, -0.201068, 0.497678 + 0.834555, 0.120292, -0.201389, 0.498488 + 0.833925, 0.120769, -0.201708, 0.499297 + 0.833294, 0.121246, -0.202025, 0.500106 + 0.832663, 0.121724, -0.202339, 0.500914 + 0.832030, 0.122201, -0.202652, 0.501722 + 0.831397, 0.122678, -0.202962, 0.502529 + 0.830764, 0.123155, -0.203271, 0.503335 + 0.830129, 0.123633, -0.203577, 0.504140 + 0.829494, 0.124110, -0.203881, 0.504944 + 0.828858, 0.124587, -0.204183, 0.505748 + 0.828222, 0.125064, -0.204483, 0.506551 + 0.827585, 0.125541, -0.204781, 0.507353 + 0.826947, 0.126018, -0.205076, 0.508155 + 0.826309, 0.126495, -0.205370, 0.508956 + 0.825670, 0.126972, -0.205661, 0.509756 + 0.825030, 0.127449, -0.205950, 0.510556 + 0.824389, 0.127925, -0.206237, 0.511354 + 0.823748, 0.128402, -0.206522, 0.512152 + 0.823107, 0.128878, -0.206805, 0.512950 + 0.822464, 0.129354, -0.207085, 0.513746 + 0.821821, 0.129830, -0.207364, 0.514542 + 0.821178, 0.130306, -0.207640, 0.515338 + 0.820534, 0.130782, -0.207914, 0.516132 + 0.819889, 0.131258, -0.208186, 0.516926 + 0.819243, 0.131733, -0.208455, 0.517719 + 0.818597, 0.132208, -0.208723, 0.518512 + 0.817951, 0.132683, -0.208988, 0.519304 + 0.817303, 0.133158, -0.209251, 0.520095 + 0.816655, 0.133632, -0.209511, 0.520885 + 0.816007, 0.134106, -0.209770, 0.521675 + 0.815358, 0.134580, -0.210026, 0.522464 + 0.814708, 0.135054, -0.210280, 0.523252 + 0.814058, 0.135528, -0.210532, 0.524040 + 0.813407, 0.136001, -0.210782, 0.524827 + 0.812756, 0.136474, -0.211029, 0.525614 + 0.812104, 0.136946, -0.211274, 0.526399 + 0.811451, 0.137418, -0.211517, 0.527184 + 0.810798, 0.137890, -0.211757, 0.527969 + 0.810145, 0.138362, -0.211996, 0.528752 + 0.809491, 0.138833, -0.212232, 0.529536 + 0.808836, 0.139304, -0.212465, 0.530318 + 0.808181, 0.139775, -0.212697, 0.531100 + 0.807525, 0.140245, -0.212926, 0.531881 + 0.806869, 0.140715, -0.213153, 0.532661 + 0.806212, 0.141184, -0.213377, 0.533441 + 0.805555, 0.141653, -0.213600, 0.534220 + 0.804897, 0.142122, -0.213820, 0.534999 + 0.804238, 0.142590, -0.214037, 0.535777 + 0.803579, 0.143058, -0.214253, 0.536554 + 0.802920, 0.143525, -0.214466, 0.537331 + 0.802260, 0.143992, -0.214677, 0.538107 + 0.801600, 0.144458, -0.214885, 0.538882 + 0.800939, 0.144924, -0.215091, 0.539657 + 0.800278, 0.145390, -0.215295, 0.540431 + 0.799616, 0.145855, -0.215496, 0.541205 + 0.798953, 0.146319, -0.215695, 0.541978 + 0.798291, 0.146783, -0.215892, 0.542750 + 0.797627, 0.147247, -0.216087, 0.543522 + 0.796963, 0.147709, -0.216279, 0.544293 + 0.796299, 0.148172, -0.216469, 0.545063 + 0.795635, 0.148634, -0.216656, 0.545833 + 0.794969, 0.149095, -0.216841, 0.546602 + 0.794304, 0.149556, -0.217024, 0.547371 + 0.793638, 0.150016, -0.217204, 0.548139 + 0.792971, 0.150475, -0.217382, 0.548907 + 0.792304, 0.150934, -0.217558, 0.549674 + 0.791637, 0.151393, -0.217731, 0.550440 + 0.790969, 0.151850, -0.217902, 0.551206 + 0.790301, 0.152307, -0.218071, 0.551971 + 0.789632, 0.152764, -0.218237, 0.552735 + 0.788963, 0.153220, -0.218401, 0.553499 + 0.788294, 0.153675, -0.218562, 0.554263 + 0.787624, 0.154129, -0.218721, 0.555026 + 0.786954, 0.154583, -0.218878, 0.555788 + 0.786283, 0.155036, -0.219032, 0.556550 + 0.785612, 0.155489, -0.219184, 0.557311 + 0.784940, 0.155940, -0.219334, 0.558072 + 0.784269, 0.156391, -0.219481, 0.558832 + 0.783596, 0.156841, -0.219625, 0.559591 + 0.782924, 0.157291, -0.219768, 0.560350 + 0.782251, 0.157740, -0.219908, 0.561109 + 0.781577, 0.158188, -0.220045, 0.561866 + 0.780903, 0.158635, -0.220180, 0.562624 + 0.780229, 0.159082, -0.220313, 0.563381 + 0.779555, 0.159527, -0.220443, 0.564137 + 0.778880, 0.159972, -0.220571, 0.564893 + 0.778204, 0.160416, -0.220697, 0.565648 + 0.777529, 0.160860, -0.220820, 0.566402 + 0.776853, 0.161302, -0.220941, 0.567157 + 0.776176, 0.161744, -0.221059, 0.567910 + 0.775500, 0.162185, -0.221175, 0.568663 + 0.774823, 0.162624, -0.221288, 0.569416 + 0.774145, 0.163064, -0.221399, 0.570168 + 0.773468, 0.163502, -0.221508, 0.570920 + 0.772790, 0.163939, -0.221614, 0.571671 + 0.772111, 0.164375, -0.221718, 0.572421 + 0.771432, 0.164811, -0.221819, 0.573171 + 0.770753, 0.165246, -0.221918, 0.573921 + 0.770074, 0.165679, -0.222015, 0.574670 + 0.769394, 0.166112, -0.222109, 0.575419 + 0.768714, 0.166544, -0.222201, 0.576167 + 0.768034, 0.166975, -0.222290, 0.576914 + 0.767354, 0.167405, -0.222377, 0.577661 + 0.766673, 0.167834, -0.222461, 0.578408 + 0.765991, 0.168262, -0.222543, 0.579154 + 0.765310, 0.168689, -0.222623, 0.579900 + 0.764628, 0.169115, -0.222700, 0.580645 + 0.763946, 0.169540, -0.222775, 0.581390 + 0.763263, 0.169964, -0.222847, 0.582134 + 0.762581, 0.170387, -0.222917, 0.582878 + 0.761898, 0.170808, -0.222985, 0.583622 + 0.761215, 0.171229, -0.223050, 0.584364 + 0.760531, 0.171649, -0.223112, 0.585107 + 0.759847, 0.172068, -0.223172, 0.585849 + 0.759163, 0.172486, -0.223230, 0.586591 + 0.758479, 0.172902, -0.223285, 0.587332 + 0.757794, 0.173318, -0.223338, 0.588072 + 0.757109, 0.173732, -0.223389, 0.588813 + 0.756424, 0.174145, -0.223437, 0.589552 + 0.755739, 0.174558, -0.223482, 0.590292 + 0.755053, 0.174969, -0.223526, 0.591031 + 0.754367, 0.175379, -0.223566, 0.591769 + 0.753681, 0.175787, -0.223605, 0.592507 + 0.752994, 0.176195, -0.223641, 0.593245 + 0.752308, 0.176601, -0.223674, 0.593982 + 0.751621, 0.177007, -0.223705, 0.594719 + 0.750933, 0.177411, -0.223734, 0.595456 + 0.750246, 0.177814, -0.223760, 0.596192 + 0.749558, 0.178215, -0.223784, 0.596927 + 0.748870, 0.178616, -0.223805, 0.597663 + 0.748182, 0.179015, -0.223824, 0.598398 + 0.747494, 0.179413, -0.223841, 0.599132 + 0.746805, 0.179810, -0.223855, 0.599866 + 0.746116, 0.180205, -0.223867, 0.600600 + 0.745427, 0.180600, -0.223876, 0.601333 + 0.744738, 0.180993, -0.223883, 0.602066 + 0.744049, 0.181384, -0.223887, 0.602798 + 0.743359, 0.181775, -0.223889, 0.603530 + 0.742669, 0.182164, -0.223889, 0.604262 + 0.741979, 0.182552, -0.223886, 0.604994 + 0.741288, 0.182938, -0.223881, 0.605725 + 0.740598, 0.183324, -0.223873, 0.606455 + 0.739907, 0.183708, -0.223863, 0.607186 + 0.739216, 0.184090, -0.223851, 0.607915 + 0.738525, 0.184471, -0.223836, 0.608645 + 0.737833, 0.184851, -0.223819, 0.609374 + 0.737142, 0.185230, -0.223799, 0.610103 + 0.736450, 0.185607, -0.223777, 0.610831 + 0.735758, 0.185983, -0.223753, 0.611560 + 0.735066, 0.186357, -0.223726, 0.612287 + 0.734373, 0.186730, -0.223697, 0.613015 + 0.733681, 0.187102, -0.223665, 0.613742 + 0.732988, 0.187472, -0.223632, 0.614469 + 0.732295, 0.187840, -0.223595, 0.615195 + 0.731602, 0.188208, -0.223556, 0.615921 + 0.730909, 0.188574, -0.223515, 0.616647 + 0.730215, 0.188938, -0.223472, 0.617372 + 0.729521, 0.189301, -0.223426, 0.618098 + 0.728827, 0.189662, -0.223378, 0.618822 + 0.728133, 0.190022, -0.223327, 0.619547 + 0.727439, 0.190381, -0.223274, 0.620271 + 0.726745, 0.190738, -0.223219, 0.620995 + 0.726050, 0.191093, -0.223161, 0.621718 + 0.725355, 0.191448, -0.223101, 0.622442 + 0.724660, 0.191800, -0.223039, 0.623165 + 0.723965, 0.192151, -0.222974, 0.623887 + 0.723270, 0.192500, -0.222907, 0.624609 + 0.722574, 0.192848, -0.222837, 0.625331 + 0.721879, 0.193195, -0.222766, 0.626053 + 0.721183, 0.193539, -0.222691, 0.626775 + 0.720487, 0.193883, -0.222615, 0.627496 + 0.719791, 0.194224, -0.222536, 0.628217 + 0.719094, 0.194564, -0.222455, 0.628937 + 0.718398, 0.194903, -0.222371, 0.629657 + 0.717701, 0.195240, -0.222285, 0.630377 + 0.717004, 0.195575, -0.222197, 0.631097 + 0.716307, 0.195909, -0.222107, 0.631817 + 0.715610, 0.196241, -0.222014, 0.632536 + 0.714913, 0.196571, -0.221919, 0.633255 + 0.714215, 0.196900, -0.221821, 0.633973 + 0.713518, 0.197227, -0.221722, 0.634692 + 0.712820, 0.197552, -0.221620, 0.635410 + 0.712122, 0.197876, -0.221515, 0.636128 + 0.711424, 0.198198, -0.221409, 0.636845 + 0.710726, 0.198519, -0.221300, 0.637562 + 0.710027, 0.198837, -0.221188, 0.638280 + 0.709329, 0.199154, -0.221075, 0.638996 + 0.708630, 0.199470, -0.220959, 0.639713 + 0.707931, 0.199783, -0.220841, 0.640429 + 0.707232, 0.200095, -0.220720, 0.641145 + 0.706533, 0.200406, -0.220598, 0.641861 + 0.705833, 0.200714, -0.220473, 0.642577 + 0.705134, 0.201021, -0.220346, 0.643292 + 0.704434, 0.201326, -0.220216, 0.644007 + 0.703734, 0.201629, -0.220085, 0.644722 + 0.703034, 0.201931, -0.219951, 0.645437 + 0.702334, 0.202230, -0.219814, 0.646151 + 0.701634, 0.202528, -0.219676, 0.646865 + 0.700934, 0.202824, -0.219535, 0.647579 + 0.700233, 0.203119, -0.219392, 0.648293 + 0.699532, 0.203411, -0.219247, 0.649006 + 0.698831, 0.203702, -0.219100, 0.649719 + 0.698130, 0.203991, -0.218950, 0.650433 + 0.697429, 0.204278, -0.218798, 0.651145 + 0.696728, 0.204563, -0.218644, 0.651858 + 0.696026, 0.204847, -0.218488, 0.652570 + 0.695325, 0.205128, -0.218329, 0.653282 + 0.694623, 0.205408, -0.218169, 0.653994 + 0.693921, 0.205686, -0.218006, 0.654706 + 0.693219, 0.205962, -0.217841, 0.655418 + 0.692517, 0.206236, -0.217674, 0.656129 + 0.691814, 0.206509, -0.217504, 0.656840 + 0.691112, 0.206779, -0.217333, 0.657551 + 0.690409, 0.207047, -0.217159, 0.658262 + 0.689706, 0.207314, -0.216983, 0.658972 + 0.689003, 0.207579, -0.216805, 0.659683 + 0.688300, 0.207842, -0.216625, 0.660393 + 0.687597, 0.208103, -0.216442, 0.661103 + 0.686893, 0.208362, -0.216258, 0.661813 + 0.686190, 0.208619, -0.216071, 0.662522 + 0.685486, 0.208874, -0.215882, 0.663231 + 0.684782, 0.209127, -0.215691, 0.663941 + 0.684078, 0.209378, -0.215498, 0.664650 + 0.683373, 0.209627, -0.215303, 0.665358 + 0.682669, 0.209875, -0.215106, 0.666067 + 0.681964, 0.210120, -0.214906, 0.666775 + 0.681260, 0.210363, -0.214705, 0.667484 + 0.680555, 0.210605, -0.214501, 0.668192 + 0.679850, 0.210844, -0.214296, 0.668900 + 0.679144, 0.211081, -0.214088, 0.669607 + 0.678439, 0.211317, -0.213878, 0.670315 + 0.677733, 0.211550, -0.213666, 0.671022 + 0.677028, 0.211782, -0.213452, 0.671729 + 0.676322, 0.212011, -0.213236, 0.672436 + 0.675616, 0.212238, -0.213018, 0.673143 + 0.674910, 0.212463, -0.212798, 0.673850 + 0.674203, 0.212687, -0.212575, 0.674556 + 0.673497, 0.212908, -0.212351, 0.675263 + 0.672790, 0.213127, -0.212125, 0.675969 + 0.672083, 0.213344, -0.211896, 0.676675 + 0.671376, 0.213559, -0.211666, 0.677381 + 0.670669, 0.213772, -0.211434, 0.678086 + 0.669961, 0.213983, -0.211199, 0.678792 + 0.669253, 0.214192, -0.210963, 0.679497 + 0.668546, 0.214399, -0.210725, 0.680202 + 0.667838, 0.214603, -0.210484, 0.680907 + 0.667130, 0.214806, -0.210242, 0.681612 + 0.666421, 0.215006, -0.209998, 0.682317 + 0.665713, 0.215205, -0.209751, 0.683021 + 0.665004, 0.215401, -0.209503, 0.683726 + 0.664295, 0.215595, -0.209253, 0.684430 + 0.663586, 0.215787, -0.209001, 0.685134 + 0.662877, 0.215977, -0.208746, 0.685838 + 0.662167, 0.216165, -0.208490, 0.686541 + 0.661458, 0.216350, -0.208232, 0.687245 + 0.660748, 0.216534, -0.207972, 0.687948 + 0.660038, 0.216715, -0.207710, 0.688652 + 0.659328, 0.216894, -0.207447, 0.689355 + 0.658617, 0.217071, -0.207181, 0.690058 + 0.657907, 0.217246, -0.206913, 0.690760 + 0.657196, 0.217419, -0.206644, 0.691463 + 0.656485, 0.217589, -0.206373, 0.692166 + 0.655773, 0.217758, -0.206099, 0.692868 + 0.655062, 0.217924, -0.205824, 0.693570 + 0.654350, 0.218088, -0.205547, 0.694272 + 0.653638, 0.218249, -0.205268, 0.694974 + 0.652926, 0.218409, -0.204988, 0.695676 + 0.652214, 0.218566, -0.204705, 0.696377 + 0.651502, 0.218722, -0.204421, 0.697079 + 0.650789, 0.218874, -0.204135, 0.697780 + 0.650076, 0.219025, -0.203847, 0.698481 + 0.649363, 0.219174, -0.203557, 0.699182 + 0.648650, 0.219320, -0.203265, 0.699883 + 0.647936, 0.219464, -0.202972, 0.700583 + 0.647222, 0.219606, -0.202676, 0.701284 + 0.646508, 0.219745, -0.202379, 0.701984 + 0.645794, 0.219883, -0.202081, 0.702684 + 0.645079, 0.220018, -0.201780, 0.703384 + 0.644365, 0.220151, -0.201478, 0.704084 + 0.643650, 0.220281, -0.201174, 0.704784 + 0.642934, 0.220410, -0.200868, 0.705484 + 0.642219, 0.220536, -0.200560, 0.706183 + 0.641503, 0.220659, -0.200251, 0.706882 + 0.640787, 0.220781, -0.199940, 0.707581 + 0.640071, 0.220900, -0.199627, 0.708280 + 0.639355, 0.221017, -0.199312, 0.708979 + 0.638638, 0.221132, -0.198996, 0.709678 + 0.637921, 0.221244, -0.198678, 0.710376 + 0.637204, 0.221354, -0.198359, 0.711075 + 0.636486, 0.221462, -0.198037, 0.711773 + 0.635769, 0.221568, -0.197714, 0.712471 + 0.635051, 0.221671, -0.197390, 0.713169 + 0.634333, 0.221772, -0.197064, 0.713867 + 0.633614, 0.221870, -0.196736, 0.714564 + 0.632895, 0.221967, -0.196406, 0.715262 + 0.632176, 0.222061, -0.196075, 0.715959 + 0.631457, 0.222152, -0.195742, 0.716656 + 0.630737, 0.222242, -0.195408, 0.717353 + 0.630017, 0.222329, -0.195071, 0.718049 + 0.629297, 0.222413, -0.194734, 0.718746 + 0.628577, 0.222496, -0.194395, 0.719442 + 0.627856, 0.222576, -0.194054, 0.720139 + 0.627135, 0.222653, -0.193711, 0.720835 + 0.626414, 0.222729, -0.193367, 0.721531 + 0.625692, 0.222802, -0.193022, 0.722226 + 0.624971, 0.222872, -0.192675, 0.722922 + 0.624248, 0.222941, -0.192326, 0.723617 + 0.623526, 0.223007, -0.191976, 0.724313 + 0.622803, 0.223070, -0.191624, 0.725008 + 0.622080, 0.223131, -0.191271, 0.725703 + 0.621357, 0.223190, -0.190916, 0.726397 + 0.620633, 0.223247, -0.190560, 0.727092 + 0.619909, 0.223301, -0.190202, 0.727786 + 0.619185, 0.223353, -0.189843, 0.728480 + 0.618460, 0.223402, -0.189482, 0.729174 + 0.617735, 0.223449, -0.189120, 0.729868 + 0.617010, 0.223494, -0.188756, 0.730562 + 0.616284, 0.223536, -0.188391, 0.731255 + 0.615558, 0.223576, -0.188024, 0.731949 + 0.614832, 0.223614, -0.187656, 0.732642 + 0.614105, 0.223649, -0.187287, 0.733334 + 0.613378, 0.223682, -0.186916, 0.734027 + 0.612651, 0.223712, -0.186544, 0.734720 + 0.611924, 0.223740, -0.186170, 0.735412 + 0.611196, 0.223765, -0.185795, 0.736104 + 0.610467, 0.223789, -0.185419, 0.736796 + 0.609739, 0.223809, -0.185041, 0.737488 + 0.609010, 0.223828, -0.184662, 0.738179 + 0.608280, 0.223844, -0.184281, 0.738870 + 0.607551, 0.223857, -0.183899, 0.739562 + 0.606820, 0.223869, -0.183516, 0.740252 + 0.606090, 0.223877, -0.183131, 0.740943 + 0.605359, 0.223884, -0.182745, 0.741634 + 0.604628, 0.223888, -0.182358, 0.742324 + 0.603896, 0.223889, -0.181970, 0.743014 + 0.603164, 0.223889, -0.181580, 0.743704 + 0.602432, 0.223885, -0.181189, 0.744393 + 0.601699, 0.223880, -0.180796, 0.745083 + 0.600966, 0.223872, -0.180403, 0.745772 + 0.600233, 0.223861, -0.180008, 0.746461 + 0.599499, 0.223848, -0.179612, 0.747150 + 0.598765, 0.223833, -0.179214, 0.747838 + 0.598030, 0.223815, -0.178816, 0.748526 + 0.597295, 0.223795, -0.178416, 0.749214 + 0.596560, 0.223772, -0.178015, 0.749902 + 0.595824, 0.223747, -0.177612, 0.750590 + 0.595088, 0.223720, -0.177209, 0.751277 + 0.594351, 0.223690, -0.176804, 0.751964 + 0.593614, 0.223658, -0.176398, 0.752651 + 0.592876, 0.223623, -0.175991, 0.753338 + 0.592138, 0.223586, -0.175583, 0.754024 + 0.591400, 0.223546, -0.175174, 0.754710 + 0.590661, 0.223504, -0.174763, 0.755396 + 0.589922, 0.223460, -0.174352, 0.756081 + 0.589183, 0.223413, -0.173939, 0.756767 + 0.588443, 0.223364, -0.173525, 0.757452 + 0.587702, 0.223312, -0.173110, 0.758136 + 0.586961, 0.223258, -0.172694, 0.758821 + 0.586220, 0.223202, -0.172277, 0.759505 + 0.585478, 0.223143, -0.171859, 0.760189 + 0.584736, 0.223081, -0.171439, 0.760873 + 0.583993, 0.223017, -0.171019, 0.761556 + 0.583250, 0.222951, -0.170598, 0.762239 + 0.582506, 0.222883, -0.170175, 0.762922 + 0.581762, 0.222811, -0.169752, 0.763605 + 0.581018, 0.222738, -0.169327, 0.764287 + 0.580273, 0.222662, -0.168902, 0.764969 + 0.579527, 0.222584, -0.168475, 0.765651 + 0.578781, 0.222503, -0.168048, 0.766332 + 0.578035, 0.222420, -0.167619, 0.767013 + 0.577288, 0.222334, -0.167190, 0.767694 + 0.576541, 0.222246, -0.166760, 0.768374 + 0.575793, 0.222155, -0.166328, 0.769054 + 0.575044, 0.222062, -0.165896, 0.769734 + 0.574295, 0.221967, -0.165463, 0.770414 + 0.573546, 0.221869, -0.165028, 0.771093 + 0.572796, 0.221769, -0.164593, 0.771772 + 0.572046, 0.221667, -0.164157, 0.772450 + 0.571295, 0.221561, -0.163721, 0.773129 + 0.570544, 0.221454, -0.163283, 0.773807 + 0.569792, 0.221344, -0.162844, 0.774484 + 0.569040, 0.221232, -0.162405, 0.775161 + 0.568287, 0.221117, -0.161964, 0.775838 + 0.567533, 0.221000, -0.161523, 0.776515 + 0.566780, 0.220881, -0.161081, 0.777191 + 0.566025, 0.220759, -0.160638, 0.777867 + 0.565270, 0.220634, -0.160194, 0.778542 + 0.564515, 0.220508, -0.159750, 0.779217 + 0.563759, 0.220379, -0.159305, 0.779892 + 0.563002, 0.220247, -0.158858, 0.780566 + 0.562245, 0.220113, -0.158412, 0.781240 + 0.561488, 0.219977, -0.157964, 0.781914 + 0.560729, 0.219838, -0.157516, 0.782587 + 0.559971, 0.219697, -0.157066, 0.783260 + 0.559211, 0.219553, -0.156616, 0.783932 + 0.558452, 0.219407, -0.156166, 0.784605 + 0.557691, 0.219259, -0.155714, 0.785276 + 0.556930, 0.219108, -0.155262, 0.785948 + 0.556169, 0.218955, -0.154810, 0.786618 + 0.555407, 0.218800, -0.154356, 0.787289 + 0.554644, 0.218642, -0.153902, 0.787959 + 0.553881, 0.218482, -0.153447, 0.788629 + 0.553117, 0.218319, -0.152992, 0.789298 + 0.552353, 0.218154, -0.152536, 0.789967 + 0.551588, 0.217987, -0.152079, 0.790635 + 0.550823, 0.217817, -0.151621, 0.791303 + 0.550057, 0.217645, -0.151163, 0.791971 + 0.549290, 0.217470, -0.150705, 0.792638 + 0.548523, 0.217294, -0.150246, 0.793305 + 0.547755, 0.217114, -0.149786, 0.793971 + 0.546987, 0.216933, -0.149325, 0.794637 + 0.546218, 0.216749, -0.148864, 0.795302 + 0.545448, 0.216563, -0.148403, 0.795967 + 0.544678, 0.216374, -0.147941, 0.796631 + 0.543907, 0.216183, -0.147478, 0.797295 + 0.543136, 0.215990, -0.147015, 0.797959 + 0.542364, 0.215794, -0.146551, 0.798622 + 0.541591, 0.215596, -0.146087, 0.799285 + 0.540818, 0.215396, -0.145622, 0.799947 + 0.540044, 0.215193, -0.145157, 0.800608 + 0.539270, 0.214988, -0.144691, 0.801269 + 0.538495, 0.214781, -0.144225, 0.801930 + 0.537719, 0.214571, -0.143758, 0.802590 + 0.536943, 0.214360, -0.143291, 0.803250 + 0.536166, 0.214145, -0.142824, 0.803909 + 0.535388, 0.213929, -0.142356, 0.804568 + 0.534610, 0.213710, -0.141887, 0.805226 + 0.533831, 0.213489, -0.141419, 0.805883 + 0.533051, 0.213265, -0.140949, 0.806540 + 0.532271, 0.213040, -0.140480, 0.807197 + 0.531490, 0.212812, -0.140010, 0.807853 + 0.530709, 0.212581, -0.139539, 0.808508 + 0.529927, 0.212349, -0.139069, 0.809163 + 0.529144, 0.212114, -0.138598, 0.809818 + 0.528361, 0.211877, -0.138126, 0.810472 + 0.527577, 0.211637, -0.137654, 0.811125 + 0.526792, 0.211396, -0.137182, 0.811778 + 0.526007, 0.211152, -0.136710, 0.812430 + 0.525220, 0.210906, -0.136237, 0.813082 + 0.524434, 0.210657, -0.135764, 0.813733 + 0.523646, 0.210406, -0.135291, 0.814383 + 0.522858, 0.210154, -0.134817, 0.815033 + 0.522070, 0.209898, -0.134343, 0.815682 + 0.521280, 0.209641, -0.133869, 0.816331 + 0.520490, 0.209381, -0.133395, 0.816979 + 0.519699, 0.209120, -0.132920, 0.817627 + 0.518908, 0.208856, -0.132446, 0.818274 + 0.518116, 0.208589, -0.131971, 0.818920 + 0.517323, 0.208321, -0.131495, 0.819566 + 0.516529, 0.208050, -0.131020, 0.820211 + 0.515735, 0.207777, -0.130544, 0.820856 + 0.514940, 0.207502, -0.130068, 0.821500 + 0.514145, 0.207225, -0.129592, 0.822143 + 0.513348, 0.206945, -0.129116, 0.822786 + 0.512551, 0.206664, -0.128640, 0.823428 + 0.511753, 0.206380, -0.128164, 0.824069 + 0.510955, 0.206094, -0.127687, 0.824710 + 0.510156, 0.205806, -0.127210, 0.825350 + 0.509356, 0.205516, -0.126734, 0.825989 + 0.508556, 0.205223, -0.126257, 0.826628 + 0.507754, 0.204929, -0.125780, 0.827266 + 0.506952, 0.204632, -0.125303, 0.827904 + 0.506150, 0.204333, -0.124826, 0.828540 + 0.505346, 0.204032, -0.124349, 0.829176 + 0.504542, 0.203729, -0.123871, 0.829812 + 0.503737, 0.203424, -0.123394, 0.830447 + 0.502932, 0.203117, -0.122917, 0.831081 + 0.502125, 0.202807, -0.122440, 0.831714 + 0.501318, 0.202496, -0.121962, 0.832346 + 0.500511, 0.202182, -0.121485, 0.832978 + 0.499702, 0.201867, -0.121008, 0.833610 + 0.498893, 0.201549, -0.120530, 0.834240 + 0.498083, 0.201229, -0.120053, 0.834870 + 0.497272, 0.200907, -0.119576, 0.835499 + 0.496461, 0.200583, -0.119099, 0.836127 + 0.495648, 0.200257, -0.118621, 0.836755 + 0.494836, 0.199929, -0.118144, 0.837382 + 0.494022, 0.199599, -0.117667, 0.838008 + 0.493207, 0.199267, -0.117191, 0.838633 + 0.492392, 0.198933, -0.116714, 0.839258 + 0.491576, 0.198597, -0.116237, 0.839882 + 0.490760, 0.198258, -0.115760, 0.840505 + 0.489942, 0.197918, -0.115284, 0.841127 + 0.489124, 0.197576, -0.114808, 0.841749 + 0.488305, 0.197232, -0.114331, 0.842369 + 0.487485, 0.196886, -0.113855, 0.842989 + 0.486665, 0.196538, -0.113380, 0.843609 + 0.485844, 0.196187, -0.112904, 0.844227 + 0.485022, 0.195835, -0.112428, 0.844845 + 0.484199, 0.195481, -0.111953, 0.845461 + 0.483375, 0.195125, -0.111478, 0.846077 + 0.482551, 0.194767, -0.111003, 0.846693 + 0.481726, 0.194408, -0.110528, 0.847307 + 0.480900, 0.194046, -0.110054, 0.847921 + 0.480074, 0.193682, -0.109579, 0.848533 + 0.479246, 0.193317, -0.109105, 0.849145 + 0.478418, 0.192949, -0.108632, 0.849756 + 0.477589, 0.192580, -0.108158, 0.850367 + 0.476760, 0.192208, -0.107685, 0.850976 + 0.475929, 0.191835, -0.107212, 0.851584 + 0.475098, 0.191460, -0.106739, 0.852192 + 0.474266, 0.191083, -0.106267, 0.852799 + 0.473433, 0.190705, -0.105795, 0.853405 + 0.472600, 0.190324, -0.105323, 0.854010 + 0.471765, 0.189942, -0.104852, 0.854614 + 0.470930, 0.189557, -0.104381, 0.855218 + 0.470094, 0.189171, -0.103910, 0.855820 + 0.469258, 0.188783, -0.103440, 0.856422 + 0.468420, 0.188394, -0.102970, 0.857023 + 0.467582, 0.188002, -0.102500, 0.857622 + 0.466743, 0.187609, -0.102031, 0.858221 + 0.465903, 0.187214, -0.101562, 0.858819 + 0.465062, 0.186817, -0.101094, 0.859416 + 0.464221, 0.186418, -0.100625, 0.860013 + 0.463379, 0.186018, -0.100158, 0.860608 + 0.462536, 0.185616, -0.099691, 0.861202 + 0.461692, 0.185212, -0.099224, 0.861796 + 0.460847, 0.184806, -0.098758, 0.862388 + 0.460002, 0.184399, -0.098292, 0.862980 + 0.459156, 0.183990, -0.097826, 0.863570 + 0.458309, 0.183579, -0.097361, 0.864160 + 0.457461, 0.183167, -0.096897, 0.864749 + 0.456612, 0.182752, -0.096433, 0.865337 + 0.455763, 0.182337, -0.095970, 0.865923 + 0.454913, 0.181919, -0.095507, 0.866509 + 0.454062, 0.181500, -0.095044, 0.867094 + 0.453210, 0.181079, -0.094582, 0.867678 + 0.452357, 0.180657, -0.094121, 0.868261 + 0.451504, 0.180233, -0.093660, 0.868843 + 0.450650, 0.179807, -0.093200, 0.869424 + 0.449795, 0.179380, -0.092740, 0.870004 + 0.448939, 0.178951, -0.092281, 0.870583 + 0.448083, 0.178520, -0.091822, 0.871161 + 0.447225, 0.178088, -0.091364, 0.871738 + 0.446367, 0.177655, -0.090907, 0.872314 + 0.445508, 0.177219, -0.090450, 0.872889 + 0.444648, 0.176782, -0.089994, 0.873463 + 0.443788, 0.176344, -0.089538, 0.874036 + 0.442926, 0.175904, -0.089083, 0.874608 + 0.442064, 0.175463, -0.088629, 0.875178 + 0.441201, 0.175020, -0.088175, 0.875748 + 0.440337, 0.174576, -0.087722, 0.876317 + 0.439473, 0.174130, -0.087269, 0.876885 + 0.438607, 0.173682, -0.086818, 0.877451 + 0.437741, 0.173233, -0.086367, 0.878017 + 0.436874, 0.172783, -0.085916, 0.878582 + 0.436006, 0.172331, -0.085466, 0.879145 + 0.435137, 0.171878, -0.085017, 0.879708 + 0.434268, 0.171423, -0.084569, 0.880269 + 0.433398, 0.170967, -0.084122, 0.880829 + 0.432527, 0.170509, -0.083675, 0.881389 + 0.431655, 0.170051, -0.083228, 0.881947 + 0.430782, 0.169590, -0.082783, 0.882504 + 0.429908, 0.169128, -0.082338, 0.883060 + 0.429034, 0.168665, -0.081895, 0.883615 + 0.428159, 0.168201, -0.081451, 0.884169 + 0.427283, 0.167735, -0.081009, 0.884721 + 0.426407, 0.167268, -0.080567, 0.885273 + 0.425529, 0.166799, -0.080127, 0.885823 + 0.424651, 0.166329, -0.079686, 0.886373 + 0.423772, 0.165858, -0.079247, 0.886921 + 0.422892, 0.165386, -0.078809, 0.887468 + 0.422011, 0.164912, -0.078371, 0.888014 + 0.421129, 0.164437, -0.077934, 0.888559 + 0.420247, 0.163961, -0.077498, 0.889103 + 0.419364, 0.163483, -0.077063, 0.889645 + 0.418480, 0.163004, -0.076629, 0.890187 + 0.417595, 0.162524, -0.076195, 0.890727 + 0.416710, 0.162043, -0.075763, 0.891266 + 0.415823, 0.161561, -0.075331, 0.891804 + 0.414936, 0.161077, -0.074900, 0.892341 + 0.414048, 0.160592, -0.074470, 0.892876 + 0.413160, 0.160106, -0.074041, 0.893411 + 0.412270, 0.159619, -0.073613, 0.893944 + 0.411380, 0.159130, -0.073186, 0.894476 + 0.410489, 0.158641, -0.072759, 0.895007 + 0.409597, 0.158150, -0.072334, 0.895537 + 0.408704, 0.157658, -0.071909, 0.896066 + 0.407811, 0.157165, -0.071486, 0.896593 + 0.406916, 0.156671, -0.071063, 0.897120 + 0.406021, 0.156176, -0.070641, 0.897645 + 0.405125, 0.155680, -0.070220, 0.898168 + 0.404229, 0.155182, -0.069801, 0.898691 + 0.403331, 0.154684, -0.069382, 0.899212 + 0.402433, 0.154185, -0.068964, 0.899733 + 0.401534, 0.153684, -0.068547, 0.900252 + 0.400634, 0.153183, -0.068131, 0.900770 + 0.399733, 0.152680, -0.067716, 0.901286 + 0.398832, 0.152177, -0.067302, 0.901801 + 0.397930, 0.151672, -0.066889, 0.902316 + 0.397027, 0.151167, -0.066477, 0.902828 + 0.396123, 0.150660, -0.066066, 0.903340 + 0.395218, 0.150153, -0.065656, 0.903851 + 0.394313, 0.149645, -0.065247, 0.904360 + 0.393407, 0.149135, -0.064839, 0.904868 + 0.392500, 0.148625, -0.064432, 0.905374 + 0.391592, 0.148114, -0.064027, 0.905880 + 0.390684, 0.147602, -0.063622, 0.906384 + 0.389775, 0.147089, -0.063218, 0.906887 + 0.388865, 0.146576, -0.062816, 0.907389 + 0.387954, 0.146061, -0.062414, 0.907889 + 0.387042, 0.145546, -0.062014, 0.908388 + 0.386130, 0.145029, -0.061614, 0.908886 + 0.385217, 0.144512, -0.061216, 0.909383 + 0.384303, 0.143994, -0.060819, 0.909878 + 0.383389, 0.143476, -0.060422, 0.910372 + 0.382473, 0.142956, -0.060027, 0.910865 + 0.381557, 0.142436, -0.059634, 0.911356 + 0.380640, 0.141915, -0.059241, 0.911846 + 0.379722, 0.141393, -0.058849, 0.912335 + 0.378804, 0.140871, -0.058459, 0.912823 + 0.377885, 0.140347, -0.058069, 0.913309 + 0.376965, 0.139823, -0.057681, 0.913794 + 0.376044, 0.139299, -0.057294, 0.914278 + 0.375123, 0.138773, -0.056908, 0.914760 + 0.374200, 0.138247, -0.056523, 0.915241 + 0.373277, 0.137721, -0.056139, 0.915721 + 0.372354, 0.137193, -0.055757, 0.916200 + 0.371429, 0.136665, -0.055376, 0.916677 + 0.370504, 0.136137, -0.054995, 0.917153 + 0.369578, 0.135608, -0.054616, 0.917627 + 0.368651, 0.135078, -0.054239, 0.918100 + 0.367724, 0.134547, -0.053862, 0.918572 + 0.366796, 0.134016, -0.053487, 0.919043 + 0.365867, 0.133485, -0.053113, 0.919512 + 0.364937, 0.132953, -0.052740, 0.919980 + 0.364007, 0.132420, -0.052368, 0.920446 + 0.363076, 0.131887, -0.051997, 0.920912 + 0.362144, 0.131353, -0.051628, 0.921376 + 0.361211, 0.130819, -0.051260, 0.921838 + 0.360278, 0.130284, -0.050893, 0.922299 + 0.359344, 0.129749, -0.050527, 0.922759 + 0.358409, 0.129213, -0.050163, 0.923218 + 0.357473, 0.128677, -0.049800, 0.923675 + 0.356537, 0.128141, -0.049438, 0.924130 + 0.355600, 0.127604, -0.049077, 0.924585 + 0.354663, 0.127066, -0.048718, 0.925038 + 0.353724, 0.126529, -0.048360, 0.925490 + 0.352785, 0.125991, -0.048003, 0.925940 + 0.351845, 0.125452, -0.047647, 0.926389 + 0.350905, 0.124913, -0.047293, 0.926836 + 0.349964, 0.124374, -0.046940, 0.927283 + 0.349022, 0.123834, -0.046588, 0.927728 + 0.348079, 0.123294, -0.046237, 0.928171 + 0.347136, 0.122754, -0.045888, 0.928613 + 0.346192, 0.122214, -0.045540, 0.929054 + 0.345247, 0.121673, -0.045194, 0.929493 + 0.344302, 0.121132, -0.044848, 0.929931 + 0.343355, 0.120591, -0.044504, 0.930368 + 0.342409, 0.120049, -0.044162, 0.930803 + 0.341461, 0.119507, -0.043820, 0.931237 + 0.340513, 0.118965, -0.043480, 0.931669 + 0.339564, 0.118423, -0.043141, 0.932100 + 0.338614, 0.117880, -0.042804, 0.932530 + 0.337664, 0.117338, -0.042468, 0.932958 + 0.336713, 0.116795, -0.042133, 0.933385 + 0.335762, 0.116252, -0.041800, 0.933811 + 0.334809, 0.115709, -0.041468, 0.934235 + 0.333856, 0.115166, -0.041137, 0.934657 + 0.332903, 0.114623, -0.040807, 0.935079 + 0.331948, 0.114079, -0.040479, 0.935499 + 0.330994, 0.113536, -0.040153, 0.935917 + 0.330038, 0.112992, -0.039827, 0.936334 + 0.329082, 0.112448, -0.039503, 0.936750 + 0.328125, 0.111905, -0.039181, 0.937164 + 0.327167, 0.111361, -0.038859, 0.937577 + 0.326209, 0.110817, -0.038539, 0.937988 + 0.325250, 0.110273, -0.038221, 0.938398 + 0.324290, 0.109730, -0.037904, 0.938807 + 0.323330, 0.109186, -0.037588, 0.939214 + 0.322369, 0.108642, -0.037273, 0.939620 + 0.321408, 0.108099, -0.036960, 0.940024 + 0.320446, 0.107555, -0.036649, 0.940427 + 0.319483, 0.107011, -0.036338, 0.940829 + 0.318519, 0.106468, -0.036030, 0.941229 + 0.317555, 0.105924, -0.035722, 0.941628 + 0.316591, 0.105381, -0.035416, 0.942025 + 0.315625, 0.104838, -0.035111, 0.942421 + 0.314659, 0.104295, -0.034808, 0.942815 + 0.313693, 0.103752, -0.034506, 0.943208 + 0.312726, 0.103209, -0.034205, 0.943600 + 0.311758, 0.102667, -0.033906, 0.943990 + 0.310789, 0.102124, -0.033609, 0.944379 + 0.309820, 0.101582, -0.033312, 0.944766 + 0.308851, 0.101040, -0.033017, 0.945152 + 0.307881, 0.100498, -0.032724, 0.945536 + 0.306910, 0.099957, -0.032432, 0.945919 + 0.305938, 0.099416, -0.032141, 0.946301 + 0.304966, 0.098875, -0.031852, 0.946681 + 0.303993, 0.098334, -0.031564, 0.947060 + 0.303020, 0.097793, -0.031277, 0.947437 + 0.302046, 0.097253, -0.030992, 0.947813 + 0.301072, 0.096714, -0.030709, 0.948187 + 0.300097, 0.096174, -0.030427, 0.948560 + 0.299121, 0.095635, -0.030146, 0.948932 + 0.298145, 0.095096, -0.029867, 0.949302 + 0.297168, 0.094558, -0.029589, 0.949671 + 0.296191, 0.094020, -0.029312, 0.950038 + 0.295213, 0.093482, -0.029037, 0.950404 + 0.294234, 0.092945, -0.028764, 0.950768 + 0.293255, 0.092408, -0.028491, 0.951131 + 0.292276, 0.091872, -0.028221, 0.951493 + 0.291295, 0.091336, -0.027951, 0.951853 + 0.290314, 0.090800, -0.027684, 0.952211 + 0.289333, 0.090265, -0.027417, 0.952569 + 0.288351, 0.089731, -0.027152, 0.952924 + 0.287369, 0.089197, -0.026889, 0.953279 + 0.286386, 0.088663, -0.026626, 0.953632 + 0.285402, 0.088130, -0.026366, 0.953983 + 0.284418, 0.087598, -0.026107, 0.954333 + 0.283433, 0.087066, -0.025849, 0.954682 + 0.282448, 0.086534, -0.025592, 0.955029 + 0.281462, 0.086004, -0.025337, 0.955374 + 0.280476, 0.085473, -0.025084, 0.955719 + 0.279489, 0.084944, -0.024832, 0.956062 + 0.278502, 0.084415, -0.024581, 0.956403 + 0.277514, 0.083886, -0.024332, 0.956743 + 0.276526, 0.083359, -0.024085, 0.957081 + 0.275537, 0.082832, -0.023838, 0.957419 + 0.274547, 0.082305, -0.023593, 0.957754 + 0.273557, 0.081780, -0.023350, 0.958088 + 0.272567, 0.081255, -0.023108, 0.958421 + 0.271576, 0.080730, -0.022868, 0.958753 + 0.270584, 0.080207, -0.022629, 0.959082 + 0.269592, 0.079684, -0.022391, 0.959411 + 0.268600, 0.079162, -0.022155, 0.959738 + 0.267607, 0.078640, -0.021920, 0.960064 + 0.266613, 0.078120, -0.021687, 0.960388 + 0.265619, 0.077600, -0.021455, 0.960710 + 0.264624, 0.077081, -0.021225, 0.961032 + 0.263629, 0.076563, -0.020996, 0.961352 + 0.262634, 0.076045, -0.020768, 0.961670 + 0.261638, 0.075529, -0.020542, 0.961987 + 0.260641, 0.075013, -0.020317, 0.962303 + 0.259644, 0.074498, -0.020094, 0.962617 + 0.258647, 0.073984, -0.019872, 0.962929 + 0.257649, 0.073471, -0.019652, 0.963241 + 0.256651, 0.072959, -0.019433, 0.963551 + 0.255652, 0.072447, -0.019216, 0.963859 + 0.254652, 0.071937, -0.019000, 0.964166 + 0.253653, 0.071428, -0.018785, 0.964472 + 0.252652, 0.070919, -0.018572, 0.964776 + 0.251652, 0.070411, -0.018360, 0.965079 + 0.250650, 0.069905, -0.018150, 0.965380 + 0.249649, 0.069399, -0.017941, 0.965680 + 0.248647, 0.068895, -0.017734, 0.965978 + 0.247644, 0.068391, -0.017528, 0.966275 + 0.246641, 0.067888, -0.017323, 0.966571 + 0.245638, 0.067387, -0.017120, 0.966865 + 0.244634, 0.066886, -0.016918, 0.967158 + 0.243630, 0.066387, -0.016718, 0.967449 + 0.242625, 0.065888, -0.016519, 0.967739 + 0.241620, 0.065391, -0.016322, 0.968028 + 0.240614, 0.064895, -0.016125, 0.968315 + 0.239608, 0.064399, -0.015931, 0.968600 + 0.238602, 0.063905, -0.015738, 0.968885 + 0.237595, 0.063413, -0.015546, 0.969168 + 0.236587, 0.062921, -0.015355, 0.969449 + 0.235580, 0.062430, -0.015166, 0.969729 + 0.234572, 0.061941, -0.014979, 0.970008 + 0.233563, 0.061452, -0.014793, 0.970285 + 0.232554, 0.060965, -0.014608, 0.970561 + 0.231545, 0.060479, -0.014424, 0.970835 + 0.230535, 0.059995, -0.014242, 0.971108 + 0.229525, 0.059511, -0.014062, 0.971380 + 0.228514, 0.059029, -0.013883, 0.971650 + 0.227503, 0.058548, -0.013705, 0.971919 + 0.226492, 0.058068, -0.013528, 0.972186 + 0.225480, 0.057590, -0.013353, 0.972452 + 0.224468, 0.057113, -0.013180, 0.972717 + 0.223456, 0.056637, -0.013007, 0.972980 + 0.222443, 0.056162, -0.012836, 0.973242 + 0.221429, 0.055689, -0.012667, 0.973503 + 0.220416, 0.055217, -0.012499, 0.973762 + 0.219402, 0.054746, -0.012332, 0.974019 + 0.218387, 0.054277, -0.012166, 0.974276 + 0.217373, 0.053809, -0.012002, 0.974531 + 0.216357, 0.053343, -0.011840, 0.974784 + 0.215342, 0.052877, -0.011678, 0.975036 + 0.214326, 0.052414, -0.011518, 0.975287 + 0.213310, 0.051951, -0.011360, 0.975536 + 0.212293, 0.051490, -0.011202, 0.975784 + 0.211276, 0.051031, -0.011046, 0.976031 + 0.210259, 0.050573, -0.010892, 0.976276 + 0.209241, 0.050116, -0.010739, 0.976520 + 0.208223, 0.049661, -0.010587, 0.976762 + 0.207205, 0.049208, -0.010436, 0.977003 + 0.206186, 0.048755, -0.010287, 0.977243 + 0.205167, 0.048305, -0.010139, 0.977482 + 0.204148, 0.047856, -0.009992, 0.977719 + 0.203128, 0.047408, -0.009847, 0.977954 + 0.202108, 0.046962, -0.009703, 0.978188 + 0.201088, 0.046517, -0.009560, 0.978421 + 0.200067, 0.046074, -0.009419, 0.978653 + 0.199046, 0.045633, -0.009279, 0.978883 + 0.198025, 0.045193, -0.009140, 0.979112 + 0.197003, 0.044754, -0.009003, 0.979339 + 0.195981, 0.044318, -0.008867, 0.979566 + 0.194959, 0.043883, -0.008732, 0.979790 + 0.193937, 0.043449, -0.008598, 0.980014 + 0.192914, 0.043017, -0.008466, 0.980236 + 0.191890, 0.042587, -0.008335, 0.980456 + 0.190867, 0.042158, -0.008205, 0.980676 + 0.189843, 0.041731, -0.008077, 0.980894 + 0.188819, 0.041306, -0.007950, 0.981111 + 0.187795, 0.040883, -0.007824, 0.981326 + 0.186770, 0.040461, -0.007699, 0.981540 + 0.185745, 0.040041, -0.007576, 0.981753 + 0.184720, 0.039622, -0.007453, 0.981964 + 0.183694, 0.039205, -0.007332, 0.982174 + 0.182668, 0.038790, -0.007213, 0.982383 + 0.181642, 0.038377, -0.007094, 0.982590 + 0.180616, 0.037965, -0.006977, 0.982796 + 0.179589, 0.037556, -0.006861, 0.983001 + 0.178562, 0.037148, -0.006746, 0.983204 + 0.177535, 0.036741, -0.006633, 0.983406 + 0.176507, 0.036337, -0.006521, 0.983607 + 0.175479, 0.035934, -0.006410, 0.983806 + 0.174451, 0.035533, -0.006300, 0.984004 + 0.173423, 0.035134, -0.006191, 0.984201 + 0.172395, 0.034737, -0.006083, 0.984396 + 0.171366, 0.034342, -0.005977, 0.984591 + 0.170337, 0.033948, -0.005872, 0.984783 + 0.169307, 0.033557, -0.005768, 0.984975 + 0.168278, 0.033167, -0.005665, 0.985165 + 0.167248, 0.032779, -0.005564, 0.985354 + 0.166218, 0.032393, -0.005463, 0.985542 + 0.165187, 0.032009, -0.005364, 0.985728 + 0.164157, 0.031626, -0.005266, 0.985913 + 0.163126, 0.031246, -0.005169, 0.986097 + 0.162095, 0.030868, -0.005073, 0.986279 + 0.161063, 0.030491, -0.004978, 0.986460 + 0.160032, 0.030117, -0.004885, 0.986640 + 0.159000, 0.029744, -0.004793, 0.986819 + 0.157968, 0.029374, -0.004701, 0.986996 + 0.156936, 0.029005, -0.004611, 0.987172 + 0.155903, 0.028638, -0.004522, 0.987347 + 0.154871, 0.028274, -0.004434, 0.987520 + 0.153838, 0.027911, -0.004347, 0.987692 + 0.152804, 0.027550, -0.004262, 0.987863 + 0.151771, 0.027192, -0.004177, 0.988033 + 0.150738, 0.026835, -0.004093, 0.988201 + 0.149704, 0.026480, -0.004011, 0.988368 + 0.148670, 0.026128, -0.003929, 0.988534 + 0.147635, 0.025777, -0.003849, 0.988698 + 0.146601, 0.025429, -0.003770, 0.988862 + 0.145566, 0.025082, -0.003692, 0.989024 + 0.144532, 0.024738, -0.003615, 0.989184 + 0.143497, 0.024396, -0.003538, 0.989344 + 0.142461, 0.024056, -0.003463, 0.989502 + 0.141426, 0.023718, -0.003389, 0.989659 + 0.140390, 0.023382, -0.003316, 0.989815 + 0.139354, 0.023048, -0.003244, 0.989969 + 0.138318, 0.022716, -0.003173, 0.990122 + 0.137282, 0.022387, -0.003103, 0.990274 + 0.136246, 0.022059, -0.003035, 0.990425 + 0.135209, 0.021734, -0.002967, 0.990574 + 0.134172, 0.021411, -0.002900, 0.990722 + 0.133135, 0.021090, -0.002834, 0.990869 + 0.132098, 0.020771, -0.002769, 0.991015 + 0.131061, 0.020454, -0.002705, 0.991160 + 0.130023, 0.020140, -0.002642, 0.991303 + 0.128986, 0.019828, -0.002580, 0.991445 + 0.127948, 0.019518, -0.002518, 0.991586 + 0.126910, 0.019210, -0.002458, 0.991725 + 0.125872, 0.018904, -0.002399, 0.991864 + 0.124833, 0.018601, -0.002341, 0.992001 + 0.123795, 0.018299, -0.002283, 0.992136 + 0.122756, 0.018001, -0.002227, 0.992271 + 0.121717, 0.017704, -0.002171, 0.992405 + 0.120678, 0.017409, -0.002117, 0.992537 + 0.119639, 0.017117, -0.002063, 0.992668 + 0.118600, 0.016827, -0.002010, 0.992798 + 0.117560, 0.016540, -0.001958, 0.992926 + 0.116520, 0.016254, -0.001907, 0.993053 + 0.115481, 0.015971, -0.001857, 0.993180 + 0.114441, 0.015690, -0.001808, 0.993305 + 0.113401, 0.015412, -0.001759, 0.993428 + 0.112360, 0.015136, -0.001712, 0.993551 + 0.111320, 0.014862, -0.001665, 0.993672 + 0.110279, 0.014590, -0.001619, 0.993792 + 0.109239, 0.014321, -0.001574, 0.993911 + 0.108198, 0.014054, -0.001530, 0.994029 + 0.107157, 0.013790, -0.001486, 0.994145 + 0.106116, 0.013528, -0.001444, 0.994261 + 0.105075, 0.013268, -0.001402, 0.994375 + 0.104033, 0.013010, -0.001361, 0.994488 + 0.102992, 0.012755, -0.001321, 0.994600 + 0.101950, 0.012503, -0.001281, 0.994710 + 0.100909, 0.012252, -0.001243, 0.994819 + 0.099867, 0.012004, -0.001205, 0.994928 + 0.098825, 0.011759, -0.001168, 0.995035 + 0.097783, 0.011516, -0.001132, 0.995141 + 0.096740, 0.011275, -0.001096, 0.995245 + 0.095698, 0.011036, -0.001061, 0.995349 + 0.094655, 0.010801, -0.001027, 0.995451 + 0.093613, 0.010567, -0.000994, 0.995552 + 0.092570, 0.010336, -0.000961, 0.995652 + 0.091527, 0.010107, -0.000929, 0.995751 + 0.090484, 0.009881, -0.000898, 0.995848 + 0.089441, 0.009657, -0.000867, 0.995945 + 0.088398, 0.009436, -0.000837, 0.996040 + 0.087355, 0.009217, -0.000808, 0.996134 + 0.086312, 0.009001, -0.000780, 0.996227 + 0.085268, 0.008787, -0.000752, 0.996319 + 0.084224, 0.008575, -0.000725, 0.996410 + 0.083181, 0.008366, -0.000698, 0.996499 + 0.082137, 0.008160, -0.000672, 0.996587 + 0.081093, 0.007956, -0.000647, 0.996675 + 0.080049, 0.007754, -0.000623, 0.996761 + 0.079005, 0.007555, -0.000599, 0.996845 + 0.077961, 0.007358, -0.000575, 0.996929 + 0.076917, 0.007164, -0.000553, 0.997012 + 0.075872, 0.006973, -0.000531, 0.997093 + 0.074828, 0.006784, -0.000509, 0.997173 + 0.073783, 0.006597, -0.000488, 0.997252 + 0.072739, 0.006413, -0.000468, 0.997330 + 0.071694, 0.006232, -0.000448, 0.997407 + 0.070649, 0.006053, -0.000429, 0.997483 + 0.069604, 0.005876, -0.000410, 0.997557 + 0.068559, 0.005702, -0.000392, 0.997631 + 0.067514, 0.005531, -0.000374, 0.997703 + 0.066469, 0.005362, -0.000357, 0.997774 + 0.065424, 0.005196, -0.000341, 0.997844 + 0.064379, 0.005032, -0.000325, 0.997913 + 0.063333, 0.004871, -0.000309, 0.997980 + 0.062288, 0.004713, -0.000294, 0.998047 + 0.061242, 0.004557, -0.000280, 0.998112 + 0.060197, 0.004403, -0.000266, 0.998177 + 0.059151, 0.004252, -0.000252, 0.998240 + 0.058106, 0.004104, -0.000239, 0.998302 + 0.057060, 0.003958, -0.000226, 0.998363 + 0.056014, 0.003815, -0.000214, 0.998423 + 0.054968, 0.003675, -0.000202, 0.998481 + 0.053922, 0.003537, -0.000191, 0.998539 + 0.052876, 0.003402, -0.000180, 0.998595 + 0.051830, 0.003269, -0.000170, 0.998651 + 0.050784, 0.003139, -0.000160, 0.998705 + 0.049738, 0.003011, -0.000150, 0.998758 + 0.048691, 0.002886, -0.000141, 0.998810 + 0.047645, 0.002764, -0.000132, 0.998860 + 0.046599, 0.002644, -0.000123, 0.998910 + 0.045552, 0.002527, -0.000115, 0.998959 + 0.044506, 0.002413, -0.000107, 0.999006 + 0.043459, 0.002301, -0.000100, 0.999053 + 0.042413, 0.002192, -0.000093, 0.999098 + 0.041366, 0.002085, -0.000086, 0.999142 + 0.040320, 0.001981, -0.000080, 0.999185 + 0.039273, 0.001880, -0.000074, 0.999227 + 0.038226, 0.001781, -0.000068, 0.999268 + 0.037179, 0.001685, -0.000063, 0.999307 + 0.036132, 0.001592, -0.000058, 0.999346 + 0.035086, 0.001501, -0.000053, 0.999383 + 0.034039, 0.001413, -0.000048, 0.999420 + 0.032992, 0.001328, -0.000044, 0.999455 + 0.031945, 0.001245, -0.000040, 0.999489 + 0.030898, 0.001165, -0.000036, 0.999522 + 0.029851, 0.001087, -0.000032, 0.999554 + 0.028804, 0.001012, -0.000029, 0.999585 + 0.027756, 0.000940, -0.000026, 0.999614 + 0.026709, 0.000871, -0.000023, 0.999643 + 0.025662, 0.000804, -0.000021, 0.999670 + 0.024615, 0.000740, -0.000018, 0.999697 + 0.023568, 0.000678, -0.000016, 0.999722 + 0.022520, 0.000619, -0.000014, 0.999746 + 0.021473, 0.000563, -0.000012, 0.999769 + 0.020426, 0.000509, -0.000010, 0.999791 + 0.019378, 0.000459, -0.000009, 0.999812 + 0.018331, 0.000410, -0.000008, 0.999832 + 0.017284, 0.000365, -0.000006, 0.999851 + 0.016236, 0.000322, -0.000005, 0.999868 + 0.015189, 0.000282, -0.000004, 0.999885 + 0.014141, 0.000244, -0.000003, 0.999900 + 0.013094, 0.000209, -0.000003, 0.999914 + 0.012046, 0.000177, -0.000002, 0.999927 + 0.010999, 0.000148, -0.000002, 0.999939 + 0.009952, 0.000121, -0.000001, 0.999950 + 0.008904, 0.000097, -0.000001, 0.999960 + 0.007857, 0.000075, -0.000001, 0.999969 + 0.006809, 0.000057, -0.000000, 0.999977 + 0.005761, 0.000041, -0.000000, 0.999983 + 0.004714, 0.000027, -0.000000, 0.999989 + 0.003666, 0.000016, -0.000000, 0.999993 + 0.002619, 0.000008, -0.000000, 0.999997 + 0.001571, 0.000003, -0.000000, 0.999999 + 0.000524, 0.000000, -0.000000, 1.000000 + -0.000524, 0.000000, 0.000000, 1.000000 + -0.001571, 0.000003, 0.000000, 0.999999 + -0.002619, 0.000008, 0.000000, 0.999997 + -0.003666, 0.000016, 0.000000, 0.999993 + -0.004714, 0.000027, 0.000000, 0.999989 + -0.005761, 0.000041, 0.000000, 0.999983 + -0.006809, 0.000057, 0.000000, 0.999977 + -0.007857, 0.000075, 0.000001, 0.999969 + -0.008904, 0.000097, 0.000001, 0.999960 + -0.009952, 0.000121, 0.000001, 0.999950 + -0.010999, 0.000148, 0.000002, 0.999939 + -0.012046, 0.000177, 0.000002, 0.999927 + -0.013094, 0.000209, 0.000003, 0.999914 + -0.014141, 0.000244, 0.000003, 0.999900 + -0.015189, 0.000282, 0.000004, 0.999885 + -0.016236, 0.000322, 0.000005, 0.999868 + -0.017284, 0.000365, 0.000006, 0.999851 + -0.018331, 0.000410, 0.000008, 0.999832 + -0.019378, 0.000459, 0.000009, 0.999812 + -0.020426, 0.000509, 0.000010, 0.999791 + -0.021473, 0.000563, 0.000012, 0.999769 + -0.022520, 0.000619, 0.000014, 0.999746 + -0.023568, 0.000678, 0.000016, 0.999722 + -0.024615, 0.000740, 0.000018, 0.999697 + -0.025662, 0.000804, 0.000021, 0.999670 + -0.026709, 0.000871, 0.000023, 0.999643 + -0.027756, 0.000940, 0.000026, 0.999614 + -0.028804, 0.001012, 0.000029, 0.999585 + -0.029851, 0.001087, 0.000032, 0.999554 + -0.030898, 0.001165, 0.000036, 0.999522 + -0.031945, 0.001245, 0.000040, 0.999489 + -0.032992, 0.001328, 0.000044, 0.999455 + -0.034039, 0.001413, 0.000048, 0.999420 + -0.035086, 0.001501, 0.000053, 0.999383 + -0.036132, 0.001592, 0.000058, 0.999346 + -0.037179, 0.001685, 0.000063, 0.999307 + -0.038226, 0.001781, 0.000068, 0.999268 + -0.039273, 0.001880, 0.000074, 0.999227 + -0.040320, 0.001981, 0.000080, 0.999185 + -0.041366, 0.002085, 0.000086, 0.999142 + -0.042413, 0.002192, 0.000093, 0.999098 + -0.043459, 0.002301, 0.000100, 0.999053 + -0.044506, 0.002413, 0.000107, 0.999006 + -0.045552, 0.002527, 0.000115, 0.998959 + -0.046599, 0.002644, 0.000123, 0.998910 + -0.047645, 0.002764, 0.000132, 0.998860 + -0.048691, 0.002886, 0.000141, 0.998810 + -0.049738, 0.003011, 0.000150, 0.998758 + -0.050784, 0.003139, 0.000160, 0.998705 + -0.051830, 0.003269, 0.000170, 0.998651 + -0.052876, 0.003402, 0.000180, 0.998595 + -0.053922, 0.003537, 0.000191, 0.998539 + -0.054968, 0.003675, 0.000202, 0.998481 + -0.056014, 0.003815, 0.000214, 0.998423 + -0.057060, 0.003958, 0.000226, 0.998363 + -0.058106, 0.004104, 0.000239, 0.998302 + -0.059151, 0.004252, 0.000252, 0.998240 + -0.060197, 0.004403, 0.000266, 0.998177 + -0.061242, 0.004557, 0.000280, 0.998112 + -0.062288, 0.004713, 0.000294, 0.998047 + -0.063333, 0.004871, 0.000309, 0.997980 + -0.064379, 0.005032, 0.000325, 0.997913 + -0.065424, 0.005196, 0.000341, 0.997844 + -0.066469, 0.005362, 0.000357, 0.997774 + -0.067514, 0.005531, 0.000374, 0.997703 + -0.068559, 0.005702, 0.000392, 0.997631 + -0.069604, 0.005876, 0.000410, 0.997557 + -0.070649, 0.006053, 0.000429, 0.997483 + -0.071694, 0.006232, 0.000448, 0.997407 + -0.072739, 0.006413, 0.000468, 0.997330 + -0.073783, 0.006597, 0.000488, 0.997252 + -0.074828, 0.006784, 0.000509, 0.997173 + -0.075872, 0.006973, 0.000531, 0.997093 + -0.076917, 0.007164, 0.000553, 0.997012 + -0.077961, 0.007358, 0.000575, 0.996929 + -0.079005, 0.007555, 0.000599, 0.996845 + -0.080049, 0.007754, 0.000623, 0.996761 + -0.081093, 0.007956, 0.000647, 0.996675 + -0.082137, 0.008160, 0.000672, 0.996587 + -0.083181, 0.008366, 0.000698, 0.996499 + -0.084224, 0.008575, 0.000725, 0.996410 + -0.085268, 0.008787, 0.000752, 0.996319 + -0.086312, 0.009001, 0.000780, 0.996227 + -0.087355, 0.009217, 0.000808, 0.996134 + -0.088398, 0.009436, 0.000837, 0.996040 + -0.089441, 0.009657, 0.000867, 0.995945 + -0.090484, 0.009881, 0.000898, 0.995848 + -0.091527, 0.010107, 0.000929, 0.995751 + -0.092570, 0.010336, 0.000961, 0.995652 + -0.093613, 0.010567, 0.000994, 0.995552 + -0.094655, 0.010801, 0.001027, 0.995451 + -0.095698, 0.011036, 0.001061, 0.995349 + -0.096740, 0.011275, 0.001096, 0.995245 + -0.097783, 0.011516, 0.001132, 0.995141 + -0.098825, 0.011759, 0.001168, 0.995035 + -0.099867, 0.012004, 0.001205, 0.994928 + -0.100909, 0.012252, 0.001243, 0.994819 + -0.101950, 0.012503, 0.001281, 0.994710 + -0.102992, 0.012755, 0.001321, 0.994600 + -0.104033, 0.013010, 0.001361, 0.994488 + -0.105075, 0.013268, 0.001402, 0.994375 + -0.106116, 0.013528, 0.001444, 0.994261 + -0.107157, 0.013790, 0.001486, 0.994145 + -0.108198, 0.014054, 0.001530, 0.994029 + -0.109239, 0.014321, 0.001574, 0.993911 + -0.110279, 0.014590, 0.001619, 0.993792 + -0.111320, 0.014862, 0.001665, 0.993672 + -0.112360, 0.015136, 0.001712, 0.993551 + -0.113401, 0.015412, 0.001759, 0.993428 + -0.114441, 0.015690, 0.001808, 0.993305 + -0.115481, 0.015971, 0.001857, 0.993180 + -0.116520, 0.016254, 0.001907, 0.993053 + -0.117560, 0.016540, 0.001958, 0.992926 + -0.118600, 0.016827, 0.002010, 0.992798 + -0.119639, 0.017117, 0.002063, 0.992668 + -0.120678, 0.017409, 0.002117, 0.992537 + -0.121717, 0.017704, 0.002171, 0.992405 + -0.122756, 0.018001, 0.002227, 0.992271 + -0.123795, 0.018299, 0.002283, 0.992136 + -0.124833, 0.018601, 0.002341, 0.992001 + -0.125872, 0.018904, 0.002399, 0.991864 + -0.126910, 0.019210, 0.002458, 0.991725 + -0.127948, 0.019518, 0.002518, 0.991586 + -0.128986, 0.019828, 0.002580, 0.991445 + -0.130023, 0.020140, 0.002642, 0.991303 + -0.131061, 0.020454, 0.002705, 0.991160 + -0.132098, 0.020771, 0.002769, 0.991015 + -0.133135, 0.021090, 0.002834, 0.990869 + -0.134172, 0.021411, 0.002900, 0.990722 + -0.135209, 0.021734, 0.002967, 0.990574 + -0.136246, 0.022059, 0.003035, 0.990425 + -0.137282, 0.022387, 0.003103, 0.990274 + -0.138318, 0.022716, 0.003173, 0.990122 + -0.139354, 0.023048, 0.003244, 0.989969 + -0.140390, 0.023382, 0.003316, 0.989815 + -0.141426, 0.023718, 0.003389, 0.989659 + -0.142461, 0.024056, 0.003463, 0.989502 + -0.143497, 0.024396, 0.003538, 0.989344 + -0.144532, 0.024738, 0.003615, 0.989184 + -0.145566, 0.025082, 0.003692, 0.989024 + -0.146601, 0.025429, 0.003770, 0.988862 + -0.147635, 0.025777, 0.003849, 0.988698 + -0.148670, 0.026128, 0.003929, 0.988534 + -0.149704, 0.026480, 0.004011, 0.988368 + -0.150738, 0.026835, 0.004093, 0.988201 + -0.151771, 0.027192, 0.004177, 0.988033 + -0.152804, 0.027550, 0.004262, 0.987863 + -0.153838, 0.027911, 0.004347, 0.987692 + -0.154871, 0.028274, 0.004434, 0.987520 + -0.155903, 0.028638, 0.004522, 0.987347 + -0.156936, 0.029005, 0.004611, 0.987172 + -0.157968, 0.029374, 0.004701, 0.986996 + -0.159000, 0.029744, 0.004793, 0.986819 + -0.160032, 0.030117, 0.004885, 0.986640 + -0.161063, 0.030491, 0.004978, 0.986460 + -0.162095, 0.030868, 0.005073, 0.986279 + -0.163126, 0.031246, 0.005169, 0.986097 + -0.164157, 0.031626, 0.005266, 0.985913 + -0.165187, 0.032009, 0.005364, 0.985728 + -0.166218, 0.032393, 0.005463, 0.985542 + -0.167248, 0.032779, 0.005564, 0.985354 + -0.168278, 0.033167, 0.005665, 0.985165 + -0.169307, 0.033557, 0.005768, 0.984975 + -0.170337, 0.033948, 0.005872, 0.984783 + -0.171366, 0.034342, 0.005977, 0.984591 + -0.172395, 0.034737, 0.006083, 0.984396 + -0.173423, 0.035134, 0.006191, 0.984201 + -0.174451, 0.035533, 0.006300, 0.984004 + -0.175479, 0.035934, 0.006410, 0.983806 + -0.176507, 0.036337, 0.006521, 0.983607 + -0.177535, 0.036741, 0.006633, 0.983406 + -0.178562, 0.037148, 0.006746, 0.983204 + -0.179589, 0.037556, 0.006861, 0.983001 + -0.180616, 0.037965, 0.006977, 0.982796 + -0.181642, 0.038377, 0.007094, 0.982590 + -0.182668, 0.038790, 0.007213, 0.982383 + -0.183694, 0.039205, 0.007332, 0.982174 + -0.184720, 0.039622, 0.007453, 0.981964 + -0.185745, 0.040041, 0.007576, 0.981753 + -0.186770, 0.040461, 0.007699, 0.981540 + -0.187795, 0.040883, 0.007824, 0.981326 + -0.188819, 0.041306, 0.007950, 0.981111 + -0.189843, 0.041731, 0.008077, 0.980894 + -0.190867, 0.042158, 0.008205, 0.980676 + -0.191890, 0.042587, 0.008335, 0.980456 + -0.192914, 0.043017, 0.008466, 0.980236 + -0.193937, 0.043449, 0.008598, 0.980014 + -0.194959, 0.043883, 0.008732, 0.979790 + -0.195981, 0.044318, 0.008867, 0.979566 + -0.197003, 0.044754, 0.009003, 0.979339 + -0.198025, 0.045193, 0.009140, 0.979112 + -0.199046, 0.045633, 0.009279, 0.978883 + -0.200067, 0.046074, 0.009419, 0.978653 + -0.201088, 0.046517, 0.009560, 0.978421 + -0.202108, 0.046962, 0.009703, 0.978188 + -0.203128, 0.047408, 0.009847, 0.977954 + -0.204148, 0.047856, 0.009992, 0.977719 + -0.205167, 0.048305, 0.010139, 0.977482 + -0.206186, 0.048755, 0.010287, 0.977243 + -0.207205, 0.049208, 0.010436, 0.977003 + -0.208223, 0.049661, 0.010587, 0.976762 + -0.209241, 0.050116, 0.010739, 0.976520 + -0.210259, 0.050573, 0.010892, 0.976276 + -0.211276, 0.051031, 0.011046, 0.976031 + -0.212293, 0.051490, 0.011202, 0.975784 + -0.213310, 0.051951, 0.011360, 0.975536 + -0.214326, 0.052414, 0.011518, 0.975287 + -0.215342, 0.052877, 0.011678, 0.975036 + -0.216357, 0.053343, 0.011840, 0.974784 + -0.217373, 0.053809, 0.012002, 0.974531 + -0.218387, 0.054277, 0.012166, 0.974276 + -0.219402, 0.054746, 0.012332, 0.974019 + -0.220416, 0.055217, 0.012499, 0.973762 + -0.221429, 0.055689, 0.012667, 0.973503 + -0.222443, 0.056162, 0.012836, 0.973242 + -0.223456, 0.056637, 0.013007, 0.972980 + -0.224468, 0.057113, 0.013180, 0.972717 + -0.225480, 0.057590, 0.013353, 0.972452 + -0.226492, 0.058068, 0.013528, 0.972186 + -0.227503, 0.058548, 0.013705, 0.971919 + -0.228514, 0.059029, 0.013883, 0.971650 + -0.229525, 0.059511, 0.014062, 0.971380 + -0.230535, 0.059995, 0.014242, 0.971108 + -0.231545, 0.060479, 0.014424, 0.970835 + -0.232554, 0.060965, 0.014608, 0.970561 + -0.233563, 0.061452, 0.014793, 0.970285 + -0.234572, 0.061941, 0.014979, 0.970008 + -0.235580, 0.062430, 0.015166, 0.969729 + -0.236587, 0.062921, 0.015355, 0.969449 + -0.237595, 0.063413, 0.015546, 0.969168 + -0.238602, 0.063905, 0.015738, 0.968885 + -0.239608, 0.064399, 0.015931, 0.968600 + -0.240614, 0.064895, 0.016125, 0.968315 + -0.241620, 0.065391, 0.016322, 0.968028 + -0.242625, 0.065888, 0.016519, 0.967739 + -0.243630, 0.066387, 0.016718, 0.967449 + -0.244634, 0.066886, 0.016918, 0.967158 + -0.245638, 0.067387, 0.017120, 0.966865 + -0.246641, 0.067888, 0.017323, 0.966571 + -0.247644, 0.068391, 0.017528, 0.966275 + -0.248647, 0.068895, 0.017734, 0.965978 + -0.249649, 0.069399, 0.017941, 0.965680 + -0.250650, 0.069905, 0.018150, 0.965380 + -0.251652, 0.070411, 0.018360, 0.965079 + -0.252652, 0.070919, 0.018572, 0.964776 + -0.253653, 0.071428, 0.018785, 0.964472 + -0.254652, 0.071937, 0.019000, 0.964166 + -0.255652, 0.072447, 0.019216, 0.963859 + -0.256651, 0.072959, 0.019433, 0.963551 + -0.257649, 0.073471, 0.019652, 0.963241 + -0.258647, 0.073984, 0.019872, 0.962929 + -0.259644, 0.074498, 0.020094, 0.962617 + -0.260641, 0.075013, 0.020317, 0.962303 + -0.261638, 0.075529, 0.020542, 0.961987 + -0.262634, 0.076045, 0.020768, 0.961670 + -0.263629, 0.076563, 0.020996, 0.961352 + -0.264624, 0.077081, 0.021225, 0.961032 + -0.265619, 0.077600, 0.021455, 0.960710 + -0.266613, 0.078120, 0.021687, 0.960388 + -0.267607, 0.078640, 0.021920, 0.960064 + -0.268600, 0.079162, 0.022155, 0.959738 + -0.269592, 0.079684, 0.022391, 0.959411 + -0.270584, 0.080207, 0.022629, 0.959082 + -0.271576, 0.080730, 0.022868, 0.958753 + -0.272567, 0.081255, 0.023108, 0.958421 + -0.273557, 0.081780, 0.023350, 0.958088 + -0.274547, 0.082305, 0.023593, 0.957754 + -0.275537, 0.082832, 0.023838, 0.957419 + -0.276526, 0.083359, 0.024085, 0.957081 + -0.277514, 0.083886, 0.024332, 0.956743 + -0.278502, 0.084415, 0.024581, 0.956403 + -0.279489, 0.084944, 0.024832, 0.956062 + -0.280476, 0.085473, 0.025084, 0.955719 + -0.281462, 0.086004, 0.025337, 0.955374 + -0.282448, 0.086534, 0.025592, 0.955029 + -0.283433, 0.087066, 0.025849, 0.954682 + -0.284418, 0.087598, 0.026107, 0.954333 + -0.285402, 0.088130, 0.026366, 0.953983 + -0.286386, 0.088663, 0.026626, 0.953632 + -0.287369, 0.089197, 0.026889, 0.953279 + -0.288351, 0.089731, 0.027152, 0.952924 + -0.289333, 0.090265, 0.027417, 0.952569 + -0.290314, 0.090800, 0.027684, 0.952211 + -0.291295, 0.091336, 0.027951, 0.951853 + -0.292276, 0.091872, 0.028221, 0.951493 + -0.293255, 0.092408, 0.028491, 0.951131 + -0.294234, 0.092945, 0.028764, 0.950768 + -0.295213, 0.093482, 0.029037, 0.950404 + -0.296191, 0.094020, 0.029312, 0.950038 + -0.297168, 0.094558, 0.029589, 0.949671 + -0.298145, 0.095096, 0.029867, 0.949302 + -0.299121, 0.095635, 0.030146, 0.948932 + -0.300097, 0.096174, 0.030427, 0.948560 + -0.301072, 0.096714, 0.030709, 0.948187 + -0.302046, 0.097253, 0.030992, 0.947813 + -0.303020, 0.097793, 0.031277, 0.947437 + -0.303993, 0.098334, 0.031564, 0.947060 + -0.304966, 0.098875, 0.031852, 0.946681 + -0.305938, 0.099416, 0.032141, 0.946301 + -0.306910, 0.099957, 0.032432, 0.945919 + -0.307881, 0.100498, 0.032724, 0.945536 + -0.308851, 0.101040, 0.033017, 0.945152 + -0.309820, 0.101582, 0.033312, 0.944766 + -0.310789, 0.102124, 0.033609, 0.944379 + -0.311758, 0.102667, 0.033906, 0.943990 + -0.312726, 0.103209, 0.034205, 0.943600 + -0.313693, 0.103752, 0.034506, 0.943208 + -0.314659, 0.104295, 0.034808, 0.942815 + -0.315625, 0.104838, 0.035111, 0.942421 + -0.316591, 0.105381, 0.035416, 0.942025 + -0.317555, 0.105924, 0.035722, 0.941628 + -0.318519, 0.106468, 0.036030, 0.941229 + -0.319483, 0.107011, 0.036338, 0.940829 + -0.320446, 0.107555, 0.036649, 0.940427 + -0.321408, 0.108099, 0.036960, 0.940024 + -0.322369, 0.108642, 0.037273, 0.939620 + -0.323330, 0.109186, 0.037588, 0.939214 + -0.324290, 0.109730, 0.037904, 0.938807 + -0.325250, 0.110273, 0.038221, 0.938398 + -0.326209, 0.110817, 0.038539, 0.937988 + -0.327167, 0.111361, 0.038859, 0.937577 + -0.328125, 0.111905, 0.039181, 0.937164 + -0.329082, 0.112448, 0.039503, 0.936750 + -0.330038, 0.112992, 0.039827, 0.936334 + -0.330994, 0.113536, 0.040153, 0.935917 + -0.331948, 0.114079, 0.040479, 0.935499 + -0.332903, 0.114623, 0.040807, 0.935079 + -0.333856, 0.115166, 0.041137, 0.934657 + -0.334809, 0.115709, 0.041468, 0.934235 + -0.335762, 0.116252, 0.041800, 0.933811 + -0.336713, 0.116795, 0.042133, 0.933385 + -0.337664, 0.117338, 0.042468, 0.932958 + -0.338614, 0.117880, 0.042804, 0.932530 + -0.339564, 0.118423, 0.043141, 0.932100 + -0.340513, 0.118965, 0.043480, 0.931669 + -0.341461, 0.119507, 0.043820, 0.931237 + -0.342409, 0.120049, 0.044162, 0.930803 + -0.343355, 0.120591, 0.044504, 0.930368 + -0.344302, 0.121132, 0.044848, 0.929931 + -0.345247, 0.121673, 0.045194, 0.929493 + -0.346192, 0.122214, 0.045540, 0.929054 + -0.347136, 0.122754, 0.045888, 0.928613 + -0.348079, 0.123294, 0.046237, 0.928171 + -0.349022, 0.123834, 0.046588, 0.927728 + -0.349964, 0.124374, 0.046940, 0.927283 + -0.350905, 0.124913, 0.047293, 0.926836 + -0.351845, 0.125452, 0.047647, 0.926389 + -0.352785, 0.125991, 0.048003, 0.925940 + -0.353724, 0.126529, 0.048360, 0.925490 + -0.354663, 0.127066, 0.048718, 0.925038 + -0.355600, 0.127604, 0.049077, 0.924585 + -0.356537, 0.128141, 0.049438, 0.924130 + -0.357473, 0.128677, 0.049800, 0.923675 + -0.358409, 0.129213, 0.050163, 0.923218 + -0.359344, 0.129749, 0.050527, 0.922759 + -0.360278, 0.130284, 0.050893, 0.922299 + -0.361211, 0.130819, 0.051260, 0.921838 + -0.362144, 0.131353, 0.051628, 0.921376 + -0.363076, 0.131887, 0.051997, 0.920912 + -0.364007, 0.132420, 0.052368, 0.920446 + -0.364937, 0.132953, 0.052740, 0.919980 + -0.365867, 0.133485, 0.053113, 0.919512 + -0.366796, 0.134016, 0.053487, 0.919043 + -0.367724, 0.134547, 0.053862, 0.918572 + -0.368651, 0.135078, 0.054239, 0.918100 + -0.369578, 0.135608, 0.054616, 0.917627 + -0.370504, 0.136137, 0.054995, 0.917153 + -0.371429, 0.136665, 0.055376, 0.916677 + -0.372354, 0.137193, 0.055757, 0.916200 + -0.373277, 0.137721, 0.056139, 0.915721 + -0.374200, 0.138247, 0.056523, 0.915241 + -0.375123, 0.138773, 0.056908, 0.914760 + -0.376044, 0.139299, 0.057294, 0.914278 + -0.376965, 0.139823, 0.057681, 0.913794 + -0.377885, 0.140347, 0.058069, 0.913309 + -0.378804, 0.140871, 0.058459, 0.912823 + -0.379722, 0.141393, 0.058849, 0.912335 + -0.380640, 0.141915, 0.059241, 0.911846 + -0.381557, 0.142436, 0.059634, 0.911356 + -0.382473, 0.142956, 0.060027, 0.910865 + -0.383389, 0.143476, 0.060422, 0.910372 + -0.384303, 0.143994, 0.060819, 0.909878 + -0.385217, 0.144512, 0.061216, 0.909383 + -0.386130, 0.145029, 0.061614, 0.908886 + -0.387042, 0.145546, 0.062014, 0.908388 + -0.387954, 0.146061, 0.062414, 0.907889 + -0.388865, 0.146576, 0.062816, 0.907389 + -0.389775, 0.147089, 0.063218, 0.906887 + -0.390684, 0.147602, 0.063622, 0.906384 + -0.391592, 0.148114, 0.064027, 0.905880 + -0.392500, 0.148625, 0.064432, 0.905374 + -0.393407, 0.149135, 0.064839, 0.904868 + -0.394313, 0.149645, 0.065247, 0.904360 + -0.395218, 0.150153, 0.065656, 0.903851 + -0.396123, 0.150660, 0.066066, 0.903340 + -0.397027, 0.151167, 0.066477, 0.902828 + -0.397930, 0.151672, 0.066889, 0.902316 + -0.398832, 0.152177, 0.067302, 0.901801 + -0.399733, 0.152680, 0.067716, 0.901286 + -0.400634, 0.153183, 0.068131, 0.900770 + -0.401534, 0.153684, 0.068547, 0.900252 + -0.402433, 0.154185, 0.068964, 0.899733 + -0.403331, 0.154684, 0.069382, 0.899212 + -0.404229, 0.155182, 0.069801, 0.898691 + -0.405125, 0.155680, 0.070220, 0.898168 + -0.406021, 0.156176, 0.070641, 0.897645 + -0.406916, 0.156671, 0.071063, 0.897120 + -0.407811, 0.157165, 0.071486, 0.896593 + -0.408704, 0.157658, 0.071909, 0.896066 + -0.409597, 0.158150, 0.072334, 0.895537 + -0.410489, 0.158641, 0.072759, 0.895007 + -0.411380, 0.159130, 0.073186, 0.894476 + -0.412270, 0.159619, 0.073613, 0.893944 + -0.413160, 0.160106, 0.074041, 0.893411 + -0.414048, 0.160592, 0.074470, 0.892876 + -0.414936, 0.161077, 0.074900, 0.892341 + -0.415823, 0.161561, 0.075331, 0.891804 + -0.416710, 0.162043, 0.075763, 0.891266 + -0.417595, 0.162524, 0.076195, 0.890727 + -0.418480, 0.163004, 0.076629, 0.890187 + -0.419364, 0.163483, 0.077063, 0.889645 + -0.420247, 0.163961, 0.077498, 0.889103 + -0.421129, 0.164437, 0.077934, 0.888559 + -0.422011, 0.164912, 0.078371, 0.888014 + -0.422892, 0.165386, 0.078809, 0.887468 + -0.423772, 0.165858, 0.079247, 0.886921 + -0.424651, 0.166329, 0.079686, 0.886373 + -0.425529, 0.166799, 0.080127, 0.885823 + -0.426407, 0.167268, 0.080567, 0.885273 + -0.427283, 0.167735, 0.081009, 0.884721 + -0.428159, 0.168201, 0.081451, 0.884169 + -0.429034, 0.168665, 0.081895, 0.883615 + -0.429908, 0.169128, 0.082338, 0.883060 + -0.430782, 0.169590, 0.082783, 0.882504 + -0.431655, 0.170051, 0.083228, 0.881947 + -0.432527, 0.170509, 0.083675, 0.881389 + -0.433398, 0.170967, 0.084122, 0.880829 + -0.434268, 0.171423, 0.084569, 0.880269 + -0.435137, 0.171878, 0.085017, 0.879708 + -0.436006, 0.172331, 0.085466, 0.879145 + -0.436874, 0.172783, 0.085916, 0.878582 + -0.437741, 0.173233, 0.086367, 0.878017 + -0.438607, 0.173682, 0.086818, 0.877451 + -0.439473, 0.174130, 0.087269, 0.876885 + -0.440337, 0.174576, 0.087722, 0.876317 + -0.441201, 0.175020, 0.088175, 0.875748 + -0.442064, 0.175463, 0.088629, 0.875178 + -0.442926, 0.175904, 0.089083, 0.874608 + -0.443788, 0.176344, 0.089538, 0.874036 + -0.444648, 0.176782, 0.089994, 0.873463 + -0.445508, 0.177219, 0.090450, 0.872889 + -0.446367, 0.177655, 0.090907, 0.872314 + -0.447225, 0.178088, 0.091364, 0.871738 + -0.448083, 0.178520, 0.091822, 0.871161 + -0.448939, 0.178951, 0.092281, 0.870583 + -0.449795, 0.179380, 0.092740, 0.870004 + -0.450650, 0.179807, 0.093200, 0.869424 + -0.451504, 0.180233, 0.093660, 0.868843 + -0.452357, 0.180657, 0.094121, 0.868261 + -0.453210, 0.181079, 0.094582, 0.867678 + -0.454062, 0.181500, 0.095044, 0.867094 + -0.454913, 0.181919, 0.095507, 0.866509 + -0.455763, 0.182337, 0.095970, 0.865923 + -0.456612, 0.182752, 0.096433, 0.865337 + -0.457461, 0.183167, 0.096897, 0.864749 + -0.458309, 0.183579, 0.097361, 0.864160 + -0.459156, 0.183990, 0.097826, 0.863570 + -0.460002, 0.184399, 0.098292, 0.862980 + -0.460847, 0.184806, 0.098758, 0.862388 + -0.461692, 0.185212, 0.099224, 0.861796 + -0.462536, 0.185616, 0.099691, 0.861202 + -0.463379, 0.186018, 0.100158, 0.860608 + -0.464221, 0.186418, 0.100625, 0.860013 + -0.465062, 0.186817, 0.101094, 0.859416 + -0.465903, 0.187214, 0.101562, 0.858819 + -0.466743, 0.187609, 0.102031, 0.858221 + -0.467582, 0.188002, 0.102500, 0.857622 + -0.468420, 0.188394, 0.102970, 0.857023 + -0.469258, 0.188783, 0.103440, 0.856422 + -0.470094, 0.189171, 0.103910, 0.855820 + -0.470930, 0.189557, 0.104381, 0.855218 + -0.471765, 0.189942, 0.104852, 0.854614 + -0.472600, 0.190324, 0.105323, 0.854010 + -0.473433, 0.190705, 0.105795, 0.853405 + -0.474266, 0.191083, 0.106267, 0.852799 + -0.475098, 0.191460, 0.106739, 0.852192 + -0.475929, 0.191835, 0.107212, 0.851584 + -0.476760, 0.192208, 0.107685, 0.850976 + -0.477589, 0.192580, 0.108158, 0.850367 + -0.478418, 0.192949, 0.108632, 0.849756 + -0.479246, 0.193317, 0.109105, 0.849145 + -0.480074, 0.193682, 0.109579, 0.848533 + -0.480900, 0.194046, 0.110054, 0.847921 + -0.481726, 0.194408, 0.110528, 0.847307 + -0.482551, 0.194767, 0.111003, 0.846693 + -0.483375, 0.195125, 0.111478, 0.846077 + -0.484199, 0.195481, 0.111953, 0.845461 + -0.485022, 0.195835, 0.112428, 0.844845 + -0.485844, 0.196187, 0.112904, 0.844227 + -0.486665, 0.196538, 0.113380, 0.843609 + -0.487485, 0.196886, 0.113855, 0.842989 + -0.488305, 0.197232, 0.114331, 0.842369 + -0.489124, 0.197576, 0.114808, 0.841749 + -0.489942, 0.197918, 0.115284, 0.841127 + -0.490760, 0.198258, 0.115760, 0.840505 + -0.491576, 0.198597, 0.116237, 0.839882 + -0.492392, 0.198933, 0.116714, 0.839258 + -0.493207, 0.199267, 0.117191, 0.838633 + -0.494022, 0.199599, 0.117667, 0.838008 + -0.494836, 0.199929, 0.118144, 0.837382 + -0.495648, 0.200257, 0.118621, 0.836755 + -0.496461, 0.200583, 0.119099, 0.836127 + -0.497272, 0.200907, 0.119576, 0.835499 + -0.498083, 0.201229, 0.120053, 0.834870 + -0.498893, 0.201549, 0.120530, 0.834240 + -0.499702, 0.201867, 0.121008, 0.833610 + -0.500511, 0.202182, 0.121485, 0.832978 + -0.501318, 0.202496, 0.121962, 0.832346 + -0.502125, 0.202807, 0.122440, 0.831714 + -0.502932, 0.203117, 0.122917, 0.831081 + -0.503737, 0.203424, 0.123394, 0.830447 + -0.504542, 0.203729, 0.123871, 0.829812 + -0.505346, 0.204032, 0.124349, 0.829176 + -0.506150, 0.204333, 0.124826, 0.828540 + -0.506952, 0.204632, 0.125303, 0.827904 + -0.507754, 0.204929, 0.125780, 0.827266 + -0.508556, 0.205223, 0.126257, 0.826628 + -0.509356, 0.205516, 0.126734, 0.825989 + -0.510156, 0.205806, 0.127210, 0.825350 + -0.510955, 0.206094, 0.127687, 0.824710 + -0.511753, 0.206380, 0.128164, 0.824069 + -0.512551, 0.206664, 0.128640, 0.823428 + -0.513348, 0.206945, 0.129116, 0.822786 + -0.514145, 0.207225, 0.129592, 0.822143 + -0.514940, 0.207502, 0.130068, 0.821500 + -0.515735, 0.207777, 0.130544, 0.820856 + -0.516529, 0.208050, 0.131020, 0.820211 + -0.517323, 0.208321, 0.131495, 0.819566 + -0.518116, 0.208589, 0.131971, 0.818920 + -0.518908, 0.208856, 0.132446, 0.818274 + -0.519699, 0.209120, 0.132920, 0.817627 + -0.520490, 0.209381, 0.133395, 0.816979 + -0.521280, 0.209641, 0.133869, 0.816331 + -0.522070, 0.209898, 0.134343, 0.815682 + -0.522858, 0.210154, 0.134817, 0.815033 + -0.523646, 0.210406, 0.135291, 0.814383 + -0.524434, 0.210657, 0.135764, 0.813733 + -0.525220, 0.210906, 0.136237, 0.813082 + -0.526007, 0.211152, 0.136710, 0.812430 + -0.526792, 0.211396, 0.137182, 0.811778 + -0.527577, 0.211637, 0.137654, 0.811125 + -0.528361, 0.211877, 0.138126, 0.810472 + -0.529144, 0.212114, 0.138598, 0.809818 + -0.529927, 0.212349, 0.139069, 0.809163 + -0.530709, 0.212581, 0.139539, 0.808508 + -0.531490, 0.212812, 0.140010, 0.807853 + -0.532271, 0.213040, 0.140480, 0.807197 + -0.533051, 0.213265, 0.140949, 0.806540 + -0.533831, 0.213489, 0.141419, 0.805883 + -0.534610, 0.213710, 0.141887, 0.805226 + -0.535388, 0.213929, 0.142356, 0.804568 + -0.536166, 0.214145, 0.142824, 0.803909 + -0.536943, 0.214360, 0.143291, 0.803250 + -0.537719, 0.214571, 0.143758, 0.802590 + -0.538495, 0.214781, 0.144225, 0.801930 + -0.539270, 0.214988, 0.144691, 0.801269 + -0.540044, 0.215193, 0.145157, 0.800608 + -0.540818, 0.215396, 0.145622, 0.799947 + -0.541591, 0.215596, 0.146087, 0.799285 + -0.542364, 0.215794, 0.146551, 0.798622 + -0.543136, 0.215990, 0.147015, 0.797959 + -0.543907, 0.216183, 0.147478, 0.797295 + -0.544678, 0.216374, 0.147941, 0.796631 + -0.545448, 0.216563, 0.148403, 0.795967 + -0.546218, 0.216749, 0.148864, 0.795302 + -0.546987, 0.216933, 0.149325, 0.794637 + -0.547755, 0.217114, 0.149786, 0.793971 + -0.548523, 0.217294, 0.150246, 0.793305 + -0.549290, 0.217470, 0.150705, 0.792638 + -0.550057, 0.217645, 0.151163, 0.791971 + -0.550823, 0.217817, 0.151621, 0.791303 + -0.551588, 0.217987, 0.152079, 0.790635 + -0.552353, 0.218154, 0.152536, 0.789967 + -0.553117, 0.218319, 0.152992, 0.789298 + -0.553881, 0.218482, 0.153447, 0.788629 + -0.554644, 0.218642, 0.153902, 0.787959 + -0.555407, 0.218800, 0.154356, 0.787289 + -0.556169, 0.218955, 0.154810, 0.786618 + -0.556930, 0.219108, 0.155262, 0.785948 + -0.557691, 0.219259, 0.155714, 0.785276 + -0.558452, 0.219407, 0.156166, 0.784605 + -0.559211, 0.219553, 0.156616, 0.783932 + -0.559971, 0.219697, 0.157066, 0.783260 + -0.560729, 0.219838, 0.157516, 0.782587 + -0.561488, 0.219977, 0.157964, 0.781914 + -0.562245, 0.220113, 0.158412, 0.781240 + -0.563002, 0.220247, 0.158858, 0.780566 + -0.563759, 0.220379, 0.159305, 0.779892 + -0.564515, 0.220508, 0.159750, 0.779217 + -0.565270, 0.220634, 0.160194, 0.778542 + -0.566025, 0.220759, 0.160638, 0.777867 + -0.566780, 0.220881, 0.161081, 0.777191 + -0.567533, 0.221000, 0.161523, 0.776515 + -0.568287, 0.221117, 0.161964, 0.775838 + -0.569040, 0.221232, 0.162405, 0.775161 + -0.569792, 0.221344, 0.162844, 0.774484 + -0.570544, 0.221454, 0.163283, 0.773807 + -0.571295, 0.221561, 0.163721, 0.773129 + -0.572046, 0.221667, 0.164157, 0.772450 + -0.572796, 0.221769, 0.164593, 0.771772 + -0.573546, 0.221869, 0.165028, 0.771093 + -0.574295, 0.221967, 0.165463, 0.770414 + -0.575044, 0.222062, 0.165896, 0.769734 + -0.575793, 0.222155, 0.166328, 0.769054 + -0.576541, 0.222246, 0.166760, 0.768374 + -0.577288, 0.222334, 0.167190, 0.767694 + -0.578035, 0.222420, 0.167619, 0.767013 + -0.578781, 0.222503, 0.168048, 0.766332 + -0.579527, 0.222584, 0.168475, 0.765651 + -0.580273, 0.222662, 0.168902, 0.764969 + -0.581018, 0.222738, 0.169327, 0.764287 + -0.581762, 0.222811, 0.169752, 0.763605 + -0.582506, 0.222883, 0.170175, 0.762922 + -0.583250, 0.222951, 0.170598, 0.762239 + -0.583993, 0.223017, 0.171019, 0.761556 + -0.584736, 0.223081, 0.171439, 0.760873 + -0.585478, 0.223143, 0.171859, 0.760189 + -0.586220, 0.223202, 0.172277, 0.759505 + -0.586961, 0.223258, 0.172694, 0.758821 + -0.587702, 0.223312, 0.173110, 0.758136 + -0.588443, 0.223364, 0.173525, 0.757452 + -0.589183, 0.223413, 0.173939, 0.756767 + -0.589922, 0.223460, 0.174352, 0.756081 + -0.590661, 0.223504, 0.174763, 0.755396 + -0.591400, 0.223546, 0.175174, 0.754710 + -0.592138, 0.223586, 0.175583, 0.754024 + -0.592876, 0.223623, 0.175991, 0.753338 + -0.593614, 0.223658, 0.176398, 0.752651 + -0.594351, 0.223690, 0.176804, 0.751964 + -0.595088, 0.223720, 0.177209, 0.751277 + -0.595824, 0.223747, 0.177612, 0.750590 + -0.596560, 0.223772, 0.178015, 0.749902 + -0.597295, 0.223795, 0.178416, 0.749214 + -0.598030, 0.223815, 0.178816, 0.748526 + -0.598765, 0.223833, 0.179214, 0.747838 + -0.599499, 0.223848, 0.179612, 0.747150 + -0.600233, 0.223861, 0.180008, 0.746461 + -0.600966, 0.223872, 0.180403, 0.745772 + -0.601699, 0.223880, 0.180796, 0.745083 + -0.602432, 0.223885, 0.181189, 0.744393 + -0.603164, 0.223889, 0.181580, 0.743704 + -0.603896, 0.223889, 0.181970, 0.743014 + -0.604628, 0.223888, 0.182358, 0.742324 + -0.605359, 0.223884, 0.182745, 0.741634 + -0.606090, 0.223877, 0.183131, 0.740943 + -0.606820, 0.223869, 0.183516, 0.740252 + -0.607551, 0.223857, 0.183899, 0.739562 + -0.608280, 0.223844, 0.184281, 0.738870 + -0.609010, 0.223828, 0.184662, 0.738179 + -0.609739, 0.223809, 0.185041, 0.737488 + -0.610467, 0.223789, 0.185419, 0.736796 + -0.611196, 0.223765, 0.185795, 0.736104 + -0.611924, 0.223740, 0.186170, 0.735412 + -0.612651, 0.223712, 0.186544, 0.734720 + -0.613378, 0.223682, 0.186916, 0.734027 + -0.614105, 0.223649, 0.187287, 0.733334 + -0.614832, 0.223614, 0.187656, 0.732642 + -0.615558, 0.223576, 0.188024, 0.731949 + -0.616284, 0.223536, 0.188391, 0.731255 + -0.617010, 0.223494, 0.188756, 0.730562 + -0.617735, 0.223449, 0.189120, 0.729868 + -0.618460, 0.223402, 0.189482, 0.729174 + -0.619185, 0.223353, 0.189843, 0.728480 + -0.619909, 0.223301, 0.190202, 0.727786 + -0.620633, 0.223247, 0.190560, 0.727092 + -0.621357, 0.223190, 0.190916, 0.726397 + -0.622080, 0.223131, 0.191271, 0.725703 + -0.622803, 0.223070, 0.191624, 0.725008 + -0.623526, 0.223007, 0.191976, 0.724313 + -0.624248, 0.222941, 0.192326, 0.723617 + -0.624971, 0.222872, 0.192675, 0.722922 + -0.625692, 0.222802, 0.193022, 0.722226 + -0.626414, 0.222729, 0.193367, 0.721531 + -0.627135, 0.222653, 0.193711, 0.720835 + -0.627856, 0.222576, 0.194054, 0.720139 + -0.628577, 0.222496, 0.194395, 0.719442 + -0.629297, 0.222413, 0.194734, 0.718746 + -0.630017, 0.222329, 0.195071, 0.718049 + -0.630737, 0.222242, 0.195408, 0.717353 + -0.631457, 0.222152, 0.195742, 0.716656 + -0.632176, 0.222061, 0.196075, 0.715959 + -0.632895, 0.221967, 0.196406, 0.715262 + -0.633614, 0.221870, 0.196736, 0.714564 + -0.634333, 0.221772, 0.197064, 0.713867 + -0.635051, 0.221671, 0.197390, 0.713169 + -0.635769, 0.221568, 0.197714, 0.712471 + -0.636486, 0.221462, 0.198037, 0.711773 + -0.637204, 0.221354, 0.198359, 0.711075 + -0.637921, 0.221244, 0.198678, 0.710376 + -0.638638, 0.221132, 0.198996, 0.709678 + -0.639355, 0.221017, 0.199312, 0.708979 + -0.640071, 0.220900, 0.199627, 0.708280 + -0.640787, 0.220781, 0.199940, 0.707581 + -0.641503, 0.220659, 0.200251, 0.706882 + -0.642219, 0.220536, 0.200560, 0.706183 + -0.642934, 0.220410, 0.200868, 0.705484 + -0.643650, 0.220281, 0.201174, 0.704784 + -0.644365, 0.220151, 0.201478, 0.704084 + -0.645079, 0.220018, 0.201780, 0.703384 + -0.645794, 0.219883, 0.202081, 0.702684 + -0.646508, 0.219745, 0.202379, 0.701984 + -0.647222, 0.219606, 0.202676, 0.701284 + -0.647936, 0.219464, 0.202972, 0.700583 + -0.648650, 0.219320, 0.203265, 0.699883 + -0.649363, 0.219174, 0.203557, 0.699182 + -0.650076, 0.219025, 0.203847, 0.698481 + -0.650789, 0.218874, 0.204135, 0.697780 + -0.651502, 0.218722, 0.204421, 0.697079 + -0.652214, 0.218566, 0.204705, 0.696377 + -0.652926, 0.218409, 0.204988, 0.695676 + -0.653638, 0.218249, 0.205268, 0.694974 + -0.654350, 0.218088, 0.205547, 0.694272 + -0.655062, 0.217924, 0.205824, 0.693570 + -0.655773, 0.217758, 0.206099, 0.692868 + -0.656485, 0.217589, 0.206373, 0.692166 + -0.657196, 0.217419, 0.206644, 0.691463 + -0.657907, 0.217246, 0.206913, 0.690760 + -0.658617, 0.217071, 0.207181, 0.690058 + -0.659328, 0.216894, 0.207447, 0.689355 + -0.660038, 0.216715, 0.207710, 0.688652 + -0.660748, 0.216534, 0.207972, 0.687948 + -0.661458, 0.216350, 0.208232, 0.687245 + -0.662167, 0.216165, 0.208490, 0.686541 + -0.662877, 0.215977, 0.208746, 0.685838 + -0.663586, 0.215787, 0.209001, 0.685134 + -0.664295, 0.215595, 0.209253, 0.684430 + -0.665004, 0.215401, 0.209503, 0.683726 + -0.665713, 0.215205, 0.209751, 0.683021 + -0.666421, 0.215006, 0.209998, 0.682317 + -0.667130, 0.214806, 0.210242, 0.681612 + -0.667838, 0.214603, 0.210484, 0.680907 + -0.668546, 0.214399, 0.210725, 0.680202 + -0.669253, 0.214192, 0.210963, 0.679497 + -0.669961, 0.213983, 0.211199, 0.678792 + -0.670669, 0.213772, 0.211434, 0.678086 + -0.671376, 0.213559, 0.211666, 0.677381 + -0.672083, 0.213344, 0.211896, 0.676675 + -0.672790, 0.213127, 0.212125, 0.675969 + -0.673497, 0.212908, 0.212351, 0.675263 + -0.674203, 0.212687, 0.212575, 0.674556 + -0.674910, 0.212463, 0.212798, 0.673850 + -0.675616, 0.212238, 0.213018, 0.673143 + -0.676322, 0.212011, 0.213236, 0.672436 + -0.677028, 0.211782, 0.213452, 0.671729 + -0.677733, 0.211550, 0.213666, 0.671022 + -0.678439, 0.211317, 0.213878, 0.670315 + -0.679144, 0.211081, 0.214088, 0.669607 + -0.679850, 0.210844, 0.214296, 0.668900 + -0.680555, 0.210605, 0.214501, 0.668192 + -0.681260, 0.210363, 0.214705, 0.667484 + -0.681964, 0.210120, 0.214906, 0.666775 + -0.682669, 0.209875, 0.215106, 0.666067 + -0.683373, 0.209627, 0.215303, 0.665358 + -0.684078, 0.209378, 0.215498, 0.664650 + -0.684782, 0.209127, 0.215691, 0.663941 + -0.685486, 0.208874, 0.215882, 0.663231 + -0.686190, 0.208619, 0.216071, 0.662522 + -0.686893, 0.208362, 0.216258, 0.661813 + -0.687597, 0.208103, 0.216442, 0.661103 + -0.688300, 0.207842, 0.216625, 0.660393 + -0.689003, 0.207579, 0.216805, 0.659683 + -0.689706, 0.207314, 0.216983, 0.658972 + -0.690409, 0.207047, 0.217159, 0.658262 + -0.691112, 0.206779, 0.217333, 0.657551 + -0.691814, 0.206509, 0.217504, 0.656840 + -0.692517, 0.206236, 0.217674, 0.656129 + -0.693219, 0.205962, 0.217841, 0.655418 + -0.693921, 0.205686, 0.218006, 0.654706 + -0.694623, 0.205408, 0.218169, 0.653994 + -0.695325, 0.205128, 0.218329, 0.653282 + -0.696026, 0.204847, 0.218488, 0.652570 + -0.696728, 0.204563, 0.218644, 0.651858 + -0.697429, 0.204278, 0.218798, 0.651145 + -0.698130, 0.203991, 0.218950, 0.650433 + -0.698831, 0.203702, 0.219100, 0.649719 + -0.699532, 0.203411, 0.219247, 0.649006 + -0.700233, 0.203119, 0.219392, 0.648293 + -0.700934, 0.202824, 0.219535, 0.647579 + -0.701634, 0.202528, 0.219676, 0.646865 + -0.702334, 0.202230, 0.219814, 0.646151 + -0.703034, 0.201931, 0.219951, 0.645437 + -0.703734, 0.201629, 0.220085, 0.644722 + -0.704434, 0.201326, 0.220216, 0.644007 + -0.705134, 0.201021, 0.220346, 0.643292 + -0.705833, 0.200714, 0.220473, 0.642577 + -0.706533, 0.200406, 0.220598, 0.641861 + -0.707232, 0.200095, 0.220720, 0.641145 + -0.707931, 0.199783, 0.220841, 0.640429 + -0.708630, 0.199470, 0.220959, 0.639713 + -0.709329, 0.199154, 0.221075, 0.638996 + -0.710027, 0.198837, 0.221188, 0.638280 + -0.710726, 0.198519, 0.221300, 0.637562 + -0.711424, 0.198198, 0.221409, 0.636845 + -0.712122, 0.197876, 0.221515, 0.636128 + -0.712820, 0.197552, 0.221620, 0.635410 + -0.713518, 0.197227, 0.221722, 0.634692 + -0.714215, 0.196900, 0.221821, 0.633973 + -0.714913, 0.196571, 0.221919, 0.633255 + -0.715610, 0.196241, 0.222014, 0.632536 + -0.716307, 0.195909, 0.222107, 0.631817 + -0.717004, 0.195575, 0.222197, 0.631097 + -0.717701, 0.195240, 0.222285, 0.630377 + -0.718398, 0.194903, 0.222371, 0.629657 + -0.719094, 0.194564, 0.222455, 0.628937 + -0.719791, 0.194224, 0.222536, 0.628217 + -0.720487, 0.193883, 0.222615, 0.627496 + -0.721183, 0.193539, 0.222691, 0.626775 + -0.721879, 0.193195, 0.222766, 0.626053 + -0.722574, 0.192848, 0.222837, 0.625331 + -0.723270, 0.192500, 0.222907, 0.624609 + -0.723965, 0.192151, 0.222974, 0.623887 + -0.724660, 0.191800, 0.223039, 0.623165 + -0.725355, 0.191448, 0.223101, 0.622442 + -0.726050, 0.191093, 0.223161, 0.621718 + -0.726745, 0.190738, 0.223219, 0.620995 + -0.727439, 0.190381, 0.223274, 0.620271 + -0.728133, 0.190022, 0.223327, 0.619547 + -0.728827, 0.189662, 0.223378, 0.618822 + -0.729521, 0.189301, 0.223426, 0.618098 + -0.730215, 0.188938, 0.223472, 0.617372 + -0.730909, 0.188574, 0.223515, 0.616647 + -0.731602, 0.188208, 0.223556, 0.615921 + -0.732295, 0.187840, 0.223595, 0.615195 + -0.732988, 0.187472, 0.223632, 0.614469 + -0.733681, 0.187102, 0.223665, 0.613742 + -0.734373, 0.186730, 0.223697, 0.613015 + -0.735066, 0.186357, 0.223726, 0.612287 + -0.735758, 0.185983, 0.223753, 0.611560 + -0.736450, 0.185607, 0.223777, 0.610831 + -0.737142, 0.185230, 0.223799, 0.610103 + -0.737833, 0.184851, 0.223819, 0.609374 + -0.738525, 0.184471, 0.223836, 0.608645 + -0.739216, 0.184090, 0.223851, 0.607915 + -0.739907, 0.183708, 0.223863, 0.607186 + -0.740598, 0.183324, 0.223873, 0.606455 + -0.741288, 0.182938, 0.223881, 0.605725 + -0.741979, 0.182552, 0.223886, 0.604994 + -0.742669, 0.182164, 0.223889, 0.604262 + -0.743359, 0.181775, 0.223889, 0.603530 + -0.744049, 0.181384, 0.223887, 0.602798 + -0.744738, 0.180993, 0.223883, 0.602066 + -0.745427, 0.180600, 0.223876, 0.601333 + -0.746116, 0.180205, 0.223867, 0.600600 + -0.746805, 0.179810, 0.223855, 0.599866 + -0.747494, 0.179413, 0.223841, 0.599132 + -0.748182, 0.179015, 0.223824, 0.598398 + -0.748870, 0.178616, 0.223805, 0.597663 + -0.749558, 0.178215, 0.223784, 0.596927 + -0.750246, 0.177814, 0.223760, 0.596192 + -0.750933, 0.177411, 0.223734, 0.595456 + -0.751621, 0.177007, 0.223705, 0.594719 + -0.752308, 0.176601, 0.223674, 0.593982 + -0.752994, 0.176195, 0.223641, 0.593245 + -0.753681, 0.175787, 0.223605, 0.592507 + -0.754367, 0.175379, 0.223566, 0.591769 + -0.755053, 0.174969, 0.223526, 0.591031 + -0.755739, 0.174558, 0.223482, 0.590292 + -0.756424, 0.174145, 0.223437, 0.589552 + -0.757109, 0.173732, 0.223389, 0.588813 + -0.757794, 0.173318, 0.223338, 0.588072 + -0.758479, 0.172902, 0.223285, 0.587332 + -0.759163, 0.172486, 0.223230, 0.586591 + -0.759847, 0.172068, 0.223172, 0.585849 + -0.760531, 0.171649, 0.223112, 0.585107 + -0.761215, 0.171229, 0.223050, 0.584364 + -0.761898, 0.170808, 0.222985, 0.583622 + -0.762581, 0.170387, 0.222917, 0.582878 + -0.763263, 0.169964, 0.222847, 0.582134 + -0.763946, 0.169540, 0.222775, 0.581390 + -0.764628, 0.169115, 0.222700, 0.580645 + -0.765310, 0.168689, 0.222623, 0.579900 + -0.765991, 0.168262, 0.222543, 0.579154 + -0.766673, 0.167834, 0.222461, 0.578408 + -0.767354, 0.167405, 0.222377, 0.577661 + -0.768034, 0.166975, 0.222290, 0.576914 + -0.768714, 0.166544, 0.222201, 0.576167 + -0.769394, 0.166112, 0.222109, 0.575419 + -0.770074, 0.165679, 0.222015, 0.574670 + -0.770753, 0.165246, 0.221918, 0.573921 + -0.771432, 0.164811, 0.221819, 0.573171 + -0.772111, 0.164375, 0.221718, 0.572421 + -0.772790, 0.163939, 0.221614, 0.571671 + -0.773468, 0.163502, 0.221508, 0.570920 + -0.774145, 0.163064, 0.221399, 0.570168 + -0.774823, 0.162624, 0.221288, 0.569416 + -0.775500, 0.162185, 0.221175, 0.568663 + -0.776176, 0.161744, 0.221059, 0.567910 + -0.776853, 0.161302, 0.220941, 0.567157 + -0.777529, 0.160860, 0.220820, 0.566402 + -0.778204, 0.160416, 0.220697, 0.565648 + -0.778880, 0.159972, 0.220571, 0.564893 + -0.779555, 0.159527, 0.220443, 0.564137 + -0.780229, 0.159082, 0.220313, 0.563381 + -0.780903, 0.158635, 0.220180, 0.562624 + -0.781577, 0.158188, 0.220045, 0.561866 + -0.782251, 0.157740, 0.219908, 0.561109 + -0.782924, 0.157291, 0.219768, 0.560350 + -0.783596, 0.156841, 0.219625, 0.559591 + -0.784269, 0.156391, 0.219481, 0.558832 + -0.784940, 0.155940, 0.219334, 0.558072 + -0.785612, 0.155489, 0.219184, 0.557311 + -0.786283, 0.155036, 0.219032, 0.556550 + -0.786954, 0.154583, 0.218878, 0.555788 + -0.787624, 0.154129, 0.218721, 0.555026 + -0.788294, 0.153675, 0.218562, 0.554263 + -0.788963, 0.153220, 0.218401, 0.553499 + -0.789632, 0.152764, 0.218237, 0.552735 + -0.790301, 0.152307, 0.218071, 0.551971 + -0.790969, 0.151850, 0.217902, 0.551206 + -0.791637, 0.151393, 0.217731, 0.550440 + -0.792304, 0.150934, 0.217558, 0.549674 + -0.792971, 0.150475, 0.217382, 0.548907 + -0.793638, 0.150016, 0.217204, 0.548139 + -0.794304, 0.149556, 0.217024, 0.547371 + -0.794969, 0.149095, 0.216841, 0.546602 + -0.795635, 0.148634, 0.216656, 0.545833 + -0.796299, 0.148172, 0.216469, 0.545063 + -0.796963, 0.147709, 0.216279, 0.544293 + -0.797627, 0.147247, 0.216087, 0.543522 + -0.798291, 0.146783, 0.215892, 0.542750 + -0.798953, 0.146319, 0.215695, 0.541978 + -0.799616, 0.145855, 0.215496, 0.541205 + -0.800278, 0.145390, 0.215295, 0.540431 + -0.800939, 0.144924, 0.215091, 0.539657 + -0.801600, 0.144458, 0.214885, 0.538882 + -0.802260, 0.143992, 0.214677, 0.538107 + -0.802920, 0.143525, 0.214466, 0.537331 + -0.803579, 0.143058, 0.214253, 0.536554 + -0.804238, 0.142590, 0.214037, 0.535777 + -0.804897, 0.142122, 0.213820, 0.534999 + -0.805555, 0.141653, 0.213600, 0.534220 + -0.806212, 0.141184, 0.213377, 0.533441 + -0.806869, 0.140715, 0.213153, 0.532661 + -0.807525, 0.140245, 0.212926, 0.531881 + -0.808181, 0.139775, 0.212697, 0.531100 + -0.808836, 0.139304, 0.212465, 0.530318 + -0.809491, 0.138833, 0.212232, 0.529536 + -0.810145, 0.138362, 0.211996, 0.528752 + -0.810798, 0.137890, 0.211757, 0.527969 + -0.811451, 0.137418, 0.211517, 0.527184 + -0.812104, 0.136946, 0.211274, 0.526399 + -0.812756, 0.136474, 0.211029, 0.525614 + -0.813407, 0.136001, 0.210782, 0.524827 + -0.814058, 0.135528, 0.210532, 0.524040 + -0.814708, 0.135054, 0.210280, 0.523252 + -0.815358, 0.134580, 0.210026, 0.522464 + -0.816007, 0.134106, 0.209770, 0.521675 + -0.816655, 0.133632, 0.209511, 0.520885 + -0.817303, 0.133158, 0.209251, 0.520095 + -0.817951, 0.132683, 0.208988, 0.519304 + -0.818597, 0.132208, 0.208723, 0.518512 + -0.819243, 0.131733, 0.208455, 0.517719 + -0.819889, 0.131258, 0.208186, 0.516926 + -0.820534, 0.130782, 0.207914, 0.516132 + -0.821178, 0.130306, 0.207640, 0.515338 + -0.821821, 0.129830, 0.207364, 0.514542 + -0.822464, 0.129354, 0.207085, 0.513746 + -0.823107, 0.128878, 0.206805, 0.512950 + -0.823748, 0.128402, 0.206522, 0.512152 + -0.824389, 0.127925, 0.206237, 0.511354 + -0.825030, 0.127449, 0.205950, 0.510556 + -0.825670, 0.126972, 0.205661, 0.509756 + -0.826309, 0.126495, 0.205370, 0.508956 + -0.826947, 0.126018, 0.205076, 0.508155 + -0.827585, 0.125541, 0.204781, 0.507353 + -0.828222, 0.125064, 0.204483, 0.506551 + -0.828858, 0.124587, 0.204183, 0.505748 + -0.829494, 0.124110, 0.203881, 0.504944 + -0.830129, 0.123633, 0.203577, 0.504140 + -0.830764, 0.123155, 0.203271, 0.503335 + -0.831397, 0.122678, 0.202962, 0.502529 + -0.832030, 0.122201, 0.202652, 0.501722 + -0.832663, 0.121724, 0.202339, 0.500914 + -0.833294, 0.121246, 0.202025, 0.500106 + -0.833925, 0.120769, 0.201708, 0.499297 + -0.834555, 0.120292, 0.201389, 0.498488 + -0.835184, 0.119814, 0.201068, 0.497678 + -0.835813, 0.119337, 0.200745, 0.496866 + -0.836441, 0.118860, 0.200420, 0.496055 + -0.837068, 0.118383, 0.200093, 0.495242 + -0.837695, 0.117906, 0.199764, 0.494429 + -0.838321, 0.117429, 0.199433, 0.493615 + -0.838946, 0.116952, 0.199100, 0.492800 + -0.839570, 0.116475, 0.198765, 0.491984 + -0.840193, 0.115999, 0.198428, 0.491168 + -0.840816, 0.115522, 0.198089, 0.490351 + -0.841438, 0.115046, 0.197747, 0.489533 + -0.842059, 0.114570, 0.197404, 0.488715 + -0.842679, 0.114093, 0.197059, 0.487895 + -0.843299, 0.113617, 0.196712, 0.487075 + -0.843918, 0.113142, 0.196363, 0.486254 + -0.844536, 0.112666, 0.196012, 0.485433 + -0.845153, 0.112191, 0.195659, 0.484610 + -0.845769, 0.111715, 0.195304, 0.483787 + -0.846385, 0.111240, 0.194947, 0.482963 + -0.847000, 0.110765, 0.194588, 0.482139 + -0.847614, 0.110291, 0.194227, 0.481313 + -0.848227, 0.109816, 0.193864, 0.480487 + -0.848839, 0.109342, 0.193500, 0.479660 + -0.849451, 0.108868, 0.193133, 0.478832 + -0.850062, 0.108395, 0.192765, 0.478004 + -0.850671, 0.107921, 0.192394, 0.477175 + -0.851280, 0.107448, 0.192022, 0.476345 + -0.851888, 0.106976, 0.191648, 0.475514 + -0.852496, 0.106503, 0.191272, 0.474682 + -0.853102, 0.106031, 0.190894, 0.473850 + -0.853708, 0.105559, 0.190515, 0.473017 + -0.854312, 0.105087, 0.190133, 0.472183 + -0.854916, 0.104616, 0.189750, 0.471348 + -0.855519, 0.104145, 0.189364, 0.470512 + -0.856121, 0.103675, 0.188977, 0.469676 + -0.856722, 0.103205, 0.188589, 0.468839 + -0.857323, 0.102735, 0.188198, 0.468001 + -0.857922, 0.102265, 0.187806, 0.467162 + -0.858520, 0.101796, 0.187411, 0.466323 + -0.859118, 0.101328, 0.187015, 0.465483 + -0.859715, 0.100859, 0.186618, 0.464642 + -0.860310, 0.100392, 0.186218, 0.463800 + -0.860905, 0.099924, 0.185817, 0.462957 + -0.861499, 0.099457, 0.185414, 0.462114 + -0.862092, 0.098991, 0.185009, 0.461270 + -0.862684, 0.098525, 0.184603, 0.460425 + -0.863275, 0.098059, 0.184194, 0.459579 + -0.863865, 0.097594, 0.183785, 0.458732 + -0.864455, 0.097129, 0.183373, 0.457885 + -0.865043, 0.096665, 0.182960, 0.457037 + -0.865630, 0.096201, 0.182545, 0.456188 + -0.866216, 0.095738, 0.182128, 0.455338 + -0.866802, 0.095275, 0.181710, 0.454487 + -0.867386, 0.094813, 0.181290, 0.453636 + -0.867970, 0.094351, 0.180868, 0.452784 + -0.868552, 0.093890, 0.180445, 0.451931 + -0.869134, 0.093430, 0.180020, 0.451077 + -0.869714, 0.092970, 0.179594, 0.450222 + -0.870294, 0.092510, 0.179165, 0.449367 + -0.870872, 0.092051, 0.178736, 0.448511 + -0.871449, 0.091593, 0.178304, 0.447654 + -0.872026, 0.091135, 0.177872, 0.446796 + -0.872601, 0.090678, 0.177437, 0.445938 + -0.873176, 0.090222, 0.177001, 0.445078 + -0.873749, 0.089766, 0.176564, 0.444218 + -0.874322, 0.089310, 0.176124, 0.443357 + -0.874893, 0.088856, 0.175684, 0.442495 + -0.875463, 0.088402, 0.175242, 0.441633 + -0.876033, 0.087948, 0.174798, 0.440769 + -0.876601, 0.087495, 0.174353, 0.439905 + -0.877168, 0.087043, 0.173906, 0.439040 + -0.877734, 0.086592, 0.173458, 0.438174 + -0.878300, 0.086141, 0.173008, 0.437307 + -0.878864, 0.085691, 0.172557, 0.436440 + -0.879427, 0.085242, 0.172105, 0.435572 + -0.879988, 0.084793, 0.171651, 0.434703 + -0.880549, 0.084345, 0.171195, 0.433833 + -0.881109, 0.083898, 0.170738, 0.432962 + -0.881668, 0.083451, 0.170280, 0.432091 + -0.882225, 0.083006, 0.169821, 0.431218 + -0.882782, 0.082561, 0.169359, 0.430345 + -0.883337, 0.082116, 0.168897, 0.429471 + -0.883892, 0.081673, 0.168433, 0.428597 + -0.884445, 0.081230, 0.167968, 0.427721 + -0.884997, 0.080788, 0.167502, 0.426845 + -0.885548, 0.080347, 0.167034, 0.425968 + -0.886098, 0.079906, 0.166565, 0.425090 + -0.886647, 0.079467, 0.166094, 0.424211 + -0.887195, 0.079028, 0.165622, 0.423332 + -0.887741, 0.078590, 0.165149, 0.422451 + -0.888287, 0.078153, 0.164675, 0.421570 + -0.888831, 0.077716, 0.164199, 0.420688 + -0.889374, 0.077281, 0.163722, 0.419806 + -0.889916, 0.076846, 0.163244, 0.418922 + -0.890457, 0.076412, 0.162764, 0.418038 + -0.890997, 0.075979, 0.162284, 0.417153 + -0.891535, 0.075547, 0.161802, 0.416267 + -0.892073, 0.075116, 0.161319, 0.415380 + -0.892609, 0.074685, 0.160834, 0.414492 + -0.893144, 0.074256, 0.160349, 0.413604 + -0.893678, 0.073827, 0.159862, 0.412715 + -0.894211, 0.073399, 0.159375, 0.411825 + -0.894742, 0.072972, 0.158886, 0.410934 + -0.895272, 0.072546, 0.158395, 0.410043 + -0.895802, 0.072121, 0.157904, 0.409150 + -0.896330, 0.071697, 0.157412, 0.408257 + -0.896857, 0.071274, 0.156918, 0.407363 + -0.897382, 0.070852, 0.156424, 0.406469 + -0.897907, 0.070431, 0.155928, 0.405573 + -0.898430, 0.070010, 0.155431, 0.404677 + -0.898952, 0.069591, 0.154933, 0.403780 + -0.899473, 0.069173, 0.154434, 0.402882 + -0.899992, 0.068755, 0.153935, 0.401983 + -0.900511, 0.068339, 0.153434, 0.401084 + -0.901028, 0.067923, 0.152932, 0.400184 + -0.901544, 0.067509, 0.152429, 0.399283 + -0.902059, 0.067095, 0.151925, 0.398381 + -0.902572, 0.066683, 0.151420, 0.397478 + -0.903084, 0.066271, 0.150914, 0.396575 + -0.903595, 0.065861, 0.150407, 0.395671 + -0.904105, 0.065451, 0.149899, 0.394766 + -0.904614, 0.065043, 0.149390, 0.393860 + -0.905121, 0.064636, 0.148881, 0.392954 + -0.905627, 0.064229, 0.148370, 0.392046 + -0.906132, 0.063824, 0.147858, 0.391138 + -0.906636, 0.063420, 0.147346, 0.390229 + -0.907138, 0.063017, 0.146833, 0.389320 + -0.907639, 0.062615, 0.146319, 0.388409 + -0.908139, 0.062214, 0.145803, 0.387498 + -0.908637, 0.061814, 0.145288, 0.386586 + -0.909134, 0.061415, 0.144771, 0.385674 + -0.909630, 0.061017, 0.144253, 0.384760 + -0.910125, 0.060620, 0.143735, 0.383846 + -0.910618, 0.060225, 0.143216, 0.382931 + -0.911111, 0.059830, 0.142696, 0.382015 + -0.911601, 0.059437, 0.142176, 0.381099 + -0.912091, 0.059045, 0.141654, 0.380181 + -0.912579, 0.058654, 0.141132, 0.379263 + -0.913066, 0.058264, 0.140609, 0.378344 + -0.913552, 0.057875, 0.140085, 0.377425 + -0.914036, 0.057487, 0.139561, 0.376505 + -0.914519, 0.057101, 0.139036, 0.375583 + -0.915001, 0.056715, 0.138510, 0.374662 + -0.915481, 0.056331, 0.137984, 0.373739 + -0.915961, 0.055948, 0.137457, 0.372816 + -0.916438, 0.055566, 0.136929, 0.371892 + -0.916915, 0.055185, 0.136401, 0.370967 + -0.917390, 0.054806, 0.135872, 0.370041 + -0.917864, 0.054427, 0.135343, 0.369115 + -0.918336, 0.054050, 0.134813, 0.368188 + -0.918808, 0.053674, 0.134282, 0.367260 + -0.919278, 0.053299, 0.133751, 0.366331 + -0.919746, 0.052926, 0.133219, 0.365402 + -0.920213, 0.052554, 0.132686, 0.364472 + -0.920679, 0.052182, 0.132153, 0.363541 + -0.921144, 0.051812, 0.131620, 0.362610 + -0.921607, 0.051444, 0.131086, 0.361678 + -0.922069, 0.051076, 0.130552, 0.360745 + -0.922529, 0.050710, 0.130017, 0.359811 + -0.922988, 0.050345, 0.129481, 0.358876 + -0.923446, 0.049981, 0.128945, 0.357941 + -0.923903, 0.049619, 0.128409, 0.357005 + -0.924358, 0.049257, 0.127872, 0.356069 + -0.924812, 0.048897, 0.127335, 0.355132 + -0.925264, 0.048538, 0.126798, 0.354194 + -0.925715, 0.048181, 0.126260, 0.353255 + -0.926165, 0.047825, 0.125721, 0.352315 + -0.926613, 0.047470, 0.125183, 0.351375 + -0.927060, 0.047116, 0.124644, 0.350434 + -0.927505, 0.046764, 0.124104, 0.349493 + -0.927950, 0.046412, 0.123564, 0.348550 + -0.928392, 0.046063, 0.123024, 0.347607 + -0.928834, 0.045714, 0.122484, 0.346664 + -0.929274, 0.045367, 0.121943, 0.345719 + -0.929712, 0.045021, 0.121402, 0.344774 + -0.930150, 0.044676, 0.120861, 0.343829 + -0.930586, 0.044333, 0.120320, 0.342882 + -0.931020, 0.043991, 0.119778, 0.341935 + -0.931453, 0.043650, 0.119236, 0.340987 + -0.931885, 0.043311, 0.118694, 0.340039 + -0.932315, 0.042973, 0.118152, 0.339089 + -0.932744, 0.042636, 0.117609, 0.338139 + -0.933172, 0.042300, 0.117067, 0.337189 + -0.933598, 0.041966, 0.116524, 0.336238 + -0.934023, 0.041634, 0.115981, 0.335286 + -0.934446, 0.041302, 0.115438, 0.334333 + -0.934868, 0.040972, 0.114894, 0.333380 + -0.935289, 0.040643, 0.114351, 0.332426 + -0.935708, 0.040316, 0.113807, 0.331471 + -0.936126, 0.039990, 0.113264, 0.330516 + -0.936542, 0.039665, 0.112720, 0.329560 + -0.936957, 0.039342, 0.112177, 0.328603 + -0.937371, 0.039020, 0.111633, 0.327646 + -0.937783, 0.038699, 0.111089, 0.326688 + -0.938193, 0.038380, 0.110545, 0.325729 + -0.938603, 0.038062, 0.110002, 0.324770 + -0.939011, 0.037746, 0.109458, 0.323810 + -0.939417, 0.037431, 0.108914, 0.322850 + -0.939822, 0.037117, 0.108370, 0.321889 + -0.940226, 0.036804, 0.107827, 0.320927 + -0.940628, 0.036493, 0.107283, 0.319964 + -0.941029, 0.036184, 0.106740, 0.319001 + -0.941428, 0.035876, 0.106196, 0.318037 + -0.941826, 0.035569, 0.105653, 0.317073 + -0.942223, 0.035263, 0.105110, 0.316108 + -0.942618, 0.034959, 0.104566, 0.315142 + -0.943012, 0.034657, 0.104023, 0.314176 + -0.943404, 0.034355, 0.103481, 0.313209 + -0.943795, 0.034056, 0.102938, 0.312242 + -0.944184, 0.033757, 0.102395, 0.311274 + -0.944572, 0.033460, 0.101853, 0.310305 + -0.944959, 0.033165, 0.101311, 0.309336 + -0.945344, 0.032870, 0.100769, 0.308366 + -0.945728, 0.032578, 0.100228, 0.307395 + -0.946110, 0.032286, 0.099686, 0.306424 + -0.946491, 0.031996, 0.099145, 0.305452 + -0.946871, 0.031708, 0.098604, 0.304480 + -0.947249, 0.031420, 0.098064, 0.303507 + -0.947625, 0.031135, 0.097523, 0.302533 + -0.948000, 0.030850, 0.096983, 0.301559 + -0.948374, 0.030568, 0.096444, 0.300584 + -0.948746, 0.030286, 0.095904, 0.299609 + -0.949117, 0.030006, 0.095365, 0.298633 + -0.949487, 0.029727, 0.094827, 0.297657 + -0.949855, 0.029450, 0.094289, 0.296680 + -0.950221, 0.029175, 0.093751, 0.295702 + -0.950586, 0.028900, 0.093213, 0.294724 + -0.950950, 0.028627, 0.092676, 0.293745 + -0.951312, 0.028356, 0.092140, 0.292765 + -0.951673, 0.028086, 0.091604, 0.291785 + -0.952032, 0.027817, 0.091068, 0.290805 + -0.952390, 0.027550, 0.090533, 0.289824 + -0.952747, 0.027284, 0.089998, 0.288842 + -0.953102, 0.027020, 0.089464, 0.287860 + -0.953455, 0.026757, 0.088930, 0.286877 + -0.953807, 0.026496, 0.088396, 0.285894 + -0.954158, 0.026236, 0.087864, 0.284910 + -0.954507, 0.025977, 0.087332, 0.283926 + -0.954855, 0.025720, 0.086800, 0.282941 + -0.955202, 0.025465, 0.086269, 0.281955 + -0.955547, 0.025211, 0.085738, 0.280969 + -0.955890, 0.024958, 0.085208, 0.279983 + -0.956232, 0.024706, 0.084679, 0.278996 + -0.956573, 0.024457, 0.084151, 0.278008 + -0.956912, 0.024208, 0.083623, 0.277020 + -0.957250, 0.023961, 0.083095, 0.276031 + -0.957587, 0.023716, 0.082568, 0.275042 + -0.957921, 0.023472, 0.082042, 0.274052 + -0.958255, 0.023229, 0.081517, 0.273062 + -0.958587, 0.022988, 0.080992, 0.272071 + -0.958918, 0.022748, 0.080468, 0.271080 + -0.959247, 0.022510, 0.079945, 0.270088 + -0.959575, 0.022273, 0.079423, 0.269096 + -0.959901, 0.022037, 0.078901, 0.268103 + -0.960226, 0.021803, 0.078380, 0.267110 + -0.960549, 0.021571, 0.077860, 0.266116 + -0.960871, 0.021340, 0.077340, 0.265122 + -0.961192, 0.021110, 0.076822, 0.264127 + -0.961511, 0.020882, 0.076304, 0.263132 + -0.961829, 0.020655, 0.075787, 0.262136 + -0.962145, 0.020430, 0.075271, 0.261140 + -0.962460, 0.020206, 0.074755, 0.260143 + -0.962773, 0.019983, 0.074241, 0.259146 + -0.963085, 0.019762, 0.073727, 0.258148 + -0.963396, 0.019542, 0.073215, 0.257150 + -0.963705, 0.019324, 0.072703, 0.256151 + -0.964013, 0.019108, 0.072192, 0.255152 + -0.964319, 0.018892, 0.071682, 0.254153 + -0.964624, 0.018678, 0.071173, 0.253153 + -0.964927, 0.018466, 0.070665, 0.252152 + -0.965229, 0.018255, 0.070158, 0.251151 + -0.965530, 0.018045, 0.069652, 0.250150 + -0.965829, 0.017837, 0.069147, 0.249148 + -0.966127, 0.017631, 0.068643, 0.248146 + -0.966423, 0.017425, 0.068139, 0.247143 + -0.966718, 0.017221, 0.067637, 0.246140 + -0.967012, 0.017019, 0.067136, 0.245136 + -0.967304, 0.016818, 0.066636, 0.244132 + -0.967594, 0.016618, 0.066137, 0.243127 + -0.967884, 0.016420, 0.065639, 0.242122 + -0.968171, 0.016223, 0.065143, 0.241117 + -0.968458, 0.016028, 0.064647, 0.240111 + -0.968743, 0.015834, 0.064152, 0.239105 + -0.969026, 0.015642, 0.063659, 0.238098 + -0.969309, 0.015450, 0.063166, 0.237091 + -0.969589, 0.015261, 0.062675, 0.236084 + -0.969869, 0.015072, 0.062185, 0.235076 + -0.970147, 0.014885, 0.061696, 0.234067 + -0.970423, 0.014700, 0.061209, 0.233059 + -0.970698, 0.014516, 0.060722, 0.232049 + -0.970972, 0.014333, 0.060237, 0.231040 + -0.971244, 0.014152, 0.059753, 0.230030 + -0.971515, 0.013972, 0.059270, 0.229020 + -0.971785, 0.013793, 0.058788, 0.228009 + -0.972053, 0.013616, 0.058308, 0.226998 + -0.972320, 0.013441, 0.057829, 0.225986 + -0.972585, 0.013266, 0.057351, 0.224974 + -0.972849, 0.013093, 0.056874, 0.223962 + -0.973111, 0.012922, 0.056399, 0.222949 + -0.973373, 0.012751, 0.055925, 0.221936 + -0.973632, 0.012583, 0.055453, 0.220923 + -0.973891, 0.012415, 0.054981, 0.219909 + -0.974148, 0.012249, 0.054511, 0.218895 + -0.974403, 0.012084, 0.054043, 0.217880 + -0.974657, 0.011921, 0.053576, 0.216865 + -0.974910, 0.011759, 0.053110, 0.215850 + -0.975162, 0.011598, 0.052645, 0.214834 + -0.975412, 0.011439, 0.052182, 0.213818 + -0.975660, 0.011281, 0.051721, 0.212802 + -0.975908, 0.011124, 0.051261, 0.211785 + -0.976154, 0.010969, 0.050802, 0.210768 + -0.976398, 0.010815, 0.050344, 0.209750 + -0.976641, 0.010662, 0.049889, 0.208732 + -0.976883, 0.010511, 0.049434, 0.207714 + -0.977124, 0.010361, 0.048981, 0.206696 + -0.977363, 0.010213, 0.048530, 0.205677 + -0.977600, 0.010065, 0.048080, 0.204658 + -0.977837, 0.009919, 0.047632, 0.203638 + -0.978072, 0.009775, 0.047185, 0.202618 + -0.978305, 0.009632, 0.046739, 0.201598 + -0.978537, 0.009490, 0.046295, 0.200578 + -0.978768, 0.009349, 0.045853, 0.199557 + -0.978998, 0.009209, 0.045413, 0.198536 + -0.979226, 0.009071, 0.044973, 0.197514 + -0.979453, 0.008935, 0.044536, 0.196492 + -0.979678, 0.008799, 0.044100, 0.195470 + -0.979902, 0.008665, 0.043666, 0.194448 + -0.980125, 0.008532, 0.043233, 0.193425 + -0.980346, 0.008400, 0.042802, 0.192402 + -0.980566, 0.008270, 0.042373, 0.191379 + -0.980785, 0.008141, 0.041945, 0.190355 + -0.981002, 0.008013, 0.041519, 0.189331 + -0.981218, 0.007886, 0.041094, 0.188307 + -0.981433, 0.007761, 0.040671, 0.187282 + -0.981646, 0.007637, 0.040250, 0.186257 + -0.981858, 0.007514, 0.039831, 0.185232 + -0.982069, 0.007393, 0.039413, 0.184207 + -0.982278, 0.007272, 0.038998, 0.183181 + -0.982486, 0.007153, 0.038583, 0.182155 + -0.982693, 0.007036, 0.038171, 0.181129 + -0.982898, 0.006919, 0.037760, 0.180102 + -0.983103, 0.006804, 0.037351, 0.179076 + -0.983305, 0.006690, 0.036944, 0.178048 + -0.983507, 0.006577, 0.036539, 0.177021 + -0.983707, 0.006465, 0.036135, 0.175993 + -0.983905, 0.006354, 0.035734, 0.174965 + -0.984103, 0.006245, 0.035334, 0.173937 + -0.984299, 0.006137, 0.034935, 0.172909 + -0.984494, 0.006030, 0.034539, 0.171880 + -0.984687, 0.005924, 0.034145, 0.170851 + -0.984879, 0.005820, 0.033752, 0.169822 + -0.985070, 0.005717, 0.033361, 0.168792 + -0.985260, 0.005614, 0.032973, 0.167763 + -0.985448, 0.005513, 0.032586, 0.166733 + -0.985635, 0.005413, 0.032201, 0.165702 + -0.985821, 0.005315, 0.031817, 0.164672 + -0.986005, 0.005217, 0.031436, 0.163641 + -0.986188, 0.005121, 0.031057, 0.162610 + -0.986370, 0.005026, 0.030679, 0.161579 + -0.986550, 0.004932, 0.030304, 0.160548 + -0.986730, 0.004839, 0.029930, 0.159516 + -0.986908, 0.004747, 0.029559, 0.158484 + -0.987084, 0.004656, 0.029189, 0.157452 + -0.987260, 0.004566, 0.028821, 0.156420 + -0.987434, 0.004478, 0.028456, 0.155387 + -0.987606, 0.004391, 0.028092, 0.154354 + -0.987778, 0.004304, 0.027730, 0.153321 + -0.987948, 0.004219, 0.027371, 0.152288 + -0.988117, 0.004135, 0.027013, 0.151254 + -0.988285, 0.004052, 0.026657, 0.150221 + -0.988451, 0.003970, 0.026304, 0.149187 + -0.988616, 0.003889, 0.025952, 0.148153 + -0.988780, 0.003809, 0.025603, 0.147118 + -0.988943, 0.003731, 0.025255, 0.146084 + -0.989104, 0.003653, 0.024910, 0.145049 + -0.989264, 0.003576, 0.024567, 0.144014 + -0.989423, 0.003501, 0.024226, 0.142979 + -0.989581, 0.003426, 0.023886, 0.141944 + -0.989737, 0.003353, 0.023549, 0.140908 + -0.989892, 0.003280, 0.023214, 0.139872 + -0.990046, 0.003209, 0.022882, 0.138836 + -0.990198, 0.003138, 0.022551, 0.137800 + -0.990350, 0.003069, 0.022223, 0.136764 + -0.990500, 0.003000, 0.021896, 0.135727 + -0.990649, 0.002933, 0.021572, 0.134691 + -0.990796, 0.002867, 0.021250, 0.133654 + -0.990942, 0.002801, 0.020930, 0.132617 + -0.991088, 0.002737, 0.020612, 0.131580 + -0.991231, 0.002673, 0.020297, 0.130542 + -0.991374, 0.002610, 0.019983, 0.129505 + -0.991515, 0.002549, 0.019672, 0.128467 + -0.991656, 0.002488, 0.019363, 0.127429 + -0.991795, 0.002428, 0.019057, 0.126391 + -0.991932, 0.002370, 0.018752, 0.125352 + -0.992069, 0.002312, 0.018450, 0.124314 + -0.992204, 0.002255, 0.018150, 0.123275 + -0.992338, 0.002199, 0.017852, 0.122237 + -0.992471, 0.002144, 0.017556, 0.121198 + -0.992602, 0.002090, 0.017263, 0.120159 + -0.992733, 0.002036, 0.016972, 0.119119 + -0.992862, 0.001984, 0.016683, 0.118080 + -0.992990, 0.001933, 0.016397, 0.117040 + -0.993117, 0.001882, 0.016113, 0.116001 + -0.993242, 0.001832, 0.015831, 0.114961 + -0.993367, 0.001783, 0.015551, 0.113921 + -0.993490, 0.001735, 0.015274, 0.112881 + -0.993612, 0.001688, 0.014999, 0.111840 + -0.993732, 0.001642, 0.014726, 0.110800 + -0.993852, 0.001596, 0.014456, 0.109759 + -0.993970, 0.001552, 0.014188, 0.108718 + -0.994087, 0.001508, 0.013922, 0.107678 + -0.994203, 0.001465, 0.013659, 0.106637 + -0.994318, 0.001423, 0.013398, 0.105595 + -0.994431, 0.001381, 0.013139, 0.104554 + -0.994544, 0.001341, 0.012883, 0.103513 + -0.994655, 0.001301, 0.012629, 0.102471 + -0.994765, 0.001262, 0.012377, 0.101429 + -0.994874, 0.001224, 0.012128, 0.100388 + -0.994981, 0.001186, 0.011881, 0.099346 + -0.995088, 0.001150, 0.011637, 0.098304 + -0.995193, 0.001114, 0.011395, 0.097261 + -0.995297, 0.001078, 0.011155, 0.096219 + -0.995400, 0.001044, 0.010918, 0.095177 + -0.995502, 0.001010, 0.010683, 0.094134 + -0.995602, 0.000977, 0.010451, 0.093092 + -0.995702, 0.000945, 0.010221, 0.092049 + -0.995800, 0.000913, 0.009994, 0.091006 + -0.995897, 0.000882, 0.009769, 0.089963 + -0.995993, 0.000852, 0.009546, 0.088920 + -0.996087, 0.000823, 0.009326, 0.087877 + -0.996181, 0.000794, 0.009108, 0.086833 + -0.996273, 0.000766, 0.008893, 0.085790 + -0.996364, 0.000738, 0.008681, 0.084746 + -0.996455, 0.000712, 0.008470, 0.083703 + -0.996543, 0.000685, 0.008263, 0.082659 + -0.996631, 0.000660, 0.008057, 0.081615 + -0.996718, 0.000635, 0.007854, 0.080571 + -0.996803, 0.000611, 0.007654, 0.079527 + -0.996887, 0.000587, 0.007456, 0.078483 + -0.996971, 0.000564, 0.007261, 0.077439 + -0.997052, 0.000542, 0.007068, 0.076394 + -0.997133, 0.000520, 0.006878, 0.075350 + -0.997213, 0.000498, 0.006690, 0.074306 + -0.997291, 0.000478, 0.006505, 0.073261 + -0.997369, 0.000458, 0.006322, 0.072216 + -0.997445, 0.000438, 0.006142, 0.071172 + -0.997520, 0.000419, 0.005964, 0.070127 + -0.997594, 0.000401, 0.005789, 0.069082 + -0.997667, 0.000383, 0.005616, 0.068037 + -0.997739, 0.000366, 0.005446, 0.066992 + -0.997809, 0.000349, 0.005279, 0.065947 + -0.997879, 0.000333, 0.005114, 0.064901 + -0.997947, 0.000317, 0.004951, 0.063856 + -0.998014, 0.000302, 0.004792, 0.062811 + -0.998080, 0.000287, 0.004634, 0.061765 + -0.998145, 0.000273, 0.004480, 0.060720 + -0.998208, 0.000259, 0.004327, 0.059674 + -0.998271, 0.000245, 0.004178, 0.058628 + -0.998333, 0.000232, 0.004031, 0.057583 + -0.998393, 0.000220, 0.003887, 0.056537 + -0.998452, 0.000208, 0.003745, 0.055491 + -0.998510, 0.000197, 0.003605, 0.054445 + -0.998567, 0.000186, 0.003469, 0.053399 + -0.998623, 0.000175, 0.003335, 0.052353 + -0.998678, 0.000165, 0.003203, 0.051307 + -0.998731, 0.000155, 0.003075, 0.050261 + -0.998784, 0.000145, 0.002948, 0.049215 + -0.998835, 0.000136, 0.002825, 0.048168 + -0.998885, 0.000128, 0.002704, 0.047122 + -0.998935, 0.000119, 0.002585, 0.046076 + -0.998983, 0.000111, 0.002470, 0.045029 + -0.999030, 0.000104, 0.002357, 0.043983 + -0.999075, 0.000097, 0.002246, 0.042936 + -0.999120, 0.000090, 0.002138, 0.041890 + -0.999164, 0.000083, 0.002033, 0.040843 + -0.999206, 0.000077, 0.001930, 0.039796 + -0.999247, 0.000071, 0.001830, 0.038749 + -0.999287, 0.000065, 0.001733, 0.037703 + -0.999327, 0.000060, 0.001638, 0.036656 + -0.999365, 0.000055, 0.001546, 0.035609 + -0.999401, 0.000050, 0.001457, 0.034562 + -0.999437, 0.000046, 0.001370, 0.033515 + -0.999472, 0.000042, 0.001286, 0.032468 + -0.999506, 0.000038, 0.001204, 0.031421 + -0.999538, 0.000034, 0.001126, 0.030374 + -0.999569, 0.000031, 0.001049, 0.029327 + -0.999600, 0.000028, 0.000976, 0.028280 + -0.999629, 0.000025, 0.000905, 0.027233 + -0.999657, 0.000022, 0.000837, 0.026186 + -0.999684, 0.000019, 0.000771, 0.025138 + -0.999710, 0.000017, 0.000708, 0.024091 + -0.999734, 0.000015, 0.000648, 0.023044 + -0.999758, 0.000013, 0.000591, 0.021997 + -0.999780, 0.000011, 0.000536, 0.020949 + -0.999802, 0.000010, 0.000484, 0.019902 + -0.999822, 0.000008, 0.000434, 0.018855 + -0.999841, 0.000007, 0.000387, 0.017807 + -0.999859, 0.000006, 0.000343, 0.016760 + -0.999877, 0.000005, 0.000302, 0.015713 + -0.999892, 0.000004, 0.000263, 0.014665 + -0.999907, 0.000003, 0.000226, 0.013618 + -0.999921, 0.000002, 0.000193, 0.012570 + -0.999934, 0.000002, 0.000162, 0.011523 + -0.999945, 0.000001, 0.000134, 0.010475 + -0.999956, 0.000001, 0.000109, 0.009428 + -0.999965, 0.000001, 0.000086, 0.008380 + -0.999973, 0.000000, 0.000066, 0.007333 + -0.999980, 0.000000, 0.000048, 0.006285 + -0.999986, 0.000000, 0.000034, 0.005238 + -0.999991, 0.000000, 0.000021, 0.004190 + -0.999995, 0.000000, 0.000012, 0.003143 + -0.999998, 0.000000, 0.000005, 0.002095 + -0.999999, 0.000000, 0.000001, 0.001048 + -1.000000, 0.000000, 0.000000, 0.000000 diff --git a/scripts/trajectories/const000.csv b/scripts/trajectories/const000.csv index 4d5b759074..b69f771961 100644 --- a/scripts/trajectories/const000.csv +++ b/scripts/trajectories/const000.csv @@ -1,4 +1,4 @@ -0,1.000000,0.000000,0.000000,0.000000 -1,1.000000,0.000000,0.000000,0.000000 -2,1.000000,0.000000,0.000000,0.000000 -3,1.000000,0.000000,0.000000,0.000000 \ No newline at end of file +1.000000,0.000000,0.000000,0.000000 +1.000000,0.000000,0.000000,0.000000 +1.000000,0.000000,0.000000,0.000000 +1.000000,0.000000,0.000000,0.000000 diff --git a/scripts/trajectories/const030.csv b/scripts/trajectories/const030.csv index 3f69e7a4de..4377d01caa 100644 --- a/scripts/trajectories/const030.csv +++ b/scripts/trajectories/const030.csv @@ -1,4 +1,4 @@ -0, 0.965926, 0.000000, 0.000000, 0.258819 -1, 0.965926, 0.000000, 0.000000, 0.258819 -2, 0.965926, 0.000000, 0.000000, 0.258819 -3, 0.965926, 0.000000, 0.000000, 0.258819 + 0.965926, 0.000000, 0.000000, 0.258819 + 0.965926, 0.000000, 0.000000, 0.258819 + 0.965926, 0.000000, 0.000000, 0.258819 + 0.965926, 0.000000, 0.000000, 0.258819 diff --git a/scripts/trajectories/const090.csv b/scripts/trajectories/const090.csv index a4ad541af8..405dd208e6 100644 --- a/scripts/trajectories/const090.csv +++ b/scripts/trajectories/const090.csv @@ -1,4 +1,4 @@ -0, 0.707107, 0.000000, 0.000000, 0.707107 -1, 0.707107, 0.000000, 0.000000, 0.707107 -2, 0.707107, 0.000000, 0.000000, 0.707107 -3, 0.707107, 0.000000, 0.000000, 0.707107 + 0.707107, 0.000000, 0.000000, 0.707107 + 0.707107, 0.000000, 0.000000, 0.707107 + 0.707107, 0.000000, 0.000000, 0.707107 + 0.707107, 0.000000, 0.000000, 0.707107 diff --git a/scripts/trajectories/const120.csv b/scripts/trajectories/const120.csv index 1223155235..67c810003a 100644 --- a/scripts/trajectories/const120.csv +++ b/scripts/trajectories/const120.csv @@ -1,4 +1,4 @@ -0,0.500000, 0.000000, 0.000000, 0.866025 -1,0.500000, 0.000000, 0.000000, 0.866025 -2,0.500000, 0.000000, 0.000000, 0.866025 -3,0.500000, 0.000000, 0.000000, 0.866025 +0.500000, 0.000000, 0.000000, 0.866025 +0.500000, 0.000000, 0.000000, 0.866025 +0.500000, 0.000000, 0.000000, 0.866025 +0.500000, 0.000000, 0.000000, 0.866025 diff --git a/scripts/trajectories/const180.csv b/scripts/trajectories/const180.csv index 2726f9792d..ac03b841e6 100644 --- a/scripts/trajectories/const180.csv +++ b/scripts/trajectories/const180.csv @@ -1,4 +1,4 @@ -0, 0.000000, 0.000000, 0.000000, 1.000000 -1, 0.000000, 0.000000, 0.000000, 1.000000 -2, 0.000000, 0.000000, 0.000000, 1.000000 -3, 0.000000, 0.000000, 0.000000, 1.000000 + 0.000000, 0.000000, 0.000000, 1.000000 + 0.000000, 0.000000, 0.000000, 1.000000 + 0.000000, 0.000000, 0.000000, 1.000000 + 0.000000, 0.000000, 0.000000, 1.000000 diff --git a/scripts/trajectories/const240.csv b/scripts/trajectories/const240.csv index 334cc081ab..889f1305e9 100644 --- a/scripts/trajectories/const240.csv +++ b/scripts/trajectories/const240.csv @@ -1,4 +1,4 @@ -0,-0.500000,-0.000000,0.000000,0.866025 -1,-0.500000,-0.000000,0.000000,0.866025 -2,-0.500000,-0.000000,0.000000,0.866025 -3,-0.500000,-0.000000,0.000000,0.866025 \ No newline at end of file +-0.500000,-0.000000,0.000000,0.866025 +-0.500000,-0.000000,0.000000,0.866025 +-0.500000,-0.000000,0.000000,0.866025 +-0.500000,-0.000000,0.000000,0.866025 diff --git a/scripts/trajectories/const250.csv b/scripts/trajectories/const250.csv index 36988c3104..c4e9b663ad 100644 --- a/scripts/trajectories/const250.csv +++ b/scripts/trajectories/const250.csv @@ -1,4 +1,4 @@ -0,-0.573576, -0.000000, 0.000000, 0.819152 -1,-0.573576, -0.000000, 0.000000, 0.819152 -2,-0.573576, -0.000000, 0.000000, 0.819152 -3,-0.573576, -0.000000, 0.000000, 0.819152 \ No newline at end of file +-0.573576, -0.000000, 0.000000, 0.819152 +-0.573576, -0.000000, 0.000000, 0.819152 +-0.573576, -0.000000, 0.000000, 0.819152 +-0.573576, -0.000000, 0.000000, 0.819152 diff --git a/scripts/trajectories/const270.csv b/scripts/trajectories/const270.csv index b514025192..5545542b3e 100644 --- a/scripts/trajectories/const270.csv +++ b/scripts/trajectories/const270.csv @@ -1,4 +1,4 @@ -0,-0.707107, -0.000000, 0.000000, 0.707107 -1,-0.707107, -0.000000, 0.000000, 0.707107 -2,-0.707107, -0.000000, 0.000000, 0.707107 -3,-0.707107, -0.000000, 0.000000, 0.707107 \ No newline at end of file +-0.707107, -0.000000, 0.000000, 0.707107 +-0.707107, -0.000000, 0.000000, 0.707107 +-0.707107, -0.000000, 0.000000, 0.707107 +-0.707107, -0.000000, 0.000000, 0.707107 diff --git a/scripts/trajectories/const320.csv b/scripts/trajectories/const320.csv index 2410a66225..04daca18ed 100644 --- a/scripts/trajectories/const320.csv +++ b/scripts/trajectories/const320.csv @@ -1,4 +1,4 @@ -0,-0.939693, -0.000000, 0.000000, 0.342020 -1,-0.939693, -0.000000, 0.000000, 0.342020 -2,-0.939693, -0.000000, 0.000000, 0.342020 -3,-0.939693, -0.000000, 0.000000, 0.342020 \ No newline at end of file +-0.939693, -0.000000, 0.000000, 0.342020 +-0.939693, -0.000000, 0.000000, 0.342020 +-0.939693, -0.000000, 0.000000, 0.342020 +-0.939693, -0.000000, 0.000000, 0.342020 diff --git a/scripts/trajectories/full-circle-15s.csv b/scripts/trajectories/full-circle-15s.csv index 692a4649fb..768535c1c1 100644 --- a/scripts/trajectories/full-circle-15s.csv +++ b/scripts/trajectories/full-circle-15s.csv @@ -1,3000 +1,3000 @@ -0, 1.000000, 0.000000, 0.000000, 0.000000 -1, 0.999999, 0.000000, 0.000000, 0.001048 -2, 0.999998, 0.000000, 0.000000, 0.002095 -3, 0.999995, 0.000000, 0.000000, 0.003143 -4, 0.999991, 0.000000, 0.000000, 0.004190 -5, 0.999986, 0.000000, 0.000000, 0.005238 -6, 0.999980, 0.000000, 0.000000, 0.006285 -7, 0.999973, 0.000000, 0.000000, 0.007333 -8, 0.999965, 0.000000, 0.000000, 0.008380 -9, 0.999956, 0.000000, 0.000000, 0.009428 -10, 0.999945, 0.000000, 0.000000, 0.010475 -11, 0.999934, 0.000000, 0.000000, 0.011523 -12, 0.999921, 0.000000, 0.000000, 0.012570 -13, 0.999907, 0.000000, 0.000000, 0.013618 -14, 0.999892, 0.000000, 0.000000, 0.014665 -15, 0.999877, 0.000000, 0.000000, 0.015713 -16, 0.999860, 0.000000, 0.000000, 0.016760 -17, 0.999841, 0.000000, 0.000000, 0.017807 -18, 0.999822, 0.000000, 0.000000, 0.018855 -19, 0.999802, 0.000000, 0.000000, 0.019902 -20, 0.999781, 0.000000, 0.000000, 0.020949 -21, 0.999758, 0.000000, 0.000000, 0.021997 -22, 0.999734, 0.000000, 0.000000, 0.023044 -23, 0.999710, 0.000000, 0.000000, 0.024091 -24, 0.999684, 0.000000, 0.000000, 0.025138 -25, 0.999657, 0.000000, 0.000000, 0.026186 -26, 0.999629, 0.000000, 0.000000, 0.027233 -27, 0.999600, 0.000000, 0.000000, 0.028280 -28, 0.999570, 0.000000, 0.000000, 0.029327 -29, 0.999539, 0.000000, 0.000000, 0.030374 -30, 0.999506, 0.000000, 0.000000, 0.031421 -31, 0.999473, 0.000000, 0.000000, 0.032468 -32, 0.999438, 0.000000, 0.000000, 0.033515 -33, 0.999403, 0.000000, 0.000000, 0.034562 -34, 0.999366, 0.000000, 0.000000, 0.035609 -35, 0.999328, 0.000000, 0.000000, 0.036656 -36, 0.999289, 0.000000, 0.000000, 0.037703 -37, 0.999249, 0.000000, 0.000000, 0.038750 -38, 0.999208, 0.000000, 0.000000, 0.039796 -39, 0.999166, 0.000000, 0.000000, 0.040843 -40, 0.999122, 0.000000, 0.000000, 0.041890 -41, 0.999078, 0.000000, 0.000000, 0.042936 -42, 0.999032, 0.000000, 0.000000, 0.043983 -43, 0.998986, 0.000000, 0.000000, 0.045029 -44, 0.998938, 0.000000, 0.000000, 0.046076 -45, 0.998889, 0.000000, 0.000000, 0.047122 -46, 0.998839, 0.000000, 0.000000, 0.048169 -47, 0.998788, 0.000000, 0.000000, 0.049215 -48, 0.998736, 0.000000, 0.000000, 0.050261 -49, 0.998683, 0.000000, 0.000000, 0.051307 -50, 0.998629, 0.000000, 0.000000, 0.052353 -51, 0.998573, 0.000000, 0.000000, 0.053399 -52, 0.998517, 0.000000, 0.000000, 0.054445 -53, 0.998459, 0.000000, 0.000000, 0.055491 -54, 0.998400, 0.000000, 0.000000, 0.056537 -55, 0.998341, 0.000000, 0.000000, 0.057583 -56, 0.998280, 0.000000, 0.000000, 0.058629 -57, 0.998218, 0.000000, 0.000000, 0.059675 -58, 0.998155, 0.000000, 0.000000, 0.060720 -59, 0.998091, 0.000000, 0.000000, 0.061766 -60, 0.998025, 0.000000, 0.000000, 0.062811 -61, 0.997959, 0.000000, 0.000000, 0.063857 -62, 0.997892, 0.000000, 0.000000, 0.064902 -63, 0.997823, 0.000000, 0.000000, 0.065948 -64, 0.997753, 0.000000, 0.000000, 0.066993 -65, 0.997683, 0.000000, 0.000000, 0.068038 -66, 0.997611, 0.000000, 0.000000, 0.069083 -67, 0.997538, 0.000000, 0.000000, 0.070128 -68, 0.997464, 0.000000, 0.000000, 0.071173 -69, 0.997389, 0.000000, 0.000000, 0.072218 -70, 0.997313, 0.000000, 0.000000, 0.073263 -71, 0.997235, 0.000000, 0.000000, 0.074307 -72, 0.997157, 0.000000, 0.000000, 0.075352 -73, 0.997078, 0.000000, 0.000000, 0.076396 -74, 0.996997, 0.000000, 0.000000, 0.077441 -75, 0.996915, 0.000000, 0.000000, 0.078485 -76, 0.996833, 0.000000, 0.000000, 0.079529 -77, 0.996749, 0.000000, 0.000000, 0.080574 -78, 0.996664, 0.000000, 0.000000, 0.081618 -79, 0.996578, 0.000000, 0.000000, 0.082662 -80, 0.996491, 0.000000, 0.000000, 0.083706 -81, 0.996402, 0.000000, 0.000000, 0.084750 -82, 0.996313, 0.000000, 0.000000, 0.085793 -83, 0.996223, 0.000000, 0.000000, 0.086837 -84, 0.996131, 0.000000, 0.000000, 0.087880 -85, 0.996038, 0.000000, 0.000000, 0.088924 -86, 0.995945, 0.000000, 0.000000, 0.089967 -87, 0.995850, 0.000000, 0.000000, 0.091010 -88, 0.995754, 0.000000, 0.000000, 0.092054 -89, 0.995657, 0.000000, 0.000000, 0.093097 -90, 0.995559, 0.000000, 0.000000, 0.094140 -91, 0.995460, 0.000000, 0.000000, 0.095182 -92, 0.995360, 0.000000, 0.000000, 0.096225 -93, 0.995258, 0.000000, 0.000000, 0.097268 -94, 0.995156, 0.000000, 0.000000, 0.098310 -95, 0.995052, 0.000000, 0.000000, 0.099353 -96, 0.994948, 0.000000, 0.000000, 0.100395 -97, 0.994842, 0.000000, 0.000000, 0.101437 -98, 0.994735, 0.000000, 0.000000, 0.102479 -99, 0.994627, 0.000000, 0.000000, 0.103521 -100, 0.994518, 0.000000, 0.000000, 0.104563 -101, 0.994408, 0.000000, 0.000000, 0.105605 -102, 0.994297, 0.000000, 0.000000, 0.106647 -103, 0.994185, 0.000000, 0.000000, 0.107688 -104, 0.994071, 0.000000, 0.000000, 0.108729 -105, 0.993957, 0.000000, 0.000000, 0.109771 -106, 0.993841, 0.000000, 0.000000, 0.110812 -107, 0.993725, 0.000000, 0.000000, 0.111853 -108, 0.993607, 0.000000, 0.000000, 0.112894 -109, 0.993488, 0.000000, 0.000000, 0.113935 -110, 0.993368, 0.000000, 0.000000, 0.114975 -111, 0.993247, 0.000000, 0.000000, 0.116016 -112, 0.993125, 0.000000, 0.000000, 0.117056 -113, 0.993002, 0.000000, 0.000000, 0.118097 -114, 0.992878, 0.000000, 0.000000, 0.119137 -115, 0.992753, 0.000000, 0.000000, 0.120177 -116, 0.992626, 0.000000, 0.000000, 0.121217 -117, 0.992499, 0.000000, 0.000000, 0.122256 -118, 0.992370, 0.000000, 0.000000, 0.123296 -119, 0.992240, 0.000000, 0.000000, 0.124335 -120, 0.992109, 0.000000, 0.000000, 0.125375 -121, 0.991978, 0.000000, 0.000000, 0.126414 -122, 0.991845, 0.000000, 0.000000, 0.127453 -123, 0.991711, 0.000000, 0.000000, 0.128492 -124, 0.991575, 0.000000, 0.000000, 0.129531 -125, 0.991439, 0.000000, 0.000000, 0.130569 -126, 0.991302, 0.000000, 0.000000, 0.131608 -127, 0.991163, 0.000000, 0.000000, 0.132646 -128, 0.991024, 0.000000, 0.000000, 0.133685 -129, 0.990883, 0.000000, 0.000000, 0.134723 -130, 0.990742, 0.000000, 0.000000, 0.135761 -131, 0.990599, 0.000000, 0.000000, 0.136798 -132, 0.990455, 0.000000, 0.000000, 0.137836 -133, 0.990310, 0.000000, 0.000000, 0.138873 -134, 0.990164, 0.000000, 0.000000, 0.139911 -135, 0.990017, 0.000000, 0.000000, 0.140948 -136, 0.989869, 0.000000, 0.000000, 0.141985 -137, 0.989720, 0.000000, 0.000000, 0.143022 -138, 0.989569, 0.000000, 0.000000, 0.144058 -139, 0.989418, 0.000000, 0.000000, 0.145095 -140, 0.989265, 0.000000, 0.000000, 0.146131 -141, 0.989112, 0.000000, 0.000000, 0.147168 -142, 0.988957, 0.000000, 0.000000, 0.148204 -143, 0.988801, 0.000000, 0.000000, 0.149240 -144, 0.988644, 0.000000, 0.000000, 0.150275 -145, 0.988486, 0.000000, 0.000000, 0.151311 -146, 0.988327, 0.000000, 0.000000, 0.152346 -147, 0.988167, 0.000000, 0.000000, 0.153382 -148, 0.988006, 0.000000, 0.000000, 0.154417 -149, 0.987844, 0.000000, 0.000000, 0.155451 -150, 0.987680, 0.000000, 0.000000, 0.156486 -151, 0.987516, 0.000000, 0.000000, 0.157521 -152, 0.987350, 0.000000, 0.000000, 0.158555 -153, 0.987183, 0.000000, 0.000000, 0.159589 -154, 0.987016, 0.000000, 0.000000, 0.160623 -155, 0.986847, 0.000000, 0.000000, 0.161657 -156, 0.986677, 0.000000, 0.000000, 0.162691 -157, 0.986506, 0.000000, 0.000000, 0.163724 -158, 0.986334, 0.000000, 0.000000, 0.164758 -159, 0.986161, 0.000000, 0.000000, 0.165791 -160, 0.985987, 0.000000, 0.000000, 0.166824 -161, 0.985811, 0.000000, 0.000000, 0.167857 -162, 0.985635, 0.000000, 0.000000, 0.168889 -163, 0.985458, 0.000000, 0.000000, 0.169922 -164, 0.985279, 0.000000, 0.000000, 0.170954 -165, 0.985099, 0.000000, 0.000000, 0.171986 -166, 0.984919, 0.000000, 0.000000, 0.173018 -167, 0.984737, 0.000000, 0.000000, 0.174049 -168, 0.984554, 0.000000, 0.000000, 0.175081 -169, 0.984370, 0.000000, 0.000000, 0.176112 -170, 0.984185, 0.000000, 0.000000, 0.177143 -171, 0.983999, 0.000000, 0.000000, 0.178174 -172, 0.983812, 0.000000, 0.000000, 0.179205 -173, 0.983624, 0.000000, 0.000000, 0.180235 -174, 0.983434, 0.000000, 0.000000, 0.181266 -175, 0.983244, 0.000000, 0.000000, 0.182296 -176, 0.983052, 0.000000, 0.000000, 0.183326 -177, 0.982860, 0.000000, 0.000000, 0.184355 -178, 0.982666, 0.000000, 0.000000, 0.185385 -179, 0.982471, 0.000000, 0.000000, 0.186414 -180, 0.982275, 0.000000, 0.000000, 0.187443 -181, 0.982079, 0.000000, 0.000000, 0.188472 -182, 0.981881, 0.000000, 0.000000, 0.189501 -183, 0.981682, 0.000000, 0.000000, 0.190529 -184, 0.981481, 0.000000, 0.000000, 0.191557 -185, 0.981280, 0.000000, 0.000000, 0.192585 -186, 0.981078, 0.000000, 0.000000, 0.193613 -187, 0.980875, 0.000000, 0.000000, 0.194641 -188, 0.980670, 0.000000, 0.000000, 0.195668 -189, 0.980465, 0.000000, 0.000000, 0.196695 -190, 0.980258, 0.000000, 0.000000, 0.197722 -191, 0.980050, 0.000000, 0.000000, 0.198749 -192, 0.979842, 0.000000, 0.000000, 0.199776 -193, 0.979632, 0.000000, 0.000000, 0.200802 -194, 0.979421, 0.000000, 0.000000, 0.201828 -195, 0.979209, 0.000000, 0.000000, 0.202854 -196, 0.978996, 0.000000, 0.000000, 0.203880 -197, 0.978782, 0.000000, 0.000000, 0.204905 -198, 0.978567, 0.000000, 0.000000, 0.205930 -199, 0.978350, 0.000000, 0.000000, 0.206955 -200, 0.978133, 0.000000, 0.000000, 0.207980 -201, 0.977915, 0.000000, 0.000000, 0.209005 -202, 0.977695, 0.000000, 0.000000, 0.210029 -203, 0.977475, 0.000000, 0.000000, 0.211053 -204, 0.977253, 0.000000, 0.000000, 0.212077 -205, 0.977030, 0.000000, 0.000000, 0.213100 -206, 0.976807, 0.000000, 0.000000, 0.214124 -207, 0.976582, 0.000000, 0.000000, 0.215147 -208, 0.976356, 0.000000, 0.000000, 0.216170 -209, 0.976129, 0.000000, 0.000000, 0.217192 -210, 0.975901, 0.000000, 0.000000, 0.218215 -211, 0.975672, 0.000000, 0.000000, 0.219237 -212, 0.975441, 0.000000, 0.000000, 0.220259 -213, 0.975210, 0.000000, 0.000000, 0.221281 -214, 0.974978, 0.000000, 0.000000, 0.222302 -215, 0.974744, 0.000000, 0.000000, 0.223323 -216, 0.974510, 0.000000, 0.000000, 0.224344 -217, 0.974274, 0.000000, 0.000000, 0.225365 -218, 0.974038, 0.000000, 0.000000, 0.226385 -219, 0.973800, 0.000000, 0.000000, 0.227406 -220, 0.973561, 0.000000, 0.000000, 0.228426 -221, 0.973322, 0.000000, 0.000000, 0.229445 -222, 0.973081, 0.000000, 0.000000, 0.230465 -223, 0.972839, 0.000000, 0.000000, 0.231484 -224, 0.972596, 0.000000, 0.000000, 0.232503 -225, 0.972352, 0.000000, 0.000000, 0.233522 -226, 0.972106, 0.000000, 0.000000, 0.234540 -227, 0.971860, 0.000000, 0.000000, 0.235558 -228, 0.971613, 0.000000, 0.000000, 0.236576 -229, 0.971365, 0.000000, 0.000000, 0.237594 -230, 0.971115, 0.000000, 0.000000, 0.238611 -231, 0.970865, 0.000000, 0.000000, 0.239629 -232, 0.970613, 0.000000, 0.000000, 0.240646 -233, 0.970360, 0.000000, 0.000000, 0.241662 -234, 0.970107, 0.000000, 0.000000, 0.242678 -235, 0.969852, 0.000000, 0.000000, 0.243695 -236, 0.969596, 0.000000, 0.000000, 0.244710 -237, 0.969339, 0.000000, 0.000000, 0.245726 -238, 0.969081, 0.000000, 0.000000, 0.246741 -239, 0.968822, 0.000000, 0.000000, 0.247756 -240, 0.968562, 0.000000, 0.000000, 0.248771 -241, 0.968301, 0.000000, 0.000000, 0.249786 -242, 0.968039, 0.000000, 0.000000, 0.250800 -243, 0.967776, 0.000000, 0.000000, 0.251814 -244, 0.967511, 0.000000, 0.000000, 0.252827 -245, 0.967246, 0.000000, 0.000000, 0.253841 -246, 0.966980, 0.000000, 0.000000, 0.254854 -247, 0.966712, 0.000000, 0.000000, 0.255867 -248, 0.966444, 0.000000, 0.000000, 0.256879 -249, 0.966174, 0.000000, 0.000000, 0.257891 -250, 0.965903, 0.000000, 0.000000, 0.258903 -251, 0.965631, 0.000000, 0.000000, 0.259915 -252, 0.965359, 0.000000, 0.000000, 0.260926 -253, 0.965085, 0.000000, 0.000000, 0.261938 -254, 0.964810, 0.000000, 0.000000, 0.262948 -255, 0.964534, 0.000000, 0.000000, 0.263959 -256, 0.964257, 0.000000, 0.000000, 0.264969 -257, 0.963979, 0.000000, 0.000000, 0.265979 -258, 0.963700, 0.000000, 0.000000, 0.266989 -259, 0.963419, 0.000000, 0.000000, 0.267998 -260, 0.963138, 0.000000, 0.000000, 0.269007 -261, 0.962856, 0.000000, 0.000000, 0.270016 -262, 0.962572, 0.000000, 0.000000, 0.271025 -263, 0.962288, 0.000000, 0.000000, 0.272033 -264, 0.962003, 0.000000, 0.000000, 0.273041 -265, 0.961716, 0.000000, 0.000000, 0.274048 -266, 0.961428, 0.000000, 0.000000, 0.275056 -267, 0.961140, 0.000000, 0.000000, 0.276062 -268, 0.960850, 0.000000, 0.000000, 0.277069 -269, 0.960559, 0.000000, 0.000000, 0.278076 -270, 0.960267, 0.000000, 0.000000, 0.279082 -271, 0.959975, 0.000000, 0.000000, 0.280087 -272, 0.959681, 0.000000, 0.000000, 0.281093 -273, 0.959386, 0.000000, 0.000000, 0.282098 -274, 0.959090, 0.000000, 0.000000, 0.283103 -275, 0.958792, 0.000000, 0.000000, 0.284107 -276, 0.958494, 0.000000, 0.000000, 0.285112 -277, 0.958195, 0.000000, 0.000000, 0.286116 -278, 0.957895, 0.000000, 0.000000, 0.287119 -279, 0.957594, 0.000000, 0.000000, 0.288122 -280, 0.957291, 0.000000, 0.000000, 0.289125 -281, 0.956988, 0.000000, 0.000000, 0.290128 -282, 0.956683, 0.000000, 0.000000, 0.291130 -283, 0.956378, 0.000000, 0.000000, 0.292132 -284, 0.956071, 0.000000, 0.000000, 0.293134 -285, 0.955764, 0.000000, 0.000000, 0.294135 -286, 0.955455, 0.000000, 0.000000, 0.295136 -287, 0.955145, 0.000000, 0.000000, 0.296137 -288, 0.954835, 0.000000, 0.000000, 0.297138 -289, 0.954523, 0.000000, 0.000000, 0.298138 -290, 0.954210, 0.000000, 0.000000, 0.299137 -291, 0.953896, 0.000000, 0.000000, 0.300137 -292, 0.953581, 0.000000, 0.000000, 0.301136 -293, 0.953265, 0.000000, 0.000000, 0.302135 -294, 0.952948, 0.000000, 0.000000, 0.303133 -295, 0.952630, 0.000000, 0.000000, 0.304131 -296, 0.952311, 0.000000, 0.000000, 0.305129 -297, 0.951991, 0.000000, 0.000000, 0.306126 -298, 0.951670, 0.000000, 0.000000, 0.307123 -299, 0.951347, 0.000000, 0.000000, 0.308120 -300, 0.951024, 0.000000, 0.000000, 0.309117 -301, 0.950700, 0.000000, 0.000000, 0.310113 -302, 0.950374, 0.000000, 0.000000, 0.311108 -303, 0.950048, 0.000000, 0.000000, 0.312104 -304, 0.949721, 0.000000, 0.000000, 0.313099 -305, 0.949392, 0.000000, 0.000000, 0.314094 -306, 0.949062, 0.000000, 0.000000, 0.315088 -307, 0.948732, 0.000000, 0.000000, 0.316082 -308, 0.948400, 0.000000, 0.000000, 0.317076 -309, 0.948068, 0.000000, 0.000000, 0.318069 -310, 0.947734, 0.000000, 0.000000, 0.319062 -311, 0.947399, 0.000000, 0.000000, 0.320055 -312, 0.947063, 0.000000, 0.000000, 0.321047 -313, 0.946727, 0.000000, 0.000000, 0.322039 -314, 0.946389, 0.000000, 0.000000, 0.323030 -315, 0.946050, 0.000000, 0.000000, 0.324021 -316, 0.945710, 0.000000, 0.000000, 0.325012 -317, 0.945369, 0.000000, 0.000000, 0.326003 -318, 0.945027, 0.000000, 0.000000, 0.326993 -319, 0.944684, 0.000000, 0.000000, 0.327983 -320, 0.944340, 0.000000, 0.000000, 0.328972 -321, 0.943994, 0.000000, 0.000000, 0.329961 -322, 0.943648, 0.000000, 0.000000, 0.330950 -323, 0.943301, 0.000000, 0.000000, 0.331938 -324, 0.942953, 0.000000, 0.000000, 0.332926 -325, 0.942604, 0.000000, 0.000000, 0.333914 -326, 0.942253, 0.000000, 0.000000, 0.334901 -327, 0.941902, 0.000000, 0.000000, 0.335888 -328, 0.941550, 0.000000, 0.000000, 0.336874 -329, 0.941196, 0.000000, 0.000000, 0.337861 -330, 0.940842, 0.000000, 0.000000, 0.338846 -331, 0.940486, 0.000000, 0.000000, 0.339832 -332, 0.940130, 0.000000, 0.000000, 0.340817 -333, 0.939772, 0.000000, 0.000000, 0.341801 -334, 0.939414, 0.000000, 0.000000, 0.342786 -335, 0.939054, 0.000000, 0.000000, 0.343770 -336, 0.938693, 0.000000, 0.000000, 0.344753 -337, 0.938332, 0.000000, 0.000000, 0.345736 -338, 0.937969, 0.000000, 0.000000, 0.346719 -339, 0.937605, 0.000000, 0.000000, 0.347701 -340, 0.937241, 0.000000, 0.000000, 0.348683 -341, 0.936875, 0.000000, 0.000000, 0.349665 -342, 0.936508, 0.000000, 0.000000, 0.350646 -343, 0.936140, 0.000000, 0.000000, 0.351627 -344, 0.935771, 0.000000, 0.000000, 0.352607 -345, 0.935401, 0.000000, 0.000000, 0.353588 -346, 0.935031, 0.000000, 0.000000, 0.354567 -347, 0.934659, 0.000000, 0.000000, 0.355547 -348, 0.934286, 0.000000, 0.000000, 0.356525 -349, 0.933912, 0.000000, 0.000000, 0.357504 -350, 0.933537, 0.000000, 0.000000, 0.358482 -351, 0.933161, 0.000000, 0.000000, 0.359460 -352, 0.932784, 0.000000, 0.000000, 0.360437 -353, 0.932405, 0.000000, 0.000000, 0.361414 -354, 0.932026, 0.000000, 0.000000, 0.362391 -355, 0.931646, 0.000000, 0.000000, 0.363367 -356, 0.931265, 0.000000, 0.000000, 0.364342 -357, 0.930883, 0.000000, 0.000000, 0.365318 -358, 0.930500, 0.000000, 0.000000, 0.366293 -359, 0.930115, 0.000000, 0.000000, 0.367267 -360, 0.929730, 0.000000, 0.000000, 0.368241 -361, 0.929344, 0.000000, 0.000000, 0.369215 -362, 0.928957, 0.000000, 0.000000, 0.370188 -363, 0.928568, 0.000000, 0.000000, 0.371161 -364, 0.928179, 0.000000, 0.000000, 0.372134 -365, 0.927789, 0.000000, 0.000000, 0.373106 -366, 0.927397, 0.000000, 0.000000, 0.374078 -367, 0.927005, 0.000000, 0.000000, 0.375049 -368, 0.926612, 0.000000, 0.000000, 0.376020 -369, 0.926217, 0.000000, 0.000000, 0.376990 -370, 0.925822, 0.000000, 0.000000, 0.377960 -371, 0.925425, 0.000000, 0.000000, 0.378930 -372, 0.925028, 0.000000, 0.000000, 0.379899 -373, 0.924629, 0.000000, 0.000000, 0.380868 -374, 0.924230, 0.000000, 0.000000, 0.381836 -375, 0.923829, 0.000000, 0.000000, 0.382804 -376, 0.923428, 0.000000, 0.000000, 0.383772 -377, 0.923025, 0.000000, 0.000000, 0.384739 -378, 0.922622, 0.000000, 0.000000, 0.385706 -379, 0.922217, 0.000000, 0.000000, 0.386672 -380, 0.921812, 0.000000, 0.000000, 0.387638 -381, 0.921405, 0.000000, 0.000000, 0.388603 -382, 0.920998, 0.000000, 0.000000, 0.389568 -383, 0.920589, 0.000000, 0.000000, 0.390533 -384, 0.920179, 0.000000, 0.000000, 0.391497 -385, 0.919769, 0.000000, 0.000000, 0.392461 -386, 0.919357, 0.000000, 0.000000, 0.393424 -387, 0.918944, 0.000000, 0.000000, 0.394387 -388, 0.918531, 0.000000, 0.000000, 0.395349 -389, 0.918116, 0.000000, 0.000000, 0.396311 -390, 0.917701, 0.000000, 0.000000, 0.397273 -391, 0.917284, 0.000000, 0.000000, 0.398234 -392, 0.916866, 0.000000, 0.000000, 0.399195 -393, 0.916448, 0.000000, 0.000000, 0.400155 -394, 0.916028, 0.000000, 0.000000, 0.401115 -395, 0.915607, 0.000000, 0.000000, 0.402074 -396, 0.915185, 0.000000, 0.000000, 0.403033 -397, 0.914763, 0.000000, 0.000000, 0.403991 -398, 0.914339, 0.000000, 0.000000, 0.404950 -399, 0.913914, 0.000000, 0.000000, 0.405907 -400, 0.913489, 0.000000, 0.000000, 0.406864 -401, 0.913062, 0.000000, 0.000000, 0.407821 -402, 0.912634, 0.000000, 0.000000, 0.408777 -403, 0.912206, 0.000000, 0.000000, 0.409733 -404, 0.911776, 0.000000, 0.000000, 0.410688 -405, 0.911345, 0.000000, 0.000000, 0.411643 -406, 0.910913, 0.000000, 0.000000, 0.412598 -407, 0.910481, 0.000000, 0.000000, 0.413552 -408, 0.910047, 0.000000, 0.000000, 0.414505 -409, 0.909612, 0.000000, 0.000000, 0.415458 -410, 0.909177, 0.000000, 0.000000, 0.416411 -411, 0.908740, 0.000000, 0.000000, 0.417363 -412, 0.908302, 0.000000, 0.000000, 0.418315 -413, 0.907863, 0.000000, 0.000000, 0.419266 -414, 0.907424, 0.000000, 0.000000, 0.420217 -415, 0.906983, 0.000000, 0.000000, 0.421167 -416, 0.906541, 0.000000, 0.000000, 0.422117 -417, 0.906099, 0.000000, 0.000000, 0.423067 -418, 0.905655, 0.000000, 0.000000, 0.424015 -419, 0.905210, 0.000000, 0.000000, 0.424964 -420, 0.904765, 0.000000, 0.000000, 0.425912 -421, 0.904318, 0.000000, 0.000000, 0.426860 -422, 0.903870, 0.000000, 0.000000, 0.427807 -423, 0.903422, 0.000000, 0.000000, 0.428753 -424, 0.902972, 0.000000, 0.000000, 0.429699 -425, 0.902521, 0.000000, 0.000000, 0.430645 -426, 0.902070, 0.000000, 0.000000, 0.431590 -427, 0.901617, 0.000000, 0.000000, 0.432535 -428, 0.901164, 0.000000, 0.000000, 0.433479 -429, 0.900709, 0.000000, 0.000000, 0.434423 -430, 0.900253, 0.000000, 0.000000, 0.435366 -431, 0.899797, 0.000000, 0.000000, 0.436309 -432, 0.899339, 0.000000, 0.000000, 0.437251 -433, 0.898881, 0.000000, 0.000000, 0.438193 -434, 0.898421, 0.000000, 0.000000, 0.439135 -435, 0.897961, 0.000000, 0.000000, 0.440076 -436, 0.897499, 0.000000, 0.000000, 0.441016 -437, 0.897037, 0.000000, 0.000000, 0.441956 -438, 0.896573, 0.000000, 0.000000, 0.442895 -439, 0.896109, 0.000000, 0.000000, 0.443834 -440, 0.895643, 0.000000, 0.000000, 0.444773 -441, 0.895177, 0.000000, 0.000000, 0.445711 -442, 0.894710, 0.000000, 0.000000, 0.446648 -443, 0.894241, 0.000000, 0.000000, 0.447585 -444, 0.893772, 0.000000, 0.000000, 0.448522 -445, 0.893302, 0.000000, 0.000000, 0.449458 -446, 0.892830, 0.000000, 0.000000, 0.450393 -447, 0.892358, 0.000000, 0.000000, 0.451328 -448, 0.891885, 0.000000, 0.000000, 0.452263 -449, 0.891410, 0.000000, 0.000000, 0.453197 -450, 0.890935, 0.000000, 0.000000, 0.454130 -451, 0.890459, 0.000000, 0.000000, 0.455064 -452, 0.889982, 0.000000, 0.000000, 0.455996 -453, 0.889504, 0.000000, 0.000000, 0.456928 -454, 0.889024, 0.000000, 0.000000, 0.457860 -455, 0.888544, 0.000000, 0.000000, 0.458791 -456, 0.888063, 0.000000, 0.000000, 0.459721 -457, 0.887581, 0.000000, 0.000000, 0.460651 -458, 0.887098, 0.000000, 0.000000, 0.461581 -459, 0.886614, 0.000000, 0.000000, 0.462510 -460, 0.886129, 0.000000, 0.000000, 0.463438 -461, 0.885643, 0.000000, 0.000000, 0.464366 -462, 0.885156, 0.000000, 0.000000, 0.465294 -463, 0.884668, 0.000000, 0.000000, 0.466221 -464, 0.884179, 0.000000, 0.000000, 0.467147 -465, 0.883690, 0.000000, 0.000000, 0.468073 -466, 0.883199, 0.000000, 0.000000, 0.468999 -467, 0.882707, 0.000000, 0.000000, 0.469924 -468, 0.882214, 0.000000, 0.000000, 0.470848 -469, 0.881721, 0.000000, 0.000000, 0.471772 -470, 0.881226, 0.000000, 0.000000, 0.472695 -471, 0.880730, 0.000000, 0.000000, 0.473618 -472, 0.880234, 0.000000, 0.000000, 0.474541 -473, 0.879736, 0.000000, 0.000000, 0.475462 -474, 0.879237, 0.000000, 0.000000, 0.476384 -475, 0.878738, 0.000000, 0.000000, 0.477305 -476, 0.878237, 0.000000, 0.000000, 0.478225 -477, 0.877736, 0.000000, 0.000000, 0.479145 -478, 0.877234, 0.000000, 0.000000, 0.480064 -479, 0.876730, 0.000000, 0.000000, 0.480982 -480, 0.876226, 0.000000, 0.000000, 0.481901 -481, 0.875721, 0.000000, 0.000000, 0.482818 -482, 0.875214, 0.000000, 0.000000, 0.483735 -483, 0.874707, 0.000000, 0.000000, 0.484652 -484, 0.874199, 0.000000, 0.000000, 0.485568 -485, 0.873690, 0.000000, 0.000000, 0.486483 -486, 0.873180, 0.000000, 0.000000, 0.487398 -487, 0.872669, 0.000000, 0.000000, 0.488313 -488, 0.872157, 0.000000, 0.000000, 0.489227 -489, 0.871644, 0.000000, 0.000000, 0.490140 -490, 0.871130, 0.000000, 0.000000, 0.491053 -491, 0.870615, 0.000000, 0.000000, 0.491965 -492, 0.870099, 0.000000, 0.000000, 0.492877 -493, 0.869582, 0.000000, 0.000000, 0.493788 -494, 0.869065, 0.000000, 0.000000, 0.494699 -495, 0.868546, 0.000000, 0.000000, 0.495609 -496, 0.868026, 0.000000, 0.000000, 0.496518 -497, 0.867506, 0.000000, 0.000000, 0.497427 -498, 0.866984, 0.000000, 0.000000, 0.498336 -499, 0.866462, 0.000000, 0.000000, 0.499244 -500, 0.865938, 0.000000, 0.000000, 0.500151 -501, 0.865414, 0.000000, 0.000000, 0.501058 -502, 0.864888, 0.000000, 0.000000, 0.501964 -503, 0.864362, 0.000000, 0.000000, 0.502870 -504, 0.863835, 0.000000, 0.000000, 0.503775 -505, 0.863307, 0.000000, 0.000000, 0.504680 -506, 0.862777, 0.000000, 0.000000, 0.505584 -507, 0.862247, 0.000000, 0.000000, 0.506487 -508, 0.861716, 0.000000, 0.000000, 0.507390 -509, 0.861184, 0.000000, 0.000000, 0.508293 -510, 0.860651, 0.000000, 0.000000, 0.509195 -511, 0.860117, 0.000000, 0.000000, 0.510096 -512, 0.859583, 0.000000, 0.000000, 0.510997 -513, 0.859047, 0.000000, 0.000000, 0.511897 -514, 0.858510, 0.000000, 0.000000, 0.512797 -515, 0.857973, 0.000000, 0.000000, 0.513696 -516, 0.857434, 0.000000, 0.000000, 0.514594 -517, 0.856894, 0.000000, 0.000000, 0.515492 -518, 0.856354, 0.000000, 0.000000, 0.516389 -519, 0.855813, 0.000000, 0.000000, 0.517286 -520, 0.855270, 0.000000, 0.000000, 0.518182 -521, 0.854727, 0.000000, 0.000000, 0.519078 -522, 0.854183, 0.000000, 0.000000, 0.519973 -523, 0.853638, 0.000000, 0.000000, 0.520868 -524, 0.853091, 0.000000, 0.000000, 0.521761 -525, 0.852544, 0.000000, 0.000000, 0.522655 -526, 0.851996, 0.000000, 0.000000, 0.523548 -527, 0.851447, 0.000000, 0.000000, 0.524440 -528, 0.850898, 0.000000, 0.000000, 0.525332 -529, 0.850347, 0.000000, 0.000000, 0.526223 -530, 0.849795, 0.000000, 0.000000, 0.527113 -531, 0.849243, 0.000000, 0.000000, 0.528003 -532, 0.848689, 0.000000, 0.000000, 0.528892 -533, 0.848134, 0.000000, 0.000000, 0.529781 -534, 0.847579, 0.000000, 0.000000, 0.530669 -535, 0.847023, 0.000000, 0.000000, 0.531557 -536, 0.846465, 0.000000, 0.000000, 0.532444 -537, 0.845907, 0.000000, 0.000000, 0.533330 -538, 0.845348, 0.000000, 0.000000, 0.534216 -539, 0.844788, 0.000000, 0.000000, 0.535101 -540, 0.844227, 0.000000, 0.000000, 0.535986 -541, 0.843665, 0.000000, 0.000000, 0.536870 -542, 0.843102, 0.000000, 0.000000, 0.537754 -543, 0.842538, 0.000000, 0.000000, 0.538636 -544, 0.841974, 0.000000, 0.000000, 0.539519 -545, 0.841408, 0.000000, 0.000000, 0.540400 -546, 0.840841, 0.000000, 0.000000, 0.541282 -547, 0.840274, 0.000000, 0.000000, 0.542162 -548, 0.839706, 0.000000, 0.000000, 0.543042 -549, 0.839136, 0.000000, 0.000000, 0.543921 -550, 0.838566, 0.000000, 0.000000, 0.544800 -551, 0.837995, 0.000000, 0.000000, 0.545678 -552, 0.837423, 0.000000, 0.000000, 0.546556 -553, 0.836850, 0.000000, 0.000000, 0.547433 -554, 0.836276, 0.000000, 0.000000, 0.548309 -555, 0.835701, 0.000000, 0.000000, 0.549185 -556, 0.835125, 0.000000, 0.000000, 0.550060 -557, 0.834549, 0.000000, 0.000000, 0.550934 -558, 0.833971, 0.000000, 0.000000, 0.551808 -559, 0.833392, 0.000000, 0.000000, 0.552682 -560, 0.832813, 0.000000, 0.000000, 0.553554 -561, 0.832233, 0.000000, 0.000000, 0.554427 -562, 0.831651, 0.000000, 0.000000, 0.555298 -563, 0.831069, 0.000000, 0.000000, 0.556169 -564, 0.830486, 0.000000, 0.000000, 0.557039 -565, 0.829902, 0.000000, 0.000000, 0.557909 -566, 0.829317, 0.000000, 0.000000, 0.558778 -567, 0.828732, 0.000000, 0.000000, 0.559646 -568, 0.828145, 0.000000, 0.000000, 0.560514 -569, 0.827557, 0.000000, 0.000000, 0.561381 -570, 0.826969, 0.000000, 0.000000, 0.562248 -571, 0.826379, 0.000000, 0.000000, 0.563114 -572, 0.825789, 0.000000, 0.000000, 0.563979 -573, 0.825198, 0.000000, 0.000000, 0.564844 -574, 0.824606, 0.000000, 0.000000, 0.565708 -575, 0.824012, 0.000000, 0.000000, 0.566572 -576, 0.823418, 0.000000, 0.000000, 0.567435 -577, 0.822824, 0.000000, 0.000000, 0.568297 -578, 0.822228, 0.000000, 0.000000, 0.569158 -579, 0.821631, 0.000000, 0.000000, 0.570019 -580, 0.821034, 0.000000, 0.000000, 0.570880 -581, 0.820435, 0.000000, 0.000000, 0.571740 -582, 0.819836, 0.000000, 0.000000, 0.572599 -583, 0.819235, 0.000000, 0.000000, 0.573457 -584, 0.818634, 0.000000, 0.000000, 0.574315 -585, 0.818032, 0.000000, 0.000000, 0.575172 -586, 0.817429, 0.000000, 0.000000, 0.576029 -587, 0.816825, 0.000000, 0.000000, 0.576885 -588, 0.816221, 0.000000, 0.000000, 0.577740 -589, 0.815615, 0.000000, 0.000000, 0.578595 -590, 0.815008, 0.000000, 0.000000, 0.579449 -591, 0.814401, 0.000000, 0.000000, 0.580303 -592, 0.813793, 0.000000, 0.000000, 0.581155 -593, 0.813183, 0.000000, 0.000000, 0.582008 -594, 0.812573, 0.000000, 0.000000, 0.582859 -595, 0.811962, 0.000000, 0.000000, 0.583710 -596, 0.811350, 0.000000, 0.000000, 0.584560 -597, 0.810738, 0.000000, 0.000000, 0.585410 -598, 0.810124, 0.000000, 0.000000, 0.586259 -599, 0.809509, 0.000000, 0.000000, 0.587107 -600, 0.808894, 0.000000, 0.000000, 0.587955 -601, 0.808277, 0.000000, 0.000000, 0.588802 -602, 0.807660, 0.000000, 0.000000, 0.589648 -603, 0.807042, 0.000000, 0.000000, 0.590494 -604, 0.806423, 0.000000, 0.000000, 0.591339 -605, 0.805803, 0.000000, 0.000000, 0.592183 -606, 0.805182, 0.000000, 0.000000, 0.593027 -607, 0.804561, 0.000000, 0.000000, 0.593870 -608, 0.803938, 0.000000, 0.000000, 0.594713 -609, 0.803315, 0.000000, 0.000000, 0.595555 -610, 0.802690, 0.000000, 0.000000, 0.596396 -611, 0.802065, 0.000000, 0.000000, 0.597236 -612, 0.801439, 0.000000, 0.000000, 0.598076 -613, 0.800812, 0.000000, 0.000000, 0.598915 -614, 0.800184, 0.000000, 0.000000, 0.599754 -615, 0.799556, 0.000000, 0.000000, 0.600592 -616, 0.798926, 0.000000, 0.000000, 0.601429 -617, 0.798296, 0.000000, 0.000000, 0.602266 -618, 0.797664, 0.000000, 0.000000, 0.603102 -619, 0.797032, 0.000000, 0.000000, 0.603937 -620, 0.796399, 0.000000, 0.000000, 0.604772 -621, 0.795765, 0.000000, 0.000000, 0.605605 -622, 0.795130, 0.000000, 0.000000, 0.606439 -623, 0.794494, 0.000000, 0.000000, 0.607271 -624, 0.793858, 0.000000, 0.000000, 0.608103 -625, 0.793220, 0.000000, 0.000000, 0.608935 -626, 0.792582, 0.000000, 0.000000, 0.609765 -627, 0.791943, 0.000000, 0.000000, 0.610595 -628, 0.791303, 0.000000, 0.000000, 0.611424 -629, 0.790662, 0.000000, 0.000000, 0.612253 -630, 0.790020, 0.000000, 0.000000, 0.613081 -631, 0.789377, 0.000000, 0.000000, 0.613908 -632, 0.788734, 0.000000, 0.000000, 0.614735 -633, 0.788090, 0.000000, 0.000000, 0.615561 -634, 0.787444, 0.000000, 0.000000, 0.616386 -635, 0.786798, 0.000000, 0.000000, 0.617210 -636, 0.786151, 0.000000, 0.000000, 0.618034 -637, 0.785503, 0.000000, 0.000000, 0.618857 -638, 0.784855, 0.000000, 0.000000, 0.619680 -639, 0.784205, 0.000000, 0.000000, 0.620502 -640, 0.783555, 0.000000, 0.000000, 0.621323 -641, 0.782903, 0.000000, 0.000000, 0.622143 -642, 0.782251, 0.000000, 0.000000, 0.622963 -643, 0.781598, 0.000000, 0.000000, 0.623782 -644, 0.780944, 0.000000, 0.000000, 0.624601 -645, 0.780290, 0.000000, 0.000000, 0.625418 -646, 0.779634, 0.000000, 0.000000, 0.626235 -647, 0.778978, 0.000000, 0.000000, 0.627052 -648, 0.778320, 0.000000, 0.000000, 0.627867 -649, 0.777662, 0.000000, 0.000000, 0.628682 -650, 0.777003, 0.000000, 0.000000, 0.629497 -651, 0.776343, 0.000000, 0.000000, 0.630310 -652, 0.775683, 0.000000, 0.000000, 0.631123 -653, 0.775021, 0.000000, 0.000000, 0.631935 -654, 0.774359, 0.000000, 0.000000, 0.632747 -655, 0.773695, 0.000000, 0.000000, 0.633558 -656, 0.773031, 0.000000, 0.000000, 0.634368 -657, 0.772366, 0.000000, 0.000000, 0.635177 -658, 0.771700, 0.000000, 0.000000, 0.635986 -659, 0.771034, 0.000000, 0.000000, 0.636794 -660, 0.770366, 0.000000, 0.000000, 0.637602 -661, 0.769698, 0.000000, 0.000000, 0.638408 -662, 0.769029, 0.000000, 0.000000, 0.639214 -663, 0.768359, 0.000000, 0.000000, 0.640019 -664, 0.767688, 0.000000, 0.000000, 0.640824 -665, 0.767016, 0.000000, 0.000000, 0.641628 -666, 0.766344, 0.000000, 0.000000, 0.642431 -667, 0.765670, 0.000000, 0.000000, 0.643233 -668, 0.764996, 0.000000, 0.000000, 0.644035 -669, 0.764321, 0.000000, 0.000000, 0.644836 -670, 0.763645, 0.000000, 0.000000, 0.645636 -671, 0.762968, 0.000000, 0.000000, 0.646436 -672, 0.762291, 0.000000, 0.000000, 0.647235 -673, 0.761612, 0.000000, 0.000000, 0.648033 -674, 0.760933, 0.000000, 0.000000, 0.648830 -675, 0.760253, 0.000000, 0.000000, 0.649627 -676, 0.759572, 0.000000, 0.000000, 0.650423 -677, 0.758890, 0.000000, 0.000000, 0.651219 -678, 0.758208, 0.000000, 0.000000, 0.652013 -679, 0.757524, 0.000000, 0.000000, 0.652807 -680, 0.756840, 0.000000, 0.000000, 0.653600 -681, 0.756155, 0.000000, 0.000000, 0.654393 -682, 0.755469, 0.000000, 0.000000, 0.655185 -683, 0.754782, 0.000000, 0.000000, 0.655976 -684, 0.754095, 0.000000, 0.000000, 0.656766 -685, 0.753406, 0.000000, 0.000000, 0.657555 -686, 0.752717, 0.000000, 0.000000, 0.658344 -687, 0.752027, 0.000000, 0.000000, 0.659132 -688, 0.751336, 0.000000, 0.000000, 0.659920 -689, 0.750644, 0.000000, 0.000000, 0.660707 -690, 0.749952, 0.000000, 0.000000, 0.661493 -691, 0.749258, 0.000000, 0.000000, 0.662278 -692, 0.748564, 0.000000, 0.000000, 0.663062 -693, 0.747869, 0.000000, 0.000000, 0.663846 -694, 0.747173, 0.000000, 0.000000, 0.664629 -695, 0.746477, 0.000000, 0.000000, 0.665412 -696, 0.745779, 0.000000, 0.000000, 0.666193 -697, 0.745081, 0.000000, 0.000000, 0.666974 -698, 0.744382, 0.000000, 0.000000, 0.667754 -699, 0.743682, 0.000000, 0.000000, 0.668534 -700, 0.742981, 0.000000, 0.000000, 0.669312 -701, 0.742280, 0.000000, 0.000000, 0.670090 -702, 0.741577, 0.000000, 0.000000, 0.670867 -703, 0.740874, 0.000000, 0.000000, 0.671644 -704, 0.740170, 0.000000, 0.000000, 0.672420 -705, 0.739465, 0.000000, 0.000000, 0.673195 -706, 0.738760, 0.000000, 0.000000, 0.673969 -707, 0.738053, 0.000000, 0.000000, 0.674742 -708, 0.737346, 0.000000, 0.000000, 0.675515 -709, 0.736638, 0.000000, 0.000000, 0.676287 -710, 0.735929, 0.000000, 0.000000, 0.677058 -711, 0.735220, 0.000000, 0.000000, 0.677829 -712, 0.734509, 0.000000, 0.000000, 0.678599 -713, 0.733798, 0.000000, 0.000000, 0.679368 -714, 0.733086, 0.000000, 0.000000, 0.680136 -715, 0.732373, 0.000000, 0.000000, 0.680904 -716, 0.731659, 0.000000, 0.000000, 0.681671 -717, 0.730945, 0.000000, 0.000000, 0.682437 -718, 0.730229, 0.000000, 0.000000, 0.683202 -719, 0.729513, 0.000000, 0.000000, 0.683967 -720, 0.728797, 0.000000, 0.000000, 0.684730 -721, 0.728079, 0.000000, 0.000000, 0.685493 -722, 0.727360, 0.000000, 0.000000, 0.686256 -723, 0.726641, 0.000000, 0.000000, 0.687017 -724, 0.725921, 0.000000, 0.000000, 0.687778 -725, 0.725200, 0.000000, 0.000000, 0.688538 -726, 0.724478, 0.000000, 0.000000, 0.689297 -727, 0.723756, 0.000000, 0.000000, 0.690056 -728, 0.723033, 0.000000, 0.000000, 0.690814 -729, 0.722309, 0.000000, 0.000000, 0.691571 -730, 0.721584, 0.000000, 0.000000, 0.692327 -731, 0.720858, 0.000000, 0.000000, 0.693083 -732, 0.720132, 0.000000, 0.000000, 0.693837 -733, 0.719404, 0.000000, 0.000000, 0.694591 -734, 0.718676, 0.000000, 0.000000, 0.695345 -735, 0.717948, 0.000000, 0.000000, 0.696097 -736, 0.717218, 0.000000, 0.000000, 0.696849 -737, 0.716488, 0.000000, 0.000000, 0.697600 -738, 0.715757, 0.000000, 0.000000, 0.698350 -739, 0.715025, 0.000000, 0.000000, 0.699099 -740, 0.714292, 0.000000, 0.000000, 0.699848 -741, 0.713558, 0.000000, 0.000000, 0.700596 -742, 0.712824, 0.000000, 0.000000, 0.701343 -743, 0.712089, 0.000000, 0.000000, 0.702089 -744, 0.711353, 0.000000, 0.000000, 0.702835 -745, 0.710616, 0.000000, 0.000000, 0.703580 -746, 0.709879, 0.000000, 0.000000, 0.704324 -747, 0.709141, 0.000000, 0.000000, 0.705067 -748, 0.708402, 0.000000, 0.000000, 0.705809 -749, 0.707662, 0.000000, 0.000000, 0.706551 -750, 0.706922, 0.000000, 0.000000, 0.707292 -751, 0.706180, 0.000000, 0.000000, 0.708032 -752, 0.705438, 0.000000, 0.000000, 0.708771 -753, 0.704695, 0.000000, 0.000000, 0.709510 -754, 0.703952, 0.000000, 0.000000, 0.710248 -755, 0.703207, 0.000000, 0.000000, 0.710985 -756, 0.702462, 0.000000, 0.000000, 0.711721 -757, 0.701716, 0.000000, 0.000000, 0.712457 -758, 0.700969, 0.000000, 0.000000, 0.713191 -759, 0.700222, 0.000000, 0.000000, 0.713925 -760, 0.699474, 0.000000, 0.000000, 0.714658 -761, 0.698725, 0.000000, 0.000000, 0.715391 -762, 0.697975, 0.000000, 0.000000, 0.716122 -763, 0.697224, 0.000000, 0.000000, 0.716853 -764, 0.696473, 0.000000, 0.000000, 0.717583 -765, 0.695721, 0.000000, 0.000000, 0.718312 -766, 0.694968, 0.000000, 0.000000, 0.719041 -767, 0.694214, 0.000000, 0.000000, 0.719768 -768, 0.693460, 0.000000, 0.000000, 0.720495 -769, 0.692705, 0.000000, 0.000000, 0.721221 -770, 0.691949, 0.000000, 0.000000, 0.721946 -771, 0.691192, 0.000000, 0.000000, 0.722671 -772, 0.690435, 0.000000, 0.000000, 0.723394 -773, 0.689677, 0.000000, 0.000000, 0.724117 -774, 0.688918, 0.000000, 0.000000, 0.724839 -775, 0.688158, 0.000000, 0.000000, 0.725561 -776, 0.687398, 0.000000, 0.000000, 0.726281 -777, 0.686637, 0.000000, 0.000000, 0.727001 -778, 0.685875, 0.000000, 0.000000, 0.727720 -779, 0.685112, 0.000000, 0.000000, 0.728438 -780, 0.684349, 0.000000, 0.000000, 0.729155 -781, 0.683584, 0.000000, 0.000000, 0.729872 -782, 0.682819, 0.000000, 0.000000, 0.730587 -783, 0.682054, 0.000000, 0.000000, 0.731302 -784, 0.681287, 0.000000, 0.000000, 0.732016 -785, 0.680520, 0.000000, 0.000000, 0.732729 -786, 0.679752, 0.000000, 0.000000, 0.733442 -787, 0.678983, 0.000000, 0.000000, 0.734154 -788, 0.678214, 0.000000, 0.000000, 0.734864 -789, 0.677444, 0.000000, 0.000000, 0.735575 -790, 0.676673, 0.000000, 0.000000, 0.736284 -791, 0.675901, 0.000000, 0.000000, 0.736992 -792, 0.675129, 0.000000, 0.000000, 0.737700 -793, 0.674356, 0.000000, 0.000000, 0.738407 -794, 0.673582, 0.000000, 0.000000, 0.739113 -795, 0.672807, 0.000000, 0.000000, 0.739818 -796, 0.672032, 0.000000, 0.000000, 0.740522 -797, 0.671256, 0.000000, 0.000000, 0.741226 -798, 0.670479, 0.000000, 0.000000, 0.741929 -799, 0.669701, 0.000000, 0.000000, 0.742631 -800, 0.668923, 0.000000, 0.000000, 0.743332 -801, 0.668144, 0.000000, 0.000000, 0.744032 -802, 0.667364, 0.000000, 0.000000, 0.744732 -803, 0.666584, 0.000000, 0.000000, 0.745430 -804, 0.665802, 0.000000, 0.000000, 0.746128 -805, 0.665020, 0.000000, 0.000000, 0.746825 -806, 0.664238, 0.000000, 0.000000, 0.747521 -807, 0.663454, 0.000000, 0.000000, 0.748217 -808, 0.662670, 0.000000, 0.000000, 0.748911 -809, 0.661885, 0.000000, 0.000000, 0.749605 -810, 0.661100, 0.000000, 0.000000, 0.750298 -811, 0.660313, 0.000000, 0.000000, 0.750990 -812, 0.659526, 0.000000, 0.000000, 0.751682 -813, 0.658739, 0.000000, 0.000000, 0.752372 -814, 0.657950, 0.000000, 0.000000, 0.753062 -815, 0.657161, 0.000000, 0.000000, 0.753750 -816, 0.656371, 0.000000, 0.000000, 0.754438 -817, 0.655580, 0.000000, 0.000000, 0.755126 -818, 0.654789, 0.000000, 0.000000, 0.755812 -819, 0.653997, 0.000000, 0.000000, 0.756497 -820, 0.653204, 0.000000, 0.000000, 0.757182 -821, 0.652410, 0.000000, 0.000000, 0.757866 -822, 0.651616, 0.000000, 0.000000, 0.758549 -823, 0.650821, 0.000000, 0.000000, 0.759231 -824, 0.650025, 0.000000, 0.000000, 0.759913 -825, 0.649229, 0.000000, 0.000000, 0.760593 -826, 0.648432, 0.000000, 0.000000, 0.761273 -827, 0.647634, 0.000000, 0.000000, 0.761952 -828, 0.646835, 0.000000, 0.000000, 0.762630 -829, 0.646036, 0.000000, 0.000000, 0.763307 -830, 0.645236, 0.000000, 0.000000, 0.763983 -831, 0.644436, 0.000000, 0.000000, 0.764659 -832, 0.643634, 0.000000, 0.000000, 0.765333 -833, 0.642832, 0.000000, 0.000000, 0.766007 -834, 0.642029, 0.000000, 0.000000, 0.766680 -835, 0.641226, 0.000000, 0.000000, 0.767352 -836, 0.640422, 0.000000, 0.000000, 0.768023 -837, 0.639617, 0.000000, 0.000000, 0.768694 -838, 0.638811, 0.000000, 0.000000, 0.769363 -839, 0.638005, 0.000000, 0.000000, 0.770032 -840, 0.637198, 0.000000, 0.000000, 0.770700 -841, 0.636390, 0.000000, 0.000000, 0.771367 -842, 0.635582, 0.000000, 0.000000, 0.772033 -843, 0.634773, 0.000000, 0.000000, 0.772699 -844, 0.633963, 0.000000, 0.000000, 0.773363 -845, 0.633153, 0.000000, 0.000000, 0.774027 -846, 0.632341, 0.000000, 0.000000, 0.774690 -847, 0.631529, 0.000000, 0.000000, 0.775352 -848, 0.630717, 0.000000, 0.000000, 0.776013 -849, 0.629904, 0.000000, 0.000000, 0.776673 -850, 0.629090, 0.000000, 0.000000, 0.777333 -851, 0.628275, 0.000000, 0.000000, 0.777991 -852, 0.627460, 0.000000, 0.000000, 0.778649 -853, 0.626644, 0.000000, 0.000000, 0.779306 -854, 0.625827, 0.000000, 0.000000, 0.779962 -855, 0.625010, 0.000000, 0.000000, 0.780617 -856, 0.624192, 0.000000, 0.000000, 0.781271 -857, 0.623373, 0.000000, 0.000000, 0.781925 -858, 0.622553, 0.000000, 0.000000, 0.782577 -859, 0.621733, 0.000000, 0.000000, 0.783229 -860, 0.620912, 0.000000, 0.000000, 0.783880 -861, 0.620091, 0.000000, 0.000000, 0.784530 -862, 0.619269, 0.000000, 0.000000, 0.785179 -863, 0.618446, 0.000000, 0.000000, 0.785827 -864, 0.617622, 0.000000, 0.000000, 0.786475 -865, 0.616798, 0.000000, 0.000000, 0.787121 -866, 0.615973, 0.000000, 0.000000, 0.787767 -867, 0.615148, 0.000000, 0.000000, 0.788412 -868, 0.614321, 0.000000, 0.000000, 0.789056 -869, 0.613495, 0.000000, 0.000000, 0.789699 -870, 0.612667, 0.000000, 0.000000, 0.790341 -871, 0.611839, 0.000000, 0.000000, 0.790983 -872, 0.611010, 0.000000, 0.000000, 0.791623 -873, 0.610180, 0.000000, 0.000000, 0.792263 -874, 0.609350, 0.000000, 0.000000, 0.792901 -875, 0.608519, 0.000000, 0.000000, 0.793539 -876, 0.607687, 0.000000, 0.000000, 0.794176 -877, 0.606855, 0.000000, 0.000000, 0.794812 -878, 0.606022, 0.000000, 0.000000, 0.795448 -879, 0.605189, 0.000000, 0.000000, 0.796082 -880, 0.604354, 0.000000, 0.000000, 0.796716 -881, 0.603519, 0.000000, 0.000000, 0.797348 -882, 0.602684, 0.000000, 0.000000, 0.797980 -883, 0.601848, 0.000000, 0.000000, 0.798611 -884, 0.601011, 0.000000, 0.000000, 0.799241 -885, 0.600173, 0.000000, 0.000000, 0.799870 -886, 0.599335, 0.000000, 0.000000, 0.800498 -887, 0.598496, 0.000000, 0.000000, 0.801126 -888, 0.597656, 0.000000, 0.000000, 0.801752 -889, 0.596816, 0.000000, 0.000000, 0.802378 -890, 0.595975, 0.000000, 0.000000, 0.803003 -891, 0.595134, 0.000000, 0.000000, 0.803627 -892, 0.594292, 0.000000, 0.000000, 0.804250 -893, 0.593449, 0.000000, 0.000000, 0.804872 -894, 0.592605, 0.000000, 0.000000, 0.805493 -895, 0.591761, 0.000000, 0.000000, 0.806113 -896, 0.590917, 0.000000, 0.000000, 0.806733 -897, 0.590071, 0.000000, 0.000000, 0.807351 -898, 0.589225, 0.000000, 0.000000, 0.807969 -899, 0.588378, 0.000000, 0.000000, 0.808586 -900, 0.587531, 0.000000, 0.000000, 0.809202 -901, 0.586683, 0.000000, 0.000000, 0.809817 -902, 0.585834, 0.000000, 0.000000, 0.810431 -903, 0.584985, 0.000000, 0.000000, 0.811044 -904, 0.584135, 0.000000, 0.000000, 0.811656 -905, 0.583285, 0.000000, 0.000000, 0.812268 -906, 0.582433, 0.000000, 0.000000, 0.812878 -907, 0.581581, 0.000000, 0.000000, 0.813488 -908, 0.580729, 0.000000, 0.000000, 0.814097 -909, 0.579876, 0.000000, 0.000000, 0.814705 -910, 0.579022, 0.000000, 0.000000, 0.815312 -911, 0.578168, 0.000000, 0.000000, 0.815918 -912, 0.577313, 0.000000, 0.000000, 0.816523 -913, 0.576457, 0.000000, 0.000000, 0.817127 -914, 0.575601, 0.000000, 0.000000, 0.817731 -915, 0.574744, 0.000000, 0.000000, 0.818333 -916, 0.573886, 0.000000, 0.000000, 0.818935 -917, 0.573028, 0.000000, 0.000000, 0.819536 -918, 0.572169, 0.000000, 0.000000, 0.820136 -919, 0.571310, 0.000000, 0.000000, 0.820734 -920, 0.570450, 0.000000, 0.000000, 0.821333 -921, 0.569589, 0.000000, 0.000000, 0.821930 -922, 0.568728, 0.000000, 0.000000, 0.822526 -923, 0.567866, 0.000000, 0.000000, 0.823121 -924, 0.567003, 0.000000, 0.000000, 0.823716 -925, 0.566140, 0.000000, 0.000000, 0.824309 -926, 0.565276, 0.000000, 0.000000, 0.824902 -927, 0.564412, 0.000000, 0.000000, 0.825493 -928, 0.563547, 0.000000, 0.000000, 0.826084 -929, 0.562681, 0.000000, 0.000000, 0.826674 -930, 0.561815, 0.000000, 0.000000, 0.827263 -931, 0.560948, 0.000000, 0.000000, 0.827851 -932, 0.560080, 0.000000, 0.000000, 0.828438 -933, 0.559212, 0.000000, 0.000000, 0.829025 -934, 0.558343, 0.000000, 0.000000, 0.829610 -935, 0.557474, 0.000000, 0.000000, 0.830194 -936, 0.556604, 0.000000, 0.000000, 0.830778 -937, 0.555734, 0.000000, 0.000000, 0.831360 -938, 0.554862, 0.000000, 0.000000, 0.831942 -939, 0.553991, 0.000000, 0.000000, 0.832523 -940, 0.553118, 0.000000, 0.000000, 0.833103 -941, 0.552245, 0.000000, 0.000000, 0.833682 -942, 0.551371, 0.000000, 0.000000, 0.834260 -943, 0.550497, 0.000000, 0.000000, 0.834837 -944, 0.549622, 0.000000, 0.000000, 0.835413 -945, 0.548747, 0.000000, 0.000000, 0.835988 -946, 0.547871, 0.000000, 0.000000, 0.836563 -947, 0.546994, 0.000000, 0.000000, 0.837136 -948, 0.546117, 0.000000, 0.000000, 0.837709 -949, 0.545239, 0.000000, 0.000000, 0.838280 -950, 0.544361, 0.000000, 0.000000, 0.838851 -951, 0.543482, 0.000000, 0.000000, 0.839421 -952, 0.542602, 0.000000, 0.000000, 0.839990 -953, 0.541722, 0.000000, 0.000000, 0.840558 -954, 0.540841, 0.000000, 0.000000, 0.841125 -955, 0.539960, 0.000000, 0.000000, 0.841691 -956, 0.539078, 0.000000, 0.000000, 0.842256 -957, 0.538195, 0.000000, 0.000000, 0.842820 -958, 0.537312, 0.000000, 0.000000, 0.843384 -959, 0.536428, 0.000000, 0.000000, 0.843946 -960, 0.535544, 0.000000, 0.000000, 0.844507 -961, 0.534659, 0.000000, 0.000000, 0.845068 -962, 0.533773, 0.000000, 0.000000, 0.845628 -963, 0.532887, 0.000000, 0.000000, 0.846186 -964, 0.532000, 0.000000, 0.000000, 0.846744 -965, 0.531113, 0.000000, 0.000000, 0.847301 -966, 0.530225, 0.000000, 0.000000, 0.847857 -967, 0.529337, 0.000000, 0.000000, 0.848412 -968, 0.528448, 0.000000, 0.000000, 0.848966 -969, 0.527558, 0.000000, 0.000000, 0.849519 -970, 0.526668, 0.000000, 0.000000, 0.850071 -971, 0.525777, 0.000000, 0.000000, 0.850622 -972, 0.524886, 0.000000, 0.000000, 0.851173 -973, 0.523994, 0.000000, 0.000000, 0.851722 -974, 0.523101, 0.000000, 0.000000, 0.852270 -975, 0.522208, 0.000000, 0.000000, 0.852818 -976, 0.521315, 0.000000, 0.000000, 0.853365 -977, 0.520420, 0.000000, 0.000000, 0.853910 -978, 0.519526, 0.000000, 0.000000, 0.854455 -979, 0.518630, 0.000000, 0.000000, 0.854999 -980, 0.517734, 0.000000, 0.000000, 0.855541 -981, 0.516838, 0.000000, 0.000000, 0.856083 -982, 0.515941, 0.000000, 0.000000, 0.856624 -983, 0.515043, 0.000000, 0.000000, 0.857164 -984, 0.514145, 0.000000, 0.000000, 0.857703 -985, 0.513246, 0.000000, 0.000000, 0.858241 -986, 0.512347, 0.000000, 0.000000, 0.858779 -987, 0.511447, 0.000000, 0.000000, 0.859315 -988, 0.510546, 0.000000, 0.000000, 0.859850 -989, 0.509645, 0.000000, 0.000000, 0.860385 -990, 0.508744, 0.000000, 0.000000, 0.860918 -991, 0.507842, 0.000000, 0.000000, 0.861450 -992, 0.506939, 0.000000, 0.000000, 0.861982 -993, 0.506036, 0.000000, 0.000000, 0.862512 -994, 0.505132, 0.000000, 0.000000, 0.863042 -995, 0.504228, 0.000000, 0.000000, 0.863571 -996, 0.503323, 0.000000, 0.000000, 0.864099 -997, 0.502417, 0.000000, 0.000000, 0.864625 -998, 0.501511, 0.000000, 0.000000, 0.865151 -999, 0.500605, 0.000000, 0.000000, 0.865676 -1000, 0.499698, 0.000000, 0.000000, 0.866200 -1001, 0.498790, 0.000000, 0.000000, 0.866723 -1002, 0.497882, 0.000000, 0.000000, 0.867245 -1003, 0.496973, 0.000000, 0.000000, 0.867766 -1004, 0.496064, 0.000000, 0.000000, 0.868286 -1005, 0.495154, 0.000000, 0.000000, 0.868805 -1006, 0.494243, 0.000000, 0.000000, 0.869324 -1007, 0.493332, 0.000000, 0.000000, 0.869841 -1008, 0.492421, 0.000000, 0.000000, 0.870357 -1009, 0.491509, 0.000000, 0.000000, 0.870872 -1010, 0.490596, 0.000000, 0.000000, 0.871387 -1011, 0.489683, 0.000000, 0.000000, 0.871900 -1012, 0.488770, 0.000000, 0.000000, 0.872413 -1013, 0.487856, 0.000000, 0.000000, 0.872924 -1014, 0.486941, 0.000000, 0.000000, 0.873435 -1015, 0.486026, 0.000000, 0.000000, 0.873945 -1016, 0.485110, 0.000000, 0.000000, 0.874453 -1017, 0.484194, 0.000000, 0.000000, 0.874961 -1018, 0.483277, 0.000000, 0.000000, 0.875468 -1019, 0.482359, 0.000000, 0.000000, 0.875973 -1020, 0.481442, 0.000000, 0.000000, 0.876478 -1021, 0.480523, 0.000000, 0.000000, 0.876982 -1022, 0.479604, 0.000000, 0.000000, 0.877485 -1023, 0.478685, 0.000000, 0.000000, 0.877987 -1024, 0.477765, 0.000000, 0.000000, 0.878488 -1025, 0.476844, 0.000000, 0.000000, 0.878988 -1026, 0.475923, 0.000000, 0.000000, 0.879487 -1027, 0.475002, 0.000000, 0.000000, 0.879985 -1028, 0.474079, 0.000000, 0.000000, 0.880482 -1029, 0.473157, 0.000000, 0.000000, 0.880978 -1030, 0.472234, 0.000000, 0.000000, 0.881473 -1031, 0.471310, 0.000000, 0.000000, 0.881968 -1032, 0.470386, 0.000000, 0.000000, 0.882461 -1033, 0.469461, 0.000000, 0.000000, 0.882953 -1034, 0.468536, 0.000000, 0.000000, 0.883444 -1035, 0.467610, 0.000000, 0.000000, 0.883935 -1036, 0.466684, 0.000000, 0.000000, 0.884424 -1037, 0.465757, 0.000000, 0.000000, 0.884912 -1038, 0.464830, 0.000000, 0.000000, 0.885400 -1039, 0.463902, 0.000000, 0.000000, 0.885886 -1040, 0.462974, 0.000000, 0.000000, 0.886372 -1041, 0.462045, 0.000000, 0.000000, 0.886856 -1042, 0.461116, 0.000000, 0.000000, 0.887340 -1043, 0.460186, 0.000000, 0.000000, 0.887822 -1044, 0.459256, 0.000000, 0.000000, 0.888304 -1045, 0.458325, 0.000000, 0.000000, 0.888785 -1046, 0.457394, 0.000000, 0.000000, 0.889264 -1047, 0.456462, 0.000000, 0.000000, 0.889743 -1048, 0.455530, 0.000000, 0.000000, 0.890220 -1049, 0.454597, 0.000000, 0.000000, 0.890697 -1050, 0.453664, 0.000000, 0.000000, 0.891173 -1051, 0.452730, 0.000000, 0.000000, 0.891648 -1052, 0.451796, 0.000000, 0.000000, 0.892121 -1053, 0.450861, 0.000000, 0.000000, 0.892594 -1054, 0.449926, 0.000000, 0.000000, 0.893066 -1055, 0.448990, 0.000000, 0.000000, 0.893537 -1056, 0.448054, 0.000000, 0.000000, 0.894007 -1057, 0.447117, 0.000000, 0.000000, 0.894476 -1058, 0.446180, 0.000000, 0.000000, 0.894943 -1059, 0.445242, 0.000000, 0.000000, 0.895410 -1060, 0.444304, 0.000000, 0.000000, 0.895876 -1061, 0.443365, 0.000000, 0.000000, 0.896341 -1062, 0.442426, 0.000000, 0.000000, 0.896805 -1063, 0.441486, 0.000000, 0.000000, 0.897268 -1064, 0.440546, 0.000000, 0.000000, 0.897730 -1065, 0.439605, 0.000000, 0.000000, 0.898191 -1066, 0.438664, 0.000000, 0.000000, 0.898651 -1067, 0.437722, 0.000000, 0.000000, 0.899110 -1068, 0.436780, 0.000000, 0.000000, 0.899568 -1069, 0.435838, 0.000000, 0.000000, 0.900025 -1070, 0.434895, 0.000000, 0.000000, 0.900481 -1071, 0.433951, 0.000000, 0.000000, 0.900936 -1072, 0.433007, 0.000000, 0.000000, 0.901390 -1073, 0.432063, 0.000000, 0.000000, 0.901844 -1074, 0.431118, 0.000000, 0.000000, 0.902296 -1075, 0.430172, 0.000000, 0.000000, 0.902747 -1076, 0.429226, 0.000000, 0.000000, 0.903197 -1077, 0.428280, 0.000000, 0.000000, 0.903646 -1078, 0.427333, 0.000000, 0.000000, 0.904094 -1079, 0.426386, 0.000000, 0.000000, 0.904541 -1080, 0.425438, 0.000000, 0.000000, 0.904988 -1081, 0.424490, 0.000000, 0.000000, 0.905433 -1082, 0.423541, 0.000000, 0.000000, 0.905877 -1083, 0.422592, 0.000000, 0.000000, 0.906320 -1084, 0.421642, 0.000000, 0.000000, 0.906762 -1085, 0.420692, 0.000000, 0.000000, 0.907203 -1086, 0.419742, 0.000000, 0.000000, 0.907644 -1087, 0.418791, 0.000000, 0.000000, 0.908083 -1088, 0.417839, 0.000000, 0.000000, 0.908521 -1089, 0.416887, 0.000000, 0.000000, 0.908958 -1090, 0.415935, 0.000000, 0.000000, 0.909394 -1091, 0.414982, 0.000000, 0.000000, 0.909830 -1092, 0.414029, 0.000000, 0.000000, 0.910264 -1093, 0.413075, 0.000000, 0.000000, 0.910697 -1094, 0.412121, 0.000000, 0.000000, 0.911129 -1095, 0.411166, 0.000000, 0.000000, 0.911561 -1096, 0.410211, 0.000000, 0.000000, 0.911991 -1097, 0.409255, 0.000000, 0.000000, 0.912420 -1098, 0.408299, 0.000000, 0.000000, 0.912848 -1099, 0.407343, 0.000000, 0.000000, 0.913275 -1100, 0.406386, 0.000000, 0.000000, 0.913702 -1101, 0.405428, 0.000000, 0.000000, 0.914127 -1102, 0.404471, 0.000000, 0.000000, 0.914551 -1103, 0.403512, 0.000000, 0.000000, 0.914974 -1104, 0.402554, 0.000000, 0.000000, 0.915396 -1105, 0.401594, 0.000000, 0.000000, 0.915818 -1106, 0.400635, 0.000000, 0.000000, 0.916238 -1107, 0.399675, 0.000000, 0.000000, 0.916657 -1108, 0.398714, 0.000000, 0.000000, 0.917075 -1109, 0.397753, 0.000000, 0.000000, 0.917492 -1110, 0.396792, 0.000000, 0.000000, 0.917908 -1111, 0.395830, 0.000000, 0.000000, 0.918324 -1112, 0.394868, 0.000000, 0.000000, 0.918738 -1113, 0.393906, 0.000000, 0.000000, 0.919151 -1114, 0.392942, 0.000000, 0.000000, 0.919563 -1115, 0.391979, 0.000000, 0.000000, 0.919974 -1116, 0.391015, 0.000000, 0.000000, 0.920384 -1117, 0.390051, 0.000000, 0.000000, 0.920793 -1118, 0.389086, 0.000000, 0.000000, 0.921201 -1119, 0.388121, 0.000000, 0.000000, 0.921609 -1120, 0.387155, 0.000000, 0.000000, 0.922015 -1121, 0.386189, 0.000000, 0.000000, 0.922420 -1122, 0.385222, 0.000000, 0.000000, 0.922824 -1123, 0.384256, 0.000000, 0.000000, 0.923227 -1124, 0.383288, 0.000000, 0.000000, 0.923629 -1125, 0.382320, 0.000000, 0.000000, 0.924030 -1126, 0.381352, 0.000000, 0.000000, 0.924430 -1127, 0.380384, 0.000000, 0.000000, 0.924829 -1128, 0.379415, 0.000000, 0.000000, 0.925227 -1129, 0.378445, 0.000000, 0.000000, 0.925624 -1130, 0.377475, 0.000000, 0.000000, 0.926020 -1131, 0.376505, 0.000000, 0.000000, 0.926415 -1132, 0.375535, 0.000000, 0.000000, 0.926808 -1133, 0.374563, 0.000000, 0.000000, 0.927201 -1134, 0.373592, 0.000000, 0.000000, 0.927593 -1135, 0.372620, 0.000000, 0.000000, 0.927984 -1136, 0.371648, 0.000000, 0.000000, 0.928374 -1137, 0.370675, 0.000000, 0.000000, 0.928763 -1138, 0.369702, 0.000000, 0.000000, 0.929150 -1139, 0.368728, 0.000000, 0.000000, 0.929537 -1140, 0.367754, 0.000000, 0.000000, 0.929923 -1141, 0.366780, 0.000000, 0.000000, 0.930308 -1142, 0.365805, 0.000000, 0.000000, 0.930691 -1143, 0.364830, 0.000000, 0.000000, 0.931074 -1144, 0.363855, 0.000000, 0.000000, 0.931456 -1145, 0.362879, 0.000000, 0.000000, 0.931836 -1146, 0.361902, 0.000000, 0.000000, 0.932216 -1147, 0.360926, 0.000000, 0.000000, 0.932595 -1148, 0.359948, 0.000000, 0.000000, 0.932972 -1149, 0.358971, 0.000000, 0.000000, 0.933349 -1150, 0.357993, 0.000000, 0.000000, 0.933724 -1151, 0.357015, 0.000000, 0.000000, 0.934099 -1152, 0.356036, 0.000000, 0.000000, 0.934472 -1153, 0.355057, 0.000000, 0.000000, 0.934845 -1154, 0.354077, 0.000000, 0.000000, 0.935216 -1155, 0.353098, 0.000000, 0.000000, 0.935587 -1156, 0.352117, 0.000000, 0.000000, 0.935956 -1157, 0.351137, 0.000000, 0.000000, 0.936324 -1158, 0.350156, 0.000000, 0.000000, 0.936692 -1159, 0.349174, 0.000000, 0.000000, 0.937058 -1160, 0.348192, 0.000000, 0.000000, 0.937423 -1161, 0.347210, 0.000000, 0.000000, 0.937787 -1162, 0.346228, 0.000000, 0.000000, 0.938151 -1163, 0.345245, 0.000000, 0.000000, 0.938513 -1164, 0.344261, 0.000000, 0.000000, 0.938874 -1165, 0.343278, 0.000000, 0.000000, 0.939234 -1166, 0.342294, 0.000000, 0.000000, 0.939593 -1167, 0.341309, 0.000000, 0.000000, 0.939951 -1168, 0.340324, 0.000000, 0.000000, 0.940308 -1169, 0.339339, 0.000000, 0.000000, 0.940664 -1170, 0.338354, 0.000000, 0.000000, 0.941019 -1171, 0.337368, 0.000000, 0.000000, 0.941373 -1172, 0.336381, 0.000000, 0.000000, 0.941726 -1173, 0.335395, 0.000000, 0.000000, 0.942078 -1174, 0.334407, 0.000000, 0.000000, 0.942429 -1175, 0.333420, 0.000000, 0.000000, 0.942778 -1176, 0.332432, 0.000000, 0.000000, 0.943127 -1177, 0.331444, 0.000000, 0.000000, 0.943475 -1178, 0.330456, 0.000000, 0.000000, 0.943822 -1179, 0.329467, 0.000000, 0.000000, 0.944167 -1180, 0.328478, 0.000000, 0.000000, 0.944512 -1181, 0.327488, 0.000000, 0.000000, 0.944855 -1182, 0.326498, 0.000000, 0.000000, 0.945198 -1183, 0.325508, 0.000000, 0.000000, 0.945539 -1184, 0.324517, 0.000000, 0.000000, 0.945880 -1185, 0.323526, 0.000000, 0.000000, 0.946219 -1186, 0.322535, 0.000000, 0.000000, 0.946558 -1187, 0.321543, 0.000000, 0.000000, 0.946895 -1188, 0.320551, 0.000000, 0.000000, 0.947231 -1189, 0.319558, 0.000000, 0.000000, 0.947567 -1190, 0.318565, 0.000000, 0.000000, 0.947901 -1191, 0.317572, 0.000000, 0.000000, 0.948234 -1192, 0.316579, 0.000000, 0.000000, 0.948566 -1193, 0.315585, 0.000000, 0.000000, 0.948897 -1194, 0.314591, 0.000000, 0.000000, 0.949227 -1195, 0.313596, 0.000000, 0.000000, 0.949556 -1196, 0.312601, 0.000000, 0.000000, 0.949884 -1197, 0.311606, 0.000000, 0.000000, 0.950211 -1198, 0.310611, 0.000000, 0.000000, 0.950537 -1199, 0.309615, 0.000000, 0.000000, 0.950862 -1200, 0.308618, 0.000000, 0.000000, 0.951186 -1201, 0.307622, 0.000000, 0.000000, 0.951509 -1202, 0.306625, 0.000000, 0.000000, 0.951830 -1203, 0.305628, 0.000000, 0.000000, 0.952151 -1204, 0.304630, 0.000000, 0.000000, 0.952471 -1205, 0.303632, 0.000000, 0.000000, 0.952789 -1206, 0.302634, 0.000000, 0.000000, 0.953107 -1207, 0.301635, 0.000000, 0.000000, 0.953423 -1208, 0.300636, 0.000000, 0.000000, 0.953739 -1209, 0.299637, 0.000000, 0.000000, 0.954053 -1210, 0.298638, 0.000000, 0.000000, 0.954367 -1211, 0.297638, 0.000000, 0.000000, 0.954679 -1212, 0.296637, 0.000000, 0.000000, 0.954990 -1213, 0.295637, 0.000000, 0.000000, 0.955300 -1214, 0.294636, 0.000000, 0.000000, 0.955610 -1215, 0.293635, 0.000000, 0.000000, 0.955918 -1216, 0.292633, 0.000000, 0.000000, 0.956225 -1217, 0.291631, 0.000000, 0.000000, 0.956531 -1218, 0.290629, 0.000000, 0.000000, 0.956836 -1219, 0.289627, 0.000000, 0.000000, 0.957140 -1220, 0.288624, 0.000000, 0.000000, 0.957443 -1221, 0.287621, 0.000000, 0.000000, 0.957744 -1222, 0.286617, 0.000000, 0.000000, 0.958045 -1223, 0.285614, 0.000000, 0.000000, 0.958345 -1224, 0.284610, 0.000000, 0.000000, 0.958644 -1225, 0.283605, 0.000000, 0.000000, 0.958941 -1226, 0.282600, 0.000000, 0.000000, 0.959238 -1227, 0.281595, 0.000000, 0.000000, 0.959533 -1228, 0.280590, 0.000000, 0.000000, 0.959828 -1229, 0.279585, 0.000000, 0.000000, 0.960121 -1230, 0.278579, 0.000000, 0.000000, 0.960413 -1231, 0.277572, 0.000000, 0.000000, 0.960705 -1232, 0.276566, 0.000000, 0.000000, 0.960995 -1233, 0.275559, 0.000000, 0.000000, 0.961284 -1234, 0.274552, 0.000000, 0.000000, 0.961572 -1235, 0.273544, 0.000000, 0.000000, 0.961859 -1236, 0.272537, 0.000000, 0.000000, 0.962145 -1237, 0.271529, 0.000000, 0.000000, 0.962430 -1238, 0.270520, 0.000000, 0.000000, 0.962714 -1239, 0.269512, 0.000000, 0.000000, 0.962997 -1240, 0.268503, 0.000000, 0.000000, 0.963279 -1241, 0.267494, 0.000000, 0.000000, 0.963560 -1242, 0.266484, 0.000000, 0.000000, 0.963839 -1243, 0.265474, 0.000000, 0.000000, 0.964118 -1244, 0.264464, 0.000000, 0.000000, 0.964396 -1245, 0.263454, 0.000000, 0.000000, 0.964672 -1246, 0.262443, 0.000000, 0.000000, 0.964947 -1247, 0.261432, 0.000000, 0.000000, 0.965222 -1248, 0.260421, 0.000000, 0.000000, 0.965495 -1249, 0.259409, 0.000000, 0.000000, 0.965767 -1250, 0.258397, 0.000000, 0.000000, 0.966039 -1251, 0.257385, 0.000000, 0.000000, 0.966309 -1252, 0.256373, 0.000000, 0.000000, 0.966578 -1253, 0.255360, 0.000000, 0.000000, 0.966846 -1254, 0.254347, 0.000000, 0.000000, 0.967113 -1255, 0.253334, 0.000000, 0.000000, 0.967379 -1256, 0.252321, 0.000000, 0.000000, 0.967644 -1257, 0.251307, 0.000000, 0.000000, 0.967907 -1258, 0.250293, 0.000000, 0.000000, 0.968170 -1259, 0.249278, 0.000000, 0.000000, 0.968432 -1260, 0.248264, 0.000000, 0.000000, 0.968692 -1261, 0.247249, 0.000000, 0.000000, 0.968952 -1262, 0.246234, 0.000000, 0.000000, 0.969210 -1263, 0.245218, 0.000000, 0.000000, 0.969468 -1264, 0.244203, 0.000000, 0.000000, 0.969724 -1265, 0.243187, 0.000000, 0.000000, 0.969980 -1266, 0.242170, 0.000000, 0.000000, 0.970234 -1267, 0.241154, 0.000000, 0.000000, 0.970487 -1268, 0.240137, 0.000000, 0.000000, 0.970739 -1269, 0.239120, 0.000000, 0.000000, 0.970990 -1270, 0.238103, 0.000000, 0.000000, 0.971240 -1271, 0.237085, 0.000000, 0.000000, 0.971489 -1272, 0.236067, 0.000000, 0.000000, 0.971737 -1273, 0.235049, 0.000000, 0.000000, 0.971983 -1274, 0.234031, 0.000000, 0.000000, 0.972229 -1275, 0.233012, 0.000000, 0.000000, 0.972474 -1276, 0.231994, 0.000000, 0.000000, 0.972717 -1277, 0.230975, 0.000000, 0.000000, 0.972960 -1278, 0.229955, 0.000000, 0.000000, 0.973201 -1279, 0.228936, 0.000000, 0.000000, 0.973442 -1280, 0.227916, 0.000000, 0.000000, 0.973681 -1281, 0.226896, 0.000000, 0.000000, 0.973919 -1282, 0.225875, 0.000000, 0.000000, 0.974156 -1283, 0.224855, 0.000000, 0.000000, 0.974392 -1284, 0.223834, 0.000000, 0.000000, 0.974627 -1285, 0.222813, 0.000000, 0.000000, 0.974861 -1286, 0.221791, 0.000000, 0.000000, 0.975094 -1287, 0.220770, 0.000000, 0.000000, 0.975326 -1288, 0.219748, 0.000000, 0.000000, 0.975557 -1289, 0.218726, 0.000000, 0.000000, 0.975786 -1290, 0.217704, 0.000000, 0.000000, 0.976015 -1291, 0.216681, 0.000000, 0.000000, 0.976242 -1292, 0.215658, 0.000000, 0.000000, 0.976469 -1293, 0.214635, 0.000000, 0.000000, 0.976694 -1294, 0.213612, 0.000000, 0.000000, 0.976919 -1295, 0.212589, 0.000000, 0.000000, 0.977142 -1296, 0.211565, 0.000000, 0.000000, 0.977364 -1297, 0.210541, 0.000000, 0.000000, 0.977585 -1298, 0.209517, 0.000000, 0.000000, 0.977805 -1299, 0.208492, 0.000000, 0.000000, 0.978024 -1300, 0.207468, 0.000000, 0.000000, 0.978242 -1301, 0.206443, 0.000000, 0.000000, 0.978459 -1302, 0.205418, 0.000000, 0.000000, 0.978674 -1303, 0.204392, 0.000000, 0.000000, 0.978889 -1304, 0.203367, 0.000000, 0.000000, 0.979103 -1305, 0.202341, 0.000000, 0.000000, 0.979315 -1306, 0.201315, 0.000000, 0.000000, 0.979527 -1307, 0.200289, 0.000000, 0.000000, 0.979737 -1308, 0.199262, 0.000000, 0.000000, 0.979946 -1309, 0.198236, 0.000000, 0.000000, 0.980154 -1310, 0.197209, 0.000000, 0.000000, 0.980361 -1311, 0.196182, 0.000000, 0.000000, 0.980568 -1312, 0.195155, 0.000000, 0.000000, 0.980773 -1313, 0.194127, 0.000000, 0.000000, 0.980976 -1314, 0.193099, 0.000000, 0.000000, 0.981179 -1315, 0.192071, 0.000000, 0.000000, 0.981381 -1316, 0.191043, 0.000000, 0.000000, 0.981582 -1317, 0.190015, 0.000000, 0.000000, 0.981781 -1318, 0.188986, 0.000000, 0.000000, 0.981980 -1319, 0.187958, 0.000000, 0.000000, 0.982177 -1320, 0.186929, 0.000000, 0.000000, 0.982374 -1321, 0.185899, 0.000000, 0.000000, 0.982569 -1322, 0.184870, 0.000000, 0.000000, 0.982763 -1323, 0.183840, 0.000000, 0.000000, 0.982956 -1324, 0.182811, 0.000000, 0.000000, 0.983148 -1325, 0.181781, 0.000000, 0.000000, 0.983339 -1326, 0.180750, 0.000000, 0.000000, 0.983529 -1327, 0.179720, 0.000000, 0.000000, 0.983718 -1328, 0.178689, 0.000000, 0.000000, 0.983906 -1329, 0.177659, 0.000000, 0.000000, 0.984092 -1330, 0.176628, 0.000000, 0.000000, 0.984278 -1331, 0.175596, 0.000000, 0.000000, 0.984462 -1332, 0.174565, 0.000000, 0.000000, 0.984646 -1333, 0.173534, 0.000000, 0.000000, 0.984828 -1334, 0.172502, 0.000000, 0.000000, 0.985009 -1335, 0.171470, 0.000000, 0.000000, 0.985189 -1336, 0.170438, 0.000000, 0.000000, 0.985368 -1337, 0.169405, 0.000000, 0.000000, 0.985546 -1338, 0.168373, 0.000000, 0.000000, 0.985723 -1339, 0.167340, 0.000000, 0.000000, 0.985899 -1340, 0.166307, 0.000000, 0.000000, 0.986074 -1341, 0.165274, 0.000000, 0.000000, 0.986248 -1342, 0.164241, 0.000000, 0.000000, 0.986420 -1343, 0.163208, 0.000000, 0.000000, 0.986592 -1344, 0.162174, 0.000000, 0.000000, 0.986762 -1345, 0.161140, 0.000000, 0.000000, 0.986932 -1346, 0.160106, 0.000000, 0.000000, 0.987100 -1347, 0.159072, 0.000000, 0.000000, 0.987267 -1348, 0.158038, 0.000000, 0.000000, 0.987433 -1349, 0.157003, 0.000000, 0.000000, 0.987598 -1350, 0.155969, 0.000000, 0.000000, 0.987762 -1351, 0.154934, 0.000000, 0.000000, 0.987925 -1352, 0.153899, 0.000000, 0.000000, 0.988087 -1353, 0.152864, 0.000000, 0.000000, 0.988247 -1354, 0.151829, 0.000000, 0.000000, 0.988407 -1355, 0.150793, 0.000000, 0.000000, 0.988565 -1356, 0.149757, 0.000000, 0.000000, 0.988723 -1357, 0.148722, 0.000000, 0.000000, 0.988879 -1358, 0.147686, 0.000000, 0.000000, 0.989034 -1359, 0.146650, 0.000000, 0.000000, 0.989189 -1360, 0.145613, 0.000000, 0.000000, 0.989342 -1361, 0.144577, 0.000000, 0.000000, 0.989494 -1362, 0.143540, 0.000000, 0.000000, 0.989644 -1363, 0.142503, 0.000000, 0.000000, 0.989794 -1364, 0.141466, 0.000000, 0.000000, 0.989943 -1365, 0.140429, 0.000000, 0.000000, 0.990091 -1366, 0.139392, 0.000000, 0.000000, 0.990237 -1367, 0.138355, 0.000000, 0.000000, 0.990383 -1368, 0.137317, 0.000000, 0.000000, 0.990527 -1369, 0.136279, 0.000000, 0.000000, 0.990670 -1370, 0.135242, 0.000000, 0.000000, 0.990813 -1371, 0.134204, 0.000000, 0.000000, 0.990954 -1372, 0.133165, 0.000000, 0.000000, 0.991094 -1373, 0.132127, 0.000000, 0.000000, 0.991233 -1374, 0.131089, 0.000000, 0.000000, 0.991371 -1375, 0.130050, 0.000000, 0.000000, 0.991507 -1376, 0.129011, 0.000000, 0.000000, 0.991643 -1377, 0.127973, 0.000000, 0.000000, 0.991778 -1378, 0.126934, 0.000000, 0.000000, 0.991911 -1379, 0.125894, 0.000000, 0.000000, 0.992044 -1380, 0.124855, 0.000000, 0.000000, 0.992175 -1381, 0.123816, 0.000000, 0.000000, 0.992305 -1382, 0.122776, 0.000000, 0.000000, 0.992434 -1383, 0.121736, 0.000000, 0.000000, 0.992562 -1384, 0.120697, 0.000000, 0.000000, 0.992689 -1385, 0.119657, 0.000000, 0.000000, 0.992815 -1386, 0.118617, 0.000000, 0.000000, 0.992940 -1387, 0.117576, 0.000000, 0.000000, 0.993064 -1388, 0.116536, 0.000000, 0.000000, 0.993186 -1389, 0.115496, 0.000000, 0.000000, 0.993308 -1390, 0.114455, 0.000000, 0.000000, 0.993428 -1391, 0.113414, 0.000000, 0.000000, 0.993548 -1392, 0.112373, 0.000000, 0.000000, 0.993666 -1393, 0.111332, 0.000000, 0.000000, 0.993783 -1394, 0.110291, 0.000000, 0.000000, 0.993899 -1395, 0.109250, 0.000000, 0.000000, 0.994014 -1396, 0.108209, 0.000000, 0.000000, 0.994128 -1397, 0.107167, 0.000000, 0.000000, 0.994241 -1398, 0.106126, 0.000000, 0.000000, 0.994353 -1399, 0.105084, 0.000000, 0.000000, 0.994463 -1400, 0.104042, 0.000000, 0.000000, 0.994573 -1401, 0.103000, 0.000000, 0.000000, 0.994681 -1402, 0.101958, 0.000000, 0.000000, 0.994789 -1403, 0.100916, 0.000000, 0.000000, 0.994895 -1404, 0.099874, 0.000000, 0.000000, 0.995000 -1405, 0.098832, 0.000000, 0.000000, 0.995104 -1406, 0.097789, 0.000000, 0.000000, 0.995207 -1407, 0.096747, 0.000000, 0.000000, 0.995309 -1408, 0.095704, 0.000000, 0.000000, 0.995410 -1409, 0.094661, 0.000000, 0.000000, 0.995510 -1410, 0.093618, 0.000000, 0.000000, 0.995608 -1411, 0.092575, 0.000000, 0.000000, 0.995706 -1412, 0.091532, 0.000000, 0.000000, 0.995802 -1413, 0.090489, 0.000000, 0.000000, 0.995897 -1414, 0.089446, 0.000000, 0.000000, 0.995992 -1415, 0.088402, 0.000000, 0.000000, 0.996085 -1416, 0.087359, 0.000000, 0.000000, 0.996177 -1417, 0.086315, 0.000000, 0.000000, 0.996268 -1418, 0.085271, 0.000000, 0.000000, 0.996358 -1419, 0.084228, 0.000000, 0.000000, 0.996447 -1420, 0.083184, 0.000000, 0.000000, 0.996534 -1421, 0.082140, 0.000000, 0.000000, 0.996621 -1422, 0.081096, 0.000000, 0.000000, 0.996706 -1423, 0.080052, 0.000000, 0.000000, 0.996791 -1424, 0.079007, 0.000000, 0.000000, 0.996874 -1425, 0.077963, 0.000000, 0.000000, 0.996956 -1426, 0.076919, 0.000000, 0.000000, 0.997037 -1427, 0.075874, 0.000000, 0.000000, 0.997117 -1428, 0.074830, 0.000000, 0.000000, 0.997196 -1429, 0.073785, 0.000000, 0.000000, 0.997274 -1430, 0.072740, 0.000000, 0.000000, 0.997351 -1431, 0.071695, 0.000000, 0.000000, 0.997427 -1432, 0.070650, 0.000000, 0.000000, 0.997501 -1433, 0.069606, 0.000000, 0.000000, 0.997575 -1434, 0.068560, 0.000000, 0.000000, 0.997647 -1435, 0.067515, 0.000000, 0.000000, 0.997718 -1436, 0.066470, 0.000000, 0.000000, 0.997788 -1437, 0.065425, 0.000000, 0.000000, 0.997857 -1438, 0.064380, 0.000000, 0.000000, 0.997925 -1439, 0.063334, 0.000000, 0.000000, 0.997992 -1440, 0.062289, 0.000000, 0.000000, 0.998058 -1441, 0.061243, 0.000000, 0.000000, 0.998123 -1442, 0.060198, 0.000000, 0.000000, 0.998186 -1443, 0.059152, 0.000000, 0.000000, 0.998249 -1444, 0.058106, 0.000000, 0.000000, 0.998310 -1445, 0.057060, 0.000000, 0.000000, 0.998371 -1446, 0.056014, 0.000000, 0.000000, 0.998430 -1447, 0.054968, 0.000000, 0.000000, 0.998488 -1448, 0.053922, 0.000000, 0.000000, 0.998545 -1449, 0.052876, 0.000000, 0.000000, 0.998601 -1450, 0.051830, 0.000000, 0.000000, 0.998656 -1451, 0.050784, 0.000000, 0.000000, 0.998710 -1452, 0.049738, 0.000000, 0.000000, 0.998762 -1453, 0.048692, 0.000000, 0.000000, 0.998814 -1454, 0.047645, 0.000000, 0.000000, 0.998864 -1455, 0.046599, 0.000000, 0.000000, 0.998914 -1456, 0.045553, 0.000000, 0.000000, 0.998962 -1457, 0.044506, 0.000000, 0.000000, 0.999009 -1458, 0.043459, 0.000000, 0.000000, 0.999055 -1459, 0.042413, 0.000000, 0.000000, 0.999100 -1460, 0.041366, 0.000000, 0.000000, 0.999144 -1461, 0.040320, 0.000000, 0.000000, 0.999187 -1462, 0.039273, 0.000000, 0.000000, 0.999229 -1463, 0.038226, 0.000000, 0.000000, 0.999269 -1464, 0.037179, 0.000000, 0.000000, 0.999309 -1465, 0.036132, 0.000000, 0.000000, 0.999347 -1466, 0.035086, 0.000000, 0.000000, 0.999384 -1467, 0.034039, 0.000000, 0.000000, 0.999421 -1468, 0.032992, 0.000000, 0.000000, 0.999456 -1469, 0.031945, 0.000000, 0.000000, 0.999490 -1470, 0.030898, 0.000000, 0.000000, 0.999523 -1471, 0.029851, 0.000000, 0.000000, 0.999554 -1472, 0.028804, 0.000000, 0.000000, 0.999585 -1473, 0.027756, 0.000000, 0.000000, 0.999615 -1474, 0.026709, 0.000000, 0.000000, 0.999643 -1475, 0.025662, 0.000000, 0.000000, 0.999671 -1476, 0.024615, 0.000000, 0.000000, 0.999697 -1477, 0.023568, 0.000000, 0.000000, 0.999722 -1478, 0.022520, 0.000000, 0.000000, 0.999746 -1479, 0.021473, 0.000000, 0.000000, 0.999769 -1480, 0.020426, 0.000000, 0.000000, 0.999791 -1481, 0.019378, 0.000000, 0.000000, 0.999812 -1482, 0.018331, 0.000000, 0.000000, 0.999832 -1483, 0.017284, 0.000000, 0.000000, 0.999851 -1484, 0.016236, 0.000000, 0.000000, 0.999868 -1485, 0.015189, 0.000000, 0.000000, 0.999885 -1486, 0.014141, 0.000000, 0.000000, 0.999900 -1487, 0.013094, 0.000000, 0.000000, 0.999914 -1488, 0.012046, 0.000000, 0.000000, 0.999927 -1489, 0.010999, 0.000000, 0.000000, 0.999940 -1490, 0.009952, 0.000000, 0.000000, 0.999950 -1491, 0.008904, 0.000000, 0.000000, 0.999960 -1492, 0.007857, 0.000000, 0.000000, 0.999969 -1493, 0.006809, 0.000000, 0.000000, 0.999977 -1494, 0.005761, 0.000000, 0.000000, 0.999983 -1495, 0.004714, 0.000000, 0.000000, 0.999989 -1496, 0.003666, 0.000000, 0.000000, 0.999993 -1497, 0.002619, 0.000000, 0.000000, 0.999997 -1498, 0.001571, 0.000000, 0.000000, 0.999999 -1499, 0.000524, 0.000000, 0.000000, 1.000000 -1500, -0.000524, -0.000000, 0.000000, 1.000000 -1501, -0.001571, -0.000000, 0.000000, 0.999999 -1502, -0.002619, -0.000000, 0.000000, 0.999997 -1503, -0.003666, -0.000000, 0.000000, 0.999993 -1504, -0.004714, -0.000000, 0.000000, 0.999989 -1505, -0.005761, -0.000000, 0.000000, 0.999983 -1506, -0.006809, -0.000000, 0.000000, 0.999977 -1507, -0.007857, -0.000000, 0.000000, 0.999969 -1508, -0.008904, -0.000000, 0.000000, 0.999960 -1509, -0.009952, -0.000000, 0.000000, 0.999950 -1510, -0.010999, -0.000000, 0.000000, 0.999940 -1511, -0.012046, -0.000000, 0.000000, 0.999927 -1512, -0.013094, -0.000000, 0.000000, 0.999914 -1513, -0.014141, -0.000000, 0.000000, 0.999900 -1514, -0.015189, -0.000000, 0.000000, 0.999885 -1515, -0.016236, -0.000000, 0.000000, 0.999868 -1516, -0.017284, -0.000000, 0.000000, 0.999851 -1517, -0.018331, -0.000000, 0.000000, 0.999832 -1518, -0.019378, -0.000000, 0.000000, 0.999812 -1519, -0.020426, -0.000000, 0.000000, 0.999791 -1520, -0.021473, -0.000000, 0.000000, 0.999769 -1521, -0.022520, -0.000000, 0.000000, 0.999746 -1522, -0.023568, -0.000000, 0.000000, 0.999722 -1523, -0.024615, -0.000000, 0.000000, 0.999697 -1524, -0.025662, -0.000000, 0.000000, 0.999671 -1525, -0.026709, -0.000000, 0.000000, 0.999643 -1526, -0.027756, -0.000000, 0.000000, 0.999615 -1527, -0.028804, -0.000000, 0.000000, 0.999585 -1528, -0.029851, -0.000000, 0.000000, 0.999554 -1529, -0.030898, -0.000000, 0.000000, 0.999523 -1530, -0.031945, -0.000000, 0.000000, 0.999490 -1531, -0.032992, -0.000000, 0.000000, 0.999456 -1532, -0.034039, -0.000000, 0.000000, 0.999421 -1533, -0.035086, -0.000000, 0.000000, 0.999384 -1534, -0.036132, -0.000000, 0.000000, 0.999347 -1535, -0.037179, -0.000000, 0.000000, 0.999309 -1536, -0.038226, -0.000000, 0.000000, 0.999269 -1537, -0.039273, -0.000000, 0.000000, 0.999229 -1538, -0.040320, -0.000000, 0.000000, 0.999187 -1539, -0.041366, -0.000000, 0.000000, 0.999144 -1540, -0.042413, -0.000000, 0.000000, 0.999100 -1541, -0.043459, -0.000000, 0.000000, 0.999055 -1542, -0.044506, -0.000000, 0.000000, 0.999009 -1543, -0.045553, -0.000000, 0.000000, 0.998962 -1544, -0.046599, -0.000000, 0.000000, 0.998914 -1545, -0.047645, -0.000000, 0.000000, 0.998864 -1546, -0.048692, -0.000000, 0.000000, 0.998814 -1547, -0.049738, -0.000000, 0.000000, 0.998762 -1548, -0.050784, -0.000000, 0.000000, 0.998710 -1549, -0.051830, -0.000000, 0.000000, 0.998656 -1550, -0.052876, -0.000000, 0.000000, 0.998601 -1551, -0.053922, -0.000000, 0.000000, 0.998545 -1552, -0.054968, -0.000000, 0.000000, 0.998488 -1553, -0.056014, -0.000000, 0.000000, 0.998430 -1554, -0.057060, -0.000000, 0.000000, 0.998371 -1555, -0.058106, -0.000000, 0.000000, 0.998310 -1556, -0.059152, -0.000000, 0.000000, 0.998249 -1557, -0.060198, -0.000000, 0.000000, 0.998186 -1558, -0.061243, -0.000000, 0.000000, 0.998123 -1559, -0.062289, -0.000000, 0.000000, 0.998058 -1560, -0.063334, -0.000000, 0.000000, 0.997992 -1561, -0.064380, -0.000000, 0.000000, 0.997925 -1562, -0.065425, -0.000000, 0.000000, 0.997857 -1563, -0.066470, -0.000000, 0.000000, 0.997788 -1564, -0.067515, -0.000000, 0.000000, 0.997718 -1565, -0.068560, -0.000000, 0.000000, 0.997647 -1566, -0.069606, -0.000000, 0.000000, 0.997575 -1567, -0.070650, -0.000000, 0.000000, 0.997501 -1568, -0.071695, -0.000000, 0.000000, 0.997427 -1569, -0.072740, -0.000000, 0.000000, 0.997351 -1570, -0.073785, -0.000000, 0.000000, 0.997274 -1571, -0.074830, -0.000000, 0.000000, 0.997196 -1572, -0.075874, -0.000000, 0.000000, 0.997117 -1573, -0.076919, -0.000000, 0.000000, 0.997037 -1574, -0.077963, -0.000000, 0.000000, 0.996956 -1575, -0.079007, -0.000000, 0.000000, 0.996874 -1576, -0.080052, -0.000000, 0.000000, 0.996791 -1577, -0.081096, -0.000000, 0.000000, 0.996706 -1578, -0.082140, -0.000000, 0.000000, 0.996621 -1579, -0.083184, -0.000000, 0.000000, 0.996534 -1580, -0.084228, -0.000000, 0.000000, 0.996447 -1581, -0.085271, -0.000000, 0.000000, 0.996358 -1582, -0.086315, -0.000000, 0.000000, 0.996268 -1583, -0.087359, -0.000000, 0.000000, 0.996177 -1584, -0.088402, -0.000000, 0.000000, 0.996085 -1585, -0.089446, -0.000000, 0.000000, 0.995992 -1586, -0.090489, -0.000000, 0.000000, 0.995897 -1587, -0.091532, -0.000000, 0.000000, 0.995802 -1588, -0.092575, -0.000000, 0.000000, 0.995706 -1589, -0.093618, -0.000000, 0.000000, 0.995608 -1590, -0.094661, -0.000000, 0.000000, 0.995510 -1591, -0.095704, -0.000000, 0.000000, 0.995410 -1592, -0.096747, -0.000000, 0.000000, 0.995309 -1593, -0.097789, -0.000000, 0.000000, 0.995207 -1594, -0.098832, -0.000000, 0.000000, 0.995104 -1595, -0.099874, -0.000000, 0.000000, 0.995000 -1596, -0.100916, -0.000000, 0.000000, 0.994895 -1597, -0.101958, -0.000000, 0.000000, 0.994789 -1598, -0.103000, -0.000000, 0.000000, 0.994681 -1599, -0.104042, -0.000000, 0.000000, 0.994573 -1600, -0.105084, -0.000000, 0.000000, 0.994463 -1601, -0.106126, -0.000000, 0.000000, 0.994353 -1602, -0.107167, -0.000000, 0.000000, 0.994241 -1603, -0.108209, -0.000000, 0.000000, 0.994128 -1604, -0.109250, -0.000000, 0.000000, 0.994014 -1605, -0.110291, -0.000000, 0.000000, 0.993899 -1606, -0.111332, -0.000000, 0.000000, 0.993783 -1607, -0.112373, -0.000000, 0.000000, 0.993666 -1608, -0.113414, -0.000000, 0.000000, 0.993548 -1609, -0.114455, -0.000000, 0.000000, 0.993428 -1610, -0.115496, -0.000000, 0.000000, 0.993308 -1611, -0.116536, -0.000000, 0.000000, 0.993186 -1612, -0.117576, -0.000000, 0.000000, 0.993064 -1613, -0.118617, -0.000000, 0.000000, 0.992940 -1614, -0.119657, -0.000000, 0.000000, 0.992815 -1615, -0.120697, -0.000000, 0.000000, 0.992689 -1616, -0.121736, -0.000000, 0.000000, 0.992562 -1617, -0.122776, -0.000000, 0.000000, 0.992434 -1618, -0.123816, -0.000000, 0.000000, 0.992305 -1619, -0.124855, -0.000000, 0.000000, 0.992175 -1620, -0.125894, -0.000000, 0.000000, 0.992044 -1621, -0.126934, -0.000000, 0.000000, 0.991911 -1622, -0.127973, -0.000000, 0.000000, 0.991778 -1623, -0.129011, -0.000000, 0.000000, 0.991643 -1624, -0.130050, -0.000000, 0.000000, 0.991507 -1625, -0.131089, -0.000000, 0.000000, 0.991371 -1626, -0.132127, -0.000000, 0.000000, 0.991233 -1627, -0.133165, -0.000000, 0.000000, 0.991094 -1628, -0.134204, -0.000000, 0.000000, 0.990954 -1629, -0.135242, -0.000000, 0.000000, 0.990813 -1630, -0.136279, -0.000000, 0.000000, 0.990670 -1631, -0.137317, -0.000000, 0.000000, 0.990527 -1632, -0.138355, -0.000000, 0.000000, 0.990383 -1633, -0.139392, -0.000000, 0.000000, 0.990237 -1634, -0.140429, -0.000000, 0.000000, 0.990091 -1635, -0.141466, -0.000000, 0.000000, 0.989943 -1636, -0.142503, -0.000000, 0.000000, 0.989794 -1637, -0.143540, -0.000000, 0.000000, 0.989644 -1638, -0.144577, -0.000000, 0.000000, 0.989494 -1639, -0.145613, -0.000000, 0.000000, 0.989342 -1640, -0.146650, -0.000000, 0.000000, 0.989189 -1641, -0.147686, -0.000000, 0.000000, 0.989034 -1642, -0.148722, -0.000000, 0.000000, 0.988879 -1643, -0.149757, -0.000000, 0.000000, 0.988723 -1644, -0.150793, -0.000000, 0.000000, 0.988565 -1645, -0.151829, -0.000000, 0.000000, 0.988407 -1646, -0.152864, -0.000000, 0.000000, 0.988247 -1647, -0.153899, -0.000000, 0.000000, 0.988087 -1648, -0.154934, -0.000000, 0.000000, 0.987925 -1649, -0.155969, -0.000000, 0.000000, 0.987762 -1650, -0.157003, -0.000000, 0.000000, 0.987598 -1651, -0.158038, -0.000000, 0.000000, 0.987433 -1652, -0.159072, -0.000000, 0.000000, 0.987267 -1653, -0.160106, -0.000000, 0.000000, 0.987100 -1654, -0.161140, -0.000000, 0.000000, 0.986932 -1655, -0.162174, -0.000000, 0.000000, 0.986762 -1656, -0.163208, -0.000000, 0.000000, 0.986592 -1657, -0.164241, -0.000000, 0.000000, 0.986420 -1658, -0.165274, -0.000000, 0.000000, 0.986248 -1659, -0.166307, -0.000000, 0.000000, 0.986074 -1660, -0.167340, -0.000000, 0.000000, 0.985899 -1661, -0.168373, -0.000000, 0.000000, 0.985723 -1662, -0.169405, -0.000000, 0.000000, 0.985546 -1663, -0.170438, -0.000000, 0.000000, 0.985368 -1664, -0.171470, -0.000000, 0.000000, 0.985189 -1665, -0.172502, -0.000000, 0.000000, 0.985009 -1666, -0.173534, -0.000000, 0.000000, 0.984828 -1667, -0.174565, -0.000000, 0.000000, 0.984646 -1668, -0.175596, -0.000000, 0.000000, 0.984462 -1669, -0.176628, -0.000000, 0.000000, 0.984278 -1670, -0.177659, -0.000000, 0.000000, 0.984092 -1671, -0.178689, -0.000000, 0.000000, 0.983906 -1672, -0.179720, -0.000000, 0.000000, 0.983718 -1673, -0.180750, -0.000000, 0.000000, 0.983529 -1674, -0.181781, -0.000000, 0.000000, 0.983339 -1675, -0.182811, -0.000000, 0.000000, 0.983148 -1676, -0.183840, -0.000000, 0.000000, 0.982956 -1677, -0.184870, -0.000000, 0.000000, 0.982763 -1678, -0.185899, -0.000000, 0.000000, 0.982569 -1679, -0.186929, -0.000000, 0.000000, 0.982374 -1680, -0.187958, -0.000000, 0.000000, 0.982177 -1681, -0.188986, -0.000000, 0.000000, 0.981980 -1682, -0.190015, -0.000000, 0.000000, 0.981781 -1683, -0.191043, -0.000000, 0.000000, 0.981582 -1684, -0.192071, -0.000000, 0.000000, 0.981381 -1685, -0.193099, -0.000000, 0.000000, 0.981179 -1686, -0.194127, -0.000000, 0.000000, 0.980976 -1687, -0.195155, -0.000000, 0.000000, 0.980773 -1688, -0.196182, -0.000000, 0.000000, 0.980568 -1689, -0.197209, -0.000000, 0.000000, 0.980361 -1690, -0.198236, -0.000000, 0.000000, 0.980154 -1691, -0.199262, -0.000000, 0.000000, 0.979946 -1692, -0.200289, -0.000000, 0.000000, 0.979737 -1693, -0.201315, -0.000000, 0.000000, 0.979527 -1694, -0.202341, -0.000000, 0.000000, 0.979315 -1695, -0.203367, -0.000000, 0.000000, 0.979103 -1696, -0.204392, -0.000000, 0.000000, 0.978889 -1697, -0.205418, -0.000000, 0.000000, 0.978674 -1698, -0.206443, -0.000000, 0.000000, 0.978459 -1699, -0.207468, -0.000000, 0.000000, 0.978242 -1700, -0.208492, -0.000000, 0.000000, 0.978024 -1701, -0.209517, -0.000000, 0.000000, 0.977805 -1702, -0.210541, -0.000000, 0.000000, 0.977585 -1703, -0.211565, -0.000000, 0.000000, 0.977364 -1704, -0.212589, -0.000000, 0.000000, 0.977142 -1705, -0.213612, -0.000000, 0.000000, 0.976919 -1706, -0.214635, -0.000000, 0.000000, 0.976694 -1707, -0.215658, -0.000000, 0.000000, 0.976469 -1708, -0.216681, -0.000000, 0.000000, 0.976242 -1709, -0.217704, -0.000000, 0.000000, 0.976015 -1710, -0.218726, -0.000000, 0.000000, 0.975786 -1711, -0.219748, -0.000000, 0.000000, 0.975557 -1712, -0.220770, -0.000000, 0.000000, 0.975326 -1713, -0.221791, -0.000000, 0.000000, 0.975094 -1714, -0.222813, -0.000000, 0.000000, 0.974861 -1715, -0.223834, -0.000000, 0.000000, 0.974627 -1716, -0.224855, -0.000000, 0.000000, 0.974392 -1717, -0.225875, -0.000000, 0.000000, 0.974156 -1718, -0.226896, -0.000000, 0.000000, 0.973919 -1719, -0.227916, -0.000000, 0.000000, 0.973681 -1720, -0.228936, -0.000000, 0.000000, 0.973442 -1721, -0.229955, -0.000000, 0.000000, 0.973201 -1722, -0.230975, -0.000000, 0.000000, 0.972960 -1723, -0.231994, -0.000000, 0.000000, 0.972717 -1724, -0.233012, -0.000000, 0.000000, 0.972474 -1725, -0.234031, -0.000000, 0.000000, 0.972229 -1726, -0.235049, -0.000000, 0.000000, 0.971983 -1727, -0.236067, -0.000000, 0.000000, 0.971737 -1728, -0.237085, -0.000000, 0.000000, 0.971489 -1729, -0.238103, -0.000000, 0.000000, 0.971240 -1730, -0.239120, -0.000000, 0.000000, 0.970990 -1731, -0.240137, -0.000000, 0.000000, 0.970739 -1732, -0.241154, -0.000000, 0.000000, 0.970487 -1733, -0.242170, -0.000000, 0.000000, 0.970234 -1734, -0.243187, -0.000000, 0.000000, 0.969980 -1735, -0.244203, -0.000000, 0.000000, 0.969724 -1736, -0.245218, -0.000000, 0.000000, 0.969468 -1737, -0.246234, -0.000000, 0.000000, 0.969210 -1738, -0.247249, -0.000000, 0.000000, 0.968952 -1739, -0.248264, -0.000000, 0.000000, 0.968692 -1740, -0.249278, -0.000000, 0.000000, 0.968432 -1741, -0.250293, -0.000000, 0.000000, 0.968170 -1742, -0.251307, -0.000000, 0.000000, 0.967907 -1743, -0.252321, -0.000000, 0.000000, 0.967644 -1744, -0.253334, -0.000000, 0.000000, 0.967379 -1745, -0.254347, -0.000000, 0.000000, 0.967113 -1746, -0.255360, -0.000000, 0.000000, 0.966846 -1747, -0.256373, -0.000000, 0.000000, 0.966578 -1748, -0.257385, -0.000000, 0.000000, 0.966309 -1749, -0.258397, -0.000000, 0.000000, 0.966039 -1750, -0.259409, -0.000000, 0.000000, 0.965767 -1751, -0.260421, -0.000000, 0.000000, 0.965495 -1752, -0.261432, -0.000000, 0.000000, 0.965222 -1753, -0.262443, -0.000000, 0.000000, 0.964947 -1754, -0.263454, -0.000000, 0.000000, 0.964672 -1755, -0.264464, -0.000000, 0.000000, 0.964396 -1756, -0.265474, -0.000000, 0.000000, 0.964118 -1757, -0.266484, -0.000000, 0.000000, 0.963839 -1758, -0.267494, -0.000000, 0.000000, 0.963560 -1759, -0.268503, -0.000000, 0.000000, 0.963279 -1760, -0.269512, -0.000000, 0.000000, 0.962997 -1761, -0.270520, -0.000000, 0.000000, 0.962714 -1762, -0.271529, -0.000000, 0.000000, 0.962430 -1763, -0.272537, -0.000000, 0.000000, 0.962145 -1764, -0.273544, -0.000000, 0.000000, 0.961859 -1765, -0.274552, -0.000000, 0.000000, 0.961572 -1766, -0.275559, -0.000000, 0.000000, 0.961284 -1767, -0.276566, -0.000000, 0.000000, 0.960995 -1768, -0.277572, -0.000000, 0.000000, 0.960705 -1769, -0.278579, -0.000000, 0.000000, 0.960413 -1770, -0.279585, -0.000000, 0.000000, 0.960121 -1771, -0.280590, -0.000000, 0.000000, 0.959828 -1772, -0.281595, -0.000000, 0.000000, 0.959533 -1773, -0.282600, -0.000000, 0.000000, 0.959238 -1774, -0.283605, -0.000000, 0.000000, 0.958941 -1775, -0.284610, -0.000000, 0.000000, 0.958644 -1776, -0.285614, -0.000000, 0.000000, 0.958345 -1777, -0.286617, -0.000000, 0.000000, 0.958045 -1778, -0.287621, -0.000000, 0.000000, 0.957744 -1779, -0.288624, -0.000000, 0.000000, 0.957443 -1780, -0.289627, -0.000000, 0.000000, 0.957140 -1781, -0.290629, -0.000000, 0.000000, 0.956836 -1782, -0.291631, -0.000000, 0.000000, 0.956531 -1783, -0.292633, -0.000000, 0.000000, 0.956225 -1784, -0.293635, -0.000000, 0.000000, 0.955918 -1785, -0.294636, -0.000000, 0.000000, 0.955610 -1786, -0.295637, -0.000000, 0.000000, 0.955300 -1787, -0.296637, -0.000000, 0.000000, 0.954990 -1788, -0.297638, -0.000000, 0.000000, 0.954679 -1789, -0.298638, -0.000000, 0.000000, 0.954367 -1790, -0.299637, -0.000000, 0.000000, 0.954053 -1791, -0.300636, -0.000000, 0.000000, 0.953739 -1792, -0.301635, -0.000000, 0.000000, 0.953423 -1793, -0.302634, -0.000000, 0.000000, 0.953107 -1794, -0.303632, -0.000000, 0.000000, 0.952789 -1795, -0.304630, -0.000000, 0.000000, 0.952471 -1796, -0.305628, -0.000000, 0.000000, 0.952151 -1797, -0.306625, -0.000000, 0.000000, 0.951830 -1798, -0.307622, -0.000000, 0.000000, 0.951509 -1799, -0.308618, -0.000000, 0.000000, 0.951186 -1800, -0.309615, -0.000000, 0.000000, 0.950862 -1801, -0.310611, -0.000000, 0.000000, 0.950537 -1802, -0.311606, -0.000000, 0.000000, 0.950211 -1803, -0.312601, -0.000000, 0.000000, 0.949884 -1804, -0.313596, -0.000000, 0.000000, 0.949556 -1805, -0.314591, -0.000000, 0.000000, 0.949227 -1806, -0.315585, -0.000000, 0.000000, 0.948897 -1807, -0.316579, -0.000000, 0.000000, 0.948566 -1808, -0.317572, -0.000000, 0.000000, 0.948234 -1809, -0.318565, -0.000000, 0.000000, 0.947901 -1810, -0.319558, -0.000000, 0.000000, 0.947567 -1811, -0.320551, -0.000000, 0.000000, 0.947231 -1812, -0.321543, -0.000000, 0.000000, 0.946895 -1813, -0.322535, -0.000000, 0.000000, 0.946558 -1814, -0.323526, -0.000000, 0.000000, 0.946219 -1815, -0.324517, -0.000000, 0.000000, 0.945880 -1816, -0.325508, -0.000000, 0.000000, 0.945539 -1817, -0.326498, -0.000000, 0.000000, 0.945198 -1818, -0.327488, -0.000000, 0.000000, 0.944855 -1819, -0.328478, -0.000000, 0.000000, 0.944512 -1820, -0.329467, -0.000000, 0.000000, 0.944167 -1821, -0.330456, -0.000000, 0.000000, 0.943822 -1822, -0.331444, -0.000000, 0.000000, 0.943475 -1823, -0.332432, -0.000000, 0.000000, 0.943127 -1824, -0.333420, -0.000000, 0.000000, 0.942778 -1825, -0.334407, -0.000000, 0.000000, 0.942429 -1826, -0.335395, -0.000000, 0.000000, 0.942078 -1827, -0.336381, -0.000000, 0.000000, 0.941726 -1828, -0.337368, -0.000000, 0.000000, 0.941373 -1829, -0.338354, -0.000000, 0.000000, 0.941019 -1830, -0.339339, -0.000000, 0.000000, 0.940664 -1831, -0.340324, -0.000000, 0.000000, 0.940308 -1832, -0.341309, -0.000000, 0.000000, 0.939951 -1833, -0.342294, -0.000000, 0.000000, 0.939593 -1834, -0.343278, -0.000000, 0.000000, 0.939234 -1835, -0.344261, -0.000000, 0.000000, 0.938874 -1836, -0.345245, -0.000000, 0.000000, 0.938513 -1837, -0.346228, -0.000000, 0.000000, 0.938151 -1838, -0.347210, -0.000000, 0.000000, 0.937787 -1839, -0.348192, -0.000000, 0.000000, 0.937423 -1840, -0.349174, -0.000000, 0.000000, 0.937058 -1841, -0.350156, -0.000000, 0.000000, 0.936692 -1842, -0.351137, -0.000000, 0.000000, 0.936324 -1843, -0.352117, -0.000000, 0.000000, 0.935956 -1844, -0.353098, -0.000000, 0.000000, 0.935587 -1845, -0.354077, -0.000000, 0.000000, 0.935216 -1846, -0.355057, -0.000000, 0.000000, 0.934845 -1847, -0.356036, -0.000000, 0.000000, 0.934472 -1848, -0.357015, -0.000000, 0.000000, 0.934099 -1849, -0.357993, -0.000000, 0.000000, 0.933724 -1850, -0.358971, -0.000000, 0.000000, 0.933349 -1851, -0.359948, -0.000000, 0.000000, 0.932972 -1852, -0.360926, -0.000000, 0.000000, 0.932595 -1853, -0.361902, -0.000000, 0.000000, 0.932216 -1854, -0.362879, -0.000000, 0.000000, 0.931836 -1855, -0.363855, -0.000000, 0.000000, 0.931456 -1856, -0.364830, -0.000000, 0.000000, 0.931074 -1857, -0.365805, -0.000000, 0.000000, 0.930691 -1858, -0.366780, -0.000000, 0.000000, 0.930308 -1859, -0.367754, -0.000000, 0.000000, 0.929923 -1860, -0.368728, -0.000000, 0.000000, 0.929537 -1861, -0.369702, -0.000000, 0.000000, 0.929150 -1862, -0.370675, -0.000000, 0.000000, 0.928763 -1863, -0.371648, -0.000000, 0.000000, 0.928374 -1864, -0.372620, -0.000000, 0.000000, 0.927984 -1865, -0.373592, -0.000000, 0.000000, 0.927593 -1866, -0.374563, -0.000000, 0.000000, 0.927201 -1867, -0.375535, -0.000000, 0.000000, 0.926808 -1868, -0.376505, -0.000000, 0.000000, 0.926415 -1869, -0.377475, -0.000000, 0.000000, 0.926020 -1870, -0.378445, -0.000000, 0.000000, 0.925624 -1871, -0.379415, -0.000000, 0.000000, 0.925227 -1872, -0.380384, -0.000000, 0.000000, 0.924829 -1873, -0.381352, -0.000000, 0.000000, 0.924430 -1874, -0.382320, -0.000000, 0.000000, 0.924030 -1875, -0.383288, -0.000000, 0.000000, 0.923629 -1876, -0.384256, -0.000000, 0.000000, 0.923227 -1877, -0.385222, -0.000000, 0.000000, 0.922824 -1878, -0.386189, -0.000000, 0.000000, 0.922420 -1879, -0.387155, -0.000000, 0.000000, 0.922015 -1880, -0.388121, -0.000000, 0.000000, 0.921609 -1881, -0.389086, -0.000000, 0.000000, 0.921201 -1882, -0.390051, -0.000000, 0.000000, 0.920793 -1883, -0.391015, -0.000000, 0.000000, 0.920384 -1884, -0.391979, -0.000000, 0.000000, 0.919974 -1885, -0.392942, -0.000000, 0.000000, 0.919563 -1886, -0.393906, -0.000000, 0.000000, 0.919151 -1887, -0.394868, -0.000000, 0.000000, 0.918738 -1888, -0.395830, -0.000000, 0.000000, 0.918324 -1889, -0.396792, -0.000000, 0.000000, 0.917908 -1890, -0.397753, -0.000000, 0.000000, 0.917492 -1891, -0.398714, -0.000000, 0.000000, 0.917075 -1892, -0.399675, -0.000000, 0.000000, 0.916657 -1893, -0.400635, -0.000000, 0.000000, 0.916238 -1894, -0.401594, -0.000000, 0.000000, 0.915818 -1895, -0.402554, -0.000000, 0.000000, 0.915396 -1896, -0.403512, -0.000000, 0.000000, 0.914974 -1897, -0.404471, -0.000000, 0.000000, 0.914551 -1898, -0.405428, -0.000000, 0.000000, 0.914127 -1899, -0.406386, -0.000000, 0.000000, 0.913702 -1900, -0.407343, -0.000000, 0.000000, 0.913275 -1901, -0.408299, -0.000000, 0.000000, 0.912848 -1902, -0.409255, -0.000000, 0.000000, 0.912420 -1903, -0.410211, -0.000000, 0.000000, 0.911991 -1904, -0.411166, -0.000000, 0.000000, 0.911561 -1905, -0.412121, -0.000000, 0.000000, 0.911129 -1906, -0.413075, -0.000000, 0.000000, 0.910697 -1907, -0.414029, -0.000000, 0.000000, 0.910264 -1908, -0.414982, -0.000000, 0.000000, 0.909830 -1909, -0.415935, -0.000000, 0.000000, 0.909394 -1910, -0.416887, -0.000000, 0.000000, 0.908958 -1911, -0.417839, -0.000000, 0.000000, 0.908521 -1912, -0.418791, -0.000000, 0.000000, 0.908083 -1913, -0.419742, -0.000000, 0.000000, 0.907644 -1914, -0.420692, -0.000000, 0.000000, 0.907203 -1915, -0.421642, -0.000000, 0.000000, 0.906762 -1916, -0.422592, -0.000000, 0.000000, 0.906320 -1917, -0.423541, -0.000000, 0.000000, 0.905877 -1918, -0.424490, -0.000000, 0.000000, 0.905433 -1919, -0.425438, -0.000000, 0.000000, 0.904988 -1920, -0.426386, -0.000000, 0.000000, 0.904541 -1921, -0.427333, -0.000000, 0.000000, 0.904094 -1922, -0.428280, -0.000000, 0.000000, 0.903646 -1923, -0.429226, -0.000000, 0.000000, 0.903197 -1924, -0.430172, -0.000000, 0.000000, 0.902747 -1925, -0.431118, -0.000000, 0.000000, 0.902296 -1926, -0.432063, -0.000000, 0.000000, 0.901844 -1927, -0.433007, -0.000000, 0.000000, 0.901390 -1928, -0.433951, -0.000000, 0.000000, 0.900936 -1929, -0.434895, -0.000000, 0.000000, 0.900481 -1930, -0.435838, -0.000000, 0.000000, 0.900025 -1931, -0.436780, -0.000000, 0.000000, 0.899568 -1932, -0.437722, -0.000000, 0.000000, 0.899110 -1933, -0.438664, -0.000000, 0.000000, 0.898651 -1934, -0.439605, -0.000000, 0.000000, 0.898191 -1935, -0.440546, -0.000000, 0.000000, 0.897730 -1936, -0.441486, -0.000000, 0.000000, 0.897268 -1937, -0.442426, -0.000000, 0.000000, 0.896805 -1938, -0.443365, -0.000000, 0.000000, 0.896341 -1939, -0.444304, -0.000000, 0.000000, 0.895876 -1940, -0.445242, -0.000000, 0.000000, 0.895410 -1941, -0.446180, -0.000000, 0.000000, 0.894943 -1942, -0.447117, -0.000000, 0.000000, 0.894476 -1943, -0.448054, -0.000000, 0.000000, 0.894007 -1944, -0.448990, -0.000000, 0.000000, 0.893537 -1945, -0.449926, -0.000000, 0.000000, 0.893066 -1946, -0.450861, -0.000000, 0.000000, 0.892594 -1947, -0.451796, -0.000000, 0.000000, 0.892121 -1948, -0.452730, -0.000000, 0.000000, 0.891648 -1949, -0.453664, -0.000000, 0.000000, 0.891173 -1950, -0.454597, -0.000000, 0.000000, 0.890697 -1951, -0.455530, -0.000000, 0.000000, 0.890220 -1952, -0.456462, -0.000000, 0.000000, 0.889743 -1953, -0.457394, -0.000000, 0.000000, 0.889264 -1954, -0.458325, -0.000000, 0.000000, 0.888785 -1955, -0.459256, -0.000000, 0.000000, 0.888304 -1956, -0.460186, -0.000000, 0.000000, 0.887822 -1957, -0.461116, -0.000000, 0.000000, 0.887340 -1958, -0.462045, -0.000000, 0.000000, 0.886856 -1959, -0.462974, -0.000000, 0.000000, 0.886372 -1960, -0.463902, -0.000000, 0.000000, 0.885886 -1961, -0.464830, -0.000000, 0.000000, 0.885400 -1962, -0.465757, -0.000000, 0.000000, 0.884912 -1963, -0.466684, -0.000000, 0.000000, 0.884424 -1964, -0.467610, -0.000000, 0.000000, 0.883935 -1965, -0.468536, -0.000000, 0.000000, 0.883444 -1966, -0.469461, -0.000000, 0.000000, 0.882953 -1967, -0.470386, -0.000000, 0.000000, 0.882461 -1968, -0.471310, -0.000000, 0.000000, 0.881968 -1969, -0.472234, -0.000000, 0.000000, 0.881473 -1970, -0.473157, -0.000000, 0.000000, 0.880978 -1971, -0.474079, -0.000000, 0.000000, 0.880482 -1972, -0.475002, -0.000000, 0.000000, 0.879985 -1973, -0.475923, -0.000000, 0.000000, 0.879487 -1974, -0.476844, -0.000000, 0.000000, 0.878988 -1975, -0.477765, -0.000000, 0.000000, 0.878488 -1976, -0.478685, -0.000000, 0.000000, 0.877987 -1977, -0.479604, -0.000000, 0.000000, 0.877485 -1978, -0.480523, -0.000000, 0.000000, 0.876982 -1979, -0.481442, -0.000000, 0.000000, 0.876478 -1980, -0.482359, -0.000000, 0.000000, 0.875973 -1981, -0.483277, -0.000000, 0.000000, 0.875468 -1982, -0.484194, -0.000000, 0.000000, 0.874961 -1983, -0.485110, -0.000000, 0.000000, 0.874453 -1984, -0.486026, -0.000000, 0.000000, 0.873945 -1985, -0.486941, -0.000000, 0.000000, 0.873435 -1986, -0.487856, -0.000000, 0.000000, 0.872924 -1987, -0.488770, -0.000000, 0.000000, 0.872413 -1988, -0.489683, -0.000000, 0.000000, 0.871900 -1989, -0.490596, -0.000000, 0.000000, 0.871387 -1990, -0.491509, -0.000000, 0.000000, 0.870872 -1991, -0.492421, -0.000000, 0.000000, 0.870357 -1992, -0.493332, -0.000000, 0.000000, 0.869841 -1993, -0.494243, -0.000000, 0.000000, 0.869324 -1994, -0.495154, -0.000000, 0.000000, 0.868805 -1995, -0.496064, -0.000000, 0.000000, 0.868286 -1996, -0.496973, -0.000000, 0.000000, 0.867766 -1997, -0.497882, -0.000000, 0.000000, 0.867245 -1998, -0.498790, -0.000000, 0.000000, 0.866723 -1999, -0.499698, -0.000000, 0.000000, 0.866200 -2000, -0.500605, -0.000000, 0.000000, 0.865676 -2001, -0.501511, -0.000000, 0.000000, 0.865151 -2002, -0.502417, -0.000000, 0.000000, 0.864625 -2003, -0.503323, -0.000000, 0.000000, 0.864099 -2004, -0.504228, -0.000000, 0.000000, 0.863571 -2005, -0.505132, -0.000000, 0.000000, 0.863042 -2006, -0.506036, -0.000000, 0.000000, 0.862512 -2007, -0.506939, -0.000000, 0.000000, 0.861982 -2008, -0.507842, -0.000000, 0.000000, 0.861450 -2009, -0.508744, -0.000000, 0.000000, 0.860918 -2010, -0.509645, -0.000000, 0.000000, 0.860385 -2011, -0.510546, -0.000000, 0.000000, 0.859850 -2012, -0.511447, -0.000000, 0.000000, 0.859315 -2013, -0.512347, -0.000000, 0.000000, 0.858779 -2014, -0.513246, -0.000000, 0.000000, 0.858241 -2015, -0.514145, -0.000000, 0.000000, 0.857703 -2016, -0.515043, -0.000000, 0.000000, 0.857164 -2017, -0.515941, -0.000000, 0.000000, 0.856624 -2018, -0.516838, -0.000000, 0.000000, 0.856083 -2019, -0.517734, -0.000000, 0.000000, 0.855541 -2020, -0.518630, -0.000000, 0.000000, 0.854999 -2021, -0.519526, -0.000000, 0.000000, 0.854455 -2022, -0.520420, -0.000000, 0.000000, 0.853910 -2023, -0.521315, -0.000000, 0.000000, 0.853365 -2024, -0.522208, -0.000000, 0.000000, 0.852818 -2025, -0.523101, -0.000000, 0.000000, 0.852270 -2026, -0.523994, -0.000000, 0.000000, 0.851722 -2027, -0.524886, -0.000000, 0.000000, 0.851173 -2028, -0.525777, -0.000000, 0.000000, 0.850622 -2029, -0.526668, -0.000000, 0.000000, 0.850071 -2030, -0.527558, -0.000000, 0.000000, 0.849519 -2031, -0.528448, -0.000000, 0.000000, 0.848966 -2032, -0.529337, -0.000000, 0.000000, 0.848412 -2033, -0.530225, -0.000000, 0.000000, 0.847857 -2034, -0.531113, -0.000000, 0.000000, 0.847301 -2035, -0.532000, -0.000000, 0.000000, 0.846744 -2036, -0.532887, -0.000000, 0.000000, 0.846186 -2037, -0.533773, -0.000000, 0.000000, 0.845628 -2038, -0.534659, -0.000000, 0.000000, 0.845068 -2039, -0.535544, -0.000000, 0.000000, 0.844507 -2040, -0.536428, -0.000000, 0.000000, 0.843946 -2041, -0.537312, -0.000000, 0.000000, 0.843384 -2042, -0.538195, -0.000000, 0.000000, 0.842820 -2043, -0.539078, -0.000000, 0.000000, 0.842256 -2044, -0.539960, -0.000000, 0.000000, 0.841691 -2045, -0.540841, -0.000000, 0.000000, 0.841125 -2046, -0.541722, -0.000000, 0.000000, 0.840558 -2047, -0.542602, -0.000000, 0.000000, 0.839990 -2048, -0.543482, -0.000000, 0.000000, 0.839421 -2049, -0.544361, -0.000000, 0.000000, 0.838851 -2050, -0.545239, -0.000000, 0.000000, 0.838280 -2051, -0.546117, -0.000000, 0.000000, 0.837709 -2052, -0.546994, -0.000000, 0.000000, 0.837136 -2053, -0.547871, -0.000000, 0.000000, 0.836563 -2054, -0.548747, -0.000000, 0.000000, 0.835988 -2055, -0.549622, -0.000000, 0.000000, 0.835413 -2056, -0.550497, -0.000000, 0.000000, 0.834837 -2057, -0.551371, -0.000000, 0.000000, 0.834260 -2058, -0.552245, -0.000000, 0.000000, 0.833682 -2059, -0.553118, -0.000000, 0.000000, 0.833103 -2060, -0.553991, -0.000000, 0.000000, 0.832523 -2061, -0.554862, -0.000000, 0.000000, 0.831942 -2062, -0.555734, -0.000000, 0.000000, 0.831360 -2063, -0.556604, -0.000000, 0.000000, 0.830778 -2064, -0.557474, -0.000000, 0.000000, 0.830194 -2065, -0.558343, -0.000000, 0.000000, 0.829610 -2066, -0.559212, -0.000000, 0.000000, 0.829025 -2067, -0.560080, -0.000000, 0.000000, 0.828438 -2068, -0.560948, -0.000000, 0.000000, 0.827851 -2069, -0.561815, -0.000000, 0.000000, 0.827263 -2070, -0.562681, -0.000000, 0.000000, 0.826674 -2071, -0.563547, -0.000000, 0.000000, 0.826084 -2072, -0.564412, -0.000000, 0.000000, 0.825493 -2073, -0.565276, -0.000000, 0.000000, 0.824902 -2074, -0.566140, -0.000000, 0.000000, 0.824309 -2075, -0.567003, -0.000000, 0.000000, 0.823716 -2076, -0.567866, -0.000000, 0.000000, 0.823121 -2077, -0.568728, -0.000000, 0.000000, 0.822526 -2078, -0.569589, -0.000000, 0.000000, 0.821930 -2079, -0.570450, -0.000000, 0.000000, 0.821333 -2080, -0.571310, -0.000000, 0.000000, 0.820734 -2081, -0.572169, -0.000000, 0.000000, 0.820136 -2082, -0.573028, -0.000000, 0.000000, 0.819536 -2083, -0.573886, -0.000000, 0.000000, 0.818935 -2084, -0.574744, -0.000000, 0.000000, 0.818333 -2085, -0.575601, -0.000000, 0.000000, 0.817731 -2086, -0.576457, -0.000000, 0.000000, 0.817127 -2087, -0.577313, -0.000000, 0.000000, 0.816523 -2088, -0.578168, -0.000000, 0.000000, 0.815918 -2089, -0.579022, -0.000000, 0.000000, 0.815312 -2090, -0.579876, -0.000000, 0.000000, 0.814705 -2091, -0.580729, -0.000000, 0.000000, 0.814097 -2092, -0.581581, -0.000000, 0.000000, 0.813488 -2093, -0.582433, -0.000000, 0.000000, 0.812878 -2094, -0.583285, -0.000000, 0.000000, 0.812268 -2095, -0.584135, -0.000000, 0.000000, 0.811656 -2096, -0.584985, -0.000000, 0.000000, 0.811044 -2097, -0.585834, -0.000000, 0.000000, 0.810431 -2098, -0.586683, -0.000000, 0.000000, 0.809817 -2099, -0.587531, -0.000000, 0.000000, 0.809202 -2100, -0.588378, -0.000000, 0.000000, 0.808586 -2101, -0.589225, -0.000000, 0.000000, 0.807969 -2102, -0.590071, -0.000000, 0.000000, 0.807351 -2103, -0.590917, -0.000000, 0.000000, 0.806733 -2104, -0.591761, -0.000000, 0.000000, 0.806113 -2105, -0.592605, -0.000000, 0.000000, 0.805493 -2106, -0.593449, -0.000000, 0.000000, 0.804872 -2107, -0.594292, -0.000000, 0.000000, 0.804250 -2108, -0.595134, -0.000000, 0.000000, 0.803627 -2109, -0.595975, -0.000000, 0.000000, 0.803003 -2110, -0.596816, -0.000000, 0.000000, 0.802378 -2111, -0.597656, -0.000000, 0.000000, 0.801752 -2112, -0.598496, -0.000000, 0.000000, 0.801126 -2113, -0.599335, -0.000000, 0.000000, 0.800498 -2114, -0.600173, -0.000000, 0.000000, 0.799870 -2115, -0.601011, -0.000000, 0.000000, 0.799241 -2116, -0.601848, -0.000000, 0.000000, 0.798611 -2117, -0.602684, -0.000000, 0.000000, 0.797980 -2118, -0.603519, -0.000000, 0.000000, 0.797348 -2119, -0.604354, -0.000000, 0.000000, 0.796716 -2120, -0.605189, -0.000000, 0.000000, 0.796082 -2121, -0.606022, -0.000000, 0.000000, 0.795448 -2122, -0.606855, -0.000000, 0.000000, 0.794812 -2123, -0.607687, -0.000000, 0.000000, 0.794176 -2124, -0.608519, -0.000000, 0.000000, 0.793539 -2125, -0.609350, -0.000000, 0.000000, 0.792901 -2126, -0.610180, -0.000000, 0.000000, 0.792263 -2127, -0.611010, -0.000000, 0.000000, 0.791623 -2128, -0.611839, -0.000000, 0.000000, 0.790983 -2129, -0.612667, -0.000000, 0.000000, 0.790341 -2130, -0.613495, -0.000000, 0.000000, 0.789699 -2131, -0.614321, -0.000000, 0.000000, 0.789056 -2132, -0.615148, -0.000000, 0.000000, 0.788412 -2133, -0.615973, -0.000000, 0.000000, 0.787767 -2134, -0.616798, -0.000000, 0.000000, 0.787121 -2135, -0.617622, -0.000000, 0.000000, 0.786475 -2136, -0.618446, -0.000000, 0.000000, 0.785827 -2137, -0.619269, -0.000000, 0.000000, 0.785179 -2138, -0.620091, -0.000000, 0.000000, 0.784530 -2139, -0.620912, -0.000000, 0.000000, 0.783880 -2140, -0.621733, -0.000000, 0.000000, 0.783229 -2141, -0.622553, -0.000000, 0.000000, 0.782577 -2142, -0.623373, -0.000000, 0.000000, 0.781925 -2143, -0.624192, -0.000000, 0.000000, 0.781271 -2144, -0.625010, -0.000000, 0.000000, 0.780617 -2145, -0.625827, -0.000000, 0.000000, 0.779962 -2146, -0.626644, -0.000000, 0.000000, 0.779306 -2147, -0.627460, -0.000000, 0.000000, 0.778649 -2148, -0.628275, -0.000000, 0.000000, 0.777991 -2149, -0.629090, -0.000000, 0.000000, 0.777333 -2150, -0.629904, -0.000000, 0.000000, 0.776673 -2151, -0.630717, -0.000000, 0.000000, 0.776013 -2152, -0.631529, -0.000000, 0.000000, 0.775352 -2153, -0.632341, -0.000000, 0.000000, 0.774690 -2154, -0.633153, -0.000000, 0.000000, 0.774027 -2155, -0.633963, -0.000000, 0.000000, 0.773363 -2156, -0.634773, -0.000000, 0.000000, 0.772699 -2157, -0.635582, -0.000000, 0.000000, 0.772033 -2158, -0.636390, -0.000000, 0.000000, 0.771367 -2159, -0.637198, -0.000000, 0.000000, 0.770700 -2160, -0.638005, -0.000000, 0.000000, 0.770032 -2161, -0.638811, -0.000000, 0.000000, 0.769363 -2162, -0.639617, -0.000000, 0.000000, 0.768694 -2163, -0.640422, -0.000000, 0.000000, 0.768023 -2164, -0.641226, -0.000000, 0.000000, 0.767352 -2165, -0.642029, -0.000000, 0.000000, 0.766680 -2166, -0.642832, -0.000000, 0.000000, 0.766007 -2167, -0.643634, -0.000000, 0.000000, 0.765333 -2168, -0.644436, -0.000000, 0.000000, 0.764659 -2169, -0.645236, -0.000000, 0.000000, 0.763983 -2170, -0.646036, -0.000000, 0.000000, 0.763307 -2171, -0.646835, -0.000000, 0.000000, 0.762630 -2172, -0.647634, -0.000000, 0.000000, 0.761952 -2173, -0.648432, -0.000000, 0.000000, 0.761273 -2174, -0.649229, -0.000000, 0.000000, 0.760593 -2175, -0.650025, -0.000000, 0.000000, 0.759913 -2176, -0.650821, -0.000000, 0.000000, 0.759231 -2177, -0.651616, -0.000000, 0.000000, 0.758549 -2178, -0.652410, -0.000000, 0.000000, 0.757866 -2179, -0.653204, -0.000000, 0.000000, 0.757182 -2180, -0.653997, -0.000000, 0.000000, 0.756497 -2181, -0.654789, -0.000000, 0.000000, 0.755812 -2182, -0.655580, -0.000000, 0.000000, 0.755126 -2183, -0.656371, -0.000000, 0.000000, 0.754438 -2184, -0.657161, -0.000000, 0.000000, 0.753750 -2185, -0.657950, -0.000000, 0.000000, 0.753062 -2186, -0.658739, -0.000000, 0.000000, 0.752372 -2187, -0.659526, -0.000000, 0.000000, 0.751682 -2188, -0.660313, -0.000000, 0.000000, 0.750990 -2189, -0.661100, -0.000000, 0.000000, 0.750298 -2190, -0.661885, -0.000000, 0.000000, 0.749605 -2191, -0.662670, -0.000000, 0.000000, 0.748911 -2192, -0.663454, -0.000000, 0.000000, 0.748217 -2193, -0.664238, -0.000000, 0.000000, 0.747521 -2194, -0.665020, -0.000000, 0.000000, 0.746825 -2195, -0.665802, -0.000000, 0.000000, 0.746128 -2196, -0.666584, -0.000000, 0.000000, 0.745430 -2197, -0.667364, -0.000000, 0.000000, 0.744732 -2198, -0.668144, -0.000000, 0.000000, 0.744032 -2199, -0.668923, -0.000000, 0.000000, 0.743332 -2200, -0.669701, -0.000000, 0.000000, 0.742631 -2201, -0.670479, -0.000000, 0.000000, 0.741929 -2202, -0.671256, -0.000000, 0.000000, 0.741226 -2203, -0.672032, -0.000000, 0.000000, 0.740522 -2204, -0.672807, -0.000000, 0.000000, 0.739818 -2205, -0.673582, -0.000000, 0.000000, 0.739113 -2206, -0.674356, -0.000000, 0.000000, 0.738407 -2207, -0.675129, -0.000000, 0.000000, 0.737700 -2208, -0.675901, -0.000000, 0.000000, 0.736992 -2209, -0.676673, -0.000000, 0.000000, 0.736284 -2210, -0.677444, -0.000000, 0.000000, 0.735575 -2211, -0.678214, -0.000000, 0.000000, 0.734864 -2212, -0.678983, -0.000000, 0.000000, 0.734154 -2213, -0.679752, -0.000000, 0.000000, 0.733442 -2214, -0.680520, -0.000000, 0.000000, 0.732729 -2215, -0.681287, -0.000000, 0.000000, 0.732016 -2216, -0.682054, -0.000000, 0.000000, 0.731302 -2217, -0.682819, -0.000000, 0.000000, 0.730587 -2218, -0.683584, -0.000000, 0.000000, 0.729872 -2219, -0.684349, -0.000000, 0.000000, 0.729155 -2220, -0.685112, -0.000000, 0.000000, 0.728438 -2221, -0.685875, -0.000000, 0.000000, 0.727720 -2222, -0.686637, -0.000000, 0.000000, 0.727001 -2223, -0.687398, -0.000000, 0.000000, 0.726281 -2224, -0.688158, -0.000000, 0.000000, 0.725561 -2225, -0.688918, -0.000000, 0.000000, 0.724839 -2226, -0.689677, -0.000000, 0.000000, 0.724117 -2227, -0.690435, -0.000000, 0.000000, 0.723394 -2228, -0.691192, -0.000000, 0.000000, 0.722671 -2229, -0.691949, -0.000000, 0.000000, 0.721946 -2230, -0.692705, -0.000000, 0.000000, 0.721221 -2231, -0.693460, -0.000000, 0.000000, 0.720495 -2232, -0.694214, -0.000000, 0.000000, 0.719768 -2233, -0.694968, -0.000000, 0.000000, 0.719041 -2234, -0.695721, -0.000000, 0.000000, 0.718312 -2235, -0.696473, -0.000000, 0.000000, 0.717583 -2236, -0.697224, -0.000000, 0.000000, 0.716853 -2237, -0.697975, -0.000000, 0.000000, 0.716122 -2238, -0.698725, -0.000000, 0.000000, 0.715391 -2239, -0.699474, -0.000000, 0.000000, 0.714658 -2240, -0.700222, -0.000000, 0.000000, 0.713925 -2241, -0.700969, -0.000000, 0.000000, 0.713191 -2242, -0.701716, -0.000000, 0.000000, 0.712457 -2243, -0.702462, -0.000000, 0.000000, 0.711721 -2244, -0.703207, -0.000000, 0.000000, 0.710985 -2245, -0.703952, -0.000000, 0.000000, 0.710248 -2246, -0.704695, -0.000000, 0.000000, 0.709510 -2247, -0.705438, -0.000000, 0.000000, 0.708771 -2248, -0.706180, -0.000000, 0.000000, 0.708032 -2249, -0.706922, -0.000000, 0.000000, 0.707292 -2250, -0.707662, -0.000000, 0.000000, 0.706551 -2251, -0.708402, -0.000000, 0.000000, 0.705809 -2252, -0.709141, -0.000000, 0.000000, 0.705067 -2253, -0.709879, -0.000000, 0.000000, 0.704324 -2254, -0.710616, -0.000000, 0.000000, 0.703580 -2255, -0.711353, -0.000000, 0.000000, 0.702835 -2256, -0.712089, -0.000000, 0.000000, 0.702089 -2257, -0.712824, -0.000000, 0.000000, 0.701343 -2258, -0.713558, -0.000000, 0.000000, 0.700596 -2259, -0.714292, -0.000000, 0.000000, 0.699848 -2260, -0.715025, -0.000000, 0.000000, 0.699099 -2261, -0.715757, -0.000000, 0.000000, 0.698350 -2262, -0.716488, -0.000000, 0.000000, 0.697600 -2263, -0.717218, -0.000000, 0.000000, 0.696849 -2264, -0.717948, -0.000000, 0.000000, 0.696097 -2265, -0.718676, -0.000000, 0.000000, 0.695345 -2266, -0.719404, -0.000000, 0.000000, 0.694591 -2267, -0.720132, -0.000000, 0.000000, 0.693837 -2268, -0.720858, -0.000000, 0.000000, 0.693083 -2269, -0.721584, -0.000000, 0.000000, 0.692327 -2270, -0.722309, -0.000000, 0.000000, 0.691571 -2271, -0.723033, -0.000000, 0.000000, 0.690814 -2272, -0.723756, -0.000000, 0.000000, 0.690056 -2273, -0.724478, -0.000000, 0.000000, 0.689297 -2274, -0.725200, -0.000000, 0.000000, 0.688538 -2275, -0.725921, -0.000000, 0.000000, 0.687778 -2276, -0.726641, -0.000000, 0.000000, 0.687017 -2277, -0.727360, -0.000000, 0.000000, 0.686256 -2278, -0.728079, -0.000000, 0.000000, 0.685493 -2279, -0.728797, -0.000000, 0.000000, 0.684730 -2280, -0.729513, -0.000000, 0.000000, 0.683967 -2281, -0.730229, -0.000000, 0.000000, 0.683202 -2282, -0.730945, -0.000000, 0.000000, 0.682437 -2283, -0.731659, -0.000000, 0.000000, 0.681671 -2284, -0.732373, -0.000000, 0.000000, 0.680904 -2285, -0.733086, -0.000000, 0.000000, 0.680136 -2286, -0.733798, -0.000000, 0.000000, 0.679368 -2287, -0.734509, -0.000000, 0.000000, 0.678599 -2288, -0.735220, -0.000000, 0.000000, 0.677829 -2289, -0.735929, -0.000000, 0.000000, 0.677058 -2290, -0.736638, -0.000000, 0.000000, 0.676287 -2291, -0.737346, -0.000000, 0.000000, 0.675515 -2292, -0.738053, -0.000000, 0.000000, 0.674742 -2293, -0.738760, -0.000000, 0.000000, 0.673969 -2294, -0.739465, -0.000000, 0.000000, 0.673195 -2295, -0.740170, -0.000000, 0.000000, 0.672420 -2296, -0.740874, -0.000000, 0.000000, 0.671644 -2297, -0.741577, -0.000000, 0.000000, 0.670867 -2298, -0.742280, -0.000000, 0.000000, 0.670090 -2299, -0.742981, -0.000000, 0.000000, 0.669312 -2300, -0.743682, -0.000000, 0.000000, 0.668534 -2301, -0.744382, -0.000000, 0.000000, 0.667754 -2302, -0.745081, -0.000000, 0.000000, 0.666974 -2303, -0.745779, -0.000000, 0.000000, 0.666193 -2304, -0.746477, -0.000000, 0.000000, 0.665412 -2305, -0.747173, -0.000000, 0.000000, 0.664629 -2306, -0.747869, -0.000000, 0.000000, 0.663846 -2307, -0.748564, -0.000000, 0.000000, 0.663062 -2308, -0.749258, -0.000000, 0.000000, 0.662278 -2309, -0.749952, -0.000000, 0.000000, 0.661493 -2310, -0.750644, -0.000000, 0.000000, 0.660707 -2311, -0.751336, -0.000000, 0.000000, 0.659920 -2312, -0.752027, -0.000000, 0.000000, 0.659132 -2313, -0.752717, -0.000000, 0.000000, 0.658344 -2314, -0.753406, -0.000000, 0.000000, 0.657555 -2315, -0.754095, -0.000000, 0.000000, 0.656766 -2316, -0.754782, -0.000000, 0.000000, 0.655976 -2317, -0.755469, -0.000000, 0.000000, 0.655185 -2318, -0.756155, -0.000000, 0.000000, 0.654393 -2319, -0.756840, -0.000000, 0.000000, 0.653600 -2320, -0.757524, -0.000000, 0.000000, 0.652807 -2321, -0.758208, -0.000000, 0.000000, 0.652013 -2322, -0.758890, -0.000000, 0.000000, 0.651219 -2323, -0.759572, -0.000000, 0.000000, 0.650423 -2324, -0.760253, -0.000000, 0.000000, 0.649627 -2325, -0.760933, -0.000000, 0.000000, 0.648830 -2326, -0.761612, -0.000000, 0.000000, 0.648033 -2327, -0.762291, -0.000000, 0.000000, 0.647235 -2328, -0.762968, -0.000000, 0.000000, 0.646436 -2329, -0.763645, -0.000000, 0.000000, 0.645636 -2330, -0.764321, -0.000000, 0.000000, 0.644836 -2331, -0.764996, -0.000000, 0.000000, 0.644035 -2332, -0.765670, -0.000000, 0.000000, 0.643233 -2333, -0.766344, -0.000000, 0.000000, 0.642431 -2334, -0.767016, -0.000000, 0.000000, 0.641628 -2335, -0.767688, -0.000000, 0.000000, 0.640824 -2336, -0.768359, -0.000000, 0.000000, 0.640019 -2337, -0.769029, -0.000000, 0.000000, 0.639214 -2338, -0.769698, -0.000000, 0.000000, 0.638408 -2339, -0.770366, -0.000000, 0.000000, 0.637602 -2340, -0.771034, -0.000000, 0.000000, 0.636794 -2341, -0.771700, -0.000000, 0.000000, 0.635986 -2342, -0.772366, -0.000000, 0.000000, 0.635177 -2343, -0.773031, -0.000000, 0.000000, 0.634368 -2344, -0.773695, -0.000000, 0.000000, 0.633558 -2345, -0.774359, -0.000000, 0.000000, 0.632747 -2346, -0.775021, -0.000000, 0.000000, 0.631935 -2347, -0.775683, -0.000000, 0.000000, 0.631123 -2348, -0.776343, -0.000000, 0.000000, 0.630310 -2349, -0.777003, -0.000000, 0.000000, 0.629497 -2350, -0.777662, -0.000000, 0.000000, 0.628682 -2351, -0.778320, -0.000000, 0.000000, 0.627867 -2352, -0.778978, -0.000000, 0.000000, 0.627052 -2353, -0.779634, -0.000000, 0.000000, 0.626235 -2354, -0.780290, -0.000000, 0.000000, 0.625418 -2355, -0.780944, -0.000000, 0.000000, 0.624601 -2356, -0.781598, -0.000000, 0.000000, 0.623782 -2357, -0.782251, -0.000000, 0.000000, 0.622963 -2358, -0.782903, -0.000000, 0.000000, 0.622143 -2359, -0.783555, -0.000000, 0.000000, 0.621323 -2360, -0.784205, -0.000000, 0.000000, 0.620502 -2361, -0.784855, -0.000000, 0.000000, 0.619680 -2362, -0.785503, -0.000000, 0.000000, 0.618857 -2363, -0.786151, -0.000000, 0.000000, 0.618034 -2364, -0.786798, -0.000000, 0.000000, 0.617210 -2365, -0.787444, -0.000000, 0.000000, 0.616386 -2366, -0.788090, -0.000000, 0.000000, 0.615561 -2367, -0.788734, -0.000000, 0.000000, 0.614735 -2368, -0.789377, -0.000000, 0.000000, 0.613908 -2369, -0.790020, -0.000000, 0.000000, 0.613081 -2370, -0.790662, -0.000000, 0.000000, 0.612253 -2371, -0.791303, -0.000000, 0.000000, 0.611424 -2372, -0.791943, -0.000000, 0.000000, 0.610595 -2373, -0.792582, -0.000000, 0.000000, 0.609765 -2374, -0.793220, -0.000000, 0.000000, 0.608935 -2375, -0.793858, -0.000000, 0.000000, 0.608103 -2376, -0.794494, -0.000000, 0.000000, 0.607271 -2377, -0.795130, -0.000000, 0.000000, 0.606439 -2378, -0.795765, -0.000000, 0.000000, 0.605605 -2379, -0.796399, -0.000000, 0.000000, 0.604772 -2380, -0.797032, -0.000000, 0.000000, 0.603937 -2381, -0.797664, -0.000000, 0.000000, 0.603102 -2382, -0.798296, -0.000000, 0.000000, 0.602266 -2383, -0.798926, -0.000000, 0.000000, 0.601429 -2384, -0.799556, -0.000000, 0.000000, 0.600592 -2385, -0.800184, -0.000000, 0.000000, 0.599754 -2386, -0.800812, -0.000000, 0.000000, 0.598915 -2387, -0.801439, -0.000000, 0.000000, 0.598076 -2388, -0.802065, -0.000000, 0.000000, 0.597236 -2389, -0.802690, -0.000000, 0.000000, 0.596396 -2390, -0.803315, -0.000000, 0.000000, 0.595555 -2391, -0.803938, -0.000000, 0.000000, 0.594713 -2392, -0.804561, -0.000000, 0.000000, 0.593870 -2393, -0.805182, -0.000000, 0.000000, 0.593027 -2394, -0.805803, -0.000000, 0.000000, 0.592183 -2395, -0.806423, -0.000000, 0.000000, 0.591339 -2396, -0.807042, -0.000000, 0.000000, 0.590494 -2397, -0.807660, -0.000000, 0.000000, 0.589648 -2398, -0.808277, -0.000000, 0.000000, 0.588802 -2399, -0.808894, -0.000000, 0.000000, 0.587955 -2400, -0.809509, -0.000000, 0.000000, 0.587107 -2401, -0.810124, -0.000000, 0.000000, 0.586259 -2402, -0.810738, -0.000000, 0.000000, 0.585410 -2403, -0.811350, -0.000000, 0.000000, 0.584560 -2404, -0.811962, -0.000000, 0.000000, 0.583710 -2405, -0.812573, -0.000000, 0.000000, 0.582859 -2406, -0.813183, -0.000000, 0.000000, 0.582008 -2407, -0.813793, -0.000000, 0.000000, 0.581155 -2408, -0.814401, -0.000000, 0.000000, 0.580303 -2409, -0.815008, -0.000000, 0.000000, 0.579449 -2410, -0.815615, -0.000000, 0.000000, 0.578595 -2411, -0.816221, -0.000000, 0.000000, 0.577740 -2412, -0.816825, -0.000000, 0.000000, 0.576885 -2413, -0.817429, -0.000000, 0.000000, 0.576029 -2414, -0.818032, -0.000000, 0.000000, 0.575172 -2415, -0.818634, -0.000000, 0.000000, 0.574315 -2416, -0.819235, -0.000000, 0.000000, 0.573457 -2417, -0.819836, -0.000000, 0.000000, 0.572599 -2418, -0.820435, -0.000000, 0.000000, 0.571740 -2419, -0.821034, -0.000000, 0.000000, 0.570880 -2420, -0.821631, -0.000000, 0.000000, 0.570019 -2421, -0.822228, -0.000000, 0.000000, 0.569158 -2422, -0.822824, -0.000000, 0.000000, 0.568297 -2423, -0.823418, -0.000000, 0.000000, 0.567435 -2424, -0.824012, -0.000000, 0.000000, 0.566572 -2425, -0.824606, -0.000000, 0.000000, 0.565708 -2426, -0.825198, -0.000000, 0.000000, 0.564844 -2427, -0.825789, -0.000000, 0.000000, 0.563979 -2428, -0.826379, -0.000000, 0.000000, 0.563114 -2429, -0.826969, -0.000000, 0.000000, 0.562248 -2430, -0.827557, -0.000000, 0.000000, 0.561381 -2431, -0.828145, -0.000000, 0.000000, 0.560514 -2432, -0.828732, -0.000000, 0.000000, 0.559646 -2433, -0.829317, -0.000000, 0.000000, 0.558778 -2434, -0.829902, -0.000000, 0.000000, 0.557909 -2435, -0.830486, -0.000000, 0.000000, 0.557039 -2436, -0.831069, -0.000000, 0.000000, 0.556169 -2437, -0.831651, -0.000000, 0.000000, 0.555298 -2438, -0.832233, -0.000000, 0.000000, 0.554427 -2439, -0.832813, -0.000000, 0.000000, 0.553554 -2440, -0.833392, -0.000000, 0.000000, 0.552682 -2441, -0.833971, -0.000000, 0.000000, 0.551808 -2442, -0.834549, -0.000000, 0.000000, 0.550934 -2443, -0.835125, -0.000000, 0.000000, 0.550060 -2444, -0.835701, -0.000000, 0.000000, 0.549185 -2445, -0.836276, -0.000000, 0.000000, 0.548309 -2446, -0.836850, -0.000000, 0.000000, 0.547433 -2447, -0.837423, -0.000000, 0.000000, 0.546556 -2448, -0.837995, -0.000000, 0.000000, 0.545678 -2449, -0.838566, -0.000000, 0.000000, 0.544800 -2450, -0.839136, -0.000000, 0.000000, 0.543921 -2451, -0.839706, -0.000000, 0.000000, 0.543042 -2452, -0.840274, -0.000000, 0.000000, 0.542162 -2453, -0.840841, -0.000000, 0.000000, 0.541282 -2454, -0.841408, -0.000000, 0.000000, 0.540400 -2455, -0.841974, -0.000000, 0.000000, 0.539519 -2456, -0.842538, -0.000000, 0.000000, 0.538636 -2457, -0.843102, -0.000000, 0.000000, 0.537754 -2458, -0.843665, -0.000000, 0.000000, 0.536870 -2459, -0.844227, -0.000000, 0.000000, 0.535986 -2460, -0.844788, -0.000000, 0.000000, 0.535101 -2461, -0.845348, -0.000000, 0.000000, 0.534216 -2462, -0.845907, -0.000000, 0.000000, 0.533330 -2463, -0.846465, -0.000000, 0.000000, 0.532444 -2464, -0.847023, -0.000000, 0.000000, 0.531557 -2465, -0.847579, -0.000000, 0.000000, 0.530669 -2466, -0.848134, -0.000000, 0.000000, 0.529781 -2467, -0.848689, -0.000000, 0.000000, 0.528892 -2468, -0.849243, -0.000000, 0.000000, 0.528003 -2469, -0.849795, -0.000000, 0.000000, 0.527113 -2470, -0.850347, -0.000000, 0.000000, 0.526223 -2471, -0.850898, -0.000000, 0.000000, 0.525332 -2472, -0.851447, -0.000000, 0.000000, 0.524440 -2473, -0.851996, -0.000000, 0.000000, 0.523548 -2474, -0.852544, -0.000000, 0.000000, 0.522655 -2475, -0.853091, -0.000000, 0.000000, 0.521761 -2476, -0.853638, -0.000000, 0.000000, 0.520868 -2477, -0.854183, -0.000000, 0.000000, 0.519973 -2478, -0.854727, -0.000000, 0.000000, 0.519078 -2479, -0.855270, -0.000000, 0.000000, 0.518182 -2480, -0.855813, -0.000000, 0.000000, 0.517286 -2481, -0.856354, -0.000000, 0.000000, 0.516389 -2482, -0.856894, -0.000000, 0.000000, 0.515492 -2483, -0.857434, -0.000000, 0.000000, 0.514594 -2484, -0.857973, -0.000000, 0.000000, 0.513696 -2485, -0.858510, -0.000000, 0.000000, 0.512797 -2486, -0.859047, -0.000000, 0.000000, 0.511897 -2487, -0.859583, -0.000000, 0.000000, 0.510997 -2488, -0.860117, -0.000000, 0.000000, 0.510096 -2489, -0.860651, -0.000000, 0.000000, 0.509195 -2490, -0.861184, -0.000000, 0.000000, 0.508293 -2491, -0.861716, -0.000000, 0.000000, 0.507390 -2492, -0.862247, -0.000000, 0.000000, 0.506487 -2493, -0.862777, -0.000000, 0.000000, 0.505584 -2494, -0.863307, -0.000000, 0.000000, 0.504680 -2495, -0.863835, -0.000000, 0.000000, 0.503775 -2496, -0.864362, -0.000000, 0.000000, 0.502870 -2497, -0.864888, -0.000000, 0.000000, 0.501964 -2498, -0.865414, -0.000000, 0.000000, 0.501058 -2499, -0.865938, -0.000000, 0.000000, 0.500151 -2500, -0.866462, -0.000000, 0.000000, 0.499244 -2501, -0.866984, -0.000000, 0.000000, 0.498336 -2502, -0.867506, -0.000000, 0.000000, 0.497427 -2503, -0.868026, -0.000000, 0.000000, 0.496518 -2504, -0.868546, -0.000000, 0.000000, 0.495609 -2505, -0.869065, -0.000000, 0.000000, 0.494699 -2506, -0.869582, -0.000000, 0.000000, 0.493788 -2507, -0.870099, -0.000000, 0.000000, 0.492877 -2508, -0.870615, -0.000000, 0.000000, 0.491965 -2509, -0.871130, -0.000000, 0.000000, 0.491053 -2510, -0.871644, -0.000000, 0.000000, 0.490140 -2511, -0.872157, -0.000000, 0.000000, 0.489227 -2512, -0.872669, -0.000000, 0.000000, 0.488313 -2513, -0.873180, -0.000000, 0.000000, 0.487398 -2514, -0.873690, -0.000000, 0.000000, 0.486483 -2515, -0.874199, -0.000000, 0.000000, 0.485568 -2516, -0.874707, -0.000000, 0.000000, 0.484652 -2517, -0.875214, -0.000000, 0.000000, 0.483735 -2518, -0.875721, -0.000000, 0.000000, 0.482818 -2519, -0.876226, -0.000000, 0.000000, 0.481901 -2520, -0.876730, -0.000000, 0.000000, 0.480982 -2521, -0.877234, -0.000000, 0.000000, 0.480064 -2522, -0.877736, -0.000000, 0.000000, 0.479145 -2523, -0.878237, -0.000000, 0.000000, 0.478225 -2524, -0.878738, -0.000000, 0.000000, 0.477305 -2525, -0.879237, -0.000000, 0.000000, 0.476384 -2526, -0.879736, -0.000000, 0.000000, 0.475462 -2527, -0.880234, -0.000000, 0.000000, 0.474541 -2528, -0.880730, -0.000000, 0.000000, 0.473618 -2529, -0.881226, -0.000000, 0.000000, 0.472695 -2530, -0.881721, -0.000000, 0.000000, 0.471772 -2531, -0.882214, -0.000000, 0.000000, 0.470848 -2532, -0.882707, -0.000000, 0.000000, 0.469924 -2533, -0.883199, -0.000000, 0.000000, 0.468999 -2534, -0.883690, -0.000000, 0.000000, 0.468073 -2535, -0.884179, -0.000000, 0.000000, 0.467147 -2536, -0.884668, -0.000000, 0.000000, 0.466221 -2537, -0.885156, -0.000000, 0.000000, 0.465294 -2538, -0.885643, -0.000000, 0.000000, 0.464366 -2539, -0.886129, -0.000000, 0.000000, 0.463438 -2540, -0.886614, -0.000000, 0.000000, 0.462510 -2541, -0.887098, -0.000000, 0.000000, 0.461581 -2542, -0.887581, -0.000000, 0.000000, 0.460651 -2543, -0.888063, -0.000000, 0.000000, 0.459721 -2544, -0.888544, -0.000000, 0.000000, 0.458791 -2545, -0.889024, -0.000000, 0.000000, 0.457860 -2546, -0.889504, -0.000000, 0.000000, 0.456928 -2547, -0.889982, -0.000000, 0.000000, 0.455996 -2548, -0.890459, -0.000000, 0.000000, 0.455064 -2549, -0.890935, -0.000000, 0.000000, 0.454130 -2550, -0.891410, -0.000000, 0.000000, 0.453197 -2551, -0.891885, -0.000000, 0.000000, 0.452263 -2552, -0.892358, -0.000000, 0.000000, 0.451328 -2553, -0.892830, -0.000000, 0.000000, 0.450393 -2554, -0.893302, -0.000000, 0.000000, 0.449458 -2555, -0.893772, -0.000000, 0.000000, 0.448522 -2556, -0.894241, -0.000000, 0.000000, 0.447585 -2557, -0.894710, -0.000000, 0.000000, 0.446648 -2558, -0.895177, -0.000000, 0.000000, 0.445711 -2559, -0.895643, -0.000000, 0.000000, 0.444773 -2560, -0.896109, -0.000000, 0.000000, 0.443834 -2561, -0.896573, -0.000000, 0.000000, 0.442895 -2562, -0.897037, -0.000000, 0.000000, 0.441956 -2563, -0.897499, -0.000000, 0.000000, 0.441016 -2564, -0.897961, -0.000000, 0.000000, 0.440076 -2565, -0.898421, -0.000000, 0.000000, 0.439135 -2566, -0.898881, -0.000000, 0.000000, 0.438193 -2567, -0.899339, -0.000000, 0.000000, 0.437251 -2568, -0.899797, -0.000000, 0.000000, 0.436309 -2569, -0.900253, -0.000000, 0.000000, 0.435366 -2570, -0.900709, -0.000000, 0.000000, 0.434423 -2571, -0.901164, -0.000000, 0.000000, 0.433479 -2572, -0.901617, -0.000000, 0.000000, 0.432535 -2573, -0.902070, -0.000000, 0.000000, 0.431590 -2574, -0.902521, -0.000000, 0.000000, 0.430645 -2575, -0.902972, -0.000000, 0.000000, 0.429699 -2576, -0.903422, -0.000000, 0.000000, 0.428753 -2577, -0.903870, -0.000000, 0.000000, 0.427807 -2578, -0.904318, -0.000000, 0.000000, 0.426860 -2579, -0.904765, -0.000000, 0.000000, 0.425912 -2580, -0.905210, -0.000000, 0.000000, 0.424964 -2581, -0.905655, -0.000000, 0.000000, 0.424015 -2582, -0.906099, -0.000000, 0.000000, 0.423067 -2583, -0.906541, -0.000000, 0.000000, 0.422117 -2584, -0.906983, -0.000000, 0.000000, 0.421167 -2585, -0.907424, -0.000000, 0.000000, 0.420217 -2586, -0.907863, -0.000000, 0.000000, 0.419266 -2587, -0.908302, -0.000000, 0.000000, 0.418315 -2588, -0.908740, -0.000000, 0.000000, 0.417363 -2589, -0.909177, -0.000000, 0.000000, 0.416411 -2590, -0.909612, -0.000000, 0.000000, 0.415458 -2591, -0.910047, -0.000000, 0.000000, 0.414505 -2592, -0.910481, -0.000000, 0.000000, 0.413552 -2593, -0.910913, -0.000000, 0.000000, 0.412598 -2594, -0.911345, -0.000000, 0.000000, 0.411643 -2595, -0.911776, -0.000000, 0.000000, 0.410688 -2596, -0.912206, -0.000000, 0.000000, 0.409733 -2597, -0.912634, -0.000000, 0.000000, 0.408777 -2598, -0.913062, -0.000000, 0.000000, 0.407821 -2599, -0.913489, -0.000000, 0.000000, 0.406864 -2600, -0.913914, -0.000000, 0.000000, 0.405907 -2601, -0.914339, -0.000000, 0.000000, 0.404950 -2602, -0.914763, -0.000000, 0.000000, 0.403991 -2603, -0.915185, -0.000000, 0.000000, 0.403033 -2604, -0.915607, -0.000000, 0.000000, 0.402074 -2605, -0.916028, -0.000000, 0.000000, 0.401115 -2606, -0.916448, -0.000000, 0.000000, 0.400155 -2607, -0.916866, -0.000000, 0.000000, 0.399195 -2608, -0.917284, -0.000000, 0.000000, 0.398234 -2609, -0.917701, -0.000000, 0.000000, 0.397273 -2610, -0.918116, -0.000000, 0.000000, 0.396311 -2611, -0.918531, -0.000000, 0.000000, 0.395349 -2612, -0.918944, -0.000000, 0.000000, 0.394387 -2613, -0.919357, -0.000000, 0.000000, 0.393424 -2614, -0.919769, -0.000000, 0.000000, 0.392461 -2615, -0.920179, -0.000000, 0.000000, 0.391497 -2616, -0.920589, -0.000000, 0.000000, 0.390533 -2617, -0.920998, -0.000000, 0.000000, 0.389568 -2618, -0.921405, -0.000000, 0.000000, 0.388603 -2619, -0.921812, -0.000000, 0.000000, 0.387638 -2620, -0.922217, -0.000000, 0.000000, 0.386672 -2621, -0.922622, -0.000000, 0.000000, 0.385706 -2622, -0.923025, -0.000000, 0.000000, 0.384739 -2623, -0.923428, -0.000000, 0.000000, 0.383772 -2624, -0.923829, -0.000000, 0.000000, 0.382804 -2625, -0.924230, -0.000000, 0.000000, 0.381836 -2626, -0.924629, -0.000000, 0.000000, 0.380868 -2627, -0.925028, -0.000000, 0.000000, 0.379899 -2628, -0.925425, -0.000000, 0.000000, 0.378930 -2629, -0.925822, -0.000000, 0.000000, 0.377960 -2630, -0.926217, -0.000000, 0.000000, 0.376990 -2631, -0.926612, -0.000000, 0.000000, 0.376020 -2632, -0.927005, -0.000000, 0.000000, 0.375049 -2633, -0.927397, -0.000000, 0.000000, 0.374078 -2634, -0.927789, -0.000000, 0.000000, 0.373106 -2635, -0.928179, -0.000000, 0.000000, 0.372134 -2636, -0.928568, -0.000000, 0.000000, 0.371161 -2637, -0.928957, -0.000000, 0.000000, 0.370188 -2638, -0.929344, -0.000000, 0.000000, 0.369215 -2639, -0.929730, -0.000000, 0.000000, 0.368241 -2640, -0.930115, -0.000000, 0.000000, 0.367267 -2641, -0.930500, -0.000000, 0.000000, 0.366293 -2642, -0.930883, -0.000000, 0.000000, 0.365318 -2643, -0.931265, -0.000000, 0.000000, 0.364342 -2644, -0.931646, -0.000000, 0.000000, 0.363367 -2645, -0.932026, -0.000000, 0.000000, 0.362391 -2646, -0.932405, -0.000000, 0.000000, 0.361414 -2647, -0.932784, -0.000000, 0.000000, 0.360437 -2648, -0.933161, -0.000000, 0.000000, 0.359460 -2649, -0.933537, -0.000000, 0.000000, 0.358482 -2650, -0.933912, -0.000000, 0.000000, 0.357504 -2651, -0.934286, -0.000000, 0.000000, 0.356525 -2652, -0.934659, -0.000000, 0.000000, 0.355547 -2653, -0.935031, -0.000000, 0.000000, 0.354567 -2654, -0.935401, -0.000000, 0.000000, 0.353588 -2655, -0.935771, -0.000000, 0.000000, 0.352607 -2656, -0.936140, -0.000000, 0.000000, 0.351627 -2657, -0.936508, -0.000000, 0.000000, 0.350646 -2658, -0.936875, -0.000000, 0.000000, 0.349665 -2659, -0.937241, -0.000000, 0.000000, 0.348683 -2660, -0.937605, -0.000000, 0.000000, 0.347701 -2661, -0.937969, -0.000000, 0.000000, 0.346719 -2662, -0.938332, -0.000000, 0.000000, 0.345736 -2663, -0.938693, -0.000000, 0.000000, 0.344753 -2664, -0.939054, -0.000000, 0.000000, 0.343770 -2665, -0.939414, -0.000000, 0.000000, 0.342786 -2666, -0.939772, -0.000000, 0.000000, 0.341801 -2667, -0.940130, -0.000000, 0.000000, 0.340817 -2668, -0.940486, -0.000000, 0.000000, 0.339832 -2669, -0.940842, -0.000000, 0.000000, 0.338846 -2670, -0.941196, -0.000000, 0.000000, 0.337861 -2671, -0.941550, -0.000000, 0.000000, 0.336874 -2672, -0.941902, -0.000000, 0.000000, 0.335888 -2673, -0.942253, -0.000000, 0.000000, 0.334901 -2674, -0.942604, -0.000000, 0.000000, 0.333914 -2675, -0.942953, -0.000000, 0.000000, 0.332926 -2676, -0.943301, -0.000000, 0.000000, 0.331938 -2677, -0.943648, -0.000000, 0.000000, 0.330950 -2678, -0.943994, -0.000000, 0.000000, 0.329961 -2679, -0.944340, -0.000000, 0.000000, 0.328972 -2680, -0.944684, -0.000000, 0.000000, 0.327983 -2681, -0.945027, -0.000000, 0.000000, 0.326993 -2682, -0.945369, -0.000000, 0.000000, 0.326003 -2683, -0.945710, -0.000000, 0.000000, 0.325012 -2684, -0.946050, -0.000000, 0.000000, 0.324021 -2685, -0.946389, -0.000000, 0.000000, 0.323030 -2686, -0.946727, -0.000000, 0.000000, 0.322039 -2687, -0.947063, -0.000000, 0.000000, 0.321047 -2688, -0.947399, -0.000000, 0.000000, 0.320055 -2689, -0.947734, -0.000000, 0.000000, 0.319062 -2690, -0.948068, -0.000000, 0.000000, 0.318069 -2691, -0.948400, -0.000000, 0.000000, 0.317076 -2692, -0.948732, -0.000000, 0.000000, 0.316082 -2693, -0.949062, -0.000000, 0.000000, 0.315088 -2694, -0.949392, -0.000000, 0.000000, 0.314094 -2695, -0.949721, -0.000000, 0.000000, 0.313099 -2696, -0.950048, -0.000000, 0.000000, 0.312104 -2697, -0.950374, -0.000000, 0.000000, 0.311108 -2698, -0.950700, -0.000000, 0.000000, 0.310113 -2699, -0.951024, -0.000000, 0.000000, 0.309117 -2700, -0.951347, -0.000000, 0.000000, 0.308120 -2701, -0.951670, -0.000000, 0.000000, 0.307123 -2702, -0.951991, -0.000000, 0.000000, 0.306126 -2703, -0.952311, -0.000000, 0.000000, 0.305129 -2704, -0.952630, -0.000000, 0.000000, 0.304131 -2705, -0.952948, -0.000000, 0.000000, 0.303133 -2706, -0.953265, -0.000000, 0.000000, 0.302135 -2707, -0.953581, -0.000000, 0.000000, 0.301136 -2708, -0.953896, -0.000000, 0.000000, 0.300137 -2709, -0.954210, -0.000000, 0.000000, 0.299137 -2710, -0.954523, -0.000000, 0.000000, 0.298138 -2711, -0.954835, -0.000000, 0.000000, 0.297138 -2712, -0.955145, -0.000000, 0.000000, 0.296137 -2713, -0.955455, -0.000000, 0.000000, 0.295136 -2714, -0.955764, -0.000000, 0.000000, 0.294135 -2715, -0.956071, -0.000000, 0.000000, 0.293134 -2716, -0.956378, -0.000000, 0.000000, 0.292132 -2717, -0.956683, -0.000000, 0.000000, 0.291130 -2718, -0.956988, -0.000000, 0.000000, 0.290128 -2719, -0.957291, -0.000000, 0.000000, 0.289125 -2720, -0.957594, -0.000000, 0.000000, 0.288122 -2721, -0.957895, -0.000000, 0.000000, 0.287119 -2722, -0.958195, -0.000000, 0.000000, 0.286116 -2723, -0.958494, -0.000000, 0.000000, 0.285112 -2724, -0.958792, -0.000000, 0.000000, 0.284107 -2725, -0.959090, -0.000000, 0.000000, 0.283103 -2726, -0.959386, -0.000000, 0.000000, 0.282098 -2727, -0.959681, -0.000000, 0.000000, 0.281093 -2728, -0.959975, -0.000000, 0.000000, 0.280087 -2729, -0.960267, -0.000000, 0.000000, 0.279082 -2730, -0.960559, -0.000000, 0.000000, 0.278076 -2731, -0.960850, -0.000000, 0.000000, 0.277069 -2732, -0.961140, -0.000000, 0.000000, 0.276062 -2733, -0.961428, -0.000000, 0.000000, 0.275056 -2734, -0.961716, -0.000000, 0.000000, 0.274048 -2735, -0.962003, -0.000000, 0.000000, 0.273041 -2736, -0.962288, -0.000000, 0.000000, 0.272033 -2737, -0.962572, -0.000000, 0.000000, 0.271025 -2738, -0.962856, -0.000000, 0.000000, 0.270016 -2739, -0.963138, -0.000000, 0.000000, 0.269007 -2740, -0.963419, -0.000000, 0.000000, 0.267998 -2741, -0.963700, -0.000000, 0.000000, 0.266989 -2742, -0.963979, -0.000000, 0.000000, 0.265979 -2743, -0.964257, -0.000000, 0.000000, 0.264969 -2744, -0.964534, -0.000000, 0.000000, 0.263959 -2745, -0.964810, -0.000000, 0.000000, 0.262948 -2746, -0.965085, -0.000000, 0.000000, 0.261938 -2747, -0.965359, -0.000000, 0.000000, 0.260926 -2748, -0.965631, -0.000000, 0.000000, 0.259915 -2749, -0.965903, -0.000000, 0.000000, 0.258903 -2750, -0.966174, -0.000000, 0.000000, 0.257891 -2751, -0.966444, -0.000000, 0.000000, 0.256879 -2752, -0.966712, -0.000000, 0.000000, 0.255867 -2753, -0.966980, -0.000000, 0.000000, 0.254854 -2754, -0.967246, -0.000000, 0.000000, 0.253841 -2755, -0.967511, -0.000000, 0.000000, 0.252827 -2756, -0.967776, -0.000000, 0.000000, 0.251814 -2757, -0.968039, -0.000000, 0.000000, 0.250800 -2758, -0.968301, -0.000000, 0.000000, 0.249786 -2759, -0.968562, -0.000000, 0.000000, 0.248771 -2760, -0.968822, -0.000000, 0.000000, 0.247756 -2761, -0.969081, -0.000000, 0.000000, 0.246741 -2762, -0.969339, -0.000000, 0.000000, 0.245726 -2763, -0.969596, -0.000000, 0.000000, 0.244710 -2764, -0.969852, -0.000000, 0.000000, 0.243695 -2765, -0.970107, -0.000000, 0.000000, 0.242678 -2766, -0.970360, -0.000000, 0.000000, 0.241662 -2767, -0.970613, -0.000000, 0.000000, 0.240646 -2768, -0.970865, -0.000000, 0.000000, 0.239629 -2769, -0.971115, -0.000000, 0.000000, 0.238611 -2770, -0.971365, -0.000000, 0.000000, 0.237594 -2771, -0.971613, -0.000000, 0.000000, 0.236576 -2772, -0.971860, -0.000000, 0.000000, 0.235558 -2773, -0.972106, -0.000000, 0.000000, 0.234540 -2774, -0.972352, -0.000000, 0.000000, 0.233522 -2775, -0.972596, -0.000000, 0.000000, 0.232503 -2776, -0.972839, -0.000000, 0.000000, 0.231484 -2777, -0.973081, -0.000000, 0.000000, 0.230465 -2778, -0.973322, -0.000000, 0.000000, 0.229445 -2779, -0.973561, -0.000000, 0.000000, 0.228426 -2780, -0.973800, -0.000000, 0.000000, 0.227406 -2781, -0.974038, -0.000000, 0.000000, 0.226385 -2782, -0.974274, -0.000000, 0.000000, 0.225365 -2783, -0.974510, -0.000000, 0.000000, 0.224344 -2784, -0.974744, -0.000000, 0.000000, 0.223323 -2785, -0.974978, -0.000000, 0.000000, 0.222302 -2786, -0.975210, -0.000000, 0.000000, 0.221281 -2787, -0.975441, -0.000000, 0.000000, 0.220259 -2788, -0.975672, -0.000000, 0.000000, 0.219237 -2789, -0.975901, -0.000000, 0.000000, 0.218215 -2790, -0.976129, -0.000000, 0.000000, 0.217192 -2791, -0.976356, -0.000000, 0.000000, 0.216170 -2792, -0.976582, -0.000000, 0.000000, 0.215147 -2793, -0.976807, -0.000000, 0.000000, 0.214124 -2794, -0.977030, -0.000000, 0.000000, 0.213100 -2795, -0.977253, -0.000000, 0.000000, 0.212077 -2796, -0.977475, -0.000000, 0.000000, 0.211053 -2797, -0.977695, -0.000000, 0.000000, 0.210029 -2798, -0.977915, -0.000000, 0.000000, 0.209005 -2799, -0.978133, -0.000000, 0.000000, 0.207980 -2800, -0.978350, -0.000000, 0.000000, 0.206955 -2801, -0.978567, -0.000000, 0.000000, 0.205930 -2802, -0.978782, -0.000000, 0.000000, 0.204905 -2803, -0.978996, -0.000000, 0.000000, 0.203880 -2804, -0.979209, -0.000000, 0.000000, 0.202854 -2805, -0.979421, -0.000000, 0.000000, 0.201828 -2806, -0.979632, -0.000000, 0.000000, 0.200802 -2807, -0.979842, -0.000000, 0.000000, 0.199776 -2808, -0.980050, -0.000000, 0.000000, 0.198749 -2809, -0.980258, -0.000000, 0.000000, 0.197722 -2810, -0.980465, -0.000000, 0.000000, 0.196695 -2811, -0.980670, -0.000000, 0.000000, 0.195668 -2812, -0.980875, -0.000000, 0.000000, 0.194641 -2813, -0.981078, -0.000000, 0.000000, 0.193613 -2814, -0.981280, -0.000000, 0.000000, 0.192585 -2815, -0.981481, -0.000000, 0.000000, 0.191557 -2816, -0.981682, -0.000000, 0.000000, 0.190529 -2817, -0.981881, -0.000000, 0.000000, 0.189501 -2818, -0.982079, -0.000000, 0.000000, 0.188472 -2819, -0.982275, -0.000000, 0.000000, 0.187443 -2820, -0.982471, -0.000000, 0.000000, 0.186414 -2821, -0.982666, -0.000000, 0.000000, 0.185385 -2822, -0.982860, -0.000000, 0.000000, 0.184355 -2823, -0.983052, -0.000000, 0.000000, 0.183326 -2824, -0.983244, -0.000000, 0.000000, 0.182296 -2825, -0.983434, -0.000000, 0.000000, 0.181266 -2826, -0.983624, -0.000000, 0.000000, 0.180235 -2827, -0.983812, -0.000000, 0.000000, 0.179205 -2828, -0.983999, -0.000000, 0.000000, 0.178174 -2829, -0.984185, -0.000000, 0.000000, 0.177143 -2830, -0.984370, -0.000000, 0.000000, 0.176112 -2831, -0.984554, -0.000000, 0.000000, 0.175081 -2832, -0.984737, -0.000000, 0.000000, 0.174049 -2833, -0.984919, -0.000000, 0.000000, 0.173018 -2834, -0.985099, -0.000000, 0.000000, 0.171986 -2835, -0.985279, -0.000000, 0.000000, 0.170954 -2836, -0.985458, -0.000000, 0.000000, 0.169922 -2837, -0.985635, -0.000000, 0.000000, 0.168889 -2838, -0.985811, -0.000000, 0.000000, 0.167857 -2839, -0.985987, -0.000000, 0.000000, 0.166824 -2840, -0.986161, -0.000000, 0.000000, 0.165791 -2841, -0.986334, -0.000000, 0.000000, 0.164758 -2842, -0.986506, -0.000000, 0.000000, 0.163724 -2843, -0.986677, -0.000000, 0.000000, 0.162691 -2844, -0.986847, -0.000000, 0.000000, 0.161657 -2845, -0.987016, -0.000000, 0.000000, 0.160623 -2846, -0.987183, -0.000000, 0.000000, 0.159589 -2847, -0.987350, -0.000000, 0.000000, 0.158555 -2848, -0.987516, -0.000000, 0.000000, 0.157521 -2849, -0.987680, -0.000000, 0.000000, 0.156486 -2850, -0.987844, -0.000000, 0.000000, 0.155451 -2851, -0.988006, -0.000000, 0.000000, 0.154417 -2852, -0.988167, -0.000000, 0.000000, 0.153382 -2853, -0.988327, -0.000000, 0.000000, 0.152346 -2854, -0.988486, -0.000000, 0.000000, 0.151311 -2855, -0.988644, -0.000000, 0.000000, 0.150275 -2856, -0.988801, -0.000000, 0.000000, 0.149240 -2857, -0.988957, -0.000000, 0.000000, 0.148204 -2858, -0.989112, -0.000000, 0.000000, 0.147168 -2859, -0.989265, -0.000000, 0.000000, 0.146131 -2860, -0.989418, -0.000000, 0.000000, 0.145095 -2861, -0.989569, -0.000000, 0.000000, 0.144058 -2862, -0.989720, -0.000000, 0.000000, 0.143022 -2863, -0.989869, -0.000000, 0.000000, 0.141985 -2864, -0.990017, -0.000000, 0.000000, 0.140948 -2865, -0.990164, -0.000000, 0.000000, 0.139911 -2866, -0.990310, -0.000000, 0.000000, 0.138873 -2867, -0.990455, -0.000000, 0.000000, 0.137836 -2868, -0.990599, -0.000000, 0.000000, 0.136798 -2869, -0.990742, -0.000000, 0.000000, 0.135761 -2870, -0.990883, -0.000000, 0.000000, 0.134723 -2871, -0.991024, -0.000000, 0.000000, 0.133685 -2872, -0.991163, -0.000000, 0.000000, 0.132646 -2873, -0.991302, -0.000000, 0.000000, 0.131608 -2874, -0.991439, -0.000000, 0.000000, 0.130569 -2875, -0.991575, -0.000000, 0.000000, 0.129531 -2876, -0.991711, -0.000000, 0.000000, 0.128492 -2877, -0.991845, -0.000000, 0.000000, 0.127453 -2878, -0.991978, -0.000000, 0.000000, 0.126414 -2879, -0.992109, -0.000000, 0.000000, 0.125375 -2880, -0.992240, -0.000000, 0.000000, 0.124335 -2881, -0.992370, -0.000000, 0.000000, 0.123296 -2882, -0.992499, -0.000000, 0.000000, 0.122256 -2883, -0.992626, -0.000000, 0.000000, 0.121217 -2884, -0.992753, -0.000000, 0.000000, 0.120177 -2885, -0.992878, -0.000000, 0.000000, 0.119137 -2886, -0.993002, -0.000000, 0.000000, 0.118097 -2887, -0.993125, -0.000000, 0.000000, 0.117056 -2888, -0.993247, -0.000000, 0.000000, 0.116016 -2889, -0.993368, -0.000000, 0.000000, 0.114975 -2890, -0.993488, -0.000000, 0.000000, 0.113935 -2891, -0.993607, -0.000000, 0.000000, 0.112894 -2892, -0.993725, -0.000000, 0.000000, 0.111853 -2893, -0.993841, -0.000000, 0.000000, 0.110812 -2894, -0.993957, -0.000000, 0.000000, 0.109771 -2895, -0.994071, -0.000000, 0.000000, 0.108729 -2896, -0.994185, -0.000000, 0.000000, 0.107688 -2897, -0.994297, -0.000000, 0.000000, 0.106647 -2898, -0.994408, -0.000000, 0.000000, 0.105605 -2899, -0.994518, -0.000000, 0.000000, 0.104563 -2900, -0.994627, -0.000000, 0.000000, 0.103521 -2901, -0.994735, -0.000000, 0.000000, 0.102479 -2902, -0.994842, -0.000000, 0.000000, 0.101437 -2903, -0.994948, -0.000000, 0.000000, 0.100395 -2904, -0.995052, -0.000000, 0.000000, 0.099353 -2905, -0.995156, -0.000000, 0.000000, 0.098310 -2906, -0.995258, -0.000000, 0.000000, 0.097268 -2907, -0.995360, -0.000000, 0.000000, 0.096225 -2908, -0.995460, -0.000000, 0.000000, 0.095182 -2909, -0.995559, -0.000000, 0.000000, 0.094140 -2910, -0.995657, -0.000000, 0.000000, 0.093097 -2911, -0.995754, -0.000000, 0.000000, 0.092054 -2912, -0.995850, -0.000000, 0.000000, 0.091010 -2913, -0.995945, -0.000000, 0.000000, 0.089967 -2914, -0.996038, -0.000000, 0.000000, 0.088924 -2915, -0.996131, -0.000000, 0.000000, 0.087880 -2916, -0.996223, -0.000000, 0.000000, 0.086837 -2917, -0.996313, -0.000000, 0.000000, 0.085793 -2918, -0.996402, -0.000000, 0.000000, 0.084750 -2919, -0.996491, -0.000000, 0.000000, 0.083706 -2920, -0.996578, -0.000000, 0.000000, 0.082662 -2921, -0.996664, -0.000000, 0.000000, 0.081618 -2922, -0.996749, -0.000000, 0.000000, 0.080574 -2923, -0.996833, -0.000000, 0.000000, 0.079529 -2924, -0.996915, -0.000000, 0.000000, 0.078485 -2925, -0.996997, -0.000000, 0.000000, 0.077441 -2926, -0.997078, -0.000000, 0.000000, 0.076396 -2927, -0.997157, -0.000000, 0.000000, 0.075352 -2928, -0.997235, -0.000000, 0.000000, 0.074307 -2929, -0.997313, -0.000000, 0.000000, 0.073263 -2930, -0.997389, -0.000000, 0.000000, 0.072218 -2931, -0.997464, -0.000000, 0.000000, 0.071173 -2932, -0.997538, -0.000000, 0.000000, 0.070128 -2933, -0.997611, -0.000000, 0.000000, 0.069083 -2934, -0.997683, -0.000000, 0.000000, 0.068038 -2935, -0.997753, -0.000000, 0.000000, 0.066993 -2936, -0.997823, -0.000000, 0.000000, 0.065948 -2937, -0.997892, -0.000000, 0.000000, 0.064902 -2938, -0.997959, -0.000000, 0.000000, 0.063857 -2939, -0.998025, -0.000000, 0.000000, 0.062811 -2940, -0.998091, -0.000000, 0.000000, 0.061766 -2941, -0.998155, -0.000000, 0.000000, 0.060720 -2942, -0.998218, -0.000000, 0.000000, 0.059675 -2943, -0.998280, -0.000000, 0.000000, 0.058629 -2944, -0.998341, -0.000000, 0.000000, 0.057583 -2945, -0.998400, -0.000000, 0.000000, 0.056537 -2946, -0.998459, -0.000000, 0.000000, 0.055491 -2947, -0.998517, -0.000000, 0.000000, 0.054445 -2948, -0.998573, -0.000000, 0.000000, 0.053399 -2949, -0.998629, -0.000000, 0.000000, 0.052353 -2950, -0.998683, -0.000000, 0.000000, 0.051307 -2951, -0.998736, -0.000000, 0.000000, 0.050261 -2952, -0.998788, -0.000000, 0.000000, 0.049215 -2953, -0.998839, -0.000000, 0.000000, 0.048169 -2954, -0.998889, -0.000000, 0.000000, 0.047122 -2955, -0.998938, -0.000000, 0.000000, 0.046076 -2956, -0.998986, -0.000000, 0.000000, 0.045029 -2957, -0.999032, -0.000000, 0.000000, 0.043983 -2958, -0.999078, -0.000000, 0.000000, 0.042936 -2959, -0.999122, -0.000000, 0.000000, 0.041890 -2960, -0.999166, -0.000000, 0.000000, 0.040843 -2961, -0.999208, -0.000000, 0.000000, 0.039796 -2962, -0.999249, -0.000000, 0.000000, 0.038750 -2963, -0.999289, -0.000000, 0.000000, 0.037703 -2964, -0.999328, -0.000000, 0.000000, 0.036656 -2965, -0.999366, -0.000000, 0.000000, 0.035609 -2966, -0.999403, -0.000000, 0.000000, 0.034562 -2967, -0.999438, -0.000000, 0.000000, 0.033515 -2968, -0.999473, -0.000000, 0.000000, 0.032468 -2969, -0.999506, -0.000000, 0.000000, 0.031421 -2970, -0.999539, -0.000000, 0.000000, 0.030374 -2971, -0.999570, -0.000000, 0.000000, 0.029327 -2972, -0.999600, -0.000000, 0.000000, 0.028280 -2973, -0.999629, -0.000000, 0.000000, 0.027233 -2974, -0.999657, -0.000000, 0.000000, 0.026186 -2975, -0.999684, -0.000000, 0.000000, 0.025138 -2976, -0.999710, -0.000000, 0.000000, 0.024091 -2977, -0.999734, -0.000000, 0.000000, 0.023044 -2978, -0.999758, -0.000000, 0.000000, 0.021997 -2979, -0.999781, -0.000000, 0.000000, 0.020949 -2980, -0.999802, -0.000000, 0.000000, 0.019902 -2981, -0.999822, -0.000000, 0.000000, 0.018855 -2982, -0.999841, -0.000000, 0.000000, 0.017807 -2983, -0.999860, -0.000000, 0.000000, 0.016760 -2984, -0.999877, -0.000000, 0.000000, 0.015713 -2985, -0.999892, -0.000000, 0.000000, 0.014665 -2986, -0.999907, -0.000000, 0.000000, 0.013618 -2987, -0.999921, -0.000000, 0.000000, 0.012570 -2988, -0.999934, -0.000000, 0.000000, 0.011523 -2989, -0.999945, -0.000000, 0.000000, 0.010475 -2990, -0.999956, -0.000000, 0.000000, 0.009428 -2991, -0.999965, -0.000000, 0.000000, 0.008380 -2992, -0.999973, -0.000000, 0.000000, 0.007333 -2993, -0.999980, -0.000000, 0.000000, 0.006285 -2994, -0.999986, -0.000000, 0.000000, 0.005238 -2995, -0.999991, -0.000000, 0.000000, 0.004190 -2996, -0.999995, -0.000000, 0.000000, 0.003143 -2997, -0.999998, -0.000000, 0.000000, 0.002095 -2998, -0.999999, -0.000000, 0.000000, 0.001048 -2999, -1.000000, -0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 0.999999, 0.000000, 0.000000, 0.001048 + 0.999998, 0.000000, 0.000000, 0.002095 + 0.999995, 0.000000, 0.000000, 0.003143 + 0.999991, 0.000000, 0.000000, 0.004190 + 0.999986, 0.000000, 0.000000, 0.005238 + 0.999980, 0.000000, 0.000000, 0.006285 + 0.999973, 0.000000, 0.000000, 0.007333 + 0.999965, 0.000000, 0.000000, 0.008380 + 0.999956, 0.000000, 0.000000, 0.009428 + 0.999945, 0.000000, 0.000000, 0.010475 + 0.999934, 0.000000, 0.000000, 0.011523 + 0.999921, 0.000000, 0.000000, 0.012570 + 0.999907, 0.000000, 0.000000, 0.013618 + 0.999892, 0.000000, 0.000000, 0.014665 + 0.999877, 0.000000, 0.000000, 0.015713 + 0.999860, 0.000000, 0.000000, 0.016760 + 0.999841, 0.000000, 0.000000, 0.017807 + 0.999822, 0.000000, 0.000000, 0.018855 + 0.999802, 0.000000, 0.000000, 0.019902 + 0.999781, 0.000000, 0.000000, 0.020949 + 0.999758, 0.000000, 0.000000, 0.021997 + 0.999734, 0.000000, 0.000000, 0.023044 + 0.999710, 0.000000, 0.000000, 0.024091 + 0.999684, 0.000000, 0.000000, 0.025138 + 0.999657, 0.000000, 0.000000, 0.026186 + 0.999629, 0.000000, 0.000000, 0.027233 + 0.999600, 0.000000, 0.000000, 0.028280 + 0.999570, 0.000000, 0.000000, 0.029327 + 0.999539, 0.000000, 0.000000, 0.030374 + 0.999506, 0.000000, 0.000000, 0.031421 + 0.999473, 0.000000, 0.000000, 0.032468 + 0.999438, 0.000000, 0.000000, 0.033515 + 0.999403, 0.000000, 0.000000, 0.034562 + 0.999366, 0.000000, 0.000000, 0.035609 + 0.999328, 0.000000, 0.000000, 0.036656 + 0.999289, 0.000000, 0.000000, 0.037703 + 0.999249, 0.000000, 0.000000, 0.038750 + 0.999208, 0.000000, 0.000000, 0.039796 + 0.999166, 0.000000, 0.000000, 0.040843 + 0.999122, 0.000000, 0.000000, 0.041890 + 0.999078, 0.000000, 0.000000, 0.042936 + 0.999032, 0.000000, 0.000000, 0.043983 + 0.998986, 0.000000, 0.000000, 0.045029 + 0.998938, 0.000000, 0.000000, 0.046076 + 0.998889, 0.000000, 0.000000, 0.047122 + 0.998839, 0.000000, 0.000000, 0.048169 + 0.998788, 0.000000, 0.000000, 0.049215 + 0.998736, 0.000000, 0.000000, 0.050261 + 0.998683, 0.000000, 0.000000, 0.051307 + 0.998629, 0.000000, 0.000000, 0.052353 + 0.998573, 0.000000, 0.000000, 0.053399 + 0.998517, 0.000000, 0.000000, 0.054445 + 0.998459, 0.000000, 0.000000, 0.055491 + 0.998400, 0.000000, 0.000000, 0.056537 + 0.998341, 0.000000, 0.000000, 0.057583 + 0.998280, 0.000000, 0.000000, 0.058629 + 0.998218, 0.000000, 0.000000, 0.059675 + 0.998155, 0.000000, 0.000000, 0.060720 + 0.998091, 0.000000, 0.000000, 0.061766 + 0.998025, 0.000000, 0.000000, 0.062811 + 0.997959, 0.000000, 0.000000, 0.063857 + 0.997892, 0.000000, 0.000000, 0.064902 + 0.997823, 0.000000, 0.000000, 0.065948 + 0.997753, 0.000000, 0.000000, 0.066993 + 0.997683, 0.000000, 0.000000, 0.068038 + 0.997611, 0.000000, 0.000000, 0.069083 + 0.997538, 0.000000, 0.000000, 0.070128 + 0.997464, 0.000000, 0.000000, 0.071173 + 0.997389, 0.000000, 0.000000, 0.072218 + 0.997313, 0.000000, 0.000000, 0.073263 + 0.997235, 0.000000, 0.000000, 0.074307 + 0.997157, 0.000000, 0.000000, 0.075352 + 0.997078, 0.000000, 0.000000, 0.076396 + 0.996997, 0.000000, 0.000000, 0.077441 + 0.996915, 0.000000, 0.000000, 0.078485 + 0.996833, 0.000000, 0.000000, 0.079529 + 0.996749, 0.000000, 0.000000, 0.080574 + 0.996664, 0.000000, 0.000000, 0.081618 + 0.996578, 0.000000, 0.000000, 0.082662 + 0.996491, 0.000000, 0.000000, 0.083706 + 0.996402, 0.000000, 0.000000, 0.084750 + 0.996313, 0.000000, 0.000000, 0.085793 + 0.996223, 0.000000, 0.000000, 0.086837 + 0.996131, 0.000000, 0.000000, 0.087880 + 0.996038, 0.000000, 0.000000, 0.088924 + 0.995945, 0.000000, 0.000000, 0.089967 + 0.995850, 0.000000, 0.000000, 0.091010 + 0.995754, 0.000000, 0.000000, 0.092054 + 0.995657, 0.000000, 0.000000, 0.093097 + 0.995559, 0.000000, 0.000000, 0.094140 + 0.995460, 0.000000, 0.000000, 0.095182 + 0.995360, 0.000000, 0.000000, 0.096225 + 0.995258, 0.000000, 0.000000, 0.097268 + 0.995156, 0.000000, 0.000000, 0.098310 + 0.995052, 0.000000, 0.000000, 0.099353 + 0.994948, 0.000000, 0.000000, 0.100395 + 0.994842, 0.000000, 0.000000, 0.101437 + 0.994735, 0.000000, 0.000000, 0.102479 + 0.994627, 0.000000, 0.000000, 0.103521 + 0.994518, 0.000000, 0.000000, 0.104563 + 0.994408, 0.000000, 0.000000, 0.105605 + 0.994297, 0.000000, 0.000000, 0.106647 + 0.994185, 0.000000, 0.000000, 0.107688 + 0.994071, 0.000000, 0.000000, 0.108729 + 0.993957, 0.000000, 0.000000, 0.109771 + 0.993841, 0.000000, 0.000000, 0.110812 + 0.993725, 0.000000, 0.000000, 0.111853 + 0.993607, 0.000000, 0.000000, 0.112894 + 0.993488, 0.000000, 0.000000, 0.113935 + 0.993368, 0.000000, 0.000000, 0.114975 + 0.993247, 0.000000, 0.000000, 0.116016 + 0.993125, 0.000000, 0.000000, 0.117056 + 0.993002, 0.000000, 0.000000, 0.118097 + 0.992878, 0.000000, 0.000000, 0.119137 + 0.992753, 0.000000, 0.000000, 0.120177 + 0.992626, 0.000000, 0.000000, 0.121217 + 0.992499, 0.000000, 0.000000, 0.122256 + 0.992370, 0.000000, 0.000000, 0.123296 + 0.992240, 0.000000, 0.000000, 0.124335 + 0.992109, 0.000000, 0.000000, 0.125375 + 0.991978, 0.000000, 0.000000, 0.126414 + 0.991845, 0.000000, 0.000000, 0.127453 + 0.991711, 0.000000, 0.000000, 0.128492 + 0.991575, 0.000000, 0.000000, 0.129531 + 0.991439, 0.000000, 0.000000, 0.130569 + 0.991302, 0.000000, 0.000000, 0.131608 + 0.991163, 0.000000, 0.000000, 0.132646 + 0.991024, 0.000000, 0.000000, 0.133685 + 0.990883, 0.000000, 0.000000, 0.134723 + 0.990742, 0.000000, 0.000000, 0.135761 + 0.990599, 0.000000, 0.000000, 0.136798 + 0.990455, 0.000000, 0.000000, 0.137836 + 0.990310, 0.000000, 0.000000, 0.138873 + 0.990164, 0.000000, 0.000000, 0.139911 + 0.990017, 0.000000, 0.000000, 0.140948 + 0.989869, 0.000000, 0.000000, 0.141985 + 0.989720, 0.000000, 0.000000, 0.143022 + 0.989569, 0.000000, 0.000000, 0.144058 + 0.989418, 0.000000, 0.000000, 0.145095 + 0.989265, 0.000000, 0.000000, 0.146131 + 0.989112, 0.000000, 0.000000, 0.147168 + 0.988957, 0.000000, 0.000000, 0.148204 + 0.988801, 0.000000, 0.000000, 0.149240 + 0.988644, 0.000000, 0.000000, 0.150275 + 0.988486, 0.000000, 0.000000, 0.151311 + 0.988327, 0.000000, 0.000000, 0.152346 + 0.988167, 0.000000, 0.000000, 0.153382 + 0.988006, 0.000000, 0.000000, 0.154417 + 0.987844, 0.000000, 0.000000, 0.155451 + 0.987680, 0.000000, 0.000000, 0.156486 + 0.987516, 0.000000, 0.000000, 0.157521 + 0.987350, 0.000000, 0.000000, 0.158555 + 0.987183, 0.000000, 0.000000, 0.159589 + 0.987016, 0.000000, 0.000000, 0.160623 + 0.986847, 0.000000, 0.000000, 0.161657 + 0.986677, 0.000000, 0.000000, 0.162691 + 0.986506, 0.000000, 0.000000, 0.163724 + 0.986334, 0.000000, 0.000000, 0.164758 + 0.986161, 0.000000, 0.000000, 0.165791 + 0.985987, 0.000000, 0.000000, 0.166824 + 0.985811, 0.000000, 0.000000, 0.167857 + 0.985635, 0.000000, 0.000000, 0.168889 + 0.985458, 0.000000, 0.000000, 0.169922 + 0.985279, 0.000000, 0.000000, 0.170954 + 0.985099, 0.000000, 0.000000, 0.171986 + 0.984919, 0.000000, 0.000000, 0.173018 + 0.984737, 0.000000, 0.000000, 0.174049 + 0.984554, 0.000000, 0.000000, 0.175081 + 0.984370, 0.000000, 0.000000, 0.176112 + 0.984185, 0.000000, 0.000000, 0.177143 + 0.983999, 0.000000, 0.000000, 0.178174 + 0.983812, 0.000000, 0.000000, 0.179205 + 0.983624, 0.000000, 0.000000, 0.180235 + 0.983434, 0.000000, 0.000000, 0.181266 + 0.983244, 0.000000, 0.000000, 0.182296 + 0.983052, 0.000000, 0.000000, 0.183326 + 0.982860, 0.000000, 0.000000, 0.184355 + 0.982666, 0.000000, 0.000000, 0.185385 + 0.982471, 0.000000, 0.000000, 0.186414 + 0.982275, 0.000000, 0.000000, 0.187443 + 0.982079, 0.000000, 0.000000, 0.188472 + 0.981881, 0.000000, 0.000000, 0.189501 + 0.981682, 0.000000, 0.000000, 0.190529 + 0.981481, 0.000000, 0.000000, 0.191557 + 0.981280, 0.000000, 0.000000, 0.192585 + 0.981078, 0.000000, 0.000000, 0.193613 + 0.980875, 0.000000, 0.000000, 0.194641 + 0.980670, 0.000000, 0.000000, 0.195668 + 0.980465, 0.000000, 0.000000, 0.196695 + 0.980258, 0.000000, 0.000000, 0.197722 + 0.980050, 0.000000, 0.000000, 0.198749 + 0.979842, 0.000000, 0.000000, 0.199776 + 0.979632, 0.000000, 0.000000, 0.200802 + 0.979421, 0.000000, 0.000000, 0.201828 + 0.979209, 0.000000, 0.000000, 0.202854 + 0.978996, 0.000000, 0.000000, 0.203880 + 0.978782, 0.000000, 0.000000, 0.204905 + 0.978567, 0.000000, 0.000000, 0.205930 + 0.978350, 0.000000, 0.000000, 0.206955 + 0.978133, 0.000000, 0.000000, 0.207980 + 0.977915, 0.000000, 0.000000, 0.209005 + 0.977695, 0.000000, 0.000000, 0.210029 + 0.977475, 0.000000, 0.000000, 0.211053 + 0.977253, 0.000000, 0.000000, 0.212077 + 0.977030, 0.000000, 0.000000, 0.213100 + 0.976807, 0.000000, 0.000000, 0.214124 + 0.976582, 0.000000, 0.000000, 0.215147 + 0.976356, 0.000000, 0.000000, 0.216170 + 0.976129, 0.000000, 0.000000, 0.217192 + 0.975901, 0.000000, 0.000000, 0.218215 + 0.975672, 0.000000, 0.000000, 0.219237 + 0.975441, 0.000000, 0.000000, 0.220259 + 0.975210, 0.000000, 0.000000, 0.221281 + 0.974978, 0.000000, 0.000000, 0.222302 + 0.974744, 0.000000, 0.000000, 0.223323 + 0.974510, 0.000000, 0.000000, 0.224344 + 0.974274, 0.000000, 0.000000, 0.225365 + 0.974038, 0.000000, 0.000000, 0.226385 + 0.973800, 0.000000, 0.000000, 0.227406 + 0.973561, 0.000000, 0.000000, 0.228426 + 0.973322, 0.000000, 0.000000, 0.229445 + 0.973081, 0.000000, 0.000000, 0.230465 + 0.972839, 0.000000, 0.000000, 0.231484 + 0.972596, 0.000000, 0.000000, 0.232503 + 0.972352, 0.000000, 0.000000, 0.233522 + 0.972106, 0.000000, 0.000000, 0.234540 + 0.971860, 0.000000, 0.000000, 0.235558 + 0.971613, 0.000000, 0.000000, 0.236576 + 0.971365, 0.000000, 0.000000, 0.237594 + 0.971115, 0.000000, 0.000000, 0.238611 + 0.970865, 0.000000, 0.000000, 0.239629 + 0.970613, 0.000000, 0.000000, 0.240646 + 0.970360, 0.000000, 0.000000, 0.241662 + 0.970107, 0.000000, 0.000000, 0.242678 + 0.969852, 0.000000, 0.000000, 0.243695 + 0.969596, 0.000000, 0.000000, 0.244710 + 0.969339, 0.000000, 0.000000, 0.245726 + 0.969081, 0.000000, 0.000000, 0.246741 + 0.968822, 0.000000, 0.000000, 0.247756 + 0.968562, 0.000000, 0.000000, 0.248771 + 0.968301, 0.000000, 0.000000, 0.249786 + 0.968039, 0.000000, 0.000000, 0.250800 + 0.967776, 0.000000, 0.000000, 0.251814 + 0.967511, 0.000000, 0.000000, 0.252827 + 0.967246, 0.000000, 0.000000, 0.253841 + 0.966980, 0.000000, 0.000000, 0.254854 + 0.966712, 0.000000, 0.000000, 0.255867 + 0.966444, 0.000000, 0.000000, 0.256879 + 0.966174, 0.000000, 0.000000, 0.257891 + 0.965903, 0.000000, 0.000000, 0.258903 + 0.965631, 0.000000, 0.000000, 0.259915 + 0.965359, 0.000000, 0.000000, 0.260926 + 0.965085, 0.000000, 0.000000, 0.261938 + 0.964810, 0.000000, 0.000000, 0.262948 + 0.964534, 0.000000, 0.000000, 0.263959 + 0.964257, 0.000000, 0.000000, 0.264969 + 0.963979, 0.000000, 0.000000, 0.265979 + 0.963700, 0.000000, 0.000000, 0.266989 + 0.963419, 0.000000, 0.000000, 0.267998 + 0.963138, 0.000000, 0.000000, 0.269007 + 0.962856, 0.000000, 0.000000, 0.270016 + 0.962572, 0.000000, 0.000000, 0.271025 + 0.962288, 0.000000, 0.000000, 0.272033 + 0.962003, 0.000000, 0.000000, 0.273041 + 0.961716, 0.000000, 0.000000, 0.274048 + 0.961428, 0.000000, 0.000000, 0.275056 + 0.961140, 0.000000, 0.000000, 0.276062 + 0.960850, 0.000000, 0.000000, 0.277069 + 0.960559, 0.000000, 0.000000, 0.278076 + 0.960267, 0.000000, 0.000000, 0.279082 + 0.959975, 0.000000, 0.000000, 0.280087 + 0.959681, 0.000000, 0.000000, 0.281093 + 0.959386, 0.000000, 0.000000, 0.282098 + 0.959090, 0.000000, 0.000000, 0.283103 + 0.958792, 0.000000, 0.000000, 0.284107 + 0.958494, 0.000000, 0.000000, 0.285112 + 0.958195, 0.000000, 0.000000, 0.286116 + 0.957895, 0.000000, 0.000000, 0.287119 + 0.957594, 0.000000, 0.000000, 0.288122 + 0.957291, 0.000000, 0.000000, 0.289125 + 0.956988, 0.000000, 0.000000, 0.290128 + 0.956683, 0.000000, 0.000000, 0.291130 + 0.956378, 0.000000, 0.000000, 0.292132 + 0.956071, 0.000000, 0.000000, 0.293134 + 0.955764, 0.000000, 0.000000, 0.294135 + 0.955455, 0.000000, 0.000000, 0.295136 + 0.955145, 0.000000, 0.000000, 0.296137 + 0.954835, 0.000000, 0.000000, 0.297138 + 0.954523, 0.000000, 0.000000, 0.298138 + 0.954210, 0.000000, 0.000000, 0.299137 + 0.953896, 0.000000, 0.000000, 0.300137 + 0.953581, 0.000000, 0.000000, 0.301136 + 0.953265, 0.000000, 0.000000, 0.302135 + 0.952948, 0.000000, 0.000000, 0.303133 + 0.952630, 0.000000, 0.000000, 0.304131 + 0.952311, 0.000000, 0.000000, 0.305129 + 0.951991, 0.000000, 0.000000, 0.306126 + 0.951670, 0.000000, 0.000000, 0.307123 + 0.951347, 0.000000, 0.000000, 0.308120 + 0.951024, 0.000000, 0.000000, 0.309117 + 0.950700, 0.000000, 0.000000, 0.310113 + 0.950374, 0.000000, 0.000000, 0.311108 + 0.950048, 0.000000, 0.000000, 0.312104 + 0.949721, 0.000000, 0.000000, 0.313099 + 0.949392, 0.000000, 0.000000, 0.314094 + 0.949062, 0.000000, 0.000000, 0.315088 + 0.948732, 0.000000, 0.000000, 0.316082 + 0.948400, 0.000000, 0.000000, 0.317076 + 0.948068, 0.000000, 0.000000, 0.318069 + 0.947734, 0.000000, 0.000000, 0.319062 + 0.947399, 0.000000, 0.000000, 0.320055 + 0.947063, 0.000000, 0.000000, 0.321047 + 0.946727, 0.000000, 0.000000, 0.322039 + 0.946389, 0.000000, 0.000000, 0.323030 + 0.946050, 0.000000, 0.000000, 0.324021 + 0.945710, 0.000000, 0.000000, 0.325012 + 0.945369, 0.000000, 0.000000, 0.326003 + 0.945027, 0.000000, 0.000000, 0.326993 + 0.944684, 0.000000, 0.000000, 0.327983 + 0.944340, 0.000000, 0.000000, 0.328972 + 0.943994, 0.000000, 0.000000, 0.329961 + 0.943648, 0.000000, 0.000000, 0.330950 + 0.943301, 0.000000, 0.000000, 0.331938 + 0.942953, 0.000000, 0.000000, 0.332926 + 0.942604, 0.000000, 0.000000, 0.333914 + 0.942253, 0.000000, 0.000000, 0.334901 + 0.941902, 0.000000, 0.000000, 0.335888 + 0.941550, 0.000000, 0.000000, 0.336874 + 0.941196, 0.000000, 0.000000, 0.337861 + 0.940842, 0.000000, 0.000000, 0.338846 + 0.940486, 0.000000, 0.000000, 0.339832 + 0.940130, 0.000000, 0.000000, 0.340817 + 0.939772, 0.000000, 0.000000, 0.341801 + 0.939414, 0.000000, 0.000000, 0.342786 + 0.939054, 0.000000, 0.000000, 0.343770 + 0.938693, 0.000000, 0.000000, 0.344753 + 0.938332, 0.000000, 0.000000, 0.345736 + 0.937969, 0.000000, 0.000000, 0.346719 + 0.937605, 0.000000, 0.000000, 0.347701 + 0.937241, 0.000000, 0.000000, 0.348683 + 0.936875, 0.000000, 0.000000, 0.349665 + 0.936508, 0.000000, 0.000000, 0.350646 + 0.936140, 0.000000, 0.000000, 0.351627 + 0.935771, 0.000000, 0.000000, 0.352607 + 0.935401, 0.000000, 0.000000, 0.353588 + 0.935031, 0.000000, 0.000000, 0.354567 + 0.934659, 0.000000, 0.000000, 0.355547 + 0.934286, 0.000000, 0.000000, 0.356525 + 0.933912, 0.000000, 0.000000, 0.357504 + 0.933537, 0.000000, 0.000000, 0.358482 + 0.933161, 0.000000, 0.000000, 0.359460 + 0.932784, 0.000000, 0.000000, 0.360437 + 0.932405, 0.000000, 0.000000, 0.361414 + 0.932026, 0.000000, 0.000000, 0.362391 + 0.931646, 0.000000, 0.000000, 0.363367 + 0.931265, 0.000000, 0.000000, 0.364342 + 0.930883, 0.000000, 0.000000, 0.365318 + 0.930500, 0.000000, 0.000000, 0.366293 + 0.930115, 0.000000, 0.000000, 0.367267 + 0.929730, 0.000000, 0.000000, 0.368241 + 0.929344, 0.000000, 0.000000, 0.369215 + 0.928957, 0.000000, 0.000000, 0.370188 + 0.928568, 0.000000, 0.000000, 0.371161 + 0.928179, 0.000000, 0.000000, 0.372134 + 0.927789, 0.000000, 0.000000, 0.373106 + 0.927397, 0.000000, 0.000000, 0.374078 + 0.927005, 0.000000, 0.000000, 0.375049 + 0.926612, 0.000000, 0.000000, 0.376020 + 0.926217, 0.000000, 0.000000, 0.376990 + 0.925822, 0.000000, 0.000000, 0.377960 + 0.925425, 0.000000, 0.000000, 0.378930 + 0.925028, 0.000000, 0.000000, 0.379899 + 0.924629, 0.000000, 0.000000, 0.380868 + 0.924230, 0.000000, 0.000000, 0.381836 + 0.923829, 0.000000, 0.000000, 0.382804 + 0.923428, 0.000000, 0.000000, 0.383772 + 0.923025, 0.000000, 0.000000, 0.384739 + 0.922622, 0.000000, 0.000000, 0.385706 + 0.922217, 0.000000, 0.000000, 0.386672 + 0.921812, 0.000000, 0.000000, 0.387638 + 0.921405, 0.000000, 0.000000, 0.388603 + 0.920998, 0.000000, 0.000000, 0.389568 + 0.920589, 0.000000, 0.000000, 0.390533 + 0.920179, 0.000000, 0.000000, 0.391497 + 0.919769, 0.000000, 0.000000, 0.392461 + 0.919357, 0.000000, 0.000000, 0.393424 + 0.918944, 0.000000, 0.000000, 0.394387 + 0.918531, 0.000000, 0.000000, 0.395349 + 0.918116, 0.000000, 0.000000, 0.396311 + 0.917701, 0.000000, 0.000000, 0.397273 + 0.917284, 0.000000, 0.000000, 0.398234 + 0.916866, 0.000000, 0.000000, 0.399195 + 0.916448, 0.000000, 0.000000, 0.400155 + 0.916028, 0.000000, 0.000000, 0.401115 + 0.915607, 0.000000, 0.000000, 0.402074 + 0.915185, 0.000000, 0.000000, 0.403033 + 0.914763, 0.000000, 0.000000, 0.403991 + 0.914339, 0.000000, 0.000000, 0.404950 + 0.913914, 0.000000, 0.000000, 0.405907 + 0.913489, 0.000000, 0.000000, 0.406864 + 0.913062, 0.000000, 0.000000, 0.407821 + 0.912634, 0.000000, 0.000000, 0.408777 + 0.912206, 0.000000, 0.000000, 0.409733 + 0.911776, 0.000000, 0.000000, 0.410688 + 0.911345, 0.000000, 0.000000, 0.411643 + 0.910913, 0.000000, 0.000000, 0.412598 + 0.910481, 0.000000, 0.000000, 0.413552 + 0.910047, 0.000000, 0.000000, 0.414505 + 0.909612, 0.000000, 0.000000, 0.415458 + 0.909177, 0.000000, 0.000000, 0.416411 + 0.908740, 0.000000, 0.000000, 0.417363 + 0.908302, 0.000000, 0.000000, 0.418315 + 0.907863, 0.000000, 0.000000, 0.419266 + 0.907424, 0.000000, 0.000000, 0.420217 + 0.906983, 0.000000, 0.000000, 0.421167 + 0.906541, 0.000000, 0.000000, 0.422117 + 0.906099, 0.000000, 0.000000, 0.423067 + 0.905655, 0.000000, 0.000000, 0.424015 + 0.905210, 0.000000, 0.000000, 0.424964 + 0.904765, 0.000000, 0.000000, 0.425912 + 0.904318, 0.000000, 0.000000, 0.426860 + 0.903870, 0.000000, 0.000000, 0.427807 + 0.903422, 0.000000, 0.000000, 0.428753 + 0.902972, 0.000000, 0.000000, 0.429699 + 0.902521, 0.000000, 0.000000, 0.430645 + 0.902070, 0.000000, 0.000000, 0.431590 + 0.901617, 0.000000, 0.000000, 0.432535 + 0.901164, 0.000000, 0.000000, 0.433479 + 0.900709, 0.000000, 0.000000, 0.434423 + 0.900253, 0.000000, 0.000000, 0.435366 + 0.899797, 0.000000, 0.000000, 0.436309 + 0.899339, 0.000000, 0.000000, 0.437251 + 0.898881, 0.000000, 0.000000, 0.438193 + 0.898421, 0.000000, 0.000000, 0.439135 + 0.897961, 0.000000, 0.000000, 0.440076 + 0.897499, 0.000000, 0.000000, 0.441016 + 0.897037, 0.000000, 0.000000, 0.441956 + 0.896573, 0.000000, 0.000000, 0.442895 + 0.896109, 0.000000, 0.000000, 0.443834 + 0.895643, 0.000000, 0.000000, 0.444773 + 0.895177, 0.000000, 0.000000, 0.445711 + 0.894710, 0.000000, 0.000000, 0.446648 + 0.894241, 0.000000, 0.000000, 0.447585 + 0.893772, 0.000000, 0.000000, 0.448522 + 0.893302, 0.000000, 0.000000, 0.449458 + 0.892830, 0.000000, 0.000000, 0.450393 + 0.892358, 0.000000, 0.000000, 0.451328 + 0.891885, 0.000000, 0.000000, 0.452263 + 0.891410, 0.000000, 0.000000, 0.453197 + 0.890935, 0.000000, 0.000000, 0.454130 + 0.890459, 0.000000, 0.000000, 0.455064 + 0.889982, 0.000000, 0.000000, 0.455996 + 0.889504, 0.000000, 0.000000, 0.456928 + 0.889024, 0.000000, 0.000000, 0.457860 + 0.888544, 0.000000, 0.000000, 0.458791 + 0.888063, 0.000000, 0.000000, 0.459721 + 0.887581, 0.000000, 0.000000, 0.460651 + 0.887098, 0.000000, 0.000000, 0.461581 + 0.886614, 0.000000, 0.000000, 0.462510 + 0.886129, 0.000000, 0.000000, 0.463438 + 0.885643, 0.000000, 0.000000, 0.464366 + 0.885156, 0.000000, 0.000000, 0.465294 + 0.884668, 0.000000, 0.000000, 0.466221 + 0.884179, 0.000000, 0.000000, 0.467147 + 0.883690, 0.000000, 0.000000, 0.468073 + 0.883199, 0.000000, 0.000000, 0.468999 + 0.882707, 0.000000, 0.000000, 0.469924 + 0.882214, 0.000000, 0.000000, 0.470848 + 0.881721, 0.000000, 0.000000, 0.471772 + 0.881226, 0.000000, 0.000000, 0.472695 + 0.880730, 0.000000, 0.000000, 0.473618 + 0.880234, 0.000000, 0.000000, 0.474541 + 0.879736, 0.000000, 0.000000, 0.475462 + 0.879237, 0.000000, 0.000000, 0.476384 + 0.878738, 0.000000, 0.000000, 0.477305 + 0.878237, 0.000000, 0.000000, 0.478225 + 0.877736, 0.000000, 0.000000, 0.479145 + 0.877234, 0.000000, 0.000000, 0.480064 + 0.876730, 0.000000, 0.000000, 0.480982 + 0.876226, 0.000000, 0.000000, 0.481901 + 0.875721, 0.000000, 0.000000, 0.482818 + 0.875214, 0.000000, 0.000000, 0.483735 + 0.874707, 0.000000, 0.000000, 0.484652 + 0.874199, 0.000000, 0.000000, 0.485568 + 0.873690, 0.000000, 0.000000, 0.486483 + 0.873180, 0.000000, 0.000000, 0.487398 + 0.872669, 0.000000, 0.000000, 0.488313 + 0.872157, 0.000000, 0.000000, 0.489227 + 0.871644, 0.000000, 0.000000, 0.490140 + 0.871130, 0.000000, 0.000000, 0.491053 + 0.870615, 0.000000, 0.000000, 0.491965 + 0.870099, 0.000000, 0.000000, 0.492877 + 0.869582, 0.000000, 0.000000, 0.493788 + 0.869065, 0.000000, 0.000000, 0.494699 + 0.868546, 0.000000, 0.000000, 0.495609 + 0.868026, 0.000000, 0.000000, 0.496518 + 0.867506, 0.000000, 0.000000, 0.497427 + 0.866984, 0.000000, 0.000000, 0.498336 + 0.866462, 0.000000, 0.000000, 0.499244 + 0.865938, 0.000000, 0.000000, 0.500151 + 0.865414, 0.000000, 0.000000, 0.501058 + 0.864888, 0.000000, 0.000000, 0.501964 + 0.864362, 0.000000, 0.000000, 0.502870 + 0.863835, 0.000000, 0.000000, 0.503775 + 0.863307, 0.000000, 0.000000, 0.504680 + 0.862777, 0.000000, 0.000000, 0.505584 + 0.862247, 0.000000, 0.000000, 0.506487 + 0.861716, 0.000000, 0.000000, 0.507390 + 0.861184, 0.000000, 0.000000, 0.508293 + 0.860651, 0.000000, 0.000000, 0.509195 + 0.860117, 0.000000, 0.000000, 0.510096 + 0.859583, 0.000000, 0.000000, 0.510997 + 0.859047, 0.000000, 0.000000, 0.511897 + 0.858510, 0.000000, 0.000000, 0.512797 + 0.857973, 0.000000, 0.000000, 0.513696 + 0.857434, 0.000000, 0.000000, 0.514594 + 0.856894, 0.000000, 0.000000, 0.515492 + 0.856354, 0.000000, 0.000000, 0.516389 + 0.855813, 0.000000, 0.000000, 0.517286 + 0.855270, 0.000000, 0.000000, 0.518182 + 0.854727, 0.000000, 0.000000, 0.519078 + 0.854183, 0.000000, 0.000000, 0.519973 + 0.853638, 0.000000, 0.000000, 0.520868 + 0.853091, 0.000000, 0.000000, 0.521761 + 0.852544, 0.000000, 0.000000, 0.522655 + 0.851996, 0.000000, 0.000000, 0.523548 + 0.851447, 0.000000, 0.000000, 0.524440 + 0.850898, 0.000000, 0.000000, 0.525332 + 0.850347, 0.000000, 0.000000, 0.526223 + 0.849795, 0.000000, 0.000000, 0.527113 + 0.849243, 0.000000, 0.000000, 0.528003 + 0.848689, 0.000000, 0.000000, 0.528892 + 0.848134, 0.000000, 0.000000, 0.529781 + 0.847579, 0.000000, 0.000000, 0.530669 + 0.847023, 0.000000, 0.000000, 0.531557 + 0.846465, 0.000000, 0.000000, 0.532444 + 0.845907, 0.000000, 0.000000, 0.533330 + 0.845348, 0.000000, 0.000000, 0.534216 + 0.844788, 0.000000, 0.000000, 0.535101 + 0.844227, 0.000000, 0.000000, 0.535986 + 0.843665, 0.000000, 0.000000, 0.536870 + 0.843102, 0.000000, 0.000000, 0.537754 + 0.842538, 0.000000, 0.000000, 0.538636 + 0.841974, 0.000000, 0.000000, 0.539519 + 0.841408, 0.000000, 0.000000, 0.540400 + 0.840841, 0.000000, 0.000000, 0.541282 + 0.840274, 0.000000, 0.000000, 0.542162 + 0.839706, 0.000000, 0.000000, 0.543042 + 0.839136, 0.000000, 0.000000, 0.543921 + 0.838566, 0.000000, 0.000000, 0.544800 + 0.837995, 0.000000, 0.000000, 0.545678 + 0.837423, 0.000000, 0.000000, 0.546556 + 0.836850, 0.000000, 0.000000, 0.547433 + 0.836276, 0.000000, 0.000000, 0.548309 + 0.835701, 0.000000, 0.000000, 0.549185 + 0.835125, 0.000000, 0.000000, 0.550060 + 0.834549, 0.000000, 0.000000, 0.550934 + 0.833971, 0.000000, 0.000000, 0.551808 + 0.833392, 0.000000, 0.000000, 0.552682 + 0.832813, 0.000000, 0.000000, 0.553554 + 0.832233, 0.000000, 0.000000, 0.554427 + 0.831651, 0.000000, 0.000000, 0.555298 + 0.831069, 0.000000, 0.000000, 0.556169 + 0.830486, 0.000000, 0.000000, 0.557039 + 0.829902, 0.000000, 0.000000, 0.557909 + 0.829317, 0.000000, 0.000000, 0.558778 + 0.828732, 0.000000, 0.000000, 0.559646 + 0.828145, 0.000000, 0.000000, 0.560514 + 0.827557, 0.000000, 0.000000, 0.561381 + 0.826969, 0.000000, 0.000000, 0.562248 + 0.826379, 0.000000, 0.000000, 0.563114 + 0.825789, 0.000000, 0.000000, 0.563979 + 0.825198, 0.000000, 0.000000, 0.564844 + 0.824606, 0.000000, 0.000000, 0.565708 + 0.824012, 0.000000, 0.000000, 0.566572 + 0.823418, 0.000000, 0.000000, 0.567435 + 0.822824, 0.000000, 0.000000, 0.568297 + 0.822228, 0.000000, 0.000000, 0.569158 + 0.821631, 0.000000, 0.000000, 0.570019 + 0.821034, 0.000000, 0.000000, 0.570880 + 0.820435, 0.000000, 0.000000, 0.571740 + 0.819836, 0.000000, 0.000000, 0.572599 + 0.819235, 0.000000, 0.000000, 0.573457 + 0.818634, 0.000000, 0.000000, 0.574315 + 0.818032, 0.000000, 0.000000, 0.575172 + 0.817429, 0.000000, 0.000000, 0.576029 + 0.816825, 0.000000, 0.000000, 0.576885 + 0.816221, 0.000000, 0.000000, 0.577740 + 0.815615, 0.000000, 0.000000, 0.578595 + 0.815008, 0.000000, 0.000000, 0.579449 + 0.814401, 0.000000, 0.000000, 0.580303 + 0.813793, 0.000000, 0.000000, 0.581155 + 0.813183, 0.000000, 0.000000, 0.582008 + 0.812573, 0.000000, 0.000000, 0.582859 + 0.811962, 0.000000, 0.000000, 0.583710 + 0.811350, 0.000000, 0.000000, 0.584560 + 0.810738, 0.000000, 0.000000, 0.585410 + 0.810124, 0.000000, 0.000000, 0.586259 + 0.809509, 0.000000, 0.000000, 0.587107 + 0.808894, 0.000000, 0.000000, 0.587955 + 0.808277, 0.000000, 0.000000, 0.588802 + 0.807660, 0.000000, 0.000000, 0.589648 + 0.807042, 0.000000, 0.000000, 0.590494 + 0.806423, 0.000000, 0.000000, 0.591339 + 0.805803, 0.000000, 0.000000, 0.592183 + 0.805182, 0.000000, 0.000000, 0.593027 + 0.804561, 0.000000, 0.000000, 0.593870 + 0.803938, 0.000000, 0.000000, 0.594713 + 0.803315, 0.000000, 0.000000, 0.595555 + 0.802690, 0.000000, 0.000000, 0.596396 + 0.802065, 0.000000, 0.000000, 0.597236 + 0.801439, 0.000000, 0.000000, 0.598076 + 0.800812, 0.000000, 0.000000, 0.598915 + 0.800184, 0.000000, 0.000000, 0.599754 + 0.799556, 0.000000, 0.000000, 0.600592 + 0.798926, 0.000000, 0.000000, 0.601429 + 0.798296, 0.000000, 0.000000, 0.602266 + 0.797664, 0.000000, 0.000000, 0.603102 + 0.797032, 0.000000, 0.000000, 0.603937 + 0.796399, 0.000000, 0.000000, 0.604772 + 0.795765, 0.000000, 0.000000, 0.605605 + 0.795130, 0.000000, 0.000000, 0.606439 + 0.794494, 0.000000, 0.000000, 0.607271 + 0.793858, 0.000000, 0.000000, 0.608103 + 0.793220, 0.000000, 0.000000, 0.608935 + 0.792582, 0.000000, 0.000000, 0.609765 + 0.791943, 0.000000, 0.000000, 0.610595 + 0.791303, 0.000000, 0.000000, 0.611424 + 0.790662, 0.000000, 0.000000, 0.612253 + 0.790020, 0.000000, 0.000000, 0.613081 + 0.789377, 0.000000, 0.000000, 0.613908 + 0.788734, 0.000000, 0.000000, 0.614735 + 0.788090, 0.000000, 0.000000, 0.615561 + 0.787444, 0.000000, 0.000000, 0.616386 + 0.786798, 0.000000, 0.000000, 0.617210 + 0.786151, 0.000000, 0.000000, 0.618034 + 0.785503, 0.000000, 0.000000, 0.618857 + 0.784855, 0.000000, 0.000000, 0.619680 + 0.784205, 0.000000, 0.000000, 0.620502 + 0.783555, 0.000000, 0.000000, 0.621323 + 0.782903, 0.000000, 0.000000, 0.622143 + 0.782251, 0.000000, 0.000000, 0.622963 + 0.781598, 0.000000, 0.000000, 0.623782 + 0.780944, 0.000000, 0.000000, 0.624601 + 0.780290, 0.000000, 0.000000, 0.625418 + 0.779634, 0.000000, 0.000000, 0.626235 + 0.778978, 0.000000, 0.000000, 0.627052 + 0.778320, 0.000000, 0.000000, 0.627867 + 0.777662, 0.000000, 0.000000, 0.628682 + 0.777003, 0.000000, 0.000000, 0.629497 + 0.776343, 0.000000, 0.000000, 0.630310 + 0.775683, 0.000000, 0.000000, 0.631123 + 0.775021, 0.000000, 0.000000, 0.631935 + 0.774359, 0.000000, 0.000000, 0.632747 + 0.773695, 0.000000, 0.000000, 0.633558 + 0.773031, 0.000000, 0.000000, 0.634368 + 0.772366, 0.000000, 0.000000, 0.635177 + 0.771700, 0.000000, 0.000000, 0.635986 + 0.771034, 0.000000, 0.000000, 0.636794 + 0.770366, 0.000000, 0.000000, 0.637602 + 0.769698, 0.000000, 0.000000, 0.638408 + 0.769029, 0.000000, 0.000000, 0.639214 + 0.768359, 0.000000, 0.000000, 0.640019 + 0.767688, 0.000000, 0.000000, 0.640824 + 0.767016, 0.000000, 0.000000, 0.641628 + 0.766344, 0.000000, 0.000000, 0.642431 + 0.765670, 0.000000, 0.000000, 0.643233 + 0.764996, 0.000000, 0.000000, 0.644035 + 0.764321, 0.000000, 0.000000, 0.644836 + 0.763645, 0.000000, 0.000000, 0.645636 + 0.762968, 0.000000, 0.000000, 0.646436 + 0.762291, 0.000000, 0.000000, 0.647235 + 0.761612, 0.000000, 0.000000, 0.648033 + 0.760933, 0.000000, 0.000000, 0.648830 + 0.760253, 0.000000, 0.000000, 0.649627 + 0.759572, 0.000000, 0.000000, 0.650423 + 0.758890, 0.000000, 0.000000, 0.651219 + 0.758208, 0.000000, 0.000000, 0.652013 + 0.757524, 0.000000, 0.000000, 0.652807 + 0.756840, 0.000000, 0.000000, 0.653600 + 0.756155, 0.000000, 0.000000, 0.654393 + 0.755469, 0.000000, 0.000000, 0.655185 + 0.754782, 0.000000, 0.000000, 0.655976 + 0.754095, 0.000000, 0.000000, 0.656766 + 0.753406, 0.000000, 0.000000, 0.657555 + 0.752717, 0.000000, 0.000000, 0.658344 + 0.752027, 0.000000, 0.000000, 0.659132 + 0.751336, 0.000000, 0.000000, 0.659920 + 0.750644, 0.000000, 0.000000, 0.660707 + 0.749952, 0.000000, 0.000000, 0.661493 + 0.749258, 0.000000, 0.000000, 0.662278 + 0.748564, 0.000000, 0.000000, 0.663062 + 0.747869, 0.000000, 0.000000, 0.663846 + 0.747173, 0.000000, 0.000000, 0.664629 + 0.746477, 0.000000, 0.000000, 0.665412 + 0.745779, 0.000000, 0.000000, 0.666193 + 0.745081, 0.000000, 0.000000, 0.666974 + 0.744382, 0.000000, 0.000000, 0.667754 + 0.743682, 0.000000, 0.000000, 0.668534 + 0.742981, 0.000000, 0.000000, 0.669312 + 0.742280, 0.000000, 0.000000, 0.670090 + 0.741577, 0.000000, 0.000000, 0.670867 + 0.740874, 0.000000, 0.000000, 0.671644 + 0.740170, 0.000000, 0.000000, 0.672420 + 0.739465, 0.000000, 0.000000, 0.673195 + 0.738760, 0.000000, 0.000000, 0.673969 + 0.738053, 0.000000, 0.000000, 0.674742 + 0.737346, 0.000000, 0.000000, 0.675515 + 0.736638, 0.000000, 0.000000, 0.676287 + 0.735929, 0.000000, 0.000000, 0.677058 + 0.735220, 0.000000, 0.000000, 0.677829 + 0.734509, 0.000000, 0.000000, 0.678599 + 0.733798, 0.000000, 0.000000, 0.679368 + 0.733086, 0.000000, 0.000000, 0.680136 + 0.732373, 0.000000, 0.000000, 0.680904 + 0.731659, 0.000000, 0.000000, 0.681671 + 0.730945, 0.000000, 0.000000, 0.682437 + 0.730229, 0.000000, 0.000000, 0.683202 + 0.729513, 0.000000, 0.000000, 0.683967 + 0.728797, 0.000000, 0.000000, 0.684730 + 0.728079, 0.000000, 0.000000, 0.685493 + 0.727360, 0.000000, 0.000000, 0.686256 + 0.726641, 0.000000, 0.000000, 0.687017 + 0.725921, 0.000000, 0.000000, 0.687778 + 0.725200, 0.000000, 0.000000, 0.688538 + 0.724478, 0.000000, 0.000000, 0.689297 + 0.723756, 0.000000, 0.000000, 0.690056 + 0.723033, 0.000000, 0.000000, 0.690814 + 0.722309, 0.000000, 0.000000, 0.691571 + 0.721584, 0.000000, 0.000000, 0.692327 + 0.720858, 0.000000, 0.000000, 0.693083 + 0.720132, 0.000000, 0.000000, 0.693837 + 0.719404, 0.000000, 0.000000, 0.694591 + 0.718676, 0.000000, 0.000000, 0.695345 + 0.717948, 0.000000, 0.000000, 0.696097 + 0.717218, 0.000000, 0.000000, 0.696849 + 0.716488, 0.000000, 0.000000, 0.697600 + 0.715757, 0.000000, 0.000000, 0.698350 + 0.715025, 0.000000, 0.000000, 0.699099 + 0.714292, 0.000000, 0.000000, 0.699848 + 0.713558, 0.000000, 0.000000, 0.700596 + 0.712824, 0.000000, 0.000000, 0.701343 + 0.712089, 0.000000, 0.000000, 0.702089 + 0.711353, 0.000000, 0.000000, 0.702835 + 0.710616, 0.000000, 0.000000, 0.703580 + 0.709879, 0.000000, 0.000000, 0.704324 + 0.709141, 0.000000, 0.000000, 0.705067 + 0.708402, 0.000000, 0.000000, 0.705809 + 0.707662, 0.000000, 0.000000, 0.706551 + 0.706922, 0.000000, 0.000000, 0.707292 + 0.706180, 0.000000, 0.000000, 0.708032 + 0.705438, 0.000000, 0.000000, 0.708771 + 0.704695, 0.000000, 0.000000, 0.709510 + 0.703952, 0.000000, 0.000000, 0.710248 + 0.703207, 0.000000, 0.000000, 0.710985 + 0.702462, 0.000000, 0.000000, 0.711721 + 0.701716, 0.000000, 0.000000, 0.712457 + 0.700969, 0.000000, 0.000000, 0.713191 + 0.700222, 0.000000, 0.000000, 0.713925 + 0.699474, 0.000000, 0.000000, 0.714658 + 0.698725, 0.000000, 0.000000, 0.715391 + 0.697975, 0.000000, 0.000000, 0.716122 + 0.697224, 0.000000, 0.000000, 0.716853 + 0.696473, 0.000000, 0.000000, 0.717583 + 0.695721, 0.000000, 0.000000, 0.718312 + 0.694968, 0.000000, 0.000000, 0.719041 + 0.694214, 0.000000, 0.000000, 0.719768 + 0.693460, 0.000000, 0.000000, 0.720495 + 0.692705, 0.000000, 0.000000, 0.721221 + 0.691949, 0.000000, 0.000000, 0.721946 + 0.691192, 0.000000, 0.000000, 0.722671 + 0.690435, 0.000000, 0.000000, 0.723394 + 0.689677, 0.000000, 0.000000, 0.724117 + 0.688918, 0.000000, 0.000000, 0.724839 + 0.688158, 0.000000, 0.000000, 0.725561 + 0.687398, 0.000000, 0.000000, 0.726281 + 0.686637, 0.000000, 0.000000, 0.727001 + 0.685875, 0.000000, 0.000000, 0.727720 + 0.685112, 0.000000, 0.000000, 0.728438 + 0.684349, 0.000000, 0.000000, 0.729155 + 0.683584, 0.000000, 0.000000, 0.729872 + 0.682819, 0.000000, 0.000000, 0.730587 + 0.682054, 0.000000, 0.000000, 0.731302 + 0.681287, 0.000000, 0.000000, 0.732016 + 0.680520, 0.000000, 0.000000, 0.732729 + 0.679752, 0.000000, 0.000000, 0.733442 + 0.678983, 0.000000, 0.000000, 0.734154 + 0.678214, 0.000000, 0.000000, 0.734864 + 0.677444, 0.000000, 0.000000, 0.735575 + 0.676673, 0.000000, 0.000000, 0.736284 + 0.675901, 0.000000, 0.000000, 0.736992 + 0.675129, 0.000000, 0.000000, 0.737700 + 0.674356, 0.000000, 0.000000, 0.738407 + 0.673582, 0.000000, 0.000000, 0.739113 + 0.672807, 0.000000, 0.000000, 0.739818 + 0.672032, 0.000000, 0.000000, 0.740522 + 0.671256, 0.000000, 0.000000, 0.741226 + 0.670479, 0.000000, 0.000000, 0.741929 + 0.669701, 0.000000, 0.000000, 0.742631 + 0.668923, 0.000000, 0.000000, 0.743332 + 0.668144, 0.000000, 0.000000, 0.744032 + 0.667364, 0.000000, 0.000000, 0.744732 + 0.666584, 0.000000, 0.000000, 0.745430 + 0.665802, 0.000000, 0.000000, 0.746128 + 0.665020, 0.000000, 0.000000, 0.746825 + 0.664238, 0.000000, 0.000000, 0.747521 + 0.663454, 0.000000, 0.000000, 0.748217 + 0.662670, 0.000000, 0.000000, 0.748911 + 0.661885, 0.000000, 0.000000, 0.749605 + 0.661100, 0.000000, 0.000000, 0.750298 + 0.660313, 0.000000, 0.000000, 0.750990 + 0.659526, 0.000000, 0.000000, 0.751682 + 0.658739, 0.000000, 0.000000, 0.752372 + 0.657950, 0.000000, 0.000000, 0.753062 + 0.657161, 0.000000, 0.000000, 0.753750 + 0.656371, 0.000000, 0.000000, 0.754438 + 0.655580, 0.000000, 0.000000, 0.755126 + 0.654789, 0.000000, 0.000000, 0.755812 + 0.653997, 0.000000, 0.000000, 0.756497 + 0.653204, 0.000000, 0.000000, 0.757182 + 0.652410, 0.000000, 0.000000, 0.757866 + 0.651616, 0.000000, 0.000000, 0.758549 + 0.650821, 0.000000, 0.000000, 0.759231 + 0.650025, 0.000000, 0.000000, 0.759913 + 0.649229, 0.000000, 0.000000, 0.760593 + 0.648432, 0.000000, 0.000000, 0.761273 + 0.647634, 0.000000, 0.000000, 0.761952 + 0.646835, 0.000000, 0.000000, 0.762630 + 0.646036, 0.000000, 0.000000, 0.763307 + 0.645236, 0.000000, 0.000000, 0.763983 + 0.644436, 0.000000, 0.000000, 0.764659 + 0.643634, 0.000000, 0.000000, 0.765333 + 0.642832, 0.000000, 0.000000, 0.766007 + 0.642029, 0.000000, 0.000000, 0.766680 + 0.641226, 0.000000, 0.000000, 0.767352 + 0.640422, 0.000000, 0.000000, 0.768023 + 0.639617, 0.000000, 0.000000, 0.768694 + 0.638811, 0.000000, 0.000000, 0.769363 + 0.638005, 0.000000, 0.000000, 0.770032 + 0.637198, 0.000000, 0.000000, 0.770700 + 0.636390, 0.000000, 0.000000, 0.771367 + 0.635582, 0.000000, 0.000000, 0.772033 + 0.634773, 0.000000, 0.000000, 0.772699 + 0.633963, 0.000000, 0.000000, 0.773363 + 0.633153, 0.000000, 0.000000, 0.774027 + 0.632341, 0.000000, 0.000000, 0.774690 + 0.631529, 0.000000, 0.000000, 0.775352 + 0.630717, 0.000000, 0.000000, 0.776013 + 0.629904, 0.000000, 0.000000, 0.776673 + 0.629090, 0.000000, 0.000000, 0.777333 + 0.628275, 0.000000, 0.000000, 0.777991 + 0.627460, 0.000000, 0.000000, 0.778649 + 0.626644, 0.000000, 0.000000, 0.779306 + 0.625827, 0.000000, 0.000000, 0.779962 + 0.625010, 0.000000, 0.000000, 0.780617 + 0.624192, 0.000000, 0.000000, 0.781271 + 0.623373, 0.000000, 0.000000, 0.781925 + 0.622553, 0.000000, 0.000000, 0.782577 + 0.621733, 0.000000, 0.000000, 0.783229 + 0.620912, 0.000000, 0.000000, 0.783880 + 0.620091, 0.000000, 0.000000, 0.784530 + 0.619269, 0.000000, 0.000000, 0.785179 + 0.618446, 0.000000, 0.000000, 0.785827 + 0.617622, 0.000000, 0.000000, 0.786475 + 0.616798, 0.000000, 0.000000, 0.787121 + 0.615973, 0.000000, 0.000000, 0.787767 + 0.615148, 0.000000, 0.000000, 0.788412 + 0.614321, 0.000000, 0.000000, 0.789056 + 0.613495, 0.000000, 0.000000, 0.789699 + 0.612667, 0.000000, 0.000000, 0.790341 + 0.611839, 0.000000, 0.000000, 0.790983 + 0.611010, 0.000000, 0.000000, 0.791623 + 0.610180, 0.000000, 0.000000, 0.792263 + 0.609350, 0.000000, 0.000000, 0.792901 + 0.608519, 0.000000, 0.000000, 0.793539 + 0.607687, 0.000000, 0.000000, 0.794176 + 0.606855, 0.000000, 0.000000, 0.794812 + 0.606022, 0.000000, 0.000000, 0.795448 + 0.605189, 0.000000, 0.000000, 0.796082 + 0.604354, 0.000000, 0.000000, 0.796716 + 0.603519, 0.000000, 0.000000, 0.797348 + 0.602684, 0.000000, 0.000000, 0.797980 + 0.601848, 0.000000, 0.000000, 0.798611 + 0.601011, 0.000000, 0.000000, 0.799241 + 0.600173, 0.000000, 0.000000, 0.799870 + 0.599335, 0.000000, 0.000000, 0.800498 + 0.598496, 0.000000, 0.000000, 0.801126 + 0.597656, 0.000000, 0.000000, 0.801752 + 0.596816, 0.000000, 0.000000, 0.802378 + 0.595975, 0.000000, 0.000000, 0.803003 + 0.595134, 0.000000, 0.000000, 0.803627 + 0.594292, 0.000000, 0.000000, 0.804250 + 0.593449, 0.000000, 0.000000, 0.804872 + 0.592605, 0.000000, 0.000000, 0.805493 + 0.591761, 0.000000, 0.000000, 0.806113 + 0.590917, 0.000000, 0.000000, 0.806733 + 0.590071, 0.000000, 0.000000, 0.807351 + 0.589225, 0.000000, 0.000000, 0.807969 + 0.588378, 0.000000, 0.000000, 0.808586 + 0.587531, 0.000000, 0.000000, 0.809202 + 0.586683, 0.000000, 0.000000, 0.809817 + 0.585834, 0.000000, 0.000000, 0.810431 + 0.584985, 0.000000, 0.000000, 0.811044 + 0.584135, 0.000000, 0.000000, 0.811656 + 0.583285, 0.000000, 0.000000, 0.812268 + 0.582433, 0.000000, 0.000000, 0.812878 + 0.581581, 0.000000, 0.000000, 0.813488 + 0.580729, 0.000000, 0.000000, 0.814097 + 0.579876, 0.000000, 0.000000, 0.814705 + 0.579022, 0.000000, 0.000000, 0.815312 + 0.578168, 0.000000, 0.000000, 0.815918 + 0.577313, 0.000000, 0.000000, 0.816523 + 0.576457, 0.000000, 0.000000, 0.817127 + 0.575601, 0.000000, 0.000000, 0.817731 + 0.574744, 0.000000, 0.000000, 0.818333 + 0.573886, 0.000000, 0.000000, 0.818935 + 0.573028, 0.000000, 0.000000, 0.819536 + 0.572169, 0.000000, 0.000000, 0.820136 + 0.571310, 0.000000, 0.000000, 0.820734 + 0.570450, 0.000000, 0.000000, 0.821333 + 0.569589, 0.000000, 0.000000, 0.821930 + 0.568728, 0.000000, 0.000000, 0.822526 + 0.567866, 0.000000, 0.000000, 0.823121 + 0.567003, 0.000000, 0.000000, 0.823716 + 0.566140, 0.000000, 0.000000, 0.824309 + 0.565276, 0.000000, 0.000000, 0.824902 + 0.564412, 0.000000, 0.000000, 0.825493 + 0.563547, 0.000000, 0.000000, 0.826084 + 0.562681, 0.000000, 0.000000, 0.826674 + 0.561815, 0.000000, 0.000000, 0.827263 + 0.560948, 0.000000, 0.000000, 0.827851 + 0.560080, 0.000000, 0.000000, 0.828438 + 0.559212, 0.000000, 0.000000, 0.829025 + 0.558343, 0.000000, 0.000000, 0.829610 + 0.557474, 0.000000, 0.000000, 0.830194 + 0.556604, 0.000000, 0.000000, 0.830778 + 0.555734, 0.000000, 0.000000, 0.831360 + 0.554862, 0.000000, 0.000000, 0.831942 + 0.553991, 0.000000, 0.000000, 0.832523 + 0.553118, 0.000000, 0.000000, 0.833103 + 0.552245, 0.000000, 0.000000, 0.833682 + 0.551371, 0.000000, 0.000000, 0.834260 + 0.550497, 0.000000, 0.000000, 0.834837 + 0.549622, 0.000000, 0.000000, 0.835413 + 0.548747, 0.000000, 0.000000, 0.835988 + 0.547871, 0.000000, 0.000000, 0.836563 + 0.546994, 0.000000, 0.000000, 0.837136 + 0.546117, 0.000000, 0.000000, 0.837709 + 0.545239, 0.000000, 0.000000, 0.838280 + 0.544361, 0.000000, 0.000000, 0.838851 + 0.543482, 0.000000, 0.000000, 0.839421 + 0.542602, 0.000000, 0.000000, 0.839990 + 0.541722, 0.000000, 0.000000, 0.840558 + 0.540841, 0.000000, 0.000000, 0.841125 + 0.539960, 0.000000, 0.000000, 0.841691 + 0.539078, 0.000000, 0.000000, 0.842256 + 0.538195, 0.000000, 0.000000, 0.842820 + 0.537312, 0.000000, 0.000000, 0.843384 + 0.536428, 0.000000, 0.000000, 0.843946 + 0.535544, 0.000000, 0.000000, 0.844507 + 0.534659, 0.000000, 0.000000, 0.845068 + 0.533773, 0.000000, 0.000000, 0.845628 + 0.532887, 0.000000, 0.000000, 0.846186 + 0.532000, 0.000000, 0.000000, 0.846744 + 0.531113, 0.000000, 0.000000, 0.847301 + 0.530225, 0.000000, 0.000000, 0.847857 + 0.529337, 0.000000, 0.000000, 0.848412 + 0.528448, 0.000000, 0.000000, 0.848966 + 0.527558, 0.000000, 0.000000, 0.849519 + 0.526668, 0.000000, 0.000000, 0.850071 + 0.525777, 0.000000, 0.000000, 0.850622 + 0.524886, 0.000000, 0.000000, 0.851173 + 0.523994, 0.000000, 0.000000, 0.851722 + 0.523101, 0.000000, 0.000000, 0.852270 + 0.522208, 0.000000, 0.000000, 0.852818 + 0.521315, 0.000000, 0.000000, 0.853365 + 0.520420, 0.000000, 0.000000, 0.853910 + 0.519526, 0.000000, 0.000000, 0.854455 + 0.518630, 0.000000, 0.000000, 0.854999 + 0.517734, 0.000000, 0.000000, 0.855541 + 0.516838, 0.000000, 0.000000, 0.856083 + 0.515941, 0.000000, 0.000000, 0.856624 + 0.515043, 0.000000, 0.000000, 0.857164 + 0.514145, 0.000000, 0.000000, 0.857703 + 0.513246, 0.000000, 0.000000, 0.858241 + 0.512347, 0.000000, 0.000000, 0.858779 + 0.511447, 0.000000, 0.000000, 0.859315 + 0.510546, 0.000000, 0.000000, 0.859850 + 0.509645, 0.000000, 0.000000, 0.860385 + 0.508744, 0.000000, 0.000000, 0.860918 + 0.507842, 0.000000, 0.000000, 0.861450 + 0.506939, 0.000000, 0.000000, 0.861982 + 0.506036, 0.000000, 0.000000, 0.862512 + 0.505132, 0.000000, 0.000000, 0.863042 + 0.504228, 0.000000, 0.000000, 0.863571 + 0.503323, 0.000000, 0.000000, 0.864099 + 0.502417, 0.000000, 0.000000, 0.864625 + 0.501511, 0.000000, 0.000000, 0.865151 + 0.500605, 0.000000, 0.000000, 0.865676 + 0.499698, 0.000000, 0.000000, 0.866200 + 0.498790, 0.000000, 0.000000, 0.866723 + 0.497882, 0.000000, 0.000000, 0.867245 + 0.496973, 0.000000, 0.000000, 0.867766 + 0.496064, 0.000000, 0.000000, 0.868286 + 0.495154, 0.000000, 0.000000, 0.868805 + 0.494243, 0.000000, 0.000000, 0.869324 + 0.493332, 0.000000, 0.000000, 0.869841 + 0.492421, 0.000000, 0.000000, 0.870357 + 0.491509, 0.000000, 0.000000, 0.870872 + 0.490596, 0.000000, 0.000000, 0.871387 + 0.489683, 0.000000, 0.000000, 0.871900 + 0.488770, 0.000000, 0.000000, 0.872413 + 0.487856, 0.000000, 0.000000, 0.872924 + 0.486941, 0.000000, 0.000000, 0.873435 + 0.486026, 0.000000, 0.000000, 0.873945 + 0.485110, 0.000000, 0.000000, 0.874453 + 0.484194, 0.000000, 0.000000, 0.874961 + 0.483277, 0.000000, 0.000000, 0.875468 + 0.482359, 0.000000, 0.000000, 0.875973 + 0.481442, 0.000000, 0.000000, 0.876478 + 0.480523, 0.000000, 0.000000, 0.876982 + 0.479604, 0.000000, 0.000000, 0.877485 + 0.478685, 0.000000, 0.000000, 0.877987 + 0.477765, 0.000000, 0.000000, 0.878488 + 0.476844, 0.000000, 0.000000, 0.878988 + 0.475923, 0.000000, 0.000000, 0.879487 + 0.475002, 0.000000, 0.000000, 0.879985 + 0.474079, 0.000000, 0.000000, 0.880482 + 0.473157, 0.000000, 0.000000, 0.880978 + 0.472234, 0.000000, 0.000000, 0.881473 + 0.471310, 0.000000, 0.000000, 0.881968 + 0.470386, 0.000000, 0.000000, 0.882461 + 0.469461, 0.000000, 0.000000, 0.882953 + 0.468536, 0.000000, 0.000000, 0.883444 + 0.467610, 0.000000, 0.000000, 0.883935 + 0.466684, 0.000000, 0.000000, 0.884424 + 0.465757, 0.000000, 0.000000, 0.884912 + 0.464830, 0.000000, 0.000000, 0.885400 + 0.463902, 0.000000, 0.000000, 0.885886 + 0.462974, 0.000000, 0.000000, 0.886372 + 0.462045, 0.000000, 0.000000, 0.886856 + 0.461116, 0.000000, 0.000000, 0.887340 + 0.460186, 0.000000, 0.000000, 0.887822 + 0.459256, 0.000000, 0.000000, 0.888304 + 0.458325, 0.000000, 0.000000, 0.888785 + 0.457394, 0.000000, 0.000000, 0.889264 + 0.456462, 0.000000, 0.000000, 0.889743 + 0.455530, 0.000000, 0.000000, 0.890220 + 0.454597, 0.000000, 0.000000, 0.890697 + 0.453664, 0.000000, 0.000000, 0.891173 + 0.452730, 0.000000, 0.000000, 0.891648 + 0.451796, 0.000000, 0.000000, 0.892121 + 0.450861, 0.000000, 0.000000, 0.892594 + 0.449926, 0.000000, 0.000000, 0.893066 + 0.448990, 0.000000, 0.000000, 0.893537 + 0.448054, 0.000000, 0.000000, 0.894007 + 0.447117, 0.000000, 0.000000, 0.894476 + 0.446180, 0.000000, 0.000000, 0.894943 + 0.445242, 0.000000, 0.000000, 0.895410 + 0.444304, 0.000000, 0.000000, 0.895876 + 0.443365, 0.000000, 0.000000, 0.896341 + 0.442426, 0.000000, 0.000000, 0.896805 + 0.441486, 0.000000, 0.000000, 0.897268 + 0.440546, 0.000000, 0.000000, 0.897730 + 0.439605, 0.000000, 0.000000, 0.898191 + 0.438664, 0.000000, 0.000000, 0.898651 + 0.437722, 0.000000, 0.000000, 0.899110 + 0.436780, 0.000000, 0.000000, 0.899568 + 0.435838, 0.000000, 0.000000, 0.900025 + 0.434895, 0.000000, 0.000000, 0.900481 + 0.433951, 0.000000, 0.000000, 0.900936 + 0.433007, 0.000000, 0.000000, 0.901390 + 0.432063, 0.000000, 0.000000, 0.901844 + 0.431118, 0.000000, 0.000000, 0.902296 + 0.430172, 0.000000, 0.000000, 0.902747 + 0.429226, 0.000000, 0.000000, 0.903197 + 0.428280, 0.000000, 0.000000, 0.903646 + 0.427333, 0.000000, 0.000000, 0.904094 + 0.426386, 0.000000, 0.000000, 0.904541 + 0.425438, 0.000000, 0.000000, 0.904988 + 0.424490, 0.000000, 0.000000, 0.905433 + 0.423541, 0.000000, 0.000000, 0.905877 + 0.422592, 0.000000, 0.000000, 0.906320 + 0.421642, 0.000000, 0.000000, 0.906762 + 0.420692, 0.000000, 0.000000, 0.907203 + 0.419742, 0.000000, 0.000000, 0.907644 + 0.418791, 0.000000, 0.000000, 0.908083 + 0.417839, 0.000000, 0.000000, 0.908521 + 0.416887, 0.000000, 0.000000, 0.908958 + 0.415935, 0.000000, 0.000000, 0.909394 + 0.414982, 0.000000, 0.000000, 0.909830 + 0.414029, 0.000000, 0.000000, 0.910264 + 0.413075, 0.000000, 0.000000, 0.910697 + 0.412121, 0.000000, 0.000000, 0.911129 + 0.411166, 0.000000, 0.000000, 0.911561 + 0.410211, 0.000000, 0.000000, 0.911991 + 0.409255, 0.000000, 0.000000, 0.912420 + 0.408299, 0.000000, 0.000000, 0.912848 + 0.407343, 0.000000, 0.000000, 0.913275 + 0.406386, 0.000000, 0.000000, 0.913702 + 0.405428, 0.000000, 0.000000, 0.914127 + 0.404471, 0.000000, 0.000000, 0.914551 + 0.403512, 0.000000, 0.000000, 0.914974 + 0.402554, 0.000000, 0.000000, 0.915396 + 0.401594, 0.000000, 0.000000, 0.915818 + 0.400635, 0.000000, 0.000000, 0.916238 + 0.399675, 0.000000, 0.000000, 0.916657 + 0.398714, 0.000000, 0.000000, 0.917075 + 0.397753, 0.000000, 0.000000, 0.917492 + 0.396792, 0.000000, 0.000000, 0.917908 + 0.395830, 0.000000, 0.000000, 0.918324 + 0.394868, 0.000000, 0.000000, 0.918738 + 0.393906, 0.000000, 0.000000, 0.919151 + 0.392942, 0.000000, 0.000000, 0.919563 + 0.391979, 0.000000, 0.000000, 0.919974 + 0.391015, 0.000000, 0.000000, 0.920384 + 0.390051, 0.000000, 0.000000, 0.920793 + 0.389086, 0.000000, 0.000000, 0.921201 + 0.388121, 0.000000, 0.000000, 0.921609 + 0.387155, 0.000000, 0.000000, 0.922015 + 0.386189, 0.000000, 0.000000, 0.922420 + 0.385222, 0.000000, 0.000000, 0.922824 + 0.384256, 0.000000, 0.000000, 0.923227 + 0.383288, 0.000000, 0.000000, 0.923629 + 0.382320, 0.000000, 0.000000, 0.924030 + 0.381352, 0.000000, 0.000000, 0.924430 + 0.380384, 0.000000, 0.000000, 0.924829 + 0.379415, 0.000000, 0.000000, 0.925227 + 0.378445, 0.000000, 0.000000, 0.925624 + 0.377475, 0.000000, 0.000000, 0.926020 + 0.376505, 0.000000, 0.000000, 0.926415 + 0.375535, 0.000000, 0.000000, 0.926808 + 0.374563, 0.000000, 0.000000, 0.927201 + 0.373592, 0.000000, 0.000000, 0.927593 + 0.372620, 0.000000, 0.000000, 0.927984 + 0.371648, 0.000000, 0.000000, 0.928374 + 0.370675, 0.000000, 0.000000, 0.928763 + 0.369702, 0.000000, 0.000000, 0.929150 + 0.368728, 0.000000, 0.000000, 0.929537 + 0.367754, 0.000000, 0.000000, 0.929923 + 0.366780, 0.000000, 0.000000, 0.930308 + 0.365805, 0.000000, 0.000000, 0.930691 + 0.364830, 0.000000, 0.000000, 0.931074 + 0.363855, 0.000000, 0.000000, 0.931456 + 0.362879, 0.000000, 0.000000, 0.931836 + 0.361902, 0.000000, 0.000000, 0.932216 + 0.360926, 0.000000, 0.000000, 0.932595 + 0.359948, 0.000000, 0.000000, 0.932972 + 0.358971, 0.000000, 0.000000, 0.933349 + 0.357993, 0.000000, 0.000000, 0.933724 + 0.357015, 0.000000, 0.000000, 0.934099 + 0.356036, 0.000000, 0.000000, 0.934472 + 0.355057, 0.000000, 0.000000, 0.934845 + 0.354077, 0.000000, 0.000000, 0.935216 + 0.353098, 0.000000, 0.000000, 0.935587 + 0.352117, 0.000000, 0.000000, 0.935956 + 0.351137, 0.000000, 0.000000, 0.936324 + 0.350156, 0.000000, 0.000000, 0.936692 + 0.349174, 0.000000, 0.000000, 0.937058 + 0.348192, 0.000000, 0.000000, 0.937423 + 0.347210, 0.000000, 0.000000, 0.937787 + 0.346228, 0.000000, 0.000000, 0.938151 + 0.345245, 0.000000, 0.000000, 0.938513 + 0.344261, 0.000000, 0.000000, 0.938874 + 0.343278, 0.000000, 0.000000, 0.939234 + 0.342294, 0.000000, 0.000000, 0.939593 + 0.341309, 0.000000, 0.000000, 0.939951 + 0.340324, 0.000000, 0.000000, 0.940308 + 0.339339, 0.000000, 0.000000, 0.940664 + 0.338354, 0.000000, 0.000000, 0.941019 + 0.337368, 0.000000, 0.000000, 0.941373 + 0.336381, 0.000000, 0.000000, 0.941726 + 0.335395, 0.000000, 0.000000, 0.942078 + 0.334407, 0.000000, 0.000000, 0.942429 + 0.333420, 0.000000, 0.000000, 0.942778 + 0.332432, 0.000000, 0.000000, 0.943127 + 0.331444, 0.000000, 0.000000, 0.943475 + 0.330456, 0.000000, 0.000000, 0.943822 + 0.329467, 0.000000, 0.000000, 0.944167 + 0.328478, 0.000000, 0.000000, 0.944512 + 0.327488, 0.000000, 0.000000, 0.944855 + 0.326498, 0.000000, 0.000000, 0.945198 + 0.325508, 0.000000, 0.000000, 0.945539 + 0.324517, 0.000000, 0.000000, 0.945880 + 0.323526, 0.000000, 0.000000, 0.946219 + 0.322535, 0.000000, 0.000000, 0.946558 + 0.321543, 0.000000, 0.000000, 0.946895 + 0.320551, 0.000000, 0.000000, 0.947231 + 0.319558, 0.000000, 0.000000, 0.947567 + 0.318565, 0.000000, 0.000000, 0.947901 + 0.317572, 0.000000, 0.000000, 0.948234 + 0.316579, 0.000000, 0.000000, 0.948566 + 0.315585, 0.000000, 0.000000, 0.948897 + 0.314591, 0.000000, 0.000000, 0.949227 + 0.313596, 0.000000, 0.000000, 0.949556 + 0.312601, 0.000000, 0.000000, 0.949884 + 0.311606, 0.000000, 0.000000, 0.950211 + 0.310611, 0.000000, 0.000000, 0.950537 + 0.309615, 0.000000, 0.000000, 0.950862 + 0.308618, 0.000000, 0.000000, 0.951186 + 0.307622, 0.000000, 0.000000, 0.951509 + 0.306625, 0.000000, 0.000000, 0.951830 + 0.305628, 0.000000, 0.000000, 0.952151 + 0.304630, 0.000000, 0.000000, 0.952471 + 0.303632, 0.000000, 0.000000, 0.952789 + 0.302634, 0.000000, 0.000000, 0.953107 + 0.301635, 0.000000, 0.000000, 0.953423 + 0.300636, 0.000000, 0.000000, 0.953739 + 0.299637, 0.000000, 0.000000, 0.954053 + 0.298638, 0.000000, 0.000000, 0.954367 + 0.297638, 0.000000, 0.000000, 0.954679 + 0.296637, 0.000000, 0.000000, 0.954990 + 0.295637, 0.000000, 0.000000, 0.955300 + 0.294636, 0.000000, 0.000000, 0.955610 + 0.293635, 0.000000, 0.000000, 0.955918 + 0.292633, 0.000000, 0.000000, 0.956225 + 0.291631, 0.000000, 0.000000, 0.956531 + 0.290629, 0.000000, 0.000000, 0.956836 + 0.289627, 0.000000, 0.000000, 0.957140 + 0.288624, 0.000000, 0.000000, 0.957443 + 0.287621, 0.000000, 0.000000, 0.957744 + 0.286617, 0.000000, 0.000000, 0.958045 + 0.285614, 0.000000, 0.000000, 0.958345 + 0.284610, 0.000000, 0.000000, 0.958644 + 0.283605, 0.000000, 0.000000, 0.958941 + 0.282600, 0.000000, 0.000000, 0.959238 + 0.281595, 0.000000, 0.000000, 0.959533 + 0.280590, 0.000000, 0.000000, 0.959828 + 0.279585, 0.000000, 0.000000, 0.960121 + 0.278579, 0.000000, 0.000000, 0.960413 + 0.277572, 0.000000, 0.000000, 0.960705 + 0.276566, 0.000000, 0.000000, 0.960995 + 0.275559, 0.000000, 0.000000, 0.961284 + 0.274552, 0.000000, 0.000000, 0.961572 + 0.273544, 0.000000, 0.000000, 0.961859 + 0.272537, 0.000000, 0.000000, 0.962145 + 0.271529, 0.000000, 0.000000, 0.962430 + 0.270520, 0.000000, 0.000000, 0.962714 + 0.269512, 0.000000, 0.000000, 0.962997 + 0.268503, 0.000000, 0.000000, 0.963279 + 0.267494, 0.000000, 0.000000, 0.963560 + 0.266484, 0.000000, 0.000000, 0.963839 + 0.265474, 0.000000, 0.000000, 0.964118 + 0.264464, 0.000000, 0.000000, 0.964396 + 0.263454, 0.000000, 0.000000, 0.964672 + 0.262443, 0.000000, 0.000000, 0.964947 + 0.261432, 0.000000, 0.000000, 0.965222 + 0.260421, 0.000000, 0.000000, 0.965495 + 0.259409, 0.000000, 0.000000, 0.965767 + 0.258397, 0.000000, 0.000000, 0.966039 + 0.257385, 0.000000, 0.000000, 0.966309 + 0.256373, 0.000000, 0.000000, 0.966578 + 0.255360, 0.000000, 0.000000, 0.966846 + 0.254347, 0.000000, 0.000000, 0.967113 + 0.253334, 0.000000, 0.000000, 0.967379 + 0.252321, 0.000000, 0.000000, 0.967644 + 0.251307, 0.000000, 0.000000, 0.967907 + 0.250293, 0.000000, 0.000000, 0.968170 + 0.249278, 0.000000, 0.000000, 0.968432 + 0.248264, 0.000000, 0.000000, 0.968692 + 0.247249, 0.000000, 0.000000, 0.968952 + 0.246234, 0.000000, 0.000000, 0.969210 + 0.245218, 0.000000, 0.000000, 0.969468 + 0.244203, 0.000000, 0.000000, 0.969724 + 0.243187, 0.000000, 0.000000, 0.969980 + 0.242170, 0.000000, 0.000000, 0.970234 + 0.241154, 0.000000, 0.000000, 0.970487 + 0.240137, 0.000000, 0.000000, 0.970739 + 0.239120, 0.000000, 0.000000, 0.970990 + 0.238103, 0.000000, 0.000000, 0.971240 + 0.237085, 0.000000, 0.000000, 0.971489 + 0.236067, 0.000000, 0.000000, 0.971737 + 0.235049, 0.000000, 0.000000, 0.971983 + 0.234031, 0.000000, 0.000000, 0.972229 + 0.233012, 0.000000, 0.000000, 0.972474 + 0.231994, 0.000000, 0.000000, 0.972717 + 0.230975, 0.000000, 0.000000, 0.972960 + 0.229955, 0.000000, 0.000000, 0.973201 + 0.228936, 0.000000, 0.000000, 0.973442 + 0.227916, 0.000000, 0.000000, 0.973681 + 0.226896, 0.000000, 0.000000, 0.973919 + 0.225875, 0.000000, 0.000000, 0.974156 + 0.224855, 0.000000, 0.000000, 0.974392 + 0.223834, 0.000000, 0.000000, 0.974627 + 0.222813, 0.000000, 0.000000, 0.974861 + 0.221791, 0.000000, 0.000000, 0.975094 + 0.220770, 0.000000, 0.000000, 0.975326 + 0.219748, 0.000000, 0.000000, 0.975557 + 0.218726, 0.000000, 0.000000, 0.975786 + 0.217704, 0.000000, 0.000000, 0.976015 + 0.216681, 0.000000, 0.000000, 0.976242 + 0.215658, 0.000000, 0.000000, 0.976469 + 0.214635, 0.000000, 0.000000, 0.976694 + 0.213612, 0.000000, 0.000000, 0.976919 + 0.212589, 0.000000, 0.000000, 0.977142 + 0.211565, 0.000000, 0.000000, 0.977364 + 0.210541, 0.000000, 0.000000, 0.977585 + 0.209517, 0.000000, 0.000000, 0.977805 + 0.208492, 0.000000, 0.000000, 0.978024 + 0.207468, 0.000000, 0.000000, 0.978242 + 0.206443, 0.000000, 0.000000, 0.978459 + 0.205418, 0.000000, 0.000000, 0.978674 + 0.204392, 0.000000, 0.000000, 0.978889 + 0.203367, 0.000000, 0.000000, 0.979103 + 0.202341, 0.000000, 0.000000, 0.979315 + 0.201315, 0.000000, 0.000000, 0.979527 + 0.200289, 0.000000, 0.000000, 0.979737 + 0.199262, 0.000000, 0.000000, 0.979946 + 0.198236, 0.000000, 0.000000, 0.980154 + 0.197209, 0.000000, 0.000000, 0.980361 + 0.196182, 0.000000, 0.000000, 0.980568 + 0.195155, 0.000000, 0.000000, 0.980773 + 0.194127, 0.000000, 0.000000, 0.980976 + 0.193099, 0.000000, 0.000000, 0.981179 + 0.192071, 0.000000, 0.000000, 0.981381 + 0.191043, 0.000000, 0.000000, 0.981582 + 0.190015, 0.000000, 0.000000, 0.981781 + 0.188986, 0.000000, 0.000000, 0.981980 + 0.187958, 0.000000, 0.000000, 0.982177 + 0.186929, 0.000000, 0.000000, 0.982374 + 0.185899, 0.000000, 0.000000, 0.982569 + 0.184870, 0.000000, 0.000000, 0.982763 + 0.183840, 0.000000, 0.000000, 0.982956 + 0.182811, 0.000000, 0.000000, 0.983148 + 0.181781, 0.000000, 0.000000, 0.983339 + 0.180750, 0.000000, 0.000000, 0.983529 + 0.179720, 0.000000, 0.000000, 0.983718 + 0.178689, 0.000000, 0.000000, 0.983906 + 0.177659, 0.000000, 0.000000, 0.984092 + 0.176628, 0.000000, 0.000000, 0.984278 + 0.175596, 0.000000, 0.000000, 0.984462 + 0.174565, 0.000000, 0.000000, 0.984646 + 0.173534, 0.000000, 0.000000, 0.984828 + 0.172502, 0.000000, 0.000000, 0.985009 + 0.171470, 0.000000, 0.000000, 0.985189 + 0.170438, 0.000000, 0.000000, 0.985368 + 0.169405, 0.000000, 0.000000, 0.985546 + 0.168373, 0.000000, 0.000000, 0.985723 + 0.167340, 0.000000, 0.000000, 0.985899 + 0.166307, 0.000000, 0.000000, 0.986074 + 0.165274, 0.000000, 0.000000, 0.986248 + 0.164241, 0.000000, 0.000000, 0.986420 + 0.163208, 0.000000, 0.000000, 0.986592 + 0.162174, 0.000000, 0.000000, 0.986762 + 0.161140, 0.000000, 0.000000, 0.986932 + 0.160106, 0.000000, 0.000000, 0.987100 + 0.159072, 0.000000, 0.000000, 0.987267 + 0.158038, 0.000000, 0.000000, 0.987433 + 0.157003, 0.000000, 0.000000, 0.987598 + 0.155969, 0.000000, 0.000000, 0.987762 + 0.154934, 0.000000, 0.000000, 0.987925 + 0.153899, 0.000000, 0.000000, 0.988087 + 0.152864, 0.000000, 0.000000, 0.988247 + 0.151829, 0.000000, 0.000000, 0.988407 + 0.150793, 0.000000, 0.000000, 0.988565 + 0.149757, 0.000000, 0.000000, 0.988723 + 0.148722, 0.000000, 0.000000, 0.988879 + 0.147686, 0.000000, 0.000000, 0.989034 + 0.146650, 0.000000, 0.000000, 0.989189 + 0.145613, 0.000000, 0.000000, 0.989342 + 0.144577, 0.000000, 0.000000, 0.989494 + 0.143540, 0.000000, 0.000000, 0.989644 + 0.142503, 0.000000, 0.000000, 0.989794 + 0.141466, 0.000000, 0.000000, 0.989943 + 0.140429, 0.000000, 0.000000, 0.990091 + 0.139392, 0.000000, 0.000000, 0.990237 + 0.138355, 0.000000, 0.000000, 0.990383 + 0.137317, 0.000000, 0.000000, 0.990527 + 0.136279, 0.000000, 0.000000, 0.990670 + 0.135242, 0.000000, 0.000000, 0.990813 + 0.134204, 0.000000, 0.000000, 0.990954 + 0.133165, 0.000000, 0.000000, 0.991094 + 0.132127, 0.000000, 0.000000, 0.991233 + 0.131089, 0.000000, 0.000000, 0.991371 + 0.130050, 0.000000, 0.000000, 0.991507 + 0.129011, 0.000000, 0.000000, 0.991643 + 0.127973, 0.000000, 0.000000, 0.991778 + 0.126934, 0.000000, 0.000000, 0.991911 + 0.125894, 0.000000, 0.000000, 0.992044 + 0.124855, 0.000000, 0.000000, 0.992175 + 0.123816, 0.000000, 0.000000, 0.992305 + 0.122776, 0.000000, 0.000000, 0.992434 + 0.121736, 0.000000, 0.000000, 0.992562 + 0.120697, 0.000000, 0.000000, 0.992689 + 0.119657, 0.000000, 0.000000, 0.992815 + 0.118617, 0.000000, 0.000000, 0.992940 + 0.117576, 0.000000, 0.000000, 0.993064 + 0.116536, 0.000000, 0.000000, 0.993186 + 0.115496, 0.000000, 0.000000, 0.993308 + 0.114455, 0.000000, 0.000000, 0.993428 + 0.113414, 0.000000, 0.000000, 0.993548 + 0.112373, 0.000000, 0.000000, 0.993666 + 0.111332, 0.000000, 0.000000, 0.993783 + 0.110291, 0.000000, 0.000000, 0.993899 + 0.109250, 0.000000, 0.000000, 0.994014 + 0.108209, 0.000000, 0.000000, 0.994128 + 0.107167, 0.000000, 0.000000, 0.994241 + 0.106126, 0.000000, 0.000000, 0.994353 + 0.105084, 0.000000, 0.000000, 0.994463 + 0.104042, 0.000000, 0.000000, 0.994573 + 0.103000, 0.000000, 0.000000, 0.994681 + 0.101958, 0.000000, 0.000000, 0.994789 + 0.100916, 0.000000, 0.000000, 0.994895 + 0.099874, 0.000000, 0.000000, 0.995000 + 0.098832, 0.000000, 0.000000, 0.995104 + 0.097789, 0.000000, 0.000000, 0.995207 + 0.096747, 0.000000, 0.000000, 0.995309 + 0.095704, 0.000000, 0.000000, 0.995410 + 0.094661, 0.000000, 0.000000, 0.995510 + 0.093618, 0.000000, 0.000000, 0.995608 + 0.092575, 0.000000, 0.000000, 0.995706 + 0.091532, 0.000000, 0.000000, 0.995802 + 0.090489, 0.000000, 0.000000, 0.995897 + 0.089446, 0.000000, 0.000000, 0.995992 + 0.088402, 0.000000, 0.000000, 0.996085 + 0.087359, 0.000000, 0.000000, 0.996177 + 0.086315, 0.000000, 0.000000, 0.996268 + 0.085271, 0.000000, 0.000000, 0.996358 + 0.084228, 0.000000, 0.000000, 0.996447 + 0.083184, 0.000000, 0.000000, 0.996534 + 0.082140, 0.000000, 0.000000, 0.996621 + 0.081096, 0.000000, 0.000000, 0.996706 + 0.080052, 0.000000, 0.000000, 0.996791 + 0.079007, 0.000000, 0.000000, 0.996874 + 0.077963, 0.000000, 0.000000, 0.996956 + 0.076919, 0.000000, 0.000000, 0.997037 + 0.075874, 0.000000, 0.000000, 0.997117 + 0.074830, 0.000000, 0.000000, 0.997196 + 0.073785, 0.000000, 0.000000, 0.997274 + 0.072740, 0.000000, 0.000000, 0.997351 + 0.071695, 0.000000, 0.000000, 0.997427 + 0.070650, 0.000000, 0.000000, 0.997501 + 0.069606, 0.000000, 0.000000, 0.997575 + 0.068560, 0.000000, 0.000000, 0.997647 + 0.067515, 0.000000, 0.000000, 0.997718 + 0.066470, 0.000000, 0.000000, 0.997788 + 0.065425, 0.000000, 0.000000, 0.997857 + 0.064380, 0.000000, 0.000000, 0.997925 + 0.063334, 0.000000, 0.000000, 0.997992 + 0.062289, 0.000000, 0.000000, 0.998058 + 0.061243, 0.000000, 0.000000, 0.998123 + 0.060198, 0.000000, 0.000000, 0.998186 + 0.059152, 0.000000, 0.000000, 0.998249 + 0.058106, 0.000000, 0.000000, 0.998310 + 0.057060, 0.000000, 0.000000, 0.998371 + 0.056014, 0.000000, 0.000000, 0.998430 + 0.054968, 0.000000, 0.000000, 0.998488 + 0.053922, 0.000000, 0.000000, 0.998545 + 0.052876, 0.000000, 0.000000, 0.998601 + 0.051830, 0.000000, 0.000000, 0.998656 + 0.050784, 0.000000, 0.000000, 0.998710 + 0.049738, 0.000000, 0.000000, 0.998762 + 0.048692, 0.000000, 0.000000, 0.998814 + 0.047645, 0.000000, 0.000000, 0.998864 + 0.046599, 0.000000, 0.000000, 0.998914 + 0.045553, 0.000000, 0.000000, 0.998962 + 0.044506, 0.000000, 0.000000, 0.999009 + 0.043459, 0.000000, 0.000000, 0.999055 + 0.042413, 0.000000, 0.000000, 0.999100 + 0.041366, 0.000000, 0.000000, 0.999144 + 0.040320, 0.000000, 0.000000, 0.999187 + 0.039273, 0.000000, 0.000000, 0.999229 + 0.038226, 0.000000, 0.000000, 0.999269 + 0.037179, 0.000000, 0.000000, 0.999309 + 0.036132, 0.000000, 0.000000, 0.999347 + 0.035086, 0.000000, 0.000000, 0.999384 + 0.034039, 0.000000, 0.000000, 0.999421 + 0.032992, 0.000000, 0.000000, 0.999456 + 0.031945, 0.000000, 0.000000, 0.999490 + 0.030898, 0.000000, 0.000000, 0.999523 + 0.029851, 0.000000, 0.000000, 0.999554 + 0.028804, 0.000000, 0.000000, 0.999585 + 0.027756, 0.000000, 0.000000, 0.999615 + 0.026709, 0.000000, 0.000000, 0.999643 + 0.025662, 0.000000, 0.000000, 0.999671 + 0.024615, 0.000000, 0.000000, 0.999697 + 0.023568, 0.000000, 0.000000, 0.999722 + 0.022520, 0.000000, 0.000000, 0.999746 + 0.021473, 0.000000, 0.000000, 0.999769 + 0.020426, 0.000000, 0.000000, 0.999791 + 0.019378, 0.000000, 0.000000, 0.999812 + 0.018331, 0.000000, 0.000000, 0.999832 + 0.017284, 0.000000, 0.000000, 0.999851 + 0.016236, 0.000000, 0.000000, 0.999868 + 0.015189, 0.000000, 0.000000, 0.999885 + 0.014141, 0.000000, 0.000000, 0.999900 + 0.013094, 0.000000, 0.000000, 0.999914 + 0.012046, 0.000000, 0.000000, 0.999927 + 0.010999, 0.000000, 0.000000, 0.999940 + 0.009952, 0.000000, 0.000000, 0.999950 + 0.008904, 0.000000, 0.000000, 0.999960 + 0.007857, 0.000000, 0.000000, 0.999969 + 0.006809, 0.000000, 0.000000, 0.999977 + 0.005761, 0.000000, 0.000000, 0.999983 + 0.004714, 0.000000, 0.000000, 0.999989 + 0.003666, 0.000000, 0.000000, 0.999993 + 0.002619, 0.000000, 0.000000, 0.999997 + 0.001571, 0.000000, 0.000000, 0.999999 + 0.000524, 0.000000, 0.000000, 1.000000 + -0.000524, -0.000000, 0.000000, 1.000000 + -0.001571, -0.000000, 0.000000, 0.999999 + -0.002619, -0.000000, 0.000000, 0.999997 + -0.003666, -0.000000, 0.000000, 0.999993 + -0.004714, -0.000000, 0.000000, 0.999989 + -0.005761, -0.000000, 0.000000, 0.999983 + -0.006809, -0.000000, 0.000000, 0.999977 + -0.007857, -0.000000, 0.000000, 0.999969 + -0.008904, -0.000000, 0.000000, 0.999960 + -0.009952, -0.000000, 0.000000, 0.999950 + -0.010999, -0.000000, 0.000000, 0.999940 + -0.012046, -0.000000, 0.000000, 0.999927 + -0.013094, -0.000000, 0.000000, 0.999914 + -0.014141, -0.000000, 0.000000, 0.999900 + -0.015189, -0.000000, 0.000000, 0.999885 + -0.016236, -0.000000, 0.000000, 0.999868 + -0.017284, -0.000000, 0.000000, 0.999851 + -0.018331, -0.000000, 0.000000, 0.999832 + -0.019378, -0.000000, 0.000000, 0.999812 + -0.020426, -0.000000, 0.000000, 0.999791 + -0.021473, -0.000000, 0.000000, 0.999769 + -0.022520, -0.000000, 0.000000, 0.999746 + -0.023568, -0.000000, 0.000000, 0.999722 + -0.024615, -0.000000, 0.000000, 0.999697 + -0.025662, -0.000000, 0.000000, 0.999671 + -0.026709, -0.000000, 0.000000, 0.999643 + -0.027756, -0.000000, 0.000000, 0.999615 + -0.028804, -0.000000, 0.000000, 0.999585 + -0.029851, -0.000000, 0.000000, 0.999554 + -0.030898, -0.000000, 0.000000, 0.999523 + -0.031945, -0.000000, 0.000000, 0.999490 + -0.032992, -0.000000, 0.000000, 0.999456 + -0.034039, -0.000000, 0.000000, 0.999421 + -0.035086, -0.000000, 0.000000, 0.999384 + -0.036132, -0.000000, 0.000000, 0.999347 + -0.037179, -0.000000, 0.000000, 0.999309 + -0.038226, -0.000000, 0.000000, 0.999269 + -0.039273, -0.000000, 0.000000, 0.999229 + -0.040320, -0.000000, 0.000000, 0.999187 + -0.041366, -0.000000, 0.000000, 0.999144 + -0.042413, -0.000000, 0.000000, 0.999100 + -0.043459, -0.000000, 0.000000, 0.999055 + -0.044506, -0.000000, 0.000000, 0.999009 + -0.045553, -0.000000, 0.000000, 0.998962 + -0.046599, -0.000000, 0.000000, 0.998914 + -0.047645, -0.000000, 0.000000, 0.998864 + -0.048692, -0.000000, 0.000000, 0.998814 + -0.049738, -0.000000, 0.000000, 0.998762 + -0.050784, -0.000000, 0.000000, 0.998710 + -0.051830, -0.000000, 0.000000, 0.998656 + -0.052876, -0.000000, 0.000000, 0.998601 + -0.053922, -0.000000, 0.000000, 0.998545 + -0.054968, -0.000000, 0.000000, 0.998488 + -0.056014, -0.000000, 0.000000, 0.998430 + -0.057060, -0.000000, 0.000000, 0.998371 + -0.058106, -0.000000, 0.000000, 0.998310 + -0.059152, -0.000000, 0.000000, 0.998249 + -0.060198, -0.000000, 0.000000, 0.998186 + -0.061243, -0.000000, 0.000000, 0.998123 + -0.062289, -0.000000, 0.000000, 0.998058 + -0.063334, -0.000000, 0.000000, 0.997992 + -0.064380, -0.000000, 0.000000, 0.997925 + -0.065425, -0.000000, 0.000000, 0.997857 + -0.066470, -0.000000, 0.000000, 0.997788 + -0.067515, -0.000000, 0.000000, 0.997718 + -0.068560, -0.000000, 0.000000, 0.997647 + -0.069606, -0.000000, 0.000000, 0.997575 + -0.070650, -0.000000, 0.000000, 0.997501 + -0.071695, -0.000000, 0.000000, 0.997427 + -0.072740, -0.000000, 0.000000, 0.997351 + -0.073785, -0.000000, 0.000000, 0.997274 + -0.074830, -0.000000, 0.000000, 0.997196 + -0.075874, -0.000000, 0.000000, 0.997117 + -0.076919, -0.000000, 0.000000, 0.997037 + -0.077963, -0.000000, 0.000000, 0.996956 + -0.079007, -0.000000, 0.000000, 0.996874 + -0.080052, -0.000000, 0.000000, 0.996791 + -0.081096, -0.000000, 0.000000, 0.996706 + -0.082140, -0.000000, 0.000000, 0.996621 + -0.083184, -0.000000, 0.000000, 0.996534 + -0.084228, -0.000000, 0.000000, 0.996447 + -0.085271, -0.000000, 0.000000, 0.996358 + -0.086315, -0.000000, 0.000000, 0.996268 + -0.087359, -0.000000, 0.000000, 0.996177 + -0.088402, -0.000000, 0.000000, 0.996085 + -0.089446, -0.000000, 0.000000, 0.995992 + -0.090489, -0.000000, 0.000000, 0.995897 + -0.091532, -0.000000, 0.000000, 0.995802 + -0.092575, -0.000000, 0.000000, 0.995706 + -0.093618, -0.000000, 0.000000, 0.995608 + -0.094661, -0.000000, 0.000000, 0.995510 + -0.095704, -0.000000, 0.000000, 0.995410 + -0.096747, -0.000000, 0.000000, 0.995309 + -0.097789, -0.000000, 0.000000, 0.995207 + -0.098832, -0.000000, 0.000000, 0.995104 + -0.099874, -0.000000, 0.000000, 0.995000 + -0.100916, -0.000000, 0.000000, 0.994895 + -0.101958, -0.000000, 0.000000, 0.994789 + -0.103000, -0.000000, 0.000000, 0.994681 + -0.104042, -0.000000, 0.000000, 0.994573 + -0.105084, -0.000000, 0.000000, 0.994463 + -0.106126, -0.000000, 0.000000, 0.994353 + -0.107167, -0.000000, 0.000000, 0.994241 + -0.108209, -0.000000, 0.000000, 0.994128 + -0.109250, -0.000000, 0.000000, 0.994014 + -0.110291, -0.000000, 0.000000, 0.993899 + -0.111332, -0.000000, 0.000000, 0.993783 + -0.112373, -0.000000, 0.000000, 0.993666 + -0.113414, -0.000000, 0.000000, 0.993548 + -0.114455, -0.000000, 0.000000, 0.993428 + -0.115496, -0.000000, 0.000000, 0.993308 + -0.116536, -0.000000, 0.000000, 0.993186 + -0.117576, -0.000000, 0.000000, 0.993064 + -0.118617, -0.000000, 0.000000, 0.992940 + -0.119657, -0.000000, 0.000000, 0.992815 + -0.120697, -0.000000, 0.000000, 0.992689 + -0.121736, -0.000000, 0.000000, 0.992562 + -0.122776, -0.000000, 0.000000, 0.992434 + -0.123816, -0.000000, 0.000000, 0.992305 + -0.124855, -0.000000, 0.000000, 0.992175 + -0.125894, -0.000000, 0.000000, 0.992044 + -0.126934, -0.000000, 0.000000, 0.991911 + -0.127973, -0.000000, 0.000000, 0.991778 + -0.129011, -0.000000, 0.000000, 0.991643 + -0.130050, -0.000000, 0.000000, 0.991507 + -0.131089, -0.000000, 0.000000, 0.991371 + -0.132127, -0.000000, 0.000000, 0.991233 + -0.133165, -0.000000, 0.000000, 0.991094 + -0.134204, -0.000000, 0.000000, 0.990954 + -0.135242, -0.000000, 0.000000, 0.990813 + -0.136279, -0.000000, 0.000000, 0.990670 + -0.137317, -0.000000, 0.000000, 0.990527 + -0.138355, -0.000000, 0.000000, 0.990383 + -0.139392, -0.000000, 0.000000, 0.990237 + -0.140429, -0.000000, 0.000000, 0.990091 + -0.141466, -0.000000, 0.000000, 0.989943 + -0.142503, -0.000000, 0.000000, 0.989794 + -0.143540, -0.000000, 0.000000, 0.989644 + -0.144577, -0.000000, 0.000000, 0.989494 + -0.145613, -0.000000, 0.000000, 0.989342 + -0.146650, -0.000000, 0.000000, 0.989189 + -0.147686, -0.000000, 0.000000, 0.989034 + -0.148722, -0.000000, 0.000000, 0.988879 + -0.149757, -0.000000, 0.000000, 0.988723 + -0.150793, -0.000000, 0.000000, 0.988565 + -0.151829, -0.000000, 0.000000, 0.988407 + -0.152864, -0.000000, 0.000000, 0.988247 + -0.153899, -0.000000, 0.000000, 0.988087 + -0.154934, -0.000000, 0.000000, 0.987925 + -0.155969, -0.000000, 0.000000, 0.987762 + -0.157003, -0.000000, 0.000000, 0.987598 + -0.158038, -0.000000, 0.000000, 0.987433 + -0.159072, -0.000000, 0.000000, 0.987267 + -0.160106, -0.000000, 0.000000, 0.987100 + -0.161140, -0.000000, 0.000000, 0.986932 + -0.162174, -0.000000, 0.000000, 0.986762 + -0.163208, -0.000000, 0.000000, 0.986592 + -0.164241, -0.000000, 0.000000, 0.986420 + -0.165274, -0.000000, 0.000000, 0.986248 + -0.166307, -0.000000, 0.000000, 0.986074 + -0.167340, -0.000000, 0.000000, 0.985899 + -0.168373, -0.000000, 0.000000, 0.985723 + -0.169405, -0.000000, 0.000000, 0.985546 + -0.170438, -0.000000, 0.000000, 0.985368 + -0.171470, -0.000000, 0.000000, 0.985189 + -0.172502, -0.000000, 0.000000, 0.985009 + -0.173534, -0.000000, 0.000000, 0.984828 + -0.174565, -0.000000, 0.000000, 0.984646 + -0.175596, -0.000000, 0.000000, 0.984462 + -0.176628, -0.000000, 0.000000, 0.984278 + -0.177659, -0.000000, 0.000000, 0.984092 + -0.178689, -0.000000, 0.000000, 0.983906 + -0.179720, -0.000000, 0.000000, 0.983718 + -0.180750, -0.000000, 0.000000, 0.983529 + -0.181781, -0.000000, 0.000000, 0.983339 + -0.182811, -0.000000, 0.000000, 0.983148 + -0.183840, -0.000000, 0.000000, 0.982956 + -0.184870, -0.000000, 0.000000, 0.982763 + -0.185899, -0.000000, 0.000000, 0.982569 + -0.186929, -0.000000, 0.000000, 0.982374 + -0.187958, -0.000000, 0.000000, 0.982177 + -0.188986, -0.000000, 0.000000, 0.981980 + -0.190015, -0.000000, 0.000000, 0.981781 + -0.191043, -0.000000, 0.000000, 0.981582 + -0.192071, -0.000000, 0.000000, 0.981381 + -0.193099, -0.000000, 0.000000, 0.981179 + -0.194127, -0.000000, 0.000000, 0.980976 + -0.195155, -0.000000, 0.000000, 0.980773 + -0.196182, -0.000000, 0.000000, 0.980568 + -0.197209, -0.000000, 0.000000, 0.980361 + -0.198236, -0.000000, 0.000000, 0.980154 + -0.199262, -0.000000, 0.000000, 0.979946 + -0.200289, -0.000000, 0.000000, 0.979737 + -0.201315, -0.000000, 0.000000, 0.979527 + -0.202341, -0.000000, 0.000000, 0.979315 + -0.203367, -0.000000, 0.000000, 0.979103 + -0.204392, -0.000000, 0.000000, 0.978889 + -0.205418, -0.000000, 0.000000, 0.978674 + -0.206443, -0.000000, 0.000000, 0.978459 + -0.207468, -0.000000, 0.000000, 0.978242 + -0.208492, -0.000000, 0.000000, 0.978024 + -0.209517, -0.000000, 0.000000, 0.977805 + -0.210541, -0.000000, 0.000000, 0.977585 + -0.211565, -0.000000, 0.000000, 0.977364 + -0.212589, -0.000000, 0.000000, 0.977142 + -0.213612, -0.000000, 0.000000, 0.976919 + -0.214635, -0.000000, 0.000000, 0.976694 + -0.215658, -0.000000, 0.000000, 0.976469 + -0.216681, -0.000000, 0.000000, 0.976242 + -0.217704, -0.000000, 0.000000, 0.976015 + -0.218726, -0.000000, 0.000000, 0.975786 + -0.219748, -0.000000, 0.000000, 0.975557 + -0.220770, -0.000000, 0.000000, 0.975326 + -0.221791, -0.000000, 0.000000, 0.975094 + -0.222813, -0.000000, 0.000000, 0.974861 + -0.223834, -0.000000, 0.000000, 0.974627 + -0.224855, -0.000000, 0.000000, 0.974392 + -0.225875, -0.000000, 0.000000, 0.974156 + -0.226896, -0.000000, 0.000000, 0.973919 + -0.227916, -0.000000, 0.000000, 0.973681 + -0.228936, -0.000000, 0.000000, 0.973442 + -0.229955, -0.000000, 0.000000, 0.973201 + -0.230975, -0.000000, 0.000000, 0.972960 + -0.231994, -0.000000, 0.000000, 0.972717 + -0.233012, -0.000000, 0.000000, 0.972474 + -0.234031, -0.000000, 0.000000, 0.972229 + -0.235049, -0.000000, 0.000000, 0.971983 + -0.236067, -0.000000, 0.000000, 0.971737 + -0.237085, -0.000000, 0.000000, 0.971489 + -0.238103, -0.000000, 0.000000, 0.971240 + -0.239120, -0.000000, 0.000000, 0.970990 + -0.240137, -0.000000, 0.000000, 0.970739 + -0.241154, -0.000000, 0.000000, 0.970487 + -0.242170, -0.000000, 0.000000, 0.970234 + -0.243187, -0.000000, 0.000000, 0.969980 + -0.244203, -0.000000, 0.000000, 0.969724 + -0.245218, -0.000000, 0.000000, 0.969468 + -0.246234, -0.000000, 0.000000, 0.969210 + -0.247249, -0.000000, 0.000000, 0.968952 + -0.248264, -0.000000, 0.000000, 0.968692 + -0.249278, -0.000000, 0.000000, 0.968432 + -0.250293, -0.000000, 0.000000, 0.968170 + -0.251307, -0.000000, 0.000000, 0.967907 + -0.252321, -0.000000, 0.000000, 0.967644 + -0.253334, -0.000000, 0.000000, 0.967379 + -0.254347, -0.000000, 0.000000, 0.967113 + -0.255360, -0.000000, 0.000000, 0.966846 + -0.256373, -0.000000, 0.000000, 0.966578 + -0.257385, -0.000000, 0.000000, 0.966309 + -0.258397, -0.000000, 0.000000, 0.966039 + -0.259409, -0.000000, 0.000000, 0.965767 + -0.260421, -0.000000, 0.000000, 0.965495 + -0.261432, -0.000000, 0.000000, 0.965222 + -0.262443, -0.000000, 0.000000, 0.964947 + -0.263454, -0.000000, 0.000000, 0.964672 + -0.264464, -0.000000, 0.000000, 0.964396 + -0.265474, -0.000000, 0.000000, 0.964118 + -0.266484, -0.000000, 0.000000, 0.963839 + -0.267494, -0.000000, 0.000000, 0.963560 + -0.268503, -0.000000, 0.000000, 0.963279 + -0.269512, -0.000000, 0.000000, 0.962997 + -0.270520, -0.000000, 0.000000, 0.962714 + -0.271529, -0.000000, 0.000000, 0.962430 + -0.272537, -0.000000, 0.000000, 0.962145 + -0.273544, -0.000000, 0.000000, 0.961859 + -0.274552, -0.000000, 0.000000, 0.961572 + -0.275559, -0.000000, 0.000000, 0.961284 + -0.276566, -0.000000, 0.000000, 0.960995 + -0.277572, -0.000000, 0.000000, 0.960705 + -0.278579, -0.000000, 0.000000, 0.960413 + -0.279585, -0.000000, 0.000000, 0.960121 + -0.280590, -0.000000, 0.000000, 0.959828 + -0.281595, -0.000000, 0.000000, 0.959533 + -0.282600, -0.000000, 0.000000, 0.959238 + -0.283605, -0.000000, 0.000000, 0.958941 + -0.284610, -0.000000, 0.000000, 0.958644 + -0.285614, -0.000000, 0.000000, 0.958345 + -0.286617, -0.000000, 0.000000, 0.958045 + -0.287621, -0.000000, 0.000000, 0.957744 + -0.288624, -0.000000, 0.000000, 0.957443 + -0.289627, -0.000000, 0.000000, 0.957140 + -0.290629, -0.000000, 0.000000, 0.956836 + -0.291631, -0.000000, 0.000000, 0.956531 + -0.292633, -0.000000, 0.000000, 0.956225 + -0.293635, -0.000000, 0.000000, 0.955918 + -0.294636, -0.000000, 0.000000, 0.955610 + -0.295637, -0.000000, 0.000000, 0.955300 + -0.296637, -0.000000, 0.000000, 0.954990 + -0.297638, -0.000000, 0.000000, 0.954679 + -0.298638, -0.000000, 0.000000, 0.954367 + -0.299637, -0.000000, 0.000000, 0.954053 + -0.300636, -0.000000, 0.000000, 0.953739 + -0.301635, -0.000000, 0.000000, 0.953423 + -0.302634, -0.000000, 0.000000, 0.953107 + -0.303632, -0.000000, 0.000000, 0.952789 + -0.304630, -0.000000, 0.000000, 0.952471 + -0.305628, -0.000000, 0.000000, 0.952151 + -0.306625, -0.000000, 0.000000, 0.951830 + -0.307622, -0.000000, 0.000000, 0.951509 + -0.308618, -0.000000, 0.000000, 0.951186 + -0.309615, -0.000000, 0.000000, 0.950862 + -0.310611, -0.000000, 0.000000, 0.950537 + -0.311606, -0.000000, 0.000000, 0.950211 + -0.312601, -0.000000, 0.000000, 0.949884 + -0.313596, -0.000000, 0.000000, 0.949556 + -0.314591, -0.000000, 0.000000, 0.949227 + -0.315585, -0.000000, 0.000000, 0.948897 + -0.316579, -0.000000, 0.000000, 0.948566 + -0.317572, -0.000000, 0.000000, 0.948234 + -0.318565, -0.000000, 0.000000, 0.947901 + -0.319558, -0.000000, 0.000000, 0.947567 + -0.320551, -0.000000, 0.000000, 0.947231 + -0.321543, -0.000000, 0.000000, 0.946895 + -0.322535, -0.000000, 0.000000, 0.946558 + -0.323526, -0.000000, 0.000000, 0.946219 + -0.324517, -0.000000, 0.000000, 0.945880 + -0.325508, -0.000000, 0.000000, 0.945539 + -0.326498, -0.000000, 0.000000, 0.945198 + -0.327488, -0.000000, 0.000000, 0.944855 + -0.328478, -0.000000, 0.000000, 0.944512 + -0.329467, -0.000000, 0.000000, 0.944167 + -0.330456, -0.000000, 0.000000, 0.943822 + -0.331444, -0.000000, 0.000000, 0.943475 + -0.332432, -0.000000, 0.000000, 0.943127 + -0.333420, -0.000000, 0.000000, 0.942778 + -0.334407, -0.000000, 0.000000, 0.942429 + -0.335395, -0.000000, 0.000000, 0.942078 + -0.336381, -0.000000, 0.000000, 0.941726 + -0.337368, -0.000000, 0.000000, 0.941373 + -0.338354, -0.000000, 0.000000, 0.941019 + -0.339339, -0.000000, 0.000000, 0.940664 + -0.340324, -0.000000, 0.000000, 0.940308 + -0.341309, -0.000000, 0.000000, 0.939951 + -0.342294, -0.000000, 0.000000, 0.939593 + -0.343278, -0.000000, 0.000000, 0.939234 + -0.344261, -0.000000, 0.000000, 0.938874 + -0.345245, -0.000000, 0.000000, 0.938513 + -0.346228, -0.000000, 0.000000, 0.938151 + -0.347210, -0.000000, 0.000000, 0.937787 + -0.348192, -0.000000, 0.000000, 0.937423 + -0.349174, -0.000000, 0.000000, 0.937058 + -0.350156, -0.000000, 0.000000, 0.936692 + -0.351137, -0.000000, 0.000000, 0.936324 + -0.352117, -0.000000, 0.000000, 0.935956 + -0.353098, -0.000000, 0.000000, 0.935587 + -0.354077, -0.000000, 0.000000, 0.935216 + -0.355057, -0.000000, 0.000000, 0.934845 + -0.356036, -0.000000, 0.000000, 0.934472 + -0.357015, -0.000000, 0.000000, 0.934099 + -0.357993, -0.000000, 0.000000, 0.933724 + -0.358971, -0.000000, 0.000000, 0.933349 + -0.359948, -0.000000, 0.000000, 0.932972 + -0.360926, -0.000000, 0.000000, 0.932595 + -0.361902, -0.000000, 0.000000, 0.932216 + -0.362879, -0.000000, 0.000000, 0.931836 + -0.363855, -0.000000, 0.000000, 0.931456 + -0.364830, -0.000000, 0.000000, 0.931074 + -0.365805, -0.000000, 0.000000, 0.930691 + -0.366780, -0.000000, 0.000000, 0.930308 + -0.367754, -0.000000, 0.000000, 0.929923 + -0.368728, -0.000000, 0.000000, 0.929537 + -0.369702, -0.000000, 0.000000, 0.929150 + -0.370675, -0.000000, 0.000000, 0.928763 + -0.371648, -0.000000, 0.000000, 0.928374 + -0.372620, -0.000000, 0.000000, 0.927984 + -0.373592, -0.000000, 0.000000, 0.927593 + -0.374563, -0.000000, 0.000000, 0.927201 + -0.375535, -0.000000, 0.000000, 0.926808 + -0.376505, -0.000000, 0.000000, 0.926415 + -0.377475, -0.000000, 0.000000, 0.926020 + -0.378445, -0.000000, 0.000000, 0.925624 + -0.379415, -0.000000, 0.000000, 0.925227 + -0.380384, -0.000000, 0.000000, 0.924829 + -0.381352, -0.000000, 0.000000, 0.924430 + -0.382320, -0.000000, 0.000000, 0.924030 + -0.383288, -0.000000, 0.000000, 0.923629 + -0.384256, -0.000000, 0.000000, 0.923227 + -0.385222, -0.000000, 0.000000, 0.922824 + -0.386189, -0.000000, 0.000000, 0.922420 + -0.387155, -0.000000, 0.000000, 0.922015 + -0.388121, -0.000000, 0.000000, 0.921609 + -0.389086, -0.000000, 0.000000, 0.921201 + -0.390051, -0.000000, 0.000000, 0.920793 + -0.391015, -0.000000, 0.000000, 0.920384 + -0.391979, -0.000000, 0.000000, 0.919974 + -0.392942, -0.000000, 0.000000, 0.919563 + -0.393906, -0.000000, 0.000000, 0.919151 + -0.394868, -0.000000, 0.000000, 0.918738 + -0.395830, -0.000000, 0.000000, 0.918324 + -0.396792, -0.000000, 0.000000, 0.917908 + -0.397753, -0.000000, 0.000000, 0.917492 + -0.398714, -0.000000, 0.000000, 0.917075 + -0.399675, -0.000000, 0.000000, 0.916657 + -0.400635, -0.000000, 0.000000, 0.916238 + -0.401594, -0.000000, 0.000000, 0.915818 + -0.402554, -0.000000, 0.000000, 0.915396 + -0.403512, -0.000000, 0.000000, 0.914974 + -0.404471, -0.000000, 0.000000, 0.914551 + -0.405428, -0.000000, 0.000000, 0.914127 + -0.406386, -0.000000, 0.000000, 0.913702 + -0.407343, -0.000000, 0.000000, 0.913275 + -0.408299, -0.000000, 0.000000, 0.912848 + -0.409255, -0.000000, 0.000000, 0.912420 + -0.410211, -0.000000, 0.000000, 0.911991 + -0.411166, -0.000000, 0.000000, 0.911561 + -0.412121, -0.000000, 0.000000, 0.911129 + -0.413075, -0.000000, 0.000000, 0.910697 + -0.414029, -0.000000, 0.000000, 0.910264 + -0.414982, -0.000000, 0.000000, 0.909830 + -0.415935, -0.000000, 0.000000, 0.909394 + -0.416887, -0.000000, 0.000000, 0.908958 + -0.417839, -0.000000, 0.000000, 0.908521 + -0.418791, -0.000000, 0.000000, 0.908083 + -0.419742, -0.000000, 0.000000, 0.907644 + -0.420692, -0.000000, 0.000000, 0.907203 + -0.421642, -0.000000, 0.000000, 0.906762 + -0.422592, -0.000000, 0.000000, 0.906320 + -0.423541, -0.000000, 0.000000, 0.905877 + -0.424490, -0.000000, 0.000000, 0.905433 + -0.425438, -0.000000, 0.000000, 0.904988 + -0.426386, -0.000000, 0.000000, 0.904541 + -0.427333, -0.000000, 0.000000, 0.904094 + -0.428280, -0.000000, 0.000000, 0.903646 + -0.429226, -0.000000, 0.000000, 0.903197 + -0.430172, -0.000000, 0.000000, 0.902747 + -0.431118, -0.000000, 0.000000, 0.902296 + -0.432063, -0.000000, 0.000000, 0.901844 + -0.433007, -0.000000, 0.000000, 0.901390 + -0.433951, -0.000000, 0.000000, 0.900936 + -0.434895, -0.000000, 0.000000, 0.900481 + -0.435838, -0.000000, 0.000000, 0.900025 + -0.436780, -0.000000, 0.000000, 0.899568 + -0.437722, -0.000000, 0.000000, 0.899110 + -0.438664, -0.000000, 0.000000, 0.898651 + -0.439605, -0.000000, 0.000000, 0.898191 + -0.440546, -0.000000, 0.000000, 0.897730 + -0.441486, -0.000000, 0.000000, 0.897268 + -0.442426, -0.000000, 0.000000, 0.896805 + -0.443365, -0.000000, 0.000000, 0.896341 + -0.444304, -0.000000, 0.000000, 0.895876 + -0.445242, -0.000000, 0.000000, 0.895410 + -0.446180, -0.000000, 0.000000, 0.894943 + -0.447117, -0.000000, 0.000000, 0.894476 + -0.448054, -0.000000, 0.000000, 0.894007 + -0.448990, -0.000000, 0.000000, 0.893537 + -0.449926, -0.000000, 0.000000, 0.893066 + -0.450861, -0.000000, 0.000000, 0.892594 + -0.451796, -0.000000, 0.000000, 0.892121 + -0.452730, -0.000000, 0.000000, 0.891648 + -0.453664, -0.000000, 0.000000, 0.891173 + -0.454597, -0.000000, 0.000000, 0.890697 + -0.455530, -0.000000, 0.000000, 0.890220 + -0.456462, -0.000000, 0.000000, 0.889743 + -0.457394, -0.000000, 0.000000, 0.889264 + -0.458325, -0.000000, 0.000000, 0.888785 + -0.459256, -0.000000, 0.000000, 0.888304 + -0.460186, -0.000000, 0.000000, 0.887822 + -0.461116, -0.000000, 0.000000, 0.887340 + -0.462045, -0.000000, 0.000000, 0.886856 + -0.462974, -0.000000, 0.000000, 0.886372 + -0.463902, -0.000000, 0.000000, 0.885886 + -0.464830, -0.000000, 0.000000, 0.885400 + -0.465757, -0.000000, 0.000000, 0.884912 + -0.466684, -0.000000, 0.000000, 0.884424 + -0.467610, -0.000000, 0.000000, 0.883935 + -0.468536, -0.000000, 0.000000, 0.883444 + -0.469461, -0.000000, 0.000000, 0.882953 + -0.470386, -0.000000, 0.000000, 0.882461 + -0.471310, -0.000000, 0.000000, 0.881968 + -0.472234, -0.000000, 0.000000, 0.881473 + -0.473157, -0.000000, 0.000000, 0.880978 + -0.474079, -0.000000, 0.000000, 0.880482 + -0.475002, -0.000000, 0.000000, 0.879985 + -0.475923, -0.000000, 0.000000, 0.879487 + -0.476844, -0.000000, 0.000000, 0.878988 + -0.477765, -0.000000, 0.000000, 0.878488 + -0.478685, -0.000000, 0.000000, 0.877987 + -0.479604, -0.000000, 0.000000, 0.877485 + -0.480523, -0.000000, 0.000000, 0.876982 + -0.481442, -0.000000, 0.000000, 0.876478 + -0.482359, -0.000000, 0.000000, 0.875973 + -0.483277, -0.000000, 0.000000, 0.875468 + -0.484194, -0.000000, 0.000000, 0.874961 + -0.485110, -0.000000, 0.000000, 0.874453 + -0.486026, -0.000000, 0.000000, 0.873945 + -0.486941, -0.000000, 0.000000, 0.873435 + -0.487856, -0.000000, 0.000000, 0.872924 + -0.488770, -0.000000, 0.000000, 0.872413 + -0.489683, -0.000000, 0.000000, 0.871900 + -0.490596, -0.000000, 0.000000, 0.871387 + -0.491509, -0.000000, 0.000000, 0.870872 + -0.492421, -0.000000, 0.000000, 0.870357 + -0.493332, -0.000000, 0.000000, 0.869841 + -0.494243, -0.000000, 0.000000, 0.869324 + -0.495154, -0.000000, 0.000000, 0.868805 + -0.496064, -0.000000, 0.000000, 0.868286 + -0.496973, -0.000000, 0.000000, 0.867766 + -0.497882, -0.000000, 0.000000, 0.867245 + -0.498790, -0.000000, 0.000000, 0.866723 + -0.499698, -0.000000, 0.000000, 0.866200 + -0.500605, -0.000000, 0.000000, 0.865676 + -0.501511, -0.000000, 0.000000, 0.865151 + -0.502417, -0.000000, 0.000000, 0.864625 + -0.503323, -0.000000, 0.000000, 0.864099 + -0.504228, -0.000000, 0.000000, 0.863571 + -0.505132, -0.000000, 0.000000, 0.863042 + -0.506036, -0.000000, 0.000000, 0.862512 + -0.506939, -0.000000, 0.000000, 0.861982 + -0.507842, -0.000000, 0.000000, 0.861450 + -0.508744, -0.000000, 0.000000, 0.860918 + -0.509645, -0.000000, 0.000000, 0.860385 + -0.510546, -0.000000, 0.000000, 0.859850 + -0.511447, -0.000000, 0.000000, 0.859315 + -0.512347, -0.000000, 0.000000, 0.858779 + -0.513246, -0.000000, 0.000000, 0.858241 + -0.514145, -0.000000, 0.000000, 0.857703 + -0.515043, -0.000000, 0.000000, 0.857164 + -0.515941, -0.000000, 0.000000, 0.856624 + -0.516838, -0.000000, 0.000000, 0.856083 + -0.517734, -0.000000, 0.000000, 0.855541 + -0.518630, -0.000000, 0.000000, 0.854999 + -0.519526, -0.000000, 0.000000, 0.854455 + -0.520420, -0.000000, 0.000000, 0.853910 + -0.521315, -0.000000, 0.000000, 0.853365 + -0.522208, -0.000000, 0.000000, 0.852818 + -0.523101, -0.000000, 0.000000, 0.852270 + -0.523994, -0.000000, 0.000000, 0.851722 + -0.524886, -0.000000, 0.000000, 0.851173 + -0.525777, -0.000000, 0.000000, 0.850622 + -0.526668, -0.000000, 0.000000, 0.850071 + -0.527558, -0.000000, 0.000000, 0.849519 + -0.528448, -0.000000, 0.000000, 0.848966 + -0.529337, -0.000000, 0.000000, 0.848412 + -0.530225, -0.000000, 0.000000, 0.847857 + -0.531113, -0.000000, 0.000000, 0.847301 + -0.532000, -0.000000, 0.000000, 0.846744 + -0.532887, -0.000000, 0.000000, 0.846186 + -0.533773, -0.000000, 0.000000, 0.845628 + -0.534659, -0.000000, 0.000000, 0.845068 + -0.535544, -0.000000, 0.000000, 0.844507 + -0.536428, -0.000000, 0.000000, 0.843946 + -0.537312, -0.000000, 0.000000, 0.843384 + -0.538195, -0.000000, 0.000000, 0.842820 + -0.539078, -0.000000, 0.000000, 0.842256 + -0.539960, -0.000000, 0.000000, 0.841691 + -0.540841, -0.000000, 0.000000, 0.841125 + -0.541722, -0.000000, 0.000000, 0.840558 + -0.542602, -0.000000, 0.000000, 0.839990 + -0.543482, -0.000000, 0.000000, 0.839421 + -0.544361, -0.000000, 0.000000, 0.838851 + -0.545239, -0.000000, 0.000000, 0.838280 + -0.546117, -0.000000, 0.000000, 0.837709 + -0.546994, -0.000000, 0.000000, 0.837136 + -0.547871, -0.000000, 0.000000, 0.836563 + -0.548747, -0.000000, 0.000000, 0.835988 + -0.549622, -0.000000, 0.000000, 0.835413 + -0.550497, -0.000000, 0.000000, 0.834837 + -0.551371, -0.000000, 0.000000, 0.834260 + -0.552245, -0.000000, 0.000000, 0.833682 + -0.553118, -0.000000, 0.000000, 0.833103 + -0.553991, -0.000000, 0.000000, 0.832523 + -0.554862, -0.000000, 0.000000, 0.831942 + -0.555734, -0.000000, 0.000000, 0.831360 + -0.556604, -0.000000, 0.000000, 0.830778 + -0.557474, -0.000000, 0.000000, 0.830194 + -0.558343, -0.000000, 0.000000, 0.829610 + -0.559212, -0.000000, 0.000000, 0.829025 + -0.560080, -0.000000, 0.000000, 0.828438 + -0.560948, -0.000000, 0.000000, 0.827851 + -0.561815, -0.000000, 0.000000, 0.827263 + -0.562681, -0.000000, 0.000000, 0.826674 + -0.563547, -0.000000, 0.000000, 0.826084 + -0.564412, -0.000000, 0.000000, 0.825493 + -0.565276, -0.000000, 0.000000, 0.824902 + -0.566140, -0.000000, 0.000000, 0.824309 + -0.567003, -0.000000, 0.000000, 0.823716 + -0.567866, -0.000000, 0.000000, 0.823121 + -0.568728, -0.000000, 0.000000, 0.822526 + -0.569589, -0.000000, 0.000000, 0.821930 + -0.570450, -0.000000, 0.000000, 0.821333 + -0.571310, -0.000000, 0.000000, 0.820734 + -0.572169, -0.000000, 0.000000, 0.820136 + -0.573028, -0.000000, 0.000000, 0.819536 + -0.573886, -0.000000, 0.000000, 0.818935 + -0.574744, -0.000000, 0.000000, 0.818333 + -0.575601, -0.000000, 0.000000, 0.817731 + -0.576457, -0.000000, 0.000000, 0.817127 + -0.577313, -0.000000, 0.000000, 0.816523 + -0.578168, -0.000000, 0.000000, 0.815918 + -0.579022, -0.000000, 0.000000, 0.815312 + -0.579876, -0.000000, 0.000000, 0.814705 + -0.580729, -0.000000, 0.000000, 0.814097 + -0.581581, -0.000000, 0.000000, 0.813488 + -0.582433, -0.000000, 0.000000, 0.812878 + -0.583285, -0.000000, 0.000000, 0.812268 + -0.584135, -0.000000, 0.000000, 0.811656 + -0.584985, -0.000000, 0.000000, 0.811044 + -0.585834, -0.000000, 0.000000, 0.810431 + -0.586683, -0.000000, 0.000000, 0.809817 + -0.587531, -0.000000, 0.000000, 0.809202 + -0.588378, -0.000000, 0.000000, 0.808586 + -0.589225, -0.000000, 0.000000, 0.807969 + -0.590071, -0.000000, 0.000000, 0.807351 + -0.590917, -0.000000, 0.000000, 0.806733 + -0.591761, -0.000000, 0.000000, 0.806113 + -0.592605, -0.000000, 0.000000, 0.805493 + -0.593449, -0.000000, 0.000000, 0.804872 + -0.594292, -0.000000, 0.000000, 0.804250 + -0.595134, -0.000000, 0.000000, 0.803627 + -0.595975, -0.000000, 0.000000, 0.803003 + -0.596816, -0.000000, 0.000000, 0.802378 + -0.597656, -0.000000, 0.000000, 0.801752 + -0.598496, -0.000000, 0.000000, 0.801126 + -0.599335, -0.000000, 0.000000, 0.800498 + -0.600173, -0.000000, 0.000000, 0.799870 + -0.601011, -0.000000, 0.000000, 0.799241 + -0.601848, -0.000000, 0.000000, 0.798611 + -0.602684, -0.000000, 0.000000, 0.797980 + -0.603519, -0.000000, 0.000000, 0.797348 + -0.604354, -0.000000, 0.000000, 0.796716 + -0.605189, -0.000000, 0.000000, 0.796082 + -0.606022, -0.000000, 0.000000, 0.795448 + -0.606855, -0.000000, 0.000000, 0.794812 + -0.607687, -0.000000, 0.000000, 0.794176 + -0.608519, -0.000000, 0.000000, 0.793539 + -0.609350, -0.000000, 0.000000, 0.792901 + -0.610180, -0.000000, 0.000000, 0.792263 + -0.611010, -0.000000, 0.000000, 0.791623 + -0.611839, -0.000000, 0.000000, 0.790983 + -0.612667, -0.000000, 0.000000, 0.790341 + -0.613495, -0.000000, 0.000000, 0.789699 + -0.614321, -0.000000, 0.000000, 0.789056 + -0.615148, -0.000000, 0.000000, 0.788412 + -0.615973, -0.000000, 0.000000, 0.787767 + -0.616798, -0.000000, 0.000000, 0.787121 + -0.617622, -0.000000, 0.000000, 0.786475 + -0.618446, -0.000000, 0.000000, 0.785827 + -0.619269, -0.000000, 0.000000, 0.785179 + -0.620091, -0.000000, 0.000000, 0.784530 + -0.620912, -0.000000, 0.000000, 0.783880 + -0.621733, -0.000000, 0.000000, 0.783229 + -0.622553, -0.000000, 0.000000, 0.782577 + -0.623373, -0.000000, 0.000000, 0.781925 + -0.624192, -0.000000, 0.000000, 0.781271 + -0.625010, -0.000000, 0.000000, 0.780617 + -0.625827, -0.000000, 0.000000, 0.779962 + -0.626644, -0.000000, 0.000000, 0.779306 + -0.627460, -0.000000, 0.000000, 0.778649 + -0.628275, -0.000000, 0.000000, 0.777991 + -0.629090, -0.000000, 0.000000, 0.777333 + -0.629904, -0.000000, 0.000000, 0.776673 + -0.630717, -0.000000, 0.000000, 0.776013 + -0.631529, -0.000000, 0.000000, 0.775352 + -0.632341, -0.000000, 0.000000, 0.774690 + -0.633153, -0.000000, 0.000000, 0.774027 + -0.633963, -0.000000, 0.000000, 0.773363 + -0.634773, -0.000000, 0.000000, 0.772699 + -0.635582, -0.000000, 0.000000, 0.772033 + -0.636390, -0.000000, 0.000000, 0.771367 + -0.637198, -0.000000, 0.000000, 0.770700 + -0.638005, -0.000000, 0.000000, 0.770032 + -0.638811, -0.000000, 0.000000, 0.769363 + -0.639617, -0.000000, 0.000000, 0.768694 + -0.640422, -0.000000, 0.000000, 0.768023 + -0.641226, -0.000000, 0.000000, 0.767352 + -0.642029, -0.000000, 0.000000, 0.766680 + -0.642832, -0.000000, 0.000000, 0.766007 + -0.643634, -0.000000, 0.000000, 0.765333 + -0.644436, -0.000000, 0.000000, 0.764659 + -0.645236, -0.000000, 0.000000, 0.763983 + -0.646036, -0.000000, 0.000000, 0.763307 + -0.646835, -0.000000, 0.000000, 0.762630 + -0.647634, -0.000000, 0.000000, 0.761952 + -0.648432, -0.000000, 0.000000, 0.761273 + -0.649229, -0.000000, 0.000000, 0.760593 + -0.650025, -0.000000, 0.000000, 0.759913 + -0.650821, -0.000000, 0.000000, 0.759231 + -0.651616, -0.000000, 0.000000, 0.758549 + -0.652410, -0.000000, 0.000000, 0.757866 + -0.653204, -0.000000, 0.000000, 0.757182 + -0.653997, -0.000000, 0.000000, 0.756497 + -0.654789, -0.000000, 0.000000, 0.755812 + -0.655580, -0.000000, 0.000000, 0.755126 + -0.656371, -0.000000, 0.000000, 0.754438 + -0.657161, -0.000000, 0.000000, 0.753750 + -0.657950, -0.000000, 0.000000, 0.753062 + -0.658739, -0.000000, 0.000000, 0.752372 + -0.659526, -0.000000, 0.000000, 0.751682 + -0.660313, -0.000000, 0.000000, 0.750990 + -0.661100, -0.000000, 0.000000, 0.750298 + -0.661885, -0.000000, 0.000000, 0.749605 + -0.662670, -0.000000, 0.000000, 0.748911 + -0.663454, -0.000000, 0.000000, 0.748217 + -0.664238, -0.000000, 0.000000, 0.747521 + -0.665020, -0.000000, 0.000000, 0.746825 + -0.665802, -0.000000, 0.000000, 0.746128 + -0.666584, -0.000000, 0.000000, 0.745430 + -0.667364, -0.000000, 0.000000, 0.744732 + -0.668144, -0.000000, 0.000000, 0.744032 + -0.668923, -0.000000, 0.000000, 0.743332 + -0.669701, -0.000000, 0.000000, 0.742631 + -0.670479, -0.000000, 0.000000, 0.741929 + -0.671256, -0.000000, 0.000000, 0.741226 + -0.672032, -0.000000, 0.000000, 0.740522 + -0.672807, -0.000000, 0.000000, 0.739818 + -0.673582, -0.000000, 0.000000, 0.739113 + -0.674356, -0.000000, 0.000000, 0.738407 + -0.675129, -0.000000, 0.000000, 0.737700 + -0.675901, -0.000000, 0.000000, 0.736992 + -0.676673, -0.000000, 0.000000, 0.736284 + -0.677444, -0.000000, 0.000000, 0.735575 + -0.678214, -0.000000, 0.000000, 0.734864 + -0.678983, -0.000000, 0.000000, 0.734154 + -0.679752, -0.000000, 0.000000, 0.733442 + -0.680520, -0.000000, 0.000000, 0.732729 + -0.681287, -0.000000, 0.000000, 0.732016 + -0.682054, -0.000000, 0.000000, 0.731302 + -0.682819, -0.000000, 0.000000, 0.730587 + -0.683584, -0.000000, 0.000000, 0.729872 + -0.684349, -0.000000, 0.000000, 0.729155 + -0.685112, -0.000000, 0.000000, 0.728438 + -0.685875, -0.000000, 0.000000, 0.727720 + -0.686637, -0.000000, 0.000000, 0.727001 + -0.687398, -0.000000, 0.000000, 0.726281 + -0.688158, -0.000000, 0.000000, 0.725561 + -0.688918, -0.000000, 0.000000, 0.724839 + -0.689677, -0.000000, 0.000000, 0.724117 + -0.690435, -0.000000, 0.000000, 0.723394 + -0.691192, -0.000000, 0.000000, 0.722671 + -0.691949, -0.000000, 0.000000, 0.721946 + -0.692705, -0.000000, 0.000000, 0.721221 + -0.693460, -0.000000, 0.000000, 0.720495 + -0.694214, -0.000000, 0.000000, 0.719768 + -0.694968, -0.000000, 0.000000, 0.719041 + -0.695721, -0.000000, 0.000000, 0.718312 + -0.696473, -0.000000, 0.000000, 0.717583 + -0.697224, -0.000000, 0.000000, 0.716853 + -0.697975, -0.000000, 0.000000, 0.716122 + -0.698725, -0.000000, 0.000000, 0.715391 + -0.699474, -0.000000, 0.000000, 0.714658 + -0.700222, -0.000000, 0.000000, 0.713925 + -0.700969, -0.000000, 0.000000, 0.713191 + -0.701716, -0.000000, 0.000000, 0.712457 + -0.702462, -0.000000, 0.000000, 0.711721 + -0.703207, -0.000000, 0.000000, 0.710985 + -0.703952, -0.000000, 0.000000, 0.710248 + -0.704695, -0.000000, 0.000000, 0.709510 + -0.705438, -0.000000, 0.000000, 0.708771 + -0.706180, -0.000000, 0.000000, 0.708032 + -0.706922, -0.000000, 0.000000, 0.707292 + -0.707662, -0.000000, 0.000000, 0.706551 + -0.708402, -0.000000, 0.000000, 0.705809 + -0.709141, -0.000000, 0.000000, 0.705067 + -0.709879, -0.000000, 0.000000, 0.704324 + -0.710616, -0.000000, 0.000000, 0.703580 + -0.711353, -0.000000, 0.000000, 0.702835 + -0.712089, -0.000000, 0.000000, 0.702089 + -0.712824, -0.000000, 0.000000, 0.701343 + -0.713558, -0.000000, 0.000000, 0.700596 + -0.714292, -0.000000, 0.000000, 0.699848 + -0.715025, -0.000000, 0.000000, 0.699099 + -0.715757, -0.000000, 0.000000, 0.698350 + -0.716488, -0.000000, 0.000000, 0.697600 + -0.717218, -0.000000, 0.000000, 0.696849 + -0.717948, -0.000000, 0.000000, 0.696097 + -0.718676, -0.000000, 0.000000, 0.695345 + -0.719404, -0.000000, 0.000000, 0.694591 + -0.720132, -0.000000, 0.000000, 0.693837 + -0.720858, -0.000000, 0.000000, 0.693083 + -0.721584, -0.000000, 0.000000, 0.692327 + -0.722309, -0.000000, 0.000000, 0.691571 + -0.723033, -0.000000, 0.000000, 0.690814 + -0.723756, -0.000000, 0.000000, 0.690056 + -0.724478, -0.000000, 0.000000, 0.689297 + -0.725200, -0.000000, 0.000000, 0.688538 + -0.725921, -0.000000, 0.000000, 0.687778 + -0.726641, -0.000000, 0.000000, 0.687017 + -0.727360, -0.000000, 0.000000, 0.686256 + -0.728079, -0.000000, 0.000000, 0.685493 + -0.728797, -0.000000, 0.000000, 0.684730 + -0.729513, -0.000000, 0.000000, 0.683967 + -0.730229, -0.000000, 0.000000, 0.683202 + -0.730945, -0.000000, 0.000000, 0.682437 + -0.731659, -0.000000, 0.000000, 0.681671 + -0.732373, -0.000000, 0.000000, 0.680904 + -0.733086, -0.000000, 0.000000, 0.680136 + -0.733798, -0.000000, 0.000000, 0.679368 + -0.734509, -0.000000, 0.000000, 0.678599 + -0.735220, -0.000000, 0.000000, 0.677829 + -0.735929, -0.000000, 0.000000, 0.677058 + -0.736638, -0.000000, 0.000000, 0.676287 + -0.737346, -0.000000, 0.000000, 0.675515 + -0.738053, -0.000000, 0.000000, 0.674742 + -0.738760, -0.000000, 0.000000, 0.673969 + -0.739465, -0.000000, 0.000000, 0.673195 + -0.740170, -0.000000, 0.000000, 0.672420 + -0.740874, -0.000000, 0.000000, 0.671644 + -0.741577, -0.000000, 0.000000, 0.670867 + -0.742280, -0.000000, 0.000000, 0.670090 + -0.742981, -0.000000, 0.000000, 0.669312 + -0.743682, -0.000000, 0.000000, 0.668534 + -0.744382, -0.000000, 0.000000, 0.667754 + -0.745081, -0.000000, 0.000000, 0.666974 + -0.745779, -0.000000, 0.000000, 0.666193 + -0.746477, -0.000000, 0.000000, 0.665412 + -0.747173, -0.000000, 0.000000, 0.664629 + -0.747869, -0.000000, 0.000000, 0.663846 + -0.748564, -0.000000, 0.000000, 0.663062 + -0.749258, -0.000000, 0.000000, 0.662278 + -0.749952, -0.000000, 0.000000, 0.661493 + -0.750644, -0.000000, 0.000000, 0.660707 + -0.751336, -0.000000, 0.000000, 0.659920 + -0.752027, -0.000000, 0.000000, 0.659132 + -0.752717, -0.000000, 0.000000, 0.658344 + -0.753406, -0.000000, 0.000000, 0.657555 + -0.754095, -0.000000, 0.000000, 0.656766 + -0.754782, -0.000000, 0.000000, 0.655976 + -0.755469, -0.000000, 0.000000, 0.655185 + -0.756155, -0.000000, 0.000000, 0.654393 + -0.756840, -0.000000, 0.000000, 0.653600 + -0.757524, -0.000000, 0.000000, 0.652807 + -0.758208, -0.000000, 0.000000, 0.652013 + -0.758890, -0.000000, 0.000000, 0.651219 + -0.759572, -0.000000, 0.000000, 0.650423 + -0.760253, -0.000000, 0.000000, 0.649627 + -0.760933, -0.000000, 0.000000, 0.648830 + -0.761612, -0.000000, 0.000000, 0.648033 + -0.762291, -0.000000, 0.000000, 0.647235 + -0.762968, -0.000000, 0.000000, 0.646436 + -0.763645, -0.000000, 0.000000, 0.645636 + -0.764321, -0.000000, 0.000000, 0.644836 + -0.764996, -0.000000, 0.000000, 0.644035 + -0.765670, -0.000000, 0.000000, 0.643233 + -0.766344, -0.000000, 0.000000, 0.642431 + -0.767016, -0.000000, 0.000000, 0.641628 + -0.767688, -0.000000, 0.000000, 0.640824 + -0.768359, -0.000000, 0.000000, 0.640019 + -0.769029, -0.000000, 0.000000, 0.639214 + -0.769698, -0.000000, 0.000000, 0.638408 + -0.770366, -0.000000, 0.000000, 0.637602 + -0.771034, -0.000000, 0.000000, 0.636794 + -0.771700, -0.000000, 0.000000, 0.635986 + -0.772366, -0.000000, 0.000000, 0.635177 + -0.773031, -0.000000, 0.000000, 0.634368 + -0.773695, -0.000000, 0.000000, 0.633558 + -0.774359, -0.000000, 0.000000, 0.632747 + -0.775021, -0.000000, 0.000000, 0.631935 + -0.775683, -0.000000, 0.000000, 0.631123 + -0.776343, -0.000000, 0.000000, 0.630310 + -0.777003, -0.000000, 0.000000, 0.629497 + -0.777662, -0.000000, 0.000000, 0.628682 + -0.778320, -0.000000, 0.000000, 0.627867 + -0.778978, -0.000000, 0.000000, 0.627052 + -0.779634, -0.000000, 0.000000, 0.626235 + -0.780290, -0.000000, 0.000000, 0.625418 + -0.780944, -0.000000, 0.000000, 0.624601 + -0.781598, -0.000000, 0.000000, 0.623782 + -0.782251, -0.000000, 0.000000, 0.622963 + -0.782903, -0.000000, 0.000000, 0.622143 + -0.783555, -0.000000, 0.000000, 0.621323 + -0.784205, -0.000000, 0.000000, 0.620502 + -0.784855, -0.000000, 0.000000, 0.619680 + -0.785503, -0.000000, 0.000000, 0.618857 + -0.786151, -0.000000, 0.000000, 0.618034 + -0.786798, -0.000000, 0.000000, 0.617210 + -0.787444, -0.000000, 0.000000, 0.616386 + -0.788090, -0.000000, 0.000000, 0.615561 + -0.788734, -0.000000, 0.000000, 0.614735 + -0.789377, -0.000000, 0.000000, 0.613908 + -0.790020, -0.000000, 0.000000, 0.613081 + -0.790662, -0.000000, 0.000000, 0.612253 + -0.791303, -0.000000, 0.000000, 0.611424 + -0.791943, -0.000000, 0.000000, 0.610595 + -0.792582, -0.000000, 0.000000, 0.609765 + -0.793220, -0.000000, 0.000000, 0.608935 + -0.793858, -0.000000, 0.000000, 0.608103 + -0.794494, -0.000000, 0.000000, 0.607271 + -0.795130, -0.000000, 0.000000, 0.606439 + -0.795765, -0.000000, 0.000000, 0.605605 + -0.796399, -0.000000, 0.000000, 0.604772 + -0.797032, -0.000000, 0.000000, 0.603937 + -0.797664, -0.000000, 0.000000, 0.603102 + -0.798296, -0.000000, 0.000000, 0.602266 + -0.798926, -0.000000, 0.000000, 0.601429 + -0.799556, -0.000000, 0.000000, 0.600592 + -0.800184, -0.000000, 0.000000, 0.599754 + -0.800812, -0.000000, 0.000000, 0.598915 + -0.801439, -0.000000, 0.000000, 0.598076 + -0.802065, -0.000000, 0.000000, 0.597236 + -0.802690, -0.000000, 0.000000, 0.596396 + -0.803315, -0.000000, 0.000000, 0.595555 + -0.803938, -0.000000, 0.000000, 0.594713 + -0.804561, -0.000000, 0.000000, 0.593870 + -0.805182, -0.000000, 0.000000, 0.593027 + -0.805803, -0.000000, 0.000000, 0.592183 + -0.806423, -0.000000, 0.000000, 0.591339 + -0.807042, -0.000000, 0.000000, 0.590494 + -0.807660, -0.000000, 0.000000, 0.589648 + -0.808277, -0.000000, 0.000000, 0.588802 + -0.808894, -0.000000, 0.000000, 0.587955 + -0.809509, -0.000000, 0.000000, 0.587107 + -0.810124, -0.000000, 0.000000, 0.586259 + -0.810738, -0.000000, 0.000000, 0.585410 + -0.811350, -0.000000, 0.000000, 0.584560 + -0.811962, -0.000000, 0.000000, 0.583710 + -0.812573, -0.000000, 0.000000, 0.582859 + -0.813183, -0.000000, 0.000000, 0.582008 + -0.813793, -0.000000, 0.000000, 0.581155 + -0.814401, -0.000000, 0.000000, 0.580303 + -0.815008, -0.000000, 0.000000, 0.579449 + -0.815615, -0.000000, 0.000000, 0.578595 + -0.816221, -0.000000, 0.000000, 0.577740 + -0.816825, -0.000000, 0.000000, 0.576885 + -0.817429, -0.000000, 0.000000, 0.576029 + -0.818032, -0.000000, 0.000000, 0.575172 + -0.818634, -0.000000, 0.000000, 0.574315 + -0.819235, -0.000000, 0.000000, 0.573457 + -0.819836, -0.000000, 0.000000, 0.572599 + -0.820435, -0.000000, 0.000000, 0.571740 + -0.821034, -0.000000, 0.000000, 0.570880 + -0.821631, -0.000000, 0.000000, 0.570019 + -0.822228, -0.000000, 0.000000, 0.569158 + -0.822824, -0.000000, 0.000000, 0.568297 + -0.823418, -0.000000, 0.000000, 0.567435 + -0.824012, -0.000000, 0.000000, 0.566572 + -0.824606, -0.000000, 0.000000, 0.565708 + -0.825198, -0.000000, 0.000000, 0.564844 + -0.825789, -0.000000, 0.000000, 0.563979 + -0.826379, -0.000000, 0.000000, 0.563114 + -0.826969, -0.000000, 0.000000, 0.562248 + -0.827557, -0.000000, 0.000000, 0.561381 + -0.828145, -0.000000, 0.000000, 0.560514 + -0.828732, -0.000000, 0.000000, 0.559646 + -0.829317, -0.000000, 0.000000, 0.558778 + -0.829902, -0.000000, 0.000000, 0.557909 + -0.830486, -0.000000, 0.000000, 0.557039 + -0.831069, -0.000000, 0.000000, 0.556169 + -0.831651, -0.000000, 0.000000, 0.555298 + -0.832233, -0.000000, 0.000000, 0.554427 + -0.832813, -0.000000, 0.000000, 0.553554 + -0.833392, -0.000000, 0.000000, 0.552682 + -0.833971, -0.000000, 0.000000, 0.551808 + -0.834549, -0.000000, 0.000000, 0.550934 + -0.835125, -0.000000, 0.000000, 0.550060 + -0.835701, -0.000000, 0.000000, 0.549185 + -0.836276, -0.000000, 0.000000, 0.548309 + -0.836850, -0.000000, 0.000000, 0.547433 + -0.837423, -0.000000, 0.000000, 0.546556 + -0.837995, -0.000000, 0.000000, 0.545678 + -0.838566, -0.000000, 0.000000, 0.544800 + -0.839136, -0.000000, 0.000000, 0.543921 + -0.839706, -0.000000, 0.000000, 0.543042 + -0.840274, -0.000000, 0.000000, 0.542162 + -0.840841, -0.000000, 0.000000, 0.541282 + -0.841408, -0.000000, 0.000000, 0.540400 + -0.841974, -0.000000, 0.000000, 0.539519 + -0.842538, -0.000000, 0.000000, 0.538636 + -0.843102, -0.000000, 0.000000, 0.537754 + -0.843665, -0.000000, 0.000000, 0.536870 + -0.844227, -0.000000, 0.000000, 0.535986 + -0.844788, -0.000000, 0.000000, 0.535101 + -0.845348, -0.000000, 0.000000, 0.534216 + -0.845907, -0.000000, 0.000000, 0.533330 + -0.846465, -0.000000, 0.000000, 0.532444 + -0.847023, -0.000000, 0.000000, 0.531557 + -0.847579, -0.000000, 0.000000, 0.530669 + -0.848134, -0.000000, 0.000000, 0.529781 + -0.848689, -0.000000, 0.000000, 0.528892 + -0.849243, -0.000000, 0.000000, 0.528003 + -0.849795, -0.000000, 0.000000, 0.527113 + -0.850347, -0.000000, 0.000000, 0.526223 + -0.850898, -0.000000, 0.000000, 0.525332 + -0.851447, -0.000000, 0.000000, 0.524440 + -0.851996, -0.000000, 0.000000, 0.523548 + -0.852544, -0.000000, 0.000000, 0.522655 + -0.853091, -0.000000, 0.000000, 0.521761 + -0.853638, -0.000000, 0.000000, 0.520868 + -0.854183, -0.000000, 0.000000, 0.519973 + -0.854727, -0.000000, 0.000000, 0.519078 + -0.855270, -0.000000, 0.000000, 0.518182 + -0.855813, -0.000000, 0.000000, 0.517286 + -0.856354, -0.000000, 0.000000, 0.516389 + -0.856894, -0.000000, 0.000000, 0.515492 + -0.857434, -0.000000, 0.000000, 0.514594 + -0.857973, -0.000000, 0.000000, 0.513696 + -0.858510, -0.000000, 0.000000, 0.512797 + -0.859047, -0.000000, 0.000000, 0.511897 + -0.859583, -0.000000, 0.000000, 0.510997 + -0.860117, -0.000000, 0.000000, 0.510096 + -0.860651, -0.000000, 0.000000, 0.509195 + -0.861184, -0.000000, 0.000000, 0.508293 + -0.861716, -0.000000, 0.000000, 0.507390 + -0.862247, -0.000000, 0.000000, 0.506487 + -0.862777, -0.000000, 0.000000, 0.505584 + -0.863307, -0.000000, 0.000000, 0.504680 + -0.863835, -0.000000, 0.000000, 0.503775 + -0.864362, -0.000000, 0.000000, 0.502870 + -0.864888, -0.000000, 0.000000, 0.501964 + -0.865414, -0.000000, 0.000000, 0.501058 + -0.865938, -0.000000, 0.000000, 0.500151 + -0.866462, -0.000000, 0.000000, 0.499244 + -0.866984, -0.000000, 0.000000, 0.498336 + -0.867506, -0.000000, 0.000000, 0.497427 + -0.868026, -0.000000, 0.000000, 0.496518 + -0.868546, -0.000000, 0.000000, 0.495609 + -0.869065, -0.000000, 0.000000, 0.494699 + -0.869582, -0.000000, 0.000000, 0.493788 + -0.870099, -0.000000, 0.000000, 0.492877 + -0.870615, -0.000000, 0.000000, 0.491965 + -0.871130, -0.000000, 0.000000, 0.491053 + -0.871644, -0.000000, 0.000000, 0.490140 + -0.872157, -0.000000, 0.000000, 0.489227 + -0.872669, -0.000000, 0.000000, 0.488313 + -0.873180, -0.000000, 0.000000, 0.487398 + -0.873690, -0.000000, 0.000000, 0.486483 + -0.874199, -0.000000, 0.000000, 0.485568 + -0.874707, -0.000000, 0.000000, 0.484652 + -0.875214, -0.000000, 0.000000, 0.483735 + -0.875721, -0.000000, 0.000000, 0.482818 + -0.876226, -0.000000, 0.000000, 0.481901 + -0.876730, -0.000000, 0.000000, 0.480982 + -0.877234, -0.000000, 0.000000, 0.480064 + -0.877736, -0.000000, 0.000000, 0.479145 + -0.878237, -0.000000, 0.000000, 0.478225 + -0.878738, -0.000000, 0.000000, 0.477305 + -0.879237, -0.000000, 0.000000, 0.476384 + -0.879736, -0.000000, 0.000000, 0.475462 + -0.880234, -0.000000, 0.000000, 0.474541 + -0.880730, -0.000000, 0.000000, 0.473618 + -0.881226, -0.000000, 0.000000, 0.472695 + -0.881721, -0.000000, 0.000000, 0.471772 + -0.882214, -0.000000, 0.000000, 0.470848 + -0.882707, -0.000000, 0.000000, 0.469924 + -0.883199, -0.000000, 0.000000, 0.468999 + -0.883690, -0.000000, 0.000000, 0.468073 + -0.884179, -0.000000, 0.000000, 0.467147 + -0.884668, -0.000000, 0.000000, 0.466221 + -0.885156, -0.000000, 0.000000, 0.465294 + -0.885643, -0.000000, 0.000000, 0.464366 + -0.886129, -0.000000, 0.000000, 0.463438 + -0.886614, -0.000000, 0.000000, 0.462510 + -0.887098, -0.000000, 0.000000, 0.461581 + -0.887581, -0.000000, 0.000000, 0.460651 + -0.888063, -0.000000, 0.000000, 0.459721 + -0.888544, -0.000000, 0.000000, 0.458791 + -0.889024, -0.000000, 0.000000, 0.457860 + -0.889504, -0.000000, 0.000000, 0.456928 + -0.889982, -0.000000, 0.000000, 0.455996 + -0.890459, -0.000000, 0.000000, 0.455064 + -0.890935, -0.000000, 0.000000, 0.454130 + -0.891410, -0.000000, 0.000000, 0.453197 + -0.891885, -0.000000, 0.000000, 0.452263 + -0.892358, -0.000000, 0.000000, 0.451328 + -0.892830, -0.000000, 0.000000, 0.450393 + -0.893302, -0.000000, 0.000000, 0.449458 + -0.893772, -0.000000, 0.000000, 0.448522 + -0.894241, -0.000000, 0.000000, 0.447585 + -0.894710, -0.000000, 0.000000, 0.446648 + -0.895177, -0.000000, 0.000000, 0.445711 + -0.895643, -0.000000, 0.000000, 0.444773 + -0.896109, -0.000000, 0.000000, 0.443834 + -0.896573, -0.000000, 0.000000, 0.442895 + -0.897037, -0.000000, 0.000000, 0.441956 + -0.897499, -0.000000, 0.000000, 0.441016 + -0.897961, -0.000000, 0.000000, 0.440076 + -0.898421, -0.000000, 0.000000, 0.439135 + -0.898881, -0.000000, 0.000000, 0.438193 + -0.899339, -0.000000, 0.000000, 0.437251 + -0.899797, -0.000000, 0.000000, 0.436309 + -0.900253, -0.000000, 0.000000, 0.435366 + -0.900709, -0.000000, 0.000000, 0.434423 + -0.901164, -0.000000, 0.000000, 0.433479 + -0.901617, -0.000000, 0.000000, 0.432535 + -0.902070, -0.000000, 0.000000, 0.431590 + -0.902521, -0.000000, 0.000000, 0.430645 + -0.902972, -0.000000, 0.000000, 0.429699 + -0.903422, -0.000000, 0.000000, 0.428753 + -0.903870, -0.000000, 0.000000, 0.427807 + -0.904318, -0.000000, 0.000000, 0.426860 + -0.904765, -0.000000, 0.000000, 0.425912 + -0.905210, -0.000000, 0.000000, 0.424964 + -0.905655, -0.000000, 0.000000, 0.424015 + -0.906099, -0.000000, 0.000000, 0.423067 + -0.906541, -0.000000, 0.000000, 0.422117 + -0.906983, -0.000000, 0.000000, 0.421167 + -0.907424, -0.000000, 0.000000, 0.420217 + -0.907863, -0.000000, 0.000000, 0.419266 + -0.908302, -0.000000, 0.000000, 0.418315 + -0.908740, -0.000000, 0.000000, 0.417363 + -0.909177, -0.000000, 0.000000, 0.416411 + -0.909612, -0.000000, 0.000000, 0.415458 + -0.910047, -0.000000, 0.000000, 0.414505 + -0.910481, -0.000000, 0.000000, 0.413552 + -0.910913, -0.000000, 0.000000, 0.412598 + -0.911345, -0.000000, 0.000000, 0.411643 + -0.911776, -0.000000, 0.000000, 0.410688 + -0.912206, -0.000000, 0.000000, 0.409733 + -0.912634, -0.000000, 0.000000, 0.408777 + -0.913062, -0.000000, 0.000000, 0.407821 + -0.913489, -0.000000, 0.000000, 0.406864 + -0.913914, -0.000000, 0.000000, 0.405907 + -0.914339, -0.000000, 0.000000, 0.404950 + -0.914763, -0.000000, 0.000000, 0.403991 + -0.915185, -0.000000, 0.000000, 0.403033 + -0.915607, -0.000000, 0.000000, 0.402074 + -0.916028, -0.000000, 0.000000, 0.401115 + -0.916448, -0.000000, 0.000000, 0.400155 + -0.916866, -0.000000, 0.000000, 0.399195 + -0.917284, -0.000000, 0.000000, 0.398234 + -0.917701, -0.000000, 0.000000, 0.397273 + -0.918116, -0.000000, 0.000000, 0.396311 + -0.918531, -0.000000, 0.000000, 0.395349 + -0.918944, -0.000000, 0.000000, 0.394387 + -0.919357, -0.000000, 0.000000, 0.393424 + -0.919769, -0.000000, 0.000000, 0.392461 + -0.920179, -0.000000, 0.000000, 0.391497 + -0.920589, -0.000000, 0.000000, 0.390533 + -0.920998, -0.000000, 0.000000, 0.389568 + -0.921405, -0.000000, 0.000000, 0.388603 + -0.921812, -0.000000, 0.000000, 0.387638 + -0.922217, -0.000000, 0.000000, 0.386672 + -0.922622, -0.000000, 0.000000, 0.385706 + -0.923025, -0.000000, 0.000000, 0.384739 + -0.923428, -0.000000, 0.000000, 0.383772 + -0.923829, -0.000000, 0.000000, 0.382804 + -0.924230, -0.000000, 0.000000, 0.381836 + -0.924629, -0.000000, 0.000000, 0.380868 + -0.925028, -0.000000, 0.000000, 0.379899 + -0.925425, -0.000000, 0.000000, 0.378930 + -0.925822, -0.000000, 0.000000, 0.377960 + -0.926217, -0.000000, 0.000000, 0.376990 + -0.926612, -0.000000, 0.000000, 0.376020 + -0.927005, -0.000000, 0.000000, 0.375049 + -0.927397, -0.000000, 0.000000, 0.374078 + -0.927789, -0.000000, 0.000000, 0.373106 + -0.928179, -0.000000, 0.000000, 0.372134 + -0.928568, -0.000000, 0.000000, 0.371161 + -0.928957, -0.000000, 0.000000, 0.370188 + -0.929344, -0.000000, 0.000000, 0.369215 + -0.929730, -0.000000, 0.000000, 0.368241 + -0.930115, -0.000000, 0.000000, 0.367267 + -0.930500, -0.000000, 0.000000, 0.366293 + -0.930883, -0.000000, 0.000000, 0.365318 + -0.931265, -0.000000, 0.000000, 0.364342 + -0.931646, -0.000000, 0.000000, 0.363367 + -0.932026, -0.000000, 0.000000, 0.362391 + -0.932405, -0.000000, 0.000000, 0.361414 + -0.932784, -0.000000, 0.000000, 0.360437 + -0.933161, -0.000000, 0.000000, 0.359460 + -0.933537, -0.000000, 0.000000, 0.358482 + -0.933912, -0.000000, 0.000000, 0.357504 + -0.934286, -0.000000, 0.000000, 0.356525 + -0.934659, -0.000000, 0.000000, 0.355547 + -0.935031, -0.000000, 0.000000, 0.354567 + -0.935401, -0.000000, 0.000000, 0.353588 + -0.935771, -0.000000, 0.000000, 0.352607 + -0.936140, -0.000000, 0.000000, 0.351627 + -0.936508, -0.000000, 0.000000, 0.350646 + -0.936875, -0.000000, 0.000000, 0.349665 + -0.937241, -0.000000, 0.000000, 0.348683 + -0.937605, -0.000000, 0.000000, 0.347701 + -0.937969, -0.000000, 0.000000, 0.346719 + -0.938332, -0.000000, 0.000000, 0.345736 + -0.938693, -0.000000, 0.000000, 0.344753 + -0.939054, -0.000000, 0.000000, 0.343770 + -0.939414, -0.000000, 0.000000, 0.342786 + -0.939772, -0.000000, 0.000000, 0.341801 + -0.940130, -0.000000, 0.000000, 0.340817 + -0.940486, -0.000000, 0.000000, 0.339832 + -0.940842, -0.000000, 0.000000, 0.338846 + -0.941196, -0.000000, 0.000000, 0.337861 + -0.941550, -0.000000, 0.000000, 0.336874 + -0.941902, -0.000000, 0.000000, 0.335888 + -0.942253, -0.000000, 0.000000, 0.334901 + -0.942604, -0.000000, 0.000000, 0.333914 + -0.942953, -0.000000, 0.000000, 0.332926 + -0.943301, -0.000000, 0.000000, 0.331938 + -0.943648, -0.000000, 0.000000, 0.330950 + -0.943994, -0.000000, 0.000000, 0.329961 + -0.944340, -0.000000, 0.000000, 0.328972 + -0.944684, -0.000000, 0.000000, 0.327983 + -0.945027, -0.000000, 0.000000, 0.326993 + -0.945369, -0.000000, 0.000000, 0.326003 + -0.945710, -0.000000, 0.000000, 0.325012 + -0.946050, -0.000000, 0.000000, 0.324021 + -0.946389, -0.000000, 0.000000, 0.323030 + -0.946727, -0.000000, 0.000000, 0.322039 + -0.947063, -0.000000, 0.000000, 0.321047 + -0.947399, -0.000000, 0.000000, 0.320055 + -0.947734, -0.000000, 0.000000, 0.319062 + -0.948068, -0.000000, 0.000000, 0.318069 + -0.948400, -0.000000, 0.000000, 0.317076 + -0.948732, -0.000000, 0.000000, 0.316082 + -0.949062, -0.000000, 0.000000, 0.315088 + -0.949392, -0.000000, 0.000000, 0.314094 + -0.949721, -0.000000, 0.000000, 0.313099 + -0.950048, -0.000000, 0.000000, 0.312104 + -0.950374, -0.000000, 0.000000, 0.311108 + -0.950700, -0.000000, 0.000000, 0.310113 + -0.951024, -0.000000, 0.000000, 0.309117 + -0.951347, -0.000000, 0.000000, 0.308120 + -0.951670, -0.000000, 0.000000, 0.307123 + -0.951991, -0.000000, 0.000000, 0.306126 + -0.952311, -0.000000, 0.000000, 0.305129 + -0.952630, -0.000000, 0.000000, 0.304131 + -0.952948, -0.000000, 0.000000, 0.303133 + -0.953265, -0.000000, 0.000000, 0.302135 + -0.953581, -0.000000, 0.000000, 0.301136 + -0.953896, -0.000000, 0.000000, 0.300137 + -0.954210, -0.000000, 0.000000, 0.299137 + -0.954523, -0.000000, 0.000000, 0.298138 + -0.954835, -0.000000, 0.000000, 0.297138 + -0.955145, -0.000000, 0.000000, 0.296137 + -0.955455, -0.000000, 0.000000, 0.295136 + -0.955764, -0.000000, 0.000000, 0.294135 + -0.956071, -0.000000, 0.000000, 0.293134 + -0.956378, -0.000000, 0.000000, 0.292132 + -0.956683, -0.000000, 0.000000, 0.291130 + -0.956988, -0.000000, 0.000000, 0.290128 + -0.957291, -0.000000, 0.000000, 0.289125 + -0.957594, -0.000000, 0.000000, 0.288122 + -0.957895, -0.000000, 0.000000, 0.287119 + -0.958195, -0.000000, 0.000000, 0.286116 + -0.958494, -0.000000, 0.000000, 0.285112 + -0.958792, -0.000000, 0.000000, 0.284107 + -0.959090, -0.000000, 0.000000, 0.283103 + -0.959386, -0.000000, 0.000000, 0.282098 + -0.959681, -0.000000, 0.000000, 0.281093 + -0.959975, -0.000000, 0.000000, 0.280087 + -0.960267, -0.000000, 0.000000, 0.279082 + -0.960559, -0.000000, 0.000000, 0.278076 + -0.960850, -0.000000, 0.000000, 0.277069 + -0.961140, -0.000000, 0.000000, 0.276062 + -0.961428, -0.000000, 0.000000, 0.275056 + -0.961716, -0.000000, 0.000000, 0.274048 + -0.962003, -0.000000, 0.000000, 0.273041 + -0.962288, -0.000000, 0.000000, 0.272033 + -0.962572, -0.000000, 0.000000, 0.271025 + -0.962856, -0.000000, 0.000000, 0.270016 + -0.963138, -0.000000, 0.000000, 0.269007 + -0.963419, -0.000000, 0.000000, 0.267998 + -0.963700, -0.000000, 0.000000, 0.266989 + -0.963979, -0.000000, 0.000000, 0.265979 + -0.964257, -0.000000, 0.000000, 0.264969 + -0.964534, -0.000000, 0.000000, 0.263959 + -0.964810, -0.000000, 0.000000, 0.262948 + -0.965085, -0.000000, 0.000000, 0.261938 + -0.965359, -0.000000, 0.000000, 0.260926 + -0.965631, -0.000000, 0.000000, 0.259915 + -0.965903, -0.000000, 0.000000, 0.258903 + -0.966174, -0.000000, 0.000000, 0.257891 + -0.966444, -0.000000, 0.000000, 0.256879 + -0.966712, -0.000000, 0.000000, 0.255867 + -0.966980, -0.000000, 0.000000, 0.254854 + -0.967246, -0.000000, 0.000000, 0.253841 + -0.967511, -0.000000, 0.000000, 0.252827 + -0.967776, -0.000000, 0.000000, 0.251814 + -0.968039, -0.000000, 0.000000, 0.250800 + -0.968301, -0.000000, 0.000000, 0.249786 + -0.968562, -0.000000, 0.000000, 0.248771 + -0.968822, -0.000000, 0.000000, 0.247756 + -0.969081, -0.000000, 0.000000, 0.246741 + -0.969339, -0.000000, 0.000000, 0.245726 + -0.969596, -0.000000, 0.000000, 0.244710 + -0.969852, -0.000000, 0.000000, 0.243695 + -0.970107, -0.000000, 0.000000, 0.242678 + -0.970360, -0.000000, 0.000000, 0.241662 + -0.970613, -0.000000, 0.000000, 0.240646 + -0.970865, -0.000000, 0.000000, 0.239629 + -0.971115, -0.000000, 0.000000, 0.238611 + -0.971365, -0.000000, 0.000000, 0.237594 + -0.971613, -0.000000, 0.000000, 0.236576 + -0.971860, -0.000000, 0.000000, 0.235558 + -0.972106, -0.000000, 0.000000, 0.234540 + -0.972352, -0.000000, 0.000000, 0.233522 + -0.972596, -0.000000, 0.000000, 0.232503 + -0.972839, -0.000000, 0.000000, 0.231484 + -0.973081, -0.000000, 0.000000, 0.230465 + -0.973322, -0.000000, 0.000000, 0.229445 + -0.973561, -0.000000, 0.000000, 0.228426 + -0.973800, -0.000000, 0.000000, 0.227406 + -0.974038, -0.000000, 0.000000, 0.226385 + -0.974274, -0.000000, 0.000000, 0.225365 + -0.974510, -0.000000, 0.000000, 0.224344 + -0.974744, -0.000000, 0.000000, 0.223323 + -0.974978, -0.000000, 0.000000, 0.222302 + -0.975210, -0.000000, 0.000000, 0.221281 + -0.975441, -0.000000, 0.000000, 0.220259 + -0.975672, -0.000000, 0.000000, 0.219237 + -0.975901, -0.000000, 0.000000, 0.218215 + -0.976129, -0.000000, 0.000000, 0.217192 + -0.976356, -0.000000, 0.000000, 0.216170 + -0.976582, -0.000000, 0.000000, 0.215147 + -0.976807, -0.000000, 0.000000, 0.214124 + -0.977030, -0.000000, 0.000000, 0.213100 + -0.977253, -0.000000, 0.000000, 0.212077 + -0.977475, -0.000000, 0.000000, 0.211053 + -0.977695, -0.000000, 0.000000, 0.210029 + -0.977915, -0.000000, 0.000000, 0.209005 + -0.978133, -0.000000, 0.000000, 0.207980 + -0.978350, -0.000000, 0.000000, 0.206955 + -0.978567, -0.000000, 0.000000, 0.205930 + -0.978782, -0.000000, 0.000000, 0.204905 + -0.978996, -0.000000, 0.000000, 0.203880 + -0.979209, -0.000000, 0.000000, 0.202854 + -0.979421, -0.000000, 0.000000, 0.201828 + -0.979632, -0.000000, 0.000000, 0.200802 + -0.979842, -0.000000, 0.000000, 0.199776 + -0.980050, -0.000000, 0.000000, 0.198749 + -0.980258, -0.000000, 0.000000, 0.197722 + -0.980465, -0.000000, 0.000000, 0.196695 + -0.980670, -0.000000, 0.000000, 0.195668 + -0.980875, -0.000000, 0.000000, 0.194641 + -0.981078, -0.000000, 0.000000, 0.193613 + -0.981280, -0.000000, 0.000000, 0.192585 + -0.981481, -0.000000, 0.000000, 0.191557 + -0.981682, -0.000000, 0.000000, 0.190529 + -0.981881, -0.000000, 0.000000, 0.189501 + -0.982079, -0.000000, 0.000000, 0.188472 + -0.982275, -0.000000, 0.000000, 0.187443 + -0.982471, -0.000000, 0.000000, 0.186414 + -0.982666, -0.000000, 0.000000, 0.185385 + -0.982860, -0.000000, 0.000000, 0.184355 + -0.983052, -0.000000, 0.000000, 0.183326 + -0.983244, -0.000000, 0.000000, 0.182296 + -0.983434, -0.000000, 0.000000, 0.181266 + -0.983624, -0.000000, 0.000000, 0.180235 + -0.983812, -0.000000, 0.000000, 0.179205 + -0.983999, -0.000000, 0.000000, 0.178174 + -0.984185, -0.000000, 0.000000, 0.177143 + -0.984370, -0.000000, 0.000000, 0.176112 + -0.984554, -0.000000, 0.000000, 0.175081 + -0.984737, -0.000000, 0.000000, 0.174049 + -0.984919, -0.000000, 0.000000, 0.173018 + -0.985099, -0.000000, 0.000000, 0.171986 + -0.985279, -0.000000, 0.000000, 0.170954 + -0.985458, -0.000000, 0.000000, 0.169922 + -0.985635, -0.000000, 0.000000, 0.168889 + -0.985811, -0.000000, 0.000000, 0.167857 + -0.985987, -0.000000, 0.000000, 0.166824 + -0.986161, -0.000000, 0.000000, 0.165791 + -0.986334, -0.000000, 0.000000, 0.164758 + -0.986506, -0.000000, 0.000000, 0.163724 + -0.986677, -0.000000, 0.000000, 0.162691 + -0.986847, -0.000000, 0.000000, 0.161657 + -0.987016, -0.000000, 0.000000, 0.160623 + -0.987183, -0.000000, 0.000000, 0.159589 + -0.987350, -0.000000, 0.000000, 0.158555 + -0.987516, -0.000000, 0.000000, 0.157521 + -0.987680, -0.000000, 0.000000, 0.156486 + -0.987844, -0.000000, 0.000000, 0.155451 + -0.988006, -0.000000, 0.000000, 0.154417 + -0.988167, -0.000000, 0.000000, 0.153382 + -0.988327, -0.000000, 0.000000, 0.152346 + -0.988486, -0.000000, 0.000000, 0.151311 + -0.988644, -0.000000, 0.000000, 0.150275 + -0.988801, -0.000000, 0.000000, 0.149240 + -0.988957, -0.000000, 0.000000, 0.148204 + -0.989112, -0.000000, 0.000000, 0.147168 + -0.989265, -0.000000, 0.000000, 0.146131 + -0.989418, -0.000000, 0.000000, 0.145095 + -0.989569, -0.000000, 0.000000, 0.144058 + -0.989720, -0.000000, 0.000000, 0.143022 + -0.989869, -0.000000, 0.000000, 0.141985 + -0.990017, -0.000000, 0.000000, 0.140948 + -0.990164, -0.000000, 0.000000, 0.139911 + -0.990310, -0.000000, 0.000000, 0.138873 + -0.990455, -0.000000, 0.000000, 0.137836 + -0.990599, -0.000000, 0.000000, 0.136798 + -0.990742, -0.000000, 0.000000, 0.135761 + -0.990883, -0.000000, 0.000000, 0.134723 + -0.991024, -0.000000, 0.000000, 0.133685 + -0.991163, -0.000000, 0.000000, 0.132646 + -0.991302, -0.000000, 0.000000, 0.131608 + -0.991439, -0.000000, 0.000000, 0.130569 + -0.991575, -0.000000, 0.000000, 0.129531 + -0.991711, -0.000000, 0.000000, 0.128492 + -0.991845, -0.000000, 0.000000, 0.127453 + -0.991978, -0.000000, 0.000000, 0.126414 + -0.992109, -0.000000, 0.000000, 0.125375 + -0.992240, -0.000000, 0.000000, 0.124335 + -0.992370, -0.000000, 0.000000, 0.123296 + -0.992499, -0.000000, 0.000000, 0.122256 + -0.992626, -0.000000, 0.000000, 0.121217 + -0.992753, -0.000000, 0.000000, 0.120177 + -0.992878, -0.000000, 0.000000, 0.119137 + -0.993002, -0.000000, 0.000000, 0.118097 + -0.993125, -0.000000, 0.000000, 0.117056 + -0.993247, -0.000000, 0.000000, 0.116016 + -0.993368, -0.000000, 0.000000, 0.114975 + -0.993488, -0.000000, 0.000000, 0.113935 + -0.993607, -0.000000, 0.000000, 0.112894 + -0.993725, -0.000000, 0.000000, 0.111853 + -0.993841, -0.000000, 0.000000, 0.110812 + -0.993957, -0.000000, 0.000000, 0.109771 + -0.994071, -0.000000, 0.000000, 0.108729 + -0.994185, -0.000000, 0.000000, 0.107688 + -0.994297, -0.000000, 0.000000, 0.106647 + -0.994408, -0.000000, 0.000000, 0.105605 + -0.994518, -0.000000, 0.000000, 0.104563 + -0.994627, -0.000000, 0.000000, 0.103521 + -0.994735, -0.000000, 0.000000, 0.102479 + -0.994842, -0.000000, 0.000000, 0.101437 + -0.994948, -0.000000, 0.000000, 0.100395 + -0.995052, -0.000000, 0.000000, 0.099353 + -0.995156, -0.000000, 0.000000, 0.098310 + -0.995258, -0.000000, 0.000000, 0.097268 + -0.995360, -0.000000, 0.000000, 0.096225 + -0.995460, -0.000000, 0.000000, 0.095182 + -0.995559, -0.000000, 0.000000, 0.094140 + -0.995657, -0.000000, 0.000000, 0.093097 + -0.995754, -0.000000, 0.000000, 0.092054 + -0.995850, -0.000000, 0.000000, 0.091010 + -0.995945, -0.000000, 0.000000, 0.089967 + -0.996038, -0.000000, 0.000000, 0.088924 + -0.996131, -0.000000, 0.000000, 0.087880 + -0.996223, -0.000000, 0.000000, 0.086837 + -0.996313, -0.000000, 0.000000, 0.085793 + -0.996402, -0.000000, 0.000000, 0.084750 + -0.996491, -0.000000, 0.000000, 0.083706 + -0.996578, -0.000000, 0.000000, 0.082662 + -0.996664, -0.000000, 0.000000, 0.081618 + -0.996749, -0.000000, 0.000000, 0.080574 + -0.996833, -0.000000, 0.000000, 0.079529 + -0.996915, -0.000000, 0.000000, 0.078485 + -0.996997, -0.000000, 0.000000, 0.077441 + -0.997078, -0.000000, 0.000000, 0.076396 + -0.997157, -0.000000, 0.000000, 0.075352 + -0.997235, -0.000000, 0.000000, 0.074307 + -0.997313, -0.000000, 0.000000, 0.073263 + -0.997389, -0.000000, 0.000000, 0.072218 + -0.997464, -0.000000, 0.000000, 0.071173 + -0.997538, -0.000000, 0.000000, 0.070128 + -0.997611, -0.000000, 0.000000, 0.069083 + -0.997683, -0.000000, 0.000000, 0.068038 + -0.997753, -0.000000, 0.000000, 0.066993 + -0.997823, -0.000000, 0.000000, 0.065948 + -0.997892, -0.000000, 0.000000, 0.064902 + -0.997959, -0.000000, 0.000000, 0.063857 + -0.998025, -0.000000, 0.000000, 0.062811 + -0.998091, -0.000000, 0.000000, 0.061766 + -0.998155, -0.000000, 0.000000, 0.060720 + -0.998218, -0.000000, 0.000000, 0.059675 + -0.998280, -0.000000, 0.000000, 0.058629 + -0.998341, -0.000000, 0.000000, 0.057583 + -0.998400, -0.000000, 0.000000, 0.056537 + -0.998459, -0.000000, 0.000000, 0.055491 + -0.998517, -0.000000, 0.000000, 0.054445 + -0.998573, -0.000000, 0.000000, 0.053399 + -0.998629, -0.000000, 0.000000, 0.052353 + -0.998683, -0.000000, 0.000000, 0.051307 + -0.998736, -0.000000, 0.000000, 0.050261 + -0.998788, -0.000000, 0.000000, 0.049215 + -0.998839, -0.000000, 0.000000, 0.048169 + -0.998889, -0.000000, 0.000000, 0.047122 + -0.998938, -0.000000, 0.000000, 0.046076 + -0.998986, -0.000000, 0.000000, 0.045029 + -0.999032, -0.000000, 0.000000, 0.043983 + -0.999078, -0.000000, 0.000000, 0.042936 + -0.999122, -0.000000, 0.000000, 0.041890 + -0.999166, -0.000000, 0.000000, 0.040843 + -0.999208, -0.000000, 0.000000, 0.039796 + -0.999249, -0.000000, 0.000000, 0.038750 + -0.999289, -0.000000, 0.000000, 0.037703 + -0.999328, -0.000000, 0.000000, 0.036656 + -0.999366, -0.000000, 0.000000, 0.035609 + -0.999403, -0.000000, 0.000000, 0.034562 + -0.999438, -0.000000, 0.000000, 0.033515 + -0.999473, -0.000000, 0.000000, 0.032468 + -0.999506, -0.000000, 0.000000, 0.031421 + -0.999539, -0.000000, 0.000000, 0.030374 + -0.999570, -0.000000, 0.000000, 0.029327 + -0.999600, -0.000000, 0.000000, 0.028280 + -0.999629, -0.000000, 0.000000, 0.027233 + -0.999657, -0.000000, 0.000000, 0.026186 + -0.999684, -0.000000, 0.000000, 0.025138 + -0.999710, -0.000000, 0.000000, 0.024091 + -0.999734, -0.000000, 0.000000, 0.023044 + -0.999758, -0.000000, 0.000000, 0.021997 + -0.999781, -0.000000, 0.000000, 0.020949 + -0.999802, -0.000000, 0.000000, 0.019902 + -0.999822, -0.000000, 0.000000, 0.018855 + -0.999841, -0.000000, 0.000000, 0.017807 + -0.999860, -0.000000, 0.000000, 0.016760 + -0.999877, -0.000000, 0.000000, 0.015713 + -0.999892, -0.000000, 0.000000, 0.014665 + -0.999907, -0.000000, 0.000000, 0.013618 + -0.999921, -0.000000, 0.000000, 0.012570 + -0.999934, -0.000000, 0.000000, 0.011523 + -0.999945, -0.000000, 0.000000, 0.010475 + -0.999956, -0.000000, 0.000000, 0.009428 + -0.999965, -0.000000, 0.000000, 0.008380 + -0.999973, -0.000000, 0.000000, 0.007333 + -0.999980, -0.000000, 0.000000, 0.006285 + -0.999986, -0.000000, 0.000000, 0.005238 + -0.999991, -0.000000, 0.000000, 0.004190 + -0.999995, -0.000000, 0.000000, 0.003143 + -0.999998, -0.000000, 0.000000, 0.002095 + -0.999999, -0.000000, 0.000000, 0.001048 + -1.000000, -0.000000, 0.000000, 0.000000 diff --git a/scripts/trajectories/full-circle-T15.0-w0.0.csv b/scripts/trajectories/full-circle-T15.0-w0.0.csv index 0894809fd1..6963663747 100644 --- a/scripts/trajectories/full-circle-T15.0-w0.0.csv +++ b/scripts/trajectories/full-circle-T15.0-w0.0.csv @@ -1,3000 +1,3000 @@ -0, 1.000000, 0.000000, 0.000000, 0.000000 -1, 1.000000, 0.000000, 0.000000, 0.000000 -2, 1.000000, 0.000000, 0.000000, 0.000000 -3, 1.000000, 0.000000, 0.000000, 0.000000 -4, 1.000000, 0.000000, 0.000000, 0.000000 -5, 1.000000, 0.000000, 0.000000, 0.000000 -6, 1.000000, 0.000000, 0.000000, 0.000000 -7, 1.000000, 0.000000, 0.000000, 0.000000 -8, 1.000000, 0.000000, 0.000000, 0.000000 -9, 1.000000, 0.000000, 0.000000, 0.000000 -10, 1.000000, 0.000000, 0.000000, 0.000000 -11, 1.000000, 0.000000, 0.000000, 0.000000 -12, 1.000000, 0.000000, 0.000000, 0.000000 -13, 1.000000, 0.000000, 0.000000, 0.000000 -14, 1.000000, 0.000000, 0.000000, 0.000000 -15, 1.000000, 0.000000, 0.000000, 0.000000 -16, 1.000000, 0.000000, 0.000000, 0.000000 -17, 1.000000, 0.000000, 0.000000, 0.000000 -18, 1.000000, 0.000000, 0.000000, 0.000000 -19, 1.000000, 0.000000, 0.000000, 0.000000 -20, 1.000000, 0.000000, 0.000000, 0.000000 -21, 1.000000, 0.000000, 0.000000, 0.000000 -22, 1.000000, 0.000000, 0.000000, 0.000000 -23, 1.000000, 0.000000, 0.000000, 0.000000 -24, 1.000000, 0.000000, 0.000000, 0.000000 -25, 1.000000, 0.000000, 0.000000, 0.000000 -26, 1.000000, 0.000000, 0.000000, 0.000000 -27, 1.000000, 0.000000, 0.000000, 0.000000 -28, 1.000000, 0.000000, 0.000000, 0.000000 -29, 1.000000, 0.000000, 0.000000, 0.000000 -30, 1.000000, 0.000000, 0.000000, 0.000000 -31, 1.000000, 0.000000, 0.000000, 0.000000 -32, 1.000000, 0.000000, 0.000000, 0.000000 -33, 1.000000, 0.000000, 0.000000, 0.000000 -34, 1.000000, 0.000000, 0.000000, 0.000000 -35, 1.000000, 0.000000, 0.000000, 0.000000 -36, 1.000000, 0.000000, 0.000000, 0.000000 -37, 1.000000, 0.000000, 0.000000, 0.000000 -38, 1.000000, 0.000000, 0.000000, 0.000000 -39, 1.000000, 0.000000, 0.000000, 0.000000 -40, 1.000000, 0.000000, 0.000000, 0.000000 -41, 1.000000, 0.000000, 0.000000, 0.000000 -42, 1.000000, 0.000000, 0.000000, 0.000000 -43, 1.000000, 0.000000, 0.000000, 0.000000 -44, 1.000000, 0.000000, 0.000000, 0.000000 -45, 1.000000, 0.000000, 0.000000, 0.000000 -46, 1.000000, 0.000000, 0.000000, 0.000000 -47, 1.000000, 0.000000, 0.000000, 0.000000 -48, 1.000000, 0.000000, 0.000000, 0.000000 -49, 1.000000, 0.000000, 0.000000, 0.000000 -50, 1.000000, 0.000000, 0.000000, 0.000000 -51, 1.000000, 0.000000, 0.000000, 0.000000 -52, 1.000000, 0.000000, 0.000000, 0.000000 -53, 1.000000, 0.000000, 0.000000, 0.000000 -54, 1.000000, 0.000000, 0.000000, 0.000000 -55, 1.000000, 0.000000, 0.000000, 0.000000 -56, 1.000000, 0.000000, 0.000000, 0.000000 -57, 1.000000, 0.000000, 0.000000, 0.000000 -58, 1.000000, 0.000000, 0.000000, 0.000000 -59, 1.000000, 0.000000, 0.000000, 0.000000 -60, 1.000000, 0.000000, 0.000000, 0.000000 -61, 1.000000, 0.000000, 0.000000, 0.000000 -62, 1.000000, 0.000000, 0.000000, 0.000000 -63, 1.000000, 0.000000, 0.000000, 0.000000 -64, 1.000000, 0.000000, 0.000000, 0.000000 -65, 1.000000, 0.000000, 0.000000, 0.000000 -66, 1.000000, 0.000000, 0.000000, 0.000000 -67, 1.000000, 0.000000, 0.000000, 0.000000 -68, 1.000000, 0.000000, 0.000000, 0.000000 -69, 1.000000, 0.000000, 0.000000, 0.000000 -70, 1.000000, 0.000000, 0.000000, 0.000000 -71, 1.000000, 0.000000, 0.000000, 0.000000 -72, 1.000000, 0.000000, 0.000000, 0.000000 -73, 1.000000, 0.000000, 0.000000, 0.000000 -74, 1.000000, 0.000000, 0.000000, 0.000000 -75, 1.000000, 0.000000, 0.000000, 0.000000 -76, 1.000000, 0.000000, 0.000000, 0.000000 -77, 1.000000, 0.000000, 0.000000, 0.000000 -78, 1.000000, 0.000000, 0.000000, 0.000000 -79, 1.000000, 0.000000, 0.000000, 0.000000 -80, 1.000000, 0.000000, 0.000000, 0.000000 -81, 1.000000, 0.000000, 0.000000, 0.000000 -82, 1.000000, 0.000000, 0.000000, 0.000000 -83, 1.000000, 0.000000, 0.000000, 0.000000 -84, 1.000000, 0.000000, 0.000000, 0.000000 -85, 1.000000, 0.000000, 0.000000, 0.000000 -86, 1.000000, 0.000000, 0.000000, 0.000000 -87, 1.000000, 0.000000, 0.000000, 0.000000 -88, 1.000000, 0.000000, 0.000000, 0.000000 -89, 1.000000, 0.000000, 0.000000, 0.000000 -90, 1.000000, 0.000000, 0.000000, 0.000000 -91, 1.000000, 0.000000, 0.000000, 0.000000 -92, 1.000000, 0.000000, 0.000000, 0.000000 -93, 1.000000, 0.000000, 0.000000, 0.000000 -94, 1.000000, 0.000000, 0.000000, 0.000000 -95, 1.000000, 0.000000, 0.000000, 0.000000 -96, 1.000000, 0.000000, 0.000000, 0.000000 -97, 1.000000, 0.000000, 0.000000, 0.000000 -98, 1.000000, 0.000000, 0.000000, 0.000000 -99, 1.000000, 0.000000, 0.000000, 0.000000 -100, 1.000000, 0.000000, 0.000000, 0.000000 -101, 1.000000, 0.000000, 0.000000, 0.000000 -102, 1.000000, 0.000000, 0.000000, 0.000000 -103, 1.000000, 0.000000, 0.000000, 0.000000 -104, 1.000000, 0.000000, 0.000000, 0.000000 -105, 1.000000, 0.000000, 0.000000, 0.000000 -106, 1.000000, 0.000000, 0.000000, 0.000000 -107, 1.000000, 0.000000, 0.000000, 0.000000 -108, 1.000000, 0.000000, 0.000000, 0.000000 -109, 1.000000, 0.000000, 0.000000, 0.000000 -110, 1.000000, 0.000000, 0.000000, 0.000000 -111, 1.000000, 0.000000, 0.000000, 0.000000 -112, 1.000000, 0.000000, 0.000000, 0.000000 -113, 1.000000, 0.000000, 0.000000, 0.000000 -114, 1.000000, 0.000000, 0.000000, 0.000000 -115, 1.000000, 0.000000, 0.000000, 0.000000 -116, 1.000000, 0.000000, 0.000000, 0.000000 -117, 1.000000, 0.000000, 0.000000, 0.000000 -118, 1.000000, 0.000000, 0.000000, 0.000000 -119, 1.000000, 0.000000, 0.000000, 0.000000 -120, 1.000000, 0.000000, 0.000000, 0.000000 -121, 1.000000, 0.000000, 0.000000, 0.000000 -122, 1.000000, 0.000000, 0.000000, 0.000000 -123, 1.000000, 0.000000, 0.000000, 0.000000 -124, 1.000000, 0.000000, 0.000000, 0.000000 -125, 1.000000, 0.000000, 0.000000, 0.000000 -126, 1.000000, 0.000000, 0.000000, 0.000000 -127, 1.000000, 0.000000, 0.000000, 0.000000 -128, 1.000000, 0.000000, 0.000000, 0.000000 -129, 1.000000, 0.000000, 0.000000, 0.000000 -130, 1.000000, 0.000000, 0.000000, 0.000000 -131, 1.000000, 0.000000, 0.000000, 0.000000 -132, 1.000000, 0.000000, 0.000000, 0.000000 -133, 1.000000, 0.000000, 0.000000, 0.000000 -134, 1.000000, 0.000000, 0.000000, 0.000000 -135, 1.000000, 0.000000, 0.000000, 0.000000 -136, 1.000000, 0.000000, 0.000000, 0.000000 -137, 1.000000, 0.000000, 0.000000, 0.000000 -138, 1.000000, 0.000000, 0.000000, 0.000000 -139, 1.000000, 0.000000, 0.000000, 0.000000 -140, 1.000000, 0.000000, 0.000000, 0.000000 -141, 1.000000, 0.000000, 0.000000, 0.000000 -142, 1.000000, 0.000000, 0.000000, 0.000000 -143, 1.000000, 0.000000, 0.000000, 0.000000 -144, 1.000000, 0.000000, 0.000000, 0.000000 -145, 1.000000, 0.000000, 0.000000, 0.000000 -146, 1.000000, 0.000000, 0.000000, 0.000000 -147, 1.000000, 0.000000, 0.000000, 0.000000 -148, 1.000000, 0.000000, 0.000000, 0.000000 -149, 1.000000, 0.000000, 0.000000, 0.000000 -150, 1.000000, 0.000000, 0.000000, 0.000000 -151, 1.000000, 0.000000, 0.000000, 0.000000 -152, 1.000000, 0.000000, 0.000000, 0.000000 -153, 1.000000, 0.000000, 0.000000, 0.000000 -154, 1.000000, 0.000000, 0.000000, 0.000000 -155, 1.000000, 0.000000, 0.000000, 0.000000 -156, 1.000000, 0.000000, 0.000000, 0.000000 -157, 1.000000, 0.000000, 0.000000, 0.000000 -158, 1.000000, 0.000000, 0.000000, 0.000000 -159, 1.000000, 0.000000, 0.000000, 0.000000 -160, 1.000000, 0.000000, 0.000000, 0.000000 -161, 1.000000, 0.000000, 0.000000, 0.000000 -162, 1.000000, 0.000000, 0.000000, 0.000000 -163, 1.000000, 0.000000, 0.000000, 0.000000 -164, 1.000000, 0.000000, 0.000000, 0.000000 -165, 1.000000, 0.000000, 0.000000, 0.000000 -166, 1.000000, 0.000000, 0.000000, 0.000000 -167, 1.000000, 0.000000, 0.000000, 0.000000 -168, 1.000000, 0.000000, 0.000000, 0.000000 -169, 1.000000, 0.000000, 0.000000, 0.000000 -170, 1.000000, 0.000000, 0.000000, 0.000000 -171, 1.000000, 0.000000, 0.000000, 0.000000 -172, 1.000000, 0.000000, 0.000000, 0.000000 -173, 1.000000, 0.000000, 0.000000, 0.000000 -174, 1.000000, 0.000000, 0.000000, 0.000000 -175, 1.000000, 0.000000, 0.000000, 0.000000 -176, 1.000000, 0.000000, 0.000000, 0.000000 -177, 1.000000, 0.000000, 0.000000, 0.000000 -178, 1.000000, 0.000000, 0.000000, 0.000000 -179, 1.000000, 0.000000, 0.000000, 0.000000 -180, 1.000000, 0.000000, 0.000000, 0.000000 -181, 1.000000, 0.000000, 0.000000, 0.000000 -182, 1.000000, 0.000000, 0.000000, 0.000000 -183, 1.000000, 0.000000, 0.000000, 0.000000 -184, 1.000000, 0.000000, 0.000000, 0.000000 -185, 1.000000, 0.000000, 0.000000, 0.000000 -186, 1.000000, 0.000000, 0.000000, 0.000000 -187, 1.000000, 0.000000, 0.000000, 0.000000 -188, 1.000000, 0.000000, 0.000000, 0.000000 -189, 1.000000, 0.000000, 0.000000, 0.000000 -190, 1.000000, 0.000000, 0.000000, 0.000000 -191, 1.000000, 0.000000, 0.000000, 0.000000 -192, 1.000000, 0.000000, 0.000000, 0.000000 -193, 1.000000, 0.000000, 0.000000, 0.000000 -194, 1.000000, 0.000000, 0.000000, 0.000000 -195, 1.000000, 0.000000, 0.000000, 0.000000 -196, 1.000000, 0.000000, 0.000000, 0.000000 -197, 1.000000, 0.000000, 0.000000, 0.000000 -198, 1.000000, 0.000000, 0.000000, 0.000000 -199, 1.000000, 0.000000, 0.000000, 0.000000 -200, 1.000000, 0.000000, 0.000000, 0.000000 -201, 1.000000, 0.000000, 0.000000, 0.000000 -202, 1.000000, 0.000000, 0.000000, 0.000000 -203, 1.000000, 0.000000, 0.000000, 0.000000 -204, 1.000000, 0.000000, 0.000000, 0.000000 -205, 1.000000, 0.000000, 0.000000, 0.000000 -206, 1.000000, 0.000000, 0.000000, 0.000000 -207, 1.000000, 0.000000, 0.000000, 0.000000 -208, 1.000000, 0.000000, 0.000000, 0.000000 -209, 1.000000, 0.000000, 0.000000, 0.000000 -210, 1.000000, 0.000000, 0.000000, 0.000000 -211, 1.000000, 0.000000, 0.000000, 0.000000 -212, 1.000000, 0.000000, 0.000000, 0.000000 -213, 1.000000, 0.000000, 0.000000, 0.000000 -214, 1.000000, 0.000000, 0.000000, 0.000000 -215, 1.000000, 0.000000, 0.000000, 0.000000 -216, 1.000000, 0.000000, 0.000000, 0.000000 -217, 1.000000, 0.000000, 0.000000, 0.000000 -218, 1.000000, 0.000000, 0.000000, 0.000000 -219, 1.000000, 0.000000, 0.000000, 0.000000 -220, 1.000000, 0.000000, 0.000000, 0.000000 -221, 1.000000, 0.000000, 0.000000, 0.000000 -222, 1.000000, 0.000000, 0.000000, 0.000000 -223, 1.000000, 0.000000, 0.000000, 0.000000 -224, 1.000000, 0.000000, 0.000000, 0.000000 -225, 1.000000, 0.000000, 0.000000, 0.000000 -226, 1.000000, 0.000000, 0.000000, 0.000000 -227, 1.000000, 0.000000, 0.000000, 0.000000 -228, 1.000000, 0.000000, 0.000000, 0.000000 -229, 1.000000, 0.000000, 0.000000, 0.000000 -230, 1.000000, 0.000000, 0.000000, 0.000000 -231, 1.000000, 0.000000, 0.000000, 0.000000 -232, 1.000000, 0.000000, 0.000000, 0.000000 -233, 1.000000, 0.000000, 0.000000, 0.000000 -234, 1.000000, 0.000000, 0.000000, 0.000000 -235, 1.000000, 0.000000, 0.000000, 0.000000 -236, 1.000000, 0.000000, 0.000000, 0.000000 -237, 1.000000, 0.000000, 0.000000, 0.000000 -238, 1.000000, 0.000000, 0.000000, 0.000000 -239, 1.000000, 0.000000, 0.000000, 0.000000 -240, 1.000000, 0.000000, 0.000000, 0.000000 -241, 1.000000, 0.000000, 0.000000, 0.000000 -242, 1.000000, 0.000000, 0.000000, 0.000000 -243, 1.000000, 0.000000, 0.000000, 0.000000 -244, 1.000000, 0.000000, 0.000000, 0.000000 -245, 1.000000, 0.000000, 0.000000, 0.000000 -246, 1.000000, 0.000000, 0.000000, 0.000000 -247, 1.000000, 0.000000, 0.000000, 0.000000 -248, 1.000000, 0.000000, 0.000000, 0.000000 -249, 1.000000, 0.000000, 0.000000, 0.000000 -250, 1.000000, 0.000000, 0.000000, 0.000000 -251, 1.000000, 0.000000, 0.000000, 0.000000 -252, 1.000000, 0.000000, 0.000000, 0.000000 -253, 1.000000, 0.000000, 0.000000, 0.000000 -254, 1.000000, 0.000000, 0.000000, 0.000000 -255, 1.000000, 0.000000, 0.000000, 0.000000 -256, 1.000000, 0.000000, 0.000000, 0.000000 -257, 1.000000, 0.000000, 0.000000, 0.000000 -258, 1.000000, 0.000000, 0.000000, 0.000000 -259, 1.000000, 0.000000, 0.000000, 0.000000 -260, 1.000000, 0.000000, 0.000000, 0.000000 -261, 1.000000, 0.000000, 0.000000, 0.000000 -262, 1.000000, 0.000000, 0.000000, 0.000000 -263, 1.000000, 0.000000, 0.000000, 0.000000 -264, 1.000000, 0.000000, 0.000000, 0.000000 -265, 1.000000, 0.000000, 0.000000, 0.000000 -266, 1.000000, 0.000000, 0.000000, 0.000000 -267, 1.000000, 0.000000, 0.000000, 0.000000 -268, 1.000000, 0.000000, 0.000000, 0.000000 -269, 1.000000, 0.000000, 0.000000, 0.000000 -270, 1.000000, 0.000000, 0.000000, 0.000000 -271, 1.000000, 0.000000, 0.000000, 0.000000 -272, 1.000000, 0.000000, 0.000000, 0.000000 -273, 1.000000, 0.000000, 0.000000, 0.000000 -274, 1.000000, 0.000000, 0.000000, 0.000000 -275, 1.000000, 0.000000, 0.000000, 0.000000 -276, 1.000000, 0.000000, 0.000000, 0.000000 -277, 1.000000, 0.000000, 0.000000, 0.000000 -278, 1.000000, 0.000000, 0.000000, 0.000000 -279, 1.000000, 0.000000, 0.000000, 0.000000 -280, 1.000000, 0.000000, 0.000000, 0.000000 -281, 1.000000, 0.000000, 0.000000, 0.000000 -282, 1.000000, 0.000000, 0.000000, 0.000000 -283, 1.000000, 0.000000, 0.000000, 0.000000 -284, 1.000000, 0.000000, 0.000000, 0.000000 -285, 1.000000, 0.000000, 0.000000, 0.000000 -286, 1.000000, 0.000000, 0.000000, 0.000000 -287, 1.000000, 0.000000, 0.000000, 0.000000 -288, 1.000000, 0.000000, 0.000000, 0.000000 -289, 1.000000, 0.000000, 0.000000, 0.000000 -290, 1.000000, 0.000000, 0.000000, 0.000000 -291, 1.000000, 0.000000, 0.000000, 0.000000 -292, 1.000000, 0.000000, 0.000000, 0.000000 -293, 1.000000, 0.000000, 0.000000, 0.000000 -294, 1.000000, 0.000000, 0.000000, 0.000000 -295, 1.000000, 0.000000, 0.000000, 0.000000 -296, 1.000000, 0.000000, 0.000000, 0.000000 -297, 1.000000, 0.000000, 0.000000, 0.000000 -298, 1.000000, 0.000000, 0.000000, 0.000000 -299, 1.000000, 0.000000, 0.000000, 0.000000 -300, 1.000000, 0.000000, 0.000000, 0.000000 -301, 1.000000, 0.000000, 0.000000, 0.000000 -302, 1.000000, 0.000000, 0.000000, 0.000000 -303, 1.000000, 0.000000, 0.000000, 0.000000 -304, 1.000000, 0.000000, 0.000000, 0.000000 -305, 1.000000, 0.000000, 0.000000, 0.000000 -306, 1.000000, 0.000000, 0.000000, 0.000000 -307, 1.000000, 0.000000, 0.000000, 0.000000 -308, 1.000000, 0.000000, 0.000000, 0.000000 -309, 1.000000, 0.000000, 0.000000, 0.000000 -310, 1.000000, 0.000000, 0.000000, 0.000000 -311, 1.000000, 0.000000, 0.000000, 0.000000 -312, 1.000000, 0.000000, 0.000000, 0.000000 -313, 1.000000, 0.000000, 0.000000, 0.000000 -314, 1.000000, 0.000000, 0.000000, 0.000000 -315, 1.000000, 0.000000, 0.000000, 0.000000 -316, 1.000000, 0.000000, 0.000000, 0.000000 -317, 1.000000, 0.000000, 0.000000, 0.000000 -318, 1.000000, 0.000000, 0.000000, 0.000000 -319, 1.000000, 0.000000, 0.000000, 0.000000 -320, 1.000000, 0.000000, 0.000000, 0.000000 -321, 1.000000, 0.000000, 0.000000, 0.000000 -322, 1.000000, 0.000000, 0.000000, 0.000000 -323, 1.000000, 0.000000, 0.000000, 0.000000 -324, 1.000000, 0.000000, 0.000000, 0.000000 -325, 1.000000, 0.000000, 0.000000, 0.000000 -326, 1.000000, 0.000000, 0.000000, 0.000000 -327, 1.000000, 0.000000, 0.000000, 0.000000 -328, 1.000000, 0.000000, 0.000000, 0.000000 -329, 1.000000, 0.000000, 0.000000, 0.000000 -330, 1.000000, 0.000000, 0.000000, 0.000000 -331, 1.000000, 0.000000, 0.000000, 0.000000 -332, 1.000000, 0.000000, 0.000000, 0.000000 -333, 1.000000, 0.000000, 0.000000, 0.000000 -334, 1.000000, 0.000000, 0.000000, 0.000000 -335, 1.000000, 0.000000, 0.000000, 0.000000 -336, 1.000000, 0.000000, 0.000000, 0.000000 -337, 1.000000, 0.000000, 0.000000, 0.000000 -338, 1.000000, 0.000000, 0.000000, 0.000000 -339, 1.000000, 0.000000, 0.000000, 0.000000 -340, 1.000000, 0.000000, 0.000000, 0.000000 -341, 1.000000, 0.000000, 0.000000, 0.000000 -342, 1.000000, 0.000000, 0.000000, 0.000000 -343, 1.000000, 0.000000, 0.000000, 0.000000 -344, 1.000000, 0.000000, 0.000000, 0.000000 -345, 1.000000, 0.000000, 0.000000, 0.000000 -346, 1.000000, 0.000000, 0.000000, 0.000000 -347, 1.000000, 0.000000, 0.000000, 0.000000 -348, 1.000000, 0.000000, 0.000000, 0.000000 -349, 1.000000, 0.000000, 0.000000, 0.000000 -350, 1.000000, 0.000000, 0.000000, 0.000000 -351, 1.000000, 0.000000, 0.000000, 0.000000 -352, 1.000000, 0.000000, 0.000000, 0.000000 -353, 1.000000, 0.000000, 0.000000, 0.000000 -354, 1.000000, 0.000000, 0.000000, 0.000000 -355, 1.000000, 0.000000, 0.000000, 0.000000 -356, 1.000000, 0.000000, 0.000000, 0.000000 -357, 1.000000, 0.000000, 0.000000, 0.000000 -358, 1.000000, 0.000000, 0.000000, 0.000000 -359, 1.000000, 0.000000, 0.000000, 0.000000 -360, 1.000000, 0.000000, 0.000000, 0.000000 -361, 1.000000, 0.000000, 0.000000, 0.000000 -362, 1.000000, 0.000000, 0.000000, 0.000000 -363, 1.000000, 0.000000, 0.000000, 0.000000 -364, 1.000000, 0.000000, 0.000000, 0.000000 -365, 1.000000, 0.000000, 0.000000, 0.000000 -366, 1.000000, 0.000000, 0.000000, 0.000000 -367, 1.000000, 0.000000, 0.000000, 0.000000 -368, 1.000000, 0.000000, 0.000000, 0.000000 -369, 1.000000, 0.000000, 0.000000, 0.000000 -370, 1.000000, 0.000000, 0.000000, 0.000000 -371, 1.000000, 0.000000, 0.000000, 0.000000 -372, 1.000000, 0.000000, 0.000000, 0.000000 -373, 1.000000, 0.000000, 0.000000, 0.000000 -374, 1.000000, 0.000000, 0.000000, 0.000000 -375, 1.000000, 0.000000, 0.000000, 0.000000 -376, 1.000000, 0.000000, 0.000000, 0.000000 -377, 1.000000, 0.000000, 0.000000, 0.000000 -378, 1.000000, 0.000000, 0.000000, 0.000000 -379, 1.000000, 0.000000, 0.000000, 0.000000 -380, 1.000000, 0.000000, 0.000000, 0.000000 -381, 1.000000, 0.000000, 0.000000, 0.000000 -382, 1.000000, 0.000000, 0.000000, 0.000000 -383, 1.000000, 0.000000, 0.000000, 0.000000 -384, 1.000000, 0.000000, 0.000000, 0.000000 -385, 1.000000, 0.000000, 0.000000, 0.000000 -386, 1.000000, 0.000000, 0.000000, 0.000000 -387, 1.000000, 0.000000, 0.000000, 0.000000 -388, 1.000000, 0.000000, 0.000000, 0.000000 -389, 1.000000, 0.000000, 0.000000, 0.000000 -390, 1.000000, 0.000000, 0.000000, 0.000000 -391, 1.000000, 0.000000, 0.000000, 0.000000 -392, 1.000000, 0.000000, 0.000000, 0.000000 -393, 1.000000, 0.000000, 0.000000, 0.000000 -394, 1.000000, 0.000000, 0.000000, 0.000000 -395, 1.000000, 0.000000, 0.000000, 0.000000 -396, 1.000000, 0.000000, 0.000000, 0.000000 -397, 1.000000, 0.000000, 0.000000, 0.000000 -398, 1.000000, 0.000000, 0.000000, 0.000000 -399, 1.000000, 0.000000, 0.000000, 0.000000 -400, 1.000000, 0.000000, 0.000000, 0.000000 -401, 1.000000, 0.000000, 0.000000, 0.000000 -402, 1.000000, 0.000000, 0.000000, 0.000000 -403, 1.000000, 0.000000, 0.000000, 0.000000 -404, 1.000000, 0.000000, 0.000000, 0.000000 -405, 1.000000, 0.000000, 0.000000, 0.000000 -406, 1.000000, 0.000000, 0.000000, 0.000000 -407, 1.000000, 0.000000, 0.000000, 0.000000 -408, 1.000000, 0.000000, 0.000000, 0.000000 -409, 1.000000, 0.000000, 0.000000, 0.000000 -410, 1.000000, 0.000000, 0.000000, 0.000000 -411, 1.000000, 0.000000, 0.000000, 0.000000 -412, 1.000000, 0.000000, 0.000000, 0.000000 -413, 1.000000, 0.000000, 0.000000, 0.000000 -414, 1.000000, 0.000000, 0.000000, 0.000000 -415, 1.000000, 0.000000, 0.000000, 0.000000 -416, 1.000000, 0.000000, 0.000000, 0.000000 -417, 1.000000, 0.000000, 0.000000, 0.000000 -418, 1.000000, 0.000000, 0.000000, 0.000000 -419, 1.000000, 0.000000, 0.000000, 0.000000 -420, 1.000000, 0.000000, 0.000000, 0.000000 -421, 1.000000, 0.000000, 0.000000, 0.000000 -422, 1.000000, 0.000000, 0.000000, 0.000000 -423, 1.000000, 0.000000, 0.000000, 0.000000 -424, 1.000000, 0.000000, 0.000000, 0.000000 -425, 1.000000, 0.000000, 0.000000, 0.000000 -426, 1.000000, 0.000000, 0.000000, 0.000000 -427, 1.000000, 0.000000, 0.000000, 0.000000 -428, 1.000000, 0.000000, 0.000000, 0.000000 -429, 1.000000, 0.000000, 0.000000, 0.000000 -430, 1.000000, 0.000000, 0.000000, 0.000000 -431, 1.000000, 0.000000, 0.000000, 0.000000 -432, 1.000000, 0.000000, 0.000000, 0.000000 -433, 1.000000, 0.000000, 0.000000, 0.000000 -434, 1.000000, 0.000000, 0.000000, 0.000000 -435, 1.000000, 0.000000, 0.000000, 0.000000 -436, 1.000000, 0.000000, 0.000000, 0.000000 -437, 1.000000, 0.000000, 0.000000, 0.000000 -438, 1.000000, 0.000000, 0.000000, 0.000000 -439, 1.000000, 0.000000, 0.000000, 0.000000 -440, 1.000000, 0.000000, 0.000000, 0.000000 -441, 1.000000, 0.000000, 0.000000, 0.000000 -442, 1.000000, 0.000000, 0.000000, 0.000000 -443, 1.000000, 0.000000, 0.000000, 0.000000 -444, 1.000000, 0.000000, 0.000000, 0.000000 -445, 1.000000, 0.000000, 0.000000, 0.000000 -446, 1.000000, 0.000000, 0.000000, 0.000000 -447, 1.000000, 0.000000, 0.000000, 0.000000 -448, 1.000000, 0.000000, 0.000000, 0.000000 -449, 1.000000, 0.000000, 0.000000, 0.000000 -450, 1.000000, 0.000000, 0.000000, 0.000000 -451, 1.000000, 0.000000, 0.000000, 0.000000 -452, 1.000000, 0.000000, 0.000000, 0.000000 -453, 1.000000, 0.000000, 0.000000, 0.000000 -454, 1.000000, 0.000000, 0.000000, 0.000000 -455, 1.000000, 0.000000, 0.000000, 0.000000 -456, 1.000000, 0.000000, 0.000000, 0.000000 -457, 1.000000, 0.000000, 0.000000, 0.000000 -458, 1.000000, 0.000000, 0.000000, 0.000000 -459, 1.000000, 0.000000, 0.000000, 0.000000 -460, 1.000000, 0.000000, 0.000000, 0.000000 -461, 1.000000, 0.000000, 0.000000, 0.000000 -462, 1.000000, 0.000000, 0.000000, 0.000000 -463, 1.000000, 0.000000, 0.000000, 0.000000 -464, 1.000000, 0.000000, 0.000000, 0.000000 -465, 1.000000, 0.000000, 0.000000, 0.000000 -466, 1.000000, 0.000000, 0.000000, 0.000000 -467, 1.000000, 0.000000, 0.000000, 0.000000 -468, 1.000000, 0.000000, 0.000000, 0.000000 -469, 1.000000, 0.000000, 0.000000, 0.000000 -470, 1.000000, 0.000000, 0.000000, 0.000000 -471, 1.000000, 0.000000, 0.000000, 0.000000 -472, 1.000000, 0.000000, 0.000000, 0.000000 -473, 1.000000, 0.000000, 0.000000, 0.000000 -474, 1.000000, 0.000000, 0.000000, 0.000000 -475, 1.000000, 0.000000, 0.000000, 0.000000 -476, 1.000000, 0.000000, 0.000000, 0.000000 -477, 1.000000, 0.000000, 0.000000, 0.000000 -478, 1.000000, 0.000000, 0.000000, 0.000000 -479, 1.000000, 0.000000, 0.000000, 0.000000 -480, 1.000000, 0.000000, 0.000000, 0.000000 -481, 1.000000, 0.000000, 0.000000, 0.000000 -482, 1.000000, 0.000000, 0.000000, 0.000000 -483, 1.000000, 0.000000, 0.000000, 0.000000 -484, 1.000000, 0.000000, 0.000000, 0.000000 -485, 1.000000, 0.000000, 0.000000, 0.000000 -486, 1.000000, 0.000000, 0.000000, 0.000000 -487, 1.000000, 0.000000, 0.000000, 0.000000 -488, 1.000000, 0.000000, 0.000000, 0.000000 -489, 1.000000, 0.000000, 0.000000, 0.000000 -490, 1.000000, 0.000000, 0.000000, 0.000000 -491, 1.000000, 0.000000, 0.000000, 0.000000 -492, 1.000000, 0.000000, 0.000000, 0.000000 -493, 1.000000, 0.000000, 0.000000, 0.000000 -494, 1.000000, 0.000000, 0.000000, 0.000000 -495, 1.000000, 0.000000, 0.000000, 0.000000 -496, 1.000000, 0.000000, 0.000000, 0.000000 -497, 1.000000, 0.000000, 0.000000, 0.000000 -498, 1.000000, 0.000000, 0.000000, 0.000000 -499, 1.000000, 0.000000, 0.000000, 0.000000 -500, 1.000000, 0.000000, 0.000000, 0.000000 -501, 1.000000, 0.000000, 0.000000, 0.000000 -502, 1.000000, 0.000000, 0.000000, 0.000000 -503, 1.000000, 0.000000, 0.000000, 0.000000 -504, 1.000000, 0.000000, 0.000000, 0.000000 -505, 1.000000, 0.000000, 0.000000, 0.000000 -506, 1.000000, 0.000000, 0.000000, 0.000000 -507, 1.000000, 0.000000, 0.000000, 0.000000 -508, 1.000000, 0.000000, 0.000000, 0.000000 -509, 1.000000, 0.000000, 0.000000, 0.000000 -510, 1.000000, 0.000000, 0.000000, 0.000000 -511, 1.000000, 0.000000, 0.000000, 0.000000 -512, 1.000000, 0.000000, 0.000000, 0.000000 -513, 1.000000, 0.000000, 0.000000, 0.000000 -514, 1.000000, 0.000000, 0.000000, 0.000000 -515, 1.000000, 0.000000, 0.000000, 0.000000 -516, 1.000000, 0.000000, 0.000000, 0.000000 -517, 1.000000, 0.000000, 0.000000, 0.000000 -518, 1.000000, 0.000000, 0.000000, 0.000000 -519, 1.000000, 0.000000, 0.000000, 0.000000 -520, 1.000000, 0.000000, 0.000000, 0.000000 -521, 1.000000, 0.000000, 0.000000, 0.000000 -522, 1.000000, 0.000000, 0.000000, 0.000000 -523, 1.000000, 0.000000, 0.000000, 0.000000 -524, 1.000000, 0.000000, 0.000000, 0.000000 -525, 1.000000, 0.000000, 0.000000, 0.000000 -526, 1.000000, 0.000000, 0.000000, 0.000000 -527, 1.000000, 0.000000, 0.000000, 0.000000 -528, 1.000000, 0.000000, 0.000000, 0.000000 -529, 1.000000, 0.000000, 0.000000, 0.000000 -530, 1.000000, 0.000000, 0.000000, 0.000000 -531, 1.000000, 0.000000, 0.000000, 0.000000 -532, 1.000000, 0.000000, 0.000000, 0.000000 -533, 1.000000, 0.000000, 0.000000, 0.000000 -534, 1.000000, 0.000000, 0.000000, 0.000000 -535, 1.000000, 0.000000, 0.000000, 0.000000 -536, 1.000000, 0.000000, 0.000000, 0.000000 -537, 1.000000, 0.000000, 0.000000, 0.000000 -538, 1.000000, 0.000000, 0.000000, 0.000000 -539, 1.000000, 0.000000, 0.000000, 0.000000 -540, 1.000000, 0.000000, 0.000000, 0.000000 -541, 1.000000, 0.000000, 0.000000, 0.000000 -542, 1.000000, 0.000000, 0.000000, 0.000000 -543, 1.000000, 0.000000, 0.000000, 0.000000 -544, 1.000000, 0.000000, 0.000000, 0.000000 -545, 1.000000, 0.000000, 0.000000, 0.000000 -546, 1.000000, 0.000000, 0.000000, 0.000000 -547, 1.000000, 0.000000, 0.000000, 0.000000 -548, 1.000000, 0.000000, 0.000000, 0.000000 -549, 1.000000, 0.000000, 0.000000, 0.000000 -550, 1.000000, 0.000000, 0.000000, 0.000000 -551, 1.000000, 0.000000, 0.000000, 0.000000 -552, 1.000000, 0.000000, 0.000000, 0.000000 -553, 1.000000, 0.000000, 0.000000, 0.000000 -554, 1.000000, 0.000000, 0.000000, 0.000000 -555, 1.000000, 0.000000, 0.000000, 0.000000 -556, 1.000000, 0.000000, 0.000000, 0.000000 -557, 1.000000, 0.000000, 0.000000, 0.000000 -558, 1.000000, 0.000000, 0.000000, 0.000000 -559, 1.000000, 0.000000, 0.000000, 0.000000 -560, 1.000000, 0.000000, 0.000000, 0.000000 -561, 1.000000, 0.000000, 0.000000, 0.000000 -562, 1.000000, 0.000000, 0.000000, 0.000000 -563, 1.000000, 0.000000, 0.000000, 0.000000 -564, 1.000000, 0.000000, 0.000000, 0.000000 -565, 1.000000, 0.000000, 0.000000, 0.000000 -566, 1.000000, 0.000000, 0.000000, 0.000000 -567, 1.000000, 0.000000, 0.000000, 0.000000 -568, 1.000000, 0.000000, 0.000000, 0.000000 -569, 1.000000, 0.000000, 0.000000, 0.000000 -570, 1.000000, 0.000000, 0.000000, 0.000000 -571, 1.000000, 0.000000, 0.000000, 0.000000 -572, 1.000000, 0.000000, 0.000000, 0.000000 -573, 1.000000, 0.000000, 0.000000, 0.000000 -574, 1.000000, 0.000000, 0.000000, 0.000000 -575, 1.000000, 0.000000, 0.000000, 0.000000 -576, 1.000000, 0.000000, 0.000000, 0.000000 -577, 1.000000, 0.000000, 0.000000, 0.000000 -578, 1.000000, 0.000000, 0.000000, 0.000000 -579, 1.000000, 0.000000, 0.000000, 0.000000 -580, 1.000000, 0.000000, 0.000000, 0.000000 -581, 1.000000, 0.000000, 0.000000, 0.000000 -582, 1.000000, 0.000000, 0.000000, 0.000000 -583, 1.000000, 0.000000, 0.000000, 0.000000 -584, 1.000000, 0.000000, 0.000000, 0.000000 -585, 1.000000, 0.000000, 0.000000, 0.000000 -586, 1.000000, 0.000000, 0.000000, 0.000000 -587, 1.000000, 0.000000, 0.000000, 0.000000 -588, 1.000000, 0.000000, 0.000000, 0.000000 -589, 1.000000, 0.000000, 0.000000, 0.000000 -590, 1.000000, 0.000000, 0.000000, 0.000000 -591, 1.000000, 0.000000, 0.000000, 0.000000 -592, 1.000000, 0.000000, 0.000000, 0.000000 -593, 1.000000, 0.000000, 0.000000, 0.000000 -594, 1.000000, 0.000000, 0.000000, 0.000000 -595, 1.000000, 0.000000, 0.000000, 0.000000 -596, 1.000000, 0.000000, 0.000000, 0.000000 -597, 1.000000, 0.000000, 0.000000, 0.000000 -598, 1.000000, 0.000000, 0.000000, 0.000000 -599, 1.000000, 0.000000, 0.000000, 0.000000 -600, 1.000000, 0.000000, 0.000000, 0.000000 -601, 1.000000, 0.000000, 0.000000, 0.000000 -602, 1.000000, 0.000000, 0.000000, 0.000000 -603, 1.000000, 0.000000, 0.000000, 0.000000 -604, 1.000000, 0.000000, 0.000000, 0.000000 -605, 1.000000, 0.000000, 0.000000, 0.000000 -606, 1.000000, 0.000000, 0.000000, 0.000000 -607, 1.000000, 0.000000, 0.000000, 0.000000 -608, 1.000000, 0.000000, 0.000000, 0.000000 -609, 1.000000, 0.000000, 0.000000, 0.000000 -610, 1.000000, 0.000000, 0.000000, 0.000000 -611, 1.000000, 0.000000, 0.000000, 0.000000 -612, 1.000000, 0.000000, 0.000000, 0.000000 -613, 1.000000, 0.000000, 0.000000, 0.000000 -614, 1.000000, 0.000000, 0.000000, 0.000000 -615, 1.000000, 0.000000, 0.000000, 0.000000 -616, 1.000000, 0.000000, 0.000000, 0.000000 -617, 1.000000, 0.000000, 0.000000, 0.000000 -618, 1.000000, 0.000000, 0.000000, 0.000000 -619, 1.000000, 0.000000, 0.000000, 0.000000 -620, 1.000000, 0.000000, 0.000000, 0.000000 -621, 1.000000, 0.000000, 0.000000, 0.000000 -622, 1.000000, 0.000000, 0.000000, 0.000000 -623, 1.000000, 0.000000, 0.000000, 0.000000 -624, 1.000000, 0.000000, 0.000000, 0.000000 -625, 1.000000, 0.000000, 0.000000, 0.000000 -626, 1.000000, 0.000000, 0.000000, 0.000000 -627, 1.000000, 0.000000, 0.000000, 0.000000 -628, 1.000000, 0.000000, 0.000000, 0.000000 -629, 1.000000, 0.000000, 0.000000, 0.000000 -630, 1.000000, 0.000000, 0.000000, 0.000000 -631, 1.000000, 0.000000, 0.000000, 0.000000 -632, 1.000000, 0.000000, 0.000000, 0.000000 -633, 1.000000, 0.000000, 0.000000, 0.000000 -634, 1.000000, 0.000000, 0.000000, 0.000000 -635, 1.000000, 0.000000, 0.000000, 0.000000 -636, 1.000000, 0.000000, 0.000000, 0.000000 -637, 1.000000, 0.000000, 0.000000, 0.000000 -638, 1.000000, 0.000000, 0.000000, 0.000000 -639, 1.000000, 0.000000, 0.000000, 0.000000 -640, 1.000000, 0.000000, 0.000000, 0.000000 -641, 1.000000, 0.000000, 0.000000, 0.000000 -642, 1.000000, 0.000000, 0.000000, 0.000000 -643, 1.000000, 0.000000, 0.000000, 0.000000 -644, 1.000000, 0.000000, 0.000000, 0.000000 -645, 1.000000, 0.000000, 0.000000, 0.000000 -646, 1.000000, 0.000000, 0.000000, 0.000000 -647, 1.000000, 0.000000, 0.000000, 0.000000 -648, 1.000000, 0.000000, 0.000000, 0.000000 -649, 1.000000, 0.000000, 0.000000, 0.000000 -650, 1.000000, 0.000000, 0.000000, 0.000000 -651, 1.000000, 0.000000, 0.000000, 0.000000 -652, 1.000000, 0.000000, 0.000000, 0.000000 -653, 1.000000, 0.000000, 0.000000, 0.000000 -654, 1.000000, 0.000000, 0.000000, 0.000000 -655, 1.000000, 0.000000, 0.000000, 0.000000 -656, 1.000000, 0.000000, 0.000000, 0.000000 -657, 1.000000, 0.000000, 0.000000, 0.000000 -658, 1.000000, 0.000000, 0.000000, 0.000000 -659, 1.000000, 0.000000, 0.000000, 0.000000 -660, 1.000000, 0.000000, 0.000000, 0.000000 -661, 1.000000, 0.000000, 0.000000, 0.000000 -662, 1.000000, 0.000000, 0.000000, 0.000000 -663, 1.000000, 0.000000, 0.000000, 0.000000 -664, 1.000000, 0.000000, 0.000000, 0.000000 -665, 1.000000, 0.000000, 0.000000, 0.000000 -666, 1.000000, 0.000000, 0.000000, 0.000000 -667, 1.000000, 0.000000, 0.000000, 0.000000 -668, 1.000000, 0.000000, 0.000000, 0.000000 -669, 1.000000, 0.000000, 0.000000, 0.000000 -670, 1.000000, 0.000000, 0.000000, 0.000000 -671, 1.000000, 0.000000, 0.000000, 0.000000 -672, 1.000000, 0.000000, 0.000000, 0.000000 -673, 1.000000, 0.000000, 0.000000, 0.000000 -674, 1.000000, 0.000000, 0.000000, 0.000000 -675, 1.000000, 0.000000, 0.000000, 0.000000 -676, 1.000000, 0.000000, 0.000000, 0.000000 -677, 1.000000, 0.000000, 0.000000, 0.000000 -678, 1.000000, 0.000000, 0.000000, 0.000000 -679, 1.000000, 0.000000, 0.000000, 0.000000 -680, 1.000000, 0.000000, 0.000000, 0.000000 -681, 1.000000, 0.000000, 0.000000, 0.000000 -682, 1.000000, 0.000000, 0.000000, 0.000000 -683, 1.000000, 0.000000, 0.000000, 0.000000 -684, 1.000000, 0.000000, 0.000000, 0.000000 -685, 1.000000, 0.000000, 0.000000, 0.000000 -686, 1.000000, 0.000000, 0.000000, 0.000000 -687, 1.000000, 0.000000, 0.000000, 0.000000 -688, 1.000000, 0.000000, 0.000000, 0.000000 -689, 1.000000, 0.000000, 0.000000, 0.000000 -690, 1.000000, 0.000000, 0.000000, 0.000000 -691, 1.000000, 0.000000, 0.000000, 0.000000 -692, 1.000000, 0.000000, 0.000000, 0.000000 -693, 1.000000, 0.000000, 0.000000, 0.000000 -694, 1.000000, 0.000000, 0.000000, 0.000000 -695, 1.000000, 0.000000, 0.000000, 0.000000 -696, 1.000000, 0.000000, 0.000000, 0.000000 -697, 1.000000, 0.000000, 0.000000, 0.000000 -698, 1.000000, 0.000000, 0.000000, 0.000000 -699, 1.000000, 0.000000, 0.000000, 0.000000 -700, 1.000000, 0.000000, 0.000000, 0.000000 -701, 1.000000, 0.000000, 0.000000, 0.000000 -702, 1.000000, 0.000000, 0.000000, 0.000000 -703, 1.000000, 0.000000, 0.000000, 0.000000 -704, 1.000000, 0.000000, 0.000000, 0.000000 -705, 1.000000, 0.000000, 0.000000, 0.000000 -706, 1.000000, 0.000000, 0.000000, 0.000000 -707, 1.000000, 0.000000, 0.000000, 0.000000 -708, 1.000000, 0.000000, 0.000000, 0.000000 -709, 1.000000, 0.000000, 0.000000, 0.000000 -710, 1.000000, 0.000000, 0.000000, 0.000000 -711, 1.000000, 0.000000, 0.000000, 0.000000 -712, 1.000000, 0.000000, 0.000000, 0.000000 -713, 1.000000, 0.000000, 0.000000, 0.000000 -714, 1.000000, 0.000000, 0.000000, 0.000000 -715, 1.000000, 0.000000, 0.000000, 0.000000 -716, 1.000000, 0.000000, 0.000000, 0.000000 -717, 1.000000, 0.000000, 0.000000, 0.000000 -718, 1.000000, 0.000000, 0.000000, 0.000000 -719, 1.000000, 0.000000, 0.000000, 0.000000 -720, 1.000000, 0.000000, 0.000000, 0.000000 -721, 1.000000, 0.000000, 0.000000, 0.000000 -722, 1.000000, 0.000000, 0.000000, 0.000000 -723, 1.000000, 0.000000, 0.000000, 0.000000 -724, 1.000000, 0.000000, 0.000000, 0.000000 -725, 1.000000, 0.000000, 0.000000, 0.000000 -726, 1.000000, 0.000000, 0.000000, 0.000000 -727, 1.000000, 0.000000, 0.000000, 0.000000 -728, 1.000000, 0.000000, 0.000000, 0.000000 -729, 1.000000, 0.000000, 0.000000, 0.000000 -730, 1.000000, 0.000000, 0.000000, 0.000000 -731, 1.000000, 0.000000, 0.000000, 0.000000 -732, 1.000000, 0.000000, 0.000000, 0.000000 -733, 1.000000, 0.000000, 0.000000, 0.000000 -734, 1.000000, 0.000000, 0.000000, 0.000000 -735, 1.000000, 0.000000, 0.000000, 0.000000 -736, 1.000000, 0.000000, 0.000000, 0.000000 -737, 1.000000, 0.000000, 0.000000, 0.000000 -738, 1.000000, 0.000000, 0.000000, 0.000000 -739, 1.000000, 0.000000, 0.000000, 0.000000 -740, 1.000000, 0.000000, 0.000000, 0.000000 -741, 1.000000, 0.000000, 0.000000, 0.000000 -742, 1.000000, 0.000000, 0.000000, 0.000000 -743, 1.000000, 0.000000, 0.000000, 0.000000 -744, 1.000000, 0.000000, 0.000000, 0.000000 -745, 1.000000, 0.000000, 0.000000, 0.000000 -746, 1.000000, 0.000000, 0.000000, 0.000000 -747, 1.000000, 0.000000, 0.000000, 0.000000 -748, 1.000000, 0.000000, 0.000000, 0.000000 -749, 1.000000, 0.000000, 0.000000, 0.000000 -750, 1.000000, 0.000000, 0.000000, 0.000000 -751, 1.000000, 0.000000, 0.000000, 0.000000 -752, 1.000000, 0.000000, 0.000000, 0.000000 -753, 1.000000, 0.000000, 0.000000, 0.000000 -754, 1.000000, 0.000000, 0.000000, 0.000000 -755, 1.000000, 0.000000, 0.000000, 0.000000 -756, 1.000000, 0.000000, 0.000000, 0.000000 -757, 1.000000, 0.000000, 0.000000, 0.000000 -758, 1.000000, 0.000000, 0.000000, 0.000000 -759, 1.000000, 0.000000, 0.000000, 0.000000 -760, 1.000000, 0.000000, 0.000000, 0.000000 -761, 1.000000, 0.000000, 0.000000, 0.000000 -762, 1.000000, 0.000000, 0.000000, 0.000000 -763, 1.000000, 0.000000, 0.000000, 0.000000 -764, 1.000000, 0.000000, 0.000000, 0.000000 -765, 1.000000, 0.000000, 0.000000, 0.000000 -766, 1.000000, 0.000000, 0.000000, 0.000000 -767, 1.000000, 0.000000, 0.000000, 0.000000 -768, 1.000000, 0.000000, 0.000000, 0.000000 -769, 1.000000, 0.000000, 0.000000, 0.000000 -770, 1.000000, 0.000000, 0.000000, 0.000000 -771, 1.000000, 0.000000, 0.000000, 0.000000 -772, 1.000000, 0.000000, 0.000000, 0.000000 -773, 1.000000, 0.000000, 0.000000, 0.000000 -774, 1.000000, 0.000000, 0.000000, 0.000000 -775, 1.000000, 0.000000, 0.000000, 0.000000 -776, 1.000000, 0.000000, 0.000000, 0.000000 -777, 1.000000, 0.000000, 0.000000, 0.000000 -778, 1.000000, 0.000000, 0.000000, 0.000000 -779, 1.000000, 0.000000, 0.000000, 0.000000 -780, 1.000000, 0.000000, 0.000000, 0.000000 -781, 1.000000, 0.000000, 0.000000, 0.000000 -782, 1.000000, 0.000000, 0.000000, 0.000000 -783, 1.000000, 0.000000, 0.000000, 0.000000 -784, 1.000000, 0.000000, 0.000000, 0.000000 -785, 1.000000, 0.000000, 0.000000, 0.000000 -786, 1.000000, 0.000000, 0.000000, 0.000000 -787, 1.000000, 0.000000, 0.000000, 0.000000 -788, 1.000000, 0.000000, 0.000000, 0.000000 -789, 1.000000, 0.000000, 0.000000, 0.000000 -790, 1.000000, 0.000000, 0.000000, 0.000000 -791, 1.000000, 0.000000, 0.000000, 0.000000 -792, 1.000000, 0.000000, 0.000000, 0.000000 -793, 1.000000, 0.000000, 0.000000, 0.000000 -794, 1.000000, 0.000000, 0.000000, 0.000000 -795, 1.000000, 0.000000, 0.000000, 0.000000 -796, 1.000000, 0.000000, 0.000000, 0.000000 -797, 1.000000, 0.000000, 0.000000, 0.000000 -798, 1.000000, 0.000000, 0.000000, 0.000000 -799, 1.000000, 0.000000, 0.000000, 0.000000 -800, 1.000000, 0.000000, 0.000000, 0.000000 -801, 1.000000, 0.000000, 0.000000, 0.000000 -802, 1.000000, 0.000000, 0.000000, 0.000000 -803, 1.000000, 0.000000, 0.000000, 0.000000 -804, 1.000000, 0.000000, 0.000000, 0.000000 -805, 1.000000, 0.000000, 0.000000, 0.000000 -806, 1.000000, 0.000000, 0.000000, 0.000000 -807, 1.000000, 0.000000, 0.000000, 0.000000 -808, 1.000000, 0.000000, 0.000000, 0.000000 -809, 1.000000, 0.000000, 0.000000, 0.000000 -810, 1.000000, 0.000000, 0.000000, 0.000000 -811, 1.000000, 0.000000, 0.000000, 0.000000 -812, 1.000000, 0.000000, 0.000000, 0.000000 -813, 1.000000, 0.000000, 0.000000, 0.000000 -814, 1.000000, 0.000000, 0.000000, 0.000000 -815, 1.000000, 0.000000, 0.000000, 0.000000 -816, 1.000000, 0.000000, 0.000000, 0.000000 -817, 1.000000, 0.000000, 0.000000, 0.000000 -818, 1.000000, 0.000000, 0.000000, 0.000000 -819, 1.000000, 0.000000, 0.000000, 0.000000 -820, 1.000000, 0.000000, 0.000000, 0.000000 -821, 1.000000, 0.000000, 0.000000, 0.000000 -822, 1.000000, 0.000000, 0.000000, 0.000000 -823, 1.000000, 0.000000, 0.000000, 0.000000 -824, 1.000000, 0.000000, 0.000000, 0.000000 -825, 1.000000, 0.000000, 0.000000, 0.000000 -826, 1.000000, 0.000000, 0.000000, 0.000000 -827, 1.000000, 0.000000, 0.000000, 0.000000 -828, 1.000000, 0.000000, 0.000000, 0.000000 -829, 1.000000, 0.000000, 0.000000, 0.000000 -830, 1.000000, 0.000000, 0.000000, 0.000000 -831, 1.000000, 0.000000, 0.000000, 0.000000 -832, 1.000000, 0.000000, 0.000000, 0.000000 -833, 1.000000, 0.000000, 0.000000, 0.000000 -834, 1.000000, 0.000000, 0.000000, 0.000000 -835, 1.000000, 0.000000, 0.000000, 0.000000 -836, 1.000000, 0.000000, 0.000000, 0.000000 -837, 1.000000, 0.000000, 0.000000, 0.000000 -838, 1.000000, 0.000000, 0.000000, 0.000000 -839, 1.000000, 0.000000, 0.000000, 0.000000 -840, 1.000000, 0.000000, 0.000000, 0.000000 -841, 1.000000, 0.000000, 0.000000, 0.000000 -842, 1.000000, 0.000000, 0.000000, 0.000000 -843, 1.000000, 0.000000, 0.000000, 0.000000 -844, 1.000000, 0.000000, 0.000000, 0.000000 -845, 1.000000, 0.000000, 0.000000, 0.000000 -846, 1.000000, 0.000000, 0.000000, 0.000000 -847, 1.000000, 0.000000, 0.000000, 0.000000 -848, 1.000000, 0.000000, 0.000000, 0.000000 -849, 1.000000, 0.000000, 0.000000, 0.000000 -850, 1.000000, 0.000000, 0.000000, 0.000000 -851, 1.000000, 0.000000, 0.000000, 0.000000 -852, 1.000000, 0.000000, 0.000000, 0.000000 -853, 1.000000, 0.000000, 0.000000, 0.000000 -854, 1.000000, 0.000000, 0.000000, 0.000000 -855, 1.000000, 0.000000, 0.000000, 0.000000 -856, 1.000000, 0.000000, 0.000000, 0.000000 -857, 1.000000, 0.000000, 0.000000, 0.000000 -858, 1.000000, 0.000000, 0.000000, 0.000000 -859, 1.000000, 0.000000, 0.000000, 0.000000 -860, 1.000000, 0.000000, 0.000000, 0.000000 -861, 1.000000, 0.000000, 0.000000, 0.000000 -862, 1.000000, 0.000000, 0.000000, 0.000000 -863, 1.000000, 0.000000, 0.000000, 0.000000 -864, 1.000000, 0.000000, 0.000000, 0.000000 -865, 1.000000, 0.000000, 0.000000, 0.000000 -866, 1.000000, 0.000000, 0.000000, 0.000000 -867, 1.000000, 0.000000, 0.000000, 0.000000 -868, 1.000000, 0.000000, 0.000000, 0.000000 -869, 1.000000, 0.000000, 0.000000, 0.000000 -870, 1.000000, 0.000000, 0.000000, 0.000000 -871, 1.000000, 0.000000, 0.000000, 0.000000 -872, 1.000000, 0.000000, 0.000000, 0.000000 -873, 1.000000, 0.000000, 0.000000, 0.000000 -874, 1.000000, 0.000000, 0.000000, 0.000000 -875, 1.000000, 0.000000, 0.000000, 0.000000 -876, 1.000000, 0.000000, 0.000000, 0.000000 -877, 1.000000, 0.000000, 0.000000, 0.000000 -878, 1.000000, 0.000000, 0.000000, 0.000000 -879, 1.000000, 0.000000, 0.000000, 0.000000 -880, 1.000000, 0.000000, 0.000000, 0.000000 -881, 1.000000, 0.000000, 0.000000, 0.000000 -882, 1.000000, 0.000000, 0.000000, 0.000000 -883, 1.000000, 0.000000, 0.000000, 0.000000 -884, 1.000000, 0.000000, 0.000000, 0.000000 -885, 1.000000, 0.000000, 0.000000, 0.000000 -886, 1.000000, 0.000000, 0.000000, 0.000000 -887, 1.000000, 0.000000, 0.000000, 0.000000 -888, 1.000000, 0.000000, 0.000000, 0.000000 -889, 1.000000, 0.000000, 0.000000, 0.000000 -890, 1.000000, 0.000000, 0.000000, 0.000000 -891, 1.000000, 0.000000, 0.000000, 0.000000 -892, 1.000000, 0.000000, 0.000000, 0.000000 -893, 1.000000, 0.000000, 0.000000, 0.000000 -894, 1.000000, 0.000000, 0.000000, 0.000000 -895, 1.000000, 0.000000, 0.000000, 0.000000 -896, 1.000000, 0.000000, 0.000000, 0.000000 -897, 1.000000, 0.000000, 0.000000, 0.000000 -898, 1.000000, 0.000000, 0.000000, 0.000000 -899, 1.000000, 0.000000, 0.000000, 0.000000 -900, 1.000000, 0.000000, 0.000000, 0.000000 -901, 1.000000, 0.000000, 0.000000, 0.000000 -902, 1.000000, 0.000000, 0.000000, 0.000000 -903, 1.000000, 0.000000, 0.000000, 0.000000 -904, 1.000000, 0.000000, 0.000000, 0.000000 -905, 1.000000, 0.000000, 0.000000, 0.000000 -906, 1.000000, 0.000000, 0.000000, 0.000000 -907, 1.000000, 0.000000, 0.000000, 0.000000 -908, 1.000000, 0.000000, 0.000000, 0.000000 -909, 1.000000, 0.000000, 0.000000, 0.000000 -910, 1.000000, 0.000000, 0.000000, 0.000000 -911, 1.000000, 0.000000, 0.000000, 0.000000 -912, 1.000000, 0.000000, 0.000000, 0.000000 -913, 1.000000, 0.000000, 0.000000, 0.000000 -914, 1.000000, 0.000000, 0.000000, 0.000000 -915, 1.000000, 0.000000, 0.000000, 0.000000 -916, 1.000000, 0.000000, 0.000000, 0.000000 -917, 1.000000, 0.000000, 0.000000, 0.000000 -918, 1.000000, 0.000000, 0.000000, 0.000000 -919, 1.000000, 0.000000, 0.000000, 0.000000 -920, 1.000000, 0.000000, 0.000000, 0.000000 -921, 1.000000, 0.000000, 0.000000, 0.000000 -922, 1.000000, 0.000000, 0.000000, 0.000000 -923, 1.000000, 0.000000, 0.000000, 0.000000 -924, 1.000000, 0.000000, 0.000000, 0.000000 -925, 1.000000, 0.000000, 0.000000, 0.000000 -926, 1.000000, 0.000000, 0.000000, 0.000000 -927, 1.000000, 0.000000, 0.000000, 0.000000 -928, 1.000000, 0.000000, 0.000000, 0.000000 -929, 1.000000, 0.000000, 0.000000, 0.000000 -930, 1.000000, 0.000000, 0.000000, 0.000000 -931, 1.000000, 0.000000, 0.000000, 0.000000 -932, 1.000000, 0.000000, 0.000000, 0.000000 -933, 1.000000, 0.000000, 0.000000, 0.000000 -934, 1.000000, 0.000000, 0.000000, 0.000000 -935, 1.000000, 0.000000, 0.000000, 0.000000 -936, 1.000000, 0.000000, 0.000000, 0.000000 -937, 1.000000, 0.000000, 0.000000, 0.000000 -938, 1.000000, 0.000000, 0.000000, 0.000000 -939, 1.000000, 0.000000, 0.000000, 0.000000 -940, 1.000000, 0.000000, 0.000000, 0.000000 -941, 1.000000, 0.000000, 0.000000, 0.000000 -942, 1.000000, 0.000000, 0.000000, 0.000000 -943, 1.000000, 0.000000, 0.000000, 0.000000 -944, 1.000000, 0.000000, 0.000000, 0.000000 -945, 1.000000, 0.000000, 0.000000, 0.000000 -946, 1.000000, 0.000000, 0.000000, 0.000000 -947, 1.000000, 0.000000, 0.000000, 0.000000 -948, 1.000000, 0.000000, 0.000000, 0.000000 -949, 1.000000, 0.000000, 0.000000, 0.000000 -950, 1.000000, 0.000000, 0.000000, 0.000000 -951, 1.000000, 0.000000, 0.000000, 0.000000 -952, 1.000000, 0.000000, 0.000000, 0.000000 -953, 1.000000, 0.000000, 0.000000, 0.000000 -954, 1.000000, 0.000000, 0.000000, 0.000000 -955, 1.000000, 0.000000, 0.000000, 0.000000 -956, 1.000000, 0.000000, 0.000000, 0.000000 -957, 1.000000, 0.000000, 0.000000, 0.000000 -958, 1.000000, 0.000000, 0.000000, 0.000000 -959, 1.000000, 0.000000, 0.000000, 0.000000 -960, 1.000000, 0.000000, 0.000000, 0.000000 -961, 1.000000, 0.000000, 0.000000, 0.000000 -962, 1.000000, 0.000000, 0.000000, 0.000000 -963, 1.000000, 0.000000, 0.000000, 0.000000 -964, 1.000000, 0.000000, 0.000000, 0.000000 -965, 1.000000, 0.000000, 0.000000, 0.000000 -966, 1.000000, 0.000000, 0.000000, 0.000000 -967, 1.000000, 0.000000, 0.000000, 0.000000 -968, 1.000000, 0.000000, 0.000000, 0.000000 -969, 1.000000, 0.000000, 0.000000, 0.000000 -970, 1.000000, 0.000000, 0.000000, 0.000000 -971, 1.000000, 0.000000, 0.000000, 0.000000 -972, 1.000000, 0.000000, 0.000000, 0.000000 -973, 1.000000, 0.000000, 0.000000, 0.000000 -974, 1.000000, 0.000000, 0.000000, 0.000000 -975, 1.000000, 0.000000, 0.000000, 0.000000 -976, 1.000000, 0.000000, 0.000000, 0.000000 -977, 1.000000, 0.000000, 0.000000, 0.000000 -978, 1.000000, 0.000000, 0.000000, 0.000000 -979, 1.000000, 0.000000, 0.000000, 0.000000 -980, 1.000000, 0.000000, 0.000000, 0.000000 -981, 1.000000, 0.000000, 0.000000, 0.000000 -982, 1.000000, 0.000000, 0.000000, 0.000000 -983, 1.000000, 0.000000, 0.000000, 0.000000 -984, 1.000000, 0.000000, 0.000000, 0.000000 -985, 1.000000, 0.000000, 0.000000, 0.000000 -986, 1.000000, 0.000000, 0.000000, 0.000000 -987, 1.000000, 0.000000, 0.000000, 0.000000 -988, 1.000000, 0.000000, 0.000000, 0.000000 -989, 1.000000, 0.000000, 0.000000, 0.000000 -990, 1.000000, 0.000000, 0.000000, 0.000000 -991, 1.000000, 0.000000, 0.000000, 0.000000 -992, 1.000000, 0.000000, 0.000000, 0.000000 -993, 1.000000, 0.000000, 0.000000, 0.000000 -994, 1.000000, 0.000000, 0.000000, 0.000000 -995, 1.000000, 0.000000, 0.000000, 0.000000 -996, 1.000000, 0.000000, 0.000000, 0.000000 -997, 1.000000, 0.000000, 0.000000, 0.000000 -998, 1.000000, 0.000000, 0.000000, 0.000000 -999, 1.000000, 0.000000, 0.000000, 0.000000 -1000, 1.000000, 0.000000, 0.000000, 0.000000 -1001, 1.000000, 0.000000, 0.000000, 0.000000 -1002, 1.000000, 0.000000, 0.000000, 0.000000 -1003, 1.000000, 0.000000, 0.000000, 0.000000 -1004, 1.000000, 0.000000, 0.000000, 0.000000 -1005, 1.000000, 0.000000, 0.000000, 0.000000 -1006, 1.000000, 0.000000, 0.000000, 0.000000 -1007, 1.000000, 0.000000, 0.000000, 0.000000 -1008, 1.000000, 0.000000, 0.000000, 0.000000 -1009, 1.000000, 0.000000, 0.000000, 0.000000 -1010, 1.000000, 0.000000, 0.000000, 0.000000 -1011, 1.000000, 0.000000, 0.000000, 0.000000 -1012, 1.000000, 0.000000, 0.000000, 0.000000 -1013, 1.000000, 0.000000, 0.000000, 0.000000 -1014, 1.000000, 0.000000, 0.000000, 0.000000 -1015, 1.000000, 0.000000, 0.000000, 0.000000 -1016, 1.000000, 0.000000, 0.000000, 0.000000 -1017, 1.000000, 0.000000, 0.000000, 0.000000 -1018, 1.000000, 0.000000, 0.000000, 0.000000 -1019, 1.000000, 0.000000, 0.000000, 0.000000 -1020, 1.000000, 0.000000, 0.000000, 0.000000 -1021, 1.000000, 0.000000, 0.000000, 0.000000 -1022, 1.000000, 0.000000, 0.000000, 0.000000 -1023, 1.000000, 0.000000, 0.000000, 0.000000 -1024, 1.000000, 0.000000, 0.000000, 0.000000 -1025, 1.000000, 0.000000, 0.000000, 0.000000 -1026, 1.000000, 0.000000, 0.000000, 0.000000 -1027, 1.000000, 0.000000, 0.000000, 0.000000 -1028, 1.000000, 0.000000, 0.000000, 0.000000 -1029, 1.000000, 0.000000, 0.000000, 0.000000 -1030, 1.000000, 0.000000, 0.000000, 0.000000 -1031, 1.000000, 0.000000, 0.000000, 0.000000 -1032, 1.000000, 0.000000, 0.000000, 0.000000 -1033, 1.000000, 0.000000, 0.000000, 0.000000 -1034, 1.000000, 0.000000, 0.000000, 0.000000 -1035, 1.000000, 0.000000, 0.000000, 0.000000 -1036, 1.000000, 0.000000, 0.000000, 0.000000 -1037, 1.000000, 0.000000, 0.000000, 0.000000 -1038, 1.000000, 0.000000, 0.000000, 0.000000 -1039, 1.000000, 0.000000, 0.000000, 0.000000 -1040, 1.000000, 0.000000, 0.000000, 0.000000 -1041, 1.000000, 0.000000, 0.000000, 0.000000 -1042, 1.000000, 0.000000, 0.000000, 0.000000 -1043, 1.000000, 0.000000, 0.000000, 0.000000 -1044, 1.000000, 0.000000, 0.000000, 0.000000 -1045, 1.000000, 0.000000, 0.000000, 0.000000 -1046, 1.000000, 0.000000, 0.000000, 0.000000 -1047, 1.000000, 0.000000, 0.000000, 0.000000 -1048, 1.000000, 0.000000, 0.000000, 0.000000 -1049, 1.000000, 0.000000, 0.000000, 0.000000 -1050, 1.000000, 0.000000, 0.000000, 0.000000 -1051, 1.000000, 0.000000, 0.000000, 0.000000 -1052, 1.000000, 0.000000, 0.000000, 0.000000 -1053, 1.000000, 0.000000, 0.000000, 0.000000 -1054, 1.000000, 0.000000, 0.000000, 0.000000 -1055, 1.000000, 0.000000, 0.000000, 0.000000 -1056, 1.000000, 0.000000, 0.000000, 0.000000 -1057, 1.000000, 0.000000, 0.000000, 0.000000 -1058, 1.000000, 0.000000, 0.000000, 0.000000 -1059, 1.000000, 0.000000, 0.000000, 0.000000 -1060, 1.000000, 0.000000, 0.000000, 0.000000 -1061, 1.000000, 0.000000, 0.000000, 0.000000 -1062, 1.000000, 0.000000, 0.000000, 0.000000 -1063, 1.000000, 0.000000, 0.000000, 0.000000 -1064, 1.000000, 0.000000, 0.000000, 0.000000 -1065, 1.000000, 0.000000, 0.000000, 0.000000 -1066, 1.000000, 0.000000, 0.000000, 0.000000 -1067, 1.000000, 0.000000, 0.000000, 0.000000 -1068, 1.000000, 0.000000, 0.000000, 0.000000 -1069, 1.000000, 0.000000, 0.000000, 0.000000 -1070, 1.000000, 0.000000, 0.000000, 0.000000 -1071, 1.000000, 0.000000, 0.000000, 0.000000 -1072, 1.000000, 0.000000, 0.000000, 0.000000 -1073, 1.000000, 0.000000, 0.000000, 0.000000 -1074, 1.000000, 0.000000, 0.000000, 0.000000 -1075, 1.000000, 0.000000, 0.000000, 0.000000 -1076, 1.000000, 0.000000, 0.000000, 0.000000 -1077, 1.000000, 0.000000, 0.000000, 0.000000 -1078, 1.000000, 0.000000, 0.000000, 0.000000 -1079, 1.000000, 0.000000, 0.000000, 0.000000 -1080, 1.000000, 0.000000, 0.000000, 0.000000 -1081, 1.000000, 0.000000, 0.000000, 0.000000 -1082, 1.000000, 0.000000, 0.000000, 0.000000 -1083, 1.000000, 0.000000, 0.000000, 0.000000 -1084, 1.000000, 0.000000, 0.000000, 0.000000 -1085, 1.000000, 0.000000, 0.000000, 0.000000 -1086, 1.000000, 0.000000, 0.000000, 0.000000 -1087, 1.000000, 0.000000, 0.000000, 0.000000 -1088, 1.000000, 0.000000, 0.000000, 0.000000 -1089, 1.000000, 0.000000, 0.000000, 0.000000 -1090, 1.000000, 0.000000, 0.000000, 0.000000 -1091, 1.000000, 0.000000, 0.000000, 0.000000 -1092, 1.000000, 0.000000, 0.000000, 0.000000 -1093, 1.000000, 0.000000, 0.000000, 0.000000 -1094, 1.000000, 0.000000, 0.000000, 0.000000 -1095, 1.000000, 0.000000, 0.000000, 0.000000 -1096, 1.000000, 0.000000, 0.000000, 0.000000 -1097, 1.000000, 0.000000, 0.000000, 0.000000 -1098, 1.000000, 0.000000, 0.000000, 0.000000 -1099, 1.000000, 0.000000, 0.000000, 0.000000 -1100, 1.000000, 0.000000, 0.000000, 0.000000 -1101, 1.000000, 0.000000, 0.000000, 0.000000 -1102, 1.000000, 0.000000, 0.000000, 0.000000 -1103, 1.000000, 0.000000, 0.000000, 0.000000 -1104, 1.000000, 0.000000, 0.000000, 0.000000 -1105, 1.000000, 0.000000, 0.000000, 0.000000 -1106, 1.000000, 0.000000, 0.000000, 0.000000 -1107, 1.000000, 0.000000, 0.000000, 0.000000 -1108, 1.000000, 0.000000, 0.000000, 0.000000 -1109, 1.000000, 0.000000, 0.000000, 0.000000 -1110, 1.000000, 0.000000, 0.000000, 0.000000 -1111, 1.000000, 0.000000, 0.000000, 0.000000 -1112, 1.000000, 0.000000, 0.000000, 0.000000 -1113, 1.000000, 0.000000, 0.000000, 0.000000 -1114, 1.000000, 0.000000, 0.000000, 0.000000 -1115, 1.000000, 0.000000, 0.000000, 0.000000 -1116, 1.000000, 0.000000, 0.000000, 0.000000 -1117, 1.000000, 0.000000, 0.000000, 0.000000 -1118, 1.000000, 0.000000, 0.000000, 0.000000 -1119, 1.000000, 0.000000, 0.000000, 0.000000 -1120, 1.000000, 0.000000, 0.000000, 0.000000 -1121, 1.000000, 0.000000, 0.000000, 0.000000 -1122, 1.000000, 0.000000, 0.000000, 0.000000 -1123, 1.000000, 0.000000, 0.000000, 0.000000 -1124, 1.000000, 0.000000, 0.000000, 0.000000 -1125, 1.000000, 0.000000, 0.000000, 0.000000 -1126, 1.000000, 0.000000, 0.000000, 0.000000 -1127, 1.000000, 0.000000, 0.000000, 0.000000 -1128, 1.000000, 0.000000, 0.000000, 0.000000 -1129, 1.000000, 0.000000, 0.000000, 0.000000 -1130, 1.000000, 0.000000, 0.000000, 0.000000 -1131, 1.000000, 0.000000, 0.000000, 0.000000 -1132, 1.000000, 0.000000, 0.000000, 0.000000 -1133, 1.000000, 0.000000, 0.000000, 0.000000 -1134, 1.000000, 0.000000, 0.000000, 0.000000 -1135, 1.000000, 0.000000, 0.000000, 0.000000 -1136, 1.000000, 0.000000, 0.000000, 0.000000 -1137, 1.000000, 0.000000, 0.000000, 0.000000 -1138, 1.000000, 0.000000, 0.000000, 0.000000 -1139, 1.000000, 0.000000, 0.000000, 0.000000 -1140, 1.000000, 0.000000, 0.000000, 0.000000 -1141, 1.000000, 0.000000, 0.000000, 0.000000 -1142, 1.000000, 0.000000, 0.000000, 0.000000 -1143, 1.000000, 0.000000, 0.000000, 0.000000 -1144, 1.000000, 0.000000, 0.000000, 0.000000 -1145, 1.000000, 0.000000, 0.000000, 0.000000 -1146, 1.000000, 0.000000, 0.000000, 0.000000 -1147, 1.000000, 0.000000, 0.000000, 0.000000 -1148, 1.000000, 0.000000, 0.000000, 0.000000 -1149, 1.000000, 0.000000, 0.000000, 0.000000 -1150, 1.000000, 0.000000, 0.000000, 0.000000 -1151, 1.000000, 0.000000, 0.000000, 0.000000 -1152, 1.000000, 0.000000, 0.000000, 0.000000 -1153, 1.000000, 0.000000, 0.000000, 0.000000 -1154, 1.000000, 0.000000, 0.000000, 0.000000 -1155, 1.000000, 0.000000, 0.000000, 0.000000 -1156, 1.000000, 0.000000, 0.000000, 0.000000 -1157, 1.000000, 0.000000, 0.000000, 0.000000 -1158, 1.000000, 0.000000, 0.000000, 0.000000 -1159, 1.000000, 0.000000, 0.000000, 0.000000 -1160, 1.000000, 0.000000, 0.000000, 0.000000 -1161, 1.000000, 0.000000, 0.000000, 0.000000 -1162, 1.000000, 0.000000, 0.000000, 0.000000 -1163, 1.000000, 0.000000, 0.000000, 0.000000 -1164, 1.000000, 0.000000, 0.000000, 0.000000 -1165, 1.000000, 0.000000, 0.000000, 0.000000 -1166, 1.000000, 0.000000, 0.000000, 0.000000 -1167, 1.000000, 0.000000, 0.000000, 0.000000 -1168, 1.000000, 0.000000, 0.000000, 0.000000 -1169, 1.000000, 0.000000, 0.000000, 0.000000 -1170, 1.000000, 0.000000, 0.000000, 0.000000 -1171, 1.000000, 0.000000, 0.000000, 0.000000 -1172, 1.000000, 0.000000, 0.000000, 0.000000 -1173, 1.000000, 0.000000, 0.000000, 0.000000 -1174, 1.000000, 0.000000, 0.000000, 0.000000 -1175, 1.000000, 0.000000, 0.000000, 0.000000 -1176, 1.000000, 0.000000, 0.000000, 0.000000 -1177, 1.000000, 0.000000, 0.000000, 0.000000 -1178, 1.000000, 0.000000, 0.000000, 0.000000 -1179, 1.000000, 0.000000, 0.000000, 0.000000 -1180, 1.000000, 0.000000, 0.000000, 0.000000 -1181, 1.000000, 0.000000, 0.000000, 0.000000 -1182, 1.000000, 0.000000, 0.000000, 0.000000 -1183, 1.000000, 0.000000, 0.000000, 0.000000 -1184, 1.000000, 0.000000, 0.000000, 0.000000 -1185, 1.000000, 0.000000, 0.000000, 0.000000 -1186, 1.000000, 0.000000, 0.000000, 0.000000 -1187, 1.000000, 0.000000, 0.000000, 0.000000 -1188, 1.000000, 0.000000, 0.000000, 0.000000 -1189, 1.000000, 0.000000, 0.000000, 0.000000 -1190, 1.000000, 0.000000, 0.000000, 0.000000 -1191, 1.000000, 0.000000, 0.000000, 0.000000 -1192, 1.000000, 0.000000, 0.000000, 0.000000 -1193, 1.000000, 0.000000, 0.000000, 0.000000 -1194, 1.000000, 0.000000, 0.000000, 0.000000 -1195, 1.000000, 0.000000, 0.000000, 0.000000 -1196, 1.000000, 0.000000, 0.000000, 0.000000 -1197, 1.000000, 0.000000, 0.000000, 0.000000 -1198, 1.000000, 0.000000, 0.000000, 0.000000 -1199, 1.000000, 0.000000, 0.000000, 0.000000 -1200, 1.000000, 0.000000, 0.000000, 0.000000 -1201, 1.000000, 0.000000, 0.000000, 0.000000 -1202, 1.000000, 0.000000, 0.000000, 0.000000 -1203, 1.000000, 0.000000, 0.000000, 0.000000 -1204, 1.000000, 0.000000, 0.000000, 0.000000 -1205, 1.000000, 0.000000, 0.000000, 0.000000 -1206, 1.000000, 0.000000, 0.000000, 0.000000 -1207, 1.000000, 0.000000, 0.000000, 0.000000 -1208, 1.000000, 0.000000, 0.000000, 0.000000 -1209, 1.000000, 0.000000, 0.000000, 0.000000 -1210, 1.000000, 0.000000, 0.000000, 0.000000 -1211, 1.000000, 0.000000, 0.000000, 0.000000 -1212, 1.000000, 0.000000, 0.000000, 0.000000 -1213, 1.000000, 0.000000, 0.000000, 0.000000 -1214, 1.000000, 0.000000, 0.000000, 0.000000 -1215, 1.000000, 0.000000, 0.000000, 0.000000 -1216, 1.000000, 0.000000, 0.000000, 0.000000 -1217, 1.000000, 0.000000, 0.000000, 0.000000 -1218, 1.000000, 0.000000, 0.000000, 0.000000 -1219, 1.000000, 0.000000, 0.000000, 0.000000 -1220, 1.000000, 0.000000, 0.000000, 0.000000 -1221, 1.000000, 0.000000, 0.000000, 0.000000 -1222, 1.000000, 0.000000, 0.000000, 0.000000 -1223, 1.000000, 0.000000, 0.000000, 0.000000 -1224, 1.000000, 0.000000, 0.000000, 0.000000 -1225, 1.000000, 0.000000, 0.000000, 0.000000 -1226, 1.000000, 0.000000, 0.000000, 0.000000 -1227, 1.000000, 0.000000, 0.000000, 0.000000 -1228, 1.000000, 0.000000, 0.000000, 0.000000 -1229, 1.000000, 0.000000, 0.000000, 0.000000 -1230, 1.000000, 0.000000, 0.000000, 0.000000 -1231, 1.000000, 0.000000, 0.000000, 0.000000 -1232, 1.000000, 0.000000, 0.000000, 0.000000 -1233, 1.000000, 0.000000, 0.000000, 0.000000 -1234, 1.000000, 0.000000, 0.000000, 0.000000 -1235, 1.000000, 0.000000, 0.000000, 0.000000 -1236, 1.000000, 0.000000, 0.000000, 0.000000 -1237, 1.000000, 0.000000, 0.000000, 0.000000 -1238, 1.000000, 0.000000, 0.000000, 0.000000 -1239, 1.000000, 0.000000, 0.000000, 0.000000 -1240, 1.000000, 0.000000, 0.000000, 0.000000 -1241, 1.000000, 0.000000, 0.000000, 0.000000 -1242, 1.000000, 0.000000, 0.000000, 0.000000 -1243, 1.000000, 0.000000, 0.000000, 0.000000 -1244, 1.000000, 0.000000, 0.000000, 0.000000 -1245, 1.000000, 0.000000, 0.000000, 0.000000 -1246, 1.000000, 0.000000, 0.000000, 0.000000 -1247, 1.000000, 0.000000, 0.000000, 0.000000 -1248, 1.000000, 0.000000, 0.000000, 0.000000 -1249, 1.000000, 0.000000, 0.000000, 0.000000 -1250, 1.000000, 0.000000, 0.000000, 0.000000 -1251, 1.000000, 0.000000, 0.000000, 0.000000 -1252, 1.000000, 0.000000, 0.000000, 0.000000 -1253, 1.000000, 0.000000, 0.000000, 0.000000 -1254, 1.000000, 0.000000, 0.000000, 0.000000 -1255, 1.000000, 0.000000, 0.000000, 0.000000 -1256, 1.000000, 0.000000, 0.000000, 0.000000 -1257, 1.000000, 0.000000, 0.000000, 0.000000 -1258, 1.000000, 0.000000, 0.000000, 0.000000 -1259, 1.000000, 0.000000, 0.000000, 0.000000 -1260, 1.000000, 0.000000, 0.000000, 0.000000 -1261, 1.000000, 0.000000, 0.000000, 0.000000 -1262, 1.000000, 0.000000, 0.000000, 0.000000 -1263, 1.000000, 0.000000, 0.000000, 0.000000 -1264, 1.000000, 0.000000, 0.000000, 0.000000 -1265, 1.000000, 0.000000, 0.000000, 0.000000 -1266, 1.000000, 0.000000, 0.000000, 0.000000 -1267, 1.000000, 0.000000, 0.000000, 0.000000 -1268, 1.000000, 0.000000, 0.000000, 0.000000 -1269, 1.000000, 0.000000, 0.000000, 0.000000 -1270, 1.000000, 0.000000, 0.000000, 0.000000 -1271, 1.000000, 0.000000, 0.000000, 0.000000 -1272, 1.000000, 0.000000, 0.000000, 0.000000 -1273, 1.000000, 0.000000, 0.000000, 0.000000 -1274, 1.000000, 0.000000, 0.000000, 0.000000 -1275, 1.000000, 0.000000, 0.000000, 0.000000 -1276, 1.000000, 0.000000, 0.000000, 0.000000 -1277, 1.000000, 0.000000, 0.000000, 0.000000 -1278, 1.000000, 0.000000, 0.000000, 0.000000 -1279, 1.000000, 0.000000, 0.000000, 0.000000 -1280, 1.000000, 0.000000, 0.000000, 0.000000 -1281, 1.000000, 0.000000, 0.000000, 0.000000 -1282, 1.000000, 0.000000, 0.000000, 0.000000 -1283, 1.000000, 0.000000, 0.000000, 0.000000 -1284, 1.000000, 0.000000, 0.000000, 0.000000 -1285, 1.000000, 0.000000, 0.000000, 0.000000 -1286, 1.000000, 0.000000, 0.000000, 0.000000 -1287, 1.000000, 0.000000, 0.000000, 0.000000 -1288, 1.000000, 0.000000, 0.000000, 0.000000 -1289, 1.000000, 0.000000, 0.000000, 0.000000 -1290, 1.000000, 0.000000, 0.000000, 0.000000 -1291, 1.000000, 0.000000, 0.000000, 0.000000 -1292, 1.000000, 0.000000, 0.000000, 0.000000 -1293, 1.000000, 0.000000, 0.000000, 0.000000 -1294, 1.000000, 0.000000, 0.000000, 0.000000 -1295, 1.000000, 0.000000, 0.000000, 0.000000 -1296, 1.000000, 0.000000, 0.000000, 0.000000 -1297, 1.000000, 0.000000, 0.000000, 0.000000 -1298, 1.000000, 0.000000, 0.000000, 0.000000 -1299, 1.000000, 0.000000, 0.000000, 0.000000 -1300, 1.000000, 0.000000, 0.000000, 0.000000 -1301, 1.000000, 0.000000, 0.000000, 0.000000 -1302, 1.000000, 0.000000, 0.000000, 0.000000 -1303, 1.000000, 0.000000, 0.000000, 0.000000 -1304, 1.000000, 0.000000, 0.000000, 0.000000 -1305, 1.000000, 0.000000, 0.000000, 0.000000 -1306, 1.000000, 0.000000, 0.000000, 0.000000 -1307, 1.000000, 0.000000, 0.000000, 0.000000 -1308, 1.000000, 0.000000, 0.000000, 0.000000 -1309, 1.000000, 0.000000, 0.000000, 0.000000 -1310, 1.000000, 0.000000, 0.000000, 0.000000 -1311, 1.000000, 0.000000, 0.000000, 0.000000 -1312, 1.000000, 0.000000, 0.000000, 0.000000 -1313, 1.000000, 0.000000, 0.000000, 0.000000 -1314, 1.000000, 0.000000, 0.000000, 0.000000 -1315, 1.000000, 0.000000, 0.000000, 0.000000 -1316, 1.000000, 0.000000, 0.000000, 0.000000 -1317, 1.000000, 0.000000, 0.000000, 0.000000 -1318, 1.000000, 0.000000, 0.000000, 0.000000 -1319, 1.000000, 0.000000, 0.000000, 0.000000 -1320, 1.000000, 0.000000, 0.000000, 0.000000 -1321, 1.000000, 0.000000, 0.000000, 0.000000 -1322, 1.000000, 0.000000, 0.000000, 0.000000 -1323, 1.000000, 0.000000, 0.000000, 0.000000 -1324, 1.000000, 0.000000, 0.000000, 0.000000 -1325, 1.000000, 0.000000, 0.000000, 0.000000 -1326, 1.000000, 0.000000, 0.000000, 0.000000 -1327, 1.000000, 0.000000, 0.000000, 0.000000 -1328, 1.000000, 0.000000, 0.000000, 0.000000 -1329, 1.000000, 0.000000, 0.000000, 0.000000 -1330, 1.000000, 0.000000, 0.000000, 0.000000 -1331, 1.000000, 0.000000, 0.000000, 0.000000 -1332, 1.000000, 0.000000, 0.000000, 0.000000 -1333, 1.000000, 0.000000, 0.000000, 0.000000 -1334, 1.000000, 0.000000, 0.000000, 0.000000 -1335, 1.000000, 0.000000, 0.000000, 0.000000 -1336, 1.000000, 0.000000, 0.000000, 0.000000 -1337, 1.000000, 0.000000, 0.000000, 0.000000 -1338, 1.000000, 0.000000, 0.000000, 0.000000 -1339, 1.000000, 0.000000, 0.000000, 0.000000 -1340, 1.000000, 0.000000, 0.000000, 0.000000 -1341, 1.000000, 0.000000, 0.000000, 0.000000 -1342, 1.000000, 0.000000, 0.000000, 0.000000 -1343, 1.000000, 0.000000, 0.000000, 0.000000 -1344, 1.000000, 0.000000, 0.000000, 0.000000 -1345, 1.000000, 0.000000, 0.000000, 0.000000 -1346, 1.000000, 0.000000, 0.000000, 0.000000 -1347, 1.000000, 0.000000, 0.000000, 0.000000 -1348, 1.000000, 0.000000, 0.000000, 0.000000 -1349, 1.000000, 0.000000, 0.000000, 0.000000 -1350, 1.000000, 0.000000, 0.000000, 0.000000 -1351, 1.000000, 0.000000, 0.000000, 0.000000 -1352, 1.000000, 0.000000, 0.000000, 0.000000 -1353, 1.000000, 0.000000, 0.000000, 0.000000 -1354, 1.000000, 0.000000, 0.000000, 0.000000 -1355, 1.000000, 0.000000, 0.000000, 0.000000 -1356, 1.000000, 0.000000, 0.000000, 0.000000 -1357, 1.000000, 0.000000, 0.000000, 0.000000 -1358, 1.000000, 0.000000, 0.000000, 0.000000 -1359, 1.000000, 0.000000, 0.000000, 0.000000 -1360, 1.000000, 0.000000, 0.000000, 0.000000 -1361, 1.000000, 0.000000, 0.000000, 0.000000 -1362, 1.000000, 0.000000, 0.000000, 0.000000 -1363, 1.000000, 0.000000, 0.000000, 0.000000 -1364, 1.000000, 0.000000, 0.000000, 0.000000 -1365, 1.000000, 0.000000, 0.000000, 0.000000 -1366, 1.000000, 0.000000, 0.000000, 0.000000 -1367, 1.000000, 0.000000, 0.000000, 0.000000 -1368, 1.000000, 0.000000, 0.000000, 0.000000 -1369, 1.000000, 0.000000, 0.000000, 0.000000 -1370, 1.000000, 0.000000, 0.000000, 0.000000 -1371, 1.000000, 0.000000, 0.000000, 0.000000 -1372, 1.000000, 0.000000, 0.000000, 0.000000 -1373, 1.000000, 0.000000, 0.000000, 0.000000 -1374, 1.000000, 0.000000, 0.000000, 0.000000 -1375, 1.000000, 0.000000, 0.000000, 0.000000 -1376, 1.000000, 0.000000, 0.000000, 0.000000 -1377, 1.000000, 0.000000, 0.000000, 0.000000 -1378, 1.000000, 0.000000, 0.000000, 0.000000 -1379, 1.000000, 0.000000, 0.000000, 0.000000 -1380, 1.000000, 0.000000, 0.000000, 0.000000 -1381, 1.000000, 0.000000, 0.000000, 0.000000 -1382, 1.000000, 0.000000, 0.000000, 0.000000 -1383, 1.000000, 0.000000, 0.000000, 0.000000 -1384, 1.000000, 0.000000, 0.000000, 0.000000 -1385, 1.000000, 0.000000, 0.000000, 0.000000 -1386, 1.000000, 0.000000, 0.000000, 0.000000 -1387, 1.000000, 0.000000, 0.000000, 0.000000 -1388, 1.000000, 0.000000, 0.000000, 0.000000 -1389, 1.000000, 0.000000, 0.000000, 0.000000 -1390, 1.000000, 0.000000, 0.000000, 0.000000 -1391, 1.000000, 0.000000, 0.000000, 0.000000 -1392, 1.000000, 0.000000, 0.000000, 0.000000 -1393, 1.000000, 0.000000, 0.000000, 0.000000 -1394, 1.000000, 0.000000, 0.000000, 0.000000 -1395, 1.000000, 0.000000, 0.000000, 0.000000 -1396, 1.000000, 0.000000, 0.000000, 0.000000 -1397, 1.000000, 0.000000, 0.000000, 0.000000 -1398, 1.000000, 0.000000, 0.000000, 0.000000 -1399, 1.000000, 0.000000, 0.000000, 0.000000 -1400, 1.000000, 0.000000, 0.000000, 0.000000 -1401, 1.000000, 0.000000, 0.000000, 0.000000 -1402, 1.000000, 0.000000, 0.000000, 0.000000 -1403, 1.000000, 0.000000, 0.000000, 0.000000 -1404, 1.000000, 0.000000, 0.000000, 0.000000 -1405, 1.000000, 0.000000, 0.000000, 0.000000 -1406, 1.000000, 0.000000, 0.000000, 0.000000 -1407, 1.000000, 0.000000, 0.000000, 0.000000 -1408, 1.000000, 0.000000, 0.000000, 0.000000 -1409, 1.000000, 0.000000, 0.000000, 0.000000 -1410, 1.000000, 0.000000, 0.000000, 0.000000 -1411, 1.000000, 0.000000, 0.000000, 0.000000 -1412, 1.000000, 0.000000, 0.000000, 0.000000 -1413, 1.000000, 0.000000, 0.000000, 0.000000 -1414, 1.000000, 0.000000, 0.000000, 0.000000 -1415, 1.000000, 0.000000, 0.000000, 0.000000 -1416, 1.000000, 0.000000, 0.000000, 0.000000 -1417, 1.000000, 0.000000, 0.000000, 0.000000 -1418, 1.000000, 0.000000, 0.000000, 0.000000 -1419, 1.000000, 0.000000, 0.000000, 0.000000 -1420, 1.000000, 0.000000, 0.000000, 0.000000 -1421, 1.000000, 0.000000, 0.000000, 0.000000 -1422, 1.000000, 0.000000, 0.000000, 0.000000 -1423, 1.000000, 0.000000, 0.000000, 0.000000 -1424, 1.000000, 0.000000, 0.000000, 0.000000 -1425, 1.000000, 0.000000, 0.000000, 0.000000 -1426, 1.000000, 0.000000, 0.000000, 0.000000 -1427, 1.000000, 0.000000, 0.000000, 0.000000 -1428, 1.000000, 0.000000, 0.000000, 0.000000 -1429, 1.000000, 0.000000, 0.000000, 0.000000 -1430, 1.000000, 0.000000, 0.000000, 0.000000 -1431, 1.000000, 0.000000, 0.000000, 0.000000 -1432, 1.000000, 0.000000, 0.000000, 0.000000 -1433, 1.000000, 0.000000, 0.000000, 0.000000 -1434, 1.000000, 0.000000, 0.000000, 0.000000 -1435, 1.000000, 0.000000, 0.000000, 0.000000 -1436, 1.000000, 0.000000, 0.000000, 0.000000 -1437, 1.000000, 0.000000, 0.000000, 0.000000 -1438, 1.000000, 0.000000, 0.000000, 0.000000 -1439, 1.000000, 0.000000, 0.000000, 0.000000 -1440, 1.000000, 0.000000, 0.000000, 0.000000 -1441, 1.000000, 0.000000, 0.000000, 0.000000 -1442, 1.000000, 0.000000, 0.000000, 0.000000 -1443, 1.000000, 0.000000, 0.000000, 0.000000 -1444, 1.000000, 0.000000, 0.000000, 0.000000 -1445, 1.000000, 0.000000, 0.000000, 0.000000 -1446, 1.000000, 0.000000, 0.000000, 0.000000 -1447, 1.000000, 0.000000, 0.000000, 0.000000 -1448, 1.000000, 0.000000, 0.000000, 0.000000 -1449, 1.000000, 0.000000, 0.000000, 0.000000 -1450, 1.000000, 0.000000, 0.000000, 0.000000 -1451, 1.000000, 0.000000, 0.000000, 0.000000 -1452, 1.000000, 0.000000, 0.000000, 0.000000 -1453, 1.000000, 0.000000, 0.000000, 0.000000 -1454, 1.000000, 0.000000, 0.000000, 0.000000 -1455, 1.000000, 0.000000, 0.000000, 0.000000 -1456, 1.000000, 0.000000, 0.000000, 0.000000 -1457, 1.000000, 0.000000, 0.000000, 0.000000 -1458, 1.000000, 0.000000, 0.000000, 0.000000 -1459, 1.000000, 0.000000, 0.000000, 0.000000 -1460, 1.000000, 0.000000, 0.000000, 0.000000 -1461, 1.000000, 0.000000, 0.000000, 0.000000 -1462, 1.000000, 0.000000, 0.000000, 0.000000 -1463, 1.000000, 0.000000, 0.000000, 0.000000 -1464, 1.000000, 0.000000, 0.000000, 0.000000 -1465, 1.000000, 0.000000, 0.000000, 0.000000 -1466, 1.000000, 0.000000, 0.000000, 0.000000 -1467, 1.000000, 0.000000, 0.000000, 0.000000 -1468, 1.000000, 0.000000, 0.000000, 0.000000 -1469, 1.000000, 0.000000, 0.000000, 0.000000 -1470, 1.000000, 0.000000, 0.000000, 0.000000 -1471, 1.000000, 0.000000, 0.000000, 0.000000 -1472, 1.000000, 0.000000, 0.000000, 0.000000 -1473, 1.000000, 0.000000, 0.000000, 0.000000 -1474, 1.000000, 0.000000, 0.000000, 0.000000 -1475, 1.000000, 0.000000, 0.000000, 0.000000 -1476, 1.000000, 0.000000, 0.000000, 0.000000 -1477, 1.000000, 0.000000, 0.000000, 0.000000 -1478, 1.000000, 0.000000, 0.000000, 0.000000 -1479, 1.000000, 0.000000, 0.000000, 0.000000 -1480, 1.000000, 0.000000, 0.000000, 0.000000 -1481, 1.000000, 0.000000, 0.000000, 0.000000 -1482, 1.000000, 0.000000, 0.000000, 0.000000 -1483, 1.000000, 0.000000, 0.000000, 0.000000 -1484, 1.000000, 0.000000, 0.000000, 0.000000 -1485, 1.000000, 0.000000, 0.000000, 0.000000 -1486, 1.000000, 0.000000, 0.000000, 0.000000 -1487, 1.000000, 0.000000, 0.000000, 0.000000 -1488, 1.000000, 0.000000, 0.000000, 0.000000 -1489, 1.000000, 0.000000, 0.000000, 0.000000 -1490, 1.000000, 0.000000, 0.000000, 0.000000 -1491, 1.000000, 0.000000, 0.000000, 0.000000 -1492, 1.000000, 0.000000, 0.000000, 0.000000 -1493, 1.000000, 0.000000, 0.000000, 0.000000 -1494, 1.000000, 0.000000, 0.000000, 0.000000 -1495, 1.000000, 0.000000, 0.000000, 0.000000 -1496, 1.000000, 0.000000, 0.000000, 0.000000 -1497, 1.000000, 0.000000, 0.000000, 0.000000 -1498, 1.000000, 0.000000, 0.000000, 0.000000 -1499, 1.000000, 0.000000, 0.000000, 0.000000 -1500, 1.000000, 0.000000, 0.000000, 0.000000 -1501, 1.000000, 0.000000, 0.000000, 0.000000 -1502, 1.000000, 0.000000, 0.000000, 0.000000 -1503, 1.000000, 0.000000, 0.000000, 0.000000 -1504, 1.000000, 0.000000, 0.000000, 0.000000 -1505, 1.000000, 0.000000, 0.000000, 0.000000 -1506, 1.000000, 0.000000, 0.000000, 0.000000 -1507, 1.000000, 0.000000, 0.000000, 0.000000 -1508, 1.000000, 0.000000, 0.000000, 0.000000 -1509, 1.000000, 0.000000, 0.000000, 0.000000 -1510, 1.000000, 0.000000, 0.000000, 0.000000 -1511, 1.000000, 0.000000, 0.000000, 0.000000 -1512, 1.000000, 0.000000, 0.000000, 0.000000 -1513, 1.000000, 0.000000, 0.000000, 0.000000 -1514, 1.000000, 0.000000, 0.000000, 0.000000 -1515, 1.000000, 0.000000, 0.000000, 0.000000 -1516, 1.000000, 0.000000, 0.000000, 0.000000 -1517, 1.000000, 0.000000, 0.000000, 0.000000 -1518, 1.000000, 0.000000, 0.000000, 0.000000 -1519, 1.000000, 0.000000, 0.000000, 0.000000 -1520, 1.000000, 0.000000, 0.000000, 0.000000 -1521, 1.000000, 0.000000, 0.000000, 0.000000 -1522, 1.000000, 0.000000, 0.000000, 0.000000 -1523, 1.000000, 0.000000, 0.000000, 0.000000 -1524, 1.000000, 0.000000, 0.000000, 0.000000 -1525, 1.000000, 0.000000, 0.000000, 0.000000 -1526, 1.000000, 0.000000, 0.000000, 0.000000 -1527, 1.000000, 0.000000, 0.000000, 0.000000 -1528, 1.000000, 0.000000, 0.000000, 0.000000 -1529, 1.000000, 0.000000, 0.000000, 0.000000 -1530, 1.000000, 0.000000, 0.000000, 0.000000 -1531, 1.000000, 0.000000, 0.000000, 0.000000 -1532, 1.000000, 0.000000, 0.000000, 0.000000 -1533, 1.000000, 0.000000, 0.000000, 0.000000 -1534, 1.000000, 0.000000, 0.000000, 0.000000 -1535, 1.000000, 0.000000, 0.000000, 0.000000 -1536, 1.000000, 0.000000, 0.000000, 0.000000 -1537, 1.000000, 0.000000, 0.000000, 0.000000 -1538, 1.000000, 0.000000, 0.000000, 0.000000 -1539, 1.000000, 0.000000, 0.000000, 0.000000 -1540, 1.000000, 0.000000, 0.000000, 0.000000 -1541, 1.000000, 0.000000, 0.000000, 0.000000 -1542, 1.000000, 0.000000, 0.000000, 0.000000 -1543, 1.000000, 0.000000, 0.000000, 0.000000 -1544, 1.000000, 0.000000, 0.000000, 0.000000 -1545, 1.000000, 0.000000, 0.000000, 0.000000 -1546, 1.000000, 0.000000, 0.000000, 0.000000 -1547, 1.000000, 0.000000, 0.000000, 0.000000 -1548, 1.000000, 0.000000, 0.000000, 0.000000 -1549, 1.000000, 0.000000, 0.000000, 0.000000 -1550, 1.000000, 0.000000, 0.000000, 0.000000 -1551, 1.000000, 0.000000, 0.000000, 0.000000 -1552, 1.000000, 0.000000, 0.000000, 0.000000 -1553, 1.000000, 0.000000, 0.000000, 0.000000 -1554, 1.000000, 0.000000, 0.000000, 0.000000 -1555, 1.000000, 0.000000, 0.000000, 0.000000 -1556, 1.000000, 0.000000, 0.000000, 0.000000 -1557, 1.000000, 0.000000, 0.000000, 0.000000 -1558, 1.000000, 0.000000, 0.000000, 0.000000 -1559, 1.000000, 0.000000, 0.000000, 0.000000 -1560, 1.000000, 0.000000, 0.000000, 0.000000 -1561, 1.000000, 0.000000, 0.000000, 0.000000 -1562, 1.000000, 0.000000, 0.000000, 0.000000 -1563, 1.000000, 0.000000, 0.000000, 0.000000 -1564, 1.000000, 0.000000, 0.000000, 0.000000 -1565, 1.000000, 0.000000, 0.000000, 0.000000 -1566, 1.000000, 0.000000, 0.000000, 0.000000 -1567, 1.000000, 0.000000, 0.000000, 0.000000 -1568, 1.000000, 0.000000, 0.000000, 0.000000 -1569, 1.000000, 0.000000, 0.000000, 0.000000 -1570, 1.000000, 0.000000, 0.000000, 0.000000 -1571, 1.000000, 0.000000, 0.000000, 0.000000 -1572, 1.000000, 0.000000, 0.000000, 0.000000 -1573, 1.000000, 0.000000, 0.000000, 0.000000 -1574, 1.000000, 0.000000, 0.000000, 0.000000 -1575, 1.000000, 0.000000, 0.000000, 0.000000 -1576, 1.000000, 0.000000, 0.000000, 0.000000 -1577, 1.000000, 0.000000, 0.000000, 0.000000 -1578, 1.000000, 0.000000, 0.000000, 0.000000 -1579, 1.000000, 0.000000, 0.000000, 0.000000 -1580, 1.000000, 0.000000, 0.000000, 0.000000 -1581, 1.000000, 0.000000, 0.000000, 0.000000 -1582, 1.000000, 0.000000, 0.000000, 0.000000 -1583, 1.000000, 0.000000, 0.000000, 0.000000 -1584, 1.000000, 0.000000, 0.000000, 0.000000 -1585, 1.000000, 0.000000, 0.000000, 0.000000 -1586, 1.000000, 0.000000, 0.000000, 0.000000 -1587, 1.000000, 0.000000, 0.000000, 0.000000 -1588, 1.000000, 0.000000, 0.000000, 0.000000 -1589, 1.000000, 0.000000, 0.000000, 0.000000 -1590, 1.000000, 0.000000, 0.000000, 0.000000 -1591, 1.000000, 0.000000, 0.000000, 0.000000 -1592, 1.000000, 0.000000, 0.000000, 0.000000 -1593, 1.000000, 0.000000, 0.000000, 0.000000 -1594, 1.000000, 0.000000, 0.000000, 0.000000 -1595, 1.000000, 0.000000, 0.000000, 0.000000 -1596, 1.000000, 0.000000, 0.000000, 0.000000 -1597, 1.000000, 0.000000, 0.000000, 0.000000 -1598, 1.000000, 0.000000, 0.000000, 0.000000 -1599, 1.000000, 0.000000, 0.000000, 0.000000 -1600, 1.000000, 0.000000, 0.000000, 0.000000 -1601, 1.000000, 0.000000, 0.000000, 0.000000 -1602, 1.000000, 0.000000, 0.000000, 0.000000 -1603, 1.000000, 0.000000, 0.000000, 0.000000 -1604, 1.000000, 0.000000, 0.000000, 0.000000 -1605, 1.000000, 0.000000, 0.000000, 0.000000 -1606, 1.000000, 0.000000, 0.000000, 0.000000 -1607, 1.000000, 0.000000, 0.000000, 0.000000 -1608, 1.000000, 0.000000, 0.000000, 0.000000 -1609, 1.000000, 0.000000, 0.000000, 0.000000 -1610, 1.000000, 0.000000, 0.000000, 0.000000 -1611, 1.000000, 0.000000, 0.000000, 0.000000 -1612, 1.000000, 0.000000, 0.000000, 0.000000 -1613, 1.000000, 0.000000, 0.000000, 0.000000 -1614, 1.000000, 0.000000, 0.000000, 0.000000 -1615, 1.000000, 0.000000, 0.000000, 0.000000 -1616, 1.000000, 0.000000, 0.000000, 0.000000 -1617, 1.000000, 0.000000, 0.000000, 0.000000 -1618, 1.000000, 0.000000, 0.000000, 0.000000 -1619, 1.000000, 0.000000, 0.000000, 0.000000 -1620, 1.000000, 0.000000, 0.000000, 0.000000 -1621, 1.000000, 0.000000, 0.000000, 0.000000 -1622, 1.000000, 0.000000, 0.000000, 0.000000 -1623, 1.000000, 0.000000, 0.000000, 0.000000 -1624, 1.000000, 0.000000, 0.000000, 0.000000 -1625, 1.000000, 0.000000, 0.000000, 0.000000 -1626, 1.000000, 0.000000, 0.000000, 0.000000 -1627, 1.000000, 0.000000, 0.000000, 0.000000 -1628, 1.000000, 0.000000, 0.000000, 0.000000 -1629, 1.000000, 0.000000, 0.000000, 0.000000 -1630, 1.000000, 0.000000, 0.000000, 0.000000 -1631, 1.000000, 0.000000, 0.000000, 0.000000 -1632, 1.000000, 0.000000, 0.000000, 0.000000 -1633, 1.000000, 0.000000, 0.000000, 0.000000 -1634, 1.000000, 0.000000, 0.000000, 0.000000 -1635, 1.000000, 0.000000, 0.000000, 0.000000 -1636, 1.000000, 0.000000, 0.000000, 0.000000 -1637, 1.000000, 0.000000, 0.000000, 0.000000 -1638, 1.000000, 0.000000, 0.000000, 0.000000 -1639, 1.000000, 0.000000, 0.000000, 0.000000 -1640, 1.000000, 0.000000, 0.000000, 0.000000 -1641, 1.000000, 0.000000, 0.000000, 0.000000 -1642, 1.000000, 0.000000, 0.000000, 0.000000 -1643, 1.000000, 0.000000, 0.000000, 0.000000 -1644, 1.000000, 0.000000, 0.000000, 0.000000 -1645, 1.000000, 0.000000, 0.000000, 0.000000 -1646, 1.000000, 0.000000, 0.000000, 0.000000 -1647, 1.000000, 0.000000, 0.000000, 0.000000 -1648, 1.000000, 0.000000, 0.000000, 0.000000 -1649, 1.000000, 0.000000, 0.000000, 0.000000 -1650, 1.000000, 0.000000, 0.000000, 0.000000 -1651, 1.000000, 0.000000, 0.000000, 0.000000 -1652, 1.000000, 0.000000, 0.000000, 0.000000 -1653, 1.000000, 0.000000, 0.000000, 0.000000 -1654, 1.000000, 0.000000, 0.000000, 0.000000 -1655, 1.000000, 0.000000, 0.000000, 0.000000 -1656, 1.000000, 0.000000, 0.000000, 0.000000 -1657, 1.000000, 0.000000, 0.000000, 0.000000 -1658, 1.000000, 0.000000, 0.000000, 0.000000 -1659, 1.000000, 0.000000, 0.000000, 0.000000 -1660, 1.000000, 0.000000, 0.000000, 0.000000 -1661, 1.000000, 0.000000, 0.000000, 0.000000 -1662, 1.000000, 0.000000, 0.000000, 0.000000 -1663, 1.000000, 0.000000, 0.000000, 0.000000 -1664, 1.000000, 0.000000, 0.000000, 0.000000 -1665, 1.000000, 0.000000, 0.000000, 0.000000 -1666, 1.000000, 0.000000, 0.000000, 0.000000 -1667, 1.000000, 0.000000, 0.000000, 0.000000 -1668, 1.000000, 0.000000, 0.000000, 0.000000 -1669, 1.000000, 0.000000, 0.000000, 0.000000 -1670, 1.000000, 0.000000, 0.000000, 0.000000 -1671, 1.000000, 0.000000, 0.000000, 0.000000 -1672, 1.000000, 0.000000, 0.000000, 0.000000 -1673, 1.000000, 0.000000, 0.000000, 0.000000 -1674, 1.000000, 0.000000, 0.000000, 0.000000 -1675, 1.000000, 0.000000, 0.000000, 0.000000 -1676, 1.000000, 0.000000, 0.000000, 0.000000 -1677, 1.000000, 0.000000, 0.000000, 0.000000 -1678, 1.000000, 0.000000, 0.000000, 0.000000 -1679, 1.000000, 0.000000, 0.000000, 0.000000 -1680, 1.000000, 0.000000, 0.000000, 0.000000 -1681, 1.000000, 0.000000, 0.000000, 0.000000 -1682, 1.000000, 0.000000, 0.000000, 0.000000 -1683, 1.000000, 0.000000, 0.000000, 0.000000 -1684, 1.000000, 0.000000, 0.000000, 0.000000 -1685, 1.000000, 0.000000, 0.000000, 0.000000 -1686, 1.000000, 0.000000, 0.000000, 0.000000 -1687, 1.000000, 0.000000, 0.000000, 0.000000 -1688, 1.000000, 0.000000, 0.000000, 0.000000 -1689, 1.000000, 0.000000, 0.000000, 0.000000 -1690, 1.000000, 0.000000, 0.000000, 0.000000 -1691, 1.000000, 0.000000, 0.000000, 0.000000 -1692, 1.000000, 0.000000, 0.000000, 0.000000 -1693, 1.000000, 0.000000, 0.000000, 0.000000 -1694, 1.000000, 0.000000, 0.000000, 0.000000 -1695, 1.000000, 0.000000, 0.000000, 0.000000 -1696, 1.000000, 0.000000, 0.000000, 0.000000 -1697, 1.000000, 0.000000, 0.000000, 0.000000 -1698, 1.000000, 0.000000, 0.000000, 0.000000 -1699, 1.000000, 0.000000, 0.000000, 0.000000 -1700, 1.000000, 0.000000, 0.000000, 0.000000 -1701, 1.000000, 0.000000, 0.000000, 0.000000 -1702, 1.000000, 0.000000, 0.000000, 0.000000 -1703, 1.000000, 0.000000, 0.000000, 0.000000 -1704, 1.000000, 0.000000, 0.000000, 0.000000 -1705, 1.000000, 0.000000, 0.000000, 0.000000 -1706, 1.000000, 0.000000, 0.000000, 0.000000 -1707, 1.000000, 0.000000, 0.000000, 0.000000 -1708, 1.000000, 0.000000, 0.000000, 0.000000 -1709, 1.000000, 0.000000, 0.000000, 0.000000 -1710, 1.000000, 0.000000, 0.000000, 0.000000 -1711, 1.000000, 0.000000, 0.000000, 0.000000 -1712, 1.000000, 0.000000, 0.000000, 0.000000 -1713, 1.000000, 0.000000, 0.000000, 0.000000 -1714, 1.000000, 0.000000, 0.000000, 0.000000 -1715, 1.000000, 0.000000, 0.000000, 0.000000 -1716, 1.000000, 0.000000, 0.000000, 0.000000 -1717, 1.000000, 0.000000, 0.000000, 0.000000 -1718, 1.000000, 0.000000, 0.000000, 0.000000 -1719, 1.000000, 0.000000, 0.000000, 0.000000 -1720, 1.000000, 0.000000, 0.000000, 0.000000 -1721, 1.000000, 0.000000, 0.000000, 0.000000 -1722, 1.000000, 0.000000, 0.000000, 0.000000 -1723, 1.000000, 0.000000, 0.000000, 0.000000 -1724, 1.000000, 0.000000, 0.000000, 0.000000 -1725, 1.000000, 0.000000, 0.000000, 0.000000 -1726, 1.000000, 0.000000, 0.000000, 0.000000 -1727, 1.000000, 0.000000, 0.000000, 0.000000 -1728, 1.000000, 0.000000, 0.000000, 0.000000 -1729, 1.000000, 0.000000, 0.000000, 0.000000 -1730, 1.000000, 0.000000, 0.000000, 0.000000 -1731, 1.000000, 0.000000, 0.000000, 0.000000 -1732, 1.000000, 0.000000, 0.000000, 0.000000 -1733, 1.000000, 0.000000, 0.000000, 0.000000 -1734, 1.000000, 0.000000, 0.000000, 0.000000 -1735, 1.000000, 0.000000, 0.000000, 0.000000 -1736, 1.000000, 0.000000, 0.000000, 0.000000 -1737, 1.000000, 0.000000, 0.000000, 0.000000 -1738, 1.000000, 0.000000, 0.000000, 0.000000 -1739, 1.000000, 0.000000, 0.000000, 0.000000 -1740, 1.000000, 0.000000, 0.000000, 0.000000 -1741, 1.000000, 0.000000, 0.000000, 0.000000 -1742, 1.000000, 0.000000, 0.000000, 0.000000 -1743, 1.000000, 0.000000, 0.000000, 0.000000 -1744, 1.000000, 0.000000, 0.000000, 0.000000 -1745, 1.000000, 0.000000, 0.000000, 0.000000 -1746, 1.000000, 0.000000, 0.000000, 0.000000 -1747, 1.000000, 0.000000, 0.000000, 0.000000 -1748, 1.000000, 0.000000, 0.000000, 0.000000 -1749, 1.000000, 0.000000, 0.000000, 0.000000 -1750, 1.000000, 0.000000, 0.000000, 0.000000 -1751, 1.000000, 0.000000, 0.000000, 0.000000 -1752, 1.000000, 0.000000, 0.000000, 0.000000 -1753, 1.000000, 0.000000, 0.000000, 0.000000 -1754, 1.000000, 0.000000, 0.000000, 0.000000 -1755, 1.000000, 0.000000, 0.000000, 0.000000 -1756, 1.000000, 0.000000, 0.000000, 0.000000 -1757, 1.000000, 0.000000, 0.000000, 0.000000 -1758, 1.000000, 0.000000, 0.000000, 0.000000 -1759, 1.000000, 0.000000, 0.000000, 0.000000 -1760, 1.000000, 0.000000, 0.000000, 0.000000 -1761, 1.000000, 0.000000, 0.000000, 0.000000 -1762, 1.000000, 0.000000, 0.000000, 0.000000 -1763, 1.000000, 0.000000, 0.000000, 0.000000 -1764, 1.000000, 0.000000, 0.000000, 0.000000 -1765, 1.000000, 0.000000, 0.000000, 0.000000 -1766, 1.000000, 0.000000, 0.000000, 0.000000 -1767, 1.000000, 0.000000, 0.000000, 0.000000 -1768, 1.000000, 0.000000, 0.000000, 0.000000 -1769, 1.000000, 0.000000, 0.000000, 0.000000 -1770, 1.000000, 0.000000, 0.000000, 0.000000 -1771, 1.000000, 0.000000, 0.000000, 0.000000 -1772, 1.000000, 0.000000, 0.000000, 0.000000 -1773, 1.000000, 0.000000, 0.000000, 0.000000 -1774, 1.000000, 0.000000, 0.000000, 0.000000 -1775, 1.000000, 0.000000, 0.000000, 0.000000 -1776, 1.000000, 0.000000, 0.000000, 0.000000 -1777, 1.000000, 0.000000, 0.000000, 0.000000 -1778, 1.000000, 0.000000, 0.000000, 0.000000 -1779, 1.000000, 0.000000, 0.000000, 0.000000 -1780, 1.000000, 0.000000, 0.000000, 0.000000 -1781, 1.000000, 0.000000, 0.000000, 0.000000 -1782, 1.000000, 0.000000, 0.000000, 0.000000 -1783, 1.000000, 0.000000, 0.000000, 0.000000 -1784, 1.000000, 0.000000, 0.000000, 0.000000 -1785, 1.000000, 0.000000, 0.000000, 0.000000 -1786, 1.000000, 0.000000, 0.000000, 0.000000 -1787, 1.000000, 0.000000, 0.000000, 0.000000 -1788, 1.000000, 0.000000, 0.000000, 0.000000 -1789, 1.000000, 0.000000, 0.000000, 0.000000 -1790, 1.000000, 0.000000, 0.000000, 0.000000 -1791, 1.000000, 0.000000, 0.000000, 0.000000 -1792, 1.000000, 0.000000, 0.000000, 0.000000 -1793, 1.000000, 0.000000, 0.000000, 0.000000 -1794, 1.000000, 0.000000, 0.000000, 0.000000 -1795, 1.000000, 0.000000, 0.000000, 0.000000 -1796, 1.000000, 0.000000, 0.000000, 0.000000 -1797, 1.000000, 0.000000, 0.000000, 0.000000 -1798, 1.000000, 0.000000, 0.000000, 0.000000 -1799, 1.000000, 0.000000, 0.000000, 0.000000 -1800, 1.000000, 0.000000, 0.000000, 0.000000 -1801, 1.000000, 0.000000, 0.000000, 0.000000 -1802, 1.000000, 0.000000, 0.000000, 0.000000 -1803, 1.000000, 0.000000, 0.000000, 0.000000 -1804, 1.000000, 0.000000, 0.000000, 0.000000 -1805, 1.000000, 0.000000, 0.000000, 0.000000 -1806, 1.000000, 0.000000, 0.000000, 0.000000 -1807, 1.000000, 0.000000, 0.000000, 0.000000 -1808, 1.000000, 0.000000, 0.000000, 0.000000 -1809, 1.000000, 0.000000, 0.000000, 0.000000 -1810, 1.000000, 0.000000, 0.000000, 0.000000 -1811, 1.000000, 0.000000, 0.000000, 0.000000 -1812, 1.000000, 0.000000, 0.000000, 0.000000 -1813, 1.000000, 0.000000, 0.000000, 0.000000 -1814, 1.000000, 0.000000, 0.000000, 0.000000 -1815, 1.000000, 0.000000, 0.000000, 0.000000 -1816, 1.000000, 0.000000, 0.000000, 0.000000 -1817, 1.000000, 0.000000, 0.000000, 0.000000 -1818, 1.000000, 0.000000, 0.000000, 0.000000 -1819, 1.000000, 0.000000, 0.000000, 0.000000 -1820, 1.000000, 0.000000, 0.000000, 0.000000 -1821, 1.000000, 0.000000, 0.000000, 0.000000 -1822, 1.000000, 0.000000, 0.000000, 0.000000 -1823, 1.000000, 0.000000, 0.000000, 0.000000 -1824, 1.000000, 0.000000, 0.000000, 0.000000 -1825, 1.000000, 0.000000, 0.000000, 0.000000 -1826, 1.000000, 0.000000, 0.000000, 0.000000 -1827, 1.000000, 0.000000, 0.000000, 0.000000 -1828, 1.000000, 0.000000, 0.000000, 0.000000 -1829, 1.000000, 0.000000, 0.000000, 0.000000 -1830, 1.000000, 0.000000, 0.000000, 0.000000 -1831, 1.000000, 0.000000, 0.000000, 0.000000 -1832, 1.000000, 0.000000, 0.000000, 0.000000 -1833, 1.000000, 0.000000, 0.000000, 0.000000 -1834, 1.000000, 0.000000, 0.000000, 0.000000 -1835, 1.000000, 0.000000, 0.000000, 0.000000 -1836, 1.000000, 0.000000, 0.000000, 0.000000 -1837, 1.000000, 0.000000, 0.000000, 0.000000 -1838, 1.000000, 0.000000, 0.000000, 0.000000 -1839, 1.000000, 0.000000, 0.000000, 0.000000 -1840, 1.000000, 0.000000, 0.000000, 0.000000 -1841, 1.000000, 0.000000, 0.000000, 0.000000 -1842, 1.000000, 0.000000, 0.000000, 0.000000 -1843, 1.000000, 0.000000, 0.000000, 0.000000 -1844, 1.000000, 0.000000, 0.000000, 0.000000 -1845, 1.000000, 0.000000, 0.000000, 0.000000 -1846, 1.000000, 0.000000, 0.000000, 0.000000 -1847, 1.000000, 0.000000, 0.000000, 0.000000 -1848, 1.000000, 0.000000, 0.000000, 0.000000 -1849, 1.000000, 0.000000, 0.000000, 0.000000 -1850, 1.000000, 0.000000, 0.000000, 0.000000 -1851, 1.000000, 0.000000, 0.000000, 0.000000 -1852, 1.000000, 0.000000, 0.000000, 0.000000 -1853, 1.000000, 0.000000, 0.000000, 0.000000 -1854, 1.000000, 0.000000, 0.000000, 0.000000 -1855, 1.000000, 0.000000, 0.000000, 0.000000 -1856, 1.000000, 0.000000, 0.000000, 0.000000 -1857, 1.000000, 0.000000, 0.000000, 0.000000 -1858, 1.000000, 0.000000, 0.000000, 0.000000 -1859, 1.000000, 0.000000, 0.000000, 0.000000 -1860, 1.000000, 0.000000, 0.000000, 0.000000 -1861, 1.000000, 0.000000, 0.000000, 0.000000 -1862, 1.000000, 0.000000, 0.000000, 0.000000 -1863, 1.000000, 0.000000, 0.000000, 0.000000 -1864, 1.000000, 0.000000, 0.000000, 0.000000 -1865, 1.000000, 0.000000, 0.000000, 0.000000 -1866, 1.000000, 0.000000, 0.000000, 0.000000 -1867, 1.000000, 0.000000, 0.000000, 0.000000 -1868, 1.000000, 0.000000, 0.000000, 0.000000 -1869, 1.000000, 0.000000, 0.000000, 0.000000 -1870, 1.000000, 0.000000, 0.000000, 0.000000 -1871, 1.000000, 0.000000, 0.000000, 0.000000 -1872, 1.000000, 0.000000, 0.000000, 0.000000 -1873, 1.000000, 0.000000, 0.000000, 0.000000 -1874, 1.000000, 0.000000, 0.000000, 0.000000 -1875, 1.000000, 0.000000, 0.000000, 0.000000 -1876, 1.000000, 0.000000, 0.000000, 0.000000 -1877, 1.000000, 0.000000, 0.000000, 0.000000 -1878, 1.000000, 0.000000, 0.000000, 0.000000 -1879, 1.000000, 0.000000, 0.000000, 0.000000 -1880, 1.000000, 0.000000, 0.000000, 0.000000 -1881, 1.000000, 0.000000, 0.000000, 0.000000 -1882, 1.000000, 0.000000, 0.000000, 0.000000 -1883, 1.000000, 0.000000, 0.000000, 0.000000 -1884, 1.000000, 0.000000, 0.000000, 0.000000 -1885, 1.000000, 0.000000, 0.000000, 0.000000 -1886, 1.000000, 0.000000, 0.000000, 0.000000 -1887, 1.000000, 0.000000, 0.000000, 0.000000 -1888, 1.000000, 0.000000, 0.000000, 0.000000 -1889, 1.000000, 0.000000, 0.000000, 0.000000 -1890, 1.000000, 0.000000, 0.000000, 0.000000 -1891, 1.000000, 0.000000, 0.000000, 0.000000 -1892, 1.000000, 0.000000, 0.000000, 0.000000 -1893, 1.000000, 0.000000, 0.000000, 0.000000 -1894, 1.000000, 0.000000, 0.000000, 0.000000 -1895, 1.000000, 0.000000, 0.000000, 0.000000 -1896, 1.000000, 0.000000, 0.000000, 0.000000 -1897, 1.000000, 0.000000, 0.000000, 0.000000 -1898, 1.000000, 0.000000, 0.000000, 0.000000 -1899, 1.000000, 0.000000, 0.000000, 0.000000 -1900, 1.000000, 0.000000, 0.000000, 0.000000 -1901, 1.000000, 0.000000, 0.000000, 0.000000 -1902, 1.000000, 0.000000, 0.000000, 0.000000 -1903, 1.000000, 0.000000, 0.000000, 0.000000 -1904, 1.000000, 0.000000, 0.000000, 0.000000 -1905, 1.000000, 0.000000, 0.000000, 0.000000 -1906, 1.000000, 0.000000, 0.000000, 0.000000 -1907, 1.000000, 0.000000, 0.000000, 0.000000 -1908, 1.000000, 0.000000, 0.000000, 0.000000 -1909, 1.000000, 0.000000, 0.000000, 0.000000 -1910, 1.000000, 0.000000, 0.000000, 0.000000 -1911, 1.000000, 0.000000, 0.000000, 0.000000 -1912, 1.000000, 0.000000, 0.000000, 0.000000 -1913, 1.000000, 0.000000, 0.000000, 0.000000 -1914, 1.000000, 0.000000, 0.000000, 0.000000 -1915, 1.000000, 0.000000, 0.000000, 0.000000 -1916, 1.000000, 0.000000, 0.000000, 0.000000 -1917, 1.000000, 0.000000, 0.000000, 0.000000 -1918, 1.000000, 0.000000, 0.000000, 0.000000 -1919, 1.000000, 0.000000, 0.000000, 0.000000 -1920, 1.000000, 0.000000, 0.000000, 0.000000 -1921, 1.000000, 0.000000, 0.000000, 0.000000 -1922, 1.000000, 0.000000, 0.000000, 0.000000 -1923, 1.000000, 0.000000, 0.000000, 0.000000 -1924, 1.000000, 0.000000, 0.000000, 0.000000 -1925, 1.000000, 0.000000, 0.000000, 0.000000 -1926, 1.000000, 0.000000, 0.000000, 0.000000 -1927, 1.000000, 0.000000, 0.000000, 0.000000 -1928, 1.000000, 0.000000, 0.000000, 0.000000 -1929, 1.000000, 0.000000, 0.000000, 0.000000 -1930, 1.000000, 0.000000, 0.000000, 0.000000 -1931, 1.000000, 0.000000, 0.000000, 0.000000 -1932, 1.000000, 0.000000, 0.000000, 0.000000 -1933, 1.000000, 0.000000, 0.000000, 0.000000 -1934, 1.000000, 0.000000, 0.000000, 0.000000 -1935, 1.000000, 0.000000, 0.000000, 0.000000 -1936, 1.000000, 0.000000, 0.000000, 0.000000 -1937, 1.000000, 0.000000, 0.000000, 0.000000 -1938, 1.000000, 0.000000, 0.000000, 0.000000 -1939, 1.000000, 0.000000, 0.000000, 0.000000 -1940, 1.000000, 0.000000, 0.000000, 0.000000 -1941, 1.000000, 0.000000, 0.000000, 0.000000 -1942, 1.000000, 0.000000, 0.000000, 0.000000 -1943, 1.000000, 0.000000, 0.000000, 0.000000 -1944, 1.000000, 0.000000, 0.000000, 0.000000 -1945, 1.000000, 0.000000, 0.000000, 0.000000 -1946, 1.000000, 0.000000, 0.000000, 0.000000 -1947, 1.000000, 0.000000, 0.000000, 0.000000 -1948, 1.000000, 0.000000, 0.000000, 0.000000 -1949, 1.000000, 0.000000, 0.000000, 0.000000 -1950, 1.000000, 0.000000, 0.000000, 0.000000 -1951, 1.000000, 0.000000, 0.000000, 0.000000 -1952, 1.000000, 0.000000, 0.000000, 0.000000 -1953, 1.000000, 0.000000, 0.000000, 0.000000 -1954, 1.000000, 0.000000, 0.000000, 0.000000 -1955, 1.000000, 0.000000, 0.000000, 0.000000 -1956, 1.000000, 0.000000, 0.000000, 0.000000 -1957, 1.000000, 0.000000, 0.000000, 0.000000 -1958, 1.000000, 0.000000, 0.000000, 0.000000 -1959, 1.000000, 0.000000, 0.000000, 0.000000 -1960, 1.000000, 0.000000, 0.000000, 0.000000 -1961, 1.000000, 0.000000, 0.000000, 0.000000 -1962, 1.000000, 0.000000, 0.000000, 0.000000 -1963, 1.000000, 0.000000, 0.000000, 0.000000 -1964, 1.000000, 0.000000, 0.000000, 0.000000 -1965, 1.000000, 0.000000, 0.000000, 0.000000 -1966, 1.000000, 0.000000, 0.000000, 0.000000 -1967, 1.000000, 0.000000, 0.000000, 0.000000 -1968, 1.000000, 0.000000, 0.000000, 0.000000 -1969, 1.000000, 0.000000, 0.000000, 0.000000 -1970, 1.000000, 0.000000, 0.000000, 0.000000 -1971, 1.000000, 0.000000, 0.000000, 0.000000 -1972, 1.000000, 0.000000, 0.000000, 0.000000 -1973, 1.000000, 0.000000, 0.000000, 0.000000 -1974, 1.000000, 0.000000, 0.000000, 0.000000 -1975, 1.000000, 0.000000, 0.000000, 0.000000 -1976, 1.000000, 0.000000, 0.000000, 0.000000 -1977, 1.000000, 0.000000, 0.000000, 0.000000 -1978, 1.000000, 0.000000, 0.000000, 0.000000 -1979, 1.000000, 0.000000, 0.000000, 0.000000 -1980, 1.000000, 0.000000, 0.000000, 0.000000 -1981, 1.000000, 0.000000, 0.000000, 0.000000 -1982, 1.000000, 0.000000, 0.000000, 0.000000 -1983, 1.000000, 0.000000, 0.000000, 0.000000 -1984, 1.000000, 0.000000, 0.000000, 0.000000 -1985, 1.000000, 0.000000, 0.000000, 0.000000 -1986, 1.000000, 0.000000, 0.000000, 0.000000 -1987, 1.000000, 0.000000, 0.000000, 0.000000 -1988, 1.000000, 0.000000, 0.000000, 0.000000 -1989, 1.000000, 0.000000, 0.000000, 0.000000 -1990, 1.000000, 0.000000, 0.000000, 0.000000 -1991, 1.000000, 0.000000, 0.000000, 0.000000 -1992, 1.000000, 0.000000, 0.000000, 0.000000 -1993, 1.000000, 0.000000, 0.000000, 0.000000 -1994, 1.000000, 0.000000, 0.000000, 0.000000 -1995, 1.000000, 0.000000, 0.000000, 0.000000 -1996, 1.000000, 0.000000, 0.000000, 0.000000 -1997, 1.000000, 0.000000, 0.000000, 0.000000 -1998, 1.000000, 0.000000, 0.000000, 0.000000 -1999, 1.000000, 0.000000, 0.000000, 0.000000 -2000, 1.000000, 0.000000, 0.000000, 0.000000 -2001, 1.000000, 0.000000, 0.000000, 0.000000 -2002, 1.000000, 0.000000, 0.000000, 0.000000 -2003, 1.000000, 0.000000, 0.000000, 0.000000 -2004, 1.000000, 0.000000, 0.000000, 0.000000 -2005, 1.000000, 0.000000, 0.000000, 0.000000 -2006, 1.000000, 0.000000, 0.000000, 0.000000 -2007, 1.000000, 0.000000, 0.000000, 0.000000 -2008, 1.000000, 0.000000, 0.000000, 0.000000 -2009, 1.000000, 0.000000, 0.000000, 0.000000 -2010, 1.000000, 0.000000, 0.000000, 0.000000 -2011, 1.000000, 0.000000, 0.000000, 0.000000 -2012, 1.000000, 0.000000, 0.000000, 0.000000 -2013, 1.000000, 0.000000, 0.000000, 0.000000 -2014, 1.000000, 0.000000, 0.000000, 0.000000 -2015, 1.000000, 0.000000, 0.000000, 0.000000 -2016, 1.000000, 0.000000, 0.000000, 0.000000 -2017, 1.000000, 0.000000, 0.000000, 0.000000 -2018, 1.000000, 0.000000, 0.000000, 0.000000 -2019, 1.000000, 0.000000, 0.000000, 0.000000 -2020, 1.000000, 0.000000, 0.000000, 0.000000 -2021, 1.000000, 0.000000, 0.000000, 0.000000 -2022, 1.000000, 0.000000, 0.000000, 0.000000 -2023, 1.000000, 0.000000, 0.000000, 0.000000 -2024, 1.000000, 0.000000, 0.000000, 0.000000 -2025, 1.000000, 0.000000, 0.000000, 0.000000 -2026, 1.000000, 0.000000, 0.000000, 0.000000 -2027, 1.000000, 0.000000, 0.000000, 0.000000 -2028, 1.000000, 0.000000, 0.000000, 0.000000 -2029, 1.000000, 0.000000, 0.000000, 0.000000 -2030, 1.000000, 0.000000, 0.000000, 0.000000 -2031, 1.000000, 0.000000, 0.000000, 0.000000 -2032, 1.000000, 0.000000, 0.000000, 0.000000 -2033, 1.000000, 0.000000, 0.000000, 0.000000 -2034, 1.000000, 0.000000, 0.000000, 0.000000 -2035, 1.000000, 0.000000, 0.000000, 0.000000 -2036, 1.000000, 0.000000, 0.000000, 0.000000 -2037, 1.000000, 0.000000, 0.000000, 0.000000 -2038, 1.000000, 0.000000, 0.000000, 0.000000 -2039, 1.000000, 0.000000, 0.000000, 0.000000 -2040, 1.000000, 0.000000, 0.000000, 0.000000 -2041, 1.000000, 0.000000, 0.000000, 0.000000 -2042, 1.000000, 0.000000, 0.000000, 0.000000 -2043, 1.000000, 0.000000, 0.000000, 0.000000 -2044, 1.000000, 0.000000, 0.000000, 0.000000 -2045, 1.000000, 0.000000, 0.000000, 0.000000 -2046, 1.000000, 0.000000, 0.000000, 0.000000 -2047, 1.000000, 0.000000, 0.000000, 0.000000 -2048, 1.000000, 0.000000, 0.000000, 0.000000 -2049, 1.000000, 0.000000, 0.000000, 0.000000 -2050, 1.000000, 0.000000, 0.000000, 0.000000 -2051, 1.000000, 0.000000, 0.000000, 0.000000 -2052, 1.000000, 0.000000, 0.000000, 0.000000 -2053, 1.000000, 0.000000, 0.000000, 0.000000 -2054, 1.000000, 0.000000, 0.000000, 0.000000 -2055, 1.000000, 0.000000, 0.000000, 0.000000 -2056, 1.000000, 0.000000, 0.000000, 0.000000 -2057, 1.000000, 0.000000, 0.000000, 0.000000 -2058, 1.000000, 0.000000, 0.000000, 0.000000 -2059, 1.000000, 0.000000, 0.000000, 0.000000 -2060, 1.000000, 0.000000, 0.000000, 0.000000 -2061, 1.000000, 0.000000, 0.000000, 0.000000 -2062, 1.000000, 0.000000, 0.000000, 0.000000 -2063, 1.000000, 0.000000, 0.000000, 0.000000 -2064, 1.000000, 0.000000, 0.000000, 0.000000 -2065, 1.000000, 0.000000, 0.000000, 0.000000 -2066, 1.000000, 0.000000, 0.000000, 0.000000 -2067, 1.000000, 0.000000, 0.000000, 0.000000 -2068, 1.000000, 0.000000, 0.000000, 0.000000 -2069, 1.000000, 0.000000, 0.000000, 0.000000 -2070, 1.000000, 0.000000, 0.000000, 0.000000 -2071, 1.000000, 0.000000, 0.000000, 0.000000 -2072, 1.000000, 0.000000, 0.000000, 0.000000 -2073, 1.000000, 0.000000, 0.000000, 0.000000 -2074, 1.000000, 0.000000, 0.000000, 0.000000 -2075, 1.000000, 0.000000, 0.000000, 0.000000 -2076, 1.000000, 0.000000, 0.000000, 0.000000 -2077, 1.000000, 0.000000, 0.000000, 0.000000 -2078, 1.000000, 0.000000, 0.000000, 0.000000 -2079, 1.000000, 0.000000, 0.000000, 0.000000 -2080, 1.000000, 0.000000, 0.000000, 0.000000 -2081, 1.000000, 0.000000, 0.000000, 0.000000 -2082, 1.000000, 0.000000, 0.000000, 0.000000 -2083, 1.000000, 0.000000, 0.000000, 0.000000 -2084, 1.000000, 0.000000, 0.000000, 0.000000 -2085, 1.000000, 0.000000, 0.000000, 0.000000 -2086, 1.000000, 0.000000, 0.000000, 0.000000 -2087, 1.000000, 0.000000, 0.000000, 0.000000 -2088, 1.000000, 0.000000, 0.000000, 0.000000 -2089, 1.000000, 0.000000, 0.000000, 0.000000 -2090, 1.000000, 0.000000, 0.000000, 0.000000 -2091, 1.000000, 0.000000, 0.000000, 0.000000 -2092, 1.000000, 0.000000, 0.000000, 0.000000 -2093, 1.000000, 0.000000, 0.000000, 0.000000 -2094, 1.000000, 0.000000, 0.000000, 0.000000 -2095, 1.000000, 0.000000, 0.000000, 0.000000 -2096, 1.000000, 0.000000, 0.000000, 0.000000 -2097, 1.000000, 0.000000, 0.000000, 0.000000 -2098, 1.000000, 0.000000, 0.000000, 0.000000 -2099, 1.000000, 0.000000, 0.000000, 0.000000 -2100, 1.000000, 0.000000, 0.000000, 0.000000 -2101, 1.000000, 0.000000, 0.000000, 0.000000 -2102, 1.000000, 0.000000, 0.000000, 0.000000 -2103, 1.000000, 0.000000, 0.000000, 0.000000 -2104, 1.000000, 0.000000, 0.000000, 0.000000 -2105, 1.000000, 0.000000, 0.000000, 0.000000 -2106, 1.000000, 0.000000, 0.000000, 0.000000 -2107, 1.000000, 0.000000, 0.000000, 0.000000 -2108, 1.000000, 0.000000, 0.000000, 0.000000 -2109, 1.000000, 0.000000, 0.000000, 0.000000 -2110, 1.000000, 0.000000, 0.000000, 0.000000 -2111, 1.000000, 0.000000, 0.000000, 0.000000 -2112, 1.000000, 0.000000, 0.000000, 0.000000 -2113, 1.000000, 0.000000, 0.000000, 0.000000 -2114, 1.000000, 0.000000, 0.000000, 0.000000 -2115, 1.000000, 0.000000, 0.000000, 0.000000 -2116, 1.000000, 0.000000, 0.000000, 0.000000 -2117, 1.000000, 0.000000, 0.000000, 0.000000 -2118, 1.000000, 0.000000, 0.000000, 0.000000 -2119, 1.000000, 0.000000, 0.000000, 0.000000 -2120, 1.000000, 0.000000, 0.000000, 0.000000 -2121, 1.000000, 0.000000, 0.000000, 0.000000 -2122, 1.000000, 0.000000, 0.000000, 0.000000 -2123, 1.000000, 0.000000, 0.000000, 0.000000 -2124, 1.000000, 0.000000, 0.000000, 0.000000 -2125, 1.000000, 0.000000, 0.000000, 0.000000 -2126, 1.000000, 0.000000, 0.000000, 0.000000 -2127, 1.000000, 0.000000, 0.000000, 0.000000 -2128, 1.000000, 0.000000, 0.000000, 0.000000 -2129, 1.000000, 0.000000, 0.000000, 0.000000 -2130, 1.000000, 0.000000, 0.000000, 0.000000 -2131, 1.000000, 0.000000, 0.000000, 0.000000 -2132, 1.000000, 0.000000, 0.000000, 0.000000 -2133, 1.000000, 0.000000, 0.000000, 0.000000 -2134, 1.000000, 0.000000, 0.000000, 0.000000 -2135, 1.000000, 0.000000, 0.000000, 0.000000 -2136, 1.000000, 0.000000, 0.000000, 0.000000 -2137, 1.000000, 0.000000, 0.000000, 0.000000 -2138, 1.000000, 0.000000, 0.000000, 0.000000 -2139, 1.000000, 0.000000, 0.000000, 0.000000 -2140, 1.000000, 0.000000, 0.000000, 0.000000 -2141, 1.000000, 0.000000, 0.000000, 0.000000 -2142, 1.000000, 0.000000, 0.000000, 0.000000 -2143, 1.000000, 0.000000, 0.000000, 0.000000 -2144, 1.000000, 0.000000, 0.000000, 0.000000 -2145, 1.000000, 0.000000, 0.000000, 0.000000 -2146, 1.000000, 0.000000, 0.000000, 0.000000 -2147, 1.000000, 0.000000, 0.000000, 0.000000 -2148, 1.000000, 0.000000, 0.000000, 0.000000 -2149, 1.000000, 0.000000, 0.000000, 0.000000 -2150, 1.000000, 0.000000, 0.000000, 0.000000 -2151, 1.000000, 0.000000, 0.000000, 0.000000 -2152, 1.000000, 0.000000, 0.000000, 0.000000 -2153, 1.000000, 0.000000, 0.000000, 0.000000 -2154, 1.000000, 0.000000, 0.000000, 0.000000 -2155, 1.000000, 0.000000, 0.000000, 0.000000 -2156, 1.000000, 0.000000, 0.000000, 0.000000 -2157, 1.000000, 0.000000, 0.000000, 0.000000 -2158, 1.000000, 0.000000, 0.000000, 0.000000 -2159, 1.000000, 0.000000, 0.000000, 0.000000 -2160, 1.000000, 0.000000, 0.000000, 0.000000 -2161, 1.000000, 0.000000, 0.000000, 0.000000 -2162, 1.000000, 0.000000, 0.000000, 0.000000 -2163, 1.000000, 0.000000, 0.000000, 0.000000 -2164, 1.000000, 0.000000, 0.000000, 0.000000 -2165, 1.000000, 0.000000, 0.000000, 0.000000 -2166, 1.000000, 0.000000, 0.000000, 0.000000 -2167, 1.000000, 0.000000, 0.000000, 0.000000 -2168, 1.000000, 0.000000, 0.000000, 0.000000 -2169, 1.000000, 0.000000, 0.000000, 0.000000 -2170, 1.000000, 0.000000, 0.000000, 0.000000 -2171, 1.000000, 0.000000, 0.000000, 0.000000 -2172, 1.000000, 0.000000, 0.000000, 0.000000 -2173, 1.000000, 0.000000, 0.000000, 0.000000 -2174, 1.000000, 0.000000, 0.000000, 0.000000 -2175, 1.000000, 0.000000, 0.000000, 0.000000 -2176, 1.000000, 0.000000, 0.000000, 0.000000 -2177, 1.000000, 0.000000, 0.000000, 0.000000 -2178, 1.000000, 0.000000, 0.000000, 0.000000 -2179, 1.000000, 0.000000, 0.000000, 0.000000 -2180, 1.000000, 0.000000, 0.000000, 0.000000 -2181, 1.000000, 0.000000, 0.000000, 0.000000 -2182, 1.000000, 0.000000, 0.000000, 0.000000 -2183, 1.000000, 0.000000, 0.000000, 0.000000 -2184, 1.000000, 0.000000, 0.000000, 0.000000 -2185, 1.000000, 0.000000, 0.000000, 0.000000 -2186, 1.000000, 0.000000, 0.000000, 0.000000 -2187, 1.000000, 0.000000, 0.000000, 0.000000 -2188, 1.000000, 0.000000, 0.000000, 0.000000 -2189, 1.000000, 0.000000, 0.000000, 0.000000 -2190, 1.000000, 0.000000, 0.000000, 0.000000 -2191, 1.000000, 0.000000, 0.000000, 0.000000 -2192, 1.000000, 0.000000, 0.000000, 0.000000 -2193, 1.000000, 0.000000, 0.000000, 0.000000 -2194, 1.000000, 0.000000, 0.000000, 0.000000 -2195, 1.000000, 0.000000, 0.000000, 0.000000 -2196, 1.000000, 0.000000, 0.000000, 0.000000 -2197, 1.000000, 0.000000, 0.000000, 0.000000 -2198, 1.000000, 0.000000, 0.000000, 0.000000 -2199, 1.000000, 0.000000, 0.000000, 0.000000 -2200, 1.000000, 0.000000, 0.000000, 0.000000 -2201, 1.000000, 0.000000, 0.000000, 0.000000 -2202, 1.000000, 0.000000, 0.000000, 0.000000 -2203, 1.000000, 0.000000, 0.000000, 0.000000 -2204, 1.000000, 0.000000, 0.000000, 0.000000 -2205, 1.000000, 0.000000, 0.000000, 0.000000 -2206, 1.000000, 0.000000, 0.000000, 0.000000 -2207, 1.000000, 0.000000, 0.000000, 0.000000 -2208, 1.000000, 0.000000, 0.000000, 0.000000 -2209, 1.000000, 0.000000, 0.000000, 0.000000 -2210, 1.000000, 0.000000, 0.000000, 0.000000 -2211, 1.000000, 0.000000, 0.000000, 0.000000 -2212, 1.000000, 0.000000, 0.000000, 0.000000 -2213, 1.000000, 0.000000, 0.000000, 0.000000 -2214, 1.000000, 0.000000, 0.000000, 0.000000 -2215, 1.000000, 0.000000, 0.000000, 0.000000 -2216, 1.000000, 0.000000, 0.000000, 0.000000 -2217, 1.000000, 0.000000, 0.000000, 0.000000 -2218, 1.000000, 0.000000, 0.000000, 0.000000 -2219, 1.000000, 0.000000, 0.000000, 0.000000 -2220, 1.000000, 0.000000, 0.000000, 0.000000 -2221, 1.000000, 0.000000, 0.000000, 0.000000 -2222, 1.000000, 0.000000, 0.000000, 0.000000 -2223, 1.000000, 0.000000, 0.000000, 0.000000 -2224, 1.000000, 0.000000, 0.000000, 0.000000 -2225, 1.000000, 0.000000, 0.000000, 0.000000 -2226, 1.000000, 0.000000, 0.000000, 0.000000 -2227, 1.000000, 0.000000, 0.000000, 0.000000 -2228, 1.000000, 0.000000, 0.000000, 0.000000 -2229, 1.000000, 0.000000, 0.000000, 0.000000 -2230, 1.000000, 0.000000, 0.000000, 0.000000 -2231, 1.000000, 0.000000, 0.000000, 0.000000 -2232, 1.000000, 0.000000, 0.000000, 0.000000 -2233, 1.000000, 0.000000, 0.000000, 0.000000 -2234, 1.000000, 0.000000, 0.000000, 0.000000 -2235, 1.000000, 0.000000, 0.000000, 0.000000 -2236, 1.000000, 0.000000, 0.000000, 0.000000 -2237, 1.000000, 0.000000, 0.000000, 0.000000 -2238, 1.000000, 0.000000, 0.000000, 0.000000 -2239, 1.000000, 0.000000, 0.000000, 0.000000 -2240, 1.000000, 0.000000, 0.000000, 0.000000 -2241, 1.000000, 0.000000, 0.000000, 0.000000 -2242, 1.000000, 0.000000, 0.000000, 0.000000 -2243, 1.000000, 0.000000, 0.000000, 0.000000 -2244, 1.000000, 0.000000, 0.000000, 0.000000 -2245, 1.000000, 0.000000, 0.000000, 0.000000 -2246, 1.000000, 0.000000, 0.000000, 0.000000 -2247, 1.000000, 0.000000, 0.000000, 0.000000 -2248, 1.000000, 0.000000, 0.000000, 0.000000 -2249, 1.000000, 0.000000, 0.000000, 0.000000 -2250, 1.000000, 0.000000, 0.000000, 0.000000 -2251, 1.000000, 0.000000, 0.000000, 0.000000 -2252, 1.000000, 0.000000, 0.000000, 0.000000 -2253, 1.000000, 0.000000, 0.000000, 0.000000 -2254, 1.000000, 0.000000, 0.000000, 0.000000 -2255, 1.000000, 0.000000, 0.000000, 0.000000 -2256, 1.000000, 0.000000, 0.000000, 0.000000 -2257, 1.000000, 0.000000, 0.000000, 0.000000 -2258, 1.000000, 0.000000, 0.000000, 0.000000 -2259, 1.000000, 0.000000, 0.000000, 0.000000 -2260, 1.000000, 0.000000, 0.000000, 0.000000 -2261, 1.000000, 0.000000, 0.000000, 0.000000 -2262, 1.000000, 0.000000, 0.000000, 0.000000 -2263, 1.000000, 0.000000, 0.000000, 0.000000 -2264, 1.000000, 0.000000, 0.000000, 0.000000 -2265, 1.000000, 0.000000, 0.000000, 0.000000 -2266, 1.000000, 0.000000, 0.000000, 0.000000 -2267, 1.000000, 0.000000, 0.000000, 0.000000 -2268, 1.000000, 0.000000, 0.000000, 0.000000 -2269, 1.000000, 0.000000, 0.000000, 0.000000 -2270, 1.000000, 0.000000, 0.000000, 0.000000 -2271, 1.000000, 0.000000, 0.000000, 0.000000 -2272, 1.000000, 0.000000, 0.000000, 0.000000 -2273, 1.000000, 0.000000, 0.000000, 0.000000 -2274, 1.000000, 0.000000, 0.000000, 0.000000 -2275, 1.000000, 0.000000, 0.000000, 0.000000 -2276, 1.000000, 0.000000, 0.000000, 0.000000 -2277, 1.000000, 0.000000, 0.000000, 0.000000 -2278, 1.000000, 0.000000, 0.000000, 0.000000 -2279, 1.000000, 0.000000, 0.000000, 0.000000 -2280, 1.000000, 0.000000, 0.000000, 0.000000 -2281, 1.000000, 0.000000, 0.000000, 0.000000 -2282, 1.000000, 0.000000, 0.000000, 0.000000 -2283, 1.000000, 0.000000, 0.000000, 0.000000 -2284, 1.000000, 0.000000, 0.000000, 0.000000 -2285, 1.000000, 0.000000, 0.000000, 0.000000 -2286, 1.000000, 0.000000, 0.000000, 0.000000 -2287, 1.000000, 0.000000, 0.000000, 0.000000 -2288, 1.000000, 0.000000, 0.000000, 0.000000 -2289, 1.000000, 0.000000, 0.000000, 0.000000 -2290, 1.000000, 0.000000, 0.000000, 0.000000 -2291, 1.000000, 0.000000, 0.000000, 0.000000 -2292, 1.000000, 0.000000, 0.000000, 0.000000 -2293, 1.000000, 0.000000, 0.000000, 0.000000 -2294, 1.000000, 0.000000, 0.000000, 0.000000 -2295, 1.000000, 0.000000, 0.000000, 0.000000 -2296, 1.000000, 0.000000, 0.000000, 0.000000 -2297, 1.000000, 0.000000, 0.000000, 0.000000 -2298, 1.000000, 0.000000, 0.000000, 0.000000 -2299, 1.000000, 0.000000, 0.000000, 0.000000 -2300, 1.000000, 0.000000, 0.000000, 0.000000 -2301, 1.000000, 0.000000, 0.000000, 0.000000 -2302, 1.000000, 0.000000, 0.000000, 0.000000 -2303, 1.000000, 0.000000, 0.000000, 0.000000 -2304, 1.000000, 0.000000, 0.000000, 0.000000 -2305, 1.000000, 0.000000, 0.000000, 0.000000 -2306, 1.000000, 0.000000, 0.000000, 0.000000 -2307, 1.000000, 0.000000, 0.000000, 0.000000 -2308, 1.000000, 0.000000, 0.000000, 0.000000 -2309, 1.000000, 0.000000, 0.000000, 0.000000 -2310, 1.000000, 0.000000, 0.000000, 0.000000 -2311, 1.000000, 0.000000, 0.000000, 0.000000 -2312, 1.000000, 0.000000, 0.000000, 0.000000 -2313, 1.000000, 0.000000, 0.000000, 0.000000 -2314, 1.000000, 0.000000, 0.000000, 0.000000 -2315, 1.000000, 0.000000, 0.000000, 0.000000 -2316, 1.000000, 0.000000, 0.000000, 0.000000 -2317, 1.000000, 0.000000, 0.000000, 0.000000 -2318, 1.000000, 0.000000, 0.000000, 0.000000 -2319, 1.000000, 0.000000, 0.000000, 0.000000 -2320, 1.000000, 0.000000, 0.000000, 0.000000 -2321, 1.000000, 0.000000, 0.000000, 0.000000 -2322, 1.000000, 0.000000, 0.000000, 0.000000 -2323, 1.000000, 0.000000, 0.000000, 0.000000 -2324, 1.000000, 0.000000, 0.000000, 0.000000 -2325, 1.000000, 0.000000, 0.000000, 0.000000 -2326, 1.000000, 0.000000, 0.000000, 0.000000 -2327, 1.000000, 0.000000, 0.000000, 0.000000 -2328, 1.000000, 0.000000, 0.000000, 0.000000 -2329, 1.000000, 0.000000, 0.000000, 0.000000 -2330, 1.000000, 0.000000, 0.000000, 0.000000 -2331, 1.000000, 0.000000, 0.000000, 0.000000 -2332, 1.000000, 0.000000, 0.000000, 0.000000 -2333, 1.000000, 0.000000, 0.000000, 0.000000 -2334, 1.000000, 0.000000, 0.000000, 0.000000 -2335, 1.000000, 0.000000, 0.000000, 0.000000 -2336, 1.000000, 0.000000, 0.000000, 0.000000 -2337, 1.000000, 0.000000, 0.000000, 0.000000 -2338, 1.000000, 0.000000, 0.000000, 0.000000 -2339, 1.000000, 0.000000, 0.000000, 0.000000 -2340, 1.000000, 0.000000, 0.000000, 0.000000 -2341, 1.000000, 0.000000, 0.000000, 0.000000 -2342, 1.000000, 0.000000, 0.000000, 0.000000 -2343, 1.000000, 0.000000, 0.000000, 0.000000 -2344, 1.000000, 0.000000, 0.000000, 0.000000 -2345, 1.000000, 0.000000, 0.000000, 0.000000 -2346, 1.000000, 0.000000, 0.000000, 0.000000 -2347, 1.000000, 0.000000, 0.000000, 0.000000 -2348, 1.000000, 0.000000, 0.000000, 0.000000 -2349, 1.000000, 0.000000, 0.000000, 0.000000 -2350, 1.000000, 0.000000, 0.000000, 0.000000 -2351, 1.000000, 0.000000, 0.000000, 0.000000 -2352, 1.000000, 0.000000, 0.000000, 0.000000 -2353, 1.000000, 0.000000, 0.000000, 0.000000 -2354, 1.000000, 0.000000, 0.000000, 0.000000 -2355, 1.000000, 0.000000, 0.000000, 0.000000 -2356, 1.000000, 0.000000, 0.000000, 0.000000 -2357, 1.000000, 0.000000, 0.000000, 0.000000 -2358, 1.000000, 0.000000, 0.000000, 0.000000 -2359, 1.000000, 0.000000, 0.000000, 0.000000 -2360, 1.000000, 0.000000, 0.000000, 0.000000 -2361, 1.000000, 0.000000, 0.000000, 0.000000 -2362, 1.000000, 0.000000, 0.000000, 0.000000 -2363, 1.000000, 0.000000, 0.000000, 0.000000 -2364, 1.000000, 0.000000, 0.000000, 0.000000 -2365, 1.000000, 0.000000, 0.000000, 0.000000 -2366, 1.000000, 0.000000, 0.000000, 0.000000 -2367, 1.000000, 0.000000, 0.000000, 0.000000 -2368, 1.000000, 0.000000, 0.000000, 0.000000 -2369, 1.000000, 0.000000, 0.000000, 0.000000 -2370, 1.000000, 0.000000, 0.000000, 0.000000 -2371, 1.000000, 0.000000, 0.000000, 0.000000 -2372, 1.000000, 0.000000, 0.000000, 0.000000 -2373, 1.000000, 0.000000, 0.000000, 0.000000 -2374, 1.000000, 0.000000, 0.000000, 0.000000 -2375, 1.000000, 0.000000, 0.000000, 0.000000 -2376, 1.000000, 0.000000, 0.000000, 0.000000 -2377, 1.000000, 0.000000, 0.000000, 0.000000 -2378, 1.000000, 0.000000, 0.000000, 0.000000 -2379, 1.000000, 0.000000, 0.000000, 0.000000 -2380, 1.000000, 0.000000, 0.000000, 0.000000 -2381, 1.000000, 0.000000, 0.000000, 0.000000 -2382, 1.000000, 0.000000, 0.000000, 0.000000 -2383, 1.000000, 0.000000, 0.000000, 0.000000 -2384, 1.000000, 0.000000, 0.000000, 0.000000 -2385, 1.000000, 0.000000, 0.000000, 0.000000 -2386, 1.000000, 0.000000, 0.000000, 0.000000 -2387, 1.000000, 0.000000, 0.000000, 0.000000 -2388, 1.000000, 0.000000, 0.000000, 0.000000 -2389, 1.000000, 0.000000, 0.000000, 0.000000 -2390, 1.000000, 0.000000, 0.000000, 0.000000 -2391, 1.000000, 0.000000, 0.000000, 0.000000 -2392, 1.000000, 0.000000, 0.000000, 0.000000 -2393, 1.000000, 0.000000, 0.000000, 0.000000 -2394, 1.000000, 0.000000, 0.000000, 0.000000 -2395, 1.000000, 0.000000, 0.000000, 0.000000 -2396, 1.000000, 0.000000, 0.000000, 0.000000 -2397, 1.000000, 0.000000, 0.000000, 0.000000 -2398, 1.000000, 0.000000, 0.000000, 0.000000 -2399, 1.000000, 0.000000, 0.000000, 0.000000 -2400, 1.000000, 0.000000, 0.000000, 0.000000 -2401, 1.000000, 0.000000, 0.000000, 0.000000 -2402, 1.000000, 0.000000, 0.000000, 0.000000 -2403, 1.000000, 0.000000, 0.000000, 0.000000 -2404, 1.000000, 0.000000, 0.000000, 0.000000 -2405, 1.000000, 0.000000, 0.000000, 0.000000 -2406, 1.000000, 0.000000, 0.000000, 0.000000 -2407, 1.000000, 0.000000, 0.000000, 0.000000 -2408, 1.000000, 0.000000, 0.000000, 0.000000 -2409, 1.000000, 0.000000, 0.000000, 0.000000 -2410, 1.000000, 0.000000, 0.000000, 0.000000 -2411, 1.000000, 0.000000, 0.000000, 0.000000 -2412, 1.000000, 0.000000, 0.000000, 0.000000 -2413, 1.000000, 0.000000, 0.000000, 0.000000 -2414, 1.000000, 0.000000, 0.000000, 0.000000 -2415, 1.000000, 0.000000, 0.000000, 0.000000 -2416, 1.000000, 0.000000, 0.000000, 0.000000 -2417, 1.000000, 0.000000, 0.000000, 0.000000 -2418, 1.000000, 0.000000, 0.000000, 0.000000 -2419, 1.000000, 0.000000, 0.000000, 0.000000 -2420, 1.000000, 0.000000, 0.000000, 0.000000 -2421, 1.000000, 0.000000, 0.000000, 0.000000 -2422, 1.000000, 0.000000, 0.000000, 0.000000 -2423, 1.000000, 0.000000, 0.000000, 0.000000 -2424, 1.000000, 0.000000, 0.000000, 0.000000 -2425, 1.000000, 0.000000, 0.000000, 0.000000 -2426, 1.000000, 0.000000, 0.000000, 0.000000 -2427, 1.000000, 0.000000, 0.000000, 0.000000 -2428, 1.000000, 0.000000, 0.000000, 0.000000 -2429, 1.000000, 0.000000, 0.000000, 0.000000 -2430, 1.000000, 0.000000, 0.000000, 0.000000 -2431, 1.000000, 0.000000, 0.000000, 0.000000 -2432, 1.000000, 0.000000, 0.000000, 0.000000 -2433, 1.000000, 0.000000, 0.000000, 0.000000 -2434, 1.000000, 0.000000, 0.000000, 0.000000 -2435, 1.000000, 0.000000, 0.000000, 0.000000 -2436, 1.000000, 0.000000, 0.000000, 0.000000 -2437, 1.000000, 0.000000, 0.000000, 0.000000 -2438, 1.000000, 0.000000, 0.000000, 0.000000 -2439, 1.000000, 0.000000, 0.000000, 0.000000 -2440, 1.000000, 0.000000, 0.000000, 0.000000 -2441, 1.000000, 0.000000, 0.000000, 0.000000 -2442, 1.000000, 0.000000, 0.000000, 0.000000 -2443, 1.000000, 0.000000, 0.000000, 0.000000 -2444, 1.000000, 0.000000, 0.000000, 0.000000 -2445, 1.000000, 0.000000, 0.000000, 0.000000 -2446, 1.000000, 0.000000, 0.000000, 0.000000 -2447, 1.000000, 0.000000, 0.000000, 0.000000 -2448, 1.000000, 0.000000, 0.000000, 0.000000 -2449, 1.000000, 0.000000, 0.000000, 0.000000 -2450, 1.000000, 0.000000, 0.000000, 0.000000 -2451, 1.000000, 0.000000, 0.000000, 0.000000 -2452, 1.000000, 0.000000, 0.000000, 0.000000 -2453, 1.000000, 0.000000, 0.000000, 0.000000 -2454, 1.000000, 0.000000, 0.000000, 0.000000 -2455, 1.000000, 0.000000, 0.000000, 0.000000 -2456, 1.000000, 0.000000, 0.000000, 0.000000 -2457, 1.000000, 0.000000, 0.000000, 0.000000 -2458, 1.000000, 0.000000, 0.000000, 0.000000 -2459, 1.000000, 0.000000, 0.000000, 0.000000 -2460, 1.000000, 0.000000, 0.000000, 0.000000 -2461, 1.000000, 0.000000, 0.000000, 0.000000 -2462, 1.000000, 0.000000, 0.000000, 0.000000 -2463, 1.000000, 0.000000, 0.000000, 0.000000 -2464, 1.000000, 0.000000, 0.000000, 0.000000 -2465, 1.000000, 0.000000, 0.000000, 0.000000 -2466, 1.000000, 0.000000, 0.000000, 0.000000 -2467, 1.000000, 0.000000, 0.000000, 0.000000 -2468, 1.000000, 0.000000, 0.000000, 0.000000 -2469, 1.000000, 0.000000, 0.000000, 0.000000 -2470, 1.000000, 0.000000, 0.000000, 0.000000 -2471, 1.000000, 0.000000, 0.000000, 0.000000 -2472, 1.000000, 0.000000, 0.000000, 0.000000 -2473, 1.000000, 0.000000, 0.000000, 0.000000 -2474, 1.000000, 0.000000, 0.000000, 0.000000 -2475, 1.000000, 0.000000, 0.000000, 0.000000 -2476, 1.000000, 0.000000, 0.000000, 0.000000 -2477, 1.000000, 0.000000, 0.000000, 0.000000 -2478, 1.000000, 0.000000, 0.000000, 0.000000 -2479, 1.000000, 0.000000, 0.000000, 0.000000 -2480, 1.000000, 0.000000, 0.000000, 0.000000 -2481, 1.000000, 0.000000, 0.000000, 0.000000 -2482, 1.000000, 0.000000, 0.000000, 0.000000 -2483, 1.000000, 0.000000, 0.000000, 0.000000 -2484, 1.000000, 0.000000, 0.000000, 0.000000 -2485, 1.000000, 0.000000, 0.000000, 0.000000 -2486, 1.000000, 0.000000, 0.000000, 0.000000 -2487, 1.000000, 0.000000, 0.000000, 0.000000 -2488, 1.000000, 0.000000, 0.000000, 0.000000 -2489, 1.000000, 0.000000, 0.000000, 0.000000 -2490, 1.000000, 0.000000, 0.000000, 0.000000 -2491, 1.000000, 0.000000, 0.000000, 0.000000 -2492, 1.000000, 0.000000, 0.000000, 0.000000 -2493, 1.000000, 0.000000, 0.000000, 0.000000 -2494, 1.000000, 0.000000, 0.000000, 0.000000 -2495, 1.000000, 0.000000, 0.000000, 0.000000 -2496, 1.000000, 0.000000, 0.000000, 0.000000 -2497, 1.000000, 0.000000, 0.000000, 0.000000 -2498, 1.000000, 0.000000, 0.000000, 0.000000 -2499, 1.000000, 0.000000, 0.000000, 0.000000 -2500, 1.000000, 0.000000, 0.000000, 0.000000 -2501, 1.000000, 0.000000, 0.000000, 0.000000 -2502, 1.000000, 0.000000, 0.000000, 0.000000 -2503, 1.000000, 0.000000, 0.000000, 0.000000 -2504, 1.000000, 0.000000, 0.000000, 0.000000 -2505, 1.000000, 0.000000, 0.000000, 0.000000 -2506, 1.000000, 0.000000, 0.000000, 0.000000 -2507, 1.000000, 0.000000, 0.000000, 0.000000 -2508, 1.000000, 0.000000, 0.000000, 0.000000 -2509, 1.000000, 0.000000, 0.000000, 0.000000 -2510, 1.000000, 0.000000, 0.000000, 0.000000 -2511, 1.000000, 0.000000, 0.000000, 0.000000 -2512, 1.000000, 0.000000, 0.000000, 0.000000 -2513, 1.000000, 0.000000, 0.000000, 0.000000 -2514, 1.000000, 0.000000, 0.000000, 0.000000 -2515, 1.000000, 0.000000, 0.000000, 0.000000 -2516, 1.000000, 0.000000, 0.000000, 0.000000 -2517, 1.000000, 0.000000, 0.000000, 0.000000 -2518, 1.000000, 0.000000, 0.000000, 0.000000 -2519, 1.000000, 0.000000, 0.000000, 0.000000 -2520, 1.000000, 0.000000, 0.000000, 0.000000 -2521, 1.000000, 0.000000, 0.000000, 0.000000 -2522, 1.000000, 0.000000, 0.000000, 0.000000 -2523, 1.000000, 0.000000, 0.000000, 0.000000 -2524, 1.000000, 0.000000, 0.000000, 0.000000 -2525, 1.000000, 0.000000, 0.000000, 0.000000 -2526, 1.000000, 0.000000, 0.000000, 0.000000 -2527, 1.000000, 0.000000, 0.000000, 0.000000 -2528, 1.000000, 0.000000, 0.000000, 0.000000 -2529, 1.000000, 0.000000, 0.000000, 0.000000 -2530, 1.000000, 0.000000, 0.000000, 0.000000 -2531, 1.000000, 0.000000, 0.000000, 0.000000 -2532, 1.000000, 0.000000, 0.000000, 0.000000 -2533, 1.000000, 0.000000, 0.000000, 0.000000 -2534, 1.000000, 0.000000, 0.000000, 0.000000 -2535, 1.000000, 0.000000, 0.000000, 0.000000 -2536, 1.000000, 0.000000, 0.000000, 0.000000 -2537, 1.000000, 0.000000, 0.000000, 0.000000 -2538, 1.000000, 0.000000, 0.000000, 0.000000 -2539, 1.000000, 0.000000, 0.000000, 0.000000 -2540, 1.000000, 0.000000, 0.000000, 0.000000 -2541, 1.000000, 0.000000, 0.000000, 0.000000 -2542, 1.000000, 0.000000, 0.000000, 0.000000 -2543, 1.000000, 0.000000, 0.000000, 0.000000 -2544, 1.000000, 0.000000, 0.000000, 0.000000 -2545, 1.000000, 0.000000, 0.000000, 0.000000 -2546, 1.000000, 0.000000, 0.000000, 0.000000 -2547, 1.000000, 0.000000, 0.000000, 0.000000 -2548, 1.000000, 0.000000, 0.000000, 0.000000 -2549, 1.000000, 0.000000, 0.000000, 0.000000 -2550, 1.000000, 0.000000, 0.000000, 0.000000 -2551, 1.000000, 0.000000, 0.000000, 0.000000 -2552, 1.000000, 0.000000, 0.000000, 0.000000 -2553, 1.000000, 0.000000, 0.000000, 0.000000 -2554, 1.000000, 0.000000, 0.000000, 0.000000 -2555, 1.000000, 0.000000, 0.000000, 0.000000 -2556, 1.000000, 0.000000, 0.000000, 0.000000 -2557, 1.000000, 0.000000, 0.000000, 0.000000 -2558, 1.000000, 0.000000, 0.000000, 0.000000 -2559, 1.000000, 0.000000, 0.000000, 0.000000 -2560, 1.000000, 0.000000, 0.000000, 0.000000 -2561, 1.000000, 0.000000, 0.000000, 0.000000 -2562, 1.000000, 0.000000, 0.000000, 0.000000 -2563, 1.000000, 0.000000, 0.000000, 0.000000 -2564, 1.000000, 0.000000, 0.000000, 0.000000 -2565, 1.000000, 0.000000, 0.000000, 0.000000 -2566, 1.000000, 0.000000, 0.000000, 0.000000 -2567, 1.000000, 0.000000, 0.000000, 0.000000 -2568, 1.000000, 0.000000, 0.000000, 0.000000 -2569, 1.000000, 0.000000, 0.000000, 0.000000 -2570, 1.000000, 0.000000, 0.000000, 0.000000 -2571, 1.000000, 0.000000, 0.000000, 0.000000 -2572, 1.000000, 0.000000, 0.000000, 0.000000 -2573, 1.000000, 0.000000, 0.000000, 0.000000 -2574, 1.000000, 0.000000, 0.000000, 0.000000 -2575, 1.000000, 0.000000, 0.000000, 0.000000 -2576, 1.000000, 0.000000, 0.000000, 0.000000 -2577, 1.000000, 0.000000, 0.000000, 0.000000 -2578, 1.000000, 0.000000, 0.000000, 0.000000 -2579, 1.000000, 0.000000, 0.000000, 0.000000 -2580, 1.000000, 0.000000, 0.000000, 0.000000 -2581, 1.000000, 0.000000, 0.000000, 0.000000 -2582, 1.000000, 0.000000, 0.000000, 0.000000 -2583, 1.000000, 0.000000, 0.000000, 0.000000 -2584, 1.000000, 0.000000, 0.000000, 0.000000 -2585, 1.000000, 0.000000, 0.000000, 0.000000 -2586, 1.000000, 0.000000, 0.000000, 0.000000 -2587, 1.000000, 0.000000, 0.000000, 0.000000 -2588, 1.000000, 0.000000, 0.000000, 0.000000 -2589, 1.000000, 0.000000, 0.000000, 0.000000 -2590, 1.000000, 0.000000, 0.000000, 0.000000 -2591, 1.000000, 0.000000, 0.000000, 0.000000 -2592, 1.000000, 0.000000, 0.000000, 0.000000 -2593, 1.000000, 0.000000, 0.000000, 0.000000 -2594, 1.000000, 0.000000, 0.000000, 0.000000 -2595, 1.000000, 0.000000, 0.000000, 0.000000 -2596, 1.000000, 0.000000, 0.000000, 0.000000 -2597, 1.000000, 0.000000, 0.000000, 0.000000 -2598, 1.000000, 0.000000, 0.000000, 0.000000 -2599, 1.000000, 0.000000, 0.000000, 0.000000 -2600, 1.000000, 0.000000, 0.000000, 0.000000 -2601, 1.000000, 0.000000, 0.000000, 0.000000 -2602, 1.000000, 0.000000, 0.000000, 0.000000 -2603, 1.000000, 0.000000, 0.000000, 0.000000 -2604, 1.000000, 0.000000, 0.000000, 0.000000 -2605, 1.000000, 0.000000, 0.000000, 0.000000 -2606, 1.000000, 0.000000, 0.000000, 0.000000 -2607, 1.000000, 0.000000, 0.000000, 0.000000 -2608, 1.000000, 0.000000, 0.000000, 0.000000 -2609, 1.000000, 0.000000, 0.000000, 0.000000 -2610, 1.000000, 0.000000, 0.000000, 0.000000 -2611, 1.000000, 0.000000, 0.000000, 0.000000 -2612, 1.000000, 0.000000, 0.000000, 0.000000 -2613, 1.000000, 0.000000, 0.000000, 0.000000 -2614, 1.000000, 0.000000, 0.000000, 0.000000 -2615, 1.000000, 0.000000, 0.000000, 0.000000 -2616, 1.000000, 0.000000, 0.000000, 0.000000 -2617, 1.000000, 0.000000, 0.000000, 0.000000 -2618, 1.000000, 0.000000, 0.000000, 0.000000 -2619, 1.000000, 0.000000, 0.000000, 0.000000 -2620, 1.000000, 0.000000, 0.000000, 0.000000 -2621, 1.000000, 0.000000, 0.000000, 0.000000 -2622, 1.000000, 0.000000, 0.000000, 0.000000 -2623, 1.000000, 0.000000, 0.000000, 0.000000 -2624, 1.000000, 0.000000, 0.000000, 0.000000 -2625, 1.000000, 0.000000, 0.000000, 0.000000 -2626, 1.000000, 0.000000, 0.000000, 0.000000 -2627, 1.000000, 0.000000, 0.000000, 0.000000 -2628, 1.000000, 0.000000, 0.000000, 0.000000 -2629, 1.000000, 0.000000, 0.000000, 0.000000 -2630, 1.000000, 0.000000, 0.000000, 0.000000 -2631, 1.000000, 0.000000, 0.000000, 0.000000 -2632, 1.000000, 0.000000, 0.000000, 0.000000 -2633, 1.000000, 0.000000, 0.000000, 0.000000 -2634, 1.000000, 0.000000, 0.000000, 0.000000 -2635, 1.000000, 0.000000, 0.000000, 0.000000 -2636, 1.000000, 0.000000, 0.000000, 0.000000 -2637, 1.000000, 0.000000, 0.000000, 0.000000 -2638, 1.000000, 0.000000, 0.000000, 0.000000 -2639, 1.000000, 0.000000, 0.000000, 0.000000 -2640, 1.000000, 0.000000, 0.000000, 0.000000 -2641, 1.000000, 0.000000, 0.000000, 0.000000 -2642, 1.000000, 0.000000, 0.000000, 0.000000 -2643, 1.000000, 0.000000, 0.000000, 0.000000 -2644, 1.000000, 0.000000, 0.000000, 0.000000 -2645, 1.000000, 0.000000, 0.000000, 0.000000 -2646, 1.000000, 0.000000, 0.000000, 0.000000 -2647, 1.000000, 0.000000, 0.000000, 0.000000 -2648, 1.000000, 0.000000, 0.000000, 0.000000 -2649, 1.000000, 0.000000, 0.000000, 0.000000 -2650, 1.000000, 0.000000, 0.000000, 0.000000 -2651, 1.000000, 0.000000, 0.000000, 0.000000 -2652, 1.000000, 0.000000, 0.000000, 0.000000 -2653, 1.000000, 0.000000, 0.000000, 0.000000 -2654, 1.000000, 0.000000, 0.000000, 0.000000 -2655, 1.000000, 0.000000, 0.000000, 0.000000 -2656, 1.000000, 0.000000, 0.000000, 0.000000 -2657, 1.000000, 0.000000, 0.000000, 0.000000 -2658, 1.000000, 0.000000, 0.000000, 0.000000 -2659, 1.000000, 0.000000, 0.000000, 0.000000 -2660, 1.000000, 0.000000, 0.000000, 0.000000 -2661, 1.000000, 0.000000, 0.000000, 0.000000 -2662, 1.000000, 0.000000, 0.000000, 0.000000 -2663, 1.000000, 0.000000, 0.000000, 0.000000 -2664, 1.000000, 0.000000, 0.000000, 0.000000 -2665, 1.000000, 0.000000, 0.000000, 0.000000 -2666, 1.000000, 0.000000, 0.000000, 0.000000 -2667, 1.000000, 0.000000, 0.000000, 0.000000 -2668, 1.000000, 0.000000, 0.000000, 0.000000 -2669, 1.000000, 0.000000, 0.000000, 0.000000 -2670, 1.000000, 0.000000, 0.000000, 0.000000 -2671, 1.000000, 0.000000, 0.000000, 0.000000 -2672, 1.000000, 0.000000, 0.000000, 0.000000 -2673, 1.000000, 0.000000, 0.000000, 0.000000 -2674, 1.000000, 0.000000, 0.000000, 0.000000 -2675, 1.000000, 0.000000, 0.000000, 0.000000 -2676, 1.000000, 0.000000, 0.000000, 0.000000 -2677, 1.000000, 0.000000, 0.000000, 0.000000 -2678, 1.000000, 0.000000, 0.000000, 0.000000 -2679, 1.000000, 0.000000, 0.000000, 0.000000 -2680, 1.000000, 0.000000, 0.000000, 0.000000 -2681, 1.000000, 0.000000, 0.000000, 0.000000 -2682, 1.000000, 0.000000, 0.000000, 0.000000 -2683, 1.000000, 0.000000, 0.000000, 0.000000 -2684, 1.000000, 0.000000, 0.000000, 0.000000 -2685, 1.000000, 0.000000, 0.000000, 0.000000 -2686, 1.000000, 0.000000, 0.000000, 0.000000 -2687, 1.000000, 0.000000, 0.000000, 0.000000 -2688, 1.000000, 0.000000, 0.000000, 0.000000 -2689, 1.000000, 0.000000, 0.000000, 0.000000 -2690, 1.000000, 0.000000, 0.000000, 0.000000 -2691, 1.000000, 0.000000, 0.000000, 0.000000 -2692, 1.000000, 0.000000, 0.000000, 0.000000 -2693, 1.000000, 0.000000, 0.000000, 0.000000 -2694, 1.000000, 0.000000, 0.000000, 0.000000 -2695, 1.000000, 0.000000, 0.000000, 0.000000 -2696, 1.000000, 0.000000, 0.000000, 0.000000 -2697, 1.000000, 0.000000, 0.000000, 0.000000 -2698, 1.000000, 0.000000, 0.000000, 0.000000 -2699, 1.000000, 0.000000, 0.000000, 0.000000 -2700, 1.000000, 0.000000, 0.000000, 0.000000 -2701, 1.000000, 0.000000, 0.000000, 0.000000 -2702, 1.000000, 0.000000, 0.000000, 0.000000 -2703, 1.000000, 0.000000, 0.000000, 0.000000 -2704, 1.000000, 0.000000, 0.000000, 0.000000 -2705, 1.000000, 0.000000, 0.000000, 0.000000 -2706, 1.000000, 0.000000, 0.000000, 0.000000 -2707, 1.000000, 0.000000, 0.000000, 0.000000 -2708, 1.000000, 0.000000, 0.000000, 0.000000 -2709, 1.000000, 0.000000, 0.000000, 0.000000 -2710, 1.000000, 0.000000, 0.000000, 0.000000 -2711, 1.000000, 0.000000, 0.000000, 0.000000 -2712, 1.000000, 0.000000, 0.000000, 0.000000 -2713, 1.000000, 0.000000, 0.000000, 0.000000 -2714, 1.000000, 0.000000, 0.000000, 0.000000 -2715, 1.000000, 0.000000, 0.000000, 0.000000 -2716, 1.000000, 0.000000, 0.000000, 0.000000 -2717, 1.000000, 0.000000, 0.000000, 0.000000 -2718, 1.000000, 0.000000, 0.000000, 0.000000 -2719, 1.000000, 0.000000, 0.000000, 0.000000 -2720, 1.000000, 0.000000, 0.000000, 0.000000 -2721, 1.000000, 0.000000, 0.000000, 0.000000 -2722, 1.000000, 0.000000, 0.000000, 0.000000 -2723, 1.000000, 0.000000, 0.000000, 0.000000 -2724, 1.000000, 0.000000, 0.000000, 0.000000 -2725, 1.000000, 0.000000, 0.000000, 0.000000 -2726, 1.000000, 0.000000, 0.000000, 0.000000 -2727, 1.000000, 0.000000, 0.000000, 0.000000 -2728, 1.000000, 0.000000, 0.000000, 0.000000 -2729, 1.000000, 0.000000, 0.000000, 0.000000 -2730, 1.000000, 0.000000, 0.000000, 0.000000 -2731, 1.000000, 0.000000, 0.000000, 0.000000 -2732, 1.000000, 0.000000, 0.000000, 0.000000 -2733, 1.000000, 0.000000, 0.000000, 0.000000 -2734, 1.000000, 0.000000, 0.000000, 0.000000 -2735, 1.000000, 0.000000, 0.000000, 0.000000 -2736, 1.000000, 0.000000, 0.000000, 0.000000 -2737, 1.000000, 0.000000, 0.000000, 0.000000 -2738, 1.000000, 0.000000, 0.000000, 0.000000 -2739, 1.000000, 0.000000, 0.000000, 0.000000 -2740, 1.000000, 0.000000, 0.000000, 0.000000 -2741, 1.000000, 0.000000, 0.000000, 0.000000 -2742, 1.000000, 0.000000, 0.000000, 0.000000 -2743, 1.000000, 0.000000, 0.000000, 0.000000 -2744, 1.000000, 0.000000, 0.000000, 0.000000 -2745, 1.000000, 0.000000, 0.000000, 0.000000 -2746, 1.000000, 0.000000, 0.000000, 0.000000 -2747, 1.000000, 0.000000, 0.000000, 0.000000 -2748, 1.000000, 0.000000, 0.000000, 0.000000 -2749, 1.000000, 0.000000, 0.000000, 0.000000 -2750, 1.000000, 0.000000, 0.000000, 0.000000 -2751, 1.000000, 0.000000, 0.000000, 0.000000 -2752, 1.000000, 0.000000, 0.000000, 0.000000 -2753, 1.000000, 0.000000, 0.000000, 0.000000 -2754, 1.000000, 0.000000, 0.000000, 0.000000 -2755, 1.000000, 0.000000, 0.000000, 0.000000 -2756, 1.000000, 0.000000, 0.000000, 0.000000 -2757, 1.000000, 0.000000, 0.000000, 0.000000 -2758, 1.000000, 0.000000, 0.000000, 0.000000 -2759, 1.000000, 0.000000, 0.000000, 0.000000 -2760, 1.000000, 0.000000, 0.000000, 0.000000 -2761, 1.000000, 0.000000, 0.000000, 0.000000 -2762, 1.000000, 0.000000, 0.000000, 0.000000 -2763, 1.000000, 0.000000, 0.000000, 0.000000 -2764, 1.000000, 0.000000, 0.000000, 0.000000 -2765, 1.000000, 0.000000, 0.000000, 0.000000 -2766, 1.000000, 0.000000, 0.000000, 0.000000 -2767, 1.000000, 0.000000, 0.000000, 0.000000 -2768, 1.000000, 0.000000, 0.000000, 0.000000 -2769, 1.000000, 0.000000, 0.000000, 0.000000 -2770, 1.000000, 0.000000, 0.000000, 0.000000 -2771, 1.000000, 0.000000, 0.000000, 0.000000 -2772, 1.000000, 0.000000, 0.000000, 0.000000 -2773, 1.000000, 0.000000, 0.000000, 0.000000 -2774, 1.000000, 0.000000, 0.000000, 0.000000 -2775, 1.000000, 0.000000, 0.000000, 0.000000 -2776, 1.000000, 0.000000, 0.000000, 0.000000 -2777, 1.000000, 0.000000, 0.000000, 0.000000 -2778, 1.000000, 0.000000, 0.000000, 0.000000 -2779, 1.000000, 0.000000, 0.000000, 0.000000 -2780, 1.000000, 0.000000, 0.000000, 0.000000 -2781, 1.000000, 0.000000, 0.000000, 0.000000 -2782, 1.000000, 0.000000, 0.000000, 0.000000 -2783, 1.000000, 0.000000, 0.000000, 0.000000 -2784, 1.000000, 0.000000, 0.000000, 0.000000 -2785, 1.000000, 0.000000, 0.000000, 0.000000 -2786, 1.000000, 0.000000, 0.000000, 0.000000 -2787, 1.000000, 0.000000, 0.000000, 0.000000 -2788, 1.000000, 0.000000, 0.000000, 0.000000 -2789, 1.000000, 0.000000, 0.000000, 0.000000 -2790, 1.000000, 0.000000, 0.000000, 0.000000 -2791, 1.000000, 0.000000, 0.000000, 0.000000 -2792, 1.000000, 0.000000, 0.000000, 0.000000 -2793, 1.000000, 0.000000, 0.000000, 0.000000 -2794, 1.000000, 0.000000, 0.000000, 0.000000 -2795, 1.000000, 0.000000, 0.000000, 0.000000 -2796, 1.000000, 0.000000, 0.000000, 0.000000 -2797, 1.000000, 0.000000, 0.000000, 0.000000 -2798, 1.000000, 0.000000, 0.000000, 0.000000 -2799, 1.000000, 0.000000, 0.000000, 0.000000 -2800, 1.000000, 0.000000, 0.000000, 0.000000 -2801, 1.000000, 0.000000, 0.000000, 0.000000 -2802, 1.000000, 0.000000, 0.000000, 0.000000 -2803, 1.000000, 0.000000, 0.000000, 0.000000 -2804, 1.000000, 0.000000, 0.000000, 0.000000 -2805, 1.000000, 0.000000, 0.000000, 0.000000 -2806, 1.000000, 0.000000, 0.000000, 0.000000 -2807, 1.000000, 0.000000, 0.000000, 0.000000 -2808, 1.000000, 0.000000, 0.000000, 0.000000 -2809, 1.000000, 0.000000, 0.000000, 0.000000 -2810, 1.000000, 0.000000, 0.000000, 0.000000 -2811, 1.000000, 0.000000, 0.000000, 0.000000 -2812, 1.000000, 0.000000, 0.000000, 0.000000 -2813, 1.000000, 0.000000, 0.000000, 0.000000 -2814, 1.000000, 0.000000, 0.000000, 0.000000 -2815, 1.000000, 0.000000, 0.000000, 0.000000 -2816, 1.000000, 0.000000, 0.000000, 0.000000 -2817, 1.000000, 0.000000, 0.000000, 0.000000 -2818, 1.000000, 0.000000, 0.000000, 0.000000 -2819, 1.000000, 0.000000, 0.000000, 0.000000 -2820, 1.000000, 0.000000, 0.000000, 0.000000 -2821, 1.000000, 0.000000, 0.000000, 0.000000 -2822, 1.000000, 0.000000, 0.000000, 0.000000 -2823, 1.000000, 0.000000, 0.000000, 0.000000 -2824, 1.000000, 0.000000, 0.000000, 0.000000 -2825, 1.000000, 0.000000, 0.000000, 0.000000 -2826, 1.000000, 0.000000, 0.000000, 0.000000 -2827, 1.000000, 0.000000, 0.000000, 0.000000 -2828, 1.000000, 0.000000, 0.000000, 0.000000 -2829, 1.000000, 0.000000, 0.000000, 0.000000 -2830, 1.000000, 0.000000, 0.000000, 0.000000 -2831, 1.000000, 0.000000, 0.000000, 0.000000 -2832, 1.000000, 0.000000, 0.000000, 0.000000 -2833, 1.000000, 0.000000, 0.000000, 0.000000 -2834, 1.000000, 0.000000, 0.000000, 0.000000 -2835, 1.000000, 0.000000, 0.000000, 0.000000 -2836, 1.000000, 0.000000, 0.000000, 0.000000 -2837, 1.000000, 0.000000, 0.000000, 0.000000 -2838, 1.000000, 0.000000, 0.000000, 0.000000 -2839, 1.000000, 0.000000, 0.000000, 0.000000 -2840, 1.000000, 0.000000, 0.000000, 0.000000 -2841, 1.000000, 0.000000, 0.000000, 0.000000 -2842, 1.000000, 0.000000, 0.000000, 0.000000 -2843, 1.000000, 0.000000, 0.000000, 0.000000 -2844, 1.000000, 0.000000, 0.000000, 0.000000 -2845, 1.000000, 0.000000, 0.000000, 0.000000 -2846, 1.000000, 0.000000, 0.000000, 0.000000 -2847, 1.000000, 0.000000, 0.000000, 0.000000 -2848, 1.000000, 0.000000, 0.000000, 0.000000 -2849, 1.000000, 0.000000, 0.000000, 0.000000 -2850, 1.000000, 0.000000, 0.000000, 0.000000 -2851, 1.000000, 0.000000, 0.000000, 0.000000 -2852, 1.000000, 0.000000, 0.000000, 0.000000 -2853, 1.000000, 0.000000, 0.000000, 0.000000 -2854, 1.000000, 0.000000, 0.000000, 0.000000 -2855, 1.000000, 0.000000, 0.000000, 0.000000 -2856, 1.000000, 0.000000, 0.000000, 0.000000 -2857, 1.000000, 0.000000, 0.000000, 0.000000 -2858, 1.000000, 0.000000, 0.000000, 0.000000 -2859, 1.000000, 0.000000, 0.000000, 0.000000 -2860, 1.000000, 0.000000, 0.000000, 0.000000 -2861, 1.000000, 0.000000, 0.000000, 0.000000 -2862, 1.000000, 0.000000, 0.000000, 0.000000 -2863, 1.000000, 0.000000, 0.000000, 0.000000 -2864, 1.000000, 0.000000, 0.000000, 0.000000 -2865, 1.000000, 0.000000, 0.000000, 0.000000 -2866, 1.000000, 0.000000, 0.000000, 0.000000 -2867, 1.000000, 0.000000, 0.000000, 0.000000 -2868, 1.000000, 0.000000, 0.000000, 0.000000 -2869, 1.000000, 0.000000, 0.000000, 0.000000 -2870, 1.000000, 0.000000, 0.000000, 0.000000 -2871, 1.000000, 0.000000, 0.000000, 0.000000 -2872, 1.000000, 0.000000, 0.000000, 0.000000 -2873, 1.000000, 0.000000, 0.000000, 0.000000 -2874, 1.000000, 0.000000, 0.000000, 0.000000 -2875, 1.000000, 0.000000, 0.000000, 0.000000 -2876, 1.000000, 0.000000, 0.000000, 0.000000 -2877, 1.000000, 0.000000, 0.000000, 0.000000 -2878, 1.000000, 0.000000, 0.000000, 0.000000 -2879, 1.000000, 0.000000, 0.000000, 0.000000 -2880, 1.000000, 0.000000, 0.000000, 0.000000 -2881, 1.000000, 0.000000, 0.000000, 0.000000 -2882, 1.000000, 0.000000, 0.000000, 0.000000 -2883, 1.000000, 0.000000, 0.000000, 0.000000 -2884, 1.000000, 0.000000, 0.000000, 0.000000 -2885, 1.000000, 0.000000, 0.000000, 0.000000 -2886, 1.000000, 0.000000, 0.000000, 0.000000 -2887, 1.000000, 0.000000, 0.000000, 0.000000 -2888, 1.000000, 0.000000, 0.000000, 0.000000 -2889, 1.000000, 0.000000, 0.000000, 0.000000 -2890, 1.000000, 0.000000, 0.000000, 0.000000 -2891, 1.000000, 0.000000, 0.000000, 0.000000 -2892, 1.000000, 0.000000, 0.000000, 0.000000 -2893, 1.000000, 0.000000, 0.000000, 0.000000 -2894, 1.000000, 0.000000, 0.000000, 0.000000 -2895, 1.000000, 0.000000, 0.000000, 0.000000 -2896, 1.000000, 0.000000, 0.000000, 0.000000 -2897, 1.000000, 0.000000, 0.000000, 0.000000 -2898, 1.000000, 0.000000, 0.000000, 0.000000 -2899, 1.000000, 0.000000, 0.000000, 0.000000 -2900, 1.000000, 0.000000, 0.000000, 0.000000 -2901, 1.000000, 0.000000, 0.000000, 0.000000 -2902, 1.000000, 0.000000, 0.000000, 0.000000 -2903, 1.000000, 0.000000, 0.000000, 0.000000 -2904, 1.000000, 0.000000, 0.000000, 0.000000 -2905, 1.000000, 0.000000, 0.000000, 0.000000 -2906, 1.000000, 0.000000, 0.000000, 0.000000 -2907, 1.000000, 0.000000, 0.000000, 0.000000 -2908, 1.000000, 0.000000, 0.000000, 0.000000 -2909, 1.000000, 0.000000, 0.000000, 0.000000 -2910, 1.000000, 0.000000, 0.000000, 0.000000 -2911, 1.000000, 0.000000, 0.000000, 0.000000 -2912, 1.000000, 0.000000, 0.000000, 0.000000 -2913, 1.000000, 0.000000, 0.000000, 0.000000 -2914, 1.000000, 0.000000, 0.000000, 0.000000 -2915, 1.000000, 0.000000, 0.000000, 0.000000 -2916, 1.000000, 0.000000, 0.000000, 0.000000 -2917, 1.000000, 0.000000, 0.000000, 0.000000 -2918, 1.000000, 0.000000, 0.000000, 0.000000 -2919, 1.000000, 0.000000, 0.000000, 0.000000 -2920, 1.000000, 0.000000, 0.000000, 0.000000 -2921, 1.000000, 0.000000, 0.000000, 0.000000 -2922, 1.000000, 0.000000, 0.000000, 0.000000 -2923, 1.000000, 0.000000, 0.000000, 0.000000 -2924, 1.000000, 0.000000, 0.000000, 0.000000 -2925, 1.000000, 0.000000, 0.000000, 0.000000 -2926, 1.000000, 0.000000, 0.000000, 0.000000 -2927, 1.000000, 0.000000, 0.000000, 0.000000 -2928, 1.000000, 0.000000, 0.000000, 0.000000 -2929, 1.000000, 0.000000, 0.000000, 0.000000 -2930, 1.000000, 0.000000, 0.000000, 0.000000 -2931, 1.000000, 0.000000, 0.000000, 0.000000 -2932, 1.000000, 0.000000, 0.000000, 0.000000 -2933, 1.000000, 0.000000, 0.000000, 0.000000 -2934, 1.000000, 0.000000, 0.000000, 0.000000 -2935, 1.000000, 0.000000, 0.000000, 0.000000 -2936, 1.000000, 0.000000, 0.000000, 0.000000 -2937, 1.000000, 0.000000, 0.000000, 0.000000 -2938, 1.000000, 0.000000, 0.000000, 0.000000 -2939, 1.000000, 0.000000, 0.000000, 0.000000 -2940, 1.000000, 0.000000, 0.000000, 0.000000 -2941, 1.000000, 0.000000, 0.000000, 0.000000 -2942, 1.000000, 0.000000, 0.000000, 0.000000 -2943, 1.000000, 0.000000, 0.000000, 0.000000 -2944, 1.000000, 0.000000, 0.000000, 0.000000 -2945, 1.000000, 0.000000, 0.000000, 0.000000 -2946, 1.000000, 0.000000, 0.000000, 0.000000 -2947, 1.000000, 0.000000, 0.000000, 0.000000 -2948, 1.000000, 0.000000, 0.000000, 0.000000 -2949, 1.000000, 0.000000, 0.000000, 0.000000 -2950, 1.000000, 0.000000, 0.000000, 0.000000 -2951, 1.000000, 0.000000, 0.000000, 0.000000 -2952, 1.000000, 0.000000, 0.000000, 0.000000 -2953, 1.000000, 0.000000, 0.000000, 0.000000 -2954, 1.000000, 0.000000, 0.000000, 0.000000 -2955, 1.000000, 0.000000, 0.000000, 0.000000 -2956, 1.000000, 0.000000, 0.000000, 0.000000 -2957, 1.000000, 0.000000, 0.000000, 0.000000 -2958, 1.000000, 0.000000, 0.000000, 0.000000 -2959, 1.000000, 0.000000, 0.000000, 0.000000 -2960, 1.000000, 0.000000, 0.000000, 0.000000 -2961, 1.000000, 0.000000, 0.000000, 0.000000 -2962, 1.000000, 0.000000, 0.000000, 0.000000 -2963, 1.000000, 0.000000, 0.000000, 0.000000 -2964, 1.000000, 0.000000, 0.000000, 0.000000 -2965, 1.000000, 0.000000, 0.000000, 0.000000 -2966, 1.000000, 0.000000, 0.000000, 0.000000 -2967, 1.000000, 0.000000, 0.000000, 0.000000 -2968, 1.000000, 0.000000, 0.000000, 0.000000 -2969, 1.000000, 0.000000, 0.000000, 0.000000 -2970, 1.000000, 0.000000, 0.000000, 0.000000 -2971, 1.000000, 0.000000, 0.000000, 0.000000 -2972, 1.000000, 0.000000, 0.000000, 0.000000 -2973, 1.000000, 0.000000, 0.000000, 0.000000 -2974, 1.000000, 0.000000, 0.000000, 0.000000 -2975, 1.000000, 0.000000, 0.000000, 0.000000 -2976, 1.000000, 0.000000, 0.000000, 0.000000 -2977, 1.000000, 0.000000, 0.000000, 0.000000 -2978, 1.000000, 0.000000, 0.000000, 0.000000 -2979, 1.000000, 0.000000, 0.000000, 0.000000 -2980, 1.000000, 0.000000, 0.000000, 0.000000 -2981, 1.000000, 0.000000, 0.000000, 0.000000 -2982, 1.000000, 0.000000, 0.000000, 0.000000 -2983, 1.000000, 0.000000, 0.000000, 0.000000 -2984, 1.000000, 0.000000, 0.000000, 0.000000 -2985, 1.000000, 0.000000, 0.000000, 0.000000 -2986, 1.000000, 0.000000, 0.000000, 0.000000 -2987, 1.000000, 0.000000, 0.000000, 0.000000 -2988, 1.000000, 0.000000, 0.000000, 0.000000 -2989, 1.000000, 0.000000, 0.000000, 0.000000 -2990, 1.000000, 0.000000, 0.000000, 0.000000 -2991, 1.000000, 0.000000, 0.000000, 0.000000 -2992, 1.000000, 0.000000, 0.000000, 0.000000 -2993, 1.000000, 0.000000, 0.000000, 0.000000 -2994, 1.000000, 0.000000, 0.000000, 0.000000 -2995, 1.000000, 0.000000, 0.000000, 0.000000 -2996, 1.000000, 0.000000, 0.000000, 0.000000 -2997, 1.000000, 0.000000, 0.000000, 0.000000 -2998, 1.000000, 0.000000, 0.000000, 0.000000 -2999, 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 diff --git a/scripts/trajectories/full-circle-T15.0-w0.2.csv b/scripts/trajectories/full-circle-T15.0-w0.2.csv index f8fb10120b..452858a006 100644 --- a/scripts/trajectories/full-circle-T15.0-w0.2.csv +++ b/scripts/trajectories/full-circle-T15.0-w0.2.csv @@ -1,3000 +1,3000 @@ -0, 1.000000, 0.000000, 0.000000, 0.000000 -1, 0.999995, 0.000000, 0.000000, 0.003143 -2, 0.999980, 0.000000, 0.000000, 0.006285 -3, 0.999956, 0.000000, 0.000000, 0.009428 -4, 0.999921, 0.000000, 0.000000, 0.012570 -5, 0.999877, 0.000000, 0.000000, 0.015713 -6, 0.999822, 0.000000, 0.000000, 0.018855 -7, 0.999758, 0.000000, 0.000000, 0.021997 -8, 0.999684, 0.000000, 0.000000, 0.025138 -9, 0.999600, 0.000000, 0.000000, 0.028280 -10, 0.999506, 0.000000, 0.000000, 0.031421 -11, 0.999403, 0.000000, 0.000000, 0.034562 -12, 0.999289, 0.000000, 0.000000, 0.037703 -13, 0.999166, 0.000000, 0.000000, 0.040843 -14, 0.999032, 0.000000, 0.000000, 0.043983 -15, 0.998889, 0.000000, 0.000000, 0.047122 -16, 0.998736, 0.000000, 0.000000, 0.050261 -17, 0.998573, 0.000000, 0.000000, 0.053399 -18, 0.998400, 0.000000, 0.000000, 0.056537 -19, 0.998218, 0.000000, 0.000000, 0.059675 -20, 0.998025, 0.000000, 0.000000, 0.062811 -21, 0.997823, 0.000000, 0.000000, 0.065948 -22, 0.997611, 0.000000, 0.000000, 0.069083 -23, 0.997389, 0.000000, 0.000000, 0.072218 -24, 0.997157, 0.000000, 0.000000, 0.075352 -25, 0.996915, 0.000000, 0.000000, 0.078485 -26, 0.996664, 0.000000, 0.000000, 0.081618 -27, 0.996402, 0.000000, 0.000000, 0.084750 -28, 0.996131, 0.000000, 0.000000, 0.087880 -29, 0.995850, 0.000000, 0.000000, 0.091010 -30, 0.995559, 0.000000, 0.000000, 0.094140 -31, 0.995258, 0.000000, 0.000000, 0.097268 -32, 0.994948, 0.000000, 0.000000, 0.100395 -33, 0.994627, 0.000000, 0.000000, 0.103521 -34, 0.994297, 0.000000, 0.000000, 0.106647 -35, 0.993957, 0.000000, 0.000000, 0.109771 -36, 0.993607, 0.000000, 0.000000, 0.112894 -37, 0.993247, 0.000000, 0.000000, 0.116016 -38, 0.992878, 0.000000, 0.000000, 0.119137 -39, 0.992499, 0.000000, 0.000000, 0.122256 -40, 0.992109, 0.000000, 0.000000, 0.125375 -41, 0.991711, 0.000000, 0.000000, 0.128492 -42, 0.991302, 0.000000, 0.000000, 0.131608 -43, 0.990883, 0.000000, 0.000000, 0.134723 -44, 0.990455, 0.000000, 0.000000, 0.137836 -45, 0.990017, 0.000000, 0.000000, 0.140948 -46, 0.989569, 0.000000, 0.000000, 0.144058 -47, 0.989112, 0.000000, 0.000000, 0.147168 -48, 0.988644, 0.000000, 0.000000, 0.150275 -49, 0.988167, 0.000000, 0.000000, 0.153382 -50, 0.987680, 0.000000, 0.000000, 0.156486 -51, 0.987183, 0.000000, 0.000000, 0.159589 -52, 0.986677, 0.000000, 0.000000, 0.162691 -53, 0.986161, 0.000000, 0.000000, 0.165791 -54, 0.985635, 0.000000, 0.000000, 0.168889 -55, 0.985099, 0.000000, 0.000000, 0.171986 -56, 0.984554, 0.000000, 0.000000, 0.175081 -57, 0.983999, 0.000000, 0.000000, 0.178174 -58, 0.983434, 0.000000, 0.000000, 0.181266 -59, 0.982860, 0.000000, 0.000000, 0.184355 -60, 0.982275, 0.000000, 0.000000, 0.187443 -61, 0.981682, 0.000000, 0.000000, 0.190529 -62, 0.981078, 0.000000, 0.000000, 0.193613 -63, 0.980465, 0.000000, 0.000000, 0.196695 -64, 0.979842, 0.000000, 0.000000, 0.199776 -65, 0.979209, 0.000000, 0.000000, 0.202854 -66, 0.978567, 0.000000, 0.000000, 0.205930 -67, 0.977915, 0.000000, 0.000000, 0.209005 -68, 0.977253, 0.000000, 0.000000, 0.212077 -69, 0.976582, 0.000000, 0.000000, 0.215147 -70, 0.975901, 0.000000, 0.000000, 0.218215 -71, 0.975210, 0.000000, 0.000000, 0.221281 -72, 0.974510, 0.000000, 0.000000, 0.224344 -73, 0.973800, 0.000000, 0.000000, 0.227406 -74, 0.973081, 0.000000, 0.000000, 0.230465 -75, 0.972352, 0.000000, 0.000000, 0.233522 -76, 0.971613, 0.000000, 0.000000, 0.236576 -77, 0.970865, 0.000000, 0.000000, 0.239629 -78, 0.970107, 0.000000, 0.000000, 0.242678 -79, 0.969339, 0.000000, 0.000000, 0.245726 -80, 0.968562, 0.000000, 0.000000, 0.248771 -81, 0.967776, 0.000000, 0.000000, 0.251814 -82, 0.966980, 0.000000, 0.000000, 0.254854 -83, 0.966174, 0.000000, 0.000000, 0.257891 -84, 0.965359, 0.000000, 0.000000, 0.260926 -85, 0.964534, 0.000000, 0.000000, 0.263959 -86, 0.963700, 0.000000, 0.000000, 0.266989 -87, 0.962856, 0.000000, 0.000000, 0.270016 -88, 0.962003, 0.000000, 0.000000, 0.273041 -89, 0.961140, 0.000000, 0.000000, 0.276062 -90, 0.960267, 0.000000, 0.000000, 0.279082 -91, 0.959386, 0.000000, 0.000000, 0.282098 -92, 0.958494, 0.000000, 0.000000, 0.285112 -93, 0.957594, 0.000000, 0.000000, 0.288122 -94, 0.956683, 0.000000, 0.000000, 0.291130 -95, 0.955764, 0.000000, 0.000000, 0.294135 -96, 0.954835, 0.000000, 0.000000, 0.297138 -97, 0.953896, 0.000000, 0.000000, 0.300137 -98, 0.952948, 0.000000, 0.000000, 0.303133 -99, 0.951991, 0.000000, 0.000000, 0.306126 -100, 0.951024, 0.000000, 0.000000, 0.309117 -101, 0.950048, 0.000000, 0.000000, 0.312104 -102, 0.949062, 0.000000, 0.000000, 0.315088 -103, 0.948068, 0.000000, 0.000000, 0.318069 -104, 0.947063, 0.000000, 0.000000, 0.321047 -105, 0.946050, 0.000000, 0.000000, 0.324021 -106, 0.945027, 0.000000, 0.000000, 0.326993 -107, 0.943994, 0.000000, 0.000000, 0.329961 -108, 0.942953, 0.000000, 0.000000, 0.332926 -109, 0.941902, 0.000000, 0.000000, 0.335888 -110, 0.940842, 0.000000, 0.000000, 0.338846 -111, 0.939772, 0.000000, 0.000000, 0.341801 -112, 0.938693, 0.000000, 0.000000, 0.344753 -113, 0.937605, 0.000000, 0.000000, 0.347701 -114, 0.936508, 0.000000, 0.000000, 0.350646 -115, 0.935401, 0.000000, 0.000000, 0.353588 -116, 0.934286, 0.000000, 0.000000, 0.356525 -117, 0.933161, 0.000000, 0.000000, 0.359460 -118, 0.932026, 0.000000, 0.000000, 0.362391 -119, 0.930883, 0.000000, 0.000000, 0.365318 -120, 0.929730, 0.000000, 0.000000, 0.368241 -121, 0.928568, 0.000000, 0.000000, 0.371161 -122, 0.927397, 0.000000, 0.000000, 0.374078 -123, 0.926217, 0.000000, 0.000000, 0.376990 -124, 0.925028, 0.000000, 0.000000, 0.379899 -125, 0.923829, 0.000000, 0.000000, 0.382804 -126, 0.922622, 0.000000, 0.000000, 0.385706 -127, 0.921405, 0.000000, 0.000000, 0.388603 -128, 0.920179, 0.000000, 0.000000, 0.391497 -129, 0.918944, 0.000000, 0.000000, 0.394387 -130, 0.917701, 0.000000, 0.000000, 0.397273 -131, 0.916448, 0.000000, 0.000000, 0.400155 -132, 0.915185, 0.000000, 0.000000, 0.403033 -133, 0.913914, 0.000000, 0.000000, 0.405907 -134, 0.912634, 0.000000, 0.000000, 0.408777 -135, 0.911345, 0.000000, 0.000000, 0.411643 -136, 0.910047, 0.000000, 0.000000, 0.414505 -137, 0.908740, 0.000000, 0.000000, 0.417363 -138, 0.907424, 0.000000, 0.000000, 0.420217 -139, 0.906099, 0.000000, 0.000000, 0.423067 -140, 0.904765, 0.000000, 0.000000, 0.425912 -141, 0.903422, 0.000000, 0.000000, 0.428753 -142, 0.902070, 0.000000, 0.000000, 0.431590 -143, 0.900709, 0.000000, 0.000000, 0.434423 -144, 0.899339, 0.000000, 0.000000, 0.437251 -145, 0.897961, 0.000000, 0.000000, 0.440076 -146, 0.896573, 0.000000, 0.000000, 0.442895 -147, 0.895177, 0.000000, 0.000000, 0.445711 -148, 0.893772, 0.000000, 0.000000, 0.448522 -149, 0.892358, 0.000000, 0.000000, 0.451328 -150, 0.890935, 0.000000, 0.000000, 0.454130 -151, 0.889504, 0.000000, 0.000000, 0.456928 -152, 0.888063, 0.000000, 0.000000, 0.459721 -153, 0.886614, 0.000000, 0.000000, 0.462510 -154, 0.885156, 0.000000, 0.000000, 0.465294 -155, 0.883690, 0.000000, 0.000000, 0.468073 -156, 0.882214, 0.000000, 0.000000, 0.470848 -157, 0.880730, 0.000000, 0.000000, 0.473618 -158, 0.879237, 0.000000, 0.000000, 0.476384 -159, 0.877736, 0.000000, 0.000000, 0.479145 -160, 0.876226, 0.000000, 0.000000, 0.481901 -161, 0.874707, 0.000000, 0.000000, 0.484652 -162, 0.873180, 0.000000, 0.000000, 0.487398 -163, 0.871644, 0.000000, 0.000000, 0.490140 -164, 0.870099, 0.000000, 0.000000, 0.492877 -165, 0.868546, 0.000000, 0.000000, 0.495609 -166, 0.866984, 0.000000, 0.000000, 0.498336 -167, 0.865414, 0.000000, 0.000000, 0.501058 -168, 0.863835, 0.000000, 0.000000, 0.503775 -169, 0.862247, 0.000000, 0.000000, 0.506487 -170, 0.860651, 0.000000, 0.000000, 0.509195 -171, 0.859047, 0.000000, 0.000000, 0.511897 -172, 0.857434, 0.000000, 0.000000, 0.514594 -173, 0.855813, 0.000000, 0.000000, 0.517286 -174, 0.854183, 0.000000, 0.000000, 0.519973 -175, 0.852544, 0.000000, 0.000000, 0.522655 -176, 0.850898, 0.000000, 0.000000, 0.525332 -177, 0.849243, 0.000000, 0.000000, 0.528003 -178, 0.847579, 0.000000, 0.000000, 0.530669 -179, 0.845907, 0.000000, 0.000000, 0.533330 -180, 0.844227, 0.000000, 0.000000, 0.535986 -181, 0.842538, 0.000000, 0.000000, 0.538636 -182, 0.840841, 0.000000, 0.000000, 0.541282 -183, 0.839136, 0.000000, 0.000000, 0.543921 -184, 0.837423, 0.000000, 0.000000, 0.546556 -185, 0.835701, 0.000000, 0.000000, 0.549185 -186, 0.833971, 0.000000, 0.000000, 0.551808 -187, 0.832233, 0.000000, 0.000000, 0.554427 -188, 0.830486, 0.000000, 0.000000, 0.557039 -189, 0.828732, 0.000000, 0.000000, 0.559646 -190, 0.826969, 0.000000, 0.000000, 0.562248 -191, 0.825198, 0.000000, 0.000000, 0.564844 -192, 0.823418, 0.000000, 0.000000, 0.567435 -193, 0.821631, 0.000000, 0.000000, 0.570019 -194, 0.819836, 0.000000, 0.000000, 0.572599 -195, 0.818032, 0.000000, 0.000000, 0.575172 -196, 0.816221, 0.000000, 0.000000, 0.577740 -197, 0.814401, 0.000000, 0.000000, 0.580303 -198, 0.812573, 0.000000, 0.000000, 0.582859 -199, 0.810738, 0.000000, 0.000000, 0.585410 -200, 0.808894, 0.000000, 0.000000, 0.587955 -201, 0.807042, 0.000000, 0.000000, 0.590494 -202, 0.805182, 0.000000, 0.000000, 0.593027 -203, 0.803315, 0.000000, 0.000000, 0.595555 -204, 0.801439, 0.000000, 0.000000, 0.598076 -205, 0.799556, 0.000000, 0.000000, 0.600592 -206, 0.797664, 0.000000, 0.000000, 0.603102 -207, 0.795765, 0.000000, 0.000000, 0.605605 -208, 0.793858, 0.000000, 0.000000, 0.608103 -209, 0.791943, 0.000000, 0.000000, 0.610595 -210, 0.790020, 0.000000, 0.000000, 0.613081 -211, 0.788090, 0.000000, 0.000000, 0.615561 -212, 0.786151, 0.000000, 0.000000, 0.618034 -213, 0.784205, 0.000000, 0.000000, 0.620502 -214, 0.782251, 0.000000, 0.000000, 0.622963 -215, 0.780290, 0.000000, 0.000000, 0.625418 -216, 0.778320, 0.000000, 0.000000, 0.627867 -217, 0.776343, 0.000000, 0.000000, 0.630310 -218, 0.774359, 0.000000, 0.000000, 0.632747 -219, 0.772366, 0.000000, 0.000000, 0.635177 -220, 0.770366, 0.000000, 0.000000, 0.637602 -221, 0.768359, 0.000000, 0.000000, 0.640019 -222, 0.766344, 0.000000, 0.000000, 0.642431 -223, 0.764321, 0.000000, 0.000000, 0.644836 -224, 0.762291, 0.000000, 0.000000, 0.647235 -225, 0.760253, 0.000000, 0.000000, 0.649627 -226, 0.758208, 0.000000, 0.000000, 0.652013 -227, 0.756155, 0.000000, 0.000000, 0.654393 -228, 0.754095, 0.000000, 0.000000, 0.656766 -229, 0.752027, 0.000000, 0.000000, 0.659132 -230, 0.749952, 0.000000, 0.000000, 0.661493 -231, 0.747869, 0.000000, 0.000000, 0.663846 -232, 0.745779, 0.000000, 0.000000, 0.666193 -233, 0.743682, 0.000000, 0.000000, 0.668534 -234, 0.741577, 0.000000, 0.000000, 0.670867 -235, 0.739465, 0.000000, 0.000000, 0.673195 -236, 0.737346, 0.000000, 0.000000, 0.675515 -237, 0.735220, 0.000000, 0.000000, 0.677829 -238, 0.733086, 0.000000, 0.000000, 0.680136 -239, 0.730945, 0.000000, 0.000000, 0.682437 -240, 0.728797, 0.000000, 0.000000, 0.684730 -241, 0.726641, 0.000000, 0.000000, 0.687017 -242, 0.724478, 0.000000, 0.000000, 0.689297 -243, 0.722309, 0.000000, 0.000000, 0.691571 -244, 0.720132, 0.000000, 0.000000, 0.693837 -245, 0.717948, 0.000000, 0.000000, 0.696097 -246, 0.715757, 0.000000, 0.000000, 0.698350 -247, 0.713558, 0.000000, 0.000000, 0.700596 -248, 0.711353, 0.000000, 0.000000, 0.702835 -249, 0.709141, 0.000000, 0.000000, 0.705067 -250, 0.706922, 0.000000, 0.000000, 0.707292 -251, 0.704695, 0.000000, 0.000000, 0.709510 -252, 0.702462, 0.000000, 0.000000, 0.711721 -253, 0.700222, 0.000000, 0.000000, 0.713925 -254, 0.697975, 0.000000, 0.000000, 0.716122 -255, 0.695721, 0.000000, 0.000000, 0.718312 -256, 0.693460, 0.000000, 0.000000, 0.720495 -257, 0.691192, 0.000000, 0.000000, 0.722671 -258, 0.688918, 0.000000, 0.000000, 0.724839 -259, 0.686637, 0.000000, 0.000000, 0.727001 -260, 0.684349, 0.000000, 0.000000, 0.729155 -261, 0.682054, 0.000000, 0.000000, 0.731302 -262, 0.679752, 0.000000, 0.000000, 0.733442 -263, 0.677444, 0.000000, 0.000000, 0.735575 -264, 0.675129, 0.000000, 0.000000, 0.737700 -265, 0.672807, 0.000000, 0.000000, 0.739818 -266, 0.670479, 0.000000, 0.000000, 0.741929 -267, 0.668144, 0.000000, 0.000000, 0.744032 -268, 0.665802, 0.000000, 0.000000, 0.746128 -269, 0.663454, 0.000000, 0.000000, 0.748217 -270, 0.661100, 0.000000, 0.000000, 0.750298 -271, 0.658739, 0.000000, 0.000000, 0.752372 -272, 0.656371, 0.000000, 0.000000, 0.754438 -273, 0.653997, 0.000000, 0.000000, 0.756497 -274, 0.651616, 0.000000, 0.000000, 0.758549 -275, 0.649229, 0.000000, 0.000000, 0.760593 -276, 0.646835, 0.000000, 0.000000, 0.762630 -277, 0.644436, 0.000000, 0.000000, 0.764659 -278, 0.642029, 0.000000, 0.000000, 0.766680 -279, 0.639617, 0.000000, 0.000000, 0.768694 -280, 0.637198, 0.000000, 0.000000, 0.770700 -281, 0.634773, 0.000000, 0.000000, 0.772699 -282, 0.632341, 0.000000, 0.000000, 0.774690 -283, 0.629904, 0.000000, 0.000000, 0.776673 -284, 0.627460, 0.000000, 0.000000, 0.778649 -285, 0.625010, 0.000000, 0.000000, 0.780617 -286, 0.622553, 0.000000, 0.000000, 0.782577 -287, 0.620091, 0.000000, 0.000000, 0.784530 -288, 0.617622, 0.000000, 0.000000, 0.786475 -289, 0.615148, 0.000000, 0.000000, 0.788412 -290, 0.612667, 0.000000, 0.000000, 0.790341 -291, 0.610180, 0.000000, 0.000000, 0.792263 -292, 0.607687, 0.000000, 0.000000, 0.794176 -293, 0.605189, 0.000000, 0.000000, 0.796082 -294, 0.602684, 0.000000, 0.000000, 0.797980 -295, 0.600173, 0.000000, 0.000000, 0.799870 -296, 0.597656, 0.000000, 0.000000, 0.801752 -297, 0.595134, 0.000000, 0.000000, 0.803627 -298, 0.592605, 0.000000, 0.000000, 0.805493 -299, 0.590071, 0.000000, 0.000000, 0.807351 -300, 0.587531, 0.000000, 0.000000, 0.809202 -301, 0.584985, 0.000000, 0.000000, 0.811044 -302, 0.582433, 0.000000, 0.000000, 0.812878 -303, 0.579876, 0.000000, 0.000000, 0.814705 -304, 0.577313, 0.000000, 0.000000, 0.816523 -305, 0.574744, 0.000000, 0.000000, 0.818333 -306, 0.572169, 0.000000, 0.000000, 0.820136 -307, 0.569589, 0.000000, 0.000000, 0.821930 -308, 0.567003, 0.000000, 0.000000, 0.823716 -309, 0.564412, 0.000000, 0.000000, 0.825493 -310, 0.561815, 0.000000, 0.000000, 0.827263 -311, 0.559212, 0.000000, 0.000000, 0.829025 -312, 0.556604, 0.000000, 0.000000, 0.830778 -313, 0.553991, 0.000000, 0.000000, 0.832523 -314, 0.551371, 0.000000, 0.000000, 0.834260 -315, 0.548747, 0.000000, 0.000000, 0.835988 -316, 0.546117, 0.000000, 0.000000, 0.837709 -317, 0.543482, 0.000000, 0.000000, 0.839421 -318, 0.540841, 0.000000, 0.000000, 0.841125 -319, 0.538195, 0.000000, 0.000000, 0.842820 -320, 0.535544, 0.000000, 0.000000, 0.844507 -321, 0.532887, 0.000000, 0.000000, 0.846186 -322, 0.530225, 0.000000, 0.000000, 0.847857 -323, 0.527558, 0.000000, 0.000000, 0.849519 -324, 0.524886, 0.000000, 0.000000, 0.851173 -325, 0.522208, 0.000000, 0.000000, 0.852818 -326, 0.519526, 0.000000, 0.000000, 0.854455 -327, 0.516838, 0.000000, 0.000000, 0.856083 -328, 0.514145, 0.000000, 0.000000, 0.857703 -329, 0.511447, 0.000000, 0.000000, 0.859315 -330, 0.508744, 0.000000, 0.000000, 0.860918 -331, 0.506036, 0.000000, 0.000000, 0.862512 -332, 0.503323, 0.000000, 0.000000, 0.864099 -333, 0.500605, 0.000000, 0.000000, 0.865676 -334, 0.497882, 0.000000, 0.000000, 0.867245 -335, 0.495154, 0.000000, 0.000000, 0.868805 -336, 0.492421, 0.000000, 0.000000, 0.870357 -337, 0.489683, 0.000000, 0.000000, 0.871900 -338, 0.486941, 0.000000, 0.000000, 0.873435 -339, 0.484194, 0.000000, 0.000000, 0.874961 -340, 0.481442, 0.000000, 0.000000, 0.876478 -341, 0.478685, 0.000000, 0.000000, 0.877987 -342, 0.475923, 0.000000, 0.000000, 0.879487 -343, 0.473157, 0.000000, 0.000000, 0.880978 -344, 0.470386, 0.000000, 0.000000, 0.882461 -345, 0.467610, 0.000000, 0.000000, 0.883935 -346, 0.464830, 0.000000, 0.000000, 0.885400 -347, 0.462045, 0.000000, 0.000000, 0.886856 -348, 0.459256, 0.000000, 0.000000, 0.888304 -349, 0.456462, 0.000000, 0.000000, 0.889743 -350, 0.453664, 0.000000, 0.000000, 0.891173 -351, 0.450861, 0.000000, 0.000000, 0.892594 -352, 0.448054, 0.000000, 0.000000, 0.894007 -353, 0.445242, 0.000000, 0.000000, 0.895410 -354, 0.442426, 0.000000, 0.000000, 0.896805 -355, 0.439605, 0.000000, 0.000000, 0.898191 -356, 0.436780, 0.000000, 0.000000, 0.899568 -357, 0.433951, 0.000000, 0.000000, 0.900936 -358, 0.431118, 0.000000, 0.000000, 0.902296 -359, 0.428280, 0.000000, 0.000000, 0.903646 -360, 0.425438, 0.000000, 0.000000, 0.904988 -361, 0.422592, 0.000000, 0.000000, 0.906320 -362, 0.419742, 0.000000, 0.000000, 0.907644 -363, 0.416887, 0.000000, 0.000000, 0.908958 -364, 0.414029, 0.000000, 0.000000, 0.910264 -365, 0.411166, 0.000000, 0.000000, 0.911561 -366, 0.408299, 0.000000, 0.000000, 0.912848 -367, 0.405428, 0.000000, 0.000000, 0.914127 -368, 0.402554, 0.000000, 0.000000, 0.915396 -369, 0.399675, 0.000000, 0.000000, 0.916657 -370, 0.396792, 0.000000, 0.000000, 0.917908 -371, 0.393906, 0.000000, 0.000000, 0.919151 -372, 0.391015, 0.000000, 0.000000, 0.920384 -373, 0.388121, 0.000000, 0.000000, 0.921609 -374, 0.385222, 0.000000, 0.000000, 0.922824 -375, 0.382320, 0.000000, 0.000000, 0.924030 -376, 0.379415, 0.000000, 0.000000, 0.925227 -377, 0.376505, 0.000000, 0.000000, 0.926415 -378, 0.373592, 0.000000, 0.000000, 0.927593 -379, 0.370675, 0.000000, 0.000000, 0.928763 -380, 0.367754, 0.000000, 0.000000, 0.929923 -381, 0.364830, 0.000000, 0.000000, 0.931074 -382, 0.361902, 0.000000, 0.000000, 0.932216 -383, 0.358971, 0.000000, 0.000000, 0.933349 -384, 0.356036, 0.000000, 0.000000, 0.934472 -385, 0.353098, 0.000000, 0.000000, 0.935587 -386, 0.350156, 0.000000, 0.000000, 0.936692 -387, 0.347210, 0.000000, 0.000000, 0.937787 -388, 0.344261, 0.000000, 0.000000, 0.938874 -389, 0.341309, 0.000000, 0.000000, 0.939951 -390, 0.338354, 0.000000, 0.000000, 0.941019 -391, 0.335395, 0.000000, 0.000000, 0.942078 -392, 0.332432, 0.000000, 0.000000, 0.943127 -393, 0.329467, 0.000000, 0.000000, 0.944167 -394, 0.326498, 0.000000, 0.000000, 0.945198 -395, 0.323526, 0.000000, 0.000000, 0.946219 -396, 0.320551, 0.000000, 0.000000, 0.947231 -397, 0.317572, 0.000000, 0.000000, 0.948234 -398, 0.314591, 0.000000, 0.000000, 0.949227 -399, 0.311606, 0.000000, 0.000000, 0.950211 -400, 0.308618, 0.000000, 0.000000, 0.951186 -401, 0.305628, 0.000000, 0.000000, 0.952151 -402, 0.302634, 0.000000, 0.000000, 0.953107 -403, 0.299637, 0.000000, 0.000000, 0.954053 -404, 0.296637, 0.000000, 0.000000, 0.954990 -405, 0.293635, 0.000000, 0.000000, 0.955918 -406, 0.290629, 0.000000, 0.000000, 0.956836 -407, 0.287621, 0.000000, 0.000000, 0.957744 -408, 0.284610, 0.000000, 0.000000, 0.958644 -409, 0.281595, 0.000000, 0.000000, 0.959533 -410, 0.278579, 0.000000, 0.000000, 0.960413 -411, 0.275559, 0.000000, 0.000000, 0.961284 -412, 0.272537, 0.000000, 0.000000, 0.962145 -413, 0.269512, 0.000000, 0.000000, 0.962997 -414, 0.266484, 0.000000, 0.000000, 0.963839 -415, 0.263454, 0.000000, 0.000000, 0.964672 -416, 0.260421, 0.000000, 0.000000, 0.965495 -417, 0.257385, 0.000000, 0.000000, 0.966309 -418, 0.254347, 0.000000, 0.000000, 0.967113 -419, 0.251307, 0.000000, 0.000000, 0.967907 -420, 0.248264, 0.000000, 0.000000, 0.968692 -421, 0.245218, 0.000000, 0.000000, 0.969468 -422, 0.242170, 0.000000, 0.000000, 0.970234 -423, 0.239120, 0.000000, 0.000000, 0.970990 -424, 0.236067, 0.000000, 0.000000, 0.971737 -425, 0.233012, 0.000000, 0.000000, 0.972474 -426, 0.229955, 0.000000, 0.000000, 0.973201 -427, 0.226896, 0.000000, 0.000000, 0.973919 -428, 0.223834, 0.000000, 0.000000, 0.974627 -429, 0.220770, 0.000000, 0.000000, 0.975326 -430, 0.217704, 0.000000, 0.000000, 0.976015 -431, 0.214635, 0.000000, 0.000000, 0.976694 -432, 0.211565, 0.000000, 0.000000, 0.977364 -433, 0.208492, 0.000000, 0.000000, 0.978024 -434, 0.205418, 0.000000, 0.000000, 0.978674 -435, 0.202341, 0.000000, 0.000000, 0.979315 -436, 0.199262, 0.000000, 0.000000, 0.979946 -437, 0.196182, 0.000000, 0.000000, 0.980568 -438, 0.193099, 0.000000, 0.000000, 0.981179 -439, 0.190015, 0.000000, 0.000000, 0.981781 -440, 0.186929, 0.000000, 0.000000, 0.982374 -441, 0.183840, 0.000000, 0.000000, 0.982956 -442, 0.180750, 0.000000, 0.000000, 0.983529 -443, 0.177659, 0.000000, 0.000000, 0.984092 -444, 0.174565, 0.000000, 0.000000, 0.984646 -445, 0.171470, 0.000000, 0.000000, 0.985189 -446, 0.168373, 0.000000, 0.000000, 0.985723 -447, 0.165274, 0.000000, 0.000000, 0.986248 -448, 0.162174, 0.000000, 0.000000, 0.986762 -449, 0.159072, 0.000000, 0.000000, 0.987267 -450, 0.155969, 0.000000, 0.000000, 0.987762 -451, 0.152864, 0.000000, 0.000000, 0.988247 -452, 0.149757, 0.000000, 0.000000, 0.988723 -453, 0.146650, 0.000000, 0.000000, 0.989189 -454, 0.143540, 0.000000, 0.000000, 0.989644 -455, 0.140429, 0.000000, 0.000000, 0.990091 -456, 0.137317, 0.000000, 0.000000, 0.990527 -457, 0.134204, 0.000000, 0.000000, 0.990954 -458, 0.131089, 0.000000, 0.000000, 0.991371 -459, 0.127973, 0.000000, 0.000000, 0.991778 -460, 0.124855, 0.000000, 0.000000, 0.992175 -461, 0.121736, 0.000000, 0.000000, 0.992562 -462, 0.118617, 0.000000, 0.000000, 0.992940 -463, 0.115496, 0.000000, 0.000000, 0.993308 -464, 0.112373, 0.000000, 0.000000, 0.993666 -465, 0.109250, 0.000000, 0.000000, 0.994014 -466, 0.106126, 0.000000, 0.000000, 0.994353 -467, 0.103000, 0.000000, 0.000000, 0.994681 -468, 0.099874, 0.000000, 0.000000, 0.995000 -469, 0.096747, 0.000000, 0.000000, 0.995309 -470, 0.093618, 0.000000, 0.000000, 0.995608 -471, 0.090489, 0.000000, 0.000000, 0.995897 -472, 0.087359, 0.000000, 0.000000, 0.996177 -473, 0.084228, 0.000000, 0.000000, 0.996447 -474, 0.081096, 0.000000, 0.000000, 0.996706 -475, 0.077963, 0.000000, 0.000000, 0.996956 -476, 0.074830, 0.000000, 0.000000, 0.997196 -477, 0.071695, 0.000000, 0.000000, 0.997427 -478, 0.068560, 0.000000, 0.000000, 0.997647 -479, 0.065425, 0.000000, 0.000000, 0.997857 -480, 0.062289, 0.000000, 0.000000, 0.998058 -481, 0.059152, 0.000000, 0.000000, 0.998249 -482, 0.056014, 0.000000, 0.000000, 0.998430 -483, 0.052876, 0.000000, 0.000000, 0.998601 -484, 0.049738, 0.000000, 0.000000, 0.998762 -485, 0.046599, 0.000000, 0.000000, 0.998914 -486, 0.043459, 0.000000, 0.000000, 0.999055 -487, 0.040320, 0.000000, 0.000000, 0.999187 -488, 0.037179, 0.000000, 0.000000, 0.999309 -489, 0.034039, 0.000000, 0.000000, 0.999421 -490, 0.030898, 0.000000, 0.000000, 0.999523 -491, 0.027756, 0.000000, 0.000000, 0.999615 -492, 0.024615, 0.000000, 0.000000, 0.999697 -493, 0.021473, 0.000000, 0.000000, 0.999769 -494, 0.018331, 0.000000, 0.000000, 0.999832 -495, 0.015189, 0.000000, 0.000000, 0.999885 -496, 0.012046, 0.000000, 0.000000, 0.999927 -497, 0.008904, 0.000000, 0.000000, 0.999960 -498, 0.005761, 0.000000, 0.000000, 0.999983 -499, 0.002619, 0.000000, 0.000000, 0.999997 -500, -0.000524, -0.000000, 0.000000, 1.000000 -501, -0.003666, -0.000000, 0.000000, 0.999993 -502, -0.006809, -0.000000, 0.000000, 0.999977 -503, -0.009952, -0.000000, 0.000000, 0.999950 -504, -0.013094, -0.000000, 0.000000, 0.999914 -505, -0.016236, -0.000000, 0.000000, 0.999868 -506, -0.019378, -0.000000, 0.000000, 0.999812 -507, -0.022520, -0.000000, 0.000000, 0.999746 -508, -0.025662, -0.000000, 0.000000, 0.999671 -509, -0.028804, -0.000000, 0.000000, 0.999585 -510, -0.031945, -0.000000, 0.000000, 0.999490 -511, -0.035086, -0.000000, 0.000000, 0.999384 -512, -0.038226, -0.000000, 0.000000, 0.999269 -513, -0.041366, -0.000000, 0.000000, 0.999144 -514, -0.044506, -0.000000, 0.000000, 0.999009 -515, -0.047645, -0.000000, 0.000000, 0.998864 -516, -0.050784, -0.000000, 0.000000, 0.998710 -517, -0.053922, -0.000000, 0.000000, 0.998545 -518, -0.057060, -0.000000, 0.000000, 0.998371 -519, -0.060198, -0.000000, 0.000000, 0.998186 -520, -0.063334, -0.000000, 0.000000, 0.997992 -521, -0.066470, -0.000000, 0.000000, 0.997788 -522, -0.069606, -0.000000, 0.000000, 0.997575 -523, -0.072740, -0.000000, 0.000000, 0.997351 -524, -0.075874, -0.000000, 0.000000, 0.997117 -525, -0.079007, -0.000000, 0.000000, 0.996874 -526, -0.082140, -0.000000, 0.000000, 0.996621 -527, -0.085271, -0.000000, 0.000000, 0.996358 -528, -0.088402, -0.000000, 0.000000, 0.996085 -529, -0.091532, -0.000000, 0.000000, 0.995802 -530, -0.094661, -0.000000, 0.000000, 0.995510 -531, -0.097789, -0.000000, 0.000000, 0.995207 -532, -0.100916, -0.000000, 0.000000, 0.994895 -533, -0.104042, -0.000000, 0.000000, 0.994573 -534, -0.107167, -0.000000, 0.000000, 0.994241 -535, -0.110291, -0.000000, 0.000000, 0.993899 -536, -0.113414, -0.000000, 0.000000, 0.993548 -537, -0.116536, -0.000000, 0.000000, 0.993186 -538, -0.119657, -0.000000, 0.000000, 0.992815 -539, -0.122776, -0.000000, 0.000000, 0.992434 -540, -0.125894, -0.000000, 0.000000, 0.992044 -541, -0.129011, -0.000000, 0.000000, 0.991643 -542, -0.132127, -0.000000, 0.000000, 0.991233 -543, -0.135242, -0.000000, 0.000000, 0.990813 -544, -0.138355, -0.000000, 0.000000, 0.990383 -545, -0.141466, -0.000000, 0.000000, 0.989943 -546, -0.144577, -0.000000, 0.000000, 0.989494 -547, -0.147686, -0.000000, 0.000000, 0.989034 -548, -0.150793, -0.000000, 0.000000, 0.988565 -549, -0.153899, -0.000000, 0.000000, 0.988087 -550, -0.157003, -0.000000, 0.000000, 0.987598 -551, -0.160106, -0.000000, 0.000000, 0.987100 -552, -0.163208, -0.000000, 0.000000, 0.986592 -553, -0.166307, -0.000000, 0.000000, 0.986074 -554, -0.169405, -0.000000, 0.000000, 0.985546 -555, -0.172502, -0.000000, 0.000000, 0.985009 -556, -0.175596, -0.000000, 0.000000, 0.984462 -557, -0.178689, -0.000000, 0.000000, 0.983906 -558, -0.181781, -0.000000, 0.000000, 0.983339 -559, -0.184870, -0.000000, 0.000000, 0.982763 -560, -0.187958, -0.000000, 0.000000, 0.982177 -561, -0.191043, -0.000000, 0.000000, 0.981582 -562, -0.194127, -0.000000, 0.000000, 0.980976 -563, -0.197209, -0.000000, 0.000000, 0.980361 -564, -0.200289, -0.000000, 0.000000, 0.979737 -565, -0.203367, -0.000000, 0.000000, 0.979103 -566, -0.206443, -0.000000, 0.000000, 0.978459 -567, -0.209517, -0.000000, 0.000000, 0.977805 -568, -0.212589, -0.000000, 0.000000, 0.977142 -569, -0.215658, -0.000000, 0.000000, 0.976469 -570, -0.218726, -0.000000, 0.000000, 0.975786 -571, -0.221791, -0.000000, 0.000000, 0.975094 -572, -0.224855, -0.000000, 0.000000, 0.974392 -573, -0.227916, -0.000000, 0.000000, 0.973681 -574, -0.230975, -0.000000, 0.000000, 0.972960 -575, -0.234031, -0.000000, 0.000000, 0.972229 -576, -0.237085, -0.000000, 0.000000, 0.971489 -577, -0.240137, -0.000000, 0.000000, 0.970739 -578, -0.243187, -0.000000, 0.000000, 0.969980 -579, -0.246234, -0.000000, 0.000000, 0.969210 -580, -0.249278, -0.000000, 0.000000, 0.968432 -581, -0.252321, -0.000000, 0.000000, 0.967644 -582, -0.255360, -0.000000, 0.000000, 0.966846 -583, -0.258397, -0.000000, 0.000000, 0.966039 -584, -0.261432, -0.000000, 0.000000, 0.965222 -585, -0.264464, -0.000000, 0.000000, 0.964396 -586, -0.267494, -0.000000, 0.000000, 0.963560 -587, -0.270520, -0.000000, 0.000000, 0.962714 -588, -0.273544, -0.000000, 0.000000, 0.961859 -589, -0.276566, -0.000000, 0.000000, 0.960995 -590, -0.279585, -0.000000, 0.000000, 0.960121 -591, -0.282600, -0.000000, 0.000000, 0.959238 -592, -0.285614, -0.000000, 0.000000, 0.958345 -593, -0.288624, -0.000000, 0.000000, 0.957443 -594, -0.291631, -0.000000, 0.000000, 0.956531 -595, -0.294636, -0.000000, 0.000000, 0.955610 -596, -0.297638, -0.000000, 0.000000, 0.954679 -597, -0.300636, -0.000000, 0.000000, 0.953739 -598, -0.303632, -0.000000, 0.000000, 0.952789 -599, -0.306625, -0.000000, 0.000000, 0.951830 -600, -0.309615, -0.000000, 0.000000, 0.950862 -601, -0.312601, -0.000000, 0.000000, 0.949884 -602, -0.315585, -0.000000, 0.000000, 0.948897 -603, -0.318565, -0.000000, 0.000000, 0.947901 -604, -0.321543, -0.000000, 0.000000, 0.946895 -605, -0.324517, -0.000000, 0.000000, 0.945880 -606, -0.327488, -0.000000, 0.000000, 0.944855 -607, -0.330456, -0.000000, 0.000000, 0.943822 -608, -0.333420, -0.000000, 0.000000, 0.942778 -609, -0.336381, -0.000000, 0.000000, 0.941726 -610, -0.339339, -0.000000, 0.000000, 0.940664 -611, -0.342294, -0.000000, 0.000000, 0.939593 -612, -0.345245, -0.000000, 0.000000, 0.938513 -613, -0.348192, -0.000000, 0.000000, 0.937423 -614, -0.351137, -0.000000, 0.000000, 0.936324 -615, -0.354077, -0.000000, 0.000000, 0.935216 -616, -0.357015, -0.000000, 0.000000, 0.934099 -617, -0.359948, -0.000000, 0.000000, 0.932972 -618, -0.362879, -0.000000, 0.000000, 0.931836 -619, -0.365805, -0.000000, 0.000000, 0.930691 -620, -0.368728, -0.000000, 0.000000, 0.929537 -621, -0.371648, -0.000000, 0.000000, 0.928374 -622, -0.374563, -0.000000, 0.000000, 0.927201 -623, -0.377475, -0.000000, 0.000000, 0.926020 -624, -0.380384, -0.000000, 0.000000, 0.924829 -625, -0.383288, -0.000000, 0.000000, 0.923629 -626, -0.386189, -0.000000, 0.000000, 0.922420 -627, -0.389086, -0.000000, 0.000000, 0.921201 -628, -0.391979, -0.000000, 0.000000, 0.919974 -629, -0.394868, -0.000000, 0.000000, 0.918738 -630, -0.397753, -0.000000, 0.000000, 0.917492 -631, -0.400635, -0.000000, 0.000000, 0.916238 -632, -0.403512, -0.000000, 0.000000, 0.914974 -633, -0.406386, -0.000000, 0.000000, 0.913702 -634, -0.409255, -0.000000, 0.000000, 0.912420 -635, -0.412121, -0.000000, 0.000000, 0.911129 -636, -0.414982, -0.000000, 0.000000, 0.909830 -637, -0.417839, -0.000000, 0.000000, 0.908521 -638, -0.420692, -0.000000, 0.000000, 0.907203 -639, -0.423541, -0.000000, 0.000000, 0.905877 -640, -0.426386, -0.000000, 0.000000, 0.904541 -641, -0.429226, -0.000000, 0.000000, 0.903197 -642, -0.432063, -0.000000, 0.000000, 0.901844 -643, -0.434895, -0.000000, 0.000000, 0.900481 -644, -0.437722, -0.000000, 0.000000, 0.899110 -645, -0.440546, -0.000000, 0.000000, 0.897730 -646, -0.443365, -0.000000, 0.000000, 0.896341 -647, -0.446180, -0.000000, 0.000000, 0.894943 -648, -0.448990, -0.000000, 0.000000, 0.893537 -649, -0.451796, -0.000000, 0.000000, 0.892121 -650, -0.454597, -0.000000, 0.000000, 0.890697 -651, -0.457394, -0.000000, 0.000000, 0.889264 -652, -0.460186, -0.000000, 0.000000, 0.887822 -653, -0.462974, -0.000000, 0.000000, 0.886372 -654, -0.465757, -0.000000, 0.000000, 0.884912 -655, -0.468536, -0.000000, 0.000000, 0.883444 -656, -0.471310, -0.000000, 0.000000, 0.881968 -657, -0.474079, -0.000000, 0.000000, 0.880482 -658, -0.476844, -0.000000, 0.000000, 0.878988 -659, -0.479604, -0.000000, 0.000000, 0.877485 -660, -0.482359, -0.000000, 0.000000, 0.875973 -661, -0.485110, -0.000000, 0.000000, 0.874453 -662, -0.487856, -0.000000, 0.000000, 0.872924 -663, -0.490596, -0.000000, 0.000000, 0.871387 -664, -0.493332, -0.000000, 0.000000, 0.869841 -665, -0.496064, -0.000000, 0.000000, 0.868286 -666, -0.498790, -0.000000, 0.000000, 0.866723 -667, -0.501511, -0.000000, 0.000000, 0.865151 -668, -0.504228, -0.000000, 0.000000, 0.863571 -669, -0.506939, -0.000000, 0.000000, 0.861982 -670, -0.509645, -0.000000, 0.000000, 0.860385 -671, -0.512347, -0.000000, 0.000000, 0.858779 -672, -0.515043, -0.000000, 0.000000, 0.857164 -673, -0.517734, -0.000000, 0.000000, 0.855541 -674, -0.520420, -0.000000, 0.000000, 0.853910 -675, -0.523101, -0.000000, 0.000000, 0.852270 -676, -0.525777, -0.000000, 0.000000, 0.850622 -677, -0.528448, -0.000000, 0.000000, 0.848966 -678, -0.531113, -0.000000, 0.000000, 0.847301 -679, -0.533773, -0.000000, 0.000000, 0.845628 -680, -0.536428, -0.000000, 0.000000, 0.843946 -681, -0.539078, -0.000000, 0.000000, 0.842256 -682, -0.541722, -0.000000, 0.000000, 0.840558 -683, -0.544361, -0.000000, 0.000000, 0.838851 -684, -0.546994, -0.000000, 0.000000, 0.837136 -685, -0.549622, -0.000000, 0.000000, 0.835413 -686, -0.552245, -0.000000, 0.000000, 0.833682 -687, -0.554862, -0.000000, 0.000000, 0.831942 -688, -0.557474, -0.000000, 0.000000, 0.830194 -689, -0.560080, -0.000000, 0.000000, 0.828438 -690, -0.562681, -0.000000, 0.000000, 0.826674 -691, -0.565276, -0.000000, 0.000000, 0.824902 -692, -0.567866, -0.000000, 0.000000, 0.823121 -693, -0.570450, -0.000000, 0.000000, 0.821333 -694, -0.573028, -0.000000, 0.000000, 0.819536 -695, -0.575601, -0.000000, 0.000000, 0.817731 -696, -0.578168, -0.000000, 0.000000, 0.815918 -697, -0.580729, -0.000000, 0.000000, 0.814097 -698, -0.583285, -0.000000, 0.000000, 0.812268 -699, -0.585834, -0.000000, 0.000000, 0.810431 -700, -0.588378, -0.000000, 0.000000, 0.808586 -701, -0.590917, -0.000000, 0.000000, 0.806733 -702, -0.593449, -0.000000, 0.000000, 0.804872 -703, -0.595975, -0.000000, 0.000000, 0.803003 -704, -0.598496, -0.000000, 0.000000, 0.801126 -705, -0.601011, -0.000000, 0.000000, 0.799241 -706, -0.603519, -0.000000, 0.000000, 0.797348 -707, -0.606022, -0.000000, 0.000000, 0.795448 -708, -0.608519, -0.000000, 0.000000, 0.793539 -709, -0.611010, -0.000000, 0.000000, 0.791623 -710, -0.613495, -0.000000, 0.000000, 0.789699 -711, -0.615973, -0.000000, 0.000000, 0.787767 -712, -0.618446, -0.000000, 0.000000, 0.785827 -713, -0.620912, -0.000000, 0.000000, 0.783880 -714, -0.623373, -0.000000, 0.000000, 0.781925 -715, -0.625827, -0.000000, 0.000000, 0.779962 -716, -0.628275, -0.000000, 0.000000, 0.777991 -717, -0.630717, -0.000000, 0.000000, 0.776013 -718, -0.633153, -0.000000, 0.000000, 0.774027 -719, -0.635582, -0.000000, 0.000000, 0.772033 -720, -0.638005, -0.000000, 0.000000, 0.770032 -721, -0.640422, -0.000000, 0.000000, 0.768023 -722, -0.642832, -0.000000, 0.000000, 0.766007 -723, -0.645236, -0.000000, 0.000000, 0.763983 -724, -0.647634, -0.000000, 0.000000, 0.761952 -725, -0.650025, -0.000000, 0.000000, 0.759913 -726, -0.652410, -0.000000, 0.000000, 0.757866 -727, -0.654789, -0.000000, 0.000000, 0.755812 -728, -0.657161, -0.000000, 0.000000, 0.753750 -729, -0.659526, -0.000000, 0.000000, 0.751682 -730, -0.661885, -0.000000, 0.000000, 0.749605 -731, -0.664238, -0.000000, 0.000000, 0.747521 -732, -0.666584, -0.000000, 0.000000, 0.745430 -733, -0.668923, -0.000000, 0.000000, 0.743332 -734, -0.671256, -0.000000, 0.000000, 0.741226 -735, -0.673582, -0.000000, 0.000000, 0.739113 -736, -0.675901, -0.000000, 0.000000, 0.736992 -737, -0.678214, -0.000000, 0.000000, 0.734864 -738, -0.680520, -0.000000, 0.000000, 0.732729 -739, -0.682819, -0.000000, 0.000000, 0.730587 -740, -0.685112, -0.000000, 0.000000, 0.728438 -741, -0.687398, -0.000000, 0.000000, 0.726281 -742, -0.689677, -0.000000, 0.000000, 0.724117 -743, -0.691949, -0.000000, 0.000000, 0.721946 -744, -0.694214, -0.000000, 0.000000, 0.719768 -745, -0.696473, -0.000000, 0.000000, 0.717583 -746, -0.698725, -0.000000, 0.000000, 0.715391 -747, -0.700969, -0.000000, 0.000000, 0.713191 -748, -0.703207, -0.000000, 0.000000, 0.710985 -749, -0.705438, -0.000000, 0.000000, 0.708771 -750, -0.707662, -0.000000, 0.000000, 0.706551 -751, -0.709879, -0.000000, 0.000000, 0.704324 -752, -0.712089, -0.000000, 0.000000, 0.702089 -753, -0.714292, -0.000000, 0.000000, 0.699848 -754, -0.716488, -0.000000, 0.000000, 0.697600 -755, -0.718676, -0.000000, 0.000000, 0.695345 -756, -0.720858, -0.000000, 0.000000, 0.693083 -757, -0.723033, -0.000000, 0.000000, 0.690814 -758, -0.725200, -0.000000, 0.000000, 0.688538 -759, -0.727360, -0.000000, 0.000000, 0.686256 -760, -0.729513, -0.000000, 0.000000, 0.683967 -761, -0.731659, -0.000000, 0.000000, 0.681671 -762, -0.733798, -0.000000, 0.000000, 0.679368 -763, -0.735929, -0.000000, 0.000000, 0.677058 -764, -0.738053, -0.000000, 0.000000, 0.674742 -765, -0.740170, -0.000000, 0.000000, 0.672420 -766, -0.742280, -0.000000, 0.000000, 0.670090 -767, -0.744382, -0.000000, 0.000000, 0.667754 -768, -0.746477, -0.000000, 0.000000, 0.665412 -769, -0.748564, -0.000000, 0.000000, 0.663062 -770, -0.750644, -0.000000, 0.000000, 0.660707 -771, -0.752717, -0.000000, 0.000000, 0.658344 -772, -0.754782, -0.000000, 0.000000, 0.655976 -773, -0.756840, -0.000000, 0.000000, 0.653600 -774, -0.758890, -0.000000, 0.000000, 0.651219 -775, -0.760933, -0.000000, 0.000000, 0.648830 -776, -0.762968, -0.000000, 0.000000, 0.646436 -777, -0.764996, -0.000000, 0.000000, 0.644035 -778, -0.767016, -0.000000, 0.000000, 0.641628 -779, -0.769029, -0.000000, 0.000000, 0.639214 -780, -0.771034, -0.000000, 0.000000, 0.636794 -781, -0.773031, -0.000000, 0.000000, 0.634368 -782, -0.775021, -0.000000, 0.000000, 0.631935 -783, -0.777003, -0.000000, 0.000000, 0.629497 -784, -0.778978, -0.000000, 0.000000, 0.627052 -785, -0.780944, -0.000000, 0.000000, 0.624601 -786, -0.782903, -0.000000, 0.000000, 0.622143 -787, -0.784855, -0.000000, 0.000000, 0.619680 -788, -0.786798, -0.000000, 0.000000, 0.617210 -789, -0.788734, -0.000000, 0.000000, 0.614735 -790, -0.790662, -0.000000, 0.000000, 0.612253 -791, -0.792582, -0.000000, 0.000000, 0.609765 -792, -0.794494, -0.000000, 0.000000, 0.607271 -793, -0.796399, -0.000000, 0.000000, 0.604772 -794, -0.798296, -0.000000, 0.000000, 0.602266 -795, -0.800184, -0.000000, 0.000000, 0.599754 -796, -0.802065, -0.000000, 0.000000, 0.597236 -797, -0.803938, -0.000000, 0.000000, 0.594713 -798, -0.805803, -0.000000, 0.000000, 0.592183 -799, -0.807660, -0.000000, 0.000000, 0.589648 -800, -0.809509, -0.000000, 0.000000, 0.587107 -801, -0.811350, -0.000000, 0.000000, 0.584560 -802, -0.813183, -0.000000, 0.000000, 0.582008 -803, -0.815008, -0.000000, 0.000000, 0.579449 -804, -0.816825, -0.000000, 0.000000, 0.576885 -805, -0.818634, -0.000000, 0.000000, 0.574315 -806, -0.820435, -0.000000, 0.000000, 0.571740 -807, -0.822228, -0.000000, 0.000000, 0.569158 -808, -0.824012, -0.000000, 0.000000, 0.566572 -809, -0.825789, -0.000000, 0.000000, 0.563979 -810, -0.827557, -0.000000, 0.000000, 0.561381 -811, -0.829317, -0.000000, 0.000000, 0.558778 -812, -0.831069, -0.000000, 0.000000, 0.556169 -813, -0.832813, -0.000000, 0.000000, 0.553554 -814, -0.834549, -0.000000, 0.000000, 0.550934 -815, -0.836276, -0.000000, 0.000000, 0.548309 -816, -0.837995, -0.000000, 0.000000, 0.545678 -817, -0.839706, -0.000000, 0.000000, 0.543042 -818, -0.841408, -0.000000, 0.000000, 0.540400 -819, -0.843102, -0.000000, 0.000000, 0.537754 -820, -0.844788, -0.000000, 0.000000, 0.535101 -821, -0.846465, -0.000000, 0.000000, 0.532444 -822, -0.848134, -0.000000, 0.000000, 0.529781 -823, -0.849795, -0.000000, 0.000000, 0.527113 -824, -0.851447, -0.000000, 0.000000, 0.524440 -825, -0.853091, -0.000000, 0.000000, 0.521761 -826, -0.854727, -0.000000, 0.000000, 0.519078 -827, -0.856354, -0.000000, 0.000000, 0.516389 -828, -0.857973, -0.000000, 0.000000, 0.513696 -829, -0.859583, -0.000000, 0.000000, 0.510997 -830, -0.861184, -0.000000, 0.000000, 0.508293 -831, -0.862777, -0.000000, 0.000000, 0.505584 -832, -0.864362, -0.000000, 0.000000, 0.502870 -833, -0.865938, -0.000000, 0.000000, 0.500151 -834, -0.867506, -0.000000, 0.000000, 0.497427 -835, -0.869065, -0.000000, 0.000000, 0.494699 -836, -0.870615, -0.000000, 0.000000, 0.491965 -837, -0.872157, -0.000000, 0.000000, 0.489227 -838, -0.873690, -0.000000, 0.000000, 0.486483 -839, -0.875214, -0.000000, 0.000000, 0.483735 -840, -0.876730, -0.000000, 0.000000, 0.480982 -841, -0.878237, -0.000000, 0.000000, 0.478225 -842, -0.879736, -0.000000, 0.000000, 0.475462 -843, -0.881226, -0.000000, 0.000000, 0.472695 -844, -0.882707, -0.000000, 0.000000, 0.469924 -845, -0.884179, -0.000000, 0.000000, 0.467147 -846, -0.885643, -0.000000, 0.000000, 0.464366 -847, -0.887098, -0.000000, 0.000000, 0.461581 -848, -0.888544, -0.000000, 0.000000, 0.458791 -849, -0.889982, -0.000000, 0.000000, 0.455996 -850, -0.891410, -0.000000, 0.000000, 0.453197 -851, -0.892830, -0.000000, 0.000000, 0.450393 -852, -0.894241, -0.000000, 0.000000, 0.447585 -853, -0.895643, -0.000000, 0.000000, 0.444773 -854, -0.897037, -0.000000, 0.000000, 0.441956 -855, -0.898421, -0.000000, 0.000000, 0.439135 -856, -0.899797, -0.000000, 0.000000, 0.436309 -857, -0.901164, -0.000000, 0.000000, 0.433479 -858, -0.902521, -0.000000, 0.000000, 0.430645 -859, -0.903870, -0.000000, 0.000000, 0.427807 -860, -0.905210, -0.000000, 0.000000, 0.424964 -861, -0.906541, -0.000000, 0.000000, 0.422117 -862, -0.907863, -0.000000, 0.000000, 0.419266 -863, -0.909177, -0.000000, 0.000000, 0.416411 -864, -0.910481, -0.000000, 0.000000, 0.413552 -865, -0.911776, -0.000000, 0.000000, 0.410688 -866, -0.913062, -0.000000, 0.000000, 0.407821 -867, -0.914339, -0.000000, 0.000000, 0.404950 -868, -0.915607, -0.000000, 0.000000, 0.402074 -869, -0.916866, -0.000000, 0.000000, 0.399195 -870, -0.918116, -0.000000, 0.000000, 0.396311 -871, -0.919357, -0.000000, 0.000000, 0.393424 -872, -0.920589, -0.000000, 0.000000, 0.390533 -873, -0.921812, -0.000000, 0.000000, 0.387638 -874, -0.923025, -0.000000, 0.000000, 0.384739 -875, -0.924230, -0.000000, 0.000000, 0.381836 -876, -0.925425, -0.000000, 0.000000, 0.378930 -877, -0.926612, -0.000000, 0.000000, 0.376020 -878, -0.927789, -0.000000, 0.000000, 0.373106 -879, -0.928957, -0.000000, 0.000000, 0.370188 -880, -0.930115, -0.000000, 0.000000, 0.367267 -881, -0.931265, -0.000000, 0.000000, 0.364342 -882, -0.932405, -0.000000, 0.000000, 0.361414 -883, -0.933537, -0.000000, 0.000000, 0.358482 -884, -0.934659, -0.000000, 0.000000, 0.355547 -885, -0.935771, -0.000000, 0.000000, 0.352607 -886, -0.936875, -0.000000, 0.000000, 0.349665 -887, -0.937969, -0.000000, 0.000000, 0.346719 -888, -0.939054, -0.000000, 0.000000, 0.343770 -889, -0.940130, -0.000000, 0.000000, 0.340817 -890, -0.941196, -0.000000, 0.000000, 0.337861 -891, -0.942253, -0.000000, 0.000000, 0.334901 -892, -0.943301, -0.000000, 0.000000, 0.331938 -893, -0.944340, -0.000000, 0.000000, 0.328972 -894, -0.945369, -0.000000, 0.000000, 0.326003 -895, -0.946389, -0.000000, 0.000000, 0.323030 -896, -0.947399, -0.000000, 0.000000, 0.320055 -897, -0.948400, -0.000000, 0.000000, 0.317076 -898, -0.949392, -0.000000, 0.000000, 0.314094 -899, -0.950374, -0.000000, 0.000000, 0.311108 -900, -0.951347, -0.000000, 0.000000, 0.308120 -901, -0.952311, -0.000000, 0.000000, 0.305129 -902, -0.953265, -0.000000, 0.000000, 0.302135 -903, -0.954210, -0.000000, 0.000000, 0.299137 -904, -0.955145, -0.000000, 0.000000, 0.296137 -905, -0.956071, -0.000000, 0.000000, 0.293134 -906, -0.956988, -0.000000, 0.000000, 0.290128 -907, -0.957895, -0.000000, 0.000000, 0.287119 -908, -0.958792, -0.000000, 0.000000, 0.284107 -909, -0.959681, -0.000000, 0.000000, 0.281093 -910, -0.960559, -0.000000, 0.000000, 0.278076 -911, -0.961428, -0.000000, 0.000000, 0.275056 -912, -0.962288, -0.000000, 0.000000, 0.272033 -913, -0.963138, -0.000000, 0.000000, 0.269007 -914, -0.963979, -0.000000, 0.000000, 0.265979 -915, -0.964810, -0.000000, 0.000000, 0.262948 -916, -0.965631, -0.000000, 0.000000, 0.259915 -917, -0.966444, -0.000000, 0.000000, 0.256879 -918, -0.967246, -0.000000, 0.000000, 0.253841 -919, -0.968039, -0.000000, 0.000000, 0.250800 -920, -0.968822, -0.000000, 0.000000, 0.247756 -921, -0.969596, -0.000000, 0.000000, 0.244710 -922, -0.970360, -0.000000, 0.000000, 0.241662 -923, -0.971115, -0.000000, 0.000000, 0.238611 -924, -0.971860, -0.000000, 0.000000, 0.235558 -925, -0.972596, -0.000000, 0.000000, 0.232503 -926, -0.973322, -0.000000, 0.000000, 0.229445 -927, -0.974038, -0.000000, 0.000000, 0.226385 -928, -0.974744, -0.000000, 0.000000, 0.223323 -929, -0.975441, -0.000000, 0.000000, 0.220259 -930, -0.976129, -0.000000, 0.000000, 0.217192 -931, -0.976807, -0.000000, 0.000000, 0.214124 -932, -0.977475, -0.000000, 0.000000, 0.211053 -933, -0.978133, -0.000000, 0.000000, 0.207980 -934, -0.978782, -0.000000, 0.000000, 0.204905 -935, -0.979421, -0.000000, 0.000000, 0.201828 -936, -0.980050, -0.000000, 0.000000, 0.198749 -937, -0.980670, -0.000000, 0.000000, 0.195668 -938, -0.981280, -0.000000, 0.000000, 0.192585 -939, -0.981881, -0.000000, 0.000000, 0.189501 -940, -0.982471, -0.000000, 0.000000, 0.186414 -941, -0.983052, -0.000000, 0.000000, 0.183326 -942, -0.983624, -0.000000, 0.000000, 0.180235 -943, -0.984185, -0.000000, 0.000000, 0.177143 -944, -0.984737, -0.000000, 0.000000, 0.174049 -945, -0.985279, -0.000000, 0.000000, 0.170954 -946, -0.985811, -0.000000, 0.000000, 0.167857 -947, -0.986334, -0.000000, 0.000000, 0.164758 -948, -0.986847, -0.000000, 0.000000, 0.161657 -949, -0.987350, -0.000000, 0.000000, 0.158555 -950, -0.987844, -0.000000, 0.000000, 0.155451 -951, -0.988327, -0.000000, 0.000000, 0.152346 -952, -0.988801, -0.000000, 0.000000, 0.149240 -953, -0.989265, -0.000000, 0.000000, 0.146131 -954, -0.989720, -0.000000, 0.000000, 0.143022 -955, -0.990164, -0.000000, 0.000000, 0.139911 -956, -0.990599, -0.000000, 0.000000, 0.136798 -957, -0.991024, -0.000000, 0.000000, 0.133685 -958, -0.991439, -0.000000, 0.000000, 0.130569 -959, -0.991845, -0.000000, 0.000000, 0.127453 -960, -0.992240, -0.000000, 0.000000, 0.124335 -961, -0.992626, -0.000000, 0.000000, 0.121217 -962, -0.993002, -0.000000, 0.000000, 0.118097 -963, -0.993368, -0.000000, 0.000000, 0.114975 -964, -0.993725, -0.000000, 0.000000, 0.111853 -965, -0.994071, -0.000000, 0.000000, 0.108729 -966, -0.994408, -0.000000, 0.000000, 0.105605 -967, -0.994735, -0.000000, 0.000000, 0.102479 -968, -0.995052, -0.000000, 0.000000, 0.099353 -969, -0.995360, -0.000000, 0.000000, 0.096225 -970, -0.995657, -0.000000, 0.000000, 0.093097 -971, -0.995945, -0.000000, 0.000000, 0.089967 -972, -0.996223, -0.000000, 0.000000, 0.086837 -973, -0.996491, -0.000000, 0.000000, 0.083706 -974, -0.996749, -0.000000, 0.000000, 0.080574 -975, -0.996997, -0.000000, 0.000000, 0.077441 -976, -0.997235, -0.000000, 0.000000, 0.074307 -977, -0.997464, -0.000000, 0.000000, 0.071173 -978, -0.997683, -0.000000, 0.000000, 0.068038 -979, -0.997892, -0.000000, 0.000000, 0.064902 -980, -0.998091, -0.000000, 0.000000, 0.061766 -981, -0.998280, -0.000000, 0.000000, 0.058629 -982, -0.998459, -0.000000, 0.000000, 0.055491 -983, -0.998629, -0.000000, 0.000000, 0.052353 -984, -0.998788, -0.000000, 0.000000, 0.049215 -985, -0.998938, -0.000000, 0.000000, 0.046076 -986, -0.999078, -0.000000, 0.000000, 0.042936 -987, -0.999208, -0.000000, 0.000000, 0.039796 -988, -0.999328, -0.000000, 0.000000, 0.036656 -989, -0.999438, -0.000000, 0.000000, 0.033515 -990, -0.999539, -0.000000, 0.000000, 0.030374 -991, -0.999629, -0.000000, 0.000000, 0.027233 -992, -0.999710, -0.000000, 0.000000, 0.024091 -993, -0.999781, -0.000000, 0.000000, 0.020949 -994, -0.999841, -0.000000, 0.000000, 0.017807 -995, -0.999892, -0.000000, 0.000000, 0.014665 -996, -0.999934, -0.000000, 0.000000, 0.011523 -997, -0.999965, -0.000000, 0.000000, 0.008380 -998, -0.999986, -0.000000, 0.000000, 0.005238 -999, -0.999998, -0.000000, 0.000000, 0.002095 -1000, -0.999999, 0.000000, -0.000000, -0.001048 -1001, -0.999991, 0.000000, -0.000000, -0.004190 -1002, -0.999973, 0.000000, -0.000000, -0.007333 -1003, -0.999945, 0.000000, -0.000000, -0.010475 -1004, -0.999907, 0.000000, -0.000000, -0.013618 -1005, -0.999860, 0.000000, -0.000000, -0.016760 -1006, -0.999802, 0.000000, -0.000000, -0.019902 -1007, -0.999734, 0.000000, -0.000000, -0.023044 -1008, -0.999657, 0.000000, -0.000000, -0.026186 -1009, -0.999570, 0.000000, -0.000000, -0.029327 -1010, -0.999473, 0.000000, -0.000000, -0.032468 -1011, -0.999366, 0.000000, -0.000000, -0.035609 -1012, -0.999249, 0.000000, -0.000000, -0.038750 -1013, -0.999122, 0.000000, -0.000000, -0.041890 -1014, -0.998986, 0.000000, -0.000000, -0.045029 -1015, -0.998839, 0.000000, -0.000000, -0.048169 -1016, -0.998683, 0.000000, -0.000000, -0.051307 -1017, -0.998517, 0.000000, -0.000000, -0.054445 -1018, -0.998341, 0.000000, -0.000000, -0.057583 -1019, -0.998155, 0.000000, -0.000000, -0.060720 -1020, -0.997959, 0.000000, -0.000000, -0.063857 -1021, -0.997753, 0.000000, -0.000000, -0.066993 -1022, -0.997538, 0.000000, -0.000000, -0.070128 -1023, -0.997313, 0.000000, -0.000000, -0.073263 -1024, -0.997078, 0.000000, -0.000000, -0.076396 -1025, -0.996833, 0.000000, -0.000000, -0.079529 -1026, -0.996578, 0.000000, -0.000000, -0.082662 -1027, -0.996313, 0.000000, -0.000000, -0.085793 -1028, -0.996038, 0.000000, -0.000000, -0.088924 -1029, -0.995754, 0.000000, -0.000000, -0.092054 -1030, -0.995460, 0.000000, -0.000000, -0.095182 -1031, -0.995156, 0.000000, -0.000000, -0.098310 -1032, -0.994842, 0.000000, -0.000000, -0.101437 -1033, -0.994518, 0.000000, -0.000000, -0.104563 -1034, -0.994185, 0.000000, -0.000000, -0.107688 -1035, -0.993841, 0.000000, -0.000000, -0.110812 -1036, -0.993488, 0.000000, -0.000000, -0.113935 -1037, -0.993125, 0.000000, -0.000000, -0.117056 -1038, -0.992753, 0.000000, -0.000000, -0.120177 -1039, -0.992370, 0.000000, -0.000000, -0.123296 -1040, -0.991978, 0.000000, -0.000000, -0.126414 -1041, -0.991575, 0.000000, -0.000000, -0.129531 -1042, -0.991163, 0.000000, -0.000000, -0.132646 -1043, -0.990742, 0.000000, -0.000000, -0.135761 -1044, -0.990310, 0.000000, -0.000000, -0.138873 -1045, -0.989869, 0.000000, -0.000000, -0.141985 -1046, -0.989418, 0.000000, -0.000000, -0.145095 -1047, -0.988957, 0.000000, -0.000000, -0.148204 -1048, -0.988486, 0.000000, -0.000000, -0.151311 -1049, -0.988006, 0.000000, -0.000000, -0.154417 -1050, -0.987516, 0.000000, -0.000000, -0.157521 -1051, -0.987016, 0.000000, -0.000000, -0.160623 -1052, -0.986506, 0.000000, -0.000000, -0.163724 -1053, -0.985987, 0.000000, -0.000000, -0.166824 -1054, -0.985458, 0.000000, -0.000000, -0.169922 -1055, -0.984919, 0.000000, -0.000000, -0.173018 -1056, -0.984370, 0.000000, -0.000000, -0.176112 -1057, -0.983812, 0.000000, -0.000000, -0.179205 -1058, -0.983244, 0.000000, -0.000000, -0.182296 -1059, -0.982666, 0.000000, -0.000000, -0.185385 -1060, -0.982079, 0.000000, -0.000000, -0.188472 -1061, -0.981481, 0.000000, -0.000000, -0.191557 -1062, -0.980875, 0.000000, -0.000000, -0.194641 -1063, -0.980258, 0.000000, -0.000000, -0.197722 -1064, -0.979632, 0.000000, -0.000000, -0.200802 -1065, -0.978996, 0.000000, -0.000000, -0.203880 -1066, -0.978350, 0.000000, -0.000000, -0.206955 -1067, -0.977695, 0.000000, -0.000000, -0.210029 -1068, -0.977030, 0.000000, -0.000000, -0.213100 -1069, -0.976356, 0.000000, -0.000000, -0.216170 -1070, -0.975672, 0.000000, -0.000000, -0.219237 -1071, -0.974978, 0.000000, -0.000000, -0.222302 -1072, -0.974274, 0.000000, -0.000000, -0.225365 -1073, -0.973561, 0.000000, -0.000000, -0.228426 -1074, -0.972839, 0.000000, -0.000000, -0.231484 -1075, -0.972106, 0.000000, -0.000000, -0.234540 -1076, -0.971365, 0.000000, -0.000000, -0.237594 -1077, -0.970613, 0.000000, -0.000000, -0.240646 -1078, -0.969852, 0.000000, -0.000000, -0.243695 -1079, -0.969081, 0.000000, -0.000000, -0.246741 -1080, -0.968301, 0.000000, -0.000000, -0.249786 -1081, -0.967511, 0.000000, -0.000000, -0.252827 -1082, -0.966712, 0.000000, -0.000000, -0.255867 -1083, -0.965903, 0.000000, -0.000000, -0.258903 -1084, -0.965085, 0.000000, -0.000000, -0.261938 -1085, -0.964257, 0.000000, -0.000000, -0.264969 -1086, -0.963419, 0.000000, -0.000000, -0.267998 -1087, -0.962572, 0.000000, -0.000000, -0.271025 -1088, -0.961716, 0.000000, -0.000000, -0.274048 -1089, -0.960850, 0.000000, -0.000000, -0.277069 -1090, -0.959975, 0.000000, -0.000000, -0.280087 -1091, -0.959090, 0.000000, -0.000000, -0.283103 -1092, -0.958195, 0.000000, -0.000000, -0.286116 -1093, -0.957291, 0.000000, -0.000000, -0.289125 -1094, -0.956378, 0.000000, -0.000000, -0.292132 -1095, -0.955455, 0.000000, -0.000000, -0.295136 -1096, -0.954523, 0.000000, -0.000000, -0.298138 -1097, -0.953581, 0.000000, -0.000000, -0.301136 -1098, -0.952630, 0.000000, -0.000000, -0.304131 -1099, -0.951670, 0.000000, -0.000000, -0.307123 -1100, -0.950700, 0.000000, -0.000000, -0.310113 -1101, -0.949721, 0.000000, -0.000000, -0.313099 -1102, -0.948732, 0.000000, -0.000000, -0.316082 -1103, -0.947734, 0.000000, -0.000000, -0.319062 -1104, -0.946727, 0.000000, -0.000000, -0.322039 -1105, -0.945710, 0.000000, -0.000000, -0.325012 -1106, -0.944684, 0.000000, -0.000000, -0.327983 -1107, -0.943648, 0.000000, -0.000000, -0.330950 -1108, -0.942604, 0.000000, -0.000000, -0.333914 -1109, -0.941550, 0.000000, -0.000000, -0.336874 -1110, -0.940486, 0.000000, -0.000000, -0.339832 -1111, -0.939414, 0.000000, -0.000000, -0.342786 -1112, -0.938332, 0.000000, -0.000000, -0.345736 -1113, -0.937241, 0.000000, -0.000000, -0.348683 -1114, -0.936140, 0.000000, -0.000000, -0.351627 -1115, -0.935031, 0.000000, -0.000000, -0.354567 -1116, -0.933912, 0.000000, -0.000000, -0.357504 -1117, -0.932784, 0.000000, -0.000000, -0.360437 -1118, -0.931646, 0.000000, -0.000000, -0.363367 -1119, -0.930500, 0.000000, -0.000000, -0.366293 -1120, -0.929344, 0.000000, -0.000000, -0.369215 -1121, -0.928179, 0.000000, -0.000000, -0.372134 -1122, -0.927005, 0.000000, -0.000000, -0.375049 -1123, -0.925822, 0.000000, -0.000000, -0.377960 -1124, -0.924629, 0.000000, -0.000000, -0.380868 -1125, -0.923428, 0.000000, -0.000000, -0.383772 -1126, -0.922217, 0.000000, -0.000000, -0.386672 -1127, -0.920998, 0.000000, -0.000000, -0.389568 -1128, -0.919769, 0.000000, -0.000000, -0.392461 -1129, -0.918531, 0.000000, -0.000000, -0.395349 -1130, -0.917284, 0.000000, -0.000000, -0.398234 -1131, -0.916028, 0.000000, -0.000000, -0.401115 -1132, -0.914763, 0.000000, -0.000000, -0.403991 -1133, -0.913489, 0.000000, -0.000000, -0.406864 -1134, -0.912206, 0.000000, -0.000000, -0.409733 -1135, -0.910913, 0.000000, -0.000000, -0.412598 -1136, -0.909612, 0.000000, -0.000000, -0.415458 -1137, -0.908302, 0.000000, -0.000000, -0.418315 -1138, -0.906983, 0.000000, -0.000000, -0.421167 -1139, -0.905655, 0.000000, -0.000000, -0.424015 -1140, -0.904318, 0.000000, -0.000000, -0.426860 -1141, -0.902972, 0.000000, -0.000000, -0.429699 -1142, -0.901617, 0.000000, -0.000000, -0.432535 -1143, -0.900253, 0.000000, -0.000000, -0.435366 -1144, -0.898881, 0.000000, -0.000000, -0.438193 -1145, -0.897499, 0.000000, -0.000000, -0.441016 -1146, -0.896109, 0.000000, -0.000000, -0.443834 -1147, -0.894710, 0.000000, -0.000000, -0.446648 -1148, -0.893302, 0.000000, -0.000000, -0.449458 -1149, -0.891885, 0.000000, -0.000000, -0.452263 -1150, -0.890459, 0.000000, -0.000000, -0.455064 -1151, -0.889024, 0.000000, -0.000000, -0.457860 -1152, -0.887581, 0.000000, -0.000000, -0.460651 -1153, -0.886129, 0.000000, -0.000000, -0.463438 -1154, -0.884668, 0.000000, -0.000000, -0.466221 -1155, -0.883199, 0.000000, -0.000000, -0.468999 -1156, -0.881721, 0.000000, -0.000000, -0.471772 -1157, -0.880234, 0.000000, -0.000000, -0.474541 -1158, -0.878738, 0.000000, -0.000000, -0.477305 -1159, -0.877234, 0.000000, -0.000000, -0.480064 -1160, -0.875721, 0.000000, -0.000000, -0.482818 -1161, -0.874199, 0.000000, -0.000000, -0.485568 -1162, -0.872669, 0.000000, -0.000000, -0.488313 -1163, -0.871130, 0.000000, -0.000000, -0.491053 -1164, -0.869582, 0.000000, -0.000000, -0.493788 -1165, -0.868026, 0.000000, -0.000000, -0.496518 -1166, -0.866462, 0.000000, -0.000000, -0.499244 -1167, -0.864888, 0.000000, -0.000000, -0.501964 -1168, -0.863307, 0.000000, -0.000000, -0.504680 -1169, -0.861716, 0.000000, -0.000000, -0.507390 -1170, -0.860117, 0.000000, -0.000000, -0.510096 -1171, -0.858510, 0.000000, -0.000000, -0.512797 -1172, -0.856894, 0.000000, -0.000000, -0.515492 -1173, -0.855270, 0.000000, -0.000000, -0.518182 -1174, -0.853638, 0.000000, -0.000000, -0.520868 -1175, -0.851996, 0.000000, -0.000000, -0.523548 -1176, -0.850347, 0.000000, -0.000000, -0.526223 -1177, -0.848689, 0.000000, -0.000000, -0.528892 -1178, -0.847023, 0.000000, -0.000000, -0.531557 -1179, -0.845348, 0.000000, -0.000000, -0.534216 -1180, -0.843665, 0.000000, -0.000000, -0.536870 -1181, -0.841974, 0.000000, -0.000000, -0.539519 -1182, -0.840274, 0.000000, -0.000000, -0.542162 -1183, -0.838566, 0.000000, -0.000000, -0.544800 -1184, -0.836850, 0.000000, -0.000000, -0.547433 -1185, -0.835125, 0.000000, -0.000000, -0.550060 -1186, -0.833392, 0.000000, -0.000000, -0.552682 -1187, -0.831651, 0.000000, -0.000000, -0.555298 -1188, -0.829902, 0.000000, -0.000000, -0.557909 -1189, -0.828145, 0.000000, -0.000000, -0.560514 -1190, -0.826379, 0.000000, -0.000000, -0.563114 -1191, -0.824606, 0.000000, -0.000000, -0.565708 -1192, -0.822824, 0.000000, -0.000000, -0.568297 -1193, -0.821034, 0.000000, -0.000000, -0.570880 -1194, -0.819235, 0.000000, -0.000000, -0.573457 -1195, -0.817429, 0.000000, -0.000000, -0.576029 -1196, -0.815615, 0.000000, -0.000000, -0.578595 -1197, -0.813793, 0.000000, -0.000000, -0.581155 -1198, -0.811962, 0.000000, -0.000000, -0.583710 -1199, -0.810124, 0.000000, -0.000000, -0.586259 -1200, -0.808277, 0.000000, -0.000000, -0.588802 -1201, -0.806423, 0.000000, -0.000000, -0.591339 -1202, -0.804561, 0.000000, -0.000000, -0.593870 -1203, -0.802690, 0.000000, -0.000000, -0.596396 -1204, -0.800812, 0.000000, -0.000000, -0.598915 -1205, -0.798926, 0.000000, -0.000000, -0.601429 -1206, -0.797032, 0.000000, -0.000000, -0.603937 -1207, -0.795130, 0.000000, -0.000000, -0.606439 -1208, -0.793220, 0.000000, -0.000000, -0.608935 -1209, -0.791303, 0.000000, -0.000000, -0.611424 -1210, -0.789377, 0.000000, -0.000000, -0.613908 -1211, -0.787444, 0.000000, -0.000000, -0.616386 -1212, -0.785503, 0.000000, -0.000000, -0.618857 -1213, -0.783555, 0.000000, -0.000000, -0.621323 -1214, -0.781598, 0.000000, -0.000000, -0.623782 -1215, -0.779634, 0.000000, -0.000000, -0.626235 -1216, -0.777662, 0.000000, -0.000000, -0.628682 -1217, -0.775683, 0.000000, -0.000000, -0.631123 -1218, -0.773695, 0.000000, -0.000000, -0.633558 -1219, -0.771700, 0.000000, -0.000000, -0.635986 -1220, -0.769698, 0.000000, -0.000000, -0.638408 -1221, -0.767688, 0.000000, -0.000000, -0.640824 -1222, -0.765670, 0.000000, -0.000000, -0.643233 -1223, -0.763645, 0.000000, -0.000000, -0.645636 -1224, -0.761612, 0.000000, -0.000000, -0.648033 -1225, -0.759572, 0.000000, -0.000000, -0.650423 -1226, -0.757524, 0.000000, -0.000000, -0.652807 -1227, -0.755469, 0.000000, -0.000000, -0.655185 -1228, -0.753406, 0.000000, -0.000000, -0.657555 -1229, -0.751336, 0.000000, -0.000000, -0.659920 -1230, -0.749258, 0.000000, -0.000000, -0.662278 -1231, -0.747173, 0.000000, -0.000000, -0.664629 -1232, -0.745081, 0.000000, -0.000000, -0.666974 -1233, -0.742981, 0.000000, -0.000000, -0.669312 -1234, -0.740874, 0.000000, -0.000000, -0.671644 -1235, -0.738760, 0.000000, -0.000000, -0.673969 -1236, -0.736638, 0.000000, -0.000000, -0.676287 -1237, -0.734509, 0.000000, -0.000000, -0.678599 -1238, -0.732373, 0.000000, -0.000000, -0.680904 -1239, -0.730229, 0.000000, -0.000000, -0.683202 -1240, -0.728079, 0.000000, -0.000000, -0.685493 -1241, -0.725921, 0.000000, -0.000000, -0.687778 -1242, -0.723756, 0.000000, -0.000000, -0.690056 -1243, -0.721584, 0.000000, -0.000000, -0.692327 -1244, -0.719404, 0.000000, -0.000000, -0.694591 -1245, -0.717218, 0.000000, -0.000000, -0.696849 -1246, -0.715025, 0.000000, -0.000000, -0.699099 -1247, -0.712824, 0.000000, -0.000000, -0.701343 -1248, -0.710616, 0.000000, -0.000000, -0.703580 -1249, -0.708402, 0.000000, -0.000000, -0.705809 -1250, -0.706180, 0.000000, -0.000000, -0.708032 -1251, -0.703952, 0.000000, -0.000000, -0.710248 -1252, -0.701716, 0.000000, -0.000000, -0.712457 -1253, -0.699474, 0.000000, -0.000000, -0.714658 -1254, -0.697224, 0.000000, -0.000000, -0.716853 -1255, -0.694968, 0.000000, -0.000000, -0.719041 -1256, -0.692705, 0.000000, -0.000000, -0.721221 -1257, -0.690435, 0.000000, -0.000000, -0.723394 -1258, -0.688158, 0.000000, -0.000000, -0.725561 -1259, -0.685875, 0.000000, -0.000000, -0.727720 -1260, -0.683584, 0.000000, -0.000000, -0.729872 -1261, -0.681287, 0.000000, -0.000000, -0.732016 -1262, -0.678983, 0.000000, -0.000000, -0.734154 -1263, -0.676673, 0.000000, -0.000000, -0.736284 -1264, -0.674356, 0.000000, -0.000000, -0.738407 -1265, -0.672032, 0.000000, -0.000000, -0.740522 -1266, -0.669701, 0.000000, -0.000000, -0.742631 -1267, -0.667364, 0.000000, -0.000000, -0.744732 -1268, -0.665020, 0.000000, -0.000000, -0.746825 -1269, -0.662670, 0.000000, -0.000000, -0.748911 -1270, -0.660313, 0.000000, -0.000000, -0.750990 -1271, -0.657950, 0.000000, -0.000000, -0.753062 -1272, -0.655580, 0.000000, -0.000000, -0.755126 -1273, -0.653204, 0.000000, -0.000000, -0.757182 -1274, -0.650821, 0.000000, -0.000000, -0.759231 -1275, -0.648432, 0.000000, -0.000000, -0.761273 -1276, -0.646036, 0.000000, -0.000000, -0.763307 -1277, -0.643634, 0.000000, -0.000000, -0.765333 -1278, -0.641226, 0.000000, -0.000000, -0.767352 -1279, -0.638811, 0.000000, -0.000000, -0.769363 -1280, -0.636390, 0.000000, -0.000000, -0.771367 -1281, -0.633963, 0.000000, -0.000000, -0.773363 -1282, -0.631529, 0.000000, -0.000000, -0.775352 -1283, -0.629090, 0.000000, -0.000000, -0.777333 -1284, -0.626644, 0.000000, -0.000000, -0.779306 -1285, -0.624192, 0.000000, -0.000000, -0.781271 -1286, -0.621733, 0.000000, -0.000000, -0.783229 -1287, -0.619269, 0.000000, -0.000000, -0.785179 -1288, -0.616798, 0.000000, -0.000000, -0.787121 -1289, -0.614321, 0.000000, -0.000000, -0.789056 -1290, -0.611839, 0.000000, -0.000000, -0.790983 -1291, -0.609350, 0.000000, -0.000000, -0.792901 -1292, -0.606855, 0.000000, -0.000000, -0.794812 -1293, -0.604354, 0.000000, -0.000000, -0.796716 -1294, -0.601848, 0.000000, -0.000000, -0.798611 -1295, -0.599335, 0.000000, -0.000000, -0.800498 -1296, -0.596816, 0.000000, -0.000000, -0.802378 -1297, -0.594292, 0.000000, -0.000000, -0.804250 -1298, -0.591761, 0.000000, -0.000000, -0.806113 -1299, -0.589225, 0.000000, -0.000000, -0.807969 -1300, -0.586683, 0.000000, -0.000000, -0.809817 -1301, -0.584135, 0.000000, -0.000000, -0.811656 -1302, -0.581581, 0.000000, -0.000000, -0.813488 -1303, -0.579022, 0.000000, -0.000000, -0.815312 -1304, -0.576457, 0.000000, -0.000000, -0.817127 -1305, -0.573886, 0.000000, -0.000000, -0.818935 -1306, -0.571310, 0.000000, -0.000000, -0.820734 -1307, -0.568728, 0.000000, -0.000000, -0.822526 -1308, -0.566140, 0.000000, -0.000000, -0.824309 -1309, -0.563547, 0.000000, -0.000000, -0.826084 -1310, -0.560948, 0.000000, -0.000000, -0.827851 -1311, -0.558343, 0.000000, -0.000000, -0.829610 -1312, -0.555734, 0.000000, -0.000000, -0.831360 -1313, -0.553118, 0.000000, -0.000000, -0.833103 -1314, -0.550497, 0.000000, -0.000000, -0.834837 -1315, -0.547871, 0.000000, -0.000000, -0.836563 -1316, -0.545239, 0.000000, -0.000000, -0.838280 -1317, -0.542602, 0.000000, -0.000000, -0.839990 -1318, -0.539960, 0.000000, -0.000000, -0.841691 -1319, -0.537312, 0.000000, -0.000000, -0.843384 -1320, -0.534659, 0.000000, -0.000000, -0.845068 -1321, -0.532000, 0.000000, -0.000000, -0.846744 -1322, -0.529337, 0.000000, -0.000000, -0.848412 -1323, -0.526668, 0.000000, -0.000000, -0.850071 -1324, -0.523994, 0.000000, -0.000000, -0.851722 -1325, -0.521315, 0.000000, -0.000000, -0.853365 -1326, -0.518630, 0.000000, -0.000000, -0.854999 -1327, -0.515941, 0.000000, -0.000000, -0.856624 -1328, -0.513246, 0.000000, -0.000000, -0.858241 -1329, -0.510546, 0.000000, -0.000000, -0.859850 -1330, -0.507842, 0.000000, -0.000000, -0.861450 -1331, -0.505132, 0.000000, -0.000000, -0.863042 -1332, -0.502417, 0.000000, -0.000000, -0.864625 -1333, -0.499698, 0.000000, -0.000000, -0.866200 -1334, -0.496973, 0.000000, -0.000000, -0.867766 -1335, -0.494243, 0.000000, -0.000000, -0.869324 -1336, -0.491509, 0.000000, -0.000000, -0.870872 -1337, -0.488770, 0.000000, -0.000000, -0.872413 -1338, -0.486026, 0.000000, -0.000000, -0.873945 -1339, -0.483277, 0.000000, -0.000000, -0.875468 -1340, -0.480523, 0.000000, -0.000000, -0.876982 -1341, -0.477765, 0.000000, -0.000000, -0.878488 -1342, -0.475002, 0.000000, -0.000000, -0.879985 -1343, -0.472234, 0.000000, -0.000000, -0.881473 -1344, -0.469461, 0.000000, -0.000000, -0.882953 -1345, -0.466684, 0.000000, -0.000000, -0.884424 -1346, -0.463902, 0.000000, -0.000000, -0.885886 -1347, -0.461116, 0.000000, -0.000000, -0.887340 -1348, -0.458325, 0.000000, -0.000000, -0.888785 -1349, -0.455530, 0.000000, -0.000000, -0.890220 -1350, -0.452730, 0.000000, -0.000000, -0.891648 -1351, -0.449926, 0.000000, -0.000000, -0.893066 -1352, -0.447117, 0.000000, -0.000000, -0.894476 -1353, -0.444304, 0.000000, -0.000000, -0.895876 -1354, -0.441486, 0.000000, -0.000000, -0.897268 -1355, -0.438664, 0.000000, -0.000000, -0.898651 -1356, -0.435838, 0.000000, -0.000000, -0.900025 -1357, -0.433007, 0.000000, -0.000000, -0.901390 -1358, -0.430172, 0.000000, -0.000000, -0.902747 -1359, -0.427333, 0.000000, -0.000000, -0.904094 -1360, -0.424490, 0.000000, -0.000000, -0.905433 -1361, -0.421642, 0.000000, -0.000000, -0.906762 -1362, -0.418791, 0.000000, -0.000000, -0.908083 -1363, -0.415935, 0.000000, -0.000000, -0.909394 -1364, -0.413075, 0.000000, -0.000000, -0.910697 -1365, -0.410211, 0.000000, -0.000000, -0.911991 -1366, -0.407343, 0.000000, -0.000000, -0.913275 -1367, -0.404471, 0.000000, -0.000000, -0.914551 -1368, -0.401594, 0.000000, -0.000000, -0.915818 -1369, -0.398714, 0.000000, -0.000000, -0.917075 -1370, -0.395830, 0.000000, -0.000000, -0.918324 -1371, -0.392942, 0.000000, -0.000000, -0.919563 -1372, -0.390051, 0.000000, -0.000000, -0.920793 -1373, -0.387155, 0.000000, -0.000000, -0.922015 -1374, -0.384256, 0.000000, -0.000000, -0.923227 -1375, -0.381352, 0.000000, -0.000000, -0.924430 -1376, -0.378445, 0.000000, -0.000000, -0.925624 -1377, -0.375535, 0.000000, -0.000000, -0.926808 -1378, -0.372620, 0.000000, -0.000000, -0.927984 -1379, -0.369702, 0.000000, -0.000000, -0.929150 -1380, -0.366780, 0.000000, -0.000000, -0.930308 -1381, -0.363855, 0.000000, -0.000000, -0.931456 -1382, -0.360926, 0.000000, -0.000000, -0.932595 -1383, -0.357993, 0.000000, -0.000000, -0.933724 -1384, -0.355057, 0.000000, -0.000000, -0.934845 -1385, -0.352117, 0.000000, -0.000000, -0.935956 -1386, -0.349174, 0.000000, -0.000000, -0.937058 -1387, -0.346228, 0.000000, -0.000000, -0.938151 -1388, -0.343278, 0.000000, -0.000000, -0.939234 -1389, -0.340324, 0.000000, -0.000000, -0.940308 -1390, -0.337368, 0.000000, -0.000000, -0.941373 -1391, -0.334407, 0.000000, -0.000000, -0.942429 -1392, -0.331444, 0.000000, -0.000000, -0.943475 -1393, -0.328478, 0.000000, -0.000000, -0.944512 -1394, -0.325508, 0.000000, -0.000000, -0.945539 -1395, -0.322535, 0.000000, -0.000000, -0.946558 -1396, -0.319558, 0.000000, -0.000000, -0.947567 -1397, -0.316579, 0.000000, -0.000000, -0.948566 -1398, -0.313596, 0.000000, -0.000000, -0.949556 -1399, -0.310611, 0.000000, -0.000000, -0.950537 -1400, -0.307622, 0.000000, -0.000000, -0.951509 -1401, -0.304630, 0.000000, -0.000000, -0.952471 -1402, -0.301635, 0.000000, -0.000000, -0.953423 -1403, -0.298638, 0.000000, -0.000000, -0.954367 -1404, -0.295637, 0.000000, -0.000000, -0.955300 -1405, -0.292633, 0.000000, -0.000000, -0.956225 -1406, -0.289627, 0.000000, -0.000000, -0.957140 -1407, -0.286617, 0.000000, -0.000000, -0.958045 -1408, -0.283605, 0.000000, -0.000000, -0.958941 -1409, -0.280590, 0.000000, -0.000000, -0.959828 -1410, -0.277572, 0.000000, -0.000000, -0.960705 -1411, -0.274552, 0.000000, -0.000000, -0.961572 -1412, -0.271529, 0.000000, -0.000000, -0.962430 -1413, -0.268503, 0.000000, -0.000000, -0.963279 -1414, -0.265474, 0.000000, -0.000000, -0.964118 -1415, -0.262443, 0.000000, -0.000000, -0.964947 -1416, -0.259409, 0.000000, -0.000000, -0.965767 -1417, -0.256373, 0.000000, -0.000000, -0.966578 -1418, -0.253334, 0.000000, -0.000000, -0.967379 -1419, -0.250293, 0.000000, -0.000000, -0.968170 -1420, -0.247249, 0.000000, -0.000000, -0.968952 -1421, -0.244203, 0.000000, -0.000000, -0.969724 -1422, -0.241154, 0.000000, -0.000000, -0.970487 -1423, -0.238103, 0.000000, -0.000000, -0.971240 -1424, -0.235049, 0.000000, -0.000000, -0.971983 -1425, -0.231994, 0.000000, -0.000000, -0.972717 -1426, -0.228936, 0.000000, -0.000000, -0.973442 -1427, -0.225875, 0.000000, -0.000000, -0.974156 -1428, -0.222813, 0.000000, -0.000000, -0.974861 -1429, -0.219748, 0.000000, -0.000000, -0.975557 -1430, -0.216681, 0.000000, -0.000000, -0.976242 -1431, -0.213612, 0.000000, -0.000000, -0.976919 -1432, -0.210541, 0.000000, -0.000000, -0.977585 -1433, -0.207468, 0.000000, -0.000000, -0.978242 -1434, -0.204392, 0.000000, -0.000000, -0.978889 -1435, -0.201315, 0.000000, -0.000000, -0.979527 -1436, -0.198236, 0.000000, -0.000000, -0.980154 -1437, -0.195155, 0.000000, -0.000000, -0.980773 -1438, -0.192071, 0.000000, -0.000000, -0.981381 -1439, -0.188986, 0.000000, -0.000000, -0.981980 -1440, -0.185899, 0.000000, -0.000000, -0.982569 -1441, -0.182811, 0.000000, -0.000000, -0.983148 -1442, -0.179720, 0.000000, -0.000000, -0.983718 -1443, -0.176628, 0.000000, -0.000000, -0.984278 -1444, -0.173534, 0.000000, -0.000000, -0.984828 -1445, -0.170438, 0.000000, -0.000000, -0.985368 -1446, -0.167340, 0.000000, -0.000000, -0.985899 -1447, -0.164241, 0.000000, -0.000000, -0.986420 -1448, -0.161140, 0.000000, -0.000000, -0.986932 -1449, -0.158038, 0.000000, -0.000000, -0.987433 -1450, -0.154934, 0.000000, -0.000000, -0.987925 -1451, -0.151829, 0.000000, -0.000000, -0.988407 -1452, -0.148722, 0.000000, -0.000000, -0.988879 -1453, -0.145613, 0.000000, -0.000000, -0.989342 -1454, -0.142503, 0.000000, -0.000000, -0.989794 -1455, -0.139392, 0.000000, -0.000000, -0.990237 -1456, -0.136279, 0.000000, -0.000000, -0.990670 -1457, -0.133165, 0.000000, -0.000000, -0.991094 -1458, -0.130050, 0.000000, -0.000000, -0.991507 -1459, -0.126934, 0.000000, -0.000000, -0.991911 -1460, -0.123816, 0.000000, -0.000000, -0.992305 -1461, -0.120697, 0.000000, -0.000000, -0.992689 -1462, -0.117576, 0.000000, -0.000000, -0.993064 -1463, -0.114455, 0.000000, -0.000000, -0.993428 -1464, -0.111332, 0.000000, -0.000000, -0.993783 -1465, -0.108209, 0.000000, -0.000000, -0.994128 -1466, -0.105084, 0.000000, -0.000000, -0.994463 -1467, -0.101958, 0.000000, -0.000000, -0.994789 -1468, -0.098832, 0.000000, -0.000000, -0.995104 -1469, -0.095704, 0.000000, -0.000000, -0.995410 -1470, -0.092575, 0.000000, -0.000000, -0.995706 -1471, -0.089446, 0.000000, -0.000000, -0.995992 -1472, -0.086315, 0.000000, -0.000000, -0.996268 -1473, -0.083184, 0.000000, -0.000000, -0.996534 -1474, -0.080052, 0.000000, -0.000000, -0.996791 -1475, -0.076919, 0.000000, -0.000000, -0.997037 -1476, -0.073785, 0.000000, -0.000000, -0.997274 -1477, -0.070650, 0.000000, -0.000000, -0.997501 -1478, -0.067515, 0.000000, -0.000000, -0.997718 -1479, -0.064380, 0.000000, -0.000000, -0.997925 -1480, -0.061243, 0.000000, -0.000000, -0.998123 -1481, -0.058106, 0.000000, -0.000000, -0.998310 -1482, -0.054968, 0.000000, -0.000000, -0.998488 -1483, -0.051830, 0.000000, -0.000000, -0.998656 -1484, -0.048692, 0.000000, -0.000000, -0.998814 -1485, -0.045553, 0.000000, -0.000000, -0.998962 -1486, -0.042413, 0.000000, -0.000000, -0.999100 -1487, -0.039273, 0.000000, -0.000000, -0.999229 -1488, -0.036132, 0.000000, -0.000000, -0.999347 -1489, -0.032992, 0.000000, -0.000000, -0.999456 -1490, -0.029851, 0.000000, -0.000000, -0.999554 -1491, -0.026709, 0.000000, -0.000000, -0.999643 -1492, -0.023568, 0.000000, -0.000000, -0.999722 -1493, -0.020426, 0.000000, -0.000000, -0.999791 -1494, -0.017284, 0.000000, -0.000000, -0.999851 -1495, -0.014141, 0.000000, -0.000000, -0.999900 -1496, -0.010999, 0.000000, -0.000000, -0.999940 -1497, -0.007857, 0.000000, -0.000000, -0.999969 -1498, -0.004714, 0.000000, -0.000000, -0.999989 -1499, -0.001571, 0.000000, -0.000000, -0.999999 -1500, 0.001571, 0.000000, 0.000000, -0.999999 -1501, 0.004714, 0.000000, 0.000000, -0.999989 -1502, 0.007857, 0.000000, 0.000000, -0.999969 -1503, 0.010999, 0.000000, 0.000000, -0.999940 -1504, 0.014141, 0.000000, 0.000000, -0.999900 -1505, 0.017284, 0.000000, 0.000000, -0.999851 -1506, 0.020426, 0.000000, 0.000000, -0.999791 -1507, 0.023568, 0.000000, 0.000000, -0.999722 -1508, 0.026709, 0.000000, 0.000000, -0.999643 -1509, 0.029851, 0.000000, 0.000000, -0.999554 -1510, 0.032992, 0.000000, 0.000000, -0.999456 -1511, 0.036132, 0.000000, 0.000000, -0.999347 -1512, 0.039273, 0.000000, 0.000000, -0.999229 -1513, 0.042413, 0.000000, 0.000000, -0.999100 -1514, 0.045553, 0.000000, 0.000000, -0.998962 -1515, 0.048692, 0.000000, 0.000000, -0.998814 -1516, 0.051830, 0.000000, 0.000000, -0.998656 -1517, 0.054968, 0.000000, 0.000000, -0.998488 -1518, 0.058106, 0.000000, 0.000000, -0.998310 -1519, 0.061243, 0.000000, 0.000000, -0.998123 -1520, 0.064380, 0.000000, 0.000000, -0.997925 -1521, 0.067515, 0.000000, 0.000000, -0.997718 -1522, 0.070650, 0.000000, 0.000000, -0.997501 -1523, 0.073785, 0.000000, 0.000000, -0.997274 -1524, 0.076919, 0.000000, 0.000000, -0.997037 -1525, 0.080052, 0.000000, 0.000000, -0.996791 -1526, 0.083184, 0.000000, 0.000000, -0.996534 -1527, 0.086315, 0.000000, 0.000000, -0.996268 -1528, 0.089446, 0.000000, 0.000000, -0.995992 -1529, 0.092575, 0.000000, 0.000000, -0.995706 -1530, 0.095704, 0.000000, 0.000000, -0.995410 -1531, 0.098832, 0.000000, 0.000000, -0.995104 -1532, 0.101958, 0.000000, 0.000000, -0.994789 -1533, 0.105084, 0.000000, 0.000000, -0.994463 -1534, 0.108209, 0.000000, 0.000000, -0.994128 -1535, 0.111332, 0.000000, 0.000000, -0.993783 -1536, 0.114455, 0.000000, 0.000000, -0.993428 -1537, 0.117576, 0.000000, 0.000000, -0.993064 -1538, 0.120697, 0.000000, 0.000000, -0.992689 -1539, 0.123816, 0.000000, 0.000000, -0.992305 -1540, 0.126934, 0.000000, 0.000000, -0.991911 -1541, 0.130050, 0.000000, 0.000000, -0.991507 -1542, 0.133165, 0.000000, 0.000000, -0.991094 -1543, 0.136279, 0.000000, 0.000000, -0.990670 -1544, 0.139392, 0.000000, 0.000000, -0.990237 -1545, 0.142503, 0.000000, 0.000000, -0.989794 -1546, 0.145613, 0.000000, 0.000000, -0.989342 -1547, 0.148722, 0.000000, 0.000000, -0.988879 -1548, 0.151829, 0.000000, 0.000000, -0.988407 -1549, 0.154934, 0.000000, 0.000000, -0.987925 -1550, 0.158038, 0.000000, 0.000000, -0.987433 -1551, 0.161140, 0.000000, 0.000000, -0.986932 -1552, 0.164241, 0.000000, 0.000000, -0.986420 -1553, 0.167340, 0.000000, 0.000000, -0.985899 -1554, 0.170438, 0.000000, 0.000000, -0.985368 -1555, 0.173534, 0.000000, 0.000000, -0.984828 -1556, 0.176628, 0.000000, 0.000000, -0.984278 -1557, 0.179720, 0.000000, 0.000000, -0.983718 -1558, 0.182811, 0.000000, 0.000000, -0.983148 -1559, 0.185899, 0.000000, 0.000000, -0.982569 -1560, 0.188986, 0.000000, 0.000000, -0.981980 -1561, 0.192071, 0.000000, 0.000000, -0.981381 -1562, 0.195155, 0.000000, 0.000000, -0.980773 -1563, 0.198236, 0.000000, 0.000000, -0.980154 -1564, 0.201315, 0.000000, 0.000000, -0.979527 -1565, 0.204392, 0.000000, 0.000000, -0.978889 -1566, 0.207468, 0.000000, 0.000000, -0.978242 -1567, 0.210541, 0.000000, 0.000000, -0.977585 -1568, 0.213612, 0.000000, 0.000000, -0.976919 -1569, 0.216681, 0.000000, 0.000000, -0.976242 -1570, 0.219748, 0.000000, 0.000000, -0.975557 -1571, 0.222813, 0.000000, 0.000000, -0.974861 -1572, 0.225875, 0.000000, 0.000000, -0.974156 -1573, 0.228936, 0.000000, 0.000000, -0.973442 -1574, 0.231994, 0.000000, 0.000000, -0.972717 -1575, 0.235049, 0.000000, 0.000000, -0.971983 -1576, 0.238103, 0.000000, 0.000000, -0.971240 -1577, 0.241154, 0.000000, 0.000000, -0.970487 -1578, 0.244203, 0.000000, 0.000000, -0.969724 -1579, 0.247249, 0.000000, 0.000000, -0.968952 -1580, 0.250293, 0.000000, 0.000000, -0.968170 -1581, 0.253334, 0.000000, 0.000000, -0.967379 -1582, 0.256373, 0.000000, 0.000000, -0.966578 -1583, 0.259409, 0.000000, 0.000000, -0.965767 -1584, 0.262443, 0.000000, 0.000000, -0.964947 -1585, 0.265474, 0.000000, 0.000000, -0.964118 -1586, 0.268503, 0.000000, 0.000000, -0.963279 -1587, 0.271529, 0.000000, 0.000000, -0.962430 -1588, 0.274552, 0.000000, 0.000000, -0.961572 -1589, 0.277572, 0.000000, 0.000000, -0.960705 -1590, 0.280590, 0.000000, 0.000000, -0.959828 -1591, 0.283605, 0.000000, 0.000000, -0.958941 -1592, 0.286617, 0.000000, 0.000000, -0.958045 -1593, 0.289627, 0.000000, 0.000000, -0.957140 -1594, 0.292633, 0.000000, 0.000000, -0.956225 -1595, 0.295637, 0.000000, 0.000000, -0.955300 -1596, 0.298638, 0.000000, 0.000000, -0.954367 -1597, 0.301635, 0.000000, 0.000000, -0.953423 -1598, 0.304630, 0.000000, 0.000000, -0.952471 -1599, 0.307622, 0.000000, 0.000000, -0.951509 -1600, 0.310611, 0.000000, 0.000000, -0.950537 -1601, 0.313596, 0.000000, 0.000000, -0.949556 -1602, 0.316579, 0.000000, 0.000000, -0.948566 -1603, 0.319558, 0.000000, 0.000000, -0.947567 -1604, 0.322535, 0.000000, 0.000000, -0.946558 -1605, 0.325508, 0.000000, 0.000000, -0.945539 -1606, 0.328478, 0.000000, 0.000000, -0.944512 -1607, 0.331444, 0.000000, 0.000000, -0.943475 -1608, 0.334407, 0.000000, 0.000000, -0.942429 -1609, 0.337368, 0.000000, 0.000000, -0.941373 -1610, 0.340324, 0.000000, 0.000000, -0.940308 -1611, 0.343278, 0.000000, 0.000000, -0.939234 -1612, 0.346228, 0.000000, 0.000000, -0.938151 -1613, 0.349174, 0.000000, 0.000000, -0.937058 -1614, 0.352117, 0.000000, 0.000000, -0.935956 -1615, 0.355057, 0.000000, 0.000000, -0.934845 -1616, 0.357993, 0.000000, 0.000000, -0.933724 -1617, 0.360926, 0.000000, 0.000000, -0.932595 -1618, 0.363855, 0.000000, 0.000000, -0.931456 -1619, 0.366780, 0.000000, 0.000000, -0.930308 -1620, 0.369702, 0.000000, 0.000000, -0.929150 -1621, 0.372620, 0.000000, 0.000000, -0.927984 -1622, 0.375535, 0.000000, 0.000000, -0.926808 -1623, 0.378445, 0.000000, 0.000000, -0.925624 -1624, 0.381352, 0.000000, 0.000000, -0.924430 -1625, 0.384256, 0.000000, 0.000000, -0.923227 -1626, 0.387155, 0.000000, 0.000000, -0.922015 -1627, 0.390051, 0.000000, 0.000000, -0.920793 -1628, 0.392942, 0.000000, 0.000000, -0.919563 -1629, 0.395830, 0.000000, 0.000000, -0.918324 -1630, 0.398714, 0.000000, 0.000000, -0.917075 -1631, 0.401594, 0.000000, 0.000000, -0.915818 -1632, 0.404471, 0.000000, 0.000000, -0.914551 -1633, 0.407343, 0.000000, 0.000000, -0.913275 -1634, 0.410211, 0.000000, 0.000000, -0.911991 -1635, 0.413075, 0.000000, 0.000000, -0.910697 -1636, 0.415935, 0.000000, 0.000000, -0.909394 -1637, 0.418791, 0.000000, 0.000000, -0.908083 -1638, 0.421642, 0.000000, 0.000000, -0.906762 -1639, 0.424490, 0.000000, 0.000000, -0.905433 -1640, 0.427333, 0.000000, 0.000000, -0.904094 -1641, 0.430172, 0.000000, 0.000000, -0.902747 -1642, 0.433007, 0.000000, 0.000000, -0.901390 -1643, 0.435838, 0.000000, 0.000000, -0.900025 -1644, 0.438664, 0.000000, 0.000000, -0.898651 -1645, 0.441486, 0.000000, 0.000000, -0.897268 -1646, 0.444304, 0.000000, 0.000000, -0.895876 -1647, 0.447117, 0.000000, 0.000000, -0.894476 -1648, 0.449926, 0.000000, 0.000000, -0.893066 -1649, 0.452730, 0.000000, 0.000000, -0.891648 -1650, 0.455530, 0.000000, 0.000000, -0.890220 -1651, 0.458325, 0.000000, 0.000000, -0.888785 -1652, 0.461116, 0.000000, 0.000000, -0.887340 -1653, 0.463902, 0.000000, 0.000000, -0.885886 -1654, 0.466684, 0.000000, 0.000000, -0.884424 -1655, 0.469461, 0.000000, 0.000000, -0.882953 -1656, 0.472234, 0.000000, 0.000000, -0.881473 -1657, 0.475002, 0.000000, 0.000000, -0.879985 -1658, 0.477765, 0.000000, 0.000000, -0.878488 -1659, 0.480523, 0.000000, 0.000000, -0.876982 -1660, 0.483277, 0.000000, 0.000000, -0.875468 -1661, 0.486026, 0.000000, 0.000000, -0.873945 -1662, 0.488770, 0.000000, 0.000000, -0.872413 -1663, 0.491509, 0.000000, 0.000000, -0.870872 -1664, 0.494243, 0.000000, 0.000000, -0.869324 -1665, 0.496973, 0.000000, 0.000000, -0.867766 -1666, 0.499698, 0.000000, 0.000000, -0.866200 -1667, 0.502417, 0.000000, 0.000000, -0.864625 -1668, 0.505132, 0.000000, 0.000000, -0.863042 -1669, 0.507842, 0.000000, 0.000000, -0.861450 -1670, 0.510546, 0.000000, 0.000000, -0.859850 -1671, 0.513246, 0.000000, 0.000000, -0.858241 -1672, 0.515941, 0.000000, 0.000000, -0.856624 -1673, 0.518630, 0.000000, 0.000000, -0.854999 -1674, 0.521315, 0.000000, 0.000000, -0.853365 -1675, 0.523994, 0.000000, 0.000000, -0.851722 -1676, 0.526668, 0.000000, 0.000000, -0.850071 -1677, 0.529337, 0.000000, 0.000000, -0.848412 -1678, 0.532000, 0.000000, 0.000000, -0.846744 -1679, 0.534659, 0.000000, 0.000000, -0.845068 -1680, 0.537312, 0.000000, 0.000000, -0.843384 -1681, 0.539960, 0.000000, 0.000000, -0.841691 -1682, 0.542602, 0.000000, 0.000000, -0.839990 -1683, 0.545239, 0.000000, 0.000000, -0.838280 -1684, 0.547871, 0.000000, 0.000000, -0.836563 -1685, 0.550497, 0.000000, 0.000000, -0.834837 -1686, 0.553118, 0.000000, 0.000000, -0.833103 -1687, 0.555734, 0.000000, 0.000000, -0.831360 -1688, 0.558343, 0.000000, 0.000000, -0.829610 -1689, 0.560948, 0.000000, 0.000000, -0.827851 -1690, 0.563547, 0.000000, 0.000000, -0.826084 -1691, 0.566140, 0.000000, 0.000000, -0.824309 -1692, 0.568728, 0.000000, 0.000000, -0.822526 -1693, 0.571310, 0.000000, 0.000000, -0.820734 -1694, 0.573886, 0.000000, 0.000000, -0.818935 -1695, 0.576457, 0.000000, 0.000000, -0.817127 -1696, 0.579022, 0.000000, 0.000000, -0.815312 -1697, 0.581581, 0.000000, 0.000000, -0.813488 -1698, 0.584135, 0.000000, 0.000000, -0.811656 -1699, 0.586683, 0.000000, 0.000000, -0.809817 -1700, 0.589225, 0.000000, 0.000000, -0.807969 -1701, 0.591761, 0.000000, 0.000000, -0.806113 -1702, 0.594292, 0.000000, 0.000000, -0.804250 -1703, 0.596816, 0.000000, 0.000000, -0.802378 -1704, 0.599335, 0.000000, 0.000000, -0.800498 -1705, 0.601848, 0.000000, 0.000000, -0.798611 -1706, 0.604354, 0.000000, 0.000000, -0.796716 -1707, 0.606855, 0.000000, 0.000000, -0.794812 -1708, 0.609350, 0.000000, 0.000000, -0.792901 -1709, 0.611839, 0.000000, 0.000000, -0.790983 -1710, 0.614321, 0.000000, 0.000000, -0.789056 -1711, 0.616798, 0.000000, 0.000000, -0.787121 -1712, 0.619269, 0.000000, 0.000000, -0.785179 -1713, 0.621733, 0.000000, 0.000000, -0.783229 -1714, 0.624192, 0.000000, 0.000000, -0.781271 -1715, 0.626644, 0.000000, 0.000000, -0.779306 -1716, 0.629090, 0.000000, 0.000000, -0.777333 -1717, 0.631529, 0.000000, 0.000000, -0.775352 -1718, 0.633963, 0.000000, 0.000000, -0.773363 -1719, 0.636390, 0.000000, 0.000000, -0.771367 -1720, 0.638811, 0.000000, 0.000000, -0.769363 -1721, 0.641226, 0.000000, 0.000000, -0.767352 -1722, 0.643634, 0.000000, 0.000000, -0.765333 -1723, 0.646036, 0.000000, 0.000000, -0.763307 -1724, 0.648432, 0.000000, 0.000000, -0.761273 -1725, 0.650821, 0.000000, 0.000000, -0.759231 -1726, 0.653204, 0.000000, 0.000000, -0.757182 -1727, 0.655580, 0.000000, 0.000000, -0.755126 -1728, 0.657950, 0.000000, 0.000000, -0.753062 -1729, 0.660313, 0.000000, 0.000000, -0.750990 -1730, 0.662670, 0.000000, 0.000000, -0.748911 -1731, 0.665020, 0.000000, 0.000000, -0.746825 -1732, 0.667364, 0.000000, 0.000000, -0.744732 -1733, 0.669701, 0.000000, 0.000000, -0.742631 -1734, 0.672032, 0.000000, 0.000000, -0.740522 -1735, 0.674356, 0.000000, 0.000000, -0.738407 -1736, 0.676673, 0.000000, 0.000000, -0.736284 -1737, 0.678983, 0.000000, 0.000000, -0.734154 -1738, 0.681287, 0.000000, 0.000000, -0.732016 -1739, 0.683584, 0.000000, 0.000000, -0.729872 -1740, 0.685875, 0.000000, 0.000000, -0.727720 -1741, 0.688158, 0.000000, 0.000000, -0.725561 -1742, 0.690435, 0.000000, 0.000000, -0.723394 -1743, 0.692705, 0.000000, 0.000000, -0.721221 -1744, 0.694968, 0.000000, 0.000000, -0.719041 -1745, 0.697224, 0.000000, 0.000000, -0.716853 -1746, 0.699474, 0.000000, 0.000000, -0.714658 -1747, 0.701716, 0.000000, 0.000000, -0.712457 -1748, 0.703952, 0.000000, 0.000000, -0.710248 -1749, 0.706180, 0.000000, 0.000000, -0.708032 -1750, 0.708402, 0.000000, 0.000000, -0.705809 -1751, 0.710616, 0.000000, 0.000000, -0.703580 -1752, 0.712824, 0.000000, 0.000000, -0.701343 -1753, 0.715025, 0.000000, 0.000000, -0.699099 -1754, 0.717218, 0.000000, 0.000000, -0.696849 -1755, 0.719404, 0.000000, 0.000000, -0.694591 -1756, 0.721584, 0.000000, 0.000000, -0.692327 -1757, 0.723756, 0.000000, 0.000000, -0.690056 -1758, 0.725921, 0.000000, 0.000000, -0.687778 -1759, 0.728079, 0.000000, 0.000000, -0.685493 -1760, 0.730229, 0.000000, 0.000000, -0.683202 -1761, 0.732373, 0.000000, 0.000000, -0.680904 -1762, 0.734509, 0.000000, 0.000000, -0.678599 -1763, 0.736638, 0.000000, 0.000000, -0.676287 -1764, 0.738760, 0.000000, 0.000000, -0.673969 -1765, 0.740874, 0.000000, 0.000000, -0.671644 -1766, 0.742981, 0.000000, 0.000000, -0.669312 -1767, 0.745081, 0.000000, 0.000000, -0.666974 -1768, 0.747173, 0.000000, 0.000000, -0.664629 -1769, 0.749258, 0.000000, 0.000000, -0.662278 -1770, 0.751336, 0.000000, 0.000000, -0.659920 -1771, 0.753406, 0.000000, 0.000000, -0.657555 -1772, 0.755469, 0.000000, 0.000000, -0.655185 -1773, 0.757524, 0.000000, 0.000000, -0.652807 -1774, 0.759572, 0.000000, 0.000000, -0.650423 -1775, 0.761612, 0.000000, 0.000000, -0.648033 -1776, 0.763645, 0.000000, 0.000000, -0.645636 -1777, 0.765670, 0.000000, 0.000000, -0.643233 -1778, 0.767688, 0.000000, 0.000000, -0.640824 -1779, 0.769698, 0.000000, 0.000000, -0.638408 -1780, 0.771700, 0.000000, 0.000000, -0.635986 -1781, 0.773695, 0.000000, 0.000000, -0.633558 -1782, 0.775683, 0.000000, 0.000000, -0.631123 -1783, 0.777662, 0.000000, 0.000000, -0.628682 -1784, 0.779634, 0.000000, 0.000000, -0.626235 -1785, 0.781598, 0.000000, 0.000000, -0.623782 -1786, 0.783555, 0.000000, 0.000000, -0.621323 -1787, 0.785503, 0.000000, 0.000000, -0.618857 -1788, 0.787444, 0.000000, 0.000000, -0.616386 -1789, 0.789377, 0.000000, 0.000000, -0.613908 -1790, 0.791303, 0.000000, 0.000000, -0.611424 -1791, 0.793220, 0.000000, 0.000000, -0.608935 -1792, 0.795130, 0.000000, 0.000000, -0.606439 -1793, 0.797032, 0.000000, 0.000000, -0.603937 -1794, 0.798926, 0.000000, 0.000000, -0.601429 -1795, 0.800812, 0.000000, 0.000000, -0.598915 -1796, 0.802690, 0.000000, 0.000000, -0.596396 -1797, 0.804561, 0.000000, 0.000000, -0.593870 -1798, 0.806423, 0.000000, 0.000000, -0.591339 -1799, 0.808277, 0.000000, 0.000000, -0.588802 -1800, 0.810124, 0.000000, 0.000000, -0.586259 -1801, 0.811962, 0.000000, 0.000000, -0.583710 -1802, 0.813793, 0.000000, 0.000000, -0.581155 -1803, 0.815615, 0.000000, 0.000000, -0.578595 -1804, 0.817429, 0.000000, 0.000000, -0.576029 -1805, 0.819235, 0.000000, 0.000000, -0.573457 -1806, 0.821034, 0.000000, 0.000000, -0.570880 -1807, 0.822824, 0.000000, 0.000000, -0.568297 -1808, 0.824606, 0.000000, 0.000000, -0.565708 -1809, 0.826379, 0.000000, 0.000000, -0.563114 -1810, 0.828145, 0.000000, 0.000000, -0.560514 -1811, 0.829902, 0.000000, 0.000000, -0.557909 -1812, 0.831651, 0.000000, 0.000000, -0.555298 -1813, 0.833392, 0.000000, 0.000000, -0.552682 -1814, 0.835125, 0.000000, 0.000000, -0.550060 -1815, 0.836850, 0.000000, 0.000000, -0.547433 -1816, 0.838566, 0.000000, 0.000000, -0.544800 -1817, 0.840274, 0.000000, 0.000000, -0.542162 -1818, 0.841974, 0.000000, 0.000000, -0.539519 -1819, 0.843665, 0.000000, 0.000000, -0.536870 -1820, 0.845348, 0.000000, 0.000000, -0.534216 -1821, 0.847023, 0.000000, 0.000000, -0.531557 -1822, 0.848689, 0.000000, 0.000000, -0.528892 -1823, 0.850347, 0.000000, 0.000000, -0.526223 -1824, 0.851996, 0.000000, 0.000000, -0.523548 -1825, 0.853638, 0.000000, 0.000000, -0.520868 -1826, 0.855270, 0.000000, 0.000000, -0.518182 -1827, 0.856894, 0.000000, 0.000000, -0.515492 -1828, 0.858510, 0.000000, 0.000000, -0.512797 -1829, 0.860117, 0.000000, 0.000000, -0.510096 -1830, 0.861716, 0.000000, 0.000000, -0.507390 -1831, 0.863307, 0.000000, 0.000000, -0.504680 -1832, 0.864888, 0.000000, 0.000000, -0.501964 -1833, 0.866462, 0.000000, 0.000000, -0.499244 -1834, 0.868026, 0.000000, 0.000000, -0.496518 -1835, 0.869582, 0.000000, 0.000000, -0.493788 -1836, 0.871130, 0.000000, 0.000000, -0.491053 -1837, 0.872669, 0.000000, 0.000000, -0.488313 -1838, 0.874199, 0.000000, 0.000000, -0.485568 -1839, 0.875721, 0.000000, 0.000000, -0.482818 -1840, 0.877234, 0.000000, 0.000000, -0.480064 -1841, 0.878738, 0.000000, 0.000000, -0.477305 -1842, 0.880234, 0.000000, 0.000000, -0.474541 -1843, 0.881721, 0.000000, 0.000000, -0.471772 -1844, 0.883199, 0.000000, 0.000000, -0.468999 -1845, 0.884668, 0.000000, 0.000000, -0.466221 -1846, 0.886129, 0.000000, 0.000000, -0.463438 -1847, 0.887581, 0.000000, 0.000000, -0.460651 -1848, 0.889024, 0.000000, 0.000000, -0.457860 -1849, 0.890459, 0.000000, 0.000000, -0.455064 -1850, 0.891885, 0.000000, 0.000000, -0.452263 -1851, 0.893302, 0.000000, 0.000000, -0.449458 -1852, 0.894710, 0.000000, 0.000000, -0.446648 -1853, 0.896109, 0.000000, 0.000000, -0.443834 -1854, 0.897499, 0.000000, 0.000000, -0.441016 -1855, 0.898881, 0.000000, 0.000000, -0.438193 -1856, 0.900253, 0.000000, 0.000000, -0.435366 -1857, 0.901617, 0.000000, 0.000000, -0.432535 -1858, 0.902972, 0.000000, 0.000000, -0.429699 -1859, 0.904318, 0.000000, 0.000000, -0.426860 -1860, 0.905655, 0.000000, 0.000000, -0.424015 -1861, 0.906983, 0.000000, 0.000000, -0.421167 -1862, 0.908302, 0.000000, 0.000000, -0.418315 -1863, 0.909612, 0.000000, 0.000000, -0.415458 -1864, 0.910913, 0.000000, 0.000000, -0.412598 -1865, 0.912206, 0.000000, 0.000000, -0.409733 -1866, 0.913489, 0.000000, 0.000000, -0.406864 -1867, 0.914763, 0.000000, 0.000000, -0.403991 -1868, 0.916028, 0.000000, 0.000000, -0.401115 -1869, 0.917284, 0.000000, 0.000000, -0.398234 -1870, 0.918531, 0.000000, 0.000000, -0.395349 -1871, 0.919769, 0.000000, 0.000000, -0.392461 -1872, 0.920998, 0.000000, 0.000000, -0.389568 -1873, 0.922217, 0.000000, 0.000000, -0.386672 -1874, 0.923428, 0.000000, 0.000000, -0.383772 -1875, 0.924629, 0.000000, 0.000000, -0.380868 -1876, 0.925822, 0.000000, 0.000000, -0.377960 -1877, 0.927005, 0.000000, 0.000000, -0.375049 -1878, 0.928179, 0.000000, 0.000000, -0.372134 -1879, 0.929344, 0.000000, 0.000000, -0.369215 -1880, 0.930500, 0.000000, 0.000000, -0.366293 -1881, 0.931646, 0.000000, 0.000000, -0.363367 -1882, 0.932784, 0.000000, 0.000000, -0.360437 -1883, 0.933912, 0.000000, 0.000000, -0.357504 -1884, 0.935031, 0.000000, 0.000000, -0.354567 -1885, 0.936140, 0.000000, 0.000000, -0.351627 -1886, 0.937241, 0.000000, 0.000000, -0.348683 -1887, 0.938332, 0.000000, 0.000000, -0.345736 -1888, 0.939414, 0.000000, 0.000000, -0.342786 -1889, 0.940486, 0.000000, 0.000000, -0.339832 -1890, 0.941550, 0.000000, 0.000000, -0.336874 -1891, 0.942604, 0.000000, 0.000000, -0.333914 -1892, 0.943648, 0.000000, 0.000000, -0.330950 -1893, 0.944684, 0.000000, 0.000000, -0.327983 -1894, 0.945710, 0.000000, 0.000000, -0.325012 -1895, 0.946727, 0.000000, 0.000000, -0.322039 -1896, 0.947734, 0.000000, 0.000000, -0.319062 -1897, 0.948732, 0.000000, 0.000000, -0.316082 -1898, 0.949721, 0.000000, 0.000000, -0.313099 -1899, 0.950700, 0.000000, 0.000000, -0.310113 -1900, 0.951670, 0.000000, 0.000000, -0.307123 -1901, 0.952630, 0.000000, 0.000000, -0.304131 -1902, 0.953581, 0.000000, 0.000000, -0.301136 -1903, 0.954523, 0.000000, 0.000000, -0.298138 -1904, 0.955455, 0.000000, 0.000000, -0.295136 -1905, 0.956378, 0.000000, 0.000000, -0.292132 -1906, 0.957291, 0.000000, 0.000000, -0.289125 -1907, 0.958195, 0.000000, 0.000000, -0.286116 -1908, 0.959090, 0.000000, 0.000000, -0.283103 -1909, 0.959975, 0.000000, 0.000000, -0.280087 -1910, 0.960850, 0.000000, 0.000000, -0.277069 -1911, 0.961716, 0.000000, 0.000000, -0.274048 -1912, 0.962572, 0.000000, 0.000000, -0.271025 -1913, 0.963419, 0.000000, 0.000000, -0.267998 -1914, 0.964257, 0.000000, 0.000000, -0.264969 -1915, 0.965085, 0.000000, 0.000000, -0.261938 -1916, 0.965903, 0.000000, 0.000000, -0.258903 -1917, 0.966712, 0.000000, 0.000000, -0.255867 -1918, 0.967511, 0.000000, 0.000000, -0.252827 -1919, 0.968301, 0.000000, 0.000000, -0.249786 -1920, 0.969081, 0.000000, 0.000000, -0.246741 -1921, 0.969852, 0.000000, 0.000000, -0.243695 -1922, 0.970613, 0.000000, 0.000000, -0.240646 -1923, 0.971365, 0.000000, 0.000000, -0.237594 -1924, 0.972106, 0.000000, 0.000000, -0.234540 -1925, 0.972839, 0.000000, 0.000000, -0.231484 -1926, 0.973561, 0.000000, 0.000000, -0.228426 -1927, 0.974274, 0.000000, 0.000000, -0.225365 -1928, 0.974978, 0.000000, 0.000000, -0.222302 -1929, 0.975672, 0.000000, 0.000000, -0.219237 -1930, 0.976356, 0.000000, 0.000000, -0.216170 -1931, 0.977030, 0.000000, 0.000000, -0.213100 -1932, 0.977695, 0.000000, 0.000000, -0.210029 -1933, 0.978350, 0.000000, 0.000000, -0.206955 -1934, 0.978996, 0.000000, 0.000000, -0.203880 -1935, 0.979632, 0.000000, 0.000000, -0.200802 -1936, 0.980258, 0.000000, 0.000000, -0.197722 -1937, 0.980875, 0.000000, 0.000000, -0.194641 -1938, 0.981481, 0.000000, 0.000000, -0.191557 -1939, 0.982079, 0.000000, 0.000000, -0.188472 -1940, 0.982666, 0.000000, 0.000000, -0.185385 -1941, 0.983244, 0.000000, 0.000000, -0.182296 -1942, 0.983812, 0.000000, 0.000000, -0.179205 -1943, 0.984370, 0.000000, 0.000000, -0.176112 -1944, 0.984919, 0.000000, 0.000000, -0.173018 -1945, 0.985458, 0.000000, 0.000000, -0.169922 -1946, 0.985987, 0.000000, 0.000000, -0.166824 -1947, 0.986506, 0.000000, 0.000000, -0.163724 -1948, 0.987016, 0.000000, 0.000000, -0.160623 -1949, 0.987516, 0.000000, 0.000000, -0.157521 -1950, 0.988006, 0.000000, 0.000000, -0.154417 -1951, 0.988486, 0.000000, 0.000000, -0.151311 -1952, 0.988957, 0.000000, 0.000000, -0.148204 -1953, 0.989418, 0.000000, 0.000000, -0.145095 -1954, 0.989869, 0.000000, 0.000000, -0.141985 -1955, 0.990310, 0.000000, 0.000000, -0.138873 -1956, 0.990742, 0.000000, 0.000000, -0.135761 -1957, 0.991163, 0.000000, 0.000000, -0.132646 -1958, 0.991575, 0.000000, 0.000000, -0.129531 -1959, 0.991978, 0.000000, 0.000000, -0.126414 -1960, 0.992370, 0.000000, 0.000000, -0.123296 -1961, 0.992753, 0.000000, 0.000000, -0.120177 -1962, 0.993125, 0.000000, 0.000000, -0.117056 -1963, 0.993488, 0.000000, 0.000000, -0.113935 -1964, 0.993841, 0.000000, 0.000000, -0.110812 -1965, 0.994185, 0.000000, 0.000000, -0.107688 -1966, 0.994518, 0.000000, 0.000000, -0.104563 -1967, 0.994842, 0.000000, 0.000000, -0.101437 -1968, 0.995156, 0.000000, 0.000000, -0.098310 -1969, 0.995460, 0.000000, 0.000000, -0.095182 -1970, 0.995754, 0.000000, 0.000000, -0.092054 -1971, 0.996038, 0.000000, 0.000000, -0.088924 -1972, 0.996313, 0.000000, 0.000000, -0.085793 -1973, 0.996578, 0.000000, 0.000000, -0.082662 -1974, 0.996833, 0.000000, 0.000000, -0.079529 -1975, 0.997078, 0.000000, 0.000000, -0.076396 -1976, 0.997313, 0.000000, 0.000000, -0.073263 -1977, 0.997538, 0.000000, 0.000000, -0.070128 -1978, 0.997753, 0.000000, 0.000000, -0.066993 -1979, 0.997959, 0.000000, 0.000000, -0.063857 -1980, 0.998155, 0.000000, 0.000000, -0.060720 -1981, 0.998341, 0.000000, 0.000000, -0.057583 -1982, 0.998517, 0.000000, 0.000000, -0.054445 -1983, 0.998683, 0.000000, 0.000000, -0.051307 -1984, 0.998839, 0.000000, 0.000000, -0.048169 -1985, 0.998986, 0.000000, 0.000000, -0.045029 -1986, 0.999122, 0.000000, 0.000000, -0.041890 -1987, 0.999249, 0.000000, 0.000000, -0.038750 -1988, 0.999366, 0.000000, 0.000000, -0.035609 -1989, 0.999473, 0.000000, 0.000000, -0.032468 -1990, 0.999570, 0.000000, 0.000000, -0.029327 -1991, 0.999657, 0.000000, 0.000000, -0.026186 -1992, 0.999734, 0.000000, 0.000000, -0.023044 -1993, 0.999802, 0.000000, 0.000000, -0.019902 -1994, 0.999860, 0.000000, 0.000000, -0.016760 -1995, 0.999907, 0.000000, 0.000000, -0.013618 -1996, 0.999945, 0.000000, 0.000000, -0.010475 -1997, 0.999973, 0.000000, 0.000000, -0.007333 -1998, 0.999991, 0.000000, 0.000000, -0.004190 -1999, 0.999999, 0.000000, 0.000000, -0.001048 -2000, 0.999998, 0.000000, 0.000000, 0.002095 -2001, 0.999986, 0.000000, 0.000000, 0.005238 -2002, 0.999965, 0.000000, 0.000000, 0.008380 -2003, 0.999934, 0.000000, 0.000000, 0.011523 -2004, 0.999892, 0.000000, 0.000000, 0.014665 -2005, 0.999841, 0.000000, 0.000000, 0.017807 -2006, 0.999781, 0.000000, 0.000000, 0.020949 -2007, 0.999710, 0.000000, 0.000000, 0.024091 -2008, 0.999629, 0.000000, 0.000000, 0.027233 -2009, 0.999539, 0.000000, 0.000000, 0.030374 -2010, 0.999438, 0.000000, 0.000000, 0.033515 -2011, 0.999328, 0.000000, 0.000000, 0.036656 -2012, 0.999208, 0.000000, 0.000000, 0.039796 -2013, 0.999078, 0.000000, 0.000000, 0.042936 -2014, 0.998938, 0.000000, 0.000000, 0.046076 -2015, 0.998788, 0.000000, 0.000000, 0.049215 -2016, 0.998629, 0.000000, 0.000000, 0.052353 -2017, 0.998459, 0.000000, 0.000000, 0.055491 -2018, 0.998280, 0.000000, 0.000000, 0.058629 -2019, 0.998091, 0.000000, 0.000000, 0.061766 -2020, 0.997892, 0.000000, 0.000000, 0.064902 -2021, 0.997683, 0.000000, 0.000000, 0.068038 -2022, 0.997464, 0.000000, 0.000000, 0.071173 -2023, 0.997235, 0.000000, 0.000000, 0.074307 -2024, 0.996997, 0.000000, 0.000000, 0.077441 -2025, 0.996749, 0.000000, 0.000000, 0.080574 -2026, 0.996491, 0.000000, 0.000000, 0.083706 -2027, 0.996223, 0.000000, 0.000000, 0.086837 -2028, 0.995945, 0.000000, 0.000000, 0.089967 -2029, 0.995657, 0.000000, 0.000000, 0.093097 -2030, 0.995360, 0.000000, 0.000000, 0.096225 -2031, 0.995052, 0.000000, 0.000000, 0.099353 -2032, 0.994735, 0.000000, 0.000000, 0.102479 -2033, 0.994408, 0.000000, 0.000000, 0.105605 -2034, 0.994071, 0.000000, 0.000000, 0.108729 -2035, 0.993725, 0.000000, 0.000000, 0.111853 -2036, 0.993368, 0.000000, 0.000000, 0.114975 -2037, 0.993002, 0.000000, 0.000000, 0.118097 -2038, 0.992626, 0.000000, 0.000000, 0.121217 -2039, 0.992240, 0.000000, 0.000000, 0.124335 -2040, 0.991845, 0.000000, 0.000000, 0.127453 -2041, 0.991439, 0.000000, 0.000000, 0.130569 -2042, 0.991024, 0.000000, 0.000000, 0.133685 -2043, 0.990599, 0.000000, 0.000000, 0.136798 -2044, 0.990164, 0.000000, 0.000000, 0.139911 -2045, 0.989720, 0.000000, 0.000000, 0.143022 -2046, 0.989265, 0.000000, 0.000000, 0.146131 -2047, 0.988801, 0.000000, 0.000000, 0.149240 -2048, 0.988327, 0.000000, 0.000000, 0.152346 -2049, 0.987844, 0.000000, 0.000000, 0.155451 -2050, 0.987350, 0.000000, 0.000000, 0.158555 -2051, 0.986847, 0.000000, 0.000000, 0.161657 -2052, 0.986334, 0.000000, 0.000000, 0.164758 -2053, 0.985811, 0.000000, 0.000000, 0.167857 -2054, 0.985279, 0.000000, 0.000000, 0.170954 -2055, 0.984737, 0.000000, 0.000000, 0.174049 -2056, 0.984185, 0.000000, 0.000000, 0.177143 -2057, 0.983624, 0.000000, 0.000000, 0.180235 -2058, 0.983052, 0.000000, 0.000000, 0.183326 -2059, 0.982471, 0.000000, 0.000000, 0.186414 -2060, 0.981881, 0.000000, 0.000000, 0.189501 -2061, 0.981280, 0.000000, 0.000000, 0.192585 -2062, 0.980670, 0.000000, 0.000000, 0.195668 -2063, 0.980050, 0.000000, 0.000000, 0.198749 -2064, 0.979421, 0.000000, 0.000000, 0.201828 -2065, 0.978782, 0.000000, 0.000000, 0.204905 -2066, 0.978133, 0.000000, 0.000000, 0.207980 -2067, 0.977475, 0.000000, 0.000000, 0.211053 -2068, 0.976807, 0.000000, 0.000000, 0.214124 -2069, 0.976129, 0.000000, 0.000000, 0.217192 -2070, 0.975441, 0.000000, 0.000000, 0.220259 -2071, 0.974744, 0.000000, 0.000000, 0.223323 -2072, 0.974038, 0.000000, 0.000000, 0.226385 -2073, 0.973322, 0.000000, 0.000000, 0.229445 -2074, 0.972596, 0.000000, 0.000000, 0.232503 -2075, 0.971860, 0.000000, 0.000000, 0.235558 -2076, 0.971115, 0.000000, 0.000000, 0.238611 -2077, 0.970360, 0.000000, 0.000000, 0.241662 -2078, 0.969596, 0.000000, 0.000000, 0.244710 -2079, 0.968822, 0.000000, 0.000000, 0.247756 -2080, 0.968039, 0.000000, 0.000000, 0.250800 -2081, 0.967246, 0.000000, 0.000000, 0.253841 -2082, 0.966444, 0.000000, 0.000000, 0.256879 -2083, 0.965631, 0.000000, 0.000000, 0.259915 -2084, 0.964810, 0.000000, 0.000000, 0.262948 -2085, 0.963979, 0.000000, 0.000000, 0.265979 -2086, 0.963138, 0.000000, 0.000000, 0.269007 -2087, 0.962288, 0.000000, 0.000000, 0.272033 -2088, 0.961428, 0.000000, 0.000000, 0.275056 -2089, 0.960559, 0.000000, 0.000000, 0.278076 -2090, 0.959681, 0.000000, 0.000000, 0.281093 -2091, 0.958792, 0.000000, 0.000000, 0.284107 -2092, 0.957895, 0.000000, 0.000000, 0.287119 -2093, 0.956988, 0.000000, 0.000000, 0.290128 -2094, 0.956071, 0.000000, 0.000000, 0.293134 -2095, 0.955145, 0.000000, 0.000000, 0.296137 -2096, 0.954210, 0.000000, 0.000000, 0.299137 -2097, 0.953265, 0.000000, 0.000000, 0.302135 -2098, 0.952311, 0.000000, 0.000000, 0.305129 -2099, 0.951347, 0.000000, 0.000000, 0.308120 -2100, 0.950374, 0.000000, 0.000000, 0.311108 -2101, 0.949392, 0.000000, 0.000000, 0.314094 -2102, 0.948400, 0.000000, 0.000000, 0.317076 -2103, 0.947399, 0.000000, 0.000000, 0.320055 -2104, 0.946389, 0.000000, 0.000000, 0.323030 -2105, 0.945369, 0.000000, 0.000000, 0.326003 -2106, 0.944340, 0.000000, 0.000000, 0.328972 -2107, 0.943301, 0.000000, 0.000000, 0.331938 -2108, 0.942253, 0.000000, 0.000000, 0.334901 -2109, 0.941196, 0.000000, 0.000000, 0.337861 -2110, 0.940130, 0.000000, 0.000000, 0.340817 -2111, 0.939054, 0.000000, 0.000000, 0.343770 -2112, 0.937969, 0.000000, 0.000000, 0.346719 -2113, 0.936875, 0.000000, 0.000000, 0.349665 -2114, 0.935771, 0.000000, 0.000000, 0.352607 -2115, 0.934659, 0.000000, 0.000000, 0.355547 -2116, 0.933537, 0.000000, 0.000000, 0.358482 -2117, 0.932405, 0.000000, 0.000000, 0.361414 -2118, 0.931265, 0.000000, 0.000000, 0.364342 -2119, 0.930115, 0.000000, 0.000000, 0.367267 -2120, 0.928957, 0.000000, 0.000000, 0.370188 -2121, 0.927789, 0.000000, 0.000000, 0.373106 -2122, 0.926612, 0.000000, 0.000000, 0.376020 -2123, 0.925425, 0.000000, 0.000000, 0.378930 -2124, 0.924230, 0.000000, 0.000000, 0.381836 -2125, 0.923025, 0.000000, 0.000000, 0.384739 -2126, 0.921812, 0.000000, 0.000000, 0.387638 -2127, 0.920589, 0.000000, 0.000000, 0.390533 -2128, 0.919357, 0.000000, 0.000000, 0.393424 -2129, 0.918116, 0.000000, 0.000000, 0.396311 -2130, 0.916866, 0.000000, 0.000000, 0.399195 -2131, 0.915607, 0.000000, 0.000000, 0.402074 -2132, 0.914339, 0.000000, 0.000000, 0.404950 -2133, 0.913062, 0.000000, 0.000000, 0.407821 -2134, 0.911776, 0.000000, 0.000000, 0.410688 -2135, 0.910481, 0.000000, 0.000000, 0.413552 -2136, 0.909177, 0.000000, 0.000000, 0.416411 -2137, 0.907863, 0.000000, 0.000000, 0.419266 -2138, 0.906541, 0.000000, 0.000000, 0.422117 -2139, 0.905210, 0.000000, 0.000000, 0.424964 -2140, 0.903870, 0.000000, 0.000000, 0.427807 -2141, 0.902521, 0.000000, 0.000000, 0.430645 -2142, 0.901164, 0.000000, 0.000000, 0.433479 -2143, 0.899797, 0.000000, 0.000000, 0.436309 -2144, 0.898421, 0.000000, 0.000000, 0.439135 -2145, 0.897037, 0.000000, 0.000000, 0.441956 -2146, 0.895643, 0.000000, 0.000000, 0.444773 -2147, 0.894241, 0.000000, 0.000000, 0.447585 -2148, 0.892830, 0.000000, 0.000000, 0.450393 -2149, 0.891410, 0.000000, 0.000000, 0.453197 -2150, 0.889982, 0.000000, 0.000000, 0.455996 -2151, 0.888544, 0.000000, 0.000000, 0.458791 -2152, 0.887098, 0.000000, 0.000000, 0.461581 -2153, 0.885643, 0.000000, 0.000000, 0.464366 -2154, 0.884179, 0.000000, 0.000000, 0.467147 -2155, 0.882707, 0.000000, 0.000000, 0.469924 -2156, 0.881226, 0.000000, 0.000000, 0.472695 -2157, 0.879736, 0.000000, 0.000000, 0.475462 -2158, 0.878237, 0.000000, 0.000000, 0.478225 -2159, 0.876730, 0.000000, 0.000000, 0.480982 -2160, 0.875214, 0.000000, 0.000000, 0.483735 -2161, 0.873690, 0.000000, 0.000000, 0.486483 -2162, 0.872157, 0.000000, 0.000000, 0.489227 -2163, 0.870615, 0.000000, 0.000000, 0.491965 -2164, 0.869065, 0.000000, 0.000000, 0.494699 -2165, 0.867506, 0.000000, 0.000000, 0.497427 -2166, 0.865938, 0.000000, 0.000000, 0.500151 -2167, 0.864362, 0.000000, 0.000000, 0.502870 -2168, 0.862777, 0.000000, 0.000000, 0.505584 -2169, 0.861184, 0.000000, 0.000000, 0.508293 -2170, 0.859583, 0.000000, 0.000000, 0.510997 -2171, 0.857973, 0.000000, 0.000000, 0.513696 -2172, 0.856354, 0.000000, 0.000000, 0.516389 -2173, 0.854727, 0.000000, 0.000000, 0.519078 -2174, 0.853091, 0.000000, 0.000000, 0.521761 -2175, 0.851447, 0.000000, 0.000000, 0.524440 -2176, 0.849795, 0.000000, 0.000000, 0.527113 -2177, 0.848134, 0.000000, 0.000000, 0.529781 -2178, 0.846465, 0.000000, 0.000000, 0.532444 -2179, 0.844788, 0.000000, 0.000000, 0.535101 -2180, 0.843102, 0.000000, 0.000000, 0.537754 -2181, 0.841408, 0.000000, 0.000000, 0.540400 -2182, 0.839706, 0.000000, 0.000000, 0.543042 -2183, 0.837995, 0.000000, 0.000000, 0.545678 -2184, 0.836276, 0.000000, 0.000000, 0.548309 -2185, 0.834549, 0.000000, 0.000000, 0.550934 -2186, 0.832813, 0.000000, 0.000000, 0.553554 -2187, 0.831069, 0.000000, 0.000000, 0.556169 -2188, 0.829317, 0.000000, 0.000000, 0.558778 -2189, 0.827557, 0.000000, 0.000000, 0.561381 -2190, 0.825789, 0.000000, 0.000000, 0.563979 -2191, 0.824012, 0.000000, 0.000000, 0.566572 -2192, 0.822228, 0.000000, 0.000000, 0.569158 -2193, 0.820435, 0.000000, 0.000000, 0.571740 -2194, 0.818634, 0.000000, 0.000000, 0.574315 -2195, 0.816825, 0.000000, 0.000000, 0.576885 -2196, 0.815008, 0.000000, 0.000000, 0.579449 -2197, 0.813183, 0.000000, 0.000000, 0.582008 -2198, 0.811350, 0.000000, 0.000000, 0.584560 -2199, 0.809509, 0.000000, 0.000000, 0.587107 -2200, 0.807660, 0.000000, 0.000000, 0.589648 -2201, 0.805803, 0.000000, 0.000000, 0.592183 -2202, 0.803938, 0.000000, 0.000000, 0.594713 -2203, 0.802065, 0.000000, 0.000000, 0.597236 -2204, 0.800184, 0.000000, 0.000000, 0.599754 -2205, 0.798296, 0.000000, 0.000000, 0.602266 -2206, 0.796399, 0.000000, 0.000000, 0.604772 -2207, 0.794494, 0.000000, 0.000000, 0.607271 -2208, 0.792582, 0.000000, 0.000000, 0.609765 -2209, 0.790662, 0.000000, 0.000000, 0.612253 -2210, 0.788734, 0.000000, 0.000000, 0.614735 -2211, 0.786798, 0.000000, 0.000000, 0.617210 -2212, 0.784855, 0.000000, 0.000000, 0.619680 -2213, 0.782903, 0.000000, 0.000000, 0.622143 -2214, 0.780944, 0.000000, 0.000000, 0.624601 -2215, 0.778978, 0.000000, 0.000000, 0.627052 -2216, 0.777003, 0.000000, 0.000000, 0.629497 -2217, 0.775021, 0.000000, 0.000000, 0.631935 -2218, 0.773031, 0.000000, 0.000000, 0.634368 -2219, 0.771034, 0.000000, 0.000000, 0.636794 -2220, 0.769029, 0.000000, 0.000000, 0.639214 -2221, 0.767016, 0.000000, 0.000000, 0.641628 -2222, 0.764996, 0.000000, 0.000000, 0.644035 -2223, 0.762968, 0.000000, 0.000000, 0.646436 -2224, 0.760933, 0.000000, 0.000000, 0.648830 -2225, 0.758890, 0.000000, 0.000000, 0.651219 -2226, 0.756840, 0.000000, 0.000000, 0.653600 -2227, 0.754782, 0.000000, 0.000000, 0.655976 -2228, 0.752717, 0.000000, 0.000000, 0.658344 -2229, 0.750644, 0.000000, 0.000000, 0.660707 -2230, 0.748564, 0.000000, 0.000000, 0.663062 -2231, 0.746477, 0.000000, 0.000000, 0.665412 -2232, 0.744382, 0.000000, 0.000000, 0.667754 -2233, 0.742280, 0.000000, 0.000000, 0.670090 -2234, 0.740170, 0.000000, 0.000000, 0.672420 -2235, 0.738053, 0.000000, 0.000000, 0.674742 -2236, 0.735929, 0.000000, 0.000000, 0.677058 -2237, 0.733798, 0.000000, 0.000000, 0.679368 -2238, 0.731659, 0.000000, 0.000000, 0.681671 -2239, 0.729513, 0.000000, 0.000000, 0.683967 -2240, 0.727360, 0.000000, 0.000000, 0.686256 -2241, 0.725200, 0.000000, 0.000000, 0.688538 -2242, 0.723033, 0.000000, 0.000000, 0.690814 -2243, 0.720858, 0.000000, 0.000000, 0.693083 -2244, 0.718676, 0.000000, 0.000000, 0.695345 -2245, 0.716488, 0.000000, 0.000000, 0.697600 -2246, 0.714292, 0.000000, 0.000000, 0.699848 -2247, 0.712089, 0.000000, 0.000000, 0.702089 -2248, 0.709879, 0.000000, 0.000000, 0.704324 -2249, 0.707662, 0.000000, 0.000000, 0.706551 -2250, 0.705438, 0.000000, 0.000000, 0.708771 -2251, 0.703207, 0.000000, 0.000000, 0.710985 -2252, 0.700969, 0.000000, 0.000000, 0.713191 -2253, 0.698725, 0.000000, 0.000000, 0.715391 -2254, 0.696473, 0.000000, 0.000000, 0.717583 -2255, 0.694214, 0.000000, 0.000000, 0.719768 -2256, 0.691949, 0.000000, 0.000000, 0.721946 -2257, 0.689677, 0.000000, 0.000000, 0.724117 -2258, 0.687398, 0.000000, 0.000000, 0.726281 -2259, 0.685112, 0.000000, 0.000000, 0.728438 -2260, 0.682819, 0.000000, 0.000000, 0.730587 -2261, 0.680520, 0.000000, 0.000000, 0.732729 -2262, 0.678214, 0.000000, 0.000000, 0.734864 -2263, 0.675901, 0.000000, 0.000000, 0.736992 -2264, 0.673582, 0.000000, 0.000000, 0.739113 -2265, 0.671256, 0.000000, 0.000000, 0.741226 -2266, 0.668923, 0.000000, 0.000000, 0.743332 -2267, 0.666584, 0.000000, 0.000000, 0.745430 -2268, 0.664238, 0.000000, 0.000000, 0.747521 -2269, 0.661885, 0.000000, 0.000000, 0.749605 -2270, 0.659526, 0.000000, 0.000000, 0.751682 -2271, 0.657161, 0.000000, 0.000000, 0.753750 -2272, 0.654789, 0.000000, 0.000000, 0.755812 -2273, 0.652410, 0.000000, 0.000000, 0.757866 -2274, 0.650025, 0.000000, 0.000000, 0.759913 -2275, 0.647634, 0.000000, 0.000000, 0.761952 -2276, 0.645236, 0.000000, 0.000000, 0.763983 -2277, 0.642832, 0.000000, 0.000000, 0.766007 -2278, 0.640422, 0.000000, 0.000000, 0.768023 -2279, 0.638005, 0.000000, 0.000000, 0.770032 -2280, 0.635582, 0.000000, 0.000000, 0.772033 -2281, 0.633153, 0.000000, 0.000000, 0.774027 -2282, 0.630717, 0.000000, 0.000000, 0.776013 -2283, 0.628275, 0.000000, 0.000000, 0.777991 -2284, 0.625827, 0.000000, 0.000000, 0.779962 -2285, 0.623373, 0.000000, 0.000000, 0.781925 -2286, 0.620912, 0.000000, 0.000000, 0.783880 -2287, 0.618446, 0.000000, 0.000000, 0.785827 -2288, 0.615973, 0.000000, 0.000000, 0.787767 -2289, 0.613495, 0.000000, 0.000000, 0.789699 -2290, 0.611010, 0.000000, 0.000000, 0.791623 -2291, 0.608519, 0.000000, 0.000000, 0.793539 -2292, 0.606022, 0.000000, 0.000000, 0.795448 -2293, 0.603519, 0.000000, 0.000000, 0.797348 -2294, 0.601011, 0.000000, 0.000000, 0.799241 -2295, 0.598496, 0.000000, 0.000000, 0.801126 -2296, 0.595975, 0.000000, 0.000000, 0.803003 -2297, 0.593449, 0.000000, 0.000000, 0.804872 -2298, 0.590917, 0.000000, 0.000000, 0.806733 -2299, 0.588378, 0.000000, 0.000000, 0.808586 -2300, 0.585834, 0.000000, 0.000000, 0.810431 -2301, 0.583285, 0.000000, 0.000000, 0.812268 -2302, 0.580729, 0.000000, 0.000000, 0.814097 -2303, 0.578168, 0.000000, 0.000000, 0.815918 -2304, 0.575601, 0.000000, 0.000000, 0.817731 -2305, 0.573028, 0.000000, 0.000000, 0.819536 -2306, 0.570450, 0.000000, 0.000000, 0.821333 -2307, 0.567866, 0.000000, 0.000000, 0.823121 -2308, 0.565276, 0.000000, 0.000000, 0.824902 -2309, 0.562681, 0.000000, 0.000000, 0.826674 -2310, 0.560080, 0.000000, 0.000000, 0.828438 -2311, 0.557474, 0.000000, 0.000000, 0.830194 -2312, 0.554862, 0.000000, 0.000000, 0.831942 -2313, 0.552245, 0.000000, 0.000000, 0.833682 -2314, 0.549622, 0.000000, 0.000000, 0.835413 -2315, 0.546994, 0.000000, 0.000000, 0.837136 -2316, 0.544361, 0.000000, 0.000000, 0.838851 -2317, 0.541722, 0.000000, 0.000000, 0.840558 -2318, 0.539078, 0.000000, 0.000000, 0.842256 -2319, 0.536428, 0.000000, 0.000000, 0.843946 -2320, 0.533773, 0.000000, 0.000000, 0.845628 -2321, 0.531113, 0.000000, 0.000000, 0.847301 -2322, 0.528448, 0.000000, 0.000000, 0.848966 -2323, 0.525777, 0.000000, 0.000000, 0.850622 -2324, 0.523101, 0.000000, 0.000000, 0.852270 -2325, 0.520420, 0.000000, 0.000000, 0.853910 -2326, 0.517734, 0.000000, 0.000000, 0.855541 -2327, 0.515043, 0.000000, 0.000000, 0.857164 -2328, 0.512347, 0.000000, 0.000000, 0.858779 -2329, 0.509645, 0.000000, 0.000000, 0.860385 -2330, 0.506939, 0.000000, 0.000000, 0.861982 -2331, 0.504228, 0.000000, 0.000000, 0.863571 -2332, 0.501511, 0.000000, 0.000000, 0.865151 -2333, 0.498790, 0.000000, 0.000000, 0.866723 -2334, 0.496064, 0.000000, 0.000000, 0.868286 -2335, 0.493332, 0.000000, 0.000000, 0.869841 -2336, 0.490596, 0.000000, 0.000000, 0.871387 -2337, 0.487856, 0.000000, 0.000000, 0.872924 -2338, 0.485110, 0.000000, 0.000000, 0.874453 -2339, 0.482359, 0.000000, 0.000000, 0.875973 -2340, 0.479604, 0.000000, 0.000000, 0.877485 -2341, 0.476844, 0.000000, 0.000000, 0.878988 -2342, 0.474079, 0.000000, 0.000000, 0.880482 -2343, 0.471310, 0.000000, 0.000000, 0.881968 -2344, 0.468536, 0.000000, 0.000000, 0.883444 -2345, 0.465757, 0.000000, 0.000000, 0.884912 -2346, 0.462974, 0.000000, 0.000000, 0.886372 -2347, 0.460186, 0.000000, 0.000000, 0.887822 -2348, 0.457394, 0.000000, 0.000000, 0.889264 -2349, 0.454597, 0.000000, 0.000000, 0.890697 -2350, 0.451796, 0.000000, 0.000000, 0.892121 -2351, 0.448990, 0.000000, 0.000000, 0.893537 -2352, 0.446180, 0.000000, 0.000000, 0.894943 -2353, 0.443365, 0.000000, 0.000000, 0.896341 -2354, 0.440546, 0.000000, 0.000000, 0.897730 -2355, 0.437722, 0.000000, 0.000000, 0.899110 -2356, 0.434895, 0.000000, 0.000000, 0.900481 -2357, 0.432063, 0.000000, 0.000000, 0.901844 -2358, 0.429226, 0.000000, 0.000000, 0.903197 -2359, 0.426386, 0.000000, 0.000000, 0.904541 -2360, 0.423541, 0.000000, 0.000000, 0.905877 -2361, 0.420692, 0.000000, 0.000000, 0.907203 -2362, 0.417839, 0.000000, 0.000000, 0.908521 -2363, 0.414982, 0.000000, 0.000000, 0.909830 -2364, 0.412121, 0.000000, 0.000000, 0.911129 -2365, 0.409255, 0.000000, 0.000000, 0.912420 -2366, 0.406386, 0.000000, 0.000000, 0.913702 -2367, 0.403512, 0.000000, 0.000000, 0.914974 -2368, 0.400635, 0.000000, 0.000000, 0.916238 -2369, 0.397753, 0.000000, 0.000000, 0.917492 -2370, 0.394868, 0.000000, 0.000000, 0.918738 -2371, 0.391979, 0.000000, 0.000000, 0.919974 -2372, 0.389086, 0.000000, 0.000000, 0.921201 -2373, 0.386189, 0.000000, 0.000000, 0.922420 -2374, 0.383288, 0.000000, 0.000000, 0.923629 -2375, 0.380384, 0.000000, 0.000000, 0.924829 -2376, 0.377475, 0.000000, 0.000000, 0.926020 -2377, 0.374563, 0.000000, 0.000000, 0.927201 -2378, 0.371648, 0.000000, 0.000000, 0.928374 -2379, 0.368728, 0.000000, 0.000000, 0.929537 -2380, 0.365805, 0.000000, 0.000000, 0.930691 -2381, 0.362879, 0.000000, 0.000000, 0.931836 -2382, 0.359948, 0.000000, 0.000000, 0.932972 -2383, 0.357015, 0.000000, 0.000000, 0.934099 -2384, 0.354077, 0.000000, 0.000000, 0.935216 -2385, 0.351137, 0.000000, 0.000000, 0.936324 -2386, 0.348192, 0.000000, 0.000000, 0.937423 -2387, 0.345245, 0.000000, 0.000000, 0.938513 -2388, 0.342294, 0.000000, 0.000000, 0.939593 -2389, 0.339339, 0.000000, 0.000000, 0.940664 -2390, 0.336381, 0.000000, 0.000000, 0.941726 -2391, 0.333420, 0.000000, 0.000000, 0.942778 -2392, 0.330456, 0.000000, 0.000000, 0.943822 -2393, 0.327488, 0.000000, 0.000000, 0.944855 -2394, 0.324517, 0.000000, 0.000000, 0.945880 -2395, 0.321543, 0.000000, 0.000000, 0.946895 -2396, 0.318565, 0.000000, 0.000000, 0.947901 -2397, 0.315585, 0.000000, 0.000000, 0.948897 -2398, 0.312601, 0.000000, 0.000000, 0.949884 -2399, 0.309615, 0.000000, 0.000000, 0.950862 -2400, 0.306625, 0.000000, 0.000000, 0.951830 -2401, 0.303632, 0.000000, 0.000000, 0.952789 -2402, 0.300636, 0.000000, 0.000000, 0.953739 -2403, 0.297638, 0.000000, 0.000000, 0.954679 -2404, 0.294636, 0.000000, 0.000000, 0.955610 -2405, 0.291631, 0.000000, 0.000000, 0.956531 -2406, 0.288624, 0.000000, 0.000000, 0.957443 -2407, 0.285614, 0.000000, 0.000000, 0.958345 -2408, 0.282600, 0.000000, 0.000000, 0.959238 -2409, 0.279585, 0.000000, 0.000000, 0.960121 -2410, 0.276566, 0.000000, 0.000000, 0.960995 -2411, 0.273544, 0.000000, 0.000000, 0.961859 -2412, 0.270520, 0.000000, 0.000000, 0.962714 -2413, 0.267494, 0.000000, 0.000000, 0.963560 -2414, 0.264464, 0.000000, 0.000000, 0.964396 -2415, 0.261432, 0.000000, 0.000000, 0.965222 -2416, 0.258397, 0.000000, 0.000000, 0.966039 -2417, 0.255360, 0.000000, 0.000000, 0.966846 -2418, 0.252321, 0.000000, 0.000000, 0.967644 -2419, 0.249278, 0.000000, 0.000000, 0.968432 -2420, 0.246234, 0.000000, 0.000000, 0.969210 -2421, 0.243187, 0.000000, 0.000000, 0.969980 -2422, 0.240137, 0.000000, 0.000000, 0.970739 -2423, 0.237085, 0.000000, 0.000000, 0.971489 -2424, 0.234031, 0.000000, 0.000000, 0.972229 -2425, 0.230975, 0.000000, 0.000000, 0.972960 -2426, 0.227916, 0.000000, 0.000000, 0.973681 -2427, 0.224855, 0.000000, 0.000000, 0.974392 -2428, 0.221791, 0.000000, 0.000000, 0.975094 -2429, 0.218726, 0.000000, 0.000000, 0.975786 -2430, 0.215658, 0.000000, 0.000000, 0.976469 -2431, 0.212589, 0.000000, 0.000000, 0.977142 -2432, 0.209517, 0.000000, 0.000000, 0.977805 -2433, 0.206443, 0.000000, 0.000000, 0.978459 -2434, 0.203367, 0.000000, 0.000000, 0.979103 -2435, 0.200289, 0.000000, 0.000000, 0.979737 -2436, 0.197209, 0.000000, 0.000000, 0.980361 -2437, 0.194127, 0.000000, 0.000000, 0.980976 -2438, 0.191043, 0.000000, 0.000000, 0.981582 -2439, 0.187958, 0.000000, 0.000000, 0.982177 -2440, 0.184870, 0.000000, 0.000000, 0.982763 -2441, 0.181781, 0.000000, 0.000000, 0.983339 -2442, 0.178689, 0.000000, 0.000000, 0.983906 -2443, 0.175596, 0.000000, 0.000000, 0.984462 -2444, 0.172502, 0.000000, 0.000000, 0.985009 -2445, 0.169405, 0.000000, 0.000000, 0.985546 -2446, 0.166307, 0.000000, 0.000000, 0.986074 -2447, 0.163208, 0.000000, 0.000000, 0.986592 -2448, 0.160106, 0.000000, 0.000000, 0.987100 -2449, 0.157003, 0.000000, 0.000000, 0.987598 -2450, 0.153899, 0.000000, 0.000000, 0.988087 -2451, 0.150793, 0.000000, 0.000000, 0.988565 -2452, 0.147686, 0.000000, 0.000000, 0.989034 -2453, 0.144577, 0.000000, 0.000000, 0.989494 -2454, 0.141466, 0.000000, 0.000000, 0.989943 -2455, 0.138355, 0.000000, 0.000000, 0.990383 -2456, 0.135242, 0.000000, 0.000000, 0.990813 -2457, 0.132127, 0.000000, 0.000000, 0.991233 -2458, 0.129011, 0.000000, 0.000000, 0.991643 -2459, 0.125894, 0.000000, 0.000000, 0.992044 -2460, 0.122776, 0.000000, 0.000000, 0.992434 -2461, 0.119657, 0.000000, 0.000000, 0.992815 -2462, 0.116536, 0.000000, 0.000000, 0.993186 -2463, 0.113414, 0.000000, 0.000000, 0.993548 -2464, 0.110291, 0.000000, 0.000000, 0.993899 -2465, 0.107167, 0.000000, 0.000000, 0.994241 -2466, 0.104042, 0.000000, 0.000000, 0.994573 -2467, 0.100916, 0.000000, 0.000000, 0.994895 -2468, 0.097789, 0.000000, 0.000000, 0.995207 -2469, 0.094661, 0.000000, 0.000000, 0.995510 -2470, 0.091532, 0.000000, 0.000000, 0.995802 -2471, 0.088402, 0.000000, 0.000000, 0.996085 -2472, 0.085271, 0.000000, 0.000000, 0.996358 -2473, 0.082140, 0.000000, 0.000000, 0.996621 -2474, 0.079007, 0.000000, 0.000000, 0.996874 -2475, 0.075874, 0.000000, 0.000000, 0.997117 -2476, 0.072740, 0.000000, 0.000000, 0.997351 -2477, 0.069606, 0.000000, 0.000000, 0.997575 -2478, 0.066470, 0.000000, 0.000000, 0.997788 -2479, 0.063334, 0.000000, 0.000000, 0.997992 -2480, 0.060198, 0.000000, 0.000000, 0.998186 -2481, 0.057060, 0.000000, 0.000000, 0.998371 -2482, 0.053922, 0.000000, 0.000000, 0.998545 -2483, 0.050784, 0.000000, 0.000000, 0.998710 -2484, 0.047645, 0.000000, 0.000000, 0.998864 -2485, 0.044506, 0.000000, 0.000000, 0.999009 -2486, 0.041366, 0.000000, 0.000000, 0.999144 -2487, 0.038226, 0.000000, 0.000000, 0.999269 -2488, 0.035086, 0.000000, 0.000000, 0.999384 -2489, 0.031945, 0.000000, 0.000000, 0.999490 -2490, 0.028804, 0.000000, 0.000000, 0.999585 -2491, 0.025662, 0.000000, 0.000000, 0.999671 -2492, 0.022520, 0.000000, 0.000000, 0.999746 -2493, 0.019378, 0.000000, 0.000000, 0.999812 -2494, 0.016236, 0.000000, 0.000000, 0.999868 -2495, 0.013094, 0.000000, 0.000000, 0.999914 -2496, 0.009952, 0.000000, 0.000000, 0.999950 -2497, 0.006809, 0.000000, 0.000000, 0.999977 -2498, 0.003666, 0.000000, 0.000000, 0.999993 -2499, 0.000524, 0.000000, 0.000000, 1.000000 -2500, -0.002619, -0.000000, 0.000000, 0.999997 -2501, -0.005761, -0.000000, 0.000000, 0.999983 -2502, -0.008904, -0.000000, 0.000000, 0.999960 -2503, -0.012046, -0.000000, 0.000000, 0.999927 -2504, -0.015189, -0.000000, 0.000000, 0.999885 -2505, -0.018331, -0.000000, 0.000000, 0.999832 -2506, -0.021473, -0.000000, 0.000000, 0.999769 -2507, -0.024615, -0.000000, 0.000000, 0.999697 -2508, -0.027756, -0.000000, 0.000000, 0.999615 -2509, -0.030898, -0.000000, 0.000000, 0.999523 -2510, -0.034039, -0.000000, 0.000000, 0.999421 -2511, -0.037179, -0.000000, 0.000000, 0.999309 -2512, -0.040320, -0.000000, 0.000000, 0.999187 -2513, -0.043459, -0.000000, 0.000000, 0.999055 -2514, -0.046599, -0.000000, 0.000000, 0.998914 -2515, -0.049738, -0.000000, 0.000000, 0.998762 -2516, -0.052876, -0.000000, 0.000000, 0.998601 -2517, -0.056014, -0.000000, 0.000000, 0.998430 -2518, -0.059152, -0.000000, 0.000000, 0.998249 -2519, -0.062289, -0.000000, 0.000000, 0.998058 -2520, -0.065425, -0.000000, 0.000000, 0.997857 -2521, -0.068560, -0.000000, 0.000000, 0.997647 -2522, -0.071695, -0.000000, 0.000000, 0.997427 -2523, -0.074830, -0.000000, 0.000000, 0.997196 -2524, -0.077963, -0.000000, 0.000000, 0.996956 -2525, -0.081096, -0.000000, 0.000000, 0.996706 -2526, -0.084228, -0.000000, 0.000000, 0.996447 -2527, -0.087359, -0.000000, 0.000000, 0.996177 -2528, -0.090489, -0.000000, 0.000000, 0.995897 -2529, -0.093618, -0.000000, 0.000000, 0.995608 -2530, -0.096747, -0.000000, 0.000000, 0.995309 -2531, -0.099874, -0.000000, 0.000000, 0.995000 -2532, -0.103000, -0.000000, 0.000000, 0.994681 -2533, -0.106126, -0.000000, 0.000000, 0.994353 -2534, -0.109250, -0.000000, 0.000000, 0.994014 -2535, -0.112373, -0.000000, 0.000000, 0.993666 -2536, -0.115496, -0.000000, 0.000000, 0.993308 -2537, -0.118617, -0.000000, 0.000000, 0.992940 -2538, -0.121736, -0.000000, 0.000000, 0.992562 -2539, -0.124855, -0.000000, 0.000000, 0.992175 -2540, -0.127973, -0.000000, 0.000000, 0.991778 -2541, -0.131089, -0.000000, 0.000000, 0.991371 -2542, -0.134204, -0.000000, 0.000000, 0.990954 -2543, -0.137317, -0.000000, 0.000000, 0.990527 -2544, -0.140429, -0.000000, 0.000000, 0.990091 -2545, -0.143540, -0.000000, 0.000000, 0.989644 -2546, -0.146650, -0.000000, 0.000000, 0.989189 -2547, -0.149757, -0.000000, 0.000000, 0.988723 -2548, -0.152864, -0.000000, 0.000000, 0.988247 -2549, -0.155969, -0.000000, 0.000000, 0.987762 -2550, -0.159072, -0.000000, 0.000000, 0.987267 -2551, -0.162174, -0.000000, 0.000000, 0.986762 -2552, -0.165274, -0.000000, 0.000000, 0.986248 -2553, -0.168373, -0.000000, 0.000000, 0.985723 -2554, -0.171470, -0.000000, 0.000000, 0.985189 -2555, -0.174565, -0.000000, 0.000000, 0.984646 -2556, -0.177659, -0.000000, 0.000000, 0.984092 -2557, -0.180750, -0.000000, 0.000000, 0.983529 -2558, -0.183840, -0.000000, 0.000000, 0.982956 -2559, -0.186929, -0.000000, 0.000000, 0.982374 -2560, -0.190015, -0.000000, 0.000000, 0.981781 -2561, -0.193099, -0.000000, 0.000000, 0.981179 -2562, -0.196182, -0.000000, 0.000000, 0.980568 -2563, -0.199262, -0.000000, 0.000000, 0.979946 -2564, -0.202341, -0.000000, 0.000000, 0.979315 -2565, -0.205418, -0.000000, 0.000000, 0.978674 -2566, -0.208492, -0.000000, 0.000000, 0.978024 -2567, -0.211565, -0.000000, 0.000000, 0.977364 -2568, -0.214635, -0.000000, 0.000000, 0.976694 -2569, -0.217704, -0.000000, 0.000000, 0.976015 -2570, -0.220770, -0.000000, 0.000000, 0.975326 -2571, -0.223834, -0.000000, 0.000000, 0.974627 -2572, -0.226896, -0.000000, 0.000000, 0.973919 -2573, -0.229955, -0.000000, 0.000000, 0.973201 -2574, -0.233012, -0.000000, 0.000000, 0.972474 -2575, -0.236067, -0.000000, 0.000000, 0.971737 -2576, -0.239120, -0.000000, 0.000000, 0.970990 -2577, -0.242170, -0.000000, 0.000000, 0.970234 -2578, -0.245218, -0.000000, 0.000000, 0.969468 -2579, -0.248264, -0.000000, 0.000000, 0.968692 -2580, -0.251307, -0.000000, 0.000000, 0.967907 -2581, -0.254347, -0.000000, 0.000000, 0.967113 -2582, -0.257385, -0.000000, 0.000000, 0.966309 -2583, -0.260421, -0.000000, 0.000000, 0.965495 -2584, -0.263454, -0.000000, 0.000000, 0.964672 -2585, -0.266484, -0.000000, 0.000000, 0.963839 -2586, -0.269512, -0.000000, 0.000000, 0.962997 -2587, -0.272537, -0.000000, 0.000000, 0.962145 -2588, -0.275559, -0.000000, 0.000000, 0.961284 -2589, -0.278579, -0.000000, 0.000000, 0.960413 -2590, -0.281595, -0.000000, 0.000000, 0.959533 -2591, -0.284610, -0.000000, 0.000000, 0.958644 -2592, -0.287621, -0.000000, 0.000000, 0.957744 -2593, -0.290629, -0.000000, 0.000000, 0.956836 -2594, -0.293635, -0.000000, 0.000000, 0.955918 -2595, -0.296637, -0.000000, 0.000000, 0.954990 -2596, -0.299637, -0.000000, 0.000000, 0.954053 -2597, -0.302634, -0.000000, 0.000000, 0.953107 -2598, -0.305628, -0.000000, 0.000000, 0.952151 -2599, -0.308618, -0.000000, 0.000000, 0.951186 -2600, -0.311606, -0.000000, 0.000000, 0.950211 -2601, -0.314591, -0.000000, 0.000000, 0.949227 -2602, -0.317572, -0.000000, 0.000000, 0.948234 -2603, -0.320551, -0.000000, 0.000000, 0.947231 -2604, -0.323526, -0.000000, 0.000000, 0.946219 -2605, -0.326498, -0.000000, 0.000000, 0.945198 -2606, -0.329467, -0.000000, 0.000000, 0.944167 -2607, -0.332432, -0.000000, 0.000000, 0.943127 -2608, -0.335395, -0.000000, 0.000000, 0.942078 -2609, -0.338354, -0.000000, 0.000000, 0.941019 -2610, -0.341309, -0.000000, 0.000000, 0.939951 -2611, -0.344261, -0.000000, 0.000000, 0.938874 -2612, -0.347210, -0.000000, 0.000000, 0.937787 -2613, -0.350156, -0.000000, 0.000000, 0.936692 -2614, -0.353098, -0.000000, 0.000000, 0.935587 -2615, -0.356036, -0.000000, 0.000000, 0.934472 -2616, -0.358971, -0.000000, 0.000000, 0.933349 -2617, -0.361902, -0.000000, 0.000000, 0.932216 -2618, -0.364830, -0.000000, 0.000000, 0.931074 -2619, -0.367754, -0.000000, 0.000000, 0.929923 -2620, -0.370675, -0.000000, 0.000000, 0.928763 -2621, -0.373592, -0.000000, 0.000000, 0.927593 -2622, -0.376505, -0.000000, 0.000000, 0.926415 -2623, -0.379415, -0.000000, 0.000000, 0.925227 -2624, -0.382320, -0.000000, 0.000000, 0.924030 -2625, -0.385222, -0.000000, 0.000000, 0.922824 -2626, -0.388121, -0.000000, 0.000000, 0.921609 -2627, -0.391015, -0.000000, 0.000000, 0.920384 -2628, -0.393906, -0.000000, 0.000000, 0.919151 -2629, -0.396792, -0.000000, 0.000000, 0.917908 -2630, -0.399675, -0.000000, 0.000000, 0.916657 -2631, -0.402554, -0.000000, 0.000000, 0.915396 -2632, -0.405428, -0.000000, 0.000000, 0.914127 -2633, -0.408299, -0.000000, 0.000000, 0.912848 -2634, -0.411166, -0.000000, 0.000000, 0.911561 -2635, -0.414029, -0.000000, 0.000000, 0.910264 -2636, -0.416887, -0.000000, 0.000000, 0.908958 -2637, -0.419742, -0.000000, 0.000000, 0.907644 -2638, -0.422592, -0.000000, 0.000000, 0.906320 -2639, -0.425438, -0.000000, 0.000000, 0.904988 -2640, -0.428280, -0.000000, 0.000000, 0.903646 -2641, -0.431118, -0.000000, 0.000000, 0.902296 -2642, -0.433951, -0.000000, 0.000000, 0.900936 -2643, -0.436780, -0.000000, 0.000000, 0.899568 -2644, -0.439605, -0.000000, 0.000000, 0.898191 -2645, -0.442426, -0.000000, 0.000000, 0.896805 -2646, -0.445242, -0.000000, 0.000000, 0.895410 -2647, -0.448054, -0.000000, 0.000000, 0.894007 -2648, -0.450861, -0.000000, 0.000000, 0.892594 -2649, -0.453664, -0.000000, 0.000000, 0.891173 -2650, -0.456462, -0.000000, 0.000000, 0.889743 -2651, -0.459256, -0.000000, 0.000000, 0.888304 -2652, -0.462045, -0.000000, 0.000000, 0.886856 -2653, -0.464830, -0.000000, 0.000000, 0.885400 -2654, -0.467610, -0.000000, 0.000000, 0.883935 -2655, -0.470386, -0.000000, 0.000000, 0.882461 -2656, -0.473157, -0.000000, 0.000000, 0.880978 -2657, -0.475923, -0.000000, 0.000000, 0.879487 -2658, -0.478685, -0.000000, 0.000000, 0.877987 -2659, -0.481442, -0.000000, 0.000000, 0.876478 -2660, -0.484194, -0.000000, 0.000000, 0.874961 -2661, -0.486941, -0.000000, 0.000000, 0.873435 -2662, -0.489683, -0.000000, 0.000000, 0.871900 -2663, -0.492421, -0.000000, 0.000000, 0.870357 -2664, -0.495154, -0.000000, 0.000000, 0.868805 -2665, -0.497882, -0.000000, 0.000000, 0.867245 -2666, -0.500605, -0.000000, 0.000000, 0.865676 -2667, -0.503323, -0.000000, 0.000000, 0.864099 -2668, -0.506036, -0.000000, 0.000000, 0.862512 -2669, -0.508744, -0.000000, 0.000000, 0.860918 -2670, -0.511447, -0.000000, 0.000000, 0.859315 -2671, -0.514145, -0.000000, 0.000000, 0.857703 -2672, -0.516838, -0.000000, 0.000000, 0.856083 -2673, -0.519526, -0.000000, 0.000000, 0.854455 -2674, -0.522208, -0.000000, 0.000000, 0.852818 -2675, -0.524886, -0.000000, 0.000000, 0.851173 -2676, -0.527558, -0.000000, 0.000000, 0.849519 -2677, -0.530225, -0.000000, 0.000000, 0.847857 -2678, -0.532887, -0.000000, 0.000000, 0.846186 -2679, -0.535544, -0.000000, 0.000000, 0.844507 -2680, -0.538195, -0.000000, 0.000000, 0.842820 -2681, -0.540841, -0.000000, 0.000000, 0.841125 -2682, -0.543482, -0.000000, 0.000000, 0.839421 -2683, -0.546117, -0.000000, 0.000000, 0.837709 -2684, -0.548747, -0.000000, 0.000000, 0.835988 -2685, -0.551371, -0.000000, 0.000000, 0.834260 -2686, -0.553991, -0.000000, 0.000000, 0.832523 -2687, -0.556604, -0.000000, 0.000000, 0.830778 -2688, -0.559212, -0.000000, 0.000000, 0.829025 -2689, -0.561815, -0.000000, 0.000000, 0.827263 -2690, -0.564412, -0.000000, 0.000000, 0.825493 -2691, -0.567003, -0.000000, 0.000000, 0.823716 -2692, -0.569589, -0.000000, 0.000000, 0.821930 -2693, -0.572169, -0.000000, 0.000000, 0.820136 -2694, -0.574744, -0.000000, 0.000000, 0.818333 -2695, -0.577313, -0.000000, 0.000000, 0.816523 -2696, -0.579876, -0.000000, 0.000000, 0.814705 -2697, -0.582433, -0.000000, 0.000000, 0.812878 -2698, -0.584985, -0.000000, 0.000000, 0.811044 -2699, -0.587531, -0.000000, 0.000000, 0.809202 -2700, -0.590071, -0.000000, 0.000000, 0.807351 -2701, -0.592605, -0.000000, 0.000000, 0.805493 -2702, -0.595134, -0.000000, 0.000000, 0.803627 -2703, -0.597656, -0.000000, 0.000000, 0.801752 -2704, -0.600173, -0.000000, 0.000000, 0.799870 -2705, -0.602684, -0.000000, 0.000000, 0.797980 -2706, -0.605189, -0.000000, 0.000000, 0.796082 -2707, -0.607687, -0.000000, 0.000000, 0.794176 -2708, -0.610180, -0.000000, 0.000000, 0.792263 -2709, -0.612667, -0.000000, 0.000000, 0.790341 -2710, -0.615148, -0.000000, 0.000000, 0.788412 -2711, -0.617622, -0.000000, 0.000000, 0.786475 -2712, -0.620091, -0.000000, 0.000000, 0.784530 -2713, -0.622553, -0.000000, 0.000000, 0.782577 -2714, -0.625010, -0.000000, 0.000000, 0.780617 -2715, -0.627460, -0.000000, 0.000000, 0.778649 -2716, -0.629904, -0.000000, 0.000000, 0.776673 -2717, -0.632341, -0.000000, 0.000000, 0.774690 -2718, -0.634773, -0.000000, 0.000000, 0.772699 -2719, -0.637198, -0.000000, 0.000000, 0.770700 -2720, -0.639617, -0.000000, 0.000000, 0.768694 -2721, -0.642029, -0.000000, 0.000000, 0.766680 -2722, -0.644436, -0.000000, 0.000000, 0.764659 -2723, -0.646835, -0.000000, 0.000000, 0.762630 -2724, -0.649229, -0.000000, 0.000000, 0.760593 -2725, -0.651616, -0.000000, 0.000000, 0.758549 -2726, -0.653997, -0.000000, 0.000000, 0.756497 -2727, -0.656371, -0.000000, 0.000000, 0.754438 -2728, -0.658739, -0.000000, 0.000000, 0.752372 -2729, -0.661100, -0.000000, 0.000000, 0.750298 -2730, -0.663454, -0.000000, 0.000000, 0.748217 -2731, -0.665802, -0.000000, 0.000000, 0.746128 -2732, -0.668144, -0.000000, 0.000000, 0.744032 -2733, -0.670479, -0.000000, 0.000000, 0.741929 -2734, -0.672807, -0.000000, 0.000000, 0.739818 -2735, -0.675129, -0.000000, 0.000000, 0.737700 -2736, -0.677444, -0.000000, 0.000000, 0.735575 -2737, -0.679752, -0.000000, 0.000000, 0.733442 -2738, -0.682054, -0.000000, 0.000000, 0.731302 -2739, -0.684349, -0.000000, 0.000000, 0.729155 -2740, -0.686637, -0.000000, 0.000000, 0.727001 -2741, -0.688918, -0.000000, 0.000000, 0.724839 -2742, -0.691192, -0.000000, 0.000000, 0.722671 -2743, -0.693460, -0.000000, 0.000000, 0.720495 -2744, -0.695721, -0.000000, 0.000000, 0.718312 -2745, -0.697975, -0.000000, 0.000000, 0.716122 -2746, -0.700222, -0.000000, 0.000000, 0.713925 -2747, -0.702462, -0.000000, 0.000000, 0.711721 -2748, -0.704695, -0.000000, 0.000000, 0.709510 -2749, -0.706922, -0.000000, 0.000000, 0.707292 -2750, -0.709141, -0.000000, 0.000000, 0.705067 -2751, -0.711353, -0.000000, 0.000000, 0.702835 -2752, -0.713558, -0.000000, 0.000000, 0.700596 -2753, -0.715757, -0.000000, 0.000000, 0.698350 -2754, -0.717948, -0.000000, 0.000000, 0.696097 -2755, -0.720132, -0.000000, 0.000000, 0.693837 -2756, -0.722309, -0.000000, 0.000000, 0.691571 -2757, -0.724478, -0.000000, 0.000000, 0.689297 -2758, -0.726641, -0.000000, 0.000000, 0.687017 -2759, -0.728797, -0.000000, 0.000000, 0.684730 -2760, -0.730945, -0.000000, 0.000000, 0.682437 -2761, -0.733086, -0.000000, 0.000000, 0.680136 -2762, -0.735220, -0.000000, 0.000000, 0.677829 -2763, -0.737346, -0.000000, 0.000000, 0.675515 -2764, -0.739465, -0.000000, 0.000000, 0.673195 -2765, -0.741577, -0.000000, 0.000000, 0.670867 -2766, -0.743682, -0.000000, 0.000000, 0.668534 -2767, -0.745779, -0.000000, 0.000000, 0.666193 -2768, -0.747869, -0.000000, 0.000000, 0.663846 -2769, -0.749952, -0.000000, 0.000000, 0.661493 -2770, -0.752027, -0.000000, 0.000000, 0.659132 -2771, -0.754095, -0.000000, 0.000000, 0.656766 -2772, -0.756155, -0.000000, 0.000000, 0.654393 -2773, -0.758208, -0.000000, 0.000000, 0.652013 -2774, -0.760253, -0.000000, 0.000000, 0.649627 -2775, -0.762291, -0.000000, 0.000000, 0.647235 -2776, -0.764321, -0.000000, 0.000000, 0.644836 -2777, -0.766344, -0.000000, 0.000000, 0.642431 -2778, -0.768359, -0.000000, 0.000000, 0.640019 -2779, -0.770366, -0.000000, 0.000000, 0.637602 -2780, -0.772366, -0.000000, 0.000000, 0.635177 -2781, -0.774359, -0.000000, 0.000000, 0.632747 -2782, -0.776343, -0.000000, 0.000000, 0.630310 -2783, -0.778320, -0.000000, 0.000000, 0.627867 -2784, -0.780290, -0.000000, 0.000000, 0.625418 -2785, -0.782251, -0.000000, 0.000000, 0.622963 -2786, -0.784205, -0.000000, 0.000000, 0.620502 -2787, -0.786151, -0.000000, 0.000000, 0.618034 -2788, -0.788090, -0.000000, 0.000000, 0.615561 -2789, -0.790020, -0.000000, 0.000000, 0.613081 -2790, -0.791943, -0.000000, 0.000000, 0.610595 -2791, -0.793858, -0.000000, 0.000000, 0.608103 -2792, -0.795765, -0.000000, 0.000000, 0.605605 -2793, -0.797664, -0.000000, 0.000000, 0.603102 -2794, -0.799556, -0.000000, 0.000000, 0.600592 -2795, -0.801439, -0.000000, 0.000000, 0.598076 -2796, -0.803315, -0.000000, 0.000000, 0.595555 -2797, -0.805182, -0.000000, 0.000000, 0.593027 -2798, -0.807042, -0.000000, 0.000000, 0.590494 -2799, -0.808894, -0.000000, 0.000000, 0.587955 -2800, -0.810738, -0.000000, 0.000000, 0.585410 -2801, -0.812573, -0.000000, 0.000000, 0.582859 -2802, -0.814401, -0.000000, 0.000000, 0.580303 -2803, -0.816221, -0.000000, 0.000000, 0.577740 -2804, -0.818032, -0.000000, 0.000000, 0.575172 -2805, -0.819836, -0.000000, 0.000000, 0.572599 -2806, -0.821631, -0.000000, 0.000000, 0.570019 -2807, -0.823418, -0.000000, 0.000000, 0.567435 -2808, -0.825198, -0.000000, 0.000000, 0.564844 -2809, -0.826969, -0.000000, 0.000000, 0.562248 -2810, -0.828732, -0.000000, 0.000000, 0.559646 -2811, -0.830486, -0.000000, 0.000000, 0.557039 -2812, -0.832233, -0.000000, 0.000000, 0.554427 -2813, -0.833971, -0.000000, 0.000000, 0.551808 -2814, -0.835701, -0.000000, 0.000000, 0.549185 -2815, -0.837423, -0.000000, 0.000000, 0.546556 -2816, -0.839136, -0.000000, 0.000000, 0.543921 -2817, -0.840841, -0.000000, 0.000000, 0.541282 -2818, -0.842538, -0.000000, 0.000000, 0.538636 -2819, -0.844227, -0.000000, 0.000000, 0.535986 -2820, -0.845907, -0.000000, 0.000000, 0.533330 -2821, -0.847579, -0.000000, 0.000000, 0.530669 -2822, -0.849243, -0.000000, 0.000000, 0.528003 -2823, -0.850898, -0.000000, 0.000000, 0.525332 -2824, -0.852544, -0.000000, 0.000000, 0.522655 -2825, -0.854183, -0.000000, 0.000000, 0.519973 -2826, -0.855813, -0.000000, 0.000000, 0.517286 -2827, -0.857434, -0.000000, 0.000000, 0.514594 -2828, -0.859047, -0.000000, 0.000000, 0.511897 -2829, -0.860651, -0.000000, 0.000000, 0.509195 -2830, -0.862247, -0.000000, 0.000000, 0.506487 -2831, -0.863835, -0.000000, 0.000000, 0.503775 -2832, -0.865414, -0.000000, 0.000000, 0.501058 -2833, -0.866984, -0.000000, 0.000000, 0.498336 -2834, -0.868546, -0.000000, 0.000000, 0.495609 -2835, -0.870099, -0.000000, 0.000000, 0.492877 -2836, -0.871644, -0.000000, 0.000000, 0.490140 -2837, -0.873180, -0.000000, 0.000000, 0.487398 -2838, -0.874707, -0.000000, 0.000000, 0.484652 -2839, -0.876226, -0.000000, 0.000000, 0.481901 -2840, -0.877736, -0.000000, 0.000000, 0.479145 -2841, -0.879237, -0.000000, 0.000000, 0.476384 -2842, -0.880730, -0.000000, 0.000000, 0.473618 -2843, -0.882214, -0.000000, 0.000000, 0.470848 -2844, -0.883690, -0.000000, 0.000000, 0.468073 -2845, -0.885156, -0.000000, 0.000000, 0.465294 -2846, -0.886614, -0.000000, 0.000000, 0.462510 -2847, -0.888063, -0.000000, 0.000000, 0.459721 -2848, -0.889504, -0.000000, 0.000000, 0.456928 -2849, -0.890935, -0.000000, 0.000000, 0.454130 -2850, -0.892358, -0.000000, 0.000000, 0.451328 -2851, -0.893772, -0.000000, 0.000000, 0.448522 -2852, -0.895177, -0.000000, 0.000000, 0.445711 -2853, -0.896573, -0.000000, 0.000000, 0.442895 -2854, -0.897961, -0.000000, 0.000000, 0.440076 -2855, -0.899339, -0.000000, 0.000000, 0.437251 -2856, -0.900709, -0.000000, 0.000000, 0.434423 -2857, -0.902070, -0.000000, 0.000000, 0.431590 -2858, -0.903422, -0.000000, 0.000000, 0.428753 -2859, -0.904765, -0.000000, 0.000000, 0.425912 -2860, -0.906099, -0.000000, 0.000000, 0.423067 -2861, -0.907424, -0.000000, 0.000000, 0.420217 -2862, -0.908740, -0.000000, 0.000000, 0.417363 -2863, -0.910047, -0.000000, 0.000000, 0.414505 -2864, -0.911345, -0.000000, 0.000000, 0.411643 -2865, -0.912634, -0.000000, 0.000000, 0.408777 -2866, -0.913914, -0.000000, 0.000000, 0.405907 -2867, -0.915185, -0.000000, 0.000000, 0.403033 -2868, -0.916448, -0.000000, 0.000000, 0.400155 -2869, -0.917701, -0.000000, 0.000000, 0.397273 -2870, -0.918944, -0.000000, 0.000000, 0.394387 -2871, -0.920179, -0.000000, 0.000000, 0.391497 -2872, -0.921405, -0.000000, 0.000000, 0.388603 -2873, -0.922622, -0.000000, 0.000000, 0.385706 -2874, -0.923829, -0.000000, 0.000000, 0.382804 -2875, -0.925028, -0.000000, 0.000000, 0.379899 -2876, -0.926217, -0.000000, 0.000000, 0.376990 -2877, -0.927397, -0.000000, 0.000000, 0.374078 -2878, -0.928568, -0.000000, 0.000000, 0.371161 -2879, -0.929730, -0.000000, 0.000000, 0.368241 -2880, -0.930883, -0.000000, 0.000000, 0.365318 -2881, -0.932026, -0.000000, 0.000000, 0.362391 -2882, -0.933161, -0.000000, 0.000000, 0.359460 -2883, -0.934286, -0.000000, 0.000000, 0.356525 -2884, -0.935401, -0.000000, 0.000000, 0.353588 -2885, -0.936508, -0.000000, 0.000000, 0.350646 -2886, -0.937605, -0.000000, 0.000000, 0.347701 -2887, -0.938693, -0.000000, 0.000000, 0.344753 -2888, -0.939772, -0.000000, 0.000000, 0.341801 -2889, -0.940842, -0.000000, 0.000000, 0.338846 -2890, -0.941902, -0.000000, 0.000000, 0.335888 -2891, -0.942953, -0.000000, 0.000000, 0.332926 -2892, -0.943994, -0.000000, 0.000000, 0.329961 -2893, -0.945027, -0.000000, 0.000000, 0.326993 -2894, -0.946050, -0.000000, 0.000000, 0.324021 -2895, -0.947063, -0.000000, 0.000000, 0.321047 -2896, -0.948068, -0.000000, 0.000000, 0.318069 -2897, -0.949062, -0.000000, 0.000000, 0.315088 -2898, -0.950048, -0.000000, 0.000000, 0.312104 -2899, -0.951024, -0.000000, 0.000000, 0.309117 -2900, -0.951991, -0.000000, 0.000000, 0.306126 -2901, -0.952948, -0.000000, 0.000000, 0.303133 -2902, -0.953896, -0.000000, 0.000000, 0.300137 -2903, -0.954835, -0.000000, 0.000000, 0.297138 -2904, -0.955764, -0.000000, 0.000000, 0.294135 -2905, -0.956683, -0.000000, 0.000000, 0.291130 -2906, -0.957594, -0.000000, 0.000000, 0.288122 -2907, -0.958494, -0.000000, 0.000000, 0.285112 -2908, -0.959386, -0.000000, 0.000000, 0.282098 -2909, -0.960267, -0.000000, 0.000000, 0.279082 -2910, -0.961140, -0.000000, 0.000000, 0.276062 -2911, -0.962003, -0.000000, 0.000000, 0.273041 -2912, -0.962856, -0.000000, 0.000000, 0.270016 -2913, -0.963700, -0.000000, 0.000000, 0.266989 -2914, -0.964534, -0.000000, 0.000000, 0.263959 -2915, -0.965359, -0.000000, 0.000000, 0.260926 -2916, -0.966174, -0.000000, 0.000000, 0.257891 -2917, -0.966980, -0.000000, 0.000000, 0.254854 -2918, -0.967776, -0.000000, 0.000000, 0.251814 -2919, -0.968562, -0.000000, 0.000000, 0.248771 -2920, -0.969339, -0.000000, 0.000000, 0.245726 -2921, -0.970107, -0.000000, 0.000000, 0.242678 -2922, -0.970865, -0.000000, 0.000000, 0.239629 -2923, -0.971613, -0.000000, 0.000000, 0.236576 -2924, -0.972352, -0.000000, 0.000000, 0.233522 -2925, -0.973081, -0.000000, 0.000000, 0.230465 -2926, -0.973800, -0.000000, 0.000000, 0.227406 -2927, -0.974510, -0.000000, 0.000000, 0.224344 -2928, -0.975210, -0.000000, 0.000000, 0.221281 -2929, -0.975901, -0.000000, 0.000000, 0.218215 -2930, -0.976582, -0.000000, 0.000000, 0.215147 -2931, -0.977253, -0.000000, 0.000000, 0.212077 -2932, -0.977915, -0.000000, 0.000000, 0.209005 -2933, -0.978567, -0.000000, 0.000000, 0.205930 -2934, -0.979209, -0.000000, 0.000000, 0.202854 -2935, -0.979842, -0.000000, 0.000000, 0.199776 -2936, -0.980465, -0.000000, 0.000000, 0.196695 -2937, -0.981078, -0.000000, 0.000000, 0.193613 -2938, -0.981682, -0.000000, 0.000000, 0.190529 -2939, -0.982275, -0.000000, 0.000000, 0.187443 -2940, -0.982860, -0.000000, 0.000000, 0.184355 -2941, -0.983434, -0.000000, 0.000000, 0.181266 -2942, -0.983999, -0.000000, 0.000000, 0.178174 -2943, -0.984554, -0.000000, 0.000000, 0.175081 -2944, -0.985099, -0.000000, 0.000000, 0.171986 -2945, -0.985635, -0.000000, 0.000000, 0.168889 -2946, -0.986161, -0.000000, 0.000000, 0.165791 -2947, -0.986677, -0.000000, 0.000000, 0.162691 -2948, -0.987183, -0.000000, 0.000000, 0.159589 -2949, -0.987680, -0.000000, 0.000000, 0.156486 -2950, -0.988167, -0.000000, 0.000000, 0.153382 -2951, -0.988644, -0.000000, 0.000000, 0.150275 -2952, -0.989112, -0.000000, 0.000000, 0.147168 -2953, -0.989569, -0.000000, 0.000000, 0.144058 -2954, -0.990017, -0.000000, 0.000000, 0.140948 -2955, -0.990455, -0.000000, 0.000000, 0.137836 -2956, -0.990883, -0.000000, 0.000000, 0.134723 -2957, -0.991302, -0.000000, 0.000000, 0.131608 -2958, -0.991711, -0.000000, 0.000000, 0.128492 -2959, -0.992109, -0.000000, 0.000000, 0.125375 -2960, -0.992499, -0.000000, 0.000000, 0.122256 -2961, -0.992878, -0.000000, 0.000000, 0.119137 -2962, -0.993247, -0.000000, 0.000000, 0.116016 -2963, -0.993607, -0.000000, 0.000000, 0.112894 -2964, -0.993957, -0.000000, 0.000000, 0.109771 -2965, -0.994297, -0.000000, 0.000000, 0.106647 -2966, -0.994627, -0.000000, 0.000000, 0.103521 -2967, -0.994948, -0.000000, 0.000000, 0.100395 -2968, -0.995258, -0.000000, 0.000000, 0.097268 -2969, -0.995559, -0.000000, 0.000000, 0.094140 -2970, -0.995850, -0.000000, 0.000000, 0.091010 -2971, -0.996131, -0.000000, 0.000000, 0.087880 -2972, -0.996402, -0.000000, 0.000000, 0.084750 -2973, -0.996664, -0.000000, 0.000000, 0.081618 -2974, -0.996915, -0.000000, 0.000000, 0.078485 -2975, -0.997157, -0.000000, 0.000000, 0.075352 -2976, -0.997389, -0.000000, 0.000000, 0.072218 -2977, -0.997611, -0.000000, 0.000000, 0.069083 -2978, -0.997823, -0.000000, 0.000000, 0.065948 -2979, -0.998025, -0.000000, 0.000000, 0.062811 -2980, -0.998218, -0.000000, 0.000000, 0.059675 -2981, -0.998400, -0.000000, 0.000000, 0.056537 -2982, -0.998573, -0.000000, 0.000000, 0.053399 -2983, -0.998736, -0.000000, 0.000000, 0.050261 -2984, -0.998889, -0.000000, 0.000000, 0.047122 -2985, -0.999032, -0.000000, 0.000000, 0.043983 -2986, -0.999166, -0.000000, 0.000000, 0.040843 -2987, -0.999289, -0.000000, 0.000000, 0.037703 -2988, -0.999403, -0.000000, 0.000000, 0.034562 -2989, -0.999506, -0.000000, 0.000000, 0.031421 -2990, -0.999600, -0.000000, 0.000000, 0.028280 -2991, -0.999684, -0.000000, 0.000000, 0.025138 -2992, -0.999758, -0.000000, 0.000000, 0.021997 -2993, -0.999822, -0.000000, 0.000000, 0.018855 -2994, -0.999877, -0.000000, 0.000000, 0.015713 -2995, -0.999921, -0.000000, 0.000000, 0.012570 -2996, -0.999956, -0.000000, 0.000000, 0.009428 -2997, -0.999980, -0.000000, 0.000000, 0.006285 -2998, -0.999995, -0.000000, 0.000000, 0.003143 -2999, -1.000000, -0.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 0.999995, 0.000000, 0.000000, 0.003143 + 0.999980, 0.000000, 0.000000, 0.006285 + 0.999956, 0.000000, 0.000000, 0.009428 + 0.999921, 0.000000, 0.000000, 0.012570 + 0.999877, 0.000000, 0.000000, 0.015713 + 0.999822, 0.000000, 0.000000, 0.018855 + 0.999758, 0.000000, 0.000000, 0.021997 + 0.999684, 0.000000, 0.000000, 0.025138 + 0.999600, 0.000000, 0.000000, 0.028280 + 0.999506, 0.000000, 0.000000, 0.031421 + 0.999403, 0.000000, 0.000000, 0.034562 + 0.999289, 0.000000, 0.000000, 0.037703 + 0.999166, 0.000000, 0.000000, 0.040843 + 0.999032, 0.000000, 0.000000, 0.043983 + 0.998889, 0.000000, 0.000000, 0.047122 + 0.998736, 0.000000, 0.000000, 0.050261 + 0.998573, 0.000000, 0.000000, 0.053399 + 0.998400, 0.000000, 0.000000, 0.056537 + 0.998218, 0.000000, 0.000000, 0.059675 + 0.998025, 0.000000, 0.000000, 0.062811 + 0.997823, 0.000000, 0.000000, 0.065948 + 0.997611, 0.000000, 0.000000, 0.069083 + 0.997389, 0.000000, 0.000000, 0.072218 + 0.997157, 0.000000, 0.000000, 0.075352 + 0.996915, 0.000000, 0.000000, 0.078485 + 0.996664, 0.000000, 0.000000, 0.081618 + 0.996402, 0.000000, 0.000000, 0.084750 + 0.996131, 0.000000, 0.000000, 0.087880 + 0.995850, 0.000000, 0.000000, 0.091010 + 0.995559, 0.000000, 0.000000, 0.094140 + 0.995258, 0.000000, 0.000000, 0.097268 + 0.994948, 0.000000, 0.000000, 0.100395 + 0.994627, 0.000000, 0.000000, 0.103521 + 0.994297, 0.000000, 0.000000, 0.106647 + 0.993957, 0.000000, 0.000000, 0.109771 + 0.993607, 0.000000, 0.000000, 0.112894 + 0.993247, 0.000000, 0.000000, 0.116016 + 0.992878, 0.000000, 0.000000, 0.119137 + 0.992499, 0.000000, 0.000000, 0.122256 + 0.992109, 0.000000, 0.000000, 0.125375 + 0.991711, 0.000000, 0.000000, 0.128492 + 0.991302, 0.000000, 0.000000, 0.131608 + 0.990883, 0.000000, 0.000000, 0.134723 + 0.990455, 0.000000, 0.000000, 0.137836 + 0.990017, 0.000000, 0.000000, 0.140948 + 0.989569, 0.000000, 0.000000, 0.144058 + 0.989112, 0.000000, 0.000000, 0.147168 + 0.988644, 0.000000, 0.000000, 0.150275 + 0.988167, 0.000000, 0.000000, 0.153382 + 0.987680, 0.000000, 0.000000, 0.156486 + 0.987183, 0.000000, 0.000000, 0.159589 + 0.986677, 0.000000, 0.000000, 0.162691 + 0.986161, 0.000000, 0.000000, 0.165791 + 0.985635, 0.000000, 0.000000, 0.168889 + 0.985099, 0.000000, 0.000000, 0.171986 + 0.984554, 0.000000, 0.000000, 0.175081 + 0.983999, 0.000000, 0.000000, 0.178174 + 0.983434, 0.000000, 0.000000, 0.181266 + 0.982860, 0.000000, 0.000000, 0.184355 + 0.982275, 0.000000, 0.000000, 0.187443 + 0.981682, 0.000000, 0.000000, 0.190529 + 0.981078, 0.000000, 0.000000, 0.193613 + 0.980465, 0.000000, 0.000000, 0.196695 + 0.979842, 0.000000, 0.000000, 0.199776 + 0.979209, 0.000000, 0.000000, 0.202854 + 0.978567, 0.000000, 0.000000, 0.205930 + 0.977915, 0.000000, 0.000000, 0.209005 + 0.977253, 0.000000, 0.000000, 0.212077 + 0.976582, 0.000000, 0.000000, 0.215147 + 0.975901, 0.000000, 0.000000, 0.218215 + 0.975210, 0.000000, 0.000000, 0.221281 + 0.974510, 0.000000, 0.000000, 0.224344 + 0.973800, 0.000000, 0.000000, 0.227406 + 0.973081, 0.000000, 0.000000, 0.230465 + 0.972352, 0.000000, 0.000000, 0.233522 + 0.971613, 0.000000, 0.000000, 0.236576 + 0.970865, 0.000000, 0.000000, 0.239629 + 0.970107, 0.000000, 0.000000, 0.242678 + 0.969339, 0.000000, 0.000000, 0.245726 + 0.968562, 0.000000, 0.000000, 0.248771 + 0.967776, 0.000000, 0.000000, 0.251814 + 0.966980, 0.000000, 0.000000, 0.254854 + 0.966174, 0.000000, 0.000000, 0.257891 + 0.965359, 0.000000, 0.000000, 0.260926 + 0.964534, 0.000000, 0.000000, 0.263959 + 0.963700, 0.000000, 0.000000, 0.266989 + 0.962856, 0.000000, 0.000000, 0.270016 + 0.962003, 0.000000, 0.000000, 0.273041 + 0.961140, 0.000000, 0.000000, 0.276062 + 0.960267, 0.000000, 0.000000, 0.279082 + 0.959386, 0.000000, 0.000000, 0.282098 + 0.958494, 0.000000, 0.000000, 0.285112 + 0.957594, 0.000000, 0.000000, 0.288122 + 0.956683, 0.000000, 0.000000, 0.291130 + 0.955764, 0.000000, 0.000000, 0.294135 + 0.954835, 0.000000, 0.000000, 0.297138 + 0.953896, 0.000000, 0.000000, 0.300137 + 0.952948, 0.000000, 0.000000, 0.303133 + 0.951991, 0.000000, 0.000000, 0.306126 + 0.951024, 0.000000, 0.000000, 0.309117 + 0.950048, 0.000000, 0.000000, 0.312104 + 0.949062, 0.000000, 0.000000, 0.315088 + 0.948068, 0.000000, 0.000000, 0.318069 + 0.947063, 0.000000, 0.000000, 0.321047 + 0.946050, 0.000000, 0.000000, 0.324021 + 0.945027, 0.000000, 0.000000, 0.326993 + 0.943994, 0.000000, 0.000000, 0.329961 + 0.942953, 0.000000, 0.000000, 0.332926 + 0.941902, 0.000000, 0.000000, 0.335888 + 0.940842, 0.000000, 0.000000, 0.338846 + 0.939772, 0.000000, 0.000000, 0.341801 + 0.938693, 0.000000, 0.000000, 0.344753 + 0.937605, 0.000000, 0.000000, 0.347701 + 0.936508, 0.000000, 0.000000, 0.350646 + 0.935401, 0.000000, 0.000000, 0.353588 + 0.934286, 0.000000, 0.000000, 0.356525 + 0.933161, 0.000000, 0.000000, 0.359460 + 0.932026, 0.000000, 0.000000, 0.362391 + 0.930883, 0.000000, 0.000000, 0.365318 + 0.929730, 0.000000, 0.000000, 0.368241 + 0.928568, 0.000000, 0.000000, 0.371161 + 0.927397, 0.000000, 0.000000, 0.374078 + 0.926217, 0.000000, 0.000000, 0.376990 + 0.925028, 0.000000, 0.000000, 0.379899 + 0.923829, 0.000000, 0.000000, 0.382804 + 0.922622, 0.000000, 0.000000, 0.385706 + 0.921405, 0.000000, 0.000000, 0.388603 + 0.920179, 0.000000, 0.000000, 0.391497 + 0.918944, 0.000000, 0.000000, 0.394387 + 0.917701, 0.000000, 0.000000, 0.397273 + 0.916448, 0.000000, 0.000000, 0.400155 + 0.915185, 0.000000, 0.000000, 0.403033 + 0.913914, 0.000000, 0.000000, 0.405907 + 0.912634, 0.000000, 0.000000, 0.408777 + 0.911345, 0.000000, 0.000000, 0.411643 + 0.910047, 0.000000, 0.000000, 0.414505 + 0.908740, 0.000000, 0.000000, 0.417363 + 0.907424, 0.000000, 0.000000, 0.420217 + 0.906099, 0.000000, 0.000000, 0.423067 + 0.904765, 0.000000, 0.000000, 0.425912 + 0.903422, 0.000000, 0.000000, 0.428753 + 0.902070, 0.000000, 0.000000, 0.431590 + 0.900709, 0.000000, 0.000000, 0.434423 + 0.899339, 0.000000, 0.000000, 0.437251 + 0.897961, 0.000000, 0.000000, 0.440076 + 0.896573, 0.000000, 0.000000, 0.442895 + 0.895177, 0.000000, 0.000000, 0.445711 + 0.893772, 0.000000, 0.000000, 0.448522 + 0.892358, 0.000000, 0.000000, 0.451328 + 0.890935, 0.000000, 0.000000, 0.454130 + 0.889504, 0.000000, 0.000000, 0.456928 + 0.888063, 0.000000, 0.000000, 0.459721 + 0.886614, 0.000000, 0.000000, 0.462510 + 0.885156, 0.000000, 0.000000, 0.465294 + 0.883690, 0.000000, 0.000000, 0.468073 + 0.882214, 0.000000, 0.000000, 0.470848 + 0.880730, 0.000000, 0.000000, 0.473618 + 0.879237, 0.000000, 0.000000, 0.476384 + 0.877736, 0.000000, 0.000000, 0.479145 + 0.876226, 0.000000, 0.000000, 0.481901 + 0.874707, 0.000000, 0.000000, 0.484652 + 0.873180, 0.000000, 0.000000, 0.487398 + 0.871644, 0.000000, 0.000000, 0.490140 + 0.870099, 0.000000, 0.000000, 0.492877 + 0.868546, 0.000000, 0.000000, 0.495609 + 0.866984, 0.000000, 0.000000, 0.498336 + 0.865414, 0.000000, 0.000000, 0.501058 + 0.863835, 0.000000, 0.000000, 0.503775 + 0.862247, 0.000000, 0.000000, 0.506487 + 0.860651, 0.000000, 0.000000, 0.509195 + 0.859047, 0.000000, 0.000000, 0.511897 + 0.857434, 0.000000, 0.000000, 0.514594 + 0.855813, 0.000000, 0.000000, 0.517286 + 0.854183, 0.000000, 0.000000, 0.519973 + 0.852544, 0.000000, 0.000000, 0.522655 + 0.850898, 0.000000, 0.000000, 0.525332 + 0.849243, 0.000000, 0.000000, 0.528003 + 0.847579, 0.000000, 0.000000, 0.530669 + 0.845907, 0.000000, 0.000000, 0.533330 + 0.844227, 0.000000, 0.000000, 0.535986 + 0.842538, 0.000000, 0.000000, 0.538636 + 0.840841, 0.000000, 0.000000, 0.541282 + 0.839136, 0.000000, 0.000000, 0.543921 + 0.837423, 0.000000, 0.000000, 0.546556 + 0.835701, 0.000000, 0.000000, 0.549185 + 0.833971, 0.000000, 0.000000, 0.551808 + 0.832233, 0.000000, 0.000000, 0.554427 + 0.830486, 0.000000, 0.000000, 0.557039 + 0.828732, 0.000000, 0.000000, 0.559646 + 0.826969, 0.000000, 0.000000, 0.562248 + 0.825198, 0.000000, 0.000000, 0.564844 + 0.823418, 0.000000, 0.000000, 0.567435 + 0.821631, 0.000000, 0.000000, 0.570019 + 0.819836, 0.000000, 0.000000, 0.572599 + 0.818032, 0.000000, 0.000000, 0.575172 + 0.816221, 0.000000, 0.000000, 0.577740 + 0.814401, 0.000000, 0.000000, 0.580303 + 0.812573, 0.000000, 0.000000, 0.582859 + 0.810738, 0.000000, 0.000000, 0.585410 + 0.808894, 0.000000, 0.000000, 0.587955 + 0.807042, 0.000000, 0.000000, 0.590494 + 0.805182, 0.000000, 0.000000, 0.593027 + 0.803315, 0.000000, 0.000000, 0.595555 + 0.801439, 0.000000, 0.000000, 0.598076 + 0.799556, 0.000000, 0.000000, 0.600592 + 0.797664, 0.000000, 0.000000, 0.603102 + 0.795765, 0.000000, 0.000000, 0.605605 + 0.793858, 0.000000, 0.000000, 0.608103 + 0.791943, 0.000000, 0.000000, 0.610595 + 0.790020, 0.000000, 0.000000, 0.613081 + 0.788090, 0.000000, 0.000000, 0.615561 + 0.786151, 0.000000, 0.000000, 0.618034 + 0.784205, 0.000000, 0.000000, 0.620502 + 0.782251, 0.000000, 0.000000, 0.622963 + 0.780290, 0.000000, 0.000000, 0.625418 + 0.778320, 0.000000, 0.000000, 0.627867 + 0.776343, 0.000000, 0.000000, 0.630310 + 0.774359, 0.000000, 0.000000, 0.632747 + 0.772366, 0.000000, 0.000000, 0.635177 + 0.770366, 0.000000, 0.000000, 0.637602 + 0.768359, 0.000000, 0.000000, 0.640019 + 0.766344, 0.000000, 0.000000, 0.642431 + 0.764321, 0.000000, 0.000000, 0.644836 + 0.762291, 0.000000, 0.000000, 0.647235 + 0.760253, 0.000000, 0.000000, 0.649627 + 0.758208, 0.000000, 0.000000, 0.652013 + 0.756155, 0.000000, 0.000000, 0.654393 + 0.754095, 0.000000, 0.000000, 0.656766 + 0.752027, 0.000000, 0.000000, 0.659132 + 0.749952, 0.000000, 0.000000, 0.661493 + 0.747869, 0.000000, 0.000000, 0.663846 + 0.745779, 0.000000, 0.000000, 0.666193 + 0.743682, 0.000000, 0.000000, 0.668534 + 0.741577, 0.000000, 0.000000, 0.670867 + 0.739465, 0.000000, 0.000000, 0.673195 + 0.737346, 0.000000, 0.000000, 0.675515 + 0.735220, 0.000000, 0.000000, 0.677829 + 0.733086, 0.000000, 0.000000, 0.680136 + 0.730945, 0.000000, 0.000000, 0.682437 + 0.728797, 0.000000, 0.000000, 0.684730 + 0.726641, 0.000000, 0.000000, 0.687017 + 0.724478, 0.000000, 0.000000, 0.689297 + 0.722309, 0.000000, 0.000000, 0.691571 + 0.720132, 0.000000, 0.000000, 0.693837 + 0.717948, 0.000000, 0.000000, 0.696097 + 0.715757, 0.000000, 0.000000, 0.698350 + 0.713558, 0.000000, 0.000000, 0.700596 + 0.711353, 0.000000, 0.000000, 0.702835 + 0.709141, 0.000000, 0.000000, 0.705067 + 0.706922, 0.000000, 0.000000, 0.707292 + 0.704695, 0.000000, 0.000000, 0.709510 + 0.702462, 0.000000, 0.000000, 0.711721 + 0.700222, 0.000000, 0.000000, 0.713925 + 0.697975, 0.000000, 0.000000, 0.716122 + 0.695721, 0.000000, 0.000000, 0.718312 + 0.693460, 0.000000, 0.000000, 0.720495 + 0.691192, 0.000000, 0.000000, 0.722671 + 0.688918, 0.000000, 0.000000, 0.724839 + 0.686637, 0.000000, 0.000000, 0.727001 + 0.684349, 0.000000, 0.000000, 0.729155 + 0.682054, 0.000000, 0.000000, 0.731302 + 0.679752, 0.000000, 0.000000, 0.733442 + 0.677444, 0.000000, 0.000000, 0.735575 + 0.675129, 0.000000, 0.000000, 0.737700 + 0.672807, 0.000000, 0.000000, 0.739818 + 0.670479, 0.000000, 0.000000, 0.741929 + 0.668144, 0.000000, 0.000000, 0.744032 + 0.665802, 0.000000, 0.000000, 0.746128 + 0.663454, 0.000000, 0.000000, 0.748217 + 0.661100, 0.000000, 0.000000, 0.750298 + 0.658739, 0.000000, 0.000000, 0.752372 + 0.656371, 0.000000, 0.000000, 0.754438 + 0.653997, 0.000000, 0.000000, 0.756497 + 0.651616, 0.000000, 0.000000, 0.758549 + 0.649229, 0.000000, 0.000000, 0.760593 + 0.646835, 0.000000, 0.000000, 0.762630 + 0.644436, 0.000000, 0.000000, 0.764659 + 0.642029, 0.000000, 0.000000, 0.766680 + 0.639617, 0.000000, 0.000000, 0.768694 + 0.637198, 0.000000, 0.000000, 0.770700 + 0.634773, 0.000000, 0.000000, 0.772699 + 0.632341, 0.000000, 0.000000, 0.774690 + 0.629904, 0.000000, 0.000000, 0.776673 + 0.627460, 0.000000, 0.000000, 0.778649 + 0.625010, 0.000000, 0.000000, 0.780617 + 0.622553, 0.000000, 0.000000, 0.782577 + 0.620091, 0.000000, 0.000000, 0.784530 + 0.617622, 0.000000, 0.000000, 0.786475 + 0.615148, 0.000000, 0.000000, 0.788412 + 0.612667, 0.000000, 0.000000, 0.790341 + 0.610180, 0.000000, 0.000000, 0.792263 + 0.607687, 0.000000, 0.000000, 0.794176 + 0.605189, 0.000000, 0.000000, 0.796082 + 0.602684, 0.000000, 0.000000, 0.797980 + 0.600173, 0.000000, 0.000000, 0.799870 + 0.597656, 0.000000, 0.000000, 0.801752 + 0.595134, 0.000000, 0.000000, 0.803627 + 0.592605, 0.000000, 0.000000, 0.805493 + 0.590071, 0.000000, 0.000000, 0.807351 + 0.587531, 0.000000, 0.000000, 0.809202 + 0.584985, 0.000000, 0.000000, 0.811044 + 0.582433, 0.000000, 0.000000, 0.812878 + 0.579876, 0.000000, 0.000000, 0.814705 + 0.577313, 0.000000, 0.000000, 0.816523 + 0.574744, 0.000000, 0.000000, 0.818333 + 0.572169, 0.000000, 0.000000, 0.820136 + 0.569589, 0.000000, 0.000000, 0.821930 + 0.567003, 0.000000, 0.000000, 0.823716 + 0.564412, 0.000000, 0.000000, 0.825493 + 0.561815, 0.000000, 0.000000, 0.827263 + 0.559212, 0.000000, 0.000000, 0.829025 + 0.556604, 0.000000, 0.000000, 0.830778 + 0.553991, 0.000000, 0.000000, 0.832523 + 0.551371, 0.000000, 0.000000, 0.834260 + 0.548747, 0.000000, 0.000000, 0.835988 + 0.546117, 0.000000, 0.000000, 0.837709 + 0.543482, 0.000000, 0.000000, 0.839421 + 0.540841, 0.000000, 0.000000, 0.841125 + 0.538195, 0.000000, 0.000000, 0.842820 + 0.535544, 0.000000, 0.000000, 0.844507 + 0.532887, 0.000000, 0.000000, 0.846186 + 0.530225, 0.000000, 0.000000, 0.847857 + 0.527558, 0.000000, 0.000000, 0.849519 + 0.524886, 0.000000, 0.000000, 0.851173 + 0.522208, 0.000000, 0.000000, 0.852818 + 0.519526, 0.000000, 0.000000, 0.854455 + 0.516838, 0.000000, 0.000000, 0.856083 + 0.514145, 0.000000, 0.000000, 0.857703 + 0.511447, 0.000000, 0.000000, 0.859315 + 0.508744, 0.000000, 0.000000, 0.860918 + 0.506036, 0.000000, 0.000000, 0.862512 + 0.503323, 0.000000, 0.000000, 0.864099 + 0.500605, 0.000000, 0.000000, 0.865676 + 0.497882, 0.000000, 0.000000, 0.867245 + 0.495154, 0.000000, 0.000000, 0.868805 + 0.492421, 0.000000, 0.000000, 0.870357 + 0.489683, 0.000000, 0.000000, 0.871900 + 0.486941, 0.000000, 0.000000, 0.873435 + 0.484194, 0.000000, 0.000000, 0.874961 + 0.481442, 0.000000, 0.000000, 0.876478 + 0.478685, 0.000000, 0.000000, 0.877987 + 0.475923, 0.000000, 0.000000, 0.879487 + 0.473157, 0.000000, 0.000000, 0.880978 + 0.470386, 0.000000, 0.000000, 0.882461 + 0.467610, 0.000000, 0.000000, 0.883935 + 0.464830, 0.000000, 0.000000, 0.885400 + 0.462045, 0.000000, 0.000000, 0.886856 + 0.459256, 0.000000, 0.000000, 0.888304 + 0.456462, 0.000000, 0.000000, 0.889743 + 0.453664, 0.000000, 0.000000, 0.891173 + 0.450861, 0.000000, 0.000000, 0.892594 + 0.448054, 0.000000, 0.000000, 0.894007 + 0.445242, 0.000000, 0.000000, 0.895410 + 0.442426, 0.000000, 0.000000, 0.896805 + 0.439605, 0.000000, 0.000000, 0.898191 + 0.436780, 0.000000, 0.000000, 0.899568 + 0.433951, 0.000000, 0.000000, 0.900936 + 0.431118, 0.000000, 0.000000, 0.902296 + 0.428280, 0.000000, 0.000000, 0.903646 + 0.425438, 0.000000, 0.000000, 0.904988 + 0.422592, 0.000000, 0.000000, 0.906320 + 0.419742, 0.000000, 0.000000, 0.907644 + 0.416887, 0.000000, 0.000000, 0.908958 + 0.414029, 0.000000, 0.000000, 0.910264 + 0.411166, 0.000000, 0.000000, 0.911561 + 0.408299, 0.000000, 0.000000, 0.912848 + 0.405428, 0.000000, 0.000000, 0.914127 + 0.402554, 0.000000, 0.000000, 0.915396 + 0.399675, 0.000000, 0.000000, 0.916657 + 0.396792, 0.000000, 0.000000, 0.917908 + 0.393906, 0.000000, 0.000000, 0.919151 + 0.391015, 0.000000, 0.000000, 0.920384 + 0.388121, 0.000000, 0.000000, 0.921609 + 0.385222, 0.000000, 0.000000, 0.922824 + 0.382320, 0.000000, 0.000000, 0.924030 + 0.379415, 0.000000, 0.000000, 0.925227 + 0.376505, 0.000000, 0.000000, 0.926415 + 0.373592, 0.000000, 0.000000, 0.927593 + 0.370675, 0.000000, 0.000000, 0.928763 + 0.367754, 0.000000, 0.000000, 0.929923 + 0.364830, 0.000000, 0.000000, 0.931074 + 0.361902, 0.000000, 0.000000, 0.932216 + 0.358971, 0.000000, 0.000000, 0.933349 + 0.356036, 0.000000, 0.000000, 0.934472 + 0.353098, 0.000000, 0.000000, 0.935587 + 0.350156, 0.000000, 0.000000, 0.936692 + 0.347210, 0.000000, 0.000000, 0.937787 + 0.344261, 0.000000, 0.000000, 0.938874 + 0.341309, 0.000000, 0.000000, 0.939951 + 0.338354, 0.000000, 0.000000, 0.941019 + 0.335395, 0.000000, 0.000000, 0.942078 + 0.332432, 0.000000, 0.000000, 0.943127 + 0.329467, 0.000000, 0.000000, 0.944167 + 0.326498, 0.000000, 0.000000, 0.945198 + 0.323526, 0.000000, 0.000000, 0.946219 + 0.320551, 0.000000, 0.000000, 0.947231 + 0.317572, 0.000000, 0.000000, 0.948234 + 0.314591, 0.000000, 0.000000, 0.949227 + 0.311606, 0.000000, 0.000000, 0.950211 + 0.308618, 0.000000, 0.000000, 0.951186 + 0.305628, 0.000000, 0.000000, 0.952151 + 0.302634, 0.000000, 0.000000, 0.953107 + 0.299637, 0.000000, 0.000000, 0.954053 + 0.296637, 0.000000, 0.000000, 0.954990 + 0.293635, 0.000000, 0.000000, 0.955918 + 0.290629, 0.000000, 0.000000, 0.956836 + 0.287621, 0.000000, 0.000000, 0.957744 + 0.284610, 0.000000, 0.000000, 0.958644 + 0.281595, 0.000000, 0.000000, 0.959533 + 0.278579, 0.000000, 0.000000, 0.960413 + 0.275559, 0.000000, 0.000000, 0.961284 + 0.272537, 0.000000, 0.000000, 0.962145 + 0.269512, 0.000000, 0.000000, 0.962997 + 0.266484, 0.000000, 0.000000, 0.963839 + 0.263454, 0.000000, 0.000000, 0.964672 + 0.260421, 0.000000, 0.000000, 0.965495 + 0.257385, 0.000000, 0.000000, 0.966309 + 0.254347, 0.000000, 0.000000, 0.967113 + 0.251307, 0.000000, 0.000000, 0.967907 + 0.248264, 0.000000, 0.000000, 0.968692 + 0.245218, 0.000000, 0.000000, 0.969468 + 0.242170, 0.000000, 0.000000, 0.970234 + 0.239120, 0.000000, 0.000000, 0.970990 + 0.236067, 0.000000, 0.000000, 0.971737 + 0.233012, 0.000000, 0.000000, 0.972474 + 0.229955, 0.000000, 0.000000, 0.973201 + 0.226896, 0.000000, 0.000000, 0.973919 + 0.223834, 0.000000, 0.000000, 0.974627 + 0.220770, 0.000000, 0.000000, 0.975326 + 0.217704, 0.000000, 0.000000, 0.976015 + 0.214635, 0.000000, 0.000000, 0.976694 + 0.211565, 0.000000, 0.000000, 0.977364 + 0.208492, 0.000000, 0.000000, 0.978024 + 0.205418, 0.000000, 0.000000, 0.978674 + 0.202341, 0.000000, 0.000000, 0.979315 + 0.199262, 0.000000, 0.000000, 0.979946 + 0.196182, 0.000000, 0.000000, 0.980568 + 0.193099, 0.000000, 0.000000, 0.981179 + 0.190015, 0.000000, 0.000000, 0.981781 + 0.186929, 0.000000, 0.000000, 0.982374 + 0.183840, 0.000000, 0.000000, 0.982956 + 0.180750, 0.000000, 0.000000, 0.983529 + 0.177659, 0.000000, 0.000000, 0.984092 + 0.174565, 0.000000, 0.000000, 0.984646 + 0.171470, 0.000000, 0.000000, 0.985189 + 0.168373, 0.000000, 0.000000, 0.985723 + 0.165274, 0.000000, 0.000000, 0.986248 + 0.162174, 0.000000, 0.000000, 0.986762 + 0.159072, 0.000000, 0.000000, 0.987267 + 0.155969, 0.000000, 0.000000, 0.987762 + 0.152864, 0.000000, 0.000000, 0.988247 + 0.149757, 0.000000, 0.000000, 0.988723 + 0.146650, 0.000000, 0.000000, 0.989189 + 0.143540, 0.000000, 0.000000, 0.989644 + 0.140429, 0.000000, 0.000000, 0.990091 + 0.137317, 0.000000, 0.000000, 0.990527 + 0.134204, 0.000000, 0.000000, 0.990954 + 0.131089, 0.000000, 0.000000, 0.991371 + 0.127973, 0.000000, 0.000000, 0.991778 + 0.124855, 0.000000, 0.000000, 0.992175 + 0.121736, 0.000000, 0.000000, 0.992562 + 0.118617, 0.000000, 0.000000, 0.992940 + 0.115496, 0.000000, 0.000000, 0.993308 + 0.112373, 0.000000, 0.000000, 0.993666 + 0.109250, 0.000000, 0.000000, 0.994014 + 0.106126, 0.000000, 0.000000, 0.994353 + 0.103000, 0.000000, 0.000000, 0.994681 + 0.099874, 0.000000, 0.000000, 0.995000 + 0.096747, 0.000000, 0.000000, 0.995309 + 0.093618, 0.000000, 0.000000, 0.995608 + 0.090489, 0.000000, 0.000000, 0.995897 + 0.087359, 0.000000, 0.000000, 0.996177 + 0.084228, 0.000000, 0.000000, 0.996447 + 0.081096, 0.000000, 0.000000, 0.996706 + 0.077963, 0.000000, 0.000000, 0.996956 + 0.074830, 0.000000, 0.000000, 0.997196 + 0.071695, 0.000000, 0.000000, 0.997427 + 0.068560, 0.000000, 0.000000, 0.997647 + 0.065425, 0.000000, 0.000000, 0.997857 + 0.062289, 0.000000, 0.000000, 0.998058 + 0.059152, 0.000000, 0.000000, 0.998249 + 0.056014, 0.000000, 0.000000, 0.998430 + 0.052876, 0.000000, 0.000000, 0.998601 + 0.049738, 0.000000, 0.000000, 0.998762 + 0.046599, 0.000000, 0.000000, 0.998914 + 0.043459, 0.000000, 0.000000, 0.999055 + 0.040320, 0.000000, 0.000000, 0.999187 + 0.037179, 0.000000, 0.000000, 0.999309 + 0.034039, 0.000000, 0.000000, 0.999421 + 0.030898, 0.000000, 0.000000, 0.999523 + 0.027756, 0.000000, 0.000000, 0.999615 + 0.024615, 0.000000, 0.000000, 0.999697 + 0.021473, 0.000000, 0.000000, 0.999769 + 0.018331, 0.000000, 0.000000, 0.999832 + 0.015189, 0.000000, 0.000000, 0.999885 + 0.012046, 0.000000, 0.000000, 0.999927 + 0.008904, 0.000000, 0.000000, 0.999960 + 0.005761, 0.000000, 0.000000, 0.999983 + 0.002619, 0.000000, 0.000000, 0.999997 + -0.000524, -0.000000, 0.000000, 1.000000 + -0.003666, -0.000000, 0.000000, 0.999993 + -0.006809, -0.000000, 0.000000, 0.999977 + -0.009952, -0.000000, 0.000000, 0.999950 + -0.013094, -0.000000, 0.000000, 0.999914 + -0.016236, -0.000000, 0.000000, 0.999868 + -0.019378, -0.000000, 0.000000, 0.999812 + -0.022520, -0.000000, 0.000000, 0.999746 + -0.025662, -0.000000, 0.000000, 0.999671 + -0.028804, -0.000000, 0.000000, 0.999585 + -0.031945, -0.000000, 0.000000, 0.999490 + -0.035086, -0.000000, 0.000000, 0.999384 + -0.038226, -0.000000, 0.000000, 0.999269 + -0.041366, -0.000000, 0.000000, 0.999144 + -0.044506, -0.000000, 0.000000, 0.999009 + -0.047645, -0.000000, 0.000000, 0.998864 + -0.050784, -0.000000, 0.000000, 0.998710 + -0.053922, -0.000000, 0.000000, 0.998545 + -0.057060, -0.000000, 0.000000, 0.998371 + -0.060198, -0.000000, 0.000000, 0.998186 + -0.063334, -0.000000, 0.000000, 0.997992 + -0.066470, -0.000000, 0.000000, 0.997788 + -0.069606, -0.000000, 0.000000, 0.997575 + -0.072740, -0.000000, 0.000000, 0.997351 + -0.075874, -0.000000, 0.000000, 0.997117 + -0.079007, -0.000000, 0.000000, 0.996874 + -0.082140, -0.000000, 0.000000, 0.996621 + -0.085271, -0.000000, 0.000000, 0.996358 + -0.088402, -0.000000, 0.000000, 0.996085 + -0.091532, -0.000000, 0.000000, 0.995802 + -0.094661, -0.000000, 0.000000, 0.995510 + -0.097789, -0.000000, 0.000000, 0.995207 + -0.100916, -0.000000, 0.000000, 0.994895 + -0.104042, -0.000000, 0.000000, 0.994573 + -0.107167, -0.000000, 0.000000, 0.994241 + -0.110291, -0.000000, 0.000000, 0.993899 + -0.113414, -0.000000, 0.000000, 0.993548 + -0.116536, -0.000000, 0.000000, 0.993186 + -0.119657, -0.000000, 0.000000, 0.992815 + -0.122776, -0.000000, 0.000000, 0.992434 + -0.125894, -0.000000, 0.000000, 0.992044 + -0.129011, -0.000000, 0.000000, 0.991643 + -0.132127, -0.000000, 0.000000, 0.991233 + -0.135242, -0.000000, 0.000000, 0.990813 + -0.138355, -0.000000, 0.000000, 0.990383 + -0.141466, -0.000000, 0.000000, 0.989943 + -0.144577, -0.000000, 0.000000, 0.989494 + -0.147686, -0.000000, 0.000000, 0.989034 + -0.150793, -0.000000, 0.000000, 0.988565 + -0.153899, -0.000000, 0.000000, 0.988087 + -0.157003, -0.000000, 0.000000, 0.987598 + -0.160106, -0.000000, 0.000000, 0.987100 + -0.163208, -0.000000, 0.000000, 0.986592 + -0.166307, -0.000000, 0.000000, 0.986074 + -0.169405, -0.000000, 0.000000, 0.985546 + -0.172502, -0.000000, 0.000000, 0.985009 + -0.175596, -0.000000, 0.000000, 0.984462 + -0.178689, -0.000000, 0.000000, 0.983906 + -0.181781, -0.000000, 0.000000, 0.983339 + -0.184870, -0.000000, 0.000000, 0.982763 + -0.187958, -0.000000, 0.000000, 0.982177 + -0.191043, -0.000000, 0.000000, 0.981582 + -0.194127, -0.000000, 0.000000, 0.980976 + -0.197209, -0.000000, 0.000000, 0.980361 + -0.200289, -0.000000, 0.000000, 0.979737 + -0.203367, -0.000000, 0.000000, 0.979103 + -0.206443, -0.000000, 0.000000, 0.978459 + -0.209517, -0.000000, 0.000000, 0.977805 + -0.212589, -0.000000, 0.000000, 0.977142 + -0.215658, -0.000000, 0.000000, 0.976469 + -0.218726, -0.000000, 0.000000, 0.975786 + -0.221791, -0.000000, 0.000000, 0.975094 + -0.224855, -0.000000, 0.000000, 0.974392 + -0.227916, -0.000000, 0.000000, 0.973681 + -0.230975, -0.000000, 0.000000, 0.972960 + -0.234031, -0.000000, 0.000000, 0.972229 + -0.237085, -0.000000, 0.000000, 0.971489 + -0.240137, -0.000000, 0.000000, 0.970739 + -0.243187, -0.000000, 0.000000, 0.969980 + -0.246234, -0.000000, 0.000000, 0.969210 + -0.249278, -0.000000, 0.000000, 0.968432 + -0.252321, -0.000000, 0.000000, 0.967644 + -0.255360, -0.000000, 0.000000, 0.966846 + -0.258397, -0.000000, 0.000000, 0.966039 + -0.261432, -0.000000, 0.000000, 0.965222 + -0.264464, -0.000000, 0.000000, 0.964396 + -0.267494, -0.000000, 0.000000, 0.963560 + -0.270520, -0.000000, 0.000000, 0.962714 + -0.273544, -0.000000, 0.000000, 0.961859 + -0.276566, -0.000000, 0.000000, 0.960995 + -0.279585, -0.000000, 0.000000, 0.960121 + -0.282600, -0.000000, 0.000000, 0.959238 + -0.285614, -0.000000, 0.000000, 0.958345 + -0.288624, -0.000000, 0.000000, 0.957443 + -0.291631, -0.000000, 0.000000, 0.956531 + -0.294636, -0.000000, 0.000000, 0.955610 + -0.297638, -0.000000, 0.000000, 0.954679 + -0.300636, -0.000000, 0.000000, 0.953739 + -0.303632, -0.000000, 0.000000, 0.952789 + -0.306625, -0.000000, 0.000000, 0.951830 + -0.309615, -0.000000, 0.000000, 0.950862 + -0.312601, -0.000000, 0.000000, 0.949884 + -0.315585, -0.000000, 0.000000, 0.948897 + -0.318565, -0.000000, 0.000000, 0.947901 + -0.321543, -0.000000, 0.000000, 0.946895 + -0.324517, -0.000000, 0.000000, 0.945880 + -0.327488, -0.000000, 0.000000, 0.944855 + -0.330456, -0.000000, 0.000000, 0.943822 + -0.333420, -0.000000, 0.000000, 0.942778 + -0.336381, -0.000000, 0.000000, 0.941726 + -0.339339, -0.000000, 0.000000, 0.940664 + -0.342294, -0.000000, 0.000000, 0.939593 + -0.345245, -0.000000, 0.000000, 0.938513 + -0.348192, -0.000000, 0.000000, 0.937423 + -0.351137, -0.000000, 0.000000, 0.936324 + -0.354077, -0.000000, 0.000000, 0.935216 + -0.357015, -0.000000, 0.000000, 0.934099 + -0.359948, -0.000000, 0.000000, 0.932972 + -0.362879, -0.000000, 0.000000, 0.931836 + -0.365805, -0.000000, 0.000000, 0.930691 + -0.368728, -0.000000, 0.000000, 0.929537 + -0.371648, -0.000000, 0.000000, 0.928374 + -0.374563, -0.000000, 0.000000, 0.927201 + -0.377475, -0.000000, 0.000000, 0.926020 + -0.380384, -0.000000, 0.000000, 0.924829 + -0.383288, -0.000000, 0.000000, 0.923629 + -0.386189, -0.000000, 0.000000, 0.922420 + -0.389086, -0.000000, 0.000000, 0.921201 + -0.391979, -0.000000, 0.000000, 0.919974 + -0.394868, -0.000000, 0.000000, 0.918738 + -0.397753, -0.000000, 0.000000, 0.917492 + -0.400635, -0.000000, 0.000000, 0.916238 + -0.403512, -0.000000, 0.000000, 0.914974 + -0.406386, -0.000000, 0.000000, 0.913702 + -0.409255, -0.000000, 0.000000, 0.912420 + -0.412121, -0.000000, 0.000000, 0.911129 + -0.414982, -0.000000, 0.000000, 0.909830 + -0.417839, -0.000000, 0.000000, 0.908521 + -0.420692, -0.000000, 0.000000, 0.907203 + -0.423541, -0.000000, 0.000000, 0.905877 + -0.426386, -0.000000, 0.000000, 0.904541 + -0.429226, -0.000000, 0.000000, 0.903197 + -0.432063, -0.000000, 0.000000, 0.901844 + -0.434895, -0.000000, 0.000000, 0.900481 + -0.437722, -0.000000, 0.000000, 0.899110 + -0.440546, -0.000000, 0.000000, 0.897730 + -0.443365, -0.000000, 0.000000, 0.896341 + -0.446180, -0.000000, 0.000000, 0.894943 + -0.448990, -0.000000, 0.000000, 0.893537 + -0.451796, -0.000000, 0.000000, 0.892121 + -0.454597, -0.000000, 0.000000, 0.890697 + -0.457394, -0.000000, 0.000000, 0.889264 + -0.460186, -0.000000, 0.000000, 0.887822 + -0.462974, -0.000000, 0.000000, 0.886372 + -0.465757, -0.000000, 0.000000, 0.884912 + -0.468536, -0.000000, 0.000000, 0.883444 + -0.471310, -0.000000, 0.000000, 0.881968 + -0.474079, -0.000000, 0.000000, 0.880482 + -0.476844, -0.000000, 0.000000, 0.878988 + -0.479604, -0.000000, 0.000000, 0.877485 + -0.482359, -0.000000, 0.000000, 0.875973 + -0.485110, -0.000000, 0.000000, 0.874453 + -0.487856, -0.000000, 0.000000, 0.872924 + -0.490596, -0.000000, 0.000000, 0.871387 + -0.493332, -0.000000, 0.000000, 0.869841 + -0.496064, -0.000000, 0.000000, 0.868286 + -0.498790, -0.000000, 0.000000, 0.866723 + -0.501511, -0.000000, 0.000000, 0.865151 + -0.504228, -0.000000, 0.000000, 0.863571 + -0.506939, -0.000000, 0.000000, 0.861982 + -0.509645, -0.000000, 0.000000, 0.860385 + -0.512347, -0.000000, 0.000000, 0.858779 + -0.515043, -0.000000, 0.000000, 0.857164 + -0.517734, -0.000000, 0.000000, 0.855541 + -0.520420, -0.000000, 0.000000, 0.853910 + -0.523101, -0.000000, 0.000000, 0.852270 + -0.525777, -0.000000, 0.000000, 0.850622 + -0.528448, -0.000000, 0.000000, 0.848966 + -0.531113, -0.000000, 0.000000, 0.847301 + -0.533773, -0.000000, 0.000000, 0.845628 + -0.536428, -0.000000, 0.000000, 0.843946 + -0.539078, -0.000000, 0.000000, 0.842256 + -0.541722, -0.000000, 0.000000, 0.840558 + -0.544361, -0.000000, 0.000000, 0.838851 + -0.546994, -0.000000, 0.000000, 0.837136 + -0.549622, -0.000000, 0.000000, 0.835413 + -0.552245, -0.000000, 0.000000, 0.833682 + -0.554862, -0.000000, 0.000000, 0.831942 + -0.557474, -0.000000, 0.000000, 0.830194 + -0.560080, -0.000000, 0.000000, 0.828438 + -0.562681, -0.000000, 0.000000, 0.826674 + -0.565276, -0.000000, 0.000000, 0.824902 + -0.567866, -0.000000, 0.000000, 0.823121 + -0.570450, -0.000000, 0.000000, 0.821333 + -0.573028, -0.000000, 0.000000, 0.819536 + -0.575601, -0.000000, 0.000000, 0.817731 + -0.578168, -0.000000, 0.000000, 0.815918 + -0.580729, -0.000000, 0.000000, 0.814097 + -0.583285, -0.000000, 0.000000, 0.812268 + -0.585834, -0.000000, 0.000000, 0.810431 + -0.588378, -0.000000, 0.000000, 0.808586 + -0.590917, -0.000000, 0.000000, 0.806733 + -0.593449, -0.000000, 0.000000, 0.804872 + -0.595975, -0.000000, 0.000000, 0.803003 + -0.598496, -0.000000, 0.000000, 0.801126 + -0.601011, -0.000000, 0.000000, 0.799241 + -0.603519, -0.000000, 0.000000, 0.797348 + -0.606022, -0.000000, 0.000000, 0.795448 + -0.608519, -0.000000, 0.000000, 0.793539 + -0.611010, -0.000000, 0.000000, 0.791623 + -0.613495, -0.000000, 0.000000, 0.789699 + -0.615973, -0.000000, 0.000000, 0.787767 + -0.618446, -0.000000, 0.000000, 0.785827 + -0.620912, -0.000000, 0.000000, 0.783880 + -0.623373, -0.000000, 0.000000, 0.781925 + -0.625827, -0.000000, 0.000000, 0.779962 + -0.628275, -0.000000, 0.000000, 0.777991 + -0.630717, -0.000000, 0.000000, 0.776013 + -0.633153, -0.000000, 0.000000, 0.774027 + -0.635582, -0.000000, 0.000000, 0.772033 + -0.638005, -0.000000, 0.000000, 0.770032 + -0.640422, -0.000000, 0.000000, 0.768023 + -0.642832, -0.000000, 0.000000, 0.766007 + -0.645236, -0.000000, 0.000000, 0.763983 + -0.647634, -0.000000, 0.000000, 0.761952 + -0.650025, -0.000000, 0.000000, 0.759913 + -0.652410, -0.000000, 0.000000, 0.757866 + -0.654789, -0.000000, 0.000000, 0.755812 + -0.657161, -0.000000, 0.000000, 0.753750 + -0.659526, -0.000000, 0.000000, 0.751682 + -0.661885, -0.000000, 0.000000, 0.749605 + -0.664238, -0.000000, 0.000000, 0.747521 + -0.666584, -0.000000, 0.000000, 0.745430 + -0.668923, -0.000000, 0.000000, 0.743332 + -0.671256, -0.000000, 0.000000, 0.741226 + -0.673582, -0.000000, 0.000000, 0.739113 + -0.675901, -0.000000, 0.000000, 0.736992 + -0.678214, -0.000000, 0.000000, 0.734864 + -0.680520, -0.000000, 0.000000, 0.732729 + -0.682819, -0.000000, 0.000000, 0.730587 + -0.685112, -0.000000, 0.000000, 0.728438 + -0.687398, -0.000000, 0.000000, 0.726281 + -0.689677, -0.000000, 0.000000, 0.724117 + -0.691949, -0.000000, 0.000000, 0.721946 + -0.694214, -0.000000, 0.000000, 0.719768 + -0.696473, -0.000000, 0.000000, 0.717583 + -0.698725, -0.000000, 0.000000, 0.715391 + -0.700969, -0.000000, 0.000000, 0.713191 + -0.703207, -0.000000, 0.000000, 0.710985 + -0.705438, -0.000000, 0.000000, 0.708771 + -0.707662, -0.000000, 0.000000, 0.706551 + -0.709879, -0.000000, 0.000000, 0.704324 + -0.712089, -0.000000, 0.000000, 0.702089 + -0.714292, -0.000000, 0.000000, 0.699848 + -0.716488, -0.000000, 0.000000, 0.697600 + -0.718676, -0.000000, 0.000000, 0.695345 + -0.720858, -0.000000, 0.000000, 0.693083 + -0.723033, -0.000000, 0.000000, 0.690814 + -0.725200, -0.000000, 0.000000, 0.688538 + -0.727360, -0.000000, 0.000000, 0.686256 + -0.729513, -0.000000, 0.000000, 0.683967 + -0.731659, -0.000000, 0.000000, 0.681671 + -0.733798, -0.000000, 0.000000, 0.679368 + -0.735929, -0.000000, 0.000000, 0.677058 + -0.738053, -0.000000, 0.000000, 0.674742 + -0.740170, -0.000000, 0.000000, 0.672420 + -0.742280, -0.000000, 0.000000, 0.670090 + -0.744382, -0.000000, 0.000000, 0.667754 + -0.746477, -0.000000, 0.000000, 0.665412 + -0.748564, -0.000000, 0.000000, 0.663062 + -0.750644, -0.000000, 0.000000, 0.660707 + -0.752717, -0.000000, 0.000000, 0.658344 + -0.754782, -0.000000, 0.000000, 0.655976 + -0.756840, -0.000000, 0.000000, 0.653600 + -0.758890, -0.000000, 0.000000, 0.651219 + -0.760933, -0.000000, 0.000000, 0.648830 + -0.762968, -0.000000, 0.000000, 0.646436 + -0.764996, -0.000000, 0.000000, 0.644035 + -0.767016, -0.000000, 0.000000, 0.641628 + -0.769029, -0.000000, 0.000000, 0.639214 + -0.771034, -0.000000, 0.000000, 0.636794 + -0.773031, -0.000000, 0.000000, 0.634368 + -0.775021, -0.000000, 0.000000, 0.631935 + -0.777003, -0.000000, 0.000000, 0.629497 + -0.778978, -0.000000, 0.000000, 0.627052 + -0.780944, -0.000000, 0.000000, 0.624601 + -0.782903, -0.000000, 0.000000, 0.622143 + -0.784855, -0.000000, 0.000000, 0.619680 + -0.786798, -0.000000, 0.000000, 0.617210 + -0.788734, -0.000000, 0.000000, 0.614735 + -0.790662, -0.000000, 0.000000, 0.612253 + -0.792582, -0.000000, 0.000000, 0.609765 + -0.794494, -0.000000, 0.000000, 0.607271 + -0.796399, -0.000000, 0.000000, 0.604772 + -0.798296, -0.000000, 0.000000, 0.602266 + -0.800184, -0.000000, 0.000000, 0.599754 + -0.802065, -0.000000, 0.000000, 0.597236 + -0.803938, -0.000000, 0.000000, 0.594713 + -0.805803, -0.000000, 0.000000, 0.592183 + -0.807660, -0.000000, 0.000000, 0.589648 + -0.809509, -0.000000, 0.000000, 0.587107 + -0.811350, -0.000000, 0.000000, 0.584560 + -0.813183, -0.000000, 0.000000, 0.582008 + -0.815008, -0.000000, 0.000000, 0.579449 + -0.816825, -0.000000, 0.000000, 0.576885 + -0.818634, -0.000000, 0.000000, 0.574315 + -0.820435, -0.000000, 0.000000, 0.571740 + -0.822228, -0.000000, 0.000000, 0.569158 + -0.824012, -0.000000, 0.000000, 0.566572 + -0.825789, -0.000000, 0.000000, 0.563979 + -0.827557, -0.000000, 0.000000, 0.561381 + -0.829317, -0.000000, 0.000000, 0.558778 + -0.831069, -0.000000, 0.000000, 0.556169 + -0.832813, -0.000000, 0.000000, 0.553554 + -0.834549, -0.000000, 0.000000, 0.550934 + -0.836276, -0.000000, 0.000000, 0.548309 + -0.837995, -0.000000, 0.000000, 0.545678 + -0.839706, -0.000000, 0.000000, 0.543042 + -0.841408, -0.000000, 0.000000, 0.540400 + -0.843102, -0.000000, 0.000000, 0.537754 + -0.844788, -0.000000, 0.000000, 0.535101 + -0.846465, -0.000000, 0.000000, 0.532444 + -0.848134, -0.000000, 0.000000, 0.529781 + -0.849795, -0.000000, 0.000000, 0.527113 + -0.851447, -0.000000, 0.000000, 0.524440 + -0.853091, -0.000000, 0.000000, 0.521761 + -0.854727, -0.000000, 0.000000, 0.519078 + -0.856354, -0.000000, 0.000000, 0.516389 + -0.857973, -0.000000, 0.000000, 0.513696 + -0.859583, -0.000000, 0.000000, 0.510997 + -0.861184, -0.000000, 0.000000, 0.508293 + -0.862777, -0.000000, 0.000000, 0.505584 + -0.864362, -0.000000, 0.000000, 0.502870 + -0.865938, -0.000000, 0.000000, 0.500151 + -0.867506, -0.000000, 0.000000, 0.497427 + -0.869065, -0.000000, 0.000000, 0.494699 + -0.870615, -0.000000, 0.000000, 0.491965 + -0.872157, -0.000000, 0.000000, 0.489227 + -0.873690, -0.000000, 0.000000, 0.486483 + -0.875214, -0.000000, 0.000000, 0.483735 + -0.876730, -0.000000, 0.000000, 0.480982 + -0.878237, -0.000000, 0.000000, 0.478225 + -0.879736, -0.000000, 0.000000, 0.475462 + -0.881226, -0.000000, 0.000000, 0.472695 + -0.882707, -0.000000, 0.000000, 0.469924 + -0.884179, -0.000000, 0.000000, 0.467147 + -0.885643, -0.000000, 0.000000, 0.464366 + -0.887098, -0.000000, 0.000000, 0.461581 + -0.888544, -0.000000, 0.000000, 0.458791 + -0.889982, -0.000000, 0.000000, 0.455996 + -0.891410, -0.000000, 0.000000, 0.453197 + -0.892830, -0.000000, 0.000000, 0.450393 + -0.894241, -0.000000, 0.000000, 0.447585 + -0.895643, -0.000000, 0.000000, 0.444773 + -0.897037, -0.000000, 0.000000, 0.441956 + -0.898421, -0.000000, 0.000000, 0.439135 + -0.899797, -0.000000, 0.000000, 0.436309 + -0.901164, -0.000000, 0.000000, 0.433479 + -0.902521, -0.000000, 0.000000, 0.430645 + -0.903870, -0.000000, 0.000000, 0.427807 + -0.905210, -0.000000, 0.000000, 0.424964 + -0.906541, -0.000000, 0.000000, 0.422117 + -0.907863, -0.000000, 0.000000, 0.419266 + -0.909177, -0.000000, 0.000000, 0.416411 + -0.910481, -0.000000, 0.000000, 0.413552 + -0.911776, -0.000000, 0.000000, 0.410688 + -0.913062, -0.000000, 0.000000, 0.407821 + -0.914339, -0.000000, 0.000000, 0.404950 + -0.915607, -0.000000, 0.000000, 0.402074 + -0.916866, -0.000000, 0.000000, 0.399195 + -0.918116, -0.000000, 0.000000, 0.396311 + -0.919357, -0.000000, 0.000000, 0.393424 + -0.920589, -0.000000, 0.000000, 0.390533 + -0.921812, -0.000000, 0.000000, 0.387638 + -0.923025, -0.000000, 0.000000, 0.384739 + -0.924230, -0.000000, 0.000000, 0.381836 + -0.925425, -0.000000, 0.000000, 0.378930 + -0.926612, -0.000000, 0.000000, 0.376020 + -0.927789, -0.000000, 0.000000, 0.373106 + -0.928957, -0.000000, 0.000000, 0.370188 + -0.930115, -0.000000, 0.000000, 0.367267 + -0.931265, -0.000000, 0.000000, 0.364342 + -0.932405, -0.000000, 0.000000, 0.361414 + -0.933537, -0.000000, 0.000000, 0.358482 + -0.934659, -0.000000, 0.000000, 0.355547 + -0.935771, -0.000000, 0.000000, 0.352607 + -0.936875, -0.000000, 0.000000, 0.349665 + -0.937969, -0.000000, 0.000000, 0.346719 + -0.939054, -0.000000, 0.000000, 0.343770 + -0.940130, -0.000000, 0.000000, 0.340817 + -0.941196, -0.000000, 0.000000, 0.337861 + -0.942253, -0.000000, 0.000000, 0.334901 + -0.943301, -0.000000, 0.000000, 0.331938 + -0.944340, -0.000000, 0.000000, 0.328972 + -0.945369, -0.000000, 0.000000, 0.326003 + -0.946389, -0.000000, 0.000000, 0.323030 + -0.947399, -0.000000, 0.000000, 0.320055 + -0.948400, -0.000000, 0.000000, 0.317076 + -0.949392, -0.000000, 0.000000, 0.314094 + -0.950374, -0.000000, 0.000000, 0.311108 + -0.951347, -0.000000, 0.000000, 0.308120 + -0.952311, -0.000000, 0.000000, 0.305129 + -0.953265, -0.000000, 0.000000, 0.302135 + -0.954210, -0.000000, 0.000000, 0.299137 + -0.955145, -0.000000, 0.000000, 0.296137 + -0.956071, -0.000000, 0.000000, 0.293134 + -0.956988, -0.000000, 0.000000, 0.290128 + -0.957895, -0.000000, 0.000000, 0.287119 + -0.958792, -0.000000, 0.000000, 0.284107 + -0.959681, -0.000000, 0.000000, 0.281093 + -0.960559, -0.000000, 0.000000, 0.278076 + -0.961428, -0.000000, 0.000000, 0.275056 + -0.962288, -0.000000, 0.000000, 0.272033 + -0.963138, -0.000000, 0.000000, 0.269007 + -0.963979, -0.000000, 0.000000, 0.265979 + -0.964810, -0.000000, 0.000000, 0.262948 + -0.965631, -0.000000, 0.000000, 0.259915 + -0.966444, -0.000000, 0.000000, 0.256879 + -0.967246, -0.000000, 0.000000, 0.253841 + -0.968039, -0.000000, 0.000000, 0.250800 + -0.968822, -0.000000, 0.000000, 0.247756 + -0.969596, -0.000000, 0.000000, 0.244710 + -0.970360, -0.000000, 0.000000, 0.241662 + -0.971115, -0.000000, 0.000000, 0.238611 + -0.971860, -0.000000, 0.000000, 0.235558 + -0.972596, -0.000000, 0.000000, 0.232503 + -0.973322, -0.000000, 0.000000, 0.229445 + -0.974038, -0.000000, 0.000000, 0.226385 + -0.974744, -0.000000, 0.000000, 0.223323 + -0.975441, -0.000000, 0.000000, 0.220259 + -0.976129, -0.000000, 0.000000, 0.217192 + -0.976807, -0.000000, 0.000000, 0.214124 + -0.977475, -0.000000, 0.000000, 0.211053 + -0.978133, -0.000000, 0.000000, 0.207980 + -0.978782, -0.000000, 0.000000, 0.204905 + -0.979421, -0.000000, 0.000000, 0.201828 + -0.980050, -0.000000, 0.000000, 0.198749 + -0.980670, -0.000000, 0.000000, 0.195668 + -0.981280, -0.000000, 0.000000, 0.192585 + -0.981881, -0.000000, 0.000000, 0.189501 + -0.982471, -0.000000, 0.000000, 0.186414 + -0.983052, -0.000000, 0.000000, 0.183326 + -0.983624, -0.000000, 0.000000, 0.180235 + -0.984185, -0.000000, 0.000000, 0.177143 + -0.984737, -0.000000, 0.000000, 0.174049 + -0.985279, -0.000000, 0.000000, 0.170954 + -0.985811, -0.000000, 0.000000, 0.167857 + -0.986334, -0.000000, 0.000000, 0.164758 + -0.986847, -0.000000, 0.000000, 0.161657 + -0.987350, -0.000000, 0.000000, 0.158555 + -0.987844, -0.000000, 0.000000, 0.155451 + -0.988327, -0.000000, 0.000000, 0.152346 + -0.988801, -0.000000, 0.000000, 0.149240 + -0.989265, -0.000000, 0.000000, 0.146131 + -0.989720, -0.000000, 0.000000, 0.143022 + -0.990164, -0.000000, 0.000000, 0.139911 + -0.990599, -0.000000, 0.000000, 0.136798 + -0.991024, -0.000000, 0.000000, 0.133685 + -0.991439, -0.000000, 0.000000, 0.130569 + -0.991845, -0.000000, 0.000000, 0.127453 + -0.992240, -0.000000, 0.000000, 0.124335 + -0.992626, -0.000000, 0.000000, 0.121217 + -0.993002, -0.000000, 0.000000, 0.118097 + -0.993368, -0.000000, 0.000000, 0.114975 + -0.993725, -0.000000, 0.000000, 0.111853 + -0.994071, -0.000000, 0.000000, 0.108729 + -0.994408, -0.000000, 0.000000, 0.105605 + -0.994735, -0.000000, 0.000000, 0.102479 + -0.995052, -0.000000, 0.000000, 0.099353 + -0.995360, -0.000000, 0.000000, 0.096225 + -0.995657, -0.000000, 0.000000, 0.093097 + -0.995945, -0.000000, 0.000000, 0.089967 + -0.996223, -0.000000, 0.000000, 0.086837 + -0.996491, -0.000000, 0.000000, 0.083706 + -0.996749, -0.000000, 0.000000, 0.080574 + -0.996997, -0.000000, 0.000000, 0.077441 + -0.997235, -0.000000, 0.000000, 0.074307 + -0.997464, -0.000000, 0.000000, 0.071173 + -0.997683, -0.000000, 0.000000, 0.068038 + -0.997892, -0.000000, 0.000000, 0.064902 + -0.998091, -0.000000, 0.000000, 0.061766 + -0.998280, -0.000000, 0.000000, 0.058629 + -0.998459, -0.000000, 0.000000, 0.055491 + -0.998629, -0.000000, 0.000000, 0.052353 + -0.998788, -0.000000, 0.000000, 0.049215 + -0.998938, -0.000000, 0.000000, 0.046076 + -0.999078, -0.000000, 0.000000, 0.042936 + -0.999208, -0.000000, 0.000000, 0.039796 + -0.999328, -0.000000, 0.000000, 0.036656 + -0.999438, -0.000000, 0.000000, 0.033515 + -0.999539, -0.000000, 0.000000, 0.030374 + -0.999629, -0.000000, 0.000000, 0.027233 + -0.999710, -0.000000, 0.000000, 0.024091 + -0.999781, -0.000000, 0.000000, 0.020949 + -0.999841, -0.000000, 0.000000, 0.017807 + -0.999892, -0.000000, 0.000000, 0.014665 + -0.999934, -0.000000, 0.000000, 0.011523 + -0.999965, -0.000000, 0.000000, 0.008380 + -0.999986, -0.000000, 0.000000, 0.005238 + -0.999998, -0.000000, 0.000000, 0.002095 + -0.999999, 0.000000, -0.000000, -0.001048 + -0.999991, 0.000000, -0.000000, -0.004190 + -0.999973, 0.000000, -0.000000, -0.007333 + -0.999945, 0.000000, -0.000000, -0.010475 + -0.999907, 0.000000, -0.000000, -0.013618 + -0.999860, 0.000000, -0.000000, -0.016760 + -0.999802, 0.000000, -0.000000, -0.019902 + -0.999734, 0.000000, -0.000000, -0.023044 + -0.999657, 0.000000, -0.000000, -0.026186 + -0.999570, 0.000000, -0.000000, -0.029327 + -0.999473, 0.000000, -0.000000, -0.032468 + -0.999366, 0.000000, -0.000000, -0.035609 + -0.999249, 0.000000, -0.000000, -0.038750 + -0.999122, 0.000000, -0.000000, -0.041890 + -0.998986, 0.000000, -0.000000, -0.045029 + -0.998839, 0.000000, -0.000000, -0.048169 + -0.998683, 0.000000, -0.000000, -0.051307 + -0.998517, 0.000000, -0.000000, -0.054445 + -0.998341, 0.000000, -0.000000, -0.057583 + -0.998155, 0.000000, -0.000000, -0.060720 + -0.997959, 0.000000, -0.000000, -0.063857 + -0.997753, 0.000000, -0.000000, -0.066993 + -0.997538, 0.000000, -0.000000, -0.070128 + -0.997313, 0.000000, -0.000000, -0.073263 + -0.997078, 0.000000, -0.000000, -0.076396 + -0.996833, 0.000000, -0.000000, -0.079529 + -0.996578, 0.000000, -0.000000, -0.082662 + -0.996313, 0.000000, -0.000000, -0.085793 + -0.996038, 0.000000, -0.000000, -0.088924 + -0.995754, 0.000000, -0.000000, -0.092054 + -0.995460, 0.000000, -0.000000, -0.095182 + -0.995156, 0.000000, -0.000000, -0.098310 + -0.994842, 0.000000, -0.000000, -0.101437 + -0.994518, 0.000000, -0.000000, -0.104563 + -0.994185, 0.000000, -0.000000, -0.107688 + -0.993841, 0.000000, -0.000000, -0.110812 + -0.993488, 0.000000, -0.000000, -0.113935 + -0.993125, 0.000000, -0.000000, -0.117056 + -0.992753, 0.000000, -0.000000, -0.120177 + -0.992370, 0.000000, -0.000000, -0.123296 + -0.991978, 0.000000, -0.000000, -0.126414 + -0.991575, 0.000000, -0.000000, -0.129531 + -0.991163, 0.000000, -0.000000, -0.132646 + -0.990742, 0.000000, -0.000000, -0.135761 + -0.990310, 0.000000, -0.000000, -0.138873 + -0.989869, 0.000000, -0.000000, -0.141985 + -0.989418, 0.000000, -0.000000, -0.145095 + -0.988957, 0.000000, -0.000000, -0.148204 + -0.988486, 0.000000, -0.000000, -0.151311 + -0.988006, 0.000000, -0.000000, -0.154417 + -0.987516, 0.000000, -0.000000, -0.157521 + -0.987016, 0.000000, -0.000000, -0.160623 + -0.986506, 0.000000, -0.000000, -0.163724 + -0.985987, 0.000000, -0.000000, -0.166824 + -0.985458, 0.000000, -0.000000, -0.169922 + -0.984919, 0.000000, -0.000000, -0.173018 + -0.984370, 0.000000, -0.000000, -0.176112 + -0.983812, 0.000000, -0.000000, -0.179205 + -0.983244, 0.000000, -0.000000, -0.182296 + -0.982666, 0.000000, -0.000000, -0.185385 + -0.982079, 0.000000, -0.000000, -0.188472 + -0.981481, 0.000000, -0.000000, -0.191557 + -0.980875, 0.000000, -0.000000, -0.194641 + -0.980258, 0.000000, -0.000000, -0.197722 + -0.979632, 0.000000, -0.000000, -0.200802 + -0.978996, 0.000000, -0.000000, -0.203880 + -0.978350, 0.000000, -0.000000, -0.206955 + -0.977695, 0.000000, -0.000000, -0.210029 + -0.977030, 0.000000, -0.000000, -0.213100 + -0.976356, 0.000000, -0.000000, -0.216170 + -0.975672, 0.000000, -0.000000, -0.219237 + -0.974978, 0.000000, -0.000000, -0.222302 + -0.974274, 0.000000, -0.000000, -0.225365 + -0.973561, 0.000000, -0.000000, -0.228426 + -0.972839, 0.000000, -0.000000, -0.231484 + -0.972106, 0.000000, -0.000000, -0.234540 + -0.971365, 0.000000, -0.000000, -0.237594 + -0.970613, 0.000000, -0.000000, -0.240646 + -0.969852, 0.000000, -0.000000, -0.243695 + -0.969081, 0.000000, -0.000000, -0.246741 + -0.968301, 0.000000, -0.000000, -0.249786 + -0.967511, 0.000000, -0.000000, -0.252827 + -0.966712, 0.000000, -0.000000, -0.255867 + -0.965903, 0.000000, -0.000000, -0.258903 + -0.965085, 0.000000, -0.000000, -0.261938 + -0.964257, 0.000000, -0.000000, -0.264969 + -0.963419, 0.000000, -0.000000, -0.267998 + -0.962572, 0.000000, -0.000000, -0.271025 + -0.961716, 0.000000, -0.000000, -0.274048 + -0.960850, 0.000000, -0.000000, -0.277069 + -0.959975, 0.000000, -0.000000, -0.280087 + -0.959090, 0.000000, -0.000000, -0.283103 + -0.958195, 0.000000, -0.000000, -0.286116 + -0.957291, 0.000000, -0.000000, -0.289125 + -0.956378, 0.000000, -0.000000, -0.292132 + -0.955455, 0.000000, -0.000000, -0.295136 + -0.954523, 0.000000, -0.000000, -0.298138 + -0.953581, 0.000000, -0.000000, -0.301136 + -0.952630, 0.000000, -0.000000, -0.304131 + -0.951670, 0.000000, -0.000000, -0.307123 + -0.950700, 0.000000, -0.000000, -0.310113 + -0.949721, 0.000000, -0.000000, -0.313099 + -0.948732, 0.000000, -0.000000, -0.316082 + -0.947734, 0.000000, -0.000000, -0.319062 + -0.946727, 0.000000, -0.000000, -0.322039 + -0.945710, 0.000000, -0.000000, -0.325012 + -0.944684, 0.000000, -0.000000, -0.327983 + -0.943648, 0.000000, -0.000000, -0.330950 + -0.942604, 0.000000, -0.000000, -0.333914 + -0.941550, 0.000000, -0.000000, -0.336874 + -0.940486, 0.000000, -0.000000, -0.339832 + -0.939414, 0.000000, -0.000000, -0.342786 + -0.938332, 0.000000, -0.000000, -0.345736 + -0.937241, 0.000000, -0.000000, -0.348683 + -0.936140, 0.000000, -0.000000, -0.351627 + -0.935031, 0.000000, -0.000000, -0.354567 + -0.933912, 0.000000, -0.000000, -0.357504 + -0.932784, 0.000000, -0.000000, -0.360437 + -0.931646, 0.000000, -0.000000, -0.363367 + -0.930500, 0.000000, -0.000000, -0.366293 + -0.929344, 0.000000, -0.000000, -0.369215 + -0.928179, 0.000000, -0.000000, -0.372134 + -0.927005, 0.000000, -0.000000, -0.375049 + -0.925822, 0.000000, -0.000000, -0.377960 + -0.924629, 0.000000, -0.000000, -0.380868 + -0.923428, 0.000000, -0.000000, -0.383772 + -0.922217, 0.000000, -0.000000, -0.386672 + -0.920998, 0.000000, -0.000000, -0.389568 + -0.919769, 0.000000, -0.000000, -0.392461 + -0.918531, 0.000000, -0.000000, -0.395349 + -0.917284, 0.000000, -0.000000, -0.398234 + -0.916028, 0.000000, -0.000000, -0.401115 + -0.914763, 0.000000, -0.000000, -0.403991 + -0.913489, 0.000000, -0.000000, -0.406864 + -0.912206, 0.000000, -0.000000, -0.409733 + -0.910913, 0.000000, -0.000000, -0.412598 + -0.909612, 0.000000, -0.000000, -0.415458 + -0.908302, 0.000000, -0.000000, -0.418315 + -0.906983, 0.000000, -0.000000, -0.421167 + -0.905655, 0.000000, -0.000000, -0.424015 + -0.904318, 0.000000, -0.000000, -0.426860 + -0.902972, 0.000000, -0.000000, -0.429699 + -0.901617, 0.000000, -0.000000, -0.432535 + -0.900253, 0.000000, -0.000000, -0.435366 + -0.898881, 0.000000, -0.000000, -0.438193 + -0.897499, 0.000000, -0.000000, -0.441016 + -0.896109, 0.000000, -0.000000, -0.443834 + -0.894710, 0.000000, -0.000000, -0.446648 + -0.893302, 0.000000, -0.000000, -0.449458 + -0.891885, 0.000000, -0.000000, -0.452263 + -0.890459, 0.000000, -0.000000, -0.455064 + -0.889024, 0.000000, -0.000000, -0.457860 + -0.887581, 0.000000, -0.000000, -0.460651 + -0.886129, 0.000000, -0.000000, -0.463438 + -0.884668, 0.000000, -0.000000, -0.466221 + -0.883199, 0.000000, -0.000000, -0.468999 + -0.881721, 0.000000, -0.000000, -0.471772 + -0.880234, 0.000000, -0.000000, -0.474541 + -0.878738, 0.000000, -0.000000, -0.477305 + -0.877234, 0.000000, -0.000000, -0.480064 + -0.875721, 0.000000, -0.000000, -0.482818 + -0.874199, 0.000000, -0.000000, -0.485568 + -0.872669, 0.000000, -0.000000, -0.488313 + -0.871130, 0.000000, -0.000000, -0.491053 + -0.869582, 0.000000, -0.000000, -0.493788 + -0.868026, 0.000000, -0.000000, -0.496518 + -0.866462, 0.000000, -0.000000, -0.499244 + -0.864888, 0.000000, -0.000000, -0.501964 + -0.863307, 0.000000, -0.000000, -0.504680 + -0.861716, 0.000000, -0.000000, -0.507390 + -0.860117, 0.000000, -0.000000, -0.510096 + -0.858510, 0.000000, -0.000000, -0.512797 + -0.856894, 0.000000, -0.000000, -0.515492 + -0.855270, 0.000000, -0.000000, -0.518182 + -0.853638, 0.000000, -0.000000, -0.520868 + -0.851996, 0.000000, -0.000000, -0.523548 + -0.850347, 0.000000, -0.000000, -0.526223 + -0.848689, 0.000000, -0.000000, -0.528892 + -0.847023, 0.000000, -0.000000, -0.531557 + -0.845348, 0.000000, -0.000000, -0.534216 + -0.843665, 0.000000, -0.000000, -0.536870 + -0.841974, 0.000000, -0.000000, -0.539519 + -0.840274, 0.000000, -0.000000, -0.542162 + -0.838566, 0.000000, -0.000000, -0.544800 + -0.836850, 0.000000, -0.000000, -0.547433 + -0.835125, 0.000000, -0.000000, -0.550060 + -0.833392, 0.000000, -0.000000, -0.552682 + -0.831651, 0.000000, -0.000000, -0.555298 + -0.829902, 0.000000, -0.000000, -0.557909 + -0.828145, 0.000000, -0.000000, -0.560514 + -0.826379, 0.000000, -0.000000, -0.563114 + -0.824606, 0.000000, -0.000000, -0.565708 + -0.822824, 0.000000, -0.000000, -0.568297 + -0.821034, 0.000000, -0.000000, -0.570880 + -0.819235, 0.000000, -0.000000, -0.573457 + -0.817429, 0.000000, -0.000000, -0.576029 + -0.815615, 0.000000, -0.000000, -0.578595 + -0.813793, 0.000000, -0.000000, -0.581155 + -0.811962, 0.000000, -0.000000, -0.583710 + -0.810124, 0.000000, -0.000000, -0.586259 + -0.808277, 0.000000, -0.000000, -0.588802 + -0.806423, 0.000000, -0.000000, -0.591339 + -0.804561, 0.000000, -0.000000, -0.593870 + -0.802690, 0.000000, -0.000000, -0.596396 + -0.800812, 0.000000, -0.000000, -0.598915 + -0.798926, 0.000000, -0.000000, -0.601429 + -0.797032, 0.000000, -0.000000, -0.603937 + -0.795130, 0.000000, -0.000000, -0.606439 + -0.793220, 0.000000, -0.000000, -0.608935 + -0.791303, 0.000000, -0.000000, -0.611424 + -0.789377, 0.000000, -0.000000, -0.613908 + -0.787444, 0.000000, -0.000000, -0.616386 + -0.785503, 0.000000, -0.000000, -0.618857 + -0.783555, 0.000000, -0.000000, -0.621323 + -0.781598, 0.000000, -0.000000, -0.623782 + -0.779634, 0.000000, -0.000000, -0.626235 + -0.777662, 0.000000, -0.000000, -0.628682 + -0.775683, 0.000000, -0.000000, -0.631123 + -0.773695, 0.000000, -0.000000, -0.633558 + -0.771700, 0.000000, -0.000000, -0.635986 + -0.769698, 0.000000, -0.000000, -0.638408 + -0.767688, 0.000000, -0.000000, -0.640824 + -0.765670, 0.000000, -0.000000, -0.643233 + -0.763645, 0.000000, -0.000000, -0.645636 + -0.761612, 0.000000, -0.000000, -0.648033 + -0.759572, 0.000000, -0.000000, -0.650423 + -0.757524, 0.000000, -0.000000, -0.652807 + -0.755469, 0.000000, -0.000000, -0.655185 + -0.753406, 0.000000, -0.000000, -0.657555 + -0.751336, 0.000000, -0.000000, -0.659920 + -0.749258, 0.000000, -0.000000, -0.662278 + -0.747173, 0.000000, -0.000000, -0.664629 + -0.745081, 0.000000, -0.000000, -0.666974 + -0.742981, 0.000000, -0.000000, -0.669312 + -0.740874, 0.000000, -0.000000, -0.671644 + -0.738760, 0.000000, -0.000000, -0.673969 + -0.736638, 0.000000, -0.000000, -0.676287 + -0.734509, 0.000000, -0.000000, -0.678599 + -0.732373, 0.000000, -0.000000, -0.680904 + -0.730229, 0.000000, -0.000000, -0.683202 + -0.728079, 0.000000, -0.000000, -0.685493 + -0.725921, 0.000000, -0.000000, -0.687778 + -0.723756, 0.000000, -0.000000, -0.690056 + -0.721584, 0.000000, -0.000000, -0.692327 + -0.719404, 0.000000, -0.000000, -0.694591 + -0.717218, 0.000000, -0.000000, -0.696849 + -0.715025, 0.000000, -0.000000, -0.699099 + -0.712824, 0.000000, -0.000000, -0.701343 + -0.710616, 0.000000, -0.000000, -0.703580 + -0.708402, 0.000000, -0.000000, -0.705809 + -0.706180, 0.000000, -0.000000, -0.708032 + -0.703952, 0.000000, -0.000000, -0.710248 + -0.701716, 0.000000, -0.000000, -0.712457 + -0.699474, 0.000000, -0.000000, -0.714658 + -0.697224, 0.000000, -0.000000, -0.716853 + -0.694968, 0.000000, -0.000000, -0.719041 + -0.692705, 0.000000, -0.000000, -0.721221 + -0.690435, 0.000000, -0.000000, -0.723394 + -0.688158, 0.000000, -0.000000, -0.725561 + -0.685875, 0.000000, -0.000000, -0.727720 + -0.683584, 0.000000, -0.000000, -0.729872 + -0.681287, 0.000000, -0.000000, -0.732016 + -0.678983, 0.000000, -0.000000, -0.734154 + -0.676673, 0.000000, -0.000000, -0.736284 + -0.674356, 0.000000, -0.000000, -0.738407 + -0.672032, 0.000000, -0.000000, -0.740522 + -0.669701, 0.000000, -0.000000, -0.742631 + -0.667364, 0.000000, -0.000000, -0.744732 + -0.665020, 0.000000, -0.000000, -0.746825 + -0.662670, 0.000000, -0.000000, -0.748911 + -0.660313, 0.000000, -0.000000, -0.750990 + -0.657950, 0.000000, -0.000000, -0.753062 + -0.655580, 0.000000, -0.000000, -0.755126 + -0.653204, 0.000000, -0.000000, -0.757182 + -0.650821, 0.000000, -0.000000, -0.759231 + -0.648432, 0.000000, -0.000000, -0.761273 + -0.646036, 0.000000, -0.000000, -0.763307 + -0.643634, 0.000000, -0.000000, -0.765333 + -0.641226, 0.000000, -0.000000, -0.767352 + -0.638811, 0.000000, -0.000000, -0.769363 + -0.636390, 0.000000, -0.000000, -0.771367 + -0.633963, 0.000000, -0.000000, -0.773363 + -0.631529, 0.000000, -0.000000, -0.775352 + -0.629090, 0.000000, -0.000000, -0.777333 + -0.626644, 0.000000, -0.000000, -0.779306 + -0.624192, 0.000000, -0.000000, -0.781271 + -0.621733, 0.000000, -0.000000, -0.783229 + -0.619269, 0.000000, -0.000000, -0.785179 + -0.616798, 0.000000, -0.000000, -0.787121 + -0.614321, 0.000000, -0.000000, -0.789056 + -0.611839, 0.000000, -0.000000, -0.790983 + -0.609350, 0.000000, -0.000000, -0.792901 + -0.606855, 0.000000, -0.000000, -0.794812 + -0.604354, 0.000000, -0.000000, -0.796716 + -0.601848, 0.000000, -0.000000, -0.798611 + -0.599335, 0.000000, -0.000000, -0.800498 + -0.596816, 0.000000, -0.000000, -0.802378 + -0.594292, 0.000000, -0.000000, -0.804250 + -0.591761, 0.000000, -0.000000, -0.806113 + -0.589225, 0.000000, -0.000000, -0.807969 + -0.586683, 0.000000, -0.000000, -0.809817 + -0.584135, 0.000000, -0.000000, -0.811656 + -0.581581, 0.000000, -0.000000, -0.813488 + -0.579022, 0.000000, -0.000000, -0.815312 + -0.576457, 0.000000, -0.000000, -0.817127 + -0.573886, 0.000000, -0.000000, -0.818935 + -0.571310, 0.000000, -0.000000, -0.820734 + -0.568728, 0.000000, -0.000000, -0.822526 + -0.566140, 0.000000, -0.000000, -0.824309 + -0.563547, 0.000000, -0.000000, -0.826084 + -0.560948, 0.000000, -0.000000, -0.827851 + -0.558343, 0.000000, -0.000000, -0.829610 + -0.555734, 0.000000, -0.000000, -0.831360 + -0.553118, 0.000000, -0.000000, -0.833103 + -0.550497, 0.000000, -0.000000, -0.834837 + -0.547871, 0.000000, -0.000000, -0.836563 + -0.545239, 0.000000, -0.000000, -0.838280 + -0.542602, 0.000000, -0.000000, -0.839990 + -0.539960, 0.000000, -0.000000, -0.841691 + -0.537312, 0.000000, -0.000000, -0.843384 + -0.534659, 0.000000, -0.000000, -0.845068 + -0.532000, 0.000000, -0.000000, -0.846744 + -0.529337, 0.000000, -0.000000, -0.848412 + -0.526668, 0.000000, -0.000000, -0.850071 + -0.523994, 0.000000, -0.000000, -0.851722 + -0.521315, 0.000000, -0.000000, -0.853365 + -0.518630, 0.000000, -0.000000, -0.854999 + -0.515941, 0.000000, -0.000000, -0.856624 + -0.513246, 0.000000, -0.000000, -0.858241 + -0.510546, 0.000000, -0.000000, -0.859850 + -0.507842, 0.000000, -0.000000, -0.861450 + -0.505132, 0.000000, -0.000000, -0.863042 + -0.502417, 0.000000, -0.000000, -0.864625 + -0.499698, 0.000000, -0.000000, -0.866200 + -0.496973, 0.000000, -0.000000, -0.867766 + -0.494243, 0.000000, -0.000000, -0.869324 + -0.491509, 0.000000, -0.000000, -0.870872 + -0.488770, 0.000000, -0.000000, -0.872413 + -0.486026, 0.000000, -0.000000, -0.873945 + -0.483277, 0.000000, -0.000000, -0.875468 + -0.480523, 0.000000, -0.000000, -0.876982 + -0.477765, 0.000000, -0.000000, -0.878488 + -0.475002, 0.000000, -0.000000, -0.879985 + -0.472234, 0.000000, -0.000000, -0.881473 + -0.469461, 0.000000, -0.000000, -0.882953 + -0.466684, 0.000000, -0.000000, -0.884424 + -0.463902, 0.000000, -0.000000, -0.885886 + -0.461116, 0.000000, -0.000000, -0.887340 + -0.458325, 0.000000, -0.000000, -0.888785 + -0.455530, 0.000000, -0.000000, -0.890220 + -0.452730, 0.000000, -0.000000, -0.891648 + -0.449926, 0.000000, -0.000000, -0.893066 + -0.447117, 0.000000, -0.000000, -0.894476 + -0.444304, 0.000000, -0.000000, -0.895876 + -0.441486, 0.000000, -0.000000, -0.897268 + -0.438664, 0.000000, -0.000000, -0.898651 + -0.435838, 0.000000, -0.000000, -0.900025 + -0.433007, 0.000000, -0.000000, -0.901390 + -0.430172, 0.000000, -0.000000, -0.902747 + -0.427333, 0.000000, -0.000000, -0.904094 + -0.424490, 0.000000, -0.000000, -0.905433 + -0.421642, 0.000000, -0.000000, -0.906762 + -0.418791, 0.000000, -0.000000, -0.908083 + -0.415935, 0.000000, -0.000000, -0.909394 + -0.413075, 0.000000, -0.000000, -0.910697 + -0.410211, 0.000000, -0.000000, -0.911991 + -0.407343, 0.000000, -0.000000, -0.913275 + -0.404471, 0.000000, -0.000000, -0.914551 + -0.401594, 0.000000, -0.000000, -0.915818 + -0.398714, 0.000000, -0.000000, -0.917075 + -0.395830, 0.000000, -0.000000, -0.918324 + -0.392942, 0.000000, -0.000000, -0.919563 + -0.390051, 0.000000, -0.000000, -0.920793 + -0.387155, 0.000000, -0.000000, -0.922015 + -0.384256, 0.000000, -0.000000, -0.923227 + -0.381352, 0.000000, -0.000000, -0.924430 + -0.378445, 0.000000, -0.000000, -0.925624 + -0.375535, 0.000000, -0.000000, -0.926808 + -0.372620, 0.000000, -0.000000, -0.927984 + -0.369702, 0.000000, -0.000000, -0.929150 + -0.366780, 0.000000, -0.000000, -0.930308 + -0.363855, 0.000000, -0.000000, -0.931456 + -0.360926, 0.000000, -0.000000, -0.932595 + -0.357993, 0.000000, -0.000000, -0.933724 + -0.355057, 0.000000, -0.000000, -0.934845 + -0.352117, 0.000000, -0.000000, -0.935956 + -0.349174, 0.000000, -0.000000, -0.937058 + -0.346228, 0.000000, -0.000000, -0.938151 + -0.343278, 0.000000, -0.000000, -0.939234 + -0.340324, 0.000000, -0.000000, -0.940308 + -0.337368, 0.000000, -0.000000, -0.941373 + -0.334407, 0.000000, -0.000000, -0.942429 + -0.331444, 0.000000, -0.000000, -0.943475 + -0.328478, 0.000000, -0.000000, -0.944512 + -0.325508, 0.000000, -0.000000, -0.945539 + -0.322535, 0.000000, -0.000000, -0.946558 + -0.319558, 0.000000, -0.000000, -0.947567 + -0.316579, 0.000000, -0.000000, -0.948566 + -0.313596, 0.000000, -0.000000, -0.949556 + -0.310611, 0.000000, -0.000000, -0.950537 + -0.307622, 0.000000, -0.000000, -0.951509 + -0.304630, 0.000000, -0.000000, -0.952471 + -0.301635, 0.000000, -0.000000, -0.953423 + -0.298638, 0.000000, -0.000000, -0.954367 + -0.295637, 0.000000, -0.000000, -0.955300 + -0.292633, 0.000000, -0.000000, -0.956225 + -0.289627, 0.000000, -0.000000, -0.957140 + -0.286617, 0.000000, -0.000000, -0.958045 + -0.283605, 0.000000, -0.000000, -0.958941 + -0.280590, 0.000000, -0.000000, -0.959828 + -0.277572, 0.000000, -0.000000, -0.960705 + -0.274552, 0.000000, -0.000000, -0.961572 + -0.271529, 0.000000, -0.000000, -0.962430 + -0.268503, 0.000000, -0.000000, -0.963279 + -0.265474, 0.000000, -0.000000, -0.964118 + -0.262443, 0.000000, -0.000000, -0.964947 + -0.259409, 0.000000, -0.000000, -0.965767 + -0.256373, 0.000000, -0.000000, -0.966578 + -0.253334, 0.000000, -0.000000, -0.967379 + -0.250293, 0.000000, -0.000000, -0.968170 + -0.247249, 0.000000, -0.000000, -0.968952 + -0.244203, 0.000000, -0.000000, -0.969724 + -0.241154, 0.000000, -0.000000, -0.970487 + -0.238103, 0.000000, -0.000000, -0.971240 + -0.235049, 0.000000, -0.000000, -0.971983 + -0.231994, 0.000000, -0.000000, -0.972717 + -0.228936, 0.000000, -0.000000, -0.973442 + -0.225875, 0.000000, -0.000000, -0.974156 + -0.222813, 0.000000, -0.000000, -0.974861 + -0.219748, 0.000000, -0.000000, -0.975557 + -0.216681, 0.000000, -0.000000, -0.976242 + -0.213612, 0.000000, -0.000000, -0.976919 + -0.210541, 0.000000, -0.000000, -0.977585 + -0.207468, 0.000000, -0.000000, -0.978242 + -0.204392, 0.000000, -0.000000, -0.978889 + -0.201315, 0.000000, -0.000000, -0.979527 + -0.198236, 0.000000, -0.000000, -0.980154 + -0.195155, 0.000000, -0.000000, -0.980773 + -0.192071, 0.000000, -0.000000, -0.981381 + -0.188986, 0.000000, -0.000000, -0.981980 + -0.185899, 0.000000, -0.000000, -0.982569 + -0.182811, 0.000000, -0.000000, -0.983148 + -0.179720, 0.000000, -0.000000, -0.983718 + -0.176628, 0.000000, -0.000000, -0.984278 + -0.173534, 0.000000, -0.000000, -0.984828 + -0.170438, 0.000000, -0.000000, -0.985368 + -0.167340, 0.000000, -0.000000, -0.985899 + -0.164241, 0.000000, -0.000000, -0.986420 + -0.161140, 0.000000, -0.000000, -0.986932 + -0.158038, 0.000000, -0.000000, -0.987433 + -0.154934, 0.000000, -0.000000, -0.987925 + -0.151829, 0.000000, -0.000000, -0.988407 + -0.148722, 0.000000, -0.000000, -0.988879 + -0.145613, 0.000000, -0.000000, -0.989342 + -0.142503, 0.000000, -0.000000, -0.989794 + -0.139392, 0.000000, -0.000000, -0.990237 + -0.136279, 0.000000, -0.000000, -0.990670 + -0.133165, 0.000000, -0.000000, -0.991094 + -0.130050, 0.000000, -0.000000, -0.991507 + -0.126934, 0.000000, -0.000000, -0.991911 + -0.123816, 0.000000, -0.000000, -0.992305 + -0.120697, 0.000000, -0.000000, -0.992689 + -0.117576, 0.000000, -0.000000, -0.993064 + -0.114455, 0.000000, -0.000000, -0.993428 + -0.111332, 0.000000, -0.000000, -0.993783 + -0.108209, 0.000000, -0.000000, -0.994128 + -0.105084, 0.000000, -0.000000, -0.994463 + -0.101958, 0.000000, -0.000000, -0.994789 + -0.098832, 0.000000, -0.000000, -0.995104 + -0.095704, 0.000000, -0.000000, -0.995410 + -0.092575, 0.000000, -0.000000, -0.995706 + -0.089446, 0.000000, -0.000000, -0.995992 + -0.086315, 0.000000, -0.000000, -0.996268 + -0.083184, 0.000000, -0.000000, -0.996534 + -0.080052, 0.000000, -0.000000, -0.996791 + -0.076919, 0.000000, -0.000000, -0.997037 + -0.073785, 0.000000, -0.000000, -0.997274 + -0.070650, 0.000000, -0.000000, -0.997501 + -0.067515, 0.000000, -0.000000, -0.997718 + -0.064380, 0.000000, -0.000000, -0.997925 + -0.061243, 0.000000, -0.000000, -0.998123 + -0.058106, 0.000000, -0.000000, -0.998310 + -0.054968, 0.000000, -0.000000, -0.998488 + -0.051830, 0.000000, -0.000000, -0.998656 + -0.048692, 0.000000, -0.000000, -0.998814 + -0.045553, 0.000000, -0.000000, -0.998962 + -0.042413, 0.000000, -0.000000, -0.999100 + -0.039273, 0.000000, -0.000000, -0.999229 + -0.036132, 0.000000, -0.000000, -0.999347 + -0.032992, 0.000000, -0.000000, -0.999456 + -0.029851, 0.000000, -0.000000, -0.999554 + -0.026709, 0.000000, -0.000000, -0.999643 + -0.023568, 0.000000, -0.000000, -0.999722 + -0.020426, 0.000000, -0.000000, -0.999791 + -0.017284, 0.000000, -0.000000, -0.999851 + -0.014141, 0.000000, -0.000000, -0.999900 + -0.010999, 0.000000, -0.000000, -0.999940 + -0.007857, 0.000000, -0.000000, -0.999969 + -0.004714, 0.000000, -0.000000, -0.999989 + -0.001571, 0.000000, -0.000000, -0.999999 + 0.001571, 0.000000, 0.000000, -0.999999 + 0.004714, 0.000000, 0.000000, -0.999989 + 0.007857, 0.000000, 0.000000, -0.999969 + 0.010999, 0.000000, 0.000000, -0.999940 + 0.014141, 0.000000, 0.000000, -0.999900 + 0.017284, 0.000000, 0.000000, -0.999851 + 0.020426, 0.000000, 0.000000, -0.999791 + 0.023568, 0.000000, 0.000000, -0.999722 + 0.026709, 0.000000, 0.000000, -0.999643 + 0.029851, 0.000000, 0.000000, -0.999554 + 0.032992, 0.000000, 0.000000, -0.999456 + 0.036132, 0.000000, 0.000000, -0.999347 + 0.039273, 0.000000, 0.000000, -0.999229 + 0.042413, 0.000000, 0.000000, -0.999100 + 0.045553, 0.000000, 0.000000, -0.998962 + 0.048692, 0.000000, 0.000000, -0.998814 + 0.051830, 0.000000, 0.000000, -0.998656 + 0.054968, 0.000000, 0.000000, -0.998488 + 0.058106, 0.000000, 0.000000, -0.998310 + 0.061243, 0.000000, 0.000000, -0.998123 + 0.064380, 0.000000, 0.000000, -0.997925 + 0.067515, 0.000000, 0.000000, -0.997718 + 0.070650, 0.000000, 0.000000, -0.997501 + 0.073785, 0.000000, 0.000000, -0.997274 + 0.076919, 0.000000, 0.000000, -0.997037 + 0.080052, 0.000000, 0.000000, -0.996791 + 0.083184, 0.000000, 0.000000, -0.996534 + 0.086315, 0.000000, 0.000000, -0.996268 + 0.089446, 0.000000, 0.000000, -0.995992 + 0.092575, 0.000000, 0.000000, -0.995706 + 0.095704, 0.000000, 0.000000, -0.995410 + 0.098832, 0.000000, 0.000000, -0.995104 + 0.101958, 0.000000, 0.000000, -0.994789 + 0.105084, 0.000000, 0.000000, -0.994463 + 0.108209, 0.000000, 0.000000, -0.994128 + 0.111332, 0.000000, 0.000000, -0.993783 + 0.114455, 0.000000, 0.000000, -0.993428 + 0.117576, 0.000000, 0.000000, -0.993064 + 0.120697, 0.000000, 0.000000, -0.992689 + 0.123816, 0.000000, 0.000000, -0.992305 + 0.126934, 0.000000, 0.000000, -0.991911 + 0.130050, 0.000000, 0.000000, -0.991507 + 0.133165, 0.000000, 0.000000, -0.991094 + 0.136279, 0.000000, 0.000000, -0.990670 + 0.139392, 0.000000, 0.000000, -0.990237 + 0.142503, 0.000000, 0.000000, -0.989794 + 0.145613, 0.000000, 0.000000, -0.989342 + 0.148722, 0.000000, 0.000000, -0.988879 + 0.151829, 0.000000, 0.000000, -0.988407 + 0.154934, 0.000000, 0.000000, -0.987925 + 0.158038, 0.000000, 0.000000, -0.987433 + 0.161140, 0.000000, 0.000000, -0.986932 + 0.164241, 0.000000, 0.000000, -0.986420 + 0.167340, 0.000000, 0.000000, -0.985899 + 0.170438, 0.000000, 0.000000, -0.985368 + 0.173534, 0.000000, 0.000000, -0.984828 + 0.176628, 0.000000, 0.000000, -0.984278 + 0.179720, 0.000000, 0.000000, -0.983718 + 0.182811, 0.000000, 0.000000, -0.983148 + 0.185899, 0.000000, 0.000000, -0.982569 + 0.188986, 0.000000, 0.000000, -0.981980 + 0.192071, 0.000000, 0.000000, -0.981381 + 0.195155, 0.000000, 0.000000, -0.980773 + 0.198236, 0.000000, 0.000000, -0.980154 + 0.201315, 0.000000, 0.000000, -0.979527 + 0.204392, 0.000000, 0.000000, -0.978889 + 0.207468, 0.000000, 0.000000, -0.978242 + 0.210541, 0.000000, 0.000000, -0.977585 + 0.213612, 0.000000, 0.000000, -0.976919 + 0.216681, 0.000000, 0.000000, -0.976242 + 0.219748, 0.000000, 0.000000, -0.975557 + 0.222813, 0.000000, 0.000000, -0.974861 + 0.225875, 0.000000, 0.000000, -0.974156 + 0.228936, 0.000000, 0.000000, -0.973442 + 0.231994, 0.000000, 0.000000, -0.972717 + 0.235049, 0.000000, 0.000000, -0.971983 + 0.238103, 0.000000, 0.000000, -0.971240 + 0.241154, 0.000000, 0.000000, -0.970487 + 0.244203, 0.000000, 0.000000, -0.969724 + 0.247249, 0.000000, 0.000000, -0.968952 + 0.250293, 0.000000, 0.000000, -0.968170 + 0.253334, 0.000000, 0.000000, -0.967379 + 0.256373, 0.000000, 0.000000, -0.966578 + 0.259409, 0.000000, 0.000000, -0.965767 + 0.262443, 0.000000, 0.000000, -0.964947 + 0.265474, 0.000000, 0.000000, -0.964118 + 0.268503, 0.000000, 0.000000, -0.963279 + 0.271529, 0.000000, 0.000000, -0.962430 + 0.274552, 0.000000, 0.000000, -0.961572 + 0.277572, 0.000000, 0.000000, -0.960705 + 0.280590, 0.000000, 0.000000, -0.959828 + 0.283605, 0.000000, 0.000000, -0.958941 + 0.286617, 0.000000, 0.000000, -0.958045 + 0.289627, 0.000000, 0.000000, -0.957140 + 0.292633, 0.000000, 0.000000, -0.956225 + 0.295637, 0.000000, 0.000000, -0.955300 + 0.298638, 0.000000, 0.000000, -0.954367 + 0.301635, 0.000000, 0.000000, -0.953423 + 0.304630, 0.000000, 0.000000, -0.952471 + 0.307622, 0.000000, 0.000000, -0.951509 + 0.310611, 0.000000, 0.000000, -0.950537 + 0.313596, 0.000000, 0.000000, -0.949556 + 0.316579, 0.000000, 0.000000, -0.948566 + 0.319558, 0.000000, 0.000000, -0.947567 + 0.322535, 0.000000, 0.000000, -0.946558 + 0.325508, 0.000000, 0.000000, -0.945539 + 0.328478, 0.000000, 0.000000, -0.944512 + 0.331444, 0.000000, 0.000000, -0.943475 + 0.334407, 0.000000, 0.000000, -0.942429 + 0.337368, 0.000000, 0.000000, -0.941373 + 0.340324, 0.000000, 0.000000, -0.940308 + 0.343278, 0.000000, 0.000000, -0.939234 + 0.346228, 0.000000, 0.000000, -0.938151 + 0.349174, 0.000000, 0.000000, -0.937058 + 0.352117, 0.000000, 0.000000, -0.935956 + 0.355057, 0.000000, 0.000000, -0.934845 + 0.357993, 0.000000, 0.000000, -0.933724 + 0.360926, 0.000000, 0.000000, -0.932595 + 0.363855, 0.000000, 0.000000, -0.931456 + 0.366780, 0.000000, 0.000000, -0.930308 + 0.369702, 0.000000, 0.000000, -0.929150 + 0.372620, 0.000000, 0.000000, -0.927984 + 0.375535, 0.000000, 0.000000, -0.926808 + 0.378445, 0.000000, 0.000000, -0.925624 + 0.381352, 0.000000, 0.000000, -0.924430 + 0.384256, 0.000000, 0.000000, -0.923227 + 0.387155, 0.000000, 0.000000, -0.922015 + 0.390051, 0.000000, 0.000000, -0.920793 + 0.392942, 0.000000, 0.000000, -0.919563 + 0.395830, 0.000000, 0.000000, -0.918324 + 0.398714, 0.000000, 0.000000, -0.917075 + 0.401594, 0.000000, 0.000000, -0.915818 + 0.404471, 0.000000, 0.000000, -0.914551 + 0.407343, 0.000000, 0.000000, -0.913275 + 0.410211, 0.000000, 0.000000, -0.911991 + 0.413075, 0.000000, 0.000000, -0.910697 + 0.415935, 0.000000, 0.000000, -0.909394 + 0.418791, 0.000000, 0.000000, -0.908083 + 0.421642, 0.000000, 0.000000, -0.906762 + 0.424490, 0.000000, 0.000000, -0.905433 + 0.427333, 0.000000, 0.000000, -0.904094 + 0.430172, 0.000000, 0.000000, -0.902747 + 0.433007, 0.000000, 0.000000, -0.901390 + 0.435838, 0.000000, 0.000000, -0.900025 + 0.438664, 0.000000, 0.000000, -0.898651 + 0.441486, 0.000000, 0.000000, -0.897268 + 0.444304, 0.000000, 0.000000, -0.895876 + 0.447117, 0.000000, 0.000000, -0.894476 + 0.449926, 0.000000, 0.000000, -0.893066 + 0.452730, 0.000000, 0.000000, -0.891648 + 0.455530, 0.000000, 0.000000, -0.890220 + 0.458325, 0.000000, 0.000000, -0.888785 + 0.461116, 0.000000, 0.000000, -0.887340 + 0.463902, 0.000000, 0.000000, -0.885886 + 0.466684, 0.000000, 0.000000, -0.884424 + 0.469461, 0.000000, 0.000000, -0.882953 + 0.472234, 0.000000, 0.000000, -0.881473 + 0.475002, 0.000000, 0.000000, -0.879985 + 0.477765, 0.000000, 0.000000, -0.878488 + 0.480523, 0.000000, 0.000000, -0.876982 + 0.483277, 0.000000, 0.000000, -0.875468 + 0.486026, 0.000000, 0.000000, -0.873945 + 0.488770, 0.000000, 0.000000, -0.872413 + 0.491509, 0.000000, 0.000000, -0.870872 + 0.494243, 0.000000, 0.000000, -0.869324 + 0.496973, 0.000000, 0.000000, -0.867766 + 0.499698, 0.000000, 0.000000, -0.866200 + 0.502417, 0.000000, 0.000000, -0.864625 + 0.505132, 0.000000, 0.000000, -0.863042 + 0.507842, 0.000000, 0.000000, -0.861450 + 0.510546, 0.000000, 0.000000, -0.859850 + 0.513246, 0.000000, 0.000000, -0.858241 + 0.515941, 0.000000, 0.000000, -0.856624 + 0.518630, 0.000000, 0.000000, -0.854999 + 0.521315, 0.000000, 0.000000, -0.853365 + 0.523994, 0.000000, 0.000000, -0.851722 + 0.526668, 0.000000, 0.000000, -0.850071 + 0.529337, 0.000000, 0.000000, -0.848412 + 0.532000, 0.000000, 0.000000, -0.846744 + 0.534659, 0.000000, 0.000000, -0.845068 + 0.537312, 0.000000, 0.000000, -0.843384 + 0.539960, 0.000000, 0.000000, -0.841691 + 0.542602, 0.000000, 0.000000, -0.839990 + 0.545239, 0.000000, 0.000000, -0.838280 + 0.547871, 0.000000, 0.000000, -0.836563 + 0.550497, 0.000000, 0.000000, -0.834837 + 0.553118, 0.000000, 0.000000, -0.833103 + 0.555734, 0.000000, 0.000000, -0.831360 + 0.558343, 0.000000, 0.000000, -0.829610 + 0.560948, 0.000000, 0.000000, -0.827851 + 0.563547, 0.000000, 0.000000, -0.826084 + 0.566140, 0.000000, 0.000000, -0.824309 + 0.568728, 0.000000, 0.000000, -0.822526 + 0.571310, 0.000000, 0.000000, -0.820734 + 0.573886, 0.000000, 0.000000, -0.818935 + 0.576457, 0.000000, 0.000000, -0.817127 + 0.579022, 0.000000, 0.000000, -0.815312 + 0.581581, 0.000000, 0.000000, -0.813488 + 0.584135, 0.000000, 0.000000, -0.811656 + 0.586683, 0.000000, 0.000000, -0.809817 + 0.589225, 0.000000, 0.000000, -0.807969 + 0.591761, 0.000000, 0.000000, -0.806113 + 0.594292, 0.000000, 0.000000, -0.804250 + 0.596816, 0.000000, 0.000000, -0.802378 + 0.599335, 0.000000, 0.000000, -0.800498 + 0.601848, 0.000000, 0.000000, -0.798611 + 0.604354, 0.000000, 0.000000, -0.796716 + 0.606855, 0.000000, 0.000000, -0.794812 + 0.609350, 0.000000, 0.000000, -0.792901 + 0.611839, 0.000000, 0.000000, -0.790983 + 0.614321, 0.000000, 0.000000, -0.789056 + 0.616798, 0.000000, 0.000000, -0.787121 + 0.619269, 0.000000, 0.000000, -0.785179 + 0.621733, 0.000000, 0.000000, -0.783229 + 0.624192, 0.000000, 0.000000, -0.781271 + 0.626644, 0.000000, 0.000000, -0.779306 + 0.629090, 0.000000, 0.000000, -0.777333 + 0.631529, 0.000000, 0.000000, -0.775352 + 0.633963, 0.000000, 0.000000, -0.773363 + 0.636390, 0.000000, 0.000000, -0.771367 + 0.638811, 0.000000, 0.000000, -0.769363 + 0.641226, 0.000000, 0.000000, -0.767352 + 0.643634, 0.000000, 0.000000, -0.765333 + 0.646036, 0.000000, 0.000000, -0.763307 + 0.648432, 0.000000, 0.000000, -0.761273 + 0.650821, 0.000000, 0.000000, -0.759231 + 0.653204, 0.000000, 0.000000, -0.757182 + 0.655580, 0.000000, 0.000000, -0.755126 + 0.657950, 0.000000, 0.000000, -0.753062 + 0.660313, 0.000000, 0.000000, -0.750990 + 0.662670, 0.000000, 0.000000, -0.748911 + 0.665020, 0.000000, 0.000000, -0.746825 + 0.667364, 0.000000, 0.000000, -0.744732 + 0.669701, 0.000000, 0.000000, -0.742631 + 0.672032, 0.000000, 0.000000, -0.740522 + 0.674356, 0.000000, 0.000000, -0.738407 + 0.676673, 0.000000, 0.000000, -0.736284 + 0.678983, 0.000000, 0.000000, -0.734154 + 0.681287, 0.000000, 0.000000, -0.732016 + 0.683584, 0.000000, 0.000000, -0.729872 + 0.685875, 0.000000, 0.000000, -0.727720 + 0.688158, 0.000000, 0.000000, -0.725561 + 0.690435, 0.000000, 0.000000, -0.723394 + 0.692705, 0.000000, 0.000000, -0.721221 + 0.694968, 0.000000, 0.000000, -0.719041 + 0.697224, 0.000000, 0.000000, -0.716853 + 0.699474, 0.000000, 0.000000, -0.714658 + 0.701716, 0.000000, 0.000000, -0.712457 + 0.703952, 0.000000, 0.000000, -0.710248 + 0.706180, 0.000000, 0.000000, -0.708032 + 0.708402, 0.000000, 0.000000, -0.705809 + 0.710616, 0.000000, 0.000000, -0.703580 + 0.712824, 0.000000, 0.000000, -0.701343 + 0.715025, 0.000000, 0.000000, -0.699099 + 0.717218, 0.000000, 0.000000, -0.696849 + 0.719404, 0.000000, 0.000000, -0.694591 + 0.721584, 0.000000, 0.000000, -0.692327 + 0.723756, 0.000000, 0.000000, -0.690056 + 0.725921, 0.000000, 0.000000, -0.687778 + 0.728079, 0.000000, 0.000000, -0.685493 + 0.730229, 0.000000, 0.000000, -0.683202 + 0.732373, 0.000000, 0.000000, -0.680904 + 0.734509, 0.000000, 0.000000, -0.678599 + 0.736638, 0.000000, 0.000000, -0.676287 + 0.738760, 0.000000, 0.000000, -0.673969 + 0.740874, 0.000000, 0.000000, -0.671644 + 0.742981, 0.000000, 0.000000, -0.669312 + 0.745081, 0.000000, 0.000000, -0.666974 + 0.747173, 0.000000, 0.000000, -0.664629 + 0.749258, 0.000000, 0.000000, -0.662278 + 0.751336, 0.000000, 0.000000, -0.659920 + 0.753406, 0.000000, 0.000000, -0.657555 + 0.755469, 0.000000, 0.000000, -0.655185 + 0.757524, 0.000000, 0.000000, -0.652807 + 0.759572, 0.000000, 0.000000, -0.650423 + 0.761612, 0.000000, 0.000000, -0.648033 + 0.763645, 0.000000, 0.000000, -0.645636 + 0.765670, 0.000000, 0.000000, -0.643233 + 0.767688, 0.000000, 0.000000, -0.640824 + 0.769698, 0.000000, 0.000000, -0.638408 + 0.771700, 0.000000, 0.000000, -0.635986 + 0.773695, 0.000000, 0.000000, -0.633558 + 0.775683, 0.000000, 0.000000, -0.631123 + 0.777662, 0.000000, 0.000000, -0.628682 + 0.779634, 0.000000, 0.000000, -0.626235 + 0.781598, 0.000000, 0.000000, -0.623782 + 0.783555, 0.000000, 0.000000, -0.621323 + 0.785503, 0.000000, 0.000000, -0.618857 + 0.787444, 0.000000, 0.000000, -0.616386 + 0.789377, 0.000000, 0.000000, -0.613908 + 0.791303, 0.000000, 0.000000, -0.611424 + 0.793220, 0.000000, 0.000000, -0.608935 + 0.795130, 0.000000, 0.000000, -0.606439 + 0.797032, 0.000000, 0.000000, -0.603937 + 0.798926, 0.000000, 0.000000, -0.601429 + 0.800812, 0.000000, 0.000000, -0.598915 + 0.802690, 0.000000, 0.000000, -0.596396 + 0.804561, 0.000000, 0.000000, -0.593870 + 0.806423, 0.000000, 0.000000, -0.591339 + 0.808277, 0.000000, 0.000000, -0.588802 + 0.810124, 0.000000, 0.000000, -0.586259 + 0.811962, 0.000000, 0.000000, -0.583710 + 0.813793, 0.000000, 0.000000, -0.581155 + 0.815615, 0.000000, 0.000000, -0.578595 + 0.817429, 0.000000, 0.000000, -0.576029 + 0.819235, 0.000000, 0.000000, -0.573457 + 0.821034, 0.000000, 0.000000, -0.570880 + 0.822824, 0.000000, 0.000000, -0.568297 + 0.824606, 0.000000, 0.000000, -0.565708 + 0.826379, 0.000000, 0.000000, -0.563114 + 0.828145, 0.000000, 0.000000, -0.560514 + 0.829902, 0.000000, 0.000000, -0.557909 + 0.831651, 0.000000, 0.000000, -0.555298 + 0.833392, 0.000000, 0.000000, -0.552682 + 0.835125, 0.000000, 0.000000, -0.550060 + 0.836850, 0.000000, 0.000000, -0.547433 + 0.838566, 0.000000, 0.000000, -0.544800 + 0.840274, 0.000000, 0.000000, -0.542162 + 0.841974, 0.000000, 0.000000, -0.539519 + 0.843665, 0.000000, 0.000000, -0.536870 + 0.845348, 0.000000, 0.000000, -0.534216 + 0.847023, 0.000000, 0.000000, -0.531557 + 0.848689, 0.000000, 0.000000, -0.528892 + 0.850347, 0.000000, 0.000000, -0.526223 + 0.851996, 0.000000, 0.000000, -0.523548 + 0.853638, 0.000000, 0.000000, -0.520868 + 0.855270, 0.000000, 0.000000, -0.518182 + 0.856894, 0.000000, 0.000000, -0.515492 + 0.858510, 0.000000, 0.000000, -0.512797 + 0.860117, 0.000000, 0.000000, -0.510096 + 0.861716, 0.000000, 0.000000, -0.507390 + 0.863307, 0.000000, 0.000000, -0.504680 + 0.864888, 0.000000, 0.000000, -0.501964 + 0.866462, 0.000000, 0.000000, -0.499244 + 0.868026, 0.000000, 0.000000, -0.496518 + 0.869582, 0.000000, 0.000000, -0.493788 + 0.871130, 0.000000, 0.000000, -0.491053 + 0.872669, 0.000000, 0.000000, -0.488313 + 0.874199, 0.000000, 0.000000, -0.485568 + 0.875721, 0.000000, 0.000000, -0.482818 + 0.877234, 0.000000, 0.000000, -0.480064 + 0.878738, 0.000000, 0.000000, -0.477305 + 0.880234, 0.000000, 0.000000, -0.474541 + 0.881721, 0.000000, 0.000000, -0.471772 + 0.883199, 0.000000, 0.000000, -0.468999 + 0.884668, 0.000000, 0.000000, -0.466221 + 0.886129, 0.000000, 0.000000, -0.463438 + 0.887581, 0.000000, 0.000000, -0.460651 + 0.889024, 0.000000, 0.000000, -0.457860 + 0.890459, 0.000000, 0.000000, -0.455064 + 0.891885, 0.000000, 0.000000, -0.452263 + 0.893302, 0.000000, 0.000000, -0.449458 + 0.894710, 0.000000, 0.000000, -0.446648 + 0.896109, 0.000000, 0.000000, -0.443834 + 0.897499, 0.000000, 0.000000, -0.441016 + 0.898881, 0.000000, 0.000000, -0.438193 + 0.900253, 0.000000, 0.000000, -0.435366 + 0.901617, 0.000000, 0.000000, -0.432535 + 0.902972, 0.000000, 0.000000, -0.429699 + 0.904318, 0.000000, 0.000000, -0.426860 + 0.905655, 0.000000, 0.000000, -0.424015 + 0.906983, 0.000000, 0.000000, -0.421167 + 0.908302, 0.000000, 0.000000, -0.418315 + 0.909612, 0.000000, 0.000000, -0.415458 + 0.910913, 0.000000, 0.000000, -0.412598 + 0.912206, 0.000000, 0.000000, -0.409733 + 0.913489, 0.000000, 0.000000, -0.406864 + 0.914763, 0.000000, 0.000000, -0.403991 + 0.916028, 0.000000, 0.000000, -0.401115 + 0.917284, 0.000000, 0.000000, -0.398234 + 0.918531, 0.000000, 0.000000, -0.395349 + 0.919769, 0.000000, 0.000000, -0.392461 + 0.920998, 0.000000, 0.000000, -0.389568 + 0.922217, 0.000000, 0.000000, -0.386672 + 0.923428, 0.000000, 0.000000, -0.383772 + 0.924629, 0.000000, 0.000000, -0.380868 + 0.925822, 0.000000, 0.000000, -0.377960 + 0.927005, 0.000000, 0.000000, -0.375049 + 0.928179, 0.000000, 0.000000, -0.372134 + 0.929344, 0.000000, 0.000000, -0.369215 + 0.930500, 0.000000, 0.000000, -0.366293 + 0.931646, 0.000000, 0.000000, -0.363367 + 0.932784, 0.000000, 0.000000, -0.360437 + 0.933912, 0.000000, 0.000000, -0.357504 + 0.935031, 0.000000, 0.000000, -0.354567 + 0.936140, 0.000000, 0.000000, -0.351627 + 0.937241, 0.000000, 0.000000, -0.348683 + 0.938332, 0.000000, 0.000000, -0.345736 + 0.939414, 0.000000, 0.000000, -0.342786 + 0.940486, 0.000000, 0.000000, -0.339832 + 0.941550, 0.000000, 0.000000, -0.336874 + 0.942604, 0.000000, 0.000000, -0.333914 + 0.943648, 0.000000, 0.000000, -0.330950 + 0.944684, 0.000000, 0.000000, -0.327983 + 0.945710, 0.000000, 0.000000, -0.325012 + 0.946727, 0.000000, 0.000000, -0.322039 + 0.947734, 0.000000, 0.000000, -0.319062 + 0.948732, 0.000000, 0.000000, -0.316082 + 0.949721, 0.000000, 0.000000, -0.313099 + 0.950700, 0.000000, 0.000000, -0.310113 + 0.951670, 0.000000, 0.000000, -0.307123 + 0.952630, 0.000000, 0.000000, -0.304131 + 0.953581, 0.000000, 0.000000, -0.301136 + 0.954523, 0.000000, 0.000000, -0.298138 + 0.955455, 0.000000, 0.000000, -0.295136 + 0.956378, 0.000000, 0.000000, -0.292132 + 0.957291, 0.000000, 0.000000, -0.289125 + 0.958195, 0.000000, 0.000000, -0.286116 + 0.959090, 0.000000, 0.000000, -0.283103 + 0.959975, 0.000000, 0.000000, -0.280087 + 0.960850, 0.000000, 0.000000, -0.277069 + 0.961716, 0.000000, 0.000000, -0.274048 + 0.962572, 0.000000, 0.000000, -0.271025 + 0.963419, 0.000000, 0.000000, -0.267998 + 0.964257, 0.000000, 0.000000, -0.264969 + 0.965085, 0.000000, 0.000000, -0.261938 + 0.965903, 0.000000, 0.000000, -0.258903 + 0.966712, 0.000000, 0.000000, -0.255867 + 0.967511, 0.000000, 0.000000, -0.252827 + 0.968301, 0.000000, 0.000000, -0.249786 + 0.969081, 0.000000, 0.000000, -0.246741 + 0.969852, 0.000000, 0.000000, -0.243695 + 0.970613, 0.000000, 0.000000, -0.240646 + 0.971365, 0.000000, 0.000000, -0.237594 + 0.972106, 0.000000, 0.000000, -0.234540 + 0.972839, 0.000000, 0.000000, -0.231484 + 0.973561, 0.000000, 0.000000, -0.228426 + 0.974274, 0.000000, 0.000000, -0.225365 + 0.974978, 0.000000, 0.000000, -0.222302 + 0.975672, 0.000000, 0.000000, -0.219237 + 0.976356, 0.000000, 0.000000, -0.216170 + 0.977030, 0.000000, 0.000000, -0.213100 + 0.977695, 0.000000, 0.000000, -0.210029 + 0.978350, 0.000000, 0.000000, -0.206955 + 0.978996, 0.000000, 0.000000, -0.203880 + 0.979632, 0.000000, 0.000000, -0.200802 + 0.980258, 0.000000, 0.000000, -0.197722 + 0.980875, 0.000000, 0.000000, -0.194641 + 0.981481, 0.000000, 0.000000, -0.191557 + 0.982079, 0.000000, 0.000000, -0.188472 + 0.982666, 0.000000, 0.000000, -0.185385 + 0.983244, 0.000000, 0.000000, -0.182296 + 0.983812, 0.000000, 0.000000, -0.179205 + 0.984370, 0.000000, 0.000000, -0.176112 + 0.984919, 0.000000, 0.000000, -0.173018 + 0.985458, 0.000000, 0.000000, -0.169922 + 0.985987, 0.000000, 0.000000, -0.166824 + 0.986506, 0.000000, 0.000000, -0.163724 + 0.987016, 0.000000, 0.000000, -0.160623 + 0.987516, 0.000000, 0.000000, -0.157521 + 0.988006, 0.000000, 0.000000, -0.154417 + 0.988486, 0.000000, 0.000000, -0.151311 + 0.988957, 0.000000, 0.000000, -0.148204 + 0.989418, 0.000000, 0.000000, -0.145095 + 0.989869, 0.000000, 0.000000, -0.141985 + 0.990310, 0.000000, 0.000000, -0.138873 + 0.990742, 0.000000, 0.000000, -0.135761 + 0.991163, 0.000000, 0.000000, -0.132646 + 0.991575, 0.000000, 0.000000, -0.129531 + 0.991978, 0.000000, 0.000000, -0.126414 + 0.992370, 0.000000, 0.000000, -0.123296 + 0.992753, 0.000000, 0.000000, -0.120177 + 0.993125, 0.000000, 0.000000, -0.117056 + 0.993488, 0.000000, 0.000000, -0.113935 + 0.993841, 0.000000, 0.000000, -0.110812 + 0.994185, 0.000000, 0.000000, -0.107688 + 0.994518, 0.000000, 0.000000, -0.104563 + 0.994842, 0.000000, 0.000000, -0.101437 + 0.995156, 0.000000, 0.000000, -0.098310 + 0.995460, 0.000000, 0.000000, -0.095182 + 0.995754, 0.000000, 0.000000, -0.092054 + 0.996038, 0.000000, 0.000000, -0.088924 + 0.996313, 0.000000, 0.000000, -0.085793 + 0.996578, 0.000000, 0.000000, -0.082662 + 0.996833, 0.000000, 0.000000, -0.079529 + 0.997078, 0.000000, 0.000000, -0.076396 + 0.997313, 0.000000, 0.000000, -0.073263 + 0.997538, 0.000000, 0.000000, -0.070128 + 0.997753, 0.000000, 0.000000, -0.066993 + 0.997959, 0.000000, 0.000000, -0.063857 + 0.998155, 0.000000, 0.000000, -0.060720 + 0.998341, 0.000000, 0.000000, -0.057583 + 0.998517, 0.000000, 0.000000, -0.054445 + 0.998683, 0.000000, 0.000000, -0.051307 + 0.998839, 0.000000, 0.000000, -0.048169 + 0.998986, 0.000000, 0.000000, -0.045029 + 0.999122, 0.000000, 0.000000, -0.041890 + 0.999249, 0.000000, 0.000000, -0.038750 + 0.999366, 0.000000, 0.000000, -0.035609 + 0.999473, 0.000000, 0.000000, -0.032468 + 0.999570, 0.000000, 0.000000, -0.029327 + 0.999657, 0.000000, 0.000000, -0.026186 + 0.999734, 0.000000, 0.000000, -0.023044 + 0.999802, 0.000000, 0.000000, -0.019902 + 0.999860, 0.000000, 0.000000, -0.016760 + 0.999907, 0.000000, 0.000000, -0.013618 + 0.999945, 0.000000, 0.000000, -0.010475 + 0.999973, 0.000000, 0.000000, -0.007333 + 0.999991, 0.000000, 0.000000, -0.004190 + 0.999999, 0.000000, 0.000000, -0.001048 + 0.999998, 0.000000, 0.000000, 0.002095 + 0.999986, 0.000000, 0.000000, 0.005238 + 0.999965, 0.000000, 0.000000, 0.008380 + 0.999934, 0.000000, 0.000000, 0.011523 + 0.999892, 0.000000, 0.000000, 0.014665 + 0.999841, 0.000000, 0.000000, 0.017807 + 0.999781, 0.000000, 0.000000, 0.020949 + 0.999710, 0.000000, 0.000000, 0.024091 + 0.999629, 0.000000, 0.000000, 0.027233 + 0.999539, 0.000000, 0.000000, 0.030374 + 0.999438, 0.000000, 0.000000, 0.033515 + 0.999328, 0.000000, 0.000000, 0.036656 + 0.999208, 0.000000, 0.000000, 0.039796 + 0.999078, 0.000000, 0.000000, 0.042936 + 0.998938, 0.000000, 0.000000, 0.046076 + 0.998788, 0.000000, 0.000000, 0.049215 + 0.998629, 0.000000, 0.000000, 0.052353 + 0.998459, 0.000000, 0.000000, 0.055491 + 0.998280, 0.000000, 0.000000, 0.058629 + 0.998091, 0.000000, 0.000000, 0.061766 + 0.997892, 0.000000, 0.000000, 0.064902 + 0.997683, 0.000000, 0.000000, 0.068038 + 0.997464, 0.000000, 0.000000, 0.071173 + 0.997235, 0.000000, 0.000000, 0.074307 + 0.996997, 0.000000, 0.000000, 0.077441 + 0.996749, 0.000000, 0.000000, 0.080574 + 0.996491, 0.000000, 0.000000, 0.083706 + 0.996223, 0.000000, 0.000000, 0.086837 + 0.995945, 0.000000, 0.000000, 0.089967 + 0.995657, 0.000000, 0.000000, 0.093097 + 0.995360, 0.000000, 0.000000, 0.096225 + 0.995052, 0.000000, 0.000000, 0.099353 + 0.994735, 0.000000, 0.000000, 0.102479 + 0.994408, 0.000000, 0.000000, 0.105605 + 0.994071, 0.000000, 0.000000, 0.108729 + 0.993725, 0.000000, 0.000000, 0.111853 + 0.993368, 0.000000, 0.000000, 0.114975 + 0.993002, 0.000000, 0.000000, 0.118097 + 0.992626, 0.000000, 0.000000, 0.121217 + 0.992240, 0.000000, 0.000000, 0.124335 + 0.991845, 0.000000, 0.000000, 0.127453 + 0.991439, 0.000000, 0.000000, 0.130569 + 0.991024, 0.000000, 0.000000, 0.133685 + 0.990599, 0.000000, 0.000000, 0.136798 + 0.990164, 0.000000, 0.000000, 0.139911 + 0.989720, 0.000000, 0.000000, 0.143022 + 0.989265, 0.000000, 0.000000, 0.146131 + 0.988801, 0.000000, 0.000000, 0.149240 + 0.988327, 0.000000, 0.000000, 0.152346 + 0.987844, 0.000000, 0.000000, 0.155451 + 0.987350, 0.000000, 0.000000, 0.158555 + 0.986847, 0.000000, 0.000000, 0.161657 + 0.986334, 0.000000, 0.000000, 0.164758 + 0.985811, 0.000000, 0.000000, 0.167857 + 0.985279, 0.000000, 0.000000, 0.170954 + 0.984737, 0.000000, 0.000000, 0.174049 + 0.984185, 0.000000, 0.000000, 0.177143 + 0.983624, 0.000000, 0.000000, 0.180235 + 0.983052, 0.000000, 0.000000, 0.183326 + 0.982471, 0.000000, 0.000000, 0.186414 + 0.981881, 0.000000, 0.000000, 0.189501 + 0.981280, 0.000000, 0.000000, 0.192585 + 0.980670, 0.000000, 0.000000, 0.195668 + 0.980050, 0.000000, 0.000000, 0.198749 + 0.979421, 0.000000, 0.000000, 0.201828 + 0.978782, 0.000000, 0.000000, 0.204905 + 0.978133, 0.000000, 0.000000, 0.207980 + 0.977475, 0.000000, 0.000000, 0.211053 + 0.976807, 0.000000, 0.000000, 0.214124 + 0.976129, 0.000000, 0.000000, 0.217192 + 0.975441, 0.000000, 0.000000, 0.220259 + 0.974744, 0.000000, 0.000000, 0.223323 + 0.974038, 0.000000, 0.000000, 0.226385 + 0.973322, 0.000000, 0.000000, 0.229445 + 0.972596, 0.000000, 0.000000, 0.232503 + 0.971860, 0.000000, 0.000000, 0.235558 + 0.971115, 0.000000, 0.000000, 0.238611 + 0.970360, 0.000000, 0.000000, 0.241662 + 0.969596, 0.000000, 0.000000, 0.244710 + 0.968822, 0.000000, 0.000000, 0.247756 + 0.968039, 0.000000, 0.000000, 0.250800 + 0.967246, 0.000000, 0.000000, 0.253841 + 0.966444, 0.000000, 0.000000, 0.256879 + 0.965631, 0.000000, 0.000000, 0.259915 + 0.964810, 0.000000, 0.000000, 0.262948 + 0.963979, 0.000000, 0.000000, 0.265979 + 0.963138, 0.000000, 0.000000, 0.269007 + 0.962288, 0.000000, 0.000000, 0.272033 + 0.961428, 0.000000, 0.000000, 0.275056 + 0.960559, 0.000000, 0.000000, 0.278076 + 0.959681, 0.000000, 0.000000, 0.281093 + 0.958792, 0.000000, 0.000000, 0.284107 + 0.957895, 0.000000, 0.000000, 0.287119 + 0.956988, 0.000000, 0.000000, 0.290128 + 0.956071, 0.000000, 0.000000, 0.293134 + 0.955145, 0.000000, 0.000000, 0.296137 + 0.954210, 0.000000, 0.000000, 0.299137 + 0.953265, 0.000000, 0.000000, 0.302135 + 0.952311, 0.000000, 0.000000, 0.305129 + 0.951347, 0.000000, 0.000000, 0.308120 + 0.950374, 0.000000, 0.000000, 0.311108 + 0.949392, 0.000000, 0.000000, 0.314094 + 0.948400, 0.000000, 0.000000, 0.317076 + 0.947399, 0.000000, 0.000000, 0.320055 + 0.946389, 0.000000, 0.000000, 0.323030 + 0.945369, 0.000000, 0.000000, 0.326003 + 0.944340, 0.000000, 0.000000, 0.328972 + 0.943301, 0.000000, 0.000000, 0.331938 + 0.942253, 0.000000, 0.000000, 0.334901 + 0.941196, 0.000000, 0.000000, 0.337861 + 0.940130, 0.000000, 0.000000, 0.340817 + 0.939054, 0.000000, 0.000000, 0.343770 + 0.937969, 0.000000, 0.000000, 0.346719 + 0.936875, 0.000000, 0.000000, 0.349665 + 0.935771, 0.000000, 0.000000, 0.352607 + 0.934659, 0.000000, 0.000000, 0.355547 + 0.933537, 0.000000, 0.000000, 0.358482 + 0.932405, 0.000000, 0.000000, 0.361414 + 0.931265, 0.000000, 0.000000, 0.364342 + 0.930115, 0.000000, 0.000000, 0.367267 + 0.928957, 0.000000, 0.000000, 0.370188 + 0.927789, 0.000000, 0.000000, 0.373106 + 0.926612, 0.000000, 0.000000, 0.376020 + 0.925425, 0.000000, 0.000000, 0.378930 + 0.924230, 0.000000, 0.000000, 0.381836 + 0.923025, 0.000000, 0.000000, 0.384739 + 0.921812, 0.000000, 0.000000, 0.387638 + 0.920589, 0.000000, 0.000000, 0.390533 + 0.919357, 0.000000, 0.000000, 0.393424 + 0.918116, 0.000000, 0.000000, 0.396311 + 0.916866, 0.000000, 0.000000, 0.399195 + 0.915607, 0.000000, 0.000000, 0.402074 + 0.914339, 0.000000, 0.000000, 0.404950 + 0.913062, 0.000000, 0.000000, 0.407821 + 0.911776, 0.000000, 0.000000, 0.410688 + 0.910481, 0.000000, 0.000000, 0.413552 + 0.909177, 0.000000, 0.000000, 0.416411 + 0.907863, 0.000000, 0.000000, 0.419266 + 0.906541, 0.000000, 0.000000, 0.422117 + 0.905210, 0.000000, 0.000000, 0.424964 + 0.903870, 0.000000, 0.000000, 0.427807 + 0.902521, 0.000000, 0.000000, 0.430645 + 0.901164, 0.000000, 0.000000, 0.433479 + 0.899797, 0.000000, 0.000000, 0.436309 + 0.898421, 0.000000, 0.000000, 0.439135 + 0.897037, 0.000000, 0.000000, 0.441956 + 0.895643, 0.000000, 0.000000, 0.444773 + 0.894241, 0.000000, 0.000000, 0.447585 + 0.892830, 0.000000, 0.000000, 0.450393 + 0.891410, 0.000000, 0.000000, 0.453197 + 0.889982, 0.000000, 0.000000, 0.455996 + 0.888544, 0.000000, 0.000000, 0.458791 + 0.887098, 0.000000, 0.000000, 0.461581 + 0.885643, 0.000000, 0.000000, 0.464366 + 0.884179, 0.000000, 0.000000, 0.467147 + 0.882707, 0.000000, 0.000000, 0.469924 + 0.881226, 0.000000, 0.000000, 0.472695 + 0.879736, 0.000000, 0.000000, 0.475462 + 0.878237, 0.000000, 0.000000, 0.478225 + 0.876730, 0.000000, 0.000000, 0.480982 + 0.875214, 0.000000, 0.000000, 0.483735 + 0.873690, 0.000000, 0.000000, 0.486483 + 0.872157, 0.000000, 0.000000, 0.489227 + 0.870615, 0.000000, 0.000000, 0.491965 + 0.869065, 0.000000, 0.000000, 0.494699 + 0.867506, 0.000000, 0.000000, 0.497427 + 0.865938, 0.000000, 0.000000, 0.500151 + 0.864362, 0.000000, 0.000000, 0.502870 + 0.862777, 0.000000, 0.000000, 0.505584 + 0.861184, 0.000000, 0.000000, 0.508293 + 0.859583, 0.000000, 0.000000, 0.510997 + 0.857973, 0.000000, 0.000000, 0.513696 + 0.856354, 0.000000, 0.000000, 0.516389 + 0.854727, 0.000000, 0.000000, 0.519078 + 0.853091, 0.000000, 0.000000, 0.521761 + 0.851447, 0.000000, 0.000000, 0.524440 + 0.849795, 0.000000, 0.000000, 0.527113 + 0.848134, 0.000000, 0.000000, 0.529781 + 0.846465, 0.000000, 0.000000, 0.532444 + 0.844788, 0.000000, 0.000000, 0.535101 + 0.843102, 0.000000, 0.000000, 0.537754 + 0.841408, 0.000000, 0.000000, 0.540400 + 0.839706, 0.000000, 0.000000, 0.543042 + 0.837995, 0.000000, 0.000000, 0.545678 + 0.836276, 0.000000, 0.000000, 0.548309 + 0.834549, 0.000000, 0.000000, 0.550934 + 0.832813, 0.000000, 0.000000, 0.553554 + 0.831069, 0.000000, 0.000000, 0.556169 + 0.829317, 0.000000, 0.000000, 0.558778 + 0.827557, 0.000000, 0.000000, 0.561381 + 0.825789, 0.000000, 0.000000, 0.563979 + 0.824012, 0.000000, 0.000000, 0.566572 + 0.822228, 0.000000, 0.000000, 0.569158 + 0.820435, 0.000000, 0.000000, 0.571740 + 0.818634, 0.000000, 0.000000, 0.574315 + 0.816825, 0.000000, 0.000000, 0.576885 + 0.815008, 0.000000, 0.000000, 0.579449 + 0.813183, 0.000000, 0.000000, 0.582008 + 0.811350, 0.000000, 0.000000, 0.584560 + 0.809509, 0.000000, 0.000000, 0.587107 + 0.807660, 0.000000, 0.000000, 0.589648 + 0.805803, 0.000000, 0.000000, 0.592183 + 0.803938, 0.000000, 0.000000, 0.594713 + 0.802065, 0.000000, 0.000000, 0.597236 + 0.800184, 0.000000, 0.000000, 0.599754 + 0.798296, 0.000000, 0.000000, 0.602266 + 0.796399, 0.000000, 0.000000, 0.604772 + 0.794494, 0.000000, 0.000000, 0.607271 + 0.792582, 0.000000, 0.000000, 0.609765 + 0.790662, 0.000000, 0.000000, 0.612253 + 0.788734, 0.000000, 0.000000, 0.614735 + 0.786798, 0.000000, 0.000000, 0.617210 + 0.784855, 0.000000, 0.000000, 0.619680 + 0.782903, 0.000000, 0.000000, 0.622143 + 0.780944, 0.000000, 0.000000, 0.624601 + 0.778978, 0.000000, 0.000000, 0.627052 + 0.777003, 0.000000, 0.000000, 0.629497 + 0.775021, 0.000000, 0.000000, 0.631935 + 0.773031, 0.000000, 0.000000, 0.634368 + 0.771034, 0.000000, 0.000000, 0.636794 + 0.769029, 0.000000, 0.000000, 0.639214 + 0.767016, 0.000000, 0.000000, 0.641628 + 0.764996, 0.000000, 0.000000, 0.644035 + 0.762968, 0.000000, 0.000000, 0.646436 + 0.760933, 0.000000, 0.000000, 0.648830 + 0.758890, 0.000000, 0.000000, 0.651219 + 0.756840, 0.000000, 0.000000, 0.653600 + 0.754782, 0.000000, 0.000000, 0.655976 + 0.752717, 0.000000, 0.000000, 0.658344 + 0.750644, 0.000000, 0.000000, 0.660707 + 0.748564, 0.000000, 0.000000, 0.663062 + 0.746477, 0.000000, 0.000000, 0.665412 + 0.744382, 0.000000, 0.000000, 0.667754 + 0.742280, 0.000000, 0.000000, 0.670090 + 0.740170, 0.000000, 0.000000, 0.672420 + 0.738053, 0.000000, 0.000000, 0.674742 + 0.735929, 0.000000, 0.000000, 0.677058 + 0.733798, 0.000000, 0.000000, 0.679368 + 0.731659, 0.000000, 0.000000, 0.681671 + 0.729513, 0.000000, 0.000000, 0.683967 + 0.727360, 0.000000, 0.000000, 0.686256 + 0.725200, 0.000000, 0.000000, 0.688538 + 0.723033, 0.000000, 0.000000, 0.690814 + 0.720858, 0.000000, 0.000000, 0.693083 + 0.718676, 0.000000, 0.000000, 0.695345 + 0.716488, 0.000000, 0.000000, 0.697600 + 0.714292, 0.000000, 0.000000, 0.699848 + 0.712089, 0.000000, 0.000000, 0.702089 + 0.709879, 0.000000, 0.000000, 0.704324 + 0.707662, 0.000000, 0.000000, 0.706551 + 0.705438, 0.000000, 0.000000, 0.708771 + 0.703207, 0.000000, 0.000000, 0.710985 + 0.700969, 0.000000, 0.000000, 0.713191 + 0.698725, 0.000000, 0.000000, 0.715391 + 0.696473, 0.000000, 0.000000, 0.717583 + 0.694214, 0.000000, 0.000000, 0.719768 + 0.691949, 0.000000, 0.000000, 0.721946 + 0.689677, 0.000000, 0.000000, 0.724117 + 0.687398, 0.000000, 0.000000, 0.726281 + 0.685112, 0.000000, 0.000000, 0.728438 + 0.682819, 0.000000, 0.000000, 0.730587 + 0.680520, 0.000000, 0.000000, 0.732729 + 0.678214, 0.000000, 0.000000, 0.734864 + 0.675901, 0.000000, 0.000000, 0.736992 + 0.673582, 0.000000, 0.000000, 0.739113 + 0.671256, 0.000000, 0.000000, 0.741226 + 0.668923, 0.000000, 0.000000, 0.743332 + 0.666584, 0.000000, 0.000000, 0.745430 + 0.664238, 0.000000, 0.000000, 0.747521 + 0.661885, 0.000000, 0.000000, 0.749605 + 0.659526, 0.000000, 0.000000, 0.751682 + 0.657161, 0.000000, 0.000000, 0.753750 + 0.654789, 0.000000, 0.000000, 0.755812 + 0.652410, 0.000000, 0.000000, 0.757866 + 0.650025, 0.000000, 0.000000, 0.759913 + 0.647634, 0.000000, 0.000000, 0.761952 + 0.645236, 0.000000, 0.000000, 0.763983 + 0.642832, 0.000000, 0.000000, 0.766007 + 0.640422, 0.000000, 0.000000, 0.768023 + 0.638005, 0.000000, 0.000000, 0.770032 + 0.635582, 0.000000, 0.000000, 0.772033 + 0.633153, 0.000000, 0.000000, 0.774027 + 0.630717, 0.000000, 0.000000, 0.776013 + 0.628275, 0.000000, 0.000000, 0.777991 + 0.625827, 0.000000, 0.000000, 0.779962 + 0.623373, 0.000000, 0.000000, 0.781925 + 0.620912, 0.000000, 0.000000, 0.783880 + 0.618446, 0.000000, 0.000000, 0.785827 + 0.615973, 0.000000, 0.000000, 0.787767 + 0.613495, 0.000000, 0.000000, 0.789699 + 0.611010, 0.000000, 0.000000, 0.791623 + 0.608519, 0.000000, 0.000000, 0.793539 + 0.606022, 0.000000, 0.000000, 0.795448 + 0.603519, 0.000000, 0.000000, 0.797348 + 0.601011, 0.000000, 0.000000, 0.799241 + 0.598496, 0.000000, 0.000000, 0.801126 + 0.595975, 0.000000, 0.000000, 0.803003 + 0.593449, 0.000000, 0.000000, 0.804872 + 0.590917, 0.000000, 0.000000, 0.806733 + 0.588378, 0.000000, 0.000000, 0.808586 + 0.585834, 0.000000, 0.000000, 0.810431 + 0.583285, 0.000000, 0.000000, 0.812268 + 0.580729, 0.000000, 0.000000, 0.814097 + 0.578168, 0.000000, 0.000000, 0.815918 + 0.575601, 0.000000, 0.000000, 0.817731 + 0.573028, 0.000000, 0.000000, 0.819536 + 0.570450, 0.000000, 0.000000, 0.821333 + 0.567866, 0.000000, 0.000000, 0.823121 + 0.565276, 0.000000, 0.000000, 0.824902 + 0.562681, 0.000000, 0.000000, 0.826674 + 0.560080, 0.000000, 0.000000, 0.828438 + 0.557474, 0.000000, 0.000000, 0.830194 + 0.554862, 0.000000, 0.000000, 0.831942 + 0.552245, 0.000000, 0.000000, 0.833682 + 0.549622, 0.000000, 0.000000, 0.835413 + 0.546994, 0.000000, 0.000000, 0.837136 + 0.544361, 0.000000, 0.000000, 0.838851 + 0.541722, 0.000000, 0.000000, 0.840558 + 0.539078, 0.000000, 0.000000, 0.842256 + 0.536428, 0.000000, 0.000000, 0.843946 + 0.533773, 0.000000, 0.000000, 0.845628 + 0.531113, 0.000000, 0.000000, 0.847301 + 0.528448, 0.000000, 0.000000, 0.848966 + 0.525777, 0.000000, 0.000000, 0.850622 + 0.523101, 0.000000, 0.000000, 0.852270 + 0.520420, 0.000000, 0.000000, 0.853910 + 0.517734, 0.000000, 0.000000, 0.855541 + 0.515043, 0.000000, 0.000000, 0.857164 + 0.512347, 0.000000, 0.000000, 0.858779 + 0.509645, 0.000000, 0.000000, 0.860385 + 0.506939, 0.000000, 0.000000, 0.861982 + 0.504228, 0.000000, 0.000000, 0.863571 + 0.501511, 0.000000, 0.000000, 0.865151 + 0.498790, 0.000000, 0.000000, 0.866723 + 0.496064, 0.000000, 0.000000, 0.868286 + 0.493332, 0.000000, 0.000000, 0.869841 + 0.490596, 0.000000, 0.000000, 0.871387 + 0.487856, 0.000000, 0.000000, 0.872924 + 0.485110, 0.000000, 0.000000, 0.874453 + 0.482359, 0.000000, 0.000000, 0.875973 + 0.479604, 0.000000, 0.000000, 0.877485 + 0.476844, 0.000000, 0.000000, 0.878988 + 0.474079, 0.000000, 0.000000, 0.880482 + 0.471310, 0.000000, 0.000000, 0.881968 + 0.468536, 0.000000, 0.000000, 0.883444 + 0.465757, 0.000000, 0.000000, 0.884912 + 0.462974, 0.000000, 0.000000, 0.886372 + 0.460186, 0.000000, 0.000000, 0.887822 + 0.457394, 0.000000, 0.000000, 0.889264 + 0.454597, 0.000000, 0.000000, 0.890697 + 0.451796, 0.000000, 0.000000, 0.892121 + 0.448990, 0.000000, 0.000000, 0.893537 + 0.446180, 0.000000, 0.000000, 0.894943 + 0.443365, 0.000000, 0.000000, 0.896341 + 0.440546, 0.000000, 0.000000, 0.897730 + 0.437722, 0.000000, 0.000000, 0.899110 + 0.434895, 0.000000, 0.000000, 0.900481 + 0.432063, 0.000000, 0.000000, 0.901844 + 0.429226, 0.000000, 0.000000, 0.903197 + 0.426386, 0.000000, 0.000000, 0.904541 + 0.423541, 0.000000, 0.000000, 0.905877 + 0.420692, 0.000000, 0.000000, 0.907203 + 0.417839, 0.000000, 0.000000, 0.908521 + 0.414982, 0.000000, 0.000000, 0.909830 + 0.412121, 0.000000, 0.000000, 0.911129 + 0.409255, 0.000000, 0.000000, 0.912420 + 0.406386, 0.000000, 0.000000, 0.913702 + 0.403512, 0.000000, 0.000000, 0.914974 + 0.400635, 0.000000, 0.000000, 0.916238 + 0.397753, 0.000000, 0.000000, 0.917492 + 0.394868, 0.000000, 0.000000, 0.918738 + 0.391979, 0.000000, 0.000000, 0.919974 + 0.389086, 0.000000, 0.000000, 0.921201 + 0.386189, 0.000000, 0.000000, 0.922420 + 0.383288, 0.000000, 0.000000, 0.923629 + 0.380384, 0.000000, 0.000000, 0.924829 + 0.377475, 0.000000, 0.000000, 0.926020 + 0.374563, 0.000000, 0.000000, 0.927201 + 0.371648, 0.000000, 0.000000, 0.928374 + 0.368728, 0.000000, 0.000000, 0.929537 + 0.365805, 0.000000, 0.000000, 0.930691 + 0.362879, 0.000000, 0.000000, 0.931836 + 0.359948, 0.000000, 0.000000, 0.932972 + 0.357015, 0.000000, 0.000000, 0.934099 + 0.354077, 0.000000, 0.000000, 0.935216 + 0.351137, 0.000000, 0.000000, 0.936324 + 0.348192, 0.000000, 0.000000, 0.937423 + 0.345245, 0.000000, 0.000000, 0.938513 + 0.342294, 0.000000, 0.000000, 0.939593 + 0.339339, 0.000000, 0.000000, 0.940664 + 0.336381, 0.000000, 0.000000, 0.941726 + 0.333420, 0.000000, 0.000000, 0.942778 + 0.330456, 0.000000, 0.000000, 0.943822 + 0.327488, 0.000000, 0.000000, 0.944855 + 0.324517, 0.000000, 0.000000, 0.945880 + 0.321543, 0.000000, 0.000000, 0.946895 + 0.318565, 0.000000, 0.000000, 0.947901 + 0.315585, 0.000000, 0.000000, 0.948897 + 0.312601, 0.000000, 0.000000, 0.949884 + 0.309615, 0.000000, 0.000000, 0.950862 + 0.306625, 0.000000, 0.000000, 0.951830 + 0.303632, 0.000000, 0.000000, 0.952789 + 0.300636, 0.000000, 0.000000, 0.953739 + 0.297638, 0.000000, 0.000000, 0.954679 + 0.294636, 0.000000, 0.000000, 0.955610 + 0.291631, 0.000000, 0.000000, 0.956531 + 0.288624, 0.000000, 0.000000, 0.957443 + 0.285614, 0.000000, 0.000000, 0.958345 + 0.282600, 0.000000, 0.000000, 0.959238 + 0.279585, 0.000000, 0.000000, 0.960121 + 0.276566, 0.000000, 0.000000, 0.960995 + 0.273544, 0.000000, 0.000000, 0.961859 + 0.270520, 0.000000, 0.000000, 0.962714 + 0.267494, 0.000000, 0.000000, 0.963560 + 0.264464, 0.000000, 0.000000, 0.964396 + 0.261432, 0.000000, 0.000000, 0.965222 + 0.258397, 0.000000, 0.000000, 0.966039 + 0.255360, 0.000000, 0.000000, 0.966846 + 0.252321, 0.000000, 0.000000, 0.967644 + 0.249278, 0.000000, 0.000000, 0.968432 + 0.246234, 0.000000, 0.000000, 0.969210 + 0.243187, 0.000000, 0.000000, 0.969980 + 0.240137, 0.000000, 0.000000, 0.970739 + 0.237085, 0.000000, 0.000000, 0.971489 + 0.234031, 0.000000, 0.000000, 0.972229 + 0.230975, 0.000000, 0.000000, 0.972960 + 0.227916, 0.000000, 0.000000, 0.973681 + 0.224855, 0.000000, 0.000000, 0.974392 + 0.221791, 0.000000, 0.000000, 0.975094 + 0.218726, 0.000000, 0.000000, 0.975786 + 0.215658, 0.000000, 0.000000, 0.976469 + 0.212589, 0.000000, 0.000000, 0.977142 + 0.209517, 0.000000, 0.000000, 0.977805 + 0.206443, 0.000000, 0.000000, 0.978459 + 0.203367, 0.000000, 0.000000, 0.979103 + 0.200289, 0.000000, 0.000000, 0.979737 + 0.197209, 0.000000, 0.000000, 0.980361 + 0.194127, 0.000000, 0.000000, 0.980976 + 0.191043, 0.000000, 0.000000, 0.981582 + 0.187958, 0.000000, 0.000000, 0.982177 + 0.184870, 0.000000, 0.000000, 0.982763 + 0.181781, 0.000000, 0.000000, 0.983339 + 0.178689, 0.000000, 0.000000, 0.983906 + 0.175596, 0.000000, 0.000000, 0.984462 + 0.172502, 0.000000, 0.000000, 0.985009 + 0.169405, 0.000000, 0.000000, 0.985546 + 0.166307, 0.000000, 0.000000, 0.986074 + 0.163208, 0.000000, 0.000000, 0.986592 + 0.160106, 0.000000, 0.000000, 0.987100 + 0.157003, 0.000000, 0.000000, 0.987598 + 0.153899, 0.000000, 0.000000, 0.988087 + 0.150793, 0.000000, 0.000000, 0.988565 + 0.147686, 0.000000, 0.000000, 0.989034 + 0.144577, 0.000000, 0.000000, 0.989494 + 0.141466, 0.000000, 0.000000, 0.989943 + 0.138355, 0.000000, 0.000000, 0.990383 + 0.135242, 0.000000, 0.000000, 0.990813 + 0.132127, 0.000000, 0.000000, 0.991233 + 0.129011, 0.000000, 0.000000, 0.991643 + 0.125894, 0.000000, 0.000000, 0.992044 + 0.122776, 0.000000, 0.000000, 0.992434 + 0.119657, 0.000000, 0.000000, 0.992815 + 0.116536, 0.000000, 0.000000, 0.993186 + 0.113414, 0.000000, 0.000000, 0.993548 + 0.110291, 0.000000, 0.000000, 0.993899 + 0.107167, 0.000000, 0.000000, 0.994241 + 0.104042, 0.000000, 0.000000, 0.994573 + 0.100916, 0.000000, 0.000000, 0.994895 + 0.097789, 0.000000, 0.000000, 0.995207 + 0.094661, 0.000000, 0.000000, 0.995510 + 0.091532, 0.000000, 0.000000, 0.995802 + 0.088402, 0.000000, 0.000000, 0.996085 + 0.085271, 0.000000, 0.000000, 0.996358 + 0.082140, 0.000000, 0.000000, 0.996621 + 0.079007, 0.000000, 0.000000, 0.996874 + 0.075874, 0.000000, 0.000000, 0.997117 + 0.072740, 0.000000, 0.000000, 0.997351 + 0.069606, 0.000000, 0.000000, 0.997575 + 0.066470, 0.000000, 0.000000, 0.997788 + 0.063334, 0.000000, 0.000000, 0.997992 + 0.060198, 0.000000, 0.000000, 0.998186 + 0.057060, 0.000000, 0.000000, 0.998371 + 0.053922, 0.000000, 0.000000, 0.998545 + 0.050784, 0.000000, 0.000000, 0.998710 + 0.047645, 0.000000, 0.000000, 0.998864 + 0.044506, 0.000000, 0.000000, 0.999009 + 0.041366, 0.000000, 0.000000, 0.999144 + 0.038226, 0.000000, 0.000000, 0.999269 + 0.035086, 0.000000, 0.000000, 0.999384 + 0.031945, 0.000000, 0.000000, 0.999490 + 0.028804, 0.000000, 0.000000, 0.999585 + 0.025662, 0.000000, 0.000000, 0.999671 + 0.022520, 0.000000, 0.000000, 0.999746 + 0.019378, 0.000000, 0.000000, 0.999812 + 0.016236, 0.000000, 0.000000, 0.999868 + 0.013094, 0.000000, 0.000000, 0.999914 + 0.009952, 0.000000, 0.000000, 0.999950 + 0.006809, 0.000000, 0.000000, 0.999977 + 0.003666, 0.000000, 0.000000, 0.999993 + 0.000524, 0.000000, 0.000000, 1.000000 + -0.002619, -0.000000, 0.000000, 0.999997 + -0.005761, -0.000000, 0.000000, 0.999983 + -0.008904, -0.000000, 0.000000, 0.999960 + -0.012046, -0.000000, 0.000000, 0.999927 + -0.015189, -0.000000, 0.000000, 0.999885 + -0.018331, -0.000000, 0.000000, 0.999832 + -0.021473, -0.000000, 0.000000, 0.999769 + -0.024615, -0.000000, 0.000000, 0.999697 + -0.027756, -0.000000, 0.000000, 0.999615 + -0.030898, -0.000000, 0.000000, 0.999523 + -0.034039, -0.000000, 0.000000, 0.999421 + -0.037179, -0.000000, 0.000000, 0.999309 + -0.040320, -0.000000, 0.000000, 0.999187 + -0.043459, -0.000000, 0.000000, 0.999055 + -0.046599, -0.000000, 0.000000, 0.998914 + -0.049738, -0.000000, 0.000000, 0.998762 + -0.052876, -0.000000, 0.000000, 0.998601 + -0.056014, -0.000000, 0.000000, 0.998430 + -0.059152, -0.000000, 0.000000, 0.998249 + -0.062289, -0.000000, 0.000000, 0.998058 + -0.065425, -0.000000, 0.000000, 0.997857 + -0.068560, -0.000000, 0.000000, 0.997647 + -0.071695, -0.000000, 0.000000, 0.997427 + -0.074830, -0.000000, 0.000000, 0.997196 + -0.077963, -0.000000, 0.000000, 0.996956 + -0.081096, -0.000000, 0.000000, 0.996706 + -0.084228, -0.000000, 0.000000, 0.996447 + -0.087359, -0.000000, 0.000000, 0.996177 + -0.090489, -0.000000, 0.000000, 0.995897 + -0.093618, -0.000000, 0.000000, 0.995608 + -0.096747, -0.000000, 0.000000, 0.995309 + -0.099874, -0.000000, 0.000000, 0.995000 + -0.103000, -0.000000, 0.000000, 0.994681 + -0.106126, -0.000000, 0.000000, 0.994353 + -0.109250, -0.000000, 0.000000, 0.994014 + -0.112373, -0.000000, 0.000000, 0.993666 + -0.115496, -0.000000, 0.000000, 0.993308 + -0.118617, -0.000000, 0.000000, 0.992940 + -0.121736, -0.000000, 0.000000, 0.992562 + -0.124855, -0.000000, 0.000000, 0.992175 + -0.127973, -0.000000, 0.000000, 0.991778 + -0.131089, -0.000000, 0.000000, 0.991371 + -0.134204, -0.000000, 0.000000, 0.990954 + -0.137317, -0.000000, 0.000000, 0.990527 + -0.140429, -0.000000, 0.000000, 0.990091 + -0.143540, -0.000000, 0.000000, 0.989644 + -0.146650, -0.000000, 0.000000, 0.989189 + -0.149757, -0.000000, 0.000000, 0.988723 + -0.152864, -0.000000, 0.000000, 0.988247 + -0.155969, -0.000000, 0.000000, 0.987762 + -0.159072, -0.000000, 0.000000, 0.987267 + -0.162174, -0.000000, 0.000000, 0.986762 + -0.165274, -0.000000, 0.000000, 0.986248 + -0.168373, -0.000000, 0.000000, 0.985723 + -0.171470, -0.000000, 0.000000, 0.985189 + -0.174565, -0.000000, 0.000000, 0.984646 + -0.177659, -0.000000, 0.000000, 0.984092 + -0.180750, -0.000000, 0.000000, 0.983529 + -0.183840, -0.000000, 0.000000, 0.982956 + -0.186929, -0.000000, 0.000000, 0.982374 + -0.190015, -0.000000, 0.000000, 0.981781 + -0.193099, -0.000000, 0.000000, 0.981179 + -0.196182, -0.000000, 0.000000, 0.980568 + -0.199262, -0.000000, 0.000000, 0.979946 + -0.202341, -0.000000, 0.000000, 0.979315 + -0.205418, -0.000000, 0.000000, 0.978674 + -0.208492, -0.000000, 0.000000, 0.978024 + -0.211565, -0.000000, 0.000000, 0.977364 + -0.214635, -0.000000, 0.000000, 0.976694 + -0.217704, -0.000000, 0.000000, 0.976015 + -0.220770, -0.000000, 0.000000, 0.975326 + -0.223834, -0.000000, 0.000000, 0.974627 + -0.226896, -0.000000, 0.000000, 0.973919 + -0.229955, -0.000000, 0.000000, 0.973201 + -0.233012, -0.000000, 0.000000, 0.972474 + -0.236067, -0.000000, 0.000000, 0.971737 + -0.239120, -0.000000, 0.000000, 0.970990 + -0.242170, -0.000000, 0.000000, 0.970234 + -0.245218, -0.000000, 0.000000, 0.969468 + -0.248264, -0.000000, 0.000000, 0.968692 + -0.251307, -0.000000, 0.000000, 0.967907 + -0.254347, -0.000000, 0.000000, 0.967113 + -0.257385, -0.000000, 0.000000, 0.966309 + -0.260421, -0.000000, 0.000000, 0.965495 + -0.263454, -0.000000, 0.000000, 0.964672 + -0.266484, -0.000000, 0.000000, 0.963839 + -0.269512, -0.000000, 0.000000, 0.962997 + -0.272537, -0.000000, 0.000000, 0.962145 + -0.275559, -0.000000, 0.000000, 0.961284 + -0.278579, -0.000000, 0.000000, 0.960413 + -0.281595, -0.000000, 0.000000, 0.959533 + -0.284610, -0.000000, 0.000000, 0.958644 + -0.287621, -0.000000, 0.000000, 0.957744 + -0.290629, -0.000000, 0.000000, 0.956836 + -0.293635, -0.000000, 0.000000, 0.955918 + -0.296637, -0.000000, 0.000000, 0.954990 + -0.299637, -0.000000, 0.000000, 0.954053 + -0.302634, -0.000000, 0.000000, 0.953107 + -0.305628, -0.000000, 0.000000, 0.952151 + -0.308618, -0.000000, 0.000000, 0.951186 + -0.311606, -0.000000, 0.000000, 0.950211 + -0.314591, -0.000000, 0.000000, 0.949227 + -0.317572, -0.000000, 0.000000, 0.948234 + -0.320551, -0.000000, 0.000000, 0.947231 + -0.323526, -0.000000, 0.000000, 0.946219 + -0.326498, -0.000000, 0.000000, 0.945198 + -0.329467, -0.000000, 0.000000, 0.944167 + -0.332432, -0.000000, 0.000000, 0.943127 + -0.335395, -0.000000, 0.000000, 0.942078 + -0.338354, -0.000000, 0.000000, 0.941019 + -0.341309, -0.000000, 0.000000, 0.939951 + -0.344261, -0.000000, 0.000000, 0.938874 + -0.347210, -0.000000, 0.000000, 0.937787 + -0.350156, -0.000000, 0.000000, 0.936692 + -0.353098, -0.000000, 0.000000, 0.935587 + -0.356036, -0.000000, 0.000000, 0.934472 + -0.358971, -0.000000, 0.000000, 0.933349 + -0.361902, -0.000000, 0.000000, 0.932216 + -0.364830, -0.000000, 0.000000, 0.931074 + -0.367754, -0.000000, 0.000000, 0.929923 + -0.370675, -0.000000, 0.000000, 0.928763 + -0.373592, -0.000000, 0.000000, 0.927593 + -0.376505, -0.000000, 0.000000, 0.926415 + -0.379415, -0.000000, 0.000000, 0.925227 + -0.382320, -0.000000, 0.000000, 0.924030 + -0.385222, -0.000000, 0.000000, 0.922824 + -0.388121, -0.000000, 0.000000, 0.921609 + -0.391015, -0.000000, 0.000000, 0.920384 + -0.393906, -0.000000, 0.000000, 0.919151 + -0.396792, -0.000000, 0.000000, 0.917908 + -0.399675, -0.000000, 0.000000, 0.916657 + -0.402554, -0.000000, 0.000000, 0.915396 + -0.405428, -0.000000, 0.000000, 0.914127 + -0.408299, -0.000000, 0.000000, 0.912848 + -0.411166, -0.000000, 0.000000, 0.911561 + -0.414029, -0.000000, 0.000000, 0.910264 + -0.416887, -0.000000, 0.000000, 0.908958 + -0.419742, -0.000000, 0.000000, 0.907644 + -0.422592, -0.000000, 0.000000, 0.906320 + -0.425438, -0.000000, 0.000000, 0.904988 + -0.428280, -0.000000, 0.000000, 0.903646 + -0.431118, -0.000000, 0.000000, 0.902296 + -0.433951, -0.000000, 0.000000, 0.900936 + -0.436780, -0.000000, 0.000000, 0.899568 + -0.439605, -0.000000, 0.000000, 0.898191 + -0.442426, -0.000000, 0.000000, 0.896805 + -0.445242, -0.000000, 0.000000, 0.895410 + -0.448054, -0.000000, 0.000000, 0.894007 + -0.450861, -0.000000, 0.000000, 0.892594 + -0.453664, -0.000000, 0.000000, 0.891173 + -0.456462, -0.000000, 0.000000, 0.889743 + -0.459256, -0.000000, 0.000000, 0.888304 + -0.462045, -0.000000, 0.000000, 0.886856 + -0.464830, -0.000000, 0.000000, 0.885400 + -0.467610, -0.000000, 0.000000, 0.883935 + -0.470386, -0.000000, 0.000000, 0.882461 + -0.473157, -0.000000, 0.000000, 0.880978 + -0.475923, -0.000000, 0.000000, 0.879487 + -0.478685, -0.000000, 0.000000, 0.877987 + -0.481442, -0.000000, 0.000000, 0.876478 + -0.484194, -0.000000, 0.000000, 0.874961 + -0.486941, -0.000000, 0.000000, 0.873435 + -0.489683, -0.000000, 0.000000, 0.871900 + -0.492421, -0.000000, 0.000000, 0.870357 + -0.495154, -0.000000, 0.000000, 0.868805 + -0.497882, -0.000000, 0.000000, 0.867245 + -0.500605, -0.000000, 0.000000, 0.865676 + -0.503323, -0.000000, 0.000000, 0.864099 + -0.506036, -0.000000, 0.000000, 0.862512 + -0.508744, -0.000000, 0.000000, 0.860918 + -0.511447, -0.000000, 0.000000, 0.859315 + -0.514145, -0.000000, 0.000000, 0.857703 + -0.516838, -0.000000, 0.000000, 0.856083 + -0.519526, -0.000000, 0.000000, 0.854455 + -0.522208, -0.000000, 0.000000, 0.852818 + -0.524886, -0.000000, 0.000000, 0.851173 + -0.527558, -0.000000, 0.000000, 0.849519 + -0.530225, -0.000000, 0.000000, 0.847857 + -0.532887, -0.000000, 0.000000, 0.846186 + -0.535544, -0.000000, 0.000000, 0.844507 + -0.538195, -0.000000, 0.000000, 0.842820 + -0.540841, -0.000000, 0.000000, 0.841125 + -0.543482, -0.000000, 0.000000, 0.839421 + -0.546117, -0.000000, 0.000000, 0.837709 + -0.548747, -0.000000, 0.000000, 0.835988 + -0.551371, -0.000000, 0.000000, 0.834260 + -0.553991, -0.000000, 0.000000, 0.832523 + -0.556604, -0.000000, 0.000000, 0.830778 + -0.559212, -0.000000, 0.000000, 0.829025 + -0.561815, -0.000000, 0.000000, 0.827263 + -0.564412, -0.000000, 0.000000, 0.825493 + -0.567003, -0.000000, 0.000000, 0.823716 + -0.569589, -0.000000, 0.000000, 0.821930 + -0.572169, -0.000000, 0.000000, 0.820136 + -0.574744, -0.000000, 0.000000, 0.818333 + -0.577313, -0.000000, 0.000000, 0.816523 + -0.579876, -0.000000, 0.000000, 0.814705 + -0.582433, -0.000000, 0.000000, 0.812878 + -0.584985, -0.000000, 0.000000, 0.811044 + -0.587531, -0.000000, 0.000000, 0.809202 + -0.590071, -0.000000, 0.000000, 0.807351 + -0.592605, -0.000000, 0.000000, 0.805493 + -0.595134, -0.000000, 0.000000, 0.803627 + -0.597656, -0.000000, 0.000000, 0.801752 + -0.600173, -0.000000, 0.000000, 0.799870 + -0.602684, -0.000000, 0.000000, 0.797980 + -0.605189, -0.000000, 0.000000, 0.796082 + -0.607687, -0.000000, 0.000000, 0.794176 + -0.610180, -0.000000, 0.000000, 0.792263 + -0.612667, -0.000000, 0.000000, 0.790341 + -0.615148, -0.000000, 0.000000, 0.788412 + -0.617622, -0.000000, 0.000000, 0.786475 + -0.620091, -0.000000, 0.000000, 0.784530 + -0.622553, -0.000000, 0.000000, 0.782577 + -0.625010, -0.000000, 0.000000, 0.780617 + -0.627460, -0.000000, 0.000000, 0.778649 + -0.629904, -0.000000, 0.000000, 0.776673 + -0.632341, -0.000000, 0.000000, 0.774690 + -0.634773, -0.000000, 0.000000, 0.772699 + -0.637198, -0.000000, 0.000000, 0.770700 + -0.639617, -0.000000, 0.000000, 0.768694 + -0.642029, -0.000000, 0.000000, 0.766680 + -0.644436, -0.000000, 0.000000, 0.764659 + -0.646835, -0.000000, 0.000000, 0.762630 + -0.649229, -0.000000, 0.000000, 0.760593 + -0.651616, -0.000000, 0.000000, 0.758549 + -0.653997, -0.000000, 0.000000, 0.756497 + -0.656371, -0.000000, 0.000000, 0.754438 + -0.658739, -0.000000, 0.000000, 0.752372 + -0.661100, -0.000000, 0.000000, 0.750298 + -0.663454, -0.000000, 0.000000, 0.748217 + -0.665802, -0.000000, 0.000000, 0.746128 + -0.668144, -0.000000, 0.000000, 0.744032 + -0.670479, -0.000000, 0.000000, 0.741929 + -0.672807, -0.000000, 0.000000, 0.739818 + -0.675129, -0.000000, 0.000000, 0.737700 + -0.677444, -0.000000, 0.000000, 0.735575 + -0.679752, -0.000000, 0.000000, 0.733442 + -0.682054, -0.000000, 0.000000, 0.731302 + -0.684349, -0.000000, 0.000000, 0.729155 + -0.686637, -0.000000, 0.000000, 0.727001 + -0.688918, -0.000000, 0.000000, 0.724839 + -0.691192, -0.000000, 0.000000, 0.722671 + -0.693460, -0.000000, 0.000000, 0.720495 + -0.695721, -0.000000, 0.000000, 0.718312 + -0.697975, -0.000000, 0.000000, 0.716122 + -0.700222, -0.000000, 0.000000, 0.713925 + -0.702462, -0.000000, 0.000000, 0.711721 + -0.704695, -0.000000, 0.000000, 0.709510 + -0.706922, -0.000000, 0.000000, 0.707292 + -0.709141, -0.000000, 0.000000, 0.705067 + -0.711353, -0.000000, 0.000000, 0.702835 + -0.713558, -0.000000, 0.000000, 0.700596 + -0.715757, -0.000000, 0.000000, 0.698350 + -0.717948, -0.000000, 0.000000, 0.696097 + -0.720132, -0.000000, 0.000000, 0.693837 + -0.722309, -0.000000, 0.000000, 0.691571 + -0.724478, -0.000000, 0.000000, 0.689297 + -0.726641, -0.000000, 0.000000, 0.687017 + -0.728797, -0.000000, 0.000000, 0.684730 + -0.730945, -0.000000, 0.000000, 0.682437 + -0.733086, -0.000000, 0.000000, 0.680136 + -0.735220, -0.000000, 0.000000, 0.677829 + -0.737346, -0.000000, 0.000000, 0.675515 + -0.739465, -0.000000, 0.000000, 0.673195 + -0.741577, -0.000000, 0.000000, 0.670867 + -0.743682, -0.000000, 0.000000, 0.668534 + -0.745779, -0.000000, 0.000000, 0.666193 + -0.747869, -0.000000, 0.000000, 0.663846 + -0.749952, -0.000000, 0.000000, 0.661493 + -0.752027, -0.000000, 0.000000, 0.659132 + -0.754095, -0.000000, 0.000000, 0.656766 + -0.756155, -0.000000, 0.000000, 0.654393 + -0.758208, -0.000000, 0.000000, 0.652013 + -0.760253, -0.000000, 0.000000, 0.649627 + -0.762291, -0.000000, 0.000000, 0.647235 + -0.764321, -0.000000, 0.000000, 0.644836 + -0.766344, -0.000000, 0.000000, 0.642431 + -0.768359, -0.000000, 0.000000, 0.640019 + -0.770366, -0.000000, 0.000000, 0.637602 + -0.772366, -0.000000, 0.000000, 0.635177 + -0.774359, -0.000000, 0.000000, 0.632747 + -0.776343, -0.000000, 0.000000, 0.630310 + -0.778320, -0.000000, 0.000000, 0.627867 + -0.780290, -0.000000, 0.000000, 0.625418 + -0.782251, -0.000000, 0.000000, 0.622963 + -0.784205, -0.000000, 0.000000, 0.620502 + -0.786151, -0.000000, 0.000000, 0.618034 + -0.788090, -0.000000, 0.000000, 0.615561 + -0.790020, -0.000000, 0.000000, 0.613081 + -0.791943, -0.000000, 0.000000, 0.610595 + -0.793858, -0.000000, 0.000000, 0.608103 + -0.795765, -0.000000, 0.000000, 0.605605 + -0.797664, -0.000000, 0.000000, 0.603102 + -0.799556, -0.000000, 0.000000, 0.600592 + -0.801439, -0.000000, 0.000000, 0.598076 + -0.803315, -0.000000, 0.000000, 0.595555 + -0.805182, -0.000000, 0.000000, 0.593027 + -0.807042, -0.000000, 0.000000, 0.590494 + -0.808894, -0.000000, 0.000000, 0.587955 + -0.810738, -0.000000, 0.000000, 0.585410 + -0.812573, -0.000000, 0.000000, 0.582859 + -0.814401, -0.000000, 0.000000, 0.580303 + -0.816221, -0.000000, 0.000000, 0.577740 + -0.818032, -0.000000, 0.000000, 0.575172 + -0.819836, -0.000000, 0.000000, 0.572599 + -0.821631, -0.000000, 0.000000, 0.570019 + -0.823418, -0.000000, 0.000000, 0.567435 + -0.825198, -0.000000, 0.000000, 0.564844 + -0.826969, -0.000000, 0.000000, 0.562248 + -0.828732, -0.000000, 0.000000, 0.559646 + -0.830486, -0.000000, 0.000000, 0.557039 + -0.832233, -0.000000, 0.000000, 0.554427 + -0.833971, -0.000000, 0.000000, 0.551808 + -0.835701, -0.000000, 0.000000, 0.549185 + -0.837423, -0.000000, 0.000000, 0.546556 + -0.839136, -0.000000, 0.000000, 0.543921 + -0.840841, -0.000000, 0.000000, 0.541282 + -0.842538, -0.000000, 0.000000, 0.538636 + -0.844227, -0.000000, 0.000000, 0.535986 + -0.845907, -0.000000, 0.000000, 0.533330 + -0.847579, -0.000000, 0.000000, 0.530669 + -0.849243, -0.000000, 0.000000, 0.528003 + -0.850898, -0.000000, 0.000000, 0.525332 + -0.852544, -0.000000, 0.000000, 0.522655 + -0.854183, -0.000000, 0.000000, 0.519973 + -0.855813, -0.000000, 0.000000, 0.517286 + -0.857434, -0.000000, 0.000000, 0.514594 + -0.859047, -0.000000, 0.000000, 0.511897 + -0.860651, -0.000000, 0.000000, 0.509195 + -0.862247, -0.000000, 0.000000, 0.506487 + -0.863835, -0.000000, 0.000000, 0.503775 + -0.865414, -0.000000, 0.000000, 0.501058 + -0.866984, -0.000000, 0.000000, 0.498336 + -0.868546, -0.000000, 0.000000, 0.495609 + -0.870099, -0.000000, 0.000000, 0.492877 + -0.871644, -0.000000, 0.000000, 0.490140 + -0.873180, -0.000000, 0.000000, 0.487398 + -0.874707, -0.000000, 0.000000, 0.484652 + -0.876226, -0.000000, 0.000000, 0.481901 + -0.877736, -0.000000, 0.000000, 0.479145 + -0.879237, -0.000000, 0.000000, 0.476384 + -0.880730, -0.000000, 0.000000, 0.473618 + -0.882214, -0.000000, 0.000000, 0.470848 + -0.883690, -0.000000, 0.000000, 0.468073 + -0.885156, -0.000000, 0.000000, 0.465294 + -0.886614, -0.000000, 0.000000, 0.462510 + -0.888063, -0.000000, 0.000000, 0.459721 + -0.889504, -0.000000, 0.000000, 0.456928 + -0.890935, -0.000000, 0.000000, 0.454130 + -0.892358, -0.000000, 0.000000, 0.451328 + -0.893772, -0.000000, 0.000000, 0.448522 + -0.895177, -0.000000, 0.000000, 0.445711 + -0.896573, -0.000000, 0.000000, 0.442895 + -0.897961, -0.000000, 0.000000, 0.440076 + -0.899339, -0.000000, 0.000000, 0.437251 + -0.900709, -0.000000, 0.000000, 0.434423 + -0.902070, -0.000000, 0.000000, 0.431590 + -0.903422, -0.000000, 0.000000, 0.428753 + -0.904765, -0.000000, 0.000000, 0.425912 + -0.906099, -0.000000, 0.000000, 0.423067 + -0.907424, -0.000000, 0.000000, 0.420217 + -0.908740, -0.000000, 0.000000, 0.417363 + -0.910047, -0.000000, 0.000000, 0.414505 + -0.911345, -0.000000, 0.000000, 0.411643 + -0.912634, -0.000000, 0.000000, 0.408777 + -0.913914, -0.000000, 0.000000, 0.405907 + -0.915185, -0.000000, 0.000000, 0.403033 + -0.916448, -0.000000, 0.000000, 0.400155 + -0.917701, -0.000000, 0.000000, 0.397273 + -0.918944, -0.000000, 0.000000, 0.394387 + -0.920179, -0.000000, 0.000000, 0.391497 + -0.921405, -0.000000, 0.000000, 0.388603 + -0.922622, -0.000000, 0.000000, 0.385706 + -0.923829, -0.000000, 0.000000, 0.382804 + -0.925028, -0.000000, 0.000000, 0.379899 + -0.926217, -0.000000, 0.000000, 0.376990 + -0.927397, -0.000000, 0.000000, 0.374078 + -0.928568, -0.000000, 0.000000, 0.371161 + -0.929730, -0.000000, 0.000000, 0.368241 + -0.930883, -0.000000, 0.000000, 0.365318 + -0.932026, -0.000000, 0.000000, 0.362391 + -0.933161, -0.000000, 0.000000, 0.359460 + -0.934286, -0.000000, 0.000000, 0.356525 + -0.935401, -0.000000, 0.000000, 0.353588 + -0.936508, -0.000000, 0.000000, 0.350646 + -0.937605, -0.000000, 0.000000, 0.347701 + -0.938693, -0.000000, 0.000000, 0.344753 + -0.939772, -0.000000, 0.000000, 0.341801 + -0.940842, -0.000000, 0.000000, 0.338846 + -0.941902, -0.000000, 0.000000, 0.335888 + -0.942953, -0.000000, 0.000000, 0.332926 + -0.943994, -0.000000, 0.000000, 0.329961 + -0.945027, -0.000000, 0.000000, 0.326993 + -0.946050, -0.000000, 0.000000, 0.324021 + -0.947063, -0.000000, 0.000000, 0.321047 + -0.948068, -0.000000, 0.000000, 0.318069 + -0.949062, -0.000000, 0.000000, 0.315088 + -0.950048, -0.000000, 0.000000, 0.312104 + -0.951024, -0.000000, 0.000000, 0.309117 + -0.951991, -0.000000, 0.000000, 0.306126 + -0.952948, -0.000000, 0.000000, 0.303133 + -0.953896, -0.000000, 0.000000, 0.300137 + -0.954835, -0.000000, 0.000000, 0.297138 + -0.955764, -0.000000, 0.000000, 0.294135 + -0.956683, -0.000000, 0.000000, 0.291130 + -0.957594, -0.000000, 0.000000, 0.288122 + -0.958494, -0.000000, 0.000000, 0.285112 + -0.959386, -0.000000, 0.000000, 0.282098 + -0.960267, -0.000000, 0.000000, 0.279082 + -0.961140, -0.000000, 0.000000, 0.276062 + -0.962003, -0.000000, 0.000000, 0.273041 + -0.962856, -0.000000, 0.000000, 0.270016 + -0.963700, -0.000000, 0.000000, 0.266989 + -0.964534, -0.000000, 0.000000, 0.263959 + -0.965359, -0.000000, 0.000000, 0.260926 + -0.966174, -0.000000, 0.000000, 0.257891 + -0.966980, -0.000000, 0.000000, 0.254854 + -0.967776, -0.000000, 0.000000, 0.251814 + -0.968562, -0.000000, 0.000000, 0.248771 + -0.969339, -0.000000, 0.000000, 0.245726 + -0.970107, -0.000000, 0.000000, 0.242678 + -0.970865, -0.000000, 0.000000, 0.239629 + -0.971613, -0.000000, 0.000000, 0.236576 + -0.972352, -0.000000, 0.000000, 0.233522 + -0.973081, -0.000000, 0.000000, 0.230465 + -0.973800, -0.000000, 0.000000, 0.227406 + -0.974510, -0.000000, 0.000000, 0.224344 + -0.975210, -0.000000, 0.000000, 0.221281 + -0.975901, -0.000000, 0.000000, 0.218215 + -0.976582, -0.000000, 0.000000, 0.215147 + -0.977253, -0.000000, 0.000000, 0.212077 + -0.977915, -0.000000, 0.000000, 0.209005 + -0.978567, -0.000000, 0.000000, 0.205930 + -0.979209, -0.000000, 0.000000, 0.202854 + -0.979842, -0.000000, 0.000000, 0.199776 + -0.980465, -0.000000, 0.000000, 0.196695 + -0.981078, -0.000000, 0.000000, 0.193613 + -0.981682, -0.000000, 0.000000, 0.190529 + -0.982275, -0.000000, 0.000000, 0.187443 + -0.982860, -0.000000, 0.000000, 0.184355 + -0.983434, -0.000000, 0.000000, 0.181266 + -0.983999, -0.000000, 0.000000, 0.178174 + -0.984554, -0.000000, 0.000000, 0.175081 + -0.985099, -0.000000, 0.000000, 0.171986 + -0.985635, -0.000000, 0.000000, 0.168889 + -0.986161, -0.000000, 0.000000, 0.165791 + -0.986677, -0.000000, 0.000000, 0.162691 + -0.987183, -0.000000, 0.000000, 0.159589 + -0.987680, -0.000000, 0.000000, 0.156486 + -0.988167, -0.000000, 0.000000, 0.153382 + -0.988644, -0.000000, 0.000000, 0.150275 + -0.989112, -0.000000, 0.000000, 0.147168 + -0.989569, -0.000000, 0.000000, 0.144058 + -0.990017, -0.000000, 0.000000, 0.140948 + -0.990455, -0.000000, 0.000000, 0.137836 + -0.990883, -0.000000, 0.000000, 0.134723 + -0.991302, -0.000000, 0.000000, 0.131608 + -0.991711, -0.000000, 0.000000, 0.128492 + -0.992109, -0.000000, 0.000000, 0.125375 + -0.992499, -0.000000, 0.000000, 0.122256 + -0.992878, -0.000000, 0.000000, 0.119137 + -0.993247, -0.000000, 0.000000, 0.116016 + -0.993607, -0.000000, 0.000000, 0.112894 + -0.993957, -0.000000, 0.000000, 0.109771 + -0.994297, -0.000000, 0.000000, 0.106647 + -0.994627, -0.000000, 0.000000, 0.103521 + -0.994948, -0.000000, 0.000000, 0.100395 + -0.995258, -0.000000, 0.000000, 0.097268 + -0.995559, -0.000000, 0.000000, 0.094140 + -0.995850, -0.000000, 0.000000, 0.091010 + -0.996131, -0.000000, 0.000000, 0.087880 + -0.996402, -0.000000, 0.000000, 0.084750 + -0.996664, -0.000000, 0.000000, 0.081618 + -0.996915, -0.000000, 0.000000, 0.078485 + -0.997157, -0.000000, 0.000000, 0.075352 + -0.997389, -0.000000, 0.000000, 0.072218 + -0.997611, -0.000000, 0.000000, 0.069083 + -0.997823, -0.000000, 0.000000, 0.065948 + -0.998025, -0.000000, 0.000000, 0.062811 + -0.998218, -0.000000, 0.000000, 0.059675 + -0.998400, -0.000000, 0.000000, 0.056537 + -0.998573, -0.000000, 0.000000, 0.053399 + -0.998736, -0.000000, 0.000000, 0.050261 + -0.998889, -0.000000, 0.000000, 0.047122 + -0.999032, -0.000000, 0.000000, 0.043983 + -0.999166, -0.000000, 0.000000, 0.040843 + -0.999289, -0.000000, 0.000000, 0.037703 + -0.999403, -0.000000, 0.000000, 0.034562 + -0.999506, -0.000000, 0.000000, 0.031421 + -0.999600, -0.000000, 0.000000, 0.028280 + -0.999684, -0.000000, 0.000000, 0.025138 + -0.999758, -0.000000, 0.000000, 0.021997 + -0.999822, -0.000000, 0.000000, 0.018855 + -0.999877, -0.000000, 0.000000, 0.015713 + -0.999921, -0.000000, 0.000000, 0.012570 + -0.999956, -0.000000, 0.000000, 0.009428 + -0.999980, -0.000000, 0.000000, 0.006285 + -0.999995, -0.000000, 0.000000, 0.003143 + -1.000000, -0.000000, 0.000000, 0.000000 diff --git a/scripts/trajectories/full-circle-T15.0-w0.4.csv b/scripts/trajectories/full-circle-T15.0-w0.4.csv index 13d804bbfd..593fc7961a 100644 --- a/scripts/trajectories/full-circle-T15.0-w0.4.csv +++ b/scripts/trajectories/full-circle-T15.0-w0.4.csv @@ -1,3000 +1,3000 @@ -0, 1.000000, 0.000000, 0.000000, 0.000000 -1, 0.999980, 0.000000, 0.000000, 0.006285 -2, 0.999921, 0.000000, 0.000000, 0.012570 -3, 0.999822, 0.000000, 0.000000, 0.018855 -4, 0.999684, 0.000000, 0.000000, 0.025138 -5, 0.999506, 0.000000, 0.000000, 0.031421 -6, 0.999289, 0.000000, 0.000000, 0.037703 -7, 0.999032, 0.000000, 0.000000, 0.043983 -8, 0.998736, 0.000000, 0.000000, 0.050261 -9, 0.998400, 0.000000, 0.000000, 0.056537 -10, 0.998025, 0.000000, 0.000000, 0.062811 -11, 0.997611, 0.000000, 0.000000, 0.069083 -12, 0.997157, 0.000000, 0.000000, 0.075352 -13, 0.996664, 0.000000, 0.000000, 0.081618 -14, 0.996131, 0.000000, 0.000000, 0.087880 -15, 0.995559, 0.000000, 0.000000, 0.094140 -16, 0.994948, 0.000000, 0.000000, 0.100395 -17, 0.994297, 0.000000, 0.000000, 0.106647 -18, 0.993607, 0.000000, 0.000000, 0.112894 -19, 0.992878, 0.000000, 0.000000, 0.119137 -20, 0.992109, 0.000000, 0.000000, 0.125375 -21, 0.991302, 0.000000, 0.000000, 0.131608 -22, 0.990455, 0.000000, 0.000000, 0.137836 -23, 0.989569, 0.000000, 0.000000, 0.144058 -24, 0.988644, 0.000000, 0.000000, 0.150275 -25, 0.987680, 0.000000, 0.000000, 0.156486 -26, 0.986677, 0.000000, 0.000000, 0.162691 -27, 0.985635, 0.000000, 0.000000, 0.168889 -28, 0.984554, 0.000000, 0.000000, 0.175081 -29, 0.983434, 0.000000, 0.000000, 0.181266 -30, 0.982275, 0.000000, 0.000000, 0.187443 -31, 0.981078, 0.000000, 0.000000, 0.193613 -32, 0.979842, 0.000000, 0.000000, 0.199776 -33, 0.978567, 0.000000, 0.000000, 0.205930 -34, 0.977253, 0.000000, 0.000000, 0.212077 -35, 0.975901, 0.000000, 0.000000, 0.218215 -36, 0.974510, 0.000000, 0.000000, 0.224344 -37, 0.973081, 0.000000, 0.000000, 0.230465 -38, 0.971613, 0.000000, 0.000000, 0.236576 -39, 0.970107, 0.000000, 0.000000, 0.242678 -40, 0.968562, 0.000000, 0.000000, 0.248771 -41, 0.966980, 0.000000, 0.000000, 0.254854 -42, 0.965359, 0.000000, 0.000000, 0.260926 -43, 0.963700, 0.000000, 0.000000, 0.266989 -44, 0.962003, 0.000000, 0.000000, 0.273041 -45, 0.960267, 0.000000, 0.000000, 0.279082 -46, 0.958494, 0.000000, 0.000000, 0.285112 -47, 0.956683, 0.000000, 0.000000, 0.291130 -48, 0.954835, 0.000000, 0.000000, 0.297138 -49, 0.952948, 0.000000, 0.000000, 0.303133 -50, 0.951024, 0.000000, 0.000000, 0.309117 -51, 0.949062, 0.000000, 0.000000, 0.315088 -52, 0.947063, 0.000000, 0.000000, 0.321047 -53, 0.945027, 0.000000, 0.000000, 0.326993 -54, 0.942953, 0.000000, 0.000000, 0.332926 -55, 0.940842, 0.000000, 0.000000, 0.338846 -56, 0.938693, 0.000000, 0.000000, 0.344753 -57, 0.936508, 0.000000, 0.000000, 0.350646 -58, 0.934286, 0.000000, 0.000000, 0.356525 -59, 0.932026, 0.000000, 0.000000, 0.362391 -60, 0.929730, 0.000000, 0.000000, 0.368241 -61, 0.927397, 0.000000, 0.000000, 0.374078 -62, 0.925028, 0.000000, 0.000000, 0.379899 -63, 0.922622, 0.000000, 0.000000, 0.385706 -64, 0.920179, 0.000000, 0.000000, 0.391497 -65, 0.917701, 0.000000, 0.000000, 0.397273 -66, 0.915185, 0.000000, 0.000000, 0.403033 -67, 0.912634, 0.000000, 0.000000, 0.408777 -68, 0.910047, 0.000000, 0.000000, 0.414505 -69, 0.907424, 0.000000, 0.000000, 0.420217 -70, 0.904765, 0.000000, 0.000000, 0.425912 -71, 0.902070, 0.000000, 0.000000, 0.431590 -72, 0.899339, 0.000000, 0.000000, 0.437251 -73, 0.896573, 0.000000, 0.000000, 0.442895 -74, 0.893772, 0.000000, 0.000000, 0.448522 -75, 0.890935, 0.000000, 0.000000, 0.454130 -76, 0.888063, 0.000000, 0.000000, 0.459721 -77, 0.885156, 0.000000, 0.000000, 0.465294 -78, 0.882214, 0.000000, 0.000000, 0.470848 -79, 0.879237, 0.000000, 0.000000, 0.476384 -80, 0.876226, 0.000000, 0.000000, 0.481901 -81, 0.873180, 0.000000, 0.000000, 0.487398 -82, 0.870099, 0.000000, 0.000000, 0.492877 -83, 0.866984, 0.000000, 0.000000, 0.498336 -84, 0.863835, 0.000000, 0.000000, 0.503775 -85, 0.860651, 0.000000, 0.000000, 0.509195 -86, 0.857434, 0.000000, 0.000000, 0.514594 -87, 0.854183, 0.000000, 0.000000, 0.519973 -88, 0.850898, 0.000000, 0.000000, 0.525332 -89, 0.847579, 0.000000, 0.000000, 0.530669 -90, 0.844227, 0.000000, 0.000000, 0.535986 -91, 0.840841, 0.000000, 0.000000, 0.541282 -92, 0.837423, 0.000000, 0.000000, 0.546556 -93, 0.833971, 0.000000, 0.000000, 0.551808 -94, 0.830486, 0.000000, 0.000000, 0.557039 -95, 0.826969, 0.000000, 0.000000, 0.562248 -96, 0.823418, 0.000000, 0.000000, 0.567435 -97, 0.819836, 0.000000, 0.000000, 0.572599 -98, 0.816221, 0.000000, 0.000000, 0.577740 -99, 0.812573, 0.000000, 0.000000, 0.582859 -100, 0.808894, 0.000000, 0.000000, 0.587955 -101, 0.805182, 0.000000, 0.000000, 0.593027 -102, 0.801439, 0.000000, 0.000000, 0.598076 -103, 0.797664, 0.000000, 0.000000, 0.603102 -104, 0.793858, 0.000000, 0.000000, 0.608103 -105, 0.790020, 0.000000, 0.000000, 0.613081 -106, 0.786151, 0.000000, 0.000000, 0.618034 -107, 0.782251, 0.000000, 0.000000, 0.622963 -108, 0.778320, 0.000000, 0.000000, 0.627867 -109, 0.774359, 0.000000, 0.000000, 0.632747 -110, 0.770366, 0.000000, 0.000000, 0.637602 -111, 0.766344, 0.000000, 0.000000, 0.642431 -112, 0.762291, 0.000000, 0.000000, 0.647235 -113, 0.758208, 0.000000, 0.000000, 0.652013 -114, 0.754095, 0.000000, 0.000000, 0.656766 -115, 0.749952, 0.000000, 0.000000, 0.661493 -116, 0.745779, 0.000000, 0.000000, 0.666193 -117, 0.741577, 0.000000, 0.000000, 0.670867 -118, 0.737346, 0.000000, 0.000000, 0.675515 -119, 0.733086, 0.000000, 0.000000, 0.680136 -120, 0.728797, 0.000000, 0.000000, 0.684730 -121, 0.724478, 0.000000, 0.000000, 0.689297 -122, 0.720132, 0.000000, 0.000000, 0.693837 -123, 0.715757, 0.000000, 0.000000, 0.698350 -124, 0.711353, 0.000000, 0.000000, 0.702835 -125, 0.706922, 0.000000, 0.000000, 0.707292 -126, 0.702462, 0.000000, 0.000000, 0.711721 -127, 0.697975, 0.000000, 0.000000, 0.716122 -128, 0.693460, 0.000000, 0.000000, 0.720495 -129, 0.688918, 0.000000, 0.000000, 0.724839 -130, 0.684349, 0.000000, 0.000000, 0.729155 -131, 0.679752, 0.000000, 0.000000, 0.733442 -132, 0.675129, 0.000000, 0.000000, 0.737700 -133, 0.670479, 0.000000, 0.000000, 0.741929 -134, 0.665802, 0.000000, 0.000000, 0.746128 -135, 0.661100, 0.000000, 0.000000, 0.750298 -136, 0.656371, 0.000000, 0.000000, 0.754438 -137, 0.651616, 0.000000, 0.000000, 0.758549 -138, 0.646835, 0.000000, 0.000000, 0.762630 -139, 0.642029, 0.000000, 0.000000, 0.766680 -140, 0.637198, 0.000000, 0.000000, 0.770700 -141, 0.632341, 0.000000, 0.000000, 0.774690 -142, 0.627460, 0.000000, 0.000000, 0.778649 -143, 0.622553, 0.000000, 0.000000, 0.782577 -144, 0.617622, 0.000000, 0.000000, 0.786475 -145, 0.612667, 0.000000, 0.000000, 0.790341 -146, 0.607687, 0.000000, 0.000000, 0.794176 -147, 0.602684, 0.000000, 0.000000, 0.797980 -148, 0.597656, 0.000000, 0.000000, 0.801752 -149, 0.592605, 0.000000, 0.000000, 0.805493 -150, 0.587531, 0.000000, 0.000000, 0.809202 -151, 0.582433, 0.000000, 0.000000, 0.812878 -152, 0.577313, 0.000000, 0.000000, 0.816523 -153, 0.572169, 0.000000, 0.000000, 0.820136 -154, 0.567003, 0.000000, 0.000000, 0.823716 -155, 0.561815, 0.000000, 0.000000, 0.827263 -156, 0.556604, 0.000000, 0.000000, 0.830778 -157, 0.551371, 0.000000, 0.000000, 0.834260 -158, 0.546117, 0.000000, 0.000000, 0.837709 -159, 0.540841, 0.000000, 0.000000, 0.841125 -160, 0.535544, 0.000000, 0.000000, 0.844507 -161, 0.530225, 0.000000, 0.000000, 0.847857 -162, 0.524886, 0.000000, 0.000000, 0.851173 -163, 0.519526, 0.000000, 0.000000, 0.854455 -164, 0.514145, 0.000000, 0.000000, 0.857703 -165, 0.508744, 0.000000, 0.000000, 0.860918 -166, 0.503323, 0.000000, 0.000000, 0.864099 -167, 0.497882, 0.000000, 0.000000, 0.867245 -168, 0.492421, 0.000000, 0.000000, 0.870357 -169, 0.486941, 0.000000, 0.000000, 0.873435 -170, 0.481442, 0.000000, 0.000000, 0.876478 -171, 0.475923, 0.000000, 0.000000, 0.879487 -172, 0.470386, 0.000000, 0.000000, 0.882461 -173, 0.464830, 0.000000, 0.000000, 0.885400 -174, 0.459256, 0.000000, 0.000000, 0.888304 -175, 0.453664, 0.000000, 0.000000, 0.891173 -176, 0.448054, 0.000000, 0.000000, 0.894007 -177, 0.442426, 0.000000, 0.000000, 0.896805 -178, 0.436780, 0.000000, 0.000000, 0.899568 -179, 0.431118, 0.000000, 0.000000, 0.902296 -180, 0.425438, 0.000000, 0.000000, 0.904988 -181, 0.419742, 0.000000, 0.000000, 0.907644 -182, 0.414029, 0.000000, 0.000000, 0.910264 -183, 0.408299, 0.000000, 0.000000, 0.912848 -184, 0.402554, 0.000000, 0.000000, 0.915396 -185, 0.396792, 0.000000, 0.000000, 0.917908 -186, 0.391015, 0.000000, 0.000000, 0.920384 -187, 0.385222, 0.000000, 0.000000, 0.922824 -188, 0.379415, 0.000000, 0.000000, 0.925227 -189, 0.373592, 0.000000, 0.000000, 0.927593 -190, 0.367754, 0.000000, 0.000000, 0.929923 -191, 0.361902, 0.000000, 0.000000, 0.932216 -192, 0.356036, 0.000000, 0.000000, 0.934472 -193, 0.350156, 0.000000, 0.000000, 0.936692 -194, 0.344261, 0.000000, 0.000000, 0.938874 -195, 0.338354, 0.000000, 0.000000, 0.941019 -196, 0.332432, 0.000000, 0.000000, 0.943127 -197, 0.326498, 0.000000, 0.000000, 0.945198 -198, 0.320551, 0.000000, 0.000000, 0.947231 -199, 0.314591, 0.000000, 0.000000, 0.949227 -200, 0.308618, 0.000000, 0.000000, 0.951186 -201, 0.302634, 0.000000, 0.000000, 0.953107 -202, 0.296637, 0.000000, 0.000000, 0.954990 -203, 0.290629, 0.000000, 0.000000, 0.956836 -204, 0.284610, 0.000000, 0.000000, 0.958644 -205, 0.278579, 0.000000, 0.000000, 0.960413 -206, 0.272537, 0.000000, 0.000000, 0.962145 -207, 0.266484, 0.000000, 0.000000, 0.963839 -208, 0.260421, 0.000000, 0.000000, 0.965495 -209, 0.254347, 0.000000, 0.000000, 0.967113 -210, 0.248264, 0.000000, 0.000000, 0.968692 -211, 0.242170, 0.000000, 0.000000, 0.970234 -212, 0.236067, 0.000000, 0.000000, 0.971737 -213, 0.229955, 0.000000, 0.000000, 0.973201 -214, 0.223834, 0.000000, 0.000000, 0.974627 -215, 0.217704, 0.000000, 0.000000, 0.976015 -216, 0.211565, 0.000000, 0.000000, 0.977364 -217, 0.205418, 0.000000, 0.000000, 0.978674 -218, 0.199262, 0.000000, 0.000000, 0.979946 -219, 0.193099, 0.000000, 0.000000, 0.981179 -220, 0.186929, 0.000000, 0.000000, 0.982374 -221, 0.180750, 0.000000, 0.000000, 0.983529 -222, 0.174565, 0.000000, 0.000000, 0.984646 -223, 0.168373, 0.000000, 0.000000, 0.985723 -224, 0.162174, 0.000000, 0.000000, 0.986762 -225, 0.155969, 0.000000, 0.000000, 0.987762 -226, 0.149757, 0.000000, 0.000000, 0.988723 -227, 0.143540, 0.000000, 0.000000, 0.989644 -228, 0.137317, 0.000000, 0.000000, 0.990527 -229, 0.131089, 0.000000, 0.000000, 0.991371 -230, 0.124855, 0.000000, 0.000000, 0.992175 -231, 0.118617, 0.000000, 0.000000, 0.992940 -232, 0.112373, 0.000000, 0.000000, 0.993666 -233, 0.106126, 0.000000, 0.000000, 0.994353 -234, 0.099874, 0.000000, 0.000000, 0.995000 -235, 0.093618, 0.000000, 0.000000, 0.995608 -236, 0.087359, 0.000000, 0.000000, 0.996177 -237, 0.081096, 0.000000, 0.000000, 0.996706 -238, 0.074830, 0.000000, 0.000000, 0.997196 -239, 0.068560, 0.000000, 0.000000, 0.997647 -240, 0.062289, 0.000000, 0.000000, 0.998058 -241, 0.056014, 0.000000, 0.000000, 0.998430 -242, 0.049738, 0.000000, 0.000000, 0.998762 -243, 0.043459, 0.000000, 0.000000, 0.999055 -244, 0.037179, 0.000000, 0.000000, 0.999309 -245, 0.030898, 0.000000, 0.000000, 0.999523 -246, 0.024615, 0.000000, 0.000000, 0.999697 -247, 0.018331, 0.000000, 0.000000, 0.999832 -248, 0.012046, 0.000000, 0.000000, 0.999927 -249, 0.005761, 0.000000, 0.000000, 0.999983 -250, -0.000524, -0.000000, 0.000000, 1.000000 -251, -0.006809, -0.000000, 0.000000, 0.999977 -252, -0.013094, -0.000000, 0.000000, 0.999914 -253, -0.019378, -0.000000, 0.000000, 0.999812 -254, -0.025662, -0.000000, 0.000000, 0.999671 -255, -0.031945, -0.000000, 0.000000, 0.999490 -256, -0.038226, -0.000000, 0.000000, 0.999269 -257, -0.044506, -0.000000, 0.000000, 0.999009 -258, -0.050784, -0.000000, 0.000000, 0.998710 -259, -0.057060, -0.000000, 0.000000, 0.998371 -260, -0.063334, -0.000000, 0.000000, 0.997992 -261, -0.069606, -0.000000, 0.000000, 0.997575 -262, -0.075874, -0.000000, 0.000000, 0.997117 -263, -0.082140, -0.000000, 0.000000, 0.996621 -264, -0.088402, -0.000000, 0.000000, 0.996085 -265, -0.094661, -0.000000, 0.000000, 0.995510 -266, -0.100916, -0.000000, 0.000000, 0.994895 -267, -0.107167, -0.000000, 0.000000, 0.994241 -268, -0.113414, -0.000000, 0.000000, 0.993548 -269, -0.119657, -0.000000, 0.000000, 0.992815 -270, -0.125894, -0.000000, 0.000000, 0.992044 -271, -0.132127, -0.000000, 0.000000, 0.991233 -272, -0.138355, -0.000000, 0.000000, 0.990383 -273, -0.144577, -0.000000, 0.000000, 0.989494 -274, -0.150793, -0.000000, 0.000000, 0.988565 -275, -0.157003, -0.000000, 0.000000, 0.987598 -276, -0.163208, -0.000000, 0.000000, 0.986592 -277, -0.169405, -0.000000, 0.000000, 0.985546 -278, -0.175596, -0.000000, 0.000000, 0.984462 -279, -0.181781, -0.000000, 0.000000, 0.983339 -280, -0.187958, -0.000000, 0.000000, 0.982177 -281, -0.194127, -0.000000, 0.000000, 0.980976 -282, -0.200289, -0.000000, 0.000000, 0.979737 -283, -0.206443, -0.000000, 0.000000, 0.978459 -284, -0.212589, -0.000000, 0.000000, 0.977142 -285, -0.218726, -0.000000, 0.000000, 0.975786 -286, -0.224855, -0.000000, 0.000000, 0.974392 -287, -0.230975, -0.000000, 0.000000, 0.972960 -288, -0.237085, -0.000000, 0.000000, 0.971489 -289, -0.243187, -0.000000, 0.000000, 0.969980 -290, -0.249278, -0.000000, 0.000000, 0.968432 -291, -0.255360, -0.000000, 0.000000, 0.966846 -292, -0.261432, -0.000000, 0.000000, 0.965222 -293, -0.267494, -0.000000, 0.000000, 0.963560 -294, -0.273544, -0.000000, 0.000000, 0.961859 -295, -0.279585, -0.000000, 0.000000, 0.960121 -296, -0.285614, -0.000000, 0.000000, 0.958345 -297, -0.291631, -0.000000, 0.000000, 0.956531 -298, -0.297638, -0.000000, 0.000000, 0.954679 -299, -0.303632, -0.000000, 0.000000, 0.952789 -300, -0.309615, -0.000000, 0.000000, 0.950862 -301, -0.315585, -0.000000, 0.000000, 0.948897 -302, -0.321543, -0.000000, 0.000000, 0.946895 -303, -0.327488, -0.000000, 0.000000, 0.944855 -304, -0.333420, -0.000000, 0.000000, 0.942778 -305, -0.339339, -0.000000, 0.000000, 0.940664 -306, -0.345245, -0.000000, 0.000000, 0.938513 -307, -0.351137, -0.000000, 0.000000, 0.936324 -308, -0.357015, -0.000000, 0.000000, 0.934099 -309, -0.362879, -0.000000, 0.000000, 0.931836 -310, -0.368728, -0.000000, 0.000000, 0.929537 -311, -0.374563, -0.000000, 0.000000, 0.927201 -312, -0.380384, -0.000000, 0.000000, 0.924829 -313, -0.386189, -0.000000, 0.000000, 0.922420 -314, -0.391979, -0.000000, 0.000000, 0.919974 -315, -0.397753, -0.000000, 0.000000, 0.917492 -316, -0.403512, -0.000000, 0.000000, 0.914974 -317, -0.409255, -0.000000, 0.000000, 0.912420 -318, -0.414982, -0.000000, 0.000000, 0.909830 -319, -0.420692, -0.000000, 0.000000, 0.907203 -320, -0.426386, -0.000000, 0.000000, 0.904541 -321, -0.432063, -0.000000, 0.000000, 0.901844 -322, -0.437722, -0.000000, 0.000000, 0.899110 -323, -0.443365, -0.000000, 0.000000, 0.896341 -324, -0.448990, -0.000000, 0.000000, 0.893537 -325, -0.454597, -0.000000, 0.000000, 0.890697 -326, -0.460186, -0.000000, 0.000000, 0.887822 -327, -0.465757, -0.000000, 0.000000, 0.884912 -328, -0.471310, -0.000000, 0.000000, 0.881968 -329, -0.476844, -0.000000, 0.000000, 0.878988 -330, -0.482359, -0.000000, 0.000000, 0.875973 -331, -0.487856, -0.000000, 0.000000, 0.872924 -332, -0.493332, -0.000000, 0.000000, 0.869841 -333, -0.498790, -0.000000, 0.000000, 0.866723 -334, -0.504228, -0.000000, 0.000000, 0.863571 -335, -0.509645, -0.000000, 0.000000, 0.860385 -336, -0.515043, -0.000000, 0.000000, 0.857164 -337, -0.520420, -0.000000, 0.000000, 0.853910 -338, -0.525777, -0.000000, 0.000000, 0.850622 -339, -0.531113, -0.000000, 0.000000, 0.847301 -340, -0.536428, -0.000000, 0.000000, 0.843946 -341, -0.541722, -0.000000, 0.000000, 0.840558 -342, -0.546994, -0.000000, 0.000000, 0.837136 -343, -0.552245, -0.000000, 0.000000, 0.833682 -344, -0.557474, -0.000000, 0.000000, 0.830194 -345, -0.562681, -0.000000, 0.000000, 0.826674 -346, -0.567866, -0.000000, 0.000000, 0.823121 -347, -0.573028, -0.000000, 0.000000, 0.819536 -348, -0.578168, -0.000000, 0.000000, 0.815918 -349, -0.583285, -0.000000, 0.000000, 0.812268 -350, -0.588378, -0.000000, 0.000000, 0.808586 -351, -0.593449, -0.000000, 0.000000, 0.804872 -352, -0.598496, -0.000000, 0.000000, 0.801126 -353, -0.603519, -0.000000, 0.000000, 0.797348 -354, -0.608519, -0.000000, 0.000000, 0.793539 -355, -0.613495, -0.000000, 0.000000, 0.789699 -356, -0.618446, -0.000000, 0.000000, 0.785827 -357, -0.623373, -0.000000, 0.000000, 0.781925 -358, -0.628275, -0.000000, 0.000000, 0.777991 -359, -0.633153, -0.000000, 0.000000, 0.774027 -360, -0.638005, -0.000000, 0.000000, 0.770032 -361, -0.642832, -0.000000, 0.000000, 0.766007 -362, -0.647634, -0.000000, 0.000000, 0.761952 -363, -0.652410, -0.000000, 0.000000, 0.757866 -364, -0.657161, -0.000000, 0.000000, 0.753750 -365, -0.661885, -0.000000, 0.000000, 0.749605 -366, -0.666584, -0.000000, 0.000000, 0.745430 -367, -0.671256, -0.000000, 0.000000, 0.741226 -368, -0.675901, -0.000000, 0.000000, 0.736992 -369, -0.680520, -0.000000, 0.000000, 0.732729 -370, -0.685112, -0.000000, 0.000000, 0.728438 -371, -0.689677, -0.000000, 0.000000, 0.724117 -372, -0.694214, -0.000000, 0.000000, 0.719768 -373, -0.698725, -0.000000, 0.000000, 0.715391 -374, -0.703207, -0.000000, 0.000000, 0.710985 -375, -0.707662, -0.000000, 0.000000, 0.706551 -376, -0.712089, -0.000000, 0.000000, 0.702089 -377, -0.716488, -0.000000, 0.000000, 0.697600 -378, -0.720858, -0.000000, 0.000000, 0.693083 -379, -0.725200, -0.000000, 0.000000, 0.688538 -380, -0.729513, -0.000000, 0.000000, 0.683967 -381, -0.733798, -0.000000, 0.000000, 0.679368 -382, -0.738053, -0.000000, 0.000000, 0.674742 -383, -0.742280, -0.000000, 0.000000, 0.670090 -384, -0.746477, -0.000000, 0.000000, 0.665412 -385, -0.750644, -0.000000, 0.000000, 0.660707 -386, -0.754782, -0.000000, 0.000000, 0.655976 -387, -0.758890, -0.000000, 0.000000, 0.651219 -388, -0.762968, -0.000000, 0.000000, 0.646436 -389, -0.767016, -0.000000, 0.000000, 0.641628 -390, -0.771034, -0.000000, 0.000000, 0.636794 -391, -0.775021, -0.000000, 0.000000, 0.631935 -392, -0.778978, -0.000000, 0.000000, 0.627052 -393, -0.782903, -0.000000, 0.000000, 0.622143 -394, -0.786798, -0.000000, 0.000000, 0.617210 -395, -0.790662, -0.000000, 0.000000, 0.612253 -396, -0.794494, -0.000000, 0.000000, 0.607271 -397, -0.798296, -0.000000, 0.000000, 0.602266 -398, -0.802065, -0.000000, 0.000000, 0.597236 -399, -0.805803, -0.000000, 0.000000, 0.592183 -400, -0.809509, -0.000000, 0.000000, 0.587107 -401, -0.813183, -0.000000, 0.000000, 0.582008 -402, -0.816825, -0.000000, 0.000000, 0.576885 -403, -0.820435, -0.000000, 0.000000, 0.571740 -404, -0.824012, -0.000000, 0.000000, 0.566572 -405, -0.827557, -0.000000, 0.000000, 0.561381 -406, -0.831069, -0.000000, 0.000000, 0.556169 -407, -0.834549, -0.000000, 0.000000, 0.550934 -408, -0.837995, -0.000000, 0.000000, 0.545678 -409, -0.841408, -0.000000, 0.000000, 0.540400 -410, -0.844788, -0.000000, 0.000000, 0.535101 -411, -0.848134, -0.000000, 0.000000, 0.529781 -412, -0.851447, -0.000000, 0.000000, 0.524440 -413, -0.854727, -0.000000, 0.000000, 0.519078 -414, -0.857973, -0.000000, 0.000000, 0.513696 -415, -0.861184, -0.000000, 0.000000, 0.508293 -416, -0.864362, -0.000000, 0.000000, 0.502870 -417, -0.867506, -0.000000, 0.000000, 0.497427 -418, -0.870615, -0.000000, 0.000000, 0.491965 -419, -0.873690, -0.000000, 0.000000, 0.486483 -420, -0.876730, -0.000000, 0.000000, 0.480982 -421, -0.879736, -0.000000, 0.000000, 0.475462 -422, -0.882707, -0.000000, 0.000000, 0.469924 -423, -0.885643, -0.000000, 0.000000, 0.464366 -424, -0.888544, -0.000000, 0.000000, 0.458791 -425, -0.891410, -0.000000, 0.000000, 0.453197 -426, -0.894241, -0.000000, 0.000000, 0.447585 -427, -0.897037, -0.000000, 0.000000, 0.441956 -428, -0.899797, -0.000000, 0.000000, 0.436309 -429, -0.902521, -0.000000, 0.000000, 0.430645 -430, -0.905210, -0.000000, 0.000000, 0.424964 -431, -0.907863, -0.000000, 0.000000, 0.419266 -432, -0.910481, -0.000000, 0.000000, 0.413552 -433, -0.913062, -0.000000, 0.000000, 0.407821 -434, -0.915607, -0.000000, 0.000000, 0.402074 -435, -0.918116, -0.000000, 0.000000, 0.396311 -436, -0.920589, -0.000000, 0.000000, 0.390533 -437, -0.923025, -0.000000, 0.000000, 0.384739 -438, -0.925425, -0.000000, 0.000000, 0.378930 -439, -0.927789, -0.000000, 0.000000, 0.373106 -440, -0.930115, -0.000000, 0.000000, 0.367267 -441, -0.932405, -0.000000, 0.000000, 0.361414 -442, -0.934659, -0.000000, 0.000000, 0.355547 -443, -0.936875, -0.000000, 0.000000, 0.349665 -444, -0.939054, -0.000000, 0.000000, 0.343770 -445, -0.941196, -0.000000, 0.000000, 0.337861 -446, -0.943301, -0.000000, 0.000000, 0.331938 -447, -0.945369, -0.000000, 0.000000, 0.326003 -448, -0.947399, -0.000000, 0.000000, 0.320055 -449, -0.949392, -0.000000, 0.000000, 0.314094 -450, -0.951347, -0.000000, 0.000000, 0.308120 -451, -0.953265, -0.000000, 0.000000, 0.302135 -452, -0.955145, -0.000000, 0.000000, 0.296137 -453, -0.956988, -0.000000, 0.000000, 0.290128 -454, -0.958792, -0.000000, 0.000000, 0.284107 -455, -0.960559, -0.000000, 0.000000, 0.278076 -456, -0.962288, -0.000000, 0.000000, 0.272033 -457, -0.963979, -0.000000, 0.000000, 0.265979 -458, -0.965631, -0.000000, 0.000000, 0.259915 -459, -0.967246, -0.000000, 0.000000, 0.253841 -460, -0.968822, -0.000000, 0.000000, 0.247756 -461, -0.970360, -0.000000, 0.000000, 0.241662 -462, -0.971860, -0.000000, 0.000000, 0.235558 -463, -0.973322, -0.000000, 0.000000, 0.229445 -464, -0.974744, -0.000000, 0.000000, 0.223323 -465, -0.976129, -0.000000, 0.000000, 0.217192 -466, -0.977475, -0.000000, 0.000000, 0.211053 -467, -0.978782, -0.000000, 0.000000, 0.204905 -468, -0.980050, -0.000000, 0.000000, 0.198749 -469, -0.981280, -0.000000, 0.000000, 0.192585 -470, -0.982471, -0.000000, 0.000000, 0.186414 -471, -0.983624, -0.000000, 0.000000, 0.180235 -472, -0.984737, -0.000000, 0.000000, 0.174049 -473, -0.985811, -0.000000, 0.000000, 0.167857 -474, -0.986847, -0.000000, 0.000000, 0.161657 -475, -0.987844, -0.000000, 0.000000, 0.155451 -476, -0.988801, -0.000000, 0.000000, 0.149240 -477, -0.989720, -0.000000, 0.000000, 0.143022 -478, -0.990599, -0.000000, 0.000000, 0.136798 -479, -0.991439, -0.000000, 0.000000, 0.130569 -480, -0.992240, -0.000000, 0.000000, 0.124335 -481, -0.993002, -0.000000, 0.000000, 0.118097 -482, -0.993725, -0.000000, 0.000000, 0.111853 -483, -0.994408, -0.000000, 0.000000, 0.105605 -484, -0.995052, -0.000000, 0.000000, 0.099353 -485, -0.995657, -0.000000, 0.000000, 0.093097 -486, -0.996223, -0.000000, 0.000000, 0.086837 -487, -0.996749, -0.000000, 0.000000, 0.080574 -488, -0.997235, -0.000000, 0.000000, 0.074307 -489, -0.997683, -0.000000, 0.000000, 0.068038 -490, -0.998091, -0.000000, 0.000000, 0.061766 -491, -0.998459, -0.000000, 0.000000, 0.055491 -492, -0.998788, -0.000000, 0.000000, 0.049215 -493, -0.999078, -0.000000, 0.000000, 0.042936 -494, -0.999328, -0.000000, 0.000000, 0.036656 -495, -0.999539, -0.000000, 0.000000, 0.030374 -496, -0.999710, -0.000000, 0.000000, 0.024091 -497, -0.999841, -0.000000, 0.000000, 0.017807 -498, -0.999934, -0.000000, 0.000000, 0.011523 -499, -0.999986, -0.000000, 0.000000, 0.005238 -500, -0.999999, 0.000000, -0.000000, -0.001048 -501, -0.999973, 0.000000, -0.000000, -0.007333 -502, -0.999907, 0.000000, -0.000000, -0.013618 -503, -0.999802, 0.000000, -0.000000, -0.019902 -504, -0.999657, 0.000000, -0.000000, -0.026186 -505, -0.999473, 0.000000, -0.000000, -0.032468 -506, -0.999249, 0.000000, -0.000000, -0.038750 -507, -0.998986, 0.000000, -0.000000, -0.045029 -508, -0.998683, 0.000000, -0.000000, -0.051307 -509, -0.998341, 0.000000, -0.000000, -0.057583 -510, -0.997959, 0.000000, -0.000000, -0.063857 -511, -0.997538, 0.000000, -0.000000, -0.070128 -512, -0.997078, 0.000000, -0.000000, -0.076396 -513, -0.996578, 0.000000, -0.000000, -0.082662 -514, -0.996038, 0.000000, -0.000000, -0.088924 -515, -0.995460, 0.000000, -0.000000, -0.095182 -516, -0.994842, 0.000000, -0.000000, -0.101437 -517, -0.994185, 0.000000, -0.000000, -0.107688 -518, -0.993488, 0.000000, -0.000000, -0.113935 -519, -0.992753, 0.000000, -0.000000, -0.120177 -520, -0.991978, 0.000000, -0.000000, -0.126414 -521, -0.991163, 0.000000, -0.000000, -0.132646 -522, -0.990310, 0.000000, -0.000000, -0.138873 -523, -0.989418, 0.000000, -0.000000, -0.145095 -524, -0.988486, 0.000000, -0.000000, -0.151311 -525, -0.987516, 0.000000, -0.000000, -0.157521 -526, -0.986506, 0.000000, -0.000000, -0.163724 -527, -0.985458, 0.000000, -0.000000, -0.169922 -528, -0.984370, 0.000000, -0.000000, -0.176112 -529, -0.983244, 0.000000, -0.000000, -0.182296 -530, -0.982079, 0.000000, -0.000000, -0.188472 -531, -0.980875, 0.000000, -0.000000, -0.194641 -532, -0.979632, 0.000000, -0.000000, -0.200802 -533, -0.978350, 0.000000, -0.000000, -0.206955 -534, -0.977030, 0.000000, -0.000000, -0.213100 -535, -0.975672, 0.000000, -0.000000, -0.219237 -536, -0.974274, 0.000000, -0.000000, -0.225365 -537, -0.972839, 0.000000, -0.000000, -0.231484 -538, -0.971365, 0.000000, -0.000000, -0.237594 -539, -0.969852, 0.000000, -0.000000, -0.243695 -540, -0.968301, 0.000000, -0.000000, -0.249786 -541, -0.966712, 0.000000, -0.000000, -0.255867 -542, -0.965085, 0.000000, -0.000000, -0.261938 -543, -0.963419, 0.000000, -0.000000, -0.267998 -544, -0.961716, 0.000000, -0.000000, -0.274048 -545, -0.959975, 0.000000, -0.000000, -0.280087 -546, -0.958195, 0.000000, -0.000000, -0.286116 -547, -0.956378, 0.000000, -0.000000, -0.292132 -548, -0.954523, 0.000000, -0.000000, -0.298138 -549, -0.952630, 0.000000, -0.000000, -0.304131 -550, -0.950700, 0.000000, -0.000000, -0.310113 -551, -0.948732, 0.000000, -0.000000, -0.316082 -552, -0.946727, 0.000000, -0.000000, -0.322039 -553, -0.944684, 0.000000, -0.000000, -0.327983 -554, -0.942604, 0.000000, -0.000000, -0.333914 -555, -0.940486, 0.000000, -0.000000, -0.339832 -556, -0.938332, 0.000000, -0.000000, -0.345736 -557, -0.936140, 0.000000, -0.000000, -0.351627 -558, -0.933912, 0.000000, -0.000000, -0.357504 -559, -0.931646, 0.000000, -0.000000, -0.363367 -560, -0.929344, 0.000000, -0.000000, -0.369215 -561, -0.927005, 0.000000, -0.000000, -0.375049 -562, -0.924629, 0.000000, -0.000000, -0.380868 -563, -0.922217, 0.000000, -0.000000, -0.386672 -564, -0.919769, 0.000000, -0.000000, -0.392461 -565, -0.917284, 0.000000, -0.000000, -0.398234 -566, -0.914763, 0.000000, -0.000000, -0.403991 -567, -0.912206, 0.000000, -0.000000, -0.409733 -568, -0.909612, 0.000000, -0.000000, -0.415458 -569, -0.906983, 0.000000, -0.000000, -0.421167 -570, -0.904318, 0.000000, -0.000000, -0.426860 -571, -0.901617, 0.000000, -0.000000, -0.432535 -572, -0.898881, 0.000000, -0.000000, -0.438193 -573, -0.896109, 0.000000, -0.000000, -0.443834 -574, -0.893302, 0.000000, -0.000000, -0.449458 -575, -0.890459, 0.000000, -0.000000, -0.455064 -576, -0.887581, 0.000000, -0.000000, -0.460651 -577, -0.884668, 0.000000, -0.000000, -0.466221 -578, -0.881721, 0.000000, -0.000000, -0.471772 -579, -0.878738, 0.000000, -0.000000, -0.477305 -580, -0.875721, 0.000000, -0.000000, -0.482818 -581, -0.872669, 0.000000, -0.000000, -0.488313 -582, -0.869582, 0.000000, -0.000000, -0.493788 -583, -0.866462, 0.000000, -0.000000, -0.499244 -584, -0.863307, 0.000000, -0.000000, -0.504680 -585, -0.860117, 0.000000, -0.000000, -0.510096 -586, -0.856894, 0.000000, -0.000000, -0.515492 -587, -0.853638, 0.000000, -0.000000, -0.520868 -588, -0.850347, 0.000000, -0.000000, -0.526223 -589, -0.847023, 0.000000, -0.000000, -0.531557 -590, -0.843665, 0.000000, -0.000000, -0.536870 -591, -0.840274, 0.000000, -0.000000, -0.542162 -592, -0.836850, 0.000000, -0.000000, -0.547433 -593, -0.833392, 0.000000, -0.000000, -0.552682 -594, -0.829902, 0.000000, -0.000000, -0.557909 -595, -0.826379, 0.000000, -0.000000, -0.563114 -596, -0.822824, 0.000000, -0.000000, -0.568297 -597, -0.819235, 0.000000, -0.000000, -0.573457 -598, -0.815615, 0.000000, -0.000000, -0.578595 -599, -0.811962, 0.000000, -0.000000, -0.583710 -600, -0.808277, 0.000000, -0.000000, -0.588802 -601, -0.804561, 0.000000, -0.000000, -0.593870 -602, -0.800812, 0.000000, -0.000000, -0.598915 -603, -0.797032, 0.000000, -0.000000, -0.603937 -604, -0.793220, 0.000000, -0.000000, -0.608935 -605, -0.789377, 0.000000, -0.000000, -0.613908 -606, -0.785503, 0.000000, -0.000000, -0.618857 -607, -0.781598, 0.000000, -0.000000, -0.623782 -608, -0.777662, 0.000000, -0.000000, -0.628682 -609, -0.773695, 0.000000, -0.000000, -0.633558 -610, -0.769698, 0.000000, -0.000000, -0.638408 -611, -0.765670, 0.000000, -0.000000, -0.643233 -612, -0.761612, 0.000000, -0.000000, -0.648033 -613, -0.757524, 0.000000, -0.000000, -0.652807 -614, -0.753406, 0.000000, -0.000000, -0.657555 -615, -0.749258, 0.000000, -0.000000, -0.662278 -616, -0.745081, 0.000000, -0.000000, -0.666974 -617, -0.740874, 0.000000, -0.000000, -0.671644 -618, -0.736638, 0.000000, -0.000000, -0.676287 -619, -0.732373, 0.000000, -0.000000, -0.680904 -620, -0.728079, 0.000000, -0.000000, -0.685493 -621, -0.723756, 0.000000, -0.000000, -0.690056 -622, -0.719404, 0.000000, -0.000000, -0.694591 -623, -0.715025, 0.000000, -0.000000, -0.699099 -624, -0.710616, 0.000000, -0.000000, -0.703580 -625, -0.706180, 0.000000, -0.000000, -0.708032 -626, -0.701716, 0.000000, -0.000000, -0.712457 -627, -0.697224, 0.000000, -0.000000, -0.716853 -628, -0.692705, 0.000000, -0.000000, -0.721221 -629, -0.688158, 0.000000, -0.000000, -0.725561 -630, -0.683584, 0.000000, -0.000000, -0.729872 -631, -0.678983, 0.000000, -0.000000, -0.734154 -632, -0.674356, 0.000000, -0.000000, -0.738407 -633, -0.669701, 0.000000, -0.000000, -0.742631 -634, -0.665020, 0.000000, -0.000000, -0.746825 -635, -0.660313, 0.000000, -0.000000, -0.750990 -636, -0.655580, 0.000000, -0.000000, -0.755126 -637, -0.650821, 0.000000, -0.000000, -0.759231 -638, -0.646036, 0.000000, -0.000000, -0.763307 -639, -0.641226, 0.000000, -0.000000, -0.767352 -640, -0.636390, 0.000000, -0.000000, -0.771367 -641, -0.631529, 0.000000, -0.000000, -0.775352 -642, -0.626644, 0.000000, -0.000000, -0.779306 -643, -0.621733, 0.000000, -0.000000, -0.783229 -644, -0.616798, 0.000000, -0.000000, -0.787121 -645, -0.611839, 0.000000, -0.000000, -0.790983 -646, -0.606855, 0.000000, -0.000000, -0.794812 -647, -0.601848, 0.000000, -0.000000, -0.798611 -648, -0.596816, 0.000000, -0.000000, -0.802378 -649, -0.591761, 0.000000, -0.000000, -0.806113 -650, -0.586683, 0.000000, -0.000000, -0.809817 -651, -0.581581, 0.000000, -0.000000, -0.813488 -652, -0.576457, 0.000000, -0.000000, -0.817127 -653, -0.571310, 0.000000, -0.000000, -0.820734 -654, -0.566140, 0.000000, -0.000000, -0.824309 -655, -0.560948, 0.000000, -0.000000, -0.827851 -656, -0.555734, 0.000000, -0.000000, -0.831360 -657, -0.550497, 0.000000, -0.000000, -0.834837 -658, -0.545239, 0.000000, -0.000000, -0.838280 -659, -0.539960, 0.000000, -0.000000, -0.841691 -660, -0.534659, 0.000000, -0.000000, -0.845068 -661, -0.529337, 0.000000, -0.000000, -0.848412 -662, -0.523994, 0.000000, -0.000000, -0.851722 -663, -0.518630, 0.000000, -0.000000, -0.854999 -664, -0.513246, 0.000000, -0.000000, -0.858241 -665, -0.507842, 0.000000, -0.000000, -0.861450 -666, -0.502417, 0.000000, -0.000000, -0.864625 -667, -0.496973, 0.000000, -0.000000, -0.867766 -668, -0.491509, 0.000000, -0.000000, -0.870872 -669, -0.486026, 0.000000, -0.000000, -0.873945 -670, -0.480523, 0.000000, -0.000000, -0.876982 -671, -0.475002, 0.000000, -0.000000, -0.879985 -672, -0.469461, 0.000000, -0.000000, -0.882953 -673, -0.463902, 0.000000, -0.000000, -0.885886 -674, -0.458325, 0.000000, -0.000000, -0.888785 -675, -0.452730, 0.000000, -0.000000, -0.891648 -676, -0.447117, 0.000000, -0.000000, -0.894476 -677, -0.441486, 0.000000, -0.000000, -0.897268 -678, -0.435838, 0.000000, -0.000000, -0.900025 -679, -0.430172, 0.000000, -0.000000, -0.902747 -680, -0.424490, 0.000000, -0.000000, -0.905433 -681, -0.418791, 0.000000, -0.000000, -0.908083 -682, -0.413075, 0.000000, -0.000000, -0.910697 -683, -0.407343, 0.000000, -0.000000, -0.913275 -684, -0.401594, 0.000000, -0.000000, -0.915818 -685, -0.395830, 0.000000, -0.000000, -0.918324 -686, -0.390051, 0.000000, -0.000000, -0.920793 -687, -0.384256, 0.000000, -0.000000, -0.923227 -688, -0.378445, 0.000000, -0.000000, -0.925624 -689, -0.372620, 0.000000, -0.000000, -0.927984 -690, -0.366780, 0.000000, -0.000000, -0.930308 -691, -0.360926, 0.000000, -0.000000, -0.932595 -692, -0.355057, 0.000000, -0.000000, -0.934845 -693, -0.349174, 0.000000, -0.000000, -0.937058 -694, -0.343278, 0.000000, -0.000000, -0.939234 -695, -0.337368, 0.000000, -0.000000, -0.941373 -696, -0.331444, 0.000000, -0.000000, -0.943475 -697, -0.325508, 0.000000, -0.000000, -0.945539 -698, -0.319558, 0.000000, -0.000000, -0.947567 -699, -0.313596, 0.000000, -0.000000, -0.949556 -700, -0.307622, 0.000000, -0.000000, -0.951509 -701, -0.301635, 0.000000, -0.000000, -0.953423 -702, -0.295637, 0.000000, -0.000000, -0.955300 -703, -0.289627, 0.000000, -0.000000, -0.957140 -704, -0.283605, 0.000000, -0.000000, -0.958941 -705, -0.277572, 0.000000, -0.000000, -0.960705 -706, -0.271529, 0.000000, -0.000000, -0.962430 -707, -0.265474, 0.000000, -0.000000, -0.964118 -708, -0.259409, 0.000000, -0.000000, -0.965767 -709, -0.253334, 0.000000, -0.000000, -0.967379 -710, -0.247249, 0.000000, -0.000000, -0.968952 -711, -0.241154, 0.000000, -0.000000, -0.970487 -712, -0.235049, 0.000000, -0.000000, -0.971983 -713, -0.228936, 0.000000, -0.000000, -0.973442 -714, -0.222813, 0.000000, -0.000000, -0.974861 -715, -0.216681, 0.000000, -0.000000, -0.976242 -716, -0.210541, 0.000000, -0.000000, -0.977585 -717, -0.204392, 0.000000, -0.000000, -0.978889 -718, -0.198236, 0.000000, -0.000000, -0.980154 -719, -0.192071, 0.000000, -0.000000, -0.981381 -720, -0.185899, 0.000000, -0.000000, -0.982569 -721, -0.179720, 0.000000, -0.000000, -0.983718 -722, -0.173534, 0.000000, -0.000000, -0.984828 -723, -0.167340, 0.000000, -0.000000, -0.985899 -724, -0.161140, 0.000000, -0.000000, -0.986932 -725, -0.154934, 0.000000, -0.000000, -0.987925 -726, -0.148722, 0.000000, -0.000000, -0.988879 -727, -0.142503, 0.000000, -0.000000, -0.989794 -728, -0.136279, 0.000000, -0.000000, -0.990670 -729, -0.130050, 0.000000, -0.000000, -0.991507 -730, -0.123816, 0.000000, -0.000000, -0.992305 -731, -0.117576, 0.000000, -0.000000, -0.993064 -732, -0.111332, 0.000000, -0.000000, -0.993783 -733, -0.105084, 0.000000, -0.000000, -0.994463 -734, -0.098832, 0.000000, -0.000000, -0.995104 -735, -0.092575, 0.000000, -0.000000, -0.995706 -736, -0.086315, 0.000000, -0.000000, -0.996268 -737, -0.080052, 0.000000, -0.000000, -0.996791 -738, -0.073785, 0.000000, -0.000000, -0.997274 -739, -0.067515, 0.000000, -0.000000, -0.997718 -740, -0.061243, 0.000000, -0.000000, -0.998123 -741, -0.054968, 0.000000, -0.000000, -0.998488 -742, -0.048692, 0.000000, -0.000000, -0.998814 -743, -0.042413, 0.000000, -0.000000, -0.999100 -744, -0.036132, 0.000000, -0.000000, -0.999347 -745, -0.029851, 0.000000, -0.000000, -0.999554 -746, -0.023568, 0.000000, -0.000000, -0.999722 -747, -0.017284, 0.000000, -0.000000, -0.999851 -748, -0.010999, 0.000000, -0.000000, -0.999940 -749, -0.004714, 0.000000, -0.000000, -0.999989 -750, 0.001571, 0.000000, 0.000000, -0.999999 -751, 0.007857, 0.000000, 0.000000, -0.999969 -752, 0.014141, 0.000000, 0.000000, -0.999900 -753, 0.020426, 0.000000, 0.000000, -0.999791 -754, 0.026709, 0.000000, 0.000000, -0.999643 -755, 0.032992, 0.000000, 0.000000, -0.999456 -756, 0.039273, 0.000000, 0.000000, -0.999229 -757, 0.045553, 0.000000, 0.000000, -0.998962 -758, 0.051830, 0.000000, 0.000000, -0.998656 -759, 0.058106, 0.000000, 0.000000, -0.998310 -760, 0.064380, 0.000000, 0.000000, -0.997925 -761, 0.070650, 0.000000, 0.000000, -0.997501 -762, 0.076919, 0.000000, 0.000000, -0.997037 -763, 0.083184, 0.000000, 0.000000, -0.996534 -764, 0.089446, 0.000000, 0.000000, -0.995992 -765, 0.095704, 0.000000, 0.000000, -0.995410 -766, 0.101958, 0.000000, 0.000000, -0.994789 -767, 0.108209, 0.000000, 0.000000, -0.994128 -768, 0.114455, 0.000000, 0.000000, -0.993428 -769, 0.120697, 0.000000, 0.000000, -0.992689 -770, 0.126934, 0.000000, 0.000000, -0.991911 -771, 0.133165, 0.000000, 0.000000, -0.991094 -772, 0.139392, 0.000000, 0.000000, -0.990237 -773, 0.145613, 0.000000, 0.000000, -0.989342 -774, 0.151829, 0.000000, 0.000000, -0.988407 -775, 0.158038, 0.000000, 0.000000, -0.987433 -776, 0.164241, 0.000000, 0.000000, -0.986420 -777, 0.170438, 0.000000, 0.000000, -0.985368 -778, 0.176628, 0.000000, 0.000000, -0.984278 -779, 0.182811, 0.000000, 0.000000, -0.983148 -780, 0.188986, 0.000000, 0.000000, -0.981980 -781, 0.195155, 0.000000, 0.000000, -0.980773 -782, 0.201315, 0.000000, 0.000000, -0.979527 -783, 0.207468, 0.000000, 0.000000, -0.978242 -784, 0.213612, 0.000000, 0.000000, -0.976919 -785, 0.219748, 0.000000, 0.000000, -0.975557 -786, 0.225875, 0.000000, 0.000000, -0.974156 -787, 0.231994, 0.000000, 0.000000, -0.972717 -788, 0.238103, 0.000000, 0.000000, -0.971240 -789, 0.244203, 0.000000, 0.000000, -0.969724 -790, 0.250293, 0.000000, 0.000000, -0.968170 -791, 0.256373, 0.000000, 0.000000, -0.966578 -792, 0.262443, 0.000000, 0.000000, -0.964947 -793, 0.268503, 0.000000, 0.000000, -0.963279 -794, 0.274552, 0.000000, 0.000000, -0.961572 -795, 0.280590, 0.000000, 0.000000, -0.959828 -796, 0.286617, 0.000000, 0.000000, -0.958045 -797, 0.292633, 0.000000, 0.000000, -0.956225 -798, 0.298638, 0.000000, 0.000000, -0.954367 -799, 0.304630, 0.000000, 0.000000, -0.952471 -800, 0.310611, 0.000000, 0.000000, -0.950537 -801, 0.316579, 0.000000, 0.000000, -0.948566 -802, 0.322535, 0.000000, 0.000000, -0.946558 -803, 0.328478, 0.000000, 0.000000, -0.944512 -804, 0.334407, 0.000000, 0.000000, -0.942429 -805, 0.340324, 0.000000, 0.000000, -0.940308 -806, 0.346228, 0.000000, 0.000000, -0.938151 -807, 0.352117, 0.000000, 0.000000, -0.935956 -808, 0.357993, 0.000000, 0.000000, -0.933724 -809, 0.363855, 0.000000, 0.000000, -0.931456 -810, 0.369702, 0.000000, 0.000000, -0.929150 -811, 0.375535, 0.000000, 0.000000, -0.926808 -812, 0.381352, 0.000000, 0.000000, -0.924430 -813, 0.387155, 0.000000, 0.000000, -0.922015 -814, 0.392942, 0.000000, 0.000000, -0.919563 -815, 0.398714, 0.000000, 0.000000, -0.917075 -816, 0.404471, 0.000000, 0.000000, -0.914551 -817, 0.410211, 0.000000, 0.000000, -0.911991 -818, 0.415935, 0.000000, 0.000000, -0.909394 -819, 0.421642, 0.000000, 0.000000, -0.906762 -820, 0.427333, 0.000000, 0.000000, -0.904094 -821, 0.433007, 0.000000, 0.000000, -0.901390 -822, 0.438664, 0.000000, 0.000000, -0.898651 -823, 0.444304, 0.000000, 0.000000, -0.895876 -824, 0.449926, 0.000000, 0.000000, -0.893066 -825, 0.455530, 0.000000, 0.000000, -0.890220 -826, 0.461116, 0.000000, 0.000000, -0.887340 -827, 0.466684, 0.000000, 0.000000, -0.884424 -828, 0.472234, 0.000000, 0.000000, -0.881473 -829, 0.477765, 0.000000, 0.000000, -0.878488 -830, 0.483277, 0.000000, 0.000000, -0.875468 -831, 0.488770, 0.000000, 0.000000, -0.872413 -832, 0.494243, 0.000000, 0.000000, -0.869324 -833, 0.499698, 0.000000, 0.000000, -0.866200 -834, 0.505132, 0.000000, 0.000000, -0.863042 -835, 0.510546, 0.000000, 0.000000, -0.859850 -836, 0.515941, 0.000000, 0.000000, -0.856624 -837, 0.521315, 0.000000, 0.000000, -0.853365 -838, 0.526668, 0.000000, 0.000000, -0.850071 -839, 0.532000, 0.000000, 0.000000, -0.846744 -840, 0.537312, 0.000000, 0.000000, -0.843384 -841, 0.542602, 0.000000, 0.000000, -0.839990 -842, 0.547871, 0.000000, 0.000000, -0.836563 -843, 0.553118, 0.000000, 0.000000, -0.833103 -844, 0.558343, 0.000000, 0.000000, -0.829610 -845, 0.563547, 0.000000, 0.000000, -0.826084 -846, 0.568728, 0.000000, 0.000000, -0.822526 -847, 0.573886, 0.000000, 0.000000, -0.818935 -848, 0.579022, 0.000000, 0.000000, -0.815312 -849, 0.584135, 0.000000, 0.000000, -0.811656 -850, 0.589225, 0.000000, 0.000000, -0.807969 -851, 0.594292, 0.000000, 0.000000, -0.804250 -852, 0.599335, 0.000000, 0.000000, -0.800498 -853, 0.604354, 0.000000, 0.000000, -0.796716 -854, 0.609350, 0.000000, 0.000000, -0.792901 -855, 0.614321, 0.000000, 0.000000, -0.789056 -856, 0.619269, 0.000000, 0.000000, -0.785179 -857, 0.624192, 0.000000, 0.000000, -0.781271 -858, 0.629090, 0.000000, 0.000000, -0.777333 -859, 0.633963, 0.000000, 0.000000, -0.773363 -860, 0.638811, 0.000000, 0.000000, -0.769363 -861, 0.643634, 0.000000, 0.000000, -0.765333 -862, 0.648432, 0.000000, 0.000000, -0.761273 -863, 0.653204, 0.000000, 0.000000, -0.757182 -864, 0.657950, 0.000000, 0.000000, -0.753062 -865, 0.662670, 0.000000, 0.000000, -0.748911 -866, 0.667364, 0.000000, 0.000000, -0.744732 -867, 0.672032, 0.000000, 0.000000, -0.740522 -868, 0.676673, 0.000000, 0.000000, -0.736284 -869, 0.681287, 0.000000, 0.000000, -0.732016 -870, 0.685875, 0.000000, 0.000000, -0.727720 -871, 0.690435, 0.000000, 0.000000, -0.723394 -872, 0.694968, 0.000000, 0.000000, -0.719041 -873, 0.699474, 0.000000, 0.000000, -0.714658 -874, 0.703952, 0.000000, 0.000000, -0.710248 -875, 0.708402, 0.000000, 0.000000, -0.705809 -876, 0.712824, 0.000000, 0.000000, -0.701343 -877, 0.717218, 0.000000, 0.000000, -0.696849 -878, 0.721584, 0.000000, 0.000000, -0.692327 -879, 0.725921, 0.000000, 0.000000, -0.687778 -880, 0.730229, 0.000000, 0.000000, -0.683202 -881, 0.734509, 0.000000, 0.000000, -0.678599 -882, 0.738760, 0.000000, 0.000000, -0.673969 -883, 0.742981, 0.000000, 0.000000, -0.669312 -884, 0.747173, 0.000000, 0.000000, -0.664629 -885, 0.751336, 0.000000, 0.000000, -0.659920 -886, 0.755469, 0.000000, 0.000000, -0.655185 -887, 0.759572, 0.000000, 0.000000, -0.650423 -888, 0.763645, 0.000000, 0.000000, -0.645636 -889, 0.767688, 0.000000, 0.000000, -0.640824 -890, 0.771700, 0.000000, 0.000000, -0.635986 -891, 0.775683, 0.000000, 0.000000, -0.631123 -892, 0.779634, 0.000000, 0.000000, -0.626235 -893, 0.783555, 0.000000, 0.000000, -0.621323 -894, 0.787444, 0.000000, 0.000000, -0.616386 -895, 0.791303, 0.000000, 0.000000, -0.611424 -896, 0.795130, 0.000000, 0.000000, -0.606439 -897, 0.798926, 0.000000, 0.000000, -0.601429 -898, 0.802690, 0.000000, 0.000000, -0.596396 -899, 0.806423, 0.000000, 0.000000, -0.591339 -900, 0.810124, 0.000000, 0.000000, -0.586259 -901, 0.813793, 0.000000, 0.000000, -0.581155 -902, 0.817429, 0.000000, 0.000000, -0.576029 -903, 0.821034, 0.000000, 0.000000, -0.570880 -904, 0.824606, 0.000000, 0.000000, -0.565708 -905, 0.828145, 0.000000, 0.000000, -0.560514 -906, 0.831651, 0.000000, 0.000000, -0.555298 -907, 0.835125, 0.000000, 0.000000, -0.550060 -908, 0.838566, 0.000000, 0.000000, -0.544800 -909, 0.841974, 0.000000, 0.000000, -0.539519 -910, 0.845348, 0.000000, 0.000000, -0.534216 -911, 0.848689, 0.000000, 0.000000, -0.528892 -912, 0.851996, 0.000000, 0.000000, -0.523548 -913, 0.855270, 0.000000, 0.000000, -0.518182 -914, 0.858510, 0.000000, 0.000000, -0.512797 -915, 0.861716, 0.000000, 0.000000, -0.507390 -916, 0.864888, 0.000000, 0.000000, -0.501964 -917, 0.868026, 0.000000, 0.000000, -0.496518 -918, 0.871130, 0.000000, 0.000000, -0.491053 -919, 0.874199, 0.000000, 0.000000, -0.485568 -920, 0.877234, 0.000000, 0.000000, -0.480064 -921, 0.880234, 0.000000, 0.000000, -0.474541 -922, 0.883199, 0.000000, 0.000000, -0.468999 -923, 0.886129, 0.000000, 0.000000, -0.463438 -924, 0.889024, 0.000000, 0.000000, -0.457860 -925, 0.891885, 0.000000, 0.000000, -0.452263 -926, 0.894710, 0.000000, 0.000000, -0.446648 -927, 0.897499, 0.000000, 0.000000, -0.441016 -928, 0.900253, 0.000000, 0.000000, -0.435366 -929, 0.902972, 0.000000, 0.000000, -0.429699 -930, 0.905655, 0.000000, 0.000000, -0.424015 -931, 0.908302, 0.000000, 0.000000, -0.418315 -932, 0.910913, 0.000000, 0.000000, -0.412598 -933, 0.913489, 0.000000, 0.000000, -0.406864 -934, 0.916028, 0.000000, 0.000000, -0.401115 -935, 0.918531, 0.000000, 0.000000, -0.395349 -936, 0.920998, 0.000000, 0.000000, -0.389568 -937, 0.923428, 0.000000, 0.000000, -0.383772 -938, 0.925822, 0.000000, 0.000000, -0.377960 -939, 0.928179, 0.000000, 0.000000, -0.372134 -940, 0.930500, 0.000000, 0.000000, -0.366293 -941, 0.932784, 0.000000, 0.000000, -0.360437 -942, 0.935031, 0.000000, 0.000000, -0.354567 -943, 0.937241, 0.000000, 0.000000, -0.348683 -944, 0.939414, 0.000000, 0.000000, -0.342786 -945, 0.941550, 0.000000, 0.000000, -0.336874 -946, 0.943648, 0.000000, 0.000000, -0.330950 -947, 0.945710, 0.000000, 0.000000, -0.325012 -948, 0.947734, 0.000000, 0.000000, -0.319062 -949, 0.949721, 0.000000, 0.000000, -0.313099 -950, 0.951670, 0.000000, 0.000000, -0.307123 -951, 0.953581, 0.000000, 0.000000, -0.301136 -952, 0.955455, 0.000000, 0.000000, -0.295136 -953, 0.957291, 0.000000, 0.000000, -0.289125 -954, 0.959090, 0.000000, 0.000000, -0.283103 -955, 0.960850, 0.000000, 0.000000, -0.277069 -956, 0.962572, 0.000000, 0.000000, -0.271025 -957, 0.964257, 0.000000, 0.000000, -0.264969 -958, 0.965903, 0.000000, 0.000000, -0.258903 -959, 0.967511, 0.000000, 0.000000, -0.252827 -960, 0.969081, 0.000000, 0.000000, -0.246741 -961, 0.970613, 0.000000, 0.000000, -0.240646 -962, 0.972106, 0.000000, 0.000000, -0.234540 -963, 0.973561, 0.000000, 0.000000, -0.228426 -964, 0.974978, 0.000000, 0.000000, -0.222302 -965, 0.976356, 0.000000, 0.000000, -0.216170 -966, 0.977695, 0.000000, 0.000000, -0.210029 -967, 0.978996, 0.000000, 0.000000, -0.203880 -968, 0.980258, 0.000000, 0.000000, -0.197722 -969, 0.981481, 0.000000, 0.000000, -0.191557 -970, 0.982666, 0.000000, 0.000000, -0.185385 -971, 0.983812, 0.000000, 0.000000, -0.179205 -972, 0.984919, 0.000000, 0.000000, -0.173018 -973, 0.985987, 0.000000, 0.000000, -0.166824 -974, 0.987016, 0.000000, 0.000000, -0.160623 -975, 0.988006, 0.000000, 0.000000, -0.154417 -976, 0.988957, 0.000000, 0.000000, -0.148204 -977, 0.989869, 0.000000, 0.000000, -0.141985 -978, 0.990742, 0.000000, 0.000000, -0.135761 -979, 0.991575, 0.000000, 0.000000, -0.129531 -980, 0.992370, 0.000000, 0.000000, -0.123296 -981, 0.993125, 0.000000, 0.000000, -0.117056 -982, 0.993841, 0.000000, 0.000000, -0.110812 -983, 0.994518, 0.000000, 0.000000, -0.104563 -984, 0.995156, 0.000000, 0.000000, -0.098310 -985, 0.995754, 0.000000, 0.000000, -0.092054 -986, 0.996313, 0.000000, 0.000000, -0.085793 -987, 0.996833, 0.000000, 0.000000, -0.079529 -988, 0.997313, 0.000000, 0.000000, -0.073263 -989, 0.997753, 0.000000, 0.000000, -0.066993 -990, 0.998155, 0.000000, 0.000000, -0.060720 -991, 0.998517, 0.000000, 0.000000, -0.054445 -992, 0.998839, 0.000000, 0.000000, -0.048169 -993, 0.999122, 0.000000, 0.000000, -0.041890 -994, 0.999366, 0.000000, 0.000000, -0.035609 -995, 0.999570, 0.000000, 0.000000, -0.029327 -996, 0.999734, 0.000000, 0.000000, -0.023044 -997, 0.999860, 0.000000, 0.000000, -0.016760 -998, 0.999945, 0.000000, 0.000000, -0.010475 -999, 0.999991, 0.000000, 0.000000, -0.004190 -1000, 0.999998, 0.000000, 0.000000, 0.002095 -1001, 0.999965, 0.000000, 0.000000, 0.008380 -1002, 0.999892, 0.000000, 0.000000, 0.014665 -1003, 0.999781, 0.000000, 0.000000, 0.020949 -1004, 0.999629, 0.000000, 0.000000, 0.027233 -1005, 0.999438, 0.000000, 0.000000, 0.033515 -1006, 0.999208, 0.000000, 0.000000, 0.039796 -1007, 0.998938, 0.000000, 0.000000, 0.046076 -1008, 0.998629, 0.000000, 0.000000, 0.052353 -1009, 0.998280, 0.000000, 0.000000, 0.058629 -1010, 0.997892, 0.000000, 0.000000, 0.064902 -1011, 0.997464, 0.000000, 0.000000, 0.071173 -1012, 0.996997, 0.000000, 0.000000, 0.077441 -1013, 0.996491, 0.000000, 0.000000, 0.083706 -1014, 0.995945, 0.000000, 0.000000, 0.089967 -1015, 0.995360, 0.000000, 0.000000, 0.096225 -1016, 0.994735, 0.000000, 0.000000, 0.102479 -1017, 0.994071, 0.000000, 0.000000, 0.108729 -1018, 0.993368, 0.000000, 0.000000, 0.114975 -1019, 0.992626, 0.000000, 0.000000, 0.121217 -1020, 0.991845, 0.000000, 0.000000, 0.127453 -1021, 0.991024, 0.000000, 0.000000, 0.133685 -1022, 0.990164, 0.000000, 0.000000, 0.139911 -1023, 0.989265, 0.000000, 0.000000, 0.146131 -1024, 0.988327, 0.000000, 0.000000, 0.152346 -1025, 0.987350, 0.000000, 0.000000, 0.158555 -1026, 0.986334, 0.000000, 0.000000, 0.164758 -1027, 0.985279, 0.000000, 0.000000, 0.170954 -1028, 0.984185, 0.000000, 0.000000, 0.177143 -1029, 0.983052, 0.000000, 0.000000, 0.183326 -1030, 0.981881, 0.000000, 0.000000, 0.189501 -1031, 0.980670, 0.000000, 0.000000, 0.195668 -1032, 0.979421, 0.000000, 0.000000, 0.201828 -1033, 0.978133, 0.000000, 0.000000, 0.207980 -1034, 0.976807, 0.000000, 0.000000, 0.214124 -1035, 0.975441, 0.000000, 0.000000, 0.220259 -1036, 0.974038, 0.000000, 0.000000, 0.226385 -1037, 0.972596, 0.000000, 0.000000, 0.232503 -1038, 0.971115, 0.000000, 0.000000, 0.238611 -1039, 0.969596, 0.000000, 0.000000, 0.244710 -1040, 0.968039, 0.000000, 0.000000, 0.250800 -1041, 0.966444, 0.000000, 0.000000, 0.256879 -1042, 0.964810, 0.000000, 0.000000, 0.262948 -1043, 0.963138, 0.000000, 0.000000, 0.269007 -1044, 0.961428, 0.000000, 0.000000, 0.275056 -1045, 0.959681, 0.000000, 0.000000, 0.281093 -1046, 0.957895, 0.000000, 0.000000, 0.287119 -1047, 0.956071, 0.000000, 0.000000, 0.293134 -1048, 0.954210, 0.000000, 0.000000, 0.299137 -1049, 0.952311, 0.000000, 0.000000, 0.305129 -1050, 0.950374, 0.000000, 0.000000, 0.311108 -1051, 0.948400, 0.000000, 0.000000, 0.317076 -1052, 0.946389, 0.000000, 0.000000, 0.323030 -1053, 0.944340, 0.000000, 0.000000, 0.328972 -1054, 0.942253, 0.000000, 0.000000, 0.334901 -1055, 0.940130, 0.000000, 0.000000, 0.340817 -1056, 0.937969, 0.000000, 0.000000, 0.346719 -1057, 0.935771, 0.000000, 0.000000, 0.352607 -1058, 0.933537, 0.000000, 0.000000, 0.358482 -1059, 0.931265, 0.000000, 0.000000, 0.364342 -1060, 0.928957, 0.000000, 0.000000, 0.370188 -1061, 0.926612, 0.000000, 0.000000, 0.376020 -1062, 0.924230, 0.000000, 0.000000, 0.381836 -1063, 0.921812, 0.000000, 0.000000, 0.387638 -1064, 0.919357, 0.000000, 0.000000, 0.393424 -1065, 0.916866, 0.000000, 0.000000, 0.399195 -1066, 0.914339, 0.000000, 0.000000, 0.404950 -1067, 0.911776, 0.000000, 0.000000, 0.410688 -1068, 0.909177, 0.000000, 0.000000, 0.416411 -1069, 0.906541, 0.000000, 0.000000, 0.422117 -1070, 0.903870, 0.000000, 0.000000, 0.427807 -1071, 0.901164, 0.000000, 0.000000, 0.433479 -1072, 0.898421, 0.000000, 0.000000, 0.439135 -1073, 0.895643, 0.000000, 0.000000, 0.444773 -1074, 0.892830, 0.000000, 0.000000, 0.450393 -1075, 0.889982, 0.000000, 0.000000, 0.455996 -1076, 0.887098, 0.000000, 0.000000, 0.461581 -1077, 0.884179, 0.000000, 0.000000, 0.467147 -1078, 0.881226, 0.000000, 0.000000, 0.472695 -1079, 0.878237, 0.000000, 0.000000, 0.478225 -1080, 0.875214, 0.000000, 0.000000, 0.483735 -1081, 0.872157, 0.000000, 0.000000, 0.489227 -1082, 0.869065, 0.000000, 0.000000, 0.494699 -1083, 0.865938, 0.000000, 0.000000, 0.500151 -1084, 0.862777, 0.000000, 0.000000, 0.505584 -1085, 0.859583, 0.000000, 0.000000, 0.510997 -1086, 0.856354, 0.000000, 0.000000, 0.516389 -1087, 0.853091, 0.000000, 0.000000, 0.521761 -1088, 0.849795, 0.000000, 0.000000, 0.527113 -1089, 0.846465, 0.000000, 0.000000, 0.532444 -1090, 0.843102, 0.000000, 0.000000, 0.537754 -1091, 0.839706, 0.000000, 0.000000, 0.543042 -1092, 0.836276, 0.000000, 0.000000, 0.548309 -1093, 0.832813, 0.000000, 0.000000, 0.553554 -1094, 0.829317, 0.000000, 0.000000, 0.558778 -1095, 0.825789, 0.000000, 0.000000, 0.563979 -1096, 0.822228, 0.000000, 0.000000, 0.569158 -1097, 0.818634, 0.000000, 0.000000, 0.574315 -1098, 0.815008, 0.000000, 0.000000, 0.579449 -1099, 0.811350, 0.000000, 0.000000, 0.584560 -1100, 0.807660, 0.000000, 0.000000, 0.589648 -1101, 0.803938, 0.000000, 0.000000, 0.594713 -1102, 0.800184, 0.000000, 0.000000, 0.599754 -1103, 0.796399, 0.000000, 0.000000, 0.604772 -1104, 0.792582, 0.000000, 0.000000, 0.609765 -1105, 0.788734, 0.000000, 0.000000, 0.614735 -1106, 0.784855, 0.000000, 0.000000, 0.619680 -1107, 0.780944, 0.000000, 0.000000, 0.624601 -1108, 0.777003, 0.000000, 0.000000, 0.629497 -1109, 0.773031, 0.000000, 0.000000, 0.634368 -1110, 0.769029, 0.000000, 0.000000, 0.639214 -1111, 0.764996, 0.000000, 0.000000, 0.644035 -1112, 0.760933, 0.000000, 0.000000, 0.648830 -1113, 0.756840, 0.000000, 0.000000, 0.653600 -1114, 0.752717, 0.000000, 0.000000, 0.658344 -1115, 0.748564, 0.000000, 0.000000, 0.663062 -1116, 0.744382, 0.000000, 0.000000, 0.667754 -1117, 0.740170, 0.000000, 0.000000, 0.672420 -1118, 0.735929, 0.000000, 0.000000, 0.677058 -1119, 0.731659, 0.000000, 0.000000, 0.681671 -1120, 0.727360, 0.000000, 0.000000, 0.686256 -1121, 0.723033, 0.000000, 0.000000, 0.690814 -1122, 0.718676, 0.000000, 0.000000, 0.695345 -1123, 0.714292, 0.000000, 0.000000, 0.699848 -1124, 0.709879, 0.000000, 0.000000, 0.704324 -1125, 0.705438, 0.000000, 0.000000, 0.708771 -1126, 0.700969, 0.000000, 0.000000, 0.713191 -1127, 0.696473, 0.000000, 0.000000, 0.717583 -1128, 0.691949, 0.000000, 0.000000, 0.721946 -1129, 0.687398, 0.000000, 0.000000, 0.726281 -1130, 0.682819, 0.000000, 0.000000, 0.730587 -1131, 0.678214, 0.000000, 0.000000, 0.734864 -1132, 0.673582, 0.000000, 0.000000, 0.739113 -1133, 0.668923, 0.000000, 0.000000, 0.743332 -1134, 0.664238, 0.000000, 0.000000, 0.747521 -1135, 0.659526, 0.000000, 0.000000, 0.751682 -1136, 0.654789, 0.000000, 0.000000, 0.755812 -1137, 0.650025, 0.000000, 0.000000, 0.759913 -1138, 0.645236, 0.000000, 0.000000, 0.763983 -1139, 0.640422, 0.000000, 0.000000, 0.768023 -1140, 0.635582, 0.000000, 0.000000, 0.772033 -1141, 0.630717, 0.000000, 0.000000, 0.776013 -1142, 0.625827, 0.000000, 0.000000, 0.779962 -1143, 0.620912, 0.000000, 0.000000, 0.783880 -1144, 0.615973, 0.000000, 0.000000, 0.787767 -1145, 0.611010, 0.000000, 0.000000, 0.791623 -1146, 0.606022, 0.000000, 0.000000, 0.795448 -1147, 0.601011, 0.000000, 0.000000, 0.799241 -1148, 0.595975, 0.000000, 0.000000, 0.803003 -1149, 0.590917, 0.000000, 0.000000, 0.806733 -1150, 0.585834, 0.000000, 0.000000, 0.810431 -1151, 0.580729, 0.000000, 0.000000, 0.814097 -1152, 0.575601, 0.000000, 0.000000, 0.817731 -1153, 0.570450, 0.000000, 0.000000, 0.821333 -1154, 0.565276, 0.000000, 0.000000, 0.824902 -1155, 0.560080, 0.000000, 0.000000, 0.828438 -1156, 0.554862, 0.000000, 0.000000, 0.831942 -1157, 0.549622, 0.000000, 0.000000, 0.835413 -1158, 0.544361, 0.000000, 0.000000, 0.838851 -1159, 0.539078, 0.000000, 0.000000, 0.842256 -1160, 0.533773, 0.000000, 0.000000, 0.845628 -1161, 0.528448, 0.000000, 0.000000, 0.848966 -1162, 0.523101, 0.000000, 0.000000, 0.852270 -1163, 0.517734, 0.000000, 0.000000, 0.855541 -1164, 0.512347, 0.000000, 0.000000, 0.858779 -1165, 0.506939, 0.000000, 0.000000, 0.861982 -1166, 0.501511, 0.000000, 0.000000, 0.865151 -1167, 0.496064, 0.000000, 0.000000, 0.868286 -1168, 0.490596, 0.000000, 0.000000, 0.871387 -1169, 0.485110, 0.000000, 0.000000, 0.874453 -1170, 0.479604, 0.000000, 0.000000, 0.877485 -1171, 0.474079, 0.000000, 0.000000, 0.880482 -1172, 0.468536, 0.000000, 0.000000, 0.883444 -1173, 0.462974, 0.000000, 0.000000, 0.886372 -1174, 0.457394, 0.000000, 0.000000, 0.889264 -1175, 0.451796, 0.000000, 0.000000, 0.892121 -1176, 0.446180, 0.000000, 0.000000, 0.894943 -1177, 0.440546, 0.000000, 0.000000, 0.897730 -1178, 0.434895, 0.000000, 0.000000, 0.900481 -1179, 0.429226, 0.000000, 0.000000, 0.903197 -1180, 0.423541, 0.000000, 0.000000, 0.905877 -1181, 0.417839, 0.000000, 0.000000, 0.908521 -1182, 0.412121, 0.000000, 0.000000, 0.911129 -1183, 0.406386, 0.000000, 0.000000, 0.913702 -1184, 0.400635, 0.000000, 0.000000, 0.916238 -1185, 0.394868, 0.000000, 0.000000, 0.918738 -1186, 0.389086, 0.000000, 0.000000, 0.921201 -1187, 0.383288, 0.000000, 0.000000, 0.923629 -1188, 0.377475, 0.000000, 0.000000, 0.926020 -1189, 0.371648, 0.000000, 0.000000, 0.928374 -1190, 0.365805, 0.000000, 0.000000, 0.930691 -1191, 0.359948, 0.000000, 0.000000, 0.932972 -1192, 0.354077, 0.000000, 0.000000, 0.935216 -1193, 0.348192, 0.000000, 0.000000, 0.937423 -1194, 0.342294, 0.000000, 0.000000, 0.939593 -1195, 0.336381, 0.000000, 0.000000, 0.941726 -1196, 0.330456, 0.000000, 0.000000, 0.943822 -1197, 0.324517, 0.000000, 0.000000, 0.945880 -1198, 0.318565, 0.000000, 0.000000, 0.947901 -1199, 0.312601, 0.000000, 0.000000, 0.949884 -1200, 0.306625, 0.000000, 0.000000, 0.951830 -1201, 0.300636, 0.000000, 0.000000, 0.953739 -1202, 0.294636, 0.000000, 0.000000, 0.955610 -1203, 0.288624, 0.000000, 0.000000, 0.957443 -1204, 0.282600, 0.000000, 0.000000, 0.959238 -1205, 0.276566, 0.000000, 0.000000, 0.960995 -1206, 0.270520, 0.000000, 0.000000, 0.962714 -1207, 0.264464, 0.000000, 0.000000, 0.964396 -1208, 0.258397, 0.000000, 0.000000, 0.966039 -1209, 0.252321, 0.000000, 0.000000, 0.967644 -1210, 0.246234, 0.000000, 0.000000, 0.969210 -1211, 0.240137, 0.000000, 0.000000, 0.970739 -1212, 0.234031, 0.000000, 0.000000, 0.972229 -1213, 0.227916, 0.000000, 0.000000, 0.973681 -1214, 0.221791, 0.000000, 0.000000, 0.975094 -1215, 0.215658, 0.000000, 0.000000, 0.976469 -1216, 0.209517, 0.000000, 0.000000, 0.977805 -1217, 0.203367, 0.000000, 0.000000, 0.979103 -1218, 0.197209, 0.000000, 0.000000, 0.980361 -1219, 0.191043, 0.000000, 0.000000, 0.981582 -1220, 0.184870, 0.000000, 0.000000, 0.982763 -1221, 0.178689, 0.000000, 0.000000, 0.983906 -1222, 0.172502, 0.000000, 0.000000, 0.985009 -1223, 0.166307, 0.000000, 0.000000, 0.986074 -1224, 0.160106, 0.000000, 0.000000, 0.987100 -1225, 0.153899, 0.000000, 0.000000, 0.988087 -1226, 0.147686, 0.000000, 0.000000, 0.989034 -1227, 0.141466, 0.000000, 0.000000, 0.989943 -1228, 0.135242, 0.000000, 0.000000, 0.990813 -1229, 0.129011, 0.000000, 0.000000, 0.991643 -1230, 0.122776, 0.000000, 0.000000, 0.992434 -1231, 0.116536, 0.000000, 0.000000, 0.993186 -1232, 0.110291, 0.000000, 0.000000, 0.993899 -1233, 0.104042, 0.000000, 0.000000, 0.994573 -1234, 0.097789, 0.000000, 0.000000, 0.995207 -1235, 0.091532, 0.000000, 0.000000, 0.995802 -1236, 0.085271, 0.000000, 0.000000, 0.996358 -1237, 0.079007, 0.000000, 0.000000, 0.996874 -1238, 0.072740, 0.000000, 0.000000, 0.997351 -1239, 0.066470, 0.000000, 0.000000, 0.997788 -1240, 0.060198, 0.000000, 0.000000, 0.998186 -1241, 0.053922, 0.000000, 0.000000, 0.998545 -1242, 0.047645, 0.000000, 0.000000, 0.998864 -1243, 0.041366, 0.000000, 0.000000, 0.999144 -1244, 0.035086, 0.000000, 0.000000, 0.999384 -1245, 0.028804, 0.000000, 0.000000, 0.999585 -1246, 0.022520, 0.000000, 0.000000, 0.999746 -1247, 0.016236, 0.000000, 0.000000, 0.999868 -1248, 0.009952, 0.000000, 0.000000, 0.999950 -1249, 0.003666, 0.000000, 0.000000, 0.999993 -1250, -0.002619, -0.000000, 0.000000, 0.999997 -1251, -0.008904, -0.000000, 0.000000, 0.999960 -1252, -0.015189, -0.000000, 0.000000, 0.999885 -1253, -0.021473, -0.000000, 0.000000, 0.999769 -1254, -0.027756, -0.000000, 0.000000, 0.999615 -1255, -0.034039, -0.000000, 0.000000, 0.999421 -1256, -0.040320, -0.000000, 0.000000, 0.999187 -1257, -0.046599, -0.000000, 0.000000, 0.998914 -1258, -0.052876, -0.000000, 0.000000, 0.998601 -1259, -0.059152, -0.000000, 0.000000, 0.998249 -1260, -0.065425, -0.000000, 0.000000, 0.997857 -1261, -0.071695, -0.000000, 0.000000, 0.997427 -1262, -0.077963, -0.000000, 0.000000, 0.996956 -1263, -0.084228, -0.000000, 0.000000, 0.996447 -1264, -0.090489, -0.000000, 0.000000, 0.995897 -1265, -0.096747, -0.000000, 0.000000, 0.995309 -1266, -0.103000, -0.000000, 0.000000, 0.994681 -1267, -0.109250, -0.000000, 0.000000, 0.994014 -1268, -0.115496, -0.000000, 0.000000, 0.993308 -1269, -0.121736, -0.000000, 0.000000, 0.992562 -1270, -0.127973, -0.000000, 0.000000, 0.991778 -1271, -0.134204, -0.000000, 0.000000, 0.990954 -1272, -0.140429, -0.000000, 0.000000, 0.990091 -1273, -0.146650, -0.000000, 0.000000, 0.989189 -1274, -0.152864, -0.000000, 0.000000, 0.988247 -1275, -0.159072, -0.000000, 0.000000, 0.987267 -1276, -0.165274, -0.000000, 0.000000, 0.986248 -1277, -0.171470, -0.000000, 0.000000, 0.985189 -1278, -0.177659, -0.000000, 0.000000, 0.984092 -1279, -0.183840, -0.000000, 0.000000, 0.982956 -1280, -0.190015, -0.000000, 0.000000, 0.981781 -1281, -0.196182, -0.000000, 0.000000, 0.980568 -1282, -0.202341, -0.000000, 0.000000, 0.979315 -1283, -0.208492, -0.000000, 0.000000, 0.978024 -1284, -0.214635, -0.000000, 0.000000, 0.976694 -1285, -0.220770, -0.000000, 0.000000, 0.975326 -1286, -0.226896, -0.000000, 0.000000, 0.973919 -1287, -0.233012, -0.000000, 0.000000, 0.972474 -1288, -0.239120, -0.000000, 0.000000, 0.970990 -1289, -0.245218, -0.000000, 0.000000, 0.969468 -1290, -0.251307, -0.000000, 0.000000, 0.967907 -1291, -0.257385, -0.000000, 0.000000, 0.966309 -1292, -0.263454, -0.000000, 0.000000, 0.964672 -1293, -0.269512, -0.000000, 0.000000, 0.962997 -1294, -0.275559, -0.000000, 0.000000, 0.961284 -1295, -0.281595, -0.000000, 0.000000, 0.959533 -1296, -0.287621, -0.000000, 0.000000, 0.957744 -1297, -0.293635, -0.000000, 0.000000, 0.955918 -1298, -0.299637, -0.000000, 0.000000, 0.954053 -1299, -0.305628, -0.000000, 0.000000, 0.952151 -1300, -0.311606, -0.000000, 0.000000, 0.950211 -1301, -0.317572, -0.000000, 0.000000, 0.948234 -1302, -0.323526, -0.000000, 0.000000, 0.946219 -1303, -0.329467, -0.000000, 0.000000, 0.944167 -1304, -0.335395, -0.000000, 0.000000, 0.942078 -1305, -0.341309, -0.000000, 0.000000, 0.939951 -1306, -0.347210, -0.000000, 0.000000, 0.937787 -1307, -0.353098, -0.000000, 0.000000, 0.935587 -1308, -0.358971, -0.000000, 0.000000, 0.933349 -1309, -0.364830, -0.000000, 0.000000, 0.931074 -1310, -0.370675, -0.000000, 0.000000, 0.928763 -1311, -0.376505, -0.000000, 0.000000, 0.926415 -1312, -0.382320, -0.000000, 0.000000, 0.924030 -1313, -0.388121, -0.000000, 0.000000, 0.921609 -1314, -0.393906, -0.000000, 0.000000, 0.919151 -1315, -0.399675, -0.000000, 0.000000, 0.916657 -1316, -0.405428, -0.000000, 0.000000, 0.914127 -1317, -0.411166, -0.000000, 0.000000, 0.911561 -1318, -0.416887, -0.000000, 0.000000, 0.908958 -1319, -0.422592, -0.000000, 0.000000, 0.906320 -1320, -0.428280, -0.000000, 0.000000, 0.903646 -1321, -0.433951, -0.000000, 0.000000, 0.900936 -1322, -0.439605, -0.000000, 0.000000, 0.898191 -1323, -0.445242, -0.000000, 0.000000, 0.895410 -1324, -0.450861, -0.000000, 0.000000, 0.892594 -1325, -0.456462, -0.000000, 0.000000, 0.889743 -1326, -0.462045, -0.000000, 0.000000, 0.886856 -1327, -0.467610, -0.000000, 0.000000, 0.883935 -1328, -0.473157, -0.000000, 0.000000, 0.880978 -1329, -0.478685, -0.000000, 0.000000, 0.877987 -1330, -0.484194, -0.000000, 0.000000, 0.874961 -1331, -0.489683, -0.000000, 0.000000, 0.871900 -1332, -0.495154, -0.000000, 0.000000, 0.868805 -1333, -0.500605, -0.000000, 0.000000, 0.865676 -1334, -0.506036, -0.000000, 0.000000, 0.862512 -1335, -0.511447, -0.000000, 0.000000, 0.859315 -1336, -0.516838, -0.000000, 0.000000, 0.856083 -1337, -0.522208, -0.000000, 0.000000, 0.852818 -1338, -0.527558, -0.000000, 0.000000, 0.849519 -1339, -0.532887, -0.000000, 0.000000, 0.846186 -1340, -0.538195, -0.000000, 0.000000, 0.842820 -1341, -0.543482, -0.000000, 0.000000, 0.839421 -1342, -0.548747, -0.000000, 0.000000, 0.835988 -1343, -0.553991, -0.000000, 0.000000, 0.832523 -1344, -0.559212, -0.000000, 0.000000, 0.829025 -1345, -0.564412, -0.000000, 0.000000, 0.825493 -1346, -0.569589, -0.000000, 0.000000, 0.821930 -1347, -0.574744, -0.000000, 0.000000, 0.818333 -1348, -0.579876, -0.000000, 0.000000, 0.814705 -1349, -0.584985, -0.000000, 0.000000, 0.811044 -1350, -0.590071, -0.000000, 0.000000, 0.807351 -1351, -0.595134, -0.000000, 0.000000, 0.803627 -1352, -0.600173, -0.000000, 0.000000, 0.799870 -1353, -0.605189, -0.000000, 0.000000, 0.796082 -1354, -0.610180, -0.000000, 0.000000, 0.792263 -1355, -0.615148, -0.000000, 0.000000, 0.788412 -1356, -0.620091, -0.000000, 0.000000, 0.784530 -1357, -0.625010, -0.000000, 0.000000, 0.780617 -1358, -0.629904, -0.000000, 0.000000, 0.776673 -1359, -0.634773, -0.000000, 0.000000, 0.772699 -1360, -0.639617, -0.000000, 0.000000, 0.768694 -1361, -0.644436, -0.000000, 0.000000, 0.764659 -1362, -0.649229, -0.000000, 0.000000, 0.760593 -1363, -0.653997, -0.000000, 0.000000, 0.756497 -1364, -0.658739, -0.000000, 0.000000, 0.752372 -1365, -0.663454, -0.000000, 0.000000, 0.748217 -1366, -0.668144, -0.000000, 0.000000, 0.744032 -1367, -0.672807, -0.000000, 0.000000, 0.739818 -1368, -0.677444, -0.000000, 0.000000, 0.735575 -1369, -0.682054, -0.000000, 0.000000, 0.731302 -1370, -0.686637, -0.000000, 0.000000, 0.727001 -1371, -0.691192, -0.000000, 0.000000, 0.722671 -1372, -0.695721, -0.000000, 0.000000, 0.718312 -1373, -0.700222, -0.000000, 0.000000, 0.713925 -1374, -0.704695, -0.000000, 0.000000, 0.709510 -1375, -0.709141, -0.000000, 0.000000, 0.705067 -1376, -0.713558, -0.000000, 0.000000, 0.700596 -1377, -0.717948, -0.000000, 0.000000, 0.696097 -1378, -0.722309, -0.000000, 0.000000, 0.691571 -1379, -0.726641, -0.000000, 0.000000, 0.687017 -1380, -0.730945, -0.000000, 0.000000, 0.682437 -1381, -0.735220, -0.000000, 0.000000, 0.677829 -1382, -0.739465, -0.000000, 0.000000, 0.673195 -1383, -0.743682, -0.000000, 0.000000, 0.668534 -1384, -0.747869, -0.000000, 0.000000, 0.663846 -1385, -0.752027, -0.000000, 0.000000, 0.659132 -1386, -0.756155, -0.000000, 0.000000, 0.654393 -1387, -0.760253, -0.000000, 0.000000, 0.649627 -1388, -0.764321, -0.000000, 0.000000, 0.644836 -1389, -0.768359, -0.000000, 0.000000, 0.640019 -1390, -0.772366, -0.000000, 0.000000, 0.635177 -1391, -0.776343, -0.000000, 0.000000, 0.630310 -1392, -0.780290, -0.000000, 0.000000, 0.625418 -1393, -0.784205, -0.000000, 0.000000, 0.620502 -1394, -0.788090, -0.000000, 0.000000, 0.615561 -1395, -0.791943, -0.000000, 0.000000, 0.610595 -1396, -0.795765, -0.000000, 0.000000, 0.605605 -1397, -0.799556, -0.000000, 0.000000, 0.600592 -1398, -0.803315, -0.000000, 0.000000, 0.595555 -1399, -0.807042, -0.000000, 0.000000, 0.590494 -1400, -0.810738, -0.000000, 0.000000, 0.585410 -1401, -0.814401, -0.000000, 0.000000, 0.580303 -1402, -0.818032, -0.000000, 0.000000, 0.575172 -1403, -0.821631, -0.000000, 0.000000, 0.570019 -1404, -0.825198, -0.000000, 0.000000, 0.564844 -1405, -0.828732, -0.000000, 0.000000, 0.559646 -1406, -0.832233, -0.000000, 0.000000, 0.554427 -1407, -0.835701, -0.000000, 0.000000, 0.549185 -1408, -0.839136, -0.000000, 0.000000, 0.543921 -1409, -0.842538, -0.000000, 0.000000, 0.538636 -1410, -0.845907, -0.000000, 0.000000, 0.533330 -1411, -0.849243, -0.000000, 0.000000, 0.528003 -1412, -0.852544, -0.000000, 0.000000, 0.522655 -1413, -0.855813, -0.000000, 0.000000, 0.517286 -1414, -0.859047, -0.000000, 0.000000, 0.511897 -1415, -0.862247, -0.000000, 0.000000, 0.506487 -1416, -0.865414, -0.000000, 0.000000, 0.501058 -1417, -0.868546, -0.000000, 0.000000, 0.495609 -1418, -0.871644, -0.000000, 0.000000, 0.490140 -1419, -0.874707, -0.000000, 0.000000, 0.484652 -1420, -0.877736, -0.000000, 0.000000, 0.479145 -1421, -0.880730, -0.000000, 0.000000, 0.473618 -1422, -0.883690, -0.000000, 0.000000, 0.468073 -1423, -0.886614, -0.000000, 0.000000, 0.462510 -1424, -0.889504, -0.000000, 0.000000, 0.456928 -1425, -0.892358, -0.000000, 0.000000, 0.451328 -1426, -0.895177, -0.000000, 0.000000, 0.445711 -1427, -0.897961, -0.000000, 0.000000, 0.440076 -1428, -0.900709, -0.000000, 0.000000, 0.434423 -1429, -0.903422, -0.000000, 0.000000, 0.428753 -1430, -0.906099, -0.000000, 0.000000, 0.423067 -1431, -0.908740, -0.000000, 0.000000, 0.417363 -1432, -0.911345, -0.000000, 0.000000, 0.411643 -1433, -0.913914, -0.000000, 0.000000, 0.405907 -1434, -0.916448, -0.000000, 0.000000, 0.400155 -1435, -0.918944, -0.000000, 0.000000, 0.394387 -1436, -0.921405, -0.000000, 0.000000, 0.388603 -1437, -0.923829, -0.000000, 0.000000, 0.382804 -1438, -0.926217, -0.000000, 0.000000, 0.376990 -1439, -0.928568, -0.000000, 0.000000, 0.371161 -1440, -0.930883, -0.000000, 0.000000, 0.365318 -1441, -0.933161, -0.000000, 0.000000, 0.359460 -1442, -0.935401, -0.000000, 0.000000, 0.353588 -1443, -0.937605, -0.000000, 0.000000, 0.347701 -1444, -0.939772, -0.000000, 0.000000, 0.341801 -1445, -0.941902, -0.000000, 0.000000, 0.335888 -1446, -0.943994, -0.000000, 0.000000, 0.329961 -1447, -0.946050, -0.000000, 0.000000, 0.324021 -1448, -0.948068, -0.000000, 0.000000, 0.318069 -1449, -0.950048, -0.000000, 0.000000, 0.312104 -1450, -0.951991, -0.000000, 0.000000, 0.306126 -1451, -0.953896, -0.000000, 0.000000, 0.300137 -1452, -0.955764, -0.000000, 0.000000, 0.294135 -1453, -0.957594, -0.000000, 0.000000, 0.288122 -1454, -0.959386, -0.000000, 0.000000, 0.282098 -1455, -0.961140, -0.000000, 0.000000, 0.276062 -1456, -0.962856, -0.000000, 0.000000, 0.270016 -1457, -0.964534, -0.000000, 0.000000, 0.263959 -1458, -0.966174, -0.000000, 0.000000, 0.257891 -1459, -0.967776, -0.000000, 0.000000, 0.251814 -1460, -0.969339, -0.000000, 0.000000, 0.245726 -1461, -0.970865, -0.000000, 0.000000, 0.239629 -1462, -0.972352, -0.000000, 0.000000, 0.233522 -1463, -0.973800, -0.000000, 0.000000, 0.227406 -1464, -0.975210, -0.000000, 0.000000, 0.221281 -1465, -0.976582, -0.000000, 0.000000, 0.215147 -1466, -0.977915, -0.000000, 0.000000, 0.209005 -1467, -0.979209, -0.000000, 0.000000, 0.202854 -1468, -0.980465, -0.000000, 0.000000, 0.196695 -1469, -0.981682, -0.000000, 0.000000, 0.190529 -1470, -0.982860, -0.000000, 0.000000, 0.184355 -1471, -0.983999, -0.000000, 0.000000, 0.178174 -1472, -0.985099, -0.000000, 0.000000, 0.171986 -1473, -0.986161, -0.000000, 0.000000, 0.165791 -1474, -0.987183, -0.000000, 0.000000, 0.159589 -1475, -0.988167, -0.000000, 0.000000, 0.153382 -1476, -0.989112, -0.000000, 0.000000, 0.147168 -1477, -0.990017, -0.000000, 0.000000, 0.140948 -1478, -0.990883, -0.000000, 0.000000, 0.134723 -1479, -0.991711, -0.000000, 0.000000, 0.128492 -1480, -0.992499, -0.000000, 0.000000, 0.122256 -1481, -0.993247, -0.000000, 0.000000, 0.116016 -1482, -0.993957, -0.000000, 0.000000, 0.109771 -1483, -0.994627, -0.000000, 0.000000, 0.103521 -1484, -0.995258, -0.000000, 0.000000, 0.097268 -1485, -0.995850, -0.000000, 0.000000, 0.091010 -1486, -0.996402, -0.000000, 0.000000, 0.084750 -1487, -0.996915, -0.000000, 0.000000, 0.078485 -1488, -0.997389, -0.000000, 0.000000, 0.072218 -1489, -0.997823, -0.000000, 0.000000, 0.065948 -1490, -0.998218, -0.000000, 0.000000, 0.059675 -1491, -0.998573, -0.000000, 0.000000, 0.053399 -1492, -0.998889, -0.000000, 0.000000, 0.047122 -1493, -0.999166, -0.000000, 0.000000, 0.040843 -1494, -0.999403, -0.000000, 0.000000, 0.034562 -1495, -0.999600, -0.000000, 0.000000, 0.028280 -1496, -0.999758, -0.000000, 0.000000, 0.021997 -1497, -0.999877, -0.000000, 0.000000, 0.015713 -1498, -0.999956, -0.000000, 0.000000, 0.009428 -1499, -0.999995, -0.000000, 0.000000, 0.003143 -1500, -0.999995, 0.000000, -0.000000, -0.003143 -1501, -0.999956, 0.000000, -0.000000, -0.009428 -1502, -0.999877, 0.000000, -0.000000, -0.015713 -1503, -0.999758, 0.000000, -0.000000, -0.021997 -1504, -0.999600, 0.000000, -0.000000, -0.028280 -1505, -0.999403, 0.000000, -0.000000, -0.034562 -1506, -0.999166, 0.000000, -0.000000, -0.040843 -1507, -0.998889, 0.000000, -0.000000, -0.047122 -1508, -0.998573, 0.000000, -0.000000, -0.053399 -1509, -0.998218, 0.000000, -0.000000, -0.059675 -1510, -0.997823, 0.000000, -0.000000, -0.065948 -1511, -0.997389, 0.000000, -0.000000, -0.072218 -1512, -0.996915, 0.000000, -0.000000, -0.078485 -1513, -0.996402, 0.000000, -0.000000, -0.084750 -1514, -0.995850, 0.000000, -0.000000, -0.091010 -1515, -0.995258, 0.000000, -0.000000, -0.097268 -1516, -0.994627, 0.000000, -0.000000, -0.103521 -1517, -0.993957, 0.000000, -0.000000, -0.109771 -1518, -0.993247, 0.000000, -0.000000, -0.116016 -1519, -0.992499, 0.000000, -0.000000, -0.122256 -1520, -0.991711, 0.000000, -0.000000, -0.128492 -1521, -0.990883, 0.000000, -0.000000, -0.134723 -1522, -0.990017, 0.000000, -0.000000, -0.140948 -1523, -0.989112, 0.000000, -0.000000, -0.147168 -1524, -0.988167, 0.000000, -0.000000, -0.153382 -1525, -0.987183, 0.000000, -0.000000, -0.159589 -1526, -0.986161, 0.000000, -0.000000, -0.165791 -1527, -0.985099, 0.000000, -0.000000, -0.171986 -1528, -0.983999, 0.000000, -0.000000, -0.178174 -1529, -0.982860, 0.000000, -0.000000, -0.184355 -1530, -0.981682, 0.000000, -0.000000, -0.190529 -1531, -0.980465, 0.000000, -0.000000, -0.196695 -1532, -0.979209, 0.000000, -0.000000, -0.202854 -1533, -0.977915, 0.000000, -0.000000, -0.209005 -1534, -0.976582, 0.000000, -0.000000, -0.215147 -1535, -0.975210, 0.000000, -0.000000, -0.221281 -1536, -0.973800, 0.000000, -0.000000, -0.227406 -1537, -0.972352, 0.000000, -0.000000, -0.233522 -1538, -0.970865, 0.000000, -0.000000, -0.239629 -1539, -0.969339, 0.000000, -0.000000, -0.245726 -1540, -0.967776, 0.000000, -0.000000, -0.251814 -1541, -0.966174, 0.000000, -0.000000, -0.257891 -1542, -0.964534, 0.000000, -0.000000, -0.263959 -1543, -0.962856, 0.000000, -0.000000, -0.270016 -1544, -0.961140, 0.000000, -0.000000, -0.276062 -1545, -0.959386, 0.000000, -0.000000, -0.282098 -1546, -0.957594, 0.000000, -0.000000, -0.288122 -1547, -0.955764, 0.000000, -0.000000, -0.294135 -1548, -0.953896, 0.000000, -0.000000, -0.300137 -1549, -0.951991, 0.000000, -0.000000, -0.306126 -1550, -0.950048, 0.000000, -0.000000, -0.312104 -1551, -0.948068, 0.000000, -0.000000, -0.318069 -1552, -0.946050, 0.000000, -0.000000, -0.324021 -1553, -0.943994, 0.000000, -0.000000, -0.329961 -1554, -0.941902, 0.000000, -0.000000, -0.335888 -1555, -0.939772, 0.000000, -0.000000, -0.341801 -1556, -0.937605, 0.000000, -0.000000, -0.347701 -1557, -0.935401, 0.000000, -0.000000, -0.353588 -1558, -0.933161, 0.000000, -0.000000, -0.359460 -1559, -0.930883, 0.000000, -0.000000, -0.365318 -1560, -0.928568, 0.000000, -0.000000, -0.371161 -1561, -0.926217, 0.000000, -0.000000, -0.376990 -1562, -0.923829, 0.000000, -0.000000, -0.382804 -1563, -0.921405, 0.000000, -0.000000, -0.388603 -1564, -0.918944, 0.000000, -0.000000, -0.394387 -1565, -0.916448, 0.000000, -0.000000, -0.400155 -1566, -0.913914, 0.000000, -0.000000, -0.405907 -1567, -0.911345, 0.000000, -0.000000, -0.411643 -1568, -0.908740, 0.000000, -0.000000, -0.417363 -1569, -0.906099, 0.000000, -0.000000, -0.423067 -1570, -0.903422, 0.000000, -0.000000, -0.428753 -1571, -0.900709, 0.000000, -0.000000, -0.434423 -1572, -0.897961, 0.000000, -0.000000, -0.440076 -1573, -0.895177, 0.000000, -0.000000, -0.445711 -1574, -0.892358, 0.000000, -0.000000, -0.451328 -1575, -0.889504, 0.000000, -0.000000, -0.456928 -1576, -0.886614, 0.000000, -0.000000, -0.462510 -1577, -0.883690, 0.000000, -0.000000, -0.468073 -1578, -0.880730, 0.000000, -0.000000, -0.473618 -1579, -0.877736, 0.000000, -0.000000, -0.479145 -1580, -0.874707, 0.000000, -0.000000, -0.484652 -1581, -0.871644, 0.000000, -0.000000, -0.490140 -1582, -0.868546, 0.000000, -0.000000, -0.495609 -1583, -0.865414, 0.000000, -0.000000, -0.501058 -1584, -0.862247, 0.000000, -0.000000, -0.506487 -1585, -0.859047, 0.000000, -0.000000, -0.511897 -1586, -0.855813, 0.000000, -0.000000, -0.517286 -1587, -0.852544, 0.000000, -0.000000, -0.522655 -1588, -0.849243, 0.000000, -0.000000, -0.528003 -1589, -0.845907, 0.000000, -0.000000, -0.533330 -1590, -0.842538, 0.000000, -0.000000, -0.538636 -1591, -0.839136, 0.000000, -0.000000, -0.543921 -1592, -0.835701, 0.000000, -0.000000, -0.549185 -1593, -0.832233, 0.000000, -0.000000, -0.554427 -1594, -0.828732, 0.000000, -0.000000, -0.559646 -1595, -0.825198, 0.000000, -0.000000, -0.564844 -1596, -0.821631, 0.000000, -0.000000, -0.570019 -1597, -0.818032, 0.000000, -0.000000, -0.575172 -1598, -0.814401, 0.000000, -0.000000, -0.580303 -1599, -0.810738, 0.000000, -0.000000, -0.585410 -1600, -0.807042, 0.000000, -0.000000, -0.590494 -1601, -0.803315, 0.000000, -0.000000, -0.595555 -1602, -0.799556, 0.000000, -0.000000, -0.600592 -1603, -0.795765, 0.000000, -0.000000, -0.605605 -1604, -0.791943, 0.000000, -0.000000, -0.610595 -1605, -0.788090, 0.000000, -0.000000, -0.615561 -1606, -0.784205, 0.000000, -0.000000, -0.620502 -1607, -0.780290, 0.000000, -0.000000, -0.625418 -1608, -0.776343, 0.000000, -0.000000, -0.630310 -1609, -0.772366, 0.000000, -0.000000, -0.635177 -1610, -0.768359, 0.000000, -0.000000, -0.640019 -1611, -0.764321, 0.000000, -0.000000, -0.644836 -1612, -0.760253, 0.000000, -0.000000, -0.649627 -1613, -0.756155, 0.000000, -0.000000, -0.654393 -1614, -0.752027, 0.000000, -0.000000, -0.659132 -1615, -0.747869, 0.000000, -0.000000, -0.663846 -1616, -0.743682, 0.000000, -0.000000, -0.668534 -1617, -0.739465, 0.000000, -0.000000, -0.673195 -1618, -0.735220, 0.000000, -0.000000, -0.677829 -1619, -0.730945, 0.000000, -0.000000, -0.682437 -1620, -0.726641, 0.000000, -0.000000, -0.687017 -1621, -0.722309, 0.000000, -0.000000, -0.691571 -1622, -0.717948, 0.000000, -0.000000, -0.696097 -1623, -0.713558, 0.000000, -0.000000, -0.700596 -1624, -0.709141, 0.000000, -0.000000, -0.705067 -1625, -0.704695, 0.000000, -0.000000, -0.709510 -1626, -0.700222, 0.000000, -0.000000, -0.713925 -1627, -0.695721, 0.000000, -0.000000, -0.718312 -1628, -0.691192, 0.000000, -0.000000, -0.722671 -1629, -0.686637, 0.000000, -0.000000, -0.727001 -1630, -0.682054, 0.000000, -0.000000, -0.731302 -1631, -0.677444, 0.000000, -0.000000, -0.735575 -1632, -0.672807, 0.000000, -0.000000, -0.739818 -1633, -0.668144, 0.000000, -0.000000, -0.744032 -1634, -0.663454, 0.000000, -0.000000, -0.748217 -1635, -0.658739, 0.000000, -0.000000, -0.752372 -1636, -0.653997, 0.000000, -0.000000, -0.756497 -1637, -0.649229, 0.000000, -0.000000, -0.760593 -1638, -0.644436, 0.000000, -0.000000, -0.764659 -1639, -0.639617, 0.000000, -0.000000, -0.768694 -1640, -0.634773, 0.000000, -0.000000, -0.772699 -1641, -0.629904, 0.000000, -0.000000, -0.776673 -1642, -0.625010, 0.000000, -0.000000, -0.780617 -1643, -0.620091, 0.000000, -0.000000, -0.784530 -1644, -0.615148, 0.000000, -0.000000, -0.788412 -1645, -0.610180, 0.000000, -0.000000, -0.792263 -1646, -0.605189, 0.000000, -0.000000, -0.796082 -1647, -0.600173, 0.000000, -0.000000, -0.799870 -1648, -0.595134, 0.000000, -0.000000, -0.803627 -1649, -0.590071, 0.000000, -0.000000, -0.807351 -1650, -0.584985, 0.000000, -0.000000, -0.811044 -1651, -0.579876, 0.000000, -0.000000, -0.814705 -1652, -0.574744, 0.000000, -0.000000, -0.818333 -1653, -0.569589, 0.000000, -0.000000, -0.821930 -1654, -0.564412, 0.000000, -0.000000, -0.825493 -1655, -0.559212, 0.000000, -0.000000, -0.829025 -1656, -0.553991, 0.000000, -0.000000, -0.832523 -1657, -0.548747, 0.000000, -0.000000, -0.835988 -1658, -0.543482, 0.000000, -0.000000, -0.839421 -1659, -0.538195, 0.000000, -0.000000, -0.842820 -1660, -0.532887, 0.000000, -0.000000, -0.846186 -1661, -0.527558, 0.000000, -0.000000, -0.849519 -1662, -0.522208, 0.000000, -0.000000, -0.852818 -1663, -0.516838, 0.000000, -0.000000, -0.856083 -1664, -0.511447, 0.000000, -0.000000, -0.859315 -1665, -0.506036, 0.000000, -0.000000, -0.862512 -1666, -0.500605, 0.000000, -0.000000, -0.865676 -1667, -0.495154, 0.000000, -0.000000, -0.868805 -1668, -0.489683, 0.000000, -0.000000, -0.871900 -1669, -0.484194, 0.000000, -0.000000, -0.874961 -1670, -0.478685, 0.000000, -0.000000, -0.877987 -1671, -0.473157, 0.000000, -0.000000, -0.880978 -1672, -0.467610, 0.000000, -0.000000, -0.883935 -1673, -0.462045, 0.000000, -0.000000, -0.886856 -1674, -0.456462, 0.000000, -0.000000, -0.889743 -1675, -0.450861, 0.000000, -0.000000, -0.892594 -1676, -0.445242, 0.000000, -0.000000, -0.895410 -1677, -0.439605, 0.000000, -0.000000, -0.898191 -1678, -0.433951, 0.000000, -0.000000, -0.900936 -1679, -0.428280, 0.000000, -0.000000, -0.903646 -1680, -0.422592, 0.000000, -0.000000, -0.906320 -1681, -0.416887, 0.000000, -0.000000, -0.908958 -1682, -0.411166, 0.000000, -0.000000, -0.911561 -1683, -0.405428, 0.000000, -0.000000, -0.914127 -1684, -0.399675, 0.000000, -0.000000, -0.916657 -1685, -0.393906, 0.000000, -0.000000, -0.919151 -1686, -0.388121, 0.000000, -0.000000, -0.921609 -1687, -0.382320, 0.000000, -0.000000, -0.924030 -1688, -0.376505, 0.000000, -0.000000, -0.926415 -1689, -0.370675, 0.000000, -0.000000, -0.928763 -1690, -0.364830, 0.000000, -0.000000, -0.931074 -1691, -0.358971, 0.000000, -0.000000, -0.933349 -1692, -0.353098, 0.000000, -0.000000, -0.935587 -1693, -0.347210, 0.000000, -0.000000, -0.937787 -1694, -0.341309, 0.000000, -0.000000, -0.939951 -1695, -0.335395, 0.000000, -0.000000, -0.942078 -1696, -0.329467, 0.000000, -0.000000, -0.944167 -1697, -0.323526, 0.000000, -0.000000, -0.946219 -1698, -0.317572, 0.000000, -0.000000, -0.948234 -1699, -0.311606, 0.000000, -0.000000, -0.950211 -1700, -0.305628, 0.000000, -0.000000, -0.952151 -1701, -0.299637, 0.000000, -0.000000, -0.954053 -1702, -0.293635, 0.000000, -0.000000, -0.955918 -1703, -0.287621, 0.000000, -0.000000, -0.957744 -1704, -0.281595, 0.000000, -0.000000, -0.959533 -1705, -0.275559, 0.000000, -0.000000, -0.961284 -1706, -0.269512, 0.000000, -0.000000, -0.962997 -1707, -0.263454, 0.000000, -0.000000, -0.964672 -1708, -0.257385, 0.000000, -0.000000, -0.966309 -1709, -0.251307, 0.000000, -0.000000, -0.967907 -1710, -0.245218, 0.000000, -0.000000, -0.969468 -1711, -0.239120, 0.000000, -0.000000, -0.970990 -1712, -0.233012, 0.000000, -0.000000, -0.972474 -1713, -0.226896, 0.000000, -0.000000, -0.973919 -1714, -0.220770, 0.000000, -0.000000, -0.975326 -1715, -0.214635, 0.000000, -0.000000, -0.976694 -1716, -0.208492, 0.000000, -0.000000, -0.978024 -1717, -0.202341, 0.000000, -0.000000, -0.979315 -1718, -0.196182, 0.000000, -0.000000, -0.980568 -1719, -0.190015, 0.000000, -0.000000, -0.981781 -1720, -0.183840, 0.000000, -0.000000, -0.982956 -1721, -0.177659, 0.000000, -0.000000, -0.984092 -1722, -0.171470, 0.000000, -0.000000, -0.985189 -1723, -0.165274, 0.000000, -0.000000, -0.986248 -1724, -0.159072, 0.000000, -0.000000, -0.987267 -1725, -0.152864, 0.000000, -0.000000, -0.988247 -1726, -0.146650, 0.000000, -0.000000, -0.989189 -1727, -0.140429, 0.000000, -0.000000, -0.990091 -1728, -0.134204, 0.000000, -0.000000, -0.990954 -1729, -0.127973, 0.000000, -0.000000, -0.991778 -1730, -0.121736, 0.000000, -0.000000, -0.992562 -1731, -0.115496, 0.000000, -0.000000, -0.993308 -1732, -0.109250, 0.000000, -0.000000, -0.994014 -1733, -0.103000, 0.000000, -0.000000, -0.994681 -1734, -0.096747, 0.000000, -0.000000, -0.995309 -1735, -0.090489, 0.000000, -0.000000, -0.995897 -1736, -0.084228, 0.000000, -0.000000, -0.996447 -1737, -0.077963, 0.000000, -0.000000, -0.996956 -1738, -0.071695, 0.000000, -0.000000, -0.997427 -1739, -0.065425, 0.000000, -0.000000, -0.997857 -1740, -0.059152, 0.000000, -0.000000, -0.998249 -1741, -0.052876, 0.000000, -0.000000, -0.998601 -1742, -0.046599, 0.000000, -0.000000, -0.998914 -1743, -0.040320, 0.000000, -0.000000, -0.999187 -1744, -0.034039, 0.000000, -0.000000, -0.999421 -1745, -0.027756, 0.000000, -0.000000, -0.999615 -1746, -0.021473, 0.000000, -0.000000, -0.999769 -1747, -0.015189, 0.000000, -0.000000, -0.999885 -1748, -0.008904, 0.000000, -0.000000, -0.999960 -1749, -0.002619, 0.000000, -0.000000, -0.999997 -1750, 0.003666, 0.000000, 0.000000, -0.999993 -1751, 0.009952, 0.000000, 0.000000, -0.999950 -1752, 0.016236, 0.000000, 0.000000, -0.999868 -1753, 0.022520, 0.000000, 0.000000, -0.999746 -1754, 0.028804, 0.000000, 0.000000, -0.999585 -1755, 0.035086, 0.000000, 0.000000, -0.999384 -1756, 0.041366, 0.000000, 0.000000, -0.999144 -1757, 0.047645, 0.000000, 0.000000, -0.998864 -1758, 0.053922, 0.000000, 0.000000, -0.998545 -1759, 0.060198, 0.000000, 0.000000, -0.998186 -1760, 0.066470, 0.000000, 0.000000, -0.997788 -1761, 0.072740, 0.000000, 0.000000, -0.997351 -1762, 0.079007, 0.000000, 0.000000, -0.996874 -1763, 0.085271, 0.000000, 0.000000, -0.996358 -1764, 0.091532, 0.000000, 0.000000, -0.995802 -1765, 0.097789, 0.000000, 0.000000, -0.995207 -1766, 0.104042, 0.000000, 0.000000, -0.994573 -1767, 0.110291, 0.000000, 0.000000, -0.993899 -1768, 0.116536, 0.000000, 0.000000, -0.993186 -1769, 0.122776, 0.000000, 0.000000, -0.992434 -1770, 0.129011, 0.000000, 0.000000, -0.991643 -1771, 0.135242, 0.000000, 0.000000, -0.990813 -1772, 0.141466, 0.000000, 0.000000, -0.989943 -1773, 0.147686, 0.000000, 0.000000, -0.989034 -1774, 0.153899, 0.000000, 0.000000, -0.988087 -1775, 0.160106, 0.000000, 0.000000, -0.987100 -1776, 0.166307, 0.000000, 0.000000, -0.986074 -1777, 0.172502, 0.000000, 0.000000, -0.985009 -1778, 0.178689, 0.000000, 0.000000, -0.983906 -1779, 0.184870, 0.000000, 0.000000, -0.982763 -1780, 0.191043, 0.000000, 0.000000, -0.981582 -1781, 0.197209, 0.000000, 0.000000, -0.980361 -1782, 0.203367, 0.000000, 0.000000, -0.979103 -1783, 0.209517, 0.000000, 0.000000, -0.977805 -1784, 0.215658, 0.000000, 0.000000, -0.976469 -1785, 0.221791, 0.000000, 0.000000, -0.975094 -1786, 0.227916, 0.000000, 0.000000, -0.973681 -1787, 0.234031, 0.000000, 0.000000, -0.972229 -1788, 0.240137, 0.000000, 0.000000, -0.970739 -1789, 0.246234, 0.000000, 0.000000, -0.969210 -1790, 0.252321, 0.000000, 0.000000, -0.967644 -1791, 0.258397, 0.000000, 0.000000, -0.966039 -1792, 0.264464, 0.000000, 0.000000, -0.964396 -1793, 0.270520, 0.000000, 0.000000, -0.962714 -1794, 0.276566, 0.000000, 0.000000, -0.960995 -1795, 0.282600, 0.000000, 0.000000, -0.959238 -1796, 0.288624, 0.000000, 0.000000, -0.957443 -1797, 0.294636, 0.000000, 0.000000, -0.955610 -1798, 0.300636, 0.000000, 0.000000, -0.953739 -1799, 0.306625, 0.000000, 0.000000, -0.951830 -1800, 0.312601, 0.000000, 0.000000, -0.949884 -1801, 0.318565, 0.000000, 0.000000, -0.947901 -1802, 0.324517, 0.000000, 0.000000, -0.945880 -1803, 0.330456, 0.000000, 0.000000, -0.943822 -1804, 0.336381, 0.000000, 0.000000, -0.941726 -1805, 0.342294, 0.000000, 0.000000, -0.939593 -1806, 0.348192, 0.000000, 0.000000, -0.937423 -1807, 0.354077, 0.000000, 0.000000, -0.935216 -1808, 0.359948, 0.000000, 0.000000, -0.932972 -1809, 0.365805, 0.000000, 0.000000, -0.930691 -1810, 0.371648, 0.000000, 0.000000, -0.928374 -1811, 0.377475, 0.000000, 0.000000, -0.926020 -1812, 0.383288, 0.000000, 0.000000, -0.923629 -1813, 0.389086, 0.000000, 0.000000, -0.921201 -1814, 0.394868, 0.000000, 0.000000, -0.918738 -1815, 0.400635, 0.000000, 0.000000, -0.916238 -1816, 0.406386, 0.000000, 0.000000, -0.913702 -1817, 0.412121, 0.000000, 0.000000, -0.911129 -1818, 0.417839, 0.000000, 0.000000, -0.908521 -1819, 0.423541, 0.000000, 0.000000, -0.905877 -1820, 0.429226, 0.000000, 0.000000, -0.903197 -1821, 0.434895, 0.000000, 0.000000, -0.900481 -1822, 0.440546, 0.000000, 0.000000, -0.897730 -1823, 0.446180, 0.000000, 0.000000, -0.894943 -1824, 0.451796, 0.000000, 0.000000, -0.892121 -1825, 0.457394, 0.000000, 0.000000, -0.889264 -1826, 0.462974, 0.000000, 0.000000, -0.886372 -1827, 0.468536, 0.000000, 0.000000, -0.883444 -1828, 0.474079, 0.000000, 0.000000, -0.880482 -1829, 0.479604, 0.000000, 0.000000, -0.877485 -1830, 0.485110, 0.000000, 0.000000, -0.874453 -1831, 0.490596, 0.000000, 0.000000, -0.871387 -1832, 0.496064, 0.000000, 0.000000, -0.868286 -1833, 0.501511, 0.000000, 0.000000, -0.865151 -1834, 0.506939, 0.000000, 0.000000, -0.861982 -1835, 0.512347, 0.000000, 0.000000, -0.858779 -1836, 0.517734, 0.000000, 0.000000, -0.855541 -1837, 0.523101, 0.000000, 0.000000, -0.852270 -1838, 0.528448, 0.000000, 0.000000, -0.848966 -1839, 0.533773, 0.000000, 0.000000, -0.845628 -1840, 0.539078, 0.000000, 0.000000, -0.842256 -1841, 0.544361, 0.000000, 0.000000, -0.838851 -1842, 0.549622, 0.000000, 0.000000, -0.835413 -1843, 0.554862, 0.000000, 0.000000, -0.831942 -1844, 0.560080, 0.000000, 0.000000, -0.828438 -1845, 0.565276, 0.000000, 0.000000, -0.824902 -1846, 0.570450, 0.000000, 0.000000, -0.821333 -1847, 0.575601, 0.000000, 0.000000, -0.817731 -1848, 0.580729, 0.000000, 0.000000, -0.814097 -1849, 0.585834, 0.000000, 0.000000, -0.810431 -1850, 0.590917, 0.000000, 0.000000, -0.806733 -1851, 0.595975, 0.000000, 0.000000, -0.803003 -1852, 0.601011, 0.000000, 0.000000, -0.799241 -1853, 0.606022, 0.000000, 0.000000, -0.795448 -1854, 0.611010, 0.000000, 0.000000, -0.791623 -1855, 0.615973, 0.000000, 0.000000, -0.787767 -1856, 0.620912, 0.000000, 0.000000, -0.783880 -1857, 0.625827, 0.000000, 0.000000, -0.779962 -1858, 0.630717, 0.000000, 0.000000, -0.776013 -1859, 0.635582, 0.000000, 0.000000, -0.772033 -1860, 0.640422, 0.000000, 0.000000, -0.768023 -1861, 0.645236, 0.000000, 0.000000, -0.763983 -1862, 0.650025, 0.000000, 0.000000, -0.759913 -1863, 0.654789, 0.000000, 0.000000, -0.755812 -1864, 0.659526, 0.000000, 0.000000, -0.751682 -1865, 0.664238, 0.000000, 0.000000, -0.747521 -1866, 0.668923, 0.000000, 0.000000, -0.743332 -1867, 0.673582, 0.000000, 0.000000, -0.739113 -1868, 0.678214, 0.000000, 0.000000, -0.734864 -1869, 0.682819, 0.000000, 0.000000, -0.730587 -1870, 0.687398, 0.000000, 0.000000, -0.726281 -1871, 0.691949, 0.000000, 0.000000, -0.721946 -1872, 0.696473, 0.000000, 0.000000, -0.717583 -1873, 0.700969, 0.000000, 0.000000, -0.713191 -1874, 0.705438, 0.000000, 0.000000, -0.708771 -1875, 0.709879, 0.000000, 0.000000, -0.704324 -1876, 0.714292, 0.000000, 0.000000, -0.699848 -1877, 0.718676, 0.000000, 0.000000, -0.695345 -1878, 0.723033, 0.000000, 0.000000, -0.690814 -1879, 0.727360, 0.000000, 0.000000, -0.686256 -1880, 0.731659, 0.000000, 0.000000, -0.681671 -1881, 0.735929, 0.000000, 0.000000, -0.677058 -1882, 0.740170, 0.000000, 0.000000, -0.672420 -1883, 0.744382, 0.000000, 0.000000, -0.667754 -1884, 0.748564, 0.000000, 0.000000, -0.663062 -1885, 0.752717, 0.000000, 0.000000, -0.658344 -1886, 0.756840, 0.000000, 0.000000, -0.653600 -1887, 0.760933, 0.000000, 0.000000, -0.648830 -1888, 0.764996, 0.000000, 0.000000, -0.644035 -1889, 0.769029, 0.000000, 0.000000, -0.639214 -1890, 0.773031, 0.000000, 0.000000, -0.634368 -1891, 0.777003, 0.000000, 0.000000, -0.629497 -1892, 0.780944, 0.000000, 0.000000, -0.624601 -1893, 0.784855, 0.000000, 0.000000, -0.619680 -1894, 0.788734, 0.000000, 0.000000, -0.614735 -1895, 0.792582, 0.000000, 0.000000, -0.609765 -1896, 0.796399, 0.000000, 0.000000, -0.604772 -1897, 0.800184, 0.000000, 0.000000, -0.599754 -1898, 0.803938, 0.000000, 0.000000, -0.594713 -1899, 0.807660, 0.000000, 0.000000, -0.589648 -1900, 0.811350, 0.000000, 0.000000, -0.584560 -1901, 0.815008, 0.000000, 0.000000, -0.579449 -1902, 0.818634, 0.000000, 0.000000, -0.574315 -1903, 0.822228, 0.000000, 0.000000, -0.569158 -1904, 0.825789, 0.000000, 0.000000, -0.563979 -1905, 0.829317, 0.000000, 0.000000, -0.558778 -1906, 0.832813, 0.000000, 0.000000, -0.553554 -1907, 0.836276, 0.000000, 0.000000, -0.548309 -1908, 0.839706, 0.000000, 0.000000, -0.543042 -1909, 0.843102, 0.000000, 0.000000, -0.537754 -1910, 0.846465, 0.000000, 0.000000, -0.532444 -1911, 0.849795, 0.000000, 0.000000, -0.527113 -1912, 0.853091, 0.000000, 0.000000, -0.521761 -1913, 0.856354, 0.000000, 0.000000, -0.516389 -1914, 0.859583, 0.000000, 0.000000, -0.510997 -1915, 0.862777, 0.000000, 0.000000, -0.505584 -1916, 0.865938, 0.000000, 0.000000, -0.500151 -1917, 0.869065, 0.000000, 0.000000, -0.494699 -1918, 0.872157, 0.000000, 0.000000, -0.489227 -1919, 0.875214, 0.000000, 0.000000, -0.483735 -1920, 0.878237, 0.000000, 0.000000, -0.478225 -1921, 0.881226, 0.000000, 0.000000, -0.472695 -1922, 0.884179, 0.000000, 0.000000, -0.467147 -1923, 0.887098, 0.000000, 0.000000, -0.461581 -1924, 0.889982, 0.000000, 0.000000, -0.455996 -1925, 0.892830, 0.000000, 0.000000, -0.450393 -1926, 0.895643, 0.000000, 0.000000, -0.444773 -1927, 0.898421, 0.000000, 0.000000, -0.439135 -1928, 0.901164, 0.000000, 0.000000, -0.433479 -1929, 0.903870, 0.000000, 0.000000, -0.427807 -1930, 0.906541, 0.000000, 0.000000, -0.422117 -1931, 0.909177, 0.000000, 0.000000, -0.416411 -1932, 0.911776, 0.000000, 0.000000, -0.410688 -1933, 0.914339, 0.000000, 0.000000, -0.404950 -1934, 0.916866, 0.000000, 0.000000, -0.399195 -1935, 0.919357, 0.000000, 0.000000, -0.393424 -1936, 0.921812, 0.000000, 0.000000, -0.387638 -1937, 0.924230, 0.000000, 0.000000, -0.381836 -1938, 0.926612, 0.000000, 0.000000, -0.376020 -1939, 0.928957, 0.000000, 0.000000, -0.370188 -1940, 0.931265, 0.000000, 0.000000, -0.364342 -1941, 0.933537, 0.000000, 0.000000, -0.358482 -1942, 0.935771, 0.000000, 0.000000, -0.352607 -1943, 0.937969, 0.000000, 0.000000, -0.346719 -1944, 0.940130, 0.000000, 0.000000, -0.340817 -1945, 0.942253, 0.000000, 0.000000, -0.334901 -1946, 0.944340, 0.000000, 0.000000, -0.328972 -1947, 0.946389, 0.000000, 0.000000, -0.323030 -1948, 0.948400, 0.000000, 0.000000, -0.317076 -1949, 0.950374, 0.000000, 0.000000, -0.311108 -1950, 0.952311, 0.000000, 0.000000, -0.305129 -1951, 0.954210, 0.000000, 0.000000, -0.299137 -1952, 0.956071, 0.000000, 0.000000, -0.293134 -1953, 0.957895, 0.000000, 0.000000, -0.287119 -1954, 0.959681, 0.000000, 0.000000, -0.281093 -1955, 0.961428, 0.000000, 0.000000, -0.275056 -1956, 0.963138, 0.000000, 0.000000, -0.269007 -1957, 0.964810, 0.000000, 0.000000, -0.262948 -1958, 0.966444, 0.000000, 0.000000, -0.256879 -1959, 0.968039, 0.000000, 0.000000, -0.250800 -1960, 0.969596, 0.000000, 0.000000, -0.244710 -1961, 0.971115, 0.000000, 0.000000, -0.238611 -1962, 0.972596, 0.000000, 0.000000, -0.232503 -1963, 0.974038, 0.000000, 0.000000, -0.226385 -1964, 0.975441, 0.000000, 0.000000, -0.220259 -1965, 0.976807, 0.000000, 0.000000, -0.214124 -1966, 0.978133, 0.000000, 0.000000, -0.207980 -1967, 0.979421, 0.000000, 0.000000, -0.201828 -1968, 0.980670, 0.000000, 0.000000, -0.195668 -1969, 0.981881, 0.000000, 0.000000, -0.189501 -1970, 0.983052, 0.000000, 0.000000, -0.183326 -1971, 0.984185, 0.000000, 0.000000, -0.177143 -1972, 0.985279, 0.000000, 0.000000, -0.170954 -1973, 0.986334, 0.000000, 0.000000, -0.164758 -1974, 0.987350, 0.000000, 0.000000, -0.158555 -1975, 0.988327, 0.000000, 0.000000, -0.152346 -1976, 0.989265, 0.000000, 0.000000, -0.146131 -1977, 0.990164, 0.000000, 0.000000, -0.139911 -1978, 0.991024, 0.000000, 0.000000, -0.133685 -1979, 0.991845, 0.000000, 0.000000, -0.127453 -1980, 0.992626, 0.000000, 0.000000, -0.121217 -1981, 0.993368, 0.000000, 0.000000, -0.114975 -1982, 0.994071, 0.000000, 0.000000, -0.108729 -1983, 0.994735, 0.000000, 0.000000, -0.102479 -1984, 0.995360, 0.000000, 0.000000, -0.096225 -1985, 0.995945, 0.000000, 0.000000, -0.089967 -1986, 0.996491, 0.000000, 0.000000, -0.083706 -1987, 0.996997, 0.000000, 0.000000, -0.077441 -1988, 0.997464, 0.000000, 0.000000, -0.071173 -1989, 0.997892, 0.000000, 0.000000, -0.064902 -1990, 0.998280, 0.000000, 0.000000, -0.058629 -1991, 0.998629, 0.000000, 0.000000, -0.052353 -1992, 0.998938, 0.000000, 0.000000, -0.046076 -1993, 0.999208, 0.000000, 0.000000, -0.039796 -1994, 0.999438, 0.000000, 0.000000, -0.033515 -1995, 0.999629, 0.000000, 0.000000, -0.027233 -1996, 0.999781, 0.000000, 0.000000, -0.020949 -1997, 0.999892, 0.000000, 0.000000, -0.014665 -1998, 0.999965, 0.000000, 0.000000, -0.008380 -1999, 0.999998, 0.000000, 0.000000, -0.002095 -2000, 0.999991, 0.000000, 0.000000, 0.004190 -2001, 0.999945, 0.000000, 0.000000, 0.010475 -2002, 0.999860, 0.000000, 0.000000, 0.016760 -2003, 0.999734, 0.000000, 0.000000, 0.023044 -2004, 0.999570, 0.000000, 0.000000, 0.029327 -2005, 0.999366, 0.000000, 0.000000, 0.035609 -2006, 0.999122, 0.000000, 0.000000, 0.041890 -2007, 0.998839, 0.000000, 0.000000, 0.048169 -2008, 0.998517, 0.000000, 0.000000, 0.054445 -2009, 0.998155, 0.000000, 0.000000, 0.060720 -2010, 0.997753, 0.000000, 0.000000, 0.066993 -2011, 0.997313, 0.000000, 0.000000, 0.073263 -2012, 0.996833, 0.000000, 0.000000, 0.079529 -2013, 0.996313, 0.000000, 0.000000, 0.085793 -2014, 0.995754, 0.000000, 0.000000, 0.092054 -2015, 0.995156, 0.000000, 0.000000, 0.098310 -2016, 0.994518, 0.000000, 0.000000, 0.104563 -2017, 0.993841, 0.000000, 0.000000, 0.110812 -2018, 0.993125, 0.000000, 0.000000, 0.117056 -2019, 0.992370, 0.000000, 0.000000, 0.123296 -2020, 0.991575, 0.000000, 0.000000, 0.129531 -2021, 0.990742, 0.000000, 0.000000, 0.135761 -2022, 0.989869, 0.000000, 0.000000, 0.141985 -2023, 0.988957, 0.000000, 0.000000, 0.148204 -2024, 0.988006, 0.000000, 0.000000, 0.154417 -2025, 0.987016, 0.000000, 0.000000, 0.160623 -2026, 0.985987, 0.000000, 0.000000, 0.166824 -2027, 0.984919, 0.000000, 0.000000, 0.173018 -2028, 0.983812, 0.000000, 0.000000, 0.179205 -2029, 0.982666, 0.000000, 0.000000, 0.185385 -2030, 0.981481, 0.000000, 0.000000, 0.191557 -2031, 0.980258, 0.000000, 0.000000, 0.197722 -2032, 0.978996, 0.000000, 0.000000, 0.203880 -2033, 0.977695, 0.000000, 0.000000, 0.210029 -2034, 0.976356, 0.000000, 0.000000, 0.216170 -2035, 0.974978, 0.000000, 0.000000, 0.222302 -2036, 0.973561, 0.000000, 0.000000, 0.228426 -2037, 0.972106, 0.000000, 0.000000, 0.234540 -2038, 0.970613, 0.000000, 0.000000, 0.240646 -2039, 0.969081, 0.000000, 0.000000, 0.246741 -2040, 0.967511, 0.000000, 0.000000, 0.252827 -2041, 0.965903, 0.000000, 0.000000, 0.258903 -2042, 0.964257, 0.000000, 0.000000, 0.264969 -2043, 0.962572, 0.000000, 0.000000, 0.271025 -2044, 0.960850, 0.000000, 0.000000, 0.277069 -2045, 0.959090, 0.000000, 0.000000, 0.283103 -2046, 0.957291, 0.000000, 0.000000, 0.289125 -2047, 0.955455, 0.000000, 0.000000, 0.295136 -2048, 0.953581, 0.000000, 0.000000, 0.301136 -2049, 0.951670, 0.000000, 0.000000, 0.307123 -2050, 0.949721, 0.000000, 0.000000, 0.313099 -2051, 0.947734, 0.000000, 0.000000, 0.319062 -2052, 0.945710, 0.000000, 0.000000, 0.325012 -2053, 0.943648, 0.000000, 0.000000, 0.330950 -2054, 0.941550, 0.000000, 0.000000, 0.336874 -2055, 0.939414, 0.000000, 0.000000, 0.342786 -2056, 0.937241, 0.000000, 0.000000, 0.348683 -2057, 0.935031, 0.000000, 0.000000, 0.354567 -2058, 0.932784, 0.000000, 0.000000, 0.360437 -2059, 0.930500, 0.000000, 0.000000, 0.366293 -2060, 0.928179, 0.000000, 0.000000, 0.372134 -2061, 0.925822, 0.000000, 0.000000, 0.377960 -2062, 0.923428, 0.000000, 0.000000, 0.383772 -2063, 0.920998, 0.000000, 0.000000, 0.389568 -2064, 0.918531, 0.000000, 0.000000, 0.395349 -2065, 0.916028, 0.000000, 0.000000, 0.401115 -2066, 0.913489, 0.000000, 0.000000, 0.406864 -2067, 0.910913, 0.000000, 0.000000, 0.412598 -2068, 0.908302, 0.000000, 0.000000, 0.418315 -2069, 0.905655, 0.000000, 0.000000, 0.424015 -2070, 0.902972, 0.000000, 0.000000, 0.429699 -2071, 0.900253, 0.000000, 0.000000, 0.435366 -2072, 0.897499, 0.000000, 0.000000, 0.441016 -2073, 0.894710, 0.000000, 0.000000, 0.446648 -2074, 0.891885, 0.000000, 0.000000, 0.452263 -2075, 0.889024, 0.000000, 0.000000, 0.457860 -2076, 0.886129, 0.000000, 0.000000, 0.463438 -2077, 0.883199, 0.000000, 0.000000, 0.468999 -2078, 0.880234, 0.000000, 0.000000, 0.474541 -2079, 0.877234, 0.000000, 0.000000, 0.480064 -2080, 0.874199, 0.000000, 0.000000, 0.485568 -2081, 0.871130, 0.000000, 0.000000, 0.491053 -2082, 0.868026, 0.000000, 0.000000, 0.496518 -2083, 0.864888, 0.000000, 0.000000, 0.501964 -2084, 0.861716, 0.000000, 0.000000, 0.507390 -2085, 0.858510, 0.000000, 0.000000, 0.512797 -2086, 0.855270, 0.000000, 0.000000, 0.518182 -2087, 0.851996, 0.000000, 0.000000, 0.523548 -2088, 0.848689, 0.000000, 0.000000, 0.528892 -2089, 0.845348, 0.000000, 0.000000, 0.534216 -2090, 0.841974, 0.000000, 0.000000, 0.539519 -2091, 0.838566, 0.000000, 0.000000, 0.544800 -2092, 0.835125, 0.000000, 0.000000, 0.550060 -2093, 0.831651, 0.000000, 0.000000, 0.555298 -2094, 0.828145, 0.000000, 0.000000, 0.560514 -2095, 0.824606, 0.000000, 0.000000, 0.565708 -2096, 0.821034, 0.000000, 0.000000, 0.570880 -2097, 0.817429, 0.000000, 0.000000, 0.576029 -2098, 0.813793, 0.000000, 0.000000, 0.581155 -2099, 0.810124, 0.000000, 0.000000, 0.586259 -2100, 0.806423, 0.000000, 0.000000, 0.591339 -2101, 0.802690, 0.000000, 0.000000, 0.596396 -2102, 0.798926, 0.000000, 0.000000, 0.601429 -2103, 0.795130, 0.000000, 0.000000, 0.606439 -2104, 0.791303, 0.000000, 0.000000, 0.611424 -2105, 0.787444, 0.000000, 0.000000, 0.616386 -2106, 0.783555, 0.000000, 0.000000, 0.621323 -2107, 0.779634, 0.000000, 0.000000, 0.626235 -2108, 0.775683, 0.000000, 0.000000, 0.631123 -2109, 0.771700, 0.000000, 0.000000, 0.635986 -2110, 0.767688, 0.000000, 0.000000, 0.640824 -2111, 0.763645, 0.000000, 0.000000, 0.645636 -2112, 0.759572, 0.000000, 0.000000, 0.650423 -2113, 0.755469, 0.000000, 0.000000, 0.655185 -2114, 0.751336, 0.000000, 0.000000, 0.659920 -2115, 0.747173, 0.000000, 0.000000, 0.664629 -2116, 0.742981, 0.000000, 0.000000, 0.669312 -2117, 0.738760, 0.000000, 0.000000, 0.673969 -2118, 0.734509, 0.000000, 0.000000, 0.678599 -2119, 0.730229, 0.000000, 0.000000, 0.683202 -2120, 0.725921, 0.000000, 0.000000, 0.687778 -2121, 0.721584, 0.000000, 0.000000, 0.692327 -2122, 0.717218, 0.000000, 0.000000, 0.696849 -2123, 0.712824, 0.000000, 0.000000, 0.701343 -2124, 0.708402, 0.000000, 0.000000, 0.705809 -2125, 0.703952, 0.000000, 0.000000, 0.710248 -2126, 0.699474, 0.000000, 0.000000, 0.714658 -2127, 0.694968, 0.000000, 0.000000, 0.719041 -2128, 0.690435, 0.000000, 0.000000, 0.723394 -2129, 0.685875, 0.000000, 0.000000, 0.727720 -2130, 0.681287, 0.000000, 0.000000, 0.732016 -2131, 0.676673, 0.000000, 0.000000, 0.736284 -2132, 0.672032, 0.000000, 0.000000, 0.740522 -2133, 0.667364, 0.000000, 0.000000, 0.744732 -2134, 0.662670, 0.000000, 0.000000, 0.748911 -2135, 0.657950, 0.000000, 0.000000, 0.753062 -2136, 0.653204, 0.000000, 0.000000, 0.757182 -2137, 0.648432, 0.000000, 0.000000, 0.761273 -2138, 0.643634, 0.000000, 0.000000, 0.765333 -2139, 0.638811, 0.000000, 0.000000, 0.769363 -2140, 0.633963, 0.000000, 0.000000, 0.773363 -2141, 0.629090, 0.000000, 0.000000, 0.777333 -2142, 0.624192, 0.000000, 0.000000, 0.781271 -2143, 0.619269, 0.000000, 0.000000, 0.785179 -2144, 0.614321, 0.000000, 0.000000, 0.789056 -2145, 0.609350, 0.000000, 0.000000, 0.792901 -2146, 0.604354, 0.000000, 0.000000, 0.796716 -2147, 0.599335, 0.000000, 0.000000, 0.800498 -2148, 0.594292, 0.000000, 0.000000, 0.804250 -2149, 0.589225, 0.000000, 0.000000, 0.807969 -2150, 0.584135, 0.000000, 0.000000, 0.811656 -2151, 0.579022, 0.000000, 0.000000, 0.815312 -2152, 0.573886, 0.000000, 0.000000, 0.818935 -2153, 0.568728, 0.000000, 0.000000, 0.822526 -2154, 0.563547, 0.000000, 0.000000, 0.826084 -2155, 0.558343, 0.000000, 0.000000, 0.829610 -2156, 0.553118, 0.000000, 0.000000, 0.833103 -2157, 0.547871, 0.000000, 0.000000, 0.836563 -2158, 0.542602, 0.000000, 0.000000, 0.839990 -2159, 0.537312, 0.000000, 0.000000, 0.843384 -2160, 0.532000, 0.000000, 0.000000, 0.846744 -2161, 0.526668, 0.000000, 0.000000, 0.850071 -2162, 0.521315, 0.000000, 0.000000, 0.853365 -2163, 0.515941, 0.000000, 0.000000, 0.856624 -2164, 0.510546, 0.000000, 0.000000, 0.859850 -2165, 0.505132, 0.000000, 0.000000, 0.863042 -2166, 0.499698, 0.000000, 0.000000, 0.866200 -2167, 0.494243, 0.000000, 0.000000, 0.869324 -2168, 0.488770, 0.000000, 0.000000, 0.872413 -2169, 0.483277, 0.000000, 0.000000, 0.875468 -2170, 0.477765, 0.000000, 0.000000, 0.878488 -2171, 0.472234, 0.000000, 0.000000, 0.881473 -2172, 0.466684, 0.000000, 0.000000, 0.884424 -2173, 0.461116, 0.000000, 0.000000, 0.887340 -2174, 0.455530, 0.000000, 0.000000, 0.890220 -2175, 0.449926, 0.000000, 0.000000, 0.893066 -2176, 0.444304, 0.000000, 0.000000, 0.895876 -2177, 0.438664, 0.000000, 0.000000, 0.898651 -2178, 0.433007, 0.000000, 0.000000, 0.901390 -2179, 0.427333, 0.000000, 0.000000, 0.904094 -2180, 0.421642, 0.000000, 0.000000, 0.906762 -2181, 0.415935, 0.000000, 0.000000, 0.909394 -2182, 0.410211, 0.000000, 0.000000, 0.911991 -2183, 0.404471, 0.000000, 0.000000, 0.914551 -2184, 0.398714, 0.000000, 0.000000, 0.917075 -2185, 0.392942, 0.000000, 0.000000, 0.919563 -2186, 0.387155, 0.000000, 0.000000, 0.922015 -2187, 0.381352, 0.000000, 0.000000, 0.924430 -2188, 0.375535, 0.000000, 0.000000, 0.926808 -2189, 0.369702, 0.000000, 0.000000, 0.929150 -2190, 0.363855, 0.000000, 0.000000, 0.931456 -2191, 0.357993, 0.000000, 0.000000, 0.933724 -2192, 0.352117, 0.000000, 0.000000, 0.935956 -2193, 0.346228, 0.000000, 0.000000, 0.938151 -2194, 0.340324, 0.000000, 0.000000, 0.940308 -2195, 0.334407, 0.000000, 0.000000, 0.942429 -2196, 0.328478, 0.000000, 0.000000, 0.944512 -2197, 0.322535, 0.000000, 0.000000, 0.946558 -2198, 0.316579, 0.000000, 0.000000, 0.948566 -2199, 0.310611, 0.000000, 0.000000, 0.950537 -2200, 0.304630, 0.000000, 0.000000, 0.952471 -2201, 0.298638, 0.000000, 0.000000, 0.954367 -2202, 0.292633, 0.000000, 0.000000, 0.956225 -2203, 0.286617, 0.000000, 0.000000, 0.958045 -2204, 0.280590, 0.000000, 0.000000, 0.959828 -2205, 0.274552, 0.000000, 0.000000, 0.961572 -2206, 0.268503, 0.000000, 0.000000, 0.963279 -2207, 0.262443, 0.000000, 0.000000, 0.964947 -2208, 0.256373, 0.000000, 0.000000, 0.966578 -2209, 0.250293, 0.000000, 0.000000, 0.968170 -2210, 0.244203, 0.000000, 0.000000, 0.969724 -2211, 0.238103, 0.000000, 0.000000, 0.971240 -2212, 0.231994, 0.000000, 0.000000, 0.972717 -2213, 0.225875, 0.000000, 0.000000, 0.974156 -2214, 0.219748, 0.000000, 0.000000, 0.975557 -2215, 0.213612, 0.000000, 0.000000, 0.976919 -2216, 0.207468, 0.000000, 0.000000, 0.978242 -2217, 0.201315, 0.000000, 0.000000, 0.979527 -2218, 0.195155, 0.000000, 0.000000, 0.980773 -2219, 0.188986, 0.000000, 0.000000, 0.981980 -2220, 0.182811, 0.000000, 0.000000, 0.983148 -2221, 0.176628, 0.000000, 0.000000, 0.984278 -2222, 0.170438, 0.000000, 0.000000, 0.985368 -2223, 0.164241, 0.000000, 0.000000, 0.986420 -2224, 0.158038, 0.000000, 0.000000, 0.987433 -2225, 0.151829, 0.000000, 0.000000, 0.988407 -2226, 0.145613, 0.000000, 0.000000, 0.989342 -2227, 0.139392, 0.000000, 0.000000, 0.990237 -2228, 0.133165, 0.000000, 0.000000, 0.991094 -2229, 0.126934, 0.000000, 0.000000, 0.991911 -2230, 0.120697, 0.000000, 0.000000, 0.992689 -2231, 0.114455, 0.000000, 0.000000, 0.993428 -2232, 0.108209, 0.000000, 0.000000, 0.994128 -2233, 0.101958, 0.000000, 0.000000, 0.994789 -2234, 0.095704, 0.000000, 0.000000, 0.995410 -2235, 0.089446, 0.000000, 0.000000, 0.995992 -2236, 0.083184, 0.000000, 0.000000, 0.996534 -2237, 0.076919, 0.000000, 0.000000, 0.997037 -2238, 0.070650, 0.000000, 0.000000, 0.997501 -2239, 0.064380, 0.000000, 0.000000, 0.997925 -2240, 0.058106, 0.000000, 0.000000, 0.998310 -2241, 0.051830, 0.000000, 0.000000, 0.998656 -2242, 0.045553, 0.000000, 0.000000, 0.998962 -2243, 0.039273, 0.000000, 0.000000, 0.999229 -2244, 0.032992, 0.000000, 0.000000, 0.999456 -2245, 0.026709, 0.000000, 0.000000, 0.999643 -2246, 0.020426, 0.000000, 0.000000, 0.999791 -2247, 0.014141, 0.000000, 0.000000, 0.999900 -2248, 0.007857, 0.000000, 0.000000, 0.999969 -2249, 0.001571, 0.000000, 0.000000, 0.999999 -2250, -0.004714, -0.000000, 0.000000, 0.999989 -2251, -0.010999, -0.000000, 0.000000, 0.999940 -2252, -0.017284, -0.000000, 0.000000, 0.999851 -2253, -0.023568, -0.000000, 0.000000, 0.999722 -2254, -0.029851, -0.000000, 0.000000, 0.999554 -2255, -0.036132, -0.000000, 0.000000, 0.999347 -2256, -0.042413, -0.000000, 0.000000, 0.999100 -2257, -0.048692, -0.000000, 0.000000, 0.998814 -2258, -0.054968, -0.000000, 0.000000, 0.998488 -2259, -0.061243, -0.000000, 0.000000, 0.998123 -2260, -0.067515, -0.000000, 0.000000, 0.997718 -2261, -0.073785, -0.000000, 0.000000, 0.997274 -2262, -0.080052, -0.000000, 0.000000, 0.996791 -2263, -0.086315, -0.000000, 0.000000, 0.996268 -2264, -0.092575, -0.000000, 0.000000, 0.995706 -2265, -0.098832, -0.000000, 0.000000, 0.995104 -2266, -0.105084, -0.000000, 0.000000, 0.994463 -2267, -0.111332, -0.000000, 0.000000, 0.993783 -2268, -0.117576, -0.000000, 0.000000, 0.993064 -2269, -0.123816, -0.000000, 0.000000, 0.992305 -2270, -0.130050, -0.000000, 0.000000, 0.991507 -2271, -0.136279, -0.000000, 0.000000, 0.990670 -2272, -0.142503, -0.000000, 0.000000, 0.989794 -2273, -0.148722, -0.000000, 0.000000, 0.988879 -2274, -0.154934, -0.000000, 0.000000, 0.987925 -2275, -0.161140, -0.000000, 0.000000, 0.986932 -2276, -0.167340, -0.000000, 0.000000, 0.985899 -2277, -0.173534, -0.000000, 0.000000, 0.984828 -2278, -0.179720, -0.000000, 0.000000, 0.983718 -2279, -0.185899, -0.000000, 0.000000, 0.982569 -2280, -0.192071, -0.000000, 0.000000, 0.981381 -2281, -0.198236, -0.000000, 0.000000, 0.980154 -2282, -0.204392, -0.000000, 0.000000, 0.978889 -2283, -0.210541, -0.000000, 0.000000, 0.977585 -2284, -0.216681, -0.000000, 0.000000, 0.976242 -2285, -0.222813, -0.000000, 0.000000, 0.974861 -2286, -0.228936, -0.000000, 0.000000, 0.973442 -2287, -0.235049, -0.000000, 0.000000, 0.971983 -2288, -0.241154, -0.000000, 0.000000, 0.970487 -2289, -0.247249, -0.000000, 0.000000, 0.968952 -2290, -0.253334, -0.000000, 0.000000, 0.967379 -2291, -0.259409, -0.000000, 0.000000, 0.965767 -2292, -0.265474, -0.000000, 0.000000, 0.964118 -2293, -0.271529, -0.000000, 0.000000, 0.962430 -2294, -0.277572, -0.000000, 0.000000, 0.960705 -2295, -0.283605, -0.000000, 0.000000, 0.958941 -2296, -0.289627, -0.000000, 0.000000, 0.957140 -2297, -0.295637, -0.000000, 0.000000, 0.955300 -2298, -0.301635, -0.000000, 0.000000, 0.953423 -2299, -0.307622, -0.000000, 0.000000, 0.951509 -2300, -0.313596, -0.000000, 0.000000, 0.949556 -2301, -0.319558, -0.000000, 0.000000, 0.947567 -2302, -0.325508, -0.000000, 0.000000, 0.945539 -2303, -0.331444, -0.000000, 0.000000, 0.943475 -2304, -0.337368, -0.000000, 0.000000, 0.941373 -2305, -0.343278, -0.000000, 0.000000, 0.939234 -2306, -0.349174, -0.000000, 0.000000, 0.937058 -2307, -0.355057, -0.000000, 0.000000, 0.934845 -2308, -0.360926, -0.000000, 0.000000, 0.932595 -2309, -0.366780, -0.000000, 0.000000, 0.930308 -2310, -0.372620, -0.000000, 0.000000, 0.927984 -2311, -0.378445, -0.000000, 0.000000, 0.925624 -2312, -0.384256, -0.000000, 0.000000, 0.923227 -2313, -0.390051, -0.000000, 0.000000, 0.920793 -2314, -0.395830, -0.000000, 0.000000, 0.918324 -2315, -0.401594, -0.000000, 0.000000, 0.915818 -2316, -0.407343, -0.000000, 0.000000, 0.913275 -2317, -0.413075, -0.000000, 0.000000, 0.910697 -2318, -0.418791, -0.000000, 0.000000, 0.908083 -2319, -0.424490, -0.000000, 0.000000, 0.905433 -2320, -0.430172, -0.000000, 0.000000, 0.902747 -2321, -0.435838, -0.000000, 0.000000, 0.900025 -2322, -0.441486, -0.000000, 0.000000, 0.897268 -2323, -0.447117, -0.000000, 0.000000, 0.894476 -2324, -0.452730, -0.000000, 0.000000, 0.891648 -2325, -0.458325, -0.000000, 0.000000, 0.888785 -2326, -0.463902, -0.000000, 0.000000, 0.885886 -2327, -0.469461, -0.000000, 0.000000, 0.882953 -2328, -0.475002, -0.000000, 0.000000, 0.879985 -2329, -0.480523, -0.000000, 0.000000, 0.876982 -2330, -0.486026, -0.000000, 0.000000, 0.873945 -2331, -0.491509, -0.000000, 0.000000, 0.870872 -2332, -0.496973, -0.000000, 0.000000, 0.867766 -2333, -0.502417, -0.000000, 0.000000, 0.864625 -2334, -0.507842, -0.000000, 0.000000, 0.861450 -2335, -0.513246, -0.000000, 0.000000, 0.858241 -2336, -0.518630, -0.000000, 0.000000, 0.854999 -2337, -0.523994, -0.000000, 0.000000, 0.851722 -2338, -0.529337, -0.000000, 0.000000, 0.848412 -2339, -0.534659, -0.000000, 0.000000, 0.845068 -2340, -0.539960, -0.000000, 0.000000, 0.841691 -2341, -0.545239, -0.000000, 0.000000, 0.838280 -2342, -0.550497, -0.000000, 0.000000, 0.834837 -2343, -0.555734, -0.000000, 0.000000, 0.831360 -2344, -0.560948, -0.000000, 0.000000, 0.827851 -2345, -0.566140, -0.000000, 0.000000, 0.824309 -2346, -0.571310, -0.000000, 0.000000, 0.820734 -2347, -0.576457, -0.000000, 0.000000, 0.817127 -2348, -0.581581, -0.000000, 0.000000, 0.813488 -2349, -0.586683, -0.000000, 0.000000, 0.809817 -2350, -0.591761, -0.000000, 0.000000, 0.806113 -2351, -0.596816, -0.000000, 0.000000, 0.802378 -2352, -0.601848, -0.000000, 0.000000, 0.798611 -2353, -0.606855, -0.000000, 0.000000, 0.794812 -2354, -0.611839, -0.000000, 0.000000, 0.790983 -2355, -0.616798, -0.000000, 0.000000, 0.787121 -2356, -0.621733, -0.000000, 0.000000, 0.783229 -2357, -0.626644, -0.000000, 0.000000, 0.779306 -2358, -0.631529, -0.000000, 0.000000, 0.775352 -2359, -0.636390, -0.000000, 0.000000, 0.771367 -2360, -0.641226, -0.000000, 0.000000, 0.767352 -2361, -0.646036, -0.000000, 0.000000, 0.763307 -2362, -0.650821, -0.000000, 0.000000, 0.759231 -2363, -0.655580, -0.000000, 0.000000, 0.755126 -2364, -0.660313, -0.000000, 0.000000, 0.750990 -2365, -0.665020, -0.000000, 0.000000, 0.746825 -2366, -0.669701, -0.000000, 0.000000, 0.742631 -2367, -0.674356, -0.000000, 0.000000, 0.738407 -2368, -0.678983, -0.000000, 0.000000, 0.734154 -2369, -0.683584, -0.000000, 0.000000, 0.729872 -2370, -0.688158, -0.000000, 0.000000, 0.725561 -2371, -0.692705, -0.000000, 0.000000, 0.721221 -2372, -0.697224, -0.000000, 0.000000, 0.716853 -2373, -0.701716, -0.000000, 0.000000, 0.712457 -2374, -0.706180, -0.000000, 0.000000, 0.708032 -2375, -0.710616, -0.000000, 0.000000, 0.703580 -2376, -0.715025, -0.000000, 0.000000, 0.699099 -2377, -0.719404, -0.000000, 0.000000, 0.694591 -2378, -0.723756, -0.000000, 0.000000, 0.690056 -2379, -0.728079, -0.000000, 0.000000, 0.685493 -2380, -0.732373, -0.000000, 0.000000, 0.680904 -2381, -0.736638, -0.000000, 0.000000, 0.676287 -2382, -0.740874, -0.000000, 0.000000, 0.671644 -2383, -0.745081, -0.000000, 0.000000, 0.666974 -2384, -0.749258, -0.000000, 0.000000, 0.662278 -2385, -0.753406, -0.000000, 0.000000, 0.657555 -2386, -0.757524, -0.000000, 0.000000, 0.652807 -2387, -0.761612, -0.000000, 0.000000, 0.648033 -2388, -0.765670, -0.000000, 0.000000, 0.643233 -2389, -0.769698, -0.000000, 0.000000, 0.638408 -2390, -0.773695, -0.000000, 0.000000, 0.633558 -2391, -0.777662, -0.000000, 0.000000, 0.628682 -2392, -0.781598, -0.000000, 0.000000, 0.623782 -2393, -0.785503, -0.000000, 0.000000, 0.618857 -2394, -0.789377, -0.000000, 0.000000, 0.613908 -2395, -0.793220, -0.000000, 0.000000, 0.608935 -2396, -0.797032, -0.000000, 0.000000, 0.603937 -2397, -0.800812, -0.000000, 0.000000, 0.598915 -2398, -0.804561, -0.000000, 0.000000, 0.593870 -2399, -0.808277, -0.000000, 0.000000, 0.588802 -2400, -0.811962, -0.000000, 0.000000, 0.583710 -2401, -0.815615, -0.000000, 0.000000, 0.578595 -2402, -0.819235, -0.000000, 0.000000, 0.573457 -2403, -0.822824, -0.000000, 0.000000, 0.568297 -2404, -0.826379, -0.000000, 0.000000, 0.563114 -2405, -0.829902, -0.000000, 0.000000, 0.557909 -2406, -0.833392, -0.000000, 0.000000, 0.552682 -2407, -0.836850, -0.000000, 0.000000, 0.547433 -2408, -0.840274, -0.000000, 0.000000, 0.542162 -2409, -0.843665, -0.000000, 0.000000, 0.536870 -2410, -0.847023, -0.000000, 0.000000, 0.531557 -2411, -0.850347, -0.000000, 0.000000, 0.526223 -2412, -0.853638, -0.000000, 0.000000, 0.520868 -2413, -0.856894, -0.000000, 0.000000, 0.515492 -2414, -0.860117, -0.000000, 0.000000, 0.510096 -2415, -0.863307, -0.000000, 0.000000, 0.504680 -2416, -0.866462, -0.000000, 0.000000, 0.499244 -2417, -0.869582, -0.000000, 0.000000, 0.493788 -2418, -0.872669, -0.000000, 0.000000, 0.488313 -2419, -0.875721, -0.000000, 0.000000, 0.482818 -2420, -0.878738, -0.000000, 0.000000, 0.477305 -2421, -0.881721, -0.000000, 0.000000, 0.471772 -2422, -0.884668, -0.000000, 0.000000, 0.466221 -2423, -0.887581, -0.000000, 0.000000, 0.460651 -2424, -0.890459, -0.000000, 0.000000, 0.455064 -2425, -0.893302, -0.000000, 0.000000, 0.449458 -2426, -0.896109, -0.000000, 0.000000, 0.443834 -2427, -0.898881, -0.000000, 0.000000, 0.438193 -2428, -0.901617, -0.000000, 0.000000, 0.432535 -2429, -0.904318, -0.000000, 0.000000, 0.426860 -2430, -0.906983, -0.000000, 0.000000, 0.421167 -2431, -0.909612, -0.000000, 0.000000, 0.415458 -2432, -0.912206, -0.000000, 0.000000, 0.409733 -2433, -0.914763, -0.000000, 0.000000, 0.403991 -2434, -0.917284, -0.000000, 0.000000, 0.398234 -2435, -0.919769, -0.000000, 0.000000, 0.392461 -2436, -0.922217, -0.000000, 0.000000, 0.386672 -2437, -0.924629, -0.000000, 0.000000, 0.380868 -2438, -0.927005, -0.000000, 0.000000, 0.375049 -2439, -0.929344, -0.000000, 0.000000, 0.369215 -2440, -0.931646, -0.000000, 0.000000, 0.363367 -2441, -0.933912, -0.000000, 0.000000, 0.357504 -2442, -0.936140, -0.000000, 0.000000, 0.351627 -2443, -0.938332, -0.000000, 0.000000, 0.345736 -2444, -0.940486, -0.000000, 0.000000, 0.339832 -2445, -0.942604, -0.000000, 0.000000, 0.333914 -2446, -0.944684, -0.000000, 0.000000, 0.327983 -2447, -0.946727, -0.000000, 0.000000, 0.322039 -2448, -0.948732, -0.000000, 0.000000, 0.316082 -2449, -0.950700, -0.000000, 0.000000, 0.310113 -2450, -0.952630, -0.000000, 0.000000, 0.304131 -2451, -0.954523, -0.000000, 0.000000, 0.298138 -2452, -0.956378, -0.000000, 0.000000, 0.292132 -2453, -0.958195, -0.000000, 0.000000, 0.286116 -2454, -0.959975, -0.000000, 0.000000, 0.280087 -2455, -0.961716, -0.000000, 0.000000, 0.274048 -2456, -0.963419, -0.000000, 0.000000, 0.267998 -2457, -0.965085, -0.000000, 0.000000, 0.261938 -2458, -0.966712, -0.000000, 0.000000, 0.255867 -2459, -0.968301, -0.000000, 0.000000, 0.249786 -2460, -0.969852, -0.000000, 0.000000, 0.243695 -2461, -0.971365, -0.000000, 0.000000, 0.237594 -2462, -0.972839, -0.000000, 0.000000, 0.231484 -2463, -0.974274, -0.000000, 0.000000, 0.225365 -2464, -0.975672, -0.000000, 0.000000, 0.219237 -2465, -0.977030, -0.000000, 0.000000, 0.213100 -2466, -0.978350, -0.000000, 0.000000, 0.206955 -2467, -0.979632, -0.000000, 0.000000, 0.200802 -2468, -0.980875, -0.000000, 0.000000, 0.194641 -2469, -0.982079, -0.000000, 0.000000, 0.188472 -2470, -0.983244, -0.000000, 0.000000, 0.182296 -2471, -0.984370, -0.000000, 0.000000, 0.176112 -2472, -0.985458, -0.000000, 0.000000, 0.169922 -2473, -0.986506, -0.000000, 0.000000, 0.163724 -2474, -0.987516, -0.000000, 0.000000, 0.157521 -2475, -0.988486, -0.000000, 0.000000, 0.151311 -2476, -0.989418, -0.000000, 0.000000, 0.145095 -2477, -0.990310, -0.000000, 0.000000, 0.138873 -2478, -0.991163, -0.000000, 0.000000, 0.132646 -2479, -0.991978, -0.000000, 0.000000, 0.126414 -2480, -0.992753, -0.000000, 0.000000, 0.120177 -2481, -0.993488, -0.000000, 0.000000, 0.113935 -2482, -0.994185, -0.000000, 0.000000, 0.107688 -2483, -0.994842, -0.000000, 0.000000, 0.101437 -2484, -0.995460, -0.000000, 0.000000, 0.095182 -2485, -0.996038, -0.000000, 0.000000, 0.088924 -2486, -0.996578, -0.000000, 0.000000, 0.082662 -2487, -0.997078, -0.000000, 0.000000, 0.076396 -2488, -0.997538, -0.000000, 0.000000, 0.070128 -2489, -0.997959, -0.000000, 0.000000, 0.063857 -2490, -0.998341, -0.000000, 0.000000, 0.057583 -2491, -0.998683, -0.000000, 0.000000, 0.051307 -2492, -0.998986, -0.000000, 0.000000, 0.045029 -2493, -0.999249, -0.000000, 0.000000, 0.038750 -2494, -0.999473, -0.000000, 0.000000, 0.032468 -2495, -0.999657, -0.000000, 0.000000, 0.026186 -2496, -0.999802, -0.000000, 0.000000, 0.019902 -2497, -0.999907, -0.000000, 0.000000, 0.013618 -2498, -0.999973, -0.000000, 0.000000, 0.007333 -2499, -0.999999, -0.000000, 0.000000, 0.001048 -2500, -0.999986, 0.000000, -0.000000, -0.005238 -2501, -0.999934, 0.000000, -0.000000, -0.011523 -2502, -0.999841, 0.000000, -0.000000, -0.017807 -2503, -0.999710, 0.000000, -0.000000, -0.024091 -2504, -0.999539, 0.000000, -0.000000, -0.030374 -2505, -0.999328, 0.000000, -0.000000, -0.036656 -2506, -0.999078, 0.000000, -0.000000, -0.042936 -2507, -0.998788, 0.000000, -0.000000, -0.049215 -2508, -0.998459, 0.000000, -0.000000, -0.055491 -2509, -0.998091, 0.000000, -0.000000, -0.061766 -2510, -0.997683, 0.000000, -0.000000, -0.068038 -2511, -0.997235, 0.000000, -0.000000, -0.074307 -2512, -0.996749, 0.000000, -0.000000, -0.080574 -2513, -0.996223, 0.000000, -0.000000, -0.086837 -2514, -0.995657, 0.000000, -0.000000, -0.093097 -2515, -0.995052, 0.000000, -0.000000, -0.099353 -2516, -0.994408, 0.000000, -0.000000, -0.105605 -2517, -0.993725, 0.000000, -0.000000, -0.111853 -2518, -0.993002, 0.000000, -0.000000, -0.118097 -2519, -0.992240, 0.000000, -0.000000, -0.124335 -2520, -0.991439, 0.000000, -0.000000, -0.130569 -2521, -0.990599, 0.000000, -0.000000, -0.136798 -2522, -0.989720, 0.000000, -0.000000, -0.143022 -2523, -0.988801, 0.000000, -0.000000, -0.149240 -2524, -0.987844, 0.000000, -0.000000, -0.155451 -2525, -0.986847, 0.000000, -0.000000, -0.161657 -2526, -0.985811, 0.000000, -0.000000, -0.167857 -2527, -0.984737, 0.000000, -0.000000, -0.174049 -2528, -0.983624, 0.000000, -0.000000, -0.180235 -2529, -0.982471, 0.000000, -0.000000, -0.186414 -2530, -0.981280, 0.000000, -0.000000, -0.192585 -2531, -0.980050, 0.000000, -0.000000, -0.198749 -2532, -0.978782, 0.000000, -0.000000, -0.204905 -2533, -0.977475, 0.000000, -0.000000, -0.211053 -2534, -0.976129, 0.000000, -0.000000, -0.217192 -2535, -0.974744, 0.000000, -0.000000, -0.223323 -2536, -0.973322, 0.000000, -0.000000, -0.229445 -2537, -0.971860, 0.000000, -0.000000, -0.235558 -2538, -0.970360, 0.000000, -0.000000, -0.241662 -2539, -0.968822, 0.000000, -0.000000, -0.247756 -2540, -0.967246, 0.000000, -0.000000, -0.253841 -2541, -0.965631, 0.000000, -0.000000, -0.259915 -2542, -0.963979, 0.000000, -0.000000, -0.265979 -2543, -0.962288, 0.000000, -0.000000, -0.272033 -2544, -0.960559, 0.000000, -0.000000, -0.278076 -2545, -0.958792, 0.000000, -0.000000, -0.284107 -2546, -0.956988, 0.000000, -0.000000, -0.290128 -2547, -0.955145, 0.000000, -0.000000, -0.296137 -2548, -0.953265, 0.000000, -0.000000, -0.302135 -2549, -0.951347, 0.000000, -0.000000, -0.308120 -2550, -0.949392, 0.000000, -0.000000, -0.314094 -2551, -0.947399, 0.000000, -0.000000, -0.320055 -2552, -0.945369, 0.000000, -0.000000, -0.326003 -2553, -0.943301, 0.000000, -0.000000, -0.331938 -2554, -0.941196, 0.000000, -0.000000, -0.337861 -2555, -0.939054, 0.000000, -0.000000, -0.343770 -2556, -0.936875, 0.000000, -0.000000, -0.349665 -2557, -0.934659, 0.000000, -0.000000, -0.355547 -2558, -0.932405, 0.000000, -0.000000, -0.361414 -2559, -0.930115, 0.000000, -0.000000, -0.367267 -2560, -0.927789, 0.000000, -0.000000, -0.373106 -2561, -0.925425, 0.000000, -0.000000, -0.378930 -2562, -0.923025, 0.000000, -0.000000, -0.384739 -2563, -0.920589, 0.000000, -0.000000, -0.390533 -2564, -0.918116, 0.000000, -0.000000, -0.396311 -2565, -0.915607, 0.000000, -0.000000, -0.402074 -2566, -0.913062, 0.000000, -0.000000, -0.407821 -2567, -0.910481, 0.000000, -0.000000, -0.413552 -2568, -0.907863, 0.000000, -0.000000, -0.419266 -2569, -0.905210, 0.000000, -0.000000, -0.424964 -2570, -0.902521, 0.000000, -0.000000, -0.430645 -2571, -0.899797, 0.000000, -0.000000, -0.436309 -2572, -0.897037, 0.000000, -0.000000, -0.441956 -2573, -0.894241, 0.000000, -0.000000, -0.447585 -2574, -0.891410, 0.000000, -0.000000, -0.453197 -2575, -0.888544, 0.000000, -0.000000, -0.458791 -2576, -0.885643, 0.000000, -0.000000, -0.464366 -2577, -0.882707, 0.000000, -0.000000, -0.469924 -2578, -0.879736, 0.000000, -0.000000, -0.475462 -2579, -0.876730, 0.000000, -0.000000, -0.480982 -2580, -0.873690, 0.000000, -0.000000, -0.486483 -2581, -0.870615, 0.000000, -0.000000, -0.491965 -2582, -0.867506, 0.000000, -0.000000, -0.497427 -2583, -0.864362, 0.000000, -0.000000, -0.502870 -2584, -0.861184, 0.000000, -0.000000, -0.508293 -2585, -0.857973, 0.000000, -0.000000, -0.513696 -2586, -0.854727, 0.000000, -0.000000, -0.519078 -2587, -0.851447, 0.000000, -0.000000, -0.524440 -2588, -0.848134, 0.000000, -0.000000, -0.529781 -2589, -0.844788, 0.000000, -0.000000, -0.535101 -2590, -0.841408, 0.000000, -0.000000, -0.540400 -2591, -0.837995, 0.000000, -0.000000, -0.545678 -2592, -0.834549, 0.000000, -0.000000, -0.550934 -2593, -0.831069, 0.000000, -0.000000, -0.556169 -2594, -0.827557, 0.000000, -0.000000, -0.561381 -2595, -0.824012, 0.000000, -0.000000, -0.566572 -2596, -0.820435, 0.000000, -0.000000, -0.571740 -2597, -0.816825, 0.000000, -0.000000, -0.576885 -2598, -0.813183, 0.000000, -0.000000, -0.582008 -2599, -0.809509, 0.000000, -0.000000, -0.587107 -2600, -0.805803, 0.000000, -0.000000, -0.592183 -2601, -0.802065, 0.000000, -0.000000, -0.597236 -2602, -0.798296, 0.000000, -0.000000, -0.602266 -2603, -0.794494, 0.000000, -0.000000, -0.607271 -2604, -0.790662, 0.000000, -0.000000, -0.612253 -2605, -0.786798, 0.000000, -0.000000, -0.617210 -2606, -0.782903, 0.000000, -0.000000, -0.622143 -2607, -0.778978, 0.000000, -0.000000, -0.627052 -2608, -0.775021, 0.000000, -0.000000, -0.631935 -2609, -0.771034, 0.000000, -0.000000, -0.636794 -2610, -0.767016, 0.000000, -0.000000, -0.641628 -2611, -0.762968, 0.000000, -0.000000, -0.646436 -2612, -0.758890, 0.000000, -0.000000, -0.651219 -2613, -0.754782, 0.000000, -0.000000, -0.655976 -2614, -0.750644, 0.000000, -0.000000, -0.660707 -2615, -0.746477, 0.000000, -0.000000, -0.665412 -2616, -0.742280, 0.000000, -0.000000, -0.670090 -2617, -0.738053, 0.000000, -0.000000, -0.674742 -2618, -0.733798, 0.000000, -0.000000, -0.679368 -2619, -0.729513, 0.000000, -0.000000, -0.683967 -2620, -0.725200, 0.000000, -0.000000, -0.688538 -2621, -0.720858, 0.000000, -0.000000, -0.693083 -2622, -0.716488, 0.000000, -0.000000, -0.697600 -2623, -0.712089, 0.000000, -0.000000, -0.702089 -2624, -0.707662, 0.000000, -0.000000, -0.706551 -2625, -0.703207, 0.000000, -0.000000, -0.710985 -2626, -0.698725, 0.000000, -0.000000, -0.715391 -2627, -0.694214, 0.000000, -0.000000, -0.719768 -2628, -0.689677, 0.000000, -0.000000, -0.724117 -2629, -0.685112, 0.000000, -0.000000, -0.728438 -2630, -0.680520, 0.000000, -0.000000, -0.732729 -2631, -0.675901, 0.000000, -0.000000, -0.736992 -2632, -0.671256, 0.000000, -0.000000, -0.741226 -2633, -0.666584, 0.000000, -0.000000, -0.745430 -2634, -0.661885, 0.000000, -0.000000, -0.749605 -2635, -0.657161, 0.000000, -0.000000, -0.753750 -2636, -0.652410, 0.000000, -0.000000, -0.757866 -2637, -0.647634, 0.000000, -0.000000, -0.761952 -2638, -0.642832, 0.000000, -0.000000, -0.766007 -2639, -0.638005, 0.000000, -0.000000, -0.770032 -2640, -0.633153, 0.000000, -0.000000, -0.774027 -2641, -0.628275, 0.000000, -0.000000, -0.777991 -2642, -0.623373, 0.000000, -0.000000, -0.781925 -2643, -0.618446, 0.000000, -0.000000, -0.785827 -2644, -0.613495, 0.000000, -0.000000, -0.789699 -2645, -0.608519, 0.000000, -0.000000, -0.793539 -2646, -0.603519, 0.000000, -0.000000, -0.797348 -2647, -0.598496, 0.000000, -0.000000, -0.801126 -2648, -0.593449, 0.000000, -0.000000, -0.804872 -2649, -0.588378, 0.000000, -0.000000, -0.808586 -2650, -0.583285, 0.000000, -0.000000, -0.812268 -2651, -0.578168, 0.000000, -0.000000, -0.815918 -2652, -0.573028, 0.000000, -0.000000, -0.819536 -2653, -0.567866, 0.000000, -0.000000, -0.823121 -2654, -0.562681, 0.000000, -0.000000, -0.826674 -2655, -0.557474, 0.000000, -0.000000, -0.830194 -2656, -0.552245, 0.000000, -0.000000, -0.833682 -2657, -0.546994, 0.000000, -0.000000, -0.837136 -2658, -0.541722, 0.000000, -0.000000, -0.840558 -2659, -0.536428, 0.000000, -0.000000, -0.843946 -2660, -0.531113, 0.000000, -0.000000, -0.847301 -2661, -0.525777, 0.000000, -0.000000, -0.850622 -2662, -0.520420, 0.000000, -0.000000, -0.853910 -2663, -0.515043, 0.000000, -0.000000, -0.857164 -2664, -0.509645, 0.000000, -0.000000, -0.860385 -2665, -0.504228, 0.000000, -0.000000, -0.863571 -2666, -0.498790, 0.000000, -0.000000, -0.866723 -2667, -0.493332, 0.000000, -0.000000, -0.869841 -2668, -0.487856, 0.000000, -0.000000, -0.872924 -2669, -0.482359, 0.000000, -0.000000, -0.875973 -2670, -0.476844, 0.000000, -0.000000, -0.878988 -2671, -0.471310, 0.000000, -0.000000, -0.881968 -2672, -0.465757, 0.000000, -0.000000, -0.884912 -2673, -0.460186, 0.000000, -0.000000, -0.887822 -2674, -0.454597, 0.000000, -0.000000, -0.890697 -2675, -0.448990, 0.000000, -0.000000, -0.893537 -2676, -0.443365, 0.000000, -0.000000, -0.896341 -2677, -0.437722, 0.000000, -0.000000, -0.899110 -2678, -0.432063, 0.000000, -0.000000, -0.901844 -2679, -0.426386, 0.000000, -0.000000, -0.904541 -2680, -0.420692, 0.000000, -0.000000, -0.907203 -2681, -0.414982, 0.000000, -0.000000, -0.909830 -2682, -0.409255, 0.000000, -0.000000, -0.912420 -2683, -0.403512, 0.000000, -0.000000, -0.914974 -2684, -0.397753, 0.000000, -0.000000, -0.917492 -2685, -0.391979, 0.000000, -0.000000, -0.919974 -2686, -0.386189, 0.000000, -0.000000, -0.922420 -2687, -0.380384, 0.000000, -0.000000, -0.924829 -2688, -0.374563, 0.000000, -0.000000, -0.927201 -2689, -0.368728, 0.000000, -0.000000, -0.929537 -2690, -0.362879, 0.000000, -0.000000, -0.931836 -2691, -0.357015, 0.000000, -0.000000, -0.934099 -2692, -0.351137, 0.000000, -0.000000, -0.936324 -2693, -0.345245, 0.000000, -0.000000, -0.938513 -2694, -0.339339, 0.000000, -0.000000, -0.940664 -2695, -0.333420, 0.000000, -0.000000, -0.942778 -2696, -0.327488, 0.000000, -0.000000, -0.944855 -2697, -0.321543, 0.000000, -0.000000, -0.946895 -2698, -0.315585, 0.000000, -0.000000, -0.948897 -2699, -0.309615, 0.000000, -0.000000, -0.950862 -2700, -0.303632, 0.000000, -0.000000, -0.952789 -2701, -0.297638, 0.000000, -0.000000, -0.954679 -2702, -0.291631, 0.000000, -0.000000, -0.956531 -2703, -0.285614, 0.000000, -0.000000, -0.958345 -2704, -0.279585, 0.000000, -0.000000, -0.960121 -2705, -0.273544, 0.000000, -0.000000, -0.961859 -2706, -0.267494, 0.000000, -0.000000, -0.963560 -2707, -0.261432, 0.000000, -0.000000, -0.965222 -2708, -0.255360, 0.000000, -0.000000, -0.966846 -2709, -0.249278, 0.000000, -0.000000, -0.968432 -2710, -0.243187, 0.000000, -0.000000, -0.969980 -2711, -0.237085, 0.000000, -0.000000, -0.971489 -2712, -0.230975, 0.000000, -0.000000, -0.972960 -2713, -0.224855, 0.000000, -0.000000, -0.974392 -2714, -0.218726, 0.000000, -0.000000, -0.975786 -2715, -0.212589, 0.000000, -0.000000, -0.977142 -2716, -0.206443, 0.000000, -0.000000, -0.978459 -2717, -0.200289, 0.000000, -0.000000, -0.979737 -2718, -0.194127, 0.000000, -0.000000, -0.980976 -2719, -0.187958, 0.000000, -0.000000, -0.982177 -2720, -0.181781, 0.000000, -0.000000, -0.983339 -2721, -0.175596, 0.000000, -0.000000, -0.984462 -2722, -0.169405, 0.000000, -0.000000, -0.985546 -2723, -0.163208, 0.000000, -0.000000, -0.986592 -2724, -0.157003, 0.000000, -0.000000, -0.987598 -2725, -0.150793, 0.000000, -0.000000, -0.988565 -2726, -0.144577, 0.000000, -0.000000, -0.989494 -2727, -0.138355, 0.000000, -0.000000, -0.990383 -2728, -0.132127, 0.000000, -0.000000, -0.991233 -2729, -0.125894, 0.000000, -0.000000, -0.992044 -2730, -0.119657, 0.000000, -0.000000, -0.992815 -2731, -0.113414, 0.000000, -0.000000, -0.993548 -2732, -0.107167, 0.000000, -0.000000, -0.994241 -2733, -0.100916, 0.000000, -0.000000, -0.994895 -2734, -0.094661, 0.000000, -0.000000, -0.995510 -2735, -0.088402, 0.000000, -0.000000, -0.996085 -2736, -0.082140, 0.000000, -0.000000, -0.996621 -2737, -0.075874, 0.000000, -0.000000, -0.997117 -2738, -0.069606, 0.000000, -0.000000, -0.997575 -2739, -0.063334, 0.000000, -0.000000, -0.997992 -2740, -0.057060, 0.000000, -0.000000, -0.998371 -2741, -0.050784, 0.000000, -0.000000, -0.998710 -2742, -0.044506, 0.000000, -0.000000, -0.999009 -2743, -0.038226, 0.000000, -0.000000, -0.999269 -2744, -0.031945, 0.000000, -0.000000, -0.999490 -2745, -0.025662, 0.000000, -0.000000, -0.999671 -2746, -0.019378, 0.000000, -0.000000, -0.999812 -2747, -0.013094, 0.000000, -0.000000, -0.999914 -2748, -0.006809, 0.000000, -0.000000, -0.999977 -2749, -0.000524, 0.000000, -0.000000, -1.000000 -2750, 0.005761, 0.000000, 0.000000, -0.999983 -2751, 0.012046, 0.000000, 0.000000, -0.999927 -2752, 0.018331, 0.000000, 0.000000, -0.999832 -2753, 0.024615, 0.000000, 0.000000, -0.999697 -2754, 0.030898, 0.000000, 0.000000, -0.999523 -2755, 0.037179, 0.000000, 0.000000, -0.999309 -2756, 0.043459, 0.000000, 0.000000, -0.999055 -2757, 0.049738, 0.000000, 0.000000, -0.998762 -2758, 0.056014, 0.000000, 0.000000, -0.998430 -2759, 0.062289, 0.000000, 0.000000, -0.998058 -2760, 0.068560, 0.000000, 0.000000, -0.997647 -2761, 0.074830, 0.000000, 0.000000, -0.997196 -2762, 0.081096, 0.000000, 0.000000, -0.996706 -2763, 0.087359, 0.000000, 0.000000, -0.996177 -2764, 0.093618, 0.000000, 0.000000, -0.995608 -2765, 0.099874, 0.000000, 0.000000, -0.995000 -2766, 0.106126, 0.000000, 0.000000, -0.994353 -2767, 0.112373, 0.000000, 0.000000, -0.993666 -2768, 0.118617, 0.000000, 0.000000, -0.992940 -2769, 0.124855, 0.000000, 0.000000, -0.992175 -2770, 0.131089, 0.000000, 0.000000, -0.991371 -2771, 0.137317, 0.000000, 0.000000, -0.990527 -2772, 0.143540, 0.000000, 0.000000, -0.989644 -2773, 0.149757, 0.000000, 0.000000, -0.988723 -2774, 0.155969, 0.000000, 0.000000, -0.987762 -2775, 0.162174, 0.000000, 0.000000, -0.986762 -2776, 0.168373, 0.000000, 0.000000, -0.985723 -2777, 0.174565, 0.000000, 0.000000, -0.984646 -2778, 0.180750, 0.000000, 0.000000, -0.983529 -2779, 0.186929, 0.000000, 0.000000, -0.982374 -2780, 0.193099, 0.000000, 0.000000, -0.981179 -2781, 0.199262, 0.000000, 0.000000, -0.979946 -2782, 0.205418, 0.000000, 0.000000, -0.978674 -2783, 0.211565, 0.000000, 0.000000, -0.977364 -2784, 0.217704, 0.000000, 0.000000, -0.976015 -2785, 0.223834, 0.000000, 0.000000, -0.974627 -2786, 0.229955, 0.000000, 0.000000, -0.973201 -2787, 0.236067, 0.000000, 0.000000, -0.971737 -2788, 0.242170, 0.000000, 0.000000, -0.970234 -2789, 0.248264, 0.000000, 0.000000, -0.968692 -2790, 0.254347, 0.000000, 0.000000, -0.967113 -2791, 0.260421, 0.000000, 0.000000, -0.965495 -2792, 0.266484, 0.000000, 0.000000, -0.963839 -2793, 0.272537, 0.000000, 0.000000, -0.962145 -2794, 0.278579, 0.000000, 0.000000, -0.960413 -2795, 0.284610, 0.000000, 0.000000, -0.958644 -2796, 0.290629, 0.000000, 0.000000, -0.956836 -2797, 0.296637, 0.000000, 0.000000, -0.954990 -2798, 0.302634, 0.000000, 0.000000, -0.953107 -2799, 0.308618, 0.000000, 0.000000, -0.951186 -2800, 0.314591, 0.000000, 0.000000, -0.949227 -2801, 0.320551, 0.000000, 0.000000, -0.947231 -2802, 0.326498, 0.000000, 0.000000, -0.945198 -2803, 0.332432, 0.000000, 0.000000, -0.943127 -2804, 0.338354, 0.000000, 0.000000, -0.941019 -2805, 0.344261, 0.000000, 0.000000, -0.938874 -2806, 0.350156, 0.000000, 0.000000, -0.936692 -2807, 0.356036, 0.000000, 0.000000, -0.934472 -2808, 0.361902, 0.000000, 0.000000, -0.932216 -2809, 0.367754, 0.000000, 0.000000, -0.929923 -2810, 0.373592, 0.000000, 0.000000, -0.927593 -2811, 0.379415, 0.000000, 0.000000, -0.925227 -2812, 0.385222, 0.000000, 0.000000, -0.922824 -2813, 0.391015, 0.000000, 0.000000, -0.920384 -2814, 0.396792, 0.000000, 0.000000, -0.917908 -2815, 0.402554, 0.000000, 0.000000, -0.915396 -2816, 0.408299, 0.000000, 0.000000, -0.912848 -2817, 0.414029, 0.000000, 0.000000, -0.910264 -2818, 0.419742, 0.000000, 0.000000, -0.907644 -2819, 0.425438, 0.000000, 0.000000, -0.904988 -2820, 0.431118, 0.000000, 0.000000, -0.902296 -2821, 0.436780, 0.000000, 0.000000, -0.899568 -2822, 0.442426, 0.000000, 0.000000, -0.896805 -2823, 0.448054, 0.000000, 0.000000, -0.894007 -2824, 0.453664, 0.000000, 0.000000, -0.891173 -2825, 0.459256, 0.000000, 0.000000, -0.888304 -2826, 0.464830, 0.000000, 0.000000, -0.885400 -2827, 0.470386, 0.000000, 0.000000, -0.882461 -2828, 0.475923, 0.000000, 0.000000, -0.879487 -2829, 0.481442, 0.000000, 0.000000, -0.876478 -2830, 0.486941, 0.000000, 0.000000, -0.873435 -2831, 0.492421, 0.000000, 0.000000, -0.870357 -2832, 0.497882, 0.000000, 0.000000, -0.867245 -2833, 0.503323, 0.000000, 0.000000, -0.864099 -2834, 0.508744, 0.000000, 0.000000, -0.860918 -2835, 0.514145, 0.000000, 0.000000, -0.857703 -2836, 0.519526, 0.000000, 0.000000, -0.854455 -2837, 0.524886, 0.000000, 0.000000, -0.851173 -2838, 0.530225, 0.000000, 0.000000, -0.847857 -2839, 0.535544, 0.000000, 0.000000, -0.844507 -2840, 0.540841, 0.000000, 0.000000, -0.841125 -2841, 0.546117, 0.000000, 0.000000, -0.837709 -2842, 0.551371, 0.000000, 0.000000, -0.834260 -2843, 0.556604, 0.000000, 0.000000, -0.830778 -2844, 0.561815, 0.000000, 0.000000, -0.827263 -2845, 0.567003, 0.000000, 0.000000, -0.823716 -2846, 0.572169, 0.000000, 0.000000, -0.820136 -2847, 0.577313, 0.000000, 0.000000, -0.816523 -2848, 0.582433, 0.000000, 0.000000, -0.812878 -2849, 0.587531, 0.000000, 0.000000, -0.809202 -2850, 0.592605, 0.000000, 0.000000, -0.805493 -2851, 0.597656, 0.000000, 0.000000, -0.801752 -2852, 0.602684, 0.000000, 0.000000, -0.797980 -2853, 0.607687, 0.000000, 0.000000, -0.794176 -2854, 0.612667, 0.000000, 0.000000, -0.790341 -2855, 0.617622, 0.000000, 0.000000, -0.786475 -2856, 0.622553, 0.000000, 0.000000, -0.782577 -2857, 0.627460, 0.000000, 0.000000, -0.778649 -2858, 0.632341, 0.000000, 0.000000, -0.774690 -2859, 0.637198, 0.000000, 0.000000, -0.770700 -2860, 0.642029, 0.000000, 0.000000, -0.766680 -2861, 0.646835, 0.000000, 0.000000, -0.762630 -2862, 0.651616, 0.000000, 0.000000, -0.758549 -2863, 0.656371, 0.000000, 0.000000, -0.754438 -2864, 0.661100, 0.000000, 0.000000, -0.750298 -2865, 0.665802, 0.000000, 0.000000, -0.746128 -2866, 0.670479, 0.000000, 0.000000, -0.741929 -2867, 0.675129, 0.000000, 0.000000, -0.737700 -2868, 0.679752, 0.000000, 0.000000, -0.733442 -2869, 0.684349, 0.000000, 0.000000, -0.729155 -2870, 0.688918, 0.000000, 0.000000, -0.724839 -2871, 0.693460, 0.000000, 0.000000, -0.720495 -2872, 0.697975, 0.000000, 0.000000, -0.716122 -2873, 0.702462, 0.000000, 0.000000, -0.711721 -2874, 0.706922, 0.000000, 0.000000, -0.707292 -2875, 0.711353, 0.000000, 0.000000, -0.702835 -2876, 0.715757, 0.000000, 0.000000, -0.698350 -2877, 0.720132, 0.000000, 0.000000, -0.693837 -2878, 0.724478, 0.000000, 0.000000, -0.689297 -2879, 0.728797, 0.000000, 0.000000, -0.684730 -2880, 0.733086, 0.000000, 0.000000, -0.680136 -2881, 0.737346, 0.000000, 0.000000, -0.675515 -2882, 0.741577, 0.000000, 0.000000, -0.670867 -2883, 0.745779, 0.000000, 0.000000, -0.666193 -2884, 0.749952, 0.000000, 0.000000, -0.661493 -2885, 0.754095, 0.000000, 0.000000, -0.656766 -2886, 0.758208, 0.000000, 0.000000, -0.652013 -2887, 0.762291, 0.000000, 0.000000, -0.647235 -2888, 0.766344, 0.000000, 0.000000, -0.642431 -2889, 0.770366, 0.000000, 0.000000, -0.637602 -2890, 0.774359, 0.000000, 0.000000, -0.632747 -2891, 0.778320, 0.000000, 0.000000, -0.627867 -2892, 0.782251, 0.000000, 0.000000, -0.622963 -2893, 0.786151, 0.000000, 0.000000, -0.618034 -2894, 0.790020, 0.000000, 0.000000, -0.613081 -2895, 0.793858, 0.000000, 0.000000, -0.608103 -2896, 0.797664, 0.000000, 0.000000, -0.603102 -2897, 0.801439, 0.000000, 0.000000, -0.598076 -2898, 0.805182, 0.000000, 0.000000, -0.593027 -2899, 0.808894, 0.000000, 0.000000, -0.587955 -2900, 0.812573, 0.000000, 0.000000, -0.582859 -2901, 0.816221, 0.000000, 0.000000, -0.577740 -2902, 0.819836, 0.000000, 0.000000, -0.572599 -2903, 0.823418, 0.000000, 0.000000, -0.567435 -2904, 0.826969, 0.000000, 0.000000, -0.562248 -2905, 0.830486, 0.000000, 0.000000, -0.557039 -2906, 0.833971, 0.000000, 0.000000, -0.551808 -2907, 0.837423, 0.000000, 0.000000, -0.546556 -2908, 0.840841, 0.000000, 0.000000, -0.541282 -2909, 0.844227, 0.000000, 0.000000, -0.535986 -2910, 0.847579, 0.000000, 0.000000, -0.530669 -2911, 0.850898, 0.000000, 0.000000, -0.525332 -2912, 0.854183, 0.000000, 0.000000, -0.519973 -2913, 0.857434, 0.000000, 0.000000, -0.514594 -2914, 0.860651, 0.000000, 0.000000, -0.509195 -2915, 0.863835, 0.000000, 0.000000, -0.503775 -2916, 0.866984, 0.000000, 0.000000, -0.498336 -2917, 0.870099, 0.000000, 0.000000, -0.492877 -2918, 0.873180, 0.000000, 0.000000, -0.487398 -2919, 0.876226, 0.000000, 0.000000, -0.481901 -2920, 0.879237, 0.000000, 0.000000, -0.476384 -2921, 0.882214, 0.000000, 0.000000, -0.470848 -2922, 0.885156, 0.000000, 0.000000, -0.465294 -2923, 0.888063, 0.000000, 0.000000, -0.459721 -2924, 0.890935, 0.000000, 0.000000, -0.454130 -2925, 0.893772, 0.000000, 0.000000, -0.448522 -2926, 0.896573, 0.000000, 0.000000, -0.442895 -2927, 0.899339, 0.000000, 0.000000, -0.437251 -2928, 0.902070, 0.000000, 0.000000, -0.431590 -2929, 0.904765, 0.000000, 0.000000, -0.425912 -2930, 0.907424, 0.000000, 0.000000, -0.420217 -2931, 0.910047, 0.000000, 0.000000, -0.414505 -2932, 0.912634, 0.000000, 0.000000, -0.408777 -2933, 0.915185, 0.000000, 0.000000, -0.403033 -2934, 0.917701, 0.000000, 0.000000, -0.397273 -2935, 0.920179, 0.000000, 0.000000, -0.391497 -2936, 0.922622, 0.000000, 0.000000, -0.385706 -2937, 0.925028, 0.000000, 0.000000, -0.379899 -2938, 0.927397, 0.000000, 0.000000, -0.374078 -2939, 0.929730, 0.000000, 0.000000, -0.368241 -2940, 0.932026, 0.000000, 0.000000, -0.362391 -2941, 0.934286, 0.000000, 0.000000, -0.356525 -2942, 0.936508, 0.000000, 0.000000, -0.350646 -2943, 0.938693, 0.000000, 0.000000, -0.344753 -2944, 0.940842, 0.000000, 0.000000, -0.338846 -2945, 0.942953, 0.000000, 0.000000, -0.332926 -2946, 0.945027, 0.000000, 0.000000, -0.326993 -2947, 0.947063, 0.000000, 0.000000, -0.321047 -2948, 0.949062, 0.000000, 0.000000, -0.315088 -2949, 0.951024, 0.000000, 0.000000, -0.309117 -2950, 0.952948, 0.000000, 0.000000, -0.303133 -2951, 0.954835, 0.000000, 0.000000, -0.297138 -2952, 0.956683, 0.000000, 0.000000, -0.291130 -2953, 0.958494, 0.000000, 0.000000, -0.285112 -2954, 0.960267, 0.000000, 0.000000, -0.279082 -2955, 0.962003, 0.000000, 0.000000, -0.273041 -2956, 0.963700, 0.000000, 0.000000, -0.266989 -2957, 0.965359, 0.000000, 0.000000, -0.260926 -2958, 0.966980, 0.000000, 0.000000, -0.254854 -2959, 0.968562, 0.000000, 0.000000, -0.248771 -2960, 0.970107, 0.000000, 0.000000, -0.242678 -2961, 0.971613, 0.000000, 0.000000, -0.236576 -2962, 0.973081, 0.000000, 0.000000, -0.230465 -2963, 0.974510, 0.000000, 0.000000, -0.224344 -2964, 0.975901, 0.000000, 0.000000, -0.218215 -2965, 0.977253, 0.000000, 0.000000, -0.212077 -2966, 0.978567, 0.000000, 0.000000, -0.205930 -2967, 0.979842, 0.000000, 0.000000, -0.199776 -2968, 0.981078, 0.000000, 0.000000, -0.193613 -2969, 0.982275, 0.000000, 0.000000, -0.187443 -2970, 0.983434, 0.000000, 0.000000, -0.181266 -2971, 0.984554, 0.000000, 0.000000, -0.175081 -2972, 0.985635, 0.000000, 0.000000, -0.168889 -2973, 0.986677, 0.000000, 0.000000, -0.162691 -2974, 0.987680, 0.000000, 0.000000, -0.156486 -2975, 0.988644, 0.000000, 0.000000, -0.150275 -2976, 0.989569, 0.000000, 0.000000, -0.144058 -2977, 0.990455, 0.000000, 0.000000, -0.137836 -2978, 0.991302, 0.000000, 0.000000, -0.131608 -2979, 0.992109, 0.000000, 0.000000, -0.125375 -2980, 0.992878, 0.000000, 0.000000, -0.119137 -2981, 0.993607, 0.000000, 0.000000, -0.112894 -2982, 0.994297, 0.000000, 0.000000, -0.106647 -2983, 0.994948, 0.000000, 0.000000, -0.100395 -2984, 0.995559, 0.000000, 0.000000, -0.094140 -2985, 0.996131, 0.000000, 0.000000, -0.087880 -2986, 0.996664, 0.000000, 0.000000, -0.081618 -2987, 0.997157, 0.000000, 0.000000, -0.075352 -2988, 0.997611, 0.000000, 0.000000, -0.069083 -2989, 0.998025, 0.000000, 0.000000, -0.062811 -2990, 0.998400, 0.000000, 0.000000, -0.056537 -2991, 0.998736, 0.000000, 0.000000, -0.050261 -2992, 0.999032, 0.000000, 0.000000, -0.043983 -2993, 0.999289, 0.000000, 0.000000, -0.037703 -2994, 0.999506, 0.000000, 0.000000, -0.031421 -2995, 0.999684, 0.000000, 0.000000, -0.025138 -2996, 0.999822, 0.000000, 0.000000, -0.018855 -2997, 0.999921, 0.000000, 0.000000, -0.012570 -2998, 0.999980, 0.000000, 0.000000, -0.006285 -2999, 1.000000, 0.000000, 0.000000, -0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 0.999980, 0.000000, 0.000000, 0.006285 + 0.999921, 0.000000, 0.000000, 0.012570 + 0.999822, 0.000000, 0.000000, 0.018855 + 0.999684, 0.000000, 0.000000, 0.025138 + 0.999506, 0.000000, 0.000000, 0.031421 + 0.999289, 0.000000, 0.000000, 0.037703 + 0.999032, 0.000000, 0.000000, 0.043983 + 0.998736, 0.000000, 0.000000, 0.050261 + 0.998400, 0.000000, 0.000000, 0.056537 + 0.998025, 0.000000, 0.000000, 0.062811 + 0.997611, 0.000000, 0.000000, 0.069083 + 0.997157, 0.000000, 0.000000, 0.075352 + 0.996664, 0.000000, 0.000000, 0.081618 + 0.996131, 0.000000, 0.000000, 0.087880 + 0.995559, 0.000000, 0.000000, 0.094140 + 0.994948, 0.000000, 0.000000, 0.100395 + 0.994297, 0.000000, 0.000000, 0.106647 + 0.993607, 0.000000, 0.000000, 0.112894 + 0.992878, 0.000000, 0.000000, 0.119137 + 0.992109, 0.000000, 0.000000, 0.125375 + 0.991302, 0.000000, 0.000000, 0.131608 + 0.990455, 0.000000, 0.000000, 0.137836 + 0.989569, 0.000000, 0.000000, 0.144058 + 0.988644, 0.000000, 0.000000, 0.150275 + 0.987680, 0.000000, 0.000000, 0.156486 + 0.986677, 0.000000, 0.000000, 0.162691 + 0.985635, 0.000000, 0.000000, 0.168889 + 0.984554, 0.000000, 0.000000, 0.175081 + 0.983434, 0.000000, 0.000000, 0.181266 + 0.982275, 0.000000, 0.000000, 0.187443 + 0.981078, 0.000000, 0.000000, 0.193613 + 0.979842, 0.000000, 0.000000, 0.199776 + 0.978567, 0.000000, 0.000000, 0.205930 + 0.977253, 0.000000, 0.000000, 0.212077 + 0.975901, 0.000000, 0.000000, 0.218215 + 0.974510, 0.000000, 0.000000, 0.224344 + 0.973081, 0.000000, 0.000000, 0.230465 + 0.971613, 0.000000, 0.000000, 0.236576 + 0.970107, 0.000000, 0.000000, 0.242678 + 0.968562, 0.000000, 0.000000, 0.248771 + 0.966980, 0.000000, 0.000000, 0.254854 + 0.965359, 0.000000, 0.000000, 0.260926 + 0.963700, 0.000000, 0.000000, 0.266989 + 0.962003, 0.000000, 0.000000, 0.273041 + 0.960267, 0.000000, 0.000000, 0.279082 + 0.958494, 0.000000, 0.000000, 0.285112 + 0.956683, 0.000000, 0.000000, 0.291130 + 0.954835, 0.000000, 0.000000, 0.297138 + 0.952948, 0.000000, 0.000000, 0.303133 + 0.951024, 0.000000, 0.000000, 0.309117 + 0.949062, 0.000000, 0.000000, 0.315088 + 0.947063, 0.000000, 0.000000, 0.321047 + 0.945027, 0.000000, 0.000000, 0.326993 + 0.942953, 0.000000, 0.000000, 0.332926 + 0.940842, 0.000000, 0.000000, 0.338846 + 0.938693, 0.000000, 0.000000, 0.344753 + 0.936508, 0.000000, 0.000000, 0.350646 + 0.934286, 0.000000, 0.000000, 0.356525 + 0.932026, 0.000000, 0.000000, 0.362391 + 0.929730, 0.000000, 0.000000, 0.368241 + 0.927397, 0.000000, 0.000000, 0.374078 + 0.925028, 0.000000, 0.000000, 0.379899 + 0.922622, 0.000000, 0.000000, 0.385706 + 0.920179, 0.000000, 0.000000, 0.391497 + 0.917701, 0.000000, 0.000000, 0.397273 + 0.915185, 0.000000, 0.000000, 0.403033 + 0.912634, 0.000000, 0.000000, 0.408777 + 0.910047, 0.000000, 0.000000, 0.414505 + 0.907424, 0.000000, 0.000000, 0.420217 + 0.904765, 0.000000, 0.000000, 0.425912 + 0.902070, 0.000000, 0.000000, 0.431590 + 0.899339, 0.000000, 0.000000, 0.437251 + 0.896573, 0.000000, 0.000000, 0.442895 + 0.893772, 0.000000, 0.000000, 0.448522 + 0.890935, 0.000000, 0.000000, 0.454130 + 0.888063, 0.000000, 0.000000, 0.459721 + 0.885156, 0.000000, 0.000000, 0.465294 + 0.882214, 0.000000, 0.000000, 0.470848 + 0.879237, 0.000000, 0.000000, 0.476384 + 0.876226, 0.000000, 0.000000, 0.481901 + 0.873180, 0.000000, 0.000000, 0.487398 + 0.870099, 0.000000, 0.000000, 0.492877 + 0.866984, 0.000000, 0.000000, 0.498336 + 0.863835, 0.000000, 0.000000, 0.503775 + 0.860651, 0.000000, 0.000000, 0.509195 + 0.857434, 0.000000, 0.000000, 0.514594 + 0.854183, 0.000000, 0.000000, 0.519973 + 0.850898, 0.000000, 0.000000, 0.525332 + 0.847579, 0.000000, 0.000000, 0.530669 + 0.844227, 0.000000, 0.000000, 0.535986 + 0.840841, 0.000000, 0.000000, 0.541282 + 0.837423, 0.000000, 0.000000, 0.546556 + 0.833971, 0.000000, 0.000000, 0.551808 + 0.830486, 0.000000, 0.000000, 0.557039 + 0.826969, 0.000000, 0.000000, 0.562248 + 0.823418, 0.000000, 0.000000, 0.567435 + 0.819836, 0.000000, 0.000000, 0.572599 + 0.816221, 0.000000, 0.000000, 0.577740 + 0.812573, 0.000000, 0.000000, 0.582859 + 0.808894, 0.000000, 0.000000, 0.587955 + 0.805182, 0.000000, 0.000000, 0.593027 + 0.801439, 0.000000, 0.000000, 0.598076 + 0.797664, 0.000000, 0.000000, 0.603102 + 0.793858, 0.000000, 0.000000, 0.608103 + 0.790020, 0.000000, 0.000000, 0.613081 + 0.786151, 0.000000, 0.000000, 0.618034 + 0.782251, 0.000000, 0.000000, 0.622963 + 0.778320, 0.000000, 0.000000, 0.627867 + 0.774359, 0.000000, 0.000000, 0.632747 + 0.770366, 0.000000, 0.000000, 0.637602 + 0.766344, 0.000000, 0.000000, 0.642431 + 0.762291, 0.000000, 0.000000, 0.647235 + 0.758208, 0.000000, 0.000000, 0.652013 + 0.754095, 0.000000, 0.000000, 0.656766 + 0.749952, 0.000000, 0.000000, 0.661493 + 0.745779, 0.000000, 0.000000, 0.666193 + 0.741577, 0.000000, 0.000000, 0.670867 + 0.737346, 0.000000, 0.000000, 0.675515 + 0.733086, 0.000000, 0.000000, 0.680136 + 0.728797, 0.000000, 0.000000, 0.684730 + 0.724478, 0.000000, 0.000000, 0.689297 + 0.720132, 0.000000, 0.000000, 0.693837 + 0.715757, 0.000000, 0.000000, 0.698350 + 0.711353, 0.000000, 0.000000, 0.702835 + 0.706922, 0.000000, 0.000000, 0.707292 + 0.702462, 0.000000, 0.000000, 0.711721 + 0.697975, 0.000000, 0.000000, 0.716122 + 0.693460, 0.000000, 0.000000, 0.720495 + 0.688918, 0.000000, 0.000000, 0.724839 + 0.684349, 0.000000, 0.000000, 0.729155 + 0.679752, 0.000000, 0.000000, 0.733442 + 0.675129, 0.000000, 0.000000, 0.737700 + 0.670479, 0.000000, 0.000000, 0.741929 + 0.665802, 0.000000, 0.000000, 0.746128 + 0.661100, 0.000000, 0.000000, 0.750298 + 0.656371, 0.000000, 0.000000, 0.754438 + 0.651616, 0.000000, 0.000000, 0.758549 + 0.646835, 0.000000, 0.000000, 0.762630 + 0.642029, 0.000000, 0.000000, 0.766680 + 0.637198, 0.000000, 0.000000, 0.770700 + 0.632341, 0.000000, 0.000000, 0.774690 + 0.627460, 0.000000, 0.000000, 0.778649 + 0.622553, 0.000000, 0.000000, 0.782577 + 0.617622, 0.000000, 0.000000, 0.786475 + 0.612667, 0.000000, 0.000000, 0.790341 + 0.607687, 0.000000, 0.000000, 0.794176 + 0.602684, 0.000000, 0.000000, 0.797980 + 0.597656, 0.000000, 0.000000, 0.801752 + 0.592605, 0.000000, 0.000000, 0.805493 + 0.587531, 0.000000, 0.000000, 0.809202 + 0.582433, 0.000000, 0.000000, 0.812878 + 0.577313, 0.000000, 0.000000, 0.816523 + 0.572169, 0.000000, 0.000000, 0.820136 + 0.567003, 0.000000, 0.000000, 0.823716 + 0.561815, 0.000000, 0.000000, 0.827263 + 0.556604, 0.000000, 0.000000, 0.830778 + 0.551371, 0.000000, 0.000000, 0.834260 + 0.546117, 0.000000, 0.000000, 0.837709 + 0.540841, 0.000000, 0.000000, 0.841125 + 0.535544, 0.000000, 0.000000, 0.844507 + 0.530225, 0.000000, 0.000000, 0.847857 + 0.524886, 0.000000, 0.000000, 0.851173 + 0.519526, 0.000000, 0.000000, 0.854455 + 0.514145, 0.000000, 0.000000, 0.857703 + 0.508744, 0.000000, 0.000000, 0.860918 + 0.503323, 0.000000, 0.000000, 0.864099 + 0.497882, 0.000000, 0.000000, 0.867245 + 0.492421, 0.000000, 0.000000, 0.870357 + 0.486941, 0.000000, 0.000000, 0.873435 + 0.481442, 0.000000, 0.000000, 0.876478 + 0.475923, 0.000000, 0.000000, 0.879487 + 0.470386, 0.000000, 0.000000, 0.882461 + 0.464830, 0.000000, 0.000000, 0.885400 + 0.459256, 0.000000, 0.000000, 0.888304 + 0.453664, 0.000000, 0.000000, 0.891173 + 0.448054, 0.000000, 0.000000, 0.894007 + 0.442426, 0.000000, 0.000000, 0.896805 + 0.436780, 0.000000, 0.000000, 0.899568 + 0.431118, 0.000000, 0.000000, 0.902296 + 0.425438, 0.000000, 0.000000, 0.904988 + 0.419742, 0.000000, 0.000000, 0.907644 + 0.414029, 0.000000, 0.000000, 0.910264 + 0.408299, 0.000000, 0.000000, 0.912848 + 0.402554, 0.000000, 0.000000, 0.915396 + 0.396792, 0.000000, 0.000000, 0.917908 + 0.391015, 0.000000, 0.000000, 0.920384 + 0.385222, 0.000000, 0.000000, 0.922824 + 0.379415, 0.000000, 0.000000, 0.925227 + 0.373592, 0.000000, 0.000000, 0.927593 + 0.367754, 0.000000, 0.000000, 0.929923 + 0.361902, 0.000000, 0.000000, 0.932216 + 0.356036, 0.000000, 0.000000, 0.934472 + 0.350156, 0.000000, 0.000000, 0.936692 + 0.344261, 0.000000, 0.000000, 0.938874 + 0.338354, 0.000000, 0.000000, 0.941019 + 0.332432, 0.000000, 0.000000, 0.943127 + 0.326498, 0.000000, 0.000000, 0.945198 + 0.320551, 0.000000, 0.000000, 0.947231 + 0.314591, 0.000000, 0.000000, 0.949227 + 0.308618, 0.000000, 0.000000, 0.951186 + 0.302634, 0.000000, 0.000000, 0.953107 + 0.296637, 0.000000, 0.000000, 0.954990 + 0.290629, 0.000000, 0.000000, 0.956836 + 0.284610, 0.000000, 0.000000, 0.958644 + 0.278579, 0.000000, 0.000000, 0.960413 + 0.272537, 0.000000, 0.000000, 0.962145 + 0.266484, 0.000000, 0.000000, 0.963839 + 0.260421, 0.000000, 0.000000, 0.965495 + 0.254347, 0.000000, 0.000000, 0.967113 + 0.248264, 0.000000, 0.000000, 0.968692 + 0.242170, 0.000000, 0.000000, 0.970234 + 0.236067, 0.000000, 0.000000, 0.971737 + 0.229955, 0.000000, 0.000000, 0.973201 + 0.223834, 0.000000, 0.000000, 0.974627 + 0.217704, 0.000000, 0.000000, 0.976015 + 0.211565, 0.000000, 0.000000, 0.977364 + 0.205418, 0.000000, 0.000000, 0.978674 + 0.199262, 0.000000, 0.000000, 0.979946 + 0.193099, 0.000000, 0.000000, 0.981179 + 0.186929, 0.000000, 0.000000, 0.982374 + 0.180750, 0.000000, 0.000000, 0.983529 + 0.174565, 0.000000, 0.000000, 0.984646 + 0.168373, 0.000000, 0.000000, 0.985723 + 0.162174, 0.000000, 0.000000, 0.986762 + 0.155969, 0.000000, 0.000000, 0.987762 + 0.149757, 0.000000, 0.000000, 0.988723 + 0.143540, 0.000000, 0.000000, 0.989644 + 0.137317, 0.000000, 0.000000, 0.990527 + 0.131089, 0.000000, 0.000000, 0.991371 + 0.124855, 0.000000, 0.000000, 0.992175 + 0.118617, 0.000000, 0.000000, 0.992940 + 0.112373, 0.000000, 0.000000, 0.993666 + 0.106126, 0.000000, 0.000000, 0.994353 + 0.099874, 0.000000, 0.000000, 0.995000 + 0.093618, 0.000000, 0.000000, 0.995608 + 0.087359, 0.000000, 0.000000, 0.996177 + 0.081096, 0.000000, 0.000000, 0.996706 + 0.074830, 0.000000, 0.000000, 0.997196 + 0.068560, 0.000000, 0.000000, 0.997647 + 0.062289, 0.000000, 0.000000, 0.998058 + 0.056014, 0.000000, 0.000000, 0.998430 + 0.049738, 0.000000, 0.000000, 0.998762 + 0.043459, 0.000000, 0.000000, 0.999055 + 0.037179, 0.000000, 0.000000, 0.999309 + 0.030898, 0.000000, 0.000000, 0.999523 + 0.024615, 0.000000, 0.000000, 0.999697 + 0.018331, 0.000000, 0.000000, 0.999832 + 0.012046, 0.000000, 0.000000, 0.999927 + 0.005761, 0.000000, 0.000000, 0.999983 + -0.000524, -0.000000, 0.000000, 1.000000 + -0.006809, -0.000000, 0.000000, 0.999977 + -0.013094, -0.000000, 0.000000, 0.999914 + -0.019378, -0.000000, 0.000000, 0.999812 + -0.025662, -0.000000, 0.000000, 0.999671 + -0.031945, -0.000000, 0.000000, 0.999490 + -0.038226, -0.000000, 0.000000, 0.999269 + -0.044506, -0.000000, 0.000000, 0.999009 + -0.050784, -0.000000, 0.000000, 0.998710 + -0.057060, -0.000000, 0.000000, 0.998371 + -0.063334, -0.000000, 0.000000, 0.997992 + -0.069606, -0.000000, 0.000000, 0.997575 + -0.075874, -0.000000, 0.000000, 0.997117 + -0.082140, -0.000000, 0.000000, 0.996621 + -0.088402, -0.000000, 0.000000, 0.996085 + -0.094661, -0.000000, 0.000000, 0.995510 + -0.100916, -0.000000, 0.000000, 0.994895 + -0.107167, -0.000000, 0.000000, 0.994241 + -0.113414, -0.000000, 0.000000, 0.993548 + -0.119657, -0.000000, 0.000000, 0.992815 + -0.125894, -0.000000, 0.000000, 0.992044 + -0.132127, -0.000000, 0.000000, 0.991233 + -0.138355, -0.000000, 0.000000, 0.990383 + -0.144577, -0.000000, 0.000000, 0.989494 + -0.150793, -0.000000, 0.000000, 0.988565 + -0.157003, -0.000000, 0.000000, 0.987598 + -0.163208, -0.000000, 0.000000, 0.986592 + -0.169405, -0.000000, 0.000000, 0.985546 + -0.175596, -0.000000, 0.000000, 0.984462 + -0.181781, -0.000000, 0.000000, 0.983339 + -0.187958, -0.000000, 0.000000, 0.982177 + -0.194127, -0.000000, 0.000000, 0.980976 + -0.200289, -0.000000, 0.000000, 0.979737 + -0.206443, -0.000000, 0.000000, 0.978459 + -0.212589, -0.000000, 0.000000, 0.977142 + -0.218726, -0.000000, 0.000000, 0.975786 + -0.224855, -0.000000, 0.000000, 0.974392 + -0.230975, -0.000000, 0.000000, 0.972960 + -0.237085, -0.000000, 0.000000, 0.971489 + -0.243187, -0.000000, 0.000000, 0.969980 + -0.249278, -0.000000, 0.000000, 0.968432 + -0.255360, -0.000000, 0.000000, 0.966846 + -0.261432, -0.000000, 0.000000, 0.965222 + -0.267494, -0.000000, 0.000000, 0.963560 + -0.273544, -0.000000, 0.000000, 0.961859 + -0.279585, -0.000000, 0.000000, 0.960121 + -0.285614, -0.000000, 0.000000, 0.958345 + -0.291631, -0.000000, 0.000000, 0.956531 + -0.297638, -0.000000, 0.000000, 0.954679 + -0.303632, -0.000000, 0.000000, 0.952789 + -0.309615, -0.000000, 0.000000, 0.950862 + -0.315585, -0.000000, 0.000000, 0.948897 + -0.321543, -0.000000, 0.000000, 0.946895 + -0.327488, -0.000000, 0.000000, 0.944855 + -0.333420, -0.000000, 0.000000, 0.942778 + -0.339339, -0.000000, 0.000000, 0.940664 + -0.345245, -0.000000, 0.000000, 0.938513 + -0.351137, -0.000000, 0.000000, 0.936324 + -0.357015, -0.000000, 0.000000, 0.934099 + -0.362879, -0.000000, 0.000000, 0.931836 + -0.368728, -0.000000, 0.000000, 0.929537 + -0.374563, -0.000000, 0.000000, 0.927201 + -0.380384, -0.000000, 0.000000, 0.924829 + -0.386189, -0.000000, 0.000000, 0.922420 + -0.391979, -0.000000, 0.000000, 0.919974 + -0.397753, -0.000000, 0.000000, 0.917492 + -0.403512, -0.000000, 0.000000, 0.914974 + -0.409255, -0.000000, 0.000000, 0.912420 + -0.414982, -0.000000, 0.000000, 0.909830 + -0.420692, -0.000000, 0.000000, 0.907203 + -0.426386, -0.000000, 0.000000, 0.904541 + -0.432063, -0.000000, 0.000000, 0.901844 + -0.437722, -0.000000, 0.000000, 0.899110 + -0.443365, -0.000000, 0.000000, 0.896341 + -0.448990, -0.000000, 0.000000, 0.893537 + -0.454597, -0.000000, 0.000000, 0.890697 + -0.460186, -0.000000, 0.000000, 0.887822 + -0.465757, -0.000000, 0.000000, 0.884912 + -0.471310, -0.000000, 0.000000, 0.881968 + -0.476844, -0.000000, 0.000000, 0.878988 + -0.482359, -0.000000, 0.000000, 0.875973 + -0.487856, -0.000000, 0.000000, 0.872924 + -0.493332, -0.000000, 0.000000, 0.869841 + -0.498790, -0.000000, 0.000000, 0.866723 + -0.504228, -0.000000, 0.000000, 0.863571 + -0.509645, -0.000000, 0.000000, 0.860385 + -0.515043, -0.000000, 0.000000, 0.857164 + -0.520420, -0.000000, 0.000000, 0.853910 + -0.525777, -0.000000, 0.000000, 0.850622 + -0.531113, -0.000000, 0.000000, 0.847301 + -0.536428, -0.000000, 0.000000, 0.843946 + -0.541722, -0.000000, 0.000000, 0.840558 + -0.546994, -0.000000, 0.000000, 0.837136 + -0.552245, -0.000000, 0.000000, 0.833682 + -0.557474, -0.000000, 0.000000, 0.830194 + -0.562681, -0.000000, 0.000000, 0.826674 + -0.567866, -0.000000, 0.000000, 0.823121 + -0.573028, -0.000000, 0.000000, 0.819536 + -0.578168, -0.000000, 0.000000, 0.815918 + -0.583285, -0.000000, 0.000000, 0.812268 + -0.588378, -0.000000, 0.000000, 0.808586 + -0.593449, -0.000000, 0.000000, 0.804872 + -0.598496, -0.000000, 0.000000, 0.801126 + -0.603519, -0.000000, 0.000000, 0.797348 + -0.608519, -0.000000, 0.000000, 0.793539 + -0.613495, -0.000000, 0.000000, 0.789699 + -0.618446, -0.000000, 0.000000, 0.785827 + -0.623373, -0.000000, 0.000000, 0.781925 + -0.628275, -0.000000, 0.000000, 0.777991 + -0.633153, -0.000000, 0.000000, 0.774027 + -0.638005, -0.000000, 0.000000, 0.770032 + -0.642832, -0.000000, 0.000000, 0.766007 + -0.647634, -0.000000, 0.000000, 0.761952 + -0.652410, -0.000000, 0.000000, 0.757866 + -0.657161, -0.000000, 0.000000, 0.753750 + -0.661885, -0.000000, 0.000000, 0.749605 + -0.666584, -0.000000, 0.000000, 0.745430 + -0.671256, -0.000000, 0.000000, 0.741226 + -0.675901, -0.000000, 0.000000, 0.736992 + -0.680520, -0.000000, 0.000000, 0.732729 + -0.685112, -0.000000, 0.000000, 0.728438 + -0.689677, -0.000000, 0.000000, 0.724117 + -0.694214, -0.000000, 0.000000, 0.719768 + -0.698725, -0.000000, 0.000000, 0.715391 + -0.703207, -0.000000, 0.000000, 0.710985 + -0.707662, -0.000000, 0.000000, 0.706551 + -0.712089, -0.000000, 0.000000, 0.702089 + -0.716488, -0.000000, 0.000000, 0.697600 + -0.720858, -0.000000, 0.000000, 0.693083 + -0.725200, -0.000000, 0.000000, 0.688538 + -0.729513, -0.000000, 0.000000, 0.683967 + -0.733798, -0.000000, 0.000000, 0.679368 + -0.738053, -0.000000, 0.000000, 0.674742 + -0.742280, -0.000000, 0.000000, 0.670090 + -0.746477, -0.000000, 0.000000, 0.665412 + -0.750644, -0.000000, 0.000000, 0.660707 + -0.754782, -0.000000, 0.000000, 0.655976 + -0.758890, -0.000000, 0.000000, 0.651219 + -0.762968, -0.000000, 0.000000, 0.646436 + -0.767016, -0.000000, 0.000000, 0.641628 + -0.771034, -0.000000, 0.000000, 0.636794 + -0.775021, -0.000000, 0.000000, 0.631935 + -0.778978, -0.000000, 0.000000, 0.627052 + -0.782903, -0.000000, 0.000000, 0.622143 + -0.786798, -0.000000, 0.000000, 0.617210 + -0.790662, -0.000000, 0.000000, 0.612253 + -0.794494, -0.000000, 0.000000, 0.607271 + -0.798296, -0.000000, 0.000000, 0.602266 + -0.802065, -0.000000, 0.000000, 0.597236 + -0.805803, -0.000000, 0.000000, 0.592183 + -0.809509, -0.000000, 0.000000, 0.587107 + -0.813183, -0.000000, 0.000000, 0.582008 + -0.816825, -0.000000, 0.000000, 0.576885 + -0.820435, -0.000000, 0.000000, 0.571740 + -0.824012, -0.000000, 0.000000, 0.566572 + -0.827557, -0.000000, 0.000000, 0.561381 + -0.831069, -0.000000, 0.000000, 0.556169 + -0.834549, -0.000000, 0.000000, 0.550934 + -0.837995, -0.000000, 0.000000, 0.545678 + -0.841408, -0.000000, 0.000000, 0.540400 + -0.844788, -0.000000, 0.000000, 0.535101 + -0.848134, -0.000000, 0.000000, 0.529781 + -0.851447, -0.000000, 0.000000, 0.524440 + -0.854727, -0.000000, 0.000000, 0.519078 + -0.857973, -0.000000, 0.000000, 0.513696 + -0.861184, -0.000000, 0.000000, 0.508293 + -0.864362, -0.000000, 0.000000, 0.502870 + -0.867506, -0.000000, 0.000000, 0.497427 + -0.870615, -0.000000, 0.000000, 0.491965 + -0.873690, -0.000000, 0.000000, 0.486483 + -0.876730, -0.000000, 0.000000, 0.480982 + -0.879736, -0.000000, 0.000000, 0.475462 + -0.882707, -0.000000, 0.000000, 0.469924 + -0.885643, -0.000000, 0.000000, 0.464366 + -0.888544, -0.000000, 0.000000, 0.458791 + -0.891410, -0.000000, 0.000000, 0.453197 + -0.894241, -0.000000, 0.000000, 0.447585 + -0.897037, -0.000000, 0.000000, 0.441956 + -0.899797, -0.000000, 0.000000, 0.436309 + -0.902521, -0.000000, 0.000000, 0.430645 + -0.905210, -0.000000, 0.000000, 0.424964 + -0.907863, -0.000000, 0.000000, 0.419266 + -0.910481, -0.000000, 0.000000, 0.413552 + -0.913062, -0.000000, 0.000000, 0.407821 + -0.915607, -0.000000, 0.000000, 0.402074 + -0.918116, -0.000000, 0.000000, 0.396311 + -0.920589, -0.000000, 0.000000, 0.390533 + -0.923025, -0.000000, 0.000000, 0.384739 + -0.925425, -0.000000, 0.000000, 0.378930 + -0.927789, -0.000000, 0.000000, 0.373106 + -0.930115, -0.000000, 0.000000, 0.367267 + -0.932405, -0.000000, 0.000000, 0.361414 + -0.934659, -0.000000, 0.000000, 0.355547 + -0.936875, -0.000000, 0.000000, 0.349665 + -0.939054, -0.000000, 0.000000, 0.343770 + -0.941196, -0.000000, 0.000000, 0.337861 + -0.943301, -0.000000, 0.000000, 0.331938 + -0.945369, -0.000000, 0.000000, 0.326003 + -0.947399, -0.000000, 0.000000, 0.320055 + -0.949392, -0.000000, 0.000000, 0.314094 + -0.951347, -0.000000, 0.000000, 0.308120 + -0.953265, -0.000000, 0.000000, 0.302135 + -0.955145, -0.000000, 0.000000, 0.296137 + -0.956988, -0.000000, 0.000000, 0.290128 + -0.958792, -0.000000, 0.000000, 0.284107 + -0.960559, -0.000000, 0.000000, 0.278076 + -0.962288, -0.000000, 0.000000, 0.272033 + -0.963979, -0.000000, 0.000000, 0.265979 + -0.965631, -0.000000, 0.000000, 0.259915 + -0.967246, -0.000000, 0.000000, 0.253841 + -0.968822, -0.000000, 0.000000, 0.247756 + -0.970360, -0.000000, 0.000000, 0.241662 + -0.971860, -0.000000, 0.000000, 0.235558 + -0.973322, -0.000000, 0.000000, 0.229445 + -0.974744, -0.000000, 0.000000, 0.223323 + -0.976129, -0.000000, 0.000000, 0.217192 + -0.977475, -0.000000, 0.000000, 0.211053 + -0.978782, -0.000000, 0.000000, 0.204905 + -0.980050, -0.000000, 0.000000, 0.198749 + -0.981280, -0.000000, 0.000000, 0.192585 + -0.982471, -0.000000, 0.000000, 0.186414 + -0.983624, -0.000000, 0.000000, 0.180235 + -0.984737, -0.000000, 0.000000, 0.174049 + -0.985811, -0.000000, 0.000000, 0.167857 + -0.986847, -0.000000, 0.000000, 0.161657 + -0.987844, -0.000000, 0.000000, 0.155451 + -0.988801, -0.000000, 0.000000, 0.149240 + -0.989720, -0.000000, 0.000000, 0.143022 + -0.990599, -0.000000, 0.000000, 0.136798 + -0.991439, -0.000000, 0.000000, 0.130569 + -0.992240, -0.000000, 0.000000, 0.124335 + -0.993002, -0.000000, 0.000000, 0.118097 + -0.993725, -0.000000, 0.000000, 0.111853 + -0.994408, -0.000000, 0.000000, 0.105605 + -0.995052, -0.000000, 0.000000, 0.099353 + -0.995657, -0.000000, 0.000000, 0.093097 + -0.996223, -0.000000, 0.000000, 0.086837 + -0.996749, -0.000000, 0.000000, 0.080574 + -0.997235, -0.000000, 0.000000, 0.074307 + -0.997683, -0.000000, 0.000000, 0.068038 + -0.998091, -0.000000, 0.000000, 0.061766 + -0.998459, -0.000000, 0.000000, 0.055491 + -0.998788, -0.000000, 0.000000, 0.049215 + -0.999078, -0.000000, 0.000000, 0.042936 + -0.999328, -0.000000, 0.000000, 0.036656 + -0.999539, -0.000000, 0.000000, 0.030374 + -0.999710, -0.000000, 0.000000, 0.024091 + -0.999841, -0.000000, 0.000000, 0.017807 + -0.999934, -0.000000, 0.000000, 0.011523 + -0.999986, -0.000000, 0.000000, 0.005238 + -0.999999, 0.000000, -0.000000, -0.001048 + -0.999973, 0.000000, -0.000000, -0.007333 + -0.999907, 0.000000, -0.000000, -0.013618 + -0.999802, 0.000000, -0.000000, -0.019902 + -0.999657, 0.000000, -0.000000, -0.026186 + -0.999473, 0.000000, -0.000000, -0.032468 + -0.999249, 0.000000, -0.000000, -0.038750 + -0.998986, 0.000000, -0.000000, -0.045029 + -0.998683, 0.000000, -0.000000, -0.051307 + -0.998341, 0.000000, -0.000000, -0.057583 + -0.997959, 0.000000, -0.000000, -0.063857 + -0.997538, 0.000000, -0.000000, -0.070128 + -0.997078, 0.000000, -0.000000, -0.076396 + -0.996578, 0.000000, -0.000000, -0.082662 + -0.996038, 0.000000, -0.000000, -0.088924 + -0.995460, 0.000000, -0.000000, -0.095182 + -0.994842, 0.000000, -0.000000, -0.101437 + -0.994185, 0.000000, -0.000000, -0.107688 + -0.993488, 0.000000, -0.000000, -0.113935 + -0.992753, 0.000000, -0.000000, -0.120177 + -0.991978, 0.000000, -0.000000, -0.126414 + -0.991163, 0.000000, -0.000000, -0.132646 + -0.990310, 0.000000, -0.000000, -0.138873 + -0.989418, 0.000000, -0.000000, -0.145095 + -0.988486, 0.000000, -0.000000, -0.151311 + -0.987516, 0.000000, -0.000000, -0.157521 + -0.986506, 0.000000, -0.000000, -0.163724 + -0.985458, 0.000000, -0.000000, -0.169922 + -0.984370, 0.000000, -0.000000, -0.176112 + -0.983244, 0.000000, -0.000000, -0.182296 + -0.982079, 0.000000, -0.000000, -0.188472 + -0.980875, 0.000000, -0.000000, -0.194641 + -0.979632, 0.000000, -0.000000, -0.200802 + -0.978350, 0.000000, -0.000000, -0.206955 + -0.977030, 0.000000, -0.000000, -0.213100 + -0.975672, 0.000000, -0.000000, -0.219237 + -0.974274, 0.000000, -0.000000, -0.225365 + -0.972839, 0.000000, -0.000000, -0.231484 + -0.971365, 0.000000, -0.000000, -0.237594 + -0.969852, 0.000000, -0.000000, -0.243695 + -0.968301, 0.000000, -0.000000, -0.249786 + -0.966712, 0.000000, -0.000000, -0.255867 + -0.965085, 0.000000, -0.000000, -0.261938 + -0.963419, 0.000000, -0.000000, -0.267998 + -0.961716, 0.000000, -0.000000, -0.274048 + -0.959975, 0.000000, -0.000000, -0.280087 + -0.958195, 0.000000, -0.000000, -0.286116 + -0.956378, 0.000000, -0.000000, -0.292132 + -0.954523, 0.000000, -0.000000, -0.298138 + -0.952630, 0.000000, -0.000000, -0.304131 + -0.950700, 0.000000, -0.000000, -0.310113 + -0.948732, 0.000000, -0.000000, -0.316082 + -0.946727, 0.000000, -0.000000, -0.322039 + -0.944684, 0.000000, -0.000000, -0.327983 + -0.942604, 0.000000, -0.000000, -0.333914 + -0.940486, 0.000000, -0.000000, -0.339832 + -0.938332, 0.000000, -0.000000, -0.345736 + -0.936140, 0.000000, -0.000000, -0.351627 + -0.933912, 0.000000, -0.000000, -0.357504 + -0.931646, 0.000000, -0.000000, -0.363367 + -0.929344, 0.000000, -0.000000, -0.369215 + -0.927005, 0.000000, -0.000000, -0.375049 + -0.924629, 0.000000, -0.000000, -0.380868 + -0.922217, 0.000000, -0.000000, -0.386672 + -0.919769, 0.000000, -0.000000, -0.392461 + -0.917284, 0.000000, -0.000000, -0.398234 + -0.914763, 0.000000, -0.000000, -0.403991 + -0.912206, 0.000000, -0.000000, -0.409733 + -0.909612, 0.000000, -0.000000, -0.415458 + -0.906983, 0.000000, -0.000000, -0.421167 + -0.904318, 0.000000, -0.000000, -0.426860 + -0.901617, 0.000000, -0.000000, -0.432535 + -0.898881, 0.000000, -0.000000, -0.438193 + -0.896109, 0.000000, -0.000000, -0.443834 + -0.893302, 0.000000, -0.000000, -0.449458 + -0.890459, 0.000000, -0.000000, -0.455064 + -0.887581, 0.000000, -0.000000, -0.460651 + -0.884668, 0.000000, -0.000000, -0.466221 + -0.881721, 0.000000, -0.000000, -0.471772 + -0.878738, 0.000000, -0.000000, -0.477305 + -0.875721, 0.000000, -0.000000, -0.482818 + -0.872669, 0.000000, -0.000000, -0.488313 + -0.869582, 0.000000, -0.000000, -0.493788 + -0.866462, 0.000000, -0.000000, -0.499244 + -0.863307, 0.000000, -0.000000, -0.504680 + -0.860117, 0.000000, -0.000000, -0.510096 + -0.856894, 0.000000, -0.000000, -0.515492 + -0.853638, 0.000000, -0.000000, -0.520868 + -0.850347, 0.000000, -0.000000, -0.526223 + -0.847023, 0.000000, -0.000000, -0.531557 + -0.843665, 0.000000, -0.000000, -0.536870 + -0.840274, 0.000000, -0.000000, -0.542162 + -0.836850, 0.000000, -0.000000, -0.547433 + -0.833392, 0.000000, -0.000000, -0.552682 + -0.829902, 0.000000, -0.000000, -0.557909 + -0.826379, 0.000000, -0.000000, -0.563114 + -0.822824, 0.000000, -0.000000, -0.568297 + -0.819235, 0.000000, -0.000000, -0.573457 + -0.815615, 0.000000, -0.000000, -0.578595 + -0.811962, 0.000000, -0.000000, -0.583710 + -0.808277, 0.000000, -0.000000, -0.588802 + -0.804561, 0.000000, -0.000000, -0.593870 + -0.800812, 0.000000, -0.000000, -0.598915 + -0.797032, 0.000000, -0.000000, -0.603937 + -0.793220, 0.000000, -0.000000, -0.608935 + -0.789377, 0.000000, -0.000000, -0.613908 + -0.785503, 0.000000, -0.000000, -0.618857 + -0.781598, 0.000000, -0.000000, -0.623782 + -0.777662, 0.000000, -0.000000, -0.628682 + -0.773695, 0.000000, -0.000000, -0.633558 + -0.769698, 0.000000, -0.000000, -0.638408 + -0.765670, 0.000000, -0.000000, -0.643233 + -0.761612, 0.000000, -0.000000, -0.648033 + -0.757524, 0.000000, -0.000000, -0.652807 + -0.753406, 0.000000, -0.000000, -0.657555 + -0.749258, 0.000000, -0.000000, -0.662278 + -0.745081, 0.000000, -0.000000, -0.666974 + -0.740874, 0.000000, -0.000000, -0.671644 + -0.736638, 0.000000, -0.000000, -0.676287 + -0.732373, 0.000000, -0.000000, -0.680904 + -0.728079, 0.000000, -0.000000, -0.685493 + -0.723756, 0.000000, -0.000000, -0.690056 + -0.719404, 0.000000, -0.000000, -0.694591 + -0.715025, 0.000000, -0.000000, -0.699099 + -0.710616, 0.000000, -0.000000, -0.703580 + -0.706180, 0.000000, -0.000000, -0.708032 + -0.701716, 0.000000, -0.000000, -0.712457 + -0.697224, 0.000000, -0.000000, -0.716853 + -0.692705, 0.000000, -0.000000, -0.721221 + -0.688158, 0.000000, -0.000000, -0.725561 + -0.683584, 0.000000, -0.000000, -0.729872 + -0.678983, 0.000000, -0.000000, -0.734154 + -0.674356, 0.000000, -0.000000, -0.738407 + -0.669701, 0.000000, -0.000000, -0.742631 + -0.665020, 0.000000, -0.000000, -0.746825 + -0.660313, 0.000000, -0.000000, -0.750990 + -0.655580, 0.000000, -0.000000, -0.755126 + -0.650821, 0.000000, -0.000000, -0.759231 + -0.646036, 0.000000, -0.000000, -0.763307 + -0.641226, 0.000000, -0.000000, -0.767352 + -0.636390, 0.000000, -0.000000, -0.771367 + -0.631529, 0.000000, -0.000000, -0.775352 + -0.626644, 0.000000, -0.000000, -0.779306 + -0.621733, 0.000000, -0.000000, -0.783229 + -0.616798, 0.000000, -0.000000, -0.787121 + -0.611839, 0.000000, -0.000000, -0.790983 + -0.606855, 0.000000, -0.000000, -0.794812 + -0.601848, 0.000000, -0.000000, -0.798611 + -0.596816, 0.000000, -0.000000, -0.802378 + -0.591761, 0.000000, -0.000000, -0.806113 + -0.586683, 0.000000, -0.000000, -0.809817 + -0.581581, 0.000000, -0.000000, -0.813488 + -0.576457, 0.000000, -0.000000, -0.817127 + -0.571310, 0.000000, -0.000000, -0.820734 + -0.566140, 0.000000, -0.000000, -0.824309 + -0.560948, 0.000000, -0.000000, -0.827851 + -0.555734, 0.000000, -0.000000, -0.831360 + -0.550497, 0.000000, -0.000000, -0.834837 + -0.545239, 0.000000, -0.000000, -0.838280 + -0.539960, 0.000000, -0.000000, -0.841691 + -0.534659, 0.000000, -0.000000, -0.845068 + -0.529337, 0.000000, -0.000000, -0.848412 + -0.523994, 0.000000, -0.000000, -0.851722 + -0.518630, 0.000000, -0.000000, -0.854999 + -0.513246, 0.000000, -0.000000, -0.858241 + -0.507842, 0.000000, -0.000000, -0.861450 + -0.502417, 0.000000, -0.000000, -0.864625 + -0.496973, 0.000000, -0.000000, -0.867766 + -0.491509, 0.000000, -0.000000, -0.870872 + -0.486026, 0.000000, -0.000000, -0.873945 + -0.480523, 0.000000, -0.000000, -0.876982 + -0.475002, 0.000000, -0.000000, -0.879985 + -0.469461, 0.000000, -0.000000, -0.882953 + -0.463902, 0.000000, -0.000000, -0.885886 + -0.458325, 0.000000, -0.000000, -0.888785 + -0.452730, 0.000000, -0.000000, -0.891648 + -0.447117, 0.000000, -0.000000, -0.894476 + -0.441486, 0.000000, -0.000000, -0.897268 + -0.435838, 0.000000, -0.000000, -0.900025 + -0.430172, 0.000000, -0.000000, -0.902747 + -0.424490, 0.000000, -0.000000, -0.905433 + -0.418791, 0.000000, -0.000000, -0.908083 + -0.413075, 0.000000, -0.000000, -0.910697 + -0.407343, 0.000000, -0.000000, -0.913275 + -0.401594, 0.000000, -0.000000, -0.915818 + -0.395830, 0.000000, -0.000000, -0.918324 + -0.390051, 0.000000, -0.000000, -0.920793 + -0.384256, 0.000000, -0.000000, -0.923227 + -0.378445, 0.000000, -0.000000, -0.925624 + -0.372620, 0.000000, -0.000000, -0.927984 + -0.366780, 0.000000, -0.000000, -0.930308 + -0.360926, 0.000000, -0.000000, -0.932595 + -0.355057, 0.000000, -0.000000, -0.934845 + -0.349174, 0.000000, -0.000000, -0.937058 + -0.343278, 0.000000, -0.000000, -0.939234 + -0.337368, 0.000000, -0.000000, -0.941373 + -0.331444, 0.000000, -0.000000, -0.943475 + -0.325508, 0.000000, -0.000000, -0.945539 + -0.319558, 0.000000, -0.000000, -0.947567 + -0.313596, 0.000000, -0.000000, -0.949556 + -0.307622, 0.000000, -0.000000, -0.951509 + -0.301635, 0.000000, -0.000000, -0.953423 + -0.295637, 0.000000, -0.000000, -0.955300 + -0.289627, 0.000000, -0.000000, -0.957140 + -0.283605, 0.000000, -0.000000, -0.958941 + -0.277572, 0.000000, -0.000000, -0.960705 + -0.271529, 0.000000, -0.000000, -0.962430 + -0.265474, 0.000000, -0.000000, -0.964118 + -0.259409, 0.000000, -0.000000, -0.965767 + -0.253334, 0.000000, -0.000000, -0.967379 + -0.247249, 0.000000, -0.000000, -0.968952 + -0.241154, 0.000000, -0.000000, -0.970487 + -0.235049, 0.000000, -0.000000, -0.971983 + -0.228936, 0.000000, -0.000000, -0.973442 + -0.222813, 0.000000, -0.000000, -0.974861 + -0.216681, 0.000000, -0.000000, -0.976242 + -0.210541, 0.000000, -0.000000, -0.977585 + -0.204392, 0.000000, -0.000000, -0.978889 + -0.198236, 0.000000, -0.000000, -0.980154 + -0.192071, 0.000000, -0.000000, -0.981381 + -0.185899, 0.000000, -0.000000, -0.982569 + -0.179720, 0.000000, -0.000000, -0.983718 + -0.173534, 0.000000, -0.000000, -0.984828 + -0.167340, 0.000000, -0.000000, -0.985899 + -0.161140, 0.000000, -0.000000, -0.986932 + -0.154934, 0.000000, -0.000000, -0.987925 + -0.148722, 0.000000, -0.000000, -0.988879 + -0.142503, 0.000000, -0.000000, -0.989794 + -0.136279, 0.000000, -0.000000, -0.990670 + -0.130050, 0.000000, -0.000000, -0.991507 + -0.123816, 0.000000, -0.000000, -0.992305 + -0.117576, 0.000000, -0.000000, -0.993064 + -0.111332, 0.000000, -0.000000, -0.993783 + -0.105084, 0.000000, -0.000000, -0.994463 + -0.098832, 0.000000, -0.000000, -0.995104 + -0.092575, 0.000000, -0.000000, -0.995706 + -0.086315, 0.000000, -0.000000, -0.996268 + -0.080052, 0.000000, -0.000000, -0.996791 + -0.073785, 0.000000, -0.000000, -0.997274 + -0.067515, 0.000000, -0.000000, -0.997718 + -0.061243, 0.000000, -0.000000, -0.998123 + -0.054968, 0.000000, -0.000000, -0.998488 + -0.048692, 0.000000, -0.000000, -0.998814 + -0.042413, 0.000000, -0.000000, -0.999100 + -0.036132, 0.000000, -0.000000, -0.999347 + -0.029851, 0.000000, -0.000000, -0.999554 + -0.023568, 0.000000, -0.000000, -0.999722 + -0.017284, 0.000000, -0.000000, -0.999851 + -0.010999, 0.000000, -0.000000, -0.999940 + -0.004714, 0.000000, -0.000000, -0.999989 + 0.001571, 0.000000, 0.000000, -0.999999 + 0.007857, 0.000000, 0.000000, -0.999969 + 0.014141, 0.000000, 0.000000, -0.999900 + 0.020426, 0.000000, 0.000000, -0.999791 + 0.026709, 0.000000, 0.000000, -0.999643 + 0.032992, 0.000000, 0.000000, -0.999456 + 0.039273, 0.000000, 0.000000, -0.999229 + 0.045553, 0.000000, 0.000000, -0.998962 + 0.051830, 0.000000, 0.000000, -0.998656 + 0.058106, 0.000000, 0.000000, -0.998310 + 0.064380, 0.000000, 0.000000, -0.997925 + 0.070650, 0.000000, 0.000000, -0.997501 + 0.076919, 0.000000, 0.000000, -0.997037 + 0.083184, 0.000000, 0.000000, -0.996534 + 0.089446, 0.000000, 0.000000, -0.995992 + 0.095704, 0.000000, 0.000000, -0.995410 + 0.101958, 0.000000, 0.000000, -0.994789 + 0.108209, 0.000000, 0.000000, -0.994128 + 0.114455, 0.000000, 0.000000, -0.993428 + 0.120697, 0.000000, 0.000000, -0.992689 + 0.126934, 0.000000, 0.000000, -0.991911 + 0.133165, 0.000000, 0.000000, -0.991094 + 0.139392, 0.000000, 0.000000, -0.990237 + 0.145613, 0.000000, 0.000000, -0.989342 + 0.151829, 0.000000, 0.000000, -0.988407 + 0.158038, 0.000000, 0.000000, -0.987433 + 0.164241, 0.000000, 0.000000, -0.986420 + 0.170438, 0.000000, 0.000000, -0.985368 + 0.176628, 0.000000, 0.000000, -0.984278 + 0.182811, 0.000000, 0.000000, -0.983148 + 0.188986, 0.000000, 0.000000, -0.981980 + 0.195155, 0.000000, 0.000000, -0.980773 + 0.201315, 0.000000, 0.000000, -0.979527 + 0.207468, 0.000000, 0.000000, -0.978242 + 0.213612, 0.000000, 0.000000, -0.976919 + 0.219748, 0.000000, 0.000000, -0.975557 + 0.225875, 0.000000, 0.000000, -0.974156 + 0.231994, 0.000000, 0.000000, -0.972717 + 0.238103, 0.000000, 0.000000, -0.971240 + 0.244203, 0.000000, 0.000000, -0.969724 + 0.250293, 0.000000, 0.000000, -0.968170 + 0.256373, 0.000000, 0.000000, -0.966578 + 0.262443, 0.000000, 0.000000, -0.964947 + 0.268503, 0.000000, 0.000000, -0.963279 + 0.274552, 0.000000, 0.000000, -0.961572 + 0.280590, 0.000000, 0.000000, -0.959828 + 0.286617, 0.000000, 0.000000, -0.958045 + 0.292633, 0.000000, 0.000000, -0.956225 + 0.298638, 0.000000, 0.000000, -0.954367 + 0.304630, 0.000000, 0.000000, -0.952471 + 0.310611, 0.000000, 0.000000, -0.950537 + 0.316579, 0.000000, 0.000000, -0.948566 + 0.322535, 0.000000, 0.000000, -0.946558 + 0.328478, 0.000000, 0.000000, -0.944512 + 0.334407, 0.000000, 0.000000, -0.942429 + 0.340324, 0.000000, 0.000000, -0.940308 + 0.346228, 0.000000, 0.000000, -0.938151 + 0.352117, 0.000000, 0.000000, -0.935956 + 0.357993, 0.000000, 0.000000, -0.933724 + 0.363855, 0.000000, 0.000000, -0.931456 + 0.369702, 0.000000, 0.000000, -0.929150 + 0.375535, 0.000000, 0.000000, -0.926808 + 0.381352, 0.000000, 0.000000, -0.924430 + 0.387155, 0.000000, 0.000000, -0.922015 + 0.392942, 0.000000, 0.000000, -0.919563 + 0.398714, 0.000000, 0.000000, -0.917075 + 0.404471, 0.000000, 0.000000, -0.914551 + 0.410211, 0.000000, 0.000000, -0.911991 + 0.415935, 0.000000, 0.000000, -0.909394 + 0.421642, 0.000000, 0.000000, -0.906762 + 0.427333, 0.000000, 0.000000, -0.904094 + 0.433007, 0.000000, 0.000000, -0.901390 + 0.438664, 0.000000, 0.000000, -0.898651 + 0.444304, 0.000000, 0.000000, -0.895876 + 0.449926, 0.000000, 0.000000, -0.893066 + 0.455530, 0.000000, 0.000000, -0.890220 + 0.461116, 0.000000, 0.000000, -0.887340 + 0.466684, 0.000000, 0.000000, -0.884424 + 0.472234, 0.000000, 0.000000, -0.881473 + 0.477765, 0.000000, 0.000000, -0.878488 + 0.483277, 0.000000, 0.000000, -0.875468 + 0.488770, 0.000000, 0.000000, -0.872413 + 0.494243, 0.000000, 0.000000, -0.869324 + 0.499698, 0.000000, 0.000000, -0.866200 + 0.505132, 0.000000, 0.000000, -0.863042 + 0.510546, 0.000000, 0.000000, -0.859850 + 0.515941, 0.000000, 0.000000, -0.856624 + 0.521315, 0.000000, 0.000000, -0.853365 + 0.526668, 0.000000, 0.000000, -0.850071 + 0.532000, 0.000000, 0.000000, -0.846744 + 0.537312, 0.000000, 0.000000, -0.843384 + 0.542602, 0.000000, 0.000000, -0.839990 + 0.547871, 0.000000, 0.000000, -0.836563 + 0.553118, 0.000000, 0.000000, -0.833103 + 0.558343, 0.000000, 0.000000, -0.829610 + 0.563547, 0.000000, 0.000000, -0.826084 + 0.568728, 0.000000, 0.000000, -0.822526 + 0.573886, 0.000000, 0.000000, -0.818935 + 0.579022, 0.000000, 0.000000, -0.815312 + 0.584135, 0.000000, 0.000000, -0.811656 + 0.589225, 0.000000, 0.000000, -0.807969 + 0.594292, 0.000000, 0.000000, -0.804250 + 0.599335, 0.000000, 0.000000, -0.800498 + 0.604354, 0.000000, 0.000000, -0.796716 + 0.609350, 0.000000, 0.000000, -0.792901 + 0.614321, 0.000000, 0.000000, -0.789056 + 0.619269, 0.000000, 0.000000, -0.785179 + 0.624192, 0.000000, 0.000000, -0.781271 + 0.629090, 0.000000, 0.000000, -0.777333 + 0.633963, 0.000000, 0.000000, -0.773363 + 0.638811, 0.000000, 0.000000, -0.769363 + 0.643634, 0.000000, 0.000000, -0.765333 + 0.648432, 0.000000, 0.000000, -0.761273 + 0.653204, 0.000000, 0.000000, -0.757182 + 0.657950, 0.000000, 0.000000, -0.753062 + 0.662670, 0.000000, 0.000000, -0.748911 + 0.667364, 0.000000, 0.000000, -0.744732 + 0.672032, 0.000000, 0.000000, -0.740522 + 0.676673, 0.000000, 0.000000, -0.736284 + 0.681287, 0.000000, 0.000000, -0.732016 + 0.685875, 0.000000, 0.000000, -0.727720 + 0.690435, 0.000000, 0.000000, -0.723394 + 0.694968, 0.000000, 0.000000, -0.719041 + 0.699474, 0.000000, 0.000000, -0.714658 + 0.703952, 0.000000, 0.000000, -0.710248 + 0.708402, 0.000000, 0.000000, -0.705809 + 0.712824, 0.000000, 0.000000, -0.701343 + 0.717218, 0.000000, 0.000000, -0.696849 + 0.721584, 0.000000, 0.000000, -0.692327 + 0.725921, 0.000000, 0.000000, -0.687778 + 0.730229, 0.000000, 0.000000, -0.683202 + 0.734509, 0.000000, 0.000000, -0.678599 + 0.738760, 0.000000, 0.000000, -0.673969 + 0.742981, 0.000000, 0.000000, -0.669312 + 0.747173, 0.000000, 0.000000, -0.664629 + 0.751336, 0.000000, 0.000000, -0.659920 + 0.755469, 0.000000, 0.000000, -0.655185 + 0.759572, 0.000000, 0.000000, -0.650423 + 0.763645, 0.000000, 0.000000, -0.645636 + 0.767688, 0.000000, 0.000000, -0.640824 + 0.771700, 0.000000, 0.000000, -0.635986 + 0.775683, 0.000000, 0.000000, -0.631123 + 0.779634, 0.000000, 0.000000, -0.626235 + 0.783555, 0.000000, 0.000000, -0.621323 + 0.787444, 0.000000, 0.000000, -0.616386 + 0.791303, 0.000000, 0.000000, -0.611424 + 0.795130, 0.000000, 0.000000, -0.606439 + 0.798926, 0.000000, 0.000000, -0.601429 + 0.802690, 0.000000, 0.000000, -0.596396 + 0.806423, 0.000000, 0.000000, -0.591339 + 0.810124, 0.000000, 0.000000, -0.586259 + 0.813793, 0.000000, 0.000000, -0.581155 + 0.817429, 0.000000, 0.000000, -0.576029 + 0.821034, 0.000000, 0.000000, -0.570880 + 0.824606, 0.000000, 0.000000, -0.565708 + 0.828145, 0.000000, 0.000000, -0.560514 + 0.831651, 0.000000, 0.000000, -0.555298 + 0.835125, 0.000000, 0.000000, -0.550060 + 0.838566, 0.000000, 0.000000, -0.544800 + 0.841974, 0.000000, 0.000000, -0.539519 + 0.845348, 0.000000, 0.000000, -0.534216 + 0.848689, 0.000000, 0.000000, -0.528892 + 0.851996, 0.000000, 0.000000, -0.523548 + 0.855270, 0.000000, 0.000000, -0.518182 + 0.858510, 0.000000, 0.000000, -0.512797 + 0.861716, 0.000000, 0.000000, -0.507390 + 0.864888, 0.000000, 0.000000, -0.501964 + 0.868026, 0.000000, 0.000000, -0.496518 + 0.871130, 0.000000, 0.000000, -0.491053 + 0.874199, 0.000000, 0.000000, -0.485568 + 0.877234, 0.000000, 0.000000, -0.480064 + 0.880234, 0.000000, 0.000000, -0.474541 + 0.883199, 0.000000, 0.000000, -0.468999 + 0.886129, 0.000000, 0.000000, -0.463438 + 0.889024, 0.000000, 0.000000, -0.457860 + 0.891885, 0.000000, 0.000000, -0.452263 + 0.894710, 0.000000, 0.000000, -0.446648 + 0.897499, 0.000000, 0.000000, -0.441016 + 0.900253, 0.000000, 0.000000, -0.435366 + 0.902972, 0.000000, 0.000000, -0.429699 + 0.905655, 0.000000, 0.000000, -0.424015 + 0.908302, 0.000000, 0.000000, -0.418315 + 0.910913, 0.000000, 0.000000, -0.412598 + 0.913489, 0.000000, 0.000000, -0.406864 + 0.916028, 0.000000, 0.000000, -0.401115 + 0.918531, 0.000000, 0.000000, -0.395349 + 0.920998, 0.000000, 0.000000, -0.389568 + 0.923428, 0.000000, 0.000000, -0.383772 + 0.925822, 0.000000, 0.000000, -0.377960 + 0.928179, 0.000000, 0.000000, -0.372134 + 0.930500, 0.000000, 0.000000, -0.366293 + 0.932784, 0.000000, 0.000000, -0.360437 + 0.935031, 0.000000, 0.000000, -0.354567 + 0.937241, 0.000000, 0.000000, -0.348683 + 0.939414, 0.000000, 0.000000, -0.342786 + 0.941550, 0.000000, 0.000000, -0.336874 + 0.943648, 0.000000, 0.000000, -0.330950 + 0.945710, 0.000000, 0.000000, -0.325012 + 0.947734, 0.000000, 0.000000, -0.319062 + 0.949721, 0.000000, 0.000000, -0.313099 + 0.951670, 0.000000, 0.000000, -0.307123 + 0.953581, 0.000000, 0.000000, -0.301136 + 0.955455, 0.000000, 0.000000, -0.295136 + 0.957291, 0.000000, 0.000000, -0.289125 + 0.959090, 0.000000, 0.000000, -0.283103 + 0.960850, 0.000000, 0.000000, -0.277069 + 0.962572, 0.000000, 0.000000, -0.271025 + 0.964257, 0.000000, 0.000000, -0.264969 + 0.965903, 0.000000, 0.000000, -0.258903 + 0.967511, 0.000000, 0.000000, -0.252827 + 0.969081, 0.000000, 0.000000, -0.246741 + 0.970613, 0.000000, 0.000000, -0.240646 + 0.972106, 0.000000, 0.000000, -0.234540 + 0.973561, 0.000000, 0.000000, -0.228426 + 0.974978, 0.000000, 0.000000, -0.222302 + 0.976356, 0.000000, 0.000000, -0.216170 + 0.977695, 0.000000, 0.000000, -0.210029 + 0.978996, 0.000000, 0.000000, -0.203880 + 0.980258, 0.000000, 0.000000, -0.197722 + 0.981481, 0.000000, 0.000000, -0.191557 + 0.982666, 0.000000, 0.000000, -0.185385 + 0.983812, 0.000000, 0.000000, -0.179205 + 0.984919, 0.000000, 0.000000, -0.173018 + 0.985987, 0.000000, 0.000000, -0.166824 + 0.987016, 0.000000, 0.000000, -0.160623 + 0.988006, 0.000000, 0.000000, -0.154417 + 0.988957, 0.000000, 0.000000, -0.148204 + 0.989869, 0.000000, 0.000000, -0.141985 + 0.990742, 0.000000, 0.000000, -0.135761 + 0.991575, 0.000000, 0.000000, -0.129531 + 0.992370, 0.000000, 0.000000, -0.123296 + 0.993125, 0.000000, 0.000000, -0.117056 + 0.993841, 0.000000, 0.000000, -0.110812 + 0.994518, 0.000000, 0.000000, -0.104563 + 0.995156, 0.000000, 0.000000, -0.098310 + 0.995754, 0.000000, 0.000000, -0.092054 + 0.996313, 0.000000, 0.000000, -0.085793 + 0.996833, 0.000000, 0.000000, -0.079529 + 0.997313, 0.000000, 0.000000, -0.073263 + 0.997753, 0.000000, 0.000000, -0.066993 + 0.998155, 0.000000, 0.000000, -0.060720 + 0.998517, 0.000000, 0.000000, -0.054445 + 0.998839, 0.000000, 0.000000, -0.048169 + 0.999122, 0.000000, 0.000000, -0.041890 + 0.999366, 0.000000, 0.000000, -0.035609 + 0.999570, 0.000000, 0.000000, -0.029327 + 0.999734, 0.000000, 0.000000, -0.023044 + 0.999860, 0.000000, 0.000000, -0.016760 + 0.999945, 0.000000, 0.000000, -0.010475 + 0.999991, 0.000000, 0.000000, -0.004190 + 0.999998, 0.000000, 0.000000, 0.002095 + 0.999965, 0.000000, 0.000000, 0.008380 + 0.999892, 0.000000, 0.000000, 0.014665 + 0.999781, 0.000000, 0.000000, 0.020949 + 0.999629, 0.000000, 0.000000, 0.027233 + 0.999438, 0.000000, 0.000000, 0.033515 + 0.999208, 0.000000, 0.000000, 0.039796 + 0.998938, 0.000000, 0.000000, 0.046076 + 0.998629, 0.000000, 0.000000, 0.052353 + 0.998280, 0.000000, 0.000000, 0.058629 + 0.997892, 0.000000, 0.000000, 0.064902 + 0.997464, 0.000000, 0.000000, 0.071173 + 0.996997, 0.000000, 0.000000, 0.077441 + 0.996491, 0.000000, 0.000000, 0.083706 + 0.995945, 0.000000, 0.000000, 0.089967 + 0.995360, 0.000000, 0.000000, 0.096225 + 0.994735, 0.000000, 0.000000, 0.102479 + 0.994071, 0.000000, 0.000000, 0.108729 + 0.993368, 0.000000, 0.000000, 0.114975 + 0.992626, 0.000000, 0.000000, 0.121217 + 0.991845, 0.000000, 0.000000, 0.127453 + 0.991024, 0.000000, 0.000000, 0.133685 + 0.990164, 0.000000, 0.000000, 0.139911 + 0.989265, 0.000000, 0.000000, 0.146131 + 0.988327, 0.000000, 0.000000, 0.152346 + 0.987350, 0.000000, 0.000000, 0.158555 + 0.986334, 0.000000, 0.000000, 0.164758 + 0.985279, 0.000000, 0.000000, 0.170954 + 0.984185, 0.000000, 0.000000, 0.177143 + 0.983052, 0.000000, 0.000000, 0.183326 + 0.981881, 0.000000, 0.000000, 0.189501 + 0.980670, 0.000000, 0.000000, 0.195668 + 0.979421, 0.000000, 0.000000, 0.201828 + 0.978133, 0.000000, 0.000000, 0.207980 + 0.976807, 0.000000, 0.000000, 0.214124 + 0.975441, 0.000000, 0.000000, 0.220259 + 0.974038, 0.000000, 0.000000, 0.226385 + 0.972596, 0.000000, 0.000000, 0.232503 + 0.971115, 0.000000, 0.000000, 0.238611 + 0.969596, 0.000000, 0.000000, 0.244710 + 0.968039, 0.000000, 0.000000, 0.250800 + 0.966444, 0.000000, 0.000000, 0.256879 + 0.964810, 0.000000, 0.000000, 0.262948 + 0.963138, 0.000000, 0.000000, 0.269007 + 0.961428, 0.000000, 0.000000, 0.275056 + 0.959681, 0.000000, 0.000000, 0.281093 + 0.957895, 0.000000, 0.000000, 0.287119 + 0.956071, 0.000000, 0.000000, 0.293134 + 0.954210, 0.000000, 0.000000, 0.299137 + 0.952311, 0.000000, 0.000000, 0.305129 + 0.950374, 0.000000, 0.000000, 0.311108 + 0.948400, 0.000000, 0.000000, 0.317076 + 0.946389, 0.000000, 0.000000, 0.323030 + 0.944340, 0.000000, 0.000000, 0.328972 + 0.942253, 0.000000, 0.000000, 0.334901 + 0.940130, 0.000000, 0.000000, 0.340817 + 0.937969, 0.000000, 0.000000, 0.346719 + 0.935771, 0.000000, 0.000000, 0.352607 + 0.933537, 0.000000, 0.000000, 0.358482 + 0.931265, 0.000000, 0.000000, 0.364342 + 0.928957, 0.000000, 0.000000, 0.370188 + 0.926612, 0.000000, 0.000000, 0.376020 + 0.924230, 0.000000, 0.000000, 0.381836 + 0.921812, 0.000000, 0.000000, 0.387638 + 0.919357, 0.000000, 0.000000, 0.393424 + 0.916866, 0.000000, 0.000000, 0.399195 + 0.914339, 0.000000, 0.000000, 0.404950 + 0.911776, 0.000000, 0.000000, 0.410688 + 0.909177, 0.000000, 0.000000, 0.416411 + 0.906541, 0.000000, 0.000000, 0.422117 + 0.903870, 0.000000, 0.000000, 0.427807 + 0.901164, 0.000000, 0.000000, 0.433479 + 0.898421, 0.000000, 0.000000, 0.439135 + 0.895643, 0.000000, 0.000000, 0.444773 + 0.892830, 0.000000, 0.000000, 0.450393 + 0.889982, 0.000000, 0.000000, 0.455996 + 0.887098, 0.000000, 0.000000, 0.461581 + 0.884179, 0.000000, 0.000000, 0.467147 + 0.881226, 0.000000, 0.000000, 0.472695 + 0.878237, 0.000000, 0.000000, 0.478225 + 0.875214, 0.000000, 0.000000, 0.483735 + 0.872157, 0.000000, 0.000000, 0.489227 + 0.869065, 0.000000, 0.000000, 0.494699 + 0.865938, 0.000000, 0.000000, 0.500151 + 0.862777, 0.000000, 0.000000, 0.505584 + 0.859583, 0.000000, 0.000000, 0.510997 + 0.856354, 0.000000, 0.000000, 0.516389 + 0.853091, 0.000000, 0.000000, 0.521761 + 0.849795, 0.000000, 0.000000, 0.527113 + 0.846465, 0.000000, 0.000000, 0.532444 + 0.843102, 0.000000, 0.000000, 0.537754 + 0.839706, 0.000000, 0.000000, 0.543042 + 0.836276, 0.000000, 0.000000, 0.548309 + 0.832813, 0.000000, 0.000000, 0.553554 + 0.829317, 0.000000, 0.000000, 0.558778 + 0.825789, 0.000000, 0.000000, 0.563979 + 0.822228, 0.000000, 0.000000, 0.569158 + 0.818634, 0.000000, 0.000000, 0.574315 + 0.815008, 0.000000, 0.000000, 0.579449 + 0.811350, 0.000000, 0.000000, 0.584560 + 0.807660, 0.000000, 0.000000, 0.589648 + 0.803938, 0.000000, 0.000000, 0.594713 + 0.800184, 0.000000, 0.000000, 0.599754 + 0.796399, 0.000000, 0.000000, 0.604772 + 0.792582, 0.000000, 0.000000, 0.609765 + 0.788734, 0.000000, 0.000000, 0.614735 + 0.784855, 0.000000, 0.000000, 0.619680 + 0.780944, 0.000000, 0.000000, 0.624601 + 0.777003, 0.000000, 0.000000, 0.629497 + 0.773031, 0.000000, 0.000000, 0.634368 + 0.769029, 0.000000, 0.000000, 0.639214 + 0.764996, 0.000000, 0.000000, 0.644035 + 0.760933, 0.000000, 0.000000, 0.648830 + 0.756840, 0.000000, 0.000000, 0.653600 + 0.752717, 0.000000, 0.000000, 0.658344 + 0.748564, 0.000000, 0.000000, 0.663062 + 0.744382, 0.000000, 0.000000, 0.667754 + 0.740170, 0.000000, 0.000000, 0.672420 + 0.735929, 0.000000, 0.000000, 0.677058 + 0.731659, 0.000000, 0.000000, 0.681671 + 0.727360, 0.000000, 0.000000, 0.686256 + 0.723033, 0.000000, 0.000000, 0.690814 + 0.718676, 0.000000, 0.000000, 0.695345 + 0.714292, 0.000000, 0.000000, 0.699848 + 0.709879, 0.000000, 0.000000, 0.704324 + 0.705438, 0.000000, 0.000000, 0.708771 + 0.700969, 0.000000, 0.000000, 0.713191 + 0.696473, 0.000000, 0.000000, 0.717583 + 0.691949, 0.000000, 0.000000, 0.721946 + 0.687398, 0.000000, 0.000000, 0.726281 + 0.682819, 0.000000, 0.000000, 0.730587 + 0.678214, 0.000000, 0.000000, 0.734864 + 0.673582, 0.000000, 0.000000, 0.739113 + 0.668923, 0.000000, 0.000000, 0.743332 + 0.664238, 0.000000, 0.000000, 0.747521 + 0.659526, 0.000000, 0.000000, 0.751682 + 0.654789, 0.000000, 0.000000, 0.755812 + 0.650025, 0.000000, 0.000000, 0.759913 + 0.645236, 0.000000, 0.000000, 0.763983 + 0.640422, 0.000000, 0.000000, 0.768023 + 0.635582, 0.000000, 0.000000, 0.772033 + 0.630717, 0.000000, 0.000000, 0.776013 + 0.625827, 0.000000, 0.000000, 0.779962 + 0.620912, 0.000000, 0.000000, 0.783880 + 0.615973, 0.000000, 0.000000, 0.787767 + 0.611010, 0.000000, 0.000000, 0.791623 + 0.606022, 0.000000, 0.000000, 0.795448 + 0.601011, 0.000000, 0.000000, 0.799241 + 0.595975, 0.000000, 0.000000, 0.803003 + 0.590917, 0.000000, 0.000000, 0.806733 + 0.585834, 0.000000, 0.000000, 0.810431 + 0.580729, 0.000000, 0.000000, 0.814097 + 0.575601, 0.000000, 0.000000, 0.817731 + 0.570450, 0.000000, 0.000000, 0.821333 + 0.565276, 0.000000, 0.000000, 0.824902 + 0.560080, 0.000000, 0.000000, 0.828438 + 0.554862, 0.000000, 0.000000, 0.831942 + 0.549622, 0.000000, 0.000000, 0.835413 + 0.544361, 0.000000, 0.000000, 0.838851 + 0.539078, 0.000000, 0.000000, 0.842256 + 0.533773, 0.000000, 0.000000, 0.845628 + 0.528448, 0.000000, 0.000000, 0.848966 + 0.523101, 0.000000, 0.000000, 0.852270 + 0.517734, 0.000000, 0.000000, 0.855541 + 0.512347, 0.000000, 0.000000, 0.858779 + 0.506939, 0.000000, 0.000000, 0.861982 + 0.501511, 0.000000, 0.000000, 0.865151 + 0.496064, 0.000000, 0.000000, 0.868286 + 0.490596, 0.000000, 0.000000, 0.871387 + 0.485110, 0.000000, 0.000000, 0.874453 + 0.479604, 0.000000, 0.000000, 0.877485 + 0.474079, 0.000000, 0.000000, 0.880482 + 0.468536, 0.000000, 0.000000, 0.883444 + 0.462974, 0.000000, 0.000000, 0.886372 + 0.457394, 0.000000, 0.000000, 0.889264 + 0.451796, 0.000000, 0.000000, 0.892121 + 0.446180, 0.000000, 0.000000, 0.894943 + 0.440546, 0.000000, 0.000000, 0.897730 + 0.434895, 0.000000, 0.000000, 0.900481 + 0.429226, 0.000000, 0.000000, 0.903197 + 0.423541, 0.000000, 0.000000, 0.905877 + 0.417839, 0.000000, 0.000000, 0.908521 + 0.412121, 0.000000, 0.000000, 0.911129 + 0.406386, 0.000000, 0.000000, 0.913702 + 0.400635, 0.000000, 0.000000, 0.916238 + 0.394868, 0.000000, 0.000000, 0.918738 + 0.389086, 0.000000, 0.000000, 0.921201 + 0.383288, 0.000000, 0.000000, 0.923629 + 0.377475, 0.000000, 0.000000, 0.926020 + 0.371648, 0.000000, 0.000000, 0.928374 + 0.365805, 0.000000, 0.000000, 0.930691 + 0.359948, 0.000000, 0.000000, 0.932972 + 0.354077, 0.000000, 0.000000, 0.935216 + 0.348192, 0.000000, 0.000000, 0.937423 + 0.342294, 0.000000, 0.000000, 0.939593 + 0.336381, 0.000000, 0.000000, 0.941726 + 0.330456, 0.000000, 0.000000, 0.943822 + 0.324517, 0.000000, 0.000000, 0.945880 + 0.318565, 0.000000, 0.000000, 0.947901 + 0.312601, 0.000000, 0.000000, 0.949884 + 0.306625, 0.000000, 0.000000, 0.951830 + 0.300636, 0.000000, 0.000000, 0.953739 + 0.294636, 0.000000, 0.000000, 0.955610 + 0.288624, 0.000000, 0.000000, 0.957443 + 0.282600, 0.000000, 0.000000, 0.959238 + 0.276566, 0.000000, 0.000000, 0.960995 + 0.270520, 0.000000, 0.000000, 0.962714 + 0.264464, 0.000000, 0.000000, 0.964396 + 0.258397, 0.000000, 0.000000, 0.966039 + 0.252321, 0.000000, 0.000000, 0.967644 + 0.246234, 0.000000, 0.000000, 0.969210 + 0.240137, 0.000000, 0.000000, 0.970739 + 0.234031, 0.000000, 0.000000, 0.972229 + 0.227916, 0.000000, 0.000000, 0.973681 + 0.221791, 0.000000, 0.000000, 0.975094 + 0.215658, 0.000000, 0.000000, 0.976469 + 0.209517, 0.000000, 0.000000, 0.977805 + 0.203367, 0.000000, 0.000000, 0.979103 + 0.197209, 0.000000, 0.000000, 0.980361 + 0.191043, 0.000000, 0.000000, 0.981582 + 0.184870, 0.000000, 0.000000, 0.982763 + 0.178689, 0.000000, 0.000000, 0.983906 + 0.172502, 0.000000, 0.000000, 0.985009 + 0.166307, 0.000000, 0.000000, 0.986074 + 0.160106, 0.000000, 0.000000, 0.987100 + 0.153899, 0.000000, 0.000000, 0.988087 + 0.147686, 0.000000, 0.000000, 0.989034 + 0.141466, 0.000000, 0.000000, 0.989943 + 0.135242, 0.000000, 0.000000, 0.990813 + 0.129011, 0.000000, 0.000000, 0.991643 + 0.122776, 0.000000, 0.000000, 0.992434 + 0.116536, 0.000000, 0.000000, 0.993186 + 0.110291, 0.000000, 0.000000, 0.993899 + 0.104042, 0.000000, 0.000000, 0.994573 + 0.097789, 0.000000, 0.000000, 0.995207 + 0.091532, 0.000000, 0.000000, 0.995802 + 0.085271, 0.000000, 0.000000, 0.996358 + 0.079007, 0.000000, 0.000000, 0.996874 + 0.072740, 0.000000, 0.000000, 0.997351 + 0.066470, 0.000000, 0.000000, 0.997788 + 0.060198, 0.000000, 0.000000, 0.998186 + 0.053922, 0.000000, 0.000000, 0.998545 + 0.047645, 0.000000, 0.000000, 0.998864 + 0.041366, 0.000000, 0.000000, 0.999144 + 0.035086, 0.000000, 0.000000, 0.999384 + 0.028804, 0.000000, 0.000000, 0.999585 + 0.022520, 0.000000, 0.000000, 0.999746 + 0.016236, 0.000000, 0.000000, 0.999868 + 0.009952, 0.000000, 0.000000, 0.999950 + 0.003666, 0.000000, 0.000000, 0.999993 + -0.002619, -0.000000, 0.000000, 0.999997 + -0.008904, -0.000000, 0.000000, 0.999960 + -0.015189, -0.000000, 0.000000, 0.999885 + -0.021473, -0.000000, 0.000000, 0.999769 + -0.027756, -0.000000, 0.000000, 0.999615 + -0.034039, -0.000000, 0.000000, 0.999421 + -0.040320, -0.000000, 0.000000, 0.999187 + -0.046599, -0.000000, 0.000000, 0.998914 + -0.052876, -0.000000, 0.000000, 0.998601 + -0.059152, -0.000000, 0.000000, 0.998249 + -0.065425, -0.000000, 0.000000, 0.997857 + -0.071695, -0.000000, 0.000000, 0.997427 + -0.077963, -0.000000, 0.000000, 0.996956 + -0.084228, -0.000000, 0.000000, 0.996447 + -0.090489, -0.000000, 0.000000, 0.995897 + -0.096747, -0.000000, 0.000000, 0.995309 + -0.103000, -0.000000, 0.000000, 0.994681 + -0.109250, -0.000000, 0.000000, 0.994014 + -0.115496, -0.000000, 0.000000, 0.993308 + -0.121736, -0.000000, 0.000000, 0.992562 + -0.127973, -0.000000, 0.000000, 0.991778 + -0.134204, -0.000000, 0.000000, 0.990954 + -0.140429, -0.000000, 0.000000, 0.990091 + -0.146650, -0.000000, 0.000000, 0.989189 + -0.152864, -0.000000, 0.000000, 0.988247 + -0.159072, -0.000000, 0.000000, 0.987267 + -0.165274, -0.000000, 0.000000, 0.986248 + -0.171470, -0.000000, 0.000000, 0.985189 + -0.177659, -0.000000, 0.000000, 0.984092 + -0.183840, -0.000000, 0.000000, 0.982956 + -0.190015, -0.000000, 0.000000, 0.981781 + -0.196182, -0.000000, 0.000000, 0.980568 + -0.202341, -0.000000, 0.000000, 0.979315 + -0.208492, -0.000000, 0.000000, 0.978024 + -0.214635, -0.000000, 0.000000, 0.976694 + -0.220770, -0.000000, 0.000000, 0.975326 + -0.226896, -0.000000, 0.000000, 0.973919 + -0.233012, -0.000000, 0.000000, 0.972474 + -0.239120, -0.000000, 0.000000, 0.970990 + -0.245218, -0.000000, 0.000000, 0.969468 + -0.251307, -0.000000, 0.000000, 0.967907 + -0.257385, -0.000000, 0.000000, 0.966309 + -0.263454, -0.000000, 0.000000, 0.964672 + -0.269512, -0.000000, 0.000000, 0.962997 + -0.275559, -0.000000, 0.000000, 0.961284 + -0.281595, -0.000000, 0.000000, 0.959533 + -0.287621, -0.000000, 0.000000, 0.957744 + -0.293635, -0.000000, 0.000000, 0.955918 + -0.299637, -0.000000, 0.000000, 0.954053 + -0.305628, -0.000000, 0.000000, 0.952151 + -0.311606, -0.000000, 0.000000, 0.950211 + -0.317572, -0.000000, 0.000000, 0.948234 + -0.323526, -0.000000, 0.000000, 0.946219 + -0.329467, -0.000000, 0.000000, 0.944167 + -0.335395, -0.000000, 0.000000, 0.942078 + -0.341309, -0.000000, 0.000000, 0.939951 + -0.347210, -0.000000, 0.000000, 0.937787 + -0.353098, -0.000000, 0.000000, 0.935587 + -0.358971, -0.000000, 0.000000, 0.933349 + -0.364830, -0.000000, 0.000000, 0.931074 + -0.370675, -0.000000, 0.000000, 0.928763 + -0.376505, -0.000000, 0.000000, 0.926415 + -0.382320, -0.000000, 0.000000, 0.924030 + -0.388121, -0.000000, 0.000000, 0.921609 + -0.393906, -0.000000, 0.000000, 0.919151 + -0.399675, -0.000000, 0.000000, 0.916657 + -0.405428, -0.000000, 0.000000, 0.914127 + -0.411166, -0.000000, 0.000000, 0.911561 + -0.416887, -0.000000, 0.000000, 0.908958 + -0.422592, -0.000000, 0.000000, 0.906320 + -0.428280, -0.000000, 0.000000, 0.903646 + -0.433951, -0.000000, 0.000000, 0.900936 + -0.439605, -0.000000, 0.000000, 0.898191 + -0.445242, -0.000000, 0.000000, 0.895410 + -0.450861, -0.000000, 0.000000, 0.892594 + -0.456462, -0.000000, 0.000000, 0.889743 + -0.462045, -0.000000, 0.000000, 0.886856 + -0.467610, -0.000000, 0.000000, 0.883935 + -0.473157, -0.000000, 0.000000, 0.880978 + -0.478685, -0.000000, 0.000000, 0.877987 + -0.484194, -0.000000, 0.000000, 0.874961 + -0.489683, -0.000000, 0.000000, 0.871900 + -0.495154, -0.000000, 0.000000, 0.868805 + -0.500605, -0.000000, 0.000000, 0.865676 + -0.506036, -0.000000, 0.000000, 0.862512 + -0.511447, -0.000000, 0.000000, 0.859315 + -0.516838, -0.000000, 0.000000, 0.856083 + -0.522208, -0.000000, 0.000000, 0.852818 + -0.527558, -0.000000, 0.000000, 0.849519 + -0.532887, -0.000000, 0.000000, 0.846186 + -0.538195, -0.000000, 0.000000, 0.842820 + -0.543482, -0.000000, 0.000000, 0.839421 + -0.548747, -0.000000, 0.000000, 0.835988 + -0.553991, -0.000000, 0.000000, 0.832523 + -0.559212, -0.000000, 0.000000, 0.829025 + -0.564412, -0.000000, 0.000000, 0.825493 + -0.569589, -0.000000, 0.000000, 0.821930 + -0.574744, -0.000000, 0.000000, 0.818333 + -0.579876, -0.000000, 0.000000, 0.814705 + -0.584985, -0.000000, 0.000000, 0.811044 + -0.590071, -0.000000, 0.000000, 0.807351 + -0.595134, -0.000000, 0.000000, 0.803627 + -0.600173, -0.000000, 0.000000, 0.799870 + -0.605189, -0.000000, 0.000000, 0.796082 + -0.610180, -0.000000, 0.000000, 0.792263 + -0.615148, -0.000000, 0.000000, 0.788412 + -0.620091, -0.000000, 0.000000, 0.784530 + -0.625010, -0.000000, 0.000000, 0.780617 + -0.629904, -0.000000, 0.000000, 0.776673 + -0.634773, -0.000000, 0.000000, 0.772699 + -0.639617, -0.000000, 0.000000, 0.768694 + -0.644436, -0.000000, 0.000000, 0.764659 + -0.649229, -0.000000, 0.000000, 0.760593 + -0.653997, -0.000000, 0.000000, 0.756497 + -0.658739, -0.000000, 0.000000, 0.752372 + -0.663454, -0.000000, 0.000000, 0.748217 + -0.668144, -0.000000, 0.000000, 0.744032 + -0.672807, -0.000000, 0.000000, 0.739818 + -0.677444, -0.000000, 0.000000, 0.735575 + -0.682054, -0.000000, 0.000000, 0.731302 + -0.686637, -0.000000, 0.000000, 0.727001 + -0.691192, -0.000000, 0.000000, 0.722671 + -0.695721, -0.000000, 0.000000, 0.718312 + -0.700222, -0.000000, 0.000000, 0.713925 + -0.704695, -0.000000, 0.000000, 0.709510 + -0.709141, -0.000000, 0.000000, 0.705067 + -0.713558, -0.000000, 0.000000, 0.700596 + -0.717948, -0.000000, 0.000000, 0.696097 + -0.722309, -0.000000, 0.000000, 0.691571 + -0.726641, -0.000000, 0.000000, 0.687017 + -0.730945, -0.000000, 0.000000, 0.682437 + -0.735220, -0.000000, 0.000000, 0.677829 + -0.739465, -0.000000, 0.000000, 0.673195 + -0.743682, -0.000000, 0.000000, 0.668534 + -0.747869, -0.000000, 0.000000, 0.663846 + -0.752027, -0.000000, 0.000000, 0.659132 + -0.756155, -0.000000, 0.000000, 0.654393 + -0.760253, -0.000000, 0.000000, 0.649627 + -0.764321, -0.000000, 0.000000, 0.644836 + -0.768359, -0.000000, 0.000000, 0.640019 + -0.772366, -0.000000, 0.000000, 0.635177 + -0.776343, -0.000000, 0.000000, 0.630310 + -0.780290, -0.000000, 0.000000, 0.625418 + -0.784205, -0.000000, 0.000000, 0.620502 + -0.788090, -0.000000, 0.000000, 0.615561 + -0.791943, -0.000000, 0.000000, 0.610595 + -0.795765, -0.000000, 0.000000, 0.605605 + -0.799556, -0.000000, 0.000000, 0.600592 + -0.803315, -0.000000, 0.000000, 0.595555 + -0.807042, -0.000000, 0.000000, 0.590494 + -0.810738, -0.000000, 0.000000, 0.585410 + -0.814401, -0.000000, 0.000000, 0.580303 + -0.818032, -0.000000, 0.000000, 0.575172 + -0.821631, -0.000000, 0.000000, 0.570019 + -0.825198, -0.000000, 0.000000, 0.564844 + -0.828732, -0.000000, 0.000000, 0.559646 + -0.832233, -0.000000, 0.000000, 0.554427 + -0.835701, -0.000000, 0.000000, 0.549185 + -0.839136, -0.000000, 0.000000, 0.543921 + -0.842538, -0.000000, 0.000000, 0.538636 + -0.845907, -0.000000, 0.000000, 0.533330 + -0.849243, -0.000000, 0.000000, 0.528003 + -0.852544, -0.000000, 0.000000, 0.522655 + -0.855813, -0.000000, 0.000000, 0.517286 + -0.859047, -0.000000, 0.000000, 0.511897 + -0.862247, -0.000000, 0.000000, 0.506487 + -0.865414, -0.000000, 0.000000, 0.501058 + -0.868546, -0.000000, 0.000000, 0.495609 + -0.871644, -0.000000, 0.000000, 0.490140 + -0.874707, -0.000000, 0.000000, 0.484652 + -0.877736, -0.000000, 0.000000, 0.479145 + -0.880730, -0.000000, 0.000000, 0.473618 + -0.883690, -0.000000, 0.000000, 0.468073 + -0.886614, -0.000000, 0.000000, 0.462510 + -0.889504, -0.000000, 0.000000, 0.456928 + -0.892358, -0.000000, 0.000000, 0.451328 + -0.895177, -0.000000, 0.000000, 0.445711 + -0.897961, -0.000000, 0.000000, 0.440076 + -0.900709, -0.000000, 0.000000, 0.434423 + -0.903422, -0.000000, 0.000000, 0.428753 + -0.906099, -0.000000, 0.000000, 0.423067 + -0.908740, -0.000000, 0.000000, 0.417363 + -0.911345, -0.000000, 0.000000, 0.411643 + -0.913914, -0.000000, 0.000000, 0.405907 + -0.916448, -0.000000, 0.000000, 0.400155 + -0.918944, -0.000000, 0.000000, 0.394387 + -0.921405, -0.000000, 0.000000, 0.388603 + -0.923829, -0.000000, 0.000000, 0.382804 + -0.926217, -0.000000, 0.000000, 0.376990 + -0.928568, -0.000000, 0.000000, 0.371161 + -0.930883, -0.000000, 0.000000, 0.365318 + -0.933161, -0.000000, 0.000000, 0.359460 + -0.935401, -0.000000, 0.000000, 0.353588 + -0.937605, -0.000000, 0.000000, 0.347701 + -0.939772, -0.000000, 0.000000, 0.341801 + -0.941902, -0.000000, 0.000000, 0.335888 + -0.943994, -0.000000, 0.000000, 0.329961 + -0.946050, -0.000000, 0.000000, 0.324021 + -0.948068, -0.000000, 0.000000, 0.318069 + -0.950048, -0.000000, 0.000000, 0.312104 + -0.951991, -0.000000, 0.000000, 0.306126 + -0.953896, -0.000000, 0.000000, 0.300137 + -0.955764, -0.000000, 0.000000, 0.294135 + -0.957594, -0.000000, 0.000000, 0.288122 + -0.959386, -0.000000, 0.000000, 0.282098 + -0.961140, -0.000000, 0.000000, 0.276062 + -0.962856, -0.000000, 0.000000, 0.270016 + -0.964534, -0.000000, 0.000000, 0.263959 + -0.966174, -0.000000, 0.000000, 0.257891 + -0.967776, -0.000000, 0.000000, 0.251814 + -0.969339, -0.000000, 0.000000, 0.245726 + -0.970865, -0.000000, 0.000000, 0.239629 + -0.972352, -0.000000, 0.000000, 0.233522 + -0.973800, -0.000000, 0.000000, 0.227406 + -0.975210, -0.000000, 0.000000, 0.221281 + -0.976582, -0.000000, 0.000000, 0.215147 + -0.977915, -0.000000, 0.000000, 0.209005 + -0.979209, -0.000000, 0.000000, 0.202854 + -0.980465, -0.000000, 0.000000, 0.196695 + -0.981682, -0.000000, 0.000000, 0.190529 + -0.982860, -0.000000, 0.000000, 0.184355 + -0.983999, -0.000000, 0.000000, 0.178174 + -0.985099, -0.000000, 0.000000, 0.171986 + -0.986161, -0.000000, 0.000000, 0.165791 + -0.987183, -0.000000, 0.000000, 0.159589 + -0.988167, -0.000000, 0.000000, 0.153382 + -0.989112, -0.000000, 0.000000, 0.147168 + -0.990017, -0.000000, 0.000000, 0.140948 + -0.990883, -0.000000, 0.000000, 0.134723 + -0.991711, -0.000000, 0.000000, 0.128492 + -0.992499, -0.000000, 0.000000, 0.122256 + -0.993247, -0.000000, 0.000000, 0.116016 + -0.993957, -0.000000, 0.000000, 0.109771 + -0.994627, -0.000000, 0.000000, 0.103521 + -0.995258, -0.000000, 0.000000, 0.097268 + -0.995850, -0.000000, 0.000000, 0.091010 + -0.996402, -0.000000, 0.000000, 0.084750 + -0.996915, -0.000000, 0.000000, 0.078485 + -0.997389, -0.000000, 0.000000, 0.072218 + -0.997823, -0.000000, 0.000000, 0.065948 + -0.998218, -0.000000, 0.000000, 0.059675 + -0.998573, -0.000000, 0.000000, 0.053399 + -0.998889, -0.000000, 0.000000, 0.047122 + -0.999166, -0.000000, 0.000000, 0.040843 + -0.999403, -0.000000, 0.000000, 0.034562 + -0.999600, -0.000000, 0.000000, 0.028280 + -0.999758, -0.000000, 0.000000, 0.021997 + -0.999877, -0.000000, 0.000000, 0.015713 + -0.999956, -0.000000, 0.000000, 0.009428 + -0.999995, -0.000000, 0.000000, 0.003143 + -0.999995, 0.000000, -0.000000, -0.003143 + -0.999956, 0.000000, -0.000000, -0.009428 + -0.999877, 0.000000, -0.000000, -0.015713 + -0.999758, 0.000000, -0.000000, -0.021997 + -0.999600, 0.000000, -0.000000, -0.028280 + -0.999403, 0.000000, -0.000000, -0.034562 + -0.999166, 0.000000, -0.000000, -0.040843 + -0.998889, 0.000000, -0.000000, -0.047122 + -0.998573, 0.000000, -0.000000, -0.053399 + -0.998218, 0.000000, -0.000000, -0.059675 + -0.997823, 0.000000, -0.000000, -0.065948 + -0.997389, 0.000000, -0.000000, -0.072218 + -0.996915, 0.000000, -0.000000, -0.078485 + -0.996402, 0.000000, -0.000000, -0.084750 + -0.995850, 0.000000, -0.000000, -0.091010 + -0.995258, 0.000000, -0.000000, -0.097268 + -0.994627, 0.000000, -0.000000, -0.103521 + -0.993957, 0.000000, -0.000000, -0.109771 + -0.993247, 0.000000, -0.000000, -0.116016 + -0.992499, 0.000000, -0.000000, -0.122256 + -0.991711, 0.000000, -0.000000, -0.128492 + -0.990883, 0.000000, -0.000000, -0.134723 + -0.990017, 0.000000, -0.000000, -0.140948 + -0.989112, 0.000000, -0.000000, -0.147168 + -0.988167, 0.000000, -0.000000, -0.153382 + -0.987183, 0.000000, -0.000000, -0.159589 + -0.986161, 0.000000, -0.000000, -0.165791 + -0.985099, 0.000000, -0.000000, -0.171986 + -0.983999, 0.000000, -0.000000, -0.178174 + -0.982860, 0.000000, -0.000000, -0.184355 + -0.981682, 0.000000, -0.000000, -0.190529 + -0.980465, 0.000000, -0.000000, -0.196695 + -0.979209, 0.000000, -0.000000, -0.202854 + -0.977915, 0.000000, -0.000000, -0.209005 + -0.976582, 0.000000, -0.000000, -0.215147 + -0.975210, 0.000000, -0.000000, -0.221281 + -0.973800, 0.000000, -0.000000, -0.227406 + -0.972352, 0.000000, -0.000000, -0.233522 + -0.970865, 0.000000, -0.000000, -0.239629 + -0.969339, 0.000000, -0.000000, -0.245726 + -0.967776, 0.000000, -0.000000, -0.251814 + -0.966174, 0.000000, -0.000000, -0.257891 + -0.964534, 0.000000, -0.000000, -0.263959 + -0.962856, 0.000000, -0.000000, -0.270016 + -0.961140, 0.000000, -0.000000, -0.276062 + -0.959386, 0.000000, -0.000000, -0.282098 + -0.957594, 0.000000, -0.000000, -0.288122 + -0.955764, 0.000000, -0.000000, -0.294135 + -0.953896, 0.000000, -0.000000, -0.300137 + -0.951991, 0.000000, -0.000000, -0.306126 + -0.950048, 0.000000, -0.000000, -0.312104 + -0.948068, 0.000000, -0.000000, -0.318069 + -0.946050, 0.000000, -0.000000, -0.324021 + -0.943994, 0.000000, -0.000000, -0.329961 + -0.941902, 0.000000, -0.000000, -0.335888 + -0.939772, 0.000000, -0.000000, -0.341801 + -0.937605, 0.000000, -0.000000, -0.347701 + -0.935401, 0.000000, -0.000000, -0.353588 + -0.933161, 0.000000, -0.000000, -0.359460 + -0.930883, 0.000000, -0.000000, -0.365318 + -0.928568, 0.000000, -0.000000, -0.371161 + -0.926217, 0.000000, -0.000000, -0.376990 + -0.923829, 0.000000, -0.000000, -0.382804 + -0.921405, 0.000000, -0.000000, -0.388603 + -0.918944, 0.000000, -0.000000, -0.394387 + -0.916448, 0.000000, -0.000000, -0.400155 + -0.913914, 0.000000, -0.000000, -0.405907 + -0.911345, 0.000000, -0.000000, -0.411643 + -0.908740, 0.000000, -0.000000, -0.417363 + -0.906099, 0.000000, -0.000000, -0.423067 + -0.903422, 0.000000, -0.000000, -0.428753 + -0.900709, 0.000000, -0.000000, -0.434423 + -0.897961, 0.000000, -0.000000, -0.440076 + -0.895177, 0.000000, -0.000000, -0.445711 + -0.892358, 0.000000, -0.000000, -0.451328 + -0.889504, 0.000000, -0.000000, -0.456928 + -0.886614, 0.000000, -0.000000, -0.462510 + -0.883690, 0.000000, -0.000000, -0.468073 + -0.880730, 0.000000, -0.000000, -0.473618 + -0.877736, 0.000000, -0.000000, -0.479145 + -0.874707, 0.000000, -0.000000, -0.484652 + -0.871644, 0.000000, -0.000000, -0.490140 + -0.868546, 0.000000, -0.000000, -0.495609 + -0.865414, 0.000000, -0.000000, -0.501058 + -0.862247, 0.000000, -0.000000, -0.506487 + -0.859047, 0.000000, -0.000000, -0.511897 + -0.855813, 0.000000, -0.000000, -0.517286 + -0.852544, 0.000000, -0.000000, -0.522655 + -0.849243, 0.000000, -0.000000, -0.528003 + -0.845907, 0.000000, -0.000000, -0.533330 + -0.842538, 0.000000, -0.000000, -0.538636 + -0.839136, 0.000000, -0.000000, -0.543921 + -0.835701, 0.000000, -0.000000, -0.549185 + -0.832233, 0.000000, -0.000000, -0.554427 + -0.828732, 0.000000, -0.000000, -0.559646 + -0.825198, 0.000000, -0.000000, -0.564844 + -0.821631, 0.000000, -0.000000, -0.570019 + -0.818032, 0.000000, -0.000000, -0.575172 + -0.814401, 0.000000, -0.000000, -0.580303 + -0.810738, 0.000000, -0.000000, -0.585410 + -0.807042, 0.000000, -0.000000, -0.590494 + -0.803315, 0.000000, -0.000000, -0.595555 + -0.799556, 0.000000, -0.000000, -0.600592 + -0.795765, 0.000000, -0.000000, -0.605605 + -0.791943, 0.000000, -0.000000, -0.610595 + -0.788090, 0.000000, -0.000000, -0.615561 + -0.784205, 0.000000, -0.000000, -0.620502 + -0.780290, 0.000000, -0.000000, -0.625418 + -0.776343, 0.000000, -0.000000, -0.630310 + -0.772366, 0.000000, -0.000000, -0.635177 + -0.768359, 0.000000, -0.000000, -0.640019 + -0.764321, 0.000000, -0.000000, -0.644836 + -0.760253, 0.000000, -0.000000, -0.649627 + -0.756155, 0.000000, -0.000000, -0.654393 + -0.752027, 0.000000, -0.000000, -0.659132 + -0.747869, 0.000000, -0.000000, -0.663846 + -0.743682, 0.000000, -0.000000, -0.668534 + -0.739465, 0.000000, -0.000000, -0.673195 + -0.735220, 0.000000, -0.000000, -0.677829 + -0.730945, 0.000000, -0.000000, -0.682437 + -0.726641, 0.000000, -0.000000, -0.687017 + -0.722309, 0.000000, -0.000000, -0.691571 + -0.717948, 0.000000, -0.000000, -0.696097 + -0.713558, 0.000000, -0.000000, -0.700596 + -0.709141, 0.000000, -0.000000, -0.705067 + -0.704695, 0.000000, -0.000000, -0.709510 + -0.700222, 0.000000, -0.000000, -0.713925 + -0.695721, 0.000000, -0.000000, -0.718312 + -0.691192, 0.000000, -0.000000, -0.722671 + -0.686637, 0.000000, -0.000000, -0.727001 + -0.682054, 0.000000, -0.000000, -0.731302 + -0.677444, 0.000000, -0.000000, -0.735575 + -0.672807, 0.000000, -0.000000, -0.739818 + -0.668144, 0.000000, -0.000000, -0.744032 + -0.663454, 0.000000, -0.000000, -0.748217 + -0.658739, 0.000000, -0.000000, -0.752372 + -0.653997, 0.000000, -0.000000, -0.756497 + -0.649229, 0.000000, -0.000000, -0.760593 + -0.644436, 0.000000, -0.000000, -0.764659 + -0.639617, 0.000000, -0.000000, -0.768694 + -0.634773, 0.000000, -0.000000, -0.772699 + -0.629904, 0.000000, -0.000000, -0.776673 + -0.625010, 0.000000, -0.000000, -0.780617 + -0.620091, 0.000000, -0.000000, -0.784530 + -0.615148, 0.000000, -0.000000, -0.788412 + -0.610180, 0.000000, -0.000000, -0.792263 + -0.605189, 0.000000, -0.000000, -0.796082 + -0.600173, 0.000000, -0.000000, -0.799870 + -0.595134, 0.000000, -0.000000, -0.803627 + -0.590071, 0.000000, -0.000000, -0.807351 + -0.584985, 0.000000, -0.000000, -0.811044 + -0.579876, 0.000000, -0.000000, -0.814705 + -0.574744, 0.000000, -0.000000, -0.818333 + -0.569589, 0.000000, -0.000000, -0.821930 + -0.564412, 0.000000, -0.000000, -0.825493 + -0.559212, 0.000000, -0.000000, -0.829025 + -0.553991, 0.000000, -0.000000, -0.832523 + -0.548747, 0.000000, -0.000000, -0.835988 + -0.543482, 0.000000, -0.000000, -0.839421 + -0.538195, 0.000000, -0.000000, -0.842820 + -0.532887, 0.000000, -0.000000, -0.846186 + -0.527558, 0.000000, -0.000000, -0.849519 + -0.522208, 0.000000, -0.000000, -0.852818 + -0.516838, 0.000000, -0.000000, -0.856083 + -0.511447, 0.000000, -0.000000, -0.859315 + -0.506036, 0.000000, -0.000000, -0.862512 + -0.500605, 0.000000, -0.000000, -0.865676 + -0.495154, 0.000000, -0.000000, -0.868805 + -0.489683, 0.000000, -0.000000, -0.871900 + -0.484194, 0.000000, -0.000000, -0.874961 + -0.478685, 0.000000, -0.000000, -0.877987 + -0.473157, 0.000000, -0.000000, -0.880978 + -0.467610, 0.000000, -0.000000, -0.883935 + -0.462045, 0.000000, -0.000000, -0.886856 + -0.456462, 0.000000, -0.000000, -0.889743 + -0.450861, 0.000000, -0.000000, -0.892594 + -0.445242, 0.000000, -0.000000, -0.895410 + -0.439605, 0.000000, -0.000000, -0.898191 + -0.433951, 0.000000, -0.000000, -0.900936 + -0.428280, 0.000000, -0.000000, -0.903646 + -0.422592, 0.000000, -0.000000, -0.906320 + -0.416887, 0.000000, -0.000000, -0.908958 + -0.411166, 0.000000, -0.000000, -0.911561 + -0.405428, 0.000000, -0.000000, -0.914127 + -0.399675, 0.000000, -0.000000, -0.916657 + -0.393906, 0.000000, -0.000000, -0.919151 + -0.388121, 0.000000, -0.000000, -0.921609 + -0.382320, 0.000000, -0.000000, -0.924030 + -0.376505, 0.000000, -0.000000, -0.926415 + -0.370675, 0.000000, -0.000000, -0.928763 + -0.364830, 0.000000, -0.000000, -0.931074 + -0.358971, 0.000000, -0.000000, -0.933349 + -0.353098, 0.000000, -0.000000, -0.935587 + -0.347210, 0.000000, -0.000000, -0.937787 + -0.341309, 0.000000, -0.000000, -0.939951 + -0.335395, 0.000000, -0.000000, -0.942078 + -0.329467, 0.000000, -0.000000, -0.944167 + -0.323526, 0.000000, -0.000000, -0.946219 + -0.317572, 0.000000, -0.000000, -0.948234 + -0.311606, 0.000000, -0.000000, -0.950211 + -0.305628, 0.000000, -0.000000, -0.952151 + -0.299637, 0.000000, -0.000000, -0.954053 + -0.293635, 0.000000, -0.000000, -0.955918 + -0.287621, 0.000000, -0.000000, -0.957744 + -0.281595, 0.000000, -0.000000, -0.959533 + -0.275559, 0.000000, -0.000000, -0.961284 + -0.269512, 0.000000, -0.000000, -0.962997 + -0.263454, 0.000000, -0.000000, -0.964672 + -0.257385, 0.000000, -0.000000, -0.966309 + -0.251307, 0.000000, -0.000000, -0.967907 + -0.245218, 0.000000, -0.000000, -0.969468 + -0.239120, 0.000000, -0.000000, -0.970990 + -0.233012, 0.000000, -0.000000, -0.972474 + -0.226896, 0.000000, -0.000000, -0.973919 + -0.220770, 0.000000, -0.000000, -0.975326 + -0.214635, 0.000000, -0.000000, -0.976694 + -0.208492, 0.000000, -0.000000, -0.978024 + -0.202341, 0.000000, -0.000000, -0.979315 + -0.196182, 0.000000, -0.000000, -0.980568 + -0.190015, 0.000000, -0.000000, -0.981781 + -0.183840, 0.000000, -0.000000, -0.982956 + -0.177659, 0.000000, -0.000000, -0.984092 + -0.171470, 0.000000, -0.000000, -0.985189 + -0.165274, 0.000000, -0.000000, -0.986248 + -0.159072, 0.000000, -0.000000, -0.987267 + -0.152864, 0.000000, -0.000000, -0.988247 + -0.146650, 0.000000, -0.000000, -0.989189 + -0.140429, 0.000000, -0.000000, -0.990091 + -0.134204, 0.000000, -0.000000, -0.990954 + -0.127973, 0.000000, -0.000000, -0.991778 + -0.121736, 0.000000, -0.000000, -0.992562 + -0.115496, 0.000000, -0.000000, -0.993308 + -0.109250, 0.000000, -0.000000, -0.994014 + -0.103000, 0.000000, -0.000000, -0.994681 + -0.096747, 0.000000, -0.000000, -0.995309 + -0.090489, 0.000000, -0.000000, -0.995897 + -0.084228, 0.000000, -0.000000, -0.996447 + -0.077963, 0.000000, -0.000000, -0.996956 + -0.071695, 0.000000, -0.000000, -0.997427 + -0.065425, 0.000000, -0.000000, -0.997857 + -0.059152, 0.000000, -0.000000, -0.998249 + -0.052876, 0.000000, -0.000000, -0.998601 + -0.046599, 0.000000, -0.000000, -0.998914 + -0.040320, 0.000000, -0.000000, -0.999187 + -0.034039, 0.000000, -0.000000, -0.999421 + -0.027756, 0.000000, -0.000000, -0.999615 + -0.021473, 0.000000, -0.000000, -0.999769 + -0.015189, 0.000000, -0.000000, -0.999885 + -0.008904, 0.000000, -0.000000, -0.999960 + -0.002619, 0.000000, -0.000000, -0.999997 + 0.003666, 0.000000, 0.000000, -0.999993 + 0.009952, 0.000000, 0.000000, -0.999950 + 0.016236, 0.000000, 0.000000, -0.999868 + 0.022520, 0.000000, 0.000000, -0.999746 + 0.028804, 0.000000, 0.000000, -0.999585 + 0.035086, 0.000000, 0.000000, -0.999384 + 0.041366, 0.000000, 0.000000, -0.999144 + 0.047645, 0.000000, 0.000000, -0.998864 + 0.053922, 0.000000, 0.000000, -0.998545 + 0.060198, 0.000000, 0.000000, -0.998186 + 0.066470, 0.000000, 0.000000, -0.997788 + 0.072740, 0.000000, 0.000000, -0.997351 + 0.079007, 0.000000, 0.000000, -0.996874 + 0.085271, 0.000000, 0.000000, -0.996358 + 0.091532, 0.000000, 0.000000, -0.995802 + 0.097789, 0.000000, 0.000000, -0.995207 + 0.104042, 0.000000, 0.000000, -0.994573 + 0.110291, 0.000000, 0.000000, -0.993899 + 0.116536, 0.000000, 0.000000, -0.993186 + 0.122776, 0.000000, 0.000000, -0.992434 + 0.129011, 0.000000, 0.000000, -0.991643 + 0.135242, 0.000000, 0.000000, -0.990813 + 0.141466, 0.000000, 0.000000, -0.989943 + 0.147686, 0.000000, 0.000000, -0.989034 + 0.153899, 0.000000, 0.000000, -0.988087 + 0.160106, 0.000000, 0.000000, -0.987100 + 0.166307, 0.000000, 0.000000, -0.986074 + 0.172502, 0.000000, 0.000000, -0.985009 + 0.178689, 0.000000, 0.000000, -0.983906 + 0.184870, 0.000000, 0.000000, -0.982763 + 0.191043, 0.000000, 0.000000, -0.981582 + 0.197209, 0.000000, 0.000000, -0.980361 + 0.203367, 0.000000, 0.000000, -0.979103 + 0.209517, 0.000000, 0.000000, -0.977805 + 0.215658, 0.000000, 0.000000, -0.976469 + 0.221791, 0.000000, 0.000000, -0.975094 + 0.227916, 0.000000, 0.000000, -0.973681 + 0.234031, 0.000000, 0.000000, -0.972229 + 0.240137, 0.000000, 0.000000, -0.970739 + 0.246234, 0.000000, 0.000000, -0.969210 + 0.252321, 0.000000, 0.000000, -0.967644 + 0.258397, 0.000000, 0.000000, -0.966039 + 0.264464, 0.000000, 0.000000, -0.964396 + 0.270520, 0.000000, 0.000000, -0.962714 + 0.276566, 0.000000, 0.000000, -0.960995 + 0.282600, 0.000000, 0.000000, -0.959238 + 0.288624, 0.000000, 0.000000, -0.957443 + 0.294636, 0.000000, 0.000000, -0.955610 + 0.300636, 0.000000, 0.000000, -0.953739 + 0.306625, 0.000000, 0.000000, -0.951830 + 0.312601, 0.000000, 0.000000, -0.949884 + 0.318565, 0.000000, 0.000000, -0.947901 + 0.324517, 0.000000, 0.000000, -0.945880 + 0.330456, 0.000000, 0.000000, -0.943822 + 0.336381, 0.000000, 0.000000, -0.941726 + 0.342294, 0.000000, 0.000000, -0.939593 + 0.348192, 0.000000, 0.000000, -0.937423 + 0.354077, 0.000000, 0.000000, -0.935216 + 0.359948, 0.000000, 0.000000, -0.932972 + 0.365805, 0.000000, 0.000000, -0.930691 + 0.371648, 0.000000, 0.000000, -0.928374 + 0.377475, 0.000000, 0.000000, -0.926020 + 0.383288, 0.000000, 0.000000, -0.923629 + 0.389086, 0.000000, 0.000000, -0.921201 + 0.394868, 0.000000, 0.000000, -0.918738 + 0.400635, 0.000000, 0.000000, -0.916238 + 0.406386, 0.000000, 0.000000, -0.913702 + 0.412121, 0.000000, 0.000000, -0.911129 + 0.417839, 0.000000, 0.000000, -0.908521 + 0.423541, 0.000000, 0.000000, -0.905877 + 0.429226, 0.000000, 0.000000, -0.903197 + 0.434895, 0.000000, 0.000000, -0.900481 + 0.440546, 0.000000, 0.000000, -0.897730 + 0.446180, 0.000000, 0.000000, -0.894943 + 0.451796, 0.000000, 0.000000, -0.892121 + 0.457394, 0.000000, 0.000000, -0.889264 + 0.462974, 0.000000, 0.000000, -0.886372 + 0.468536, 0.000000, 0.000000, -0.883444 + 0.474079, 0.000000, 0.000000, -0.880482 + 0.479604, 0.000000, 0.000000, -0.877485 + 0.485110, 0.000000, 0.000000, -0.874453 + 0.490596, 0.000000, 0.000000, -0.871387 + 0.496064, 0.000000, 0.000000, -0.868286 + 0.501511, 0.000000, 0.000000, -0.865151 + 0.506939, 0.000000, 0.000000, -0.861982 + 0.512347, 0.000000, 0.000000, -0.858779 + 0.517734, 0.000000, 0.000000, -0.855541 + 0.523101, 0.000000, 0.000000, -0.852270 + 0.528448, 0.000000, 0.000000, -0.848966 + 0.533773, 0.000000, 0.000000, -0.845628 + 0.539078, 0.000000, 0.000000, -0.842256 + 0.544361, 0.000000, 0.000000, -0.838851 + 0.549622, 0.000000, 0.000000, -0.835413 + 0.554862, 0.000000, 0.000000, -0.831942 + 0.560080, 0.000000, 0.000000, -0.828438 + 0.565276, 0.000000, 0.000000, -0.824902 + 0.570450, 0.000000, 0.000000, -0.821333 + 0.575601, 0.000000, 0.000000, -0.817731 + 0.580729, 0.000000, 0.000000, -0.814097 + 0.585834, 0.000000, 0.000000, -0.810431 + 0.590917, 0.000000, 0.000000, -0.806733 + 0.595975, 0.000000, 0.000000, -0.803003 + 0.601011, 0.000000, 0.000000, -0.799241 + 0.606022, 0.000000, 0.000000, -0.795448 + 0.611010, 0.000000, 0.000000, -0.791623 + 0.615973, 0.000000, 0.000000, -0.787767 + 0.620912, 0.000000, 0.000000, -0.783880 + 0.625827, 0.000000, 0.000000, -0.779962 + 0.630717, 0.000000, 0.000000, -0.776013 + 0.635582, 0.000000, 0.000000, -0.772033 + 0.640422, 0.000000, 0.000000, -0.768023 + 0.645236, 0.000000, 0.000000, -0.763983 + 0.650025, 0.000000, 0.000000, -0.759913 + 0.654789, 0.000000, 0.000000, -0.755812 + 0.659526, 0.000000, 0.000000, -0.751682 + 0.664238, 0.000000, 0.000000, -0.747521 + 0.668923, 0.000000, 0.000000, -0.743332 + 0.673582, 0.000000, 0.000000, -0.739113 + 0.678214, 0.000000, 0.000000, -0.734864 + 0.682819, 0.000000, 0.000000, -0.730587 + 0.687398, 0.000000, 0.000000, -0.726281 + 0.691949, 0.000000, 0.000000, -0.721946 + 0.696473, 0.000000, 0.000000, -0.717583 + 0.700969, 0.000000, 0.000000, -0.713191 + 0.705438, 0.000000, 0.000000, -0.708771 + 0.709879, 0.000000, 0.000000, -0.704324 + 0.714292, 0.000000, 0.000000, -0.699848 + 0.718676, 0.000000, 0.000000, -0.695345 + 0.723033, 0.000000, 0.000000, -0.690814 + 0.727360, 0.000000, 0.000000, -0.686256 + 0.731659, 0.000000, 0.000000, -0.681671 + 0.735929, 0.000000, 0.000000, -0.677058 + 0.740170, 0.000000, 0.000000, -0.672420 + 0.744382, 0.000000, 0.000000, -0.667754 + 0.748564, 0.000000, 0.000000, -0.663062 + 0.752717, 0.000000, 0.000000, -0.658344 + 0.756840, 0.000000, 0.000000, -0.653600 + 0.760933, 0.000000, 0.000000, -0.648830 + 0.764996, 0.000000, 0.000000, -0.644035 + 0.769029, 0.000000, 0.000000, -0.639214 + 0.773031, 0.000000, 0.000000, -0.634368 + 0.777003, 0.000000, 0.000000, -0.629497 + 0.780944, 0.000000, 0.000000, -0.624601 + 0.784855, 0.000000, 0.000000, -0.619680 + 0.788734, 0.000000, 0.000000, -0.614735 + 0.792582, 0.000000, 0.000000, -0.609765 + 0.796399, 0.000000, 0.000000, -0.604772 + 0.800184, 0.000000, 0.000000, -0.599754 + 0.803938, 0.000000, 0.000000, -0.594713 + 0.807660, 0.000000, 0.000000, -0.589648 + 0.811350, 0.000000, 0.000000, -0.584560 + 0.815008, 0.000000, 0.000000, -0.579449 + 0.818634, 0.000000, 0.000000, -0.574315 + 0.822228, 0.000000, 0.000000, -0.569158 + 0.825789, 0.000000, 0.000000, -0.563979 + 0.829317, 0.000000, 0.000000, -0.558778 + 0.832813, 0.000000, 0.000000, -0.553554 + 0.836276, 0.000000, 0.000000, -0.548309 + 0.839706, 0.000000, 0.000000, -0.543042 + 0.843102, 0.000000, 0.000000, -0.537754 + 0.846465, 0.000000, 0.000000, -0.532444 + 0.849795, 0.000000, 0.000000, -0.527113 + 0.853091, 0.000000, 0.000000, -0.521761 + 0.856354, 0.000000, 0.000000, -0.516389 + 0.859583, 0.000000, 0.000000, -0.510997 + 0.862777, 0.000000, 0.000000, -0.505584 + 0.865938, 0.000000, 0.000000, -0.500151 + 0.869065, 0.000000, 0.000000, -0.494699 + 0.872157, 0.000000, 0.000000, -0.489227 + 0.875214, 0.000000, 0.000000, -0.483735 + 0.878237, 0.000000, 0.000000, -0.478225 + 0.881226, 0.000000, 0.000000, -0.472695 + 0.884179, 0.000000, 0.000000, -0.467147 + 0.887098, 0.000000, 0.000000, -0.461581 + 0.889982, 0.000000, 0.000000, -0.455996 + 0.892830, 0.000000, 0.000000, -0.450393 + 0.895643, 0.000000, 0.000000, -0.444773 + 0.898421, 0.000000, 0.000000, -0.439135 + 0.901164, 0.000000, 0.000000, -0.433479 + 0.903870, 0.000000, 0.000000, -0.427807 + 0.906541, 0.000000, 0.000000, -0.422117 + 0.909177, 0.000000, 0.000000, -0.416411 + 0.911776, 0.000000, 0.000000, -0.410688 + 0.914339, 0.000000, 0.000000, -0.404950 + 0.916866, 0.000000, 0.000000, -0.399195 + 0.919357, 0.000000, 0.000000, -0.393424 + 0.921812, 0.000000, 0.000000, -0.387638 + 0.924230, 0.000000, 0.000000, -0.381836 + 0.926612, 0.000000, 0.000000, -0.376020 + 0.928957, 0.000000, 0.000000, -0.370188 + 0.931265, 0.000000, 0.000000, -0.364342 + 0.933537, 0.000000, 0.000000, -0.358482 + 0.935771, 0.000000, 0.000000, -0.352607 + 0.937969, 0.000000, 0.000000, -0.346719 + 0.940130, 0.000000, 0.000000, -0.340817 + 0.942253, 0.000000, 0.000000, -0.334901 + 0.944340, 0.000000, 0.000000, -0.328972 + 0.946389, 0.000000, 0.000000, -0.323030 + 0.948400, 0.000000, 0.000000, -0.317076 + 0.950374, 0.000000, 0.000000, -0.311108 + 0.952311, 0.000000, 0.000000, -0.305129 + 0.954210, 0.000000, 0.000000, -0.299137 + 0.956071, 0.000000, 0.000000, -0.293134 + 0.957895, 0.000000, 0.000000, -0.287119 + 0.959681, 0.000000, 0.000000, -0.281093 + 0.961428, 0.000000, 0.000000, -0.275056 + 0.963138, 0.000000, 0.000000, -0.269007 + 0.964810, 0.000000, 0.000000, -0.262948 + 0.966444, 0.000000, 0.000000, -0.256879 + 0.968039, 0.000000, 0.000000, -0.250800 + 0.969596, 0.000000, 0.000000, -0.244710 + 0.971115, 0.000000, 0.000000, -0.238611 + 0.972596, 0.000000, 0.000000, -0.232503 + 0.974038, 0.000000, 0.000000, -0.226385 + 0.975441, 0.000000, 0.000000, -0.220259 + 0.976807, 0.000000, 0.000000, -0.214124 + 0.978133, 0.000000, 0.000000, -0.207980 + 0.979421, 0.000000, 0.000000, -0.201828 + 0.980670, 0.000000, 0.000000, -0.195668 + 0.981881, 0.000000, 0.000000, -0.189501 + 0.983052, 0.000000, 0.000000, -0.183326 + 0.984185, 0.000000, 0.000000, -0.177143 + 0.985279, 0.000000, 0.000000, -0.170954 + 0.986334, 0.000000, 0.000000, -0.164758 + 0.987350, 0.000000, 0.000000, -0.158555 + 0.988327, 0.000000, 0.000000, -0.152346 + 0.989265, 0.000000, 0.000000, -0.146131 + 0.990164, 0.000000, 0.000000, -0.139911 + 0.991024, 0.000000, 0.000000, -0.133685 + 0.991845, 0.000000, 0.000000, -0.127453 + 0.992626, 0.000000, 0.000000, -0.121217 + 0.993368, 0.000000, 0.000000, -0.114975 + 0.994071, 0.000000, 0.000000, -0.108729 + 0.994735, 0.000000, 0.000000, -0.102479 + 0.995360, 0.000000, 0.000000, -0.096225 + 0.995945, 0.000000, 0.000000, -0.089967 + 0.996491, 0.000000, 0.000000, -0.083706 + 0.996997, 0.000000, 0.000000, -0.077441 + 0.997464, 0.000000, 0.000000, -0.071173 + 0.997892, 0.000000, 0.000000, -0.064902 + 0.998280, 0.000000, 0.000000, -0.058629 + 0.998629, 0.000000, 0.000000, -0.052353 + 0.998938, 0.000000, 0.000000, -0.046076 + 0.999208, 0.000000, 0.000000, -0.039796 + 0.999438, 0.000000, 0.000000, -0.033515 + 0.999629, 0.000000, 0.000000, -0.027233 + 0.999781, 0.000000, 0.000000, -0.020949 + 0.999892, 0.000000, 0.000000, -0.014665 + 0.999965, 0.000000, 0.000000, -0.008380 + 0.999998, 0.000000, 0.000000, -0.002095 + 0.999991, 0.000000, 0.000000, 0.004190 + 0.999945, 0.000000, 0.000000, 0.010475 + 0.999860, 0.000000, 0.000000, 0.016760 + 0.999734, 0.000000, 0.000000, 0.023044 + 0.999570, 0.000000, 0.000000, 0.029327 + 0.999366, 0.000000, 0.000000, 0.035609 + 0.999122, 0.000000, 0.000000, 0.041890 + 0.998839, 0.000000, 0.000000, 0.048169 + 0.998517, 0.000000, 0.000000, 0.054445 + 0.998155, 0.000000, 0.000000, 0.060720 + 0.997753, 0.000000, 0.000000, 0.066993 + 0.997313, 0.000000, 0.000000, 0.073263 + 0.996833, 0.000000, 0.000000, 0.079529 + 0.996313, 0.000000, 0.000000, 0.085793 + 0.995754, 0.000000, 0.000000, 0.092054 + 0.995156, 0.000000, 0.000000, 0.098310 + 0.994518, 0.000000, 0.000000, 0.104563 + 0.993841, 0.000000, 0.000000, 0.110812 + 0.993125, 0.000000, 0.000000, 0.117056 + 0.992370, 0.000000, 0.000000, 0.123296 + 0.991575, 0.000000, 0.000000, 0.129531 + 0.990742, 0.000000, 0.000000, 0.135761 + 0.989869, 0.000000, 0.000000, 0.141985 + 0.988957, 0.000000, 0.000000, 0.148204 + 0.988006, 0.000000, 0.000000, 0.154417 + 0.987016, 0.000000, 0.000000, 0.160623 + 0.985987, 0.000000, 0.000000, 0.166824 + 0.984919, 0.000000, 0.000000, 0.173018 + 0.983812, 0.000000, 0.000000, 0.179205 + 0.982666, 0.000000, 0.000000, 0.185385 + 0.981481, 0.000000, 0.000000, 0.191557 + 0.980258, 0.000000, 0.000000, 0.197722 + 0.978996, 0.000000, 0.000000, 0.203880 + 0.977695, 0.000000, 0.000000, 0.210029 + 0.976356, 0.000000, 0.000000, 0.216170 + 0.974978, 0.000000, 0.000000, 0.222302 + 0.973561, 0.000000, 0.000000, 0.228426 + 0.972106, 0.000000, 0.000000, 0.234540 + 0.970613, 0.000000, 0.000000, 0.240646 + 0.969081, 0.000000, 0.000000, 0.246741 + 0.967511, 0.000000, 0.000000, 0.252827 + 0.965903, 0.000000, 0.000000, 0.258903 + 0.964257, 0.000000, 0.000000, 0.264969 + 0.962572, 0.000000, 0.000000, 0.271025 + 0.960850, 0.000000, 0.000000, 0.277069 + 0.959090, 0.000000, 0.000000, 0.283103 + 0.957291, 0.000000, 0.000000, 0.289125 + 0.955455, 0.000000, 0.000000, 0.295136 + 0.953581, 0.000000, 0.000000, 0.301136 + 0.951670, 0.000000, 0.000000, 0.307123 + 0.949721, 0.000000, 0.000000, 0.313099 + 0.947734, 0.000000, 0.000000, 0.319062 + 0.945710, 0.000000, 0.000000, 0.325012 + 0.943648, 0.000000, 0.000000, 0.330950 + 0.941550, 0.000000, 0.000000, 0.336874 + 0.939414, 0.000000, 0.000000, 0.342786 + 0.937241, 0.000000, 0.000000, 0.348683 + 0.935031, 0.000000, 0.000000, 0.354567 + 0.932784, 0.000000, 0.000000, 0.360437 + 0.930500, 0.000000, 0.000000, 0.366293 + 0.928179, 0.000000, 0.000000, 0.372134 + 0.925822, 0.000000, 0.000000, 0.377960 + 0.923428, 0.000000, 0.000000, 0.383772 + 0.920998, 0.000000, 0.000000, 0.389568 + 0.918531, 0.000000, 0.000000, 0.395349 + 0.916028, 0.000000, 0.000000, 0.401115 + 0.913489, 0.000000, 0.000000, 0.406864 + 0.910913, 0.000000, 0.000000, 0.412598 + 0.908302, 0.000000, 0.000000, 0.418315 + 0.905655, 0.000000, 0.000000, 0.424015 + 0.902972, 0.000000, 0.000000, 0.429699 + 0.900253, 0.000000, 0.000000, 0.435366 + 0.897499, 0.000000, 0.000000, 0.441016 + 0.894710, 0.000000, 0.000000, 0.446648 + 0.891885, 0.000000, 0.000000, 0.452263 + 0.889024, 0.000000, 0.000000, 0.457860 + 0.886129, 0.000000, 0.000000, 0.463438 + 0.883199, 0.000000, 0.000000, 0.468999 + 0.880234, 0.000000, 0.000000, 0.474541 + 0.877234, 0.000000, 0.000000, 0.480064 + 0.874199, 0.000000, 0.000000, 0.485568 + 0.871130, 0.000000, 0.000000, 0.491053 + 0.868026, 0.000000, 0.000000, 0.496518 + 0.864888, 0.000000, 0.000000, 0.501964 + 0.861716, 0.000000, 0.000000, 0.507390 + 0.858510, 0.000000, 0.000000, 0.512797 + 0.855270, 0.000000, 0.000000, 0.518182 + 0.851996, 0.000000, 0.000000, 0.523548 + 0.848689, 0.000000, 0.000000, 0.528892 + 0.845348, 0.000000, 0.000000, 0.534216 + 0.841974, 0.000000, 0.000000, 0.539519 + 0.838566, 0.000000, 0.000000, 0.544800 + 0.835125, 0.000000, 0.000000, 0.550060 + 0.831651, 0.000000, 0.000000, 0.555298 + 0.828145, 0.000000, 0.000000, 0.560514 + 0.824606, 0.000000, 0.000000, 0.565708 + 0.821034, 0.000000, 0.000000, 0.570880 + 0.817429, 0.000000, 0.000000, 0.576029 + 0.813793, 0.000000, 0.000000, 0.581155 + 0.810124, 0.000000, 0.000000, 0.586259 + 0.806423, 0.000000, 0.000000, 0.591339 + 0.802690, 0.000000, 0.000000, 0.596396 + 0.798926, 0.000000, 0.000000, 0.601429 + 0.795130, 0.000000, 0.000000, 0.606439 + 0.791303, 0.000000, 0.000000, 0.611424 + 0.787444, 0.000000, 0.000000, 0.616386 + 0.783555, 0.000000, 0.000000, 0.621323 + 0.779634, 0.000000, 0.000000, 0.626235 + 0.775683, 0.000000, 0.000000, 0.631123 + 0.771700, 0.000000, 0.000000, 0.635986 + 0.767688, 0.000000, 0.000000, 0.640824 + 0.763645, 0.000000, 0.000000, 0.645636 + 0.759572, 0.000000, 0.000000, 0.650423 + 0.755469, 0.000000, 0.000000, 0.655185 + 0.751336, 0.000000, 0.000000, 0.659920 + 0.747173, 0.000000, 0.000000, 0.664629 + 0.742981, 0.000000, 0.000000, 0.669312 + 0.738760, 0.000000, 0.000000, 0.673969 + 0.734509, 0.000000, 0.000000, 0.678599 + 0.730229, 0.000000, 0.000000, 0.683202 + 0.725921, 0.000000, 0.000000, 0.687778 + 0.721584, 0.000000, 0.000000, 0.692327 + 0.717218, 0.000000, 0.000000, 0.696849 + 0.712824, 0.000000, 0.000000, 0.701343 + 0.708402, 0.000000, 0.000000, 0.705809 + 0.703952, 0.000000, 0.000000, 0.710248 + 0.699474, 0.000000, 0.000000, 0.714658 + 0.694968, 0.000000, 0.000000, 0.719041 + 0.690435, 0.000000, 0.000000, 0.723394 + 0.685875, 0.000000, 0.000000, 0.727720 + 0.681287, 0.000000, 0.000000, 0.732016 + 0.676673, 0.000000, 0.000000, 0.736284 + 0.672032, 0.000000, 0.000000, 0.740522 + 0.667364, 0.000000, 0.000000, 0.744732 + 0.662670, 0.000000, 0.000000, 0.748911 + 0.657950, 0.000000, 0.000000, 0.753062 + 0.653204, 0.000000, 0.000000, 0.757182 + 0.648432, 0.000000, 0.000000, 0.761273 + 0.643634, 0.000000, 0.000000, 0.765333 + 0.638811, 0.000000, 0.000000, 0.769363 + 0.633963, 0.000000, 0.000000, 0.773363 + 0.629090, 0.000000, 0.000000, 0.777333 + 0.624192, 0.000000, 0.000000, 0.781271 + 0.619269, 0.000000, 0.000000, 0.785179 + 0.614321, 0.000000, 0.000000, 0.789056 + 0.609350, 0.000000, 0.000000, 0.792901 + 0.604354, 0.000000, 0.000000, 0.796716 + 0.599335, 0.000000, 0.000000, 0.800498 + 0.594292, 0.000000, 0.000000, 0.804250 + 0.589225, 0.000000, 0.000000, 0.807969 + 0.584135, 0.000000, 0.000000, 0.811656 + 0.579022, 0.000000, 0.000000, 0.815312 + 0.573886, 0.000000, 0.000000, 0.818935 + 0.568728, 0.000000, 0.000000, 0.822526 + 0.563547, 0.000000, 0.000000, 0.826084 + 0.558343, 0.000000, 0.000000, 0.829610 + 0.553118, 0.000000, 0.000000, 0.833103 + 0.547871, 0.000000, 0.000000, 0.836563 + 0.542602, 0.000000, 0.000000, 0.839990 + 0.537312, 0.000000, 0.000000, 0.843384 + 0.532000, 0.000000, 0.000000, 0.846744 + 0.526668, 0.000000, 0.000000, 0.850071 + 0.521315, 0.000000, 0.000000, 0.853365 + 0.515941, 0.000000, 0.000000, 0.856624 + 0.510546, 0.000000, 0.000000, 0.859850 + 0.505132, 0.000000, 0.000000, 0.863042 + 0.499698, 0.000000, 0.000000, 0.866200 + 0.494243, 0.000000, 0.000000, 0.869324 + 0.488770, 0.000000, 0.000000, 0.872413 + 0.483277, 0.000000, 0.000000, 0.875468 + 0.477765, 0.000000, 0.000000, 0.878488 + 0.472234, 0.000000, 0.000000, 0.881473 + 0.466684, 0.000000, 0.000000, 0.884424 + 0.461116, 0.000000, 0.000000, 0.887340 + 0.455530, 0.000000, 0.000000, 0.890220 + 0.449926, 0.000000, 0.000000, 0.893066 + 0.444304, 0.000000, 0.000000, 0.895876 + 0.438664, 0.000000, 0.000000, 0.898651 + 0.433007, 0.000000, 0.000000, 0.901390 + 0.427333, 0.000000, 0.000000, 0.904094 + 0.421642, 0.000000, 0.000000, 0.906762 + 0.415935, 0.000000, 0.000000, 0.909394 + 0.410211, 0.000000, 0.000000, 0.911991 + 0.404471, 0.000000, 0.000000, 0.914551 + 0.398714, 0.000000, 0.000000, 0.917075 + 0.392942, 0.000000, 0.000000, 0.919563 + 0.387155, 0.000000, 0.000000, 0.922015 + 0.381352, 0.000000, 0.000000, 0.924430 + 0.375535, 0.000000, 0.000000, 0.926808 + 0.369702, 0.000000, 0.000000, 0.929150 + 0.363855, 0.000000, 0.000000, 0.931456 + 0.357993, 0.000000, 0.000000, 0.933724 + 0.352117, 0.000000, 0.000000, 0.935956 + 0.346228, 0.000000, 0.000000, 0.938151 + 0.340324, 0.000000, 0.000000, 0.940308 + 0.334407, 0.000000, 0.000000, 0.942429 + 0.328478, 0.000000, 0.000000, 0.944512 + 0.322535, 0.000000, 0.000000, 0.946558 + 0.316579, 0.000000, 0.000000, 0.948566 + 0.310611, 0.000000, 0.000000, 0.950537 + 0.304630, 0.000000, 0.000000, 0.952471 + 0.298638, 0.000000, 0.000000, 0.954367 + 0.292633, 0.000000, 0.000000, 0.956225 + 0.286617, 0.000000, 0.000000, 0.958045 + 0.280590, 0.000000, 0.000000, 0.959828 + 0.274552, 0.000000, 0.000000, 0.961572 + 0.268503, 0.000000, 0.000000, 0.963279 + 0.262443, 0.000000, 0.000000, 0.964947 + 0.256373, 0.000000, 0.000000, 0.966578 + 0.250293, 0.000000, 0.000000, 0.968170 + 0.244203, 0.000000, 0.000000, 0.969724 + 0.238103, 0.000000, 0.000000, 0.971240 + 0.231994, 0.000000, 0.000000, 0.972717 + 0.225875, 0.000000, 0.000000, 0.974156 + 0.219748, 0.000000, 0.000000, 0.975557 + 0.213612, 0.000000, 0.000000, 0.976919 + 0.207468, 0.000000, 0.000000, 0.978242 + 0.201315, 0.000000, 0.000000, 0.979527 + 0.195155, 0.000000, 0.000000, 0.980773 + 0.188986, 0.000000, 0.000000, 0.981980 + 0.182811, 0.000000, 0.000000, 0.983148 + 0.176628, 0.000000, 0.000000, 0.984278 + 0.170438, 0.000000, 0.000000, 0.985368 + 0.164241, 0.000000, 0.000000, 0.986420 + 0.158038, 0.000000, 0.000000, 0.987433 + 0.151829, 0.000000, 0.000000, 0.988407 + 0.145613, 0.000000, 0.000000, 0.989342 + 0.139392, 0.000000, 0.000000, 0.990237 + 0.133165, 0.000000, 0.000000, 0.991094 + 0.126934, 0.000000, 0.000000, 0.991911 + 0.120697, 0.000000, 0.000000, 0.992689 + 0.114455, 0.000000, 0.000000, 0.993428 + 0.108209, 0.000000, 0.000000, 0.994128 + 0.101958, 0.000000, 0.000000, 0.994789 + 0.095704, 0.000000, 0.000000, 0.995410 + 0.089446, 0.000000, 0.000000, 0.995992 + 0.083184, 0.000000, 0.000000, 0.996534 + 0.076919, 0.000000, 0.000000, 0.997037 + 0.070650, 0.000000, 0.000000, 0.997501 + 0.064380, 0.000000, 0.000000, 0.997925 + 0.058106, 0.000000, 0.000000, 0.998310 + 0.051830, 0.000000, 0.000000, 0.998656 + 0.045553, 0.000000, 0.000000, 0.998962 + 0.039273, 0.000000, 0.000000, 0.999229 + 0.032992, 0.000000, 0.000000, 0.999456 + 0.026709, 0.000000, 0.000000, 0.999643 + 0.020426, 0.000000, 0.000000, 0.999791 + 0.014141, 0.000000, 0.000000, 0.999900 + 0.007857, 0.000000, 0.000000, 0.999969 + 0.001571, 0.000000, 0.000000, 0.999999 + -0.004714, -0.000000, 0.000000, 0.999989 + -0.010999, -0.000000, 0.000000, 0.999940 + -0.017284, -0.000000, 0.000000, 0.999851 + -0.023568, -0.000000, 0.000000, 0.999722 + -0.029851, -0.000000, 0.000000, 0.999554 + -0.036132, -0.000000, 0.000000, 0.999347 + -0.042413, -0.000000, 0.000000, 0.999100 + -0.048692, -0.000000, 0.000000, 0.998814 + -0.054968, -0.000000, 0.000000, 0.998488 + -0.061243, -0.000000, 0.000000, 0.998123 + -0.067515, -0.000000, 0.000000, 0.997718 + -0.073785, -0.000000, 0.000000, 0.997274 + -0.080052, -0.000000, 0.000000, 0.996791 + -0.086315, -0.000000, 0.000000, 0.996268 + -0.092575, -0.000000, 0.000000, 0.995706 + -0.098832, -0.000000, 0.000000, 0.995104 + -0.105084, -0.000000, 0.000000, 0.994463 + -0.111332, -0.000000, 0.000000, 0.993783 + -0.117576, -0.000000, 0.000000, 0.993064 + -0.123816, -0.000000, 0.000000, 0.992305 + -0.130050, -0.000000, 0.000000, 0.991507 + -0.136279, -0.000000, 0.000000, 0.990670 + -0.142503, -0.000000, 0.000000, 0.989794 + -0.148722, -0.000000, 0.000000, 0.988879 + -0.154934, -0.000000, 0.000000, 0.987925 + -0.161140, -0.000000, 0.000000, 0.986932 + -0.167340, -0.000000, 0.000000, 0.985899 + -0.173534, -0.000000, 0.000000, 0.984828 + -0.179720, -0.000000, 0.000000, 0.983718 + -0.185899, -0.000000, 0.000000, 0.982569 + -0.192071, -0.000000, 0.000000, 0.981381 + -0.198236, -0.000000, 0.000000, 0.980154 + -0.204392, -0.000000, 0.000000, 0.978889 + -0.210541, -0.000000, 0.000000, 0.977585 + -0.216681, -0.000000, 0.000000, 0.976242 + -0.222813, -0.000000, 0.000000, 0.974861 + -0.228936, -0.000000, 0.000000, 0.973442 + -0.235049, -0.000000, 0.000000, 0.971983 + -0.241154, -0.000000, 0.000000, 0.970487 + -0.247249, -0.000000, 0.000000, 0.968952 + -0.253334, -0.000000, 0.000000, 0.967379 + -0.259409, -0.000000, 0.000000, 0.965767 + -0.265474, -0.000000, 0.000000, 0.964118 + -0.271529, -0.000000, 0.000000, 0.962430 + -0.277572, -0.000000, 0.000000, 0.960705 + -0.283605, -0.000000, 0.000000, 0.958941 + -0.289627, -0.000000, 0.000000, 0.957140 + -0.295637, -0.000000, 0.000000, 0.955300 + -0.301635, -0.000000, 0.000000, 0.953423 + -0.307622, -0.000000, 0.000000, 0.951509 + -0.313596, -0.000000, 0.000000, 0.949556 + -0.319558, -0.000000, 0.000000, 0.947567 + -0.325508, -0.000000, 0.000000, 0.945539 + -0.331444, -0.000000, 0.000000, 0.943475 + -0.337368, -0.000000, 0.000000, 0.941373 + -0.343278, -0.000000, 0.000000, 0.939234 + -0.349174, -0.000000, 0.000000, 0.937058 + -0.355057, -0.000000, 0.000000, 0.934845 + -0.360926, -0.000000, 0.000000, 0.932595 + -0.366780, -0.000000, 0.000000, 0.930308 + -0.372620, -0.000000, 0.000000, 0.927984 + -0.378445, -0.000000, 0.000000, 0.925624 + -0.384256, -0.000000, 0.000000, 0.923227 + -0.390051, -0.000000, 0.000000, 0.920793 + -0.395830, -0.000000, 0.000000, 0.918324 + -0.401594, -0.000000, 0.000000, 0.915818 + -0.407343, -0.000000, 0.000000, 0.913275 + -0.413075, -0.000000, 0.000000, 0.910697 + -0.418791, -0.000000, 0.000000, 0.908083 + -0.424490, -0.000000, 0.000000, 0.905433 + -0.430172, -0.000000, 0.000000, 0.902747 + -0.435838, -0.000000, 0.000000, 0.900025 + -0.441486, -0.000000, 0.000000, 0.897268 + -0.447117, -0.000000, 0.000000, 0.894476 + -0.452730, -0.000000, 0.000000, 0.891648 + -0.458325, -0.000000, 0.000000, 0.888785 + -0.463902, -0.000000, 0.000000, 0.885886 + -0.469461, -0.000000, 0.000000, 0.882953 + -0.475002, -0.000000, 0.000000, 0.879985 + -0.480523, -0.000000, 0.000000, 0.876982 + -0.486026, -0.000000, 0.000000, 0.873945 + -0.491509, -0.000000, 0.000000, 0.870872 + -0.496973, -0.000000, 0.000000, 0.867766 + -0.502417, -0.000000, 0.000000, 0.864625 + -0.507842, -0.000000, 0.000000, 0.861450 + -0.513246, -0.000000, 0.000000, 0.858241 + -0.518630, -0.000000, 0.000000, 0.854999 + -0.523994, -0.000000, 0.000000, 0.851722 + -0.529337, -0.000000, 0.000000, 0.848412 + -0.534659, -0.000000, 0.000000, 0.845068 + -0.539960, -0.000000, 0.000000, 0.841691 + -0.545239, -0.000000, 0.000000, 0.838280 + -0.550497, -0.000000, 0.000000, 0.834837 + -0.555734, -0.000000, 0.000000, 0.831360 + -0.560948, -0.000000, 0.000000, 0.827851 + -0.566140, -0.000000, 0.000000, 0.824309 + -0.571310, -0.000000, 0.000000, 0.820734 + -0.576457, -0.000000, 0.000000, 0.817127 + -0.581581, -0.000000, 0.000000, 0.813488 + -0.586683, -0.000000, 0.000000, 0.809817 + -0.591761, -0.000000, 0.000000, 0.806113 + -0.596816, -0.000000, 0.000000, 0.802378 + -0.601848, -0.000000, 0.000000, 0.798611 + -0.606855, -0.000000, 0.000000, 0.794812 + -0.611839, -0.000000, 0.000000, 0.790983 + -0.616798, -0.000000, 0.000000, 0.787121 + -0.621733, -0.000000, 0.000000, 0.783229 + -0.626644, -0.000000, 0.000000, 0.779306 + -0.631529, -0.000000, 0.000000, 0.775352 + -0.636390, -0.000000, 0.000000, 0.771367 + -0.641226, -0.000000, 0.000000, 0.767352 + -0.646036, -0.000000, 0.000000, 0.763307 + -0.650821, -0.000000, 0.000000, 0.759231 + -0.655580, -0.000000, 0.000000, 0.755126 + -0.660313, -0.000000, 0.000000, 0.750990 + -0.665020, -0.000000, 0.000000, 0.746825 + -0.669701, -0.000000, 0.000000, 0.742631 + -0.674356, -0.000000, 0.000000, 0.738407 + -0.678983, -0.000000, 0.000000, 0.734154 + -0.683584, -0.000000, 0.000000, 0.729872 + -0.688158, -0.000000, 0.000000, 0.725561 + -0.692705, -0.000000, 0.000000, 0.721221 + -0.697224, -0.000000, 0.000000, 0.716853 + -0.701716, -0.000000, 0.000000, 0.712457 + -0.706180, -0.000000, 0.000000, 0.708032 + -0.710616, -0.000000, 0.000000, 0.703580 + -0.715025, -0.000000, 0.000000, 0.699099 + -0.719404, -0.000000, 0.000000, 0.694591 + -0.723756, -0.000000, 0.000000, 0.690056 + -0.728079, -0.000000, 0.000000, 0.685493 + -0.732373, -0.000000, 0.000000, 0.680904 + -0.736638, -0.000000, 0.000000, 0.676287 + -0.740874, -0.000000, 0.000000, 0.671644 + -0.745081, -0.000000, 0.000000, 0.666974 + -0.749258, -0.000000, 0.000000, 0.662278 + -0.753406, -0.000000, 0.000000, 0.657555 + -0.757524, -0.000000, 0.000000, 0.652807 + -0.761612, -0.000000, 0.000000, 0.648033 + -0.765670, -0.000000, 0.000000, 0.643233 + -0.769698, -0.000000, 0.000000, 0.638408 + -0.773695, -0.000000, 0.000000, 0.633558 + -0.777662, -0.000000, 0.000000, 0.628682 + -0.781598, -0.000000, 0.000000, 0.623782 + -0.785503, -0.000000, 0.000000, 0.618857 + -0.789377, -0.000000, 0.000000, 0.613908 + -0.793220, -0.000000, 0.000000, 0.608935 + -0.797032, -0.000000, 0.000000, 0.603937 + -0.800812, -0.000000, 0.000000, 0.598915 + -0.804561, -0.000000, 0.000000, 0.593870 + -0.808277, -0.000000, 0.000000, 0.588802 + -0.811962, -0.000000, 0.000000, 0.583710 + -0.815615, -0.000000, 0.000000, 0.578595 + -0.819235, -0.000000, 0.000000, 0.573457 + -0.822824, -0.000000, 0.000000, 0.568297 + -0.826379, -0.000000, 0.000000, 0.563114 + -0.829902, -0.000000, 0.000000, 0.557909 + -0.833392, -0.000000, 0.000000, 0.552682 + -0.836850, -0.000000, 0.000000, 0.547433 + -0.840274, -0.000000, 0.000000, 0.542162 + -0.843665, -0.000000, 0.000000, 0.536870 + -0.847023, -0.000000, 0.000000, 0.531557 + -0.850347, -0.000000, 0.000000, 0.526223 + -0.853638, -0.000000, 0.000000, 0.520868 + -0.856894, -0.000000, 0.000000, 0.515492 + -0.860117, -0.000000, 0.000000, 0.510096 + -0.863307, -0.000000, 0.000000, 0.504680 + -0.866462, -0.000000, 0.000000, 0.499244 + -0.869582, -0.000000, 0.000000, 0.493788 + -0.872669, -0.000000, 0.000000, 0.488313 + -0.875721, -0.000000, 0.000000, 0.482818 + -0.878738, -0.000000, 0.000000, 0.477305 + -0.881721, -0.000000, 0.000000, 0.471772 + -0.884668, -0.000000, 0.000000, 0.466221 + -0.887581, -0.000000, 0.000000, 0.460651 + -0.890459, -0.000000, 0.000000, 0.455064 + -0.893302, -0.000000, 0.000000, 0.449458 + -0.896109, -0.000000, 0.000000, 0.443834 + -0.898881, -0.000000, 0.000000, 0.438193 + -0.901617, -0.000000, 0.000000, 0.432535 + -0.904318, -0.000000, 0.000000, 0.426860 + -0.906983, -0.000000, 0.000000, 0.421167 + -0.909612, -0.000000, 0.000000, 0.415458 + -0.912206, -0.000000, 0.000000, 0.409733 + -0.914763, -0.000000, 0.000000, 0.403991 + -0.917284, -0.000000, 0.000000, 0.398234 + -0.919769, -0.000000, 0.000000, 0.392461 + -0.922217, -0.000000, 0.000000, 0.386672 + -0.924629, -0.000000, 0.000000, 0.380868 + -0.927005, -0.000000, 0.000000, 0.375049 + -0.929344, -0.000000, 0.000000, 0.369215 + -0.931646, -0.000000, 0.000000, 0.363367 + -0.933912, -0.000000, 0.000000, 0.357504 + -0.936140, -0.000000, 0.000000, 0.351627 + -0.938332, -0.000000, 0.000000, 0.345736 + -0.940486, -0.000000, 0.000000, 0.339832 + -0.942604, -0.000000, 0.000000, 0.333914 + -0.944684, -0.000000, 0.000000, 0.327983 + -0.946727, -0.000000, 0.000000, 0.322039 + -0.948732, -0.000000, 0.000000, 0.316082 + -0.950700, -0.000000, 0.000000, 0.310113 + -0.952630, -0.000000, 0.000000, 0.304131 + -0.954523, -0.000000, 0.000000, 0.298138 + -0.956378, -0.000000, 0.000000, 0.292132 + -0.958195, -0.000000, 0.000000, 0.286116 + -0.959975, -0.000000, 0.000000, 0.280087 + -0.961716, -0.000000, 0.000000, 0.274048 + -0.963419, -0.000000, 0.000000, 0.267998 + -0.965085, -0.000000, 0.000000, 0.261938 + -0.966712, -0.000000, 0.000000, 0.255867 + -0.968301, -0.000000, 0.000000, 0.249786 + -0.969852, -0.000000, 0.000000, 0.243695 + -0.971365, -0.000000, 0.000000, 0.237594 + -0.972839, -0.000000, 0.000000, 0.231484 + -0.974274, -0.000000, 0.000000, 0.225365 + -0.975672, -0.000000, 0.000000, 0.219237 + -0.977030, -0.000000, 0.000000, 0.213100 + -0.978350, -0.000000, 0.000000, 0.206955 + -0.979632, -0.000000, 0.000000, 0.200802 + -0.980875, -0.000000, 0.000000, 0.194641 + -0.982079, -0.000000, 0.000000, 0.188472 + -0.983244, -0.000000, 0.000000, 0.182296 + -0.984370, -0.000000, 0.000000, 0.176112 + -0.985458, -0.000000, 0.000000, 0.169922 + -0.986506, -0.000000, 0.000000, 0.163724 + -0.987516, -0.000000, 0.000000, 0.157521 + -0.988486, -0.000000, 0.000000, 0.151311 + -0.989418, -0.000000, 0.000000, 0.145095 + -0.990310, -0.000000, 0.000000, 0.138873 + -0.991163, -0.000000, 0.000000, 0.132646 + -0.991978, -0.000000, 0.000000, 0.126414 + -0.992753, -0.000000, 0.000000, 0.120177 + -0.993488, -0.000000, 0.000000, 0.113935 + -0.994185, -0.000000, 0.000000, 0.107688 + -0.994842, -0.000000, 0.000000, 0.101437 + -0.995460, -0.000000, 0.000000, 0.095182 + -0.996038, -0.000000, 0.000000, 0.088924 + -0.996578, -0.000000, 0.000000, 0.082662 + -0.997078, -0.000000, 0.000000, 0.076396 + -0.997538, -0.000000, 0.000000, 0.070128 + -0.997959, -0.000000, 0.000000, 0.063857 + -0.998341, -0.000000, 0.000000, 0.057583 + -0.998683, -0.000000, 0.000000, 0.051307 + -0.998986, -0.000000, 0.000000, 0.045029 + -0.999249, -0.000000, 0.000000, 0.038750 + -0.999473, -0.000000, 0.000000, 0.032468 + -0.999657, -0.000000, 0.000000, 0.026186 + -0.999802, -0.000000, 0.000000, 0.019902 + -0.999907, -0.000000, 0.000000, 0.013618 + -0.999973, -0.000000, 0.000000, 0.007333 + -0.999999, -0.000000, 0.000000, 0.001048 + -0.999986, 0.000000, -0.000000, -0.005238 + -0.999934, 0.000000, -0.000000, -0.011523 + -0.999841, 0.000000, -0.000000, -0.017807 + -0.999710, 0.000000, -0.000000, -0.024091 + -0.999539, 0.000000, -0.000000, -0.030374 + -0.999328, 0.000000, -0.000000, -0.036656 + -0.999078, 0.000000, -0.000000, -0.042936 + -0.998788, 0.000000, -0.000000, -0.049215 + -0.998459, 0.000000, -0.000000, -0.055491 + -0.998091, 0.000000, -0.000000, -0.061766 + -0.997683, 0.000000, -0.000000, -0.068038 + -0.997235, 0.000000, -0.000000, -0.074307 + -0.996749, 0.000000, -0.000000, -0.080574 + -0.996223, 0.000000, -0.000000, -0.086837 + -0.995657, 0.000000, -0.000000, -0.093097 + -0.995052, 0.000000, -0.000000, -0.099353 + -0.994408, 0.000000, -0.000000, -0.105605 + -0.993725, 0.000000, -0.000000, -0.111853 + -0.993002, 0.000000, -0.000000, -0.118097 + -0.992240, 0.000000, -0.000000, -0.124335 + -0.991439, 0.000000, -0.000000, -0.130569 + -0.990599, 0.000000, -0.000000, -0.136798 + -0.989720, 0.000000, -0.000000, -0.143022 + -0.988801, 0.000000, -0.000000, -0.149240 + -0.987844, 0.000000, -0.000000, -0.155451 + -0.986847, 0.000000, -0.000000, -0.161657 + -0.985811, 0.000000, -0.000000, -0.167857 + -0.984737, 0.000000, -0.000000, -0.174049 + -0.983624, 0.000000, -0.000000, -0.180235 + -0.982471, 0.000000, -0.000000, -0.186414 + -0.981280, 0.000000, -0.000000, -0.192585 + -0.980050, 0.000000, -0.000000, -0.198749 + -0.978782, 0.000000, -0.000000, -0.204905 + -0.977475, 0.000000, -0.000000, -0.211053 + -0.976129, 0.000000, -0.000000, -0.217192 + -0.974744, 0.000000, -0.000000, -0.223323 + -0.973322, 0.000000, -0.000000, -0.229445 + -0.971860, 0.000000, -0.000000, -0.235558 + -0.970360, 0.000000, -0.000000, -0.241662 + -0.968822, 0.000000, -0.000000, -0.247756 + -0.967246, 0.000000, -0.000000, -0.253841 + -0.965631, 0.000000, -0.000000, -0.259915 + -0.963979, 0.000000, -0.000000, -0.265979 + -0.962288, 0.000000, -0.000000, -0.272033 + -0.960559, 0.000000, -0.000000, -0.278076 + -0.958792, 0.000000, -0.000000, -0.284107 + -0.956988, 0.000000, -0.000000, -0.290128 + -0.955145, 0.000000, -0.000000, -0.296137 + -0.953265, 0.000000, -0.000000, -0.302135 + -0.951347, 0.000000, -0.000000, -0.308120 + -0.949392, 0.000000, -0.000000, -0.314094 + -0.947399, 0.000000, -0.000000, -0.320055 + -0.945369, 0.000000, -0.000000, -0.326003 + -0.943301, 0.000000, -0.000000, -0.331938 + -0.941196, 0.000000, -0.000000, -0.337861 + -0.939054, 0.000000, -0.000000, -0.343770 + -0.936875, 0.000000, -0.000000, -0.349665 + -0.934659, 0.000000, -0.000000, -0.355547 + -0.932405, 0.000000, -0.000000, -0.361414 + -0.930115, 0.000000, -0.000000, -0.367267 + -0.927789, 0.000000, -0.000000, -0.373106 + -0.925425, 0.000000, -0.000000, -0.378930 + -0.923025, 0.000000, -0.000000, -0.384739 + -0.920589, 0.000000, -0.000000, -0.390533 + -0.918116, 0.000000, -0.000000, -0.396311 + -0.915607, 0.000000, -0.000000, -0.402074 + -0.913062, 0.000000, -0.000000, -0.407821 + -0.910481, 0.000000, -0.000000, -0.413552 + -0.907863, 0.000000, -0.000000, -0.419266 + -0.905210, 0.000000, -0.000000, -0.424964 + -0.902521, 0.000000, -0.000000, -0.430645 + -0.899797, 0.000000, -0.000000, -0.436309 + -0.897037, 0.000000, -0.000000, -0.441956 + -0.894241, 0.000000, -0.000000, -0.447585 + -0.891410, 0.000000, -0.000000, -0.453197 + -0.888544, 0.000000, -0.000000, -0.458791 + -0.885643, 0.000000, -0.000000, -0.464366 + -0.882707, 0.000000, -0.000000, -0.469924 + -0.879736, 0.000000, -0.000000, -0.475462 + -0.876730, 0.000000, -0.000000, -0.480982 + -0.873690, 0.000000, -0.000000, -0.486483 + -0.870615, 0.000000, -0.000000, -0.491965 + -0.867506, 0.000000, -0.000000, -0.497427 + -0.864362, 0.000000, -0.000000, -0.502870 + -0.861184, 0.000000, -0.000000, -0.508293 + -0.857973, 0.000000, -0.000000, -0.513696 + -0.854727, 0.000000, -0.000000, -0.519078 + -0.851447, 0.000000, -0.000000, -0.524440 + -0.848134, 0.000000, -0.000000, -0.529781 + -0.844788, 0.000000, -0.000000, -0.535101 + -0.841408, 0.000000, -0.000000, -0.540400 + -0.837995, 0.000000, -0.000000, -0.545678 + -0.834549, 0.000000, -0.000000, -0.550934 + -0.831069, 0.000000, -0.000000, -0.556169 + -0.827557, 0.000000, -0.000000, -0.561381 + -0.824012, 0.000000, -0.000000, -0.566572 + -0.820435, 0.000000, -0.000000, -0.571740 + -0.816825, 0.000000, -0.000000, -0.576885 + -0.813183, 0.000000, -0.000000, -0.582008 + -0.809509, 0.000000, -0.000000, -0.587107 + -0.805803, 0.000000, -0.000000, -0.592183 + -0.802065, 0.000000, -0.000000, -0.597236 + -0.798296, 0.000000, -0.000000, -0.602266 + -0.794494, 0.000000, -0.000000, -0.607271 + -0.790662, 0.000000, -0.000000, -0.612253 + -0.786798, 0.000000, -0.000000, -0.617210 + -0.782903, 0.000000, -0.000000, -0.622143 + -0.778978, 0.000000, -0.000000, -0.627052 + -0.775021, 0.000000, -0.000000, -0.631935 + -0.771034, 0.000000, -0.000000, -0.636794 + -0.767016, 0.000000, -0.000000, -0.641628 + -0.762968, 0.000000, -0.000000, -0.646436 + -0.758890, 0.000000, -0.000000, -0.651219 + -0.754782, 0.000000, -0.000000, -0.655976 + -0.750644, 0.000000, -0.000000, -0.660707 + -0.746477, 0.000000, -0.000000, -0.665412 + -0.742280, 0.000000, -0.000000, -0.670090 + -0.738053, 0.000000, -0.000000, -0.674742 + -0.733798, 0.000000, -0.000000, -0.679368 + -0.729513, 0.000000, -0.000000, -0.683967 + -0.725200, 0.000000, -0.000000, -0.688538 + -0.720858, 0.000000, -0.000000, -0.693083 + -0.716488, 0.000000, -0.000000, -0.697600 + -0.712089, 0.000000, -0.000000, -0.702089 + -0.707662, 0.000000, -0.000000, -0.706551 + -0.703207, 0.000000, -0.000000, -0.710985 + -0.698725, 0.000000, -0.000000, -0.715391 + -0.694214, 0.000000, -0.000000, -0.719768 + -0.689677, 0.000000, -0.000000, -0.724117 + -0.685112, 0.000000, -0.000000, -0.728438 + -0.680520, 0.000000, -0.000000, -0.732729 + -0.675901, 0.000000, -0.000000, -0.736992 + -0.671256, 0.000000, -0.000000, -0.741226 + -0.666584, 0.000000, -0.000000, -0.745430 + -0.661885, 0.000000, -0.000000, -0.749605 + -0.657161, 0.000000, -0.000000, -0.753750 + -0.652410, 0.000000, -0.000000, -0.757866 + -0.647634, 0.000000, -0.000000, -0.761952 + -0.642832, 0.000000, -0.000000, -0.766007 + -0.638005, 0.000000, -0.000000, -0.770032 + -0.633153, 0.000000, -0.000000, -0.774027 + -0.628275, 0.000000, -0.000000, -0.777991 + -0.623373, 0.000000, -0.000000, -0.781925 + -0.618446, 0.000000, -0.000000, -0.785827 + -0.613495, 0.000000, -0.000000, -0.789699 + -0.608519, 0.000000, -0.000000, -0.793539 + -0.603519, 0.000000, -0.000000, -0.797348 + -0.598496, 0.000000, -0.000000, -0.801126 + -0.593449, 0.000000, -0.000000, -0.804872 + -0.588378, 0.000000, -0.000000, -0.808586 + -0.583285, 0.000000, -0.000000, -0.812268 + -0.578168, 0.000000, -0.000000, -0.815918 + -0.573028, 0.000000, -0.000000, -0.819536 + -0.567866, 0.000000, -0.000000, -0.823121 + -0.562681, 0.000000, -0.000000, -0.826674 + -0.557474, 0.000000, -0.000000, -0.830194 + -0.552245, 0.000000, -0.000000, -0.833682 + -0.546994, 0.000000, -0.000000, -0.837136 + -0.541722, 0.000000, -0.000000, -0.840558 + -0.536428, 0.000000, -0.000000, -0.843946 + -0.531113, 0.000000, -0.000000, -0.847301 + -0.525777, 0.000000, -0.000000, -0.850622 + -0.520420, 0.000000, -0.000000, -0.853910 + -0.515043, 0.000000, -0.000000, -0.857164 + -0.509645, 0.000000, -0.000000, -0.860385 + -0.504228, 0.000000, -0.000000, -0.863571 + -0.498790, 0.000000, -0.000000, -0.866723 + -0.493332, 0.000000, -0.000000, -0.869841 + -0.487856, 0.000000, -0.000000, -0.872924 + -0.482359, 0.000000, -0.000000, -0.875973 + -0.476844, 0.000000, -0.000000, -0.878988 + -0.471310, 0.000000, -0.000000, -0.881968 + -0.465757, 0.000000, -0.000000, -0.884912 + -0.460186, 0.000000, -0.000000, -0.887822 + -0.454597, 0.000000, -0.000000, -0.890697 + -0.448990, 0.000000, -0.000000, -0.893537 + -0.443365, 0.000000, -0.000000, -0.896341 + -0.437722, 0.000000, -0.000000, -0.899110 + -0.432063, 0.000000, -0.000000, -0.901844 + -0.426386, 0.000000, -0.000000, -0.904541 + -0.420692, 0.000000, -0.000000, -0.907203 + -0.414982, 0.000000, -0.000000, -0.909830 + -0.409255, 0.000000, -0.000000, -0.912420 + -0.403512, 0.000000, -0.000000, -0.914974 + -0.397753, 0.000000, -0.000000, -0.917492 + -0.391979, 0.000000, -0.000000, -0.919974 + -0.386189, 0.000000, -0.000000, -0.922420 + -0.380384, 0.000000, -0.000000, -0.924829 + -0.374563, 0.000000, -0.000000, -0.927201 + -0.368728, 0.000000, -0.000000, -0.929537 + -0.362879, 0.000000, -0.000000, -0.931836 + -0.357015, 0.000000, -0.000000, -0.934099 + -0.351137, 0.000000, -0.000000, -0.936324 + -0.345245, 0.000000, -0.000000, -0.938513 + -0.339339, 0.000000, -0.000000, -0.940664 + -0.333420, 0.000000, -0.000000, -0.942778 + -0.327488, 0.000000, -0.000000, -0.944855 + -0.321543, 0.000000, -0.000000, -0.946895 + -0.315585, 0.000000, -0.000000, -0.948897 + -0.309615, 0.000000, -0.000000, -0.950862 + -0.303632, 0.000000, -0.000000, -0.952789 + -0.297638, 0.000000, -0.000000, -0.954679 + -0.291631, 0.000000, -0.000000, -0.956531 + -0.285614, 0.000000, -0.000000, -0.958345 + -0.279585, 0.000000, -0.000000, -0.960121 + -0.273544, 0.000000, -0.000000, -0.961859 + -0.267494, 0.000000, -0.000000, -0.963560 + -0.261432, 0.000000, -0.000000, -0.965222 + -0.255360, 0.000000, -0.000000, -0.966846 + -0.249278, 0.000000, -0.000000, -0.968432 + -0.243187, 0.000000, -0.000000, -0.969980 + -0.237085, 0.000000, -0.000000, -0.971489 + -0.230975, 0.000000, -0.000000, -0.972960 + -0.224855, 0.000000, -0.000000, -0.974392 + -0.218726, 0.000000, -0.000000, -0.975786 + -0.212589, 0.000000, -0.000000, -0.977142 + -0.206443, 0.000000, -0.000000, -0.978459 + -0.200289, 0.000000, -0.000000, -0.979737 + -0.194127, 0.000000, -0.000000, -0.980976 + -0.187958, 0.000000, -0.000000, -0.982177 + -0.181781, 0.000000, -0.000000, -0.983339 + -0.175596, 0.000000, -0.000000, -0.984462 + -0.169405, 0.000000, -0.000000, -0.985546 + -0.163208, 0.000000, -0.000000, -0.986592 + -0.157003, 0.000000, -0.000000, -0.987598 + -0.150793, 0.000000, -0.000000, -0.988565 + -0.144577, 0.000000, -0.000000, -0.989494 + -0.138355, 0.000000, -0.000000, -0.990383 + -0.132127, 0.000000, -0.000000, -0.991233 + -0.125894, 0.000000, -0.000000, -0.992044 + -0.119657, 0.000000, -0.000000, -0.992815 + -0.113414, 0.000000, -0.000000, -0.993548 + -0.107167, 0.000000, -0.000000, -0.994241 + -0.100916, 0.000000, -0.000000, -0.994895 + -0.094661, 0.000000, -0.000000, -0.995510 + -0.088402, 0.000000, -0.000000, -0.996085 + -0.082140, 0.000000, -0.000000, -0.996621 + -0.075874, 0.000000, -0.000000, -0.997117 + -0.069606, 0.000000, -0.000000, -0.997575 + -0.063334, 0.000000, -0.000000, -0.997992 + -0.057060, 0.000000, -0.000000, -0.998371 + -0.050784, 0.000000, -0.000000, -0.998710 + -0.044506, 0.000000, -0.000000, -0.999009 + -0.038226, 0.000000, -0.000000, -0.999269 + -0.031945, 0.000000, -0.000000, -0.999490 + -0.025662, 0.000000, -0.000000, -0.999671 + -0.019378, 0.000000, -0.000000, -0.999812 + -0.013094, 0.000000, -0.000000, -0.999914 + -0.006809, 0.000000, -0.000000, -0.999977 + -0.000524, 0.000000, -0.000000, -1.000000 + 0.005761, 0.000000, 0.000000, -0.999983 + 0.012046, 0.000000, 0.000000, -0.999927 + 0.018331, 0.000000, 0.000000, -0.999832 + 0.024615, 0.000000, 0.000000, -0.999697 + 0.030898, 0.000000, 0.000000, -0.999523 + 0.037179, 0.000000, 0.000000, -0.999309 + 0.043459, 0.000000, 0.000000, -0.999055 + 0.049738, 0.000000, 0.000000, -0.998762 + 0.056014, 0.000000, 0.000000, -0.998430 + 0.062289, 0.000000, 0.000000, -0.998058 + 0.068560, 0.000000, 0.000000, -0.997647 + 0.074830, 0.000000, 0.000000, -0.997196 + 0.081096, 0.000000, 0.000000, -0.996706 + 0.087359, 0.000000, 0.000000, -0.996177 + 0.093618, 0.000000, 0.000000, -0.995608 + 0.099874, 0.000000, 0.000000, -0.995000 + 0.106126, 0.000000, 0.000000, -0.994353 + 0.112373, 0.000000, 0.000000, -0.993666 + 0.118617, 0.000000, 0.000000, -0.992940 + 0.124855, 0.000000, 0.000000, -0.992175 + 0.131089, 0.000000, 0.000000, -0.991371 + 0.137317, 0.000000, 0.000000, -0.990527 + 0.143540, 0.000000, 0.000000, -0.989644 + 0.149757, 0.000000, 0.000000, -0.988723 + 0.155969, 0.000000, 0.000000, -0.987762 + 0.162174, 0.000000, 0.000000, -0.986762 + 0.168373, 0.000000, 0.000000, -0.985723 + 0.174565, 0.000000, 0.000000, -0.984646 + 0.180750, 0.000000, 0.000000, -0.983529 + 0.186929, 0.000000, 0.000000, -0.982374 + 0.193099, 0.000000, 0.000000, -0.981179 + 0.199262, 0.000000, 0.000000, -0.979946 + 0.205418, 0.000000, 0.000000, -0.978674 + 0.211565, 0.000000, 0.000000, -0.977364 + 0.217704, 0.000000, 0.000000, -0.976015 + 0.223834, 0.000000, 0.000000, -0.974627 + 0.229955, 0.000000, 0.000000, -0.973201 + 0.236067, 0.000000, 0.000000, -0.971737 + 0.242170, 0.000000, 0.000000, -0.970234 + 0.248264, 0.000000, 0.000000, -0.968692 + 0.254347, 0.000000, 0.000000, -0.967113 + 0.260421, 0.000000, 0.000000, -0.965495 + 0.266484, 0.000000, 0.000000, -0.963839 + 0.272537, 0.000000, 0.000000, -0.962145 + 0.278579, 0.000000, 0.000000, -0.960413 + 0.284610, 0.000000, 0.000000, -0.958644 + 0.290629, 0.000000, 0.000000, -0.956836 + 0.296637, 0.000000, 0.000000, -0.954990 + 0.302634, 0.000000, 0.000000, -0.953107 + 0.308618, 0.000000, 0.000000, -0.951186 + 0.314591, 0.000000, 0.000000, -0.949227 + 0.320551, 0.000000, 0.000000, -0.947231 + 0.326498, 0.000000, 0.000000, -0.945198 + 0.332432, 0.000000, 0.000000, -0.943127 + 0.338354, 0.000000, 0.000000, -0.941019 + 0.344261, 0.000000, 0.000000, -0.938874 + 0.350156, 0.000000, 0.000000, -0.936692 + 0.356036, 0.000000, 0.000000, -0.934472 + 0.361902, 0.000000, 0.000000, -0.932216 + 0.367754, 0.000000, 0.000000, -0.929923 + 0.373592, 0.000000, 0.000000, -0.927593 + 0.379415, 0.000000, 0.000000, -0.925227 + 0.385222, 0.000000, 0.000000, -0.922824 + 0.391015, 0.000000, 0.000000, -0.920384 + 0.396792, 0.000000, 0.000000, -0.917908 + 0.402554, 0.000000, 0.000000, -0.915396 + 0.408299, 0.000000, 0.000000, -0.912848 + 0.414029, 0.000000, 0.000000, -0.910264 + 0.419742, 0.000000, 0.000000, -0.907644 + 0.425438, 0.000000, 0.000000, -0.904988 + 0.431118, 0.000000, 0.000000, -0.902296 + 0.436780, 0.000000, 0.000000, -0.899568 + 0.442426, 0.000000, 0.000000, -0.896805 + 0.448054, 0.000000, 0.000000, -0.894007 + 0.453664, 0.000000, 0.000000, -0.891173 + 0.459256, 0.000000, 0.000000, -0.888304 + 0.464830, 0.000000, 0.000000, -0.885400 + 0.470386, 0.000000, 0.000000, -0.882461 + 0.475923, 0.000000, 0.000000, -0.879487 + 0.481442, 0.000000, 0.000000, -0.876478 + 0.486941, 0.000000, 0.000000, -0.873435 + 0.492421, 0.000000, 0.000000, -0.870357 + 0.497882, 0.000000, 0.000000, -0.867245 + 0.503323, 0.000000, 0.000000, -0.864099 + 0.508744, 0.000000, 0.000000, -0.860918 + 0.514145, 0.000000, 0.000000, -0.857703 + 0.519526, 0.000000, 0.000000, -0.854455 + 0.524886, 0.000000, 0.000000, -0.851173 + 0.530225, 0.000000, 0.000000, -0.847857 + 0.535544, 0.000000, 0.000000, -0.844507 + 0.540841, 0.000000, 0.000000, -0.841125 + 0.546117, 0.000000, 0.000000, -0.837709 + 0.551371, 0.000000, 0.000000, -0.834260 + 0.556604, 0.000000, 0.000000, -0.830778 + 0.561815, 0.000000, 0.000000, -0.827263 + 0.567003, 0.000000, 0.000000, -0.823716 + 0.572169, 0.000000, 0.000000, -0.820136 + 0.577313, 0.000000, 0.000000, -0.816523 + 0.582433, 0.000000, 0.000000, -0.812878 + 0.587531, 0.000000, 0.000000, -0.809202 + 0.592605, 0.000000, 0.000000, -0.805493 + 0.597656, 0.000000, 0.000000, -0.801752 + 0.602684, 0.000000, 0.000000, -0.797980 + 0.607687, 0.000000, 0.000000, -0.794176 + 0.612667, 0.000000, 0.000000, -0.790341 + 0.617622, 0.000000, 0.000000, -0.786475 + 0.622553, 0.000000, 0.000000, -0.782577 + 0.627460, 0.000000, 0.000000, -0.778649 + 0.632341, 0.000000, 0.000000, -0.774690 + 0.637198, 0.000000, 0.000000, -0.770700 + 0.642029, 0.000000, 0.000000, -0.766680 + 0.646835, 0.000000, 0.000000, -0.762630 + 0.651616, 0.000000, 0.000000, -0.758549 + 0.656371, 0.000000, 0.000000, -0.754438 + 0.661100, 0.000000, 0.000000, -0.750298 + 0.665802, 0.000000, 0.000000, -0.746128 + 0.670479, 0.000000, 0.000000, -0.741929 + 0.675129, 0.000000, 0.000000, -0.737700 + 0.679752, 0.000000, 0.000000, -0.733442 + 0.684349, 0.000000, 0.000000, -0.729155 + 0.688918, 0.000000, 0.000000, -0.724839 + 0.693460, 0.000000, 0.000000, -0.720495 + 0.697975, 0.000000, 0.000000, -0.716122 + 0.702462, 0.000000, 0.000000, -0.711721 + 0.706922, 0.000000, 0.000000, -0.707292 + 0.711353, 0.000000, 0.000000, -0.702835 + 0.715757, 0.000000, 0.000000, -0.698350 + 0.720132, 0.000000, 0.000000, -0.693837 + 0.724478, 0.000000, 0.000000, -0.689297 + 0.728797, 0.000000, 0.000000, -0.684730 + 0.733086, 0.000000, 0.000000, -0.680136 + 0.737346, 0.000000, 0.000000, -0.675515 + 0.741577, 0.000000, 0.000000, -0.670867 + 0.745779, 0.000000, 0.000000, -0.666193 + 0.749952, 0.000000, 0.000000, -0.661493 + 0.754095, 0.000000, 0.000000, -0.656766 + 0.758208, 0.000000, 0.000000, -0.652013 + 0.762291, 0.000000, 0.000000, -0.647235 + 0.766344, 0.000000, 0.000000, -0.642431 + 0.770366, 0.000000, 0.000000, -0.637602 + 0.774359, 0.000000, 0.000000, -0.632747 + 0.778320, 0.000000, 0.000000, -0.627867 + 0.782251, 0.000000, 0.000000, -0.622963 + 0.786151, 0.000000, 0.000000, -0.618034 + 0.790020, 0.000000, 0.000000, -0.613081 + 0.793858, 0.000000, 0.000000, -0.608103 + 0.797664, 0.000000, 0.000000, -0.603102 + 0.801439, 0.000000, 0.000000, -0.598076 + 0.805182, 0.000000, 0.000000, -0.593027 + 0.808894, 0.000000, 0.000000, -0.587955 + 0.812573, 0.000000, 0.000000, -0.582859 + 0.816221, 0.000000, 0.000000, -0.577740 + 0.819836, 0.000000, 0.000000, -0.572599 + 0.823418, 0.000000, 0.000000, -0.567435 + 0.826969, 0.000000, 0.000000, -0.562248 + 0.830486, 0.000000, 0.000000, -0.557039 + 0.833971, 0.000000, 0.000000, -0.551808 + 0.837423, 0.000000, 0.000000, -0.546556 + 0.840841, 0.000000, 0.000000, -0.541282 + 0.844227, 0.000000, 0.000000, -0.535986 + 0.847579, 0.000000, 0.000000, -0.530669 + 0.850898, 0.000000, 0.000000, -0.525332 + 0.854183, 0.000000, 0.000000, -0.519973 + 0.857434, 0.000000, 0.000000, -0.514594 + 0.860651, 0.000000, 0.000000, -0.509195 + 0.863835, 0.000000, 0.000000, -0.503775 + 0.866984, 0.000000, 0.000000, -0.498336 + 0.870099, 0.000000, 0.000000, -0.492877 + 0.873180, 0.000000, 0.000000, -0.487398 + 0.876226, 0.000000, 0.000000, -0.481901 + 0.879237, 0.000000, 0.000000, -0.476384 + 0.882214, 0.000000, 0.000000, -0.470848 + 0.885156, 0.000000, 0.000000, -0.465294 + 0.888063, 0.000000, 0.000000, -0.459721 + 0.890935, 0.000000, 0.000000, -0.454130 + 0.893772, 0.000000, 0.000000, -0.448522 + 0.896573, 0.000000, 0.000000, -0.442895 + 0.899339, 0.000000, 0.000000, -0.437251 + 0.902070, 0.000000, 0.000000, -0.431590 + 0.904765, 0.000000, 0.000000, -0.425912 + 0.907424, 0.000000, 0.000000, -0.420217 + 0.910047, 0.000000, 0.000000, -0.414505 + 0.912634, 0.000000, 0.000000, -0.408777 + 0.915185, 0.000000, 0.000000, -0.403033 + 0.917701, 0.000000, 0.000000, -0.397273 + 0.920179, 0.000000, 0.000000, -0.391497 + 0.922622, 0.000000, 0.000000, -0.385706 + 0.925028, 0.000000, 0.000000, -0.379899 + 0.927397, 0.000000, 0.000000, -0.374078 + 0.929730, 0.000000, 0.000000, -0.368241 + 0.932026, 0.000000, 0.000000, -0.362391 + 0.934286, 0.000000, 0.000000, -0.356525 + 0.936508, 0.000000, 0.000000, -0.350646 + 0.938693, 0.000000, 0.000000, -0.344753 + 0.940842, 0.000000, 0.000000, -0.338846 + 0.942953, 0.000000, 0.000000, -0.332926 + 0.945027, 0.000000, 0.000000, -0.326993 + 0.947063, 0.000000, 0.000000, -0.321047 + 0.949062, 0.000000, 0.000000, -0.315088 + 0.951024, 0.000000, 0.000000, -0.309117 + 0.952948, 0.000000, 0.000000, -0.303133 + 0.954835, 0.000000, 0.000000, -0.297138 + 0.956683, 0.000000, 0.000000, -0.291130 + 0.958494, 0.000000, 0.000000, -0.285112 + 0.960267, 0.000000, 0.000000, -0.279082 + 0.962003, 0.000000, 0.000000, -0.273041 + 0.963700, 0.000000, 0.000000, -0.266989 + 0.965359, 0.000000, 0.000000, -0.260926 + 0.966980, 0.000000, 0.000000, -0.254854 + 0.968562, 0.000000, 0.000000, -0.248771 + 0.970107, 0.000000, 0.000000, -0.242678 + 0.971613, 0.000000, 0.000000, -0.236576 + 0.973081, 0.000000, 0.000000, -0.230465 + 0.974510, 0.000000, 0.000000, -0.224344 + 0.975901, 0.000000, 0.000000, -0.218215 + 0.977253, 0.000000, 0.000000, -0.212077 + 0.978567, 0.000000, 0.000000, -0.205930 + 0.979842, 0.000000, 0.000000, -0.199776 + 0.981078, 0.000000, 0.000000, -0.193613 + 0.982275, 0.000000, 0.000000, -0.187443 + 0.983434, 0.000000, 0.000000, -0.181266 + 0.984554, 0.000000, 0.000000, -0.175081 + 0.985635, 0.000000, 0.000000, -0.168889 + 0.986677, 0.000000, 0.000000, -0.162691 + 0.987680, 0.000000, 0.000000, -0.156486 + 0.988644, 0.000000, 0.000000, -0.150275 + 0.989569, 0.000000, 0.000000, -0.144058 + 0.990455, 0.000000, 0.000000, -0.137836 + 0.991302, 0.000000, 0.000000, -0.131608 + 0.992109, 0.000000, 0.000000, -0.125375 + 0.992878, 0.000000, 0.000000, -0.119137 + 0.993607, 0.000000, 0.000000, -0.112894 + 0.994297, 0.000000, 0.000000, -0.106647 + 0.994948, 0.000000, 0.000000, -0.100395 + 0.995559, 0.000000, 0.000000, -0.094140 + 0.996131, 0.000000, 0.000000, -0.087880 + 0.996664, 0.000000, 0.000000, -0.081618 + 0.997157, 0.000000, 0.000000, -0.075352 + 0.997611, 0.000000, 0.000000, -0.069083 + 0.998025, 0.000000, 0.000000, -0.062811 + 0.998400, 0.000000, 0.000000, -0.056537 + 0.998736, 0.000000, 0.000000, -0.050261 + 0.999032, 0.000000, 0.000000, -0.043983 + 0.999289, 0.000000, 0.000000, -0.037703 + 0.999506, 0.000000, 0.000000, -0.031421 + 0.999684, 0.000000, 0.000000, -0.025138 + 0.999822, 0.000000, 0.000000, -0.018855 + 0.999921, 0.000000, 0.000000, -0.012570 + 0.999980, 0.000000, 0.000000, -0.006285 + 1.000000, 0.000000, 0.000000, -0.000000 diff --git a/scripts/trajectories/full-circle-T15.0-w1.0.csv b/scripts/trajectories/full-circle-T15.0-w1.0.csv index 1b49b3cc27..db5f6c40b3 100644 --- a/scripts/trajectories/full-circle-T15.0-w1.0.csv +++ b/scripts/trajectories/full-circle-T15.0-w1.0.csv @@ -1,3000 +1,3000 @@ -0, 1.000000, 0.000000, 0.000000, 0.000000 -1, 0.999877, 0.000000, 0.000000, 0.015713 -2, 0.999506, 0.000000, 0.000000, 0.031421 -3, 0.998889, 0.000000, 0.000000, 0.047122 -4, 0.998025, 0.000000, 0.000000, 0.062811 -5, 0.996915, 0.000000, 0.000000, 0.078485 -6, 0.995559, 0.000000, 0.000000, 0.094140 -7, 0.993957, 0.000000, 0.000000, 0.109771 -8, 0.992109, 0.000000, 0.000000, 0.125375 -9, 0.990017, 0.000000, 0.000000, 0.140948 -10, 0.987680, 0.000000, 0.000000, 0.156486 -11, 0.985099, 0.000000, 0.000000, 0.171986 -12, 0.982275, 0.000000, 0.000000, 0.187443 -13, 0.979209, 0.000000, 0.000000, 0.202854 -14, 0.975901, 0.000000, 0.000000, 0.218215 -15, 0.972352, 0.000000, 0.000000, 0.233522 -16, 0.968562, 0.000000, 0.000000, 0.248771 -17, 0.964534, 0.000000, 0.000000, 0.263959 -18, 0.960267, 0.000000, 0.000000, 0.279082 -19, 0.955764, 0.000000, 0.000000, 0.294135 -20, 0.951024, 0.000000, 0.000000, 0.309117 -21, 0.946050, 0.000000, 0.000000, 0.324021 -22, 0.940842, 0.000000, 0.000000, 0.338846 -23, 0.935401, 0.000000, 0.000000, 0.353588 -24, 0.929730, 0.000000, 0.000000, 0.368241 -25, 0.923829, 0.000000, 0.000000, 0.382804 -26, 0.917701, 0.000000, 0.000000, 0.397273 -27, 0.911345, 0.000000, 0.000000, 0.411643 -28, 0.904765, 0.000000, 0.000000, 0.425912 -29, 0.897961, 0.000000, 0.000000, 0.440076 -30, 0.890935, 0.000000, 0.000000, 0.454130 -31, 0.883690, 0.000000, 0.000000, 0.468073 -32, 0.876226, 0.000000, 0.000000, 0.481901 -33, 0.868546, 0.000000, 0.000000, 0.495609 -34, 0.860651, 0.000000, 0.000000, 0.509195 -35, 0.852544, 0.000000, 0.000000, 0.522655 -36, 0.844227, 0.000000, 0.000000, 0.535986 -37, 0.835701, 0.000000, 0.000000, 0.549185 -38, 0.826969, 0.000000, 0.000000, 0.562248 -39, 0.818032, 0.000000, 0.000000, 0.575172 -40, 0.808894, 0.000000, 0.000000, 0.587955 -41, 0.799556, 0.000000, 0.000000, 0.600592 -42, 0.790020, 0.000000, 0.000000, 0.613081 -43, 0.780290, 0.000000, 0.000000, 0.625418 -44, 0.770366, 0.000000, 0.000000, 0.637602 -45, 0.760253, 0.000000, 0.000000, 0.649627 -46, 0.749952, 0.000000, 0.000000, 0.661493 -47, 0.739465, 0.000000, 0.000000, 0.673195 -48, 0.728797, 0.000000, 0.000000, 0.684730 -49, 0.717948, 0.000000, 0.000000, 0.696097 -50, 0.706922, 0.000000, 0.000000, 0.707292 -51, 0.695721, 0.000000, 0.000000, 0.718312 -52, 0.684349, 0.000000, 0.000000, 0.729155 -53, 0.672807, 0.000000, 0.000000, 0.739818 -54, 0.661100, 0.000000, 0.000000, 0.750298 -55, 0.649229, 0.000000, 0.000000, 0.760593 -56, 0.637198, 0.000000, 0.000000, 0.770700 -57, 0.625010, 0.000000, 0.000000, 0.780617 -58, 0.612667, 0.000000, 0.000000, 0.790341 -59, 0.600173, 0.000000, 0.000000, 0.799870 -60, 0.587531, 0.000000, 0.000000, 0.809202 -61, 0.574744, 0.000000, 0.000000, 0.818333 -62, 0.561815, 0.000000, 0.000000, 0.827263 -63, 0.548747, 0.000000, 0.000000, 0.835988 -64, 0.535544, 0.000000, 0.000000, 0.844507 -65, 0.522208, 0.000000, 0.000000, 0.852818 -66, 0.508744, 0.000000, 0.000000, 0.860918 -67, 0.495154, 0.000000, 0.000000, 0.868805 -68, 0.481442, 0.000000, 0.000000, 0.876478 -69, 0.467610, 0.000000, 0.000000, 0.883935 -70, 0.453664, 0.000000, 0.000000, 0.891173 -71, 0.439605, 0.000000, 0.000000, 0.898191 -72, 0.425438, 0.000000, 0.000000, 0.904988 -73, 0.411166, 0.000000, 0.000000, 0.911561 -74, 0.396792, 0.000000, 0.000000, 0.917908 -75, 0.382320, 0.000000, 0.000000, 0.924030 -76, 0.367754, 0.000000, 0.000000, 0.929923 -77, 0.353098, 0.000000, 0.000000, 0.935587 -78, 0.338354, 0.000000, 0.000000, 0.941019 -79, 0.323526, 0.000000, 0.000000, 0.946219 -80, 0.308618, 0.000000, 0.000000, 0.951186 -81, 0.293635, 0.000000, 0.000000, 0.955918 -82, 0.278579, 0.000000, 0.000000, 0.960413 -83, 0.263454, 0.000000, 0.000000, 0.964672 -84, 0.248264, 0.000000, 0.000000, 0.968692 -85, 0.233012, 0.000000, 0.000000, 0.972474 -86, 0.217704, 0.000000, 0.000000, 0.976015 -87, 0.202341, 0.000000, 0.000000, 0.979315 -88, 0.186929, 0.000000, 0.000000, 0.982374 -89, 0.171470, 0.000000, 0.000000, 0.985189 -90, 0.155969, 0.000000, 0.000000, 0.987762 -91, 0.140429, 0.000000, 0.000000, 0.990091 -92, 0.124855, 0.000000, 0.000000, 0.992175 -93, 0.109250, 0.000000, 0.000000, 0.994014 -94, 0.093618, 0.000000, 0.000000, 0.995608 -95, 0.077963, 0.000000, 0.000000, 0.996956 -96, 0.062289, 0.000000, 0.000000, 0.998058 -97, 0.046599, 0.000000, 0.000000, 0.998914 -98, 0.030898, 0.000000, 0.000000, 0.999523 -99, 0.015189, 0.000000, 0.000000, 0.999885 -100, -0.000524, -0.000000, 0.000000, 1.000000 -101, -0.016236, -0.000000, 0.000000, 0.999868 -102, -0.031945, -0.000000, 0.000000, 0.999490 -103, -0.047645, -0.000000, 0.000000, 0.998864 -104, -0.063334, -0.000000, 0.000000, 0.997992 -105, -0.079007, -0.000000, 0.000000, 0.996874 -106, -0.094661, -0.000000, 0.000000, 0.995510 -107, -0.110291, -0.000000, 0.000000, 0.993899 -108, -0.125894, -0.000000, 0.000000, 0.992044 -109, -0.141466, -0.000000, 0.000000, 0.989943 -110, -0.157003, -0.000000, 0.000000, 0.987598 -111, -0.172502, -0.000000, 0.000000, 0.985009 -112, -0.187958, -0.000000, 0.000000, 0.982177 -113, -0.203367, -0.000000, 0.000000, 0.979103 -114, -0.218726, -0.000000, 0.000000, 0.975786 -115, -0.234031, -0.000000, 0.000000, 0.972229 -116, -0.249278, -0.000000, 0.000000, 0.968432 -117, -0.264464, -0.000000, 0.000000, 0.964396 -118, -0.279585, -0.000000, 0.000000, 0.960121 -119, -0.294636, -0.000000, 0.000000, 0.955610 -120, -0.309615, -0.000000, 0.000000, 0.950862 -121, -0.324517, -0.000000, 0.000000, 0.945880 -122, -0.339339, -0.000000, 0.000000, 0.940664 -123, -0.354077, -0.000000, 0.000000, 0.935216 -124, -0.368728, -0.000000, 0.000000, 0.929537 -125, -0.383288, -0.000000, 0.000000, 0.923629 -126, -0.397753, -0.000000, 0.000000, 0.917492 -127, -0.412121, -0.000000, 0.000000, 0.911129 -128, -0.426386, -0.000000, 0.000000, 0.904541 -129, -0.440546, -0.000000, 0.000000, 0.897730 -130, -0.454597, -0.000000, 0.000000, 0.890697 -131, -0.468536, -0.000000, 0.000000, 0.883444 -132, -0.482359, -0.000000, 0.000000, 0.875973 -133, -0.496064, -0.000000, 0.000000, 0.868286 -134, -0.509645, -0.000000, 0.000000, 0.860385 -135, -0.523101, -0.000000, 0.000000, 0.852270 -136, -0.536428, -0.000000, 0.000000, 0.843946 -137, -0.549622, -0.000000, 0.000000, 0.835413 -138, -0.562681, -0.000000, 0.000000, 0.826674 -139, -0.575601, -0.000000, 0.000000, 0.817731 -140, -0.588378, -0.000000, 0.000000, 0.808586 -141, -0.601011, -0.000000, 0.000000, 0.799241 -142, -0.613495, -0.000000, 0.000000, 0.789699 -143, -0.625827, -0.000000, 0.000000, 0.779962 -144, -0.638005, -0.000000, 0.000000, 0.770032 -145, -0.650025, -0.000000, 0.000000, 0.759913 -146, -0.661885, -0.000000, 0.000000, 0.749605 -147, -0.673582, -0.000000, 0.000000, 0.739113 -148, -0.685112, -0.000000, 0.000000, 0.728438 -149, -0.696473, -0.000000, 0.000000, 0.717583 -150, -0.707662, -0.000000, 0.000000, 0.706551 -151, -0.718676, -0.000000, 0.000000, 0.695345 -152, -0.729513, -0.000000, 0.000000, 0.683967 -153, -0.740170, -0.000000, 0.000000, 0.672420 -154, -0.750644, -0.000000, 0.000000, 0.660707 -155, -0.760933, -0.000000, 0.000000, 0.648830 -156, -0.771034, -0.000000, 0.000000, 0.636794 -157, -0.780944, -0.000000, 0.000000, 0.624601 -158, -0.790662, -0.000000, 0.000000, 0.612253 -159, -0.800184, -0.000000, 0.000000, 0.599754 -160, -0.809509, -0.000000, 0.000000, 0.587107 -161, -0.818634, -0.000000, 0.000000, 0.574315 -162, -0.827557, -0.000000, 0.000000, 0.561381 -163, -0.836276, -0.000000, 0.000000, 0.548309 -164, -0.844788, -0.000000, 0.000000, 0.535101 -165, -0.853091, -0.000000, 0.000000, 0.521761 -166, -0.861184, -0.000000, 0.000000, 0.508293 -167, -0.869065, -0.000000, 0.000000, 0.494699 -168, -0.876730, -0.000000, 0.000000, 0.480982 -169, -0.884179, -0.000000, 0.000000, 0.467147 -170, -0.891410, -0.000000, 0.000000, 0.453197 -171, -0.898421, -0.000000, 0.000000, 0.439135 -172, -0.905210, -0.000000, 0.000000, 0.424964 -173, -0.911776, -0.000000, 0.000000, 0.410688 -174, -0.918116, -0.000000, 0.000000, 0.396311 -175, -0.924230, -0.000000, 0.000000, 0.381836 -176, -0.930115, -0.000000, 0.000000, 0.367267 -177, -0.935771, -0.000000, 0.000000, 0.352607 -178, -0.941196, -0.000000, 0.000000, 0.337861 -179, -0.946389, -0.000000, 0.000000, 0.323030 -180, -0.951347, -0.000000, 0.000000, 0.308120 -181, -0.956071, -0.000000, 0.000000, 0.293134 -182, -0.960559, -0.000000, 0.000000, 0.278076 -183, -0.964810, -0.000000, 0.000000, 0.262948 -184, -0.968822, -0.000000, 0.000000, 0.247756 -185, -0.972596, -0.000000, 0.000000, 0.232503 -186, -0.976129, -0.000000, 0.000000, 0.217192 -187, -0.979421, -0.000000, 0.000000, 0.201828 -188, -0.982471, -0.000000, 0.000000, 0.186414 -189, -0.985279, -0.000000, 0.000000, 0.170954 -190, -0.987844, -0.000000, 0.000000, 0.155451 -191, -0.990164, -0.000000, 0.000000, 0.139911 -192, -0.992240, -0.000000, 0.000000, 0.124335 -193, -0.994071, -0.000000, 0.000000, 0.108729 -194, -0.995657, -0.000000, 0.000000, 0.093097 -195, -0.996997, -0.000000, 0.000000, 0.077441 -196, -0.998091, -0.000000, 0.000000, 0.061766 -197, -0.998938, -0.000000, 0.000000, 0.046076 -198, -0.999539, -0.000000, 0.000000, 0.030374 -199, -0.999892, -0.000000, 0.000000, 0.014665 -200, -0.999999, 0.000000, -0.000000, -0.001048 -201, -0.999860, 0.000000, -0.000000, -0.016760 -202, -0.999473, 0.000000, -0.000000, -0.032468 -203, -0.998839, 0.000000, -0.000000, -0.048169 -204, -0.997959, 0.000000, -0.000000, -0.063857 -205, -0.996833, 0.000000, -0.000000, -0.079529 -206, -0.995460, 0.000000, -0.000000, -0.095182 -207, -0.993841, 0.000000, -0.000000, -0.110812 -208, -0.991978, 0.000000, -0.000000, -0.126414 -209, -0.989869, 0.000000, -0.000000, -0.141985 -210, -0.987516, 0.000000, -0.000000, -0.157521 -211, -0.984919, 0.000000, -0.000000, -0.173018 -212, -0.982079, 0.000000, -0.000000, -0.188472 -213, -0.978996, 0.000000, -0.000000, -0.203880 -214, -0.975672, 0.000000, -0.000000, -0.219237 -215, -0.972106, 0.000000, -0.000000, -0.234540 -216, -0.968301, 0.000000, -0.000000, -0.249786 -217, -0.964257, 0.000000, -0.000000, -0.264969 -218, -0.959975, 0.000000, -0.000000, -0.280087 -219, -0.955455, 0.000000, -0.000000, -0.295136 -220, -0.950700, 0.000000, -0.000000, -0.310113 -221, -0.945710, 0.000000, -0.000000, -0.325012 -222, -0.940486, 0.000000, -0.000000, -0.339832 -223, -0.935031, 0.000000, -0.000000, -0.354567 -224, -0.929344, 0.000000, -0.000000, -0.369215 -225, -0.923428, 0.000000, -0.000000, -0.383772 -226, -0.917284, 0.000000, -0.000000, -0.398234 -227, -0.910913, 0.000000, -0.000000, -0.412598 -228, -0.904318, 0.000000, -0.000000, -0.426860 -229, -0.897499, 0.000000, -0.000000, -0.441016 -230, -0.890459, 0.000000, -0.000000, -0.455064 -231, -0.883199, 0.000000, -0.000000, -0.468999 -232, -0.875721, 0.000000, -0.000000, -0.482818 -233, -0.868026, 0.000000, -0.000000, -0.496518 -234, -0.860117, 0.000000, -0.000000, -0.510096 -235, -0.851996, 0.000000, -0.000000, -0.523548 -236, -0.843665, 0.000000, -0.000000, -0.536870 -237, -0.835125, 0.000000, -0.000000, -0.550060 -238, -0.826379, 0.000000, -0.000000, -0.563114 -239, -0.817429, 0.000000, -0.000000, -0.576029 -240, -0.808277, 0.000000, -0.000000, -0.588802 -241, -0.798926, 0.000000, -0.000000, -0.601429 -242, -0.789377, 0.000000, -0.000000, -0.613908 -243, -0.779634, 0.000000, -0.000000, -0.626235 -244, -0.769698, 0.000000, -0.000000, -0.638408 -245, -0.759572, 0.000000, -0.000000, -0.650423 -246, -0.749258, 0.000000, -0.000000, -0.662278 -247, -0.738760, 0.000000, -0.000000, -0.673969 -248, -0.728079, 0.000000, -0.000000, -0.685493 -249, -0.717218, 0.000000, -0.000000, -0.696849 -250, -0.706180, 0.000000, -0.000000, -0.708032 -251, -0.694968, 0.000000, -0.000000, -0.719041 -252, -0.683584, 0.000000, -0.000000, -0.729872 -253, -0.672032, 0.000000, -0.000000, -0.740522 -254, -0.660313, 0.000000, -0.000000, -0.750990 -255, -0.648432, 0.000000, -0.000000, -0.761273 -256, -0.636390, 0.000000, -0.000000, -0.771367 -257, -0.624192, 0.000000, -0.000000, -0.781271 -258, -0.611839, 0.000000, -0.000000, -0.790983 -259, -0.599335, 0.000000, -0.000000, -0.800498 -260, -0.586683, 0.000000, -0.000000, -0.809817 -261, -0.573886, 0.000000, -0.000000, -0.818935 -262, -0.560948, 0.000000, -0.000000, -0.827851 -263, -0.547871, 0.000000, -0.000000, -0.836563 -264, -0.534659, 0.000000, -0.000000, -0.845068 -265, -0.521315, 0.000000, -0.000000, -0.853365 -266, -0.507842, 0.000000, -0.000000, -0.861450 -267, -0.494243, 0.000000, -0.000000, -0.869324 -268, -0.480523, 0.000000, -0.000000, -0.876982 -269, -0.466684, 0.000000, -0.000000, -0.884424 -270, -0.452730, 0.000000, -0.000000, -0.891648 -271, -0.438664, 0.000000, -0.000000, -0.898651 -272, -0.424490, 0.000000, -0.000000, -0.905433 -273, -0.410211, 0.000000, -0.000000, -0.911991 -274, -0.395830, 0.000000, -0.000000, -0.918324 -275, -0.381352, 0.000000, -0.000000, -0.924430 -276, -0.366780, 0.000000, -0.000000, -0.930308 -277, -0.352117, 0.000000, -0.000000, -0.935956 -278, -0.337368, 0.000000, -0.000000, -0.941373 -279, -0.322535, 0.000000, -0.000000, -0.946558 -280, -0.307622, 0.000000, -0.000000, -0.951509 -281, -0.292633, 0.000000, -0.000000, -0.956225 -282, -0.277572, 0.000000, -0.000000, -0.960705 -283, -0.262443, 0.000000, -0.000000, -0.964947 -284, -0.247249, 0.000000, -0.000000, -0.968952 -285, -0.231994, 0.000000, -0.000000, -0.972717 -286, -0.216681, 0.000000, -0.000000, -0.976242 -287, -0.201315, 0.000000, -0.000000, -0.979527 -288, -0.185899, 0.000000, -0.000000, -0.982569 -289, -0.170438, 0.000000, -0.000000, -0.985368 -290, -0.154934, 0.000000, -0.000000, -0.987925 -291, -0.139392, 0.000000, -0.000000, -0.990237 -292, -0.123816, 0.000000, -0.000000, -0.992305 -293, -0.108209, 0.000000, -0.000000, -0.994128 -294, -0.092575, 0.000000, -0.000000, -0.995706 -295, -0.076919, 0.000000, -0.000000, -0.997037 -296, -0.061243, 0.000000, -0.000000, -0.998123 -297, -0.045553, 0.000000, -0.000000, -0.998962 -298, -0.029851, 0.000000, -0.000000, -0.999554 -299, -0.014141, 0.000000, -0.000000, -0.999900 -300, 0.001571, 0.000000, 0.000000, -0.999999 -301, 0.017284, 0.000000, 0.000000, -0.999851 -302, 0.032992, 0.000000, 0.000000, -0.999456 -303, 0.048692, 0.000000, 0.000000, -0.998814 -304, 0.064380, 0.000000, 0.000000, -0.997925 -305, 0.080052, 0.000000, 0.000000, -0.996791 -306, 0.095704, 0.000000, 0.000000, -0.995410 -307, 0.111332, 0.000000, 0.000000, -0.993783 -308, 0.126934, 0.000000, 0.000000, -0.991911 -309, 0.142503, 0.000000, 0.000000, -0.989794 -310, 0.158038, 0.000000, 0.000000, -0.987433 -311, 0.173534, 0.000000, 0.000000, -0.984828 -312, 0.188986, 0.000000, 0.000000, -0.981980 -313, 0.204392, 0.000000, 0.000000, -0.978889 -314, 0.219748, 0.000000, 0.000000, -0.975557 -315, 0.235049, 0.000000, 0.000000, -0.971983 -316, 0.250293, 0.000000, 0.000000, -0.968170 -317, 0.265474, 0.000000, 0.000000, -0.964118 -318, 0.280590, 0.000000, 0.000000, -0.959828 -319, 0.295637, 0.000000, 0.000000, -0.955300 -320, 0.310611, 0.000000, 0.000000, -0.950537 -321, 0.325508, 0.000000, 0.000000, -0.945539 -322, 0.340324, 0.000000, 0.000000, -0.940308 -323, 0.355057, 0.000000, 0.000000, -0.934845 -324, 0.369702, 0.000000, 0.000000, -0.929150 -325, 0.384256, 0.000000, 0.000000, -0.923227 -326, 0.398714, 0.000000, 0.000000, -0.917075 -327, 0.413075, 0.000000, 0.000000, -0.910697 -328, 0.427333, 0.000000, 0.000000, -0.904094 -329, 0.441486, 0.000000, 0.000000, -0.897268 -330, 0.455530, 0.000000, 0.000000, -0.890220 -331, 0.469461, 0.000000, 0.000000, -0.882953 -332, 0.483277, 0.000000, 0.000000, -0.875468 -333, 0.496973, 0.000000, 0.000000, -0.867766 -334, 0.510546, 0.000000, 0.000000, -0.859850 -335, 0.523994, 0.000000, 0.000000, -0.851722 -336, 0.537312, 0.000000, 0.000000, -0.843384 -337, 0.550497, 0.000000, 0.000000, -0.834837 -338, 0.563547, 0.000000, 0.000000, -0.826084 -339, 0.576457, 0.000000, 0.000000, -0.817127 -340, 0.589225, 0.000000, 0.000000, -0.807969 -341, 0.601848, 0.000000, 0.000000, -0.798611 -342, 0.614321, 0.000000, 0.000000, -0.789056 -343, 0.626644, 0.000000, 0.000000, -0.779306 -344, 0.638811, 0.000000, 0.000000, -0.769363 -345, 0.650821, 0.000000, 0.000000, -0.759231 -346, 0.662670, 0.000000, 0.000000, -0.748911 -347, 0.674356, 0.000000, 0.000000, -0.738407 -348, 0.685875, 0.000000, 0.000000, -0.727720 -349, 0.697224, 0.000000, 0.000000, -0.716853 -350, 0.708402, 0.000000, 0.000000, -0.705809 -351, 0.719404, 0.000000, 0.000000, -0.694591 -352, 0.730229, 0.000000, 0.000000, -0.683202 -353, 0.740874, 0.000000, 0.000000, -0.671644 -354, 0.751336, 0.000000, 0.000000, -0.659920 -355, 0.761612, 0.000000, 0.000000, -0.648033 -356, 0.771700, 0.000000, 0.000000, -0.635986 -357, 0.781598, 0.000000, 0.000000, -0.623782 -358, 0.791303, 0.000000, 0.000000, -0.611424 -359, 0.800812, 0.000000, 0.000000, -0.598915 -360, 0.810124, 0.000000, 0.000000, -0.586259 -361, 0.819235, 0.000000, 0.000000, -0.573457 -362, 0.828145, 0.000000, 0.000000, -0.560514 -363, 0.836850, 0.000000, 0.000000, -0.547433 -364, 0.845348, 0.000000, 0.000000, -0.534216 -365, 0.853638, 0.000000, 0.000000, -0.520868 -366, 0.861716, 0.000000, 0.000000, -0.507390 -367, 0.869582, 0.000000, 0.000000, -0.493788 -368, 0.877234, 0.000000, 0.000000, -0.480064 -369, 0.884668, 0.000000, 0.000000, -0.466221 -370, 0.891885, 0.000000, 0.000000, -0.452263 -371, 0.898881, 0.000000, 0.000000, -0.438193 -372, 0.905655, 0.000000, 0.000000, -0.424015 -373, 0.912206, 0.000000, 0.000000, -0.409733 -374, 0.918531, 0.000000, 0.000000, -0.395349 -375, 0.924629, 0.000000, 0.000000, -0.380868 -376, 0.930500, 0.000000, 0.000000, -0.366293 -377, 0.936140, 0.000000, 0.000000, -0.351627 -378, 0.941550, 0.000000, 0.000000, -0.336874 -379, 0.946727, 0.000000, 0.000000, -0.322039 -380, 0.951670, 0.000000, 0.000000, -0.307123 -381, 0.956378, 0.000000, 0.000000, -0.292132 -382, 0.960850, 0.000000, 0.000000, -0.277069 -383, 0.965085, 0.000000, 0.000000, -0.261938 -384, 0.969081, 0.000000, 0.000000, -0.246741 -385, 0.972839, 0.000000, 0.000000, -0.231484 -386, 0.976356, 0.000000, 0.000000, -0.216170 -387, 0.979632, 0.000000, 0.000000, -0.200802 -388, 0.982666, 0.000000, 0.000000, -0.185385 -389, 0.985458, 0.000000, 0.000000, -0.169922 -390, 0.988006, 0.000000, 0.000000, -0.154417 -391, 0.990310, 0.000000, 0.000000, -0.138873 -392, 0.992370, 0.000000, 0.000000, -0.123296 -393, 0.994185, 0.000000, 0.000000, -0.107688 -394, 0.995754, 0.000000, 0.000000, -0.092054 -395, 0.997078, 0.000000, 0.000000, -0.076396 -396, 0.998155, 0.000000, 0.000000, -0.060720 -397, 0.998986, 0.000000, 0.000000, -0.045029 -398, 0.999570, 0.000000, 0.000000, -0.029327 -399, 0.999907, 0.000000, 0.000000, -0.013618 -400, 0.999998, 0.000000, 0.000000, 0.002095 -401, 0.999841, 0.000000, 0.000000, 0.017807 -402, 0.999438, 0.000000, 0.000000, 0.033515 -403, 0.998788, 0.000000, 0.000000, 0.049215 -404, 0.997892, 0.000000, 0.000000, 0.064902 -405, 0.996749, 0.000000, 0.000000, 0.080574 -406, 0.995360, 0.000000, 0.000000, 0.096225 -407, 0.993725, 0.000000, 0.000000, 0.111853 -408, 0.991845, 0.000000, 0.000000, 0.127453 -409, 0.989720, 0.000000, 0.000000, 0.143022 -410, 0.987350, 0.000000, 0.000000, 0.158555 -411, 0.984737, 0.000000, 0.000000, 0.174049 -412, 0.981881, 0.000000, 0.000000, 0.189501 -413, 0.978782, 0.000000, 0.000000, 0.204905 -414, 0.975441, 0.000000, 0.000000, 0.220259 -415, 0.971860, 0.000000, 0.000000, 0.235558 -416, 0.968039, 0.000000, 0.000000, 0.250800 -417, 0.963979, 0.000000, 0.000000, 0.265979 -418, 0.959681, 0.000000, 0.000000, 0.281093 -419, 0.955145, 0.000000, 0.000000, 0.296137 -420, 0.950374, 0.000000, 0.000000, 0.311108 -421, 0.945369, 0.000000, 0.000000, 0.326003 -422, 0.940130, 0.000000, 0.000000, 0.340817 -423, 0.934659, 0.000000, 0.000000, 0.355547 -424, 0.928957, 0.000000, 0.000000, 0.370188 -425, 0.923025, 0.000000, 0.000000, 0.384739 -426, 0.916866, 0.000000, 0.000000, 0.399195 -427, 0.910481, 0.000000, 0.000000, 0.413552 -428, 0.903870, 0.000000, 0.000000, 0.427807 -429, 0.897037, 0.000000, 0.000000, 0.441956 -430, 0.889982, 0.000000, 0.000000, 0.455996 -431, 0.882707, 0.000000, 0.000000, 0.469924 -432, 0.875214, 0.000000, 0.000000, 0.483735 -433, 0.867506, 0.000000, 0.000000, 0.497427 -434, 0.859583, 0.000000, 0.000000, 0.510997 -435, 0.851447, 0.000000, 0.000000, 0.524440 -436, 0.843102, 0.000000, 0.000000, 0.537754 -437, 0.834549, 0.000000, 0.000000, 0.550934 -438, 0.825789, 0.000000, 0.000000, 0.563979 -439, 0.816825, 0.000000, 0.000000, 0.576885 -440, 0.807660, 0.000000, 0.000000, 0.589648 -441, 0.798296, 0.000000, 0.000000, 0.602266 -442, 0.788734, 0.000000, 0.000000, 0.614735 -443, 0.778978, 0.000000, 0.000000, 0.627052 -444, 0.769029, 0.000000, 0.000000, 0.639214 -445, 0.758890, 0.000000, 0.000000, 0.651219 -446, 0.748564, 0.000000, 0.000000, 0.663062 -447, 0.738053, 0.000000, 0.000000, 0.674742 -448, 0.727360, 0.000000, 0.000000, 0.686256 -449, 0.716488, 0.000000, 0.000000, 0.697600 -450, 0.705438, 0.000000, 0.000000, 0.708771 -451, 0.694214, 0.000000, 0.000000, 0.719768 -452, 0.682819, 0.000000, 0.000000, 0.730587 -453, 0.671256, 0.000000, 0.000000, 0.741226 -454, 0.659526, 0.000000, 0.000000, 0.751682 -455, 0.647634, 0.000000, 0.000000, 0.761952 -456, 0.635582, 0.000000, 0.000000, 0.772033 -457, 0.623373, 0.000000, 0.000000, 0.781925 -458, 0.611010, 0.000000, 0.000000, 0.791623 -459, 0.598496, 0.000000, 0.000000, 0.801126 -460, 0.585834, 0.000000, 0.000000, 0.810431 -461, 0.573028, 0.000000, 0.000000, 0.819536 -462, 0.560080, 0.000000, 0.000000, 0.828438 -463, 0.546994, 0.000000, 0.000000, 0.837136 -464, 0.533773, 0.000000, 0.000000, 0.845628 -465, 0.520420, 0.000000, 0.000000, 0.853910 -466, 0.506939, 0.000000, 0.000000, 0.861982 -467, 0.493332, 0.000000, 0.000000, 0.869841 -468, 0.479604, 0.000000, 0.000000, 0.877485 -469, 0.465757, 0.000000, 0.000000, 0.884912 -470, 0.451796, 0.000000, 0.000000, 0.892121 -471, 0.437722, 0.000000, 0.000000, 0.899110 -472, 0.423541, 0.000000, 0.000000, 0.905877 -473, 0.409255, 0.000000, 0.000000, 0.912420 -474, 0.394868, 0.000000, 0.000000, 0.918738 -475, 0.380384, 0.000000, 0.000000, 0.924829 -476, 0.365805, 0.000000, 0.000000, 0.930691 -477, 0.351137, 0.000000, 0.000000, 0.936324 -478, 0.336381, 0.000000, 0.000000, 0.941726 -479, 0.321543, 0.000000, 0.000000, 0.946895 -480, 0.306625, 0.000000, 0.000000, 0.951830 -481, 0.291631, 0.000000, 0.000000, 0.956531 -482, 0.276566, 0.000000, 0.000000, 0.960995 -483, 0.261432, 0.000000, 0.000000, 0.965222 -484, 0.246234, 0.000000, 0.000000, 0.969210 -485, 0.230975, 0.000000, 0.000000, 0.972960 -486, 0.215658, 0.000000, 0.000000, 0.976469 -487, 0.200289, 0.000000, 0.000000, 0.979737 -488, 0.184870, 0.000000, 0.000000, 0.982763 -489, 0.169405, 0.000000, 0.000000, 0.985546 -490, 0.153899, 0.000000, 0.000000, 0.988087 -491, 0.138355, 0.000000, 0.000000, 0.990383 -492, 0.122776, 0.000000, 0.000000, 0.992434 -493, 0.107167, 0.000000, 0.000000, 0.994241 -494, 0.091532, 0.000000, 0.000000, 0.995802 -495, 0.075874, 0.000000, 0.000000, 0.997117 -496, 0.060198, 0.000000, 0.000000, 0.998186 -497, 0.044506, 0.000000, 0.000000, 0.999009 -498, 0.028804, 0.000000, 0.000000, 0.999585 -499, 0.013094, 0.000000, 0.000000, 0.999914 -500, -0.002619, -0.000000, 0.000000, 0.999997 -501, -0.018331, -0.000000, 0.000000, 0.999832 -502, -0.034039, -0.000000, 0.000000, 0.999421 -503, -0.049738, -0.000000, 0.000000, 0.998762 -504, -0.065425, -0.000000, 0.000000, 0.997857 -505, -0.081096, -0.000000, 0.000000, 0.996706 -506, -0.096747, -0.000000, 0.000000, 0.995309 -507, -0.112373, -0.000000, 0.000000, 0.993666 -508, -0.127973, -0.000000, 0.000000, 0.991778 -509, -0.143540, -0.000000, 0.000000, 0.989644 -510, -0.159072, -0.000000, 0.000000, 0.987267 -511, -0.174565, -0.000000, 0.000000, 0.984646 -512, -0.190015, -0.000000, 0.000000, 0.981781 -513, -0.205418, -0.000000, 0.000000, 0.978674 -514, -0.220770, -0.000000, 0.000000, 0.975326 -515, -0.236067, -0.000000, 0.000000, 0.971737 -516, -0.251307, -0.000000, 0.000000, 0.967907 -517, -0.266484, -0.000000, 0.000000, 0.963839 -518, -0.281595, -0.000000, 0.000000, 0.959533 -519, -0.296637, -0.000000, 0.000000, 0.954990 -520, -0.311606, -0.000000, 0.000000, 0.950211 -521, -0.326498, -0.000000, 0.000000, 0.945198 -522, -0.341309, -0.000000, 0.000000, 0.939951 -523, -0.356036, -0.000000, 0.000000, 0.934472 -524, -0.370675, -0.000000, 0.000000, 0.928763 -525, -0.385222, -0.000000, 0.000000, 0.922824 -526, -0.399675, -0.000000, 0.000000, 0.916657 -527, -0.414029, -0.000000, 0.000000, 0.910264 -528, -0.428280, -0.000000, 0.000000, 0.903646 -529, -0.442426, -0.000000, 0.000000, 0.896805 -530, -0.456462, -0.000000, 0.000000, 0.889743 -531, -0.470386, -0.000000, 0.000000, 0.882461 -532, -0.484194, -0.000000, 0.000000, 0.874961 -533, -0.497882, -0.000000, 0.000000, 0.867245 -534, -0.511447, -0.000000, 0.000000, 0.859315 -535, -0.524886, -0.000000, 0.000000, 0.851173 -536, -0.538195, -0.000000, 0.000000, 0.842820 -537, -0.551371, -0.000000, 0.000000, 0.834260 -538, -0.564412, -0.000000, 0.000000, 0.825493 -539, -0.577313, -0.000000, 0.000000, 0.816523 -540, -0.590071, -0.000000, 0.000000, 0.807351 -541, -0.602684, -0.000000, 0.000000, 0.797980 -542, -0.615148, -0.000000, 0.000000, 0.788412 -543, -0.627460, -0.000000, 0.000000, 0.778649 -544, -0.639617, -0.000000, 0.000000, 0.768694 -545, -0.651616, -0.000000, 0.000000, 0.758549 -546, -0.663454, -0.000000, 0.000000, 0.748217 -547, -0.675129, -0.000000, 0.000000, 0.737700 -548, -0.686637, -0.000000, 0.000000, 0.727001 -549, -0.697975, -0.000000, 0.000000, 0.716122 -550, -0.709141, -0.000000, 0.000000, 0.705067 -551, -0.720132, -0.000000, 0.000000, 0.693837 -552, -0.730945, -0.000000, 0.000000, 0.682437 -553, -0.741577, -0.000000, 0.000000, 0.670867 -554, -0.752027, -0.000000, 0.000000, 0.659132 -555, -0.762291, -0.000000, 0.000000, 0.647235 -556, -0.772366, -0.000000, 0.000000, 0.635177 -557, -0.782251, -0.000000, 0.000000, 0.622963 -558, -0.791943, -0.000000, 0.000000, 0.610595 -559, -0.801439, -0.000000, 0.000000, 0.598076 -560, -0.810738, -0.000000, 0.000000, 0.585410 -561, -0.819836, -0.000000, 0.000000, 0.572599 -562, -0.828732, -0.000000, 0.000000, 0.559646 -563, -0.837423, -0.000000, 0.000000, 0.546556 -564, -0.845907, -0.000000, 0.000000, 0.533330 -565, -0.854183, -0.000000, 0.000000, 0.519973 -566, -0.862247, -0.000000, 0.000000, 0.506487 -567, -0.870099, -0.000000, 0.000000, 0.492877 -568, -0.877736, -0.000000, 0.000000, 0.479145 -569, -0.885156, -0.000000, 0.000000, 0.465294 -570, -0.892358, -0.000000, 0.000000, 0.451328 -571, -0.899339, -0.000000, 0.000000, 0.437251 -572, -0.906099, -0.000000, 0.000000, 0.423067 -573, -0.912634, -0.000000, 0.000000, 0.408777 -574, -0.918944, -0.000000, 0.000000, 0.394387 -575, -0.925028, -0.000000, 0.000000, 0.379899 -576, -0.930883, -0.000000, 0.000000, 0.365318 -577, -0.936508, -0.000000, 0.000000, 0.350646 -578, -0.941902, -0.000000, 0.000000, 0.335888 -579, -0.947063, -0.000000, 0.000000, 0.321047 -580, -0.951991, -0.000000, 0.000000, 0.306126 -581, -0.956683, -0.000000, 0.000000, 0.291130 -582, -0.961140, -0.000000, 0.000000, 0.276062 -583, -0.965359, -0.000000, 0.000000, 0.260926 -584, -0.969339, -0.000000, 0.000000, 0.245726 -585, -0.973081, -0.000000, 0.000000, 0.230465 -586, -0.976582, -0.000000, 0.000000, 0.215147 -587, -0.979842, -0.000000, 0.000000, 0.199776 -588, -0.982860, -0.000000, 0.000000, 0.184355 -589, -0.985635, -0.000000, 0.000000, 0.168889 -590, -0.988167, -0.000000, 0.000000, 0.153382 -591, -0.990455, -0.000000, 0.000000, 0.137836 -592, -0.992499, -0.000000, 0.000000, 0.122256 -593, -0.994297, -0.000000, 0.000000, 0.106647 -594, -0.995850, -0.000000, 0.000000, 0.091010 -595, -0.997157, -0.000000, 0.000000, 0.075352 -596, -0.998218, -0.000000, 0.000000, 0.059675 -597, -0.999032, -0.000000, 0.000000, 0.043983 -598, -0.999600, -0.000000, 0.000000, 0.028280 -599, -0.999921, -0.000000, 0.000000, 0.012570 -600, -0.999995, 0.000000, -0.000000, -0.003143 -601, -0.999822, 0.000000, -0.000000, -0.018855 -602, -0.999403, 0.000000, -0.000000, -0.034562 -603, -0.998736, 0.000000, -0.000000, -0.050261 -604, -0.997823, 0.000000, -0.000000, -0.065948 -605, -0.996664, 0.000000, -0.000000, -0.081618 -606, -0.995258, 0.000000, -0.000000, -0.097268 -607, -0.993607, 0.000000, -0.000000, -0.112894 -608, -0.991711, 0.000000, -0.000000, -0.128492 -609, -0.989569, 0.000000, -0.000000, -0.144058 -610, -0.987183, 0.000000, -0.000000, -0.159589 -611, -0.984554, 0.000000, -0.000000, -0.175081 -612, -0.981682, 0.000000, -0.000000, -0.190529 -613, -0.978567, 0.000000, -0.000000, -0.205930 -614, -0.975210, 0.000000, -0.000000, -0.221281 -615, -0.971613, 0.000000, -0.000000, -0.236576 -616, -0.967776, 0.000000, -0.000000, -0.251814 -617, -0.963700, 0.000000, -0.000000, -0.266989 -618, -0.959386, 0.000000, -0.000000, -0.282098 -619, -0.954835, 0.000000, -0.000000, -0.297138 -620, -0.950048, 0.000000, -0.000000, -0.312104 -621, -0.945027, 0.000000, -0.000000, -0.326993 -622, -0.939772, 0.000000, -0.000000, -0.341801 -623, -0.934286, 0.000000, -0.000000, -0.356525 -624, -0.928568, 0.000000, -0.000000, -0.371161 -625, -0.922622, 0.000000, -0.000000, -0.385706 -626, -0.916448, 0.000000, -0.000000, -0.400155 -627, -0.910047, 0.000000, -0.000000, -0.414505 -628, -0.903422, 0.000000, -0.000000, -0.428753 -629, -0.896573, 0.000000, -0.000000, -0.442895 -630, -0.889504, 0.000000, -0.000000, -0.456928 -631, -0.882214, 0.000000, -0.000000, -0.470848 -632, -0.874707, 0.000000, -0.000000, -0.484652 -633, -0.866984, 0.000000, -0.000000, -0.498336 -634, -0.859047, 0.000000, -0.000000, -0.511897 -635, -0.850898, 0.000000, -0.000000, -0.525332 -636, -0.842538, 0.000000, -0.000000, -0.538636 -637, -0.833971, 0.000000, -0.000000, -0.551808 -638, -0.825198, 0.000000, -0.000000, -0.564844 -639, -0.816221, 0.000000, -0.000000, -0.577740 -640, -0.807042, 0.000000, -0.000000, -0.590494 -641, -0.797664, 0.000000, -0.000000, -0.603102 -642, -0.788090, 0.000000, -0.000000, -0.615561 -643, -0.778320, 0.000000, -0.000000, -0.627867 -644, -0.768359, 0.000000, -0.000000, -0.640019 -645, -0.758208, 0.000000, -0.000000, -0.652013 -646, -0.747869, 0.000000, -0.000000, -0.663846 -647, -0.737346, 0.000000, -0.000000, -0.675515 -648, -0.726641, 0.000000, -0.000000, -0.687017 -649, -0.715757, 0.000000, -0.000000, -0.698350 -650, -0.704695, 0.000000, -0.000000, -0.709510 -651, -0.693460, 0.000000, -0.000000, -0.720495 -652, -0.682054, 0.000000, -0.000000, -0.731302 -653, -0.670479, 0.000000, -0.000000, -0.741929 -654, -0.658739, 0.000000, -0.000000, -0.752372 -655, -0.646835, 0.000000, -0.000000, -0.762630 -656, -0.634773, 0.000000, -0.000000, -0.772699 -657, -0.622553, 0.000000, -0.000000, -0.782577 -658, -0.610180, 0.000000, -0.000000, -0.792263 -659, -0.597656, 0.000000, -0.000000, -0.801752 -660, -0.584985, 0.000000, -0.000000, -0.811044 -661, -0.572169, 0.000000, -0.000000, -0.820136 -662, -0.559212, 0.000000, -0.000000, -0.829025 -663, -0.546117, 0.000000, -0.000000, -0.837709 -664, -0.532887, 0.000000, -0.000000, -0.846186 -665, -0.519526, 0.000000, -0.000000, -0.854455 -666, -0.506036, 0.000000, -0.000000, -0.862512 -667, -0.492421, 0.000000, -0.000000, -0.870357 -668, -0.478685, 0.000000, -0.000000, -0.877987 -669, -0.464830, 0.000000, -0.000000, -0.885400 -670, -0.450861, 0.000000, -0.000000, -0.892594 -671, -0.436780, 0.000000, -0.000000, -0.899568 -672, -0.422592, 0.000000, -0.000000, -0.906320 -673, -0.408299, 0.000000, -0.000000, -0.912848 -674, -0.393906, 0.000000, -0.000000, -0.919151 -675, -0.379415, 0.000000, -0.000000, -0.925227 -676, -0.364830, 0.000000, -0.000000, -0.931074 -677, -0.350156, 0.000000, -0.000000, -0.936692 -678, -0.335395, 0.000000, -0.000000, -0.942078 -679, -0.320551, 0.000000, -0.000000, -0.947231 -680, -0.305628, 0.000000, -0.000000, -0.952151 -681, -0.290629, 0.000000, -0.000000, -0.956836 -682, -0.275559, 0.000000, -0.000000, -0.961284 -683, -0.260421, 0.000000, -0.000000, -0.965495 -684, -0.245218, 0.000000, -0.000000, -0.969468 -685, -0.229955, 0.000000, -0.000000, -0.973201 -686, -0.214635, 0.000000, -0.000000, -0.976694 -687, -0.199262, 0.000000, -0.000000, -0.979946 -688, -0.183840, 0.000000, -0.000000, -0.982956 -689, -0.168373, 0.000000, -0.000000, -0.985723 -690, -0.152864, 0.000000, -0.000000, -0.988247 -691, -0.137317, 0.000000, -0.000000, -0.990527 -692, -0.121736, 0.000000, -0.000000, -0.992562 -693, -0.106126, 0.000000, -0.000000, -0.994353 -694, -0.090489, 0.000000, -0.000000, -0.995897 -695, -0.074830, 0.000000, -0.000000, -0.997196 -696, -0.059152, 0.000000, -0.000000, -0.998249 -697, -0.043459, 0.000000, -0.000000, -0.999055 -698, -0.027756, 0.000000, -0.000000, -0.999615 -699, -0.012046, 0.000000, -0.000000, -0.999927 -700, 0.003666, 0.000000, 0.000000, -0.999993 -701, 0.019378, 0.000000, 0.000000, -0.999812 -702, 0.035086, 0.000000, 0.000000, -0.999384 -703, 0.050784, 0.000000, 0.000000, -0.998710 -704, 0.066470, 0.000000, 0.000000, -0.997788 -705, 0.082140, 0.000000, 0.000000, -0.996621 -706, 0.097789, 0.000000, 0.000000, -0.995207 -707, 0.113414, 0.000000, 0.000000, -0.993548 -708, 0.129011, 0.000000, 0.000000, -0.991643 -709, 0.144577, 0.000000, 0.000000, -0.989494 -710, 0.160106, 0.000000, 0.000000, -0.987100 -711, 0.175596, 0.000000, 0.000000, -0.984462 -712, 0.191043, 0.000000, 0.000000, -0.981582 -713, 0.206443, 0.000000, 0.000000, -0.978459 -714, 0.221791, 0.000000, 0.000000, -0.975094 -715, 0.237085, 0.000000, 0.000000, -0.971489 -716, 0.252321, 0.000000, 0.000000, -0.967644 -717, 0.267494, 0.000000, 0.000000, -0.963560 -718, 0.282600, 0.000000, 0.000000, -0.959238 -719, 0.297638, 0.000000, 0.000000, -0.954679 -720, 0.312601, 0.000000, 0.000000, -0.949884 -721, 0.327488, 0.000000, 0.000000, -0.944855 -722, 0.342294, 0.000000, 0.000000, -0.939593 -723, 0.357015, 0.000000, 0.000000, -0.934099 -724, 0.371648, 0.000000, 0.000000, -0.928374 -725, 0.386189, 0.000000, 0.000000, -0.922420 -726, 0.400635, 0.000000, 0.000000, -0.916238 -727, 0.414982, 0.000000, 0.000000, -0.909830 -728, 0.429226, 0.000000, 0.000000, -0.903197 -729, 0.443365, 0.000000, 0.000000, -0.896341 -730, 0.457394, 0.000000, 0.000000, -0.889264 -731, 0.471310, 0.000000, 0.000000, -0.881968 -732, 0.485110, 0.000000, 0.000000, -0.874453 -733, 0.498790, 0.000000, 0.000000, -0.866723 -734, 0.512347, 0.000000, 0.000000, -0.858779 -735, 0.525777, 0.000000, 0.000000, -0.850622 -736, 0.539078, 0.000000, 0.000000, -0.842256 -737, 0.552245, 0.000000, 0.000000, -0.833682 -738, 0.565276, 0.000000, 0.000000, -0.824902 -739, 0.578168, 0.000000, 0.000000, -0.815918 -740, 0.590917, 0.000000, 0.000000, -0.806733 -741, 0.603519, 0.000000, 0.000000, -0.797348 -742, 0.615973, 0.000000, 0.000000, -0.787767 -743, 0.628275, 0.000000, 0.000000, -0.777991 -744, 0.640422, 0.000000, 0.000000, -0.768023 -745, 0.652410, 0.000000, 0.000000, -0.757866 -746, 0.664238, 0.000000, 0.000000, -0.747521 -747, 0.675901, 0.000000, 0.000000, -0.736992 -748, 0.687398, 0.000000, 0.000000, -0.726281 -749, 0.698725, 0.000000, 0.000000, -0.715391 -750, 0.709879, 0.000000, 0.000000, -0.704324 -751, 0.720858, 0.000000, 0.000000, -0.693083 -752, 0.731659, 0.000000, 0.000000, -0.681671 -753, 0.742280, 0.000000, 0.000000, -0.670090 -754, 0.752717, 0.000000, 0.000000, -0.658344 -755, 0.762968, 0.000000, 0.000000, -0.646436 -756, 0.773031, 0.000000, 0.000000, -0.634368 -757, 0.782903, 0.000000, 0.000000, -0.622143 -758, 0.792582, 0.000000, 0.000000, -0.609765 -759, 0.802065, 0.000000, 0.000000, -0.597236 -760, 0.811350, 0.000000, 0.000000, -0.584560 -761, 0.820435, 0.000000, 0.000000, -0.571740 -762, 0.829317, 0.000000, 0.000000, -0.558778 -763, 0.837995, 0.000000, 0.000000, -0.545678 -764, 0.846465, 0.000000, 0.000000, -0.532444 -765, 0.854727, 0.000000, 0.000000, -0.519078 -766, 0.862777, 0.000000, 0.000000, -0.505584 -767, 0.870615, 0.000000, 0.000000, -0.491965 -768, 0.878237, 0.000000, 0.000000, -0.478225 -769, 0.885643, 0.000000, 0.000000, -0.464366 -770, 0.892830, 0.000000, 0.000000, -0.450393 -771, 0.899797, 0.000000, 0.000000, -0.436309 -772, 0.906541, 0.000000, 0.000000, -0.422117 -773, 0.913062, 0.000000, 0.000000, -0.407821 -774, 0.919357, 0.000000, 0.000000, -0.393424 -775, 0.925425, 0.000000, 0.000000, -0.378930 -776, 0.931265, 0.000000, 0.000000, -0.364342 -777, 0.936875, 0.000000, 0.000000, -0.349665 -778, 0.942253, 0.000000, 0.000000, -0.334901 -779, 0.947399, 0.000000, 0.000000, -0.320055 -780, 0.952311, 0.000000, 0.000000, -0.305129 -781, 0.956988, 0.000000, 0.000000, -0.290128 -782, 0.961428, 0.000000, 0.000000, -0.275056 -783, 0.965631, 0.000000, 0.000000, -0.259915 -784, 0.969596, 0.000000, 0.000000, -0.244710 -785, 0.973322, 0.000000, 0.000000, -0.229445 -786, 0.976807, 0.000000, 0.000000, -0.214124 -787, 0.980050, 0.000000, 0.000000, -0.198749 -788, 0.983052, 0.000000, 0.000000, -0.183326 -789, 0.985811, 0.000000, 0.000000, -0.167857 -790, 0.988327, 0.000000, 0.000000, -0.152346 -791, 0.990599, 0.000000, 0.000000, -0.136798 -792, 0.992626, 0.000000, 0.000000, -0.121217 -793, 0.994408, 0.000000, 0.000000, -0.105605 -794, 0.995945, 0.000000, 0.000000, -0.089967 -795, 0.997235, 0.000000, 0.000000, -0.074307 -796, 0.998280, 0.000000, 0.000000, -0.058629 -797, 0.999078, 0.000000, 0.000000, -0.042936 -798, 0.999629, 0.000000, 0.000000, -0.027233 -799, 0.999934, 0.000000, 0.000000, -0.011523 -800, 0.999991, 0.000000, 0.000000, 0.004190 -801, 0.999802, 0.000000, 0.000000, 0.019902 -802, 0.999366, 0.000000, 0.000000, 0.035609 -803, 0.998683, 0.000000, 0.000000, 0.051307 -804, 0.997753, 0.000000, 0.000000, 0.066993 -805, 0.996578, 0.000000, 0.000000, 0.082662 -806, 0.995156, 0.000000, 0.000000, 0.098310 -807, 0.993488, 0.000000, 0.000000, 0.113935 -808, 0.991575, 0.000000, 0.000000, 0.129531 -809, 0.989418, 0.000000, 0.000000, 0.145095 -810, 0.987016, 0.000000, 0.000000, 0.160623 -811, 0.984370, 0.000000, 0.000000, 0.176112 -812, 0.981481, 0.000000, 0.000000, 0.191557 -813, 0.978350, 0.000000, 0.000000, 0.206955 -814, 0.974978, 0.000000, 0.000000, 0.222302 -815, 0.971365, 0.000000, 0.000000, 0.237594 -816, 0.967511, 0.000000, 0.000000, 0.252827 -817, 0.963419, 0.000000, 0.000000, 0.267998 -818, 0.959090, 0.000000, 0.000000, 0.283103 -819, 0.954523, 0.000000, 0.000000, 0.298138 -820, 0.949721, 0.000000, 0.000000, 0.313099 -821, 0.944684, 0.000000, 0.000000, 0.327983 -822, 0.939414, 0.000000, 0.000000, 0.342786 -823, 0.933912, 0.000000, 0.000000, 0.357504 -824, 0.928179, 0.000000, 0.000000, 0.372134 -825, 0.922217, 0.000000, 0.000000, 0.386672 -826, 0.916028, 0.000000, 0.000000, 0.401115 -827, 0.909612, 0.000000, 0.000000, 0.415458 -828, 0.902972, 0.000000, 0.000000, 0.429699 -829, 0.896109, 0.000000, 0.000000, 0.443834 -830, 0.889024, 0.000000, 0.000000, 0.457860 -831, 0.881721, 0.000000, 0.000000, 0.471772 -832, 0.874199, 0.000000, 0.000000, 0.485568 -833, 0.866462, 0.000000, 0.000000, 0.499244 -834, 0.858510, 0.000000, 0.000000, 0.512797 -835, 0.850347, 0.000000, 0.000000, 0.526223 -836, 0.841974, 0.000000, 0.000000, 0.539519 -837, 0.833392, 0.000000, 0.000000, 0.552682 -838, 0.824606, 0.000000, 0.000000, 0.565708 -839, 0.815615, 0.000000, 0.000000, 0.578595 -840, 0.806423, 0.000000, 0.000000, 0.591339 -841, 0.797032, 0.000000, 0.000000, 0.603937 -842, 0.787444, 0.000000, 0.000000, 0.616386 -843, 0.777662, 0.000000, 0.000000, 0.628682 -844, 0.767688, 0.000000, 0.000000, 0.640824 -845, 0.757524, 0.000000, 0.000000, 0.652807 -846, 0.747173, 0.000000, 0.000000, 0.664629 -847, 0.736638, 0.000000, 0.000000, 0.676287 -848, 0.725921, 0.000000, 0.000000, 0.687778 -849, 0.715025, 0.000000, 0.000000, 0.699099 -850, 0.703952, 0.000000, 0.000000, 0.710248 -851, 0.692705, 0.000000, 0.000000, 0.721221 -852, 0.681287, 0.000000, 0.000000, 0.732016 -853, 0.669701, 0.000000, 0.000000, 0.742631 -854, 0.657950, 0.000000, 0.000000, 0.753062 -855, 0.646036, 0.000000, 0.000000, 0.763307 -856, 0.633963, 0.000000, 0.000000, 0.773363 -857, 0.621733, 0.000000, 0.000000, 0.783229 -858, 0.609350, 0.000000, 0.000000, 0.792901 -859, 0.596816, 0.000000, 0.000000, 0.802378 -860, 0.584135, 0.000000, 0.000000, 0.811656 -861, 0.571310, 0.000000, 0.000000, 0.820734 -862, 0.558343, 0.000000, 0.000000, 0.829610 -863, 0.545239, 0.000000, 0.000000, 0.838280 -864, 0.532000, 0.000000, 0.000000, 0.846744 -865, 0.518630, 0.000000, 0.000000, 0.854999 -866, 0.505132, 0.000000, 0.000000, 0.863042 -867, 0.491509, 0.000000, 0.000000, 0.870872 -868, 0.477765, 0.000000, 0.000000, 0.878488 -869, 0.463902, 0.000000, 0.000000, 0.885886 -870, 0.449926, 0.000000, 0.000000, 0.893066 -871, 0.435838, 0.000000, 0.000000, 0.900025 -872, 0.421642, 0.000000, 0.000000, 0.906762 -873, 0.407343, 0.000000, 0.000000, 0.913275 -874, 0.392942, 0.000000, 0.000000, 0.919563 -875, 0.378445, 0.000000, 0.000000, 0.925624 -876, 0.363855, 0.000000, 0.000000, 0.931456 -877, 0.349174, 0.000000, 0.000000, 0.937058 -878, 0.334407, 0.000000, 0.000000, 0.942429 -879, 0.319558, 0.000000, 0.000000, 0.947567 -880, 0.304630, 0.000000, 0.000000, 0.952471 -881, 0.289627, 0.000000, 0.000000, 0.957140 -882, 0.274552, 0.000000, 0.000000, 0.961572 -883, 0.259409, 0.000000, 0.000000, 0.965767 -884, 0.244203, 0.000000, 0.000000, 0.969724 -885, 0.228936, 0.000000, 0.000000, 0.973442 -886, 0.213612, 0.000000, 0.000000, 0.976919 -887, 0.198236, 0.000000, 0.000000, 0.980154 -888, 0.182811, 0.000000, 0.000000, 0.983148 -889, 0.167340, 0.000000, 0.000000, 0.985899 -890, 0.151829, 0.000000, 0.000000, 0.988407 -891, 0.136279, 0.000000, 0.000000, 0.990670 -892, 0.120697, 0.000000, 0.000000, 0.992689 -893, 0.105084, 0.000000, 0.000000, 0.994463 -894, 0.089446, 0.000000, 0.000000, 0.995992 -895, 0.073785, 0.000000, 0.000000, 0.997274 -896, 0.058106, 0.000000, 0.000000, 0.998310 -897, 0.042413, 0.000000, 0.000000, 0.999100 -898, 0.026709, 0.000000, 0.000000, 0.999643 -899, 0.010999, 0.000000, 0.000000, 0.999940 -900, -0.004714, -0.000000, 0.000000, 0.999989 -901, -0.020426, -0.000000, 0.000000, 0.999791 -902, -0.036132, -0.000000, 0.000000, 0.999347 -903, -0.051830, -0.000000, 0.000000, 0.998656 -904, -0.067515, -0.000000, 0.000000, 0.997718 -905, -0.083184, -0.000000, 0.000000, 0.996534 -906, -0.098832, -0.000000, 0.000000, 0.995104 -907, -0.114455, -0.000000, 0.000000, 0.993428 -908, -0.130050, -0.000000, 0.000000, 0.991507 -909, -0.145613, -0.000000, 0.000000, 0.989342 -910, -0.161140, -0.000000, 0.000000, 0.986932 -911, -0.176628, -0.000000, 0.000000, 0.984278 -912, -0.192071, -0.000000, 0.000000, 0.981381 -913, -0.207468, -0.000000, 0.000000, 0.978242 -914, -0.222813, -0.000000, 0.000000, 0.974861 -915, -0.238103, -0.000000, 0.000000, 0.971240 -916, -0.253334, -0.000000, 0.000000, 0.967379 -917, -0.268503, -0.000000, 0.000000, 0.963279 -918, -0.283605, -0.000000, 0.000000, 0.958941 -919, -0.298638, -0.000000, 0.000000, 0.954367 -920, -0.313596, -0.000000, 0.000000, 0.949556 -921, -0.328478, -0.000000, 0.000000, 0.944512 -922, -0.343278, -0.000000, 0.000000, 0.939234 -923, -0.357993, -0.000000, 0.000000, 0.933724 -924, -0.372620, -0.000000, 0.000000, 0.927984 -925, -0.387155, -0.000000, 0.000000, 0.922015 -926, -0.401594, -0.000000, 0.000000, 0.915818 -927, -0.415935, -0.000000, 0.000000, 0.909394 -928, -0.430172, -0.000000, 0.000000, 0.902747 -929, -0.444304, -0.000000, 0.000000, 0.895876 -930, -0.458325, -0.000000, 0.000000, 0.888785 -931, -0.472234, -0.000000, 0.000000, 0.881473 -932, -0.486026, -0.000000, 0.000000, 0.873945 -933, -0.499698, -0.000000, 0.000000, 0.866200 -934, -0.513246, -0.000000, 0.000000, 0.858241 -935, -0.526668, -0.000000, 0.000000, 0.850071 -936, -0.539960, -0.000000, 0.000000, 0.841691 -937, -0.553118, -0.000000, 0.000000, 0.833103 -938, -0.566140, -0.000000, 0.000000, 0.824309 -939, -0.579022, -0.000000, 0.000000, 0.815312 -940, -0.591761, -0.000000, 0.000000, 0.806113 -941, -0.604354, -0.000000, 0.000000, 0.796716 -942, -0.616798, -0.000000, 0.000000, 0.787121 -943, -0.629090, -0.000000, 0.000000, 0.777333 -944, -0.641226, -0.000000, 0.000000, 0.767352 -945, -0.653204, -0.000000, 0.000000, 0.757182 -946, -0.665020, -0.000000, 0.000000, 0.746825 -947, -0.676673, -0.000000, 0.000000, 0.736284 -948, -0.688158, -0.000000, 0.000000, 0.725561 -949, -0.699474, -0.000000, 0.000000, 0.714658 -950, -0.710616, -0.000000, 0.000000, 0.703580 -951, -0.721584, -0.000000, 0.000000, 0.692327 -952, -0.732373, -0.000000, 0.000000, 0.680904 -953, -0.742981, -0.000000, 0.000000, 0.669312 -954, -0.753406, -0.000000, 0.000000, 0.657555 -955, -0.763645, -0.000000, 0.000000, 0.645636 -956, -0.773695, -0.000000, 0.000000, 0.633558 -957, -0.783555, -0.000000, 0.000000, 0.621323 -958, -0.793220, -0.000000, 0.000000, 0.608935 -959, -0.802690, -0.000000, 0.000000, 0.596396 -960, -0.811962, -0.000000, 0.000000, 0.583710 -961, -0.821034, -0.000000, 0.000000, 0.570880 -962, -0.829902, -0.000000, 0.000000, 0.557909 -963, -0.838566, -0.000000, 0.000000, 0.544800 -964, -0.847023, -0.000000, 0.000000, 0.531557 -965, -0.855270, -0.000000, 0.000000, 0.518182 -966, -0.863307, -0.000000, 0.000000, 0.504680 -967, -0.871130, -0.000000, 0.000000, 0.491053 -968, -0.878738, -0.000000, 0.000000, 0.477305 -969, -0.886129, -0.000000, 0.000000, 0.463438 -970, -0.893302, -0.000000, 0.000000, 0.449458 -971, -0.900253, -0.000000, 0.000000, 0.435366 -972, -0.906983, -0.000000, 0.000000, 0.421167 -973, -0.913489, -0.000000, 0.000000, 0.406864 -974, -0.919769, -0.000000, 0.000000, 0.392461 -975, -0.925822, -0.000000, 0.000000, 0.377960 -976, -0.931646, -0.000000, 0.000000, 0.363367 -977, -0.937241, -0.000000, 0.000000, 0.348683 -978, -0.942604, -0.000000, 0.000000, 0.333914 -979, -0.947734, -0.000000, 0.000000, 0.319062 -980, -0.952630, -0.000000, 0.000000, 0.304131 -981, -0.957291, -0.000000, 0.000000, 0.289125 -982, -0.961716, -0.000000, 0.000000, 0.274048 -983, -0.965903, -0.000000, 0.000000, 0.258903 -984, -0.969852, -0.000000, 0.000000, 0.243695 -985, -0.973561, -0.000000, 0.000000, 0.228426 -986, -0.977030, -0.000000, 0.000000, 0.213100 -987, -0.980258, -0.000000, 0.000000, 0.197722 -988, -0.983244, -0.000000, 0.000000, 0.182296 -989, -0.985987, -0.000000, 0.000000, 0.166824 -990, -0.988486, -0.000000, 0.000000, 0.151311 -991, -0.990742, -0.000000, 0.000000, 0.135761 -992, -0.992753, -0.000000, 0.000000, 0.120177 -993, -0.994518, -0.000000, 0.000000, 0.104563 -994, -0.996038, -0.000000, 0.000000, 0.088924 -995, -0.997313, -0.000000, 0.000000, 0.073263 -996, -0.998341, -0.000000, 0.000000, 0.057583 -997, -0.999122, -0.000000, 0.000000, 0.041890 -998, -0.999657, -0.000000, 0.000000, 0.026186 -999, -0.999945, -0.000000, 0.000000, 0.010475 -1000, -0.999986, 0.000000, -0.000000, -0.005238 -1001, -0.999781, 0.000000, -0.000000, -0.020949 -1002, -0.999328, 0.000000, -0.000000, -0.036656 -1003, -0.998629, 0.000000, -0.000000, -0.052353 -1004, -0.997683, 0.000000, -0.000000, -0.068038 -1005, -0.996491, 0.000000, -0.000000, -0.083706 -1006, -0.995052, 0.000000, -0.000000, -0.099353 -1007, -0.993368, 0.000000, -0.000000, -0.114975 -1008, -0.991439, 0.000000, -0.000000, -0.130569 -1009, -0.989265, 0.000000, -0.000000, -0.146131 -1010, -0.986847, 0.000000, -0.000000, -0.161657 -1011, -0.984185, 0.000000, -0.000000, -0.177143 -1012, -0.981280, 0.000000, -0.000000, -0.192585 -1013, -0.978133, 0.000000, -0.000000, -0.207980 -1014, -0.974744, 0.000000, -0.000000, -0.223323 -1015, -0.971115, 0.000000, -0.000000, -0.238611 -1016, -0.967246, 0.000000, -0.000000, -0.253841 -1017, -0.963138, 0.000000, -0.000000, -0.269007 -1018, -0.958792, 0.000000, -0.000000, -0.284107 -1019, -0.954210, 0.000000, -0.000000, -0.299137 -1020, -0.949392, 0.000000, -0.000000, -0.314094 -1021, -0.944340, 0.000000, -0.000000, -0.328972 -1022, -0.939054, 0.000000, -0.000000, -0.343770 -1023, -0.933537, 0.000000, -0.000000, -0.358482 -1024, -0.927789, 0.000000, -0.000000, -0.373106 -1025, -0.921812, 0.000000, -0.000000, -0.387638 -1026, -0.915607, 0.000000, -0.000000, -0.402074 -1027, -0.909177, 0.000000, -0.000000, -0.416411 -1028, -0.902521, 0.000000, -0.000000, -0.430645 -1029, -0.895643, 0.000000, -0.000000, -0.444773 -1030, -0.888544, 0.000000, -0.000000, -0.458791 -1031, -0.881226, 0.000000, -0.000000, -0.472695 -1032, -0.873690, 0.000000, -0.000000, -0.486483 -1033, -0.865938, 0.000000, -0.000000, -0.500151 -1034, -0.857973, 0.000000, -0.000000, -0.513696 -1035, -0.849795, 0.000000, -0.000000, -0.527113 -1036, -0.841408, 0.000000, -0.000000, -0.540400 -1037, -0.832813, 0.000000, -0.000000, -0.553554 -1038, -0.824012, 0.000000, -0.000000, -0.566572 -1039, -0.815008, 0.000000, -0.000000, -0.579449 -1040, -0.805803, 0.000000, -0.000000, -0.592183 -1041, -0.796399, 0.000000, -0.000000, -0.604772 -1042, -0.786798, 0.000000, -0.000000, -0.617210 -1043, -0.777003, 0.000000, -0.000000, -0.629497 -1044, -0.767016, 0.000000, -0.000000, -0.641628 -1045, -0.756840, 0.000000, -0.000000, -0.653600 -1046, -0.746477, 0.000000, -0.000000, -0.665412 -1047, -0.735929, 0.000000, -0.000000, -0.677058 -1048, -0.725200, 0.000000, -0.000000, -0.688538 -1049, -0.714292, 0.000000, -0.000000, -0.699848 -1050, -0.703207, 0.000000, -0.000000, -0.710985 -1051, -0.691949, 0.000000, -0.000000, -0.721946 -1052, -0.680520, 0.000000, -0.000000, -0.732729 -1053, -0.668923, 0.000000, -0.000000, -0.743332 -1054, -0.657161, 0.000000, -0.000000, -0.753750 -1055, -0.645236, 0.000000, -0.000000, -0.763983 -1056, -0.633153, 0.000000, -0.000000, -0.774027 -1057, -0.620912, 0.000000, -0.000000, -0.783880 -1058, -0.608519, 0.000000, -0.000000, -0.793539 -1059, -0.595975, 0.000000, -0.000000, -0.803003 -1060, -0.583285, 0.000000, -0.000000, -0.812268 -1061, -0.570450, 0.000000, -0.000000, -0.821333 -1062, -0.557474, 0.000000, -0.000000, -0.830194 -1063, -0.544361, 0.000000, -0.000000, -0.838851 -1064, -0.531113, 0.000000, -0.000000, -0.847301 -1065, -0.517734, 0.000000, -0.000000, -0.855541 -1066, -0.504228, 0.000000, -0.000000, -0.863571 -1067, -0.490596, 0.000000, -0.000000, -0.871387 -1068, -0.476844, 0.000000, -0.000000, -0.878988 -1069, -0.462974, 0.000000, -0.000000, -0.886372 -1070, -0.448990, 0.000000, -0.000000, -0.893537 -1071, -0.434895, 0.000000, -0.000000, -0.900481 -1072, -0.420692, 0.000000, -0.000000, -0.907203 -1073, -0.406386, 0.000000, -0.000000, -0.913702 -1074, -0.391979, 0.000000, -0.000000, -0.919974 -1075, -0.377475, 0.000000, -0.000000, -0.926020 -1076, -0.362879, 0.000000, -0.000000, -0.931836 -1077, -0.348192, 0.000000, -0.000000, -0.937423 -1078, -0.333420, 0.000000, -0.000000, -0.942778 -1079, -0.318565, 0.000000, -0.000000, -0.947901 -1080, -0.303632, 0.000000, -0.000000, -0.952789 -1081, -0.288624, 0.000000, -0.000000, -0.957443 -1082, -0.273544, 0.000000, -0.000000, -0.961859 -1083, -0.258397, 0.000000, -0.000000, -0.966039 -1084, -0.243187, 0.000000, -0.000000, -0.969980 -1085, -0.227916, 0.000000, -0.000000, -0.973681 -1086, -0.212589, 0.000000, -0.000000, -0.977142 -1087, -0.197209, 0.000000, -0.000000, -0.980361 -1088, -0.181781, 0.000000, -0.000000, -0.983339 -1089, -0.166307, 0.000000, -0.000000, -0.986074 -1090, -0.150793, 0.000000, -0.000000, -0.988565 -1091, -0.135242, 0.000000, -0.000000, -0.990813 -1092, -0.119657, 0.000000, -0.000000, -0.992815 -1093, -0.104042, 0.000000, -0.000000, -0.994573 -1094, -0.088402, 0.000000, -0.000000, -0.996085 -1095, -0.072740, 0.000000, -0.000000, -0.997351 -1096, -0.057060, 0.000000, -0.000000, -0.998371 -1097, -0.041366, 0.000000, -0.000000, -0.999144 -1098, -0.025662, 0.000000, -0.000000, -0.999671 -1099, -0.009952, 0.000000, -0.000000, -0.999950 -1100, 0.005761, 0.000000, 0.000000, -0.999983 -1101, 0.021473, 0.000000, 0.000000, -0.999769 -1102, 0.037179, 0.000000, 0.000000, -0.999309 -1103, 0.052876, 0.000000, 0.000000, -0.998601 -1104, 0.068560, 0.000000, 0.000000, -0.997647 -1105, 0.084228, 0.000000, 0.000000, -0.996447 -1106, 0.099874, 0.000000, 0.000000, -0.995000 -1107, 0.115496, 0.000000, 0.000000, -0.993308 -1108, 0.131089, 0.000000, 0.000000, -0.991371 -1109, 0.146650, 0.000000, 0.000000, -0.989189 -1110, 0.162174, 0.000000, 0.000000, -0.986762 -1111, 0.177659, 0.000000, 0.000000, -0.984092 -1112, 0.193099, 0.000000, 0.000000, -0.981179 -1113, 0.208492, 0.000000, 0.000000, -0.978024 -1114, 0.223834, 0.000000, 0.000000, -0.974627 -1115, 0.239120, 0.000000, 0.000000, -0.970990 -1116, 0.254347, 0.000000, 0.000000, -0.967113 -1117, 0.269512, 0.000000, 0.000000, -0.962997 -1118, 0.284610, 0.000000, 0.000000, -0.958644 -1119, 0.299637, 0.000000, 0.000000, -0.954053 -1120, 0.314591, 0.000000, 0.000000, -0.949227 -1121, 0.329467, 0.000000, 0.000000, -0.944167 -1122, 0.344261, 0.000000, 0.000000, -0.938874 -1123, 0.358971, 0.000000, 0.000000, -0.933349 -1124, 0.373592, 0.000000, 0.000000, -0.927593 -1125, 0.388121, 0.000000, 0.000000, -0.921609 -1126, 0.402554, 0.000000, 0.000000, -0.915396 -1127, 0.416887, 0.000000, 0.000000, -0.908958 -1128, 0.431118, 0.000000, 0.000000, -0.902296 -1129, 0.445242, 0.000000, 0.000000, -0.895410 -1130, 0.459256, 0.000000, 0.000000, -0.888304 -1131, 0.473157, 0.000000, 0.000000, -0.880978 -1132, 0.486941, 0.000000, 0.000000, -0.873435 -1133, 0.500605, 0.000000, 0.000000, -0.865676 -1134, 0.514145, 0.000000, 0.000000, -0.857703 -1135, 0.527558, 0.000000, 0.000000, -0.849519 -1136, 0.540841, 0.000000, 0.000000, -0.841125 -1137, 0.553991, 0.000000, 0.000000, -0.832523 -1138, 0.567003, 0.000000, 0.000000, -0.823716 -1139, 0.579876, 0.000000, 0.000000, -0.814705 -1140, 0.592605, 0.000000, 0.000000, -0.805493 -1141, 0.605189, 0.000000, 0.000000, -0.796082 -1142, 0.617622, 0.000000, 0.000000, -0.786475 -1143, 0.629904, 0.000000, 0.000000, -0.776673 -1144, 0.642029, 0.000000, 0.000000, -0.766680 -1145, 0.653997, 0.000000, 0.000000, -0.756497 -1146, 0.665802, 0.000000, 0.000000, -0.746128 -1147, 0.677444, 0.000000, 0.000000, -0.735575 -1148, 0.688918, 0.000000, 0.000000, -0.724839 -1149, 0.700222, 0.000000, 0.000000, -0.713925 -1150, 0.711353, 0.000000, 0.000000, -0.702835 -1151, 0.722309, 0.000000, 0.000000, -0.691571 -1152, 0.733086, 0.000000, 0.000000, -0.680136 -1153, 0.743682, 0.000000, 0.000000, -0.668534 -1154, 0.754095, 0.000000, 0.000000, -0.656766 -1155, 0.764321, 0.000000, 0.000000, -0.644836 -1156, 0.774359, 0.000000, 0.000000, -0.632747 -1157, 0.784205, 0.000000, 0.000000, -0.620502 -1158, 0.793858, 0.000000, 0.000000, -0.608103 -1159, 0.803315, 0.000000, 0.000000, -0.595555 -1160, 0.812573, 0.000000, 0.000000, -0.582859 -1161, 0.821631, 0.000000, 0.000000, -0.570019 -1162, 0.830486, 0.000000, 0.000000, -0.557039 -1163, 0.839136, 0.000000, 0.000000, -0.543921 -1164, 0.847579, 0.000000, 0.000000, -0.530669 -1165, 0.855813, 0.000000, 0.000000, -0.517286 -1166, 0.863835, 0.000000, 0.000000, -0.503775 -1167, 0.871644, 0.000000, 0.000000, -0.490140 -1168, 0.879237, 0.000000, 0.000000, -0.476384 -1169, 0.886614, 0.000000, 0.000000, -0.462510 -1170, 0.893772, 0.000000, 0.000000, -0.448522 -1171, 0.900709, 0.000000, 0.000000, -0.434423 -1172, 0.907424, 0.000000, 0.000000, -0.420217 -1173, 0.913914, 0.000000, 0.000000, -0.405907 -1174, 0.920179, 0.000000, 0.000000, -0.391497 -1175, 0.926217, 0.000000, 0.000000, -0.376990 -1176, 0.932026, 0.000000, 0.000000, -0.362391 -1177, 0.937605, 0.000000, 0.000000, -0.347701 -1178, 0.942953, 0.000000, 0.000000, -0.332926 -1179, 0.948068, 0.000000, 0.000000, -0.318069 -1180, 0.952948, 0.000000, 0.000000, -0.303133 -1181, 0.957594, 0.000000, 0.000000, -0.288122 -1182, 0.962003, 0.000000, 0.000000, -0.273041 -1183, 0.966174, 0.000000, 0.000000, -0.257891 -1184, 0.970107, 0.000000, 0.000000, -0.242678 -1185, 0.973800, 0.000000, 0.000000, -0.227406 -1186, 0.977253, 0.000000, 0.000000, -0.212077 -1187, 0.980465, 0.000000, 0.000000, -0.196695 -1188, 0.983434, 0.000000, 0.000000, -0.181266 -1189, 0.986161, 0.000000, 0.000000, -0.165791 -1190, 0.988644, 0.000000, 0.000000, -0.150275 -1191, 0.990883, 0.000000, 0.000000, -0.134723 -1192, 0.992878, 0.000000, 0.000000, -0.119137 -1193, 0.994627, 0.000000, 0.000000, -0.103521 -1194, 0.996131, 0.000000, 0.000000, -0.087880 -1195, 0.997389, 0.000000, 0.000000, -0.072218 -1196, 0.998400, 0.000000, 0.000000, -0.056537 -1197, 0.999166, 0.000000, 0.000000, -0.040843 -1198, 0.999684, 0.000000, 0.000000, -0.025138 -1199, 0.999956, 0.000000, 0.000000, -0.009428 -1200, 0.999980, 0.000000, 0.000000, 0.006285 -1201, 0.999758, 0.000000, 0.000000, 0.021997 -1202, 0.999289, 0.000000, 0.000000, 0.037703 -1203, 0.998573, 0.000000, 0.000000, 0.053399 -1204, 0.997611, 0.000000, 0.000000, 0.069083 -1205, 0.996402, 0.000000, 0.000000, 0.084750 -1206, 0.994948, 0.000000, 0.000000, 0.100395 -1207, 0.993247, 0.000000, 0.000000, 0.116016 -1208, 0.991302, 0.000000, 0.000000, 0.131608 -1209, 0.989112, 0.000000, 0.000000, 0.147168 -1210, 0.986677, 0.000000, 0.000000, 0.162691 -1211, 0.983999, 0.000000, 0.000000, 0.178174 -1212, 0.981078, 0.000000, 0.000000, 0.193613 -1213, 0.977915, 0.000000, 0.000000, 0.209005 -1214, 0.974510, 0.000000, 0.000000, 0.224344 -1215, 0.970865, 0.000000, 0.000000, 0.239629 -1216, 0.966980, 0.000000, 0.000000, 0.254854 -1217, 0.962856, 0.000000, 0.000000, 0.270016 -1218, 0.958494, 0.000000, 0.000000, 0.285112 -1219, 0.953896, 0.000000, 0.000000, 0.300137 -1220, 0.949062, 0.000000, 0.000000, 0.315088 -1221, 0.943994, 0.000000, 0.000000, 0.329961 -1222, 0.938693, 0.000000, 0.000000, 0.344753 -1223, 0.933161, 0.000000, 0.000000, 0.359460 -1224, 0.927397, 0.000000, 0.000000, 0.374078 -1225, 0.921405, 0.000000, 0.000000, 0.388603 -1226, 0.915185, 0.000000, 0.000000, 0.403033 -1227, 0.908740, 0.000000, 0.000000, 0.417363 -1228, 0.902070, 0.000000, 0.000000, 0.431590 -1229, 0.895177, 0.000000, 0.000000, 0.445711 -1230, 0.888063, 0.000000, 0.000000, 0.459721 -1231, 0.880730, 0.000000, 0.000000, 0.473618 -1232, 0.873180, 0.000000, 0.000000, 0.487398 -1233, 0.865414, 0.000000, 0.000000, 0.501058 -1234, 0.857434, 0.000000, 0.000000, 0.514594 -1235, 0.849243, 0.000000, 0.000000, 0.528003 -1236, 0.840841, 0.000000, 0.000000, 0.541282 -1237, 0.832233, 0.000000, 0.000000, 0.554427 -1238, 0.823418, 0.000000, 0.000000, 0.567435 -1239, 0.814401, 0.000000, 0.000000, 0.580303 -1240, 0.805182, 0.000000, 0.000000, 0.593027 -1241, 0.795765, 0.000000, 0.000000, 0.605605 -1242, 0.786151, 0.000000, 0.000000, 0.618034 -1243, 0.776343, 0.000000, 0.000000, 0.630310 -1244, 0.766344, 0.000000, 0.000000, 0.642431 -1245, 0.756155, 0.000000, 0.000000, 0.654393 -1246, 0.745779, 0.000000, 0.000000, 0.666193 -1247, 0.735220, 0.000000, 0.000000, 0.677829 -1248, 0.724478, 0.000000, 0.000000, 0.689297 -1249, 0.713558, 0.000000, 0.000000, 0.700596 -1250, 0.702462, 0.000000, 0.000000, 0.711721 -1251, 0.691192, 0.000000, 0.000000, 0.722671 -1252, 0.679752, 0.000000, 0.000000, 0.733442 -1253, 0.668144, 0.000000, 0.000000, 0.744032 -1254, 0.656371, 0.000000, 0.000000, 0.754438 -1255, 0.644436, 0.000000, 0.000000, 0.764659 -1256, 0.632341, 0.000000, 0.000000, 0.774690 -1257, 0.620091, 0.000000, 0.000000, 0.784530 -1258, 0.607687, 0.000000, 0.000000, 0.794176 -1259, 0.595134, 0.000000, 0.000000, 0.803627 -1260, 0.582433, 0.000000, 0.000000, 0.812878 -1261, 0.569589, 0.000000, 0.000000, 0.821930 -1262, 0.556604, 0.000000, 0.000000, 0.830778 -1263, 0.543482, 0.000000, 0.000000, 0.839421 -1264, 0.530225, 0.000000, 0.000000, 0.847857 -1265, 0.516838, 0.000000, 0.000000, 0.856083 -1266, 0.503323, 0.000000, 0.000000, 0.864099 -1267, 0.489683, 0.000000, 0.000000, 0.871900 -1268, 0.475923, 0.000000, 0.000000, 0.879487 -1269, 0.462045, 0.000000, 0.000000, 0.886856 -1270, 0.448054, 0.000000, 0.000000, 0.894007 -1271, 0.433951, 0.000000, 0.000000, 0.900936 -1272, 0.419742, 0.000000, 0.000000, 0.907644 -1273, 0.405428, 0.000000, 0.000000, 0.914127 -1274, 0.391015, 0.000000, 0.000000, 0.920384 -1275, 0.376505, 0.000000, 0.000000, 0.926415 -1276, 0.361902, 0.000000, 0.000000, 0.932216 -1277, 0.347210, 0.000000, 0.000000, 0.937787 -1278, 0.332432, 0.000000, 0.000000, 0.943127 -1279, 0.317572, 0.000000, 0.000000, 0.948234 -1280, 0.302634, 0.000000, 0.000000, 0.953107 -1281, 0.287621, 0.000000, 0.000000, 0.957744 -1282, 0.272537, 0.000000, 0.000000, 0.962145 -1283, 0.257385, 0.000000, 0.000000, 0.966309 -1284, 0.242170, 0.000000, 0.000000, 0.970234 -1285, 0.226896, 0.000000, 0.000000, 0.973919 -1286, 0.211565, 0.000000, 0.000000, 0.977364 -1287, 0.196182, 0.000000, 0.000000, 0.980568 -1288, 0.180750, 0.000000, 0.000000, 0.983529 -1289, 0.165274, 0.000000, 0.000000, 0.986248 -1290, 0.149757, 0.000000, 0.000000, 0.988723 -1291, 0.134204, 0.000000, 0.000000, 0.990954 -1292, 0.118617, 0.000000, 0.000000, 0.992940 -1293, 0.103000, 0.000000, 0.000000, 0.994681 -1294, 0.087359, 0.000000, 0.000000, 0.996177 -1295, 0.071695, 0.000000, 0.000000, 0.997427 -1296, 0.056014, 0.000000, 0.000000, 0.998430 -1297, 0.040320, 0.000000, 0.000000, 0.999187 -1298, 0.024615, 0.000000, 0.000000, 0.999697 -1299, 0.008904, 0.000000, 0.000000, 0.999960 -1300, -0.006809, -0.000000, 0.000000, 0.999977 -1301, -0.022520, -0.000000, 0.000000, 0.999746 -1302, -0.038226, -0.000000, 0.000000, 0.999269 -1303, -0.053922, -0.000000, 0.000000, 0.998545 -1304, -0.069606, -0.000000, 0.000000, 0.997575 -1305, -0.085271, -0.000000, 0.000000, 0.996358 -1306, -0.100916, -0.000000, 0.000000, 0.994895 -1307, -0.116536, -0.000000, 0.000000, 0.993186 -1308, -0.132127, -0.000000, 0.000000, 0.991233 -1309, -0.147686, -0.000000, 0.000000, 0.989034 -1310, -0.163208, -0.000000, 0.000000, 0.986592 -1311, -0.178689, -0.000000, 0.000000, 0.983906 -1312, -0.194127, -0.000000, 0.000000, 0.980976 -1313, -0.209517, -0.000000, 0.000000, 0.977805 -1314, -0.224855, -0.000000, 0.000000, 0.974392 -1315, -0.240137, -0.000000, 0.000000, 0.970739 -1316, -0.255360, -0.000000, 0.000000, 0.966846 -1317, -0.270520, -0.000000, 0.000000, 0.962714 -1318, -0.285614, -0.000000, 0.000000, 0.958345 -1319, -0.300636, -0.000000, 0.000000, 0.953739 -1320, -0.315585, -0.000000, 0.000000, 0.948897 -1321, -0.330456, -0.000000, 0.000000, 0.943822 -1322, -0.345245, -0.000000, 0.000000, 0.938513 -1323, -0.359948, -0.000000, 0.000000, 0.932972 -1324, -0.374563, -0.000000, 0.000000, 0.927201 -1325, -0.389086, -0.000000, 0.000000, 0.921201 -1326, -0.403512, -0.000000, 0.000000, 0.914974 -1327, -0.417839, -0.000000, 0.000000, 0.908521 -1328, -0.432063, -0.000000, 0.000000, 0.901844 -1329, -0.446180, -0.000000, 0.000000, 0.894943 -1330, -0.460186, -0.000000, 0.000000, 0.887822 -1331, -0.474079, -0.000000, 0.000000, 0.880482 -1332, -0.487856, -0.000000, 0.000000, 0.872924 -1333, -0.501511, -0.000000, 0.000000, 0.865151 -1334, -0.515043, -0.000000, 0.000000, 0.857164 -1335, -0.528448, -0.000000, 0.000000, 0.848966 -1336, -0.541722, -0.000000, 0.000000, 0.840558 -1337, -0.554862, -0.000000, 0.000000, 0.831942 -1338, -0.567866, -0.000000, 0.000000, 0.823121 -1339, -0.580729, -0.000000, 0.000000, 0.814097 -1340, -0.593449, -0.000000, 0.000000, 0.804872 -1341, -0.606022, -0.000000, 0.000000, 0.795448 -1342, -0.618446, -0.000000, 0.000000, 0.785827 -1343, -0.630717, -0.000000, 0.000000, 0.776013 -1344, -0.642832, -0.000000, 0.000000, 0.766007 -1345, -0.654789, -0.000000, 0.000000, 0.755812 -1346, -0.666584, -0.000000, 0.000000, 0.745430 -1347, -0.678214, -0.000000, 0.000000, 0.734864 -1348, -0.689677, -0.000000, 0.000000, 0.724117 -1349, -0.700969, -0.000000, 0.000000, 0.713191 -1350, -0.712089, -0.000000, 0.000000, 0.702089 -1351, -0.723033, -0.000000, 0.000000, 0.690814 -1352, -0.733798, -0.000000, 0.000000, 0.679368 -1353, -0.744382, -0.000000, 0.000000, 0.667754 -1354, -0.754782, -0.000000, 0.000000, 0.655976 -1355, -0.764996, -0.000000, 0.000000, 0.644035 -1356, -0.775021, -0.000000, 0.000000, 0.631935 -1357, -0.784855, -0.000000, 0.000000, 0.619680 -1358, -0.794494, -0.000000, 0.000000, 0.607271 -1359, -0.803938, -0.000000, 0.000000, 0.594713 -1360, -0.813183, -0.000000, 0.000000, 0.582008 -1361, -0.822228, -0.000000, 0.000000, 0.569158 -1362, -0.831069, -0.000000, 0.000000, 0.556169 -1363, -0.839706, -0.000000, 0.000000, 0.543042 -1364, -0.848134, -0.000000, 0.000000, 0.529781 -1365, -0.856354, -0.000000, 0.000000, 0.516389 -1366, -0.864362, -0.000000, 0.000000, 0.502870 -1367, -0.872157, -0.000000, 0.000000, 0.489227 -1368, -0.879736, -0.000000, 0.000000, 0.475462 -1369, -0.887098, -0.000000, 0.000000, 0.461581 -1370, -0.894241, -0.000000, 0.000000, 0.447585 -1371, -0.901164, -0.000000, 0.000000, 0.433479 -1372, -0.907863, -0.000000, 0.000000, 0.419266 -1373, -0.914339, -0.000000, 0.000000, 0.404950 -1374, -0.920589, -0.000000, 0.000000, 0.390533 -1375, -0.926612, -0.000000, 0.000000, 0.376020 -1376, -0.932405, -0.000000, 0.000000, 0.361414 -1377, -0.937969, -0.000000, 0.000000, 0.346719 -1378, -0.943301, -0.000000, 0.000000, 0.331938 -1379, -0.948400, -0.000000, 0.000000, 0.317076 -1380, -0.953265, -0.000000, 0.000000, 0.302135 -1381, -0.957895, -0.000000, 0.000000, 0.287119 -1382, -0.962288, -0.000000, 0.000000, 0.272033 -1383, -0.966444, -0.000000, 0.000000, 0.256879 -1384, -0.970360, -0.000000, 0.000000, 0.241662 -1385, -0.974038, -0.000000, 0.000000, 0.226385 -1386, -0.977475, -0.000000, 0.000000, 0.211053 -1387, -0.980670, -0.000000, 0.000000, 0.195668 -1388, -0.983624, -0.000000, 0.000000, 0.180235 -1389, -0.986334, -0.000000, 0.000000, 0.164758 -1390, -0.988801, -0.000000, 0.000000, 0.149240 -1391, -0.991024, -0.000000, 0.000000, 0.133685 -1392, -0.993002, -0.000000, 0.000000, 0.118097 -1393, -0.994735, -0.000000, 0.000000, 0.102479 -1394, -0.996223, -0.000000, 0.000000, 0.086837 -1395, -0.997464, -0.000000, 0.000000, 0.071173 -1396, -0.998459, -0.000000, 0.000000, 0.055491 -1397, -0.999208, -0.000000, 0.000000, 0.039796 -1398, -0.999710, -0.000000, 0.000000, 0.024091 -1399, -0.999965, -0.000000, 0.000000, 0.008380 -1400, -0.999973, 0.000000, -0.000000, -0.007333 -1401, -0.999734, 0.000000, -0.000000, -0.023044 -1402, -0.999249, 0.000000, -0.000000, -0.038750 -1403, -0.998517, 0.000000, -0.000000, -0.054445 -1404, -0.997538, 0.000000, -0.000000, -0.070128 -1405, -0.996313, 0.000000, -0.000000, -0.085793 -1406, -0.994842, 0.000000, -0.000000, -0.101437 -1407, -0.993125, 0.000000, -0.000000, -0.117056 -1408, -0.991163, 0.000000, -0.000000, -0.132646 -1409, -0.988957, 0.000000, -0.000000, -0.148204 -1410, -0.986506, 0.000000, -0.000000, -0.163724 -1411, -0.983812, 0.000000, -0.000000, -0.179205 -1412, -0.980875, 0.000000, -0.000000, -0.194641 -1413, -0.977695, 0.000000, -0.000000, -0.210029 -1414, -0.974274, 0.000000, -0.000000, -0.225365 -1415, -0.970613, 0.000000, -0.000000, -0.240646 -1416, -0.966712, 0.000000, -0.000000, -0.255867 -1417, -0.962572, 0.000000, -0.000000, -0.271025 -1418, -0.958195, 0.000000, -0.000000, -0.286116 -1419, -0.953581, 0.000000, -0.000000, -0.301136 -1420, -0.948732, 0.000000, -0.000000, -0.316082 -1421, -0.943648, 0.000000, -0.000000, -0.330950 -1422, -0.938332, 0.000000, -0.000000, -0.345736 -1423, -0.932784, 0.000000, -0.000000, -0.360437 -1424, -0.927005, 0.000000, -0.000000, -0.375049 -1425, -0.920998, 0.000000, -0.000000, -0.389568 -1426, -0.914763, 0.000000, -0.000000, -0.403991 -1427, -0.908302, 0.000000, -0.000000, -0.418315 -1428, -0.901617, 0.000000, -0.000000, -0.432535 -1429, -0.894710, 0.000000, -0.000000, -0.446648 -1430, -0.887581, 0.000000, -0.000000, -0.460651 -1431, -0.880234, 0.000000, -0.000000, -0.474541 -1432, -0.872669, 0.000000, -0.000000, -0.488313 -1433, -0.864888, 0.000000, -0.000000, -0.501964 -1434, -0.856894, 0.000000, -0.000000, -0.515492 -1435, -0.848689, 0.000000, -0.000000, -0.528892 -1436, -0.840274, 0.000000, -0.000000, -0.542162 -1437, -0.831651, 0.000000, -0.000000, -0.555298 -1438, -0.822824, 0.000000, -0.000000, -0.568297 -1439, -0.813793, 0.000000, -0.000000, -0.581155 -1440, -0.804561, 0.000000, -0.000000, -0.593870 -1441, -0.795130, 0.000000, -0.000000, -0.606439 -1442, -0.785503, 0.000000, -0.000000, -0.618857 -1443, -0.775683, 0.000000, -0.000000, -0.631123 -1444, -0.765670, 0.000000, -0.000000, -0.643233 -1445, -0.755469, 0.000000, -0.000000, -0.655185 -1446, -0.745081, 0.000000, -0.000000, -0.666974 -1447, -0.734509, 0.000000, -0.000000, -0.678599 -1448, -0.723756, 0.000000, -0.000000, -0.690056 -1449, -0.712824, 0.000000, -0.000000, -0.701343 -1450, -0.701716, 0.000000, -0.000000, -0.712457 -1451, -0.690435, 0.000000, -0.000000, -0.723394 -1452, -0.678983, 0.000000, -0.000000, -0.734154 -1453, -0.667364, 0.000000, -0.000000, -0.744732 -1454, -0.655580, 0.000000, -0.000000, -0.755126 -1455, -0.643634, 0.000000, -0.000000, -0.765333 -1456, -0.631529, 0.000000, -0.000000, -0.775352 -1457, -0.619269, 0.000000, -0.000000, -0.785179 -1458, -0.606855, 0.000000, -0.000000, -0.794812 -1459, -0.594292, 0.000000, -0.000000, -0.804250 -1460, -0.581581, 0.000000, -0.000000, -0.813488 -1461, -0.568728, 0.000000, -0.000000, -0.822526 -1462, -0.555734, 0.000000, -0.000000, -0.831360 -1463, -0.542602, 0.000000, -0.000000, -0.839990 -1464, -0.529337, 0.000000, -0.000000, -0.848412 -1465, -0.515941, 0.000000, -0.000000, -0.856624 -1466, -0.502417, 0.000000, -0.000000, -0.864625 -1467, -0.488770, 0.000000, -0.000000, -0.872413 -1468, -0.475002, 0.000000, -0.000000, -0.879985 -1469, -0.461116, 0.000000, -0.000000, -0.887340 -1470, -0.447117, 0.000000, -0.000000, -0.894476 -1471, -0.433007, 0.000000, -0.000000, -0.901390 -1472, -0.418791, 0.000000, -0.000000, -0.908083 -1473, -0.404471, 0.000000, -0.000000, -0.914551 -1474, -0.390051, 0.000000, -0.000000, -0.920793 -1475, -0.375535, 0.000000, -0.000000, -0.926808 -1476, -0.360926, 0.000000, -0.000000, -0.932595 -1477, -0.346228, 0.000000, -0.000000, -0.938151 -1478, -0.331444, 0.000000, -0.000000, -0.943475 -1479, -0.316579, 0.000000, -0.000000, -0.948566 -1480, -0.301635, 0.000000, -0.000000, -0.953423 -1481, -0.286617, 0.000000, -0.000000, -0.958045 -1482, -0.271529, 0.000000, -0.000000, -0.962430 -1483, -0.256373, 0.000000, -0.000000, -0.966578 -1484, -0.241154, 0.000000, -0.000000, -0.970487 -1485, -0.225875, 0.000000, -0.000000, -0.974156 -1486, -0.210541, 0.000000, -0.000000, -0.977585 -1487, -0.195155, 0.000000, -0.000000, -0.980773 -1488, -0.179720, 0.000000, -0.000000, -0.983718 -1489, -0.164241, 0.000000, -0.000000, -0.986420 -1490, -0.148722, 0.000000, -0.000000, -0.988879 -1491, -0.133165, 0.000000, -0.000000, -0.991094 -1492, -0.117576, 0.000000, -0.000000, -0.993064 -1493, -0.101958, 0.000000, -0.000000, -0.994789 -1494, -0.086315, 0.000000, -0.000000, -0.996268 -1495, -0.070650, 0.000000, -0.000000, -0.997501 -1496, -0.054968, 0.000000, -0.000000, -0.998488 -1497, -0.039273, 0.000000, -0.000000, -0.999229 -1498, -0.023568, 0.000000, -0.000000, -0.999722 -1499, -0.007857, 0.000000, -0.000000, -0.999969 -1500, 0.007857, 0.000000, 0.000000, -0.999969 -1501, 0.023568, 0.000000, 0.000000, -0.999722 -1502, 0.039273, 0.000000, 0.000000, -0.999229 -1503, 0.054968, 0.000000, 0.000000, -0.998488 -1504, 0.070650, 0.000000, 0.000000, -0.997501 -1505, 0.086315, 0.000000, 0.000000, -0.996268 -1506, 0.101958, 0.000000, 0.000000, -0.994789 -1507, 0.117576, 0.000000, 0.000000, -0.993064 -1508, 0.133165, 0.000000, 0.000000, -0.991094 -1509, 0.148722, 0.000000, 0.000000, -0.988879 -1510, 0.164241, 0.000000, 0.000000, -0.986420 -1511, 0.179720, 0.000000, 0.000000, -0.983718 -1512, 0.195155, 0.000000, 0.000000, -0.980773 -1513, 0.210541, 0.000000, 0.000000, -0.977585 -1514, 0.225875, 0.000000, 0.000000, -0.974156 -1515, 0.241154, 0.000000, 0.000000, -0.970487 -1516, 0.256373, 0.000000, 0.000000, -0.966578 -1517, 0.271529, 0.000000, 0.000000, -0.962430 -1518, 0.286617, 0.000000, 0.000000, -0.958045 -1519, 0.301635, 0.000000, 0.000000, -0.953423 -1520, 0.316579, 0.000000, 0.000000, -0.948566 -1521, 0.331444, 0.000000, 0.000000, -0.943475 -1522, 0.346228, 0.000000, 0.000000, -0.938151 -1523, 0.360926, 0.000000, 0.000000, -0.932595 -1524, 0.375535, 0.000000, 0.000000, -0.926808 -1525, 0.390051, 0.000000, 0.000000, -0.920793 -1526, 0.404471, 0.000000, 0.000000, -0.914551 -1527, 0.418791, 0.000000, 0.000000, -0.908083 -1528, 0.433007, 0.000000, 0.000000, -0.901390 -1529, 0.447117, 0.000000, 0.000000, -0.894476 -1530, 0.461116, 0.000000, 0.000000, -0.887340 -1531, 0.475002, 0.000000, 0.000000, -0.879985 -1532, 0.488770, 0.000000, 0.000000, -0.872413 -1533, 0.502417, 0.000000, 0.000000, -0.864625 -1534, 0.515941, 0.000000, 0.000000, -0.856624 -1535, 0.529337, 0.000000, 0.000000, -0.848412 -1536, 0.542602, 0.000000, 0.000000, -0.839990 -1537, 0.555734, 0.000000, 0.000000, -0.831360 -1538, 0.568728, 0.000000, 0.000000, -0.822526 -1539, 0.581581, 0.000000, 0.000000, -0.813488 -1540, 0.594292, 0.000000, 0.000000, -0.804250 -1541, 0.606855, 0.000000, 0.000000, -0.794812 -1542, 0.619269, 0.000000, 0.000000, -0.785179 -1543, 0.631529, 0.000000, 0.000000, -0.775352 -1544, 0.643634, 0.000000, 0.000000, -0.765333 -1545, 0.655580, 0.000000, 0.000000, -0.755126 -1546, 0.667364, 0.000000, 0.000000, -0.744732 -1547, 0.678983, 0.000000, 0.000000, -0.734154 -1548, 0.690435, 0.000000, 0.000000, -0.723394 -1549, 0.701716, 0.000000, 0.000000, -0.712457 -1550, 0.712824, 0.000000, 0.000000, -0.701343 -1551, 0.723756, 0.000000, 0.000000, -0.690056 -1552, 0.734509, 0.000000, 0.000000, -0.678599 -1553, 0.745081, 0.000000, 0.000000, -0.666974 -1554, 0.755469, 0.000000, 0.000000, -0.655185 -1555, 0.765670, 0.000000, 0.000000, -0.643233 -1556, 0.775683, 0.000000, 0.000000, -0.631123 -1557, 0.785503, 0.000000, 0.000000, -0.618857 -1558, 0.795130, 0.000000, 0.000000, -0.606439 -1559, 0.804561, 0.000000, 0.000000, -0.593870 -1560, 0.813793, 0.000000, 0.000000, -0.581155 -1561, 0.822824, 0.000000, 0.000000, -0.568297 -1562, 0.831651, 0.000000, 0.000000, -0.555298 -1563, 0.840274, 0.000000, 0.000000, -0.542162 -1564, 0.848689, 0.000000, 0.000000, -0.528892 -1565, 0.856894, 0.000000, 0.000000, -0.515492 -1566, 0.864888, 0.000000, 0.000000, -0.501964 -1567, 0.872669, 0.000000, 0.000000, -0.488313 -1568, 0.880234, 0.000000, 0.000000, -0.474541 -1569, 0.887581, 0.000000, 0.000000, -0.460651 -1570, 0.894710, 0.000000, 0.000000, -0.446648 -1571, 0.901617, 0.000000, 0.000000, -0.432535 -1572, 0.908302, 0.000000, 0.000000, -0.418315 -1573, 0.914763, 0.000000, 0.000000, -0.403991 -1574, 0.920998, 0.000000, 0.000000, -0.389568 -1575, 0.927005, 0.000000, 0.000000, -0.375049 -1576, 0.932784, 0.000000, 0.000000, -0.360437 -1577, 0.938332, 0.000000, 0.000000, -0.345736 -1578, 0.943648, 0.000000, 0.000000, -0.330950 -1579, 0.948732, 0.000000, 0.000000, -0.316082 -1580, 0.953581, 0.000000, 0.000000, -0.301136 -1581, 0.958195, 0.000000, 0.000000, -0.286116 -1582, 0.962572, 0.000000, 0.000000, -0.271025 -1583, 0.966712, 0.000000, 0.000000, -0.255867 -1584, 0.970613, 0.000000, 0.000000, -0.240646 -1585, 0.974274, 0.000000, 0.000000, -0.225365 -1586, 0.977695, 0.000000, 0.000000, -0.210029 -1587, 0.980875, 0.000000, 0.000000, -0.194641 -1588, 0.983812, 0.000000, 0.000000, -0.179205 -1589, 0.986506, 0.000000, 0.000000, -0.163724 -1590, 0.988957, 0.000000, 0.000000, -0.148204 -1591, 0.991163, 0.000000, 0.000000, -0.132646 -1592, 0.993125, 0.000000, 0.000000, -0.117056 -1593, 0.994842, 0.000000, 0.000000, -0.101437 -1594, 0.996313, 0.000000, 0.000000, -0.085793 -1595, 0.997538, 0.000000, 0.000000, -0.070128 -1596, 0.998517, 0.000000, 0.000000, -0.054445 -1597, 0.999249, 0.000000, 0.000000, -0.038750 -1598, 0.999734, 0.000000, 0.000000, -0.023044 -1599, 0.999973, 0.000000, 0.000000, -0.007333 -1600, 0.999965, 0.000000, 0.000000, 0.008380 -1601, 0.999710, 0.000000, 0.000000, 0.024091 -1602, 0.999208, 0.000000, 0.000000, 0.039796 -1603, 0.998459, 0.000000, 0.000000, 0.055491 -1604, 0.997464, 0.000000, 0.000000, 0.071173 -1605, 0.996223, 0.000000, 0.000000, 0.086837 -1606, 0.994735, 0.000000, 0.000000, 0.102479 -1607, 0.993002, 0.000000, 0.000000, 0.118097 -1608, 0.991024, 0.000000, 0.000000, 0.133685 -1609, 0.988801, 0.000000, 0.000000, 0.149240 -1610, 0.986334, 0.000000, 0.000000, 0.164758 -1611, 0.983624, 0.000000, 0.000000, 0.180235 -1612, 0.980670, 0.000000, 0.000000, 0.195668 -1613, 0.977475, 0.000000, 0.000000, 0.211053 -1614, 0.974038, 0.000000, 0.000000, 0.226385 -1615, 0.970360, 0.000000, 0.000000, 0.241662 -1616, 0.966444, 0.000000, 0.000000, 0.256879 -1617, 0.962288, 0.000000, 0.000000, 0.272033 -1618, 0.957895, 0.000000, 0.000000, 0.287119 -1619, 0.953265, 0.000000, 0.000000, 0.302135 -1620, 0.948400, 0.000000, 0.000000, 0.317076 -1621, 0.943301, 0.000000, 0.000000, 0.331938 -1622, 0.937969, 0.000000, 0.000000, 0.346719 -1623, 0.932405, 0.000000, 0.000000, 0.361414 -1624, 0.926612, 0.000000, 0.000000, 0.376020 -1625, 0.920589, 0.000000, 0.000000, 0.390533 -1626, 0.914339, 0.000000, 0.000000, 0.404950 -1627, 0.907863, 0.000000, 0.000000, 0.419266 -1628, 0.901164, 0.000000, 0.000000, 0.433479 -1629, 0.894241, 0.000000, 0.000000, 0.447585 -1630, 0.887098, 0.000000, 0.000000, 0.461581 -1631, 0.879736, 0.000000, 0.000000, 0.475462 -1632, 0.872157, 0.000000, 0.000000, 0.489227 -1633, 0.864362, 0.000000, 0.000000, 0.502870 -1634, 0.856354, 0.000000, 0.000000, 0.516389 -1635, 0.848134, 0.000000, 0.000000, 0.529781 -1636, 0.839706, 0.000000, 0.000000, 0.543042 -1637, 0.831069, 0.000000, 0.000000, 0.556169 -1638, 0.822228, 0.000000, 0.000000, 0.569158 -1639, 0.813183, 0.000000, 0.000000, 0.582008 -1640, 0.803938, 0.000000, 0.000000, 0.594713 -1641, 0.794494, 0.000000, 0.000000, 0.607271 -1642, 0.784855, 0.000000, 0.000000, 0.619680 -1643, 0.775021, 0.000000, 0.000000, 0.631935 -1644, 0.764996, 0.000000, 0.000000, 0.644035 -1645, 0.754782, 0.000000, 0.000000, 0.655976 -1646, 0.744382, 0.000000, 0.000000, 0.667754 -1647, 0.733798, 0.000000, 0.000000, 0.679368 -1648, 0.723033, 0.000000, 0.000000, 0.690814 -1649, 0.712089, 0.000000, 0.000000, 0.702089 -1650, 0.700969, 0.000000, 0.000000, 0.713191 -1651, 0.689677, 0.000000, 0.000000, 0.724117 -1652, 0.678214, 0.000000, 0.000000, 0.734864 -1653, 0.666584, 0.000000, 0.000000, 0.745430 -1654, 0.654789, 0.000000, 0.000000, 0.755812 -1655, 0.642832, 0.000000, 0.000000, 0.766007 -1656, 0.630717, 0.000000, 0.000000, 0.776013 -1657, 0.618446, 0.000000, 0.000000, 0.785827 -1658, 0.606022, 0.000000, 0.000000, 0.795448 -1659, 0.593449, 0.000000, 0.000000, 0.804872 -1660, 0.580729, 0.000000, 0.000000, 0.814097 -1661, 0.567866, 0.000000, 0.000000, 0.823121 -1662, 0.554862, 0.000000, 0.000000, 0.831942 -1663, 0.541722, 0.000000, 0.000000, 0.840558 -1664, 0.528448, 0.000000, 0.000000, 0.848966 -1665, 0.515043, 0.000000, 0.000000, 0.857164 -1666, 0.501511, 0.000000, 0.000000, 0.865151 -1667, 0.487856, 0.000000, 0.000000, 0.872924 -1668, 0.474079, 0.000000, 0.000000, 0.880482 -1669, 0.460186, 0.000000, 0.000000, 0.887822 -1670, 0.446180, 0.000000, 0.000000, 0.894943 -1671, 0.432063, 0.000000, 0.000000, 0.901844 -1672, 0.417839, 0.000000, 0.000000, 0.908521 -1673, 0.403512, 0.000000, 0.000000, 0.914974 -1674, 0.389086, 0.000000, 0.000000, 0.921201 -1675, 0.374563, 0.000000, 0.000000, 0.927201 -1676, 0.359948, 0.000000, 0.000000, 0.932972 -1677, 0.345245, 0.000000, 0.000000, 0.938513 -1678, 0.330456, 0.000000, 0.000000, 0.943822 -1679, 0.315585, 0.000000, 0.000000, 0.948897 -1680, 0.300636, 0.000000, 0.000000, 0.953739 -1681, 0.285614, 0.000000, 0.000000, 0.958345 -1682, 0.270520, 0.000000, 0.000000, 0.962714 -1683, 0.255360, 0.000000, 0.000000, 0.966846 -1684, 0.240137, 0.000000, 0.000000, 0.970739 -1685, 0.224855, 0.000000, 0.000000, 0.974392 -1686, 0.209517, 0.000000, 0.000000, 0.977805 -1687, 0.194127, 0.000000, 0.000000, 0.980976 -1688, 0.178689, 0.000000, 0.000000, 0.983906 -1689, 0.163208, 0.000000, 0.000000, 0.986592 -1690, 0.147686, 0.000000, 0.000000, 0.989034 -1691, 0.132127, 0.000000, 0.000000, 0.991233 -1692, 0.116536, 0.000000, 0.000000, 0.993186 -1693, 0.100916, 0.000000, 0.000000, 0.994895 -1694, 0.085271, 0.000000, 0.000000, 0.996358 -1695, 0.069606, 0.000000, 0.000000, 0.997575 -1696, 0.053922, 0.000000, 0.000000, 0.998545 -1697, 0.038226, 0.000000, 0.000000, 0.999269 -1698, 0.022520, 0.000000, 0.000000, 0.999746 -1699, 0.006809, 0.000000, 0.000000, 0.999977 -1700, -0.008904, -0.000000, 0.000000, 0.999960 -1701, -0.024615, -0.000000, 0.000000, 0.999697 -1702, -0.040320, -0.000000, 0.000000, 0.999187 -1703, -0.056014, -0.000000, 0.000000, 0.998430 -1704, -0.071695, -0.000000, 0.000000, 0.997427 -1705, -0.087359, -0.000000, 0.000000, 0.996177 -1706, -0.103000, -0.000000, 0.000000, 0.994681 -1707, -0.118617, -0.000000, 0.000000, 0.992940 -1708, -0.134204, -0.000000, 0.000000, 0.990954 -1709, -0.149757, -0.000000, 0.000000, 0.988723 -1710, -0.165274, -0.000000, 0.000000, 0.986248 -1711, -0.180750, -0.000000, 0.000000, 0.983529 -1712, -0.196182, -0.000000, 0.000000, 0.980568 -1713, -0.211565, -0.000000, 0.000000, 0.977364 -1714, -0.226896, -0.000000, 0.000000, 0.973919 -1715, -0.242170, -0.000000, 0.000000, 0.970234 -1716, -0.257385, -0.000000, 0.000000, 0.966309 -1717, -0.272537, -0.000000, 0.000000, 0.962145 -1718, -0.287621, -0.000000, 0.000000, 0.957744 -1719, -0.302634, -0.000000, 0.000000, 0.953107 -1720, -0.317572, -0.000000, 0.000000, 0.948234 -1721, -0.332432, -0.000000, 0.000000, 0.943127 -1722, -0.347210, -0.000000, 0.000000, 0.937787 -1723, -0.361902, -0.000000, 0.000000, 0.932216 -1724, -0.376505, -0.000000, 0.000000, 0.926415 -1725, -0.391015, -0.000000, 0.000000, 0.920384 -1726, -0.405428, -0.000000, 0.000000, 0.914127 -1727, -0.419742, -0.000000, 0.000000, 0.907644 -1728, -0.433951, -0.000000, 0.000000, 0.900936 -1729, -0.448054, -0.000000, 0.000000, 0.894007 -1730, -0.462045, -0.000000, 0.000000, 0.886856 -1731, -0.475923, -0.000000, 0.000000, 0.879487 -1732, -0.489683, -0.000000, 0.000000, 0.871900 -1733, -0.503323, -0.000000, 0.000000, 0.864099 -1734, -0.516838, -0.000000, 0.000000, 0.856083 -1735, -0.530225, -0.000000, 0.000000, 0.847857 -1736, -0.543482, -0.000000, 0.000000, 0.839421 -1737, -0.556604, -0.000000, 0.000000, 0.830778 -1738, -0.569589, -0.000000, 0.000000, 0.821930 -1739, -0.582433, -0.000000, 0.000000, 0.812878 -1740, -0.595134, -0.000000, 0.000000, 0.803627 -1741, -0.607687, -0.000000, 0.000000, 0.794176 -1742, -0.620091, -0.000000, 0.000000, 0.784530 -1743, -0.632341, -0.000000, 0.000000, 0.774690 -1744, -0.644436, -0.000000, 0.000000, 0.764659 -1745, -0.656371, -0.000000, 0.000000, 0.754438 -1746, -0.668144, -0.000000, 0.000000, 0.744032 -1747, -0.679752, -0.000000, 0.000000, 0.733442 -1748, -0.691192, -0.000000, 0.000000, 0.722671 -1749, -0.702462, -0.000000, 0.000000, 0.711721 -1750, -0.713558, -0.000000, 0.000000, 0.700596 -1751, -0.724478, -0.000000, 0.000000, 0.689297 -1752, -0.735220, -0.000000, 0.000000, 0.677829 -1753, -0.745779, -0.000000, 0.000000, 0.666193 -1754, -0.756155, -0.000000, 0.000000, 0.654393 -1755, -0.766344, -0.000000, 0.000000, 0.642431 -1756, -0.776343, -0.000000, 0.000000, 0.630310 -1757, -0.786151, -0.000000, 0.000000, 0.618034 -1758, -0.795765, -0.000000, 0.000000, 0.605605 -1759, -0.805182, -0.000000, 0.000000, 0.593027 -1760, -0.814401, -0.000000, 0.000000, 0.580303 -1761, -0.823418, -0.000000, 0.000000, 0.567435 -1762, -0.832233, -0.000000, 0.000000, 0.554427 -1763, -0.840841, -0.000000, 0.000000, 0.541282 -1764, -0.849243, -0.000000, 0.000000, 0.528003 -1765, -0.857434, -0.000000, 0.000000, 0.514594 -1766, -0.865414, -0.000000, 0.000000, 0.501058 -1767, -0.873180, -0.000000, 0.000000, 0.487398 -1768, -0.880730, -0.000000, 0.000000, 0.473618 -1769, -0.888063, -0.000000, 0.000000, 0.459721 -1770, -0.895177, -0.000000, 0.000000, 0.445711 -1771, -0.902070, -0.000000, 0.000000, 0.431590 -1772, -0.908740, -0.000000, 0.000000, 0.417363 -1773, -0.915185, -0.000000, 0.000000, 0.403033 -1774, -0.921405, -0.000000, 0.000000, 0.388603 -1775, -0.927397, -0.000000, 0.000000, 0.374078 -1776, -0.933161, -0.000000, 0.000000, 0.359460 -1777, -0.938693, -0.000000, 0.000000, 0.344753 -1778, -0.943994, -0.000000, 0.000000, 0.329961 -1779, -0.949062, -0.000000, 0.000000, 0.315088 -1780, -0.953896, -0.000000, 0.000000, 0.300137 -1781, -0.958494, -0.000000, 0.000000, 0.285112 -1782, -0.962856, -0.000000, 0.000000, 0.270016 -1783, -0.966980, -0.000000, 0.000000, 0.254854 -1784, -0.970865, -0.000000, 0.000000, 0.239629 -1785, -0.974510, -0.000000, 0.000000, 0.224344 -1786, -0.977915, -0.000000, 0.000000, 0.209005 -1787, -0.981078, -0.000000, 0.000000, 0.193613 -1788, -0.983999, -0.000000, 0.000000, 0.178174 -1789, -0.986677, -0.000000, 0.000000, 0.162691 -1790, -0.989112, -0.000000, 0.000000, 0.147168 -1791, -0.991302, -0.000000, 0.000000, 0.131608 -1792, -0.993247, -0.000000, 0.000000, 0.116016 -1793, -0.994948, -0.000000, 0.000000, 0.100395 -1794, -0.996402, -0.000000, 0.000000, 0.084750 -1795, -0.997611, -0.000000, 0.000000, 0.069083 -1796, -0.998573, -0.000000, 0.000000, 0.053399 -1797, -0.999289, -0.000000, 0.000000, 0.037703 -1798, -0.999758, -0.000000, 0.000000, 0.021997 -1799, -0.999980, -0.000000, 0.000000, 0.006285 -1800, -0.999956, 0.000000, -0.000000, -0.009428 -1801, -0.999684, 0.000000, -0.000000, -0.025138 -1802, -0.999166, 0.000000, -0.000000, -0.040843 -1803, -0.998400, 0.000000, -0.000000, -0.056537 -1804, -0.997389, 0.000000, -0.000000, -0.072218 -1805, -0.996131, 0.000000, -0.000000, -0.087880 -1806, -0.994627, 0.000000, -0.000000, -0.103521 -1807, -0.992878, 0.000000, -0.000000, -0.119137 -1808, -0.990883, 0.000000, -0.000000, -0.134723 -1809, -0.988644, 0.000000, -0.000000, -0.150275 -1810, -0.986161, 0.000000, -0.000000, -0.165791 -1811, -0.983434, 0.000000, -0.000000, -0.181266 -1812, -0.980465, 0.000000, -0.000000, -0.196695 -1813, -0.977253, 0.000000, -0.000000, -0.212077 -1814, -0.973800, 0.000000, -0.000000, -0.227406 -1815, -0.970107, 0.000000, -0.000000, -0.242678 -1816, -0.966174, 0.000000, -0.000000, -0.257891 -1817, -0.962003, 0.000000, -0.000000, -0.273041 -1818, -0.957594, 0.000000, -0.000000, -0.288122 -1819, -0.952948, 0.000000, -0.000000, -0.303133 -1820, -0.948068, 0.000000, -0.000000, -0.318069 -1821, -0.942953, 0.000000, -0.000000, -0.332926 -1822, -0.937605, 0.000000, -0.000000, -0.347701 -1823, -0.932026, 0.000000, -0.000000, -0.362391 -1824, -0.926217, 0.000000, -0.000000, -0.376990 -1825, -0.920179, 0.000000, -0.000000, -0.391497 -1826, -0.913914, 0.000000, -0.000000, -0.405907 -1827, -0.907424, 0.000000, -0.000000, -0.420217 -1828, -0.900709, 0.000000, -0.000000, -0.434423 -1829, -0.893772, 0.000000, -0.000000, -0.448522 -1830, -0.886614, 0.000000, -0.000000, -0.462510 -1831, -0.879237, 0.000000, -0.000000, -0.476384 -1832, -0.871644, 0.000000, -0.000000, -0.490140 -1833, -0.863835, 0.000000, -0.000000, -0.503775 -1834, -0.855813, 0.000000, -0.000000, -0.517286 -1835, -0.847579, 0.000000, -0.000000, -0.530669 -1836, -0.839136, 0.000000, -0.000000, -0.543921 -1837, -0.830486, 0.000000, -0.000000, -0.557039 -1838, -0.821631, 0.000000, -0.000000, -0.570019 -1839, -0.812573, 0.000000, -0.000000, -0.582859 -1840, -0.803315, 0.000000, -0.000000, -0.595555 -1841, -0.793858, 0.000000, -0.000000, -0.608103 -1842, -0.784205, 0.000000, -0.000000, -0.620502 -1843, -0.774359, 0.000000, -0.000000, -0.632747 -1844, -0.764321, 0.000000, -0.000000, -0.644836 -1845, -0.754095, 0.000000, -0.000000, -0.656766 -1846, -0.743682, 0.000000, -0.000000, -0.668534 -1847, -0.733086, 0.000000, -0.000000, -0.680136 -1848, -0.722309, 0.000000, -0.000000, -0.691571 -1849, -0.711353, 0.000000, -0.000000, -0.702835 -1850, -0.700222, 0.000000, -0.000000, -0.713925 -1851, -0.688918, 0.000000, -0.000000, -0.724839 -1852, -0.677444, 0.000000, -0.000000, -0.735575 -1853, -0.665802, 0.000000, -0.000000, -0.746128 -1854, -0.653997, 0.000000, -0.000000, -0.756497 -1855, -0.642029, 0.000000, -0.000000, -0.766680 -1856, -0.629904, 0.000000, -0.000000, -0.776673 -1857, -0.617622, 0.000000, -0.000000, -0.786475 -1858, -0.605189, 0.000000, -0.000000, -0.796082 -1859, -0.592605, 0.000000, -0.000000, -0.805493 -1860, -0.579876, 0.000000, -0.000000, -0.814705 -1861, -0.567003, 0.000000, -0.000000, -0.823716 -1862, -0.553991, 0.000000, -0.000000, -0.832523 -1863, -0.540841, 0.000000, -0.000000, -0.841125 -1864, -0.527558, 0.000000, -0.000000, -0.849519 -1865, -0.514145, 0.000000, -0.000000, -0.857703 -1866, -0.500605, 0.000000, -0.000000, -0.865676 -1867, -0.486941, 0.000000, -0.000000, -0.873435 -1868, -0.473157, 0.000000, -0.000000, -0.880978 -1869, -0.459256, 0.000000, -0.000000, -0.888304 -1870, -0.445242, 0.000000, -0.000000, -0.895410 -1871, -0.431118, 0.000000, -0.000000, -0.902296 -1872, -0.416887, 0.000000, -0.000000, -0.908958 -1873, -0.402554, 0.000000, -0.000000, -0.915396 -1874, -0.388121, 0.000000, -0.000000, -0.921609 -1875, -0.373592, 0.000000, -0.000000, -0.927593 -1876, -0.358971, 0.000000, -0.000000, -0.933349 -1877, -0.344261, 0.000000, -0.000000, -0.938874 -1878, -0.329467, 0.000000, -0.000000, -0.944167 -1879, -0.314591, 0.000000, -0.000000, -0.949227 -1880, -0.299637, 0.000000, -0.000000, -0.954053 -1881, -0.284610, 0.000000, -0.000000, -0.958644 -1882, -0.269512, 0.000000, -0.000000, -0.962997 -1883, -0.254347, 0.000000, -0.000000, -0.967113 -1884, -0.239120, 0.000000, -0.000000, -0.970990 -1885, -0.223834, 0.000000, -0.000000, -0.974627 -1886, -0.208492, 0.000000, -0.000000, -0.978024 -1887, -0.193099, 0.000000, -0.000000, -0.981179 -1888, -0.177659, 0.000000, -0.000000, -0.984092 -1889, -0.162174, 0.000000, -0.000000, -0.986762 -1890, -0.146650, 0.000000, -0.000000, -0.989189 -1891, -0.131089, 0.000000, -0.000000, -0.991371 -1892, -0.115496, 0.000000, -0.000000, -0.993308 -1893, -0.099874, 0.000000, -0.000000, -0.995000 -1894, -0.084228, 0.000000, -0.000000, -0.996447 -1895, -0.068560, 0.000000, -0.000000, -0.997647 -1896, -0.052876, 0.000000, -0.000000, -0.998601 -1897, -0.037179, 0.000000, -0.000000, -0.999309 -1898, -0.021473, 0.000000, -0.000000, -0.999769 -1899, -0.005761, 0.000000, -0.000000, -0.999983 -1900, 0.009952, 0.000000, 0.000000, -0.999950 -1901, 0.025662, 0.000000, 0.000000, -0.999671 -1902, 0.041366, 0.000000, 0.000000, -0.999144 -1903, 0.057060, 0.000000, 0.000000, -0.998371 -1904, 0.072740, 0.000000, 0.000000, -0.997351 -1905, 0.088402, 0.000000, 0.000000, -0.996085 -1906, 0.104042, 0.000000, 0.000000, -0.994573 -1907, 0.119657, 0.000000, 0.000000, -0.992815 -1908, 0.135242, 0.000000, 0.000000, -0.990813 -1909, 0.150793, 0.000000, 0.000000, -0.988565 -1910, 0.166307, 0.000000, 0.000000, -0.986074 -1911, 0.181781, 0.000000, 0.000000, -0.983339 -1912, 0.197209, 0.000000, 0.000000, -0.980361 -1913, 0.212589, 0.000000, 0.000000, -0.977142 -1914, 0.227916, 0.000000, 0.000000, -0.973681 -1915, 0.243187, 0.000000, 0.000000, -0.969980 -1916, 0.258397, 0.000000, 0.000000, -0.966039 -1917, 0.273544, 0.000000, 0.000000, -0.961859 -1918, 0.288624, 0.000000, 0.000000, -0.957443 -1919, 0.303632, 0.000000, 0.000000, -0.952789 -1920, 0.318565, 0.000000, 0.000000, -0.947901 -1921, 0.333420, 0.000000, 0.000000, -0.942778 -1922, 0.348192, 0.000000, 0.000000, -0.937423 -1923, 0.362879, 0.000000, 0.000000, -0.931836 -1924, 0.377475, 0.000000, 0.000000, -0.926020 -1925, 0.391979, 0.000000, 0.000000, -0.919974 -1926, 0.406386, 0.000000, 0.000000, -0.913702 -1927, 0.420692, 0.000000, 0.000000, -0.907203 -1928, 0.434895, 0.000000, 0.000000, -0.900481 -1929, 0.448990, 0.000000, 0.000000, -0.893537 -1930, 0.462974, 0.000000, 0.000000, -0.886372 -1931, 0.476844, 0.000000, 0.000000, -0.878988 -1932, 0.490596, 0.000000, 0.000000, -0.871387 -1933, 0.504228, 0.000000, 0.000000, -0.863571 -1934, 0.517734, 0.000000, 0.000000, -0.855541 -1935, 0.531113, 0.000000, 0.000000, -0.847301 -1936, 0.544361, 0.000000, 0.000000, -0.838851 -1937, 0.557474, 0.000000, 0.000000, -0.830194 -1938, 0.570450, 0.000000, 0.000000, -0.821333 -1939, 0.583285, 0.000000, 0.000000, -0.812268 -1940, 0.595975, 0.000000, 0.000000, -0.803003 -1941, 0.608519, 0.000000, 0.000000, -0.793539 -1942, 0.620912, 0.000000, 0.000000, -0.783880 -1943, 0.633153, 0.000000, 0.000000, -0.774027 -1944, 0.645236, 0.000000, 0.000000, -0.763983 -1945, 0.657161, 0.000000, 0.000000, -0.753750 -1946, 0.668923, 0.000000, 0.000000, -0.743332 -1947, 0.680520, 0.000000, 0.000000, -0.732729 -1948, 0.691949, 0.000000, 0.000000, -0.721946 -1949, 0.703207, 0.000000, 0.000000, -0.710985 -1950, 0.714292, 0.000000, 0.000000, -0.699848 -1951, 0.725200, 0.000000, 0.000000, -0.688538 -1952, 0.735929, 0.000000, 0.000000, -0.677058 -1953, 0.746477, 0.000000, 0.000000, -0.665412 -1954, 0.756840, 0.000000, 0.000000, -0.653600 -1955, 0.767016, 0.000000, 0.000000, -0.641628 -1956, 0.777003, 0.000000, 0.000000, -0.629497 -1957, 0.786798, 0.000000, 0.000000, -0.617210 -1958, 0.796399, 0.000000, 0.000000, -0.604772 -1959, 0.805803, 0.000000, 0.000000, -0.592183 -1960, 0.815008, 0.000000, 0.000000, -0.579449 -1961, 0.824012, 0.000000, 0.000000, -0.566572 -1962, 0.832813, 0.000000, 0.000000, -0.553554 -1963, 0.841408, 0.000000, 0.000000, -0.540400 -1964, 0.849795, 0.000000, 0.000000, -0.527113 -1965, 0.857973, 0.000000, 0.000000, -0.513696 -1966, 0.865938, 0.000000, 0.000000, -0.500151 -1967, 0.873690, 0.000000, 0.000000, -0.486483 -1968, 0.881226, 0.000000, 0.000000, -0.472695 -1969, 0.888544, 0.000000, 0.000000, -0.458791 -1970, 0.895643, 0.000000, 0.000000, -0.444773 -1971, 0.902521, 0.000000, 0.000000, -0.430645 -1972, 0.909177, 0.000000, 0.000000, -0.416411 -1973, 0.915607, 0.000000, 0.000000, -0.402074 -1974, 0.921812, 0.000000, 0.000000, -0.387638 -1975, 0.927789, 0.000000, 0.000000, -0.373106 -1976, 0.933537, 0.000000, 0.000000, -0.358482 -1977, 0.939054, 0.000000, 0.000000, -0.343770 -1978, 0.944340, 0.000000, 0.000000, -0.328972 -1979, 0.949392, 0.000000, 0.000000, -0.314094 -1980, 0.954210, 0.000000, 0.000000, -0.299137 -1981, 0.958792, 0.000000, 0.000000, -0.284107 -1982, 0.963138, 0.000000, 0.000000, -0.269007 -1983, 0.967246, 0.000000, 0.000000, -0.253841 -1984, 0.971115, 0.000000, 0.000000, -0.238611 -1985, 0.974744, 0.000000, 0.000000, -0.223323 -1986, 0.978133, 0.000000, 0.000000, -0.207980 -1987, 0.981280, 0.000000, 0.000000, -0.192585 -1988, 0.984185, 0.000000, 0.000000, -0.177143 -1989, 0.986847, 0.000000, 0.000000, -0.161657 -1990, 0.989265, 0.000000, 0.000000, -0.146131 -1991, 0.991439, 0.000000, 0.000000, -0.130569 -1992, 0.993368, 0.000000, 0.000000, -0.114975 -1993, 0.995052, 0.000000, 0.000000, -0.099353 -1994, 0.996491, 0.000000, 0.000000, -0.083706 -1995, 0.997683, 0.000000, 0.000000, -0.068038 -1996, 0.998629, 0.000000, 0.000000, -0.052353 -1997, 0.999328, 0.000000, 0.000000, -0.036656 -1998, 0.999781, 0.000000, 0.000000, -0.020949 -1999, 0.999986, 0.000000, 0.000000, -0.005238 -2000, 0.999945, 0.000000, 0.000000, 0.010475 -2001, 0.999657, 0.000000, 0.000000, 0.026186 -2002, 0.999122, 0.000000, 0.000000, 0.041890 -2003, 0.998341, 0.000000, 0.000000, 0.057583 -2004, 0.997313, 0.000000, 0.000000, 0.073263 -2005, 0.996038, 0.000000, 0.000000, 0.088924 -2006, 0.994518, 0.000000, 0.000000, 0.104563 -2007, 0.992753, 0.000000, 0.000000, 0.120177 -2008, 0.990742, 0.000000, 0.000000, 0.135761 -2009, 0.988486, 0.000000, 0.000000, 0.151311 -2010, 0.985987, 0.000000, 0.000000, 0.166824 -2011, 0.983244, 0.000000, 0.000000, 0.182296 -2012, 0.980258, 0.000000, 0.000000, 0.197722 -2013, 0.977030, 0.000000, 0.000000, 0.213100 -2014, 0.973561, 0.000000, 0.000000, 0.228426 -2015, 0.969852, 0.000000, 0.000000, 0.243695 -2016, 0.965903, 0.000000, 0.000000, 0.258903 -2017, 0.961716, 0.000000, 0.000000, 0.274048 -2018, 0.957291, 0.000000, 0.000000, 0.289125 -2019, 0.952630, 0.000000, 0.000000, 0.304131 -2020, 0.947734, 0.000000, 0.000000, 0.319062 -2021, 0.942604, 0.000000, 0.000000, 0.333914 -2022, 0.937241, 0.000000, 0.000000, 0.348683 -2023, 0.931646, 0.000000, 0.000000, 0.363367 -2024, 0.925822, 0.000000, 0.000000, 0.377960 -2025, 0.919769, 0.000000, 0.000000, 0.392461 -2026, 0.913489, 0.000000, 0.000000, 0.406864 -2027, 0.906983, 0.000000, 0.000000, 0.421167 -2028, 0.900253, 0.000000, 0.000000, 0.435366 -2029, 0.893302, 0.000000, 0.000000, 0.449458 -2030, 0.886129, 0.000000, 0.000000, 0.463438 -2031, 0.878738, 0.000000, 0.000000, 0.477305 -2032, 0.871130, 0.000000, 0.000000, 0.491053 -2033, 0.863307, 0.000000, 0.000000, 0.504680 -2034, 0.855270, 0.000000, 0.000000, 0.518182 -2035, 0.847023, 0.000000, 0.000000, 0.531557 -2036, 0.838566, 0.000000, 0.000000, 0.544800 -2037, 0.829902, 0.000000, 0.000000, 0.557909 -2038, 0.821034, 0.000000, 0.000000, 0.570880 -2039, 0.811962, 0.000000, 0.000000, 0.583710 -2040, 0.802690, 0.000000, 0.000000, 0.596396 -2041, 0.793220, 0.000000, 0.000000, 0.608935 -2042, 0.783555, 0.000000, 0.000000, 0.621323 -2043, 0.773695, 0.000000, 0.000000, 0.633558 -2044, 0.763645, 0.000000, 0.000000, 0.645636 -2045, 0.753406, 0.000000, 0.000000, 0.657555 -2046, 0.742981, 0.000000, 0.000000, 0.669312 -2047, 0.732373, 0.000000, 0.000000, 0.680904 -2048, 0.721584, 0.000000, 0.000000, 0.692327 -2049, 0.710616, 0.000000, 0.000000, 0.703580 -2050, 0.699474, 0.000000, 0.000000, 0.714658 -2051, 0.688158, 0.000000, 0.000000, 0.725561 -2052, 0.676673, 0.000000, 0.000000, 0.736284 -2053, 0.665020, 0.000000, 0.000000, 0.746825 -2054, 0.653204, 0.000000, 0.000000, 0.757182 -2055, 0.641226, 0.000000, 0.000000, 0.767352 -2056, 0.629090, 0.000000, 0.000000, 0.777333 -2057, 0.616798, 0.000000, 0.000000, 0.787121 -2058, 0.604354, 0.000000, 0.000000, 0.796716 -2059, 0.591761, 0.000000, 0.000000, 0.806113 -2060, 0.579022, 0.000000, 0.000000, 0.815312 -2061, 0.566140, 0.000000, 0.000000, 0.824309 -2062, 0.553118, 0.000000, 0.000000, 0.833103 -2063, 0.539960, 0.000000, 0.000000, 0.841691 -2064, 0.526668, 0.000000, 0.000000, 0.850071 -2065, 0.513246, 0.000000, 0.000000, 0.858241 -2066, 0.499698, 0.000000, 0.000000, 0.866200 -2067, 0.486026, 0.000000, 0.000000, 0.873945 -2068, 0.472234, 0.000000, 0.000000, 0.881473 -2069, 0.458325, 0.000000, 0.000000, 0.888785 -2070, 0.444304, 0.000000, 0.000000, 0.895876 -2071, 0.430172, 0.000000, 0.000000, 0.902747 -2072, 0.415935, 0.000000, 0.000000, 0.909394 -2073, 0.401594, 0.000000, 0.000000, 0.915818 -2074, 0.387155, 0.000000, 0.000000, 0.922015 -2075, 0.372620, 0.000000, 0.000000, 0.927984 -2076, 0.357993, 0.000000, 0.000000, 0.933724 -2077, 0.343278, 0.000000, 0.000000, 0.939234 -2078, 0.328478, 0.000000, 0.000000, 0.944512 -2079, 0.313596, 0.000000, 0.000000, 0.949556 -2080, 0.298638, 0.000000, 0.000000, 0.954367 -2081, 0.283605, 0.000000, 0.000000, 0.958941 -2082, 0.268503, 0.000000, 0.000000, 0.963279 -2083, 0.253334, 0.000000, 0.000000, 0.967379 -2084, 0.238103, 0.000000, 0.000000, 0.971240 -2085, 0.222813, 0.000000, 0.000000, 0.974861 -2086, 0.207468, 0.000000, 0.000000, 0.978242 -2087, 0.192071, 0.000000, 0.000000, 0.981381 -2088, 0.176628, 0.000000, 0.000000, 0.984278 -2089, 0.161140, 0.000000, 0.000000, 0.986932 -2090, 0.145613, 0.000000, 0.000000, 0.989342 -2091, 0.130050, 0.000000, 0.000000, 0.991507 -2092, 0.114455, 0.000000, 0.000000, 0.993428 -2093, 0.098832, 0.000000, 0.000000, 0.995104 -2094, 0.083184, 0.000000, 0.000000, 0.996534 -2095, 0.067515, 0.000000, 0.000000, 0.997718 -2096, 0.051830, 0.000000, 0.000000, 0.998656 -2097, 0.036132, 0.000000, 0.000000, 0.999347 -2098, 0.020426, 0.000000, 0.000000, 0.999791 -2099, 0.004714, 0.000000, 0.000000, 0.999989 -2100, -0.010999, -0.000000, 0.000000, 0.999940 -2101, -0.026709, -0.000000, 0.000000, 0.999643 -2102, -0.042413, -0.000000, 0.000000, 0.999100 -2103, -0.058106, -0.000000, 0.000000, 0.998310 -2104, -0.073785, -0.000000, 0.000000, 0.997274 -2105, -0.089446, -0.000000, 0.000000, 0.995992 -2106, -0.105084, -0.000000, 0.000000, 0.994463 -2107, -0.120697, -0.000000, 0.000000, 0.992689 -2108, -0.136279, -0.000000, 0.000000, 0.990670 -2109, -0.151829, -0.000000, 0.000000, 0.988407 -2110, -0.167340, -0.000000, 0.000000, 0.985899 -2111, -0.182811, -0.000000, 0.000000, 0.983148 -2112, -0.198236, -0.000000, 0.000000, 0.980154 -2113, -0.213612, -0.000000, 0.000000, 0.976919 -2114, -0.228936, -0.000000, 0.000000, 0.973442 -2115, -0.244203, -0.000000, 0.000000, 0.969724 -2116, -0.259409, -0.000000, 0.000000, 0.965767 -2117, -0.274552, -0.000000, 0.000000, 0.961572 -2118, -0.289627, -0.000000, 0.000000, 0.957140 -2119, -0.304630, -0.000000, 0.000000, 0.952471 -2120, -0.319558, -0.000000, 0.000000, 0.947567 -2121, -0.334407, -0.000000, 0.000000, 0.942429 -2122, -0.349174, -0.000000, 0.000000, 0.937058 -2123, -0.363855, -0.000000, 0.000000, 0.931456 -2124, -0.378445, -0.000000, 0.000000, 0.925624 -2125, -0.392942, -0.000000, 0.000000, 0.919563 -2126, -0.407343, -0.000000, 0.000000, 0.913275 -2127, -0.421642, -0.000000, 0.000000, 0.906762 -2128, -0.435838, -0.000000, 0.000000, 0.900025 -2129, -0.449926, -0.000000, 0.000000, 0.893066 -2130, -0.463902, -0.000000, 0.000000, 0.885886 -2131, -0.477765, -0.000000, 0.000000, 0.878488 -2132, -0.491509, -0.000000, 0.000000, 0.870872 -2133, -0.505132, -0.000000, 0.000000, 0.863042 -2134, -0.518630, -0.000000, 0.000000, 0.854999 -2135, -0.532000, -0.000000, 0.000000, 0.846744 -2136, -0.545239, -0.000000, 0.000000, 0.838280 -2137, -0.558343, -0.000000, 0.000000, 0.829610 -2138, -0.571310, -0.000000, 0.000000, 0.820734 -2139, -0.584135, -0.000000, 0.000000, 0.811656 -2140, -0.596816, -0.000000, 0.000000, 0.802378 -2141, -0.609350, -0.000000, 0.000000, 0.792901 -2142, -0.621733, -0.000000, 0.000000, 0.783229 -2143, -0.633963, -0.000000, 0.000000, 0.773363 -2144, -0.646036, -0.000000, 0.000000, 0.763307 -2145, -0.657950, -0.000000, 0.000000, 0.753062 -2146, -0.669701, -0.000000, 0.000000, 0.742631 -2147, -0.681287, -0.000000, 0.000000, 0.732016 -2148, -0.692705, -0.000000, 0.000000, 0.721221 -2149, -0.703952, -0.000000, 0.000000, 0.710248 -2150, -0.715025, -0.000000, 0.000000, 0.699099 -2151, -0.725921, -0.000000, 0.000000, 0.687778 -2152, -0.736638, -0.000000, 0.000000, 0.676287 -2153, -0.747173, -0.000000, 0.000000, 0.664629 -2154, -0.757524, -0.000000, 0.000000, 0.652807 -2155, -0.767688, -0.000000, 0.000000, 0.640824 -2156, -0.777662, -0.000000, 0.000000, 0.628682 -2157, -0.787444, -0.000000, 0.000000, 0.616386 -2158, -0.797032, -0.000000, 0.000000, 0.603937 -2159, -0.806423, -0.000000, 0.000000, 0.591339 -2160, -0.815615, -0.000000, 0.000000, 0.578595 -2161, -0.824606, -0.000000, 0.000000, 0.565708 -2162, -0.833392, -0.000000, 0.000000, 0.552682 -2163, -0.841974, -0.000000, 0.000000, 0.539519 -2164, -0.850347, -0.000000, 0.000000, 0.526223 -2165, -0.858510, -0.000000, 0.000000, 0.512797 -2166, -0.866462, -0.000000, 0.000000, 0.499244 -2167, -0.874199, -0.000000, 0.000000, 0.485568 -2168, -0.881721, -0.000000, 0.000000, 0.471772 -2169, -0.889024, -0.000000, 0.000000, 0.457860 -2170, -0.896109, -0.000000, 0.000000, 0.443834 -2171, -0.902972, -0.000000, 0.000000, 0.429699 -2172, -0.909612, -0.000000, 0.000000, 0.415458 -2173, -0.916028, -0.000000, 0.000000, 0.401115 -2174, -0.922217, -0.000000, 0.000000, 0.386672 -2175, -0.928179, -0.000000, 0.000000, 0.372134 -2176, -0.933912, -0.000000, 0.000000, 0.357504 -2177, -0.939414, -0.000000, 0.000000, 0.342786 -2178, -0.944684, -0.000000, 0.000000, 0.327983 -2179, -0.949721, -0.000000, 0.000000, 0.313099 -2180, -0.954523, -0.000000, 0.000000, 0.298138 -2181, -0.959090, -0.000000, 0.000000, 0.283103 -2182, -0.963419, -0.000000, 0.000000, 0.267998 -2183, -0.967511, -0.000000, 0.000000, 0.252827 -2184, -0.971365, -0.000000, 0.000000, 0.237594 -2185, -0.974978, -0.000000, 0.000000, 0.222302 -2186, -0.978350, -0.000000, 0.000000, 0.206955 -2187, -0.981481, -0.000000, 0.000000, 0.191557 -2188, -0.984370, -0.000000, 0.000000, 0.176112 -2189, -0.987016, -0.000000, 0.000000, 0.160623 -2190, -0.989418, -0.000000, 0.000000, 0.145095 -2191, -0.991575, -0.000000, 0.000000, 0.129531 -2192, -0.993488, -0.000000, 0.000000, 0.113935 -2193, -0.995156, -0.000000, 0.000000, 0.098310 -2194, -0.996578, -0.000000, 0.000000, 0.082662 -2195, -0.997753, -0.000000, 0.000000, 0.066993 -2196, -0.998683, -0.000000, 0.000000, 0.051307 -2197, -0.999366, -0.000000, 0.000000, 0.035609 -2198, -0.999802, -0.000000, 0.000000, 0.019902 -2199, -0.999991, -0.000000, 0.000000, 0.004190 -2200, -0.999934, 0.000000, -0.000000, -0.011523 -2201, -0.999629, 0.000000, -0.000000, -0.027233 -2202, -0.999078, 0.000000, -0.000000, -0.042936 -2203, -0.998280, 0.000000, -0.000000, -0.058629 -2204, -0.997235, 0.000000, -0.000000, -0.074307 -2205, -0.995945, 0.000000, -0.000000, -0.089967 -2206, -0.994408, 0.000000, -0.000000, -0.105605 -2207, -0.992626, 0.000000, -0.000000, -0.121217 -2208, -0.990599, 0.000000, -0.000000, -0.136798 -2209, -0.988327, 0.000000, -0.000000, -0.152346 -2210, -0.985811, 0.000000, -0.000000, -0.167857 -2211, -0.983052, 0.000000, -0.000000, -0.183326 -2212, -0.980050, 0.000000, -0.000000, -0.198749 -2213, -0.976807, 0.000000, -0.000000, -0.214124 -2214, -0.973322, 0.000000, -0.000000, -0.229445 -2215, -0.969596, 0.000000, -0.000000, -0.244710 -2216, -0.965631, 0.000000, -0.000000, -0.259915 -2217, -0.961428, 0.000000, -0.000000, -0.275056 -2218, -0.956988, 0.000000, -0.000000, -0.290128 -2219, -0.952311, 0.000000, -0.000000, -0.305129 -2220, -0.947399, 0.000000, -0.000000, -0.320055 -2221, -0.942253, 0.000000, -0.000000, -0.334901 -2222, -0.936875, 0.000000, -0.000000, -0.349665 -2223, -0.931265, 0.000000, -0.000000, -0.364342 -2224, -0.925425, 0.000000, -0.000000, -0.378930 -2225, -0.919357, 0.000000, -0.000000, -0.393424 -2226, -0.913062, 0.000000, -0.000000, -0.407821 -2227, -0.906541, 0.000000, -0.000000, -0.422117 -2228, -0.899797, 0.000000, -0.000000, -0.436309 -2229, -0.892830, 0.000000, -0.000000, -0.450393 -2230, -0.885643, 0.000000, -0.000000, -0.464366 -2231, -0.878237, 0.000000, -0.000000, -0.478225 -2232, -0.870615, 0.000000, -0.000000, -0.491965 -2233, -0.862777, 0.000000, -0.000000, -0.505584 -2234, -0.854727, 0.000000, -0.000000, -0.519078 -2235, -0.846465, 0.000000, -0.000000, -0.532444 -2236, -0.837995, 0.000000, -0.000000, -0.545678 -2237, -0.829317, 0.000000, -0.000000, -0.558778 -2238, -0.820435, 0.000000, -0.000000, -0.571740 -2239, -0.811350, 0.000000, -0.000000, -0.584560 -2240, -0.802065, 0.000000, -0.000000, -0.597236 -2241, -0.792582, 0.000000, -0.000000, -0.609765 -2242, -0.782903, 0.000000, -0.000000, -0.622143 -2243, -0.773031, 0.000000, -0.000000, -0.634368 -2244, -0.762968, 0.000000, -0.000000, -0.646436 -2245, -0.752717, 0.000000, -0.000000, -0.658344 -2246, -0.742280, 0.000000, -0.000000, -0.670090 -2247, -0.731659, 0.000000, -0.000000, -0.681671 -2248, -0.720858, 0.000000, -0.000000, -0.693083 -2249, -0.709879, 0.000000, -0.000000, -0.704324 -2250, -0.698725, 0.000000, -0.000000, -0.715391 -2251, -0.687398, 0.000000, -0.000000, -0.726281 -2252, -0.675901, 0.000000, -0.000000, -0.736992 -2253, -0.664238, 0.000000, -0.000000, -0.747521 -2254, -0.652410, 0.000000, -0.000000, -0.757866 -2255, -0.640422, 0.000000, -0.000000, -0.768023 -2256, -0.628275, 0.000000, -0.000000, -0.777991 -2257, -0.615973, 0.000000, -0.000000, -0.787767 -2258, -0.603519, 0.000000, -0.000000, -0.797348 -2259, -0.590917, 0.000000, -0.000000, -0.806733 -2260, -0.578168, 0.000000, -0.000000, -0.815918 -2261, -0.565276, 0.000000, -0.000000, -0.824902 -2262, -0.552245, 0.000000, -0.000000, -0.833682 -2263, -0.539078, 0.000000, -0.000000, -0.842256 -2264, -0.525777, 0.000000, -0.000000, -0.850622 -2265, -0.512347, 0.000000, -0.000000, -0.858779 -2266, -0.498790, 0.000000, -0.000000, -0.866723 -2267, -0.485110, 0.000000, -0.000000, -0.874453 -2268, -0.471310, 0.000000, -0.000000, -0.881968 -2269, -0.457394, 0.000000, -0.000000, -0.889264 -2270, -0.443365, 0.000000, -0.000000, -0.896341 -2271, -0.429226, 0.000000, -0.000000, -0.903197 -2272, -0.414982, 0.000000, -0.000000, -0.909830 -2273, -0.400635, 0.000000, -0.000000, -0.916238 -2274, -0.386189, 0.000000, -0.000000, -0.922420 -2275, -0.371648, 0.000000, -0.000000, -0.928374 -2276, -0.357015, 0.000000, -0.000000, -0.934099 -2277, -0.342294, 0.000000, -0.000000, -0.939593 -2278, -0.327488, 0.000000, -0.000000, -0.944855 -2279, -0.312601, 0.000000, -0.000000, -0.949884 -2280, -0.297638, 0.000000, -0.000000, -0.954679 -2281, -0.282600, 0.000000, -0.000000, -0.959238 -2282, -0.267494, 0.000000, -0.000000, -0.963560 -2283, -0.252321, 0.000000, -0.000000, -0.967644 -2284, -0.237085, 0.000000, -0.000000, -0.971489 -2285, -0.221791, 0.000000, -0.000000, -0.975094 -2286, -0.206443, 0.000000, -0.000000, -0.978459 -2287, -0.191043, 0.000000, -0.000000, -0.981582 -2288, -0.175596, 0.000000, -0.000000, -0.984462 -2289, -0.160106, 0.000000, -0.000000, -0.987100 -2290, -0.144577, 0.000000, -0.000000, -0.989494 -2291, -0.129011, 0.000000, -0.000000, -0.991643 -2292, -0.113414, 0.000000, -0.000000, -0.993548 -2293, -0.097789, 0.000000, -0.000000, -0.995207 -2294, -0.082140, 0.000000, -0.000000, -0.996621 -2295, -0.066470, 0.000000, -0.000000, -0.997788 -2296, -0.050784, 0.000000, -0.000000, -0.998710 -2297, -0.035086, 0.000000, -0.000000, -0.999384 -2298, -0.019378, 0.000000, -0.000000, -0.999812 -2299, -0.003666, 0.000000, -0.000000, -0.999993 -2300, 0.012046, 0.000000, 0.000000, -0.999927 -2301, 0.027756, 0.000000, 0.000000, -0.999615 -2302, 0.043459, 0.000000, 0.000000, -0.999055 -2303, 0.059152, 0.000000, 0.000000, -0.998249 -2304, 0.074830, 0.000000, 0.000000, -0.997196 -2305, 0.090489, 0.000000, 0.000000, -0.995897 -2306, 0.106126, 0.000000, 0.000000, -0.994353 -2307, 0.121736, 0.000000, 0.000000, -0.992562 -2308, 0.137317, 0.000000, 0.000000, -0.990527 -2309, 0.152864, 0.000000, 0.000000, -0.988247 -2310, 0.168373, 0.000000, 0.000000, -0.985723 -2311, 0.183840, 0.000000, 0.000000, -0.982956 -2312, 0.199262, 0.000000, 0.000000, -0.979946 -2313, 0.214635, 0.000000, 0.000000, -0.976694 -2314, 0.229955, 0.000000, 0.000000, -0.973201 -2315, 0.245218, 0.000000, 0.000000, -0.969468 -2316, 0.260421, 0.000000, 0.000000, -0.965495 -2317, 0.275559, 0.000000, 0.000000, -0.961284 -2318, 0.290629, 0.000000, 0.000000, -0.956836 -2319, 0.305628, 0.000000, 0.000000, -0.952151 -2320, 0.320551, 0.000000, 0.000000, -0.947231 -2321, 0.335395, 0.000000, 0.000000, -0.942078 -2322, 0.350156, 0.000000, 0.000000, -0.936692 -2323, 0.364830, 0.000000, 0.000000, -0.931074 -2324, 0.379415, 0.000000, 0.000000, -0.925227 -2325, 0.393906, 0.000000, 0.000000, -0.919151 -2326, 0.408299, 0.000000, 0.000000, -0.912848 -2327, 0.422592, 0.000000, 0.000000, -0.906320 -2328, 0.436780, 0.000000, 0.000000, -0.899568 -2329, 0.450861, 0.000000, 0.000000, -0.892594 -2330, 0.464830, 0.000000, 0.000000, -0.885400 -2331, 0.478685, 0.000000, 0.000000, -0.877987 -2332, 0.492421, 0.000000, 0.000000, -0.870357 -2333, 0.506036, 0.000000, 0.000000, -0.862512 -2334, 0.519526, 0.000000, 0.000000, -0.854455 -2335, 0.532887, 0.000000, 0.000000, -0.846186 -2336, 0.546117, 0.000000, 0.000000, -0.837709 -2337, 0.559212, 0.000000, 0.000000, -0.829025 -2338, 0.572169, 0.000000, 0.000000, -0.820136 -2339, 0.584985, 0.000000, 0.000000, -0.811044 -2340, 0.597656, 0.000000, 0.000000, -0.801752 -2341, 0.610180, 0.000000, 0.000000, -0.792263 -2342, 0.622553, 0.000000, 0.000000, -0.782577 -2343, 0.634773, 0.000000, 0.000000, -0.772699 -2344, 0.646835, 0.000000, 0.000000, -0.762630 -2345, 0.658739, 0.000000, 0.000000, -0.752372 -2346, 0.670479, 0.000000, 0.000000, -0.741929 -2347, 0.682054, 0.000000, 0.000000, -0.731302 -2348, 0.693460, 0.000000, 0.000000, -0.720495 -2349, 0.704695, 0.000000, 0.000000, -0.709510 -2350, 0.715757, 0.000000, 0.000000, -0.698350 -2351, 0.726641, 0.000000, 0.000000, -0.687017 -2352, 0.737346, 0.000000, 0.000000, -0.675515 -2353, 0.747869, 0.000000, 0.000000, -0.663846 -2354, 0.758208, 0.000000, 0.000000, -0.652013 -2355, 0.768359, 0.000000, 0.000000, -0.640019 -2356, 0.778320, 0.000000, 0.000000, -0.627867 -2357, 0.788090, 0.000000, 0.000000, -0.615561 -2358, 0.797664, 0.000000, 0.000000, -0.603102 -2359, 0.807042, 0.000000, 0.000000, -0.590494 -2360, 0.816221, 0.000000, 0.000000, -0.577740 -2361, 0.825198, 0.000000, 0.000000, -0.564844 -2362, 0.833971, 0.000000, 0.000000, -0.551808 -2363, 0.842538, 0.000000, 0.000000, -0.538636 -2364, 0.850898, 0.000000, 0.000000, -0.525332 -2365, 0.859047, 0.000000, 0.000000, -0.511897 -2366, 0.866984, 0.000000, 0.000000, -0.498336 -2367, 0.874707, 0.000000, 0.000000, -0.484652 -2368, 0.882214, 0.000000, 0.000000, -0.470848 -2369, 0.889504, 0.000000, 0.000000, -0.456928 -2370, 0.896573, 0.000000, 0.000000, -0.442895 -2371, 0.903422, 0.000000, 0.000000, -0.428753 -2372, 0.910047, 0.000000, 0.000000, -0.414505 -2373, 0.916448, 0.000000, 0.000000, -0.400155 -2374, 0.922622, 0.000000, 0.000000, -0.385706 -2375, 0.928568, 0.000000, 0.000000, -0.371161 -2376, 0.934286, 0.000000, 0.000000, -0.356525 -2377, 0.939772, 0.000000, 0.000000, -0.341801 -2378, 0.945027, 0.000000, 0.000000, -0.326993 -2379, 0.950048, 0.000000, 0.000000, -0.312104 -2380, 0.954835, 0.000000, 0.000000, -0.297138 -2381, 0.959386, 0.000000, 0.000000, -0.282098 -2382, 0.963700, 0.000000, 0.000000, -0.266989 -2383, 0.967776, 0.000000, 0.000000, -0.251814 -2384, 0.971613, 0.000000, 0.000000, -0.236576 -2385, 0.975210, 0.000000, 0.000000, -0.221281 -2386, 0.978567, 0.000000, 0.000000, -0.205930 -2387, 0.981682, 0.000000, 0.000000, -0.190529 -2388, 0.984554, 0.000000, 0.000000, -0.175081 -2389, 0.987183, 0.000000, 0.000000, -0.159589 -2390, 0.989569, 0.000000, 0.000000, -0.144058 -2391, 0.991711, 0.000000, 0.000000, -0.128492 -2392, 0.993607, 0.000000, 0.000000, -0.112894 -2393, 0.995258, 0.000000, 0.000000, -0.097268 -2394, 0.996664, 0.000000, 0.000000, -0.081618 -2395, 0.997823, 0.000000, 0.000000, -0.065948 -2396, 0.998736, 0.000000, 0.000000, -0.050261 -2397, 0.999403, 0.000000, 0.000000, -0.034562 -2398, 0.999822, 0.000000, 0.000000, -0.018855 -2399, 0.999995, 0.000000, 0.000000, -0.003143 -2400, 0.999921, 0.000000, 0.000000, 0.012570 -2401, 0.999600, 0.000000, 0.000000, 0.028280 -2402, 0.999032, 0.000000, 0.000000, 0.043983 -2403, 0.998218, 0.000000, 0.000000, 0.059675 -2404, 0.997157, 0.000000, 0.000000, 0.075352 -2405, 0.995850, 0.000000, 0.000000, 0.091010 -2406, 0.994297, 0.000000, 0.000000, 0.106647 -2407, 0.992499, 0.000000, 0.000000, 0.122256 -2408, 0.990455, 0.000000, 0.000000, 0.137836 -2409, 0.988167, 0.000000, 0.000000, 0.153382 -2410, 0.985635, 0.000000, 0.000000, 0.168889 -2411, 0.982860, 0.000000, 0.000000, 0.184355 -2412, 0.979842, 0.000000, 0.000000, 0.199776 -2413, 0.976582, 0.000000, 0.000000, 0.215147 -2414, 0.973081, 0.000000, 0.000000, 0.230465 -2415, 0.969339, 0.000000, 0.000000, 0.245726 -2416, 0.965359, 0.000000, 0.000000, 0.260926 -2417, 0.961140, 0.000000, 0.000000, 0.276062 -2418, 0.956683, 0.000000, 0.000000, 0.291130 -2419, 0.951991, 0.000000, 0.000000, 0.306126 -2420, 0.947063, 0.000000, 0.000000, 0.321047 -2421, 0.941902, 0.000000, 0.000000, 0.335888 -2422, 0.936508, 0.000000, 0.000000, 0.350646 -2423, 0.930883, 0.000000, 0.000000, 0.365318 -2424, 0.925028, 0.000000, 0.000000, 0.379899 -2425, 0.918944, 0.000000, 0.000000, 0.394387 -2426, 0.912634, 0.000000, 0.000000, 0.408777 -2427, 0.906099, 0.000000, 0.000000, 0.423067 -2428, 0.899339, 0.000000, 0.000000, 0.437251 -2429, 0.892358, 0.000000, 0.000000, 0.451328 -2430, 0.885156, 0.000000, 0.000000, 0.465294 -2431, 0.877736, 0.000000, 0.000000, 0.479145 -2432, 0.870099, 0.000000, 0.000000, 0.492877 -2433, 0.862247, 0.000000, 0.000000, 0.506487 -2434, 0.854183, 0.000000, 0.000000, 0.519973 -2435, 0.845907, 0.000000, 0.000000, 0.533330 -2436, 0.837423, 0.000000, 0.000000, 0.546556 -2437, 0.828732, 0.000000, 0.000000, 0.559646 -2438, 0.819836, 0.000000, 0.000000, 0.572599 -2439, 0.810738, 0.000000, 0.000000, 0.585410 -2440, 0.801439, 0.000000, 0.000000, 0.598076 -2441, 0.791943, 0.000000, 0.000000, 0.610595 -2442, 0.782251, 0.000000, 0.000000, 0.622963 -2443, 0.772366, 0.000000, 0.000000, 0.635177 -2444, 0.762291, 0.000000, 0.000000, 0.647235 -2445, 0.752027, 0.000000, 0.000000, 0.659132 -2446, 0.741577, 0.000000, 0.000000, 0.670867 -2447, 0.730945, 0.000000, 0.000000, 0.682437 -2448, 0.720132, 0.000000, 0.000000, 0.693837 -2449, 0.709141, 0.000000, 0.000000, 0.705067 -2450, 0.697975, 0.000000, 0.000000, 0.716122 -2451, 0.686637, 0.000000, 0.000000, 0.727001 -2452, 0.675129, 0.000000, 0.000000, 0.737700 -2453, 0.663454, 0.000000, 0.000000, 0.748217 -2454, 0.651616, 0.000000, 0.000000, 0.758549 -2455, 0.639617, 0.000000, 0.000000, 0.768694 -2456, 0.627460, 0.000000, 0.000000, 0.778649 -2457, 0.615148, 0.000000, 0.000000, 0.788412 -2458, 0.602684, 0.000000, 0.000000, 0.797980 -2459, 0.590071, 0.000000, 0.000000, 0.807351 -2460, 0.577313, 0.000000, 0.000000, 0.816523 -2461, 0.564412, 0.000000, 0.000000, 0.825493 -2462, 0.551371, 0.000000, 0.000000, 0.834260 -2463, 0.538195, 0.000000, 0.000000, 0.842820 -2464, 0.524886, 0.000000, 0.000000, 0.851173 -2465, 0.511447, 0.000000, 0.000000, 0.859315 -2466, 0.497882, 0.000000, 0.000000, 0.867245 -2467, 0.484194, 0.000000, 0.000000, 0.874961 -2468, 0.470386, 0.000000, 0.000000, 0.882461 -2469, 0.456462, 0.000000, 0.000000, 0.889743 -2470, 0.442426, 0.000000, 0.000000, 0.896805 -2471, 0.428280, 0.000000, 0.000000, 0.903646 -2472, 0.414029, 0.000000, 0.000000, 0.910264 -2473, 0.399675, 0.000000, 0.000000, 0.916657 -2474, 0.385222, 0.000000, 0.000000, 0.922824 -2475, 0.370675, 0.000000, 0.000000, 0.928763 -2476, 0.356036, 0.000000, 0.000000, 0.934472 -2477, 0.341309, 0.000000, 0.000000, 0.939951 -2478, 0.326498, 0.000000, 0.000000, 0.945198 -2479, 0.311606, 0.000000, 0.000000, 0.950211 -2480, 0.296637, 0.000000, 0.000000, 0.954990 -2481, 0.281595, 0.000000, 0.000000, 0.959533 -2482, 0.266484, 0.000000, 0.000000, 0.963839 -2483, 0.251307, 0.000000, 0.000000, 0.967907 -2484, 0.236067, 0.000000, 0.000000, 0.971737 -2485, 0.220770, 0.000000, 0.000000, 0.975326 -2486, 0.205418, 0.000000, 0.000000, 0.978674 -2487, 0.190015, 0.000000, 0.000000, 0.981781 -2488, 0.174565, 0.000000, 0.000000, 0.984646 -2489, 0.159072, 0.000000, 0.000000, 0.987267 -2490, 0.143540, 0.000000, 0.000000, 0.989644 -2491, 0.127973, 0.000000, 0.000000, 0.991778 -2492, 0.112373, 0.000000, 0.000000, 0.993666 -2493, 0.096747, 0.000000, 0.000000, 0.995309 -2494, 0.081096, 0.000000, 0.000000, 0.996706 -2495, 0.065425, 0.000000, 0.000000, 0.997857 -2496, 0.049738, 0.000000, 0.000000, 0.998762 -2497, 0.034039, 0.000000, 0.000000, 0.999421 -2498, 0.018331, 0.000000, 0.000000, 0.999832 -2499, 0.002619, 0.000000, 0.000000, 0.999997 -2500, -0.013094, -0.000000, 0.000000, 0.999914 -2501, -0.028804, -0.000000, 0.000000, 0.999585 -2502, -0.044506, -0.000000, 0.000000, 0.999009 -2503, -0.060198, -0.000000, 0.000000, 0.998186 -2504, -0.075874, -0.000000, 0.000000, 0.997117 -2505, -0.091532, -0.000000, 0.000000, 0.995802 -2506, -0.107167, -0.000000, 0.000000, 0.994241 -2507, -0.122776, -0.000000, 0.000000, 0.992434 -2508, -0.138355, -0.000000, 0.000000, 0.990383 -2509, -0.153899, -0.000000, 0.000000, 0.988087 -2510, -0.169405, -0.000000, 0.000000, 0.985546 -2511, -0.184870, -0.000000, 0.000000, 0.982763 -2512, -0.200289, -0.000000, 0.000000, 0.979737 -2513, -0.215658, -0.000000, 0.000000, 0.976469 -2514, -0.230975, -0.000000, 0.000000, 0.972960 -2515, -0.246234, -0.000000, 0.000000, 0.969210 -2516, -0.261432, -0.000000, 0.000000, 0.965222 -2517, -0.276566, -0.000000, 0.000000, 0.960995 -2518, -0.291631, -0.000000, 0.000000, 0.956531 -2519, -0.306625, -0.000000, 0.000000, 0.951830 -2520, -0.321543, -0.000000, 0.000000, 0.946895 -2521, -0.336381, -0.000000, 0.000000, 0.941726 -2522, -0.351137, -0.000000, 0.000000, 0.936324 -2523, -0.365805, -0.000000, 0.000000, 0.930691 -2524, -0.380384, -0.000000, 0.000000, 0.924829 -2525, -0.394868, -0.000000, 0.000000, 0.918738 -2526, -0.409255, -0.000000, 0.000000, 0.912420 -2527, -0.423541, -0.000000, 0.000000, 0.905877 -2528, -0.437722, -0.000000, 0.000000, 0.899110 -2529, -0.451796, -0.000000, 0.000000, 0.892121 -2530, -0.465757, -0.000000, 0.000000, 0.884912 -2531, -0.479604, -0.000000, 0.000000, 0.877485 -2532, -0.493332, -0.000000, 0.000000, 0.869841 -2533, -0.506939, -0.000000, 0.000000, 0.861982 -2534, -0.520420, -0.000000, 0.000000, 0.853910 -2535, -0.533773, -0.000000, 0.000000, 0.845628 -2536, -0.546994, -0.000000, 0.000000, 0.837136 -2537, -0.560080, -0.000000, 0.000000, 0.828438 -2538, -0.573028, -0.000000, 0.000000, 0.819536 -2539, -0.585834, -0.000000, 0.000000, 0.810431 -2540, -0.598496, -0.000000, 0.000000, 0.801126 -2541, -0.611010, -0.000000, 0.000000, 0.791623 -2542, -0.623373, -0.000000, 0.000000, 0.781925 -2543, -0.635582, -0.000000, 0.000000, 0.772033 -2544, -0.647634, -0.000000, 0.000000, 0.761952 -2545, -0.659526, -0.000000, 0.000000, 0.751682 -2546, -0.671256, -0.000000, 0.000000, 0.741226 -2547, -0.682819, -0.000000, 0.000000, 0.730587 -2548, -0.694214, -0.000000, 0.000000, 0.719768 -2549, -0.705438, -0.000000, 0.000000, 0.708771 -2550, -0.716488, -0.000000, 0.000000, 0.697600 -2551, -0.727360, -0.000000, 0.000000, 0.686256 -2552, -0.738053, -0.000000, 0.000000, 0.674742 -2553, -0.748564, -0.000000, 0.000000, 0.663062 -2554, -0.758890, -0.000000, 0.000000, 0.651219 -2555, -0.769029, -0.000000, 0.000000, 0.639214 -2556, -0.778978, -0.000000, 0.000000, 0.627052 -2557, -0.788734, -0.000000, 0.000000, 0.614735 -2558, -0.798296, -0.000000, 0.000000, 0.602266 -2559, -0.807660, -0.000000, 0.000000, 0.589648 -2560, -0.816825, -0.000000, 0.000000, 0.576885 -2561, -0.825789, -0.000000, 0.000000, 0.563979 -2562, -0.834549, -0.000000, 0.000000, 0.550934 -2563, -0.843102, -0.000000, 0.000000, 0.537754 -2564, -0.851447, -0.000000, 0.000000, 0.524440 -2565, -0.859583, -0.000000, 0.000000, 0.510997 -2566, -0.867506, -0.000000, 0.000000, 0.497427 -2567, -0.875214, -0.000000, 0.000000, 0.483735 -2568, -0.882707, -0.000000, 0.000000, 0.469924 -2569, -0.889982, -0.000000, 0.000000, 0.455996 -2570, -0.897037, -0.000000, 0.000000, 0.441956 -2571, -0.903870, -0.000000, 0.000000, 0.427807 -2572, -0.910481, -0.000000, 0.000000, 0.413552 -2573, -0.916866, -0.000000, 0.000000, 0.399195 -2574, -0.923025, -0.000000, 0.000000, 0.384739 -2575, -0.928957, -0.000000, 0.000000, 0.370188 -2576, -0.934659, -0.000000, 0.000000, 0.355547 -2577, -0.940130, -0.000000, 0.000000, 0.340817 -2578, -0.945369, -0.000000, 0.000000, 0.326003 -2579, -0.950374, -0.000000, 0.000000, 0.311108 -2580, -0.955145, -0.000000, 0.000000, 0.296137 -2581, -0.959681, -0.000000, 0.000000, 0.281093 -2582, -0.963979, -0.000000, 0.000000, 0.265979 -2583, -0.968039, -0.000000, 0.000000, 0.250800 -2584, -0.971860, -0.000000, 0.000000, 0.235558 -2585, -0.975441, -0.000000, 0.000000, 0.220259 -2586, -0.978782, -0.000000, 0.000000, 0.204905 -2587, -0.981881, -0.000000, 0.000000, 0.189501 -2588, -0.984737, -0.000000, 0.000000, 0.174049 -2589, -0.987350, -0.000000, 0.000000, 0.158555 -2590, -0.989720, -0.000000, 0.000000, 0.143022 -2591, -0.991845, -0.000000, 0.000000, 0.127453 -2592, -0.993725, -0.000000, 0.000000, 0.111853 -2593, -0.995360, -0.000000, 0.000000, 0.096225 -2594, -0.996749, -0.000000, 0.000000, 0.080574 -2595, -0.997892, -0.000000, 0.000000, 0.064902 -2596, -0.998788, -0.000000, 0.000000, 0.049215 -2597, -0.999438, -0.000000, 0.000000, 0.033515 -2598, -0.999841, -0.000000, 0.000000, 0.017807 -2599, -0.999998, -0.000000, 0.000000, 0.002095 -2600, -0.999907, 0.000000, -0.000000, -0.013618 -2601, -0.999570, 0.000000, -0.000000, -0.029327 -2602, -0.998986, 0.000000, -0.000000, -0.045029 -2603, -0.998155, 0.000000, -0.000000, -0.060720 -2604, -0.997078, 0.000000, -0.000000, -0.076396 -2605, -0.995754, 0.000000, -0.000000, -0.092054 -2606, -0.994185, 0.000000, -0.000000, -0.107688 -2607, -0.992370, 0.000000, -0.000000, -0.123296 -2608, -0.990310, 0.000000, -0.000000, -0.138873 -2609, -0.988006, 0.000000, -0.000000, -0.154417 -2610, -0.985458, 0.000000, -0.000000, -0.169922 -2611, -0.982666, 0.000000, -0.000000, -0.185385 -2612, -0.979632, 0.000000, -0.000000, -0.200802 -2613, -0.976356, 0.000000, -0.000000, -0.216170 -2614, -0.972839, 0.000000, -0.000000, -0.231484 -2615, -0.969081, 0.000000, -0.000000, -0.246741 -2616, -0.965085, 0.000000, -0.000000, -0.261938 -2617, -0.960850, 0.000000, -0.000000, -0.277069 -2618, -0.956378, 0.000000, -0.000000, -0.292132 -2619, -0.951670, 0.000000, -0.000000, -0.307123 -2620, -0.946727, 0.000000, -0.000000, -0.322039 -2621, -0.941550, 0.000000, -0.000000, -0.336874 -2622, -0.936140, 0.000000, -0.000000, -0.351627 -2623, -0.930500, 0.000000, -0.000000, -0.366293 -2624, -0.924629, 0.000000, -0.000000, -0.380868 -2625, -0.918531, 0.000000, -0.000000, -0.395349 -2626, -0.912206, 0.000000, -0.000000, -0.409733 -2627, -0.905655, 0.000000, -0.000000, -0.424015 -2628, -0.898881, 0.000000, -0.000000, -0.438193 -2629, -0.891885, 0.000000, -0.000000, -0.452263 -2630, -0.884668, 0.000000, -0.000000, -0.466221 -2631, -0.877234, 0.000000, -0.000000, -0.480064 -2632, -0.869582, 0.000000, -0.000000, -0.493788 -2633, -0.861716, 0.000000, -0.000000, -0.507390 -2634, -0.853638, 0.000000, -0.000000, -0.520868 -2635, -0.845348, 0.000000, -0.000000, -0.534216 -2636, -0.836850, 0.000000, -0.000000, -0.547433 -2637, -0.828145, 0.000000, -0.000000, -0.560514 -2638, -0.819235, 0.000000, -0.000000, -0.573457 -2639, -0.810124, 0.000000, -0.000000, -0.586259 -2640, -0.800812, 0.000000, -0.000000, -0.598915 -2641, -0.791303, 0.000000, -0.000000, -0.611424 -2642, -0.781598, 0.000000, -0.000000, -0.623782 -2643, -0.771700, 0.000000, -0.000000, -0.635986 -2644, -0.761612, 0.000000, -0.000000, -0.648033 -2645, -0.751336, 0.000000, -0.000000, -0.659920 -2646, -0.740874, 0.000000, -0.000000, -0.671644 -2647, -0.730229, 0.000000, -0.000000, -0.683202 -2648, -0.719404, 0.000000, -0.000000, -0.694591 -2649, -0.708402, 0.000000, -0.000000, -0.705809 -2650, -0.697224, 0.000000, -0.000000, -0.716853 -2651, -0.685875, 0.000000, -0.000000, -0.727720 -2652, -0.674356, 0.000000, -0.000000, -0.738407 -2653, -0.662670, 0.000000, -0.000000, -0.748911 -2654, -0.650821, 0.000000, -0.000000, -0.759231 -2655, -0.638811, 0.000000, -0.000000, -0.769363 -2656, -0.626644, 0.000000, -0.000000, -0.779306 -2657, -0.614321, 0.000000, -0.000000, -0.789056 -2658, -0.601848, 0.000000, -0.000000, -0.798611 -2659, -0.589225, 0.000000, -0.000000, -0.807969 -2660, -0.576457, 0.000000, -0.000000, -0.817127 -2661, -0.563547, 0.000000, -0.000000, -0.826084 -2662, -0.550497, 0.000000, -0.000000, -0.834837 -2663, -0.537312, 0.000000, -0.000000, -0.843384 -2664, -0.523994, 0.000000, -0.000000, -0.851722 -2665, -0.510546, 0.000000, -0.000000, -0.859850 -2666, -0.496973, 0.000000, -0.000000, -0.867766 -2667, -0.483277, 0.000000, -0.000000, -0.875468 -2668, -0.469461, 0.000000, -0.000000, -0.882953 -2669, -0.455530, 0.000000, -0.000000, -0.890220 -2670, -0.441486, 0.000000, -0.000000, -0.897268 -2671, -0.427333, 0.000000, -0.000000, -0.904094 -2672, -0.413075, 0.000000, -0.000000, -0.910697 -2673, -0.398714, 0.000000, -0.000000, -0.917075 -2674, -0.384256, 0.000000, -0.000000, -0.923227 -2675, -0.369702, 0.000000, -0.000000, -0.929150 -2676, -0.355057, 0.000000, -0.000000, -0.934845 -2677, -0.340324, 0.000000, -0.000000, -0.940308 -2678, -0.325508, 0.000000, -0.000000, -0.945539 -2679, -0.310611, 0.000000, -0.000000, -0.950537 -2680, -0.295637, 0.000000, -0.000000, -0.955300 -2681, -0.280590, 0.000000, -0.000000, -0.959828 -2682, -0.265474, 0.000000, -0.000000, -0.964118 -2683, -0.250293, 0.000000, -0.000000, -0.968170 -2684, -0.235049, 0.000000, -0.000000, -0.971983 -2685, -0.219748, 0.000000, -0.000000, -0.975557 -2686, -0.204392, 0.000000, -0.000000, -0.978889 -2687, -0.188986, 0.000000, -0.000000, -0.981980 -2688, -0.173534, 0.000000, -0.000000, -0.984828 -2689, -0.158038, 0.000000, -0.000000, -0.987433 -2690, -0.142503, 0.000000, -0.000000, -0.989794 -2691, -0.126934, 0.000000, -0.000000, -0.991911 -2692, -0.111332, 0.000000, -0.000000, -0.993783 -2693, -0.095704, 0.000000, -0.000000, -0.995410 -2694, -0.080052, 0.000000, -0.000000, -0.996791 -2695, -0.064380, 0.000000, -0.000000, -0.997925 -2696, -0.048692, 0.000000, -0.000000, -0.998814 -2697, -0.032992, 0.000000, -0.000000, -0.999456 -2698, -0.017284, 0.000000, -0.000000, -0.999851 -2699, -0.001571, 0.000000, -0.000000, -0.999999 -2700, 0.014141, 0.000000, 0.000000, -0.999900 -2701, 0.029851, 0.000000, 0.000000, -0.999554 -2702, 0.045553, 0.000000, 0.000000, -0.998962 -2703, 0.061243, 0.000000, 0.000000, -0.998123 -2704, 0.076919, 0.000000, 0.000000, -0.997037 -2705, 0.092575, 0.000000, 0.000000, -0.995706 -2706, 0.108209, 0.000000, 0.000000, -0.994128 -2707, 0.123816, 0.000000, 0.000000, -0.992305 -2708, 0.139392, 0.000000, 0.000000, -0.990237 -2709, 0.154934, 0.000000, 0.000000, -0.987925 -2710, 0.170438, 0.000000, 0.000000, -0.985368 -2711, 0.185899, 0.000000, 0.000000, -0.982569 -2712, 0.201315, 0.000000, 0.000000, -0.979527 -2713, 0.216681, 0.000000, 0.000000, -0.976242 -2714, 0.231994, 0.000000, 0.000000, -0.972717 -2715, 0.247249, 0.000000, 0.000000, -0.968952 -2716, 0.262443, 0.000000, 0.000000, -0.964947 -2717, 0.277572, 0.000000, 0.000000, -0.960705 -2718, 0.292633, 0.000000, 0.000000, -0.956225 -2719, 0.307622, 0.000000, 0.000000, -0.951509 -2720, 0.322535, 0.000000, 0.000000, -0.946558 -2721, 0.337368, 0.000000, 0.000000, -0.941373 -2722, 0.352117, 0.000000, 0.000000, -0.935956 -2723, 0.366780, 0.000000, 0.000000, -0.930308 -2724, 0.381352, 0.000000, 0.000000, -0.924430 -2725, 0.395830, 0.000000, 0.000000, -0.918324 -2726, 0.410211, 0.000000, 0.000000, -0.911991 -2727, 0.424490, 0.000000, 0.000000, -0.905433 -2728, 0.438664, 0.000000, 0.000000, -0.898651 -2729, 0.452730, 0.000000, 0.000000, -0.891648 -2730, 0.466684, 0.000000, 0.000000, -0.884424 -2731, 0.480523, 0.000000, 0.000000, -0.876982 -2732, 0.494243, 0.000000, 0.000000, -0.869324 -2733, 0.507842, 0.000000, 0.000000, -0.861450 -2734, 0.521315, 0.000000, 0.000000, -0.853365 -2735, 0.534659, 0.000000, 0.000000, -0.845068 -2736, 0.547871, 0.000000, 0.000000, -0.836563 -2737, 0.560948, 0.000000, 0.000000, -0.827851 -2738, 0.573886, 0.000000, 0.000000, -0.818935 -2739, 0.586683, 0.000000, 0.000000, -0.809817 -2740, 0.599335, 0.000000, 0.000000, -0.800498 -2741, 0.611839, 0.000000, 0.000000, -0.790983 -2742, 0.624192, 0.000000, 0.000000, -0.781271 -2743, 0.636390, 0.000000, 0.000000, -0.771367 -2744, 0.648432, 0.000000, 0.000000, -0.761273 -2745, 0.660313, 0.000000, 0.000000, -0.750990 -2746, 0.672032, 0.000000, 0.000000, -0.740522 -2747, 0.683584, 0.000000, 0.000000, -0.729872 -2748, 0.694968, 0.000000, 0.000000, -0.719041 -2749, 0.706180, 0.000000, 0.000000, -0.708032 -2750, 0.717218, 0.000000, 0.000000, -0.696849 -2751, 0.728079, 0.000000, 0.000000, -0.685493 -2752, 0.738760, 0.000000, 0.000000, -0.673969 -2753, 0.749258, 0.000000, 0.000000, -0.662278 -2754, 0.759572, 0.000000, 0.000000, -0.650423 -2755, 0.769698, 0.000000, 0.000000, -0.638408 -2756, 0.779634, 0.000000, 0.000000, -0.626235 -2757, 0.789377, 0.000000, 0.000000, -0.613908 -2758, 0.798926, 0.000000, 0.000000, -0.601429 -2759, 0.808277, 0.000000, 0.000000, -0.588802 -2760, 0.817429, 0.000000, 0.000000, -0.576029 -2761, 0.826379, 0.000000, 0.000000, -0.563114 -2762, 0.835125, 0.000000, 0.000000, -0.550060 -2763, 0.843665, 0.000000, 0.000000, -0.536870 -2764, 0.851996, 0.000000, 0.000000, -0.523548 -2765, 0.860117, 0.000000, 0.000000, -0.510096 -2766, 0.868026, 0.000000, 0.000000, -0.496518 -2767, 0.875721, 0.000000, 0.000000, -0.482818 -2768, 0.883199, 0.000000, 0.000000, -0.468999 -2769, 0.890459, 0.000000, 0.000000, -0.455064 -2770, 0.897499, 0.000000, 0.000000, -0.441016 -2771, 0.904318, 0.000000, 0.000000, -0.426860 -2772, 0.910913, 0.000000, 0.000000, -0.412598 -2773, 0.917284, 0.000000, 0.000000, -0.398234 -2774, 0.923428, 0.000000, 0.000000, -0.383772 -2775, 0.929344, 0.000000, 0.000000, -0.369215 -2776, 0.935031, 0.000000, 0.000000, -0.354567 -2777, 0.940486, 0.000000, 0.000000, -0.339832 -2778, 0.945710, 0.000000, 0.000000, -0.325012 -2779, 0.950700, 0.000000, 0.000000, -0.310113 -2780, 0.955455, 0.000000, 0.000000, -0.295136 -2781, 0.959975, 0.000000, 0.000000, -0.280087 -2782, 0.964257, 0.000000, 0.000000, -0.264969 -2783, 0.968301, 0.000000, 0.000000, -0.249786 -2784, 0.972106, 0.000000, 0.000000, -0.234540 -2785, 0.975672, 0.000000, 0.000000, -0.219237 -2786, 0.978996, 0.000000, 0.000000, -0.203880 -2787, 0.982079, 0.000000, 0.000000, -0.188472 -2788, 0.984919, 0.000000, 0.000000, -0.173018 -2789, 0.987516, 0.000000, 0.000000, -0.157521 -2790, 0.989869, 0.000000, 0.000000, -0.141985 -2791, 0.991978, 0.000000, 0.000000, -0.126414 -2792, 0.993841, 0.000000, 0.000000, -0.110812 -2793, 0.995460, 0.000000, 0.000000, -0.095182 -2794, 0.996833, 0.000000, 0.000000, -0.079529 -2795, 0.997959, 0.000000, 0.000000, -0.063857 -2796, 0.998839, 0.000000, 0.000000, -0.048169 -2797, 0.999473, 0.000000, 0.000000, -0.032468 -2798, 0.999860, 0.000000, 0.000000, -0.016760 -2799, 0.999999, 0.000000, 0.000000, -0.001048 -2800, 0.999892, 0.000000, 0.000000, 0.014665 -2801, 0.999539, 0.000000, 0.000000, 0.030374 -2802, 0.998938, 0.000000, 0.000000, 0.046076 -2803, 0.998091, 0.000000, 0.000000, 0.061766 -2804, 0.996997, 0.000000, 0.000000, 0.077441 -2805, 0.995657, 0.000000, 0.000000, 0.093097 -2806, 0.994071, 0.000000, 0.000000, 0.108729 -2807, 0.992240, 0.000000, 0.000000, 0.124335 -2808, 0.990164, 0.000000, 0.000000, 0.139911 -2809, 0.987844, 0.000000, 0.000000, 0.155451 -2810, 0.985279, 0.000000, 0.000000, 0.170954 -2811, 0.982471, 0.000000, 0.000000, 0.186414 -2812, 0.979421, 0.000000, 0.000000, 0.201828 -2813, 0.976129, 0.000000, 0.000000, 0.217192 -2814, 0.972596, 0.000000, 0.000000, 0.232503 -2815, 0.968822, 0.000000, 0.000000, 0.247756 -2816, 0.964810, 0.000000, 0.000000, 0.262948 -2817, 0.960559, 0.000000, 0.000000, 0.278076 -2818, 0.956071, 0.000000, 0.000000, 0.293134 -2819, 0.951347, 0.000000, 0.000000, 0.308120 -2820, 0.946389, 0.000000, 0.000000, 0.323030 -2821, 0.941196, 0.000000, 0.000000, 0.337861 -2822, 0.935771, 0.000000, 0.000000, 0.352607 -2823, 0.930115, 0.000000, 0.000000, 0.367267 -2824, 0.924230, 0.000000, 0.000000, 0.381836 -2825, 0.918116, 0.000000, 0.000000, 0.396311 -2826, 0.911776, 0.000000, 0.000000, 0.410688 -2827, 0.905210, 0.000000, 0.000000, 0.424964 -2828, 0.898421, 0.000000, 0.000000, 0.439135 -2829, 0.891410, 0.000000, 0.000000, 0.453197 -2830, 0.884179, 0.000000, 0.000000, 0.467147 -2831, 0.876730, 0.000000, 0.000000, 0.480982 -2832, 0.869065, 0.000000, 0.000000, 0.494699 -2833, 0.861184, 0.000000, 0.000000, 0.508293 -2834, 0.853091, 0.000000, 0.000000, 0.521761 -2835, 0.844788, 0.000000, 0.000000, 0.535101 -2836, 0.836276, 0.000000, 0.000000, 0.548309 -2837, 0.827557, 0.000000, 0.000000, 0.561381 -2838, 0.818634, 0.000000, 0.000000, 0.574315 -2839, 0.809509, 0.000000, 0.000000, 0.587107 -2840, 0.800184, 0.000000, 0.000000, 0.599754 -2841, 0.790662, 0.000000, 0.000000, 0.612253 -2842, 0.780944, 0.000000, 0.000000, 0.624601 -2843, 0.771034, 0.000000, 0.000000, 0.636794 -2844, 0.760933, 0.000000, 0.000000, 0.648830 -2845, 0.750644, 0.000000, 0.000000, 0.660707 -2846, 0.740170, 0.000000, 0.000000, 0.672420 -2847, 0.729513, 0.000000, 0.000000, 0.683967 -2848, 0.718676, 0.000000, 0.000000, 0.695345 -2849, 0.707662, 0.000000, 0.000000, 0.706551 -2850, 0.696473, 0.000000, 0.000000, 0.717583 -2851, 0.685112, 0.000000, 0.000000, 0.728438 -2852, 0.673582, 0.000000, 0.000000, 0.739113 -2853, 0.661885, 0.000000, 0.000000, 0.749605 -2854, 0.650025, 0.000000, 0.000000, 0.759913 -2855, 0.638005, 0.000000, 0.000000, 0.770032 -2856, 0.625827, 0.000000, 0.000000, 0.779962 -2857, 0.613495, 0.000000, 0.000000, 0.789699 -2858, 0.601011, 0.000000, 0.000000, 0.799241 -2859, 0.588378, 0.000000, 0.000000, 0.808586 -2860, 0.575601, 0.000000, 0.000000, 0.817731 -2861, 0.562681, 0.000000, 0.000000, 0.826674 -2862, 0.549622, 0.000000, 0.000000, 0.835413 -2863, 0.536428, 0.000000, 0.000000, 0.843946 -2864, 0.523101, 0.000000, 0.000000, 0.852270 -2865, 0.509645, 0.000000, 0.000000, 0.860385 -2866, 0.496064, 0.000000, 0.000000, 0.868286 -2867, 0.482359, 0.000000, 0.000000, 0.875973 -2868, 0.468536, 0.000000, 0.000000, 0.883444 -2869, 0.454597, 0.000000, 0.000000, 0.890697 -2870, 0.440546, 0.000000, 0.000000, 0.897730 -2871, 0.426386, 0.000000, 0.000000, 0.904541 -2872, 0.412121, 0.000000, 0.000000, 0.911129 -2873, 0.397753, 0.000000, 0.000000, 0.917492 -2874, 0.383288, 0.000000, 0.000000, 0.923629 -2875, 0.368728, 0.000000, 0.000000, 0.929537 -2876, 0.354077, 0.000000, 0.000000, 0.935216 -2877, 0.339339, 0.000000, 0.000000, 0.940664 -2878, 0.324517, 0.000000, 0.000000, 0.945880 -2879, 0.309615, 0.000000, 0.000000, 0.950862 -2880, 0.294636, 0.000000, 0.000000, 0.955610 -2881, 0.279585, 0.000000, 0.000000, 0.960121 -2882, 0.264464, 0.000000, 0.000000, 0.964396 -2883, 0.249278, 0.000000, 0.000000, 0.968432 -2884, 0.234031, 0.000000, 0.000000, 0.972229 -2885, 0.218726, 0.000000, 0.000000, 0.975786 -2886, 0.203367, 0.000000, 0.000000, 0.979103 -2887, 0.187958, 0.000000, 0.000000, 0.982177 -2888, 0.172502, 0.000000, 0.000000, 0.985009 -2889, 0.157003, 0.000000, 0.000000, 0.987598 -2890, 0.141466, 0.000000, 0.000000, 0.989943 -2891, 0.125894, 0.000000, 0.000000, 0.992044 -2892, 0.110291, 0.000000, 0.000000, 0.993899 -2893, 0.094661, 0.000000, 0.000000, 0.995510 -2894, 0.079007, 0.000000, 0.000000, 0.996874 -2895, 0.063334, 0.000000, 0.000000, 0.997992 -2896, 0.047645, 0.000000, 0.000000, 0.998864 -2897, 0.031945, 0.000000, 0.000000, 0.999490 -2898, 0.016236, 0.000000, 0.000000, 0.999868 -2899, 0.000524, 0.000000, 0.000000, 1.000000 -2900, -0.015189, -0.000000, 0.000000, 0.999885 -2901, -0.030898, -0.000000, 0.000000, 0.999523 -2902, -0.046599, -0.000000, 0.000000, 0.998914 -2903, -0.062289, -0.000000, 0.000000, 0.998058 -2904, -0.077963, -0.000000, 0.000000, 0.996956 -2905, -0.093618, -0.000000, 0.000000, 0.995608 -2906, -0.109250, -0.000000, 0.000000, 0.994014 -2907, -0.124855, -0.000000, 0.000000, 0.992175 -2908, -0.140429, -0.000000, 0.000000, 0.990091 -2909, -0.155969, -0.000000, 0.000000, 0.987762 -2910, -0.171470, -0.000000, 0.000000, 0.985189 -2911, -0.186929, -0.000000, 0.000000, 0.982374 -2912, -0.202341, -0.000000, 0.000000, 0.979315 -2913, -0.217704, -0.000000, 0.000000, 0.976015 -2914, -0.233012, -0.000000, 0.000000, 0.972474 -2915, -0.248264, -0.000000, 0.000000, 0.968692 -2916, -0.263454, -0.000000, 0.000000, 0.964672 -2917, -0.278579, -0.000000, 0.000000, 0.960413 -2918, -0.293635, -0.000000, 0.000000, 0.955918 -2919, -0.308618, -0.000000, 0.000000, 0.951186 -2920, -0.323526, -0.000000, 0.000000, 0.946219 -2921, -0.338354, -0.000000, 0.000000, 0.941019 -2922, -0.353098, -0.000000, 0.000000, 0.935587 -2923, -0.367754, -0.000000, 0.000000, 0.929923 -2924, -0.382320, -0.000000, 0.000000, 0.924030 -2925, -0.396792, -0.000000, 0.000000, 0.917908 -2926, -0.411166, -0.000000, 0.000000, 0.911561 -2927, -0.425438, -0.000000, 0.000000, 0.904988 -2928, -0.439605, -0.000000, 0.000000, 0.898191 -2929, -0.453664, -0.000000, 0.000000, 0.891173 -2930, -0.467610, -0.000000, 0.000000, 0.883935 -2931, -0.481442, -0.000000, 0.000000, 0.876478 -2932, -0.495154, -0.000000, 0.000000, 0.868805 -2933, -0.508744, -0.000000, 0.000000, 0.860918 -2934, -0.522208, -0.000000, 0.000000, 0.852818 -2935, -0.535544, -0.000000, 0.000000, 0.844507 -2936, -0.548747, -0.000000, 0.000000, 0.835988 -2937, -0.561815, -0.000000, 0.000000, 0.827263 -2938, -0.574744, -0.000000, 0.000000, 0.818333 -2939, -0.587531, -0.000000, 0.000000, 0.809202 -2940, -0.600173, -0.000000, 0.000000, 0.799870 -2941, -0.612667, -0.000000, 0.000000, 0.790341 -2942, -0.625010, -0.000000, 0.000000, 0.780617 -2943, -0.637198, -0.000000, 0.000000, 0.770700 -2944, -0.649229, -0.000000, 0.000000, 0.760593 -2945, -0.661100, -0.000000, 0.000000, 0.750298 -2946, -0.672807, -0.000000, 0.000000, 0.739818 -2947, -0.684349, -0.000000, 0.000000, 0.729155 -2948, -0.695721, -0.000000, 0.000000, 0.718312 -2949, -0.706922, -0.000000, 0.000000, 0.707292 -2950, -0.717948, -0.000000, 0.000000, 0.696097 -2951, -0.728797, -0.000000, 0.000000, 0.684730 -2952, -0.739465, -0.000000, 0.000000, 0.673195 -2953, -0.749952, -0.000000, 0.000000, 0.661493 -2954, -0.760253, -0.000000, 0.000000, 0.649627 -2955, -0.770366, -0.000000, 0.000000, 0.637602 -2956, -0.780290, -0.000000, 0.000000, 0.625418 -2957, -0.790020, -0.000000, 0.000000, 0.613081 -2958, -0.799556, -0.000000, 0.000000, 0.600592 -2959, -0.808894, -0.000000, 0.000000, 0.587955 -2960, -0.818032, -0.000000, 0.000000, 0.575172 -2961, -0.826969, -0.000000, 0.000000, 0.562248 -2962, -0.835701, -0.000000, 0.000000, 0.549185 -2963, -0.844227, -0.000000, 0.000000, 0.535986 -2964, -0.852544, -0.000000, 0.000000, 0.522655 -2965, -0.860651, -0.000000, 0.000000, 0.509195 -2966, -0.868546, -0.000000, 0.000000, 0.495609 -2967, -0.876226, -0.000000, 0.000000, 0.481901 -2968, -0.883690, -0.000000, 0.000000, 0.468073 -2969, -0.890935, -0.000000, 0.000000, 0.454130 -2970, -0.897961, -0.000000, 0.000000, 0.440076 -2971, -0.904765, -0.000000, 0.000000, 0.425912 -2972, -0.911345, -0.000000, 0.000000, 0.411643 -2973, -0.917701, -0.000000, 0.000000, 0.397273 -2974, -0.923829, -0.000000, 0.000000, 0.382804 -2975, -0.929730, -0.000000, 0.000000, 0.368241 -2976, -0.935401, -0.000000, 0.000000, 0.353588 -2977, -0.940842, -0.000000, 0.000000, 0.338846 -2978, -0.946050, -0.000000, 0.000000, 0.324021 -2979, -0.951024, -0.000000, 0.000000, 0.309117 -2980, -0.955764, -0.000000, 0.000000, 0.294135 -2981, -0.960267, -0.000000, 0.000000, 0.279082 -2982, -0.964534, -0.000000, 0.000000, 0.263959 -2983, -0.968562, -0.000000, 0.000000, 0.248771 -2984, -0.972352, -0.000000, 0.000000, 0.233522 -2985, -0.975901, -0.000000, 0.000000, 0.218215 -2986, -0.979209, -0.000000, 0.000000, 0.202854 -2987, -0.982275, -0.000000, 0.000000, 0.187443 -2988, -0.985099, -0.000000, 0.000000, 0.171986 -2989, -0.987680, -0.000000, 0.000000, 0.156486 -2990, -0.990017, -0.000000, 0.000000, 0.140948 -2991, -0.992109, -0.000000, 0.000000, 0.125375 -2992, -0.993957, -0.000000, 0.000000, 0.109771 -2993, -0.995559, -0.000000, 0.000000, 0.094140 -2994, -0.996915, -0.000000, 0.000000, 0.078485 -2995, -0.998025, -0.000000, 0.000000, 0.062811 -2996, -0.998889, -0.000000, 0.000000, 0.047122 -2997, -0.999506, -0.000000, 0.000000, 0.031421 -2998, -0.999877, -0.000000, 0.000000, 0.015713 -2999, -1.000000, 0.000000, -0.000000, -0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 0.999877, 0.000000, 0.000000, 0.015713 + 0.999506, 0.000000, 0.000000, 0.031421 + 0.998889, 0.000000, 0.000000, 0.047122 + 0.998025, 0.000000, 0.000000, 0.062811 + 0.996915, 0.000000, 0.000000, 0.078485 + 0.995559, 0.000000, 0.000000, 0.094140 + 0.993957, 0.000000, 0.000000, 0.109771 + 0.992109, 0.000000, 0.000000, 0.125375 + 0.990017, 0.000000, 0.000000, 0.140948 + 0.987680, 0.000000, 0.000000, 0.156486 + 0.985099, 0.000000, 0.000000, 0.171986 + 0.982275, 0.000000, 0.000000, 0.187443 + 0.979209, 0.000000, 0.000000, 0.202854 + 0.975901, 0.000000, 0.000000, 0.218215 + 0.972352, 0.000000, 0.000000, 0.233522 + 0.968562, 0.000000, 0.000000, 0.248771 + 0.964534, 0.000000, 0.000000, 0.263959 + 0.960267, 0.000000, 0.000000, 0.279082 + 0.955764, 0.000000, 0.000000, 0.294135 + 0.951024, 0.000000, 0.000000, 0.309117 + 0.946050, 0.000000, 0.000000, 0.324021 + 0.940842, 0.000000, 0.000000, 0.338846 + 0.935401, 0.000000, 0.000000, 0.353588 + 0.929730, 0.000000, 0.000000, 0.368241 + 0.923829, 0.000000, 0.000000, 0.382804 + 0.917701, 0.000000, 0.000000, 0.397273 + 0.911345, 0.000000, 0.000000, 0.411643 + 0.904765, 0.000000, 0.000000, 0.425912 + 0.897961, 0.000000, 0.000000, 0.440076 + 0.890935, 0.000000, 0.000000, 0.454130 + 0.883690, 0.000000, 0.000000, 0.468073 + 0.876226, 0.000000, 0.000000, 0.481901 + 0.868546, 0.000000, 0.000000, 0.495609 + 0.860651, 0.000000, 0.000000, 0.509195 + 0.852544, 0.000000, 0.000000, 0.522655 + 0.844227, 0.000000, 0.000000, 0.535986 + 0.835701, 0.000000, 0.000000, 0.549185 + 0.826969, 0.000000, 0.000000, 0.562248 + 0.818032, 0.000000, 0.000000, 0.575172 + 0.808894, 0.000000, 0.000000, 0.587955 + 0.799556, 0.000000, 0.000000, 0.600592 + 0.790020, 0.000000, 0.000000, 0.613081 + 0.780290, 0.000000, 0.000000, 0.625418 + 0.770366, 0.000000, 0.000000, 0.637602 + 0.760253, 0.000000, 0.000000, 0.649627 + 0.749952, 0.000000, 0.000000, 0.661493 + 0.739465, 0.000000, 0.000000, 0.673195 + 0.728797, 0.000000, 0.000000, 0.684730 + 0.717948, 0.000000, 0.000000, 0.696097 + 0.706922, 0.000000, 0.000000, 0.707292 + 0.695721, 0.000000, 0.000000, 0.718312 + 0.684349, 0.000000, 0.000000, 0.729155 + 0.672807, 0.000000, 0.000000, 0.739818 + 0.661100, 0.000000, 0.000000, 0.750298 + 0.649229, 0.000000, 0.000000, 0.760593 + 0.637198, 0.000000, 0.000000, 0.770700 + 0.625010, 0.000000, 0.000000, 0.780617 + 0.612667, 0.000000, 0.000000, 0.790341 + 0.600173, 0.000000, 0.000000, 0.799870 + 0.587531, 0.000000, 0.000000, 0.809202 + 0.574744, 0.000000, 0.000000, 0.818333 + 0.561815, 0.000000, 0.000000, 0.827263 + 0.548747, 0.000000, 0.000000, 0.835988 + 0.535544, 0.000000, 0.000000, 0.844507 + 0.522208, 0.000000, 0.000000, 0.852818 + 0.508744, 0.000000, 0.000000, 0.860918 + 0.495154, 0.000000, 0.000000, 0.868805 + 0.481442, 0.000000, 0.000000, 0.876478 + 0.467610, 0.000000, 0.000000, 0.883935 + 0.453664, 0.000000, 0.000000, 0.891173 + 0.439605, 0.000000, 0.000000, 0.898191 + 0.425438, 0.000000, 0.000000, 0.904988 + 0.411166, 0.000000, 0.000000, 0.911561 + 0.396792, 0.000000, 0.000000, 0.917908 + 0.382320, 0.000000, 0.000000, 0.924030 + 0.367754, 0.000000, 0.000000, 0.929923 + 0.353098, 0.000000, 0.000000, 0.935587 + 0.338354, 0.000000, 0.000000, 0.941019 + 0.323526, 0.000000, 0.000000, 0.946219 + 0.308618, 0.000000, 0.000000, 0.951186 + 0.293635, 0.000000, 0.000000, 0.955918 + 0.278579, 0.000000, 0.000000, 0.960413 + 0.263454, 0.000000, 0.000000, 0.964672 + 0.248264, 0.000000, 0.000000, 0.968692 + 0.233012, 0.000000, 0.000000, 0.972474 + 0.217704, 0.000000, 0.000000, 0.976015 + 0.202341, 0.000000, 0.000000, 0.979315 + 0.186929, 0.000000, 0.000000, 0.982374 + 0.171470, 0.000000, 0.000000, 0.985189 + 0.155969, 0.000000, 0.000000, 0.987762 + 0.140429, 0.000000, 0.000000, 0.990091 + 0.124855, 0.000000, 0.000000, 0.992175 + 0.109250, 0.000000, 0.000000, 0.994014 + 0.093618, 0.000000, 0.000000, 0.995608 + 0.077963, 0.000000, 0.000000, 0.996956 + 0.062289, 0.000000, 0.000000, 0.998058 + 0.046599, 0.000000, 0.000000, 0.998914 + 0.030898, 0.000000, 0.000000, 0.999523 + 0.015189, 0.000000, 0.000000, 0.999885 + -0.000524, -0.000000, 0.000000, 1.000000 + -0.016236, -0.000000, 0.000000, 0.999868 + -0.031945, -0.000000, 0.000000, 0.999490 + -0.047645, -0.000000, 0.000000, 0.998864 + -0.063334, -0.000000, 0.000000, 0.997992 + -0.079007, -0.000000, 0.000000, 0.996874 + -0.094661, -0.000000, 0.000000, 0.995510 + -0.110291, -0.000000, 0.000000, 0.993899 + -0.125894, -0.000000, 0.000000, 0.992044 + -0.141466, -0.000000, 0.000000, 0.989943 + -0.157003, -0.000000, 0.000000, 0.987598 + -0.172502, -0.000000, 0.000000, 0.985009 + -0.187958, -0.000000, 0.000000, 0.982177 + -0.203367, -0.000000, 0.000000, 0.979103 + -0.218726, -0.000000, 0.000000, 0.975786 + -0.234031, -0.000000, 0.000000, 0.972229 + -0.249278, -0.000000, 0.000000, 0.968432 + -0.264464, -0.000000, 0.000000, 0.964396 + -0.279585, -0.000000, 0.000000, 0.960121 + -0.294636, -0.000000, 0.000000, 0.955610 + -0.309615, -0.000000, 0.000000, 0.950862 + -0.324517, -0.000000, 0.000000, 0.945880 + -0.339339, -0.000000, 0.000000, 0.940664 + -0.354077, -0.000000, 0.000000, 0.935216 + -0.368728, -0.000000, 0.000000, 0.929537 + -0.383288, -0.000000, 0.000000, 0.923629 + -0.397753, -0.000000, 0.000000, 0.917492 + -0.412121, -0.000000, 0.000000, 0.911129 + -0.426386, -0.000000, 0.000000, 0.904541 + -0.440546, -0.000000, 0.000000, 0.897730 + -0.454597, -0.000000, 0.000000, 0.890697 + -0.468536, -0.000000, 0.000000, 0.883444 + -0.482359, -0.000000, 0.000000, 0.875973 + -0.496064, -0.000000, 0.000000, 0.868286 + -0.509645, -0.000000, 0.000000, 0.860385 + -0.523101, -0.000000, 0.000000, 0.852270 + -0.536428, -0.000000, 0.000000, 0.843946 + -0.549622, -0.000000, 0.000000, 0.835413 + -0.562681, -0.000000, 0.000000, 0.826674 + -0.575601, -0.000000, 0.000000, 0.817731 + -0.588378, -0.000000, 0.000000, 0.808586 + -0.601011, -0.000000, 0.000000, 0.799241 + -0.613495, -0.000000, 0.000000, 0.789699 + -0.625827, -0.000000, 0.000000, 0.779962 + -0.638005, -0.000000, 0.000000, 0.770032 + -0.650025, -0.000000, 0.000000, 0.759913 + -0.661885, -0.000000, 0.000000, 0.749605 + -0.673582, -0.000000, 0.000000, 0.739113 + -0.685112, -0.000000, 0.000000, 0.728438 + -0.696473, -0.000000, 0.000000, 0.717583 + -0.707662, -0.000000, 0.000000, 0.706551 + -0.718676, -0.000000, 0.000000, 0.695345 + -0.729513, -0.000000, 0.000000, 0.683967 + -0.740170, -0.000000, 0.000000, 0.672420 + -0.750644, -0.000000, 0.000000, 0.660707 + -0.760933, -0.000000, 0.000000, 0.648830 + -0.771034, -0.000000, 0.000000, 0.636794 + -0.780944, -0.000000, 0.000000, 0.624601 + -0.790662, -0.000000, 0.000000, 0.612253 + -0.800184, -0.000000, 0.000000, 0.599754 + -0.809509, -0.000000, 0.000000, 0.587107 + -0.818634, -0.000000, 0.000000, 0.574315 + -0.827557, -0.000000, 0.000000, 0.561381 + -0.836276, -0.000000, 0.000000, 0.548309 + -0.844788, -0.000000, 0.000000, 0.535101 + -0.853091, -0.000000, 0.000000, 0.521761 + -0.861184, -0.000000, 0.000000, 0.508293 + -0.869065, -0.000000, 0.000000, 0.494699 + -0.876730, -0.000000, 0.000000, 0.480982 + -0.884179, -0.000000, 0.000000, 0.467147 + -0.891410, -0.000000, 0.000000, 0.453197 + -0.898421, -0.000000, 0.000000, 0.439135 + -0.905210, -0.000000, 0.000000, 0.424964 + -0.911776, -0.000000, 0.000000, 0.410688 + -0.918116, -0.000000, 0.000000, 0.396311 + -0.924230, -0.000000, 0.000000, 0.381836 + -0.930115, -0.000000, 0.000000, 0.367267 + -0.935771, -0.000000, 0.000000, 0.352607 + -0.941196, -0.000000, 0.000000, 0.337861 + -0.946389, -0.000000, 0.000000, 0.323030 + -0.951347, -0.000000, 0.000000, 0.308120 + -0.956071, -0.000000, 0.000000, 0.293134 + -0.960559, -0.000000, 0.000000, 0.278076 + -0.964810, -0.000000, 0.000000, 0.262948 + -0.968822, -0.000000, 0.000000, 0.247756 + -0.972596, -0.000000, 0.000000, 0.232503 + -0.976129, -0.000000, 0.000000, 0.217192 + -0.979421, -0.000000, 0.000000, 0.201828 + -0.982471, -0.000000, 0.000000, 0.186414 + -0.985279, -0.000000, 0.000000, 0.170954 + -0.987844, -0.000000, 0.000000, 0.155451 + -0.990164, -0.000000, 0.000000, 0.139911 + -0.992240, -0.000000, 0.000000, 0.124335 + -0.994071, -0.000000, 0.000000, 0.108729 + -0.995657, -0.000000, 0.000000, 0.093097 + -0.996997, -0.000000, 0.000000, 0.077441 + -0.998091, -0.000000, 0.000000, 0.061766 + -0.998938, -0.000000, 0.000000, 0.046076 + -0.999539, -0.000000, 0.000000, 0.030374 + -0.999892, -0.000000, 0.000000, 0.014665 + -0.999999, 0.000000, -0.000000, -0.001048 + -0.999860, 0.000000, -0.000000, -0.016760 + -0.999473, 0.000000, -0.000000, -0.032468 + -0.998839, 0.000000, -0.000000, -0.048169 + -0.997959, 0.000000, -0.000000, -0.063857 + -0.996833, 0.000000, -0.000000, -0.079529 + -0.995460, 0.000000, -0.000000, -0.095182 + -0.993841, 0.000000, -0.000000, -0.110812 + -0.991978, 0.000000, -0.000000, -0.126414 + -0.989869, 0.000000, -0.000000, -0.141985 + -0.987516, 0.000000, -0.000000, -0.157521 + -0.984919, 0.000000, -0.000000, -0.173018 + -0.982079, 0.000000, -0.000000, -0.188472 + -0.978996, 0.000000, -0.000000, -0.203880 + -0.975672, 0.000000, -0.000000, -0.219237 + -0.972106, 0.000000, -0.000000, -0.234540 + -0.968301, 0.000000, -0.000000, -0.249786 + -0.964257, 0.000000, -0.000000, -0.264969 + -0.959975, 0.000000, -0.000000, -0.280087 + -0.955455, 0.000000, -0.000000, -0.295136 + -0.950700, 0.000000, -0.000000, -0.310113 + -0.945710, 0.000000, -0.000000, -0.325012 + -0.940486, 0.000000, -0.000000, -0.339832 + -0.935031, 0.000000, -0.000000, -0.354567 + -0.929344, 0.000000, -0.000000, -0.369215 + -0.923428, 0.000000, -0.000000, -0.383772 + -0.917284, 0.000000, -0.000000, -0.398234 + -0.910913, 0.000000, -0.000000, -0.412598 + -0.904318, 0.000000, -0.000000, -0.426860 + -0.897499, 0.000000, -0.000000, -0.441016 + -0.890459, 0.000000, -0.000000, -0.455064 + -0.883199, 0.000000, -0.000000, -0.468999 + -0.875721, 0.000000, -0.000000, -0.482818 + -0.868026, 0.000000, -0.000000, -0.496518 + -0.860117, 0.000000, -0.000000, -0.510096 + -0.851996, 0.000000, -0.000000, -0.523548 + -0.843665, 0.000000, -0.000000, -0.536870 + -0.835125, 0.000000, -0.000000, -0.550060 + -0.826379, 0.000000, -0.000000, -0.563114 + -0.817429, 0.000000, -0.000000, -0.576029 + -0.808277, 0.000000, -0.000000, -0.588802 + -0.798926, 0.000000, -0.000000, -0.601429 + -0.789377, 0.000000, -0.000000, -0.613908 + -0.779634, 0.000000, -0.000000, -0.626235 + -0.769698, 0.000000, -0.000000, -0.638408 + -0.759572, 0.000000, -0.000000, -0.650423 + -0.749258, 0.000000, -0.000000, -0.662278 + -0.738760, 0.000000, -0.000000, -0.673969 + -0.728079, 0.000000, -0.000000, -0.685493 + -0.717218, 0.000000, -0.000000, -0.696849 + -0.706180, 0.000000, -0.000000, -0.708032 + -0.694968, 0.000000, -0.000000, -0.719041 + -0.683584, 0.000000, -0.000000, -0.729872 + -0.672032, 0.000000, -0.000000, -0.740522 + -0.660313, 0.000000, -0.000000, -0.750990 + -0.648432, 0.000000, -0.000000, -0.761273 + -0.636390, 0.000000, -0.000000, -0.771367 + -0.624192, 0.000000, -0.000000, -0.781271 + -0.611839, 0.000000, -0.000000, -0.790983 + -0.599335, 0.000000, -0.000000, -0.800498 + -0.586683, 0.000000, -0.000000, -0.809817 + -0.573886, 0.000000, -0.000000, -0.818935 + -0.560948, 0.000000, -0.000000, -0.827851 + -0.547871, 0.000000, -0.000000, -0.836563 + -0.534659, 0.000000, -0.000000, -0.845068 + -0.521315, 0.000000, -0.000000, -0.853365 + -0.507842, 0.000000, -0.000000, -0.861450 + -0.494243, 0.000000, -0.000000, -0.869324 + -0.480523, 0.000000, -0.000000, -0.876982 + -0.466684, 0.000000, -0.000000, -0.884424 + -0.452730, 0.000000, -0.000000, -0.891648 + -0.438664, 0.000000, -0.000000, -0.898651 + -0.424490, 0.000000, -0.000000, -0.905433 + -0.410211, 0.000000, -0.000000, -0.911991 + -0.395830, 0.000000, -0.000000, -0.918324 + -0.381352, 0.000000, -0.000000, -0.924430 + -0.366780, 0.000000, -0.000000, -0.930308 + -0.352117, 0.000000, -0.000000, -0.935956 + -0.337368, 0.000000, -0.000000, -0.941373 + -0.322535, 0.000000, -0.000000, -0.946558 + -0.307622, 0.000000, -0.000000, -0.951509 + -0.292633, 0.000000, -0.000000, -0.956225 + -0.277572, 0.000000, -0.000000, -0.960705 + -0.262443, 0.000000, -0.000000, -0.964947 + -0.247249, 0.000000, -0.000000, -0.968952 + -0.231994, 0.000000, -0.000000, -0.972717 + -0.216681, 0.000000, -0.000000, -0.976242 + -0.201315, 0.000000, -0.000000, -0.979527 + -0.185899, 0.000000, -0.000000, -0.982569 + -0.170438, 0.000000, -0.000000, -0.985368 + -0.154934, 0.000000, -0.000000, -0.987925 + -0.139392, 0.000000, -0.000000, -0.990237 + -0.123816, 0.000000, -0.000000, -0.992305 + -0.108209, 0.000000, -0.000000, -0.994128 + -0.092575, 0.000000, -0.000000, -0.995706 + -0.076919, 0.000000, -0.000000, -0.997037 + -0.061243, 0.000000, -0.000000, -0.998123 + -0.045553, 0.000000, -0.000000, -0.998962 + -0.029851, 0.000000, -0.000000, -0.999554 + -0.014141, 0.000000, -0.000000, -0.999900 + 0.001571, 0.000000, 0.000000, -0.999999 + 0.017284, 0.000000, 0.000000, -0.999851 + 0.032992, 0.000000, 0.000000, -0.999456 + 0.048692, 0.000000, 0.000000, -0.998814 + 0.064380, 0.000000, 0.000000, -0.997925 + 0.080052, 0.000000, 0.000000, -0.996791 + 0.095704, 0.000000, 0.000000, -0.995410 + 0.111332, 0.000000, 0.000000, -0.993783 + 0.126934, 0.000000, 0.000000, -0.991911 + 0.142503, 0.000000, 0.000000, -0.989794 + 0.158038, 0.000000, 0.000000, -0.987433 + 0.173534, 0.000000, 0.000000, -0.984828 + 0.188986, 0.000000, 0.000000, -0.981980 + 0.204392, 0.000000, 0.000000, -0.978889 + 0.219748, 0.000000, 0.000000, -0.975557 + 0.235049, 0.000000, 0.000000, -0.971983 + 0.250293, 0.000000, 0.000000, -0.968170 + 0.265474, 0.000000, 0.000000, -0.964118 + 0.280590, 0.000000, 0.000000, -0.959828 + 0.295637, 0.000000, 0.000000, -0.955300 + 0.310611, 0.000000, 0.000000, -0.950537 + 0.325508, 0.000000, 0.000000, -0.945539 + 0.340324, 0.000000, 0.000000, -0.940308 + 0.355057, 0.000000, 0.000000, -0.934845 + 0.369702, 0.000000, 0.000000, -0.929150 + 0.384256, 0.000000, 0.000000, -0.923227 + 0.398714, 0.000000, 0.000000, -0.917075 + 0.413075, 0.000000, 0.000000, -0.910697 + 0.427333, 0.000000, 0.000000, -0.904094 + 0.441486, 0.000000, 0.000000, -0.897268 + 0.455530, 0.000000, 0.000000, -0.890220 + 0.469461, 0.000000, 0.000000, -0.882953 + 0.483277, 0.000000, 0.000000, -0.875468 + 0.496973, 0.000000, 0.000000, -0.867766 + 0.510546, 0.000000, 0.000000, -0.859850 + 0.523994, 0.000000, 0.000000, -0.851722 + 0.537312, 0.000000, 0.000000, -0.843384 + 0.550497, 0.000000, 0.000000, -0.834837 + 0.563547, 0.000000, 0.000000, -0.826084 + 0.576457, 0.000000, 0.000000, -0.817127 + 0.589225, 0.000000, 0.000000, -0.807969 + 0.601848, 0.000000, 0.000000, -0.798611 + 0.614321, 0.000000, 0.000000, -0.789056 + 0.626644, 0.000000, 0.000000, -0.779306 + 0.638811, 0.000000, 0.000000, -0.769363 + 0.650821, 0.000000, 0.000000, -0.759231 + 0.662670, 0.000000, 0.000000, -0.748911 + 0.674356, 0.000000, 0.000000, -0.738407 + 0.685875, 0.000000, 0.000000, -0.727720 + 0.697224, 0.000000, 0.000000, -0.716853 + 0.708402, 0.000000, 0.000000, -0.705809 + 0.719404, 0.000000, 0.000000, -0.694591 + 0.730229, 0.000000, 0.000000, -0.683202 + 0.740874, 0.000000, 0.000000, -0.671644 + 0.751336, 0.000000, 0.000000, -0.659920 + 0.761612, 0.000000, 0.000000, -0.648033 + 0.771700, 0.000000, 0.000000, -0.635986 + 0.781598, 0.000000, 0.000000, -0.623782 + 0.791303, 0.000000, 0.000000, -0.611424 + 0.800812, 0.000000, 0.000000, -0.598915 + 0.810124, 0.000000, 0.000000, -0.586259 + 0.819235, 0.000000, 0.000000, -0.573457 + 0.828145, 0.000000, 0.000000, -0.560514 + 0.836850, 0.000000, 0.000000, -0.547433 + 0.845348, 0.000000, 0.000000, -0.534216 + 0.853638, 0.000000, 0.000000, -0.520868 + 0.861716, 0.000000, 0.000000, -0.507390 + 0.869582, 0.000000, 0.000000, -0.493788 + 0.877234, 0.000000, 0.000000, -0.480064 + 0.884668, 0.000000, 0.000000, -0.466221 + 0.891885, 0.000000, 0.000000, -0.452263 + 0.898881, 0.000000, 0.000000, -0.438193 + 0.905655, 0.000000, 0.000000, -0.424015 + 0.912206, 0.000000, 0.000000, -0.409733 + 0.918531, 0.000000, 0.000000, -0.395349 + 0.924629, 0.000000, 0.000000, -0.380868 + 0.930500, 0.000000, 0.000000, -0.366293 + 0.936140, 0.000000, 0.000000, -0.351627 + 0.941550, 0.000000, 0.000000, -0.336874 + 0.946727, 0.000000, 0.000000, -0.322039 + 0.951670, 0.000000, 0.000000, -0.307123 + 0.956378, 0.000000, 0.000000, -0.292132 + 0.960850, 0.000000, 0.000000, -0.277069 + 0.965085, 0.000000, 0.000000, -0.261938 + 0.969081, 0.000000, 0.000000, -0.246741 + 0.972839, 0.000000, 0.000000, -0.231484 + 0.976356, 0.000000, 0.000000, -0.216170 + 0.979632, 0.000000, 0.000000, -0.200802 + 0.982666, 0.000000, 0.000000, -0.185385 + 0.985458, 0.000000, 0.000000, -0.169922 + 0.988006, 0.000000, 0.000000, -0.154417 + 0.990310, 0.000000, 0.000000, -0.138873 + 0.992370, 0.000000, 0.000000, -0.123296 + 0.994185, 0.000000, 0.000000, -0.107688 + 0.995754, 0.000000, 0.000000, -0.092054 + 0.997078, 0.000000, 0.000000, -0.076396 + 0.998155, 0.000000, 0.000000, -0.060720 + 0.998986, 0.000000, 0.000000, -0.045029 + 0.999570, 0.000000, 0.000000, -0.029327 + 0.999907, 0.000000, 0.000000, -0.013618 + 0.999998, 0.000000, 0.000000, 0.002095 + 0.999841, 0.000000, 0.000000, 0.017807 + 0.999438, 0.000000, 0.000000, 0.033515 + 0.998788, 0.000000, 0.000000, 0.049215 + 0.997892, 0.000000, 0.000000, 0.064902 + 0.996749, 0.000000, 0.000000, 0.080574 + 0.995360, 0.000000, 0.000000, 0.096225 + 0.993725, 0.000000, 0.000000, 0.111853 + 0.991845, 0.000000, 0.000000, 0.127453 + 0.989720, 0.000000, 0.000000, 0.143022 + 0.987350, 0.000000, 0.000000, 0.158555 + 0.984737, 0.000000, 0.000000, 0.174049 + 0.981881, 0.000000, 0.000000, 0.189501 + 0.978782, 0.000000, 0.000000, 0.204905 + 0.975441, 0.000000, 0.000000, 0.220259 + 0.971860, 0.000000, 0.000000, 0.235558 + 0.968039, 0.000000, 0.000000, 0.250800 + 0.963979, 0.000000, 0.000000, 0.265979 + 0.959681, 0.000000, 0.000000, 0.281093 + 0.955145, 0.000000, 0.000000, 0.296137 + 0.950374, 0.000000, 0.000000, 0.311108 + 0.945369, 0.000000, 0.000000, 0.326003 + 0.940130, 0.000000, 0.000000, 0.340817 + 0.934659, 0.000000, 0.000000, 0.355547 + 0.928957, 0.000000, 0.000000, 0.370188 + 0.923025, 0.000000, 0.000000, 0.384739 + 0.916866, 0.000000, 0.000000, 0.399195 + 0.910481, 0.000000, 0.000000, 0.413552 + 0.903870, 0.000000, 0.000000, 0.427807 + 0.897037, 0.000000, 0.000000, 0.441956 + 0.889982, 0.000000, 0.000000, 0.455996 + 0.882707, 0.000000, 0.000000, 0.469924 + 0.875214, 0.000000, 0.000000, 0.483735 + 0.867506, 0.000000, 0.000000, 0.497427 + 0.859583, 0.000000, 0.000000, 0.510997 + 0.851447, 0.000000, 0.000000, 0.524440 + 0.843102, 0.000000, 0.000000, 0.537754 + 0.834549, 0.000000, 0.000000, 0.550934 + 0.825789, 0.000000, 0.000000, 0.563979 + 0.816825, 0.000000, 0.000000, 0.576885 + 0.807660, 0.000000, 0.000000, 0.589648 + 0.798296, 0.000000, 0.000000, 0.602266 + 0.788734, 0.000000, 0.000000, 0.614735 + 0.778978, 0.000000, 0.000000, 0.627052 + 0.769029, 0.000000, 0.000000, 0.639214 + 0.758890, 0.000000, 0.000000, 0.651219 + 0.748564, 0.000000, 0.000000, 0.663062 + 0.738053, 0.000000, 0.000000, 0.674742 + 0.727360, 0.000000, 0.000000, 0.686256 + 0.716488, 0.000000, 0.000000, 0.697600 + 0.705438, 0.000000, 0.000000, 0.708771 + 0.694214, 0.000000, 0.000000, 0.719768 + 0.682819, 0.000000, 0.000000, 0.730587 + 0.671256, 0.000000, 0.000000, 0.741226 + 0.659526, 0.000000, 0.000000, 0.751682 + 0.647634, 0.000000, 0.000000, 0.761952 + 0.635582, 0.000000, 0.000000, 0.772033 + 0.623373, 0.000000, 0.000000, 0.781925 + 0.611010, 0.000000, 0.000000, 0.791623 + 0.598496, 0.000000, 0.000000, 0.801126 + 0.585834, 0.000000, 0.000000, 0.810431 + 0.573028, 0.000000, 0.000000, 0.819536 + 0.560080, 0.000000, 0.000000, 0.828438 + 0.546994, 0.000000, 0.000000, 0.837136 + 0.533773, 0.000000, 0.000000, 0.845628 + 0.520420, 0.000000, 0.000000, 0.853910 + 0.506939, 0.000000, 0.000000, 0.861982 + 0.493332, 0.000000, 0.000000, 0.869841 + 0.479604, 0.000000, 0.000000, 0.877485 + 0.465757, 0.000000, 0.000000, 0.884912 + 0.451796, 0.000000, 0.000000, 0.892121 + 0.437722, 0.000000, 0.000000, 0.899110 + 0.423541, 0.000000, 0.000000, 0.905877 + 0.409255, 0.000000, 0.000000, 0.912420 + 0.394868, 0.000000, 0.000000, 0.918738 + 0.380384, 0.000000, 0.000000, 0.924829 + 0.365805, 0.000000, 0.000000, 0.930691 + 0.351137, 0.000000, 0.000000, 0.936324 + 0.336381, 0.000000, 0.000000, 0.941726 + 0.321543, 0.000000, 0.000000, 0.946895 + 0.306625, 0.000000, 0.000000, 0.951830 + 0.291631, 0.000000, 0.000000, 0.956531 + 0.276566, 0.000000, 0.000000, 0.960995 + 0.261432, 0.000000, 0.000000, 0.965222 + 0.246234, 0.000000, 0.000000, 0.969210 + 0.230975, 0.000000, 0.000000, 0.972960 + 0.215658, 0.000000, 0.000000, 0.976469 + 0.200289, 0.000000, 0.000000, 0.979737 + 0.184870, 0.000000, 0.000000, 0.982763 + 0.169405, 0.000000, 0.000000, 0.985546 + 0.153899, 0.000000, 0.000000, 0.988087 + 0.138355, 0.000000, 0.000000, 0.990383 + 0.122776, 0.000000, 0.000000, 0.992434 + 0.107167, 0.000000, 0.000000, 0.994241 + 0.091532, 0.000000, 0.000000, 0.995802 + 0.075874, 0.000000, 0.000000, 0.997117 + 0.060198, 0.000000, 0.000000, 0.998186 + 0.044506, 0.000000, 0.000000, 0.999009 + 0.028804, 0.000000, 0.000000, 0.999585 + 0.013094, 0.000000, 0.000000, 0.999914 + -0.002619, -0.000000, 0.000000, 0.999997 + -0.018331, -0.000000, 0.000000, 0.999832 + -0.034039, -0.000000, 0.000000, 0.999421 + -0.049738, -0.000000, 0.000000, 0.998762 + -0.065425, -0.000000, 0.000000, 0.997857 + -0.081096, -0.000000, 0.000000, 0.996706 + -0.096747, -0.000000, 0.000000, 0.995309 + -0.112373, -0.000000, 0.000000, 0.993666 + -0.127973, -0.000000, 0.000000, 0.991778 + -0.143540, -0.000000, 0.000000, 0.989644 + -0.159072, -0.000000, 0.000000, 0.987267 + -0.174565, -0.000000, 0.000000, 0.984646 + -0.190015, -0.000000, 0.000000, 0.981781 + -0.205418, -0.000000, 0.000000, 0.978674 + -0.220770, -0.000000, 0.000000, 0.975326 + -0.236067, -0.000000, 0.000000, 0.971737 + -0.251307, -0.000000, 0.000000, 0.967907 + -0.266484, -0.000000, 0.000000, 0.963839 + -0.281595, -0.000000, 0.000000, 0.959533 + -0.296637, -0.000000, 0.000000, 0.954990 + -0.311606, -0.000000, 0.000000, 0.950211 + -0.326498, -0.000000, 0.000000, 0.945198 + -0.341309, -0.000000, 0.000000, 0.939951 + -0.356036, -0.000000, 0.000000, 0.934472 + -0.370675, -0.000000, 0.000000, 0.928763 + -0.385222, -0.000000, 0.000000, 0.922824 + -0.399675, -0.000000, 0.000000, 0.916657 + -0.414029, -0.000000, 0.000000, 0.910264 + -0.428280, -0.000000, 0.000000, 0.903646 + -0.442426, -0.000000, 0.000000, 0.896805 + -0.456462, -0.000000, 0.000000, 0.889743 + -0.470386, -0.000000, 0.000000, 0.882461 + -0.484194, -0.000000, 0.000000, 0.874961 + -0.497882, -0.000000, 0.000000, 0.867245 + -0.511447, -0.000000, 0.000000, 0.859315 + -0.524886, -0.000000, 0.000000, 0.851173 + -0.538195, -0.000000, 0.000000, 0.842820 + -0.551371, -0.000000, 0.000000, 0.834260 + -0.564412, -0.000000, 0.000000, 0.825493 + -0.577313, -0.000000, 0.000000, 0.816523 + -0.590071, -0.000000, 0.000000, 0.807351 + -0.602684, -0.000000, 0.000000, 0.797980 + -0.615148, -0.000000, 0.000000, 0.788412 + -0.627460, -0.000000, 0.000000, 0.778649 + -0.639617, -0.000000, 0.000000, 0.768694 + -0.651616, -0.000000, 0.000000, 0.758549 + -0.663454, -0.000000, 0.000000, 0.748217 + -0.675129, -0.000000, 0.000000, 0.737700 + -0.686637, -0.000000, 0.000000, 0.727001 + -0.697975, -0.000000, 0.000000, 0.716122 + -0.709141, -0.000000, 0.000000, 0.705067 + -0.720132, -0.000000, 0.000000, 0.693837 + -0.730945, -0.000000, 0.000000, 0.682437 + -0.741577, -0.000000, 0.000000, 0.670867 + -0.752027, -0.000000, 0.000000, 0.659132 + -0.762291, -0.000000, 0.000000, 0.647235 + -0.772366, -0.000000, 0.000000, 0.635177 + -0.782251, -0.000000, 0.000000, 0.622963 + -0.791943, -0.000000, 0.000000, 0.610595 + -0.801439, -0.000000, 0.000000, 0.598076 + -0.810738, -0.000000, 0.000000, 0.585410 + -0.819836, -0.000000, 0.000000, 0.572599 + -0.828732, -0.000000, 0.000000, 0.559646 + -0.837423, -0.000000, 0.000000, 0.546556 + -0.845907, -0.000000, 0.000000, 0.533330 + -0.854183, -0.000000, 0.000000, 0.519973 + -0.862247, -0.000000, 0.000000, 0.506487 + -0.870099, -0.000000, 0.000000, 0.492877 + -0.877736, -0.000000, 0.000000, 0.479145 + -0.885156, -0.000000, 0.000000, 0.465294 + -0.892358, -0.000000, 0.000000, 0.451328 + -0.899339, -0.000000, 0.000000, 0.437251 + -0.906099, -0.000000, 0.000000, 0.423067 + -0.912634, -0.000000, 0.000000, 0.408777 + -0.918944, -0.000000, 0.000000, 0.394387 + -0.925028, -0.000000, 0.000000, 0.379899 + -0.930883, -0.000000, 0.000000, 0.365318 + -0.936508, -0.000000, 0.000000, 0.350646 + -0.941902, -0.000000, 0.000000, 0.335888 + -0.947063, -0.000000, 0.000000, 0.321047 + -0.951991, -0.000000, 0.000000, 0.306126 + -0.956683, -0.000000, 0.000000, 0.291130 + -0.961140, -0.000000, 0.000000, 0.276062 + -0.965359, -0.000000, 0.000000, 0.260926 + -0.969339, -0.000000, 0.000000, 0.245726 + -0.973081, -0.000000, 0.000000, 0.230465 + -0.976582, -0.000000, 0.000000, 0.215147 + -0.979842, -0.000000, 0.000000, 0.199776 + -0.982860, -0.000000, 0.000000, 0.184355 + -0.985635, -0.000000, 0.000000, 0.168889 + -0.988167, -0.000000, 0.000000, 0.153382 + -0.990455, -0.000000, 0.000000, 0.137836 + -0.992499, -0.000000, 0.000000, 0.122256 + -0.994297, -0.000000, 0.000000, 0.106647 + -0.995850, -0.000000, 0.000000, 0.091010 + -0.997157, -0.000000, 0.000000, 0.075352 + -0.998218, -0.000000, 0.000000, 0.059675 + -0.999032, -0.000000, 0.000000, 0.043983 + -0.999600, -0.000000, 0.000000, 0.028280 + -0.999921, -0.000000, 0.000000, 0.012570 + -0.999995, 0.000000, -0.000000, -0.003143 + -0.999822, 0.000000, -0.000000, -0.018855 + -0.999403, 0.000000, -0.000000, -0.034562 + -0.998736, 0.000000, -0.000000, -0.050261 + -0.997823, 0.000000, -0.000000, -0.065948 + -0.996664, 0.000000, -0.000000, -0.081618 + -0.995258, 0.000000, -0.000000, -0.097268 + -0.993607, 0.000000, -0.000000, -0.112894 + -0.991711, 0.000000, -0.000000, -0.128492 + -0.989569, 0.000000, -0.000000, -0.144058 + -0.987183, 0.000000, -0.000000, -0.159589 + -0.984554, 0.000000, -0.000000, -0.175081 + -0.981682, 0.000000, -0.000000, -0.190529 + -0.978567, 0.000000, -0.000000, -0.205930 + -0.975210, 0.000000, -0.000000, -0.221281 + -0.971613, 0.000000, -0.000000, -0.236576 + -0.967776, 0.000000, -0.000000, -0.251814 + -0.963700, 0.000000, -0.000000, -0.266989 + -0.959386, 0.000000, -0.000000, -0.282098 + -0.954835, 0.000000, -0.000000, -0.297138 + -0.950048, 0.000000, -0.000000, -0.312104 + -0.945027, 0.000000, -0.000000, -0.326993 + -0.939772, 0.000000, -0.000000, -0.341801 + -0.934286, 0.000000, -0.000000, -0.356525 + -0.928568, 0.000000, -0.000000, -0.371161 + -0.922622, 0.000000, -0.000000, -0.385706 + -0.916448, 0.000000, -0.000000, -0.400155 + -0.910047, 0.000000, -0.000000, -0.414505 + -0.903422, 0.000000, -0.000000, -0.428753 + -0.896573, 0.000000, -0.000000, -0.442895 + -0.889504, 0.000000, -0.000000, -0.456928 + -0.882214, 0.000000, -0.000000, -0.470848 + -0.874707, 0.000000, -0.000000, -0.484652 + -0.866984, 0.000000, -0.000000, -0.498336 + -0.859047, 0.000000, -0.000000, -0.511897 + -0.850898, 0.000000, -0.000000, -0.525332 + -0.842538, 0.000000, -0.000000, -0.538636 + -0.833971, 0.000000, -0.000000, -0.551808 + -0.825198, 0.000000, -0.000000, -0.564844 + -0.816221, 0.000000, -0.000000, -0.577740 + -0.807042, 0.000000, -0.000000, -0.590494 + -0.797664, 0.000000, -0.000000, -0.603102 + -0.788090, 0.000000, -0.000000, -0.615561 + -0.778320, 0.000000, -0.000000, -0.627867 + -0.768359, 0.000000, -0.000000, -0.640019 + -0.758208, 0.000000, -0.000000, -0.652013 + -0.747869, 0.000000, -0.000000, -0.663846 + -0.737346, 0.000000, -0.000000, -0.675515 + -0.726641, 0.000000, -0.000000, -0.687017 + -0.715757, 0.000000, -0.000000, -0.698350 + -0.704695, 0.000000, -0.000000, -0.709510 + -0.693460, 0.000000, -0.000000, -0.720495 + -0.682054, 0.000000, -0.000000, -0.731302 + -0.670479, 0.000000, -0.000000, -0.741929 + -0.658739, 0.000000, -0.000000, -0.752372 + -0.646835, 0.000000, -0.000000, -0.762630 + -0.634773, 0.000000, -0.000000, -0.772699 + -0.622553, 0.000000, -0.000000, -0.782577 + -0.610180, 0.000000, -0.000000, -0.792263 + -0.597656, 0.000000, -0.000000, -0.801752 + -0.584985, 0.000000, -0.000000, -0.811044 + -0.572169, 0.000000, -0.000000, -0.820136 + -0.559212, 0.000000, -0.000000, -0.829025 + -0.546117, 0.000000, -0.000000, -0.837709 + -0.532887, 0.000000, -0.000000, -0.846186 + -0.519526, 0.000000, -0.000000, -0.854455 + -0.506036, 0.000000, -0.000000, -0.862512 + -0.492421, 0.000000, -0.000000, -0.870357 + -0.478685, 0.000000, -0.000000, -0.877987 + -0.464830, 0.000000, -0.000000, -0.885400 + -0.450861, 0.000000, -0.000000, -0.892594 + -0.436780, 0.000000, -0.000000, -0.899568 + -0.422592, 0.000000, -0.000000, -0.906320 + -0.408299, 0.000000, -0.000000, -0.912848 + -0.393906, 0.000000, -0.000000, -0.919151 + -0.379415, 0.000000, -0.000000, -0.925227 + -0.364830, 0.000000, -0.000000, -0.931074 + -0.350156, 0.000000, -0.000000, -0.936692 + -0.335395, 0.000000, -0.000000, -0.942078 + -0.320551, 0.000000, -0.000000, -0.947231 + -0.305628, 0.000000, -0.000000, -0.952151 + -0.290629, 0.000000, -0.000000, -0.956836 + -0.275559, 0.000000, -0.000000, -0.961284 + -0.260421, 0.000000, -0.000000, -0.965495 + -0.245218, 0.000000, -0.000000, -0.969468 + -0.229955, 0.000000, -0.000000, -0.973201 + -0.214635, 0.000000, -0.000000, -0.976694 + -0.199262, 0.000000, -0.000000, -0.979946 + -0.183840, 0.000000, -0.000000, -0.982956 + -0.168373, 0.000000, -0.000000, -0.985723 + -0.152864, 0.000000, -0.000000, -0.988247 + -0.137317, 0.000000, -0.000000, -0.990527 + -0.121736, 0.000000, -0.000000, -0.992562 + -0.106126, 0.000000, -0.000000, -0.994353 + -0.090489, 0.000000, -0.000000, -0.995897 + -0.074830, 0.000000, -0.000000, -0.997196 + -0.059152, 0.000000, -0.000000, -0.998249 + -0.043459, 0.000000, -0.000000, -0.999055 + -0.027756, 0.000000, -0.000000, -0.999615 + -0.012046, 0.000000, -0.000000, -0.999927 + 0.003666, 0.000000, 0.000000, -0.999993 + 0.019378, 0.000000, 0.000000, -0.999812 + 0.035086, 0.000000, 0.000000, -0.999384 + 0.050784, 0.000000, 0.000000, -0.998710 + 0.066470, 0.000000, 0.000000, -0.997788 + 0.082140, 0.000000, 0.000000, -0.996621 + 0.097789, 0.000000, 0.000000, -0.995207 + 0.113414, 0.000000, 0.000000, -0.993548 + 0.129011, 0.000000, 0.000000, -0.991643 + 0.144577, 0.000000, 0.000000, -0.989494 + 0.160106, 0.000000, 0.000000, -0.987100 + 0.175596, 0.000000, 0.000000, -0.984462 + 0.191043, 0.000000, 0.000000, -0.981582 + 0.206443, 0.000000, 0.000000, -0.978459 + 0.221791, 0.000000, 0.000000, -0.975094 + 0.237085, 0.000000, 0.000000, -0.971489 + 0.252321, 0.000000, 0.000000, -0.967644 + 0.267494, 0.000000, 0.000000, -0.963560 + 0.282600, 0.000000, 0.000000, -0.959238 + 0.297638, 0.000000, 0.000000, -0.954679 + 0.312601, 0.000000, 0.000000, -0.949884 + 0.327488, 0.000000, 0.000000, -0.944855 + 0.342294, 0.000000, 0.000000, -0.939593 + 0.357015, 0.000000, 0.000000, -0.934099 + 0.371648, 0.000000, 0.000000, -0.928374 + 0.386189, 0.000000, 0.000000, -0.922420 + 0.400635, 0.000000, 0.000000, -0.916238 + 0.414982, 0.000000, 0.000000, -0.909830 + 0.429226, 0.000000, 0.000000, -0.903197 + 0.443365, 0.000000, 0.000000, -0.896341 + 0.457394, 0.000000, 0.000000, -0.889264 + 0.471310, 0.000000, 0.000000, -0.881968 + 0.485110, 0.000000, 0.000000, -0.874453 + 0.498790, 0.000000, 0.000000, -0.866723 + 0.512347, 0.000000, 0.000000, -0.858779 + 0.525777, 0.000000, 0.000000, -0.850622 + 0.539078, 0.000000, 0.000000, -0.842256 + 0.552245, 0.000000, 0.000000, -0.833682 + 0.565276, 0.000000, 0.000000, -0.824902 + 0.578168, 0.000000, 0.000000, -0.815918 + 0.590917, 0.000000, 0.000000, -0.806733 + 0.603519, 0.000000, 0.000000, -0.797348 + 0.615973, 0.000000, 0.000000, -0.787767 + 0.628275, 0.000000, 0.000000, -0.777991 + 0.640422, 0.000000, 0.000000, -0.768023 + 0.652410, 0.000000, 0.000000, -0.757866 + 0.664238, 0.000000, 0.000000, -0.747521 + 0.675901, 0.000000, 0.000000, -0.736992 + 0.687398, 0.000000, 0.000000, -0.726281 + 0.698725, 0.000000, 0.000000, -0.715391 + 0.709879, 0.000000, 0.000000, -0.704324 + 0.720858, 0.000000, 0.000000, -0.693083 + 0.731659, 0.000000, 0.000000, -0.681671 + 0.742280, 0.000000, 0.000000, -0.670090 + 0.752717, 0.000000, 0.000000, -0.658344 + 0.762968, 0.000000, 0.000000, -0.646436 + 0.773031, 0.000000, 0.000000, -0.634368 + 0.782903, 0.000000, 0.000000, -0.622143 + 0.792582, 0.000000, 0.000000, -0.609765 + 0.802065, 0.000000, 0.000000, -0.597236 + 0.811350, 0.000000, 0.000000, -0.584560 + 0.820435, 0.000000, 0.000000, -0.571740 + 0.829317, 0.000000, 0.000000, -0.558778 + 0.837995, 0.000000, 0.000000, -0.545678 + 0.846465, 0.000000, 0.000000, -0.532444 + 0.854727, 0.000000, 0.000000, -0.519078 + 0.862777, 0.000000, 0.000000, -0.505584 + 0.870615, 0.000000, 0.000000, -0.491965 + 0.878237, 0.000000, 0.000000, -0.478225 + 0.885643, 0.000000, 0.000000, -0.464366 + 0.892830, 0.000000, 0.000000, -0.450393 + 0.899797, 0.000000, 0.000000, -0.436309 + 0.906541, 0.000000, 0.000000, -0.422117 + 0.913062, 0.000000, 0.000000, -0.407821 + 0.919357, 0.000000, 0.000000, -0.393424 + 0.925425, 0.000000, 0.000000, -0.378930 + 0.931265, 0.000000, 0.000000, -0.364342 + 0.936875, 0.000000, 0.000000, -0.349665 + 0.942253, 0.000000, 0.000000, -0.334901 + 0.947399, 0.000000, 0.000000, -0.320055 + 0.952311, 0.000000, 0.000000, -0.305129 + 0.956988, 0.000000, 0.000000, -0.290128 + 0.961428, 0.000000, 0.000000, -0.275056 + 0.965631, 0.000000, 0.000000, -0.259915 + 0.969596, 0.000000, 0.000000, -0.244710 + 0.973322, 0.000000, 0.000000, -0.229445 + 0.976807, 0.000000, 0.000000, -0.214124 + 0.980050, 0.000000, 0.000000, -0.198749 + 0.983052, 0.000000, 0.000000, -0.183326 + 0.985811, 0.000000, 0.000000, -0.167857 + 0.988327, 0.000000, 0.000000, -0.152346 + 0.990599, 0.000000, 0.000000, -0.136798 + 0.992626, 0.000000, 0.000000, -0.121217 + 0.994408, 0.000000, 0.000000, -0.105605 + 0.995945, 0.000000, 0.000000, -0.089967 + 0.997235, 0.000000, 0.000000, -0.074307 + 0.998280, 0.000000, 0.000000, -0.058629 + 0.999078, 0.000000, 0.000000, -0.042936 + 0.999629, 0.000000, 0.000000, -0.027233 + 0.999934, 0.000000, 0.000000, -0.011523 + 0.999991, 0.000000, 0.000000, 0.004190 + 0.999802, 0.000000, 0.000000, 0.019902 + 0.999366, 0.000000, 0.000000, 0.035609 + 0.998683, 0.000000, 0.000000, 0.051307 + 0.997753, 0.000000, 0.000000, 0.066993 + 0.996578, 0.000000, 0.000000, 0.082662 + 0.995156, 0.000000, 0.000000, 0.098310 + 0.993488, 0.000000, 0.000000, 0.113935 + 0.991575, 0.000000, 0.000000, 0.129531 + 0.989418, 0.000000, 0.000000, 0.145095 + 0.987016, 0.000000, 0.000000, 0.160623 + 0.984370, 0.000000, 0.000000, 0.176112 + 0.981481, 0.000000, 0.000000, 0.191557 + 0.978350, 0.000000, 0.000000, 0.206955 + 0.974978, 0.000000, 0.000000, 0.222302 + 0.971365, 0.000000, 0.000000, 0.237594 + 0.967511, 0.000000, 0.000000, 0.252827 + 0.963419, 0.000000, 0.000000, 0.267998 + 0.959090, 0.000000, 0.000000, 0.283103 + 0.954523, 0.000000, 0.000000, 0.298138 + 0.949721, 0.000000, 0.000000, 0.313099 + 0.944684, 0.000000, 0.000000, 0.327983 + 0.939414, 0.000000, 0.000000, 0.342786 + 0.933912, 0.000000, 0.000000, 0.357504 + 0.928179, 0.000000, 0.000000, 0.372134 + 0.922217, 0.000000, 0.000000, 0.386672 + 0.916028, 0.000000, 0.000000, 0.401115 + 0.909612, 0.000000, 0.000000, 0.415458 + 0.902972, 0.000000, 0.000000, 0.429699 + 0.896109, 0.000000, 0.000000, 0.443834 + 0.889024, 0.000000, 0.000000, 0.457860 + 0.881721, 0.000000, 0.000000, 0.471772 + 0.874199, 0.000000, 0.000000, 0.485568 + 0.866462, 0.000000, 0.000000, 0.499244 + 0.858510, 0.000000, 0.000000, 0.512797 + 0.850347, 0.000000, 0.000000, 0.526223 + 0.841974, 0.000000, 0.000000, 0.539519 + 0.833392, 0.000000, 0.000000, 0.552682 + 0.824606, 0.000000, 0.000000, 0.565708 + 0.815615, 0.000000, 0.000000, 0.578595 + 0.806423, 0.000000, 0.000000, 0.591339 + 0.797032, 0.000000, 0.000000, 0.603937 + 0.787444, 0.000000, 0.000000, 0.616386 + 0.777662, 0.000000, 0.000000, 0.628682 + 0.767688, 0.000000, 0.000000, 0.640824 + 0.757524, 0.000000, 0.000000, 0.652807 + 0.747173, 0.000000, 0.000000, 0.664629 + 0.736638, 0.000000, 0.000000, 0.676287 + 0.725921, 0.000000, 0.000000, 0.687778 + 0.715025, 0.000000, 0.000000, 0.699099 + 0.703952, 0.000000, 0.000000, 0.710248 + 0.692705, 0.000000, 0.000000, 0.721221 + 0.681287, 0.000000, 0.000000, 0.732016 + 0.669701, 0.000000, 0.000000, 0.742631 + 0.657950, 0.000000, 0.000000, 0.753062 + 0.646036, 0.000000, 0.000000, 0.763307 + 0.633963, 0.000000, 0.000000, 0.773363 + 0.621733, 0.000000, 0.000000, 0.783229 + 0.609350, 0.000000, 0.000000, 0.792901 + 0.596816, 0.000000, 0.000000, 0.802378 + 0.584135, 0.000000, 0.000000, 0.811656 + 0.571310, 0.000000, 0.000000, 0.820734 + 0.558343, 0.000000, 0.000000, 0.829610 + 0.545239, 0.000000, 0.000000, 0.838280 + 0.532000, 0.000000, 0.000000, 0.846744 + 0.518630, 0.000000, 0.000000, 0.854999 + 0.505132, 0.000000, 0.000000, 0.863042 + 0.491509, 0.000000, 0.000000, 0.870872 + 0.477765, 0.000000, 0.000000, 0.878488 + 0.463902, 0.000000, 0.000000, 0.885886 + 0.449926, 0.000000, 0.000000, 0.893066 + 0.435838, 0.000000, 0.000000, 0.900025 + 0.421642, 0.000000, 0.000000, 0.906762 + 0.407343, 0.000000, 0.000000, 0.913275 + 0.392942, 0.000000, 0.000000, 0.919563 + 0.378445, 0.000000, 0.000000, 0.925624 + 0.363855, 0.000000, 0.000000, 0.931456 + 0.349174, 0.000000, 0.000000, 0.937058 + 0.334407, 0.000000, 0.000000, 0.942429 + 0.319558, 0.000000, 0.000000, 0.947567 + 0.304630, 0.000000, 0.000000, 0.952471 + 0.289627, 0.000000, 0.000000, 0.957140 + 0.274552, 0.000000, 0.000000, 0.961572 + 0.259409, 0.000000, 0.000000, 0.965767 + 0.244203, 0.000000, 0.000000, 0.969724 + 0.228936, 0.000000, 0.000000, 0.973442 + 0.213612, 0.000000, 0.000000, 0.976919 + 0.198236, 0.000000, 0.000000, 0.980154 + 0.182811, 0.000000, 0.000000, 0.983148 + 0.167340, 0.000000, 0.000000, 0.985899 + 0.151829, 0.000000, 0.000000, 0.988407 + 0.136279, 0.000000, 0.000000, 0.990670 + 0.120697, 0.000000, 0.000000, 0.992689 + 0.105084, 0.000000, 0.000000, 0.994463 + 0.089446, 0.000000, 0.000000, 0.995992 + 0.073785, 0.000000, 0.000000, 0.997274 + 0.058106, 0.000000, 0.000000, 0.998310 + 0.042413, 0.000000, 0.000000, 0.999100 + 0.026709, 0.000000, 0.000000, 0.999643 + 0.010999, 0.000000, 0.000000, 0.999940 + -0.004714, -0.000000, 0.000000, 0.999989 + -0.020426, -0.000000, 0.000000, 0.999791 + -0.036132, -0.000000, 0.000000, 0.999347 + -0.051830, -0.000000, 0.000000, 0.998656 + -0.067515, -0.000000, 0.000000, 0.997718 + -0.083184, -0.000000, 0.000000, 0.996534 + -0.098832, -0.000000, 0.000000, 0.995104 + -0.114455, -0.000000, 0.000000, 0.993428 + -0.130050, -0.000000, 0.000000, 0.991507 + -0.145613, -0.000000, 0.000000, 0.989342 + -0.161140, -0.000000, 0.000000, 0.986932 + -0.176628, -0.000000, 0.000000, 0.984278 + -0.192071, -0.000000, 0.000000, 0.981381 + -0.207468, -0.000000, 0.000000, 0.978242 + -0.222813, -0.000000, 0.000000, 0.974861 + -0.238103, -0.000000, 0.000000, 0.971240 + -0.253334, -0.000000, 0.000000, 0.967379 + -0.268503, -0.000000, 0.000000, 0.963279 + -0.283605, -0.000000, 0.000000, 0.958941 + -0.298638, -0.000000, 0.000000, 0.954367 + -0.313596, -0.000000, 0.000000, 0.949556 + -0.328478, -0.000000, 0.000000, 0.944512 + -0.343278, -0.000000, 0.000000, 0.939234 + -0.357993, -0.000000, 0.000000, 0.933724 + -0.372620, -0.000000, 0.000000, 0.927984 + -0.387155, -0.000000, 0.000000, 0.922015 + -0.401594, -0.000000, 0.000000, 0.915818 + -0.415935, -0.000000, 0.000000, 0.909394 + -0.430172, -0.000000, 0.000000, 0.902747 + -0.444304, -0.000000, 0.000000, 0.895876 + -0.458325, -0.000000, 0.000000, 0.888785 + -0.472234, -0.000000, 0.000000, 0.881473 + -0.486026, -0.000000, 0.000000, 0.873945 + -0.499698, -0.000000, 0.000000, 0.866200 + -0.513246, -0.000000, 0.000000, 0.858241 + -0.526668, -0.000000, 0.000000, 0.850071 + -0.539960, -0.000000, 0.000000, 0.841691 + -0.553118, -0.000000, 0.000000, 0.833103 + -0.566140, -0.000000, 0.000000, 0.824309 + -0.579022, -0.000000, 0.000000, 0.815312 + -0.591761, -0.000000, 0.000000, 0.806113 + -0.604354, -0.000000, 0.000000, 0.796716 + -0.616798, -0.000000, 0.000000, 0.787121 + -0.629090, -0.000000, 0.000000, 0.777333 + -0.641226, -0.000000, 0.000000, 0.767352 + -0.653204, -0.000000, 0.000000, 0.757182 + -0.665020, -0.000000, 0.000000, 0.746825 + -0.676673, -0.000000, 0.000000, 0.736284 + -0.688158, -0.000000, 0.000000, 0.725561 + -0.699474, -0.000000, 0.000000, 0.714658 + -0.710616, -0.000000, 0.000000, 0.703580 + -0.721584, -0.000000, 0.000000, 0.692327 + -0.732373, -0.000000, 0.000000, 0.680904 + -0.742981, -0.000000, 0.000000, 0.669312 + -0.753406, -0.000000, 0.000000, 0.657555 + -0.763645, -0.000000, 0.000000, 0.645636 + -0.773695, -0.000000, 0.000000, 0.633558 + -0.783555, -0.000000, 0.000000, 0.621323 + -0.793220, -0.000000, 0.000000, 0.608935 + -0.802690, -0.000000, 0.000000, 0.596396 + -0.811962, -0.000000, 0.000000, 0.583710 + -0.821034, -0.000000, 0.000000, 0.570880 + -0.829902, -0.000000, 0.000000, 0.557909 + -0.838566, -0.000000, 0.000000, 0.544800 + -0.847023, -0.000000, 0.000000, 0.531557 + -0.855270, -0.000000, 0.000000, 0.518182 + -0.863307, -0.000000, 0.000000, 0.504680 + -0.871130, -0.000000, 0.000000, 0.491053 + -0.878738, -0.000000, 0.000000, 0.477305 + -0.886129, -0.000000, 0.000000, 0.463438 + -0.893302, -0.000000, 0.000000, 0.449458 + -0.900253, -0.000000, 0.000000, 0.435366 + -0.906983, -0.000000, 0.000000, 0.421167 + -0.913489, -0.000000, 0.000000, 0.406864 + -0.919769, -0.000000, 0.000000, 0.392461 + -0.925822, -0.000000, 0.000000, 0.377960 + -0.931646, -0.000000, 0.000000, 0.363367 + -0.937241, -0.000000, 0.000000, 0.348683 + -0.942604, -0.000000, 0.000000, 0.333914 + -0.947734, -0.000000, 0.000000, 0.319062 + -0.952630, -0.000000, 0.000000, 0.304131 + -0.957291, -0.000000, 0.000000, 0.289125 + -0.961716, -0.000000, 0.000000, 0.274048 + -0.965903, -0.000000, 0.000000, 0.258903 + -0.969852, -0.000000, 0.000000, 0.243695 + -0.973561, -0.000000, 0.000000, 0.228426 + -0.977030, -0.000000, 0.000000, 0.213100 + -0.980258, -0.000000, 0.000000, 0.197722 + -0.983244, -0.000000, 0.000000, 0.182296 + -0.985987, -0.000000, 0.000000, 0.166824 + -0.988486, -0.000000, 0.000000, 0.151311 + -0.990742, -0.000000, 0.000000, 0.135761 + -0.992753, -0.000000, 0.000000, 0.120177 + -0.994518, -0.000000, 0.000000, 0.104563 + -0.996038, -0.000000, 0.000000, 0.088924 + -0.997313, -0.000000, 0.000000, 0.073263 + -0.998341, -0.000000, 0.000000, 0.057583 + -0.999122, -0.000000, 0.000000, 0.041890 + -0.999657, -0.000000, 0.000000, 0.026186 + -0.999945, -0.000000, 0.000000, 0.010475 + -0.999986, 0.000000, -0.000000, -0.005238 + -0.999781, 0.000000, -0.000000, -0.020949 + -0.999328, 0.000000, -0.000000, -0.036656 + -0.998629, 0.000000, -0.000000, -0.052353 + -0.997683, 0.000000, -0.000000, -0.068038 + -0.996491, 0.000000, -0.000000, -0.083706 + -0.995052, 0.000000, -0.000000, -0.099353 + -0.993368, 0.000000, -0.000000, -0.114975 + -0.991439, 0.000000, -0.000000, -0.130569 + -0.989265, 0.000000, -0.000000, -0.146131 + -0.986847, 0.000000, -0.000000, -0.161657 + -0.984185, 0.000000, -0.000000, -0.177143 + -0.981280, 0.000000, -0.000000, -0.192585 + -0.978133, 0.000000, -0.000000, -0.207980 + -0.974744, 0.000000, -0.000000, -0.223323 + -0.971115, 0.000000, -0.000000, -0.238611 + -0.967246, 0.000000, -0.000000, -0.253841 + -0.963138, 0.000000, -0.000000, -0.269007 + -0.958792, 0.000000, -0.000000, -0.284107 + -0.954210, 0.000000, -0.000000, -0.299137 + -0.949392, 0.000000, -0.000000, -0.314094 + -0.944340, 0.000000, -0.000000, -0.328972 + -0.939054, 0.000000, -0.000000, -0.343770 + -0.933537, 0.000000, -0.000000, -0.358482 + -0.927789, 0.000000, -0.000000, -0.373106 + -0.921812, 0.000000, -0.000000, -0.387638 + -0.915607, 0.000000, -0.000000, -0.402074 + -0.909177, 0.000000, -0.000000, -0.416411 + -0.902521, 0.000000, -0.000000, -0.430645 + -0.895643, 0.000000, -0.000000, -0.444773 + -0.888544, 0.000000, -0.000000, -0.458791 + -0.881226, 0.000000, -0.000000, -0.472695 + -0.873690, 0.000000, -0.000000, -0.486483 + -0.865938, 0.000000, -0.000000, -0.500151 + -0.857973, 0.000000, -0.000000, -0.513696 + -0.849795, 0.000000, -0.000000, -0.527113 + -0.841408, 0.000000, -0.000000, -0.540400 + -0.832813, 0.000000, -0.000000, -0.553554 + -0.824012, 0.000000, -0.000000, -0.566572 + -0.815008, 0.000000, -0.000000, -0.579449 + -0.805803, 0.000000, -0.000000, -0.592183 + -0.796399, 0.000000, -0.000000, -0.604772 + -0.786798, 0.000000, -0.000000, -0.617210 + -0.777003, 0.000000, -0.000000, -0.629497 + -0.767016, 0.000000, -0.000000, -0.641628 + -0.756840, 0.000000, -0.000000, -0.653600 + -0.746477, 0.000000, -0.000000, -0.665412 + -0.735929, 0.000000, -0.000000, -0.677058 + -0.725200, 0.000000, -0.000000, -0.688538 + -0.714292, 0.000000, -0.000000, -0.699848 + -0.703207, 0.000000, -0.000000, -0.710985 + -0.691949, 0.000000, -0.000000, -0.721946 + -0.680520, 0.000000, -0.000000, -0.732729 + -0.668923, 0.000000, -0.000000, -0.743332 + -0.657161, 0.000000, -0.000000, -0.753750 + -0.645236, 0.000000, -0.000000, -0.763983 + -0.633153, 0.000000, -0.000000, -0.774027 + -0.620912, 0.000000, -0.000000, -0.783880 + -0.608519, 0.000000, -0.000000, -0.793539 + -0.595975, 0.000000, -0.000000, -0.803003 + -0.583285, 0.000000, -0.000000, -0.812268 + -0.570450, 0.000000, -0.000000, -0.821333 + -0.557474, 0.000000, -0.000000, -0.830194 + -0.544361, 0.000000, -0.000000, -0.838851 + -0.531113, 0.000000, -0.000000, -0.847301 + -0.517734, 0.000000, -0.000000, -0.855541 + -0.504228, 0.000000, -0.000000, -0.863571 + -0.490596, 0.000000, -0.000000, -0.871387 + -0.476844, 0.000000, -0.000000, -0.878988 + -0.462974, 0.000000, -0.000000, -0.886372 + -0.448990, 0.000000, -0.000000, -0.893537 + -0.434895, 0.000000, -0.000000, -0.900481 + -0.420692, 0.000000, -0.000000, -0.907203 + -0.406386, 0.000000, -0.000000, -0.913702 + -0.391979, 0.000000, -0.000000, -0.919974 + -0.377475, 0.000000, -0.000000, -0.926020 + -0.362879, 0.000000, -0.000000, -0.931836 + -0.348192, 0.000000, -0.000000, -0.937423 + -0.333420, 0.000000, -0.000000, -0.942778 + -0.318565, 0.000000, -0.000000, -0.947901 + -0.303632, 0.000000, -0.000000, -0.952789 + -0.288624, 0.000000, -0.000000, -0.957443 + -0.273544, 0.000000, -0.000000, -0.961859 + -0.258397, 0.000000, -0.000000, -0.966039 + -0.243187, 0.000000, -0.000000, -0.969980 + -0.227916, 0.000000, -0.000000, -0.973681 + -0.212589, 0.000000, -0.000000, -0.977142 + -0.197209, 0.000000, -0.000000, -0.980361 + -0.181781, 0.000000, -0.000000, -0.983339 + -0.166307, 0.000000, -0.000000, -0.986074 + -0.150793, 0.000000, -0.000000, -0.988565 + -0.135242, 0.000000, -0.000000, -0.990813 + -0.119657, 0.000000, -0.000000, -0.992815 + -0.104042, 0.000000, -0.000000, -0.994573 + -0.088402, 0.000000, -0.000000, -0.996085 + -0.072740, 0.000000, -0.000000, -0.997351 + -0.057060, 0.000000, -0.000000, -0.998371 + -0.041366, 0.000000, -0.000000, -0.999144 + -0.025662, 0.000000, -0.000000, -0.999671 + -0.009952, 0.000000, -0.000000, -0.999950 + 0.005761, 0.000000, 0.000000, -0.999983 + 0.021473, 0.000000, 0.000000, -0.999769 + 0.037179, 0.000000, 0.000000, -0.999309 + 0.052876, 0.000000, 0.000000, -0.998601 + 0.068560, 0.000000, 0.000000, -0.997647 + 0.084228, 0.000000, 0.000000, -0.996447 + 0.099874, 0.000000, 0.000000, -0.995000 + 0.115496, 0.000000, 0.000000, -0.993308 + 0.131089, 0.000000, 0.000000, -0.991371 + 0.146650, 0.000000, 0.000000, -0.989189 + 0.162174, 0.000000, 0.000000, -0.986762 + 0.177659, 0.000000, 0.000000, -0.984092 + 0.193099, 0.000000, 0.000000, -0.981179 + 0.208492, 0.000000, 0.000000, -0.978024 + 0.223834, 0.000000, 0.000000, -0.974627 + 0.239120, 0.000000, 0.000000, -0.970990 + 0.254347, 0.000000, 0.000000, -0.967113 + 0.269512, 0.000000, 0.000000, -0.962997 + 0.284610, 0.000000, 0.000000, -0.958644 + 0.299637, 0.000000, 0.000000, -0.954053 + 0.314591, 0.000000, 0.000000, -0.949227 + 0.329467, 0.000000, 0.000000, -0.944167 + 0.344261, 0.000000, 0.000000, -0.938874 + 0.358971, 0.000000, 0.000000, -0.933349 + 0.373592, 0.000000, 0.000000, -0.927593 + 0.388121, 0.000000, 0.000000, -0.921609 + 0.402554, 0.000000, 0.000000, -0.915396 + 0.416887, 0.000000, 0.000000, -0.908958 + 0.431118, 0.000000, 0.000000, -0.902296 + 0.445242, 0.000000, 0.000000, -0.895410 + 0.459256, 0.000000, 0.000000, -0.888304 + 0.473157, 0.000000, 0.000000, -0.880978 + 0.486941, 0.000000, 0.000000, -0.873435 + 0.500605, 0.000000, 0.000000, -0.865676 + 0.514145, 0.000000, 0.000000, -0.857703 + 0.527558, 0.000000, 0.000000, -0.849519 + 0.540841, 0.000000, 0.000000, -0.841125 + 0.553991, 0.000000, 0.000000, -0.832523 + 0.567003, 0.000000, 0.000000, -0.823716 + 0.579876, 0.000000, 0.000000, -0.814705 + 0.592605, 0.000000, 0.000000, -0.805493 + 0.605189, 0.000000, 0.000000, -0.796082 + 0.617622, 0.000000, 0.000000, -0.786475 + 0.629904, 0.000000, 0.000000, -0.776673 + 0.642029, 0.000000, 0.000000, -0.766680 + 0.653997, 0.000000, 0.000000, -0.756497 + 0.665802, 0.000000, 0.000000, -0.746128 + 0.677444, 0.000000, 0.000000, -0.735575 + 0.688918, 0.000000, 0.000000, -0.724839 + 0.700222, 0.000000, 0.000000, -0.713925 + 0.711353, 0.000000, 0.000000, -0.702835 + 0.722309, 0.000000, 0.000000, -0.691571 + 0.733086, 0.000000, 0.000000, -0.680136 + 0.743682, 0.000000, 0.000000, -0.668534 + 0.754095, 0.000000, 0.000000, -0.656766 + 0.764321, 0.000000, 0.000000, -0.644836 + 0.774359, 0.000000, 0.000000, -0.632747 + 0.784205, 0.000000, 0.000000, -0.620502 + 0.793858, 0.000000, 0.000000, -0.608103 + 0.803315, 0.000000, 0.000000, -0.595555 + 0.812573, 0.000000, 0.000000, -0.582859 + 0.821631, 0.000000, 0.000000, -0.570019 + 0.830486, 0.000000, 0.000000, -0.557039 + 0.839136, 0.000000, 0.000000, -0.543921 + 0.847579, 0.000000, 0.000000, -0.530669 + 0.855813, 0.000000, 0.000000, -0.517286 + 0.863835, 0.000000, 0.000000, -0.503775 + 0.871644, 0.000000, 0.000000, -0.490140 + 0.879237, 0.000000, 0.000000, -0.476384 + 0.886614, 0.000000, 0.000000, -0.462510 + 0.893772, 0.000000, 0.000000, -0.448522 + 0.900709, 0.000000, 0.000000, -0.434423 + 0.907424, 0.000000, 0.000000, -0.420217 + 0.913914, 0.000000, 0.000000, -0.405907 + 0.920179, 0.000000, 0.000000, -0.391497 + 0.926217, 0.000000, 0.000000, -0.376990 + 0.932026, 0.000000, 0.000000, -0.362391 + 0.937605, 0.000000, 0.000000, -0.347701 + 0.942953, 0.000000, 0.000000, -0.332926 + 0.948068, 0.000000, 0.000000, -0.318069 + 0.952948, 0.000000, 0.000000, -0.303133 + 0.957594, 0.000000, 0.000000, -0.288122 + 0.962003, 0.000000, 0.000000, -0.273041 + 0.966174, 0.000000, 0.000000, -0.257891 + 0.970107, 0.000000, 0.000000, -0.242678 + 0.973800, 0.000000, 0.000000, -0.227406 + 0.977253, 0.000000, 0.000000, -0.212077 + 0.980465, 0.000000, 0.000000, -0.196695 + 0.983434, 0.000000, 0.000000, -0.181266 + 0.986161, 0.000000, 0.000000, -0.165791 + 0.988644, 0.000000, 0.000000, -0.150275 + 0.990883, 0.000000, 0.000000, -0.134723 + 0.992878, 0.000000, 0.000000, -0.119137 + 0.994627, 0.000000, 0.000000, -0.103521 + 0.996131, 0.000000, 0.000000, -0.087880 + 0.997389, 0.000000, 0.000000, -0.072218 + 0.998400, 0.000000, 0.000000, -0.056537 + 0.999166, 0.000000, 0.000000, -0.040843 + 0.999684, 0.000000, 0.000000, -0.025138 + 0.999956, 0.000000, 0.000000, -0.009428 + 0.999980, 0.000000, 0.000000, 0.006285 + 0.999758, 0.000000, 0.000000, 0.021997 + 0.999289, 0.000000, 0.000000, 0.037703 + 0.998573, 0.000000, 0.000000, 0.053399 + 0.997611, 0.000000, 0.000000, 0.069083 + 0.996402, 0.000000, 0.000000, 0.084750 + 0.994948, 0.000000, 0.000000, 0.100395 + 0.993247, 0.000000, 0.000000, 0.116016 + 0.991302, 0.000000, 0.000000, 0.131608 + 0.989112, 0.000000, 0.000000, 0.147168 + 0.986677, 0.000000, 0.000000, 0.162691 + 0.983999, 0.000000, 0.000000, 0.178174 + 0.981078, 0.000000, 0.000000, 0.193613 + 0.977915, 0.000000, 0.000000, 0.209005 + 0.974510, 0.000000, 0.000000, 0.224344 + 0.970865, 0.000000, 0.000000, 0.239629 + 0.966980, 0.000000, 0.000000, 0.254854 + 0.962856, 0.000000, 0.000000, 0.270016 + 0.958494, 0.000000, 0.000000, 0.285112 + 0.953896, 0.000000, 0.000000, 0.300137 + 0.949062, 0.000000, 0.000000, 0.315088 + 0.943994, 0.000000, 0.000000, 0.329961 + 0.938693, 0.000000, 0.000000, 0.344753 + 0.933161, 0.000000, 0.000000, 0.359460 + 0.927397, 0.000000, 0.000000, 0.374078 + 0.921405, 0.000000, 0.000000, 0.388603 + 0.915185, 0.000000, 0.000000, 0.403033 + 0.908740, 0.000000, 0.000000, 0.417363 + 0.902070, 0.000000, 0.000000, 0.431590 + 0.895177, 0.000000, 0.000000, 0.445711 + 0.888063, 0.000000, 0.000000, 0.459721 + 0.880730, 0.000000, 0.000000, 0.473618 + 0.873180, 0.000000, 0.000000, 0.487398 + 0.865414, 0.000000, 0.000000, 0.501058 + 0.857434, 0.000000, 0.000000, 0.514594 + 0.849243, 0.000000, 0.000000, 0.528003 + 0.840841, 0.000000, 0.000000, 0.541282 + 0.832233, 0.000000, 0.000000, 0.554427 + 0.823418, 0.000000, 0.000000, 0.567435 + 0.814401, 0.000000, 0.000000, 0.580303 + 0.805182, 0.000000, 0.000000, 0.593027 + 0.795765, 0.000000, 0.000000, 0.605605 + 0.786151, 0.000000, 0.000000, 0.618034 + 0.776343, 0.000000, 0.000000, 0.630310 + 0.766344, 0.000000, 0.000000, 0.642431 + 0.756155, 0.000000, 0.000000, 0.654393 + 0.745779, 0.000000, 0.000000, 0.666193 + 0.735220, 0.000000, 0.000000, 0.677829 + 0.724478, 0.000000, 0.000000, 0.689297 + 0.713558, 0.000000, 0.000000, 0.700596 + 0.702462, 0.000000, 0.000000, 0.711721 + 0.691192, 0.000000, 0.000000, 0.722671 + 0.679752, 0.000000, 0.000000, 0.733442 + 0.668144, 0.000000, 0.000000, 0.744032 + 0.656371, 0.000000, 0.000000, 0.754438 + 0.644436, 0.000000, 0.000000, 0.764659 + 0.632341, 0.000000, 0.000000, 0.774690 + 0.620091, 0.000000, 0.000000, 0.784530 + 0.607687, 0.000000, 0.000000, 0.794176 + 0.595134, 0.000000, 0.000000, 0.803627 + 0.582433, 0.000000, 0.000000, 0.812878 + 0.569589, 0.000000, 0.000000, 0.821930 + 0.556604, 0.000000, 0.000000, 0.830778 + 0.543482, 0.000000, 0.000000, 0.839421 + 0.530225, 0.000000, 0.000000, 0.847857 + 0.516838, 0.000000, 0.000000, 0.856083 + 0.503323, 0.000000, 0.000000, 0.864099 + 0.489683, 0.000000, 0.000000, 0.871900 + 0.475923, 0.000000, 0.000000, 0.879487 + 0.462045, 0.000000, 0.000000, 0.886856 + 0.448054, 0.000000, 0.000000, 0.894007 + 0.433951, 0.000000, 0.000000, 0.900936 + 0.419742, 0.000000, 0.000000, 0.907644 + 0.405428, 0.000000, 0.000000, 0.914127 + 0.391015, 0.000000, 0.000000, 0.920384 + 0.376505, 0.000000, 0.000000, 0.926415 + 0.361902, 0.000000, 0.000000, 0.932216 + 0.347210, 0.000000, 0.000000, 0.937787 + 0.332432, 0.000000, 0.000000, 0.943127 + 0.317572, 0.000000, 0.000000, 0.948234 + 0.302634, 0.000000, 0.000000, 0.953107 + 0.287621, 0.000000, 0.000000, 0.957744 + 0.272537, 0.000000, 0.000000, 0.962145 + 0.257385, 0.000000, 0.000000, 0.966309 + 0.242170, 0.000000, 0.000000, 0.970234 + 0.226896, 0.000000, 0.000000, 0.973919 + 0.211565, 0.000000, 0.000000, 0.977364 + 0.196182, 0.000000, 0.000000, 0.980568 + 0.180750, 0.000000, 0.000000, 0.983529 + 0.165274, 0.000000, 0.000000, 0.986248 + 0.149757, 0.000000, 0.000000, 0.988723 + 0.134204, 0.000000, 0.000000, 0.990954 + 0.118617, 0.000000, 0.000000, 0.992940 + 0.103000, 0.000000, 0.000000, 0.994681 + 0.087359, 0.000000, 0.000000, 0.996177 + 0.071695, 0.000000, 0.000000, 0.997427 + 0.056014, 0.000000, 0.000000, 0.998430 + 0.040320, 0.000000, 0.000000, 0.999187 + 0.024615, 0.000000, 0.000000, 0.999697 + 0.008904, 0.000000, 0.000000, 0.999960 + -0.006809, -0.000000, 0.000000, 0.999977 + -0.022520, -0.000000, 0.000000, 0.999746 + -0.038226, -0.000000, 0.000000, 0.999269 + -0.053922, -0.000000, 0.000000, 0.998545 + -0.069606, -0.000000, 0.000000, 0.997575 + -0.085271, -0.000000, 0.000000, 0.996358 + -0.100916, -0.000000, 0.000000, 0.994895 + -0.116536, -0.000000, 0.000000, 0.993186 + -0.132127, -0.000000, 0.000000, 0.991233 + -0.147686, -0.000000, 0.000000, 0.989034 + -0.163208, -0.000000, 0.000000, 0.986592 + -0.178689, -0.000000, 0.000000, 0.983906 + -0.194127, -0.000000, 0.000000, 0.980976 + -0.209517, -0.000000, 0.000000, 0.977805 + -0.224855, -0.000000, 0.000000, 0.974392 + -0.240137, -0.000000, 0.000000, 0.970739 + -0.255360, -0.000000, 0.000000, 0.966846 + -0.270520, -0.000000, 0.000000, 0.962714 + -0.285614, -0.000000, 0.000000, 0.958345 + -0.300636, -0.000000, 0.000000, 0.953739 + -0.315585, -0.000000, 0.000000, 0.948897 + -0.330456, -0.000000, 0.000000, 0.943822 + -0.345245, -0.000000, 0.000000, 0.938513 + -0.359948, -0.000000, 0.000000, 0.932972 + -0.374563, -0.000000, 0.000000, 0.927201 + -0.389086, -0.000000, 0.000000, 0.921201 + -0.403512, -0.000000, 0.000000, 0.914974 + -0.417839, -0.000000, 0.000000, 0.908521 + -0.432063, -0.000000, 0.000000, 0.901844 + -0.446180, -0.000000, 0.000000, 0.894943 + -0.460186, -0.000000, 0.000000, 0.887822 + -0.474079, -0.000000, 0.000000, 0.880482 + -0.487856, -0.000000, 0.000000, 0.872924 + -0.501511, -0.000000, 0.000000, 0.865151 + -0.515043, -0.000000, 0.000000, 0.857164 + -0.528448, -0.000000, 0.000000, 0.848966 + -0.541722, -0.000000, 0.000000, 0.840558 + -0.554862, -0.000000, 0.000000, 0.831942 + -0.567866, -0.000000, 0.000000, 0.823121 + -0.580729, -0.000000, 0.000000, 0.814097 + -0.593449, -0.000000, 0.000000, 0.804872 + -0.606022, -0.000000, 0.000000, 0.795448 + -0.618446, -0.000000, 0.000000, 0.785827 + -0.630717, -0.000000, 0.000000, 0.776013 + -0.642832, -0.000000, 0.000000, 0.766007 + -0.654789, -0.000000, 0.000000, 0.755812 + -0.666584, -0.000000, 0.000000, 0.745430 + -0.678214, -0.000000, 0.000000, 0.734864 + -0.689677, -0.000000, 0.000000, 0.724117 + -0.700969, -0.000000, 0.000000, 0.713191 + -0.712089, -0.000000, 0.000000, 0.702089 + -0.723033, -0.000000, 0.000000, 0.690814 + -0.733798, -0.000000, 0.000000, 0.679368 + -0.744382, -0.000000, 0.000000, 0.667754 + -0.754782, -0.000000, 0.000000, 0.655976 + -0.764996, -0.000000, 0.000000, 0.644035 + -0.775021, -0.000000, 0.000000, 0.631935 + -0.784855, -0.000000, 0.000000, 0.619680 + -0.794494, -0.000000, 0.000000, 0.607271 + -0.803938, -0.000000, 0.000000, 0.594713 + -0.813183, -0.000000, 0.000000, 0.582008 + -0.822228, -0.000000, 0.000000, 0.569158 + -0.831069, -0.000000, 0.000000, 0.556169 + -0.839706, -0.000000, 0.000000, 0.543042 + -0.848134, -0.000000, 0.000000, 0.529781 + -0.856354, -0.000000, 0.000000, 0.516389 + -0.864362, -0.000000, 0.000000, 0.502870 + -0.872157, -0.000000, 0.000000, 0.489227 + -0.879736, -0.000000, 0.000000, 0.475462 + -0.887098, -0.000000, 0.000000, 0.461581 + -0.894241, -0.000000, 0.000000, 0.447585 + -0.901164, -0.000000, 0.000000, 0.433479 + -0.907863, -0.000000, 0.000000, 0.419266 + -0.914339, -0.000000, 0.000000, 0.404950 + -0.920589, -0.000000, 0.000000, 0.390533 + -0.926612, -0.000000, 0.000000, 0.376020 + -0.932405, -0.000000, 0.000000, 0.361414 + -0.937969, -0.000000, 0.000000, 0.346719 + -0.943301, -0.000000, 0.000000, 0.331938 + -0.948400, -0.000000, 0.000000, 0.317076 + -0.953265, -0.000000, 0.000000, 0.302135 + -0.957895, -0.000000, 0.000000, 0.287119 + -0.962288, -0.000000, 0.000000, 0.272033 + -0.966444, -0.000000, 0.000000, 0.256879 + -0.970360, -0.000000, 0.000000, 0.241662 + -0.974038, -0.000000, 0.000000, 0.226385 + -0.977475, -0.000000, 0.000000, 0.211053 + -0.980670, -0.000000, 0.000000, 0.195668 + -0.983624, -0.000000, 0.000000, 0.180235 + -0.986334, -0.000000, 0.000000, 0.164758 + -0.988801, -0.000000, 0.000000, 0.149240 + -0.991024, -0.000000, 0.000000, 0.133685 + -0.993002, -0.000000, 0.000000, 0.118097 + -0.994735, -0.000000, 0.000000, 0.102479 + -0.996223, -0.000000, 0.000000, 0.086837 + -0.997464, -0.000000, 0.000000, 0.071173 + -0.998459, -0.000000, 0.000000, 0.055491 + -0.999208, -0.000000, 0.000000, 0.039796 + -0.999710, -0.000000, 0.000000, 0.024091 + -0.999965, -0.000000, 0.000000, 0.008380 + -0.999973, 0.000000, -0.000000, -0.007333 + -0.999734, 0.000000, -0.000000, -0.023044 + -0.999249, 0.000000, -0.000000, -0.038750 + -0.998517, 0.000000, -0.000000, -0.054445 + -0.997538, 0.000000, -0.000000, -0.070128 + -0.996313, 0.000000, -0.000000, -0.085793 + -0.994842, 0.000000, -0.000000, -0.101437 + -0.993125, 0.000000, -0.000000, -0.117056 + -0.991163, 0.000000, -0.000000, -0.132646 + -0.988957, 0.000000, -0.000000, -0.148204 + -0.986506, 0.000000, -0.000000, -0.163724 + -0.983812, 0.000000, -0.000000, -0.179205 + -0.980875, 0.000000, -0.000000, -0.194641 + -0.977695, 0.000000, -0.000000, -0.210029 + -0.974274, 0.000000, -0.000000, -0.225365 + -0.970613, 0.000000, -0.000000, -0.240646 + -0.966712, 0.000000, -0.000000, -0.255867 + -0.962572, 0.000000, -0.000000, -0.271025 + -0.958195, 0.000000, -0.000000, -0.286116 + -0.953581, 0.000000, -0.000000, -0.301136 + -0.948732, 0.000000, -0.000000, -0.316082 + -0.943648, 0.000000, -0.000000, -0.330950 + -0.938332, 0.000000, -0.000000, -0.345736 + -0.932784, 0.000000, -0.000000, -0.360437 + -0.927005, 0.000000, -0.000000, -0.375049 + -0.920998, 0.000000, -0.000000, -0.389568 + -0.914763, 0.000000, -0.000000, -0.403991 + -0.908302, 0.000000, -0.000000, -0.418315 + -0.901617, 0.000000, -0.000000, -0.432535 + -0.894710, 0.000000, -0.000000, -0.446648 + -0.887581, 0.000000, -0.000000, -0.460651 + -0.880234, 0.000000, -0.000000, -0.474541 + -0.872669, 0.000000, -0.000000, -0.488313 + -0.864888, 0.000000, -0.000000, -0.501964 + -0.856894, 0.000000, -0.000000, -0.515492 + -0.848689, 0.000000, -0.000000, -0.528892 + -0.840274, 0.000000, -0.000000, -0.542162 + -0.831651, 0.000000, -0.000000, -0.555298 + -0.822824, 0.000000, -0.000000, -0.568297 + -0.813793, 0.000000, -0.000000, -0.581155 + -0.804561, 0.000000, -0.000000, -0.593870 + -0.795130, 0.000000, -0.000000, -0.606439 + -0.785503, 0.000000, -0.000000, -0.618857 + -0.775683, 0.000000, -0.000000, -0.631123 + -0.765670, 0.000000, -0.000000, -0.643233 + -0.755469, 0.000000, -0.000000, -0.655185 + -0.745081, 0.000000, -0.000000, -0.666974 + -0.734509, 0.000000, -0.000000, -0.678599 + -0.723756, 0.000000, -0.000000, -0.690056 + -0.712824, 0.000000, -0.000000, -0.701343 + -0.701716, 0.000000, -0.000000, -0.712457 + -0.690435, 0.000000, -0.000000, -0.723394 + -0.678983, 0.000000, -0.000000, -0.734154 + -0.667364, 0.000000, -0.000000, -0.744732 + -0.655580, 0.000000, -0.000000, -0.755126 + -0.643634, 0.000000, -0.000000, -0.765333 + -0.631529, 0.000000, -0.000000, -0.775352 + -0.619269, 0.000000, -0.000000, -0.785179 + -0.606855, 0.000000, -0.000000, -0.794812 + -0.594292, 0.000000, -0.000000, -0.804250 + -0.581581, 0.000000, -0.000000, -0.813488 + -0.568728, 0.000000, -0.000000, -0.822526 + -0.555734, 0.000000, -0.000000, -0.831360 + -0.542602, 0.000000, -0.000000, -0.839990 + -0.529337, 0.000000, -0.000000, -0.848412 + -0.515941, 0.000000, -0.000000, -0.856624 + -0.502417, 0.000000, -0.000000, -0.864625 + -0.488770, 0.000000, -0.000000, -0.872413 + -0.475002, 0.000000, -0.000000, -0.879985 + -0.461116, 0.000000, -0.000000, -0.887340 + -0.447117, 0.000000, -0.000000, -0.894476 + -0.433007, 0.000000, -0.000000, -0.901390 + -0.418791, 0.000000, -0.000000, -0.908083 + -0.404471, 0.000000, -0.000000, -0.914551 + -0.390051, 0.000000, -0.000000, -0.920793 + -0.375535, 0.000000, -0.000000, -0.926808 + -0.360926, 0.000000, -0.000000, -0.932595 + -0.346228, 0.000000, -0.000000, -0.938151 + -0.331444, 0.000000, -0.000000, -0.943475 + -0.316579, 0.000000, -0.000000, -0.948566 + -0.301635, 0.000000, -0.000000, -0.953423 + -0.286617, 0.000000, -0.000000, -0.958045 + -0.271529, 0.000000, -0.000000, -0.962430 + -0.256373, 0.000000, -0.000000, -0.966578 + -0.241154, 0.000000, -0.000000, -0.970487 + -0.225875, 0.000000, -0.000000, -0.974156 + -0.210541, 0.000000, -0.000000, -0.977585 + -0.195155, 0.000000, -0.000000, -0.980773 + -0.179720, 0.000000, -0.000000, -0.983718 + -0.164241, 0.000000, -0.000000, -0.986420 + -0.148722, 0.000000, -0.000000, -0.988879 + -0.133165, 0.000000, -0.000000, -0.991094 + -0.117576, 0.000000, -0.000000, -0.993064 + -0.101958, 0.000000, -0.000000, -0.994789 + -0.086315, 0.000000, -0.000000, -0.996268 + -0.070650, 0.000000, -0.000000, -0.997501 + -0.054968, 0.000000, -0.000000, -0.998488 + -0.039273, 0.000000, -0.000000, -0.999229 + -0.023568, 0.000000, -0.000000, -0.999722 + -0.007857, 0.000000, -0.000000, -0.999969 + 0.007857, 0.000000, 0.000000, -0.999969 + 0.023568, 0.000000, 0.000000, -0.999722 + 0.039273, 0.000000, 0.000000, -0.999229 + 0.054968, 0.000000, 0.000000, -0.998488 + 0.070650, 0.000000, 0.000000, -0.997501 + 0.086315, 0.000000, 0.000000, -0.996268 + 0.101958, 0.000000, 0.000000, -0.994789 + 0.117576, 0.000000, 0.000000, -0.993064 + 0.133165, 0.000000, 0.000000, -0.991094 + 0.148722, 0.000000, 0.000000, -0.988879 + 0.164241, 0.000000, 0.000000, -0.986420 + 0.179720, 0.000000, 0.000000, -0.983718 + 0.195155, 0.000000, 0.000000, -0.980773 + 0.210541, 0.000000, 0.000000, -0.977585 + 0.225875, 0.000000, 0.000000, -0.974156 + 0.241154, 0.000000, 0.000000, -0.970487 + 0.256373, 0.000000, 0.000000, -0.966578 + 0.271529, 0.000000, 0.000000, -0.962430 + 0.286617, 0.000000, 0.000000, -0.958045 + 0.301635, 0.000000, 0.000000, -0.953423 + 0.316579, 0.000000, 0.000000, -0.948566 + 0.331444, 0.000000, 0.000000, -0.943475 + 0.346228, 0.000000, 0.000000, -0.938151 + 0.360926, 0.000000, 0.000000, -0.932595 + 0.375535, 0.000000, 0.000000, -0.926808 + 0.390051, 0.000000, 0.000000, -0.920793 + 0.404471, 0.000000, 0.000000, -0.914551 + 0.418791, 0.000000, 0.000000, -0.908083 + 0.433007, 0.000000, 0.000000, -0.901390 + 0.447117, 0.000000, 0.000000, -0.894476 + 0.461116, 0.000000, 0.000000, -0.887340 + 0.475002, 0.000000, 0.000000, -0.879985 + 0.488770, 0.000000, 0.000000, -0.872413 + 0.502417, 0.000000, 0.000000, -0.864625 + 0.515941, 0.000000, 0.000000, -0.856624 + 0.529337, 0.000000, 0.000000, -0.848412 + 0.542602, 0.000000, 0.000000, -0.839990 + 0.555734, 0.000000, 0.000000, -0.831360 + 0.568728, 0.000000, 0.000000, -0.822526 + 0.581581, 0.000000, 0.000000, -0.813488 + 0.594292, 0.000000, 0.000000, -0.804250 + 0.606855, 0.000000, 0.000000, -0.794812 + 0.619269, 0.000000, 0.000000, -0.785179 + 0.631529, 0.000000, 0.000000, -0.775352 + 0.643634, 0.000000, 0.000000, -0.765333 + 0.655580, 0.000000, 0.000000, -0.755126 + 0.667364, 0.000000, 0.000000, -0.744732 + 0.678983, 0.000000, 0.000000, -0.734154 + 0.690435, 0.000000, 0.000000, -0.723394 + 0.701716, 0.000000, 0.000000, -0.712457 + 0.712824, 0.000000, 0.000000, -0.701343 + 0.723756, 0.000000, 0.000000, -0.690056 + 0.734509, 0.000000, 0.000000, -0.678599 + 0.745081, 0.000000, 0.000000, -0.666974 + 0.755469, 0.000000, 0.000000, -0.655185 + 0.765670, 0.000000, 0.000000, -0.643233 + 0.775683, 0.000000, 0.000000, -0.631123 + 0.785503, 0.000000, 0.000000, -0.618857 + 0.795130, 0.000000, 0.000000, -0.606439 + 0.804561, 0.000000, 0.000000, -0.593870 + 0.813793, 0.000000, 0.000000, -0.581155 + 0.822824, 0.000000, 0.000000, -0.568297 + 0.831651, 0.000000, 0.000000, -0.555298 + 0.840274, 0.000000, 0.000000, -0.542162 + 0.848689, 0.000000, 0.000000, -0.528892 + 0.856894, 0.000000, 0.000000, -0.515492 + 0.864888, 0.000000, 0.000000, -0.501964 + 0.872669, 0.000000, 0.000000, -0.488313 + 0.880234, 0.000000, 0.000000, -0.474541 + 0.887581, 0.000000, 0.000000, -0.460651 + 0.894710, 0.000000, 0.000000, -0.446648 + 0.901617, 0.000000, 0.000000, -0.432535 + 0.908302, 0.000000, 0.000000, -0.418315 + 0.914763, 0.000000, 0.000000, -0.403991 + 0.920998, 0.000000, 0.000000, -0.389568 + 0.927005, 0.000000, 0.000000, -0.375049 + 0.932784, 0.000000, 0.000000, -0.360437 + 0.938332, 0.000000, 0.000000, -0.345736 + 0.943648, 0.000000, 0.000000, -0.330950 + 0.948732, 0.000000, 0.000000, -0.316082 + 0.953581, 0.000000, 0.000000, -0.301136 + 0.958195, 0.000000, 0.000000, -0.286116 + 0.962572, 0.000000, 0.000000, -0.271025 + 0.966712, 0.000000, 0.000000, -0.255867 + 0.970613, 0.000000, 0.000000, -0.240646 + 0.974274, 0.000000, 0.000000, -0.225365 + 0.977695, 0.000000, 0.000000, -0.210029 + 0.980875, 0.000000, 0.000000, -0.194641 + 0.983812, 0.000000, 0.000000, -0.179205 + 0.986506, 0.000000, 0.000000, -0.163724 + 0.988957, 0.000000, 0.000000, -0.148204 + 0.991163, 0.000000, 0.000000, -0.132646 + 0.993125, 0.000000, 0.000000, -0.117056 + 0.994842, 0.000000, 0.000000, -0.101437 + 0.996313, 0.000000, 0.000000, -0.085793 + 0.997538, 0.000000, 0.000000, -0.070128 + 0.998517, 0.000000, 0.000000, -0.054445 + 0.999249, 0.000000, 0.000000, -0.038750 + 0.999734, 0.000000, 0.000000, -0.023044 + 0.999973, 0.000000, 0.000000, -0.007333 + 0.999965, 0.000000, 0.000000, 0.008380 + 0.999710, 0.000000, 0.000000, 0.024091 + 0.999208, 0.000000, 0.000000, 0.039796 + 0.998459, 0.000000, 0.000000, 0.055491 + 0.997464, 0.000000, 0.000000, 0.071173 + 0.996223, 0.000000, 0.000000, 0.086837 + 0.994735, 0.000000, 0.000000, 0.102479 + 0.993002, 0.000000, 0.000000, 0.118097 + 0.991024, 0.000000, 0.000000, 0.133685 + 0.988801, 0.000000, 0.000000, 0.149240 + 0.986334, 0.000000, 0.000000, 0.164758 + 0.983624, 0.000000, 0.000000, 0.180235 + 0.980670, 0.000000, 0.000000, 0.195668 + 0.977475, 0.000000, 0.000000, 0.211053 + 0.974038, 0.000000, 0.000000, 0.226385 + 0.970360, 0.000000, 0.000000, 0.241662 + 0.966444, 0.000000, 0.000000, 0.256879 + 0.962288, 0.000000, 0.000000, 0.272033 + 0.957895, 0.000000, 0.000000, 0.287119 + 0.953265, 0.000000, 0.000000, 0.302135 + 0.948400, 0.000000, 0.000000, 0.317076 + 0.943301, 0.000000, 0.000000, 0.331938 + 0.937969, 0.000000, 0.000000, 0.346719 + 0.932405, 0.000000, 0.000000, 0.361414 + 0.926612, 0.000000, 0.000000, 0.376020 + 0.920589, 0.000000, 0.000000, 0.390533 + 0.914339, 0.000000, 0.000000, 0.404950 + 0.907863, 0.000000, 0.000000, 0.419266 + 0.901164, 0.000000, 0.000000, 0.433479 + 0.894241, 0.000000, 0.000000, 0.447585 + 0.887098, 0.000000, 0.000000, 0.461581 + 0.879736, 0.000000, 0.000000, 0.475462 + 0.872157, 0.000000, 0.000000, 0.489227 + 0.864362, 0.000000, 0.000000, 0.502870 + 0.856354, 0.000000, 0.000000, 0.516389 + 0.848134, 0.000000, 0.000000, 0.529781 + 0.839706, 0.000000, 0.000000, 0.543042 + 0.831069, 0.000000, 0.000000, 0.556169 + 0.822228, 0.000000, 0.000000, 0.569158 + 0.813183, 0.000000, 0.000000, 0.582008 + 0.803938, 0.000000, 0.000000, 0.594713 + 0.794494, 0.000000, 0.000000, 0.607271 + 0.784855, 0.000000, 0.000000, 0.619680 + 0.775021, 0.000000, 0.000000, 0.631935 + 0.764996, 0.000000, 0.000000, 0.644035 + 0.754782, 0.000000, 0.000000, 0.655976 + 0.744382, 0.000000, 0.000000, 0.667754 + 0.733798, 0.000000, 0.000000, 0.679368 + 0.723033, 0.000000, 0.000000, 0.690814 + 0.712089, 0.000000, 0.000000, 0.702089 + 0.700969, 0.000000, 0.000000, 0.713191 + 0.689677, 0.000000, 0.000000, 0.724117 + 0.678214, 0.000000, 0.000000, 0.734864 + 0.666584, 0.000000, 0.000000, 0.745430 + 0.654789, 0.000000, 0.000000, 0.755812 + 0.642832, 0.000000, 0.000000, 0.766007 + 0.630717, 0.000000, 0.000000, 0.776013 + 0.618446, 0.000000, 0.000000, 0.785827 + 0.606022, 0.000000, 0.000000, 0.795448 + 0.593449, 0.000000, 0.000000, 0.804872 + 0.580729, 0.000000, 0.000000, 0.814097 + 0.567866, 0.000000, 0.000000, 0.823121 + 0.554862, 0.000000, 0.000000, 0.831942 + 0.541722, 0.000000, 0.000000, 0.840558 + 0.528448, 0.000000, 0.000000, 0.848966 + 0.515043, 0.000000, 0.000000, 0.857164 + 0.501511, 0.000000, 0.000000, 0.865151 + 0.487856, 0.000000, 0.000000, 0.872924 + 0.474079, 0.000000, 0.000000, 0.880482 + 0.460186, 0.000000, 0.000000, 0.887822 + 0.446180, 0.000000, 0.000000, 0.894943 + 0.432063, 0.000000, 0.000000, 0.901844 + 0.417839, 0.000000, 0.000000, 0.908521 + 0.403512, 0.000000, 0.000000, 0.914974 + 0.389086, 0.000000, 0.000000, 0.921201 + 0.374563, 0.000000, 0.000000, 0.927201 + 0.359948, 0.000000, 0.000000, 0.932972 + 0.345245, 0.000000, 0.000000, 0.938513 + 0.330456, 0.000000, 0.000000, 0.943822 + 0.315585, 0.000000, 0.000000, 0.948897 + 0.300636, 0.000000, 0.000000, 0.953739 + 0.285614, 0.000000, 0.000000, 0.958345 + 0.270520, 0.000000, 0.000000, 0.962714 + 0.255360, 0.000000, 0.000000, 0.966846 + 0.240137, 0.000000, 0.000000, 0.970739 + 0.224855, 0.000000, 0.000000, 0.974392 + 0.209517, 0.000000, 0.000000, 0.977805 + 0.194127, 0.000000, 0.000000, 0.980976 + 0.178689, 0.000000, 0.000000, 0.983906 + 0.163208, 0.000000, 0.000000, 0.986592 + 0.147686, 0.000000, 0.000000, 0.989034 + 0.132127, 0.000000, 0.000000, 0.991233 + 0.116536, 0.000000, 0.000000, 0.993186 + 0.100916, 0.000000, 0.000000, 0.994895 + 0.085271, 0.000000, 0.000000, 0.996358 + 0.069606, 0.000000, 0.000000, 0.997575 + 0.053922, 0.000000, 0.000000, 0.998545 + 0.038226, 0.000000, 0.000000, 0.999269 + 0.022520, 0.000000, 0.000000, 0.999746 + 0.006809, 0.000000, 0.000000, 0.999977 + -0.008904, -0.000000, 0.000000, 0.999960 + -0.024615, -0.000000, 0.000000, 0.999697 + -0.040320, -0.000000, 0.000000, 0.999187 + -0.056014, -0.000000, 0.000000, 0.998430 + -0.071695, -0.000000, 0.000000, 0.997427 + -0.087359, -0.000000, 0.000000, 0.996177 + -0.103000, -0.000000, 0.000000, 0.994681 + -0.118617, -0.000000, 0.000000, 0.992940 + -0.134204, -0.000000, 0.000000, 0.990954 + -0.149757, -0.000000, 0.000000, 0.988723 + -0.165274, -0.000000, 0.000000, 0.986248 + -0.180750, -0.000000, 0.000000, 0.983529 + -0.196182, -0.000000, 0.000000, 0.980568 + -0.211565, -0.000000, 0.000000, 0.977364 + -0.226896, -0.000000, 0.000000, 0.973919 + -0.242170, -0.000000, 0.000000, 0.970234 + -0.257385, -0.000000, 0.000000, 0.966309 + -0.272537, -0.000000, 0.000000, 0.962145 + -0.287621, -0.000000, 0.000000, 0.957744 + -0.302634, -0.000000, 0.000000, 0.953107 + -0.317572, -0.000000, 0.000000, 0.948234 + -0.332432, -0.000000, 0.000000, 0.943127 + -0.347210, -0.000000, 0.000000, 0.937787 + -0.361902, -0.000000, 0.000000, 0.932216 + -0.376505, -0.000000, 0.000000, 0.926415 + -0.391015, -0.000000, 0.000000, 0.920384 + -0.405428, -0.000000, 0.000000, 0.914127 + -0.419742, -0.000000, 0.000000, 0.907644 + -0.433951, -0.000000, 0.000000, 0.900936 + -0.448054, -0.000000, 0.000000, 0.894007 + -0.462045, -0.000000, 0.000000, 0.886856 + -0.475923, -0.000000, 0.000000, 0.879487 + -0.489683, -0.000000, 0.000000, 0.871900 + -0.503323, -0.000000, 0.000000, 0.864099 + -0.516838, -0.000000, 0.000000, 0.856083 + -0.530225, -0.000000, 0.000000, 0.847857 + -0.543482, -0.000000, 0.000000, 0.839421 + -0.556604, -0.000000, 0.000000, 0.830778 + -0.569589, -0.000000, 0.000000, 0.821930 + -0.582433, -0.000000, 0.000000, 0.812878 + -0.595134, -0.000000, 0.000000, 0.803627 + -0.607687, -0.000000, 0.000000, 0.794176 + -0.620091, -0.000000, 0.000000, 0.784530 + -0.632341, -0.000000, 0.000000, 0.774690 + -0.644436, -0.000000, 0.000000, 0.764659 + -0.656371, -0.000000, 0.000000, 0.754438 + -0.668144, -0.000000, 0.000000, 0.744032 + -0.679752, -0.000000, 0.000000, 0.733442 + -0.691192, -0.000000, 0.000000, 0.722671 + -0.702462, -0.000000, 0.000000, 0.711721 + -0.713558, -0.000000, 0.000000, 0.700596 + -0.724478, -0.000000, 0.000000, 0.689297 + -0.735220, -0.000000, 0.000000, 0.677829 + -0.745779, -0.000000, 0.000000, 0.666193 + -0.756155, -0.000000, 0.000000, 0.654393 + -0.766344, -0.000000, 0.000000, 0.642431 + -0.776343, -0.000000, 0.000000, 0.630310 + -0.786151, -0.000000, 0.000000, 0.618034 + -0.795765, -0.000000, 0.000000, 0.605605 + -0.805182, -0.000000, 0.000000, 0.593027 + -0.814401, -0.000000, 0.000000, 0.580303 + -0.823418, -0.000000, 0.000000, 0.567435 + -0.832233, -0.000000, 0.000000, 0.554427 + -0.840841, -0.000000, 0.000000, 0.541282 + -0.849243, -0.000000, 0.000000, 0.528003 + -0.857434, -0.000000, 0.000000, 0.514594 + -0.865414, -0.000000, 0.000000, 0.501058 + -0.873180, -0.000000, 0.000000, 0.487398 + -0.880730, -0.000000, 0.000000, 0.473618 + -0.888063, -0.000000, 0.000000, 0.459721 + -0.895177, -0.000000, 0.000000, 0.445711 + -0.902070, -0.000000, 0.000000, 0.431590 + -0.908740, -0.000000, 0.000000, 0.417363 + -0.915185, -0.000000, 0.000000, 0.403033 + -0.921405, -0.000000, 0.000000, 0.388603 + -0.927397, -0.000000, 0.000000, 0.374078 + -0.933161, -0.000000, 0.000000, 0.359460 + -0.938693, -0.000000, 0.000000, 0.344753 + -0.943994, -0.000000, 0.000000, 0.329961 + -0.949062, -0.000000, 0.000000, 0.315088 + -0.953896, -0.000000, 0.000000, 0.300137 + -0.958494, -0.000000, 0.000000, 0.285112 + -0.962856, -0.000000, 0.000000, 0.270016 + -0.966980, -0.000000, 0.000000, 0.254854 + -0.970865, -0.000000, 0.000000, 0.239629 + -0.974510, -0.000000, 0.000000, 0.224344 + -0.977915, -0.000000, 0.000000, 0.209005 + -0.981078, -0.000000, 0.000000, 0.193613 + -0.983999, -0.000000, 0.000000, 0.178174 + -0.986677, -0.000000, 0.000000, 0.162691 + -0.989112, -0.000000, 0.000000, 0.147168 + -0.991302, -0.000000, 0.000000, 0.131608 + -0.993247, -0.000000, 0.000000, 0.116016 + -0.994948, -0.000000, 0.000000, 0.100395 + -0.996402, -0.000000, 0.000000, 0.084750 + -0.997611, -0.000000, 0.000000, 0.069083 + -0.998573, -0.000000, 0.000000, 0.053399 + -0.999289, -0.000000, 0.000000, 0.037703 + -0.999758, -0.000000, 0.000000, 0.021997 + -0.999980, -0.000000, 0.000000, 0.006285 + -0.999956, 0.000000, -0.000000, -0.009428 + -0.999684, 0.000000, -0.000000, -0.025138 + -0.999166, 0.000000, -0.000000, -0.040843 + -0.998400, 0.000000, -0.000000, -0.056537 + -0.997389, 0.000000, -0.000000, -0.072218 + -0.996131, 0.000000, -0.000000, -0.087880 + -0.994627, 0.000000, -0.000000, -0.103521 + -0.992878, 0.000000, -0.000000, -0.119137 + -0.990883, 0.000000, -0.000000, -0.134723 + -0.988644, 0.000000, -0.000000, -0.150275 + -0.986161, 0.000000, -0.000000, -0.165791 + -0.983434, 0.000000, -0.000000, -0.181266 + -0.980465, 0.000000, -0.000000, -0.196695 + -0.977253, 0.000000, -0.000000, -0.212077 + -0.973800, 0.000000, -0.000000, -0.227406 + -0.970107, 0.000000, -0.000000, -0.242678 + -0.966174, 0.000000, -0.000000, -0.257891 + -0.962003, 0.000000, -0.000000, -0.273041 + -0.957594, 0.000000, -0.000000, -0.288122 + -0.952948, 0.000000, -0.000000, -0.303133 + -0.948068, 0.000000, -0.000000, -0.318069 + -0.942953, 0.000000, -0.000000, -0.332926 + -0.937605, 0.000000, -0.000000, -0.347701 + -0.932026, 0.000000, -0.000000, -0.362391 + -0.926217, 0.000000, -0.000000, -0.376990 + -0.920179, 0.000000, -0.000000, -0.391497 + -0.913914, 0.000000, -0.000000, -0.405907 + -0.907424, 0.000000, -0.000000, -0.420217 + -0.900709, 0.000000, -0.000000, -0.434423 + -0.893772, 0.000000, -0.000000, -0.448522 + -0.886614, 0.000000, -0.000000, -0.462510 + -0.879237, 0.000000, -0.000000, -0.476384 + -0.871644, 0.000000, -0.000000, -0.490140 + -0.863835, 0.000000, -0.000000, -0.503775 + -0.855813, 0.000000, -0.000000, -0.517286 + -0.847579, 0.000000, -0.000000, -0.530669 + -0.839136, 0.000000, -0.000000, -0.543921 + -0.830486, 0.000000, -0.000000, -0.557039 + -0.821631, 0.000000, -0.000000, -0.570019 + -0.812573, 0.000000, -0.000000, -0.582859 + -0.803315, 0.000000, -0.000000, -0.595555 + -0.793858, 0.000000, -0.000000, -0.608103 + -0.784205, 0.000000, -0.000000, -0.620502 + -0.774359, 0.000000, -0.000000, -0.632747 + -0.764321, 0.000000, -0.000000, -0.644836 + -0.754095, 0.000000, -0.000000, -0.656766 + -0.743682, 0.000000, -0.000000, -0.668534 + -0.733086, 0.000000, -0.000000, -0.680136 + -0.722309, 0.000000, -0.000000, -0.691571 + -0.711353, 0.000000, -0.000000, -0.702835 + -0.700222, 0.000000, -0.000000, -0.713925 + -0.688918, 0.000000, -0.000000, -0.724839 + -0.677444, 0.000000, -0.000000, -0.735575 + -0.665802, 0.000000, -0.000000, -0.746128 + -0.653997, 0.000000, -0.000000, -0.756497 + -0.642029, 0.000000, -0.000000, -0.766680 + -0.629904, 0.000000, -0.000000, -0.776673 + -0.617622, 0.000000, -0.000000, -0.786475 + -0.605189, 0.000000, -0.000000, -0.796082 + -0.592605, 0.000000, -0.000000, -0.805493 + -0.579876, 0.000000, -0.000000, -0.814705 + -0.567003, 0.000000, -0.000000, -0.823716 + -0.553991, 0.000000, -0.000000, -0.832523 + -0.540841, 0.000000, -0.000000, -0.841125 + -0.527558, 0.000000, -0.000000, -0.849519 + -0.514145, 0.000000, -0.000000, -0.857703 + -0.500605, 0.000000, -0.000000, -0.865676 + -0.486941, 0.000000, -0.000000, -0.873435 + -0.473157, 0.000000, -0.000000, -0.880978 + -0.459256, 0.000000, -0.000000, -0.888304 + -0.445242, 0.000000, -0.000000, -0.895410 + -0.431118, 0.000000, -0.000000, -0.902296 + -0.416887, 0.000000, -0.000000, -0.908958 + -0.402554, 0.000000, -0.000000, -0.915396 + -0.388121, 0.000000, -0.000000, -0.921609 + -0.373592, 0.000000, -0.000000, -0.927593 + -0.358971, 0.000000, -0.000000, -0.933349 + -0.344261, 0.000000, -0.000000, -0.938874 + -0.329467, 0.000000, -0.000000, -0.944167 + -0.314591, 0.000000, -0.000000, -0.949227 + -0.299637, 0.000000, -0.000000, -0.954053 + -0.284610, 0.000000, -0.000000, -0.958644 + -0.269512, 0.000000, -0.000000, -0.962997 + -0.254347, 0.000000, -0.000000, -0.967113 + -0.239120, 0.000000, -0.000000, -0.970990 + -0.223834, 0.000000, -0.000000, -0.974627 + -0.208492, 0.000000, -0.000000, -0.978024 + -0.193099, 0.000000, -0.000000, -0.981179 + -0.177659, 0.000000, -0.000000, -0.984092 + -0.162174, 0.000000, -0.000000, -0.986762 + -0.146650, 0.000000, -0.000000, -0.989189 + -0.131089, 0.000000, -0.000000, -0.991371 + -0.115496, 0.000000, -0.000000, -0.993308 + -0.099874, 0.000000, -0.000000, -0.995000 + -0.084228, 0.000000, -0.000000, -0.996447 + -0.068560, 0.000000, -0.000000, -0.997647 + -0.052876, 0.000000, -0.000000, -0.998601 + -0.037179, 0.000000, -0.000000, -0.999309 + -0.021473, 0.000000, -0.000000, -0.999769 + -0.005761, 0.000000, -0.000000, -0.999983 + 0.009952, 0.000000, 0.000000, -0.999950 + 0.025662, 0.000000, 0.000000, -0.999671 + 0.041366, 0.000000, 0.000000, -0.999144 + 0.057060, 0.000000, 0.000000, -0.998371 + 0.072740, 0.000000, 0.000000, -0.997351 + 0.088402, 0.000000, 0.000000, -0.996085 + 0.104042, 0.000000, 0.000000, -0.994573 + 0.119657, 0.000000, 0.000000, -0.992815 + 0.135242, 0.000000, 0.000000, -0.990813 + 0.150793, 0.000000, 0.000000, -0.988565 + 0.166307, 0.000000, 0.000000, -0.986074 + 0.181781, 0.000000, 0.000000, -0.983339 + 0.197209, 0.000000, 0.000000, -0.980361 + 0.212589, 0.000000, 0.000000, -0.977142 + 0.227916, 0.000000, 0.000000, -0.973681 + 0.243187, 0.000000, 0.000000, -0.969980 + 0.258397, 0.000000, 0.000000, -0.966039 + 0.273544, 0.000000, 0.000000, -0.961859 + 0.288624, 0.000000, 0.000000, -0.957443 + 0.303632, 0.000000, 0.000000, -0.952789 + 0.318565, 0.000000, 0.000000, -0.947901 + 0.333420, 0.000000, 0.000000, -0.942778 + 0.348192, 0.000000, 0.000000, -0.937423 + 0.362879, 0.000000, 0.000000, -0.931836 + 0.377475, 0.000000, 0.000000, -0.926020 + 0.391979, 0.000000, 0.000000, -0.919974 + 0.406386, 0.000000, 0.000000, -0.913702 + 0.420692, 0.000000, 0.000000, -0.907203 + 0.434895, 0.000000, 0.000000, -0.900481 + 0.448990, 0.000000, 0.000000, -0.893537 + 0.462974, 0.000000, 0.000000, -0.886372 + 0.476844, 0.000000, 0.000000, -0.878988 + 0.490596, 0.000000, 0.000000, -0.871387 + 0.504228, 0.000000, 0.000000, -0.863571 + 0.517734, 0.000000, 0.000000, -0.855541 + 0.531113, 0.000000, 0.000000, -0.847301 + 0.544361, 0.000000, 0.000000, -0.838851 + 0.557474, 0.000000, 0.000000, -0.830194 + 0.570450, 0.000000, 0.000000, -0.821333 + 0.583285, 0.000000, 0.000000, -0.812268 + 0.595975, 0.000000, 0.000000, -0.803003 + 0.608519, 0.000000, 0.000000, -0.793539 + 0.620912, 0.000000, 0.000000, -0.783880 + 0.633153, 0.000000, 0.000000, -0.774027 + 0.645236, 0.000000, 0.000000, -0.763983 + 0.657161, 0.000000, 0.000000, -0.753750 + 0.668923, 0.000000, 0.000000, -0.743332 + 0.680520, 0.000000, 0.000000, -0.732729 + 0.691949, 0.000000, 0.000000, -0.721946 + 0.703207, 0.000000, 0.000000, -0.710985 + 0.714292, 0.000000, 0.000000, -0.699848 + 0.725200, 0.000000, 0.000000, -0.688538 + 0.735929, 0.000000, 0.000000, -0.677058 + 0.746477, 0.000000, 0.000000, -0.665412 + 0.756840, 0.000000, 0.000000, -0.653600 + 0.767016, 0.000000, 0.000000, -0.641628 + 0.777003, 0.000000, 0.000000, -0.629497 + 0.786798, 0.000000, 0.000000, -0.617210 + 0.796399, 0.000000, 0.000000, -0.604772 + 0.805803, 0.000000, 0.000000, -0.592183 + 0.815008, 0.000000, 0.000000, -0.579449 + 0.824012, 0.000000, 0.000000, -0.566572 + 0.832813, 0.000000, 0.000000, -0.553554 + 0.841408, 0.000000, 0.000000, -0.540400 + 0.849795, 0.000000, 0.000000, -0.527113 + 0.857973, 0.000000, 0.000000, -0.513696 + 0.865938, 0.000000, 0.000000, -0.500151 + 0.873690, 0.000000, 0.000000, -0.486483 + 0.881226, 0.000000, 0.000000, -0.472695 + 0.888544, 0.000000, 0.000000, -0.458791 + 0.895643, 0.000000, 0.000000, -0.444773 + 0.902521, 0.000000, 0.000000, -0.430645 + 0.909177, 0.000000, 0.000000, -0.416411 + 0.915607, 0.000000, 0.000000, -0.402074 + 0.921812, 0.000000, 0.000000, -0.387638 + 0.927789, 0.000000, 0.000000, -0.373106 + 0.933537, 0.000000, 0.000000, -0.358482 + 0.939054, 0.000000, 0.000000, -0.343770 + 0.944340, 0.000000, 0.000000, -0.328972 + 0.949392, 0.000000, 0.000000, -0.314094 + 0.954210, 0.000000, 0.000000, -0.299137 + 0.958792, 0.000000, 0.000000, -0.284107 + 0.963138, 0.000000, 0.000000, -0.269007 + 0.967246, 0.000000, 0.000000, -0.253841 + 0.971115, 0.000000, 0.000000, -0.238611 + 0.974744, 0.000000, 0.000000, -0.223323 + 0.978133, 0.000000, 0.000000, -0.207980 + 0.981280, 0.000000, 0.000000, -0.192585 + 0.984185, 0.000000, 0.000000, -0.177143 + 0.986847, 0.000000, 0.000000, -0.161657 + 0.989265, 0.000000, 0.000000, -0.146131 + 0.991439, 0.000000, 0.000000, -0.130569 + 0.993368, 0.000000, 0.000000, -0.114975 + 0.995052, 0.000000, 0.000000, -0.099353 + 0.996491, 0.000000, 0.000000, -0.083706 + 0.997683, 0.000000, 0.000000, -0.068038 + 0.998629, 0.000000, 0.000000, -0.052353 + 0.999328, 0.000000, 0.000000, -0.036656 + 0.999781, 0.000000, 0.000000, -0.020949 + 0.999986, 0.000000, 0.000000, -0.005238 + 0.999945, 0.000000, 0.000000, 0.010475 + 0.999657, 0.000000, 0.000000, 0.026186 + 0.999122, 0.000000, 0.000000, 0.041890 + 0.998341, 0.000000, 0.000000, 0.057583 + 0.997313, 0.000000, 0.000000, 0.073263 + 0.996038, 0.000000, 0.000000, 0.088924 + 0.994518, 0.000000, 0.000000, 0.104563 + 0.992753, 0.000000, 0.000000, 0.120177 + 0.990742, 0.000000, 0.000000, 0.135761 + 0.988486, 0.000000, 0.000000, 0.151311 + 0.985987, 0.000000, 0.000000, 0.166824 + 0.983244, 0.000000, 0.000000, 0.182296 + 0.980258, 0.000000, 0.000000, 0.197722 + 0.977030, 0.000000, 0.000000, 0.213100 + 0.973561, 0.000000, 0.000000, 0.228426 + 0.969852, 0.000000, 0.000000, 0.243695 + 0.965903, 0.000000, 0.000000, 0.258903 + 0.961716, 0.000000, 0.000000, 0.274048 + 0.957291, 0.000000, 0.000000, 0.289125 + 0.952630, 0.000000, 0.000000, 0.304131 + 0.947734, 0.000000, 0.000000, 0.319062 + 0.942604, 0.000000, 0.000000, 0.333914 + 0.937241, 0.000000, 0.000000, 0.348683 + 0.931646, 0.000000, 0.000000, 0.363367 + 0.925822, 0.000000, 0.000000, 0.377960 + 0.919769, 0.000000, 0.000000, 0.392461 + 0.913489, 0.000000, 0.000000, 0.406864 + 0.906983, 0.000000, 0.000000, 0.421167 + 0.900253, 0.000000, 0.000000, 0.435366 + 0.893302, 0.000000, 0.000000, 0.449458 + 0.886129, 0.000000, 0.000000, 0.463438 + 0.878738, 0.000000, 0.000000, 0.477305 + 0.871130, 0.000000, 0.000000, 0.491053 + 0.863307, 0.000000, 0.000000, 0.504680 + 0.855270, 0.000000, 0.000000, 0.518182 + 0.847023, 0.000000, 0.000000, 0.531557 + 0.838566, 0.000000, 0.000000, 0.544800 + 0.829902, 0.000000, 0.000000, 0.557909 + 0.821034, 0.000000, 0.000000, 0.570880 + 0.811962, 0.000000, 0.000000, 0.583710 + 0.802690, 0.000000, 0.000000, 0.596396 + 0.793220, 0.000000, 0.000000, 0.608935 + 0.783555, 0.000000, 0.000000, 0.621323 + 0.773695, 0.000000, 0.000000, 0.633558 + 0.763645, 0.000000, 0.000000, 0.645636 + 0.753406, 0.000000, 0.000000, 0.657555 + 0.742981, 0.000000, 0.000000, 0.669312 + 0.732373, 0.000000, 0.000000, 0.680904 + 0.721584, 0.000000, 0.000000, 0.692327 + 0.710616, 0.000000, 0.000000, 0.703580 + 0.699474, 0.000000, 0.000000, 0.714658 + 0.688158, 0.000000, 0.000000, 0.725561 + 0.676673, 0.000000, 0.000000, 0.736284 + 0.665020, 0.000000, 0.000000, 0.746825 + 0.653204, 0.000000, 0.000000, 0.757182 + 0.641226, 0.000000, 0.000000, 0.767352 + 0.629090, 0.000000, 0.000000, 0.777333 + 0.616798, 0.000000, 0.000000, 0.787121 + 0.604354, 0.000000, 0.000000, 0.796716 + 0.591761, 0.000000, 0.000000, 0.806113 + 0.579022, 0.000000, 0.000000, 0.815312 + 0.566140, 0.000000, 0.000000, 0.824309 + 0.553118, 0.000000, 0.000000, 0.833103 + 0.539960, 0.000000, 0.000000, 0.841691 + 0.526668, 0.000000, 0.000000, 0.850071 + 0.513246, 0.000000, 0.000000, 0.858241 + 0.499698, 0.000000, 0.000000, 0.866200 + 0.486026, 0.000000, 0.000000, 0.873945 + 0.472234, 0.000000, 0.000000, 0.881473 + 0.458325, 0.000000, 0.000000, 0.888785 + 0.444304, 0.000000, 0.000000, 0.895876 + 0.430172, 0.000000, 0.000000, 0.902747 + 0.415935, 0.000000, 0.000000, 0.909394 + 0.401594, 0.000000, 0.000000, 0.915818 + 0.387155, 0.000000, 0.000000, 0.922015 + 0.372620, 0.000000, 0.000000, 0.927984 + 0.357993, 0.000000, 0.000000, 0.933724 + 0.343278, 0.000000, 0.000000, 0.939234 + 0.328478, 0.000000, 0.000000, 0.944512 + 0.313596, 0.000000, 0.000000, 0.949556 + 0.298638, 0.000000, 0.000000, 0.954367 + 0.283605, 0.000000, 0.000000, 0.958941 + 0.268503, 0.000000, 0.000000, 0.963279 + 0.253334, 0.000000, 0.000000, 0.967379 + 0.238103, 0.000000, 0.000000, 0.971240 + 0.222813, 0.000000, 0.000000, 0.974861 + 0.207468, 0.000000, 0.000000, 0.978242 + 0.192071, 0.000000, 0.000000, 0.981381 + 0.176628, 0.000000, 0.000000, 0.984278 + 0.161140, 0.000000, 0.000000, 0.986932 + 0.145613, 0.000000, 0.000000, 0.989342 + 0.130050, 0.000000, 0.000000, 0.991507 + 0.114455, 0.000000, 0.000000, 0.993428 + 0.098832, 0.000000, 0.000000, 0.995104 + 0.083184, 0.000000, 0.000000, 0.996534 + 0.067515, 0.000000, 0.000000, 0.997718 + 0.051830, 0.000000, 0.000000, 0.998656 + 0.036132, 0.000000, 0.000000, 0.999347 + 0.020426, 0.000000, 0.000000, 0.999791 + 0.004714, 0.000000, 0.000000, 0.999989 + -0.010999, -0.000000, 0.000000, 0.999940 + -0.026709, -0.000000, 0.000000, 0.999643 + -0.042413, -0.000000, 0.000000, 0.999100 + -0.058106, -0.000000, 0.000000, 0.998310 + -0.073785, -0.000000, 0.000000, 0.997274 + -0.089446, -0.000000, 0.000000, 0.995992 + -0.105084, -0.000000, 0.000000, 0.994463 + -0.120697, -0.000000, 0.000000, 0.992689 + -0.136279, -0.000000, 0.000000, 0.990670 + -0.151829, -0.000000, 0.000000, 0.988407 + -0.167340, -0.000000, 0.000000, 0.985899 + -0.182811, -0.000000, 0.000000, 0.983148 + -0.198236, -0.000000, 0.000000, 0.980154 + -0.213612, -0.000000, 0.000000, 0.976919 + -0.228936, -0.000000, 0.000000, 0.973442 + -0.244203, -0.000000, 0.000000, 0.969724 + -0.259409, -0.000000, 0.000000, 0.965767 + -0.274552, -0.000000, 0.000000, 0.961572 + -0.289627, -0.000000, 0.000000, 0.957140 + -0.304630, -0.000000, 0.000000, 0.952471 + -0.319558, -0.000000, 0.000000, 0.947567 + -0.334407, -0.000000, 0.000000, 0.942429 + -0.349174, -0.000000, 0.000000, 0.937058 + -0.363855, -0.000000, 0.000000, 0.931456 + -0.378445, -0.000000, 0.000000, 0.925624 + -0.392942, -0.000000, 0.000000, 0.919563 + -0.407343, -0.000000, 0.000000, 0.913275 + -0.421642, -0.000000, 0.000000, 0.906762 + -0.435838, -0.000000, 0.000000, 0.900025 + -0.449926, -0.000000, 0.000000, 0.893066 + -0.463902, -0.000000, 0.000000, 0.885886 + -0.477765, -0.000000, 0.000000, 0.878488 + -0.491509, -0.000000, 0.000000, 0.870872 + -0.505132, -0.000000, 0.000000, 0.863042 + -0.518630, -0.000000, 0.000000, 0.854999 + -0.532000, -0.000000, 0.000000, 0.846744 + -0.545239, -0.000000, 0.000000, 0.838280 + -0.558343, -0.000000, 0.000000, 0.829610 + -0.571310, -0.000000, 0.000000, 0.820734 + -0.584135, -0.000000, 0.000000, 0.811656 + -0.596816, -0.000000, 0.000000, 0.802378 + -0.609350, -0.000000, 0.000000, 0.792901 + -0.621733, -0.000000, 0.000000, 0.783229 + -0.633963, -0.000000, 0.000000, 0.773363 + -0.646036, -0.000000, 0.000000, 0.763307 + -0.657950, -0.000000, 0.000000, 0.753062 + -0.669701, -0.000000, 0.000000, 0.742631 + -0.681287, -0.000000, 0.000000, 0.732016 + -0.692705, -0.000000, 0.000000, 0.721221 + -0.703952, -0.000000, 0.000000, 0.710248 + -0.715025, -0.000000, 0.000000, 0.699099 + -0.725921, -0.000000, 0.000000, 0.687778 + -0.736638, -0.000000, 0.000000, 0.676287 + -0.747173, -0.000000, 0.000000, 0.664629 + -0.757524, -0.000000, 0.000000, 0.652807 + -0.767688, -0.000000, 0.000000, 0.640824 + -0.777662, -0.000000, 0.000000, 0.628682 + -0.787444, -0.000000, 0.000000, 0.616386 + -0.797032, -0.000000, 0.000000, 0.603937 + -0.806423, -0.000000, 0.000000, 0.591339 + -0.815615, -0.000000, 0.000000, 0.578595 + -0.824606, -0.000000, 0.000000, 0.565708 + -0.833392, -0.000000, 0.000000, 0.552682 + -0.841974, -0.000000, 0.000000, 0.539519 + -0.850347, -0.000000, 0.000000, 0.526223 + -0.858510, -0.000000, 0.000000, 0.512797 + -0.866462, -0.000000, 0.000000, 0.499244 + -0.874199, -0.000000, 0.000000, 0.485568 + -0.881721, -0.000000, 0.000000, 0.471772 + -0.889024, -0.000000, 0.000000, 0.457860 + -0.896109, -0.000000, 0.000000, 0.443834 + -0.902972, -0.000000, 0.000000, 0.429699 + -0.909612, -0.000000, 0.000000, 0.415458 + -0.916028, -0.000000, 0.000000, 0.401115 + -0.922217, -0.000000, 0.000000, 0.386672 + -0.928179, -0.000000, 0.000000, 0.372134 + -0.933912, -0.000000, 0.000000, 0.357504 + -0.939414, -0.000000, 0.000000, 0.342786 + -0.944684, -0.000000, 0.000000, 0.327983 + -0.949721, -0.000000, 0.000000, 0.313099 + -0.954523, -0.000000, 0.000000, 0.298138 + -0.959090, -0.000000, 0.000000, 0.283103 + -0.963419, -0.000000, 0.000000, 0.267998 + -0.967511, -0.000000, 0.000000, 0.252827 + -0.971365, -0.000000, 0.000000, 0.237594 + -0.974978, -0.000000, 0.000000, 0.222302 + -0.978350, -0.000000, 0.000000, 0.206955 + -0.981481, -0.000000, 0.000000, 0.191557 + -0.984370, -0.000000, 0.000000, 0.176112 + -0.987016, -0.000000, 0.000000, 0.160623 + -0.989418, -0.000000, 0.000000, 0.145095 + -0.991575, -0.000000, 0.000000, 0.129531 + -0.993488, -0.000000, 0.000000, 0.113935 + -0.995156, -0.000000, 0.000000, 0.098310 + -0.996578, -0.000000, 0.000000, 0.082662 + -0.997753, -0.000000, 0.000000, 0.066993 + -0.998683, -0.000000, 0.000000, 0.051307 + -0.999366, -0.000000, 0.000000, 0.035609 + -0.999802, -0.000000, 0.000000, 0.019902 + -0.999991, -0.000000, 0.000000, 0.004190 + -0.999934, 0.000000, -0.000000, -0.011523 + -0.999629, 0.000000, -0.000000, -0.027233 + -0.999078, 0.000000, -0.000000, -0.042936 + -0.998280, 0.000000, -0.000000, -0.058629 + -0.997235, 0.000000, -0.000000, -0.074307 + -0.995945, 0.000000, -0.000000, -0.089967 + -0.994408, 0.000000, -0.000000, -0.105605 + -0.992626, 0.000000, -0.000000, -0.121217 + -0.990599, 0.000000, -0.000000, -0.136798 + -0.988327, 0.000000, -0.000000, -0.152346 + -0.985811, 0.000000, -0.000000, -0.167857 + -0.983052, 0.000000, -0.000000, -0.183326 + -0.980050, 0.000000, -0.000000, -0.198749 + -0.976807, 0.000000, -0.000000, -0.214124 + -0.973322, 0.000000, -0.000000, -0.229445 + -0.969596, 0.000000, -0.000000, -0.244710 + -0.965631, 0.000000, -0.000000, -0.259915 + -0.961428, 0.000000, -0.000000, -0.275056 + -0.956988, 0.000000, -0.000000, -0.290128 + -0.952311, 0.000000, -0.000000, -0.305129 + -0.947399, 0.000000, -0.000000, -0.320055 + -0.942253, 0.000000, -0.000000, -0.334901 + -0.936875, 0.000000, -0.000000, -0.349665 + -0.931265, 0.000000, -0.000000, -0.364342 + -0.925425, 0.000000, -0.000000, -0.378930 + -0.919357, 0.000000, -0.000000, -0.393424 + -0.913062, 0.000000, -0.000000, -0.407821 + -0.906541, 0.000000, -0.000000, -0.422117 + -0.899797, 0.000000, -0.000000, -0.436309 + -0.892830, 0.000000, -0.000000, -0.450393 + -0.885643, 0.000000, -0.000000, -0.464366 + -0.878237, 0.000000, -0.000000, -0.478225 + -0.870615, 0.000000, -0.000000, -0.491965 + -0.862777, 0.000000, -0.000000, -0.505584 + -0.854727, 0.000000, -0.000000, -0.519078 + -0.846465, 0.000000, -0.000000, -0.532444 + -0.837995, 0.000000, -0.000000, -0.545678 + -0.829317, 0.000000, -0.000000, -0.558778 + -0.820435, 0.000000, -0.000000, -0.571740 + -0.811350, 0.000000, -0.000000, -0.584560 + -0.802065, 0.000000, -0.000000, -0.597236 + -0.792582, 0.000000, -0.000000, -0.609765 + -0.782903, 0.000000, -0.000000, -0.622143 + -0.773031, 0.000000, -0.000000, -0.634368 + -0.762968, 0.000000, -0.000000, -0.646436 + -0.752717, 0.000000, -0.000000, -0.658344 + -0.742280, 0.000000, -0.000000, -0.670090 + -0.731659, 0.000000, -0.000000, -0.681671 + -0.720858, 0.000000, -0.000000, -0.693083 + -0.709879, 0.000000, -0.000000, -0.704324 + -0.698725, 0.000000, -0.000000, -0.715391 + -0.687398, 0.000000, -0.000000, -0.726281 + -0.675901, 0.000000, -0.000000, -0.736992 + -0.664238, 0.000000, -0.000000, -0.747521 + -0.652410, 0.000000, -0.000000, -0.757866 + -0.640422, 0.000000, -0.000000, -0.768023 + -0.628275, 0.000000, -0.000000, -0.777991 + -0.615973, 0.000000, -0.000000, -0.787767 + -0.603519, 0.000000, -0.000000, -0.797348 + -0.590917, 0.000000, -0.000000, -0.806733 + -0.578168, 0.000000, -0.000000, -0.815918 + -0.565276, 0.000000, -0.000000, -0.824902 + -0.552245, 0.000000, -0.000000, -0.833682 + -0.539078, 0.000000, -0.000000, -0.842256 + -0.525777, 0.000000, -0.000000, -0.850622 + -0.512347, 0.000000, -0.000000, -0.858779 + -0.498790, 0.000000, -0.000000, -0.866723 + -0.485110, 0.000000, -0.000000, -0.874453 + -0.471310, 0.000000, -0.000000, -0.881968 + -0.457394, 0.000000, -0.000000, -0.889264 + -0.443365, 0.000000, -0.000000, -0.896341 + -0.429226, 0.000000, -0.000000, -0.903197 + -0.414982, 0.000000, -0.000000, -0.909830 + -0.400635, 0.000000, -0.000000, -0.916238 + -0.386189, 0.000000, -0.000000, -0.922420 + -0.371648, 0.000000, -0.000000, -0.928374 + -0.357015, 0.000000, -0.000000, -0.934099 + -0.342294, 0.000000, -0.000000, -0.939593 + -0.327488, 0.000000, -0.000000, -0.944855 + -0.312601, 0.000000, -0.000000, -0.949884 + -0.297638, 0.000000, -0.000000, -0.954679 + -0.282600, 0.000000, -0.000000, -0.959238 + -0.267494, 0.000000, -0.000000, -0.963560 + -0.252321, 0.000000, -0.000000, -0.967644 + -0.237085, 0.000000, -0.000000, -0.971489 + -0.221791, 0.000000, -0.000000, -0.975094 + -0.206443, 0.000000, -0.000000, -0.978459 + -0.191043, 0.000000, -0.000000, -0.981582 + -0.175596, 0.000000, -0.000000, -0.984462 + -0.160106, 0.000000, -0.000000, -0.987100 + -0.144577, 0.000000, -0.000000, -0.989494 + -0.129011, 0.000000, -0.000000, -0.991643 + -0.113414, 0.000000, -0.000000, -0.993548 + -0.097789, 0.000000, -0.000000, -0.995207 + -0.082140, 0.000000, -0.000000, -0.996621 + -0.066470, 0.000000, -0.000000, -0.997788 + -0.050784, 0.000000, -0.000000, -0.998710 + -0.035086, 0.000000, -0.000000, -0.999384 + -0.019378, 0.000000, -0.000000, -0.999812 + -0.003666, 0.000000, -0.000000, -0.999993 + 0.012046, 0.000000, 0.000000, -0.999927 + 0.027756, 0.000000, 0.000000, -0.999615 + 0.043459, 0.000000, 0.000000, -0.999055 + 0.059152, 0.000000, 0.000000, -0.998249 + 0.074830, 0.000000, 0.000000, -0.997196 + 0.090489, 0.000000, 0.000000, -0.995897 + 0.106126, 0.000000, 0.000000, -0.994353 + 0.121736, 0.000000, 0.000000, -0.992562 + 0.137317, 0.000000, 0.000000, -0.990527 + 0.152864, 0.000000, 0.000000, -0.988247 + 0.168373, 0.000000, 0.000000, -0.985723 + 0.183840, 0.000000, 0.000000, -0.982956 + 0.199262, 0.000000, 0.000000, -0.979946 + 0.214635, 0.000000, 0.000000, -0.976694 + 0.229955, 0.000000, 0.000000, -0.973201 + 0.245218, 0.000000, 0.000000, -0.969468 + 0.260421, 0.000000, 0.000000, -0.965495 + 0.275559, 0.000000, 0.000000, -0.961284 + 0.290629, 0.000000, 0.000000, -0.956836 + 0.305628, 0.000000, 0.000000, -0.952151 + 0.320551, 0.000000, 0.000000, -0.947231 + 0.335395, 0.000000, 0.000000, -0.942078 + 0.350156, 0.000000, 0.000000, -0.936692 + 0.364830, 0.000000, 0.000000, -0.931074 + 0.379415, 0.000000, 0.000000, -0.925227 + 0.393906, 0.000000, 0.000000, -0.919151 + 0.408299, 0.000000, 0.000000, -0.912848 + 0.422592, 0.000000, 0.000000, -0.906320 + 0.436780, 0.000000, 0.000000, -0.899568 + 0.450861, 0.000000, 0.000000, -0.892594 + 0.464830, 0.000000, 0.000000, -0.885400 + 0.478685, 0.000000, 0.000000, -0.877987 + 0.492421, 0.000000, 0.000000, -0.870357 + 0.506036, 0.000000, 0.000000, -0.862512 + 0.519526, 0.000000, 0.000000, -0.854455 + 0.532887, 0.000000, 0.000000, -0.846186 + 0.546117, 0.000000, 0.000000, -0.837709 + 0.559212, 0.000000, 0.000000, -0.829025 + 0.572169, 0.000000, 0.000000, -0.820136 + 0.584985, 0.000000, 0.000000, -0.811044 + 0.597656, 0.000000, 0.000000, -0.801752 + 0.610180, 0.000000, 0.000000, -0.792263 + 0.622553, 0.000000, 0.000000, -0.782577 + 0.634773, 0.000000, 0.000000, -0.772699 + 0.646835, 0.000000, 0.000000, -0.762630 + 0.658739, 0.000000, 0.000000, -0.752372 + 0.670479, 0.000000, 0.000000, -0.741929 + 0.682054, 0.000000, 0.000000, -0.731302 + 0.693460, 0.000000, 0.000000, -0.720495 + 0.704695, 0.000000, 0.000000, -0.709510 + 0.715757, 0.000000, 0.000000, -0.698350 + 0.726641, 0.000000, 0.000000, -0.687017 + 0.737346, 0.000000, 0.000000, -0.675515 + 0.747869, 0.000000, 0.000000, -0.663846 + 0.758208, 0.000000, 0.000000, -0.652013 + 0.768359, 0.000000, 0.000000, -0.640019 + 0.778320, 0.000000, 0.000000, -0.627867 + 0.788090, 0.000000, 0.000000, -0.615561 + 0.797664, 0.000000, 0.000000, -0.603102 + 0.807042, 0.000000, 0.000000, -0.590494 + 0.816221, 0.000000, 0.000000, -0.577740 + 0.825198, 0.000000, 0.000000, -0.564844 + 0.833971, 0.000000, 0.000000, -0.551808 + 0.842538, 0.000000, 0.000000, -0.538636 + 0.850898, 0.000000, 0.000000, -0.525332 + 0.859047, 0.000000, 0.000000, -0.511897 + 0.866984, 0.000000, 0.000000, -0.498336 + 0.874707, 0.000000, 0.000000, -0.484652 + 0.882214, 0.000000, 0.000000, -0.470848 + 0.889504, 0.000000, 0.000000, -0.456928 + 0.896573, 0.000000, 0.000000, -0.442895 + 0.903422, 0.000000, 0.000000, -0.428753 + 0.910047, 0.000000, 0.000000, -0.414505 + 0.916448, 0.000000, 0.000000, -0.400155 + 0.922622, 0.000000, 0.000000, -0.385706 + 0.928568, 0.000000, 0.000000, -0.371161 + 0.934286, 0.000000, 0.000000, -0.356525 + 0.939772, 0.000000, 0.000000, -0.341801 + 0.945027, 0.000000, 0.000000, -0.326993 + 0.950048, 0.000000, 0.000000, -0.312104 + 0.954835, 0.000000, 0.000000, -0.297138 + 0.959386, 0.000000, 0.000000, -0.282098 + 0.963700, 0.000000, 0.000000, -0.266989 + 0.967776, 0.000000, 0.000000, -0.251814 + 0.971613, 0.000000, 0.000000, -0.236576 + 0.975210, 0.000000, 0.000000, -0.221281 + 0.978567, 0.000000, 0.000000, -0.205930 + 0.981682, 0.000000, 0.000000, -0.190529 + 0.984554, 0.000000, 0.000000, -0.175081 + 0.987183, 0.000000, 0.000000, -0.159589 + 0.989569, 0.000000, 0.000000, -0.144058 + 0.991711, 0.000000, 0.000000, -0.128492 + 0.993607, 0.000000, 0.000000, -0.112894 + 0.995258, 0.000000, 0.000000, -0.097268 + 0.996664, 0.000000, 0.000000, -0.081618 + 0.997823, 0.000000, 0.000000, -0.065948 + 0.998736, 0.000000, 0.000000, -0.050261 + 0.999403, 0.000000, 0.000000, -0.034562 + 0.999822, 0.000000, 0.000000, -0.018855 + 0.999995, 0.000000, 0.000000, -0.003143 + 0.999921, 0.000000, 0.000000, 0.012570 + 0.999600, 0.000000, 0.000000, 0.028280 + 0.999032, 0.000000, 0.000000, 0.043983 + 0.998218, 0.000000, 0.000000, 0.059675 + 0.997157, 0.000000, 0.000000, 0.075352 + 0.995850, 0.000000, 0.000000, 0.091010 + 0.994297, 0.000000, 0.000000, 0.106647 + 0.992499, 0.000000, 0.000000, 0.122256 + 0.990455, 0.000000, 0.000000, 0.137836 + 0.988167, 0.000000, 0.000000, 0.153382 + 0.985635, 0.000000, 0.000000, 0.168889 + 0.982860, 0.000000, 0.000000, 0.184355 + 0.979842, 0.000000, 0.000000, 0.199776 + 0.976582, 0.000000, 0.000000, 0.215147 + 0.973081, 0.000000, 0.000000, 0.230465 + 0.969339, 0.000000, 0.000000, 0.245726 + 0.965359, 0.000000, 0.000000, 0.260926 + 0.961140, 0.000000, 0.000000, 0.276062 + 0.956683, 0.000000, 0.000000, 0.291130 + 0.951991, 0.000000, 0.000000, 0.306126 + 0.947063, 0.000000, 0.000000, 0.321047 + 0.941902, 0.000000, 0.000000, 0.335888 + 0.936508, 0.000000, 0.000000, 0.350646 + 0.930883, 0.000000, 0.000000, 0.365318 + 0.925028, 0.000000, 0.000000, 0.379899 + 0.918944, 0.000000, 0.000000, 0.394387 + 0.912634, 0.000000, 0.000000, 0.408777 + 0.906099, 0.000000, 0.000000, 0.423067 + 0.899339, 0.000000, 0.000000, 0.437251 + 0.892358, 0.000000, 0.000000, 0.451328 + 0.885156, 0.000000, 0.000000, 0.465294 + 0.877736, 0.000000, 0.000000, 0.479145 + 0.870099, 0.000000, 0.000000, 0.492877 + 0.862247, 0.000000, 0.000000, 0.506487 + 0.854183, 0.000000, 0.000000, 0.519973 + 0.845907, 0.000000, 0.000000, 0.533330 + 0.837423, 0.000000, 0.000000, 0.546556 + 0.828732, 0.000000, 0.000000, 0.559646 + 0.819836, 0.000000, 0.000000, 0.572599 + 0.810738, 0.000000, 0.000000, 0.585410 + 0.801439, 0.000000, 0.000000, 0.598076 + 0.791943, 0.000000, 0.000000, 0.610595 + 0.782251, 0.000000, 0.000000, 0.622963 + 0.772366, 0.000000, 0.000000, 0.635177 + 0.762291, 0.000000, 0.000000, 0.647235 + 0.752027, 0.000000, 0.000000, 0.659132 + 0.741577, 0.000000, 0.000000, 0.670867 + 0.730945, 0.000000, 0.000000, 0.682437 + 0.720132, 0.000000, 0.000000, 0.693837 + 0.709141, 0.000000, 0.000000, 0.705067 + 0.697975, 0.000000, 0.000000, 0.716122 + 0.686637, 0.000000, 0.000000, 0.727001 + 0.675129, 0.000000, 0.000000, 0.737700 + 0.663454, 0.000000, 0.000000, 0.748217 + 0.651616, 0.000000, 0.000000, 0.758549 + 0.639617, 0.000000, 0.000000, 0.768694 + 0.627460, 0.000000, 0.000000, 0.778649 + 0.615148, 0.000000, 0.000000, 0.788412 + 0.602684, 0.000000, 0.000000, 0.797980 + 0.590071, 0.000000, 0.000000, 0.807351 + 0.577313, 0.000000, 0.000000, 0.816523 + 0.564412, 0.000000, 0.000000, 0.825493 + 0.551371, 0.000000, 0.000000, 0.834260 + 0.538195, 0.000000, 0.000000, 0.842820 + 0.524886, 0.000000, 0.000000, 0.851173 + 0.511447, 0.000000, 0.000000, 0.859315 + 0.497882, 0.000000, 0.000000, 0.867245 + 0.484194, 0.000000, 0.000000, 0.874961 + 0.470386, 0.000000, 0.000000, 0.882461 + 0.456462, 0.000000, 0.000000, 0.889743 + 0.442426, 0.000000, 0.000000, 0.896805 + 0.428280, 0.000000, 0.000000, 0.903646 + 0.414029, 0.000000, 0.000000, 0.910264 + 0.399675, 0.000000, 0.000000, 0.916657 + 0.385222, 0.000000, 0.000000, 0.922824 + 0.370675, 0.000000, 0.000000, 0.928763 + 0.356036, 0.000000, 0.000000, 0.934472 + 0.341309, 0.000000, 0.000000, 0.939951 + 0.326498, 0.000000, 0.000000, 0.945198 + 0.311606, 0.000000, 0.000000, 0.950211 + 0.296637, 0.000000, 0.000000, 0.954990 + 0.281595, 0.000000, 0.000000, 0.959533 + 0.266484, 0.000000, 0.000000, 0.963839 + 0.251307, 0.000000, 0.000000, 0.967907 + 0.236067, 0.000000, 0.000000, 0.971737 + 0.220770, 0.000000, 0.000000, 0.975326 + 0.205418, 0.000000, 0.000000, 0.978674 + 0.190015, 0.000000, 0.000000, 0.981781 + 0.174565, 0.000000, 0.000000, 0.984646 + 0.159072, 0.000000, 0.000000, 0.987267 + 0.143540, 0.000000, 0.000000, 0.989644 + 0.127973, 0.000000, 0.000000, 0.991778 + 0.112373, 0.000000, 0.000000, 0.993666 + 0.096747, 0.000000, 0.000000, 0.995309 + 0.081096, 0.000000, 0.000000, 0.996706 + 0.065425, 0.000000, 0.000000, 0.997857 + 0.049738, 0.000000, 0.000000, 0.998762 + 0.034039, 0.000000, 0.000000, 0.999421 + 0.018331, 0.000000, 0.000000, 0.999832 + 0.002619, 0.000000, 0.000000, 0.999997 + -0.013094, -0.000000, 0.000000, 0.999914 + -0.028804, -0.000000, 0.000000, 0.999585 + -0.044506, -0.000000, 0.000000, 0.999009 + -0.060198, -0.000000, 0.000000, 0.998186 + -0.075874, -0.000000, 0.000000, 0.997117 + -0.091532, -0.000000, 0.000000, 0.995802 + -0.107167, -0.000000, 0.000000, 0.994241 + -0.122776, -0.000000, 0.000000, 0.992434 + -0.138355, -0.000000, 0.000000, 0.990383 + -0.153899, -0.000000, 0.000000, 0.988087 + -0.169405, -0.000000, 0.000000, 0.985546 + -0.184870, -0.000000, 0.000000, 0.982763 + -0.200289, -0.000000, 0.000000, 0.979737 + -0.215658, -0.000000, 0.000000, 0.976469 + -0.230975, -0.000000, 0.000000, 0.972960 + -0.246234, -0.000000, 0.000000, 0.969210 + -0.261432, -0.000000, 0.000000, 0.965222 + -0.276566, -0.000000, 0.000000, 0.960995 + -0.291631, -0.000000, 0.000000, 0.956531 + -0.306625, -0.000000, 0.000000, 0.951830 + -0.321543, -0.000000, 0.000000, 0.946895 + -0.336381, -0.000000, 0.000000, 0.941726 + -0.351137, -0.000000, 0.000000, 0.936324 + -0.365805, -0.000000, 0.000000, 0.930691 + -0.380384, -0.000000, 0.000000, 0.924829 + -0.394868, -0.000000, 0.000000, 0.918738 + -0.409255, -0.000000, 0.000000, 0.912420 + -0.423541, -0.000000, 0.000000, 0.905877 + -0.437722, -0.000000, 0.000000, 0.899110 + -0.451796, -0.000000, 0.000000, 0.892121 + -0.465757, -0.000000, 0.000000, 0.884912 + -0.479604, -0.000000, 0.000000, 0.877485 + -0.493332, -0.000000, 0.000000, 0.869841 + -0.506939, -0.000000, 0.000000, 0.861982 + -0.520420, -0.000000, 0.000000, 0.853910 + -0.533773, -0.000000, 0.000000, 0.845628 + -0.546994, -0.000000, 0.000000, 0.837136 + -0.560080, -0.000000, 0.000000, 0.828438 + -0.573028, -0.000000, 0.000000, 0.819536 + -0.585834, -0.000000, 0.000000, 0.810431 + -0.598496, -0.000000, 0.000000, 0.801126 + -0.611010, -0.000000, 0.000000, 0.791623 + -0.623373, -0.000000, 0.000000, 0.781925 + -0.635582, -0.000000, 0.000000, 0.772033 + -0.647634, -0.000000, 0.000000, 0.761952 + -0.659526, -0.000000, 0.000000, 0.751682 + -0.671256, -0.000000, 0.000000, 0.741226 + -0.682819, -0.000000, 0.000000, 0.730587 + -0.694214, -0.000000, 0.000000, 0.719768 + -0.705438, -0.000000, 0.000000, 0.708771 + -0.716488, -0.000000, 0.000000, 0.697600 + -0.727360, -0.000000, 0.000000, 0.686256 + -0.738053, -0.000000, 0.000000, 0.674742 + -0.748564, -0.000000, 0.000000, 0.663062 + -0.758890, -0.000000, 0.000000, 0.651219 + -0.769029, -0.000000, 0.000000, 0.639214 + -0.778978, -0.000000, 0.000000, 0.627052 + -0.788734, -0.000000, 0.000000, 0.614735 + -0.798296, -0.000000, 0.000000, 0.602266 + -0.807660, -0.000000, 0.000000, 0.589648 + -0.816825, -0.000000, 0.000000, 0.576885 + -0.825789, -0.000000, 0.000000, 0.563979 + -0.834549, -0.000000, 0.000000, 0.550934 + -0.843102, -0.000000, 0.000000, 0.537754 + -0.851447, -0.000000, 0.000000, 0.524440 + -0.859583, -0.000000, 0.000000, 0.510997 + -0.867506, -0.000000, 0.000000, 0.497427 + -0.875214, -0.000000, 0.000000, 0.483735 + -0.882707, -0.000000, 0.000000, 0.469924 + -0.889982, -0.000000, 0.000000, 0.455996 + -0.897037, -0.000000, 0.000000, 0.441956 + -0.903870, -0.000000, 0.000000, 0.427807 + -0.910481, -0.000000, 0.000000, 0.413552 + -0.916866, -0.000000, 0.000000, 0.399195 + -0.923025, -0.000000, 0.000000, 0.384739 + -0.928957, -0.000000, 0.000000, 0.370188 + -0.934659, -0.000000, 0.000000, 0.355547 + -0.940130, -0.000000, 0.000000, 0.340817 + -0.945369, -0.000000, 0.000000, 0.326003 + -0.950374, -0.000000, 0.000000, 0.311108 + -0.955145, -0.000000, 0.000000, 0.296137 + -0.959681, -0.000000, 0.000000, 0.281093 + -0.963979, -0.000000, 0.000000, 0.265979 + -0.968039, -0.000000, 0.000000, 0.250800 + -0.971860, -0.000000, 0.000000, 0.235558 + -0.975441, -0.000000, 0.000000, 0.220259 + -0.978782, -0.000000, 0.000000, 0.204905 + -0.981881, -0.000000, 0.000000, 0.189501 + -0.984737, -0.000000, 0.000000, 0.174049 + -0.987350, -0.000000, 0.000000, 0.158555 + -0.989720, -0.000000, 0.000000, 0.143022 + -0.991845, -0.000000, 0.000000, 0.127453 + -0.993725, -0.000000, 0.000000, 0.111853 + -0.995360, -0.000000, 0.000000, 0.096225 + -0.996749, -0.000000, 0.000000, 0.080574 + -0.997892, -0.000000, 0.000000, 0.064902 + -0.998788, -0.000000, 0.000000, 0.049215 + -0.999438, -0.000000, 0.000000, 0.033515 + -0.999841, -0.000000, 0.000000, 0.017807 + -0.999998, -0.000000, 0.000000, 0.002095 + -0.999907, 0.000000, -0.000000, -0.013618 + -0.999570, 0.000000, -0.000000, -0.029327 + -0.998986, 0.000000, -0.000000, -0.045029 + -0.998155, 0.000000, -0.000000, -0.060720 + -0.997078, 0.000000, -0.000000, -0.076396 + -0.995754, 0.000000, -0.000000, -0.092054 + -0.994185, 0.000000, -0.000000, -0.107688 + -0.992370, 0.000000, -0.000000, -0.123296 + -0.990310, 0.000000, -0.000000, -0.138873 + -0.988006, 0.000000, -0.000000, -0.154417 + -0.985458, 0.000000, -0.000000, -0.169922 + -0.982666, 0.000000, -0.000000, -0.185385 + -0.979632, 0.000000, -0.000000, -0.200802 + -0.976356, 0.000000, -0.000000, -0.216170 + -0.972839, 0.000000, -0.000000, -0.231484 + -0.969081, 0.000000, -0.000000, -0.246741 + -0.965085, 0.000000, -0.000000, -0.261938 + -0.960850, 0.000000, -0.000000, -0.277069 + -0.956378, 0.000000, -0.000000, -0.292132 + -0.951670, 0.000000, -0.000000, -0.307123 + -0.946727, 0.000000, -0.000000, -0.322039 + -0.941550, 0.000000, -0.000000, -0.336874 + -0.936140, 0.000000, -0.000000, -0.351627 + -0.930500, 0.000000, -0.000000, -0.366293 + -0.924629, 0.000000, -0.000000, -0.380868 + -0.918531, 0.000000, -0.000000, -0.395349 + -0.912206, 0.000000, -0.000000, -0.409733 + -0.905655, 0.000000, -0.000000, -0.424015 + -0.898881, 0.000000, -0.000000, -0.438193 + -0.891885, 0.000000, -0.000000, -0.452263 + -0.884668, 0.000000, -0.000000, -0.466221 + -0.877234, 0.000000, -0.000000, -0.480064 + -0.869582, 0.000000, -0.000000, -0.493788 + -0.861716, 0.000000, -0.000000, -0.507390 + -0.853638, 0.000000, -0.000000, -0.520868 + -0.845348, 0.000000, -0.000000, -0.534216 + -0.836850, 0.000000, -0.000000, -0.547433 + -0.828145, 0.000000, -0.000000, -0.560514 + -0.819235, 0.000000, -0.000000, -0.573457 + -0.810124, 0.000000, -0.000000, -0.586259 + -0.800812, 0.000000, -0.000000, -0.598915 + -0.791303, 0.000000, -0.000000, -0.611424 + -0.781598, 0.000000, -0.000000, -0.623782 + -0.771700, 0.000000, -0.000000, -0.635986 + -0.761612, 0.000000, -0.000000, -0.648033 + -0.751336, 0.000000, -0.000000, -0.659920 + -0.740874, 0.000000, -0.000000, -0.671644 + -0.730229, 0.000000, -0.000000, -0.683202 + -0.719404, 0.000000, -0.000000, -0.694591 + -0.708402, 0.000000, -0.000000, -0.705809 + -0.697224, 0.000000, -0.000000, -0.716853 + -0.685875, 0.000000, -0.000000, -0.727720 + -0.674356, 0.000000, -0.000000, -0.738407 + -0.662670, 0.000000, -0.000000, -0.748911 + -0.650821, 0.000000, -0.000000, -0.759231 + -0.638811, 0.000000, -0.000000, -0.769363 + -0.626644, 0.000000, -0.000000, -0.779306 + -0.614321, 0.000000, -0.000000, -0.789056 + -0.601848, 0.000000, -0.000000, -0.798611 + -0.589225, 0.000000, -0.000000, -0.807969 + -0.576457, 0.000000, -0.000000, -0.817127 + -0.563547, 0.000000, -0.000000, -0.826084 + -0.550497, 0.000000, -0.000000, -0.834837 + -0.537312, 0.000000, -0.000000, -0.843384 + -0.523994, 0.000000, -0.000000, -0.851722 + -0.510546, 0.000000, -0.000000, -0.859850 + -0.496973, 0.000000, -0.000000, -0.867766 + -0.483277, 0.000000, -0.000000, -0.875468 + -0.469461, 0.000000, -0.000000, -0.882953 + -0.455530, 0.000000, -0.000000, -0.890220 + -0.441486, 0.000000, -0.000000, -0.897268 + -0.427333, 0.000000, -0.000000, -0.904094 + -0.413075, 0.000000, -0.000000, -0.910697 + -0.398714, 0.000000, -0.000000, -0.917075 + -0.384256, 0.000000, -0.000000, -0.923227 + -0.369702, 0.000000, -0.000000, -0.929150 + -0.355057, 0.000000, -0.000000, -0.934845 + -0.340324, 0.000000, -0.000000, -0.940308 + -0.325508, 0.000000, -0.000000, -0.945539 + -0.310611, 0.000000, -0.000000, -0.950537 + -0.295637, 0.000000, -0.000000, -0.955300 + -0.280590, 0.000000, -0.000000, -0.959828 + -0.265474, 0.000000, -0.000000, -0.964118 + -0.250293, 0.000000, -0.000000, -0.968170 + -0.235049, 0.000000, -0.000000, -0.971983 + -0.219748, 0.000000, -0.000000, -0.975557 + -0.204392, 0.000000, -0.000000, -0.978889 + -0.188986, 0.000000, -0.000000, -0.981980 + -0.173534, 0.000000, -0.000000, -0.984828 + -0.158038, 0.000000, -0.000000, -0.987433 + -0.142503, 0.000000, -0.000000, -0.989794 + -0.126934, 0.000000, -0.000000, -0.991911 + -0.111332, 0.000000, -0.000000, -0.993783 + -0.095704, 0.000000, -0.000000, -0.995410 + -0.080052, 0.000000, -0.000000, -0.996791 + -0.064380, 0.000000, -0.000000, -0.997925 + -0.048692, 0.000000, -0.000000, -0.998814 + -0.032992, 0.000000, -0.000000, -0.999456 + -0.017284, 0.000000, -0.000000, -0.999851 + -0.001571, 0.000000, -0.000000, -0.999999 + 0.014141, 0.000000, 0.000000, -0.999900 + 0.029851, 0.000000, 0.000000, -0.999554 + 0.045553, 0.000000, 0.000000, -0.998962 + 0.061243, 0.000000, 0.000000, -0.998123 + 0.076919, 0.000000, 0.000000, -0.997037 + 0.092575, 0.000000, 0.000000, -0.995706 + 0.108209, 0.000000, 0.000000, -0.994128 + 0.123816, 0.000000, 0.000000, -0.992305 + 0.139392, 0.000000, 0.000000, -0.990237 + 0.154934, 0.000000, 0.000000, -0.987925 + 0.170438, 0.000000, 0.000000, -0.985368 + 0.185899, 0.000000, 0.000000, -0.982569 + 0.201315, 0.000000, 0.000000, -0.979527 + 0.216681, 0.000000, 0.000000, -0.976242 + 0.231994, 0.000000, 0.000000, -0.972717 + 0.247249, 0.000000, 0.000000, -0.968952 + 0.262443, 0.000000, 0.000000, -0.964947 + 0.277572, 0.000000, 0.000000, -0.960705 + 0.292633, 0.000000, 0.000000, -0.956225 + 0.307622, 0.000000, 0.000000, -0.951509 + 0.322535, 0.000000, 0.000000, -0.946558 + 0.337368, 0.000000, 0.000000, -0.941373 + 0.352117, 0.000000, 0.000000, -0.935956 + 0.366780, 0.000000, 0.000000, -0.930308 + 0.381352, 0.000000, 0.000000, -0.924430 + 0.395830, 0.000000, 0.000000, -0.918324 + 0.410211, 0.000000, 0.000000, -0.911991 + 0.424490, 0.000000, 0.000000, -0.905433 + 0.438664, 0.000000, 0.000000, -0.898651 + 0.452730, 0.000000, 0.000000, -0.891648 + 0.466684, 0.000000, 0.000000, -0.884424 + 0.480523, 0.000000, 0.000000, -0.876982 + 0.494243, 0.000000, 0.000000, -0.869324 + 0.507842, 0.000000, 0.000000, -0.861450 + 0.521315, 0.000000, 0.000000, -0.853365 + 0.534659, 0.000000, 0.000000, -0.845068 + 0.547871, 0.000000, 0.000000, -0.836563 + 0.560948, 0.000000, 0.000000, -0.827851 + 0.573886, 0.000000, 0.000000, -0.818935 + 0.586683, 0.000000, 0.000000, -0.809817 + 0.599335, 0.000000, 0.000000, -0.800498 + 0.611839, 0.000000, 0.000000, -0.790983 + 0.624192, 0.000000, 0.000000, -0.781271 + 0.636390, 0.000000, 0.000000, -0.771367 + 0.648432, 0.000000, 0.000000, -0.761273 + 0.660313, 0.000000, 0.000000, -0.750990 + 0.672032, 0.000000, 0.000000, -0.740522 + 0.683584, 0.000000, 0.000000, -0.729872 + 0.694968, 0.000000, 0.000000, -0.719041 + 0.706180, 0.000000, 0.000000, -0.708032 + 0.717218, 0.000000, 0.000000, -0.696849 + 0.728079, 0.000000, 0.000000, -0.685493 + 0.738760, 0.000000, 0.000000, -0.673969 + 0.749258, 0.000000, 0.000000, -0.662278 + 0.759572, 0.000000, 0.000000, -0.650423 + 0.769698, 0.000000, 0.000000, -0.638408 + 0.779634, 0.000000, 0.000000, -0.626235 + 0.789377, 0.000000, 0.000000, -0.613908 + 0.798926, 0.000000, 0.000000, -0.601429 + 0.808277, 0.000000, 0.000000, -0.588802 + 0.817429, 0.000000, 0.000000, -0.576029 + 0.826379, 0.000000, 0.000000, -0.563114 + 0.835125, 0.000000, 0.000000, -0.550060 + 0.843665, 0.000000, 0.000000, -0.536870 + 0.851996, 0.000000, 0.000000, -0.523548 + 0.860117, 0.000000, 0.000000, -0.510096 + 0.868026, 0.000000, 0.000000, -0.496518 + 0.875721, 0.000000, 0.000000, -0.482818 + 0.883199, 0.000000, 0.000000, -0.468999 + 0.890459, 0.000000, 0.000000, -0.455064 + 0.897499, 0.000000, 0.000000, -0.441016 + 0.904318, 0.000000, 0.000000, -0.426860 + 0.910913, 0.000000, 0.000000, -0.412598 + 0.917284, 0.000000, 0.000000, -0.398234 + 0.923428, 0.000000, 0.000000, -0.383772 + 0.929344, 0.000000, 0.000000, -0.369215 + 0.935031, 0.000000, 0.000000, -0.354567 + 0.940486, 0.000000, 0.000000, -0.339832 + 0.945710, 0.000000, 0.000000, -0.325012 + 0.950700, 0.000000, 0.000000, -0.310113 + 0.955455, 0.000000, 0.000000, -0.295136 + 0.959975, 0.000000, 0.000000, -0.280087 + 0.964257, 0.000000, 0.000000, -0.264969 + 0.968301, 0.000000, 0.000000, -0.249786 + 0.972106, 0.000000, 0.000000, -0.234540 + 0.975672, 0.000000, 0.000000, -0.219237 + 0.978996, 0.000000, 0.000000, -0.203880 + 0.982079, 0.000000, 0.000000, -0.188472 + 0.984919, 0.000000, 0.000000, -0.173018 + 0.987516, 0.000000, 0.000000, -0.157521 + 0.989869, 0.000000, 0.000000, -0.141985 + 0.991978, 0.000000, 0.000000, -0.126414 + 0.993841, 0.000000, 0.000000, -0.110812 + 0.995460, 0.000000, 0.000000, -0.095182 + 0.996833, 0.000000, 0.000000, -0.079529 + 0.997959, 0.000000, 0.000000, -0.063857 + 0.998839, 0.000000, 0.000000, -0.048169 + 0.999473, 0.000000, 0.000000, -0.032468 + 0.999860, 0.000000, 0.000000, -0.016760 + 0.999999, 0.000000, 0.000000, -0.001048 + 0.999892, 0.000000, 0.000000, 0.014665 + 0.999539, 0.000000, 0.000000, 0.030374 + 0.998938, 0.000000, 0.000000, 0.046076 + 0.998091, 0.000000, 0.000000, 0.061766 + 0.996997, 0.000000, 0.000000, 0.077441 + 0.995657, 0.000000, 0.000000, 0.093097 + 0.994071, 0.000000, 0.000000, 0.108729 + 0.992240, 0.000000, 0.000000, 0.124335 + 0.990164, 0.000000, 0.000000, 0.139911 + 0.987844, 0.000000, 0.000000, 0.155451 + 0.985279, 0.000000, 0.000000, 0.170954 + 0.982471, 0.000000, 0.000000, 0.186414 + 0.979421, 0.000000, 0.000000, 0.201828 + 0.976129, 0.000000, 0.000000, 0.217192 + 0.972596, 0.000000, 0.000000, 0.232503 + 0.968822, 0.000000, 0.000000, 0.247756 + 0.964810, 0.000000, 0.000000, 0.262948 + 0.960559, 0.000000, 0.000000, 0.278076 + 0.956071, 0.000000, 0.000000, 0.293134 + 0.951347, 0.000000, 0.000000, 0.308120 + 0.946389, 0.000000, 0.000000, 0.323030 + 0.941196, 0.000000, 0.000000, 0.337861 + 0.935771, 0.000000, 0.000000, 0.352607 + 0.930115, 0.000000, 0.000000, 0.367267 + 0.924230, 0.000000, 0.000000, 0.381836 + 0.918116, 0.000000, 0.000000, 0.396311 + 0.911776, 0.000000, 0.000000, 0.410688 + 0.905210, 0.000000, 0.000000, 0.424964 + 0.898421, 0.000000, 0.000000, 0.439135 + 0.891410, 0.000000, 0.000000, 0.453197 + 0.884179, 0.000000, 0.000000, 0.467147 + 0.876730, 0.000000, 0.000000, 0.480982 + 0.869065, 0.000000, 0.000000, 0.494699 + 0.861184, 0.000000, 0.000000, 0.508293 + 0.853091, 0.000000, 0.000000, 0.521761 + 0.844788, 0.000000, 0.000000, 0.535101 + 0.836276, 0.000000, 0.000000, 0.548309 + 0.827557, 0.000000, 0.000000, 0.561381 + 0.818634, 0.000000, 0.000000, 0.574315 + 0.809509, 0.000000, 0.000000, 0.587107 + 0.800184, 0.000000, 0.000000, 0.599754 + 0.790662, 0.000000, 0.000000, 0.612253 + 0.780944, 0.000000, 0.000000, 0.624601 + 0.771034, 0.000000, 0.000000, 0.636794 + 0.760933, 0.000000, 0.000000, 0.648830 + 0.750644, 0.000000, 0.000000, 0.660707 + 0.740170, 0.000000, 0.000000, 0.672420 + 0.729513, 0.000000, 0.000000, 0.683967 + 0.718676, 0.000000, 0.000000, 0.695345 + 0.707662, 0.000000, 0.000000, 0.706551 + 0.696473, 0.000000, 0.000000, 0.717583 + 0.685112, 0.000000, 0.000000, 0.728438 + 0.673582, 0.000000, 0.000000, 0.739113 + 0.661885, 0.000000, 0.000000, 0.749605 + 0.650025, 0.000000, 0.000000, 0.759913 + 0.638005, 0.000000, 0.000000, 0.770032 + 0.625827, 0.000000, 0.000000, 0.779962 + 0.613495, 0.000000, 0.000000, 0.789699 + 0.601011, 0.000000, 0.000000, 0.799241 + 0.588378, 0.000000, 0.000000, 0.808586 + 0.575601, 0.000000, 0.000000, 0.817731 + 0.562681, 0.000000, 0.000000, 0.826674 + 0.549622, 0.000000, 0.000000, 0.835413 + 0.536428, 0.000000, 0.000000, 0.843946 + 0.523101, 0.000000, 0.000000, 0.852270 + 0.509645, 0.000000, 0.000000, 0.860385 + 0.496064, 0.000000, 0.000000, 0.868286 + 0.482359, 0.000000, 0.000000, 0.875973 + 0.468536, 0.000000, 0.000000, 0.883444 + 0.454597, 0.000000, 0.000000, 0.890697 + 0.440546, 0.000000, 0.000000, 0.897730 + 0.426386, 0.000000, 0.000000, 0.904541 + 0.412121, 0.000000, 0.000000, 0.911129 + 0.397753, 0.000000, 0.000000, 0.917492 + 0.383288, 0.000000, 0.000000, 0.923629 + 0.368728, 0.000000, 0.000000, 0.929537 + 0.354077, 0.000000, 0.000000, 0.935216 + 0.339339, 0.000000, 0.000000, 0.940664 + 0.324517, 0.000000, 0.000000, 0.945880 + 0.309615, 0.000000, 0.000000, 0.950862 + 0.294636, 0.000000, 0.000000, 0.955610 + 0.279585, 0.000000, 0.000000, 0.960121 + 0.264464, 0.000000, 0.000000, 0.964396 + 0.249278, 0.000000, 0.000000, 0.968432 + 0.234031, 0.000000, 0.000000, 0.972229 + 0.218726, 0.000000, 0.000000, 0.975786 + 0.203367, 0.000000, 0.000000, 0.979103 + 0.187958, 0.000000, 0.000000, 0.982177 + 0.172502, 0.000000, 0.000000, 0.985009 + 0.157003, 0.000000, 0.000000, 0.987598 + 0.141466, 0.000000, 0.000000, 0.989943 + 0.125894, 0.000000, 0.000000, 0.992044 + 0.110291, 0.000000, 0.000000, 0.993899 + 0.094661, 0.000000, 0.000000, 0.995510 + 0.079007, 0.000000, 0.000000, 0.996874 + 0.063334, 0.000000, 0.000000, 0.997992 + 0.047645, 0.000000, 0.000000, 0.998864 + 0.031945, 0.000000, 0.000000, 0.999490 + 0.016236, 0.000000, 0.000000, 0.999868 + 0.000524, 0.000000, 0.000000, 1.000000 + -0.015189, -0.000000, 0.000000, 0.999885 + -0.030898, -0.000000, 0.000000, 0.999523 + -0.046599, -0.000000, 0.000000, 0.998914 + -0.062289, -0.000000, 0.000000, 0.998058 + -0.077963, -0.000000, 0.000000, 0.996956 + -0.093618, -0.000000, 0.000000, 0.995608 + -0.109250, -0.000000, 0.000000, 0.994014 + -0.124855, -0.000000, 0.000000, 0.992175 + -0.140429, -0.000000, 0.000000, 0.990091 + -0.155969, -0.000000, 0.000000, 0.987762 + -0.171470, -0.000000, 0.000000, 0.985189 + -0.186929, -0.000000, 0.000000, 0.982374 + -0.202341, -0.000000, 0.000000, 0.979315 + -0.217704, -0.000000, 0.000000, 0.976015 + -0.233012, -0.000000, 0.000000, 0.972474 + -0.248264, -0.000000, 0.000000, 0.968692 + -0.263454, -0.000000, 0.000000, 0.964672 + -0.278579, -0.000000, 0.000000, 0.960413 + -0.293635, -0.000000, 0.000000, 0.955918 + -0.308618, -0.000000, 0.000000, 0.951186 + -0.323526, -0.000000, 0.000000, 0.946219 + -0.338354, -0.000000, 0.000000, 0.941019 + -0.353098, -0.000000, 0.000000, 0.935587 + -0.367754, -0.000000, 0.000000, 0.929923 + -0.382320, -0.000000, 0.000000, 0.924030 + -0.396792, -0.000000, 0.000000, 0.917908 + -0.411166, -0.000000, 0.000000, 0.911561 + -0.425438, -0.000000, 0.000000, 0.904988 + -0.439605, -0.000000, 0.000000, 0.898191 + -0.453664, -0.000000, 0.000000, 0.891173 + -0.467610, -0.000000, 0.000000, 0.883935 + -0.481442, -0.000000, 0.000000, 0.876478 + -0.495154, -0.000000, 0.000000, 0.868805 + -0.508744, -0.000000, 0.000000, 0.860918 + -0.522208, -0.000000, 0.000000, 0.852818 + -0.535544, -0.000000, 0.000000, 0.844507 + -0.548747, -0.000000, 0.000000, 0.835988 + -0.561815, -0.000000, 0.000000, 0.827263 + -0.574744, -0.000000, 0.000000, 0.818333 + -0.587531, -0.000000, 0.000000, 0.809202 + -0.600173, -0.000000, 0.000000, 0.799870 + -0.612667, -0.000000, 0.000000, 0.790341 + -0.625010, -0.000000, 0.000000, 0.780617 + -0.637198, -0.000000, 0.000000, 0.770700 + -0.649229, -0.000000, 0.000000, 0.760593 + -0.661100, -0.000000, 0.000000, 0.750298 + -0.672807, -0.000000, 0.000000, 0.739818 + -0.684349, -0.000000, 0.000000, 0.729155 + -0.695721, -0.000000, 0.000000, 0.718312 + -0.706922, -0.000000, 0.000000, 0.707292 + -0.717948, -0.000000, 0.000000, 0.696097 + -0.728797, -0.000000, 0.000000, 0.684730 + -0.739465, -0.000000, 0.000000, 0.673195 + -0.749952, -0.000000, 0.000000, 0.661493 + -0.760253, -0.000000, 0.000000, 0.649627 + -0.770366, -0.000000, 0.000000, 0.637602 + -0.780290, -0.000000, 0.000000, 0.625418 + -0.790020, -0.000000, 0.000000, 0.613081 + -0.799556, -0.000000, 0.000000, 0.600592 + -0.808894, -0.000000, 0.000000, 0.587955 + -0.818032, -0.000000, 0.000000, 0.575172 + -0.826969, -0.000000, 0.000000, 0.562248 + -0.835701, -0.000000, 0.000000, 0.549185 + -0.844227, -0.000000, 0.000000, 0.535986 + -0.852544, -0.000000, 0.000000, 0.522655 + -0.860651, -0.000000, 0.000000, 0.509195 + -0.868546, -0.000000, 0.000000, 0.495609 + -0.876226, -0.000000, 0.000000, 0.481901 + -0.883690, -0.000000, 0.000000, 0.468073 + -0.890935, -0.000000, 0.000000, 0.454130 + -0.897961, -0.000000, 0.000000, 0.440076 + -0.904765, -0.000000, 0.000000, 0.425912 + -0.911345, -0.000000, 0.000000, 0.411643 + -0.917701, -0.000000, 0.000000, 0.397273 + -0.923829, -0.000000, 0.000000, 0.382804 + -0.929730, -0.000000, 0.000000, 0.368241 + -0.935401, -0.000000, 0.000000, 0.353588 + -0.940842, -0.000000, 0.000000, 0.338846 + -0.946050, -0.000000, 0.000000, 0.324021 + -0.951024, -0.000000, 0.000000, 0.309117 + -0.955764, -0.000000, 0.000000, 0.294135 + -0.960267, -0.000000, 0.000000, 0.279082 + -0.964534, -0.000000, 0.000000, 0.263959 + -0.968562, -0.000000, 0.000000, 0.248771 + -0.972352, -0.000000, 0.000000, 0.233522 + -0.975901, -0.000000, 0.000000, 0.218215 + -0.979209, -0.000000, 0.000000, 0.202854 + -0.982275, -0.000000, 0.000000, 0.187443 + -0.985099, -0.000000, 0.000000, 0.171986 + -0.987680, -0.000000, 0.000000, 0.156486 + -0.990017, -0.000000, 0.000000, 0.140948 + -0.992109, -0.000000, 0.000000, 0.125375 + -0.993957, -0.000000, 0.000000, 0.109771 + -0.995559, -0.000000, 0.000000, 0.094140 + -0.996915, -0.000000, 0.000000, 0.078485 + -0.998025, -0.000000, 0.000000, 0.062811 + -0.998889, -0.000000, 0.000000, 0.047122 + -0.999506, -0.000000, 0.000000, 0.031421 + -0.999877, -0.000000, 0.000000, 0.015713 + -1.000000, 0.000000, -0.000000, -0.000000 diff --git a/scripts/trajectories/full_circle_in_15s-Euler.csv b/scripts/trajectories/full_circle_in_15s-Euler.csv index 5ed447ca26..68db6eaf30 100644 --- a/scripts/trajectories/full_circle_in_15s-Euler.csv +++ b/scripts/trajectories/full_circle_in_15s-Euler.csv @@ -1,3000 +1,3000 @@ -0,-3.0,0.000000,0.000000,0.000000 -1,-3.0,0.120000,0.000000,0.000000 -2,-3.0,0.240000,0.000000,0.000000 -3,-3.0,0.360000,0.000000,0.000000 -4,-3.0,0.480000,0.000000,0.000000 -5,-3.0,0.600000,0.000000,0.000000 -6,-3.0,0.720000,0.000000,0.000000 -7,-3.0,0.840000,0.000000,0.000000 -8,-3.0,0.960000,0.000000,0.000000 -9,-3.0,1.080000,0.000000,0.000000 -10,-3.0,1.200000,0.000000,0.000000 -11,-3.0,1.320000,0.000000,0.000000 -12,-3.0,1.440000,0.000000,0.000000 -13,-3.0,1.560000,0.000000,0.000000 -14,-3.0,1.680000,0.000000,0.000000 -15,-3.0,1.800000,0.000000,0.000000 -16,-3.0,1.920000,0.000000,0.000000 -17,-3.0,2.040000,0.000000,0.000000 -18,-3.0,2.160000,0.000000,0.000000 -19,-3.0,2.280000,0.000000,0.000000 -20,-3.0,2.400000,0.000000,0.000000 -21,-3.0,2.520000,0.000000,0.000000 -22,-3.0,2.640000,0.000000,0.000000 -23,-3.0,2.760000,0.000000,0.000000 -24,-3.0,2.880000,0.000000,0.000000 -25,-3.0,3.000000,0.000000,0.000000 -26,-3.0,3.120000,0.000000,0.000000 -27,-3.0,3.240000,0.000000,0.000000 -28,-3.0,3.360000,0.000000,0.000000 -29,-3.0,3.480000,0.000000,0.000000 -30,-3.0,3.600000,0.000000,0.000000 -31,-3.0,3.720000,0.000000,0.000000 -32,-3.0,3.840000,0.000000,0.000000 -33,-3.0,3.960000,0.000000,0.000000 -34,-3.0,4.080000,0.000000,0.000000 -35,-3.0,4.200000,0.000000,0.000000 -36,-3.0,4.320000,0.000000,0.000000 -37,-3.0,4.440000,0.000000,0.000000 -38,-3.0,4.560000,0.000000,0.000000 -39,-3.0,4.680000,0.000000,0.000000 -40,-3.0,4.800000,0.000000,0.000000 -41,-3.0,4.920000,0.000000,0.000000 -42,-3.0,5.040000,0.000000,0.000000 -43,-3.0,5.160000,0.000000,0.000000 -44,-3.0,5.280000,0.000000,0.000000 -45,-3.0,5.400000,0.000000,0.000000 -46,-3.0,5.520000,0.000000,0.000000 -47,-3.0,5.640000,0.000000,0.000000 -48,-3.0,5.760000,0.000000,0.000000 -49,-3.0,5.880000,0.000000,0.000000 -50,-3.0,6.000000,0.000000,0.000000 -51,-3.0,6.120000,0.000000,0.000000 -52,-3.0,6.240000,0.000000,0.000000 -53,-3.0,6.360000,0.000000,0.000000 -54,-3.0,6.480000,0.000000,0.000000 -55,-3.0,6.600000,0.000000,0.000000 -56,-3.0,6.720000,0.000000,0.000000 -57,-3.0,6.840000,0.000000,0.000000 -58,-3.0,6.960000,0.000000,0.000000 -59,-3.0,7.080000,0.000000,0.000000 -60,-3.0,7.200000,0.000000,0.000000 -61,-3.0,7.320000,0.000000,0.000000 -62,-3.0,7.440000,0.000000,0.000000 -63,-3.0,7.560000,0.000000,0.000000 -64,-3.0,7.680000,0.000000,0.000000 -65,-3.0,7.800000,0.000000,0.000000 -66,-3.0,7.920000,0.000000,0.000000 -67,-3.0,8.040000,0.000000,0.000000 -68,-3.0,8.160000,0.000000,0.000000 -69,-3.0,8.280000,0.000000,0.000000 -70,-3.0,8.400000,0.000000,0.000000 -71,-3.0,8.520000,0.000000,0.000000 -72,-3.0,8.640000,0.000000,0.000000 -73,-3.0,8.760000,0.000000,0.000000 -74,-3.0,8.880000,0.000000,0.000000 -75,-3.0,9.000000,0.000000,0.000000 -76,-3.0,9.120000,0.000000,0.000000 -77,-3.0,9.240000,0.000000,0.000000 -78,-3.0,9.360000,0.000000,0.000000 -79,-3.0,9.480000,0.000000,0.000000 -80,-3.0,9.600000,0.000000,0.000000 -81,-3.0,9.720000,0.000000,0.000000 -82,-3.0,9.840000,0.000000,0.000000 -83,-3.0,9.960000,0.000000,0.000000 -84,-3.0,10.080000,0.000000,0.000000 -85,-3.0,10.200000,0.000000,0.000000 -86,-3.0,10.320000,0.000000,0.000000 -87,-3.0,10.440000,0.000000,0.000000 -88,-3.0,10.560000,0.000000,0.000000 -89,-3.0,10.680000,0.000000,0.000000 -90,-3.0,10.800000,0.000000,0.000000 -91,-3.0,10.920000,0.000000,0.000000 -92,-3.0,11.040000,0.000000,0.000000 -93,-3.0,11.160000,0.000000,0.000000 -94,-3.0,11.280000,0.000000,0.000000 -95,-3.0,11.400000,0.000000,0.000000 -96,-3.0,11.520000,0.000000,0.000000 -97,-3.0,11.640000,0.000000,0.000000 -98,-3.0,11.760000,0.000000,0.000000 -99,-3.0,11.880000,0.000000,0.000000 -100,-3.0,12.000000,0.000000,0.000000 -101,-3.0,12.120000,0.000000,0.000000 -102,-3.0,12.240000,0.000000,0.000000 -103,-3.0,12.360000,0.000000,0.000000 -104,-3.0,12.480000,0.000000,0.000000 -105,-3.0,12.600000,0.000000,0.000000 -106,-3.0,12.720000,0.000000,0.000000 -107,-3.0,12.840000,0.000000,0.000000 -108,-3.0,12.960000,0.000000,0.000000 -109,-3.0,13.080000,0.000000,0.000000 -110,-3.0,13.200000,0.000000,0.000000 -111,-3.0,13.320000,0.000000,0.000000 -112,-3.0,13.440000,0.000000,0.000000 -113,-3.0,13.560000,0.000000,0.000000 -114,-3.0,13.680000,0.000000,0.000000 -115,-3.0,13.800000,0.000000,0.000000 -116,-3.0,13.920000,0.000000,0.000000 -117,-3.0,14.040000,0.000000,0.000000 -118,-3.0,14.160000,0.000000,0.000000 -119,-3.0,14.280000,0.000000,0.000000 -120,-3.0,14.400000,0.000000,0.000000 -121,-3.0,14.520000,0.000000,0.000000 -122,-3.0,14.640000,0.000000,0.000000 -123,-3.0,14.760000,0.000000,0.000000 -124,-3.0,14.880000,0.000000,0.000000 -125,-3.0,15.000000,0.000000,0.000000 -126,-3.0,15.120000,0.000000,0.000000 -127,-3.0,15.240000,0.000000,0.000000 -128,-3.0,15.360000,0.000000,0.000000 -129,-3.0,15.480000,0.000000,0.000000 -130,-3.0,15.600000,0.000000,0.000000 -131,-3.0,15.720000,0.000000,0.000000 -132,-3.0,15.840000,0.000000,0.000000 -133,-3.0,15.960000,0.000000,0.000000 -134,-3.0,16.080000,0.000000,0.000000 -135,-3.0,16.200000,0.000000,0.000000 -136,-3.0,16.320000,0.000000,0.000000 -137,-3.0,16.440000,0.000000,0.000000 -138,-3.0,16.560000,0.000000,0.000000 -139,-3.0,16.680000,0.000000,0.000000 -140,-3.0,16.800000,0.000000,0.000000 -141,-3.0,16.920000,0.000000,0.000000 -142,-3.0,17.040000,0.000000,0.000000 -143,-3.0,17.160000,0.000000,0.000000 -144,-3.0,17.280000,0.000000,0.000000 -145,-3.0,17.400000,0.000000,0.000000 -146,-3.0,17.520000,0.000000,0.000000 -147,-3.0,17.640000,0.000000,0.000000 -148,-3.0,17.760000,0.000000,0.000000 -149,-3.0,17.880000,0.000000,0.000000 -150,-3.0,18.000000,0.000000,0.000000 -151,-3.0,18.120000,0.000000,0.000000 -152,-3.0,18.240000,0.000000,0.000000 -153,-3.0,18.360000,0.000000,0.000000 -154,-3.0,18.480000,0.000000,0.000000 -155,-3.0,18.600000,0.000000,0.000000 -156,-3.0,18.720000,0.000000,0.000000 -157,-3.0,18.840000,0.000000,0.000000 -158,-3.0,18.960000,0.000000,0.000000 -159,-3.0,19.080000,0.000000,0.000000 -160,-3.0,19.200000,0.000000,0.000000 -161,-3.0,19.320000,0.000000,0.000000 -162,-3.0,19.440000,0.000000,0.000000 -163,-3.0,19.560000,0.000000,0.000000 -164,-3.0,19.680000,0.000000,0.000000 -165,-3.0,19.800000,0.000000,0.000000 -166,-3.0,19.920000,0.000000,0.000000 -167,-3.0,20.040000,0.000000,0.000000 -168,-3.0,20.160000,0.000000,0.000000 -169,-3.0,20.280000,0.000000,0.000000 -170,-3.0,20.400000,0.000000,0.000000 -171,-3.0,20.520000,0.000000,0.000000 -172,-3.0,20.640000,0.000000,0.000000 -173,-3.0,20.760000,0.000000,0.000000 -174,-3.0,20.880000,0.000000,0.000000 -175,-3.0,21.000000,0.000000,0.000000 -176,-3.0,21.120000,0.000000,0.000000 -177,-3.0,21.240000,0.000000,0.000000 -178,-3.0,21.360000,0.000000,0.000000 -179,-3.0,21.480000,0.000000,0.000000 -180,-3.0,21.600000,0.000000,0.000000 -181,-3.0,21.720000,0.000000,0.000000 -182,-3.0,21.840000,0.000000,0.000000 -183,-3.0,21.960000,0.000000,0.000000 -184,-3.0,22.080000,0.000000,0.000000 -185,-3.0,22.200000,0.000000,0.000000 -186,-3.0,22.320000,0.000000,0.000000 -187,-3.0,22.440000,0.000000,0.000000 -188,-3.0,22.560000,0.000000,0.000000 -189,-3.0,22.680000,0.000000,0.000000 -190,-3.0,22.800000,0.000000,0.000000 -191,-3.0,22.920000,0.000000,0.000000 -192,-3.0,23.040000,0.000000,0.000000 -193,-3.0,23.160000,0.000000,0.000000 -194,-3.0,23.280000,0.000000,0.000000 -195,-3.0,23.400000,0.000000,0.000000 -196,-3.0,23.520000,0.000000,0.000000 -197,-3.0,23.640000,0.000000,0.000000 -198,-3.0,23.760000,0.000000,0.000000 -199,-3.0,23.880000,0.000000,0.000000 -200,-3.0,24.000000,0.000000,0.000000 -201,-3.0,24.120000,0.000000,0.000000 -202,-3.0,24.240000,0.000000,0.000000 -203,-3.0,24.360000,0.000000,0.000000 -204,-3.0,24.480000,0.000000,0.000000 -205,-3.0,24.600000,0.000000,0.000000 -206,-3.0,24.720000,0.000000,0.000000 -207,-3.0,24.840000,0.000000,0.000000 -208,-3.0,24.960000,0.000000,0.000000 -209,-3.0,25.080000,0.000000,0.000000 -210,-3.0,25.200000,0.000000,0.000000 -211,-3.0,25.320000,0.000000,0.000000 -212,-3.0,25.440000,0.000000,0.000000 -213,-3.0,25.560000,0.000000,0.000000 -214,-3.0,25.680000,0.000000,0.000000 -215,-3.0,25.800000,0.000000,0.000000 -216,-3.0,25.920000,0.000000,0.000000 -217,-3.0,26.040000,0.000000,0.000000 -218,-3.0,26.160000,0.000000,0.000000 -219,-3.0,26.280000,0.000000,0.000000 -220,-3.0,26.400000,0.000000,0.000000 -221,-3.0,26.520000,0.000000,0.000000 -222,-3.0,26.640000,0.000000,0.000000 -223,-3.0,26.760000,0.000000,0.000000 -224,-3.0,26.880000,0.000000,0.000000 -225,-3.0,27.000000,0.000000,0.000000 -226,-3.0,27.120000,0.000000,0.000000 -227,-3.0,27.240000,0.000000,0.000000 -228,-3.0,27.360000,0.000000,0.000000 -229,-3.0,27.480000,0.000000,0.000000 -230,-3.0,27.600000,0.000000,0.000000 -231,-3.0,27.720000,0.000000,0.000000 -232,-3.0,27.840000,0.000000,0.000000 -233,-3.0,27.960000,0.000000,0.000000 -234,-3.0,28.080000,0.000000,0.000000 -235,-3.0,28.200000,0.000000,0.000000 -236,-3.0,28.320000,0.000000,0.000000 -237,-3.0,28.440000,0.000000,0.000000 -238,-3.0,28.560000,0.000000,0.000000 -239,-3.0,28.680000,0.000000,0.000000 -240,-3.0,28.800000,0.000000,0.000000 -241,-3.0,28.920000,0.000000,0.000000 -242,-3.0,29.040000,0.000000,0.000000 -243,-3.0,29.160000,0.000000,0.000000 -244,-3.0,29.280000,0.000000,0.000000 -245,-3.0,29.400000,0.000000,0.000000 -246,-3.0,29.520000,0.000000,0.000000 -247,-3.0,29.640000,0.000000,0.000000 -248,-3.0,29.760000,0.000000,0.000000 -249,-3.0,29.880000,0.000000,0.000000 -250,-3.0,30.000000,0.000000,0.000000 -251,-3.0,30.120000,0.000000,0.000000 -252,-3.0,30.240000,0.000000,0.000000 -253,-3.0,30.360000,0.000000,0.000000 -254,-3.0,30.480000,0.000000,0.000000 -255,-3.0,30.600000,0.000000,0.000000 -256,-3.0,30.720000,0.000000,0.000000 -257,-3.0,30.840000,0.000000,0.000000 -258,-3.0,30.960000,0.000000,0.000000 -259,-3.0,31.080000,0.000000,0.000000 -260,-3.0,31.200000,0.000000,0.000000 -261,-3.0,31.320000,0.000000,0.000000 -262,-3.0,31.440000,0.000000,0.000000 -263,-3.0,31.560000,0.000000,0.000000 -264,-3.0,31.680000,0.000000,0.000000 -265,-3.0,31.800000,0.000000,0.000000 -266,-3.0,31.920000,0.000000,0.000000 -267,-3.0,32.040000,0.000000,0.000000 -268,-3.0,32.160000,0.000000,0.000000 -269,-3.0,32.280000,0.000000,0.000000 -270,-3.0,32.400000,0.000000,0.000000 -271,-3.0,32.520000,0.000000,0.000000 -272,-3.0,32.640000,0.000000,0.000000 -273,-3.0,32.760000,0.000000,0.000000 -274,-3.0,32.880000,0.000000,0.000000 -275,-3.0,33.000000,0.000000,0.000000 -276,-3.0,33.120000,0.000000,0.000000 -277,-3.0,33.240000,0.000000,0.000000 -278,-3.0,33.360000,0.000000,0.000000 -279,-3.0,33.480000,0.000000,0.000000 -280,-3.0,33.600000,0.000000,0.000000 -281,-3.0,33.720000,0.000000,0.000000 -282,-3.0,33.840000,0.000000,0.000000 -283,-3.0,33.960000,0.000000,0.000000 -284,-3.0,34.080000,0.000000,0.000000 -285,-3.0,34.200000,0.000000,0.000000 -286,-3.0,34.320000,0.000000,0.000000 -287,-3.0,34.440000,0.000000,0.000000 -288,-3.0,34.560000,0.000000,0.000000 -289,-3.0,34.680000,0.000000,0.000000 -290,-3.0,34.800000,0.000000,0.000000 -291,-3.0,34.920000,0.000000,0.000000 -292,-3.0,35.040000,0.000000,0.000000 -293,-3.0,35.160000,0.000000,0.000000 -294,-3.0,35.280000,0.000000,0.000000 -295,-3.0,35.400000,0.000000,0.000000 -296,-3.0,35.520000,0.000000,0.000000 -297,-3.0,35.640000,0.000000,0.000000 -298,-3.0,35.760000,0.000000,0.000000 -299,-3.0,35.880000,0.000000,0.000000 -300,-3.0,36.000000,0.000000,0.000000 -301,-3.0,36.120000,0.000000,0.000000 -302,-3.0,36.240000,0.000000,0.000000 -303,-3.0,36.360000,0.000000,0.000000 -304,-3.0,36.480000,0.000000,0.000000 -305,-3.0,36.600000,0.000000,0.000000 -306,-3.0,36.720000,0.000000,0.000000 -307,-3.0,36.840000,0.000000,0.000000 -308,-3.0,36.960000,0.000000,0.000000 -309,-3.0,37.080000,0.000000,0.000000 -310,-3.0,37.200000,0.000000,0.000000 -311,-3.0,37.320000,0.000000,0.000000 -312,-3.0,37.440000,0.000000,0.000000 -313,-3.0,37.560000,0.000000,0.000000 -314,-3.0,37.680000,0.000000,0.000000 -315,-3.0,37.800000,0.000000,0.000000 -316,-3.0,37.920000,0.000000,0.000000 -317,-3.0,38.040000,0.000000,0.000000 -318,-3.0,38.160000,0.000000,0.000000 -319,-3.0,38.280000,0.000000,0.000000 -320,-3.0,38.400000,0.000000,0.000000 -321,-3.0,38.520000,0.000000,0.000000 -322,-3.0,38.640000,0.000000,0.000000 -323,-3.0,38.760000,0.000000,0.000000 -324,-3.0,38.880000,0.000000,0.000000 -325,-3.0,39.000000,0.000000,0.000000 -326,-3.0,39.120000,0.000000,0.000000 -327,-3.0,39.240000,0.000000,0.000000 -328,-3.0,39.360000,0.000000,0.000000 -329,-3.0,39.480000,0.000000,0.000000 -330,-3.0,39.600000,0.000000,0.000000 -331,-3.0,39.720000,0.000000,0.000000 -332,-3.0,39.840000,0.000000,0.000000 -333,-3.0,39.960000,0.000000,0.000000 -334,-3.0,40.080000,0.000000,0.000000 -335,-3.0,40.200000,0.000000,0.000000 -336,-3.0,40.320000,0.000000,0.000000 -337,-3.0,40.440000,0.000000,0.000000 -338,-3.0,40.560000,0.000000,0.000000 -339,-3.0,40.680000,0.000000,0.000000 -340,-3.0,40.800000,0.000000,0.000000 -341,-3.0,40.920000,0.000000,0.000000 -342,-3.0,41.040000,0.000000,0.000000 -343,-3.0,41.160000,0.000000,0.000000 -344,-3.0,41.280000,0.000000,0.000000 -345,-3.0,41.400000,0.000000,0.000000 -346,-3.0,41.520000,0.000000,0.000000 -347,-3.0,41.640000,0.000000,0.000000 -348,-3.0,41.760000,0.000000,0.000000 -349,-3.0,41.880000,0.000000,0.000000 -350,-3.0,42.000000,0.000000,0.000000 -351,-3.0,42.120000,0.000000,0.000000 -352,-3.0,42.240000,0.000000,0.000000 -353,-3.0,42.360000,0.000000,0.000000 -354,-3.0,42.480000,0.000000,0.000000 -355,-3.0,42.600000,0.000000,0.000000 -356,-3.0,42.720000,0.000000,0.000000 -357,-3.0,42.840000,0.000000,0.000000 -358,-3.0,42.960000,0.000000,0.000000 -359,-3.0,43.080000,0.000000,0.000000 -360,-3.0,43.200000,0.000000,0.000000 -361,-3.0,43.320000,0.000000,0.000000 -362,-3.0,43.440000,0.000000,0.000000 -363,-3.0,43.560000,0.000000,0.000000 -364,-3.0,43.680000,0.000000,0.000000 -365,-3.0,43.800000,0.000000,0.000000 -366,-3.0,43.920000,0.000000,0.000000 -367,-3.0,44.040000,0.000000,0.000000 -368,-3.0,44.160000,0.000000,0.000000 -369,-3.0,44.280000,0.000000,0.000000 -370,-3.0,44.400000,0.000000,0.000000 -371,-3.0,44.520000,0.000000,0.000000 -372,-3.0,44.640000,0.000000,0.000000 -373,-3.0,44.760000,0.000000,0.000000 -374,-3.0,44.880000,0.000000,0.000000 -375,-3.0,45.000000,0.000000,0.000000 -376,-3.0,45.120000,0.000000,0.000000 -377,-3.0,45.240000,0.000000,0.000000 -378,-3.0,45.360000,0.000000,0.000000 -379,-3.0,45.480000,0.000000,0.000000 -380,-3.0,45.600000,0.000000,0.000000 -381,-3.0,45.720000,0.000000,0.000000 -382,-3.0,45.840000,0.000000,0.000000 -383,-3.0,45.960000,0.000000,0.000000 -384,-3.0,46.080000,0.000000,0.000000 -385,-3.0,46.200000,0.000000,0.000000 -386,-3.0,46.320000,0.000000,0.000000 -387,-3.0,46.440000,0.000000,0.000000 -388,-3.0,46.560000,0.000000,0.000000 -389,-3.0,46.680000,0.000000,0.000000 -390,-3.0,46.800000,0.000000,0.000000 -391,-3.0,46.920000,0.000000,0.000000 -392,-3.0,47.040000,0.000000,0.000000 -393,-3.0,47.160000,0.000000,0.000000 -394,-3.0,47.280000,0.000000,0.000000 -395,-3.0,47.400000,0.000000,0.000000 -396,-3.0,47.520000,0.000000,0.000000 -397,-3.0,47.640000,0.000000,0.000000 -398,-3.0,47.760000,0.000000,0.000000 -399,-3.0,47.880000,0.000000,0.000000 -400,-3.0,48.000000,0.000000,0.000000 -401,-3.0,48.120000,0.000000,0.000000 -402,-3.0,48.240000,0.000000,0.000000 -403,-3.0,48.360000,0.000000,0.000000 -404,-3.0,48.480000,0.000000,0.000000 -405,-3.0,48.600000,0.000000,0.000000 -406,-3.0,48.720000,0.000000,0.000000 -407,-3.0,48.840000,0.000000,0.000000 -408,-3.0,48.960000,0.000000,0.000000 -409,-3.0,49.080000,0.000000,0.000000 -410,-3.0,49.200000,0.000000,0.000000 -411,-3.0,49.320000,0.000000,0.000000 -412,-3.0,49.440000,0.000000,0.000000 -413,-3.0,49.560000,0.000000,0.000000 -414,-3.0,49.680000,0.000000,0.000000 -415,-3.0,49.800000,0.000000,0.000000 -416,-3.0,49.920000,0.000000,0.000000 -417,-3.0,50.040000,0.000000,0.000000 -418,-3.0,50.160000,0.000000,0.000000 -419,-3.0,50.280000,0.000000,0.000000 -420,-3.0,50.400000,0.000000,0.000000 -421,-3.0,50.520000,0.000000,0.000000 -422,-3.0,50.640000,0.000000,0.000000 -423,-3.0,50.760000,0.000000,0.000000 -424,-3.0,50.880000,0.000000,0.000000 -425,-3.0,51.000000,0.000000,0.000000 -426,-3.0,51.120000,0.000000,0.000000 -427,-3.0,51.240000,0.000000,0.000000 -428,-3.0,51.360000,0.000000,0.000000 -429,-3.0,51.480000,0.000000,0.000000 -430,-3.0,51.600000,0.000000,0.000000 -431,-3.0,51.720000,0.000000,0.000000 -432,-3.0,51.840000,0.000000,0.000000 -433,-3.0,51.960000,0.000000,0.000000 -434,-3.0,52.080000,0.000000,0.000000 -435,-3.0,52.200000,0.000000,0.000000 -436,-3.0,52.320000,0.000000,0.000000 -437,-3.0,52.440000,0.000000,0.000000 -438,-3.0,52.560000,0.000000,0.000000 -439,-3.0,52.680000,0.000000,0.000000 -440,-3.0,52.800000,0.000000,0.000000 -441,-3.0,52.920000,0.000000,0.000000 -442,-3.0,53.040000,0.000000,0.000000 -443,-3.0,53.160000,0.000000,0.000000 -444,-3.0,53.280000,0.000000,0.000000 -445,-3.0,53.400000,0.000000,0.000000 -446,-3.0,53.520000,0.000000,0.000000 -447,-3.0,53.640000,0.000000,0.000000 -448,-3.0,53.760000,0.000000,0.000000 -449,-3.0,53.880000,0.000000,0.000000 -450,-3.0,54.000000,0.000000,0.000000 -451,-3.0,54.120000,0.000000,0.000000 -452,-3.0,54.240000,0.000000,0.000000 -453,-3.0,54.360000,0.000000,0.000000 -454,-3.0,54.480000,0.000000,0.000000 -455,-3.0,54.600000,0.000000,0.000000 -456,-3.0,54.720000,0.000000,0.000000 -457,-3.0,54.840000,0.000000,0.000000 -458,-3.0,54.960000,0.000000,0.000000 -459,-3.0,55.080000,0.000000,0.000000 -460,-3.0,55.200000,0.000000,0.000000 -461,-3.0,55.320000,0.000000,0.000000 -462,-3.0,55.440000,0.000000,0.000000 -463,-3.0,55.560000,0.000000,0.000000 -464,-3.0,55.680000,0.000000,0.000000 -465,-3.0,55.800000,0.000000,0.000000 -466,-3.0,55.920000,0.000000,0.000000 -467,-3.0,56.040000,0.000000,0.000000 -468,-3.0,56.160000,0.000000,0.000000 -469,-3.0,56.280000,0.000000,0.000000 -470,-3.0,56.400000,0.000000,0.000000 -471,-3.0,56.520000,0.000000,0.000000 -472,-3.0,56.640000,0.000000,0.000000 -473,-3.0,56.760000,0.000000,0.000000 -474,-3.0,56.880000,0.000000,0.000000 -475,-3.0,57.000000,0.000000,0.000000 -476,-3.0,57.120000,0.000000,0.000000 -477,-3.0,57.240000,0.000000,0.000000 -478,-3.0,57.360000,0.000000,0.000000 -479,-3.0,57.480000,0.000000,0.000000 -480,-3.0,57.600000,0.000000,0.000000 -481,-3.0,57.720000,0.000000,0.000000 -482,-3.0,57.840000,0.000000,0.000000 -483,-3.0,57.960000,0.000000,0.000000 -484,-3.0,58.080000,0.000000,0.000000 -485,-3.0,58.200000,0.000000,0.000000 -486,-3.0,58.320000,0.000000,0.000000 -487,-3.0,58.440000,0.000000,0.000000 -488,-3.0,58.560000,0.000000,0.000000 -489,-3.0,58.680000,0.000000,0.000000 -490,-3.0,58.800000,0.000000,0.000000 -491,-3.0,58.920000,0.000000,0.000000 -492,-3.0,59.040000,0.000000,0.000000 -493,-3.0,59.160000,0.000000,0.000000 -494,-3.0,59.280000,0.000000,0.000000 -495,-3.0,59.400000,0.000000,0.000000 -496,-3.0,59.520000,0.000000,0.000000 -497,-3.0,59.640000,0.000000,0.000000 -498,-3.0,59.760000,0.000000,0.000000 -499,-3.0,59.880000,0.000000,0.000000 -500,-3.0,60.000000,0.000000,0.000000 -501,-3.0,60.120000,0.000000,0.000000 -502,-3.0,60.240000,0.000000,0.000000 -503,-3.0,60.360000,0.000000,0.000000 -504,-3.0,60.480000,0.000000,0.000000 -505,-3.0,60.600000,0.000000,0.000000 -506,-3.0,60.720000,0.000000,0.000000 -507,-3.0,60.840000,0.000000,0.000000 -508,-3.0,60.960000,0.000000,0.000000 -509,-3.0,61.080000,0.000000,0.000000 -510,-3.0,61.200000,0.000000,0.000000 -511,-3.0,61.320000,0.000000,0.000000 -512,-3.0,61.440000,0.000000,0.000000 -513,-3.0,61.560000,0.000000,0.000000 -514,-3.0,61.680000,0.000000,0.000000 -515,-3.0,61.800000,0.000000,0.000000 -516,-3.0,61.920000,0.000000,0.000000 -517,-3.0,62.040000,0.000000,0.000000 -518,-3.0,62.160000,0.000000,0.000000 -519,-3.0,62.280000,0.000000,0.000000 -520,-3.0,62.400000,0.000000,0.000000 -521,-3.0,62.520000,0.000000,0.000000 -522,-3.0,62.640000,0.000000,0.000000 -523,-3.0,62.760000,0.000000,0.000000 -524,-3.0,62.880000,0.000000,0.000000 -525,-3.0,63.000000,0.000000,0.000000 -526,-3.0,63.120000,0.000000,0.000000 -527,-3.0,63.240000,0.000000,0.000000 -528,-3.0,63.360000,0.000000,0.000000 -529,-3.0,63.480000,0.000000,0.000000 -530,-3.0,63.600000,0.000000,0.000000 -531,-3.0,63.720000,0.000000,0.000000 -532,-3.0,63.840000,0.000000,0.000000 -533,-3.0,63.960000,0.000000,0.000000 -534,-3.0,64.080000,0.000000,0.000000 -535,-3.0,64.200000,0.000000,0.000000 -536,-3.0,64.320000,0.000000,0.000000 -537,-3.0,64.440000,0.000000,0.000000 -538,-3.0,64.560000,0.000000,0.000000 -539,-3.0,64.680000,0.000000,0.000000 -540,-3.0,64.800000,0.000000,0.000000 -541,-3.0,64.920000,0.000000,0.000000 -542,-3.0,65.040000,0.000000,0.000000 -543,-3.0,65.160000,0.000000,0.000000 -544,-3.0,65.280000,0.000000,0.000000 -545,-3.0,65.400000,0.000000,0.000000 -546,-3.0,65.520000,0.000000,0.000000 -547,-3.0,65.640000,0.000000,0.000000 -548,-3.0,65.760000,0.000000,0.000000 -549,-3.0,65.880000,0.000000,0.000000 -550,-3.0,66.000000,0.000000,0.000000 -551,-3.0,66.120000,0.000000,0.000000 -552,-3.0,66.240000,0.000000,0.000000 -553,-3.0,66.360000,0.000000,0.000000 -554,-3.0,66.480000,0.000000,0.000000 -555,-3.0,66.600000,0.000000,0.000000 -556,-3.0,66.720000,0.000000,0.000000 -557,-3.0,66.840000,0.000000,0.000000 -558,-3.0,66.960000,0.000000,0.000000 -559,-3.0,67.080000,0.000000,0.000000 -560,-3.0,67.200000,0.000000,0.000000 -561,-3.0,67.320000,0.000000,0.000000 -562,-3.0,67.440000,0.000000,0.000000 -563,-3.0,67.560000,0.000000,0.000000 -564,-3.0,67.680000,0.000000,0.000000 -565,-3.0,67.800000,0.000000,0.000000 -566,-3.0,67.920000,0.000000,0.000000 -567,-3.0,68.040000,0.000000,0.000000 -568,-3.0,68.160000,0.000000,0.000000 -569,-3.0,68.280000,0.000000,0.000000 -570,-3.0,68.400000,0.000000,0.000000 -571,-3.0,68.520000,0.000000,0.000000 -572,-3.0,68.640000,0.000000,0.000000 -573,-3.0,68.760000,0.000000,0.000000 -574,-3.0,68.880000,0.000000,0.000000 -575,-3.0,69.000000,0.000000,0.000000 -576,-3.0,69.120000,0.000000,0.000000 -577,-3.0,69.240000,0.000000,0.000000 -578,-3.0,69.360000,0.000000,0.000000 -579,-3.0,69.480000,0.000000,0.000000 -580,-3.0,69.600000,0.000000,0.000000 -581,-3.0,69.720000,0.000000,0.000000 -582,-3.0,69.840000,0.000000,0.000000 -583,-3.0,69.960000,0.000000,0.000000 -584,-3.0,70.080000,0.000000,0.000000 -585,-3.0,70.200000,0.000000,0.000000 -586,-3.0,70.320000,0.000000,0.000000 -587,-3.0,70.440000,0.000000,0.000000 -588,-3.0,70.560000,0.000000,0.000000 -589,-3.0,70.680000,0.000000,0.000000 -590,-3.0,70.800000,0.000000,0.000000 -591,-3.0,70.920000,0.000000,0.000000 -592,-3.0,71.040000,0.000000,0.000000 -593,-3.0,71.160000,0.000000,0.000000 -594,-3.0,71.280000,0.000000,0.000000 -595,-3.0,71.400000,0.000000,0.000000 -596,-3.0,71.520000,0.000000,0.000000 -597,-3.0,71.640000,0.000000,0.000000 -598,-3.0,71.760000,0.000000,0.000000 -599,-3.0,71.880000,0.000000,0.000000 -600,-3.0,72.000000,0.000000,0.000000 -601,-3.0,72.120000,0.000000,0.000000 -602,-3.0,72.240000,0.000000,0.000000 -603,-3.0,72.360000,0.000000,0.000000 -604,-3.0,72.480000,0.000000,0.000000 -605,-3.0,72.600000,0.000000,0.000000 -606,-3.0,72.720000,0.000000,0.000000 -607,-3.0,72.840000,0.000000,0.000000 -608,-3.0,72.960000,0.000000,0.000000 -609,-3.0,73.080000,0.000000,0.000000 -610,-3.0,73.200000,0.000000,0.000000 -611,-3.0,73.320000,0.000000,0.000000 -612,-3.0,73.440000,0.000000,0.000000 -613,-3.0,73.560000,0.000000,0.000000 -614,-3.0,73.680000,0.000000,0.000000 -615,-3.0,73.800000,0.000000,0.000000 -616,-3.0,73.920000,0.000000,0.000000 -617,-3.0,74.040000,0.000000,0.000000 -618,-3.0,74.160000,0.000000,0.000000 -619,-3.0,74.280000,0.000000,0.000000 -620,-3.0,74.400000,0.000000,0.000000 -621,-3.0,74.520000,0.000000,0.000000 -622,-3.0,74.640000,0.000000,0.000000 -623,-3.0,74.760000,0.000000,0.000000 -624,-3.0,74.880000,0.000000,0.000000 -625,-3.0,75.000000,0.000000,0.000000 -626,-3.0,75.120000,0.000000,0.000000 -627,-3.0,75.240000,0.000000,0.000000 -628,-3.0,75.360000,0.000000,0.000000 -629,-3.0,75.480000,0.000000,0.000000 -630,-3.0,75.600000,0.000000,0.000000 -631,-3.0,75.720000,0.000000,0.000000 -632,-3.0,75.840000,0.000000,0.000000 -633,-3.0,75.960000,0.000000,0.000000 -634,-3.0,76.080000,0.000000,0.000000 -635,-3.0,76.200000,0.000000,0.000000 -636,-3.0,76.320000,0.000000,0.000000 -637,-3.0,76.440000,0.000000,0.000000 -638,-3.0,76.560000,0.000000,0.000000 -639,-3.0,76.680000,0.000000,0.000000 -640,-3.0,76.800000,0.000000,0.000000 -641,-3.0,76.920000,0.000000,0.000000 -642,-3.0,77.040000,0.000000,0.000000 -643,-3.0,77.160000,0.000000,0.000000 -644,-3.0,77.280000,0.000000,0.000000 -645,-3.0,77.400000,0.000000,0.000000 -646,-3.0,77.520000,0.000000,0.000000 -647,-3.0,77.640000,0.000000,0.000000 -648,-3.0,77.760000,0.000000,0.000000 -649,-3.0,77.880000,0.000000,0.000000 -650,-3.0,78.000000,0.000000,0.000000 -651,-3.0,78.120000,0.000000,0.000000 -652,-3.0,78.240000,0.000000,0.000000 -653,-3.0,78.360000,0.000000,0.000000 -654,-3.0,78.480000,0.000000,0.000000 -655,-3.0,78.600000,0.000000,0.000000 -656,-3.0,78.720000,0.000000,0.000000 -657,-3.0,78.840000,0.000000,0.000000 -658,-3.0,78.960000,0.000000,0.000000 -659,-3.0,79.080000,0.000000,0.000000 -660,-3.0,79.200000,0.000000,0.000000 -661,-3.0,79.320000,0.000000,0.000000 -662,-3.0,79.440000,0.000000,0.000000 -663,-3.0,79.560000,0.000000,0.000000 -664,-3.0,79.680000,0.000000,0.000000 -665,-3.0,79.800000,0.000000,0.000000 -666,-3.0,79.920000,0.000000,0.000000 -667,-3.0,80.040000,0.000000,0.000000 -668,-3.0,80.160000,0.000000,0.000000 -669,-3.0,80.280000,0.000000,0.000000 -670,-3.0,80.400000,0.000000,0.000000 -671,-3.0,80.520000,0.000000,0.000000 -672,-3.0,80.640000,0.000000,0.000000 -673,-3.0,80.760000,0.000000,0.000000 -674,-3.0,80.880000,0.000000,0.000000 -675,-3.0,81.000000,0.000000,0.000000 -676,-3.0,81.120000,0.000000,0.000000 -677,-3.0,81.240000,0.000000,0.000000 -678,-3.0,81.360000,0.000000,0.000000 -679,-3.0,81.480000,0.000000,0.000000 -680,-3.0,81.600000,0.000000,0.000000 -681,-3.0,81.720000,0.000000,0.000000 -682,-3.0,81.840000,0.000000,0.000000 -683,-3.0,81.960000,0.000000,0.000000 -684,-3.0,82.080000,0.000000,0.000000 -685,-3.0,82.200000,0.000000,0.000000 -686,-3.0,82.320000,0.000000,0.000000 -687,-3.0,82.440000,0.000000,0.000000 -688,-3.0,82.560000,0.000000,0.000000 -689,-3.0,82.680000,0.000000,0.000000 -690,-3.0,82.800000,0.000000,0.000000 -691,-3.0,82.920000,0.000000,0.000000 -692,-3.0,83.040000,0.000000,0.000000 -693,-3.0,83.160000,0.000000,0.000000 -694,-3.0,83.280000,0.000000,0.000000 -695,-3.0,83.400000,0.000000,0.000000 -696,-3.0,83.520000,0.000000,0.000000 -697,-3.0,83.640000,0.000000,0.000000 -698,-3.0,83.760000,0.000000,0.000000 -699,-3.0,83.880000,0.000000,0.000000 -700,-3.0,84.000000,0.000000,0.000000 -701,-3.0,84.120000,0.000000,0.000000 -702,-3.0,84.240000,0.000000,0.000000 -703,-3.0,84.360000,0.000000,0.000000 -704,-3.0,84.480000,0.000000,0.000000 -705,-3.0,84.600000,0.000000,0.000000 -706,-3.0,84.720000,0.000000,0.000000 -707,-3.0,84.840000,0.000000,0.000000 -708,-3.0,84.960000,0.000000,0.000000 -709,-3.0,85.080000,0.000000,0.000000 -710,-3.0,85.200000,0.000000,0.000000 -711,-3.0,85.320000,0.000000,0.000000 -712,-3.0,85.440000,0.000000,0.000000 -713,-3.0,85.560000,0.000000,0.000000 -714,-3.0,85.680000,0.000000,0.000000 -715,-3.0,85.800000,0.000000,0.000000 -716,-3.0,85.920000,0.000000,0.000000 -717,-3.0,86.040000,0.000000,0.000000 -718,-3.0,86.160000,0.000000,0.000000 -719,-3.0,86.280000,0.000000,0.000000 -720,-3.0,86.400000,0.000000,0.000000 -721,-3.0,86.520000,0.000000,0.000000 -722,-3.0,86.640000,0.000000,0.000000 -723,-3.0,86.760000,0.000000,0.000000 -724,-3.0,86.880000,0.000000,0.000000 -725,-3.0,87.000000,0.000000,0.000000 -726,-3.0,87.120000,0.000000,0.000000 -727,-3.0,87.240000,0.000000,0.000000 -728,-3.0,87.360000,0.000000,0.000000 -729,-3.0,87.480000,0.000000,0.000000 -730,-3.0,87.600000,0.000000,0.000000 -731,-3.0,87.720000,0.000000,0.000000 -732,-3.0,87.840000,0.000000,0.000000 -733,-3.0,87.960000,0.000000,0.000000 -734,-3.0,88.080000,0.000000,0.000000 -735,-3.0,88.200000,0.000000,0.000000 -736,-3.0,88.320000,0.000000,0.000000 -737,-3.0,88.440000,0.000000,0.000000 -738,-3.0,88.560000,0.000000,0.000000 -739,-3.0,88.680000,0.000000,0.000000 -740,-3.0,88.800000,0.000000,0.000000 -741,-3.0,88.920000,0.000000,0.000000 -742,-3.0,89.040000,0.000000,0.000000 -743,-3.0,89.160000,0.000000,0.000000 -744,-3.0,89.280000,0.000000,0.000000 -745,-3.0,89.400000,0.000000,0.000000 -746,-3.0,89.520000,0.000000,0.000000 -747,-3.0,89.640000,0.000000,0.000000 -748,-3.0,89.760000,0.000000,0.000000 -749,-3.0,89.880000,0.000000,0.000000 -750,-3.0,90.000000,0.000000,0.000000 -751,-3.0,90.120000,0.000000,0.000000 -752,-3.0,90.240000,0.000000,0.000000 -753,-3.0,90.360000,0.000000,0.000000 -754,-3.0,90.480000,0.000000,0.000000 -755,-3.0,90.600000,0.000000,0.000000 -756,-3.0,90.720000,0.000000,0.000000 -757,-3.0,90.840000,0.000000,0.000000 -758,-3.0,90.960000,0.000000,0.000000 -759,-3.0,91.080000,0.000000,0.000000 -760,-3.0,91.200000,0.000000,0.000000 -761,-3.0,91.320000,0.000000,0.000000 -762,-3.0,91.440000,0.000000,0.000000 -763,-3.0,91.560000,0.000000,0.000000 -764,-3.0,91.680000,0.000000,0.000000 -765,-3.0,91.800000,0.000000,0.000000 -766,-3.0,91.920000,0.000000,0.000000 -767,-3.0,92.040000,0.000000,0.000000 -768,-3.0,92.160000,0.000000,0.000000 -769,-3.0,92.280000,0.000000,0.000000 -770,-3.0,92.400000,0.000000,0.000000 -771,-3.0,92.520000,0.000000,0.000000 -772,-3.0,92.640000,0.000000,0.000000 -773,-3.0,92.760000,0.000000,0.000000 -774,-3.0,92.880000,0.000000,0.000000 -775,-3.0,93.000000,0.000000,0.000000 -776,-3.0,93.120000,0.000000,0.000000 -777,-3.0,93.240000,0.000000,0.000000 -778,-3.0,93.360000,0.000000,0.000000 -779,-3.0,93.480000,0.000000,0.000000 -780,-3.0,93.600000,0.000000,0.000000 -781,-3.0,93.720000,0.000000,0.000000 -782,-3.0,93.840000,0.000000,0.000000 -783,-3.0,93.960000,0.000000,0.000000 -784,-3.0,94.080000,0.000000,0.000000 -785,-3.0,94.200000,0.000000,0.000000 -786,-3.0,94.320000,0.000000,0.000000 -787,-3.0,94.440000,0.000000,0.000000 -788,-3.0,94.560000,0.000000,0.000000 -789,-3.0,94.680000,0.000000,0.000000 -790,-3.0,94.800000,0.000000,0.000000 -791,-3.0,94.920000,0.000000,0.000000 -792,-3.0,95.040000,0.000000,0.000000 -793,-3.0,95.160000,0.000000,0.000000 -794,-3.0,95.280000,0.000000,0.000000 -795,-3.0,95.400000,0.000000,0.000000 -796,-3.0,95.520000,0.000000,0.000000 -797,-3.0,95.640000,0.000000,0.000000 -798,-3.0,95.760000,0.000000,0.000000 -799,-3.0,95.880000,0.000000,0.000000 -800,-3.0,96.000000,0.000000,0.000000 -801,-3.0,96.120000,0.000000,0.000000 -802,-3.0,96.240000,0.000000,0.000000 -803,-3.0,96.360000,0.000000,0.000000 -804,-3.0,96.480000,0.000000,0.000000 -805,-3.0,96.600000,0.000000,0.000000 -806,-3.0,96.720000,0.000000,0.000000 -807,-3.0,96.840000,0.000000,0.000000 -808,-3.0,96.960000,0.000000,0.000000 -809,-3.0,97.080000,0.000000,0.000000 -810,-3.0,97.200000,0.000000,0.000000 -811,-3.0,97.320000,0.000000,0.000000 -812,-3.0,97.440000,0.000000,0.000000 -813,-3.0,97.560000,0.000000,0.000000 -814,-3.0,97.680000,0.000000,0.000000 -815,-3.0,97.800000,0.000000,0.000000 -816,-3.0,97.920000,0.000000,0.000000 -817,-3.0,98.040000,0.000000,0.000000 -818,-3.0,98.160000,0.000000,0.000000 -819,-3.0,98.280000,0.000000,0.000000 -820,-3.0,98.400000,0.000000,0.000000 -821,-3.0,98.520000,0.000000,0.000000 -822,-3.0,98.640000,0.000000,0.000000 -823,-3.0,98.760000,0.000000,0.000000 -824,-3.0,98.880000,0.000000,0.000000 -825,-3.0,99.000000,0.000000,0.000000 -826,-3.0,99.120000,0.000000,0.000000 -827,-3.0,99.240000,0.000000,0.000000 -828,-3.0,99.360000,0.000000,0.000000 -829,-3.0,99.480000,0.000000,0.000000 -830,-3.0,99.600000,0.000000,0.000000 -831,-3.0,99.720000,0.000000,0.000000 -832,-3.0,99.840000,0.000000,0.000000 -833,-3.0,99.960000,0.000000,0.000000 -834,-3.0,100.080000,0.000000,0.000000 -835,-3.0,100.200000,0.000000,0.000000 -836,-3.0,100.320000,0.000000,0.000000 -837,-3.0,100.440000,0.000000,0.000000 -838,-3.0,100.560000,0.000000,0.000000 -839,-3.0,100.680000,0.000000,0.000000 -840,-3.0,100.800000,0.000000,0.000000 -841,-3.0,100.920000,0.000000,0.000000 -842,-3.0,101.040000,0.000000,0.000000 -843,-3.0,101.160000,0.000000,0.000000 -844,-3.0,101.280000,0.000000,0.000000 -845,-3.0,101.400000,0.000000,0.000000 -846,-3.0,101.520000,0.000000,0.000000 -847,-3.0,101.640000,0.000000,0.000000 -848,-3.0,101.760000,0.000000,0.000000 -849,-3.0,101.880000,0.000000,0.000000 -850,-3.0,102.000000,0.000000,0.000000 -851,-3.0,102.120000,0.000000,0.000000 -852,-3.0,102.240000,0.000000,0.000000 -853,-3.0,102.360000,0.000000,0.000000 -854,-3.0,102.480000,0.000000,0.000000 -855,-3.0,102.600000,0.000000,0.000000 -856,-3.0,102.720000,0.000000,0.000000 -857,-3.0,102.840000,0.000000,0.000000 -858,-3.0,102.960000,0.000000,0.000000 -859,-3.0,103.080000,0.000000,0.000000 -860,-3.0,103.200000,0.000000,0.000000 -861,-3.0,103.320000,0.000000,0.000000 -862,-3.0,103.440000,0.000000,0.000000 -863,-3.0,103.560000,0.000000,0.000000 -864,-3.0,103.680000,0.000000,0.000000 -865,-3.0,103.800000,0.000000,0.000000 -866,-3.0,103.920000,0.000000,0.000000 -867,-3.0,104.040000,0.000000,0.000000 -868,-3.0,104.160000,0.000000,0.000000 -869,-3.0,104.280000,0.000000,0.000000 -870,-3.0,104.400000,0.000000,0.000000 -871,-3.0,104.520000,0.000000,0.000000 -872,-3.0,104.640000,0.000000,0.000000 -873,-3.0,104.760000,0.000000,0.000000 -874,-3.0,104.880000,0.000000,0.000000 -875,-3.0,105.000000,0.000000,0.000000 -876,-3.0,105.120000,0.000000,0.000000 -877,-3.0,105.240000,0.000000,0.000000 -878,-3.0,105.360000,0.000000,0.000000 -879,-3.0,105.480000,0.000000,0.000000 -880,-3.0,105.600000,0.000000,0.000000 -881,-3.0,105.720000,0.000000,0.000000 -882,-3.0,105.840000,0.000000,0.000000 -883,-3.0,105.960000,0.000000,0.000000 -884,-3.0,106.080000,0.000000,0.000000 -885,-3.0,106.200000,0.000000,0.000000 -886,-3.0,106.320000,0.000000,0.000000 -887,-3.0,106.440000,0.000000,0.000000 -888,-3.0,106.560000,0.000000,0.000000 -889,-3.0,106.680000,0.000000,0.000000 -890,-3.0,106.800000,0.000000,0.000000 -891,-3.0,106.920000,0.000000,0.000000 -892,-3.0,107.040000,0.000000,0.000000 -893,-3.0,107.160000,0.000000,0.000000 -894,-3.0,107.280000,0.000000,0.000000 -895,-3.0,107.400000,0.000000,0.000000 -896,-3.0,107.520000,0.000000,0.000000 -897,-3.0,107.640000,0.000000,0.000000 -898,-3.0,107.760000,0.000000,0.000000 -899,-3.0,107.880000,0.000000,0.000000 -900,-3.0,108.000000,0.000000,0.000000 -901,-3.0,108.120000,0.000000,0.000000 -902,-3.0,108.240000,0.000000,0.000000 -903,-3.0,108.360000,0.000000,0.000000 -904,-3.0,108.480000,0.000000,0.000000 -905,-3.0,108.600000,0.000000,0.000000 -906,-3.0,108.720000,0.000000,0.000000 -907,-3.0,108.840000,0.000000,0.000000 -908,-3.0,108.960000,0.000000,0.000000 -909,-3.0,109.080000,0.000000,0.000000 -910,-3.0,109.200000,0.000000,0.000000 -911,-3.0,109.320000,0.000000,0.000000 -912,-3.0,109.440000,0.000000,0.000000 -913,-3.0,109.560000,0.000000,0.000000 -914,-3.0,109.680000,0.000000,0.000000 -915,-3.0,109.800000,0.000000,0.000000 -916,-3.0,109.920000,0.000000,0.000000 -917,-3.0,110.040000,0.000000,0.000000 -918,-3.0,110.160000,0.000000,0.000000 -919,-3.0,110.280000,0.000000,0.000000 -920,-3.0,110.400000,0.000000,0.000000 -921,-3.0,110.520000,0.000000,0.000000 -922,-3.0,110.640000,0.000000,0.000000 -923,-3.0,110.760000,0.000000,0.000000 -924,-3.0,110.880000,0.000000,0.000000 -925,-3.0,111.000000,0.000000,0.000000 -926,-3.0,111.120000,0.000000,0.000000 -927,-3.0,111.240000,0.000000,0.000000 -928,-3.0,111.360000,0.000000,0.000000 -929,-3.0,111.480000,0.000000,0.000000 -930,-3.0,111.600000,0.000000,0.000000 -931,-3.0,111.720000,0.000000,0.000000 -932,-3.0,111.840000,0.000000,0.000000 -933,-3.0,111.960000,0.000000,0.000000 -934,-3.0,112.080000,0.000000,0.000000 -935,-3.0,112.200000,0.000000,0.000000 -936,-3.0,112.320000,0.000000,0.000000 -937,-3.0,112.440000,0.000000,0.000000 -938,-3.0,112.560000,0.000000,0.000000 -939,-3.0,112.680000,0.000000,0.000000 -940,-3.0,112.800000,0.000000,0.000000 -941,-3.0,112.920000,0.000000,0.000000 -942,-3.0,113.040000,0.000000,0.000000 -943,-3.0,113.160000,0.000000,0.000000 -944,-3.0,113.280000,0.000000,0.000000 -945,-3.0,113.400000,0.000000,0.000000 -946,-3.0,113.520000,0.000000,0.000000 -947,-3.0,113.640000,0.000000,0.000000 -948,-3.0,113.760000,0.000000,0.000000 -949,-3.0,113.880000,0.000000,0.000000 -950,-3.0,114.000000,0.000000,0.000000 -951,-3.0,114.120000,0.000000,0.000000 -952,-3.0,114.240000,0.000000,0.000000 -953,-3.0,114.360000,0.000000,0.000000 -954,-3.0,114.480000,0.000000,0.000000 -955,-3.0,114.600000,0.000000,0.000000 -956,-3.0,114.720000,0.000000,0.000000 -957,-3.0,114.840000,0.000000,0.000000 -958,-3.0,114.960000,0.000000,0.000000 -959,-3.0,115.080000,0.000000,0.000000 -960,-3.0,115.200000,0.000000,0.000000 -961,-3.0,115.320000,0.000000,0.000000 -962,-3.0,115.440000,0.000000,0.000000 -963,-3.0,115.560000,0.000000,0.000000 -964,-3.0,115.680000,0.000000,0.000000 -965,-3.0,115.800000,0.000000,0.000000 -966,-3.0,115.920000,0.000000,0.000000 -967,-3.0,116.040000,0.000000,0.000000 -968,-3.0,116.160000,0.000000,0.000000 -969,-3.0,116.280000,0.000000,0.000000 -970,-3.0,116.400000,0.000000,0.000000 -971,-3.0,116.520000,0.000000,0.000000 -972,-3.0,116.640000,0.000000,0.000000 -973,-3.0,116.760000,0.000000,0.000000 -974,-3.0,116.880000,0.000000,0.000000 -975,-3.0,117.000000,0.000000,0.000000 -976,-3.0,117.120000,0.000000,0.000000 -977,-3.0,117.240000,0.000000,0.000000 -978,-3.0,117.360000,0.000000,0.000000 -979,-3.0,117.480000,0.000000,0.000000 -980,-3.0,117.600000,0.000000,0.000000 -981,-3.0,117.720000,0.000000,0.000000 -982,-3.0,117.840000,0.000000,0.000000 -983,-3.0,117.960000,0.000000,0.000000 -984,-3.0,118.080000,0.000000,0.000000 -985,-3.0,118.200000,0.000000,0.000000 -986,-3.0,118.320000,0.000000,0.000000 -987,-3.0,118.440000,0.000000,0.000000 -988,-3.0,118.560000,0.000000,0.000000 -989,-3.0,118.680000,0.000000,0.000000 -990,-3.0,118.800000,0.000000,0.000000 -991,-3.0,118.920000,0.000000,0.000000 -992,-3.0,119.040000,0.000000,0.000000 -993,-3.0,119.160000,0.000000,0.000000 -994,-3.0,119.280000,0.000000,0.000000 -995,-3.0,119.400000,0.000000,0.000000 -996,-3.0,119.520000,0.000000,0.000000 -997,-3.0,119.640000,0.000000,0.000000 -998,-3.0,119.760000,0.000000,0.000000 -999,-3.0,119.880000,0.000000,0.000000 -1000,-3.0,120.000000,0.000000,0.000000 -1001,-3.0,120.120000,0.000000,0.000000 -1002,-3.0,120.240000,0.000000,0.000000 -1003,-3.0,120.360000,0.000000,0.000000 -1004,-3.0,120.480000,0.000000,0.000000 -1005,-3.0,120.600000,0.000000,0.000000 -1006,-3.0,120.720000,0.000000,0.000000 -1007,-3.0,120.840000,0.000000,0.000000 -1008,-3.0,120.960000,0.000000,0.000000 -1009,-3.0,121.080000,0.000000,0.000000 -1010,-3.0,121.200000,0.000000,0.000000 -1011,-3.0,121.320000,0.000000,0.000000 -1012,-3.0,121.440000,0.000000,0.000000 -1013,-3.0,121.560000,0.000000,0.000000 -1014,-3.0,121.680000,0.000000,0.000000 -1015,-3.0,121.800000,0.000000,0.000000 -1016,-3.0,121.920000,0.000000,0.000000 -1017,-3.0,122.040000,0.000000,0.000000 -1018,-3.0,122.160000,0.000000,0.000000 -1019,-3.0,122.280000,0.000000,0.000000 -1020,-3.0,122.400000,0.000000,0.000000 -1021,-3.0,122.520000,0.000000,0.000000 -1022,-3.0,122.640000,0.000000,0.000000 -1023,-3.0,122.760000,0.000000,0.000000 -1024,-3.0,122.880000,0.000000,0.000000 -1025,-3.0,123.000000,0.000000,0.000000 -1026,-3.0,123.120000,0.000000,0.000000 -1027,-3.0,123.240000,0.000000,0.000000 -1028,-3.0,123.360000,0.000000,0.000000 -1029,-3.0,123.480000,0.000000,0.000000 -1030,-3.0,123.600000,0.000000,0.000000 -1031,-3.0,123.720000,0.000000,0.000000 -1032,-3.0,123.840000,0.000000,0.000000 -1033,-3.0,123.960000,0.000000,0.000000 -1034,-3.0,124.080000,0.000000,0.000000 -1035,-3.0,124.200000,0.000000,0.000000 -1036,-3.0,124.320000,0.000000,0.000000 -1037,-3.0,124.440000,0.000000,0.000000 -1038,-3.0,124.560000,0.000000,0.000000 -1039,-3.0,124.680000,0.000000,0.000000 -1040,-3.0,124.800000,0.000000,0.000000 -1041,-3.0,124.920000,0.000000,0.000000 -1042,-3.0,125.040000,0.000000,0.000000 -1043,-3.0,125.160000,0.000000,0.000000 -1044,-3.0,125.280000,0.000000,0.000000 -1045,-3.0,125.400000,0.000000,0.000000 -1046,-3.0,125.520000,0.000000,0.000000 -1047,-3.0,125.640000,0.000000,0.000000 -1048,-3.0,125.760000,0.000000,0.000000 -1049,-3.0,125.880000,0.000000,0.000000 -1050,-3.0,126.000000,0.000000,0.000000 -1051,-3.0,126.120000,0.000000,0.000000 -1052,-3.0,126.240000,0.000000,0.000000 -1053,-3.0,126.360000,0.000000,0.000000 -1054,-3.0,126.480000,0.000000,0.000000 -1055,-3.0,126.600000,0.000000,0.000000 -1056,-3.0,126.720000,0.000000,0.000000 -1057,-3.0,126.840000,0.000000,0.000000 -1058,-3.0,126.960000,0.000000,0.000000 -1059,-3.0,127.080000,0.000000,0.000000 -1060,-3.0,127.200000,0.000000,0.000000 -1061,-3.0,127.320000,0.000000,0.000000 -1062,-3.0,127.440000,0.000000,0.000000 -1063,-3.0,127.560000,0.000000,0.000000 -1064,-3.0,127.680000,0.000000,0.000000 -1065,-3.0,127.800000,0.000000,0.000000 -1066,-3.0,127.920000,0.000000,0.000000 -1067,-3.0,128.040000,0.000000,0.000000 -1068,-3.0,128.160000,0.000000,0.000000 -1069,-3.0,128.280000,0.000000,0.000000 -1070,-3.0,128.400000,0.000000,0.000000 -1071,-3.0,128.520000,0.000000,0.000000 -1072,-3.0,128.640000,0.000000,0.000000 -1073,-3.0,128.760000,0.000000,0.000000 -1074,-3.0,128.880000,0.000000,0.000000 -1075,-3.0,129.000000,0.000000,0.000000 -1076,-3.0,129.120000,0.000000,0.000000 -1077,-3.0,129.240000,0.000000,0.000000 -1078,-3.0,129.360000,0.000000,0.000000 -1079,-3.0,129.480000,0.000000,0.000000 -1080,-3.0,129.600000,0.000000,0.000000 -1081,-3.0,129.720000,0.000000,0.000000 -1082,-3.0,129.840000,0.000000,0.000000 -1083,-3.0,129.960000,0.000000,0.000000 -1084,-3.0,130.080000,0.000000,0.000000 -1085,-3.0,130.200000,0.000000,0.000000 -1086,-3.0,130.320000,0.000000,0.000000 -1087,-3.0,130.440000,0.000000,0.000000 -1088,-3.0,130.560000,0.000000,0.000000 -1089,-3.0,130.680000,0.000000,0.000000 -1090,-3.0,130.800000,0.000000,0.000000 -1091,-3.0,130.920000,0.000000,0.000000 -1092,-3.0,131.040000,0.000000,0.000000 -1093,-3.0,131.160000,0.000000,0.000000 -1094,-3.0,131.280000,0.000000,0.000000 -1095,-3.0,131.400000,0.000000,0.000000 -1096,-3.0,131.520000,0.000000,0.000000 -1097,-3.0,131.640000,0.000000,0.000000 -1098,-3.0,131.760000,0.000000,0.000000 -1099,-3.0,131.880000,0.000000,0.000000 -1100,-3.0,132.000000,0.000000,0.000000 -1101,-3.0,132.120000,0.000000,0.000000 -1102,-3.0,132.240000,0.000000,0.000000 -1103,-3.0,132.360000,0.000000,0.000000 -1104,-3.0,132.480000,0.000000,0.000000 -1105,-3.0,132.600000,0.000000,0.000000 -1106,-3.0,132.720000,0.000000,0.000000 -1107,-3.0,132.840000,0.000000,0.000000 -1108,-3.0,132.960000,0.000000,0.000000 -1109,-3.0,133.080000,0.000000,0.000000 -1110,-3.0,133.200000,0.000000,0.000000 -1111,-3.0,133.320000,0.000000,0.000000 -1112,-3.0,133.440000,0.000000,0.000000 -1113,-3.0,133.560000,0.000000,0.000000 -1114,-3.0,133.680000,0.000000,0.000000 -1115,-3.0,133.800000,0.000000,0.000000 -1116,-3.0,133.920000,0.000000,0.000000 -1117,-3.0,134.040000,0.000000,0.000000 -1118,-3.0,134.160000,0.000000,0.000000 -1119,-3.0,134.280000,0.000000,0.000000 -1120,-3.0,134.400000,0.000000,0.000000 -1121,-3.0,134.520000,0.000000,0.000000 -1122,-3.0,134.640000,0.000000,0.000000 -1123,-3.0,134.760000,0.000000,0.000000 -1124,-3.0,134.880000,0.000000,0.000000 -1125,-3.0,135.000000,0.000000,0.000000 -1126,-3.0,135.120000,0.000000,0.000000 -1127,-3.0,135.240000,0.000000,0.000000 -1128,-3.0,135.360000,0.000000,0.000000 -1129,-3.0,135.480000,0.000000,0.000000 -1130,-3.0,135.600000,0.000000,0.000000 -1131,-3.0,135.720000,0.000000,0.000000 -1132,-3.0,135.840000,0.000000,0.000000 -1133,-3.0,135.960000,0.000000,0.000000 -1134,-3.0,136.080000,0.000000,0.000000 -1135,-3.0,136.200000,0.000000,0.000000 -1136,-3.0,136.320000,0.000000,0.000000 -1137,-3.0,136.440000,0.000000,0.000000 -1138,-3.0,136.560000,0.000000,0.000000 -1139,-3.0,136.680000,0.000000,0.000000 -1140,-3.0,136.800000,0.000000,0.000000 -1141,-3.0,136.920000,0.000000,0.000000 -1142,-3.0,137.040000,0.000000,0.000000 -1143,-3.0,137.160000,0.000000,0.000000 -1144,-3.0,137.280000,0.000000,0.000000 -1145,-3.0,137.400000,0.000000,0.000000 -1146,-3.0,137.520000,0.000000,0.000000 -1147,-3.0,137.640000,0.000000,0.000000 -1148,-3.0,137.760000,0.000000,0.000000 -1149,-3.0,137.880000,0.000000,0.000000 -1150,-3.0,138.000000,0.000000,0.000000 -1151,-3.0,138.120000,0.000000,0.000000 -1152,-3.0,138.240000,0.000000,0.000000 -1153,-3.0,138.360000,0.000000,0.000000 -1154,-3.0,138.480000,0.000000,0.000000 -1155,-3.0,138.600000,0.000000,0.000000 -1156,-3.0,138.720000,0.000000,0.000000 -1157,-3.0,138.840000,0.000000,0.000000 -1158,-3.0,138.960000,0.000000,0.000000 -1159,-3.0,139.080000,0.000000,0.000000 -1160,-3.0,139.200000,0.000000,0.000000 -1161,-3.0,139.320000,0.000000,0.000000 -1162,-3.0,139.440000,0.000000,0.000000 -1163,-3.0,139.560000,0.000000,0.000000 -1164,-3.0,139.680000,0.000000,0.000000 -1165,-3.0,139.800000,0.000000,0.000000 -1166,-3.0,139.920000,0.000000,0.000000 -1167,-3.0,140.040000,0.000000,0.000000 -1168,-3.0,140.160000,0.000000,0.000000 -1169,-3.0,140.280000,0.000000,0.000000 -1170,-3.0,140.400000,0.000000,0.000000 -1171,-3.0,140.520000,0.000000,0.000000 -1172,-3.0,140.640000,0.000000,0.000000 -1173,-3.0,140.760000,0.000000,0.000000 -1174,-3.0,140.880000,0.000000,0.000000 -1175,-3.0,141.000000,0.000000,0.000000 -1176,-3.0,141.120000,0.000000,0.000000 -1177,-3.0,141.240000,0.000000,0.000000 -1178,-3.0,141.360000,0.000000,0.000000 -1179,-3.0,141.480000,0.000000,0.000000 -1180,-3.0,141.600000,0.000000,0.000000 -1181,-3.0,141.720000,0.000000,0.000000 -1182,-3.0,141.840000,0.000000,0.000000 -1183,-3.0,141.960000,0.000000,0.000000 -1184,-3.0,142.080000,0.000000,0.000000 -1185,-3.0,142.200000,0.000000,0.000000 -1186,-3.0,142.320000,0.000000,0.000000 -1187,-3.0,142.440000,0.000000,0.000000 -1188,-3.0,142.560000,0.000000,0.000000 -1189,-3.0,142.680000,0.000000,0.000000 -1190,-3.0,142.800000,0.000000,0.000000 -1191,-3.0,142.920000,0.000000,0.000000 -1192,-3.0,143.040000,0.000000,0.000000 -1193,-3.0,143.160000,0.000000,0.000000 -1194,-3.0,143.280000,0.000000,0.000000 -1195,-3.0,143.400000,0.000000,0.000000 -1196,-3.0,143.520000,0.000000,0.000000 -1197,-3.0,143.640000,0.000000,0.000000 -1198,-3.0,143.760000,0.000000,0.000000 -1199,-3.0,143.880000,0.000000,0.000000 -1200,-3.0,144.000000,0.000000,0.000000 -1201,-3.0,144.120000,0.000000,0.000000 -1202,-3.0,144.240000,0.000000,0.000000 -1203,-3.0,144.360000,0.000000,0.000000 -1204,-3.0,144.480000,0.000000,0.000000 -1205,-3.0,144.600000,0.000000,0.000000 -1206,-3.0,144.720000,0.000000,0.000000 -1207,-3.0,144.840000,0.000000,0.000000 -1208,-3.0,144.960000,0.000000,0.000000 -1209,-3.0,145.080000,0.000000,0.000000 -1210,-3.0,145.200000,0.000000,0.000000 -1211,-3.0,145.320000,0.000000,0.000000 -1212,-3.0,145.440000,0.000000,0.000000 -1213,-3.0,145.560000,0.000000,0.000000 -1214,-3.0,145.680000,0.000000,0.000000 -1215,-3.0,145.800000,0.000000,0.000000 -1216,-3.0,145.920000,0.000000,0.000000 -1217,-3.0,146.040000,0.000000,0.000000 -1218,-3.0,146.160000,0.000000,0.000000 -1219,-3.0,146.280000,0.000000,0.000000 -1220,-3.0,146.400000,0.000000,0.000000 -1221,-3.0,146.520000,0.000000,0.000000 -1222,-3.0,146.640000,0.000000,0.000000 -1223,-3.0,146.760000,0.000000,0.000000 -1224,-3.0,146.880000,0.000000,0.000000 -1225,-3.0,147.000000,0.000000,0.000000 -1226,-3.0,147.120000,0.000000,0.000000 -1227,-3.0,147.240000,0.000000,0.000000 -1228,-3.0,147.360000,0.000000,0.000000 -1229,-3.0,147.480000,0.000000,0.000000 -1230,-3.0,147.600000,0.000000,0.000000 -1231,-3.0,147.720000,0.000000,0.000000 -1232,-3.0,147.840000,0.000000,0.000000 -1233,-3.0,147.960000,0.000000,0.000000 -1234,-3.0,148.080000,0.000000,0.000000 -1235,-3.0,148.200000,0.000000,0.000000 -1236,-3.0,148.320000,0.000000,0.000000 -1237,-3.0,148.440000,0.000000,0.000000 -1238,-3.0,148.560000,0.000000,0.000000 -1239,-3.0,148.680000,0.000000,0.000000 -1240,-3.0,148.800000,0.000000,0.000000 -1241,-3.0,148.920000,0.000000,0.000000 -1242,-3.0,149.040000,0.000000,0.000000 -1243,-3.0,149.160000,0.000000,0.000000 -1244,-3.0,149.280000,0.000000,0.000000 -1245,-3.0,149.400000,0.000000,0.000000 -1246,-3.0,149.520000,0.000000,0.000000 -1247,-3.0,149.640000,0.000000,0.000000 -1248,-3.0,149.760000,0.000000,0.000000 -1249,-3.0,149.880000,0.000000,0.000000 -1250,-3.0,150.000000,0.000000,0.000000 -1251,-3.0,150.120000,0.000000,0.000000 -1252,-3.0,150.240000,0.000000,0.000000 -1253,-3.0,150.360000,0.000000,0.000000 -1254,-3.0,150.480000,0.000000,0.000000 -1255,-3.0,150.600000,0.000000,0.000000 -1256,-3.0,150.720000,0.000000,0.000000 -1257,-3.0,150.840000,0.000000,0.000000 -1258,-3.0,150.960000,0.000000,0.000000 -1259,-3.0,151.080000,0.000000,0.000000 -1260,-3.0,151.200000,0.000000,0.000000 -1261,-3.0,151.320000,0.000000,0.000000 -1262,-3.0,151.440000,0.000000,0.000000 -1263,-3.0,151.560000,0.000000,0.000000 -1264,-3.0,151.680000,0.000000,0.000000 -1265,-3.0,151.800000,0.000000,0.000000 -1266,-3.0,151.920000,0.000000,0.000000 -1267,-3.0,152.040000,0.000000,0.000000 -1268,-3.0,152.160000,0.000000,0.000000 -1269,-3.0,152.280000,0.000000,0.000000 -1270,-3.0,152.400000,0.000000,0.000000 -1271,-3.0,152.520000,0.000000,0.000000 -1272,-3.0,152.640000,0.000000,0.000000 -1273,-3.0,152.760000,0.000000,0.000000 -1274,-3.0,152.880000,0.000000,0.000000 -1275,-3.0,153.000000,0.000000,0.000000 -1276,-3.0,153.120000,0.000000,0.000000 -1277,-3.0,153.240000,0.000000,0.000000 -1278,-3.0,153.360000,0.000000,0.000000 -1279,-3.0,153.480000,0.000000,0.000000 -1280,-3.0,153.600000,0.000000,0.000000 -1281,-3.0,153.720000,0.000000,0.000000 -1282,-3.0,153.840000,0.000000,0.000000 -1283,-3.0,153.960000,0.000000,0.000000 -1284,-3.0,154.080000,0.000000,0.000000 -1285,-3.0,154.200000,0.000000,0.000000 -1286,-3.0,154.320000,0.000000,0.000000 -1287,-3.0,154.440000,0.000000,0.000000 -1288,-3.0,154.560000,0.000000,0.000000 -1289,-3.0,154.680000,0.000000,0.000000 -1290,-3.0,154.800000,0.000000,0.000000 -1291,-3.0,154.920000,0.000000,0.000000 -1292,-3.0,155.040000,0.000000,0.000000 -1293,-3.0,155.160000,0.000000,0.000000 -1294,-3.0,155.280000,0.000000,0.000000 -1295,-3.0,155.400000,0.000000,0.000000 -1296,-3.0,155.520000,0.000000,0.000000 -1297,-3.0,155.640000,0.000000,0.000000 -1298,-3.0,155.760000,0.000000,0.000000 -1299,-3.0,155.880000,0.000000,0.000000 -1300,-3.0,156.000000,0.000000,0.000000 -1301,-3.0,156.120000,0.000000,0.000000 -1302,-3.0,156.240000,0.000000,0.000000 -1303,-3.0,156.360000,0.000000,0.000000 -1304,-3.0,156.480000,0.000000,0.000000 -1305,-3.0,156.600000,0.000000,0.000000 -1306,-3.0,156.720000,0.000000,0.000000 -1307,-3.0,156.840000,0.000000,0.000000 -1308,-3.0,156.960000,0.000000,0.000000 -1309,-3.0,157.080000,0.000000,0.000000 -1310,-3.0,157.200000,0.000000,0.000000 -1311,-3.0,157.320000,0.000000,0.000000 -1312,-3.0,157.440000,0.000000,0.000000 -1313,-3.0,157.560000,0.000000,0.000000 -1314,-3.0,157.680000,0.000000,0.000000 -1315,-3.0,157.800000,0.000000,0.000000 -1316,-3.0,157.920000,0.000000,0.000000 -1317,-3.0,158.040000,0.000000,0.000000 -1318,-3.0,158.160000,0.000000,0.000000 -1319,-3.0,158.280000,0.000000,0.000000 -1320,-3.0,158.400000,0.000000,0.000000 -1321,-3.0,158.520000,0.000000,0.000000 -1322,-3.0,158.640000,0.000000,0.000000 -1323,-3.0,158.760000,0.000000,0.000000 -1324,-3.0,158.880000,0.000000,0.000000 -1325,-3.0,159.000000,0.000000,0.000000 -1326,-3.0,159.120000,0.000000,0.000000 -1327,-3.0,159.240000,0.000000,0.000000 -1328,-3.0,159.360000,0.000000,0.000000 -1329,-3.0,159.480000,0.000000,0.000000 -1330,-3.0,159.600000,0.000000,0.000000 -1331,-3.0,159.720000,0.000000,0.000000 -1332,-3.0,159.840000,0.000000,0.000000 -1333,-3.0,159.960000,0.000000,0.000000 -1334,-3.0,160.080000,0.000000,0.000000 -1335,-3.0,160.200000,0.000000,0.000000 -1336,-3.0,160.320000,0.000000,0.000000 -1337,-3.0,160.440000,0.000000,0.000000 -1338,-3.0,160.560000,0.000000,0.000000 -1339,-3.0,160.680000,0.000000,0.000000 -1340,-3.0,160.800000,0.000000,0.000000 -1341,-3.0,160.920000,0.000000,0.000000 -1342,-3.0,161.040000,0.000000,0.000000 -1343,-3.0,161.160000,0.000000,0.000000 -1344,-3.0,161.280000,0.000000,0.000000 -1345,-3.0,161.400000,0.000000,0.000000 -1346,-3.0,161.520000,0.000000,0.000000 -1347,-3.0,161.640000,0.000000,0.000000 -1348,-3.0,161.760000,0.000000,0.000000 -1349,-3.0,161.880000,0.000000,0.000000 -1350,-3.0,162.000000,0.000000,0.000000 -1351,-3.0,162.120000,0.000000,0.000000 -1352,-3.0,162.240000,0.000000,0.000000 -1353,-3.0,162.360000,0.000000,0.000000 -1354,-3.0,162.480000,0.000000,0.000000 -1355,-3.0,162.600000,0.000000,0.000000 -1356,-3.0,162.720000,0.000000,0.000000 -1357,-3.0,162.840000,0.000000,0.000000 -1358,-3.0,162.960000,0.000000,0.000000 -1359,-3.0,163.080000,0.000000,0.000000 -1360,-3.0,163.200000,0.000000,0.000000 -1361,-3.0,163.320000,0.000000,0.000000 -1362,-3.0,163.440000,0.000000,0.000000 -1363,-3.0,163.560000,0.000000,0.000000 -1364,-3.0,163.680000,0.000000,0.000000 -1365,-3.0,163.800000,0.000000,0.000000 -1366,-3.0,163.920000,0.000000,0.000000 -1367,-3.0,164.040000,0.000000,0.000000 -1368,-3.0,164.160000,0.000000,0.000000 -1369,-3.0,164.280000,0.000000,0.000000 -1370,-3.0,164.400000,0.000000,0.000000 -1371,-3.0,164.520000,0.000000,0.000000 -1372,-3.0,164.640000,0.000000,0.000000 -1373,-3.0,164.760000,0.000000,0.000000 -1374,-3.0,164.880000,0.000000,0.000000 -1375,-3.0,165.000000,0.000000,0.000000 -1376,-3.0,165.120000,0.000000,0.000000 -1377,-3.0,165.240000,0.000000,0.000000 -1378,-3.0,165.360000,0.000000,0.000000 -1379,-3.0,165.480000,0.000000,0.000000 -1380,-3.0,165.600000,0.000000,0.000000 -1381,-3.0,165.720000,0.000000,0.000000 -1382,-3.0,165.840000,0.000000,0.000000 -1383,-3.0,165.960000,0.000000,0.000000 -1384,-3.0,166.080000,0.000000,0.000000 -1385,-3.0,166.200000,0.000000,0.000000 -1386,-3.0,166.320000,0.000000,0.000000 -1387,-3.0,166.440000,0.000000,0.000000 -1388,-3.0,166.560000,0.000000,0.000000 -1389,-3.0,166.680000,0.000000,0.000000 -1390,-3.0,166.800000,0.000000,0.000000 -1391,-3.0,166.920000,0.000000,0.000000 -1392,-3.0,167.040000,0.000000,0.000000 -1393,-3.0,167.160000,0.000000,0.000000 -1394,-3.0,167.280000,0.000000,0.000000 -1395,-3.0,167.400000,0.000000,0.000000 -1396,-3.0,167.520000,0.000000,0.000000 -1397,-3.0,167.640000,0.000000,0.000000 -1398,-3.0,167.760000,0.000000,0.000000 -1399,-3.0,167.880000,0.000000,0.000000 -1400,-3.0,168.000000,0.000000,0.000000 -1401,-3.0,168.120000,0.000000,0.000000 -1402,-3.0,168.240000,0.000000,0.000000 -1403,-3.0,168.360000,0.000000,0.000000 -1404,-3.0,168.480000,0.000000,0.000000 -1405,-3.0,168.600000,0.000000,0.000000 -1406,-3.0,168.720000,0.000000,0.000000 -1407,-3.0,168.840000,0.000000,0.000000 -1408,-3.0,168.960000,0.000000,0.000000 -1409,-3.0,169.080000,0.000000,0.000000 -1410,-3.0,169.200000,0.000000,0.000000 -1411,-3.0,169.320000,0.000000,0.000000 -1412,-3.0,169.440000,0.000000,0.000000 -1413,-3.0,169.560000,0.000000,0.000000 -1414,-3.0,169.680000,0.000000,0.000000 -1415,-3.0,169.800000,0.000000,0.000000 -1416,-3.0,169.920000,0.000000,0.000000 -1417,-3.0,170.040000,0.000000,0.000000 -1418,-3.0,170.160000,0.000000,0.000000 -1419,-3.0,170.280000,0.000000,0.000000 -1420,-3.0,170.400000,0.000000,0.000000 -1421,-3.0,170.520000,0.000000,0.000000 -1422,-3.0,170.640000,0.000000,0.000000 -1423,-3.0,170.760000,0.000000,0.000000 -1424,-3.0,170.880000,0.000000,0.000000 -1425,-3.0,171.000000,0.000000,0.000000 -1426,-3.0,171.120000,0.000000,0.000000 -1427,-3.0,171.240000,0.000000,0.000000 -1428,-3.0,171.360000,0.000000,0.000000 -1429,-3.0,171.480000,0.000000,0.000000 -1430,-3.0,171.600000,0.000000,0.000000 -1431,-3.0,171.720000,0.000000,0.000000 -1432,-3.0,171.840000,0.000000,0.000000 -1433,-3.0,171.960000,0.000000,0.000000 -1434,-3.0,172.080000,0.000000,0.000000 -1435,-3.0,172.200000,0.000000,0.000000 -1436,-3.0,172.320000,0.000000,0.000000 -1437,-3.0,172.440000,0.000000,0.000000 -1438,-3.0,172.560000,0.000000,0.000000 -1439,-3.0,172.680000,0.000000,0.000000 -1440,-3.0,172.800000,0.000000,0.000000 -1441,-3.0,172.920000,0.000000,0.000000 -1442,-3.0,173.040000,0.000000,0.000000 -1443,-3.0,173.160000,0.000000,0.000000 -1444,-3.0,173.280000,0.000000,0.000000 -1445,-3.0,173.400000,0.000000,0.000000 -1446,-3.0,173.520000,0.000000,0.000000 -1447,-3.0,173.640000,0.000000,0.000000 -1448,-3.0,173.760000,0.000000,0.000000 -1449,-3.0,173.880000,0.000000,0.000000 -1450,-3.0,174.000000,0.000000,0.000000 -1451,-3.0,174.120000,0.000000,0.000000 -1452,-3.0,174.240000,0.000000,0.000000 -1453,-3.0,174.360000,0.000000,0.000000 -1454,-3.0,174.480000,0.000000,0.000000 -1455,-3.0,174.600000,0.000000,0.000000 -1456,-3.0,174.720000,0.000000,0.000000 -1457,-3.0,174.840000,0.000000,0.000000 -1458,-3.0,174.960000,0.000000,0.000000 -1459,-3.0,175.080000,0.000000,0.000000 -1460,-3.0,175.200000,0.000000,0.000000 -1461,-3.0,175.320000,0.000000,0.000000 -1462,-3.0,175.440000,0.000000,0.000000 -1463,-3.0,175.560000,0.000000,0.000000 -1464,-3.0,175.680000,0.000000,0.000000 -1465,-3.0,175.800000,0.000000,0.000000 -1466,-3.0,175.920000,0.000000,0.000000 -1467,-3.0,176.040000,0.000000,0.000000 -1468,-3.0,176.160000,0.000000,0.000000 -1469,-3.0,176.280000,0.000000,0.000000 -1470,-3.0,176.400000,0.000000,0.000000 -1471,-3.0,176.520000,0.000000,0.000000 -1472,-3.0,176.640000,0.000000,0.000000 -1473,-3.0,176.760000,0.000000,0.000000 -1474,-3.0,176.880000,0.000000,0.000000 -1475,-3.0,177.000000,0.000000,0.000000 -1476,-3.0,177.120000,0.000000,0.000000 -1477,-3.0,177.240000,0.000000,0.000000 -1478,-3.0,177.360000,0.000000,0.000000 -1479,-3.0,177.480000,0.000000,0.000000 -1480,-3.0,177.600000,0.000000,0.000000 -1481,-3.0,177.720000,0.000000,0.000000 -1482,-3.0,177.840000,0.000000,0.000000 -1483,-3.0,177.960000,0.000000,0.000000 -1484,-3.0,178.080000,0.000000,0.000000 -1485,-3.0,178.200000,0.000000,0.000000 -1486,-3.0,178.320000,0.000000,0.000000 -1487,-3.0,178.440000,0.000000,0.000000 -1488,-3.0,178.560000,0.000000,0.000000 -1489,-3.0,178.680000,0.000000,0.000000 -1490,-3.0,178.800000,0.000000,0.000000 -1491,-3.0,178.920000,0.000000,0.000000 -1492,-3.0,179.040000,0.000000,0.000000 -1493,-3.0,179.160000,0.000000,0.000000 -1494,-3.0,179.280000,0.000000,0.000000 -1495,-3.0,179.400000,0.000000,0.000000 -1496,-3.0,179.520000,0.000000,0.000000 -1497,-3.0,179.640000,0.000000,0.000000 -1498,-3.0,179.760000,0.000000,0.000000 -1499,-3.0,179.880000,0.000000,0.000000 -1500,-3.0,180.000000,0.000000,0.000000 -1501,-3.0,180.120000,0.000000,0.000000 -1502,-3.0,180.240000,0.000000,0.000000 -1503,-3.0,180.360000,0.000000,0.000000 -1504,-3.0,180.480000,0.000000,0.000000 -1505,-3.0,180.600000,0.000000,0.000000 -1506,-3.0,180.720000,0.000000,0.000000 -1507,-3.0,180.840000,0.000000,0.000000 -1508,-3.0,180.960000,0.000000,0.000000 -1509,-3.0,181.080000,0.000000,0.000000 -1510,-3.0,181.200000,0.000000,0.000000 -1511,-3.0,181.320000,0.000000,0.000000 -1512,-3.0,181.440000,0.000000,0.000000 -1513,-3.0,181.560000,0.000000,0.000000 -1514,-3.0,181.680000,0.000000,0.000000 -1515,-3.0,181.800000,0.000000,0.000000 -1516,-3.0,181.920000,0.000000,0.000000 -1517,-3.0,182.040000,0.000000,0.000000 -1518,-3.0,182.160000,0.000000,0.000000 -1519,-3.0,182.280000,0.000000,0.000000 -1520,-3.0,182.400000,0.000000,0.000000 -1521,-3.0,182.520000,0.000000,0.000000 -1522,-3.0,182.640000,0.000000,0.000000 -1523,-3.0,182.760000,0.000000,0.000000 -1524,-3.0,182.880000,0.000000,0.000000 -1525,-3.0,183.000000,0.000000,0.000000 -1526,-3.0,183.120000,0.000000,0.000000 -1527,-3.0,183.240000,0.000000,0.000000 -1528,-3.0,183.360000,0.000000,0.000000 -1529,-3.0,183.480000,0.000000,0.000000 -1530,-3.0,183.600000,0.000000,0.000000 -1531,-3.0,183.720000,0.000000,0.000000 -1532,-3.0,183.840000,0.000000,0.000000 -1533,-3.0,183.960000,0.000000,0.000000 -1534,-3.0,184.080000,0.000000,0.000000 -1535,-3.0,184.200000,0.000000,0.000000 -1536,-3.0,184.320000,0.000000,0.000000 -1537,-3.0,184.440000,0.000000,0.000000 -1538,-3.0,184.560000,0.000000,0.000000 -1539,-3.0,184.680000,0.000000,0.000000 -1540,-3.0,184.800000,0.000000,0.000000 -1541,-3.0,184.920000,0.000000,0.000000 -1542,-3.0,185.040000,0.000000,0.000000 -1543,-3.0,185.160000,0.000000,0.000000 -1544,-3.0,185.280000,0.000000,0.000000 -1545,-3.0,185.400000,0.000000,0.000000 -1546,-3.0,185.520000,0.000000,0.000000 -1547,-3.0,185.640000,0.000000,0.000000 -1548,-3.0,185.760000,0.000000,0.000000 -1549,-3.0,185.880000,0.000000,0.000000 -1550,-3.0,186.000000,0.000000,0.000000 -1551,-3.0,186.120000,0.000000,0.000000 -1552,-3.0,186.240000,0.000000,0.000000 -1553,-3.0,186.360000,0.000000,0.000000 -1554,-3.0,186.480000,0.000000,0.000000 -1555,-3.0,186.600000,0.000000,0.000000 -1556,-3.0,186.720000,0.000000,0.000000 -1557,-3.0,186.840000,0.000000,0.000000 -1558,-3.0,186.960000,0.000000,0.000000 -1559,-3.0,187.080000,0.000000,0.000000 -1560,-3.0,187.200000,0.000000,0.000000 -1561,-3.0,187.320000,0.000000,0.000000 -1562,-3.0,187.440000,0.000000,0.000000 -1563,-3.0,187.560000,0.000000,0.000000 -1564,-3.0,187.680000,0.000000,0.000000 -1565,-3.0,187.800000,0.000000,0.000000 -1566,-3.0,187.920000,0.000000,0.000000 -1567,-3.0,188.040000,0.000000,0.000000 -1568,-3.0,188.160000,0.000000,0.000000 -1569,-3.0,188.280000,0.000000,0.000000 -1570,-3.0,188.400000,0.000000,0.000000 -1571,-3.0,188.520000,0.000000,0.000000 -1572,-3.0,188.640000,0.000000,0.000000 -1573,-3.0,188.760000,0.000000,0.000000 -1574,-3.0,188.880000,0.000000,0.000000 -1575,-3.0,189.000000,0.000000,0.000000 -1576,-3.0,189.120000,0.000000,0.000000 -1577,-3.0,189.240000,0.000000,0.000000 -1578,-3.0,189.360000,0.000000,0.000000 -1579,-3.0,189.480000,0.000000,0.000000 -1580,-3.0,189.600000,0.000000,0.000000 -1581,-3.0,189.720000,0.000000,0.000000 -1582,-3.0,189.840000,0.000000,0.000000 -1583,-3.0,189.960000,0.000000,0.000000 -1584,-3.0,190.080000,0.000000,0.000000 -1585,-3.0,190.200000,0.000000,0.000000 -1586,-3.0,190.320000,0.000000,0.000000 -1587,-3.0,190.440000,0.000000,0.000000 -1588,-3.0,190.560000,0.000000,0.000000 -1589,-3.0,190.680000,0.000000,0.000000 -1590,-3.0,190.800000,0.000000,0.000000 -1591,-3.0,190.920000,0.000000,0.000000 -1592,-3.0,191.040000,0.000000,0.000000 -1593,-3.0,191.160000,0.000000,0.000000 -1594,-3.0,191.280000,0.000000,0.000000 -1595,-3.0,191.400000,0.000000,0.000000 -1596,-3.0,191.520000,0.000000,0.000000 -1597,-3.0,191.640000,0.000000,0.000000 -1598,-3.0,191.760000,0.000000,0.000000 -1599,-3.0,191.880000,0.000000,0.000000 -1600,-3.0,192.000000,0.000000,0.000000 -1601,-3.0,192.120000,0.000000,0.000000 -1602,-3.0,192.240000,0.000000,0.000000 -1603,-3.0,192.360000,0.000000,0.000000 -1604,-3.0,192.480000,0.000000,0.000000 -1605,-3.0,192.600000,0.000000,0.000000 -1606,-3.0,192.720000,0.000000,0.000000 -1607,-3.0,192.840000,0.000000,0.000000 -1608,-3.0,192.960000,0.000000,0.000000 -1609,-3.0,193.080000,0.000000,0.000000 -1610,-3.0,193.200000,0.000000,0.000000 -1611,-3.0,193.320000,0.000000,0.000000 -1612,-3.0,193.440000,0.000000,0.000000 -1613,-3.0,193.560000,0.000000,0.000000 -1614,-3.0,193.680000,0.000000,0.000000 -1615,-3.0,193.800000,0.000000,0.000000 -1616,-3.0,193.920000,0.000000,0.000000 -1617,-3.0,194.040000,0.000000,0.000000 -1618,-3.0,194.160000,0.000000,0.000000 -1619,-3.0,194.280000,0.000000,0.000000 -1620,-3.0,194.400000,0.000000,0.000000 -1621,-3.0,194.520000,0.000000,0.000000 -1622,-3.0,194.640000,0.000000,0.000000 -1623,-3.0,194.760000,0.000000,0.000000 -1624,-3.0,194.880000,0.000000,0.000000 -1625,-3.0,195.000000,0.000000,0.000000 -1626,-3.0,195.120000,0.000000,0.000000 -1627,-3.0,195.240000,0.000000,0.000000 -1628,-3.0,195.360000,0.000000,0.000000 -1629,-3.0,195.480000,0.000000,0.000000 -1630,-3.0,195.600000,0.000000,0.000000 -1631,-3.0,195.720000,0.000000,0.000000 -1632,-3.0,195.840000,0.000000,0.000000 -1633,-3.0,195.960000,0.000000,0.000000 -1634,-3.0,196.080000,0.000000,0.000000 -1635,-3.0,196.200000,0.000000,0.000000 -1636,-3.0,196.320000,0.000000,0.000000 -1637,-3.0,196.440000,0.000000,0.000000 -1638,-3.0,196.560000,0.000000,0.000000 -1639,-3.0,196.680000,0.000000,0.000000 -1640,-3.0,196.800000,0.000000,0.000000 -1641,-3.0,196.920000,0.000000,0.000000 -1642,-3.0,197.040000,0.000000,0.000000 -1643,-3.0,197.160000,0.000000,0.000000 -1644,-3.0,197.280000,0.000000,0.000000 -1645,-3.0,197.400000,0.000000,0.000000 -1646,-3.0,197.520000,0.000000,0.000000 -1647,-3.0,197.640000,0.000000,0.000000 -1648,-3.0,197.760000,0.000000,0.000000 -1649,-3.0,197.880000,0.000000,0.000000 -1650,-3.0,198.000000,0.000000,0.000000 -1651,-3.0,198.120000,0.000000,0.000000 -1652,-3.0,198.240000,0.000000,0.000000 -1653,-3.0,198.360000,0.000000,0.000000 -1654,-3.0,198.480000,0.000000,0.000000 -1655,-3.0,198.600000,0.000000,0.000000 -1656,-3.0,198.720000,0.000000,0.000000 -1657,-3.0,198.840000,0.000000,0.000000 -1658,-3.0,198.960000,0.000000,0.000000 -1659,-3.0,199.080000,0.000000,0.000000 -1660,-3.0,199.200000,0.000000,0.000000 -1661,-3.0,199.320000,0.000000,0.000000 -1662,-3.0,199.440000,0.000000,0.000000 -1663,-3.0,199.560000,0.000000,0.000000 -1664,-3.0,199.680000,0.000000,0.000000 -1665,-3.0,199.800000,0.000000,0.000000 -1666,-3.0,199.920000,0.000000,0.000000 -1667,-3.0,200.040000,0.000000,0.000000 -1668,-3.0,200.160000,0.000000,0.000000 -1669,-3.0,200.280000,0.000000,0.000000 -1670,-3.0,200.400000,0.000000,0.000000 -1671,-3.0,200.520000,0.000000,0.000000 -1672,-3.0,200.640000,0.000000,0.000000 -1673,-3.0,200.760000,0.000000,0.000000 -1674,-3.0,200.880000,0.000000,0.000000 -1675,-3.0,201.000000,0.000000,0.000000 -1676,-3.0,201.120000,0.000000,0.000000 -1677,-3.0,201.240000,0.000000,0.000000 -1678,-3.0,201.360000,0.000000,0.000000 -1679,-3.0,201.480000,0.000000,0.000000 -1680,-3.0,201.600000,0.000000,0.000000 -1681,-3.0,201.720000,0.000000,0.000000 -1682,-3.0,201.840000,0.000000,0.000000 -1683,-3.0,201.960000,0.000000,0.000000 -1684,-3.0,202.080000,0.000000,0.000000 -1685,-3.0,202.200000,0.000000,0.000000 -1686,-3.0,202.320000,0.000000,0.000000 -1687,-3.0,202.440000,0.000000,0.000000 -1688,-3.0,202.560000,0.000000,0.000000 -1689,-3.0,202.680000,0.000000,0.000000 -1690,-3.0,202.800000,0.000000,0.000000 -1691,-3.0,202.920000,0.000000,0.000000 -1692,-3.0,203.040000,0.000000,0.000000 -1693,-3.0,203.160000,0.000000,0.000000 -1694,-3.0,203.280000,0.000000,0.000000 -1695,-3.0,203.400000,0.000000,0.000000 -1696,-3.0,203.520000,0.000000,0.000000 -1697,-3.0,203.640000,0.000000,0.000000 -1698,-3.0,203.760000,0.000000,0.000000 -1699,-3.0,203.880000,0.000000,0.000000 -1700,-3.0,204.000000,0.000000,0.000000 -1701,-3.0,204.120000,0.000000,0.000000 -1702,-3.0,204.240000,0.000000,0.000000 -1703,-3.0,204.360000,0.000000,0.000000 -1704,-3.0,204.480000,0.000000,0.000000 -1705,-3.0,204.600000,0.000000,0.000000 -1706,-3.0,204.720000,0.000000,0.000000 -1707,-3.0,204.840000,0.000000,0.000000 -1708,-3.0,204.960000,0.000000,0.000000 -1709,-3.0,205.080000,0.000000,0.000000 -1710,-3.0,205.200000,0.000000,0.000000 -1711,-3.0,205.320000,0.000000,0.000000 -1712,-3.0,205.440000,0.000000,0.000000 -1713,-3.0,205.560000,0.000000,0.000000 -1714,-3.0,205.680000,0.000000,0.000000 -1715,-3.0,205.800000,0.000000,0.000000 -1716,-3.0,205.920000,0.000000,0.000000 -1717,-3.0,206.040000,0.000000,0.000000 -1718,-3.0,206.160000,0.000000,0.000000 -1719,-3.0,206.280000,0.000000,0.000000 -1720,-3.0,206.400000,0.000000,0.000000 -1721,-3.0,206.520000,0.000000,0.000000 -1722,-3.0,206.640000,0.000000,0.000000 -1723,-3.0,206.760000,0.000000,0.000000 -1724,-3.0,206.880000,0.000000,0.000000 -1725,-3.0,207.000000,0.000000,0.000000 -1726,-3.0,207.120000,0.000000,0.000000 -1727,-3.0,207.240000,0.000000,0.000000 -1728,-3.0,207.360000,0.000000,0.000000 -1729,-3.0,207.480000,0.000000,0.000000 -1730,-3.0,207.600000,0.000000,0.000000 -1731,-3.0,207.720000,0.000000,0.000000 -1732,-3.0,207.840000,0.000000,0.000000 -1733,-3.0,207.960000,0.000000,0.000000 -1734,-3.0,208.080000,0.000000,0.000000 -1735,-3.0,208.200000,0.000000,0.000000 -1736,-3.0,208.320000,0.000000,0.000000 -1737,-3.0,208.440000,0.000000,0.000000 -1738,-3.0,208.560000,0.000000,0.000000 -1739,-3.0,208.680000,0.000000,0.000000 -1740,-3.0,208.800000,0.000000,0.000000 -1741,-3.0,208.920000,0.000000,0.000000 -1742,-3.0,209.040000,0.000000,0.000000 -1743,-3.0,209.160000,0.000000,0.000000 -1744,-3.0,209.280000,0.000000,0.000000 -1745,-3.0,209.400000,0.000000,0.000000 -1746,-3.0,209.520000,0.000000,0.000000 -1747,-3.0,209.640000,0.000000,0.000000 -1748,-3.0,209.760000,0.000000,0.000000 -1749,-3.0,209.880000,0.000000,0.000000 -1750,-3.0,210.000000,0.000000,0.000000 -1751,-3.0,210.120000,0.000000,0.000000 -1752,-3.0,210.240000,0.000000,0.000000 -1753,-3.0,210.360000,0.000000,0.000000 -1754,-3.0,210.480000,0.000000,0.000000 -1755,-3.0,210.600000,0.000000,0.000000 -1756,-3.0,210.720000,0.000000,0.000000 -1757,-3.0,210.840000,0.000000,0.000000 -1758,-3.0,210.960000,0.000000,0.000000 -1759,-3.0,211.080000,0.000000,0.000000 -1760,-3.0,211.200000,0.000000,0.000000 -1761,-3.0,211.320000,0.000000,0.000000 -1762,-3.0,211.440000,0.000000,0.000000 -1763,-3.0,211.560000,0.000000,0.000000 -1764,-3.0,211.680000,0.000000,0.000000 -1765,-3.0,211.800000,0.000000,0.000000 -1766,-3.0,211.920000,0.000000,0.000000 -1767,-3.0,212.040000,0.000000,0.000000 -1768,-3.0,212.160000,0.000000,0.000000 -1769,-3.0,212.280000,0.000000,0.000000 -1770,-3.0,212.400000,0.000000,0.000000 -1771,-3.0,212.520000,0.000000,0.000000 -1772,-3.0,212.640000,0.000000,0.000000 -1773,-3.0,212.760000,0.000000,0.000000 -1774,-3.0,212.880000,0.000000,0.000000 -1775,-3.0,213.000000,0.000000,0.000000 -1776,-3.0,213.120000,0.000000,0.000000 -1777,-3.0,213.240000,0.000000,0.000000 -1778,-3.0,213.360000,0.000000,0.000000 -1779,-3.0,213.480000,0.000000,0.000000 -1780,-3.0,213.600000,0.000000,0.000000 -1781,-3.0,213.720000,0.000000,0.000000 -1782,-3.0,213.840000,0.000000,0.000000 -1783,-3.0,213.960000,0.000000,0.000000 -1784,-3.0,214.080000,0.000000,0.000000 -1785,-3.0,214.200000,0.000000,0.000000 -1786,-3.0,214.320000,0.000000,0.000000 -1787,-3.0,214.440000,0.000000,0.000000 -1788,-3.0,214.560000,0.000000,0.000000 -1789,-3.0,214.680000,0.000000,0.000000 -1790,-3.0,214.800000,0.000000,0.000000 -1791,-3.0,214.920000,0.000000,0.000000 -1792,-3.0,215.040000,0.000000,0.000000 -1793,-3.0,215.160000,0.000000,0.000000 -1794,-3.0,215.280000,0.000000,0.000000 -1795,-3.0,215.400000,0.000000,0.000000 -1796,-3.0,215.520000,0.000000,0.000000 -1797,-3.0,215.640000,0.000000,0.000000 -1798,-3.0,215.760000,0.000000,0.000000 -1799,-3.0,215.880000,0.000000,0.000000 -1800,-3.0,216.000000,0.000000,0.000000 -1801,-3.0,216.120000,0.000000,0.000000 -1802,-3.0,216.240000,0.000000,0.000000 -1803,-3.0,216.360000,0.000000,0.000000 -1804,-3.0,216.480000,0.000000,0.000000 -1805,-3.0,216.600000,0.000000,0.000000 -1806,-3.0,216.720000,0.000000,0.000000 -1807,-3.0,216.840000,0.000000,0.000000 -1808,-3.0,216.960000,0.000000,0.000000 -1809,-3.0,217.080000,0.000000,0.000000 -1810,-3.0,217.200000,0.000000,0.000000 -1811,-3.0,217.320000,0.000000,0.000000 -1812,-3.0,217.440000,0.000000,0.000000 -1813,-3.0,217.560000,0.000000,0.000000 -1814,-3.0,217.680000,0.000000,0.000000 -1815,-3.0,217.800000,0.000000,0.000000 -1816,-3.0,217.920000,0.000000,0.000000 -1817,-3.0,218.040000,0.000000,0.000000 -1818,-3.0,218.160000,0.000000,0.000000 -1819,-3.0,218.280000,0.000000,0.000000 -1820,-3.0,218.400000,0.000000,0.000000 -1821,-3.0,218.520000,0.000000,0.000000 -1822,-3.0,218.640000,0.000000,0.000000 -1823,-3.0,218.760000,0.000000,0.000000 -1824,-3.0,218.880000,0.000000,0.000000 -1825,-3.0,219.000000,0.000000,0.000000 -1826,-3.0,219.120000,0.000000,0.000000 -1827,-3.0,219.240000,0.000000,0.000000 -1828,-3.0,219.360000,0.000000,0.000000 -1829,-3.0,219.480000,0.000000,0.000000 -1830,-3.0,219.600000,0.000000,0.000000 -1831,-3.0,219.720000,0.000000,0.000000 -1832,-3.0,219.840000,0.000000,0.000000 -1833,-3.0,219.960000,0.000000,0.000000 -1834,-3.0,220.080000,0.000000,0.000000 -1835,-3.0,220.200000,0.000000,0.000000 -1836,-3.0,220.320000,0.000000,0.000000 -1837,-3.0,220.440000,0.000000,0.000000 -1838,-3.0,220.560000,0.000000,0.000000 -1839,-3.0,220.680000,0.000000,0.000000 -1840,-3.0,220.800000,0.000000,0.000000 -1841,-3.0,220.920000,0.000000,0.000000 -1842,-3.0,221.040000,0.000000,0.000000 -1843,-3.0,221.160000,0.000000,0.000000 -1844,-3.0,221.280000,0.000000,0.000000 -1845,-3.0,221.400000,0.000000,0.000000 -1846,-3.0,221.520000,0.000000,0.000000 -1847,-3.0,221.640000,0.000000,0.000000 -1848,-3.0,221.760000,0.000000,0.000000 -1849,-3.0,221.880000,0.000000,0.000000 -1850,-3.0,222.000000,0.000000,0.000000 -1851,-3.0,222.120000,0.000000,0.000000 -1852,-3.0,222.240000,0.000000,0.000000 -1853,-3.0,222.360000,0.000000,0.000000 -1854,-3.0,222.480000,0.000000,0.000000 -1855,-3.0,222.600000,0.000000,0.000000 -1856,-3.0,222.720000,0.000000,0.000000 -1857,-3.0,222.840000,0.000000,0.000000 -1858,-3.0,222.960000,0.000000,0.000000 -1859,-3.0,223.080000,0.000000,0.000000 -1860,-3.0,223.200000,0.000000,0.000000 -1861,-3.0,223.320000,0.000000,0.000000 -1862,-3.0,223.440000,0.000000,0.000000 -1863,-3.0,223.560000,0.000000,0.000000 -1864,-3.0,223.680000,0.000000,0.000000 -1865,-3.0,223.800000,0.000000,0.000000 -1866,-3.0,223.920000,0.000000,0.000000 -1867,-3.0,224.040000,0.000000,0.000000 -1868,-3.0,224.160000,0.000000,0.000000 -1869,-3.0,224.280000,0.000000,0.000000 -1870,-3.0,224.400000,0.000000,0.000000 -1871,-3.0,224.520000,0.000000,0.000000 -1872,-3.0,224.640000,0.000000,0.000000 -1873,-3.0,224.760000,0.000000,0.000000 -1874,-3.0,224.880000,0.000000,0.000000 -1875,-3.0,225.000000,0.000000,0.000000 -1876,-3.0,225.120000,0.000000,0.000000 -1877,-3.0,225.240000,0.000000,0.000000 -1878,-3.0,225.360000,0.000000,0.000000 -1879,-3.0,225.480000,0.000000,0.000000 -1880,-3.0,225.600000,0.000000,0.000000 -1881,-3.0,225.720000,0.000000,0.000000 -1882,-3.0,225.840000,0.000000,0.000000 -1883,-3.0,225.960000,0.000000,0.000000 -1884,-3.0,226.080000,0.000000,0.000000 -1885,-3.0,226.200000,0.000000,0.000000 -1886,-3.0,226.320000,0.000000,0.000000 -1887,-3.0,226.440000,0.000000,0.000000 -1888,-3.0,226.560000,0.000000,0.000000 -1889,-3.0,226.680000,0.000000,0.000000 -1890,-3.0,226.800000,0.000000,0.000000 -1891,-3.0,226.920000,0.000000,0.000000 -1892,-3.0,227.040000,0.000000,0.000000 -1893,-3.0,227.160000,0.000000,0.000000 -1894,-3.0,227.280000,0.000000,0.000000 -1895,-3.0,227.400000,0.000000,0.000000 -1896,-3.0,227.520000,0.000000,0.000000 -1897,-3.0,227.640000,0.000000,0.000000 -1898,-3.0,227.760000,0.000000,0.000000 -1899,-3.0,227.880000,0.000000,0.000000 -1900,-3.0,228.000000,0.000000,0.000000 -1901,-3.0,228.120000,0.000000,0.000000 -1902,-3.0,228.240000,0.000000,0.000000 -1903,-3.0,228.360000,0.000000,0.000000 -1904,-3.0,228.480000,0.000000,0.000000 -1905,-3.0,228.600000,0.000000,0.000000 -1906,-3.0,228.720000,0.000000,0.000000 -1907,-3.0,228.840000,0.000000,0.000000 -1908,-3.0,228.960000,0.000000,0.000000 -1909,-3.0,229.080000,0.000000,0.000000 -1910,-3.0,229.200000,0.000000,0.000000 -1911,-3.0,229.320000,0.000000,0.000000 -1912,-3.0,229.440000,0.000000,0.000000 -1913,-3.0,229.560000,0.000000,0.000000 -1914,-3.0,229.680000,0.000000,0.000000 -1915,-3.0,229.800000,0.000000,0.000000 -1916,-3.0,229.920000,0.000000,0.000000 -1917,-3.0,230.040000,0.000000,0.000000 -1918,-3.0,230.160000,0.000000,0.000000 -1919,-3.0,230.280000,0.000000,0.000000 -1920,-3.0,230.400000,0.000000,0.000000 -1921,-3.0,230.520000,0.000000,0.000000 -1922,-3.0,230.640000,0.000000,0.000000 -1923,-3.0,230.760000,0.000000,0.000000 -1924,-3.0,230.880000,0.000000,0.000000 -1925,-3.0,231.000000,0.000000,0.000000 -1926,-3.0,231.120000,0.000000,0.000000 -1927,-3.0,231.240000,0.000000,0.000000 -1928,-3.0,231.360000,0.000000,0.000000 -1929,-3.0,231.480000,0.000000,0.000000 -1930,-3.0,231.600000,0.000000,0.000000 -1931,-3.0,231.720000,0.000000,0.000000 -1932,-3.0,231.840000,0.000000,0.000000 -1933,-3.0,231.960000,0.000000,0.000000 -1934,-3.0,232.080000,0.000000,0.000000 -1935,-3.0,232.200000,0.000000,0.000000 -1936,-3.0,232.320000,0.000000,0.000000 -1937,-3.0,232.440000,0.000000,0.000000 -1938,-3.0,232.560000,0.000000,0.000000 -1939,-3.0,232.680000,0.000000,0.000000 -1940,-3.0,232.800000,0.000000,0.000000 -1941,-3.0,232.920000,0.000000,0.000000 -1942,-3.0,233.040000,0.000000,0.000000 -1943,-3.0,233.160000,0.000000,0.000000 -1944,-3.0,233.280000,0.000000,0.000000 -1945,-3.0,233.400000,0.000000,0.000000 -1946,-3.0,233.520000,0.000000,0.000000 -1947,-3.0,233.640000,0.000000,0.000000 -1948,-3.0,233.760000,0.000000,0.000000 -1949,-3.0,233.880000,0.000000,0.000000 -1950,-3.0,234.000000,0.000000,0.000000 -1951,-3.0,234.120000,0.000000,0.000000 -1952,-3.0,234.240000,0.000000,0.000000 -1953,-3.0,234.360000,0.000000,0.000000 -1954,-3.0,234.480000,0.000000,0.000000 -1955,-3.0,234.600000,0.000000,0.000000 -1956,-3.0,234.720000,0.000000,0.000000 -1957,-3.0,234.840000,0.000000,0.000000 -1958,-3.0,234.960000,0.000000,0.000000 -1959,-3.0,235.080000,0.000000,0.000000 -1960,-3.0,235.200000,0.000000,0.000000 -1961,-3.0,235.320000,0.000000,0.000000 -1962,-3.0,235.440000,0.000000,0.000000 -1963,-3.0,235.560000,0.000000,0.000000 -1964,-3.0,235.680000,0.000000,0.000000 -1965,-3.0,235.800000,0.000000,0.000000 -1966,-3.0,235.920000,0.000000,0.000000 -1967,-3.0,236.040000,0.000000,0.000000 -1968,-3.0,236.160000,0.000000,0.000000 -1969,-3.0,236.280000,0.000000,0.000000 -1970,-3.0,236.400000,0.000000,0.000000 -1971,-3.0,236.520000,0.000000,0.000000 -1972,-3.0,236.640000,0.000000,0.000000 -1973,-3.0,236.760000,0.000000,0.000000 -1974,-3.0,236.880000,0.000000,0.000000 -1975,-3.0,237.000000,0.000000,0.000000 -1976,-3.0,237.120000,0.000000,0.000000 -1977,-3.0,237.240000,0.000000,0.000000 -1978,-3.0,237.360000,0.000000,0.000000 -1979,-3.0,237.480000,0.000000,0.000000 -1980,-3.0,237.600000,0.000000,0.000000 -1981,-3.0,237.720000,0.000000,0.000000 -1982,-3.0,237.840000,0.000000,0.000000 -1983,-3.0,237.960000,0.000000,0.000000 -1984,-3.0,238.080000,0.000000,0.000000 -1985,-3.0,238.200000,0.000000,0.000000 -1986,-3.0,238.320000,0.000000,0.000000 -1987,-3.0,238.440000,0.000000,0.000000 -1988,-3.0,238.560000,0.000000,0.000000 -1989,-3.0,238.680000,0.000000,0.000000 -1990,-3.0,238.800000,0.000000,0.000000 -1991,-3.0,238.920000,0.000000,0.000000 -1992,-3.0,239.040000,0.000000,0.000000 -1993,-3.0,239.160000,0.000000,0.000000 -1994,-3.0,239.280000,0.000000,0.000000 -1995,-3.0,239.400000,0.000000,0.000000 -1996,-3.0,239.520000,0.000000,0.000000 -1997,-3.0,239.640000,0.000000,0.000000 -1998,-3.0,239.760000,0.000000,0.000000 -1999,-3.0,239.880000,0.000000,0.000000 -2000,-3.0,240.000000,0.000000,0.000000 -2001,-3.0,240.120000,0.000000,0.000000 -2002,-3.0,240.240000,0.000000,0.000000 -2003,-3.0,240.360000,0.000000,0.000000 -2004,-3.0,240.480000,0.000000,0.000000 -2005,-3.0,240.600000,0.000000,0.000000 -2006,-3.0,240.720000,0.000000,0.000000 -2007,-3.0,240.840000,0.000000,0.000000 -2008,-3.0,240.960000,0.000000,0.000000 -2009,-3.0,241.080000,0.000000,0.000000 -2010,-3.0,241.200000,0.000000,0.000000 -2011,-3.0,241.320000,0.000000,0.000000 -2012,-3.0,241.440000,0.000000,0.000000 -2013,-3.0,241.560000,0.000000,0.000000 -2014,-3.0,241.680000,0.000000,0.000000 -2015,-3.0,241.800000,0.000000,0.000000 -2016,-3.0,241.920000,0.000000,0.000000 -2017,-3.0,242.040000,0.000000,0.000000 -2018,-3.0,242.160000,0.000000,0.000000 -2019,-3.0,242.280000,0.000000,0.000000 -2020,-3.0,242.400000,0.000000,0.000000 -2021,-3.0,242.520000,0.000000,0.000000 -2022,-3.0,242.640000,0.000000,0.000000 -2023,-3.0,242.760000,0.000000,0.000000 -2024,-3.0,242.880000,0.000000,0.000000 -2025,-3.0,243.000000,0.000000,0.000000 -2026,-3.0,243.120000,0.000000,0.000000 -2027,-3.0,243.240000,0.000000,0.000000 -2028,-3.0,243.360000,0.000000,0.000000 -2029,-3.0,243.480000,0.000000,0.000000 -2030,-3.0,243.600000,0.000000,0.000000 -2031,-3.0,243.720000,0.000000,0.000000 -2032,-3.0,243.840000,0.000000,0.000000 -2033,-3.0,243.960000,0.000000,0.000000 -2034,-3.0,244.080000,0.000000,0.000000 -2035,-3.0,244.200000,0.000000,0.000000 -2036,-3.0,244.320000,0.000000,0.000000 -2037,-3.0,244.440000,0.000000,0.000000 -2038,-3.0,244.560000,0.000000,0.000000 -2039,-3.0,244.680000,0.000000,0.000000 -2040,-3.0,244.800000,0.000000,0.000000 -2041,-3.0,244.920000,0.000000,0.000000 -2042,-3.0,245.040000,0.000000,0.000000 -2043,-3.0,245.160000,0.000000,0.000000 -2044,-3.0,245.280000,0.000000,0.000000 -2045,-3.0,245.400000,0.000000,0.000000 -2046,-3.0,245.520000,0.000000,0.000000 -2047,-3.0,245.640000,0.000000,0.000000 -2048,-3.0,245.760000,0.000000,0.000000 -2049,-3.0,245.880000,0.000000,0.000000 -2050,-3.0,246.000000,0.000000,0.000000 -2051,-3.0,246.120000,0.000000,0.000000 -2052,-3.0,246.240000,0.000000,0.000000 -2053,-3.0,246.360000,0.000000,0.000000 -2054,-3.0,246.480000,0.000000,0.000000 -2055,-3.0,246.600000,0.000000,0.000000 -2056,-3.0,246.720000,0.000000,0.000000 -2057,-3.0,246.840000,0.000000,0.000000 -2058,-3.0,246.960000,0.000000,0.000000 -2059,-3.0,247.080000,0.000000,0.000000 -2060,-3.0,247.200000,0.000000,0.000000 -2061,-3.0,247.320000,0.000000,0.000000 -2062,-3.0,247.440000,0.000000,0.000000 -2063,-3.0,247.560000,0.000000,0.000000 -2064,-3.0,247.680000,0.000000,0.000000 -2065,-3.0,247.800000,0.000000,0.000000 -2066,-3.0,247.920000,0.000000,0.000000 -2067,-3.0,248.040000,0.000000,0.000000 -2068,-3.0,248.160000,0.000000,0.000000 -2069,-3.0,248.280000,0.000000,0.000000 -2070,-3.0,248.400000,0.000000,0.000000 -2071,-3.0,248.520000,0.000000,0.000000 -2072,-3.0,248.640000,0.000000,0.000000 -2073,-3.0,248.760000,0.000000,0.000000 -2074,-3.0,248.880000,0.000000,0.000000 -2075,-3.0,249.000000,0.000000,0.000000 -2076,-3.0,249.120000,0.000000,0.000000 -2077,-3.0,249.240000,0.000000,0.000000 -2078,-3.0,249.360000,0.000000,0.000000 -2079,-3.0,249.480000,0.000000,0.000000 -2080,-3.0,249.600000,0.000000,0.000000 -2081,-3.0,249.720000,0.000000,0.000000 -2082,-3.0,249.840000,0.000000,0.000000 -2083,-3.0,249.960000,0.000000,0.000000 -2084,-3.0,250.080000,0.000000,0.000000 -2085,-3.0,250.200000,0.000000,0.000000 -2086,-3.0,250.320000,0.000000,0.000000 -2087,-3.0,250.440000,0.000000,0.000000 -2088,-3.0,250.560000,0.000000,0.000000 -2089,-3.0,250.680000,0.000000,0.000000 -2090,-3.0,250.800000,0.000000,0.000000 -2091,-3.0,250.920000,0.000000,0.000000 -2092,-3.0,251.040000,0.000000,0.000000 -2093,-3.0,251.160000,0.000000,0.000000 -2094,-3.0,251.280000,0.000000,0.000000 -2095,-3.0,251.400000,0.000000,0.000000 -2096,-3.0,251.520000,0.000000,0.000000 -2097,-3.0,251.640000,0.000000,0.000000 -2098,-3.0,251.760000,0.000000,0.000000 -2099,-3.0,251.880000,0.000000,0.000000 -2100,-3.0,252.000000,0.000000,0.000000 -2101,-3.0,252.120000,0.000000,0.000000 -2102,-3.0,252.240000,0.000000,0.000000 -2103,-3.0,252.360000,0.000000,0.000000 -2104,-3.0,252.480000,0.000000,0.000000 -2105,-3.0,252.600000,0.000000,0.000000 -2106,-3.0,252.720000,0.000000,0.000000 -2107,-3.0,252.840000,0.000000,0.000000 -2108,-3.0,252.960000,0.000000,0.000000 -2109,-3.0,253.080000,0.000000,0.000000 -2110,-3.0,253.200000,0.000000,0.000000 -2111,-3.0,253.320000,0.000000,0.000000 -2112,-3.0,253.440000,0.000000,0.000000 -2113,-3.0,253.560000,0.000000,0.000000 -2114,-3.0,253.680000,0.000000,0.000000 -2115,-3.0,253.800000,0.000000,0.000000 -2116,-3.0,253.920000,0.000000,0.000000 -2117,-3.0,254.040000,0.000000,0.000000 -2118,-3.0,254.160000,0.000000,0.000000 -2119,-3.0,254.280000,0.000000,0.000000 -2120,-3.0,254.400000,0.000000,0.000000 -2121,-3.0,254.520000,0.000000,0.000000 -2122,-3.0,254.640000,0.000000,0.000000 -2123,-3.0,254.760000,0.000000,0.000000 -2124,-3.0,254.880000,0.000000,0.000000 -2125,-3.0,255.000000,0.000000,0.000000 -2126,-3.0,255.120000,0.000000,0.000000 -2127,-3.0,255.240000,0.000000,0.000000 -2128,-3.0,255.360000,0.000000,0.000000 -2129,-3.0,255.480000,0.000000,0.000000 -2130,-3.0,255.600000,0.000000,0.000000 -2131,-3.0,255.720000,0.000000,0.000000 -2132,-3.0,255.840000,0.000000,0.000000 -2133,-3.0,255.960000,0.000000,0.000000 -2134,-3.0,256.080000,0.000000,0.000000 -2135,-3.0,256.200000,0.000000,0.000000 -2136,-3.0,256.320000,0.000000,0.000000 -2137,-3.0,256.440000,0.000000,0.000000 -2138,-3.0,256.560000,0.000000,0.000000 -2139,-3.0,256.680000,0.000000,0.000000 -2140,-3.0,256.800000,0.000000,0.000000 -2141,-3.0,256.920000,0.000000,0.000000 -2142,-3.0,257.040000,0.000000,0.000000 -2143,-3.0,257.160000,0.000000,0.000000 -2144,-3.0,257.280000,0.000000,0.000000 -2145,-3.0,257.400000,0.000000,0.000000 -2146,-3.0,257.520000,0.000000,0.000000 -2147,-3.0,257.640000,0.000000,0.000000 -2148,-3.0,257.760000,0.000000,0.000000 -2149,-3.0,257.880000,0.000000,0.000000 -2150,-3.0,258.000000,0.000000,0.000000 -2151,-3.0,258.120000,0.000000,0.000000 -2152,-3.0,258.240000,0.000000,0.000000 -2153,-3.0,258.360000,0.000000,0.000000 -2154,-3.0,258.480000,0.000000,0.000000 -2155,-3.0,258.600000,0.000000,0.000000 -2156,-3.0,258.720000,0.000000,0.000000 -2157,-3.0,258.840000,0.000000,0.000000 -2158,-3.0,258.960000,0.000000,0.000000 -2159,-3.0,259.080000,0.000000,0.000000 -2160,-3.0,259.200000,0.000000,0.000000 -2161,-3.0,259.320000,0.000000,0.000000 -2162,-3.0,259.440000,0.000000,0.000000 -2163,-3.0,259.560000,0.000000,0.000000 -2164,-3.0,259.680000,0.000000,0.000000 -2165,-3.0,259.800000,0.000000,0.000000 -2166,-3.0,259.920000,0.000000,0.000000 -2167,-3.0,260.040000,0.000000,0.000000 -2168,-3.0,260.160000,0.000000,0.000000 -2169,-3.0,260.280000,0.000000,0.000000 -2170,-3.0,260.400000,0.000000,0.000000 -2171,-3.0,260.520000,0.000000,0.000000 -2172,-3.0,260.640000,0.000000,0.000000 -2173,-3.0,260.760000,0.000000,0.000000 -2174,-3.0,260.880000,0.000000,0.000000 -2175,-3.0,261.000000,0.000000,0.000000 -2176,-3.0,261.120000,0.000000,0.000000 -2177,-3.0,261.240000,0.000000,0.000000 -2178,-3.0,261.360000,0.000000,0.000000 -2179,-3.0,261.480000,0.000000,0.000000 -2180,-3.0,261.600000,0.000000,0.000000 -2181,-3.0,261.720000,0.000000,0.000000 -2182,-3.0,261.840000,0.000000,0.000000 -2183,-3.0,261.960000,0.000000,0.000000 -2184,-3.0,262.080000,0.000000,0.000000 -2185,-3.0,262.200000,0.000000,0.000000 -2186,-3.0,262.320000,0.000000,0.000000 -2187,-3.0,262.440000,0.000000,0.000000 -2188,-3.0,262.560000,0.000000,0.000000 -2189,-3.0,262.680000,0.000000,0.000000 -2190,-3.0,262.800000,0.000000,0.000000 -2191,-3.0,262.920000,0.000000,0.000000 -2192,-3.0,263.040000,0.000000,0.000000 -2193,-3.0,263.160000,0.000000,0.000000 -2194,-3.0,263.280000,0.000000,0.000000 -2195,-3.0,263.400000,0.000000,0.000000 -2196,-3.0,263.520000,0.000000,0.000000 -2197,-3.0,263.640000,0.000000,0.000000 -2198,-3.0,263.760000,0.000000,0.000000 -2199,-3.0,263.880000,0.000000,0.000000 -2200,-3.0,264.000000,0.000000,0.000000 -2201,-3.0,264.120000,0.000000,0.000000 -2202,-3.0,264.240000,0.000000,0.000000 -2203,-3.0,264.360000,0.000000,0.000000 -2204,-3.0,264.480000,0.000000,0.000000 -2205,-3.0,264.600000,0.000000,0.000000 -2206,-3.0,264.720000,0.000000,0.000000 -2207,-3.0,264.840000,0.000000,0.000000 -2208,-3.0,264.960000,0.000000,0.000000 -2209,-3.0,265.080000,0.000000,0.000000 -2210,-3.0,265.200000,0.000000,0.000000 -2211,-3.0,265.320000,0.000000,0.000000 -2212,-3.0,265.440000,0.000000,0.000000 -2213,-3.0,265.560000,0.000000,0.000000 -2214,-3.0,265.680000,0.000000,0.000000 -2215,-3.0,265.800000,0.000000,0.000000 -2216,-3.0,265.920000,0.000000,0.000000 -2217,-3.0,266.040000,0.000000,0.000000 -2218,-3.0,266.160000,0.000000,0.000000 -2219,-3.0,266.280000,0.000000,0.000000 -2220,-3.0,266.400000,0.000000,0.000000 -2221,-3.0,266.520000,0.000000,0.000000 -2222,-3.0,266.640000,0.000000,0.000000 -2223,-3.0,266.760000,0.000000,0.000000 -2224,-3.0,266.880000,0.000000,0.000000 -2225,-3.0,267.000000,0.000000,0.000000 -2226,-3.0,267.120000,0.000000,0.000000 -2227,-3.0,267.240000,0.000000,0.000000 -2228,-3.0,267.360000,0.000000,0.000000 -2229,-3.0,267.480000,0.000000,0.000000 -2230,-3.0,267.600000,0.000000,0.000000 -2231,-3.0,267.720000,0.000000,0.000000 -2232,-3.0,267.840000,0.000000,0.000000 -2233,-3.0,267.960000,0.000000,0.000000 -2234,-3.0,268.080000,0.000000,0.000000 -2235,-3.0,268.200000,0.000000,0.000000 -2236,-3.0,268.320000,0.000000,0.000000 -2237,-3.0,268.440000,0.000000,0.000000 -2238,-3.0,268.560000,0.000000,0.000000 -2239,-3.0,268.680000,0.000000,0.000000 -2240,-3.0,268.800000,0.000000,0.000000 -2241,-3.0,268.920000,0.000000,0.000000 -2242,-3.0,269.040000,0.000000,0.000000 -2243,-3.0,269.160000,0.000000,0.000000 -2244,-3.0,269.280000,0.000000,0.000000 -2245,-3.0,269.400000,0.000000,0.000000 -2246,-3.0,269.520000,0.000000,0.000000 -2247,-3.0,269.640000,0.000000,0.000000 -2248,-3.0,269.760000,0.000000,0.000000 -2249,-3.0,269.880000,0.000000,0.000000 -2250,-3.0,270.000000,0.000000,0.000000 -2251,-3.0,270.120000,0.000000,0.000000 -2252,-3.0,270.240000,0.000000,0.000000 -2253,-3.0,270.360000,0.000000,0.000000 -2254,-3.0,270.480000,0.000000,0.000000 -2255,-3.0,270.600000,0.000000,0.000000 -2256,-3.0,270.720000,0.000000,0.000000 -2257,-3.0,270.840000,0.000000,0.000000 -2258,-3.0,270.960000,0.000000,0.000000 -2259,-3.0,271.080000,0.000000,0.000000 -2260,-3.0,271.200000,0.000000,0.000000 -2261,-3.0,271.320000,0.000000,0.000000 -2262,-3.0,271.440000,0.000000,0.000000 -2263,-3.0,271.560000,0.000000,0.000000 -2264,-3.0,271.680000,0.000000,0.000000 -2265,-3.0,271.800000,0.000000,0.000000 -2266,-3.0,271.920000,0.000000,0.000000 -2267,-3.0,272.040000,0.000000,0.000000 -2268,-3.0,272.160000,0.000000,0.000000 -2269,-3.0,272.280000,0.000000,0.000000 -2270,-3.0,272.400000,0.000000,0.000000 -2271,-3.0,272.520000,0.000000,0.000000 -2272,-3.0,272.640000,0.000000,0.000000 -2273,-3.0,272.760000,0.000000,0.000000 -2274,-3.0,272.880000,0.000000,0.000000 -2275,-3.0,273.000000,0.000000,0.000000 -2276,-3.0,273.120000,0.000000,0.000000 -2277,-3.0,273.240000,0.000000,0.000000 -2278,-3.0,273.360000,0.000000,0.000000 -2279,-3.0,273.480000,0.000000,0.000000 -2280,-3.0,273.600000,0.000000,0.000000 -2281,-3.0,273.720000,0.000000,0.000000 -2282,-3.0,273.840000,0.000000,0.000000 -2283,-3.0,273.960000,0.000000,0.000000 -2284,-3.0,274.080000,0.000000,0.000000 -2285,-3.0,274.200000,0.000000,0.000000 -2286,-3.0,274.320000,0.000000,0.000000 -2287,-3.0,274.440000,0.000000,0.000000 -2288,-3.0,274.560000,0.000000,0.000000 -2289,-3.0,274.680000,0.000000,0.000000 -2290,-3.0,274.800000,0.000000,0.000000 -2291,-3.0,274.920000,0.000000,0.000000 -2292,-3.0,275.040000,0.000000,0.000000 -2293,-3.0,275.160000,0.000000,0.000000 -2294,-3.0,275.280000,0.000000,0.000000 -2295,-3.0,275.400000,0.000000,0.000000 -2296,-3.0,275.520000,0.000000,0.000000 -2297,-3.0,275.640000,0.000000,0.000000 -2298,-3.0,275.760000,0.000000,0.000000 -2299,-3.0,275.880000,0.000000,0.000000 -2300,-3.0,276.000000,0.000000,0.000000 -2301,-3.0,276.120000,0.000000,0.000000 -2302,-3.0,276.240000,0.000000,0.000000 -2303,-3.0,276.360000,0.000000,0.000000 -2304,-3.0,276.480000,0.000000,0.000000 -2305,-3.0,276.600000,0.000000,0.000000 -2306,-3.0,276.720000,0.000000,0.000000 -2307,-3.0,276.840000,0.000000,0.000000 -2308,-3.0,276.960000,0.000000,0.000000 -2309,-3.0,277.080000,0.000000,0.000000 -2310,-3.0,277.200000,0.000000,0.000000 -2311,-3.0,277.320000,0.000000,0.000000 -2312,-3.0,277.440000,0.000000,0.000000 -2313,-3.0,277.560000,0.000000,0.000000 -2314,-3.0,277.680000,0.000000,0.000000 -2315,-3.0,277.800000,0.000000,0.000000 -2316,-3.0,277.920000,0.000000,0.000000 -2317,-3.0,278.040000,0.000000,0.000000 -2318,-3.0,278.160000,0.000000,0.000000 -2319,-3.0,278.280000,0.000000,0.000000 -2320,-3.0,278.400000,0.000000,0.000000 -2321,-3.0,278.520000,0.000000,0.000000 -2322,-3.0,278.640000,0.000000,0.000000 -2323,-3.0,278.760000,0.000000,0.000000 -2324,-3.0,278.880000,0.000000,0.000000 -2325,-3.0,279.000000,0.000000,0.000000 -2326,-3.0,279.120000,0.000000,0.000000 -2327,-3.0,279.240000,0.000000,0.000000 -2328,-3.0,279.360000,0.000000,0.000000 -2329,-3.0,279.480000,0.000000,0.000000 -2330,-3.0,279.600000,0.000000,0.000000 -2331,-3.0,279.720000,0.000000,0.000000 -2332,-3.0,279.840000,0.000000,0.000000 -2333,-3.0,279.960000,0.000000,0.000000 -2334,-3.0,280.080000,0.000000,0.000000 -2335,-3.0,280.200000,0.000000,0.000000 -2336,-3.0,280.320000,0.000000,0.000000 -2337,-3.0,280.440000,0.000000,0.000000 -2338,-3.0,280.560000,0.000000,0.000000 -2339,-3.0,280.680000,0.000000,0.000000 -2340,-3.0,280.800000,0.000000,0.000000 -2341,-3.0,280.920000,0.000000,0.000000 -2342,-3.0,281.040000,0.000000,0.000000 -2343,-3.0,281.160000,0.000000,0.000000 -2344,-3.0,281.280000,0.000000,0.000000 -2345,-3.0,281.400000,0.000000,0.000000 -2346,-3.0,281.520000,0.000000,0.000000 -2347,-3.0,281.640000,0.000000,0.000000 -2348,-3.0,281.760000,0.000000,0.000000 -2349,-3.0,281.880000,0.000000,0.000000 -2350,-3.0,282.000000,0.000000,0.000000 -2351,-3.0,282.120000,0.000000,0.000000 -2352,-3.0,282.240000,0.000000,0.000000 -2353,-3.0,282.360000,0.000000,0.000000 -2354,-3.0,282.480000,0.000000,0.000000 -2355,-3.0,282.600000,0.000000,0.000000 -2356,-3.0,282.720000,0.000000,0.000000 -2357,-3.0,282.840000,0.000000,0.000000 -2358,-3.0,282.960000,0.000000,0.000000 -2359,-3.0,283.080000,0.000000,0.000000 -2360,-3.0,283.200000,0.000000,0.000000 -2361,-3.0,283.320000,0.000000,0.000000 -2362,-3.0,283.440000,0.000000,0.000000 -2363,-3.0,283.560000,0.000000,0.000000 -2364,-3.0,283.680000,0.000000,0.000000 -2365,-3.0,283.800000,0.000000,0.000000 -2366,-3.0,283.920000,0.000000,0.000000 -2367,-3.0,284.040000,0.000000,0.000000 -2368,-3.0,284.160000,0.000000,0.000000 -2369,-3.0,284.280000,0.000000,0.000000 -2370,-3.0,284.400000,0.000000,0.000000 -2371,-3.0,284.520000,0.000000,0.000000 -2372,-3.0,284.640000,0.000000,0.000000 -2373,-3.0,284.760000,0.000000,0.000000 -2374,-3.0,284.880000,0.000000,0.000000 -2375,-3.0,285.000000,0.000000,0.000000 -2376,-3.0,285.120000,0.000000,0.000000 -2377,-3.0,285.240000,0.000000,0.000000 -2378,-3.0,285.360000,0.000000,0.000000 -2379,-3.0,285.480000,0.000000,0.000000 -2380,-3.0,285.600000,0.000000,0.000000 -2381,-3.0,285.720000,0.000000,0.000000 -2382,-3.0,285.840000,0.000000,0.000000 -2383,-3.0,285.960000,0.000000,0.000000 -2384,-3.0,286.080000,0.000000,0.000000 -2385,-3.0,286.200000,0.000000,0.000000 -2386,-3.0,286.320000,0.000000,0.000000 -2387,-3.0,286.440000,0.000000,0.000000 -2388,-3.0,286.560000,0.000000,0.000000 -2389,-3.0,286.680000,0.000000,0.000000 -2390,-3.0,286.800000,0.000000,0.000000 -2391,-3.0,286.920000,0.000000,0.000000 -2392,-3.0,287.040000,0.000000,0.000000 -2393,-3.0,287.160000,0.000000,0.000000 -2394,-3.0,287.280000,0.000000,0.000000 -2395,-3.0,287.400000,0.000000,0.000000 -2396,-3.0,287.520000,0.000000,0.000000 -2397,-3.0,287.640000,0.000000,0.000000 -2398,-3.0,287.760000,0.000000,0.000000 -2399,-3.0,287.880000,0.000000,0.000000 -2400,-3.0,288.000000,0.000000,0.000000 -2401,-3.0,288.120000,0.000000,0.000000 -2402,-3.0,288.240000,0.000000,0.000000 -2403,-3.0,288.360000,0.000000,0.000000 -2404,-3.0,288.480000,0.000000,0.000000 -2405,-3.0,288.600000,0.000000,0.000000 -2406,-3.0,288.720000,0.000000,0.000000 -2407,-3.0,288.840000,0.000000,0.000000 -2408,-3.0,288.960000,0.000000,0.000000 -2409,-3.0,289.080000,0.000000,0.000000 -2410,-3.0,289.200000,0.000000,0.000000 -2411,-3.0,289.320000,0.000000,0.000000 -2412,-3.0,289.440000,0.000000,0.000000 -2413,-3.0,289.560000,0.000000,0.000000 -2414,-3.0,289.680000,0.000000,0.000000 -2415,-3.0,289.800000,0.000000,0.000000 -2416,-3.0,289.920000,0.000000,0.000000 -2417,-3.0,290.040000,0.000000,0.000000 -2418,-3.0,290.160000,0.000000,0.000000 -2419,-3.0,290.280000,0.000000,0.000000 -2420,-3.0,290.400000,0.000000,0.000000 -2421,-3.0,290.520000,0.000000,0.000000 -2422,-3.0,290.640000,0.000000,0.000000 -2423,-3.0,290.760000,0.000000,0.000000 -2424,-3.0,290.880000,0.000000,0.000000 -2425,-3.0,291.000000,0.000000,0.000000 -2426,-3.0,291.120000,0.000000,0.000000 -2427,-3.0,291.240000,0.000000,0.000000 -2428,-3.0,291.360000,0.000000,0.000000 -2429,-3.0,291.480000,0.000000,0.000000 -2430,-3.0,291.600000,0.000000,0.000000 -2431,-3.0,291.720000,0.000000,0.000000 -2432,-3.0,291.840000,0.000000,0.000000 -2433,-3.0,291.960000,0.000000,0.000000 -2434,-3.0,292.080000,0.000000,0.000000 -2435,-3.0,292.200000,0.000000,0.000000 -2436,-3.0,292.320000,0.000000,0.000000 -2437,-3.0,292.440000,0.000000,0.000000 -2438,-3.0,292.560000,0.000000,0.000000 -2439,-3.0,292.680000,0.000000,0.000000 -2440,-3.0,292.800000,0.000000,0.000000 -2441,-3.0,292.920000,0.000000,0.000000 -2442,-3.0,293.040000,0.000000,0.000000 -2443,-3.0,293.160000,0.000000,0.000000 -2444,-3.0,293.280000,0.000000,0.000000 -2445,-3.0,293.400000,0.000000,0.000000 -2446,-3.0,293.520000,0.000000,0.000000 -2447,-3.0,293.640000,0.000000,0.000000 -2448,-3.0,293.760000,0.000000,0.000000 -2449,-3.0,293.880000,0.000000,0.000000 -2450,-3.0,294.000000,0.000000,0.000000 -2451,-3.0,294.120000,0.000000,0.000000 -2452,-3.0,294.240000,0.000000,0.000000 -2453,-3.0,294.360000,0.000000,0.000000 -2454,-3.0,294.480000,0.000000,0.000000 -2455,-3.0,294.600000,0.000000,0.000000 -2456,-3.0,294.720000,0.000000,0.000000 -2457,-3.0,294.840000,0.000000,0.000000 -2458,-3.0,294.960000,0.000000,0.000000 -2459,-3.0,295.080000,0.000000,0.000000 -2460,-3.0,295.200000,0.000000,0.000000 -2461,-3.0,295.320000,0.000000,0.000000 -2462,-3.0,295.440000,0.000000,0.000000 -2463,-3.0,295.560000,0.000000,0.000000 -2464,-3.0,295.680000,0.000000,0.000000 -2465,-3.0,295.800000,0.000000,0.000000 -2466,-3.0,295.920000,0.000000,0.000000 -2467,-3.0,296.040000,0.000000,0.000000 -2468,-3.0,296.160000,0.000000,0.000000 -2469,-3.0,296.280000,0.000000,0.000000 -2470,-3.0,296.400000,0.000000,0.000000 -2471,-3.0,296.520000,0.000000,0.000000 -2472,-3.0,296.640000,0.000000,0.000000 -2473,-3.0,296.760000,0.000000,0.000000 -2474,-3.0,296.880000,0.000000,0.000000 -2475,-3.0,297.000000,0.000000,0.000000 -2476,-3.0,297.120000,0.000000,0.000000 -2477,-3.0,297.240000,0.000000,0.000000 -2478,-3.0,297.360000,0.000000,0.000000 -2479,-3.0,297.480000,0.000000,0.000000 -2480,-3.0,297.600000,0.000000,0.000000 -2481,-3.0,297.720000,0.000000,0.000000 -2482,-3.0,297.840000,0.000000,0.000000 -2483,-3.0,297.960000,0.000000,0.000000 -2484,-3.0,298.080000,0.000000,0.000000 -2485,-3.0,298.200000,0.000000,0.000000 -2486,-3.0,298.320000,0.000000,0.000000 -2487,-3.0,298.440000,0.000000,0.000000 -2488,-3.0,298.560000,0.000000,0.000000 -2489,-3.0,298.680000,0.000000,0.000000 -2490,-3.0,298.800000,0.000000,0.000000 -2491,-3.0,298.920000,0.000000,0.000000 -2492,-3.0,299.040000,0.000000,0.000000 -2493,-3.0,299.160000,0.000000,0.000000 -2494,-3.0,299.280000,0.000000,0.000000 -2495,-3.0,299.400000,0.000000,0.000000 -2496,-3.0,299.520000,0.000000,0.000000 -2497,-3.0,299.640000,0.000000,0.000000 -2498,-3.0,299.760000,0.000000,0.000000 -2499,-3.0,299.880000,0.000000,0.000000 -2500,-3.0,300.000000,0.000000,0.000000 -2501,-3.0,300.120000,0.000000,0.000000 -2502,-3.0,300.240000,0.000000,0.000000 -2503,-3.0,300.360000,0.000000,0.000000 -2504,-3.0,300.480000,0.000000,0.000000 -2505,-3.0,300.600000,0.000000,0.000000 -2506,-3.0,300.720000,0.000000,0.000000 -2507,-3.0,300.840000,0.000000,0.000000 -2508,-3.0,300.960000,0.000000,0.000000 -2509,-3.0,301.080000,0.000000,0.000000 -2510,-3.0,301.200000,0.000000,0.000000 -2511,-3.0,301.320000,0.000000,0.000000 -2512,-3.0,301.440000,0.000000,0.000000 -2513,-3.0,301.560000,0.000000,0.000000 -2514,-3.0,301.680000,0.000000,0.000000 -2515,-3.0,301.800000,0.000000,0.000000 -2516,-3.0,301.920000,0.000000,0.000000 -2517,-3.0,302.040000,0.000000,0.000000 -2518,-3.0,302.160000,0.000000,0.000000 -2519,-3.0,302.280000,0.000000,0.000000 -2520,-3.0,302.400000,0.000000,0.000000 -2521,-3.0,302.520000,0.000000,0.000000 -2522,-3.0,302.640000,0.000000,0.000000 -2523,-3.0,302.760000,0.000000,0.000000 -2524,-3.0,302.880000,0.000000,0.000000 -2525,-3.0,303.000000,0.000000,0.000000 -2526,-3.0,303.120000,0.000000,0.000000 -2527,-3.0,303.240000,0.000000,0.000000 -2528,-3.0,303.360000,0.000000,0.000000 -2529,-3.0,303.480000,0.000000,0.000000 -2530,-3.0,303.600000,0.000000,0.000000 -2531,-3.0,303.720000,0.000000,0.000000 -2532,-3.0,303.840000,0.000000,0.000000 -2533,-3.0,303.960000,0.000000,0.000000 -2534,-3.0,304.080000,0.000000,0.000000 -2535,-3.0,304.200000,0.000000,0.000000 -2536,-3.0,304.320000,0.000000,0.000000 -2537,-3.0,304.440000,0.000000,0.000000 -2538,-3.0,304.560000,0.000000,0.000000 -2539,-3.0,304.680000,0.000000,0.000000 -2540,-3.0,304.800000,0.000000,0.000000 -2541,-3.0,304.920000,0.000000,0.000000 -2542,-3.0,305.040000,0.000000,0.000000 -2543,-3.0,305.160000,0.000000,0.000000 -2544,-3.0,305.280000,0.000000,0.000000 -2545,-3.0,305.400000,0.000000,0.000000 -2546,-3.0,305.520000,0.000000,0.000000 -2547,-3.0,305.640000,0.000000,0.000000 -2548,-3.0,305.760000,0.000000,0.000000 -2549,-3.0,305.880000,0.000000,0.000000 -2550,-3.0,306.000000,0.000000,0.000000 -2551,-3.0,306.120000,0.000000,0.000000 -2552,-3.0,306.240000,0.000000,0.000000 -2553,-3.0,306.360000,0.000000,0.000000 -2554,-3.0,306.480000,0.000000,0.000000 -2555,-3.0,306.600000,0.000000,0.000000 -2556,-3.0,306.720000,0.000000,0.000000 -2557,-3.0,306.840000,0.000000,0.000000 -2558,-3.0,306.960000,0.000000,0.000000 -2559,-3.0,307.080000,0.000000,0.000000 -2560,-3.0,307.200000,0.000000,0.000000 -2561,-3.0,307.320000,0.000000,0.000000 -2562,-3.0,307.440000,0.000000,0.000000 -2563,-3.0,307.560000,0.000000,0.000000 -2564,-3.0,307.680000,0.000000,0.000000 -2565,-3.0,307.800000,0.000000,0.000000 -2566,-3.0,307.920000,0.000000,0.000000 -2567,-3.0,308.040000,0.000000,0.000000 -2568,-3.0,308.160000,0.000000,0.000000 -2569,-3.0,308.280000,0.000000,0.000000 -2570,-3.0,308.400000,0.000000,0.000000 -2571,-3.0,308.520000,0.000000,0.000000 -2572,-3.0,308.640000,0.000000,0.000000 -2573,-3.0,308.760000,0.000000,0.000000 -2574,-3.0,308.880000,0.000000,0.000000 -2575,-3.0,309.000000,0.000000,0.000000 -2576,-3.0,309.120000,0.000000,0.000000 -2577,-3.0,309.240000,0.000000,0.000000 -2578,-3.0,309.360000,0.000000,0.000000 -2579,-3.0,309.480000,0.000000,0.000000 -2580,-3.0,309.600000,0.000000,0.000000 -2581,-3.0,309.720000,0.000000,0.000000 -2582,-3.0,309.840000,0.000000,0.000000 -2583,-3.0,309.960000,0.000000,0.000000 -2584,-3.0,310.080000,0.000000,0.000000 -2585,-3.0,310.200000,0.000000,0.000000 -2586,-3.0,310.320000,0.000000,0.000000 -2587,-3.0,310.440000,0.000000,0.000000 -2588,-3.0,310.560000,0.000000,0.000000 -2589,-3.0,310.680000,0.000000,0.000000 -2590,-3.0,310.800000,0.000000,0.000000 -2591,-3.0,310.920000,0.000000,0.000000 -2592,-3.0,311.040000,0.000000,0.000000 -2593,-3.0,311.160000,0.000000,0.000000 -2594,-3.0,311.280000,0.000000,0.000000 -2595,-3.0,311.400000,0.000000,0.000000 -2596,-3.0,311.520000,0.000000,0.000000 -2597,-3.0,311.640000,0.000000,0.000000 -2598,-3.0,311.760000,0.000000,0.000000 -2599,-3.0,311.880000,0.000000,0.000000 -2600,-3.0,312.000000,0.000000,0.000000 -2601,-3.0,312.120000,0.000000,0.000000 -2602,-3.0,312.240000,0.000000,0.000000 -2603,-3.0,312.360000,0.000000,0.000000 -2604,-3.0,312.480000,0.000000,0.000000 -2605,-3.0,312.600000,0.000000,0.000000 -2606,-3.0,312.720000,0.000000,0.000000 -2607,-3.0,312.840000,0.000000,0.000000 -2608,-3.0,312.960000,0.000000,0.000000 -2609,-3.0,313.080000,0.000000,0.000000 -2610,-3.0,313.200000,0.000000,0.000000 -2611,-3.0,313.320000,0.000000,0.000000 -2612,-3.0,313.440000,0.000000,0.000000 -2613,-3.0,313.560000,0.000000,0.000000 -2614,-3.0,313.680000,0.000000,0.000000 -2615,-3.0,313.800000,0.000000,0.000000 -2616,-3.0,313.920000,0.000000,0.000000 -2617,-3.0,314.040000,0.000000,0.000000 -2618,-3.0,314.160000,0.000000,0.000000 -2619,-3.0,314.280000,0.000000,0.000000 -2620,-3.0,314.400000,0.000000,0.000000 -2621,-3.0,314.520000,0.000000,0.000000 -2622,-3.0,314.640000,0.000000,0.000000 -2623,-3.0,314.760000,0.000000,0.000000 -2624,-3.0,314.880000,0.000000,0.000000 -2625,-3.0,315.000000,0.000000,0.000000 -2626,-3.0,315.120000,0.000000,0.000000 -2627,-3.0,315.240000,0.000000,0.000000 -2628,-3.0,315.360000,0.000000,0.000000 -2629,-3.0,315.480000,0.000000,0.000000 -2630,-3.0,315.600000,0.000000,0.000000 -2631,-3.0,315.720000,0.000000,0.000000 -2632,-3.0,315.840000,0.000000,0.000000 -2633,-3.0,315.960000,0.000000,0.000000 -2634,-3.0,316.080000,0.000000,0.000000 -2635,-3.0,316.200000,0.000000,0.000000 -2636,-3.0,316.320000,0.000000,0.000000 -2637,-3.0,316.440000,0.000000,0.000000 -2638,-3.0,316.560000,0.000000,0.000000 -2639,-3.0,316.680000,0.000000,0.000000 -2640,-3.0,316.800000,0.000000,0.000000 -2641,-3.0,316.920000,0.000000,0.000000 -2642,-3.0,317.040000,0.000000,0.000000 -2643,-3.0,317.160000,0.000000,0.000000 -2644,-3.0,317.280000,0.000000,0.000000 -2645,-3.0,317.400000,0.000000,0.000000 -2646,-3.0,317.520000,0.000000,0.000000 -2647,-3.0,317.640000,0.000000,0.000000 -2648,-3.0,317.760000,0.000000,0.000000 -2649,-3.0,317.880000,0.000000,0.000000 -2650,-3.0,318.000000,0.000000,0.000000 -2651,-3.0,318.120000,0.000000,0.000000 -2652,-3.0,318.240000,0.000000,0.000000 -2653,-3.0,318.360000,0.000000,0.000000 -2654,-3.0,318.480000,0.000000,0.000000 -2655,-3.0,318.600000,0.000000,0.000000 -2656,-3.0,318.720000,0.000000,0.000000 -2657,-3.0,318.840000,0.000000,0.000000 -2658,-3.0,318.960000,0.000000,0.000000 -2659,-3.0,319.080000,0.000000,0.000000 -2660,-3.0,319.200000,0.000000,0.000000 -2661,-3.0,319.320000,0.000000,0.000000 -2662,-3.0,319.440000,0.000000,0.000000 -2663,-3.0,319.560000,0.000000,0.000000 -2664,-3.0,319.680000,0.000000,0.000000 -2665,-3.0,319.800000,0.000000,0.000000 -2666,-3.0,319.920000,0.000000,0.000000 -2667,-3.0,320.040000,0.000000,0.000000 -2668,-3.0,320.160000,0.000000,0.000000 -2669,-3.0,320.280000,0.000000,0.000000 -2670,-3.0,320.400000,0.000000,0.000000 -2671,-3.0,320.520000,0.000000,0.000000 -2672,-3.0,320.640000,0.000000,0.000000 -2673,-3.0,320.760000,0.000000,0.000000 -2674,-3.0,320.880000,0.000000,0.000000 -2675,-3.0,321.000000,0.000000,0.000000 -2676,-3.0,321.120000,0.000000,0.000000 -2677,-3.0,321.240000,0.000000,0.000000 -2678,-3.0,321.360000,0.000000,0.000000 -2679,-3.0,321.480000,0.000000,0.000000 -2680,-3.0,321.600000,0.000000,0.000000 -2681,-3.0,321.720000,0.000000,0.000000 -2682,-3.0,321.840000,0.000000,0.000000 -2683,-3.0,321.960000,0.000000,0.000000 -2684,-3.0,322.080000,0.000000,0.000000 -2685,-3.0,322.200000,0.000000,0.000000 -2686,-3.0,322.320000,0.000000,0.000000 -2687,-3.0,322.440000,0.000000,0.000000 -2688,-3.0,322.560000,0.000000,0.000000 -2689,-3.0,322.680000,0.000000,0.000000 -2690,-3.0,322.800000,0.000000,0.000000 -2691,-3.0,322.920000,0.000000,0.000000 -2692,-3.0,323.040000,0.000000,0.000000 -2693,-3.0,323.160000,0.000000,0.000000 -2694,-3.0,323.280000,0.000000,0.000000 -2695,-3.0,323.400000,0.000000,0.000000 -2696,-3.0,323.520000,0.000000,0.000000 -2697,-3.0,323.640000,0.000000,0.000000 -2698,-3.0,323.760000,0.000000,0.000000 -2699,-3.0,323.880000,0.000000,0.000000 -2700,-3.0,324.000000,0.000000,0.000000 -2701,-3.0,324.120000,0.000000,0.000000 -2702,-3.0,324.240000,0.000000,0.000000 -2703,-3.0,324.360000,0.000000,0.000000 -2704,-3.0,324.480000,0.000000,0.000000 -2705,-3.0,324.600000,0.000000,0.000000 -2706,-3.0,324.720000,0.000000,0.000000 -2707,-3.0,324.840000,0.000000,0.000000 -2708,-3.0,324.960000,0.000000,0.000000 -2709,-3.0,325.080000,0.000000,0.000000 -2710,-3.0,325.200000,0.000000,0.000000 -2711,-3.0,325.320000,0.000000,0.000000 -2712,-3.0,325.440000,0.000000,0.000000 -2713,-3.0,325.560000,0.000000,0.000000 -2714,-3.0,325.680000,0.000000,0.000000 -2715,-3.0,325.800000,0.000000,0.000000 -2716,-3.0,325.920000,0.000000,0.000000 -2717,-3.0,326.040000,0.000000,0.000000 -2718,-3.0,326.160000,0.000000,0.000000 -2719,-3.0,326.280000,0.000000,0.000000 -2720,-3.0,326.400000,0.000000,0.000000 -2721,-3.0,326.520000,0.000000,0.000000 -2722,-3.0,326.640000,0.000000,0.000000 -2723,-3.0,326.760000,0.000000,0.000000 -2724,-3.0,326.880000,0.000000,0.000000 -2725,-3.0,327.000000,0.000000,0.000000 -2726,-3.0,327.120000,0.000000,0.000000 -2727,-3.0,327.240000,0.000000,0.000000 -2728,-3.0,327.360000,0.000000,0.000000 -2729,-3.0,327.480000,0.000000,0.000000 -2730,-3.0,327.600000,0.000000,0.000000 -2731,-3.0,327.720000,0.000000,0.000000 -2732,-3.0,327.840000,0.000000,0.000000 -2733,-3.0,327.960000,0.000000,0.000000 -2734,-3.0,328.080000,0.000000,0.000000 -2735,-3.0,328.200000,0.000000,0.000000 -2736,-3.0,328.320000,0.000000,0.000000 -2737,-3.0,328.440000,0.000000,0.000000 -2738,-3.0,328.560000,0.000000,0.000000 -2739,-3.0,328.680000,0.000000,0.000000 -2740,-3.0,328.800000,0.000000,0.000000 -2741,-3.0,328.920000,0.000000,0.000000 -2742,-3.0,329.040000,0.000000,0.000000 -2743,-3.0,329.160000,0.000000,0.000000 -2744,-3.0,329.280000,0.000000,0.000000 -2745,-3.0,329.400000,0.000000,0.000000 -2746,-3.0,329.520000,0.000000,0.000000 -2747,-3.0,329.640000,0.000000,0.000000 -2748,-3.0,329.760000,0.000000,0.000000 -2749,-3.0,329.880000,0.000000,0.000000 -2750,-3.0,330.000000,0.000000,0.000000 -2751,-3.0,330.120000,0.000000,0.000000 -2752,-3.0,330.240000,0.000000,0.000000 -2753,-3.0,330.360000,0.000000,0.000000 -2754,-3.0,330.480000,0.000000,0.000000 -2755,-3.0,330.600000,0.000000,0.000000 -2756,-3.0,330.720000,0.000000,0.000000 -2757,-3.0,330.840000,0.000000,0.000000 -2758,-3.0,330.960000,0.000000,0.000000 -2759,-3.0,331.080000,0.000000,0.000000 -2760,-3.0,331.200000,0.000000,0.000000 -2761,-3.0,331.320000,0.000000,0.000000 -2762,-3.0,331.440000,0.000000,0.000000 -2763,-3.0,331.560000,0.000000,0.000000 -2764,-3.0,331.680000,0.000000,0.000000 -2765,-3.0,331.800000,0.000000,0.000000 -2766,-3.0,331.920000,0.000000,0.000000 -2767,-3.0,332.040000,0.000000,0.000000 -2768,-3.0,332.160000,0.000000,0.000000 -2769,-3.0,332.280000,0.000000,0.000000 -2770,-3.0,332.400000,0.000000,0.000000 -2771,-3.0,332.520000,0.000000,0.000000 -2772,-3.0,332.640000,0.000000,0.000000 -2773,-3.0,332.760000,0.000000,0.000000 -2774,-3.0,332.880000,0.000000,0.000000 -2775,-3.0,333.000000,0.000000,0.000000 -2776,-3.0,333.120000,0.000000,0.000000 -2777,-3.0,333.240000,0.000000,0.000000 -2778,-3.0,333.360000,0.000000,0.000000 -2779,-3.0,333.480000,0.000000,0.000000 -2780,-3.0,333.600000,0.000000,0.000000 -2781,-3.0,333.720000,0.000000,0.000000 -2782,-3.0,333.840000,0.000000,0.000000 -2783,-3.0,333.960000,0.000000,0.000000 -2784,-3.0,334.080000,0.000000,0.000000 -2785,-3.0,334.200000,0.000000,0.000000 -2786,-3.0,334.320000,0.000000,0.000000 -2787,-3.0,334.440000,0.000000,0.000000 -2788,-3.0,334.560000,0.000000,0.000000 -2789,-3.0,334.680000,0.000000,0.000000 -2790,-3.0,334.800000,0.000000,0.000000 -2791,-3.0,334.920000,0.000000,0.000000 -2792,-3.0,335.040000,0.000000,0.000000 -2793,-3.0,335.160000,0.000000,0.000000 -2794,-3.0,335.280000,0.000000,0.000000 -2795,-3.0,335.400000,0.000000,0.000000 -2796,-3.0,335.520000,0.000000,0.000000 -2797,-3.0,335.640000,0.000000,0.000000 -2798,-3.0,335.760000,0.000000,0.000000 -2799,-3.0,335.880000,0.000000,0.000000 -2800,-3.0,336.000000,0.000000,0.000000 -2801,-3.0,336.120000,0.000000,0.000000 -2802,-3.0,336.240000,0.000000,0.000000 -2803,-3.0,336.360000,0.000000,0.000000 -2804,-3.0,336.480000,0.000000,0.000000 -2805,-3.0,336.600000,0.000000,0.000000 -2806,-3.0,336.720000,0.000000,0.000000 -2807,-3.0,336.840000,0.000000,0.000000 -2808,-3.0,336.960000,0.000000,0.000000 -2809,-3.0,337.080000,0.000000,0.000000 -2810,-3.0,337.200000,0.000000,0.000000 -2811,-3.0,337.320000,0.000000,0.000000 -2812,-3.0,337.440000,0.000000,0.000000 -2813,-3.0,337.560000,0.000000,0.000000 -2814,-3.0,337.680000,0.000000,0.000000 -2815,-3.0,337.800000,0.000000,0.000000 -2816,-3.0,337.920000,0.000000,0.000000 -2817,-3.0,338.040000,0.000000,0.000000 -2818,-3.0,338.160000,0.000000,0.000000 -2819,-3.0,338.280000,0.000000,0.000000 -2820,-3.0,338.400000,0.000000,0.000000 -2821,-3.0,338.520000,0.000000,0.000000 -2822,-3.0,338.640000,0.000000,0.000000 -2823,-3.0,338.760000,0.000000,0.000000 -2824,-3.0,338.880000,0.000000,0.000000 -2825,-3.0,339.000000,0.000000,0.000000 -2826,-3.0,339.120000,0.000000,0.000000 -2827,-3.0,339.240000,0.000000,0.000000 -2828,-3.0,339.360000,0.000000,0.000000 -2829,-3.0,339.480000,0.000000,0.000000 -2830,-3.0,339.600000,0.000000,0.000000 -2831,-3.0,339.720000,0.000000,0.000000 -2832,-3.0,339.840000,0.000000,0.000000 -2833,-3.0,339.960000,0.000000,0.000000 -2834,-3.0,340.080000,0.000000,0.000000 -2835,-3.0,340.200000,0.000000,0.000000 -2836,-3.0,340.320000,0.000000,0.000000 -2837,-3.0,340.440000,0.000000,0.000000 -2838,-3.0,340.560000,0.000000,0.000000 -2839,-3.0,340.680000,0.000000,0.000000 -2840,-3.0,340.800000,0.000000,0.000000 -2841,-3.0,340.920000,0.000000,0.000000 -2842,-3.0,341.040000,0.000000,0.000000 -2843,-3.0,341.160000,0.000000,0.000000 -2844,-3.0,341.280000,0.000000,0.000000 -2845,-3.0,341.400000,0.000000,0.000000 -2846,-3.0,341.520000,0.000000,0.000000 -2847,-3.0,341.640000,0.000000,0.000000 -2848,-3.0,341.760000,0.000000,0.000000 -2849,-3.0,341.880000,0.000000,0.000000 -2850,-3.0,342.000000,0.000000,0.000000 -2851,-3.0,342.120000,0.000000,0.000000 -2852,-3.0,342.240000,0.000000,0.000000 -2853,-3.0,342.360000,0.000000,0.000000 -2854,-3.0,342.480000,0.000000,0.000000 -2855,-3.0,342.600000,0.000000,0.000000 -2856,-3.0,342.720000,0.000000,0.000000 -2857,-3.0,342.840000,0.000000,0.000000 -2858,-3.0,342.960000,0.000000,0.000000 -2859,-3.0,343.080000,0.000000,0.000000 -2860,-3.0,343.200000,0.000000,0.000000 -2861,-3.0,343.320000,0.000000,0.000000 -2862,-3.0,343.440000,0.000000,0.000000 -2863,-3.0,343.560000,0.000000,0.000000 -2864,-3.0,343.680000,0.000000,0.000000 -2865,-3.0,343.800000,0.000000,0.000000 -2866,-3.0,343.920000,0.000000,0.000000 -2867,-3.0,344.040000,0.000000,0.000000 -2868,-3.0,344.160000,0.000000,0.000000 -2869,-3.0,344.280000,0.000000,0.000000 -2870,-3.0,344.400000,0.000000,0.000000 -2871,-3.0,344.520000,0.000000,0.000000 -2872,-3.0,344.640000,0.000000,0.000000 -2873,-3.0,344.760000,0.000000,0.000000 -2874,-3.0,344.880000,0.000000,0.000000 -2875,-3.0,345.000000,0.000000,0.000000 -2876,-3.0,345.120000,0.000000,0.000000 -2877,-3.0,345.240000,0.000000,0.000000 -2878,-3.0,345.360000,0.000000,0.000000 -2879,-3.0,345.480000,0.000000,0.000000 -2880,-3.0,345.600000,0.000000,0.000000 -2881,-3.0,345.720000,0.000000,0.000000 -2882,-3.0,345.840000,0.000000,0.000000 -2883,-3.0,345.960000,0.000000,0.000000 -2884,-3.0,346.080000,0.000000,0.000000 -2885,-3.0,346.200000,0.000000,0.000000 -2886,-3.0,346.320000,0.000000,0.000000 -2887,-3.0,346.440000,0.000000,0.000000 -2888,-3.0,346.560000,0.000000,0.000000 -2889,-3.0,346.680000,0.000000,0.000000 -2890,-3.0,346.800000,0.000000,0.000000 -2891,-3.0,346.920000,0.000000,0.000000 -2892,-3.0,347.040000,0.000000,0.000000 -2893,-3.0,347.160000,0.000000,0.000000 -2894,-3.0,347.280000,0.000000,0.000000 -2895,-3.0,347.400000,0.000000,0.000000 -2896,-3.0,347.520000,0.000000,0.000000 -2897,-3.0,347.640000,0.000000,0.000000 -2898,-3.0,347.760000,0.000000,0.000000 -2899,-3.0,347.880000,0.000000,0.000000 -2900,-3.0,348.000000,0.000000,0.000000 -2901,-3.0,348.120000,0.000000,0.000000 -2902,-3.0,348.240000,0.000000,0.000000 -2903,-3.0,348.360000,0.000000,0.000000 -2904,-3.0,348.480000,0.000000,0.000000 -2905,-3.0,348.600000,0.000000,0.000000 -2906,-3.0,348.720000,0.000000,0.000000 -2907,-3.0,348.840000,0.000000,0.000000 -2908,-3.0,348.960000,0.000000,0.000000 -2909,-3.0,349.080000,0.000000,0.000000 -2910,-3.0,349.200000,0.000000,0.000000 -2911,-3.0,349.320000,0.000000,0.000000 -2912,-3.0,349.440000,0.000000,0.000000 -2913,-3.0,349.560000,0.000000,0.000000 -2914,-3.0,349.680000,0.000000,0.000000 -2915,-3.0,349.800000,0.000000,0.000000 -2916,-3.0,349.920000,0.000000,0.000000 -2917,-3.0,350.040000,0.000000,0.000000 -2918,-3.0,350.160000,0.000000,0.000000 -2919,-3.0,350.280000,0.000000,0.000000 -2920,-3.0,350.400000,0.000000,0.000000 -2921,-3.0,350.520000,0.000000,0.000000 -2922,-3.0,350.640000,0.000000,0.000000 -2923,-3.0,350.760000,0.000000,0.000000 -2924,-3.0,350.880000,0.000000,0.000000 -2925,-3.0,351.000000,0.000000,0.000000 -2926,-3.0,351.120000,0.000000,0.000000 -2927,-3.0,351.240000,0.000000,0.000000 -2928,-3.0,351.360000,0.000000,0.000000 -2929,-3.0,351.480000,0.000000,0.000000 -2930,-3.0,351.600000,0.000000,0.000000 -2931,-3.0,351.720000,0.000000,0.000000 -2932,-3.0,351.840000,0.000000,0.000000 -2933,-3.0,351.960000,0.000000,0.000000 -2934,-3.0,352.080000,0.000000,0.000000 -2935,-3.0,352.200000,0.000000,0.000000 -2936,-3.0,352.320000,0.000000,0.000000 -2937,-3.0,352.440000,0.000000,0.000000 -2938,-3.0,352.560000,0.000000,0.000000 -2939,-3.0,352.680000,0.000000,0.000000 -2940,-3.0,352.800000,0.000000,0.000000 -2941,-3.0,352.920000,0.000000,0.000000 -2942,-3.0,353.040000,0.000000,0.000000 -2943,-3.0,353.160000,0.000000,0.000000 -2944,-3.0,353.280000,0.000000,0.000000 -2945,-3.0,353.400000,0.000000,0.000000 -2946,-3.0,353.520000,0.000000,0.000000 -2947,-3.0,353.640000,0.000000,0.000000 -2948,-3.0,353.760000,0.000000,0.000000 -2949,-3.0,353.880000,0.000000,0.000000 -2950,-3.0,354.000000,0.000000,0.000000 -2951,-3.0,354.120000,0.000000,0.000000 -2952,-3.0,354.240000,0.000000,0.000000 -2953,-3.0,354.360000,0.000000,0.000000 -2954,-3.0,354.480000,0.000000,0.000000 -2955,-3.0,354.600000,0.000000,0.000000 -2956,-3.0,354.720000,0.000000,0.000000 -2957,-3.0,354.840000,0.000000,0.000000 -2958,-3.0,354.960000,0.000000,0.000000 -2959,-3.0,355.080000,0.000000,0.000000 -2960,-3.0,355.200000,0.000000,0.000000 -2961,-3.0,355.320000,0.000000,0.000000 -2962,-3.0,355.440000,0.000000,0.000000 -2963,-3.0,355.560000,0.000000,0.000000 -2964,-3.0,355.680000,0.000000,0.000000 -2965,-3.0,355.800000,0.000000,0.000000 -2966,-3.0,355.920000,0.000000,0.000000 -2967,-3.0,356.040000,0.000000,0.000000 -2968,-3.0,356.160000,0.000000,0.000000 -2969,-3.0,356.280000,0.000000,0.000000 -2970,-3.0,356.400000,0.000000,0.000000 -2971,-3.0,356.520000,0.000000,0.000000 -2972,-3.0,356.640000,0.000000,0.000000 -2973,-3.0,356.760000,0.000000,0.000000 -2974,-3.0,356.880000,0.000000,0.000000 -2975,-3.0,357.000000,0.000000,0.000000 -2976,-3.0,357.120000,0.000000,0.000000 -2977,-3.0,357.240000,0.000000,0.000000 -2978,-3.0,357.360000,0.000000,0.000000 -2979,-3.0,357.480000,0.000000,0.000000 -2980,-3.0,357.600000,0.000000,0.000000 -2981,-3.0,357.720000,0.000000,0.000000 -2982,-3.0,357.840000,0.000000,0.000000 -2983,-3.0,357.960000,0.000000,0.000000 -2984,-3.0,358.080000,0.000000,0.000000 -2985,-3.0,358.200000,0.000000,0.000000 -2986,-3.0,358.320000,0.000000,0.000000 -2987,-3.0,358.440000,0.000000,0.000000 -2988,-3.0,358.560000,0.000000,0.000000 -2989,-3.0,358.680000,0.000000,0.000000 -2990,-3.0,358.800000,0.000000,0.000000 -2991,-3.0,358.920000,0.000000,0.000000 -2992,-3.0,359.040000,0.000000,0.000000 -2993,-3.0,359.160000,0.000000,0.000000 -2994,-3.0,359.280000,0.000000,0.000000 -2995,-3.0,359.400000,0.000000,0.000000 -2996,-3.0,359.520000,0.000000,0.000000 -2997,-3.0,359.640000,0.000000,0.000000 -2998,-3.0,359.760000,0.000000,0.000000 -2999,-3.0,359.880000,0.000000,0.000000 +-3.0,0.000000,0.000000,0.000000 +-3.0,0.120000,0.000000,0.000000 +-3.0,0.240000,0.000000,0.000000 +-3.0,0.360000,0.000000,0.000000 +-3.0,0.480000,0.000000,0.000000 +-3.0,0.600000,0.000000,0.000000 +-3.0,0.720000,0.000000,0.000000 +-3.0,0.840000,0.000000,0.000000 +-3.0,0.960000,0.000000,0.000000 +-3.0,1.080000,0.000000,0.000000 +-3.0,1.200000,0.000000,0.000000 +-3.0,1.320000,0.000000,0.000000 +-3.0,1.440000,0.000000,0.000000 +-3.0,1.560000,0.000000,0.000000 +-3.0,1.680000,0.000000,0.000000 +-3.0,1.800000,0.000000,0.000000 +-3.0,1.920000,0.000000,0.000000 +-3.0,2.040000,0.000000,0.000000 +-3.0,2.160000,0.000000,0.000000 +-3.0,2.280000,0.000000,0.000000 +-3.0,2.400000,0.000000,0.000000 +-3.0,2.520000,0.000000,0.000000 +-3.0,2.640000,0.000000,0.000000 +-3.0,2.760000,0.000000,0.000000 +-3.0,2.880000,0.000000,0.000000 +-3.0,3.000000,0.000000,0.000000 +-3.0,3.120000,0.000000,0.000000 +-3.0,3.240000,0.000000,0.000000 +-3.0,3.360000,0.000000,0.000000 +-3.0,3.480000,0.000000,0.000000 +-3.0,3.600000,0.000000,0.000000 +-3.0,3.720000,0.000000,0.000000 +-3.0,3.840000,0.000000,0.000000 +-3.0,3.960000,0.000000,0.000000 +-3.0,4.080000,0.000000,0.000000 +-3.0,4.200000,0.000000,0.000000 +-3.0,4.320000,0.000000,0.000000 +-3.0,4.440000,0.000000,0.000000 +-3.0,4.560000,0.000000,0.000000 +-3.0,4.680000,0.000000,0.000000 +-3.0,4.800000,0.000000,0.000000 +-3.0,4.920000,0.000000,0.000000 +-3.0,5.040000,0.000000,0.000000 +-3.0,5.160000,0.000000,0.000000 +-3.0,5.280000,0.000000,0.000000 +-3.0,5.400000,0.000000,0.000000 +-3.0,5.520000,0.000000,0.000000 +-3.0,5.640000,0.000000,0.000000 +-3.0,5.760000,0.000000,0.000000 +-3.0,5.880000,0.000000,0.000000 +-3.0,6.000000,0.000000,0.000000 +-3.0,6.120000,0.000000,0.000000 +-3.0,6.240000,0.000000,0.000000 +-3.0,6.360000,0.000000,0.000000 +-3.0,6.480000,0.000000,0.000000 +-3.0,6.600000,0.000000,0.000000 +-3.0,6.720000,0.000000,0.000000 +-3.0,6.840000,0.000000,0.000000 +-3.0,6.960000,0.000000,0.000000 +-3.0,7.080000,0.000000,0.000000 +-3.0,7.200000,0.000000,0.000000 +-3.0,7.320000,0.000000,0.000000 +-3.0,7.440000,0.000000,0.000000 +-3.0,7.560000,0.000000,0.000000 +-3.0,7.680000,0.000000,0.000000 +-3.0,7.800000,0.000000,0.000000 +-3.0,7.920000,0.000000,0.000000 +-3.0,8.040000,0.000000,0.000000 +-3.0,8.160000,0.000000,0.000000 +-3.0,8.280000,0.000000,0.000000 +-3.0,8.400000,0.000000,0.000000 +-3.0,8.520000,0.000000,0.000000 +-3.0,8.640000,0.000000,0.000000 +-3.0,8.760000,0.000000,0.000000 +-3.0,8.880000,0.000000,0.000000 +-3.0,9.000000,0.000000,0.000000 +-3.0,9.120000,0.000000,0.000000 +-3.0,9.240000,0.000000,0.000000 +-3.0,9.360000,0.000000,0.000000 +-3.0,9.480000,0.000000,0.000000 +-3.0,9.600000,0.000000,0.000000 +-3.0,9.720000,0.000000,0.000000 +-3.0,9.840000,0.000000,0.000000 +-3.0,9.960000,0.000000,0.000000 +-3.0,10.080000,0.000000,0.000000 +-3.0,10.200000,0.000000,0.000000 +-3.0,10.320000,0.000000,0.000000 +-3.0,10.440000,0.000000,0.000000 +-3.0,10.560000,0.000000,0.000000 +-3.0,10.680000,0.000000,0.000000 +-3.0,10.800000,0.000000,0.000000 +-3.0,10.920000,0.000000,0.000000 +-3.0,11.040000,0.000000,0.000000 +-3.0,11.160000,0.000000,0.000000 +-3.0,11.280000,0.000000,0.000000 +-3.0,11.400000,0.000000,0.000000 +-3.0,11.520000,0.000000,0.000000 +-3.0,11.640000,0.000000,0.000000 +-3.0,11.760000,0.000000,0.000000 +-3.0,11.880000,0.000000,0.000000 +-3.0,12.000000,0.000000,0.000000 +-3.0,12.120000,0.000000,0.000000 +-3.0,12.240000,0.000000,0.000000 +-3.0,12.360000,0.000000,0.000000 +-3.0,12.480000,0.000000,0.000000 +-3.0,12.600000,0.000000,0.000000 +-3.0,12.720000,0.000000,0.000000 +-3.0,12.840000,0.000000,0.000000 +-3.0,12.960000,0.000000,0.000000 +-3.0,13.080000,0.000000,0.000000 +-3.0,13.200000,0.000000,0.000000 +-3.0,13.320000,0.000000,0.000000 +-3.0,13.440000,0.000000,0.000000 +-3.0,13.560000,0.000000,0.000000 +-3.0,13.680000,0.000000,0.000000 +-3.0,13.800000,0.000000,0.000000 +-3.0,13.920000,0.000000,0.000000 +-3.0,14.040000,0.000000,0.000000 +-3.0,14.160000,0.000000,0.000000 +-3.0,14.280000,0.000000,0.000000 +-3.0,14.400000,0.000000,0.000000 +-3.0,14.520000,0.000000,0.000000 +-3.0,14.640000,0.000000,0.000000 +-3.0,14.760000,0.000000,0.000000 +-3.0,14.880000,0.000000,0.000000 +-3.0,15.000000,0.000000,0.000000 +-3.0,15.120000,0.000000,0.000000 +-3.0,15.240000,0.000000,0.000000 +-3.0,15.360000,0.000000,0.000000 +-3.0,15.480000,0.000000,0.000000 +-3.0,15.600000,0.000000,0.000000 +-3.0,15.720000,0.000000,0.000000 +-3.0,15.840000,0.000000,0.000000 +-3.0,15.960000,0.000000,0.000000 +-3.0,16.080000,0.000000,0.000000 +-3.0,16.200000,0.000000,0.000000 +-3.0,16.320000,0.000000,0.000000 +-3.0,16.440000,0.000000,0.000000 +-3.0,16.560000,0.000000,0.000000 +-3.0,16.680000,0.000000,0.000000 +-3.0,16.800000,0.000000,0.000000 +-3.0,16.920000,0.000000,0.000000 +-3.0,17.040000,0.000000,0.000000 +-3.0,17.160000,0.000000,0.000000 +-3.0,17.280000,0.000000,0.000000 +-3.0,17.400000,0.000000,0.000000 +-3.0,17.520000,0.000000,0.000000 +-3.0,17.640000,0.000000,0.000000 +-3.0,17.760000,0.000000,0.000000 +-3.0,17.880000,0.000000,0.000000 +-3.0,18.000000,0.000000,0.000000 +-3.0,18.120000,0.000000,0.000000 +-3.0,18.240000,0.000000,0.000000 +-3.0,18.360000,0.000000,0.000000 +-3.0,18.480000,0.000000,0.000000 +-3.0,18.600000,0.000000,0.000000 +-3.0,18.720000,0.000000,0.000000 +-3.0,18.840000,0.000000,0.000000 +-3.0,18.960000,0.000000,0.000000 +-3.0,19.080000,0.000000,0.000000 +-3.0,19.200000,0.000000,0.000000 +-3.0,19.320000,0.000000,0.000000 +-3.0,19.440000,0.000000,0.000000 +-3.0,19.560000,0.000000,0.000000 +-3.0,19.680000,0.000000,0.000000 +-3.0,19.800000,0.000000,0.000000 +-3.0,19.920000,0.000000,0.000000 +-3.0,20.040000,0.000000,0.000000 +-3.0,20.160000,0.000000,0.000000 +-3.0,20.280000,0.000000,0.000000 +-3.0,20.400000,0.000000,0.000000 +-3.0,20.520000,0.000000,0.000000 +-3.0,20.640000,0.000000,0.000000 +-3.0,20.760000,0.000000,0.000000 +-3.0,20.880000,0.000000,0.000000 +-3.0,21.000000,0.000000,0.000000 +-3.0,21.120000,0.000000,0.000000 +-3.0,21.240000,0.000000,0.000000 +-3.0,21.360000,0.000000,0.000000 +-3.0,21.480000,0.000000,0.000000 +-3.0,21.600000,0.000000,0.000000 +-3.0,21.720000,0.000000,0.000000 +-3.0,21.840000,0.000000,0.000000 +-3.0,21.960000,0.000000,0.000000 +-3.0,22.080000,0.000000,0.000000 +-3.0,22.200000,0.000000,0.000000 +-3.0,22.320000,0.000000,0.000000 +-3.0,22.440000,0.000000,0.000000 +-3.0,22.560000,0.000000,0.000000 +-3.0,22.680000,0.000000,0.000000 +-3.0,22.800000,0.000000,0.000000 +-3.0,22.920000,0.000000,0.000000 +-3.0,23.040000,0.000000,0.000000 +-3.0,23.160000,0.000000,0.000000 +-3.0,23.280000,0.000000,0.000000 +-3.0,23.400000,0.000000,0.000000 +-3.0,23.520000,0.000000,0.000000 +-3.0,23.640000,0.000000,0.000000 +-3.0,23.760000,0.000000,0.000000 +-3.0,23.880000,0.000000,0.000000 +-3.0,24.000000,0.000000,0.000000 +-3.0,24.120000,0.000000,0.000000 +-3.0,24.240000,0.000000,0.000000 +-3.0,24.360000,0.000000,0.000000 +-3.0,24.480000,0.000000,0.000000 +-3.0,24.600000,0.000000,0.000000 +-3.0,24.720000,0.000000,0.000000 +-3.0,24.840000,0.000000,0.000000 +-3.0,24.960000,0.000000,0.000000 +-3.0,25.080000,0.000000,0.000000 +-3.0,25.200000,0.000000,0.000000 +-3.0,25.320000,0.000000,0.000000 +-3.0,25.440000,0.000000,0.000000 +-3.0,25.560000,0.000000,0.000000 +-3.0,25.680000,0.000000,0.000000 +-3.0,25.800000,0.000000,0.000000 +-3.0,25.920000,0.000000,0.000000 +-3.0,26.040000,0.000000,0.000000 +-3.0,26.160000,0.000000,0.000000 +-3.0,26.280000,0.000000,0.000000 +-3.0,26.400000,0.000000,0.000000 +-3.0,26.520000,0.000000,0.000000 +-3.0,26.640000,0.000000,0.000000 +-3.0,26.760000,0.000000,0.000000 +-3.0,26.880000,0.000000,0.000000 +-3.0,27.000000,0.000000,0.000000 +-3.0,27.120000,0.000000,0.000000 +-3.0,27.240000,0.000000,0.000000 +-3.0,27.360000,0.000000,0.000000 +-3.0,27.480000,0.000000,0.000000 +-3.0,27.600000,0.000000,0.000000 +-3.0,27.720000,0.000000,0.000000 +-3.0,27.840000,0.000000,0.000000 +-3.0,27.960000,0.000000,0.000000 +-3.0,28.080000,0.000000,0.000000 +-3.0,28.200000,0.000000,0.000000 +-3.0,28.320000,0.000000,0.000000 +-3.0,28.440000,0.000000,0.000000 +-3.0,28.560000,0.000000,0.000000 +-3.0,28.680000,0.000000,0.000000 +-3.0,28.800000,0.000000,0.000000 +-3.0,28.920000,0.000000,0.000000 +-3.0,29.040000,0.000000,0.000000 +-3.0,29.160000,0.000000,0.000000 +-3.0,29.280000,0.000000,0.000000 +-3.0,29.400000,0.000000,0.000000 +-3.0,29.520000,0.000000,0.000000 +-3.0,29.640000,0.000000,0.000000 +-3.0,29.760000,0.000000,0.000000 +-3.0,29.880000,0.000000,0.000000 +-3.0,30.000000,0.000000,0.000000 +-3.0,30.120000,0.000000,0.000000 +-3.0,30.240000,0.000000,0.000000 +-3.0,30.360000,0.000000,0.000000 +-3.0,30.480000,0.000000,0.000000 +-3.0,30.600000,0.000000,0.000000 +-3.0,30.720000,0.000000,0.000000 +-3.0,30.840000,0.000000,0.000000 +-3.0,30.960000,0.000000,0.000000 +-3.0,31.080000,0.000000,0.000000 +-3.0,31.200000,0.000000,0.000000 +-3.0,31.320000,0.000000,0.000000 +-3.0,31.440000,0.000000,0.000000 +-3.0,31.560000,0.000000,0.000000 +-3.0,31.680000,0.000000,0.000000 +-3.0,31.800000,0.000000,0.000000 +-3.0,31.920000,0.000000,0.000000 +-3.0,32.040000,0.000000,0.000000 +-3.0,32.160000,0.000000,0.000000 +-3.0,32.280000,0.000000,0.000000 +-3.0,32.400000,0.000000,0.000000 +-3.0,32.520000,0.000000,0.000000 +-3.0,32.640000,0.000000,0.000000 +-3.0,32.760000,0.000000,0.000000 +-3.0,32.880000,0.000000,0.000000 +-3.0,33.000000,0.000000,0.000000 +-3.0,33.120000,0.000000,0.000000 +-3.0,33.240000,0.000000,0.000000 +-3.0,33.360000,0.000000,0.000000 +-3.0,33.480000,0.000000,0.000000 +-3.0,33.600000,0.000000,0.000000 +-3.0,33.720000,0.000000,0.000000 +-3.0,33.840000,0.000000,0.000000 +-3.0,33.960000,0.000000,0.000000 +-3.0,34.080000,0.000000,0.000000 +-3.0,34.200000,0.000000,0.000000 +-3.0,34.320000,0.000000,0.000000 +-3.0,34.440000,0.000000,0.000000 +-3.0,34.560000,0.000000,0.000000 +-3.0,34.680000,0.000000,0.000000 +-3.0,34.800000,0.000000,0.000000 +-3.0,34.920000,0.000000,0.000000 +-3.0,35.040000,0.000000,0.000000 +-3.0,35.160000,0.000000,0.000000 +-3.0,35.280000,0.000000,0.000000 +-3.0,35.400000,0.000000,0.000000 +-3.0,35.520000,0.000000,0.000000 +-3.0,35.640000,0.000000,0.000000 +-3.0,35.760000,0.000000,0.000000 +-3.0,35.880000,0.000000,0.000000 +-3.0,36.000000,0.000000,0.000000 +-3.0,36.120000,0.000000,0.000000 +-3.0,36.240000,0.000000,0.000000 +-3.0,36.360000,0.000000,0.000000 +-3.0,36.480000,0.000000,0.000000 +-3.0,36.600000,0.000000,0.000000 +-3.0,36.720000,0.000000,0.000000 +-3.0,36.840000,0.000000,0.000000 +-3.0,36.960000,0.000000,0.000000 +-3.0,37.080000,0.000000,0.000000 +-3.0,37.200000,0.000000,0.000000 +-3.0,37.320000,0.000000,0.000000 +-3.0,37.440000,0.000000,0.000000 +-3.0,37.560000,0.000000,0.000000 +-3.0,37.680000,0.000000,0.000000 +-3.0,37.800000,0.000000,0.000000 +-3.0,37.920000,0.000000,0.000000 +-3.0,38.040000,0.000000,0.000000 +-3.0,38.160000,0.000000,0.000000 +-3.0,38.280000,0.000000,0.000000 +-3.0,38.400000,0.000000,0.000000 +-3.0,38.520000,0.000000,0.000000 +-3.0,38.640000,0.000000,0.000000 +-3.0,38.760000,0.000000,0.000000 +-3.0,38.880000,0.000000,0.000000 +-3.0,39.000000,0.000000,0.000000 +-3.0,39.120000,0.000000,0.000000 +-3.0,39.240000,0.000000,0.000000 +-3.0,39.360000,0.000000,0.000000 +-3.0,39.480000,0.000000,0.000000 +-3.0,39.600000,0.000000,0.000000 +-3.0,39.720000,0.000000,0.000000 +-3.0,39.840000,0.000000,0.000000 +-3.0,39.960000,0.000000,0.000000 +-3.0,40.080000,0.000000,0.000000 +-3.0,40.200000,0.000000,0.000000 +-3.0,40.320000,0.000000,0.000000 +-3.0,40.440000,0.000000,0.000000 +-3.0,40.560000,0.000000,0.000000 +-3.0,40.680000,0.000000,0.000000 +-3.0,40.800000,0.000000,0.000000 +-3.0,40.920000,0.000000,0.000000 +-3.0,41.040000,0.000000,0.000000 +-3.0,41.160000,0.000000,0.000000 +-3.0,41.280000,0.000000,0.000000 +-3.0,41.400000,0.000000,0.000000 +-3.0,41.520000,0.000000,0.000000 +-3.0,41.640000,0.000000,0.000000 +-3.0,41.760000,0.000000,0.000000 +-3.0,41.880000,0.000000,0.000000 +-3.0,42.000000,0.000000,0.000000 +-3.0,42.120000,0.000000,0.000000 +-3.0,42.240000,0.000000,0.000000 +-3.0,42.360000,0.000000,0.000000 +-3.0,42.480000,0.000000,0.000000 +-3.0,42.600000,0.000000,0.000000 +-3.0,42.720000,0.000000,0.000000 +-3.0,42.840000,0.000000,0.000000 +-3.0,42.960000,0.000000,0.000000 +-3.0,43.080000,0.000000,0.000000 +-3.0,43.200000,0.000000,0.000000 +-3.0,43.320000,0.000000,0.000000 +-3.0,43.440000,0.000000,0.000000 +-3.0,43.560000,0.000000,0.000000 +-3.0,43.680000,0.000000,0.000000 +-3.0,43.800000,0.000000,0.000000 +-3.0,43.920000,0.000000,0.000000 +-3.0,44.040000,0.000000,0.000000 +-3.0,44.160000,0.000000,0.000000 +-3.0,44.280000,0.000000,0.000000 +-3.0,44.400000,0.000000,0.000000 +-3.0,44.520000,0.000000,0.000000 +-3.0,44.640000,0.000000,0.000000 +-3.0,44.760000,0.000000,0.000000 +-3.0,44.880000,0.000000,0.000000 +-3.0,45.000000,0.000000,0.000000 +-3.0,45.120000,0.000000,0.000000 +-3.0,45.240000,0.000000,0.000000 +-3.0,45.360000,0.000000,0.000000 +-3.0,45.480000,0.000000,0.000000 +-3.0,45.600000,0.000000,0.000000 +-3.0,45.720000,0.000000,0.000000 +-3.0,45.840000,0.000000,0.000000 +-3.0,45.960000,0.000000,0.000000 +-3.0,46.080000,0.000000,0.000000 +-3.0,46.200000,0.000000,0.000000 +-3.0,46.320000,0.000000,0.000000 +-3.0,46.440000,0.000000,0.000000 +-3.0,46.560000,0.000000,0.000000 +-3.0,46.680000,0.000000,0.000000 +-3.0,46.800000,0.000000,0.000000 +-3.0,46.920000,0.000000,0.000000 +-3.0,47.040000,0.000000,0.000000 +-3.0,47.160000,0.000000,0.000000 +-3.0,47.280000,0.000000,0.000000 +-3.0,47.400000,0.000000,0.000000 +-3.0,47.520000,0.000000,0.000000 +-3.0,47.640000,0.000000,0.000000 +-3.0,47.760000,0.000000,0.000000 +-3.0,47.880000,0.000000,0.000000 +-3.0,48.000000,0.000000,0.000000 +-3.0,48.120000,0.000000,0.000000 +-3.0,48.240000,0.000000,0.000000 +-3.0,48.360000,0.000000,0.000000 +-3.0,48.480000,0.000000,0.000000 +-3.0,48.600000,0.000000,0.000000 +-3.0,48.720000,0.000000,0.000000 +-3.0,48.840000,0.000000,0.000000 +-3.0,48.960000,0.000000,0.000000 +-3.0,49.080000,0.000000,0.000000 +-3.0,49.200000,0.000000,0.000000 +-3.0,49.320000,0.000000,0.000000 +-3.0,49.440000,0.000000,0.000000 +-3.0,49.560000,0.000000,0.000000 +-3.0,49.680000,0.000000,0.000000 +-3.0,49.800000,0.000000,0.000000 +-3.0,49.920000,0.000000,0.000000 +-3.0,50.040000,0.000000,0.000000 +-3.0,50.160000,0.000000,0.000000 +-3.0,50.280000,0.000000,0.000000 +-3.0,50.400000,0.000000,0.000000 +-3.0,50.520000,0.000000,0.000000 +-3.0,50.640000,0.000000,0.000000 +-3.0,50.760000,0.000000,0.000000 +-3.0,50.880000,0.000000,0.000000 +-3.0,51.000000,0.000000,0.000000 +-3.0,51.120000,0.000000,0.000000 +-3.0,51.240000,0.000000,0.000000 +-3.0,51.360000,0.000000,0.000000 +-3.0,51.480000,0.000000,0.000000 +-3.0,51.600000,0.000000,0.000000 +-3.0,51.720000,0.000000,0.000000 +-3.0,51.840000,0.000000,0.000000 +-3.0,51.960000,0.000000,0.000000 +-3.0,52.080000,0.000000,0.000000 +-3.0,52.200000,0.000000,0.000000 +-3.0,52.320000,0.000000,0.000000 +-3.0,52.440000,0.000000,0.000000 +-3.0,52.560000,0.000000,0.000000 +-3.0,52.680000,0.000000,0.000000 +-3.0,52.800000,0.000000,0.000000 +-3.0,52.920000,0.000000,0.000000 +-3.0,53.040000,0.000000,0.000000 +-3.0,53.160000,0.000000,0.000000 +-3.0,53.280000,0.000000,0.000000 +-3.0,53.400000,0.000000,0.000000 +-3.0,53.520000,0.000000,0.000000 +-3.0,53.640000,0.000000,0.000000 +-3.0,53.760000,0.000000,0.000000 +-3.0,53.880000,0.000000,0.000000 +-3.0,54.000000,0.000000,0.000000 +-3.0,54.120000,0.000000,0.000000 +-3.0,54.240000,0.000000,0.000000 +-3.0,54.360000,0.000000,0.000000 +-3.0,54.480000,0.000000,0.000000 +-3.0,54.600000,0.000000,0.000000 +-3.0,54.720000,0.000000,0.000000 +-3.0,54.840000,0.000000,0.000000 +-3.0,54.960000,0.000000,0.000000 +-3.0,55.080000,0.000000,0.000000 +-3.0,55.200000,0.000000,0.000000 +-3.0,55.320000,0.000000,0.000000 +-3.0,55.440000,0.000000,0.000000 +-3.0,55.560000,0.000000,0.000000 +-3.0,55.680000,0.000000,0.000000 +-3.0,55.800000,0.000000,0.000000 +-3.0,55.920000,0.000000,0.000000 +-3.0,56.040000,0.000000,0.000000 +-3.0,56.160000,0.000000,0.000000 +-3.0,56.280000,0.000000,0.000000 +-3.0,56.400000,0.000000,0.000000 +-3.0,56.520000,0.000000,0.000000 +-3.0,56.640000,0.000000,0.000000 +-3.0,56.760000,0.000000,0.000000 +-3.0,56.880000,0.000000,0.000000 +-3.0,57.000000,0.000000,0.000000 +-3.0,57.120000,0.000000,0.000000 +-3.0,57.240000,0.000000,0.000000 +-3.0,57.360000,0.000000,0.000000 +-3.0,57.480000,0.000000,0.000000 +-3.0,57.600000,0.000000,0.000000 +-3.0,57.720000,0.000000,0.000000 +-3.0,57.840000,0.000000,0.000000 +-3.0,57.960000,0.000000,0.000000 +-3.0,58.080000,0.000000,0.000000 +-3.0,58.200000,0.000000,0.000000 +-3.0,58.320000,0.000000,0.000000 +-3.0,58.440000,0.000000,0.000000 +-3.0,58.560000,0.000000,0.000000 +-3.0,58.680000,0.000000,0.000000 +-3.0,58.800000,0.000000,0.000000 +-3.0,58.920000,0.000000,0.000000 +-3.0,59.040000,0.000000,0.000000 +-3.0,59.160000,0.000000,0.000000 +-3.0,59.280000,0.000000,0.000000 +-3.0,59.400000,0.000000,0.000000 +-3.0,59.520000,0.000000,0.000000 +-3.0,59.640000,0.000000,0.000000 +-3.0,59.760000,0.000000,0.000000 +-3.0,59.880000,0.000000,0.000000 +-3.0,60.000000,0.000000,0.000000 +-3.0,60.120000,0.000000,0.000000 +-3.0,60.240000,0.000000,0.000000 +-3.0,60.360000,0.000000,0.000000 +-3.0,60.480000,0.000000,0.000000 +-3.0,60.600000,0.000000,0.000000 +-3.0,60.720000,0.000000,0.000000 +-3.0,60.840000,0.000000,0.000000 +-3.0,60.960000,0.000000,0.000000 +-3.0,61.080000,0.000000,0.000000 +-3.0,61.200000,0.000000,0.000000 +-3.0,61.320000,0.000000,0.000000 +-3.0,61.440000,0.000000,0.000000 +-3.0,61.560000,0.000000,0.000000 +-3.0,61.680000,0.000000,0.000000 +-3.0,61.800000,0.000000,0.000000 +-3.0,61.920000,0.000000,0.000000 +-3.0,62.040000,0.000000,0.000000 +-3.0,62.160000,0.000000,0.000000 +-3.0,62.280000,0.000000,0.000000 +-3.0,62.400000,0.000000,0.000000 +-3.0,62.520000,0.000000,0.000000 +-3.0,62.640000,0.000000,0.000000 +-3.0,62.760000,0.000000,0.000000 +-3.0,62.880000,0.000000,0.000000 +-3.0,63.000000,0.000000,0.000000 +-3.0,63.120000,0.000000,0.000000 +-3.0,63.240000,0.000000,0.000000 +-3.0,63.360000,0.000000,0.000000 +-3.0,63.480000,0.000000,0.000000 +-3.0,63.600000,0.000000,0.000000 +-3.0,63.720000,0.000000,0.000000 +-3.0,63.840000,0.000000,0.000000 +-3.0,63.960000,0.000000,0.000000 +-3.0,64.080000,0.000000,0.000000 +-3.0,64.200000,0.000000,0.000000 +-3.0,64.320000,0.000000,0.000000 +-3.0,64.440000,0.000000,0.000000 +-3.0,64.560000,0.000000,0.000000 +-3.0,64.680000,0.000000,0.000000 +-3.0,64.800000,0.000000,0.000000 +-3.0,64.920000,0.000000,0.000000 +-3.0,65.040000,0.000000,0.000000 +-3.0,65.160000,0.000000,0.000000 +-3.0,65.280000,0.000000,0.000000 +-3.0,65.400000,0.000000,0.000000 +-3.0,65.520000,0.000000,0.000000 +-3.0,65.640000,0.000000,0.000000 +-3.0,65.760000,0.000000,0.000000 +-3.0,65.880000,0.000000,0.000000 +-3.0,66.000000,0.000000,0.000000 +-3.0,66.120000,0.000000,0.000000 +-3.0,66.240000,0.000000,0.000000 +-3.0,66.360000,0.000000,0.000000 +-3.0,66.480000,0.000000,0.000000 +-3.0,66.600000,0.000000,0.000000 +-3.0,66.720000,0.000000,0.000000 +-3.0,66.840000,0.000000,0.000000 +-3.0,66.960000,0.000000,0.000000 +-3.0,67.080000,0.000000,0.000000 +-3.0,67.200000,0.000000,0.000000 +-3.0,67.320000,0.000000,0.000000 +-3.0,67.440000,0.000000,0.000000 +-3.0,67.560000,0.000000,0.000000 +-3.0,67.680000,0.000000,0.000000 +-3.0,67.800000,0.000000,0.000000 +-3.0,67.920000,0.000000,0.000000 +-3.0,68.040000,0.000000,0.000000 +-3.0,68.160000,0.000000,0.000000 +-3.0,68.280000,0.000000,0.000000 +-3.0,68.400000,0.000000,0.000000 +-3.0,68.520000,0.000000,0.000000 +-3.0,68.640000,0.000000,0.000000 +-3.0,68.760000,0.000000,0.000000 +-3.0,68.880000,0.000000,0.000000 +-3.0,69.000000,0.000000,0.000000 +-3.0,69.120000,0.000000,0.000000 +-3.0,69.240000,0.000000,0.000000 +-3.0,69.360000,0.000000,0.000000 +-3.0,69.480000,0.000000,0.000000 +-3.0,69.600000,0.000000,0.000000 +-3.0,69.720000,0.000000,0.000000 +-3.0,69.840000,0.000000,0.000000 +-3.0,69.960000,0.000000,0.000000 +-3.0,70.080000,0.000000,0.000000 +-3.0,70.200000,0.000000,0.000000 +-3.0,70.320000,0.000000,0.000000 +-3.0,70.440000,0.000000,0.000000 +-3.0,70.560000,0.000000,0.000000 +-3.0,70.680000,0.000000,0.000000 +-3.0,70.800000,0.000000,0.000000 +-3.0,70.920000,0.000000,0.000000 +-3.0,71.040000,0.000000,0.000000 +-3.0,71.160000,0.000000,0.000000 +-3.0,71.280000,0.000000,0.000000 +-3.0,71.400000,0.000000,0.000000 +-3.0,71.520000,0.000000,0.000000 +-3.0,71.640000,0.000000,0.000000 +-3.0,71.760000,0.000000,0.000000 +-3.0,71.880000,0.000000,0.000000 +-3.0,72.000000,0.000000,0.000000 +-3.0,72.120000,0.000000,0.000000 +-3.0,72.240000,0.000000,0.000000 +-3.0,72.360000,0.000000,0.000000 +-3.0,72.480000,0.000000,0.000000 +-3.0,72.600000,0.000000,0.000000 +-3.0,72.720000,0.000000,0.000000 +-3.0,72.840000,0.000000,0.000000 +-3.0,72.960000,0.000000,0.000000 +-3.0,73.080000,0.000000,0.000000 +-3.0,73.200000,0.000000,0.000000 +-3.0,73.320000,0.000000,0.000000 +-3.0,73.440000,0.000000,0.000000 +-3.0,73.560000,0.000000,0.000000 +-3.0,73.680000,0.000000,0.000000 +-3.0,73.800000,0.000000,0.000000 +-3.0,73.920000,0.000000,0.000000 +-3.0,74.040000,0.000000,0.000000 +-3.0,74.160000,0.000000,0.000000 +-3.0,74.280000,0.000000,0.000000 +-3.0,74.400000,0.000000,0.000000 +-3.0,74.520000,0.000000,0.000000 +-3.0,74.640000,0.000000,0.000000 +-3.0,74.760000,0.000000,0.000000 +-3.0,74.880000,0.000000,0.000000 +-3.0,75.000000,0.000000,0.000000 +-3.0,75.120000,0.000000,0.000000 +-3.0,75.240000,0.000000,0.000000 +-3.0,75.360000,0.000000,0.000000 +-3.0,75.480000,0.000000,0.000000 +-3.0,75.600000,0.000000,0.000000 +-3.0,75.720000,0.000000,0.000000 +-3.0,75.840000,0.000000,0.000000 +-3.0,75.960000,0.000000,0.000000 +-3.0,76.080000,0.000000,0.000000 +-3.0,76.200000,0.000000,0.000000 +-3.0,76.320000,0.000000,0.000000 +-3.0,76.440000,0.000000,0.000000 +-3.0,76.560000,0.000000,0.000000 +-3.0,76.680000,0.000000,0.000000 +-3.0,76.800000,0.000000,0.000000 +-3.0,76.920000,0.000000,0.000000 +-3.0,77.040000,0.000000,0.000000 +-3.0,77.160000,0.000000,0.000000 +-3.0,77.280000,0.000000,0.000000 +-3.0,77.400000,0.000000,0.000000 +-3.0,77.520000,0.000000,0.000000 +-3.0,77.640000,0.000000,0.000000 +-3.0,77.760000,0.000000,0.000000 +-3.0,77.880000,0.000000,0.000000 +-3.0,78.000000,0.000000,0.000000 +-3.0,78.120000,0.000000,0.000000 +-3.0,78.240000,0.000000,0.000000 +-3.0,78.360000,0.000000,0.000000 +-3.0,78.480000,0.000000,0.000000 +-3.0,78.600000,0.000000,0.000000 +-3.0,78.720000,0.000000,0.000000 +-3.0,78.840000,0.000000,0.000000 +-3.0,78.960000,0.000000,0.000000 +-3.0,79.080000,0.000000,0.000000 +-3.0,79.200000,0.000000,0.000000 +-3.0,79.320000,0.000000,0.000000 +-3.0,79.440000,0.000000,0.000000 +-3.0,79.560000,0.000000,0.000000 +-3.0,79.680000,0.000000,0.000000 +-3.0,79.800000,0.000000,0.000000 +-3.0,79.920000,0.000000,0.000000 +-3.0,80.040000,0.000000,0.000000 +-3.0,80.160000,0.000000,0.000000 +-3.0,80.280000,0.000000,0.000000 +-3.0,80.400000,0.000000,0.000000 +-3.0,80.520000,0.000000,0.000000 +-3.0,80.640000,0.000000,0.000000 +-3.0,80.760000,0.000000,0.000000 +-3.0,80.880000,0.000000,0.000000 +-3.0,81.000000,0.000000,0.000000 +-3.0,81.120000,0.000000,0.000000 +-3.0,81.240000,0.000000,0.000000 +-3.0,81.360000,0.000000,0.000000 +-3.0,81.480000,0.000000,0.000000 +-3.0,81.600000,0.000000,0.000000 +-3.0,81.720000,0.000000,0.000000 +-3.0,81.840000,0.000000,0.000000 +-3.0,81.960000,0.000000,0.000000 +-3.0,82.080000,0.000000,0.000000 +-3.0,82.200000,0.000000,0.000000 +-3.0,82.320000,0.000000,0.000000 +-3.0,82.440000,0.000000,0.000000 +-3.0,82.560000,0.000000,0.000000 +-3.0,82.680000,0.000000,0.000000 +-3.0,82.800000,0.000000,0.000000 +-3.0,82.920000,0.000000,0.000000 +-3.0,83.040000,0.000000,0.000000 +-3.0,83.160000,0.000000,0.000000 +-3.0,83.280000,0.000000,0.000000 +-3.0,83.400000,0.000000,0.000000 +-3.0,83.520000,0.000000,0.000000 +-3.0,83.640000,0.000000,0.000000 +-3.0,83.760000,0.000000,0.000000 +-3.0,83.880000,0.000000,0.000000 +-3.0,84.000000,0.000000,0.000000 +-3.0,84.120000,0.000000,0.000000 +-3.0,84.240000,0.000000,0.000000 +-3.0,84.360000,0.000000,0.000000 +-3.0,84.480000,0.000000,0.000000 +-3.0,84.600000,0.000000,0.000000 +-3.0,84.720000,0.000000,0.000000 +-3.0,84.840000,0.000000,0.000000 +-3.0,84.960000,0.000000,0.000000 +-3.0,85.080000,0.000000,0.000000 +-3.0,85.200000,0.000000,0.000000 +-3.0,85.320000,0.000000,0.000000 +-3.0,85.440000,0.000000,0.000000 +-3.0,85.560000,0.000000,0.000000 +-3.0,85.680000,0.000000,0.000000 +-3.0,85.800000,0.000000,0.000000 +-3.0,85.920000,0.000000,0.000000 +-3.0,86.040000,0.000000,0.000000 +-3.0,86.160000,0.000000,0.000000 +-3.0,86.280000,0.000000,0.000000 +-3.0,86.400000,0.000000,0.000000 +-3.0,86.520000,0.000000,0.000000 +-3.0,86.640000,0.000000,0.000000 +-3.0,86.760000,0.000000,0.000000 +-3.0,86.880000,0.000000,0.000000 +-3.0,87.000000,0.000000,0.000000 +-3.0,87.120000,0.000000,0.000000 +-3.0,87.240000,0.000000,0.000000 +-3.0,87.360000,0.000000,0.000000 +-3.0,87.480000,0.000000,0.000000 +-3.0,87.600000,0.000000,0.000000 +-3.0,87.720000,0.000000,0.000000 +-3.0,87.840000,0.000000,0.000000 +-3.0,87.960000,0.000000,0.000000 +-3.0,88.080000,0.000000,0.000000 +-3.0,88.200000,0.000000,0.000000 +-3.0,88.320000,0.000000,0.000000 +-3.0,88.440000,0.000000,0.000000 +-3.0,88.560000,0.000000,0.000000 +-3.0,88.680000,0.000000,0.000000 +-3.0,88.800000,0.000000,0.000000 +-3.0,88.920000,0.000000,0.000000 +-3.0,89.040000,0.000000,0.000000 +-3.0,89.160000,0.000000,0.000000 +-3.0,89.280000,0.000000,0.000000 +-3.0,89.400000,0.000000,0.000000 +-3.0,89.520000,0.000000,0.000000 +-3.0,89.640000,0.000000,0.000000 +-3.0,89.760000,0.000000,0.000000 +-3.0,89.880000,0.000000,0.000000 +-3.0,90.000000,0.000000,0.000000 +-3.0,90.120000,0.000000,0.000000 +-3.0,90.240000,0.000000,0.000000 +-3.0,90.360000,0.000000,0.000000 +-3.0,90.480000,0.000000,0.000000 +-3.0,90.600000,0.000000,0.000000 +-3.0,90.720000,0.000000,0.000000 +-3.0,90.840000,0.000000,0.000000 +-3.0,90.960000,0.000000,0.000000 +-3.0,91.080000,0.000000,0.000000 +-3.0,91.200000,0.000000,0.000000 +-3.0,91.320000,0.000000,0.000000 +-3.0,91.440000,0.000000,0.000000 +-3.0,91.560000,0.000000,0.000000 +-3.0,91.680000,0.000000,0.000000 +-3.0,91.800000,0.000000,0.000000 +-3.0,91.920000,0.000000,0.000000 +-3.0,92.040000,0.000000,0.000000 +-3.0,92.160000,0.000000,0.000000 +-3.0,92.280000,0.000000,0.000000 +-3.0,92.400000,0.000000,0.000000 +-3.0,92.520000,0.000000,0.000000 +-3.0,92.640000,0.000000,0.000000 +-3.0,92.760000,0.000000,0.000000 +-3.0,92.880000,0.000000,0.000000 +-3.0,93.000000,0.000000,0.000000 +-3.0,93.120000,0.000000,0.000000 +-3.0,93.240000,0.000000,0.000000 +-3.0,93.360000,0.000000,0.000000 +-3.0,93.480000,0.000000,0.000000 +-3.0,93.600000,0.000000,0.000000 +-3.0,93.720000,0.000000,0.000000 +-3.0,93.840000,0.000000,0.000000 +-3.0,93.960000,0.000000,0.000000 +-3.0,94.080000,0.000000,0.000000 +-3.0,94.200000,0.000000,0.000000 +-3.0,94.320000,0.000000,0.000000 +-3.0,94.440000,0.000000,0.000000 +-3.0,94.560000,0.000000,0.000000 +-3.0,94.680000,0.000000,0.000000 +-3.0,94.800000,0.000000,0.000000 +-3.0,94.920000,0.000000,0.000000 +-3.0,95.040000,0.000000,0.000000 +-3.0,95.160000,0.000000,0.000000 +-3.0,95.280000,0.000000,0.000000 +-3.0,95.400000,0.000000,0.000000 +-3.0,95.520000,0.000000,0.000000 +-3.0,95.640000,0.000000,0.000000 +-3.0,95.760000,0.000000,0.000000 +-3.0,95.880000,0.000000,0.000000 +-3.0,96.000000,0.000000,0.000000 +-3.0,96.120000,0.000000,0.000000 +-3.0,96.240000,0.000000,0.000000 +-3.0,96.360000,0.000000,0.000000 +-3.0,96.480000,0.000000,0.000000 +-3.0,96.600000,0.000000,0.000000 +-3.0,96.720000,0.000000,0.000000 +-3.0,96.840000,0.000000,0.000000 +-3.0,96.960000,0.000000,0.000000 +-3.0,97.080000,0.000000,0.000000 +-3.0,97.200000,0.000000,0.000000 +-3.0,97.320000,0.000000,0.000000 +-3.0,97.440000,0.000000,0.000000 +-3.0,97.560000,0.000000,0.000000 +-3.0,97.680000,0.000000,0.000000 +-3.0,97.800000,0.000000,0.000000 +-3.0,97.920000,0.000000,0.000000 +-3.0,98.040000,0.000000,0.000000 +-3.0,98.160000,0.000000,0.000000 +-3.0,98.280000,0.000000,0.000000 +-3.0,98.400000,0.000000,0.000000 +-3.0,98.520000,0.000000,0.000000 +-3.0,98.640000,0.000000,0.000000 +-3.0,98.760000,0.000000,0.000000 +-3.0,98.880000,0.000000,0.000000 +-3.0,99.000000,0.000000,0.000000 +-3.0,99.120000,0.000000,0.000000 +-3.0,99.240000,0.000000,0.000000 +-3.0,99.360000,0.000000,0.000000 +-3.0,99.480000,0.000000,0.000000 +-3.0,99.600000,0.000000,0.000000 +-3.0,99.720000,0.000000,0.000000 +-3.0,99.840000,0.000000,0.000000 +-3.0,99.960000,0.000000,0.000000 +-3.0,100.080000,0.000000,0.000000 +-3.0,100.200000,0.000000,0.000000 +-3.0,100.320000,0.000000,0.000000 +-3.0,100.440000,0.000000,0.000000 +-3.0,100.560000,0.000000,0.000000 +-3.0,100.680000,0.000000,0.000000 +-3.0,100.800000,0.000000,0.000000 +-3.0,100.920000,0.000000,0.000000 +-3.0,101.040000,0.000000,0.000000 +-3.0,101.160000,0.000000,0.000000 +-3.0,101.280000,0.000000,0.000000 +-3.0,101.400000,0.000000,0.000000 +-3.0,101.520000,0.000000,0.000000 +-3.0,101.640000,0.000000,0.000000 +-3.0,101.760000,0.000000,0.000000 +-3.0,101.880000,0.000000,0.000000 +-3.0,102.000000,0.000000,0.000000 +-3.0,102.120000,0.000000,0.000000 +-3.0,102.240000,0.000000,0.000000 +-3.0,102.360000,0.000000,0.000000 +-3.0,102.480000,0.000000,0.000000 +-3.0,102.600000,0.000000,0.000000 +-3.0,102.720000,0.000000,0.000000 +-3.0,102.840000,0.000000,0.000000 +-3.0,102.960000,0.000000,0.000000 +-3.0,103.080000,0.000000,0.000000 +-3.0,103.200000,0.000000,0.000000 +-3.0,103.320000,0.000000,0.000000 +-3.0,103.440000,0.000000,0.000000 +-3.0,103.560000,0.000000,0.000000 +-3.0,103.680000,0.000000,0.000000 +-3.0,103.800000,0.000000,0.000000 +-3.0,103.920000,0.000000,0.000000 +-3.0,104.040000,0.000000,0.000000 +-3.0,104.160000,0.000000,0.000000 +-3.0,104.280000,0.000000,0.000000 +-3.0,104.400000,0.000000,0.000000 +-3.0,104.520000,0.000000,0.000000 +-3.0,104.640000,0.000000,0.000000 +-3.0,104.760000,0.000000,0.000000 +-3.0,104.880000,0.000000,0.000000 +-3.0,105.000000,0.000000,0.000000 +-3.0,105.120000,0.000000,0.000000 +-3.0,105.240000,0.000000,0.000000 +-3.0,105.360000,0.000000,0.000000 +-3.0,105.480000,0.000000,0.000000 +-3.0,105.600000,0.000000,0.000000 +-3.0,105.720000,0.000000,0.000000 +-3.0,105.840000,0.000000,0.000000 +-3.0,105.960000,0.000000,0.000000 +-3.0,106.080000,0.000000,0.000000 +-3.0,106.200000,0.000000,0.000000 +-3.0,106.320000,0.000000,0.000000 +-3.0,106.440000,0.000000,0.000000 +-3.0,106.560000,0.000000,0.000000 +-3.0,106.680000,0.000000,0.000000 +-3.0,106.800000,0.000000,0.000000 +-3.0,106.920000,0.000000,0.000000 +-3.0,107.040000,0.000000,0.000000 +-3.0,107.160000,0.000000,0.000000 +-3.0,107.280000,0.000000,0.000000 +-3.0,107.400000,0.000000,0.000000 +-3.0,107.520000,0.000000,0.000000 +-3.0,107.640000,0.000000,0.000000 +-3.0,107.760000,0.000000,0.000000 +-3.0,107.880000,0.000000,0.000000 +-3.0,108.000000,0.000000,0.000000 +-3.0,108.120000,0.000000,0.000000 +-3.0,108.240000,0.000000,0.000000 +-3.0,108.360000,0.000000,0.000000 +-3.0,108.480000,0.000000,0.000000 +-3.0,108.600000,0.000000,0.000000 +-3.0,108.720000,0.000000,0.000000 +-3.0,108.840000,0.000000,0.000000 +-3.0,108.960000,0.000000,0.000000 +-3.0,109.080000,0.000000,0.000000 +-3.0,109.200000,0.000000,0.000000 +-3.0,109.320000,0.000000,0.000000 +-3.0,109.440000,0.000000,0.000000 +-3.0,109.560000,0.000000,0.000000 +-3.0,109.680000,0.000000,0.000000 +-3.0,109.800000,0.000000,0.000000 +-3.0,109.920000,0.000000,0.000000 +-3.0,110.040000,0.000000,0.000000 +-3.0,110.160000,0.000000,0.000000 +-3.0,110.280000,0.000000,0.000000 +-3.0,110.400000,0.000000,0.000000 +-3.0,110.520000,0.000000,0.000000 +-3.0,110.640000,0.000000,0.000000 +-3.0,110.760000,0.000000,0.000000 +-3.0,110.880000,0.000000,0.000000 +-3.0,111.000000,0.000000,0.000000 +-3.0,111.120000,0.000000,0.000000 +-3.0,111.240000,0.000000,0.000000 +-3.0,111.360000,0.000000,0.000000 +-3.0,111.480000,0.000000,0.000000 +-3.0,111.600000,0.000000,0.000000 +-3.0,111.720000,0.000000,0.000000 +-3.0,111.840000,0.000000,0.000000 +-3.0,111.960000,0.000000,0.000000 +-3.0,112.080000,0.000000,0.000000 +-3.0,112.200000,0.000000,0.000000 +-3.0,112.320000,0.000000,0.000000 +-3.0,112.440000,0.000000,0.000000 +-3.0,112.560000,0.000000,0.000000 +-3.0,112.680000,0.000000,0.000000 +-3.0,112.800000,0.000000,0.000000 +-3.0,112.920000,0.000000,0.000000 +-3.0,113.040000,0.000000,0.000000 +-3.0,113.160000,0.000000,0.000000 +-3.0,113.280000,0.000000,0.000000 +-3.0,113.400000,0.000000,0.000000 +-3.0,113.520000,0.000000,0.000000 +-3.0,113.640000,0.000000,0.000000 +-3.0,113.760000,0.000000,0.000000 +-3.0,113.880000,0.000000,0.000000 +-3.0,114.000000,0.000000,0.000000 +-3.0,114.120000,0.000000,0.000000 +-3.0,114.240000,0.000000,0.000000 +-3.0,114.360000,0.000000,0.000000 +-3.0,114.480000,0.000000,0.000000 +-3.0,114.600000,0.000000,0.000000 +-3.0,114.720000,0.000000,0.000000 +-3.0,114.840000,0.000000,0.000000 +-3.0,114.960000,0.000000,0.000000 +-3.0,115.080000,0.000000,0.000000 +-3.0,115.200000,0.000000,0.000000 +-3.0,115.320000,0.000000,0.000000 +-3.0,115.440000,0.000000,0.000000 +-3.0,115.560000,0.000000,0.000000 +-3.0,115.680000,0.000000,0.000000 +-3.0,115.800000,0.000000,0.000000 +-3.0,115.920000,0.000000,0.000000 +-3.0,116.040000,0.000000,0.000000 +-3.0,116.160000,0.000000,0.000000 +-3.0,116.280000,0.000000,0.000000 +-3.0,116.400000,0.000000,0.000000 +-3.0,116.520000,0.000000,0.000000 +-3.0,116.640000,0.000000,0.000000 +-3.0,116.760000,0.000000,0.000000 +-3.0,116.880000,0.000000,0.000000 +-3.0,117.000000,0.000000,0.000000 +-3.0,117.120000,0.000000,0.000000 +-3.0,117.240000,0.000000,0.000000 +-3.0,117.360000,0.000000,0.000000 +-3.0,117.480000,0.000000,0.000000 +-3.0,117.600000,0.000000,0.000000 +-3.0,117.720000,0.000000,0.000000 +-3.0,117.840000,0.000000,0.000000 +-3.0,117.960000,0.000000,0.000000 +-3.0,118.080000,0.000000,0.000000 +-3.0,118.200000,0.000000,0.000000 +-3.0,118.320000,0.000000,0.000000 +-3.0,118.440000,0.000000,0.000000 +-3.0,118.560000,0.000000,0.000000 +-3.0,118.680000,0.000000,0.000000 +-3.0,118.800000,0.000000,0.000000 +-3.0,118.920000,0.000000,0.000000 +-3.0,119.040000,0.000000,0.000000 +-3.0,119.160000,0.000000,0.000000 +-3.0,119.280000,0.000000,0.000000 +-3.0,119.400000,0.000000,0.000000 +-3.0,119.520000,0.000000,0.000000 +-3.0,119.640000,0.000000,0.000000 +-3.0,119.760000,0.000000,0.000000 +-3.0,119.880000,0.000000,0.000000 +-3.0,120.000000,0.000000,0.000000 +-3.0,120.120000,0.000000,0.000000 +-3.0,120.240000,0.000000,0.000000 +-3.0,120.360000,0.000000,0.000000 +-3.0,120.480000,0.000000,0.000000 +-3.0,120.600000,0.000000,0.000000 +-3.0,120.720000,0.000000,0.000000 +-3.0,120.840000,0.000000,0.000000 +-3.0,120.960000,0.000000,0.000000 +-3.0,121.080000,0.000000,0.000000 +-3.0,121.200000,0.000000,0.000000 +-3.0,121.320000,0.000000,0.000000 +-3.0,121.440000,0.000000,0.000000 +-3.0,121.560000,0.000000,0.000000 +-3.0,121.680000,0.000000,0.000000 +-3.0,121.800000,0.000000,0.000000 +-3.0,121.920000,0.000000,0.000000 +-3.0,122.040000,0.000000,0.000000 +-3.0,122.160000,0.000000,0.000000 +-3.0,122.280000,0.000000,0.000000 +-3.0,122.400000,0.000000,0.000000 +-3.0,122.520000,0.000000,0.000000 +-3.0,122.640000,0.000000,0.000000 +-3.0,122.760000,0.000000,0.000000 +-3.0,122.880000,0.000000,0.000000 +-3.0,123.000000,0.000000,0.000000 +-3.0,123.120000,0.000000,0.000000 +-3.0,123.240000,0.000000,0.000000 +-3.0,123.360000,0.000000,0.000000 +-3.0,123.480000,0.000000,0.000000 +-3.0,123.600000,0.000000,0.000000 +-3.0,123.720000,0.000000,0.000000 +-3.0,123.840000,0.000000,0.000000 +-3.0,123.960000,0.000000,0.000000 +-3.0,124.080000,0.000000,0.000000 +-3.0,124.200000,0.000000,0.000000 +-3.0,124.320000,0.000000,0.000000 +-3.0,124.440000,0.000000,0.000000 +-3.0,124.560000,0.000000,0.000000 +-3.0,124.680000,0.000000,0.000000 +-3.0,124.800000,0.000000,0.000000 +-3.0,124.920000,0.000000,0.000000 +-3.0,125.040000,0.000000,0.000000 +-3.0,125.160000,0.000000,0.000000 +-3.0,125.280000,0.000000,0.000000 +-3.0,125.400000,0.000000,0.000000 +-3.0,125.520000,0.000000,0.000000 +-3.0,125.640000,0.000000,0.000000 +-3.0,125.760000,0.000000,0.000000 +-3.0,125.880000,0.000000,0.000000 +-3.0,126.000000,0.000000,0.000000 +-3.0,126.120000,0.000000,0.000000 +-3.0,126.240000,0.000000,0.000000 +-3.0,126.360000,0.000000,0.000000 +-3.0,126.480000,0.000000,0.000000 +-3.0,126.600000,0.000000,0.000000 +-3.0,126.720000,0.000000,0.000000 +-3.0,126.840000,0.000000,0.000000 +-3.0,126.960000,0.000000,0.000000 +-3.0,127.080000,0.000000,0.000000 +-3.0,127.200000,0.000000,0.000000 +-3.0,127.320000,0.000000,0.000000 +-3.0,127.440000,0.000000,0.000000 +-3.0,127.560000,0.000000,0.000000 +-3.0,127.680000,0.000000,0.000000 +-3.0,127.800000,0.000000,0.000000 +-3.0,127.920000,0.000000,0.000000 +-3.0,128.040000,0.000000,0.000000 +-3.0,128.160000,0.000000,0.000000 +-3.0,128.280000,0.000000,0.000000 +-3.0,128.400000,0.000000,0.000000 +-3.0,128.520000,0.000000,0.000000 +-3.0,128.640000,0.000000,0.000000 +-3.0,128.760000,0.000000,0.000000 +-3.0,128.880000,0.000000,0.000000 +-3.0,129.000000,0.000000,0.000000 +-3.0,129.120000,0.000000,0.000000 +-3.0,129.240000,0.000000,0.000000 +-3.0,129.360000,0.000000,0.000000 +-3.0,129.480000,0.000000,0.000000 +-3.0,129.600000,0.000000,0.000000 +-3.0,129.720000,0.000000,0.000000 +-3.0,129.840000,0.000000,0.000000 +-3.0,129.960000,0.000000,0.000000 +-3.0,130.080000,0.000000,0.000000 +-3.0,130.200000,0.000000,0.000000 +-3.0,130.320000,0.000000,0.000000 +-3.0,130.440000,0.000000,0.000000 +-3.0,130.560000,0.000000,0.000000 +-3.0,130.680000,0.000000,0.000000 +-3.0,130.800000,0.000000,0.000000 +-3.0,130.920000,0.000000,0.000000 +-3.0,131.040000,0.000000,0.000000 +-3.0,131.160000,0.000000,0.000000 +-3.0,131.280000,0.000000,0.000000 +-3.0,131.400000,0.000000,0.000000 +-3.0,131.520000,0.000000,0.000000 +-3.0,131.640000,0.000000,0.000000 +-3.0,131.760000,0.000000,0.000000 +-3.0,131.880000,0.000000,0.000000 +-3.0,132.000000,0.000000,0.000000 +-3.0,132.120000,0.000000,0.000000 +-3.0,132.240000,0.000000,0.000000 +-3.0,132.360000,0.000000,0.000000 +-3.0,132.480000,0.000000,0.000000 +-3.0,132.600000,0.000000,0.000000 +-3.0,132.720000,0.000000,0.000000 +-3.0,132.840000,0.000000,0.000000 +-3.0,132.960000,0.000000,0.000000 +-3.0,133.080000,0.000000,0.000000 +-3.0,133.200000,0.000000,0.000000 +-3.0,133.320000,0.000000,0.000000 +-3.0,133.440000,0.000000,0.000000 +-3.0,133.560000,0.000000,0.000000 +-3.0,133.680000,0.000000,0.000000 +-3.0,133.800000,0.000000,0.000000 +-3.0,133.920000,0.000000,0.000000 +-3.0,134.040000,0.000000,0.000000 +-3.0,134.160000,0.000000,0.000000 +-3.0,134.280000,0.000000,0.000000 +-3.0,134.400000,0.000000,0.000000 +-3.0,134.520000,0.000000,0.000000 +-3.0,134.640000,0.000000,0.000000 +-3.0,134.760000,0.000000,0.000000 +-3.0,134.880000,0.000000,0.000000 +-3.0,135.000000,0.000000,0.000000 +-3.0,135.120000,0.000000,0.000000 +-3.0,135.240000,0.000000,0.000000 +-3.0,135.360000,0.000000,0.000000 +-3.0,135.480000,0.000000,0.000000 +-3.0,135.600000,0.000000,0.000000 +-3.0,135.720000,0.000000,0.000000 +-3.0,135.840000,0.000000,0.000000 +-3.0,135.960000,0.000000,0.000000 +-3.0,136.080000,0.000000,0.000000 +-3.0,136.200000,0.000000,0.000000 +-3.0,136.320000,0.000000,0.000000 +-3.0,136.440000,0.000000,0.000000 +-3.0,136.560000,0.000000,0.000000 +-3.0,136.680000,0.000000,0.000000 +-3.0,136.800000,0.000000,0.000000 +-3.0,136.920000,0.000000,0.000000 +-3.0,137.040000,0.000000,0.000000 +-3.0,137.160000,0.000000,0.000000 +-3.0,137.280000,0.000000,0.000000 +-3.0,137.400000,0.000000,0.000000 +-3.0,137.520000,0.000000,0.000000 +-3.0,137.640000,0.000000,0.000000 +-3.0,137.760000,0.000000,0.000000 +-3.0,137.880000,0.000000,0.000000 +-3.0,138.000000,0.000000,0.000000 +-3.0,138.120000,0.000000,0.000000 +-3.0,138.240000,0.000000,0.000000 +-3.0,138.360000,0.000000,0.000000 +-3.0,138.480000,0.000000,0.000000 +-3.0,138.600000,0.000000,0.000000 +-3.0,138.720000,0.000000,0.000000 +-3.0,138.840000,0.000000,0.000000 +-3.0,138.960000,0.000000,0.000000 +-3.0,139.080000,0.000000,0.000000 +-3.0,139.200000,0.000000,0.000000 +-3.0,139.320000,0.000000,0.000000 +-3.0,139.440000,0.000000,0.000000 +-3.0,139.560000,0.000000,0.000000 +-3.0,139.680000,0.000000,0.000000 +-3.0,139.800000,0.000000,0.000000 +-3.0,139.920000,0.000000,0.000000 +-3.0,140.040000,0.000000,0.000000 +-3.0,140.160000,0.000000,0.000000 +-3.0,140.280000,0.000000,0.000000 +-3.0,140.400000,0.000000,0.000000 +-3.0,140.520000,0.000000,0.000000 +-3.0,140.640000,0.000000,0.000000 +-3.0,140.760000,0.000000,0.000000 +-3.0,140.880000,0.000000,0.000000 +-3.0,141.000000,0.000000,0.000000 +-3.0,141.120000,0.000000,0.000000 +-3.0,141.240000,0.000000,0.000000 +-3.0,141.360000,0.000000,0.000000 +-3.0,141.480000,0.000000,0.000000 +-3.0,141.600000,0.000000,0.000000 +-3.0,141.720000,0.000000,0.000000 +-3.0,141.840000,0.000000,0.000000 +-3.0,141.960000,0.000000,0.000000 +-3.0,142.080000,0.000000,0.000000 +-3.0,142.200000,0.000000,0.000000 +-3.0,142.320000,0.000000,0.000000 +-3.0,142.440000,0.000000,0.000000 +-3.0,142.560000,0.000000,0.000000 +-3.0,142.680000,0.000000,0.000000 +-3.0,142.800000,0.000000,0.000000 +-3.0,142.920000,0.000000,0.000000 +-3.0,143.040000,0.000000,0.000000 +-3.0,143.160000,0.000000,0.000000 +-3.0,143.280000,0.000000,0.000000 +-3.0,143.400000,0.000000,0.000000 +-3.0,143.520000,0.000000,0.000000 +-3.0,143.640000,0.000000,0.000000 +-3.0,143.760000,0.000000,0.000000 +-3.0,143.880000,0.000000,0.000000 +-3.0,144.000000,0.000000,0.000000 +-3.0,144.120000,0.000000,0.000000 +-3.0,144.240000,0.000000,0.000000 +-3.0,144.360000,0.000000,0.000000 +-3.0,144.480000,0.000000,0.000000 +-3.0,144.600000,0.000000,0.000000 +-3.0,144.720000,0.000000,0.000000 +-3.0,144.840000,0.000000,0.000000 +-3.0,144.960000,0.000000,0.000000 +-3.0,145.080000,0.000000,0.000000 +-3.0,145.200000,0.000000,0.000000 +-3.0,145.320000,0.000000,0.000000 +-3.0,145.440000,0.000000,0.000000 +-3.0,145.560000,0.000000,0.000000 +-3.0,145.680000,0.000000,0.000000 +-3.0,145.800000,0.000000,0.000000 +-3.0,145.920000,0.000000,0.000000 +-3.0,146.040000,0.000000,0.000000 +-3.0,146.160000,0.000000,0.000000 +-3.0,146.280000,0.000000,0.000000 +-3.0,146.400000,0.000000,0.000000 +-3.0,146.520000,0.000000,0.000000 +-3.0,146.640000,0.000000,0.000000 +-3.0,146.760000,0.000000,0.000000 +-3.0,146.880000,0.000000,0.000000 +-3.0,147.000000,0.000000,0.000000 +-3.0,147.120000,0.000000,0.000000 +-3.0,147.240000,0.000000,0.000000 +-3.0,147.360000,0.000000,0.000000 +-3.0,147.480000,0.000000,0.000000 +-3.0,147.600000,0.000000,0.000000 +-3.0,147.720000,0.000000,0.000000 +-3.0,147.840000,0.000000,0.000000 +-3.0,147.960000,0.000000,0.000000 +-3.0,148.080000,0.000000,0.000000 +-3.0,148.200000,0.000000,0.000000 +-3.0,148.320000,0.000000,0.000000 +-3.0,148.440000,0.000000,0.000000 +-3.0,148.560000,0.000000,0.000000 +-3.0,148.680000,0.000000,0.000000 +-3.0,148.800000,0.000000,0.000000 +-3.0,148.920000,0.000000,0.000000 +-3.0,149.040000,0.000000,0.000000 +-3.0,149.160000,0.000000,0.000000 +-3.0,149.280000,0.000000,0.000000 +-3.0,149.400000,0.000000,0.000000 +-3.0,149.520000,0.000000,0.000000 +-3.0,149.640000,0.000000,0.000000 +-3.0,149.760000,0.000000,0.000000 +-3.0,149.880000,0.000000,0.000000 +-3.0,150.000000,0.000000,0.000000 +-3.0,150.120000,0.000000,0.000000 +-3.0,150.240000,0.000000,0.000000 +-3.0,150.360000,0.000000,0.000000 +-3.0,150.480000,0.000000,0.000000 +-3.0,150.600000,0.000000,0.000000 +-3.0,150.720000,0.000000,0.000000 +-3.0,150.840000,0.000000,0.000000 +-3.0,150.960000,0.000000,0.000000 +-3.0,151.080000,0.000000,0.000000 +-3.0,151.200000,0.000000,0.000000 +-3.0,151.320000,0.000000,0.000000 +-3.0,151.440000,0.000000,0.000000 +-3.0,151.560000,0.000000,0.000000 +-3.0,151.680000,0.000000,0.000000 +-3.0,151.800000,0.000000,0.000000 +-3.0,151.920000,0.000000,0.000000 +-3.0,152.040000,0.000000,0.000000 +-3.0,152.160000,0.000000,0.000000 +-3.0,152.280000,0.000000,0.000000 +-3.0,152.400000,0.000000,0.000000 +-3.0,152.520000,0.000000,0.000000 +-3.0,152.640000,0.000000,0.000000 +-3.0,152.760000,0.000000,0.000000 +-3.0,152.880000,0.000000,0.000000 +-3.0,153.000000,0.000000,0.000000 +-3.0,153.120000,0.000000,0.000000 +-3.0,153.240000,0.000000,0.000000 +-3.0,153.360000,0.000000,0.000000 +-3.0,153.480000,0.000000,0.000000 +-3.0,153.600000,0.000000,0.000000 +-3.0,153.720000,0.000000,0.000000 +-3.0,153.840000,0.000000,0.000000 +-3.0,153.960000,0.000000,0.000000 +-3.0,154.080000,0.000000,0.000000 +-3.0,154.200000,0.000000,0.000000 +-3.0,154.320000,0.000000,0.000000 +-3.0,154.440000,0.000000,0.000000 +-3.0,154.560000,0.000000,0.000000 +-3.0,154.680000,0.000000,0.000000 +-3.0,154.800000,0.000000,0.000000 +-3.0,154.920000,0.000000,0.000000 +-3.0,155.040000,0.000000,0.000000 +-3.0,155.160000,0.000000,0.000000 +-3.0,155.280000,0.000000,0.000000 +-3.0,155.400000,0.000000,0.000000 +-3.0,155.520000,0.000000,0.000000 +-3.0,155.640000,0.000000,0.000000 +-3.0,155.760000,0.000000,0.000000 +-3.0,155.880000,0.000000,0.000000 +-3.0,156.000000,0.000000,0.000000 +-3.0,156.120000,0.000000,0.000000 +-3.0,156.240000,0.000000,0.000000 +-3.0,156.360000,0.000000,0.000000 +-3.0,156.480000,0.000000,0.000000 +-3.0,156.600000,0.000000,0.000000 +-3.0,156.720000,0.000000,0.000000 +-3.0,156.840000,0.000000,0.000000 +-3.0,156.960000,0.000000,0.000000 +-3.0,157.080000,0.000000,0.000000 +-3.0,157.200000,0.000000,0.000000 +-3.0,157.320000,0.000000,0.000000 +-3.0,157.440000,0.000000,0.000000 +-3.0,157.560000,0.000000,0.000000 +-3.0,157.680000,0.000000,0.000000 +-3.0,157.800000,0.000000,0.000000 +-3.0,157.920000,0.000000,0.000000 +-3.0,158.040000,0.000000,0.000000 +-3.0,158.160000,0.000000,0.000000 +-3.0,158.280000,0.000000,0.000000 +-3.0,158.400000,0.000000,0.000000 +-3.0,158.520000,0.000000,0.000000 +-3.0,158.640000,0.000000,0.000000 +-3.0,158.760000,0.000000,0.000000 +-3.0,158.880000,0.000000,0.000000 +-3.0,159.000000,0.000000,0.000000 +-3.0,159.120000,0.000000,0.000000 +-3.0,159.240000,0.000000,0.000000 +-3.0,159.360000,0.000000,0.000000 +-3.0,159.480000,0.000000,0.000000 +-3.0,159.600000,0.000000,0.000000 +-3.0,159.720000,0.000000,0.000000 +-3.0,159.840000,0.000000,0.000000 +-3.0,159.960000,0.000000,0.000000 +-3.0,160.080000,0.000000,0.000000 +-3.0,160.200000,0.000000,0.000000 +-3.0,160.320000,0.000000,0.000000 +-3.0,160.440000,0.000000,0.000000 +-3.0,160.560000,0.000000,0.000000 +-3.0,160.680000,0.000000,0.000000 +-3.0,160.800000,0.000000,0.000000 +-3.0,160.920000,0.000000,0.000000 +-3.0,161.040000,0.000000,0.000000 +-3.0,161.160000,0.000000,0.000000 +-3.0,161.280000,0.000000,0.000000 +-3.0,161.400000,0.000000,0.000000 +-3.0,161.520000,0.000000,0.000000 +-3.0,161.640000,0.000000,0.000000 +-3.0,161.760000,0.000000,0.000000 +-3.0,161.880000,0.000000,0.000000 +-3.0,162.000000,0.000000,0.000000 +-3.0,162.120000,0.000000,0.000000 +-3.0,162.240000,0.000000,0.000000 +-3.0,162.360000,0.000000,0.000000 +-3.0,162.480000,0.000000,0.000000 +-3.0,162.600000,0.000000,0.000000 +-3.0,162.720000,0.000000,0.000000 +-3.0,162.840000,0.000000,0.000000 +-3.0,162.960000,0.000000,0.000000 +-3.0,163.080000,0.000000,0.000000 +-3.0,163.200000,0.000000,0.000000 +-3.0,163.320000,0.000000,0.000000 +-3.0,163.440000,0.000000,0.000000 +-3.0,163.560000,0.000000,0.000000 +-3.0,163.680000,0.000000,0.000000 +-3.0,163.800000,0.000000,0.000000 +-3.0,163.920000,0.000000,0.000000 +-3.0,164.040000,0.000000,0.000000 +-3.0,164.160000,0.000000,0.000000 +-3.0,164.280000,0.000000,0.000000 +-3.0,164.400000,0.000000,0.000000 +-3.0,164.520000,0.000000,0.000000 +-3.0,164.640000,0.000000,0.000000 +-3.0,164.760000,0.000000,0.000000 +-3.0,164.880000,0.000000,0.000000 +-3.0,165.000000,0.000000,0.000000 +-3.0,165.120000,0.000000,0.000000 +-3.0,165.240000,0.000000,0.000000 +-3.0,165.360000,0.000000,0.000000 +-3.0,165.480000,0.000000,0.000000 +-3.0,165.600000,0.000000,0.000000 +-3.0,165.720000,0.000000,0.000000 +-3.0,165.840000,0.000000,0.000000 +-3.0,165.960000,0.000000,0.000000 +-3.0,166.080000,0.000000,0.000000 +-3.0,166.200000,0.000000,0.000000 +-3.0,166.320000,0.000000,0.000000 +-3.0,166.440000,0.000000,0.000000 +-3.0,166.560000,0.000000,0.000000 +-3.0,166.680000,0.000000,0.000000 +-3.0,166.800000,0.000000,0.000000 +-3.0,166.920000,0.000000,0.000000 +-3.0,167.040000,0.000000,0.000000 +-3.0,167.160000,0.000000,0.000000 +-3.0,167.280000,0.000000,0.000000 +-3.0,167.400000,0.000000,0.000000 +-3.0,167.520000,0.000000,0.000000 +-3.0,167.640000,0.000000,0.000000 +-3.0,167.760000,0.000000,0.000000 +-3.0,167.880000,0.000000,0.000000 +-3.0,168.000000,0.000000,0.000000 +-3.0,168.120000,0.000000,0.000000 +-3.0,168.240000,0.000000,0.000000 +-3.0,168.360000,0.000000,0.000000 +-3.0,168.480000,0.000000,0.000000 +-3.0,168.600000,0.000000,0.000000 +-3.0,168.720000,0.000000,0.000000 +-3.0,168.840000,0.000000,0.000000 +-3.0,168.960000,0.000000,0.000000 +-3.0,169.080000,0.000000,0.000000 +-3.0,169.200000,0.000000,0.000000 +-3.0,169.320000,0.000000,0.000000 +-3.0,169.440000,0.000000,0.000000 +-3.0,169.560000,0.000000,0.000000 +-3.0,169.680000,0.000000,0.000000 +-3.0,169.800000,0.000000,0.000000 +-3.0,169.920000,0.000000,0.000000 +-3.0,170.040000,0.000000,0.000000 +-3.0,170.160000,0.000000,0.000000 +-3.0,170.280000,0.000000,0.000000 +-3.0,170.400000,0.000000,0.000000 +-3.0,170.520000,0.000000,0.000000 +-3.0,170.640000,0.000000,0.000000 +-3.0,170.760000,0.000000,0.000000 +-3.0,170.880000,0.000000,0.000000 +-3.0,171.000000,0.000000,0.000000 +-3.0,171.120000,0.000000,0.000000 +-3.0,171.240000,0.000000,0.000000 +-3.0,171.360000,0.000000,0.000000 +-3.0,171.480000,0.000000,0.000000 +-3.0,171.600000,0.000000,0.000000 +-3.0,171.720000,0.000000,0.000000 +-3.0,171.840000,0.000000,0.000000 +-3.0,171.960000,0.000000,0.000000 +-3.0,172.080000,0.000000,0.000000 +-3.0,172.200000,0.000000,0.000000 +-3.0,172.320000,0.000000,0.000000 +-3.0,172.440000,0.000000,0.000000 +-3.0,172.560000,0.000000,0.000000 +-3.0,172.680000,0.000000,0.000000 +-3.0,172.800000,0.000000,0.000000 +-3.0,172.920000,0.000000,0.000000 +-3.0,173.040000,0.000000,0.000000 +-3.0,173.160000,0.000000,0.000000 +-3.0,173.280000,0.000000,0.000000 +-3.0,173.400000,0.000000,0.000000 +-3.0,173.520000,0.000000,0.000000 +-3.0,173.640000,0.000000,0.000000 +-3.0,173.760000,0.000000,0.000000 +-3.0,173.880000,0.000000,0.000000 +-3.0,174.000000,0.000000,0.000000 +-3.0,174.120000,0.000000,0.000000 +-3.0,174.240000,0.000000,0.000000 +-3.0,174.360000,0.000000,0.000000 +-3.0,174.480000,0.000000,0.000000 +-3.0,174.600000,0.000000,0.000000 +-3.0,174.720000,0.000000,0.000000 +-3.0,174.840000,0.000000,0.000000 +-3.0,174.960000,0.000000,0.000000 +-3.0,175.080000,0.000000,0.000000 +-3.0,175.200000,0.000000,0.000000 +-3.0,175.320000,0.000000,0.000000 +-3.0,175.440000,0.000000,0.000000 +-3.0,175.560000,0.000000,0.000000 +-3.0,175.680000,0.000000,0.000000 +-3.0,175.800000,0.000000,0.000000 +-3.0,175.920000,0.000000,0.000000 +-3.0,176.040000,0.000000,0.000000 +-3.0,176.160000,0.000000,0.000000 +-3.0,176.280000,0.000000,0.000000 +-3.0,176.400000,0.000000,0.000000 +-3.0,176.520000,0.000000,0.000000 +-3.0,176.640000,0.000000,0.000000 +-3.0,176.760000,0.000000,0.000000 +-3.0,176.880000,0.000000,0.000000 +-3.0,177.000000,0.000000,0.000000 +-3.0,177.120000,0.000000,0.000000 +-3.0,177.240000,0.000000,0.000000 +-3.0,177.360000,0.000000,0.000000 +-3.0,177.480000,0.000000,0.000000 +-3.0,177.600000,0.000000,0.000000 +-3.0,177.720000,0.000000,0.000000 +-3.0,177.840000,0.000000,0.000000 +-3.0,177.960000,0.000000,0.000000 +-3.0,178.080000,0.000000,0.000000 +-3.0,178.200000,0.000000,0.000000 +-3.0,178.320000,0.000000,0.000000 +-3.0,178.440000,0.000000,0.000000 +-3.0,178.560000,0.000000,0.000000 +-3.0,178.680000,0.000000,0.000000 +-3.0,178.800000,0.000000,0.000000 +-3.0,178.920000,0.000000,0.000000 +-3.0,179.040000,0.000000,0.000000 +-3.0,179.160000,0.000000,0.000000 +-3.0,179.280000,0.000000,0.000000 +-3.0,179.400000,0.000000,0.000000 +-3.0,179.520000,0.000000,0.000000 +-3.0,179.640000,0.000000,0.000000 +-3.0,179.760000,0.000000,0.000000 +-3.0,179.880000,0.000000,0.000000 +-3.0,180.000000,0.000000,0.000000 +-3.0,180.120000,0.000000,0.000000 +-3.0,180.240000,0.000000,0.000000 +-3.0,180.360000,0.000000,0.000000 +-3.0,180.480000,0.000000,0.000000 +-3.0,180.600000,0.000000,0.000000 +-3.0,180.720000,0.000000,0.000000 +-3.0,180.840000,0.000000,0.000000 +-3.0,180.960000,0.000000,0.000000 +-3.0,181.080000,0.000000,0.000000 +-3.0,181.200000,0.000000,0.000000 +-3.0,181.320000,0.000000,0.000000 +-3.0,181.440000,0.000000,0.000000 +-3.0,181.560000,0.000000,0.000000 +-3.0,181.680000,0.000000,0.000000 +-3.0,181.800000,0.000000,0.000000 +-3.0,181.920000,0.000000,0.000000 +-3.0,182.040000,0.000000,0.000000 +-3.0,182.160000,0.000000,0.000000 +-3.0,182.280000,0.000000,0.000000 +-3.0,182.400000,0.000000,0.000000 +-3.0,182.520000,0.000000,0.000000 +-3.0,182.640000,0.000000,0.000000 +-3.0,182.760000,0.000000,0.000000 +-3.0,182.880000,0.000000,0.000000 +-3.0,183.000000,0.000000,0.000000 +-3.0,183.120000,0.000000,0.000000 +-3.0,183.240000,0.000000,0.000000 +-3.0,183.360000,0.000000,0.000000 +-3.0,183.480000,0.000000,0.000000 +-3.0,183.600000,0.000000,0.000000 +-3.0,183.720000,0.000000,0.000000 +-3.0,183.840000,0.000000,0.000000 +-3.0,183.960000,0.000000,0.000000 +-3.0,184.080000,0.000000,0.000000 +-3.0,184.200000,0.000000,0.000000 +-3.0,184.320000,0.000000,0.000000 +-3.0,184.440000,0.000000,0.000000 +-3.0,184.560000,0.000000,0.000000 +-3.0,184.680000,0.000000,0.000000 +-3.0,184.800000,0.000000,0.000000 +-3.0,184.920000,0.000000,0.000000 +-3.0,185.040000,0.000000,0.000000 +-3.0,185.160000,0.000000,0.000000 +-3.0,185.280000,0.000000,0.000000 +-3.0,185.400000,0.000000,0.000000 +-3.0,185.520000,0.000000,0.000000 +-3.0,185.640000,0.000000,0.000000 +-3.0,185.760000,0.000000,0.000000 +-3.0,185.880000,0.000000,0.000000 +-3.0,186.000000,0.000000,0.000000 +-3.0,186.120000,0.000000,0.000000 +-3.0,186.240000,0.000000,0.000000 +-3.0,186.360000,0.000000,0.000000 +-3.0,186.480000,0.000000,0.000000 +-3.0,186.600000,0.000000,0.000000 +-3.0,186.720000,0.000000,0.000000 +-3.0,186.840000,0.000000,0.000000 +-3.0,186.960000,0.000000,0.000000 +-3.0,187.080000,0.000000,0.000000 +-3.0,187.200000,0.000000,0.000000 +-3.0,187.320000,0.000000,0.000000 +-3.0,187.440000,0.000000,0.000000 +-3.0,187.560000,0.000000,0.000000 +-3.0,187.680000,0.000000,0.000000 +-3.0,187.800000,0.000000,0.000000 +-3.0,187.920000,0.000000,0.000000 +-3.0,188.040000,0.000000,0.000000 +-3.0,188.160000,0.000000,0.000000 +-3.0,188.280000,0.000000,0.000000 +-3.0,188.400000,0.000000,0.000000 +-3.0,188.520000,0.000000,0.000000 +-3.0,188.640000,0.000000,0.000000 +-3.0,188.760000,0.000000,0.000000 +-3.0,188.880000,0.000000,0.000000 +-3.0,189.000000,0.000000,0.000000 +-3.0,189.120000,0.000000,0.000000 +-3.0,189.240000,0.000000,0.000000 +-3.0,189.360000,0.000000,0.000000 +-3.0,189.480000,0.000000,0.000000 +-3.0,189.600000,0.000000,0.000000 +-3.0,189.720000,0.000000,0.000000 +-3.0,189.840000,0.000000,0.000000 +-3.0,189.960000,0.000000,0.000000 +-3.0,190.080000,0.000000,0.000000 +-3.0,190.200000,0.000000,0.000000 +-3.0,190.320000,0.000000,0.000000 +-3.0,190.440000,0.000000,0.000000 +-3.0,190.560000,0.000000,0.000000 +-3.0,190.680000,0.000000,0.000000 +-3.0,190.800000,0.000000,0.000000 +-3.0,190.920000,0.000000,0.000000 +-3.0,191.040000,0.000000,0.000000 +-3.0,191.160000,0.000000,0.000000 +-3.0,191.280000,0.000000,0.000000 +-3.0,191.400000,0.000000,0.000000 +-3.0,191.520000,0.000000,0.000000 +-3.0,191.640000,0.000000,0.000000 +-3.0,191.760000,0.000000,0.000000 +-3.0,191.880000,0.000000,0.000000 +-3.0,192.000000,0.000000,0.000000 +-3.0,192.120000,0.000000,0.000000 +-3.0,192.240000,0.000000,0.000000 +-3.0,192.360000,0.000000,0.000000 +-3.0,192.480000,0.000000,0.000000 +-3.0,192.600000,0.000000,0.000000 +-3.0,192.720000,0.000000,0.000000 +-3.0,192.840000,0.000000,0.000000 +-3.0,192.960000,0.000000,0.000000 +-3.0,193.080000,0.000000,0.000000 +-3.0,193.200000,0.000000,0.000000 +-3.0,193.320000,0.000000,0.000000 +-3.0,193.440000,0.000000,0.000000 +-3.0,193.560000,0.000000,0.000000 +-3.0,193.680000,0.000000,0.000000 +-3.0,193.800000,0.000000,0.000000 +-3.0,193.920000,0.000000,0.000000 +-3.0,194.040000,0.000000,0.000000 +-3.0,194.160000,0.000000,0.000000 +-3.0,194.280000,0.000000,0.000000 +-3.0,194.400000,0.000000,0.000000 +-3.0,194.520000,0.000000,0.000000 +-3.0,194.640000,0.000000,0.000000 +-3.0,194.760000,0.000000,0.000000 +-3.0,194.880000,0.000000,0.000000 +-3.0,195.000000,0.000000,0.000000 +-3.0,195.120000,0.000000,0.000000 +-3.0,195.240000,0.000000,0.000000 +-3.0,195.360000,0.000000,0.000000 +-3.0,195.480000,0.000000,0.000000 +-3.0,195.600000,0.000000,0.000000 +-3.0,195.720000,0.000000,0.000000 +-3.0,195.840000,0.000000,0.000000 +-3.0,195.960000,0.000000,0.000000 +-3.0,196.080000,0.000000,0.000000 +-3.0,196.200000,0.000000,0.000000 +-3.0,196.320000,0.000000,0.000000 +-3.0,196.440000,0.000000,0.000000 +-3.0,196.560000,0.000000,0.000000 +-3.0,196.680000,0.000000,0.000000 +-3.0,196.800000,0.000000,0.000000 +-3.0,196.920000,0.000000,0.000000 +-3.0,197.040000,0.000000,0.000000 +-3.0,197.160000,0.000000,0.000000 +-3.0,197.280000,0.000000,0.000000 +-3.0,197.400000,0.000000,0.000000 +-3.0,197.520000,0.000000,0.000000 +-3.0,197.640000,0.000000,0.000000 +-3.0,197.760000,0.000000,0.000000 +-3.0,197.880000,0.000000,0.000000 +-3.0,198.000000,0.000000,0.000000 +-3.0,198.120000,0.000000,0.000000 +-3.0,198.240000,0.000000,0.000000 +-3.0,198.360000,0.000000,0.000000 +-3.0,198.480000,0.000000,0.000000 +-3.0,198.600000,0.000000,0.000000 +-3.0,198.720000,0.000000,0.000000 +-3.0,198.840000,0.000000,0.000000 +-3.0,198.960000,0.000000,0.000000 +-3.0,199.080000,0.000000,0.000000 +-3.0,199.200000,0.000000,0.000000 +-3.0,199.320000,0.000000,0.000000 +-3.0,199.440000,0.000000,0.000000 +-3.0,199.560000,0.000000,0.000000 +-3.0,199.680000,0.000000,0.000000 +-3.0,199.800000,0.000000,0.000000 +-3.0,199.920000,0.000000,0.000000 +-3.0,200.040000,0.000000,0.000000 +-3.0,200.160000,0.000000,0.000000 +-3.0,200.280000,0.000000,0.000000 +-3.0,200.400000,0.000000,0.000000 +-3.0,200.520000,0.000000,0.000000 +-3.0,200.640000,0.000000,0.000000 +-3.0,200.760000,0.000000,0.000000 +-3.0,200.880000,0.000000,0.000000 +-3.0,201.000000,0.000000,0.000000 +-3.0,201.120000,0.000000,0.000000 +-3.0,201.240000,0.000000,0.000000 +-3.0,201.360000,0.000000,0.000000 +-3.0,201.480000,0.000000,0.000000 +-3.0,201.600000,0.000000,0.000000 +-3.0,201.720000,0.000000,0.000000 +-3.0,201.840000,0.000000,0.000000 +-3.0,201.960000,0.000000,0.000000 +-3.0,202.080000,0.000000,0.000000 +-3.0,202.200000,0.000000,0.000000 +-3.0,202.320000,0.000000,0.000000 +-3.0,202.440000,0.000000,0.000000 +-3.0,202.560000,0.000000,0.000000 +-3.0,202.680000,0.000000,0.000000 +-3.0,202.800000,0.000000,0.000000 +-3.0,202.920000,0.000000,0.000000 +-3.0,203.040000,0.000000,0.000000 +-3.0,203.160000,0.000000,0.000000 +-3.0,203.280000,0.000000,0.000000 +-3.0,203.400000,0.000000,0.000000 +-3.0,203.520000,0.000000,0.000000 +-3.0,203.640000,0.000000,0.000000 +-3.0,203.760000,0.000000,0.000000 +-3.0,203.880000,0.000000,0.000000 +-3.0,204.000000,0.000000,0.000000 +-3.0,204.120000,0.000000,0.000000 +-3.0,204.240000,0.000000,0.000000 +-3.0,204.360000,0.000000,0.000000 +-3.0,204.480000,0.000000,0.000000 +-3.0,204.600000,0.000000,0.000000 +-3.0,204.720000,0.000000,0.000000 +-3.0,204.840000,0.000000,0.000000 +-3.0,204.960000,0.000000,0.000000 +-3.0,205.080000,0.000000,0.000000 +-3.0,205.200000,0.000000,0.000000 +-3.0,205.320000,0.000000,0.000000 +-3.0,205.440000,0.000000,0.000000 +-3.0,205.560000,0.000000,0.000000 +-3.0,205.680000,0.000000,0.000000 +-3.0,205.800000,0.000000,0.000000 +-3.0,205.920000,0.000000,0.000000 +-3.0,206.040000,0.000000,0.000000 +-3.0,206.160000,0.000000,0.000000 +-3.0,206.280000,0.000000,0.000000 +-3.0,206.400000,0.000000,0.000000 +-3.0,206.520000,0.000000,0.000000 +-3.0,206.640000,0.000000,0.000000 +-3.0,206.760000,0.000000,0.000000 +-3.0,206.880000,0.000000,0.000000 +-3.0,207.000000,0.000000,0.000000 +-3.0,207.120000,0.000000,0.000000 +-3.0,207.240000,0.000000,0.000000 +-3.0,207.360000,0.000000,0.000000 +-3.0,207.480000,0.000000,0.000000 +-3.0,207.600000,0.000000,0.000000 +-3.0,207.720000,0.000000,0.000000 +-3.0,207.840000,0.000000,0.000000 +-3.0,207.960000,0.000000,0.000000 +-3.0,208.080000,0.000000,0.000000 +-3.0,208.200000,0.000000,0.000000 +-3.0,208.320000,0.000000,0.000000 +-3.0,208.440000,0.000000,0.000000 +-3.0,208.560000,0.000000,0.000000 +-3.0,208.680000,0.000000,0.000000 +-3.0,208.800000,0.000000,0.000000 +-3.0,208.920000,0.000000,0.000000 +-3.0,209.040000,0.000000,0.000000 +-3.0,209.160000,0.000000,0.000000 +-3.0,209.280000,0.000000,0.000000 +-3.0,209.400000,0.000000,0.000000 +-3.0,209.520000,0.000000,0.000000 +-3.0,209.640000,0.000000,0.000000 +-3.0,209.760000,0.000000,0.000000 +-3.0,209.880000,0.000000,0.000000 +-3.0,210.000000,0.000000,0.000000 +-3.0,210.120000,0.000000,0.000000 +-3.0,210.240000,0.000000,0.000000 +-3.0,210.360000,0.000000,0.000000 +-3.0,210.480000,0.000000,0.000000 +-3.0,210.600000,0.000000,0.000000 +-3.0,210.720000,0.000000,0.000000 +-3.0,210.840000,0.000000,0.000000 +-3.0,210.960000,0.000000,0.000000 +-3.0,211.080000,0.000000,0.000000 +-3.0,211.200000,0.000000,0.000000 +-3.0,211.320000,0.000000,0.000000 +-3.0,211.440000,0.000000,0.000000 +-3.0,211.560000,0.000000,0.000000 +-3.0,211.680000,0.000000,0.000000 +-3.0,211.800000,0.000000,0.000000 +-3.0,211.920000,0.000000,0.000000 +-3.0,212.040000,0.000000,0.000000 +-3.0,212.160000,0.000000,0.000000 +-3.0,212.280000,0.000000,0.000000 +-3.0,212.400000,0.000000,0.000000 +-3.0,212.520000,0.000000,0.000000 +-3.0,212.640000,0.000000,0.000000 +-3.0,212.760000,0.000000,0.000000 +-3.0,212.880000,0.000000,0.000000 +-3.0,213.000000,0.000000,0.000000 +-3.0,213.120000,0.000000,0.000000 +-3.0,213.240000,0.000000,0.000000 +-3.0,213.360000,0.000000,0.000000 +-3.0,213.480000,0.000000,0.000000 +-3.0,213.600000,0.000000,0.000000 +-3.0,213.720000,0.000000,0.000000 +-3.0,213.840000,0.000000,0.000000 +-3.0,213.960000,0.000000,0.000000 +-3.0,214.080000,0.000000,0.000000 +-3.0,214.200000,0.000000,0.000000 +-3.0,214.320000,0.000000,0.000000 +-3.0,214.440000,0.000000,0.000000 +-3.0,214.560000,0.000000,0.000000 +-3.0,214.680000,0.000000,0.000000 +-3.0,214.800000,0.000000,0.000000 +-3.0,214.920000,0.000000,0.000000 +-3.0,215.040000,0.000000,0.000000 +-3.0,215.160000,0.000000,0.000000 +-3.0,215.280000,0.000000,0.000000 +-3.0,215.400000,0.000000,0.000000 +-3.0,215.520000,0.000000,0.000000 +-3.0,215.640000,0.000000,0.000000 +-3.0,215.760000,0.000000,0.000000 +-3.0,215.880000,0.000000,0.000000 +-3.0,216.000000,0.000000,0.000000 +-3.0,216.120000,0.000000,0.000000 +-3.0,216.240000,0.000000,0.000000 +-3.0,216.360000,0.000000,0.000000 +-3.0,216.480000,0.000000,0.000000 +-3.0,216.600000,0.000000,0.000000 +-3.0,216.720000,0.000000,0.000000 +-3.0,216.840000,0.000000,0.000000 +-3.0,216.960000,0.000000,0.000000 +-3.0,217.080000,0.000000,0.000000 +-3.0,217.200000,0.000000,0.000000 +-3.0,217.320000,0.000000,0.000000 +-3.0,217.440000,0.000000,0.000000 +-3.0,217.560000,0.000000,0.000000 +-3.0,217.680000,0.000000,0.000000 +-3.0,217.800000,0.000000,0.000000 +-3.0,217.920000,0.000000,0.000000 +-3.0,218.040000,0.000000,0.000000 +-3.0,218.160000,0.000000,0.000000 +-3.0,218.280000,0.000000,0.000000 +-3.0,218.400000,0.000000,0.000000 +-3.0,218.520000,0.000000,0.000000 +-3.0,218.640000,0.000000,0.000000 +-3.0,218.760000,0.000000,0.000000 +-3.0,218.880000,0.000000,0.000000 +-3.0,219.000000,0.000000,0.000000 +-3.0,219.120000,0.000000,0.000000 +-3.0,219.240000,0.000000,0.000000 +-3.0,219.360000,0.000000,0.000000 +-3.0,219.480000,0.000000,0.000000 +-3.0,219.600000,0.000000,0.000000 +-3.0,219.720000,0.000000,0.000000 +-3.0,219.840000,0.000000,0.000000 +-3.0,219.960000,0.000000,0.000000 +-3.0,220.080000,0.000000,0.000000 +-3.0,220.200000,0.000000,0.000000 +-3.0,220.320000,0.000000,0.000000 +-3.0,220.440000,0.000000,0.000000 +-3.0,220.560000,0.000000,0.000000 +-3.0,220.680000,0.000000,0.000000 +-3.0,220.800000,0.000000,0.000000 +-3.0,220.920000,0.000000,0.000000 +-3.0,221.040000,0.000000,0.000000 +-3.0,221.160000,0.000000,0.000000 +-3.0,221.280000,0.000000,0.000000 +-3.0,221.400000,0.000000,0.000000 +-3.0,221.520000,0.000000,0.000000 +-3.0,221.640000,0.000000,0.000000 +-3.0,221.760000,0.000000,0.000000 +-3.0,221.880000,0.000000,0.000000 +-3.0,222.000000,0.000000,0.000000 +-3.0,222.120000,0.000000,0.000000 +-3.0,222.240000,0.000000,0.000000 +-3.0,222.360000,0.000000,0.000000 +-3.0,222.480000,0.000000,0.000000 +-3.0,222.600000,0.000000,0.000000 +-3.0,222.720000,0.000000,0.000000 +-3.0,222.840000,0.000000,0.000000 +-3.0,222.960000,0.000000,0.000000 +-3.0,223.080000,0.000000,0.000000 +-3.0,223.200000,0.000000,0.000000 +-3.0,223.320000,0.000000,0.000000 +-3.0,223.440000,0.000000,0.000000 +-3.0,223.560000,0.000000,0.000000 +-3.0,223.680000,0.000000,0.000000 +-3.0,223.800000,0.000000,0.000000 +-3.0,223.920000,0.000000,0.000000 +-3.0,224.040000,0.000000,0.000000 +-3.0,224.160000,0.000000,0.000000 +-3.0,224.280000,0.000000,0.000000 +-3.0,224.400000,0.000000,0.000000 +-3.0,224.520000,0.000000,0.000000 +-3.0,224.640000,0.000000,0.000000 +-3.0,224.760000,0.000000,0.000000 +-3.0,224.880000,0.000000,0.000000 +-3.0,225.000000,0.000000,0.000000 +-3.0,225.120000,0.000000,0.000000 +-3.0,225.240000,0.000000,0.000000 +-3.0,225.360000,0.000000,0.000000 +-3.0,225.480000,0.000000,0.000000 +-3.0,225.600000,0.000000,0.000000 +-3.0,225.720000,0.000000,0.000000 +-3.0,225.840000,0.000000,0.000000 +-3.0,225.960000,0.000000,0.000000 +-3.0,226.080000,0.000000,0.000000 +-3.0,226.200000,0.000000,0.000000 +-3.0,226.320000,0.000000,0.000000 +-3.0,226.440000,0.000000,0.000000 +-3.0,226.560000,0.000000,0.000000 +-3.0,226.680000,0.000000,0.000000 +-3.0,226.800000,0.000000,0.000000 +-3.0,226.920000,0.000000,0.000000 +-3.0,227.040000,0.000000,0.000000 +-3.0,227.160000,0.000000,0.000000 +-3.0,227.280000,0.000000,0.000000 +-3.0,227.400000,0.000000,0.000000 +-3.0,227.520000,0.000000,0.000000 +-3.0,227.640000,0.000000,0.000000 +-3.0,227.760000,0.000000,0.000000 +-3.0,227.880000,0.000000,0.000000 +-3.0,228.000000,0.000000,0.000000 +-3.0,228.120000,0.000000,0.000000 +-3.0,228.240000,0.000000,0.000000 +-3.0,228.360000,0.000000,0.000000 +-3.0,228.480000,0.000000,0.000000 +-3.0,228.600000,0.000000,0.000000 +-3.0,228.720000,0.000000,0.000000 +-3.0,228.840000,0.000000,0.000000 +-3.0,228.960000,0.000000,0.000000 +-3.0,229.080000,0.000000,0.000000 +-3.0,229.200000,0.000000,0.000000 +-3.0,229.320000,0.000000,0.000000 +-3.0,229.440000,0.000000,0.000000 +-3.0,229.560000,0.000000,0.000000 +-3.0,229.680000,0.000000,0.000000 +-3.0,229.800000,0.000000,0.000000 +-3.0,229.920000,0.000000,0.000000 +-3.0,230.040000,0.000000,0.000000 +-3.0,230.160000,0.000000,0.000000 +-3.0,230.280000,0.000000,0.000000 +-3.0,230.400000,0.000000,0.000000 +-3.0,230.520000,0.000000,0.000000 +-3.0,230.640000,0.000000,0.000000 +-3.0,230.760000,0.000000,0.000000 +-3.0,230.880000,0.000000,0.000000 +-3.0,231.000000,0.000000,0.000000 +-3.0,231.120000,0.000000,0.000000 +-3.0,231.240000,0.000000,0.000000 +-3.0,231.360000,0.000000,0.000000 +-3.0,231.480000,0.000000,0.000000 +-3.0,231.600000,0.000000,0.000000 +-3.0,231.720000,0.000000,0.000000 +-3.0,231.840000,0.000000,0.000000 +-3.0,231.960000,0.000000,0.000000 +-3.0,232.080000,0.000000,0.000000 +-3.0,232.200000,0.000000,0.000000 +-3.0,232.320000,0.000000,0.000000 +-3.0,232.440000,0.000000,0.000000 +-3.0,232.560000,0.000000,0.000000 +-3.0,232.680000,0.000000,0.000000 +-3.0,232.800000,0.000000,0.000000 +-3.0,232.920000,0.000000,0.000000 +-3.0,233.040000,0.000000,0.000000 +-3.0,233.160000,0.000000,0.000000 +-3.0,233.280000,0.000000,0.000000 +-3.0,233.400000,0.000000,0.000000 +-3.0,233.520000,0.000000,0.000000 +-3.0,233.640000,0.000000,0.000000 +-3.0,233.760000,0.000000,0.000000 +-3.0,233.880000,0.000000,0.000000 +-3.0,234.000000,0.000000,0.000000 +-3.0,234.120000,0.000000,0.000000 +-3.0,234.240000,0.000000,0.000000 +-3.0,234.360000,0.000000,0.000000 +-3.0,234.480000,0.000000,0.000000 +-3.0,234.600000,0.000000,0.000000 +-3.0,234.720000,0.000000,0.000000 +-3.0,234.840000,0.000000,0.000000 +-3.0,234.960000,0.000000,0.000000 +-3.0,235.080000,0.000000,0.000000 +-3.0,235.200000,0.000000,0.000000 +-3.0,235.320000,0.000000,0.000000 +-3.0,235.440000,0.000000,0.000000 +-3.0,235.560000,0.000000,0.000000 +-3.0,235.680000,0.000000,0.000000 +-3.0,235.800000,0.000000,0.000000 +-3.0,235.920000,0.000000,0.000000 +-3.0,236.040000,0.000000,0.000000 +-3.0,236.160000,0.000000,0.000000 +-3.0,236.280000,0.000000,0.000000 +-3.0,236.400000,0.000000,0.000000 +-3.0,236.520000,0.000000,0.000000 +-3.0,236.640000,0.000000,0.000000 +-3.0,236.760000,0.000000,0.000000 +-3.0,236.880000,0.000000,0.000000 +-3.0,237.000000,0.000000,0.000000 +-3.0,237.120000,0.000000,0.000000 +-3.0,237.240000,0.000000,0.000000 +-3.0,237.360000,0.000000,0.000000 +-3.0,237.480000,0.000000,0.000000 +-3.0,237.600000,0.000000,0.000000 +-3.0,237.720000,0.000000,0.000000 +-3.0,237.840000,0.000000,0.000000 +-3.0,237.960000,0.000000,0.000000 +-3.0,238.080000,0.000000,0.000000 +-3.0,238.200000,0.000000,0.000000 +-3.0,238.320000,0.000000,0.000000 +-3.0,238.440000,0.000000,0.000000 +-3.0,238.560000,0.000000,0.000000 +-3.0,238.680000,0.000000,0.000000 +-3.0,238.800000,0.000000,0.000000 +-3.0,238.920000,0.000000,0.000000 +-3.0,239.040000,0.000000,0.000000 +-3.0,239.160000,0.000000,0.000000 +-3.0,239.280000,0.000000,0.000000 +-3.0,239.400000,0.000000,0.000000 +-3.0,239.520000,0.000000,0.000000 +-3.0,239.640000,0.000000,0.000000 +-3.0,239.760000,0.000000,0.000000 +-3.0,239.880000,0.000000,0.000000 +-3.0,240.000000,0.000000,0.000000 +-3.0,240.120000,0.000000,0.000000 +-3.0,240.240000,0.000000,0.000000 +-3.0,240.360000,0.000000,0.000000 +-3.0,240.480000,0.000000,0.000000 +-3.0,240.600000,0.000000,0.000000 +-3.0,240.720000,0.000000,0.000000 +-3.0,240.840000,0.000000,0.000000 +-3.0,240.960000,0.000000,0.000000 +-3.0,241.080000,0.000000,0.000000 +-3.0,241.200000,0.000000,0.000000 +-3.0,241.320000,0.000000,0.000000 +-3.0,241.440000,0.000000,0.000000 +-3.0,241.560000,0.000000,0.000000 +-3.0,241.680000,0.000000,0.000000 +-3.0,241.800000,0.000000,0.000000 +-3.0,241.920000,0.000000,0.000000 +-3.0,242.040000,0.000000,0.000000 +-3.0,242.160000,0.000000,0.000000 +-3.0,242.280000,0.000000,0.000000 +-3.0,242.400000,0.000000,0.000000 +-3.0,242.520000,0.000000,0.000000 +-3.0,242.640000,0.000000,0.000000 +-3.0,242.760000,0.000000,0.000000 +-3.0,242.880000,0.000000,0.000000 +-3.0,243.000000,0.000000,0.000000 +-3.0,243.120000,0.000000,0.000000 +-3.0,243.240000,0.000000,0.000000 +-3.0,243.360000,0.000000,0.000000 +-3.0,243.480000,0.000000,0.000000 +-3.0,243.600000,0.000000,0.000000 +-3.0,243.720000,0.000000,0.000000 +-3.0,243.840000,0.000000,0.000000 +-3.0,243.960000,0.000000,0.000000 +-3.0,244.080000,0.000000,0.000000 +-3.0,244.200000,0.000000,0.000000 +-3.0,244.320000,0.000000,0.000000 +-3.0,244.440000,0.000000,0.000000 +-3.0,244.560000,0.000000,0.000000 +-3.0,244.680000,0.000000,0.000000 +-3.0,244.800000,0.000000,0.000000 +-3.0,244.920000,0.000000,0.000000 +-3.0,245.040000,0.000000,0.000000 +-3.0,245.160000,0.000000,0.000000 +-3.0,245.280000,0.000000,0.000000 +-3.0,245.400000,0.000000,0.000000 +-3.0,245.520000,0.000000,0.000000 +-3.0,245.640000,0.000000,0.000000 +-3.0,245.760000,0.000000,0.000000 +-3.0,245.880000,0.000000,0.000000 +-3.0,246.000000,0.000000,0.000000 +-3.0,246.120000,0.000000,0.000000 +-3.0,246.240000,0.000000,0.000000 +-3.0,246.360000,0.000000,0.000000 +-3.0,246.480000,0.000000,0.000000 +-3.0,246.600000,0.000000,0.000000 +-3.0,246.720000,0.000000,0.000000 +-3.0,246.840000,0.000000,0.000000 +-3.0,246.960000,0.000000,0.000000 +-3.0,247.080000,0.000000,0.000000 +-3.0,247.200000,0.000000,0.000000 +-3.0,247.320000,0.000000,0.000000 +-3.0,247.440000,0.000000,0.000000 +-3.0,247.560000,0.000000,0.000000 +-3.0,247.680000,0.000000,0.000000 +-3.0,247.800000,0.000000,0.000000 +-3.0,247.920000,0.000000,0.000000 +-3.0,248.040000,0.000000,0.000000 +-3.0,248.160000,0.000000,0.000000 +-3.0,248.280000,0.000000,0.000000 +-3.0,248.400000,0.000000,0.000000 +-3.0,248.520000,0.000000,0.000000 +-3.0,248.640000,0.000000,0.000000 +-3.0,248.760000,0.000000,0.000000 +-3.0,248.880000,0.000000,0.000000 +-3.0,249.000000,0.000000,0.000000 +-3.0,249.120000,0.000000,0.000000 +-3.0,249.240000,0.000000,0.000000 +-3.0,249.360000,0.000000,0.000000 +-3.0,249.480000,0.000000,0.000000 +-3.0,249.600000,0.000000,0.000000 +-3.0,249.720000,0.000000,0.000000 +-3.0,249.840000,0.000000,0.000000 +-3.0,249.960000,0.000000,0.000000 +-3.0,250.080000,0.000000,0.000000 +-3.0,250.200000,0.000000,0.000000 +-3.0,250.320000,0.000000,0.000000 +-3.0,250.440000,0.000000,0.000000 +-3.0,250.560000,0.000000,0.000000 +-3.0,250.680000,0.000000,0.000000 +-3.0,250.800000,0.000000,0.000000 +-3.0,250.920000,0.000000,0.000000 +-3.0,251.040000,0.000000,0.000000 +-3.0,251.160000,0.000000,0.000000 +-3.0,251.280000,0.000000,0.000000 +-3.0,251.400000,0.000000,0.000000 +-3.0,251.520000,0.000000,0.000000 +-3.0,251.640000,0.000000,0.000000 +-3.0,251.760000,0.000000,0.000000 +-3.0,251.880000,0.000000,0.000000 +-3.0,252.000000,0.000000,0.000000 +-3.0,252.120000,0.000000,0.000000 +-3.0,252.240000,0.000000,0.000000 +-3.0,252.360000,0.000000,0.000000 +-3.0,252.480000,0.000000,0.000000 +-3.0,252.600000,0.000000,0.000000 +-3.0,252.720000,0.000000,0.000000 +-3.0,252.840000,0.000000,0.000000 +-3.0,252.960000,0.000000,0.000000 +-3.0,253.080000,0.000000,0.000000 +-3.0,253.200000,0.000000,0.000000 +-3.0,253.320000,0.000000,0.000000 +-3.0,253.440000,0.000000,0.000000 +-3.0,253.560000,0.000000,0.000000 +-3.0,253.680000,0.000000,0.000000 +-3.0,253.800000,0.000000,0.000000 +-3.0,253.920000,0.000000,0.000000 +-3.0,254.040000,0.000000,0.000000 +-3.0,254.160000,0.000000,0.000000 +-3.0,254.280000,0.000000,0.000000 +-3.0,254.400000,0.000000,0.000000 +-3.0,254.520000,0.000000,0.000000 +-3.0,254.640000,0.000000,0.000000 +-3.0,254.760000,0.000000,0.000000 +-3.0,254.880000,0.000000,0.000000 +-3.0,255.000000,0.000000,0.000000 +-3.0,255.120000,0.000000,0.000000 +-3.0,255.240000,0.000000,0.000000 +-3.0,255.360000,0.000000,0.000000 +-3.0,255.480000,0.000000,0.000000 +-3.0,255.600000,0.000000,0.000000 +-3.0,255.720000,0.000000,0.000000 +-3.0,255.840000,0.000000,0.000000 +-3.0,255.960000,0.000000,0.000000 +-3.0,256.080000,0.000000,0.000000 +-3.0,256.200000,0.000000,0.000000 +-3.0,256.320000,0.000000,0.000000 +-3.0,256.440000,0.000000,0.000000 +-3.0,256.560000,0.000000,0.000000 +-3.0,256.680000,0.000000,0.000000 +-3.0,256.800000,0.000000,0.000000 +-3.0,256.920000,0.000000,0.000000 +-3.0,257.040000,0.000000,0.000000 +-3.0,257.160000,0.000000,0.000000 +-3.0,257.280000,0.000000,0.000000 +-3.0,257.400000,0.000000,0.000000 +-3.0,257.520000,0.000000,0.000000 +-3.0,257.640000,0.000000,0.000000 +-3.0,257.760000,0.000000,0.000000 +-3.0,257.880000,0.000000,0.000000 +-3.0,258.000000,0.000000,0.000000 +-3.0,258.120000,0.000000,0.000000 +-3.0,258.240000,0.000000,0.000000 +-3.0,258.360000,0.000000,0.000000 +-3.0,258.480000,0.000000,0.000000 +-3.0,258.600000,0.000000,0.000000 +-3.0,258.720000,0.000000,0.000000 +-3.0,258.840000,0.000000,0.000000 +-3.0,258.960000,0.000000,0.000000 +-3.0,259.080000,0.000000,0.000000 +-3.0,259.200000,0.000000,0.000000 +-3.0,259.320000,0.000000,0.000000 +-3.0,259.440000,0.000000,0.000000 +-3.0,259.560000,0.000000,0.000000 +-3.0,259.680000,0.000000,0.000000 +-3.0,259.800000,0.000000,0.000000 +-3.0,259.920000,0.000000,0.000000 +-3.0,260.040000,0.000000,0.000000 +-3.0,260.160000,0.000000,0.000000 +-3.0,260.280000,0.000000,0.000000 +-3.0,260.400000,0.000000,0.000000 +-3.0,260.520000,0.000000,0.000000 +-3.0,260.640000,0.000000,0.000000 +-3.0,260.760000,0.000000,0.000000 +-3.0,260.880000,0.000000,0.000000 +-3.0,261.000000,0.000000,0.000000 +-3.0,261.120000,0.000000,0.000000 +-3.0,261.240000,0.000000,0.000000 +-3.0,261.360000,0.000000,0.000000 +-3.0,261.480000,0.000000,0.000000 +-3.0,261.600000,0.000000,0.000000 +-3.0,261.720000,0.000000,0.000000 +-3.0,261.840000,0.000000,0.000000 +-3.0,261.960000,0.000000,0.000000 +-3.0,262.080000,0.000000,0.000000 +-3.0,262.200000,0.000000,0.000000 +-3.0,262.320000,0.000000,0.000000 +-3.0,262.440000,0.000000,0.000000 +-3.0,262.560000,0.000000,0.000000 +-3.0,262.680000,0.000000,0.000000 +-3.0,262.800000,0.000000,0.000000 +-3.0,262.920000,0.000000,0.000000 +-3.0,263.040000,0.000000,0.000000 +-3.0,263.160000,0.000000,0.000000 +-3.0,263.280000,0.000000,0.000000 +-3.0,263.400000,0.000000,0.000000 +-3.0,263.520000,0.000000,0.000000 +-3.0,263.640000,0.000000,0.000000 +-3.0,263.760000,0.000000,0.000000 +-3.0,263.880000,0.000000,0.000000 +-3.0,264.000000,0.000000,0.000000 +-3.0,264.120000,0.000000,0.000000 +-3.0,264.240000,0.000000,0.000000 +-3.0,264.360000,0.000000,0.000000 +-3.0,264.480000,0.000000,0.000000 +-3.0,264.600000,0.000000,0.000000 +-3.0,264.720000,0.000000,0.000000 +-3.0,264.840000,0.000000,0.000000 +-3.0,264.960000,0.000000,0.000000 +-3.0,265.080000,0.000000,0.000000 +-3.0,265.200000,0.000000,0.000000 +-3.0,265.320000,0.000000,0.000000 +-3.0,265.440000,0.000000,0.000000 +-3.0,265.560000,0.000000,0.000000 +-3.0,265.680000,0.000000,0.000000 +-3.0,265.800000,0.000000,0.000000 +-3.0,265.920000,0.000000,0.000000 +-3.0,266.040000,0.000000,0.000000 +-3.0,266.160000,0.000000,0.000000 +-3.0,266.280000,0.000000,0.000000 +-3.0,266.400000,0.000000,0.000000 +-3.0,266.520000,0.000000,0.000000 +-3.0,266.640000,0.000000,0.000000 +-3.0,266.760000,0.000000,0.000000 +-3.0,266.880000,0.000000,0.000000 +-3.0,267.000000,0.000000,0.000000 +-3.0,267.120000,0.000000,0.000000 +-3.0,267.240000,0.000000,0.000000 +-3.0,267.360000,0.000000,0.000000 +-3.0,267.480000,0.000000,0.000000 +-3.0,267.600000,0.000000,0.000000 +-3.0,267.720000,0.000000,0.000000 +-3.0,267.840000,0.000000,0.000000 +-3.0,267.960000,0.000000,0.000000 +-3.0,268.080000,0.000000,0.000000 +-3.0,268.200000,0.000000,0.000000 +-3.0,268.320000,0.000000,0.000000 +-3.0,268.440000,0.000000,0.000000 +-3.0,268.560000,0.000000,0.000000 +-3.0,268.680000,0.000000,0.000000 +-3.0,268.800000,0.000000,0.000000 +-3.0,268.920000,0.000000,0.000000 +-3.0,269.040000,0.000000,0.000000 +-3.0,269.160000,0.000000,0.000000 +-3.0,269.280000,0.000000,0.000000 +-3.0,269.400000,0.000000,0.000000 +-3.0,269.520000,0.000000,0.000000 +-3.0,269.640000,0.000000,0.000000 +-3.0,269.760000,0.000000,0.000000 +-3.0,269.880000,0.000000,0.000000 +-3.0,270.000000,0.000000,0.000000 +-3.0,270.120000,0.000000,0.000000 +-3.0,270.240000,0.000000,0.000000 +-3.0,270.360000,0.000000,0.000000 +-3.0,270.480000,0.000000,0.000000 +-3.0,270.600000,0.000000,0.000000 +-3.0,270.720000,0.000000,0.000000 +-3.0,270.840000,0.000000,0.000000 +-3.0,270.960000,0.000000,0.000000 +-3.0,271.080000,0.000000,0.000000 +-3.0,271.200000,0.000000,0.000000 +-3.0,271.320000,0.000000,0.000000 +-3.0,271.440000,0.000000,0.000000 +-3.0,271.560000,0.000000,0.000000 +-3.0,271.680000,0.000000,0.000000 +-3.0,271.800000,0.000000,0.000000 +-3.0,271.920000,0.000000,0.000000 +-3.0,272.040000,0.000000,0.000000 +-3.0,272.160000,0.000000,0.000000 +-3.0,272.280000,0.000000,0.000000 +-3.0,272.400000,0.000000,0.000000 +-3.0,272.520000,0.000000,0.000000 +-3.0,272.640000,0.000000,0.000000 +-3.0,272.760000,0.000000,0.000000 +-3.0,272.880000,0.000000,0.000000 +-3.0,273.000000,0.000000,0.000000 +-3.0,273.120000,0.000000,0.000000 +-3.0,273.240000,0.000000,0.000000 +-3.0,273.360000,0.000000,0.000000 +-3.0,273.480000,0.000000,0.000000 +-3.0,273.600000,0.000000,0.000000 +-3.0,273.720000,0.000000,0.000000 +-3.0,273.840000,0.000000,0.000000 +-3.0,273.960000,0.000000,0.000000 +-3.0,274.080000,0.000000,0.000000 +-3.0,274.200000,0.000000,0.000000 +-3.0,274.320000,0.000000,0.000000 +-3.0,274.440000,0.000000,0.000000 +-3.0,274.560000,0.000000,0.000000 +-3.0,274.680000,0.000000,0.000000 +-3.0,274.800000,0.000000,0.000000 +-3.0,274.920000,0.000000,0.000000 +-3.0,275.040000,0.000000,0.000000 +-3.0,275.160000,0.000000,0.000000 +-3.0,275.280000,0.000000,0.000000 +-3.0,275.400000,0.000000,0.000000 +-3.0,275.520000,0.000000,0.000000 +-3.0,275.640000,0.000000,0.000000 +-3.0,275.760000,0.000000,0.000000 +-3.0,275.880000,0.000000,0.000000 +-3.0,276.000000,0.000000,0.000000 +-3.0,276.120000,0.000000,0.000000 +-3.0,276.240000,0.000000,0.000000 +-3.0,276.360000,0.000000,0.000000 +-3.0,276.480000,0.000000,0.000000 +-3.0,276.600000,0.000000,0.000000 +-3.0,276.720000,0.000000,0.000000 +-3.0,276.840000,0.000000,0.000000 +-3.0,276.960000,0.000000,0.000000 +-3.0,277.080000,0.000000,0.000000 +-3.0,277.200000,0.000000,0.000000 +-3.0,277.320000,0.000000,0.000000 +-3.0,277.440000,0.000000,0.000000 +-3.0,277.560000,0.000000,0.000000 +-3.0,277.680000,0.000000,0.000000 +-3.0,277.800000,0.000000,0.000000 +-3.0,277.920000,0.000000,0.000000 +-3.0,278.040000,0.000000,0.000000 +-3.0,278.160000,0.000000,0.000000 +-3.0,278.280000,0.000000,0.000000 +-3.0,278.400000,0.000000,0.000000 +-3.0,278.520000,0.000000,0.000000 +-3.0,278.640000,0.000000,0.000000 +-3.0,278.760000,0.000000,0.000000 +-3.0,278.880000,0.000000,0.000000 +-3.0,279.000000,0.000000,0.000000 +-3.0,279.120000,0.000000,0.000000 +-3.0,279.240000,0.000000,0.000000 +-3.0,279.360000,0.000000,0.000000 +-3.0,279.480000,0.000000,0.000000 +-3.0,279.600000,0.000000,0.000000 +-3.0,279.720000,0.000000,0.000000 +-3.0,279.840000,0.000000,0.000000 +-3.0,279.960000,0.000000,0.000000 +-3.0,280.080000,0.000000,0.000000 +-3.0,280.200000,0.000000,0.000000 +-3.0,280.320000,0.000000,0.000000 +-3.0,280.440000,0.000000,0.000000 +-3.0,280.560000,0.000000,0.000000 +-3.0,280.680000,0.000000,0.000000 +-3.0,280.800000,0.000000,0.000000 +-3.0,280.920000,0.000000,0.000000 +-3.0,281.040000,0.000000,0.000000 +-3.0,281.160000,0.000000,0.000000 +-3.0,281.280000,0.000000,0.000000 +-3.0,281.400000,0.000000,0.000000 +-3.0,281.520000,0.000000,0.000000 +-3.0,281.640000,0.000000,0.000000 +-3.0,281.760000,0.000000,0.000000 +-3.0,281.880000,0.000000,0.000000 +-3.0,282.000000,0.000000,0.000000 +-3.0,282.120000,0.000000,0.000000 +-3.0,282.240000,0.000000,0.000000 +-3.0,282.360000,0.000000,0.000000 +-3.0,282.480000,0.000000,0.000000 +-3.0,282.600000,0.000000,0.000000 +-3.0,282.720000,0.000000,0.000000 +-3.0,282.840000,0.000000,0.000000 +-3.0,282.960000,0.000000,0.000000 +-3.0,283.080000,0.000000,0.000000 +-3.0,283.200000,0.000000,0.000000 +-3.0,283.320000,0.000000,0.000000 +-3.0,283.440000,0.000000,0.000000 +-3.0,283.560000,0.000000,0.000000 +-3.0,283.680000,0.000000,0.000000 +-3.0,283.800000,0.000000,0.000000 +-3.0,283.920000,0.000000,0.000000 +-3.0,284.040000,0.000000,0.000000 +-3.0,284.160000,0.000000,0.000000 +-3.0,284.280000,0.000000,0.000000 +-3.0,284.400000,0.000000,0.000000 +-3.0,284.520000,0.000000,0.000000 +-3.0,284.640000,0.000000,0.000000 +-3.0,284.760000,0.000000,0.000000 +-3.0,284.880000,0.000000,0.000000 +-3.0,285.000000,0.000000,0.000000 +-3.0,285.120000,0.000000,0.000000 +-3.0,285.240000,0.000000,0.000000 +-3.0,285.360000,0.000000,0.000000 +-3.0,285.480000,0.000000,0.000000 +-3.0,285.600000,0.000000,0.000000 +-3.0,285.720000,0.000000,0.000000 +-3.0,285.840000,0.000000,0.000000 +-3.0,285.960000,0.000000,0.000000 +-3.0,286.080000,0.000000,0.000000 +-3.0,286.200000,0.000000,0.000000 +-3.0,286.320000,0.000000,0.000000 +-3.0,286.440000,0.000000,0.000000 +-3.0,286.560000,0.000000,0.000000 +-3.0,286.680000,0.000000,0.000000 +-3.0,286.800000,0.000000,0.000000 +-3.0,286.920000,0.000000,0.000000 +-3.0,287.040000,0.000000,0.000000 +-3.0,287.160000,0.000000,0.000000 +-3.0,287.280000,0.000000,0.000000 +-3.0,287.400000,0.000000,0.000000 +-3.0,287.520000,0.000000,0.000000 +-3.0,287.640000,0.000000,0.000000 +-3.0,287.760000,0.000000,0.000000 +-3.0,287.880000,0.000000,0.000000 +-3.0,288.000000,0.000000,0.000000 +-3.0,288.120000,0.000000,0.000000 +-3.0,288.240000,0.000000,0.000000 +-3.0,288.360000,0.000000,0.000000 +-3.0,288.480000,0.000000,0.000000 +-3.0,288.600000,0.000000,0.000000 +-3.0,288.720000,0.000000,0.000000 +-3.0,288.840000,0.000000,0.000000 +-3.0,288.960000,0.000000,0.000000 +-3.0,289.080000,0.000000,0.000000 +-3.0,289.200000,0.000000,0.000000 +-3.0,289.320000,0.000000,0.000000 +-3.0,289.440000,0.000000,0.000000 +-3.0,289.560000,0.000000,0.000000 +-3.0,289.680000,0.000000,0.000000 +-3.0,289.800000,0.000000,0.000000 +-3.0,289.920000,0.000000,0.000000 +-3.0,290.040000,0.000000,0.000000 +-3.0,290.160000,0.000000,0.000000 +-3.0,290.280000,0.000000,0.000000 +-3.0,290.400000,0.000000,0.000000 +-3.0,290.520000,0.000000,0.000000 +-3.0,290.640000,0.000000,0.000000 +-3.0,290.760000,0.000000,0.000000 +-3.0,290.880000,0.000000,0.000000 +-3.0,291.000000,0.000000,0.000000 +-3.0,291.120000,0.000000,0.000000 +-3.0,291.240000,0.000000,0.000000 +-3.0,291.360000,0.000000,0.000000 +-3.0,291.480000,0.000000,0.000000 +-3.0,291.600000,0.000000,0.000000 +-3.0,291.720000,0.000000,0.000000 +-3.0,291.840000,0.000000,0.000000 +-3.0,291.960000,0.000000,0.000000 +-3.0,292.080000,0.000000,0.000000 +-3.0,292.200000,0.000000,0.000000 +-3.0,292.320000,0.000000,0.000000 +-3.0,292.440000,0.000000,0.000000 +-3.0,292.560000,0.000000,0.000000 +-3.0,292.680000,0.000000,0.000000 +-3.0,292.800000,0.000000,0.000000 +-3.0,292.920000,0.000000,0.000000 +-3.0,293.040000,0.000000,0.000000 +-3.0,293.160000,0.000000,0.000000 +-3.0,293.280000,0.000000,0.000000 +-3.0,293.400000,0.000000,0.000000 +-3.0,293.520000,0.000000,0.000000 +-3.0,293.640000,0.000000,0.000000 +-3.0,293.760000,0.000000,0.000000 +-3.0,293.880000,0.000000,0.000000 +-3.0,294.000000,0.000000,0.000000 +-3.0,294.120000,0.000000,0.000000 +-3.0,294.240000,0.000000,0.000000 +-3.0,294.360000,0.000000,0.000000 +-3.0,294.480000,0.000000,0.000000 +-3.0,294.600000,0.000000,0.000000 +-3.0,294.720000,0.000000,0.000000 +-3.0,294.840000,0.000000,0.000000 +-3.0,294.960000,0.000000,0.000000 +-3.0,295.080000,0.000000,0.000000 +-3.0,295.200000,0.000000,0.000000 +-3.0,295.320000,0.000000,0.000000 +-3.0,295.440000,0.000000,0.000000 +-3.0,295.560000,0.000000,0.000000 +-3.0,295.680000,0.000000,0.000000 +-3.0,295.800000,0.000000,0.000000 +-3.0,295.920000,0.000000,0.000000 +-3.0,296.040000,0.000000,0.000000 +-3.0,296.160000,0.000000,0.000000 +-3.0,296.280000,0.000000,0.000000 +-3.0,296.400000,0.000000,0.000000 +-3.0,296.520000,0.000000,0.000000 +-3.0,296.640000,0.000000,0.000000 +-3.0,296.760000,0.000000,0.000000 +-3.0,296.880000,0.000000,0.000000 +-3.0,297.000000,0.000000,0.000000 +-3.0,297.120000,0.000000,0.000000 +-3.0,297.240000,0.000000,0.000000 +-3.0,297.360000,0.000000,0.000000 +-3.0,297.480000,0.000000,0.000000 +-3.0,297.600000,0.000000,0.000000 +-3.0,297.720000,0.000000,0.000000 +-3.0,297.840000,0.000000,0.000000 +-3.0,297.960000,0.000000,0.000000 +-3.0,298.080000,0.000000,0.000000 +-3.0,298.200000,0.000000,0.000000 +-3.0,298.320000,0.000000,0.000000 +-3.0,298.440000,0.000000,0.000000 +-3.0,298.560000,0.000000,0.000000 +-3.0,298.680000,0.000000,0.000000 +-3.0,298.800000,0.000000,0.000000 +-3.0,298.920000,0.000000,0.000000 +-3.0,299.040000,0.000000,0.000000 +-3.0,299.160000,0.000000,0.000000 +-3.0,299.280000,0.000000,0.000000 +-3.0,299.400000,0.000000,0.000000 +-3.0,299.520000,0.000000,0.000000 +-3.0,299.640000,0.000000,0.000000 +-3.0,299.760000,0.000000,0.000000 +-3.0,299.880000,0.000000,0.000000 +-3.0,300.000000,0.000000,0.000000 +-3.0,300.120000,0.000000,0.000000 +-3.0,300.240000,0.000000,0.000000 +-3.0,300.360000,0.000000,0.000000 +-3.0,300.480000,0.000000,0.000000 +-3.0,300.600000,0.000000,0.000000 +-3.0,300.720000,0.000000,0.000000 +-3.0,300.840000,0.000000,0.000000 +-3.0,300.960000,0.000000,0.000000 +-3.0,301.080000,0.000000,0.000000 +-3.0,301.200000,0.000000,0.000000 +-3.0,301.320000,0.000000,0.000000 +-3.0,301.440000,0.000000,0.000000 +-3.0,301.560000,0.000000,0.000000 +-3.0,301.680000,0.000000,0.000000 +-3.0,301.800000,0.000000,0.000000 +-3.0,301.920000,0.000000,0.000000 +-3.0,302.040000,0.000000,0.000000 +-3.0,302.160000,0.000000,0.000000 +-3.0,302.280000,0.000000,0.000000 +-3.0,302.400000,0.000000,0.000000 +-3.0,302.520000,0.000000,0.000000 +-3.0,302.640000,0.000000,0.000000 +-3.0,302.760000,0.000000,0.000000 +-3.0,302.880000,0.000000,0.000000 +-3.0,303.000000,0.000000,0.000000 +-3.0,303.120000,0.000000,0.000000 +-3.0,303.240000,0.000000,0.000000 +-3.0,303.360000,0.000000,0.000000 +-3.0,303.480000,0.000000,0.000000 +-3.0,303.600000,0.000000,0.000000 +-3.0,303.720000,0.000000,0.000000 +-3.0,303.840000,0.000000,0.000000 +-3.0,303.960000,0.000000,0.000000 +-3.0,304.080000,0.000000,0.000000 +-3.0,304.200000,0.000000,0.000000 +-3.0,304.320000,0.000000,0.000000 +-3.0,304.440000,0.000000,0.000000 +-3.0,304.560000,0.000000,0.000000 +-3.0,304.680000,0.000000,0.000000 +-3.0,304.800000,0.000000,0.000000 +-3.0,304.920000,0.000000,0.000000 +-3.0,305.040000,0.000000,0.000000 +-3.0,305.160000,0.000000,0.000000 +-3.0,305.280000,0.000000,0.000000 +-3.0,305.400000,0.000000,0.000000 +-3.0,305.520000,0.000000,0.000000 +-3.0,305.640000,0.000000,0.000000 +-3.0,305.760000,0.000000,0.000000 +-3.0,305.880000,0.000000,0.000000 +-3.0,306.000000,0.000000,0.000000 +-3.0,306.120000,0.000000,0.000000 +-3.0,306.240000,0.000000,0.000000 +-3.0,306.360000,0.000000,0.000000 +-3.0,306.480000,0.000000,0.000000 +-3.0,306.600000,0.000000,0.000000 +-3.0,306.720000,0.000000,0.000000 +-3.0,306.840000,0.000000,0.000000 +-3.0,306.960000,0.000000,0.000000 +-3.0,307.080000,0.000000,0.000000 +-3.0,307.200000,0.000000,0.000000 +-3.0,307.320000,0.000000,0.000000 +-3.0,307.440000,0.000000,0.000000 +-3.0,307.560000,0.000000,0.000000 +-3.0,307.680000,0.000000,0.000000 +-3.0,307.800000,0.000000,0.000000 +-3.0,307.920000,0.000000,0.000000 +-3.0,308.040000,0.000000,0.000000 +-3.0,308.160000,0.000000,0.000000 +-3.0,308.280000,0.000000,0.000000 +-3.0,308.400000,0.000000,0.000000 +-3.0,308.520000,0.000000,0.000000 +-3.0,308.640000,0.000000,0.000000 +-3.0,308.760000,0.000000,0.000000 +-3.0,308.880000,0.000000,0.000000 +-3.0,309.000000,0.000000,0.000000 +-3.0,309.120000,0.000000,0.000000 +-3.0,309.240000,0.000000,0.000000 +-3.0,309.360000,0.000000,0.000000 +-3.0,309.480000,0.000000,0.000000 +-3.0,309.600000,0.000000,0.000000 +-3.0,309.720000,0.000000,0.000000 +-3.0,309.840000,0.000000,0.000000 +-3.0,309.960000,0.000000,0.000000 +-3.0,310.080000,0.000000,0.000000 +-3.0,310.200000,0.000000,0.000000 +-3.0,310.320000,0.000000,0.000000 +-3.0,310.440000,0.000000,0.000000 +-3.0,310.560000,0.000000,0.000000 +-3.0,310.680000,0.000000,0.000000 +-3.0,310.800000,0.000000,0.000000 +-3.0,310.920000,0.000000,0.000000 +-3.0,311.040000,0.000000,0.000000 +-3.0,311.160000,0.000000,0.000000 +-3.0,311.280000,0.000000,0.000000 +-3.0,311.400000,0.000000,0.000000 +-3.0,311.520000,0.000000,0.000000 +-3.0,311.640000,0.000000,0.000000 +-3.0,311.760000,0.000000,0.000000 +-3.0,311.880000,0.000000,0.000000 +-3.0,312.000000,0.000000,0.000000 +-3.0,312.120000,0.000000,0.000000 +-3.0,312.240000,0.000000,0.000000 +-3.0,312.360000,0.000000,0.000000 +-3.0,312.480000,0.000000,0.000000 +-3.0,312.600000,0.000000,0.000000 +-3.0,312.720000,0.000000,0.000000 +-3.0,312.840000,0.000000,0.000000 +-3.0,312.960000,0.000000,0.000000 +-3.0,313.080000,0.000000,0.000000 +-3.0,313.200000,0.000000,0.000000 +-3.0,313.320000,0.000000,0.000000 +-3.0,313.440000,0.000000,0.000000 +-3.0,313.560000,0.000000,0.000000 +-3.0,313.680000,0.000000,0.000000 +-3.0,313.800000,0.000000,0.000000 +-3.0,313.920000,0.000000,0.000000 +-3.0,314.040000,0.000000,0.000000 +-3.0,314.160000,0.000000,0.000000 +-3.0,314.280000,0.000000,0.000000 +-3.0,314.400000,0.000000,0.000000 +-3.0,314.520000,0.000000,0.000000 +-3.0,314.640000,0.000000,0.000000 +-3.0,314.760000,0.000000,0.000000 +-3.0,314.880000,0.000000,0.000000 +-3.0,315.000000,0.000000,0.000000 +-3.0,315.120000,0.000000,0.000000 +-3.0,315.240000,0.000000,0.000000 +-3.0,315.360000,0.000000,0.000000 +-3.0,315.480000,0.000000,0.000000 +-3.0,315.600000,0.000000,0.000000 +-3.0,315.720000,0.000000,0.000000 +-3.0,315.840000,0.000000,0.000000 +-3.0,315.960000,0.000000,0.000000 +-3.0,316.080000,0.000000,0.000000 +-3.0,316.200000,0.000000,0.000000 +-3.0,316.320000,0.000000,0.000000 +-3.0,316.440000,0.000000,0.000000 +-3.0,316.560000,0.000000,0.000000 +-3.0,316.680000,0.000000,0.000000 +-3.0,316.800000,0.000000,0.000000 +-3.0,316.920000,0.000000,0.000000 +-3.0,317.040000,0.000000,0.000000 +-3.0,317.160000,0.000000,0.000000 +-3.0,317.280000,0.000000,0.000000 +-3.0,317.400000,0.000000,0.000000 +-3.0,317.520000,0.000000,0.000000 +-3.0,317.640000,0.000000,0.000000 +-3.0,317.760000,0.000000,0.000000 +-3.0,317.880000,0.000000,0.000000 +-3.0,318.000000,0.000000,0.000000 +-3.0,318.120000,0.000000,0.000000 +-3.0,318.240000,0.000000,0.000000 +-3.0,318.360000,0.000000,0.000000 +-3.0,318.480000,0.000000,0.000000 +-3.0,318.600000,0.000000,0.000000 +-3.0,318.720000,0.000000,0.000000 +-3.0,318.840000,0.000000,0.000000 +-3.0,318.960000,0.000000,0.000000 +-3.0,319.080000,0.000000,0.000000 +-3.0,319.200000,0.000000,0.000000 +-3.0,319.320000,0.000000,0.000000 +-3.0,319.440000,0.000000,0.000000 +-3.0,319.560000,0.000000,0.000000 +-3.0,319.680000,0.000000,0.000000 +-3.0,319.800000,0.000000,0.000000 +-3.0,319.920000,0.000000,0.000000 +-3.0,320.040000,0.000000,0.000000 +-3.0,320.160000,0.000000,0.000000 +-3.0,320.280000,0.000000,0.000000 +-3.0,320.400000,0.000000,0.000000 +-3.0,320.520000,0.000000,0.000000 +-3.0,320.640000,0.000000,0.000000 +-3.0,320.760000,0.000000,0.000000 +-3.0,320.880000,0.000000,0.000000 +-3.0,321.000000,0.000000,0.000000 +-3.0,321.120000,0.000000,0.000000 +-3.0,321.240000,0.000000,0.000000 +-3.0,321.360000,0.000000,0.000000 +-3.0,321.480000,0.000000,0.000000 +-3.0,321.600000,0.000000,0.000000 +-3.0,321.720000,0.000000,0.000000 +-3.0,321.840000,0.000000,0.000000 +-3.0,321.960000,0.000000,0.000000 +-3.0,322.080000,0.000000,0.000000 +-3.0,322.200000,0.000000,0.000000 +-3.0,322.320000,0.000000,0.000000 +-3.0,322.440000,0.000000,0.000000 +-3.0,322.560000,0.000000,0.000000 +-3.0,322.680000,0.000000,0.000000 +-3.0,322.800000,0.000000,0.000000 +-3.0,322.920000,0.000000,0.000000 +-3.0,323.040000,0.000000,0.000000 +-3.0,323.160000,0.000000,0.000000 +-3.0,323.280000,0.000000,0.000000 +-3.0,323.400000,0.000000,0.000000 +-3.0,323.520000,0.000000,0.000000 +-3.0,323.640000,0.000000,0.000000 +-3.0,323.760000,0.000000,0.000000 +-3.0,323.880000,0.000000,0.000000 +-3.0,324.000000,0.000000,0.000000 +-3.0,324.120000,0.000000,0.000000 +-3.0,324.240000,0.000000,0.000000 +-3.0,324.360000,0.000000,0.000000 +-3.0,324.480000,0.000000,0.000000 +-3.0,324.600000,0.000000,0.000000 +-3.0,324.720000,0.000000,0.000000 +-3.0,324.840000,0.000000,0.000000 +-3.0,324.960000,0.000000,0.000000 +-3.0,325.080000,0.000000,0.000000 +-3.0,325.200000,0.000000,0.000000 +-3.0,325.320000,0.000000,0.000000 +-3.0,325.440000,0.000000,0.000000 +-3.0,325.560000,0.000000,0.000000 +-3.0,325.680000,0.000000,0.000000 +-3.0,325.800000,0.000000,0.000000 +-3.0,325.920000,0.000000,0.000000 +-3.0,326.040000,0.000000,0.000000 +-3.0,326.160000,0.000000,0.000000 +-3.0,326.280000,0.000000,0.000000 +-3.0,326.400000,0.000000,0.000000 +-3.0,326.520000,0.000000,0.000000 +-3.0,326.640000,0.000000,0.000000 +-3.0,326.760000,0.000000,0.000000 +-3.0,326.880000,0.000000,0.000000 +-3.0,327.000000,0.000000,0.000000 +-3.0,327.120000,0.000000,0.000000 +-3.0,327.240000,0.000000,0.000000 +-3.0,327.360000,0.000000,0.000000 +-3.0,327.480000,0.000000,0.000000 +-3.0,327.600000,0.000000,0.000000 +-3.0,327.720000,0.000000,0.000000 +-3.0,327.840000,0.000000,0.000000 +-3.0,327.960000,0.000000,0.000000 +-3.0,328.080000,0.000000,0.000000 +-3.0,328.200000,0.000000,0.000000 +-3.0,328.320000,0.000000,0.000000 +-3.0,328.440000,0.000000,0.000000 +-3.0,328.560000,0.000000,0.000000 +-3.0,328.680000,0.000000,0.000000 +-3.0,328.800000,0.000000,0.000000 +-3.0,328.920000,0.000000,0.000000 +-3.0,329.040000,0.000000,0.000000 +-3.0,329.160000,0.000000,0.000000 +-3.0,329.280000,0.000000,0.000000 +-3.0,329.400000,0.000000,0.000000 +-3.0,329.520000,0.000000,0.000000 +-3.0,329.640000,0.000000,0.000000 +-3.0,329.760000,0.000000,0.000000 +-3.0,329.880000,0.000000,0.000000 +-3.0,330.000000,0.000000,0.000000 +-3.0,330.120000,0.000000,0.000000 +-3.0,330.240000,0.000000,0.000000 +-3.0,330.360000,0.000000,0.000000 +-3.0,330.480000,0.000000,0.000000 +-3.0,330.600000,0.000000,0.000000 +-3.0,330.720000,0.000000,0.000000 +-3.0,330.840000,0.000000,0.000000 +-3.0,330.960000,0.000000,0.000000 +-3.0,331.080000,0.000000,0.000000 +-3.0,331.200000,0.000000,0.000000 +-3.0,331.320000,0.000000,0.000000 +-3.0,331.440000,0.000000,0.000000 +-3.0,331.560000,0.000000,0.000000 +-3.0,331.680000,0.000000,0.000000 +-3.0,331.800000,0.000000,0.000000 +-3.0,331.920000,0.000000,0.000000 +-3.0,332.040000,0.000000,0.000000 +-3.0,332.160000,0.000000,0.000000 +-3.0,332.280000,0.000000,0.000000 +-3.0,332.400000,0.000000,0.000000 +-3.0,332.520000,0.000000,0.000000 +-3.0,332.640000,0.000000,0.000000 +-3.0,332.760000,0.000000,0.000000 +-3.0,332.880000,0.000000,0.000000 +-3.0,333.000000,0.000000,0.000000 +-3.0,333.120000,0.000000,0.000000 +-3.0,333.240000,0.000000,0.000000 +-3.0,333.360000,0.000000,0.000000 +-3.0,333.480000,0.000000,0.000000 +-3.0,333.600000,0.000000,0.000000 +-3.0,333.720000,0.000000,0.000000 +-3.0,333.840000,0.000000,0.000000 +-3.0,333.960000,0.000000,0.000000 +-3.0,334.080000,0.000000,0.000000 +-3.0,334.200000,0.000000,0.000000 +-3.0,334.320000,0.000000,0.000000 +-3.0,334.440000,0.000000,0.000000 +-3.0,334.560000,0.000000,0.000000 +-3.0,334.680000,0.000000,0.000000 +-3.0,334.800000,0.000000,0.000000 +-3.0,334.920000,0.000000,0.000000 +-3.0,335.040000,0.000000,0.000000 +-3.0,335.160000,0.000000,0.000000 +-3.0,335.280000,0.000000,0.000000 +-3.0,335.400000,0.000000,0.000000 +-3.0,335.520000,0.000000,0.000000 +-3.0,335.640000,0.000000,0.000000 +-3.0,335.760000,0.000000,0.000000 +-3.0,335.880000,0.000000,0.000000 +-3.0,336.000000,0.000000,0.000000 +-3.0,336.120000,0.000000,0.000000 +-3.0,336.240000,0.000000,0.000000 +-3.0,336.360000,0.000000,0.000000 +-3.0,336.480000,0.000000,0.000000 +-3.0,336.600000,0.000000,0.000000 +-3.0,336.720000,0.000000,0.000000 +-3.0,336.840000,0.000000,0.000000 +-3.0,336.960000,0.000000,0.000000 +-3.0,337.080000,0.000000,0.000000 +-3.0,337.200000,0.000000,0.000000 +-3.0,337.320000,0.000000,0.000000 +-3.0,337.440000,0.000000,0.000000 +-3.0,337.560000,0.000000,0.000000 +-3.0,337.680000,0.000000,0.000000 +-3.0,337.800000,0.000000,0.000000 +-3.0,337.920000,0.000000,0.000000 +-3.0,338.040000,0.000000,0.000000 +-3.0,338.160000,0.000000,0.000000 +-3.0,338.280000,0.000000,0.000000 +-3.0,338.400000,0.000000,0.000000 +-3.0,338.520000,0.000000,0.000000 +-3.0,338.640000,0.000000,0.000000 +-3.0,338.760000,0.000000,0.000000 +-3.0,338.880000,0.000000,0.000000 +-3.0,339.000000,0.000000,0.000000 +-3.0,339.120000,0.000000,0.000000 +-3.0,339.240000,0.000000,0.000000 +-3.0,339.360000,0.000000,0.000000 +-3.0,339.480000,0.000000,0.000000 +-3.0,339.600000,0.000000,0.000000 +-3.0,339.720000,0.000000,0.000000 +-3.0,339.840000,0.000000,0.000000 +-3.0,339.960000,0.000000,0.000000 +-3.0,340.080000,0.000000,0.000000 +-3.0,340.200000,0.000000,0.000000 +-3.0,340.320000,0.000000,0.000000 +-3.0,340.440000,0.000000,0.000000 +-3.0,340.560000,0.000000,0.000000 +-3.0,340.680000,0.000000,0.000000 +-3.0,340.800000,0.000000,0.000000 +-3.0,340.920000,0.000000,0.000000 +-3.0,341.040000,0.000000,0.000000 +-3.0,341.160000,0.000000,0.000000 +-3.0,341.280000,0.000000,0.000000 +-3.0,341.400000,0.000000,0.000000 +-3.0,341.520000,0.000000,0.000000 +-3.0,341.640000,0.000000,0.000000 +-3.0,341.760000,0.000000,0.000000 +-3.0,341.880000,0.000000,0.000000 +-3.0,342.000000,0.000000,0.000000 +-3.0,342.120000,0.000000,0.000000 +-3.0,342.240000,0.000000,0.000000 +-3.0,342.360000,0.000000,0.000000 +-3.0,342.480000,0.000000,0.000000 +-3.0,342.600000,0.000000,0.000000 +-3.0,342.720000,0.000000,0.000000 +-3.0,342.840000,0.000000,0.000000 +-3.0,342.960000,0.000000,0.000000 +-3.0,343.080000,0.000000,0.000000 +-3.0,343.200000,0.000000,0.000000 +-3.0,343.320000,0.000000,0.000000 +-3.0,343.440000,0.000000,0.000000 +-3.0,343.560000,0.000000,0.000000 +-3.0,343.680000,0.000000,0.000000 +-3.0,343.800000,0.000000,0.000000 +-3.0,343.920000,0.000000,0.000000 +-3.0,344.040000,0.000000,0.000000 +-3.0,344.160000,0.000000,0.000000 +-3.0,344.280000,0.000000,0.000000 +-3.0,344.400000,0.000000,0.000000 +-3.0,344.520000,0.000000,0.000000 +-3.0,344.640000,0.000000,0.000000 +-3.0,344.760000,0.000000,0.000000 +-3.0,344.880000,0.000000,0.000000 +-3.0,345.000000,0.000000,0.000000 +-3.0,345.120000,0.000000,0.000000 +-3.0,345.240000,0.000000,0.000000 +-3.0,345.360000,0.000000,0.000000 +-3.0,345.480000,0.000000,0.000000 +-3.0,345.600000,0.000000,0.000000 +-3.0,345.720000,0.000000,0.000000 +-3.0,345.840000,0.000000,0.000000 +-3.0,345.960000,0.000000,0.000000 +-3.0,346.080000,0.000000,0.000000 +-3.0,346.200000,0.000000,0.000000 +-3.0,346.320000,0.000000,0.000000 +-3.0,346.440000,0.000000,0.000000 +-3.0,346.560000,0.000000,0.000000 +-3.0,346.680000,0.000000,0.000000 +-3.0,346.800000,0.000000,0.000000 +-3.0,346.920000,0.000000,0.000000 +-3.0,347.040000,0.000000,0.000000 +-3.0,347.160000,0.000000,0.000000 +-3.0,347.280000,0.000000,0.000000 +-3.0,347.400000,0.000000,0.000000 +-3.0,347.520000,0.000000,0.000000 +-3.0,347.640000,0.000000,0.000000 +-3.0,347.760000,0.000000,0.000000 +-3.0,347.880000,0.000000,0.000000 +-3.0,348.000000,0.000000,0.000000 +-3.0,348.120000,0.000000,0.000000 +-3.0,348.240000,0.000000,0.000000 +-3.0,348.360000,0.000000,0.000000 +-3.0,348.480000,0.000000,0.000000 +-3.0,348.600000,0.000000,0.000000 +-3.0,348.720000,0.000000,0.000000 +-3.0,348.840000,0.000000,0.000000 +-3.0,348.960000,0.000000,0.000000 +-3.0,349.080000,0.000000,0.000000 +-3.0,349.200000,0.000000,0.000000 +-3.0,349.320000,0.000000,0.000000 +-3.0,349.440000,0.000000,0.000000 +-3.0,349.560000,0.000000,0.000000 +-3.0,349.680000,0.000000,0.000000 +-3.0,349.800000,0.000000,0.000000 +-3.0,349.920000,0.000000,0.000000 +-3.0,350.040000,0.000000,0.000000 +-3.0,350.160000,0.000000,0.000000 +-3.0,350.280000,0.000000,0.000000 +-3.0,350.400000,0.000000,0.000000 +-3.0,350.520000,0.000000,0.000000 +-3.0,350.640000,0.000000,0.000000 +-3.0,350.760000,0.000000,0.000000 +-3.0,350.880000,0.000000,0.000000 +-3.0,351.000000,0.000000,0.000000 +-3.0,351.120000,0.000000,0.000000 +-3.0,351.240000,0.000000,0.000000 +-3.0,351.360000,0.000000,0.000000 +-3.0,351.480000,0.000000,0.000000 +-3.0,351.600000,0.000000,0.000000 +-3.0,351.720000,0.000000,0.000000 +-3.0,351.840000,0.000000,0.000000 +-3.0,351.960000,0.000000,0.000000 +-3.0,352.080000,0.000000,0.000000 +-3.0,352.200000,0.000000,0.000000 +-3.0,352.320000,0.000000,0.000000 +-3.0,352.440000,0.000000,0.000000 +-3.0,352.560000,0.000000,0.000000 +-3.0,352.680000,0.000000,0.000000 +-3.0,352.800000,0.000000,0.000000 +-3.0,352.920000,0.000000,0.000000 +-3.0,353.040000,0.000000,0.000000 +-3.0,353.160000,0.000000,0.000000 +-3.0,353.280000,0.000000,0.000000 +-3.0,353.400000,0.000000,0.000000 +-3.0,353.520000,0.000000,0.000000 +-3.0,353.640000,0.000000,0.000000 +-3.0,353.760000,0.000000,0.000000 +-3.0,353.880000,0.000000,0.000000 +-3.0,354.000000,0.000000,0.000000 +-3.0,354.120000,0.000000,0.000000 +-3.0,354.240000,0.000000,0.000000 +-3.0,354.360000,0.000000,0.000000 +-3.0,354.480000,0.000000,0.000000 +-3.0,354.600000,0.000000,0.000000 +-3.0,354.720000,0.000000,0.000000 +-3.0,354.840000,0.000000,0.000000 +-3.0,354.960000,0.000000,0.000000 +-3.0,355.080000,0.000000,0.000000 +-3.0,355.200000,0.000000,0.000000 +-3.0,355.320000,0.000000,0.000000 +-3.0,355.440000,0.000000,0.000000 +-3.0,355.560000,0.000000,0.000000 +-3.0,355.680000,0.000000,0.000000 +-3.0,355.800000,0.000000,0.000000 +-3.0,355.920000,0.000000,0.000000 +-3.0,356.040000,0.000000,0.000000 +-3.0,356.160000,0.000000,0.000000 +-3.0,356.280000,0.000000,0.000000 +-3.0,356.400000,0.000000,0.000000 +-3.0,356.520000,0.000000,0.000000 +-3.0,356.640000,0.000000,0.000000 +-3.0,356.760000,0.000000,0.000000 +-3.0,356.880000,0.000000,0.000000 +-3.0,357.000000,0.000000,0.000000 +-3.0,357.120000,0.000000,0.000000 +-3.0,357.240000,0.000000,0.000000 +-3.0,357.360000,0.000000,0.000000 +-3.0,357.480000,0.000000,0.000000 +-3.0,357.600000,0.000000,0.000000 +-3.0,357.720000,0.000000,0.000000 +-3.0,357.840000,0.000000,0.000000 +-3.0,357.960000,0.000000,0.000000 +-3.0,358.080000,0.000000,0.000000 +-3.0,358.200000,0.000000,0.000000 +-3.0,358.320000,0.000000,0.000000 +-3.0,358.440000,0.000000,0.000000 +-3.0,358.560000,0.000000,0.000000 +-3.0,358.680000,0.000000,0.000000 +-3.0,358.800000,0.000000,0.000000 +-3.0,358.920000,0.000000,0.000000 +-3.0,359.040000,0.000000,0.000000 +-3.0,359.160000,0.000000,0.000000 +-3.0,359.280000,0.000000,0.000000 +-3.0,359.400000,0.000000,0.000000 +-3.0,359.520000,0.000000,0.000000 +-3.0,359.640000,0.000000,0.000000 +-3.0,359.760000,0.000000,0.000000 +-3.0,359.880000,0.000000,0.000000 diff --git a/scripts/trajectories/full_circle_in_15s.csv b/scripts/trajectories/full_circle_in_15s.csv index ad09f93413..e2f6939939 100644 --- a/scripts/trajectories/full_circle_in_15s.csv +++ b/scripts/trajectories/full_circle_in_15s.csv @@ -1,3000 +1,3000 @@ -0,1.000000,0.000000,0.000000,0.000000 -1,0.999999,0.000000,0.000000,0.001047 -2,0.999998,0.000000,0.000000,0.002094 -3,0.999995,0.000000,0.000000,0.003142 -4,0.999991,0.000000,0.000000,0.004189 -5,0.999986,0.000000,0.000000,0.005236 -6,0.999980,0.000000,0.000000,0.006283 -7,0.999973,0.000000,0.000000,0.007330 -8,0.999965,0.000000,0.000000,0.008377 -9,0.999956,0.000000,0.000000,0.009425 -10,0.999945,0.000000,0.000000,0.010472 -11,0.999934,0.000000,0.000000,0.011519 -12,0.999921,0.000000,0.000000,0.012566 -13,0.999907,0.000000,0.000000,0.013613 -14,0.999893,0.000000,0.000000,0.014660 -15,0.999877,0.000000,0.000000,0.015707 -16,0.999860,0.000000,0.000000,0.016754 -17,0.999842,0.000000,0.000000,0.017801 -18,0.999822,0.000000,0.000000,0.018848 -19,0.999802,0.000000,0.000000,0.019895 -20,0.999781,0.000000,0.000000,0.020942 -21,0.999758,0.000000,0.000000,0.021989 -22,0.999735,0.000000,0.000000,0.023036 -23,0.999710,0.000000,0.000000,0.024083 -24,0.999684,0.000000,0.000000,0.025130 -25,0.999657,0.000000,0.000000,0.026177 -26,0.999629,0.000000,0.000000,0.027224 -27,0.999600,0.000000,0.000000,0.028271 -28,0.999570,0.000000,0.000000,0.029317 -29,0.999539,0.000000,0.000000,0.030364 -30,0.999507,0.000000,0.000000,0.031411 -31,0.999473,0.000000,0.000000,0.032457 -32,0.999439,0.000000,0.000000,0.033504 -33,0.999403,0.000000,0.000000,0.034551 -34,0.999366,0.000000,0.000000,0.035597 -35,0.999328,0.000000,0.000000,0.036644 -36,0.999289,0.000000,0.000000,0.037690 -37,0.999249,0.000000,0.000000,0.038737 -38,0.999208,0.000000,0.000000,0.039783 -39,0.999166,0.000000,0.000000,0.040829 -40,0.999123,0.000000,0.000000,0.041876 -41,0.999078,0.000000,0.000000,0.042922 -42,0.999033,0.000000,0.000000,0.043968 -43,0.998986,0.000000,0.000000,0.045014 -44,0.998939,0.000000,0.000000,0.046060 -45,0.998890,0.000000,0.000000,0.047106 -46,0.998840,0.000000,0.000000,0.048152 -47,0.998789,0.000000,0.000000,0.049198 -48,0.998737,0.000000,0.000000,0.050244 -49,0.998684,0.000000,0.000000,0.051290 -50,0.998630,0.000000,0.000000,0.052336 -51,0.998574,0.000000,0.000000,0.053382 -52,0.998518,0.000000,0.000000,0.054427 -53,0.998460,0.000000,0.000000,0.055473 -54,0.998402,0.000000,0.000000,0.056519 -55,0.998342,0.000000,0.000000,0.057564 -56,0.998281,0.000000,0.000000,0.058609 -57,0.998219,0.000000,0.000000,0.059655 -58,0.998156,0.000000,0.000000,0.060700 -59,0.998092,0.000000,0.000000,0.061745 -60,0.998027,0.000000,0.000000,0.062791 -61,0.997960,0.000000,0.000000,0.063836 -62,0.997893,0.000000,0.000000,0.064881 -63,0.997825,0.000000,0.000000,0.065926 -64,0.997755,0.000000,0.000000,0.066970 -65,0.997684,0.000000,0.000000,0.068015 -66,0.997613,0.000000,0.000000,0.069060 -67,0.997540,0.000000,0.000000,0.070105 -68,0.997466,0.000000,0.000000,0.071149 -69,0.997391,0.000000,0.000000,0.072194 -70,0.997314,0.000000,0.000000,0.073238 -71,0.997237,0.000000,0.000000,0.074283 -72,0.997159,0.000000,0.000000,0.075327 -73,0.997079,0.000000,0.000000,0.076371 -74,0.996999,0.000000,0.000000,0.077415 -75,0.996917,0.000000,0.000000,0.078459 -76,0.996835,0.000000,0.000000,0.079503 -77,0.996751,0.000000,0.000000,0.080547 -78,0.996666,0.000000,0.000000,0.081591 -79,0.996580,0.000000,0.000000,0.082634 -80,0.996493,0.000000,0.000000,0.083678 -81,0.996405,0.000000,0.000000,0.084721 -82,0.996315,0.000000,0.000000,0.085765 -83,0.996225,0.000000,0.000000,0.086808 -84,0.996134,0.000000,0.000000,0.087851 -85,0.996041,0.000000,0.000000,0.088894 -86,0.995947,0.000000,0.000000,0.089937 -87,0.995853,0.000000,0.000000,0.090980 -88,0.995757,0.000000,0.000000,0.092023 -89,0.995660,0.000000,0.000000,0.093066 -90,0.995562,0.000000,0.000000,0.094108 -91,0.995463,0.000000,0.000000,0.095151 -92,0.995363,0.000000,0.000000,0.096193 -93,0.995261,0.000000,0.000000,0.097235 -94,0.995159,0.000000,0.000000,0.098278 -95,0.995056,0.000000,0.000000,0.099320 -96,0.994951,0.000000,0.000000,0.100362 -97,0.994845,0.000000,0.000000,0.101404 -98,0.994739,0.000000,0.000000,0.102445 -99,0.994631,0.000000,0.000000,0.103487 -100,0.994522,0.000000,0.000000,0.104528 -101,0.994412,0.000000,0.000000,0.105570 -102,0.994301,0.000000,0.000000,0.106611 -103,0.994189,0.000000,0.000000,0.107652 -104,0.994075,0.000000,0.000000,0.108693 -105,0.993961,0.000000,0.000000,0.109734 -106,0.993845,0.000000,0.000000,0.110775 -107,0.993729,0.000000,0.000000,0.111816 -108,0.993611,0.000000,0.000000,0.112856 -109,0.993493,0.000000,0.000000,0.113897 -110,0.993373,0.000000,0.000000,0.114937 -111,0.993252,0.000000,0.000000,0.115977 -112,0.993130,0.000000,0.000000,0.117017 -113,0.993007,0.000000,0.000000,0.118057 -114,0.992883,0.000000,0.000000,0.119097 -115,0.992757,0.000000,0.000000,0.120137 -116,0.992631,0.000000,0.000000,0.121176 -117,0.992504,0.000000,0.000000,0.122216 -118,0.992375,0.000000,0.000000,0.123255 -119,0.992245,0.000000,0.000000,0.124294 -120,0.992115,0.000000,0.000000,0.125333 -121,0.991983,0.000000,0.000000,0.126372 -122,0.991850,0.000000,0.000000,0.127411 -123,0.991716,0.000000,0.000000,0.128449 -124,0.991581,0.000000,0.000000,0.129488 -125,0.991445,0.000000,0.000000,0.130526 -126,0.991308,0.000000,0.000000,0.131564 -127,0.991169,0.000000,0.000000,0.132602 -128,0.991030,0.000000,0.000000,0.133640 -129,0.990889,0.000000,0.000000,0.134678 -130,0.990748,0.000000,0.000000,0.135716 -131,0.990605,0.000000,0.000000,0.136753 -132,0.990461,0.000000,0.000000,0.137790 -133,0.990317,0.000000,0.000000,0.138827 -134,0.990171,0.000000,0.000000,0.139864 -135,0.990024,0.000000,0.000000,0.140901 -136,0.989876,0.000000,0.000000,0.141938 -137,0.989726,0.000000,0.000000,0.142974 -138,0.989576,0.000000,0.000000,0.144011 -139,0.989425,0.000000,0.000000,0.145047 -140,0.989272,0.000000,0.000000,0.146083 -141,0.989119,0.000000,0.000000,0.147119 -142,0.988964,0.000000,0.000000,0.148155 -143,0.988809,0.000000,0.000000,0.149190 -144,0.988652,0.000000,0.000000,0.150226 -145,0.988494,0.000000,0.000000,0.151261 -146,0.988335,0.000000,0.000000,0.152296 -147,0.988175,0.000000,0.000000,0.153331 -148,0.988014,0.000000,0.000000,0.154366 -149,0.987852,0.000000,0.000000,0.155400 -150,0.987688,0.000000,0.000000,0.156434 -151,0.987524,0.000000,0.000000,0.157469 -152,0.987359,0.000000,0.000000,0.158503 -153,0.987192,0.000000,0.000000,0.159537 -154,0.987024,0.000000,0.000000,0.160570 -155,0.986856,0.000000,0.000000,0.161604 -156,0.986686,0.000000,0.000000,0.162637 -157,0.986515,0.000000,0.000000,0.163670 -158,0.986343,0.000000,0.000000,0.164703 -159,0.986170,0.000000,0.000000,0.165736 -160,0.985996,0.000000,0.000000,0.166769 -161,0.985821,0.000000,0.000000,0.167801 -162,0.985645,0.000000,0.000000,0.168833 -163,0.985467,0.000000,0.000000,0.169866 -164,0.985289,0.000000,0.000000,0.170897 -165,0.985109,0.000000,0.000000,0.171929 -166,0.984929,0.000000,0.000000,0.172961 -167,0.984747,0.000000,0.000000,0.173992 -168,0.984564,0.000000,0.000000,0.175023 -169,0.984381,0.000000,0.000000,0.176054 -170,0.984196,0.000000,0.000000,0.177085 -171,0.984010,0.000000,0.000000,0.178115 -172,0.983823,0.000000,0.000000,0.179146 -173,0.983634,0.000000,0.000000,0.180176 -174,0.983445,0.000000,0.000000,0.181206 -175,0.983255,0.000000,0.000000,0.182236 -176,0.983064,0.000000,0.000000,0.183265 -177,0.982871,0.000000,0.000000,0.184294 -178,0.982678,0.000000,0.000000,0.185324 -179,0.982483,0.000000,0.000000,0.186353 -180,0.982287,0.000000,0.000000,0.187381 -181,0.982090,0.000000,0.000000,0.188410 -182,0.981893,0.000000,0.000000,0.189438 -183,0.981694,0.000000,0.000000,0.190466 -184,0.981494,0.000000,0.000000,0.191494 -185,0.981293,0.000000,0.000000,0.192522 -186,0.981091,0.000000,0.000000,0.193549 -187,0.980887,0.000000,0.000000,0.194577 -188,0.980683,0.000000,0.000000,0.195604 -189,0.980478,0.000000,0.000000,0.196631 -190,0.980271,0.000000,0.000000,0.197657 -191,0.980064,0.000000,0.000000,0.198684 -192,0.979855,0.000000,0.000000,0.199710 -193,0.979645,0.000000,0.000000,0.200736 -194,0.979435,0.000000,0.000000,0.201762 -195,0.979223,0.000000,0.000000,0.202787 -196,0.979010,0.000000,0.000000,0.203813 -197,0.978796,0.000000,0.000000,0.204838 -198,0.978581,0.000000,0.000000,0.205863 -199,0.978365,0.000000,0.000000,0.206887 -200,0.978148,0.000000,0.000000,0.207912 -201,0.977929,0.000000,0.000000,0.208936 -202,0.977710,0.000000,0.000000,0.209960 -203,0.977490,0.000000,0.000000,0.210984 -204,0.977268,0.000000,0.000000,0.212007 -205,0.977046,0.000000,0.000000,0.213030 -206,0.976822,0.000000,0.000000,0.214053 -207,0.976597,0.000000,0.000000,0.215076 -208,0.976371,0.000000,0.000000,0.216099 -209,0.976145,0.000000,0.000000,0.217121 -210,0.975917,0.000000,0.000000,0.218143 -211,0.975688,0.000000,0.000000,0.219165 -212,0.975458,0.000000,0.000000,0.220187 -213,0.975227,0.000000,0.000000,0.221208 -214,0.974994,0.000000,0.000000,0.222229 -215,0.974761,0.000000,0.000000,0.223250 -216,0.974527,0.000000,0.000000,0.224271 -217,0.974291,0.000000,0.000000,0.225291 -218,0.974055,0.000000,0.000000,0.226311 -219,0.973817,0.000000,0.000000,0.227331 -220,0.973579,0.000000,0.000000,0.228351 -221,0.973339,0.000000,0.000000,0.229370 -222,0.973099,0.000000,0.000000,0.230389 -223,0.972857,0.000000,0.000000,0.231408 -224,0.972614,0.000000,0.000000,0.232427 -225,0.972370,0.000000,0.000000,0.233445 -226,0.972125,0.000000,0.000000,0.234463 -227,0.971879,0.000000,0.000000,0.235481 -228,0.971632,0.000000,0.000000,0.236499 -229,0.971384,0.000000,0.000000,0.237516 -230,0.971134,0.000000,0.000000,0.238533 -231,0.970884,0.000000,0.000000,0.239550 -232,0.970633,0.000000,0.000000,0.240567 -233,0.970380,0.000000,0.000000,0.241583 -234,0.970127,0.000000,0.000000,0.242599 -235,0.969872,0.000000,0.000000,0.243615 -236,0.969616,0.000000,0.000000,0.244631 -237,0.969360,0.000000,0.000000,0.245646 -238,0.969102,0.000000,0.000000,0.246661 -239,0.968843,0.000000,0.000000,0.247675 -240,0.968583,0.000000,0.000000,0.248690 -241,0.968322,0.000000,0.000000,0.249704 -242,0.968060,0.000000,0.000000,0.250718 -243,0.967797,0.000000,0.000000,0.251732 -244,0.967533,0.000000,0.000000,0.252745 -245,0.967268,0.000000,0.000000,0.253758 -246,0.967001,0.000000,0.000000,0.254771 -247,0.966734,0.000000,0.000000,0.255783 -248,0.966466,0.000000,0.000000,0.256795 -249,0.966196,0.000000,0.000000,0.257807 -250,0.965926,0.000000,0.000000,0.258819 -251,0.965654,0.000000,0.000000,0.259830 -252,0.965382,0.000000,0.000000,0.260842 -253,0.965108,0.000000,0.000000,0.261852 -254,0.964833,0.000000,0.000000,0.262863 -255,0.964557,0.000000,0.000000,0.263873 -256,0.964281,0.000000,0.000000,0.264883 -257,0.964003,0.000000,0.000000,0.265893 -258,0.963724,0.000000,0.000000,0.266902 -259,0.963444,0.000000,0.000000,0.267911 -260,0.963163,0.000000,0.000000,0.268920 -261,0.962880,0.000000,0.000000,0.269928 -262,0.962597,0.000000,0.000000,0.270936 -263,0.962313,0.000000,0.000000,0.271944 -264,0.962028,0.000000,0.000000,0.272952 -265,0.961741,0.000000,0.000000,0.273959 -266,0.961454,0.000000,0.000000,0.274966 -267,0.961165,0.000000,0.000000,0.275973 -268,0.960876,0.000000,0.000000,0.276979 -269,0.960585,0.000000,0.000000,0.277985 -270,0.960294,0.000000,0.000000,0.278991 -271,0.960001,0.000000,0.000000,0.279997 -272,0.959707,0.000000,0.000000,0.281002 -273,0.959412,0.000000,0.000000,0.282007 -274,0.959117,0.000000,0.000000,0.283011 -275,0.958820,0.000000,0.000000,0.284015 -276,0.958522,0.000000,0.000000,0.285019 -277,0.958223,0.000000,0.000000,0.286023 -278,0.957923,0.000000,0.000000,0.287026 -279,0.957622,0.000000,0.000000,0.288029 -280,0.957319,0.000000,0.000000,0.289032 -281,0.957016,0.000000,0.000000,0.290034 -282,0.956712,0.000000,0.000000,0.291036 -283,0.956407,0.000000,0.000000,0.292038 -284,0.956100,0.000000,0.000000,0.293039 -285,0.955793,0.000000,0.000000,0.294040 -286,0.955485,0.000000,0.000000,0.295041 -287,0.955175,0.000000,0.000000,0.296041 -288,0.954865,0.000000,0.000000,0.297042 -289,0.954553,0.000000,0.000000,0.298041 -290,0.954240,0.000000,0.000000,0.299041 -291,0.953927,0.000000,0.000000,0.300040 -292,0.953612,0.000000,0.000000,0.301039 -293,0.953296,0.000000,0.000000,0.302037 -294,0.952979,0.000000,0.000000,0.303035 -295,0.952661,0.000000,0.000000,0.304033 -296,0.952343,0.000000,0.000000,0.305031 -297,0.952023,0.000000,0.000000,0.306028 -298,0.951702,0.000000,0.000000,0.307024 -299,0.951380,0.000000,0.000000,0.308021 -300,0.951057,0.000000,0.000000,0.309017 -301,0.950732,0.000000,0.000000,0.310013 -302,0.950407,0.000000,0.000000,0.311008 -303,0.950081,0.000000,0.000000,0.312003 -304,0.949754,0.000000,0.000000,0.312998 -305,0.949425,0.000000,0.000000,0.313992 -306,0.949096,0.000000,0.000000,0.314987 -307,0.948766,0.000000,0.000000,0.315980 -308,0.948434,0.000000,0.000000,0.316974 -309,0.948102,0.000000,0.000000,0.317967 -310,0.947768,0.000000,0.000000,0.318959 -311,0.947434,0.000000,0.000000,0.319952 -312,0.947098,0.000000,0.000000,0.320944 -313,0.946762,0.000000,0.000000,0.321935 -314,0.946424,0.000000,0.000000,0.322927 -315,0.946085,0.000000,0.000000,0.323917 -316,0.945746,0.000000,0.000000,0.324908 -317,0.945405,0.000000,0.000000,0.325898 -318,0.945063,0.000000,0.000000,0.326888 -319,0.944720,0.000000,0.000000,0.327878 -320,0.944376,0.000000,0.000000,0.328867 -321,0.944031,0.000000,0.000000,0.329855 -322,0.943686,0.000000,0.000000,0.330844 -323,0.943339,0.000000,0.000000,0.331832 -324,0.942991,0.000000,0.000000,0.332820 -325,0.942641,0.000000,0.000000,0.333807 -326,0.942291,0.000000,0.000000,0.334794 -327,0.941940,0.000000,0.000000,0.335780 -328,0.941588,0.000000,0.000000,0.336767 -329,0.941235,0.000000,0.000000,0.337752 -330,0.940881,0.000000,0.000000,0.338738 -331,0.940526,0.000000,0.000000,0.339723 -332,0.940169,0.000000,0.000000,0.340708 -333,0.939812,0.000000,0.000000,0.341692 -334,0.939454,0.000000,0.000000,0.342676 -335,0.939094,0.000000,0.000000,0.343660 -336,0.938734,0.000000,0.000000,0.344643 -337,0.938372,0.000000,0.000000,0.345626 -338,0.938010,0.000000,0.000000,0.346608 -339,0.937646,0.000000,0.000000,0.347590 -340,0.937282,0.000000,0.000000,0.348572 -341,0.936916,0.000000,0.000000,0.349553 -342,0.936550,0.000000,0.000000,0.350534 -343,0.936182,0.000000,0.000000,0.351515 -344,0.935814,0.000000,0.000000,0.352495 -345,0.935444,0.000000,0.000000,0.353475 -346,0.935073,0.000000,0.000000,0.354454 -347,0.934702,0.000000,0.000000,0.355433 -348,0.934329,0.000000,0.000000,0.356412 -349,0.933955,0.000000,0.000000,0.357390 -350,0.933580,0.000000,0.000000,0.358368 -351,0.933205,0.000000,0.000000,0.359345 -352,0.932828,0.000000,0.000000,0.360322 -353,0.932450,0.000000,0.000000,0.361299 -354,0.932071,0.000000,0.000000,0.362275 -355,0.931691,0.000000,0.000000,0.363251 -356,0.931310,0.000000,0.000000,0.364227 -357,0.930928,0.000000,0.000000,0.365202 -358,0.930545,0.000000,0.000000,0.366176 -359,0.930161,0.000000,0.000000,0.367151 -360,0.929776,0.000000,0.000000,0.368125 -361,0.929390,0.000000,0.000000,0.369098 -362,0.929003,0.000000,0.000000,0.370071 -363,0.928615,0.000000,0.000000,0.371044 -364,0.928226,0.000000,0.000000,0.372016 -365,0.927836,0.000000,0.000000,0.372988 -366,0.927445,0.000000,0.000000,0.373959 -367,0.927053,0.000000,0.000000,0.374930 -368,0.926660,0.000000,0.000000,0.375901 -369,0.926266,0.000000,0.000000,0.376871 -370,0.925871,0.000000,0.000000,0.377841 -371,0.925474,0.000000,0.000000,0.378810 -372,0.925077,0.000000,0.000000,0.379779 -373,0.924679,0.000000,0.000000,0.380748 -374,0.924280,0.000000,0.000000,0.381716 -375,0.923880,0.000000,0.000000,0.382683 -376,0.923478,0.000000,0.000000,0.383651 -377,0.923076,0.000000,0.000000,0.384618 -378,0.922673,0.000000,0.000000,0.385584 -379,0.922268,0.000000,0.000000,0.386550 -380,0.921863,0.000000,0.000000,0.387516 -381,0.921457,0.000000,0.000000,0.388481 -382,0.921050,0.000000,0.000000,0.389445 -383,0.920641,0.000000,0.000000,0.390410 -384,0.920232,0.000000,0.000000,0.391374 -385,0.919821,0.000000,0.000000,0.392337 -386,0.919410,0.000000,0.000000,0.393300 -387,0.918998,0.000000,0.000000,0.394263 -388,0.918584,0.000000,0.000000,0.395225 -389,0.918170,0.000000,0.000000,0.396187 -390,0.917755,0.000000,0.000000,0.397148 -391,0.917338,0.000000,0.000000,0.398109 -392,0.916921,0.000000,0.000000,0.399069 -393,0.916502,0.000000,0.000000,0.400029 -394,0.916083,0.000000,0.000000,0.400989 -395,0.915663,0.000000,0.000000,0.401948 -396,0.915241,0.000000,0.000000,0.402906 -397,0.914819,0.000000,0.000000,0.403865 -398,0.914395,0.000000,0.000000,0.404822 -399,0.913971,0.000000,0.000000,0.405780 -400,0.913545,0.000000,0.000000,0.406737 -401,0.913119,0.000000,0.000000,0.407693 -402,0.912692,0.000000,0.000000,0.408649 -403,0.912263,0.000000,0.000000,0.409605 -404,0.911834,0.000000,0.000000,0.410560 -405,0.911403,0.000000,0.000000,0.411514 -406,0.910972,0.000000,0.000000,0.412469 -407,0.910539,0.000000,0.000000,0.413422 -408,0.910106,0.000000,0.000000,0.414376 -409,0.909672,0.000000,0.000000,0.415328 -410,0.909236,0.000000,0.000000,0.416281 -411,0.908800,0.000000,0.000000,0.417233 -412,0.908362,0.000000,0.000000,0.418184 -413,0.907924,0.000000,0.000000,0.419135 -414,0.907484,0.000000,0.000000,0.420086 -415,0.907044,0.000000,0.000000,0.421036 -416,0.906603,0.000000,0.000000,0.421985 -417,0.906160,0.000000,0.000000,0.422935 -418,0.905717,0.000000,0.000000,0.423883 -419,0.905272,0.000000,0.000000,0.424832 -420,0.904827,0.000000,0.000000,0.425779 -421,0.904381,0.000000,0.000000,0.426727 -422,0.903933,0.000000,0.000000,0.427673 -423,0.903485,0.000000,0.000000,0.428620 -424,0.903036,0.000000,0.000000,0.429566 -425,0.902585,0.000000,0.000000,0.430511 -426,0.902134,0.000000,0.000000,0.431456 -427,0.901682,0.000000,0.000000,0.432401 -428,0.901228,0.000000,0.000000,0.433345 -429,0.900774,0.000000,0.000000,0.434288 -430,0.900319,0.000000,0.000000,0.435231 -431,0.899863,0.000000,0.000000,0.436174 -432,0.899405,0.000000,0.000000,0.437116 -433,0.898947,0.000000,0.000000,0.438057 -434,0.898488,0.000000,0.000000,0.438999 -435,0.898028,0.000000,0.000000,0.439939 -436,0.897566,0.000000,0.000000,0.440879 -437,0.897104,0.000000,0.000000,0.441819 -438,0.896641,0.000000,0.000000,0.442758 -439,0.896177,0.000000,0.000000,0.443697 -440,0.895712,0.000000,0.000000,0.444635 -441,0.895246,0.000000,0.000000,0.445573 -442,0.894779,0.000000,0.000000,0.446510 -443,0.894310,0.000000,0.000000,0.447447 -444,0.893841,0.000000,0.000000,0.448383 -445,0.893371,0.000000,0.000000,0.449319 -446,0.892900,0.000000,0.000000,0.450254 -447,0.892428,0.000000,0.000000,0.451189 -448,0.891955,0.000000,0.000000,0.452123 -449,0.891481,0.000000,0.000000,0.453057 -450,0.891007,0.000000,0.000000,0.453990 -451,0.890531,0.000000,0.000000,0.454923 -452,0.890054,0.000000,0.000000,0.455856 -453,0.889576,0.000000,0.000000,0.456787 -454,0.889097,0.000000,0.000000,0.457719 -455,0.888617,0.000000,0.000000,0.458650 -456,0.888136,0.000000,0.000000,0.459580 -457,0.887655,0.000000,0.000000,0.460510 -458,0.887172,0.000000,0.000000,0.461439 -459,0.886688,0.000000,0.000000,0.462368 -460,0.886204,0.000000,0.000000,0.463296 -461,0.885718,0.000000,0.000000,0.464224 -462,0.885231,0.000000,0.000000,0.465151 -463,0.884744,0.000000,0.000000,0.466078 -464,0.884255,0.000000,0.000000,0.467004 -465,0.883766,0.000000,0.000000,0.467930 -466,0.883275,0.000000,0.000000,0.468855 -467,0.882784,0.000000,0.000000,0.469780 -468,0.882291,0.000000,0.000000,0.470704 -469,0.881798,0.000000,0.000000,0.471628 -470,0.881303,0.000000,0.000000,0.472551 -471,0.880808,0.000000,0.000000,0.473473 -472,0.880312,0.000000,0.000000,0.474396 -473,0.879815,0.000000,0.000000,0.475317 -474,0.879316,0.000000,0.000000,0.476238 -475,0.878817,0.000000,0.000000,0.477159 -476,0.878317,0.000000,0.000000,0.478079 -477,0.877816,0.000000,0.000000,0.478998 -478,0.877314,0.000000,0.000000,0.479917 -479,0.876811,0.000000,0.000000,0.480836 -480,0.876307,0.000000,0.000000,0.481754 -481,0.875802,0.000000,0.000000,0.482671 -482,0.875296,0.000000,0.000000,0.483588 -483,0.874789,0.000000,0.000000,0.484504 -484,0.874281,0.000000,0.000000,0.485420 -485,0.873772,0.000000,0.000000,0.486335 -486,0.873262,0.000000,0.000000,0.487250 -487,0.872752,0.000000,0.000000,0.488164 -488,0.872240,0.000000,0.000000,0.489078 -489,0.871727,0.000000,0.000000,0.489991 -490,0.871214,0.000000,0.000000,0.490904 -491,0.870699,0.000000,0.000000,0.491816 -492,0.870184,0.000000,0.000000,0.492727 -493,0.869667,0.000000,0.000000,0.493638 -494,0.869150,0.000000,0.000000,0.494549 -495,0.868632,0.000000,0.000000,0.495459 -496,0.868112,0.000000,0.000000,0.496368 -497,0.867592,0.000000,0.000000,0.497277 -498,0.867071,0.000000,0.000000,0.498185 -499,0.866549,0.000000,0.000000,0.499093 -500,0.866025,0.000000,0.000000,0.500000 -501,0.865501,0.000000,0.000000,0.500907 -502,0.864976,0.000000,0.000000,0.501813 -503,0.864450,0.000000,0.000000,0.502718 -504,0.863923,0.000000,0.000000,0.503623 -505,0.863396,0.000000,0.000000,0.504528 -506,0.862867,0.000000,0.000000,0.505431 -507,0.862337,0.000000,0.000000,0.506335 -508,0.861806,0.000000,0.000000,0.507238 -509,0.861275,0.000000,0.000000,0.508140 -510,0.860742,0.000000,0.000000,0.509041 -511,0.860208,0.000000,0.000000,0.509943 -512,0.859674,0.000000,0.000000,0.510843 -513,0.859139,0.000000,0.000000,0.511743 -514,0.858602,0.000000,0.000000,0.512642 -515,0.858065,0.000000,0.000000,0.513541 -516,0.857527,0.000000,0.000000,0.514440 -517,0.856987,0.000000,0.000000,0.515337 -518,0.856447,0.000000,0.000000,0.516234 -519,0.855906,0.000000,0.000000,0.517131 -520,0.855364,0.000000,0.000000,0.518027 -521,0.854821,0.000000,0.000000,0.518922 -522,0.854277,0.000000,0.000000,0.519817 -523,0.853733,0.000000,0.000000,0.520712 -524,0.853187,0.000000,0.000000,0.521605 -525,0.852640,0.000000,0.000000,0.522499 -526,0.852093,0.000000,0.000000,0.523391 -527,0.851544,0.000000,0.000000,0.524283 -528,0.850994,0.000000,0.000000,0.525175 -529,0.850444,0.000000,0.000000,0.526066 -530,0.849893,0.000000,0.000000,0.526956 -531,0.849340,0.000000,0.000000,0.527846 -532,0.848787,0.000000,0.000000,0.528735 -533,0.848233,0.000000,0.000000,0.529623 -534,0.847678,0.000000,0.000000,0.530511 -535,0.847122,0.000000,0.000000,0.531399 -536,0.846565,0.000000,0.000000,0.532285 -537,0.846007,0.000000,0.000000,0.533172 -538,0.845448,0.000000,0.000000,0.534057 -539,0.844889,0.000000,0.000000,0.534942 -540,0.844328,0.000000,0.000000,0.535827 -541,0.843766,0.000000,0.000000,0.536711 -542,0.843204,0.000000,0.000000,0.537594 -543,0.842640,0.000000,0.000000,0.538477 -544,0.842076,0.000000,0.000000,0.539359 -545,0.841511,0.000000,0.000000,0.540240 -546,0.840945,0.000000,0.000000,0.541121 -547,0.840377,0.000000,0.000000,0.542002 -548,0.839809,0.000000,0.000000,0.542881 -549,0.839240,0.000000,0.000000,0.543760 -550,0.838671,0.000000,0.000000,0.544639 -551,0.838100,0.000000,0.000000,0.545517 -552,0.837528,0.000000,0.000000,0.546394 -553,0.836955,0.000000,0.000000,0.547271 -554,0.836382,0.000000,0.000000,0.548147 -555,0.835807,0.000000,0.000000,0.549023 -556,0.835232,0.000000,0.000000,0.549898 -557,0.834656,0.000000,0.000000,0.550772 -558,0.834078,0.000000,0.000000,0.551646 -559,0.833500,0.000000,0.000000,0.552519 -560,0.832921,0.000000,0.000000,0.553392 -561,0.832341,0.000000,0.000000,0.554263 -562,0.831760,0.000000,0.000000,0.555135 -563,0.831179,0.000000,0.000000,0.556006 -564,0.830596,0.000000,0.000000,0.556876 -565,0.830012,0.000000,0.000000,0.557745 -566,0.829428,0.000000,0.000000,0.558614 -567,0.828842,0.000000,0.000000,0.559482 -568,0.828256,0.000000,0.000000,0.560350 -569,0.827669,0.000000,0.000000,0.561217 -570,0.827081,0.000000,0.000000,0.562083 -571,0.826492,0.000000,0.000000,0.562949 -572,0.825902,0.000000,0.000000,0.563814 -573,0.825311,0.000000,0.000000,0.564679 -574,0.824719,0.000000,0.000000,0.565543 -575,0.824126,0.000000,0.000000,0.566406 -576,0.823533,0.000000,0.000000,0.567269 -577,0.822938,0.000000,0.000000,0.568131 -578,0.822343,0.000000,0.000000,0.568993 -579,0.821746,0.000000,0.000000,0.569853 -580,0.821149,0.000000,0.000000,0.570714 -581,0.820551,0.000000,0.000000,0.571573 -582,0.819952,0.000000,0.000000,0.572432 -583,0.819352,0.000000,0.000000,0.573290 -584,0.818751,0.000000,0.000000,0.574148 -585,0.818150,0.000000,0.000000,0.575005 -586,0.817547,0.000000,0.000000,0.575862 -587,0.816944,0.000000,0.000000,0.576718 -588,0.816339,0.000000,0.000000,0.577573 -589,0.815734,0.000000,0.000000,0.578427 -590,0.815128,0.000000,0.000000,0.579281 -591,0.814521,0.000000,0.000000,0.580134 -592,0.813913,0.000000,0.000000,0.580987 -593,0.813304,0.000000,0.000000,0.581839 -594,0.812694,0.000000,0.000000,0.582690 -595,0.812084,0.000000,0.000000,0.583541 -596,0.811472,0.000000,0.000000,0.584391 -597,0.810860,0.000000,0.000000,0.585241 -598,0.810246,0.000000,0.000000,0.586090 -599,0.809632,0.000000,0.000000,0.586938 -600,0.809017,0.000000,0.000000,0.587785 -601,0.808401,0.000000,0.000000,0.588632 -602,0.807784,0.000000,0.000000,0.589478 -603,0.807166,0.000000,0.000000,0.590324 -604,0.806548,0.000000,0.000000,0.591169 -605,0.805928,0.000000,0.000000,0.592013 -606,0.805308,0.000000,0.000000,0.592857 -607,0.804687,0.000000,0.000000,0.593700 -608,0.804064,0.000000,0.000000,0.594542 -609,0.803441,0.000000,0.000000,0.595384 -610,0.802817,0.000000,0.000000,0.596225 -611,0.802193,0.000000,0.000000,0.597065 -612,0.801567,0.000000,0.000000,0.597905 -613,0.800940,0.000000,0.000000,0.598744 -614,0.800313,0.000000,0.000000,0.599582 -615,0.799685,0.000000,0.000000,0.600420 -616,0.799055,0.000000,0.000000,0.601257 -617,0.798425,0.000000,0.000000,0.602094 -618,0.797794,0.000000,0.000000,0.602930 -619,0.797163,0.000000,0.000000,0.603765 -620,0.796530,0.000000,0.000000,0.604599 -621,0.795896,0.000000,0.000000,0.605433 -622,0.795262,0.000000,0.000000,0.606266 -623,0.794627,0.000000,0.000000,0.607098 -624,0.793990,0.000000,0.000000,0.607930 -625,0.793353,0.000000,0.000000,0.608761 -626,0.792715,0.000000,0.000000,0.609592 -627,0.792077,0.000000,0.000000,0.610422 -628,0.791437,0.000000,0.000000,0.611251 -629,0.790796,0.000000,0.000000,0.612079 -630,0.790155,0.000000,0.000000,0.612907 -631,0.789513,0.000000,0.000000,0.613734 -632,0.788870,0.000000,0.000000,0.614561 -633,0.788226,0.000000,0.000000,0.615386 -634,0.787581,0.000000,0.000000,0.616211 -635,0.786935,0.000000,0.000000,0.617036 -636,0.786288,0.000000,0.000000,0.617860 -637,0.785641,0.000000,0.000000,0.618683 -638,0.784993,0.000000,0.000000,0.619505 -639,0.784343,0.000000,0.000000,0.620327 -640,0.783693,0.000000,0.000000,0.621148 -641,0.783043,0.000000,0.000000,0.621968 -642,0.782391,0.000000,0.000000,0.622788 -643,0.781738,0.000000,0.000000,0.623607 -644,0.781085,0.000000,0.000000,0.624425 -645,0.780430,0.000000,0.000000,0.625243 -646,0.779775,0.000000,0.000000,0.626060 -647,0.779119,0.000000,0.000000,0.626876 -648,0.778462,0.000000,0.000000,0.627691 -649,0.777805,0.000000,0.000000,0.628506 -650,0.777146,0.000000,0.000000,0.629320 -651,0.776487,0.000000,0.000000,0.630134 -652,0.775826,0.000000,0.000000,0.630947 -653,0.775165,0.000000,0.000000,0.631759 -654,0.774503,0.000000,0.000000,0.632570 -655,0.773840,0.000000,0.000000,0.633381 -656,0.773177,0.000000,0.000000,0.634191 -657,0.772512,0.000000,0.000000,0.635000 -658,0.771847,0.000000,0.000000,0.635809 -659,0.771180,0.000000,0.000000,0.636617 -660,0.770513,0.000000,0.000000,0.637424 -661,0.769845,0.000000,0.000000,0.638231 -662,0.769177,0.000000,0.000000,0.639036 -663,0.768507,0.000000,0.000000,0.639841 -664,0.767836,0.000000,0.000000,0.640646 -665,0.767165,0.000000,0.000000,0.641450 -666,0.766493,0.000000,0.000000,0.642253 -667,0.765820,0.000000,0.000000,0.643055 -668,0.765146,0.000000,0.000000,0.643857 -669,0.764472,0.000000,0.000000,0.644657 -670,0.763796,0.000000,0.000000,0.645458 -671,0.763120,0.000000,0.000000,0.646257 -672,0.762443,0.000000,0.000000,0.647056 -673,0.761764,0.000000,0.000000,0.647854 -674,0.761086,0.000000,0.000000,0.648651 -675,0.760406,0.000000,0.000000,0.649448 -676,0.759725,0.000000,0.000000,0.650244 -677,0.759044,0.000000,0.000000,0.651039 -678,0.758362,0.000000,0.000000,0.651834 -679,0.757679,0.000000,0.000000,0.652628 -680,0.756995,0.000000,0.000000,0.653421 -681,0.756310,0.000000,0.000000,0.654213 -682,0.755625,0.000000,0.000000,0.655005 -683,0.754939,0.000000,0.000000,0.655796 -684,0.754251,0.000000,0.000000,0.656586 -685,0.753563,0.000000,0.000000,0.657375 -686,0.752875,0.000000,0.000000,0.658164 -687,0.752185,0.000000,0.000000,0.658952 -688,0.751494,0.000000,0.000000,0.659739 -689,0.750803,0.000000,0.000000,0.660526 -690,0.750111,0.000000,0.000000,0.661312 -691,0.749418,0.000000,0.000000,0.662097 -692,0.748724,0.000000,0.000000,0.662881 -693,0.748030,0.000000,0.000000,0.663665 -694,0.747334,0.000000,0.000000,0.664448 -695,0.746638,0.000000,0.000000,0.665230 -696,0.745941,0.000000,0.000000,0.666012 -697,0.745243,0.000000,0.000000,0.666793 -698,0.744545,0.000000,0.000000,0.667573 -699,0.743845,0.000000,0.000000,0.668352 -700,0.743145,0.000000,0.000000,0.669131 -701,0.742444,0.000000,0.000000,0.669908 -702,0.741742,0.000000,0.000000,0.670686 -703,0.741039,0.000000,0.000000,0.671462 -704,0.740335,0.000000,0.000000,0.672238 -705,0.739631,0.000000,0.000000,0.673013 -706,0.738926,0.000000,0.000000,0.673787 -707,0.738220,0.000000,0.000000,0.674560 -708,0.737513,0.000000,0.000000,0.675333 -709,0.736806,0.000000,0.000000,0.676105 -710,0.736097,0.000000,0.000000,0.676876 -711,0.735388,0.000000,0.000000,0.677646 -712,0.734678,0.000000,0.000000,0.678416 -713,0.733967,0.000000,0.000000,0.679185 -714,0.733255,0.000000,0.000000,0.679953 -715,0.732543,0.000000,0.000000,0.680721 -716,0.731830,0.000000,0.000000,0.681488 -717,0.731116,0.000000,0.000000,0.682254 -718,0.730401,0.000000,0.000000,0.683019 -719,0.729685,0.000000,0.000000,0.683783 -720,0.728969,0.000000,0.000000,0.684547 -721,0.728251,0.000000,0.000000,0.685310 -722,0.727533,0.000000,0.000000,0.686072 -723,0.726814,0.000000,0.000000,0.686834 -724,0.726095,0.000000,0.000000,0.687595 -725,0.725374,0.000000,0.000000,0.688355 -726,0.724653,0.000000,0.000000,0.689114 -727,0.723931,0.000000,0.000000,0.689872 -728,0.723208,0.000000,0.000000,0.690630 -729,0.722485,0.000000,0.000000,0.691387 -730,0.721760,0.000000,0.000000,0.692143 -731,0.721035,0.000000,0.000000,0.692899 -732,0.720309,0.000000,0.000000,0.693653 -733,0.719582,0.000000,0.000000,0.694407 -734,0.718855,0.000000,0.000000,0.695160 -735,0.718126,0.000000,0.000000,0.695913 -736,0.717397,0.000000,0.000000,0.696664 -737,0.716667,0.000000,0.000000,0.697415 -738,0.715936,0.000000,0.000000,0.698165 -739,0.715205,0.000000,0.000000,0.698915 -740,0.714473,0.000000,0.000000,0.699663 -741,0.713740,0.000000,0.000000,0.700411 -742,0.713006,0.000000,0.000000,0.701158 -743,0.712271,0.000000,0.000000,0.701904 -744,0.711536,0.000000,0.000000,0.702650 -745,0.710799,0.000000,0.000000,0.703395 -746,0.710062,0.000000,0.000000,0.704139 -747,0.709325,0.000000,0.000000,0.704882 -748,0.708586,0.000000,0.000000,0.705624 -749,0.707847,0.000000,0.000000,0.706366 -750,0.707107,0.000000,0.000000,0.707107 -751,0.706366,0.000000,0.000000,0.707847 -752,0.705624,0.000000,0.000000,0.708586 -753,0.704882,0.000000,0.000000,0.709325 -754,0.704139,0.000000,0.000000,0.710062 -755,0.703395,0.000000,0.000000,0.710799 -756,0.702650,0.000000,0.000000,0.711536 -757,0.701904,0.000000,0.000000,0.712271 -758,0.701158,0.000000,0.000000,0.713006 -759,0.700411,0.000000,0.000000,0.713740 -760,0.699663,0.000000,0.000000,0.714473 -761,0.698915,0.000000,0.000000,0.715205 -762,0.698165,0.000000,0.000000,0.715936 -763,0.697415,0.000000,0.000000,0.716667 -764,0.696664,0.000000,0.000000,0.717397 -765,0.695913,0.000000,0.000000,0.718126 -766,0.695160,0.000000,0.000000,0.718855 -767,0.694407,0.000000,0.000000,0.719582 -768,0.693653,0.000000,0.000000,0.720309 -769,0.692899,0.000000,0.000000,0.721035 -770,0.692143,0.000000,0.000000,0.721760 -771,0.691387,0.000000,0.000000,0.722485 -772,0.690630,0.000000,0.000000,0.723208 -773,0.689872,0.000000,0.000000,0.723931 -774,0.689114,0.000000,0.000000,0.724653 -775,0.688355,0.000000,0.000000,0.725374 -776,0.687595,0.000000,0.000000,0.726095 -777,0.686834,0.000000,0.000000,0.726814 -778,0.686072,0.000000,0.000000,0.727533 -779,0.685310,0.000000,0.000000,0.728251 -780,0.684547,0.000000,0.000000,0.728969 -781,0.683783,0.000000,0.000000,0.729685 -782,0.683019,0.000000,0.000000,0.730401 -783,0.682254,0.000000,0.000000,0.731116 -784,0.681488,0.000000,0.000000,0.731830 -785,0.680721,0.000000,0.000000,0.732543 -786,0.679953,0.000000,0.000000,0.733255 -787,0.679185,0.000000,0.000000,0.733967 -788,0.678416,0.000000,0.000000,0.734678 -789,0.677646,0.000000,0.000000,0.735388 -790,0.676876,0.000000,0.000000,0.736097 -791,0.676105,0.000000,0.000000,0.736806 -792,0.675333,0.000000,0.000000,0.737513 -793,0.674560,0.000000,0.000000,0.738220 -794,0.673787,0.000000,0.000000,0.738926 -795,0.673013,0.000000,0.000000,0.739631 -796,0.672238,0.000000,0.000000,0.740335 -797,0.671462,0.000000,0.000000,0.741039 -798,0.670686,0.000000,0.000000,0.741742 -799,0.669908,0.000000,0.000000,0.742444 -800,0.669131,0.000000,0.000000,0.743145 -801,0.668352,0.000000,0.000000,0.743845 -802,0.667573,0.000000,0.000000,0.744545 -803,0.666793,0.000000,0.000000,0.745243 -804,0.666012,0.000000,0.000000,0.745941 -805,0.665230,0.000000,0.000000,0.746638 -806,0.664448,0.000000,0.000000,0.747334 -807,0.663665,0.000000,0.000000,0.748030 -808,0.662881,0.000000,0.000000,0.748724 -809,0.662097,0.000000,0.000000,0.749418 -810,0.661312,0.000000,0.000000,0.750111 -811,0.660526,0.000000,0.000000,0.750803 -812,0.659739,0.000000,0.000000,0.751494 -813,0.658952,0.000000,0.000000,0.752185 -814,0.658164,0.000000,0.000000,0.752875 -815,0.657375,0.000000,0.000000,0.753563 -816,0.656586,0.000000,0.000000,0.754251 -817,0.655796,0.000000,0.000000,0.754939 -818,0.655005,0.000000,0.000000,0.755625 -819,0.654213,0.000000,0.000000,0.756310 -820,0.653421,0.000000,0.000000,0.756995 -821,0.652628,0.000000,0.000000,0.757679 -822,0.651834,0.000000,0.000000,0.758362 -823,0.651039,0.000000,0.000000,0.759044 -824,0.650244,0.000000,0.000000,0.759725 -825,0.649448,0.000000,0.000000,0.760406 -826,0.648651,0.000000,0.000000,0.761086 -827,0.647854,0.000000,0.000000,0.761764 -828,0.647056,0.000000,0.000000,0.762443 -829,0.646257,0.000000,0.000000,0.763120 -830,0.645458,0.000000,0.000000,0.763796 -831,0.644657,0.000000,0.000000,0.764472 -832,0.643857,0.000000,0.000000,0.765146 -833,0.643055,0.000000,0.000000,0.765820 -834,0.642253,0.000000,0.000000,0.766493 -835,0.641450,0.000000,0.000000,0.767165 -836,0.640646,0.000000,0.000000,0.767836 -837,0.639841,0.000000,0.000000,0.768507 -838,0.639036,0.000000,0.000000,0.769177 -839,0.638231,0.000000,0.000000,0.769845 -840,0.637424,0.000000,0.000000,0.770513 -841,0.636617,0.000000,0.000000,0.771180 -842,0.635809,0.000000,0.000000,0.771847 -843,0.635000,0.000000,0.000000,0.772512 -844,0.634191,0.000000,0.000000,0.773177 -845,0.633381,0.000000,0.000000,0.773840 -846,0.632570,0.000000,0.000000,0.774503 -847,0.631759,0.000000,0.000000,0.775165 -848,0.630947,0.000000,0.000000,0.775826 -849,0.630134,0.000000,0.000000,0.776487 -850,0.629320,0.000000,0.000000,0.777146 -851,0.628506,0.000000,0.000000,0.777805 -852,0.627691,0.000000,0.000000,0.778462 -853,0.626876,0.000000,0.000000,0.779119 -854,0.626060,0.000000,0.000000,0.779775 -855,0.625243,0.000000,0.000000,0.780430 -856,0.624425,0.000000,0.000000,0.781085 -857,0.623607,0.000000,0.000000,0.781738 -858,0.622788,0.000000,0.000000,0.782391 -859,0.621968,0.000000,0.000000,0.783043 -860,0.621148,0.000000,0.000000,0.783693 -861,0.620327,0.000000,0.000000,0.784343 -862,0.619505,0.000000,0.000000,0.784993 -863,0.618683,0.000000,0.000000,0.785641 -864,0.617860,0.000000,0.000000,0.786288 -865,0.617036,0.000000,0.000000,0.786935 -866,0.616211,0.000000,0.000000,0.787581 -867,0.615386,0.000000,0.000000,0.788226 -868,0.614561,0.000000,0.000000,0.788870 -869,0.613734,0.000000,0.000000,0.789513 -870,0.612907,0.000000,0.000000,0.790155 -871,0.612079,0.000000,0.000000,0.790796 -872,0.611251,0.000000,0.000000,0.791437 -873,0.610422,0.000000,0.000000,0.792077 -874,0.609592,0.000000,0.000000,0.792715 -875,0.608761,0.000000,0.000000,0.793353 -876,0.607930,0.000000,0.000000,0.793990 -877,0.607098,0.000000,0.000000,0.794627 -878,0.606266,0.000000,0.000000,0.795262 -879,0.605433,0.000000,0.000000,0.795896 -880,0.604599,0.000000,0.000000,0.796530 -881,0.603765,0.000000,0.000000,0.797163 -882,0.602930,0.000000,0.000000,0.797794 -883,0.602094,0.000000,0.000000,0.798425 -884,0.601257,0.000000,0.000000,0.799055 -885,0.600420,0.000000,0.000000,0.799685 -886,0.599582,0.000000,0.000000,0.800313 -887,0.598744,0.000000,0.000000,0.800940 -888,0.597905,0.000000,0.000000,0.801567 -889,0.597065,0.000000,0.000000,0.802193 -890,0.596225,0.000000,0.000000,0.802817 -891,0.595384,0.000000,0.000000,0.803441 -892,0.594542,0.000000,0.000000,0.804064 -893,0.593700,0.000000,0.000000,0.804687 -894,0.592857,0.000000,0.000000,0.805308 -895,0.592013,0.000000,0.000000,0.805928 -896,0.591169,0.000000,0.000000,0.806548 -897,0.590324,0.000000,0.000000,0.807166 -898,0.589478,0.000000,0.000000,0.807784 -899,0.588632,0.000000,0.000000,0.808401 -900,0.587785,0.000000,0.000000,0.809017 -901,0.586938,0.000000,0.000000,0.809632 -902,0.586090,0.000000,0.000000,0.810246 -903,0.585241,0.000000,0.000000,0.810860 -904,0.584391,0.000000,0.000000,0.811472 -905,0.583541,0.000000,0.000000,0.812084 -906,0.582690,0.000000,0.000000,0.812694 -907,0.581839,0.000000,0.000000,0.813304 -908,0.580987,0.000000,0.000000,0.813913 -909,0.580134,0.000000,0.000000,0.814521 -910,0.579281,0.000000,0.000000,0.815128 -911,0.578427,0.000000,0.000000,0.815734 -912,0.577573,0.000000,0.000000,0.816339 -913,0.576718,0.000000,0.000000,0.816944 -914,0.575862,0.000000,0.000000,0.817547 -915,0.575005,0.000000,0.000000,0.818150 -916,0.574148,0.000000,0.000000,0.818751 -917,0.573290,0.000000,0.000000,0.819352 -918,0.572432,0.000000,0.000000,0.819952 -919,0.571573,0.000000,0.000000,0.820551 -920,0.570714,0.000000,0.000000,0.821149 -921,0.569853,0.000000,0.000000,0.821746 -922,0.568993,0.000000,0.000000,0.822343 -923,0.568131,0.000000,0.000000,0.822938 -924,0.567269,0.000000,0.000000,0.823533 -925,0.566406,0.000000,0.000000,0.824126 -926,0.565543,0.000000,0.000000,0.824719 -927,0.564679,0.000000,0.000000,0.825311 -928,0.563814,0.000000,0.000000,0.825902 -929,0.562949,0.000000,0.000000,0.826492 -930,0.562083,0.000000,0.000000,0.827081 -931,0.561217,0.000000,0.000000,0.827669 -932,0.560350,0.000000,0.000000,0.828256 -933,0.559482,0.000000,0.000000,0.828842 -934,0.558614,0.000000,0.000000,0.829428 -935,0.557745,0.000000,0.000000,0.830012 -936,0.556876,0.000000,0.000000,0.830596 -937,0.556006,0.000000,0.000000,0.831179 -938,0.555135,0.000000,0.000000,0.831760 -939,0.554263,0.000000,0.000000,0.832341 -940,0.553392,0.000000,0.000000,0.832921 -941,0.552519,0.000000,0.000000,0.833500 -942,0.551646,0.000000,0.000000,0.834078 -943,0.550772,0.000000,0.000000,0.834656 -944,0.549898,0.000000,0.000000,0.835232 -945,0.549023,0.000000,0.000000,0.835807 -946,0.548147,0.000000,0.000000,0.836382 -947,0.547271,0.000000,0.000000,0.836955 -948,0.546394,0.000000,0.000000,0.837528 -949,0.545517,0.000000,0.000000,0.838100 -950,0.544639,0.000000,0.000000,0.838671 -951,0.543760,0.000000,0.000000,0.839240 -952,0.542881,0.000000,0.000000,0.839809 -953,0.542002,0.000000,0.000000,0.840377 -954,0.541121,0.000000,0.000000,0.840945 -955,0.540240,0.000000,0.000000,0.841511 -956,0.539359,0.000000,0.000000,0.842076 -957,0.538477,0.000000,0.000000,0.842640 -958,0.537594,0.000000,0.000000,0.843204 -959,0.536711,0.000000,0.000000,0.843766 -960,0.535827,0.000000,0.000000,0.844328 -961,0.534942,0.000000,0.000000,0.844889 -962,0.534057,0.000000,0.000000,0.845448 -963,0.533172,0.000000,0.000000,0.846007 -964,0.532285,0.000000,0.000000,0.846565 -965,0.531399,0.000000,0.000000,0.847122 -966,0.530511,0.000000,0.000000,0.847678 -967,0.529623,0.000000,0.000000,0.848233 -968,0.528735,0.000000,0.000000,0.848787 -969,0.527846,0.000000,0.000000,0.849340 -970,0.526956,0.000000,0.000000,0.849893 -971,0.526066,0.000000,0.000000,0.850444 -972,0.525175,0.000000,0.000000,0.850994 -973,0.524283,0.000000,0.000000,0.851544 -974,0.523391,0.000000,0.000000,0.852093 -975,0.522499,0.000000,0.000000,0.852640 -976,0.521605,0.000000,0.000000,0.853187 -977,0.520712,0.000000,0.000000,0.853733 -978,0.519817,0.000000,0.000000,0.854277 -979,0.518922,0.000000,0.000000,0.854821 -980,0.518027,0.000000,0.000000,0.855364 -981,0.517131,0.000000,0.000000,0.855906 -982,0.516234,0.000000,0.000000,0.856447 -983,0.515337,0.000000,0.000000,0.856987 -984,0.514440,0.000000,0.000000,0.857527 -985,0.513541,0.000000,0.000000,0.858065 -986,0.512642,0.000000,0.000000,0.858602 -987,0.511743,0.000000,0.000000,0.859139 -988,0.510843,0.000000,0.000000,0.859674 -989,0.509943,0.000000,0.000000,0.860208 -990,0.509041,0.000000,0.000000,0.860742 -991,0.508140,0.000000,0.000000,0.861275 -992,0.507238,0.000000,0.000000,0.861806 -993,0.506335,0.000000,0.000000,0.862337 -994,0.505431,0.000000,0.000000,0.862867 -995,0.504528,0.000000,0.000000,0.863396 -996,0.503623,0.000000,0.000000,0.863923 -997,0.502718,0.000000,0.000000,0.864450 -998,0.501813,0.000000,0.000000,0.864976 -999,0.500907,0.000000,0.000000,0.865501 -1000,0.500000,0.000000,0.000000,0.866025 -1001,0.499093,0.000000,0.000000,0.866549 -1002,0.498185,0.000000,0.000000,0.867071 -1003,0.497277,0.000000,0.000000,0.867592 -1004,0.496368,0.000000,0.000000,0.868112 -1005,0.495459,0.000000,0.000000,0.868632 -1006,0.494549,0.000000,0.000000,0.869150 -1007,0.493638,0.000000,0.000000,0.869667 -1008,0.492727,0.000000,0.000000,0.870184 -1009,0.491816,0.000000,0.000000,0.870699 -1010,0.490904,0.000000,0.000000,0.871214 -1011,0.489991,0.000000,0.000000,0.871727 -1012,0.489078,0.000000,0.000000,0.872240 -1013,0.488164,0.000000,0.000000,0.872752 -1014,0.487250,0.000000,0.000000,0.873262 -1015,0.486335,0.000000,0.000000,0.873772 -1016,0.485420,0.000000,0.000000,0.874281 -1017,0.484504,0.000000,0.000000,0.874789 -1018,0.483588,0.000000,0.000000,0.875296 -1019,0.482671,0.000000,0.000000,0.875802 -1020,0.481754,0.000000,0.000000,0.876307 -1021,0.480836,0.000000,0.000000,0.876811 -1022,0.479917,0.000000,0.000000,0.877314 -1023,0.478998,0.000000,0.000000,0.877816 -1024,0.478079,0.000000,0.000000,0.878317 -1025,0.477159,0.000000,0.000000,0.878817 -1026,0.476238,0.000000,0.000000,0.879316 -1027,0.475317,0.000000,0.000000,0.879815 -1028,0.474396,0.000000,0.000000,0.880312 -1029,0.473473,0.000000,0.000000,0.880808 -1030,0.472551,0.000000,0.000000,0.881303 -1031,0.471628,0.000000,0.000000,0.881798 -1032,0.470704,0.000000,0.000000,0.882291 -1033,0.469780,0.000000,0.000000,0.882784 -1034,0.468855,0.000000,0.000000,0.883275 -1035,0.467930,0.000000,0.000000,0.883766 -1036,0.467004,0.000000,0.000000,0.884255 -1037,0.466078,0.000000,0.000000,0.884744 -1038,0.465151,0.000000,0.000000,0.885231 -1039,0.464224,0.000000,0.000000,0.885718 -1040,0.463296,0.000000,0.000000,0.886204 -1041,0.462368,0.000000,0.000000,0.886688 -1042,0.461439,0.000000,0.000000,0.887172 -1043,0.460510,0.000000,0.000000,0.887655 -1044,0.459580,0.000000,0.000000,0.888136 -1045,0.458650,0.000000,0.000000,0.888617 -1046,0.457719,0.000000,0.000000,0.889097 -1047,0.456787,0.000000,0.000000,0.889576 -1048,0.455856,0.000000,0.000000,0.890054 -1049,0.454923,0.000000,0.000000,0.890531 -1050,0.453990,0.000000,0.000000,0.891007 -1051,0.453057,0.000000,0.000000,0.891481 -1052,0.452123,0.000000,0.000000,0.891955 -1053,0.451189,0.000000,0.000000,0.892428 -1054,0.450254,0.000000,0.000000,0.892900 -1055,0.449319,0.000000,0.000000,0.893371 -1056,0.448383,0.000000,0.000000,0.893841 -1057,0.447447,0.000000,0.000000,0.894310 -1058,0.446510,0.000000,0.000000,0.894779 -1059,0.445573,0.000000,0.000000,0.895246 -1060,0.444635,0.000000,0.000000,0.895712 -1061,0.443697,0.000000,0.000000,0.896177 -1062,0.442758,0.000000,0.000000,0.896641 -1063,0.441819,0.000000,0.000000,0.897104 -1064,0.440879,0.000000,0.000000,0.897566 -1065,0.439939,0.000000,0.000000,0.898028 -1066,0.438999,0.000000,0.000000,0.898488 -1067,0.438057,0.000000,0.000000,0.898947 -1068,0.437116,0.000000,0.000000,0.899405 -1069,0.436174,0.000000,0.000000,0.899863 -1070,0.435231,0.000000,0.000000,0.900319 -1071,0.434288,0.000000,0.000000,0.900774 -1072,0.433345,0.000000,0.000000,0.901228 -1073,0.432401,0.000000,0.000000,0.901682 -1074,0.431456,0.000000,0.000000,0.902134 -1075,0.430511,0.000000,0.000000,0.902585 -1076,0.429566,0.000000,0.000000,0.903036 -1077,0.428620,0.000000,0.000000,0.903485 -1078,0.427673,0.000000,0.000000,0.903933 -1079,0.426727,0.000000,0.000000,0.904381 -1080,0.425779,0.000000,0.000000,0.904827 -1081,0.424832,0.000000,0.000000,0.905272 -1082,0.423883,0.000000,0.000000,0.905717 -1083,0.422935,0.000000,0.000000,0.906160 -1084,0.421985,0.000000,0.000000,0.906603 -1085,0.421036,0.000000,0.000000,0.907044 -1086,0.420086,0.000000,0.000000,0.907484 -1087,0.419135,0.000000,0.000000,0.907924 -1088,0.418184,0.000000,0.000000,0.908362 -1089,0.417233,0.000000,0.000000,0.908800 -1090,0.416281,0.000000,0.000000,0.909236 -1091,0.415328,0.000000,0.000000,0.909672 -1092,0.414376,0.000000,0.000000,0.910106 -1093,0.413422,0.000000,0.000000,0.910539 -1094,0.412469,0.000000,0.000000,0.910972 -1095,0.411514,0.000000,0.000000,0.911403 -1096,0.410560,0.000000,0.000000,0.911834 -1097,0.409605,0.000000,0.000000,0.912263 -1098,0.408649,0.000000,0.000000,0.912692 -1099,0.407693,0.000000,0.000000,0.913119 -1100,0.406737,0.000000,0.000000,0.913545 -1101,0.405780,0.000000,0.000000,0.913971 -1102,0.404822,0.000000,0.000000,0.914395 -1103,0.403865,0.000000,0.000000,0.914819 -1104,0.402906,0.000000,0.000000,0.915241 -1105,0.401948,0.000000,0.000000,0.915663 -1106,0.400989,0.000000,0.000000,0.916083 -1107,0.400029,0.000000,0.000000,0.916502 -1108,0.399069,0.000000,0.000000,0.916921 -1109,0.398109,0.000000,0.000000,0.917338 -1110,0.397148,0.000000,0.000000,0.917755 -1111,0.396187,0.000000,0.000000,0.918170 -1112,0.395225,0.000000,0.000000,0.918584 -1113,0.394263,0.000000,0.000000,0.918998 -1114,0.393300,0.000000,0.000000,0.919410 -1115,0.392337,0.000000,0.000000,0.919821 -1116,0.391374,0.000000,0.000000,0.920232 -1117,0.390410,0.000000,0.000000,0.920641 -1118,0.389445,0.000000,0.000000,0.921050 -1119,0.388481,0.000000,0.000000,0.921457 -1120,0.387516,0.000000,0.000000,0.921863 -1121,0.386550,0.000000,0.000000,0.922268 -1122,0.385584,0.000000,0.000000,0.922673 -1123,0.384618,0.000000,0.000000,0.923076 -1124,0.383651,0.000000,0.000000,0.923478 -1125,0.382683,0.000000,0.000000,0.923880 -1126,0.381716,0.000000,0.000000,0.924280 -1127,0.380748,0.000000,0.000000,0.924679 -1128,0.379779,0.000000,0.000000,0.925077 -1129,0.378810,0.000000,0.000000,0.925474 -1130,0.377841,0.000000,0.000000,0.925871 -1131,0.376871,0.000000,0.000000,0.926266 -1132,0.375901,0.000000,0.000000,0.926660 -1133,0.374930,0.000000,0.000000,0.927053 -1134,0.373959,0.000000,0.000000,0.927445 -1135,0.372988,0.000000,0.000000,0.927836 -1136,0.372016,0.000000,0.000000,0.928226 -1137,0.371044,0.000000,0.000000,0.928615 -1138,0.370071,0.000000,0.000000,0.929003 -1139,0.369098,0.000000,0.000000,0.929390 -1140,0.368125,0.000000,0.000000,0.929776 -1141,0.367151,0.000000,0.000000,0.930161 -1142,0.366176,0.000000,0.000000,0.930545 -1143,0.365202,0.000000,0.000000,0.930928 -1144,0.364227,0.000000,0.000000,0.931310 -1145,0.363251,0.000000,0.000000,0.931691 -1146,0.362275,0.000000,0.000000,0.932071 -1147,0.361299,0.000000,0.000000,0.932450 -1148,0.360322,0.000000,0.000000,0.932828 -1149,0.359345,0.000000,0.000000,0.933205 -1150,0.358368,0.000000,0.000000,0.933580 -1151,0.357390,0.000000,0.000000,0.933955 -1152,0.356412,0.000000,0.000000,0.934329 -1153,0.355433,0.000000,0.000000,0.934702 -1154,0.354454,0.000000,0.000000,0.935073 -1155,0.353475,0.000000,0.000000,0.935444 -1156,0.352495,0.000000,0.000000,0.935814 -1157,0.351515,0.000000,0.000000,0.936182 -1158,0.350534,0.000000,0.000000,0.936550 -1159,0.349553,0.000000,0.000000,0.936916 -1160,0.348572,0.000000,0.000000,0.937282 -1161,0.347590,0.000000,0.000000,0.937646 -1162,0.346608,0.000000,0.000000,0.938010 -1163,0.345626,0.000000,0.000000,0.938372 -1164,0.344643,0.000000,0.000000,0.938734 -1165,0.343660,0.000000,0.000000,0.939094 -1166,0.342676,0.000000,0.000000,0.939454 -1167,0.341692,0.000000,0.000000,0.939812 -1168,0.340708,0.000000,0.000000,0.940169 -1169,0.339723,0.000000,0.000000,0.940526 -1170,0.338738,0.000000,0.000000,0.940881 -1171,0.337752,0.000000,0.000000,0.941235 -1172,0.336767,0.000000,0.000000,0.941588 -1173,0.335780,0.000000,0.000000,0.941940 -1174,0.334794,0.000000,0.000000,0.942291 -1175,0.333807,0.000000,0.000000,0.942641 -1176,0.332820,0.000000,0.000000,0.942991 -1177,0.331832,0.000000,0.000000,0.943339 -1178,0.330844,0.000000,0.000000,0.943686 -1179,0.329855,0.000000,0.000000,0.944031 -1180,0.328867,0.000000,0.000000,0.944376 -1181,0.327878,0.000000,0.000000,0.944720 -1182,0.326888,0.000000,0.000000,0.945063 -1183,0.325898,0.000000,0.000000,0.945405 -1184,0.324908,0.000000,0.000000,0.945746 -1185,0.323917,0.000000,0.000000,0.946085 -1186,0.322927,0.000000,0.000000,0.946424 -1187,0.321935,0.000000,0.000000,0.946762 -1188,0.320944,0.000000,0.000000,0.947098 -1189,0.319952,0.000000,0.000000,0.947434 -1190,0.318959,0.000000,0.000000,0.947768 -1191,0.317967,0.000000,0.000000,0.948102 -1192,0.316974,0.000000,0.000000,0.948434 -1193,0.315980,0.000000,0.000000,0.948766 -1194,0.314987,0.000000,0.000000,0.949096 -1195,0.313992,0.000000,0.000000,0.949425 -1196,0.312998,0.000000,0.000000,0.949754 -1197,0.312003,0.000000,0.000000,0.950081 -1198,0.311008,0.000000,0.000000,0.950407 -1199,0.310013,0.000000,0.000000,0.950732 -1200,0.309017,0.000000,0.000000,0.951057 -1201,0.308021,0.000000,0.000000,0.951380 -1202,0.307024,0.000000,0.000000,0.951702 -1203,0.306028,0.000000,0.000000,0.952023 -1204,0.305031,0.000000,0.000000,0.952343 -1205,0.304033,0.000000,0.000000,0.952661 -1206,0.303035,0.000000,0.000000,0.952979 -1207,0.302037,0.000000,0.000000,0.953296 -1208,0.301039,0.000000,0.000000,0.953612 -1209,0.300040,0.000000,0.000000,0.953927 -1210,0.299041,0.000000,0.000000,0.954240 -1211,0.298041,0.000000,0.000000,0.954553 -1212,0.297042,0.000000,0.000000,0.954865 -1213,0.296041,0.000000,0.000000,0.955175 -1214,0.295041,0.000000,0.000000,0.955485 -1215,0.294040,0.000000,0.000000,0.955793 -1216,0.293039,0.000000,0.000000,0.956100 -1217,0.292038,0.000000,0.000000,0.956407 -1218,0.291036,0.000000,0.000000,0.956712 -1219,0.290034,0.000000,0.000000,0.957016 -1220,0.289032,0.000000,0.000000,0.957319 -1221,0.288029,0.000000,0.000000,0.957622 -1222,0.287026,0.000000,0.000000,0.957923 -1223,0.286023,0.000000,0.000000,0.958223 -1224,0.285019,0.000000,0.000000,0.958522 -1225,0.284015,0.000000,0.000000,0.958820 -1226,0.283011,0.000000,0.000000,0.959117 -1227,0.282007,0.000000,0.000000,0.959412 -1228,0.281002,0.000000,0.000000,0.959707 -1229,0.279997,0.000000,0.000000,0.960001 -1230,0.278991,0.000000,0.000000,0.960294 -1231,0.277985,0.000000,0.000000,0.960585 -1232,0.276979,0.000000,0.000000,0.960876 -1233,0.275973,0.000000,0.000000,0.961165 -1234,0.274966,0.000000,0.000000,0.961454 -1235,0.273959,0.000000,0.000000,0.961741 -1236,0.272952,0.000000,0.000000,0.962028 -1237,0.271944,0.000000,0.000000,0.962313 -1238,0.270936,0.000000,0.000000,0.962597 -1239,0.269928,0.000000,0.000000,0.962880 -1240,0.268920,0.000000,0.000000,0.963163 -1241,0.267911,0.000000,0.000000,0.963444 -1242,0.266902,0.000000,0.000000,0.963724 -1243,0.265893,0.000000,0.000000,0.964003 -1244,0.264883,0.000000,0.000000,0.964281 -1245,0.263873,0.000000,0.000000,0.964557 -1246,0.262863,0.000000,0.000000,0.964833 -1247,0.261852,0.000000,0.000000,0.965108 -1248,0.260842,0.000000,0.000000,0.965382 -1249,0.259830,0.000000,0.000000,0.965654 -1250,0.258819,0.000000,0.000000,0.965926 -1251,0.257807,0.000000,0.000000,0.966196 -1252,0.256795,0.000000,0.000000,0.966466 -1253,0.255783,0.000000,0.000000,0.966734 -1254,0.254771,0.000000,0.000000,0.967001 -1255,0.253758,0.000000,0.000000,0.967268 -1256,0.252745,0.000000,0.000000,0.967533 -1257,0.251732,0.000000,0.000000,0.967797 -1258,0.250718,0.000000,0.000000,0.968060 -1259,0.249704,0.000000,0.000000,0.968322 -1260,0.248690,0.000000,0.000000,0.968583 -1261,0.247675,0.000000,0.000000,0.968843 -1262,0.246661,0.000000,0.000000,0.969102 -1263,0.245646,0.000000,0.000000,0.969360 -1264,0.244631,0.000000,0.000000,0.969616 -1265,0.243615,0.000000,0.000000,0.969872 -1266,0.242599,0.000000,0.000000,0.970127 -1267,0.241583,0.000000,0.000000,0.970380 -1268,0.240567,0.000000,0.000000,0.970633 -1269,0.239550,0.000000,0.000000,0.970884 -1270,0.238533,0.000000,0.000000,0.971134 -1271,0.237516,0.000000,0.000000,0.971384 -1272,0.236499,0.000000,0.000000,0.971632 -1273,0.235481,0.000000,0.000000,0.971879 -1274,0.234463,0.000000,0.000000,0.972125 -1275,0.233445,0.000000,0.000000,0.972370 -1276,0.232427,0.000000,0.000000,0.972614 -1277,0.231408,0.000000,0.000000,0.972857 -1278,0.230389,0.000000,0.000000,0.973099 -1279,0.229370,0.000000,0.000000,0.973339 -1280,0.228351,0.000000,0.000000,0.973579 -1281,0.227331,0.000000,0.000000,0.973817 -1282,0.226311,0.000000,0.000000,0.974055 -1283,0.225291,0.000000,0.000000,0.974291 -1284,0.224271,0.000000,0.000000,0.974527 -1285,0.223250,0.000000,0.000000,0.974761 -1286,0.222229,0.000000,0.000000,0.974994 -1287,0.221208,0.000000,0.000000,0.975227 -1288,0.220187,0.000000,0.000000,0.975458 -1289,0.219165,0.000000,0.000000,0.975688 -1290,0.218143,0.000000,0.000000,0.975917 -1291,0.217121,0.000000,0.000000,0.976145 -1292,0.216099,0.000000,0.000000,0.976371 -1293,0.215076,0.000000,0.000000,0.976597 -1294,0.214053,0.000000,0.000000,0.976822 -1295,0.213030,0.000000,0.000000,0.977046 -1296,0.212007,0.000000,0.000000,0.977268 -1297,0.210984,0.000000,0.000000,0.977490 -1298,0.209960,0.000000,0.000000,0.977710 -1299,0.208936,0.000000,0.000000,0.977929 -1300,0.207912,0.000000,0.000000,0.978148 -1301,0.206887,0.000000,0.000000,0.978365 -1302,0.205863,0.000000,0.000000,0.978581 -1303,0.204838,0.000000,0.000000,0.978796 -1304,0.203813,0.000000,0.000000,0.979010 -1305,0.202787,0.000000,0.000000,0.979223 -1306,0.201762,0.000000,0.000000,0.979435 -1307,0.200736,0.000000,0.000000,0.979645 -1308,0.199710,0.000000,0.000000,0.979855 -1309,0.198684,0.000000,0.000000,0.980064 -1310,0.197657,0.000000,0.000000,0.980271 -1311,0.196631,0.000000,0.000000,0.980478 -1312,0.195604,0.000000,0.000000,0.980683 -1313,0.194577,0.000000,0.000000,0.980887 -1314,0.193549,0.000000,0.000000,0.981091 -1315,0.192522,0.000000,0.000000,0.981293 -1316,0.191494,0.000000,0.000000,0.981494 -1317,0.190466,0.000000,0.000000,0.981694 -1318,0.189438,0.000000,0.000000,0.981893 -1319,0.188410,0.000000,0.000000,0.982090 -1320,0.187381,0.000000,0.000000,0.982287 -1321,0.186353,0.000000,0.000000,0.982483 -1322,0.185324,0.000000,0.000000,0.982678 -1323,0.184294,0.000000,0.000000,0.982871 -1324,0.183265,0.000000,0.000000,0.983064 -1325,0.182236,0.000000,0.000000,0.983255 -1326,0.181206,0.000000,0.000000,0.983445 -1327,0.180176,0.000000,0.000000,0.983634 -1328,0.179146,0.000000,0.000000,0.983823 -1329,0.178115,0.000000,0.000000,0.984010 -1330,0.177085,0.000000,0.000000,0.984196 -1331,0.176054,0.000000,0.000000,0.984381 -1332,0.175023,0.000000,0.000000,0.984564 -1333,0.173992,0.000000,0.000000,0.984747 -1334,0.172961,0.000000,0.000000,0.984929 -1335,0.171929,0.000000,0.000000,0.985109 -1336,0.170897,0.000000,0.000000,0.985289 -1337,0.169866,0.000000,0.000000,0.985467 -1338,0.168833,0.000000,0.000000,0.985645 -1339,0.167801,0.000000,0.000000,0.985821 -1340,0.166769,0.000000,0.000000,0.985996 -1341,0.165736,0.000000,0.000000,0.986170 -1342,0.164703,0.000000,0.000000,0.986343 -1343,0.163670,0.000000,0.000000,0.986515 -1344,0.162637,0.000000,0.000000,0.986686 -1345,0.161604,0.000000,0.000000,0.986856 -1346,0.160570,0.000000,0.000000,0.987024 -1347,0.159537,0.000000,0.000000,0.987192 -1348,0.158503,0.000000,0.000000,0.987359 -1349,0.157469,0.000000,0.000000,0.987524 -1350,0.156434,0.000000,0.000000,0.987688 -1351,0.155400,0.000000,0.000000,0.987852 -1352,0.154366,0.000000,0.000000,0.988014 -1353,0.153331,0.000000,0.000000,0.988175 -1354,0.152296,0.000000,0.000000,0.988335 -1355,0.151261,0.000000,0.000000,0.988494 -1356,0.150226,0.000000,0.000000,0.988652 -1357,0.149190,0.000000,0.000000,0.988809 -1358,0.148155,0.000000,0.000000,0.988964 -1359,0.147119,0.000000,0.000000,0.989119 -1360,0.146083,0.000000,0.000000,0.989272 -1361,0.145047,0.000000,0.000000,0.989425 -1362,0.144011,0.000000,0.000000,0.989576 -1363,0.142974,0.000000,0.000000,0.989726 -1364,0.141938,0.000000,0.000000,0.989876 -1365,0.140901,0.000000,0.000000,0.990024 -1366,0.139864,0.000000,0.000000,0.990171 -1367,0.138827,0.000000,0.000000,0.990317 -1368,0.137790,0.000000,0.000000,0.990461 -1369,0.136753,0.000000,0.000000,0.990605 -1370,0.135716,0.000000,0.000000,0.990748 -1371,0.134678,0.000000,0.000000,0.990889 -1372,0.133640,0.000000,0.000000,0.991030 -1373,0.132602,0.000000,0.000000,0.991169 -1374,0.131564,0.000000,0.000000,0.991308 -1375,0.130526,0.000000,0.000000,0.991445 -1376,0.129488,0.000000,0.000000,0.991581 -1377,0.128449,0.000000,0.000000,0.991716 -1378,0.127411,0.000000,0.000000,0.991850 -1379,0.126372,0.000000,0.000000,0.991983 -1380,0.125333,0.000000,0.000000,0.992115 -1381,0.124294,0.000000,0.000000,0.992245 -1382,0.123255,0.000000,0.000000,0.992375 -1383,0.122216,0.000000,0.000000,0.992504 -1384,0.121176,0.000000,0.000000,0.992631 -1385,0.120137,0.000000,0.000000,0.992757 -1386,0.119097,0.000000,0.000000,0.992883 -1387,0.118057,0.000000,0.000000,0.993007 -1388,0.117017,0.000000,0.000000,0.993130 -1389,0.115977,0.000000,0.000000,0.993252 -1390,0.114937,0.000000,0.000000,0.993373 -1391,0.113897,0.000000,0.000000,0.993493 -1392,0.112856,0.000000,0.000000,0.993611 -1393,0.111816,0.000000,0.000000,0.993729 -1394,0.110775,0.000000,0.000000,0.993845 -1395,0.109734,0.000000,0.000000,0.993961 -1396,0.108693,0.000000,0.000000,0.994075 -1397,0.107652,0.000000,0.000000,0.994189 -1398,0.106611,0.000000,0.000000,0.994301 -1399,0.105570,0.000000,0.000000,0.994412 -1400,0.104528,0.000000,0.000000,0.994522 -1401,0.103487,0.000000,0.000000,0.994631 -1402,0.102445,0.000000,0.000000,0.994739 -1403,0.101404,0.000000,0.000000,0.994845 -1404,0.100362,0.000000,0.000000,0.994951 -1405,0.099320,0.000000,0.000000,0.995056 -1406,0.098278,0.000000,0.000000,0.995159 -1407,0.097235,0.000000,0.000000,0.995261 -1408,0.096193,0.000000,0.000000,0.995363 -1409,0.095151,0.000000,0.000000,0.995463 -1410,0.094108,0.000000,0.000000,0.995562 -1411,0.093066,0.000000,0.000000,0.995660 -1412,0.092023,0.000000,0.000000,0.995757 -1413,0.090980,0.000000,0.000000,0.995853 -1414,0.089937,0.000000,0.000000,0.995947 -1415,0.088894,0.000000,0.000000,0.996041 -1416,0.087851,0.000000,0.000000,0.996134 -1417,0.086808,0.000000,0.000000,0.996225 -1418,0.085765,0.000000,0.000000,0.996315 -1419,0.084721,0.000000,0.000000,0.996405 -1420,0.083678,0.000000,0.000000,0.996493 -1421,0.082634,0.000000,0.000000,0.996580 -1422,0.081591,0.000000,0.000000,0.996666 -1423,0.080547,0.000000,0.000000,0.996751 -1424,0.079503,0.000000,0.000000,0.996835 -1425,0.078459,0.000000,0.000000,0.996917 -1426,0.077415,0.000000,0.000000,0.996999 -1427,0.076371,0.000000,0.000000,0.997079 -1428,0.075327,0.000000,0.000000,0.997159 -1429,0.074283,0.000000,0.000000,0.997237 -1430,0.073238,0.000000,0.000000,0.997314 -1431,0.072194,0.000000,0.000000,0.997391 -1432,0.071149,0.000000,0.000000,0.997466 -1433,0.070105,0.000000,0.000000,0.997540 -1434,0.069060,0.000000,0.000000,0.997613 -1435,0.068015,0.000000,0.000000,0.997684 -1436,0.066970,0.000000,0.000000,0.997755 -1437,0.065926,0.000000,0.000000,0.997825 -1438,0.064881,0.000000,0.000000,0.997893 -1439,0.063836,0.000000,0.000000,0.997960 -1440,0.062791,0.000000,0.000000,0.998027 -1441,0.061745,0.000000,0.000000,0.998092 -1442,0.060700,0.000000,0.000000,0.998156 -1443,0.059655,0.000000,0.000000,0.998219 -1444,0.058609,0.000000,0.000000,0.998281 -1445,0.057564,0.000000,0.000000,0.998342 -1446,0.056519,0.000000,0.000000,0.998402 -1447,0.055473,0.000000,0.000000,0.998460 -1448,0.054427,0.000000,0.000000,0.998518 -1449,0.053382,0.000000,0.000000,0.998574 -1450,0.052336,0.000000,0.000000,0.998630 -1451,0.051290,0.000000,0.000000,0.998684 -1452,0.050244,0.000000,0.000000,0.998737 -1453,0.049198,0.000000,0.000000,0.998789 -1454,0.048152,0.000000,0.000000,0.998840 -1455,0.047106,0.000000,0.000000,0.998890 -1456,0.046060,0.000000,0.000000,0.998939 -1457,0.045014,0.000000,0.000000,0.998986 -1458,0.043968,0.000000,0.000000,0.999033 -1459,0.042922,0.000000,0.000000,0.999078 -1460,0.041876,0.000000,0.000000,0.999123 -1461,0.040829,0.000000,0.000000,0.999166 -1462,0.039783,0.000000,0.000000,0.999208 -1463,0.038737,0.000000,0.000000,0.999249 -1464,0.037690,0.000000,0.000000,0.999289 -1465,0.036644,0.000000,0.000000,0.999328 -1466,0.035597,0.000000,0.000000,0.999366 -1467,0.034551,0.000000,0.000000,0.999403 -1468,0.033504,0.000000,0.000000,0.999439 -1469,0.032457,0.000000,0.000000,0.999473 -1470,0.031411,0.000000,0.000000,0.999507 -1471,0.030364,0.000000,0.000000,0.999539 -1472,0.029317,0.000000,0.000000,0.999570 -1473,0.028271,0.000000,0.000000,0.999600 -1474,0.027224,0.000000,0.000000,0.999629 -1475,0.026177,0.000000,0.000000,0.999657 -1476,0.025130,0.000000,0.000000,0.999684 -1477,0.024083,0.000000,0.000000,0.999710 -1478,0.023036,0.000000,0.000000,0.999735 -1479,0.021989,0.000000,0.000000,0.999758 -1480,0.020942,0.000000,0.000000,0.999781 -1481,0.019895,0.000000,0.000000,0.999802 -1482,0.018848,0.000000,0.000000,0.999822 -1483,0.017801,0.000000,0.000000,0.999842 -1484,0.016754,0.000000,0.000000,0.999860 -1485,0.015707,0.000000,0.000000,0.999877 -1486,0.014660,0.000000,0.000000,0.999893 -1487,0.013613,0.000000,0.000000,0.999907 -1488,0.012566,0.000000,0.000000,0.999921 -1489,0.011519,0.000000,0.000000,0.999934 -1490,0.010472,0.000000,0.000000,0.999945 -1491,0.009425,0.000000,0.000000,0.999956 -1492,0.008377,0.000000,0.000000,0.999965 -1493,0.007330,0.000000,0.000000,0.999973 -1494,0.006283,0.000000,0.000000,0.999980 -1495,0.005236,0.000000,0.000000,0.999986 -1496,0.004189,0.000000,0.000000,0.999991 -1497,0.003142,0.000000,0.000000,0.999995 -1498,0.002094,0.000000,0.000000,0.999998 -1499,0.001047,0.000000,0.000000,0.999999 -1500,0.000000,0.000000,0.000000,1.000000 -1501,-0.001047,-0.000000,0.000000,0.999999 -1502,-0.002094,-0.000000,0.000000,0.999998 -1503,-0.003142,-0.000000,0.000000,0.999995 -1504,-0.004189,-0.000000,0.000000,0.999991 -1505,-0.005236,-0.000000,0.000000,0.999986 -1506,-0.006283,-0.000000,0.000000,0.999980 -1507,-0.007330,-0.000000,0.000000,0.999973 -1508,-0.008377,-0.000000,0.000000,0.999965 -1509,-0.009425,-0.000000,0.000000,0.999956 -1510,-0.010472,-0.000000,0.000000,0.999945 -1511,-0.011519,-0.000000,0.000000,0.999934 -1512,-0.012566,-0.000000,0.000000,0.999921 -1513,-0.013613,-0.000000,0.000000,0.999907 -1514,-0.014660,-0.000000,0.000000,0.999893 -1515,-0.015707,-0.000000,0.000000,0.999877 -1516,-0.016754,-0.000000,0.000000,0.999860 -1517,-0.017801,-0.000000,0.000000,0.999842 -1518,-0.018848,-0.000000,0.000000,0.999822 -1519,-0.019895,-0.000000,0.000000,0.999802 -1520,-0.020942,-0.000000,0.000000,0.999781 -1521,-0.021989,-0.000000,0.000000,0.999758 -1522,-0.023036,-0.000000,0.000000,0.999735 -1523,-0.024083,-0.000000,0.000000,0.999710 -1524,-0.025130,-0.000000,0.000000,0.999684 -1525,-0.026177,-0.000000,0.000000,0.999657 -1526,-0.027224,-0.000000,0.000000,0.999629 -1527,-0.028271,-0.000000,0.000000,0.999600 -1528,-0.029317,-0.000000,0.000000,0.999570 -1529,-0.030364,-0.000000,0.000000,0.999539 -1530,-0.031411,-0.000000,0.000000,0.999507 -1531,-0.032457,-0.000000,0.000000,0.999473 -1532,-0.033504,-0.000000,0.000000,0.999439 -1533,-0.034551,-0.000000,0.000000,0.999403 -1534,-0.035597,-0.000000,0.000000,0.999366 -1535,-0.036644,-0.000000,0.000000,0.999328 -1536,-0.037690,-0.000000,0.000000,0.999289 -1537,-0.038737,-0.000000,0.000000,0.999249 -1538,-0.039783,-0.000000,0.000000,0.999208 -1539,-0.040829,-0.000000,0.000000,0.999166 -1540,-0.041876,-0.000000,0.000000,0.999123 -1541,-0.042922,-0.000000,0.000000,0.999078 -1542,-0.043968,-0.000000,0.000000,0.999033 -1543,-0.045014,-0.000000,0.000000,0.998986 -1544,-0.046060,-0.000000,0.000000,0.998939 -1545,-0.047106,-0.000000,0.000000,0.998890 -1546,-0.048152,-0.000000,0.000000,0.998840 -1547,-0.049198,-0.000000,0.000000,0.998789 -1548,-0.050244,-0.000000,0.000000,0.998737 -1549,-0.051290,-0.000000,0.000000,0.998684 -1550,-0.052336,-0.000000,0.000000,0.998630 -1551,-0.053382,-0.000000,0.000000,0.998574 -1552,-0.054427,-0.000000,0.000000,0.998518 -1553,-0.055473,-0.000000,0.000000,0.998460 -1554,-0.056519,-0.000000,0.000000,0.998402 -1555,-0.057564,-0.000000,0.000000,0.998342 -1556,-0.058609,-0.000000,0.000000,0.998281 -1557,-0.059655,-0.000000,0.000000,0.998219 -1558,-0.060700,-0.000000,0.000000,0.998156 -1559,-0.061745,-0.000000,0.000000,0.998092 -1560,-0.062791,-0.000000,0.000000,0.998027 -1561,-0.063836,-0.000000,0.000000,0.997960 -1562,-0.064881,-0.000000,0.000000,0.997893 -1563,-0.065926,-0.000000,0.000000,0.997825 -1564,-0.066970,-0.000000,0.000000,0.997755 -1565,-0.068015,-0.000000,0.000000,0.997684 -1566,-0.069060,-0.000000,0.000000,0.997613 -1567,-0.070105,-0.000000,0.000000,0.997540 -1568,-0.071149,-0.000000,0.000000,0.997466 -1569,-0.072194,-0.000000,0.000000,0.997391 -1570,-0.073238,-0.000000,0.000000,0.997314 -1571,-0.074283,-0.000000,0.000000,0.997237 -1572,-0.075327,-0.000000,0.000000,0.997159 -1573,-0.076371,-0.000000,0.000000,0.997079 -1574,-0.077415,-0.000000,0.000000,0.996999 -1575,-0.078459,-0.000000,0.000000,0.996917 -1576,-0.079503,-0.000000,0.000000,0.996835 -1577,-0.080547,-0.000000,0.000000,0.996751 -1578,-0.081591,-0.000000,0.000000,0.996666 -1579,-0.082634,-0.000000,0.000000,0.996580 -1580,-0.083678,-0.000000,0.000000,0.996493 -1581,-0.084721,-0.000000,0.000000,0.996405 -1582,-0.085765,-0.000000,0.000000,0.996315 -1583,-0.086808,-0.000000,0.000000,0.996225 -1584,-0.087851,-0.000000,0.000000,0.996134 -1585,-0.088894,-0.000000,0.000000,0.996041 -1586,-0.089937,-0.000000,0.000000,0.995947 -1587,-0.090980,-0.000000,0.000000,0.995853 -1588,-0.092023,-0.000000,0.000000,0.995757 -1589,-0.093066,-0.000000,0.000000,0.995660 -1590,-0.094108,-0.000000,0.000000,0.995562 -1591,-0.095151,-0.000000,0.000000,0.995463 -1592,-0.096193,-0.000000,0.000000,0.995363 -1593,-0.097235,-0.000000,0.000000,0.995261 -1594,-0.098278,-0.000000,0.000000,0.995159 -1595,-0.099320,-0.000000,0.000000,0.995056 -1596,-0.100362,-0.000000,0.000000,0.994951 -1597,-0.101404,-0.000000,0.000000,0.994845 -1598,-0.102445,-0.000000,0.000000,0.994739 -1599,-0.103487,-0.000000,0.000000,0.994631 -1600,-0.104528,-0.000000,0.000000,0.994522 -1601,-0.105570,-0.000000,0.000000,0.994412 -1602,-0.106611,-0.000000,0.000000,0.994301 -1603,-0.107652,-0.000000,0.000000,0.994189 -1604,-0.108693,-0.000000,0.000000,0.994075 -1605,-0.109734,-0.000000,0.000000,0.993961 -1606,-0.110775,-0.000000,0.000000,0.993845 -1607,-0.111816,-0.000000,0.000000,0.993729 -1608,-0.112856,-0.000000,0.000000,0.993611 -1609,-0.113897,-0.000000,0.000000,0.993493 -1610,-0.114937,-0.000000,0.000000,0.993373 -1611,-0.115977,-0.000000,0.000000,0.993252 -1612,-0.117017,-0.000000,0.000000,0.993130 -1613,-0.118057,-0.000000,0.000000,0.993007 -1614,-0.119097,-0.000000,0.000000,0.992883 -1615,-0.120137,-0.000000,0.000000,0.992757 -1616,-0.121176,-0.000000,0.000000,0.992631 -1617,-0.122216,-0.000000,0.000000,0.992504 -1618,-0.123255,-0.000000,0.000000,0.992375 -1619,-0.124294,-0.000000,0.000000,0.992245 -1620,-0.125333,-0.000000,0.000000,0.992115 -1621,-0.126372,-0.000000,0.000000,0.991983 -1622,-0.127411,-0.000000,0.000000,0.991850 -1623,-0.128449,-0.000000,0.000000,0.991716 -1624,-0.129488,-0.000000,0.000000,0.991581 -1625,-0.130526,-0.000000,0.000000,0.991445 -1626,-0.131564,-0.000000,0.000000,0.991308 -1627,-0.132602,-0.000000,0.000000,0.991169 -1628,-0.133640,-0.000000,0.000000,0.991030 -1629,-0.134678,-0.000000,0.000000,0.990889 -1630,-0.135716,-0.000000,0.000000,0.990748 -1631,-0.136753,-0.000000,0.000000,0.990605 -1632,-0.137790,-0.000000,0.000000,0.990461 -1633,-0.138827,-0.000000,0.000000,0.990317 -1634,-0.139864,-0.000000,0.000000,0.990171 -1635,-0.140901,-0.000000,0.000000,0.990024 -1636,-0.141938,-0.000000,0.000000,0.989876 -1637,-0.142974,-0.000000,0.000000,0.989726 -1638,-0.144011,-0.000000,0.000000,0.989576 -1639,-0.145047,-0.000000,0.000000,0.989425 -1640,-0.146083,-0.000000,0.000000,0.989272 -1641,-0.147119,-0.000000,0.000000,0.989119 -1642,-0.148155,-0.000000,0.000000,0.988964 -1643,-0.149190,-0.000000,0.000000,0.988809 -1644,-0.150226,-0.000000,0.000000,0.988652 -1645,-0.151261,-0.000000,0.000000,0.988494 -1646,-0.152296,-0.000000,0.000000,0.988335 -1647,-0.153331,-0.000000,0.000000,0.988175 -1648,-0.154366,-0.000000,0.000000,0.988014 -1649,-0.155400,-0.000000,0.000000,0.987852 -1650,-0.156434,-0.000000,0.000000,0.987688 -1651,-0.157469,-0.000000,0.000000,0.987524 -1652,-0.158503,-0.000000,0.000000,0.987359 -1653,-0.159537,-0.000000,0.000000,0.987192 -1654,-0.160570,-0.000000,0.000000,0.987024 -1655,-0.161604,-0.000000,0.000000,0.986856 -1656,-0.162637,-0.000000,0.000000,0.986686 -1657,-0.163670,-0.000000,0.000000,0.986515 -1658,-0.164703,-0.000000,0.000000,0.986343 -1659,-0.165736,-0.000000,0.000000,0.986170 -1660,-0.166769,-0.000000,0.000000,0.985996 -1661,-0.167801,-0.000000,0.000000,0.985821 -1662,-0.168833,-0.000000,0.000000,0.985645 -1663,-0.169866,-0.000000,0.000000,0.985467 -1664,-0.170897,-0.000000,0.000000,0.985289 -1665,-0.171929,-0.000000,0.000000,0.985109 -1666,-0.172961,-0.000000,0.000000,0.984929 -1667,-0.173992,-0.000000,0.000000,0.984747 -1668,-0.175023,-0.000000,0.000000,0.984564 -1669,-0.176054,-0.000000,0.000000,0.984381 -1670,-0.177085,-0.000000,0.000000,0.984196 -1671,-0.178115,-0.000000,0.000000,0.984010 -1672,-0.179146,-0.000000,0.000000,0.983823 -1673,-0.180176,-0.000000,0.000000,0.983634 -1674,-0.181206,-0.000000,0.000000,0.983445 -1675,-0.182236,-0.000000,0.000000,0.983255 -1676,-0.183265,-0.000000,0.000000,0.983064 -1677,-0.184294,-0.000000,0.000000,0.982871 -1678,-0.185324,-0.000000,0.000000,0.982678 -1679,-0.186353,-0.000000,0.000000,0.982483 -1680,-0.187381,-0.000000,0.000000,0.982287 -1681,-0.188410,-0.000000,0.000000,0.982090 -1682,-0.189438,-0.000000,0.000000,0.981893 -1683,-0.190466,-0.000000,0.000000,0.981694 -1684,-0.191494,-0.000000,0.000000,0.981494 -1685,-0.192522,-0.000000,0.000000,0.981293 -1686,-0.193549,-0.000000,0.000000,0.981091 -1687,-0.194577,-0.000000,0.000000,0.980887 -1688,-0.195604,-0.000000,0.000000,0.980683 -1689,-0.196631,-0.000000,0.000000,0.980478 -1690,-0.197657,-0.000000,0.000000,0.980271 -1691,-0.198684,-0.000000,0.000000,0.980064 -1692,-0.199710,-0.000000,0.000000,0.979855 -1693,-0.200736,-0.000000,0.000000,0.979645 -1694,-0.201762,-0.000000,0.000000,0.979435 -1695,-0.202787,-0.000000,0.000000,0.979223 -1696,-0.203813,-0.000000,0.000000,0.979010 -1697,-0.204838,-0.000000,0.000000,0.978796 -1698,-0.205863,-0.000000,0.000000,0.978581 -1699,-0.206887,-0.000000,0.000000,0.978365 -1700,-0.207912,-0.000000,0.000000,0.978148 -1701,-0.208936,-0.000000,0.000000,0.977929 -1702,-0.209960,-0.000000,0.000000,0.977710 -1703,-0.210984,-0.000000,0.000000,0.977490 -1704,-0.212007,-0.000000,0.000000,0.977268 -1705,-0.213030,-0.000000,0.000000,0.977046 -1706,-0.214053,-0.000000,0.000000,0.976822 -1707,-0.215076,-0.000000,0.000000,0.976597 -1708,-0.216099,-0.000000,0.000000,0.976371 -1709,-0.217121,-0.000000,0.000000,0.976145 -1710,-0.218143,-0.000000,0.000000,0.975917 -1711,-0.219165,-0.000000,0.000000,0.975688 -1712,-0.220187,-0.000000,0.000000,0.975458 -1713,-0.221208,-0.000000,0.000000,0.975227 -1714,-0.222229,-0.000000,0.000000,0.974994 -1715,-0.223250,-0.000000,0.000000,0.974761 -1716,-0.224271,-0.000000,0.000000,0.974527 -1717,-0.225291,-0.000000,0.000000,0.974291 -1718,-0.226311,-0.000000,0.000000,0.974055 -1719,-0.227331,-0.000000,0.000000,0.973817 -1720,-0.228351,-0.000000,0.000000,0.973579 -1721,-0.229370,-0.000000,0.000000,0.973339 -1722,-0.230389,-0.000000,0.000000,0.973099 -1723,-0.231408,-0.000000,0.000000,0.972857 -1724,-0.232427,-0.000000,0.000000,0.972614 -1725,-0.233445,-0.000000,0.000000,0.972370 -1726,-0.234463,-0.000000,0.000000,0.972125 -1727,-0.235481,-0.000000,0.000000,0.971879 -1728,-0.236499,-0.000000,0.000000,0.971632 -1729,-0.237516,-0.000000,0.000000,0.971384 -1730,-0.238533,-0.000000,0.000000,0.971134 -1731,-0.239550,-0.000000,0.000000,0.970884 -1732,-0.240567,-0.000000,0.000000,0.970633 -1733,-0.241583,-0.000000,0.000000,0.970380 -1734,-0.242599,-0.000000,0.000000,0.970127 -1735,-0.243615,-0.000000,0.000000,0.969872 -1736,-0.244631,-0.000000,0.000000,0.969616 -1737,-0.245646,-0.000000,0.000000,0.969360 -1738,-0.246661,-0.000000,0.000000,0.969102 -1739,-0.247675,-0.000000,0.000000,0.968843 -1740,-0.248690,-0.000000,0.000000,0.968583 -1741,-0.249704,-0.000000,0.000000,0.968322 -1742,-0.250718,-0.000000,0.000000,0.968060 -1743,-0.251732,-0.000000,0.000000,0.967797 -1744,-0.252745,-0.000000,0.000000,0.967533 -1745,-0.253758,-0.000000,0.000000,0.967268 -1746,-0.254771,-0.000000,0.000000,0.967001 -1747,-0.255783,-0.000000,0.000000,0.966734 -1748,-0.256795,-0.000000,0.000000,0.966466 -1749,-0.257807,-0.000000,0.000000,0.966196 -1750,-0.258819,-0.000000,0.000000,0.965926 -1751,-0.259830,-0.000000,0.000000,0.965654 -1752,-0.260842,-0.000000,0.000000,0.965382 -1753,-0.261852,-0.000000,0.000000,0.965108 -1754,-0.262863,-0.000000,0.000000,0.964833 -1755,-0.263873,-0.000000,0.000000,0.964557 -1756,-0.264883,-0.000000,0.000000,0.964281 -1757,-0.265893,-0.000000,0.000000,0.964003 -1758,-0.266902,-0.000000,0.000000,0.963724 -1759,-0.267911,-0.000000,0.000000,0.963444 -1760,-0.268920,-0.000000,0.000000,0.963163 -1761,-0.269928,-0.000000,0.000000,0.962880 -1762,-0.270936,-0.000000,0.000000,0.962597 -1763,-0.271944,-0.000000,0.000000,0.962313 -1764,-0.272952,-0.000000,0.000000,0.962028 -1765,-0.273959,-0.000000,0.000000,0.961741 -1766,-0.274966,-0.000000,0.000000,0.961454 -1767,-0.275973,-0.000000,0.000000,0.961165 -1768,-0.276979,-0.000000,0.000000,0.960876 -1769,-0.277985,-0.000000,0.000000,0.960585 -1770,-0.278991,-0.000000,0.000000,0.960294 -1771,-0.279997,-0.000000,0.000000,0.960001 -1772,-0.281002,-0.000000,0.000000,0.959707 -1773,-0.282007,-0.000000,0.000000,0.959412 -1774,-0.283011,-0.000000,0.000000,0.959117 -1775,-0.284015,-0.000000,0.000000,0.958820 -1776,-0.285019,-0.000000,0.000000,0.958522 -1777,-0.286023,-0.000000,0.000000,0.958223 -1778,-0.287026,-0.000000,0.000000,0.957923 -1779,-0.288029,-0.000000,0.000000,0.957622 -1780,-0.289032,-0.000000,0.000000,0.957319 -1781,-0.290034,-0.000000,0.000000,0.957016 -1782,-0.291036,-0.000000,0.000000,0.956712 -1783,-0.292038,-0.000000,0.000000,0.956407 -1784,-0.293039,-0.000000,0.000000,0.956100 -1785,-0.294040,-0.000000,0.000000,0.955793 -1786,-0.295041,-0.000000,0.000000,0.955485 -1787,-0.296041,-0.000000,0.000000,0.955175 -1788,-0.297042,-0.000000,0.000000,0.954865 -1789,-0.298041,-0.000000,0.000000,0.954553 -1790,-0.299041,-0.000000,0.000000,0.954240 -1791,-0.300040,-0.000000,0.000000,0.953927 -1792,-0.301039,-0.000000,0.000000,0.953612 -1793,-0.302037,-0.000000,0.000000,0.953296 -1794,-0.303035,-0.000000,0.000000,0.952979 -1795,-0.304033,-0.000000,0.000000,0.952661 -1796,-0.305031,-0.000000,0.000000,0.952343 -1797,-0.306028,-0.000000,0.000000,0.952023 -1798,-0.307024,-0.000000,0.000000,0.951702 -1799,-0.308021,-0.000000,0.000000,0.951380 -1800,-0.309017,-0.000000,0.000000,0.951057 -1801,-0.310013,-0.000000,0.000000,0.950732 -1802,-0.311008,-0.000000,0.000000,0.950407 -1803,-0.312003,-0.000000,0.000000,0.950081 -1804,-0.312998,-0.000000,0.000000,0.949754 -1805,-0.313992,-0.000000,0.000000,0.949425 -1806,-0.314987,-0.000000,0.000000,0.949096 -1807,-0.315980,-0.000000,0.000000,0.948766 -1808,-0.316974,-0.000000,0.000000,0.948434 -1809,-0.317967,-0.000000,0.000000,0.948102 -1810,-0.318959,-0.000000,0.000000,0.947768 -1811,-0.319952,-0.000000,0.000000,0.947434 -1812,-0.320944,-0.000000,0.000000,0.947098 -1813,-0.321935,-0.000000,0.000000,0.946762 -1814,-0.322927,-0.000000,0.000000,0.946424 -1815,-0.323917,-0.000000,0.000000,0.946085 -1816,-0.324908,-0.000000,0.000000,0.945746 -1817,-0.325898,-0.000000,0.000000,0.945405 -1818,-0.326888,-0.000000,0.000000,0.945063 -1819,-0.327878,-0.000000,0.000000,0.944720 -1820,-0.328867,-0.000000,0.000000,0.944376 -1821,-0.329855,-0.000000,0.000000,0.944031 -1822,-0.330844,-0.000000,0.000000,0.943686 -1823,-0.331832,-0.000000,0.000000,0.943339 -1824,-0.332820,-0.000000,0.000000,0.942991 -1825,-0.333807,-0.000000,0.000000,0.942641 -1826,-0.334794,-0.000000,0.000000,0.942291 -1827,-0.335780,-0.000000,0.000000,0.941940 -1828,-0.336767,-0.000000,0.000000,0.941588 -1829,-0.337752,-0.000000,0.000000,0.941235 -1830,-0.338738,-0.000000,0.000000,0.940881 -1831,-0.339723,-0.000000,0.000000,0.940526 -1832,-0.340708,-0.000000,0.000000,0.940169 -1833,-0.341692,-0.000000,0.000000,0.939812 -1834,-0.342676,-0.000000,0.000000,0.939454 -1835,-0.343660,-0.000000,0.000000,0.939094 -1836,-0.344643,-0.000000,0.000000,0.938734 -1837,-0.345626,-0.000000,0.000000,0.938372 -1838,-0.346608,-0.000000,0.000000,0.938010 -1839,-0.347590,-0.000000,0.000000,0.937646 -1840,-0.348572,-0.000000,0.000000,0.937282 -1841,-0.349553,-0.000000,0.000000,0.936916 -1842,-0.350534,-0.000000,0.000000,0.936550 -1843,-0.351515,-0.000000,0.000000,0.936182 -1844,-0.352495,-0.000000,0.000000,0.935814 -1845,-0.353475,-0.000000,0.000000,0.935444 -1846,-0.354454,-0.000000,0.000000,0.935073 -1847,-0.355433,-0.000000,0.000000,0.934702 -1848,-0.356412,-0.000000,0.000000,0.934329 -1849,-0.357390,-0.000000,0.000000,0.933955 -1850,-0.358368,-0.000000,0.000000,0.933580 -1851,-0.359345,-0.000000,0.000000,0.933205 -1852,-0.360322,-0.000000,0.000000,0.932828 -1853,-0.361299,-0.000000,0.000000,0.932450 -1854,-0.362275,-0.000000,0.000000,0.932071 -1855,-0.363251,-0.000000,0.000000,0.931691 -1856,-0.364227,-0.000000,0.000000,0.931310 -1857,-0.365202,-0.000000,0.000000,0.930928 -1858,-0.366176,-0.000000,0.000000,0.930545 -1859,-0.367151,-0.000000,0.000000,0.930161 -1860,-0.368125,-0.000000,0.000000,0.929776 -1861,-0.369098,-0.000000,0.000000,0.929390 -1862,-0.370071,-0.000000,0.000000,0.929003 -1863,-0.371044,-0.000000,0.000000,0.928615 -1864,-0.372016,-0.000000,0.000000,0.928226 -1865,-0.372988,-0.000000,0.000000,0.927836 -1866,-0.373959,-0.000000,0.000000,0.927445 -1867,-0.374930,-0.000000,0.000000,0.927053 -1868,-0.375901,-0.000000,0.000000,0.926660 -1869,-0.376871,-0.000000,0.000000,0.926266 -1870,-0.377841,-0.000000,0.000000,0.925871 -1871,-0.378810,-0.000000,0.000000,0.925474 -1872,-0.379779,-0.000000,0.000000,0.925077 -1873,-0.380748,-0.000000,0.000000,0.924679 -1874,-0.381716,-0.000000,0.000000,0.924280 -1875,-0.382683,-0.000000,0.000000,0.923880 -1876,-0.383651,-0.000000,0.000000,0.923478 -1877,-0.384618,-0.000000,0.000000,0.923076 -1878,-0.385584,-0.000000,0.000000,0.922673 -1879,-0.386550,-0.000000,0.000000,0.922268 -1880,-0.387516,-0.000000,0.000000,0.921863 -1881,-0.388481,-0.000000,0.000000,0.921457 -1882,-0.389445,-0.000000,0.000000,0.921050 -1883,-0.390410,-0.000000,0.000000,0.920641 -1884,-0.391374,-0.000000,0.000000,0.920232 -1885,-0.392337,-0.000000,0.000000,0.919821 -1886,-0.393300,-0.000000,0.000000,0.919410 -1887,-0.394263,-0.000000,0.000000,0.918998 -1888,-0.395225,-0.000000,0.000000,0.918584 -1889,-0.396187,-0.000000,0.000000,0.918170 -1890,-0.397148,-0.000000,0.000000,0.917755 -1891,-0.398109,-0.000000,0.000000,0.917338 -1892,-0.399069,-0.000000,0.000000,0.916921 -1893,-0.400029,-0.000000,0.000000,0.916502 -1894,-0.400989,-0.000000,0.000000,0.916083 -1895,-0.401948,-0.000000,0.000000,0.915663 -1896,-0.402906,-0.000000,0.000000,0.915241 -1897,-0.403865,-0.000000,0.000000,0.914819 -1898,-0.404822,-0.000000,0.000000,0.914395 -1899,-0.405780,-0.000000,0.000000,0.913971 -1900,-0.406737,-0.000000,0.000000,0.913545 -1901,-0.407693,-0.000000,0.000000,0.913119 -1902,-0.408649,-0.000000,0.000000,0.912692 -1903,-0.409605,-0.000000,0.000000,0.912263 -1904,-0.410560,-0.000000,0.000000,0.911834 -1905,-0.411514,-0.000000,0.000000,0.911403 -1906,-0.412469,-0.000000,0.000000,0.910972 -1907,-0.413422,-0.000000,0.000000,0.910539 -1908,-0.414376,-0.000000,0.000000,0.910106 -1909,-0.415328,-0.000000,0.000000,0.909672 -1910,-0.416281,-0.000000,0.000000,0.909236 -1911,-0.417233,-0.000000,0.000000,0.908800 -1912,-0.418184,-0.000000,0.000000,0.908362 -1913,-0.419135,-0.000000,0.000000,0.907924 -1914,-0.420086,-0.000000,0.000000,0.907484 -1915,-0.421036,-0.000000,0.000000,0.907044 -1916,-0.421985,-0.000000,0.000000,0.906603 -1917,-0.422935,-0.000000,0.000000,0.906160 -1918,-0.423883,-0.000000,0.000000,0.905717 -1919,-0.424832,-0.000000,0.000000,0.905272 -1920,-0.425779,-0.000000,0.000000,0.904827 -1921,-0.426727,-0.000000,0.000000,0.904381 -1922,-0.427673,-0.000000,0.000000,0.903933 -1923,-0.428620,-0.000000,0.000000,0.903485 -1924,-0.429566,-0.000000,0.000000,0.903036 -1925,-0.430511,-0.000000,0.000000,0.902585 -1926,-0.431456,-0.000000,0.000000,0.902134 -1927,-0.432401,-0.000000,0.000000,0.901682 -1928,-0.433345,-0.000000,0.000000,0.901228 -1929,-0.434288,-0.000000,0.000000,0.900774 -1930,-0.435231,-0.000000,0.000000,0.900319 -1931,-0.436174,-0.000000,0.000000,0.899863 -1932,-0.437116,-0.000000,0.000000,0.899405 -1933,-0.438057,-0.000000,0.000000,0.898947 -1934,-0.438999,-0.000000,0.000000,0.898488 -1935,-0.439939,-0.000000,0.000000,0.898028 -1936,-0.440879,-0.000000,0.000000,0.897566 -1937,-0.441819,-0.000000,0.000000,0.897104 -1938,-0.442758,-0.000000,0.000000,0.896641 -1939,-0.443697,-0.000000,0.000000,0.896177 -1940,-0.444635,-0.000000,0.000000,0.895712 -1941,-0.445573,-0.000000,0.000000,0.895246 -1942,-0.446510,-0.000000,0.000000,0.894779 -1943,-0.447447,-0.000000,0.000000,0.894310 -1944,-0.448383,-0.000000,0.000000,0.893841 -1945,-0.449319,-0.000000,0.000000,0.893371 -1946,-0.450254,-0.000000,0.000000,0.892900 -1947,-0.451189,-0.000000,0.000000,0.892428 -1948,-0.452123,-0.000000,0.000000,0.891955 -1949,-0.453057,-0.000000,0.000000,0.891481 -1950,-0.453990,-0.000000,0.000000,0.891007 -1951,-0.454923,-0.000000,0.000000,0.890531 -1952,-0.455856,-0.000000,0.000000,0.890054 -1953,-0.456787,-0.000000,0.000000,0.889576 -1954,-0.457719,-0.000000,0.000000,0.889097 -1955,-0.458650,-0.000000,0.000000,0.888617 -1956,-0.459580,-0.000000,0.000000,0.888136 -1957,-0.460510,-0.000000,0.000000,0.887655 -1958,-0.461439,-0.000000,0.000000,0.887172 -1959,-0.462368,-0.000000,0.000000,0.886688 -1960,-0.463296,-0.000000,0.000000,0.886204 -1961,-0.464224,-0.000000,0.000000,0.885718 -1962,-0.465151,-0.000000,0.000000,0.885231 -1963,-0.466078,-0.000000,0.000000,0.884744 -1964,-0.467004,-0.000000,0.000000,0.884255 -1965,-0.467930,-0.000000,0.000000,0.883766 -1966,-0.468855,-0.000000,0.000000,0.883275 -1967,-0.469780,-0.000000,0.000000,0.882784 -1968,-0.470704,-0.000000,0.000000,0.882291 -1969,-0.471628,-0.000000,0.000000,0.881798 -1970,-0.472551,-0.000000,0.000000,0.881303 -1971,-0.473473,-0.000000,0.000000,0.880808 -1972,-0.474396,-0.000000,0.000000,0.880312 -1973,-0.475317,-0.000000,0.000000,0.879815 -1974,-0.476238,-0.000000,0.000000,0.879316 -1975,-0.477159,-0.000000,0.000000,0.878817 -1976,-0.478079,-0.000000,0.000000,0.878317 -1977,-0.478998,-0.000000,0.000000,0.877816 -1978,-0.479917,-0.000000,0.000000,0.877314 -1979,-0.480836,-0.000000,0.000000,0.876811 -1980,-0.481754,-0.000000,0.000000,0.876307 -1981,-0.482671,-0.000000,0.000000,0.875802 -1982,-0.483588,-0.000000,0.000000,0.875296 -1983,-0.484504,-0.000000,0.000000,0.874789 -1984,-0.485420,-0.000000,0.000000,0.874281 -1985,-0.486335,-0.000000,0.000000,0.873772 -1986,-0.487250,-0.000000,0.000000,0.873262 -1987,-0.488164,-0.000000,0.000000,0.872752 -1988,-0.489078,-0.000000,0.000000,0.872240 -1989,-0.489991,-0.000000,0.000000,0.871727 -1990,-0.490904,-0.000000,0.000000,0.871214 -1991,-0.491816,-0.000000,0.000000,0.870699 -1992,-0.492727,-0.000000,0.000000,0.870184 -1993,-0.493638,-0.000000,0.000000,0.869667 -1994,-0.494549,-0.000000,0.000000,0.869150 -1995,-0.495459,-0.000000,0.000000,0.868632 -1996,-0.496368,-0.000000,0.000000,0.868112 -1997,-0.497277,-0.000000,0.000000,0.867592 -1998,-0.498185,-0.000000,0.000000,0.867071 -1999,-0.499093,-0.000000,0.000000,0.866549 -2000,-0.500000,-0.000000,0.000000,0.866025 -2001,-0.500907,-0.000000,0.000000,0.865501 -2002,-0.501813,-0.000000,0.000000,0.864976 -2003,-0.502718,-0.000000,0.000000,0.864450 -2004,-0.503623,-0.000000,0.000000,0.863923 -2005,-0.504528,-0.000000,0.000000,0.863396 -2006,-0.505431,-0.000000,0.000000,0.862867 -2007,-0.506335,-0.000000,0.000000,0.862337 -2008,-0.507238,-0.000000,0.000000,0.861806 -2009,-0.508140,-0.000000,0.000000,0.861275 -2010,-0.509041,-0.000000,0.000000,0.860742 -2011,-0.509943,-0.000000,0.000000,0.860208 -2012,-0.510843,-0.000000,0.000000,0.859674 -2013,-0.511743,-0.000000,0.000000,0.859139 -2014,-0.512642,-0.000000,0.000000,0.858602 -2015,-0.513541,-0.000000,0.000000,0.858065 -2016,-0.514440,-0.000000,0.000000,0.857527 -2017,-0.515337,-0.000000,0.000000,0.856987 -2018,-0.516234,-0.000000,0.000000,0.856447 -2019,-0.517131,-0.000000,0.000000,0.855906 -2020,-0.518027,-0.000000,0.000000,0.855364 -2021,-0.518922,-0.000000,0.000000,0.854821 -2022,-0.519817,-0.000000,0.000000,0.854277 -2023,-0.520712,-0.000000,0.000000,0.853733 -2024,-0.521605,-0.000000,0.000000,0.853187 -2025,-0.522499,-0.000000,0.000000,0.852640 -2026,-0.523391,-0.000000,0.000000,0.852093 -2027,-0.524283,-0.000000,0.000000,0.851544 -2028,-0.525175,-0.000000,0.000000,0.850994 -2029,-0.526066,-0.000000,0.000000,0.850444 -2030,-0.526956,-0.000000,0.000000,0.849893 -2031,-0.527846,-0.000000,0.000000,0.849340 -2032,-0.528735,-0.000000,0.000000,0.848787 -2033,-0.529623,-0.000000,0.000000,0.848233 -2034,-0.530511,-0.000000,0.000000,0.847678 -2035,-0.531399,-0.000000,0.000000,0.847122 -2036,-0.532285,-0.000000,0.000000,0.846565 -2037,-0.533172,-0.000000,0.000000,0.846007 -2038,-0.534057,-0.000000,0.000000,0.845448 -2039,-0.534942,-0.000000,0.000000,0.844889 -2040,-0.535827,-0.000000,0.000000,0.844328 -2041,-0.536711,-0.000000,0.000000,0.843766 -2042,-0.537594,-0.000000,0.000000,0.843204 -2043,-0.538477,-0.000000,0.000000,0.842640 -2044,-0.539359,-0.000000,0.000000,0.842076 -2045,-0.540240,-0.000000,0.000000,0.841511 -2046,-0.541121,-0.000000,0.000000,0.840945 -2047,-0.542002,-0.000000,0.000000,0.840377 -2048,-0.542881,-0.000000,0.000000,0.839809 -2049,-0.543760,-0.000000,0.000000,0.839240 -2050,-0.544639,-0.000000,0.000000,0.838671 -2051,-0.545517,-0.000000,0.000000,0.838100 -2052,-0.546394,-0.000000,0.000000,0.837528 -2053,-0.547271,-0.000000,0.000000,0.836955 -2054,-0.548147,-0.000000,0.000000,0.836382 -2055,-0.549023,-0.000000,0.000000,0.835807 -2056,-0.549898,-0.000000,0.000000,0.835232 -2057,-0.550772,-0.000000,0.000000,0.834656 -2058,-0.551646,-0.000000,0.000000,0.834078 -2059,-0.552519,-0.000000,0.000000,0.833500 -2060,-0.553392,-0.000000,0.000000,0.832921 -2061,-0.554263,-0.000000,0.000000,0.832341 -2062,-0.555135,-0.000000,0.000000,0.831760 -2063,-0.556006,-0.000000,0.000000,0.831179 -2064,-0.556876,-0.000000,0.000000,0.830596 -2065,-0.557745,-0.000000,0.000000,0.830012 -2066,-0.558614,-0.000000,0.000000,0.829428 -2067,-0.559482,-0.000000,0.000000,0.828842 -2068,-0.560350,-0.000000,0.000000,0.828256 -2069,-0.561217,-0.000000,0.000000,0.827669 -2070,-0.562083,-0.000000,0.000000,0.827081 -2071,-0.562949,-0.000000,0.000000,0.826492 -2072,-0.563814,-0.000000,0.000000,0.825902 -2073,-0.564679,-0.000000,0.000000,0.825311 -2074,-0.565543,-0.000000,0.000000,0.824719 -2075,-0.566406,-0.000000,0.000000,0.824126 -2076,-0.567269,-0.000000,0.000000,0.823533 -2077,-0.568131,-0.000000,0.000000,0.822938 -2078,-0.568993,-0.000000,0.000000,0.822343 -2079,-0.569853,-0.000000,0.000000,0.821746 -2080,-0.570714,-0.000000,0.000000,0.821149 -2081,-0.571573,-0.000000,0.000000,0.820551 -2082,-0.572432,-0.000000,0.000000,0.819952 -2083,-0.573290,-0.000000,0.000000,0.819352 -2084,-0.574148,-0.000000,0.000000,0.818751 -2085,-0.575005,-0.000000,0.000000,0.818150 -2086,-0.575862,-0.000000,0.000000,0.817547 -2087,-0.576718,-0.000000,0.000000,0.816944 -2088,-0.577573,-0.000000,0.000000,0.816339 -2089,-0.578427,-0.000000,0.000000,0.815734 -2090,-0.579281,-0.000000,0.000000,0.815128 -2091,-0.580134,-0.000000,0.000000,0.814521 -2092,-0.580987,-0.000000,0.000000,0.813913 -2093,-0.581839,-0.000000,0.000000,0.813304 -2094,-0.582690,-0.000000,0.000000,0.812694 -2095,-0.583541,-0.000000,0.000000,0.812084 -2096,-0.584391,-0.000000,0.000000,0.811472 -2097,-0.585241,-0.000000,0.000000,0.810860 -2098,-0.586090,-0.000000,0.000000,0.810246 -2099,-0.586938,-0.000000,0.000000,0.809632 -2100,-0.587785,-0.000000,0.000000,0.809017 -2101,-0.588632,-0.000000,0.000000,0.808401 -2102,-0.589478,-0.000000,0.000000,0.807784 -2103,-0.590324,-0.000000,0.000000,0.807166 -2104,-0.591169,-0.000000,0.000000,0.806548 -2105,-0.592013,-0.000000,0.000000,0.805928 -2106,-0.592857,-0.000000,0.000000,0.805308 -2107,-0.593700,-0.000000,0.000000,0.804687 -2108,-0.594542,-0.000000,0.000000,0.804064 -2109,-0.595384,-0.000000,0.000000,0.803441 -2110,-0.596225,-0.000000,0.000000,0.802817 -2111,-0.597065,-0.000000,0.000000,0.802193 -2112,-0.597905,-0.000000,0.000000,0.801567 -2113,-0.598744,-0.000000,0.000000,0.800940 -2114,-0.599582,-0.000000,0.000000,0.800313 -2115,-0.600420,-0.000000,0.000000,0.799685 -2116,-0.601257,-0.000000,0.000000,0.799055 -2117,-0.602094,-0.000000,0.000000,0.798425 -2118,-0.602930,-0.000000,0.000000,0.797794 -2119,-0.603765,-0.000000,0.000000,0.797163 -2120,-0.604599,-0.000000,0.000000,0.796530 -2121,-0.605433,-0.000000,0.000000,0.795896 -2122,-0.606266,-0.000000,0.000000,0.795262 -2123,-0.607098,-0.000000,0.000000,0.794627 -2124,-0.607930,-0.000000,0.000000,0.793990 -2125,-0.608761,-0.000000,0.000000,0.793353 -2126,-0.609592,-0.000000,0.000000,0.792715 -2127,-0.610422,-0.000000,0.000000,0.792077 -2128,-0.611251,-0.000000,0.000000,0.791437 -2129,-0.612079,-0.000000,0.000000,0.790796 -2130,-0.612907,-0.000000,0.000000,0.790155 -2131,-0.613734,-0.000000,0.000000,0.789513 -2132,-0.614561,-0.000000,0.000000,0.788870 -2133,-0.615386,-0.000000,0.000000,0.788226 -2134,-0.616211,-0.000000,0.000000,0.787581 -2135,-0.617036,-0.000000,0.000000,0.786935 -2136,-0.617860,-0.000000,0.000000,0.786288 -2137,-0.618683,-0.000000,0.000000,0.785641 -2138,-0.619505,-0.000000,0.000000,0.784993 -2139,-0.620327,-0.000000,0.000000,0.784343 -2140,-0.621148,-0.000000,0.000000,0.783693 -2141,-0.621968,-0.000000,0.000000,0.783043 -2142,-0.622788,-0.000000,0.000000,0.782391 -2143,-0.623607,-0.000000,0.000000,0.781738 -2144,-0.624425,-0.000000,0.000000,0.781085 -2145,-0.625243,-0.000000,0.000000,0.780430 -2146,-0.626060,-0.000000,0.000000,0.779775 -2147,-0.626876,-0.000000,0.000000,0.779119 -2148,-0.627691,-0.000000,0.000000,0.778462 -2149,-0.628506,-0.000000,0.000000,0.777805 -2150,-0.629320,-0.000000,0.000000,0.777146 -2151,-0.630134,-0.000000,0.000000,0.776487 -2152,-0.630947,-0.000000,0.000000,0.775826 -2153,-0.631759,-0.000000,0.000000,0.775165 -2154,-0.632570,-0.000000,0.000000,0.774503 -2155,-0.633381,-0.000000,0.000000,0.773840 -2156,-0.634191,-0.000000,0.000000,0.773177 -2157,-0.635000,-0.000000,0.000000,0.772512 -2158,-0.635809,-0.000000,0.000000,0.771847 -2159,-0.636617,-0.000000,0.000000,0.771180 -2160,-0.637424,-0.000000,0.000000,0.770513 -2161,-0.638231,-0.000000,0.000000,0.769845 -2162,-0.639036,-0.000000,0.000000,0.769177 -2163,-0.639841,-0.000000,0.000000,0.768507 -2164,-0.640646,-0.000000,0.000000,0.767836 -2165,-0.641450,-0.000000,0.000000,0.767165 -2166,-0.642253,-0.000000,0.000000,0.766493 -2167,-0.643055,-0.000000,0.000000,0.765820 -2168,-0.643857,-0.000000,0.000000,0.765146 -2169,-0.644657,-0.000000,0.000000,0.764472 -2170,-0.645458,-0.000000,0.000000,0.763796 -2171,-0.646257,-0.000000,0.000000,0.763120 -2172,-0.647056,-0.000000,0.000000,0.762443 -2173,-0.647854,-0.000000,0.000000,0.761764 -2174,-0.648651,-0.000000,0.000000,0.761086 -2175,-0.649448,-0.000000,0.000000,0.760406 -2176,-0.650244,-0.000000,0.000000,0.759725 -2177,-0.651039,-0.000000,0.000000,0.759044 -2178,-0.651834,-0.000000,0.000000,0.758362 -2179,-0.652628,-0.000000,0.000000,0.757679 -2180,-0.653421,-0.000000,0.000000,0.756995 -2181,-0.654213,-0.000000,0.000000,0.756310 -2182,-0.655005,-0.000000,0.000000,0.755625 -2183,-0.655796,-0.000000,0.000000,0.754939 -2184,-0.656586,-0.000000,0.000000,0.754251 -2185,-0.657375,-0.000000,0.000000,0.753563 -2186,-0.658164,-0.000000,0.000000,0.752875 -2187,-0.658952,-0.000000,0.000000,0.752185 -2188,-0.659739,-0.000000,0.000000,0.751494 -2189,-0.660526,-0.000000,0.000000,0.750803 -2190,-0.661312,-0.000000,0.000000,0.750111 -2191,-0.662097,-0.000000,0.000000,0.749418 -2192,-0.662881,-0.000000,0.000000,0.748724 -2193,-0.663665,-0.000000,0.000000,0.748030 -2194,-0.664448,-0.000000,0.000000,0.747334 -2195,-0.665230,-0.000000,0.000000,0.746638 -2196,-0.666012,-0.000000,0.000000,0.745941 -2197,-0.666793,-0.000000,0.000000,0.745243 -2198,-0.667573,-0.000000,0.000000,0.744545 -2199,-0.668352,-0.000000,0.000000,0.743845 -2200,-0.669131,-0.000000,0.000000,0.743145 -2201,-0.669908,-0.000000,0.000000,0.742444 -2202,-0.670686,-0.000000,0.000000,0.741742 -2203,-0.671462,-0.000000,0.000000,0.741039 -2204,-0.672238,-0.000000,0.000000,0.740335 -2205,-0.673013,-0.000000,0.000000,0.739631 -2206,-0.673787,-0.000000,0.000000,0.738926 -2207,-0.674560,-0.000000,0.000000,0.738220 -2208,-0.675333,-0.000000,0.000000,0.737513 -2209,-0.676105,-0.000000,0.000000,0.736806 -2210,-0.676876,-0.000000,0.000000,0.736097 -2211,-0.677646,-0.000000,0.000000,0.735388 -2212,-0.678416,-0.000000,0.000000,0.734678 -2213,-0.679185,-0.000000,0.000000,0.733967 -2214,-0.679953,-0.000000,0.000000,0.733255 -2215,-0.680721,-0.000000,0.000000,0.732543 -2216,-0.681488,-0.000000,0.000000,0.731830 -2217,-0.682254,-0.000000,0.000000,0.731116 -2218,-0.683019,-0.000000,0.000000,0.730401 -2219,-0.683783,-0.000000,0.000000,0.729685 -2220,-0.684547,-0.000000,0.000000,0.728969 -2221,-0.685310,-0.000000,0.000000,0.728251 -2222,-0.686072,-0.000000,0.000000,0.727533 -2223,-0.686834,-0.000000,0.000000,0.726814 -2224,-0.687595,-0.000000,0.000000,0.726095 -2225,-0.688355,-0.000000,0.000000,0.725374 -2226,-0.689114,-0.000000,0.000000,0.724653 -2227,-0.689872,-0.000000,0.000000,0.723931 -2228,-0.690630,-0.000000,0.000000,0.723208 -2229,-0.691387,-0.000000,0.000000,0.722485 -2230,-0.692143,-0.000000,0.000000,0.721760 -2231,-0.692899,-0.000000,0.000000,0.721035 -2232,-0.693653,-0.000000,0.000000,0.720309 -2233,-0.694407,-0.000000,0.000000,0.719582 -2234,-0.695160,-0.000000,0.000000,0.718855 -2235,-0.695913,-0.000000,0.000000,0.718126 -2236,-0.696664,-0.000000,0.000000,0.717397 -2237,-0.697415,-0.000000,0.000000,0.716667 -2238,-0.698165,-0.000000,0.000000,0.715936 -2239,-0.698915,-0.000000,0.000000,0.715205 -2240,-0.699663,-0.000000,0.000000,0.714473 -2241,-0.700411,-0.000000,0.000000,0.713740 -2242,-0.701158,-0.000000,0.000000,0.713006 -2243,-0.701904,-0.000000,0.000000,0.712271 -2244,-0.702650,-0.000000,0.000000,0.711536 -2245,-0.703395,-0.000000,0.000000,0.710799 -2246,-0.704139,-0.000000,0.000000,0.710062 -2247,-0.704882,-0.000000,0.000000,0.709325 -2248,-0.705624,-0.000000,0.000000,0.708586 -2249,-0.706366,-0.000000,0.000000,0.707847 -2250,-0.707107,-0.000000,0.000000,0.707107 -2251,-0.707847,-0.000000,0.000000,0.706366 -2252,-0.708586,-0.000000,0.000000,0.705624 -2253,-0.709325,-0.000000,0.000000,0.704882 -2254,-0.710062,-0.000000,0.000000,0.704139 -2255,-0.710799,-0.000000,0.000000,0.703395 -2256,-0.711536,-0.000000,0.000000,0.702650 -2257,-0.712271,-0.000000,0.000000,0.701904 -2258,-0.713006,-0.000000,0.000000,0.701158 -2259,-0.713740,-0.000000,0.000000,0.700411 -2260,-0.714473,-0.000000,0.000000,0.699663 -2261,-0.715205,-0.000000,0.000000,0.698915 -2262,-0.715936,-0.000000,0.000000,0.698165 -2263,-0.716667,-0.000000,0.000000,0.697415 -2264,-0.717397,-0.000000,0.000000,0.696664 -2265,-0.718126,-0.000000,0.000000,0.695913 -2266,-0.718855,-0.000000,0.000000,0.695160 -2267,-0.719582,-0.000000,0.000000,0.694407 -2268,-0.720309,-0.000000,0.000000,0.693653 -2269,-0.721035,-0.000000,0.000000,0.692899 -2270,-0.721760,-0.000000,0.000000,0.692143 -2271,-0.722485,-0.000000,0.000000,0.691387 -2272,-0.723208,-0.000000,0.000000,0.690630 -2273,-0.723931,-0.000000,0.000000,0.689872 -2274,-0.724653,-0.000000,0.000000,0.689114 -2275,-0.725374,-0.000000,0.000000,0.688355 -2276,-0.726095,-0.000000,0.000000,0.687595 -2277,-0.726814,-0.000000,0.000000,0.686834 -2278,-0.727533,-0.000000,0.000000,0.686072 -2279,-0.728251,-0.000000,0.000000,0.685310 -2280,-0.728969,-0.000000,0.000000,0.684547 -2281,-0.729685,-0.000000,0.000000,0.683783 -2282,-0.730401,-0.000000,0.000000,0.683019 -2283,-0.731116,-0.000000,0.000000,0.682254 -2284,-0.731830,-0.000000,0.000000,0.681488 -2285,-0.732543,-0.000000,0.000000,0.680721 -2286,-0.733255,-0.000000,0.000000,0.679953 -2287,-0.733967,-0.000000,0.000000,0.679185 -2288,-0.734678,-0.000000,0.000000,0.678416 -2289,-0.735388,-0.000000,0.000000,0.677646 -2290,-0.736097,-0.000000,0.000000,0.676876 -2291,-0.736806,-0.000000,0.000000,0.676105 -2292,-0.737513,-0.000000,0.000000,0.675333 -2293,-0.738220,-0.000000,0.000000,0.674560 -2294,-0.738926,-0.000000,0.000000,0.673787 -2295,-0.739631,-0.000000,0.000000,0.673013 -2296,-0.740335,-0.000000,0.000000,0.672238 -2297,-0.741039,-0.000000,0.000000,0.671462 -2298,-0.741742,-0.000000,0.000000,0.670686 -2299,-0.742444,-0.000000,0.000000,0.669908 -2300,-0.743145,-0.000000,0.000000,0.669131 -2301,-0.743845,-0.000000,0.000000,0.668352 -2302,-0.744545,-0.000000,0.000000,0.667573 -2303,-0.745243,-0.000000,0.000000,0.666793 -2304,-0.745941,-0.000000,0.000000,0.666012 -2305,-0.746638,-0.000000,0.000000,0.665230 -2306,-0.747334,-0.000000,0.000000,0.664448 -2307,-0.748030,-0.000000,0.000000,0.663665 -2308,-0.748724,-0.000000,0.000000,0.662881 -2309,-0.749418,-0.000000,0.000000,0.662097 -2310,-0.750111,-0.000000,0.000000,0.661312 -2311,-0.750803,-0.000000,0.000000,0.660526 -2312,-0.751494,-0.000000,0.000000,0.659739 -2313,-0.752185,-0.000000,0.000000,0.658952 -2314,-0.752875,-0.000000,0.000000,0.658164 -2315,-0.753563,-0.000000,0.000000,0.657375 -2316,-0.754251,-0.000000,0.000000,0.656586 -2317,-0.754939,-0.000000,0.000000,0.655796 -2318,-0.755625,-0.000000,0.000000,0.655005 -2319,-0.756310,-0.000000,0.000000,0.654213 -2320,-0.756995,-0.000000,0.000000,0.653421 -2321,-0.757679,-0.000000,0.000000,0.652628 -2322,-0.758362,-0.000000,0.000000,0.651834 -2323,-0.759044,-0.000000,0.000000,0.651039 -2324,-0.759725,-0.000000,0.000000,0.650244 -2325,-0.760406,-0.000000,0.000000,0.649448 -2326,-0.761086,-0.000000,0.000000,0.648651 -2327,-0.761764,-0.000000,0.000000,0.647854 -2328,-0.762443,-0.000000,0.000000,0.647056 -2329,-0.763120,-0.000000,0.000000,0.646257 -2330,-0.763796,-0.000000,0.000000,0.645458 -2331,-0.764472,-0.000000,0.000000,0.644657 -2332,-0.765146,-0.000000,0.000000,0.643857 -2333,-0.765820,-0.000000,0.000000,0.643055 -2334,-0.766493,-0.000000,0.000000,0.642253 -2335,-0.767165,-0.000000,0.000000,0.641450 -2336,-0.767836,-0.000000,0.000000,0.640646 -2337,-0.768507,-0.000000,0.000000,0.639841 -2338,-0.769177,-0.000000,0.000000,0.639036 -2339,-0.769845,-0.000000,0.000000,0.638231 -2340,-0.770513,-0.000000,0.000000,0.637424 -2341,-0.771180,-0.000000,0.000000,0.636617 -2342,-0.771847,-0.000000,0.000000,0.635809 -2343,-0.772512,-0.000000,0.000000,0.635000 -2344,-0.773177,-0.000000,0.000000,0.634191 -2345,-0.773840,-0.000000,0.000000,0.633381 -2346,-0.774503,-0.000000,0.000000,0.632570 -2347,-0.775165,-0.000000,0.000000,0.631759 -2348,-0.775826,-0.000000,0.000000,0.630947 -2349,-0.776487,-0.000000,0.000000,0.630134 -2350,-0.777146,-0.000000,0.000000,0.629320 -2351,-0.777805,-0.000000,0.000000,0.628506 -2352,-0.778462,-0.000000,0.000000,0.627691 -2353,-0.779119,-0.000000,0.000000,0.626876 -2354,-0.779775,-0.000000,0.000000,0.626060 -2355,-0.780430,-0.000000,0.000000,0.625243 -2356,-0.781085,-0.000000,0.000000,0.624425 -2357,-0.781738,-0.000000,0.000000,0.623607 -2358,-0.782391,-0.000000,0.000000,0.622788 -2359,-0.783043,-0.000000,0.000000,0.621968 -2360,-0.783693,-0.000000,0.000000,0.621148 -2361,-0.784343,-0.000000,0.000000,0.620327 -2362,-0.784993,-0.000000,0.000000,0.619505 -2363,-0.785641,-0.000000,0.000000,0.618683 -2364,-0.786288,-0.000000,0.000000,0.617860 -2365,-0.786935,-0.000000,0.000000,0.617036 -2366,-0.787581,-0.000000,0.000000,0.616211 -2367,-0.788226,-0.000000,0.000000,0.615386 -2368,-0.788870,-0.000000,0.000000,0.614561 -2369,-0.789513,-0.000000,0.000000,0.613734 -2370,-0.790155,-0.000000,0.000000,0.612907 -2371,-0.790796,-0.000000,0.000000,0.612079 -2372,-0.791437,-0.000000,0.000000,0.611251 -2373,-0.792077,-0.000000,0.000000,0.610422 -2374,-0.792715,-0.000000,0.000000,0.609592 -2375,-0.793353,-0.000000,0.000000,0.608761 -2376,-0.793990,-0.000000,0.000000,0.607930 -2377,-0.794627,-0.000000,0.000000,0.607098 -2378,-0.795262,-0.000000,0.000000,0.606266 -2379,-0.795896,-0.000000,0.000000,0.605433 -2380,-0.796530,-0.000000,0.000000,0.604599 -2381,-0.797163,-0.000000,0.000000,0.603765 -2382,-0.797794,-0.000000,0.000000,0.602930 -2383,-0.798425,-0.000000,0.000000,0.602094 -2384,-0.799055,-0.000000,0.000000,0.601257 -2385,-0.799685,-0.000000,0.000000,0.600420 -2386,-0.800313,-0.000000,0.000000,0.599582 -2387,-0.800940,-0.000000,0.000000,0.598744 -2388,-0.801567,-0.000000,0.000000,0.597905 -2389,-0.802193,-0.000000,0.000000,0.597065 -2390,-0.802817,-0.000000,0.000000,0.596225 -2391,-0.803441,-0.000000,0.000000,0.595384 -2392,-0.804064,-0.000000,0.000000,0.594542 -2393,-0.804687,-0.000000,0.000000,0.593700 -2394,-0.805308,-0.000000,0.000000,0.592857 -2395,-0.805928,-0.000000,0.000000,0.592013 -2396,-0.806548,-0.000000,0.000000,0.591169 -2397,-0.807166,-0.000000,0.000000,0.590324 -2398,-0.807784,-0.000000,0.000000,0.589478 -2399,-0.808401,-0.000000,0.000000,0.588632 -2400,-0.809017,-0.000000,0.000000,0.587785 -2401,-0.809632,-0.000000,0.000000,0.586938 -2402,-0.810246,-0.000000,0.000000,0.586090 -2403,-0.810860,-0.000000,0.000000,0.585241 -2404,-0.811472,-0.000000,0.000000,0.584391 -2405,-0.812084,-0.000000,0.000000,0.583541 -2406,-0.812694,-0.000000,0.000000,0.582690 -2407,-0.813304,-0.000000,0.000000,0.581839 -2408,-0.813913,-0.000000,0.000000,0.580987 -2409,-0.814521,-0.000000,0.000000,0.580134 -2410,-0.815128,-0.000000,0.000000,0.579281 -2411,-0.815734,-0.000000,0.000000,0.578427 -2412,-0.816339,-0.000000,0.000000,0.577573 -2413,-0.816944,-0.000000,0.000000,0.576718 -2414,-0.817547,-0.000000,0.000000,0.575862 -2415,-0.818150,-0.000000,0.000000,0.575005 -2416,-0.818751,-0.000000,0.000000,0.574148 -2417,-0.819352,-0.000000,0.000000,0.573290 -2418,-0.819952,-0.000000,0.000000,0.572432 -2419,-0.820551,-0.000000,0.000000,0.571573 -2420,-0.821149,-0.000000,0.000000,0.570714 -2421,-0.821746,-0.000000,0.000000,0.569853 -2422,-0.822343,-0.000000,0.000000,0.568993 -2423,-0.822938,-0.000000,0.000000,0.568131 -2424,-0.823533,-0.000000,0.000000,0.567269 -2425,-0.824126,-0.000000,0.000000,0.566406 -2426,-0.824719,-0.000000,0.000000,0.565543 -2427,-0.825311,-0.000000,0.000000,0.564679 -2428,-0.825902,-0.000000,0.000000,0.563814 -2429,-0.826492,-0.000000,0.000000,0.562949 -2430,-0.827081,-0.000000,0.000000,0.562083 -2431,-0.827669,-0.000000,0.000000,0.561217 -2432,-0.828256,-0.000000,0.000000,0.560350 -2433,-0.828842,-0.000000,0.000000,0.559482 -2434,-0.829428,-0.000000,0.000000,0.558614 -2435,-0.830012,-0.000000,0.000000,0.557745 -2436,-0.830596,-0.000000,0.000000,0.556876 -2437,-0.831179,-0.000000,0.000000,0.556006 -2438,-0.831760,-0.000000,0.000000,0.555135 -2439,-0.832341,-0.000000,0.000000,0.554263 -2440,-0.832921,-0.000000,0.000000,0.553392 -2441,-0.833500,-0.000000,0.000000,0.552519 -2442,-0.834078,-0.000000,0.000000,0.551646 -2443,-0.834656,-0.000000,0.000000,0.550772 -2444,-0.835232,-0.000000,0.000000,0.549898 -2445,-0.835807,-0.000000,0.000000,0.549023 -2446,-0.836382,-0.000000,0.000000,0.548147 -2447,-0.836955,-0.000000,0.000000,0.547271 -2448,-0.837528,-0.000000,0.000000,0.546394 -2449,-0.838100,-0.000000,0.000000,0.545517 -2450,-0.838671,-0.000000,0.000000,0.544639 -2451,-0.839240,-0.000000,0.000000,0.543760 -2452,-0.839809,-0.000000,0.000000,0.542881 -2453,-0.840377,-0.000000,0.000000,0.542002 -2454,-0.840945,-0.000000,0.000000,0.541121 -2455,-0.841511,-0.000000,0.000000,0.540240 -2456,-0.842076,-0.000000,0.000000,0.539359 -2457,-0.842640,-0.000000,0.000000,0.538477 -2458,-0.843204,-0.000000,0.000000,0.537594 -2459,-0.843766,-0.000000,0.000000,0.536711 -2460,-0.844328,-0.000000,0.000000,0.535827 -2461,-0.844889,-0.000000,0.000000,0.534942 -2462,-0.845448,-0.000000,0.000000,0.534057 -2463,-0.846007,-0.000000,0.000000,0.533172 -2464,-0.846565,-0.000000,0.000000,0.532285 -2465,-0.847122,-0.000000,0.000000,0.531399 -2466,-0.847678,-0.000000,0.000000,0.530511 -2467,-0.848233,-0.000000,0.000000,0.529623 -2468,-0.848787,-0.000000,0.000000,0.528735 -2469,-0.849340,-0.000000,0.000000,0.527846 -2470,-0.849893,-0.000000,0.000000,0.526956 -2471,-0.850444,-0.000000,0.000000,0.526066 -2472,-0.850994,-0.000000,0.000000,0.525175 -2473,-0.851544,-0.000000,0.000000,0.524283 -2474,-0.852093,-0.000000,0.000000,0.523391 -2475,-0.852640,-0.000000,0.000000,0.522499 -2476,-0.853187,-0.000000,0.000000,0.521605 -2477,-0.853733,-0.000000,0.000000,0.520712 -2478,-0.854277,-0.000000,0.000000,0.519817 -2479,-0.854821,-0.000000,0.000000,0.518922 -2480,-0.855364,-0.000000,0.000000,0.518027 -2481,-0.855906,-0.000000,0.000000,0.517131 -2482,-0.856447,-0.000000,0.000000,0.516234 -2483,-0.856987,-0.000000,0.000000,0.515337 -2484,-0.857527,-0.000000,0.000000,0.514440 -2485,-0.858065,-0.000000,0.000000,0.513541 -2486,-0.858602,-0.000000,0.000000,0.512642 -2487,-0.859139,-0.000000,0.000000,0.511743 -2488,-0.859674,-0.000000,0.000000,0.510843 -2489,-0.860208,-0.000000,0.000000,0.509943 -2490,-0.860742,-0.000000,0.000000,0.509041 -2491,-0.861275,-0.000000,0.000000,0.508140 -2492,-0.861806,-0.000000,0.000000,0.507238 -2493,-0.862337,-0.000000,0.000000,0.506335 -2494,-0.862867,-0.000000,0.000000,0.505431 -2495,-0.863396,-0.000000,0.000000,0.504528 -2496,-0.863923,-0.000000,0.000000,0.503623 -2497,-0.864450,-0.000000,0.000000,0.502718 -2498,-0.864976,-0.000000,0.000000,0.501813 -2499,-0.865501,-0.000000,0.000000,0.500907 -2500,-0.866025,-0.000000,0.000000,0.500000 -2501,-0.866549,-0.000000,0.000000,0.499093 -2502,-0.867071,-0.000000,0.000000,0.498185 -2503,-0.867592,-0.000000,0.000000,0.497277 -2504,-0.868112,-0.000000,0.000000,0.496368 -2505,-0.868632,-0.000000,0.000000,0.495459 -2506,-0.869150,-0.000000,0.000000,0.494549 -2507,-0.869667,-0.000000,0.000000,0.493638 -2508,-0.870184,-0.000000,0.000000,0.492727 -2509,-0.870699,-0.000000,0.000000,0.491816 -2510,-0.871214,-0.000000,0.000000,0.490904 -2511,-0.871727,-0.000000,0.000000,0.489991 -2512,-0.872240,-0.000000,0.000000,0.489078 -2513,-0.872752,-0.000000,0.000000,0.488164 -2514,-0.873262,-0.000000,0.000000,0.487250 -2515,-0.873772,-0.000000,0.000000,0.486335 -2516,-0.874281,-0.000000,0.000000,0.485420 -2517,-0.874789,-0.000000,0.000000,0.484504 -2518,-0.875296,-0.000000,0.000000,0.483588 -2519,-0.875802,-0.000000,0.000000,0.482671 -2520,-0.876307,-0.000000,0.000000,0.481754 -2521,-0.876811,-0.000000,0.000000,0.480836 -2522,-0.877314,-0.000000,0.000000,0.479917 -2523,-0.877816,-0.000000,0.000000,0.478998 -2524,-0.878317,-0.000000,0.000000,0.478079 -2525,-0.878817,-0.000000,0.000000,0.477159 -2526,-0.879316,-0.000000,0.000000,0.476238 -2527,-0.879815,-0.000000,0.000000,0.475317 -2528,-0.880312,-0.000000,0.000000,0.474396 -2529,-0.880808,-0.000000,0.000000,0.473473 -2530,-0.881303,-0.000000,0.000000,0.472551 -2531,-0.881798,-0.000000,0.000000,0.471628 -2532,-0.882291,-0.000000,0.000000,0.470704 -2533,-0.882784,-0.000000,0.000000,0.469780 -2534,-0.883275,-0.000000,0.000000,0.468855 -2535,-0.883766,-0.000000,0.000000,0.467930 -2536,-0.884255,-0.000000,0.000000,0.467004 -2537,-0.884744,-0.000000,0.000000,0.466078 -2538,-0.885231,-0.000000,0.000000,0.465151 -2539,-0.885718,-0.000000,0.000000,0.464224 -2540,-0.886204,-0.000000,0.000000,0.463296 -2541,-0.886688,-0.000000,0.000000,0.462368 -2542,-0.887172,-0.000000,0.000000,0.461439 -2543,-0.887655,-0.000000,0.000000,0.460510 -2544,-0.888136,-0.000000,0.000000,0.459580 -2545,-0.888617,-0.000000,0.000000,0.458650 -2546,-0.889097,-0.000000,0.000000,0.457719 -2547,-0.889576,-0.000000,0.000000,0.456787 -2548,-0.890054,-0.000000,0.000000,0.455856 -2549,-0.890531,-0.000000,0.000000,0.454923 -2550,-0.891007,-0.000000,0.000000,0.453990 -2551,-0.891481,-0.000000,0.000000,0.453057 -2552,-0.891955,-0.000000,0.000000,0.452123 -2553,-0.892428,-0.000000,0.000000,0.451189 -2554,-0.892900,-0.000000,0.000000,0.450254 -2555,-0.893371,-0.000000,0.000000,0.449319 -2556,-0.893841,-0.000000,0.000000,0.448383 -2557,-0.894310,-0.000000,0.000000,0.447447 -2558,-0.894779,-0.000000,0.000000,0.446510 -2559,-0.895246,-0.000000,0.000000,0.445573 -2560,-0.895712,-0.000000,0.000000,0.444635 -2561,-0.896177,-0.000000,0.000000,0.443697 -2562,-0.896641,-0.000000,0.000000,0.442758 -2563,-0.897104,-0.000000,0.000000,0.441819 -2564,-0.897566,-0.000000,0.000000,0.440879 -2565,-0.898028,-0.000000,0.000000,0.439939 -2566,-0.898488,-0.000000,0.000000,0.438999 -2567,-0.898947,-0.000000,0.000000,0.438057 -2568,-0.899405,-0.000000,0.000000,0.437116 -2569,-0.899863,-0.000000,0.000000,0.436174 -2570,-0.900319,-0.000000,0.000000,0.435231 -2571,-0.900774,-0.000000,0.000000,0.434288 -2572,-0.901228,-0.000000,0.000000,0.433345 -2573,-0.901682,-0.000000,0.000000,0.432401 -2574,-0.902134,-0.000000,0.000000,0.431456 -2575,-0.902585,-0.000000,0.000000,0.430511 -2576,-0.903036,-0.000000,0.000000,0.429566 -2577,-0.903485,-0.000000,0.000000,0.428620 -2578,-0.903933,-0.000000,0.000000,0.427673 -2579,-0.904381,-0.000000,0.000000,0.426727 -2580,-0.904827,-0.000000,0.000000,0.425779 -2581,-0.905272,-0.000000,0.000000,0.424832 -2582,-0.905717,-0.000000,0.000000,0.423883 -2583,-0.906160,-0.000000,0.000000,0.422935 -2584,-0.906603,-0.000000,0.000000,0.421985 -2585,-0.907044,-0.000000,0.000000,0.421036 -2586,-0.907484,-0.000000,0.000000,0.420086 -2587,-0.907924,-0.000000,0.000000,0.419135 -2588,-0.908362,-0.000000,0.000000,0.418184 -2589,-0.908800,-0.000000,0.000000,0.417233 -2590,-0.909236,-0.000000,0.000000,0.416281 -2591,-0.909672,-0.000000,0.000000,0.415328 -2592,-0.910106,-0.000000,0.000000,0.414376 -2593,-0.910539,-0.000000,0.000000,0.413422 -2594,-0.910972,-0.000000,0.000000,0.412469 -2595,-0.911403,-0.000000,0.000000,0.411514 -2596,-0.911834,-0.000000,0.000000,0.410560 -2597,-0.912263,-0.000000,0.000000,0.409605 -2598,-0.912692,-0.000000,0.000000,0.408649 -2599,-0.913119,-0.000000,0.000000,0.407693 -2600,-0.913545,-0.000000,0.000000,0.406737 -2601,-0.913971,-0.000000,0.000000,0.405780 -2602,-0.914395,-0.000000,0.000000,0.404822 -2603,-0.914819,-0.000000,0.000000,0.403865 -2604,-0.915241,-0.000000,0.000000,0.402906 -2605,-0.915663,-0.000000,0.000000,0.401948 -2606,-0.916083,-0.000000,0.000000,0.400989 -2607,-0.916502,-0.000000,0.000000,0.400029 -2608,-0.916921,-0.000000,0.000000,0.399069 -2609,-0.917338,-0.000000,0.000000,0.398109 -2610,-0.917755,-0.000000,0.000000,0.397148 -2611,-0.918170,-0.000000,0.000000,0.396187 -2612,-0.918584,-0.000000,0.000000,0.395225 -2613,-0.918998,-0.000000,0.000000,0.394263 -2614,-0.919410,-0.000000,0.000000,0.393300 -2615,-0.919821,-0.000000,0.000000,0.392337 -2616,-0.920232,-0.000000,0.000000,0.391374 -2617,-0.920641,-0.000000,0.000000,0.390410 -2618,-0.921050,-0.000000,0.000000,0.389445 -2619,-0.921457,-0.000000,0.000000,0.388481 -2620,-0.921863,-0.000000,0.000000,0.387516 -2621,-0.922268,-0.000000,0.000000,0.386550 -2622,-0.922673,-0.000000,0.000000,0.385584 -2623,-0.923076,-0.000000,0.000000,0.384618 -2624,-0.923478,-0.000000,0.000000,0.383651 -2625,-0.923880,-0.000000,0.000000,0.382683 -2626,-0.924280,-0.000000,0.000000,0.381716 -2627,-0.924679,-0.000000,0.000000,0.380748 -2628,-0.925077,-0.000000,0.000000,0.379779 -2629,-0.925474,-0.000000,0.000000,0.378810 -2630,-0.925871,-0.000000,0.000000,0.377841 -2631,-0.926266,-0.000000,0.000000,0.376871 -2632,-0.926660,-0.000000,0.000000,0.375901 -2633,-0.927053,-0.000000,0.000000,0.374930 -2634,-0.927445,-0.000000,0.000000,0.373959 -2635,-0.927836,-0.000000,0.000000,0.372988 -2636,-0.928226,-0.000000,0.000000,0.372016 -2637,-0.928615,-0.000000,0.000000,0.371044 -2638,-0.929003,-0.000000,0.000000,0.370071 -2639,-0.929390,-0.000000,0.000000,0.369098 -2640,-0.929776,-0.000000,0.000000,0.368125 -2641,-0.930161,-0.000000,0.000000,0.367151 -2642,-0.930545,-0.000000,0.000000,0.366176 -2643,-0.930928,-0.000000,0.000000,0.365202 -2644,-0.931310,-0.000000,0.000000,0.364227 -2645,-0.931691,-0.000000,0.000000,0.363251 -2646,-0.932071,-0.000000,0.000000,0.362275 -2647,-0.932450,-0.000000,0.000000,0.361299 -2648,-0.932828,-0.000000,0.000000,0.360322 -2649,-0.933205,-0.000000,0.000000,0.359345 -2650,-0.933580,-0.000000,0.000000,0.358368 -2651,-0.933955,-0.000000,0.000000,0.357390 -2652,-0.934329,-0.000000,0.000000,0.356412 -2653,-0.934702,-0.000000,0.000000,0.355433 -2654,-0.935073,-0.000000,0.000000,0.354454 -2655,-0.935444,-0.000000,0.000000,0.353475 -2656,-0.935814,-0.000000,0.000000,0.352495 -2657,-0.936182,-0.000000,0.000000,0.351515 -2658,-0.936550,-0.000000,0.000000,0.350534 -2659,-0.936916,-0.000000,0.000000,0.349553 -2660,-0.937282,-0.000000,0.000000,0.348572 -2661,-0.937646,-0.000000,0.000000,0.347590 -2662,-0.938010,-0.000000,0.000000,0.346608 -2663,-0.938372,-0.000000,0.000000,0.345626 -2664,-0.938734,-0.000000,0.000000,0.344643 -2665,-0.939094,-0.000000,0.000000,0.343660 -2666,-0.939454,-0.000000,0.000000,0.342676 -2667,-0.939812,-0.000000,0.000000,0.341692 -2668,-0.940169,-0.000000,0.000000,0.340708 -2669,-0.940526,-0.000000,0.000000,0.339723 -2670,-0.940881,-0.000000,0.000000,0.338738 -2671,-0.941235,-0.000000,0.000000,0.337752 -2672,-0.941588,-0.000000,0.000000,0.336767 -2673,-0.941940,-0.000000,0.000000,0.335780 -2674,-0.942291,-0.000000,0.000000,0.334794 -2675,-0.942641,-0.000000,0.000000,0.333807 -2676,-0.942991,-0.000000,0.000000,0.332820 -2677,-0.943339,-0.000000,0.000000,0.331832 -2678,-0.943686,-0.000000,0.000000,0.330844 -2679,-0.944031,-0.000000,0.000000,0.329855 -2680,-0.944376,-0.000000,0.000000,0.328867 -2681,-0.944720,-0.000000,0.000000,0.327878 -2682,-0.945063,-0.000000,0.000000,0.326888 -2683,-0.945405,-0.000000,0.000000,0.325898 -2684,-0.945746,-0.000000,0.000000,0.324908 -2685,-0.946085,-0.000000,0.000000,0.323917 -2686,-0.946424,-0.000000,0.000000,0.322927 -2687,-0.946762,-0.000000,0.000000,0.321935 -2688,-0.947098,-0.000000,0.000000,0.320944 -2689,-0.947434,-0.000000,0.000000,0.319952 -2690,-0.947768,-0.000000,0.000000,0.318959 -2691,-0.948102,-0.000000,0.000000,0.317967 -2692,-0.948434,-0.000000,0.000000,0.316974 -2693,-0.948766,-0.000000,0.000000,0.315980 -2694,-0.949096,-0.000000,0.000000,0.314987 -2695,-0.949425,-0.000000,0.000000,0.313992 -2696,-0.949754,-0.000000,0.000000,0.312998 -2697,-0.950081,-0.000000,0.000000,0.312003 -2698,-0.950407,-0.000000,0.000000,0.311008 -2699,-0.950732,-0.000000,0.000000,0.310013 -2700,-0.951057,-0.000000,0.000000,0.309017 -2701,-0.951380,-0.000000,0.000000,0.308021 -2702,-0.951702,-0.000000,0.000000,0.307024 -2703,-0.952023,-0.000000,0.000000,0.306028 -2704,-0.952343,-0.000000,0.000000,0.305031 -2705,-0.952661,-0.000000,0.000000,0.304033 -2706,-0.952979,-0.000000,0.000000,0.303035 -2707,-0.953296,-0.000000,0.000000,0.302037 -2708,-0.953612,-0.000000,0.000000,0.301039 -2709,-0.953927,-0.000000,0.000000,0.300040 -2710,-0.954240,-0.000000,0.000000,0.299041 -2711,-0.954553,-0.000000,0.000000,0.298041 -2712,-0.954865,-0.000000,0.000000,0.297042 -2713,-0.955175,-0.000000,0.000000,0.296041 -2714,-0.955485,-0.000000,0.000000,0.295041 -2715,-0.955793,-0.000000,0.000000,0.294040 -2716,-0.956100,-0.000000,0.000000,0.293039 -2717,-0.956407,-0.000000,0.000000,0.292038 -2718,-0.956712,-0.000000,0.000000,0.291036 -2719,-0.957016,-0.000000,0.000000,0.290034 -2720,-0.957319,-0.000000,0.000000,0.289032 -2721,-0.957622,-0.000000,0.000000,0.288029 -2722,-0.957923,-0.000000,0.000000,0.287026 -2723,-0.958223,-0.000000,0.000000,0.286023 -2724,-0.958522,-0.000000,0.000000,0.285019 -2725,-0.958820,-0.000000,0.000000,0.284015 -2726,-0.959117,-0.000000,0.000000,0.283011 -2727,-0.959412,-0.000000,0.000000,0.282007 -2728,-0.959707,-0.000000,0.000000,0.281002 -2729,-0.960001,-0.000000,0.000000,0.279997 -2730,-0.960294,-0.000000,0.000000,0.278991 -2731,-0.960585,-0.000000,0.000000,0.277985 -2732,-0.960876,-0.000000,0.000000,0.276979 -2733,-0.961165,-0.000000,0.000000,0.275973 -2734,-0.961454,-0.000000,0.000000,0.274966 -2735,-0.961741,-0.000000,0.000000,0.273959 -2736,-0.962028,-0.000000,0.000000,0.272952 -2737,-0.962313,-0.000000,0.000000,0.271944 -2738,-0.962597,-0.000000,0.000000,0.270936 -2739,-0.962880,-0.000000,0.000000,0.269928 -2740,-0.963163,-0.000000,0.000000,0.268920 -2741,-0.963444,-0.000000,0.000000,0.267911 -2742,-0.963724,-0.000000,0.000000,0.266902 -2743,-0.964003,-0.000000,0.000000,0.265893 -2744,-0.964281,-0.000000,0.000000,0.264883 -2745,-0.964557,-0.000000,0.000000,0.263873 -2746,-0.964833,-0.000000,0.000000,0.262863 -2747,-0.965108,-0.000000,0.000000,0.261852 -2748,-0.965382,-0.000000,0.000000,0.260842 -2749,-0.965654,-0.000000,0.000000,0.259830 -2750,-0.965926,-0.000000,0.000000,0.258819 -2751,-0.966196,-0.000000,0.000000,0.257807 -2752,-0.966466,-0.000000,0.000000,0.256795 -2753,-0.966734,-0.000000,0.000000,0.255783 -2754,-0.967001,-0.000000,0.000000,0.254771 -2755,-0.967268,-0.000000,0.000000,0.253758 -2756,-0.967533,-0.000000,0.000000,0.252745 -2757,-0.967797,-0.000000,0.000000,0.251732 -2758,-0.968060,-0.000000,0.000000,0.250718 -2759,-0.968322,-0.000000,0.000000,0.249704 -2760,-0.968583,-0.000000,0.000000,0.248690 -2761,-0.968843,-0.000000,0.000000,0.247675 -2762,-0.969102,-0.000000,0.000000,0.246661 -2763,-0.969360,-0.000000,0.000000,0.245646 -2764,-0.969616,-0.000000,0.000000,0.244631 -2765,-0.969872,-0.000000,0.000000,0.243615 -2766,-0.970127,-0.000000,0.000000,0.242599 -2767,-0.970380,-0.000000,0.000000,0.241583 -2768,-0.970633,-0.000000,0.000000,0.240567 -2769,-0.970884,-0.000000,0.000000,0.239550 -2770,-0.971134,-0.000000,0.000000,0.238533 -2771,-0.971384,-0.000000,0.000000,0.237516 -2772,-0.971632,-0.000000,0.000000,0.236499 -2773,-0.971879,-0.000000,0.000000,0.235481 -2774,-0.972125,-0.000000,0.000000,0.234463 -2775,-0.972370,-0.000000,0.000000,0.233445 -2776,-0.972614,-0.000000,0.000000,0.232427 -2777,-0.972857,-0.000000,0.000000,0.231408 -2778,-0.973099,-0.000000,0.000000,0.230389 -2779,-0.973339,-0.000000,0.000000,0.229370 -2780,-0.973579,-0.000000,0.000000,0.228351 -2781,-0.973817,-0.000000,0.000000,0.227331 -2782,-0.974055,-0.000000,0.000000,0.226311 -2783,-0.974291,-0.000000,0.000000,0.225291 -2784,-0.974527,-0.000000,0.000000,0.224271 -2785,-0.974761,-0.000000,0.000000,0.223250 -2786,-0.974994,-0.000000,0.000000,0.222229 -2787,-0.975227,-0.000000,0.000000,0.221208 -2788,-0.975458,-0.000000,0.000000,0.220187 -2789,-0.975688,-0.000000,0.000000,0.219165 -2790,-0.975917,-0.000000,0.000000,0.218143 -2791,-0.976145,-0.000000,0.000000,0.217121 -2792,-0.976371,-0.000000,0.000000,0.216099 -2793,-0.976597,-0.000000,0.000000,0.215076 -2794,-0.976822,-0.000000,0.000000,0.214053 -2795,-0.977046,-0.000000,0.000000,0.213030 -2796,-0.977268,-0.000000,0.000000,0.212007 -2797,-0.977490,-0.000000,0.000000,0.210984 -2798,-0.977710,-0.000000,0.000000,0.209960 -2799,-0.977929,-0.000000,0.000000,0.208936 -2800,-0.978148,-0.000000,0.000000,0.207912 -2801,-0.978365,-0.000000,0.000000,0.206887 -2802,-0.978581,-0.000000,0.000000,0.205863 -2803,-0.978796,-0.000000,0.000000,0.204838 -2804,-0.979010,-0.000000,0.000000,0.203813 -2805,-0.979223,-0.000000,0.000000,0.202787 -2806,-0.979435,-0.000000,0.000000,0.201762 -2807,-0.979645,-0.000000,0.000000,0.200736 -2808,-0.979855,-0.000000,0.000000,0.199710 -2809,-0.980064,-0.000000,0.000000,0.198684 -2810,-0.980271,-0.000000,0.000000,0.197657 -2811,-0.980478,-0.000000,0.000000,0.196631 -2812,-0.980683,-0.000000,0.000000,0.195604 -2813,-0.980887,-0.000000,0.000000,0.194577 -2814,-0.981091,-0.000000,0.000000,0.193549 -2815,-0.981293,-0.000000,0.000000,0.192522 -2816,-0.981494,-0.000000,0.000000,0.191494 -2817,-0.981694,-0.000000,0.000000,0.190466 -2818,-0.981893,-0.000000,0.000000,0.189438 -2819,-0.982090,-0.000000,0.000000,0.188410 -2820,-0.982287,-0.000000,0.000000,0.187381 -2821,-0.982483,-0.000000,0.000000,0.186353 -2822,-0.982678,-0.000000,0.000000,0.185324 -2823,-0.982871,-0.000000,0.000000,0.184294 -2824,-0.983064,-0.000000,0.000000,0.183265 -2825,-0.983255,-0.000000,0.000000,0.182236 -2826,-0.983445,-0.000000,0.000000,0.181206 -2827,-0.983634,-0.000000,0.000000,0.180176 -2828,-0.983823,-0.000000,0.000000,0.179146 -2829,-0.984010,-0.000000,0.000000,0.178115 -2830,-0.984196,-0.000000,0.000000,0.177085 -2831,-0.984381,-0.000000,0.000000,0.176054 -2832,-0.984564,-0.000000,0.000000,0.175023 -2833,-0.984747,-0.000000,0.000000,0.173992 -2834,-0.984929,-0.000000,0.000000,0.172961 -2835,-0.985109,-0.000000,0.000000,0.171929 -2836,-0.985289,-0.000000,0.000000,0.170897 -2837,-0.985467,-0.000000,0.000000,0.169866 -2838,-0.985645,-0.000000,0.000000,0.168833 -2839,-0.985821,-0.000000,0.000000,0.167801 -2840,-0.985996,-0.000000,0.000000,0.166769 -2841,-0.986170,-0.000000,0.000000,0.165736 -2842,-0.986343,-0.000000,0.000000,0.164703 -2843,-0.986515,-0.000000,0.000000,0.163670 -2844,-0.986686,-0.000000,0.000000,0.162637 -2845,-0.986856,-0.000000,0.000000,0.161604 -2846,-0.987024,-0.000000,0.000000,0.160570 -2847,-0.987192,-0.000000,0.000000,0.159537 -2848,-0.987359,-0.000000,0.000000,0.158503 -2849,-0.987524,-0.000000,0.000000,0.157469 -2850,-0.987688,-0.000000,0.000000,0.156434 -2851,-0.987852,-0.000000,0.000000,0.155400 -2852,-0.988014,-0.000000,0.000000,0.154366 -2853,-0.988175,-0.000000,0.000000,0.153331 -2854,-0.988335,-0.000000,0.000000,0.152296 -2855,-0.988494,-0.000000,0.000000,0.151261 -2856,-0.988652,-0.000000,0.000000,0.150226 -2857,-0.988809,-0.000000,0.000000,0.149190 -2858,-0.988964,-0.000000,0.000000,0.148155 -2859,-0.989119,-0.000000,0.000000,0.147119 -2860,-0.989272,-0.000000,0.000000,0.146083 -2861,-0.989425,-0.000000,0.000000,0.145047 -2862,-0.989576,-0.000000,0.000000,0.144011 -2863,-0.989726,-0.000000,0.000000,0.142974 -2864,-0.989876,-0.000000,0.000000,0.141938 -2865,-0.990024,-0.000000,0.000000,0.140901 -2866,-0.990171,-0.000000,0.000000,0.139864 -2867,-0.990317,-0.000000,0.000000,0.138827 -2868,-0.990461,-0.000000,0.000000,0.137790 -2869,-0.990605,-0.000000,0.000000,0.136753 -2870,-0.990748,-0.000000,0.000000,0.135716 -2871,-0.990889,-0.000000,0.000000,0.134678 -2872,-0.991030,-0.000000,0.000000,0.133640 -2873,-0.991169,-0.000000,0.000000,0.132602 -2874,-0.991308,-0.000000,0.000000,0.131564 -2875,-0.991445,-0.000000,0.000000,0.130526 -2876,-0.991581,-0.000000,0.000000,0.129488 -2877,-0.991716,-0.000000,0.000000,0.128449 -2878,-0.991850,-0.000000,0.000000,0.127411 -2879,-0.991983,-0.000000,0.000000,0.126372 -2880,-0.992115,-0.000000,0.000000,0.125333 -2881,-0.992245,-0.000000,0.000000,0.124294 -2882,-0.992375,-0.000000,0.000000,0.123255 -2883,-0.992504,-0.000000,0.000000,0.122216 -2884,-0.992631,-0.000000,0.000000,0.121176 -2885,-0.992757,-0.000000,0.000000,0.120137 -2886,-0.992883,-0.000000,0.000000,0.119097 -2887,-0.993007,-0.000000,0.000000,0.118057 -2888,-0.993130,-0.000000,0.000000,0.117017 -2889,-0.993252,-0.000000,0.000000,0.115977 -2890,-0.993373,-0.000000,0.000000,0.114937 -2891,-0.993493,-0.000000,0.000000,0.113897 -2892,-0.993611,-0.000000,0.000000,0.112856 -2893,-0.993729,-0.000000,0.000000,0.111816 -2894,-0.993845,-0.000000,0.000000,0.110775 -2895,-0.993961,-0.000000,0.000000,0.109734 -2896,-0.994075,-0.000000,0.000000,0.108693 -2897,-0.994189,-0.000000,0.000000,0.107652 -2898,-0.994301,-0.000000,0.000000,0.106611 -2899,-0.994412,-0.000000,0.000000,0.105570 -2900,-0.994522,-0.000000,0.000000,0.104528 -2901,-0.994631,-0.000000,0.000000,0.103487 -2902,-0.994739,-0.000000,0.000000,0.102445 -2903,-0.994845,-0.000000,0.000000,0.101404 -2904,-0.994951,-0.000000,0.000000,0.100362 -2905,-0.995056,-0.000000,0.000000,0.099320 -2906,-0.995159,-0.000000,0.000000,0.098278 -2907,-0.995261,-0.000000,0.000000,0.097235 -2908,-0.995363,-0.000000,0.000000,0.096193 -2909,-0.995463,-0.000000,0.000000,0.095151 -2910,-0.995562,-0.000000,0.000000,0.094108 -2911,-0.995660,-0.000000,0.000000,0.093066 -2912,-0.995757,-0.000000,0.000000,0.092023 -2913,-0.995853,-0.000000,0.000000,0.090980 -2914,-0.995947,-0.000000,0.000000,0.089937 -2915,-0.996041,-0.000000,0.000000,0.088894 -2916,-0.996134,-0.000000,0.000000,0.087851 -2917,-0.996225,-0.000000,0.000000,0.086808 -2918,-0.996315,-0.000000,0.000000,0.085765 -2919,-0.996405,-0.000000,0.000000,0.084721 -2920,-0.996493,-0.000000,0.000000,0.083678 -2921,-0.996580,-0.000000,0.000000,0.082634 -2922,-0.996666,-0.000000,0.000000,0.081591 -2923,-0.996751,-0.000000,0.000000,0.080547 -2924,-0.996835,-0.000000,0.000000,0.079503 -2925,-0.996917,-0.000000,0.000000,0.078459 -2926,-0.996999,-0.000000,0.000000,0.077415 -2927,-0.997079,-0.000000,0.000000,0.076371 -2928,-0.997159,-0.000000,0.000000,0.075327 -2929,-0.997237,-0.000000,0.000000,0.074283 -2930,-0.997314,-0.000000,0.000000,0.073238 -2931,-0.997391,-0.000000,0.000000,0.072194 -2932,-0.997466,-0.000000,0.000000,0.071149 -2933,-0.997540,-0.000000,0.000000,0.070105 -2934,-0.997613,-0.000000,0.000000,0.069060 -2935,-0.997684,-0.000000,0.000000,0.068015 -2936,-0.997755,-0.000000,0.000000,0.066970 -2937,-0.997825,-0.000000,0.000000,0.065926 -2938,-0.997893,-0.000000,0.000000,0.064881 -2939,-0.997960,-0.000000,0.000000,0.063836 -2940,-0.998027,-0.000000,0.000000,0.062791 -2941,-0.998092,-0.000000,0.000000,0.061745 -2942,-0.998156,-0.000000,0.000000,0.060700 -2943,-0.998219,-0.000000,0.000000,0.059655 -2944,-0.998281,-0.000000,0.000000,0.058609 -2945,-0.998342,-0.000000,0.000000,0.057564 -2946,-0.998402,-0.000000,0.000000,0.056519 -2947,-0.998460,-0.000000,0.000000,0.055473 -2948,-0.998518,-0.000000,0.000000,0.054427 -2949,-0.998574,-0.000000,0.000000,0.053382 -2950,-0.998630,-0.000000,0.000000,0.052336 -2951,-0.998684,-0.000000,0.000000,0.051290 -2952,-0.998737,-0.000000,0.000000,0.050244 -2953,-0.998789,-0.000000,0.000000,0.049198 -2954,-0.998840,-0.000000,0.000000,0.048152 -2955,-0.998890,-0.000000,0.000000,0.047106 -2956,-0.998939,-0.000000,0.000000,0.046060 -2957,-0.998986,-0.000000,0.000000,0.045014 -2958,-0.999033,-0.000000,0.000000,0.043968 -2959,-0.999078,-0.000000,0.000000,0.042922 -2960,-0.999123,-0.000000,0.000000,0.041876 -2961,-0.999166,-0.000000,0.000000,0.040829 -2962,-0.999208,-0.000000,0.000000,0.039783 -2963,-0.999249,-0.000000,0.000000,0.038737 -2964,-0.999289,-0.000000,0.000000,0.037690 -2965,-0.999328,-0.000000,0.000000,0.036644 -2966,-0.999366,-0.000000,0.000000,0.035597 -2967,-0.999403,-0.000000,0.000000,0.034551 -2968,-0.999439,-0.000000,0.000000,0.033504 -2969,-0.999473,-0.000000,0.000000,0.032457 -2970,-0.999507,-0.000000,0.000000,0.031411 -2971,-0.999539,-0.000000,0.000000,0.030364 -2972,-0.999570,-0.000000,0.000000,0.029317 -2973,-0.999600,-0.000000,0.000000,0.028271 -2974,-0.999629,-0.000000,0.000000,0.027224 -2975,-0.999657,-0.000000,0.000000,0.026177 -2976,-0.999684,-0.000000,0.000000,0.025130 -2977,-0.999710,-0.000000,0.000000,0.024083 -2978,-0.999735,-0.000000,0.000000,0.023036 -2979,-0.999758,-0.000000,0.000000,0.021989 -2980,-0.999781,-0.000000,0.000000,0.020942 -2981,-0.999802,-0.000000,0.000000,0.019895 -2982,-0.999822,-0.000000,0.000000,0.018848 -2983,-0.999842,-0.000000,0.000000,0.017801 -2984,-0.999860,-0.000000,0.000000,0.016754 -2985,-0.999877,-0.000000,0.000000,0.015707 -2986,-0.999893,-0.000000,0.000000,0.014660 -2987,-0.999907,-0.000000,0.000000,0.013613 -2988,-0.999921,-0.000000,0.000000,0.012566 -2989,-0.999934,-0.000000,0.000000,0.011519 -2990,-0.999945,-0.000000,0.000000,0.010472 -2991,-0.999956,-0.000000,0.000000,0.009425 -2992,-0.999965,-0.000000,0.000000,0.008377 -2993,-0.999973,-0.000000,0.000000,0.007330 -2994,-0.999980,-0.000000,0.000000,0.006283 -2995,-0.999986,-0.000000,0.000000,0.005236 -2996,-0.999991,-0.000000,0.000000,0.004189 -2997,-0.999995,-0.000000,0.000000,0.003142 -2998,-0.999998,-0.000000,0.000000,0.002094 -2999,-0.999999,-0.000000,0.000000,0.001047 +1.000000,0.000000,0.000000,0.000000 +0.999999,0.000000,0.000000,0.001047 +0.999998,0.000000,0.000000,0.002094 +0.999995,0.000000,0.000000,0.003142 +0.999991,0.000000,0.000000,0.004189 +0.999986,0.000000,0.000000,0.005236 +0.999980,0.000000,0.000000,0.006283 +0.999973,0.000000,0.000000,0.007330 +0.999965,0.000000,0.000000,0.008377 +0.999956,0.000000,0.000000,0.009425 +0.999945,0.000000,0.000000,0.010472 +0.999934,0.000000,0.000000,0.011519 +0.999921,0.000000,0.000000,0.012566 +0.999907,0.000000,0.000000,0.013613 +0.999893,0.000000,0.000000,0.014660 +0.999877,0.000000,0.000000,0.015707 +0.999860,0.000000,0.000000,0.016754 +0.999842,0.000000,0.000000,0.017801 +0.999822,0.000000,0.000000,0.018848 +0.999802,0.000000,0.000000,0.019895 +0.999781,0.000000,0.000000,0.020942 +0.999758,0.000000,0.000000,0.021989 +0.999735,0.000000,0.000000,0.023036 +0.999710,0.000000,0.000000,0.024083 +0.999684,0.000000,0.000000,0.025130 +0.999657,0.000000,0.000000,0.026177 +0.999629,0.000000,0.000000,0.027224 +0.999600,0.000000,0.000000,0.028271 +0.999570,0.000000,0.000000,0.029317 +0.999539,0.000000,0.000000,0.030364 +0.999507,0.000000,0.000000,0.031411 +0.999473,0.000000,0.000000,0.032457 +0.999439,0.000000,0.000000,0.033504 +0.999403,0.000000,0.000000,0.034551 +0.999366,0.000000,0.000000,0.035597 +0.999328,0.000000,0.000000,0.036644 +0.999289,0.000000,0.000000,0.037690 +0.999249,0.000000,0.000000,0.038737 +0.999208,0.000000,0.000000,0.039783 +0.999166,0.000000,0.000000,0.040829 +0.999123,0.000000,0.000000,0.041876 +0.999078,0.000000,0.000000,0.042922 +0.999033,0.000000,0.000000,0.043968 +0.998986,0.000000,0.000000,0.045014 +0.998939,0.000000,0.000000,0.046060 +0.998890,0.000000,0.000000,0.047106 +0.998840,0.000000,0.000000,0.048152 +0.998789,0.000000,0.000000,0.049198 +0.998737,0.000000,0.000000,0.050244 +0.998684,0.000000,0.000000,0.051290 +0.998630,0.000000,0.000000,0.052336 +0.998574,0.000000,0.000000,0.053382 +0.998518,0.000000,0.000000,0.054427 +0.998460,0.000000,0.000000,0.055473 +0.998402,0.000000,0.000000,0.056519 +0.998342,0.000000,0.000000,0.057564 +0.998281,0.000000,0.000000,0.058609 +0.998219,0.000000,0.000000,0.059655 +0.998156,0.000000,0.000000,0.060700 +0.998092,0.000000,0.000000,0.061745 +0.998027,0.000000,0.000000,0.062791 +0.997960,0.000000,0.000000,0.063836 +0.997893,0.000000,0.000000,0.064881 +0.997825,0.000000,0.000000,0.065926 +0.997755,0.000000,0.000000,0.066970 +0.997684,0.000000,0.000000,0.068015 +0.997613,0.000000,0.000000,0.069060 +0.997540,0.000000,0.000000,0.070105 +0.997466,0.000000,0.000000,0.071149 +0.997391,0.000000,0.000000,0.072194 +0.997314,0.000000,0.000000,0.073238 +0.997237,0.000000,0.000000,0.074283 +0.997159,0.000000,0.000000,0.075327 +0.997079,0.000000,0.000000,0.076371 +0.996999,0.000000,0.000000,0.077415 +0.996917,0.000000,0.000000,0.078459 +0.996835,0.000000,0.000000,0.079503 +0.996751,0.000000,0.000000,0.080547 +0.996666,0.000000,0.000000,0.081591 +0.996580,0.000000,0.000000,0.082634 +0.996493,0.000000,0.000000,0.083678 +0.996405,0.000000,0.000000,0.084721 +0.996315,0.000000,0.000000,0.085765 +0.996225,0.000000,0.000000,0.086808 +0.996134,0.000000,0.000000,0.087851 +0.996041,0.000000,0.000000,0.088894 +0.995947,0.000000,0.000000,0.089937 +0.995853,0.000000,0.000000,0.090980 +0.995757,0.000000,0.000000,0.092023 +0.995660,0.000000,0.000000,0.093066 +0.995562,0.000000,0.000000,0.094108 +0.995463,0.000000,0.000000,0.095151 +0.995363,0.000000,0.000000,0.096193 +0.995261,0.000000,0.000000,0.097235 +0.995159,0.000000,0.000000,0.098278 +0.995056,0.000000,0.000000,0.099320 +0.994951,0.000000,0.000000,0.100362 +0.994845,0.000000,0.000000,0.101404 +0.994739,0.000000,0.000000,0.102445 +0.994631,0.000000,0.000000,0.103487 +0.994522,0.000000,0.000000,0.104528 +0.994412,0.000000,0.000000,0.105570 +0.994301,0.000000,0.000000,0.106611 +0.994189,0.000000,0.000000,0.107652 +0.994075,0.000000,0.000000,0.108693 +0.993961,0.000000,0.000000,0.109734 +0.993845,0.000000,0.000000,0.110775 +0.993729,0.000000,0.000000,0.111816 +0.993611,0.000000,0.000000,0.112856 +0.993493,0.000000,0.000000,0.113897 +0.993373,0.000000,0.000000,0.114937 +0.993252,0.000000,0.000000,0.115977 +0.993130,0.000000,0.000000,0.117017 +0.993007,0.000000,0.000000,0.118057 +0.992883,0.000000,0.000000,0.119097 +0.992757,0.000000,0.000000,0.120137 +0.992631,0.000000,0.000000,0.121176 +0.992504,0.000000,0.000000,0.122216 +0.992375,0.000000,0.000000,0.123255 +0.992245,0.000000,0.000000,0.124294 +0.992115,0.000000,0.000000,0.125333 +0.991983,0.000000,0.000000,0.126372 +0.991850,0.000000,0.000000,0.127411 +0.991716,0.000000,0.000000,0.128449 +0.991581,0.000000,0.000000,0.129488 +0.991445,0.000000,0.000000,0.130526 +0.991308,0.000000,0.000000,0.131564 +0.991169,0.000000,0.000000,0.132602 +0.991030,0.000000,0.000000,0.133640 +0.990889,0.000000,0.000000,0.134678 +0.990748,0.000000,0.000000,0.135716 +0.990605,0.000000,0.000000,0.136753 +0.990461,0.000000,0.000000,0.137790 +0.990317,0.000000,0.000000,0.138827 +0.990171,0.000000,0.000000,0.139864 +0.990024,0.000000,0.000000,0.140901 +0.989876,0.000000,0.000000,0.141938 +0.989726,0.000000,0.000000,0.142974 +0.989576,0.000000,0.000000,0.144011 +0.989425,0.000000,0.000000,0.145047 +0.989272,0.000000,0.000000,0.146083 +0.989119,0.000000,0.000000,0.147119 +0.988964,0.000000,0.000000,0.148155 +0.988809,0.000000,0.000000,0.149190 +0.988652,0.000000,0.000000,0.150226 +0.988494,0.000000,0.000000,0.151261 +0.988335,0.000000,0.000000,0.152296 +0.988175,0.000000,0.000000,0.153331 +0.988014,0.000000,0.000000,0.154366 +0.987852,0.000000,0.000000,0.155400 +0.987688,0.000000,0.000000,0.156434 +0.987524,0.000000,0.000000,0.157469 +0.987359,0.000000,0.000000,0.158503 +0.987192,0.000000,0.000000,0.159537 +0.987024,0.000000,0.000000,0.160570 +0.986856,0.000000,0.000000,0.161604 +0.986686,0.000000,0.000000,0.162637 +0.986515,0.000000,0.000000,0.163670 +0.986343,0.000000,0.000000,0.164703 +0.986170,0.000000,0.000000,0.165736 +0.985996,0.000000,0.000000,0.166769 +0.985821,0.000000,0.000000,0.167801 +0.985645,0.000000,0.000000,0.168833 +0.985467,0.000000,0.000000,0.169866 +0.985289,0.000000,0.000000,0.170897 +0.985109,0.000000,0.000000,0.171929 +0.984929,0.000000,0.000000,0.172961 +0.984747,0.000000,0.000000,0.173992 +0.984564,0.000000,0.000000,0.175023 +0.984381,0.000000,0.000000,0.176054 +0.984196,0.000000,0.000000,0.177085 +0.984010,0.000000,0.000000,0.178115 +0.983823,0.000000,0.000000,0.179146 +0.983634,0.000000,0.000000,0.180176 +0.983445,0.000000,0.000000,0.181206 +0.983255,0.000000,0.000000,0.182236 +0.983064,0.000000,0.000000,0.183265 +0.982871,0.000000,0.000000,0.184294 +0.982678,0.000000,0.000000,0.185324 +0.982483,0.000000,0.000000,0.186353 +0.982287,0.000000,0.000000,0.187381 +0.982090,0.000000,0.000000,0.188410 +0.981893,0.000000,0.000000,0.189438 +0.981694,0.000000,0.000000,0.190466 +0.981494,0.000000,0.000000,0.191494 +0.981293,0.000000,0.000000,0.192522 +0.981091,0.000000,0.000000,0.193549 +0.980887,0.000000,0.000000,0.194577 +0.980683,0.000000,0.000000,0.195604 +0.980478,0.000000,0.000000,0.196631 +0.980271,0.000000,0.000000,0.197657 +0.980064,0.000000,0.000000,0.198684 +0.979855,0.000000,0.000000,0.199710 +0.979645,0.000000,0.000000,0.200736 +0.979435,0.000000,0.000000,0.201762 +0.979223,0.000000,0.000000,0.202787 +0.979010,0.000000,0.000000,0.203813 +0.978796,0.000000,0.000000,0.204838 +0.978581,0.000000,0.000000,0.205863 +0.978365,0.000000,0.000000,0.206887 +0.978148,0.000000,0.000000,0.207912 +0.977929,0.000000,0.000000,0.208936 +0.977710,0.000000,0.000000,0.209960 +0.977490,0.000000,0.000000,0.210984 +0.977268,0.000000,0.000000,0.212007 +0.977046,0.000000,0.000000,0.213030 +0.976822,0.000000,0.000000,0.214053 +0.976597,0.000000,0.000000,0.215076 +0.976371,0.000000,0.000000,0.216099 +0.976145,0.000000,0.000000,0.217121 +0.975917,0.000000,0.000000,0.218143 +0.975688,0.000000,0.000000,0.219165 +0.975458,0.000000,0.000000,0.220187 +0.975227,0.000000,0.000000,0.221208 +0.974994,0.000000,0.000000,0.222229 +0.974761,0.000000,0.000000,0.223250 +0.974527,0.000000,0.000000,0.224271 +0.974291,0.000000,0.000000,0.225291 +0.974055,0.000000,0.000000,0.226311 +0.973817,0.000000,0.000000,0.227331 +0.973579,0.000000,0.000000,0.228351 +0.973339,0.000000,0.000000,0.229370 +0.973099,0.000000,0.000000,0.230389 +0.972857,0.000000,0.000000,0.231408 +0.972614,0.000000,0.000000,0.232427 +0.972370,0.000000,0.000000,0.233445 +0.972125,0.000000,0.000000,0.234463 +0.971879,0.000000,0.000000,0.235481 +0.971632,0.000000,0.000000,0.236499 +0.971384,0.000000,0.000000,0.237516 +0.971134,0.000000,0.000000,0.238533 +0.970884,0.000000,0.000000,0.239550 +0.970633,0.000000,0.000000,0.240567 +0.970380,0.000000,0.000000,0.241583 +0.970127,0.000000,0.000000,0.242599 +0.969872,0.000000,0.000000,0.243615 +0.969616,0.000000,0.000000,0.244631 +0.969360,0.000000,0.000000,0.245646 +0.969102,0.000000,0.000000,0.246661 +0.968843,0.000000,0.000000,0.247675 +0.968583,0.000000,0.000000,0.248690 +0.968322,0.000000,0.000000,0.249704 +0.968060,0.000000,0.000000,0.250718 +0.967797,0.000000,0.000000,0.251732 +0.967533,0.000000,0.000000,0.252745 +0.967268,0.000000,0.000000,0.253758 +0.967001,0.000000,0.000000,0.254771 +0.966734,0.000000,0.000000,0.255783 +0.966466,0.000000,0.000000,0.256795 +0.966196,0.000000,0.000000,0.257807 +0.965926,0.000000,0.000000,0.258819 +0.965654,0.000000,0.000000,0.259830 +0.965382,0.000000,0.000000,0.260842 +0.965108,0.000000,0.000000,0.261852 +0.964833,0.000000,0.000000,0.262863 +0.964557,0.000000,0.000000,0.263873 +0.964281,0.000000,0.000000,0.264883 +0.964003,0.000000,0.000000,0.265893 +0.963724,0.000000,0.000000,0.266902 +0.963444,0.000000,0.000000,0.267911 +0.963163,0.000000,0.000000,0.268920 +0.962880,0.000000,0.000000,0.269928 +0.962597,0.000000,0.000000,0.270936 +0.962313,0.000000,0.000000,0.271944 +0.962028,0.000000,0.000000,0.272952 +0.961741,0.000000,0.000000,0.273959 +0.961454,0.000000,0.000000,0.274966 +0.961165,0.000000,0.000000,0.275973 +0.960876,0.000000,0.000000,0.276979 +0.960585,0.000000,0.000000,0.277985 +0.960294,0.000000,0.000000,0.278991 +0.960001,0.000000,0.000000,0.279997 +0.959707,0.000000,0.000000,0.281002 +0.959412,0.000000,0.000000,0.282007 +0.959117,0.000000,0.000000,0.283011 +0.958820,0.000000,0.000000,0.284015 +0.958522,0.000000,0.000000,0.285019 +0.958223,0.000000,0.000000,0.286023 +0.957923,0.000000,0.000000,0.287026 +0.957622,0.000000,0.000000,0.288029 +0.957319,0.000000,0.000000,0.289032 +0.957016,0.000000,0.000000,0.290034 +0.956712,0.000000,0.000000,0.291036 +0.956407,0.000000,0.000000,0.292038 +0.956100,0.000000,0.000000,0.293039 +0.955793,0.000000,0.000000,0.294040 +0.955485,0.000000,0.000000,0.295041 +0.955175,0.000000,0.000000,0.296041 +0.954865,0.000000,0.000000,0.297042 +0.954553,0.000000,0.000000,0.298041 +0.954240,0.000000,0.000000,0.299041 +0.953927,0.000000,0.000000,0.300040 +0.953612,0.000000,0.000000,0.301039 +0.953296,0.000000,0.000000,0.302037 +0.952979,0.000000,0.000000,0.303035 +0.952661,0.000000,0.000000,0.304033 +0.952343,0.000000,0.000000,0.305031 +0.952023,0.000000,0.000000,0.306028 +0.951702,0.000000,0.000000,0.307024 +0.951380,0.000000,0.000000,0.308021 +0.951057,0.000000,0.000000,0.309017 +0.950732,0.000000,0.000000,0.310013 +0.950407,0.000000,0.000000,0.311008 +0.950081,0.000000,0.000000,0.312003 +0.949754,0.000000,0.000000,0.312998 +0.949425,0.000000,0.000000,0.313992 +0.949096,0.000000,0.000000,0.314987 +0.948766,0.000000,0.000000,0.315980 +0.948434,0.000000,0.000000,0.316974 +0.948102,0.000000,0.000000,0.317967 +0.947768,0.000000,0.000000,0.318959 +0.947434,0.000000,0.000000,0.319952 +0.947098,0.000000,0.000000,0.320944 +0.946762,0.000000,0.000000,0.321935 +0.946424,0.000000,0.000000,0.322927 +0.946085,0.000000,0.000000,0.323917 +0.945746,0.000000,0.000000,0.324908 +0.945405,0.000000,0.000000,0.325898 +0.945063,0.000000,0.000000,0.326888 +0.944720,0.000000,0.000000,0.327878 +0.944376,0.000000,0.000000,0.328867 +0.944031,0.000000,0.000000,0.329855 +0.943686,0.000000,0.000000,0.330844 +0.943339,0.000000,0.000000,0.331832 +0.942991,0.000000,0.000000,0.332820 +0.942641,0.000000,0.000000,0.333807 +0.942291,0.000000,0.000000,0.334794 +0.941940,0.000000,0.000000,0.335780 +0.941588,0.000000,0.000000,0.336767 +0.941235,0.000000,0.000000,0.337752 +0.940881,0.000000,0.000000,0.338738 +0.940526,0.000000,0.000000,0.339723 +0.940169,0.000000,0.000000,0.340708 +0.939812,0.000000,0.000000,0.341692 +0.939454,0.000000,0.000000,0.342676 +0.939094,0.000000,0.000000,0.343660 +0.938734,0.000000,0.000000,0.344643 +0.938372,0.000000,0.000000,0.345626 +0.938010,0.000000,0.000000,0.346608 +0.937646,0.000000,0.000000,0.347590 +0.937282,0.000000,0.000000,0.348572 +0.936916,0.000000,0.000000,0.349553 +0.936550,0.000000,0.000000,0.350534 +0.936182,0.000000,0.000000,0.351515 +0.935814,0.000000,0.000000,0.352495 +0.935444,0.000000,0.000000,0.353475 +0.935073,0.000000,0.000000,0.354454 +0.934702,0.000000,0.000000,0.355433 +0.934329,0.000000,0.000000,0.356412 +0.933955,0.000000,0.000000,0.357390 +0.933580,0.000000,0.000000,0.358368 +0.933205,0.000000,0.000000,0.359345 +0.932828,0.000000,0.000000,0.360322 +0.932450,0.000000,0.000000,0.361299 +0.932071,0.000000,0.000000,0.362275 +0.931691,0.000000,0.000000,0.363251 +0.931310,0.000000,0.000000,0.364227 +0.930928,0.000000,0.000000,0.365202 +0.930545,0.000000,0.000000,0.366176 +0.930161,0.000000,0.000000,0.367151 +0.929776,0.000000,0.000000,0.368125 +0.929390,0.000000,0.000000,0.369098 +0.929003,0.000000,0.000000,0.370071 +0.928615,0.000000,0.000000,0.371044 +0.928226,0.000000,0.000000,0.372016 +0.927836,0.000000,0.000000,0.372988 +0.927445,0.000000,0.000000,0.373959 +0.927053,0.000000,0.000000,0.374930 +0.926660,0.000000,0.000000,0.375901 +0.926266,0.000000,0.000000,0.376871 +0.925871,0.000000,0.000000,0.377841 +0.925474,0.000000,0.000000,0.378810 +0.925077,0.000000,0.000000,0.379779 +0.924679,0.000000,0.000000,0.380748 +0.924280,0.000000,0.000000,0.381716 +0.923880,0.000000,0.000000,0.382683 +0.923478,0.000000,0.000000,0.383651 +0.923076,0.000000,0.000000,0.384618 +0.922673,0.000000,0.000000,0.385584 +0.922268,0.000000,0.000000,0.386550 +0.921863,0.000000,0.000000,0.387516 +0.921457,0.000000,0.000000,0.388481 +0.921050,0.000000,0.000000,0.389445 +0.920641,0.000000,0.000000,0.390410 +0.920232,0.000000,0.000000,0.391374 +0.919821,0.000000,0.000000,0.392337 +0.919410,0.000000,0.000000,0.393300 +0.918998,0.000000,0.000000,0.394263 +0.918584,0.000000,0.000000,0.395225 +0.918170,0.000000,0.000000,0.396187 +0.917755,0.000000,0.000000,0.397148 +0.917338,0.000000,0.000000,0.398109 +0.916921,0.000000,0.000000,0.399069 +0.916502,0.000000,0.000000,0.400029 +0.916083,0.000000,0.000000,0.400989 +0.915663,0.000000,0.000000,0.401948 +0.915241,0.000000,0.000000,0.402906 +0.914819,0.000000,0.000000,0.403865 +0.914395,0.000000,0.000000,0.404822 +0.913971,0.000000,0.000000,0.405780 +0.913545,0.000000,0.000000,0.406737 +0.913119,0.000000,0.000000,0.407693 +0.912692,0.000000,0.000000,0.408649 +0.912263,0.000000,0.000000,0.409605 +0.911834,0.000000,0.000000,0.410560 +0.911403,0.000000,0.000000,0.411514 +0.910972,0.000000,0.000000,0.412469 +0.910539,0.000000,0.000000,0.413422 +0.910106,0.000000,0.000000,0.414376 +0.909672,0.000000,0.000000,0.415328 +0.909236,0.000000,0.000000,0.416281 +0.908800,0.000000,0.000000,0.417233 +0.908362,0.000000,0.000000,0.418184 +0.907924,0.000000,0.000000,0.419135 +0.907484,0.000000,0.000000,0.420086 +0.907044,0.000000,0.000000,0.421036 +0.906603,0.000000,0.000000,0.421985 +0.906160,0.000000,0.000000,0.422935 +0.905717,0.000000,0.000000,0.423883 +0.905272,0.000000,0.000000,0.424832 +0.904827,0.000000,0.000000,0.425779 +0.904381,0.000000,0.000000,0.426727 +0.903933,0.000000,0.000000,0.427673 +0.903485,0.000000,0.000000,0.428620 +0.903036,0.000000,0.000000,0.429566 +0.902585,0.000000,0.000000,0.430511 +0.902134,0.000000,0.000000,0.431456 +0.901682,0.000000,0.000000,0.432401 +0.901228,0.000000,0.000000,0.433345 +0.900774,0.000000,0.000000,0.434288 +0.900319,0.000000,0.000000,0.435231 +0.899863,0.000000,0.000000,0.436174 +0.899405,0.000000,0.000000,0.437116 +0.898947,0.000000,0.000000,0.438057 +0.898488,0.000000,0.000000,0.438999 +0.898028,0.000000,0.000000,0.439939 +0.897566,0.000000,0.000000,0.440879 +0.897104,0.000000,0.000000,0.441819 +0.896641,0.000000,0.000000,0.442758 +0.896177,0.000000,0.000000,0.443697 +0.895712,0.000000,0.000000,0.444635 +0.895246,0.000000,0.000000,0.445573 +0.894779,0.000000,0.000000,0.446510 +0.894310,0.000000,0.000000,0.447447 +0.893841,0.000000,0.000000,0.448383 +0.893371,0.000000,0.000000,0.449319 +0.892900,0.000000,0.000000,0.450254 +0.892428,0.000000,0.000000,0.451189 +0.891955,0.000000,0.000000,0.452123 +0.891481,0.000000,0.000000,0.453057 +0.891007,0.000000,0.000000,0.453990 +0.890531,0.000000,0.000000,0.454923 +0.890054,0.000000,0.000000,0.455856 +0.889576,0.000000,0.000000,0.456787 +0.889097,0.000000,0.000000,0.457719 +0.888617,0.000000,0.000000,0.458650 +0.888136,0.000000,0.000000,0.459580 +0.887655,0.000000,0.000000,0.460510 +0.887172,0.000000,0.000000,0.461439 +0.886688,0.000000,0.000000,0.462368 +0.886204,0.000000,0.000000,0.463296 +0.885718,0.000000,0.000000,0.464224 +0.885231,0.000000,0.000000,0.465151 +0.884744,0.000000,0.000000,0.466078 +0.884255,0.000000,0.000000,0.467004 +0.883766,0.000000,0.000000,0.467930 +0.883275,0.000000,0.000000,0.468855 +0.882784,0.000000,0.000000,0.469780 +0.882291,0.000000,0.000000,0.470704 +0.881798,0.000000,0.000000,0.471628 +0.881303,0.000000,0.000000,0.472551 +0.880808,0.000000,0.000000,0.473473 +0.880312,0.000000,0.000000,0.474396 +0.879815,0.000000,0.000000,0.475317 +0.879316,0.000000,0.000000,0.476238 +0.878817,0.000000,0.000000,0.477159 +0.878317,0.000000,0.000000,0.478079 +0.877816,0.000000,0.000000,0.478998 +0.877314,0.000000,0.000000,0.479917 +0.876811,0.000000,0.000000,0.480836 +0.876307,0.000000,0.000000,0.481754 +0.875802,0.000000,0.000000,0.482671 +0.875296,0.000000,0.000000,0.483588 +0.874789,0.000000,0.000000,0.484504 +0.874281,0.000000,0.000000,0.485420 +0.873772,0.000000,0.000000,0.486335 +0.873262,0.000000,0.000000,0.487250 +0.872752,0.000000,0.000000,0.488164 +0.872240,0.000000,0.000000,0.489078 +0.871727,0.000000,0.000000,0.489991 +0.871214,0.000000,0.000000,0.490904 +0.870699,0.000000,0.000000,0.491816 +0.870184,0.000000,0.000000,0.492727 +0.869667,0.000000,0.000000,0.493638 +0.869150,0.000000,0.000000,0.494549 +0.868632,0.000000,0.000000,0.495459 +0.868112,0.000000,0.000000,0.496368 +0.867592,0.000000,0.000000,0.497277 +0.867071,0.000000,0.000000,0.498185 +0.866549,0.000000,0.000000,0.499093 +0.866025,0.000000,0.000000,0.500000 +0.865501,0.000000,0.000000,0.500907 +0.864976,0.000000,0.000000,0.501813 +0.864450,0.000000,0.000000,0.502718 +0.863923,0.000000,0.000000,0.503623 +0.863396,0.000000,0.000000,0.504528 +0.862867,0.000000,0.000000,0.505431 +0.862337,0.000000,0.000000,0.506335 +0.861806,0.000000,0.000000,0.507238 +0.861275,0.000000,0.000000,0.508140 +0.860742,0.000000,0.000000,0.509041 +0.860208,0.000000,0.000000,0.509943 +0.859674,0.000000,0.000000,0.510843 +0.859139,0.000000,0.000000,0.511743 +0.858602,0.000000,0.000000,0.512642 +0.858065,0.000000,0.000000,0.513541 +0.857527,0.000000,0.000000,0.514440 +0.856987,0.000000,0.000000,0.515337 +0.856447,0.000000,0.000000,0.516234 +0.855906,0.000000,0.000000,0.517131 +0.855364,0.000000,0.000000,0.518027 +0.854821,0.000000,0.000000,0.518922 +0.854277,0.000000,0.000000,0.519817 +0.853733,0.000000,0.000000,0.520712 +0.853187,0.000000,0.000000,0.521605 +0.852640,0.000000,0.000000,0.522499 +0.852093,0.000000,0.000000,0.523391 +0.851544,0.000000,0.000000,0.524283 +0.850994,0.000000,0.000000,0.525175 +0.850444,0.000000,0.000000,0.526066 +0.849893,0.000000,0.000000,0.526956 +0.849340,0.000000,0.000000,0.527846 +0.848787,0.000000,0.000000,0.528735 +0.848233,0.000000,0.000000,0.529623 +0.847678,0.000000,0.000000,0.530511 +0.847122,0.000000,0.000000,0.531399 +0.846565,0.000000,0.000000,0.532285 +0.846007,0.000000,0.000000,0.533172 +0.845448,0.000000,0.000000,0.534057 +0.844889,0.000000,0.000000,0.534942 +0.844328,0.000000,0.000000,0.535827 +0.843766,0.000000,0.000000,0.536711 +0.843204,0.000000,0.000000,0.537594 +0.842640,0.000000,0.000000,0.538477 +0.842076,0.000000,0.000000,0.539359 +0.841511,0.000000,0.000000,0.540240 +0.840945,0.000000,0.000000,0.541121 +0.840377,0.000000,0.000000,0.542002 +0.839809,0.000000,0.000000,0.542881 +0.839240,0.000000,0.000000,0.543760 +0.838671,0.000000,0.000000,0.544639 +0.838100,0.000000,0.000000,0.545517 +0.837528,0.000000,0.000000,0.546394 +0.836955,0.000000,0.000000,0.547271 +0.836382,0.000000,0.000000,0.548147 +0.835807,0.000000,0.000000,0.549023 +0.835232,0.000000,0.000000,0.549898 +0.834656,0.000000,0.000000,0.550772 +0.834078,0.000000,0.000000,0.551646 +0.833500,0.000000,0.000000,0.552519 +0.832921,0.000000,0.000000,0.553392 +0.832341,0.000000,0.000000,0.554263 +0.831760,0.000000,0.000000,0.555135 +0.831179,0.000000,0.000000,0.556006 +0.830596,0.000000,0.000000,0.556876 +0.830012,0.000000,0.000000,0.557745 +0.829428,0.000000,0.000000,0.558614 +0.828842,0.000000,0.000000,0.559482 +0.828256,0.000000,0.000000,0.560350 +0.827669,0.000000,0.000000,0.561217 +0.827081,0.000000,0.000000,0.562083 +0.826492,0.000000,0.000000,0.562949 +0.825902,0.000000,0.000000,0.563814 +0.825311,0.000000,0.000000,0.564679 +0.824719,0.000000,0.000000,0.565543 +0.824126,0.000000,0.000000,0.566406 +0.823533,0.000000,0.000000,0.567269 +0.822938,0.000000,0.000000,0.568131 +0.822343,0.000000,0.000000,0.568993 +0.821746,0.000000,0.000000,0.569853 +0.821149,0.000000,0.000000,0.570714 +0.820551,0.000000,0.000000,0.571573 +0.819952,0.000000,0.000000,0.572432 +0.819352,0.000000,0.000000,0.573290 +0.818751,0.000000,0.000000,0.574148 +0.818150,0.000000,0.000000,0.575005 +0.817547,0.000000,0.000000,0.575862 +0.816944,0.000000,0.000000,0.576718 +0.816339,0.000000,0.000000,0.577573 +0.815734,0.000000,0.000000,0.578427 +0.815128,0.000000,0.000000,0.579281 +0.814521,0.000000,0.000000,0.580134 +0.813913,0.000000,0.000000,0.580987 +0.813304,0.000000,0.000000,0.581839 +0.812694,0.000000,0.000000,0.582690 +0.812084,0.000000,0.000000,0.583541 +0.811472,0.000000,0.000000,0.584391 +0.810860,0.000000,0.000000,0.585241 +0.810246,0.000000,0.000000,0.586090 +0.809632,0.000000,0.000000,0.586938 +0.809017,0.000000,0.000000,0.587785 +0.808401,0.000000,0.000000,0.588632 +0.807784,0.000000,0.000000,0.589478 +0.807166,0.000000,0.000000,0.590324 +0.806548,0.000000,0.000000,0.591169 +0.805928,0.000000,0.000000,0.592013 +0.805308,0.000000,0.000000,0.592857 +0.804687,0.000000,0.000000,0.593700 +0.804064,0.000000,0.000000,0.594542 +0.803441,0.000000,0.000000,0.595384 +0.802817,0.000000,0.000000,0.596225 +0.802193,0.000000,0.000000,0.597065 +0.801567,0.000000,0.000000,0.597905 +0.800940,0.000000,0.000000,0.598744 +0.800313,0.000000,0.000000,0.599582 +0.799685,0.000000,0.000000,0.600420 +0.799055,0.000000,0.000000,0.601257 +0.798425,0.000000,0.000000,0.602094 +0.797794,0.000000,0.000000,0.602930 +0.797163,0.000000,0.000000,0.603765 +0.796530,0.000000,0.000000,0.604599 +0.795896,0.000000,0.000000,0.605433 +0.795262,0.000000,0.000000,0.606266 +0.794627,0.000000,0.000000,0.607098 +0.793990,0.000000,0.000000,0.607930 +0.793353,0.000000,0.000000,0.608761 +0.792715,0.000000,0.000000,0.609592 +0.792077,0.000000,0.000000,0.610422 +0.791437,0.000000,0.000000,0.611251 +0.790796,0.000000,0.000000,0.612079 +0.790155,0.000000,0.000000,0.612907 +0.789513,0.000000,0.000000,0.613734 +0.788870,0.000000,0.000000,0.614561 +0.788226,0.000000,0.000000,0.615386 +0.787581,0.000000,0.000000,0.616211 +0.786935,0.000000,0.000000,0.617036 +0.786288,0.000000,0.000000,0.617860 +0.785641,0.000000,0.000000,0.618683 +0.784993,0.000000,0.000000,0.619505 +0.784343,0.000000,0.000000,0.620327 +0.783693,0.000000,0.000000,0.621148 +0.783043,0.000000,0.000000,0.621968 +0.782391,0.000000,0.000000,0.622788 +0.781738,0.000000,0.000000,0.623607 +0.781085,0.000000,0.000000,0.624425 +0.780430,0.000000,0.000000,0.625243 +0.779775,0.000000,0.000000,0.626060 +0.779119,0.000000,0.000000,0.626876 +0.778462,0.000000,0.000000,0.627691 +0.777805,0.000000,0.000000,0.628506 +0.777146,0.000000,0.000000,0.629320 +0.776487,0.000000,0.000000,0.630134 +0.775826,0.000000,0.000000,0.630947 +0.775165,0.000000,0.000000,0.631759 +0.774503,0.000000,0.000000,0.632570 +0.773840,0.000000,0.000000,0.633381 +0.773177,0.000000,0.000000,0.634191 +0.772512,0.000000,0.000000,0.635000 +0.771847,0.000000,0.000000,0.635809 +0.771180,0.000000,0.000000,0.636617 +0.770513,0.000000,0.000000,0.637424 +0.769845,0.000000,0.000000,0.638231 +0.769177,0.000000,0.000000,0.639036 +0.768507,0.000000,0.000000,0.639841 +0.767836,0.000000,0.000000,0.640646 +0.767165,0.000000,0.000000,0.641450 +0.766493,0.000000,0.000000,0.642253 +0.765820,0.000000,0.000000,0.643055 +0.765146,0.000000,0.000000,0.643857 +0.764472,0.000000,0.000000,0.644657 +0.763796,0.000000,0.000000,0.645458 +0.763120,0.000000,0.000000,0.646257 +0.762443,0.000000,0.000000,0.647056 +0.761764,0.000000,0.000000,0.647854 +0.761086,0.000000,0.000000,0.648651 +0.760406,0.000000,0.000000,0.649448 +0.759725,0.000000,0.000000,0.650244 +0.759044,0.000000,0.000000,0.651039 +0.758362,0.000000,0.000000,0.651834 +0.757679,0.000000,0.000000,0.652628 +0.756995,0.000000,0.000000,0.653421 +0.756310,0.000000,0.000000,0.654213 +0.755625,0.000000,0.000000,0.655005 +0.754939,0.000000,0.000000,0.655796 +0.754251,0.000000,0.000000,0.656586 +0.753563,0.000000,0.000000,0.657375 +0.752875,0.000000,0.000000,0.658164 +0.752185,0.000000,0.000000,0.658952 +0.751494,0.000000,0.000000,0.659739 +0.750803,0.000000,0.000000,0.660526 +0.750111,0.000000,0.000000,0.661312 +0.749418,0.000000,0.000000,0.662097 +0.748724,0.000000,0.000000,0.662881 +0.748030,0.000000,0.000000,0.663665 +0.747334,0.000000,0.000000,0.664448 +0.746638,0.000000,0.000000,0.665230 +0.745941,0.000000,0.000000,0.666012 +0.745243,0.000000,0.000000,0.666793 +0.744545,0.000000,0.000000,0.667573 +0.743845,0.000000,0.000000,0.668352 +0.743145,0.000000,0.000000,0.669131 +0.742444,0.000000,0.000000,0.669908 +0.741742,0.000000,0.000000,0.670686 +0.741039,0.000000,0.000000,0.671462 +0.740335,0.000000,0.000000,0.672238 +0.739631,0.000000,0.000000,0.673013 +0.738926,0.000000,0.000000,0.673787 +0.738220,0.000000,0.000000,0.674560 +0.737513,0.000000,0.000000,0.675333 +0.736806,0.000000,0.000000,0.676105 +0.736097,0.000000,0.000000,0.676876 +0.735388,0.000000,0.000000,0.677646 +0.734678,0.000000,0.000000,0.678416 +0.733967,0.000000,0.000000,0.679185 +0.733255,0.000000,0.000000,0.679953 +0.732543,0.000000,0.000000,0.680721 +0.731830,0.000000,0.000000,0.681488 +0.731116,0.000000,0.000000,0.682254 +0.730401,0.000000,0.000000,0.683019 +0.729685,0.000000,0.000000,0.683783 +0.728969,0.000000,0.000000,0.684547 +0.728251,0.000000,0.000000,0.685310 +0.727533,0.000000,0.000000,0.686072 +0.726814,0.000000,0.000000,0.686834 +0.726095,0.000000,0.000000,0.687595 +0.725374,0.000000,0.000000,0.688355 +0.724653,0.000000,0.000000,0.689114 +0.723931,0.000000,0.000000,0.689872 +0.723208,0.000000,0.000000,0.690630 +0.722485,0.000000,0.000000,0.691387 +0.721760,0.000000,0.000000,0.692143 +0.721035,0.000000,0.000000,0.692899 +0.720309,0.000000,0.000000,0.693653 +0.719582,0.000000,0.000000,0.694407 +0.718855,0.000000,0.000000,0.695160 +0.718126,0.000000,0.000000,0.695913 +0.717397,0.000000,0.000000,0.696664 +0.716667,0.000000,0.000000,0.697415 +0.715936,0.000000,0.000000,0.698165 +0.715205,0.000000,0.000000,0.698915 +0.714473,0.000000,0.000000,0.699663 +0.713740,0.000000,0.000000,0.700411 +0.713006,0.000000,0.000000,0.701158 +0.712271,0.000000,0.000000,0.701904 +0.711536,0.000000,0.000000,0.702650 +0.710799,0.000000,0.000000,0.703395 +0.710062,0.000000,0.000000,0.704139 +0.709325,0.000000,0.000000,0.704882 +0.708586,0.000000,0.000000,0.705624 +0.707847,0.000000,0.000000,0.706366 +0.707107,0.000000,0.000000,0.707107 +0.706366,0.000000,0.000000,0.707847 +0.705624,0.000000,0.000000,0.708586 +0.704882,0.000000,0.000000,0.709325 +0.704139,0.000000,0.000000,0.710062 +0.703395,0.000000,0.000000,0.710799 +0.702650,0.000000,0.000000,0.711536 +0.701904,0.000000,0.000000,0.712271 +0.701158,0.000000,0.000000,0.713006 +0.700411,0.000000,0.000000,0.713740 +0.699663,0.000000,0.000000,0.714473 +0.698915,0.000000,0.000000,0.715205 +0.698165,0.000000,0.000000,0.715936 +0.697415,0.000000,0.000000,0.716667 +0.696664,0.000000,0.000000,0.717397 +0.695913,0.000000,0.000000,0.718126 +0.695160,0.000000,0.000000,0.718855 +0.694407,0.000000,0.000000,0.719582 +0.693653,0.000000,0.000000,0.720309 +0.692899,0.000000,0.000000,0.721035 +0.692143,0.000000,0.000000,0.721760 +0.691387,0.000000,0.000000,0.722485 +0.690630,0.000000,0.000000,0.723208 +0.689872,0.000000,0.000000,0.723931 +0.689114,0.000000,0.000000,0.724653 +0.688355,0.000000,0.000000,0.725374 +0.687595,0.000000,0.000000,0.726095 +0.686834,0.000000,0.000000,0.726814 +0.686072,0.000000,0.000000,0.727533 +0.685310,0.000000,0.000000,0.728251 +0.684547,0.000000,0.000000,0.728969 +0.683783,0.000000,0.000000,0.729685 +0.683019,0.000000,0.000000,0.730401 +0.682254,0.000000,0.000000,0.731116 +0.681488,0.000000,0.000000,0.731830 +0.680721,0.000000,0.000000,0.732543 +0.679953,0.000000,0.000000,0.733255 +0.679185,0.000000,0.000000,0.733967 +0.678416,0.000000,0.000000,0.734678 +0.677646,0.000000,0.000000,0.735388 +0.676876,0.000000,0.000000,0.736097 +0.676105,0.000000,0.000000,0.736806 +0.675333,0.000000,0.000000,0.737513 +0.674560,0.000000,0.000000,0.738220 +0.673787,0.000000,0.000000,0.738926 +0.673013,0.000000,0.000000,0.739631 +0.672238,0.000000,0.000000,0.740335 +0.671462,0.000000,0.000000,0.741039 +0.670686,0.000000,0.000000,0.741742 +0.669908,0.000000,0.000000,0.742444 +0.669131,0.000000,0.000000,0.743145 +0.668352,0.000000,0.000000,0.743845 +0.667573,0.000000,0.000000,0.744545 +0.666793,0.000000,0.000000,0.745243 +0.666012,0.000000,0.000000,0.745941 +0.665230,0.000000,0.000000,0.746638 +0.664448,0.000000,0.000000,0.747334 +0.663665,0.000000,0.000000,0.748030 +0.662881,0.000000,0.000000,0.748724 +0.662097,0.000000,0.000000,0.749418 +0.661312,0.000000,0.000000,0.750111 +0.660526,0.000000,0.000000,0.750803 +0.659739,0.000000,0.000000,0.751494 +0.658952,0.000000,0.000000,0.752185 +0.658164,0.000000,0.000000,0.752875 +0.657375,0.000000,0.000000,0.753563 +0.656586,0.000000,0.000000,0.754251 +0.655796,0.000000,0.000000,0.754939 +0.655005,0.000000,0.000000,0.755625 +0.654213,0.000000,0.000000,0.756310 +0.653421,0.000000,0.000000,0.756995 +0.652628,0.000000,0.000000,0.757679 +0.651834,0.000000,0.000000,0.758362 +0.651039,0.000000,0.000000,0.759044 +0.650244,0.000000,0.000000,0.759725 +0.649448,0.000000,0.000000,0.760406 +0.648651,0.000000,0.000000,0.761086 +0.647854,0.000000,0.000000,0.761764 +0.647056,0.000000,0.000000,0.762443 +0.646257,0.000000,0.000000,0.763120 +0.645458,0.000000,0.000000,0.763796 +0.644657,0.000000,0.000000,0.764472 +0.643857,0.000000,0.000000,0.765146 +0.643055,0.000000,0.000000,0.765820 +0.642253,0.000000,0.000000,0.766493 +0.641450,0.000000,0.000000,0.767165 +0.640646,0.000000,0.000000,0.767836 +0.639841,0.000000,0.000000,0.768507 +0.639036,0.000000,0.000000,0.769177 +0.638231,0.000000,0.000000,0.769845 +0.637424,0.000000,0.000000,0.770513 +0.636617,0.000000,0.000000,0.771180 +0.635809,0.000000,0.000000,0.771847 +0.635000,0.000000,0.000000,0.772512 +0.634191,0.000000,0.000000,0.773177 +0.633381,0.000000,0.000000,0.773840 +0.632570,0.000000,0.000000,0.774503 +0.631759,0.000000,0.000000,0.775165 +0.630947,0.000000,0.000000,0.775826 +0.630134,0.000000,0.000000,0.776487 +0.629320,0.000000,0.000000,0.777146 +0.628506,0.000000,0.000000,0.777805 +0.627691,0.000000,0.000000,0.778462 +0.626876,0.000000,0.000000,0.779119 +0.626060,0.000000,0.000000,0.779775 +0.625243,0.000000,0.000000,0.780430 +0.624425,0.000000,0.000000,0.781085 +0.623607,0.000000,0.000000,0.781738 +0.622788,0.000000,0.000000,0.782391 +0.621968,0.000000,0.000000,0.783043 +0.621148,0.000000,0.000000,0.783693 +0.620327,0.000000,0.000000,0.784343 +0.619505,0.000000,0.000000,0.784993 +0.618683,0.000000,0.000000,0.785641 +0.617860,0.000000,0.000000,0.786288 +0.617036,0.000000,0.000000,0.786935 +0.616211,0.000000,0.000000,0.787581 +0.615386,0.000000,0.000000,0.788226 +0.614561,0.000000,0.000000,0.788870 +0.613734,0.000000,0.000000,0.789513 +0.612907,0.000000,0.000000,0.790155 +0.612079,0.000000,0.000000,0.790796 +0.611251,0.000000,0.000000,0.791437 +0.610422,0.000000,0.000000,0.792077 +0.609592,0.000000,0.000000,0.792715 +0.608761,0.000000,0.000000,0.793353 +0.607930,0.000000,0.000000,0.793990 +0.607098,0.000000,0.000000,0.794627 +0.606266,0.000000,0.000000,0.795262 +0.605433,0.000000,0.000000,0.795896 +0.604599,0.000000,0.000000,0.796530 +0.603765,0.000000,0.000000,0.797163 +0.602930,0.000000,0.000000,0.797794 +0.602094,0.000000,0.000000,0.798425 +0.601257,0.000000,0.000000,0.799055 +0.600420,0.000000,0.000000,0.799685 +0.599582,0.000000,0.000000,0.800313 +0.598744,0.000000,0.000000,0.800940 +0.597905,0.000000,0.000000,0.801567 +0.597065,0.000000,0.000000,0.802193 +0.596225,0.000000,0.000000,0.802817 +0.595384,0.000000,0.000000,0.803441 +0.594542,0.000000,0.000000,0.804064 +0.593700,0.000000,0.000000,0.804687 +0.592857,0.000000,0.000000,0.805308 +0.592013,0.000000,0.000000,0.805928 +0.591169,0.000000,0.000000,0.806548 +0.590324,0.000000,0.000000,0.807166 +0.589478,0.000000,0.000000,0.807784 +0.588632,0.000000,0.000000,0.808401 +0.587785,0.000000,0.000000,0.809017 +0.586938,0.000000,0.000000,0.809632 +0.586090,0.000000,0.000000,0.810246 +0.585241,0.000000,0.000000,0.810860 +0.584391,0.000000,0.000000,0.811472 +0.583541,0.000000,0.000000,0.812084 +0.582690,0.000000,0.000000,0.812694 +0.581839,0.000000,0.000000,0.813304 +0.580987,0.000000,0.000000,0.813913 +0.580134,0.000000,0.000000,0.814521 +0.579281,0.000000,0.000000,0.815128 +0.578427,0.000000,0.000000,0.815734 +0.577573,0.000000,0.000000,0.816339 +0.576718,0.000000,0.000000,0.816944 +0.575862,0.000000,0.000000,0.817547 +0.575005,0.000000,0.000000,0.818150 +0.574148,0.000000,0.000000,0.818751 +0.573290,0.000000,0.000000,0.819352 +0.572432,0.000000,0.000000,0.819952 +0.571573,0.000000,0.000000,0.820551 +0.570714,0.000000,0.000000,0.821149 +0.569853,0.000000,0.000000,0.821746 +0.568993,0.000000,0.000000,0.822343 +0.568131,0.000000,0.000000,0.822938 +0.567269,0.000000,0.000000,0.823533 +0.566406,0.000000,0.000000,0.824126 +0.565543,0.000000,0.000000,0.824719 +0.564679,0.000000,0.000000,0.825311 +0.563814,0.000000,0.000000,0.825902 +0.562949,0.000000,0.000000,0.826492 +0.562083,0.000000,0.000000,0.827081 +0.561217,0.000000,0.000000,0.827669 +0.560350,0.000000,0.000000,0.828256 +0.559482,0.000000,0.000000,0.828842 +0.558614,0.000000,0.000000,0.829428 +0.557745,0.000000,0.000000,0.830012 +0.556876,0.000000,0.000000,0.830596 +0.556006,0.000000,0.000000,0.831179 +0.555135,0.000000,0.000000,0.831760 +0.554263,0.000000,0.000000,0.832341 +0.553392,0.000000,0.000000,0.832921 +0.552519,0.000000,0.000000,0.833500 +0.551646,0.000000,0.000000,0.834078 +0.550772,0.000000,0.000000,0.834656 +0.549898,0.000000,0.000000,0.835232 +0.549023,0.000000,0.000000,0.835807 +0.548147,0.000000,0.000000,0.836382 +0.547271,0.000000,0.000000,0.836955 +0.546394,0.000000,0.000000,0.837528 +0.545517,0.000000,0.000000,0.838100 +0.544639,0.000000,0.000000,0.838671 +0.543760,0.000000,0.000000,0.839240 +0.542881,0.000000,0.000000,0.839809 +0.542002,0.000000,0.000000,0.840377 +0.541121,0.000000,0.000000,0.840945 +0.540240,0.000000,0.000000,0.841511 +0.539359,0.000000,0.000000,0.842076 +0.538477,0.000000,0.000000,0.842640 +0.537594,0.000000,0.000000,0.843204 +0.536711,0.000000,0.000000,0.843766 +0.535827,0.000000,0.000000,0.844328 +0.534942,0.000000,0.000000,0.844889 +0.534057,0.000000,0.000000,0.845448 +0.533172,0.000000,0.000000,0.846007 +0.532285,0.000000,0.000000,0.846565 +0.531399,0.000000,0.000000,0.847122 +0.530511,0.000000,0.000000,0.847678 +0.529623,0.000000,0.000000,0.848233 +0.528735,0.000000,0.000000,0.848787 +0.527846,0.000000,0.000000,0.849340 +0.526956,0.000000,0.000000,0.849893 +0.526066,0.000000,0.000000,0.850444 +0.525175,0.000000,0.000000,0.850994 +0.524283,0.000000,0.000000,0.851544 +0.523391,0.000000,0.000000,0.852093 +0.522499,0.000000,0.000000,0.852640 +0.521605,0.000000,0.000000,0.853187 +0.520712,0.000000,0.000000,0.853733 +0.519817,0.000000,0.000000,0.854277 +0.518922,0.000000,0.000000,0.854821 +0.518027,0.000000,0.000000,0.855364 +0.517131,0.000000,0.000000,0.855906 +0.516234,0.000000,0.000000,0.856447 +0.515337,0.000000,0.000000,0.856987 +0.514440,0.000000,0.000000,0.857527 +0.513541,0.000000,0.000000,0.858065 +0.512642,0.000000,0.000000,0.858602 +0.511743,0.000000,0.000000,0.859139 +0.510843,0.000000,0.000000,0.859674 +0.509943,0.000000,0.000000,0.860208 +0.509041,0.000000,0.000000,0.860742 +0.508140,0.000000,0.000000,0.861275 +0.507238,0.000000,0.000000,0.861806 +0.506335,0.000000,0.000000,0.862337 +0.505431,0.000000,0.000000,0.862867 +0.504528,0.000000,0.000000,0.863396 +0.503623,0.000000,0.000000,0.863923 +0.502718,0.000000,0.000000,0.864450 +0.501813,0.000000,0.000000,0.864976 +0.500907,0.000000,0.000000,0.865501 +0.500000,0.000000,0.000000,0.866025 +0.499093,0.000000,0.000000,0.866549 +0.498185,0.000000,0.000000,0.867071 +0.497277,0.000000,0.000000,0.867592 +0.496368,0.000000,0.000000,0.868112 +0.495459,0.000000,0.000000,0.868632 +0.494549,0.000000,0.000000,0.869150 +0.493638,0.000000,0.000000,0.869667 +0.492727,0.000000,0.000000,0.870184 +0.491816,0.000000,0.000000,0.870699 +0.490904,0.000000,0.000000,0.871214 +0.489991,0.000000,0.000000,0.871727 +0.489078,0.000000,0.000000,0.872240 +0.488164,0.000000,0.000000,0.872752 +0.487250,0.000000,0.000000,0.873262 +0.486335,0.000000,0.000000,0.873772 +0.485420,0.000000,0.000000,0.874281 +0.484504,0.000000,0.000000,0.874789 +0.483588,0.000000,0.000000,0.875296 +0.482671,0.000000,0.000000,0.875802 +0.481754,0.000000,0.000000,0.876307 +0.480836,0.000000,0.000000,0.876811 +0.479917,0.000000,0.000000,0.877314 +0.478998,0.000000,0.000000,0.877816 +0.478079,0.000000,0.000000,0.878317 +0.477159,0.000000,0.000000,0.878817 +0.476238,0.000000,0.000000,0.879316 +0.475317,0.000000,0.000000,0.879815 +0.474396,0.000000,0.000000,0.880312 +0.473473,0.000000,0.000000,0.880808 +0.472551,0.000000,0.000000,0.881303 +0.471628,0.000000,0.000000,0.881798 +0.470704,0.000000,0.000000,0.882291 +0.469780,0.000000,0.000000,0.882784 +0.468855,0.000000,0.000000,0.883275 +0.467930,0.000000,0.000000,0.883766 +0.467004,0.000000,0.000000,0.884255 +0.466078,0.000000,0.000000,0.884744 +0.465151,0.000000,0.000000,0.885231 +0.464224,0.000000,0.000000,0.885718 +0.463296,0.000000,0.000000,0.886204 +0.462368,0.000000,0.000000,0.886688 +0.461439,0.000000,0.000000,0.887172 +0.460510,0.000000,0.000000,0.887655 +0.459580,0.000000,0.000000,0.888136 +0.458650,0.000000,0.000000,0.888617 +0.457719,0.000000,0.000000,0.889097 +0.456787,0.000000,0.000000,0.889576 +0.455856,0.000000,0.000000,0.890054 +0.454923,0.000000,0.000000,0.890531 +0.453990,0.000000,0.000000,0.891007 +0.453057,0.000000,0.000000,0.891481 +0.452123,0.000000,0.000000,0.891955 +0.451189,0.000000,0.000000,0.892428 +0.450254,0.000000,0.000000,0.892900 +0.449319,0.000000,0.000000,0.893371 +0.448383,0.000000,0.000000,0.893841 +0.447447,0.000000,0.000000,0.894310 +0.446510,0.000000,0.000000,0.894779 +0.445573,0.000000,0.000000,0.895246 +0.444635,0.000000,0.000000,0.895712 +0.443697,0.000000,0.000000,0.896177 +0.442758,0.000000,0.000000,0.896641 +0.441819,0.000000,0.000000,0.897104 +0.440879,0.000000,0.000000,0.897566 +0.439939,0.000000,0.000000,0.898028 +0.438999,0.000000,0.000000,0.898488 +0.438057,0.000000,0.000000,0.898947 +0.437116,0.000000,0.000000,0.899405 +0.436174,0.000000,0.000000,0.899863 +0.435231,0.000000,0.000000,0.900319 +0.434288,0.000000,0.000000,0.900774 +0.433345,0.000000,0.000000,0.901228 +0.432401,0.000000,0.000000,0.901682 +0.431456,0.000000,0.000000,0.902134 +0.430511,0.000000,0.000000,0.902585 +0.429566,0.000000,0.000000,0.903036 +0.428620,0.000000,0.000000,0.903485 +0.427673,0.000000,0.000000,0.903933 +0.426727,0.000000,0.000000,0.904381 +0.425779,0.000000,0.000000,0.904827 +0.424832,0.000000,0.000000,0.905272 +0.423883,0.000000,0.000000,0.905717 +0.422935,0.000000,0.000000,0.906160 +0.421985,0.000000,0.000000,0.906603 +0.421036,0.000000,0.000000,0.907044 +0.420086,0.000000,0.000000,0.907484 +0.419135,0.000000,0.000000,0.907924 +0.418184,0.000000,0.000000,0.908362 +0.417233,0.000000,0.000000,0.908800 +0.416281,0.000000,0.000000,0.909236 +0.415328,0.000000,0.000000,0.909672 +0.414376,0.000000,0.000000,0.910106 +0.413422,0.000000,0.000000,0.910539 +0.412469,0.000000,0.000000,0.910972 +0.411514,0.000000,0.000000,0.911403 +0.410560,0.000000,0.000000,0.911834 +0.409605,0.000000,0.000000,0.912263 +0.408649,0.000000,0.000000,0.912692 +0.407693,0.000000,0.000000,0.913119 +0.406737,0.000000,0.000000,0.913545 +0.405780,0.000000,0.000000,0.913971 +0.404822,0.000000,0.000000,0.914395 +0.403865,0.000000,0.000000,0.914819 +0.402906,0.000000,0.000000,0.915241 +0.401948,0.000000,0.000000,0.915663 +0.400989,0.000000,0.000000,0.916083 +0.400029,0.000000,0.000000,0.916502 +0.399069,0.000000,0.000000,0.916921 +0.398109,0.000000,0.000000,0.917338 +0.397148,0.000000,0.000000,0.917755 +0.396187,0.000000,0.000000,0.918170 +0.395225,0.000000,0.000000,0.918584 +0.394263,0.000000,0.000000,0.918998 +0.393300,0.000000,0.000000,0.919410 +0.392337,0.000000,0.000000,0.919821 +0.391374,0.000000,0.000000,0.920232 +0.390410,0.000000,0.000000,0.920641 +0.389445,0.000000,0.000000,0.921050 +0.388481,0.000000,0.000000,0.921457 +0.387516,0.000000,0.000000,0.921863 +0.386550,0.000000,0.000000,0.922268 +0.385584,0.000000,0.000000,0.922673 +0.384618,0.000000,0.000000,0.923076 +0.383651,0.000000,0.000000,0.923478 +0.382683,0.000000,0.000000,0.923880 +0.381716,0.000000,0.000000,0.924280 +0.380748,0.000000,0.000000,0.924679 +0.379779,0.000000,0.000000,0.925077 +0.378810,0.000000,0.000000,0.925474 +0.377841,0.000000,0.000000,0.925871 +0.376871,0.000000,0.000000,0.926266 +0.375901,0.000000,0.000000,0.926660 +0.374930,0.000000,0.000000,0.927053 +0.373959,0.000000,0.000000,0.927445 +0.372988,0.000000,0.000000,0.927836 +0.372016,0.000000,0.000000,0.928226 +0.371044,0.000000,0.000000,0.928615 +0.370071,0.000000,0.000000,0.929003 +0.369098,0.000000,0.000000,0.929390 +0.368125,0.000000,0.000000,0.929776 +0.367151,0.000000,0.000000,0.930161 +0.366176,0.000000,0.000000,0.930545 +0.365202,0.000000,0.000000,0.930928 +0.364227,0.000000,0.000000,0.931310 +0.363251,0.000000,0.000000,0.931691 +0.362275,0.000000,0.000000,0.932071 +0.361299,0.000000,0.000000,0.932450 +0.360322,0.000000,0.000000,0.932828 +0.359345,0.000000,0.000000,0.933205 +0.358368,0.000000,0.000000,0.933580 +0.357390,0.000000,0.000000,0.933955 +0.356412,0.000000,0.000000,0.934329 +0.355433,0.000000,0.000000,0.934702 +0.354454,0.000000,0.000000,0.935073 +0.353475,0.000000,0.000000,0.935444 +0.352495,0.000000,0.000000,0.935814 +0.351515,0.000000,0.000000,0.936182 +0.350534,0.000000,0.000000,0.936550 +0.349553,0.000000,0.000000,0.936916 +0.348572,0.000000,0.000000,0.937282 +0.347590,0.000000,0.000000,0.937646 +0.346608,0.000000,0.000000,0.938010 +0.345626,0.000000,0.000000,0.938372 +0.344643,0.000000,0.000000,0.938734 +0.343660,0.000000,0.000000,0.939094 +0.342676,0.000000,0.000000,0.939454 +0.341692,0.000000,0.000000,0.939812 +0.340708,0.000000,0.000000,0.940169 +0.339723,0.000000,0.000000,0.940526 +0.338738,0.000000,0.000000,0.940881 +0.337752,0.000000,0.000000,0.941235 +0.336767,0.000000,0.000000,0.941588 +0.335780,0.000000,0.000000,0.941940 +0.334794,0.000000,0.000000,0.942291 +0.333807,0.000000,0.000000,0.942641 +0.332820,0.000000,0.000000,0.942991 +0.331832,0.000000,0.000000,0.943339 +0.330844,0.000000,0.000000,0.943686 +0.329855,0.000000,0.000000,0.944031 +0.328867,0.000000,0.000000,0.944376 +0.327878,0.000000,0.000000,0.944720 +0.326888,0.000000,0.000000,0.945063 +0.325898,0.000000,0.000000,0.945405 +0.324908,0.000000,0.000000,0.945746 +0.323917,0.000000,0.000000,0.946085 +0.322927,0.000000,0.000000,0.946424 +0.321935,0.000000,0.000000,0.946762 +0.320944,0.000000,0.000000,0.947098 +0.319952,0.000000,0.000000,0.947434 +0.318959,0.000000,0.000000,0.947768 +0.317967,0.000000,0.000000,0.948102 +0.316974,0.000000,0.000000,0.948434 +0.315980,0.000000,0.000000,0.948766 +0.314987,0.000000,0.000000,0.949096 +0.313992,0.000000,0.000000,0.949425 +0.312998,0.000000,0.000000,0.949754 +0.312003,0.000000,0.000000,0.950081 +0.311008,0.000000,0.000000,0.950407 +0.310013,0.000000,0.000000,0.950732 +0.309017,0.000000,0.000000,0.951057 +0.308021,0.000000,0.000000,0.951380 +0.307024,0.000000,0.000000,0.951702 +0.306028,0.000000,0.000000,0.952023 +0.305031,0.000000,0.000000,0.952343 +0.304033,0.000000,0.000000,0.952661 +0.303035,0.000000,0.000000,0.952979 +0.302037,0.000000,0.000000,0.953296 +0.301039,0.000000,0.000000,0.953612 +0.300040,0.000000,0.000000,0.953927 +0.299041,0.000000,0.000000,0.954240 +0.298041,0.000000,0.000000,0.954553 +0.297042,0.000000,0.000000,0.954865 +0.296041,0.000000,0.000000,0.955175 +0.295041,0.000000,0.000000,0.955485 +0.294040,0.000000,0.000000,0.955793 +0.293039,0.000000,0.000000,0.956100 +0.292038,0.000000,0.000000,0.956407 +0.291036,0.000000,0.000000,0.956712 +0.290034,0.000000,0.000000,0.957016 +0.289032,0.000000,0.000000,0.957319 +0.288029,0.000000,0.000000,0.957622 +0.287026,0.000000,0.000000,0.957923 +0.286023,0.000000,0.000000,0.958223 +0.285019,0.000000,0.000000,0.958522 +0.284015,0.000000,0.000000,0.958820 +0.283011,0.000000,0.000000,0.959117 +0.282007,0.000000,0.000000,0.959412 +0.281002,0.000000,0.000000,0.959707 +0.279997,0.000000,0.000000,0.960001 +0.278991,0.000000,0.000000,0.960294 +0.277985,0.000000,0.000000,0.960585 +0.276979,0.000000,0.000000,0.960876 +0.275973,0.000000,0.000000,0.961165 +0.274966,0.000000,0.000000,0.961454 +0.273959,0.000000,0.000000,0.961741 +0.272952,0.000000,0.000000,0.962028 +0.271944,0.000000,0.000000,0.962313 +0.270936,0.000000,0.000000,0.962597 +0.269928,0.000000,0.000000,0.962880 +0.268920,0.000000,0.000000,0.963163 +0.267911,0.000000,0.000000,0.963444 +0.266902,0.000000,0.000000,0.963724 +0.265893,0.000000,0.000000,0.964003 +0.264883,0.000000,0.000000,0.964281 +0.263873,0.000000,0.000000,0.964557 +0.262863,0.000000,0.000000,0.964833 +0.261852,0.000000,0.000000,0.965108 +0.260842,0.000000,0.000000,0.965382 +0.259830,0.000000,0.000000,0.965654 +0.258819,0.000000,0.000000,0.965926 +0.257807,0.000000,0.000000,0.966196 +0.256795,0.000000,0.000000,0.966466 +0.255783,0.000000,0.000000,0.966734 +0.254771,0.000000,0.000000,0.967001 +0.253758,0.000000,0.000000,0.967268 +0.252745,0.000000,0.000000,0.967533 +0.251732,0.000000,0.000000,0.967797 +0.250718,0.000000,0.000000,0.968060 +0.249704,0.000000,0.000000,0.968322 +0.248690,0.000000,0.000000,0.968583 +0.247675,0.000000,0.000000,0.968843 +0.246661,0.000000,0.000000,0.969102 +0.245646,0.000000,0.000000,0.969360 +0.244631,0.000000,0.000000,0.969616 +0.243615,0.000000,0.000000,0.969872 +0.242599,0.000000,0.000000,0.970127 +0.241583,0.000000,0.000000,0.970380 +0.240567,0.000000,0.000000,0.970633 +0.239550,0.000000,0.000000,0.970884 +0.238533,0.000000,0.000000,0.971134 +0.237516,0.000000,0.000000,0.971384 +0.236499,0.000000,0.000000,0.971632 +0.235481,0.000000,0.000000,0.971879 +0.234463,0.000000,0.000000,0.972125 +0.233445,0.000000,0.000000,0.972370 +0.232427,0.000000,0.000000,0.972614 +0.231408,0.000000,0.000000,0.972857 +0.230389,0.000000,0.000000,0.973099 +0.229370,0.000000,0.000000,0.973339 +0.228351,0.000000,0.000000,0.973579 +0.227331,0.000000,0.000000,0.973817 +0.226311,0.000000,0.000000,0.974055 +0.225291,0.000000,0.000000,0.974291 +0.224271,0.000000,0.000000,0.974527 +0.223250,0.000000,0.000000,0.974761 +0.222229,0.000000,0.000000,0.974994 +0.221208,0.000000,0.000000,0.975227 +0.220187,0.000000,0.000000,0.975458 +0.219165,0.000000,0.000000,0.975688 +0.218143,0.000000,0.000000,0.975917 +0.217121,0.000000,0.000000,0.976145 +0.216099,0.000000,0.000000,0.976371 +0.215076,0.000000,0.000000,0.976597 +0.214053,0.000000,0.000000,0.976822 +0.213030,0.000000,0.000000,0.977046 +0.212007,0.000000,0.000000,0.977268 +0.210984,0.000000,0.000000,0.977490 +0.209960,0.000000,0.000000,0.977710 +0.208936,0.000000,0.000000,0.977929 +0.207912,0.000000,0.000000,0.978148 +0.206887,0.000000,0.000000,0.978365 +0.205863,0.000000,0.000000,0.978581 +0.204838,0.000000,0.000000,0.978796 +0.203813,0.000000,0.000000,0.979010 +0.202787,0.000000,0.000000,0.979223 +0.201762,0.000000,0.000000,0.979435 +0.200736,0.000000,0.000000,0.979645 +0.199710,0.000000,0.000000,0.979855 +0.198684,0.000000,0.000000,0.980064 +0.197657,0.000000,0.000000,0.980271 +0.196631,0.000000,0.000000,0.980478 +0.195604,0.000000,0.000000,0.980683 +0.194577,0.000000,0.000000,0.980887 +0.193549,0.000000,0.000000,0.981091 +0.192522,0.000000,0.000000,0.981293 +0.191494,0.000000,0.000000,0.981494 +0.190466,0.000000,0.000000,0.981694 +0.189438,0.000000,0.000000,0.981893 +0.188410,0.000000,0.000000,0.982090 +0.187381,0.000000,0.000000,0.982287 +0.186353,0.000000,0.000000,0.982483 +0.185324,0.000000,0.000000,0.982678 +0.184294,0.000000,0.000000,0.982871 +0.183265,0.000000,0.000000,0.983064 +0.182236,0.000000,0.000000,0.983255 +0.181206,0.000000,0.000000,0.983445 +0.180176,0.000000,0.000000,0.983634 +0.179146,0.000000,0.000000,0.983823 +0.178115,0.000000,0.000000,0.984010 +0.177085,0.000000,0.000000,0.984196 +0.176054,0.000000,0.000000,0.984381 +0.175023,0.000000,0.000000,0.984564 +0.173992,0.000000,0.000000,0.984747 +0.172961,0.000000,0.000000,0.984929 +0.171929,0.000000,0.000000,0.985109 +0.170897,0.000000,0.000000,0.985289 +0.169866,0.000000,0.000000,0.985467 +0.168833,0.000000,0.000000,0.985645 +0.167801,0.000000,0.000000,0.985821 +0.166769,0.000000,0.000000,0.985996 +0.165736,0.000000,0.000000,0.986170 +0.164703,0.000000,0.000000,0.986343 +0.163670,0.000000,0.000000,0.986515 +0.162637,0.000000,0.000000,0.986686 +0.161604,0.000000,0.000000,0.986856 +0.160570,0.000000,0.000000,0.987024 +0.159537,0.000000,0.000000,0.987192 +0.158503,0.000000,0.000000,0.987359 +0.157469,0.000000,0.000000,0.987524 +0.156434,0.000000,0.000000,0.987688 +0.155400,0.000000,0.000000,0.987852 +0.154366,0.000000,0.000000,0.988014 +0.153331,0.000000,0.000000,0.988175 +0.152296,0.000000,0.000000,0.988335 +0.151261,0.000000,0.000000,0.988494 +0.150226,0.000000,0.000000,0.988652 +0.149190,0.000000,0.000000,0.988809 +0.148155,0.000000,0.000000,0.988964 +0.147119,0.000000,0.000000,0.989119 +0.146083,0.000000,0.000000,0.989272 +0.145047,0.000000,0.000000,0.989425 +0.144011,0.000000,0.000000,0.989576 +0.142974,0.000000,0.000000,0.989726 +0.141938,0.000000,0.000000,0.989876 +0.140901,0.000000,0.000000,0.990024 +0.139864,0.000000,0.000000,0.990171 +0.138827,0.000000,0.000000,0.990317 +0.137790,0.000000,0.000000,0.990461 +0.136753,0.000000,0.000000,0.990605 +0.135716,0.000000,0.000000,0.990748 +0.134678,0.000000,0.000000,0.990889 +0.133640,0.000000,0.000000,0.991030 +0.132602,0.000000,0.000000,0.991169 +0.131564,0.000000,0.000000,0.991308 +0.130526,0.000000,0.000000,0.991445 +0.129488,0.000000,0.000000,0.991581 +0.128449,0.000000,0.000000,0.991716 +0.127411,0.000000,0.000000,0.991850 +0.126372,0.000000,0.000000,0.991983 +0.125333,0.000000,0.000000,0.992115 +0.124294,0.000000,0.000000,0.992245 +0.123255,0.000000,0.000000,0.992375 +0.122216,0.000000,0.000000,0.992504 +0.121176,0.000000,0.000000,0.992631 +0.120137,0.000000,0.000000,0.992757 +0.119097,0.000000,0.000000,0.992883 +0.118057,0.000000,0.000000,0.993007 +0.117017,0.000000,0.000000,0.993130 +0.115977,0.000000,0.000000,0.993252 +0.114937,0.000000,0.000000,0.993373 +0.113897,0.000000,0.000000,0.993493 +0.112856,0.000000,0.000000,0.993611 +0.111816,0.000000,0.000000,0.993729 +0.110775,0.000000,0.000000,0.993845 +0.109734,0.000000,0.000000,0.993961 +0.108693,0.000000,0.000000,0.994075 +0.107652,0.000000,0.000000,0.994189 +0.106611,0.000000,0.000000,0.994301 +0.105570,0.000000,0.000000,0.994412 +0.104528,0.000000,0.000000,0.994522 +0.103487,0.000000,0.000000,0.994631 +0.102445,0.000000,0.000000,0.994739 +0.101404,0.000000,0.000000,0.994845 +0.100362,0.000000,0.000000,0.994951 +0.099320,0.000000,0.000000,0.995056 +0.098278,0.000000,0.000000,0.995159 +0.097235,0.000000,0.000000,0.995261 +0.096193,0.000000,0.000000,0.995363 +0.095151,0.000000,0.000000,0.995463 +0.094108,0.000000,0.000000,0.995562 +0.093066,0.000000,0.000000,0.995660 +0.092023,0.000000,0.000000,0.995757 +0.090980,0.000000,0.000000,0.995853 +0.089937,0.000000,0.000000,0.995947 +0.088894,0.000000,0.000000,0.996041 +0.087851,0.000000,0.000000,0.996134 +0.086808,0.000000,0.000000,0.996225 +0.085765,0.000000,0.000000,0.996315 +0.084721,0.000000,0.000000,0.996405 +0.083678,0.000000,0.000000,0.996493 +0.082634,0.000000,0.000000,0.996580 +0.081591,0.000000,0.000000,0.996666 +0.080547,0.000000,0.000000,0.996751 +0.079503,0.000000,0.000000,0.996835 +0.078459,0.000000,0.000000,0.996917 +0.077415,0.000000,0.000000,0.996999 +0.076371,0.000000,0.000000,0.997079 +0.075327,0.000000,0.000000,0.997159 +0.074283,0.000000,0.000000,0.997237 +0.073238,0.000000,0.000000,0.997314 +0.072194,0.000000,0.000000,0.997391 +0.071149,0.000000,0.000000,0.997466 +0.070105,0.000000,0.000000,0.997540 +0.069060,0.000000,0.000000,0.997613 +0.068015,0.000000,0.000000,0.997684 +0.066970,0.000000,0.000000,0.997755 +0.065926,0.000000,0.000000,0.997825 +0.064881,0.000000,0.000000,0.997893 +0.063836,0.000000,0.000000,0.997960 +0.062791,0.000000,0.000000,0.998027 +0.061745,0.000000,0.000000,0.998092 +0.060700,0.000000,0.000000,0.998156 +0.059655,0.000000,0.000000,0.998219 +0.058609,0.000000,0.000000,0.998281 +0.057564,0.000000,0.000000,0.998342 +0.056519,0.000000,0.000000,0.998402 +0.055473,0.000000,0.000000,0.998460 +0.054427,0.000000,0.000000,0.998518 +0.053382,0.000000,0.000000,0.998574 +0.052336,0.000000,0.000000,0.998630 +0.051290,0.000000,0.000000,0.998684 +0.050244,0.000000,0.000000,0.998737 +0.049198,0.000000,0.000000,0.998789 +0.048152,0.000000,0.000000,0.998840 +0.047106,0.000000,0.000000,0.998890 +0.046060,0.000000,0.000000,0.998939 +0.045014,0.000000,0.000000,0.998986 +0.043968,0.000000,0.000000,0.999033 +0.042922,0.000000,0.000000,0.999078 +0.041876,0.000000,0.000000,0.999123 +0.040829,0.000000,0.000000,0.999166 +0.039783,0.000000,0.000000,0.999208 +0.038737,0.000000,0.000000,0.999249 +0.037690,0.000000,0.000000,0.999289 +0.036644,0.000000,0.000000,0.999328 +0.035597,0.000000,0.000000,0.999366 +0.034551,0.000000,0.000000,0.999403 +0.033504,0.000000,0.000000,0.999439 +0.032457,0.000000,0.000000,0.999473 +0.031411,0.000000,0.000000,0.999507 +0.030364,0.000000,0.000000,0.999539 +0.029317,0.000000,0.000000,0.999570 +0.028271,0.000000,0.000000,0.999600 +0.027224,0.000000,0.000000,0.999629 +0.026177,0.000000,0.000000,0.999657 +0.025130,0.000000,0.000000,0.999684 +0.024083,0.000000,0.000000,0.999710 +0.023036,0.000000,0.000000,0.999735 +0.021989,0.000000,0.000000,0.999758 +0.020942,0.000000,0.000000,0.999781 +0.019895,0.000000,0.000000,0.999802 +0.018848,0.000000,0.000000,0.999822 +0.017801,0.000000,0.000000,0.999842 +0.016754,0.000000,0.000000,0.999860 +0.015707,0.000000,0.000000,0.999877 +0.014660,0.000000,0.000000,0.999893 +0.013613,0.000000,0.000000,0.999907 +0.012566,0.000000,0.000000,0.999921 +0.011519,0.000000,0.000000,0.999934 +0.010472,0.000000,0.000000,0.999945 +0.009425,0.000000,0.000000,0.999956 +0.008377,0.000000,0.000000,0.999965 +0.007330,0.000000,0.000000,0.999973 +0.006283,0.000000,0.000000,0.999980 +0.005236,0.000000,0.000000,0.999986 +0.004189,0.000000,0.000000,0.999991 +0.003142,0.000000,0.000000,0.999995 +0.002094,0.000000,0.000000,0.999998 +0.001047,0.000000,0.000000,0.999999 +0.000000,0.000000,0.000000,1.000000 +-0.001047,-0.000000,0.000000,0.999999 +-0.002094,-0.000000,0.000000,0.999998 +-0.003142,-0.000000,0.000000,0.999995 +-0.004189,-0.000000,0.000000,0.999991 +-0.005236,-0.000000,0.000000,0.999986 +-0.006283,-0.000000,0.000000,0.999980 +-0.007330,-0.000000,0.000000,0.999973 +-0.008377,-0.000000,0.000000,0.999965 +-0.009425,-0.000000,0.000000,0.999956 +-0.010472,-0.000000,0.000000,0.999945 +-0.011519,-0.000000,0.000000,0.999934 +-0.012566,-0.000000,0.000000,0.999921 +-0.013613,-0.000000,0.000000,0.999907 +-0.014660,-0.000000,0.000000,0.999893 +-0.015707,-0.000000,0.000000,0.999877 +-0.016754,-0.000000,0.000000,0.999860 +-0.017801,-0.000000,0.000000,0.999842 +-0.018848,-0.000000,0.000000,0.999822 +-0.019895,-0.000000,0.000000,0.999802 +-0.020942,-0.000000,0.000000,0.999781 +-0.021989,-0.000000,0.000000,0.999758 +-0.023036,-0.000000,0.000000,0.999735 +-0.024083,-0.000000,0.000000,0.999710 +-0.025130,-0.000000,0.000000,0.999684 +-0.026177,-0.000000,0.000000,0.999657 +-0.027224,-0.000000,0.000000,0.999629 +-0.028271,-0.000000,0.000000,0.999600 +-0.029317,-0.000000,0.000000,0.999570 +-0.030364,-0.000000,0.000000,0.999539 +-0.031411,-0.000000,0.000000,0.999507 +-0.032457,-0.000000,0.000000,0.999473 +-0.033504,-0.000000,0.000000,0.999439 +-0.034551,-0.000000,0.000000,0.999403 +-0.035597,-0.000000,0.000000,0.999366 +-0.036644,-0.000000,0.000000,0.999328 +-0.037690,-0.000000,0.000000,0.999289 +-0.038737,-0.000000,0.000000,0.999249 +-0.039783,-0.000000,0.000000,0.999208 +-0.040829,-0.000000,0.000000,0.999166 +-0.041876,-0.000000,0.000000,0.999123 +-0.042922,-0.000000,0.000000,0.999078 +-0.043968,-0.000000,0.000000,0.999033 +-0.045014,-0.000000,0.000000,0.998986 +-0.046060,-0.000000,0.000000,0.998939 +-0.047106,-0.000000,0.000000,0.998890 +-0.048152,-0.000000,0.000000,0.998840 +-0.049198,-0.000000,0.000000,0.998789 +-0.050244,-0.000000,0.000000,0.998737 +-0.051290,-0.000000,0.000000,0.998684 +-0.052336,-0.000000,0.000000,0.998630 +-0.053382,-0.000000,0.000000,0.998574 +-0.054427,-0.000000,0.000000,0.998518 +-0.055473,-0.000000,0.000000,0.998460 +-0.056519,-0.000000,0.000000,0.998402 +-0.057564,-0.000000,0.000000,0.998342 +-0.058609,-0.000000,0.000000,0.998281 +-0.059655,-0.000000,0.000000,0.998219 +-0.060700,-0.000000,0.000000,0.998156 +-0.061745,-0.000000,0.000000,0.998092 +-0.062791,-0.000000,0.000000,0.998027 +-0.063836,-0.000000,0.000000,0.997960 +-0.064881,-0.000000,0.000000,0.997893 +-0.065926,-0.000000,0.000000,0.997825 +-0.066970,-0.000000,0.000000,0.997755 +-0.068015,-0.000000,0.000000,0.997684 +-0.069060,-0.000000,0.000000,0.997613 +-0.070105,-0.000000,0.000000,0.997540 +-0.071149,-0.000000,0.000000,0.997466 +-0.072194,-0.000000,0.000000,0.997391 +-0.073238,-0.000000,0.000000,0.997314 +-0.074283,-0.000000,0.000000,0.997237 +-0.075327,-0.000000,0.000000,0.997159 +-0.076371,-0.000000,0.000000,0.997079 +-0.077415,-0.000000,0.000000,0.996999 +-0.078459,-0.000000,0.000000,0.996917 +-0.079503,-0.000000,0.000000,0.996835 +-0.080547,-0.000000,0.000000,0.996751 +-0.081591,-0.000000,0.000000,0.996666 +-0.082634,-0.000000,0.000000,0.996580 +-0.083678,-0.000000,0.000000,0.996493 +-0.084721,-0.000000,0.000000,0.996405 +-0.085765,-0.000000,0.000000,0.996315 +-0.086808,-0.000000,0.000000,0.996225 +-0.087851,-0.000000,0.000000,0.996134 +-0.088894,-0.000000,0.000000,0.996041 +-0.089937,-0.000000,0.000000,0.995947 +-0.090980,-0.000000,0.000000,0.995853 +-0.092023,-0.000000,0.000000,0.995757 +-0.093066,-0.000000,0.000000,0.995660 +-0.094108,-0.000000,0.000000,0.995562 +-0.095151,-0.000000,0.000000,0.995463 +-0.096193,-0.000000,0.000000,0.995363 +-0.097235,-0.000000,0.000000,0.995261 +-0.098278,-0.000000,0.000000,0.995159 +-0.099320,-0.000000,0.000000,0.995056 +-0.100362,-0.000000,0.000000,0.994951 +-0.101404,-0.000000,0.000000,0.994845 +-0.102445,-0.000000,0.000000,0.994739 +-0.103487,-0.000000,0.000000,0.994631 +-0.104528,-0.000000,0.000000,0.994522 +-0.105570,-0.000000,0.000000,0.994412 +-0.106611,-0.000000,0.000000,0.994301 +-0.107652,-0.000000,0.000000,0.994189 +-0.108693,-0.000000,0.000000,0.994075 +-0.109734,-0.000000,0.000000,0.993961 +-0.110775,-0.000000,0.000000,0.993845 +-0.111816,-0.000000,0.000000,0.993729 +-0.112856,-0.000000,0.000000,0.993611 +-0.113897,-0.000000,0.000000,0.993493 +-0.114937,-0.000000,0.000000,0.993373 +-0.115977,-0.000000,0.000000,0.993252 +-0.117017,-0.000000,0.000000,0.993130 +-0.118057,-0.000000,0.000000,0.993007 +-0.119097,-0.000000,0.000000,0.992883 +-0.120137,-0.000000,0.000000,0.992757 +-0.121176,-0.000000,0.000000,0.992631 +-0.122216,-0.000000,0.000000,0.992504 +-0.123255,-0.000000,0.000000,0.992375 +-0.124294,-0.000000,0.000000,0.992245 +-0.125333,-0.000000,0.000000,0.992115 +-0.126372,-0.000000,0.000000,0.991983 +-0.127411,-0.000000,0.000000,0.991850 +-0.128449,-0.000000,0.000000,0.991716 +-0.129488,-0.000000,0.000000,0.991581 +-0.130526,-0.000000,0.000000,0.991445 +-0.131564,-0.000000,0.000000,0.991308 +-0.132602,-0.000000,0.000000,0.991169 +-0.133640,-0.000000,0.000000,0.991030 +-0.134678,-0.000000,0.000000,0.990889 +-0.135716,-0.000000,0.000000,0.990748 +-0.136753,-0.000000,0.000000,0.990605 +-0.137790,-0.000000,0.000000,0.990461 +-0.138827,-0.000000,0.000000,0.990317 +-0.139864,-0.000000,0.000000,0.990171 +-0.140901,-0.000000,0.000000,0.990024 +-0.141938,-0.000000,0.000000,0.989876 +-0.142974,-0.000000,0.000000,0.989726 +-0.144011,-0.000000,0.000000,0.989576 +-0.145047,-0.000000,0.000000,0.989425 +-0.146083,-0.000000,0.000000,0.989272 +-0.147119,-0.000000,0.000000,0.989119 +-0.148155,-0.000000,0.000000,0.988964 +-0.149190,-0.000000,0.000000,0.988809 +-0.150226,-0.000000,0.000000,0.988652 +-0.151261,-0.000000,0.000000,0.988494 +-0.152296,-0.000000,0.000000,0.988335 +-0.153331,-0.000000,0.000000,0.988175 +-0.154366,-0.000000,0.000000,0.988014 +-0.155400,-0.000000,0.000000,0.987852 +-0.156434,-0.000000,0.000000,0.987688 +-0.157469,-0.000000,0.000000,0.987524 +-0.158503,-0.000000,0.000000,0.987359 +-0.159537,-0.000000,0.000000,0.987192 +-0.160570,-0.000000,0.000000,0.987024 +-0.161604,-0.000000,0.000000,0.986856 +-0.162637,-0.000000,0.000000,0.986686 +-0.163670,-0.000000,0.000000,0.986515 +-0.164703,-0.000000,0.000000,0.986343 +-0.165736,-0.000000,0.000000,0.986170 +-0.166769,-0.000000,0.000000,0.985996 +-0.167801,-0.000000,0.000000,0.985821 +-0.168833,-0.000000,0.000000,0.985645 +-0.169866,-0.000000,0.000000,0.985467 +-0.170897,-0.000000,0.000000,0.985289 +-0.171929,-0.000000,0.000000,0.985109 +-0.172961,-0.000000,0.000000,0.984929 +-0.173992,-0.000000,0.000000,0.984747 +-0.175023,-0.000000,0.000000,0.984564 +-0.176054,-0.000000,0.000000,0.984381 +-0.177085,-0.000000,0.000000,0.984196 +-0.178115,-0.000000,0.000000,0.984010 +-0.179146,-0.000000,0.000000,0.983823 +-0.180176,-0.000000,0.000000,0.983634 +-0.181206,-0.000000,0.000000,0.983445 +-0.182236,-0.000000,0.000000,0.983255 +-0.183265,-0.000000,0.000000,0.983064 +-0.184294,-0.000000,0.000000,0.982871 +-0.185324,-0.000000,0.000000,0.982678 +-0.186353,-0.000000,0.000000,0.982483 +-0.187381,-0.000000,0.000000,0.982287 +-0.188410,-0.000000,0.000000,0.982090 +-0.189438,-0.000000,0.000000,0.981893 +-0.190466,-0.000000,0.000000,0.981694 +-0.191494,-0.000000,0.000000,0.981494 +-0.192522,-0.000000,0.000000,0.981293 +-0.193549,-0.000000,0.000000,0.981091 +-0.194577,-0.000000,0.000000,0.980887 +-0.195604,-0.000000,0.000000,0.980683 +-0.196631,-0.000000,0.000000,0.980478 +-0.197657,-0.000000,0.000000,0.980271 +-0.198684,-0.000000,0.000000,0.980064 +-0.199710,-0.000000,0.000000,0.979855 +-0.200736,-0.000000,0.000000,0.979645 +-0.201762,-0.000000,0.000000,0.979435 +-0.202787,-0.000000,0.000000,0.979223 +-0.203813,-0.000000,0.000000,0.979010 +-0.204838,-0.000000,0.000000,0.978796 +-0.205863,-0.000000,0.000000,0.978581 +-0.206887,-0.000000,0.000000,0.978365 +-0.207912,-0.000000,0.000000,0.978148 +-0.208936,-0.000000,0.000000,0.977929 +-0.209960,-0.000000,0.000000,0.977710 +-0.210984,-0.000000,0.000000,0.977490 +-0.212007,-0.000000,0.000000,0.977268 +-0.213030,-0.000000,0.000000,0.977046 +-0.214053,-0.000000,0.000000,0.976822 +-0.215076,-0.000000,0.000000,0.976597 +-0.216099,-0.000000,0.000000,0.976371 +-0.217121,-0.000000,0.000000,0.976145 +-0.218143,-0.000000,0.000000,0.975917 +-0.219165,-0.000000,0.000000,0.975688 +-0.220187,-0.000000,0.000000,0.975458 +-0.221208,-0.000000,0.000000,0.975227 +-0.222229,-0.000000,0.000000,0.974994 +-0.223250,-0.000000,0.000000,0.974761 +-0.224271,-0.000000,0.000000,0.974527 +-0.225291,-0.000000,0.000000,0.974291 +-0.226311,-0.000000,0.000000,0.974055 +-0.227331,-0.000000,0.000000,0.973817 +-0.228351,-0.000000,0.000000,0.973579 +-0.229370,-0.000000,0.000000,0.973339 +-0.230389,-0.000000,0.000000,0.973099 +-0.231408,-0.000000,0.000000,0.972857 +-0.232427,-0.000000,0.000000,0.972614 +-0.233445,-0.000000,0.000000,0.972370 +-0.234463,-0.000000,0.000000,0.972125 +-0.235481,-0.000000,0.000000,0.971879 +-0.236499,-0.000000,0.000000,0.971632 +-0.237516,-0.000000,0.000000,0.971384 +-0.238533,-0.000000,0.000000,0.971134 +-0.239550,-0.000000,0.000000,0.970884 +-0.240567,-0.000000,0.000000,0.970633 +-0.241583,-0.000000,0.000000,0.970380 +-0.242599,-0.000000,0.000000,0.970127 +-0.243615,-0.000000,0.000000,0.969872 +-0.244631,-0.000000,0.000000,0.969616 +-0.245646,-0.000000,0.000000,0.969360 +-0.246661,-0.000000,0.000000,0.969102 +-0.247675,-0.000000,0.000000,0.968843 +-0.248690,-0.000000,0.000000,0.968583 +-0.249704,-0.000000,0.000000,0.968322 +-0.250718,-0.000000,0.000000,0.968060 +-0.251732,-0.000000,0.000000,0.967797 +-0.252745,-0.000000,0.000000,0.967533 +-0.253758,-0.000000,0.000000,0.967268 +-0.254771,-0.000000,0.000000,0.967001 +-0.255783,-0.000000,0.000000,0.966734 +-0.256795,-0.000000,0.000000,0.966466 +-0.257807,-0.000000,0.000000,0.966196 +-0.258819,-0.000000,0.000000,0.965926 +-0.259830,-0.000000,0.000000,0.965654 +-0.260842,-0.000000,0.000000,0.965382 +-0.261852,-0.000000,0.000000,0.965108 +-0.262863,-0.000000,0.000000,0.964833 +-0.263873,-0.000000,0.000000,0.964557 +-0.264883,-0.000000,0.000000,0.964281 +-0.265893,-0.000000,0.000000,0.964003 +-0.266902,-0.000000,0.000000,0.963724 +-0.267911,-0.000000,0.000000,0.963444 +-0.268920,-0.000000,0.000000,0.963163 +-0.269928,-0.000000,0.000000,0.962880 +-0.270936,-0.000000,0.000000,0.962597 +-0.271944,-0.000000,0.000000,0.962313 +-0.272952,-0.000000,0.000000,0.962028 +-0.273959,-0.000000,0.000000,0.961741 +-0.274966,-0.000000,0.000000,0.961454 +-0.275973,-0.000000,0.000000,0.961165 +-0.276979,-0.000000,0.000000,0.960876 +-0.277985,-0.000000,0.000000,0.960585 +-0.278991,-0.000000,0.000000,0.960294 +-0.279997,-0.000000,0.000000,0.960001 +-0.281002,-0.000000,0.000000,0.959707 +-0.282007,-0.000000,0.000000,0.959412 +-0.283011,-0.000000,0.000000,0.959117 +-0.284015,-0.000000,0.000000,0.958820 +-0.285019,-0.000000,0.000000,0.958522 +-0.286023,-0.000000,0.000000,0.958223 +-0.287026,-0.000000,0.000000,0.957923 +-0.288029,-0.000000,0.000000,0.957622 +-0.289032,-0.000000,0.000000,0.957319 +-0.290034,-0.000000,0.000000,0.957016 +-0.291036,-0.000000,0.000000,0.956712 +-0.292038,-0.000000,0.000000,0.956407 +-0.293039,-0.000000,0.000000,0.956100 +-0.294040,-0.000000,0.000000,0.955793 +-0.295041,-0.000000,0.000000,0.955485 +-0.296041,-0.000000,0.000000,0.955175 +-0.297042,-0.000000,0.000000,0.954865 +-0.298041,-0.000000,0.000000,0.954553 +-0.299041,-0.000000,0.000000,0.954240 +-0.300040,-0.000000,0.000000,0.953927 +-0.301039,-0.000000,0.000000,0.953612 +-0.302037,-0.000000,0.000000,0.953296 +-0.303035,-0.000000,0.000000,0.952979 +-0.304033,-0.000000,0.000000,0.952661 +-0.305031,-0.000000,0.000000,0.952343 +-0.306028,-0.000000,0.000000,0.952023 +-0.307024,-0.000000,0.000000,0.951702 +-0.308021,-0.000000,0.000000,0.951380 +-0.309017,-0.000000,0.000000,0.951057 +-0.310013,-0.000000,0.000000,0.950732 +-0.311008,-0.000000,0.000000,0.950407 +-0.312003,-0.000000,0.000000,0.950081 +-0.312998,-0.000000,0.000000,0.949754 +-0.313992,-0.000000,0.000000,0.949425 +-0.314987,-0.000000,0.000000,0.949096 +-0.315980,-0.000000,0.000000,0.948766 +-0.316974,-0.000000,0.000000,0.948434 +-0.317967,-0.000000,0.000000,0.948102 +-0.318959,-0.000000,0.000000,0.947768 +-0.319952,-0.000000,0.000000,0.947434 +-0.320944,-0.000000,0.000000,0.947098 +-0.321935,-0.000000,0.000000,0.946762 +-0.322927,-0.000000,0.000000,0.946424 +-0.323917,-0.000000,0.000000,0.946085 +-0.324908,-0.000000,0.000000,0.945746 +-0.325898,-0.000000,0.000000,0.945405 +-0.326888,-0.000000,0.000000,0.945063 +-0.327878,-0.000000,0.000000,0.944720 +-0.328867,-0.000000,0.000000,0.944376 +-0.329855,-0.000000,0.000000,0.944031 +-0.330844,-0.000000,0.000000,0.943686 +-0.331832,-0.000000,0.000000,0.943339 +-0.332820,-0.000000,0.000000,0.942991 +-0.333807,-0.000000,0.000000,0.942641 +-0.334794,-0.000000,0.000000,0.942291 +-0.335780,-0.000000,0.000000,0.941940 +-0.336767,-0.000000,0.000000,0.941588 +-0.337752,-0.000000,0.000000,0.941235 +-0.338738,-0.000000,0.000000,0.940881 +-0.339723,-0.000000,0.000000,0.940526 +-0.340708,-0.000000,0.000000,0.940169 +-0.341692,-0.000000,0.000000,0.939812 +-0.342676,-0.000000,0.000000,0.939454 +-0.343660,-0.000000,0.000000,0.939094 +-0.344643,-0.000000,0.000000,0.938734 +-0.345626,-0.000000,0.000000,0.938372 +-0.346608,-0.000000,0.000000,0.938010 +-0.347590,-0.000000,0.000000,0.937646 +-0.348572,-0.000000,0.000000,0.937282 +-0.349553,-0.000000,0.000000,0.936916 +-0.350534,-0.000000,0.000000,0.936550 +-0.351515,-0.000000,0.000000,0.936182 +-0.352495,-0.000000,0.000000,0.935814 +-0.353475,-0.000000,0.000000,0.935444 +-0.354454,-0.000000,0.000000,0.935073 +-0.355433,-0.000000,0.000000,0.934702 +-0.356412,-0.000000,0.000000,0.934329 +-0.357390,-0.000000,0.000000,0.933955 +-0.358368,-0.000000,0.000000,0.933580 +-0.359345,-0.000000,0.000000,0.933205 +-0.360322,-0.000000,0.000000,0.932828 +-0.361299,-0.000000,0.000000,0.932450 +-0.362275,-0.000000,0.000000,0.932071 +-0.363251,-0.000000,0.000000,0.931691 +-0.364227,-0.000000,0.000000,0.931310 +-0.365202,-0.000000,0.000000,0.930928 +-0.366176,-0.000000,0.000000,0.930545 +-0.367151,-0.000000,0.000000,0.930161 +-0.368125,-0.000000,0.000000,0.929776 +-0.369098,-0.000000,0.000000,0.929390 +-0.370071,-0.000000,0.000000,0.929003 +-0.371044,-0.000000,0.000000,0.928615 +-0.372016,-0.000000,0.000000,0.928226 +-0.372988,-0.000000,0.000000,0.927836 +-0.373959,-0.000000,0.000000,0.927445 +-0.374930,-0.000000,0.000000,0.927053 +-0.375901,-0.000000,0.000000,0.926660 +-0.376871,-0.000000,0.000000,0.926266 +-0.377841,-0.000000,0.000000,0.925871 +-0.378810,-0.000000,0.000000,0.925474 +-0.379779,-0.000000,0.000000,0.925077 +-0.380748,-0.000000,0.000000,0.924679 +-0.381716,-0.000000,0.000000,0.924280 +-0.382683,-0.000000,0.000000,0.923880 +-0.383651,-0.000000,0.000000,0.923478 +-0.384618,-0.000000,0.000000,0.923076 +-0.385584,-0.000000,0.000000,0.922673 +-0.386550,-0.000000,0.000000,0.922268 +-0.387516,-0.000000,0.000000,0.921863 +-0.388481,-0.000000,0.000000,0.921457 +-0.389445,-0.000000,0.000000,0.921050 +-0.390410,-0.000000,0.000000,0.920641 +-0.391374,-0.000000,0.000000,0.920232 +-0.392337,-0.000000,0.000000,0.919821 +-0.393300,-0.000000,0.000000,0.919410 +-0.394263,-0.000000,0.000000,0.918998 +-0.395225,-0.000000,0.000000,0.918584 +-0.396187,-0.000000,0.000000,0.918170 +-0.397148,-0.000000,0.000000,0.917755 +-0.398109,-0.000000,0.000000,0.917338 +-0.399069,-0.000000,0.000000,0.916921 +-0.400029,-0.000000,0.000000,0.916502 +-0.400989,-0.000000,0.000000,0.916083 +-0.401948,-0.000000,0.000000,0.915663 +-0.402906,-0.000000,0.000000,0.915241 +-0.403865,-0.000000,0.000000,0.914819 +-0.404822,-0.000000,0.000000,0.914395 +-0.405780,-0.000000,0.000000,0.913971 +-0.406737,-0.000000,0.000000,0.913545 +-0.407693,-0.000000,0.000000,0.913119 +-0.408649,-0.000000,0.000000,0.912692 +-0.409605,-0.000000,0.000000,0.912263 +-0.410560,-0.000000,0.000000,0.911834 +-0.411514,-0.000000,0.000000,0.911403 +-0.412469,-0.000000,0.000000,0.910972 +-0.413422,-0.000000,0.000000,0.910539 +-0.414376,-0.000000,0.000000,0.910106 +-0.415328,-0.000000,0.000000,0.909672 +-0.416281,-0.000000,0.000000,0.909236 +-0.417233,-0.000000,0.000000,0.908800 +-0.418184,-0.000000,0.000000,0.908362 +-0.419135,-0.000000,0.000000,0.907924 +-0.420086,-0.000000,0.000000,0.907484 +-0.421036,-0.000000,0.000000,0.907044 +-0.421985,-0.000000,0.000000,0.906603 +-0.422935,-0.000000,0.000000,0.906160 +-0.423883,-0.000000,0.000000,0.905717 +-0.424832,-0.000000,0.000000,0.905272 +-0.425779,-0.000000,0.000000,0.904827 +-0.426727,-0.000000,0.000000,0.904381 +-0.427673,-0.000000,0.000000,0.903933 +-0.428620,-0.000000,0.000000,0.903485 +-0.429566,-0.000000,0.000000,0.903036 +-0.430511,-0.000000,0.000000,0.902585 +-0.431456,-0.000000,0.000000,0.902134 +-0.432401,-0.000000,0.000000,0.901682 +-0.433345,-0.000000,0.000000,0.901228 +-0.434288,-0.000000,0.000000,0.900774 +-0.435231,-0.000000,0.000000,0.900319 +-0.436174,-0.000000,0.000000,0.899863 +-0.437116,-0.000000,0.000000,0.899405 +-0.438057,-0.000000,0.000000,0.898947 +-0.438999,-0.000000,0.000000,0.898488 +-0.439939,-0.000000,0.000000,0.898028 +-0.440879,-0.000000,0.000000,0.897566 +-0.441819,-0.000000,0.000000,0.897104 +-0.442758,-0.000000,0.000000,0.896641 +-0.443697,-0.000000,0.000000,0.896177 +-0.444635,-0.000000,0.000000,0.895712 +-0.445573,-0.000000,0.000000,0.895246 +-0.446510,-0.000000,0.000000,0.894779 +-0.447447,-0.000000,0.000000,0.894310 +-0.448383,-0.000000,0.000000,0.893841 +-0.449319,-0.000000,0.000000,0.893371 +-0.450254,-0.000000,0.000000,0.892900 +-0.451189,-0.000000,0.000000,0.892428 +-0.452123,-0.000000,0.000000,0.891955 +-0.453057,-0.000000,0.000000,0.891481 +-0.453990,-0.000000,0.000000,0.891007 +-0.454923,-0.000000,0.000000,0.890531 +-0.455856,-0.000000,0.000000,0.890054 +-0.456787,-0.000000,0.000000,0.889576 +-0.457719,-0.000000,0.000000,0.889097 +-0.458650,-0.000000,0.000000,0.888617 +-0.459580,-0.000000,0.000000,0.888136 +-0.460510,-0.000000,0.000000,0.887655 +-0.461439,-0.000000,0.000000,0.887172 +-0.462368,-0.000000,0.000000,0.886688 +-0.463296,-0.000000,0.000000,0.886204 +-0.464224,-0.000000,0.000000,0.885718 +-0.465151,-0.000000,0.000000,0.885231 +-0.466078,-0.000000,0.000000,0.884744 +-0.467004,-0.000000,0.000000,0.884255 +-0.467930,-0.000000,0.000000,0.883766 +-0.468855,-0.000000,0.000000,0.883275 +-0.469780,-0.000000,0.000000,0.882784 +-0.470704,-0.000000,0.000000,0.882291 +-0.471628,-0.000000,0.000000,0.881798 +-0.472551,-0.000000,0.000000,0.881303 +-0.473473,-0.000000,0.000000,0.880808 +-0.474396,-0.000000,0.000000,0.880312 +-0.475317,-0.000000,0.000000,0.879815 +-0.476238,-0.000000,0.000000,0.879316 +-0.477159,-0.000000,0.000000,0.878817 +-0.478079,-0.000000,0.000000,0.878317 +-0.478998,-0.000000,0.000000,0.877816 +-0.479917,-0.000000,0.000000,0.877314 +-0.480836,-0.000000,0.000000,0.876811 +-0.481754,-0.000000,0.000000,0.876307 +-0.482671,-0.000000,0.000000,0.875802 +-0.483588,-0.000000,0.000000,0.875296 +-0.484504,-0.000000,0.000000,0.874789 +-0.485420,-0.000000,0.000000,0.874281 +-0.486335,-0.000000,0.000000,0.873772 +-0.487250,-0.000000,0.000000,0.873262 +-0.488164,-0.000000,0.000000,0.872752 +-0.489078,-0.000000,0.000000,0.872240 +-0.489991,-0.000000,0.000000,0.871727 +-0.490904,-0.000000,0.000000,0.871214 +-0.491816,-0.000000,0.000000,0.870699 +-0.492727,-0.000000,0.000000,0.870184 +-0.493638,-0.000000,0.000000,0.869667 +-0.494549,-0.000000,0.000000,0.869150 +-0.495459,-0.000000,0.000000,0.868632 +-0.496368,-0.000000,0.000000,0.868112 +-0.497277,-0.000000,0.000000,0.867592 +-0.498185,-0.000000,0.000000,0.867071 +-0.499093,-0.000000,0.000000,0.866549 +-0.500000,-0.000000,0.000000,0.866025 +-0.500907,-0.000000,0.000000,0.865501 +-0.501813,-0.000000,0.000000,0.864976 +-0.502718,-0.000000,0.000000,0.864450 +-0.503623,-0.000000,0.000000,0.863923 +-0.504528,-0.000000,0.000000,0.863396 +-0.505431,-0.000000,0.000000,0.862867 +-0.506335,-0.000000,0.000000,0.862337 +-0.507238,-0.000000,0.000000,0.861806 +-0.508140,-0.000000,0.000000,0.861275 +-0.509041,-0.000000,0.000000,0.860742 +-0.509943,-0.000000,0.000000,0.860208 +-0.510843,-0.000000,0.000000,0.859674 +-0.511743,-0.000000,0.000000,0.859139 +-0.512642,-0.000000,0.000000,0.858602 +-0.513541,-0.000000,0.000000,0.858065 +-0.514440,-0.000000,0.000000,0.857527 +-0.515337,-0.000000,0.000000,0.856987 +-0.516234,-0.000000,0.000000,0.856447 +-0.517131,-0.000000,0.000000,0.855906 +-0.518027,-0.000000,0.000000,0.855364 +-0.518922,-0.000000,0.000000,0.854821 +-0.519817,-0.000000,0.000000,0.854277 +-0.520712,-0.000000,0.000000,0.853733 +-0.521605,-0.000000,0.000000,0.853187 +-0.522499,-0.000000,0.000000,0.852640 +-0.523391,-0.000000,0.000000,0.852093 +-0.524283,-0.000000,0.000000,0.851544 +-0.525175,-0.000000,0.000000,0.850994 +-0.526066,-0.000000,0.000000,0.850444 +-0.526956,-0.000000,0.000000,0.849893 +-0.527846,-0.000000,0.000000,0.849340 +-0.528735,-0.000000,0.000000,0.848787 +-0.529623,-0.000000,0.000000,0.848233 +-0.530511,-0.000000,0.000000,0.847678 +-0.531399,-0.000000,0.000000,0.847122 +-0.532285,-0.000000,0.000000,0.846565 +-0.533172,-0.000000,0.000000,0.846007 +-0.534057,-0.000000,0.000000,0.845448 +-0.534942,-0.000000,0.000000,0.844889 +-0.535827,-0.000000,0.000000,0.844328 +-0.536711,-0.000000,0.000000,0.843766 +-0.537594,-0.000000,0.000000,0.843204 +-0.538477,-0.000000,0.000000,0.842640 +-0.539359,-0.000000,0.000000,0.842076 +-0.540240,-0.000000,0.000000,0.841511 +-0.541121,-0.000000,0.000000,0.840945 +-0.542002,-0.000000,0.000000,0.840377 +-0.542881,-0.000000,0.000000,0.839809 +-0.543760,-0.000000,0.000000,0.839240 +-0.544639,-0.000000,0.000000,0.838671 +-0.545517,-0.000000,0.000000,0.838100 +-0.546394,-0.000000,0.000000,0.837528 +-0.547271,-0.000000,0.000000,0.836955 +-0.548147,-0.000000,0.000000,0.836382 +-0.549023,-0.000000,0.000000,0.835807 +-0.549898,-0.000000,0.000000,0.835232 +-0.550772,-0.000000,0.000000,0.834656 +-0.551646,-0.000000,0.000000,0.834078 +-0.552519,-0.000000,0.000000,0.833500 +-0.553392,-0.000000,0.000000,0.832921 +-0.554263,-0.000000,0.000000,0.832341 +-0.555135,-0.000000,0.000000,0.831760 +-0.556006,-0.000000,0.000000,0.831179 +-0.556876,-0.000000,0.000000,0.830596 +-0.557745,-0.000000,0.000000,0.830012 +-0.558614,-0.000000,0.000000,0.829428 +-0.559482,-0.000000,0.000000,0.828842 +-0.560350,-0.000000,0.000000,0.828256 +-0.561217,-0.000000,0.000000,0.827669 +-0.562083,-0.000000,0.000000,0.827081 +-0.562949,-0.000000,0.000000,0.826492 +-0.563814,-0.000000,0.000000,0.825902 +-0.564679,-0.000000,0.000000,0.825311 +-0.565543,-0.000000,0.000000,0.824719 +-0.566406,-0.000000,0.000000,0.824126 +-0.567269,-0.000000,0.000000,0.823533 +-0.568131,-0.000000,0.000000,0.822938 +-0.568993,-0.000000,0.000000,0.822343 +-0.569853,-0.000000,0.000000,0.821746 +-0.570714,-0.000000,0.000000,0.821149 +-0.571573,-0.000000,0.000000,0.820551 +-0.572432,-0.000000,0.000000,0.819952 +-0.573290,-0.000000,0.000000,0.819352 +-0.574148,-0.000000,0.000000,0.818751 +-0.575005,-0.000000,0.000000,0.818150 +-0.575862,-0.000000,0.000000,0.817547 +-0.576718,-0.000000,0.000000,0.816944 +-0.577573,-0.000000,0.000000,0.816339 +-0.578427,-0.000000,0.000000,0.815734 +-0.579281,-0.000000,0.000000,0.815128 +-0.580134,-0.000000,0.000000,0.814521 +-0.580987,-0.000000,0.000000,0.813913 +-0.581839,-0.000000,0.000000,0.813304 +-0.582690,-0.000000,0.000000,0.812694 +-0.583541,-0.000000,0.000000,0.812084 +-0.584391,-0.000000,0.000000,0.811472 +-0.585241,-0.000000,0.000000,0.810860 +-0.586090,-0.000000,0.000000,0.810246 +-0.586938,-0.000000,0.000000,0.809632 +-0.587785,-0.000000,0.000000,0.809017 +-0.588632,-0.000000,0.000000,0.808401 +-0.589478,-0.000000,0.000000,0.807784 +-0.590324,-0.000000,0.000000,0.807166 +-0.591169,-0.000000,0.000000,0.806548 +-0.592013,-0.000000,0.000000,0.805928 +-0.592857,-0.000000,0.000000,0.805308 +-0.593700,-0.000000,0.000000,0.804687 +-0.594542,-0.000000,0.000000,0.804064 +-0.595384,-0.000000,0.000000,0.803441 +-0.596225,-0.000000,0.000000,0.802817 +-0.597065,-0.000000,0.000000,0.802193 +-0.597905,-0.000000,0.000000,0.801567 +-0.598744,-0.000000,0.000000,0.800940 +-0.599582,-0.000000,0.000000,0.800313 +-0.600420,-0.000000,0.000000,0.799685 +-0.601257,-0.000000,0.000000,0.799055 +-0.602094,-0.000000,0.000000,0.798425 +-0.602930,-0.000000,0.000000,0.797794 +-0.603765,-0.000000,0.000000,0.797163 +-0.604599,-0.000000,0.000000,0.796530 +-0.605433,-0.000000,0.000000,0.795896 +-0.606266,-0.000000,0.000000,0.795262 +-0.607098,-0.000000,0.000000,0.794627 +-0.607930,-0.000000,0.000000,0.793990 +-0.608761,-0.000000,0.000000,0.793353 +-0.609592,-0.000000,0.000000,0.792715 +-0.610422,-0.000000,0.000000,0.792077 +-0.611251,-0.000000,0.000000,0.791437 +-0.612079,-0.000000,0.000000,0.790796 +-0.612907,-0.000000,0.000000,0.790155 +-0.613734,-0.000000,0.000000,0.789513 +-0.614561,-0.000000,0.000000,0.788870 +-0.615386,-0.000000,0.000000,0.788226 +-0.616211,-0.000000,0.000000,0.787581 +-0.617036,-0.000000,0.000000,0.786935 +-0.617860,-0.000000,0.000000,0.786288 +-0.618683,-0.000000,0.000000,0.785641 +-0.619505,-0.000000,0.000000,0.784993 +-0.620327,-0.000000,0.000000,0.784343 +-0.621148,-0.000000,0.000000,0.783693 +-0.621968,-0.000000,0.000000,0.783043 +-0.622788,-0.000000,0.000000,0.782391 +-0.623607,-0.000000,0.000000,0.781738 +-0.624425,-0.000000,0.000000,0.781085 +-0.625243,-0.000000,0.000000,0.780430 +-0.626060,-0.000000,0.000000,0.779775 +-0.626876,-0.000000,0.000000,0.779119 +-0.627691,-0.000000,0.000000,0.778462 +-0.628506,-0.000000,0.000000,0.777805 +-0.629320,-0.000000,0.000000,0.777146 +-0.630134,-0.000000,0.000000,0.776487 +-0.630947,-0.000000,0.000000,0.775826 +-0.631759,-0.000000,0.000000,0.775165 +-0.632570,-0.000000,0.000000,0.774503 +-0.633381,-0.000000,0.000000,0.773840 +-0.634191,-0.000000,0.000000,0.773177 +-0.635000,-0.000000,0.000000,0.772512 +-0.635809,-0.000000,0.000000,0.771847 +-0.636617,-0.000000,0.000000,0.771180 +-0.637424,-0.000000,0.000000,0.770513 +-0.638231,-0.000000,0.000000,0.769845 +-0.639036,-0.000000,0.000000,0.769177 +-0.639841,-0.000000,0.000000,0.768507 +-0.640646,-0.000000,0.000000,0.767836 +-0.641450,-0.000000,0.000000,0.767165 +-0.642253,-0.000000,0.000000,0.766493 +-0.643055,-0.000000,0.000000,0.765820 +-0.643857,-0.000000,0.000000,0.765146 +-0.644657,-0.000000,0.000000,0.764472 +-0.645458,-0.000000,0.000000,0.763796 +-0.646257,-0.000000,0.000000,0.763120 +-0.647056,-0.000000,0.000000,0.762443 +-0.647854,-0.000000,0.000000,0.761764 +-0.648651,-0.000000,0.000000,0.761086 +-0.649448,-0.000000,0.000000,0.760406 +-0.650244,-0.000000,0.000000,0.759725 +-0.651039,-0.000000,0.000000,0.759044 +-0.651834,-0.000000,0.000000,0.758362 +-0.652628,-0.000000,0.000000,0.757679 +-0.653421,-0.000000,0.000000,0.756995 +-0.654213,-0.000000,0.000000,0.756310 +-0.655005,-0.000000,0.000000,0.755625 +-0.655796,-0.000000,0.000000,0.754939 +-0.656586,-0.000000,0.000000,0.754251 +-0.657375,-0.000000,0.000000,0.753563 +-0.658164,-0.000000,0.000000,0.752875 +-0.658952,-0.000000,0.000000,0.752185 +-0.659739,-0.000000,0.000000,0.751494 +-0.660526,-0.000000,0.000000,0.750803 +-0.661312,-0.000000,0.000000,0.750111 +-0.662097,-0.000000,0.000000,0.749418 +-0.662881,-0.000000,0.000000,0.748724 +-0.663665,-0.000000,0.000000,0.748030 +-0.664448,-0.000000,0.000000,0.747334 +-0.665230,-0.000000,0.000000,0.746638 +-0.666012,-0.000000,0.000000,0.745941 +-0.666793,-0.000000,0.000000,0.745243 +-0.667573,-0.000000,0.000000,0.744545 +-0.668352,-0.000000,0.000000,0.743845 +-0.669131,-0.000000,0.000000,0.743145 +-0.669908,-0.000000,0.000000,0.742444 +-0.670686,-0.000000,0.000000,0.741742 +-0.671462,-0.000000,0.000000,0.741039 +-0.672238,-0.000000,0.000000,0.740335 +-0.673013,-0.000000,0.000000,0.739631 +-0.673787,-0.000000,0.000000,0.738926 +-0.674560,-0.000000,0.000000,0.738220 +-0.675333,-0.000000,0.000000,0.737513 +-0.676105,-0.000000,0.000000,0.736806 +-0.676876,-0.000000,0.000000,0.736097 +-0.677646,-0.000000,0.000000,0.735388 +-0.678416,-0.000000,0.000000,0.734678 +-0.679185,-0.000000,0.000000,0.733967 +-0.679953,-0.000000,0.000000,0.733255 +-0.680721,-0.000000,0.000000,0.732543 +-0.681488,-0.000000,0.000000,0.731830 +-0.682254,-0.000000,0.000000,0.731116 +-0.683019,-0.000000,0.000000,0.730401 +-0.683783,-0.000000,0.000000,0.729685 +-0.684547,-0.000000,0.000000,0.728969 +-0.685310,-0.000000,0.000000,0.728251 +-0.686072,-0.000000,0.000000,0.727533 +-0.686834,-0.000000,0.000000,0.726814 +-0.687595,-0.000000,0.000000,0.726095 +-0.688355,-0.000000,0.000000,0.725374 +-0.689114,-0.000000,0.000000,0.724653 +-0.689872,-0.000000,0.000000,0.723931 +-0.690630,-0.000000,0.000000,0.723208 +-0.691387,-0.000000,0.000000,0.722485 +-0.692143,-0.000000,0.000000,0.721760 +-0.692899,-0.000000,0.000000,0.721035 +-0.693653,-0.000000,0.000000,0.720309 +-0.694407,-0.000000,0.000000,0.719582 +-0.695160,-0.000000,0.000000,0.718855 +-0.695913,-0.000000,0.000000,0.718126 +-0.696664,-0.000000,0.000000,0.717397 +-0.697415,-0.000000,0.000000,0.716667 +-0.698165,-0.000000,0.000000,0.715936 +-0.698915,-0.000000,0.000000,0.715205 +-0.699663,-0.000000,0.000000,0.714473 +-0.700411,-0.000000,0.000000,0.713740 +-0.701158,-0.000000,0.000000,0.713006 +-0.701904,-0.000000,0.000000,0.712271 +-0.702650,-0.000000,0.000000,0.711536 +-0.703395,-0.000000,0.000000,0.710799 +-0.704139,-0.000000,0.000000,0.710062 +-0.704882,-0.000000,0.000000,0.709325 +-0.705624,-0.000000,0.000000,0.708586 +-0.706366,-0.000000,0.000000,0.707847 +-0.707107,-0.000000,0.000000,0.707107 +-0.707847,-0.000000,0.000000,0.706366 +-0.708586,-0.000000,0.000000,0.705624 +-0.709325,-0.000000,0.000000,0.704882 +-0.710062,-0.000000,0.000000,0.704139 +-0.710799,-0.000000,0.000000,0.703395 +-0.711536,-0.000000,0.000000,0.702650 +-0.712271,-0.000000,0.000000,0.701904 +-0.713006,-0.000000,0.000000,0.701158 +-0.713740,-0.000000,0.000000,0.700411 +-0.714473,-0.000000,0.000000,0.699663 +-0.715205,-0.000000,0.000000,0.698915 +-0.715936,-0.000000,0.000000,0.698165 +-0.716667,-0.000000,0.000000,0.697415 +-0.717397,-0.000000,0.000000,0.696664 +-0.718126,-0.000000,0.000000,0.695913 +-0.718855,-0.000000,0.000000,0.695160 +-0.719582,-0.000000,0.000000,0.694407 +-0.720309,-0.000000,0.000000,0.693653 +-0.721035,-0.000000,0.000000,0.692899 +-0.721760,-0.000000,0.000000,0.692143 +-0.722485,-0.000000,0.000000,0.691387 +-0.723208,-0.000000,0.000000,0.690630 +-0.723931,-0.000000,0.000000,0.689872 +-0.724653,-0.000000,0.000000,0.689114 +-0.725374,-0.000000,0.000000,0.688355 +-0.726095,-0.000000,0.000000,0.687595 +-0.726814,-0.000000,0.000000,0.686834 +-0.727533,-0.000000,0.000000,0.686072 +-0.728251,-0.000000,0.000000,0.685310 +-0.728969,-0.000000,0.000000,0.684547 +-0.729685,-0.000000,0.000000,0.683783 +-0.730401,-0.000000,0.000000,0.683019 +-0.731116,-0.000000,0.000000,0.682254 +-0.731830,-0.000000,0.000000,0.681488 +-0.732543,-0.000000,0.000000,0.680721 +-0.733255,-0.000000,0.000000,0.679953 +-0.733967,-0.000000,0.000000,0.679185 +-0.734678,-0.000000,0.000000,0.678416 +-0.735388,-0.000000,0.000000,0.677646 +-0.736097,-0.000000,0.000000,0.676876 +-0.736806,-0.000000,0.000000,0.676105 +-0.737513,-0.000000,0.000000,0.675333 +-0.738220,-0.000000,0.000000,0.674560 +-0.738926,-0.000000,0.000000,0.673787 +-0.739631,-0.000000,0.000000,0.673013 +-0.740335,-0.000000,0.000000,0.672238 +-0.741039,-0.000000,0.000000,0.671462 +-0.741742,-0.000000,0.000000,0.670686 +-0.742444,-0.000000,0.000000,0.669908 +-0.743145,-0.000000,0.000000,0.669131 +-0.743845,-0.000000,0.000000,0.668352 +-0.744545,-0.000000,0.000000,0.667573 +-0.745243,-0.000000,0.000000,0.666793 +-0.745941,-0.000000,0.000000,0.666012 +-0.746638,-0.000000,0.000000,0.665230 +-0.747334,-0.000000,0.000000,0.664448 +-0.748030,-0.000000,0.000000,0.663665 +-0.748724,-0.000000,0.000000,0.662881 +-0.749418,-0.000000,0.000000,0.662097 +-0.750111,-0.000000,0.000000,0.661312 +-0.750803,-0.000000,0.000000,0.660526 +-0.751494,-0.000000,0.000000,0.659739 +-0.752185,-0.000000,0.000000,0.658952 +-0.752875,-0.000000,0.000000,0.658164 +-0.753563,-0.000000,0.000000,0.657375 +-0.754251,-0.000000,0.000000,0.656586 +-0.754939,-0.000000,0.000000,0.655796 +-0.755625,-0.000000,0.000000,0.655005 +-0.756310,-0.000000,0.000000,0.654213 +-0.756995,-0.000000,0.000000,0.653421 +-0.757679,-0.000000,0.000000,0.652628 +-0.758362,-0.000000,0.000000,0.651834 +-0.759044,-0.000000,0.000000,0.651039 +-0.759725,-0.000000,0.000000,0.650244 +-0.760406,-0.000000,0.000000,0.649448 +-0.761086,-0.000000,0.000000,0.648651 +-0.761764,-0.000000,0.000000,0.647854 +-0.762443,-0.000000,0.000000,0.647056 +-0.763120,-0.000000,0.000000,0.646257 +-0.763796,-0.000000,0.000000,0.645458 +-0.764472,-0.000000,0.000000,0.644657 +-0.765146,-0.000000,0.000000,0.643857 +-0.765820,-0.000000,0.000000,0.643055 +-0.766493,-0.000000,0.000000,0.642253 +-0.767165,-0.000000,0.000000,0.641450 +-0.767836,-0.000000,0.000000,0.640646 +-0.768507,-0.000000,0.000000,0.639841 +-0.769177,-0.000000,0.000000,0.639036 +-0.769845,-0.000000,0.000000,0.638231 +-0.770513,-0.000000,0.000000,0.637424 +-0.771180,-0.000000,0.000000,0.636617 +-0.771847,-0.000000,0.000000,0.635809 +-0.772512,-0.000000,0.000000,0.635000 +-0.773177,-0.000000,0.000000,0.634191 +-0.773840,-0.000000,0.000000,0.633381 +-0.774503,-0.000000,0.000000,0.632570 +-0.775165,-0.000000,0.000000,0.631759 +-0.775826,-0.000000,0.000000,0.630947 +-0.776487,-0.000000,0.000000,0.630134 +-0.777146,-0.000000,0.000000,0.629320 +-0.777805,-0.000000,0.000000,0.628506 +-0.778462,-0.000000,0.000000,0.627691 +-0.779119,-0.000000,0.000000,0.626876 +-0.779775,-0.000000,0.000000,0.626060 +-0.780430,-0.000000,0.000000,0.625243 +-0.781085,-0.000000,0.000000,0.624425 +-0.781738,-0.000000,0.000000,0.623607 +-0.782391,-0.000000,0.000000,0.622788 +-0.783043,-0.000000,0.000000,0.621968 +-0.783693,-0.000000,0.000000,0.621148 +-0.784343,-0.000000,0.000000,0.620327 +-0.784993,-0.000000,0.000000,0.619505 +-0.785641,-0.000000,0.000000,0.618683 +-0.786288,-0.000000,0.000000,0.617860 +-0.786935,-0.000000,0.000000,0.617036 +-0.787581,-0.000000,0.000000,0.616211 +-0.788226,-0.000000,0.000000,0.615386 +-0.788870,-0.000000,0.000000,0.614561 +-0.789513,-0.000000,0.000000,0.613734 +-0.790155,-0.000000,0.000000,0.612907 +-0.790796,-0.000000,0.000000,0.612079 +-0.791437,-0.000000,0.000000,0.611251 +-0.792077,-0.000000,0.000000,0.610422 +-0.792715,-0.000000,0.000000,0.609592 +-0.793353,-0.000000,0.000000,0.608761 +-0.793990,-0.000000,0.000000,0.607930 +-0.794627,-0.000000,0.000000,0.607098 +-0.795262,-0.000000,0.000000,0.606266 +-0.795896,-0.000000,0.000000,0.605433 +-0.796530,-0.000000,0.000000,0.604599 +-0.797163,-0.000000,0.000000,0.603765 +-0.797794,-0.000000,0.000000,0.602930 +-0.798425,-0.000000,0.000000,0.602094 +-0.799055,-0.000000,0.000000,0.601257 +-0.799685,-0.000000,0.000000,0.600420 +-0.800313,-0.000000,0.000000,0.599582 +-0.800940,-0.000000,0.000000,0.598744 +-0.801567,-0.000000,0.000000,0.597905 +-0.802193,-0.000000,0.000000,0.597065 +-0.802817,-0.000000,0.000000,0.596225 +-0.803441,-0.000000,0.000000,0.595384 +-0.804064,-0.000000,0.000000,0.594542 +-0.804687,-0.000000,0.000000,0.593700 +-0.805308,-0.000000,0.000000,0.592857 +-0.805928,-0.000000,0.000000,0.592013 +-0.806548,-0.000000,0.000000,0.591169 +-0.807166,-0.000000,0.000000,0.590324 +-0.807784,-0.000000,0.000000,0.589478 +-0.808401,-0.000000,0.000000,0.588632 +-0.809017,-0.000000,0.000000,0.587785 +-0.809632,-0.000000,0.000000,0.586938 +-0.810246,-0.000000,0.000000,0.586090 +-0.810860,-0.000000,0.000000,0.585241 +-0.811472,-0.000000,0.000000,0.584391 +-0.812084,-0.000000,0.000000,0.583541 +-0.812694,-0.000000,0.000000,0.582690 +-0.813304,-0.000000,0.000000,0.581839 +-0.813913,-0.000000,0.000000,0.580987 +-0.814521,-0.000000,0.000000,0.580134 +-0.815128,-0.000000,0.000000,0.579281 +-0.815734,-0.000000,0.000000,0.578427 +-0.816339,-0.000000,0.000000,0.577573 +-0.816944,-0.000000,0.000000,0.576718 +-0.817547,-0.000000,0.000000,0.575862 +-0.818150,-0.000000,0.000000,0.575005 +-0.818751,-0.000000,0.000000,0.574148 +-0.819352,-0.000000,0.000000,0.573290 +-0.819952,-0.000000,0.000000,0.572432 +-0.820551,-0.000000,0.000000,0.571573 +-0.821149,-0.000000,0.000000,0.570714 +-0.821746,-0.000000,0.000000,0.569853 +-0.822343,-0.000000,0.000000,0.568993 +-0.822938,-0.000000,0.000000,0.568131 +-0.823533,-0.000000,0.000000,0.567269 +-0.824126,-0.000000,0.000000,0.566406 +-0.824719,-0.000000,0.000000,0.565543 +-0.825311,-0.000000,0.000000,0.564679 +-0.825902,-0.000000,0.000000,0.563814 +-0.826492,-0.000000,0.000000,0.562949 +-0.827081,-0.000000,0.000000,0.562083 +-0.827669,-0.000000,0.000000,0.561217 +-0.828256,-0.000000,0.000000,0.560350 +-0.828842,-0.000000,0.000000,0.559482 +-0.829428,-0.000000,0.000000,0.558614 +-0.830012,-0.000000,0.000000,0.557745 +-0.830596,-0.000000,0.000000,0.556876 +-0.831179,-0.000000,0.000000,0.556006 +-0.831760,-0.000000,0.000000,0.555135 +-0.832341,-0.000000,0.000000,0.554263 +-0.832921,-0.000000,0.000000,0.553392 +-0.833500,-0.000000,0.000000,0.552519 +-0.834078,-0.000000,0.000000,0.551646 +-0.834656,-0.000000,0.000000,0.550772 +-0.835232,-0.000000,0.000000,0.549898 +-0.835807,-0.000000,0.000000,0.549023 +-0.836382,-0.000000,0.000000,0.548147 +-0.836955,-0.000000,0.000000,0.547271 +-0.837528,-0.000000,0.000000,0.546394 +-0.838100,-0.000000,0.000000,0.545517 +-0.838671,-0.000000,0.000000,0.544639 +-0.839240,-0.000000,0.000000,0.543760 +-0.839809,-0.000000,0.000000,0.542881 +-0.840377,-0.000000,0.000000,0.542002 +-0.840945,-0.000000,0.000000,0.541121 +-0.841511,-0.000000,0.000000,0.540240 +-0.842076,-0.000000,0.000000,0.539359 +-0.842640,-0.000000,0.000000,0.538477 +-0.843204,-0.000000,0.000000,0.537594 +-0.843766,-0.000000,0.000000,0.536711 +-0.844328,-0.000000,0.000000,0.535827 +-0.844889,-0.000000,0.000000,0.534942 +-0.845448,-0.000000,0.000000,0.534057 +-0.846007,-0.000000,0.000000,0.533172 +-0.846565,-0.000000,0.000000,0.532285 +-0.847122,-0.000000,0.000000,0.531399 +-0.847678,-0.000000,0.000000,0.530511 +-0.848233,-0.000000,0.000000,0.529623 +-0.848787,-0.000000,0.000000,0.528735 +-0.849340,-0.000000,0.000000,0.527846 +-0.849893,-0.000000,0.000000,0.526956 +-0.850444,-0.000000,0.000000,0.526066 +-0.850994,-0.000000,0.000000,0.525175 +-0.851544,-0.000000,0.000000,0.524283 +-0.852093,-0.000000,0.000000,0.523391 +-0.852640,-0.000000,0.000000,0.522499 +-0.853187,-0.000000,0.000000,0.521605 +-0.853733,-0.000000,0.000000,0.520712 +-0.854277,-0.000000,0.000000,0.519817 +-0.854821,-0.000000,0.000000,0.518922 +-0.855364,-0.000000,0.000000,0.518027 +-0.855906,-0.000000,0.000000,0.517131 +-0.856447,-0.000000,0.000000,0.516234 +-0.856987,-0.000000,0.000000,0.515337 +-0.857527,-0.000000,0.000000,0.514440 +-0.858065,-0.000000,0.000000,0.513541 +-0.858602,-0.000000,0.000000,0.512642 +-0.859139,-0.000000,0.000000,0.511743 +-0.859674,-0.000000,0.000000,0.510843 +-0.860208,-0.000000,0.000000,0.509943 +-0.860742,-0.000000,0.000000,0.509041 +-0.861275,-0.000000,0.000000,0.508140 +-0.861806,-0.000000,0.000000,0.507238 +-0.862337,-0.000000,0.000000,0.506335 +-0.862867,-0.000000,0.000000,0.505431 +-0.863396,-0.000000,0.000000,0.504528 +-0.863923,-0.000000,0.000000,0.503623 +-0.864450,-0.000000,0.000000,0.502718 +-0.864976,-0.000000,0.000000,0.501813 +-0.865501,-0.000000,0.000000,0.500907 +-0.866025,-0.000000,0.000000,0.500000 +-0.866549,-0.000000,0.000000,0.499093 +-0.867071,-0.000000,0.000000,0.498185 +-0.867592,-0.000000,0.000000,0.497277 +-0.868112,-0.000000,0.000000,0.496368 +-0.868632,-0.000000,0.000000,0.495459 +-0.869150,-0.000000,0.000000,0.494549 +-0.869667,-0.000000,0.000000,0.493638 +-0.870184,-0.000000,0.000000,0.492727 +-0.870699,-0.000000,0.000000,0.491816 +-0.871214,-0.000000,0.000000,0.490904 +-0.871727,-0.000000,0.000000,0.489991 +-0.872240,-0.000000,0.000000,0.489078 +-0.872752,-0.000000,0.000000,0.488164 +-0.873262,-0.000000,0.000000,0.487250 +-0.873772,-0.000000,0.000000,0.486335 +-0.874281,-0.000000,0.000000,0.485420 +-0.874789,-0.000000,0.000000,0.484504 +-0.875296,-0.000000,0.000000,0.483588 +-0.875802,-0.000000,0.000000,0.482671 +-0.876307,-0.000000,0.000000,0.481754 +-0.876811,-0.000000,0.000000,0.480836 +-0.877314,-0.000000,0.000000,0.479917 +-0.877816,-0.000000,0.000000,0.478998 +-0.878317,-0.000000,0.000000,0.478079 +-0.878817,-0.000000,0.000000,0.477159 +-0.879316,-0.000000,0.000000,0.476238 +-0.879815,-0.000000,0.000000,0.475317 +-0.880312,-0.000000,0.000000,0.474396 +-0.880808,-0.000000,0.000000,0.473473 +-0.881303,-0.000000,0.000000,0.472551 +-0.881798,-0.000000,0.000000,0.471628 +-0.882291,-0.000000,0.000000,0.470704 +-0.882784,-0.000000,0.000000,0.469780 +-0.883275,-0.000000,0.000000,0.468855 +-0.883766,-0.000000,0.000000,0.467930 +-0.884255,-0.000000,0.000000,0.467004 +-0.884744,-0.000000,0.000000,0.466078 +-0.885231,-0.000000,0.000000,0.465151 +-0.885718,-0.000000,0.000000,0.464224 +-0.886204,-0.000000,0.000000,0.463296 +-0.886688,-0.000000,0.000000,0.462368 +-0.887172,-0.000000,0.000000,0.461439 +-0.887655,-0.000000,0.000000,0.460510 +-0.888136,-0.000000,0.000000,0.459580 +-0.888617,-0.000000,0.000000,0.458650 +-0.889097,-0.000000,0.000000,0.457719 +-0.889576,-0.000000,0.000000,0.456787 +-0.890054,-0.000000,0.000000,0.455856 +-0.890531,-0.000000,0.000000,0.454923 +-0.891007,-0.000000,0.000000,0.453990 +-0.891481,-0.000000,0.000000,0.453057 +-0.891955,-0.000000,0.000000,0.452123 +-0.892428,-0.000000,0.000000,0.451189 +-0.892900,-0.000000,0.000000,0.450254 +-0.893371,-0.000000,0.000000,0.449319 +-0.893841,-0.000000,0.000000,0.448383 +-0.894310,-0.000000,0.000000,0.447447 +-0.894779,-0.000000,0.000000,0.446510 +-0.895246,-0.000000,0.000000,0.445573 +-0.895712,-0.000000,0.000000,0.444635 +-0.896177,-0.000000,0.000000,0.443697 +-0.896641,-0.000000,0.000000,0.442758 +-0.897104,-0.000000,0.000000,0.441819 +-0.897566,-0.000000,0.000000,0.440879 +-0.898028,-0.000000,0.000000,0.439939 +-0.898488,-0.000000,0.000000,0.438999 +-0.898947,-0.000000,0.000000,0.438057 +-0.899405,-0.000000,0.000000,0.437116 +-0.899863,-0.000000,0.000000,0.436174 +-0.900319,-0.000000,0.000000,0.435231 +-0.900774,-0.000000,0.000000,0.434288 +-0.901228,-0.000000,0.000000,0.433345 +-0.901682,-0.000000,0.000000,0.432401 +-0.902134,-0.000000,0.000000,0.431456 +-0.902585,-0.000000,0.000000,0.430511 +-0.903036,-0.000000,0.000000,0.429566 +-0.903485,-0.000000,0.000000,0.428620 +-0.903933,-0.000000,0.000000,0.427673 +-0.904381,-0.000000,0.000000,0.426727 +-0.904827,-0.000000,0.000000,0.425779 +-0.905272,-0.000000,0.000000,0.424832 +-0.905717,-0.000000,0.000000,0.423883 +-0.906160,-0.000000,0.000000,0.422935 +-0.906603,-0.000000,0.000000,0.421985 +-0.907044,-0.000000,0.000000,0.421036 +-0.907484,-0.000000,0.000000,0.420086 +-0.907924,-0.000000,0.000000,0.419135 +-0.908362,-0.000000,0.000000,0.418184 +-0.908800,-0.000000,0.000000,0.417233 +-0.909236,-0.000000,0.000000,0.416281 +-0.909672,-0.000000,0.000000,0.415328 +-0.910106,-0.000000,0.000000,0.414376 +-0.910539,-0.000000,0.000000,0.413422 +-0.910972,-0.000000,0.000000,0.412469 +-0.911403,-0.000000,0.000000,0.411514 +-0.911834,-0.000000,0.000000,0.410560 +-0.912263,-0.000000,0.000000,0.409605 +-0.912692,-0.000000,0.000000,0.408649 +-0.913119,-0.000000,0.000000,0.407693 +-0.913545,-0.000000,0.000000,0.406737 +-0.913971,-0.000000,0.000000,0.405780 +-0.914395,-0.000000,0.000000,0.404822 +-0.914819,-0.000000,0.000000,0.403865 +-0.915241,-0.000000,0.000000,0.402906 +-0.915663,-0.000000,0.000000,0.401948 +-0.916083,-0.000000,0.000000,0.400989 +-0.916502,-0.000000,0.000000,0.400029 +-0.916921,-0.000000,0.000000,0.399069 +-0.917338,-0.000000,0.000000,0.398109 +-0.917755,-0.000000,0.000000,0.397148 +-0.918170,-0.000000,0.000000,0.396187 +-0.918584,-0.000000,0.000000,0.395225 +-0.918998,-0.000000,0.000000,0.394263 +-0.919410,-0.000000,0.000000,0.393300 +-0.919821,-0.000000,0.000000,0.392337 +-0.920232,-0.000000,0.000000,0.391374 +-0.920641,-0.000000,0.000000,0.390410 +-0.921050,-0.000000,0.000000,0.389445 +-0.921457,-0.000000,0.000000,0.388481 +-0.921863,-0.000000,0.000000,0.387516 +-0.922268,-0.000000,0.000000,0.386550 +-0.922673,-0.000000,0.000000,0.385584 +-0.923076,-0.000000,0.000000,0.384618 +-0.923478,-0.000000,0.000000,0.383651 +-0.923880,-0.000000,0.000000,0.382683 +-0.924280,-0.000000,0.000000,0.381716 +-0.924679,-0.000000,0.000000,0.380748 +-0.925077,-0.000000,0.000000,0.379779 +-0.925474,-0.000000,0.000000,0.378810 +-0.925871,-0.000000,0.000000,0.377841 +-0.926266,-0.000000,0.000000,0.376871 +-0.926660,-0.000000,0.000000,0.375901 +-0.927053,-0.000000,0.000000,0.374930 +-0.927445,-0.000000,0.000000,0.373959 +-0.927836,-0.000000,0.000000,0.372988 +-0.928226,-0.000000,0.000000,0.372016 +-0.928615,-0.000000,0.000000,0.371044 +-0.929003,-0.000000,0.000000,0.370071 +-0.929390,-0.000000,0.000000,0.369098 +-0.929776,-0.000000,0.000000,0.368125 +-0.930161,-0.000000,0.000000,0.367151 +-0.930545,-0.000000,0.000000,0.366176 +-0.930928,-0.000000,0.000000,0.365202 +-0.931310,-0.000000,0.000000,0.364227 +-0.931691,-0.000000,0.000000,0.363251 +-0.932071,-0.000000,0.000000,0.362275 +-0.932450,-0.000000,0.000000,0.361299 +-0.932828,-0.000000,0.000000,0.360322 +-0.933205,-0.000000,0.000000,0.359345 +-0.933580,-0.000000,0.000000,0.358368 +-0.933955,-0.000000,0.000000,0.357390 +-0.934329,-0.000000,0.000000,0.356412 +-0.934702,-0.000000,0.000000,0.355433 +-0.935073,-0.000000,0.000000,0.354454 +-0.935444,-0.000000,0.000000,0.353475 +-0.935814,-0.000000,0.000000,0.352495 +-0.936182,-0.000000,0.000000,0.351515 +-0.936550,-0.000000,0.000000,0.350534 +-0.936916,-0.000000,0.000000,0.349553 +-0.937282,-0.000000,0.000000,0.348572 +-0.937646,-0.000000,0.000000,0.347590 +-0.938010,-0.000000,0.000000,0.346608 +-0.938372,-0.000000,0.000000,0.345626 +-0.938734,-0.000000,0.000000,0.344643 +-0.939094,-0.000000,0.000000,0.343660 +-0.939454,-0.000000,0.000000,0.342676 +-0.939812,-0.000000,0.000000,0.341692 +-0.940169,-0.000000,0.000000,0.340708 +-0.940526,-0.000000,0.000000,0.339723 +-0.940881,-0.000000,0.000000,0.338738 +-0.941235,-0.000000,0.000000,0.337752 +-0.941588,-0.000000,0.000000,0.336767 +-0.941940,-0.000000,0.000000,0.335780 +-0.942291,-0.000000,0.000000,0.334794 +-0.942641,-0.000000,0.000000,0.333807 +-0.942991,-0.000000,0.000000,0.332820 +-0.943339,-0.000000,0.000000,0.331832 +-0.943686,-0.000000,0.000000,0.330844 +-0.944031,-0.000000,0.000000,0.329855 +-0.944376,-0.000000,0.000000,0.328867 +-0.944720,-0.000000,0.000000,0.327878 +-0.945063,-0.000000,0.000000,0.326888 +-0.945405,-0.000000,0.000000,0.325898 +-0.945746,-0.000000,0.000000,0.324908 +-0.946085,-0.000000,0.000000,0.323917 +-0.946424,-0.000000,0.000000,0.322927 +-0.946762,-0.000000,0.000000,0.321935 +-0.947098,-0.000000,0.000000,0.320944 +-0.947434,-0.000000,0.000000,0.319952 +-0.947768,-0.000000,0.000000,0.318959 +-0.948102,-0.000000,0.000000,0.317967 +-0.948434,-0.000000,0.000000,0.316974 +-0.948766,-0.000000,0.000000,0.315980 +-0.949096,-0.000000,0.000000,0.314987 +-0.949425,-0.000000,0.000000,0.313992 +-0.949754,-0.000000,0.000000,0.312998 +-0.950081,-0.000000,0.000000,0.312003 +-0.950407,-0.000000,0.000000,0.311008 +-0.950732,-0.000000,0.000000,0.310013 +-0.951057,-0.000000,0.000000,0.309017 +-0.951380,-0.000000,0.000000,0.308021 +-0.951702,-0.000000,0.000000,0.307024 +-0.952023,-0.000000,0.000000,0.306028 +-0.952343,-0.000000,0.000000,0.305031 +-0.952661,-0.000000,0.000000,0.304033 +-0.952979,-0.000000,0.000000,0.303035 +-0.953296,-0.000000,0.000000,0.302037 +-0.953612,-0.000000,0.000000,0.301039 +-0.953927,-0.000000,0.000000,0.300040 +-0.954240,-0.000000,0.000000,0.299041 +-0.954553,-0.000000,0.000000,0.298041 +-0.954865,-0.000000,0.000000,0.297042 +-0.955175,-0.000000,0.000000,0.296041 +-0.955485,-0.000000,0.000000,0.295041 +-0.955793,-0.000000,0.000000,0.294040 +-0.956100,-0.000000,0.000000,0.293039 +-0.956407,-0.000000,0.000000,0.292038 +-0.956712,-0.000000,0.000000,0.291036 +-0.957016,-0.000000,0.000000,0.290034 +-0.957319,-0.000000,0.000000,0.289032 +-0.957622,-0.000000,0.000000,0.288029 +-0.957923,-0.000000,0.000000,0.287026 +-0.958223,-0.000000,0.000000,0.286023 +-0.958522,-0.000000,0.000000,0.285019 +-0.958820,-0.000000,0.000000,0.284015 +-0.959117,-0.000000,0.000000,0.283011 +-0.959412,-0.000000,0.000000,0.282007 +-0.959707,-0.000000,0.000000,0.281002 +-0.960001,-0.000000,0.000000,0.279997 +-0.960294,-0.000000,0.000000,0.278991 +-0.960585,-0.000000,0.000000,0.277985 +-0.960876,-0.000000,0.000000,0.276979 +-0.961165,-0.000000,0.000000,0.275973 +-0.961454,-0.000000,0.000000,0.274966 +-0.961741,-0.000000,0.000000,0.273959 +-0.962028,-0.000000,0.000000,0.272952 +-0.962313,-0.000000,0.000000,0.271944 +-0.962597,-0.000000,0.000000,0.270936 +-0.962880,-0.000000,0.000000,0.269928 +-0.963163,-0.000000,0.000000,0.268920 +-0.963444,-0.000000,0.000000,0.267911 +-0.963724,-0.000000,0.000000,0.266902 +-0.964003,-0.000000,0.000000,0.265893 +-0.964281,-0.000000,0.000000,0.264883 +-0.964557,-0.000000,0.000000,0.263873 +-0.964833,-0.000000,0.000000,0.262863 +-0.965108,-0.000000,0.000000,0.261852 +-0.965382,-0.000000,0.000000,0.260842 +-0.965654,-0.000000,0.000000,0.259830 +-0.965926,-0.000000,0.000000,0.258819 +-0.966196,-0.000000,0.000000,0.257807 +-0.966466,-0.000000,0.000000,0.256795 +-0.966734,-0.000000,0.000000,0.255783 +-0.967001,-0.000000,0.000000,0.254771 +-0.967268,-0.000000,0.000000,0.253758 +-0.967533,-0.000000,0.000000,0.252745 +-0.967797,-0.000000,0.000000,0.251732 +-0.968060,-0.000000,0.000000,0.250718 +-0.968322,-0.000000,0.000000,0.249704 +-0.968583,-0.000000,0.000000,0.248690 +-0.968843,-0.000000,0.000000,0.247675 +-0.969102,-0.000000,0.000000,0.246661 +-0.969360,-0.000000,0.000000,0.245646 +-0.969616,-0.000000,0.000000,0.244631 +-0.969872,-0.000000,0.000000,0.243615 +-0.970127,-0.000000,0.000000,0.242599 +-0.970380,-0.000000,0.000000,0.241583 +-0.970633,-0.000000,0.000000,0.240567 +-0.970884,-0.000000,0.000000,0.239550 +-0.971134,-0.000000,0.000000,0.238533 +-0.971384,-0.000000,0.000000,0.237516 +-0.971632,-0.000000,0.000000,0.236499 +-0.971879,-0.000000,0.000000,0.235481 +-0.972125,-0.000000,0.000000,0.234463 +-0.972370,-0.000000,0.000000,0.233445 +-0.972614,-0.000000,0.000000,0.232427 +-0.972857,-0.000000,0.000000,0.231408 +-0.973099,-0.000000,0.000000,0.230389 +-0.973339,-0.000000,0.000000,0.229370 +-0.973579,-0.000000,0.000000,0.228351 +-0.973817,-0.000000,0.000000,0.227331 +-0.974055,-0.000000,0.000000,0.226311 +-0.974291,-0.000000,0.000000,0.225291 +-0.974527,-0.000000,0.000000,0.224271 +-0.974761,-0.000000,0.000000,0.223250 +-0.974994,-0.000000,0.000000,0.222229 +-0.975227,-0.000000,0.000000,0.221208 +-0.975458,-0.000000,0.000000,0.220187 +-0.975688,-0.000000,0.000000,0.219165 +-0.975917,-0.000000,0.000000,0.218143 +-0.976145,-0.000000,0.000000,0.217121 +-0.976371,-0.000000,0.000000,0.216099 +-0.976597,-0.000000,0.000000,0.215076 +-0.976822,-0.000000,0.000000,0.214053 +-0.977046,-0.000000,0.000000,0.213030 +-0.977268,-0.000000,0.000000,0.212007 +-0.977490,-0.000000,0.000000,0.210984 +-0.977710,-0.000000,0.000000,0.209960 +-0.977929,-0.000000,0.000000,0.208936 +-0.978148,-0.000000,0.000000,0.207912 +-0.978365,-0.000000,0.000000,0.206887 +-0.978581,-0.000000,0.000000,0.205863 +-0.978796,-0.000000,0.000000,0.204838 +-0.979010,-0.000000,0.000000,0.203813 +-0.979223,-0.000000,0.000000,0.202787 +-0.979435,-0.000000,0.000000,0.201762 +-0.979645,-0.000000,0.000000,0.200736 +-0.979855,-0.000000,0.000000,0.199710 +-0.980064,-0.000000,0.000000,0.198684 +-0.980271,-0.000000,0.000000,0.197657 +-0.980478,-0.000000,0.000000,0.196631 +-0.980683,-0.000000,0.000000,0.195604 +-0.980887,-0.000000,0.000000,0.194577 +-0.981091,-0.000000,0.000000,0.193549 +-0.981293,-0.000000,0.000000,0.192522 +-0.981494,-0.000000,0.000000,0.191494 +-0.981694,-0.000000,0.000000,0.190466 +-0.981893,-0.000000,0.000000,0.189438 +-0.982090,-0.000000,0.000000,0.188410 +-0.982287,-0.000000,0.000000,0.187381 +-0.982483,-0.000000,0.000000,0.186353 +-0.982678,-0.000000,0.000000,0.185324 +-0.982871,-0.000000,0.000000,0.184294 +-0.983064,-0.000000,0.000000,0.183265 +-0.983255,-0.000000,0.000000,0.182236 +-0.983445,-0.000000,0.000000,0.181206 +-0.983634,-0.000000,0.000000,0.180176 +-0.983823,-0.000000,0.000000,0.179146 +-0.984010,-0.000000,0.000000,0.178115 +-0.984196,-0.000000,0.000000,0.177085 +-0.984381,-0.000000,0.000000,0.176054 +-0.984564,-0.000000,0.000000,0.175023 +-0.984747,-0.000000,0.000000,0.173992 +-0.984929,-0.000000,0.000000,0.172961 +-0.985109,-0.000000,0.000000,0.171929 +-0.985289,-0.000000,0.000000,0.170897 +-0.985467,-0.000000,0.000000,0.169866 +-0.985645,-0.000000,0.000000,0.168833 +-0.985821,-0.000000,0.000000,0.167801 +-0.985996,-0.000000,0.000000,0.166769 +-0.986170,-0.000000,0.000000,0.165736 +-0.986343,-0.000000,0.000000,0.164703 +-0.986515,-0.000000,0.000000,0.163670 +-0.986686,-0.000000,0.000000,0.162637 +-0.986856,-0.000000,0.000000,0.161604 +-0.987024,-0.000000,0.000000,0.160570 +-0.987192,-0.000000,0.000000,0.159537 +-0.987359,-0.000000,0.000000,0.158503 +-0.987524,-0.000000,0.000000,0.157469 +-0.987688,-0.000000,0.000000,0.156434 +-0.987852,-0.000000,0.000000,0.155400 +-0.988014,-0.000000,0.000000,0.154366 +-0.988175,-0.000000,0.000000,0.153331 +-0.988335,-0.000000,0.000000,0.152296 +-0.988494,-0.000000,0.000000,0.151261 +-0.988652,-0.000000,0.000000,0.150226 +-0.988809,-0.000000,0.000000,0.149190 +-0.988964,-0.000000,0.000000,0.148155 +-0.989119,-0.000000,0.000000,0.147119 +-0.989272,-0.000000,0.000000,0.146083 +-0.989425,-0.000000,0.000000,0.145047 +-0.989576,-0.000000,0.000000,0.144011 +-0.989726,-0.000000,0.000000,0.142974 +-0.989876,-0.000000,0.000000,0.141938 +-0.990024,-0.000000,0.000000,0.140901 +-0.990171,-0.000000,0.000000,0.139864 +-0.990317,-0.000000,0.000000,0.138827 +-0.990461,-0.000000,0.000000,0.137790 +-0.990605,-0.000000,0.000000,0.136753 +-0.990748,-0.000000,0.000000,0.135716 +-0.990889,-0.000000,0.000000,0.134678 +-0.991030,-0.000000,0.000000,0.133640 +-0.991169,-0.000000,0.000000,0.132602 +-0.991308,-0.000000,0.000000,0.131564 +-0.991445,-0.000000,0.000000,0.130526 +-0.991581,-0.000000,0.000000,0.129488 +-0.991716,-0.000000,0.000000,0.128449 +-0.991850,-0.000000,0.000000,0.127411 +-0.991983,-0.000000,0.000000,0.126372 +-0.992115,-0.000000,0.000000,0.125333 +-0.992245,-0.000000,0.000000,0.124294 +-0.992375,-0.000000,0.000000,0.123255 +-0.992504,-0.000000,0.000000,0.122216 +-0.992631,-0.000000,0.000000,0.121176 +-0.992757,-0.000000,0.000000,0.120137 +-0.992883,-0.000000,0.000000,0.119097 +-0.993007,-0.000000,0.000000,0.118057 +-0.993130,-0.000000,0.000000,0.117017 +-0.993252,-0.000000,0.000000,0.115977 +-0.993373,-0.000000,0.000000,0.114937 +-0.993493,-0.000000,0.000000,0.113897 +-0.993611,-0.000000,0.000000,0.112856 +-0.993729,-0.000000,0.000000,0.111816 +-0.993845,-0.000000,0.000000,0.110775 +-0.993961,-0.000000,0.000000,0.109734 +-0.994075,-0.000000,0.000000,0.108693 +-0.994189,-0.000000,0.000000,0.107652 +-0.994301,-0.000000,0.000000,0.106611 +-0.994412,-0.000000,0.000000,0.105570 +-0.994522,-0.000000,0.000000,0.104528 +-0.994631,-0.000000,0.000000,0.103487 +-0.994739,-0.000000,0.000000,0.102445 +-0.994845,-0.000000,0.000000,0.101404 +-0.994951,-0.000000,0.000000,0.100362 +-0.995056,-0.000000,0.000000,0.099320 +-0.995159,-0.000000,0.000000,0.098278 +-0.995261,-0.000000,0.000000,0.097235 +-0.995363,-0.000000,0.000000,0.096193 +-0.995463,-0.000000,0.000000,0.095151 +-0.995562,-0.000000,0.000000,0.094108 +-0.995660,-0.000000,0.000000,0.093066 +-0.995757,-0.000000,0.000000,0.092023 +-0.995853,-0.000000,0.000000,0.090980 +-0.995947,-0.000000,0.000000,0.089937 +-0.996041,-0.000000,0.000000,0.088894 +-0.996134,-0.000000,0.000000,0.087851 +-0.996225,-0.000000,0.000000,0.086808 +-0.996315,-0.000000,0.000000,0.085765 +-0.996405,-0.000000,0.000000,0.084721 +-0.996493,-0.000000,0.000000,0.083678 +-0.996580,-0.000000,0.000000,0.082634 +-0.996666,-0.000000,0.000000,0.081591 +-0.996751,-0.000000,0.000000,0.080547 +-0.996835,-0.000000,0.000000,0.079503 +-0.996917,-0.000000,0.000000,0.078459 +-0.996999,-0.000000,0.000000,0.077415 +-0.997079,-0.000000,0.000000,0.076371 +-0.997159,-0.000000,0.000000,0.075327 +-0.997237,-0.000000,0.000000,0.074283 +-0.997314,-0.000000,0.000000,0.073238 +-0.997391,-0.000000,0.000000,0.072194 +-0.997466,-0.000000,0.000000,0.071149 +-0.997540,-0.000000,0.000000,0.070105 +-0.997613,-0.000000,0.000000,0.069060 +-0.997684,-0.000000,0.000000,0.068015 +-0.997755,-0.000000,0.000000,0.066970 +-0.997825,-0.000000,0.000000,0.065926 +-0.997893,-0.000000,0.000000,0.064881 +-0.997960,-0.000000,0.000000,0.063836 +-0.998027,-0.000000,0.000000,0.062791 +-0.998092,-0.000000,0.000000,0.061745 +-0.998156,-0.000000,0.000000,0.060700 +-0.998219,-0.000000,0.000000,0.059655 +-0.998281,-0.000000,0.000000,0.058609 +-0.998342,-0.000000,0.000000,0.057564 +-0.998402,-0.000000,0.000000,0.056519 +-0.998460,-0.000000,0.000000,0.055473 +-0.998518,-0.000000,0.000000,0.054427 +-0.998574,-0.000000,0.000000,0.053382 +-0.998630,-0.000000,0.000000,0.052336 +-0.998684,-0.000000,0.000000,0.051290 +-0.998737,-0.000000,0.000000,0.050244 +-0.998789,-0.000000,0.000000,0.049198 +-0.998840,-0.000000,0.000000,0.048152 +-0.998890,-0.000000,0.000000,0.047106 +-0.998939,-0.000000,0.000000,0.046060 +-0.998986,-0.000000,0.000000,0.045014 +-0.999033,-0.000000,0.000000,0.043968 +-0.999078,-0.000000,0.000000,0.042922 +-0.999123,-0.000000,0.000000,0.041876 +-0.999166,-0.000000,0.000000,0.040829 +-0.999208,-0.000000,0.000000,0.039783 +-0.999249,-0.000000,0.000000,0.038737 +-0.999289,-0.000000,0.000000,0.037690 +-0.999328,-0.000000,0.000000,0.036644 +-0.999366,-0.000000,0.000000,0.035597 +-0.999403,-0.000000,0.000000,0.034551 +-0.999439,-0.000000,0.000000,0.033504 +-0.999473,-0.000000,0.000000,0.032457 +-0.999507,-0.000000,0.000000,0.031411 +-0.999539,-0.000000,0.000000,0.030364 +-0.999570,-0.000000,0.000000,0.029317 +-0.999600,-0.000000,0.000000,0.028271 +-0.999629,-0.000000,0.000000,0.027224 +-0.999657,-0.000000,0.000000,0.026177 +-0.999684,-0.000000,0.000000,0.025130 +-0.999710,-0.000000,0.000000,0.024083 +-0.999735,-0.000000,0.000000,0.023036 +-0.999758,-0.000000,0.000000,0.021989 +-0.999781,-0.000000,0.000000,0.020942 +-0.999802,-0.000000,0.000000,0.019895 +-0.999822,-0.000000,0.000000,0.018848 +-0.999842,-0.000000,0.000000,0.017801 +-0.999860,-0.000000,0.000000,0.016754 +-0.999877,-0.000000,0.000000,0.015707 +-0.999893,-0.000000,0.000000,0.014660 +-0.999907,-0.000000,0.000000,0.013613 +-0.999921,-0.000000,0.000000,0.012566 +-0.999934,-0.000000,0.000000,0.011519 +-0.999945,-0.000000,0.000000,0.010472 +-0.999956,-0.000000,0.000000,0.009425 +-0.999965,-0.000000,0.000000,0.008377 +-0.999973,-0.000000,0.000000,0.007330 +-0.999980,-0.000000,0.000000,0.006283 +-0.999986,-0.000000,0.000000,0.005236 +-0.999991,-0.000000,0.000000,0.004189 +-0.999995,-0.000000,0.000000,0.003142 +-0.999998,-0.000000,0.000000,0.002094 +-0.999999,-0.000000,0.000000,0.001047 diff --git a/scripts/trajectories/half-circle-front-over-top-15s.csv b/scripts/trajectories/half-circle-front-over-top-15s.csv index 850b3feed6..1d763950f5 100644 --- a/scripts/trajectories/half-circle-front-over-top-15s.csv +++ b/scripts/trajectories/half-circle-front-over-top-15s.csv @@ -1,3000 +1,3000 @@ -0, 1.000000, 0.000000, 0.000000, 0.000000 -1, 1.000000, 0.000524, 0.000000, 0.000000 -2, 0.999999, 0.001048, 0.000000, 0.000000 -3, 0.999999, 0.001571, 0.000000, 0.000000 -4, 0.999998, 0.002095, 0.000000, 0.000000 -5, 0.999997, 0.002619, 0.000000, 0.000000 -6, 0.999995, 0.003143, 0.000000, 0.000000 -7, 0.999993, 0.003666, 0.000000, 0.000000 -8, 0.999991, 0.004190, 0.000000, 0.000000 -9, 0.999989, 0.004714, 0.000000, 0.000000 -10, 0.999986, 0.005238, 0.000000, 0.000000 -11, 0.999983, 0.005761, 0.000000, 0.000000 -12, 0.999980, 0.006285, 0.000000, 0.000000 -13, 0.999977, 0.006809, 0.000000, 0.000000 -14, 0.999973, 0.007333, 0.000000, 0.000000 -15, 0.999969, 0.007857, 0.000000, 0.000000 -16, 0.999965, 0.008380, 0.000000, 0.000000 -17, 0.999960, 0.008904, 0.000000, 0.000000 -18, 0.999956, 0.009428, 0.000000, 0.000000 -19, 0.999950, 0.009952, 0.000000, 0.000000 -20, 0.999945, 0.010475, 0.000000, 0.000000 -21, 0.999940, 0.010999, 0.000000, 0.000000 -22, 0.999934, 0.011523, 0.000000, 0.000000 -23, 0.999927, 0.012046, 0.000000, 0.000000 -24, 0.999921, 0.012570, 0.000000, 0.000000 -25, 0.999914, 0.013094, 0.000000, 0.000000 -26, 0.999907, 0.013618, 0.000000, 0.000000 -27, 0.999900, 0.014141, 0.000000, 0.000000 -28, 0.999892, 0.014665, 0.000000, 0.000000 -29, 0.999885, 0.015189, 0.000000, 0.000000 -30, 0.999877, 0.015713, 0.000000, 0.000000 -31, 0.999868, 0.016236, 0.000000, 0.000000 -32, 0.999860, 0.016760, 0.000000, 0.000000 -33, 0.999851, 0.017284, 0.000000, 0.000000 -34, 0.999841, 0.017807, 0.000000, 0.000000 -35, 0.999832, 0.018331, 0.000000, 0.000000 -36, 0.999822, 0.018855, 0.000000, 0.000000 -37, 0.999812, 0.019378, 0.000000, 0.000000 -38, 0.999802, 0.019902, 0.000000, 0.000000 -39, 0.999791, 0.020426, 0.000000, 0.000000 -40, 0.999781, 0.020949, 0.000000, 0.000000 -41, 0.999769, 0.021473, 0.000000, 0.000000 -42, 0.999758, 0.021997, 0.000000, 0.000000 -43, 0.999746, 0.022520, 0.000000, 0.000000 -44, 0.999734, 0.023044, 0.000000, 0.000000 -45, 0.999722, 0.023568, 0.000000, 0.000000 -46, 0.999710, 0.024091, 0.000000, 0.000000 -47, 0.999697, 0.024615, 0.000000, 0.000000 -48, 0.999684, 0.025138, 0.000000, 0.000000 -49, 0.999671, 0.025662, 0.000000, 0.000000 -50, 0.999657, 0.026186, 0.000000, 0.000000 -51, 0.999643, 0.026709, 0.000000, 0.000000 -52, 0.999629, 0.027233, 0.000000, 0.000000 -53, 0.999615, 0.027756, 0.000000, 0.000000 -54, 0.999600, 0.028280, 0.000000, 0.000000 -55, 0.999585, 0.028804, 0.000000, 0.000000 -56, 0.999570, 0.029327, 0.000000, 0.000000 -57, 0.999554, 0.029851, 0.000000, 0.000000 -58, 0.999539, 0.030374, 0.000000, 0.000000 -59, 0.999523, 0.030898, 0.000000, 0.000000 -60, 0.999506, 0.031421, 0.000000, 0.000000 -61, 0.999490, 0.031945, 0.000000, 0.000000 -62, 0.999473, 0.032468, 0.000000, 0.000000 -63, 0.999456, 0.032992, 0.000000, 0.000000 -64, 0.999438, 0.033515, 0.000000, 0.000000 -65, 0.999421, 0.034039, 0.000000, 0.000000 -66, 0.999403, 0.034562, 0.000000, 0.000000 -67, 0.999384, 0.035086, 0.000000, 0.000000 -68, 0.999366, 0.035609, 0.000000, 0.000000 -69, 0.999347, 0.036132, 0.000000, 0.000000 -70, 0.999328, 0.036656, 0.000000, 0.000000 -71, 0.999309, 0.037179, 0.000000, 0.000000 -72, 0.999289, 0.037703, 0.000000, 0.000000 -73, 0.999269, 0.038226, 0.000000, 0.000000 -74, 0.999249, 0.038750, 0.000000, 0.000000 -75, 0.999229, 0.039273, 0.000000, 0.000000 -76, 0.999208, 0.039796, 0.000000, 0.000000 -77, 0.999187, 0.040320, 0.000000, 0.000000 -78, 0.999166, 0.040843, 0.000000, 0.000000 -79, 0.999144, 0.041366, 0.000000, 0.000000 -80, 0.999122, 0.041890, 0.000000, 0.000000 -81, 0.999100, 0.042413, 0.000000, 0.000000 -82, 0.999078, 0.042936, 0.000000, 0.000000 -83, 0.999055, 0.043459, 0.000000, 0.000000 -84, 0.999032, 0.043983, 0.000000, 0.000000 -85, 0.999009, 0.044506, 0.000000, 0.000000 -86, 0.998986, 0.045029, 0.000000, 0.000000 -87, 0.998962, 0.045553, 0.000000, 0.000000 -88, 0.998938, 0.046076, 0.000000, 0.000000 -89, 0.998914, 0.046599, 0.000000, 0.000000 -90, 0.998889, 0.047122, 0.000000, 0.000000 -91, 0.998864, 0.047645, 0.000000, 0.000000 -92, 0.998839, 0.048169, 0.000000, 0.000000 -93, 0.998814, 0.048692, 0.000000, 0.000000 -94, 0.998788, 0.049215, 0.000000, 0.000000 -95, 0.998762, 0.049738, 0.000000, 0.000000 -96, 0.998736, 0.050261, 0.000000, 0.000000 -97, 0.998710, 0.050784, 0.000000, 0.000000 -98, 0.998683, 0.051307, 0.000000, 0.000000 -99, 0.998656, 0.051830, 0.000000, 0.000000 -100, 0.998629, 0.052353, 0.000000, 0.000000 -101, 0.998601, 0.052876, 0.000000, 0.000000 -102, 0.998573, 0.053399, 0.000000, 0.000000 -103, 0.998545, 0.053922, 0.000000, 0.000000 -104, 0.998517, 0.054445, 0.000000, 0.000000 -105, 0.998488, 0.054968, 0.000000, 0.000000 -106, 0.998459, 0.055491, 0.000000, 0.000000 -107, 0.998430, 0.056014, 0.000000, 0.000000 -108, 0.998400, 0.056537, 0.000000, 0.000000 -109, 0.998371, 0.057060, 0.000000, 0.000000 -110, 0.998341, 0.057583, 0.000000, 0.000000 -111, 0.998310, 0.058106, 0.000000, 0.000000 -112, 0.998280, 0.058629, 0.000000, 0.000000 -113, 0.998249, 0.059152, 0.000000, 0.000000 -114, 0.998218, 0.059675, 0.000000, 0.000000 -115, 0.998186, 0.060198, 0.000000, 0.000000 -116, 0.998155, 0.060720, 0.000000, 0.000000 -117, 0.998123, 0.061243, 0.000000, 0.000000 -118, 0.998091, 0.061766, 0.000000, 0.000000 -119, 0.998058, 0.062289, 0.000000, 0.000000 -120, 0.998025, 0.062811, 0.000000, 0.000000 -121, 0.997992, 0.063334, 0.000000, 0.000000 -122, 0.997959, 0.063857, 0.000000, 0.000000 -123, 0.997925, 0.064380, 0.000000, 0.000000 -124, 0.997892, 0.064902, 0.000000, 0.000000 -125, 0.997857, 0.065425, 0.000000, 0.000000 -126, 0.997823, 0.065948, 0.000000, 0.000000 -127, 0.997788, 0.066470, 0.000000, 0.000000 -128, 0.997753, 0.066993, 0.000000, 0.000000 -129, 0.997718, 0.067515, 0.000000, 0.000000 -130, 0.997683, 0.068038, 0.000000, 0.000000 -131, 0.997647, 0.068560, 0.000000, 0.000000 -132, 0.997611, 0.069083, 0.000000, 0.000000 -133, 0.997575, 0.069606, 0.000000, 0.000000 -134, 0.997538, 0.070128, 0.000000, 0.000000 -135, 0.997501, 0.070650, 0.000000, 0.000000 -136, 0.997464, 0.071173, 0.000000, 0.000000 -137, 0.997427, 0.071695, 0.000000, 0.000000 -138, 0.997389, 0.072218, 0.000000, 0.000000 -139, 0.997351, 0.072740, 0.000000, 0.000000 -140, 0.997313, 0.073263, 0.000000, 0.000000 -141, 0.997274, 0.073785, 0.000000, 0.000000 -142, 0.997235, 0.074307, 0.000000, 0.000000 -143, 0.997196, 0.074830, 0.000000, 0.000000 -144, 0.997157, 0.075352, 0.000000, 0.000000 -145, 0.997117, 0.075874, 0.000000, 0.000000 -146, 0.997078, 0.076396, 0.000000, 0.000000 -147, 0.997037, 0.076919, 0.000000, 0.000000 -148, 0.996997, 0.077441, 0.000000, 0.000000 -149, 0.996956, 0.077963, 0.000000, 0.000000 -150, 0.996915, 0.078485, 0.000000, 0.000000 -151, 0.996874, 0.079007, 0.000000, 0.000000 -152, 0.996833, 0.079529, 0.000000, 0.000000 -153, 0.996791, 0.080052, 0.000000, 0.000000 -154, 0.996749, 0.080574, 0.000000, 0.000000 -155, 0.996706, 0.081096, 0.000000, 0.000000 -156, 0.996664, 0.081618, 0.000000, 0.000000 -157, 0.996621, 0.082140, 0.000000, 0.000000 -158, 0.996578, 0.082662, 0.000000, 0.000000 -159, 0.996534, 0.083184, 0.000000, 0.000000 -160, 0.996491, 0.083706, 0.000000, 0.000000 -161, 0.996447, 0.084228, 0.000000, 0.000000 -162, 0.996402, 0.084750, 0.000000, 0.000000 -163, 0.996358, 0.085271, 0.000000, 0.000000 -164, 0.996313, 0.085793, 0.000000, 0.000000 -165, 0.996268, 0.086315, 0.000000, 0.000000 -166, 0.996223, 0.086837, 0.000000, 0.000000 -167, 0.996177, 0.087359, 0.000000, 0.000000 -168, 0.996131, 0.087880, 0.000000, 0.000000 -169, 0.996085, 0.088402, 0.000000, 0.000000 -170, 0.996038, 0.088924, 0.000000, 0.000000 -171, 0.995992, 0.089446, 0.000000, 0.000000 -172, 0.995945, 0.089967, 0.000000, 0.000000 -173, 0.995897, 0.090489, 0.000000, 0.000000 -174, 0.995850, 0.091010, 0.000000, 0.000000 -175, 0.995802, 0.091532, 0.000000, 0.000000 -176, 0.995754, 0.092054, 0.000000, 0.000000 -177, 0.995706, 0.092575, 0.000000, 0.000000 -178, 0.995657, 0.093097, 0.000000, 0.000000 -179, 0.995608, 0.093618, 0.000000, 0.000000 -180, 0.995559, 0.094140, 0.000000, 0.000000 -181, 0.995510, 0.094661, 0.000000, 0.000000 -182, 0.995460, 0.095182, 0.000000, 0.000000 -183, 0.995410, 0.095704, 0.000000, 0.000000 -184, 0.995360, 0.096225, 0.000000, 0.000000 -185, 0.995309, 0.096747, 0.000000, 0.000000 -186, 0.995258, 0.097268, 0.000000, 0.000000 -187, 0.995207, 0.097789, 0.000000, 0.000000 -188, 0.995156, 0.098310, 0.000000, 0.000000 -189, 0.995104, 0.098832, 0.000000, 0.000000 -190, 0.995052, 0.099353, 0.000000, 0.000000 -191, 0.995000, 0.099874, 0.000000, 0.000000 -192, 0.994948, 0.100395, 0.000000, 0.000000 -193, 0.994895, 0.100916, 0.000000, 0.000000 -194, 0.994842, 0.101437, 0.000000, 0.000000 -195, 0.994789, 0.101958, 0.000000, 0.000000 -196, 0.994735, 0.102479, 0.000000, 0.000000 -197, 0.994681, 0.103000, 0.000000, 0.000000 -198, 0.994627, 0.103521, 0.000000, 0.000000 -199, 0.994573, 0.104042, 0.000000, 0.000000 -200, 0.994518, 0.104563, 0.000000, 0.000000 -201, 0.994463, 0.105084, 0.000000, 0.000000 -202, 0.994408, 0.105605, 0.000000, 0.000000 -203, 0.994353, 0.106126, 0.000000, 0.000000 -204, 0.994297, 0.106647, 0.000000, 0.000000 -205, 0.994241, 0.107167, 0.000000, 0.000000 -206, 0.994185, 0.107688, 0.000000, 0.000000 -207, 0.994128, 0.108209, 0.000000, 0.000000 -208, 0.994071, 0.108729, 0.000000, 0.000000 -209, 0.994014, 0.109250, 0.000000, 0.000000 -210, 0.993957, 0.109771, 0.000000, 0.000000 -211, 0.993899, 0.110291, 0.000000, 0.000000 -212, 0.993841, 0.110812, 0.000000, 0.000000 -213, 0.993783, 0.111332, 0.000000, 0.000000 -214, 0.993725, 0.111853, 0.000000, 0.000000 -215, 0.993666, 0.112373, 0.000000, 0.000000 -216, 0.993607, 0.112894, 0.000000, 0.000000 -217, 0.993548, 0.113414, 0.000000, 0.000000 -218, 0.993488, 0.113935, 0.000000, 0.000000 -219, 0.993428, 0.114455, 0.000000, 0.000000 -220, 0.993368, 0.114975, 0.000000, 0.000000 -221, 0.993308, 0.115496, 0.000000, 0.000000 -222, 0.993247, 0.116016, 0.000000, 0.000000 -223, 0.993186, 0.116536, 0.000000, 0.000000 -224, 0.993125, 0.117056, 0.000000, 0.000000 -225, 0.993064, 0.117576, 0.000000, 0.000000 -226, 0.993002, 0.118097, 0.000000, 0.000000 -227, 0.992940, 0.118617, 0.000000, 0.000000 -228, 0.992878, 0.119137, 0.000000, 0.000000 -229, 0.992815, 0.119657, 0.000000, 0.000000 -230, 0.992753, 0.120177, 0.000000, 0.000000 -231, 0.992689, 0.120697, 0.000000, 0.000000 -232, 0.992626, 0.121217, 0.000000, 0.000000 -233, 0.992562, 0.121736, 0.000000, 0.000000 -234, 0.992499, 0.122256, 0.000000, 0.000000 -235, 0.992434, 0.122776, 0.000000, 0.000000 -236, 0.992370, 0.123296, 0.000000, 0.000000 -237, 0.992305, 0.123816, 0.000000, 0.000000 -238, 0.992240, 0.124335, 0.000000, 0.000000 -239, 0.992175, 0.124855, 0.000000, 0.000000 -240, 0.992109, 0.125375, 0.000000, 0.000000 -241, 0.992044, 0.125894, 0.000000, 0.000000 -242, 0.991978, 0.126414, 0.000000, 0.000000 -243, 0.991911, 0.126934, 0.000000, 0.000000 -244, 0.991845, 0.127453, 0.000000, 0.000000 -245, 0.991778, 0.127973, 0.000000, 0.000000 -246, 0.991711, 0.128492, 0.000000, 0.000000 -247, 0.991643, 0.129011, 0.000000, 0.000000 -248, 0.991575, 0.129531, 0.000000, 0.000000 -249, 0.991507, 0.130050, 0.000000, 0.000000 -250, 0.991439, 0.130569, 0.000000, 0.000000 -251, 0.991371, 0.131089, 0.000000, 0.000000 -252, 0.991302, 0.131608, 0.000000, 0.000000 -253, 0.991233, 0.132127, 0.000000, 0.000000 -254, 0.991163, 0.132646, 0.000000, 0.000000 -255, 0.991094, 0.133165, 0.000000, 0.000000 -256, 0.991024, 0.133685, 0.000000, 0.000000 -257, 0.990954, 0.134204, 0.000000, 0.000000 -258, 0.990883, 0.134723, 0.000000, 0.000000 -259, 0.990813, 0.135242, 0.000000, 0.000000 -260, 0.990742, 0.135761, 0.000000, 0.000000 -261, 0.990670, 0.136279, 0.000000, 0.000000 -262, 0.990599, 0.136798, 0.000000, 0.000000 -263, 0.990527, 0.137317, 0.000000, 0.000000 -264, 0.990455, 0.137836, 0.000000, 0.000000 -265, 0.990383, 0.138355, 0.000000, 0.000000 -266, 0.990310, 0.138873, 0.000000, 0.000000 -267, 0.990237, 0.139392, 0.000000, 0.000000 -268, 0.990164, 0.139911, 0.000000, 0.000000 -269, 0.990091, 0.140429, 0.000000, 0.000000 -270, 0.990017, 0.140948, 0.000000, 0.000000 -271, 0.989943, 0.141466, 0.000000, 0.000000 -272, 0.989869, 0.141985, 0.000000, 0.000000 -273, 0.989794, 0.142503, 0.000000, 0.000000 -274, 0.989720, 0.143022, 0.000000, 0.000000 -275, 0.989644, 0.143540, 0.000000, 0.000000 -276, 0.989569, 0.144058, 0.000000, 0.000000 -277, 0.989494, 0.144577, 0.000000, 0.000000 -278, 0.989418, 0.145095, 0.000000, 0.000000 -279, 0.989342, 0.145613, 0.000000, 0.000000 -280, 0.989265, 0.146131, 0.000000, 0.000000 -281, 0.989189, 0.146650, 0.000000, 0.000000 -282, 0.989112, 0.147168, 0.000000, 0.000000 -283, 0.989034, 0.147686, 0.000000, 0.000000 -284, 0.988957, 0.148204, 0.000000, 0.000000 -285, 0.988879, 0.148722, 0.000000, 0.000000 -286, 0.988801, 0.149240, 0.000000, 0.000000 -287, 0.988723, 0.149757, 0.000000, 0.000000 -288, 0.988644, 0.150275, 0.000000, 0.000000 -289, 0.988565, 0.150793, 0.000000, 0.000000 -290, 0.988486, 0.151311, 0.000000, 0.000000 -291, 0.988407, 0.151829, 0.000000, 0.000000 -292, 0.988327, 0.152346, 0.000000, 0.000000 -293, 0.988247, 0.152864, 0.000000, 0.000000 -294, 0.988167, 0.153382, 0.000000, 0.000000 -295, 0.988087, 0.153899, 0.000000, 0.000000 -296, 0.988006, 0.154417, 0.000000, 0.000000 -297, 0.987925, 0.154934, 0.000000, 0.000000 -298, 0.987844, 0.155451, 0.000000, 0.000000 -299, 0.987762, 0.155969, 0.000000, 0.000000 -300, 0.987680, 0.156486, 0.000000, 0.000000 -301, 0.987598, 0.157003, 0.000000, 0.000000 -302, 0.987516, 0.157521, 0.000000, 0.000000 -303, 0.987433, 0.158038, 0.000000, 0.000000 -304, 0.987350, 0.158555, 0.000000, 0.000000 -305, 0.987267, 0.159072, 0.000000, 0.000000 -306, 0.987183, 0.159589, 0.000000, 0.000000 -307, 0.987100, 0.160106, 0.000000, 0.000000 -308, 0.987016, 0.160623, 0.000000, 0.000000 -309, 0.986932, 0.161140, 0.000000, 0.000000 -310, 0.986847, 0.161657, 0.000000, 0.000000 -311, 0.986762, 0.162174, 0.000000, 0.000000 -312, 0.986677, 0.162691, 0.000000, 0.000000 -313, 0.986592, 0.163208, 0.000000, 0.000000 -314, 0.986506, 0.163724, 0.000000, 0.000000 -315, 0.986420, 0.164241, 0.000000, 0.000000 -316, 0.986334, 0.164758, 0.000000, 0.000000 -317, 0.986248, 0.165274, 0.000000, 0.000000 -318, 0.986161, 0.165791, 0.000000, 0.000000 -319, 0.986074, 0.166307, 0.000000, 0.000000 -320, 0.985987, 0.166824, 0.000000, 0.000000 -321, 0.985899, 0.167340, 0.000000, 0.000000 -322, 0.985811, 0.167857, 0.000000, 0.000000 -323, 0.985723, 0.168373, 0.000000, 0.000000 -324, 0.985635, 0.168889, 0.000000, 0.000000 -325, 0.985546, 0.169405, 0.000000, 0.000000 -326, 0.985458, 0.169922, 0.000000, 0.000000 -327, 0.985368, 0.170438, 0.000000, 0.000000 -328, 0.985279, 0.170954, 0.000000, 0.000000 -329, 0.985189, 0.171470, 0.000000, 0.000000 -330, 0.985099, 0.171986, 0.000000, 0.000000 -331, 0.985009, 0.172502, 0.000000, 0.000000 -332, 0.984919, 0.173018, 0.000000, 0.000000 -333, 0.984828, 0.173534, 0.000000, 0.000000 -334, 0.984737, 0.174049, 0.000000, 0.000000 -335, 0.984646, 0.174565, 0.000000, 0.000000 -336, 0.984554, 0.175081, 0.000000, 0.000000 -337, 0.984462, 0.175596, 0.000000, 0.000000 -338, 0.984370, 0.176112, 0.000000, 0.000000 -339, 0.984278, 0.176628, 0.000000, 0.000000 -340, 0.984185, 0.177143, 0.000000, 0.000000 -341, 0.984092, 0.177659, 0.000000, 0.000000 -342, 0.983999, 0.178174, 0.000000, 0.000000 -343, 0.983906, 0.178689, 0.000000, 0.000000 -344, 0.983812, 0.179205, 0.000000, 0.000000 -345, 0.983718, 0.179720, 0.000000, 0.000000 -346, 0.983624, 0.180235, 0.000000, 0.000000 -347, 0.983529, 0.180750, 0.000000, 0.000000 -348, 0.983434, 0.181266, 0.000000, 0.000000 -349, 0.983339, 0.181781, 0.000000, 0.000000 -350, 0.983244, 0.182296, 0.000000, 0.000000 -351, 0.983148, 0.182811, 0.000000, 0.000000 -352, 0.983052, 0.183326, 0.000000, 0.000000 -353, 0.982956, 0.183840, 0.000000, 0.000000 -354, 0.982860, 0.184355, 0.000000, 0.000000 -355, 0.982763, 0.184870, 0.000000, 0.000000 -356, 0.982666, 0.185385, 0.000000, 0.000000 -357, 0.982569, 0.185899, 0.000000, 0.000000 -358, 0.982471, 0.186414, 0.000000, 0.000000 -359, 0.982374, 0.186929, 0.000000, 0.000000 -360, 0.982275, 0.187443, 0.000000, 0.000000 -361, 0.982177, 0.187958, 0.000000, 0.000000 -362, 0.982079, 0.188472, 0.000000, 0.000000 -363, 0.981980, 0.188986, 0.000000, 0.000000 -364, 0.981881, 0.189501, 0.000000, 0.000000 -365, 0.981781, 0.190015, 0.000000, 0.000000 -366, 0.981682, 0.190529, 0.000000, 0.000000 -367, 0.981582, 0.191043, 0.000000, 0.000000 -368, 0.981481, 0.191557, 0.000000, 0.000000 -369, 0.981381, 0.192071, 0.000000, 0.000000 -370, 0.981280, 0.192585, 0.000000, 0.000000 -371, 0.981179, 0.193099, 0.000000, 0.000000 -372, 0.981078, 0.193613, 0.000000, 0.000000 -373, 0.980976, 0.194127, 0.000000, 0.000000 -374, 0.980875, 0.194641, 0.000000, 0.000000 -375, 0.980773, 0.195155, 0.000000, 0.000000 -376, 0.980670, 0.195668, 0.000000, 0.000000 -377, 0.980568, 0.196182, 0.000000, 0.000000 -378, 0.980465, 0.196695, 0.000000, 0.000000 -379, 0.980361, 0.197209, 0.000000, 0.000000 -380, 0.980258, 0.197722, 0.000000, 0.000000 -381, 0.980154, 0.198236, 0.000000, 0.000000 -382, 0.980050, 0.198749, 0.000000, 0.000000 -383, 0.979946, 0.199262, 0.000000, 0.000000 -384, 0.979842, 0.199776, 0.000000, 0.000000 -385, 0.979737, 0.200289, 0.000000, 0.000000 -386, 0.979632, 0.200802, 0.000000, 0.000000 -387, 0.979527, 0.201315, 0.000000, 0.000000 -388, 0.979421, 0.201828, 0.000000, 0.000000 -389, 0.979315, 0.202341, 0.000000, 0.000000 -390, 0.979209, 0.202854, 0.000000, 0.000000 -391, 0.979103, 0.203367, 0.000000, 0.000000 -392, 0.978996, 0.203880, 0.000000, 0.000000 -393, 0.978889, 0.204392, 0.000000, 0.000000 -394, 0.978782, 0.204905, 0.000000, 0.000000 -395, 0.978674, 0.205418, 0.000000, 0.000000 -396, 0.978567, 0.205930, 0.000000, 0.000000 -397, 0.978459, 0.206443, 0.000000, 0.000000 -398, 0.978350, 0.206955, 0.000000, 0.000000 -399, 0.978242, 0.207468, 0.000000, 0.000000 -400, 0.978133, 0.207980, 0.000000, 0.000000 -401, 0.978024, 0.208492, 0.000000, 0.000000 -402, 0.977915, 0.209005, 0.000000, 0.000000 -403, 0.977805, 0.209517, 0.000000, 0.000000 -404, 0.977695, 0.210029, 0.000000, 0.000000 -405, 0.977585, 0.210541, 0.000000, 0.000000 -406, 0.977475, 0.211053, 0.000000, 0.000000 -407, 0.977364, 0.211565, 0.000000, 0.000000 -408, 0.977253, 0.212077, 0.000000, 0.000000 -409, 0.977142, 0.212589, 0.000000, 0.000000 -410, 0.977030, 0.213100, 0.000000, 0.000000 -411, 0.976919, 0.213612, 0.000000, 0.000000 -412, 0.976807, 0.214124, 0.000000, 0.000000 -413, 0.976694, 0.214635, 0.000000, 0.000000 -414, 0.976582, 0.215147, 0.000000, 0.000000 -415, 0.976469, 0.215658, 0.000000, 0.000000 -416, 0.976356, 0.216170, 0.000000, 0.000000 -417, 0.976242, 0.216681, 0.000000, 0.000000 -418, 0.976129, 0.217192, 0.000000, 0.000000 -419, 0.976015, 0.217704, 0.000000, 0.000000 -420, 0.975901, 0.218215, 0.000000, 0.000000 -421, 0.975786, 0.218726, 0.000000, 0.000000 -422, 0.975672, 0.219237, 0.000000, 0.000000 -423, 0.975557, 0.219748, 0.000000, 0.000000 -424, 0.975441, 0.220259, 0.000000, 0.000000 -425, 0.975326, 0.220770, 0.000000, 0.000000 -426, 0.975210, 0.221281, 0.000000, 0.000000 -427, 0.975094, 0.221791, 0.000000, 0.000000 -428, 0.974978, 0.222302, 0.000000, 0.000000 -429, 0.974861, 0.222813, 0.000000, 0.000000 -430, 0.974744, 0.223323, 0.000000, 0.000000 -431, 0.974627, 0.223834, 0.000000, 0.000000 -432, 0.974510, 0.224344, 0.000000, 0.000000 -433, 0.974392, 0.224855, 0.000000, 0.000000 -434, 0.974274, 0.225365, 0.000000, 0.000000 -435, 0.974156, 0.225875, 0.000000, 0.000000 -436, 0.974038, 0.226385, 0.000000, 0.000000 -437, 0.973919, 0.226896, 0.000000, 0.000000 -438, 0.973800, 0.227406, 0.000000, 0.000000 -439, 0.973681, 0.227916, 0.000000, 0.000000 -440, 0.973561, 0.228426, 0.000000, 0.000000 -441, 0.973442, 0.228936, 0.000000, 0.000000 -442, 0.973322, 0.229445, 0.000000, 0.000000 -443, 0.973201, 0.229955, 0.000000, 0.000000 -444, 0.973081, 0.230465, 0.000000, 0.000000 -445, 0.972960, 0.230975, 0.000000, 0.000000 -446, 0.972839, 0.231484, 0.000000, 0.000000 -447, 0.972717, 0.231994, 0.000000, 0.000000 -448, 0.972596, 0.232503, 0.000000, 0.000000 -449, 0.972474, 0.233012, 0.000000, 0.000000 -450, 0.972352, 0.233522, 0.000000, 0.000000 -451, 0.972229, 0.234031, 0.000000, 0.000000 -452, 0.972106, 0.234540, 0.000000, 0.000000 -453, 0.971983, 0.235049, 0.000000, 0.000000 -454, 0.971860, 0.235558, 0.000000, 0.000000 -455, 0.971737, 0.236067, 0.000000, 0.000000 -456, 0.971613, 0.236576, 0.000000, 0.000000 -457, 0.971489, 0.237085, 0.000000, 0.000000 -458, 0.971365, 0.237594, 0.000000, 0.000000 -459, 0.971240, 0.238103, 0.000000, 0.000000 -460, 0.971115, 0.238611, 0.000000, 0.000000 -461, 0.970990, 0.239120, 0.000000, 0.000000 -462, 0.970865, 0.239629, 0.000000, 0.000000 -463, 0.970739, 0.240137, 0.000000, 0.000000 -464, 0.970613, 0.240646, 0.000000, 0.000000 -465, 0.970487, 0.241154, 0.000000, 0.000000 -466, 0.970360, 0.241662, 0.000000, 0.000000 -467, 0.970234, 0.242170, 0.000000, 0.000000 -468, 0.970107, 0.242678, 0.000000, 0.000000 -469, 0.969980, 0.243187, 0.000000, 0.000000 -470, 0.969852, 0.243695, 0.000000, 0.000000 -471, 0.969724, 0.244203, 0.000000, 0.000000 -472, 0.969596, 0.244710, 0.000000, 0.000000 -473, 0.969468, 0.245218, 0.000000, 0.000000 -474, 0.969339, 0.245726, 0.000000, 0.000000 -475, 0.969210, 0.246234, 0.000000, 0.000000 -476, 0.969081, 0.246741, 0.000000, 0.000000 -477, 0.968952, 0.247249, 0.000000, 0.000000 -478, 0.968822, 0.247756, 0.000000, 0.000000 -479, 0.968692, 0.248264, 0.000000, 0.000000 -480, 0.968562, 0.248771, 0.000000, 0.000000 -481, 0.968432, 0.249278, 0.000000, 0.000000 -482, 0.968301, 0.249786, 0.000000, 0.000000 -483, 0.968170, 0.250293, 0.000000, 0.000000 -484, 0.968039, 0.250800, 0.000000, 0.000000 -485, 0.967907, 0.251307, 0.000000, 0.000000 -486, 0.967776, 0.251814, 0.000000, 0.000000 -487, 0.967644, 0.252321, 0.000000, 0.000000 -488, 0.967511, 0.252827, 0.000000, 0.000000 -489, 0.967379, 0.253334, 0.000000, 0.000000 -490, 0.967246, 0.253841, 0.000000, 0.000000 -491, 0.967113, 0.254347, 0.000000, 0.000000 -492, 0.966980, 0.254854, 0.000000, 0.000000 -493, 0.966846, 0.255360, 0.000000, 0.000000 -494, 0.966712, 0.255867, 0.000000, 0.000000 -495, 0.966578, 0.256373, 0.000000, 0.000000 -496, 0.966444, 0.256879, 0.000000, 0.000000 -497, 0.966309, 0.257385, 0.000000, 0.000000 -498, 0.966174, 0.257891, 0.000000, 0.000000 -499, 0.966039, 0.258397, 0.000000, 0.000000 -500, 0.965903, 0.258903, 0.000000, 0.000000 -501, 0.965767, 0.259409, 0.000000, 0.000000 -502, 0.965631, 0.259915, 0.000000, 0.000000 -503, 0.965495, 0.260421, 0.000000, 0.000000 -504, 0.965359, 0.260926, 0.000000, 0.000000 -505, 0.965222, 0.261432, 0.000000, 0.000000 -506, 0.965085, 0.261938, 0.000000, 0.000000 -507, 0.964947, 0.262443, 0.000000, 0.000000 -508, 0.964810, 0.262948, 0.000000, 0.000000 -509, 0.964672, 0.263454, 0.000000, 0.000000 -510, 0.964534, 0.263959, 0.000000, 0.000000 -511, 0.964396, 0.264464, 0.000000, 0.000000 -512, 0.964257, 0.264969, 0.000000, 0.000000 -513, 0.964118, 0.265474, 0.000000, 0.000000 -514, 0.963979, 0.265979, 0.000000, 0.000000 -515, 0.963839, 0.266484, 0.000000, 0.000000 -516, 0.963700, 0.266989, 0.000000, 0.000000 -517, 0.963560, 0.267494, 0.000000, 0.000000 -518, 0.963419, 0.267998, 0.000000, 0.000000 -519, 0.963279, 0.268503, 0.000000, 0.000000 -520, 0.963138, 0.269007, 0.000000, 0.000000 -521, 0.962997, 0.269512, 0.000000, 0.000000 -522, 0.962856, 0.270016, 0.000000, 0.000000 -523, 0.962714, 0.270520, 0.000000, 0.000000 -524, 0.962572, 0.271025, 0.000000, 0.000000 -525, 0.962430, 0.271529, 0.000000, 0.000000 -526, 0.962288, 0.272033, 0.000000, 0.000000 -527, 0.962145, 0.272537, 0.000000, 0.000000 -528, 0.962003, 0.273041, 0.000000, 0.000000 -529, 0.961859, 0.273544, 0.000000, 0.000000 -530, 0.961716, 0.274048, 0.000000, 0.000000 -531, 0.961572, 0.274552, 0.000000, 0.000000 -532, 0.961428, 0.275056, 0.000000, 0.000000 -533, 0.961284, 0.275559, 0.000000, 0.000000 -534, 0.961140, 0.276062, 0.000000, 0.000000 -535, 0.960995, 0.276566, 0.000000, 0.000000 -536, 0.960850, 0.277069, 0.000000, 0.000000 -537, 0.960705, 0.277572, 0.000000, 0.000000 -538, 0.960559, 0.278076, 0.000000, 0.000000 -539, 0.960413, 0.278579, 0.000000, 0.000000 -540, 0.960267, 0.279082, 0.000000, 0.000000 -541, 0.960121, 0.279585, 0.000000, 0.000000 -542, 0.959975, 0.280087, 0.000000, 0.000000 -543, 0.959828, 0.280590, 0.000000, 0.000000 -544, 0.959681, 0.281093, 0.000000, 0.000000 -545, 0.959533, 0.281595, 0.000000, 0.000000 -546, 0.959386, 0.282098, 0.000000, 0.000000 -547, 0.959238, 0.282600, 0.000000, 0.000000 -548, 0.959090, 0.283103, 0.000000, 0.000000 -549, 0.958941, 0.283605, 0.000000, 0.000000 -550, 0.958792, 0.284107, 0.000000, 0.000000 -551, 0.958644, 0.284610, 0.000000, 0.000000 -552, 0.958494, 0.285112, 0.000000, 0.000000 -553, 0.958345, 0.285614, 0.000000, 0.000000 -554, 0.958195, 0.286116, 0.000000, 0.000000 -555, 0.958045, 0.286617, 0.000000, 0.000000 -556, 0.957895, 0.287119, 0.000000, 0.000000 -557, 0.957744, 0.287621, 0.000000, 0.000000 -558, 0.957594, 0.288122, 0.000000, 0.000000 -559, 0.957443, 0.288624, 0.000000, 0.000000 -560, 0.957291, 0.289125, 0.000000, 0.000000 -561, 0.957140, 0.289627, 0.000000, 0.000000 -562, 0.956988, 0.290128, 0.000000, 0.000000 -563, 0.956836, 0.290629, 0.000000, 0.000000 -564, 0.956683, 0.291130, 0.000000, 0.000000 -565, 0.956531, 0.291631, 0.000000, 0.000000 -566, 0.956378, 0.292132, 0.000000, 0.000000 -567, 0.956225, 0.292633, 0.000000, 0.000000 -568, 0.956071, 0.293134, 0.000000, 0.000000 -569, 0.955918, 0.293635, 0.000000, 0.000000 -570, 0.955764, 0.294135, 0.000000, 0.000000 -571, 0.955610, 0.294636, 0.000000, 0.000000 -572, 0.955455, 0.295136, 0.000000, 0.000000 -573, 0.955300, 0.295637, 0.000000, 0.000000 -574, 0.955145, 0.296137, 0.000000, 0.000000 -575, 0.954990, 0.296637, 0.000000, 0.000000 -576, 0.954835, 0.297138, 0.000000, 0.000000 -577, 0.954679, 0.297638, 0.000000, 0.000000 -578, 0.954523, 0.298138, 0.000000, 0.000000 -579, 0.954367, 0.298638, 0.000000, 0.000000 -580, 0.954210, 0.299137, 0.000000, 0.000000 -581, 0.954053, 0.299637, 0.000000, 0.000000 -582, 0.953896, 0.300137, 0.000000, 0.000000 -583, 0.953739, 0.300636, 0.000000, 0.000000 -584, 0.953581, 0.301136, 0.000000, 0.000000 -585, 0.953423, 0.301635, 0.000000, 0.000000 -586, 0.953265, 0.302135, 0.000000, 0.000000 -587, 0.953107, 0.302634, 0.000000, 0.000000 -588, 0.952948, 0.303133, 0.000000, 0.000000 -589, 0.952789, 0.303632, 0.000000, 0.000000 -590, 0.952630, 0.304131, 0.000000, 0.000000 -591, 0.952471, 0.304630, 0.000000, 0.000000 -592, 0.952311, 0.305129, 0.000000, 0.000000 -593, 0.952151, 0.305628, 0.000000, 0.000000 -594, 0.951991, 0.306126, 0.000000, 0.000000 -595, 0.951830, 0.306625, 0.000000, 0.000000 -596, 0.951670, 0.307123, 0.000000, 0.000000 -597, 0.951509, 0.307622, 0.000000, 0.000000 -598, 0.951347, 0.308120, 0.000000, 0.000000 -599, 0.951186, 0.308618, 0.000000, 0.000000 -600, 0.951024, 0.309117, 0.000000, 0.000000 -601, 0.950862, 0.309615, 0.000000, 0.000000 -602, 0.950700, 0.310113, 0.000000, 0.000000 -603, 0.950537, 0.310611, 0.000000, 0.000000 -604, 0.950374, 0.311108, 0.000000, 0.000000 -605, 0.950211, 0.311606, 0.000000, 0.000000 -606, 0.950048, 0.312104, 0.000000, 0.000000 -607, 0.949884, 0.312601, 0.000000, 0.000000 -608, 0.949721, 0.313099, 0.000000, 0.000000 -609, 0.949556, 0.313596, 0.000000, 0.000000 -610, 0.949392, 0.314094, 0.000000, 0.000000 -611, 0.949227, 0.314591, 0.000000, 0.000000 -612, 0.949062, 0.315088, 0.000000, 0.000000 -613, 0.948897, 0.315585, 0.000000, 0.000000 -614, 0.948732, 0.316082, 0.000000, 0.000000 -615, 0.948566, 0.316579, 0.000000, 0.000000 -616, 0.948400, 0.317076, 0.000000, 0.000000 -617, 0.948234, 0.317572, 0.000000, 0.000000 -618, 0.948068, 0.318069, 0.000000, 0.000000 -619, 0.947901, 0.318565, 0.000000, 0.000000 -620, 0.947734, 0.319062, 0.000000, 0.000000 -621, 0.947567, 0.319558, 0.000000, 0.000000 -622, 0.947399, 0.320055, 0.000000, 0.000000 -623, 0.947231, 0.320551, 0.000000, 0.000000 -624, 0.947063, 0.321047, 0.000000, 0.000000 -625, 0.946895, 0.321543, 0.000000, 0.000000 -626, 0.946727, 0.322039, 0.000000, 0.000000 -627, 0.946558, 0.322535, 0.000000, 0.000000 -628, 0.946389, 0.323030, 0.000000, 0.000000 -629, 0.946219, 0.323526, 0.000000, 0.000000 -630, 0.946050, 0.324021, 0.000000, 0.000000 -631, 0.945880, 0.324517, 0.000000, 0.000000 -632, 0.945710, 0.325012, 0.000000, 0.000000 -633, 0.945539, 0.325508, 0.000000, 0.000000 -634, 0.945369, 0.326003, 0.000000, 0.000000 -635, 0.945198, 0.326498, 0.000000, 0.000000 -636, 0.945027, 0.326993, 0.000000, 0.000000 -637, 0.944855, 0.327488, 0.000000, 0.000000 -638, 0.944684, 0.327983, 0.000000, 0.000000 -639, 0.944512, 0.328478, 0.000000, 0.000000 -640, 0.944340, 0.328972, 0.000000, 0.000000 -641, 0.944167, 0.329467, 0.000000, 0.000000 -642, 0.943994, 0.329961, 0.000000, 0.000000 -643, 0.943822, 0.330456, 0.000000, 0.000000 -644, 0.943648, 0.330950, 0.000000, 0.000000 -645, 0.943475, 0.331444, 0.000000, 0.000000 -646, 0.943301, 0.331938, 0.000000, 0.000000 -647, 0.943127, 0.332432, 0.000000, 0.000000 -648, 0.942953, 0.332926, 0.000000, 0.000000 -649, 0.942778, 0.333420, 0.000000, 0.000000 -650, 0.942604, 0.333914, 0.000000, 0.000000 -651, 0.942429, 0.334407, 0.000000, 0.000000 -652, 0.942253, 0.334901, 0.000000, 0.000000 -653, 0.942078, 0.335395, 0.000000, 0.000000 -654, 0.941902, 0.335888, 0.000000, 0.000000 -655, 0.941726, 0.336381, 0.000000, 0.000000 -656, 0.941550, 0.336874, 0.000000, 0.000000 -657, 0.941373, 0.337368, 0.000000, 0.000000 -658, 0.941196, 0.337861, 0.000000, 0.000000 -659, 0.941019, 0.338354, 0.000000, 0.000000 -660, 0.940842, 0.338846, 0.000000, 0.000000 -661, 0.940664, 0.339339, 0.000000, 0.000000 -662, 0.940486, 0.339832, 0.000000, 0.000000 -663, 0.940308, 0.340324, 0.000000, 0.000000 -664, 0.940130, 0.340817, 0.000000, 0.000000 -665, 0.939951, 0.341309, 0.000000, 0.000000 -666, 0.939772, 0.341801, 0.000000, 0.000000 -667, 0.939593, 0.342294, 0.000000, 0.000000 -668, 0.939414, 0.342786, 0.000000, 0.000000 -669, 0.939234, 0.343278, 0.000000, 0.000000 -670, 0.939054, 0.343770, 0.000000, 0.000000 -671, 0.938874, 0.344261, 0.000000, 0.000000 -672, 0.938693, 0.344753, 0.000000, 0.000000 -673, 0.938513, 0.345245, 0.000000, 0.000000 -674, 0.938332, 0.345736, 0.000000, 0.000000 -675, 0.938151, 0.346228, 0.000000, 0.000000 -676, 0.937969, 0.346719, 0.000000, 0.000000 -677, 0.937787, 0.347210, 0.000000, 0.000000 -678, 0.937605, 0.347701, 0.000000, 0.000000 -679, 0.937423, 0.348192, 0.000000, 0.000000 -680, 0.937241, 0.348683, 0.000000, 0.000000 -681, 0.937058, 0.349174, 0.000000, 0.000000 -682, 0.936875, 0.349665, 0.000000, 0.000000 -683, 0.936692, 0.350156, 0.000000, 0.000000 -684, 0.936508, 0.350646, 0.000000, 0.000000 -685, 0.936324, 0.351137, 0.000000, 0.000000 -686, 0.936140, 0.351627, 0.000000, 0.000000 -687, 0.935956, 0.352117, 0.000000, 0.000000 -688, 0.935771, 0.352607, 0.000000, 0.000000 -689, 0.935587, 0.353098, 0.000000, 0.000000 -690, 0.935401, 0.353588, 0.000000, 0.000000 -691, 0.935216, 0.354077, 0.000000, 0.000000 -692, 0.935031, 0.354567, 0.000000, 0.000000 -693, 0.934845, 0.355057, 0.000000, 0.000000 -694, 0.934659, 0.355547, 0.000000, 0.000000 -695, 0.934472, 0.356036, 0.000000, 0.000000 -696, 0.934286, 0.356525, 0.000000, 0.000000 -697, 0.934099, 0.357015, 0.000000, 0.000000 -698, 0.933912, 0.357504, 0.000000, 0.000000 -699, 0.933724, 0.357993, 0.000000, 0.000000 -700, 0.933537, 0.358482, 0.000000, 0.000000 -701, 0.933349, 0.358971, 0.000000, 0.000000 -702, 0.933161, 0.359460, 0.000000, 0.000000 -703, 0.932972, 0.359948, 0.000000, 0.000000 -704, 0.932784, 0.360437, 0.000000, 0.000000 -705, 0.932595, 0.360926, 0.000000, 0.000000 -706, 0.932405, 0.361414, 0.000000, 0.000000 -707, 0.932216, 0.361902, 0.000000, 0.000000 -708, 0.932026, 0.362391, 0.000000, 0.000000 -709, 0.931836, 0.362879, 0.000000, 0.000000 -710, 0.931646, 0.363367, 0.000000, 0.000000 -711, 0.931456, 0.363855, 0.000000, 0.000000 -712, 0.931265, 0.364342, 0.000000, 0.000000 -713, 0.931074, 0.364830, 0.000000, 0.000000 -714, 0.930883, 0.365318, 0.000000, 0.000000 -715, 0.930691, 0.365805, 0.000000, 0.000000 -716, 0.930500, 0.366293, 0.000000, 0.000000 -717, 0.930308, 0.366780, 0.000000, 0.000000 -718, 0.930115, 0.367267, 0.000000, 0.000000 -719, 0.929923, 0.367754, 0.000000, 0.000000 -720, 0.929730, 0.368241, 0.000000, 0.000000 -721, 0.929537, 0.368728, 0.000000, 0.000000 -722, 0.929344, 0.369215, 0.000000, 0.000000 -723, 0.929150, 0.369702, 0.000000, 0.000000 -724, 0.928957, 0.370188, 0.000000, 0.000000 -725, 0.928763, 0.370675, 0.000000, 0.000000 -726, 0.928568, 0.371161, 0.000000, 0.000000 -727, 0.928374, 0.371648, 0.000000, 0.000000 -728, 0.928179, 0.372134, 0.000000, 0.000000 -729, 0.927984, 0.372620, 0.000000, 0.000000 -730, 0.927789, 0.373106, 0.000000, 0.000000 -731, 0.927593, 0.373592, 0.000000, 0.000000 -732, 0.927397, 0.374078, 0.000000, 0.000000 -733, 0.927201, 0.374563, 0.000000, 0.000000 -734, 0.927005, 0.375049, 0.000000, 0.000000 -735, 0.926808, 0.375535, 0.000000, 0.000000 -736, 0.926612, 0.376020, 0.000000, 0.000000 -737, 0.926415, 0.376505, 0.000000, 0.000000 -738, 0.926217, 0.376990, 0.000000, 0.000000 -739, 0.926020, 0.377475, 0.000000, 0.000000 -740, 0.925822, 0.377960, 0.000000, 0.000000 -741, 0.925624, 0.378445, 0.000000, 0.000000 -742, 0.925425, 0.378930, 0.000000, 0.000000 -743, 0.925227, 0.379415, 0.000000, 0.000000 -744, 0.925028, 0.379899, 0.000000, 0.000000 -745, 0.924829, 0.380384, 0.000000, 0.000000 -746, 0.924629, 0.380868, 0.000000, 0.000000 -747, 0.924430, 0.381352, 0.000000, 0.000000 -748, 0.924230, 0.381836, 0.000000, 0.000000 -749, 0.924030, 0.382320, 0.000000, 0.000000 -750, 0.923829, 0.382804, 0.000000, 0.000000 -751, 0.923629, 0.383288, 0.000000, 0.000000 -752, 0.923428, 0.383772, 0.000000, 0.000000 -753, 0.923227, 0.384256, 0.000000, 0.000000 -754, 0.923025, 0.384739, 0.000000, 0.000000 -755, 0.922824, 0.385222, 0.000000, 0.000000 -756, 0.922622, 0.385706, 0.000000, 0.000000 -757, 0.922420, 0.386189, 0.000000, 0.000000 -758, 0.922217, 0.386672, 0.000000, 0.000000 -759, 0.922015, 0.387155, 0.000000, 0.000000 -760, 0.921812, 0.387638, 0.000000, 0.000000 -761, 0.921609, 0.388121, 0.000000, 0.000000 -762, 0.921405, 0.388603, 0.000000, 0.000000 -763, 0.921201, 0.389086, 0.000000, 0.000000 -764, 0.920998, 0.389568, 0.000000, 0.000000 -765, 0.920793, 0.390051, 0.000000, 0.000000 -766, 0.920589, 0.390533, 0.000000, 0.000000 -767, 0.920384, 0.391015, 0.000000, 0.000000 -768, 0.920179, 0.391497, 0.000000, 0.000000 -769, 0.919974, 0.391979, 0.000000, 0.000000 -770, 0.919769, 0.392461, 0.000000, 0.000000 -771, 0.919563, 0.392942, 0.000000, 0.000000 -772, 0.919357, 0.393424, 0.000000, 0.000000 -773, 0.919151, 0.393906, 0.000000, 0.000000 -774, 0.918944, 0.394387, 0.000000, 0.000000 -775, 0.918738, 0.394868, 0.000000, 0.000000 -776, 0.918531, 0.395349, 0.000000, 0.000000 -777, 0.918324, 0.395830, 0.000000, 0.000000 -778, 0.918116, 0.396311, 0.000000, 0.000000 -779, 0.917908, 0.396792, 0.000000, 0.000000 -780, 0.917701, 0.397273, 0.000000, 0.000000 -781, 0.917492, 0.397753, 0.000000, 0.000000 -782, 0.917284, 0.398234, 0.000000, 0.000000 -783, 0.917075, 0.398714, 0.000000, 0.000000 -784, 0.916866, 0.399195, 0.000000, 0.000000 -785, 0.916657, 0.399675, 0.000000, 0.000000 -786, 0.916448, 0.400155, 0.000000, 0.000000 -787, 0.916238, 0.400635, 0.000000, 0.000000 -788, 0.916028, 0.401115, 0.000000, 0.000000 -789, 0.915818, 0.401594, 0.000000, 0.000000 -790, 0.915607, 0.402074, 0.000000, 0.000000 -791, 0.915396, 0.402554, 0.000000, 0.000000 -792, 0.915185, 0.403033, 0.000000, 0.000000 -793, 0.914974, 0.403512, 0.000000, 0.000000 -794, 0.914763, 0.403991, 0.000000, 0.000000 -795, 0.914551, 0.404471, 0.000000, 0.000000 -796, 0.914339, 0.404950, 0.000000, 0.000000 -797, 0.914127, 0.405428, 0.000000, 0.000000 -798, 0.913914, 0.405907, 0.000000, 0.000000 -799, 0.913702, 0.406386, 0.000000, 0.000000 -800, 0.913489, 0.406864, 0.000000, 0.000000 -801, 0.913275, 0.407343, 0.000000, 0.000000 -802, 0.913062, 0.407821, 0.000000, 0.000000 -803, 0.912848, 0.408299, 0.000000, 0.000000 -804, 0.912634, 0.408777, 0.000000, 0.000000 -805, 0.912420, 0.409255, 0.000000, 0.000000 -806, 0.912206, 0.409733, 0.000000, 0.000000 -807, 0.911991, 0.410211, 0.000000, 0.000000 -808, 0.911776, 0.410688, 0.000000, 0.000000 -809, 0.911561, 0.411166, 0.000000, 0.000000 -810, 0.911345, 0.411643, 0.000000, 0.000000 -811, 0.911129, 0.412121, 0.000000, 0.000000 -812, 0.910913, 0.412598, 0.000000, 0.000000 -813, 0.910697, 0.413075, 0.000000, 0.000000 -814, 0.910481, 0.413552, 0.000000, 0.000000 -815, 0.910264, 0.414029, 0.000000, 0.000000 -816, 0.910047, 0.414505, 0.000000, 0.000000 -817, 0.909830, 0.414982, 0.000000, 0.000000 -818, 0.909612, 0.415458, 0.000000, 0.000000 -819, 0.909394, 0.415935, 0.000000, 0.000000 -820, 0.909177, 0.416411, 0.000000, 0.000000 -821, 0.908958, 0.416887, 0.000000, 0.000000 -822, 0.908740, 0.417363, 0.000000, 0.000000 -823, 0.908521, 0.417839, 0.000000, 0.000000 -824, 0.908302, 0.418315, 0.000000, 0.000000 -825, 0.908083, 0.418791, 0.000000, 0.000000 -826, 0.907863, 0.419266, 0.000000, 0.000000 -827, 0.907644, 0.419742, 0.000000, 0.000000 -828, 0.907424, 0.420217, 0.000000, 0.000000 -829, 0.907203, 0.420692, 0.000000, 0.000000 -830, 0.906983, 0.421167, 0.000000, 0.000000 -831, 0.906762, 0.421642, 0.000000, 0.000000 -832, 0.906541, 0.422117, 0.000000, 0.000000 -833, 0.906320, 0.422592, 0.000000, 0.000000 -834, 0.906099, 0.423067, 0.000000, 0.000000 -835, 0.905877, 0.423541, 0.000000, 0.000000 -836, 0.905655, 0.424015, 0.000000, 0.000000 -837, 0.905433, 0.424490, 0.000000, 0.000000 -838, 0.905210, 0.424964, 0.000000, 0.000000 -839, 0.904988, 0.425438, 0.000000, 0.000000 -840, 0.904765, 0.425912, 0.000000, 0.000000 -841, 0.904541, 0.426386, 0.000000, 0.000000 -842, 0.904318, 0.426860, 0.000000, 0.000000 -843, 0.904094, 0.427333, 0.000000, 0.000000 -844, 0.903870, 0.427807, 0.000000, 0.000000 -845, 0.903646, 0.428280, 0.000000, 0.000000 -846, 0.903422, 0.428753, 0.000000, 0.000000 -847, 0.903197, 0.429226, 0.000000, 0.000000 -848, 0.902972, 0.429699, 0.000000, 0.000000 -849, 0.902747, 0.430172, 0.000000, 0.000000 -850, 0.902521, 0.430645, 0.000000, 0.000000 -851, 0.902296, 0.431118, 0.000000, 0.000000 -852, 0.902070, 0.431590, 0.000000, 0.000000 -853, 0.901844, 0.432063, 0.000000, 0.000000 -854, 0.901617, 0.432535, 0.000000, 0.000000 -855, 0.901390, 0.433007, 0.000000, 0.000000 -856, 0.901164, 0.433479, 0.000000, 0.000000 -857, 0.900936, 0.433951, 0.000000, 0.000000 -858, 0.900709, 0.434423, 0.000000, 0.000000 -859, 0.900481, 0.434895, 0.000000, 0.000000 -860, 0.900253, 0.435366, 0.000000, 0.000000 -861, 0.900025, 0.435838, 0.000000, 0.000000 -862, 0.899797, 0.436309, 0.000000, 0.000000 -863, 0.899568, 0.436780, 0.000000, 0.000000 -864, 0.899339, 0.437251, 0.000000, 0.000000 -865, 0.899110, 0.437722, 0.000000, 0.000000 -866, 0.898881, 0.438193, 0.000000, 0.000000 -867, 0.898651, 0.438664, 0.000000, 0.000000 -868, 0.898421, 0.439135, 0.000000, 0.000000 -869, 0.898191, 0.439605, 0.000000, 0.000000 -870, 0.897961, 0.440076, 0.000000, 0.000000 -871, 0.897730, 0.440546, 0.000000, 0.000000 -872, 0.897499, 0.441016, 0.000000, 0.000000 -873, 0.897268, 0.441486, 0.000000, 0.000000 -874, 0.897037, 0.441956, 0.000000, 0.000000 -875, 0.896805, 0.442426, 0.000000, 0.000000 -876, 0.896573, 0.442895, 0.000000, 0.000000 -877, 0.896341, 0.443365, 0.000000, 0.000000 -878, 0.896109, 0.443834, 0.000000, 0.000000 -879, 0.895876, 0.444304, 0.000000, 0.000000 -880, 0.895643, 0.444773, 0.000000, 0.000000 -881, 0.895410, 0.445242, 0.000000, 0.000000 -882, 0.895177, 0.445711, 0.000000, 0.000000 -883, 0.894943, 0.446180, 0.000000, 0.000000 -884, 0.894710, 0.446648, 0.000000, 0.000000 -885, 0.894476, 0.447117, 0.000000, 0.000000 -886, 0.894241, 0.447585, 0.000000, 0.000000 -887, 0.894007, 0.448054, 0.000000, 0.000000 -888, 0.893772, 0.448522, 0.000000, 0.000000 -889, 0.893537, 0.448990, 0.000000, 0.000000 -890, 0.893302, 0.449458, 0.000000, 0.000000 -891, 0.893066, 0.449926, 0.000000, 0.000000 -892, 0.892830, 0.450393, 0.000000, 0.000000 -893, 0.892594, 0.450861, 0.000000, 0.000000 -894, 0.892358, 0.451328, 0.000000, 0.000000 -895, 0.892121, 0.451796, 0.000000, 0.000000 -896, 0.891885, 0.452263, 0.000000, 0.000000 -897, 0.891648, 0.452730, 0.000000, 0.000000 -898, 0.891410, 0.453197, 0.000000, 0.000000 -899, 0.891173, 0.453664, 0.000000, 0.000000 -900, 0.890935, 0.454130, 0.000000, 0.000000 -901, 0.890697, 0.454597, 0.000000, 0.000000 -902, 0.890459, 0.455064, 0.000000, 0.000000 -903, 0.890220, 0.455530, 0.000000, 0.000000 -904, 0.889982, 0.455996, 0.000000, 0.000000 -905, 0.889743, 0.456462, 0.000000, 0.000000 -906, 0.889504, 0.456928, 0.000000, 0.000000 -907, 0.889264, 0.457394, 0.000000, 0.000000 -908, 0.889024, 0.457860, 0.000000, 0.000000 -909, 0.888785, 0.458325, 0.000000, 0.000000 -910, 0.888544, 0.458791, 0.000000, 0.000000 -911, 0.888304, 0.459256, 0.000000, 0.000000 -912, 0.888063, 0.459721, 0.000000, 0.000000 -913, 0.887822, 0.460186, 0.000000, 0.000000 -914, 0.887581, 0.460651, 0.000000, 0.000000 -915, 0.887340, 0.461116, 0.000000, 0.000000 -916, 0.887098, 0.461581, 0.000000, 0.000000 -917, 0.886856, 0.462045, 0.000000, 0.000000 -918, 0.886614, 0.462510, 0.000000, 0.000000 -919, 0.886372, 0.462974, 0.000000, 0.000000 -920, 0.886129, 0.463438, 0.000000, 0.000000 -921, 0.885886, 0.463902, 0.000000, 0.000000 -922, 0.885643, 0.464366, 0.000000, 0.000000 -923, 0.885400, 0.464830, 0.000000, 0.000000 -924, 0.885156, 0.465294, 0.000000, 0.000000 -925, 0.884912, 0.465757, 0.000000, 0.000000 -926, 0.884668, 0.466221, 0.000000, 0.000000 -927, 0.884424, 0.466684, 0.000000, 0.000000 -928, 0.884179, 0.467147, 0.000000, 0.000000 -929, 0.883935, 0.467610, 0.000000, 0.000000 -930, 0.883690, 0.468073, 0.000000, 0.000000 -931, 0.883444, 0.468536, 0.000000, 0.000000 -932, 0.883199, 0.468999, 0.000000, 0.000000 -933, 0.882953, 0.469461, 0.000000, 0.000000 -934, 0.882707, 0.469924, 0.000000, 0.000000 -935, 0.882461, 0.470386, 0.000000, 0.000000 -936, 0.882214, 0.470848, 0.000000, 0.000000 -937, 0.881968, 0.471310, 0.000000, 0.000000 -938, 0.881721, 0.471772, 0.000000, 0.000000 -939, 0.881473, 0.472234, 0.000000, 0.000000 -940, 0.881226, 0.472695, 0.000000, 0.000000 -941, 0.880978, 0.473157, 0.000000, 0.000000 -942, 0.880730, 0.473618, 0.000000, 0.000000 -943, 0.880482, 0.474079, 0.000000, 0.000000 -944, 0.880234, 0.474541, 0.000000, 0.000000 -945, 0.879985, 0.475002, 0.000000, 0.000000 -946, 0.879736, 0.475462, 0.000000, 0.000000 -947, 0.879487, 0.475923, 0.000000, 0.000000 -948, 0.879237, 0.476384, 0.000000, 0.000000 -949, 0.878988, 0.476844, 0.000000, 0.000000 -950, 0.878738, 0.477305, 0.000000, 0.000000 -951, 0.878488, 0.477765, 0.000000, 0.000000 -952, 0.878237, 0.478225, 0.000000, 0.000000 -953, 0.877987, 0.478685, 0.000000, 0.000000 -954, 0.877736, 0.479145, 0.000000, 0.000000 -955, 0.877485, 0.479604, 0.000000, 0.000000 -956, 0.877234, 0.480064, 0.000000, 0.000000 -957, 0.876982, 0.480523, 0.000000, 0.000000 -958, 0.876730, 0.480982, 0.000000, 0.000000 -959, 0.876478, 0.481442, 0.000000, 0.000000 -960, 0.876226, 0.481901, 0.000000, 0.000000 -961, 0.875973, 0.482359, 0.000000, 0.000000 -962, 0.875721, 0.482818, 0.000000, 0.000000 -963, 0.875468, 0.483277, 0.000000, 0.000000 -964, 0.875214, 0.483735, 0.000000, 0.000000 -965, 0.874961, 0.484194, 0.000000, 0.000000 -966, 0.874707, 0.484652, 0.000000, 0.000000 -967, 0.874453, 0.485110, 0.000000, 0.000000 -968, 0.874199, 0.485568, 0.000000, 0.000000 -969, 0.873945, 0.486026, 0.000000, 0.000000 -970, 0.873690, 0.486483, 0.000000, 0.000000 -971, 0.873435, 0.486941, 0.000000, 0.000000 -972, 0.873180, 0.487398, 0.000000, 0.000000 -973, 0.872924, 0.487856, 0.000000, 0.000000 -974, 0.872669, 0.488313, 0.000000, 0.000000 -975, 0.872413, 0.488770, 0.000000, 0.000000 -976, 0.872157, 0.489227, 0.000000, 0.000000 -977, 0.871900, 0.489683, 0.000000, 0.000000 -978, 0.871644, 0.490140, 0.000000, 0.000000 -979, 0.871387, 0.490596, 0.000000, 0.000000 -980, 0.871130, 0.491053, 0.000000, 0.000000 -981, 0.870872, 0.491509, 0.000000, 0.000000 -982, 0.870615, 0.491965, 0.000000, 0.000000 -983, 0.870357, 0.492421, 0.000000, 0.000000 -984, 0.870099, 0.492877, 0.000000, 0.000000 -985, 0.869841, 0.493332, 0.000000, 0.000000 -986, 0.869582, 0.493788, 0.000000, 0.000000 -987, 0.869324, 0.494243, 0.000000, 0.000000 -988, 0.869065, 0.494699, 0.000000, 0.000000 -989, 0.868805, 0.495154, 0.000000, 0.000000 -990, 0.868546, 0.495609, 0.000000, 0.000000 -991, 0.868286, 0.496064, 0.000000, 0.000000 -992, 0.868026, 0.496518, 0.000000, 0.000000 -993, 0.867766, 0.496973, 0.000000, 0.000000 -994, 0.867506, 0.497427, 0.000000, 0.000000 -995, 0.867245, 0.497882, 0.000000, 0.000000 -996, 0.866984, 0.498336, 0.000000, 0.000000 -997, 0.866723, 0.498790, 0.000000, 0.000000 -998, 0.866462, 0.499244, 0.000000, 0.000000 -999, 0.866200, 0.499698, 0.000000, 0.000000 -1000, 0.865938, 0.500151, 0.000000, 0.000000 -1001, 0.865676, 0.500605, 0.000000, 0.000000 -1002, 0.865414, 0.501058, 0.000000, 0.000000 -1003, 0.865151, 0.501511, 0.000000, 0.000000 -1004, 0.864888, 0.501964, 0.000000, 0.000000 -1005, 0.864625, 0.502417, 0.000000, 0.000000 -1006, 0.864362, 0.502870, 0.000000, 0.000000 -1007, 0.864099, 0.503323, 0.000000, 0.000000 -1008, 0.863835, 0.503775, 0.000000, 0.000000 -1009, 0.863571, 0.504228, 0.000000, 0.000000 -1010, 0.863307, 0.504680, 0.000000, 0.000000 -1011, 0.863042, 0.505132, 0.000000, 0.000000 -1012, 0.862777, 0.505584, 0.000000, 0.000000 -1013, 0.862512, 0.506036, 0.000000, 0.000000 -1014, 0.862247, 0.506487, 0.000000, 0.000000 -1015, 0.861982, 0.506939, 0.000000, 0.000000 -1016, 0.861716, 0.507390, 0.000000, 0.000000 -1017, 0.861450, 0.507842, 0.000000, 0.000000 -1018, 0.861184, 0.508293, 0.000000, 0.000000 -1019, 0.860918, 0.508744, 0.000000, 0.000000 -1020, 0.860651, 0.509195, 0.000000, 0.000000 -1021, 0.860385, 0.509645, 0.000000, 0.000000 -1022, 0.860117, 0.510096, 0.000000, 0.000000 -1023, 0.859850, 0.510546, 0.000000, 0.000000 -1024, 0.859583, 0.510997, 0.000000, 0.000000 -1025, 0.859315, 0.511447, 0.000000, 0.000000 -1026, 0.859047, 0.511897, 0.000000, 0.000000 -1027, 0.858779, 0.512347, 0.000000, 0.000000 -1028, 0.858510, 0.512797, 0.000000, 0.000000 -1029, 0.858241, 0.513246, 0.000000, 0.000000 -1030, 0.857973, 0.513696, 0.000000, 0.000000 -1031, 0.857703, 0.514145, 0.000000, 0.000000 -1032, 0.857434, 0.514594, 0.000000, 0.000000 -1033, 0.857164, 0.515043, 0.000000, 0.000000 -1034, 0.856894, 0.515492, 0.000000, 0.000000 -1035, 0.856624, 0.515941, 0.000000, 0.000000 -1036, 0.856354, 0.516389, 0.000000, 0.000000 -1037, 0.856083, 0.516838, 0.000000, 0.000000 -1038, 0.855813, 0.517286, 0.000000, 0.000000 -1039, 0.855541, 0.517734, 0.000000, 0.000000 -1040, 0.855270, 0.518182, 0.000000, 0.000000 -1041, 0.854999, 0.518630, 0.000000, 0.000000 -1042, 0.854727, 0.519078, 0.000000, 0.000000 -1043, 0.854455, 0.519526, 0.000000, 0.000000 -1044, 0.854183, 0.519973, 0.000000, 0.000000 -1045, 0.853910, 0.520420, 0.000000, 0.000000 -1046, 0.853638, 0.520868, 0.000000, 0.000000 -1047, 0.853365, 0.521315, 0.000000, 0.000000 -1048, 0.853091, 0.521761, 0.000000, 0.000000 -1049, 0.852818, 0.522208, 0.000000, 0.000000 -1050, 0.852544, 0.522655, 0.000000, 0.000000 -1051, 0.852270, 0.523101, 0.000000, 0.000000 -1052, 0.851996, 0.523548, 0.000000, 0.000000 -1053, 0.851722, 0.523994, 0.000000, 0.000000 -1054, 0.851447, 0.524440, 0.000000, 0.000000 -1055, 0.851173, 0.524886, 0.000000, 0.000000 -1056, 0.850898, 0.525332, 0.000000, 0.000000 -1057, 0.850622, 0.525777, 0.000000, 0.000000 -1058, 0.850347, 0.526223, 0.000000, 0.000000 -1059, 0.850071, 0.526668, 0.000000, 0.000000 -1060, 0.849795, 0.527113, 0.000000, 0.000000 -1061, 0.849519, 0.527558, 0.000000, 0.000000 -1062, 0.849243, 0.528003, 0.000000, 0.000000 -1063, 0.848966, 0.528448, 0.000000, 0.000000 -1064, 0.848689, 0.528892, 0.000000, 0.000000 -1065, 0.848412, 0.529337, 0.000000, 0.000000 -1066, 0.848134, 0.529781, 0.000000, 0.000000 -1067, 0.847857, 0.530225, 0.000000, 0.000000 -1068, 0.847579, 0.530669, 0.000000, 0.000000 -1069, 0.847301, 0.531113, 0.000000, 0.000000 -1070, 0.847023, 0.531557, 0.000000, 0.000000 -1071, 0.846744, 0.532000, 0.000000, 0.000000 -1072, 0.846465, 0.532444, 0.000000, 0.000000 -1073, 0.846186, 0.532887, 0.000000, 0.000000 -1074, 0.845907, 0.533330, 0.000000, 0.000000 -1075, 0.845628, 0.533773, 0.000000, 0.000000 -1076, 0.845348, 0.534216, 0.000000, 0.000000 -1077, 0.845068, 0.534659, 0.000000, 0.000000 -1078, 0.844788, 0.535101, 0.000000, 0.000000 -1079, 0.844507, 0.535544, 0.000000, 0.000000 -1080, 0.844227, 0.535986, 0.000000, 0.000000 -1081, 0.843946, 0.536428, 0.000000, 0.000000 -1082, 0.843665, 0.536870, 0.000000, 0.000000 -1083, 0.843384, 0.537312, 0.000000, 0.000000 -1084, 0.843102, 0.537754, 0.000000, 0.000000 -1085, 0.842820, 0.538195, 0.000000, 0.000000 -1086, 0.842538, 0.538636, 0.000000, 0.000000 -1087, 0.842256, 0.539078, 0.000000, 0.000000 -1088, 0.841974, 0.539519, 0.000000, 0.000000 -1089, 0.841691, 0.539960, 0.000000, 0.000000 -1090, 0.841408, 0.540400, 0.000000, 0.000000 -1091, 0.841125, 0.540841, 0.000000, 0.000000 -1092, 0.840841, 0.541282, 0.000000, 0.000000 -1093, 0.840558, 0.541722, 0.000000, 0.000000 -1094, 0.840274, 0.542162, 0.000000, 0.000000 -1095, 0.839990, 0.542602, 0.000000, 0.000000 -1096, 0.839706, 0.543042, 0.000000, 0.000000 -1097, 0.839421, 0.543482, 0.000000, 0.000000 -1098, 0.839136, 0.543921, 0.000000, 0.000000 -1099, 0.838851, 0.544361, 0.000000, 0.000000 -1100, 0.838566, 0.544800, 0.000000, 0.000000 -1101, 0.838280, 0.545239, 0.000000, 0.000000 -1102, 0.837995, 0.545678, 0.000000, 0.000000 -1103, 0.837709, 0.546117, 0.000000, 0.000000 -1104, 0.837423, 0.546556, 0.000000, 0.000000 -1105, 0.837136, 0.546994, 0.000000, 0.000000 -1106, 0.836850, 0.547433, 0.000000, 0.000000 -1107, 0.836563, 0.547871, 0.000000, 0.000000 -1108, 0.836276, 0.548309, 0.000000, 0.000000 -1109, 0.835988, 0.548747, 0.000000, 0.000000 -1110, 0.835701, 0.549185, 0.000000, 0.000000 -1111, 0.835413, 0.549622, 0.000000, 0.000000 -1112, 0.835125, 0.550060, 0.000000, 0.000000 -1113, 0.834837, 0.550497, 0.000000, 0.000000 -1114, 0.834549, 0.550934, 0.000000, 0.000000 -1115, 0.834260, 0.551371, 0.000000, 0.000000 -1116, 0.833971, 0.551808, 0.000000, 0.000000 -1117, 0.833682, 0.552245, 0.000000, 0.000000 -1118, 0.833392, 0.552682, 0.000000, 0.000000 -1119, 0.833103, 0.553118, 0.000000, 0.000000 -1120, 0.832813, 0.553554, 0.000000, 0.000000 -1121, 0.832523, 0.553991, 0.000000, 0.000000 -1122, 0.832233, 0.554427, 0.000000, 0.000000 -1123, 0.831942, 0.554862, 0.000000, 0.000000 -1124, 0.831651, 0.555298, 0.000000, 0.000000 -1125, 0.831360, 0.555734, 0.000000, 0.000000 -1126, 0.831069, 0.556169, 0.000000, 0.000000 -1127, 0.830778, 0.556604, 0.000000, 0.000000 -1128, 0.830486, 0.557039, 0.000000, 0.000000 -1129, 0.830194, 0.557474, 0.000000, 0.000000 -1130, 0.829902, 0.557909, 0.000000, 0.000000 -1131, 0.829610, 0.558343, 0.000000, 0.000000 -1132, 0.829317, 0.558778, 0.000000, 0.000000 -1133, 0.829025, 0.559212, 0.000000, 0.000000 -1134, 0.828732, 0.559646, 0.000000, 0.000000 -1135, 0.828438, 0.560080, 0.000000, 0.000000 -1136, 0.828145, 0.560514, 0.000000, 0.000000 -1137, 0.827851, 0.560948, 0.000000, 0.000000 -1138, 0.827557, 0.561381, 0.000000, 0.000000 -1139, 0.827263, 0.561815, 0.000000, 0.000000 -1140, 0.826969, 0.562248, 0.000000, 0.000000 -1141, 0.826674, 0.562681, 0.000000, 0.000000 -1142, 0.826379, 0.563114, 0.000000, 0.000000 -1143, 0.826084, 0.563547, 0.000000, 0.000000 -1144, 0.825789, 0.563979, 0.000000, 0.000000 -1145, 0.825493, 0.564412, 0.000000, 0.000000 -1146, 0.825198, 0.564844, 0.000000, 0.000000 -1147, 0.824902, 0.565276, 0.000000, 0.000000 -1148, 0.824606, 0.565708, 0.000000, 0.000000 -1149, 0.824309, 0.566140, 0.000000, 0.000000 -1150, 0.824012, 0.566572, 0.000000, 0.000000 -1151, 0.823716, 0.567003, 0.000000, 0.000000 -1152, 0.823418, 0.567435, 0.000000, 0.000000 -1153, 0.823121, 0.567866, 0.000000, 0.000000 -1154, 0.822824, 0.568297, 0.000000, 0.000000 -1155, 0.822526, 0.568728, 0.000000, 0.000000 -1156, 0.822228, 0.569158, 0.000000, 0.000000 -1157, 0.821930, 0.569589, 0.000000, 0.000000 -1158, 0.821631, 0.570019, 0.000000, 0.000000 -1159, 0.821333, 0.570450, 0.000000, 0.000000 -1160, 0.821034, 0.570880, 0.000000, 0.000000 -1161, 0.820734, 0.571310, 0.000000, 0.000000 -1162, 0.820435, 0.571740, 0.000000, 0.000000 -1163, 0.820136, 0.572169, 0.000000, 0.000000 -1164, 0.819836, 0.572599, 0.000000, 0.000000 -1165, 0.819536, 0.573028, 0.000000, 0.000000 -1166, 0.819235, 0.573457, 0.000000, 0.000000 -1167, 0.818935, 0.573886, 0.000000, 0.000000 -1168, 0.818634, 0.574315, 0.000000, 0.000000 -1169, 0.818333, 0.574744, 0.000000, 0.000000 -1170, 0.818032, 0.575172, 0.000000, 0.000000 -1171, 0.817731, 0.575601, 0.000000, 0.000000 -1172, 0.817429, 0.576029, 0.000000, 0.000000 -1173, 0.817127, 0.576457, 0.000000, 0.000000 -1174, 0.816825, 0.576885, 0.000000, 0.000000 -1175, 0.816523, 0.577313, 0.000000, 0.000000 -1176, 0.816221, 0.577740, 0.000000, 0.000000 -1177, 0.815918, 0.578168, 0.000000, 0.000000 -1178, 0.815615, 0.578595, 0.000000, 0.000000 -1179, 0.815312, 0.579022, 0.000000, 0.000000 -1180, 0.815008, 0.579449, 0.000000, 0.000000 -1181, 0.814705, 0.579876, 0.000000, 0.000000 -1182, 0.814401, 0.580303, 0.000000, 0.000000 -1183, 0.814097, 0.580729, 0.000000, 0.000000 -1184, 0.813793, 0.581155, 0.000000, 0.000000 -1185, 0.813488, 0.581581, 0.000000, 0.000000 -1186, 0.813183, 0.582008, 0.000000, 0.000000 -1187, 0.812878, 0.582433, 0.000000, 0.000000 -1188, 0.812573, 0.582859, 0.000000, 0.000000 -1189, 0.812268, 0.583285, 0.000000, 0.000000 -1190, 0.811962, 0.583710, 0.000000, 0.000000 -1191, 0.811656, 0.584135, 0.000000, 0.000000 -1192, 0.811350, 0.584560, 0.000000, 0.000000 -1193, 0.811044, 0.584985, 0.000000, 0.000000 -1194, 0.810738, 0.585410, 0.000000, 0.000000 -1195, 0.810431, 0.585834, 0.000000, 0.000000 -1196, 0.810124, 0.586259, 0.000000, 0.000000 -1197, 0.809817, 0.586683, 0.000000, 0.000000 -1198, 0.809509, 0.587107, 0.000000, 0.000000 -1199, 0.809202, 0.587531, 0.000000, 0.000000 -1200, 0.808894, 0.587955, 0.000000, 0.000000 -1201, 0.808586, 0.588378, 0.000000, 0.000000 -1202, 0.808277, 0.588802, 0.000000, 0.000000 -1203, 0.807969, 0.589225, 0.000000, 0.000000 -1204, 0.807660, 0.589648, 0.000000, 0.000000 -1205, 0.807351, 0.590071, 0.000000, 0.000000 -1206, 0.807042, 0.590494, 0.000000, 0.000000 -1207, 0.806733, 0.590917, 0.000000, 0.000000 -1208, 0.806423, 0.591339, 0.000000, 0.000000 -1209, 0.806113, 0.591761, 0.000000, 0.000000 -1210, 0.805803, 0.592183, 0.000000, 0.000000 -1211, 0.805493, 0.592605, 0.000000, 0.000000 -1212, 0.805182, 0.593027, 0.000000, 0.000000 -1213, 0.804872, 0.593449, 0.000000, 0.000000 -1214, 0.804561, 0.593870, 0.000000, 0.000000 -1215, 0.804250, 0.594292, 0.000000, 0.000000 -1216, 0.803938, 0.594713, 0.000000, 0.000000 -1217, 0.803627, 0.595134, 0.000000, 0.000000 -1218, 0.803315, 0.595555, 0.000000, 0.000000 -1219, 0.803003, 0.595975, 0.000000, 0.000000 -1220, 0.802690, 0.596396, 0.000000, 0.000000 -1221, 0.802378, 0.596816, 0.000000, 0.000000 -1222, 0.802065, 0.597236, 0.000000, 0.000000 -1223, 0.801752, 0.597656, 0.000000, 0.000000 -1224, 0.801439, 0.598076, 0.000000, 0.000000 -1225, 0.801126, 0.598496, 0.000000, 0.000000 -1226, 0.800812, 0.598915, 0.000000, 0.000000 -1227, 0.800498, 0.599335, 0.000000, 0.000000 -1228, 0.800184, 0.599754, 0.000000, 0.000000 -1229, 0.799870, 0.600173, 0.000000, 0.000000 -1230, 0.799556, 0.600592, 0.000000, 0.000000 -1231, 0.799241, 0.601011, 0.000000, 0.000000 -1232, 0.798926, 0.601429, 0.000000, 0.000000 -1233, 0.798611, 0.601848, 0.000000, 0.000000 -1234, 0.798296, 0.602266, 0.000000, 0.000000 -1235, 0.797980, 0.602684, 0.000000, 0.000000 -1236, 0.797664, 0.603102, 0.000000, 0.000000 -1237, 0.797348, 0.603519, 0.000000, 0.000000 -1238, 0.797032, 0.603937, 0.000000, 0.000000 -1239, 0.796716, 0.604354, 0.000000, 0.000000 -1240, 0.796399, 0.604772, 0.000000, 0.000000 -1241, 0.796082, 0.605189, 0.000000, 0.000000 -1242, 0.795765, 0.605605, 0.000000, 0.000000 -1243, 0.795448, 0.606022, 0.000000, 0.000000 -1244, 0.795130, 0.606439, 0.000000, 0.000000 -1245, 0.794812, 0.606855, 0.000000, 0.000000 -1246, 0.794494, 0.607271, 0.000000, 0.000000 -1247, 0.794176, 0.607687, 0.000000, 0.000000 -1248, 0.793858, 0.608103, 0.000000, 0.000000 -1249, 0.793539, 0.608519, 0.000000, 0.000000 -1250, 0.793220, 0.608935, 0.000000, 0.000000 -1251, 0.792901, 0.609350, 0.000000, 0.000000 -1252, 0.792582, 0.609765, 0.000000, 0.000000 -1253, 0.792263, 0.610180, 0.000000, 0.000000 -1254, 0.791943, 0.610595, 0.000000, 0.000000 -1255, 0.791623, 0.611010, 0.000000, 0.000000 -1256, 0.791303, 0.611424, 0.000000, 0.000000 -1257, 0.790983, 0.611839, 0.000000, 0.000000 -1258, 0.790662, 0.612253, 0.000000, 0.000000 -1259, 0.790341, 0.612667, 0.000000, 0.000000 -1260, 0.790020, 0.613081, 0.000000, 0.000000 -1261, 0.789699, 0.613495, 0.000000, 0.000000 -1262, 0.789377, 0.613908, 0.000000, 0.000000 -1263, 0.789056, 0.614321, 0.000000, 0.000000 -1264, 0.788734, 0.614735, 0.000000, 0.000000 -1265, 0.788412, 0.615148, 0.000000, 0.000000 -1266, 0.788090, 0.615561, 0.000000, 0.000000 -1267, 0.787767, 0.615973, 0.000000, 0.000000 -1268, 0.787444, 0.616386, 0.000000, 0.000000 -1269, 0.787121, 0.616798, 0.000000, 0.000000 -1270, 0.786798, 0.617210, 0.000000, 0.000000 -1271, 0.786475, 0.617622, 0.000000, 0.000000 -1272, 0.786151, 0.618034, 0.000000, 0.000000 -1273, 0.785827, 0.618446, 0.000000, 0.000000 -1274, 0.785503, 0.618857, 0.000000, 0.000000 -1275, 0.785179, 0.619269, 0.000000, 0.000000 -1276, 0.784855, 0.619680, 0.000000, 0.000000 -1277, 0.784530, 0.620091, 0.000000, 0.000000 -1278, 0.784205, 0.620502, 0.000000, 0.000000 -1279, 0.783880, 0.620912, 0.000000, 0.000000 -1280, 0.783555, 0.621323, 0.000000, 0.000000 -1281, 0.783229, 0.621733, 0.000000, 0.000000 -1282, 0.782903, 0.622143, 0.000000, 0.000000 -1283, 0.782577, 0.622553, 0.000000, 0.000000 -1284, 0.782251, 0.622963, 0.000000, 0.000000 -1285, 0.781925, 0.623373, 0.000000, 0.000000 -1286, 0.781598, 0.623782, 0.000000, 0.000000 -1287, 0.781271, 0.624192, 0.000000, 0.000000 -1288, 0.780944, 0.624601, 0.000000, 0.000000 -1289, 0.780617, 0.625010, 0.000000, 0.000000 -1290, 0.780290, 0.625418, 0.000000, 0.000000 -1291, 0.779962, 0.625827, 0.000000, 0.000000 -1292, 0.779634, 0.626235, 0.000000, 0.000000 -1293, 0.779306, 0.626644, 0.000000, 0.000000 -1294, 0.778978, 0.627052, 0.000000, 0.000000 -1295, 0.778649, 0.627460, 0.000000, 0.000000 -1296, 0.778320, 0.627867, 0.000000, 0.000000 -1297, 0.777991, 0.628275, 0.000000, 0.000000 -1298, 0.777662, 0.628682, 0.000000, 0.000000 -1299, 0.777333, 0.629090, 0.000000, 0.000000 -1300, 0.777003, 0.629497, 0.000000, 0.000000 -1301, 0.776673, 0.629904, 0.000000, 0.000000 -1302, 0.776343, 0.630310, 0.000000, 0.000000 -1303, 0.776013, 0.630717, 0.000000, 0.000000 -1304, 0.775683, 0.631123, 0.000000, 0.000000 -1305, 0.775352, 0.631529, 0.000000, 0.000000 -1306, 0.775021, 0.631935, 0.000000, 0.000000 -1307, 0.774690, 0.632341, 0.000000, 0.000000 -1308, 0.774359, 0.632747, 0.000000, 0.000000 -1309, 0.774027, 0.633153, 0.000000, 0.000000 -1310, 0.773695, 0.633558, 0.000000, 0.000000 -1311, 0.773363, 0.633963, 0.000000, 0.000000 -1312, 0.773031, 0.634368, 0.000000, 0.000000 -1313, 0.772699, 0.634773, 0.000000, 0.000000 -1314, 0.772366, 0.635177, 0.000000, 0.000000 -1315, 0.772033, 0.635582, 0.000000, 0.000000 -1316, 0.771700, 0.635986, 0.000000, 0.000000 -1317, 0.771367, 0.636390, 0.000000, 0.000000 -1318, 0.771034, 0.636794, 0.000000, 0.000000 -1319, 0.770700, 0.637198, 0.000000, 0.000000 -1320, 0.770366, 0.637602, 0.000000, 0.000000 -1321, 0.770032, 0.638005, 0.000000, 0.000000 -1322, 0.769698, 0.638408, 0.000000, 0.000000 -1323, 0.769363, 0.638811, 0.000000, 0.000000 -1324, 0.769029, 0.639214, 0.000000, 0.000000 -1325, 0.768694, 0.639617, 0.000000, 0.000000 -1326, 0.768359, 0.640019, 0.000000, 0.000000 -1327, 0.768023, 0.640422, 0.000000, 0.000000 -1328, 0.767688, 0.640824, 0.000000, 0.000000 -1329, 0.767352, 0.641226, 0.000000, 0.000000 -1330, 0.767016, 0.641628, 0.000000, 0.000000 -1331, 0.766680, 0.642029, 0.000000, 0.000000 -1332, 0.766344, 0.642431, 0.000000, 0.000000 -1333, 0.766007, 0.642832, 0.000000, 0.000000 -1334, 0.765670, 0.643233, 0.000000, 0.000000 -1335, 0.765333, 0.643634, 0.000000, 0.000000 -1336, 0.764996, 0.644035, 0.000000, 0.000000 -1337, 0.764659, 0.644436, 0.000000, 0.000000 -1338, 0.764321, 0.644836, 0.000000, 0.000000 -1339, 0.763983, 0.645236, 0.000000, 0.000000 -1340, 0.763645, 0.645636, 0.000000, 0.000000 -1341, 0.763307, 0.646036, 0.000000, 0.000000 -1342, 0.762968, 0.646436, 0.000000, 0.000000 -1343, 0.762630, 0.646835, 0.000000, 0.000000 -1344, 0.762291, 0.647235, 0.000000, 0.000000 -1345, 0.761952, 0.647634, 0.000000, 0.000000 -1346, 0.761612, 0.648033, 0.000000, 0.000000 -1347, 0.761273, 0.648432, 0.000000, 0.000000 -1348, 0.760933, 0.648830, 0.000000, 0.000000 -1349, 0.760593, 0.649229, 0.000000, 0.000000 -1350, 0.760253, 0.649627, 0.000000, 0.000000 -1351, 0.759913, 0.650025, 0.000000, 0.000000 -1352, 0.759572, 0.650423, 0.000000, 0.000000 -1353, 0.759231, 0.650821, 0.000000, 0.000000 -1354, 0.758890, 0.651219, 0.000000, 0.000000 -1355, 0.758549, 0.651616, 0.000000, 0.000000 -1356, 0.758208, 0.652013, 0.000000, 0.000000 -1357, 0.757866, 0.652410, 0.000000, 0.000000 -1358, 0.757524, 0.652807, 0.000000, 0.000000 -1359, 0.757182, 0.653204, 0.000000, 0.000000 -1360, 0.756840, 0.653600, 0.000000, 0.000000 -1361, 0.756497, 0.653997, 0.000000, 0.000000 -1362, 0.756155, 0.654393, 0.000000, 0.000000 -1363, 0.755812, 0.654789, 0.000000, 0.000000 -1364, 0.755469, 0.655185, 0.000000, 0.000000 -1365, 0.755126, 0.655580, 0.000000, 0.000000 -1366, 0.754782, 0.655976, 0.000000, 0.000000 -1367, 0.754438, 0.656371, 0.000000, 0.000000 -1368, 0.754095, 0.656766, 0.000000, 0.000000 -1369, 0.753750, 0.657161, 0.000000, 0.000000 -1370, 0.753406, 0.657555, 0.000000, 0.000000 -1371, 0.753062, 0.657950, 0.000000, 0.000000 -1372, 0.752717, 0.658344, 0.000000, 0.000000 -1373, 0.752372, 0.658739, 0.000000, 0.000000 -1374, 0.752027, 0.659132, 0.000000, 0.000000 -1375, 0.751682, 0.659526, 0.000000, 0.000000 -1376, 0.751336, 0.659920, 0.000000, 0.000000 -1377, 0.750990, 0.660313, 0.000000, 0.000000 -1378, 0.750644, 0.660707, 0.000000, 0.000000 -1379, 0.750298, 0.661100, 0.000000, 0.000000 -1380, 0.749952, 0.661493, 0.000000, 0.000000 -1381, 0.749605, 0.661885, 0.000000, 0.000000 -1382, 0.749258, 0.662278, 0.000000, 0.000000 -1383, 0.748911, 0.662670, 0.000000, 0.000000 -1384, 0.748564, 0.663062, 0.000000, 0.000000 -1385, 0.748217, 0.663454, 0.000000, 0.000000 -1386, 0.747869, 0.663846, 0.000000, 0.000000 -1387, 0.747521, 0.664238, 0.000000, 0.000000 -1388, 0.747173, 0.664629, 0.000000, 0.000000 -1389, 0.746825, 0.665020, 0.000000, 0.000000 -1390, 0.746477, 0.665412, 0.000000, 0.000000 -1391, 0.746128, 0.665802, 0.000000, 0.000000 -1392, 0.745779, 0.666193, 0.000000, 0.000000 -1393, 0.745430, 0.666584, 0.000000, 0.000000 -1394, 0.745081, 0.666974, 0.000000, 0.000000 -1395, 0.744732, 0.667364, 0.000000, 0.000000 -1396, 0.744382, 0.667754, 0.000000, 0.000000 -1397, 0.744032, 0.668144, 0.000000, 0.000000 -1398, 0.743682, 0.668534, 0.000000, 0.000000 -1399, 0.743332, 0.668923, 0.000000, 0.000000 -1400, 0.742981, 0.669312, 0.000000, 0.000000 -1401, 0.742631, 0.669701, 0.000000, 0.000000 -1402, 0.742280, 0.670090, 0.000000, 0.000000 -1403, 0.741929, 0.670479, 0.000000, 0.000000 -1404, 0.741577, 0.670867, 0.000000, 0.000000 -1405, 0.741226, 0.671256, 0.000000, 0.000000 -1406, 0.740874, 0.671644, 0.000000, 0.000000 -1407, 0.740522, 0.672032, 0.000000, 0.000000 -1408, 0.740170, 0.672420, 0.000000, 0.000000 -1409, 0.739818, 0.672807, 0.000000, 0.000000 -1410, 0.739465, 0.673195, 0.000000, 0.000000 -1411, 0.739113, 0.673582, 0.000000, 0.000000 -1412, 0.738760, 0.673969, 0.000000, 0.000000 -1413, 0.738407, 0.674356, 0.000000, 0.000000 -1414, 0.738053, 0.674742, 0.000000, 0.000000 -1415, 0.737700, 0.675129, 0.000000, 0.000000 -1416, 0.737346, 0.675515, 0.000000, 0.000000 -1417, 0.736992, 0.675901, 0.000000, 0.000000 -1418, 0.736638, 0.676287, 0.000000, 0.000000 -1419, 0.736284, 0.676673, 0.000000, 0.000000 -1420, 0.735929, 0.677058, 0.000000, 0.000000 -1421, 0.735575, 0.677444, 0.000000, 0.000000 -1422, 0.735220, 0.677829, 0.000000, 0.000000 -1423, 0.734864, 0.678214, 0.000000, 0.000000 -1424, 0.734509, 0.678599, 0.000000, 0.000000 -1425, 0.734154, 0.678983, 0.000000, 0.000000 -1426, 0.733798, 0.679368, 0.000000, 0.000000 -1427, 0.733442, 0.679752, 0.000000, 0.000000 -1428, 0.733086, 0.680136, 0.000000, 0.000000 -1429, 0.732729, 0.680520, 0.000000, 0.000000 -1430, 0.732373, 0.680904, 0.000000, 0.000000 -1431, 0.732016, 0.681287, 0.000000, 0.000000 -1432, 0.731659, 0.681671, 0.000000, 0.000000 -1433, 0.731302, 0.682054, 0.000000, 0.000000 -1434, 0.730945, 0.682437, 0.000000, 0.000000 -1435, 0.730587, 0.682819, 0.000000, 0.000000 -1436, 0.730229, 0.683202, 0.000000, 0.000000 -1437, 0.729872, 0.683584, 0.000000, 0.000000 -1438, 0.729513, 0.683967, 0.000000, 0.000000 -1439, 0.729155, 0.684349, 0.000000, 0.000000 -1440, 0.728797, 0.684730, 0.000000, 0.000000 -1441, 0.728438, 0.685112, 0.000000, 0.000000 -1442, 0.728079, 0.685493, 0.000000, 0.000000 -1443, 0.727720, 0.685875, 0.000000, 0.000000 -1444, 0.727360, 0.686256, 0.000000, 0.000000 -1445, 0.727001, 0.686637, 0.000000, 0.000000 -1446, 0.726641, 0.687017, 0.000000, 0.000000 -1447, 0.726281, 0.687398, 0.000000, 0.000000 -1448, 0.725921, 0.687778, 0.000000, 0.000000 -1449, 0.725561, 0.688158, 0.000000, 0.000000 -1450, 0.725200, 0.688538, 0.000000, 0.000000 -1451, 0.724839, 0.688918, 0.000000, 0.000000 -1452, 0.724478, 0.689297, 0.000000, 0.000000 -1453, 0.724117, 0.689677, 0.000000, 0.000000 -1454, 0.723756, 0.690056, 0.000000, 0.000000 -1455, 0.723394, 0.690435, 0.000000, 0.000000 -1456, 0.723033, 0.690814, 0.000000, 0.000000 -1457, 0.722671, 0.691192, 0.000000, 0.000000 -1458, 0.722309, 0.691571, 0.000000, 0.000000 -1459, 0.721946, 0.691949, 0.000000, 0.000000 -1460, 0.721584, 0.692327, 0.000000, 0.000000 -1461, 0.721221, 0.692705, 0.000000, 0.000000 -1462, 0.720858, 0.693083, 0.000000, 0.000000 -1463, 0.720495, 0.693460, 0.000000, 0.000000 -1464, 0.720132, 0.693837, 0.000000, 0.000000 -1465, 0.719768, 0.694214, 0.000000, 0.000000 -1466, 0.719404, 0.694591, 0.000000, 0.000000 -1467, 0.719041, 0.694968, 0.000000, 0.000000 -1468, 0.718676, 0.695345, 0.000000, 0.000000 -1469, 0.718312, 0.695721, 0.000000, 0.000000 -1470, 0.717948, 0.696097, 0.000000, 0.000000 -1471, 0.717583, 0.696473, 0.000000, 0.000000 -1472, 0.717218, 0.696849, 0.000000, 0.000000 -1473, 0.716853, 0.697224, 0.000000, 0.000000 -1474, 0.716488, 0.697600, 0.000000, 0.000000 -1475, 0.716122, 0.697975, 0.000000, 0.000000 -1476, 0.715757, 0.698350, 0.000000, 0.000000 -1477, 0.715391, 0.698725, 0.000000, 0.000000 -1478, 0.715025, 0.699099, 0.000000, 0.000000 -1479, 0.714658, 0.699474, 0.000000, 0.000000 -1480, 0.714292, 0.699848, 0.000000, 0.000000 -1481, 0.713925, 0.700222, 0.000000, 0.000000 -1482, 0.713558, 0.700596, 0.000000, 0.000000 -1483, 0.713191, 0.700969, 0.000000, 0.000000 -1484, 0.712824, 0.701343, 0.000000, 0.000000 -1485, 0.712457, 0.701716, 0.000000, 0.000000 -1486, 0.712089, 0.702089, 0.000000, 0.000000 -1487, 0.711721, 0.702462, 0.000000, 0.000000 -1488, 0.711353, 0.702835, 0.000000, 0.000000 -1489, 0.710985, 0.703207, 0.000000, 0.000000 -1490, 0.710616, 0.703580, 0.000000, 0.000000 -1491, 0.710248, 0.703952, 0.000000, 0.000000 -1492, 0.709879, 0.704324, 0.000000, 0.000000 -1493, 0.709510, 0.704695, 0.000000, 0.000000 -1494, 0.709141, 0.705067, 0.000000, 0.000000 -1495, 0.708771, 0.705438, 0.000000, 0.000000 -1496, 0.708402, 0.705809, 0.000000, 0.000000 -1497, 0.708032, 0.706180, 0.000000, 0.000000 -1498, 0.707662, 0.706551, 0.000000, 0.000000 -1499, 0.707292, 0.706922, 0.000000, 0.000000 -1500, 0.706922, 0.707292, 0.000000, 0.000000 -1501, 0.706551, 0.707662, 0.000000, 0.000000 -1502, 0.706180, 0.708032, 0.000000, 0.000000 -1503, 0.705809, 0.708402, 0.000000, 0.000000 -1504, 0.705438, 0.708771, 0.000000, 0.000000 -1505, 0.705067, 0.709141, 0.000000, 0.000000 -1506, 0.704695, 0.709510, 0.000000, 0.000000 -1507, 0.704324, 0.709879, 0.000000, 0.000000 -1508, 0.703952, 0.710248, 0.000000, 0.000000 -1509, 0.703580, 0.710616, 0.000000, 0.000000 -1510, 0.703207, 0.710985, 0.000000, 0.000000 -1511, 0.702835, 0.711353, 0.000000, 0.000000 -1512, 0.702462, 0.711721, 0.000000, 0.000000 -1513, 0.702089, 0.712089, 0.000000, 0.000000 -1514, 0.701716, 0.712457, 0.000000, 0.000000 -1515, 0.701343, 0.712824, 0.000000, 0.000000 -1516, 0.700969, 0.713191, 0.000000, 0.000000 -1517, 0.700596, 0.713558, 0.000000, 0.000000 -1518, 0.700222, 0.713925, 0.000000, 0.000000 -1519, 0.699848, 0.714292, 0.000000, 0.000000 -1520, 0.699474, 0.714658, 0.000000, 0.000000 -1521, 0.699099, 0.715025, 0.000000, 0.000000 -1522, 0.698725, 0.715391, 0.000000, 0.000000 -1523, 0.698350, 0.715757, 0.000000, 0.000000 -1524, 0.697975, 0.716122, 0.000000, 0.000000 -1525, 0.697600, 0.716488, 0.000000, 0.000000 -1526, 0.697224, 0.716853, 0.000000, 0.000000 -1527, 0.696849, 0.717218, 0.000000, 0.000000 -1528, 0.696473, 0.717583, 0.000000, 0.000000 -1529, 0.696097, 0.717948, 0.000000, 0.000000 -1530, 0.695721, 0.718312, 0.000000, 0.000000 -1531, 0.695345, 0.718676, 0.000000, 0.000000 -1532, 0.694968, 0.719041, 0.000000, 0.000000 -1533, 0.694591, 0.719404, 0.000000, 0.000000 -1534, 0.694214, 0.719768, 0.000000, 0.000000 -1535, 0.693837, 0.720132, 0.000000, 0.000000 -1536, 0.693460, 0.720495, 0.000000, 0.000000 -1537, 0.693083, 0.720858, 0.000000, 0.000000 -1538, 0.692705, 0.721221, 0.000000, 0.000000 -1539, 0.692327, 0.721584, 0.000000, 0.000000 -1540, 0.691949, 0.721946, 0.000000, 0.000000 -1541, 0.691571, 0.722309, 0.000000, 0.000000 -1542, 0.691192, 0.722671, 0.000000, 0.000000 -1543, 0.690814, 0.723033, 0.000000, 0.000000 -1544, 0.690435, 0.723394, 0.000000, 0.000000 -1545, 0.690056, 0.723756, 0.000000, 0.000000 -1546, 0.689677, 0.724117, 0.000000, 0.000000 -1547, 0.689297, 0.724478, 0.000000, 0.000000 -1548, 0.688918, 0.724839, 0.000000, 0.000000 -1549, 0.688538, 0.725200, 0.000000, 0.000000 -1550, 0.688158, 0.725561, 0.000000, 0.000000 -1551, 0.687778, 0.725921, 0.000000, 0.000000 -1552, 0.687398, 0.726281, 0.000000, 0.000000 -1553, 0.687017, 0.726641, 0.000000, 0.000000 -1554, 0.686637, 0.727001, 0.000000, 0.000000 -1555, 0.686256, 0.727360, 0.000000, 0.000000 -1556, 0.685875, 0.727720, 0.000000, 0.000000 -1557, 0.685493, 0.728079, 0.000000, 0.000000 -1558, 0.685112, 0.728438, 0.000000, 0.000000 -1559, 0.684730, 0.728797, 0.000000, 0.000000 -1560, 0.684349, 0.729155, 0.000000, 0.000000 -1561, 0.683967, 0.729513, 0.000000, 0.000000 -1562, 0.683584, 0.729872, 0.000000, 0.000000 -1563, 0.683202, 0.730229, 0.000000, 0.000000 -1564, 0.682819, 0.730587, 0.000000, 0.000000 -1565, 0.682437, 0.730945, 0.000000, 0.000000 -1566, 0.682054, 0.731302, 0.000000, 0.000000 -1567, 0.681671, 0.731659, 0.000000, 0.000000 -1568, 0.681287, 0.732016, 0.000000, 0.000000 -1569, 0.680904, 0.732373, 0.000000, 0.000000 -1570, 0.680520, 0.732729, 0.000000, 0.000000 -1571, 0.680136, 0.733086, 0.000000, 0.000000 -1572, 0.679752, 0.733442, 0.000000, 0.000000 -1573, 0.679368, 0.733798, 0.000000, 0.000000 -1574, 0.678983, 0.734154, 0.000000, 0.000000 -1575, 0.678599, 0.734509, 0.000000, 0.000000 -1576, 0.678214, 0.734864, 0.000000, 0.000000 -1577, 0.677829, 0.735220, 0.000000, 0.000000 -1578, 0.677444, 0.735575, 0.000000, 0.000000 -1579, 0.677058, 0.735929, 0.000000, 0.000000 -1580, 0.676673, 0.736284, 0.000000, 0.000000 -1581, 0.676287, 0.736638, 0.000000, 0.000000 -1582, 0.675901, 0.736992, 0.000000, 0.000000 -1583, 0.675515, 0.737346, 0.000000, 0.000000 -1584, 0.675129, 0.737700, 0.000000, 0.000000 -1585, 0.674742, 0.738053, 0.000000, 0.000000 -1586, 0.674356, 0.738407, 0.000000, 0.000000 -1587, 0.673969, 0.738760, 0.000000, 0.000000 -1588, 0.673582, 0.739113, 0.000000, 0.000000 -1589, 0.673195, 0.739465, 0.000000, 0.000000 -1590, 0.672807, 0.739818, 0.000000, 0.000000 -1591, 0.672420, 0.740170, 0.000000, 0.000000 -1592, 0.672032, 0.740522, 0.000000, 0.000000 -1593, 0.671644, 0.740874, 0.000000, 0.000000 -1594, 0.671256, 0.741226, 0.000000, 0.000000 -1595, 0.670867, 0.741577, 0.000000, 0.000000 -1596, 0.670479, 0.741929, 0.000000, 0.000000 -1597, 0.670090, 0.742280, 0.000000, 0.000000 -1598, 0.669701, 0.742631, 0.000000, 0.000000 -1599, 0.669312, 0.742981, 0.000000, 0.000000 -1600, 0.668923, 0.743332, 0.000000, 0.000000 -1601, 0.668534, 0.743682, 0.000000, 0.000000 -1602, 0.668144, 0.744032, 0.000000, 0.000000 -1603, 0.667754, 0.744382, 0.000000, 0.000000 -1604, 0.667364, 0.744732, 0.000000, 0.000000 -1605, 0.666974, 0.745081, 0.000000, 0.000000 -1606, 0.666584, 0.745430, 0.000000, 0.000000 -1607, 0.666193, 0.745779, 0.000000, 0.000000 -1608, 0.665802, 0.746128, 0.000000, 0.000000 -1609, 0.665412, 0.746477, 0.000000, 0.000000 -1610, 0.665020, 0.746825, 0.000000, 0.000000 -1611, 0.664629, 0.747173, 0.000000, 0.000000 -1612, 0.664238, 0.747521, 0.000000, 0.000000 -1613, 0.663846, 0.747869, 0.000000, 0.000000 -1614, 0.663454, 0.748217, 0.000000, 0.000000 -1615, 0.663062, 0.748564, 0.000000, 0.000000 -1616, 0.662670, 0.748911, 0.000000, 0.000000 -1617, 0.662278, 0.749258, 0.000000, 0.000000 -1618, 0.661885, 0.749605, 0.000000, 0.000000 -1619, 0.661493, 0.749952, 0.000000, 0.000000 -1620, 0.661100, 0.750298, 0.000000, 0.000000 -1621, 0.660707, 0.750644, 0.000000, 0.000000 -1622, 0.660313, 0.750990, 0.000000, 0.000000 -1623, 0.659920, 0.751336, 0.000000, 0.000000 -1624, 0.659526, 0.751682, 0.000000, 0.000000 -1625, 0.659132, 0.752027, 0.000000, 0.000000 -1626, 0.658739, 0.752372, 0.000000, 0.000000 -1627, 0.658344, 0.752717, 0.000000, 0.000000 -1628, 0.657950, 0.753062, 0.000000, 0.000000 -1629, 0.657555, 0.753406, 0.000000, 0.000000 -1630, 0.657161, 0.753750, 0.000000, 0.000000 -1631, 0.656766, 0.754095, 0.000000, 0.000000 -1632, 0.656371, 0.754438, 0.000000, 0.000000 -1633, 0.655976, 0.754782, 0.000000, 0.000000 -1634, 0.655580, 0.755126, 0.000000, 0.000000 -1635, 0.655185, 0.755469, 0.000000, 0.000000 -1636, 0.654789, 0.755812, 0.000000, 0.000000 -1637, 0.654393, 0.756155, 0.000000, 0.000000 -1638, 0.653997, 0.756497, 0.000000, 0.000000 -1639, 0.653600, 0.756840, 0.000000, 0.000000 -1640, 0.653204, 0.757182, 0.000000, 0.000000 -1641, 0.652807, 0.757524, 0.000000, 0.000000 -1642, 0.652410, 0.757866, 0.000000, 0.000000 -1643, 0.652013, 0.758208, 0.000000, 0.000000 -1644, 0.651616, 0.758549, 0.000000, 0.000000 -1645, 0.651219, 0.758890, 0.000000, 0.000000 -1646, 0.650821, 0.759231, 0.000000, 0.000000 -1647, 0.650423, 0.759572, 0.000000, 0.000000 -1648, 0.650025, 0.759913, 0.000000, 0.000000 -1649, 0.649627, 0.760253, 0.000000, 0.000000 -1650, 0.649229, 0.760593, 0.000000, 0.000000 -1651, 0.648830, 0.760933, 0.000000, 0.000000 -1652, 0.648432, 0.761273, 0.000000, 0.000000 -1653, 0.648033, 0.761612, 0.000000, 0.000000 -1654, 0.647634, 0.761952, 0.000000, 0.000000 -1655, 0.647235, 0.762291, 0.000000, 0.000000 -1656, 0.646835, 0.762630, 0.000000, 0.000000 -1657, 0.646436, 0.762968, 0.000000, 0.000000 -1658, 0.646036, 0.763307, 0.000000, 0.000000 -1659, 0.645636, 0.763645, 0.000000, 0.000000 -1660, 0.645236, 0.763983, 0.000000, 0.000000 -1661, 0.644836, 0.764321, 0.000000, 0.000000 -1662, 0.644436, 0.764659, 0.000000, 0.000000 -1663, 0.644035, 0.764996, 0.000000, 0.000000 -1664, 0.643634, 0.765333, 0.000000, 0.000000 -1665, 0.643233, 0.765670, 0.000000, 0.000000 -1666, 0.642832, 0.766007, 0.000000, 0.000000 -1667, 0.642431, 0.766344, 0.000000, 0.000000 -1668, 0.642029, 0.766680, 0.000000, 0.000000 -1669, 0.641628, 0.767016, 0.000000, 0.000000 -1670, 0.641226, 0.767352, 0.000000, 0.000000 -1671, 0.640824, 0.767688, 0.000000, 0.000000 -1672, 0.640422, 0.768023, 0.000000, 0.000000 -1673, 0.640019, 0.768359, 0.000000, 0.000000 -1674, 0.639617, 0.768694, 0.000000, 0.000000 -1675, 0.639214, 0.769029, 0.000000, 0.000000 -1676, 0.638811, 0.769363, 0.000000, 0.000000 -1677, 0.638408, 0.769698, 0.000000, 0.000000 -1678, 0.638005, 0.770032, 0.000000, 0.000000 -1679, 0.637602, 0.770366, 0.000000, 0.000000 -1680, 0.637198, 0.770700, 0.000000, 0.000000 -1681, 0.636794, 0.771034, 0.000000, 0.000000 -1682, 0.636390, 0.771367, 0.000000, 0.000000 -1683, 0.635986, 0.771700, 0.000000, 0.000000 -1684, 0.635582, 0.772033, 0.000000, 0.000000 -1685, 0.635177, 0.772366, 0.000000, 0.000000 -1686, 0.634773, 0.772699, 0.000000, 0.000000 -1687, 0.634368, 0.773031, 0.000000, 0.000000 -1688, 0.633963, 0.773363, 0.000000, 0.000000 -1689, 0.633558, 0.773695, 0.000000, 0.000000 -1690, 0.633153, 0.774027, 0.000000, 0.000000 -1691, 0.632747, 0.774359, 0.000000, 0.000000 -1692, 0.632341, 0.774690, 0.000000, 0.000000 -1693, 0.631935, 0.775021, 0.000000, 0.000000 -1694, 0.631529, 0.775352, 0.000000, 0.000000 -1695, 0.631123, 0.775683, 0.000000, 0.000000 -1696, 0.630717, 0.776013, 0.000000, 0.000000 -1697, 0.630310, 0.776343, 0.000000, 0.000000 -1698, 0.629904, 0.776673, 0.000000, 0.000000 -1699, 0.629497, 0.777003, 0.000000, 0.000000 -1700, 0.629090, 0.777333, 0.000000, 0.000000 -1701, 0.628682, 0.777662, 0.000000, 0.000000 -1702, 0.628275, 0.777991, 0.000000, 0.000000 -1703, 0.627867, 0.778320, 0.000000, 0.000000 -1704, 0.627460, 0.778649, 0.000000, 0.000000 -1705, 0.627052, 0.778978, 0.000000, 0.000000 -1706, 0.626644, 0.779306, 0.000000, 0.000000 -1707, 0.626235, 0.779634, 0.000000, 0.000000 -1708, 0.625827, 0.779962, 0.000000, 0.000000 -1709, 0.625418, 0.780290, 0.000000, 0.000000 -1710, 0.625010, 0.780617, 0.000000, 0.000000 -1711, 0.624601, 0.780944, 0.000000, 0.000000 -1712, 0.624192, 0.781271, 0.000000, 0.000000 -1713, 0.623782, 0.781598, 0.000000, 0.000000 -1714, 0.623373, 0.781925, 0.000000, 0.000000 -1715, 0.622963, 0.782251, 0.000000, 0.000000 -1716, 0.622553, 0.782577, 0.000000, 0.000000 -1717, 0.622143, 0.782903, 0.000000, 0.000000 -1718, 0.621733, 0.783229, 0.000000, 0.000000 -1719, 0.621323, 0.783555, 0.000000, 0.000000 -1720, 0.620912, 0.783880, 0.000000, 0.000000 -1721, 0.620502, 0.784205, 0.000000, 0.000000 -1722, 0.620091, 0.784530, 0.000000, 0.000000 -1723, 0.619680, 0.784855, 0.000000, 0.000000 -1724, 0.619269, 0.785179, 0.000000, 0.000000 -1725, 0.618857, 0.785503, 0.000000, 0.000000 -1726, 0.618446, 0.785827, 0.000000, 0.000000 -1727, 0.618034, 0.786151, 0.000000, 0.000000 -1728, 0.617622, 0.786475, 0.000000, 0.000000 -1729, 0.617210, 0.786798, 0.000000, 0.000000 -1730, 0.616798, 0.787121, 0.000000, 0.000000 -1731, 0.616386, 0.787444, 0.000000, 0.000000 -1732, 0.615973, 0.787767, 0.000000, 0.000000 -1733, 0.615561, 0.788090, 0.000000, 0.000000 -1734, 0.615148, 0.788412, 0.000000, 0.000000 -1735, 0.614735, 0.788734, 0.000000, 0.000000 -1736, 0.614321, 0.789056, 0.000000, 0.000000 -1737, 0.613908, 0.789377, 0.000000, 0.000000 -1738, 0.613495, 0.789699, 0.000000, 0.000000 -1739, 0.613081, 0.790020, 0.000000, 0.000000 -1740, 0.612667, 0.790341, 0.000000, 0.000000 -1741, 0.612253, 0.790662, 0.000000, 0.000000 -1742, 0.611839, 0.790983, 0.000000, 0.000000 -1743, 0.611424, 0.791303, 0.000000, 0.000000 -1744, 0.611010, 0.791623, 0.000000, 0.000000 -1745, 0.610595, 0.791943, 0.000000, 0.000000 -1746, 0.610180, 0.792263, 0.000000, 0.000000 -1747, 0.609765, 0.792582, 0.000000, 0.000000 -1748, 0.609350, 0.792901, 0.000000, 0.000000 -1749, 0.608935, 0.793220, 0.000000, 0.000000 -1750, 0.608519, 0.793539, 0.000000, 0.000000 -1751, 0.608103, 0.793858, 0.000000, 0.000000 -1752, 0.607687, 0.794176, 0.000000, 0.000000 -1753, 0.607271, 0.794494, 0.000000, 0.000000 -1754, 0.606855, 0.794812, 0.000000, 0.000000 -1755, 0.606439, 0.795130, 0.000000, 0.000000 -1756, 0.606022, 0.795448, 0.000000, 0.000000 -1757, 0.605605, 0.795765, 0.000000, 0.000000 -1758, 0.605189, 0.796082, 0.000000, 0.000000 -1759, 0.604772, 0.796399, 0.000000, 0.000000 -1760, 0.604354, 0.796716, 0.000000, 0.000000 -1761, 0.603937, 0.797032, 0.000000, 0.000000 -1762, 0.603519, 0.797348, 0.000000, 0.000000 -1763, 0.603102, 0.797664, 0.000000, 0.000000 -1764, 0.602684, 0.797980, 0.000000, 0.000000 -1765, 0.602266, 0.798296, 0.000000, 0.000000 -1766, 0.601848, 0.798611, 0.000000, 0.000000 -1767, 0.601429, 0.798926, 0.000000, 0.000000 -1768, 0.601011, 0.799241, 0.000000, 0.000000 -1769, 0.600592, 0.799556, 0.000000, 0.000000 -1770, 0.600173, 0.799870, 0.000000, 0.000000 -1771, 0.599754, 0.800184, 0.000000, 0.000000 -1772, 0.599335, 0.800498, 0.000000, 0.000000 -1773, 0.598915, 0.800812, 0.000000, 0.000000 -1774, 0.598496, 0.801126, 0.000000, 0.000000 -1775, 0.598076, 0.801439, 0.000000, 0.000000 -1776, 0.597656, 0.801752, 0.000000, 0.000000 -1777, 0.597236, 0.802065, 0.000000, 0.000000 -1778, 0.596816, 0.802378, 0.000000, 0.000000 -1779, 0.596396, 0.802690, 0.000000, 0.000000 -1780, 0.595975, 0.803003, 0.000000, 0.000000 -1781, 0.595555, 0.803315, 0.000000, 0.000000 -1782, 0.595134, 0.803627, 0.000000, 0.000000 -1783, 0.594713, 0.803938, 0.000000, 0.000000 -1784, 0.594292, 0.804250, 0.000000, 0.000000 -1785, 0.593870, 0.804561, 0.000000, 0.000000 -1786, 0.593449, 0.804872, 0.000000, 0.000000 -1787, 0.593027, 0.805182, 0.000000, 0.000000 -1788, 0.592605, 0.805493, 0.000000, 0.000000 -1789, 0.592183, 0.805803, 0.000000, 0.000000 -1790, 0.591761, 0.806113, 0.000000, 0.000000 -1791, 0.591339, 0.806423, 0.000000, 0.000000 -1792, 0.590917, 0.806733, 0.000000, 0.000000 -1793, 0.590494, 0.807042, 0.000000, 0.000000 -1794, 0.590071, 0.807351, 0.000000, 0.000000 -1795, 0.589648, 0.807660, 0.000000, 0.000000 -1796, 0.589225, 0.807969, 0.000000, 0.000000 -1797, 0.588802, 0.808277, 0.000000, 0.000000 -1798, 0.588378, 0.808586, 0.000000, 0.000000 -1799, 0.587955, 0.808894, 0.000000, 0.000000 -1800, 0.587531, 0.809202, 0.000000, 0.000000 -1801, 0.587107, 0.809509, 0.000000, 0.000000 -1802, 0.586683, 0.809817, 0.000000, 0.000000 -1803, 0.586259, 0.810124, 0.000000, 0.000000 -1804, 0.585834, 0.810431, 0.000000, 0.000000 -1805, 0.585410, 0.810738, 0.000000, 0.000000 -1806, 0.584985, 0.811044, 0.000000, 0.000000 -1807, 0.584560, 0.811350, 0.000000, 0.000000 -1808, 0.584135, 0.811656, 0.000000, 0.000000 -1809, 0.583710, 0.811962, 0.000000, 0.000000 -1810, 0.583285, 0.812268, 0.000000, 0.000000 -1811, 0.582859, 0.812573, 0.000000, 0.000000 -1812, 0.582433, 0.812878, 0.000000, 0.000000 -1813, 0.582008, 0.813183, 0.000000, 0.000000 -1814, 0.581581, 0.813488, 0.000000, 0.000000 -1815, 0.581155, 0.813793, 0.000000, 0.000000 -1816, 0.580729, 0.814097, 0.000000, 0.000000 -1817, 0.580303, 0.814401, 0.000000, 0.000000 -1818, 0.579876, 0.814705, 0.000000, 0.000000 -1819, 0.579449, 0.815008, 0.000000, 0.000000 -1820, 0.579022, 0.815312, 0.000000, 0.000000 -1821, 0.578595, 0.815615, 0.000000, 0.000000 -1822, 0.578168, 0.815918, 0.000000, 0.000000 -1823, 0.577740, 0.816221, 0.000000, 0.000000 -1824, 0.577313, 0.816523, 0.000000, 0.000000 -1825, 0.576885, 0.816825, 0.000000, 0.000000 -1826, 0.576457, 0.817127, 0.000000, 0.000000 -1827, 0.576029, 0.817429, 0.000000, 0.000000 -1828, 0.575601, 0.817731, 0.000000, 0.000000 -1829, 0.575172, 0.818032, 0.000000, 0.000000 -1830, 0.574744, 0.818333, 0.000000, 0.000000 -1831, 0.574315, 0.818634, 0.000000, 0.000000 -1832, 0.573886, 0.818935, 0.000000, 0.000000 -1833, 0.573457, 0.819235, 0.000000, 0.000000 -1834, 0.573028, 0.819536, 0.000000, 0.000000 -1835, 0.572599, 0.819836, 0.000000, 0.000000 -1836, 0.572169, 0.820136, 0.000000, 0.000000 -1837, 0.571740, 0.820435, 0.000000, 0.000000 -1838, 0.571310, 0.820734, 0.000000, 0.000000 -1839, 0.570880, 0.821034, 0.000000, 0.000000 -1840, 0.570450, 0.821333, 0.000000, 0.000000 -1841, 0.570019, 0.821631, 0.000000, 0.000000 -1842, 0.569589, 0.821930, 0.000000, 0.000000 -1843, 0.569158, 0.822228, 0.000000, 0.000000 -1844, 0.568728, 0.822526, 0.000000, 0.000000 -1845, 0.568297, 0.822824, 0.000000, 0.000000 -1846, 0.567866, 0.823121, 0.000000, 0.000000 -1847, 0.567435, 0.823418, 0.000000, 0.000000 -1848, 0.567003, 0.823716, 0.000000, 0.000000 -1849, 0.566572, 0.824012, 0.000000, 0.000000 -1850, 0.566140, 0.824309, 0.000000, 0.000000 -1851, 0.565708, 0.824606, 0.000000, 0.000000 -1852, 0.565276, 0.824902, 0.000000, 0.000000 -1853, 0.564844, 0.825198, 0.000000, 0.000000 -1854, 0.564412, 0.825493, 0.000000, 0.000000 -1855, 0.563979, 0.825789, 0.000000, 0.000000 -1856, 0.563547, 0.826084, 0.000000, 0.000000 -1857, 0.563114, 0.826379, 0.000000, 0.000000 -1858, 0.562681, 0.826674, 0.000000, 0.000000 -1859, 0.562248, 0.826969, 0.000000, 0.000000 -1860, 0.561815, 0.827263, 0.000000, 0.000000 -1861, 0.561381, 0.827557, 0.000000, 0.000000 -1862, 0.560948, 0.827851, 0.000000, 0.000000 -1863, 0.560514, 0.828145, 0.000000, 0.000000 -1864, 0.560080, 0.828438, 0.000000, 0.000000 -1865, 0.559646, 0.828732, 0.000000, 0.000000 -1866, 0.559212, 0.829025, 0.000000, 0.000000 -1867, 0.558778, 0.829317, 0.000000, 0.000000 -1868, 0.558343, 0.829610, 0.000000, 0.000000 -1869, 0.557909, 0.829902, 0.000000, 0.000000 -1870, 0.557474, 0.830194, 0.000000, 0.000000 -1871, 0.557039, 0.830486, 0.000000, 0.000000 -1872, 0.556604, 0.830778, 0.000000, 0.000000 -1873, 0.556169, 0.831069, 0.000000, 0.000000 -1874, 0.555734, 0.831360, 0.000000, 0.000000 -1875, 0.555298, 0.831651, 0.000000, 0.000000 -1876, 0.554862, 0.831942, 0.000000, 0.000000 -1877, 0.554427, 0.832233, 0.000000, 0.000000 -1878, 0.553991, 0.832523, 0.000000, 0.000000 -1879, 0.553554, 0.832813, 0.000000, 0.000000 -1880, 0.553118, 0.833103, 0.000000, 0.000000 -1881, 0.552682, 0.833392, 0.000000, 0.000000 -1882, 0.552245, 0.833682, 0.000000, 0.000000 -1883, 0.551808, 0.833971, 0.000000, 0.000000 -1884, 0.551371, 0.834260, 0.000000, 0.000000 -1885, 0.550934, 0.834549, 0.000000, 0.000000 -1886, 0.550497, 0.834837, 0.000000, 0.000000 -1887, 0.550060, 0.835125, 0.000000, 0.000000 -1888, 0.549622, 0.835413, 0.000000, 0.000000 -1889, 0.549185, 0.835701, 0.000000, 0.000000 -1890, 0.548747, 0.835988, 0.000000, 0.000000 -1891, 0.548309, 0.836276, 0.000000, 0.000000 -1892, 0.547871, 0.836563, 0.000000, 0.000000 -1893, 0.547433, 0.836850, 0.000000, 0.000000 -1894, 0.546994, 0.837136, 0.000000, 0.000000 -1895, 0.546556, 0.837423, 0.000000, 0.000000 -1896, 0.546117, 0.837709, 0.000000, 0.000000 -1897, 0.545678, 0.837995, 0.000000, 0.000000 -1898, 0.545239, 0.838280, 0.000000, 0.000000 -1899, 0.544800, 0.838566, 0.000000, 0.000000 -1900, 0.544361, 0.838851, 0.000000, 0.000000 -1901, 0.543921, 0.839136, 0.000000, 0.000000 -1902, 0.543482, 0.839421, 0.000000, 0.000000 -1903, 0.543042, 0.839706, 0.000000, 0.000000 -1904, 0.542602, 0.839990, 0.000000, 0.000000 -1905, 0.542162, 0.840274, 0.000000, 0.000000 -1906, 0.541722, 0.840558, 0.000000, 0.000000 -1907, 0.541282, 0.840841, 0.000000, 0.000000 -1908, 0.540841, 0.841125, 0.000000, 0.000000 -1909, 0.540400, 0.841408, 0.000000, 0.000000 -1910, 0.539960, 0.841691, 0.000000, 0.000000 -1911, 0.539519, 0.841974, 0.000000, 0.000000 -1912, 0.539078, 0.842256, 0.000000, 0.000000 -1913, 0.538636, 0.842538, 0.000000, 0.000000 -1914, 0.538195, 0.842820, 0.000000, 0.000000 -1915, 0.537754, 0.843102, 0.000000, 0.000000 -1916, 0.537312, 0.843384, 0.000000, 0.000000 -1917, 0.536870, 0.843665, 0.000000, 0.000000 -1918, 0.536428, 0.843946, 0.000000, 0.000000 -1919, 0.535986, 0.844227, 0.000000, 0.000000 -1920, 0.535544, 0.844507, 0.000000, 0.000000 -1921, 0.535101, 0.844788, 0.000000, 0.000000 -1922, 0.534659, 0.845068, 0.000000, 0.000000 -1923, 0.534216, 0.845348, 0.000000, 0.000000 -1924, 0.533773, 0.845628, 0.000000, 0.000000 -1925, 0.533330, 0.845907, 0.000000, 0.000000 -1926, 0.532887, 0.846186, 0.000000, 0.000000 -1927, 0.532444, 0.846465, 0.000000, 0.000000 -1928, 0.532000, 0.846744, 0.000000, 0.000000 -1929, 0.531557, 0.847023, 0.000000, 0.000000 -1930, 0.531113, 0.847301, 0.000000, 0.000000 -1931, 0.530669, 0.847579, 0.000000, 0.000000 -1932, 0.530225, 0.847857, 0.000000, 0.000000 -1933, 0.529781, 0.848134, 0.000000, 0.000000 -1934, 0.529337, 0.848412, 0.000000, 0.000000 -1935, 0.528892, 0.848689, 0.000000, 0.000000 -1936, 0.528448, 0.848966, 0.000000, 0.000000 -1937, 0.528003, 0.849243, 0.000000, 0.000000 -1938, 0.527558, 0.849519, 0.000000, 0.000000 -1939, 0.527113, 0.849795, 0.000000, 0.000000 -1940, 0.526668, 0.850071, 0.000000, 0.000000 -1941, 0.526223, 0.850347, 0.000000, 0.000000 -1942, 0.525777, 0.850622, 0.000000, 0.000000 -1943, 0.525332, 0.850898, 0.000000, 0.000000 -1944, 0.524886, 0.851173, 0.000000, 0.000000 -1945, 0.524440, 0.851447, 0.000000, 0.000000 -1946, 0.523994, 0.851722, 0.000000, 0.000000 -1947, 0.523548, 0.851996, 0.000000, 0.000000 -1948, 0.523101, 0.852270, 0.000000, 0.000000 -1949, 0.522655, 0.852544, 0.000000, 0.000000 -1950, 0.522208, 0.852818, 0.000000, 0.000000 -1951, 0.521761, 0.853091, 0.000000, 0.000000 -1952, 0.521315, 0.853365, 0.000000, 0.000000 -1953, 0.520868, 0.853638, 0.000000, 0.000000 -1954, 0.520420, 0.853910, 0.000000, 0.000000 -1955, 0.519973, 0.854183, 0.000000, 0.000000 -1956, 0.519526, 0.854455, 0.000000, 0.000000 -1957, 0.519078, 0.854727, 0.000000, 0.000000 -1958, 0.518630, 0.854999, 0.000000, 0.000000 -1959, 0.518182, 0.855270, 0.000000, 0.000000 -1960, 0.517734, 0.855541, 0.000000, 0.000000 -1961, 0.517286, 0.855813, 0.000000, 0.000000 -1962, 0.516838, 0.856083, 0.000000, 0.000000 -1963, 0.516389, 0.856354, 0.000000, 0.000000 -1964, 0.515941, 0.856624, 0.000000, 0.000000 -1965, 0.515492, 0.856894, 0.000000, 0.000000 -1966, 0.515043, 0.857164, 0.000000, 0.000000 -1967, 0.514594, 0.857434, 0.000000, 0.000000 -1968, 0.514145, 0.857703, 0.000000, 0.000000 -1969, 0.513696, 0.857973, 0.000000, 0.000000 -1970, 0.513246, 0.858241, 0.000000, 0.000000 -1971, 0.512797, 0.858510, 0.000000, 0.000000 -1972, 0.512347, 0.858779, 0.000000, 0.000000 -1973, 0.511897, 0.859047, 0.000000, 0.000000 -1974, 0.511447, 0.859315, 0.000000, 0.000000 -1975, 0.510997, 0.859583, 0.000000, 0.000000 -1976, 0.510546, 0.859850, 0.000000, 0.000000 -1977, 0.510096, 0.860117, 0.000000, 0.000000 -1978, 0.509645, 0.860385, 0.000000, 0.000000 -1979, 0.509195, 0.860651, 0.000000, 0.000000 -1980, 0.508744, 0.860918, 0.000000, 0.000000 -1981, 0.508293, 0.861184, 0.000000, 0.000000 -1982, 0.507842, 0.861450, 0.000000, 0.000000 -1983, 0.507390, 0.861716, 0.000000, 0.000000 -1984, 0.506939, 0.861982, 0.000000, 0.000000 -1985, 0.506487, 0.862247, 0.000000, 0.000000 -1986, 0.506036, 0.862512, 0.000000, 0.000000 -1987, 0.505584, 0.862777, 0.000000, 0.000000 -1988, 0.505132, 0.863042, 0.000000, 0.000000 -1989, 0.504680, 0.863307, 0.000000, 0.000000 -1990, 0.504228, 0.863571, 0.000000, 0.000000 -1991, 0.503775, 0.863835, 0.000000, 0.000000 -1992, 0.503323, 0.864099, 0.000000, 0.000000 -1993, 0.502870, 0.864362, 0.000000, 0.000000 -1994, 0.502417, 0.864625, 0.000000, 0.000000 -1995, 0.501964, 0.864888, 0.000000, 0.000000 -1996, 0.501511, 0.865151, 0.000000, 0.000000 -1997, 0.501058, 0.865414, 0.000000, 0.000000 -1998, 0.500605, 0.865676, 0.000000, 0.000000 -1999, 0.500151, 0.865938, 0.000000, 0.000000 -2000, 0.499698, 0.866200, 0.000000, 0.000000 -2001, 0.499244, 0.866462, 0.000000, 0.000000 -2002, 0.498790, 0.866723, 0.000000, 0.000000 -2003, 0.498336, 0.866984, 0.000000, 0.000000 -2004, 0.497882, 0.867245, 0.000000, 0.000000 -2005, 0.497427, 0.867506, 0.000000, 0.000000 -2006, 0.496973, 0.867766, 0.000000, 0.000000 -2007, 0.496518, 0.868026, 0.000000, 0.000000 -2008, 0.496064, 0.868286, 0.000000, 0.000000 -2009, 0.495609, 0.868546, 0.000000, 0.000000 -2010, 0.495154, 0.868805, 0.000000, 0.000000 -2011, 0.494699, 0.869065, 0.000000, 0.000000 -2012, 0.494243, 0.869324, 0.000000, 0.000000 -2013, 0.493788, 0.869582, 0.000000, 0.000000 -2014, 0.493332, 0.869841, 0.000000, 0.000000 -2015, 0.492877, 0.870099, 0.000000, 0.000000 -2016, 0.492421, 0.870357, 0.000000, 0.000000 -2017, 0.491965, 0.870615, 0.000000, 0.000000 -2018, 0.491509, 0.870872, 0.000000, 0.000000 -2019, 0.491053, 0.871130, 0.000000, 0.000000 -2020, 0.490596, 0.871387, 0.000000, 0.000000 -2021, 0.490140, 0.871644, 0.000000, 0.000000 -2022, 0.489683, 0.871900, 0.000000, 0.000000 -2023, 0.489227, 0.872157, 0.000000, 0.000000 -2024, 0.488770, 0.872413, 0.000000, 0.000000 -2025, 0.488313, 0.872669, 0.000000, 0.000000 -2026, 0.487856, 0.872924, 0.000000, 0.000000 -2027, 0.487398, 0.873180, 0.000000, 0.000000 -2028, 0.486941, 0.873435, 0.000000, 0.000000 -2029, 0.486483, 0.873690, 0.000000, 0.000000 -2030, 0.486026, 0.873945, 0.000000, 0.000000 -2031, 0.485568, 0.874199, 0.000000, 0.000000 -2032, 0.485110, 0.874453, 0.000000, 0.000000 -2033, 0.484652, 0.874707, 0.000000, 0.000000 -2034, 0.484194, 0.874961, 0.000000, 0.000000 -2035, 0.483735, 0.875214, 0.000000, 0.000000 -2036, 0.483277, 0.875468, 0.000000, 0.000000 -2037, 0.482818, 0.875721, 0.000000, 0.000000 -2038, 0.482359, 0.875973, 0.000000, 0.000000 -2039, 0.481901, 0.876226, 0.000000, 0.000000 -2040, 0.481442, 0.876478, 0.000000, 0.000000 -2041, 0.480982, 0.876730, 0.000000, 0.000000 -2042, 0.480523, 0.876982, 0.000000, 0.000000 -2043, 0.480064, 0.877234, 0.000000, 0.000000 -2044, 0.479604, 0.877485, 0.000000, 0.000000 -2045, 0.479145, 0.877736, 0.000000, 0.000000 -2046, 0.478685, 0.877987, 0.000000, 0.000000 -2047, 0.478225, 0.878237, 0.000000, 0.000000 -2048, 0.477765, 0.878488, 0.000000, 0.000000 -2049, 0.477305, 0.878738, 0.000000, 0.000000 -2050, 0.476844, 0.878988, 0.000000, 0.000000 -2051, 0.476384, 0.879237, 0.000000, 0.000000 -2052, 0.475923, 0.879487, 0.000000, 0.000000 -2053, 0.475462, 0.879736, 0.000000, 0.000000 -2054, 0.475002, 0.879985, 0.000000, 0.000000 -2055, 0.474541, 0.880234, 0.000000, 0.000000 -2056, 0.474079, 0.880482, 0.000000, 0.000000 -2057, 0.473618, 0.880730, 0.000000, 0.000000 -2058, 0.473157, 0.880978, 0.000000, 0.000000 -2059, 0.472695, 0.881226, 0.000000, 0.000000 -2060, 0.472234, 0.881473, 0.000000, 0.000000 -2061, 0.471772, 0.881721, 0.000000, 0.000000 -2062, 0.471310, 0.881968, 0.000000, 0.000000 -2063, 0.470848, 0.882214, 0.000000, 0.000000 -2064, 0.470386, 0.882461, 0.000000, 0.000000 -2065, 0.469924, 0.882707, 0.000000, 0.000000 -2066, 0.469461, 0.882953, 0.000000, 0.000000 -2067, 0.468999, 0.883199, 0.000000, 0.000000 -2068, 0.468536, 0.883444, 0.000000, 0.000000 -2069, 0.468073, 0.883690, 0.000000, 0.000000 -2070, 0.467610, 0.883935, 0.000000, 0.000000 -2071, 0.467147, 0.884179, 0.000000, 0.000000 -2072, 0.466684, 0.884424, 0.000000, 0.000000 -2073, 0.466221, 0.884668, 0.000000, 0.000000 -2074, 0.465757, 0.884912, 0.000000, 0.000000 -2075, 0.465294, 0.885156, 0.000000, 0.000000 -2076, 0.464830, 0.885400, 0.000000, 0.000000 -2077, 0.464366, 0.885643, 0.000000, 0.000000 -2078, 0.463902, 0.885886, 0.000000, 0.000000 -2079, 0.463438, 0.886129, 0.000000, 0.000000 -2080, 0.462974, 0.886372, 0.000000, 0.000000 -2081, 0.462510, 0.886614, 0.000000, 0.000000 -2082, 0.462045, 0.886856, 0.000000, 0.000000 -2083, 0.461581, 0.887098, 0.000000, 0.000000 -2084, 0.461116, 0.887340, 0.000000, 0.000000 -2085, 0.460651, 0.887581, 0.000000, 0.000000 -2086, 0.460186, 0.887822, 0.000000, 0.000000 -2087, 0.459721, 0.888063, 0.000000, 0.000000 -2088, 0.459256, 0.888304, 0.000000, 0.000000 -2089, 0.458791, 0.888544, 0.000000, 0.000000 -2090, 0.458325, 0.888785, 0.000000, 0.000000 -2091, 0.457860, 0.889024, 0.000000, 0.000000 -2092, 0.457394, 0.889264, 0.000000, 0.000000 -2093, 0.456928, 0.889504, 0.000000, 0.000000 -2094, 0.456462, 0.889743, 0.000000, 0.000000 -2095, 0.455996, 0.889982, 0.000000, 0.000000 -2096, 0.455530, 0.890220, 0.000000, 0.000000 -2097, 0.455064, 0.890459, 0.000000, 0.000000 -2098, 0.454597, 0.890697, 0.000000, 0.000000 -2099, 0.454130, 0.890935, 0.000000, 0.000000 -2100, 0.453664, 0.891173, 0.000000, 0.000000 -2101, 0.453197, 0.891410, 0.000000, 0.000000 -2102, 0.452730, 0.891648, 0.000000, 0.000000 -2103, 0.452263, 0.891885, 0.000000, 0.000000 -2104, 0.451796, 0.892121, 0.000000, 0.000000 -2105, 0.451328, 0.892358, 0.000000, 0.000000 -2106, 0.450861, 0.892594, 0.000000, 0.000000 -2107, 0.450393, 0.892830, 0.000000, 0.000000 -2108, 0.449926, 0.893066, 0.000000, 0.000000 -2109, 0.449458, 0.893302, 0.000000, 0.000000 -2110, 0.448990, 0.893537, 0.000000, 0.000000 -2111, 0.448522, 0.893772, 0.000000, 0.000000 -2112, 0.448054, 0.894007, 0.000000, 0.000000 -2113, 0.447585, 0.894241, 0.000000, 0.000000 -2114, 0.447117, 0.894476, 0.000000, 0.000000 -2115, 0.446648, 0.894710, 0.000000, 0.000000 -2116, 0.446180, 0.894943, 0.000000, 0.000000 -2117, 0.445711, 0.895177, 0.000000, 0.000000 -2118, 0.445242, 0.895410, 0.000000, 0.000000 -2119, 0.444773, 0.895643, 0.000000, 0.000000 -2120, 0.444304, 0.895876, 0.000000, 0.000000 -2121, 0.443834, 0.896109, 0.000000, 0.000000 -2122, 0.443365, 0.896341, 0.000000, 0.000000 -2123, 0.442895, 0.896573, 0.000000, 0.000000 -2124, 0.442426, 0.896805, 0.000000, 0.000000 -2125, 0.441956, 0.897037, 0.000000, 0.000000 -2126, 0.441486, 0.897268, 0.000000, 0.000000 -2127, 0.441016, 0.897499, 0.000000, 0.000000 -2128, 0.440546, 0.897730, 0.000000, 0.000000 -2129, 0.440076, 0.897961, 0.000000, 0.000000 -2130, 0.439605, 0.898191, 0.000000, 0.000000 -2131, 0.439135, 0.898421, 0.000000, 0.000000 -2132, 0.438664, 0.898651, 0.000000, 0.000000 -2133, 0.438193, 0.898881, 0.000000, 0.000000 -2134, 0.437722, 0.899110, 0.000000, 0.000000 -2135, 0.437251, 0.899339, 0.000000, 0.000000 -2136, 0.436780, 0.899568, 0.000000, 0.000000 -2137, 0.436309, 0.899797, 0.000000, 0.000000 -2138, 0.435838, 0.900025, 0.000000, 0.000000 -2139, 0.435366, 0.900253, 0.000000, 0.000000 -2140, 0.434895, 0.900481, 0.000000, 0.000000 -2141, 0.434423, 0.900709, 0.000000, 0.000000 -2142, 0.433951, 0.900936, 0.000000, 0.000000 -2143, 0.433479, 0.901164, 0.000000, 0.000000 -2144, 0.433007, 0.901390, 0.000000, 0.000000 -2145, 0.432535, 0.901617, 0.000000, 0.000000 -2146, 0.432063, 0.901844, 0.000000, 0.000000 -2147, 0.431590, 0.902070, 0.000000, 0.000000 -2148, 0.431118, 0.902296, 0.000000, 0.000000 -2149, 0.430645, 0.902521, 0.000000, 0.000000 -2150, 0.430172, 0.902747, 0.000000, 0.000000 -2151, 0.429699, 0.902972, 0.000000, 0.000000 -2152, 0.429226, 0.903197, 0.000000, 0.000000 -2153, 0.428753, 0.903422, 0.000000, 0.000000 -2154, 0.428280, 0.903646, 0.000000, 0.000000 -2155, 0.427807, 0.903870, 0.000000, 0.000000 -2156, 0.427333, 0.904094, 0.000000, 0.000000 -2157, 0.426860, 0.904318, 0.000000, 0.000000 -2158, 0.426386, 0.904541, 0.000000, 0.000000 -2159, 0.425912, 0.904765, 0.000000, 0.000000 -2160, 0.425438, 0.904988, 0.000000, 0.000000 -2161, 0.424964, 0.905210, 0.000000, 0.000000 -2162, 0.424490, 0.905433, 0.000000, 0.000000 -2163, 0.424015, 0.905655, 0.000000, 0.000000 -2164, 0.423541, 0.905877, 0.000000, 0.000000 -2165, 0.423067, 0.906099, 0.000000, 0.000000 -2166, 0.422592, 0.906320, 0.000000, 0.000000 -2167, 0.422117, 0.906541, 0.000000, 0.000000 -2168, 0.421642, 0.906762, 0.000000, 0.000000 -2169, 0.421167, 0.906983, 0.000000, 0.000000 -2170, 0.420692, 0.907203, 0.000000, 0.000000 -2171, 0.420217, 0.907424, 0.000000, 0.000000 -2172, 0.419742, 0.907644, 0.000000, 0.000000 -2173, 0.419266, 0.907863, 0.000000, 0.000000 -2174, 0.418791, 0.908083, 0.000000, 0.000000 -2175, 0.418315, 0.908302, 0.000000, 0.000000 -2176, 0.417839, 0.908521, 0.000000, 0.000000 -2177, 0.417363, 0.908740, 0.000000, 0.000000 -2178, 0.416887, 0.908958, 0.000000, 0.000000 -2179, 0.416411, 0.909177, 0.000000, 0.000000 -2180, 0.415935, 0.909394, 0.000000, 0.000000 -2181, 0.415458, 0.909612, 0.000000, 0.000000 -2182, 0.414982, 0.909830, 0.000000, 0.000000 -2183, 0.414505, 0.910047, 0.000000, 0.000000 -2184, 0.414029, 0.910264, 0.000000, 0.000000 -2185, 0.413552, 0.910481, 0.000000, 0.000000 -2186, 0.413075, 0.910697, 0.000000, 0.000000 -2187, 0.412598, 0.910913, 0.000000, 0.000000 -2188, 0.412121, 0.911129, 0.000000, 0.000000 -2189, 0.411643, 0.911345, 0.000000, 0.000000 -2190, 0.411166, 0.911561, 0.000000, 0.000000 -2191, 0.410688, 0.911776, 0.000000, 0.000000 -2192, 0.410211, 0.911991, 0.000000, 0.000000 -2193, 0.409733, 0.912206, 0.000000, 0.000000 -2194, 0.409255, 0.912420, 0.000000, 0.000000 -2195, 0.408777, 0.912634, 0.000000, 0.000000 -2196, 0.408299, 0.912848, 0.000000, 0.000000 -2197, 0.407821, 0.913062, 0.000000, 0.000000 -2198, 0.407343, 0.913275, 0.000000, 0.000000 -2199, 0.406864, 0.913489, 0.000000, 0.000000 -2200, 0.406386, 0.913702, 0.000000, 0.000000 -2201, 0.405907, 0.913914, 0.000000, 0.000000 -2202, 0.405428, 0.914127, 0.000000, 0.000000 -2203, 0.404950, 0.914339, 0.000000, 0.000000 -2204, 0.404471, 0.914551, 0.000000, 0.000000 -2205, 0.403991, 0.914763, 0.000000, 0.000000 -2206, 0.403512, 0.914974, 0.000000, 0.000000 -2207, 0.403033, 0.915185, 0.000000, 0.000000 -2208, 0.402554, 0.915396, 0.000000, 0.000000 -2209, 0.402074, 0.915607, 0.000000, 0.000000 -2210, 0.401594, 0.915818, 0.000000, 0.000000 -2211, 0.401115, 0.916028, 0.000000, 0.000000 -2212, 0.400635, 0.916238, 0.000000, 0.000000 -2213, 0.400155, 0.916448, 0.000000, 0.000000 -2214, 0.399675, 0.916657, 0.000000, 0.000000 -2215, 0.399195, 0.916866, 0.000000, 0.000000 -2216, 0.398714, 0.917075, 0.000000, 0.000000 -2217, 0.398234, 0.917284, 0.000000, 0.000000 -2218, 0.397753, 0.917492, 0.000000, 0.000000 -2219, 0.397273, 0.917701, 0.000000, 0.000000 -2220, 0.396792, 0.917908, 0.000000, 0.000000 -2221, 0.396311, 0.918116, 0.000000, 0.000000 -2222, 0.395830, 0.918324, 0.000000, 0.000000 -2223, 0.395349, 0.918531, 0.000000, 0.000000 -2224, 0.394868, 0.918738, 0.000000, 0.000000 -2225, 0.394387, 0.918944, 0.000000, 0.000000 -2226, 0.393906, 0.919151, 0.000000, 0.000000 -2227, 0.393424, 0.919357, 0.000000, 0.000000 -2228, 0.392942, 0.919563, 0.000000, 0.000000 -2229, 0.392461, 0.919769, 0.000000, 0.000000 -2230, 0.391979, 0.919974, 0.000000, 0.000000 -2231, 0.391497, 0.920179, 0.000000, 0.000000 -2232, 0.391015, 0.920384, 0.000000, 0.000000 -2233, 0.390533, 0.920589, 0.000000, 0.000000 -2234, 0.390051, 0.920793, 0.000000, 0.000000 -2235, 0.389568, 0.920998, 0.000000, 0.000000 -2236, 0.389086, 0.921201, 0.000000, 0.000000 -2237, 0.388603, 0.921405, 0.000000, 0.000000 -2238, 0.388121, 0.921609, 0.000000, 0.000000 -2239, 0.387638, 0.921812, 0.000000, 0.000000 -2240, 0.387155, 0.922015, 0.000000, 0.000000 -2241, 0.386672, 0.922217, 0.000000, 0.000000 -2242, 0.386189, 0.922420, 0.000000, 0.000000 -2243, 0.385706, 0.922622, 0.000000, 0.000000 -2244, 0.385222, 0.922824, 0.000000, 0.000000 -2245, 0.384739, 0.923025, 0.000000, 0.000000 -2246, 0.384256, 0.923227, 0.000000, 0.000000 -2247, 0.383772, 0.923428, 0.000000, 0.000000 -2248, 0.383288, 0.923629, 0.000000, 0.000000 -2249, 0.382804, 0.923829, 0.000000, 0.000000 -2250, 0.382320, 0.924030, 0.000000, 0.000000 -2251, 0.381836, 0.924230, 0.000000, 0.000000 -2252, 0.381352, 0.924430, 0.000000, 0.000000 -2253, 0.380868, 0.924629, 0.000000, 0.000000 -2254, 0.380384, 0.924829, 0.000000, 0.000000 -2255, 0.379899, 0.925028, 0.000000, 0.000000 -2256, 0.379415, 0.925227, 0.000000, 0.000000 -2257, 0.378930, 0.925425, 0.000000, 0.000000 -2258, 0.378445, 0.925624, 0.000000, 0.000000 -2259, 0.377960, 0.925822, 0.000000, 0.000000 -2260, 0.377475, 0.926020, 0.000000, 0.000000 -2261, 0.376990, 0.926217, 0.000000, 0.000000 -2262, 0.376505, 0.926415, 0.000000, 0.000000 -2263, 0.376020, 0.926612, 0.000000, 0.000000 -2264, 0.375535, 0.926808, 0.000000, 0.000000 -2265, 0.375049, 0.927005, 0.000000, 0.000000 -2266, 0.374563, 0.927201, 0.000000, 0.000000 -2267, 0.374078, 0.927397, 0.000000, 0.000000 -2268, 0.373592, 0.927593, 0.000000, 0.000000 -2269, 0.373106, 0.927789, 0.000000, 0.000000 -2270, 0.372620, 0.927984, 0.000000, 0.000000 -2271, 0.372134, 0.928179, 0.000000, 0.000000 -2272, 0.371648, 0.928374, 0.000000, 0.000000 -2273, 0.371161, 0.928568, 0.000000, 0.000000 -2274, 0.370675, 0.928763, 0.000000, 0.000000 -2275, 0.370188, 0.928957, 0.000000, 0.000000 -2276, 0.369702, 0.929150, 0.000000, 0.000000 -2277, 0.369215, 0.929344, 0.000000, 0.000000 -2278, 0.368728, 0.929537, 0.000000, 0.000000 -2279, 0.368241, 0.929730, 0.000000, 0.000000 -2280, 0.367754, 0.929923, 0.000000, 0.000000 -2281, 0.367267, 0.930115, 0.000000, 0.000000 -2282, 0.366780, 0.930308, 0.000000, 0.000000 -2283, 0.366293, 0.930500, 0.000000, 0.000000 -2284, 0.365805, 0.930691, 0.000000, 0.000000 -2285, 0.365318, 0.930883, 0.000000, 0.000000 -2286, 0.364830, 0.931074, 0.000000, 0.000000 -2287, 0.364342, 0.931265, 0.000000, 0.000000 -2288, 0.363855, 0.931456, 0.000000, 0.000000 -2289, 0.363367, 0.931646, 0.000000, 0.000000 -2290, 0.362879, 0.931836, 0.000000, 0.000000 -2291, 0.362391, 0.932026, 0.000000, 0.000000 -2292, 0.361902, 0.932216, 0.000000, 0.000000 -2293, 0.361414, 0.932405, 0.000000, 0.000000 -2294, 0.360926, 0.932595, 0.000000, 0.000000 -2295, 0.360437, 0.932784, 0.000000, 0.000000 -2296, 0.359948, 0.932972, 0.000000, 0.000000 -2297, 0.359460, 0.933161, 0.000000, 0.000000 -2298, 0.358971, 0.933349, 0.000000, 0.000000 -2299, 0.358482, 0.933537, 0.000000, 0.000000 -2300, 0.357993, 0.933724, 0.000000, 0.000000 -2301, 0.357504, 0.933912, 0.000000, 0.000000 -2302, 0.357015, 0.934099, 0.000000, 0.000000 -2303, 0.356525, 0.934286, 0.000000, 0.000000 -2304, 0.356036, 0.934472, 0.000000, 0.000000 -2305, 0.355547, 0.934659, 0.000000, 0.000000 -2306, 0.355057, 0.934845, 0.000000, 0.000000 -2307, 0.354567, 0.935031, 0.000000, 0.000000 -2308, 0.354077, 0.935216, 0.000000, 0.000000 -2309, 0.353588, 0.935401, 0.000000, 0.000000 -2310, 0.353098, 0.935587, 0.000000, 0.000000 -2311, 0.352607, 0.935771, 0.000000, 0.000000 -2312, 0.352117, 0.935956, 0.000000, 0.000000 -2313, 0.351627, 0.936140, 0.000000, 0.000000 -2314, 0.351137, 0.936324, 0.000000, 0.000000 -2315, 0.350646, 0.936508, 0.000000, 0.000000 -2316, 0.350156, 0.936692, 0.000000, 0.000000 -2317, 0.349665, 0.936875, 0.000000, 0.000000 -2318, 0.349174, 0.937058, 0.000000, 0.000000 -2319, 0.348683, 0.937241, 0.000000, 0.000000 -2320, 0.348192, 0.937423, 0.000000, 0.000000 -2321, 0.347701, 0.937605, 0.000000, 0.000000 -2322, 0.347210, 0.937787, 0.000000, 0.000000 -2323, 0.346719, 0.937969, 0.000000, 0.000000 -2324, 0.346228, 0.938151, 0.000000, 0.000000 -2325, 0.345736, 0.938332, 0.000000, 0.000000 -2326, 0.345245, 0.938513, 0.000000, 0.000000 -2327, 0.344753, 0.938693, 0.000000, 0.000000 -2328, 0.344261, 0.938874, 0.000000, 0.000000 -2329, 0.343770, 0.939054, 0.000000, 0.000000 -2330, 0.343278, 0.939234, 0.000000, 0.000000 -2331, 0.342786, 0.939414, 0.000000, 0.000000 -2332, 0.342294, 0.939593, 0.000000, 0.000000 -2333, 0.341801, 0.939772, 0.000000, 0.000000 -2334, 0.341309, 0.939951, 0.000000, 0.000000 -2335, 0.340817, 0.940130, 0.000000, 0.000000 -2336, 0.340324, 0.940308, 0.000000, 0.000000 -2337, 0.339832, 0.940486, 0.000000, 0.000000 -2338, 0.339339, 0.940664, 0.000000, 0.000000 -2339, 0.338846, 0.940842, 0.000000, 0.000000 -2340, 0.338354, 0.941019, 0.000000, 0.000000 -2341, 0.337861, 0.941196, 0.000000, 0.000000 -2342, 0.337368, 0.941373, 0.000000, 0.000000 -2343, 0.336874, 0.941550, 0.000000, 0.000000 -2344, 0.336381, 0.941726, 0.000000, 0.000000 -2345, 0.335888, 0.941902, 0.000000, 0.000000 -2346, 0.335395, 0.942078, 0.000000, 0.000000 -2347, 0.334901, 0.942253, 0.000000, 0.000000 -2348, 0.334407, 0.942429, 0.000000, 0.000000 -2349, 0.333914, 0.942604, 0.000000, 0.000000 -2350, 0.333420, 0.942778, 0.000000, 0.000000 -2351, 0.332926, 0.942953, 0.000000, 0.000000 -2352, 0.332432, 0.943127, 0.000000, 0.000000 -2353, 0.331938, 0.943301, 0.000000, 0.000000 -2354, 0.331444, 0.943475, 0.000000, 0.000000 -2355, 0.330950, 0.943648, 0.000000, 0.000000 -2356, 0.330456, 0.943822, 0.000000, 0.000000 -2357, 0.329961, 0.943994, 0.000000, 0.000000 -2358, 0.329467, 0.944167, 0.000000, 0.000000 -2359, 0.328972, 0.944340, 0.000000, 0.000000 -2360, 0.328478, 0.944512, 0.000000, 0.000000 -2361, 0.327983, 0.944684, 0.000000, 0.000000 -2362, 0.327488, 0.944855, 0.000000, 0.000000 -2363, 0.326993, 0.945027, 0.000000, 0.000000 -2364, 0.326498, 0.945198, 0.000000, 0.000000 -2365, 0.326003, 0.945369, 0.000000, 0.000000 -2366, 0.325508, 0.945539, 0.000000, 0.000000 -2367, 0.325012, 0.945710, 0.000000, 0.000000 -2368, 0.324517, 0.945880, 0.000000, 0.000000 -2369, 0.324021, 0.946050, 0.000000, 0.000000 -2370, 0.323526, 0.946219, 0.000000, 0.000000 -2371, 0.323030, 0.946389, 0.000000, 0.000000 -2372, 0.322535, 0.946558, 0.000000, 0.000000 -2373, 0.322039, 0.946727, 0.000000, 0.000000 -2374, 0.321543, 0.946895, 0.000000, 0.000000 -2375, 0.321047, 0.947063, 0.000000, 0.000000 -2376, 0.320551, 0.947231, 0.000000, 0.000000 -2377, 0.320055, 0.947399, 0.000000, 0.000000 -2378, 0.319558, 0.947567, 0.000000, 0.000000 -2379, 0.319062, 0.947734, 0.000000, 0.000000 -2380, 0.318565, 0.947901, 0.000000, 0.000000 -2381, 0.318069, 0.948068, 0.000000, 0.000000 -2382, 0.317572, 0.948234, 0.000000, 0.000000 -2383, 0.317076, 0.948400, 0.000000, 0.000000 -2384, 0.316579, 0.948566, 0.000000, 0.000000 -2385, 0.316082, 0.948732, 0.000000, 0.000000 -2386, 0.315585, 0.948897, 0.000000, 0.000000 -2387, 0.315088, 0.949062, 0.000000, 0.000000 -2388, 0.314591, 0.949227, 0.000000, 0.000000 -2389, 0.314094, 0.949392, 0.000000, 0.000000 -2390, 0.313596, 0.949556, 0.000000, 0.000000 -2391, 0.313099, 0.949721, 0.000000, 0.000000 -2392, 0.312601, 0.949884, 0.000000, 0.000000 -2393, 0.312104, 0.950048, 0.000000, 0.000000 -2394, 0.311606, 0.950211, 0.000000, 0.000000 -2395, 0.311108, 0.950374, 0.000000, 0.000000 -2396, 0.310611, 0.950537, 0.000000, 0.000000 -2397, 0.310113, 0.950700, 0.000000, 0.000000 -2398, 0.309615, 0.950862, 0.000000, 0.000000 -2399, 0.309117, 0.951024, 0.000000, 0.000000 -2400, 0.308618, 0.951186, 0.000000, 0.000000 -2401, 0.308120, 0.951347, 0.000000, 0.000000 -2402, 0.307622, 0.951509, 0.000000, 0.000000 -2403, 0.307123, 0.951670, 0.000000, 0.000000 -2404, 0.306625, 0.951830, 0.000000, 0.000000 -2405, 0.306126, 0.951991, 0.000000, 0.000000 -2406, 0.305628, 0.952151, 0.000000, 0.000000 -2407, 0.305129, 0.952311, 0.000000, 0.000000 -2408, 0.304630, 0.952471, 0.000000, 0.000000 -2409, 0.304131, 0.952630, 0.000000, 0.000000 -2410, 0.303632, 0.952789, 0.000000, 0.000000 -2411, 0.303133, 0.952948, 0.000000, 0.000000 -2412, 0.302634, 0.953107, 0.000000, 0.000000 -2413, 0.302135, 0.953265, 0.000000, 0.000000 -2414, 0.301635, 0.953423, 0.000000, 0.000000 -2415, 0.301136, 0.953581, 0.000000, 0.000000 -2416, 0.300636, 0.953739, 0.000000, 0.000000 -2417, 0.300137, 0.953896, 0.000000, 0.000000 -2418, 0.299637, 0.954053, 0.000000, 0.000000 -2419, 0.299137, 0.954210, 0.000000, 0.000000 -2420, 0.298638, 0.954367, 0.000000, 0.000000 -2421, 0.298138, 0.954523, 0.000000, 0.000000 -2422, 0.297638, 0.954679, 0.000000, 0.000000 -2423, 0.297138, 0.954835, 0.000000, 0.000000 -2424, 0.296637, 0.954990, 0.000000, 0.000000 -2425, 0.296137, 0.955145, 0.000000, 0.000000 -2426, 0.295637, 0.955300, 0.000000, 0.000000 -2427, 0.295136, 0.955455, 0.000000, 0.000000 -2428, 0.294636, 0.955610, 0.000000, 0.000000 -2429, 0.294135, 0.955764, 0.000000, 0.000000 -2430, 0.293635, 0.955918, 0.000000, 0.000000 -2431, 0.293134, 0.956071, 0.000000, 0.000000 -2432, 0.292633, 0.956225, 0.000000, 0.000000 -2433, 0.292132, 0.956378, 0.000000, 0.000000 -2434, 0.291631, 0.956531, 0.000000, 0.000000 -2435, 0.291130, 0.956683, 0.000000, 0.000000 -2436, 0.290629, 0.956836, 0.000000, 0.000000 -2437, 0.290128, 0.956988, 0.000000, 0.000000 -2438, 0.289627, 0.957140, 0.000000, 0.000000 -2439, 0.289125, 0.957291, 0.000000, 0.000000 -2440, 0.288624, 0.957443, 0.000000, 0.000000 -2441, 0.288122, 0.957594, 0.000000, 0.000000 -2442, 0.287621, 0.957744, 0.000000, 0.000000 -2443, 0.287119, 0.957895, 0.000000, 0.000000 -2444, 0.286617, 0.958045, 0.000000, 0.000000 -2445, 0.286116, 0.958195, 0.000000, 0.000000 -2446, 0.285614, 0.958345, 0.000000, 0.000000 -2447, 0.285112, 0.958494, 0.000000, 0.000000 -2448, 0.284610, 0.958644, 0.000000, 0.000000 -2449, 0.284107, 0.958792, 0.000000, 0.000000 -2450, 0.283605, 0.958941, 0.000000, 0.000000 -2451, 0.283103, 0.959090, 0.000000, 0.000000 -2452, 0.282600, 0.959238, 0.000000, 0.000000 -2453, 0.282098, 0.959386, 0.000000, 0.000000 -2454, 0.281595, 0.959533, 0.000000, 0.000000 -2455, 0.281093, 0.959681, 0.000000, 0.000000 -2456, 0.280590, 0.959828, 0.000000, 0.000000 -2457, 0.280087, 0.959975, 0.000000, 0.000000 -2458, 0.279585, 0.960121, 0.000000, 0.000000 -2459, 0.279082, 0.960267, 0.000000, 0.000000 -2460, 0.278579, 0.960413, 0.000000, 0.000000 -2461, 0.278076, 0.960559, 0.000000, 0.000000 -2462, 0.277572, 0.960705, 0.000000, 0.000000 -2463, 0.277069, 0.960850, 0.000000, 0.000000 -2464, 0.276566, 0.960995, 0.000000, 0.000000 -2465, 0.276062, 0.961140, 0.000000, 0.000000 -2466, 0.275559, 0.961284, 0.000000, 0.000000 -2467, 0.275056, 0.961428, 0.000000, 0.000000 -2468, 0.274552, 0.961572, 0.000000, 0.000000 -2469, 0.274048, 0.961716, 0.000000, 0.000000 -2470, 0.273544, 0.961859, 0.000000, 0.000000 -2471, 0.273041, 0.962003, 0.000000, 0.000000 -2472, 0.272537, 0.962145, 0.000000, 0.000000 -2473, 0.272033, 0.962288, 0.000000, 0.000000 -2474, 0.271529, 0.962430, 0.000000, 0.000000 -2475, 0.271025, 0.962572, 0.000000, 0.000000 -2476, 0.270520, 0.962714, 0.000000, 0.000000 -2477, 0.270016, 0.962856, 0.000000, 0.000000 -2478, 0.269512, 0.962997, 0.000000, 0.000000 -2479, 0.269007, 0.963138, 0.000000, 0.000000 -2480, 0.268503, 0.963279, 0.000000, 0.000000 -2481, 0.267998, 0.963419, 0.000000, 0.000000 -2482, 0.267494, 0.963560, 0.000000, 0.000000 -2483, 0.266989, 0.963700, 0.000000, 0.000000 -2484, 0.266484, 0.963839, 0.000000, 0.000000 -2485, 0.265979, 0.963979, 0.000000, 0.000000 -2486, 0.265474, 0.964118, 0.000000, 0.000000 -2487, 0.264969, 0.964257, 0.000000, 0.000000 -2488, 0.264464, 0.964396, 0.000000, 0.000000 -2489, 0.263959, 0.964534, 0.000000, 0.000000 -2490, 0.263454, 0.964672, 0.000000, 0.000000 -2491, 0.262948, 0.964810, 0.000000, 0.000000 -2492, 0.262443, 0.964947, 0.000000, 0.000000 -2493, 0.261938, 0.965085, 0.000000, 0.000000 -2494, 0.261432, 0.965222, 0.000000, 0.000000 -2495, 0.260926, 0.965359, 0.000000, 0.000000 -2496, 0.260421, 0.965495, 0.000000, 0.000000 -2497, 0.259915, 0.965631, 0.000000, 0.000000 -2498, 0.259409, 0.965767, 0.000000, 0.000000 -2499, 0.258903, 0.965903, 0.000000, 0.000000 -2500, 0.258397, 0.966039, 0.000000, 0.000000 -2501, 0.257891, 0.966174, 0.000000, 0.000000 -2502, 0.257385, 0.966309, 0.000000, 0.000000 -2503, 0.256879, 0.966444, 0.000000, 0.000000 -2504, 0.256373, 0.966578, 0.000000, 0.000000 -2505, 0.255867, 0.966712, 0.000000, 0.000000 -2506, 0.255360, 0.966846, 0.000000, 0.000000 -2507, 0.254854, 0.966980, 0.000000, 0.000000 -2508, 0.254347, 0.967113, 0.000000, 0.000000 -2509, 0.253841, 0.967246, 0.000000, 0.000000 -2510, 0.253334, 0.967379, 0.000000, 0.000000 -2511, 0.252827, 0.967511, 0.000000, 0.000000 -2512, 0.252321, 0.967644, 0.000000, 0.000000 -2513, 0.251814, 0.967776, 0.000000, 0.000000 -2514, 0.251307, 0.967907, 0.000000, 0.000000 -2515, 0.250800, 0.968039, 0.000000, 0.000000 -2516, 0.250293, 0.968170, 0.000000, 0.000000 -2517, 0.249786, 0.968301, 0.000000, 0.000000 -2518, 0.249278, 0.968432, 0.000000, 0.000000 -2519, 0.248771, 0.968562, 0.000000, 0.000000 -2520, 0.248264, 0.968692, 0.000000, 0.000000 -2521, 0.247756, 0.968822, 0.000000, 0.000000 -2522, 0.247249, 0.968952, 0.000000, 0.000000 -2523, 0.246741, 0.969081, 0.000000, 0.000000 -2524, 0.246234, 0.969210, 0.000000, 0.000000 -2525, 0.245726, 0.969339, 0.000000, 0.000000 -2526, 0.245218, 0.969468, 0.000000, 0.000000 -2527, 0.244710, 0.969596, 0.000000, 0.000000 -2528, 0.244203, 0.969724, 0.000000, 0.000000 -2529, 0.243695, 0.969852, 0.000000, 0.000000 -2530, 0.243187, 0.969980, 0.000000, 0.000000 -2531, 0.242678, 0.970107, 0.000000, 0.000000 -2532, 0.242170, 0.970234, 0.000000, 0.000000 -2533, 0.241662, 0.970360, 0.000000, 0.000000 -2534, 0.241154, 0.970487, 0.000000, 0.000000 -2535, 0.240646, 0.970613, 0.000000, 0.000000 -2536, 0.240137, 0.970739, 0.000000, 0.000000 -2537, 0.239629, 0.970865, 0.000000, 0.000000 -2538, 0.239120, 0.970990, 0.000000, 0.000000 -2539, 0.238611, 0.971115, 0.000000, 0.000000 -2540, 0.238103, 0.971240, 0.000000, 0.000000 -2541, 0.237594, 0.971365, 0.000000, 0.000000 -2542, 0.237085, 0.971489, 0.000000, 0.000000 -2543, 0.236576, 0.971613, 0.000000, 0.000000 -2544, 0.236067, 0.971737, 0.000000, 0.000000 -2545, 0.235558, 0.971860, 0.000000, 0.000000 -2546, 0.235049, 0.971983, 0.000000, 0.000000 -2547, 0.234540, 0.972106, 0.000000, 0.000000 -2548, 0.234031, 0.972229, 0.000000, 0.000000 -2549, 0.233522, 0.972352, 0.000000, 0.000000 -2550, 0.233012, 0.972474, 0.000000, 0.000000 -2551, 0.232503, 0.972596, 0.000000, 0.000000 -2552, 0.231994, 0.972717, 0.000000, 0.000000 -2553, 0.231484, 0.972839, 0.000000, 0.000000 -2554, 0.230975, 0.972960, 0.000000, 0.000000 -2555, 0.230465, 0.973081, 0.000000, 0.000000 -2556, 0.229955, 0.973201, 0.000000, 0.000000 -2557, 0.229445, 0.973322, 0.000000, 0.000000 -2558, 0.228936, 0.973442, 0.000000, 0.000000 -2559, 0.228426, 0.973561, 0.000000, 0.000000 -2560, 0.227916, 0.973681, 0.000000, 0.000000 -2561, 0.227406, 0.973800, 0.000000, 0.000000 -2562, 0.226896, 0.973919, 0.000000, 0.000000 -2563, 0.226385, 0.974038, 0.000000, 0.000000 -2564, 0.225875, 0.974156, 0.000000, 0.000000 -2565, 0.225365, 0.974274, 0.000000, 0.000000 -2566, 0.224855, 0.974392, 0.000000, 0.000000 -2567, 0.224344, 0.974510, 0.000000, 0.000000 -2568, 0.223834, 0.974627, 0.000000, 0.000000 -2569, 0.223323, 0.974744, 0.000000, 0.000000 -2570, 0.222813, 0.974861, 0.000000, 0.000000 -2571, 0.222302, 0.974978, 0.000000, 0.000000 -2572, 0.221791, 0.975094, 0.000000, 0.000000 -2573, 0.221281, 0.975210, 0.000000, 0.000000 -2574, 0.220770, 0.975326, 0.000000, 0.000000 -2575, 0.220259, 0.975441, 0.000000, 0.000000 -2576, 0.219748, 0.975557, 0.000000, 0.000000 -2577, 0.219237, 0.975672, 0.000000, 0.000000 -2578, 0.218726, 0.975786, 0.000000, 0.000000 -2579, 0.218215, 0.975901, 0.000000, 0.000000 -2580, 0.217704, 0.976015, 0.000000, 0.000000 -2581, 0.217192, 0.976129, 0.000000, 0.000000 -2582, 0.216681, 0.976242, 0.000000, 0.000000 -2583, 0.216170, 0.976356, 0.000000, 0.000000 -2584, 0.215658, 0.976469, 0.000000, 0.000000 -2585, 0.215147, 0.976582, 0.000000, 0.000000 -2586, 0.214635, 0.976694, 0.000000, 0.000000 -2587, 0.214124, 0.976807, 0.000000, 0.000000 -2588, 0.213612, 0.976919, 0.000000, 0.000000 -2589, 0.213100, 0.977030, 0.000000, 0.000000 -2590, 0.212589, 0.977142, 0.000000, 0.000000 -2591, 0.212077, 0.977253, 0.000000, 0.000000 -2592, 0.211565, 0.977364, 0.000000, 0.000000 -2593, 0.211053, 0.977475, 0.000000, 0.000000 -2594, 0.210541, 0.977585, 0.000000, 0.000000 -2595, 0.210029, 0.977695, 0.000000, 0.000000 -2596, 0.209517, 0.977805, 0.000000, 0.000000 -2597, 0.209005, 0.977915, 0.000000, 0.000000 -2598, 0.208492, 0.978024, 0.000000, 0.000000 -2599, 0.207980, 0.978133, 0.000000, 0.000000 -2600, 0.207468, 0.978242, 0.000000, 0.000000 -2601, 0.206955, 0.978350, 0.000000, 0.000000 -2602, 0.206443, 0.978459, 0.000000, 0.000000 -2603, 0.205930, 0.978567, 0.000000, 0.000000 -2604, 0.205418, 0.978674, 0.000000, 0.000000 -2605, 0.204905, 0.978782, 0.000000, 0.000000 -2606, 0.204392, 0.978889, 0.000000, 0.000000 -2607, 0.203880, 0.978996, 0.000000, 0.000000 -2608, 0.203367, 0.979103, 0.000000, 0.000000 -2609, 0.202854, 0.979209, 0.000000, 0.000000 -2610, 0.202341, 0.979315, 0.000000, 0.000000 -2611, 0.201828, 0.979421, 0.000000, 0.000000 -2612, 0.201315, 0.979527, 0.000000, 0.000000 -2613, 0.200802, 0.979632, 0.000000, 0.000000 -2614, 0.200289, 0.979737, 0.000000, 0.000000 -2615, 0.199776, 0.979842, 0.000000, 0.000000 -2616, 0.199262, 0.979946, 0.000000, 0.000000 -2617, 0.198749, 0.980050, 0.000000, 0.000000 -2618, 0.198236, 0.980154, 0.000000, 0.000000 -2619, 0.197722, 0.980258, 0.000000, 0.000000 -2620, 0.197209, 0.980361, 0.000000, 0.000000 -2621, 0.196695, 0.980465, 0.000000, 0.000000 -2622, 0.196182, 0.980568, 0.000000, 0.000000 -2623, 0.195668, 0.980670, 0.000000, 0.000000 -2624, 0.195155, 0.980773, 0.000000, 0.000000 -2625, 0.194641, 0.980875, 0.000000, 0.000000 -2626, 0.194127, 0.980976, 0.000000, 0.000000 -2627, 0.193613, 0.981078, 0.000000, 0.000000 -2628, 0.193099, 0.981179, 0.000000, 0.000000 -2629, 0.192585, 0.981280, 0.000000, 0.000000 -2630, 0.192071, 0.981381, 0.000000, 0.000000 -2631, 0.191557, 0.981481, 0.000000, 0.000000 -2632, 0.191043, 0.981582, 0.000000, 0.000000 -2633, 0.190529, 0.981682, 0.000000, 0.000000 -2634, 0.190015, 0.981781, 0.000000, 0.000000 -2635, 0.189501, 0.981881, 0.000000, 0.000000 -2636, 0.188986, 0.981980, 0.000000, 0.000000 -2637, 0.188472, 0.982079, 0.000000, 0.000000 -2638, 0.187958, 0.982177, 0.000000, 0.000000 -2639, 0.187443, 0.982275, 0.000000, 0.000000 -2640, 0.186929, 0.982374, 0.000000, 0.000000 -2641, 0.186414, 0.982471, 0.000000, 0.000000 -2642, 0.185899, 0.982569, 0.000000, 0.000000 -2643, 0.185385, 0.982666, 0.000000, 0.000000 -2644, 0.184870, 0.982763, 0.000000, 0.000000 -2645, 0.184355, 0.982860, 0.000000, 0.000000 -2646, 0.183840, 0.982956, 0.000000, 0.000000 -2647, 0.183326, 0.983052, 0.000000, 0.000000 -2648, 0.182811, 0.983148, 0.000000, 0.000000 -2649, 0.182296, 0.983244, 0.000000, 0.000000 -2650, 0.181781, 0.983339, 0.000000, 0.000000 -2651, 0.181266, 0.983434, 0.000000, 0.000000 -2652, 0.180750, 0.983529, 0.000000, 0.000000 -2653, 0.180235, 0.983624, 0.000000, 0.000000 -2654, 0.179720, 0.983718, 0.000000, 0.000000 -2655, 0.179205, 0.983812, 0.000000, 0.000000 -2656, 0.178689, 0.983906, 0.000000, 0.000000 -2657, 0.178174, 0.983999, 0.000000, 0.000000 -2658, 0.177659, 0.984092, 0.000000, 0.000000 -2659, 0.177143, 0.984185, 0.000000, 0.000000 -2660, 0.176628, 0.984278, 0.000000, 0.000000 -2661, 0.176112, 0.984370, 0.000000, 0.000000 -2662, 0.175596, 0.984462, 0.000000, 0.000000 -2663, 0.175081, 0.984554, 0.000000, 0.000000 -2664, 0.174565, 0.984646, 0.000000, 0.000000 -2665, 0.174049, 0.984737, 0.000000, 0.000000 -2666, 0.173534, 0.984828, 0.000000, 0.000000 -2667, 0.173018, 0.984919, 0.000000, 0.000000 -2668, 0.172502, 0.985009, 0.000000, 0.000000 -2669, 0.171986, 0.985099, 0.000000, 0.000000 -2670, 0.171470, 0.985189, 0.000000, 0.000000 -2671, 0.170954, 0.985279, 0.000000, 0.000000 -2672, 0.170438, 0.985368, 0.000000, 0.000000 -2673, 0.169922, 0.985458, 0.000000, 0.000000 -2674, 0.169405, 0.985546, 0.000000, 0.000000 -2675, 0.168889, 0.985635, 0.000000, 0.000000 -2676, 0.168373, 0.985723, 0.000000, 0.000000 -2677, 0.167857, 0.985811, 0.000000, 0.000000 -2678, 0.167340, 0.985899, 0.000000, 0.000000 -2679, 0.166824, 0.985987, 0.000000, 0.000000 -2680, 0.166307, 0.986074, 0.000000, 0.000000 -2681, 0.165791, 0.986161, 0.000000, 0.000000 -2682, 0.165274, 0.986248, 0.000000, 0.000000 -2683, 0.164758, 0.986334, 0.000000, 0.000000 -2684, 0.164241, 0.986420, 0.000000, 0.000000 -2685, 0.163724, 0.986506, 0.000000, 0.000000 -2686, 0.163208, 0.986592, 0.000000, 0.000000 -2687, 0.162691, 0.986677, 0.000000, 0.000000 -2688, 0.162174, 0.986762, 0.000000, 0.000000 -2689, 0.161657, 0.986847, 0.000000, 0.000000 -2690, 0.161140, 0.986932, 0.000000, 0.000000 -2691, 0.160623, 0.987016, 0.000000, 0.000000 -2692, 0.160106, 0.987100, 0.000000, 0.000000 -2693, 0.159589, 0.987183, 0.000000, 0.000000 -2694, 0.159072, 0.987267, 0.000000, 0.000000 -2695, 0.158555, 0.987350, 0.000000, 0.000000 -2696, 0.158038, 0.987433, 0.000000, 0.000000 -2697, 0.157521, 0.987516, 0.000000, 0.000000 -2698, 0.157003, 0.987598, 0.000000, 0.000000 -2699, 0.156486, 0.987680, 0.000000, 0.000000 -2700, 0.155969, 0.987762, 0.000000, 0.000000 -2701, 0.155451, 0.987844, 0.000000, 0.000000 -2702, 0.154934, 0.987925, 0.000000, 0.000000 -2703, 0.154417, 0.988006, 0.000000, 0.000000 -2704, 0.153899, 0.988087, 0.000000, 0.000000 -2705, 0.153382, 0.988167, 0.000000, 0.000000 -2706, 0.152864, 0.988247, 0.000000, 0.000000 -2707, 0.152346, 0.988327, 0.000000, 0.000000 -2708, 0.151829, 0.988407, 0.000000, 0.000000 -2709, 0.151311, 0.988486, 0.000000, 0.000000 -2710, 0.150793, 0.988565, 0.000000, 0.000000 -2711, 0.150275, 0.988644, 0.000000, 0.000000 -2712, 0.149757, 0.988723, 0.000000, 0.000000 -2713, 0.149240, 0.988801, 0.000000, 0.000000 -2714, 0.148722, 0.988879, 0.000000, 0.000000 -2715, 0.148204, 0.988957, 0.000000, 0.000000 -2716, 0.147686, 0.989034, 0.000000, 0.000000 -2717, 0.147168, 0.989112, 0.000000, 0.000000 -2718, 0.146650, 0.989189, 0.000000, 0.000000 -2719, 0.146131, 0.989265, 0.000000, 0.000000 -2720, 0.145613, 0.989342, 0.000000, 0.000000 -2721, 0.145095, 0.989418, 0.000000, 0.000000 -2722, 0.144577, 0.989494, 0.000000, 0.000000 -2723, 0.144058, 0.989569, 0.000000, 0.000000 -2724, 0.143540, 0.989644, 0.000000, 0.000000 -2725, 0.143022, 0.989720, 0.000000, 0.000000 -2726, 0.142503, 0.989794, 0.000000, 0.000000 -2727, 0.141985, 0.989869, 0.000000, 0.000000 -2728, 0.141466, 0.989943, 0.000000, 0.000000 -2729, 0.140948, 0.990017, 0.000000, 0.000000 -2730, 0.140429, 0.990091, 0.000000, 0.000000 -2731, 0.139911, 0.990164, 0.000000, 0.000000 -2732, 0.139392, 0.990237, 0.000000, 0.000000 -2733, 0.138873, 0.990310, 0.000000, 0.000000 -2734, 0.138355, 0.990383, 0.000000, 0.000000 -2735, 0.137836, 0.990455, 0.000000, 0.000000 -2736, 0.137317, 0.990527, 0.000000, 0.000000 -2737, 0.136798, 0.990599, 0.000000, 0.000000 -2738, 0.136279, 0.990670, 0.000000, 0.000000 -2739, 0.135761, 0.990742, 0.000000, 0.000000 -2740, 0.135242, 0.990813, 0.000000, 0.000000 -2741, 0.134723, 0.990883, 0.000000, 0.000000 -2742, 0.134204, 0.990954, 0.000000, 0.000000 -2743, 0.133685, 0.991024, 0.000000, 0.000000 -2744, 0.133165, 0.991094, 0.000000, 0.000000 -2745, 0.132646, 0.991163, 0.000000, 0.000000 -2746, 0.132127, 0.991233, 0.000000, 0.000000 -2747, 0.131608, 0.991302, 0.000000, 0.000000 -2748, 0.131089, 0.991371, 0.000000, 0.000000 -2749, 0.130569, 0.991439, 0.000000, 0.000000 -2750, 0.130050, 0.991507, 0.000000, 0.000000 -2751, 0.129531, 0.991575, 0.000000, 0.000000 -2752, 0.129011, 0.991643, 0.000000, 0.000000 -2753, 0.128492, 0.991711, 0.000000, 0.000000 -2754, 0.127973, 0.991778, 0.000000, 0.000000 -2755, 0.127453, 0.991845, 0.000000, 0.000000 -2756, 0.126934, 0.991911, 0.000000, 0.000000 -2757, 0.126414, 0.991978, 0.000000, 0.000000 -2758, 0.125894, 0.992044, 0.000000, 0.000000 -2759, 0.125375, 0.992109, 0.000000, 0.000000 -2760, 0.124855, 0.992175, 0.000000, 0.000000 -2761, 0.124335, 0.992240, 0.000000, 0.000000 -2762, 0.123816, 0.992305, 0.000000, 0.000000 -2763, 0.123296, 0.992370, 0.000000, 0.000000 -2764, 0.122776, 0.992434, 0.000000, 0.000000 -2765, 0.122256, 0.992499, 0.000000, 0.000000 -2766, 0.121736, 0.992562, 0.000000, 0.000000 -2767, 0.121217, 0.992626, 0.000000, 0.000000 -2768, 0.120697, 0.992689, 0.000000, 0.000000 -2769, 0.120177, 0.992753, 0.000000, 0.000000 -2770, 0.119657, 0.992815, 0.000000, 0.000000 -2771, 0.119137, 0.992878, 0.000000, 0.000000 -2772, 0.118617, 0.992940, 0.000000, 0.000000 -2773, 0.118097, 0.993002, 0.000000, 0.000000 -2774, 0.117576, 0.993064, 0.000000, 0.000000 -2775, 0.117056, 0.993125, 0.000000, 0.000000 -2776, 0.116536, 0.993186, 0.000000, 0.000000 -2777, 0.116016, 0.993247, 0.000000, 0.000000 -2778, 0.115496, 0.993308, 0.000000, 0.000000 -2779, 0.114975, 0.993368, 0.000000, 0.000000 -2780, 0.114455, 0.993428, 0.000000, 0.000000 -2781, 0.113935, 0.993488, 0.000000, 0.000000 -2782, 0.113414, 0.993548, 0.000000, 0.000000 -2783, 0.112894, 0.993607, 0.000000, 0.000000 -2784, 0.112373, 0.993666, 0.000000, 0.000000 -2785, 0.111853, 0.993725, 0.000000, 0.000000 -2786, 0.111332, 0.993783, 0.000000, 0.000000 -2787, 0.110812, 0.993841, 0.000000, 0.000000 -2788, 0.110291, 0.993899, 0.000000, 0.000000 -2789, 0.109771, 0.993957, 0.000000, 0.000000 -2790, 0.109250, 0.994014, 0.000000, 0.000000 -2791, 0.108729, 0.994071, 0.000000, 0.000000 -2792, 0.108209, 0.994128, 0.000000, 0.000000 -2793, 0.107688, 0.994185, 0.000000, 0.000000 -2794, 0.107167, 0.994241, 0.000000, 0.000000 -2795, 0.106647, 0.994297, 0.000000, 0.000000 -2796, 0.106126, 0.994353, 0.000000, 0.000000 -2797, 0.105605, 0.994408, 0.000000, 0.000000 -2798, 0.105084, 0.994463, 0.000000, 0.000000 -2799, 0.104563, 0.994518, 0.000000, 0.000000 -2800, 0.104042, 0.994573, 0.000000, 0.000000 -2801, 0.103521, 0.994627, 0.000000, 0.000000 -2802, 0.103000, 0.994681, 0.000000, 0.000000 -2803, 0.102479, 0.994735, 0.000000, 0.000000 -2804, 0.101958, 0.994789, 0.000000, 0.000000 -2805, 0.101437, 0.994842, 0.000000, 0.000000 -2806, 0.100916, 0.994895, 0.000000, 0.000000 -2807, 0.100395, 0.994948, 0.000000, 0.000000 -2808, 0.099874, 0.995000, 0.000000, 0.000000 -2809, 0.099353, 0.995052, 0.000000, 0.000000 -2810, 0.098832, 0.995104, 0.000000, 0.000000 -2811, 0.098310, 0.995156, 0.000000, 0.000000 -2812, 0.097789, 0.995207, 0.000000, 0.000000 -2813, 0.097268, 0.995258, 0.000000, 0.000000 -2814, 0.096747, 0.995309, 0.000000, 0.000000 -2815, 0.096225, 0.995360, 0.000000, 0.000000 -2816, 0.095704, 0.995410, 0.000000, 0.000000 -2817, 0.095182, 0.995460, 0.000000, 0.000000 -2818, 0.094661, 0.995510, 0.000000, 0.000000 -2819, 0.094140, 0.995559, 0.000000, 0.000000 -2820, 0.093618, 0.995608, 0.000000, 0.000000 -2821, 0.093097, 0.995657, 0.000000, 0.000000 -2822, 0.092575, 0.995706, 0.000000, 0.000000 -2823, 0.092054, 0.995754, 0.000000, 0.000000 -2824, 0.091532, 0.995802, 0.000000, 0.000000 -2825, 0.091010, 0.995850, 0.000000, 0.000000 -2826, 0.090489, 0.995897, 0.000000, 0.000000 -2827, 0.089967, 0.995945, 0.000000, 0.000000 -2828, 0.089446, 0.995992, 0.000000, 0.000000 -2829, 0.088924, 0.996038, 0.000000, 0.000000 -2830, 0.088402, 0.996085, 0.000000, 0.000000 -2831, 0.087880, 0.996131, 0.000000, 0.000000 -2832, 0.087359, 0.996177, 0.000000, 0.000000 -2833, 0.086837, 0.996223, 0.000000, 0.000000 -2834, 0.086315, 0.996268, 0.000000, 0.000000 -2835, 0.085793, 0.996313, 0.000000, 0.000000 -2836, 0.085271, 0.996358, 0.000000, 0.000000 -2837, 0.084750, 0.996402, 0.000000, 0.000000 -2838, 0.084228, 0.996447, 0.000000, 0.000000 -2839, 0.083706, 0.996491, 0.000000, 0.000000 -2840, 0.083184, 0.996534, 0.000000, 0.000000 -2841, 0.082662, 0.996578, 0.000000, 0.000000 -2842, 0.082140, 0.996621, 0.000000, 0.000000 -2843, 0.081618, 0.996664, 0.000000, 0.000000 -2844, 0.081096, 0.996706, 0.000000, 0.000000 -2845, 0.080574, 0.996749, 0.000000, 0.000000 -2846, 0.080052, 0.996791, 0.000000, 0.000000 -2847, 0.079529, 0.996833, 0.000000, 0.000000 -2848, 0.079007, 0.996874, 0.000000, 0.000000 -2849, 0.078485, 0.996915, 0.000000, 0.000000 -2850, 0.077963, 0.996956, 0.000000, 0.000000 -2851, 0.077441, 0.996997, 0.000000, 0.000000 -2852, 0.076919, 0.997037, 0.000000, 0.000000 -2853, 0.076396, 0.997078, 0.000000, 0.000000 -2854, 0.075874, 0.997117, 0.000000, 0.000000 -2855, 0.075352, 0.997157, 0.000000, 0.000000 -2856, 0.074830, 0.997196, 0.000000, 0.000000 -2857, 0.074307, 0.997235, 0.000000, 0.000000 -2858, 0.073785, 0.997274, 0.000000, 0.000000 -2859, 0.073263, 0.997313, 0.000000, 0.000000 -2860, 0.072740, 0.997351, 0.000000, 0.000000 -2861, 0.072218, 0.997389, 0.000000, 0.000000 -2862, 0.071695, 0.997427, 0.000000, 0.000000 -2863, 0.071173, 0.997464, 0.000000, 0.000000 -2864, 0.070650, 0.997501, 0.000000, 0.000000 -2865, 0.070128, 0.997538, 0.000000, 0.000000 -2866, 0.069606, 0.997575, 0.000000, 0.000000 -2867, 0.069083, 0.997611, 0.000000, 0.000000 -2868, 0.068560, 0.997647, 0.000000, 0.000000 -2869, 0.068038, 0.997683, 0.000000, 0.000000 -2870, 0.067515, 0.997718, 0.000000, 0.000000 -2871, 0.066993, 0.997753, 0.000000, 0.000000 -2872, 0.066470, 0.997788, 0.000000, 0.000000 -2873, 0.065948, 0.997823, 0.000000, 0.000000 -2874, 0.065425, 0.997857, 0.000000, 0.000000 -2875, 0.064902, 0.997892, 0.000000, 0.000000 -2876, 0.064380, 0.997925, 0.000000, 0.000000 -2877, 0.063857, 0.997959, 0.000000, 0.000000 -2878, 0.063334, 0.997992, 0.000000, 0.000000 -2879, 0.062811, 0.998025, 0.000000, 0.000000 -2880, 0.062289, 0.998058, 0.000000, 0.000000 -2881, 0.061766, 0.998091, 0.000000, 0.000000 -2882, 0.061243, 0.998123, 0.000000, 0.000000 -2883, 0.060720, 0.998155, 0.000000, 0.000000 -2884, 0.060198, 0.998186, 0.000000, 0.000000 -2885, 0.059675, 0.998218, 0.000000, 0.000000 -2886, 0.059152, 0.998249, 0.000000, 0.000000 -2887, 0.058629, 0.998280, 0.000000, 0.000000 -2888, 0.058106, 0.998310, 0.000000, 0.000000 -2889, 0.057583, 0.998341, 0.000000, 0.000000 -2890, 0.057060, 0.998371, 0.000000, 0.000000 -2891, 0.056537, 0.998400, 0.000000, 0.000000 -2892, 0.056014, 0.998430, 0.000000, 0.000000 -2893, 0.055491, 0.998459, 0.000000, 0.000000 -2894, 0.054968, 0.998488, 0.000000, 0.000000 -2895, 0.054445, 0.998517, 0.000000, 0.000000 -2896, 0.053922, 0.998545, 0.000000, 0.000000 -2897, 0.053399, 0.998573, 0.000000, 0.000000 -2898, 0.052876, 0.998601, 0.000000, 0.000000 -2899, 0.052353, 0.998629, 0.000000, 0.000000 -2900, 0.051830, 0.998656, 0.000000, 0.000000 -2901, 0.051307, 0.998683, 0.000000, 0.000000 -2902, 0.050784, 0.998710, 0.000000, 0.000000 -2903, 0.050261, 0.998736, 0.000000, 0.000000 -2904, 0.049738, 0.998762, 0.000000, 0.000000 -2905, 0.049215, 0.998788, 0.000000, 0.000000 -2906, 0.048692, 0.998814, 0.000000, 0.000000 -2907, 0.048169, 0.998839, 0.000000, 0.000000 -2908, 0.047645, 0.998864, 0.000000, 0.000000 -2909, 0.047122, 0.998889, 0.000000, 0.000000 -2910, 0.046599, 0.998914, 0.000000, 0.000000 -2911, 0.046076, 0.998938, 0.000000, 0.000000 -2912, 0.045553, 0.998962, 0.000000, 0.000000 -2913, 0.045029, 0.998986, 0.000000, 0.000000 -2914, 0.044506, 0.999009, 0.000000, 0.000000 -2915, 0.043983, 0.999032, 0.000000, 0.000000 -2916, 0.043459, 0.999055, 0.000000, 0.000000 -2917, 0.042936, 0.999078, 0.000000, 0.000000 -2918, 0.042413, 0.999100, 0.000000, 0.000000 -2919, 0.041890, 0.999122, 0.000000, 0.000000 -2920, 0.041366, 0.999144, 0.000000, 0.000000 -2921, 0.040843, 0.999166, 0.000000, 0.000000 -2922, 0.040320, 0.999187, 0.000000, 0.000000 -2923, 0.039796, 0.999208, 0.000000, 0.000000 -2924, 0.039273, 0.999229, 0.000000, 0.000000 -2925, 0.038750, 0.999249, 0.000000, 0.000000 -2926, 0.038226, 0.999269, 0.000000, 0.000000 -2927, 0.037703, 0.999289, 0.000000, 0.000000 -2928, 0.037179, 0.999309, 0.000000, 0.000000 -2929, 0.036656, 0.999328, 0.000000, 0.000000 -2930, 0.036132, 0.999347, 0.000000, 0.000000 -2931, 0.035609, 0.999366, 0.000000, 0.000000 -2932, 0.035086, 0.999384, 0.000000, 0.000000 -2933, 0.034562, 0.999403, 0.000000, 0.000000 -2934, 0.034039, 0.999421, 0.000000, 0.000000 -2935, 0.033515, 0.999438, 0.000000, 0.000000 -2936, 0.032992, 0.999456, 0.000000, 0.000000 -2937, 0.032468, 0.999473, 0.000000, 0.000000 -2938, 0.031945, 0.999490, 0.000000, 0.000000 -2939, 0.031421, 0.999506, 0.000000, 0.000000 -2940, 0.030898, 0.999523, 0.000000, 0.000000 -2941, 0.030374, 0.999539, 0.000000, 0.000000 -2942, 0.029851, 0.999554, 0.000000, 0.000000 -2943, 0.029327, 0.999570, 0.000000, 0.000000 -2944, 0.028804, 0.999585, 0.000000, 0.000000 -2945, 0.028280, 0.999600, 0.000000, 0.000000 -2946, 0.027756, 0.999615, 0.000000, 0.000000 -2947, 0.027233, 0.999629, 0.000000, 0.000000 -2948, 0.026709, 0.999643, 0.000000, 0.000000 -2949, 0.026186, 0.999657, 0.000000, 0.000000 -2950, 0.025662, 0.999671, 0.000000, 0.000000 -2951, 0.025138, 0.999684, 0.000000, 0.000000 -2952, 0.024615, 0.999697, 0.000000, 0.000000 -2953, 0.024091, 0.999710, 0.000000, 0.000000 -2954, 0.023568, 0.999722, 0.000000, 0.000000 -2955, 0.023044, 0.999734, 0.000000, 0.000000 -2956, 0.022520, 0.999746, 0.000000, 0.000000 -2957, 0.021997, 0.999758, 0.000000, 0.000000 -2958, 0.021473, 0.999769, 0.000000, 0.000000 -2959, 0.020949, 0.999781, 0.000000, 0.000000 -2960, 0.020426, 0.999791, 0.000000, 0.000000 -2961, 0.019902, 0.999802, 0.000000, 0.000000 -2962, 0.019378, 0.999812, 0.000000, 0.000000 -2963, 0.018855, 0.999822, 0.000000, 0.000000 -2964, 0.018331, 0.999832, 0.000000, 0.000000 -2965, 0.017807, 0.999841, 0.000000, 0.000000 -2966, 0.017284, 0.999851, 0.000000, 0.000000 -2967, 0.016760, 0.999860, 0.000000, 0.000000 -2968, 0.016236, 0.999868, 0.000000, 0.000000 -2969, 0.015713, 0.999877, 0.000000, 0.000000 -2970, 0.015189, 0.999885, 0.000000, 0.000000 -2971, 0.014665, 0.999892, 0.000000, 0.000000 -2972, 0.014141, 0.999900, 0.000000, 0.000000 -2973, 0.013618, 0.999907, 0.000000, 0.000000 -2974, 0.013094, 0.999914, 0.000000, 0.000000 -2975, 0.012570, 0.999921, 0.000000, 0.000000 -2976, 0.012046, 0.999927, 0.000000, 0.000000 -2977, 0.011523, 0.999934, 0.000000, 0.000000 -2978, 0.010999, 0.999940, 0.000000, 0.000000 -2979, 0.010475, 0.999945, 0.000000, 0.000000 -2980, 0.009952, 0.999950, 0.000000, 0.000000 -2981, 0.009428, 0.999956, 0.000000, 0.000000 -2982, 0.008904, 0.999960, 0.000000, 0.000000 -2983, 0.008380, 0.999965, 0.000000, 0.000000 -2984, 0.007857, 0.999969, 0.000000, 0.000000 -2985, 0.007333, 0.999973, 0.000000, 0.000000 -2986, 0.006809, 0.999977, 0.000000, 0.000000 -2987, 0.006285, 0.999980, 0.000000, 0.000000 -2988, 0.005761, 0.999983, 0.000000, 0.000000 -2989, 0.005238, 0.999986, 0.000000, 0.000000 -2990, 0.004714, 0.999989, 0.000000, 0.000000 -2991, 0.004190, 0.999991, 0.000000, 0.000000 -2992, 0.003666, 0.999993, 0.000000, 0.000000 -2993, 0.003143, 0.999995, 0.000000, 0.000000 -2994, 0.002619, 0.999997, 0.000000, 0.000000 -2995, 0.002095, 0.999998, 0.000000, 0.000000 -2996, 0.001571, 0.999999, 0.000000, 0.000000 -2997, 0.001048, 0.999999, 0.000000, 0.000000 -2998, 0.000524, 1.000000, 0.000000, 0.000000 -2999, 0.000000, 1.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000524, 0.000000, 0.000000 + 0.999999, 0.001048, 0.000000, 0.000000 + 0.999999, 0.001571, 0.000000, 0.000000 + 0.999998, 0.002095, 0.000000, 0.000000 + 0.999997, 0.002619, 0.000000, 0.000000 + 0.999995, 0.003143, 0.000000, 0.000000 + 0.999993, 0.003666, 0.000000, 0.000000 + 0.999991, 0.004190, 0.000000, 0.000000 + 0.999989, 0.004714, 0.000000, 0.000000 + 0.999986, 0.005238, 0.000000, 0.000000 + 0.999983, 0.005761, 0.000000, 0.000000 + 0.999980, 0.006285, 0.000000, 0.000000 + 0.999977, 0.006809, 0.000000, 0.000000 + 0.999973, 0.007333, 0.000000, 0.000000 + 0.999969, 0.007857, 0.000000, 0.000000 + 0.999965, 0.008380, 0.000000, 0.000000 + 0.999960, 0.008904, 0.000000, 0.000000 + 0.999956, 0.009428, 0.000000, 0.000000 + 0.999950, 0.009952, 0.000000, 0.000000 + 0.999945, 0.010475, 0.000000, 0.000000 + 0.999940, 0.010999, 0.000000, 0.000000 + 0.999934, 0.011523, 0.000000, 0.000000 + 0.999927, 0.012046, 0.000000, 0.000000 + 0.999921, 0.012570, 0.000000, 0.000000 + 0.999914, 0.013094, 0.000000, 0.000000 + 0.999907, 0.013618, 0.000000, 0.000000 + 0.999900, 0.014141, 0.000000, 0.000000 + 0.999892, 0.014665, 0.000000, 0.000000 + 0.999885, 0.015189, 0.000000, 0.000000 + 0.999877, 0.015713, 0.000000, 0.000000 + 0.999868, 0.016236, 0.000000, 0.000000 + 0.999860, 0.016760, 0.000000, 0.000000 + 0.999851, 0.017284, 0.000000, 0.000000 + 0.999841, 0.017807, 0.000000, 0.000000 + 0.999832, 0.018331, 0.000000, 0.000000 + 0.999822, 0.018855, 0.000000, 0.000000 + 0.999812, 0.019378, 0.000000, 0.000000 + 0.999802, 0.019902, 0.000000, 0.000000 + 0.999791, 0.020426, 0.000000, 0.000000 + 0.999781, 0.020949, 0.000000, 0.000000 + 0.999769, 0.021473, 0.000000, 0.000000 + 0.999758, 0.021997, 0.000000, 0.000000 + 0.999746, 0.022520, 0.000000, 0.000000 + 0.999734, 0.023044, 0.000000, 0.000000 + 0.999722, 0.023568, 0.000000, 0.000000 + 0.999710, 0.024091, 0.000000, 0.000000 + 0.999697, 0.024615, 0.000000, 0.000000 + 0.999684, 0.025138, 0.000000, 0.000000 + 0.999671, 0.025662, 0.000000, 0.000000 + 0.999657, 0.026186, 0.000000, 0.000000 + 0.999643, 0.026709, 0.000000, 0.000000 + 0.999629, 0.027233, 0.000000, 0.000000 + 0.999615, 0.027756, 0.000000, 0.000000 + 0.999600, 0.028280, 0.000000, 0.000000 + 0.999585, 0.028804, 0.000000, 0.000000 + 0.999570, 0.029327, 0.000000, 0.000000 + 0.999554, 0.029851, 0.000000, 0.000000 + 0.999539, 0.030374, 0.000000, 0.000000 + 0.999523, 0.030898, 0.000000, 0.000000 + 0.999506, 0.031421, 0.000000, 0.000000 + 0.999490, 0.031945, 0.000000, 0.000000 + 0.999473, 0.032468, 0.000000, 0.000000 + 0.999456, 0.032992, 0.000000, 0.000000 + 0.999438, 0.033515, 0.000000, 0.000000 + 0.999421, 0.034039, 0.000000, 0.000000 + 0.999403, 0.034562, 0.000000, 0.000000 + 0.999384, 0.035086, 0.000000, 0.000000 + 0.999366, 0.035609, 0.000000, 0.000000 + 0.999347, 0.036132, 0.000000, 0.000000 + 0.999328, 0.036656, 0.000000, 0.000000 + 0.999309, 0.037179, 0.000000, 0.000000 + 0.999289, 0.037703, 0.000000, 0.000000 + 0.999269, 0.038226, 0.000000, 0.000000 + 0.999249, 0.038750, 0.000000, 0.000000 + 0.999229, 0.039273, 0.000000, 0.000000 + 0.999208, 0.039796, 0.000000, 0.000000 + 0.999187, 0.040320, 0.000000, 0.000000 + 0.999166, 0.040843, 0.000000, 0.000000 + 0.999144, 0.041366, 0.000000, 0.000000 + 0.999122, 0.041890, 0.000000, 0.000000 + 0.999100, 0.042413, 0.000000, 0.000000 + 0.999078, 0.042936, 0.000000, 0.000000 + 0.999055, 0.043459, 0.000000, 0.000000 + 0.999032, 0.043983, 0.000000, 0.000000 + 0.999009, 0.044506, 0.000000, 0.000000 + 0.998986, 0.045029, 0.000000, 0.000000 + 0.998962, 0.045553, 0.000000, 0.000000 + 0.998938, 0.046076, 0.000000, 0.000000 + 0.998914, 0.046599, 0.000000, 0.000000 + 0.998889, 0.047122, 0.000000, 0.000000 + 0.998864, 0.047645, 0.000000, 0.000000 + 0.998839, 0.048169, 0.000000, 0.000000 + 0.998814, 0.048692, 0.000000, 0.000000 + 0.998788, 0.049215, 0.000000, 0.000000 + 0.998762, 0.049738, 0.000000, 0.000000 + 0.998736, 0.050261, 0.000000, 0.000000 + 0.998710, 0.050784, 0.000000, 0.000000 + 0.998683, 0.051307, 0.000000, 0.000000 + 0.998656, 0.051830, 0.000000, 0.000000 + 0.998629, 0.052353, 0.000000, 0.000000 + 0.998601, 0.052876, 0.000000, 0.000000 + 0.998573, 0.053399, 0.000000, 0.000000 + 0.998545, 0.053922, 0.000000, 0.000000 + 0.998517, 0.054445, 0.000000, 0.000000 + 0.998488, 0.054968, 0.000000, 0.000000 + 0.998459, 0.055491, 0.000000, 0.000000 + 0.998430, 0.056014, 0.000000, 0.000000 + 0.998400, 0.056537, 0.000000, 0.000000 + 0.998371, 0.057060, 0.000000, 0.000000 + 0.998341, 0.057583, 0.000000, 0.000000 + 0.998310, 0.058106, 0.000000, 0.000000 + 0.998280, 0.058629, 0.000000, 0.000000 + 0.998249, 0.059152, 0.000000, 0.000000 + 0.998218, 0.059675, 0.000000, 0.000000 + 0.998186, 0.060198, 0.000000, 0.000000 + 0.998155, 0.060720, 0.000000, 0.000000 + 0.998123, 0.061243, 0.000000, 0.000000 + 0.998091, 0.061766, 0.000000, 0.000000 + 0.998058, 0.062289, 0.000000, 0.000000 + 0.998025, 0.062811, 0.000000, 0.000000 + 0.997992, 0.063334, 0.000000, 0.000000 + 0.997959, 0.063857, 0.000000, 0.000000 + 0.997925, 0.064380, 0.000000, 0.000000 + 0.997892, 0.064902, 0.000000, 0.000000 + 0.997857, 0.065425, 0.000000, 0.000000 + 0.997823, 0.065948, 0.000000, 0.000000 + 0.997788, 0.066470, 0.000000, 0.000000 + 0.997753, 0.066993, 0.000000, 0.000000 + 0.997718, 0.067515, 0.000000, 0.000000 + 0.997683, 0.068038, 0.000000, 0.000000 + 0.997647, 0.068560, 0.000000, 0.000000 + 0.997611, 0.069083, 0.000000, 0.000000 + 0.997575, 0.069606, 0.000000, 0.000000 + 0.997538, 0.070128, 0.000000, 0.000000 + 0.997501, 0.070650, 0.000000, 0.000000 + 0.997464, 0.071173, 0.000000, 0.000000 + 0.997427, 0.071695, 0.000000, 0.000000 + 0.997389, 0.072218, 0.000000, 0.000000 + 0.997351, 0.072740, 0.000000, 0.000000 + 0.997313, 0.073263, 0.000000, 0.000000 + 0.997274, 0.073785, 0.000000, 0.000000 + 0.997235, 0.074307, 0.000000, 0.000000 + 0.997196, 0.074830, 0.000000, 0.000000 + 0.997157, 0.075352, 0.000000, 0.000000 + 0.997117, 0.075874, 0.000000, 0.000000 + 0.997078, 0.076396, 0.000000, 0.000000 + 0.997037, 0.076919, 0.000000, 0.000000 + 0.996997, 0.077441, 0.000000, 0.000000 + 0.996956, 0.077963, 0.000000, 0.000000 + 0.996915, 0.078485, 0.000000, 0.000000 + 0.996874, 0.079007, 0.000000, 0.000000 + 0.996833, 0.079529, 0.000000, 0.000000 + 0.996791, 0.080052, 0.000000, 0.000000 + 0.996749, 0.080574, 0.000000, 0.000000 + 0.996706, 0.081096, 0.000000, 0.000000 + 0.996664, 0.081618, 0.000000, 0.000000 + 0.996621, 0.082140, 0.000000, 0.000000 + 0.996578, 0.082662, 0.000000, 0.000000 + 0.996534, 0.083184, 0.000000, 0.000000 + 0.996491, 0.083706, 0.000000, 0.000000 + 0.996447, 0.084228, 0.000000, 0.000000 + 0.996402, 0.084750, 0.000000, 0.000000 + 0.996358, 0.085271, 0.000000, 0.000000 + 0.996313, 0.085793, 0.000000, 0.000000 + 0.996268, 0.086315, 0.000000, 0.000000 + 0.996223, 0.086837, 0.000000, 0.000000 + 0.996177, 0.087359, 0.000000, 0.000000 + 0.996131, 0.087880, 0.000000, 0.000000 + 0.996085, 0.088402, 0.000000, 0.000000 + 0.996038, 0.088924, 0.000000, 0.000000 + 0.995992, 0.089446, 0.000000, 0.000000 + 0.995945, 0.089967, 0.000000, 0.000000 + 0.995897, 0.090489, 0.000000, 0.000000 + 0.995850, 0.091010, 0.000000, 0.000000 + 0.995802, 0.091532, 0.000000, 0.000000 + 0.995754, 0.092054, 0.000000, 0.000000 + 0.995706, 0.092575, 0.000000, 0.000000 + 0.995657, 0.093097, 0.000000, 0.000000 + 0.995608, 0.093618, 0.000000, 0.000000 + 0.995559, 0.094140, 0.000000, 0.000000 + 0.995510, 0.094661, 0.000000, 0.000000 + 0.995460, 0.095182, 0.000000, 0.000000 + 0.995410, 0.095704, 0.000000, 0.000000 + 0.995360, 0.096225, 0.000000, 0.000000 + 0.995309, 0.096747, 0.000000, 0.000000 + 0.995258, 0.097268, 0.000000, 0.000000 + 0.995207, 0.097789, 0.000000, 0.000000 + 0.995156, 0.098310, 0.000000, 0.000000 + 0.995104, 0.098832, 0.000000, 0.000000 + 0.995052, 0.099353, 0.000000, 0.000000 + 0.995000, 0.099874, 0.000000, 0.000000 + 0.994948, 0.100395, 0.000000, 0.000000 + 0.994895, 0.100916, 0.000000, 0.000000 + 0.994842, 0.101437, 0.000000, 0.000000 + 0.994789, 0.101958, 0.000000, 0.000000 + 0.994735, 0.102479, 0.000000, 0.000000 + 0.994681, 0.103000, 0.000000, 0.000000 + 0.994627, 0.103521, 0.000000, 0.000000 + 0.994573, 0.104042, 0.000000, 0.000000 + 0.994518, 0.104563, 0.000000, 0.000000 + 0.994463, 0.105084, 0.000000, 0.000000 + 0.994408, 0.105605, 0.000000, 0.000000 + 0.994353, 0.106126, 0.000000, 0.000000 + 0.994297, 0.106647, 0.000000, 0.000000 + 0.994241, 0.107167, 0.000000, 0.000000 + 0.994185, 0.107688, 0.000000, 0.000000 + 0.994128, 0.108209, 0.000000, 0.000000 + 0.994071, 0.108729, 0.000000, 0.000000 + 0.994014, 0.109250, 0.000000, 0.000000 + 0.993957, 0.109771, 0.000000, 0.000000 + 0.993899, 0.110291, 0.000000, 0.000000 + 0.993841, 0.110812, 0.000000, 0.000000 + 0.993783, 0.111332, 0.000000, 0.000000 + 0.993725, 0.111853, 0.000000, 0.000000 + 0.993666, 0.112373, 0.000000, 0.000000 + 0.993607, 0.112894, 0.000000, 0.000000 + 0.993548, 0.113414, 0.000000, 0.000000 + 0.993488, 0.113935, 0.000000, 0.000000 + 0.993428, 0.114455, 0.000000, 0.000000 + 0.993368, 0.114975, 0.000000, 0.000000 + 0.993308, 0.115496, 0.000000, 0.000000 + 0.993247, 0.116016, 0.000000, 0.000000 + 0.993186, 0.116536, 0.000000, 0.000000 + 0.993125, 0.117056, 0.000000, 0.000000 + 0.993064, 0.117576, 0.000000, 0.000000 + 0.993002, 0.118097, 0.000000, 0.000000 + 0.992940, 0.118617, 0.000000, 0.000000 + 0.992878, 0.119137, 0.000000, 0.000000 + 0.992815, 0.119657, 0.000000, 0.000000 + 0.992753, 0.120177, 0.000000, 0.000000 + 0.992689, 0.120697, 0.000000, 0.000000 + 0.992626, 0.121217, 0.000000, 0.000000 + 0.992562, 0.121736, 0.000000, 0.000000 + 0.992499, 0.122256, 0.000000, 0.000000 + 0.992434, 0.122776, 0.000000, 0.000000 + 0.992370, 0.123296, 0.000000, 0.000000 + 0.992305, 0.123816, 0.000000, 0.000000 + 0.992240, 0.124335, 0.000000, 0.000000 + 0.992175, 0.124855, 0.000000, 0.000000 + 0.992109, 0.125375, 0.000000, 0.000000 + 0.992044, 0.125894, 0.000000, 0.000000 + 0.991978, 0.126414, 0.000000, 0.000000 + 0.991911, 0.126934, 0.000000, 0.000000 + 0.991845, 0.127453, 0.000000, 0.000000 + 0.991778, 0.127973, 0.000000, 0.000000 + 0.991711, 0.128492, 0.000000, 0.000000 + 0.991643, 0.129011, 0.000000, 0.000000 + 0.991575, 0.129531, 0.000000, 0.000000 + 0.991507, 0.130050, 0.000000, 0.000000 + 0.991439, 0.130569, 0.000000, 0.000000 + 0.991371, 0.131089, 0.000000, 0.000000 + 0.991302, 0.131608, 0.000000, 0.000000 + 0.991233, 0.132127, 0.000000, 0.000000 + 0.991163, 0.132646, 0.000000, 0.000000 + 0.991094, 0.133165, 0.000000, 0.000000 + 0.991024, 0.133685, 0.000000, 0.000000 + 0.990954, 0.134204, 0.000000, 0.000000 + 0.990883, 0.134723, 0.000000, 0.000000 + 0.990813, 0.135242, 0.000000, 0.000000 + 0.990742, 0.135761, 0.000000, 0.000000 + 0.990670, 0.136279, 0.000000, 0.000000 + 0.990599, 0.136798, 0.000000, 0.000000 + 0.990527, 0.137317, 0.000000, 0.000000 + 0.990455, 0.137836, 0.000000, 0.000000 + 0.990383, 0.138355, 0.000000, 0.000000 + 0.990310, 0.138873, 0.000000, 0.000000 + 0.990237, 0.139392, 0.000000, 0.000000 + 0.990164, 0.139911, 0.000000, 0.000000 + 0.990091, 0.140429, 0.000000, 0.000000 + 0.990017, 0.140948, 0.000000, 0.000000 + 0.989943, 0.141466, 0.000000, 0.000000 + 0.989869, 0.141985, 0.000000, 0.000000 + 0.989794, 0.142503, 0.000000, 0.000000 + 0.989720, 0.143022, 0.000000, 0.000000 + 0.989644, 0.143540, 0.000000, 0.000000 + 0.989569, 0.144058, 0.000000, 0.000000 + 0.989494, 0.144577, 0.000000, 0.000000 + 0.989418, 0.145095, 0.000000, 0.000000 + 0.989342, 0.145613, 0.000000, 0.000000 + 0.989265, 0.146131, 0.000000, 0.000000 + 0.989189, 0.146650, 0.000000, 0.000000 + 0.989112, 0.147168, 0.000000, 0.000000 + 0.989034, 0.147686, 0.000000, 0.000000 + 0.988957, 0.148204, 0.000000, 0.000000 + 0.988879, 0.148722, 0.000000, 0.000000 + 0.988801, 0.149240, 0.000000, 0.000000 + 0.988723, 0.149757, 0.000000, 0.000000 + 0.988644, 0.150275, 0.000000, 0.000000 + 0.988565, 0.150793, 0.000000, 0.000000 + 0.988486, 0.151311, 0.000000, 0.000000 + 0.988407, 0.151829, 0.000000, 0.000000 + 0.988327, 0.152346, 0.000000, 0.000000 + 0.988247, 0.152864, 0.000000, 0.000000 + 0.988167, 0.153382, 0.000000, 0.000000 + 0.988087, 0.153899, 0.000000, 0.000000 + 0.988006, 0.154417, 0.000000, 0.000000 + 0.987925, 0.154934, 0.000000, 0.000000 + 0.987844, 0.155451, 0.000000, 0.000000 + 0.987762, 0.155969, 0.000000, 0.000000 + 0.987680, 0.156486, 0.000000, 0.000000 + 0.987598, 0.157003, 0.000000, 0.000000 + 0.987516, 0.157521, 0.000000, 0.000000 + 0.987433, 0.158038, 0.000000, 0.000000 + 0.987350, 0.158555, 0.000000, 0.000000 + 0.987267, 0.159072, 0.000000, 0.000000 + 0.987183, 0.159589, 0.000000, 0.000000 + 0.987100, 0.160106, 0.000000, 0.000000 + 0.987016, 0.160623, 0.000000, 0.000000 + 0.986932, 0.161140, 0.000000, 0.000000 + 0.986847, 0.161657, 0.000000, 0.000000 + 0.986762, 0.162174, 0.000000, 0.000000 + 0.986677, 0.162691, 0.000000, 0.000000 + 0.986592, 0.163208, 0.000000, 0.000000 + 0.986506, 0.163724, 0.000000, 0.000000 + 0.986420, 0.164241, 0.000000, 0.000000 + 0.986334, 0.164758, 0.000000, 0.000000 + 0.986248, 0.165274, 0.000000, 0.000000 + 0.986161, 0.165791, 0.000000, 0.000000 + 0.986074, 0.166307, 0.000000, 0.000000 + 0.985987, 0.166824, 0.000000, 0.000000 + 0.985899, 0.167340, 0.000000, 0.000000 + 0.985811, 0.167857, 0.000000, 0.000000 + 0.985723, 0.168373, 0.000000, 0.000000 + 0.985635, 0.168889, 0.000000, 0.000000 + 0.985546, 0.169405, 0.000000, 0.000000 + 0.985458, 0.169922, 0.000000, 0.000000 + 0.985368, 0.170438, 0.000000, 0.000000 + 0.985279, 0.170954, 0.000000, 0.000000 + 0.985189, 0.171470, 0.000000, 0.000000 + 0.985099, 0.171986, 0.000000, 0.000000 + 0.985009, 0.172502, 0.000000, 0.000000 + 0.984919, 0.173018, 0.000000, 0.000000 + 0.984828, 0.173534, 0.000000, 0.000000 + 0.984737, 0.174049, 0.000000, 0.000000 + 0.984646, 0.174565, 0.000000, 0.000000 + 0.984554, 0.175081, 0.000000, 0.000000 + 0.984462, 0.175596, 0.000000, 0.000000 + 0.984370, 0.176112, 0.000000, 0.000000 + 0.984278, 0.176628, 0.000000, 0.000000 + 0.984185, 0.177143, 0.000000, 0.000000 + 0.984092, 0.177659, 0.000000, 0.000000 + 0.983999, 0.178174, 0.000000, 0.000000 + 0.983906, 0.178689, 0.000000, 0.000000 + 0.983812, 0.179205, 0.000000, 0.000000 + 0.983718, 0.179720, 0.000000, 0.000000 + 0.983624, 0.180235, 0.000000, 0.000000 + 0.983529, 0.180750, 0.000000, 0.000000 + 0.983434, 0.181266, 0.000000, 0.000000 + 0.983339, 0.181781, 0.000000, 0.000000 + 0.983244, 0.182296, 0.000000, 0.000000 + 0.983148, 0.182811, 0.000000, 0.000000 + 0.983052, 0.183326, 0.000000, 0.000000 + 0.982956, 0.183840, 0.000000, 0.000000 + 0.982860, 0.184355, 0.000000, 0.000000 + 0.982763, 0.184870, 0.000000, 0.000000 + 0.982666, 0.185385, 0.000000, 0.000000 + 0.982569, 0.185899, 0.000000, 0.000000 + 0.982471, 0.186414, 0.000000, 0.000000 + 0.982374, 0.186929, 0.000000, 0.000000 + 0.982275, 0.187443, 0.000000, 0.000000 + 0.982177, 0.187958, 0.000000, 0.000000 + 0.982079, 0.188472, 0.000000, 0.000000 + 0.981980, 0.188986, 0.000000, 0.000000 + 0.981881, 0.189501, 0.000000, 0.000000 + 0.981781, 0.190015, 0.000000, 0.000000 + 0.981682, 0.190529, 0.000000, 0.000000 + 0.981582, 0.191043, 0.000000, 0.000000 + 0.981481, 0.191557, 0.000000, 0.000000 + 0.981381, 0.192071, 0.000000, 0.000000 + 0.981280, 0.192585, 0.000000, 0.000000 + 0.981179, 0.193099, 0.000000, 0.000000 + 0.981078, 0.193613, 0.000000, 0.000000 + 0.980976, 0.194127, 0.000000, 0.000000 + 0.980875, 0.194641, 0.000000, 0.000000 + 0.980773, 0.195155, 0.000000, 0.000000 + 0.980670, 0.195668, 0.000000, 0.000000 + 0.980568, 0.196182, 0.000000, 0.000000 + 0.980465, 0.196695, 0.000000, 0.000000 + 0.980361, 0.197209, 0.000000, 0.000000 + 0.980258, 0.197722, 0.000000, 0.000000 + 0.980154, 0.198236, 0.000000, 0.000000 + 0.980050, 0.198749, 0.000000, 0.000000 + 0.979946, 0.199262, 0.000000, 0.000000 + 0.979842, 0.199776, 0.000000, 0.000000 + 0.979737, 0.200289, 0.000000, 0.000000 + 0.979632, 0.200802, 0.000000, 0.000000 + 0.979527, 0.201315, 0.000000, 0.000000 + 0.979421, 0.201828, 0.000000, 0.000000 + 0.979315, 0.202341, 0.000000, 0.000000 + 0.979209, 0.202854, 0.000000, 0.000000 + 0.979103, 0.203367, 0.000000, 0.000000 + 0.978996, 0.203880, 0.000000, 0.000000 + 0.978889, 0.204392, 0.000000, 0.000000 + 0.978782, 0.204905, 0.000000, 0.000000 + 0.978674, 0.205418, 0.000000, 0.000000 + 0.978567, 0.205930, 0.000000, 0.000000 + 0.978459, 0.206443, 0.000000, 0.000000 + 0.978350, 0.206955, 0.000000, 0.000000 + 0.978242, 0.207468, 0.000000, 0.000000 + 0.978133, 0.207980, 0.000000, 0.000000 + 0.978024, 0.208492, 0.000000, 0.000000 + 0.977915, 0.209005, 0.000000, 0.000000 + 0.977805, 0.209517, 0.000000, 0.000000 + 0.977695, 0.210029, 0.000000, 0.000000 + 0.977585, 0.210541, 0.000000, 0.000000 + 0.977475, 0.211053, 0.000000, 0.000000 + 0.977364, 0.211565, 0.000000, 0.000000 + 0.977253, 0.212077, 0.000000, 0.000000 + 0.977142, 0.212589, 0.000000, 0.000000 + 0.977030, 0.213100, 0.000000, 0.000000 + 0.976919, 0.213612, 0.000000, 0.000000 + 0.976807, 0.214124, 0.000000, 0.000000 + 0.976694, 0.214635, 0.000000, 0.000000 + 0.976582, 0.215147, 0.000000, 0.000000 + 0.976469, 0.215658, 0.000000, 0.000000 + 0.976356, 0.216170, 0.000000, 0.000000 + 0.976242, 0.216681, 0.000000, 0.000000 + 0.976129, 0.217192, 0.000000, 0.000000 + 0.976015, 0.217704, 0.000000, 0.000000 + 0.975901, 0.218215, 0.000000, 0.000000 + 0.975786, 0.218726, 0.000000, 0.000000 + 0.975672, 0.219237, 0.000000, 0.000000 + 0.975557, 0.219748, 0.000000, 0.000000 + 0.975441, 0.220259, 0.000000, 0.000000 + 0.975326, 0.220770, 0.000000, 0.000000 + 0.975210, 0.221281, 0.000000, 0.000000 + 0.975094, 0.221791, 0.000000, 0.000000 + 0.974978, 0.222302, 0.000000, 0.000000 + 0.974861, 0.222813, 0.000000, 0.000000 + 0.974744, 0.223323, 0.000000, 0.000000 + 0.974627, 0.223834, 0.000000, 0.000000 + 0.974510, 0.224344, 0.000000, 0.000000 + 0.974392, 0.224855, 0.000000, 0.000000 + 0.974274, 0.225365, 0.000000, 0.000000 + 0.974156, 0.225875, 0.000000, 0.000000 + 0.974038, 0.226385, 0.000000, 0.000000 + 0.973919, 0.226896, 0.000000, 0.000000 + 0.973800, 0.227406, 0.000000, 0.000000 + 0.973681, 0.227916, 0.000000, 0.000000 + 0.973561, 0.228426, 0.000000, 0.000000 + 0.973442, 0.228936, 0.000000, 0.000000 + 0.973322, 0.229445, 0.000000, 0.000000 + 0.973201, 0.229955, 0.000000, 0.000000 + 0.973081, 0.230465, 0.000000, 0.000000 + 0.972960, 0.230975, 0.000000, 0.000000 + 0.972839, 0.231484, 0.000000, 0.000000 + 0.972717, 0.231994, 0.000000, 0.000000 + 0.972596, 0.232503, 0.000000, 0.000000 + 0.972474, 0.233012, 0.000000, 0.000000 + 0.972352, 0.233522, 0.000000, 0.000000 + 0.972229, 0.234031, 0.000000, 0.000000 + 0.972106, 0.234540, 0.000000, 0.000000 + 0.971983, 0.235049, 0.000000, 0.000000 + 0.971860, 0.235558, 0.000000, 0.000000 + 0.971737, 0.236067, 0.000000, 0.000000 + 0.971613, 0.236576, 0.000000, 0.000000 + 0.971489, 0.237085, 0.000000, 0.000000 + 0.971365, 0.237594, 0.000000, 0.000000 + 0.971240, 0.238103, 0.000000, 0.000000 + 0.971115, 0.238611, 0.000000, 0.000000 + 0.970990, 0.239120, 0.000000, 0.000000 + 0.970865, 0.239629, 0.000000, 0.000000 + 0.970739, 0.240137, 0.000000, 0.000000 + 0.970613, 0.240646, 0.000000, 0.000000 + 0.970487, 0.241154, 0.000000, 0.000000 + 0.970360, 0.241662, 0.000000, 0.000000 + 0.970234, 0.242170, 0.000000, 0.000000 + 0.970107, 0.242678, 0.000000, 0.000000 + 0.969980, 0.243187, 0.000000, 0.000000 + 0.969852, 0.243695, 0.000000, 0.000000 + 0.969724, 0.244203, 0.000000, 0.000000 + 0.969596, 0.244710, 0.000000, 0.000000 + 0.969468, 0.245218, 0.000000, 0.000000 + 0.969339, 0.245726, 0.000000, 0.000000 + 0.969210, 0.246234, 0.000000, 0.000000 + 0.969081, 0.246741, 0.000000, 0.000000 + 0.968952, 0.247249, 0.000000, 0.000000 + 0.968822, 0.247756, 0.000000, 0.000000 + 0.968692, 0.248264, 0.000000, 0.000000 + 0.968562, 0.248771, 0.000000, 0.000000 + 0.968432, 0.249278, 0.000000, 0.000000 + 0.968301, 0.249786, 0.000000, 0.000000 + 0.968170, 0.250293, 0.000000, 0.000000 + 0.968039, 0.250800, 0.000000, 0.000000 + 0.967907, 0.251307, 0.000000, 0.000000 + 0.967776, 0.251814, 0.000000, 0.000000 + 0.967644, 0.252321, 0.000000, 0.000000 + 0.967511, 0.252827, 0.000000, 0.000000 + 0.967379, 0.253334, 0.000000, 0.000000 + 0.967246, 0.253841, 0.000000, 0.000000 + 0.967113, 0.254347, 0.000000, 0.000000 + 0.966980, 0.254854, 0.000000, 0.000000 + 0.966846, 0.255360, 0.000000, 0.000000 + 0.966712, 0.255867, 0.000000, 0.000000 + 0.966578, 0.256373, 0.000000, 0.000000 + 0.966444, 0.256879, 0.000000, 0.000000 + 0.966309, 0.257385, 0.000000, 0.000000 + 0.966174, 0.257891, 0.000000, 0.000000 + 0.966039, 0.258397, 0.000000, 0.000000 + 0.965903, 0.258903, 0.000000, 0.000000 + 0.965767, 0.259409, 0.000000, 0.000000 + 0.965631, 0.259915, 0.000000, 0.000000 + 0.965495, 0.260421, 0.000000, 0.000000 + 0.965359, 0.260926, 0.000000, 0.000000 + 0.965222, 0.261432, 0.000000, 0.000000 + 0.965085, 0.261938, 0.000000, 0.000000 + 0.964947, 0.262443, 0.000000, 0.000000 + 0.964810, 0.262948, 0.000000, 0.000000 + 0.964672, 0.263454, 0.000000, 0.000000 + 0.964534, 0.263959, 0.000000, 0.000000 + 0.964396, 0.264464, 0.000000, 0.000000 + 0.964257, 0.264969, 0.000000, 0.000000 + 0.964118, 0.265474, 0.000000, 0.000000 + 0.963979, 0.265979, 0.000000, 0.000000 + 0.963839, 0.266484, 0.000000, 0.000000 + 0.963700, 0.266989, 0.000000, 0.000000 + 0.963560, 0.267494, 0.000000, 0.000000 + 0.963419, 0.267998, 0.000000, 0.000000 + 0.963279, 0.268503, 0.000000, 0.000000 + 0.963138, 0.269007, 0.000000, 0.000000 + 0.962997, 0.269512, 0.000000, 0.000000 + 0.962856, 0.270016, 0.000000, 0.000000 + 0.962714, 0.270520, 0.000000, 0.000000 + 0.962572, 0.271025, 0.000000, 0.000000 + 0.962430, 0.271529, 0.000000, 0.000000 + 0.962288, 0.272033, 0.000000, 0.000000 + 0.962145, 0.272537, 0.000000, 0.000000 + 0.962003, 0.273041, 0.000000, 0.000000 + 0.961859, 0.273544, 0.000000, 0.000000 + 0.961716, 0.274048, 0.000000, 0.000000 + 0.961572, 0.274552, 0.000000, 0.000000 + 0.961428, 0.275056, 0.000000, 0.000000 + 0.961284, 0.275559, 0.000000, 0.000000 + 0.961140, 0.276062, 0.000000, 0.000000 + 0.960995, 0.276566, 0.000000, 0.000000 + 0.960850, 0.277069, 0.000000, 0.000000 + 0.960705, 0.277572, 0.000000, 0.000000 + 0.960559, 0.278076, 0.000000, 0.000000 + 0.960413, 0.278579, 0.000000, 0.000000 + 0.960267, 0.279082, 0.000000, 0.000000 + 0.960121, 0.279585, 0.000000, 0.000000 + 0.959975, 0.280087, 0.000000, 0.000000 + 0.959828, 0.280590, 0.000000, 0.000000 + 0.959681, 0.281093, 0.000000, 0.000000 + 0.959533, 0.281595, 0.000000, 0.000000 + 0.959386, 0.282098, 0.000000, 0.000000 + 0.959238, 0.282600, 0.000000, 0.000000 + 0.959090, 0.283103, 0.000000, 0.000000 + 0.958941, 0.283605, 0.000000, 0.000000 + 0.958792, 0.284107, 0.000000, 0.000000 + 0.958644, 0.284610, 0.000000, 0.000000 + 0.958494, 0.285112, 0.000000, 0.000000 + 0.958345, 0.285614, 0.000000, 0.000000 + 0.958195, 0.286116, 0.000000, 0.000000 + 0.958045, 0.286617, 0.000000, 0.000000 + 0.957895, 0.287119, 0.000000, 0.000000 + 0.957744, 0.287621, 0.000000, 0.000000 + 0.957594, 0.288122, 0.000000, 0.000000 + 0.957443, 0.288624, 0.000000, 0.000000 + 0.957291, 0.289125, 0.000000, 0.000000 + 0.957140, 0.289627, 0.000000, 0.000000 + 0.956988, 0.290128, 0.000000, 0.000000 + 0.956836, 0.290629, 0.000000, 0.000000 + 0.956683, 0.291130, 0.000000, 0.000000 + 0.956531, 0.291631, 0.000000, 0.000000 + 0.956378, 0.292132, 0.000000, 0.000000 + 0.956225, 0.292633, 0.000000, 0.000000 + 0.956071, 0.293134, 0.000000, 0.000000 + 0.955918, 0.293635, 0.000000, 0.000000 + 0.955764, 0.294135, 0.000000, 0.000000 + 0.955610, 0.294636, 0.000000, 0.000000 + 0.955455, 0.295136, 0.000000, 0.000000 + 0.955300, 0.295637, 0.000000, 0.000000 + 0.955145, 0.296137, 0.000000, 0.000000 + 0.954990, 0.296637, 0.000000, 0.000000 + 0.954835, 0.297138, 0.000000, 0.000000 + 0.954679, 0.297638, 0.000000, 0.000000 + 0.954523, 0.298138, 0.000000, 0.000000 + 0.954367, 0.298638, 0.000000, 0.000000 + 0.954210, 0.299137, 0.000000, 0.000000 + 0.954053, 0.299637, 0.000000, 0.000000 + 0.953896, 0.300137, 0.000000, 0.000000 + 0.953739, 0.300636, 0.000000, 0.000000 + 0.953581, 0.301136, 0.000000, 0.000000 + 0.953423, 0.301635, 0.000000, 0.000000 + 0.953265, 0.302135, 0.000000, 0.000000 + 0.953107, 0.302634, 0.000000, 0.000000 + 0.952948, 0.303133, 0.000000, 0.000000 + 0.952789, 0.303632, 0.000000, 0.000000 + 0.952630, 0.304131, 0.000000, 0.000000 + 0.952471, 0.304630, 0.000000, 0.000000 + 0.952311, 0.305129, 0.000000, 0.000000 + 0.952151, 0.305628, 0.000000, 0.000000 + 0.951991, 0.306126, 0.000000, 0.000000 + 0.951830, 0.306625, 0.000000, 0.000000 + 0.951670, 0.307123, 0.000000, 0.000000 + 0.951509, 0.307622, 0.000000, 0.000000 + 0.951347, 0.308120, 0.000000, 0.000000 + 0.951186, 0.308618, 0.000000, 0.000000 + 0.951024, 0.309117, 0.000000, 0.000000 + 0.950862, 0.309615, 0.000000, 0.000000 + 0.950700, 0.310113, 0.000000, 0.000000 + 0.950537, 0.310611, 0.000000, 0.000000 + 0.950374, 0.311108, 0.000000, 0.000000 + 0.950211, 0.311606, 0.000000, 0.000000 + 0.950048, 0.312104, 0.000000, 0.000000 + 0.949884, 0.312601, 0.000000, 0.000000 + 0.949721, 0.313099, 0.000000, 0.000000 + 0.949556, 0.313596, 0.000000, 0.000000 + 0.949392, 0.314094, 0.000000, 0.000000 + 0.949227, 0.314591, 0.000000, 0.000000 + 0.949062, 0.315088, 0.000000, 0.000000 + 0.948897, 0.315585, 0.000000, 0.000000 + 0.948732, 0.316082, 0.000000, 0.000000 + 0.948566, 0.316579, 0.000000, 0.000000 + 0.948400, 0.317076, 0.000000, 0.000000 + 0.948234, 0.317572, 0.000000, 0.000000 + 0.948068, 0.318069, 0.000000, 0.000000 + 0.947901, 0.318565, 0.000000, 0.000000 + 0.947734, 0.319062, 0.000000, 0.000000 + 0.947567, 0.319558, 0.000000, 0.000000 + 0.947399, 0.320055, 0.000000, 0.000000 + 0.947231, 0.320551, 0.000000, 0.000000 + 0.947063, 0.321047, 0.000000, 0.000000 + 0.946895, 0.321543, 0.000000, 0.000000 + 0.946727, 0.322039, 0.000000, 0.000000 + 0.946558, 0.322535, 0.000000, 0.000000 + 0.946389, 0.323030, 0.000000, 0.000000 + 0.946219, 0.323526, 0.000000, 0.000000 + 0.946050, 0.324021, 0.000000, 0.000000 + 0.945880, 0.324517, 0.000000, 0.000000 + 0.945710, 0.325012, 0.000000, 0.000000 + 0.945539, 0.325508, 0.000000, 0.000000 + 0.945369, 0.326003, 0.000000, 0.000000 + 0.945198, 0.326498, 0.000000, 0.000000 + 0.945027, 0.326993, 0.000000, 0.000000 + 0.944855, 0.327488, 0.000000, 0.000000 + 0.944684, 0.327983, 0.000000, 0.000000 + 0.944512, 0.328478, 0.000000, 0.000000 + 0.944340, 0.328972, 0.000000, 0.000000 + 0.944167, 0.329467, 0.000000, 0.000000 + 0.943994, 0.329961, 0.000000, 0.000000 + 0.943822, 0.330456, 0.000000, 0.000000 + 0.943648, 0.330950, 0.000000, 0.000000 + 0.943475, 0.331444, 0.000000, 0.000000 + 0.943301, 0.331938, 0.000000, 0.000000 + 0.943127, 0.332432, 0.000000, 0.000000 + 0.942953, 0.332926, 0.000000, 0.000000 + 0.942778, 0.333420, 0.000000, 0.000000 + 0.942604, 0.333914, 0.000000, 0.000000 + 0.942429, 0.334407, 0.000000, 0.000000 + 0.942253, 0.334901, 0.000000, 0.000000 + 0.942078, 0.335395, 0.000000, 0.000000 + 0.941902, 0.335888, 0.000000, 0.000000 + 0.941726, 0.336381, 0.000000, 0.000000 + 0.941550, 0.336874, 0.000000, 0.000000 + 0.941373, 0.337368, 0.000000, 0.000000 + 0.941196, 0.337861, 0.000000, 0.000000 + 0.941019, 0.338354, 0.000000, 0.000000 + 0.940842, 0.338846, 0.000000, 0.000000 + 0.940664, 0.339339, 0.000000, 0.000000 + 0.940486, 0.339832, 0.000000, 0.000000 + 0.940308, 0.340324, 0.000000, 0.000000 + 0.940130, 0.340817, 0.000000, 0.000000 + 0.939951, 0.341309, 0.000000, 0.000000 + 0.939772, 0.341801, 0.000000, 0.000000 + 0.939593, 0.342294, 0.000000, 0.000000 + 0.939414, 0.342786, 0.000000, 0.000000 + 0.939234, 0.343278, 0.000000, 0.000000 + 0.939054, 0.343770, 0.000000, 0.000000 + 0.938874, 0.344261, 0.000000, 0.000000 + 0.938693, 0.344753, 0.000000, 0.000000 + 0.938513, 0.345245, 0.000000, 0.000000 + 0.938332, 0.345736, 0.000000, 0.000000 + 0.938151, 0.346228, 0.000000, 0.000000 + 0.937969, 0.346719, 0.000000, 0.000000 + 0.937787, 0.347210, 0.000000, 0.000000 + 0.937605, 0.347701, 0.000000, 0.000000 + 0.937423, 0.348192, 0.000000, 0.000000 + 0.937241, 0.348683, 0.000000, 0.000000 + 0.937058, 0.349174, 0.000000, 0.000000 + 0.936875, 0.349665, 0.000000, 0.000000 + 0.936692, 0.350156, 0.000000, 0.000000 + 0.936508, 0.350646, 0.000000, 0.000000 + 0.936324, 0.351137, 0.000000, 0.000000 + 0.936140, 0.351627, 0.000000, 0.000000 + 0.935956, 0.352117, 0.000000, 0.000000 + 0.935771, 0.352607, 0.000000, 0.000000 + 0.935587, 0.353098, 0.000000, 0.000000 + 0.935401, 0.353588, 0.000000, 0.000000 + 0.935216, 0.354077, 0.000000, 0.000000 + 0.935031, 0.354567, 0.000000, 0.000000 + 0.934845, 0.355057, 0.000000, 0.000000 + 0.934659, 0.355547, 0.000000, 0.000000 + 0.934472, 0.356036, 0.000000, 0.000000 + 0.934286, 0.356525, 0.000000, 0.000000 + 0.934099, 0.357015, 0.000000, 0.000000 + 0.933912, 0.357504, 0.000000, 0.000000 + 0.933724, 0.357993, 0.000000, 0.000000 + 0.933537, 0.358482, 0.000000, 0.000000 + 0.933349, 0.358971, 0.000000, 0.000000 + 0.933161, 0.359460, 0.000000, 0.000000 + 0.932972, 0.359948, 0.000000, 0.000000 + 0.932784, 0.360437, 0.000000, 0.000000 + 0.932595, 0.360926, 0.000000, 0.000000 + 0.932405, 0.361414, 0.000000, 0.000000 + 0.932216, 0.361902, 0.000000, 0.000000 + 0.932026, 0.362391, 0.000000, 0.000000 + 0.931836, 0.362879, 0.000000, 0.000000 + 0.931646, 0.363367, 0.000000, 0.000000 + 0.931456, 0.363855, 0.000000, 0.000000 + 0.931265, 0.364342, 0.000000, 0.000000 + 0.931074, 0.364830, 0.000000, 0.000000 + 0.930883, 0.365318, 0.000000, 0.000000 + 0.930691, 0.365805, 0.000000, 0.000000 + 0.930500, 0.366293, 0.000000, 0.000000 + 0.930308, 0.366780, 0.000000, 0.000000 + 0.930115, 0.367267, 0.000000, 0.000000 + 0.929923, 0.367754, 0.000000, 0.000000 + 0.929730, 0.368241, 0.000000, 0.000000 + 0.929537, 0.368728, 0.000000, 0.000000 + 0.929344, 0.369215, 0.000000, 0.000000 + 0.929150, 0.369702, 0.000000, 0.000000 + 0.928957, 0.370188, 0.000000, 0.000000 + 0.928763, 0.370675, 0.000000, 0.000000 + 0.928568, 0.371161, 0.000000, 0.000000 + 0.928374, 0.371648, 0.000000, 0.000000 + 0.928179, 0.372134, 0.000000, 0.000000 + 0.927984, 0.372620, 0.000000, 0.000000 + 0.927789, 0.373106, 0.000000, 0.000000 + 0.927593, 0.373592, 0.000000, 0.000000 + 0.927397, 0.374078, 0.000000, 0.000000 + 0.927201, 0.374563, 0.000000, 0.000000 + 0.927005, 0.375049, 0.000000, 0.000000 + 0.926808, 0.375535, 0.000000, 0.000000 + 0.926612, 0.376020, 0.000000, 0.000000 + 0.926415, 0.376505, 0.000000, 0.000000 + 0.926217, 0.376990, 0.000000, 0.000000 + 0.926020, 0.377475, 0.000000, 0.000000 + 0.925822, 0.377960, 0.000000, 0.000000 + 0.925624, 0.378445, 0.000000, 0.000000 + 0.925425, 0.378930, 0.000000, 0.000000 + 0.925227, 0.379415, 0.000000, 0.000000 + 0.925028, 0.379899, 0.000000, 0.000000 + 0.924829, 0.380384, 0.000000, 0.000000 + 0.924629, 0.380868, 0.000000, 0.000000 + 0.924430, 0.381352, 0.000000, 0.000000 + 0.924230, 0.381836, 0.000000, 0.000000 + 0.924030, 0.382320, 0.000000, 0.000000 + 0.923829, 0.382804, 0.000000, 0.000000 + 0.923629, 0.383288, 0.000000, 0.000000 + 0.923428, 0.383772, 0.000000, 0.000000 + 0.923227, 0.384256, 0.000000, 0.000000 + 0.923025, 0.384739, 0.000000, 0.000000 + 0.922824, 0.385222, 0.000000, 0.000000 + 0.922622, 0.385706, 0.000000, 0.000000 + 0.922420, 0.386189, 0.000000, 0.000000 + 0.922217, 0.386672, 0.000000, 0.000000 + 0.922015, 0.387155, 0.000000, 0.000000 + 0.921812, 0.387638, 0.000000, 0.000000 + 0.921609, 0.388121, 0.000000, 0.000000 + 0.921405, 0.388603, 0.000000, 0.000000 + 0.921201, 0.389086, 0.000000, 0.000000 + 0.920998, 0.389568, 0.000000, 0.000000 + 0.920793, 0.390051, 0.000000, 0.000000 + 0.920589, 0.390533, 0.000000, 0.000000 + 0.920384, 0.391015, 0.000000, 0.000000 + 0.920179, 0.391497, 0.000000, 0.000000 + 0.919974, 0.391979, 0.000000, 0.000000 + 0.919769, 0.392461, 0.000000, 0.000000 + 0.919563, 0.392942, 0.000000, 0.000000 + 0.919357, 0.393424, 0.000000, 0.000000 + 0.919151, 0.393906, 0.000000, 0.000000 + 0.918944, 0.394387, 0.000000, 0.000000 + 0.918738, 0.394868, 0.000000, 0.000000 + 0.918531, 0.395349, 0.000000, 0.000000 + 0.918324, 0.395830, 0.000000, 0.000000 + 0.918116, 0.396311, 0.000000, 0.000000 + 0.917908, 0.396792, 0.000000, 0.000000 + 0.917701, 0.397273, 0.000000, 0.000000 + 0.917492, 0.397753, 0.000000, 0.000000 + 0.917284, 0.398234, 0.000000, 0.000000 + 0.917075, 0.398714, 0.000000, 0.000000 + 0.916866, 0.399195, 0.000000, 0.000000 + 0.916657, 0.399675, 0.000000, 0.000000 + 0.916448, 0.400155, 0.000000, 0.000000 + 0.916238, 0.400635, 0.000000, 0.000000 + 0.916028, 0.401115, 0.000000, 0.000000 + 0.915818, 0.401594, 0.000000, 0.000000 + 0.915607, 0.402074, 0.000000, 0.000000 + 0.915396, 0.402554, 0.000000, 0.000000 + 0.915185, 0.403033, 0.000000, 0.000000 + 0.914974, 0.403512, 0.000000, 0.000000 + 0.914763, 0.403991, 0.000000, 0.000000 + 0.914551, 0.404471, 0.000000, 0.000000 + 0.914339, 0.404950, 0.000000, 0.000000 + 0.914127, 0.405428, 0.000000, 0.000000 + 0.913914, 0.405907, 0.000000, 0.000000 + 0.913702, 0.406386, 0.000000, 0.000000 + 0.913489, 0.406864, 0.000000, 0.000000 + 0.913275, 0.407343, 0.000000, 0.000000 + 0.913062, 0.407821, 0.000000, 0.000000 + 0.912848, 0.408299, 0.000000, 0.000000 + 0.912634, 0.408777, 0.000000, 0.000000 + 0.912420, 0.409255, 0.000000, 0.000000 + 0.912206, 0.409733, 0.000000, 0.000000 + 0.911991, 0.410211, 0.000000, 0.000000 + 0.911776, 0.410688, 0.000000, 0.000000 + 0.911561, 0.411166, 0.000000, 0.000000 + 0.911345, 0.411643, 0.000000, 0.000000 + 0.911129, 0.412121, 0.000000, 0.000000 + 0.910913, 0.412598, 0.000000, 0.000000 + 0.910697, 0.413075, 0.000000, 0.000000 + 0.910481, 0.413552, 0.000000, 0.000000 + 0.910264, 0.414029, 0.000000, 0.000000 + 0.910047, 0.414505, 0.000000, 0.000000 + 0.909830, 0.414982, 0.000000, 0.000000 + 0.909612, 0.415458, 0.000000, 0.000000 + 0.909394, 0.415935, 0.000000, 0.000000 + 0.909177, 0.416411, 0.000000, 0.000000 + 0.908958, 0.416887, 0.000000, 0.000000 + 0.908740, 0.417363, 0.000000, 0.000000 + 0.908521, 0.417839, 0.000000, 0.000000 + 0.908302, 0.418315, 0.000000, 0.000000 + 0.908083, 0.418791, 0.000000, 0.000000 + 0.907863, 0.419266, 0.000000, 0.000000 + 0.907644, 0.419742, 0.000000, 0.000000 + 0.907424, 0.420217, 0.000000, 0.000000 + 0.907203, 0.420692, 0.000000, 0.000000 + 0.906983, 0.421167, 0.000000, 0.000000 + 0.906762, 0.421642, 0.000000, 0.000000 + 0.906541, 0.422117, 0.000000, 0.000000 + 0.906320, 0.422592, 0.000000, 0.000000 + 0.906099, 0.423067, 0.000000, 0.000000 + 0.905877, 0.423541, 0.000000, 0.000000 + 0.905655, 0.424015, 0.000000, 0.000000 + 0.905433, 0.424490, 0.000000, 0.000000 + 0.905210, 0.424964, 0.000000, 0.000000 + 0.904988, 0.425438, 0.000000, 0.000000 + 0.904765, 0.425912, 0.000000, 0.000000 + 0.904541, 0.426386, 0.000000, 0.000000 + 0.904318, 0.426860, 0.000000, 0.000000 + 0.904094, 0.427333, 0.000000, 0.000000 + 0.903870, 0.427807, 0.000000, 0.000000 + 0.903646, 0.428280, 0.000000, 0.000000 + 0.903422, 0.428753, 0.000000, 0.000000 + 0.903197, 0.429226, 0.000000, 0.000000 + 0.902972, 0.429699, 0.000000, 0.000000 + 0.902747, 0.430172, 0.000000, 0.000000 + 0.902521, 0.430645, 0.000000, 0.000000 + 0.902296, 0.431118, 0.000000, 0.000000 + 0.902070, 0.431590, 0.000000, 0.000000 + 0.901844, 0.432063, 0.000000, 0.000000 + 0.901617, 0.432535, 0.000000, 0.000000 + 0.901390, 0.433007, 0.000000, 0.000000 + 0.901164, 0.433479, 0.000000, 0.000000 + 0.900936, 0.433951, 0.000000, 0.000000 + 0.900709, 0.434423, 0.000000, 0.000000 + 0.900481, 0.434895, 0.000000, 0.000000 + 0.900253, 0.435366, 0.000000, 0.000000 + 0.900025, 0.435838, 0.000000, 0.000000 + 0.899797, 0.436309, 0.000000, 0.000000 + 0.899568, 0.436780, 0.000000, 0.000000 + 0.899339, 0.437251, 0.000000, 0.000000 + 0.899110, 0.437722, 0.000000, 0.000000 + 0.898881, 0.438193, 0.000000, 0.000000 + 0.898651, 0.438664, 0.000000, 0.000000 + 0.898421, 0.439135, 0.000000, 0.000000 + 0.898191, 0.439605, 0.000000, 0.000000 + 0.897961, 0.440076, 0.000000, 0.000000 + 0.897730, 0.440546, 0.000000, 0.000000 + 0.897499, 0.441016, 0.000000, 0.000000 + 0.897268, 0.441486, 0.000000, 0.000000 + 0.897037, 0.441956, 0.000000, 0.000000 + 0.896805, 0.442426, 0.000000, 0.000000 + 0.896573, 0.442895, 0.000000, 0.000000 + 0.896341, 0.443365, 0.000000, 0.000000 + 0.896109, 0.443834, 0.000000, 0.000000 + 0.895876, 0.444304, 0.000000, 0.000000 + 0.895643, 0.444773, 0.000000, 0.000000 + 0.895410, 0.445242, 0.000000, 0.000000 + 0.895177, 0.445711, 0.000000, 0.000000 + 0.894943, 0.446180, 0.000000, 0.000000 + 0.894710, 0.446648, 0.000000, 0.000000 + 0.894476, 0.447117, 0.000000, 0.000000 + 0.894241, 0.447585, 0.000000, 0.000000 + 0.894007, 0.448054, 0.000000, 0.000000 + 0.893772, 0.448522, 0.000000, 0.000000 + 0.893537, 0.448990, 0.000000, 0.000000 + 0.893302, 0.449458, 0.000000, 0.000000 + 0.893066, 0.449926, 0.000000, 0.000000 + 0.892830, 0.450393, 0.000000, 0.000000 + 0.892594, 0.450861, 0.000000, 0.000000 + 0.892358, 0.451328, 0.000000, 0.000000 + 0.892121, 0.451796, 0.000000, 0.000000 + 0.891885, 0.452263, 0.000000, 0.000000 + 0.891648, 0.452730, 0.000000, 0.000000 + 0.891410, 0.453197, 0.000000, 0.000000 + 0.891173, 0.453664, 0.000000, 0.000000 + 0.890935, 0.454130, 0.000000, 0.000000 + 0.890697, 0.454597, 0.000000, 0.000000 + 0.890459, 0.455064, 0.000000, 0.000000 + 0.890220, 0.455530, 0.000000, 0.000000 + 0.889982, 0.455996, 0.000000, 0.000000 + 0.889743, 0.456462, 0.000000, 0.000000 + 0.889504, 0.456928, 0.000000, 0.000000 + 0.889264, 0.457394, 0.000000, 0.000000 + 0.889024, 0.457860, 0.000000, 0.000000 + 0.888785, 0.458325, 0.000000, 0.000000 + 0.888544, 0.458791, 0.000000, 0.000000 + 0.888304, 0.459256, 0.000000, 0.000000 + 0.888063, 0.459721, 0.000000, 0.000000 + 0.887822, 0.460186, 0.000000, 0.000000 + 0.887581, 0.460651, 0.000000, 0.000000 + 0.887340, 0.461116, 0.000000, 0.000000 + 0.887098, 0.461581, 0.000000, 0.000000 + 0.886856, 0.462045, 0.000000, 0.000000 + 0.886614, 0.462510, 0.000000, 0.000000 + 0.886372, 0.462974, 0.000000, 0.000000 + 0.886129, 0.463438, 0.000000, 0.000000 + 0.885886, 0.463902, 0.000000, 0.000000 + 0.885643, 0.464366, 0.000000, 0.000000 + 0.885400, 0.464830, 0.000000, 0.000000 + 0.885156, 0.465294, 0.000000, 0.000000 + 0.884912, 0.465757, 0.000000, 0.000000 + 0.884668, 0.466221, 0.000000, 0.000000 + 0.884424, 0.466684, 0.000000, 0.000000 + 0.884179, 0.467147, 0.000000, 0.000000 + 0.883935, 0.467610, 0.000000, 0.000000 + 0.883690, 0.468073, 0.000000, 0.000000 + 0.883444, 0.468536, 0.000000, 0.000000 + 0.883199, 0.468999, 0.000000, 0.000000 + 0.882953, 0.469461, 0.000000, 0.000000 + 0.882707, 0.469924, 0.000000, 0.000000 + 0.882461, 0.470386, 0.000000, 0.000000 + 0.882214, 0.470848, 0.000000, 0.000000 + 0.881968, 0.471310, 0.000000, 0.000000 + 0.881721, 0.471772, 0.000000, 0.000000 + 0.881473, 0.472234, 0.000000, 0.000000 + 0.881226, 0.472695, 0.000000, 0.000000 + 0.880978, 0.473157, 0.000000, 0.000000 + 0.880730, 0.473618, 0.000000, 0.000000 + 0.880482, 0.474079, 0.000000, 0.000000 + 0.880234, 0.474541, 0.000000, 0.000000 + 0.879985, 0.475002, 0.000000, 0.000000 + 0.879736, 0.475462, 0.000000, 0.000000 + 0.879487, 0.475923, 0.000000, 0.000000 + 0.879237, 0.476384, 0.000000, 0.000000 + 0.878988, 0.476844, 0.000000, 0.000000 + 0.878738, 0.477305, 0.000000, 0.000000 + 0.878488, 0.477765, 0.000000, 0.000000 + 0.878237, 0.478225, 0.000000, 0.000000 + 0.877987, 0.478685, 0.000000, 0.000000 + 0.877736, 0.479145, 0.000000, 0.000000 + 0.877485, 0.479604, 0.000000, 0.000000 + 0.877234, 0.480064, 0.000000, 0.000000 + 0.876982, 0.480523, 0.000000, 0.000000 + 0.876730, 0.480982, 0.000000, 0.000000 + 0.876478, 0.481442, 0.000000, 0.000000 + 0.876226, 0.481901, 0.000000, 0.000000 + 0.875973, 0.482359, 0.000000, 0.000000 + 0.875721, 0.482818, 0.000000, 0.000000 + 0.875468, 0.483277, 0.000000, 0.000000 + 0.875214, 0.483735, 0.000000, 0.000000 + 0.874961, 0.484194, 0.000000, 0.000000 + 0.874707, 0.484652, 0.000000, 0.000000 + 0.874453, 0.485110, 0.000000, 0.000000 + 0.874199, 0.485568, 0.000000, 0.000000 + 0.873945, 0.486026, 0.000000, 0.000000 + 0.873690, 0.486483, 0.000000, 0.000000 + 0.873435, 0.486941, 0.000000, 0.000000 + 0.873180, 0.487398, 0.000000, 0.000000 + 0.872924, 0.487856, 0.000000, 0.000000 + 0.872669, 0.488313, 0.000000, 0.000000 + 0.872413, 0.488770, 0.000000, 0.000000 + 0.872157, 0.489227, 0.000000, 0.000000 + 0.871900, 0.489683, 0.000000, 0.000000 + 0.871644, 0.490140, 0.000000, 0.000000 + 0.871387, 0.490596, 0.000000, 0.000000 + 0.871130, 0.491053, 0.000000, 0.000000 + 0.870872, 0.491509, 0.000000, 0.000000 + 0.870615, 0.491965, 0.000000, 0.000000 + 0.870357, 0.492421, 0.000000, 0.000000 + 0.870099, 0.492877, 0.000000, 0.000000 + 0.869841, 0.493332, 0.000000, 0.000000 + 0.869582, 0.493788, 0.000000, 0.000000 + 0.869324, 0.494243, 0.000000, 0.000000 + 0.869065, 0.494699, 0.000000, 0.000000 + 0.868805, 0.495154, 0.000000, 0.000000 + 0.868546, 0.495609, 0.000000, 0.000000 + 0.868286, 0.496064, 0.000000, 0.000000 + 0.868026, 0.496518, 0.000000, 0.000000 + 0.867766, 0.496973, 0.000000, 0.000000 + 0.867506, 0.497427, 0.000000, 0.000000 + 0.867245, 0.497882, 0.000000, 0.000000 + 0.866984, 0.498336, 0.000000, 0.000000 + 0.866723, 0.498790, 0.000000, 0.000000 + 0.866462, 0.499244, 0.000000, 0.000000 + 0.866200, 0.499698, 0.000000, 0.000000 + 0.865938, 0.500151, 0.000000, 0.000000 + 0.865676, 0.500605, 0.000000, 0.000000 + 0.865414, 0.501058, 0.000000, 0.000000 + 0.865151, 0.501511, 0.000000, 0.000000 + 0.864888, 0.501964, 0.000000, 0.000000 + 0.864625, 0.502417, 0.000000, 0.000000 + 0.864362, 0.502870, 0.000000, 0.000000 + 0.864099, 0.503323, 0.000000, 0.000000 + 0.863835, 0.503775, 0.000000, 0.000000 + 0.863571, 0.504228, 0.000000, 0.000000 + 0.863307, 0.504680, 0.000000, 0.000000 + 0.863042, 0.505132, 0.000000, 0.000000 + 0.862777, 0.505584, 0.000000, 0.000000 + 0.862512, 0.506036, 0.000000, 0.000000 + 0.862247, 0.506487, 0.000000, 0.000000 + 0.861982, 0.506939, 0.000000, 0.000000 + 0.861716, 0.507390, 0.000000, 0.000000 + 0.861450, 0.507842, 0.000000, 0.000000 + 0.861184, 0.508293, 0.000000, 0.000000 + 0.860918, 0.508744, 0.000000, 0.000000 + 0.860651, 0.509195, 0.000000, 0.000000 + 0.860385, 0.509645, 0.000000, 0.000000 + 0.860117, 0.510096, 0.000000, 0.000000 + 0.859850, 0.510546, 0.000000, 0.000000 + 0.859583, 0.510997, 0.000000, 0.000000 + 0.859315, 0.511447, 0.000000, 0.000000 + 0.859047, 0.511897, 0.000000, 0.000000 + 0.858779, 0.512347, 0.000000, 0.000000 + 0.858510, 0.512797, 0.000000, 0.000000 + 0.858241, 0.513246, 0.000000, 0.000000 + 0.857973, 0.513696, 0.000000, 0.000000 + 0.857703, 0.514145, 0.000000, 0.000000 + 0.857434, 0.514594, 0.000000, 0.000000 + 0.857164, 0.515043, 0.000000, 0.000000 + 0.856894, 0.515492, 0.000000, 0.000000 + 0.856624, 0.515941, 0.000000, 0.000000 + 0.856354, 0.516389, 0.000000, 0.000000 + 0.856083, 0.516838, 0.000000, 0.000000 + 0.855813, 0.517286, 0.000000, 0.000000 + 0.855541, 0.517734, 0.000000, 0.000000 + 0.855270, 0.518182, 0.000000, 0.000000 + 0.854999, 0.518630, 0.000000, 0.000000 + 0.854727, 0.519078, 0.000000, 0.000000 + 0.854455, 0.519526, 0.000000, 0.000000 + 0.854183, 0.519973, 0.000000, 0.000000 + 0.853910, 0.520420, 0.000000, 0.000000 + 0.853638, 0.520868, 0.000000, 0.000000 + 0.853365, 0.521315, 0.000000, 0.000000 + 0.853091, 0.521761, 0.000000, 0.000000 + 0.852818, 0.522208, 0.000000, 0.000000 + 0.852544, 0.522655, 0.000000, 0.000000 + 0.852270, 0.523101, 0.000000, 0.000000 + 0.851996, 0.523548, 0.000000, 0.000000 + 0.851722, 0.523994, 0.000000, 0.000000 + 0.851447, 0.524440, 0.000000, 0.000000 + 0.851173, 0.524886, 0.000000, 0.000000 + 0.850898, 0.525332, 0.000000, 0.000000 + 0.850622, 0.525777, 0.000000, 0.000000 + 0.850347, 0.526223, 0.000000, 0.000000 + 0.850071, 0.526668, 0.000000, 0.000000 + 0.849795, 0.527113, 0.000000, 0.000000 + 0.849519, 0.527558, 0.000000, 0.000000 + 0.849243, 0.528003, 0.000000, 0.000000 + 0.848966, 0.528448, 0.000000, 0.000000 + 0.848689, 0.528892, 0.000000, 0.000000 + 0.848412, 0.529337, 0.000000, 0.000000 + 0.848134, 0.529781, 0.000000, 0.000000 + 0.847857, 0.530225, 0.000000, 0.000000 + 0.847579, 0.530669, 0.000000, 0.000000 + 0.847301, 0.531113, 0.000000, 0.000000 + 0.847023, 0.531557, 0.000000, 0.000000 + 0.846744, 0.532000, 0.000000, 0.000000 + 0.846465, 0.532444, 0.000000, 0.000000 + 0.846186, 0.532887, 0.000000, 0.000000 + 0.845907, 0.533330, 0.000000, 0.000000 + 0.845628, 0.533773, 0.000000, 0.000000 + 0.845348, 0.534216, 0.000000, 0.000000 + 0.845068, 0.534659, 0.000000, 0.000000 + 0.844788, 0.535101, 0.000000, 0.000000 + 0.844507, 0.535544, 0.000000, 0.000000 + 0.844227, 0.535986, 0.000000, 0.000000 + 0.843946, 0.536428, 0.000000, 0.000000 + 0.843665, 0.536870, 0.000000, 0.000000 + 0.843384, 0.537312, 0.000000, 0.000000 + 0.843102, 0.537754, 0.000000, 0.000000 + 0.842820, 0.538195, 0.000000, 0.000000 + 0.842538, 0.538636, 0.000000, 0.000000 + 0.842256, 0.539078, 0.000000, 0.000000 + 0.841974, 0.539519, 0.000000, 0.000000 + 0.841691, 0.539960, 0.000000, 0.000000 + 0.841408, 0.540400, 0.000000, 0.000000 + 0.841125, 0.540841, 0.000000, 0.000000 + 0.840841, 0.541282, 0.000000, 0.000000 + 0.840558, 0.541722, 0.000000, 0.000000 + 0.840274, 0.542162, 0.000000, 0.000000 + 0.839990, 0.542602, 0.000000, 0.000000 + 0.839706, 0.543042, 0.000000, 0.000000 + 0.839421, 0.543482, 0.000000, 0.000000 + 0.839136, 0.543921, 0.000000, 0.000000 + 0.838851, 0.544361, 0.000000, 0.000000 + 0.838566, 0.544800, 0.000000, 0.000000 + 0.838280, 0.545239, 0.000000, 0.000000 + 0.837995, 0.545678, 0.000000, 0.000000 + 0.837709, 0.546117, 0.000000, 0.000000 + 0.837423, 0.546556, 0.000000, 0.000000 + 0.837136, 0.546994, 0.000000, 0.000000 + 0.836850, 0.547433, 0.000000, 0.000000 + 0.836563, 0.547871, 0.000000, 0.000000 + 0.836276, 0.548309, 0.000000, 0.000000 + 0.835988, 0.548747, 0.000000, 0.000000 + 0.835701, 0.549185, 0.000000, 0.000000 + 0.835413, 0.549622, 0.000000, 0.000000 + 0.835125, 0.550060, 0.000000, 0.000000 + 0.834837, 0.550497, 0.000000, 0.000000 + 0.834549, 0.550934, 0.000000, 0.000000 + 0.834260, 0.551371, 0.000000, 0.000000 + 0.833971, 0.551808, 0.000000, 0.000000 + 0.833682, 0.552245, 0.000000, 0.000000 + 0.833392, 0.552682, 0.000000, 0.000000 + 0.833103, 0.553118, 0.000000, 0.000000 + 0.832813, 0.553554, 0.000000, 0.000000 + 0.832523, 0.553991, 0.000000, 0.000000 + 0.832233, 0.554427, 0.000000, 0.000000 + 0.831942, 0.554862, 0.000000, 0.000000 + 0.831651, 0.555298, 0.000000, 0.000000 + 0.831360, 0.555734, 0.000000, 0.000000 + 0.831069, 0.556169, 0.000000, 0.000000 + 0.830778, 0.556604, 0.000000, 0.000000 + 0.830486, 0.557039, 0.000000, 0.000000 + 0.830194, 0.557474, 0.000000, 0.000000 + 0.829902, 0.557909, 0.000000, 0.000000 + 0.829610, 0.558343, 0.000000, 0.000000 + 0.829317, 0.558778, 0.000000, 0.000000 + 0.829025, 0.559212, 0.000000, 0.000000 + 0.828732, 0.559646, 0.000000, 0.000000 + 0.828438, 0.560080, 0.000000, 0.000000 + 0.828145, 0.560514, 0.000000, 0.000000 + 0.827851, 0.560948, 0.000000, 0.000000 + 0.827557, 0.561381, 0.000000, 0.000000 + 0.827263, 0.561815, 0.000000, 0.000000 + 0.826969, 0.562248, 0.000000, 0.000000 + 0.826674, 0.562681, 0.000000, 0.000000 + 0.826379, 0.563114, 0.000000, 0.000000 + 0.826084, 0.563547, 0.000000, 0.000000 + 0.825789, 0.563979, 0.000000, 0.000000 + 0.825493, 0.564412, 0.000000, 0.000000 + 0.825198, 0.564844, 0.000000, 0.000000 + 0.824902, 0.565276, 0.000000, 0.000000 + 0.824606, 0.565708, 0.000000, 0.000000 + 0.824309, 0.566140, 0.000000, 0.000000 + 0.824012, 0.566572, 0.000000, 0.000000 + 0.823716, 0.567003, 0.000000, 0.000000 + 0.823418, 0.567435, 0.000000, 0.000000 + 0.823121, 0.567866, 0.000000, 0.000000 + 0.822824, 0.568297, 0.000000, 0.000000 + 0.822526, 0.568728, 0.000000, 0.000000 + 0.822228, 0.569158, 0.000000, 0.000000 + 0.821930, 0.569589, 0.000000, 0.000000 + 0.821631, 0.570019, 0.000000, 0.000000 + 0.821333, 0.570450, 0.000000, 0.000000 + 0.821034, 0.570880, 0.000000, 0.000000 + 0.820734, 0.571310, 0.000000, 0.000000 + 0.820435, 0.571740, 0.000000, 0.000000 + 0.820136, 0.572169, 0.000000, 0.000000 + 0.819836, 0.572599, 0.000000, 0.000000 + 0.819536, 0.573028, 0.000000, 0.000000 + 0.819235, 0.573457, 0.000000, 0.000000 + 0.818935, 0.573886, 0.000000, 0.000000 + 0.818634, 0.574315, 0.000000, 0.000000 + 0.818333, 0.574744, 0.000000, 0.000000 + 0.818032, 0.575172, 0.000000, 0.000000 + 0.817731, 0.575601, 0.000000, 0.000000 + 0.817429, 0.576029, 0.000000, 0.000000 + 0.817127, 0.576457, 0.000000, 0.000000 + 0.816825, 0.576885, 0.000000, 0.000000 + 0.816523, 0.577313, 0.000000, 0.000000 + 0.816221, 0.577740, 0.000000, 0.000000 + 0.815918, 0.578168, 0.000000, 0.000000 + 0.815615, 0.578595, 0.000000, 0.000000 + 0.815312, 0.579022, 0.000000, 0.000000 + 0.815008, 0.579449, 0.000000, 0.000000 + 0.814705, 0.579876, 0.000000, 0.000000 + 0.814401, 0.580303, 0.000000, 0.000000 + 0.814097, 0.580729, 0.000000, 0.000000 + 0.813793, 0.581155, 0.000000, 0.000000 + 0.813488, 0.581581, 0.000000, 0.000000 + 0.813183, 0.582008, 0.000000, 0.000000 + 0.812878, 0.582433, 0.000000, 0.000000 + 0.812573, 0.582859, 0.000000, 0.000000 + 0.812268, 0.583285, 0.000000, 0.000000 + 0.811962, 0.583710, 0.000000, 0.000000 + 0.811656, 0.584135, 0.000000, 0.000000 + 0.811350, 0.584560, 0.000000, 0.000000 + 0.811044, 0.584985, 0.000000, 0.000000 + 0.810738, 0.585410, 0.000000, 0.000000 + 0.810431, 0.585834, 0.000000, 0.000000 + 0.810124, 0.586259, 0.000000, 0.000000 + 0.809817, 0.586683, 0.000000, 0.000000 + 0.809509, 0.587107, 0.000000, 0.000000 + 0.809202, 0.587531, 0.000000, 0.000000 + 0.808894, 0.587955, 0.000000, 0.000000 + 0.808586, 0.588378, 0.000000, 0.000000 + 0.808277, 0.588802, 0.000000, 0.000000 + 0.807969, 0.589225, 0.000000, 0.000000 + 0.807660, 0.589648, 0.000000, 0.000000 + 0.807351, 0.590071, 0.000000, 0.000000 + 0.807042, 0.590494, 0.000000, 0.000000 + 0.806733, 0.590917, 0.000000, 0.000000 + 0.806423, 0.591339, 0.000000, 0.000000 + 0.806113, 0.591761, 0.000000, 0.000000 + 0.805803, 0.592183, 0.000000, 0.000000 + 0.805493, 0.592605, 0.000000, 0.000000 + 0.805182, 0.593027, 0.000000, 0.000000 + 0.804872, 0.593449, 0.000000, 0.000000 + 0.804561, 0.593870, 0.000000, 0.000000 + 0.804250, 0.594292, 0.000000, 0.000000 + 0.803938, 0.594713, 0.000000, 0.000000 + 0.803627, 0.595134, 0.000000, 0.000000 + 0.803315, 0.595555, 0.000000, 0.000000 + 0.803003, 0.595975, 0.000000, 0.000000 + 0.802690, 0.596396, 0.000000, 0.000000 + 0.802378, 0.596816, 0.000000, 0.000000 + 0.802065, 0.597236, 0.000000, 0.000000 + 0.801752, 0.597656, 0.000000, 0.000000 + 0.801439, 0.598076, 0.000000, 0.000000 + 0.801126, 0.598496, 0.000000, 0.000000 + 0.800812, 0.598915, 0.000000, 0.000000 + 0.800498, 0.599335, 0.000000, 0.000000 + 0.800184, 0.599754, 0.000000, 0.000000 + 0.799870, 0.600173, 0.000000, 0.000000 + 0.799556, 0.600592, 0.000000, 0.000000 + 0.799241, 0.601011, 0.000000, 0.000000 + 0.798926, 0.601429, 0.000000, 0.000000 + 0.798611, 0.601848, 0.000000, 0.000000 + 0.798296, 0.602266, 0.000000, 0.000000 + 0.797980, 0.602684, 0.000000, 0.000000 + 0.797664, 0.603102, 0.000000, 0.000000 + 0.797348, 0.603519, 0.000000, 0.000000 + 0.797032, 0.603937, 0.000000, 0.000000 + 0.796716, 0.604354, 0.000000, 0.000000 + 0.796399, 0.604772, 0.000000, 0.000000 + 0.796082, 0.605189, 0.000000, 0.000000 + 0.795765, 0.605605, 0.000000, 0.000000 + 0.795448, 0.606022, 0.000000, 0.000000 + 0.795130, 0.606439, 0.000000, 0.000000 + 0.794812, 0.606855, 0.000000, 0.000000 + 0.794494, 0.607271, 0.000000, 0.000000 + 0.794176, 0.607687, 0.000000, 0.000000 + 0.793858, 0.608103, 0.000000, 0.000000 + 0.793539, 0.608519, 0.000000, 0.000000 + 0.793220, 0.608935, 0.000000, 0.000000 + 0.792901, 0.609350, 0.000000, 0.000000 + 0.792582, 0.609765, 0.000000, 0.000000 + 0.792263, 0.610180, 0.000000, 0.000000 + 0.791943, 0.610595, 0.000000, 0.000000 + 0.791623, 0.611010, 0.000000, 0.000000 + 0.791303, 0.611424, 0.000000, 0.000000 + 0.790983, 0.611839, 0.000000, 0.000000 + 0.790662, 0.612253, 0.000000, 0.000000 + 0.790341, 0.612667, 0.000000, 0.000000 + 0.790020, 0.613081, 0.000000, 0.000000 + 0.789699, 0.613495, 0.000000, 0.000000 + 0.789377, 0.613908, 0.000000, 0.000000 + 0.789056, 0.614321, 0.000000, 0.000000 + 0.788734, 0.614735, 0.000000, 0.000000 + 0.788412, 0.615148, 0.000000, 0.000000 + 0.788090, 0.615561, 0.000000, 0.000000 + 0.787767, 0.615973, 0.000000, 0.000000 + 0.787444, 0.616386, 0.000000, 0.000000 + 0.787121, 0.616798, 0.000000, 0.000000 + 0.786798, 0.617210, 0.000000, 0.000000 + 0.786475, 0.617622, 0.000000, 0.000000 + 0.786151, 0.618034, 0.000000, 0.000000 + 0.785827, 0.618446, 0.000000, 0.000000 + 0.785503, 0.618857, 0.000000, 0.000000 + 0.785179, 0.619269, 0.000000, 0.000000 + 0.784855, 0.619680, 0.000000, 0.000000 + 0.784530, 0.620091, 0.000000, 0.000000 + 0.784205, 0.620502, 0.000000, 0.000000 + 0.783880, 0.620912, 0.000000, 0.000000 + 0.783555, 0.621323, 0.000000, 0.000000 + 0.783229, 0.621733, 0.000000, 0.000000 + 0.782903, 0.622143, 0.000000, 0.000000 + 0.782577, 0.622553, 0.000000, 0.000000 + 0.782251, 0.622963, 0.000000, 0.000000 + 0.781925, 0.623373, 0.000000, 0.000000 + 0.781598, 0.623782, 0.000000, 0.000000 + 0.781271, 0.624192, 0.000000, 0.000000 + 0.780944, 0.624601, 0.000000, 0.000000 + 0.780617, 0.625010, 0.000000, 0.000000 + 0.780290, 0.625418, 0.000000, 0.000000 + 0.779962, 0.625827, 0.000000, 0.000000 + 0.779634, 0.626235, 0.000000, 0.000000 + 0.779306, 0.626644, 0.000000, 0.000000 + 0.778978, 0.627052, 0.000000, 0.000000 + 0.778649, 0.627460, 0.000000, 0.000000 + 0.778320, 0.627867, 0.000000, 0.000000 + 0.777991, 0.628275, 0.000000, 0.000000 + 0.777662, 0.628682, 0.000000, 0.000000 + 0.777333, 0.629090, 0.000000, 0.000000 + 0.777003, 0.629497, 0.000000, 0.000000 + 0.776673, 0.629904, 0.000000, 0.000000 + 0.776343, 0.630310, 0.000000, 0.000000 + 0.776013, 0.630717, 0.000000, 0.000000 + 0.775683, 0.631123, 0.000000, 0.000000 + 0.775352, 0.631529, 0.000000, 0.000000 + 0.775021, 0.631935, 0.000000, 0.000000 + 0.774690, 0.632341, 0.000000, 0.000000 + 0.774359, 0.632747, 0.000000, 0.000000 + 0.774027, 0.633153, 0.000000, 0.000000 + 0.773695, 0.633558, 0.000000, 0.000000 + 0.773363, 0.633963, 0.000000, 0.000000 + 0.773031, 0.634368, 0.000000, 0.000000 + 0.772699, 0.634773, 0.000000, 0.000000 + 0.772366, 0.635177, 0.000000, 0.000000 + 0.772033, 0.635582, 0.000000, 0.000000 + 0.771700, 0.635986, 0.000000, 0.000000 + 0.771367, 0.636390, 0.000000, 0.000000 + 0.771034, 0.636794, 0.000000, 0.000000 + 0.770700, 0.637198, 0.000000, 0.000000 + 0.770366, 0.637602, 0.000000, 0.000000 + 0.770032, 0.638005, 0.000000, 0.000000 + 0.769698, 0.638408, 0.000000, 0.000000 + 0.769363, 0.638811, 0.000000, 0.000000 + 0.769029, 0.639214, 0.000000, 0.000000 + 0.768694, 0.639617, 0.000000, 0.000000 + 0.768359, 0.640019, 0.000000, 0.000000 + 0.768023, 0.640422, 0.000000, 0.000000 + 0.767688, 0.640824, 0.000000, 0.000000 + 0.767352, 0.641226, 0.000000, 0.000000 + 0.767016, 0.641628, 0.000000, 0.000000 + 0.766680, 0.642029, 0.000000, 0.000000 + 0.766344, 0.642431, 0.000000, 0.000000 + 0.766007, 0.642832, 0.000000, 0.000000 + 0.765670, 0.643233, 0.000000, 0.000000 + 0.765333, 0.643634, 0.000000, 0.000000 + 0.764996, 0.644035, 0.000000, 0.000000 + 0.764659, 0.644436, 0.000000, 0.000000 + 0.764321, 0.644836, 0.000000, 0.000000 + 0.763983, 0.645236, 0.000000, 0.000000 + 0.763645, 0.645636, 0.000000, 0.000000 + 0.763307, 0.646036, 0.000000, 0.000000 + 0.762968, 0.646436, 0.000000, 0.000000 + 0.762630, 0.646835, 0.000000, 0.000000 + 0.762291, 0.647235, 0.000000, 0.000000 + 0.761952, 0.647634, 0.000000, 0.000000 + 0.761612, 0.648033, 0.000000, 0.000000 + 0.761273, 0.648432, 0.000000, 0.000000 + 0.760933, 0.648830, 0.000000, 0.000000 + 0.760593, 0.649229, 0.000000, 0.000000 + 0.760253, 0.649627, 0.000000, 0.000000 + 0.759913, 0.650025, 0.000000, 0.000000 + 0.759572, 0.650423, 0.000000, 0.000000 + 0.759231, 0.650821, 0.000000, 0.000000 + 0.758890, 0.651219, 0.000000, 0.000000 + 0.758549, 0.651616, 0.000000, 0.000000 + 0.758208, 0.652013, 0.000000, 0.000000 + 0.757866, 0.652410, 0.000000, 0.000000 + 0.757524, 0.652807, 0.000000, 0.000000 + 0.757182, 0.653204, 0.000000, 0.000000 + 0.756840, 0.653600, 0.000000, 0.000000 + 0.756497, 0.653997, 0.000000, 0.000000 + 0.756155, 0.654393, 0.000000, 0.000000 + 0.755812, 0.654789, 0.000000, 0.000000 + 0.755469, 0.655185, 0.000000, 0.000000 + 0.755126, 0.655580, 0.000000, 0.000000 + 0.754782, 0.655976, 0.000000, 0.000000 + 0.754438, 0.656371, 0.000000, 0.000000 + 0.754095, 0.656766, 0.000000, 0.000000 + 0.753750, 0.657161, 0.000000, 0.000000 + 0.753406, 0.657555, 0.000000, 0.000000 + 0.753062, 0.657950, 0.000000, 0.000000 + 0.752717, 0.658344, 0.000000, 0.000000 + 0.752372, 0.658739, 0.000000, 0.000000 + 0.752027, 0.659132, 0.000000, 0.000000 + 0.751682, 0.659526, 0.000000, 0.000000 + 0.751336, 0.659920, 0.000000, 0.000000 + 0.750990, 0.660313, 0.000000, 0.000000 + 0.750644, 0.660707, 0.000000, 0.000000 + 0.750298, 0.661100, 0.000000, 0.000000 + 0.749952, 0.661493, 0.000000, 0.000000 + 0.749605, 0.661885, 0.000000, 0.000000 + 0.749258, 0.662278, 0.000000, 0.000000 + 0.748911, 0.662670, 0.000000, 0.000000 + 0.748564, 0.663062, 0.000000, 0.000000 + 0.748217, 0.663454, 0.000000, 0.000000 + 0.747869, 0.663846, 0.000000, 0.000000 + 0.747521, 0.664238, 0.000000, 0.000000 + 0.747173, 0.664629, 0.000000, 0.000000 + 0.746825, 0.665020, 0.000000, 0.000000 + 0.746477, 0.665412, 0.000000, 0.000000 + 0.746128, 0.665802, 0.000000, 0.000000 + 0.745779, 0.666193, 0.000000, 0.000000 + 0.745430, 0.666584, 0.000000, 0.000000 + 0.745081, 0.666974, 0.000000, 0.000000 + 0.744732, 0.667364, 0.000000, 0.000000 + 0.744382, 0.667754, 0.000000, 0.000000 + 0.744032, 0.668144, 0.000000, 0.000000 + 0.743682, 0.668534, 0.000000, 0.000000 + 0.743332, 0.668923, 0.000000, 0.000000 + 0.742981, 0.669312, 0.000000, 0.000000 + 0.742631, 0.669701, 0.000000, 0.000000 + 0.742280, 0.670090, 0.000000, 0.000000 + 0.741929, 0.670479, 0.000000, 0.000000 + 0.741577, 0.670867, 0.000000, 0.000000 + 0.741226, 0.671256, 0.000000, 0.000000 + 0.740874, 0.671644, 0.000000, 0.000000 + 0.740522, 0.672032, 0.000000, 0.000000 + 0.740170, 0.672420, 0.000000, 0.000000 + 0.739818, 0.672807, 0.000000, 0.000000 + 0.739465, 0.673195, 0.000000, 0.000000 + 0.739113, 0.673582, 0.000000, 0.000000 + 0.738760, 0.673969, 0.000000, 0.000000 + 0.738407, 0.674356, 0.000000, 0.000000 + 0.738053, 0.674742, 0.000000, 0.000000 + 0.737700, 0.675129, 0.000000, 0.000000 + 0.737346, 0.675515, 0.000000, 0.000000 + 0.736992, 0.675901, 0.000000, 0.000000 + 0.736638, 0.676287, 0.000000, 0.000000 + 0.736284, 0.676673, 0.000000, 0.000000 + 0.735929, 0.677058, 0.000000, 0.000000 + 0.735575, 0.677444, 0.000000, 0.000000 + 0.735220, 0.677829, 0.000000, 0.000000 + 0.734864, 0.678214, 0.000000, 0.000000 + 0.734509, 0.678599, 0.000000, 0.000000 + 0.734154, 0.678983, 0.000000, 0.000000 + 0.733798, 0.679368, 0.000000, 0.000000 + 0.733442, 0.679752, 0.000000, 0.000000 + 0.733086, 0.680136, 0.000000, 0.000000 + 0.732729, 0.680520, 0.000000, 0.000000 + 0.732373, 0.680904, 0.000000, 0.000000 + 0.732016, 0.681287, 0.000000, 0.000000 + 0.731659, 0.681671, 0.000000, 0.000000 + 0.731302, 0.682054, 0.000000, 0.000000 + 0.730945, 0.682437, 0.000000, 0.000000 + 0.730587, 0.682819, 0.000000, 0.000000 + 0.730229, 0.683202, 0.000000, 0.000000 + 0.729872, 0.683584, 0.000000, 0.000000 + 0.729513, 0.683967, 0.000000, 0.000000 + 0.729155, 0.684349, 0.000000, 0.000000 + 0.728797, 0.684730, 0.000000, 0.000000 + 0.728438, 0.685112, 0.000000, 0.000000 + 0.728079, 0.685493, 0.000000, 0.000000 + 0.727720, 0.685875, 0.000000, 0.000000 + 0.727360, 0.686256, 0.000000, 0.000000 + 0.727001, 0.686637, 0.000000, 0.000000 + 0.726641, 0.687017, 0.000000, 0.000000 + 0.726281, 0.687398, 0.000000, 0.000000 + 0.725921, 0.687778, 0.000000, 0.000000 + 0.725561, 0.688158, 0.000000, 0.000000 + 0.725200, 0.688538, 0.000000, 0.000000 + 0.724839, 0.688918, 0.000000, 0.000000 + 0.724478, 0.689297, 0.000000, 0.000000 + 0.724117, 0.689677, 0.000000, 0.000000 + 0.723756, 0.690056, 0.000000, 0.000000 + 0.723394, 0.690435, 0.000000, 0.000000 + 0.723033, 0.690814, 0.000000, 0.000000 + 0.722671, 0.691192, 0.000000, 0.000000 + 0.722309, 0.691571, 0.000000, 0.000000 + 0.721946, 0.691949, 0.000000, 0.000000 + 0.721584, 0.692327, 0.000000, 0.000000 + 0.721221, 0.692705, 0.000000, 0.000000 + 0.720858, 0.693083, 0.000000, 0.000000 + 0.720495, 0.693460, 0.000000, 0.000000 + 0.720132, 0.693837, 0.000000, 0.000000 + 0.719768, 0.694214, 0.000000, 0.000000 + 0.719404, 0.694591, 0.000000, 0.000000 + 0.719041, 0.694968, 0.000000, 0.000000 + 0.718676, 0.695345, 0.000000, 0.000000 + 0.718312, 0.695721, 0.000000, 0.000000 + 0.717948, 0.696097, 0.000000, 0.000000 + 0.717583, 0.696473, 0.000000, 0.000000 + 0.717218, 0.696849, 0.000000, 0.000000 + 0.716853, 0.697224, 0.000000, 0.000000 + 0.716488, 0.697600, 0.000000, 0.000000 + 0.716122, 0.697975, 0.000000, 0.000000 + 0.715757, 0.698350, 0.000000, 0.000000 + 0.715391, 0.698725, 0.000000, 0.000000 + 0.715025, 0.699099, 0.000000, 0.000000 + 0.714658, 0.699474, 0.000000, 0.000000 + 0.714292, 0.699848, 0.000000, 0.000000 + 0.713925, 0.700222, 0.000000, 0.000000 + 0.713558, 0.700596, 0.000000, 0.000000 + 0.713191, 0.700969, 0.000000, 0.000000 + 0.712824, 0.701343, 0.000000, 0.000000 + 0.712457, 0.701716, 0.000000, 0.000000 + 0.712089, 0.702089, 0.000000, 0.000000 + 0.711721, 0.702462, 0.000000, 0.000000 + 0.711353, 0.702835, 0.000000, 0.000000 + 0.710985, 0.703207, 0.000000, 0.000000 + 0.710616, 0.703580, 0.000000, 0.000000 + 0.710248, 0.703952, 0.000000, 0.000000 + 0.709879, 0.704324, 0.000000, 0.000000 + 0.709510, 0.704695, 0.000000, 0.000000 + 0.709141, 0.705067, 0.000000, 0.000000 + 0.708771, 0.705438, 0.000000, 0.000000 + 0.708402, 0.705809, 0.000000, 0.000000 + 0.708032, 0.706180, 0.000000, 0.000000 + 0.707662, 0.706551, 0.000000, 0.000000 + 0.707292, 0.706922, 0.000000, 0.000000 + 0.706922, 0.707292, 0.000000, 0.000000 + 0.706551, 0.707662, 0.000000, 0.000000 + 0.706180, 0.708032, 0.000000, 0.000000 + 0.705809, 0.708402, 0.000000, 0.000000 + 0.705438, 0.708771, 0.000000, 0.000000 + 0.705067, 0.709141, 0.000000, 0.000000 + 0.704695, 0.709510, 0.000000, 0.000000 + 0.704324, 0.709879, 0.000000, 0.000000 + 0.703952, 0.710248, 0.000000, 0.000000 + 0.703580, 0.710616, 0.000000, 0.000000 + 0.703207, 0.710985, 0.000000, 0.000000 + 0.702835, 0.711353, 0.000000, 0.000000 + 0.702462, 0.711721, 0.000000, 0.000000 + 0.702089, 0.712089, 0.000000, 0.000000 + 0.701716, 0.712457, 0.000000, 0.000000 + 0.701343, 0.712824, 0.000000, 0.000000 + 0.700969, 0.713191, 0.000000, 0.000000 + 0.700596, 0.713558, 0.000000, 0.000000 + 0.700222, 0.713925, 0.000000, 0.000000 + 0.699848, 0.714292, 0.000000, 0.000000 + 0.699474, 0.714658, 0.000000, 0.000000 + 0.699099, 0.715025, 0.000000, 0.000000 + 0.698725, 0.715391, 0.000000, 0.000000 + 0.698350, 0.715757, 0.000000, 0.000000 + 0.697975, 0.716122, 0.000000, 0.000000 + 0.697600, 0.716488, 0.000000, 0.000000 + 0.697224, 0.716853, 0.000000, 0.000000 + 0.696849, 0.717218, 0.000000, 0.000000 + 0.696473, 0.717583, 0.000000, 0.000000 + 0.696097, 0.717948, 0.000000, 0.000000 + 0.695721, 0.718312, 0.000000, 0.000000 + 0.695345, 0.718676, 0.000000, 0.000000 + 0.694968, 0.719041, 0.000000, 0.000000 + 0.694591, 0.719404, 0.000000, 0.000000 + 0.694214, 0.719768, 0.000000, 0.000000 + 0.693837, 0.720132, 0.000000, 0.000000 + 0.693460, 0.720495, 0.000000, 0.000000 + 0.693083, 0.720858, 0.000000, 0.000000 + 0.692705, 0.721221, 0.000000, 0.000000 + 0.692327, 0.721584, 0.000000, 0.000000 + 0.691949, 0.721946, 0.000000, 0.000000 + 0.691571, 0.722309, 0.000000, 0.000000 + 0.691192, 0.722671, 0.000000, 0.000000 + 0.690814, 0.723033, 0.000000, 0.000000 + 0.690435, 0.723394, 0.000000, 0.000000 + 0.690056, 0.723756, 0.000000, 0.000000 + 0.689677, 0.724117, 0.000000, 0.000000 + 0.689297, 0.724478, 0.000000, 0.000000 + 0.688918, 0.724839, 0.000000, 0.000000 + 0.688538, 0.725200, 0.000000, 0.000000 + 0.688158, 0.725561, 0.000000, 0.000000 + 0.687778, 0.725921, 0.000000, 0.000000 + 0.687398, 0.726281, 0.000000, 0.000000 + 0.687017, 0.726641, 0.000000, 0.000000 + 0.686637, 0.727001, 0.000000, 0.000000 + 0.686256, 0.727360, 0.000000, 0.000000 + 0.685875, 0.727720, 0.000000, 0.000000 + 0.685493, 0.728079, 0.000000, 0.000000 + 0.685112, 0.728438, 0.000000, 0.000000 + 0.684730, 0.728797, 0.000000, 0.000000 + 0.684349, 0.729155, 0.000000, 0.000000 + 0.683967, 0.729513, 0.000000, 0.000000 + 0.683584, 0.729872, 0.000000, 0.000000 + 0.683202, 0.730229, 0.000000, 0.000000 + 0.682819, 0.730587, 0.000000, 0.000000 + 0.682437, 0.730945, 0.000000, 0.000000 + 0.682054, 0.731302, 0.000000, 0.000000 + 0.681671, 0.731659, 0.000000, 0.000000 + 0.681287, 0.732016, 0.000000, 0.000000 + 0.680904, 0.732373, 0.000000, 0.000000 + 0.680520, 0.732729, 0.000000, 0.000000 + 0.680136, 0.733086, 0.000000, 0.000000 + 0.679752, 0.733442, 0.000000, 0.000000 + 0.679368, 0.733798, 0.000000, 0.000000 + 0.678983, 0.734154, 0.000000, 0.000000 + 0.678599, 0.734509, 0.000000, 0.000000 + 0.678214, 0.734864, 0.000000, 0.000000 + 0.677829, 0.735220, 0.000000, 0.000000 + 0.677444, 0.735575, 0.000000, 0.000000 + 0.677058, 0.735929, 0.000000, 0.000000 + 0.676673, 0.736284, 0.000000, 0.000000 + 0.676287, 0.736638, 0.000000, 0.000000 + 0.675901, 0.736992, 0.000000, 0.000000 + 0.675515, 0.737346, 0.000000, 0.000000 + 0.675129, 0.737700, 0.000000, 0.000000 + 0.674742, 0.738053, 0.000000, 0.000000 + 0.674356, 0.738407, 0.000000, 0.000000 + 0.673969, 0.738760, 0.000000, 0.000000 + 0.673582, 0.739113, 0.000000, 0.000000 + 0.673195, 0.739465, 0.000000, 0.000000 + 0.672807, 0.739818, 0.000000, 0.000000 + 0.672420, 0.740170, 0.000000, 0.000000 + 0.672032, 0.740522, 0.000000, 0.000000 + 0.671644, 0.740874, 0.000000, 0.000000 + 0.671256, 0.741226, 0.000000, 0.000000 + 0.670867, 0.741577, 0.000000, 0.000000 + 0.670479, 0.741929, 0.000000, 0.000000 + 0.670090, 0.742280, 0.000000, 0.000000 + 0.669701, 0.742631, 0.000000, 0.000000 + 0.669312, 0.742981, 0.000000, 0.000000 + 0.668923, 0.743332, 0.000000, 0.000000 + 0.668534, 0.743682, 0.000000, 0.000000 + 0.668144, 0.744032, 0.000000, 0.000000 + 0.667754, 0.744382, 0.000000, 0.000000 + 0.667364, 0.744732, 0.000000, 0.000000 + 0.666974, 0.745081, 0.000000, 0.000000 + 0.666584, 0.745430, 0.000000, 0.000000 + 0.666193, 0.745779, 0.000000, 0.000000 + 0.665802, 0.746128, 0.000000, 0.000000 + 0.665412, 0.746477, 0.000000, 0.000000 + 0.665020, 0.746825, 0.000000, 0.000000 + 0.664629, 0.747173, 0.000000, 0.000000 + 0.664238, 0.747521, 0.000000, 0.000000 + 0.663846, 0.747869, 0.000000, 0.000000 + 0.663454, 0.748217, 0.000000, 0.000000 + 0.663062, 0.748564, 0.000000, 0.000000 + 0.662670, 0.748911, 0.000000, 0.000000 + 0.662278, 0.749258, 0.000000, 0.000000 + 0.661885, 0.749605, 0.000000, 0.000000 + 0.661493, 0.749952, 0.000000, 0.000000 + 0.661100, 0.750298, 0.000000, 0.000000 + 0.660707, 0.750644, 0.000000, 0.000000 + 0.660313, 0.750990, 0.000000, 0.000000 + 0.659920, 0.751336, 0.000000, 0.000000 + 0.659526, 0.751682, 0.000000, 0.000000 + 0.659132, 0.752027, 0.000000, 0.000000 + 0.658739, 0.752372, 0.000000, 0.000000 + 0.658344, 0.752717, 0.000000, 0.000000 + 0.657950, 0.753062, 0.000000, 0.000000 + 0.657555, 0.753406, 0.000000, 0.000000 + 0.657161, 0.753750, 0.000000, 0.000000 + 0.656766, 0.754095, 0.000000, 0.000000 + 0.656371, 0.754438, 0.000000, 0.000000 + 0.655976, 0.754782, 0.000000, 0.000000 + 0.655580, 0.755126, 0.000000, 0.000000 + 0.655185, 0.755469, 0.000000, 0.000000 + 0.654789, 0.755812, 0.000000, 0.000000 + 0.654393, 0.756155, 0.000000, 0.000000 + 0.653997, 0.756497, 0.000000, 0.000000 + 0.653600, 0.756840, 0.000000, 0.000000 + 0.653204, 0.757182, 0.000000, 0.000000 + 0.652807, 0.757524, 0.000000, 0.000000 + 0.652410, 0.757866, 0.000000, 0.000000 + 0.652013, 0.758208, 0.000000, 0.000000 + 0.651616, 0.758549, 0.000000, 0.000000 + 0.651219, 0.758890, 0.000000, 0.000000 + 0.650821, 0.759231, 0.000000, 0.000000 + 0.650423, 0.759572, 0.000000, 0.000000 + 0.650025, 0.759913, 0.000000, 0.000000 + 0.649627, 0.760253, 0.000000, 0.000000 + 0.649229, 0.760593, 0.000000, 0.000000 + 0.648830, 0.760933, 0.000000, 0.000000 + 0.648432, 0.761273, 0.000000, 0.000000 + 0.648033, 0.761612, 0.000000, 0.000000 + 0.647634, 0.761952, 0.000000, 0.000000 + 0.647235, 0.762291, 0.000000, 0.000000 + 0.646835, 0.762630, 0.000000, 0.000000 + 0.646436, 0.762968, 0.000000, 0.000000 + 0.646036, 0.763307, 0.000000, 0.000000 + 0.645636, 0.763645, 0.000000, 0.000000 + 0.645236, 0.763983, 0.000000, 0.000000 + 0.644836, 0.764321, 0.000000, 0.000000 + 0.644436, 0.764659, 0.000000, 0.000000 + 0.644035, 0.764996, 0.000000, 0.000000 + 0.643634, 0.765333, 0.000000, 0.000000 + 0.643233, 0.765670, 0.000000, 0.000000 + 0.642832, 0.766007, 0.000000, 0.000000 + 0.642431, 0.766344, 0.000000, 0.000000 + 0.642029, 0.766680, 0.000000, 0.000000 + 0.641628, 0.767016, 0.000000, 0.000000 + 0.641226, 0.767352, 0.000000, 0.000000 + 0.640824, 0.767688, 0.000000, 0.000000 + 0.640422, 0.768023, 0.000000, 0.000000 + 0.640019, 0.768359, 0.000000, 0.000000 + 0.639617, 0.768694, 0.000000, 0.000000 + 0.639214, 0.769029, 0.000000, 0.000000 + 0.638811, 0.769363, 0.000000, 0.000000 + 0.638408, 0.769698, 0.000000, 0.000000 + 0.638005, 0.770032, 0.000000, 0.000000 + 0.637602, 0.770366, 0.000000, 0.000000 + 0.637198, 0.770700, 0.000000, 0.000000 + 0.636794, 0.771034, 0.000000, 0.000000 + 0.636390, 0.771367, 0.000000, 0.000000 + 0.635986, 0.771700, 0.000000, 0.000000 + 0.635582, 0.772033, 0.000000, 0.000000 + 0.635177, 0.772366, 0.000000, 0.000000 + 0.634773, 0.772699, 0.000000, 0.000000 + 0.634368, 0.773031, 0.000000, 0.000000 + 0.633963, 0.773363, 0.000000, 0.000000 + 0.633558, 0.773695, 0.000000, 0.000000 + 0.633153, 0.774027, 0.000000, 0.000000 + 0.632747, 0.774359, 0.000000, 0.000000 + 0.632341, 0.774690, 0.000000, 0.000000 + 0.631935, 0.775021, 0.000000, 0.000000 + 0.631529, 0.775352, 0.000000, 0.000000 + 0.631123, 0.775683, 0.000000, 0.000000 + 0.630717, 0.776013, 0.000000, 0.000000 + 0.630310, 0.776343, 0.000000, 0.000000 + 0.629904, 0.776673, 0.000000, 0.000000 + 0.629497, 0.777003, 0.000000, 0.000000 + 0.629090, 0.777333, 0.000000, 0.000000 + 0.628682, 0.777662, 0.000000, 0.000000 + 0.628275, 0.777991, 0.000000, 0.000000 + 0.627867, 0.778320, 0.000000, 0.000000 + 0.627460, 0.778649, 0.000000, 0.000000 + 0.627052, 0.778978, 0.000000, 0.000000 + 0.626644, 0.779306, 0.000000, 0.000000 + 0.626235, 0.779634, 0.000000, 0.000000 + 0.625827, 0.779962, 0.000000, 0.000000 + 0.625418, 0.780290, 0.000000, 0.000000 + 0.625010, 0.780617, 0.000000, 0.000000 + 0.624601, 0.780944, 0.000000, 0.000000 + 0.624192, 0.781271, 0.000000, 0.000000 + 0.623782, 0.781598, 0.000000, 0.000000 + 0.623373, 0.781925, 0.000000, 0.000000 + 0.622963, 0.782251, 0.000000, 0.000000 + 0.622553, 0.782577, 0.000000, 0.000000 + 0.622143, 0.782903, 0.000000, 0.000000 + 0.621733, 0.783229, 0.000000, 0.000000 + 0.621323, 0.783555, 0.000000, 0.000000 + 0.620912, 0.783880, 0.000000, 0.000000 + 0.620502, 0.784205, 0.000000, 0.000000 + 0.620091, 0.784530, 0.000000, 0.000000 + 0.619680, 0.784855, 0.000000, 0.000000 + 0.619269, 0.785179, 0.000000, 0.000000 + 0.618857, 0.785503, 0.000000, 0.000000 + 0.618446, 0.785827, 0.000000, 0.000000 + 0.618034, 0.786151, 0.000000, 0.000000 + 0.617622, 0.786475, 0.000000, 0.000000 + 0.617210, 0.786798, 0.000000, 0.000000 + 0.616798, 0.787121, 0.000000, 0.000000 + 0.616386, 0.787444, 0.000000, 0.000000 + 0.615973, 0.787767, 0.000000, 0.000000 + 0.615561, 0.788090, 0.000000, 0.000000 + 0.615148, 0.788412, 0.000000, 0.000000 + 0.614735, 0.788734, 0.000000, 0.000000 + 0.614321, 0.789056, 0.000000, 0.000000 + 0.613908, 0.789377, 0.000000, 0.000000 + 0.613495, 0.789699, 0.000000, 0.000000 + 0.613081, 0.790020, 0.000000, 0.000000 + 0.612667, 0.790341, 0.000000, 0.000000 + 0.612253, 0.790662, 0.000000, 0.000000 + 0.611839, 0.790983, 0.000000, 0.000000 + 0.611424, 0.791303, 0.000000, 0.000000 + 0.611010, 0.791623, 0.000000, 0.000000 + 0.610595, 0.791943, 0.000000, 0.000000 + 0.610180, 0.792263, 0.000000, 0.000000 + 0.609765, 0.792582, 0.000000, 0.000000 + 0.609350, 0.792901, 0.000000, 0.000000 + 0.608935, 0.793220, 0.000000, 0.000000 + 0.608519, 0.793539, 0.000000, 0.000000 + 0.608103, 0.793858, 0.000000, 0.000000 + 0.607687, 0.794176, 0.000000, 0.000000 + 0.607271, 0.794494, 0.000000, 0.000000 + 0.606855, 0.794812, 0.000000, 0.000000 + 0.606439, 0.795130, 0.000000, 0.000000 + 0.606022, 0.795448, 0.000000, 0.000000 + 0.605605, 0.795765, 0.000000, 0.000000 + 0.605189, 0.796082, 0.000000, 0.000000 + 0.604772, 0.796399, 0.000000, 0.000000 + 0.604354, 0.796716, 0.000000, 0.000000 + 0.603937, 0.797032, 0.000000, 0.000000 + 0.603519, 0.797348, 0.000000, 0.000000 + 0.603102, 0.797664, 0.000000, 0.000000 + 0.602684, 0.797980, 0.000000, 0.000000 + 0.602266, 0.798296, 0.000000, 0.000000 + 0.601848, 0.798611, 0.000000, 0.000000 + 0.601429, 0.798926, 0.000000, 0.000000 + 0.601011, 0.799241, 0.000000, 0.000000 + 0.600592, 0.799556, 0.000000, 0.000000 + 0.600173, 0.799870, 0.000000, 0.000000 + 0.599754, 0.800184, 0.000000, 0.000000 + 0.599335, 0.800498, 0.000000, 0.000000 + 0.598915, 0.800812, 0.000000, 0.000000 + 0.598496, 0.801126, 0.000000, 0.000000 + 0.598076, 0.801439, 0.000000, 0.000000 + 0.597656, 0.801752, 0.000000, 0.000000 + 0.597236, 0.802065, 0.000000, 0.000000 + 0.596816, 0.802378, 0.000000, 0.000000 + 0.596396, 0.802690, 0.000000, 0.000000 + 0.595975, 0.803003, 0.000000, 0.000000 + 0.595555, 0.803315, 0.000000, 0.000000 + 0.595134, 0.803627, 0.000000, 0.000000 + 0.594713, 0.803938, 0.000000, 0.000000 + 0.594292, 0.804250, 0.000000, 0.000000 + 0.593870, 0.804561, 0.000000, 0.000000 + 0.593449, 0.804872, 0.000000, 0.000000 + 0.593027, 0.805182, 0.000000, 0.000000 + 0.592605, 0.805493, 0.000000, 0.000000 + 0.592183, 0.805803, 0.000000, 0.000000 + 0.591761, 0.806113, 0.000000, 0.000000 + 0.591339, 0.806423, 0.000000, 0.000000 + 0.590917, 0.806733, 0.000000, 0.000000 + 0.590494, 0.807042, 0.000000, 0.000000 + 0.590071, 0.807351, 0.000000, 0.000000 + 0.589648, 0.807660, 0.000000, 0.000000 + 0.589225, 0.807969, 0.000000, 0.000000 + 0.588802, 0.808277, 0.000000, 0.000000 + 0.588378, 0.808586, 0.000000, 0.000000 + 0.587955, 0.808894, 0.000000, 0.000000 + 0.587531, 0.809202, 0.000000, 0.000000 + 0.587107, 0.809509, 0.000000, 0.000000 + 0.586683, 0.809817, 0.000000, 0.000000 + 0.586259, 0.810124, 0.000000, 0.000000 + 0.585834, 0.810431, 0.000000, 0.000000 + 0.585410, 0.810738, 0.000000, 0.000000 + 0.584985, 0.811044, 0.000000, 0.000000 + 0.584560, 0.811350, 0.000000, 0.000000 + 0.584135, 0.811656, 0.000000, 0.000000 + 0.583710, 0.811962, 0.000000, 0.000000 + 0.583285, 0.812268, 0.000000, 0.000000 + 0.582859, 0.812573, 0.000000, 0.000000 + 0.582433, 0.812878, 0.000000, 0.000000 + 0.582008, 0.813183, 0.000000, 0.000000 + 0.581581, 0.813488, 0.000000, 0.000000 + 0.581155, 0.813793, 0.000000, 0.000000 + 0.580729, 0.814097, 0.000000, 0.000000 + 0.580303, 0.814401, 0.000000, 0.000000 + 0.579876, 0.814705, 0.000000, 0.000000 + 0.579449, 0.815008, 0.000000, 0.000000 + 0.579022, 0.815312, 0.000000, 0.000000 + 0.578595, 0.815615, 0.000000, 0.000000 + 0.578168, 0.815918, 0.000000, 0.000000 + 0.577740, 0.816221, 0.000000, 0.000000 + 0.577313, 0.816523, 0.000000, 0.000000 + 0.576885, 0.816825, 0.000000, 0.000000 + 0.576457, 0.817127, 0.000000, 0.000000 + 0.576029, 0.817429, 0.000000, 0.000000 + 0.575601, 0.817731, 0.000000, 0.000000 + 0.575172, 0.818032, 0.000000, 0.000000 + 0.574744, 0.818333, 0.000000, 0.000000 + 0.574315, 0.818634, 0.000000, 0.000000 + 0.573886, 0.818935, 0.000000, 0.000000 + 0.573457, 0.819235, 0.000000, 0.000000 + 0.573028, 0.819536, 0.000000, 0.000000 + 0.572599, 0.819836, 0.000000, 0.000000 + 0.572169, 0.820136, 0.000000, 0.000000 + 0.571740, 0.820435, 0.000000, 0.000000 + 0.571310, 0.820734, 0.000000, 0.000000 + 0.570880, 0.821034, 0.000000, 0.000000 + 0.570450, 0.821333, 0.000000, 0.000000 + 0.570019, 0.821631, 0.000000, 0.000000 + 0.569589, 0.821930, 0.000000, 0.000000 + 0.569158, 0.822228, 0.000000, 0.000000 + 0.568728, 0.822526, 0.000000, 0.000000 + 0.568297, 0.822824, 0.000000, 0.000000 + 0.567866, 0.823121, 0.000000, 0.000000 + 0.567435, 0.823418, 0.000000, 0.000000 + 0.567003, 0.823716, 0.000000, 0.000000 + 0.566572, 0.824012, 0.000000, 0.000000 + 0.566140, 0.824309, 0.000000, 0.000000 + 0.565708, 0.824606, 0.000000, 0.000000 + 0.565276, 0.824902, 0.000000, 0.000000 + 0.564844, 0.825198, 0.000000, 0.000000 + 0.564412, 0.825493, 0.000000, 0.000000 + 0.563979, 0.825789, 0.000000, 0.000000 + 0.563547, 0.826084, 0.000000, 0.000000 + 0.563114, 0.826379, 0.000000, 0.000000 + 0.562681, 0.826674, 0.000000, 0.000000 + 0.562248, 0.826969, 0.000000, 0.000000 + 0.561815, 0.827263, 0.000000, 0.000000 + 0.561381, 0.827557, 0.000000, 0.000000 + 0.560948, 0.827851, 0.000000, 0.000000 + 0.560514, 0.828145, 0.000000, 0.000000 + 0.560080, 0.828438, 0.000000, 0.000000 + 0.559646, 0.828732, 0.000000, 0.000000 + 0.559212, 0.829025, 0.000000, 0.000000 + 0.558778, 0.829317, 0.000000, 0.000000 + 0.558343, 0.829610, 0.000000, 0.000000 + 0.557909, 0.829902, 0.000000, 0.000000 + 0.557474, 0.830194, 0.000000, 0.000000 + 0.557039, 0.830486, 0.000000, 0.000000 + 0.556604, 0.830778, 0.000000, 0.000000 + 0.556169, 0.831069, 0.000000, 0.000000 + 0.555734, 0.831360, 0.000000, 0.000000 + 0.555298, 0.831651, 0.000000, 0.000000 + 0.554862, 0.831942, 0.000000, 0.000000 + 0.554427, 0.832233, 0.000000, 0.000000 + 0.553991, 0.832523, 0.000000, 0.000000 + 0.553554, 0.832813, 0.000000, 0.000000 + 0.553118, 0.833103, 0.000000, 0.000000 + 0.552682, 0.833392, 0.000000, 0.000000 + 0.552245, 0.833682, 0.000000, 0.000000 + 0.551808, 0.833971, 0.000000, 0.000000 + 0.551371, 0.834260, 0.000000, 0.000000 + 0.550934, 0.834549, 0.000000, 0.000000 + 0.550497, 0.834837, 0.000000, 0.000000 + 0.550060, 0.835125, 0.000000, 0.000000 + 0.549622, 0.835413, 0.000000, 0.000000 + 0.549185, 0.835701, 0.000000, 0.000000 + 0.548747, 0.835988, 0.000000, 0.000000 + 0.548309, 0.836276, 0.000000, 0.000000 + 0.547871, 0.836563, 0.000000, 0.000000 + 0.547433, 0.836850, 0.000000, 0.000000 + 0.546994, 0.837136, 0.000000, 0.000000 + 0.546556, 0.837423, 0.000000, 0.000000 + 0.546117, 0.837709, 0.000000, 0.000000 + 0.545678, 0.837995, 0.000000, 0.000000 + 0.545239, 0.838280, 0.000000, 0.000000 + 0.544800, 0.838566, 0.000000, 0.000000 + 0.544361, 0.838851, 0.000000, 0.000000 + 0.543921, 0.839136, 0.000000, 0.000000 + 0.543482, 0.839421, 0.000000, 0.000000 + 0.543042, 0.839706, 0.000000, 0.000000 + 0.542602, 0.839990, 0.000000, 0.000000 + 0.542162, 0.840274, 0.000000, 0.000000 + 0.541722, 0.840558, 0.000000, 0.000000 + 0.541282, 0.840841, 0.000000, 0.000000 + 0.540841, 0.841125, 0.000000, 0.000000 + 0.540400, 0.841408, 0.000000, 0.000000 + 0.539960, 0.841691, 0.000000, 0.000000 + 0.539519, 0.841974, 0.000000, 0.000000 + 0.539078, 0.842256, 0.000000, 0.000000 + 0.538636, 0.842538, 0.000000, 0.000000 + 0.538195, 0.842820, 0.000000, 0.000000 + 0.537754, 0.843102, 0.000000, 0.000000 + 0.537312, 0.843384, 0.000000, 0.000000 + 0.536870, 0.843665, 0.000000, 0.000000 + 0.536428, 0.843946, 0.000000, 0.000000 + 0.535986, 0.844227, 0.000000, 0.000000 + 0.535544, 0.844507, 0.000000, 0.000000 + 0.535101, 0.844788, 0.000000, 0.000000 + 0.534659, 0.845068, 0.000000, 0.000000 + 0.534216, 0.845348, 0.000000, 0.000000 + 0.533773, 0.845628, 0.000000, 0.000000 + 0.533330, 0.845907, 0.000000, 0.000000 + 0.532887, 0.846186, 0.000000, 0.000000 + 0.532444, 0.846465, 0.000000, 0.000000 + 0.532000, 0.846744, 0.000000, 0.000000 + 0.531557, 0.847023, 0.000000, 0.000000 + 0.531113, 0.847301, 0.000000, 0.000000 + 0.530669, 0.847579, 0.000000, 0.000000 + 0.530225, 0.847857, 0.000000, 0.000000 + 0.529781, 0.848134, 0.000000, 0.000000 + 0.529337, 0.848412, 0.000000, 0.000000 + 0.528892, 0.848689, 0.000000, 0.000000 + 0.528448, 0.848966, 0.000000, 0.000000 + 0.528003, 0.849243, 0.000000, 0.000000 + 0.527558, 0.849519, 0.000000, 0.000000 + 0.527113, 0.849795, 0.000000, 0.000000 + 0.526668, 0.850071, 0.000000, 0.000000 + 0.526223, 0.850347, 0.000000, 0.000000 + 0.525777, 0.850622, 0.000000, 0.000000 + 0.525332, 0.850898, 0.000000, 0.000000 + 0.524886, 0.851173, 0.000000, 0.000000 + 0.524440, 0.851447, 0.000000, 0.000000 + 0.523994, 0.851722, 0.000000, 0.000000 + 0.523548, 0.851996, 0.000000, 0.000000 + 0.523101, 0.852270, 0.000000, 0.000000 + 0.522655, 0.852544, 0.000000, 0.000000 + 0.522208, 0.852818, 0.000000, 0.000000 + 0.521761, 0.853091, 0.000000, 0.000000 + 0.521315, 0.853365, 0.000000, 0.000000 + 0.520868, 0.853638, 0.000000, 0.000000 + 0.520420, 0.853910, 0.000000, 0.000000 + 0.519973, 0.854183, 0.000000, 0.000000 + 0.519526, 0.854455, 0.000000, 0.000000 + 0.519078, 0.854727, 0.000000, 0.000000 + 0.518630, 0.854999, 0.000000, 0.000000 + 0.518182, 0.855270, 0.000000, 0.000000 + 0.517734, 0.855541, 0.000000, 0.000000 + 0.517286, 0.855813, 0.000000, 0.000000 + 0.516838, 0.856083, 0.000000, 0.000000 + 0.516389, 0.856354, 0.000000, 0.000000 + 0.515941, 0.856624, 0.000000, 0.000000 + 0.515492, 0.856894, 0.000000, 0.000000 + 0.515043, 0.857164, 0.000000, 0.000000 + 0.514594, 0.857434, 0.000000, 0.000000 + 0.514145, 0.857703, 0.000000, 0.000000 + 0.513696, 0.857973, 0.000000, 0.000000 + 0.513246, 0.858241, 0.000000, 0.000000 + 0.512797, 0.858510, 0.000000, 0.000000 + 0.512347, 0.858779, 0.000000, 0.000000 + 0.511897, 0.859047, 0.000000, 0.000000 + 0.511447, 0.859315, 0.000000, 0.000000 + 0.510997, 0.859583, 0.000000, 0.000000 + 0.510546, 0.859850, 0.000000, 0.000000 + 0.510096, 0.860117, 0.000000, 0.000000 + 0.509645, 0.860385, 0.000000, 0.000000 + 0.509195, 0.860651, 0.000000, 0.000000 + 0.508744, 0.860918, 0.000000, 0.000000 + 0.508293, 0.861184, 0.000000, 0.000000 + 0.507842, 0.861450, 0.000000, 0.000000 + 0.507390, 0.861716, 0.000000, 0.000000 + 0.506939, 0.861982, 0.000000, 0.000000 + 0.506487, 0.862247, 0.000000, 0.000000 + 0.506036, 0.862512, 0.000000, 0.000000 + 0.505584, 0.862777, 0.000000, 0.000000 + 0.505132, 0.863042, 0.000000, 0.000000 + 0.504680, 0.863307, 0.000000, 0.000000 + 0.504228, 0.863571, 0.000000, 0.000000 + 0.503775, 0.863835, 0.000000, 0.000000 + 0.503323, 0.864099, 0.000000, 0.000000 + 0.502870, 0.864362, 0.000000, 0.000000 + 0.502417, 0.864625, 0.000000, 0.000000 + 0.501964, 0.864888, 0.000000, 0.000000 + 0.501511, 0.865151, 0.000000, 0.000000 + 0.501058, 0.865414, 0.000000, 0.000000 + 0.500605, 0.865676, 0.000000, 0.000000 + 0.500151, 0.865938, 0.000000, 0.000000 + 0.499698, 0.866200, 0.000000, 0.000000 + 0.499244, 0.866462, 0.000000, 0.000000 + 0.498790, 0.866723, 0.000000, 0.000000 + 0.498336, 0.866984, 0.000000, 0.000000 + 0.497882, 0.867245, 0.000000, 0.000000 + 0.497427, 0.867506, 0.000000, 0.000000 + 0.496973, 0.867766, 0.000000, 0.000000 + 0.496518, 0.868026, 0.000000, 0.000000 + 0.496064, 0.868286, 0.000000, 0.000000 + 0.495609, 0.868546, 0.000000, 0.000000 + 0.495154, 0.868805, 0.000000, 0.000000 + 0.494699, 0.869065, 0.000000, 0.000000 + 0.494243, 0.869324, 0.000000, 0.000000 + 0.493788, 0.869582, 0.000000, 0.000000 + 0.493332, 0.869841, 0.000000, 0.000000 + 0.492877, 0.870099, 0.000000, 0.000000 + 0.492421, 0.870357, 0.000000, 0.000000 + 0.491965, 0.870615, 0.000000, 0.000000 + 0.491509, 0.870872, 0.000000, 0.000000 + 0.491053, 0.871130, 0.000000, 0.000000 + 0.490596, 0.871387, 0.000000, 0.000000 + 0.490140, 0.871644, 0.000000, 0.000000 + 0.489683, 0.871900, 0.000000, 0.000000 + 0.489227, 0.872157, 0.000000, 0.000000 + 0.488770, 0.872413, 0.000000, 0.000000 + 0.488313, 0.872669, 0.000000, 0.000000 + 0.487856, 0.872924, 0.000000, 0.000000 + 0.487398, 0.873180, 0.000000, 0.000000 + 0.486941, 0.873435, 0.000000, 0.000000 + 0.486483, 0.873690, 0.000000, 0.000000 + 0.486026, 0.873945, 0.000000, 0.000000 + 0.485568, 0.874199, 0.000000, 0.000000 + 0.485110, 0.874453, 0.000000, 0.000000 + 0.484652, 0.874707, 0.000000, 0.000000 + 0.484194, 0.874961, 0.000000, 0.000000 + 0.483735, 0.875214, 0.000000, 0.000000 + 0.483277, 0.875468, 0.000000, 0.000000 + 0.482818, 0.875721, 0.000000, 0.000000 + 0.482359, 0.875973, 0.000000, 0.000000 + 0.481901, 0.876226, 0.000000, 0.000000 + 0.481442, 0.876478, 0.000000, 0.000000 + 0.480982, 0.876730, 0.000000, 0.000000 + 0.480523, 0.876982, 0.000000, 0.000000 + 0.480064, 0.877234, 0.000000, 0.000000 + 0.479604, 0.877485, 0.000000, 0.000000 + 0.479145, 0.877736, 0.000000, 0.000000 + 0.478685, 0.877987, 0.000000, 0.000000 + 0.478225, 0.878237, 0.000000, 0.000000 + 0.477765, 0.878488, 0.000000, 0.000000 + 0.477305, 0.878738, 0.000000, 0.000000 + 0.476844, 0.878988, 0.000000, 0.000000 + 0.476384, 0.879237, 0.000000, 0.000000 + 0.475923, 0.879487, 0.000000, 0.000000 + 0.475462, 0.879736, 0.000000, 0.000000 + 0.475002, 0.879985, 0.000000, 0.000000 + 0.474541, 0.880234, 0.000000, 0.000000 + 0.474079, 0.880482, 0.000000, 0.000000 + 0.473618, 0.880730, 0.000000, 0.000000 + 0.473157, 0.880978, 0.000000, 0.000000 + 0.472695, 0.881226, 0.000000, 0.000000 + 0.472234, 0.881473, 0.000000, 0.000000 + 0.471772, 0.881721, 0.000000, 0.000000 + 0.471310, 0.881968, 0.000000, 0.000000 + 0.470848, 0.882214, 0.000000, 0.000000 + 0.470386, 0.882461, 0.000000, 0.000000 + 0.469924, 0.882707, 0.000000, 0.000000 + 0.469461, 0.882953, 0.000000, 0.000000 + 0.468999, 0.883199, 0.000000, 0.000000 + 0.468536, 0.883444, 0.000000, 0.000000 + 0.468073, 0.883690, 0.000000, 0.000000 + 0.467610, 0.883935, 0.000000, 0.000000 + 0.467147, 0.884179, 0.000000, 0.000000 + 0.466684, 0.884424, 0.000000, 0.000000 + 0.466221, 0.884668, 0.000000, 0.000000 + 0.465757, 0.884912, 0.000000, 0.000000 + 0.465294, 0.885156, 0.000000, 0.000000 + 0.464830, 0.885400, 0.000000, 0.000000 + 0.464366, 0.885643, 0.000000, 0.000000 + 0.463902, 0.885886, 0.000000, 0.000000 + 0.463438, 0.886129, 0.000000, 0.000000 + 0.462974, 0.886372, 0.000000, 0.000000 + 0.462510, 0.886614, 0.000000, 0.000000 + 0.462045, 0.886856, 0.000000, 0.000000 + 0.461581, 0.887098, 0.000000, 0.000000 + 0.461116, 0.887340, 0.000000, 0.000000 + 0.460651, 0.887581, 0.000000, 0.000000 + 0.460186, 0.887822, 0.000000, 0.000000 + 0.459721, 0.888063, 0.000000, 0.000000 + 0.459256, 0.888304, 0.000000, 0.000000 + 0.458791, 0.888544, 0.000000, 0.000000 + 0.458325, 0.888785, 0.000000, 0.000000 + 0.457860, 0.889024, 0.000000, 0.000000 + 0.457394, 0.889264, 0.000000, 0.000000 + 0.456928, 0.889504, 0.000000, 0.000000 + 0.456462, 0.889743, 0.000000, 0.000000 + 0.455996, 0.889982, 0.000000, 0.000000 + 0.455530, 0.890220, 0.000000, 0.000000 + 0.455064, 0.890459, 0.000000, 0.000000 + 0.454597, 0.890697, 0.000000, 0.000000 + 0.454130, 0.890935, 0.000000, 0.000000 + 0.453664, 0.891173, 0.000000, 0.000000 + 0.453197, 0.891410, 0.000000, 0.000000 + 0.452730, 0.891648, 0.000000, 0.000000 + 0.452263, 0.891885, 0.000000, 0.000000 + 0.451796, 0.892121, 0.000000, 0.000000 + 0.451328, 0.892358, 0.000000, 0.000000 + 0.450861, 0.892594, 0.000000, 0.000000 + 0.450393, 0.892830, 0.000000, 0.000000 + 0.449926, 0.893066, 0.000000, 0.000000 + 0.449458, 0.893302, 0.000000, 0.000000 + 0.448990, 0.893537, 0.000000, 0.000000 + 0.448522, 0.893772, 0.000000, 0.000000 + 0.448054, 0.894007, 0.000000, 0.000000 + 0.447585, 0.894241, 0.000000, 0.000000 + 0.447117, 0.894476, 0.000000, 0.000000 + 0.446648, 0.894710, 0.000000, 0.000000 + 0.446180, 0.894943, 0.000000, 0.000000 + 0.445711, 0.895177, 0.000000, 0.000000 + 0.445242, 0.895410, 0.000000, 0.000000 + 0.444773, 0.895643, 0.000000, 0.000000 + 0.444304, 0.895876, 0.000000, 0.000000 + 0.443834, 0.896109, 0.000000, 0.000000 + 0.443365, 0.896341, 0.000000, 0.000000 + 0.442895, 0.896573, 0.000000, 0.000000 + 0.442426, 0.896805, 0.000000, 0.000000 + 0.441956, 0.897037, 0.000000, 0.000000 + 0.441486, 0.897268, 0.000000, 0.000000 + 0.441016, 0.897499, 0.000000, 0.000000 + 0.440546, 0.897730, 0.000000, 0.000000 + 0.440076, 0.897961, 0.000000, 0.000000 + 0.439605, 0.898191, 0.000000, 0.000000 + 0.439135, 0.898421, 0.000000, 0.000000 + 0.438664, 0.898651, 0.000000, 0.000000 + 0.438193, 0.898881, 0.000000, 0.000000 + 0.437722, 0.899110, 0.000000, 0.000000 + 0.437251, 0.899339, 0.000000, 0.000000 + 0.436780, 0.899568, 0.000000, 0.000000 + 0.436309, 0.899797, 0.000000, 0.000000 + 0.435838, 0.900025, 0.000000, 0.000000 + 0.435366, 0.900253, 0.000000, 0.000000 + 0.434895, 0.900481, 0.000000, 0.000000 + 0.434423, 0.900709, 0.000000, 0.000000 + 0.433951, 0.900936, 0.000000, 0.000000 + 0.433479, 0.901164, 0.000000, 0.000000 + 0.433007, 0.901390, 0.000000, 0.000000 + 0.432535, 0.901617, 0.000000, 0.000000 + 0.432063, 0.901844, 0.000000, 0.000000 + 0.431590, 0.902070, 0.000000, 0.000000 + 0.431118, 0.902296, 0.000000, 0.000000 + 0.430645, 0.902521, 0.000000, 0.000000 + 0.430172, 0.902747, 0.000000, 0.000000 + 0.429699, 0.902972, 0.000000, 0.000000 + 0.429226, 0.903197, 0.000000, 0.000000 + 0.428753, 0.903422, 0.000000, 0.000000 + 0.428280, 0.903646, 0.000000, 0.000000 + 0.427807, 0.903870, 0.000000, 0.000000 + 0.427333, 0.904094, 0.000000, 0.000000 + 0.426860, 0.904318, 0.000000, 0.000000 + 0.426386, 0.904541, 0.000000, 0.000000 + 0.425912, 0.904765, 0.000000, 0.000000 + 0.425438, 0.904988, 0.000000, 0.000000 + 0.424964, 0.905210, 0.000000, 0.000000 + 0.424490, 0.905433, 0.000000, 0.000000 + 0.424015, 0.905655, 0.000000, 0.000000 + 0.423541, 0.905877, 0.000000, 0.000000 + 0.423067, 0.906099, 0.000000, 0.000000 + 0.422592, 0.906320, 0.000000, 0.000000 + 0.422117, 0.906541, 0.000000, 0.000000 + 0.421642, 0.906762, 0.000000, 0.000000 + 0.421167, 0.906983, 0.000000, 0.000000 + 0.420692, 0.907203, 0.000000, 0.000000 + 0.420217, 0.907424, 0.000000, 0.000000 + 0.419742, 0.907644, 0.000000, 0.000000 + 0.419266, 0.907863, 0.000000, 0.000000 + 0.418791, 0.908083, 0.000000, 0.000000 + 0.418315, 0.908302, 0.000000, 0.000000 + 0.417839, 0.908521, 0.000000, 0.000000 + 0.417363, 0.908740, 0.000000, 0.000000 + 0.416887, 0.908958, 0.000000, 0.000000 + 0.416411, 0.909177, 0.000000, 0.000000 + 0.415935, 0.909394, 0.000000, 0.000000 + 0.415458, 0.909612, 0.000000, 0.000000 + 0.414982, 0.909830, 0.000000, 0.000000 + 0.414505, 0.910047, 0.000000, 0.000000 + 0.414029, 0.910264, 0.000000, 0.000000 + 0.413552, 0.910481, 0.000000, 0.000000 + 0.413075, 0.910697, 0.000000, 0.000000 + 0.412598, 0.910913, 0.000000, 0.000000 + 0.412121, 0.911129, 0.000000, 0.000000 + 0.411643, 0.911345, 0.000000, 0.000000 + 0.411166, 0.911561, 0.000000, 0.000000 + 0.410688, 0.911776, 0.000000, 0.000000 + 0.410211, 0.911991, 0.000000, 0.000000 + 0.409733, 0.912206, 0.000000, 0.000000 + 0.409255, 0.912420, 0.000000, 0.000000 + 0.408777, 0.912634, 0.000000, 0.000000 + 0.408299, 0.912848, 0.000000, 0.000000 + 0.407821, 0.913062, 0.000000, 0.000000 + 0.407343, 0.913275, 0.000000, 0.000000 + 0.406864, 0.913489, 0.000000, 0.000000 + 0.406386, 0.913702, 0.000000, 0.000000 + 0.405907, 0.913914, 0.000000, 0.000000 + 0.405428, 0.914127, 0.000000, 0.000000 + 0.404950, 0.914339, 0.000000, 0.000000 + 0.404471, 0.914551, 0.000000, 0.000000 + 0.403991, 0.914763, 0.000000, 0.000000 + 0.403512, 0.914974, 0.000000, 0.000000 + 0.403033, 0.915185, 0.000000, 0.000000 + 0.402554, 0.915396, 0.000000, 0.000000 + 0.402074, 0.915607, 0.000000, 0.000000 + 0.401594, 0.915818, 0.000000, 0.000000 + 0.401115, 0.916028, 0.000000, 0.000000 + 0.400635, 0.916238, 0.000000, 0.000000 + 0.400155, 0.916448, 0.000000, 0.000000 + 0.399675, 0.916657, 0.000000, 0.000000 + 0.399195, 0.916866, 0.000000, 0.000000 + 0.398714, 0.917075, 0.000000, 0.000000 + 0.398234, 0.917284, 0.000000, 0.000000 + 0.397753, 0.917492, 0.000000, 0.000000 + 0.397273, 0.917701, 0.000000, 0.000000 + 0.396792, 0.917908, 0.000000, 0.000000 + 0.396311, 0.918116, 0.000000, 0.000000 + 0.395830, 0.918324, 0.000000, 0.000000 + 0.395349, 0.918531, 0.000000, 0.000000 + 0.394868, 0.918738, 0.000000, 0.000000 + 0.394387, 0.918944, 0.000000, 0.000000 + 0.393906, 0.919151, 0.000000, 0.000000 + 0.393424, 0.919357, 0.000000, 0.000000 + 0.392942, 0.919563, 0.000000, 0.000000 + 0.392461, 0.919769, 0.000000, 0.000000 + 0.391979, 0.919974, 0.000000, 0.000000 + 0.391497, 0.920179, 0.000000, 0.000000 + 0.391015, 0.920384, 0.000000, 0.000000 + 0.390533, 0.920589, 0.000000, 0.000000 + 0.390051, 0.920793, 0.000000, 0.000000 + 0.389568, 0.920998, 0.000000, 0.000000 + 0.389086, 0.921201, 0.000000, 0.000000 + 0.388603, 0.921405, 0.000000, 0.000000 + 0.388121, 0.921609, 0.000000, 0.000000 + 0.387638, 0.921812, 0.000000, 0.000000 + 0.387155, 0.922015, 0.000000, 0.000000 + 0.386672, 0.922217, 0.000000, 0.000000 + 0.386189, 0.922420, 0.000000, 0.000000 + 0.385706, 0.922622, 0.000000, 0.000000 + 0.385222, 0.922824, 0.000000, 0.000000 + 0.384739, 0.923025, 0.000000, 0.000000 + 0.384256, 0.923227, 0.000000, 0.000000 + 0.383772, 0.923428, 0.000000, 0.000000 + 0.383288, 0.923629, 0.000000, 0.000000 + 0.382804, 0.923829, 0.000000, 0.000000 + 0.382320, 0.924030, 0.000000, 0.000000 + 0.381836, 0.924230, 0.000000, 0.000000 + 0.381352, 0.924430, 0.000000, 0.000000 + 0.380868, 0.924629, 0.000000, 0.000000 + 0.380384, 0.924829, 0.000000, 0.000000 + 0.379899, 0.925028, 0.000000, 0.000000 + 0.379415, 0.925227, 0.000000, 0.000000 + 0.378930, 0.925425, 0.000000, 0.000000 + 0.378445, 0.925624, 0.000000, 0.000000 + 0.377960, 0.925822, 0.000000, 0.000000 + 0.377475, 0.926020, 0.000000, 0.000000 + 0.376990, 0.926217, 0.000000, 0.000000 + 0.376505, 0.926415, 0.000000, 0.000000 + 0.376020, 0.926612, 0.000000, 0.000000 + 0.375535, 0.926808, 0.000000, 0.000000 + 0.375049, 0.927005, 0.000000, 0.000000 + 0.374563, 0.927201, 0.000000, 0.000000 + 0.374078, 0.927397, 0.000000, 0.000000 + 0.373592, 0.927593, 0.000000, 0.000000 + 0.373106, 0.927789, 0.000000, 0.000000 + 0.372620, 0.927984, 0.000000, 0.000000 + 0.372134, 0.928179, 0.000000, 0.000000 + 0.371648, 0.928374, 0.000000, 0.000000 + 0.371161, 0.928568, 0.000000, 0.000000 + 0.370675, 0.928763, 0.000000, 0.000000 + 0.370188, 0.928957, 0.000000, 0.000000 + 0.369702, 0.929150, 0.000000, 0.000000 + 0.369215, 0.929344, 0.000000, 0.000000 + 0.368728, 0.929537, 0.000000, 0.000000 + 0.368241, 0.929730, 0.000000, 0.000000 + 0.367754, 0.929923, 0.000000, 0.000000 + 0.367267, 0.930115, 0.000000, 0.000000 + 0.366780, 0.930308, 0.000000, 0.000000 + 0.366293, 0.930500, 0.000000, 0.000000 + 0.365805, 0.930691, 0.000000, 0.000000 + 0.365318, 0.930883, 0.000000, 0.000000 + 0.364830, 0.931074, 0.000000, 0.000000 + 0.364342, 0.931265, 0.000000, 0.000000 + 0.363855, 0.931456, 0.000000, 0.000000 + 0.363367, 0.931646, 0.000000, 0.000000 + 0.362879, 0.931836, 0.000000, 0.000000 + 0.362391, 0.932026, 0.000000, 0.000000 + 0.361902, 0.932216, 0.000000, 0.000000 + 0.361414, 0.932405, 0.000000, 0.000000 + 0.360926, 0.932595, 0.000000, 0.000000 + 0.360437, 0.932784, 0.000000, 0.000000 + 0.359948, 0.932972, 0.000000, 0.000000 + 0.359460, 0.933161, 0.000000, 0.000000 + 0.358971, 0.933349, 0.000000, 0.000000 + 0.358482, 0.933537, 0.000000, 0.000000 + 0.357993, 0.933724, 0.000000, 0.000000 + 0.357504, 0.933912, 0.000000, 0.000000 + 0.357015, 0.934099, 0.000000, 0.000000 + 0.356525, 0.934286, 0.000000, 0.000000 + 0.356036, 0.934472, 0.000000, 0.000000 + 0.355547, 0.934659, 0.000000, 0.000000 + 0.355057, 0.934845, 0.000000, 0.000000 + 0.354567, 0.935031, 0.000000, 0.000000 + 0.354077, 0.935216, 0.000000, 0.000000 + 0.353588, 0.935401, 0.000000, 0.000000 + 0.353098, 0.935587, 0.000000, 0.000000 + 0.352607, 0.935771, 0.000000, 0.000000 + 0.352117, 0.935956, 0.000000, 0.000000 + 0.351627, 0.936140, 0.000000, 0.000000 + 0.351137, 0.936324, 0.000000, 0.000000 + 0.350646, 0.936508, 0.000000, 0.000000 + 0.350156, 0.936692, 0.000000, 0.000000 + 0.349665, 0.936875, 0.000000, 0.000000 + 0.349174, 0.937058, 0.000000, 0.000000 + 0.348683, 0.937241, 0.000000, 0.000000 + 0.348192, 0.937423, 0.000000, 0.000000 + 0.347701, 0.937605, 0.000000, 0.000000 + 0.347210, 0.937787, 0.000000, 0.000000 + 0.346719, 0.937969, 0.000000, 0.000000 + 0.346228, 0.938151, 0.000000, 0.000000 + 0.345736, 0.938332, 0.000000, 0.000000 + 0.345245, 0.938513, 0.000000, 0.000000 + 0.344753, 0.938693, 0.000000, 0.000000 + 0.344261, 0.938874, 0.000000, 0.000000 + 0.343770, 0.939054, 0.000000, 0.000000 + 0.343278, 0.939234, 0.000000, 0.000000 + 0.342786, 0.939414, 0.000000, 0.000000 + 0.342294, 0.939593, 0.000000, 0.000000 + 0.341801, 0.939772, 0.000000, 0.000000 + 0.341309, 0.939951, 0.000000, 0.000000 + 0.340817, 0.940130, 0.000000, 0.000000 + 0.340324, 0.940308, 0.000000, 0.000000 + 0.339832, 0.940486, 0.000000, 0.000000 + 0.339339, 0.940664, 0.000000, 0.000000 + 0.338846, 0.940842, 0.000000, 0.000000 + 0.338354, 0.941019, 0.000000, 0.000000 + 0.337861, 0.941196, 0.000000, 0.000000 + 0.337368, 0.941373, 0.000000, 0.000000 + 0.336874, 0.941550, 0.000000, 0.000000 + 0.336381, 0.941726, 0.000000, 0.000000 + 0.335888, 0.941902, 0.000000, 0.000000 + 0.335395, 0.942078, 0.000000, 0.000000 + 0.334901, 0.942253, 0.000000, 0.000000 + 0.334407, 0.942429, 0.000000, 0.000000 + 0.333914, 0.942604, 0.000000, 0.000000 + 0.333420, 0.942778, 0.000000, 0.000000 + 0.332926, 0.942953, 0.000000, 0.000000 + 0.332432, 0.943127, 0.000000, 0.000000 + 0.331938, 0.943301, 0.000000, 0.000000 + 0.331444, 0.943475, 0.000000, 0.000000 + 0.330950, 0.943648, 0.000000, 0.000000 + 0.330456, 0.943822, 0.000000, 0.000000 + 0.329961, 0.943994, 0.000000, 0.000000 + 0.329467, 0.944167, 0.000000, 0.000000 + 0.328972, 0.944340, 0.000000, 0.000000 + 0.328478, 0.944512, 0.000000, 0.000000 + 0.327983, 0.944684, 0.000000, 0.000000 + 0.327488, 0.944855, 0.000000, 0.000000 + 0.326993, 0.945027, 0.000000, 0.000000 + 0.326498, 0.945198, 0.000000, 0.000000 + 0.326003, 0.945369, 0.000000, 0.000000 + 0.325508, 0.945539, 0.000000, 0.000000 + 0.325012, 0.945710, 0.000000, 0.000000 + 0.324517, 0.945880, 0.000000, 0.000000 + 0.324021, 0.946050, 0.000000, 0.000000 + 0.323526, 0.946219, 0.000000, 0.000000 + 0.323030, 0.946389, 0.000000, 0.000000 + 0.322535, 0.946558, 0.000000, 0.000000 + 0.322039, 0.946727, 0.000000, 0.000000 + 0.321543, 0.946895, 0.000000, 0.000000 + 0.321047, 0.947063, 0.000000, 0.000000 + 0.320551, 0.947231, 0.000000, 0.000000 + 0.320055, 0.947399, 0.000000, 0.000000 + 0.319558, 0.947567, 0.000000, 0.000000 + 0.319062, 0.947734, 0.000000, 0.000000 + 0.318565, 0.947901, 0.000000, 0.000000 + 0.318069, 0.948068, 0.000000, 0.000000 + 0.317572, 0.948234, 0.000000, 0.000000 + 0.317076, 0.948400, 0.000000, 0.000000 + 0.316579, 0.948566, 0.000000, 0.000000 + 0.316082, 0.948732, 0.000000, 0.000000 + 0.315585, 0.948897, 0.000000, 0.000000 + 0.315088, 0.949062, 0.000000, 0.000000 + 0.314591, 0.949227, 0.000000, 0.000000 + 0.314094, 0.949392, 0.000000, 0.000000 + 0.313596, 0.949556, 0.000000, 0.000000 + 0.313099, 0.949721, 0.000000, 0.000000 + 0.312601, 0.949884, 0.000000, 0.000000 + 0.312104, 0.950048, 0.000000, 0.000000 + 0.311606, 0.950211, 0.000000, 0.000000 + 0.311108, 0.950374, 0.000000, 0.000000 + 0.310611, 0.950537, 0.000000, 0.000000 + 0.310113, 0.950700, 0.000000, 0.000000 + 0.309615, 0.950862, 0.000000, 0.000000 + 0.309117, 0.951024, 0.000000, 0.000000 + 0.308618, 0.951186, 0.000000, 0.000000 + 0.308120, 0.951347, 0.000000, 0.000000 + 0.307622, 0.951509, 0.000000, 0.000000 + 0.307123, 0.951670, 0.000000, 0.000000 + 0.306625, 0.951830, 0.000000, 0.000000 + 0.306126, 0.951991, 0.000000, 0.000000 + 0.305628, 0.952151, 0.000000, 0.000000 + 0.305129, 0.952311, 0.000000, 0.000000 + 0.304630, 0.952471, 0.000000, 0.000000 + 0.304131, 0.952630, 0.000000, 0.000000 + 0.303632, 0.952789, 0.000000, 0.000000 + 0.303133, 0.952948, 0.000000, 0.000000 + 0.302634, 0.953107, 0.000000, 0.000000 + 0.302135, 0.953265, 0.000000, 0.000000 + 0.301635, 0.953423, 0.000000, 0.000000 + 0.301136, 0.953581, 0.000000, 0.000000 + 0.300636, 0.953739, 0.000000, 0.000000 + 0.300137, 0.953896, 0.000000, 0.000000 + 0.299637, 0.954053, 0.000000, 0.000000 + 0.299137, 0.954210, 0.000000, 0.000000 + 0.298638, 0.954367, 0.000000, 0.000000 + 0.298138, 0.954523, 0.000000, 0.000000 + 0.297638, 0.954679, 0.000000, 0.000000 + 0.297138, 0.954835, 0.000000, 0.000000 + 0.296637, 0.954990, 0.000000, 0.000000 + 0.296137, 0.955145, 0.000000, 0.000000 + 0.295637, 0.955300, 0.000000, 0.000000 + 0.295136, 0.955455, 0.000000, 0.000000 + 0.294636, 0.955610, 0.000000, 0.000000 + 0.294135, 0.955764, 0.000000, 0.000000 + 0.293635, 0.955918, 0.000000, 0.000000 + 0.293134, 0.956071, 0.000000, 0.000000 + 0.292633, 0.956225, 0.000000, 0.000000 + 0.292132, 0.956378, 0.000000, 0.000000 + 0.291631, 0.956531, 0.000000, 0.000000 + 0.291130, 0.956683, 0.000000, 0.000000 + 0.290629, 0.956836, 0.000000, 0.000000 + 0.290128, 0.956988, 0.000000, 0.000000 + 0.289627, 0.957140, 0.000000, 0.000000 + 0.289125, 0.957291, 0.000000, 0.000000 + 0.288624, 0.957443, 0.000000, 0.000000 + 0.288122, 0.957594, 0.000000, 0.000000 + 0.287621, 0.957744, 0.000000, 0.000000 + 0.287119, 0.957895, 0.000000, 0.000000 + 0.286617, 0.958045, 0.000000, 0.000000 + 0.286116, 0.958195, 0.000000, 0.000000 + 0.285614, 0.958345, 0.000000, 0.000000 + 0.285112, 0.958494, 0.000000, 0.000000 + 0.284610, 0.958644, 0.000000, 0.000000 + 0.284107, 0.958792, 0.000000, 0.000000 + 0.283605, 0.958941, 0.000000, 0.000000 + 0.283103, 0.959090, 0.000000, 0.000000 + 0.282600, 0.959238, 0.000000, 0.000000 + 0.282098, 0.959386, 0.000000, 0.000000 + 0.281595, 0.959533, 0.000000, 0.000000 + 0.281093, 0.959681, 0.000000, 0.000000 + 0.280590, 0.959828, 0.000000, 0.000000 + 0.280087, 0.959975, 0.000000, 0.000000 + 0.279585, 0.960121, 0.000000, 0.000000 + 0.279082, 0.960267, 0.000000, 0.000000 + 0.278579, 0.960413, 0.000000, 0.000000 + 0.278076, 0.960559, 0.000000, 0.000000 + 0.277572, 0.960705, 0.000000, 0.000000 + 0.277069, 0.960850, 0.000000, 0.000000 + 0.276566, 0.960995, 0.000000, 0.000000 + 0.276062, 0.961140, 0.000000, 0.000000 + 0.275559, 0.961284, 0.000000, 0.000000 + 0.275056, 0.961428, 0.000000, 0.000000 + 0.274552, 0.961572, 0.000000, 0.000000 + 0.274048, 0.961716, 0.000000, 0.000000 + 0.273544, 0.961859, 0.000000, 0.000000 + 0.273041, 0.962003, 0.000000, 0.000000 + 0.272537, 0.962145, 0.000000, 0.000000 + 0.272033, 0.962288, 0.000000, 0.000000 + 0.271529, 0.962430, 0.000000, 0.000000 + 0.271025, 0.962572, 0.000000, 0.000000 + 0.270520, 0.962714, 0.000000, 0.000000 + 0.270016, 0.962856, 0.000000, 0.000000 + 0.269512, 0.962997, 0.000000, 0.000000 + 0.269007, 0.963138, 0.000000, 0.000000 + 0.268503, 0.963279, 0.000000, 0.000000 + 0.267998, 0.963419, 0.000000, 0.000000 + 0.267494, 0.963560, 0.000000, 0.000000 + 0.266989, 0.963700, 0.000000, 0.000000 + 0.266484, 0.963839, 0.000000, 0.000000 + 0.265979, 0.963979, 0.000000, 0.000000 + 0.265474, 0.964118, 0.000000, 0.000000 + 0.264969, 0.964257, 0.000000, 0.000000 + 0.264464, 0.964396, 0.000000, 0.000000 + 0.263959, 0.964534, 0.000000, 0.000000 + 0.263454, 0.964672, 0.000000, 0.000000 + 0.262948, 0.964810, 0.000000, 0.000000 + 0.262443, 0.964947, 0.000000, 0.000000 + 0.261938, 0.965085, 0.000000, 0.000000 + 0.261432, 0.965222, 0.000000, 0.000000 + 0.260926, 0.965359, 0.000000, 0.000000 + 0.260421, 0.965495, 0.000000, 0.000000 + 0.259915, 0.965631, 0.000000, 0.000000 + 0.259409, 0.965767, 0.000000, 0.000000 + 0.258903, 0.965903, 0.000000, 0.000000 + 0.258397, 0.966039, 0.000000, 0.000000 + 0.257891, 0.966174, 0.000000, 0.000000 + 0.257385, 0.966309, 0.000000, 0.000000 + 0.256879, 0.966444, 0.000000, 0.000000 + 0.256373, 0.966578, 0.000000, 0.000000 + 0.255867, 0.966712, 0.000000, 0.000000 + 0.255360, 0.966846, 0.000000, 0.000000 + 0.254854, 0.966980, 0.000000, 0.000000 + 0.254347, 0.967113, 0.000000, 0.000000 + 0.253841, 0.967246, 0.000000, 0.000000 + 0.253334, 0.967379, 0.000000, 0.000000 + 0.252827, 0.967511, 0.000000, 0.000000 + 0.252321, 0.967644, 0.000000, 0.000000 + 0.251814, 0.967776, 0.000000, 0.000000 + 0.251307, 0.967907, 0.000000, 0.000000 + 0.250800, 0.968039, 0.000000, 0.000000 + 0.250293, 0.968170, 0.000000, 0.000000 + 0.249786, 0.968301, 0.000000, 0.000000 + 0.249278, 0.968432, 0.000000, 0.000000 + 0.248771, 0.968562, 0.000000, 0.000000 + 0.248264, 0.968692, 0.000000, 0.000000 + 0.247756, 0.968822, 0.000000, 0.000000 + 0.247249, 0.968952, 0.000000, 0.000000 + 0.246741, 0.969081, 0.000000, 0.000000 + 0.246234, 0.969210, 0.000000, 0.000000 + 0.245726, 0.969339, 0.000000, 0.000000 + 0.245218, 0.969468, 0.000000, 0.000000 + 0.244710, 0.969596, 0.000000, 0.000000 + 0.244203, 0.969724, 0.000000, 0.000000 + 0.243695, 0.969852, 0.000000, 0.000000 + 0.243187, 0.969980, 0.000000, 0.000000 + 0.242678, 0.970107, 0.000000, 0.000000 + 0.242170, 0.970234, 0.000000, 0.000000 + 0.241662, 0.970360, 0.000000, 0.000000 + 0.241154, 0.970487, 0.000000, 0.000000 + 0.240646, 0.970613, 0.000000, 0.000000 + 0.240137, 0.970739, 0.000000, 0.000000 + 0.239629, 0.970865, 0.000000, 0.000000 + 0.239120, 0.970990, 0.000000, 0.000000 + 0.238611, 0.971115, 0.000000, 0.000000 + 0.238103, 0.971240, 0.000000, 0.000000 + 0.237594, 0.971365, 0.000000, 0.000000 + 0.237085, 0.971489, 0.000000, 0.000000 + 0.236576, 0.971613, 0.000000, 0.000000 + 0.236067, 0.971737, 0.000000, 0.000000 + 0.235558, 0.971860, 0.000000, 0.000000 + 0.235049, 0.971983, 0.000000, 0.000000 + 0.234540, 0.972106, 0.000000, 0.000000 + 0.234031, 0.972229, 0.000000, 0.000000 + 0.233522, 0.972352, 0.000000, 0.000000 + 0.233012, 0.972474, 0.000000, 0.000000 + 0.232503, 0.972596, 0.000000, 0.000000 + 0.231994, 0.972717, 0.000000, 0.000000 + 0.231484, 0.972839, 0.000000, 0.000000 + 0.230975, 0.972960, 0.000000, 0.000000 + 0.230465, 0.973081, 0.000000, 0.000000 + 0.229955, 0.973201, 0.000000, 0.000000 + 0.229445, 0.973322, 0.000000, 0.000000 + 0.228936, 0.973442, 0.000000, 0.000000 + 0.228426, 0.973561, 0.000000, 0.000000 + 0.227916, 0.973681, 0.000000, 0.000000 + 0.227406, 0.973800, 0.000000, 0.000000 + 0.226896, 0.973919, 0.000000, 0.000000 + 0.226385, 0.974038, 0.000000, 0.000000 + 0.225875, 0.974156, 0.000000, 0.000000 + 0.225365, 0.974274, 0.000000, 0.000000 + 0.224855, 0.974392, 0.000000, 0.000000 + 0.224344, 0.974510, 0.000000, 0.000000 + 0.223834, 0.974627, 0.000000, 0.000000 + 0.223323, 0.974744, 0.000000, 0.000000 + 0.222813, 0.974861, 0.000000, 0.000000 + 0.222302, 0.974978, 0.000000, 0.000000 + 0.221791, 0.975094, 0.000000, 0.000000 + 0.221281, 0.975210, 0.000000, 0.000000 + 0.220770, 0.975326, 0.000000, 0.000000 + 0.220259, 0.975441, 0.000000, 0.000000 + 0.219748, 0.975557, 0.000000, 0.000000 + 0.219237, 0.975672, 0.000000, 0.000000 + 0.218726, 0.975786, 0.000000, 0.000000 + 0.218215, 0.975901, 0.000000, 0.000000 + 0.217704, 0.976015, 0.000000, 0.000000 + 0.217192, 0.976129, 0.000000, 0.000000 + 0.216681, 0.976242, 0.000000, 0.000000 + 0.216170, 0.976356, 0.000000, 0.000000 + 0.215658, 0.976469, 0.000000, 0.000000 + 0.215147, 0.976582, 0.000000, 0.000000 + 0.214635, 0.976694, 0.000000, 0.000000 + 0.214124, 0.976807, 0.000000, 0.000000 + 0.213612, 0.976919, 0.000000, 0.000000 + 0.213100, 0.977030, 0.000000, 0.000000 + 0.212589, 0.977142, 0.000000, 0.000000 + 0.212077, 0.977253, 0.000000, 0.000000 + 0.211565, 0.977364, 0.000000, 0.000000 + 0.211053, 0.977475, 0.000000, 0.000000 + 0.210541, 0.977585, 0.000000, 0.000000 + 0.210029, 0.977695, 0.000000, 0.000000 + 0.209517, 0.977805, 0.000000, 0.000000 + 0.209005, 0.977915, 0.000000, 0.000000 + 0.208492, 0.978024, 0.000000, 0.000000 + 0.207980, 0.978133, 0.000000, 0.000000 + 0.207468, 0.978242, 0.000000, 0.000000 + 0.206955, 0.978350, 0.000000, 0.000000 + 0.206443, 0.978459, 0.000000, 0.000000 + 0.205930, 0.978567, 0.000000, 0.000000 + 0.205418, 0.978674, 0.000000, 0.000000 + 0.204905, 0.978782, 0.000000, 0.000000 + 0.204392, 0.978889, 0.000000, 0.000000 + 0.203880, 0.978996, 0.000000, 0.000000 + 0.203367, 0.979103, 0.000000, 0.000000 + 0.202854, 0.979209, 0.000000, 0.000000 + 0.202341, 0.979315, 0.000000, 0.000000 + 0.201828, 0.979421, 0.000000, 0.000000 + 0.201315, 0.979527, 0.000000, 0.000000 + 0.200802, 0.979632, 0.000000, 0.000000 + 0.200289, 0.979737, 0.000000, 0.000000 + 0.199776, 0.979842, 0.000000, 0.000000 + 0.199262, 0.979946, 0.000000, 0.000000 + 0.198749, 0.980050, 0.000000, 0.000000 + 0.198236, 0.980154, 0.000000, 0.000000 + 0.197722, 0.980258, 0.000000, 0.000000 + 0.197209, 0.980361, 0.000000, 0.000000 + 0.196695, 0.980465, 0.000000, 0.000000 + 0.196182, 0.980568, 0.000000, 0.000000 + 0.195668, 0.980670, 0.000000, 0.000000 + 0.195155, 0.980773, 0.000000, 0.000000 + 0.194641, 0.980875, 0.000000, 0.000000 + 0.194127, 0.980976, 0.000000, 0.000000 + 0.193613, 0.981078, 0.000000, 0.000000 + 0.193099, 0.981179, 0.000000, 0.000000 + 0.192585, 0.981280, 0.000000, 0.000000 + 0.192071, 0.981381, 0.000000, 0.000000 + 0.191557, 0.981481, 0.000000, 0.000000 + 0.191043, 0.981582, 0.000000, 0.000000 + 0.190529, 0.981682, 0.000000, 0.000000 + 0.190015, 0.981781, 0.000000, 0.000000 + 0.189501, 0.981881, 0.000000, 0.000000 + 0.188986, 0.981980, 0.000000, 0.000000 + 0.188472, 0.982079, 0.000000, 0.000000 + 0.187958, 0.982177, 0.000000, 0.000000 + 0.187443, 0.982275, 0.000000, 0.000000 + 0.186929, 0.982374, 0.000000, 0.000000 + 0.186414, 0.982471, 0.000000, 0.000000 + 0.185899, 0.982569, 0.000000, 0.000000 + 0.185385, 0.982666, 0.000000, 0.000000 + 0.184870, 0.982763, 0.000000, 0.000000 + 0.184355, 0.982860, 0.000000, 0.000000 + 0.183840, 0.982956, 0.000000, 0.000000 + 0.183326, 0.983052, 0.000000, 0.000000 + 0.182811, 0.983148, 0.000000, 0.000000 + 0.182296, 0.983244, 0.000000, 0.000000 + 0.181781, 0.983339, 0.000000, 0.000000 + 0.181266, 0.983434, 0.000000, 0.000000 + 0.180750, 0.983529, 0.000000, 0.000000 + 0.180235, 0.983624, 0.000000, 0.000000 + 0.179720, 0.983718, 0.000000, 0.000000 + 0.179205, 0.983812, 0.000000, 0.000000 + 0.178689, 0.983906, 0.000000, 0.000000 + 0.178174, 0.983999, 0.000000, 0.000000 + 0.177659, 0.984092, 0.000000, 0.000000 + 0.177143, 0.984185, 0.000000, 0.000000 + 0.176628, 0.984278, 0.000000, 0.000000 + 0.176112, 0.984370, 0.000000, 0.000000 + 0.175596, 0.984462, 0.000000, 0.000000 + 0.175081, 0.984554, 0.000000, 0.000000 + 0.174565, 0.984646, 0.000000, 0.000000 + 0.174049, 0.984737, 0.000000, 0.000000 + 0.173534, 0.984828, 0.000000, 0.000000 + 0.173018, 0.984919, 0.000000, 0.000000 + 0.172502, 0.985009, 0.000000, 0.000000 + 0.171986, 0.985099, 0.000000, 0.000000 + 0.171470, 0.985189, 0.000000, 0.000000 + 0.170954, 0.985279, 0.000000, 0.000000 + 0.170438, 0.985368, 0.000000, 0.000000 + 0.169922, 0.985458, 0.000000, 0.000000 + 0.169405, 0.985546, 0.000000, 0.000000 + 0.168889, 0.985635, 0.000000, 0.000000 + 0.168373, 0.985723, 0.000000, 0.000000 + 0.167857, 0.985811, 0.000000, 0.000000 + 0.167340, 0.985899, 0.000000, 0.000000 + 0.166824, 0.985987, 0.000000, 0.000000 + 0.166307, 0.986074, 0.000000, 0.000000 + 0.165791, 0.986161, 0.000000, 0.000000 + 0.165274, 0.986248, 0.000000, 0.000000 + 0.164758, 0.986334, 0.000000, 0.000000 + 0.164241, 0.986420, 0.000000, 0.000000 + 0.163724, 0.986506, 0.000000, 0.000000 + 0.163208, 0.986592, 0.000000, 0.000000 + 0.162691, 0.986677, 0.000000, 0.000000 + 0.162174, 0.986762, 0.000000, 0.000000 + 0.161657, 0.986847, 0.000000, 0.000000 + 0.161140, 0.986932, 0.000000, 0.000000 + 0.160623, 0.987016, 0.000000, 0.000000 + 0.160106, 0.987100, 0.000000, 0.000000 + 0.159589, 0.987183, 0.000000, 0.000000 + 0.159072, 0.987267, 0.000000, 0.000000 + 0.158555, 0.987350, 0.000000, 0.000000 + 0.158038, 0.987433, 0.000000, 0.000000 + 0.157521, 0.987516, 0.000000, 0.000000 + 0.157003, 0.987598, 0.000000, 0.000000 + 0.156486, 0.987680, 0.000000, 0.000000 + 0.155969, 0.987762, 0.000000, 0.000000 + 0.155451, 0.987844, 0.000000, 0.000000 + 0.154934, 0.987925, 0.000000, 0.000000 + 0.154417, 0.988006, 0.000000, 0.000000 + 0.153899, 0.988087, 0.000000, 0.000000 + 0.153382, 0.988167, 0.000000, 0.000000 + 0.152864, 0.988247, 0.000000, 0.000000 + 0.152346, 0.988327, 0.000000, 0.000000 + 0.151829, 0.988407, 0.000000, 0.000000 + 0.151311, 0.988486, 0.000000, 0.000000 + 0.150793, 0.988565, 0.000000, 0.000000 + 0.150275, 0.988644, 0.000000, 0.000000 + 0.149757, 0.988723, 0.000000, 0.000000 + 0.149240, 0.988801, 0.000000, 0.000000 + 0.148722, 0.988879, 0.000000, 0.000000 + 0.148204, 0.988957, 0.000000, 0.000000 + 0.147686, 0.989034, 0.000000, 0.000000 + 0.147168, 0.989112, 0.000000, 0.000000 + 0.146650, 0.989189, 0.000000, 0.000000 + 0.146131, 0.989265, 0.000000, 0.000000 + 0.145613, 0.989342, 0.000000, 0.000000 + 0.145095, 0.989418, 0.000000, 0.000000 + 0.144577, 0.989494, 0.000000, 0.000000 + 0.144058, 0.989569, 0.000000, 0.000000 + 0.143540, 0.989644, 0.000000, 0.000000 + 0.143022, 0.989720, 0.000000, 0.000000 + 0.142503, 0.989794, 0.000000, 0.000000 + 0.141985, 0.989869, 0.000000, 0.000000 + 0.141466, 0.989943, 0.000000, 0.000000 + 0.140948, 0.990017, 0.000000, 0.000000 + 0.140429, 0.990091, 0.000000, 0.000000 + 0.139911, 0.990164, 0.000000, 0.000000 + 0.139392, 0.990237, 0.000000, 0.000000 + 0.138873, 0.990310, 0.000000, 0.000000 + 0.138355, 0.990383, 0.000000, 0.000000 + 0.137836, 0.990455, 0.000000, 0.000000 + 0.137317, 0.990527, 0.000000, 0.000000 + 0.136798, 0.990599, 0.000000, 0.000000 + 0.136279, 0.990670, 0.000000, 0.000000 + 0.135761, 0.990742, 0.000000, 0.000000 + 0.135242, 0.990813, 0.000000, 0.000000 + 0.134723, 0.990883, 0.000000, 0.000000 + 0.134204, 0.990954, 0.000000, 0.000000 + 0.133685, 0.991024, 0.000000, 0.000000 + 0.133165, 0.991094, 0.000000, 0.000000 + 0.132646, 0.991163, 0.000000, 0.000000 + 0.132127, 0.991233, 0.000000, 0.000000 + 0.131608, 0.991302, 0.000000, 0.000000 + 0.131089, 0.991371, 0.000000, 0.000000 + 0.130569, 0.991439, 0.000000, 0.000000 + 0.130050, 0.991507, 0.000000, 0.000000 + 0.129531, 0.991575, 0.000000, 0.000000 + 0.129011, 0.991643, 0.000000, 0.000000 + 0.128492, 0.991711, 0.000000, 0.000000 + 0.127973, 0.991778, 0.000000, 0.000000 + 0.127453, 0.991845, 0.000000, 0.000000 + 0.126934, 0.991911, 0.000000, 0.000000 + 0.126414, 0.991978, 0.000000, 0.000000 + 0.125894, 0.992044, 0.000000, 0.000000 + 0.125375, 0.992109, 0.000000, 0.000000 + 0.124855, 0.992175, 0.000000, 0.000000 + 0.124335, 0.992240, 0.000000, 0.000000 + 0.123816, 0.992305, 0.000000, 0.000000 + 0.123296, 0.992370, 0.000000, 0.000000 + 0.122776, 0.992434, 0.000000, 0.000000 + 0.122256, 0.992499, 0.000000, 0.000000 + 0.121736, 0.992562, 0.000000, 0.000000 + 0.121217, 0.992626, 0.000000, 0.000000 + 0.120697, 0.992689, 0.000000, 0.000000 + 0.120177, 0.992753, 0.000000, 0.000000 + 0.119657, 0.992815, 0.000000, 0.000000 + 0.119137, 0.992878, 0.000000, 0.000000 + 0.118617, 0.992940, 0.000000, 0.000000 + 0.118097, 0.993002, 0.000000, 0.000000 + 0.117576, 0.993064, 0.000000, 0.000000 + 0.117056, 0.993125, 0.000000, 0.000000 + 0.116536, 0.993186, 0.000000, 0.000000 + 0.116016, 0.993247, 0.000000, 0.000000 + 0.115496, 0.993308, 0.000000, 0.000000 + 0.114975, 0.993368, 0.000000, 0.000000 + 0.114455, 0.993428, 0.000000, 0.000000 + 0.113935, 0.993488, 0.000000, 0.000000 + 0.113414, 0.993548, 0.000000, 0.000000 + 0.112894, 0.993607, 0.000000, 0.000000 + 0.112373, 0.993666, 0.000000, 0.000000 + 0.111853, 0.993725, 0.000000, 0.000000 + 0.111332, 0.993783, 0.000000, 0.000000 + 0.110812, 0.993841, 0.000000, 0.000000 + 0.110291, 0.993899, 0.000000, 0.000000 + 0.109771, 0.993957, 0.000000, 0.000000 + 0.109250, 0.994014, 0.000000, 0.000000 + 0.108729, 0.994071, 0.000000, 0.000000 + 0.108209, 0.994128, 0.000000, 0.000000 + 0.107688, 0.994185, 0.000000, 0.000000 + 0.107167, 0.994241, 0.000000, 0.000000 + 0.106647, 0.994297, 0.000000, 0.000000 + 0.106126, 0.994353, 0.000000, 0.000000 + 0.105605, 0.994408, 0.000000, 0.000000 + 0.105084, 0.994463, 0.000000, 0.000000 + 0.104563, 0.994518, 0.000000, 0.000000 + 0.104042, 0.994573, 0.000000, 0.000000 + 0.103521, 0.994627, 0.000000, 0.000000 + 0.103000, 0.994681, 0.000000, 0.000000 + 0.102479, 0.994735, 0.000000, 0.000000 + 0.101958, 0.994789, 0.000000, 0.000000 + 0.101437, 0.994842, 0.000000, 0.000000 + 0.100916, 0.994895, 0.000000, 0.000000 + 0.100395, 0.994948, 0.000000, 0.000000 + 0.099874, 0.995000, 0.000000, 0.000000 + 0.099353, 0.995052, 0.000000, 0.000000 + 0.098832, 0.995104, 0.000000, 0.000000 + 0.098310, 0.995156, 0.000000, 0.000000 + 0.097789, 0.995207, 0.000000, 0.000000 + 0.097268, 0.995258, 0.000000, 0.000000 + 0.096747, 0.995309, 0.000000, 0.000000 + 0.096225, 0.995360, 0.000000, 0.000000 + 0.095704, 0.995410, 0.000000, 0.000000 + 0.095182, 0.995460, 0.000000, 0.000000 + 0.094661, 0.995510, 0.000000, 0.000000 + 0.094140, 0.995559, 0.000000, 0.000000 + 0.093618, 0.995608, 0.000000, 0.000000 + 0.093097, 0.995657, 0.000000, 0.000000 + 0.092575, 0.995706, 0.000000, 0.000000 + 0.092054, 0.995754, 0.000000, 0.000000 + 0.091532, 0.995802, 0.000000, 0.000000 + 0.091010, 0.995850, 0.000000, 0.000000 + 0.090489, 0.995897, 0.000000, 0.000000 + 0.089967, 0.995945, 0.000000, 0.000000 + 0.089446, 0.995992, 0.000000, 0.000000 + 0.088924, 0.996038, 0.000000, 0.000000 + 0.088402, 0.996085, 0.000000, 0.000000 + 0.087880, 0.996131, 0.000000, 0.000000 + 0.087359, 0.996177, 0.000000, 0.000000 + 0.086837, 0.996223, 0.000000, 0.000000 + 0.086315, 0.996268, 0.000000, 0.000000 + 0.085793, 0.996313, 0.000000, 0.000000 + 0.085271, 0.996358, 0.000000, 0.000000 + 0.084750, 0.996402, 0.000000, 0.000000 + 0.084228, 0.996447, 0.000000, 0.000000 + 0.083706, 0.996491, 0.000000, 0.000000 + 0.083184, 0.996534, 0.000000, 0.000000 + 0.082662, 0.996578, 0.000000, 0.000000 + 0.082140, 0.996621, 0.000000, 0.000000 + 0.081618, 0.996664, 0.000000, 0.000000 + 0.081096, 0.996706, 0.000000, 0.000000 + 0.080574, 0.996749, 0.000000, 0.000000 + 0.080052, 0.996791, 0.000000, 0.000000 + 0.079529, 0.996833, 0.000000, 0.000000 + 0.079007, 0.996874, 0.000000, 0.000000 + 0.078485, 0.996915, 0.000000, 0.000000 + 0.077963, 0.996956, 0.000000, 0.000000 + 0.077441, 0.996997, 0.000000, 0.000000 + 0.076919, 0.997037, 0.000000, 0.000000 + 0.076396, 0.997078, 0.000000, 0.000000 + 0.075874, 0.997117, 0.000000, 0.000000 + 0.075352, 0.997157, 0.000000, 0.000000 + 0.074830, 0.997196, 0.000000, 0.000000 + 0.074307, 0.997235, 0.000000, 0.000000 + 0.073785, 0.997274, 0.000000, 0.000000 + 0.073263, 0.997313, 0.000000, 0.000000 + 0.072740, 0.997351, 0.000000, 0.000000 + 0.072218, 0.997389, 0.000000, 0.000000 + 0.071695, 0.997427, 0.000000, 0.000000 + 0.071173, 0.997464, 0.000000, 0.000000 + 0.070650, 0.997501, 0.000000, 0.000000 + 0.070128, 0.997538, 0.000000, 0.000000 + 0.069606, 0.997575, 0.000000, 0.000000 + 0.069083, 0.997611, 0.000000, 0.000000 + 0.068560, 0.997647, 0.000000, 0.000000 + 0.068038, 0.997683, 0.000000, 0.000000 + 0.067515, 0.997718, 0.000000, 0.000000 + 0.066993, 0.997753, 0.000000, 0.000000 + 0.066470, 0.997788, 0.000000, 0.000000 + 0.065948, 0.997823, 0.000000, 0.000000 + 0.065425, 0.997857, 0.000000, 0.000000 + 0.064902, 0.997892, 0.000000, 0.000000 + 0.064380, 0.997925, 0.000000, 0.000000 + 0.063857, 0.997959, 0.000000, 0.000000 + 0.063334, 0.997992, 0.000000, 0.000000 + 0.062811, 0.998025, 0.000000, 0.000000 + 0.062289, 0.998058, 0.000000, 0.000000 + 0.061766, 0.998091, 0.000000, 0.000000 + 0.061243, 0.998123, 0.000000, 0.000000 + 0.060720, 0.998155, 0.000000, 0.000000 + 0.060198, 0.998186, 0.000000, 0.000000 + 0.059675, 0.998218, 0.000000, 0.000000 + 0.059152, 0.998249, 0.000000, 0.000000 + 0.058629, 0.998280, 0.000000, 0.000000 + 0.058106, 0.998310, 0.000000, 0.000000 + 0.057583, 0.998341, 0.000000, 0.000000 + 0.057060, 0.998371, 0.000000, 0.000000 + 0.056537, 0.998400, 0.000000, 0.000000 + 0.056014, 0.998430, 0.000000, 0.000000 + 0.055491, 0.998459, 0.000000, 0.000000 + 0.054968, 0.998488, 0.000000, 0.000000 + 0.054445, 0.998517, 0.000000, 0.000000 + 0.053922, 0.998545, 0.000000, 0.000000 + 0.053399, 0.998573, 0.000000, 0.000000 + 0.052876, 0.998601, 0.000000, 0.000000 + 0.052353, 0.998629, 0.000000, 0.000000 + 0.051830, 0.998656, 0.000000, 0.000000 + 0.051307, 0.998683, 0.000000, 0.000000 + 0.050784, 0.998710, 0.000000, 0.000000 + 0.050261, 0.998736, 0.000000, 0.000000 + 0.049738, 0.998762, 0.000000, 0.000000 + 0.049215, 0.998788, 0.000000, 0.000000 + 0.048692, 0.998814, 0.000000, 0.000000 + 0.048169, 0.998839, 0.000000, 0.000000 + 0.047645, 0.998864, 0.000000, 0.000000 + 0.047122, 0.998889, 0.000000, 0.000000 + 0.046599, 0.998914, 0.000000, 0.000000 + 0.046076, 0.998938, 0.000000, 0.000000 + 0.045553, 0.998962, 0.000000, 0.000000 + 0.045029, 0.998986, 0.000000, 0.000000 + 0.044506, 0.999009, 0.000000, 0.000000 + 0.043983, 0.999032, 0.000000, 0.000000 + 0.043459, 0.999055, 0.000000, 0.000000 + 0.042936, 0.999078, 0.000000, 0.000000 + 0.042413, 0.999100, 0.000000, 0.000000 + 0.041890, 0.999122, 0.000000, 0.000000 + 0.041366, 0.999144, 0.000000, 0.000000 + 0.040843, 0.999166, 0.000000, 0.000000 + 0.040320, 0.999187, 0.000000, 0.000000 + 0.039796, 0.999208, 0.000000, 0.000000 + 0.039273, 0.999229, 0.000000, 0.000000 + 0.038750, 0.999249, 0.000000, 0.000000 + 0.038226, 0.999269, 0.000000, 0.000000 + 0.037703, 0.999289, 0.000000, 0.000000 + 0.037179, 0.999309, 0.000000, 0.000000 + 0.036656, 0.999328, 0.000000, 0.000000 + 0.036132, 0.999347, 0.000000, 0.000000 + 0.035609, 0.999366, 0.000000, 0.000000 + 0.035086, 0.999384, 0.000000, 0.000000 + 0.034562, 0.999403, 0.000000, 0.000000 + 0.034039, 0.999421, 0.000000, 0.000000 + 0.033515, 0.999438, 0.000000, 0.000000 + 0.032992, 0.999456, 0.000000, 0.000000 + 0.032468, 0.999473, 0.000000, 0.000000 + 0.031945, 0.999490, 0.000000, 0.000000 + 0.031421, 0.999506, 0.000000, 0.000000 + 0.030898, 0.999523, 0.000000, 0.000000 + 0.030374, 0.999539, 0.000000, 0.000000 + 0.029851, 0.999554, 0.000000, 0.000000 + 0.029327, 0.999570, 0.000000, 0.000000 + 0.028804, 0.999585, 0.000000, 0.000000 + 0.028280, 0.999600, 0.000000, 0.000000 + 0.027756, 0.999615, 0.000000, 0.000000 + 0.027233, 0.999629, 0.000000, 0.000000 + 0.026709, 0.999643, 0.000000, 0.000000 + 0.026186, 0.999657, 0.000000, 0.000000 + 0.025662, 0.999671, 0.000000, 0.000000 + 0.025138, 0.999684, 0.000000, 0.000000 + 0.024615, 0.999697, 0.000000, 0.000000 + 0.024091, 0.999710, 0.000000, 0.000000 + 0.023568, 0.999722, 0.000000, 0.000000 + 0.023044, 0.999734, 0.000000, 0.000000 + 0.022520, 0.999746, 0.000000, 0.000000 + 0.021997, 0.999758, 0.000000, 0.000000 + 0.021473, 0.999769, 0.000000, 0.000000 + 0.020949, 0.999781, 0.000000, 0.000000 + 0.020426, 0.999791, 0.000000, 0.000000 + 0.019902, 0.999802, 0.000000, 0.000000 + 0.019378, 0.999812, 0.000000, 0.000000 + 0.018855, 0.999822, 0.000000, 0.000000 + 0.018331, 0.999832, 0.000000, 0.000000 + 0.017807, 0.999841, 0.000000, 0.000000 + 0.017284, 0.999851, 0.000000, 0.000000 + 0.016760, 0.999860, 0.000000, 0.000000 + 0.016236, 0.999868, 0.000000, 0.000000 + 0.015713, 0.999877, 0.000000, 0.000000 + 0.015189, 0.999885, 0.000000, 0.000000 + 0.014665, 0.999892, 0.000000, 0.000000 + 0.014141, 0.999900, 0.000000, 0.000000 + 0.013618, 0.999907, 0.000000, 0.000000 + 0.013094, 0.999914, 0.000000, 0.000000 + 0.012570, 0.999921, 0.000000, 0.000000 + 0.012046, 0.999927, 0.000000, 0.000000 + 0.011523, 0.999934, 0.000000, 0.000000 + 0.010999, 0.999940, 0.000000, 0.000000 + 0.010475, 0.999945, 0.000000, 0.000000 + 0.009952, 0.999950, 0.000000, 0.000000 + 0.009428, 0.999956, 0.000000, 0.000000 + 0.008904, 0.999960, 0.000000, 0.000000 + 0.008380, 0.999965, 0.000000, 0.000000 + 0.007857, 0.999969, 0.000000, 0.000000 + 0.007333, 0.999973, 0.000000, 0.000000 + 0.006809, 0.999977, 0.000000, 0.000000 + 0.006285, 0.999980, 0.000000, 0.000000 + 0.005761, 0.999983, 0.000000, 0.000000 + 0.005238, 0.999986, 0.000000, 0.000000 + 0.004714, 0.999989, 0.000000, 0.000000 + 0.004190, 0.999991, 0.000000, 0.000000 + 0.003666, 0.999993, 0.000000, 0.000000 + 0.003143, 0.999995, 0.000000, 0.000000 + 0.002619, 0.999997, 0.000000, 0.000000 + 0.002095, 0.999998, 0.000000, 0.000000 + 0.001571, 0.999999, 0.000000, 0.000000 + 0.001048, 0.999999, 0.000000, 0.000000 + 0.000524, 1.000000, 0.000000, 0.000000 + 0.000000, 1.000000, 0.000000, 0.000000 diff --git a/scripts/trajectories/half-circle-over-top-15s.csv b/scripts/trajectories/half-circle-over-top-15s.csv index 850b3feed6..1d763950f5 100644 --- a/scripts/trajectories/half-circle-over-top-15s.csv +++ b/scripts/trajectories/half-circle-over-top-15s.csv @@ -1,3000 +1,3000 @@ -0, 1.000000, 0.000000, 0.000000, 0.000000 -1, 1.000000, 0.000524, 0.000000, 0.000000 -2, 0.999999, 0.001048, 0.000000, 0.000000 -3, 0.999999, 0.001571, 0.000000, 0.000000 -4, 0.999998, 0.002095, 0.000000, 0.000000 -5, 0.999997, 0.002619, 0.000000, 0.000000 -6, 0.999995, 0.003143, 0.000000, 0.000000 -7, 0.999993, 0.003666, 0.000000, 0.000000 -8, 0.999991, 0.004190, 0.000000, 0.000000 -9, 0.999989, 0.004714, 0.000000, 0.000000 -10, 0.999986, 0.005238, 0.000000, 0.000000 -11, 0.999983, 0.005761, 0.000000, 0.000000 -12, 0.999980, 0.006285, 0.000000, 0.000000 -13, 0.999977, 0.006809, 0.000000, 0.000000 -14, 0.999973, 0.007333, 0.000000, 0.000000 -15, 0.999969, 0.007857, 0.000000, 0.000000 -16, 0.999965, 0.008380, 0.000000, 0.000000 -17, 0.999960, 0.008904, 0.000000, 0.000000 -18, 0.999956, 0.009428, 0.000000, 0.000000 -19, 0.999950, 0.009952, 0.000000, 0.000000 -20, 0.999945, 0.010475, 0.000000, 0.000000 -21, 0.999940, 0.010999, 0.000000, 0.000000 -22, 0.999934, 0.011523, 0.000000, 0.000000 -23, 0.999927, 0.012046, 0.000000, 0.000000 -24, 0.999921, 0.012570, 0.000000, 0.000000 -25, 0.999914, 0.013094, 0.000000, 0.000000 -26, 0.999907, 0.013618, 0.000000, 0.000000 -27, 0.999900, 0.014141, 0.000000, 0.000000 -28, 0.999892, 0.014665, 0.000000, 0.000000 -29, 0.999885, 0.015189, 0.000000, 0.000000 -30, 0.999877, 0.015713, 0.000000, 0.000000 -31, 0.999868, 0.016236, 0.000000, 0.000000 -32, 0.999860, 0.016760, 0.000000, 0.000000 -33, 0.999851, 0.017284, 0.000000, 0.000000 -34, 0.999841, 0.017807, 0.000000, 0.000000 -35, 0.999832, 0.018331, 0.000000, 0.000000 -36, 0.999822, 0.018855, 0.000000, 0.000000 -37, 0.999812, 0.019378, 0.000000, 0.000000 -38, 0.999802, 0.019902, 0.000000, 0.000000 -39, 0.999791, 0.020426, 0.000000, 0.000000 -40, 0.999781, 0.020949, 0.000000, 0.000000 -41, 0.999769, 0.021473, 0.000000, 0.000000 -42, 0.999758, 0.021997, 0.000000, 0.000000 -43, 0.999746, 0.022520, 0.000000, 0.000000 -44, 0.999734, 0.023044, 0.000000, 0.000000 -45, 0.999722, 0.023568, 0.000000, 0.000000 -46, 0.999710, 0.024091, 0.000000, 0.000000 -47, 0.999697, 0.024615, 0.000000, 0.000000 -48, 0.999684, 0.025138, 0.000000, 0.000000 -49, 0.999671, 0.025662, 0.000000, 0.000000 -50, 0.999657, 0.026186, 0.000000, 0.000000 -51, 0.999643, 0.026709, 0.000000, 0.000000 -52, 0.999629, 0.027233, 0.000000, 0.000000 -53, 0.999615, 0.027756, 0.000000, 0.000000 -54, 0.999600, 0.028280, 0.000000, 0.000000 -55, 0.999585, 0.028804, 0.000000, 0.000000 -56, 0.999570, 0.029327, 0.000000, 0.000000 -57, 0.999554, 0.029851, 0.000000, 0.000000 -58, 0.999539, 0.030374, 0.000000, 0.000000 -59, 0.999523, 0.030898, 0.000000, 0.000000 -60, 0.999506, 0.031421, 0.000000, 0.000000 -61, 0.999490, 0.031945, 0.000000, 0.000000 -62, 0.999473, 0.032468, 0.000000, 0.000000 -63, 0.999456, 0.032992, 0.000000, 0.000000 -64, 0.999438, 0.033515, 0.000000, 0.000000 -65, 0.999421, 0.034039, 0.000000, 0.000000 -66, 0.999403, 0.034562, 0.000000, 0.000000 -67, 0.999384, 0.035086, 0.000000, 0.000000 -68, 0.999366, 0.035609, 0.000000, 0.000000 -69, 0.999347, 0.036132, 0.000000, 0.000000 -70, 0.999328, 0.036656, 0.000000, 0.000000 -71, 0.999309, 0.037179, 0.000000, 0.000000 -72, 0.999289, 0.037703, 0.000000, 0.000000 -73, 0.999269, 0.038226, 0.000000, 0.000000 -74, 0.999249, 0.038750, 0.000000, 0.000000 -75, 0.999229, 0.039273, 0.000000, 0.000000 -76, 0.999208, 0.039796, 0.000000, 0.000000 -77, 0.999187, 0.040320, 0.000000, 0.000000 -78, 0.999166, 0.040843, 0.000000, 0.000000 -79, 0.999144, 0.041366, 0.000000, 0.000000 -80, 0.999122, 0.041890, 0.000000, 0.000000 -81, 0.999100, 0.042413, 0.000000, 0.000000 -82, 0.999078, 0.042936, 0.000000, 0.000000 -83, 0.999055, 0.043459, 0.000000, 0.000000 -84, 0.999032, 0.043983, 0.000000, 0.000000 -85, 0.999009, 0.044506, 0.000000, 0.000000 -86, 0.998986, 0.045029, 0.000000, 0.000000 -87, 0.998962, 0.045553, 0.000000, 0.000000 -88, 0.998938, 0.046076, 0.000000, 0.000000 -89, 0.998914, 0.046599, 0.000000, 0.000000 -90, 0.998889, 0.047122, 0.000000, 0.000000 -91, 0.998864, 0.047645, 0.000000, 0.000000 -92, 0.998839, 0.048169, 0.000000, 0.000000 -93, 0.998814, 0.048692, 0.000000, 0.000000 -94, 0.998788, 0.049215, 0.000000, 0.000000 -95, 0.998762, 0.049738, 0.000000, 0.000000 -96, 0.998736, 0.050261, 0.000000, 0.000000 -97, 0.998710, 0.050784, 0.000000, 0.000000 -98, 0.998683, 0.051307, 0.000000, 0.000000 -99, 0.998656, 0.051830, 0.000000, 0.000000 -100, 0.998629, 0.052353, 0.000000, 0.000000 -101, 0.998601, 0.052876, 0.000000, 0.000000 -102, 0.998573, 0.053399, 0.000000, 0.000000 -103, 0.998545, 0.053922, 0.000000, 0.000000 -104, 0.998517, 0.054445, 0.000000, 0.000000 -105, 0.998488, 0.054968, 0.000000, 0.000000 -106, 0.998459, 0.055491, 0.000000, 0.000000 -107, 0.998430, 0.056014, 0.000000, 0.000000 -108, 0.998400, 0.056537, 0.000000, 0.000000 -109, 0.998371, 0.057060, 0.000000, 0.000000 -110, 0.998341, 0.057583, 0.000000, 0.000000 -111, 0.998310, 0.058106, 0.000000, 0.000000 -112, 0.998280, 0.058629, 0.000000, 0.000000 -113, 0.998249, 0.059152, 0.000000, 0.000000 -114, 0.998218, 0.059675, 0.000000, 0.000000 -115, 0.998186, 0.060198, 0.000000, 0.000000 -116, 0.998155, 0.060720, 0.000000, 0.000000 -117, 0.998123, 0.061243, 0.000000, 0.000000 -118, 0.998091, 0.061766, 0.000000, 0.000000 -119, 0.998058, 0.062289, 0.000000, 0.000000 -120, 0.998025, 0.062811, 0.000000, 0.000000 -121, 0.997992, 0.063334, 0.000000, 0.000000 -122, 0.997959, 0.063857, 0.000000, 0.000000 -123, 0.997925, 0.064380, 0.000000, 0.000000 -124, 0.997892, 0.064902, 0.000000, 0.000000 -125, 0.997857, 0.065425, 0.000000, 0.000000 -126, 0.997823, 0.065948, 0.000000, 0.000000 -127, 0.997788, 0.066470, 0.000000, 0.000000 -128, 0.997753, 0.066993, 0.000000, 0.000000 -129, 0.997718, 0.067515, 0.000000, 0.000000 -130, 0.997683, 0.068038, 0.000000, 0.000000 -131, 0.997647, 0.068560, 0.000000, 0.000000 -132, 0.997611, 0.069083, 0.000000, 0.000000 -133, 0.997575, 0.069606, 0.000000, 0.000000 -134, 0.997538, 0.070128, 0.000000, 0.000000 -135, 0.997501, 0.070650, 0.000000, 0.000000 -136, 0.997464, 0.071173, 0.000000, 0.000000 -137, 0.997427, 0.071695, 0.000000, 0.000000 -138, 0.997389, 0.072218, 0.000000, 0.000000 -139, 0.997351, 0.072740, 0.000000, 0.000000 -140, 0.997313, 0.073263, 0.000000, 0.000000 -141, 0.997274, 0.073785, 0.000000, 0.000000 -142, 0.997235, 0.074307, 0.000000, 0.000000 -143, 0.997196, 0.074830, 0.000000, 0.000000 -144, 0.997157, 0.075352, 0.000000, 0.000000 -145, 0.997117, 0.075874, 0.000000, 0.000000 -146, 0.997078, 0.076396, 0.000000, 0.000000 -147, 0.997037, 0.076919, 0.000000, 0.000000 -148, 0.996997, 0.077441, 0.000000, 0.000000 -149, 0.996956, 0.077963, 0.000000, 0.000000 -150, 0.996915, 0.078485, 0.000000, 0.000000 -151, 0.996874, 0.079007, 0.000000, 0.000000 -152, 0.996833, 0.079529, 0.000000, 0.000000 -153, 0.996791, 0.080052, 0.000000, 0.000000 -154, 0.996749, 0.080574, 0.000000, 0.000000 -155, 0.996706, 0.081096, 0.000000, 0.000000 -156, 0.996664, 0.081618, 0.000000, 0.000000 -157, 0.996621, 0.082140, 0.000000, 0.000000 -158, 0.996578, 0.082662, 0.000000, 0.000000 -159, 0.996534, 0.083184, 0.000000, 0.000000 -160, 0.996491, 0.083706, 0.000000, 0.000000 -161, 0.996447, 0.084228, 0.000000, 0.000000 -162, 0.996402, 0.084750, 0.000000, 0.000000 -163, 0.996358, 0.085271, 0.000000, 0.000000 -164, 0.996313, 0.085793, 0.000000, 0.000000 -165, 0.996268, 0.086315, 0.000000, 0.000000 -166, 0.996223, 0.086837, 0.000000, 0.000000 -167, 0.996177, 0.087359, 0.000000, 0.000000 -168, 0.996131, 0.087880, 0.000000, 0.000000 -169, 0.996085, 0.088402, 0.000000, 0.000000 -170, 0.996038, 0.088924, 0.000000, 0.000000 -171, 0.995992, 0.089446, 0.000000, 0.000000 -172, 0.995945, 0.089967, 0.000000, 0.000000 -173, 0.995897, 0.090489, 0.000000, 0.000000 -174, 0.995850, 0.091010, 0.000000, 0.000000 -175, 0.995802, 0.091532, 0.000000, 0.000000 -176, 0.995754, 0.092054, 0.000000, 0.000000 -177, 0.995706, 0.092575, 0.000000, 0.000000 -178, 0.995657, 0.093097, 0.000000, 0.000000 -179, 0.995608, 0.093618, 0.000000, 0.000000 -180, 0.995559, 0.094140, 0.000000, 0.000000 -181, 0.995510, 0.094661, 0.000000, 0.000000 -182, 0.995460, 0.095182, 0.000000, 0.000000 -183, 0.995410, 0.095704, 0.000000, 0.000000 -184, 0.995360, 0.096225, 0.000000, 0.000000 -185, 0.995309, 0.096747, 0.000000, 0.000000 -186, 0.995258, 0.097268, 0.000000, 0.000000 -187, 0.995207, 0.097789, 0.000000, 0.000000 -188, 0.995156, 0.098310, 0.000000, 0.000000 -189, 0.995104, 0.098832, 0.000000, 0.000000 -190, 0.995052, 0.099353, 0.000000, 0.000000 -191, 0.995000, 0.099874, 0.000000, 0.000000 -192, 0.994948, 0.100395, 0.000000, 0.000000 -193, 0.994895, 0.100916, 0.000000, 0.000000 -194, 0.994842, 0.101437, 0.000000, 0.000000 -195, 0.994789, 0.101958, 0.000000, 0.000000 -196, 0.994735, 0.102479, 0.000000, 0.000000 -197, 0.994681, 0.103000, 0.000000, 0.000000 -198, 0.994627, 0.103521, 0.000000, 0.000000 -199, 0.994573, 0.104042, 0.000000, 0.000000 -200, 0.994518, 0.104563, 0.000000, 0.000000 -201, 0.994463, 0.105084, 0.000000, 0.000000 -202, 0.994408, 0.105605, 0.000000, 0.000000 -203, 0.994353, 0.106126, 0.000000, 0.000000 -204, 0.994297, 0.106647, 0.000000, 0.000000 -205, 0.994241, 0.107167, 0.000000, 0.000000 -206, 0.994185, 0.107688, 0.000000, 0.000000 -207, 0.994128, 0.108209, 0.000000, 0.000000 -208, 0.994071, 0.108729, 0.000000, 0.000000 -209, 0.994014, 0.109250, 0.000000, 0.000000 -210, 0.993957, 0.109771, 0.000000, 0.000000 -211, 0.993899, 0.110291, 0.000000, 0.000000 -212, 0.993841, 0.110812, 0.000000, 0.000000 -213, 0.993783, 0.111332, 0.000000, 0.000000 -214, 0.993725, 0.111853, 0.000000, 0.000000 -215, 0.993666, 0.112373, 0.000000, 0.000000 -216, 0.993607, 0.112894, 0.000000, 0.000000 -217, 0.993548, 0.113414, 0.000000, 0.000000 -218, 0.993488, 0.113935, 0.000000, 0.000000 -219, 0.993428, 0.114455, 0.000000, 0.000000 -220, 0.993368, 0.114975, 0.000000, 0.000000 -221, 0.993308, 0.115496, 0.000000, 0.000000 -222, 0.993247, 0.116016, 0.000000, 0.000000 -223, 0.993186, 0.116536, 0.000000, 0.000000 -224, 0.993125, 0.117056, 0.000000, 0.000000 -225, 0.993064, 0.117576, 0.000000, 0.000000 -226, 0.993002, 0.118097, 0.000000, 0.000000 -227, 0.992940, 0.118617, 0.000000, 0.000000 -228, 0.992878, 0.119137, 0.000000, 0.000000 -229, 0.992815, 0.119657, 0.000000, 0.000000 -230, 0.992753, 0.120177, 0.000000, 0.000000 -231, 0.992689, 0.120697, 0.000000, 0.000000 -232, 0.992626, 0.121217, 0.000000, 0.000000 -233, 0.992562, 0.121736, 0.000000, 0.000000 -234, 0.992499, 0.122256, 0.000000, 0.000000 -235, 0.992434, 0.122776, 0.000000, 0.000000 -236, 0.992370, 0.123296, 0.000000, 0.000000 -237, 0.992305, 0.123816, 0.000000, 0.000000 -238, 0.992240, 0.124335, 0.000000, 0.000000 -239, 0.992175, 0.124855, 0.000000, 0.000000 -240, 0.992109, 0.125375, 0.000000, 0.000000 -241, 0.992044, 0.125894, 0.000000, 0.000000 -242, 0.991978, 0.126414, 0.000000, 0.000000 -243, 0.991911, 0.126934, 0.000000, 0.000000 -244, 0.991845, 0.127453, 0.000000, 0.000000 -245, 0.991778, 0.127973, 0.000000, 0.000000 -246, 0.991711, 0.128492, 0.000000, 0.000000 -247, 0.991643, 0.129011, 0.000000, 0.000000 -248, 0.991575, 0.129531, 0.000000, 0.000000 -249, 0.991507, 0.130050, 0.000000, 0.000000 -250, 0.991439, 0.130569, 0.000000, 0.000000 -251, 0.991371, 0.131089, 0.000000, 0.000000 -252, 0.991302, 0.131608, 0.000000, 0.000000 -253, 0.991233, 0.132127, 0.000000, 0.000000 -254, 0.991163, 0.132646, 0.000000, 0.000000 -255, 0.991094, 0.133165, 0.000000, 0.000000 -256, 0.991024, 0.133685, 0.000000, 0.000000 -257, 0.990954, 0.134204, 0.000000, 0.000000 -258, 0.990883, 0.134723, 0.000000, 0.000000 -259, 0.990813, 0.135242, 0.000000, 0.000000 -260, 0.990742, 0.135761, 0.000000, 0.000000 -261, 0.990670, 0.136279, 0.000000, 0.000000 -262, 0.990599, 0.136798, 0.000000, 0.000000 -263, 0.990527, 0.137317, 0.000000, 0.000000 -264, 0.990455, 0.137836, 0.000000, 0.000000 -265, 0.990383, 0.138355, 0.000000, 0.000000 -266, 0.990310, 0.138873, 0.000000, 0.000000 -267, 0.990237, 0.139392, 0.000000, 0.000000 -268, 0.990164, 0.139911, 0.000000, 0.000000 -269, 0.990091, 0.140429, 0.000000, 0.000000 -270, 0.990017, 0.140948, 0.000000, 0.000000 -271, 0.989943, 0.141466, 0.000000, 0.000000 -272, 0.989869, 0.141985, 0.000000, 0.000000 -273, 0.989794, 0.142503, 0.000000, 0.000000 -274, 0.989720, 0.143022, 0.000000, 0.000000 -275, 0.989644, 0.143540, 0.000000, 0.000000 -276, 0.989569, 0.144058, 0.000000, 0.000000 -277, 0.989494, 0.144577, 0.000000, 0.000000 -278, 0.989418, 0.145095, 0.000000, 0.000000 -279, 0.989342, 0.145613, 0.000000, 0.000000 -280, 0.989265, 0.146131, 0.000000, 0.000000 -281, 0.989189, 0.146650, 0.000000, 0.000000 -282, 0.989112, 0.147168, 0.000000, 0.000000 -283, 0.989034, 0.147686, 0.000000, 0.000000 -284, 0.988957, 0.148204, 0.000000, 0.000000 -285, 0.988879, 0.148722, 0.000000, 0.000000 -286, 0.988801, 0.149240, 0.000000, 0.000000 -287, 0.988723, 0.149757, 0.000000, 0.000000 -288, 0.988644, 0.150275, 0.000000, 0.000000 -289, 0.988565, 0.150793, 0.000000, 0.000000 -290, 0.988486, 0.151311, 0.000000, 0.000000 -291, 0.988407, 0.151829, 0.000000, 0.000000 -292, 0.988327, 0.152346, 0.000000, 0.000000 -293, 0.988247, 0.152864, 0.000000, 0.000000 -294, 0.988167, 0.153382, 0.000000, 0.000000 -295, 0.988087, 0.153899, 0.000000, 0.000000 -296, 0.988006, 0.154417, 0.000000, 0.000000 -297, 0.987925, 0.154934, 0.000000, 0.000000 -298, 0.987844, 0.155451, 0.000000, 0.000000 -299, 0.987762, 0.155969, 0.000000, 0.000000 -300, 0.987680, 0.156486, 0.000000, 0.000000 -301, 0.987598, 0.157003, 0.000000, 0.000000 -302, 0.987516, 0.157521, 0.000000, 0.000000 -303, 0.987433, 0.158038, 0.000000, 0.000000 -304, 0.987350, 0.158555, 0.000000, 0.000000 -305, 0.987267, 0.159072, 0.000000, 0.000000 -306, 0.987183, 0.159589, 0.000000, 0.000000 -307, 0.987100, 0.160106, 0.000000, 0.000000 -308, 0.987016, 0.160623, 0.000000, 0.000000 -309, 0.986932, 0.161140, 0.000000, 0.000000 -310, 0.986847, 0.161657, 0.000000, 0.000000 -311, 0.986762, 0.162174, 0.000000, 0.000000 -312, 0.986677, 0.162691, 0.000000, 0.000000 -313, 0.986592, 0.163208, 0.000000, 0.000000 -314, 0.986506, 0.163724, 0.000000, 0.000000 -315, 0.986420, 0.164241, 0.000000, 0.000000 -316, 0.986334, 0.164758, 0.000000, 0.000000 -317, 0.986248, 0.165274, 0.000000, 0.000000 -318, 0.986161, 0.165791, 0.000000, 0.000000 -319, 0.986074, 0.166307, 0.000000, 0.000000 -320, 0.985987, 0.166824, 0.000000, 0.000000 -321, 0.985899, 0.167340, 0.000000, 0.000000 -322, 0.985811, 0.167857, 0.000000, 0.000000 -323, 0.985723, 0.168373, 0.000000, 0.000000 -324, 0.985635, 0.168889, 0.000000, 0.000000 -325, 0.985546, 0.169405, 0.000000, 0.000000 -326, 0.985458, 0.169922, 0.000000, 0.000000 -327, 0.985368, 0.170438, 0.000000, 0.000000 -328, 0.985279, 0.170954, 0.000000, 0.000000 -329, 0.985189, 0.171470, 0.000000, 0.000000 -330, 0.985099, 0.171986, 0.000000, 0.000000 -331, 0.985009, 0.172502, 0.000000, 0.000000 -332, 0.984919, 0.173018, 0.000000, 0.000000 -333, 0.984828, 0.173534, 0.000000, 0.000000 -334, 0.984737, 0.174049, 0.000000, 0.000000 -335, 0.984646, 0.174565, 0.000000, 0.000000 -336, 0.984554, 0.175081, 0.000000, 0.000000 -337, 0.984462, 0.175596, 0.000000, 0.000000 -338, 0.984370, 0.176112, 0.000000, 0.000000 -339, 0.984278, 0.176628, 0.000000, 0.000000 -340, 0.984185, 0.177143, 0.000000, 0.000000 -341, 0.984092, 0.177659, 0.000000, 0.000000 -342, 0.983999, 0.178174, 0.000000, 0.000000 -343, 0.983906, 0.178689, 0.000000, 0.000000 -344, 0.983812, 0.179205, 0.000000, 0.000000 -345, 0.983718, 0.179720, 0.000000, 0.000000 -346, 0.983624, 0.180235, 0.000000, 0.000000 -347, 0.983529, 0.180750, 0.000000, 0.000000 -348, 0.983434, 0.181266, 0.000000, 0.000000 -349, 0.983339, 0.181781, 0.000000, 0.000000 -350, 0.983244, 0.182296, 0.000000, 0.000000 -351, 0.983148, 0.182811, 0.000000, 0.000000 -352, 0.983052, 0.183326, 0.000000, 0.000000 -353, 0.982956, 0.183840, 0.000000, 0.000000 -354, 0.982860, 0.184355, 0.000000, 0.000000 -355, 0.982763, 0.184870, 0.000000, 0.000000 -356, 0.982666, 0.185385, 0.000000, 0.000000 -357, 0.982569, 0.185899, 0.000000, 0.000000 -358, 0.982471, 0.186414, 0.000000, 0.000000 -359, 0.982374, 0.186929, 0.000000, 0.000000 -360, 0.982275, 0.187443, 0.000000, 0.000000 -361, 0.982177, 0.187958, 0.000000, 0.000000 -362, 0.982079, 0.188472, 0.000000, 0.000000 -363, 0.981980, 0.188986, 0.000000, 0.000000 -364, 0.981881, 0.189501, 0.000000, 0.000000 -365, 0.981781, 0.190015, 0.000000, 0.000000 -366, 0.981682, 0.190529, 0.000000, 0.000000 -367, 0.981582, 0.191043, 0.000000, 0.000000 -368, 0.981481, 0.191557, 0.000000, 0.000000 -369, 0.981381, 0.192071, 0.000000, 0.000000 -370, 0.981280, 0.192585, 0.000000, 0.000000 -371, 0.981179, 0.193099, 0.000000, 0.000000 -372, 0.981078, 0.193613, 0.000000, 0.000000 -373, 0.980976, 0.194127, 0.000000, 0.000000 -374, 0.980875, 0.194641, 0.000000, 0.000000 -375, 0.980773, 0.195155, 0.000000, 0.000000 -376, 0.980670, 0.195668, 0.000000, 0.000000 -377, 0.980568, 0.196182, 0.000000, 0.000000 -378, 0.980465, 0.196695, 0.000000, 0.000000 -379, 0.980361, 0.197209, 0.000000, 0.000000 -380, 0.980258, 0.197722, 0.000000, 0.000000 -381, 0.980154, 0.198236, 0.000000, 0.000000 -382, 0.980050, 0.198749, 0.000000, 0.000000 -383, 0.979946, 0.199262, 0.000000, 0.000000 -384, 0.979842, 0.199776, 0.000000, 0.000000 -385, 0.979737, 0.200289, 0.000000, 0.000000 -386, 0.979632, 0.200802, 0.000000, 0.000000 -387, 0.979527, 0.201315, 0.000000, 0.000000 -388, 0.979421, 0.201828, 0.000000, 0.000000 -389, 0.979315, 0.202341, 0.000000, 0.000000 -390, 0.979209, 0.202854, 0.000000, 0.000000 -391, 0.979103, 0.203367, 0.000000, 0.000000 -392, 0.978996, 0.203880, 0.000000, 0.000000 -393, 0.978889, 0.204392, 0.000000, 0.000000 -394, 0.978782, 0.204905, 0.000000, 0.000000 -395, 0.978674, 0.205418, 0.000000, 0.000000 -396, 0.978567, 0.205930, 0.000000, 0.000000 -397, 0.978459, 0.206443, 0.000000, 0.000000 -398, 0.978350, 0.206955, 0.000000, 0.000000 -399, 0.978242, 0.207468, 0.000000, 0.000000 -400, 0.978133, 0.207980, 0.000000, 0.000000 -401, 0.978024, 0.208492, 0.000000, 0.000000 -402, 0.977915, 0.209005, 0.000000, 0.000000 -403, 0.977805, 0.209517, 0.000000, 0.000000 -404, 0.977695, 0.210029, 0.000000, 0.000000 -405, 0.977585, 0.210541, 0.000000, 0.000000 -406, 0.977475, 0.211053, 0.000000, 0.000000 -407, 0.977364, 0.211565, 0.000000, 0.000000 -408, 0.977253, 0.212077, 0.000000, 0.000000 -409, 0.977142, 0.212589, 0.000000, 0.000000 -410, 0.977030, 0.213100, 0.000000, 0.000000 -411, 0.976919, 0.213612, 0.000000, 0.000000 -412, 0.976807, 0.214124, 0.000000, 0.000000 -413, 0.976694, 0.214635, 0.000000, 0.000000 -414, 0.976582, 0.215147, 0.000000, 0.000000 -415, 0.976469, 0.215658, 0.000000, 0.000000 -416, 0.976356, 0.216170, 0.000000, 0.000000 -417, 0.976242, 0.216681, 0.000000, 0.000000 -418, 0.976129, 0.217192, 0.000000, 0.000000 -419, 0.976015, 0.217704, 0.000000, 0.000000 -420, 0.975901, 0.218215, 0.000000, 0.000000 -421, 0.975786, 0.218726, 0.000000, 0.000000 -422, 0.975672, 0.219237, 0.000000, 0.000000 -423, 0.975557, 0.219748, 0.000000, 0.000000 -424, 0.975441, 0.220259, 0.000000, 0.000000 -425, 0.975326, 0.220770, 0.000000, 0.000000 -426, 0.975210, 0.221281, 0.000000, 0.000000 -427, 0.975094, 0.221791, 0.000000, 0.000000 -428, 0.974978, 0.222302, 0.000000, 0.000000 -429, 0.974861, 0.222813, 0.000000, 0.000000 -430, 0.974744, 0.223323, 0.000000, 0.000000 -431, 0.974627, 0.223834, 0.000000, 0.000000 -432, 0.974510, 0.224344, 0.000000, 0.000000 -433, 0.974392, 0.224855, 0.000000, 0.000000 -434, 0.974274, 0.225365, 0.000000, 0.000000 -435, 0.974156, 0.225875, 0.000000, 0.000000 -436, 0.974038, 0.226385, 0.000000, 0.000000 -437, 0.973919, 0.226896, 0.000000, 0.000000 -438, 0.973800, 0.227406, 0.000000, 0.000000 -439, 0.973681, 0.227916, 0.000000, 0.000000 -440, 0.973561, 0.228426, 0.000000, 0.000000 -441, 0.973442, 0.228936, 0.000000, 0.000000 -442, 0.973322, 0.229445, 0.000000, 0.000000 -443, 0.973201, 0.229955, 0.000000, 0.000000 -444, 0.973081, 0.230465, 0.000000, 0.000000 -445, 0.972960, 0.230975, 0.000000, 0.000000 -446, 0.972839, 0.231484, 0.000000, 0.000000 -447, 0.972717, 0.231994, 0.000000, 0.000000 -448, 0.972596, 0.232503, 0.000000, 0.000000 -449, 0.972474, 0.233012, 0.000000, 0.000000 -450, 0.972352, 0.233522, 0.000000, 0.000000 -451, 0.972229, 0.234031, 0.000000, 0.000000 -452, 0.972106, 0.234540, 0.000000, 0.000000 -453, 0.971983, 0.235049, 0.000000, 0.000000 -454, 0.971860, 0.235558, 0.000000, 0.000000 -455, 0.971737, 0.236067, 0.000000, 0.000000 -456, 0.971613, 0.236576, 0.000000, 0.000000 -457, 0.971489, 0.237085, 0.000000, 0.000000 -458, 0.971365, 0.237594, 0.000000, 0.000000 -459, 0.971240, 0.238103, 0.000000, 0.000000 -460, 0.971115, 0.238611, 0.000000, 0.000000 -461, 0.970990, 0.239120, 0.000000, 0.000000 -462, 0.970865, 0.239629, 0.000000, 0.000000 -463, 0.970739, 0.240137, 0.000000, 0.000000 -464, 0.970613, 0.240646, 0.000000, 0.000000 -465, 0.970487, 0.241154, 0.000000, 0.000000 -466, 0.970360, 0.241662, 0.000000, 0.000000 -467, 0.970234, 0.242170, 0.000000, 0.000000 -468, 0.970107, 0.242678, 0.000000, 0.000000 -469, 0.969980, 0.243187, 0.000000, 0.000000 -470, 0.969852, 0.243695, 0.000000, 0.000000 -471, 0.969724, 0.244203, 0.000000, 0.000000 -472, 0.969596, 0.244710, 0.000000, 0.000000 -473, 0.969468, 0.245218, 0.000000, 0.000000 -474, 0.969339, 0.245726, 0.000000, 0.000000 -475, 0.969210, 0.246234, 0.000000, 0.000000 -476, 0.969081, 0.246741, 0.000000, 0.000000 -477, 0.968952, 0.247249, 0.000000, 0.000000 -478, 0.968822, 0.247756, 0.000000, 0.000000 -479, 0.968692, 0.248264, 0.000000, 0.000000 -480, 0.968562, 0.248771, 0.000000, 0.000000 -481, 0.968432, 0.249278, 0.000000, 0.000000 -482, 0.968301, 0.249786, 0.000000, 0.000000 -483, 0.968170, 0.250293, 0.000000, 0.000000 -484, 0.968039, 0.250800, 0.000000, 0.000000 -485, 0.967907, 0.251307, 0.000000, 0.000000 -486, 0.967776, 0.251814, 0.000000, 0.000000 -487, 0.967644, 0.252321, 0.000000, 0.000000 -488, 0.967511, 0.252827, 0.000000, 0.000000 -489, 0.967379, 0.253334, 0.000000, 0.000000 -490, 0.967246, 0.253841, 0.000000, 0.000000 -491, 0.967113, 0.254347, 0.000000, 0.000000 -492, 0.966980, 0.254854, 0.000000, 0.000000 -493, 0.966846, 0.255360, 0.000000, 0.000000 -494, 0.966712, 0.255867, 0.000000, 0.000000 -495, 0.966578, 0.256373, 0.000000, 0.000000 -496, 0.966444, 0.256879, 0.000000, 0.000000 -497, 0.966309, 0.257385, 0.000000, 0.000000 -498, 0.966174, 0.257891, 0.000000, 0.000000 -499, 0.966039, 0.258397, 0.000000, 0.000000 -500, 0.965903, 0.258903, 0.000000, 0.000000 -501, 0.965767, 0.259409, 0.000000, 0.000000 -502, 0.965631, 0.259915, 0.000000, 0.000000 -503, 0.965495, 0.260421, 0.000000, 0.000000 -504, 0.965359, 0.260926, 0.000000, 0.000000 -505, 0.965222, 0.261432, 0.000000, 0.000000 -506, 0.965085, 0.261938, 0.000000, 0.000000 -507, 0.964947, 0.262443, 0.000000, 0.000000 -508, 0.964810, 0.262948, 0.000000, 0.000000 -509, 0.964672, 0.263454, 0.000000, 0.000000 -510, 0.964534, 0.263959, 0.000000, 0.000000 -511, 0.964396, 0.264464, 0.000000, 0.000000 -512, 0.964257, 0.264969, 0.000000, 0.000000 -513, 0.964118, 0.265474, 0.000000, 0.000000 -514, 0.963979, 0.265979, 0.000000, 0.000000 -515, 0.963839, 0.266484, 0.000000, 0.000000 -516, 0.963700, 0.266989, 0.000000, 0.000000 -517, 0.963560, 0.267494, 0.000000, 0.000000 -518, 0.963419, 0.267998, 0.000000, 0.000000 -519, 0.963279, 0.268503, 0.000000, 0.000000 -520, 0.963138, 0.269007, 0.000000, 0.000000 -521, 0.962997, 0.269512, 0.000000, 0.000000 -522, 0.962856, 0.270016, 0.000000, 0.000000 -523, 0.962714, 0.270520, 0.000000, 0.000000 -524, 0.962572, 0.271025, 0.000000, 0.000000 -525, 0.962430, 0.271529, 0.000000, 0.000000 -526, 0.962288, 0.272033, 0.000000, 0.000000 -527, 0.962145, 0.272537, 0.000000, 0.000000 -528, 0.962003, 0.273041, 0.000000, 0.000000 -529, 0.961859, 0.273544, 0.000000, 0.000000 -530, 0.961716, 0.274048, 0.000000, 0.000000 -531, 0.961572, 0.274552, 0.000000, 0.000000 -532, 0.961428, 0.275056, 0.000000, 0.000000 -533, 0.961284, 0.275559, 0.000000, 0.000000 -534, 0.961140, 0.276062, 0.000000, 0.000000 -535, 0.960995, 0.276566, 0.000000, 0.000000 -536, 0.960850, 0.277069, 0.000000, 0.000000 -537, 0.960705, 0.277572, 0.000000, 0.000000 -538, 0.960559, 0.278076, 0.000000, 0.000000 -539, 0.960413, 0.278579, 0.000000, 0.000000 -540, 0.960267, 0.279082, 0.000000, 0.000000 -541, 0.960121, 0.279585, 0.000000, 0.000000 -542, 0.959975, 0.280087, 0.000000, 0.000000 -543, 0.959828, 0.280590, 0.000000, 0.000000 -544, 0.959681, 0.281093, 0.000000, 0.000000 -545, 0.959533, 0.281595, 0.000000, 0.000000 -546, 0.959386, 0.282098, 0.000000, 0.000000 -547, 0.959238, 0.282600, 0.000000, 0.000000 -548, 0.959090, 0.283103, 0.000000, 0.000000 -549, 0.958941, 0.283605, 0.000000, 0.000000 -550, 0.958792, 0.284107, 0.000000, 0.000000 -551, 0.958644, 0.284610, 0.000000, 0.000000 -552, 0.958494, 0.285112, 0.000000, 0.000000 -553, 0.958345, 0.285614, 0.000000, 0.000000 -554, 0.958195, 0.286116, 0.000000, 0.000000 -555, 0.958045, 0.286617, 0.000000, 0.000000 -556, 0.957895, 0.287119, 0.000000, 0.000000 -557, 0.957744, 0.287621, 0.000000, 0.000000 -558, 0.957594, 0.288122, 0.000000, 0.000000 -559, 0.957443, 0.288624, 0.000000, 0.000000 -560, 0.957291, 0.289125, 0.000000, 0.000000 -561, 0.957140, 0.289627, 0.000000, 0.000000 -562, 0.956988, 0.290128, 0.000000, 0.000000 -563, 0.956836, 0.290629, 0.000000, 0.000000 -564, 0.956683, 0.291130, 0.000000, 0.000000 -565, 0.956531, 0.291631, 0.000000, 0.000000 -566, 0.956378, 0.292132, 0.000000, 0.000000 -567, 0.956225, 0.292633, 0.000000, 0.000000 -568, 0.956071, 0.293134, 0.000000, 0.000000 -569, 0.955918, 0.293635, 0.000000, 0.000000 -570, 0.955764, 0.294135, 0.000000, 0.000000 -571, 0.955610, 0.294636, 0.000000, 0.000000 -572, 0.955455, 0.295136, 0.000000, 0.000000 -573, 0.955300, 0.295637, 0.000000, 0.000000 -574, 0.955145, 0.296137, 0.000000, 0.000000 -575, 0.954990, 0.296637, 0.000000, 0.000000 -576, 0.954835, 0.297138, 0.000000, 0.000000 -577, 0.954679, 0.297638, 0.000000, 0.000000 -578, 0.954523, 0.298138, 0.000000, 0.000000 -579, 0.954367, 0.298638, 0.000000, 0.000000 -580, 0.954210, 0.299137, 0.000000, 0.000000 -581, 0.954053, 0.299637, 0.000000, 0.000000 -582, 0.953896, 0.300137, 0.000000, 0.000000 -583, 0.953739, 0.300636, 0.000000, 0.000000 -584, 0.953581, 0.301136, 0.000000, 0.000000 -585, 0.953423, 0.301635, 0.000000, 0.000000 -586, 0.953265, 0.302135, 0.000000, 0.000000 -587, 0.953107, 0.302634, 0.000000, 0.000000 -588, 0.952948, 0.303133, 0.000000, 0.000000 -589, 0.952789, 0.303632, 0.000000, 0.000000 -590, 0.952630, 0.304131, 0.000000, 0.000000 -591, 0.952471, 0.304630, 0.000000, 0.000000 -592, 0.952311, 0.305129, 0.000000, 0.000000 -593, 0.952151, 0.305628, 0.000000, 0.000000 -594, 0.951991, 0.306126, 0.000000, 0.000000 -595, 0.951830, 0.306625, 0.000000, 0.000000 -596, 0.951670, 0.307123, 0.000000, 0.000000 -597, 0.951509, 0.307622, 0.000000, 0.000000 -598, 0.951347, 0.308120, 0.000000, 0.000000 -599, 0.951186, 0.308618, 0.000000, 0.000000 -600, 0.951024, 0.309117, 0.000000, 0.000000 -601, 0.950862, 0.309615, 0.000000, 0.000000 -602, 0.950700, 0.310113, 0.000000, 0.000000 -603, 0.950537, 0.310611, 0.000000, 0.000000 -604, 0.950374, 0.311108, 0.000000, 0.000000 -605, 0.950211, 0.311606, 0.000000, 0.000000 -606, 0.950048, 0.312104, 0.000000, 0.000000 -607, 0.949884, 0.312601, 0.000000, 0.000000 -608, 0.949721, 0.313099, 0.000000, 0.000000 -609, 0.949556, 0.313596, 0.000000, 0.000000 -610, 0.949392, 0.314094, 0.000000, 0.000000 -611, 0.949227, 0.314591, 0.000000, 0.000000 -612, 0.949062, 0.315088, 0.000000, 0.000000 -613, 0.948897, 0.315585, 0.000000, 0.000000 -614, 0.948732, 0.316082, 0.000000, 0.000000 -615, 0.948566, 0.316579, 0.000000, 0.000000 -616, 0.948400, 0.317076, 0.000000, 0.000000 -617, 0.948234, 0.317572, 0.000000, 0.000000 -618, 0.948068, 0.318069, 0.000000, 0.000000 -619, 0.947901, 0.318565, 0.000000, 0.000000 -620, 0.947734, 0.319062, 0.000000, 0.000000 -621, 0.947567, 0.319558, 0.000000, 0.000000 -622, 0.947399, 0.320055, 0.000000, 0.000000 -623, 0.947231, 0.320551, 0.000000, 0.000000 -624, 0.947063, 0.321047, 0.000000, 0.000000 -625, 0.946895, 0.321543, 0.000000, 0.000000 -626, 0.946727, 0.322039, 0.000000, 0.000000 -627, 0.946558, 0.322535, 0.000000, 0.000000 -628, 0.946389, 0.323030, 0.000000, 0.000000 -629, 0.946219, 0.323526, 0.000000, 0.000000 -630, 0.946050, 0.324021, 0.000000, 0.000000 -631, 0.945880, 0.324517, 0.000000, 0.000000 -632, 0.945710, 0.325012, 0.000000, 0.000000 -633, 0.945539, 0.325508, 0.000000, 0.000000 -634, 0.945369, 0.326003, 0.000000, 0.000000 -635, 0.945198, 0.326498, 0.000000, 0.000000 -636, 0.945027, 0.326993, 0.000000, 0.000000 -637, 0.944855, 0.327488, 0.000000, 0.000000 -638, 0.944684, 0.327983, 0.000000, 0.000000 -639, 0.944512, 0.328478, 0.000000, 0.000000 -640, 0.944340, 0.328972, 0.000000, 0.000000 -641, 0.944167, 0.329467, 0.000000, 0.000000 -642, 0.943994, 0.329961, 0.000000, 0.000000 -643, 0.943822, 0.330456, 0.000000, 0.000000 -644, 0.943648, 0.330950, 0.000000, 0.000000 -645, 0.943475, 0.331444, 0.000000, 0.000000 -646, 0.943301, 0.331938, 0.000000, 0.000000 -647, 0.943127, 0.332432, 0.000000, 0.000000 -648, 0.942953, 0.332926, 0.000000, 0.000000 -649, 0.942778, 0.333420, 0.000000, 0.000000 -650, 0.942604, 0.333914, 0.000000, 0.000000 -651, 0.942429, 0.334407, 0.000000, 0.000000 -652, 0.942253, 0.334901, 0.000000, 0.000000 -653, 0.942078, 0.335395, 0.000000, 0.000000 -654, 0.941902, 0.335888, 0.000000, 0.000000 -655, 0.941726, 0.336381, 0.000000, 0.000000 -656, 0.941550, 0.336874, 0.000000, 0.000000 -657, 0.941373, 0.337368, 0.000000, 0.000000 -658, 0.941196, 0.337861, 0.000000, 0.000000 -659, 0.941019, 0.338354, 0.000000, 0.000000 -660, 0.940842, 0.338846, 0.000000, 0.000000 -661, 0.940664, 0.339339, 0.000000, 0.000000 -662, 0.940486, 0.339832, 0.000000, 0.000000 -663, 0.940308, 0.340324, 0.000000, 0.000000 -664, 0.940130, 0.340817, 0.000000, 0.000000 -665, 0.939951, 0.341309, 0.000000, 0.000000 -666, 0.939772, 0.341801, 0.000000, 0.000000 -667, 0.939593, 0.342294, 0.000000, 0.000000 -668, 0.939414, 0.342786, 0.000000, 0.000000 -669, 0.939234, 0.343278, 0.000000, 0.000000 -670, 0.939054, 0.343770, 0.000000, 0.000000 -671, 0.938874, 0.344261, 0.000000, 0.000000 -672, 0.938693, 0.344753, 0.000000, 0.000000 -673, 0.938513, 0.345245, 0.000000, 0.000000 -674, 0.938332, 0.345736, 0.000000, 0.000000 -675, 0.938151, 0.346228, 0.000000, 0.000000 -676, 0.937969, 0.346719, 0.000000, 0.000000 -677, 0.937787, 0.347210, 0.000000, 0.000000 -678, 0.937605, 0.347701, 0.000000, 0.000000 -679, 0.937423, 0.348192, 0.000000, 0.000000 -680, 0.937241, 0.348683, 0.000000, 0.000000 -681, 0.937058, 0.349174, 0.000000, 0.000000 -682, 0.936875, 0.349665, 0.000000, 0.000000 -683, 0.936692, 0.350156, 0.000000, 0.000000 -684, 0.936508, 0.350646, 0.000000, 0.000000 -685, 0.936324, 0.351137, 0.000000, 0.000000 -686, 0.936140, 0.351627, 0.000000, 0.000000 -687, 0.935956, 0.352117, 0.000000, 0.000000 -688, 0.935771, 0.352607, 0.000000, 0.000000 -689, 0.935587, 0.353098, 0.000000, 0.000000 -690, 0.935401, 0.353588, 0.000000, 0.000000 -691, 0.935216, 0.354077, 0.000000, 0.000000 -692, 0.935031, 0.354567, 0.000000, 0.000000 -693, 0.934845, 0.355057, 0.000000, 0.000000 -694, 0.934659, 0.355547, 0.000000, 0.000000 -695, 0.934472, 0.356036, 0.000000, 0.000000 -696, 0.934286, 0.356525, 0.000000, 0.000000 -697, 0.934099, 0.357015, 0.000000, 0.000000 -698, 0.933912, 0.357504, 0.000000, 0.000000 -699, 0.933724, 0.357993, 0.000000, 0.000000 -700, 0.933537, 0.358482, 0.000000, 0.000000 -701, 0.933349, 0.358971, 0.000000, 0.000000 -702, 0.933161, 0.359460, 0.000000, 0.000000 -703, 0.932972, 0.359948, 0.000000, 0.000000 -704, 0.932784, 0.360437, 0.000000, 0.000000 -705, 0.932595, 0.360926, 0.000000, 0.000000 -706, 0.932405, 0.361414, 0.000000, 0.000000 -707, 0.932216, 0.361902, 0.000000, 0.000000 -708, 0.932026, 0.362391, 0.000000, 0.000000 -709, 0.931836, 0.362879, 0.000000, 0.000000 -710, 0.931646, 0.363367, 0.000000, 0.000000 -711, 0.931456, 0.363855, 0.000000, 0.000000 -712, 0.931265, 0.364342, 0.000000, 0.000000 -713, 0.931074, 0.364830, 0.000000, 0.000000 -714, 0.930883, 0.365318, 0.000000, 0.000000 -715, 0.930691, 0.365805, 0.000000, 0.000000 -716, 0.930500, 0.366293, 0.000000, 0.000000 -717, 0.930308, 0.366780, 0.000000, 0.000000 -718, 0.930115, 0.367267, 0.000000, 0.000000 -719, 0.929923, 0.367754, 0.000000, 0.000000 -720, 0.929730, 0.368241, 0.000000, 0.000000 -721, 0.929537, 0.368728, 0.000000, 0.000000 -722, 0.929344, 0.369215, 0.000000, 0.000000 -723, 0.929150, 0.369702, 0.000000, 0.000000 -724, 0.928957, 0.370188, 0.000000, 0.000000 -725, 0.928763, 0.370675, 0.000000, 0.000000 -726, 0.928568, 0.371161, 0.000000, 0.000000 -727, 0.928374, 0.371648, 0.000000, 0.000000 -728, 0.928179, 0.372134, 0.000000, 0.000000 -729, 0.927984, 0.372620, 0.000000, 0.000000 -730, 0.927789, 0.373106, 0.000000, 0.000000 -731, 0.927593, 0.373592, 0.000000, 0.000000 -732, 0.927397, 0.374078, 0.000000, 0.000000 -733, 0.927201, 0.374563, 0.000000, 0.000000 -734, 0.927005, 0.375049, 0.000000, 0.000000 -735, 0.926808, 0.375535, 0.000000, 0.000000 -736, 0.926612, 0.376020, 0.000000, 0.000000 -737, 0.926415, 0.376505, 0.000000, 0.000000 -738, 0.926217, 0.376990, 0.000000, 0.000000 -739, 0.926020, 0.377475, 0.000000, 0.000000 -740, 0.925822, 0.377960, 0.000000, 0.000000 -741, 0.925624, 0.378445, 0.000000, 0.000000 -742, 0.925425, 0.378930, 0.000000, 0.000000 -743, 0.925227, 0.379415, 0.000000, 0.000000 -744, 0.925028, 0.379899, 0.000000, 0.000000 -745, 0.924829, 0.380384, 0.000000, 0.000000 -746, 0.924629, 0.380868, 0.000000, 0.000000 -747, 0.924430, 0.381352, 0.000000, 0.000000 -748, 0.924230, 0.381836, 0.000000, 0.000000 -749, 0.924030, 0.382320, 0.000000, 0.000000 -750, 0.923829, 0.382804, 0.000000, 0.000000 -751, 0.923629, 0.383288, 0.000000, 0.000000 -752, 0.923428, 0.383772, 0.000000, 0.000000 -753, 0.923227, 0.384256, 0.000000, 0.000000 -754, 0.923025, 0.384739, 0.000000, 0.000000 -755, 0.922824, 0.385222, 0.000000, 0.000000 -756, 0.922622, 0.385706, 0.000000, 0.000000 -757, 0.922420, 0.386189, 0.000000, 0.000000 -758, 0.922217, 0.386672, 0.000000, 0.000000 -759, 0.922015, 0.387155, 0.000000, 0.000000 -760, 0.921812, 0.387638, 0.000000, 0.000000 -761, 0.921609, 0.388121, 0.000000, 0.000000 -762, 0.921405, 0.388603, 0.000000, 0.000000 -763, 0.921201, 0.389086, 0.000000, 0.000000 -764, 0.920998, 0.389568, 0.000000, 0.000000 -765, 0.920793, 0.390051, 0.000000, 0.000000 -766, 0.920589, 0.390533, 0.000000, 0.000000 -767, 0.920384, 0.391015, 0.000000, 0.000000 -768, 0.920179, 0.391497, 0.000000, 0.000000 -769, 0.919974, 0.391979, 0.000000, 0.000000 -770, 0.919769, 0.392461, 0.000000, 0.000000 -771, 0.919563, 0.392942, 0.000000, 0.000000 -772, 0.919357, 0.393424, 0.000000, 0.000000 -773, 0.919151, 0.393906, 0.000000, 0.000000 -774, 0.918944, 0.394387, 0.000000, 0.000000 -775, 0.918738, 0.394868, 0.000000, 0.000000 -776, 0.918531, 0.395349, 0.000000, 0.000000 -777, 0.918324, 0.395830, 0.000000, 0.000000 -778, 0.918116, 0.396311, 0.000000, 0.000000 -779, 0.917908, 0.396792, 0.000000, 0.000000 -780, 0.917701, 0.397273, 0.000000, 0.000000 -781, 0.917492, 0.397753, 0.000000, 0.000000 -782, 0.917284, 0.398234, 0.000000, 0.000000 -783, 0.917075, 0.398714, 0.000000, 0.000000 -784, 0.916866, 0.399195, 0.000000, 0.000000 -785, 0.916657, 0.399675, 0.000000, 0.000000 -786, 0.916448, 0.400155, 0.000000, 0.000000 -787, 0.916238, 0.400635, 0.000000, 0.000000 -788, 0.916028, 0.401115, 0.000000, 0.000000 -789, 0.915818, 0.401594, 0.000000, 0.000000 -790, 0.915607, 0.402074, 0.000000, 0.000000 -791, 0.915396, 0.402554, 0.000000, 0.000000 -792, 0.915185, 0.403033, 0.000000, 0.000000 -793, 0.914974, 0.403512, 0.000000, 0.000000 -794, 0.914763, 0.403991, 0.000000, 0.000000 -795, 0.914551, 0.404471, 0.000000, 0.000000 -796, 0.914339, 0.404950, 0.000000, 0.000000 -797, 0.914127, 0.405428, 0.000000, 0.000000 -798, 0.913914, 0.405907, 0.000000, 0.000000 -799, 0.913702, 0.406386, 0.000000, 0.000000 -800, 0.913489, 0.406864, 0.000000, 0.000000 -801, 0.913275, 0.407343, 0.000000, 0.000000 -802, 0.913062, 0.407821, 0.000000, 0.000000 -803, 0.912848, 0.408299, 0.000000, 0.000000 -804, 0.912634, 0.408777, 0.000000, 0.000000 -805, 0.912420, 0.409255, 0.000000, 0.000000 -806, 0.912206, 0.409733, 0.000000, 0.000000 -807, 0.911991, 0.410211, 0.000000, 0.000000 -808, 0.911776, 0.410688, 0.000000, 0.000000 -809, 0.911561, 0.411166, 0.000000, 0.000000 -810, 0.911345, 0.411643, 0.000000, 0.000000 -811, 0.911129, 0.412121, 0.000000, 0.000000 -812, 0.910913, 0.412598, 0.000000, 0.000000 -813, 0.910697, 0.413075, 0.000000, 0.000000 -814, 0.910481, 0.413552, 0.000000, 0.000000 -815, 0.910264, 0.414029, 0.000000, 0.000000 -816, 0.910047, 0.414505, 0.000000, 0.000000 -817, 0.909830, 0.414982, 0.000000, 0.000000 -818, 0.909612, 0.415458, 0.000000, 0.000000 -819, 0.909394, 0.415935, 0.000000, 0.000000 -820, 0.909177, 0.416411, 0.000000, 0.000000 -821, 0.908958, 0.416887, 0.000000, 0.000000 -822, 0.908740, 0.417363, 0.000000, 0.000000 -823, 0.908521, 0.417839, 0.000000, 0.000000 -824, 0.908302, 0.418315, 0.000000, 0.000000 -825, 0.908083, 0.418791, 0.000000, 0.000000 -826, 0.907863, 0.419266, 0.000000, 0.000000 -827, 0.907644, 0.419742, 0.000000, 0.000000 -828, 0.907424, 0.420217, 0.000000, 0.000000 -829, 0.907203, 0.420692, 0.000000, 0.000000 -830, 0.906983, 0.421167, 0.000000, 0.000000 -831, 0.906762, 0.421642, 0.000000, 0.000000 -832, 0.906541, 0.422117, 0.000000, 0.000000 -833, 0.906320, 0.422592, 0.000000, 0.000000 -834, 0.906099, 0.423067, 0.000000, 0.000000 -835, 0.905877, 0.423541, 0.000000, 0.000000 -836, 0.905655, 0.424015, 0.000000, 0.000000 -837, 0.905433, 0.424490, 0.000000, 0.000000 -838, 0.905210, 0.424964, 0.000000, 0.000000 -839, 0.904988, 0.425438, 0.000000, 0.000000 -840, 0.904765, 0.425912, 0.000000, 0.000000 -841, 0.904541, 0.426386, 0.000000, 0.000000 -842, 0.904318, 0.426860, 0.000000, 0.000000 -843, 0.904094, 0.427333, 0.000000, 0.000000 -844, 0.903870, 0.427807, 0.000000, 0.000000 -845, 0.903646, 0.428280, 0.000000, 0.000000 -846, 0.903422, 0.428753, 0.000000, 0.000000 -847, 0.903197, 0.429226, 0.000000, 0.000000 -848, 0.902972, 0.429699, 0.000000, 0.000000 -849, 0.902747, 0.430172, 0.000000, 0.000000 -850, 0.902521, 0.430645, 0.000000, 0.000000 -851, 0.902296, 0.431118, 0.000000, 0.000000 -852, 0.902070, 0.431590, 0.000000, 0.000000 -853, 0.901844, 0.432063, 0.000000, 0.000000 -854, 0.901617, 0.432535, 0.000000, 0.000000 -855, 0.901390, 0.433007, 0.000000, 0.000000 -856, 0.901164, 0.433479, 0.000000, 0.000000 -857, 0.900936, 0.433951, 0.000000, 0.000000 -858, 0.900709, 0.434423, 0.000000, 0.000000 -859, 0.900481, 0.434895, 0.000000, 0.000000 -860, 0.900253, 0.435366, 0.000000, 0.000000 -861, 0.900025, 0.435838, 0.000000, 0.000000 -862, 0.899797, 0.436309, 0.000000, 0.000000 -863, 0.899568, 0.436780, 0.000000, 0.000000 -864, 0.899339, 0.437251, 0.000000, 0.000000 -865, 0.899110, 0.437722, 0.000000, 0.000000 -866, 0.898881, 0.438193, 0.000000, 0.000000 -867, 0.898651, 0.438664, 0.000000, 0.000000 -868, 0.898421, 0.439135, 0.000000, 0.000000 -869, 0.898191, 0.439605, 0.000000, 0.000000 -870, 0.897961, 0.440076, 0.000000, 0.000000 -871, 0.897730, 0.440546, 0.000000, 0.000000 -872, 0.897499, 0.441016, 0.000000, 0.000000 -873, 0.897268, 0.441486, 0.000000, 0.000000 -874, 0.897037, 0.441956, 0.000000, 0.000000 -875, 0.896805, 0.442426, 0.000000, 0.000000 -876, 0.896573, 0.442895, 0.000000, 0.000000 -877, 0.896341, 0.443365, 0.000000, 0.000000 -878, 0.896109, 0.443834, 0.000000, 0.000000 -879, 0.895876, 0.444304, 0.000000, 0.000000 -880, 0.895643, 0.444773, 0.000000, 0.000000 -881, 0.895410, 0.445242, 0.000000, 0.000000 -882, 0.895177, 0.445711, 0.000000, 0.000000 -883, 0.894943, 0.446180, 0.000000, 0.000000 -884, 0.894710, 0.446648, 0.000000, 0.000000 -885, 0.894476, 0.447117, 0.000000, 0.000000 -886, 0.894241, 0.447585, 0.000000, 0.000000 -887, 0.894007, 0.448054, 0.000000, 0.000000 -888, 0.893772, 0.448522, 0.000000, 0.000000 -889, 0.893537, 0.448990, 0.000000, 0.000000 -890, 0.893302, 0.449458, 0.000000, 0.000000 -891, 0.893066, 0.449926, 0.000000, 0.000000 -892, 0.892830, 0.450393, 0.000000, 0.000000 -893, 0.892594, 0.450861, 0.000000, 0.000000 -894, 0.892358, 0.451328, 0.000000, 0.000000 -895, 0.892121, 0.451796, 0.000000, 0.000000 -896, 0.891885, 0.452263, 0.000000, 0.000000 -897, 0.891648, 0.452730, 0.000000, 0.000000 -898, 0.891410, 0.453197, 0.000000, 0.000000 -899, 0.891173, 0.453664, 0.000000, 0.000000 -900, 0.890935, 0.454130, 0.000000, 0.000000 -901, 0.890697, 0.454597, 0.000000, 0.000000 -902, 0.890459, 0.455064, 0.000000, 0.000000 -903, 0.890220, 0.455530, 0.000000, 0.000000 -904, 0.889982, 0.455996, 0.000000, 0.000000 -905, 0.889743, 0.456462, 0.000000, 0.000000 -906, 0.889504, 0.456928, 0.000000, 0.000000 -907, 0.889264, 0.457394, 0.000000, 0.000000 -908, 0.889024, 0.457860, 0.000000, 0.000000 -909, 0.888785, 0.458325, 0.000000, 0.000000 -910, 0.888544, 0.458791, 0.000000, 0.000000 -911, 0.888304, 0.459256, 0.000000, 0.000000 -912, 0.888063, 0.459721, 0.000000, 0.000000 -913, 0.887822, 0.460186, 0.000000, 0.000000 -914, 0.887581, 0.460651, 0.000000, 0.000000 -915, 0.887340, 0.461116, 0.000000, 0.000000 -916, 0.887098, 0.461581, 0.000000, 0.000000 -917, 0.886856, 0.462045, 0.000000, 0.000000 -918, 0.886614, 0.462510, 0.000000, 0.000000 -919, 0.886372, 0.462974, 0.000000, 0.000000 -920, 0.886129, 0.463438, 0.000000, 0.000000 -921, 0.885886, 0.463902, 0.000000, 0.000000 -922, 0.885643, 0.464366, 0.000000, 0.000000 -923, 0.885400, 0.464830, 0.000000, 0.000000 -924, 0.885156, 0.465294, 0.000000, 0.000000 -925, 0.884912, 0.465757, 0.000000, 0.000000 -926, 0.884668, 0.466221, 0.000000, 0.000000 -927, 0.884424, 0.466684, 0.000000, 0.000000 -928, 0.884179, 0.467147, 0.000000, 0.000000 -929, 0.883935, 0.467610, 0.000000, 0.000000 -930, 0.883690, 0.468073, 0.000000, 0.000000 -931, 0.883444, 0.468536, 0.000000, 0.000000 -932, 0.883199, 0.468999, 0.000000, 0.000000 -933, 0.882953, 0.469461, 0.000000, 0.000000 -934, 0.882707, 0.469924, 0.000000, 0.000000 -935, 0.882461, 0.470386, 0.000000, 0.000000 -936, 0.882214, 0.470848, 0.000000, 0.000000 -937, 0.881968, 0.471310, 0.000000, 0.000000 -938, 0.881721, 0.471772, 0.000000, 0.000000 -939, 0.881473, 0.472234, 0.000000, 0.000000 -940, 0.881226, 0.472695, 0.000000, 0.000000 -941, 0.880978, 0.473157, 0.000000, 0.000000 -942, 0.880730, 0.473618, 0.000000, 0.000000 -943, 0.880482, 0.474079, 0.000000, 0.000000 -944, 0.880234, 0.474541, 0.000000, 0.000000 -945, 0.879985, 0.475002, 0.000000, 0.000000 -946, 0.879736, 0.475462, 0.000000, 0.000000 -947, 0.879487, 0.475923, 0.000000, 0.000000 -948, 0.879237, 0.476384, 0.000000, 0.000000 -949, 0.878988, 0.476844, 0.000000, 0.000000 -950, 0.878738, 0.477305, 0.000000, 0.000000 -951, 0.878488, 0.477765, 0.000000, 0.000000 -952, 0.878237, 0.478225, 0.000000, 0.000000 -953, 0.877987, 0.478685, 0.000000, 0.000000 -954, 0.877736, 0.479145, 0.000000, 0.000000 -955, 0.877485, 0.479604, 0.000000, 0.000000 -956, 0.877234, 0.480064, 0.000000, 0.000000 -957, 0.876982, 0.480523, 0.000000, 0.000000 -958, 0.876730, 0.480982, 0.000000, 0.000000 -959, 0.876478, 0.481442, 0.000000, 0.000000 -960, 0.876226, 0.481901, 0.000000, 0.000000 -961, 0.875973, 0.482359, 0.000000, 0.000000 -962, 0.875721, 0.482818, 0.000000, 0.000000 -963, 0.875468, 0.483277, 0.000000, 0.000000 -964, 0.875214, 0.483735, 0.000000, 0.000000 -965, 0.874961, 0.484194, 0.000000, 0.000000 -966, 0.874707, 0.484652, 0.000000, 0.000000 -967, 0.874453, 0.485110, 0.000000, 0.000000 -968, 0.874199, 0.485568, 0.000000, 0.000000 -969, 0.873945, 0.486026, 0.000000, 0.000000 -970, 0.873690, 0.486483, 0.000000, 0.000000 -971, 0.873435, 0.486941, 0.000000, 0.000000 -972, 0.873180, 0.487398, 0.000000, 0.000000 -973, 0.872924, 0.487856, 0.000000, 0.000000 -974, 0.872669, 0.488313, 0.000000, 0.000000 -975, 0.872413, 0.488770, 0.000000, 0.000000 -976, 0.872157, 0.489227, 0.000000, 0.000000 -977, 0.871900, 0.489683, 0.000000, 0.000000 -978, 0.871644, 0.490140, 0.000000, 0.000000 -979, 0.871387, 0.490596, 0.000000, 0.000000 -980, 0.871130, 0.491053, 0.000000, 0.000000 -981, 0.870872, 0.491509, 0.000000, 0.000000 -982, 0.870615, 0.491965, 0.000000, 0.000000 -983, 0.870357, 0.492421, 0.000000, 0.000000 -984, 0.870099, 0.492877, 0.000000, 0.000000 -985, 0.869841, 0.493332, 0.000000, 0.000000 -986, 0.869582, 0.493788, 0.000000, 0.000000 -987, 0.869324, 0.494243, 0.000000, 0.000000 -988, 0.869065, 0.494699, 0.000000, 0.000000 -989, 0.868805, 0.495154, 0.000000, 0.000000 -990, 0.868546, 0.495609, 0.000000, 0.000000 -991, 0.868286, 0.496064, 0.000000, 0.000000 -992, 0.868026, 0.496518, 0.000000, 0.000000 -993, 0.867766, 0.496973, 0.000000, 0.000000 -994, 0.867506, 0.497427, 0.000000, 0.000000 -995, 0.867245, 0.497882, 0.000000, 0.000000 -996, 0.866984, 0.498336, 0.000000, 0.000000 -997, 0.866723, 0.498790, 0.000000, 0.000000 -998, 0.866462, 0.499244, 0.000000, 0.000000 -999, 0.866200, 0.499698, 0.000000, 0.000000 -1000, 0.865938, 0.500151, 0.000000, 0.000000 -1001, 0.865676, 0.500605, 0.000000, 0.000000 -1002, 0.865414, 0.501058, 0.000000, 0.000000 -1003, 0.865151, 0.501511, 0.000000, 0.000000 -1004, 0.864888, 0.501964, 0.000000, 0.000000 -1005, 0.864625, 0.502417, 0.000000, 0.000000 -1006, 0.864362, 0.502870, 0.000000, 0.000000 -1007, 0.864099, 0.503323, 0.000000, 0.000000 -1008, 0.863835, 0.503775, 0.000000, 0.000000 -1009, 0.863571, 0.504228, 0.000000, 0.000000 -1010, 0.863307, 0.504680, 0.000000, 0.000000 -1011, 0.863042, 0.505132, 0.000000, 0.000000 -1012, 0.862777, 0.505584, 0.000000, 0.000000 -1013, 0.862512, 0.506036, 0.000000, 0.000000 -1014, 0.862247, 0.506487, 0.000000, 0.000000 -1015, 0.861982, 0.506939, 0.000000, 0.000000 -1016, 0.861716, 0.507390, 0.000000, 0.000000 -1017, 0.861450, 0.507842, 0.000000, 0.000000 -1018, 0.861184, 0.508293, 0.000000, 0.000000 -1019, 0.860918, 0.508744, 0.000000, 0.000000 -1020, 0.860651, 0.509195, 0.000000, 0.000000 -1021, 0.860385, 0.509645, 0.000000, 0.000000 -1022, 0.860117, 0.510096, 0.000000, 0.000000 -1023, 0.859850, 0.510546, 0.000000, 0.000000 -1024, 0.859583, 0.510997, 0.000000, 0.000000 -1025, 0.859315, 0.511447, 0.000000, 0.000000 -1026, 0.859047, 0.511897, 0.000000, 0.000000 -1027, 0.858779, 0.512347, 0.000000, 0.000000 -1028, 0.858510, 0.512797, 0.000000, 0.000000 -1029, 0.858241, 0.513246, 0.000000, 0.000000 -1030, 0.857973, 0.513696, 0.000000, 0.000000 -1031, 0.857703, 0.514145, 0.000000, 0.000000 -1032, 0.857434, 0.514594, 0.000000, 0.000000 -1033, 0.857164, 0.515043, 0.000000, 0.000000 -1034, 0.856894, 0.515492, 0.000000, 0.000000 -1035, 0.856624, 0.515941, 0.000000, 0.000000 -1036, 0.856354, 0.516389, 0.000000, 0.000000 -1037, 0.856083, 0.516838, 0.000000, 0.000000 -1038, 0.855813, 0.517286, 0.000000, 0.000000 -1039, 0.855541, 0.517734, 0.000000, 0.000000 -1040, 0.855270, 0.518182, 0.000000, 0.000000 -1041, 0.854999, 0.518630, 0.000000, 0.000000 -1042, 0.854727, 0.519078, 0.000000, 0.000000 -1043, 0.854455, 0.519526, 0.000000, 0.000000 -1044, 0.854183, 0.519973, 0.000000, 0.000000 -1045, 0.853910, 0.520420, 0.000000, 0.000000 -1046, 0.853638, 0.520868, 0.000000, 0.000000 -1047, 0.853365, 0.521315, 0.000000, 0.000000 -1048, 0.853091, 0.521761, 0.000000, 0.000000 -1049, 0.852818, 0.522208, 0.000000, 0.000000 -1050, 0.852544, 0.522655, 0.000000, 0.000000 -1051, 0.852270, 0.523101, 0.000000, 0.000000 -1052, 0.851996, 0.523548, 0.000000, 0.000000 -1053, 0.851722, 0.523994, 0.000000, 0.000000 -1054, 0.851447, 0.524440, 0.000000, 0.000000 -1055, 0.851173, 0.524886, 0.000000, 0.000000 -1056, 0.850898, 0.525332, 0.000000, 0.000000 -1057, 0.850622, 0.525777, 0.000000, 0.000000 -1058, 0.850347, 0.526223, 0.000000, 0.000000 -1059, 0.850071, 0.526668, 0.000000, 0.000000 -1060, 0.849795, 0.527113, 0.000000, 0.000000 -1061, 0.849519, 0.527558, 0.000000, 0.000000 -1062, 0.849243, 0.528003, 0.000000, 0.000000 -1063, 0.848966, 0.528448, 0.000000, 0.000000 -1064, 0.848689, 0.528892, 0.000000, 0.000000 -1065, 0.848412, 0.529337, 0.000000, 0.000000 -1066, 0.848134, 0.529781, 0.000000, 0.000000 -1067, 0.847857, 0.530225, 0.000000, 0.000000 -1068, 0.847579, 0.530669, 0.000000, 0.000000 -1069, 0.847301, 0.531113, 0.000000, 0.000000 -1070, 0.847023, 0.531557, 0.000000, 0.000000 -1071, 0.846744, 0.532000, 0.000000, 0.000000 -1072, 0.846465, 0.532444, 0.000000, 0.000000 -1073, 0.846186, 0.532887, 0.000000, 0.000000 -1074, 0.845907, 0.533330, 0.000000, 0.000000 -1075, 0.845628, 0.533773, 0.000000, 0.000000 -1076, 0.845348, 0.534216, 0.000000, 0.000000 -1077, 0.845068, 0.534659, 0.000000, 0.000000 -1078, 0.844788, 0.535101, 0.000000, 0.000000 -1079, 0.844507, 0.535544, 0.000000, 0.000000 -1080, 0.844227, 0.535986, 0.000000, 0.000000 -1081, 0.843946, 0.536428, 0.000000, 0.000000 -1082, 0.843665, 0.536870, 0.000000, 0.000000 -1083, 0.843384, 0.537312, 0.000000, 0.000000 -1084, 0.843102, 0.537754, 0.000000, 0.000000 -1085, 0.842820, 0.538195, 0.000000, 0.000000 -1086, 0.842538, 0.538636, 0.000000, 0.000000 -1087, 0.842256, 0.539078, 0.000000, 0.000000 -1088, 0.841974, 0.539519, 0.000000, 0.000000 -1089, 0.841691, 0.539960, 0.000000, 0.000000 -1090, 0.841408, 0.540400, 0.000000, 0.000000 -1091, 0.841125, 0.540841, 0.000000, 0.000000 -1092, 0.840841, 0.541282, 0.000000, 0.000000 -1093, 0.840558, 0.541722, 0.000000, 0.000000 -1094, 0.840274, 0.542162, 0.000000, 0.000000 -1095, 0.839990, 0.542602, 0.000000, 0.000000 -1096, 0.839706, 0.543042, 0.000000, 0.000000 -1097, 0.839421, 0.543482, 0.000000, 0.000000 -1098, 0.839136, 0.543921, 0.000000, 0.000000 -1099, 0.838851, 0.544361, 0.000000, 0.000000 -1100, 0.838566, 0.544800, 0.000000, 0.000000 -1101, 0.838280, 0.545239, 0.000000, 0.000000 -1102, 0.837995, 0.545678, 0.000000, 0.000000 -1103, 0.837709, 0.546117, 0.000000, 0.000000 -1104, 0.837423, 0.546556, 0.000000, 0.000000 -1105, 0.837136, 0.546994, 0.000000, 0.000000 -1106, 0.836850, 0.547433, 0.000000, 0.000000 -1107, 0.836563, 0.547871, 0.000000, 0.000000 -1108, 0.836276, 0.548309, 0.000000, 0.000000 -1109, 0.835988, 0.548747, 0.000000, 0.000000 -1110, 0.835701, 0.549185, 0.000000, 0.000000 -1111, 0.835413, 0.549622, 0.000000, 0.000000 -1112, 0.835125, 0.550060, 0.000000, 0.000000 -1113, 0.834837, 0.550497, 0.000000, 0.000000 -1114, 0.834549, 0.550934, 0.000000, 0.000000 -1115, 0.834260, 0.551371, 0.000000, 0.000000 -1116, 0.833971, 0.551808, 0.000000, 0.000000 -1117, 0.833682, 0.552245, 0.000000, 0.000000 -1118, 0.833392, 0.552682, 0.000000, 0.000000 -1119, 0.833103, 0.553118, 0.000000, 0.000000 -1120, 0.832813, 0.553554, 0.000000, 0.000000 -1121, 0.832523, 0.553991, 0.000000, 0.000000 -1122, 0.832233, 0.554427, 0.000000, 0.000000 -1123, 0.831942, 0.554862, 0.000000, 0.000000 -1124, 0.831651, 0.555298, 0.000000, 0.000000 -1125, 0.831360, 0.555734, 0.000000, 0.000000 -1126, 0.831069, 0.556169, 0.000000, 0.000000 -1127, 0.830778, 0.556604, 0.000000, 0.000000 -1128, 0.830486, 0.557039, 0.000000, 0.000000 -1129, 0.830194, 0.557474, 0.000000, 0.000000 -1130, 0.829902, 0.557909, 0.000000, 0.000000 -1131, 0.829610, 0.558343, 0.000000, 0.000000 -1132, 0.829317, 0.558778, 0.000000, 0.000000 -1133, 0.829025, 0.559212, 0.000000, 0.000000 -1134, 0.828732, 0.559646, 0.000000, 0.000000 -1135, 0.828438, 0.560080, 0.000000, 0.000000 -1136, 0.828145, 0.560514, 0.000000, 0.000000 -1137, 0.827851, 0.560948, 0.000000, 0.000000 -1138, 0.827557, 0.561381, 0.000000, 0.000000 -1139, 0.827263, 0.561815, 0.000000, 0.000000 -1140, 0.826969, 0.562248, 0.000000, 0.000000 -1141, 0.826674, 0.562681, 0.000000, 0.000000 -1142, 0.826379, 0.563114, 0.000000, 0.000000 -1143, 0.826084, 0.563547, 0.000000, 0.000000 -1144, 0.825789, 0.563979, 0.000000, 0.000000 -1145, 0.825493, 0.564412, 0.000000, 0.000000 -1146, 0.825198, 0.564844, 0.000000, 0.000000 -1147, 0.824902, 0.565276, 0.000000, 0.000000 -1148, 0.824606, 0.565708, 0.000000, 0.000000 -1149, 0.824309, 0.566140, 0.000000, 0.000000 -1150, 0.824012, 0.566572, 0.000000, 0.000000 -1151, 0.823716, 0.567003, 0.000000, 0.000000 -1152, 0.823418, 0.567435, 0.000000, 0.000000 -1153, 0.823121, 0.567866, 0.000000, 0.000000 -1154, 0.822824, 0.568297, 0.000000, 0.000000 -1155, 0.822526, 0.568728, 0.000000, 0.000000 -1156, 0.822228, 0.569158, 0.000000, 0.000000 -1157, 0.821930, 0.569589, 0.000000, 0.000000 -1158, 0.821631, 0.570019, 0.000000, 0.000000 -1159, 0.821333, 0.570450, 0.000000, 0.000000 -1160, 0.821034, 0.570880, 0.000000, 0.000000 -1161, 0.820734, 0.571310, 0.000000, 0.000000 -1162, 0.820435, 0.571740, 0.000000, 0.000000 -1163, 0.820136, 0.572169, 0.000000, 0.000000 -1164, 0.819836, 0.572599, 0.000000, 0.000000 -1165, 0.819536, 0.573028, 0.000000, 0.000000 -1166, 0.819235, 0.573457, 0.000000, 0.000000 -1167, 0.818935, 0.573886, 0.000000, 0.000000 -1168, 0.818634, 0.574315, 0.000000, 0.000000 -1169, 0.818333, 0.574744, 0.000000, 0.000000 -1170, 0.818032, 0.575172, 0.000000, 0.000000 -1171, 0.817731, 0.575601, 0.000000, 0.000000 -1172, 0.817429, 0.576029, 0.000000, 0.000000 -1173, 0.817127, 0.576457, 0.000000, 0.000000 -1174, 0.816825, 0.576885, 0.000000, 0.000000 -1175, 0.816523, 0.577313, 0.000000, 0.000000 -1176, 0.816221, 0.577740, 0.000000, 0.000000 -1177, 0.815918, 0.578168, 0.000000, 0.000000 -1178, 0.815615, 0.578595, 0.000000, 0.000000 -1179, 0.815312, 0.579022, 0.000000, 0.000000 -1180, 0.815008, 0.579449, 0.000000, 0.000000 -1181, 0.814705, 0.579876, 0.000000, 0.000000 -1182, 0.814401, 0.580303, 0.000000, 0.000000 -1183, 0.814097, 0.580729, 0.000000, 0.000000 -1184, 0.813793, 0.581155, 0.000000, 0.000000 -1185, 0.813488, 0.581581, 0.000000, 0.000000 -1186, 0.813183, 0.582008, 0.000000, 0.000000 -1187, 0.812878, 0.582433, 0.000000, 0.000000 -1188, 0.812573, 0.582859, 0.000000, 0.000000 -1189, 0.812268, 0.583285, 0.000000, 0.000000 -1190, 0.811962, 0.583710, 0.000000, 0.000000 -1191, 0.811656, 0.584135, 0.000000, 0.000000 -1192, 0.811350, 0.584560, 0.000000, 0.000000 -1193, 0.811044, 0.584985, 0.000000, 0.000000 -1194, 0.810738, 0.585410, 0.000000, 0.000000 -1195, 0.810431, 0.585834, 0.000000, 0.000000 -1196, 0.810124, 0.586259, 0.000000, 0.000000 -1197, 0.809817, 0.586683, 0.000000, 0.000000 -1198, 0.809509, 0.587107, 0.000000, 0.000000 -1199, 0.809202, 0.587531, 0.000000, 0.000000 -1200, 0.808894, 0.587955, 0.000000, 0.000000 -1201, 0.808586, 0.588378, 0.000000, 0.000000 -1202, 0.808277, 0.588802, 0.000000, 0.000000 -1203, 0.807969, 0.589225, 0.000000, 0.000000 -1204, 0.807660, 0.589648, 0.000000, 0.000000 -1205, 0.807351, 0.590071, 0.000000, 0.000000 -1206, 0.807042, 0.590494, 0.000000, 0.000000 -1207, 0.806733, 0.590917, 0.000000, 0.000000 -1208, 0.806423, 0.591339, 0.000000, 0.000000 -1209, 0.806113, 0.591761, 0.000000, 0.000000 -1210, 0.805803, 0.592183, 0.000000, 0.000000 -1211, 0.805493, 0.592605, 0.000000, 0.000000 -1212, 0.805182, 0.593027, 0.000000, 0.000000 -1213, 0.804872, 0.593449, 0.000000, 0.000000 -1214, 0.804561, 0.593870, 0.000000, 0.000000 -1215, 0.804250, 0.594292, 0.000000, 0.000000 -1216, 0.803938, 0.594713, 0.000000, 0.000000 -1217, 0.803627, 0.595134, 0.000000, 0.000000 -1218, 0.803315, 0.595555, 0.000000, 0.000000 -1219, 0.803003, 0.595975, 0.000000, 0.000000 -1220, 0.802690, 0.596396, 0.000000, 0.000000 -1221, 0.802378, 0.596816, 0.000000, 0.000000 -1222, 0.802065, 0.597236, 0.000000, 0.000000 -1223, 0.801752, 0.597656, 0.000000, 0.000000 -1224, 0.801439, 0.598076, 0.000000, 0.000000 -1225, 0.801126, 0.598496, 0.000000, 0.000000 -1226, 0.800812, 0.598915, 0.000000, 0.000000 -1227, 0.800498, 0.599335, 0.000000, 0.000000 -1228, 0.800184, 0.599754, 0.000000, 0.000000 -1229, 0.799870, 0.600173, 0.000000, 0.000000 -1230, 0.799556, 0.600592, 0.000000, 0.000000 -1231, 0.799241, 0.601011, 0.000000, 0.000000 -1232, 0.798926, 0.601429, 0.000000, 0.000000 -1233, 0.798611, 0.601848, 0.000000, 0.000000 -1234, 0.798296, 0.602266, 0.000000, 0.000000 -1235, 0.797980, 0.602684, 0.000000, 0.000000 -1236, 0.797664, 0.603102, 0.000000, 0.000000 -1237, 0.797348, 0.603519, 0.000000, 0.000000 -1238, 0.797032, 0.603937, 0.000000, 0.000000 -1239, 0.796716, 0.604354, 0.000000, 0.000000 -1240, 0.796399, 0.604772, 0.000000, 0.000000 -1241, 0.796082, 0.605189, 0.000000, 0.000000 -1242, 0.795765, 0.605605, 0.000000, 0.000000 -1243, 0.795448, 0.606022, 0.000000, 0.000000 -1244, 0.795130, 0.606439, 0.000000, 0.000000 -1245, 0.794812, 0.606855, 0.000000, 0.000000 -1246, 0.794494, 0.607271, 0.000000, 0.000000 -1247, 0.794176, 0.607687, 0.000000, 0.000000 -1248, 0.793858, 0.608103, 0.000000, 0.000000 -1249, 0.793539, 0.608519, 0.000000, 0.000000 -1250, 0.793220, 0.608935, 0.000000, 0.000000 -1251, 0.792901, 0.609350, 0.000000, 0.000000 -1252, 0.792582, 0.609765, 0.000000, 0.000000 -1253, 0.792263, 0.610180, 0.000000, 0.000000 -1254, 0.791943, 0.610595, 0.000000, 0.000000 -1255, 0.791623, 0.611010, 0.000000, 0.000000 -1256, 0.791303, 0.611424, 0.000000, 0.000000 -1257, 0.790983, 0.611839, 0.000000, 0.000000 -1258, 0.790662, 0.612253, 0.000000, 0.000000 -1259, 0.790341, 0.612667, 0.000000, 0.000000 -1260, 0.790020, 0.613081, 0.000000, 0.000000 -1261, 0.789699, 0.613495, 0.000000, 0.000000 -1262, 0.789377, 0.613908, 0.000000, 0.000000 -1263, 0.789056, 0.614321, 0.000000, 0.000000 -1264, 0.788734, 0.614735, 0.000000, 0.000000 -1265, 0.788412, 0.615148, 0.000000, 0.000000 -1266, 0.788090, 0.615561, 0.000000, 0.000000 -1267, 0.787767, 0.615973, 0.000000, 0.000000 -1268, 0.787444, 0.616386, 0.000000, 0.000000 -1269, 0.787121, 0.616798, 0.000000, 0.000000 -1270, 0.786798, 0.617210, 0.000000, 0.000000 -1271, 0.786475, 0.617622, 0.000000, 0.000000 -1272, 0.786151, 0.618034, 0.000000, 0.000000 -1273, 0.785827, 0.618446, 0.000000, 0.000000 -1274, 0.785503, 0.618857, 0.000000, 0.000000 -1275, 0.785179, 0.619269, 0.000000, 0.000000 -1276, 0.784855, 0.619680, 0.000000, 0.000000 -1277, 0.784530, 0.620091, 0.000000, 0.000000 -1278, 0.784205, 0.620502, 0.000000, 0.000000 -1279, 0.783880, 0.620912, 0.000000, 0.000000 -1280, 0.783555, 0.621323, 0.000000, 0.000000 -1281, 0.783229, 0.621733, 0.000000, 0.000000 -1282, 0.782903, 0.622143, 0.000000, 0.000000 -1283, 0.782577, 0.622553, 0.000000, 0.000000 -1284, 0.782251, 0.622963, 0.000000, 0.000000 -1285, 0.781925, 0.623373, 0.000000, 0.000000 -1286, 0.781598, 0.623782, 0.000000, 0.000000 -1287, 0.781271, 0.624192, 0.000000, 0.000000 -1288, 0.780944, 0.624601, 0.000000, 0.000000 -1289, 0.780617, 0.625010, 0.000000, 0.000000 -1290, 0.780290, 0.625418, 0.000000, 0.000000 -1291, 0.779962, 0.625827, 0.000000, 0.000000 -1292, 0.779634, 0.626235, 0.000000, 0.000000 -1293, 0.779306, 0.626644, 0.000000, 0.000000 -1294, 0.778978, 0.627052, 0.000000, 0.000000 -1295, 0.778649, 0.627460, 0.000000, 0.000000 -1296, 0.778320, 0.627867, 0.000000, 0.000000 -1297, 0.777991, 0.628275, 0.000000, 0.000000 -1298, 0.777662, 0.628682, 0.000000, 0.000000 -1299, 0.777333, 0.629090, 0.000000, 0.000000 -1300, 0.777003, 0.629497, 0.000000, 0.000000 -1301, 0.776673, 0.629904, 0.000000, 0.000000 -1302, 0.776343, 0.630310, 0.000000, 0.000000 -1303, 0.776013, 0.630717, 0.000000, 0.000000 -1304, 0.775683, 0.631123, 0.000000, 0.000000 -1305, 0.775352, 0.631529, 0.000000, 0.000000 -1306, 0.775021, 0.631935, 0.000000, 0.000000 -1307, 0.774690, 0.632341, 0.000000, 0.000000 -1308, 0.774359, 0.632747, 0.000000, 0.000000 -1309, 0.774027, 0.633153, 0.000000, 0.000000 -1310, 0.773695, 0.633558, 0.000000, 0.000000 -1311, 0.773363, 0.633963, 0.000000, 0.000000 -1312, 0.773031, 0.634368, 0.000000, 0.000000 -1313, 0.772699, 0.634773, 0.000000, 0.000000 -1314, 0.772366, 0.635177, 0.000000, 0.000000 -1315, 0.772033, 0.635582, 0.000000, 0.000000 -1316, 0.771700, 0.635986, 0.000000, 0.000000 -1317, 0.771367, 0.636390, 0.000000, 0.000000 -1318, 0.771034, 0.636794, 0.000000, 0.000000 -1319, 0.770700, 0.637198, 0.000000, 0.000000 -1320, 0.770366, 0.637602, 0.000000, 0.000000 -1321, 0.770032, 0.638005, 0.000000, 0.000000 -1322, 0.769698, 0.638408, 0.000000, 0.000000 -1323, 0.769363, 0.638811, 0.000000, 0.000000 -1324, 0.769029, 0.639214, 0.000000, 0.000000 -1325, 0.768694, 0.639617, 0.000000, 0.000000 -1326, 0.768359, 0.640019, 0.000000, 0.000000 -1327, 0.768023, 0.640422, 0.000000, 0.000000 -1328, 0.767688, 0.640824, 0.000000, 0.000000 -1329, 0.767352, 0.641226, 0.000000, 0.000000 -1330, 0.767016, 0.641628, 0.000000, 0.000000 -1331, 0.766680, 0.642029, 0.000000, 0.000000 -1332, 0.766344, 0.642431, 0.000000, 0.000000 -1333, 0.766007, 0.642832, 0.000000, 0.000000 -1334, 0.765670, 0.643233, 0.000000, 0.000000 -1335, 0.765333, 0.643634, 0.000000, 0.000000 -1336, 0.764996, 0.644035, 0.000000, 0.000000 -1337, 0.764659, 0.644436, 0.000000, 0.000000 -1338, 0.764321, 0.644836, 0.000000, 0.000000 -1339, 0.763983, 0.645236, 0.000000, 0.000000 -1340, 0.763645, 0.645636, 0.000000, 0.000000 -1341, 0.763307, 0.646036, 0.000000, 0.000000 -1342, 0.762968, 0.646436, 0.000000, 0.000000 -1343, 0.762630, 0.646835, 0.000000, 0.000000 -1344, 0.762291, 0.647235, 0.000000, 0.000000 -1345, 0.761952, 0.647634, 0.000000, 0.000000 -1346, 0.761612, 0.648033, 0.000000, 0.000000 -1347, 0.761273, 0.648432, 0.000000, 0.000000 -1348, 0.760933, 0.648830, 0.000000, 0.000000 -1349, 0.760593, 0.649229, 0.000000, 0.000000 -1350, 0.760253, 0.649627, 0.000000, 0.000000 -1351, 0.759913, 0.650025, 0.000000, 0.000000 -1352, 0.759572, 0.650423, 0.000000, 0.000000 -1353, 0.759231, 0.650821, 0.000000, 0.000000 -1354, 0.758890, 0.651219, 0.000000, 0.000000 -1355, 0.758549, 0.651616, 0.000000, 0.000000 -1356, 0.758208, 0.652013, 0.000000, 0.000000 -1357, 0.757866, 0.652410, 0.000000, 0.000000 -1358, 0.757524, 0.652807, 0.000000, 0.000000 -1359, 0.757182, 0.653204, 0.000000, 0.000000 -1360, 0.756840, 0.653600, 0.000000, 0.000000 -1361, 0.756497, 0.653997, 0.000000, 0.000000 -1362, 0.756155, 0.654393, 0.000000, 0.000000 -1363, 0.755812, 0.654789, 0.000000, 0.000000 -1364, 0.755469, 0.655185, 0.000000, 0.000000 -1365, 0.755126, 0.655580, 0.000000, 0.000000 -1366, 0.754782, 0.655976, 0.000000, 0.000000 -1367, 0.754438, 0.656371, 0.000000, 0.000000 -1368, 0.754095, 0.656766, 0.000000, 0.000000 -1369, 0.753750, 0.657161, 0.000000, 0.000000 -1370, 0.753406, 0.657555, 0.000000, 0.000000 -1371, 0.753062, 0.657950, 0.000000, 0.000000 -1372, 0.752717, 0.658344, 0.000000, 0.000000 -1373, 0.752372, 0.658739, 0.000000, 0.000000 -1374, 0.752027, 0.659132, 0.000000, 0.000000 -1375, 0.751682, 0.659526, 0.000000, 0.000000 -1376, 0.751336, 0.659920, 0.000000, 0.000000 -1377, 0.750990, 0.660313, 0.000000, 0.000000 -1378, 0.750644, 0.660707, 0.000000, 0.000000 -1379, 0.750298, 0.661100, 0.000000, 0.000000 -1380, 0.749952, 0.661493, 0.000000, 0.000000 -1381, 0.749605, 0.661885, 0.000000, 0.000000 -1382, 0.749258, 0.662278, 0.000000, 0.000000 -1383, 0.748911, 0.662670, 0.000000, 0.000000 -1384, 0.748564, 0.663062, 0.000000, 0.000000 -1385, 0.748217, 0.663454, 0.000000, 0.000000 -1386, 0.747869, 0.663846, 0.000000, 0.000000 -1387, 0.747521, 0.664238, 0.000000, 0.000000 -1388, 0.747173, 0.664629, 0.000000, 0.000000 -1389, 0.746825, 0.665020, 0.000000, 0.000000 -1390, 0.746477, 0.665412, 0.000000, 0.000000 -1391, 0.746128, 0.665802, 0.000000, 0.000000 -1392, 0.745779, 0.666193, 0.000000, 0.000000 -1393, 0.745430, 0.666584, 0.000000, 0.000000 -1394, 0.745081, 0.666974, 0.000000, 0.000000 -1395, 0.744732, 0.667364, 0.000000, 0.000000 -1396, 0.744382, 0.667754, 0.000000, 0.000000 -1397, 0.744032, 0.668144, 0.000000, 0.000000 -1398, 0.743682, 0.668534, 0.000000, 0.000000 -1399, 0.743332, 0.668923, 0.000000, 0.000000 -1400, 0.742981, 0.669312, 0.000000, 0.000000 -1401, 0.742631, 0.669701, 0.000000, 0.000000 -1402, 0.742280, 0.670090, 0.000000, 0.000000 -1403, 0.741929, 0.670479, 0.000000, 0.000000 -1404, 0.741577, 0.670867, 0.000000, 0.000000 -1405, 0.741226, 0.671256, 0.000000, 0.000000 -1406, 0.740874, 0.671644, 0.000000, 0.000000 -1407, 0.740522, 0.672032, 0.000000, 0.000000 -1408, 0.740170, 0.672420, 0.000000, 0.000000 -1409, 0.739818, 0.672807, 0.000000, 0.000000 -1410, 0.739465, 0.673195, 0.000000, 0.000000 -1411, 0.739113, 0.673582, 0.000000, 0.000000 -1412, 0.738760, 0.673969, 0.000000, 0.000000 -1413, 0.738407, 0.674356, 0.000000, 0.000000 -1414, 0.738053, 0.674742, 0.000000, 0.000000 -1415, 0.737700, 0.675129, 0.000000, 0.000000 -1416, 0.737346, 0.675515, 0.000000, 0.000000 -1417, 0.736992, 0.675901, 0.000000, 0.000000 -1418, 0.736638, 0.676287, 0.000000, 0.000000 -1419, 0.736284, 0.676673, 0.000000, 0.000000 -1420, 0.735929, 0.677058, 0.000000, 0.000000 -1421, 0.735575, 0.677444, 0.000000, 0.000000 -1422, 0.735220, 0.677829, 0.000000, 0.000000 -1423, 0.734864, 0.678214, 0.000000, 0.000000 -1424, 0.734509, 0.678599, 0.000000, 0.000000 -1425, 0.734154, 0.678983, 0.000000, 0.000000 -1426, 0.733798, 0.679368, 0.000000, 0.000000 -1427, 0.733442, 0.679752, 0.000000, 0.000000 -1428, 0.733086, 0.680136, 0.000000, 0.000000 -1429, 0.732729, 0.680520, 0.000000, 0.000000 -1430, 0.732373, 0.680904, 0.000000, 0.000000 -1431, 0.732016, 0.681287, 0.000000, 0.000000 -1432, 0.731659, 0.681671, 0.000000, 0.000000 -1433, 0.731302, 0.682054, 0.000000, 0.000000 -1434, 0.730945, 0.682437, 0.000000, 0.000000 -1435, 0.730587, 0.682819, 0.000000, 0.000000 -1436, 0.730229, 0.683202, 0.000000, 0.000000 -1437, 0.729872, 0.683584, 0.000000, 0.000000 -1438, 0.729513, 0.683967, 0.000000, 0.000000 -1439, 0.729155, 0.684349, 0.000000, 0.000000 -1440, 0.728797, 0.684730, 0.000000, 0.000000 -1441, 0.728438, 0.685112, 0.000000, 0.000000 -1442, 0.728079, 0.685493, 0.000000, 0.000000 -1443, 0.727720, 0.685875, 0.000000, 0.000000 -1444, 0.727360, 0.686256, 0.000000, 0.000000 -1445, 0.727001, 0.686637, 0.000000, 0.000000 -1446, 0.726641, 0.687017, 0.000000, 0.000000 -1447, 0.726281, 0.687398, 0.000000, 0.000000 -1448, 0.725921, 0.687778, 0.000000, 0.000000 -1449, 0.725561, 0.688158, 0.000000, 0.000000 -1450, 0.725200, 0.688538, 0.000000, 0.000000 -1451, 0.724839, 0.688918, 0.000000, 0.000000 -1452, 0.724478, 0.689297, 0.000000, 0.000000 -1453, 0.724117, 0.689677, 0.000000, 0.000000 -1454, 0.723756, 0.690056, 0.000000, 0.000000 -1455, 0.723394, 0.690435, 0.000000, 0.000000 -1456, 0.723033, 0.690814, 0.000000, 0.000000 -1457, 0.722671, 0.691192, 0.000000, 0.000000 -1458, 0.722309, 0.691571, 0.000000, 0.000000 -1459, 0.721946, 0.691949, 0.000000, 0.000000 -1460, 0.721584, 0.692327, 0.000000, 0.000000 -1461, 0.721221, 0.692705, 0.000000, 0.000000 -1462, 0.720858, 0.693083, 0.000000, 0.000000 -1463, 0.720495, 0.693460, 0.000000, 0.000000 -1464, 0.720132, 0.693837, 0.000000, 0.000000 -1465, 0.719768, 0.694214, 0.000000, 0.000000 -1466, 0.719404, 0.694591, 0.000000, 0.000000 -1467, 0.719041, 0.694968, 0.000000, 0.000000 -1468, 0.718676, 0.695345, 0.000000, 0.000000 -1469, 0.718312, 0.695721, 0.000000, 0.000000 -1470, 0.717948, 0.696097, 0.000000, 0.000000 -1471, 0.717583, 0.696473, 0.000000, 0.000000 -1472, 0.717218, 0.696849, 0.000000, 0.000000 -1473, 0.716853, 0.697224, 0.000000, 0.000000 -1474, 0.716488, 0.697600, 0.000000, 0.000000 -1475, 0.716122, 0.697975, 0.000000, 0.000000 -1476, 0.715757, 0.698350, 0.000000, 0.000000 -1477, 0.715391, 0.698725, 0.000000, 0.000000 -1478, 0.715025, 0.699099, 0.000000, 0.000000 -1479, 0.714658, 0.699474, 0.000000, 0.000000 -1480, 0.714292, 0.699848, 0.000000, 0.000000 -1481, 0.713925, 0.700222, 0.000000, 0.000000 -1482, 0.713558, 0.700596, 0.000000, 0.000000 -1483, 0.713191, 0.700969, 0.000000, 0.000000 -1484, 0.712824, 0.701343, 0.000000, 0.000000 -1485, 0.712457, 0.701716, 0.000000, 0.000000 -1486, 0.712089, 0.702089, 0.000000, 0.000000 -1487, 0.711721, 0.702462, 0.000000, 0.000000 -1488, 0.711353, 0.702835, 0.000000, 0.000000 -1489, 0.710985, 0.703207, 0.000000, 0.000000 -1490, 0.710616, 0.703580, 0.000000, 0.000000 -1491, 0.710248, 0.703952, 0.000000, 0.000000 -1492, 0.709879, 0.704324, 0.000000, 0.000000 -1493, 0.709510, 0.704695, 0.000000, 0.000000 -1494, 0.709141, 0.705067, 0.000000, 0.000000 -1495, 0.708771, 0.705438, 0.000000, 0.000000 -1496, 0.708402, 0.705809, 0.000000, 0.000000 -1497, 0.708032, 0.706180, 0.000000, 0.000000 -1498, 0.707662, 0.706551, 0.000000, 0.000000 -1499, 0.707292, 0.706922, 0.000000, 0.000000 -1500, 0.706922, 0.707292, 0.000000, 0.000000 -1501, 0.706551, 0.707662, 0.000000, 0.000000 -1502, 0.706180, 0.708032, 0.000000, 0.000000 -1503, 0.705809, 0.708402, 0.000000, 0.000000 -1504, 0.705438, 0.708771, 0.000000, 0.000000 -1505, 0.705067, 0.709141, 0.000000, 0.000000 -1506, 0.704695, 0.709510, 0.000000, 0.000000 -1507, 0.704324, 0.709879, 0.000000, 0.000000 -1508, 0.703952, 0.710248, 0.000000, 0.000000 -1509, 0.703580, 0.710616, 0.000000, 0.000000 -1510, 0.703207, 0.710985, 0.000000, 0.000000 -1511, 0.702835, 0.711353, 0.000000, 0.000000 -1512, 0.702462, 0.711721, 0.000000, 0.000000 -1513, 0.702089, 0.712089, 0.000000, 0.000000 -1514, 0.701716, 0.712457, 0.000000, 0.000000 -1515, 0.701343, 0.712824, 0.000000, 0.000000 -1516, 0.700969, 0.713191, 0.000000, 0.000000 -1517, 0.700596, 0.713558, 0.000000, 0.000000 -1518, 0.700222, 0.713925, 0.000000, 0.000000 -1519, 0.699848, 0.714292, 0.000000, 0.000000 -1520, 0.699474, 0.714658, 0.000000, 0.000000 -1521, 0.699099, 0.715025, 0.000000, 0.000000 -1522, 0.698725, 0.715391, 0.000000, 0.000000 -1523, 0.698350, 0.715757, 0.000000, 0.000000 -1524, 0.697975, 0.716122, 0.000000, 0.000000 -1525, 0.697600, 0.716488, 0.000000, 0.000000 -1526, 0.697224, 0.716853, 0.000000, 0.000000 -1527, 0.696849, 0.717218, 0.000000, 0.000000 -1528, 0.696473, 0.717583, 0.000000, 0.000000 -1529, 0.696097, 0.717948, 0.000000, 0.000000 -1530, 0.695721, 0.718312, 0.000000, 0.000000 -1531, 0.695345, 0.718676, 0.000000, 0.000000 -1532, 0.694968, 0.719041, 0.000000, 0.000000 -1533, 0.694591, 0.719404, 0.000000, 0.000000 -1534, 0.694214, 0.719768, 0.000000, 0.000000 -1535, 0.693837, 0.720132, 0.000000, 0.000000 -1536, 0.693460, 0.720495, 0.000000, 0.000000 -1537, 0.693083, 0.720858, 0.000000, 0.000000 -1538, 0.692705, 0.721221, 0.000000, 0.000000 -1539, 0.692327, 0.721584, 0.000000, 0.000000 -1540, 0.691949, 0.721946, 0.000000, 0.000000 -1541, 0.691571, 0.722309, 0.000000, 0.000000 -1542, 0.691192, 0.722671, 0.000000, 0.000000 -1543, 0.690814, 0.723033, 0.000000, 0.000000 -1544, 0.690435, 0.723394, 0.000000, 0.000000 -1545, 0.690056, 0.723756, 0.000000, 0.000000 -1546, 0.689677, 0.724117, 0.000000, 0.000000 -1547, 0.689297, 0.724478, 0.000000, 0.000000 -1548, 0.688918, 0.724839, 0.000000, 0.000000 -1549, 0.688538, 0.725200, 0.000000, 0.000000 -1550, 0.688158, 0.725561, 0.000000, 0.000000 -1551, 0.687778, 0.725921, 0.000000, 0.000000 -1552, 0.687398, 0.726281, 0.000000, 0.000000 -1553, 0.687017, 0.726641, 0.000000, 0.000000 -1554, 0.686637, 0.727001, 0.000000, 0.000000 -1555, 0.686256, 0.727360, 0.000000, 0.000000 -1556, 0.685875, 0.727720, 0.000000, 0.000000 -1557, 0.685493, 0.728079, 0.000000, 0.000000 -1558, 0.685112, 0.728438, 0.000000, 0.000000 -1559, 0.684730, 0.728797, 0.000000, 0.000000 -1560, 0.684349, 0.729155, 0.000000, 0.000000 -1561, 0.683967, 0.729513, 0.000000, 0.000000 -1562, 0.683584, 0.729872, 0.000000, 0.000000 -1563, 0.683202, 0.730229, 0.000000, 0.000000 -1564, 0.682819, 0.730587, 0.000000, 0.000000 -1565, 0.682437, 0.730945, 0.000000, 0.000000 -1566, 0.682054, 0.731302, 0.000000, 0.000000 -1567, 0.681671, 0.731659, 0.000000, 0.000000 -1568, 0.681287, 0.732016, 0.000000, 0.000000 -1569, 0.680904, 0.732373, 0.000000, 0.000000 -1570, 0.680520, 0.732729, 0.000000, 0.000000 -1571, 0.680136, 0.733086, 0.000000, 0.000000 -1572, 0.679752, 0.733442, 0.000000, 0.000000 -1573, 0.679368, 0.733798, 0.000000, 0.000000 -1574, 0.678983, 0.734154, 0.000000, 0.000000 -1575, 0.678599, 0.734509, 0.000000, 0.000000 -1576, 0.678214, 0.734864, 0.000000, 0.000000 -1577, 0.677829, 0.735220, 0.000000, 0.000000 -1578, 0.677444, 0.735575, 0.000000, 0.000000 -1579, 0.677058, 0.735929, 0.000000, 0.000000 -1580, 0.676673, 0.736284, 0.000000, 0.000000 -1581, 0.676287, 0.736638, 0.000000, 0.000000 -1582, 0.675901, 0.736992, 0.000000, 0.000000 -1583, 0.675515, 0.737346, 0.000000, 0.000000 -1584, 0.675129, 0.737700, 0.000000, 0.000000 -1585, 0.674742, 0.738053, 0.000000, 0.000000 -1586, 0.674356, 0.738407, 0.000000, 0.000000 -1587, 0.673969, 0.738760, 0.000000, 0.000000 -1588, 0.673582, 0.739113, 0.000000, 0.000000 -1589, 0.673195, 0.739465, 0.000000, 0.000000 -1590, 0.672807, 0.739818, 0.000000, 0.000000 -1591, 0.672420, 0.740170, 0.000000, 0.000000 -1592, 0.672032, 0.740522, 0.000000, 0.000000 -1593, 0.671644, 0.740874, 0.000000, 0.000000 -1594, 0.671256, 0.741226, 0.000000, 0.000000 -1595, 0.670867, 0.741577, 0.000000, 0.000000 -1596, 0.670479, 0.741929, 0.000000, 0.000000 -1597, 0.670090, 0.742280, 0.000000, 0.000000 -1598, 0.669701, 0.742631, 0.000000, 0.000000 -1599, 0.669312, 0.742981, 0.000000, 0.000000 -1600, 0.668923, 0.743332, 0.000000, 0.000000 -1601, 0.668534, 0.743682, 0.000000, 0.000000 -1602, 0.668144, 0.744032, 0.000000, 0.000000 -1603, 0.667754, 0.744382, 0.000000, 0.000000 -1604, 0.667364, 0.744732, 0.000000, 0.000000 -1605, 0.666974, 0.745081, 0.000000, 0.000000 -1606, 0.666584, 0.745430, 0.000000, 0.000000 -1607, 0.666193, 0.745779, 0.000000, 0.000000 -1608, 0.665802, 0.746128, 0.000000, 0.000000 -1609, 0.665412, 0.746477, 0.000000, 0.000000 -1610, 0.665020, 0.746825, 0.000000, 0.000000 -1611, 0.664629, 0.747173, 0.000000, 0.000000 -1612, 0.664238, 0.747521, 0.000000, 0.000000 -1613, 0.663846, 0.747869, 0.000000, 0.000000 -1614, 0.663454, 0.748217, 0.000000, 0.000000 -1615, 0.663062, 0.748564, 0.000000, 0.000000 -1616, 0.662670, 0.748911, 0.000000, 0.000000 -1617, 0.662278, 0.749258, 0.000000, 0.000000 -1618, 0.661885, 0.749605, 0.000000, 0.000000 -1619, 0.661493, 0.749952, 0.000000, 0.000000 -1620, 0.661100, 0.750298, 0.000000, 0.000000 -1621, 0.660707, 0.750644, 0.000000, 0.000000 -1622, 0.660313, 0.750990, 0.000000, 0.000000 -1623, 0.659920, 0.751336, 0.000000, 0.000000 -1624, 0.659526, 0.751682, 0.000000, 0.000000 -1625, 0.659132, 0.752027, 0.000000, 0.000000 -1626, 0.658739, 0.752372, 0.000000, 0.000000 -1627, 0.658344, 0.752717, 0.000000, 0.000000 -1628, 0.657950, 0.753062, 0.000000, 0.000000 -1629, 0.657555, 0.753406, 0.000000, 0.000000 -1630, 0.657161, 0.753750, 0.000000, 0.000000 -1631, 0.656766, 0.754095, 0.000000, 0.000000 -1632, 0.656371, 0.754438, 0.000000, 0.000000 -1633, 0.655976, 0.754782, 0.000000, 0.000000 -1634, 0.655580, 0.755126, 0.000000, 0.000000 -1635, 0.655185, 0.755469, 0.000000, 0.000000 -1636, 0.654789, 0.755812, 0.000000, 0.000000 -1637, 0.654393, 0.756155, 0.000000, 0.000000 -1638, 0.653997, 0.756497, 0.000000, 0.000000 -1639, 0.653600, 0.756840, 0.000000, 0.000000 -1640, 0.653204, 0.757182, 0.000000, 0.000000 -1641, 0.652807, 0.757524, 0.000000, 0.000000 -1642, 0.652410, 0.757866, 0.000000, 0.000000 -1643, 0.652013, 0.758208, 0.000000, 0.000000 -1644, 0.651616, 0.758549, 0.000000, 0.000000 -1645, 0.651219, 0.758890, 0.000000, 0.000000 -1646, 0.650821, 0.759231, 0.000000, 0.000000 -1647, 0.650423, 0.759572, 0.000000, 0.000000 -1648, 0.650025, 0.759913, 0.000000, 0.000000 -1649, 0.649627, 0.760253, 0.000000, 0.000000 -1650, 0.649229, 0.760593, 0.000000, 0.000000 -1651, 0.648830, 0.760933, 0.000000, 0.000000 -1652, 0.648432, 0.761273, 0.000000, 0.000000 -1653, 0.648033, 0.761612, 0.000000, 0.000000 -1654, 0.647634, 0.761952, 0.000000, 0.000000 -1655, 0.647235, 0.762291, 0.000000, 0.000000 -1656, 0.646835, 0.762630, 0.000000, 0.000000 -1657, 0.646436, 0.762968, 0.000000, 0.000000 -1658, 0.646036, 0.763307, 0.000000, 0.000000 -1659, 0.645636, 0.763645, 0.000000, 0.000000 -1660, 0.645236, 0.763983, 0.000000, 0.000000 -1661, 0.644836, 0.764321, 0.000000, 0.000000 -1662, 0.644436, 0.764659, 0.000000, 0.000000 -1663, 0.644035, 0.764996, 0.000000, 0.000000 -1664, 0.643634, 0.765333, 0.000000, 0.000000 -1665, 0.643233, 0.765670, 0.000000, 0.000000 -1666, 0.642832, 0.766007, 0.000000, 0.000000 -1667, 0.642431, 0.766344, 0.000000, 0.000000 -1668, 0.642029, 0.766680, 0.000000, 0.000000 -1669, 0.641628, 0.767016, 0.000000, 0.000000 -1670, 0.641226, 0.767352, 0.000000, 0.000000 -1671, 0.640824, 0.767688, 0.000000, 0.000000 -1672, 0.640422, 0.768023, 0.000000, 0.000000 -1673, 0.640019, 0.768359, 0.000000, 0.000000 -1674, 0.639617, 0.768694, 0.000000, 0.000000 -1675, 0.639214, 0.769029, 0.000000, 0.000000 -1676, 0.638811, 0.769363, 0.000000, 0.000000 -1677, 0.638408, 0.769698, 0.000000, 0.000000 -1678, 0.638005, 0.770032, 0.000000, 0.000000 -1679, 0.637602, 0.770366, 0.000000, 0.000000 -1680, 0.637198, 0.770700, 0.000000, 0.000000 -1681, 0.636794, 0.771034, 0.000000, 0.000000 -1682, 0.636390, 0.771367, 0.000000, 0.000000 -1683, 0.635986, 0.771700, 0.000000, 0.000000 -1684, 0.635582, 0.772033, 0.000000, 0.000000 -1685, 0.635177, 0.772366, 0.000000, 0.000000 -1686, 0.634773, 0.772699, 0.000000, 0.000000 -1687, 0.634368, 0.773031, 0.000000, 0.000000 -1688, 0.633963, 0.773363, 0.000000, 0.000000 -1689, 0.633558, 0.773695, 0.000000, 0.000000 -1690, 0.633153, 0.774027, 0.000000, 0.000000 -1691, 0.632747, 0.774359, 0.000000, 0.000000 -1692, 0.632341, 0.774690, 0.000000, 0.000000 -1693, 0.631935, 0.775021, 0.000000, 0.000000 -1694, 0.631529, 0.775352, 0.000000, 0.000000 -1695, 0.631123, 0.775683, 0.000000, 0.000000 -1696, 0.630717, 0.776013, 0.000000, 0.000000 -1697, 0.630310, 0.776343, 0.000000, 0.000000 -1698, 0.629904, 0.776673, 0.000000, 0.000000 -1699, 0.629497, 0.777003, 0.000000, 0.000000 -1700, 0.629090, 0.777333, 0.000000, 0.000000 -1701, 0.628682, 0.777662, 0.000000, 0.000000 -1702, 0.628275, 0.777991, 0.000000, 0.000000 -1703, 0.627867, 0.778320, 0.000000, 0.000000 -1704, 0.627460, 0.778649, 0.000000, 0.000000 -1705, 0.627052, 0.778978, 0.000000, 0.000000 -1706, 0.626644, 0.779306, 0.000000, 0.000000 -1707, 0.626235, 0.779634, 0.000000, 0.000000 -1708, 0.625827, 0.779962, 0.000000, 0.000000 -1709, 0.625418, 0.780290, 0.000000, 0.000000 -1710, 0.625010, 0.780617, 0.000000, 0.000000 -1711, 0.624601, 0.780944, 0.000000, 0.000000 -1712, 0.624192, 0.781271, 0.000000, 0.000000 -1713, 0.623782, 0.781598, 0.000000, 0.000000 -1714, 0.623373, 0.781925, 0.000000, 0.000000 -1715, 0.622963, 0.782251, 0.000000, 0.000000 -1716, 0.622553, 0.782577, 0.000000, 0.000000 -1717, 0.622143, 0.782903, 0.000000, 0.000000 -1718, 0.621733, 0.783229, 0.000000, 0.000000 -1719, 0.621323, 0.783555, 0.000000, 0.000000 -1720, 0.620912, 0.783880, 0.000000, 0.000000 -1721, 0.620502, 0.784205, 0.000000, 0.000000 -1722, 0.620091, 0.784530, 0.000000, 0.000000 -1723, 0.619680, 0.784855, 0.000000, 0.000000 -1724, 0.619269, 0.785179, 0.000000, 0.000000 -1725, 0.618857, 0.785503, 0.000000, 0.000000 -1726, 0.618446, 0.785827, 0.000000, 0.000000 -1727, 0.618034, 0.786151, 0.000000, 0.000000 -1728, 0.617622, 0.786475, 0.000000, 0.000000 -1729, 0.617210, 0.786798, 0.000000, 0.000000 -1730, 0.616798, 0.787121, 0.000000, 0.000000 -1731, 0.616386, 0.787444, 0.000000, 0.000000 -1732, 0.615973, 0.787767, 0.000000, 0.000000 -1733, 0.615561, 0.788090, 0.000000, 0.000000 -1734, 0.615148, 0.788412, 0.000000, 0.000000 -1735, 0.614735, 0.788734, 0.000000, 0.000000 -1736, 0.614321, 0.789056, 0.000000, 0.000000 -1737, 0.613908, 0.789377, 0.000000, 0.000000 -1738, 0.613495, 0.789699, 0.000000, 0.000000 -1739, 0.613081, 0.790020, 0.000000, 0.000000 -1740, 0.612667, 0.790341, 0.000000, 0.000000 -1741, 0.612253, 0.790662, 0.000000, 0.000000 -1742, 0.611839, 0.790983, 0.000000, 0.000000 -1743, 0.611424, 0.791303, 0.000000, 0.000000 -1744, 0.611010, 0.791623, 0.000000, 0.000000 -1745, 0.610595, 0.791943, 0.000000, 0.000000 -1746, 0.610180, 0.792263, 0.000000, 0.000000 -1747, 0.609765, 0.792582, 0.000000, 0.000000 -1748, 0.609350, 0.792901, 0.000000, 0.000000 -1749, 0.608935, 0.793220, 0.000000, 0.000000 -1750, 0.608519, 0.793539, 0.000000, 0.000000 -1751, 0.608103, 0.793858, 0.000000, 0.000000 -1752, 0.607687, 0.794176, 0.000000, 0.000000 -1753, 0.607271, 0.794494, 0.000000, 0.000000 -1754, 0.606855, 0.794812, 0.000000, 0.000000 -1755, 0.606439, 0.795130, 0.000000, 0.000000 -1756, 0.606022, 0.795448, 0.000000, 0.000000 -1757, 0.605605, 0.795765, 0.000000, 0.000000 -1758, 0.605189, 0.796082, 0.000000, 0.000000 -1759, 0.604772, 0.796399, 0.000000, 0.000000 -1760, 0.604354, 0.796716, 0.000000, 0.000000 -1761, 0.603937, 0.797032, 0.000000, 0.000000 -1762, 0.603519, 0.797348, 0.000000, 0.000000 -1763, 0.603102, 0.797664, 0.000000, 0.000000 -1764, 0.602684, 0.797980, 0.000000, 0.000000 -1765, 0.602266, 0.798296, 0.000000, 0.000000 -1766, 0.601848, 0.798611, 0.000000, 0.000000 -1767, 0.601429, 0.798926, 0.000000, 0.000000 -1768, 0.601011, 0.799241, 0.000000, 0.000000 -1769, 0.600592, 0.799556, 0.000000, 0.000000 -1770, 0.600173, 0.799870, 0.000000, 0.000000 -1771, 0.599754, 0.800184, 0.000000, 0.000000 -1772, 0.599335, 0.800498, 0.000000, 0.000000 -1773, 0.598915, 0.800812, 0.000000, 0.000000 -1774, 0.598496, 0.801126, 0.000000, 0.000000 -1775, 0.598076, 0.801439, 0.000000, 0.000000 -1776, 0.597656, 0.801752, 0.000000, 0.000000 -1777, 0.597236, 0.802065, 0.000000, 0.000000 -1778, 0.596816, 0.802378, 0.000000, 0.000000 -1779, 0.596396, 0.802690, 0.000000, 0.000000 -1780, 0.595975, 0.803003, 0.000000, 0.000000 -1781, 0.595555, 0.803315, 0.000000, 0.000000 -1782, 0.595134, 0.803627, 0.000000, 0.000000 -1783, 0.594713, 0.803938, 0.000000, 0.000000 -1784, 0.594292, 0.804250, 0.000000, 0.000000 -1785, 0.593870, 0.804561, 0.000000, 0.000000 -1786, 0.593449, 0.804872, 0.000000, 0.000000 -1787, 0.593027, 0.805182, 0.000000, 0.000000 -1788, 0.592605, 0.805493, 0.000000, 0.000000 -1789, 0.592183, 0.805803, 0.000000, 0.000000 -1790, 0.591761, 0.806113, 0.000000, 0.000000 -1791, 0.591339, 0.806423, 0.000000, 0.000000 -1792, 0.590917, 0.806733, 0.000000, 0.000000 -1793, 0.590494, 0.807042, 0.000000, 0.000000 -1794, 0.590071, 0.807351, 0.000000, 0.000000 -1795, 0.589648, 0.807660, 0.000000, 0.000000 -1796, 0.589225, 0.807969, 0.000000, 0.000000 -1797, 0.588802, 0.808277, 0.000000, 0.000000 -1798, 0.588378, 0.808586, 0.000000, 0.000000 -1799, 0.587955, 0.808894, 0.000000, 0.000000 -1800, 0.587531, 0.809202, 0.000000, 0.000000 -1801, 0.587107, 0.809509, 0.000000, 0.000000 -1802, 0.586683, 0.809817, 0.000000, 0.000000 -1803, 0.586259, 0.810124, 0.000000, 0.000000 -1804, 0.585834, 0.810431, 0.000000, 0.000000 -1805, 0.585410, 0.810738, 0.000000, 0.000000 -1806, 0.584985, 0.811044, 0.000000, 0.000000 -1807, 0.584560, 0.811350, 0.000000, 0.000000 -1808, 0.584135, 0.811656, 0.000000, 0.000000 -1809, 0.583710, 0.811962, 0.000000, 0.000000 -1810, 0.583285, 0.812268, 0.000000, 0.000000 -1811, 0.582859, 0.812573, 0.000000, 0.000000 -1812, 0.582433, 0.812878, 0.000000, 0.000000 -1813, 0.582008, 0.813183, 0.000000, 0.000000 -1814, 0.581581, 0.813488, 0.000000, 0.000000 -1815, 0.581155, 0.813793, 0.000000, 0.000000 -1816, 0.580729, 0.814097, 0.000000, 0.000000 -1817, 0.580303, 0.814401, 0.000000, 0.000000 -1818, 0.579876, 0.814705, 0.000000, 0.000000 -1819, 0.579449, 0.815008, 0.000000, 0.000000 -1820, 0.579022, 0.815312, 0.000000, 0.000000 -1821, 0.578595, 0.815615, 0.000000, 0.000000 -1822, 0.578168, 0.815918, 0.000000, 0.000000 -1823, 0.577740, 0.816221, 0.000000, 0.000000 -1824, 0.577313, 0.816523, 0.000000, 0.000000 -1825, 0.576885, 0.816825, 0.000000, 0.000000 -1826, 0.576457, 0.817127, 0.000000, 0.000000 -1827, 0.576029, 0.817429, 0.000000, 0.000000 -1828, 0.575601, 0.817731, 0.000000, 0.000000 -1829, 0.575172, 0.818032, 0.000000, 0.000000 -1830, 0.574744, 0.818333, 0.000000, 0.000000 -1831, 0.574315, 0.818634, 0.000000, 0.000000 -1832, 0.573886, 0.818935, 0.000000, 0.000000 -1833, 0.573457, 0.819235, 0.000000, 0.000000 -1834, 0.573028, 0.819536, 0.000000, 0.000000 -1835, 0.572599, 0.819836, 0.000000, 0.000000 -1836, 0.572169, 0.820136, 0.000000, 0.000000 -1837, 0.571740, 0.820435, 0.000000, 0.000000 -1838, 0.571310, 0.820734, 0.000000, 0.000000 -1839, 0.570880, 0.821034, 0.000000, 0.000000 -1840, 0.570450, 0.821333, 0.000000, 0.000000 -1841, 0.570019, 0.821631, 0.000000, 0.000000 -1842, 0.569589, 0.821930, 0.000000, 0.000000 -1843, 0.569158, 0.822228, 0.000000, 0.000000 -1844, 0.568728, 0.822526, 0.000000, 0.000000 -1845, 0.568297, 0.822824, 0.000000, 0.000000 -1846, 0.567866, 0.823121, 0.000000, 0.000000 -1847, 0.567435, 0.823418, 0.000000, 0.000000 -1848, 0.567003, 0.823716, 0.000000, 0.000000 -1849, 0.566572, 0.824012, 0.000000, 0.000000 -1850, 0.566140, 0.824309, 0.000000, 0.000000 -1851, 0.565708, 0.824606, 0.000000, 0.000000 -1852, 0.565276, 0.824902, 0.000000, 0.000000 -1853, 0.564844, 0.825198, 0.000000, 0.000000 -1854, 0.564412, 0.825493, 0.000000, 0.000000 -1855, 0.563979, 0.825789, 0.000000, 0.000000 -1856, 0.563547, 0.826084, 0.000000, 0.000000 -1857, 0.563114, 0.826379, 0.000000, 0.000000 -1858, 0.562681, 0.826674, 0.000000, 0.000000 -1859, 0.562248, 0.826969, 0.000000, 0.000000 -1860, 0.561815, 0.827263, 0.000000, 0.000000 -1861, 0.561381, 0.827557, 0.000000, 0.000000 -1862, 0.560948, 0.827851, 0.000000, 0.000000 -1863, 0.560514, 0.828145, 0.000000, 0.000000 -1864, 0.560080, 0.828438, 0.000000, 0.000000 -1865, 0.559646, 0.828732, 0.000000, 0.000000 -1866, 0.559212, 0.829025, 0.000000, 0.000000 -1867, 0.558778, 0.829317, 0.000000, 0.000000 -1868, 0.558343, 0.829610, 0.000000, 0.000000 -1869, 0.557909, 0.829902, 0.000000, 0.000000 -1870, 0.557474, 0.830194, 0.000000, 0.000000 -1871, 0.557039, 0.830486, 0.000000, 0.000000 -1872, 0.556604, 0.830778, 0.000000, 0.000000 -1873, 0.556169, 0.831069, 0.000000, 0.000000 -1874, 0.555734, 0.831360, 0.000000, 0.000000 -1875, 0.555298, 0.831651, 0.000000, 0.000000 -1876, 0.554862, 0.831942, 0.000000, 0.000000 -1877, 0.554427, 0.832233, 0.000000, 0.000000 -1878, 0.553991, 0.832523, 0.000000, 0.000000 -1879, 0.553554, 0.832813, 0.000000, 0.000000 -1880, 0.553118, 0.833103, 0.000000, 0.000000 -1881, 0.552682, 0.833392, 0.000000, 0.000000 -1882, 0.552245, 0.833682, 0.000000, 0.000000 -1883, 0.551808, 0.833971, 0.000000, 0.000000 -1884, 0.551371, 0.834260, 0.000000, 0.000000 -1885, 0.550934, 0.834549, 0.000000, 0.000000 -1886, 0.550497, 0.834837, 0.000000, 0.000000 -1887, 0.550060, 0.835125, 0.000000, 0.000000 -1888, 0.549622, 0.835413, 0.000000, 0.000000 -1889, 0.549185, 0.835701, 0.000000, 0.000000 -1890, 0.548747, 0.835988, 0.000000, 0.000000 -1891, 0.548309, 0.836276, 0.000000, 0.000000 -1892, 0.547871, 0.836563, 0.000000, 0.000000 -1893, 0.547433, 0.836850, 0.000000, 0.000000 -1894, 0.546994, 0.837136, 0.000000, 0.000000 -1895, 0.546556, 0.837423, 0.000000, 0.000000 -1896, 0.546117, 0.837709, 0.000000, 0.000000 -1897, 0.545678, 0.837995, 0.000000, 0.000000 -1898, 0.545239, 0.838280, 0.000000, 0.000000 -1899, 0.544800, 0.838566, 0.000000, 0.000000 -1900, 0.544361, 0.838851, 0.000000, 0.000000 -1901, 0.543921, 0.839136, 0.000000, 0.000000 -1902, 0.543482, 0.839421, 0.000000, 0.000000 -1903, 0.543042, 0.839706, 0.000000, 0.000000 -1904, 0.542602, 0.839990, 0.000000, 0.000000 -1905, 0.542162, 0.840274, 0.000000, 0.000000 -1906, 0.541722, 0.840558, 0.000000, 0.000000 -1907, 0.541282, 0.840841, 0.000000, 0.000000 -1908, 0.540841, 0.841125, 0.000000, 0.000000 -1909, 0.540400, 0.841408, 0.000000, 0.000000 -1910, 0.539960, 0.841691, 0.000000, 0.000000 -1911, 0.539519, 0.841974, 0.000000, 0.000000 -1912, 0.539078, 0.842256, 0.000000, 0.000000 -1913, 0.538636, 0.842538, 0.000000, 0.000000 -1914, 0.538195, 0.842820, 0.000000, 0.000000 -1915, 0.537754, 0.843102, 0.000000, 0.000000 -1916, 0.537312, 0.843384, 0.000000, 0.000000 -1917, 0.536870, 0.843665, 0.000000, 0.000000 -1918, 0.536428, 0.843946, 0.000000, 0.000000 -1919, 0.535986, 0.844227, 0.000000, 0.000000 -1920, 0.535544, 0.844507, 0.000000, 0.000000 -1921, 0.535101, 0.844788, 0.000000, 0.000000 -1922, 0.534659, 0.845068, 0.000000, 0.000000 -1923, 0.534216, 0.845348, 0.000000, 0.000000 -1924, 0.533773, 0.845628, 0.000000, 0.000000 -1925, 0.533330, 0.845907, 0.000000, 0.000000 -1926, 0.532887, 0.846186, 0.000000, 0.000000 -1927, 0.532444, 0.846465, 0.000000, 0.000000 -1928, 0.532000, 0.846744, 0.000000, 0.000000 -1929, 0.531557, 0.847023, 0.000000, 0.000000 -1930, 0.531113, 0.847301, 0.000000, 0.000000 -1931, 0.530669, 0.847579, 0.000000, 0.000000 -1932, 0.530225, 0.847857, 0.000000, 0.000000 -1933, 0.529781, 0.848134, 0.000000, 0.000000 -1934, 0.529337, 0.848412, 0.000000, 0.000000 -1935, 0.528892, 0.848689, 0.000000, 0.000000 -1936, 0.528448, 0.848966, 0.000000, 0.000000 -1937, 0.528003, 0.849243, 0.000000, 0.000000 -1938, 0.527558, 0.849519, 0.000000, 0.000000 -1939, 0.527113, 0.849795, 0.000000, 0.000000 -1940, 0.526668, 0.850071, 0.000000, 0.000000 -1941, 0.526223, 0.850347, 0.000000, 0.000000 -1942, 0.525777, 0.850622, 0.000000, 0.000000 -1943, 0.525332, 0.850898, 0.000000, 0.000000 -1944, 0.524886, 0.851173, 0.000000, 0.000000 -1945, 0.524440, 0.851447, 0.000000, 0.000000 -1946, 0.523994, 0.851722, 0.000000, 0.000000 -1947, 0.523548, 0.851996, 0.000000, 0.000000 -1948, 0.523101, 0.852270, 0.000000, 0.000000 -1949, 0.522655, 0.852544, 0.000000, 0.000000 -1950, 0.522208, 0.852818, 0.000000, 0.000000 -1951, 0.521761, 0.853091, 0.000000, 0.000000 -1952, 0.521315, 0.853365, 0.000000, 0.000000 -1953, 0.520868, 0.853638, 0.000000, 0.000000 -1954, 0.520420, 0.853910, 0.000000, 0.000000 -1955, 0.519973, 0.854183, 0.000000, 0.000000 -1956, 0.519526, 0.854455, 0.000000, 0.000000 -1957, 0.519078, 0.854727, 0.000000, 0.000000 -1958, 0.518630, 0.854999, 0.000000, 0.000000 -1959, 0.518182, 0.855270, 0.000000, 0.000000 -1960, 0.517734, 0.855541, 0.000000, 0.000000 -1961, 0.517286, 0.855813, 0.000000, 0.000000 -1962, 0.516838, 0.856083, 0.000000, 0.000000 -1963, 0.516389, 0.856354, 0.000000, 0.000000 -1964, 0.515941, 0.856624, 0.000000, 0.000000 -1965, 0.515492, 0.856894, 0.000000, 0.000000 -1966, 0.515043, 0.857164, 0.000000, 0.000000 -1967, 0.514594, 0.857434, 0.000000, 0.000000 -1968, 0.514145, 0.857703, 0.000000, 0.000000 -1969, 0.513696, 0.857973, 0.000000, 0.000000 -1970, 0.513246, 0.858241, 0.000000, 0.000000 -1971, 0.512797, 0.858510, 0.000000, 0.000000 -1972, 0.512347, 0.858779, 0.000000, 0.000000 -1973, 0.511897, 0.859047, 0.000000, 0.000000 -1974, 0.511447, 0.859315, 0.000000, 0.000000 -1975, 0.510997, 0.859583, 0.000000, 0.000000 -1976, 0.510546, 0.859850, 0.000000, 0.000000 -1977, 0.510096, 0.860117, 0.000000, 0.000000 -1978, 0.509645, 0.860385, 0.000000, 0.000000 -1979, 0.509195, 0.860651, 0.000000, 0.000000 -1980, 0.508744, 0.860918, 0.000000, 0.000000 -1981, 0.508293, 0.861184, 0.000000, 0.000000 -1982, 0.507842, 0.861450, 0.000000, 0.000000 -1983, 0.507390, 0.861716, 0.000000, 0.000000 -1984, 0.506939, 0.861982, 0.000000, 0.000000 -1985, 0.506487, 0.862247, 0.000000, 0.000000 -1986, 0.506036, 0.862512, 0.000000, 0.000000 -1987, 0.505584, 0.862777, 0.000000, 0.000000 -1988, 0.505132, 0.863042, 0.000000, 0.000000 -1989, 0.504680, 0.863307, 0.000000, 0.000000 -1990, 0.504228, 0.863571, 0.000000, 0.000000 -1991, 0.503775, 0.863835, 0.000000, 0.000000 -1992, 0.503323, 0.864099, 0.000000, 0.000000 -1993, 0.502870, 0.864362, 0.000000, 0.000000 -1994, 0.502417, 0.864625, 0.000000, 0.000000 -1995, 0.501964, 0.864888, 0.000000, 0.000000 -1996, 0.501511, 0.865151, 0.000000, 0.000000 -1997, 0.501058, 0.865414, 0.000000, 0.000000 -1998, 0.500605, 0.865676, 0.000000, 0.000000 -1999, 0.500151, 0.865938, 0.000000, 0.000000 -2000, 0.499698, 0.866200, 0.000000, 0.000000 -2001, 0.499244, 0.866462, 0.000000, 0.000000 -2002, 0.498790, 0.866723, 0.000000, 0.000000 -2003, 0.498336, 0.866984, 0.000000, 0.000000 -2004, 0.497882, 0.867245, 0.000000, 0.000000 -2005, 0.497427, 0.867506, 0.000000, 0.000000 -2006, 0.496973, 0.867766, 0.000000, 0.000000 -2007, 0.496518, 0.868026, 0.000000, 0.000000 -2008, 0.496064, 0.868286, 0.000000, 0.000000 -2009, 0.495609, 0.868546, 0.000000, 0.000000 -2010, 0.495154, 0.868805, 0.000000, 0.000000 -2011, 0.494699, 0.869065, 0.000000, 0.000000 -2012, 0.494243, 0.869324, 0.000000, 0.000000 -2013, 0.493788, 0.869582, 0.000000, 0.000000 -2014, 0.493332, 0.869841, 0.000000, 0.000000 -2015, 0.492877, 0.870099, 0.000000, 0.000000 -2016, 0.492421, 0.870357, 0.000000, 0.000000 -2017, 0.491965, 0.870615, 0.000000, 0.000000 -2018, 0.491509, 0.870872, 0.000000, 0.000000 -2019, 0.491053, 0.871130, 0.000000, 0.000000 -2020, 0.490596, 0.871387, 0.000000, 0.000000 -2021, 0.490140, 0.871644, 0.000000, 0.000000 -2022, 0.489683, 0.871900, 0.000000, 0.000000 -2023, 0.489227, 0.872157, 0.000000, 0.000000 -2024, 0.488770, 0.872413, 0.000000, 0.000000 -2025, 0.488313, 0.872669, 0.000000, 0.000000 -2026, 0.487856, 0.872924, 0.000000, 0.000000 -2027, 0.487398, 0.873180, 0.000000, 0.000000 -2028, 0.486941, 0.873435, 0.000000, 0.000000 -2029, 0.486483, 0.873690, 0.000000, 0.000000 -2030, 0.486026, 0.873945, 0.000000, 0.000000 -2031, 0.485568, 0.874199, 0.000000, 0.000000 -2032, 0.485110, 0.874453, 0.000000, 0.000000 -2033, 0.484652, 0.874707, 0.000000, 0.000000 -2034, 0.484194, 0.874961, 0.000000, 0.000000 -2035, 0.483735, 0.875214, 0.000000, 0.000000 -2036, 0.483277, 0.875468, 0.000000, 0.000000 -2037, 0.482818, 0.875721, 0.000000, 0.000000 -2038, 0.482359, 0.875973, 0.000000, 0.000000 -2039, 0.481901, 0.876226, 0.000000, 0.000000 -2040, 0.481442, 0.876478, 0.000000, 0.000000 -2041, 0.480982, 0.876730, 0.000000, 0.000000 -2042, 0.480523, 0.876982, 0.000000, 0.000000 -2043, 0.480064, 0.877234, 0.000000, 0.000000 -2044, 0.479604, 0.877485, 0.000000, 0.000000 -2045, 0.479145, 0.877736, 0.000000, 0.000000 -2046, 0.478685, 0.877987, 0.000000, 0.000000 -2047, 0.478225, 0.878237, 0.000000, 0.000000 -2048, 0.477765, 0.878488, 0.000000, 0.000000 -2049, 0.477305, 0.878738, 0.000000, 0.000000 -2050, 0.476844, 0.878988, 0.000000, 0.000000 -2051, 0.476384, 0.879237, 0.000000, 0.000000 -2052, 0.475923, 0.879487, 0.000000, 0.000000 -2053, 0.475462, 0.879736, 0.000000, 0.000000 -2054, 0.475002, 0.879985, 0.000000, 0.000000 -2055, 0.474541, 0.880234, 0.000000, 0.000000 -2056, 0.474079, 0.880482, 0.000000, 0.000000 -2057, 0.473618, 0.880730, 0.000000, 0.000000 -2058, 0.473157, 0.880978, 0.000000, 0.000000 -2059, 0.472695, 0.881226, 0.000000, 0.000000 -2060, 0.472234, 0.881473, 0.000000, 0.000000 -2061, 0.471772, 0.881721, 0.000000, 0.000000 -2062, 0.471310, 0.881968, 0.000000, 0.000000 -2063, 0.470848, 0.882214, 0.000000, 0.000000 -2064, 0.470386, 0.882461, 0.000000, 0.000000 -2065, 0.469924, 0.882707, 0.000000, 0.000000 -2066, 0.469461, 0.882953, 0.000000, 0.000000 -2067, 0.468999, 0.883199, 0.000000, 0.000000 -2068, 0.468536, 0.883444, 0.000000, 0.000000 -2069, 0.468073, 0.883690, 0.000000, 0.000000 -2070, 0.467610, 0.883935, 0.000000, 0.000000 -2071, 0.467147, 0.884179, 0.000000, 0.000000 -2072, 0.466684, 0.884424, 0.000000, 0.000000 -2073, 0.466221, 0.884668, 0.000000, 0.000000 -2074, 0.465757, 0.884912, 0.000000, 0.000000 -2075, 0.465294, 0.885156, 0.000000, 0.000000 -2076, 0.464830, 0.885400, 0.000000, 0.000000 -2077, 0.464366, 0.885643, 0.000000, 0.000000 -2078, 0.463902, 0.885886, 0.000000, 0.000000 -2079, 0.463438, 0.886129, 0.000000, 0.000000 -2080, 0.462974, 0.886372, 0.000000, 0.000000 -2081, 0.462510, 0.886614, 0.000000, 0.000000 -2082, 0.462045, 0.886856, 0.000000, 0.000000 -2083, 0.461581, 0.887098, 0.000000, 0.000000 -2084, 0.461116, 0.887340, 0.000000, 0.000000 -2085, 0.460651, 0.887581, 0.000000, 0.000000 -2086, 0.460186, 0.887822, 0.000000, 0.000000 -2087, 0.459721, 0.888063, 0.000000, 0.000000 -2088, 0.459256, 0.888304, 0.000000, 0.000000 -2089, 0.458791, 0.888544, 0.000000, 0.000000 -2090, 0.458325, 0.888785, 0.000000, 0.000000 -2091, 0.457860, 0.889024, 0.000000, 0.000000 -2092, 0.457394, 0.889264, 0.000000, 0.000000 -2093, 0.456928, 0.889504, 0.000000, 0.000000 -2094, 0.456462, 0.889743, 0.000000, 0.000000 -2095, 0.455996, 0.889982, 0.000000, 0.000000 -2096, 0.455530, 0.890220, 0.000000, 0.000000 -2097, 0.455064, 0.890459, 0.000000, 0.000000 -2098, 0.454597, 0.890697, 0.000000, 0.000000 -2099, 0.454130, 0.890935, 0.000000, 0.000000 -2100, 0.453664, 0.891173, 0.000000, 0.000000 -2101, 0.453197, 0.891410, 0.000000, 0.000000 -2102, 0.452730, 0.891648, 0.000000, 0.000000 -2103, 0.452263, 0.891885, 0.000000, 0.000000 -2104, 0.451796, 0.892121, 0.000000, 0.000000 -2105, 0.451328, 0.892358, 0.000000, 0.000000 -2106, 0.450861, 0.892594, 0.000000, 0.000000 -2107, 0.450393, 0.892830, 0.000000, 0.000000 -2108, 0.449926, 0.893066, 0.000000, 0.000000 -2109, 0.449458, 0.893302, 0.000000, 0.000000 -2110, 0.448990, 0.893537, 0.000000, 0.000000 -2111, 0.448522, 0.893772, 0.000000, 0.000000 -2112, 0.448054, 0.894007, 0.000000, 0.000000 -2113, 0.447585, 0.894241, 0.000000, 0.000000 -2114, 0.447117, 0.894476, 0.000000, 0.000000 -2115, 0.446648, 0.894710, 0.000000, 0.000000 -2116, 0.446180, 0.894943, 0.000000, 0.000000 -2117, 0.445711, 0.895177, 0.000000, 0.000000 -2118, 0.445242, 0.895410, 0.000000, 0.000000 -2119, 0.444773, 0.895643, 0.000000, 0.000000 -2120, 0.444304, 0.895876, 0.000000, 0.000000 -2121, 0.443834, 0.896109, 0.000000, 0.000000 -2122, 0.443365, 0.896341, 0.000000, 0.000000 -2123, 0.442895, 0.896573, 0.000000, 0.000000 -2124, 0.442426, 0.896805, 0.000000, 0.000000 -2125, 0.441956, 0.897037, 0.000000, 0.000000 -2126, 0.441486, 0.897268, 0.000000, 0.000000 -2127, 0.441016, 0.897499, 0.000000, 0.000000 -2128, 0.440546, 0.897730, 0.000000, 0.000000 -2129, 0.440076, 0.897961, 0.000000, 0.000000 -2130, 0.439605, 0.898191, 0.000000, 0.000000 -2131, 0.439135, 0.898421, 0.000000, 0.000000 -2132, 0.438664, 0.898651, 0.000000, 0.000000 -2133, 0.438193, 0.898881, 0.000000, 0.000000 -2134, 0.437722, 0.899110, 0.000000, 0.000000 -2135, 0.437251, 0.899339, 0.000000, 0.000000 -2136, 0.436780, 0.899568, 0.000000, 0.000000 -2137, 0.436309, 0.899797, 0.000000, 0.000000 -2138, 0.435838, 0.900025, 0.000000, 0.000000 -2139, 0.435366, 0.900253, 0.000000, 0.000000 -2140, 0.434895, 0.900481, 0.000000, 0.000000 -2141, 0.434423, 0.900709, 0.000000, 0.000000 -2142, 0.433951, 0.900936, 0.000000, 0.000000 -2143, 0.433479, 0.901164, 0.000000, 0.000000 -2144, 0.433007, 0.901390, 0.000000, 0.000000 -2145, 0.432535, 0.901617, 0.000000, 0.000000 -2146, 0.432063, 0.901844, 0.000000, 0.000000 -2147, 0.431590, 0.902070, 0.000000, 0.000000 -2148, 0.431118, 0.902296, 0.000000, 0.000000 -2149, 0.430645, 0.902521, 0.000000, 0.000000 -2150, 0.430172, 0.902747, 0.000000, 0.000000 -2151, 0.429699, 0.902972, 0.000000, 0.000000 -2152, 0.429226, 0.903197, 0.000000, 0.000000 -2153, 0.428753, 0.903422, 0.000000, 0.000000 -2154, 0.428280, 0.903646, 0.000000, 0.000000 -2155, 0.427807, 0.903870, 0.000000, 0.000000 -2156, 0.427333, 0.904094, 0.000000, 0.000000 -2157, 0.426860, 0.904318, 0.000000, 0.000000 -2158, 0.426386, 0.904541, 0.000000, 0.000000 -2159, 0.425912, 0.904765, 0.000000, 0.000000 -2160, 0.425438, 0.904988, 0.000000, 0.000000 -2161, 0.424964, 0.905210, 0.000000, 0.000000 -2162, 0.424490, 0.905433, 0.000000, 0.000000 -2163, 0.424015, 0.905655, 0.000000, 0.000000 -2164, 0.423541, 0.905877, 0.000000, 0.000000 -2165, 0.423067, 0.906099, 0.000000, 0.000000 -2166, 0.422592, 0.906320, 0.000000, 0.000000 -2167, 0.422117, 0.906541, 0.000000, 0.000000 -2168, 0.421642, 0.906762, 0.000000, 0.000000 -2169, 0.421167, 0.906983, 0.000000, 0.000000 -2170, 0.420692, 0.907203, 0.000000, 0.000000 -2171, 0.420217, 0.907424, 0.000000, 0.000000 -2172, 0.419742, 0.907644, 0.000000, 0.000000 -2173, 0.419266, 0.907863, 0.000000, 0.000000 -2174, 0.418791, 0.908083, 0.000000, 0.000000 -2175, 0.418315, 0.908302, 0.000000, 0.000000 -2176, 0.417839, 0.908521, 0.000000, 0.000000 -2177, 0.417363, 0.908740, 0.000000, 0.000000 -2178, 0.416887, 0.908958, 0.000000, 0.000000 -2179, 0.416411, 0.909177, 0.000000, 0.000000 -2180, 0.415935, 0.909394, 0.000000, 0.000000 -2181, 0.415458, 0.909612, 0.000000, 0.000000 -2182, 0.414982, 0.909830, 0.000000, 0.000000 -2183, 0.414505, 0.910047, 0.000000, 0.000000 -2184, 0.414029, 0.910264, 0.000000, 0.000000 -2185, 0.413552, 0.910481, 0.000000, 0.000000 -2186, 0.413075, 0.910697, 0.000000, 0.000000 -2187, 0.412598, 0.910913, 0.000000, 0.000000 -2188, 0.412121, 0.911129, 0.000000, 0.000000 -2189, 0.411643, 0.911345, 0.000000, 0.000000 -2190, 0.411166, 0.911561, 0.000000, 0.000000 -2191, 0.410688, 0.911776, 0.000000, 0.000000 -2192, 0.410211, 0.911991, 0.000000, 0.000000 -2193, 0.409733, 0.912206, 0.000000, 0.000000 -2194, 0.409255, 0.912420, 0.000000, 0.000000 -2195, 0.408777, 0.912634, 0.000000, 0.000000 -2196, 0.408299, 0.912848, 0.000000, 0.000000 -2197, 0.407821, 0.913062, 0.000000, 0.000000 -2198, 0.407343, 0.913275, 0.000000, 0.000000 -2199, 0.406864, 0.913489, 0.000000, 0.000000 -2200, 0.406386, 0.913702, 0.000000, 0.000000 -2201, 0.405907, 0.913914, 0.000000, 0.000000 -2202, 0.405428, 0.914127, 0.000000, 0.000000 -2203, 0.404950, 0.914339, 0.000000, 0.000000 -2204, 0.404471, 0.914551, 0.000000, 0.000000 -2205, 0.403991, 0.914763, 0.000000, 0.000000 -2206, 0.403512, 0.914974, 0.000000, 0.000000 -2207, 0.403033, 0.915185, 0.000000, 0.000000 -2208, 0.402554, 0.915396, 0.000000, 0.000000 -2209, 0.402074, 0.915607, 0.000000, 0.000000 -2210, 0.401594, 0.915818, 0.000000, 0.000000 -2211, 0.401115, 0.916028, 0.000000, 0.000000 -2212, 0.400635, 0.916238, 0.000000, 0.000000 -2213, 0.400155, 0.916448, 0.000000, 0.000000 -2214, 0.399675, 0.916657, 0.000000, 0.000000 -2215, 0.399195, 0.916866, 0.000000, 0.000000 -2216, 0.398714, 0.917075, 0.000000, 0.000000 -2217, 0.398234, 0.917284, 0.000000, 0.000000 -2218, 0.397753, 0.917492, 0.000000, 0.000000 -2219, 0.397273, 0.917701, 0.000000, 0.000000 -2220, 0.396792, 0.917908, 0.000000, 0.000000 -2221, 0.396311, 0.918116, 0.000000, 0.000000 -2222, 0.395830, 0.918324, 0.000000, 0.000000 -2223, 0.395349, 0.918531, 0.000000, 0.000000 -2224, 0.394868, 0.918738, 0.000000, 0.000000 -2225, 0.394387, 0.918944, 0.000000, 0.000000 -2226, 0.393906, 0.919151, 0.000000, 0.000000 -2227, 0.393424, 0.919357, 0.000000, 0.000000 -2228, 0.392942, 0.919563, 0.000000, 0.000000 -2229, 0.392461, 0.919769, 0.000000, 0.000000 -2230, 0.391979, 0.919974, 0.000000, 0.000000 -2231, 0.391497, 0.920179, 0.000000, 0.000000 -2232, 0.391015, 0.920384, 0.000000, 0.000000 -2233, 0.390533, 0.920589, 0.000000, 0.000000 -2234, 0.390051, 0.920793, 0.000000, 0.000000 -2235, 0.389568, 0.920998, 0.000000, 0.000000 -2236, 0.389086, 0.921201, 0.000000, 0.000000 -2237, 0.388603, 0.921405, 0.000000, 0.000000 -2238, 0.388121, 0.921609, 0.000000, 0.000000 -2239, 0.387638, 0.921812, 0.000000, 0.000000 -2240, 0.387155, 0.922015, 0.000000, 0.000000 -2241, 0.386672, 0.922217, 0.000000, 0.000000 -2242, 0.386189, 0.922420, 0.000000, 0.000000 -2243, 0.385706, 0.922622, 0.000000, 0.000000 -2244, 0.385222, 0.922824, 0.000000, 0.000000 -2245, 0.384739, 0.923025, 0.000000, 0.000000 -2246, 0.384256, 0.923227, 0.000000, 0.000000 -2247, 0.383772, 0.923428, 0.000000, 0.000000 -2248, 0.383288, 0.923629, 0.000000, 0.000000 -2249, 0.382804, 0.923829, 0.000000, 0.000000 -2250, 0.382320, 0.924030, 0.000000, 0.000000 -2251, 0.381836, 0.924230, 0.000000, 0.000000 -2252, 0.381352, 0.924430, 0.000000, 0.000000 -2253, 0.380868, 0.924629, 0.000000, 0.000000 -2254, 0.380384, 0.924829, 0.000000, 0.000000 -2255, 0.379899, 0.925028, 0.000000, 0.000000 -2256, 0.379415, 0.925227, 0.000000, 0.000000 -2257, 0.378930, 0.925425, 0.000000, 0.000000 -2258, 0.378445, 0.925624, 0.000000, 0.000000 -2259, 0.377960, 0.925822, 0.000000, 0.000000 -2260, 0.377475, 0.926020, 0.000000, 0.000000 -2261, 0.376990, 0.926217, 0.000000, 0.000000 -2262, 0.376505, 0.926415, 0.000000, 0.000000 -2263, 0.376020, 0.926612, 0.000000, 0.000000 -2264, 0.375535, 0.926808, 0.000000, 0.000000 -2265, 0.375049, 0.927005, 0.000000, 0.000000 -2266, 0.374563, 0.927201, 0.000000, 0.000000 -2267, 0.374078, 0.927397, 0.000000, 0.000000 -2268, 0.373592, 0.927593, 0.000000, 0.000000 -2269, 0.373106, 0.927789, 0.000000, 0.000000 -2270, 0.372620, 0.927984, 0.000000, 0.000000 -2271, 0.372134, 0.928179, 0.000000, 0.000000 -2272, 0.371648, 0.928374, 0.000000, 0.000000 -2273, 0.371161, 0.928568, 0.000000, 0.000000 -2274, 0.370675, 0.928763, 0.000000, 0.000000 -2275, 0.370188, 0.928957, 0.000000, 0.000000 -2276, 0.369702, 0.929150, 0.000000, 0.000000 -2277, 0.369215, 0.929344, 0.000000, 0.000000 -2278, 0.368728, 0.929537, 0.000000, 0.000000 -2279, 0.368241, 0.929730, 0.000000, 0.000000 -2280, 0.367754, 0.929923, 0.000000, 0.000000 -2281, 0.367267, 0.930115, 0.000000, 0.000000 -2282, 0.366780, 0.930308, 0.000000, 0.000000 -2283, 0.366293, 0.930500, 0.000000, 0.000000 -2284, 0.365805, 0.930691, 0.000000, 0.000000 -2285, 0.365318, 0.930883, 0.000000, 0.000000 -2286, 0.364830, 0.931074, 0.000000, 0.000000 -2287, 0.364342, 0.931265, 0.000000, 0.000000 -2288, 0.363855, 0.931456, 0.000000, 0.000000 -2289, 0.363367, 0.931646, 0.000000, 0.000000 -2290, 0.362879, 0.931836, 0.000000, 0.000000 -2291, 0.362391, 0.932026, 0.000000, 0.000000 -2292, 0.361902, 0.932216, 0.000000, 0.000000 -2293, 0.361414, 0.932405, 0.000000, 0.000000 -2294, 0.360926, 0.932595, 0.000000, 0.000000 -2295, 0.360437, 0.932784, 0.000000, 0.000000 -2296, 0.359948, 0.932972, 0.000000, 0.000000 -2297, 0.359460, 0.933161, 0.000000, 0.000000 -2298, 0.358971, 0.933349, 0.000000, 0.000000 -2299, 0.358482, 0.933537, 0.000000, 0.000000 -2300, 0.357993, 0.933724, 0.000000, 0.000000 -2301, 0.357504, 0.933912, 0.000000, 0.000000 -2302, 0.357015, 0.934099, 0.000000, 0.000000 -2303, 0.356525, 0.934286, 0.000000, 0.000000 -2304, 0.356036, 0.934472, 0.000000, 0.000000 -2305, 0.355547, 0.934659, 0.000000, 0.000000 -2306, 0.355057, 0.934845, 0.000000, 0.000000 -2307, 0.354567, 0.935031, 0.000000, 0.000000 -2308, 0.354077, 0.935216, 0.000000, 0.000000 -2309, 0.353588, 0.935401, 0.000000, 0.000000 -2310, 0.353098, 0.935587, 0.000000, 0.000000 -2311, 0.352607, 0.935771, 0.000000, 0.000000 -2312, 0.352117, 0.935956, 0.000000, 0.000000 -2313, 0.351627, 0.936140, 0.000000, 0.000000 -2314, 0.351137, 0.936324, 0.000000, 0.000000 -2315, 0.350646, 0.936508, 0.000000, 0.000000 -2316, 0.350156, 0.936692, 0.000000, 0.000000 -2317, 0.349665, 0.936875, 0.000000, 0.000000 -2318, 0.349174, 0.937058, 0.000000, 0.000000 -2319, 0.348683, 0.937241, 0.000000, 0.000000 -2320, 0.348192, 0.937423, 0.000000, 0.000000 -2321, 0.347701, 0.937605, 0.000000, 0.000000 -2322, 0.347210, 0.937787, 0.000000, 0.000000 -2323, 0.346719, 0.937969, 0.000000, 0.000000 -2324, 0.346228, 0.938151, 0.000000, 0.000000 -2325, 0.345736, 0.938332, 0.000000, 0.000000 -2326, 0.345245, 0.938513, 0.000000, 0.000000 -2327, 0.344753, 0.938693, 0.000000, 0.000000 -2328, 0.344261, 0.938874, 0.000000, 0.000000 -2329, 0.343770, 0.939054, 0.000000, 0.000000 -2330, 0.343278, 0.939234, 0.000000, 0.000000 -2331, 0.342786, 0.939414, 0.000000, 0.000000 -2332, 0.342294, 0.939593, 0.000000, 0.000000 -2333, 0.341801, 0.939772, 0.000000, 0.000000 -2334, 0.341309, 0.939951, 0.000000, 0.000000 -2335, 0.340817, 0.940130, 0.000000, 0.000000 -2336, 0.340324, 0.940308, 0.000000, 0.000000 -2337, 0.339832, 0.940486, 0.000000, 0.000000 -2338, 0.339339, 0.940664, 0.000000, 0.000000 -2339, 0.338846, 0.940842, 0.000000, 0.000000 -2340, 0.338354, 0.941019, 0.000000, 0.000000 -2341, 0.337861, 0.941196, 0.000000, 0.000000 -2342, 0.337368, 0.941373, 0.000000, 0.000000 -2343, 0.336874, 0.941550, 0.000000, 0.000000 -2344, 0.336381, 0.941726, 0.000000, 0.000000 -2345, 0.335888, 0.941902, 0.000000, 0.000000 -2346, 0.335395, 0.942078, 0.000000, 0.000000 -2347, 0.334901, 0.942253, 0.000000, 0.000000 -2348, 0.334407, 0.942429, 0.000000, 0.000000 -2349, 0.333914, 0.942604, 0.000000, 0.000000 -2350, 0.333420, 0.942778, 0.000000, 0.000000 -2351, 0.332926, 0.942953, 0.000000, 0.000000 -2352, 0.332432, 0.943127, 0.000000, 0.000000 -2353, 0.331938, 0.943301, 0.000000, 0.000000 -2354, 0.331444, 0.943475, 0.000000, 0.000000 -2355, 0.330950, 0.943648, 0.000000, 0.000000 -2356, 0.330456, 0.943822, 0.000000, 0.000000 -2357, 0.329961, 0.943994, 0.000000, 0.000000 -2358, 0.329467, 0.944167, 0.000000, 0.000000 -2359, 0.328972, 0.944340, 0.000000, 0.000000 -2360, 0.328478, 0.944512, 0.000000, 0.000000 -2361, 0.327983, 0.944684, 0.000000, 0.000000 -2362, 0.327488, 0.944855, 0.000000, 0.000000 -2363, 0.326993, 0.945027, 0.000000, 0.000000 -2364, 0.326498, 0.945198, 0.000000, 0.000000 -2365, 0.326003, 0.945369, 0.000000, 0.000000 -2366, 0.325508, 0.945539, 0.000000, 0.000000 -2367, 0.325012, 0.945710, 0.000000, 0.000000 -2368, 0.324517, 0.945880, 0.000000, 0.000000 -2369, 0.324021, 0.946050, 0.000000, 0.000000 -2370, 0.323526, 0.946219, 0.000000, 0.000000 -2371, 0.323030, 0.946389, 0.000000, 0.000000 -2372, 0.322535, 0.946558, 0.000000, 0.000000 -2373, 0.322039, 0.946727, 0.000000, 0.000000 -2374, 0.321543, 0.946895, 0.000000, 0.000000 -2375, 0.321047, 0.947063, 0.000000, 0.000000 -2376, 0.320551, 0.947231, 0.000000, 0.000000 -2377, 0.320055, 0.947399, 0.000000, 0.000000 -2378, 0.319558, 0.947567, 0.000000, 0.000000 -2379, 0.319062, 0.947734, 0.000000, 0.000000 -2380, 0.318565, 0.947901, 0.000000, 0.000000 -2381, 0.318069, 0.948068, 0.000000, 0.000000 -2382, 0.317572, 0.948234, 0.000000, 0.000000 -2383, 0.317076, 0.948400, 0.000000, 0.000000 -2384, 0.316579, 0.948566, 0.000000, 0.000000 -2385, 0.316082, 0.948732, 0.000000, 0.000000 -2386, 0.315585, 0.948897, 0.000000, 0.000000 -2387, 0.315088, 0.949062, 0.000000, 0.000000 -2388, 0.314591, 0.949227, 0.000000, 0.000000 -2389, 0.314094, 0.949392, 0.000000, 0.000000 -2390, 0.313596, 0.949556, 0.000000, 0.000000 -2391, 0.313099, 0.949721, 0.000000, 0.000000 -2392, 0.312601, 0.949884, 0.000000, 0.000000 -2393, 0.312104, 0.950048, 0.000000, 0.000000 -2394, 0.311606, 0.950211, 0.000000, 0.000000 -2395, 0.311108, 0.950374, 0.000000, 0.000000 -2396, 0.310611, 0.950537, 0.000000, 0.000000 -2397, 0.310113, 0.950700, 0.000000, 0.000000 -2398, 0.309615, 0.950862, 0.000000, 0.000000 -2399, 0.309117, 0.951024, 0.000000, 0.000000 -2400, 0.308618, 0.951186, 0.000000, 0.000000 -2401, 0.308120, 0.951347, 0.000000, 0.000000 -2402, 0.307622, 0.951509, 0.000000, 0.000000 -2403, 0.307123, 0.951670, 0.000000, 0.000000 -2404, 0.306625, 0.951830, 0.000000, 0.000000 -2405, 0.306126, 0.951991, 0.000000, 0.000000 -2406, 0.305628, 0.952151, 0.000000, 0.000000 -2407, 0.305129, 0.952311, 0.000000, 0.000000 -2408, 0.304630, 0.952471, 0.000000, 0.000000 -2409, 0.304131, 0.952630, 0.000000, 0.000000 -2410, 0.303632, 0.952789, 0.000000, 0.000000 -2411, 0.303133, 0.952948, 0.000000, 0.000000 -2412, 0.302634, 0.953107, 0.000000, 0.000000 -2413, 0.302135, 0.953265, 0.000000, 0.000000 -2414, 0.301635, 0.953423, 0.000000, 0.000000 -2415, 0.301136, 0.953581, 0.000000, 0.000000 -2416, 0.300636, 0.953739, 0.000000, 0.000000 -2417, 0.300137, 0.953896, 0.000000, 0.000000 -2418, 0.299637, 0.954053, 0.000000, 0.000000 -2419, 0.299137, 0.954210, 0.000000, 0.000000 -2420, 0.298638, 0.954367, 0.000000, 0.000000 -2421, 0.298138, 0.954523, 0.000000, 0.000000 -2422, 0.297638, 0.954679, 0.000000, 0.000000 -2423, 0.297138, 0.954835, 0.000000, 0.000000 -2424, 0.296637, 0.954990, 0.000000, 0.000000 -2425, 0.296137, 0.955145, 0.000000, 0.000000 -2426, 0.295637, 0.955300, 0.000000, 0.000000 -2427, 0.295136, 0.955455, 0.000000, 0.000000 -2428, 0.294636, 0.955610, 0.000000, 0.000000 -2429, 0.294135, 0.955764, 0.000000, 0.000000 -2430, 0.293635, 0.955918, 0.000000, 0.000000 -2431, 0.293134, 0.956071, 0.000000, 0.000000 -2432, 0.292633, 0.956225, 0.000000, 0.000000 -2433, 0.292132, 0.956378, 0.000000, 0.000000 -2434, 0.291631, 0.956531, 0.000000, 0.000000 -2435, 0.291130, 0.956683, 0.000000, 0.000000 -2436, 0.290629, 0.956836, 0.000000, 0.000000 -2437, 0.290128, 0.956988, 0.000000, 0.000000 -2438, 0.289627, 0.957140, 0.000000, 0.000000 -2439, 0.289125, 0.957291, 0.000000, 0.000000 -2440, 0.288624, 0.957443, 0.000000, 0.000000 -2441, 0.288122, 0.957594, 0.000000, 0.000000 -2442, 0.287621, 0.957744, 0.000000, 0.000000 -2443, 0.287119, 0.957895, 0.000000, 0.000000 -2444, 0.286617, 0.958045, 0.000000, 0.000000 -2445, 0.286116, 0.958195, 0.000000, 0.000000 -2446, 0.285614, 0.958345, 0.000000, 0.000000 -2447, 0.285112, 0.958494, 0.000000, 0.000000 -2448, 0.284610, 0.958644, 0.000000, 0.000000 -2449, 0.284107, 0.958792, 0.000000, 0.000000 -2450, 0.283605, 0.958941, 0.000000, 0.000000 -2451, 0.283103, 0.959090, 0.000000, 0.000000 -2452, 0.282600, 0.959238, 0.000000, 0.000000 -2453, 0.282098, 0.959386, 0.000000, 0.000000 -2454, 0.281595, 0.959533, 0.000000, 0.000000 -2455, 0.281093, 0.959681, 0.000000, 0.000000 -2456, 0.280590, 0.959828, 0.000000, 0.000000 -2457, 0.280087, 0.959975, 0.000000, 0.000000 -2458, 0.279585, 0.960121, 0.000000, 0.000000 -2459, 0.279082, 0.960267, 0.000000, 0.000000 -2460, 0.278579, 0.960413, 0.000000, 0.000000 -2461, 0.278076, 0.960559, 0.000000, 0.000000 -2462, 0.277572, 0.960705, 0.000000, 0.000000 -2463, 0.277069, 0.960850, 0.000000, 0.000000 -2464, 0.276566, 0.960995, 0.000000, 0.000000 -2465, 0.276062, 0.961140, 0.000000, 0.000000 -2466, 0.275559, 0.961284, 0.000000, 0.000000 -2467, 0.275056, 0.961428, 0.000000, 0.000000 -2468, 0.274552, 0.961572, 0.000000, 0.000000 -2469, 0.274048, 0.961716, 0.000000, 0.000000 -2470, 0.273544, 0.961859, 0.000000, 0.000000 -2471, 0.273041, 0.962003, 0.000000, 0.000000 -2472, 0.272537, 0.962145, 0.000000, 0.000000 -2473, 0.272033, 0.962288, 0.000000, 0.000000 -2474, 0.271529, 0.962430, 0.000000, 0.000000 -2475, 0.271025, 0.962572, 0.000000, 0.000000 -2476, 0.270520, 0.962714, 0.000000, 0.000000 -2477, 0.270016, 0.962856, 0.000000, 0.000000 -2478, 0.269512, 0.962997, 0.000000, 0.000000 -2479, 0.269007, 0.963138, 0.000000, 0.000000 -2480, 0.268503, 0.963279, 0.000000, 0.000000 -2481, 0.267998, 0.963419, 0.000000, 0.000000 -2482, 0.267494, 0.963560, 0.000000, 0.000000 -2483, 0.266989, 0.963700, 0.000000, 0.000000 -2484, 0.266484, 0.963839, 0.000000, 0.000000 -2485, 0.265979, 0.963979, 0.000000, 0.000000 -2486, 0.265474, 0.964118, 0.000000, 0.000000 -2487, 0.264969, 0.964257, 0.000000, 0.000000 -2488, 0.264464, 0.964396, 0.000000, 0.000000 -2489, 0.263959, 0.964534, 0.000000, 0.000000 -2490, 0.263454, 0.964672, 0.000000, 0.000000 -2491, 0.262948, 0.964810, 0.000000, 0.000000 -2492, 0.262443, 0.964947, 0.000000, 0.000000 -2493, 0.261938, 0.965085, 0.000000, 0.000000 -2494, 0.261432, 0.965222, 0.000000, 0.000000 -2495, 0.260926, 0.965359, 0.000000, 0.000000 -2496, 0.260421, 0.965495, 0.000000, 0.000000 -2497, 0.259915, 0.965631, 0.000000, 0.000000 -2498, 0.259409, 0.965767, 0.000000, 0.000000 -2499, 0.258903, 0.965903, 0.000000, 0.000000 -2500, 0.258397, 0.966039, 0.000000, 0.000000 -2501, 0.257891, 0.966174, 0.000000, 0.000000 -2502, 0.257385, 0.966309, 0.000000, 0.000000 -2503, 0.256879, 0.966444, 0.000000, 0.000000 -2504, 0.256373, 0.966578, 0.000000, 0.000000 -2505, 0.255867, 0.966712, 0.000000, 0.000000 -2506, 0.255360, 0.966846, 0.000000, 0.000000 -2507, 0.254854, 0.966980, 0.000000, 0.000000 -2508, 0.254347, 0.967113, 0.000000, 0.000000 -2509, 0.253841, 0.967246, 0.000000, 0.000000 -2510, 0.253334, 0.967379, 0.000000, 0.000000 -2511, 0.252827, 0.967511, 0.000000, 0.000000 -2512, 0.252321, 0.967644, 0.000000, 0.000000 -2513, 0.251814, 0.967776, 0.000000, 0.000000 -2514, 0.251307, 0.967907, 0.000000, 0.000000 -2515, 0.250800, 0.968039, 0.000000, 0.000000 -2516, 0.250293, 0.968170, 0.000000, 0.000000 -2517, 0.249786, 0.968301, 0.000000, 0.000000 -2518, 0.249278, 0.968432, 0.000000, 0.000000 -2519, 0.248771, 0.968562, 0.000000, 0.000000 -2520, 0.248264, 0.968692, 0.000000, 0.000000 -2521, 0.247756, 0.968822, 0.000000, 0.000000 -2522, 0.247249, 0.968952, 0.000000, 0.000000 -2523, 0.246741, 0.969081, 0.000000, 0.000000 -2524, 0.246234, 0.969210, 0.000000, 0.000000 -2525, 0.245726, 0.969339, 0.000000, 0.000000 -2526, 0.245218, 0.969468, 0.000000, 0.000000 -2527, 0.244710, 0.969596, 0.000000, 0.000000 -2528, 0.244203, 0.969724, 0.000000, 0.000000 -2529, 0.243695, 0.969852, 0.000000, 0.000000 -2530, 0.243187, 0.969980, 0.000000, 0.000000 -2531, 0.242678, 0.970107, 0.000000, 0.000000 -2532, 0.242170, 0.970234, 0.000000, 0.000000 -2533, 0.241662, 0.970360, 0.000000, 0.000000 -2534, 0.241154, 0.970487, 0.000000, 0.000000 -2535, 0.240646, 0.970613, 0.000000, 0.000000 -2536, 0.240137, 0.970739, 0.000000, 0.000000 -2537, 0.239629, 0.970865, 0.000000, 0.000000 -2538, 0.239120, 0.970990, 0.000000, 0.000000 -2539, 0.238611, 0.971115, 0.000000, 0.000000 -2540, 0.238103, 0.971240, 0.000000, 0.000000 -2541, 0.237594, 0.971365, 0.000000, 0.000000 -2542, 0.237085, 0.971489, 0.000000, 0.000000 -2543, 0.236576, 0.971613, 0.000000, 0.000000 -2544, 0.236067, 0.971737, 0.000000, 0.000000 -2545, 0.235558, 0.971860, 0.000000, 0.000000 -2546, 0.235049, 0.971983, 0.000000, 0.000000 -2547, 0.234540, 0.972106, 0.000000, 0.000000 -2548, 0.234031, 0.972229, 0.000000, 0.000000 -2549, 0.233522, 0.972352, 0.000000, 0.000000 -2550, 0.233012, 0.972474, 0.000000, 0.000000 -2551, 0.232503, 0.972596, 0.000000, 0.000000 -2552, 0.231994, 0.972717, 0.000000, 0.000000 -2553, 0.231484, 0.972839, 0.000000, 0.000000 -2554, 0.230975, 0.972960, 0.000000, 0.000000 -2555, 0.230465, 0.973081, 0.000000, 0.000000 -2556, 0.229955, 0.973201, 0.000000, 0.000000 -2557, 0.229445, 0.973322, 0.000000, 0.000000 -2558, 0.228936, 0.973442, 0.000000, 0.000000 -2559, 0.228426, 0.973561, 0.000000, 0.000000 -2560, 0.227916, 0.973681, 0.000000, 0.000000 -2561, 0.227406, 0.973800, 0.000000, 0.000000 -2562, 0.226896, 0.973919, 0.000000, 0.000000 -2563, 0.226385, 0.974038, 0.000000, 0.000000 -2564, 0.225875, 0.974156, 0.000000, 0.000000 -2565, 0.225365, 0.974274, 0.000000, 0.000000 -2566, 0.224855, 0.974392, 0.000000, 0.000000 -2567, 0.224344, 0.974510, 0.000000, 0.000000 -2568, 0.223834, 0.974627, 0.000000, 0.000000 -2569, 0.223323, 0.974744, 0.000000, 0.000000 -2570, 0.222813, 0.974861, 0.000000, 0.000000 -2571, 0.222302, 0.974978, 0.000000, 0.000000 -2572, 0.221791, 0.975094, 0.000000, 0.000000 -2573, 0.221281, 0.975210, 0.000000, 0.000000 -2574, 0.220770, 0.975326, 0.000000, 0.000000 -2575, 0.220259, 0.975441, 0.000000, 0.000000 -2576, 0.219748, 0.975557, 0.000000, 0.000000 -2577, 0.219237, 0.975672, 0.000000, 0.000000 -2578, 0.218726, 0.975786, 0.000000, 0.000000 -2579, 0.218215, 0.975901, 0.000000, 0.000000 -2580, 0.217704, 0.976015, 0.000000, 0.000000 -2581, 0.217192, 0.976129, 0.000000, 0.000000 -2582, 0.216681, 0.976242, 0.000000, 0.000000 -2583, 0.216170, 0.976356, 0.000000, 0.000000 -2584, 0.215658, 0.976469, 0.000000, 0.000000 -2585, 0.215147, 0.976582, 0.000000, 0.000000 -2586, 0.214635, 0.976694, 0.000000, 0.000000 -2587, 0.214124, 0.976807, 0.000000, 0.000000 -2588, 0.213612, 0.976919, 0.000000, 0.000000 -2589, 0.213100, 0.977030, 0.000000, 0.000000 -2590, 0.212589, 0.977142, 0.000000, 0.000000 -2591, 0.212077, 0.977253, 0.000000, 0.000000 -2592, 0.211565, 0.977364, 0.000000, 0.000000 -2593, 0.211053, 0.977475, 0.000000, 0.000000 -2594, 0.210541, 0.977585, 0.000000, 0.000000 -2595, 0.210029, 0.977695, 0.000000, 0.000000 -2596, 0.209517, 0.977805, 0.000000, 0.000000 -2597, 0.209005, 0.977915, 0.000000, 0.000000 -2598, 0.208492, 0.978024, 0.000000, 0.000000 -2599, 0.207980, 0.978133, 0.000000, 0.000000 -2600, 0.207468, 0.978242, 0.000000, 0.000000 -2601, 0.206955, 0.978350, 0.000000, 0.000000 -2602, 0.206443, 0.978459, 0.000000, 0.000000 -2603, 0.205930, 0.978567, 0.000000, 0.000000 -2604, 0.205418, 0.978674, 0.000000, 0.000000 -2605, 0.204905, 0.978782, 0.000000, 0.000000 -2606, 0.204392, 0.978889, 0.000000, 0.000000 -2607, 0.203880, 0.978996, 0.000000, 0.000000 -2608, 0.203367, 0.979103, 0.000000, 0.000000 -2609, 0.202854, 0.979209, 0.000000, 0.000000 -2610, 0.202341, 0.979315, 0.000000, 0.000000 -2611, 0.201828, 0.979421, 0.000000, 0.000000 -2612, 0.201315, 0.979527, 0.000000, 0.000000 -2613, 0.200802, 0.979632, 0.000000, 0.000000 -2614, 0.200289, 0.979737, 0.000000, 0.000000 -2615, 0.199776, 0.979842, 0.000000, 0.000000 -2616, 0.199262, 0.979946, 0.000000, 0.000000 -2617, 0.198749, 0.980050, 0.000000, 0.000000 -2618, 0.198236, 0.980154, 0.000000, 0.000000 -2619, 0.197722, 0.980258, 0.000000, 0.000000 -2620, 0.197209, 0.980361, 0.000000, 0.000000 -2621, 0.196695, 0.980465, 0.000000, 0.000000 -2622, 0.196182, 0.980568, 0.000000, 0.000000 -2623, 0.195668, 0.980670, 0.000000, 0.000000 -2624, 0.195155, 0.980773, 0.000000, 0.000000 -2625, 0.194641, 0.980875, 0.000000, 0.000000 -2626, 0.194127, 0.980976, 0.000000, 0.000000 -2627, 0.193613, 0.981078, 0.000000, 0.000000 -2628, 0.193099, 0.981179, 0.000000, 0.000000 -2629, 0.192585, 0.981280, 0.000000, 0.000000 -2630, 0.192071, 0.981381, 0.000000, 0.000000 -2631, 0.191557, 0.981481, 0.000000, 0.000000 -2632, 0.191043, 0.981582, 0.000000, 0.000000 -2633, 0.190529, 0.981682, 0.000000, 0.000000 -2634, 0.190015, 0.981781, 0.000000, 0.000000 -2635, 0.189501, 0.981881, 0.000000, 0.000000 -2636, 0.188986, 0.981980, 0.000000, 0.000000 -2637, 0.188472, 0.982079, 0.000000, 0.000000 -2638, 0.187958, 0.982177, 0.000000, 0.000000 -2639, 0.187443, 0.982275, 0.000000, 0.000000 -2640, 0.186929, 0.982374, 0.000000, 0.000000 -2641, 0.186414, 0.982471, 0.000000, 0.000000 -2642, 0.185899, 0.982569, 0.000000, 0.000000 -2643, 0.185385, 0.982666, 0.000000, 0.000000 -2644, 0.184870, 0.982763, 0.000000, 0.000000 -2645, 0.184355, 0.982860, 0.000000, 0.000000 -2646, 0.183840, 0.982956, 0.000000, 0.000000 -2647, 0.183326, 0.983052, 0.000000, 0.000000 -2648, 0.182811, 0.983148, 0.000000, 0.000000 -2649, 0.182296, 0.983244, 0.000000, 0.000000 -2650, 0.181781, 0.983339, 0.000000, 0.000000 -2651, 0.181266, 0.983434, 0.000000, 0.000000 -2652, 0.180750, 0.983529, 0.000000, 0.000000 -2653, 0.180235, 0.983624, 0.000000, 0.000000 -2654, 0.179720, 0.983718, 0.000000, 0.000000 -2655, 0.179205, 0.983812, 0.000000, 0.000000 -2656, 0.178689, 0.983906, 0.000000, 0.000000 -2657, 0.178174, 0.983999, 0.000000, 0.000000 -2658, 0.177659, 0.984092, 0.000000, 0.000000 -2659, 0.177143, 0.984185, 0.000000, 0.000000 -2660, 0.176628, 0.984278, 0.000000, 0.000000 -2661, 0.176112, 0.984370, 0.000000, 0.000000 -2662, 0.175596, 0.984462, 0.000000, 0.000000 -2663, 0.175081, 0.984554, 0.000000, 0.000000 -2664, 0.174565, 0.984646, 0.000000, 0.000000 -2665, 0.174049, 0.984737, 0.000000, 0.000000 -2666, 0.173534, 0.984828, 0.000000, 0.000000 -2667, 0.173018, 0.984919, 0.000000, 0.000000 -2668, 0.172502, 0.985009, 0.000000, 0.000000 -2669, 0.171986, 0.985099, 0.000000, 0.000000 -2670, 0.171470, 0.985189, 0.000000, 0.000000 -2671, 0.170954, 0.985279, 0.000000, 0.000000 -2672, 0.170438, 0.985368, 0.000000, 0.000000 -2673, 0.169922, 0.985458, 0.000000, 0.000000 -2674, 0.169405, 0.985546, 0.000000, 0.000000 -2675, 0.168889, 0.985635, 0.000000, 0.000000 -2676, 0.168373, 0.985723, 0.000000, 0.000000 -2677, 0.167857, 0.985811, 0.000000, 0.000000 -2678, 0.167340, 0.985899, 0.000000, 0.000000 -2679, 0.166824, 0.985987, 0.000000, 0.000000 -2680, 0.166307, 0.986074, 0.000000, 0.000000 -2681, 0.165791, 0.986161, 0.000000, 0.000000 -2682, 0.165274, 0.986248, 0.000000, 0.000000 -2683, 0.164758, 0.986334, 0.000000, 0.000000 -2684, 0.164241, 0.986420, 0.000000, 0.000000 -2685, 0.163724, 0.986506, 0.000000, 0.000000 -2686, 0.163208, 0.986592, 0.000000, 0.000000 -2687, 0.162691, 0.986677, 0.000000, 0.000000 -2688, 0.162174, 0.986762, 0.000000, 0.000000 -2689, 0.161657, 0.986847, 0.000000, 0.000000 -2690, 0.161140, 0.986932, 0.000000, 0.000000 -2691, 0.160623, 0.987016, 0.000000, 0.000000 -2692, 0.160106, 0.987100, 0.000000, 0.000000 -2693, 0.159589, 0.987183, 0.000000, 0.000000 -2694, 0.159072, 0.987267, 0.000000, 0.000000 -2695, 0.158555, 0.987350, 0.000000, 0.000000 -2696, 0.158038, 0.987433, 0.000000, 0.000000 -2697, 0.157521, 0.987516, 0.000000, 0.000000 -2698, 0.157003, 0.987598, 0.000000, 0.000000 -2699, 0.156486, 0.987680, 0.000000, 0.000000 -2700, 0.155969, 0.987762, 0.000000, 0.000000 -2701, 0.155451, 0.987844, 0.000000, 0.000000 -2702, 0.154934, 0.987925, 0.000000, 0.000000 -2703, 0.154417, 0.988006, 0.000000, 0.000000 -2704, 0.153899, 0.988087, 0.000000, 0.000000 -2705, 0.153382, 0.988167, 0.000000, 0.000000 -2706, 0.152864, 0.988247, 0.000000, 0.000000 -2707, 0.152346, 0.988327, 0.000000, 0.000000 -2708, 0.151829, 0.988407, 0.000000, 0.000000 -2709, 0.151311, 0.988486, 0.000000, 0.000000 -2710, 0.150793, 0.988565, 0.000000, 0.000000 -2711, 0.150275, 0.988644, 0.000000, 0.000000 -2712, 0.149757, 0.988723, 0.000000, 0.000000 -2713, 0.149240, 0.988801, 0.000000, 0.000000 -2714, 0.148722, 0.988879, 0.000000, 0.000000 -2715, 0.148204, 0.988957, 0.000000, 0.000000 -2716, 0.147686, 0.989034, 0.000000, 0.000000 -2717, 0.147168, 0.989112, 0.000000, 0.000000 -2718, 0.146650, 0.989189, 0.000000, 0.000000 -2719, 0.146131, 0.989265, 0.000000, 0.000000 -2720, 0.145613, 0.989342, 0.000000, 0.000000 -2721, 0.145095, 0.989418, 0.000000, 0.000000 -2722, 0.144577, 0.989494, 0.000000, 0.000000 -2723, 0.144058, 0.989569, 0.000000, 0.000000 -2724, 0.143540, 0.989644, 0.000000, 0.000000 -2725, 0.143022, 0.989720, 0.000000, 0.000000 -2726, 0.142503, 0.989794, 0.000000, 0.000000 -2727, 0.141985, 0.989869, 0.000000, 0.000000 -2728, 0.141466, 0.989943, 0.000000, 0.000000 -2729, 0.140948, 0.990017, 0.000000, 0.000000 -2730, 0.140429, 0.990091, 0.000000, 0.000000 -2731, 0.139911, 0.990164, 0.000000, 0.000000 -2732, 0.139392, 0.990237, 0.000000, 0.000000 -2733, 0.138873, 0.990310, 0.000000, 0.000000 -2734, 0.138355, 0.990383, 0.000000, 0.000000 -2735, 0.137836, 0.990455, 0.000000, 0.000000 -2736, 0.137317, 0.990527, 0.000000, 0.000000 -2737, 0.136798, 0.990599, 0.000000, 0.000000 -2738, 0.136279, 0.990670, 0.000000, 0.000000 -2739, 0.135761, 0.990742, 0.000000, 0.000000 -2740, 0.135242, 0.990813, 0.000000, 0.000000 -2741, 0.134723, 0.990883, 0.000000, 0.000000 -2742, 0.134204, 0.990954, 0.000000, 0.000000 -2743, 0.133685, 0.991024, 0.000000, 0.000000 -2744, 0.133165, 0.991094, 0.000000, 0.000000 -2745, 0.132646, 0.991163, 0.000000, 0.000000 -2746, 0.132127, 0.991233, 0.000000, 0.000000 -2747, 0.131608, 0.991302, 0.000000, 0.000000 -2748, 0.131089, 0.991371, 0.000000, 0.000000 -2749, 0.130569, 0.991439, 0.000000, 0.000000 -2750, 0.130050, 0.991507, 0.000000, 0.000000 -2751, 0.129531, 0.991575, 0.000000, 0.000000 -2752, 0.129011, 0.991643, 0.000000, 0.000000 -2753, 0.128492, 0.991711, 0.000000, 0.000000 -2754, 0.127973, 0.991778, 0.000000, 0.000000 -2755, 0.127453, 0.991845, 0.000000, 0.000000 -2756, 0.126934, 0.991911, 0.000000, 0.000000 -2757, 0.126414, 0.991978, 0.000000, 0.000000 -2758, 0.125894, 0.992044, 0.000000, 0.000000 -2759, 0.125375, 0.992109, 0.000000, 0.000000 -2760, 0.124855, 0.992175, 0.000000, 0.000000 -2761, 0.124335, 0.992240, 0.000000, 0.000000 -2762, 0.123816, 0.992305, 0.000000, 0.000000 -2763, 0.123296, 0.992370, 0.000000, 0.000000 -2764, 0.122776, 0.992434, 0.000000, 0.000000 -2765, 0.122256, 0.992499, 0.000000, 0.000000 -2766, 0.121736, 0.992562, 0.000000, 0.000000 -2767, 0.121217, 0.992626, 0.000000, 0.000000 -2768, 0.120697, 0.992689, 0.000000, 0.000000 -2769, 0.120177, 0.992753, 0.000000, 0.000000 -2770, 0.119657, 0.992815, 0.000000, 0.000000 -2771, 0.119137, 0.992878, 0.000000, 0.000000 -2772, 0.118617, 0.992940, 0.000000, 0.000000 -2773, 0.118097, 0.993002, 0.000000, 0.000000 -2774, 0.117576, 0.993064, 0.000000, 0.000000 -2775, 0.117056, 0.993125, 0.000000, 0.000000 -2776, 0.116536, 0.993186, 0.000000, 0.000000 -2777, 0.116016, 0.993247, 0.000000, 0.000000 -2778, 0.115496, 0.993308, 0.000000, 0.000000 -2779, 0.114975, 0.993368, 0.000000, 0.000000 -2780, 0.114455, 0.993428, 0.000000, 0.000000 -2781, 0.113935, 0.993488, 0.000000, 0.000000 -2782, 0.113414, 0.993548, 0.000000, 0.000000 -2783, 0.112894, 0.993607, 0.000000, 0.000000 -2784, 0.112373, 0.993666, 0.000000, 0.000000 -2785, 0.111853, 0.993725, 0.000000, 0.000000 -2786, 0.111332, 0.993783, 0.000000, 0.000000 -2787, 0.110812, 0.993841, 0.000000, 0.000000 -2788, 0.110291, 0.993899, 0.000000, 0.000000 -2789, 0.109771, 0.993957, 0.000000, 0.000000 -2790, 0.109250, 0.994014, 0.000000, 0.000000 -2791, 0.108729, 0.994071, 0.000000, 0.000000 -2792, 0.108209, 0.994128, 0.000000, 0.000000 -2793, 0.107688, 0.994185, 0.000000, 0.000000 -2794, 0.107167, 0.994241, 0.000000, 0.000000 -2795, 0.106647, 0.994297, 0.000000, 0.000000 -2796, 0.106126, 0.994353, 0.000000, 0.000000 -2797, 0.105605, 0.994408, 0.000000, 0.000000 -2798, 0.105084, 0.994463, 0.000000, 0.000000 -2799, 0.104563, 0.994518, 0.000000, 0.000000 -2800, 0.104042, 0.994573, 0.000000, 0.000000 -2801, 0.103521, 0.994627, 0.000000, 0.000000 -2802, 0.103000, 0.994681, 0.000000, 0.000000 -2803, 0.102479, 0.994735, 0.000000, 0.000000 -2804, 0.101958, 0.994789, 0.000000, 0.000000 -2805, 0.101437, 0.994842, 0.000000, 0.000000 -2806, 0.100916, 0.994895, 0.000000, 0.000000 -2807, 0.100395, 0.994948, 0.000000, 0.000000 -2808, 0.099874, 0.995000, 0.000000, 0.000000 -2809, 0.099353, 0.995052, 0.000000, 0.000000 -2810, 0.098832, 0.995104, 0.000000, 0.000000 -2811, 0.098310, 0.995156, 0.000000, 0.000000 -2812, 0.097789, 0.995207, 0.000000, 0.000000 -2813, 0.097268, 0.995258, 0.000000, 0.000000 -2814, 0.096747, 0.995309, 0.000000, 0.000000 -2815, 0.096225, 0.995360, 0.000000, 0.000000 -2816, 0.095704, 0.995410, 0.000000, 0.000000 -2817, 0.095182, 0.995460, 0.000000, 0.000000 -2818, 0.094661, 0.995510, 0.000000, 0.000000 -2819, 0.094140, 0.995559, 0.000000, 0.000000 -2820, 0.093618, 0.995608, 0.000000, 0.000000 -2821, 0.093097, 0.995657, 0.000000, 0.000000 -2822, 0.092575, 0.995706, 0.000000, 0.000000 -2823, 0.092054, 0.995754, 0.000000, 0.000000 -2824, 0.091532, 0.995802, 0.000000, 0.000000 -2825, 0.091010, 0.995850, 0.000000, 0.000000 -2826, 0.090489, 0.995897, 0.000000, 0.000000 -2827, 0.089967, 0.995945, 0.000000, 0.000000 -2828, 0.089446, 0.995992, 0.000000, 0.000000 -2829, 0.088924, 0.996038, 0.000000, 0.000000 -2830, 0.088402, 0.996085, 0.000000, 0.000000 -2831, 0.087880, 0.996131, 0.000000, 0.000000 -2832, 0.087359, 0.996177, 0.000000, 0.000000 -2833, 0.086837, 0.996223, 0.000000, 0.000000 -2834, 0.086315, 0.996268, 0.000000, 0.000000 -2835, 0.085793, 0.996313, 0.000000, 0.000000 -2836, 0.085271, 0.996358, 0.000000, 0.000000 -2837, 0.084750, 0.996402, 0.000000, 0.000000 -2838, 0.084228, 0.996447, 0.000000, 0.000000 -2839, 0.083706, 0.996491, 0.000000, 0.000000 -2840, 0.083184, 0.996534, 0.000000, 0.000000 -2841, 0.082662, 0.996578, 0.000000, 0.000000 -2842, 0.082140, 0.996621, 0.000000, 0.000000 -2843, 0.081618, 0.996664, 0.000000, 0.000000 -2844, 0.081096, 0.996706, 0.000000, 0.000000 -2845, 0.080574, 0.996749, 0.000000, 0.000000 -2846, 0.080052, 0.996791, 0.000000, 0.000000 -2847, 0.079529, 0.996833, 0.000000, 0.000000 -2848, 0.079007, 0.996874, 0.000000, 0.000000 -2849, 0.078485, 0.996915, 0.000000, 0.000000 -2850, 0.077963, 0.996956, 0.000000, 0.000000 -2851, 0.077441, 0.996997, 0.000000, 0.000000 -2852, 0.076919, 0.997037, 0.000000, 0.000000 -2853, 0.076396, 0.997078, 0.000000, 0.000000 -2854, 0.075874, 0.997117, 0.000000, 0.000000 -2855, 0.075352, 0.997157, 0.000000, 0.000000 -2856, 0.074830, 0.997196, 0.000000, 0.000000 -2857, 0.074307, 0.997235, 0.000000, 0.000000 -2858, 0.073785, 0.997274, 0.000000, 0.000000 -2859, 0.073263, 0.997313, 0.000000, 0.000000 -2860, 0.072740, 0.997351, 0.000000, 0.000000 -2861, 0.072218, 0.997389, 0.000000, 0.000000 -2862, 0.071695, 0.997427, 0.000000, 0.000000 -2863, 0.071173, 0.997464, 0.000000, 0.000000 -2864, 0.070650, 0.997501, 0.000000, 0.000000 -2865, 0.070128, 0.997538, 0.000000, 0.000000 -2866, 0.069606, 0.997575, 0.000000, 0.000000 -2867, 0.069083, 0.997611, 0.000000, 0.000000 -2868, 0.068560, 0.997647, 0.000000, 0.000000 -2869, 0.068038, 0.997683, 0.000000, 0.000000 -2870, 0.067515, 0.997718, 0.000000, 0.000000 -2871, 0.066993, 0.997753, 0.000000, 0.000000 -2872, 0.066470, 0.997788, 0.000000, 0.000000 -2873, 0.065948, 0.997823, 0.000000, 0.000000 -2874, 0.065425, 0.997857, 0.000000, 0.000000 -2875, 0.064902, 0.997892, 0.000000, 0.000000 -2876, 0.064380, 0.997925, 0.000000, 0.000000 -2877, 0.063857, 0.997959, 0.000000, 0.000000 -2878, 0.063334, 0.997992, 0.000000, 0.000000 -2879, 0.062811, 0.998025, 0.000000, 0.000000 -2880, 0.062289, 0.998058, 0.000000, 0.000000 -2881, 0.061766, 0.998091, 0.000000, 0.000000 -2882, 0.061243, 0.998123, 0.000000, 0.000000 -2883, 0.060720, 0.998155, 0.000000, 0.000000 -2884, 0.060198, 0.998186, 0.000000, 0.000000 -2885, 0.059675, 0.998218, 0.000000, 0.000000 -2886, 0.059152, 0.998249, 0.000000, 0.000000 -2887, 0.058629, 0.998280, 0.000000, 0.000000 -2888, 0.058106, 0.998310, 0.000000, 0.000000 -2889, 0.057583, 0.998341, 0.000000, 0.000000 -2890, 0.057060, 0.998371, 0.000000, 0.000000 -2891, 0.056537, 0.998400, 0.000000, 0.000000 -2892, 0.056014, 0.998430, 0.000000, 0.000000 -2893, 0.055491, 0.998459, 0.000000, 0.000000 -2894, 0.054968, 0.998488, 0.000000, 0.000000 -2895, 0.054445, 0.998517, 0.000000, 0.000000 -2896, 0.053922, 0.998545, 0.000000, 0.000000 -2897, 0.053399, 0.998573, 0.000000, 0.000000 -2898, 0.052876, 0.998601, 0.000000, 0.000000 -2899, 0.052353, 0.998629, 0.000000, 0.000000 -2900, 0.051830, 0.998656, 0.000000, 0.000000 -2901, 0.051307, 0.998683, 0.000000, 0.000000 -2902, 0.050784, 0.998710, 0.000000, 0.000000 -2903, 0.050261, 0.998736, 0.000000, 0.000000 -2904, 0.049738, 0.998762, 0.000000, 0.000000 -2905, 0.049215, 0.998788, 0.000000, 0.000000 -2906, 0.048692, 0.998814, 0.000000, 0.000000 -2907, 0.048169, 0.998839, 0.000000, 0.000000 -2908, 0.047645, 0.998864, 0.000000, 0.000000 -2909, 0.047122, 0.998889, 0.000000, 0.000000 -2910, 0.046599, 0.998914, 0.000000, 0.000000 -2911, 0.046076, 0.998938, 0.000000, 0.000000 -2912, 0.045553, 0.998962, 0.000000, 0.000000 -2913, 0.045029, 0.998986, 0.000000, 0.000000 -2914, 0.044506, 0.999009, 0.000000, 0.000000 -2915, 0.043983, 0.999032, 0.000000, 0.000000 -2916, 0.043459, 0.999055, 0.000000, 0.000000 -2917, 0.042936, 0.999078, 0.000000, 0.000000 -2918, 0.042413, 0.999100, 0.000000, 0.000000 -2919, 0.041890, 0.999122, 0.000000, 0.000000 -2920, 0.041366, 0.999144, 0.000000, 0.000000 -2921, 0.040843, 0.999166, 0.000000, 0.000000 -2922, 0.040320, 0.999187, 0.000000, 0.000000 -2923, 0.039796, 0.999208, 0.000000, 0.000000 -2924, 0.039273, 0.999229, 0.000000, 0.000000 -2925, 0.038750, 0.999249, 0.000000, 0.000000 -2926, 0.038226, 0.999269, 0.000000, 0.000000 -2927, 0.037703, 0.999289, 0.000000, 0.000000 -2928, 0.037179, 0.999309, 0.000000, 0.000000 -2929, 0.036656, 0.999328, 0.000000, 0.000000 -2930, 0.036132, 0.999347, 0.000000, 0.000000 -2931, 0.035609, 0.999366, 0.000000, 0.000000 -2932, 0.035086, 0.999384, 0.000000, 0.000000 -2933, 0.034562, 0.999403, 0.000000, 0.000000 -2934, 0.034039, 0.999421, 0.000000, 0.000000 -2935, 0.033515, 0.999438, 0.000000, 0.000000 -2936, 0.032992, 0.999456, 0.000000, 0.000000 -2937, 0.032468, 0.999473, 0.000000, 0.000000 -2938, 0.031945, 0.999490, 0.000000, 0.000000 -2939, 0.031421, 0.999506, 0.000000, 0.000000 -2940, 0.030898, 0.999523, 0.000000, 0.000000 -2941, 0.030374, 0.999539, 0.000000, 0.000000 -2942, 0.029851, 0.999554, 0.000000, 0.000000 -2943, 0.029327, 0.999570, 0.000000, 0.000000 -2944, 0.028804, 0.999585, 0.000000, 0.000000 -2945, 0.028280, 0.999600, 0.000000, 0.000000 -2946, 0.027756, 0.999615, 0.000000, 0.000000 -2947, 0.027233, 0.999629, 0.000000, 0.000000 -2948, 0.026709, 0.999643, 0.000000, 0.000000 -2949, 0.026186, 0.999657, 0.000000, 0.000000 -2950, 0.025662, 0.999671, 0.000000, 0.000000 -2951, 0.025138, 0.999684, 0.000000, 0.000000 -2952, 0.024615, 0.999697, 0.000000, 0.000000 -2953, 0.024091, 0.999710, 0.000000, 0.000000 -2954, 0.023568, 0.999722, 0.000000, 0.000000 -2955, 0.023044, 0.999734, 0.000000, 0.000000 -2956, 0.022520, 0.999746, 0.000000, 0.000000 -2957, 0.021997, 0.999758, 0.000000, 0.000000 -2958, 0.021473, 0.999769, 0.000000, 0.000000 -2959, 0.020949, 0.999781, 0.000000, 0.000000 -2960, 0.020426, 0.999791, 0.000000, 0.000000 -2961, 0.019902, 0.999802, 0.000000, 0.000000 -2962, 0.019378, 0.999812, 0.000000, 0.000000 -2963, 0.018855, 0.999822, 0.000000, 0.000000 -2964, 0.018331, 0.999832, 0.000000, 0.000000 -2965, 0.017807, 0.999841, 0.000000, 0.000000 -2966, 0.017284, 0.999851, 0.000000, 0.000000 -2967, 0.016760, 0.999860, 0.000000, 0.000000 -2968, 0.016236, 0.999868, 0.000000, 0.000000 -2969, 0.015713, 0.999877, 0.000000, 0.000000 -2970, 0.015189, 0.999885, 0.000000, 0.000000 -2971, 0.014665, 0.999892, 0.000000, 0.000000 -2972, 0.014141, 0.999900, 0.000000, 0.000000 -2973, 0.013618, 0.999907, 0.000000, 0.000000 -2974, 0.013094, 0.999914, 0.000000, 0.000000 -2975, 0.012570, 0.999921, 0.000000, 0.000000 -2976, 0.012046, 0.999927, 0.000000, 0.000000 -2977, 0.011523, 0.999934, 0.000000, 0.000000 -2978, 0.010999, 0.999940, 0.000000, 0.000000 -2979, 0.010475, 0.999945, 0.000000, 0.000000 -2980, 0.009952, 0.999950, 0.000000, 0.000000 -2981, 0.009428, 0.999956, 0.000000, 0.000000 -2982, 0.008904, 0.999960, 0.000000, 0.000000 -2983, 0.008380, 0.999965, 0.000000, 0.000000 -2984, 0.007857, 0.999969, 0.000000, 0.000000 -2985, 0.007333, 0.999973, 0.000000, 0.000000 -2986, 0.006809, 0.999977, 0.000000, 0.000000 -2987, 0.006285, 0.999980, 0.000000, 0.000000 -2988, 0.005761, 0.999983, 0.000000, 0.000000 -2989, 0.005238, 0.999986, 0.000000, 0.000000 -2990, 0.004714, 0.999989, 0.000000, 0.000000 -2991, 0.004190, 0.999991, 0.000000, 0.000000 -2992, 0.003666, 0.999993, 0.000000, 0.000000 -2993, 0.003143, 0.999995, 0.000000, 0.000000 -2994, 0.002619, 0.999997, 0.000000, 0.000000 -2995, 0.002095, 0.999998, 0.000000, 0.000000 -2996, 0.001571, 0.999999, 0.000000, 0.000000 -2997, 0.001048, 0.999999, 0.000000, 0.000000 -2998, 0.000524, 1.000000, 0.000000, 0.000000 -2999, 0.000000, 1.000000, 0.000000, 0.000000 + 1.000000, 0.000000, 0.000000, 0.000000 + 1.000000, 0.000524, 0.000000, 0.000000 + 0.999999, 0.001048, 0.000000, 0.000000 + 0.999999, 0.001571, 0.000000, 0.000000 + 0.999998, 0.002095, 0.000000, 0.000000 + 0.999997, 0.002619, 0.000000, 0.000000 + 0.999995, 0.003143, 0.000000, 0.000000 + 0.999993, 0.003666, 0.000000, 0.000000 + 0.999991, 0.004190, 0.000000, 0.000000 + 0.999989, 0.004714, 0.000000, 0.000000 + 0.999986, 0.005238, 0.000000, 0.000000 + 0.999983, 0.005761, 0.000000, 0.000000 + 0.999980, 0.006285, 0.000000, 0.000000 + 0.999977, 0.006809, 0.000000, 0.000000 + 0.999973, 0.007333, 0.000000, 0.000000 + 0.999969, 0.007857, 0.000000, 0.000000 + 0.999965, 0.008380, 0.000000, 0.000000 + 0.999960, 0.008904, 0.000000, 0.000000 + 0.999956, 0.009428, 0.000000, 0.000000 + 0.999950, 0.009952, 0.000000, 0.000000 + 0.999945, 0.010475, 0.000000, 0.000000 + 0.999940, 0.010999, 0.000000, 0.000000 + 0.999934, 0.011523, 0.000000, 0.000000 + 0.999927, 0.012046, 0.000000, 0.000000 + 0.999921, 0.012570, 0.000000, 0.000000 + 0.999914, 0.013094, 0.000000, 0.000000 + 0.999907, 0.013618, 0.000000, 0.000000 + 0.999900, 0.014141, 0.000000, 0.000000 + 0.999892, 0.014665, 0.000000, 0.000000 + 0.999885, 0.015189, 0.000000, 0.000000 + 0.999877, 0.015713, 0.000000, 0.000000 + 0.999868, 0.016236, 0.000000, 0.000000 + 0.999860, 0.016760, 0.000000, 0.000000 + 0.999851, 0.017284, 0.000000, 0.000000 + 0.999841, 0.017807, 0.000000, 0.000000 + 0.999832, 0.018331, 0.000000, 0.000000 + 0.999822, 0.018855, 0.000000, 0.000000 + 0.999812, 0.019378, 0.000000, 0.000000 + 0.999802, 0.019902, 0.000000, 0.000000 + 0.999791, 0.020426, 0.000000, 0.000000 + 0.999781, 0.020949, 0.000000, 0.000000 + 0.999769, 0.021473, 0.000000, 0.000000 + 0.999758, 0.021997, 0.000000, 0.000000 + 0.999746, 0.022520, 0.000000, 0.000000 + 0.999734, 0.023044, 0.000000, 0.000000 + 0.999722, 0.023568, 0.000000, 0.000000 + 0.999710, 0.024091, 0.000000, 0.000000 + 0.999697, 0.024615, 0.000000, 0.000000 + 0.999684, 0.025138, 0.000000, 0.000000 + 0.999671, 0.025662, 0.000000, 0.000000 + 0.999657, 0.026186, 0.000000, 0.000000 + 0.999643, 0.026709, 0.000000, 0.000000 + 0.999629, 0.027233, 0.000000, 0.000000 + 0.999615, 0.027756, 0.000000, 0.000000 + 0.999600, 0.028280, 0.000000, 0.000000 + 0.999585, 0.028804, 0.000000, 0.000000 + 0.999570, 0.029327, 0.000000, 0.000000 + 0.999554, 0.029851, 0.000000, 0.000000 + 0.999539, 0.030374, 0.000000, 0.000000 + 0.999523, 0.030898, 0.000000, 0.000000 + 0.999506, 0.031421, 0.000000, 0.000000 + 0.999490, 0.031945, 0.000000, 0.000000 + 0.999473, 0.032468, 0.000000, 0.000000 + 0.999456, 0.032992, 0.000000, 0.000000 + 0.999438, 0.033515, 0.000000, 0.000000 + 0.999421, 0.034039, 0.000000, 0.000000 + 0.999403, 0.034562, 0.000000, 0.000000 + 0.999384, 0.035086, 0.000000, 0.000000 + 0.999366, 0.035609, 0.000000, 0.000000 + 0.999347, 0.036132, 0.000000, 0.000000 + 0.999328, 0.036656, 0.000000, 0.000000 + 0.999309, 0.037179, 0.000000, 0.000000 + 0.999289, 0.037703, 0.000000, 0.000000 + 0.999269, 0.038226, 0.000000, 0.000000 + 0.999249, 0.038750, 0.000000, 0.000000 + 0.999229, 0.039273, 0.000000, 0.000000 + 0.999208, 0.039796, 0.000000, 0.000000 + 0.999187, 0.040320, 0.000000, 0.000000 + 0.999166, 0.040843, 0.000000, 0.000000 + 0.999144, 0.041366, 0.000000, 0.000000 + 0.999122, 0.041890, 0.000000, 0.000000 + 0.999100, 0.042413, 0.000000, 0.000000 + 0.999078, 0.042936, 0.000000, 0.000000 + 0.999055, 0.043459, 0.000000, 0.000000 + 0.999032, 0.043983, 0.000000, 0.000000 + 0.999009, 0.044506, 0.000000, 0.000000 + 0.998986, 0.045029, 0.000000, 0.000000 + 0.998962, 0.045553, 0.000000, 0.000000 + 0.998938, 0.046076, 0.000000, 0.000000 + 0.998914, 0.046599, 0.000000, 0.000000 + 0.998889, 0.047122, 0.000000, 0.000000 + 0.998864, 0.047645, 0.000000, 0.000000 + 0.998839, 0.048169, 0.000000, 0.000000 + 0.998814, 0.048692, 0.000000, 0.000000 + 0.998788, 0.049215, 0.000000, 0.000000 + 0.998762, 0.049738, 0.000000, 0.000000 + 0.998736, 0.050261, 0.000000, 0.000000 + 0.998710, 0.050784, 0.000000, 0.000000 + 0.998683, 0.051307, 0.000000, 0.000000 + 0.998656, 0.051830, 0.000000, 0.000000 + 0.998629, 0.052353, 0.000000, 0.000000 + 0.998601, 0.052876, 0.000000, 0.000000 + 0.998573, 0.053399, 0.000000, 0.000000 + 0.998545, 0.053922, 0.000000, 0.000000 + 0.998517, 0.054445, 0.000000, 0.000000 + 0.998488, 0.054968, 0.000000, 0.000000 + 0.998459, 0.055491, 0.000000, 0.000000 + 0.998430, 0.056014, 0.000000, 0.000000 + 0.998400, 0.056537, 0.000000, 0.000000 + 0.998371, 0.057060, 0.000000, 0.000000 + 0.998341, 0.057583, 0.000000, 0.000000 + 0.998310, 0.058106, 0.000000, 0.000000 + 0.998280, 0.058629, 0.000000, 0.000000 + 0.998249, 0.059152, 0.000000, 0.000000 + 0.998218, 0.059675, 0.000000, 0.000000 + 0.998186, 0.060198, 0.000000, 0.000000 + 0.998155, 0.060720, 0.000000, 0.000000 + 0.998123, 0.061243, 0.000000, 0.000000 + 0.998091, 0.061766, 0.000000, 0.000000 + 0.998058, 0.062289, 0.000000, 0.000000 + 0.998025, 0.062811, 0.000000, 0.000000 + 0.997992, 0.063334, 0.000000, 0.000000 + 0.997959, 0.063857, 0.000000, 0.000000 + 0.997925, 0.064380, 0.000000, 0.000000 + 0.997892, 0.064902, 0.000000, 0.000000 + 0.997857, 0.065425, 0.000000, 0.000000 + 0.997823, 0.065948, 0.000000, 0.000000 + 0.997788, 0.066470, 0.000000, 0.000000 + 0.997753, 0.066993, 0.000000, 0.000000 + 0.997718, 0.067515, 0.000000, 0.000000 + 0.997683, 0.068038, 0.000000, 0.000000 + 0.997647, 0.068560, 0.000000, 0.000000 + 0.997611, 0.069083, 0.000000, 0.000000 + 0.997575, 0.069606, 0.000000, 0.000000 + 0.997538, 0.070128, 0.000000, 0.000000 + 0.997501, 0.070650, 0.000000, 0.000000 + 0.997464, 0.071173, 0.000000, 0.000000 + 0.997427, 0.071695, 0.000000, 0.000000 + 0.997389, 0.072218, 0.000000, 0.000000 + 0.997351, 0.072740, 0.000000, 0.000000 + 0.997313, 0.073263, 0.000000, 0.000000 + 0.997274, 0.073785, 0.000000, 0.000000 + 0.997235, 0.074307, 0.000000, 0.000000 + 0.997196, 0.074830, 0.000000, 0.000000 + 0.997157, 0.075352, 0.000000, 0.000000 + 0.997117, 0.075874, 0.000000, 0.000000 + 0.997078, 0.076396, 0.000000, 0.000000 + 0.997037, 0.076919, 0.000000, 0.000000 + 0.996997, 0.077441, 0.000000, 0.000000 + 0.996956, 0.077963, 0.000000, 0.000000 + 0.996915, 0.078485, 0.000000, 0.000000 + 0.996874, 0.079007, 0.000000, 0.000000 + 0.996833, 0.079529, 0.000000, 0.000000 + 0.996791, 0.080052, 0.000000, 0.000000 + 0.996749, 0.080574, 0.000000, 0.000000 + 0.996706, 0.081096, 0.000000, 0.000000 + 0.996664, 0.081618, 0.000000, 0.000000 + 0.996621, 0.082140, 0.000000, 0.000000 + 0.996578, 0.082662, 0.000000, 0.000000 + 0.996534, 0.083184, 0.000000, 0.000000 + 0.996491, 0.083706, 0.000000, 0.000000 + 0.996447, 0.084228, 0.000000, 0.000000 + 0.996402, 0.084750, 0.000000, 0.000000 + 0.996358, 0.085271, 0.000000, 0.000000 + 0.996313, 0.085793, 0.000000, 0.000000 + 0.996268, 0.086315, 0.000000, 0.000000 + 0.996223, 0.086837, 0.000000, 0.000000 + 0.996177, 0.087359, 0.000000, 0.000000 + 0.996131, 0.087880, 0.000000, 0.000000 + 0.996085, 0.088402, 0.000000, 0.000000 + 0.996038, 0.088924, 0.000000, 0.000000 + 0.995992, 0.089446, 0.000000, 0.000000 + 0.995945, 0.089967, 0.000000, 0.000000 + 0.995897, 0.090489, 0.000000, 0.000000 + 0.995850, 0.091010, 0.000000, 0.000000 + 0.995802, 0.091532, 0.000000, 0.000000 + 0.995754, 0.092054, 0.000000, 0.000000 + 0.995706, 0.092575, 0.000000, 0.000000 + 0.995657, 0.093097, 0.000000, 0.000000 + 0.995608, 0.093618, 0.000000, 0.000000 + 0.995559, 0.094140, 0.000000, 0.000000 + 0.995510, 0.094661, 0.000000, 0.000000 + 0.995460, 0.095182, 0.000000, 0.000000 + 0.995410, 0.095704, 0.000000, 0.000000 + 0.995360, 0.096225, 0.000000, 0.000000 + 0.995309, 0.096747, 0.000000, 0.000000 + 0.995258, 0.097268, 0.000000, 0.000000 + 0.995207, 0.097789, 0.000000, 0.000000 + 0.995156, 0.098310, 0.000000, 0.000000 + 0.995104, 0.098832, 0.000000, 0.000000 + 0.995052, 0.099353, 0.000000, 0.000000 + 0.995000, 0.099874, 0.000000, 0.000000 + 0.994948, 0.100395, 0.000000, 0.000000 + 0.994895, 0.100916, 0.000000, 0.000000 + 0.994842, 0.101437, 0.000000, 0.000000 + 0.994789, 0.101958, 0.000000, 0.000000 + 0.994735, 0.102479, 0.000000, 0.000000 + 0.994681, 0.103000, 0.000000, 0.000000 + 0.994627, 0.103521, 0.000000, 0.000000 + 0.994573, 0.104042, 0.000000, 0.000000 + 0.994518, 0.104563, 0.000000, 0.000000 + 0.994463, 0.105084, 0.000000, 0.000000 + 0.994408, 0.105605, 0.000000, 0.000000 + 0.994353, 0.106126, 0.000000, 0.000000 + 0.994297, 0.106647, 0.000000, 0.000000 + 0.994241, 0.107167, 0.000000, 0.000000 + 0.994185, 0.107688, 0.000000, 0.000000 + 0.994128, 0.108209, 0.000000, 0.000000 + 0.994071, 0.108729, 0.000000, 0.000000 + 0.994014, 0.109250, 0.000000, 0.000000 + 0.993957, 0.109771, 0.000000, 0.000000 + 0.993899, 0.110291, 0.000000, 0.000000 + 0.993841, 0.110812, 0.000000, 0.000000 + 0.993783, 0.111332, 0.000000, 0.000000 + 0.993725, 0.111853, 0.000000, 0.000000 + 0.993666, 0.112373, 0.000000, 0.000000 + 0.993607, 0.112894, 0.000000, 0.000000 + 0.993548, 0.113414, 0.000000, 0.000000 + 0.993488, 0.113935, 0.000000, 0.000000 + 0.993428, 0.114455, 0.000000, 0.000000 + 0.993368, 0.114975, 0.000000, 0.000000 + 0.993308, 0.115496, 0.000000, 0.000000 + 0.993247, 0.116016, 0.000000, 0.000000 + 0.993186, 0.116536, 0.000000, 0.000000 + 0.993125, 0.117056, 0.000000, 0.000000 + 0.993064, 0.117576, 0.000000, 0.000000 + 0.993002, 0.118097, 0.000000, 0.000000 + 0.992940, 0.118617, 0.000000, 0.000000 + 0.992878, 0.119137, 0.000000, 0.000000 + 0.992815, 0.119657, 0.000000, 0.000000 + 0.992753, 0.120177, 0.000000, 0.000000 + 0.992689, 0.120697, 0.000000, 0.000000 + 0.992626, 0.121217, 0.000000, 0.000000 + 0.992562, 0.121736, 0.000000, 0.000000 + 0.992499, 0.122256, 0.000000, 0.000000 + 0.992434, 0.122776, 0.000000, 0.000000 + 0.992370, 0.123296, 0.000000, 0.000000 + 0.992305, 0.123816, 0.000000, 0.000000 + 0.992240, 0.124335, 0.000000, 0.000000 + 0.992175, 0.124855, 0.000000, 0.000000 + 0.992109, 0.125375, 0.000000, 0.000000 + 0.992044, 0.125894, 0.000000, 0.000000 + 0.991978, 0.126414, 0.000000, 0.000000 + 0.991911, 0.126934, 0.000000, 0.000000 + 0.991845, 0.127453, 0.000000, 0.000000 + 0.991778, 0.127973, 0.000000, 0.000000 + 0.991711, 0.128492, 0.000000, 0.000000 + 0.991643, 0.129011, 0.000000, 0.000000 + 0.991575, 0.129531, 0.000000, 0.000000 + 0.991507, 0.130050, 0.000000, 0.000000 + 0.991439, 0.130569, 0.000000, 0.000000 + 0.991371, 0.131089, 0.000000, 0.000000 + 0.991302, 0.131608, 0.000000, 0.000000 + 0.991233, 0.132127, 0.000000, 0.000000 + 0.991163, 0.132646, 0.000000, 0.000000 + 0.991094, 0.133165, 0.000000, 0.000000 + 0.991024, 0.133685, 0.000000, 0.000000 + 0.990954, 0.134204, 0.000000, 0.000000 + 0.990883, 0.134723, 0.000000, 0.000000 + 0.990813, 0.135242, 0.000000, 0.000000 + 0.990742, 0.135761, 0.000000, 0.000000 + 0.990670, 0.136279, 0.000000, 0.000000 + 0.990599, 0.136798, 0.000000, 0.000000 + 0.990527, 0.137317, 0.000000, 0.000000 + 0.990455, 0.137836, 0.000000, 0.000000 + 0.990383, 0.138355, 0.000000, 0.000000 + 0.990310, 0.138873, 0.000000, 0.000000 + 0.990237, 0.139392, 0.000000, 0.000000 + 0.990164, 0.139911, 0.000000, 0.000000 + 0.990091, 0.140429, 0.000000, 0.000000 + 0.990017, 0.140948, 0.000000, 0.000000 + 0.989943, 0.141466, 0.000000, 0.000000 + 0.989869, 0.141985, 0.000000, 0.000000 + 0.989794, 0.142503, 0.000000, 0.000000 + 0.989720, 0.143022, 0.000000, 0.000000 + 0.989644, 0.143540, 0.000000, 0.000000 + 0.989569, 0.144058, 0.000000, 0.000000 + 0.989494, 0.144577, 0.000000, 0.000000 + 0.989418, 0.145095, 0.000000, 0.000000 + 0.989342, 0.145613, 0.000000, 0.000000 + 0.989265, 0.146131, 0.000000, 0.000000 + 0.989189, 0.146650, 0.000000, 0.000000 + 0.989112, 0.147168, 0.000000, 0.000000 + 0.989034, 0.147686, 0.000000, 0.000000 + 0.988957, 0.148204, 0.000000, 0.000000 + 0.988879, 0.148722, 0.000000, 0.000000 + 0.988801, 0.149240, 0.000000, 0.000000 + 0.988723, 0.149757, 0.000000, 0.000000 + 0.988644, 0.150275, 0.000000, 0.000000 + 0.988565, 0.150793, 0.000000, 0.000000 + 0.988486, 0.151311, 0.000000, 0.000000 + 0.988407, 0.151829, 0.000000, 0.000000 + 0.988327, 0.152346, 0.000000, 0.000000 + 0.988247, 0.152864, 0.000000, 0.000000 + 0.988167, 0.153382, 0.000000, 0.000000 + 0.988087, 0.153899, 0.000000, 0.000000 + 0.988006, 0.154417, 0.000000, 0.000000 + 0.987925, 0.154934, 0.000000, 0.000000 + 0.987844, 0.155451, 0.000000, 0.000000 + 0.987762, 0.155969, 0.000000, 0.000000 + 0.987680, 0.156486, 0.000000, 0.000000 + 0.987598, 0.157003, 0.000000, 0.000000 + 0.987516, 0.157521, 0.000000, 0.000000 + 0.987433, 0.158038, 0.000000, 0.000000 + 0.987350, 0.158555, 0.000000, 0.000000 + 0.987267, 0.159072, 0.000000, 0.000000 + 0.987183, 0.159589, 0.000000, 0.000000 + 0.987100, 0.160106, 0.000000, 0.000000 + 0.987016, 0.160623, 0.000000, 0.000000 + 0.986932, 0.161140, 0.000000, 0.000000 + 0.986847, 0.161657, 0.000000, 0.000000 + 0.986762, 0.162174, 0.000000, 0.000000 + 0.986677, 0.162691, 0.000000, 0.000000 + 0.986592, 0.163208, 0.000000, 0.000000 + 0.986506, 0.163724, 0.000000, 0.000000 + 0.986420, 0.164241, 0.000000, 0.000000 + 0.986334, 0.164758, 0.000000, 0.000000 + 0.986248, 0.165274, 0.000000, 0.000000 + 0.986161, 0.165791, 0.000000, 0.000000 + 0.986074, 0.166307, 0.000000, 0.000000 + 0.985987, 0.166824, 0.000000, 0.000000 + 0.985899, 0.167340, 0.000000, 0.000000 + 0.985811, 0.167857, 0.000000, 0.000000 + 0.985723, 0.168373, 0.000000, 0.000000 + 0.985635, 0.168889, 0.000000, 0.000000 + 0.985546, 0.169405, 0.000000, 0.000000 + 0.985458, 0.169922, 0.000000, 0.000000 + 0.985368, 0.170438, 0.000000, 0.000000 + 0.985279, 0.170954, 0.000000, 0.000000 + 0.985189, 0.171470, 0.000000, 0.000000 + 0.985099, 0.171986, 0.000000, 0.000000 + 0.985009, 0.172502, 0.000000, 0.000000 + 0.984919, 0.173018, 0.000000, 0.000000 + 0.984828, 0.173534, 0.000000, 0.000000 + 0.984737, 0.174049, 0.000000, 0.000000 + 0.984646, 0.174565, 0.000000, 0.000000 + 0.984554, 0.175081, 0.000000, 0.000000 + 0.984462, 0.175596, 0.000000, 0.000000 + 0.984370, 0.176112, 0.000000, 0.000000 + 0.984278, 0.176628, 0.000000, 0.000000 + 0.984185, 0.177143, 0.000000, 0.000000 + 0.984092, 0.177659, 0.000000, 0.000000 + 0.983999, 0.178174, 0.000000, 0.000000 + 0.983906, 0.178689, 0.000000, 0.000000 + 0.983812, 0.179205, 0.000000, 0.000000 + 0.983718, 0.179720, 0.000000, 0.000000 + 0.983624, 0.180235, 0.000000, 0.000000 + 0.983529, 0.180750, 0.000000, 0.000000 + 0.983434, 0.181266, 0.000000, 0.000000 + 0.983339, 0.181781, 0.000000, 0.000000 + 0.983244, 0.182296, 0.000000, 0.000000 + 0.983148, 0.182811, 0.000000, 0.000000 + 0.983052, 0.183326, 0.000000, 0.000000 + 0.982956, 0.183840, 0.000000, 0.000000 + 0.982860, 0.184355, 0.000000, 0.000000 + 0.982763, 0.184870, 0.000000, 0.000000 + 0.982666, 0.185385, 0.000000, 0.000000 + 0.982569, 0.185899, 0.000000, 0.000000 + 0.982471, 0.186414, 0.000000, 0.000000 + 0.982374, 0.186929, 0.000000, 0.000000 + 0.982275, 0.187443, 0.000000, 0.000000 + 0.982177, 0.187958, 0.000000, 0.000000 + 0.982079, 0.188472, 0.000000, 0.000000 + 0.981980, 0.188986, 0.000000, 0.000000 + 0.981881, 0.189501, 0.000000, 0.000000 + 0.981781, 0.190015, 0.000000, 0.000000 + 0.981682, 0.190529, 0.000000, 0.000000 + 0.981582, 0.191043, 0.000000, 0.000000 + 0.981481, 0.191557, 0.000000, 0.000000 + 0.981381, 0.192071, 0.000000, 0.000000 + 0.981280, 0.192585, 0.000000, 0.000000 + 0.981179, 0.193099, 0.000000, 0.000000 + 0.981078, 0.193613, 0.000000, 0.000000 + 0.980976, 0.194127, 0.000000, 0.000000 + 0.980875, 0.194641, 0.000000, 0.000000 + 0.980773, 0.195155, 0.000000, 0.000000 + 0.980670, 0.195668, 0.000000, 0.000000 + 0.980568, 0.196182, 0.000000, 0.000000 + 0.980465, 0.196695, 0.000000, 0.000000 + 0.980361, 0.197209, 0.000000, 0.000000 + 0.980258, 0.197722, 0.000000, 0.000000 + 0.980154, 0.198236, 0.000000, 0.000000 + 0.980050, 0.198749, 0.000000, 0.000000 + 0.979946, 0.199262, 0.000000, 0.000000 + 0.979842, 0.199776, 0.000000, 0.000000 + 0.979737, 0.200289, 0.000000, 0.000000 + 0.979632, 0.200802, 0.000000, 0.000000 + 0.979527, 0.201315, 0.000000, 0.000000 + 0.979421, 0.201828, 0.000000, 0.000000 + 0.979315, 0.202341, 0.000000, 0.000000 + 0.979209, 0.202854, 0.000000, 0.000000 + 0.979103, 0.203367, 0.000000, 0.000000 + 0.978996, 0.203880, 0.000000, 0.000000 + 0.978889, 0.204392, 0.000000, 0.000000 + 0.978782, 0.204905, 0.000000, 0.000000 + 0.978674, 0.205418, 0.000000, 0.000000 + 0.978567, 0.205930, 0.000000, 0.000000 + 0.978459, 0.206443, 0.000000, 0.000000 + 0.978350, 0.206955, 0.000000, 0.000000 + 0.978242, 0.207468, 0.000000, 0.000000 + 0.978133, 0.207980, 0.000000, 0.000000 + 0.978024, 0.208492, 0.000000, 0.000000 + 0.977915, 0.209005, 0.000000, 0.000000 + 0.977805, 0.209517, 0.000000, 0.000000 + 0.977695, 0.210029, 0.000000, 0.000000 + 0.977585, 0.210541, 0.000000, 0.000000 + 0.977475, 0.211053, 0.000000, 0.000000 + 0.977364, 0.211565, 0.000000, 0.000000 + 0.977253, 0.212077, 0.000000, 0.000000 + 0.977142, 0.212589, 0.000000, 0.000000 + 0.977030, 0.213100, 0.000000, 0.000000 + 0.976919, 0.213612, 0.000000, 0.000000 + 0.976807, 0.214124, 0.000000, 0.000000 + 0.976694, 0.214635, 0.000000, 0.000000 + 0.976582, 0.215147, 0.000000, 0.000000 + 0.976469, 0.215658, 0.000000, 0.000000 + 0.976356, 0.216170, 0.000000, 0.000000 + 0.976242, 0.216681, 0.000000, 0.000000 + 0.976129, 0.217192, 0.000000, 0.000000 + 0.976015, 0.217704, 0.000000, 0.000000 + 0.975901, 0.218215, 0.000000, 0.000000 + 0.975786, 0.218726, 0.000000, 0.000000 + 0.975672, 0.219237, 0.000000, 0.000000 + 0.975557, 0.219748, 0.000000, 0.000000 + 0.975441, 0.220259, 0.000000, 0.000000 + 0.975326, 0.220770, 0.000000, 0.000000 + 0.975210, 0.221281, 0.000000, 0.000000 + 0.975094, 0.221791, 0.000000, 0.000000 + 0.974978, 0.222302, 0.000000, 0.000000 + 0.974861, 0.222813, 0.000000, 0.000000 + 0.974744, 0.223323, 0.000000, 0.000000 + 0.974627, 0.223834, 0.000000, 0.000000 + 0.974510, 0.224344, 0.000000, 0.000000 + 0.974392, 0.224855, 0.000000, 0.000000 + 0.974274, 0.225365, 0.000000, 0.000000 + 0.974156, 0.225875, 0.000000, 0.000000 + 0.974038, 0.226385, 0.000000, 0.000000 + 0.973919, 0.226896, 0.000000, 0.000000 + 0.973800, 0.227406, 0.000000, 0.000000 + 0.973681, 0.227916, 0.000000, 0.000000 + 0.973561, 0.228426, 0.000000, 0.000000 + 0.973442, 0.228936, 0.000000, 0.000000 + 0.973322, 0.229445, 0.000000, 0.000000 + 0.973201, 0.229955, 0.000000, 0.000000 + 0.973081, 0.230465, 0.000000, 0.000000 + 0.972960, 0.230975, 0.000000, 0.000000 + 0.972839, 0.231484, 0.000000, 0.000000 + 0.972717, 0.231994, 0.000000, 0.000000 + 0.972596, 0.232503, 0.000000, 0.000000 + 0.972474, 0.233012, 0.000000, 0.000000 + 0.972352, 0.233522, 0.000000, 0.000000 + 0.972229, 0.234031, 0.000000, 0.000000 + 0.972106, 0.234540, 0.000000, 0.000000 + 0.971983, 0.235049, 0.000000, 0.000000 + 0.971860, 0.235558, 0.000000, 0.000000 + 0.971737, 0.236067, 0.000000, 0.000000 + 0.971613, 0.236576, 0.000000, 0.000000 + 0.971489, 0.237085, 0.000000, 0.000000 + 0.971365, 0.237594, 0.000000, 0.000000 + 0.971240, 0.238103, 0.000000, 0.000000 + 0.971115, 0.238611, 0.000000, 0.000000 + 0.970990, 0.239120, 0.000000, 0.000000 + 0.970865, 0.239629, 0.000000, 0.000000 + 0.970739, 0.240137, 0.000000, 0.000000 + 0.970613, 0.240646, 0.000000, 0.000000 + 0.970487, 0.241154, 0.000000, 0.000000 + 0.970360, 0.241662, 0.000000, 0.000000 + 0.970234, 0.242170, 0.000000, 0.000000 + 0.970107, 0.242678, 0.000000, 0.000000 + 0.969980, 0.243187, 0.000000, 0.000000 + 0.969852, 0.243695, 0.000000, 0.000000 + 0.969724, 0.244203, 0.000000, 0.000000 + 0.969596, 0.244710, 0.000000, 0.000000 + 0.969468, 0.245218, 0.000000, 0.000000 + 0.969339, 0.245726, 0.000000, 0.000000 + 0.969210, 0.246234, 0.000000, 0.000000 + 0.969081, 0.246741, 0.000000, 0.000000 + 0.968952, 0.247249, 0.000000, 0.000000 + 0.968822, 0.247756, 0.000000, 0.000000 + 0.968692, 0.248264, 0.000000, 0.000000 + 0.968562, 0.248771, 0.000000, 0.000000 + 0.968432, 0.249278, 0.000000, 0.000000 + 0.968301, 0.249786, 0.000000, 0.000000 + 0.968170, 0.250293, 0.000000, 0.000000 + 0.968039, 0.250800, 0.000000, 0.000000 + 0.967907, 0.251307, 0.000000, 0.000000 + 0.967776, 0.251814, 0.000000, 0.000000 + 0.967644, 0.252321, 0.000000, 0.000000 + 0.967511, 0.252827, 0.000000, 0.000000 + 0.967379, 0.253334, 0.000000, 0.000000 + 0.967246, 0.253841, 0.000000, 0.000000 + 0.967113, 0.254347, 0.000000, 0.000000 + 0.966980, 0.254854, 0.000000, 0.000000 + 0.966846, 0.255360, 0.000000, 0.000000 + 0.966712, 0.255867, 0.000000, 0.000000 + 0.966578, 0.256373, 0.000000, 0.000000 + 0.966444, 0.256879, 0.000000, 0.000000 + 0.966309, 0.257385, 0.000000, 0.000000 + 0.966174, 0.257891, 0.000000, 0.000000 + 0.966039, 0.258397, 0.000000, 0.000000 + 0.965903, 0.258903, 0.000000, 0.000000 + 0.965767, 0.259409, 0.000000, 0.000000 + 0.965631, 0.259915, 0.000000, 0.000000 + 0.965495, 0.260421, 0.000000, 0.000000 + 0.965359, 0.260926, 0.000000, 0.000000 + 0.965222, 0.261432, 0.000000, 0.000000 + 0.965085, 0.261938, 0.000000, 0.000000 + 0.964947, 0.262443, 0.000000, 0.000000 + 0.964810, 0.262948, 0.000000, 0.000000 + 0.964672, 0.263454, 0.000000, 0.000000 + 0.964534, 0.263959, 0.000000, 0.000000 + 0.964396, 0.264464, 0.000000, 0.000000 + 0.964257, 0.264969, 0.000000, 0.000000 + 0.964118, 0.265474, 0.000000, 0.000000 + 0.963979, 0.265979, 0.000000, 0.000000 + 0.963839, 0.266484, 0.000000, 0.000000 + 0.963700, 0.266989, 0.000000, 0.000000 + 0.963560, 0.267494, 0.000000, 0.000000 + 0.963419, 0.267998, 0.000000, 0.000000 + 0.963279, 0.268503, 0.000000, 0.000000 + 0.963138, 0.269007, 0.000000, 0.000000 + 0.962997, 0.269512, 0.000000, 0.000000 + 0.962856, 0.270016, 0.000000, 0.000000 + 0.962714, 0.270520, 0.000000, 0.000000 + 0.962572, 0.271025, 0.000000, 0.000000 + 0.962430, 0.271529, 0.000000, 0.000000 + 0.962288, 0.272033, 0.000000, 0.000000 + 0.962145, 0.272537, 0.000000, 0.000000 + 0.962003, 0.273041, 0.000000, 0.000000 + 0.961859, 0.273544, 0.000000, 0.000000 + 0.961716, 0.274048, 0.000000, 0.000000 + 0.961572, 0.274552, 0.000000, 0.000000 + 0.961428, 0.275056, 0.000000, 0.000000 + 0.961284, 0.275559, 0.000000, 0.000000 + 0.961140, 0.276062, 0.000000, 0.000000 + 0.960995, 0.276566, 0.000000, 0.000000 + 0.960850, 0.277069, 0.000000, 0.000000 + 0.960705, 0.277572, 0.000000, 0.000000 + 0.960559, 0.278076, 0.000000, 0.000000 + 0.960413, 0.278579, 0.000000, 0.000000 + 0.960267, 0.279082, 0.000000, 0.000000 + 0.960121, 0.279585, 0.000000, 0.000000 + 0.959975, 0.280087, 0.000000, 0.000000 + 0.959828, 0.280590, 0.000000, 0.000000 + 0.959681, 0.281093, 0.000000, 0.000000 + 0.959533, 0.281595, 0.000000, 0.000000 + 0.959386, 0.282098, 0.000000, 0.000000 + 0.959238, 0.282600, 0.000000, 0.000000 + 0.959090, 0.283103, 0.000000, 0.000000 + 0.958941, 0.283605, 0.000000, 0.000000 + 0.958792, 0.284107, 0.000000, 0.000000 + 0.958644, 0.284610, 0.000000, 0.000000 + 0.958494, 0.285112, 0.000000, 0.000000 + 0.958345, 0.285614, 0.000000, 0.000000 + 0.958195, 0.286116, 0.000000, 0.000000 + 0.958045, 0.286617, 0.000000, 0.000000 + 0.957895, 0.287119, 0.000000, 0.000000 + 0.957744, 0.287621, 0.000000, 0.000000 + 0.957594, 0.288122, 0.000000, 0.000000 + 0.957443, 0.288624, 0.000000, 0.000000 + 0.957291, 0.289125, 0.000000, 0.000000 + 0.957140, 0.289627, 0.000000, 0.000000 + 0.956988, 0.290128, 0.000000, 0.000000 + 0.956836, 0.290629, 0.000000, 0.000000 + 0.956683, 0.291130, 0.000000, 0.000000 + 0.956531, 0.291631, 0.000000, 0.000000 + 0.956378, 0.292132, 0.000000, 0.000000 + 0.956225, 0.292633, 0.000000, 0.000000 + 0.956071, 0.293134, 0.000000, 0.000000 + 0.955918, 0.293635, 0.000000, 0.000000 + 0.955764, 0.294135, 0.000000, 0.000000 + 0.955610, 0.294636, 0.000000, 0.000000 + 0.955455, 0.295136, 0.000000, 0.000000 + 0.955300, 0.295637, 0.000000, 0.000000 + 0.955145, 0.296137, 0.000000, 0.000000 + 0.954990, 0.296637, 0.000000, 0.000000 + 0.954835, 0.297138, 0.000000, 0.000000 + 0.954679, 0.297638, 0.000000, 0.000000 + 0.954523, 0.298138, 0.000000, 0.000000 + 0.954367, 0.298638, 0.000000, 0.000000 + 0.954210, 0.299137, 0.000000, 0.000000 + 0.954053, 0.299637, 0.000000, 0.000000 + 0.953896, 0.300137, 0.000000, 0.000000 + 0.953739, 0.300636, 0.000000, 0.000000 + 0.953581, 0.301136, 0.000000, 0.000000 + 0.953423, 0.301635, 0.000000, 0.000000 + 0.953265, 0.302135, 0.000000, 0.000000 + 0.953107, 0.302634, 0.000000, 0.000000 + 0.952948, 0.303133, 0.000000, 0.000000 + 0.952789, 0.303632, 0.000000, 0.000000 + 0.952630, 0.304131, 0.000000, 0.000000 + 0.952471, 0.304630, 0.000000, 0.000000 + 0.952311, 0.305129, 0.000000, 0.000000 + 0.952151, 0.305628, 0.000000, 0.000000 + 0.951991, 0.306126, 0.000000, 0.000000 + 0.951830, 0.306625, 0.000000, 0.000000 + 0.951670, 0.307123, 0.000000, 0.000000 + 0.951509, 0.307622, 0.000000, 0.000000 + 0.951347, 0.308120, 0.000000, 0.000000 + 0.951186, 0.308618, 0.000000, 0.000000 + 0.951024, 0.309117, 0.000000, 0.000000 + 0.950862, 0.309615, 0.000000, 0.000000 + 0.950700, 0.310113, 0.000000, 0.000000 + 0.950537, 0.310611, 0.000000, 0.000000 + 0.950374, 0.311108, 0.000000, 0.000000 + 0.950211, 0.311606, 0.000000, 0.000000 + 0.950048, 0.312104, 0.000000, 0.000000 + 0.949884, 0.312601, 0.000000, 0.000000 + 0.949721, 0.313099, 0.000000, 0.000000 + 0.949556, 0.313596, 0.000000, 0.000000 + 0.949392, 0.314094, 0.000000, 0.000000 + 0.949227, 0.314591, 0.000000, 0.000000 + 0.949062, 0.315088, 0.000000, 0.000000 + 0.948897, 0.315585, 0.000000, 0.000000 + 0.948732, 0.316082, 0.000000, 0.000000 + 0.948566, 0.316579, 0.000000, 0.000000 + 0.948400, 0.317076, 0.000000, 0.000000 + 0.948234, 0.317572, 0.000000, 0.000000 + 0.948068, 0.318069, 0.000000, 0.000000 + 0.947901, 0.318565, 0.000000, 0.000000 + 0.947734, 0.319062, 0.000000, 0.000000 + 0.947567, 0.319558, 0.000000, 0.000000 + 0.947399, 0.320055, 0.000000, 0.000000 + 0.947231, 0.320551, 0.000000, 0.000000 + 0.947063, 0.321047, 0.000000, 0.000000 + 0.946895, 0.321543, 0.000000, 0.000000 + 0.946727, 0.322039, 0.000000, 0.000000 + 0.946558, 0.322535, 0.000000, 0.000000 + 0.946389, 0.323030, 0.000000, 0.000000 + 0.946219, 0.323526, 0.000000, 0.000000 + 0.946050, 0.324021, 0.000000, 0.000000 + 0.945880, 0.324517, 0.000000, 0.000000 + 0.945710, 0.325012, 0.000000, 0.000000 + 0.945539, 0.325508, 0.000000, 0.000000 + 0.945369, 0.326003, 0.000000, 0.000000 + 0.945198, 0.326498, 0.000000, 0.000000 + 0.945027, 0.326993, 0.000000, 0.000000 + 0.944855, 0.327488, 0.000000, 0.000000 + 0.944684, 0.327983, 0.000000, 0.000000 + 0.944512, 0.328478, 0.000000, 0.000000 + 0.944340, 0.328972, 0.000000, 0.000000 + 0.944167, 0.329467, 0.000000, 0.000000 + 0.943994, 0.329961, 0.000000, 0.000000 + 0.943822, 0.330456, 0.000000, 0.000000 + 0.943648, 0.330950, 0.000000, 0.000000 + 0.943475, 0.331444, 0.000000, 0.000000 + 0.943301, 0.331938, 0.000000, 0.000000 + 0.943127, 0.332432, 0.000000, 0.000000 + 0.942953, 0.332926, 0.000000, 0.000000 + 0.942778, 0.333420, 0.000000, 0.000000 + 0.942604, 0.333914, 0.000000, 0.000000 + 0.942429, 0.334407, 0.000000, 0.000000 + 0.942253, 0.334901, 0.000000, 0.000000 + 0.942078, 0.335395, 0.000000, 0.000000 + 0.941902, 0.335888, 0.000000, 0.000000 + 0.941726, 0.336381, 0.000000, 0.000000 + 0.941550, 0.336874, 0.000000, 0.000000 + 0.941373, 0.337368, 0.000000, 0.000000 + 0.941196, 0.337861, 0.000000, 0.000000 + 0.941019, 0.338354, 0.000000, 0.000000 + 0.940842, 0.338846, 0.000000, 0.000000 + 0.940664, 0.339339, 0.000000, 0.000000 + 0.940486, 0.339832, 0.000000, 0.000000 + 0.940308, 0.340324, 0.000000, 0.000000 + 0.940130, 0.340817, 0.000000, 0.000000 + 0.939951, 0.341309, 0.000000, 0.000000 + 0.939772, 0.341801, 0.000000, 0.000000 + 0.939593, 0.342294, 0.000000, 0.000000 + 0.939414, 0.342786, 0.000000, 0.000000 + 0.939234, 0.343278, 0.000000, 0.000000 + 0.939054, 0.343770, 0.000000, 0.000000 + 0.938874, 0.344261, 0.000000, 0.000000 + 0.938693, 0.344753, 0.000000, 0.000000 + 0.938513, 0.345245, 0.000000, 0.000000 + 0.938332, 0.345736, 0.000000, 0.000000 + 0.938151, 0.346228, 0.000000, 0.000000 + 0.937969, 0.346719, 0.000000, 0.000000 + 0.937787, 0.347210, 0.000000, 0.000000 + 0.937605, 0.347701, 0.000000, 0.000000 + 0.937423, 0.348192, 0.000000, 0.000000 + 0.937241, 0.348683, 0.000000, 0.000000 + 0.937058, 0.349174, 0.000000, 0.000000 + 0.936875, 0.349665, 0.000000, 0.000000 + 0.936692, 0.350156, 0.000000, 0.000000 + 0.936508, 0.350646, 0.000000, 0.000000 + 0.936324, 0.351137, 0.000000, 0.000000 + 0.936140, 0.351627, 0.000000, 0.000000 + 0.935956, 0.352117, 0.000000, 0.000000 + 0.935771, 0.352607, 0.000000, 0.000000 + 0.935587, 0.353098, 0.000000, 0.000000 + 0.935401, 0.353588, 0.000000, 0.000000 + 0.935216, 0.354077, 0.000000, 0.000000 + 0.935031, 0.354567, 0.000000, 0.000000 + 0.934845, 0.355057, 0.000000, 0.000000 + 0.934659, 0.355547, 0.000000, 0.000000 + 0.934472, 0.356036, 0.000000, 0.000000 + 0.934286, 0.356525, 0.000000, 0.000000 + 0.934099, 0.357015, 0.000000, 0.000000 + 0.933912, 0.357504, 0.000000, 0.000000 + 0.933724, 0.357993, 0.000000, 0.000000 + 0.933537, 0.358482, 0.000000, 0.000000 + 0.933349, 0.358971, 0.000000, 0.000000 + 0.933161, 0.359460, 0.000000, 0.000000 + 0.932972, 0.359948, 0.000000, 0.000000 + 0.932784, 0.360437, 0.000000, 0.000000 + 0.932595, 0.360926, 0.000000, 0.000000 + 0.932405, 0.361414, 0.000000, 0.000000 + 0.932216, 0.361902, 0.000000, 0.000000 + 0.932026, 0.362391, 0.000000, 0.000000 + 0.931836, 0.362879, 0.000000, 0.000000 + 0.931646, 0.363367, 0.000000, 0.000000 + 0.931456, 0.363855, 0.000000, 0.000000 + 0.931265, 0.364342, 0.000000, 0.000000 + 0.931074, 0.364830, 0.000000, 0.000000 + 0.930883, 0.365318, 0.000000, 0.000000 + 0.930691, 0.365805, 0.000000, 0.000000 + 0.930500, 0.366293, 0.000000, 0.000000 + 0.930308, 0.366780, 0.000000, 0.000000 + 0.930115, 0.367267, 0.000000, 0.000000 + 0.929923, 0.367754, 0.000000, 0.000000 + 0.929730, 0.368241, 0.000000, 0.000000 + 0.929537, 0.368728, 0.000000, 0.000000 + 0.929344, 0.369215, 0.000000, 0.000000 + 0.929150, 0.369702, 0.000000, 0.000000 + 0.928957, 0.370188, 0.000000, 0.000000 + 0.928763, 0.370675, 0.000000, 0.000000 + 0.928568, 0.371161, 0.000000, 0.000000 + 0.928374, 0.371648, 0.000000, 0.000000 + 0.928179, 0.372134, 0.000000, 0.000000 + 0.927984, 0.372620, 0.000000, 0.000000 + 0.927789, 0.373106, 0.000000, 0.000000 + 0.927593, 0.373592, 0.000000, 0.000000 + 0.927397, 0.374078, 0.000000, 0.000000 + 0.927201, 0.374563, 0.000000, 0.000000 + 0.927005, 0.375049, 0.000000, 0.000000 + 0.926808, 0.375535, 0.000000, 0.000000 + 0.926612, 0.376020, 0.000000, 0.000000 + 0.926415, 0.376505, 0.000000, 0.000000 + 0.926217, 0.376990, 0.000000, 0.000000 + 0.926020, 0.377475, 0.000000, 0.000000 + 0.925822, 0.377960, 0.000000, 0.000000 + 0.925624, 0.378445, 0.000000, 0.000000 + 0.925425, 0.378930, 0.000000, 0.000000 + 0.925227, 0.379415, 0.000000, 0.000000 + 0.925028, 0.379899, 0.000000, 0.000000 + 0.924829, 0.380384, 0.000000, 0.000000 + 0.924629, 0.380868, 0.000000, 0.000000 + 0.924430, 0.381352, 0.000000, 0.000000 + 0.924230, 0.381836, 0.000000, 0.000000 + 0.924030, 0.382320, 0.000000, 0.000000 + 0.923829, 0.382804, 0.000000, 0.000000 + 0.923629, 0.383288, 0.000000, 0.000000 + 0.923428, 0.383772, 0.000000, 0.000000 + 0.923227, 0.384256, 0.000000, 0.000000 + 0.923025, 0.384739, 0.000000, 0.000000 + 0.922824, 0.385222, 0.000000, 0.000000 + 0.922622, 0.385706, 0.000000, 0.000000 + 0.922420, 0.386189, 0.000000, 0.000000 + 0.922217, 0.386672, 0.000000, 0.000000 + 0.922015, 0.387155, 0.000000, 0.000000 + 0.921812, 0.387638, 0.000000, 0.000000 + 0.921609, 0.388121, 0.000000, 0.000000 + 0.921405, 0.388603, 0.000000, 0.000000 + 0.921201, 0.389086, 0.000000, 0.000000 + 0.920998, 0.389568, 0.000000, 0.000000 + 0.920793, 0.390051, 0.000000, 0.000000 + 0.920589, 0.390533, 0.000000, 0.000000 + 0.920384, 0.391015, 0.000000, 0.000000 + 0.920179, 0.391497, 0.000000, 0.000000 + 0.919974, 0.391979, 0.000000, 0.000000 + 0.919769, 0.392461, 0.000000, 0.000000 + 0.919563, 0.392942, 0.000000, 0.000000 + 0.919357, 0.393424, 0.000000, 0.000000 + 0.919151, 0.393906, 0.000000, 0.000000 + 0.918944, 0.394387, 0.000000, 0.000000 + 0.918738, 0.394868, 0.000000, 0.000000 + 0.918531, 0.395349, 0.000000, 0.000000 + 0.918324, 0.395830, 0.000000, 0.000000 + 0.918116, 0.396311, 0.000000, 0.000000 + 0.917908, 0.396792, 0.000000, 0.000000 + 0.917701, 0.397273, 0.000000, 0.000000 + 0.917492, 0.397753, 0.000000, 0.000000 + 0.917284, 0.398234, 0.000000, 0.000000 + 0.917075, 0.398714, 0.000000, 0.000000 + 0.916866, 0.399195, 0.000000, 0.000000 + 0.916657, 0.399675, 0.000000, 0.000000 + 0.916448, 0.400155, 0.000000, 0.000000 + 0.916238, 0.400635, 0.000000, 0.000000 + 0.916028, 0.401115, 0.000000, 0.000000 + 0.915818, 0.401594, 0.000000, 0.000000 + 0.915607, 0.402074, 0.000000, 0.000000 + 0.915396, 0.402554, 0.000000, 0.000000 + 0.915185, 0.403033, 0.000000, 0.000000 + 0.914974, 0.403512, 0.000000, 0.000000 + 0.914763, 0.403991, 0.000000, 0.000000 + 0.914551, 0.404471, 0.000000, 0.000000 + 0.914339, 0.404950, 0.000000, 0.000000 + 0.914127, 0.405428, 0.000000, 0.000000 + 0.913914, 0.405907, 0.000000, 0.000000 + 0.913702, 0.406386, 0.000000, 0.000000 + 0.913489, 0.406864, 0.000000, 0.000000 + 0.913275, 0.407343, 0.000000, 0.000000 + 0.913062, 0.407821, 0.000000, 0.000000 + 0.912848, 0.408299, 0.000000, 0.000000 + 0.912634, 0.408777, 0.000000, 0.000000 + 0.912420, 0.409255, 0.000000, 0.000000 + 0.912206, 0.409733, 0.000000, 0.000000 + 0.911991, 0.410211, 0.000000, 0.000000 + 0.911776, 0.410688, 0.000000, 0.000000 + 0.911561, 0.411166, 0.000000, 0.000000 + 0.911345, 0.411643, 0.000000, 0.000000 + 0.911129, 0.412121, 0.000000, 0.000000 + 0.910913, 0.412598, 0.000000, 0.000000 + 0.910697, 0.413075, 0.000000, 0.000000 + 0.910481, 0.413552, 0.000000, 0.000000 + 0.910264, 0.414029, 0.000000, 0.000000 + 0.910047, 0.414505, 0.000000, 0.000000 + 0.909830, 0.414982, 0.000000, 0.000000 + 0.909612, 0.415458, 0.000000, 0.000000 + 0.909394, 0.415935, 0.000000, 0.000000 + 0.909177, 0.416411, 0.000000, 0.000000 + 0.908958, 0.416887, 0.000000, 0.000000 + 0.908740, 0.417363, 0.000000, 0.000000 + 0.908521, 0.417839, 0.000000, 0.000000 + 0.908302, 0.418315, 0.000000, 0.000000 + 0.908083, 0.418791, 0.000000, 0.000000 + 0.907863, 0.419266, 0.000000, 0.000000 + 0.907644, 0.419742, 0.000000, 0.000000 + 0.907424, 0.420217, 0.000000, 0.000000 + 0.907203, 0.420692, 0.000000, 0.000000 + 0.906983, 0.421167, 0.000000, 0.000000 + 0.906762, 0.421642, 0.000000, 0.000000 + 0.906541, 0.422117, 0.000000, 0.000000 + 0.906320, 0.422592, 0.000000, 0.000000 + 0.906099, 0.423067, 0.000000, 0.000000 + 0.905877, 0.423541, 0.000000, 0.000000 + 0.905655, 0.424015, 0.000000, 0.000000 + 0.905433, 0.424490, 0.000000, 0.000000 + 0.905210, 0.424964, 0.000000, 0.000000 + 0.904988, 0.425438, 0.000000, 0.000000 + 0.904765, 0.425912, 0.000000, 0.000000 + 0.904541, 0.426386, 0.000000, 0.000000 + 0.904318, 0.426860, 0.000000, 0.000000 + 0.904094, 0.427333, 0.000000, 0.000000 + 0.903870, 0.427807, 0.000000, 0.000000 + 0.903646, 0.428280, 0.000000, 0.000000 + 0.903422, 0.428753, 0.000000, 0.000000 + 0.903197, 0.429226, 0.000000, 0.000000 + 0.902972, 0.429699, 0.000000, 0.000000 + 0.902747, 0.430172, 0.000000, 0.000000 + 0.902521, 0.430645, 0.000000, 0.000000 + 0.902296, 0.431118, 0.000000, 0.000000 + 0.902070, 0.431590, 0.000000, 0.000000 + 0.901844, 0.432063, 0.000000, 0.000000 + 0.901617, 0.432535, 0.000000, 0.000000 + 0.901390, 0.433007, 0.000000, 0.000000 + 0.901164, 0.433479, 0.000000, 0.000000 + 0.900936, 0.433951, 0.000000, 0.000000 + 0.900709, 0.434423, 0.000000, 0.000000 + 0.900481, 0.434895, 0.000000, 0.000000 + 0.900253, 0.435366, 0.000000, 0.000000 + 0.900025, 0.435838, 0.000000, 0.000000 + 0.899797, 0.436309, 0.000000, 0.000000 + 0.899568, 0.436780, 0.000000, 0.000000 + 0.899339, 0.437251, 0.000000, 0.000000 + 0.899110, 0.437722, 0.000000, 0.000000 + 0.898881, 0.438193, 0.000000, 0.000000 + 0.898651, 0.438664, 0.000000, 0.000000 + 0.898421, 0.439135, 0.000000, 0.000000 + 0.898191, 0.439605, 0.000000, 0.000000 + 0.897961, 0.440076, 0.000000, 0.000000 + 0.897730, 0.440546, 0.000000, 0.000000 + 0.897499, 0.441016, 0.000000, 0.000000 + 0.897268, 0.441486, 0.000000, 0.000000 + 0.897037, 0.441956, 0.000000, 0.000000 + 0.896805, 0.442426, 0.000000, 0.000000 + 0.896573, 0.442895, 0.000000, 0.000000 + 0.896341, 0.443365, 0.000000, 0.000000 + 0.896109, 0.443834, 0.000000, 0.000000 + 0.895876, 0.444304, 0.000000, 0.000000 + 0.895643, 0.444773, 0.000000, 0.000000 + 0.895410, 0.445242, 0.000000, 0.000000 + 0.895177, 0.445711, 0.000000, 0.000000 + 0.894943, 0.446180, 0.000000, 0.000000 + 0.894710, 0.446648, 0.000000, 0.000000 + 0.894476, 0.447117, 0.000000, 0.000000 + 0.894241, 0.447585, 0.000000, 0.000000 + 0.894007, 0.448054, 0.000000, 0.000000 + 0.893772, 0.448522, 0.000000, 0.000000 + 0.893537, 0.448990, 0.000000, 0.000000 + 0.893302, 0.449458, 0.000000, 0.000000 + 0.893066, 0.449926, 0.000000, 0.000000 + 0.892830, 0.450393, 0.000000, 0.000000 + 0.892594, 0.450861, 0.000000, 0.000000 + 0.892358, 0.451328, 0.000000, 0.000000 + 0.892121, 0.451796, 0.000000, 0.000000 + 0.891885, 0.452263, 0.000000, 0.000000 + 0.891648, 0.452730, 0.000000, 0.000000 + 0.891410, 0.453197, 0.000000, 0.000000 + 0.891173, 0.453664, 0.000000, 0.000000 + 0.890935, 0.454130, 0.000000, 0.000000 + 0.890697, 0.454597, 0.000000, 0.000000 + 0.890459, 0.455064, 0.000000, 0.000000 + 0.890220, 0.455530, 0.000000, 0.000000 + 0.889982, 0.455996, 0.000000, 0.000000 + 0.889743, 0.456462, 0.000000, 0.000000 + 0.889504, 0.456928, 0.000000, 0.000000 + 0.889264, 0.457394, 0.000000, 0.000000 + 0.889024, 0.457860, 0.000000, 0.000000 + 0.888785, 0.458325, 0.000000, 0.000000 + 0.888544, 0.458791, 0.000000, 0.000000 + 0.888304, 0.459256, 0.000000, 0.000000 + 0.888063, 0.459721, 0.000000, 0.000000 + 0.887822, 0.460186, 0.000000, 0.000000 + 0.887581, 0.460651, 0.000000, 0.000000 + 0.887340, 0.461116, 0.000000, 0.000000 + 0.887098, 0.461581, 0.000000, 0.000000 + 0.886856, 0.462045, 0.000000, 0.000000 + 0.886614, 0.462510, 0.000000, 0.000000 + 0.886372, 0.462974, 0.000000, 0.000000 + 0.886129, 0.463438, 0.000000, 0.000000 + 0.885886, 0.463902, 0.000000, 0.000000 + 0.885643, 0.464366, 0.000000, 0.000000 + 0.885400, 0.464830, 0.000000, 0.000000 + 0.885156, 0.465294, 0.000000, 0.000000 + 0.884912, 0.465757, 0.000000, 0.000000 + 0.884668, 0.466221, 0.000000, 0.000000 + 0.884424, 0.466684, 0.000000, 0.000000 + 0.884179, 0.467147, 0.000000, 0.000000 + 0.883935, 0.467610, 0.000000, 0.000000 + 0.883690, 0.468073, 0.000000, 0.000000 + 0.883444, 0.468536, 0.000000, 0.000000 + 0.883199, 0.468999, 0.000000, 0.000000 + 0.882953, 0.469461, 0.000000, 0.000000 + 0.882707, 0.469924, 0.000000, 0.000000 + 0.882461, 0.470386, 0.000000, 0.000000 + 0.882214, 0.470848, 0.000000, 0.000000 + 0.881968, 0.471310, 0.000000, 0.000000 + 0.881721, 0.471772, 0.000000, 0.000000 + 0.881473, 0.472234, 0.000000, 0.000000 + 0.881226, 0.472695, 0.000000, 0.000000 + 0.880978, 0.473157, 0.000000, 0.000000 + 0.880730, 0.473618, 0.000000, 0.000000 + 0.880482, 0.474079, 0.000000, 0.000000 + 0.880234, 0.474541, 0.000000, 0.000000 + 0.879985, 0.475002, 0.000000, 0.000000 + 0.879736, 0.475462, 0.000000, 0.000000 + 0.879487, 0.475923, 0.000000, 0.000000 + 0.879237, 0.476384, 0.000000, 0.000000 + 0.878988, 0.476844, 0.000000, 0.000000 + 0.878738, 0.477305, 0.000000, 0.000000 + 0.878488, 0.477765, 0.000000, 0.000000 + 0.878237, 0.478225, 0.000000, 0.000000 + 0.877987, 0.478685, 0.000000, 0.000000 + 0.877736, 0.479145, 0.000000, 0.000000 + 0.877485, 0.479604, 0.000000, 0.000000 + 0.877234, 0.480064, 0.000000, 0.000000 + 0.876982, 0.480523, 0.000000, 0.000000 + 0.876730, 0.480982, 0.000000, 0.000000 + 0.876478, 0.481442, 0.000000, 0.000000 + 0.876226, 0.481901, 0.000000, 0.000000 + 0.875973, 0.482359, 0.000000, 0.000000 + 0.875721, 0.482818, 0.000000, 0.000000 + 0.875468, 0.483277, 0.000000, 0.000000 + 0.875214, 0.483735, 0.000000, 0.000000 + 0.874961, 0.484194, 0.000000, 0.000000 + 0.874707, 0.484652, 0.000000, 0.000000 + 0.874453, 0.485110, 0.000000, 0.000000 + 0.874199, 0.485568, 0.000000, 0.000000 + 0.873945, 0.486026, 0.000000, 0.000000 + 0.873690, 0.486483, 0.000000, 0.000000 + 0.873435, 0.486941, 0.000000, 0.000000 + 0.873180, 0.487398, 0.000000, 0.000000 + 0.872924, 0.487856, 0.000000, 0.000000 + 0.872669, 0.488313, 0.000000, 0.000000 + 0.872413, 0.488770, 0.000000, 0.000000 + 0.872157, 0.489227, 0.000000, 0.000000 + 0.871900, 0.489683, 0.000000, 0.000000 + 0.871644, 0.490140, 0.000000, 0.000000 + 0.871387, 0.490596, 0.000000, 0.000000 + 0.871130, 0.491053, 0.000000, 0.000000 + 0.870872, 0.491509, 0.000000, 0.000000 + 0.870615, 0.491965, 0.000000, 0.000000 + 0.870357, 0.492421, 0.000000, 0.000000 + 0.870099, 0.492877, 0.000000, 0.000000 + 0.869841, 0.493332, 0.000000, 0.000000 + 0.869582, 0.493788, 0.000000, 0.000000 + 0.869324, 0.494243, 0.000000, 0.000000 + 0.869065, 0.494699, 0.000000, 0.000000 + 0.868805, 0.495154, 0.000000, 0.000000 + 0.868546, 0.495609, 0.000000, 0.000000 + 0.868286, 0.496064, 0.000000, 0.000000 + 0.868026, 0.496518, 0.000000, 0.000000 + 0.867766, 0.496973, 0.000000, 0.000000 + 0.867506, 0.497427, 0.000000, 0.000000 + 0.867245, 0.497882, 0.000000, 0.000000 + 0.866984, 0.498336, 0.000000, 0.000000 + 0.866723, 0.498790, 0.000000, 0.000000 + 0.866462, 0.499244, 0.000000, 0.000000 + 0.866200, 0.499698, 0.000000, 0.000000 + 0.865938, 0.500151, 0.000000, 0.000000 + 0.865676, 0.500605, 0.000000, 0.000000 + 0.865414, 0.501058, 0.000000, 0.000000 + 0.865151, 0.501511, 0.000000, 0.000000 + 0.864888, 0.501964, 0.000000, 0.000000 + 0.864625, 0.502417, 0.000000, 0.000000 + 0.864362, 0.502870, 0.000000, 0.000000 + 0.864099, 0.503323, 0.000000, 0.000000 + 0.863835, 0.503775, 0.000000, 0.000000 + 0.863571, 0.504228, 0.000000, 0.000000 + 0.863307, 0.504680, 0.000000, 0.000000 + 0.863042, 0.505132, 0.000000, 0.000000 + 0.862777, 0.505584, 0.000000, 0.000000 + 0.862512, 0.506036, 0.000000, 0.000000 + 0.862247, 0.506487, 0.000000, 0.000000 + 0.861982, 0.506939, 0.000000, 0.000000 + 0.861716, 0.507390, 0.000000, 0.000000 + 0.861450, 0.507842, 0.000000, 0.000000 + 0.861184, 0.508293, 0.000000, 0.000000 + 0.860918, 0.508744, 0.000000, 0.000000 + 0.860651, 0.509195, 0.000000, 0.000000 + 0.860385, 0.509645, 0.000000, 0.000000 + 0.860117, 0.510096, 0.000000, 0.000000 + 0.859850, 0.510546, 0.000000, 0.000000 + 0.859583, 0.510997, 0.000000, 0.000000 + 0.859315, 0.511447, 0.000000, 0.000000 + 0.859047, 0.511897, 0.000000, 0.000000 + 0.858779, 0.512347, 0.000000, 0.000000 + 0.858510, 0.512797, 0.000000, 0.000000 + 0.858241, 0.513246, 0.000000, 0.000000 + 0.857973, 0.513696, 0.000000, 0.000000 + 0.857703, 0.514145, 0.000000, 0.000000 + 0.857434, 0.514594, 0.000000, 0.000000 + 0.857164, 0.515043, 0.000000, 0.000000 + 0.856894, 0.515492, 0.000000, 0.000000 + 0.856624, 0.515941, 0.000000, 0.000000 + 0.856354, 0.516389, 0.000000, 0.000000 + 0.856083, 0.516838, 0.000000, 0.000000 + 0.855813, 0.517286, 0.000000, 0.000000 + 0.855541, 0.517734, 0.000000, 0.000000 + 0.855270, 0.518182, 0.000000, 0.000000 + 0.854999, 0.518630, 0.000000, 0.000000 + 0.854727, 0.519078, 0.000000, 0.000000 + 0.854455, 0.519526, 0.000000, 0.000000 + 0.854183, 0.519973, 0.000000, 0.000000 + 0.853910, 0.520420, 0.000000, 0.000000 + 0.853638, 0.520868, 0.000000, 0.000000 + 0.853365, 0.521315, 0.000000, 0.000000 + 0.853091, 0.521761, 0.000000, 0.000000 + 0.852818, 0.522208, 0.000000, 0.000000 + 0.852544, 0.522655, 0.000000, 0.000000 + 0.852270, 0.523101, 0.000000, 0.000000 + 0.851996, 0.523548, 0.000000, 0.000000 + 0.851722, 0.523994, 0.000000, 0.000000 + 0.851447, 0.524440, 0.000000, 0.000000 + 0.851173, 0.524886, 0.000000, 0.000000 + 0.850898, 0.525332, 0.000000, 0.000000 + 0.850622, 0.525777, 0.000000, 0.000000 + 0.850347, 0.526223, 0.000000, 0.000000 + 0.850071, 0.526668, 0.000000, 0.000000 + 0.849795, 0.527113, 0.000000, 0.000000 + 0.849519, 0.527558, 0.000000, 0.000000 + 0.849243, 0.528003, 0.000000, 0.000000 + 0.848966, 0.528448, 0.000000, 0.000000 + 0.848689, 0.528892, 0.000000, 0.000000 + 0.848412, 0.529337, 0.000000, 0.000000 + 0.848134, 0.529781, 0.000000, 0.000000 + 0.847857, 0.530225, 0.000000, 0.000000 + 0.847579, 0.530669, 0.000000, 0.000000 + 0.847301, 0.531113, 0.000000, 0.000000 + 0.847023, 0.531557, 0.000000, 0.000000 + 0.846744, 0.532000, 0.000000, 0.000000 + 0.846465, 0.532444, 0.000000, 0.000000 + 0.846186, 0.532887, 0.000000, 0.000000 + 0.845907, 0.533330, 0.000000, 0.000000 + 0.845628, 0.533773, 0.000000, 0.000000 + 0.845348, 0.534216, 0.000000, 0.000000 + 0.845068, 0.534659, 0.000000, 0.000000 + 0.844788, 0.535101, 0.000000, 0.000000 + 0.844507, 0.535544, 0.000000, 0.000000 + 0.844227, 0.535986, 0.000000, 0.000000 + 0.843946, 0.536428, 0.000000, 0.000000 + 0.843665, 0.536870, 0.000000, 0.000000 + 0.843384, 0.537312, 0.000000, 0.000000 + 0.843102, 0.537754, 0.000000, 0.000000 + 0.842820, 0.538195, 0.000000, 0.000000 + 0.842538, 0.538636, 0.000000, 0.000000 + 0.842256, 0.539078, 0.000000, 0.000000 + 0.841974, 0.539519, 0.000000, 0.000000 + 0.841691, 0.539960, 0.000000, 0.000000 + 0.841408, 0.540400, 0.000000, 0.000000 + 0.841125, 0.540841, 0.000000, 0.000000 + 0.840841, 0.541282, 0.000000, 0.000000 + 0.840558, 0.541722, 0.000000, 0.000000 + 0.840274, 0.542162, 0.000000, 0.000000 + 0.839990, 0.542602, 0.000000, 0.000000 + 0.839706, 0.543042, 0.000000, 0.000000 + 0.839421, 0.543482, 0.000000, 0.000000 + 0.839136, 0.543921, 0.000000, 0.000000 + 0.838851, 0.544361, 0.000000, 0.000000 + 0.838566, 0.544800, 0.000000, 0.000000 + 0.838280, 0.545239, 0.000000, 0.000000 + 0.837995, 0.545678, 0.000000, 0.000000 + 0.837709, 0.546117, 0.000000, 0.000000 + 0.837423, 0.546556, 0.000000, 0.000000 + 0.837136, 0.546994, 0.000000, 0.000000 + 0.836850, 0.547433, 0.000000, 0.000000 + 0.836563, 0.547871, 0.000000, 0.000000 + 0.836276, 0.548309, 0.000000, 0.000000 + 0.835988, 0.548747, 0.000000, 0.000000 + 0.835701, 0.549185, 0.000000, 0.000000 + 0.835413, 0.549622, 0.000000, 0.000000 + 0.835125, 0.550060, 0.000000, 0.000000 + 0.834837, 0.550497, 0.000000, 0.000000 + 0.834549, 0.550934, 0.000000, 0.000000 + 0.834260, 0.551371, 0.000000, 0.000000 + 0.833971, 0.551808, 0.000000, 0.000000 + 0.833682, 0.552245, 0.000000, 0.000000 + 0.833392, 0.552682, 0.000000, 0.000000 + 0.833103, 0.553118, 0.000000, 0.000000 + 0.832813, 0.553554, 0.000000, 0.000000 + 0.832523, 0.553991, 0.000000, 0.000000 + 0.832233, 0.554427, 0.000000, 0.000000 + 0.831942, 0.554862, 0.000000, 0.000000 + 0.831651, 0.555298, 0.000000, 0.000000 + 0.831360, 0.555734, 0.000000, 0.000000 + 0.831069, 0.556169, 0.000000, 0.000000 + 0.830778, 0.556604, 0.000000, 0.000000 + 0.830486, 0.557039, 0.000000, 0.000000 + 0.830194, 0.557474, 0.000000, 0.000000 + 0.829902, 0.557909, 0.000000, 0.000000 + 0.829610, 0.558343, 0.000000, 0.000000 + 0.829317, 0.558778, 0.000000, 0.000000 + 0.829025, 0.559212, 0.000000, 0.000000 + 0.828732, 0.559646, 0.000000, 0.000000 + 0.828438, 0.560080, 0.000000, 0.000000 + 0.828145, 0.560514, 0.000000, 0.000000 + 0.827851, 0.560948, 0.000000, 0.000000 + 0.827557, 0.561381, 0.000000, 0.000000 + 0.827263, 0.561815, 0.000000, 0.000000 + 0.826969, 0.562248, 0.000000, 0.000000 + 0.826674, 0.562681, 0.000000, 0.000000 + 0.826379, 0.563114, 0.000000, 0.000000 + 0.826084, 0.563547, 0.000000, 0.000000 + 0.825789, 0.563979, 0.000000, 0.000000 + 0.825493, 0.564412, 0.000000, 0.000000 + 0.825198, 0.564844, 0.000000, 0.000000 + 0.824902, 0.565276, 0.000000, 0.000000 + 0.824606, 0.565708, 0.000000, 0.000000 + 0.824309, 0.566140, 0.000000, 0.000000 + 0.824012, 0.566572, 0.000000, 0.000000 + 0.823716, 0.567003, 0.000000, 0.000000 + 0.823418, 0.567435, 0.000000, 0.000000 + 0.823121, 0.567866, 0.000000, 0.000000 + 0.822824, 0.568297, 0.000000, 0.000000 + 0.822526, 0.568728, 0.000000, 0.000000 + 0.822228, 0.569158, 0.000000, 0.000000 + 0.821930, 0.569589, 0.000000, 0.000000 + 0.821631, 0.570019, 0.000000, 0.000000 + 0.821333, 0.570450, 0.000000, 0.000000 + 0.821034, 0.570880, 0.000000, 0.000000 + 0.820734, 0.571310, 0.000000, 0.000000 + 0.820435, 0.571740, 0.000000, 0.000000 + 0.820136, 0.572169, 0.000000, 0.000000 + 0.819836, 0.572599, 0.000000, 0.000000 + 0.819536, 0.573028, 0.000000, 0.000000 + 0.819235, 0.573457, 0.000000, 0.000000 + 0.818935, 0.573886, 0.000000, 0.000000 + 0.818634, 0.574315, 0.000000, 0.000000 + 0.818333, 0.574744, 0.000000, 0.000000 + 0.818032, 0.575172, 0.000000, 0.000000 + 0.817731, 0.575601, 0.000000, 0.000000 + 0.817429, 0.576029, 0.000000, 0.000000 + 0.817127, 0.576457, 0.000000, 0.000000 + 0.816825, 0.576885, 0.000000, 0.000000 + 0.816523, 0.577313, 0.000000, 0.000000 + 0.816221, 0.577740, 0.000000, 0.000000 + 0.815918, 0.578168, 0.000000, 0.000000 + 0.815615, 0.578595, 0.000000, 0.000000 + 0.815312, 0.579022, 0.000000, 0.000000 + 0.815008, 0.579449, 0.000000, 0.000000 + 0.814705, 0.579876, 0.000000, 0.000000 + 0.814401, 0.580303, 0.000000, 0.000000 + 0.814097, 0.580729, 0.000000, 0.000000 + 0.813793, 0.581155, 0.000000, 0.000000 + 0.813488, 0.581581, 0.000000, 0.000000 + 0.813183, 0.582008, 0.000000, 0.000000 + 0.812878, 0.582433, 0.000000, 0.000000 + 0.812573, 0.582859, 0.000000, 0.000000 + 0.812268, 0.583285, 0.000000, 0.000000 + 0.811962, 0.583710, 0.000000, 0.000000 + 0.811656, 0.584135, 0.000000, 0.000000 + 0.811350, 0.584560, 0.000000, 0.000000 + 0.811044, 0.584985, 0.000000, 0.000000 + 0.810738, 0.585410, 0.000000, 0.000000 + 0.810431, 0.585834, 0.000000, 0.000000 + 0.810124, 0.586259, 0.000000, 0.000000 + 0.809817, 0.586683, 0.000000, 0.000000 + 0.809509, 0.587107, 0.000000, 0.000000 + 0.809202, 0.587531, 0.000000, 0.000000 + 0.808894, 0.587955, 0.000000, 0.000000 + 0.808586, 0.588378, 0.000000, 0.000000 + 0.808277, 0.588802, 0.000000, 0.000000 + 0.807969, 0.589225, 0.000000, 0.000000 + 0.807660, 0.589648, 0.000000, 0.000000 + 0.807351, 0.590071, 0.000000, 0.000000 + 0.807042, 0.590494, 0.000000, 0.000000 + 0.806733, 0.590917, 0.000000, 0.000000 + 0.806423, 0.591339, 0.000000, 0.000000 + 0.806113, 0.591761, 0.000000, 0.000000 + 0.805803, 0.592183, 0.000000, 0.000000 + 0.805493, 0.592605, 0.000000, 0.000000 + 0.805182, 0.593027, 0.000000, 0.000000 + 0.804872, 0.593449, 0.000000, 0.000000 + 0.804561, 0.593870, 0.000000, 0.000000 + 0.804250, 0.594292, 0.000000, 0.000000 + 0.803938, 0.594713, 0.000000, 0.000000 + 0.803627, 0.595134, 0.000000, 0.000000 + 0.803315, 0.595555, 0.000000, 0.000000 + 0.803003, 0.595975, 0.000000, 0.000000 + 0.802690, 0.596396, 0.000000, 0.000000 + 0.802378, 0.596816, 0.000000, 0.000000 + 0.802065, 0.597236, 0.000000, 0.000000 + 0.801752, 0.597656, 0.000000, 0.000000 + 0.801439, 0.598076, 0.000000, 0.000000 + 0.801126, 0.598496, 0.000000, 0.000000 + 0.800812, 0.598915, 0.000000, 0.000000 + 0.800498, 0.599335, 0.000000, 0.000000 + 0.800184, 0.599754, 0.000000, 0.000000 + 0.799870, 0.600173, 0.000000, 0.000000 + 0.799556, 0.600592, 0.000000, 0.000000 + 0.799241, 0.601011, 0.000000, 0.000000 + 0.798926, 0.601429, 0.000000, 0.000000 + 0.798611, 0.601848, 0.000000, 0.000000 + 0.798296, 0.602266, 0.000000, 0.000000 + 0.797980, 0.602684, 0.000000, 0.000000 + 0.797664, 0.603102, 0.000000, 0.000000 + 0.797348, 0.603519, 0.000000, 0.000000 + 0.797032, 0.603937, 0.000000, 0.000000 + 0.796716, 0.604354, 0.000000, 0.000000 + 0.796399, 0.604772, 0.000000, 0.000000 + 0.796082, 0.605189, 0.000000, 0.000000 + 0.795765, 0.605605, 0.000000, 0.000000 + 0.795448, 0.606022, 0.000000, 0.000000 + 0.795130, 0.606439, 0.000000, 0.000000 + 0.794812, 0.606855, 0.000000, 0.000000 + 0.794494, 0.607271, 0.000000, 0.000000 + 0.794176, 0.607687, 0.000000, 0.000000 + 0.793858, 0.608103, 0.000000, 0.000000 + 0.793539, 0.608519, 0.000000, 0.000000 + 0.793220, 0.608935, 0.000000, 0.000000 + 0.792901, 0.609350, 0.000000, 0.000000 + 0.792582, 0.609765, 0.000000, 0.000000 + 0.792263, 0.610180, 0.000000, 0.000000 + 0.791943, 0.610595, 0.000000, 0.000000 + 0.791623, 0.611010, 0.000000, 0.000000 + 0.791303, 0.611424, 0.000000, 0.000000 + 0.790983, 0.611839, 0.000000, 0.000000 + 0.790662, 0.612253, 0.000000, 0.000000 + 0.790341, 0.612667, 0.000000, 0.000000 + 0.790020, 0.613081, 0.000000, 0.000000 + 0.789699, 0.613495, 0.000000, 0.000000 + 0.789377, 0.613908, 0.000000, 0.000000 + 0.789056, 0.614321, 0.000000, 0.000000 + 0.788734, 0.614735, 0.000000, 0.000000 + 0.788412, 0.615148, 0.000000, 0.000000 + 0.788090, 0.615561, 0.000000, 0.000000 + 0.787767, 0.615973, 0.000000, 0.000000 + 0.787444, 0.616386, 0.000000, 0.000000 + 0.787121, 0.616798, 0.000000, 0.000000 + 0.786798, 0.617210, 0.000000, 0.000000 + 0.786475, 0.617622, 0.000000, 0.000000 + 0.786151, 0.618034, 0.000000, 0.000000 + 0.785827, 0.618446, 0.000000, 0.000000 + 0.785503, 0.618857, 0.000000, 0.000000 + 0.785179, 0.619269, 0.000000, 0.000000 + 0.784855, 0.619680, 0.000000, 0.000000 + 0.784530, 0.620091, 0.000000, 0.000000 + 0.784205, 0.620502, 0.000000, 0.000000 + 0.783880, 0.620912, 0.000000, 0.000000 + 0.783555, 0.621323, 0.000000, 0.000000 + 0.783229, 0.621733, 0.000000, 0.000000 + 0.782903, 0.622143, 0.000000, 0.000000 + 0.782577, 0.622553, 0.000000, 0.000000 + 0.782251, 0.622963, 0.000000, 0.000000 + 0.781925, 0.623373, 0.000000, 0.000000 + 0.781598, 0.623782, 0.000000, 0.000000 + 0.781271, 0.624192, 0.000000, 0.000000 + 0.780944, 0.624601, 0.000000, 0.000000 + 0.780617, 0.625010, 0.000000, 0.000000 + 0.780290, 0.625418, 0.000000, 0.000000 + 0.779962, 0.625827, 0.000000, 0.000000 + 0.779634, 0.626235, 0.000000, 0.000000 + 0.779306, 0.626644, 0.000000, 0.000000 + 0.778978, 0.627052, 0.000000, 0.000000 + 0.778649, 0.627460, 0.000000, 0.000000 + 0.778320, 0.627867, 0.000000, 0.000000 + 0.777991, 0.628275, 0.000000, 0.000000 + 0.777662, 0.628682, 0.000000, 0.000000 + 0.777333, 0.629090, 0.000000, 0.000000 + 0.777003, 0.629497, 0.000000, 0.000000 + 0.776673, 0.629904, 0.000000, 0.000000 + 0.776343, 0.630310, 0.000000, 0.000000 + 0.776013, 0.630717, 0.000000, 0.000000 + 0.775683, 0.631123, 0.000000, 0.000000 + 0.775352, 0.631529, 0.000000, 0.000000 + 0.775021, 0.631935, 0.000000, 0.000000 + 0.774690, 0.632341, 0.000000, 0.000000 + 0.774359, 0.632747, 0.000000, 0.000000 + 0.774027, 0.633153, 0.000000, 0.000000 + 0.773695, 0.633558, 0.000000, 0.000000 + 0.773363, 0.633963, 0.000000, 0.000000 + 0.773031, 0.634368, 0.000000, 0.000000 + 0.772699, 0.634773, 0.000000, 0.000000 + 0.772366, 0.635177, 0.000000, 0.000000 + 0.772033, 0.635582, 0.000000, 0.000000 + 0.771700, 0.635986, 0.000000, 0.000000 + 0.771367, 0.636390, 0.000000, 0.000000 + 0.771034, 0.636794, 0.000000, 0.000000 + 0.770700, 0.637198, 0.000000, 0.000000 + 0.770366, 0.637602, 0.000000, 0.000000 + 0.770032, 0.638005, 0.000000, 0.000000 + 0.769698, 0.638408, 0.000000, 0.000000 + 0.769363, 0.638811, 0.000000, 0.000000 + 0.769029, 0.639214, 0.000000, 0.000000 + 0.768694, 0.639617, 0.000000, 0.000000 + 0.768359, 0.640019, 0.000000, 0.000000 + 0.768023, 0.640422, 0.000000, 0.000000 + 0.767688, 0.640824, 0.000000, 0.000000 + 0.767352, 0.641226, 0.000000, 0.000000 + 0.767016, 0.641628, 0.000000, 0.000000 + 0.766680, 0.642029, 0.000000, 0.000000 + 0.766344, 0.642431, 0.000000, 0.000000 + 0.766007, 0.642832, 0.000000, 0.000000 + 0.765670, 0.643233, 0.000000, 0.000000 + 0.765333, 0.643634, 0.000000, 0.000000 + 0.764996, 0.644035, 0.000000, 0.000000 + 0.764659, 0.644436, 0.000000, 0.000000 + 0.764321, 0.644836, 0.000000, 0.000000 + 0.763983, 0.645236, 0.000000, 0.000000 + 0.763645, 0.645636, 0.000000, 0.000000 + 0.763307, 0.646036, 0.000000, 0.000000 + 0.762968, 0.646436, 0.000000, 0.000000 + 0.762630, 0.646835, 0.000000, 0.000000 + 0.762291, 0.647235, 0.000000, 0.000000 + 0.761952, 0.647634, 0.000000, 0.000000 + 0.761612, 0.648033, 0.000000, 0.000000 + 0.761273, 0.648432, 0.000000, 0.000000 + 0.760933, 0.648830, 0.000000, 0.000000 + 0.760593, 0.649229, 0.000000, 0.000000 + 0.760253, 0.649627, 0.000000, 0.000000 + 0.759913, 0.650025, 0.000000, 0.000000 + 0.759572, 0.650423, 0.000000, 0.000000 + 0.759231, 0.650821, 0.000000, 0.000000 + 0.758890, 0.651219, 0.000000, 0.000000 + 0.758549, 0.651616, 0.000000, 0.000000 + 0.758208, 0.652013, 0.000000, 0.000000 + 0.757866, 0.652410, 0.000000, 0.000000 + 0.757524, 0.652807, 0.000000, 0.000000 + 0.757182, 0.653204, 0.000000, 0.000000 + 0.756840, 0.653600, 0.000000, 0.000000 + 0.756497, 0.653997, 0.000000, 0.000000 + 0.756155, 0.654393, 0.000000, 0.000000 + 0.755812, 0.654789, 0.000000, 0.000000 + 0.755469, 0.655185, 0.000000, 0.000000 + 0.755126, 0.655580, 0.000000, 0.000000 + 0.754782, 0.655976, 0.000000, 0.000000 + 0.754438, 0.656371, 0.000000, 0.000000 + 0.754095, 0.656766, 0.000000, 0.000000 + 0.753750, 0.657161, 0.000000, 0.000000 + 0.753406, 0.657555, 0.000000, 0.000000 + 0.753062, 0.657950, 0.000000, 0.000000 + 0.752717, 0.658344, 0.000000, 0.000000 + 0.752372, 0.658739, 0.000000, 0.000000 + 0.752027, 0.659132, 0.000000, 0.000000 + 0.751682, 0.659526, 0.000000, 0.000000 + 0.751336, 0.659920, 0.000000, 0.000000 + 0.750990, 0.660313, 0.000000, 0.000000 + 0.750644, 0.660707, 0.000000, 0.000000 + 0.750298, 0.661100, 0.000000, 0.000000 + 0.749952, 0.661493, 0.000000, 0.000000 + 0.749605, 0.661885, 0.000000, 0.000000 + 0.749258, 0.662278, 0.000000, 0.000000 + 0.748911, 0.662670, 0.000000, 0.000000 + 0.748564, 0.663062, 0.000000, 0.000000 + 0.748217, 0.663454, 0.000000, 0.000000 + 0.747869, 0.663846, 0.000000, 0.000000 + 0.747521, 0.664238, 0.000000, 0.000000 + 0.747173, 0.664629, 0.000000, 0.000000 + 0.746825, 0.665020, 0.000000, 0.000000 + 0.746477, 0.665412, 0.000000, 0.000000 + 0.746128, 0.665802, 0.000000, 0.000000 + 0.745779, 0.666193, 0.000000, 0.000000 + 0.745430, 0.666584, 0.000000, 0.000000 + 0.745081, 0.666974, 0.000000, 0.000000 + 0.744732, 0.667364, 0.000000, 0.000000 + 0.744382, 0.667754, 0.000000, 0.000000 + 0.744032, 0.668144, 0.000000, 0.000000 + 0.743682, 0.668534, 0.000000, 0.000000 + 0.743332, 0.668923, 0.000000, 0.000000 + 0.742981, 0.669312, 0.000000, 0.000000 + 0.742631, 0.669701, 0.000000, 0.000000 + 0.742280, 0.670090, 0.000000, 0.000000 + 0.741929, 0.670479, 0.000000, 0.000000 + 0.741577, 0.670867, 0.000000, 0.000000 + 0.741226, 0.671256, 0.000000, 0.000000 + 0.740874, 0.671644, 0.000000, 0.000000 + 0.740522, 0.672032, 0.000000, 0.000000 + 0.740170, 0.672420, 0.000000, 0.000000 + 0.739818, 0.672807, 0.000000, 0.000000 + 0.739465, 0.673195, 0.000000, 0.000000 + 0.739113, 0.673582, 0.000000, 0.000000 + 0.738760, 0.673969, 0.000000, 0.000000 + 0.738407, 0.674356, 0.000000, 0.000000 + 0.738053, 0.674742, 0.000000, 0.000000 + 0.737700, 0.675129, 0.000000, 0.000000 + 0.737346, 0.675515, 0.000000, 0.000000 + 0.736992, 0.675901, 0.000000, 0.000000 + 0.736638, 0.676287, 0.000000, 0.000000 + 0.736284, 0.676673, 0.000000, 0.000000 + 0.735929, 0.677058, 0.000000, 0.000000 + 0.735575, 0.677444, 0.000000, 0.000000 + 0.735220, 0.677829, 0.000000, 0.000000 + 0.734864, 0.678214, 0.000000, 0.000000 + 0.734509, 0.678599, 0.000000, 0.000000 + 0.734154, 0.678983, 0.000000, 0.000000 + 0.733798, 0.679368, 0.000000, 0.000000 + 0.733442, 0.679752, 0.000000, 0.000000 + 0.733086, 0.680136, 0.000000, 0.000000 + 0.732729, 0.680520, 0.000000, 0.000000 + 0.732373, 0.680904, 0.000000, 0.000000 + 0.732016, 0.681287, 0.000000, 0.000000 + 0.731659, 0.681671, 0.000000, 0.000000 + 0.731302, 0.682054, 0.000000, 0.000000 + 0.730945, 0.682437, 0.000000, 0.000000 + 0.730587, 0.682819, 0.000000, 0.000000 + 0.730229, 0.683202, 0.000000, 0.000000 + 0.729872, 0.683584, 0.000000, 0.000000 + 0.729513, 0.683967, 0.000000, 0.000000 + 0.729155, 0.684349, 0.000000, 0.000000 + 0.728797, 0.684730, 0.000000, 0.000000 + 0.728438, 0.685112, 0.000000, 0.000000 + 0.728079, 0.685493, 0.000000, 0.000000 + 0.727720, 0.685875, 0.000000, 0.000000 + 0.727360, 0.686256, 0.000000, 0.000000 + 0.727001, 0.686637, 0.000000, 0.000000 + 0.726641, 0.687017, 0.000000, 0.000000 + 0.726281, 0.687398, 0.000000, 0.000000 + 0.725921, 0.687778, 0.000000, 0.000000 + 0.725561, 0.688158, 0.000000, 0.000000 + 0.725200, 0.688538, 0.000000, 0.000000 + 0.724839, 0.688918, 0.000000, 0.000000 + 0.724478, 0.689297, 0.000000, 0.000000 + 0.724117, 0.689677, 0.000000, 0.000000 + 0.723756, 0.690056, 0.000000, 0.000000 + 0.723394, 0.690435, 0.000000, 0.000000 + 0.723033, 0.690814, 0.000000, 0.000000 + 0.722671, 0.691192, 0.000000, 0.000000 + 0.722309, 0.691571, 0.000000, 0.000000 + 0.721946, 0.691949, 0.000000, 0.000000 + 0.721584, 0.692327, 0.000000, 0.000000 + 0.721221, 0.692705, 0.000000, 0.000000 + 0.720858, 0.693083, 0.000000, 0.000000 + 0.720495, 0.693460, 0.000000, 0.000000 + 0.720132, 0.693837, 0.000000, 0.000000 + 0.719768, 0.694214, 0.000000, 0.000000 + 0.719404, 0.694591, 0.000000, 0.000000 + 0.719041, 0.694968, 0.000000, 0.000000 + 0.718676, 0.695345, 0.000000, 0.000000 + 0.718312, 0.695721, 0.000000, 0.000000 + 0.717948, 0.696097, 0.000000, 0.000000 + 0.717583, 0.696473, 0.000000, 0.000000 + 0.717218, 0.696849, 0.000000, 0.000000 + 0.716853, 0.697224, 0.000000, 0.000000 + 0.716488, 0.697600, 0.000000, 0.000000 + 0.716122, 0.697975, 0.000000, 0.000000 + 0.715757, 0.698350, 0.000000, 0.000000 + 0.715391, 0.698725, 0.000000, 0.000000 + 0.715025, 0.699099, 0.000000, 0.000000 + 0.714658, 0.699474, 0.000000, 0.000000 + 0.714292, 0.699848, 0.000000, 0.000000 + 0.713925, 0.700222, 0.000000, 0.000000 + 0.713558, 0.700596, 0.000000, 0.000000 + 0.713191, 0.700969, 0.000000, 0.000000 + 0.712824, 0.701343, 0.000000, 0.000000 + 0.712457, 0.701716, 0.000000, 0.000000 + 0.712089, 0.702089, 0.000000, 0.000000 + 0.711721, 0.702462, 0.000000, 0.000000 + 0.711353, 0.702835, 0.000000, 0.000000 + 0.710985, 0.703207, 0.000000, 0.000000 + 0.710616, 0.703580, 0.000000, 0.000000 + 0.710248, 0.703952, 0.000000, 0.000000 + 0.709879, 0.704324, 0.000000, 0.000000 + 0.709510, 0.704695, 0.000000, 0.000000 + 0.709141, 0.705067, 0.000000, 0.000000 + 0.708771, 0.705438, 0.000000, 0.000000 + 0.708402, 0.705809, 0.000000, 0.000000 + 0.708032, 0.706180, 0.000000, 0.000000 + 0.707662, 0.706551, 0.000000, 0.000000 + 0.707292, 0.706922, 0.000000, 0.000000 + 0.706922, 0.707292, 0.000000, 0.000000 + 0.706551, 0.707662, 0.000000, 0.000000 + 0.706180, 0.708032, 0.000000, 0.000000 + 0.705809, 0.708402, 0.000000, 0.000000 + 0.705438, 0.708771, 0.000000, 0.000000 + 0.705067, 0.709141, 0.000000, 0.000000 + 0.704695, 0.709510, 0.000000, 0.000000 + 0.704324, 0.709879, 0.000000, 0.000000 + 0.703952, 0.710248, 0.000000, 0.000000 + 0.703580, 0.710616, 0.000000, 0.000000 + 0.703207, 0.710985, 0.000000, 0.000000 + 0.702835, 0.711353, 0.000000, 0.000000 + 0.702462, 0.711721, 0.000000, 0.000000 + 0.702089, 0.712089, 0.000000, 0.000000 + 0.701716, 0.712457, 0.000000, 0.000000 + 0.701343, 0.712824, 0.000000, 0.000000 + 0.700969, 0.713191, 0.000000, 0.000000 + 0.700596, 0.713558, 0.000000, 0.000000 + 0.700222, 0.713925, 0.000000, 0.000000 + 0.699848, 0.714292, 0.000000, 0.000000 + 0.699474, 0.714658, 0.000000, 0.000000 + 0.699099, 0.715025, 0.000000, 0.000000 + 0.698725, 0.715391, 0.000000, 0.000000 + 0.698350, 0.715757, 0.000000, 0.000000 + 0.697975, 0.716122, 0.000000, 0.000000 + 0.697600, 0.716488, 0.000000, 0.000000 + 0.697224, 0.716853, 0.000000, 0.000000 + 0.696849, 0.717218, 0.000000, 0.000000 + 0.696473, 0.717583, 0.000000, 0.000000 + 0.696097, 0.717948, 0.000000, 0.000000 + 0.695721, 0.718312, 0.000000, 0.000000 + 0.695345, 0.718676, 0.000000, 0.000000 + 0.694968, 0.719041, 0.000000, 0.000000 + 0.694591, 0.719404, 0.000000, 0.000000 + 0.694214, 0.719768, 0.000000, 0.000000 + 0.693837, 0.720132, 0.000000, 0.000000 + 0.693460, 0.720495, 0.000000, 0.000000 + 0.693083, 0.720858, 0.000000, 0.000000 + 0.692705, 0.721221, 0.000000, 0.000000 + 0.692327, 0.721584, 0.000000, 0.000000 + 0.691949, 0.721946, 0.000000, 0.000000 + 0.691571, 0.722309, 0.000000, 0.000000 + 0.691192, 0.722671, 0.000000, 0.000000 + 0.690814, 0.723033, 0.000000, 0.000000 + 0.690435, 0.723394, 0.000000, 0.000000 + 0.690056, 0.723756, 0.000000, 0.000000 + 0.689677, 0.724117, 0.000000, 0.000000 + 0.689297, 0.724478, 0.000000, 0.000000 + 0.688918, 0.724839, 0.000000, 0.000000 + 0.688538, 0.725200, 0.000000, 0.000000 + 0.688158, 0.725561, 0.000000, 0.000000 + 0.687778, 0.725921, 0.000000, 0.000000 + 0.687398, 0.726281, 0.000000, 0.000000 + 0.687017, 0.726641, 0.000000, 0.000000 + 0.686637, 0.727001, 0.000000, 0.000000 + 0.686256, 0.727360, 0.000000, 0.000000 + 0.685875, 0.727720, 0.000000, 0.000000 + 0.685493, 0.728079, 0.000000, 0.000000 + 0.685112, 0.728438, 0.000000, 0.000000 + 0.684730, 0.728797, 0.000000, 0.000000 + 0.684349, 0.729155, 0.000000, 0.000000 + 0.683967, 0.729513, 0.000000, 0.000000 + 0.683584, 0.729872, 0.000000, 0.000000 + 0.683202, 0.730229, 0.000000, 0.000000 + 0.682819, 0.730587, 0.000000, 0.000000 + 0.682437, 0.730945, 0.000000, 0.000000 + 0.682054, 0.731302, 0.000000, 0.000000 + 0.681671, 0.731659, 0.000000, 0.000000 + 0.681287, 0.732016, 0.000000, 0.000000 + 0.680904, 0.732373, 0.000000, 0.000000 + 0.680520, 0.732729, 0.000000, 0.000000 + 0.680136, 0.733086, 0.000000, 0.000000 + 0.679752, 0.733442, 0.000000, 0.000000 + 0.679368, 0.733798, 0.000000, 0.000000 + 0.678983, 0.734154, 0.000000, 0.000000 + 0.678599, 0.734509, 0.000000, 0.000000 + 0.678214, 0.734864, 0.000000, 0.000000 + 0.677829, 0.735220, 0.000000, 0.000000 + 0.677444, 0.735575, 0.000000, 0.000000 + 0.677058, 0.735929, 0.000000, 0.000000 + 0.676673, 0.736284, 0.000000, 0.000000 + 0.676287, 0.736638, 0.000000, 0.000000 + 0.675901, 0.736992, 0.000000, 0.000000 + 0.675515, 0.737346, 0.000000, 0.000000 + 0.675129, 0.737700, 0.000000, 0.000000 + 0.674742, 0.738053, 0.000000, 0.000000 + 0.674356, 0.738407, 0.000000, 0.000000 + 0.673969, 0.738760, 0.000000, 0.000000 + 0.673582, 0.739113, 0.000000, 0.000000 + 0.673195, 0.739465, 0.000000, 0.000000 + 0.672807, 0.739818, 0.000000, 0.000000 + 0.672420, 0.740170, 0.000000, 0.000000 + 0.672032, 0.740522, 0.000000, 0.000000 + 0.671644, 0.740874, 0.000000, 0.000000 + 0.671256, 0.741226, 0.000000, 0.000000 + 0.670867, 0.741577, 0.000000, 0.000000 + 0.670479, 0.741929, 0.000000, 0.000000 + 0.670090, 0.742280, 0.000000, 0.000000 + 0.669701, 0.742631, 0.000000, 0.000000 + 0.669312, 0.742981, 0.000000, 0.000000 + 0.668923, 0.743332, 0.000000, 0.000000 + 0.668534, 0.743682, 0.000000, 0.000000 + 0.668144, 0.744032, 0.000000, 0.000000 + 0.667754, 0.744382, 0.000000, 0.000000 + 0.667364, 0.744732, 0.000000, 0.000000 + 0.666974, 0.745081, 0.000000, 0.000000 + 0.666584, 0.745430, 0.000000, 0.000000 + 0.666193, 0.745779, 0.000000, 0.000000 + 0.665802, 0.746128, 0.000000, 0.000000 + 0.665412, 0.746477, 0.000000, 0.000000 + 0.665020, 0.746825, 0.000000, 0.000000 + 0.664629, 0.747173, 0.000000, 0.000000 + 0.664238, 0.747521, 0.000000, 0.000000 + 0.663846, 0.747869, 0.000000, 0.000000 + 0.663454, 0.748217, 0.000000, 0.000000 + 0.663062, 0.748564, 0.000000, 0.000000 + 0.662670, 0.748911, 0.000000, 0.000000 + 0.662278, 0.749258, 0.000000, 0.000000 + 0.661885, 0.749605, 0.000000, 0.000000 + 0.661493, 0.749952, 0.000000, 0.000000 + 0.661100, 0.750298, 0.000000, 0.000000 + 0.660707, 0.750644, 0.000000, 0.000000 + 0.660313, 0.750990, 0.000000, 0.000000 + 0.659920, 0.751336, 0.000000, 0.000000 + 0.659526, 0.751682, 0.000000, 0.000000 + 0.659132, 0.752027, 0.000000, 0.000000 + 0.658739, 0.752372, 0.000000, 0.000000 + 0.658344, 0.752717, 0.000000, 0.000000 + 0.657950, 0.753062, 0.000000, 0.000000 + 0.657555, 0.753406, 0.000000, 0.000000 + 0.657161, 0.753750, 0.000000, 0.000000 + 0.656766, 0.754095, 0.000000, 0.000000 + 0.656371, 0.754438, 0.000000, 0.000000 + 0.655976, 0.754782, 0.000000, 0.000000 + 0.655580, 0.755126, 0.000000, 0.000000 + 0.655185, 0.755469, 0.000000, 0.000000 + 0.654789, 0.755812, 0.000000, 0.000000 + 0.654393, 0.756155, 0.000000, 0.000000 + 0.653997, 0.756497, 0.000000, 0.000000 + 0.653600, 0.756840, 0.000000, 0.000000 + 0.653204, 0.757182, 0.000000, 0.000000 + 0.652807, 0.757524, 0.000000, 0.000000 + 0.652410, 0.757866, 0.000000, 0.000000 + 0.652013, 0.758208, 0.000000, 0.000000 + 0.651616, 0.758549, 0.000000, 0.000000 + 0.651219, 0.758890, 0.000000, 0.000000 + 0.650821, 0.759231, 0.000000, 0.000000 + 0.650423, 0.759572, 0.000000, 0.000000 + 0.650025, 0.759913, 0.000000, 0.000000 + 0.649627, 0.760253, 0.000000, 0.000000 + 0.649229, 0.760593, 0.000000, 0.000000 + 0.648830, 0.760933, 0.000000, 0.000000 + 0.648432, 0.761273, 0.000000, 0.000000 + 0.648033, 0.761612, 0.000000, 0.000000 + 0.647634, 0.761952, 0.000000, 0.000000 + 0.647235, 0.762291, 0.000000, 0.000000 + 0.646835, 0.762630, 0.000000, 0.000000 + 0.646436, 0.762968, 0.000000, 0.000000 + 0.646036, 0.763307, 0.000000, 0.000000 + 0.645636, 0.763645, 0.000000, 0.000000 + 0.645236, 0.763983, 0.000000, 0.000000 + 0.644836, 0.764321, 0.000000, 0.000000 + 0.644436, 0.764659, 0.000000, 0.000000 + 0.644035, 0.764996, 0.000000, 0.000000 + 0.643634, 0.765333, 0.000000, 0.000000 + 0.643233, 0.765670, 0.000000, 0.000000 + 0.642832, 0.766007, 0.000000, 0.000000 + 0.642431, 0.766344, 0.000000, 0.000000 + 0.642029, 0.766680, 0.000000, 0.000000 + 0.641628, 0.767016, 0.000000, 0.000000 + 0.641226, 0.767352, 0.000000, 0.000000 + 0.640824, 0.767688, 0.000000, 0.000000 + 0.640422, 0.768023, 0.000000, 0.000000 + 0.640019, 0.768359, 0.000000, 0.000000 + 0.639617, 0.768694, 0.000000, 0.000000 + 0.639214, 0.769029, 0.000000, 0.000000 + 0.638811, 0.769363, 0.000000, 0.000000 + 0.638408, 0.769698, 0.000000, 0.000000 + 0.638005, 0.770032, 0.000000, 0.000000 + 0.637602, 0.770366, 0.000000, 0.000000 + 0.637198, 0.770700, 0.000000, 0.000000 + 0.636794, 0.771034, 0.000000, 0.000000 + 0.636390, 0.771367, 0.000000, 0.000000 + 0.635986, 0.771700, 0.000000, 0.000000 + 0.635582, 0.772033, 0.000000, 0.000000 + 0.635177, 0.772366, 0.000000, 0.000000 + 0.634773, 0.772699, 0.000000, 0.000000 + 0.634368, 0.773031, 0.000000, 0.000000 + 0.633963, 0.773363, 0.000000, 0.000000 + 0.633558, 0.773695, 0.000000, 0.000000 + 0.633153, 0.774027, 0.000000, 0.000000 + 0.632747, 0.774359, 0.000000, 0.000000 + 0.632341, 0.774690, 0.000000, 0.000000 + 0.631935, 0.775021, 0.000000, 0.000000 + 0.631529, 0.775352, 0.000000, 0.000000 + 0.631123, 0.775683, 0.000000, 0.000000 + 0.630717, 0.776013, 0.000000, 0.000000 + 0.630310, 0.776343, 0.000000, 0.000000 + 0.629904, 0.776673, 0.000000, 0.000000 + 0.629497, 0.777003, 0.000000, 0.000000 + 0.629090, 0.777333, 0.000000, 0.000000 + 0.628682, 0.777662, 0.000000, 0.000000 + 0.628275, 0.777991, 0.000000, 0.000000 + 0.627867, 0.778320, 0.000000, 0.000000 + 0.627460, 0.778649, 0.000000, 0.000000 + 0.627052, 0.778978, 0.000000, 0.000000 + 0.626644, 0.779306, 0.000000, 0.000000 + 0.626235, 0.779634, 0.000000, 0.000000 + 0.625827, 0.779962, 0.000000, 0.000000 + 0.625418, 0.780290, 0.000000, 0.000000 + 0.625010, 0.780617, 0.000000, 0.000000 + 0.624601, 0.780944, 0.000000, 0.000000 + 0.624192, 0.781271, 0.000000, 0.000000 + 0.623782, 0.781598, 0.000000, 0.000000 + 0.623373, 0.781925, 0.000000, 0.000000 + 0.622963, 0.782251, 0.000000, 0.000000 + 0.622553, 0.782577, 0.000000, 0.000000 + 0.622143, 0.782903, 0.000000, 0.000000 + 0.621733, 0.783229, 0.000000, 0.000000 + 0.621323, 0.783555, 0.000000, 0.000000 + 0.620912, 0.783880, 0.000000, 0.000000 + 0.620502, 0.784205, 0.000000, 0.000000 + 0.620091, 0.784530, 0.000000, 0.000000 + 0.619680, 0.784855, 0.000000, 0.000000 + 0.619269, 0.785179, 0.000000, 0.000000 + 0.618857, 0.785503, 0.000000, 0.000000 + 0.618446, 0.785827, 0.000000, 0.000000 + 0.618034, 0.786151, 0.000000, 0.000000 + 0.617622, 0.786475, 0.000000, 0.000000 + 0.617210, 0.786798, 0.000000, 0.000000 + 0.616798, 0.787121, 0.000000, 0.000000 + 0.616386, 0.787444, 0.000000, 0.000000 + 0.615973, 0.787767, 0.000000, 0.000000 + 0.615561, 0.788090, 0.000000, 0.000000 + 0.615148, 0.788412, 0.000000, 0.000000 + 0.614735, 0.788734, 0.000000, 0.000000 + 0.614321, 0.789056, 0.000000, 0.000000 + 0.613908, 0.789377, 0.000000, 0.000000 + 0.613495, 0.789699, 0.000000, 0.000000 + 0.613081, 0.790020, 0.000000, 0.000000 + 0.612667, 0.790341, 0.000000, 0.000000 + 0.612253, 0.790662, 0.000000, 0.000000 + 0.611839, 0.790983, 0.000000, 0.000000 + 0.611424, 0.791303, 0.000000, 0.000000 + 0.611010, 0.791623, 0.000000, 0.000000 + 0.610595, 0.791943, 0.000000, 0.000000 + 0.610180, 0.792263, 0.000000, 0.000000 + 0.609765, 0.792582, 0.000000, 0.000000 + 0.609350, 0.792901, 0.000000, 0.000000 + 0.608935, 0.793220, 0.000000, 0.000000 + 0.608519, 0.793539, 0.000000, 0.000000 + 0.608103, 0.793858, 0.000000, 0.000000 + 0.607687, 0.794176, 0.000000, 0.000000 + 0.607271, 0.794494, 0.000000, 0.000000 + 0.606855, 0.794812, 0.000000, 0.000000 + 0.606439, 0.795130, 0.000000, 0.000000 + 0.606022, 0.795448, 0.000000, 0.000000 + 0.605605, 0.795765, 0.000000, 0.000000 + 0.605189, 0.796082, 0.000000, 0.000000 + 0.604772, 0.796399, 0.000000, 0.000000 + 0.604354, 0.796716, 0.000000, 0.000000 + 0.603937, 0.797032, 0.000000, 0.000000 + 0.603519, 0.797348, 0.000000, 0.000000 + 0.603102, 0.797664, 0.000000, 0.000000 + 0.602684, 0.797980, 0.000000, 0.000000 + 0.602266, 0.798296, 0.000000, 0.000000 + 0.601848, 0.798611, 0.000000, 0.000000 + 0.601429, 0.798926, 0.000000, 0.000000 + 0.601011, 0.799241, 0.000000, 0.000000 + 0.600592, 0.799556, 0.000000, 0.000000 + 0.600173, 0.799870, 0.000000, 0.000000 + 0.599754, 0.800184, 0.000000, 0.000000 + 0.599335, 0.800498, 0.000000, 0.000000 + 0.598915, 0.800812, 0.000000, 0.000000 + 0.598496, 0.801126, 0.000000, 0.000000 + 0.598076, 0.801439, 0.000000, 0.000000 + 0.597656, 0.801752, 0.000000, 0.000000 + 0.597236, 0.802065, 0.000000, 0.000000 + 0.596816, 0.802378, 0.000000, 0.000000 + 0.596396, 0.802690, 0.000000, 0.000000 + 0.595975, 0.803003, 0.000000, 0.000000 + 0.595555, 0.803315, 0.000000, 0.000000 + 0.595134, 0.803627, 0.000000, 0.000000 + 0.594713, 0.803938, 0.000000, 0.000000 + 0.594292, 0.804250, 0.000000, 0.000000 + 0.593870, 0.804561, 0.000000, 0.000000 + 0.593449, 0.804872, 0.000000, 0.000000 + 0.593027, 0.805182, 0.000000, 0.000000 + 0.592605, 0.805493, 0.000000, 0.000000 + 0.592183, 0.805803, 0.000000, 0.000000 + 0.591761, 0.806113, 0.000000, 0.000000 + 0.591339, 0.806423, 0.000000, 0.000000 + 0.590917, 0.806733, 0.000000, 0.000000 + 0.590494, 0.807042, 0.000000, 0.000000 + 0.590071, 0.807351, 0.000000, 0.000000 + 0.589648, 0.807660, 0.000000, 0.000000 + 0.589225, 0.807969, 0.000000, 0.000000 + 0.588802, 0.808277, 0.000000, 0.000000 + 0.588378, 0.808586, 0.000000, 0.000000 + 0.587955, 0.808894, 0.000000, 0.000000 + 0.587531, 0.809202, 0.000000, 0.000000 + 0.587107, 0.809509, 0.000000, 0.000000 + 0.586683, 0.809817, 0.000000, 0.000000 + 0.586259, 0.810124, 0.000000, 0.000000 + 0.585834, 0.810431, 0.000000, 0.000000 + 0.585410, 0.810738, 0.000000, 0.000000 + 0.584985, 0.811044, 0.000000, 0.000000 + 0.584560, 0.811350, 0.000000, 0.000000 + 0.584135, 0.811656, 0.000000, 0.000000 + 0.583710, 0.811962, 0.000000, 0.000000 + 0.583285, 0.812268, 0.000000, 0.000000 + 0.582859, 0.812573, 0.000000, 0.000000 + 0.582433, 0.812878, 0.000000, 0.000000 + 0.582008, 0.813183, 0.000000, 0.000000 + 0.581581, 0.813488, 0.000000, 0.000000 + 0.581155, 0.813793, 0.000000, 0.000000 + 0.580729, 0.814097, 0.000000, 0.000000 + 0.580303, 0.814401, 0.000000, 0.000000 + 0.579876, 0.814705, 0.000000, 0.000000 + 0.579449, 0.815008, 0.000000, 0.000000 + 0.579022, 0.815312, 0.000000, 0.000000 + 0.578595, 0.815615, 0.000000, 0.000000 + 0.578168, 0.815918, 0.000000, 0.000000 + 0.577740, 0.816221, 0.000000, 0.000000 + 0.577313, 0.816523, 0.000000, 0.000000 + 0.576885, 0.816825, 0.000000, 0.000000 + 0.576457, 0.817127, 0.000000, 0.000000 + 0.576029, 0.817429, 0.000000, 0.000000 + 0.575601, 0.817731, 0.000000, 0.000000 + 0.575172, 0.818032, 0.000000, 0.000000 + 0.574744, 0.818333, 0.000000, 0.000000 + 0.574315, 0.818634, 0.000000, 0.000000 + 0.573886, 0.818935, 0.000000, 0.000000 + 0.573457, 0.819235, 0.000000, 0.000000 + 0.573028, 0.819536, 0.000000, 0.000000 + 0.572599, 0.819836, 0.000000, 0.000000 + 0.572169, 0.820136, 0.000000, 0.000000 + 0.571740, 0.820435, 0.000000, 0.000000 + 0.571310, 0.820734, 0.000000, 0.000000 + 0.570880, 0.821034, 0.000000, 0.000000 + 0.570450, 0.821333, 0.000000, 0.000000 + 0.570019, 0.821631, 0.000000, 0.000000 + 0.569589, 0.821930, 0.000000, 0.000000 + 0.569158, 0.822228, 0.000000, 0.000000 + 0.568728, 0.822526, 0.000000, 0.000000 + 0.568297, 0.822824, 0.000000, 0.000000 + 0.567866, 0.823121, 0.000000, 0.000000 + 0.567435, 0.823418, 0.000000, 0.000000 + 0.567003, 0.823716, 0.000000, 0.000000 + 0.566572, 0.824012, 0.000000, 0.000000 + 0.566140, 0.824309, 0.000000, 0.000000 + 0.565708, 0.824606, 0.000000, 0.000000 + 0.565276, 0.824902, 0.000000, 0.000000 + 0.564844, 0.825198, 0.000000, 0.000000 + 0.564412, 0.825493, 0.000000, 0.000000 + 0.563979, 0.825789, 0.000000, 0.000000 + 0.563547, 0.826084, 0.000000, 0.000000 + 0.563114, 0.826379, 0.000000, 0.000000 + 0.562681, 0.826674, 0.000000, 0.000000 + 0.562248, 0.826969, 0.000000, 0.000000 + 0.561815, 0.827263, 0.000000, 0.000000 + 0.561381, 0.827557, 0.000000, 0.000000 + 0.560948, 0.827851, 0.000000, 0.000000 + 0.560514, 0.828145, 0.000000, 0.000000 + 0.560080, 0.828438, 0.000000, 0.000000 + 0.559646, 0.828732, 0.000000, 0.000000 + 0.559212, 0.829025, 0.000000, 0.000000 + 0.558778, 0.829317, 0.000000, 0.000000 + 0.558343, 0.829610, 0.000000, 0.000000 + 0.557909, 0.829902, 0.000000, 0.000000 + 0.557474, 0.830194, 0.000000, 0.000000 + 0.557039, 0.830486, 0.000000, 0.000000 + 0.556604, 0.830778, 0.000000, 0.000000 + 0.556169, 0.831069, 0.000000, 0.000000 + 0.555734, 0.831360, 0.000000, 0.000000 + 0.555298, 0.831651, 0.000000, 0.000000 + 0.554862, 0.831942, 0.000000, 0.000000 + 0.554427, 0.832233, 0.000000, 0.000000 + 0.553991, 0.832523, 0.000000, 0.000000 + 0.553554, 0.832813, 0.000000, 0.000000 + 0.553118, 0.833103, 0.000000, 0.000000 + 0.552682, 0.833392, 0.000000, 0.000000 + 0.552245, 0.833682, 0.000000, 0.000000 + 0.551808, 0.833971, 0.000000, 0.000000 + 0.551371, 0.834260, 0.000000, 0.000000 + 0.550934, 0.834549, 0.000000, 0.000000 + 0.550497, 0.834837, 0.000000, 0.000000 + 0.550060, 0.835125, 0.000000, 0.000000 + 0.549622, 0.835413, 0.000000, 0.000000 + 0.549185, 0.835701, 0.000000, 0.000000 + 0.548747, 0.835988, 0.000000, 0.000000 + 0.548309, 0.836276, 0.000000, 0.000000 + 0.547871, 0.836563, 0.000000, 0.000000 + 0.547433, 0.836850, 0.000000, 0.000000 + 0.546994, 0.837136, 0.000000, 0.000000 + 0.546556, 0.837423, 0.000000, 0.000000 + 0.546117, 0.837709, 0.000000, 0.000000 + 0.545678, 0.837995, 0.000000, 0.000000 + 0.545239, 0.838280, 0.000000, 0.000000 + 0.544800, 0.838566, 0.000000, 0.000000 + 0.544361, 0.838851, 0.000000, 0.000000 + 0.543921, 0.839136, 0.000000, 0.000000 + 0.543482, 0.839421, 0.000000, 0.000000 + 0.543042, 0.839706, 0.000000, 0.000000 + 0.542602, 0.839990, 0.000000, 0.000000 + 0.542162, 0.840274, 0.000000, 0.000000 + 0.541722, 0.840558, 0.000000, 0.000000 + 0.541282, 0.840841, 0.000000, 0.000000 + 0.540841, 0.841125, 0.000000, 0.000000 + 0.540400, 0.841408, 0.000000, 0.000000 + 0.539960, 0.841691, 0.000000, 0.000000 + 0.539519, 0.841974, 0.000000, 0.000000 + 0.539078, 0.842256, 0.000000, 0.000000 + 0.538636, 0.842538, 0.000000, 0.000000 + 0.538195, 0.842820, 0.000000, 0.000000 + 0.537754, 0.843102, 0.000000, 0.000000 + 0.537312, 0.843384, 0.000000, 0.000000 + 0.536870, 0.843665, 0.000000, 0.000000 + 0.536428, 0.843946, 0.000000, 0.000000 + 0.535986, 0.844227, 0.000000, 0.000000 + 0.535544, 0.844507, 0.000000, 0.000000 + 0.535101, 0.844788, 0.000000, 0.000000 + 0.534659, 0.845068, 0.000000, 0.000000 + 0.534216, 0.845348, 0.000000, 0.000000 + 0.533773, 0.845628, 0.000000, 0.000000 + 0.533330, 0.845907, 0.000000, 0.000000 + 0.532887, 0.846186, 0.000000, 0.000000 + 0.532444, 0.846465, 0.000000, 0.000000 + 0.532000, 0.846744, 0.000000, 0.000000 + 0.531557, 0.847023, 0.000000, 0.000000 + 0.531113, 0.847301, 0.000000, 0.000000 + 0.530669, 0.847579, 0.000000, 0.000000 + 0.530225, 0.847857, 0.000000, 0.000000 + 0.529781, 0.848134, 0.000000, 0.000000 + 0.529337, 0.848412, 0.000000, 0.000000 + 0.528892, 0.848689, 0.000000, 0.000000 + 0.528448, 0.848966, 0.000000, 0.000000 + 0.528003, 0.849243, 0.000000, 0.000000 + 0.527558, 0.849519, 0.000000, 0.000000 + 0.527113, 0.849795, 0.000000, 0.000000 + 0.526668, 0.850071, 0.000000, 0.000000 + 0.526223, 0.850347, 0.000000, 0.000000 + 0.525777, 0.850622, 0.000000, 0.000000 + 0.525332, 0.850898, 0.000000, 0.000000 + 0.524886, 0.851173, 0.000000, 0.000000 + 0.524440, 0.851447, 0.000000, 0.000000 + 0.523994, 0.851722, 0.000000, 0.000000 + 0.523548, 0.851996, 0.000000, 0.000000 + 0.523101, 0.852270, 0.000000, 0.000000 + 0.522655, 0.852544, 0.000000, 0.000000 + 0.522208, 0.852818, 0.000000, 0.000000 + 0.521761, 0.853091, 0.000000, 0.000000 + 0.521315, 0.853365, 0.000000, 0.000000 + 0.520868, 0.853638, 0.000000, 0.000000 + 0.520420, 0.853910, 0.000000, 0.000000 + 0.519973, 0.854183, 0.000000, 0.000000 + 0.519526, 0.854455, 0.000000, 0.000000 + 0.519078, 0.854727, 0.000000, 0.000000 + 0.518630, 0.854999, 0.000000, 0.000000 + 0.518182, 0.855270, 0.000000, 0.000000 + 0.517734, 0.855541, 0.000000, 0.000000 + 0.517286, 0.855813, 0.000000, 0.000000 + 0.516838, 0.856083, 0.000000, 0.000000 + 0.516389, 0.856354, 0.000000, 0.000000 + 0.515941, 0.856624, 0.000000, 0.000000 + 0.515492, 0.856894, 0.000000, 0.000000 + 0.515043, 0.857164, 0.000000, 0.000000 + 0.514594, 0.857434, 0.000000, 0.000000 + 0.514145, 0.857703, 0.000000, 0.000000 + 0.513696, 0.857973, 0.000000, 0.000000 + 0.513246, 0.858241, 0.000000, 0.000000 + 0.512797, 0.858510, 0.000000, 0.000000 + 0.512347, 0.858779, 0.000000, 0.000000 + 0.511897, 0.859047, 0.000000, 0.000000 + 0.511447, 0.859315, 0.000000, 0.000000 + 0.510997, 0.859583, 0.000000, 0.000000 + 0.510546, 0.859850, 0.000000, 0.000000 + 0.510096, 0.860117, 0.000000, 0.000000 + 0.509645, 0.860385, 0.000000, 0.000000 + 0.509195, 0.860651, 0.000000, 0.000000 + 0.508744, 0.860918, 0.000000, 0.000000 + 0.508293, 0.861184, 0.000000, 0.000000 + 0.507842, 0.861450, 0.000000, 0.000000 + 0.507390, 0.861716, 0.000000, 0.000000 + 0.506939, 0.861982, 0.000000, 0.000000 + 0.506487, 0.862247, 0.000000, 0.000000 + 0.506036, 0.862512, 0.000000, 0.000000 + 0.505584, 0.862777, 0.000000, 0.000000 + 0.505132, 0.863042, 0.000000, 0.000000 + 0.504680, 0.863307, 0.000000, 0.000000 + 0.504228, 0.863571, 0.000000, 0.000000 + 0.503775, 0.863835, 0.000000, 0.000000 + 0.503323, 0.864099, 0.000000, 0.000000 + 0.502870, 0.864362, 0.000000, 0.000000 + 0.502417, 0.864625, 0.000000, 0.000000 + 0.501964, 0.864888, 0.000000, 0.000000 + 0.501511, 0.865151, 0.000000, 0.000000 + 0.501058, 0.865414, 0.000000, 0.000000 + 0.500605, 0.865676, 0.000000, 0.000000 + 0.500151, 0.865938, 0.000000, 0.000000 + 0.499698, 0.866200, 0.000000, 0.000000 + 0.499244, 0.866462, 0.000000, 0.000000 + 0.498790, 0.866723, 0.000000, 0.000000 + 0.498336, 0.866984, 0.000000, 0.000000 + 0.497882, 0.867245, 0.000000, 0.000000 + 0.497427, 0.867506, 0.000000, 0.000000 + 0.496973, 0.867766, 0.000000, 0.000000 + 0.496518, 0.868026, 0.000000, 0.000000 + 0.496064, 0.868286, 0.000000, 0.000000 + 0.495609, 0.868546, 0.000000, 0.000000 + 0.495154, 0.868805, 0.000000, 0.000000 + 0.494699, 0.869065, 0.000000, 0.000000 + 0.494243, 0.869324, 0.000000, 0.000000 + 0.493788, 0.869582, 0.000000, 0.000000 + 0.493332, 0.869841, 0.000000, 0.000000 + 0.492877, 0.870099, 0.000000, 0.000000 + 0.492421, 0.870357, 0.000000, 0.000000 + 0.491965, 0.870615, 0.000000, 0.000000 + 0.491509, 0.870872, 0.000000, 0.000000 + 0.491053, 0.871130, 0.000000, 0.000000 + 0.490596, 0.871387, 0.000000, 0.000000 + 0.490140, 0.871644, 0.000000, 0.000000 + 0.489683, 0.871900, 0.000000, 0.000000 + 0.489227, 0.872157, 0.000000, 0.000000 + 0.488770, 0.872413, 0.000000, 0.000000 + 0.488313, 0.872669, 0.000000, 0.000000 + 0.487856, 0.872924, 0.000000, 0.000000 + 0.487398, 0.873180, 0.000000, 0.000000 + 0.486941, 0.873435, 0.000000, 0.000000 + 0.486483, 0.873690, 0.000000, 0.000000 + 0.486026, 0.873945, 0.000000, 0.000000 + 0.485568, 0.874199, 0.000000, 0.000000 + 0.485110, 0.874453, 0.000000, 0.000000 + 0.484652, 0.874707, 0.000000, 0.000000 + 0.484194, 0.874961, 0.000000, 0.000000 + 0.483735, 0.875214, 0.000000, 0.000000 + 0.483277, 0.875468, 0.000000, 0.000000 + 0.482818, 0.875721, 0.000000, 0.000000 + 0.482359, 0.875973, 0.000000, 0.000000 + 0.481901, 0.876226, 0.000000, 0.000000 + 0.481442, 0.876478, 0.000000, 0.000000 + 0.480982, 0.876730, 0.000000, 0.000000 + 0.480523, 0.876982, 0.000000, 0.000000 + 0.480064, 0.877234, 0.000000, 0.000000 + 0.479604, 0.877485, 0.000000, 0.000000 + 0.479145, 0.877736, 0.000000, 0.000000 + 0.478685, 0.877987, 0.000000, 0.000000 + 0.478225, 0.878237, 0.000000, 0.000000 + 0.477765, 0.878488, 0.000000, 0.000000 + 0.477305, 0.878738, 0.000000, 0.000000 + 0.476844, 0.878988, 0.000000, 0.000000 + 0.476384, 0.879237, 0.000000, 0.000000 + 0.475923, 0.879487, 0.000000, 0.000000 + 0.475462, 0.879736, 0.000000, 0.000000 + 0.475002, 0.879985, 0.000000, 0.000000 + 0.474541, 0.880234, 0.000000, 0.000000 + 0.474079, 0.880482, 0.000000, 0.000000 + 0.473618, 0.880730, 0.000000, 0.000000 + 0.473157, 0.880978, 0.000000, 0.000000 + 0.472695, 0.881226, 0.000000, 0.000000 + 0.472234, 0.881473, 0.000000, 0.000000 + 0.471772, 0.881721, 0.000000, 0.000000 + 0.471310, 0.881968, 0.000000, 0.000000 + 0.470848, 0.882214, 0.000000, 0.000000 + 0.470386, 0.882461, 0.000000, 0.000000 + 0.469924, 0.882707, 0.000000, 0.000000 + 0.469461, 0.882953, 0.000000, 0.000000 + 0.468999, 0.883199, 0.000000, 0.000000 + 0.468536, 0.883444, 0.000000, 0.000000 + 0.468073, 0.883690, 0.000000, 0.000000 + 0.467610, 0.883935, 0.000000, 0.000000 + 0.467147, 0.884179, 0.000000, 0.000000 + 0.466684, 0.884424, 0.000000, 0.000000 + 0.466221, 0.884668, 0.000000, 0.000000 + 0.465757, 0.884912, 0.000000, 0.000000 + 0.465294, 0.885156, 0.000000, 0.000000 + 0.464830, 0.885400, 0.000000, 0.000000 + 0.464366, 0.885643, 0.000000, 0.000000 + 0.463902, 0.885886, 0.000000, 0.000000 + 0.463438, 0.886129, 0.000000, 0.000000 + 0.462974, 0.886372, 0.000000, 0.000000 + 0.462510, 0.886614, 0.000000, 0.000000 + 0.462045, 0.886856, 0.000000, 0.000000 + 0.461581, 0.887098, 0.000000, 0.000000 + 0.461116, 0.887340, 0.000000, 0.000000 + 0.460651, 0.887581, 0.000000, 0.000000 + 0.460186, 0.887822, 0.000000, 0.000000 + 0.459721, 0.888063, 0.000000, 0.000000 + 0.459256, 0.888304, 0.000000, 0.000000 + 0.458791, 0.888544, 0.000000, 0.000000 + 0.458325, 0.888785, 0.000000, 0.000000 + 0.457860, 0.889024, 0.000000, 0.000000 + 0.457394, 0.889264, 0.000000, 0.000000 + 0.456928, 0.889504, 0.000000, 0.000000 + 0.456462, 0.889743, 0.000000, 0.000000 + 0.455996, 0.889982, 0.000000, 0.000000 + 0.455530, 0.890220, 0.000000, 0.000000 + 0.455064, 0.890459, 0.000000, 0.000000 + 0.454597, 0.890697, 0.000000, 0.000000 + 0.454130, 0.890935, 0.000000, 0.000000 + 0.453664, 0.891173, 0.000000, 0.000000 + 0.453197, 0.891410, 0.000000, 0.000000 + 0.452730, 0.891648, 0.000000, 0.000000 + 0.452263, 0.891885, 0.000000, 0.000000 + 0.451796, 0.892121, 0.000000, 0.000000 + 0.451328, 0.892358, 0.000000, 0.000000 + 0.450861, 0.892594, 0.000000, 0.000000 + 0.450393, 0.892830, 0.000000, 0.000000 + 0.449926, 0.893066, 0.000000, 0.000000 + 0.449458, 0.893302, 0.000000, 0.000000 + 0.448990, 0.893537, 0.000000, 0.000000 + 0.448522, 0.893772, 0.000000, 0.000000 + 0.448054, 0.894007, 0.000000, 0.000000 + 0.447585, 0.894241, 0.000000, 0.000000 + 0.447117, 0.894476, 0.000000, 0.000000 + 0.446648, 0.894710, 0.000000, 0.000000 + 0.446180, 0.894943, 0.000000, 0.000000 + 0.445711, 0.895177, 0.000000, 0.000000 + 0.445242, 0.895410, 0.000000, 0.000000 + 0.444773, 0.895643, 0.000000, 0.000000 + 0.444304, 0.895876, 0.000000, 0.000000 + 0.443834, 0.896109, 0.000000, 0.000000 + 0.443365, 0.896341, 0.000000, 0.000000 + 0.442895, 0.896573, 0.000000, 0.000000 + 0.442426, 0.896805, 0.000000, 0.000000 + 0.441956, 0.897037, 0.000000, 0.000000 + 0.441486, 0.897268, 0.000000, 0.000000 + 0.441016, 0.897499, 0.000000, 0.000000 + 0.440546, 0.897730, 0.000000, 0.000000 + 0.440076, 0.897961, 0.000000, 0.000000 + 0.439605, 0.898191, 0.000000, 0.000000 + 0.439135, 0.898421, 0.000000, 0.000000 + 0.438664, 0.898651, 0.000000, 0.000000 + 0.438193, 0.898881, 0.000000, 0.000000 + 0.437722, 0.899110, 0.000000, 0.000000 + 0.437251, 0.899339, 0.000000, 0.000000 + 0.436780, 0.899568, 0.000000, 0.000000 + 0.436309, 0.899797, 0.000000, 0.000000 + 0.435838, 0.900025, 0.000000, 0.000000 + 0.435366, 0.900253, 0.000000, 0.000000 + 0.434895, 0.900481, 0.000000, 0.000000 + 0.434423, 0.900709, 0.000000, 0.000000 + 0.433951, 0.900936, 0.000000, 0.000000 + 0.433479, 0.901164, 0.000000, 0.000000 + 0.433007, 0.901390, 0.000000, 0.000000 + 0.432535, 0.901617, 0.000000, 0.000000 + 0.432063, 0.901844, 0.000000, 0.000000 + 0.431590, 0.902070, 0.000000, 0.000000 + 0.431118, 0.902296, 0.000000, 0.000000 + 0.430645, 0.902521, 0.000000, 0.000000 + 0.430172, 0.902747, 0.000000, 0.000000 + 0.429699, 0.902972, 0.000000, 0.000000 + 0.429226, 0.903197, 0.000000, 0.000000 + 0.428753, 0.903422, 0.000000, 0.000000 + 0.428280, 0.903646, 0.000000, 0.000000 + 0.427807, 0.903870, 0.000000, 0.000000 + 0.427333, 0.904094, 0.000000, 0.000000 + 0.426860, 0.904318, 0.000000, 0.000000 + 0.426386, 0.904541, 0.000000, 0.000000 + 0.425912, 0.904765, 0.000000, 0.000000 + 0.425438, 0.904988, 0.000000, 0.000000 + 0.424964, 0.905210, 0.000000, 0.000000 + 0.424490, 0.905433, 0.000000, 0.000000 + 0.424015, 0.905655, 0.000000, 0.000000 + 0.423541, 0.905877, 0.000000, 0.000000 + 0.423067, 0.906099, 0.000000, 0.000000 + 0.422592, 0.906320, 0.000000, 0.000000 + 0.422117, 0.906541, 0.000000, 0.000000 + 0.421642, 0.906762, 0.000000, 0.000000 + 0.421167, 0.906983, 0.000000, 0.000000 + 0.420692, 0.907203, 0.000000, 0.000000 + 0.420217, 0.907424, 0.000000, 0.000000 + 0.419742, 0.907644, 0.000000, 0.000000 + 0.419266, 0.907863, 0.000000, 0.000000 + 0.418791, 0.908083, 0.000000, 0.000000 + 0.418315, 0.908302, 0.000000, 0.000000 + 0.417839, 0.908521, 0.000000, 0.000000 + 0.417363, 0.908740, 0.000000, 0.000000 + 0.416887, 0.908958, 0.000000, 0.000000 + 0.416411, 0.909177, 0.000000, 0.000000 + 0.415935, 0.909394, 0.000000, 0.000000 + 0.415458, 0.909612, 0.000000, 0.000000 + 0.414982, 0.909830, 0.000000, 0.000000 + 0.414505, 0.910047, 0.000000, 0.000000 + 0.414029, 0.910264, 0.000000, 0.000000 + 0.413552, 0.910481, 0.000000, 0.000000 + 0.413075, 0.910697, 0.000000, 0.000000 + 0.412598, 0.910913, 0.000000, 0.000000 + 0.412121, 0.911129, 0.000000, 0.000000 + 0.411643, 0.911345, 0.000000, 0.000000 + 0.411166, 0.911561, 0.000000, 0.000000 + 0.410688, 0.911776, 0.000000, 0.000000 + 0.410211, 0.911991, 0.000000, 0.000000 + 0.409733, 0.912206, 0.000000, 0.000000 + 0.409255, 0.912420, 0.000000, 0.000000 + 0.408777, 0.912634, 0.000000, 0.000000 + 0.408299, 0.912848, 0.000000, 0.000000 + 0.407821, 0.913062, 0.000000, 0.000000 + 0.407343, 0.913275, 0.000000, 0.000000 + 0.406864, 0.913489, 0.000000, 0.000000 + 0.406386, 0.913702, 0.000000, 0.000000 + 0.405907, 0.913914, 0.000000, 0.000000 + 0.405428, 0.914127, 0.000000, 0.000000 + 0.404950, 0.914339, 0.000000, 0.000000 + 0.404471, 0.914551, 0.000000, 0.000000 + 0.403991, 0.914763, 0.000000, 0.000000 + 0.403512, 0.914974, 0.000000, 0.000000 + 0.403033, 0.915185, 0.000000, 0.000000 + 0.402554, 0.915396, 0.000000, 0.000000 + 0.402074, 0.915607, 0.000000, 0.000000 + 0.401594, 0.915818, 0.000000, 0.000000 + 0.401115, 0.916028, 0.000000, 0.000000 + 0.400635, 0.916238, 0.000000, 0.000000 + 0.400155, 0.916448, 0.000000, 0.000000 + 0.399675, 0.916657, 0.000000, 0.000000 + 0.399195, 0.916866, 0.000000, 0.000000 + 0.398714, 0.917075, 0.000000, 0.000000 + 0.398234, 0.917284, 0.000000, 0.000000 + 0.397753, 0.917492, 0.000000, 0.000000 + 0.397273, 0.917701, 0.000000, 0.000000 + 0.396792, 0.917908, 0.000000, 0.000000 + 0.396311, 0.918116, 0.000000, 0.000000 + 0.395830, 0.918324, 0.000000, 0.000000 + 0.395349, 0.918531, 0.000000, 0.000000 + 0.394868, 0.918738, 0.000000, 0.000000 + 0.394387, 0.918944, 0.000000, 0.000000 + 0.393906, 0.919151, 0.000000, 0.000000 + 0.393424, 0.919357, 0.000000, 0.000000 + 0.392942, 0.919563, 0.000000, 0.000000 + 0.392461, 0.919769, 0.000000, 0.000000 + 0.391979, 0.919974, 0.000000, 0.000000 + 0.391497, 0.920179, 0.000000, 0.000000 + 0.391015, 0.920384, 0.000000, 0.000000 + 0.390533, 0.920589, 0.000000, 0.000000 + 0.390051, 0.920793, 0.000000, 0.000000 + 0.389568, 0.920998, 0.000000, 0.000000 + 0.389086, 0.921201, 0.000000, 0.000000 + 0.388603, 0.921405, 0.000000, 0.000000 + 0.388121, 0.921609, 0.000000, 0.000000 + 0.387638, 0.921812, 0.000000, 0.000000 + 0.387155, 0.922015, 0.000000, 0.000000 + 0.386672, 0.922217, 0.000000, 0.000000 + 0.386189, 0.922420, 0.000000, 0.000000 + 0.385706, 0.922622, 0.000000, 0.000000 + 0.385222, 0.922824, 0.000000, 0.000000 + 0.384739, 0.923025, 0.000000, 0.000000 + 0.384256, 0.923227, 0.000000, 0.000000 + 0.383772, 0.923428, 0.000000, 0.000000 + 0.383288, 0.923629, 0.000000, 0.000000 + 0.382804, 0.923829, 0.000000, 0.000000 + 0.382320, 0.924030, 0.000000, 0.000000 + 0.381836, 0.924230, 0.000000, 0.000000 + 0.381352, 0.924430, 0.000000, 0.000000 + 0.380868, 0.924629, 0.000000, 0.000000 + 0.380384, 0.924829, 0.000000, 0.000000 + 0.379899, 0.925028, 0.000000, 0.000000 + 0.379415, 0.925227, 0.000000, 0.000000 + 0.378930, 0.925425, 0.000000, 0.000000 + 0.378445, 0.925624, 0.000000, 0.000000 + 0.377960, 0.925822, 0.000000, 0.000000 + 0.377475, 0.926020, 0.000000, 0.000000 + 0.376990, 0.926217, 0.000000, 0.000000 + 0.376505, 0.926415, 0.000000, 0.000000 + 0.376020, 0.926612, 0.000000, 0.000000 + 0.375535, 0.926808, 0.000000, 0.000000 + 0.375049, 0.927005, 0.000000, 0.000000 + 0.374563, 0.927201, 0.000000, 0.000000 + 0.374078, 0.927397, 0.000000, 0.000000 + 0.373592, 0.927593, 0.000000, 0.000000 + 0.373106, 0.927789, 0.000000, 0.000000 + 0.372620, 0.927984, 0.000000, 0.000000 + 0.372134, 0.928179, 0.000000, 0.000000 + 0.371648, 0.928374, 0.000000, 0.000000 + 0.371161, 0.928568, 0.000000, 0.000000 + 0.370675, 0.928763, 0.000000, 0.000000 + 0.370188, 0.928957, 0.000000, 0.000000 + 0.369702, 0.929150, 0.000000, 0.000000 + 0.369215, 0.929344, 0.000000, 0.000000 + 0.368728, 0.929537, 0.000000, 0.000000 + 0.368241, 0.929730, 0.000000, 0.000000 + 0.367754, 0.929923, 0.000000, 0.000000 + 0.367267, 0.930115, 0.000000, 0.000000 + 0.366780, 0.930308, 0.000000, 0.000000 + 0.366293, 0.930500, 0.000000, 0.000000 + 0.365805, 0.930691, 0.000000, 0.000000 + 0.365318, 0.930883, 0.000000, 0.000000 + 0.364830, 0.931074, 0.000000, 0.000000 + 0.364342, 0.931265, 0.000000, 0.000000 + 0.363855, 0.931456, 0.000000, 0.000000 + 0.363367, 0.931646, 0.000000, 0.000000 + 0.362879, 0.931836, 0.000000, 0.000000 + 0.362391, 0.932026, 0.000000, 0.000000 + 0.361902, 0.932216, 0.000000, 0.000000 + 0.361414, 0.932405, 0.000000, 0.000000 + 0.360926, 0.932595, 0.000000, 0.000000 + 0.360437, 0.932784, 0.000000, 0.000000 + 0.359948, 0.932972, 0.000000, 0.000000 + 0.359460, 0.933161, 0.000000, 0.000000 + 0.358971, 0.933349, 0.000000, 0.000000 + 0.358482, 0.933537, 0.000000, 0.000000 + 0.357993, 0.933724, 0.000000, 0.000000 + 0.357504, 0.933912, 0.000000, 0.000000 + 0.357015, 0.934099, 0.000000, 0.000000 + 0.356525, 0.934286, 0.000000, 0.000000 + 0.356036, 0.934472, 0.000000, 0.000000 + 0.355547, 0.934659, 0.000000, 0.000000 + 0.355057, 0.934845, 0.000000, 0.000000 + 0.354567, 0.935031, 0.000000, 0.000000 + 0.354077, 0.935216, 0.000000, 0.000000 + 0.353588, 0.935401, 0.000000, 0.000000 + 0.353098, 0.935587, 0.000000, 0.000000 + 0.352607, 0.935771, 0.000000, 0.000000 + 0.352117, 0.935956, 0.000000, 0.000000 + 0.351627, 0.936140, 0.000000, 0.000000 + 0.351137, 0.936324, 0.000000, 0.000000 + 0.350646, 0.936508, 0.000000, 0.000000 + 0.350156, 0.936692, 0.000000, 0.000000 + 0.349665, 0.936875, 0.000000, 0.000000 + 0.349174, 0.937058, 0.000000, 0.000000 + 0.348683, 0.937241, 0.000000, 0.000000 + 0.348192, 0.937423, 0.000000, 0.000000 + 0.347701, 0.937605, 0.000000, 0.000000 + 0.347210, 0.937787, 0.000000, 0.000000 + 0.346719, 0.937969, 0.000000, 0.000000 + 0.346228, 0.938151, 0.000000, 0.000000 + 0.345736, 0.938332, 0.000000, 0.000000 + 0.345245, 0.938513, 0.000000, 0.000000 + 0.344753, 0.938693, 0.000000, 0.000000 + 0.344261, 0.938874, 0.000000, 0.000000 + 0.343770, 0.939054, 0.000000, 0.000000 + 0.343278, 0.939234, 0.000000, 0.000000 + 0.342786, 0.939414, 0.000000, 0.000000 + 0.342294, 0.939593, 0.000000, 0.000000 + 0.341801, 0.939772, 0.000000, 0.000000 + 0.341309, 0.939951, 0.000000, 0.000000 + 0.340817, 0.940130, 0.000000, 0.000000 + 0.340324, 0.940308, 0.000000, 0.000000 + 0.339832, 0.940486, 0.000000, 0.000000 + 0.339339, 0.940664, 0.000000, 0.000000 + 0.338846, 0.940842, 0.000000, 0.000000 + 0.338354, 0.941019, 0.000000, 0.000000 + 0.337861, 0.941196, 0.000000, 0.000000 + 0.337368, 0.941373, 0.000000, 0.000000 + 0.336874, 0.941550, 0.000000, 0.000000 + 0.336381, 0.941726, 0.000000, 0.000000 + 0.335888, 0.941902, 0.000000, 0.000000 + 0.335395, 0.942078, 0.000000, 0.000000 + 0.334901, 0.942253, 0.000000, 0.000000 + 0.334407, 0.942429, 0.000000, 0.000000 + 0.333914, 0.942604, 0.000000, 0.000000 + 0.333420, 0.942778, 0.000000, 0.000000 + 0.332926, 0.942953, 0.000000, 0.000000 + 0.332432, 0.943127, 0.000000, 0.000000 + 0.331938, 0.943301, 0.000000, 0.000000 + 0.331444, 0.943475, 0.000000, 0.000000 + 0.330950, 0.943648, 0.000000, 0.000000 + 0.330456, 0.943822, 0.000000, 0.000000 + 0.329961, 0.943994, 0.000000, 0.000000 + 0.329467, 0.944167, 0.000000, 0.000000 + 0.328972, 0.944340, 0.000000, 0.000000 + 0.328478, 0.944512, 0.000000, 0.000000 + 0.327983, 0.944684, 0.000000, 0.000000 + 0.327488, 0.944855, 0.000000, 0.000000 + 0.326993, 0.945027, 0.000000, 0.000000 + 0.326498, 0.945198, 0.000000, 0.000000 + 0.326003, 0.945369, 0.000000, 0.000000 + 0.325508, 0.945539, 0.000000, 0.000000 + 0.325012, 0.945710, 0.000000, 0.000000 + 0.324517, 0.945880, 0.000000, 0.000000 + 0.324021, 0.946050, 0.000000, 0.000000 + 0.323526, 0.946219, 0.000000, 0.000000 + 0.323030, 0.946389, 0.000000, 0.000000 + 0.322535, 0.946558, 0.000000, 0.000000 + 0.322039, 0.946727, 0.000000, 0.000000 + 0.321543, 0.946895, 0.000000, 0.000000 + 0.321047, 0.947063, 0.000000, 0.000000 + 0.320551, 0.947231, 0.000000, 0.000000 + 0.320055, 0.947399, 0.000000, 0.000000 + 0.319558, 0.947567, 0.000000, 0.000000 + 0.319062, 0.947734, 0.000000, 0.000000 + 0.318565, 0.947901, 0.000000, 0.000000 + 0.318069, 0.948068, 0.000000, 0.000000 + 0.317572, 0.948234, 0.000000, 0.000000 + 0.317076, 0.948400, 0.000000, 0.000000 + 0.316579, 0.948566, 0.000000, 0.000000 + 0.316082, 0.948732, 0.000000, 0.000000 + 0.315585, 0.948897, 0.000000, 0.000000 + 0.315088, 0.949062, 0.000000, 0.000000 + 0.314591, 0.949227, 0.000000, 0.000000 + 0.314094, 0.949392, 0.000000, 0.000000 + 0.313596, 0.949556, 0.000000, 0.000000 + 0.313099, 0.949721, 0.000000, 0.000000 + 0.312601, 0.949884, 0.000000, 0.000000 + 0.312104, 0.950048, 0.000000, 0.000000 + 0.311606, 0.950211, 0.000000, 0.000000 + 0.311108, 0.950374, 0.000000, 0.000000 + 0.310611, 0.950537, 0.000000, 0.000000 + 0.310113, 0.950700, 0.000000, 0.000000 + 0.309615, 0.950862, 0.000000, 0.000000 + 0.309117, 0.951024, 0.000000, 0.000000 + 0.308618, 0.951186, 0.000000, 0.000000 + 0.308120, 0.951347, 0.000000, 0.000000 + 0.307622, 0.951509, 0.000000, 0.000000 + 0.307123, 0.951670, 0.000000, 0.000000 + 0.306625, 0.951830, 0.000000, 0.000000 + 0.306126, 0.951991, 0.000000, 0.000000 + 0.305628, 0.952151, 0.000000, 0.000000 + 0.305129, 0.952311, 0.000000, 0.000000 + 0.304630, 0.952471, 0.000000, 0.000000 + 0.304131, 0.952630, 0.000000, 0.000000 + 0.303632, 0.952789, 0.000000, 0.000000 + 0.303133, 0.952948, 0.000000, 0.000000 + 0.302634, 0.953107, 0.000000, 0.000000 + 0.302135, 0.953265, 0.000000, 0.000000 + 0.301635, 0.953423, 0.000000, 0.000000 + 0.301136, 0.953581, 0.000000, 0.000000 + 0.300636, 0.953739, 0.000000, 0.000000 + 0.300137, 0.953896, 0.000000, 0.000000 + 0.299637, 0.954053, 0.000000, 0.000000 + 0.299137, 0.954210, 0.000000, 0.000000 + 0.298638, 0.954367, 0.000000, 0.000000 + 0.298138, 0.954523, 0.000000, 0.000000 + 0.297638, 0.954679, 0.000000, 0.000000 + 0.297138, 0.954835, 0.000000, 0.000000 + 0.296637, 0.954990, 0.000000, 0.000000 + 0.296137, 0.955145, 0.000000, 0.000000 + 0.295637, 0.955300, 0.000000, 0.000000 + 0.295136, 0.955455, 0.000000, 0.000000 + 0.294636, 0.955610, 0.000000, 0.000000 + 0.294135, 0.955764, 0.000000, 0.000000 + 0.293635, 0.955918, 0.000000, 0.000000 + 0.293134, 0.956071, 0.000000, 0.000000 + 0.292633, 0.956225, 0.000000, 0.000000 + 0.292132, 0.956378, 0.000000, 0.000000 + 0.291631, 0.956531, 0.000000, 0.000000 + 0.291130, 0.956683, 0.000000, 0.000000 + 0.290629, 0.956836, 0.000000, 0.000000 + 0.290128, 0.956988, 0.000000, 0.000000 + 0.289627, 0.957140, 0.000000, 0.000000 + 0.289125, 0.957291, 0.000000, 0.000000 + 0.288624, 0.957443, 0.000000, 0.000000 + 0.288122, 0.957594, 0.000000, 0.000000 + 0.287621, 0.957744, 0.000000, 0.000000 + 0.287119, 0.957895, 0.000000, 0.000000 + 0.286617, 0.958045, 0.000000, 0.000000 + 0.286116, 0.958195, 0.000000, 0.000000 + 0.285614, 0.958345, 0.000000, 0.000000 + 0.285112, 0.958494, 0.000000, 0.000000 + 0.284610, 0.958644, 0.000000, 0.000000 + 0.284107, 0.958792, 0.000000, 0.000000 + 0.283605, 0.958941, 0.000000, 0.000000 + 0.283103, 0.959090, 0.000000, 0.000000 + 0.282600, 0.959238, 0.000000, 0.000000 + 0.282098, 0.959386, 0.000000, 0.000000 + 0.281595, 0.959533, 0.000000, 0.000000 + 0.281093, 0.959681, 0.000000, 0.000000 + 0.280590, 0.959828, 0.000000, 0.000000 + 0.280087, 0.959975, 0.000000, 0.000000 + 0.279585, 0.960121, 0.000000, 0.000000 + 0.279082, 0.960267, 0.000000, 0.000000 + 0.278579, 0.960413, 0.000000, 0.000000 + 0.278076, 0.960559, 0.000000, 0.000000 + 0.277572, 0.960705, 0.000000, 0.000000 + 0.277069, 0.960850, 0.000000, 0.000000 + 0.276566, 0.960995, 0.000000, 0.000000 + 0.276062, 0.961140, 0.000000, 0.000000 + 0.275559, 0.961284, 0.000000, 0.000000 + 0.275056, 0.961428, 0.000000, 0.000000 + 0.274552, 0.961572, 0.000000, 0.000000 + 0.274048, 0.961716, 0.000000, 0.000000 + 0.273544, 0.961859, 0.000000, 0.000000 + 0.273041, 0.962003, 0.000000, 0.000000 + 0.272537, 0.962145, 0.000000, 0.000000 + 0.272033, 0.962288, 0.000000, 0.000000 + 0.271529, 0.962430, 0.000000, 0.000000 + 0.271025, 0.962572, 0.000000, 0.000000 + 0.270520, 0.962714, 0.000000, 0.000000 + 0.270016, 0.962856, 0.000000, 0.000000 + 0.269512, 0.962997, 0.000000, 0.000000 + 0.269007, 0.963138, 0.000000, 0.000000 + 0.268503, 0.963279, 0.000000, 0.000000 + 0.267998, 0.963419, 0.000000, 0.000000 + 0.267494, 0.963560, 0.000000, 0.000000 + 0.266989, 0.963700, 0.000000, 0.000000 + 0.266484, 0.963839, 0.000000, 0.000000 + 0.265979, 0.963979, 0.000000, 0.000000 + 0.265474, 0.964118, 0.000000, 0.000000 + 0.264969, 0.964257, 0.000000, 0.000000 + 0.264464, 0.964396, 0.000000, 0.000000 + 0.263959, 0.964534, 0.000000, 0.000000 + 0.263454, 0.964672, 0.000000, 0.000000 + 0.262948, 0.964810, 0.000000, 0.000000 + 0.262443, 0.964947, 0.000000, 0.000000 + 0.261938, 0.965085, 0.000000, 0.000000 + 0.261432, 0.965222, 0.000000, 0.000000 + 0.260926, 0.965359, 0.000000, 0.000000 + 0.260421, 0.965495, 0.000000, 0.000000 + 0.259915, 0.965631, 0.000000, 0.000000 + 0.259409, 0.965767, 0.000000, 0.000000 + 0.258903, 0.965903, 0.000000, 0.000000 + 0.258397, 0.966039, 0.000000, 0.000000 + 0.257891, 0.966174, 0.000000, 0.000000 + 0.257385, 0.966309, 0.000000, 0.000000 + 0.256879, 0.966444, 0.000000, 0.000000 + 0.256373, 0.966578, 0.000000, 0.000000 + 0.255867, 0.966712, 0.000000, 0.000000 + 0.255360, 0.966846, 0.000000, 0.000000 + 0.254854, 0.966980, 0.000000, 0.000000 + 0.254347, 0.967113, 0.000000, 0.000000 + 0.253841, 0.967246, 0.000000, 0.000000 + 0.253334, 0.967379, 0.000000, 0.000000 + 0.252827, 0.967511, 0.000000, 0.000000 + 0.252321, 0.967644, 0.000000, 0.000000 + 0.251814, 0.967776, 0.000000, 0.000000 + 0.251307, 0.967907, 0.000000, 0.000000 + 0.250800, 0.968039, 0.000000, 0.000000 + 0.250293, 0.968170, 0.000000, 0.000000 + 0.249786, 0.968301, 0.000000, 0.000000 + 0.249278, 0.968432, 0.000000, 0.000000 + 0.248771, 0.968562, 0.000000, 0.000000 + 0.248264, 0.968692, 0.000000, 0.000000 + 0.247756, 0.968822, 0.000000, 0.000000 + 0.247249, 0.968952, 0.000000, 0.000000 + 0.246741, 0.969081, 0.000000, 0.000000 + 0.246234, 0.969210, 0.000000, 0.000000 + 0.245726, 0.969339, 0.000000, 0.000000 + 0.245218, 0.969468, 0.000000, 0.000000 + 0.244710, 0.969596, 0.000000, 0.000000 + 0.244203, 0.969724, 0.000000, 0.000000 + 0.243695, 0.969852, 0.000000, 0.000000 + 0.243187, 0.969980, 0.000000, 0.000000 + 0.242678, 0.970107, 0.000000, 0.000000 + 0.242170, 0.970234, 0.000000, 0.000000 + 0.241662, 0.970360, 0.000000, 0.000000 + 0.241154, 0.970487, 0.000000, 0.000000 + 0.240646, 0.970613, 0.000000, 0.000000 + 0.240137, 0.970739, 0.000000, 0.000000 + 0.239629, 0.970865, 0.000000, 0.000000 + 0.239120, 0.970990, 0.000000, 0.000000 + 0.238611, 0.971115, 0.000000, 0.000000 + 0.238103, 0.971240, 0.000000, 0.000000 + 0.237594, 0.971365, 0.000000, 0.000000 + 0.237085, 0.971489, 0.000000, 0.000000 + 0.236576, 0.971613, 0.000000, 0.000000 + 0.236067, 0.971737, 0.000000, 0.000000 + 0.235558, 0.971860, 0.000000, 0.000000 + 0.235049, 0.971983, 0.000000, 0.000000 + 0.234540, 0.972106, 0.000000, 0.000000 + 0.234031, 0.972229, 0.000000, 0.000000 + 0.233522, 0.972352, 0.000000, 0.000000 + 0.233012, 0.972474, 0.000000, 0.000000 + 0.232503, 0.972596, 0.000000, 0.000000 + 0.231994, 0.972717, 0.000000, 0.000000 + 0.231484, 0.972839, 0.000000, 0.000000 + 0.230975, 0.972960, 0.000000, 0.000000 + 0.230465, 0.973081, 0.000000, 0.000000 + 0.229955, 0.973201, 0.000000, 0.000000 + 0.229445, 0.973322, 0.000000, 0.000000 + 0.228936, 0.973442, 0.000000, 0.000000 + 0.228426, 0.973561, 0.000000, 0.000000 + 0.227916, 0.973681, 0.000000, 0.000000 + 0.227406, 0.973800, 0.000000, 0.000000 + 0.226896, 0.973919, 0.000000, 0.000000 + 0.226385, 0.974038, 0.000000, 0.000000 + 0.225875, 0.974156, 0.000000, 0.000000 + 0.225365, 0.974274, 0.000000, 0.000000 + 0.224855, 0.974392, 0.000000, 0.000000 + 0.224344, 0.974510, 0.000000, 0.000000 + 0.223834, 0.974627, 0.000000, 0.000000 + 0.223323, 0.974744, 0.000000, 0.000000 + 0.222813, 0.974861, 0.000000, 0.000000 + 0.222302, 0.974978, 0.000000, 0.000000 + 0.221791, 0.975094, 0.000000, 0.000000 + 0.221281, 0.975210, 0.000000, 0.000000 + 0.220770, 0.975326, 0.000000, 0.000000 + 0.220259, 0.975441, 0.000000, 0.000000 + 0.219748, 0.975557, 0.000000, 0.000000 + 0.219237, 0.975672, 0.000000, 0.000000 + 0.218726, 0.975786, 0.000000, 0.000000 + 0.218215, 0.975901, 0.000000, 0.000000 + 0.217704, 0.976015, 0.000000, 0.000000 + 0.217192, 0.976129, 0.000000, 0.000000 + 0.216681, 0.976242, 0.000000, 0.000000 + 0.216170, 0.976356, 0.000000, 0.000000 + 0.215658, 0.976469, 0.000000, 0.000000 + 0.215147, 0.976582, 0.000000, 0.000000 + 0.214635, 0.976694, 0.000000, 0.000000 + 0.214124, 0.976807, 0.000000, 0.000000 + 0.213612, 0.976919, 0.000000, 0.000000 + 0.213100, 0.977030, 0.000000, 0.000000 + 0.212589, 0.977142, 0.000000, 0.000000 + 0.212077, 0.977253, 0.000000, 0.000000 + 0.211565, 0.977364, 0.000000, 0.000000 + 0.211053, 0.977475, 0.000000, 0.000000 + 0.210541, 0.977585, 0.000000, 0.000000 + 0.210029, 0.977695, 0.000000, 0.000000 + 0.209517, 0.977805, 0.000000, 0.000000 + 0.209005, 0.977915, 0.000000, 0.000000 + 0.208492, 0.978024, 0.000000, 0.000000 + 0.207980, 0.978133, 0.000000, 0.000000 + 0.207468, 0.978242, 0.000000, 0.000000 + 0.206955, 0.978350, 0.000000, 0.000000 + 0.206443, 0.978459, 0.000000, 0.000000 + 0.205930, 0.978567, 0.000000, 0.000000 + 0.205418, 0.978674, 0.000000, 0.000000 + 0.204905, 0.978782, 0.000000, 0.000000 + 0.204392, 0.978889, 0.000000, 0.000000 + 0.203880, 0.978996, 0.000000, 0.000000 + 0.203367, 0.979103, 0.000000, 0.000000 + 0.202854, 0.979209, 0.000000, 0.000000 + 0.202341, 0.979315, 0.000000, 0.000000 + 0.201828, 0.979421, 0.000000, 0.000000 + 0.201315, 0.979527, 0.000000, 0.000000 + 0.200802, 0.979632, 0.000000, 0.000000 + 0.200289, 0.979737, 0.000000, 0.000000 + 0.199776, 0.979842, 0.000000, 0.000000 + 0.199262, 0.979946, 0.000000, 0.000000 + 0.198749, 0.980050, 0.000000, 0.000000 + 0.198236, 0.980154, 0.000000, 0.000000 + 0.197722, 0.980258, 0.000000, 0.000000 + 0.197209, 0.980361, 0.000000, 0.000000 + 0.196695, 0.980465, 0.000000, 0.000000 + 0.196182, 0.980568, 0.000000, 0.000000 + 0.195668, 0.980670, 0.000000, 0.000000 + 0.195155, 0.980773, 0.000000, 0.000000 + 0.194641, 0.980875, 0.000000, 0.000000 + 0.194127, 0.980976, 0.000000, 0.000000 + 0.193613, 0.981078, 0.000000, 0.000000 + 0.193099, 0.981179, 0.000000, 0.000000 + 0.192585, 0.981280, 0.000000, 0.000000 + 0.192071, 0.981381, 0.000000, 0.000000 + 0.191557, 0.981481, 0.000000, 0.000000 + 0.191043, 0.981582, 0.000000, 0.000000 + 0.190529, 0.981682, 0.000000, 0.000000 + 0.190015, 0.981781, 0.000000, 0.000000 + 0.189501, 0.981881, 0.000000, 0.000000 + 0.188986, 0.981980, 0.000000, 0.000000 + 0.188472, 0.982079, 0.000000, 0.000000 + 0.187958, 0.982177, 0.000000, 0.000000 + 0.187443, 0.982275, 0.000000, 0.000000 + 0.186929, 0.982374, 0.000000, 0.000000 + 0.186414, 0.982471, 0.000000, 0.000000 + 0.185899, 0.982569, 0.000000, 0.000000 + 0.185385, 0.982666, 0.000000, 0.000000 + 0.184870, 0.982763, 0.000000, 0.000000 + 0.184355, 0.982860, 0.000000, 0.000000 + 0.183840, 0.982956, 0.000000, 0.000000 + 0.183326, 0.983052, 0.000000, 0.000000 + 0.182811, 0.983148, 0.000000, 0.000000 + 0.182296, 0.983244, 0.000000, 0.000000 + 0.181781, 0.983339, 0.000000, 0.000000 + 0.181266, 0.983434, 0.000000, 0.000000 + 0.180750, 0.983529, 0.000000, 0.000000 + 0.180235, 0.983624, 0.000000, 0.000000 + 0.179720, 0.983718, 0.000000, 0.000000 + 0.179205, 0.983812, 0.000000, 0.000000 + 0.178689, 0.983906, 0.000000, 0.000000 + 0.178174, 0.983999, 0.000000, 0.000000 + 0.177659, 0.984092, 0.000000, 0.000000 + 0.177143, 0.984185, 0.000000, 0.000000 + 0.176628, 0.984278, 0.000000, 0.000000 + 0.176112, 0.984370, 0.000000, 0.000000 + 0.175596, 0.984462, 0.000000, 0.000000 + 0.175081, 0.984554, 0.000000, 0.000000 + 0.174565, 0.984646, 0.000000, 0.000000 + 0.174049, 0.984737, 0.000000, 0.000000 + 0.173534, 0.984828, 0.000000, 0.000000 + 0.173018, 0.984919, 0.000000, 0.000000 + 0.172502, 0.985009, 0.000000, 0.000000 + 0.171986, 0.985099, 0.000000, 0.000000 + 0.171470, 0.985189, 0.000000, 0.000000 + 0.170954, 0.985279, 0.000000, 0.000000 + 0.170438, 0.985368, 0.000000, 0.000000 + 0.169922, 0.985458, 0.000000, 0.000000 + 0.169405, 0.985546, 0.000000, 0.000000 + 0.168889, 0.985635, 0.000000, 0.000000 + 0.168373, 0.985723, 0.000000, 0.000000 + 0.167857, 0.985811, 0.000000, 0.000000 + 0.167340, 0.985899, 0.000000, 0.000000 + 0.166824, 0.985987, 0.000000, 0.000000 + 0.166307, 0.986074, 0.000000, 0.000000 + 0.165791, 0.986161, 0.000000, 0.000000 + 0.165274, 0.986248, 0.000000, 0.000000 + 0.164758, 0.986334, 0.000000, 0.000000 + 0.164241, 0.986420, 0.000000, 0.000000 + 0.163724, 0.986506, 0.000000, 0.000000 + 0.163208, 0.986592, 0.000000, 0.000000 + 0.162691, 0.986677, 0.000000, 0.000000 + 0.162174, 0.986762, 0.000000, 0.000000 + 0.161657, 0.986847, 0.000000, 0.000000 + 0.161140, 0.986932, 0.000000, 0.000000 + 0.160623, 0.987016, 0.000000, 0.000000 + 0.160106, 0.987100, 0.000000, 0.000000 + 0.159589, 0.987183, 0.000000, 0.000000 + 0.159072, 0.987267, 0.000000, 0.000000 + 0.158555, 0.987350, 0.000000, 0.000000 + 0.158038, 0.987433, 0.000000, 0.000000 + 0.157521, 0.987516, 0.000000, 0.000000 + 0.157003, 0.987598, 0.000000, 0.000000 + 0.156486, 0.987680, 0.000000, 0.000000 + 0.155969, 0.987762, 0.000000, 0.000000 + 0.155451, 0.987844, 0.000000, 0.000000 + 0.154934, 0.987925, 0.000000, 0.000000 + 0.154417, 0.988006, 0.000000, 0.000000 + 0.153899, 0.988087, 0.000000, 0.000000 + 0.153382, 0.988167, 0.000000, 0.000000 + 0.152864, 0.988247, 0.000000, 0.000000 + 0.152346, 0.988327, 0.000000, 0.000000 + 0.151829, 0.988407, 0.000000, 0.000000 + 0.151311, 0.988486, 0.000000, 0.000000 + 0.150793, 0.988565, 0.000000, 0.000000 + 0.150275, 0.988644, 0.000000, 0.000000 + 0.149757, 0.988723, 0.000000, 0.000000 + 0.149240, 0.988801, 0.000000, 0.000000 + 0.148722, 0.988879, 0.000000, 0.000000 + 0.148204, 0.988957, 0.000000, 0.000000 + 0.147686, 0.989034, 0.000000, 0.000000 + 0.147168, 0.989112, 0.000000, 0.000000 + 0.146650, 0.989189, 0.000000, 0.000000 + 0.146131, 0.989265, 0.000000, 0.000000 + 0.145613, 0.989342, 0.000000, 0.000000 + 0.145095, 0.989418, 0.000000, 0.000000 + 0.144577, 0.989494, 0.000000, 0.000000 + 0.144058, 0.989569, 0.000000, 0.000000 + 0.143540, 0.989644, 0.000000, 0.000000 + 0.143022, 0.989720, 0.000000, 0.000000 + 0.142503, 0.989794, 0.000000, 0.000000 + 0.141985, 0.989869, 0.000000, 0.000000 + 0.141466, 0.989943, 0.000000, 0.000000 + 0.140948, 0.990017, 0.000000, 0.000000 + 0.140429, 0.990091, 0.000000, 0.000000 + 0.139911, 0.990164, 0.000000, 0.000000 + 0.139392, 0.990237, 0.000000, 0.000000 + 0.138873, 0.990310, 0.000000, 0.000000 + 0.138355, 0.990383, 0.000000, 0.000000 + 0.137836, 0.990455, 0.000000, 0.000000 + 0.137317, 0.990527, 0.000000, 0.000000 + 0.136798, 0.990599, 0.000000, 0.000000 + 0.136279, 0.990670, 0.000000, 0.000000 + 0.135761, 0.990742, 0.000000, 0.000000 + 0.135242, 0.990813, 0.000000, 0.000000 + 0.134723, 0.990883, 0.000000, 0.000000 + 0.134204, 0.990954, 0.000000, 0.000000 + 0.133685, 0.991024, 0.000000, 0.000000 + 0.133165, 0.991094, 0.000000, 0.000000 + 0.132646, 0.991163, 0.000000, 0.000000 + 0.132127, 0.991233, 0.000000, 0.000000 + 0.131608, 0.991302, 0.000000, 0.000000 + 0.131089, 0.991371, 0.000000, 0.000000 + 0.130569, 0.991439, 0.000000, 0.000000 + 0.130050, 0.991507, 0.000000, 0.000000 + 0.129531, 0.991575, 0.000000, 0.000000 + 0.129011, 0.991643, 0.000000, 0.000000 + 0.128492, 0.991711, 0.000000, 0.000000 + 0.127973, 0.991778, 0.000000, 0.000000 + 0.127453, 0.991845, 0.000000, 0.000000 + 0.126934, 0.991911, 0.000000, 0.000000 + 0.126414, 0.991978, 0.000000, 0.000000 + 0.125894, 0.992044, 0.000000, 0.000000 + 0.125375, 0.992109, 0.000000, 0.000000 + 0.124855, 0.992175, 0.000000, 0.000000 + 0.124335, 0.992240, 0.000000, 0.000000 + 0.123816, 0.992305, 0.000000, 0.000000 + 0.123296, 0.992370, 0.000000, 0.000000 + 0.122776, 0.992434, 0.000000, 0.000000 + 0.122256, 0.992499, 0.000000, 0.000000 + 0.121736, 0.992562, 0.000000, 0.000000 + 0.121217, 0.992626, 0.000000, 0.000000 + 0.120697, 0.992689, 0.000000, 0.000000 + 0.120177, 0.992753, 0.000000, 0.000000 + 0.119657, 0.992815, 0.000000, 0.000000 + 0.119137, 0.992878, 0.000000, 0.000000 + 0.118617, 0.992940, 0.000000, 0.000000 + 0.118097, 0.993002, 0.000000, 0.000000 + 0.117576, 0.993064, 0.000000, 0.000000 + 0.117056, 0.993125, 0.000000, 0.000000 + 0.116536, 0.993186, 0.000000, 0.000000 + 0.116016, 0.993247, 0.000000, 0.000000 + 0.115496, 0.993308, 0.000000, 0.000000 + 0.114975, 0.993368, 0.000000, 0.000000 + 0.114455, 0.993428, 0.000000, 0.000000 + 0.113935, 0.993488, 0.000000, 0.000000 + 0.113414, 0.993548, 0.000000, 0.000000 + 0.112894, 0.993607, 0.000000, 0.000000 + 0.112373, 0.993666, 0.000000, 0.000000 + 0.111853, 0.993725, 0.000000, 0.000000 + 0.111332, 0.993783, 0.000000, 0.000000 + 0.110812, 0.993841, 0.000000, 0.000000 + 0.110291, 0.993899, 0.000000, 0.000000 + 0.109771, 0.993957, 0.000000, 0.000000 + 0.109250, 0.994014, 0.000000, 0.000000 + 0.108729, 0.994071, 0.000000, 0.000000 + 0.108209, 0.994128, 0.000000, 0.000000 + 0.107688, 0.994185, 0.000000, 0.000000 + 0.107167, 0.994241, 0.000000, 0.000000 + 0.106647, 0.994297, 0.000000, 0.000000 + 0.106126, 0.994353, 0.000000, 0.000000 + 0.105605, 0.994408, 0.000000, 0.000000 + 0.105084, 0.994463, 0.000000, 0.000000 + 0.104563, 0.994518, 0.000000, 0.000000 + 0.104042, 0.994573, 0.000000, 0.000000 + 0.103521, 0.994627, 0.000000, 0.000000 + 0.103000, 0.994681, 0.000000, 0.000000 + 0.102479, 0.994735, 0.000000, 0.000000 + 0.101958, 0.994789, 0.000000, 0.000000 + 0.101437, 0.994842, 0.000000, 0.000000 + 0.100916, 0.994895, 0.000000, 0.000000 + 0.100395, 0.994948, 0.000000, 0.000000 + 0.099874, 0.995000, 0.000000, 0.000000 + 0.099353, 0.995052, 0.000000, 0.000000 + 0.098832, 0.995104, 0.000000, 0.000000 + 0.098310, 0.995156, 0.000000, 0.000000 + 0.097789, 0.995207, 0.000000, 0.000000 + 0.097268, 0.995258, 0.000000, 0.000000 + 0.096747, 0.995309, 0.000000, 0.000000 + 0.096225, 0.995360, 0.000000, 0.000000 + 0.095704, 0.995410, 0.000000, 0.000000 + 0.095182, 0.995460, 0.000000, 0.000000 + 0.094661, 0.995510, 0.000000, 0.000000 + 0.094140, 0.995559, 0.000000, 0.000000 + 0.093618, 0.995608, 0.000000, 0.000000 + 0.093097, 0.995657, 0.000000, 0.000000 + 0.092575, 0.995706, 0.000000, 0.000000 + 0.092054, 0.995754, 0.000000, 0.000000 + 0.091532, 0.995802, 0.000000, 0.000000 + 0.091010, 0.995850, 0.000000, 0.000000 + 0.090489, 0.995897, 0.000000, 0.000000 + 0.089967, 0.995945, 0.000000, 0.000000 + 0.089446, 0.995992, 0.000000, 0.000000 + 0.088924, 0.996038, 0.000000, 0.000000 + 0.088402, 0.996085, 0.000000, 0.000000 + 0.087880, 0.996131, 0.000000, 0.000000 + 0.087359, 0.996177, 0.000000, 0.000000 + 0.086837, 0.996223, 0.000000, 0.000000 + 0.086315, 0.996268, 0.000000, 0.000000 + 0.085793, 0.996313, 0.000000, 0.000000 + 0.085271, 0.996358, 0.000000, 0.000000 + 0.084750, 0.996402, 0.000000, 0.000000 + 0.084228, 0.996447, 0.000000, 0.000000 + 0.083706, 0.996491, 0.000000, 0.000000 + 0.083184, 0.996534, 0.000000, 0.000000 + 0.082662, 0.996578, 0.000000, 0.000000 + 0.082140, 0.996621, 0.000000, 0.000000 + 0.081618, 0.996664, 0.000000, 0.000000 + 0.081096, 0.996706, 0.000000, 0.000000 + 0.080574, 0.996749, 0.000000, 0.000000 + 0.080052, 0.996791, 0.000000, 0.000000 + 0.079529, 0.996833, 0.000000, 0.000000 + 0.079007, 0.996874, 0.000000, 0.000000 + 0.078485, 0.996915, 0.000000, 0.000000 + 0.077963, 0.996956, 0.000000, 0.000000 + 0.077441, 0.996997, 0.000000, 0.000000 + 0.076919, 0.997037, 0.000000, 0.000000 + 0.076396, 0.997078, 0.000000, 0.000000 + 0.075874, 0.997117, 0.000000, 0.000000 + 0.075352, 0.997157, 0.000000, 0.000000 + 0.074830, 0.997196, 0.000000, 0.000000 + 0.074307, 0.997235, 0.000000, 0.000000 + 0.073785, 0.997274, 0.000000, 0.000000 + 0.073263, 0.997313, 0.000000, 0.000000 + 0.072740, 0.997351, 0.000000, 0.000000 + 0.072218, 0.997389, 0.000000, 0.000000 + 0.071695, 0.997427, 0.000000, 0.000000 + 0.071173, 0.997464, 0.000000, 0.000000 + 0.070650, 0.997501, 0.000000, 0.000000 + 0.070128, 0.997538, 0.000000, 0.000000 + 0.069606, 0.997575, 0.000000, 0.000000 + 0.069083, 0.997611, 0.000000, 0.000000 + 0.068560, 0.997647, 0.000000, 0.000000 + 0.068038, 0.997683, 0.000000, 0.000000 + 0.067515, 0.997718, 0.000000, 0.000000 + 0.066993, 0.997753, 0.000000, 0.000000 + 0.066470, 0.997788, 0.000000, 0.000000 + 0.065948, 0.997823, 0.000000, 0.000000 + 0.065425, 0.997857, 0.000000, 0.000000 + 0.064902, 0.997892, 0.000000, 0.000000 + 0.064380, 0.997925, 0.000000, 0.000000 + 0.063857, 0.997959, 0.000000, 0.000000 + 0.063334, 0.997992, 0.000000, 0.000000 + 0.062811, 0.998025, 0.000000, 0.000000 + 0.062289, 0.998058, 0.000000, 0.000000 + 0.061766, 0.998091, 0.000000, 0.000000 + 0.061243, 0.998123, 0.000000, 0.000000 + 0.060720, 0.998155, 0.000000, 0.000000 + 0.060198, 0.998186, 0.000000, 0.000000 + 0.059675, 0.998218, 0.000000, 0.000000 + 0.059152, 0.998249, 0.000000, 0.000000 + 0.058629, 0.998280, 0.000000, 0.000000 + 0.058106, 0.998310, 0.000000, 0.000000 + 0.057583, 0.998341, 0.000000, 0.000000 + 0.057060, 0.998371, 0.000000, 0.000000 + 0.056537, 0.998400, 0.000000, 0.000000 + 0.056014, 0.998430, 0.000000, 0.000000 + 0.055491, 0.998459, 0.000000, 0.000000 + 0.054968, 0.998488, 0.000000, 0.000000 + 0.054445, 0.998517, 0.000000, 0.000000 + 0.053922, 0.998545, 0.000000, 0.000000 + 0.053399, 0.998573, 0.000000, 0.000000 + 0.052876, 0.998601, 0.000000, 0.000000 + 0.052353, 0.998629, 0.000000, 0.000000 + 0.051830, 0.998656, 0.000000, 0.000000 + 0.051307, 0.998683, 0.000000, 0.000000 + 0.050784, 0.998710, 0.000000, 0.000000 + 0.050261, 0.998736, 0.000000, 0.000000 + 0.049738, 0.998762, 0.000000, 0.000000 + 0.049215, 0.998788, 0.000000, 0.000000 + 0.048692, 0.998814, 0.000000, 0.000000 + 0.048169, 0.998839, 0.000000, 0.000000 + 0.047645, 0.998864, 0.000000, 0.000000 + 0.047122, 0.998889, 0.000000, 0.000000 + 0.046599, 0.998914, 0.000000, 0.000000 + 0.046076, 0.998938, 0.000000, 0.000000 + 0.045553, 0.998962, 0.000000, 0.000000 + 0.045029, 0.998986, 0.000000, 0.000000 + 0.044506, 0.999009, 0.000000, 0.000000 + 0.043983, 0.999032, 0.000000, 0.000000 + 0.043459, 0.999055, 0.000000, 0.000000 + 0.042936, 0.999078, 0.000000, 0.000000 + 0.042413, 0.999100, 0.000000, 0.000000 + 0.041890, 0.999122, 0.000000, 0.000000 + 0.041366, 0.999144, 0.000000, 0.000000 + 0.040843, 0.999166, 0.000000, 0.000000 + 0.040320, 0.999187, 0.000000, 0.000000 + 0.039796, 0.999208, 0.000000, 0.000000 + 0.039273, 0.999229, 0.000000, 0.000000 + 0.038750, 0.999249, 0.000000, 0.000000 + 0.038226, 0.999269, 0.000000, 0.000000 + 0.037703, 0.999289, 0.000000, 0.000000 + 0.037179, 0.999309, 0.000000, 0.000000 + 0.036656, 0.999328, 0.000000, 0.000000 + 0.036132, 0.999347, 0.000000, 0.000000 + 0.035609, 0.999366, 0.000000, 0.000000 + 0.035086, 0.999384, 0.000000, 0.000000 + 0.034562, 0.999403, 0.000000, 0.000000 + 0.034039, 0.999421, 0.000000, 0.000000 + 0.033515, 0.999438, 0.000000, 0.000000 + 0.032992, 0.999456, 0.000000, 0.000000 + 0.032468, 0.999473, 0.000000, 0.000000 + 0.031945, 0.999490, 0.000000, 0.000000 + 0.031421, 0.999506, 0.000000, 0.000000 + 0.030898, 0.999523, 0.000000, 0.000000 + 0.030374, 0.999539, 0.000000, 0.000000 + 0.029851, 0.999554, 0.000000, 0.000000 + 0.029327, 0.999570, 0.000000, 0.000000 + 0.028804, 0.999585, 0.000000, 0.000000 + 0.028280, 0.999600, 0.000000, 0.000000 + 0.027756, 0.999615, 0.000000, 0.000000 + 0.027233, 0.999629, 0.000000, 0.000000 + 0.026709, 0.999643, 0.000000, 0.000000 + 0.026186, 0.999657, 0.000000, 0.000000 + 0.025662, 0.999671, 0.000000, 0.000000 + 0.025138, 0.999684, 0.000000, 0.000000 + 0.024615, 0.999697, 0.000000, 0.000000 + 0.024091, 0.999710, 0.000000, 0.000000 + 0.023568, 0.999722, 0.000000, 0.000000 + 0.023044, 0.999734, 0.000000, 0.000000 + 0.022520, 0.999746, 0.000000, 0.000000 + 0.021997, 0.999758, 0.000000, 0.000000 + 0.021473, 0.999769, 0.000000, 0.000000 + 0.020949, 0.999781, 0.000000, 0.000000 + 0.020426, 0.999791, 0.000000, 0.000000 + 0.019902, 0.999802, 0.000000, 0.000000 + 0.019378, 0.999812, 0.000000, 0.000000 + 0.018855, 0.999822, 0.000000, 0.000000 + 0.018331, 0.999832, 0.000000, 0.000000 + 0.017807, 0.999841, 0.000000, 0.000000 + 0.017284, 0.999851, 0.000000, 0.000000 + 0.016760, 0.999860, 0.000000, 0.000000 + 0.016236, 0.999868, 0.000000, 0.000000 + 0.015713, 0.999877, 0.000000, 0.000000 + 0.015189, 0.999885, 0.000000, 0.000000 + 0.014665, 0.999892, 0.000000, 0.000000 + 0.014141, 0.999900, 0.000000, 0.000000 + 0.013618, 0.999907, 0.000000, 0.000000 + 0.013094, 0.999914, 0.000000, 0.000000 + 0.012570, 0.999921, 0.000000, 0.000000 + 0.012046, 0.999927, 0.000000, 0.000000 + 0.011523, 0.999934, 0.000000, 0.000000 + 0.010999, 0.999940, 0.000000, 0.000000 + 0.010475, 0.999945, 0.000000, 0.000000 + 0.009952, 0.999950, 0.000000, 0.000000 + 0.009428, 0.999956, 0.000000, 0.000000 + 0.008904, 0.999960, 0.000000, 0.000000 + 0.008380, 0.999965, 0.000000, 0.000000 + 0.007857, 0.999969, 0.000000, 0.000000 + 0.007333, 0.999973, 0.000000, 0.000000 + 0.006809, 0.999977, 0.000000, 0.000000 + 0.006285, 0.999980, 0.000000, 0.000000 + 0.005761, 0.999983, 0.000000, 0.000000 + 0.005238, 0.999986, 0.000000, 0.000000 + 0.004714, 0.999989, 0.000000, 0.000000 + 0.004190, 0.999991, 0.000000, 0.000000 + 0.003666, 0.999993, 0.000000, 0.000000 + 0.003143, 0.999995, 0.000000, 0.000000 + 0.002619, 0.999997, 0.000000, 0.000000 + 0.002095, 0.999998, 0.000000, 0.000000 + 0.001571, 0.999999, 0.000000, 0.000000 + 0.001048, 0.999999, 0.000000, 0.000000 + 0.000524, 1.000000, 0.000000, 0.000000 + 0.000000, 1.000000, 0.000000, 0.000000 diff --git a/scripts/trajectories/headrot-1.5s-Euler.csv b/scripts/trajectories/headrot-1.5s-Euler.csv index 3683fa3cfc..6b86183309 100644 --- a/scripts/trajectories/headrot-1.5s-Euler.csv +++ b/scripts/trajectories/headrot-1.5s-Euler.csv @@ -1,8100 +1,8100 @@ -0,-3.0,10.000033,0.000000,0.000000 -1,-3.0,10.000033,0.000000,0.000000 -2,-3.0,10.000033,0.000000,0.000000 -3,-3.0,10.000033,0.000000,0.000000 -4,-3.0,10.000033,0.000000,0.000000 -5,-3.0,10.000033,0.000000,0.000000 -6,-3.0,10.000033,0.000000,0.000000 -7,-3.0,10.000033,0.000000,0.000000 -8,-3.0,10.000033,0.000000,0.000000 -9,-3.0,10.000033,0.000000,0.000000 -10,-3.0,10.000033,0.000000,0.000000 -11,-3.0,10.000033,0.000000,0.000000 -12,-3.0,10.000033,0.000000,0.000000 -13,-3.0,10.000033,0.000000,0.000000 -14,-3.0,10.000033,0.000000,0.000000 -15,-3.0,10.000033,0.000000,0.000000 -16,-3.0,10.000033,0.000000,0.000000 -17,-3.0,10.000033,0.000000,0.000000 -18,-3.0,10.000033,0.000000,0.000000 -19,-3.0,10.000033,0.000000,0.000000 -20,-3.0,10.000033,0.000000,0.000000 -21,-3.0,10.000033,0.000000,0.000000 -22,-3.0,10.000033,0.000000,0.000000 -23,-3.0,10.000033,0.000000,0.000000 -24,-3.0,10.000033,0.000000,0.000000 -25,-3.0,10.000033,0.000000,0.000000 -26,-3.0,10.000033,0.000000,0.000000 -27,-3.0,10.000033,0.000000,0.000000 -28,-3.0,10.000033,0.000000,0.000000 -29,-3.0,10.000033,0.000000,0.000000 -30,-3.0,10.000033,0.000000,0.000000 -31,-3.0,10.000033,0.000000,0.000000 -32,-3.0,10.000033,0.000000,0.000000 -33,-3.0,10.000033,0.000000,0.000000 -34,-3.0,10.000033,0.000000,0.000000 -35,-3.0,10.000033,0.000000,0.000000 -36,-3.0,10.000033,0.000000,0.000000 -37,-3.0,10.000033,0.000000,0.000000 -38,-3.0,10.000033,0.000000,0.000000 -39,-3.0,10.000033,0.000000,0.000000 -40,-3.0,10.000033,0.000000,0.000000 -41,-3.0,10.000033,0.000000,0.000000 -42,-3.0,10.000033,0.000000,0.000000 -43,-3.0,10.000033,0.000000,0.000000 -44,-3.0,10.000033,0.000000,0.000000 -45,-3.0,10.000033,0.000000,0.000000 -46,-3.0,10.000033,0.000000,0.000000 -47,-3.0,10.000033,0.000000,0.000000 -48,-3.0,10.000033,0.000000,0.000000 -49,-3.0,10.000033,0.000000,0.000000 -50,-3.0,10.000033,0.000000,0.000000 -51,-3.0,10.000033,0.000000,0.000000 -52,-3.0,10.000033,0.000000,0.000000 -53,-3.0,10.000033,0.000000,0.000000 -54,-3.0,10.000033,0.000000,0.000000 -55,-3.0,10.000033,0.000000,0.000000 -56,-3.0,10.000033,0.000000,0.000000 -57,-3.0,10.000033,0.000000,0.000000 -58,-3.0,10.000033,0.000000,0.000000 -59,-3.0,10.000033,0.000000,0.000000 -60,-3.0,10.000033,0.000000,0.000000 -61,-3.0,10.000033,0.000000,0.000000 -62,-3.0,10.000033,0.000000,0.000000 -63,-3.0,10.000033,0.000000,0.000000 -64,-3.0,10.000033,0.000000,0.000000 -65,-3.0,10.000033,0.000000,0.000000 -66,-3.0,10.000033,0.000000,0.000000 -67,-3.0,10.000033,0.000000,0.000000 -68,-3.0,10.000033,0.000000,0.000000 -69,-3.0,10.000033,0.000000,0.000000 -70,-3.0,10.000033,0.000000,0.000000 -71,-3.0,10.000033,0.000000,0.000000 -72,-3.0,10.000033,0.000000,0.000000 -73,-3.0,10.000033,0.000000,0.000000 -74,-3.0,10.000033,0.000000,0.000000 -75,-3.0,10.000033,0.000000,0.000000 -76,-3.0,10.000033,0.000000,0.000000 -77,-3.0,10.000033,0.000000,0.000000 -78,-3.0,10.000033,0.000000,0.000000 -79,-3.0,10.000033,0.000000,0.000000 -80,-3.0,10.000033,0.000000,0.000000 -81,-3.0,10.000033,0.000000,0.000000 -82,-3.0,10.000033,0.000000,0.000000 -83,-3.0,10.000033,0.000000,0.000000 -84,-3.0,10.000033,0.000000,0.000000 -85,-3.0,10.000033,0.000000,0.000000 -86,-3.0,10.000033,0.000000,0.000000 -87,-3.0,10.000033,0.000000,0.000000 -88,-3.0,10.000033,0.000000,0.000000 -89,-3.0,10.000033,0.000000,0.000000 -90,-3.0,10.000033,0.000000,0.000000 -91,-3.0,10.000033,0.000000,0.000000 -92,-3.0,10.000033,0.000000,0.000000 -93,-3.0,10.000033,0.000000,0.000000 -94,-3.0,10.000033,0.000000,0.000000 -95,-3.0,10.000033,0.000000,0.000000 -96,-3.0,10.000033,0.000000,0.000000 -97,-3.0,10.000033,0.000000,0.000000 -98,-3.0,10.000033,0.000000,0.000000 -99,-3.0,10.000033,0.000000,0.000000 -100,-3.0,10.000033,0.000000,0.000000 -101,-3.0,10.000033,0.000000,0.000000 -102,-3.0,10.000033,0.000000,0.000000 -103,-3.0,10.000033,0.000000,0.000000 -104,-3.0,10.000033,0.000000,0.000000 -105,-3.0,10.000033,0.000000,0.000000 -106,-3.0,10.000033,0.000000,0.000000 -107,-3.0,10.000033,0.000000,0.000000 -108,-3.0,10.000033,0.000000,0.000000 -109,-3.0,10.000033,0.000000,0.000000 -110,-3.0,10.000033,0.000000,0.000000 -111,-3.0,10.000033,0.000000,0.000000 -112,-3.0,10.000033,0.000000,0.000000 -113,-3.0,10.000033,0.000000,0.000000 -114,-3.0,10.000033,0.000000,0.000000 -115,-3.0,10.000033,0.000000,0.000000 -116,-3.0,10.000033,0.000000,0.000000 -117,-3.0,10.000033,0.000000,0.000000 -118,-3.0,10.000033,0.000000,0.000000 -119,-3.0,10.000033,0.000000,0.000000 -120,-3.0,10.000033,0.000000,0.000000 -121,-3.0,10.000033,0.000000,0.000000 -122,-3.0,10.000033,0.000000,0.000000 -123,-3.0,10.000033,0.000000,0.000000 -124,-3.0,10.000033,0.000000,0.000000 -125,-3.0,10.000033,0.000000,0.000000 -126,-3.0,10.000033,0.000000,0.000000 -127,-3.0,10.000033,0.000000,0.000000 -128,-3.0,10.000033,0.000000,0.000000 -129,-3.0,10.000033,0.000000,0.000000 -130,-3.0,10.000033,0.000000,0.000000 -131,-3.0,10.000033,0.000000,0.000000 -132,-3.0,10.000033,0.000000,0.000000 -133,-3.0,10.000033,0.000000,0.000000 -134,-3.0,10.000033,0.000000,0.000000 -135,-3.0,10.000033,0.000000,0.000000 -136,-3.0,10.000033,0.000000,0.000000 -137,-3.0,10.000033,0.000000,0.000000 -138,-3.0,10.000033,0.000000,0.000000 -139,-3.0,10.000033,0.000000,0.000000 -140,-3.0,10.000033,0.000000,0.000000 -141,-3.0,10.000033,0.000000,0.000000 -142,-3.0,10.000033,0.000000,0.000000 -143,-3.0,10.000033,0.000000,0.000000 -144,-3.0,10.000033,0.000000,0.000000 -145,-3.0,10.000033,0.000000,0.000000 -146,-3.0,10.000033,0.000000,0.000000 -147,-3.0,10.000033,0.000000,0.000000 -148,-3.0,10.000033,0.000000,0.000000 -149,-3.0,10.000033,0.000000,0.000000 -150,-3.0,10.000033,0.000000,0.000000 -151,-3.0,10.000033,0.000000,0.000000 -152,-3.0,10.000033,0.000000,0.000000 -153,-3.0,10.000033,0.000000,0.000000 -154,-3.0,10.000033,0.000000,0.000000 -155,-3.0,10.000033,0.000000,0.000000 -156,-3.0,10.000033,0.000000,0.000000 -157,-3.0,10.000033,0.000000,0.000000 -158,-3.0,10.000033,0.000000,0.000000 -159,-3.0,10.000033,0.000000,0.000000 -160,-3.0,10.000033,0.000000,0.000000 -161,-3.0,10.000033,0.000000,0.000000 -162,-3.0,10.000033,0.000000,0.000000 -163,-3.0,10.000033,0.000000,0.000000 -164,-3.0,10.000033,0.000000,0.000000 -165,-3.0,10.000033,0.000000,0.000000 -166,-3.0,10.000033,0.000000,0.000000 -167,-3.0,10.000033,0.000000,0.000000 -168,-3.0,10.000033,0.000000,0.000000 -169,-3.0,10.000033,0.000000,0.000000 -170,-3.0,10.000033,0.000000,0.000000 -171,-3.0,10.000033,0.000000,0.000000 -172,-3.0,10.000033,0.000000,0.000000 -173,-3.0,10.000033,0.000000,0.000000 -174,-3.0,10.000033,0.000000,0.000000 -175,-3.0,10.000033,0.000000,0.000000 -176,-3.0,10.000033,0.000000,0.000000 -177,-3.0,10.000033,0.000000,0.000000 -178,-3.0,10.000033,0.000000,0.000000 -179,-3.0,10.000033,0.000000,0.000000 -180,-3.0,10.000033,0.000000,0.000000 -181,-3.0,10.000033,0.000000,0.000000 -182,-3.0,10.000033,0.000000,0.000000 -183,-3.0,10.000033,0.000000,0.000000 -184,-3.0,10.000033,0.000000,0.000000 -185,-3.0,10.000033,0.000000,0.000000 -186,-3.0,10.000033,0.000000,0.000000 -187,-3.0,10.000033,0.000000,0.000000 -188,-3.0,10.000033,0.000000,0.000000 -189,-3.0,10.000033,0.000000,0.000000 -190,-3.0,10.000033,0.000000,0.000000 -191,-3.0,10.000033,0.000000,0.000000 -192,-3.0,10.000033,0.000000,0.000000 -193,-3.0,10.000033,0.000000,0.000000 -194,-3.0,10.000033,0.000000,0.000000 -195,-3.0,10.000033,0.000000,0.000000 -196,-3.0,10.000033,0.000000,0.000000 -197,-3.0,10.000033,0.000000,0.000000 -198,-3.0,10.000033,0.000000,0.000000 -199,-3.0,10.000033,0.000000,0.000000 -200,-3.0,10.000033,0.000000,0.000000 -201,-3.0,10.000033,0.000000,0.000000 -202,-3.0,10.000033,0.000000,0.000000 -203,-3.0,10.000033,0.000000,0.000000 -204,-3.0,10.000033,0.000000,0.000000 -205,-3.0,10.000033,0.000000,0.000000 -206,-3.0,10.000033,0.000000,0.000000 -207,-3.0,10.000033,0.000000,0.000000 -208,-3.0,10.000033,0.000000,0.000000 -209,-3.0,10.000033,0.000000,0.000000 -210,-3.0,10.000033,0.000000,0.000000 -211,-3.0,10.000033,0.000000,0.000000 -212,-3.0,10.000033,0.000000,0.000000 -213,-3.0,10.000033,0.000000,0.000000 -214,-3.0,10.000033,0.000000,0.000000 -215,-3.0,10.000033,0.000000,0.000000 -216,-3.0,10.000033,0.000000,0.000000 -217,-3.0,10.000033,0.000000,0.000000 -218,-3.0,10.000033,0.000000,0.000000 -219,-3.0,10.000033,0.000000,0.000000 -220,-3.0,10.000033,0.000000,0.000000 -221,-3.0,10.000033,0.000000,0.000000 -222,-3.0,10.000033,0.000000,0.000000 -223,-3.0,10.000033,0.000000,0.000000 -224,-3.0,10.000033,0.000000,0.000000 -225,-3.0,10.000033,0.000000,0.000000 -226,-3.0,10.000033,0.000000,0.000000 -227,-3.0,10.000033,0.000000,0.000000 -228,-3.0,10.000033,0.000000,0.000000 -229,-3.0,10.000033,0.000000,0.000000 -230,-3.0,10.000033,0.000000,0.000000 -231,-3.0,10.000033,0.000000,0.000000 -232,-3.0,10.000033,0.000000,0.000000 -233,-3.0,10.000033,0.000000,0.000000 -234,-3.0,10.000033,0.000000,0.000000 -235,-3.0,10.000033,0.000000,0.000000 -236,-3.0,10.000033,0.000000,0.000000 -237,-3.0,10.000033,0.000000,0.000000 -238,-3.0,10.000033,0.000000,0.000000 -239,-3.0,10.000033,0.000000,0.000000 -240,-3.0,10.000033,0.000000,0.000000 -241,-3.0,10.000033,0.000000,0.000000 -242,-3.0,10.000033,0.000000,0.000000 -243,-3.0,10.000033,0.000000,0.000000 -244,-3.0,10.000033,0.000000,0.000000 -245,-3.0,10.000033,0.000000,0.000000 -246,-3.0,10.000033,0.000000,0.000000 -247,-3.0,10.000033,0.000000,0.000000 -248,-3.0,10.000033,0.000000,0.000000 -249,-3.0,10.000033,0.000000,0.000000 -250,-3.0,10.000033,0.000000,0.000000 -251,-3.0,10.000033,0.000000,0.000000 -252,-3.0,10.000033,0.000000,0.000000 -253,-3.0,10.000033,0.000000,0.000000 -254,-3.0,10.000033,0.000000,0.000000 -255,-3.0,10.000033,0.000000,0.000000 -256,-3.0,10.000033,0.000000,0.000000 -257,-3.0,10.000033,0.000000,0.000000 -258,-3.0,10.000033,0.000000,0.000000 -259,-3.0,10.000033,0.000000,0.000000 -260,-3.0,10.000033,0.000000,0.000000 -261,-3.0,10.000033,0.000000,0.000000 -262,-3.0,10.000033,0.000000,0.000000 -263,-3.0,10.000033,0.000000,0.000000 -264,-3.0,10.000033,0.000000,0.000000 -265,-3.0,10.000033,0.000000,0.000000 -266,-3.0,10.000033,0.000000,0.000000 -267,-3.0,10.000033,0.000000,0.000000 -268,-3.0,10.000033,0.000000,0.000000 -269,-3.0,10.000033,0.000000,0.000000 -270,-3.0,10.000033,0.000000,0.000000 -271,-3.0,10.000033,0.000000,0.000000 -272,-3.0,10.000033,0.000000,0.000000 -273,-3.0,10.000033,0.000000,0.000000 -274,-3.0,10.000033,0.000000,0.000000 -275,-3.0,10.000033,0.000000,0.000000 -276,-3.0,10.000033,0.000000,0.000000 -277,-3.0,10.000033,0.000000,0.000000 -278,-3.0,10.000033,0.000000,0.000000 -279,-3.0,10.000033,0.000000,0.000000 -280,-3.0,10.000033,0.000000,0.000000 -281,-3.0,10.000033,0.000000,0.000000 -282,-3.0,10.000033,0.000000,0.000000 -283,-3.0,10.000033,0.000000,0.000000 -284,-3.0,10.000033,0.000000,0.000000 -285,-3.0,10.000033,0.000000,0.000000 -286,-3.0,10.000033,0.000000,0.000000 -287,-3.0,10.000033,0.000000,0.000000 -288,-3.0,10.000033,0.000000,0.000000 -289,-3.0,10.000033,0.000000,0.000000 -290,-3.0,10.000033,0.000000,0.000000 -291,-3.0,10.000033,0.000000,0.000000 -292,-3.0,10.000033,0.000000,0.000000 -293,-3.0,10.000033,0.000000,0.000000 -294,-3.0,10.000033,0.000000,0.000000 -295,-3.0,10.000033,0.000000,0.000000 -296,-3.0,10.000033,0.000000,0.000000 -297,-3.0,10.000033,0.000000,0.000000 -298,-3.0,10.000033,0.000000,0.000000 -299,-3.0,10.000033,0.000000,0.000000 -300,-3.0,10.000033,0.000000,0.000000 -301,-3.0,10.000033,0.000000,0.000000 -302,-3.0,10.000033,0.000000,0.000000 -303,-3.0,10.000033,0.000000,0.000000 -304,-3.0,10.000033,0.000000,0.000000 -305,-3.0,10.000033,0.000000,0.000000 -306,-3.0,10.000033,0.000000,0.000000 -307,-3.0,10.000033,0.000000,0.000000 -308,-3.0,10.000033,0.000000,0.000000 -309,-3.0,10.000033,0.000000,0.000000 -310,-3.0,10.000033,0.000000,0.000000 -311,-3.0,10.000033,0.000000,0.000000 -312,-3.0,10.000033,0.000000,0.000000 -313,-3.0,10.000033,0.000000,0.000000 -314,-3.0,10.000033,0.000000,0.000000 -315,-3.0,10.000033,0.000000,0.000000 -316,-3.0,10.000033,0.000000,0.000000 -317,-3.0,10.000033,0.000000,0.000000 -318,-3.0,10.000033,0.000000,0.000000 -319,-3.0,10.000033,0.000000,0.000000 -320,-3.0,10.000033,0.000000,0.000000 -321,-3.0,10.000033,0.000000,0.000000 -322,-3.0,10.000033,0.000000,0.000000 -323,-3.0,10.000033,0.000000,0.000000 -324,-3.0,10.000033,0.000000,0.000000 -325,-3.0,10.000033,0.000000,0.000000 -326,-3.0,10.000033,0.000000,0.000000 -327,-3.0,10.000033,0.000000,0.000000 -328,-3.0,10.000033,0.000000,0.000000 -329,-3.0,10.000033,0.000000,0.000000 -330,-3.0,10.000033,0.000000,0.000000 -331,-3.0,10.000033,0.000000,0.000000 -332,-3.0,10.000033,0.000000,0.000000 -333,-3.0,10.000033,0.000000,0.000000 -334,-3.0,10.000033,0.000000,0.000000 -335,-3.0,10.000033,0.000000,0.000000 -336,-3.0,10.000033,0.000000,0.000000 -337,-3.0,10.000033,0.000000,0.000000 -338,-3.0,10.000033,0.000000,0.000000 -339,-3.0,10.000033,0.000000,0.000000 -340,-3.0,10.000033,0.000000,0.000000 -341,-3.0,10.000033,0.000000,0.000000 -342,-3.0,10.000033,0.000000,0.000000 -343,-3.0,10.000033,0.000000,0.000000 -344,-3.0,10.000033,0.000000,0.000000 -345,-3.0,10.000033,0.000000,0.000000 -346,-3.0,10.000033,0.000000,0.000000 -347,-3.0,10.000033,0.000000,0.000000 -348,-3.0,10.000033,0.000000,0.000000 -349,-3.0,10.000033,0.000000,0.000000 -350,-3.0,10.000033,0.000000,0.000000 -351,-3.0,10.000033,0.000000,0.000000 -352,-3.0,10.000033,0.000000,0.000000 -353,-3.0,10.000033,0.000000,0.000000 -354,-3.0,10.000033,0.000000,0.000000 -355,-3.0,10.000033,0.000000,0.000000 -356,-3.0,10.000033,0.000000,0.000000 -357,-3.0,10.000033,0.000000,0.000000 -358,-3.0,10.000033,0.000000,0.000000 -359,-3.0,10.000033,0.000000,0.000000 -360,-3.0,10.000033,0.000000,0.000000 -361,-3.0,10.000033,0.000000,0.000000 -362,-3.0,10.000033,0.000000,0.000000 -363,-3.0,10.000033,0.000000,0.000000 -364,-3.0,10.000033,0.000000,0.000000 -365,-3.0,10.000033,0.000000,0.000000 -366,-3.0,10.000033,0.000000,0.000000 -367,-3.0,10.000033,0.000000,0.000000 -368,-3.0,10.000033,0.000000,0.000000 -369,-3.0,10.000033,0.000000,0.000000 -370,-3.0,10.000033,0.000000,0.000000 -371,-3.0,10.000033,0.000000,0.000000 -372,-3.0,10.000033,0.000000,0.000000 -373,-3.0,10.000033,0.000000,0.000000 -374,-3.0,10.000033,0.000000,0.000000 -375,-3.0,10.000033,0.000000,0.000000 -376,-3.0,10.000033,0.000000,0.000000 -377,-3.0,10.000033,0.000000,0.000000 -378,-3.0,10.000033,0.000000,0.000000 -379,-3.0,10.000033,0.000000,0.000000 -380,-3.0,10.000033,0.000000,0.000000 -381,-3.0,10.000033,0.000000,0.000000 -382,-3.0,10.000033,0.000000,0.000000 -383,-3.0,10.000033,0.000000,0.000000 -384,-3.0,10.000033,0.000000,0.000000 -385,-3.0,10.000033,0.000000,0.000000 -386,-3.0,10.000033,0.000000,0.000000 -387,-3.0,10.000033,0.000000,0.000000 -388,-3.0,10.000033,0.000000,0.000000 -389,-3.0,10.000033,0.000000,0.000000 -390,-3.0,10.000033,0.000000,0.000000 -391,-3.0,10.000033,0.000000,0.000000 -392,-3.0,10.000033,0.000000,0.000000 -393,-3.0,10.000033,0.000000,0.000000 -394,-3.0,10.000033,0.000000,0.000000 -395,-3.0,10.000033,0.000000,0.000000 -396,-3.0,10.000033,0.000000,0.000000 -397,-3.0,10.000033,0.000000,0.000000 -398,-3.0,10.000033,0.000000,0.000000 -399,-3.0,10.000033,0.000000,0.000000 -400,-3.0,10.000033,0.000000,0.000000 -401,-3.0,10.000033,0.000000,0.000000 -402,-3.0,10.000033,0.000000,0.000000 -403,-3.0,10.000033,0.000000,0.000000 -404,-3.0,10.000033,0.000000,0.000000 -405,-3.0,10.000033,0.000000,0.000000 -406,-3.0,10.000033,0.000000,0.000000 -407,-3.0,10.000033,0.000000,0.000000 -408,-3.0,10.000033,0.000000,0.000000 -409,-3.0,10.000033,0.000000,0.000000 -410,-3.0,10.000033,0.000000,0.000000 -411,-3.0,10.000033,0.000000,0.000000 -412,-3.0,10.000033,0.000000,0.000000 -413,-3.0,10.000033,0.000000,0.000000 -414,-3.0,10.000033,0.000000,0.000000 -415,-3.0,10.000033,0.000000,0.000000 -416,-3.0,10.000033,0.000000,0.000000 -417,-3.0,10.000033,0.000000,0.000000 -418,-3.0,10.000033,0.000000,0.000000 -419,-3.0,10.000033,0.000000,0.000000 -420,-3.0,10.000033,0.000000,0.000000 -421,-3.0,10.000033,0.000000,0.000000 -422,-3.0,10.000033,0.000000,0.000000 -423,-3.0,10.000033,0.000000,0.000000 -424,-3.0,10.000033,0.000000,0.000000 -425,-3.0,10.000033,0.000000,0.000000 -426,-3.0,10.000033,0.000000,0.000000 -427,-3.0,10.000033,0.000000,0.000000 -428,-3.0,10.000033,0.000000,0.000000 -429,-3.0,10.000033,0.000000,0.000000 -430,-3.0,10.000033,0.000000,0.000000 -431,-3.0,10.000033,0.000000,0.000000 -432,-3.0,10.000033,0.000000,0.000000 -433,-3.0,10.000033,0.000000,0.000000 -434,-3.0,10.000033,0.000000,0.000000 -435,-3.0,10.000033,0.000000,0.000000 -436,-3.0,10.000033,0.000000,0.000000 -437,-3.0,10.000033,0.000000,0.000000 -438,-3.0,10.000033,0.000000,0.000000 -439,-3.0,10.000033,0.000000,0.000000 -440,-3.0,10.000033,0.000000,0.000000 -441,-3.0,10.000033,0.000000,0.000000 -442,-3.0,10.000033,0.000000,0.000000 -443,-3.0,10.000033,0.000000,0.000000 -444,-3.0,10.000033,0.000000,0.000000 -445,-3.0,10.000033,0.000000,0.000000 -446,-3.0,10.000033,0.000000,0.000000 -447,-3.0,10.000033,0.000000,0.000000 -448,-3.0,10.000033,0.000000,0.000000 -449,-3.0,10.000033,0.000000,0.000000 -450,-3.0,10.000033,0.000000,0.000000 -451,-3.0,10.000033,0.000000,0.000000 -452,-3.0,10.000033,0.000000,0.000000 -453,-3.0,10.000033,0.000000,0.000000 -454,-3.0,10.000033,0.000000,0.000000 -455,-3.0,10.000033,0.000000,0.000000 -456,-3.0,10.000033,0.000000,0.000000 -457,-3.0,10.000033,0.000000,0.000000 -458,-3.0,10.000033,0.000000,0.000000 -459,-3.0,10.000033,0.000000,0.000000 -460,-3.0,10.000033,0.000000,0.000000 -461,-3.0,10.000033,0.000000,0.000000 -462,-3.0,10.000033,0.000000,0.000000 -463,-3.0,10.000033,0.000000,0.000000 -464,-3.0,10.000033,0.000000,0.000000 -465,-3.0,10.000033,0.000000,0.000000 -466,-3.0,10.000033,0.000000,0.000000 -467,-3.0,10.000033,0.000000,0.000000 -468,-3.0,10.000033,0.000000,0.000000 -469,-3.0,10.000033,0.000000,0.000000 -470,-3.0,10.000033,0.000000,0.000000 -471,-3.0,10.000033,0.000000,0.000000 -472,-3.0,10.000033,0.000000,0.000000 -473,-3.0,10.000033,0.000000,0.000000 -474,-3.0,10.000033,0.000000,0.000000 -475,-3.0,10.000033,0.000000,0.000000 -476,-3.0,10.000033,0.000000,0.000000 -477,-3.0,10.000033,0.000000,0.000000 -478,-3.0,10.000033,0.000000,0.000000 -479,-3.0,10.000033,0.000000,0.000000 -480,-3.0,10.000033,0.000000,0.000000 -481,-3.0,10.000033,0.000000,0.000000 -482,-3.0,10.000033,0.000000,0.000000 -483,-3.0,10.000033,0.000000,0.000000 -484,-3.0,10.000033,0.000000,0.000000 -485,-3.0,10.000033,0.000000,0.000000 -486,-3.0,10.000033,0.000000,0.000000 -487,-3.0,10.000033,0.000000,0.000000 -488,-3.0,10.000033,0.000000,0.000000 -489,-3.0,10.000033,0.000000,0.000000 -490,-3.0,10.000033,0.000000,0.000000 -491,-3.0,10.000033,0.000000,0.000000 -492,-3.0,10.000033,0.000000,0.000000 -493,-3.0,10.000033,0.000000,0.000000 -494,-3.0,10.000033,0.000000,0.000000 -495,-3.0,10.000033,0.000000,0.000000 -496,-3.0,10.000033,0.000000,0.000000 -497,-3.0,10.000033,0.000000,0.000000 -498,-3.0,10.000033,0.000000,0.000000 -499,-3.0,10.000033,0.000000,0.000000 -500,-3.0,10.000033,0.000000,0.000000 -501,-3.0,10.000033,0.000000,0.000000 -502,-3.0,10.000033,0.000000,0.000000 -503,-3.0,10.000033,0.000000,0.000000 -504,-3.0,10.000033,0.000000,0.000000 -505,-3.0,10.000033,0.000000,0.000000 -506,-3.0,10.000033,0.000000,0.000000 -507,-3.0,10.000033,0.000000,0.000000 -508,-3.0,10.000033,0.000000,0.000000 -509,-3.0,10.000033,0.000000,0.000000 -510,-3.0,10.000033,0.000000,0.000000 -511,-3.0,10.000033,0.000000,0.000000 -512,-3.0,10.000033,0.000000,0.000000 -513,-3.0,10.000033,0.000000,0.000000 -514,-3.0,10.000033,0.000000,0.000000 -515,-3.0,10.000033,0.000000,0.000000 -516,-3.0,10.000033,0.000000,0.000000 -517,-3.0,10.000033,0.000000,0.000000 -518,-3.0,10.000033,0.000000,0.000000 -519,-3.0,10.000033,0.000000,0.000000 -520,-3.0,10.000033,0.000000,0.000000 -521,-3.0,10.000033,0.000000,0.000000 -522,-3.0,10.000033,0.000000,0.000000 -523,-3.0,10.000033,0.000000,0.000000 -524,-3.0,10.000033,0.000000,0.000000 -525,-3.0,10.000033,0.000000,0.000000 -526,-3.0,10.000033,0.000000,0.000000 -527,-3.0,10.000033,0.000000,0.000000 -528,-3.0,10.000033,0.000000,0.000000 -529,-3.0,10.000033,0.000000,0.000000 -530,-3.0,10.000033,0.000000,0.000000 -531,-3.0,10.000033,0.000000,0.000000 -532,-3.0,10.000033,0.000000,0.000000 -533,-3.0,10.000033,0.000000,0.000000 -534,-3.0,10.000033,0.000000,0.000000 -535,-3.0,10.000033,0.000000,0.000000 -536,-3.0,10.000033,0.000000,0.000000 -537,-3.0,10.000033,0.000000,0.000000 -538,-3.0,10.000033,0.000000,0.000000 -539,-3.0,10.000033,0.000000,0.000000 -540,-3.0,10.000033,0.000000,0.000000 -541,-3.0,10.000033,0.000000,0.000000 -542,-3.0,10.000033,0.000000,0.000000 -543,-3.0,10.000033,0.000000,0.000000 -544,-3.0,10.000033,0.000000,0.000000 -545,-3.0,10.000033,0.000000,0.000000 -546,-3.0,10.000033,0.000000,0.000000 -547,-3.0,10.000033,0.000000,0.000000 -548,-3.0,10.000033,0.000000,0.000000 -549,-3.0,10.000033,0.000000,0.000000 -550,-3.0,10.000033,0.000000,0.000000 -551,-3.0,10.000033,0.000000,0.000000 -552,-3.0,10.000033,0.000000,0.000000 -553,-3.0,10.000033,0.000000,0.000000 -554,-3.0,10.000033,0.000000,0.000000 -555,-3.0,10.000033,0.000000,0.000000 -556,-3.0,10.000033,0.000000,0.000000 -557,-3.0,10.000033,0.000000,0.000000 -558,-3.0,10.000033,0.000000,0.000000 -559,-3.0,10.000033,0.000000,0.000000 -560,-3.0,10.000033,0.000000,0.000000 -561,-3.0,10.000033,0.000000,0.000000 -562,-3.0,10.000033,0.000000,0.000000 -563,-3.0,10.000033,0.000000,0.000000 -564,-3.0,10.000033,0.000000,0.000000 -565,-3.0,10.000033,0.000000,0.000000 -566,-3.0,10.000033,0.000000,0.000000 -567,-3.0,10.000033,0.000000,0.000000 -568,-3.0,10.000033,0.000000,0.000000 -569,-3.0,10.000033,0.000000,0.000000 -570,-3.0,10.000033,0.000000,0.000000 -571,-3.0,10.000033,0.000000,0.000000 -572,-3.0,10.000033,0.000000,0.000000 -573,-3.0,10.000033,0.000000,0.000000 -574,-3.0,10.000033,0.000000,0.000000 -575,-3.0,10.000033,0.000000,0.000000 -576,-3.0,10.000033,0.000000,0.000000 -577,-3.0,10.000033,0.000000,0.000000 -578,-3.0,10.000033,0.000000,0.000000 -579,-3.0,10.000033,0.000000,0.000000 -580,-3.0,10.000033,0.000000,0.000000 -581,-3.0,10.000033,0.000000,0.000000 -582,-3.0,10.000033,0.000000,0.000000 -583,-3.0,10.000033,0.000000,0.000000 -584,-3.0,10.000033,0.000000,0.000000 -585,-3.0,10.000033,0.000000,0.000000 -586,-3.0,10.000033,0.000000,0.000000 -587,-3.0,10.000033,0.000000,0.000000 -588,-3.0,10.000033,0.000000,0.000000 -589,-3.0,10.000033,0.000000,0.000000 -590,-3.0,10.000033,0.000000,0.000000 -591,-3.0,10.000033,0.000000,0.000000 -592,-3.0,10.000033,0.000000,0.000000 -593,-3.0,10.000033,0.000000,0.000000 -594,-3.0,10.000033,0.000000,0.000000 -595,-3.0,10.000033,0.000000,0.000000 -596,-3.0,10.000033,0.000000,0.000000 -597,-3.0,10.000033,0.000000,0.000000 -598,-3.0,10.000033,0.000000,0.000000 -599,-3.0,10.000033,0.000000,0.000000 -600,-3.0,10.000033,0.000000,0.000000 -601,-3.0,10.000033,0.000000,0.000000 -602,-3.0,10.000033,0.000000,0.000000 -603,-3.0,10.000033,0.000000,0.000000 -604,-3.0,10.000033,0.000000,0.000000 -605,-3.0,10.000033,0.000000,0.000000 -606,-3.0,10.000033,0.000000,0.000000 -607,-3.0,10.000033,0.000000,0.000000 -608,-3.0,10.000033,0.000000,0.000000 -609,-3.0,10.000033,0.000000,0.000000 -610,-3.0,10.000033,0.000000,0.000000 -611,-3.0,10.000033,0.000000,0.000000 -612,-3.0,10.000033,0.000000,0.000000 -613,-3.0,10.000033,0.000000,0.000000 -614,-3.0,10.000033,0.000000,0.000000 -615,-3.0,10.000033,0.000000,0.000000 -616,-3.0,10.000033,0.000000,0.000000 -617,-3.0,10.000033,0.000000,0.000000 -618,-3.0,10.000033,0.000000,0.000000 -619,-3.0,10.000033,0.000000,0.000000 -620,-3.0,10.000033,0.000000,0.000000 -621,-3.0,10.000033,0.000000,0.000000 -622,-3.0,10.000033,0.000000,0.000000 -623,-3.0,10.000033,0.000000,0.000000 -624,-3.0,10.000033,0.000000,0.000000 -625,-3.0,10.000033,0.000000,0.000000 -626,-3.0,10.000033,0.000000,0.000000 -627,-3.0,10.000033,0.000000,0.000000 -628,-3.0,10.000033,0.000000,0.000000 -629,-3.0,10.000033,0.000000,0.000000 -630,-3.0,10.000033,0.000000,0.000000 -631,-3.0,10.000033,0.000000,0.000000 -632,-3.0,10.000033,0.000000,0.000000 -633,-3.0,10.000033,0.000000,0.000000 -634,-3.0,10.000033,0.000000,0.000000 -635,-3.0,10.000033,0.000000,0.000000 -636,-3.0,10.000033,0.000000,0.000000 -637,-3.0,10.000033,0.000000,0.000000 -638,-3.0,10.000033,0.000000,0.000000 -639,-3.0,10.000033,0.000000,0.000000 -640,-3.0,10.000033,0.000000,0.000000 -641,-3.0,10.000033,0.000000,0.000000 -642,-3.0,10.000033,0.000000,0.000000 -643,-3.0,10.000033,0.000000,0.000000 -644,-3.0,10.000033,0.000000,0.000000 -645,-3.0,10.000033,0.000000,0.000000 -646,-3.0,10.000033,0.000000,0.000000 -647,-3.0,10.000033,0.000000,0.000000 -648,-3.0,10.000033,0.000000,0.000000 -649,-3.0,10.000033,0.000000,0.000000 -650,-3.0,10.000033,0.000000,0.000000 -651,-3.0,10.000033,0.000000,0.000000 -652,-3.0,10.000033,0.000000,0.000000 -653,-3.0,10.000033,0.000000,0.000000 -654,-3.0,10.000033,0.000000,0.000000 -655,-3.0,10.000033,0.000000,0.000000 -656,-3.0,10.000033,0.000000,0.000000 -657,-3.0,10.000033,0.000000,0.000000 -658,-3.0,10.000033,0.000000,0.000000 -659,-3.0,10.000033,0.000000,0.000000 -660,-3.0,10.000033,0.000000,0.000000 -661,-3.0,10.000033,0.000000,0.000000 -662,-3.0,10.000033,0.000000,0.000000 -663,-3.0,10.000033,0.000000,0.000000 -664,-3.0,10.000033,0.000000,0.000000 -665,-3.0,10.000033,0.000000,0.000000 -666,-3.0,10.000033,0.000000,0.000000 -667,-3.0,10.000033,0.000000,0.000000 -668,-3.0,10.000033,0.000000,0.000000 -669,-3.0,10.000033,0.000000,0.000000 -670,-3.0,10.000033,0.000000,0.000000 -671,-3.0,10.000033,0.000000,0.000000 -672,-3.0,10.000033,0.000000,0.000000 -673,-3.0,10.000033,0.000000,0.000000 -674,-3.0,10.000033,0.000000,0.000000 -675,-3.0,10.000033,0.000000,0.000000 -676,-3.0,10.000033,0.000000,0.000000 -677,-3.0,10.000033,0.000000,0.000000 -678,-3.0,10.000033,0.000000,0.000000 -679,-3.0,10.000033,0.000000,0.000000 -680,-3.0,10.000033,0.000000,0.000000 -681,-3.0,10.000033,0.000000,0.000000 -682,-3.0,10.000033,0.000000,0.000000 -683,-3.0,10.000033,0.000000,0.000000 -684,-3.0,10.000033,0.000000,0.000000 -685,-3.0,10.000033,0.000000,0.000000 -686,-3.0,10.000033,0.000000,0.000000 -687,-3.0,10.000033,0.000000,0.000000 -688,-3.0,10.000033,0.000000,0.000000 -689,-3.0,10.000033,0.000000,0.000000 -690,-3.0,10.000033,0.000000,0.000000 -691,-3.0,10.000033,0.000000,0.000000 -692,-3.0,10.000033,0.000000,0.000000 -693,-3.0,10.000033,0.000000,0.000000 -694,-3.0,10.000033,0.000000,0.000000 -695,-3.0,10.000033,0.000000,0.000000 -696,-3.0,10.000033,0.000000,0.000000 -697,-3.0,10.000033,0.000000,0.000000 -698,-3.0,10.000033,0.000000,0.000000 -699,-3.0,10.000033,0.000000,0.000000 -700,-3.0,10.000033,0.000000,0.000000 -701,-3.0,10.000033,0.000000,0.000000 -702,-3.0,10.000033,0.000000,0.000000 -703,-3.0,10.000033,0.000000,0.000000 -704,-3.0,10.000033,0.000000,0.000000 -705,-3.0,10.000033,0.000000,0.000000 -706,-3.0,10.000033,0.000000,0.000000 -707,-3.0,10.000033,0.000000,0.000000 -708,-3.0,10.000033,0.000000,0.000000 -709,-3.0,10.000033,0.000000,0.000000 -710,-3.0,10.000033,0.000000,0.000000 -711,-3.0,10.000033,0.000000,0.000000 -712,-3.0,10.000033,0.000000,0.000000 -713,-3.0,10.000033,0.000000,0.000000 -714,-3.0,10.000033,0.000000,0.000000 -715,-3.0,10.000033,0.000000,0.000000 -716,-3.0,10.000033,0.000000,0.000000 -717,-3.0,10.000033,0.000000,0.000000 -718,-3.0,10.000033,0.000000,0.000000 -719,-3.0,10.000033,0.000000,0.000000 -720,-3.0,10.000033,0.000000,0.000000 -721,-3.0,10.000033,0.000000,0.000000 -722,-3.0,10.000033,0.000000,0.000000 -723,-3.0,10.000033,0.000000,0.000000 -724,-3.0,10.000033,0.000000,0.000000 -725,-3.0,10.000033,0.000000,0.000000 -726,-3.0,10.000033,0.000000,0.000000 -727,-3.0,10.000033,0.000000,0.000000 -728,-3.0,10.000033,0.000000,0.000000 -729,-3.0,10.000033,0.000000,0.000000 -730,-3.0,10.000033,0.000000,0.000000 -731,-3.0,10.000033,0.000000,0.000000 -732,-3.0,10.000033,0.000000,0.000000 -733,-3.0,10.000033,0.000000,0.000000 -734,-3.0,10.000033,0.000000,0.000000 -735,-3.0,10.000033,0.000000,0.000000 -736,-3.0,10.000033,0.000000,0.000000 -737,-3.0,10.000033,0.000000,0.000000 -738,-3.0,10.000033,0.000000,0.000000 -739,-3.0,10.000033,0.000000,0.000000 -740,-3.0,10.000033,0.000000,0.000000 -741,-3.0,10.000033,0.000000,0.000000 -742,-3.0,10.000033,0.000000,0.000000 -743,-3.0,10.000033,0.000000,0.000000 -744,-3.0,10.000033,0.000000,0.000000 -745,-3.0,10.000033,0.000000,0.000000 -746,-3.0,10.000033,0.000000,0.000000 -747,-3.0,10.000033,0.000000,0.000000 -748,-3.0,10.000033,0.000000,0.000000 -749,-3.0,10.000033,0.000000,0.000000 -750,-3.0,10.000033,0.000000,0.000000 -751,-3.0,10.000033,0.000000,0.000000 -752,-3.0,10.000033,0.000000,0.000000 -753,-3.0,10.000033,0.000000,0.000000 -754,-3.0,10.000033,0.000000,0.000000 -755,-3.0,10.000033,0.000000,0.000000 -756,-3.0,10.000033,0.000000,0.000000 -757,-3.0,10.000033,0.000000,0.000000 -758,-3.0,10.000033,0.000000,0.000000 -759,-3.0,10.000033,0.000000,0.000000 -760,-3.0,10.000033,0.000000,0.000000 -761,-3.0,10.000033,0.000000,0.000000 -762,-3.0,10.000033,0.000000,0.000000 -763,-3.0,10.000033,0.000000,0.000000 -764,-3.0,10.000033,0.000000,0.000000 -765,-3.0,10.000033,0.000000,0.000000 -766,-3.0,10.000033,0.000000,0.000000 -767,-3.0,10.000033,0.000000,0.000000 -768,-3.0,10.000033,0.000000,0.000000 -769,-3.0,10.000033,0.000000,0.000000 -770,-3.0,10.000033,0.000000,0.000000 -771,-3.0,10.000033,0.000000,0.000000 -772,-3.0,10.000033,0.000000,0.000000 -773,-3.0,10.000033,0.000000,0.000000 -774,-3.0,10.000033,0.000000,0.000000 -775,-3.0,10.000033,0.000000,0.000000 -776,-3.0,10.000033,0.000000,0.000000 -777,-3.0,10.000033,0.000000,0.000000 -778,-3.0,10.000033,0.000000,0.000000 -779,-3.0,10.000033,0.000000,0.000000 -780,-3.0,10.000033,0.000000,0.000000 -781,-3.0,10.000033,0.000000,0.000000 -782,-3.0,10.000033,0.000000,0.000000 -783,-3.0,10.000033,0.000000,0.000000 -784,-3.0,10.000033,0.000000,0.000000 -785,-3.0,10.000033,0.000000,0.000000 -786,-3.0,10.000033,0.000000,0.000000 -787,-3.0,10.000033,0.000000,0.000000 -788,-3.0,10.000033,0.000000,0.000000 -789,-3.0,10.000033,0.000000,0.000000 -790,-3.0,10.000033,0.000000,0.000000 -791,-3.0,10.000033,0.000000,0.000000 -792,-3.0,10.000033,0.000000,0.000000 -793,-3.0,10.000033,0.000000,0.000000 -794,-3.0,10.000033,0.000000,0.000000 -795,-3.0,10.000033,0.000000,0.000000 -796,-3.0,10.000033,0.000000,0.000000 -797,-3.0,10.000033,0.000000,0.000000 -798,-3.0,10.000033,0.000000,0.000000 -799,-3.0,10.000033,0.000000,0.000000 -800,-3.0,10.000033,0.000000,0.000000 -801,-3.0,10.266693,0.000000,0.000000 -802,-3.0,10.533298,0.000000,0.000000 -803,-3.0,10.799964,0.000000,0.000000 -804,-3.0,11.066683,0.000000,0.000000 -805,-3.0,11.333351,0.000000,0.000000 -806,-3.0,11.599969,0.000000,0.000000 -807,-3.0,11.866644,0.000000,0.000000 -808,-3.0,12.133388,0.000000,0.000000 -809,-3.0,12.399959,0.000000,0.000000 -810,-3.0,12.666719,0.000000,0.000000 -811,-3.0,12.933321,0.000000,0.000000 -812,-3.0,13.199985,0.000000,0.000000 -813,-3.0,13.466728,0.000000,0.000000 -814,-3.0,13.733303,0.000000,0.000000 -815,-3.0,13.999958,0.000000,0.000000 -816,-3.0,14.266695,0.000000,0.000000 -817,-3.0,14.533386,0.000000,0.000000 -818,-3.0,14.800045,0.000000,0.000000 -819,-3.0,15.066674,0.000000,0.000000 -820,-3.0,15.333377,0.000000,0.000000 -821,-3.0,15.600053,0.000000,0.000000 -822,-3.0,15.866688,0.000000,0.000000 -823,-3.0,16.133298,0.000000,0.000000 -824,-3.0,16.400004,0.000000,0.000000 -825,-3.0,16.666689,0.000000,0.000000 -826,-3.0,16.933338,0.000000,0.000000 -827,-3.0,17.199953,0.000000,0.000000 -828,-3.0,17.466686,0.000000,0.000000 -829,-3.0,17.733387,0.000000,0.000000 -830,-3.0,17.999939,0.000000,0.000000 -831,-3.0,18.266614,0.000000,0.000000 -832,-3.0,18.533381,0.000000,0.000000 -833,-3.0,18.800002,0.000000,0.000000 -834,-3.0,19.066614,0.000000,0.000000 -835,-3.0,19.333340,0.000000,0.000000 -836,-3.0,19.599942,0.000000,0.000000 -837,-3.0,19.866642,0.000000,0.000000 -838,-3.0,20.133340,0.000000,0.000000 -839,-3.0,20.400039,0.000000,0.000000 -840,-3.0,20.666719,0.000000,0.000000 -841,-3.0,20.933283,0.000000,0.000000 -842,-3.0,21.199951,0.000000,0.000000 -843,-3.0,21.466645,0.000000,0.000000 -844,-3.0,21.733326,0.000000,0.000000 -845,-3.0,21.999997,0.000000,0.000000 -846,-3.0,22.266677,0.000000,0.000000 -847,-3.0,22.533370,0.000000,0.000000 -848,-3.0,22.799955,0.000000,0.000000 -849,-3.0,23.066676,0.000000,0.000000 -850,-3.0,23.333393,0.000000,0.000000 -851,-3.0,23.599985,0.000000,0.000000 -852,-3.0,23.866618,0.000000,0.000000 -853,-3.0,24.133372,0.000000,0.000000 -854,-3.0,24.400027,0.000000,0.000000 -855,-3.0,24.666684,0.000000,0.000000 -856,-3.0,24.933389,0.000000,0.000000 -857,-3.0,25.199976,0.000000,0.000000 -858,-3.0,25.466691,0.000000,0.000000 -859,-3.0,25.733337,0.000000,0.000000 -860,-3.0,25.999992,0.000000,0.000000 -861,-3.0,26.266680,0.000000,0.000000 -862,-3.0,26.533402,0.000000,0.000000 -863,-3.0,26.800015,0.000000,0.000000 -864,-3.0,27.066665,0.000000,0.000000 -865,-3.0,27.333354,0.000000,0.000000 -866,-3.0,27.599937,0.000000,0.000000 -867,-3.0,27.866709,0.000000,0.000000 -868,-3.0,28.133378,0.000000,0.000000 -869,-3.0,28.399943,0.000000,0.000000 -870,-3.0,28.666705,0.000000,0.000000 -871,-3.0,28.933365,0.000000,0.000000 -872,-3.0,29.199951,0.000000,0.000000 -873,-3.0,29.466713,0.000000,0.000000 -874,-3.0,29.733404,0.000000,0.000000 -875,-3.0,29.999999,0.000000,0.000000 -876,-3.0,30.266650,0.000000,0.000000 -877,-3.0,30.533358,0.000000,0.000000 -878,-3.0,30.799975,0.000000,0.000000 -879,-3.0,31.066678,0.000000,0.000000 -880,-3.0,31.333291,0.000000,0.000000 -881,-3.0,31.599969,0.000000,0.000000 -882,-3.0,31.866712,0.000000,0.000000 -883,-3.0,32.133369,0.000000,0.000000 -884,-3.0,32.399995,0.000000,0.000000 -885,-3.0,32.666664,0.000000,0.000000 -886,-3.0,32.933278,0.000000,0.000000 -887,-3.0,33.199965,0.000000,0.000000 -888,-3.0,33.466700,0.000000,0.000000 -889,-3.0,33.733283,0.000000,0.000000 -890,-3.0,34.000045,0.000000,0.000000 -891,-3.0,34.266630,0.000000,0.000000 -892,-3.0,34.533296,0.000000,0.000000 -893,-3.0,34.800018,0.000000,0.000000 -894,-3.0,35.066723,0.000000,0.000000 -895,-3.0,35.333357,0.000000,0.000000 -896,-3.0,35.599949,0.000000,0.000000 -897,-3.0,35.866631,0.000000,0.000000 -898,-3.0,36.133274,0.000000,0.000000 -899,-3.0,36.400009,0.000000,0.000000 -900,-3.0,36.666709,0.000000,0.000000 -901,-3.0,36.933345,0.000000,0.000000 -902,-3.0,37.199948,0.000000,0.000000 -903,-3.0,37.466678,0.000000,0.000000 -904,-3.0,37.733350,0.000000,0.000000 -905,-3.0,37.999992,0.000000,0.000000 -906,-3.0,38.266709,0.000000,0.000000 -907,-3.0,38.533297,0.000000,0.000000 -908,-3.0,38.799993,0.000000,0.000000 -909,-3.0,39.066635,0.000000,0.000000 -910,-3.0,39.333285,0.000000,0.000000 -911,-3.0,39.600017,0.000000,0.000000 -912,-3.0,39.866731,0.000000,0.000000 -913,-3.0,40.133294,0.000000,0.000000 -914,-3.0,40.399973,0.000000,0.000000 -915,-3.0,40.666637,0.000000,0.000000 -916,-3.0,40.933288,0.000000,0.000000 -917,-3.0,41.200061,0.000000,0.000000 -918,-3.0,41.466659,0.000000,0.000000 -919,-3.0,41.733278,0.000000,0.000000 -920,-3.0,41.999994,0.000000,0.000000 -921,-3.0,42.266733,0.000000,0.000000 -922,-3.0,42.533303,0.000000,0.000000 -923,-3.0,42.800035,0.000000,0.000000 -924,-3.0,43.066599,0.000000,0.000000 -925,-3.0,43.333328,0.000000,0.000000 -926,-3.0,43.600028,0.000000,0.000000 -927,-3.0,43.866730,0.000000,0.000000 -928,-3.0,44.133300,0.000000,0.000000 -929,-3.0,44.400042,0.000000,0.000000 -930,-3.0,44.666624,0.000000,0.000000 -931,-3.0,44.933350,0.000000,0.000000 -932,-3.0,45.199949,0.000000,0.000000 -933,-3.0,45.466696,0.000000,0.000000 -934,-3.0,45.733350,0.000000,0.000000 -935,-3.0,45.999987,0.000000,0.000000 -936,-3.0,46.266639,0.000000,0.000000 -937,-3.0,46.533308,0.000000,0.000000 -938,-3.0,46.800027,0.000000,0.000000 -939,-3.0,47.066734,0.000000,0.000000 -940,-3.0,47.333325,0.000000,0.000000 -941,-3.0,47.599969,0.000000,0.000000 -942,-3.0,47.866607,0.000000,0.000000 -943,-3.0,48.133301,0.000000,0.000000 -944,-3.0,48.399992,0.000000,0.000000 -945,-3.0,48.666742,0.000000,0.000000 -946,-3.0,48.933353,0.000000,0.000000 -947,-3.0,49.200026,0.000000,0.000000 -948,-3.0,49.466732,0.000000,0.000000 -949,-3.0,49.733333,0.000000,0.000000 -950,-3.0,49.999970,0.000000,0.000000 -951,-3.0,50.266644,0.000000,0.000000 -952,-3.0,50.533358,0.000000,0.000000 -953,-3.0,50.799972,0.000000,0.000000 -954,-3.0,51.066659,0.000000,0.000000 -955,-3.0,51.333359,0.000000,0.000000 -956,-3.0,51.599993,0.000000,0.000000 -957,-3.0,51.866674,0.000000,0.000000 -958,-3.0,52.133373,0.000000,0.000000 -959,-3.0,52.400010,0.000000,0.000000 -960,-3.0,52.666729,0.000000,0.000000 -961,-3.0,52.933327,0.000000,0.000000 -962,-3.0,53.199980,0.000000,0.000000 -963,-3.0,53.466720,0.000000,0.000000 -964,-3.0,53.733374,0.000000,0.000000 -965,-3.0,53.999942,0.000000,0.000000 -966,-3.0,54.266716,0.000000,0.000000 -967,-3.0,54.533264,0.000000,0.000000 -968,-3.0,54.800019,0.000000,0.000000 -969,-3.0,55.066727,0.000000,0.000000 -970,-3.0,55.333356,0.000000,0.000000 -971,-3.0,55.600053,0.000000,0.000000 -972,-3.0,55.866675,0.000000,0.000000 -973,-3.0,56.133399,0.000000,0.000000 -974,-3.0,56.400021,0.000000,0.000000 -975,-3.0,56.666601,0.000000,0.000000 -976,-3.0,56.933287,0.000000,0.000000 -977,-3.0,57.200022,0.000000,0.000000 -978,-3.0,57.466719,0.000000,0.000000 -979,-3.0,57.733350,0.000000,0.000000 -980,-3.0,58.000065,0.000000,0.000000 -981,-3.0,58.266716,0.000000,0.000000 -982,-3.0,58.533335,0.000000,0.000000 -983,-3.0,58.800042,0.000000,0.000000 -984,-3.0,59.066690,0.000000,0.000000 -985,-3.0,59.333310,0.000000,0.000000 -986,-3.0,59.599993,0.000000,0.000000 -987,-3.0,59.866679,0.000000,0.000000 -988,-3.0,60.133283,0.000000,0.000000 -989,-3.0,60.400014,0.000000,0.000000 -990,-3.0,60.666694,0.000000,0.000000 -991,-3.0,60.933325,0.000000,0.000000 -992,-3.0,61.199937,0.000000,0.000000 -993,-3.0,61.466653,0.000000,0.000000 -994,-3.0,61.733352,0.000000,0.000000 -995,-3.0,61.999980,0.000000,0.000000 -996,-3.0,62.266595,0.000000,0.000000 -997,-3.0,62.533347,0.000000,0.000000 -998,-3.0,62.800061,0.000000,0.000000 -999,-3.0,63.066738,0.000000,0.000000 -1000,-3.0,63.333406,0.000000,0.000000 -1001,-3.0,63.600039,0.000000,0.000000 -1002,-3.0,63.866640,0.000000,0.000000 -1003,-3.0,64.133388,0.000000,0.000000 -1004,-3.0,64.399954,0.000000,0.000000 -1005,-3.0,64.666670,0.000000,0.000000 -1006,-3.0,64.933359,0.000000,0.000000 -1007,-3.0,65.200023,0.000000,0.000000 -1008,-3.0,65.466688,0.000000,0.000000 -1009,-3.0,65.733358,0.000000,0.000000 -1010,-3.0,66.000006,0.000000,0.000000 -1011,-3.0,66.266634,0.000000,0.000000 -1012,-3.0,66.533270,0.000000,0.000000 -1013,-3.0,66.800043,0.000000,0.000000 -1014,-3.0,67.066673,0.000000,0.000000 -1015,-3.0,67.333289,0.000000,0.000000 -1016,-3.0,67.600048,0.000000,0.000000 -1017,-3.0,67.866691,0.000000,0.000000 -1018,-3.0,68.133301,0.000000,0.000000 -1019,-3.0,68.399952,0.000000,0.000000 -1020,-3.0,68.666728,0.000000,0.000000 -1021,-3.0,68.933392,0.000000,0.000000 -1022,-3.0,69.200031,0.000000,0.000000 -1023,-3.0,69.466715,0.000000,0.000000 -1024,-3.0,69.733400,0.000000,0.000000 -1025,-3.0,69.999931,0.000000,0.000000 -1026,-3.0,70.266644,0.000000,0.000000 -1027,-3.0,70.533385,0.000000,0.000000 -1028,-3.0,70.799978,0.000000,0.000000 -1029,-3.0,71.066600,0.000000,0.000000 -1030,-3.0,71.333389,0.000000,0.000000 -1031,-3.0,71.600055,0.000000,0.000000 -1032,-3.0,71.866734,0.000000,0.000000 -1033,-3.0,72.133314,0.000000,0.000000 -1034,-3.0,72.400046,0.000000,0.000000 -1035,-3.0,72.666680,0.000000,0.000000 -1036,-3.0,72.933334,0.000000,0.000000 -1037,-3.0,73.200010,0.000000,0.000000 -1038,-3.0,73.466749,0.000000,0.000000 -1039,-3.0,73.733355,0.000000,0.000000 -1040,-3.0,74.000006,0.000000,0.000000 -1041,-3.0,74.266685,0.000000,0.000000 -1042,-3.0,74.533413,0.000000,0.000000 -1043,-3.0,74.800032,0.000000,0.000000 -1044,-3.0,75.066685,0.000000,0.000000 -1045,-3.0,75.333390,0.000000,0.000000 -1046,-3.0,75.599991,0.000000,0.000000 -1047,-3.0,75.866648,0.000000,0.000000 -1048,-3.0,76.133343,0.000000,0.000000 -1049,-3.0,76.399939,0.000000,0.000000 -1050,-3.0,76.666594,0.000000,0.000000 -1051,-3.0,76.933294,0.000000,0.000000 -1052,-3.0,77.200057,0.000000,0.000000 -1053,-3.0,77.466740,0.000000,0.000000 -1054,-3.0,77.733298,0.000000,0.000000 -1055,-3.0,77.999938,0.000000,0.000000 -1056,-3.0,78.266632,0.000000,0.000000 -1057,-3.0,78.533409,0.000000,0.000000 -1058,-3.0,78.800084,0.000000,0.000000 -1059,-3.0,79.066657,0.000000,0.000000 -1060,-3.0,79.333318,0.000000,0.000000 -1061,-3.0,79.600054,0.000000,0.000000 -1062,-3.0,79.866694,0.000000,0.000000 -1063,-3.0,80.133412,0.000000,0.000000 -1064,-3.0,80.400050,0.000000,0.000000 -1065,-3.0,80.666608,0.000000,0.000000 -1066,-3.0,80.933409,0.000000,0.000000 -1067,-3.0,81.199962,0.000000,0.000000 -1068,-3.0,81.466611,0.000000,0.000000 -1069,-3.0,81.733336,0.000000,0.000000 -1070,-3.0,82.000000,0.000000,0.000000 -1071,-3.0,82.266743,0.000000,0.000000 -1072,-3.0,82.533255,0.000000,0.000000 -1073,-3.0,82.800021,0.000000,0.000000 -1074,-3.0,83.066720,0.000000,0.000000 -1075,-3.0,83.333354,0.000000,0.000000 -1076,-3.0,83.599924,0.000000,0.000000 -1077,-3.0,83.866592,0.000000,0.000000 -1078,-3.0,84.133361,0.000000,0.000000 -1079,-3.0,84.400069,0.000000,0.000000 -1080,-3.0,84.666712,0.000000,0.000000 -1081,-3.0,84.933305,0.000000,0.000000 -1082,-3.0,85.200004,0.000000,0.000000 -1083,-3.0,85.466649,0.000000,0.000000 -1084,-3.0,85.733403,0.000000,0.000000 -1085,-3.0,85.999943,0.000000,0.000000 -1086,-3.0,86.266596,0.000000,0.000000 -1087,-3.0,86.533362,0.000000,0.000000 -1088,-3.0,86.800081,0.000000,0.000000 -1089,-3.0,87.066592,0.000000,0.000000 -1090,-3.0,87.333384,0.000000,0.000000 -1091,-3.0,87.599971,0.000000,0.000000 -1092,-3.0,87.866682,0.000000,0.000000 -1093,-3.0,88.133351,0.000000,0.000000 -1094,-3.0,88.399984,0.000000,0.000000 -1095,-3.0,88.666741,0.000000,0.000000 -1096,-3.0,88.933302,0.000000,0.000000 -1097,-3.0,89.199991,0.000000,0.000000 -1098,-3.0,89.466649,0.000000,0.000000 -1099,-3.0,89.733276,0.000000,0.000000 -1100,-3.0,90.000035,0.000000,0.000000 -1101,-3.0,90.000035,0.000000,0.000000 -1102,-3.0,90.000035,0.000000,0.000000 -1103,-3.0,90.000035,0.000000,0.000000 -1104,-3.0,90.000035,0.000000,0.000000 -1105,-3.0,90.000035,0.000000,0.000000 -1106,-3.0,90.000035,0.000000,0.000000 -1107,-3.0,90.000035,0.000000,0.000000 -1108,-3.0,90.000035,0.000000,0.000000 -1109,-3.0,90.000035,0.000000,0.000000 -1110,-3.0,90.000035,0.000000,0.000000 -1111,-3.0,90.000035,0.000000,0.000000 -1112,-3.0,90.000035,0.000000,0.000000 -1113,-3.0,90.000035,0.000000,0.000000 -1114,-3.0,90.000035,0.000000,0.000000 -1115,-3.0,90.000035,0.000000,0.000000 -1116,-3.0,90.000035,0.000000,0.000000 -1117,-3.0,90.000035,0.000000,0.000000 -1118,-3.0,90.000035,0.000000,0.000000 -1119,-3.0,90.000035,0.000000,0.000000 -1120,-3.0,90.000035,0.000000,0.000000 -1121,-3.0,90.000035,0.000000,0.000000 -1122,-3.0,90.000035,0.000000,0.000000 -1123,-3.0,90.000035,0.000000,0.000000 -1124,-3.0,90.000035,0.000000,0.000000 -1125,-3.0,90.000035,0.000000,0.000000 -1126,-3.0,90.000035,0.000000,0.000000 -1127,-3.0,90.000035,0.000000,0.000000 -1128,-3.0,90.000035,0.000000,0.000000 -1129,-3.0,90.000035,0.000000,0.000000 -1130,-3.0,90.000035,0.000000,0.000000 -1131,-3.0,90.000035,0.000000,0.000000 -1132,-3.0,90.000035,0.000000,0.000000 -1133,-3.0,90.000035,0.000000,0.000000 -1134,-3.0,90.000035,0.000000,0.000000 -1135,-3.0,90.000035,0.000000,0.000000 -1136,-3.0,90.000035,0.000000,0.000000 -1137,-3.0,90.000035,0.000000,0.000000 -1138,-3.0,90.000035,0.000000,0.000000 -1139,-3.0,90.000035,0.000000,0.000000 -1140,-3.0,90.000035,0.000000,0.000000 -1141,-3.0,90.000035,0.000000,0.000000 -1142,-3.0,90.000035,0.000000,0.000000 -1143,-3.0,90.000035,0.000000,0.000000 -1144,-3.0,90.000035,0.000000,0.000000 -1145,-3.0,90.000035,0.000000,0.000000 -1146,-3.0,90.000035,0.000000,0.000000 -1147,-3.0,90.000035,0.000000,0.000000 -1148,-3.0,90.000035,0.000000,0.000000 -1149,-3.0,90.000035,0.000000,0.000000 -1150,-3.0,90.000035,0.000000,0.000000 -1151,-3.0,90.000035,0.000000,0.000000 -1152,-3.0,90.000035,0.000000,0.000000 -1153,-3.0,90.000035,0.000000,0.000000 -1154,-3.0,90.000035,0.000000,0.000000 -1155,-3.0,90.000035,0.000000,0.000000 -1156,-3.0,90.000035,0.000000,0.000000 -1157,-3.0,90.000035,0.000000,0.000000 -1158,-3.0,90.000035,0.000000,0.000000 -1159,-3.0,90.000035,0.000000,0.000000 -1160,-3.0,90.000035,0.000000,0.000000 -1161,-3.0,90.000035,0.000000,0.000000 -1162,-3.0,90.000035,0.000000,0.000000 -1163,-3.0,90.000035,0.000000,0.000000 -1164,-3.0,90.000035,0.000000,0.000000 -1165,-3.0,90.000035,0.000000,0.000000 -1166,-3.0,90.000035,0.000000,0.000000 -1167,-3.0,90.000035,0.000000,0.000000 -1168,-3.0,90.000035,0.000000,0.000000 -1169,-3.0,90.000035,0.000000,0.000000 -1170,-3.0,90.000035,0.000000,0.000000 -1171,-3.0,90.000035,0.000000,0.000000 -1172,-3.0,90.000035,0.000000,0.000000 -1173,-3.0,90.000035,0.000000,0.000000 -1174,-3.0,90.000035,0.000000,0.000000 -1175,-3.0,90.000035,0.000000,0.000000 -1176,-3.0,90.000035,0.000000,0.000000 -1177,-3.0,90.000035,0.000000,0.000000 -1178,-3.0,90.000035,0.000000,0.000000 -1179,-3.0,90.000035,0.000000,0.000000 -1180,-3.0,90.000035,0.000000,0.000000 -1181,-3.0,90.000035,0.000000,0.000000 -1182,-3.0,90.000035,0.000000,0.000000 -1183,-3.0,90.000035,0.000000,0.000000 -1184,-3.0,90.000035,0.000000,0.000000 -1185,-3.0,90.000035,0.000000,0.000000 -1186,-3.0,90.000035,0.000000,0.000000 -1187,-3.0,90.000035,0.000000,0.000000 -1188,-3.0,90.000035,0.000000,0.000000 -1189,-3.0,90.000035,0.000000,0.000000 -1190,-3.0,90.000035,0.000000,0.000000 -1191,-3.0,90.000035,0.000000,0.000000 -1192,-3.0,90.000035,0.000000,0.000000 -1193,-3.0,90.000035,0.000000,0.000000 -1194,-3.0,90.000035,0.000000,0.000000 -1195,-3.0,90.000035,0.000000,0.000000 -1196,-3.0,90.000035,0.000000,0.000000 -1197,-3.0,90.000035,0.000000,0.000000 -1198,-3.0,90.000035,0.000000,0.000000 -1199,-3.0,90.000035,0.000000,0.000000 -1200,-3.0,90.000035,0.000000,0.000000 -1201,-3.0,90.000035,0.000000,0.000000 -1202,-3.0,90.000035,0.000000,0.000000 -1203,-3.0,90.000035,0.000000,0.000000 -1204,-3.0,90.000035,0.000000,0.000000 -1205,-3.0,90.000035,0.000000,0.000000 -1206,-3.0,90.000035,0.000000,0.000000 -1207,-3.0,90.000035,0.000000,0.000000 -1208,-3.0,90.000035,0.000000,0.000000 -1209,-3.0,90.000035,0.000000,0.000000 -1210,-3.0,90.000035,0.000000,0.000000 -1211,-3.0,90.000035,0.000000,0.000000 -1212,-3.0,90.000035,0.000000,0.000000 -1213,-3.0,90.000035,0.000000,0.000000 -1214,-3.0,90.000035,0.000000,0.000000 -1215,-3.0,90.000035,0.000000,0.000000 -1216,-3.0,90.000035,0.000000,0.000000 -1217,-3.0,90.000035,0.000000,0.000000 -1218,-3.0,90.000035,0.000000,0.000000 -1219,-3.0,90.000035,0.000000,0.000000 -1220,-3.0,90.000035,0.000000,0.000000 -1221,-3.0,90.000035,0.000000,0.000000 -1222,-3.0,90.000035,0.000000,0.000000 -1223,-3.0,90.000035,0.000000,0.000000 -1224,-3.0,90.000035,0.000000,0.000000 -1225,-3.0,90.000035,0.000000,0.000000 -1226,-3.0,90.000035,0.000000,0.000000 -1227,-3.0,90.000035,0.000000,0.000000 -1228,-3.0,90.000035,0.000000,0.000000 -1229,-3.0,90.000035,0.000000,0.000000 -1230,-3.0,90.000035,0.000000,0.000000 -1231,-3.0,90.000035,0.000000,0.000000 -1232,-3.0,90.000035,0.000000,0.000000 -1233,-3.0,90.000035,0.000000,0.000000 -1234,-3.0,90.000035,0.000000,0.000000 -1235,-3.0,90.000035,0.000000,0.000000 -1236,-3.0,90.000035,0.000000,0.000000 -1237,-3.0,90.000035,0.000000,0.000000 -1238,-3.0,90.000035,0.000000,0.000000 -1239,-3.0,90.000035,0.000000,0.000000 -1240,-3.0,90.000035,0.000000,0.000000 -1241,-3.0,90.000035,0.000000,0.000000 -1242,-3.0,90.000035,0.000000,0.000000 -1243,-3.0,90.000035,0.000000,0.000000 -1244,-3.0,90.000035,0.000000,0.000000 -1245,-3.0,90.000035,0.000000,0.000000 -1246,-3.0,90.000035,0.000000,0.000000 -1247,-3.0,90.000035,0.000000,0.000000 -1248,-3.0,90.000035,0.000000,0.000000 -1249,-3.0,90.000035,0.000000,0.000000 -1250,-3.0,90.000035,0.000000,0.000000 -1251,-3.0,90.000035,0.000000,0.000000 -1252,-3.0,90.000035,0.000000,0.000000 -1253,-3.0,90.000035,0.000000,0.000000 -1254,-3.0,90.000035,0.000000,0.000000 -1255,-3.0,90.000035,0.000000,0.000000 -1256,-3.0,90.000035,0.000000,0.000000 -1257,-3.0,90.000035,0.000000,0.000000 -1258,-3.0,90.000035,0.000000,0.000000 -1259,-3.0,90.000035,0.000000,0.000000 -1260,-3.0,90.000035,0.000000,0.000000 -1261,-3.0,90.000035,0.000000,0.000000 -1262,-3.0,90.000035,0.000000,0.000000 -1263,-3.0,90.000035,0.000000,0.000000 -1264,-3.0,90.000035,0.000000,0.000000 -1265,-3.0,90.000035,0.000000,0.000000 -1266,-3.0,90.000035,0.000000,0.000000 -1267,-3.0,90.000035,0.000000,0.000000 -1268,-3.0,90.000035,0.000000,0.000000 -1269,-3.0,90.000035,0.000000,0.000000 -1270,-3.0,90.000035,0.000000,0.000000 -1271,-3.0,90.000035,0.000000,0.000000 -1272,-3.0,90.000035,0.000000,0.000000 -1273,-3.0,90.000035,0.000000,0.000000 -1274,-3.0,90.000035,0.000000,0.000000 -1275,-3.0,90.000035,0.000000,0.000000 -1276,-3.0,90.000035,0.000000,0.000000 -1277,-3.0,90.000035,0.000000,0.000000 -1278,-3.0,90.000035,0.000000,0.000000 -1279,-3.0,90.000035,0.000000,0.000000 -1280,-3.0,90.000035,0.000000,0.000000 -1281,-3.0,90.000035,0.000000,0.000000 -1282,-3.0,90.000035,0.000000,0.000000 -1283,-3.0,90.000035,0.000000,0.000000 -1284,-3.0,90.000035,0.000000,0.000000 -1285,-3.0,90.000035,0.000000,0.000000 -1286,-3.0,90.000035,0.000000,0.000000 -1287,-3.0,90.000035,0.000000,0.000000 -1288,-3.0,90.000035,0.000000,0.000000 -1289,-3.0,90.000035,0.000000,0.000000 -1290,-3.0,90.000035,0.000000,0.000000 -1291,-3.0,90.000035,0.000000,0.000000 -1292,-3.0,90.000035,0.000000,0.000000 -1293,-3.0,90.000035,0.000000,0.000000 -1294,-3.0,90.000035,0.000000,0.000000 -1295,-3.0,90.000035,0.000000,0.000000 -1296,-3.0,90.000035,0.000000,0.000000 -1297,-3.0,90.000035,0.000000,0.000000 -1298,-3.0,90.000035,0.000000,0.000000 -1299,-3.0,90.000035,0.000000,0.000000 -1300,-3.0,90.000035,0.000000,0.000000 -1301,-3.0,90.000035,0.000000,0.000000 -1302,-3.0,90.000035,0.000000,0.000000 -1303,-3.0,90.000035,0.000000,0.000000 -1304,-3.0,90.000035,0.000000,0.000000 -1305,-3.0,90.000035,0.000000,0.000000 -1306,-3.0,90.000035,0.000000,0.000000 -1307,-3.0,90.000035,0.000000,0.000000 -1308,-3.0,90.000035,0.000000,0.000000 -1309,-3.0,90.000035,0.000000,0.000000 -1310,-3.0,90.000035,0.000000,0.000000 -1311,-3.0,90.000035,0.000000,0.000000 -1312,-3.0,90.000035,0.000000,0.000000 -1313,-3.0,90.000035,0.000000,0.000000 -1314,-3.0,90.000035,0.000000,0.000000 -1315,-3.0,90.000035,0.000000,0.000000 -1316,-3.0,90.000035,0.000000,0.000000 -1317,-3.0,90.000035,0.000000,0.000000 -1318,-3.0,90.000035,0.000000,0.000000 -1319,-3.0,90.000035,0.000000,0.000000 -1320,-3.0,90.000035,0.000000,0.000000 -1321,-3.0,90.000035,0.000000,0.000000 -1322,-3.0,90.000035,0.000000,0.000000 -1323,-3.0,90.000035,0.000000,0.000000 -1324,-3.0,90.000035,0.000000,0.000000 -1325,-3.0,90.000035,0.000000,0.000000 -1326,-3.0,90.000035,0.000000,0.000000 -1327,-3.0,90.000035,0.000000,0.000000 -1328,-3.0,90.000035,0.000000,0.000000 -1329,-3.0,90.000035,0.000000,0.000000 -1330,-3.0,90.000035,0.000000,0.000000 -1331,-3.0,90.000035,0.000000,0.000000 -1332,-3.0,90.000035,0.000000,0.000000 -1333,-3.0,90.000035,0.000000,0.000000 -1334,-3.0,90.000035,0.000000,0.000000 -1335,-3.0,90.000035,0.000000,0.000000 -1336,-3.0,90.000035,0.000000,0.000000 -1337,-3.0,90.000035,0.000000,0.000000 -1338,-3.0,90.000035,0.000000,0.000000 -1339,-3.0,90.000035,0.000000,0.000000 -1340,-3.0,90.000035,0.000000,0.000000 -1341,-3.0,90.000035,0.000000,0.000000 -1342,-3.0,90.000035,0.000000,0.000000 -1343,-3.0,90.000035,0.000000,0.000000 -1344,-3.0,90.000035,0.000000,0.000000 -1345,-3.0,90.000035,0.000000,0.000000 -1346,-3.0,90.000035,0.000000,0.000000 -1347,-3.0,90.000035,0.000000,0.000000 -1348,-3.0,90.000035,0.000000,0.000000 -1349,-3.0,90.000035,0.000000,0.000000 -1350,-3.0,90.000035,0.000000,0.000000 -1351,-3.0,90.000035,0.000000,0.000000 -1352,-3.0,90.000035,0.000000,0.000000 -1353,-3.0,90.000035,0.000000,0.000000 -1354,-3.0,90.000035,0.000000,0.000000 -1355,-3.0,90.000035,0.000000,0.000000 -1356,-3.0,90.000035,0.000000,0.000000 -1357,-3.0,90.000035,0.000000,0.000000 -1358,-3.0,90.000035,0.000000,0.000000 -1359,-3.0,90.000035,0.000000,0.000000 -1360,-3.0,90.000035,0.000000,0.000000 -1361,-3.0,90.000035,0.000000,0.000000 -1362,-3.0,90.000035,0.000000,0.000000 -1363,-3.0,90.000035,0.000000,0.000000 -1364,-3.0,90.000035,0.000000,0.000000 -1365,-3.0,90.000035,0.000000,0.000000 -1366,-3.0,90.000035,0.000000,0.000000 -1367,-3.0,90.000035,0.000000,0.000000 -1368,-3.0,90.000035,0.000000,0.000000 -1369,-3.0,90.000035,0.000000,0.000000 -1370,-3.0,90.000035,0.000000,0.000000 -1371,-3.0,90.000035,0.000000,0.000000 -1372,-3.0,90.000035,0.000000,0.000000 -1373,-3.0,90.000035,0.000000,0.000000 -1374,-3.0,90.000035,0.000000,0.000000 -1375,-3.0,90.000035,0.000000,0.000000 -1376,-3.0,90.000035,0.000000,0.000000 -1377,-3.0,90.000035,0.000000,0.000000 -1378,-3.0,90.000035,0.000000,0.000000 -1379,-3.0,90.000035,0.000000,0.000000 -1380,-3.0,90.000035,0.000000,0.000000 -1381,-3.0,90.000035,0.000000,0.000000 -1382,-3.0,90.000035,0.000000,0.000000 -1383,-3.0,90.000035,0.000000,0.000000 -1384,-3.0,90.000035,0.000000,0.000000 -1385,-3.0,90.000035,0.000000,0.000000 -1386,-3.0,90.000035,0.000000,0.000000 -1387,-3.0,90.000035,0.000000,0.000000 -1388,-3.0,90.000035,0.000000,0.000000 -1389,-3.0,90.000035,0.000000,0.000000 -1390,-3.0,90.000035,0.000000,0.000000 -1391,-3.0,90.000035,0.000000,0.000000 -1392,-3.0,90.000035,0.000000,0.000000 -1393,-3.0,90.000035,0.000000,0.000000 -1394,-3.0,90.000035,0.000000,0.000000 -1395,-3.0,90.000035,0.000000,0.000000 -1396,-3.0,90.000035,0.000000,0.000000 -1397,-3.0,90.000035,0.000000,0.000000 -1398,-3.0,90.000035,0.000000,0.000000 -1399,-3.0,90.000035,0.000000,0.000000 -1400,-3.0,90.000035,0.000000,0.000000 -1401,-3.0,90.000035,0.000000,0.000000 -1402,-3.0,90.000035,0.000000,0.000000 -1403,-3.0,90.000035,0.000000,0.000000 -1404,-3.0,90.000035,0.000000,0.000000 -1405,-3.0,90.000035,0.000000,0.000000 -1406,-3.0,90.000035,0.000000,0.000000 -1407,-3.0,90.000035,0.000000,0.000000 -1408,-3.0,90.000035,0.000000,0.000000 -1409,-3.0,90.000035,0.000000,0.000000 -1410,-3.0,90.000035,0.000000,0.000000 -1411,-3.0,90.000035,0.000000,0.000000 -1412,-3.0,90.000035,0.000000,0.000000 -1413,-3.0,90.000035,0.000000,0.000000 -1414,-3.0,90.000035,0.000000,0.000000 -1415,-3.0,90.000035,0.000000,0.000000 -1416,-3.0,90.000035,0.000000,0.000000 -1417,-3.0,90.000035,0.000000,0.000000 -1418,-3.0,90.000035,0.000000,0.000000 -1419,-3.0,90.000035,0.000000,0.000000 -1420,-3.0,90.000035,0.000000,0.000000 -1421,-3.0,90.000035,0.000000,0.000000 -1422,-3.0,90.000035,0.000000,0.000000 -1423,-3.0,90.000035,0.000000,0.000000 -1424,-3.0,90.000035,0.000000,0.000000 -1425,-3.0,90.000035,0.000000,0.000000 -1426,-3.0,90.000035,0.000000,0.000000 -1427,-3.0,90.000035,0.000000,0.000000 -1428,-3.0,90.000035,0.000000,0.000000 -1429,-3.0,90.000035,0.000000,0.000000 -1430,-3.0,90.000035,0.000000,0.000000 -1431,-3.0,90.000035,0.000000,0.000000 -1432,-3.0,90.000035,0.000000,0.000000 -1433,-3.0,90.000035,0.000000,0.000000 -1434,-3.0,90.000035,0.000000,0.000000 -1435,-3.0,90.000035,0.000000,0.000000 -1436,-3.0,90.000035,0.000000,0.000000 -1437,-3.0,90.000035,0.000000,0.000000 -1438,-3.0,90.000035,0.000000,0.000000 -1439,-3.0,90.000035,0.000000,0.000000 -1440,-3.0,90.000035,0.000000,0.000000 -1441,-3.0,90.000035,0.000000,0.000000 -1442,-3.0,90.000035,0.000000,0.000000 -1443,-3.0,90.000035,0.000000,0.000000 -1444,-3.0,90.000035,0.000000,0.000000 -1445,-3.0,90.000035,0.000000,0.000000 -1446,-3.0,90.000035,0.000000,0.000000 -1447,-3.0,90.000035,0.000000,0.000000 -1448,-3.0,90.000035,0.000000,0.000000 -1449,-3.0,90.000035,0.000000,0.000000 -1450,-3.0,90.000035,0.000000,0.000000 -1451,-3.0,90.000035,0.000000,0.000000 -1452,-3.0,90.000035,0.000000,0.000000 -1453,-3.0,90.000035,0.000000,0.000000 -1454,-3.0,90.000035,0.000000,0.000000 -1455,-3.0,90.000035,0.000000,0.000000 -1456,-3.0,90.000035,0.000000,0.000000 -1457,-3.0,90.000035,0.000000,0.000000 -1458,-3.0,90.000035,0.000000,0.000000 -1459,-3.0,90.000035,0.000000,0.000000 -1460,-3.0,90.000035,0.000000,0.000000 -1461,-3.0,90.000035,0.000000,0.000000 -1462,-3.0,90.000035,0.000000,0.000000 -1463,-3.0,90.000035,0.000000,0.000000 -1464,-3.0,90.000035,0.000000,0.000000 -1465,-3.0,90.000035,0.000000,0.000000 -1466,-3.0,90.000035,0.000000,0.000000 -1467,-3.0,90.000035,0.000000,0.000000 -1468,-3.0,90.000035,0.000000,0.000000 -1469,-3.0,90.000035,0.000000,0.000000 -1470,-3.0,90.000035,0.000000,0.000000 -1471,-3.0,90.000035,0.000000,0.000000 -1472,-3.0,90.000035,0.000000,0.000000 -1473,-3.0,90.000035,0.000000,0.000000 -1474,-3.0,90.000035,0.000000,0.000000 -1475,-3.0,90.000035,0.000000,0.000000 -1476,-3.0,90.000035,0.000000,0.000000 -1477,-3.0,90.000035,0.000000,0.000000 -1478,-3.0,90.000035,0.000000,0.000000 -1479,-3.0,90.000035,0.000000,0.000000 -1480,-3.0,90.000035,0.000000,0.000000 -1481,-3.0,90.000035,0.000000,0.000000 -1482,-3.0,90.000035,0.000000,0.000000 -1483,-3.0,90.000035,0.000000,0.000000 -1484,-3.0,90.000035,0.000000,0.000000 -1485,-3.0,90.000035,0.000000,0.000000 -1486,-3.0,90.000035,0.000000,0.000000 -1487,-3.0,90.000035,0.000000,0.000000 -1488,-3.0,90.000035,0.000000,0.000000 -1489,-3.0,90.000035,0.000000,0.000000 -1490,-3.0,90.000035,0.000000,0.000000 -1491,-3.0,90.000035,0.000000,0.000000 -1492,-3.0,90.000035,0.000000,0.000000 -1493,-3.0,90.000035,0.000000,0.000000 -1494,-3.0,90.000035,0.000000,0.000000 -1495,-3.0,90.000035,0.000000,0.000000 -1496,-3.0,90.000035,0.000000,0.000000 -1497,-3.0,90.000035,0.000000,0.000000 -1498,-3.0,90.000035,0.000000,0.000000 -1499,-3.0,90.000035,0.000000,0.000000 -1500,-3.0,90.000035,0.000000,0.000000 -1501,-3.0,90.000035,0.000000,0.000000 -1502,-3.0,90.000035,0.000000,0.000000 -1503,-3.0,90.000035,0.000000,0.000000 -1504,-3.0,90.000035,0.000000,0.000000 -1505,-3.0,90.000035,0.000000,0.000000 -1506,-3.0,90.000035,0.000000,0.000000 -1507,-3.0,90.000035,0.000000,0.000000 -1508,-3.0,90.000035,0.000000,0.000000 -1509,-3.0,90.000035,0.000000,0.000000 -1510,-3.0,90.000035,0.000000,0.000000 -1511,-3.0,90.000035,0.000000,0.000000 -1512,-3.0,90.000035,0.000000,0.000000 -1513,-3.0,90.000035,0.000000,0.000000 -1514,-3.0,90.000035,0.000000,0.000000 -1515,-3.0,90.000035,0.000000,0.000000 -1516,-3.0,90.000035,0.000000,0.000000 -1517,-3.0,90.000035,0.000000,0.000000 -1518,-3.0,90.000035,0.000000,0.000000 -1519,-3.0,90.000035,0.000000,0.000000 -1520,-3.0,90.000035,0.000000,0.000000 -1521,-3.0,90.000035,0.000000,0.000000 -1522,-3.0,90.000035,0.000000,0.000000 -1523,-3.0,90.000035,0.000000,0.000000 -1524,-3.0,90.000035,0.000000,0.000000 -1525,-3.0,90.000035,0.000000,0.000000 -1526,-3.0,90.000035,0.000000,0.000000 -1527,-3.0,90.000035,0.000000,0.000000 -1528,-3.0,90.000035,0.000000,0.000000 -1529,-3.0,90.000035,0.000000,0.000000 -1530,-3.0,90.000035,0.000000,0.000000 -1531,-3.0,90.000035,0.000000,0.000000 -1532,-3.0,90.000035,0.000000,0.000000 -1533,-3.0,90.000035,0.000000,0.000000 -1534,-3.0,90.000035,0.000000,0.000000 -1535,-3.0,90.000035,0.000000,0.000000 -1536,-3.0,90.000035,0.000000,0.000000 -1537,-3.0,90.000035,0.000000,0.000000 -1538,-3.0,90.000035,0.000000,0.000000 -1539,-3.0,90.000035,0.000000,0.000000 -1540,-3.0,90.000035,0.000000,0.000000 -1541,-3.0,90.000035,0.000000,0.000000 -1542,-3.0,90.000035,0.000000,0.000000 -1543,-3.0,90.000035,0.000000,0.000000 -1544,-3.0,90.000035,0.000000,0.000000 -1545,-3.0,90.000035,0.000000,0.000000 -1546,-3.0,90.000035,0.000000,0.000000 -1547,-3.0,90.000035,0.000000,0.000000 -1548,-3.0,90.000035,0.000000,0.000000 -1549,-3.0,90.000035,0.000000,0.000000 -1550,-3.0,90.000035,0.000000,0.000000 -1551,-3.0,90.000035,0.000000,0.000000 -1552,-3.0,90.000035,0.000000,0.000000 -1553,-3.0,90.000035,0.000000,0.000000 -1554,-3.0,90.000035,0.000000,0.000000 -1555,-3.0,90.000035,0.000000,0.000000 -1556,-3.0,90.000035,0.000000,0.000000 -1557,-3.0,90.000035,0.000000,0.000000 -1558,-3.0,90.000035,0.000000,0.000000 -1559,-3.0,90.000035,0.000000,0.000000 -1560,-3.0,90.000035,0.000000,0.000000 -1561,-3.0,90.000035,0.000000,0.000000 -1562,-3.0,90.000035,0.000000,0.000000 -1563,-3.0,90.000035,0.000000,0.000000 -1564,-3.0,90.000035,0.000000,0.000000 -1565,-3.0,90.000035,0.000000,0.000000 -1566,-3.0,90.000035,0.000000,0.000000 -1567,-3.0,90.000035,0.000000,0.000000 -1568,-3.0,90.000035,0.000000,0.000000 -1569,-3.0,90.000035,0.000000,0.000000 -1570,-3.0,90.000035,0.000000,0.000000 -1571,-3.0,90.000035,0.000000,0.000000 -1572,-3.0,90.000035,0.000000,0.000000 -1573,-3.0,90.000035,0.000000,0.000000 -1574,-3.0,90.000035,0.000000,0.000000 -1575,-3.0,90.000035,0.000000,0.000000 -1576,-3.0,90.000035,0.000000,0.000000 -1577,-3.0,90.000035,0.000000,0.000000 -1578,-3.0,90.000035,0.000000,0.000000 -1579,-3.0,90.000035,0.000000,0.000000 -1580,-3.0,90.000035,0.000000,0.000000 -1581,-3.0,90.000035,0.000000,0.000000 -1582,-3.0,90.000035,0.000000,0.000000 -1583,-3.0,90.000035,0.000000,0.000000 -1584,-3.0,90.000035,0.000000,0.000000 -1585,-3.0,90.000035,0.000000,0.000000 -1586,-3.0,90.000035,0.000000,0.000000 -1587,-3.0,90.000035,0.000000,0.000000 -1588,-3.0,90.000035,0.000000,0.000000 -1589,-3.0,90.000035,0.000000,0.000000 -1590,-3.0,90.000035,0.000000,0.000000 -1591,-3.0,90.000035,0.000000,0.000000 -1592,-3.0,90.000035,0.000000,0.000000 -1593,-3.0,90.000035,0.000000,0.000000 -1594,-3.0,90.000035,0.000000,0.000000 -1595,-3.0,90.000035,0.000000,0.000000 -1596,-3.0,90.000035,0.000000,0.000000 -1597,-3.0,90.000035,0.000000,0.000000 -1598,-3.0,90.000035,0.000000,0.000000 -1599,-3.0,90.000035,0.000000,0.000000 -1600,-3.0,90.000035,0.000000,0.000000 -1601,-3.0,90.000035,0.000000,0.000000 -1602,-3.0,90.000035,0.000000,0.000000 -1603,-3.0,90.000035,0.000000,0.000000 -1604,-3.0,90.000035,0.000000,0.000000 -1605,-3.0,90.000035,0.000000,0.000000 -1606,-3.0,90.000035,0.000000,0.000000 -1607,-3.0,90.000035,0.000000,0.000000 -1608,-3.0,90.000035,0.000000,0.000000 -1609,-3.0,90.000035,0.000000,0.000000 -1610,-3.0,90.000035,0.000000,0.000000 -1611,-3.0,90.000035,0.000000,0.000000 -1612,-3.0,90.000035,0.000000,0.000000 -1613,-3.0,90.000035,0.000000,0.000000 -1614,-3.0,90.000035,0.000000,0.000000 -1615,-3.0,90.000035,0.000000,0.000000 -1616,-3.0,90.000035,0.000000,0.000000 -1617,-3.0,90.000035,0.000000,0.000000 -1618,-3.0,90.000035,0.000000,0.000000 -1619,-3.0,90.000035,0.000000,0.000000 -1620,-3.0,90.000035,0.000000,0.000000 -1621,-3.0,90.000035,0.000000,0.000000 -1622,-3.0,90.000035,0.000000,0.000000 -1623,-3.0,90.000035,0.000000,0.000000 -1624,-3.0,90.000035,0.000000,0.000000 -1625,-3.0,90.000035,0.000000,0.000000 -1626,-3.0,90.000035,0.000000,0.000000 -1627,-3.0,90.000035,0.000000,0.000000 -1628,-3.0,90.000035,0.000000,0.000000 -1629,-3.0,90.000035,0.000000,0.000000 -1630,-3.0,90.000035,0.000000,0.000000 -1631,-3.0,90.000035,0.000000,0.000000 -1632,-3.0,90.000035,0.000000,0.000000 -1633,-3.0,90.000035,0.000000,0.000000 -1634,-3.0,90.000035,0.000000,0.000000 -1635,-3.0,90.000035,0.000000,0.000000 -1636,-3.0,90.000035,0.000000,0.000000 -1637,-3.0,90.000035,0.000000,0.000000 -1638,-3.0,90.000035,0.000000,0.000000 -1639,-3.0,90.000035,0.000000,0.000000 -1640,-3.0,90.000035,0.000000,0.000000 -1641,-3.0,90.000035,0.000000,0.000000 -1642,-3.0,90.000035,0.000000,0.000000 -1643,-3.0,90.000035,0.000000,0.000000 -1644,-3.0,90.000035,0.000000,0.000000 -1645,-3.0,90.000035,0.000000,0.000000 -1646,-3.0,90.000035,0.000000,0.000000 -1647,-3.0,90.000035,0.000000,0.000000 -1648,-3.0,90.000035,0.000000,0.000000 -1649,-3.0,90.000035,0.000000,0.000000 -1650,-3.0,90.000035,0.000000,0.000000 -1651,-3.0,90.000035,0.000000,0.000000 -1652,-3.0,90.000035,0.000000,0.000000 -1653,-3.0,90.000035,0.000000,0.000000 -1654,-3.0,90.000035,0.000000,0.000000 -1655,-3.0,90.000035,0.000000,0.000000 -1656,-3.0,90.000035,0.000000,0.000000 -1657,-3.0,90.000035,0.000000,0.000000 -1658,-3.0,90.000035,0.000000,0.000000 -1659,-3.0,90.000035,0.000000,0.000000 -1660,-3.0,90.000035,0.000000,0.000000 -1661,-3.0,90.000035,0.000000,0.000000 -1662,-3.0,90.000035,0.000000,0.000000 -1663,-3.0,90.000035,0.000000,0.000000 -1664,-3.0,90.000035,0.000000,0.000000 -1665,-3.0,90.000035,0.000000,0.000000 -1666,-3.0,90.000035,0.000000,0.000000 -1667,-3.0,90.000035,0.000000,0.000000 -1668,-3.0,90.000035,0.000000,0.000000 -1669,-3.0,90.000035,0.000000,0.000000 -1670,-3.0,90.000035,0.000000,0.000000 -1671,-3.0,90.000035,0.000000,0.000000 -1672,-3.0,90.000035,0.000000,0.000000 -1673,-3.0,90.000035,0.000000,0.000000 -1674,-3.0,90.000035,0.000000,0.000000 -1675,-3.0,90.000035,0.000000,0.000000 -1676,-3.0,90.000035,0.000000,0.000000 -1677,-3.0,90.000035,0.000000,0.000000 -1678,-3.0,90.000035,0.000000,0.000000 -1679,-3.0,90.000035,0.000000,0.000000 -1680,-3.0,90.000035,0.000000,0.000000 -1681,-3.0,90.000035,0.000000,0.000000 -1682,-3.0,90.000035,0.000000,0.000000 -1683,-3.0,90.000035,0.000000,0.000000 -1684,-3.0,90.000035,0.000000,0.000000 -1685,-3.0,90.000035,0.000000,0.000000 -1686,-3.0,90.000035,0.000000,0.000000 -1687,-3.0,90.000035,0.000000,0.000000 -1688,-3.0,90.000035,0.000000,0.000000 -1689,-3.0,90.000035,0.000000,0.000000 -1690,-3.0,90.000035,0.000000,0.000000 -1691,-3.0,90.000035,0.000000,0.000000 -1692,-3.0,90.000035,0.000000,0.000000 -1693,-3.0,90.000035,0.000000,0.000000 -1694,-3.0,90.000035,0.000000,0.000000 -1695,-3.0,90.000035,0.000000,0.000000 -1696,-3.0,90.000035,0.000000,0.000000 -1697,-3.0,90.000035,0.000000,0.000000 -1698,-3.0,90.000035,0.000000,0.000000 -1699,-3.0,90.000035,0.000000,0.000000 -1700,-3.0,90.000035,0.000000,0.000000 -1701,-3.0,90.000035,0.000000,0.000000 -1702,-3.0,90.000035,0.000000,0.000000 -1703,-3.0,90.000035,0.000000,0.000000 -1704,-3.0,90.000035,0.000000,0.000000 -1705,-3.0,90.000035,0.000000,0.000000 -1706,-3.0,90.000035,0.000000,0.000000 -1707,-3.0,90.000035,0.000000,0.000000 -1708,-3.0,90.000035,0.000000,0.000000 -1709,-3.0,90.000035,0.000000,0.000000 -1710,-3.0,90.000035,0.000000,0.000000 -1711,-3.0,90.000035,0.000000,0.000000 -1712,-3.0,90.000035,0.000000,0.000000 -1713,-3.0,90.000035,0.000000,0.000000 -1714,-3.0,90.000035,0.000000,0.000000 -1715,-3.0,90.000035,0.000000,0.000000 -1716,-3.0,90.000035,0.000000,0.000000 -1717,-3.0,90.000035,0.000000,0.000000 -1718,-3.0,90.000035,0.000000,0.000000 -1719,-3.0,90.000035,0.000000,0.000000 -1720,-3.0,90.000035,0.000000,0.000000 -1721,-3.0,90.000035,0.000000,0.000000 -1722,-3.0,90.000035,0.000000,0.000000 -1723,-3.0,90.000035,0.000000,0.000000 -1724,-3.0,90.000035,0.000000,0.000000 -1725,-3.0,90.000035,0.000000,0.000000 -1726,-3.0,90.000035,0.000000,0.000000 -1727,-3.0,90.000035,0.000000,0.000000 -1728,-3.0,90.000035,0.000000,0.000000 -1729,-3.0,90.000035,0.000000,0.000000 -1730,-3.0,90.000035,0.000000,0.000000 -1731,-3.0,90.000035,0.000000,0.000000 -1732,-3.0,90.000035,0.000000,0.000000 -1733,-3.0,90.000035,0.000000,0.000000 -1734,-3.0,90.000035,0.000000,0.000000 -1735,-3.0,90.000035,0.000000,0.000000 -1736,-3.0,90.000035,0.000000,0.000000 -1737,-3.0,90.000035,0.000000,0.000000 -1738,-3.0,90.000035,0.000000,0.000000 -1739,-3.0,90.000035,0.000000,0.000000 -1740,-3.0,90.000035,0.000000,0.000000 -1741,-3.0,90.000035,0.000000,0.000000 -1742,-3.0,90.000035,0.000000,0.000000 -1743,-3.0,90.000035,0.000000,0.000000 -1744,-3.0,90.000035,0.000000,0.000000 -1745,-3.0,90.000035,0.000000,0.000000 -1746,-3.0,90.000035,0.000000,0.000000 -1747,-3.0,90.000035,0.000000,0.000000 -1748,-3.0,90.000035,0.000000,0.000000 -1749,-3.0,90.000035,0.000000,0.000000 -1750,-3.0,90.000035,0.000000,0.000000 -1751,-3.0,90.000035,0.000000,0.000000 -1752,-3.0,90.000035,0.000000,0.000000 -1753,-3.0,90.000035,0.000000,0.000000 -1754,-3.0,90.000035,0.000000,0.000000 -1755,-3.0,90.000035,0.000000,0.000000 -1756,-3.0,90.000035,0.000000,0.000000 -1757,-3.0,90.000035,0.000000,0.000000 -1758,-3.0,90.000035,0.000000,0.000000 -1759,-3.0,90.000035,0.000000,0.000000 -1760,-3.0,90.000035,0.000000,0.000000 -1761,-3.0,90.000035,0.000000,0.000000 -1762,-3.0,90.000035,0.000000,0.000000 -1763,-3.0,90.000035,0.000000,0.000000 -1764,-3.0,90.000035,0.000000,0.000000 -1765,-3.0,90.000035,0.000000,0.000000 -1766,-3.0,90.000035,0.000000,0.000000 -1767,-3.0,90.000035,0.000000,0.000000 -1768,-3.0,90.000035,0.000000,0.000000 -1769,-3.0,90.000035,0.000000,0.000000 -1770,-3.0,90.000035,0.000000,0.000000 -1771,-3.0,90.000035,0.000000,0.000000 -1772,-3.0,90.000035,0.000000,0.000000 -1773,-3.0,90.000035,0.000000,0.000000 -1774,-3.0,90.000035,0.000000,0.000000 -1775,-3.0,90.000035,0.000000,0.000000 -1776,-3.0,90.000035,0.000000,0.000000 -1777,-3.0,90.000035,0.000000,0.000000 -1778,-3.0,90.000035,0.000000,0.000000 -1779,-3.0,90.000035,0.000000,0.000000 -1780,-3.0,90.000035,0.000000,0.000000 -1781,-3.0,90.000035,0.000000,0.000000 -1782,-3.0,90.000035,0.000000,0.000000 -1783,-3.0,90.000035,0.000000,0.000000 -1784,-3.0,90.000035,0.000000,0.000000 -1785,-3.0,90.000035,0.000000,0.000000 -1786,-3.0,90.000035,0.000000,0.000000 -1787,-3.0,90.000035,0.000000,0.000000 -1788,-3.0,90.000035,0.000000,0.000000 -1789,-3.0,90.000035,0.000000,0.000000 -1790,-3.0,90.000035,0.000000,0.000000 -1791,-3.0,90.000035,0.000000,0.000000 -1792,-3.0,90.000035,0.000000,0.000000 -1793,-3.0,90.000035,0.000000,0.000000 -1794,-3.0,90.000035,0.000000,0.000000 -1795,-3.0,90.000035,0.000000,0.000000 -1796,-3.0,90.000035,0.000000,0.000000 -1797,-3.0,90.000035,0.000000,0.000000 -1798,-3.0,90.000035,0.000000,0.000000 -1799,-3.0,90.000035,0.000000,0.000000 -1800,-3.0,90.000035,0.000000,0.000000 -1801,-3.0,90.000035,0.000000,0.000000 -1802,-3.0,90.000035,0.000000,0.000000 -1803,-3.0,90.000035,0.000000,0.000000 -1804,-3.0,90.000035,0.000000,0.000000 -1805,-3.0,90.000035,0.000000,0.000000 -1806,-3.0,90.000035,0.000000,0.000000 -1807,-3.0,90.000035,0.000000,0.000000 -1808,-3.0,90.000035,0.000000,0.000000 -1809,-3.0,90.000035,0.000000,0.000000 -1810,-3.0,90.000035,0.000000,0.000000 -1811,-3.0,90.000035,0.000000,0.000000 -1812,-3.0,90.000035,0.000000,0.000000 -1813,-3.0,90.000035,0.000000,0.000000 -1814,-3.0,90.000035,0.000000,0.000000 -1815,-3.0,90.000035,0.000000,0.000000 -1816,-3.0,90.000035,0.000000,0.000000 -1817,-3.0,90.000035,0.000000,0.000000 -1818,-3.0,90.000035,0.000000,0.000000 -1819,-3.0,90.000035,0.000000,0.000000 -1820,-3.0,90.000035,0.000000,0.000000 -1821,-3.0,90.000035,0.000000,0.000000 -1822,-3.0,90.000035,0.000000,0.000000 -1823,-3.0,90.000035,0.000000,0.000000 -1824,-3.0,90.000035,0.000000,0.000000 -1825,-3.0,90.000035,0.000000,0.000000 -1826,-3.0,90.000035,0.000000,0.000000 -1827,-3.0,90.000035,0.000000,0.000000 -1828,-3.0,90.000035,0.000000,0.000000 -1829,-3.0,90.000035,0.000000,0.000000 -1830,-3.0,90.000035,0.000000,0.000000 -1831,-3.0,90.000035,0.000000,0.000000 -1832,-3.0,90.000035,0.000000,0.000000 -1833,-3.0,90.000035,0.000000,0.000000 -1834,-3.0,90.000035,0.000000,0.000000 -1835,-3.0,90.000035,0.000000,0.000000 -1836,-3.0,90.000035,0.000000,0.000000 -1837,-3.0,90.000035,0.000000,0.000000 -1838,-3.0,90.000035,0.000000,0.000000 -1839,-3.0,90.000035,0.000000,0.000000 -1840,-3.0,90.000035,0.000000,0.000000 -1841,-3.0,90.000035,0.000000,0.000000 -1842,-3.0,90.000035,0.000000,0.000000 -1843,-3.0,90.000035,0.000000,0.000000 -1844,-3.0,90.000035,0.000000,0.000000 -1845,-3.0,90.000035,0.000000,0.000000 -1846,-3.0,90.000035,0.000000,0.000000 -1847,-3.0,90.000035,0.000000,0.000000 -1848,-3.0,90.000035,0.000000,0.000000 -1849,-3.0,90.000035,0.000000,0.000000 -1850,-3.0,90.000035,0.000000,0.000000 -1851,-3.0,90.000035,0.000000,0.000000 -1852,-3.0,90.000035,0.000000,0.000000 -1853,-3.0,90.000035,0.000000,0.000000 -1854,-3.0,90.000035,0.000000,0.000000 -1855,-3.0,90.000035,0.000000,0.000000 -1856,-3.0,90.000035,0.000000,0.000000 -1857,-3.0,90.000035,0.000000,0.000000 -1858,-3.0,90.000035,0.000000,0.000000 -1859,-3.0,90.000035,0.000000,0.000000 -1860,-3.0,90.000035,0.000000,0.000000 -1861,-3.0,90.000035,0.000000,0.000000 -1862,-3.0,90.000035,0.000000,0.000000 -1863,-3.0,90.000035,0.000000,0.000000 -1864,-3.0,90.000035,0.000000,0.000000 -1865,-3.0,90.000035,0.000000,0.000000 -1866,-3.0,90.000035,0.000000,0.000000 -1867,-3.0,90.000035,0.000000,0.000000 -1868,-3.0,90.000035,0.000000,0.000000 -1869,-3.0,90.000035,0.000000,0.000000 -1870,-3.0,90.000035,0.000000,0.000000 -1871,-3.0,90.000035,0.000000,0.000000 -1872,-3.0,90.000035,0.000000,0.000000 -1873,-3.0,90.000035,0.000000,0.000000 -1874,-3.0,90.000035,0.000000,0.000000 -1875,-3.0,90.000035,0.000000,0.000000 -1876,-3.0,90.000035,0.000000,0.000000 -1877,-3.0,90.000035,0.000000,0.000000 -1878,-3.0,90.000035,0.000000,0.000000 -1879,-3.0,90.000035,0.000000,0.000000 -1880,-3.0,90.000035,0.000000,0.000000 -1881,-3.0,90.000035,0.000000,0.000000 -1882,-3.0,90.000035,0.000000,0.000000 -1883,-3.0,90.000035,0.000000,0.000000 -1884,-3.0,90.000035,0.000000,0.000000 -1885,-3.0,90.000035,0.000000,0.000000 -1886,-3.0,90.000035,0.000000,0.000000 -1887,-3.0,90.000035,0.000000,0.000000 -1888,-3.0,90.000035,0.000000,0.000000 -1889,-3.0,90.000035,0.000000,0.000000 -1890,-3.0,90.000035,0.000000,0.000000 -1891,-3.0,90.000035,0.000000,0.000000 -1892,-3.0,90.000035,0.000000,0.000000 -1893,-3.0,90.000035,0.000000,0.000000 -1894,-3.0,90.000035,0.000000,0.000000 -1895,-3.0,90.000035,0.000000,0.000000 -1896,-3.0,90.000035,0.000000,0.000000 -1897,-3.0,90.000035,0.000000,0.000000 -1898,-3.0,90.000035,0.000000,0.000000 -1899,-3.0,90.000035,0.000000,0.000000 -1900,-3.0,90.000035,0.000000,0.000000 -1901,-3.0,90.000035,0.000000,0.000000 -1902,-3.0,90.000035,0.000000,0.000000 -1903,-3.0,90.000035,0.000000,0.000000 -1904,-3.0,90.000035,0.000000,0.000000 -1905,-3.0,90.000035,0.000000,0.000000 -1906,-3.0,90.000035,0.000000,0.000000 -1907,-3.0,90.000035,0.000000,0.000000 -1908,-3.0,90.000035,0.000000,0.000000 -1909,-3.0,90.000035,0.000000,0.000000 -1910,-3.0,90.000035,0.000000,0.000000 -1911,-3.0,90.000035,0.000000,0.000000 -1912,-3.0,90.000035,0.000000,0.000000 -1913,-3.0,90.000035,0.000000,0.000000 -1914,-3.0,90.000035,0.000000,0.000000 -1915,-3.0,90.000035,0.000000,0.000000 -1916,-3.0,90.000035,0.000000,0.000000 -1917,-3.0,90.000035,0.000000,0.000000 -1918,-3.0,90.000035,0.000000,0.000000 -1919,-3.0,90.000035,0.000000,0.000000 -1920,-3.0,90.000035,0.000000,0.000000 -1921,-3.0,90.000035,0.000000,0.000000 -1922,-3.0,90.000035,0.000000,0.000000 -1923,-3.0,90.000035,0.000000,0.000000 -1924,-3.0,90.000035,0.000000,0.000000 -1925,-3.0,90.000035,0.000000,0.000000 -1926,-3.0,90.000035,0.000000,0.000000 -1927,-3.0,90.000035,0.000000,0.000000 -1928,-3.0,90.000035,0.000000,0.000000 -1929,-3.0,90.000035,0.000000,0.000000 -1930,-3.0,90.000035,0.000000,0.000000 -1931,-3.0,90.000035,0.000000,0.000000 -1932,-3.0,90.000035,0.000000,0.000000 -1933,-3.0,90.000035,0.000000,0.000000 -1934,-3.0,90.000035,0.000000,0.000000 -1935,-3.0,90.000035,0.000000,0.000000 -1936,-3.0,90.000035,0.000000,0.000000 -1937,-3.0,90.000035,0.000000,0.000000 -1938,-3.0,90.000035,0.000000,0.000000 -1939,-3.0,90.000035,0.000000,0.000000 -1940,-3.0,90.000035,0.000000,0.000000 -1941,-3.0,90.000035,0.000000,0.000000 -1942,-3.0,90.000035,0.000000,0.000000 -1943,-3.0,90.000035,0.000000,0.000000 -1944,-3.0,90.000035,0.000000,0.000000 -1945,-3.0,90.000035,0.000000,0.000000 -1946,-3.0,90.000035,0.000000,0.000000 -1947,-3.0,90.000035,0.000000,0.000000 -1948,-3.0,90.000035,0.000000,0.000000 -1949,-3.0,90.000035,0.000000,0.000000 -1950,-3.0,90.000035,0.000000,0.000000 -1951,-3.0,90.000035,0.000000,0.000000 -1952,-3.0,90.000035,0.000000,0.000000 -1953,-3.0,90.000035,0.000000,0.000000 -1954,-3.0,90.000035,0.000000,0.000000 -1955,-3.0,90.000035,0.000000,0.000000 -1956,-3.0,90.000035,0.000000,0.000000 -1957,-3.0,90.000035,0.000000,0.000000 -1958,-3.0,90.000035,0.000000,0.000000 -1959,-3.0,90.000035,0.000000,0.000000 -1960,-3.0,90.000035,0.000000,0.000000 -1961,-3.0,90.000035,0.000000,0.000000 -1962,-3.0,90.000035,0.000000,0.000000 -1963,-3.0,90.000035,0.000000,0.000000 -1964,-3.0,90.000035,0.000000,0.000000 -1965,-3.0,90.000035,0.000000,0.000000 -1966,-3.0,90.000035,0.000000,0.000000 -1967,-3.0,90.000035,0.000000,0.000000 -1968,-3.0,90.000035,0.000000,0.000000 -1969,-3.0,90.000035,0.000000,0.000000 -1970,-3.0,90.000035,0.000000,0.000000 -1971,-3.0,90.000035,0.000000,0.000000 -1972,-3.0,90.000035,0.000000,0.000000 -1973,-3.0,90.000035,0.000000,0.000000 -1974,-3.0,90.000035,0.000000,0.000000 -1975,-3.0,90.000035,0.000000,0.000000 -1976,-3.0,90.000035,0.000000,0.000000 -1977,-3.0,90.000035,0.000000,0.000000 -1978,-3.0,90.000035,0.000000,0.000000 -1979,-3.0,90.000035,0.000000,0.000000 -1980,-3.0,90.000035,0.000000,0.000000 -1981,-3.0,90.000035,0.000000,0.000000 -1982,-3.0,90.000035,0.000000,0.000000 -1983,-3.0,90.000035,0.000000,0.000000 -1984,-3.0,90.000035,0.000000,0.000000 -1985,-3.0,90.000035,0.000000,0.000000 -1986,-3.0,90.000035,0.000000,0.000000 -1987,-3.0,90.000035,0.000000,0.000000 -1988,-3.0,90.000035,0.000000,0.000000 -1989,-3.0,90.000035,0.000000,0.000000 -1990,-3.0,90.000035,0.000000,0.000000 -1991,-3.0,90.000035,0.000000,0.000000 -1992,-3.0,90.000035,0.000000,0.000000 -1993,-3.0,90.000035,0.000000,0.000000 -1994,-3.0,90.000035,0.000000,0.000000 -1995,-3.0,90.000035,0.000000,0.000000 -1996,-3.0,90.000035,0.000000,0.000000 -1997,-3.0,90.000035,0.000000,0.000000 -1998,-3.0,90.000035,0.000000,0.000000 -1999,-3.0,90.000035,0.000000,0.000000 -2000,-3.0,90.000035,0.000000,0.000000 -2001,-3.0,90.000035,0.000000,0.000000 -2002,-3.0,90.000035,0.000000,0.000000 -2003,-3.0,90.000035,0.000000,0.000000 -2004,-3.0,90.000035,0.000000,0.000000 -2005,-3.0,90.000035,0.000000,0.000000 -2006,-3.0,90.000035,0.000000,0.000000 -2007,-3.0,90.000035,0.000000,0.000000 -2008,-3.0,90.000035,0.000000,0.000000 -2009,-3.0,90.000035,0.000000,0.000000 -2010,-3.0,90.000035,0.000000,0.000000 -2011,-3.0,90.000035,0.000000,0.000000 -2012,-3.0,90.000035,0.000000,0.000000 -2013,-3.0,90.000035,0.000000,0.000000 -2014,-3.0,90.000035,0.000000,0.000000 -2015,-3.0,90.000035,0.000000,0.000000 -2016,-3.0,90.000035,0.000000,0.000000 -2017,-3.0,90.000035,0.000000,0.000000 -2018,-3.0,90.000035,0.000000,0.000000 -2019,-3.0,90.000035,0.000000,0.000000 -2020,-3.0,90.000035,0.000000,0.000000 -2021,-3.0,90.000035,0.000000,0.000000 -2022,-3.0,90.000035,0.000000,0.000000 -2023,-3.0,90.000035,0.000000,0.000000 -2024,-3.0,90.000035,0.000000,0.000000 -2025,-3.0,90.000035,0.000000,0.000000 -2026,-3.0,90.000035,0.000000,0.000000 -2027,-3.0,90.000035,0.000000,0.000000 -2028,-3.0,90.000035,0.000000,0.000000 -2029,-3.0,90.000035,0.000000,0.000000 -2030,-3.0,90.000035,0.000000,0.000000 -2031,-3.0,90.000035,0.000000,0.000000 -2032,-3.0,90.000035,0.000000,0.000000 -2033,-3.0,90.000035,0.000000,0.000000 -2034,-3.0,90.000035,0.000000,0.000000 -2035,-3.0,90.000035,0.000000,0.000000 -2036,-3.0,90.000035,0.000000,0.000000 -2037,-3.0,90.000035,0.000000,0.000000 -2038,-3.0,90.000035,0.000000,0.000000 -2039,-3.0,90.000035,0.000000,0.000000 -2040,-3.0,90.000035,0.000000,0.000000 -2041,-3.0,90.000035,0.000000,0.000000 -2042,-3.0,90.000035,0.000000,0.000000 -2043,-3.0,90.000035,0.000000,0.000000 -2044,-3.0,90.000035,0.000000,0.000000 -2045,-3.0,90.000035,0.000000,0.000000 -2046,-3.0,90.000035,0.000000,0.000000 -2047,-3.0,90.000035,0.000000,0.000000 -2048,-3.0,90.000035,0.000000,0.000000 -2049,-3.0,90.000035,0.000000,0.000000 -2050,-3.0,90.000035,0.000000,0.000000 -2051,-3.0,90.000035,0.000000,0.000000 -2052,-3.0,90.000035,0.000000,0.000000 -2053,-3.0,90.000035,0.000000,0.000000 -2054,-3.0,90.000035,0.000000,0.000000 -2055,-3.0,90.000035,0.000000,0.000000 -2056,-3.0,90.000035,0.000000,0.000000 -2057,-3.0,90.000035,0.000000,0.000000 -2058,-3.0,90.000035,0.000000,0.000000 -2059,-3.0,90.000035,0.000000,0.000000 -2060,-3.0,90.000035,0.000000,0.000000 -2061,-3.0,90.000035,0.000000,0.000000 -2062,-3.0,90.000035,0.000000,0.000000 -2063,-3.0,90.000035,0.000000,0.000000 -2064,-3.0,90.000035,0.000000,0.000000 -2065,-3.0,90.000035,0.000000,0.000000 -2066,-3.0,90.000035,0.000000,0.000000 -2067,-3.0,90.000035,0.000000,0.000000 -2068,-3.0,90.000035,0.000000,0.000000 -2069,-3.0,90.000035,0.000000,0.000000 -2070,-3.0,90.000035,0.000000,0.000000 -2071,-3.0,90.000035,0.000000,0.000000 -2072,-3.0,90.000035,0.000000,0.000000 -2073,-3.0,90.000035,0.000000,0.000000 -2074,-3.0,90.000035,0.000000,0.000000 -2075,-3.0,90.000035,0.000000,0.000000 -2076,-3.0,90.000035,0.000000,0.000000 -2077,-3.0,90.000035,0.000000,0.000000 -2078,-3.0,90.000035,0.000000,0.000000 -2079,-3.0,90.000035,0.000000,0.000000 -2080,-3.0,90.000035,0.000000,0.000000 -2081,-3.0,90.000035,0.000000,0.000000 -2082,-3.0,90.000035,0.000000,0.000000 -2083,-3.0,90.000035,0.000000,0.000000 -2084,-3.0,90.000035,0.000000,0.000000 -2085,-3.0,90.000035,0.000000,0.000000 -2086,-3.0,90.000035,0.000000,0.000000 -2087,-3.0,90.000035,0.000000,0.000000 -2088,-3.0,90.000035,0.000000,0.000000 -2089,-3.0,90.000035,0.000000,0.000000 -2090,-3.0,90.000035,0.000000,0.000000 -2091,-3.0,90.000035,0.000000,0.000000 -2092,-3.0,90.000035,0.000000,0.000000 -2093,-3.0,90.000035,0.000000,0.000000 -2094,-3.0,90.000035,0.000000,0.000000 -2095,-3.0,90.000035,0.000000,0.000000 -2096,-3.0,90.000035,0.000000,0.000000 -2097,-3.0,90.000035,0.000000,0.000000 -2098,-3.0,90.000035,0.000000,0.000000 -2099,-3.0,90.000035,0.000000,0.000000 -2100,-3.0,90.000035,0.000000,0.000000 -2101,-3.0,90.000035,0.000000,0.000000 -2102,-3.0,90.000035,0.000000,0.000000 -2103,-3.0,90.000035,0.000000,0.000000 -2104,-3.0,90.000035,0.000000,0.000000 -2105,-3.0,90.000035,0.000000,0.000000 -2106,-3.0,90.000035,0.000000,0.000000 -2107,-3.0,90.000035,0.000000,0.000000 -2108,-3.0,90.000035,0.000000,0.000000 -2109,-3.0,90.000035,0.000000,0.000000 -2110,-3.0,90.000035,0.000000,0.000000 -2111,-3.0,90.000035,0.000000,0.000000 -2112,-3.0,90.000035,0.000000,0.000000 -2113,-3.0,90.000035,0.000000,0.000000 -2114,-3.0,90.000035,0.000000,0.000000 -2115,-3.0,90.000035,0.000000,0.000000 -2116,-3.0,90.000035,0.000000,0.000000 -2117,-3.0,90.000035,0.000000,0.000000 -2118,-3.0,90.000035,0.000000,0.000000 -2119,-3.0,90.000035,0.000000,0.000000 -2120,-3.0,90.000035,0.000000,0.000000 -2121,-3.0,90.000035,0.000000,0.000000 -2122,-3.0,90.000035,0.000000,0.000000 -2123,-3.0,90.000035,0.000000,0.000000 -2124,-3.0,90.000035,0.000000,0.000000 -2125,-3.0,90.000035,0.000000,0.000000 -2126,-3.0,90.000035,0.000000,0.000000 -2127,-3.0,90.000035,0.000000,0.000000 -2128,-3.0,90.000035,0.000000,0.000000 -2129,-3.0,90.000035,0.000000,0.000000 -2130,-3.0,90.000035,0.000000,0.000000 -2131,-3.0,90.000035,0.000000,0.000000 -2132,-3.0,90.000035,0.000000,0.000000 -2133,-3.0,90.000035,0.000000,0.000000 -2134,-3.0,90.000035,0.000000,0.000000 -2135,-3.0,90.000035,0.000000,0.000000 -2136,-3.0,90.000035,0.000000,0.000000 -2137,-3.0,90.000035,0.000000,0.000000 -2138,-3.0,90.000035,0.000000,0.000000 -2139,-3.0,90.000035,0.000000,0.000000 -2140,-3.0,90.000035,0.000000,0.000000 -2141,-3.0,90.000035,0.000000,0.000000 -2142,-3.0,90.000035,0.000000,0.000000 -2143,-3.0,90.000035,0.000000,0.000000 -2144,-3.0,90.000035,0.000000,0.000000 -2145,-3.0,90.000035,0.000000,0.000000 -2146,-3.0,90.000035,0.000000,0.000000 -2147,-3.0,90.000035,0.000000,0.000000 -2148,-3.0,90.000035,0.000000,0.000000 -2149,-3.0,90.000035,0.000000,0.000000 -2150,-3.0,90.000035,0.000000,0.000000 -2151,-3.0,90.000035,0.000000,0.000000 -2152,-3.0,90.000035,0.000000,0.000000 -2153,-3.0,90.000035,0.000000,0.000000 -2154,-3.0,90.000035,0.000000,0.000000 -2155,-3.0,90.000035,0.000000,0.000000 -2156,-3.0,90.000035,0.000000,0.000000 -2157,-3.0,90.000035,0.000000,0.000000 -2158,-3.0,90.000035,0.000000,0.000000 -2159,-3.0,90.000035,0.000000,0.000000 -2160,-3.0,90.000035,0.000000,0.000000 -2161,-3.0,90.000035,0.000000,0.000000 -2162,-3.0,90.000035,0.000000,0.000000 -2163,-3.0,90.000035,0.000000,0.000000 -2164,-3.0,90.000035,0.000000,0.000000 -2165,-3.0,90.000035,0.000000,0.000000 -2166,-3.0,90.000035,0.000000,0.000000 -2167,-3.0,90.000035,0.000000,0.000000 -2168,-3.0,90.000035,0.000000,0.000000 -2169,-3.0,90.000035,0.000000,0.000000 -2170,-3.0,90.000035,0.000000,0.000000 -2171,-3.0,90.000035,0.000000,0.000000 -2172,-3.0,90.000035,0.000000,0.000000 -2173,-3.0,90.000035,0.000000,0.000000 -2174,-3.0,90.000035,0.000000,0.000000 -2175,-3.0,90.000035,0.000000,0.000000 -2176,-3.0,90.000035,0.000000,0.000000 -2177,-3.0,90.000035,0.000000,0.000000 -2178,-3.0,90.000035,0.000000,0.000000 -2179,-3.0,90.000035,0.000000,0.000000 -2180,-3.0,90.000035,0.000000,0.000000 -2181,-3.0,90.000035,0.000000,0.000000 -2182,-3.0,90.000035,0.000000,0.000000 -2183,-3.0,90.000035,0.000000,0.000000 -2184,-3.0,90.000035,0.000000,0.000000 -2185,-3.0,90.000035,0.000000,0.000000 -2186,-3.0,90.000035,0.000000,0.000000 -2187,-3.0,90.000035,0.000000,0.000000 -2188,-3.0,90.000035,0.000000,0.000000 -2189,-3.0,90.000035,0.000000,0.000000 -2190,-3.0,90.000035,0.000000,0.000000 -2191,-3.0,90.000035,0.000000,0.000000 -2192,-3.0,90.000035,0.000000,0.000000 -2193,-3.0,90.000035,0.000000,0.000000 -2194,-3.0,90.000035,0.000000,0.000000 -2195,-3.0,90.000035,0.000000,0.000000 -2196,-3.0,90.000035,0.000000,0.000000 -2197,-3.0,90.000035,0.000000,0.000000 -2198,-3.0,90.000035,0.000000,0.000000 -2199,-3.0,90.000035,0.000000,0.000000 -2200,-3.0,90.000035,0.000000,0.000000 -2201,-3.0,90.000035,0.000000,0.000000 -2202,-3.0,90.000035,0.000000,0.000000 -2203,-3.0,90.000035,0.000000,0.000000 -2204,-3.0,90.000035,0.000000,0.000000 -2205,-3.0,90.000035,0.000000,0.000000 -2206,-3.0,90.000035,0.000000,0.000000 -2207,-3.0,90.000035,0.000000,0.000000 -2208,-3.0,90.000035,0.000000,0.000000 -2209,-3.0,90.000035,0.000000,0.000000 -2210,-3.0,90.000035,0.000000,0.000000 -2211,-3.0,90.000035,0.000000,0.000000 -2212,-3.0,90.000035,0.000000,0.000000 -2213,-3.0,90.000035,0.000000,0.000000 -2214,-3.0,90.000035,0.000000,0.000000 -2215,-3.0,90.000035,0.000000,0.000000 -2216,-3.0,90.000035,0.000000,0.000000 -2217,-3.0,90.000035,0.000000,0.000000 -2218,-3.0,90.000035,0.000000,0.000000 -2219,-3.0,90.000035,0.000000,0.000000 -2220,-3.0,90.000035,0.000000,0.000000 -2221,-3.0,90.000035,0.000000,0.000000 -2222,-3.0,90.000035,0.000000,0.000000 -2223,-3.0,90.000035,0.000000,0.000000 -2224,-3.0,90.000035,0.000000,0.000000 -2225,-3.0,90.000035,0.000000,0.000000 -2226,-3.0,90.000035,0.000000,0.000000 -2227,-3.0,90.000035,0.000000,0.000000 -2228,-3.0,90.000035,0.000000,0.000000 -2229,-3.0,90.000035,0.000000,0.000000 -2230,-3.0,90.000035,0.000000,0.000000 -2231,-3.0,90.000035,0.000000,0.000000 -2232,-3.0,90.000035,0.000000,0.000000 -2233,-3.0,90.000035,0.000000,0.000000 -2234,-3.0,90.000035,0.000000,0.000000 -2235,-3.0,90.000035,0.000000,0.000000 -2236,-3.0,90.000035,0.000000,0.000000 -2237,-3.0,90.000035,0.000000,0.000000 -2238,-3.0,90.000035,0.000000,0.000000 -2239,-3.0,90.000035,0.000000,0.000000 -2240,-3.0,90.000035,0.000000,0.000000 -2241,-3.0,90.000035,0.000000,0.000000 -2242,-3.0,90.000035,0.000000,0.000000 -2243,-3.0,90.000035,0.000000,0.000000 -2244,-3.0,90.000035,0.000000,0.000000 -2245,-3.0,90.000035,0.000000,0.000000 -2246,-3.0,90.000035,0.000000,0.000000 -2247,-3.0,90.000035,0.000000,0.000000 -2248,-3.0,90.000035,0.000000,0.000000 -2249,-3.0,90.000035,0.000000,0.000000 -2250,-3.0,90.000035,0.000000,0.000000 -2251,-3.0,90.000035,0.000000,0.000000 -2252,-3.0,90.000035,0.000000,0.000000 -2253,-3.0,90.000035,0.000000,0.000000 -2254,-3.0,90.000035,0.000000,0.000000 -2255,-3.0,90.000035,0.000000,0.000000 -2256,-3.0,90.000035,0.000000,0.000000 -2257,-3.0,90.000035,0.000000,0.000000 -2258,-3.0,90.000035,0.000000,0.000000 -2259,-3.0,90.000035,0.000000,0.000000 -2260,-3.0,90.000035,0.000000,0.000000 -2261,-3.0,90.000035,0.000000,0.000000 -2262,-3.0,90.000035,0.000000,0.000000 -2263,-3.0,90.000035,0.000000,0.000000 -2264,-3.0,90.000035,0.000000,0.000000 -2265,-3.0,90.000035,0.000000,0.000000 -2266,-3.0,90.000035,0.000000,0.000000 -2267,-3.0,90.000035,0.000000,0.000000 -2268,-3.0,90.000035,0.000000,0.000000 -2269,-3.0,90.000035,0.000000,0.000000 -2270,-3.0,90.000035,0.000000,0.000000 -2271,-3.0,90.000035,0.000000,0.000000 -2272,-3.0,90.000035,0.000000,0.000000 -2273,-3.0,90.000035,0.000000,0.000000 -2274,-3.0,90.000035,0.000000,0.000000 -2275,-3.0,90.000035,0.000000,0.000000 -2276,-3.0,90.000035,0.000000,0.000000 -2277,-3.0,90.000035,0.000000,0.000000 -2278,-3.0,90.000035,0.000000,0.000000 -2279,-3.0,90.000035,0.000000,0.000000 -2280,-3.0,90.000035,0.000000,0.000000 -2281,-3.0,90.000035,0.000000,0.000000 -2282,-3.0,90.000035,0.000000,0.000000 -2283,-3.0,90.000035,0.000000,0.000000 -2284,-3.0,90.000035,0.000000,0.000000 -2285,-3.0,90.000035,0.000000,0.000000 -2286,-3.0,90.000035,0.000000,0.000000 -2287,-3.0,90.000035,0.000000,0.000000 -2288,-3.0,90.000035,0.000000,0.000000 -2289,-3.0,90.000035,0.000000,0.000000 -2290,-3.0,90.000035,0.000000,0.000000 -2291,-3.0,90.000035,0.000000,0.000000 -2292,-3.0,90.000035,0.000000,0.000000 -2293,-3.0,90.000035,0.000000,0.000000 -2294,-3.0,90.000035,0.000000,0.000000 -2295,-3.0,90.000035,0.000000,0.000000 -2296,-3.0,90.000035,0.000000,0.000000 -2297,-3.0,90.000035,0.000000,0.000000 -2298,-3.0,90.000035,0.000000,0.000000 -2299,-3.0,90.000035,0.000000,0.000000 -2300,-3.0,90.000035,0.000000,0.000000 -2301,-3.0,90.000035,0.000000,0.000000 -2302,-3.0,90.000035,0.000000,0.000000 -2303,-3.0,90.000035,0.000000,0.000000 -2304,-3.0,90.000035,0.000000,0.000000 -2305,-3.0,90.000035,0.000000,0.000000 -2306,-3.0,90.000035,0.000000,0.000000 -2307,-3.0,90.000035,0.000000,0.000000 -2308,-3.0,90.000035,0.000000,0.000000 -2309,-3.0,90.000035,0.000000,0.000000 -2310,-3.0,90.000035,0.000000,0.000000 -2311,-3.0,90.000035,0.000000,0.000000 -2312,-3.0,90.000035,0.000000,0.000000 -2313,-3.0,90.000035,0.000000,0.000000 -2314,-3.0,90.000035,0.000000,0.000000 -2315,-3.0,90.000035,0.000000,0.000000 -2316,-3.0,90.000035,0.000000,0.000000 -2317,-3.0,90.000035,0.000000,0.000000 -2318,-3.0,90.000035,0.000000,0.000000 -2319,-3.0,90.000035,0.000000,0.000000 -2320,-3.0,90.000035,0.000000,0.000000 -2321,-3.0,90.000035,0.000000,0.000000 -2322,-3.0,90.000035,0.000000,0.000000 -2323,-3.0,90.000035,0.000000,0.000000 -2324,-3.0,90.000035,0.000000,0.000000 -2325,-3.0,90.000035,0.000000,0.000000 -2326,-3.0,90.000035,0.000000,0.000000 -2327,-3.0,90.000035,0.000000,0.000000 -2328,-3.0,90.000035,0.000000,0.000000 -2329,-3.0,90.000035,0.000000,0.000000 -2330,-3.0,90.000035,0.000000,0.000000 -2331,-3.0,90.000035,0.000000,0.000000 -2332,-3.0,90.000035,0.000000,0.000000 -2333,-3.0,90.000035,0.000000,0.000000 -2334,-3.0,90.000035,0.000000,0.000000 -2335,-3.0,90.000035,0.000000,0.000000 -2336,-3.0,90.000035,0.000000,0.000000 -2337,-3.0,90.000035,0.000000,0.000000 -2338,-3.0,90.000035,0.000000,0.000000 -2339,-3.0,90.000035,0.000000,0.000000 -2340,-3.0,90.000035,0.000000,0.000000 -2341,-3.0,90.000035,0.000000,0.000000 -2342,-3.0,90.000035,0.000000,0.000000 -2343,-3.0,90.000035,0.000000,0.000000 -2344,-3.0,90.000035,0.000000,0.000000 -2345,-3.0,90.000035,0.000000,0.000000 -2346,-3.0,90.000035,0.000000,0.000000 -2347,-3.0,90.000035,0.000000,0.000000 -2348,-3.0,90.000035,0.000000,0.000000 -2349,-3.0,90.000035,0.000000,0.000000 -2350,-3.0,90.000035,0.000000,0.000000 -2351,-3.0,90.000035,0.000000,0.000000 -2352,-3.0,90.000035,0.000000,0.000000 -2353,-3.0,90.000035,0.000000,0.000000 -2354,-3.0,90.000035,0.000000,0.000000 -2355,-3.0,90.000035,0.000000,0.000000 -2356,-3.0,90.000035,0.000000,0.000000 -2357,-3.0,90.000035,0.000000,0.000000 -2358,-3.0,90.000035,0.000000,0.000000 -2359,-3.0,90.000035,0.000000,0.000000 -2360,-3.0,90.000035,0.000000,0.000000 -2361,-3.0,90.000035,0.000000,0.000000 -2362,-3.0,90.000035,0.000000,0.000000 -2363,-3.0,90.000035,0.000000,0.000000 -2364,-3.0,90.000035,0.000000,0.000000 -2365,-3.0,90.000035,0.000000,0.000000 -2366,-3.0,90.000035,0.000000,0.000000 -2367,-3.0,90.000035,0.000000,0.000000 -2368,-3.0,90.000035,0.000000,0.000000 -2369,-3.0,90.000035,0.000000,0.000000 -2370,-3.0,90.000035,0.000000,0.000000 -2371,-3.0,90.000035,0.000000,0.000000 -2372,-3.0,90.000035,0.000000,0.000000 -2373,-3.0,90.000035,0.000000,0.000000 -2374,-3.0,90.000035,0.000000,0.000000 -2375,-3.0,90.000035,0.000000,0.000000 -2376,-3.0,90.000035,0.000000,0.000000 -2377,-3.0,90.000035,0.000000,0.000000 -2378,-3.0,90.000035,0.000000,0.000000 -2379,-3.0,90.000035,0.000000,0.000000 -2380,-3.0,90.000035,0.000000,0.000000 -2381,-3.0,90.000035,0.000000,0.000000 -2382,-3.0,90.000035,0.000000,0.000000 -2383,-3.0,90.000035,0.000000,0.000000 -2384,-3.0,90.000035,0.000000,0.000000 -2385,-3.0,90.000035,0.000000,0.000000 -2386,-3.0,90.000035,0.000000,0.000000 -2387,-3.0,90.000035,0.000000,0.000000 -2388,-3.0,90.000035,0.000000,0.000000 -2389,-3.0,90.000035,0.000000,0.000000 -2390,-3.0,90.000035,0.000000,0.000000 -2391,-3.0,90.000035,0.000000,0.000000 -2392,-3.0,90.000035,0.000000,0.000000 -2393,-3.0,90.000035,0.000000,0.000000 -2394,-3.0,90.000035,0.000000,0.000000 -2395,-3.0,90.000035,0.000000,0.000000 -2396,-3.0,90.000035,0.000000,0.000000 -2397,-3.0,90.000035,0.000000,0.000000 -2398,-3.0,90.000035,0.000000,0.000000 -2399,-3.0,90.000035,0.000000,0.000000 -2400,-3.0,90.000035,0.000000,0.000000 -2401,-3.0,90.000035,0.000000,0.000000 -2402,-3.0,90.000035,0.000000,0.000000 -2403,-3.0,90.000035,0.000000,0.000000 -2404,-3.0,90.000035,0.000000,0.000000 -2405,-3.0,90.000035,0.000000,0.000000 -2406,-3.0,90.000035,0.000000,0.000000 -2407,-3.0,90.000035,0.000000,0.000000 -2408,-3.0,90.000035,0.000000,0.000000 -2409,-3.0,90.000035,0.000000,0.000000 -2410,-3.0,90.000035,0.000000,0.000000 -2411,-3.0,90.000035,0.000000,0.000000 -2412,-3.0,90.000035,0.000000,0.000000 -2413,-3.0,90.000035,0.000000,0.000000 -2414,-3.0,90.000035,0.000000,0.000000 -2415,-3.0,90.000035,0.000000,0.000000 -2416,-3.0,90.000035,0.000000,0.000000 -2417,-3.0,90.000035,0.000000,0.000000 -2418,-3.0,90.000035,0.000000,0.000000 -2419,-3.0,90.000035,0.000000,0.000000 -2420,-3.0,90.000035,0.000000,0.000000 -2421,-3.0,90.000035,0.000000,0.000000 -2422,-3.0,90.000035,0.000000,0.000000 -2423,-3.0,90.000035,0.000000,0.000000 -2424,-3.0,90.000035,0.000000,0.000000 -2425,-3.0,90.000035,0.000000,0.000000 -2426,-3.0,90.000035,0.000000,0.000000 -2427,-3.0,90.000035,0.000000,0.000000 -2428,-3.0,90.000035,0.000000,0.000000 -2429,-3.0,90.000035,0.000000,0.000000 -2430,-3.0,90.000035,0.000000,0.000000 -2431,-3.0,90.000035,0.000000,0.000000 -2432,-3.0,90.000035,0.000000,0.000000 -2433,-3.0,90.000035,0.000000,0.000000 -2434,-3.0,90.000035,0.000000,0.000000 -2435,-3.0,90.000035,0.000000,0.000000 -2436,-3.0,90.000035,0.000000,0.000000 -2437,-3.0,90.000035,0.000000,0.000000 -2438,-3.0,90.000035,0.000000,0.000000 -2439,-3.0,90.000035,0.000000,0.000000 -2440,-3.0,90.000035,0.000000,0.000000 -2441,-3.0,90.000035,0.000000,0.000000 -2442,-3.0,90.000035,0.000000,0.000000 -2443,-3.0,90.000035,0.000000,0.000000 -2444,-3.0,90.000035,0.000000,0.000000 -2445,-3.0,90.000035,0.000000,0.000000 -2446,-3.0,90.000035,0.000000,0.000000 -2447,-3.0,90.000035,0.000000,0.000000 -2448,-3.0,90.000035,0.000000,0.000000 -2449,-3.0,90.000035,0.000000,0.000000 -2450,-3.0,90.000035,0.000000,0.000000 -2451,-3.0,90.000035,0.000000,0.000000 -2452,-3.0,90.000035,0.000000,0.000000 -2453,-3.0,90.000035,0.000000,0.000000 -2454,-3.0,90.000035,0.000000,0.000000 -2455,-3.0,90.000035,0.000000,0.000000 -2456,-3.0,90.000035,0.000000,0.000000 -2457,-3.0,90.000035,0.000000,0.000000 -2458,-3.0,90.000035,0.000000,0.000000 -2459,-3.0,90.000035,0.000000,0.000000 -2460,-3.0,90.000035,0.000000,0.000000 -2461,-3.0,90.000035,0.000000,0.000000 -2462,-3.0,90.000035,0.000000,0.000000 -2463,-3.0,90.000035,0.000000,0.000000 -2464,-3.0,90.000035,0.000000,0.000000 -2465,-3.0,90.000035,0.000000,0.000000 -2466,-3.0,90.000035,0.000000,0.000000 -2467,-3.0,90.000035,0.000000,0.000000 -2468,-3.0,90.000035,0.000000,0.000000 -2469,-3.0,90.000035,0.000000,0.000000 -2470,-3.0,90.000035,0.000000,0.000000 -2471,-3.0,90.000035,0.000000,0.000000 -2472,-3.0,90.000035,0.000000,0.000000 -2473,-3.0,90.000035,0.000000,0.000000 -2474,-3.0,90.000035,0.000000,0.000000 -2475,-3.0,90.000035,0.000000,0.000000 -2476,-3.0,90.000035,0.000000,0.000000 -2477,-3.0,90.000035,0.000000,0.000000 -2478,-3.0,90.000035,0.000000,0.000000 -2479,-3.0,90.000035,0.000000,0.000000 -2480,-3.0,90.000035,0.000000,0.000000 -2481,-3.0,90.000035,0.000000,0.000000 -2482,-3.0,90.000035,0.000000,0.000000 -2483,-3.0,90.000035,0.000000,0.000000 -2484,-3.0,90.000035,0.000000,0.000000 -2485,-3.0,90.000035,0.000000,0.000000 -2486,-3.0,90.000035,0.000000,0.000000 -2487,-3.0,90.000035,0.000000,0.000000 -2488,-3.0,90.000035,0.000000,0.000000 -2489,-3.0,90.000035,0.000000,0.000000 -2490,-3.0,90.000035,0.000000,0.000000 -2491,-3.0,90.000035,0.000000,0.000000 -2492,-3.0,90.000035,0.000000,0.000000 -2493,-3.0,90.000035,0.000000,0.000000 -2494,-3.0,90.000035,0.000000,0.000000 -2495,-3.0,90.000035,0.000000,0.000000 -2496,-3.0,90.000035,0.000000,0.000000 -2497,-3.0,90.000035,0.000000,0.000000 -2498,-3.0,90.000035,0.000000,0.000000 -2499,-3.0,90.000035,0.000000,0.000000 -2500,-3.0,90.000035,0.000000,0.000000 -2501,-3.0,90.000035,0.000000,0.000000 -2502,-3.0,90.000035,0.000000,0.000000 -2503,-3.0,90.000035,0.000000,0.000000 -2504,-3.0,90.000035,0.000000,0.000000 -2505,-3.0,90.000035,0.000000,0.000000 -2506,-3.0,90.000035,0.000000,0.000000 -2507,-3.0,90.000035,0.000000,0.000000 -2508,-3.0,90.000035,0.000000,0.000000 -2509,-3.0,90.000035,0.000000,0.000000 -2510,-3.0,90.000035,0.000000,0.000000 -2511,-3.0,90.000035,0.000000,0.000000 -2512,-3.0,90.000035,0.000000,0.000000 -2513,-3.0,90.000035,0.000000,0.000000 -2514,-3.0,90.000035,0.000000,0.000000 -2515,-3.0,90.000035,0.000000,0.000000 -2516,-3.0,90.000035,0.000000,0.000000 -2517,-3.0,90.000035,0.000000,0.000000 -2518,-3.0,90.000035,0.000000,0.000000 -2519,-3.0,90.000035,0.000000,0.000000 -2520,-3.0,90.000035,0.000000,0.000000 -2521,-3.0,90.000035,0.000000,0.000000 -2522,-3.0,90.000035,0.000000,0.000000 -2523,-3.0,90.000035,0.000000,0.000000 -2524,-3.0,90.000035,0.000000,0.000000 -2525,-3.0,90.000035,0.000000,0.000000 -2526,-3.0,90.000035,0.000000,0.000000 -2527,-3.0,90.000035,0.000000,0.000000 -2528,-3.0,90.000035,0.000000,0.000000 -2529,-3.0,90.000035,0.000000,0.000000 -2530,-3.0,90.000035,0.000000,0.000000 -2531,-3.0,90.000035,0.000000,0.000000 -2532,-3.0,90.000035,0.000000,0.000000 -2533,-3.0,90.000035,0.000000,0.000000 -2534,-3.0,90.000035,0.000000,0.000000 -2535,-3.0,90.000035,0.000000,0.000000 -2536,-3.0,90.000035,0.000000,0.000000 -2537,-3.0,90.000035,0.000000,0.000000 -2538,-3.0,90.000035,0.000000,0.000000 -2539,-3.0,90.000035,0.000000,0.000000 -2540,-3.0,90.000035,0.000000,0.000000 -2541,-3.0,90.000035,0.000000,0.000000 -2542,-3.0,90.000035,0.000000,0.000000 -2543,-3.0,90.000035,0.000000,0.000000 -2544,-3.0,90.000035,0.000000,0.000000 -2545,-3.0,90.000035,0.000000,0.000000 -2546,-3.0,90.000035,0.000000,0.000000 -2547,-3.0,90.000035,0.000000,0.000000 -2548,-3.0,90.000035,0.000000,0.000000 -2549,-3.0,90.000035,0.000000,0.000000 -2550,-3.0,90.000035,0.000000,0.000000 -2551,-3.0,90.000035,0.000000,0.000000 -2552,-3.0,90.000035,0.000000,0.000000 -2553,-3.0,90.000035,0.000000,0.000000 -2554,-3.0,90.000035,0.000000,0.000000 -2555,-3.0,90.000035,0.000000,0.000000 -2556,-3.0,90.000035,0.000000,0.000000 -2557,-3.0,90.000035,0.000000,0.000000 -2558,-3.0,90.000035,0.000000,0.000000 -2559,-3.0,90.000035,0.000000,0.000000 -2560,-3.0,90.000035,0.000000,0.000000 -2561,-3.0,90.000035,0.000000,0.000000 -2562,-3.0,90.000035,0.000000,0.000000 -2563,-3.0,90.000035,0.000000,0.000000 -2564,-3.0,90.000035,0.000000,0.000000 -2565,-3.0,90.000035,0.000000,0.000000 -2566,-3.0,90.000035,0.000000,0.000000 -2567,-3.0,90.000035,0.000000,0.000000 -2568,-3.0,90.000035,0.000000,0.000000 -2569,-3.0,90.000035,0.000000,0.000000 -2570,-3.0,90.000035,0.000000,0.000000 -2571,-3.0,90.000035,0.000000,0.000000 -2572,-3.0,90.000035,0.000000,0.000000 -2573,-3.0,90.000035,0.000000,0.000000 -2574,-3.0,90.000035,0.000000,0.000000 -2575,-3.0,90.000035,0.000000,0.000000 -2576,-3.0,90.000035,0.000000,0.000000 -2577,-3.0,90.000035,0.000000,0.000000 -2578,-3.0,90.000035,0.000000,0.000000 -2579,-3.0,90.000035,0.000000,0.000000 -2580,-3.0,90.000035,0.000000,0.000000 -2581,-3.0,90.000035,0.000000,0.000000 -2582,-3.0,90.000035,0.000000,0.000000 -2583,-3.0,90.000035,0.000000,0.000000 -2584,-3.0,90.000035,0.000000,0.000000 -2585,-3.0,90.000035,0.000000,0.000000 -2586,-3.0,90.000035,0.000000,0.000000 -2587,-3.0,90.000035,0.000000,0.000000 -2588,-3.0,90.000035,0.000000,0.000000 -2589,-3.0,90.000035,0.000000,0.000000 -2590,-3.0,90.000035,0.000000,0.000000 -2591,-3.0,90.000035,0.000000,0.000000 -2592,-3.0,90.000035,0.000000,0.000000 -2593,-3.0,90.000035,0.000000,0.000000 -2594,-3.0,90.000035,0.000000,0.000000 -2595,-3.0,90.000035,0.000000,0.000000 -2596,-3.0,90.000035,0.000000,0.000000 -2597,-3.0,90.000035,0.000000,0.000000 -2598,-3.0,90.000035,0.000000,0.000000 -2599,-3.0,90.000035,0.000000,0.000000 -2600,-3.0,90.000035,0.000000,0.000000 -2601,-3.0,90.000035,0.000000,0.000000 -2602,-3.0,90.000035,0.000000,0.000000 -2603,-3.0,90.000035,0.000000,0.000000 -2604,-3.0,90.000035,0.000000,0.000000 -2605,-3.0,90.000035,0.000000,0.000000 -2606,-3.0,90.000035,0.000000,0.000000 -2607,-3.0,90.000035,0.000000,0.000000 -2608,-3.0,90.000035,0.000000,0.000000 -2609,-3.0,90.000035,0.000000,0.000000 -2610,-3.0,90.000035,0.000000,0.000000 -2611,-3.0,90.000035,0.000000,0.000000 -2612,-3.0,90.000035,0.000000,0.000000 -2613,-3.0,90.000035,0.000000,0.000000 -2614,-3.0,90.000035,0.000000,0.000000 -2615,-3.0,90.000035,0.000000,0.000000 -2616,-3.0,90.000035,0.000000,0.000000 -2617,-3.0,90.000035,0.000000,0.000000 -2618,-3.0,90.000035,0.000000,0.000000 -2619,-3.0,90.000035,0.000000,0.000000 -2620,-3.0,90.000035,0.000000,0.000000 -2621,-3.0,90.000035,0.000000,0.000000 -2622,-3.0,90.000035,0.000000,0.000000 -2623,-3.0,90.000035,0.000000,0.000000 -2624,-3.0,90.000035,0.000000,0.000000 -2625,-3.0,90.000035,0.000000,0.000000 -2626,-3.0,90.000035,0.000000,0.000000 -2627,-3.0,90.000035,0.000000,0.000000 -2628,-3.0,90.000035,0.000000,0.000000 -2629,-3.0,90.000035,0.000000,0.000000 -2630,-3.0,90.000035,0.000000,0.000000 -2631,-3.0,90.000035,0.000000,0.000000 -2632,-3.0,90.000035,0.000000,0.000000 -2633,-3.0,90.000035,0.000000,0.000000 -2634,-3.0,90.000035,0.000000,0.000000 -2635,-3.0,90.000035,0.000000,0.000000 -2636,-3.0,90.000035,0.000000,0.000000 -2637,-3.0,90.000035,0.000000,0.000000 -2638,-3.0,90.000035,0.000000,0.000000 -2639,-3.0,90.000035,0.000000,0.000000 -2640,-3.0,90.000035,0.000000,0.000000 -2641,-3.0,90.000035,0.000000,0.000000 -2642,-3.0,90.000035,0.000000,0.000000 -2643,-3.0,90.000035,0.000000,0.000000 -2644,-3.0,90.000035,0.000000,0.000000 -2645,-3.0,90.000035,0.000000,0.000000 -2646,-3.0,90.000035,0.000000,0.000000 -2647,-3.0,90.000035,0.000000,0.000000 -2648,-3.0,90.000035,0.000000,0.000000 -2649,-3.0,90.000035,0.000000,0.000000 -2650,-3.0,90.000035,0.000000,0.000000 -2651,-3.0,90.000035,0.000000,0.000000 -2652,-3.0,90.000035,0.000000,0.000000 -2653,-3.0,90.000035,0.000000,0.000000 -2654,-3.0,90.000035,0.000000,0.000000 -2655,-3.0,90.000035,0.000000,0.000000 -2656,-3.0,90.000035,0.000000,0.000000 -2657,-3.0,90.000035,0.000000,0.000000 -2658,-3.0,90.000035,0.000000,0.000000 -2659,-3.0,90.000035,0.000000,0.000000 -2660,-3.0,90.000035,0.000000,0.000000 -2661,-3.0,90.000035,0.000000,0.000000 -2662,-3.0,90.000035,0.000000,0.000000 -2663,-3.0,90.000035,0.000000,0.000000 -2664,-3.0,90.000035,0.000000,0.000000 -2665,-3.0,90.000035,0.000000,0.000000 -2666,-3.0,90.000035,0.000000,0.000000 -2667,-3.0,90.000035,0.000000,0.000000 -2668,-3.0,90.000035,0.000000,0.000000 -2669,-3.0,90.000035,0.000000,0.000000 -2670,-3.0,90.000035,0.000000,0.000000 -2671,-3.0,90.000035,0.000000,0.000000 -2672,-3.0,90.000035,0.000000,0.000000 -2673,-3.0,90.000035,0.000000,0.000000 -2674,-3.0,90.000035,0.000000,0.000000 -2675,-3.0,90.000035,0.000000,0.000000 -2676,-3.0,90.000035,0.000000,0.000000 -2677,-3.0,90.000035,0.000000,0.000000 -2678,-3.0,90.000035,0.000000,0.000000 -2679,-3.0,90.000035,0.000000,0.000000 -2680,-3.0,90.000035,0.000000,0.000000 -2681,-3.0,90.000035,0.000000,0.000000 -2682,-3.0,90.000035,0.000000,0.000000 -2683,-3.0,90.000035,0.000000,0.000000 -2684,-3.0,90.000035,0.000000,0.000000 -2685,-3.0,90.000035,0.000000,0.000000 -2686,-3.0,90.000035,0.000000,0.000000 -2687,-3.0,90.000035,0.000000,0.000000 -2688,-3.0,90.000035,0.000000,0.000000 -2689,-3.0,90.000035,0.000000,0.000000 -2690,-3.0,90.000035,0.000000,0.000000 -2691,-3.0,90.000035,0.000000,0.000000 -2692,-3.0,90.000035,0.000000,0.000000 -2693,-3.0,90.000035,0.000000,0.000000 -2694,-3.0,90.000035,0.000000,0.000000 -2695,-3.0,90.000035,0.000000,0.000000 -2696,-3.0,90.000035,0.000000,0.000000 -2697,-3.0,90.000035,0.000000,0.000000 -2698,-3.0,90.000035,0.000000,0.000000 -2699,-3.0,90.000035,0.000000,0.000000 -2700,-3.0,90.000035,0.000000,0.000000 -2701,-3.0,90.000035,0.000000,0.000000 -2702,-3.0,90.000035,0.000000,0.000000 -2703,-3.0,90.000035,0.000000,0.000000 -2704,-3.0,90.000035,0.000000,0.000000 -2705,-3.0,90.000035,0.000000,0.000000 -2706,-3.0,90.000035,0.000000,0.000000 -2707,-3.0,90.000035,0.000000,0.000000 -2708,-3.0,90.000035,0.000000,0.000000 -2709,-3.0,90.000035,0.000000,0.000000 -2710,-3.0,90.000035,0.000000,0.000000 -2711,-3.0,90.000035,0.000000,0.000000 -2712,-3.0,90.000035,0.000000,0.000000 -2713,-3.0,90.000035,0.000000,0.000000 -2714,-3.0,90.000035,0.000000,0.000000 -2715,-3.0,90.000035,0.000000,0.000000 -2716,-3.0,90.000035,0.000000,0.000000 -2717,-3.0,90.000035,0.000000,0.000000 -2718,-3.0,90.000035,0.000000,0.000000 -2719,-3.0,90.000035,0.000000,0.000000 -2720,-3.0,90.000035,0.000000,0.000000 -2721,-3.0,90.000035,0.000000,0.000000 -2722,-3.0,90.000035,0.000000,0.000000 -2723,-3.0,90.000035,0.000000,0.000000 -2724,-3.0,90.000035,0.000000,0.000000 -2725,-3.0,90.000035,0.000000,0.000000 -2726,-3.0,90.000035,0.000000,0.000000 -2727,-3.0,90.000035,0.000000,0.000000 -2728,-3.0,90.000035,0.000000,0.000000 -2729,-3.0,90.000035,0.000000,0.000000 -2730,-3.0,90.000035,0.000000,0.000000 -2731,-3.0,90.000035,0.000000,0.000000 -2732,-3.0,90.000035,0.000000,0.000000 -2733,-3.0,90.000035,0.000000,0.000000 -2734,-3.0,90.000035,0.000000,0.000000 -2735,-3.0,90.000035,0.000000,0.000000 -2736,-3.0,90.000035,0.000000,0.000000 -2737,-3.0,90.000035,0.000000,0.000000 -2738,-3.0,90.000035,0.000000,0.000000 -2739,-3.0,90.000035,0.000000,0.000000 -2740,-3.0,90.000035,0.000000,0.000000 -2741,-3.0,90.000035,0.000000,0.000000 -2742,-3.0,90.000035,0.000000,0.000000 -2743,-3.0,90.000035,0.000000,0.000000 -2744,-3.0,90.000035,0.000000,0.000000 -2745,-3.0,90.000035,0.000000,0.000000 -2746,-3.0,90.000035,0.000000,0.000000 -2747,-3.0,90.000035,0.000000,0.000000 -2748,-3.0,90.000035,0.000000,0.000000 -2749,-3.0,90.000035,0.000000,0.000000 -2750,-3.0,90.000035,0.000000,0.000000 -2751,-3.0,90.000035,0.000000,0.000000 -2752,-3.0,90.000035,0.000000,0.000000 -2753,-3.0,90.000035,0.000000,0.000000 -2754,-3.0,90.000035,0.000000,0.000000 -2755,-3.0,90.000035,0.000000,0.000000 -2756,-3.0,90.000035,0.000000,0.000000 -2757,-3.0,90.000035,0.000000,0.000000 -2758,-3.0,90.000035,0.000000,0.000000 -2759,-3.0,90.000035,0.000000,0.000000 -2760,-3.0,90.000035,0.000000,0.000000 -2761,-3.0,90.000035,0.000000,0.000000 -2762,-3.0,90.000035,0.000000,0.000000 -2763,-3.0,90.000035,0.000000,0.000000 -2764,-3.0,90.000035,0.000000,0.000000 -2765,-3.0,90.000035,0.000000,0.000000 -2766,-3.0,90.000035,0.000000,0.000000 -2767,-3.0,90.000035,0.000000,0.000000 -2768,-3.0,90.000035,0.000000,0.000000 -2769,-3.0,90.000035,0.000000,0.000000 -2770,-3.0,90.000035,0.000000,0.000000 -2771,-3.0,90.000035,0.000000,0.000000 -2772,-3.0,90.000035,0.000000,0.000000 -2773,-3.0,90.000035,0.000000,0.000000 -2774,-3.0,90.000035,0.000000,0.000000 -2775,-3.0,90.000035,0.000000,0.000000 -2776,-3.0,90.000035,0.000000,0.000000 -2777,-3.0,90.000035,0.000000,0.000000 -2778,-3.0,90.000035,0.000000,0.000000 -2779,-3.0,90.000035,0.000000,0.000000 -2780,-3.0,90.000035,0.000000,0.000000 -2781,-3.0,90.000035,0.000000,0.000000 -2782,-3.0,90.000035,0.000000,0.000000 -2783,-3.0,90.000035,0.000000,0.000000 -2784,-3.0,90.000035,0.000000,0.000000 -2785,-3.0,90.000035,0.000000,0.000000 -2786,-3.0,90.000035,0.000000,0.000000 -2787,-3.0,90.000035,0.000000,0.000000 -2788,-3.0,90.000035,0.000000,0.000000 -2789,-3.0,90.000035,0.000000,0.000000 -2790,-3.0,90.000035,0.000000,0.000000 -2791,-3.0,90.000035,0.000000,0.000000 -2792,-3.0,90.000035,0.000000,0.000000 -2793,-3.0,90.000035,0.000000,0.000000 -2794,-3.0,90.000035,0.000000,0.000000 -2795,-3.0,90.000035,0.000000,0.000000 -2796,-3.0,90.000035,0.000000,0.000000 -2797,-3.0,90.000035,0.000000,0.000000 -2798,-3.0,90.000035,0.000000,0.000000 -2799,-3.0,90.000035,0.000000,0.000000 -2800,-3.0,90.000035,0.000000,0.000000 -2801,-3.0,90.000035,0.000000,0.000000 -2802,-3.0,90.000035,0.000000,0.000000 -2803,-3.0,90.000035,0.000000,0.000000 -2804,-3.0,90.000035,0.000000,0.000000 -2805,-3.0,90.000035,0.000000,0.000000 -2806,-3.0,90.000035,0.000000,0.000000 -2807,-3.0,90.000035,0.000000,0.000000 -2808,-3.0,90.000035,0.000000,0.000000 -2809,-3.0,90.000035,0.000000,0.000000 -2810,-3.0,90.000035,0.000000,0.000000 -2811,-3.0,90.000035,0.000000,0.000000 -2812,-3.0,90.000035,0.000000,0.000000 -2813,-3.0,90.000035,0.000000,0.000000 -2814,-3.0,90.000035,0.000000,0.000000 -2815,-3.0,90.000035,0.000000,0.000000 -2816,-3.0,90.000035,0.000000,0.000000 -2817,-3.0,90.000035,0.000000,0.000000 -2818,-3.0,90.000035,0.000000,0.000000 -2819,-3.0,90.000035,0.000000,0.000000 -2820,-3.0,90.000035,0.000000,0.000000 -2821,-3.0,90.000035,0.000000,0.000000 -2822,-3.0,90.000035,0.000000,0.000000 -2823,-3.0,90.000035,0.000000,0.000000 -2824,-3.0,90.000035,0.000000,0.000000 -2825,-3.0,90.000035,0.000000,0.000000 -2826,-3.0,90.000035,0.000000,0.000000 -2827,-3.0,90.000035,0.000000,0.000000 -2828,-3.0,90.000035,0.000000,0.000000 -2829,-3.0,90.000035,0.000000,0.000000 -2830,-3.0,90.000035,0.000000,0.000000 -2831,-3.0,90.000035,0.000000,0.000000 -2832,-3.0,90.000035,0.000000,0.000000 -2833,-3.0,90.000035,0.000000,0.000000 -2834,-3.0,90.000035,0.000000,0.000000 -2835,-3.0,90.000035,0.000000,0.000000 -2836,-3.0,90.000035,0.000000,0.000000 -2837,-3.0,90.000035,0.000000,0.000000 -2838,-3.0,90.000035,0.000000,0.000000 -2839,-3.0,90.000035,0.000000,0.000000 -2840,-3.0,90.000035,0.000000,0.000000 -2841,-3.0,90.000035,0.000000,0.000000 -2842,-3.0,90.000035,0.000000,0.000000 -2843,-3.0,90.000035,0.000000,0.000000 -2844,-3.0,90.000035,0.000000,0.000000 -2845,-3.0,90.000035,0.000000,0.000000 -2846,-3.0,90.000035,0.000000,0.000000 -2847,-3.0,90.000035,0.000000,0.000000 -2848,-3.0,90.000035,0.000000,0.000000 -2849,-3.0,90.000035,0.000000,0.000000 -2850,-3.0,90.000035,0.000000,0.000000 -2851,-3.0,90.000035,0.000000,0.000000 -2852,-3.0,90.000035,0.000000,0.000000 -2853,-3.0,90.000035,0.000000,0.000000 -2854,-3.0,90.000035,0.000000,0.000000 -2855,-3.0,90.000035,0.000000,0.000000 -2856,-3.0,90.000035,0.000000,0.000000 -2857,-3.0,90.000035,0.000000,0.000000 -2858,-3.0,90.000035,0.000000,0.000000 -2859,-3.0,90.000035,0.000000,0.000000 -2860,-3.0,90.000035,0.000000,0.000000 -2861,-3.0,90.000035,0.000000,0.000000 -2862,-3.0,90.000035,0.000000,0.000000 -2863,-3.0,90.000035,0.000000,0.000000 -2864,-3.0,90.000035,0.000000,0.000000 -2865,-3.0,90.000035,0.000000,0.000000 -2866,-3.0,90.000035,0.000000,0.000000 -2867,-3.0,90.000035,0.000000,0.000000 -2868,-3.0,90.000035,0.000000,0.000000 -2869,-3.0,90.000035,0.000000,0.000000 -2870,-3.0,90.000035,0.000000,0.000000 -2871,-3.0,90.000035,0.000000,0.000000 -2872,-3.0,90.000035,0.000000,0.000000 -2873,-3.0,90.000035,0.000000,0.000000 -2874,-3.0,90.000035,0.000000,0.000000 -2875,-3.0,90.000035,0.000000,0.000000 -2876,-3.0,90.000035,0.000000,0.000000 -2877,-3.0,90.000035,0.000000,0.000000 -2878,-3.0,90.000035,0.000000,0.000000 -2879,-3.0,90.000035,0.000000,0.000000 -2880,-3.0,90.000035,0.000000,0.000000 -2881,-3.0,90.000035,0.000000,0.000000 -2882,-3.0,90.000035,0.000000,0.000000 -2883,-3.0,90.000035,0.000000,0.000000 -2884,-3.0,90.000035,0.000000,0.000000 -2885,-3.0,90.000035,0.000000,0.000000 -2886,-3.0,90.000035,0.000000,0.000000 -2887,-3.0,90.000035,0.000000,0.000000 -2888,-3.0,90.000035,0.000000,0.000000 -2889,-3.0,90.000035,0.000000,0.000000 -2890,-3.0,90.000035,0.000000,0.000000 -2891,-3.0,90.000035,0.000000,0.000000 -2892,-3.0,90.000035,0.000000,0.000000 -2893,-3.0,90.000035,0.000000,0.000000 -2894,-3.0,90.000035,0.000000,0.000000 -2895,-3.0,90.000035,0.000000,0.000000 -2896,-3.0,90.000035,0.000000,0.000000 -2897,-3.0,90.000035,0.000000,0.000000 -2898,-3.0,90.000035,0.000000,0.000000 -2899,-3.0,90.000035,0.000000,0.000000 -2900,-3.0,90.000035,0.000000,0.000000 -2901,-3.0,90.000035,0.000000,0.000000 -2902,-3.0,90.000035,0.000000,0.000000 -2903,-3.0,90.000035,0.000000,0.000000 -2904,-3.0,90.000035,0.000000,0.000000 -2905,-3.0,90.000035,0.000000,0.000000 -2906,-3.0,90.000035,0.000000,0.000000 -2907,-3.0,90.000035,0.000000,0.000000 -2908,-3.0,90.000035,0.000000,0.000000 -2909,-3.0,90.000035,0.000000,0.000000 -2910,-3.0,90.000035,0.000000,0.000000 -2911,-3.0,90.000035,0.000000,0.000000 -2912,-3.0,90.000035,0.000000,0.000000 -2913,-3.0,90.000035,0.000000,0.000000 -2914,-3.0,90.000035,0.000000,0.000000 -2915,-3.0,90.000035,0.000000,0.000000 -2916,-3.0,90.000035,0.000000,0.000000 -2917,-3.0,90.000035,0.000000,0.000000 -2918,-3.0,90.000035,0.000000,0.000000 -2919,-3.0,90.000035,0.000000,0.000000 -2920,-3.0,90.000035,0.000000,0.000000 -2921,-3.0,90.000035,0.000000,0.000000 -2922,-3.0,90.000035,0.000000,0.000000 -2923,-3.0,90.000035,0.000000,0.000000 -2924,-3.0,90.000035,0.000000,0.000000 -2925,-3.0,90.000035,0.000000,0.000000 -2926,-3.0,90.000035,0.000000,0.000000 -2927,-3.0,90.000035,0.000000,0.000000 -2928,-3.0,90.000035,0.000000,0.000000 -2929,-3.0,90.000035,0.000000,0.000000 -2930,-3.0,90.000035,0.000000,0.000000 -2931,-3.0,90.000035,0.000000,0.000000 -2932,-3.0,90.000035,0.000000,0.000000 -2933,-3.0,90.000035,0.000000,0.000000 -2934,-3.0,90.000035,0.000000,0.000000 -2935,-3.0,90.000035,0.000000,0.000000 -2936,-3.0,90.000035,0.000000,0.000000 -2937,-3.0,90.000035,0.000000,0.000000 -2938,-3.0,90.000035,0.000000,0.000000 -2939,-3.0,90.000035,0.000000,0.000000 -2940,-3.0,90.000035,0.000000,0.000000 -2941,-3.0,90.000035,0.000000,0.000000 -2942,-3.0,90.000035,0.000000,0.000000 -2943,-3.0,90.000035,0.000000,0.000000 -2944,-3.0,90.000035,0.000000,0.000000 -2945,-3.0,90.000035,0.000000,0.000000 -2946,-3.0,90.000035,0.000000,0.000000 -2947,-3.0,90.000035,0.000000,0.000000 -2948,-3.0,90.000035,0.000000,0.000000 -2949,-3.0,90.000035,0.000000,0.000000 -2950,-3.0,90.000035,0.000000,0.000000 -2951,-3.0,90.000035,0.000000,0.000000 -2952,-3.0,90.000035,0.000000,0.000000 -2953,-3.0,90.000035,0.000000,0.000000 -2954,-3.0,90.000035,0.000000,0.000000 -2955,-3.0,90.000035,0.000000,0.000000 -2956,-3.0,90.000035,0.000000,0.000000 -2957,-3.0,90.000035,0.000000,0.000000 -2958,-3.0,90.000035,0.000000,0.000000 -2959,-3.0,90.000035,0.000000,0.000000 -2960,-3.0,90.000035,0.000000,0.000000 -2961,-3.0,90.000035,0.000000,0.000000 -2962,-3.0,90.000035,0.000000,0.000000 -2963,-3.0,90.000035,0.000000,0.000000 -2964,-3.0,90.000035,0.000000,0.000000 -2965,-3.0,90.000035,0.000000,0.000000 -2966,-3.0,90.000035,0.000000,0.000000 -2967,-3.0,90.000035,0.000000,0.000000 -2968,-3.0,90.000035,0.000000,0.000000 -2969,-3.0,90.000035,0.000000,0.000000 -2970,-3.0,90.000035,0.000000,0.000000 -2971,-3.0,90.000035,0.000000,0.000000 -2972,-3.0,90.000035,0.000000,0.000000 -2973,-3.0,90.000035,0.000000,0.000000 -2974,-3.0,90.000035,0.000000,0.000000 -2975,-3.0,90.000035,0.000000,0.000000 -2976,-3.0,90.000035,0.000000,0.000000 -2977,-3.0,90.000035,0.000000,0.000000 -2978,-3.0,90.000035,0.000000,0.000000 -2979,-3.0,90.000035,0.000000,0.000000 -2980,-3.0,90.000035,0.000000,0.000000 -2981,-3.0,90.000035,0.000000,0.000000 -2982,-3.0,90.000035,0.000000,0.000000 -2983,-3.0,90.000035,0.000000,0.000000 -2984,-3.0,90.000035,0.000000,0.000000 -2985,-3.0,90.000035,0.000000,0.000000 -2986,-3.0,90.000035,0.000000,0.000000 -2987,-3.0,90.000035,0.000000,0.000000 -2988,-3.0,90.000035,0.000000,0.000000 -2989,-3.0,90.000035,0.000000,0.000000 -2990,-3.0,90.000035,0.000000,0.000000 -2991,-3.0,90.000035,0.000000,0.000000 -2992,-3.0,90.000035,0.000000,0.000000 -2993,-3.0,90.000035,0.000000,0.000000 -2994,-3.0,90.000035,0.000000,0.000000 -2995,-3.0,90.000035,0.000000,0.000000 -2996,-3.0,90.000035,0.000000,0.000000 -2997,-3.0,90.000035,0.000000,0.000000 -2998,-3.0,90.000035,0.000000,0.000000 -2999,-3.0,90.000035,0.000000,0.000000 -3000,-3.0,90.000035,0.000000,0.000000 -3001,-3.0,90.000035,0.000000,0.000000 -3002,-3.0,90.000035,0.000000,0.000000 -3003,-3.0,90.000035,0.000000,0.000000 -3004,-3.0,90.000035,0.000000,0.000000 -3005,-3.0,90.000035,0.000000,0.000000 -3006,-3.0,90.000035,0.000000,0.000000 -3007,-3.0,90.000035,0.000000,0.000000 -3008,-3.0,90.000035,0.000000,0.000000 -3009,-3.0,90.000035,0.000000,0.000000 -3010,-3.0,90.000035,0.000000,0.000000 -3011,-3.0,90.000035,0.000000,0.000000 -3012,-3.0,90.000035,0.000000,0.000000 -3013,-3.0,90.000035,0.000000,0.000000 -3014,-3.0,90.000035,0.000000,0.000000 -3015,-3.0,90.000035,0.000000,0.000000 -3016,-3.0,90.000035,0.000000,0.000000 -3017,-3.0,90.000035,0.000000,0.000000 -3018,-3.0,90.000035,0.000000,0.000000 -3019,-3.0,90.000035,0.000000,0.000000 -3020,-3.0,90.000035,0.000000,0.000000 -3021,-3.0,90.000035,0.000000,0.000000 -3022,-3.0,90.000035,0.000000,0.000000 -3023,-3.0,90.000035,0.000000,0.000000 -3024,-3.0,90.000035,0.000000,0.000000 -3025,-3.0,90.000035,0.000000,0.000000 -3026,-3.0,90.000035,0.000000,0.000000 -3027,-3.0,90.000035,0.000000,0.000000 -3028,-3.0,90.000035,0.000000,0.000000 -3029,-3.0,90.000035,0.000000,0.000000 -3030,-3.0,90.000035,0.000000,0.000000 -3031,-3.0,90.000035,0.000000,0.000000 -3032,-3.0,90.000035,0.000000,0.000000 -3033,-3.0,90.000035,0.000000,0.000000 -3034,-3.0,90.000035,0.000000,0.000000 -3035,-3.0,90.000035,0.000000,0.000000 -3036,-3.0,90.000035,0.000000,0.000000 -3037,-3.0,90.000035,0.000000,0.000000 -3038,-3.0,90.000035,0.000000,0.000000 -3039,-3.0,90.000035,0.000000,0.000000 -3040,-3.0,90.000035,0.000000,0.000000 -3041,-3.0,90.000035,0.000000,0.000000 -3042,-3.0,90.000035,0.000000,0.000000 -3043,-3.0,90.000035,0.000000,0.000000 -3044,-3.0,90.000035,0.000000,0.000000 -3045,-3.0,90.000035,0.000000,0.000000 -3046,-3.0,90.000035,0.000000,0.000000 -3047,-3.0,90.000035,0.000000,0.000000 -3048,-3.0,90.000035,0.000000,0.000000 -3049,-3.0,90.000035,0.000000,0.000000 -3050,-3.0,90.000035,0.000000,0.000000 -3051,-3.0,90.000035,0.000000,0.000000 -3052,-3.0,90.000035,0.000000,0.000000 -3053,-3.0,90.000035,0.000000,0.000000 -3054,-3.0,90.000035,0.000000,0.000000 -3055,-3.0,90.000035,0.000000,0.000000 -3056,-3.0,90.000035,0.000000,0.000000 -3057,-3.0,90.000035,0.000000,0.000000 -3058,-3.0,90.000035,0.000000,0.000000 -3059,-3.0,90.000035,0.000000,0.000000 -3060,-3.0,90.000035,0.000000,0.000000 -3061,-3.0,90.000035,0.000000,0.000000 -3062,-3.0,90.000035,0.000000,0.000000 -3063,-3.0,90.000035,0.000000,0.000000 -3064,-3.0,90.000035,0.000000,0.000000 -3065,-3.0,90.000035,0.000000,0.000000 -3066,-3.0,90.000035,0.000000,0.000000 -3067,-3.0,90.000035,0.000000,0.000000 -3068,-3.0,90.000035,0.000000,0.000000 -3069,-3.0,90.000035,0.000000,0.000000 -3070,-3.0,90.000035,0.000000,0.000000 -3071,-3.0,90.000035,0.000000,0.000000 -3072,-3.0,90.000035,0.000000,0.000000 -3073,-3.0,90.000035,0.000000,0.000000 -3074,-3.0,90.000035,0.000000,0.000000 -3075,-3.0,90.000035,0.000000,0.000000 -3076,-3.0,90.000035,0.000000,0.000000 -3077,-3.0,90.000035,0.000000,0.000000 -3078,-3.0,90.000035,0.000000,0.000000 -3079,-3.0,90.000035,0.000000,0.000000 -3080,-3.0,90.000035,0.000000,0.000000 -3081,-3.0,90.000035,0.000000,0.000000 -3082,-3.0,90.000035,0.000000,0.000000 -3083,-3.0,90.000035,0.000000,0.000000 -3084,-3.0,90.000035,0.000000,0.000000 -3085,-3.0,90.000035,0.000000,0.000000 -3086,-3.0,90.000035,0.000000,0.000000 -3087,-3.0,90.000035,0.000000,0.000000 -3088,-3.0,90.000035,0.000000,0.000000 -3089,-3.0,90.000035,0.000000,0.000000 -3090,-3.0,90.000035,0.000000,0.000000 -3091,-3.0,90.000035,0.000000,0.000000 -3092,-3.0,90.000035,0.000000,0.000000 -3093,-3.0,90.000035,0.000000,0.000000 -3094,-3.0,90.000035,0.000000,0.000000 -3095,-3.0,90.000035,0.000000,0.000000 -3096,-3.0,90.000035,0.000000,0.000000 -3097,-3.0,90.000035,0.000000,0.000000 -3098,-3.0,90.000035,0.000000,0.000000 -3099,-3.0,90.000035,0.000000,0.000000 -3100,-3.0,90.000035,0.000000,0.000000 -3101,-3.0,90.000035,0.000000,0.000000 -3102,-3.0,90.000035,0.000000,0.000000 -3103,-3.0,90.000035,0.000000,0.000000 -3104,-3.0,90.000035,0.000000,0.000000 -3105,-3.0,90.000035,0.000000,0.000000 -3106,-3.0,90.000035,0.000000,0.000000 -3107,-3.0,90.000035,0.000000,0.000000 -3108,-3.0,90.000035,0.000000,0.000000 -3109,-3.0,90.000035,0.000000,0.000000 -3110,-3.0,90.000035,0.000000,0.000000 -3111,-3.0,90.000035,0.000000,0.000000 -3112,-3.0,90.000035,0.000000,0.000000 -3113,-3.0,90.000035,0.000000,0.000000 -3114,-3.0,90.000035,0.000000,0.000000 -3115,-3.0,90.000035,0.000000,0.000000 -3116,-3.0,90.000035,0.000000,0.000000 -3117,-3.0,90.000035,0.000000,0.000000 -3118,-3.0,90.000035,0.000000,0.000000 -3119,-3.0,90.000035,0.000000,0.000000 -3120,-3.0,90.000035,0.000000,0.000000 -3121,-3.0,90.000035,0.000000,0.000000 -3122,-3.0,90.000035,0.000000,0.000000 -3123,-3.0,90.000035,0.000000,0.000000 -3124,-3.0,90.000035,0.000000,0.000000 -3125,-3.0,90.000035,0.000000,0.000000 -3126,-3.0,90.000035,0.000000,0.000000 -3127,-3.0,90.000035,0.000000,0.000000 -3128,-3.0,90.000035,0.000000,0.000000 -3129,-3.0,90.000035,0.000000,0.000000 -3130,-3.0,90.000035,0.000000,0.000000 -3131,-3.0,90.000035,0.000000,0.000000 -3132,-3.0,90.000035,0.000000,0.000000 -3133,-3.0,90.000035,0.000000,0.000000 -3134,-3.0,90.000035,0.000000,0.000000 -3135,-3.0,90.000035,0.000000,0.000000 -3136,-3.0,90.000035,0.000000,0.000000 -3137,-3.0,90.000035,0.000000,0.000000 -3138,-3.0,90.000035,0.000000,0.000000 -3139,-3.0,90.000035,0.000000,0.000000 -3140,-3.0,90.000035,0.000000,0.000000 -3141,-3.0,90.000035,0.000000,0.000000 -3142,-3.0,90.000035,0.000000,0.000000 -3143,-3.0,90.000035,0.000000,0.000000 -3144,-3.0,90.000035,0.000000,0.000000 -3145,-3.0,90.000035,0.000000,0.000000 -3146,-3.0,90.000035,0.000000,0.000000 -3147,-3.0,90.000035,0.000000,0.000000 -3148,-3.0,90.000035,0.000000,0.000000 -3149,-3.0,90.000035,0.000000,0.000000 -3150,-3.0,90.000035,0.000000,0.000000 -3151,-3.0,90.000035,0.000000,0.000000 -3152,-3.0,90.000035,0.000000,0.000000 -3153,-3.0,90.000035,0.000000,0.000000 -3154,-3.0,90.000035,0.000000,0.000000 -3155,-3.0,90.000035,0.000000,0.000000 -3156,-3.0,90.000035,0.000000,0.000000 -3157,-3.0,90.000035,0.000000,0.000000 -3158,-3.0,90.000035,0.000000,0.000000 -3159,-3.0,90.000035,0.000000,0.000000 -3160,-3.0,90.000035,0.000000,0.000000 -3161,-3.0,90.000035,0.000000,0.000000 -3162,-3.0,90.000035,0.000000,0.000000 -3163,-3.0,90.000035,0.000000,0.000000 -3164,-3.0,90.000035,0.000000,0.000000 -3165,-3.0,90.000035,0.000000,0.000000 -3166,-3.0,90.000035,0.000000,0.000000 -3167,-3.0,90.000035,0.000000,0.000000 -3168,-3.0,90.000035,0.000000,0.000000 -3169,-3.0,90.000035,0.000000,0.000000 -3170,-3.0,90.000035,0.000000,0.000000 -3171,-3.0,90.000035,0.000000,0.000000 -3172,-3.0,90.000035,0.000000,0.000000 -3173,-3.0,90.000035,0.000000,0.000000 -3174,-3.0,90.000035,0.000000,0.000000 -3175,-3.0,90.000035,0.000000,0.000000 -3176,-3.0,90.000035,0.000000,0.000000 -3177,-3.0,90.000035,0.000000,0.000000 -3178,-3.0,90.000035,0.000000,0.000000 -3179,-3.0,90.000035,0.000000,0.000000 -3180,-3.0,90.000035,0.000000,0.000000 -3181,-3.0,90.000035,0.000000,0.000000 -3182,-3.0,90.000035,0.000000,0.000000 -3183,-3.0,90.000035,0.000000,0.000000 -3184,-3.0,90.000035,0.000000,0.000000 -3185,-3.0,90.000035,0.000000,0.000000 -3186,-3.0,90.000035,0.000000,0.000000 -3187,-3.0,90.000035,0.000000,0.000000 -3188,-3.0,90.000035,0.000000,0.000000 -3189,-3.0,90.000035,0.000000,0.000000 -3190,-3.0,90.000035,0.000000,0.000000 -3191,-3.0,90.000035,0.000000,0.000000 -3192,-3.0,90.000035,0.000000,0.000000 -3193,-3.0,90.000035,0.000000,0.000000 -3194,-3.0,90.000035,0.000000,0.000000 -3195,-3.0,90.000035,0.000000,0.000000 -3196,-3.0,90.000035,0.000000,0.000000 -3197,-3.0,90.000035,0.000000,0.000000 -3198,-3.0,90.000035,0.000000,0.000000 -3199,-3.0,90.000035,0.000000,0.000000 -3200,-3.0,90.000035,0.000000,0.000000 -3201,-3.0,90.000035,0.000000,0.000000 -3202,-3.0,90.000035,0.000000,0.000000 -3203,-3.0,90.000035,0.000000,0.000000 -3204,-3.0,90.000035,0.000000,0.000000 -3205,-3.0,90.000035,0.000000,0.000000 -3206,-3.0,90.000035,0.000000,0.000000 -3207,-3.0,90.000035,0.000000,0.000000 -3208,-3.0,90.000035,0.000000,0.000000 -3209,-3.0,90.000035,0.000000,0.000000 -3210,-3.0,90.000035,0.000000,0.000000 -3211,-3.0,90.000035,0.000000,0.000000 -3212,-3.0,90.000035,0.000000,0.000000 -3213,-3.0,90.000035,0.000000,0.000000 -3214,-3.0,90.000035,0.000000,0.000000 -3215,-3.0,90.000035,0.000000,0.000000 -3216,-3.0,90.000035,0.000000,0.000000 -3217,-3.0,90.000035,0.000000,0.000000 -3218,-3.0,90.000035,0.000000,0.000000 -3219,-3.0,90.000035,0.000000,0.000000 -3220,-3.0,90.000035,0.000000,0.000000 -3221,-3.0,90.000035,0.000000,0.000000 -3222,-3.0,90.000035,0.000000,0.000000 -3223,-3.0,90.000035,0.000000,0.000000 -3224,-3.0,90.000035,0.000000,0.000000 -3225,-3.0,90.000035,0.000000,0.000000 -3226,-3.0,90.000035,0.000000,0.000000 -3227,-3.0,90.000035,0.000000,0.000000 -3228,-3.0,90.000035,0.000000,0.000000 -3229,-3.0,90.000035,0.000000,0.000000 -3230,-3.0,90.000035,0.000000,0.000000 -3231,-3.0,90.000035,0.000000,0.000000 -3232,-3.0,90.000035,0.000000,0.000000 -3233,-3.0,90.000035,0.000000,0.000000 -3234,-3.0,90.000035,0.000000,0.000000 -3235,-3.0,90.000035,0.000000,0.000000 -3236,-3.0,90.000035,0.000000,0.000000 -3237,-3.0,90.000035,0.000000,0.000000 -3238,-3.0,90.000035,0.000000,0.000000 -3239,-3.0,90.000035,0.000000,0.000000 -3240,-3.0,90.000035,0.000000,0.000000 -3241,-3.0,90.000035,0.000000,0.000000 -3242,-3.0,90.000035,0.000000,0.000000 -3243,-3.0,90.000035,0.000000,0.000000 -3244,-3.0,90.000035,0.000000,0.000000 -3245,-3.0,90.000035,0.000000,0.000000 -3246,-3.0,90.000035,0.000000,0.000000 -3247,-3.0,90.000035,0.000000,0.000000 -3248,-3.0,90.000035,0.000000,0.000000 -3249,-3.0,90.000035,0.000000,0.000000 -3250,-3.0,90.000035,0.000000,0.000000 -3251,-3.0,90.000035,0.000000,0.000000 -3252,-3.0,90.000035,0.000000,0.000000 -3253,-3.0,90.000035,0.000000,0.000000 -3254,-3.0,90.000035,0.000000,0.000000 -3255,-3.0,90.000035,0.000000,0.000000 -3256,-3.0,90.000035,0.000000,0.000000 -3257,-3.0,90.000035,0.000000,0.000000 -3258,-3.0,90.000035,0.000000,0.000000 -3259,-3.0,90.000035,0.000000,0.000000 -3260,-3.0,90.000035,0.000000,0.000000 -3261,-3.0,90.000035,0.000000,0.000000 -3262,-3.0,90.000035,0.000000,0.000000 -3263,-3.0,90.000035,0.000000,0.000000 -3264,-3.0,90.000035,0.000000,0.000000 -3265,-3.0,90.000035,0.000000,0.000000 -3266,-3.0,90.000035,0.000000,0.000000 -3267,-3.0,90.000035,0.000000,0.000000 -3268,-3.0,90.000035,0.000000,0.000000 -3269,-3.0,90.000035,0.000000,0.000000 -3270,-3.0,90.000035,0.000000,0.000000 -3271,-3.0,90.000035,0.000000,0.000000 -3272,-3.0,90.000035,0.000000,0.000000 -3273,-3.0,90.000035,0.000000,0.000000 -3274,-3.0,90.000035,0.000000,0.000000 -3275,-3.0,90.000035,0.000000,0.000000 -3276,-3.0,90.000035,0.000000,0.000000 -3277,-3.0,90.000035,0.000000,0.000000 -3278,-3.0,90.000035,0.000000,0.000000 -3279,-3.0,90.000035,0.000000,0.000000 -3280,-3.0,90.000035,0.000000,0.000000 -3281,-3.0,90.000035,0.000000,0.000000 -3282,-3.0,90.000035,0.000000,0.000000 -3283,-3.0,90.000035,0.000000,0.000000 -3284,-3.0,90.000035,0.000000,0.000000 -3285,-3.0,90.000035,0.000000,0.000000 -3286,-3.0,90.000035,0.000000,0.000000 -3287,-3.0,90.000035,0.000000,0.000000 -3288,-3.0,90.000035,0.000000,0.000000 -3289,-3.0,90.000035,0.000000,0.000000 -3290,-3.0,90.000035,0.000000,0.000000 -3291,-3.0,90.000035,0.000000,0.000000 -3292,-3.0,90.000035,0.000000,0.000000 -3293,-3.0,90.000035,0.000000,0.000000 -3294,-3.0,90.000035,0.000000,0.000000 -3295,-3.0,90.000035,0.000000,0.000000 -3296,-3.0,90.000035,0.000000,0.000000 -3297,-3.0,90.000035,0.000000,0.000000 -3298,-3.0,90.000035,0.000000,0.000000 -3299,-3.0,90.000035,0.000000,0.000000 -3300,-3.0,90.000035,0.000000,0.000000 -3301,-3.0,90.000035,0.000000,0.000000 -3302,-3.0,90.000035,0.000000,0.000000 -3303,-3.0,90.000035,0.000000,0.000000 -3304,-3.0,90.000035,0.000000,0.000000 -3305,-3.0,90.000035,0.000000,0.000000 -3306,-3.0,90.000035,0.000000,0.000000 -3307,-3.0,90.000035,0.000000,0.000000 -3308,-3.0,90.000035,0.000000,0.000000 -3309,-3.0,90.000035,0.000000,0.000000 -3310,-3.0,90.000035,0.000000,0.000000 -3311,-3.0,90.000035,0.000000,0.000000 -3312,-3.0,90.000035,0.000000,0.000000 -3313,-3.0,90.000035,0.000000,0.000000 -3314,-3.0,90.000035,0.000000,0.000000 -3315,-3.0,90.000035,0.000000,0.000000 -3316,-3.0,90.000035,0.000000,0.000000 -3317,-3.0,90.000035,0.000000,0.000000 -3318,-3.0,90.000035,0.000000,0.000000 -3319,-3.0,90.000035,0.000000,0.000000 -3320,-3.0,90.000035,0.000000,0.000000 -3321,-3.0,90.000035,0.000000,0.000000 -3322,-3.0,90.000035,0.000000,0.000000 -3323,-3.0,90.000035,0.000000,0.000000 -3324,-3.0,90.000035,0.000000,0.000000 -3325,-3.0,90.000035,0.000000,0.000000 -3326,-3.0,90.000035,0.000000,0.000000 -3327,-3.0,90.000035,0.000000,0.000000 -3328,-3.0,90.000035,0.000000,0.000000 -3329,-3.0,90.000035,0.000000,0.000000 -3330,-3.0,90.000035,0.000000,0.000000 -3331,-3.0,90.000035,0.000000,0.000000 -3332,-3.0,90.000035,0.000000,0.000000 -3333,-3.0,90.000035,0.000000,0.000000 -3334,-3.0,90.000035,0.000000,0.000000 -3335,-3.0,90.000035,0.000000,0.000000 -3336,-3.0,90.000035,0.000000,0.000000 -3337,-3.0,90.000035,0.000000,0.000000 -3338,-3.0,90.000035,0.000000,0.000000 -3339,-3.0,90.000035,0.000000,0.000000 -3340,-3.0,90.000035,0.000000,0.000000 -3341,-3.0,90.000035,0.000000,0.000000 -3342,-3.0,90.000035,0.000000,0.000000 -3343,-3.0,90.000035,0.000000,0.000000 -3344,-3.0,90.000035,0.000000,0.000000 -3345,-3.0,90.000035,0.000000,0.000000 -3346,-3.0,90.000035,0.000000,0.000000 -3347,-3.0,90.000035,0.000000,0.000000 -3348,-3.0,90.000035,0.000000,0.000000 -3349,-3.0,90.000035,0.000000,0.000000 -3350,-3.0,90.000035,0.000000,0.000000 -3351,-3.0,90.000035,0.000000,0.000000 -3352,-3.0,90.000035,0.000000,0.000000 -3353,-3.0,90.000035,0.000000,0.000000 -3354,-3.0,90.000035,0.000000,0.000000 -3355,-3.0,90.000035,0.000000,0.000000 -3356,-3.0,90.000035,0.000000,0.000000 -3357,-3.0,90.000035,0.000000,0.000000 -3358,-3.0,90.000035,0.000000,0.000000 -3359,-3.0,90.000035,0.000000,0.000000 -3360,-3.0,90.000035,0.000000,0.000000 -3361,-3.0,90.000035,0.000000,0.000000 -3362,-3.0,90.000035,0.000000,0.000000 -3363,-3.0,90.000035,0.000000,0.000000 -3364,-3.0,90.000035,0.000000,0.000000 -3365,-3.0,90.000035,0.000000,0.000000 -3366,-3.0,90.000035,0.000000,0.000000 -3367,-3.0,90.000035,0.000000,0.000000 -3368,-3.0,90.000035,0.000000,0.000000 -3369,-3.0,90.000035,0.000000,0.000000 -3370,-3.0,90.000035,0.000000,0.000000 -3371,-3.0,90.000035,0.000000,0.000000 -3372,-3.0,90.000035,0.000000,0.000000 -3373,-3.0,90.000035,0.000000,0.000000 -3374,-3.0,90.000035,0.000000,0.000000 -3375,-3.0,90.000035,0.000000,0.000000 -3376,-3.0,90.000035,0.000000,0.000000 -3377,-3.0,90.000035,0.000000,0.000000 -3378,-3.0,90.000035,0.000000,0.000000 -3379,-3.0,90.000035,0.000000,0.000000 -3380,-3.0,90.000035,0.000000,0.000000 -3381,-3.0,90.000035,0.000000,0.000000 -3382,-3.0,90.000035,0.000000,0.000000 -3383,-3.0,90.000035,0.000000,0.000000 -3384,-3.0,90.000035,0.000000,0.000000 -3385,-3.0,90.000035,0.000000,0.000000 -3386,-3.0,90.000035,0.000000,0.000000 -3387,-3.0,90.000035,0.000000,0.000000 -3388,-3.0,90.000035,0.000000,0.000000 -3389,-3.0,90.000035,0.000000,0.000000 -3390,-3.0,90.000035,0.000000,0.000000 -3391,-3.0,90.000035,0.000000,0.000000 -3392,-3.0,90.000035,0.000000,0.000000 -3393,-3.0,90.000035,0.000000,0.000000 -3394,-3.0,90.000035,0.000000,0.000000 -3395,-3.0,90.000035,0.000000,0.000000 -3396,-3.0,90.000035,0.000000,0.000000 -3397,-3.0,90.000035,0.000000,0.000000 -3398,-3.0,90.000035,0.000000,0.000000 -3399,-3.0,90.000035,0.000000,0.000000 -3400,-3.0,90.000035,0.000000,0.000000 -3401,-3.0,90.000035,0.000000,0.000000 -3402,-3.0,90.000035,0.000000,0.000000 -3403,-3.0,90.000035,0.000000,0.000000 -3404,-3.0,90.000035,0.000000,0.000000 -3405,-3.0,90.000035,0.000000,0.000000 -3406,-3.0,90.000035,0.000000,0.000000 -3407,-3.0,90.000035,0.000000,0.000000 -3408,-3.0,90.000035,0.000000,0.000000 -3409,-3.0,90.000035,0.000000,0.000000 -3410,-3.0,90.000035,0.000000,0.000000 -3411,-3.0,90.000035,0.000000,0.000000 -3412,-3.0,90.000035,0.000000,0.000000 -3413,-3.0,90.000035,0.000000,0.000000 -3414,-3.0,90.000035,0.000000,0.000000 -3415,-3.0,90.000035,0.000000,0.000000 -3416,-3.0,90.000035,0.000000,0.000000 -3417,-3.0,90.000035,0.000000,0.000000 -3418,-3.0,90.000035,0.000000,0.000000 -3419,-3.0,90.000035,0.000000,0.000000 -3420,-3.0,90.000035,0.000000,0.000000 -3421,-3.0,90.000035,0.000000,0.000000 -3422,-3.0,90.000035,0.000000,0.000000 -3423,-3.0,90.000035,0.000000,0.000000 -3424,-3.0,90.000035,0.000000,0.000000 -3425,-3.0,90.000035,0.000000,0.000000 -3426,-3.0,90.000035,0.000000,0.000000 -3427,-3.0,90.000035,0.000000,0.000000 -3428,-3.0,90.000035,0.000000,0.000000 -3429,-3.0,90.000035,0.000000,0.000000 -3430,-3.0,90.000035,0.000000,0.000000 -3431,-3.0,90.000035,0.000000,0.000000 -3432,-3.0,90.000035,0.000000,0.000000 -3433,-3.0,90.000035,0.000000,0.000000 -3434,-3.0,90.000035,0.000000,0.000000 -3435,-3.0,90.000035,0.000000,0.000000 -3436,-3.0,90.000035,0.000000,0.000000 -3437,-3.0,90.000035,0.000000,0.000000 -3438,-3.0,90.000035,0.000000,0.000000 -3439,-3.0,90.000035,0.000000,0.000000 -3440,-3.0,90.000035,0.000000,0.000000 -3441,-3.0,90.000035,0.000000,0.000000 -3442,-3.0,90.000035,0.000000,0.000000 -3443,-3.0,90.000035,0.000000,0.000000 -3444,-3.0,90.000035,0.000000,0.000000 -3445,-3.0,90.000035,0.000000,0.000000 -3446,-3.0,90.000035,0.000000,0.000000 -3447,-3.0,90.000035,0.000000,0.000000 -3448,-3.0,90.000035,0.000000,0.000000 -3449,-3.0,90.000035,0.000000,0.000000 -3450,-3.0,90.000035,0.000000,0.000000 -3451,-3.0,90.000035,0.000000,0.000000 -3452,-3.0,90.000035,0.000000,0.000000 -3453,-3.0,90.000035,0.000000,0.000000 -3454,-3.0,90.000035,0.000000,0.000000 -3455,-3.0,90.000035,0.000000,0.000000 -3456,-3.0,90.000035,0.000000,0.000000 -3457,-3.0,90.000035,0.000000,0.000000 -3458,-3.0,90.000035,0.000000,0.000000 -3459,-3.0,90.000035,0.000000,0.000000 -3460,-3.0,90.000035,0.000000,0.000000 -3461,-3.0,90.000035,0.000000,0.000000 -3462,-3.0,90.000035,0.000000,0.000000 -3463,-3.0,90.000035,0.000000,0.000000 -3464,-3.0,90.000035,0.000000,0.000000 -3465,-3.0,90.000035,0.000000,0.000000 -3466,-3.0,90.000035,0.000000,0.000000 -3467,-3.0,90.000035,0.000000,0.000000 -3468,-3.0,90.000035,0.000000,0.000000 -3469,-3.0,90.000035,0.000000,0.000000 -3470,-3.0,90.000035,0.000000,0.000000 -3471,-3.0,90.000035,0.000000,0.000000 -3472,-3.0,90.000035,0.000000,0.000000 -3473,-3.0,90.000035,0.000000,0.000000 -3474,-3.0,90.000035,0.000000,0.000000 -3475,-3.0,90.000035,0.000000,0.000000 -3476,-3.0,90.000035,0.000000,0.000000 -3477,-3.0,90.000035,0.000000,0.000000 -3478,-3.0,90.000035,0.000000,0.000000 -3479,-3.0,90.000035,0.000000,0.000000 -3480,-3.0,90.000035,0.000000,0.000000 -3481,-3.0,90.000035,0.000000,0.000000 -3482,-3.0,90.000035,0.000000,0.000000 -3483,-3.0,90.000035,0.000000,0.000000 -3484,-3.0,90.000035,0.000000,0.000000 -3485,-3.0,90.000035,0.000000,0.000000 -3486,-3.0,90.000035,0.000000,0.000000 -3487,-3.0,90.000035,0.000000,0.000000 -3488,-3.0,90.000035,0.000000,0.000000 -3489,-3.0,90.000035,0.000000,0.000000 -3490,-3.0,90.000035,0.000000,0.000000 -3491,-3.0,90.000035,0.000000,0.000000 -3492,-3.0,90.000035,0.000000,0.000000 -3493,-3.0,90.000035,0.000000,0.000000 -3494,-3.0,90.000035,0.000000,0.000000 -3495,-3.0,90.000035,0.000000,0.000000 -3496,-3.0,90.000035,0.000000,0.000000 -3497,-3.0,90.000035,0.000000,0.000000 -3498,-3.0,90.000035,0.000000,0.000000 -3499,-3.0,90.000035,0.000000,0.000000 -3500,-3.0,90.000035,0.000000,0.000000 -3501,-3.0,90.000035,0.000000,0.000000 -3502,-3.0,90.000035,0.000000,0.000000 -3503,-3.0,90.000035,0.000000,0.000000 -3504,-3.0,90.000035,0.000000,0.000000 -3505,-3.0,90.000035,0.000000,0.000000 -3506,-3.0,90.000035,0.000000,0.000000 -3507,-3.0,90.000035,0.000000,0.000000 -3508,-3.0,90.000035,0.000000,0.000000 -3509,-3.0,90.000035,0.000000,0.000000 -3510,-3.0,90.000035,0.000000,0.000000 -3511,-3.0,90.000035,0.000000,0.000000 -3512,-3.0,90.000035,0.000000,0.000000 -3513,-3.0,90.000035,0.000000,0.000000 -3514,-3.0,90.000035,0.000000,0.000000 -3515,-3.0,90.000035,0.000000,0.000000 -3516,-3.0,90.000035,0.000000,0.000000 -3517,-3.0,90.000035,0.000000,0.000000 -3518,-3.0,90.000035,0.000000,0.000000 -3519,-3.0,90.000035,0.000000,0.000000 -3520,-3.0,90.000035,0.000000,0.000000 -3521,-3.0,90.000035,0.000000,0.000000 -3522,-3.0,90.000035,0.000000,0.000000 -3523,-3.0,90.000035,0.000000,0.000000 -3524,-3.0,90.000035,0.000000,0.000000 -3525,-3.0,90.000035,0.000000,0.000000 -3526,-3.0,90.000035,0.000000,0.000000 -3527,-3.0,90.000035,0.000000,0.000000 -3528,-3.0,90.000035,0.000000,0.000000 -3529,-3.0,90.000035,0.000000,0.000000 -3530,-3.0,90.000035,0.000000,0.000000 -3531,-3.0,90.000035,0.000000,0.000000 -3532,-3.0,90.000035,0.000000,0.000000 -3533,-3.0,90.000035,0.000000,0.000000 -3534,-3.0,90.000035,0.000000,0.000000 -3535,-3.0,90.000035,0.000000,0.000000 -3536,-3.0,90.000035,0.000000,0.000000 -3537,-3.0,90.000035,0.000000,0.000000 -3538,-3.0,90.000035,0.000000,0.000000 -3539,-3.0,90.000035,0.000000,0.000000 -3540,-3.0,90.000035,0.000000,0.000000 -3541,-3.0,90.000035,0.000000,0.000000 -3542,-3.0,90.000035,0.000000,0.000000 -3543,-3.0,90.000035,0.000000,0.000000 -3544,-3.0,90.000035,0.000000,0.000000 -3545,-3.0,90.000035,0.000000,0.000000 -3546,-3.0,90.000035,0.000000,0.000000 -3547,-3.0,90.000035,0.000000,0.000000 -3548,-3.0,90.000035,0.000000,0.000000 -3549,-3.0,90.000035,0.000000,0.000000 -3550,-3.0,90.000035,0.000000,0.000000 -3551,-3.0,90.000035,0.000000,0.000000 -3552,-3.0,90.000035,0.000000,0.000000 -3553,-3.0,90.000035,0.000000,0.000000 -3554,-3.0,90.000035,0.000000,0.000000 -3555,-3.0,90.000035,0.000000,0.000000 -3556,-3.0,90.000035,0.000000,0.000000 -3557,-3.0,90.000035,0.000000,0.000000 -3558,-3.0,90.000035,0.000000,0.000000 -3559,-3.0,90.000035,0.000000,0.000000 -3560,-3.0,90.000035,0.000000,0.000000 -3561,-3.0,90.000035,0.000000,0.000000 -3562,-3.0,90.000035,0.000000,0.000000 -3563,-3.0,90.000035,0.000000,0.000000 -3564,-3.0,90.000035,0.000000,0.000000 -3565,-3.0,90.000035,0.000000,0.000000 -3566,-3.0,90.000035,0.000000,0.000000 -3567,-3.0,90.000035,0.000000,0.000000 -3568,-3.0,90.000035,0.000000,0.000000 -3569,-3.0,90.000035,0.000000,0.000000 -3570,-3.0,90.000035,0.000000,0.000000 -3571,-3.0,90.000035,0.000000,0.000000 -3572,-3.0,90.000035,0.000000,0.000000 -3573,-3.0,90.000035,0.000000,0.000000 -3574,-3.0,90.000035,0.000000,0.000000 -3575,-3.0,90.000035,0.000000,0.000000 -3576,-3.0,90.000035,0.000000,0.000000 -3577,-3.0,90.000035,0.000000,0.000000 -3578,-3.0,90.000035,0.000000,0.000000 -3579,-3.0,90.000035,0.000000,0.000000 -3580,-3.0,90.000035,0.000000,0.000000 -3581,-3.0,90.000035,0.000000,0.000000 -3582,-3.0,90.000035,0.000000,0.000000 -3583,-3.0,90.000035,0.000000,0.000000 -3584,-3.0,90.000035,0.000000,0.000000 -3585,-3.0,90.000035,0.000000,0.000000 -3586,-3.0,90.000035,0.000000,0.000000 -3587,-3.0,90.000035,0.000000,0.000000 -3588,-3.0,90.000035,0.000000,0.000000 -3589,-3.0,90.000035,0.000000,0.000000 -3590,-3.0,90.000035,0.000000,0.000000 -3591,-3.0,90.000035,0.000000,0.000000 -3592,-3.0,90.000035,0.000000,0.000000 -3593,-3.0,90.000035,0.000000,0.000000 -3594,-3.0,90.000035,0.000000,0.000000 -3595,-3.0,90.000035,0.000000,0.000000 -3596,-3.0,90.000035,0.000000,0.000000 -3597,-3.0,90.000035,0.000000,0.000000 -3598,-3.0,90.000035,0.000000,0.000000 -3599,-3.0,90.000035,0.000000,0.000000 -3600,-3.0,90.000035,0.000000,0.000000 -3601,-3.0,90.000035,0.000000,0.000000 -3602,-3.0,90.000035,0.000000,0.000000 -3603,-3.0,90.000035,0.000000,0.000000 -3604,-3.0,90.000035,0.000000,0.000000 -3605,-3.0,90.000035,0.000000,0.000000 -3606,-3.0,90.000035,0.000000,0.000000 -3607,-3.0,90.000035,0.000000,0.000000 -3608,-3.0,90.000035,0.000000,0.000000 -3609,-3.0,90.000035,0.000000,0.000000 -3610,-3.0,90.000035,0.000000,0.000000 -3611,-3.0,90.000035,0.000000,0.000000 -3612,-3.0,90.000035,0.000000,0.000000 -3613,-3.0,90.000035,0.000000,0.000000 -3614,-3.0,90.000035,0.000000,0.000000 -3615,-3.0,90.000035,0.000000,0.000000 -3616,-3.0,90.000035,0.000000,0.000000 -3617,-3.0,90.000035,0.000000,0.000000 -3618,-3.0,90.000035,0.000000,0.000000 -3619,-3.0,90.000035,0.000000,0.000000 -3620,-3.0,90.000035,0.000000,0.000000 -3621,-3.0,90.000035,0.000000,0.000000 -3622,-3.0,90.000035,0.000000,0.000000 -3623,-3.0,90.000035,0.000000,0.000000 -3624,-3.0,90.000035,0.000000,0.000000 -3625,-3.0,90.000035,0.000000,0.000000 -3626,-3.0,90.000035,0.000000,0.000000 -3627,-3.0,90.000035,0.000000,0.000000 -3628,-3.0,90.000035,0.000000,0.000000 -3629,-3.0,90.000035,0.000000,0.000000 -3630,-3.0,90.000035,0.000000,0.000000 -3631,-3.0,90.000035,0.000000,0.000000 -3632,-3.0,90.000035,0.000000,0.000000 -3633,-3.0,90.000035,0.000000,0.000000 -3634,-3.0,90.000035,0.000000,0.000000 -3635,-3.0,90.000035,0.000000,0.000000 -3636,-3.0,90.000035,0.000000,0.000000 -3637,-3.0,90.000035,0.000000,0.000000 -3638,-3.0,90.000035,0.000000,0.000000 -3639,-3.0,90.000035,0.000000,0.000000 -3640,-3.0,90.000035,0.000000,0.000000 -3641,-3.0,90.000035,0.000000,0.000000 -3642,-3.0,90.000035,0.000000,0.000000 -3643,-3.0,90.000035,0.000000,0.000000 -3644,-3.0,90.000035,0.000000,0.000000 -3645,-3.0,90.000035,0.000000,0.000000 -3646,-3.0,90.000035,0.000000,0.000000 -3647,-3.0,90.000035,0.000000,0.000000 -3648,-3.0,90.000035,0.000000,0.000000 -3649,-3.0,90.000035,0.000000,0.000000 -3650,-3.0,90.000035,0.000000,0.000000 -3651,-3.0,90.000035,0.000000,0.000000 -3652,-3.0,90.000035,0.000000,0.000000 -3653,-3.0,90.000035,0.000000,0.000000 -3654,-3.0,90.000035,0.000000,0.000000 -3655,-3.0,90.000035,0.000000,0.000000 -3656,-3.0,90.000035,0.000000,0.000000 -3657,-3.0,90.000035,0.000000,0.000000 -3658,-3.0,90.000035,0.000000,0.000000 -3659,-3.0,90.000035,0.000000,0.000000 -3660,-3.0,90.000035,0.000000,0.000000 -3661,-3.0,90.000035,0.000000,0.000000 -3662,-3.0,90.000035,0.000000,0.000000 -3663,-3.0,90.000035,0.000000,0.000000 -3664,-3.0,90.000035,0.000000,0.000000 -3665,-3.0,90.000035,0.000000,0.000000 -3666,-3.0,90.000035,0.000000,0.000000 -3667,-3.0,90.000035,0.000000,0.000000 -3668,-3.0,90.000035,0.000000,0.000000 -3669,-3.0,90.000035,0.000000,0.000000 -3670,-3.0,90.000035,0.000000,0.000000 -3671,-3.0,90.000035,0.000000,0.000000 -3672,-3.0,90.000035,0.000000,0.000000 -3673,-3.0,90.000035,0.000000,0.000000 -3674,-3.0,90.000035,0.000000,0.000000 -3675,-3.0,90.000035,0.000000,0.000000 -3676,-3.0,90.000035,0.000000,0.000000 -3677,-3.0,90.000035,0.000000,0.000000 -3678,-3.0,90.000035,0.000000,0.000000 -3679,-3.0,90.000035,0.000000,0.000000 -3680,-3.0,90.000035,0.000000,0.000000 -3681,-3.0,90.000035,0.000000,0.000000 -3682,-3.0,90.000035,0.000000,0.000000 -3683,-3.0,90.000035,0.000000,0.000000 -3684,-3.0,90.000035,0.000000,0.000000 -3685,-3.0,90.000035,0.000000,0.000000 -3686,-3.0,90.000035,0.000000,0.000000 -3687,-3.0,90.000035,0.000000,0.000000 -3688,-3.0,90.000035,0.000000,0.000000 -3689,-3.0,90.000035,0.000000,0.000000 -3690,-3.0,90.000035,0.000000,0.000000 -3691,-3.0,90.000035,0.000000,0.000000 -3692,-3.0,90.000035,0.000000,0.000000 -3693,-3.0,90.000035,0.000000,0.000000 -3694,-3.0,90.000035,0.000000,0.000000 -3695,-3.0,90.000035,0.000000,0.000000 -3696,-3.0,90.000035,0.000000,0.000000 -3697,-3.0,90.000035,0.000000,0.000000 -3698,-3.0,90.000035,0.000000,0.000000 -3699,-3.0,90.000035,0.000000,0.000000 -3700,-3.0,90.000035,0.000000,0.000000 -3701,-3.0,90.000035,0.000000,0.000000 -3702,-3.0,90.000035,0.000000,0.000000 -3703,-3.0,90.000035,0.000000,0.000000 -3704,-3.0,90.000035,0.000000,0.000000 -3705,-3.0,90.000035,0.000000,0.000000 -3706,-3.0,90.000035,0.000000,0.000000 -3707,-3.0,90.000035,0.000000,0.000000 -3708,-3.0,90.000035,0.000000,0.000000 -3709,-3.0,90.000035,0.000000,0.000000 -3710,-3.0,90.000035,0.000000,0.000000 -3711,-3.0,90.000035,0.000000,0.000000 -3712,-3.0,90.000035,0.000000,0.000000 -3713,-3.0,90.000035,0.000000,0.000000 -3714,-3.0,90.000035,0.000000,0.000000 -3715,-3.0,90.000035,0.000000,0.000000 -3716,-3.0,90.000035,0.000000,0.000000 -3717,-3.0,90.000035,0.000000,0.000000 -3718,-3.0,90.000035,0.000000,0.000000 -3719,-3.0,90.000035,0.000000,0.000000 -3720,-3.0,90.000035,0.000000,0.000000 -3721,-3.0,90.000035,0.000000,0.000000 -3722,-3.0,90.000035,0.000000,0.000000 -3723,-3.0,90.000035,0.000000,0.000000 -3724,-3.0,90.000035,0.000000,0.000000 -3725,-3.0,90.000035,0.000000,0.000000 -3726,-3.0,90.000035,0.000000,0.000000 -3727,-3.0,90.000035,0.000000,0.000000 -3728,-3.0,90.000035,0.000000,0.000000 -3729,-3.0,90.000035,0.000000,0.000000 -3730,-3.0,90.000035,0.000000,0.000000 -3731,-3.0,90.000035,0.000000,0.000000 -3732,-3.0,90.000035,0.000000,0.000000 -3733,-3.0,90.000035,0.000000,0.000000 -3734,-3.0,90.000035,0.000000,0.000000 -3735,-3.0,90.000035,0.000000,0.000000 -3736,-3.0,90.000035,0.000000,0.000000 -3737,-3.0,90.000035,0.000000,0.000000 -3738,-3.0,90.000035,0.000000,0.000000 -3739,-3.0,90.000035,0.000000,0.000000 -3740,-3.0,90.000035,0.000000,0.000000 -3741,-3.0,90.000035,0.000000,0.000000 -3742,-3.0,90.000035,0.000000,0.000000 -3743,-3.0,90.000035,0.000000,0.000000 -3744,-3.0,90.000035,0.000000,0.000000 -3745,-3.0,90.000035,0.000000,0.000000 -3746,-3.0,90.000035,0.000000,0.000000 -3747,-3.0,90.000035,0.000000,0.000000 -3748,-3.0,90.000035,0.000000,0.000000 -3749,-3.0,90.000035,0.000000,0.000000 -3750,-3.0,90.000035,0.000000,0.000000 -3751,-3.0,90.000035,0.000000,0.000000 -3752,-3.0,90.000035,0.000000,0.000000 -3753,-3.0,90.000035,0.000000,0.000000 -3754,-3.0,90.000035,0.000000,0.000000 -3755,-3.0,90.000035,0.000000,0.000000 -3756,-3.0,90.000035,0.000000,0.000000 -3757,-3.0,90.000035,0.000000,0.000000 -3758,-3.0,90.000035,0.000000,0.000000 -3759,-3.0,90.000035,0.000000,0.000000 -3760,-3.0,90.000035,0.000000,0.000000 -3761,-3.0,90.000035,0.000000,0.000000 -3762,-3.0,90.000035,0.000000,0.000000 -3763,-3.0,90.000035,0.000000,0.000000 -3764,-3.0,90.000035,0.000000,0.000000 -3765,-3.0,90.000035,0.000000,0.000000 -3766,-3.0,90.000035,0.000000,0.000000 -3767,-3.0,90.000035,0.000000,0.000000 -3768,-3.0,90.000035,0.000000,0.000000 -3769,-3.0,90.000035,0.000000,0.000000 -3770,-3.0,90.000035,0.000000,0.000000 -3771,-3.0,90.000035,0.000000,0.000000 -3772,-3.0,90.000035,0.000000,0.000000 -3773,-3.0,90.000035,0.000000,0.000000 -3774,-3.0,90.000035,0.000000,0.000000 -3775,-3.0,90.000035,0.000000,0.000000 -3776,-3.0,90.000035,0.000000,0.000000 -3777,-3.0,90.000035,0.000000,0.000000 -3778,-3.0,90.000035,0.000000,0.000000 -3779,-3.0,90.000035,0.000000,0.000000 -3780,-3.0,90.000035,0.000000,0.000000 -3781,-3.0,90.000035,0.000000,0.000000 -3782,-3.0,90.000035,0.000000,0.000000 -3783,-3.0,90.000035,0.000000,0.000000 -3784,-3.0,90.000035,0.000000,0.000000 -3785,-3.0,90.000035,0.000000,0.000000 -3786,-3.0,90.000035,0.000000,0.000000 -3787,-3.0,90.000035,0.000000,0.000000 -3788,-3.0,90.000035,0.000000,0.000000 -3789,-3.0,90.000035,0.000000,0.000000 -3790,-3.0,90.000035,0.000000,0.000000 -3791,-3.0,90.000035,0.000000,0.000000 -3792,-3.0,90.000035,0.000000,0.000000 -3793,-3.0,90.000035,0.000000,0.000000 -3794,-3.0,90.000035,0.000000,0.000000 -3795,-3.0,90.000035,0.000000,0.000000 -3796,-3.0,90.000035,0.000000,0.000000 -3797,-3.0,90.000035,0.000000,0.000000 -3798,-3.0,90.000035,0.000000,0.000000 -3799,-3.0,90.000035,0.000000,0.000000 -3800,-3.0,90.000035,0.000000,0.000000 -3801,-3.0,90.000035,0.000000,0.000000 -3802,-3.0,90.000035,0.000000,0.000000 -3803,-3.0,90.000035,0.000000,0.000000 -3804,-3.0,90.000035,0.000000,0.000000 -3805,-3.0,90.000035,0.000000,0.000000 -3806,-3.0,90.000035,0.000000,0.000000 -3807,-3.0,90.000035,0.000000,0.000000 -3808,-3.0,90.000035,0.000000,0.000000 -3809,-3.0,90.000035,0.000000,0.000000 -3810,-3.0,90.000035,0.000000,0.000000 -3811,-3.0,90.000035,0.000000,0.000000 -3812,-3.0,90.000035,0.000000,0.000000 -3813,-3.0,90.000035,0.000000,0.000000 -3814,-3.0,90.000035,0.000000,0.000000 -3815,-3.0,90.000035,0.000000,0.000000 -3816,-3.0,90.000035,0.000000,0.000000 -3817,-3.0,90.000035,0.000000,0.000000 -3818,-3.0,90.000035,0.000000,0.000000 -3819,-3.0,90.000035,0.000000,0.000000 -3820,-3.0,90.000035,0.000000,0.000000 -3821,-3.0,90.000035,0.000000,0.000000 -3822,-3.0,90.000035,0.000000,0.000000 -3823,-3.0,90.000035,0.000000,0.000000 -3824,-3.0,90.000035,0.000000,0.000000 -3825,-3.0,90.000035,0.000000,0.000000 -3826,-3.0,90.000035,0.000000,0.000000 -3827,-3.0,90.000035,0.000000,0.000000 -3828,-3.0,90.000035,0.000000,0.000000 -3829,-3.0,90.000035,0.000000,0.000000 -3830,-3.0,90.000035,0.000000,0.000000 -3831,-3.0,90.000035,0.000000,0.000000 -3832,-3.0,90.000035,0.000000,0.000000 -3833,-3.0,90.000035,0.000000,0.000000 -3834,-3.0,90.000035,0.000000,0.000000 -3835,-3.0,90.000035,0.000000,0.000000 -3836,-3.0,90.000035,0.000000,0.000000 -3837,-3.0,90.000035,0.000000,0.000000 -3838,-3.0,90.000035,0.000000,0.000000 -3839,-3.0,90.000035,0.000000,0.000000 -3840,-3.0,90.000035,0.000000,0.000000 -3841,-3.0,90.000035,0.000000,0.000000 -3842,-3.0,90.000035,0.000000,0.000000 -3843,-3.0,90.000035,0.000000,0.000000 -3844,-3.0,90.000035,0.000000,0.000000 -3845,-3.0,90.000035,0.000000,0.000000 -3846,-3.0,90.000035,0.000000,0.000000 -3847,-3.0,90.000035,0.000000,0.000000 -3848,-3.0,90.000035,0.000000,0.000000 -3849,-3.0,90.000035,0.000000,0.000000 -3850,-3.0,90.000035,0.000000,0.000000 -3851,-3.0,90.000035,0.000000,0.000000 -3852,-3.0,90.000035,0.000000,0.000000 -3853,-3.0,90.000035,0.000000,0.000000 -3854,-3.0,90.000035,0.000000,0.000000 -3855,-3.0,90.000035,0.000000,0.000000 -3856,-3.0,90.000035,0.000000,0.000000 -3857,-3.0,90.000035,0.000000,0.000000 -3858,-3.0,90.000035,0.000000,0.000000 -3859,-3.0,90.000035,0.000000,0.000000 -3860,-3.0,90.000035,0.000000,0.000000 -3861,-3.0,90.000035,0.000000,0.000000 -3862,-3.0,90.000035,0.000000,0.000000 -3863,-3.0,90.000035,0.000000,0.000000 -3864,-3.0,90.000035,0.000000,0.000000 -3865,-3.0,90.000035,0.000000,0.000000 -3866,-3.0,90.000035,0.000000,0.000000 -3867,-3.0,90.000035,0.000000,0.000000 -3868,-3.0,90.000035,0.000000,0.000000 -3869,-3.0,90.000035,0.000000,0.000000 -3870,-3.0,90.000035,0.000000,0.000000 -3871,-3.0,90.000035,0.000000,0.000000 -3872,-3.0,90.000035,0.000000,0.000000 -3873,-3.0,90.000035,0.000000,0.000000 -3874,-3.0,90.000035,0.000000,0.000000 -3875,-3.0,90.000035,0.000000,0.000000 -3876,-3.0,90.000035,0.000000,0.000000 -3877,-3.0,90.000035,0.000000,0.000000 -3878,-3.0,90.000035,0.000000,0.000000 -3879,-3.0,90.000035,0.000000,0.000000 -3880,-3.0,90.000035,0.000000,0.000000 -3881,-3.0,90.000035,0.000000,0.000000 -3882,-3.0,90.000035,0.000000,0.000000 -3883,-3.0,90.000035,0.000000,0.000000 -3884,-3.0,90.000035,0.000000,0.000000 -3885,-3.0,90.000035,0.000000,0.000000 -3886,-3.0,90.000035,0.000000,0.000000 -3887,-3.0,90.000035,0.000000,0.000000 -3888,-3.0,90.000035,0.000000,0.000000 -3889,-3.0,90.000035,0.000000,0.000000 -3890,-3.0,90.000035,0.000000,0.000000 -3891,-3.0,90.000035,0.000000,0.000000 -3892,-3.0,90.000035,0.000000,0.000000 -3893,-3.0,90.000035,0.000000,0.000000 -3894,-3.0,90.000035,0.000000,0.000000 -3895,-3.0,90.000035,0.000000,0.000000 -3896,-3.0,90.000035,0.000000,0.000000 -3897,-3.0,90.000035,0.000000,0.000000 -3898,-3.0,90.000035,0.000000,0.000000 -3899,-3.0,90.000035,0.000000,0.000000 -3900,-3.0,90.000035,0.000000,0.000000 -3901,-3.0,90.000035,0.000000,0.000000 -3902,-3.0,90.000035,0.000000,0.000000 -3903,-3.0,90.000035,0.000000,0.000000 -3904,-3.0,90.000035,0.000000,0.000000 -3905,-3.0,90.000035,0.000000,0.000000 -3906,-3.0,90.000035,0.000000,0.000000 -3907,-3.0,90.000035,0.000000,0.000000 -3908,-3.0,90.000035,0.000000,0.000000 -3909,-3.0,90.000035,0.000000,0.000000 -3910,-3.0,90.000035,0.000000,0.000000 -3911,-3.0,90.000035,0.000000,0.000000 -3912,-3.0,90.000035,0.000000,0.000000 -3913,-3.0,90.000035,0.000000,0.000000 -3914,-3.0,90.000035,0.000000,0.000000 -3915,-3.0,90.000035,0.000000,0.000000 -3916,-3.0,90.000035,0.000000,0.000000 -3917,-3.0,90.000035,0.000000,0.000000 -3918,-3.0,90.000035,0.000000,0.000000 -3919,-3.0,90.000035,0.000000,0.000000 -3920,-3.0,90.000035,0.000000,0.000000 -3921,-3.0,90.000035,0.000000,0.000000 -3922,-3.0,90.000035,0.000000,0.000000 -3923,-3.0,90.000035,0.000000,0.000000 -3924,-3.0,90.000035,0.000000,0.000000 -3925,-3.0,90.000035,0.000000,0.000000 -3926,-3.0,90.000035,0.000000,0.000000 -3927,-3.0,90.000035,0.000000,0.000000 -3928,-3.0,90.000035,0.000000,0.000000 -3929,-3.0,90.000035,0.000000,0.000000 -3930,-3.0,90.000035,0.000000,0.000000 -3931,-3.0,90.000035,0.000000,0.000000 -3932,-3.0,90.000035,0.000000,0.000000 -3933,-3.0,90.000035,0.000000,0.000000 -3934,-3.0,90.000035,0.000000,0.000000 -3935,-3.0,90.000035,0.000000,0.000000 -3936,-3.0,90.000035,0.000000,0.000000 -3937,-3.0,90.000035,0.000000,0.000000 -3938,-3.0,90.000035,0.000000,0.000000 -3939,-3.0,90.000035,0.000000,0.000000 -3940,-3.0,90.000035,0.000000,0.000000 -3941,-3.0,90.000035,0.000000,0.000000 -3942,-3.0,90.000035,0.000000,0.000000 -3943,-3.0,90.000035,0.000000,0.000000 -3944,-3.0,90.000035,0.000000,0.000000 -3945,-3.0,90.000035,0.000000,0.000000 -3946,-3.0,90.000035,0.000000,0.000000 -3947,-3.0,90.000035,0.000000,0.000000 -3948,-3.0,90.000035,0.000000,0.000000 -3949,-3.0,90.000035,0.000000,0.000000 -3950,-3.0,90.000035,0.000000,0.000000 -3951,-3.0,90.000035,0.000000,0.000000 -3952,-3.0,90.000035,0.000000,0.000000 -3953,-3.0,90.000035,0.000000,0.000000 -3954,-3.0,90.000035,0.000000,0.000000 -3955,-3.0,90.000035,0.000000,0.000000 -3956,-3.0,90.000035,0.000000,0.000000 -3957,-3.0,90.000035,0.000000,0.000000 -3958,-3.0,90.000035,0.000000,0.000000 -3959,-3.0,90.000035,0.000000,0.000000 -3960,-3.0,90.000035,0.000000,0.000000 -3961,-3.0,90.000035,0.000000,0.000000 -3962,-3.0,90.000035,0.000000,0.000000 -3963,-3.0,90.000035,0.000000,0.000000 -3964,-3.0,90.000035,0.000000,0.000000 -3965,-3.0,90.000035,0.000000,0.000000 -3966,-3.0,90.000035,0.000000,0.000000 -3967,-3.0,90.000035,0.000000,0.000000 -3968,-3.0,90.000035,0.000000,0.000000 -3969,-3.0,90.000035,0.000000,0.000000 -3970,-3.0,90.000035,0.000000,0.000000 -3971,-3.0,90.000035,0.000000,0.000000 -3972,-3.0,90.000035,0.000000,0.000000 -3973,-3.0,90.000035,0.000000,0.000000 -3974,-3.0,90.000035,0.000000,0.000000 -3975,-3.0,90.000035,0.000000,0.000000 -3976,-3.0,90.000035,0.000000,0.000000 -3977,-3.0,90.000035,0.000000,0.000000 -3978,-3.0,90.000035,0.000000,0.000000 -3979,-3.0,90.000035,0.000000,0.000000 -3980,-3.0,90.000035,0.000000,0.000000 -3981,-3.0,90.000035,0.000000,0.000000 -3982,-3.0,90.000035,0.000000,0.000000 -3983,-3.0,90.000035,0.000000,0.000000 -3984,-3.0,90.000035,0.000000,0.000000 -3985,-3.0,90.000035,0.000000,0.000000 -3986,-3.0,90.000035,0.000000,0.000000 -3987,-3.0,90.000035,0.000000,0.000000 -3988,-3.0,90.000035,0.000000,0.000000 -3989,-3.0,90.000035,0.000000,0.000000 -3990,-3.0,90.000035,0.000000,0.000000 -3991,-3.0,90.000035,0.000000,0.000000 -3992,-3.0,90.000035,0.000000,0.000000 -3993,-3.0,90.000035,0.000000,0.000000 -3994,-3.0,90.000035,0.000000,0.000000 -3995,-3.0,90.000035,0.000000,0.000000 -3996,-3.0,90.000035,0.000000,0.000000 -3997,-3.0,90.000035,0.000000,0.000000 -3998,-3.0,90.000035,0.000000,0.000000 -3999,-3.0,90.000035,0.000000,0.000000 -4000,-3.0,90.000035,0.000000,0.000000 -4001,-3.0,90.000035,0.000000,0.000000 -4002,-3.0,90.000035,0.000000,0.000000 -4003,-3.0,90.000035,0.000000,0.000000 -4004,-3.0,90.000035,0.000000,0.000000 -4005,-3.0,90.000035,0.000000,0.000000 -4006,-3.0,90.000035,0.000000,0.000000 -4007,-3.0,90.000035,0.000000,0.000000 -4008,-3.0,90.000035,0.000000,0.000000 -4009,-3.0,90.000035,0.000000,0.000000 -4010,-3.0,90.000035,0.000000,0.000000 -4011,-3.0,90.000035,0.000000,0.000000 -4012,-3.0,90.000035,0.000000,0.000000 -4013,-3.0,90.000035,0.000000,0.000000 -4014,-3.0,90.000035,0.000000,0.000000 -4015,-3.0,90.000035,0.000000,0.000000 -4016,-3.0,90.000035,0.000000,0.000000 -4017,-3.0,90.000035,0.000000,0.000000 -4018,-3.0,90.000035,0.000000,0.000000 -4019,-3.0,90.000035,0.000000,0.000000 -4020,-3.0,90.000035,0.000000,0.000000 -4021,-3.0,90.000035,0.000000,0.000000 -4022,-3.0,90.000035,0.000000,0.000000 -4023,-3.0,90.000035,0.000000,0.000000 -4024,-3.0,90.000035,0.000000,0.000000 -4025,-3.0,90.000035,0.000000,0.000000 -4026,-3.0,90.000035,0.000000,0.000000 -4027,-3.0,90.000035,0.000000,0.000000 -4028,-3.0,90.000035,0.000000,0.000000 -4029,-3.0,90.000035,0.000000,0.000000 -4030,-3.0,90.000035,0.000000,0.000000 -4031,-3.0,90.000035,0.000000,0.000000 -4032,-3.0,90.000035,0.000000,0.000000 -4033,-3.0,90.000035,0.000000,0.000000 -4034,-3.0,90.000035,0.000000,0.000000 -4035,-3.0,90.000035,0.000000,0.000000 -4036,-3.0,90.000035,0.000000,0.000000 -4037,-3.0,90.000035,0.000000,0.000000 -4038,-3.0,90.000035,0.000000,0.000000 -4039,-3.0,90.000035,0.000000,0.000000 -4040,-3.0,90.000035,0.000000,0.000000 -4041,-3.0,90.000035,0.000000,0.000000 -4042,-3.0,90.000035,0.000000,0.000000 -4043,-3.0,90.000035,0.000000,0.000000 -4044,-3.0,90.000035,0.000000,0.000000 -4045,-3.0,90.000035,0.000000,0.000000 -4046,-3.0,90.000035,0.000000,0.000000 -4047,-3.0,90.000035,0.000000,0.000000 -4048,-3.0,90.000035,0.000000,0.000000 -4049,-3.0,90.000035,0.000000,0.000000 -4050,-3.0,90.000035,0.000000,0.000000 -4051,-3.0,90.000035,0.000000,0.000000 -4052,-3.0,90.000035,0.000000,0.000000 -4053,-3.0,90.000035,0.000000,0.000000 -4054,-3.0,90.000035,0.000000,0.000000 -4055,-3.0,90.000035,0.000000,0.000000 -4056,-3.0,90.000035,0.000000,0.000000 -4057,-3.0,90.000035,0.000000,0.000000 -4058,-3.0,90.000035,0.000000,0.000000 -4059,-3.0,90.000035,0.000000,0.000000 -4060,-3.0,90.000035,0.000000,0.000000 -4061,-3.0,90.000035,0.000000,0.000000 -4062,-3.0,90.000035,0.000000,0.000000 -4063,-3.0,90.000035,0.000000,0.000000 -4064,-3.0,90.000035,0.000000,0.000000 -4065,-3.0,90.000035,0.000000,0.000000 -4066,-3.0,90.000035,0.000000,0.000000 -4067,-3.0,90.000035,0.000000,0.000000 -4068,-3.0,90.000035,0.000000,0.000000 -4069,-3.0,90.000035,0.000000,0.000000 -4070,-3.0,90.000035,0.000000,0.000000 -4071,-3.0,90.000035,0.000000,0.000000 -4072,-3.0,90.000035,0.000000,0.000000 -4073,-3.0,90.000035,0.000000,0.000000 -4074,-3.0,90.000035,0.000000,0.000000 -4075,-3.0,90.000035,0.000000,0.000000 -4076,-3.0,90.000035,0.000000,0.000000 -4077,-3.0,90.000035,0.000000,0.000000 -4078,-3.0,90.000035,0.000000,0.000000 -4079,-3.0,90.000035,0.000000,0.000000 -4080,-3.0,90.000035,0.000000,0.000000 -4081,-3.0,90.000035,0.000000,0.000000 -4082,-3.0,90.000035,0.000000,0.000000 -4083,-3.0,90.000035,0.000000,0.000000 -4084,-3.0,90.000035,0.000000,0.000000 -4085,-3.0,90.000035,0.000000,0.000000 -4086,-3.0,90.000035,0.000000,0.000000 -4087,-3.0,90.000035,0.000000,0.000000 -4088,-3.0,90.000035,0.000000,0.000000 -4089,-3.0,90.000035,0.000000,0.000000 -4090,-3.0,90.000035,0.000000,0.000000 -4091,-3.0,90.000035,0.000000,0.000000 -4092,-3.0,90.000035,0.000000,0.000000 -4093,-3.0,90.000035,0.000000,0.000000 -4094,-3.0,90.000035,0.000000,0.000000 -4095,-3.0,90.000035,0.000000,0.000000 -4096,-3.0,90.000035,0.000000,0.000000 -4097,-3.0,90.000035,0.000000,0.000000 -4098,-3.0,90.000035,0.000000,0.000000 -4099,-3.0,90.000035,0.000000,0.000000 -4100,-3.0,90.000035,0.000000,0.000000 -4101,-3.0,90.000035,0.000000,0.000000 -4102,-3.0,90.000035,0.000000,0.000000 -4103,-3.0,90.000035,0.000000,0.000000 -4104,-3.0,90.000035,0.000000,0.000000 -4105,-3.0,90.000035,0.000000,0.000000 -4106,-3.0,90.000035,0.000000,0.000000 -4107,-3.0,90.000035,0.000000,0.000000 -4108,-3.0,90.000035,0.000000,0.000000 -4109,-3.0,90.000035,0.000000,0.000000 -4110,-3.0,90.000035,0.000000,0.000000 -4111,-3.0,90.000035,0.000000,0.000000 -4112,-3.0,90.000035,0.000000,0.000000 -4113,-3.0,90.000035,0.000000,0.000000 -4114,-3.0,90.000035,0.000000,0.000000 -4115,-3.0,90.000035,0.000000,0.000000 -4116,-3.0,90.000035,0.000000,0.000000 -4117,-3.0,90.000035,0.000000,0.000000 -4118,-3.0,90.000035,0.000000,0.000000 -4119,-3.0,90.000035,0.000000,0.000000 -4120,-3.0,90.000035,0.000000,0.000000 -4121,-3.0,90.000035,0.000000,0.000000 -4122,-3.0,90.000035,0.000000,0.000000 -4123,-3.0,90.000035,0.000000,0.000000 -4124,-3.0,90.000035,0.000000,0.000000 -4125,-3.0,90.000035,0.000000,0.000000 -4126,-3.0,90.000035,0.000000,0.000000 -4127,-3.0,90.000035,0.000000,0.000000 -4128,-3.0,90.000035,0.000000,0.000000 -4129,-3.0,90.000035,0.000000,0.000000 -4130,-3.0,90.000035,0.000000,0.000000 -4131,-3.0,90.000035,0.000000,0.000000 -4132,-3.0,90.000035,0.000000,0.000000 -4133,-3.0,90.000035,0.000000,0.000000 -4134,-3.0,90.000035,0.000000,0.000000 -4135,-3.0,90.000035,0.000000,0.000000 -4136,-3.0,90.000035,0.000000,0.000000 -4137,-3.0,90.000035,0.000000,0.000000 -4138,-3.0,90.000035,0.000000,0.000000 -4139,-3.0,90.000035,0.000000,0.000000 -4140,-3.0,90.000035,0.000000,0.000000 -4141,-3.0,90.000035,0.000000,0.000000 -4142,-3.0,90.000035,0.000000,0.000000 -4143,-3.0,90.000035,0.000000,0.000000 -4144,-3.0,90.000035,0.000000,0.000000 -4145,-3.0,90.000035,0.000000,0.000000 -4146,-3.0,90.000035,0.000000,0.000000 -4147,-3.0,90.000035,0.000000,0.000000 -4148,-3.0,90.000035,0.000000,0.000000 -4149,-3.0,90.000035,0.000000,0.000000 -4150,-3.0,90.000035,0.000000,0.000000 -4151,-3.0,90.000035,0.000000,0.000000 -4152,-3.0,90.000035,0.000000,0.000000 -4153,-3.0,90.000035,0.000000,0.000000 -4154,-3.0,90.000035,0.000000,0.000000 -4155,-3.0,90.000035,0.000000,0.000000 -4156,-3.0,90.000035,0.000000,0.000000 -4157,-3.0,90.000035,0.000000,0.000000 -4158,-3.0,90.000035,0.000000,0.000000 -4159,-3.0,90.000035,0.000000,0.000000 -4160,-3.0,90.000035,0.000000,0.000000 -4161,-3.0,90.000035,0.000000,0.000000 -4162,-3.0,90.000035,0.000000,0.000000 -4163,-3.0,90.000035,0.000000,0.000000 -4164,-3.0,90.000035,0.000000,0.000000 -4165,-3.0,90.000035,0.000000,0.000000 -4166,-3.0,90.000035,0.000000,0.000000 -4167,-3.0,90.000035,0.000000,0.000000 -4168,-3.0,90.000035,0.000000,0.000000 -4169,-3.0,90.000035,0.000000,0.000000 -4170,-3.0,90.000035,0.000000,0.000000 -4171,-3.0,90.000035,0.000000,0.000000 -4172,-3.0,90.000035,0.000000,0.000000 -4173,-3.0,90.000035,0.000000,0.000000 -4174,-3.0,90.000035,0.000000,0.000000 -4175,-3.0,90.000035,0.000000,0.000000 -4176,-3.0,90.000035,0.000000,0.000000 -4177,-3.0,90.000035,0.000000,0.000000 -4178,-3.0,90.000035,0.000000,0.000000 -4179,-3.0,90.000035,0.000000,0.000000 -4180,-3.0,90.000035,0.000000,0.000000 -4181,-3.0,90.000035,0.000000,0.000000 -4182,-3.0,90.000035,0.000000,0.000000 -4183,-3.0,90.000035,0.000000,0.000000 -4184,-3.0,90.000035,0.000000,0.000000 -4185,-3.0,90.000035,0.000000,0.000000 -4186,-3.0,90.000035,0.000000,0.000000 -4187,-3.0,90.000035,0.000000,0.000000 -4188,-3.0,90.000035,0.000000,0.000000 -4189,-3.0,90.000035,0.000000,0.000000 -4190,-3.0,90.000035,0.000000,0.000000 -4191,-3.0,90.000035,0.000000,0.000000 -4192,-3.0,90.000035,0.000000,0.000000 -4193,-3.0,90.000035,0.000000,0.000000 -4194,-3.0,90.000035,0.000000,0.000000 -4195,-3.0,90.000035,0.000000,0.000000 -4196,-3.0,90.000035,0.000000,0.000000 -4197,-3.0,90.000035,0.000000,0.000000 -4198,-3.0,90.000035,0.000000,0.000000 -4199,-3.0,90.000035,0.000000,0.000000 -4200,-3.0,90.000035,0.000000,0.000000 -4201,-3.0,90.000035,0.000000,0.000000 -4202,-3.0,90.000035,0.000000,0.000000 -4203,-3.0,90.000035,0.000000,0.000000 -4204,-3.0,90.000035,0.000000,0.000000 -4205,-3.0,90.000035,0.000000,0.000000 -4206,-3.0,90.000035,0.000000,0.000000 -4207,-3.0,90.000035,0.000000,0.000000 -4208,-3.0,90.000035,0.000000,0.000000 -4209,-3.0,90.000035,0.000000,0.000000 -4210,-3.0,90.000035,0.000000,0.000000 -4211,-3.0,90.000035,0.000000,0.000000 -4212,-3.0,90.000035,0.000000,0.000000 -4213,-3.0,90.000035,0.000000,0.000000 -4214,-3.0,90.000035,0.000000,0.000000 -4215,-3.0,90.000035,0.000000,0.000000 -4216,-3.0,90.000035,0.000000,0.000000 -4217,-3.0,90.000035,0.000000,0.000000 -4218,-3.0,90.000035,0.000000,0.000000 -4219,-3.0,90.000035,0.000000,0.000000 -4220,-3.0,90.000035,0.000000,0.000000 -4221,-3.0,90.000035,0.000000,0.000000 -4222,-3.0,90.000035,0.000000,0.000000 -4223,-3.0,90.000035,0.000000,0.000000 -4224,-3.0,90.000035,0.000000,0.000000 -4225,-3.0,90.000035,0.000000,0.000000 -4226,-3.0,90.000035,0.000000,0.000000 -4227,-3.0,90.000035,0.000000,0.000000 -4228,-3.0,90.000035,0.000000,0.000000 -4229,-3.0,90.000035,0.000000,0.000000 -4230,-3.0,90.000035,0.000000,0.000000 -4231,-3.0,90.000035,0.000000,0.000000 -4232,-3.0,90.000035,0.000000,0.000000 -4233,-3.0,90.000035,0.000000,0.000000 -4234,-3.0,90.000035,0.000000,0.000000 -4235,-3.0,90.000035,0.000000,0.000000 -4236,-3.0,90.000035,0.000000,0.000000 -4237,-3.0,90.000035,0.000000,0.000000 -4238,-3.0,90.000035,0.000000,0.000000 -4239,-3.0,90.000035,0.000000,0.000000 -4240,-3.0,90.000035,0.000000,0.000000 -4241,-3.0,90.000035,0.000000,0.000000 -4242,-3.0,90.000035,0.000000,0.000000 -4243,-3.0,90.000035,0.000000,0.000000 -4244,-3.0,90.000035,0.000000,0.000000 -4245,-3.0,90.000035,0.000000,0.000000 -4246,-3.0,90.000035,0.000000,0.000000 -4247,-3.0,90.000035,0.000000,0.000000 -4248,-3.0,90.000035,0.000000,0.000000 -4249,-3.0,90.000035,0.000000,0.000000 -4250,-3.0,90.000035,0.000000,0.000000 -4251,-3.0,90.000035,0.000000,0.000000 -4252,-3.0,90.000035,0.000000,0.000000 -4253,-3.0,90.000035,0.000000,0.000000 -4254,-3.0,90.000035,0.000000,0.000000 -4255,-3.0,90.000035,0.000000,0.000000 -4256,-3.0,90.000035,0.000000,0.000000 -4257,-3.0,90.000035,0.000000,0.000000 -4258,-3.0,90.000035,0.000000,0.000000 -4259,-3.0,90.000035,0.000000,0.000000 -4260,-3.0,90.000035,0.000000,0.000000 -4261,-3.0,90.000035,0.000000,0.000000 -4262,-3.0,90.000035,0.000000,0.000000 -4263,-3.0,90.000035,0.000000,0.000000 -4264,-3.0,90.000035,0.000000,0.000000 -4265,-3.0,90.000035,0.000000,0.000000 -4266,-3.0,90.000035,0.000000,0.000000 -4267,-3.0,90.000035,0.000000,0.000000 -4268,-3.0,90.000035,0.000000,0.000000 -4269,-3.0,90.000035,0.000000,0.000000 -4270,-3.0,90.000035,0.000000,0.000000 -4271,-3.0,90.000035,0.000000,0.000000 -4272,-3.0,90.000035,0.000000,0.000000 -4273,-3.0,90.000035,0.000000,0.000000 -4274,-3.0,90.000035,0.000000,0.000000 -4275,-3.0,90.000035,0.000000,0.000000 -4276,-3.0,90.000035,0.000000,0.000000 -4277,-3.0,90.000035,0.000000,0.000000 -4278,-3.0,90.000035,0.000000,0.000000 -4279,-3.0,90.000035,0.000000,0.000000 -4280,-3.0,90.000035,0.000000,0.000000 -4281,-3.0,90.000035,0.000000,0.000000 -4282,-3.0,90.000035,0.000000,0.000000 -4283,-3.0,90.000035,0.000000,0.000000 -4284,-3.0,90.000035,0.000000,0.000000 -4285,-3.0,90.000035,0.000000,0.000000 -4286,-3.0,90.000035,0.000000,0.000000 -4287,-3.0,90.000035,0.000000,0.000000 -4288,-3.0,90.000035,0.000000,0.000000 -4289,-3.0,90.000035,0.000000,0.000000 -4290,-3.0,90.000035,0.000000,0.000000 -4291,-3.0,90.000035,0.000000,0.000000 -4292,-3.0,90.000035,0.000000,0.000000 -4293,-3.0,90.000035,0.000000,0.000000 -4294,-3.0,90.000035,0.000000,0.000000 -4295,-3.0,90.000035,0.000000,0.000000 -4296,-3.0,90.000035,0.000000,0.000000 -4297,-3.0,90.000035,0.000000,0.000000 -4298,-3.0,90.000035,0.000000,0.000000 -4299,-3.0,90.000035,0.000000,0.000000 -4300,-3.0,90.000035,0.000000,0.000000 -4301,-3.0,90.000035,0.000000,0.000000 -4302,-3.0,90.000035,0.000000,0.000000 -4303,-3.0,90.000035,0.000000,0.000000 -4304,-3.0,90.000035,0.000000,0.000000 -4305,-3.0,90.000035,0.000000,0.000000 -4306,-3.0,90.000035,0.000000,0.000000 -4307,-3.0,90.000035,0.000000,0.000000 -4308,-3.0,90.000035,0.000000,0.000000 -4309,-3.0,90.000035,0.000000,0.000000 -4310,-3.0,90.000035,0.000000,0.000000 -4311,-3.0,90.000035,0.000000,0.000000 -4312,-3.0,90.000035,0.000000,0.000000 -4313,-3.0,90.000035,0.000000,0.000000 -4314,-3.0,90.000035,0.000000,0.000000 -4315,-3.0,90.000035,0.000000,0.000000 -4316,-3.0,90.000035,0.000000,0.000000 -4317,-3.0,90.000035,0.000000,0.000000 -4318,-3.0,90.000035,0.000000,0.000000 -4319,-3.0,90.000035,0.000000,0.000000 -4320,-3.0,90.000035,0.000000,0.000000 -4321,-3.0,90.000035,0.000000,0.000000 -4322,-3.0,90.000035,0.000000,0.000000 -4323,-3.0,90.000035,0.000000,0.000000 -4324,-3.0,90.000035,0.000000,0.000000 -4325,-3.0,90.000035,0.000000,0.000000 -4326,-3.0,90.000035,0.000000,0.000000 -4327,-3.0,90.000035,0.000000,0.000000 -4328,-3.0,90.000035,0.000000,0.000000 -4329,-3.0,90.000035,0.000000,0.000000 -4330,-3.0,90.000035,0.000000,0.000000 -4331,-3.0,90.000035,0.000000,0.000000 -4332,-3.0,90.000035,0.000000,0.000000 -4333,-3.0,90.000035,0.000000,0.000000 -4334,-3.0,90.000035,0.000000,0.000000 -4335,-3.0,90.000035,0.000000,0.000000 -4336,-3.0,90.000035,0.000000,0.000000 -4337,-3.0,90.000035,0.000000,0.000000 -4338,-3.0,90.000035,0.000000,0.000000 -4339,-3.0,90.000035,0.000000,0.000000 -4340,-3.0,90.000035,0.000000,0.000000 -4341,-3.0,90.000035,0.000000,0.000000 -4342,-3.0,90.000035,0.000000,0.000000 -4343,-3.0,90.000035,0.000000,0.000000 -4344,-3.0,90.000035,0.000000,0.000000 -4345,-3.0,90.000035,0.000000,0.000000 -4346,-3.0,90.000035,0.000000,0.000000 -4347,-3.0,90.000035,0.000000,0.000000 -4348,-3.0,90.000035,0.000000,0.000000 -4349,-3.0,90.000035,0.000000,0.000000 -4350,-3.0,90.000035,0.000000,0.000000 -4351,-3.0,90.000035,0.000000,0.000000 -4352,-3.0,90.000035,0.000000,0.000000 -4353,-3.0,90.000035,0.000000,0.000000 -4354,-3.0,90.000035,0.000000,0.000000 -4355,-3.0,90.000035,0.000000,0.000000 -4356,-3.0,90.000035,0.000000,0.000000 -4357,-3.0,90.000035,0.000000,0.000000 -4358,-3.0,90.000035,0.000000,0.000000 -4359,-3.0,90.000035,0.000000,0.000000 -4360,-3.0,90.000035,0.000000,0.000000 -4361,-3.0,90.000035,0.000000,0.000000 -4362,-3.0,90.000035,0.000000,0.000000 -4363,-3.0,90.000035,0.000000,0.000000 -4364,-3.0,90.000035,0.000000,0.000000 -4365,-3.0,90.000035,0.000000,0.000000 -4366,-3.0,90.000035,0.000000,0.000000 -4367,-3.0,90.000035,0.000000,0.000000 -4368,-3.0,90.000035,0.000000,0.000000 -4369,-3.0,90.000035,0.000000,0.000000 -4370,-3.0,90.000035,0.000000,0.000000 -4371,-3.0,90.000035,0.000000,0.000000 -4372,-3.0,90.000035,0.000000,0.000000 -4373,-3.0,90.000035,0.000000,0.000000 -4374,-3.0,90.000035,0.000000,0.000000 -4375,-3.0,90.000035,0.000000,0.000000 -4376,-3.0,90.000035,0.000000,0.000000 -4377,-3.0,90.000035,0.000000,0.000000 -4378,-3.0,90.000035,0.000000,0.000000 -4379,-3.0,90.000035,0.000000,0.000000 -4380,-3.0,90.000035,0.000000,0.000000 -4381,-3.0,90.000035,0.000000,0.000000 -4382,-3.0,90.000035,0.000000,0.000000 -4383,-3.0,90.000035,0.000000,0.000000 -4384,-3.0,90.000035,0.000000,0.000000 -4385,-3.0,90.000035,0.000000,0.000000 -4386,-3.0,90.000035,0.000000,0.000000 -4387,-3.0,90.000035,0.000000,0.000000 -4388,-3.0,90.000035,0.000000,0.000000 -4389,-3.0,90.000035,0.000000,0.000000 -4390,-3.0,90.000035,0.000000,0.000000 -4391,-3.0,90.000035,0.000000,0.000000 -4392,-3.0,90.000035,0.000000,0.000000 -4393,-3.0,90.000035,0.000000,0.000000 -4394,-3.0,90.000035,0.000000,0.000000 -4395,-3.0,90.000035,0.000000,0.000000 -4396,-3.0,90.000035,0.000000,0.000000 -4397,-3.0,90.000035,0.000000,0.000000 -4398,-3.0,90.000035,0.000000,0.000000 -4399,-3.0,90.000035,0.000000,0.000000 -4400,-3.0,90.000035,0.000000,0.000000 -4401,-3.0,90.000035,0.000000,0.000000 -4402,-3.0,90.000035,0.000000,0.000000 -4403,-3.0,90.000035,0.000000,0.000000 -4404,-3.0,90.000035,0.000000,0.000000 -4405,-3.0,90.000035,0.000000,0.000000 -4406,-3.0,90.000035,0.000000,0.000000 -4407,-3.0,90.000035,0.000000,0.000000 -4408,-3.0,90.000035,0.000000,0.000000 -4409,-3.0,90.000035,0.000000,0.000000 -4410,-3.0,90.000035,0.000000,0.000000 -4411,-3.0,90.000035,0.000000,0.000000 -4412,-3.0,90.000035,0.000000,0.000000 -4413,-3.0,90.000035,0.000000,0.000000 -4414,-3.0,90.000035,0.000000,0.000000 -4415,-3.0,90.000035,0.000000,0.000000 -4416,-3.0,90.000035,0.000000,0.000000 -4417,-3.0,90.000035,0.000000,0.000000 -4418,-3.0,90.000035,0.000000,0.000000 -4419,-3.0,90.000035,0.000000,0.000000 -4420,-3.0,90.000035,0.000000,0.000000 -4421,-3.0,90.000035,0.000000,0.000000 -4422,-3.0,90.000035,0.000000,0.000000 -4423,-3.0,90.000035,0.000000,0.000000 -4424,-3.0,90.000035,0.000000,0.000000 -4425,-3.0,90.000035,0.000000,0.000000 -4426,-3.0,90.000035,0.000000,0.000000 -4427,-3.0,90.000035,0.000000,0.000000 -4428,-3.0,90.000035,0.000000,0.000000 -4429,-3.0,90.000035,0.000000,0.000000 -4430,-3.0,90.000035,0.000000,0.000000 -4431,-3.0,90.000035,0.000000,0.000000 -4432,-3.0,90.000035,0.000000,0.000000 -4433,-3.0,90.000035,0.000000,0.000000 -4434,-3.0,90.000035,0.000000,0.000000 -4435,-3.0,90.000035,0.000000,0.000000 -4436,-3.0,90.000035,0.000000,0.000000 -4437,-3.0,90.000035,0.000000,0.000000 -4438,-3.0,90.000035,0.000000,0.000000 -4439,-3.0,90.000035,0.000000,0.000000 -4440,-3.0,90.000035,0.000000,0.000000 -4441,-3.0,90.000035,0.000000,0.000000 -4442,-3.0,90.000035,0.000000,0.000000 -4443,-3.0,90.000035,0.000000,0.000000 -4444,-3.0,90.000035,0.000000,0.000000 -4445,-3.0,90.000035,0.000000,0.000000 -4446,-3.0,90.000035,0.000000,0.000000 -4447,-3.0,90.000035,0.000000,0.000000 -4448,-3.0,90.000035,0.000000,0.000000 -4449,-3.0,90.000035,0.000000,0.000000 -4450,-3.0,90.000035,0.000000,0.000000 -4451,-3.0,90.000035,0.000000,0.000000 -4452,-3.0,90.000035,0.000000,0.000000 -4453,-3.0,90.000035,0.000000,0.000000 -4454,-3.0,90.000035,0.000000,0.000000 -4455,-3.0,90.000035,0.000000,0.000000 -4456,-3.0,90.000035,0.000000,0.000000 -4457,-3.0,90.000035,0.000000,0.000000 -4458,-3.0,90.000035,0.000000,0.000000 -4459,-3.0,90.000035,0.000000,0.000000 -4460,-3.0,90.000035,0.000000,0.000000 -4461,-3.0,90.000035,0.000000,0.000000 -4462,-3.0,90.000035,0.000000,0.000000 -4463,-3.0,90.000035,0.000000,0.000000 -4464,-3.0,90.000035,0.000000,0.000000 -4465,-3.0,90.000035,0.000000,0.000000 -4466,-3.0,90.000035,0.000000,0.000000 -4467,-3.0,90.000035,0.000000,0.000000 -4468,-3.0,90.000035,0.000000,0.000000 -4469,-3.0,90.000035,0.000000,0.000000 -4470,-3.0,90.000035,0.000000,0.000000 -4471,-3.0,90.000035,0.000000,0.000000 -4472,-3.0,90.000035,0.000000,0.000000 -4473,-3.0,90.000035,0.000000,0.000000 -4474,-3.0,90.000035,0.000000,0.000000 -4475,-3.0,90.000035,0.000000,0.000000 -4476,-3.0,90.000035,0.000000,0.000000 -4477,-3.0,90.000035,0.000000,0.000000 -4478,-3.0,90.000035,0.000000,0.000000 -4479,-3.0,90.000035,0.000000,0.000000 -4480,-3.0,90.000035,0.000000,0.000000 -4481,-3.0,90.000035,0.000000,0.000000 -4482,-3.0,90.000035,0.000000,0.000000 -4483,-3.0,90.000035,0.000000,0.000000 -4484,-3.0,90.000035,0.000000,0.000000 -4485,-3.0,90.000035,0.000000,0.000000 -4486,-3.0,90.000035,0.000000,0.000000 -4487,-3.0,90.000035,0.000000,0.000000 -4488,-3.0,90.000035,0.000000,0.000000 -4489,-3.0,90.000035,0.000000,0.000000 -4490,-3.0,90.000035,0.000000,0.000000 -4491,-3.0,90.000035,0.000000,0.000000 -4492,-3.0,90.000035,0.000000,0.000000 -4493,-3.0,90.000035,0.000000,0.000000 -4494,-3.0,90.000035,0.000000,0.000000 -4495,-3.0,90.000035,0.000000,0.000000 -4496,-3.0,90.000035,0.000000,0.000000 -4497,-3.0,90.000035,0.000000,0.000000 -4498,-3.0,90.000035,0.000000,0.000000 -4499,-3.0,90.000035,0.000000,0.000000 -4500,-3.0,90.000035,0.000000,0.000000 -4501,-3.0,90.000035,0.000000,0.000000 -4502,-3.0,90.000035,0.000000,0.000000 -4503,-3.0,90.000035,0.000000,0.000000 -4504,-3.0,90.000035,0.000000,0.000000 -4505,-3.0,90.000035,0.000000,0.000000 -4506,-3.0,90.000035,0.000000,0.000000 -4507,-3.0,90.000035,0.000000,0.000000 -4508,-3.0,90.000035,0.000000,0.000000 -4509,-3.0,90.000035,0.000000,0.000000 -4510,-3.0,90.000035,0.000000,0.000000 -4511,-3.0,90.000035,0.000000,0.000000 -4512,-3.0,90.000035,0.000000,0.000000 -4513,-3.0,90.000035,0.000000,0.000000 -4514,-3.0,90.000035,0.000000,0.000000 -4515,-3.0,90.000035,0.000000,0.000000 -4516,-3.0,90.000035,0.000000,0.000000 -4517,-3.0,90.000035,0.000000,0.000000 -4518,-3.0,90.000035,0.000000,0.000000 -4519,-3.0,90.000035,0.000000,0.000000 -4520,-3.0,90.000035,0.000000,0.000000 -4521,-3.0,90.000035,0.000000,0.000000 -4522,-3.0,90.000035,0.000000,0.000000 -4523,-3.0,90.000035,0.000000,0.000000 -4524,-3.0,90.000035,0.000000,0.000000 -4525,-3.0,90.000035,0.000000,0.000000 -4526,-3.0,90.000035,0.000000,0.000000 -4527,-3.0,90.000035,0.000000,0.000000 -4528,-3.0,90.000035,0.000000,0.000000 -4529,-3.0,90.000035,0.000000,0.000000 -4530,-3.0,90.000035,0.000000,0.000000 -4531,-3.0,90.000035,0.000000,0.000000 -4532,-3.0,90.000035,0.000000,0.000000 -4533,-3.0,90.000035,0.000000,0.000000 -4534,-3.0,90.000035,0.000000,0.000000 -4535,-3.0,90.000035,0.000000,0.000000 -4536,-3.0,90.000035,0.000000,0.000000 -4537,-3.0,90.000035,0.000000,0.000000 -4538,-3.0,90.000035,0.000000,0.000000 -4539,-3.0,90.000035,0.000000,0.000000 -4540,-3.0,90.000035,0.000000,0.000000 -4541,-3.0,90.000035,0.000000,0.000000 -4542,-3.0,90.000035,0.000000,0.000000 -4543,-3.0,90.000035,0.000000,0.000000 -4544,-3.0,90.000035,0.000000,0.000000 -4545,-3.0,90.000035,0.000000,0.000000 -4546,-3.0,90.000035,0.000000,0.000000 -4547,-3.0,90.000035,0.000000,0.000000 -4548,-3.0,90.000035,0.000000,0.000000 -4549,-3.0,90.000035,0.000000,0.000000 -4550,-3.0,90.000035,0.000000,0.000000 -4551,-3.0,90.000035,0.000000,0.000000 -4552,-3.0,90.000035,0.000000,0.000000 -4553,-3.0,90.000035,0.000000,0.000000 -4554,-3.0,90.000035,0.000000,0.000000 -4555,-3.0,90.000035,0.000000,0.000000 -4556,-3.0,90.000035,0.000000,0.000000 -4557,-3.0,90.000035,0.000000,0.000000 -4558,-3.0,90.000035,0.000000,0.000000 -4559,-3.0,90.000035,0.000000,0.000000 -4560,-3.0,90.000035,0.000000,0.000000 -4561,-3.0,90.000035,0.000000,0.000000 -4562,-3.0,90.000035,0.000000,0.000000 -4563,-3.0,90.000035,0.000000,0.000000 -4564,-3.0,90.000035,0.000000,0.000000 -4565,-3.0,90.000035,0.000000,0.000000 -4566,-3.0,90.000035,0.000000,0.000000 -4567,-3.0,90.000035,0.000000,0.000000 -4568,-3.0,90.000035,0.000000,0.000000 -4569,-3.0,90.000035,0.000000,0.000000 -4570,-3.0,90.000035,0.000000,0.000000 -4571,-3.0,90.000035,0.000000,0.000000 -4572,-3.0,90.000035,0.000000,0.000000 -4573,-3.0,90.000035,0.000000,0.000000 -4574,-3.0,90.000035,0.000000,0.000000 -4575,-3.0,90.000035,0.000000,0.000000 -4576,-3.0,90.000035,0.000000,0.000000 -4577,-3.0,90.000035,0.000000,0.000000 -4578,-3.0,90.000035,0.000000,0.000000 -4579,-3.0,90.000035,0.000000,0.000000 -4580,-3.0,90.000035,0.000000,0.000000 -4581,-3.0,90.000035,0.000000,0.000000 -4582,-3.0,90.000035,0.000000,0.000000 -4583,-3.0,90.000035,0.000000,0.000000 -4584,-3.0,90.000035,0.000000,0.000000 -4585,-3.0,90.000035,0.000000,0.000000 -4586,-3.0,90.000035,0.000000,0.000000 -4587,-3.0,90.000035,0.000000,0.000000 -4588,-3.0,90.000035,0.000000,0.000000 -4589,-3.0,90.000035,0.000000,0.000000 -4590,-3.0,90.000035,0.000000,0.000000 -4591,-3.0,90.000035,0.000000,0.000000 -4592,-3.0,90.000035,0.000000,0.000000 -4593,-3.0,90.000035,0.000000,0.000000 -4594,-3.0,90.000035,0.000000,0.000000 -4595,-3.0,90.000035,0.000000,0.000000 -4596,-3.0,90.000035,0.000000,0.000000 -4597,-3.0,90.000035,0.000000,0.000000 -4598,-3.0,90.000035,0.000000,0.000000 -4599,-3.0,90.000035,0.000000,0.000000 -4600,-3.0,90.000035,0.000000,0.000000 -4601,-3.0,90.000035,0.000000,0.000000 -4602,-3.0,90.000035,0.000000,0.000000 -4603,-3.0,90.000035,0.000000,0.000000 -4604,-3.0,90.000035,0.000000,0.000000 -4605,-3.0,90.000035,0.000000,0.000000 -4606,-3.0,90.000035,0.000000,0.000000 -4607,-3.0,90.000035,0.000000,0.000000 -4608,-3.0,90.000035,0.000000,0.000000 -4609,-3.0,90.000035,0.000000,0.000000 -4610,-3.0,90.000035,0.000000,0.000000 -4611,-3.0,90.000035,0.000000,0.000000 -4612,-3.0,90.000035,0.000000,0.000000 -4613,-3.0,90.000035,0.000000,0.000000 -4614,-3.0,90.000035,0.000000,0.000000 -4615,-3.0,90.000035,0.000000,0.000000 -4616,-3.0,90.000035,0.000000,0.000000 -4617,-3.0,90.000035,0.000000,0.000000 -4618,-3.0,90.000035,0.000000,0.000000 -4619,-3.0,90.000035,0.000000,0.000000 -4620,-3.0,90.000035,0.000000,0.000000 -4621,-3.0,90.000035,0.000000,0.000000 -4622,-3.0,90.000035,0.000000,0.000000 -4623,-3.0,90.000035,0.000000,0.000000 -4624,-3.0,90.000035,0.000000,0.000000 -4625,-3.0,90.000035,0.000000,0.000000 -4626,-3.0,90.000035,0.000000,0.000000 -4627,-3.0,90.000035,0.000000,0.000000 -4628,-3.0,90.000035,0.000000,0.000000 -4629,-3.0,90.000035,0.000000,0.000000 -4630,-3.0,90.000035,0.000000,0.000000 -4631,-3.0,90.000035,0.000000,0.000000 -4632,-3.0,90.000035,0.000000,0.000000 -4633,-3.0,90.000035,0.000000,0.000000 -4634,-3.0,90.000035,0.000000,0.000000 -4635,-3.0,90.000035,0.000000,0.000000 -4636,-3.0,90.000035,0.000000,0.000000 -4637,-3.0,90.000035,0.000000,0.000000 -4638,-3.0,90.000035,0.000000,0.000000 -4639,-3.0,90.000035,0.000000,0.000000 -4640,-3.0,90.000035,0.000000,0.000000 -4641,-3.0,90.000035,0.000000,0.000000 -4642,-3.0,90.000035,0.000000,0.000000 -4643,-3.0,90.000035,0.000000,0.000000 -4644,-3.0,90.000035,0.000000,0.000000 -4645,-3.0,90.000035,0.000000,0.000000 -4646,-3.0,90.000035,0.000000,0.000000 -4647,-3.0,90.000035,0.000000,0.000000 -4648,-3.0,90.000035,0.000000,0.000000 -4649,-3.0,90.000035,0.000000,0.000000 -4650,-3.0,90.000035,0.000000,0.000000 -4651,-3.0,90.000035,0.000000,0.000000 -4652,-3.0,90.000035,0.000000,0.000000 -4653,-3.0,90.000035,0.000000,0.000000 -4654,-3.0,90.000035,0.000000,0.000000 -4655,-3.0,90.000035,0.000000,0.000000 -4656,-3.0,90.000035,0.000000,0.000000 -4657,-3.0,90.000035,0.000000,0.000000 -4658,-3.0,90.000035,0.000000,0.000000 -4659,-3.0,90.000035,0.000000,0.000000 -4660,-3.0,90.000035,0.000000,0.000000 -4661,-3.0,90.000035,0.000000,0.000000 -4662,-3.0,90.000035,0.000000,0.000000 -4663,-3.0,90.000035,0.000000,0.000000 -4664,-3.0,90.000035,0.000000,0.000000 -4665,-3.0,90.000035,0.000000,0.000000 -4666,-3.0,90.000035,0.000000,0.000000 -4667,-3.0,90.000035,0.000000,0.000000 -4668,-3.0,90.000035,0.000000,0.000000 -4669,-3.0,90.000035,0.000000,0.000000 -4670,-3.0,90.000035,0.000000,0.000000 -4671,-3.0,90.000035,0.000000,0.000000 -4672,-3.0,90.000035,0.000000,0.000000 -4673,-3.0,90.000035,0.000000,0.000000 -4674,-3.0,90.000035,0.000000,0.000000 -4675,-3.0,90.000035,0.000000,0.000000 -4676,-3.0,90.000035,0.000000,0.000000 -4677,-3.0,90.000035,0.000000,0.000000 -4678,-3.0,90.000035,0.000000,0.000000 -4679,-3.0,90.000035,0.000000,0.000000 -4680,-3.0,90.000035,0.000000,0.000000 -4681,-3.0,90.000035,0.000000,0.000000 -4682,-3.0,90.000035,0.000000,0.000000 -4683,-3.0,90.000035,0.000000,0.000000 -4684,-3.0,90.000035,0.000000,0.000000 -4685,-3.0,90.000035,0.000000,0.000000 -4686,-3.0,90.000035,0.000000,0.000000 -4687,-3.0,90.000035,0.000000,0.000000 -4688,-3.0,90.000035,0.000000,0.000000 -4689,-3.0,90.000035,0.000000,0.000000 -4690,-3.0,90.000035,0.000000,0.000000 -4691,-3.0,90.000035,0.000000,0.000000 -4692,-3.0,90.000035,0.000000,0.000000 -4693,-3.0,90.000035,0.000000,0.000000 -4694,-3.0,90.000035,0.000000,0.000000 -4695,-3.0,90.000035,0.000000,0.000000 -4696,-3.0,90.000035,0.000000,0.000000 -4697,-3.0,90.000035,0.000000,0.000000 -4698,-3.0,90.000035,0.000000,0.000000 -4699,-3.0,90.000035,0.000000,0.000000 -4700,-3.0,90.000035,0.000000,0.000000 -4701,-3.0,90.000035,0.000000,0.000000 -4702,-3.0,90.000035,0.000000,0.000000 -4703,-3.0,90.000035,0.000000,0.000000 -4704,-3.0,90.000035,0.000000,0.000000 -4705,-3.0,90.000035,0.000000,0.000000 -4706,-3.0,90.000035,0.000000,0.000000 -4707,-3.0,90.000035,0.000000,0.000000 -4708,-3.0,90.000035,0.000000,0.000000 -4709,-3.0,90.000035,0.000000,0.000000 -4710,-3.0,90.000035,0.000000,0.000000 -4711,-3.0,90.000035,0.000000,0.000000 -4712,-3.0,90.000035,0.000000,0.000000 -4713,-3.0,90.000035,0.000000,0.000000 -4714,-3.0,90.000035,0.000000,0.000000 -4715,-3.0,90.000035,0.000000,0.000000 -4716,-3.0,90.000035,0.000000,0.000000 -4717,-3.0,90.000035,0.000000,0.000000 -4718,-3.0,90.000035,0.000000,0.000000 -4719,-3.0,90.000035,0.000000,0.000000 -4720,-3.0,90.000035,0.000000,0.000000 -4721,-3.0,90.000035,0.000000,0.000000 -4722,-3.0,90.000035,0.000000,0.000000 -4723,-3.0,90.000035,0.000000,0.000000 -4724,-3.0,90.000035,0.000000,0.000000 -4725,-3.0,90.000035,0.000000,0.000000 -4726,-3.0,90.000035,0.000000,0.000000 -4727,-3.0,90.000035,0.000000,0.000000 -4728,-3.0,90.000035,0.000000,0.000000 -4729,-3.0,90.000035,0.000000,0.000000 -4730,-3.0,90.000035,0.000000,0.000000 -4731,-3.0,90.000035,0.000000,0.000000 -4732,-3.0,90.000035,0.000000,0.000000 -4733,-3.0,90.000035,0.000000,0.000000 -4734,-3.0,90.000035,0.000000,0.000000 -4735,-3.0,90.000035,0.000000,0.000000 -4736,-3.0,90.000035,0.000000,0.000000 -4737,-3.0,90.000035,0.000000,0.000000 -4738,-3.0,90.000035,0.000000,0.000000 -4739,-3.0,90.000035,0.000000,0.000000 -4740,-3.0,90.000035,0.000000,0.000000 -4741,-3.0,90.000035,0.000000,0.000000 -4742,-3.0,90.000035,0.000000,0.000000 -4743,-3.0,90.000035,0.000000,0.000000 -4744,-3.0,90.000035,0.000000,0.000000 -4745,-3.0,90.000035,0.000000,0.000000 -4746,-3.0,90.000035,0.000000,0.000000 -4747,-3.0,90.000035,0.000000,0.000000 -4748,-3.0,90.000035,0.000000,0.000000 -4749,-3.0,90.000035,0.000000,0.000000 -4750,-3.0,90.000035,0.000000,0.000000 -4751,-3.0,90.000035,0.000000,0.000000 -4752,-3.0,90.000035,0.000000,0.000000 -4753,-3.0,90.000035,0.000000,0.000000 -4754,-3.0,90.000035,0.000000,0.000000 -4755,-3.0,90.000035,0.000000,0.000000 -4756,-3.0,90.000035,0.000000,0.000000 -4757,-3.0,90.000035,0.000000,0.000000 -4758,-3.0,90.000035,0.000000,0.000000 -4759,-3.0,90.000035,0.000000,0.000000 -4760,-3.0,90.000035,0.000000,0.000000 -4761,-3.0,90.000035,0.000000,0.000000 -4762,-3.0,90.000035,0.000000,0.000000 -4763,-3.0,90.000035,0.000000,0.000000 -4764,-3.0,90.000035,0.000000,0.000000 -4765,-3.0,90.000035,0.000000,0.000000 -4766,-3.0,90.000035,0.000000,0.000000 -4767,-3.0,90.000035,0.000000,0.000000 -4768,-3.0,90.000035,0.000000,0.000000 -4769,-3.0,90.000035,0.000000,0.000000 -4770,-3.0,90.000035,0.000000,0.000000 -4771,-3.0,90.000035,0.000000,0.000000 -4772,-3.0,90.000035,0.000000,0.000000 -4773,-3.0,90.000035,0.000000,0.000000 -4774,-3.0,90.000035,0.000000,0.000000 -4775,-3.0,90.000035,0.000000,0.000000 -4776,-3.0,90.000035,0.000000,0.000000 -4777,-3.0,90.000035,0.000000,0.000000 -4778,-3.0,90.000035,0.000000,0.000000 -4779,-3.0,90.000035,0.000000,0.000000 -4780,-3.0,90.000035,0.000000,0.000000 -4781,-3.0,90.000035,0.000000,0.000000 -4782,-3.0,90.000035,0.000000,0.000000 -4783,-3.0,90.000035,0.000000,0.000000 -4784,-3.0,90.000035,0.000000,0.000000 -4785,-3.0,90.000035,0.000000,0.000000 -4786,-3.0,90.000035,0.000000,0.000000 -4787,-3.0,90.000035,0.000000,0.000000 -4788,-3.0,90.000035,0.000000,0.000000 -4789,-3.0,90.000035,0.000000,0.000000 -4790,-3.0,90.000035,0.000000,0.000000 -4791,-3.0,90.000035,0.000000,0.000000 -4792,-3.0,90.000035,0.000000,0.000000 -4793,-3.0,90.000035,0.000000,0.000000 -4794,-3.0,90.000035,0.000000,0.000000 -4795,-3.0,90.000035,0.000000,0.000000 -4796,-3.0,90.000035,0.000000,0.000000 -4797,-3.0,90.000035,0.000000,0.000000 -4798,-3.0,90.000035,0.000000,0.000000 -4799,-3.0,90.000035,0.000000,0.000000 -4800,-3.0,90.000035,0.000000,0.000000 -4801,-3.0,90.000035,0.000000,0.000000 -4802,-3.0,90.000035,0.000000,0.000000 -4803,-3.0,90.000035,0.000000,0.000000 -4804,-3.0,90.000035,0.000000,0.000000 -4805,-3.0,90.000035,0.000000,0.000000 -4806,-3.0,90.000035,0.000000,0.000000 -4807,-3.0,90.000035,0.000000,0.000000 -4808,-3.0,90.000035,0.000000,0.000000 -4809,-3.0,90.000035,0.000000,0.000000 -4810,-3.0,90.000035,0.000000,0.000000 -4811,-3.0,90.000035,0.000000,0.000000 -4812,-3.0,90.000035,0.000000,0.000000 -4813,-3.0,90.000035,0.000000,0.000000 -4814,-3.0,90.000035,0.000000,0.000000 -4815,-3.0,90.000035,0.000000,0.000000 -4816,-3.0,90.000035,0.000000,0.000000 -4817,-3.0,90.000035,0.000000,0.000000 -4818,-3.0,90.000035,0.000000,0.000000 -4819,-3.0,90.000035,0.000000,0.000000 -4820,-3.0,90.000035,0.000000,0.000000 -4821,-3.0,90.000035,0.000000,0.000000 -4822,-3.0,90.000035,0.000000,0.000000 -4823,-3.0,90.000035,0.000000,0.000000 -4824,-3.0,90.000035,0.000000,0.000000 -4825,-3.0,90.000035,0.000000,0.000000 -4826,-3.0,90.000035,0.000000,0.000000 -4827,-3.0,90.000035,0.000000,0.000000 -4828,-3.0,90.000035,0.000000,0.000000 -4829,-3.0,90.000035,0.000000,0.000000 -4830,-3.0,90.000035,0.000000,0.000000 -4831,-3.0,90.000035,0.000000,0.000000 -4832,-3.0,90.000035,0.000000,0.000000 -4833,-3.0,90.000035,0.000000,0.000000 -4834,-3.0,90.000035,0.000000,0.000000 -4835,-3.0,90.000035,0.000000,0.000000 -4836,-3.0,90.000035,0.000000,0.000000 -4837,-3.0,90.000035,0.000000,0.000000 -4838,-3.0,90.000035,0.000000,0.000000 -4839,-3.0,90.000035,0.000000,0.000000 -4840,-3.0,90.000035,0.000000,0.000000 -4841,-3.0,90.000035,0.000000,0.000000 -4842,-3.0,90.000035,0.000000,0.000000 -4843,-3.0,90.000035,0.000000,0.000000 -4844,-3.0,90.000035,0.000000,0.000000 -4845,-3.0,90.000035,0.000000,0.000000 -4846,-3.0,90.000035,0.000000,0.000000 -4847,-3.0,90.000035,0.000000,0.000000 -4848,-3.0,90.000035,0.000000,0.000000 -4849,-3.0,90.000035,0.000000,0.000000 -4850,-3.0,90.000035,0.000000,0.000000 -4851,-3.0,90.000035,0.000000,0.000000 -4852,-3.0,90.000035,0.000000,0.000000 -4853,-3.0,90.000035,0.000000,0.000000 -4854,-3.0,90.000035,0.000000,0.000000 -4855,-3.0,90.000035,0.000000,0.000000 -4856,-3.0,90.000035,0.000000,0.000000 -4857,-3.0,90.000035,0.000000,0.000000 -4858,-3.0,90.000035,0.000000,0.000000 -4859,-3.0,90.000035,0.000000,0.000000 -4860,-3.0,90.000035,0.000000,0.000000 -4861,-3.0,90.000035,0.000000,0.000000 -4862,-3.0,90.000035,0.000000,0.000000 -4863,-3.0,90.000035,0.000000,0.000000 -4864,-3.0,90.000035,0.000000,0.000000 -4865,-3.0,90.000035,0.000000,0.000000 -4866,-3.0,90.000035,0.000000,0.000000 -4867,-3.0,90.000035,0.000000,0.000000 -4868,-3.0,90.000035,0.000000,0.000000 -4869,-3.0,90.000035,0.000000,0.000000 -4870,-3.0,90.000035,0.000000,0.000000 -4871,-3.0,90.000035,0.000000,0.000000 -4872,-3.0,90.000035,0.000000,0.000000 -4873,-3.0,90.000035,0.000000,0.000000 -4874,-3.0,90.000035,0.000000,0.000000 -4875,-3.0,90.000035,0.000000,0.000000 -4876,-3.0,90.000035,0.000000,0.000000 -4877,-3.0,90.000035,0.000000,0.000000 -4878,-3.0,90.000035,0.000000,0.000000 -4879,-3.0,90.000035,0.000000,0.000000 -4880,-3.0,90.000035,0.000000,0.000000 -4881,-3.0,90.000035,0.000000,0.000000 -4882,-3.0,90.000035,0.000000,0.000000 -4883,-3.0,90.000035,0.000000,0.000000 -4884,-3.0,90.000035,0.000000,0.000000 -4885,-3.0,90.000035,0.000000,0.000000 -4886,-3.0,90.000035,0.000000,0.000000 -4887,-3.0,90.000035,0.000000,0.000000 -4888,-3.0,90.000035,0.000000,0.000000 -4889,-3.0,90.000035,0.000000,0.000000 -4890,-3.0,90.000035,0.000000,0.000000 -4891,-3.0,90.000035,0.000000,0.000000 -4892,-3.0,90.000035,0.000000,0.000000 -4893,-3.0,90.000035,0.000000,0.000000 -4894,-3.0,90.000035,0.000000,0.000000 -4895,-3.0,90.000035,0.000000,0.000000 -4896,-3.0,90.000035,0.000000,0.000000 -4897,-3.0,90.000035,0.000000,0.000000 -4898,-3.0,90.000035,0.000000,0.000000 -4899,-3.0,90.000035,0.000000,0.000000 -4900,-3.0,90.000035,0.000000,0.000000 -4901,-3.0,90.000035,0.000000,0.000000 -4902,-3.0,90.000035,0.000000,0.000000 -4903,-3.0,90.000035,0.000000,0.000000 -4904,-3.0,90.000035,0.000000,0.000000 -4905,-3.0,90.000035,0.000000,0.000000 -4906,-3.0,90.000035,0.000000,0.000000 -4907,-3.0,90.000035,0.000000,0.000000 -4908,-3.0,90.000035,0.000000,0.000000 -4909,-3.0,90.000035,0.000000,0.000000 -4910,-3.0,90.000035,0.000000,0.000000 -4911,-3.0,90.000035,0.000000,0.000000 -4912,-3.0,90.000035,0.000000,0.000000 -4913,-3.0,90.000035,0.000000,0.000000 -4914,-3.0,90.000035,0.000000,0.000000 -4915,-3.0,90.000035,0.000000,0.000000 -4916,-3.0,90.000035,0.000000,0.000000 -4917,-3.0,90.000035,0.000000,0.000000 -4918,-3.0,90.000035,0.000000,0.000000 -4919,-3.0,90.000035,0.000000,0.000000 -4920,-3.0,90.000035,0.000000,0.000000 -4921,-3.0,90.000035,0.000000,0.000000 -4922,-3.0,90.000035,0.000000,0.000000 -4923,-3.0,90.000035,0.000000,0.000000 -4924,-3.0,90.000035,0.000000,0.000000 -4925,-3.0,90.000035,0.000000,0.000000 -4926,-3.0,90.000035,0.000000,0.000000 -4927,-3.0,90.000035,0.000000,0.000000 -4928,-3.0,90.000035,0.000000,0.000000 -4929,-3.0,90.000035,0.000000,0.000000 -4930,-3.0,90.000035,0.000000,0.000000 -4931,-3.0,90.000035,0.000000,0.000000 -4932,-3.0,90.000035,0.000000,0.000000 -4933,-3.0,90.000035,0.000000,0.000000 -4934,-3.0,90.000035,0.000000,0.000000 -4935,-3.0,90.000035,0.000000,0.000000 -4936,-3.0,90.000035,0.000000,0.000000 -4937,-3.0,90.000035,0.000000,0.000000 -4938,-3.0,90.000035,0.000000,0.000000 -4939,-3.0,90.000035,0.000000,0.000000 -4940,-3.0,90.000035,0.000000,0.000000 -4941,-3.0,90.000035,0.000000,0.000000 -4942,-3.0,90.000035,0.000000,0.000000 -4943,-3.0,90.000035,0.000000,0.000000 -4944,-3.0,90.000035,0.000000,0.000000 -4945,-3.0,90.000035,0.000000,0.000000 -4946,-3.0,90.000035,0.000000,0.000000 -4947,-3.0,90.000035,0.000000,0.000000 -4948,-3.0,90.000035,0.000000,0.000000 -4949,-3.0,90.000035,0.000000,0.000000 -4950,-3.0,90.000035,0.000000,0.000000 -4951,-3.0,90.000035,0.000000,0.000000 -4952,-3.0,90.000035,0.000000,0.000000 -4953,-3.0,90.000035,0.000000,0.000000 -4954,-3.0,90.000035,0.000000,0.000000 -4955,-3.0,90.000035,0.000000,0.000000 -4956,-3.0,90.000035,0.000000,0.000000 -4957,-3.0,90.000035,0.000000,0.000000 -4958,-3.0,90.000035,0.000000,0.000000 -4959,-3.0,90.000035,0.000000,0.000000 -4960,-3.0,90.000035,0.000000,0.000000 -4961,-3.0,90.000035,0.000000,0.000000 -4962,-3.0,90.000035,0.000000,0.000000 -4963,-3.0,90.000035,0.000000,0.000000 -4964,-3.0,90.000035,0.000000,0.000000 -4965,-3.0,90.000035,0.000000,0.000000 -4966,-3.0,90.000035,0.000000,0.000000 -4967,-3.0,90.000035,0.000000,0.000000 -4968,-3.0,90.000035,0.000000,0.000000 -4969,-3.0,90.000035,0.000000,0.000000 -4970,-3.0,90.000035,0.000000,0.000000 -4971,-3.0,90.000035,0.000000,0.000000 -4972,-3.0,90.000035,0.000000,0.000000 -4973,-3.0,90.000035,0.000000,0.000000 -4974,-3.0,90.000035,0.000000,0.000000 -4975,-3.0,90.000035,0.000000,0.000000 -4976,-3.0,90.000035,0.000000,0.000000 -4977,-3.0,90.000035,0.000000,0.000000 -4978,-3.0,90.000035,0.000000,0.000000 -4979,-3.0,90.000035,0.000000,0.000000 -4980,-3.0,90.000035,0.000000,0.000000 -4981,-3.0,90.000035,0.000000,0.000000 -4982,-3.0,90.000035,0.000000,0.000000 -4983,-3.0,90.000035,0.000000,0.000000 -4984,-3.0,90.000035,0.000000,0.000000 -4985,-3.0,90.000035,0.000000,0.000000 -4986,-3.0,90.000035,0.000000,0.000000 -4987,-3.0,90.000035,0.000000,0.000000 -4988,-3.0,90.000035,0.000000,0.000000 -4989,-3.0,90.000035,0.000000,0.000000 -4990,-3.0,90.000035,0.000000,0.000000 -4991,-3.0,90.000035,0.000000,0.000000 -4992,-3.0,90.000035,0.000000,0.000000 -4993,-3.0,90.000035,0.000000,0.000000 -4994,-3.0,90.000035,0.000000,0.000000 -4995,-3.0,90.000035,0.000000,0.000000 -4996,-3.0,90.000035,0.000000,0.000000 -4997,-3.0,90.000035,0.000000,0.000000 -4998,-3.0,90.000035,0.000000,0.000000 -4999,-3.0,90.000035,0.000000,0.000000 -5000,-3.0,90.000035,0.000000,0.000000 -5001,-3.0,90.000035,0.000000,0.000000 -5002,-3.0,90.000035,0.000000,0.000000 -5003,-3.0,90.000035,0.000000,0.000000 -5004,-3.0,90.000035,0.000000,0.000000 -5005,-3.0,90.000035,0.000000,0.000000 -5006,-3.0,90.000035,0.000000,0.000000 -5007,-3.0,90.000035,0.000000,0.000000 -5008,-3.0,90.000035,0.000000,0.000000 -5009,-3.0,90.000035,0.000000,0.000000 -5010,-3.0,90.000035,0.000000,0.000000 -5011,-3.0,90.000035,0.000000,0.000000 -5012,-3.0,90.000035,0.000000,0.000000 -5013,-3.0,90.000035,0.000000,0.000000 -5014,-3.0,90.000035,0.000000,0.000000 -5015,-3.0,90.000035,0.000000,0.000000 -5016,-3.0,90.000035,0.000000,0.000000 -5017,-3.0,90.000035,0.000000,0.000000 -5018,-3.0,90.000035,0.000000,0.000000 -5019,-3.0,90.000035,0.000000,0.000000 -5020,-3.0,90.000035,0.000000,0.000000 -5021,-3.0,90.000035,0.000000,0.000000 -5022,-3.0,90.000035,0.000000,0.000000 -5023,-3.0,90.000035,0.000000,0.000000 -5024,-3.0,90.000035,0.000000,0.000000 -5025,-3.0,90.000035,0.000000,0.000000 -5026,-3.0,90.000035,0.000000,0.000000 -5027,-3.0,90.000035,0.000000,0.000000 -5028,-3.0,90.000035,0.000000,0.000000 -5029,-3.0,90.000035,0.000000,0.000000 -5030,-3.0,90.000035,0.000000,0.000000 -5031,-3.0,90.000035,0.000000,0.000000 -5032,-3.0,90.000035,0.000000,0.000000 -5033,-3.0,90.000035,0.000000,0.000000 -5034,-3.0,90.000035,0.000000,0.000000 -5035,-3.0,90.000035,0.000000,0.000000 -5036,-3.0,90.000035,0.000000,0.000000 -5037,-3.0,90.000035,0.000000,0.000000 -5038,-3.0,90.000035,0.000000,0.000000 -5039,-3.0,90.000035,0.000000,0.000000 -5040,-3.0,90.000035,0.000000,0.000000 -5041,-3.0,90.000035,0.000000,0.000000 -5042,-3.0,90.000035,0.000000,0.000000 -5043,-3.0,90.000035,0.000000,0.000000 -5044,-3.0,90.000035,0.000000,0.000000 -5045,-3.0,90.000035,0.000000,0.000000 -5046,-3.0,90.000035,0.000000,0.000000 -5047,-3.0,90.000035,0.000000,0.000000 -5048,-3.0,90.000035,0.000000,0.000000 -5049,-3.0,90.000035,0.000000,0.000000 -5050,-3.0,90.000035,0.000000,0.000000 -5051,-3.0,90.000035,0.000000,0.000000 -5052,-3.0,90.000035,0.000000,0.000000 -5053,-3.0,90.000035,0.000000,0.000000 -5054,-3.0,90.000035,0.000000,0.000000 -5055,-3.0,90.000035,0.000000,0.000000 -5056,-3.0,90.000035,0.000000,0.000000 -5057,-3.0,90.000035,0.000000,0.000000 -5058,-3.0,90.000035,0.000000,0.000000 -5059,-3.0,90.000035,0.000000,0.000000 -5060,-3.0,90.000035,0.000000,0.000000 -5061,-3.0,90.000035,0.000000,0.000000 -5062,-3.0,90.000035,0.000000,0.000000 -5063,-3.0,90.000035,0.000000,0.000000 -5064,-3.0,90.000035,0.000000,0.000000 -5065,-3.0,90.000035,0.000000,0.000000 -5066,-3.0,90.000035,0.000000,0.000000 -5067,-3.0,90.000035,0.000000,0.000000 -5068,-3.0,90.000035,0.000000,0.000000 -5069,-3.0,90.000035,0.000000,0.000000 -5070,-3.0,90.000035,0.000000,0.000000 -5071,-3.0,90.000035,0.000000,0.000000 -5072,-3.0,90.000035,0.000000,0.000000 -5073,-3.0,90.000035,0.000000,0.000000 -5074,-3.0,90.000035,0.000000,0.000000 -5075,-3.0,90.000035,0.000000,0.000000 -5076,-3.0,90.000035,0.000000,0.000000 -5077,-3.0,90.000035,0.000000,0.000000 -5078,-3.0,90.000035,0.000000,0.000000 -5079,-3.0,90.000035,0.000000,0.000000 -5080,-3.0,90.000035,0.000000,0.000000 -5081,-3.0,90.000035,0.000000,0.000000 -5082,-3.0,90.000035,0.000000,0.000000 -5083,-3.0,90.000035,0.000000,0.000000 -5084,-3.0,90.000035,0.000000,0.000000 -5085,-3.0,90.000035,0.000000,0.000000 -5086,-3.0,90.000035,0.000000,0.000000 -5087,-3.0,90.000035,0.000000,0.000000 -5088,-3.0,90.000035,0.000000,0.000000 -5089,-3.0,90.000035,0.000000,0.000000 -5090,-3.0,90.000035,0.000000,0.000000 -5091,-3.0,90.000035,0.000000,0.000000 -5092,-3.0,90.000035,0.000000,0.000000 -5093,-3.0,90.000035,0.000000,0.000000 -5094,-3.0,90.000035,0.000000,0.000000 -5095,-3.0,90.000035,0.000000,0.000000 -5096,-3.0,90.000035,0.000000,0.000000 -5097,-3.0,90.000035,0.000000,0.000000 -5098,-3.0,90.000035,0.000000,0.000000 -5099,-3.0,90.000035,0.000000,0.000000 -5100,-3.0,90.000035,0.000000,0.000000 -5101,-3.0,90.000035,0.000000,0.000000 -5102,-3.0,90.000035,0.000000,0.000000 -5103,-3.0,90.000035,0.000000,0.000000 -5104,-3.0,90.000035,0.000000,0.000000 -5105,-3.0,90.000035,0.000000,0.000000 -5106,-3.0,90.000035,0.000000,0.000000 -5107,-3.0,90.000035,0.000000,0.000000 -5108,-3.0,90.000035,0.000000,0.000000 -5109,-3.0,90.000035,0.000000,0.000000 -5110,-3.0,90.000035,0.000000,0.000000 -5111,-3.0,90.000035,0.000000,0.000000 -5112,-3.0,90.000035,0.000000,0.000000 -5113,-3.0,90.000035,0.000000,0.000000 -5114,-3.0,90.000035,0.000000,0.000000 -5115,-3.0,90.000035,0.000000,0.000000 -5116,-3.0,90.000035,0.000000,0.000000 -5117,-3.0,90.000035,0.000000,0.000000 -5118,-3.0,90.000035,0.000000,0.000000 -5119,-3.0,90.000035,0.000000,0.000000 -5120,-3.0,90.000035,0.000000,0.000000 -5121,-3.0,90.000035,0.000000,0.000000 -5122,-3.0,90.000035,0.000000,0.000000 -5123,-3.0,90.000035,0.000000,0.000000 -5124,-3.0,90.000035,0.000000,0.000000 -5125,-3.0,90.000035,0.000000,0.000000 -5126,-3.0,90.000035,0.000000,0.000000 -5127,-3.0,90.000035,0.000000,0.000000 -5128,-3.0,90.000035,0.000000,0.000000 -5129,-3.0,90.000035,0.000000,0.000000 -5130,-3.0,90.000035,0.000000,0.000000 -5131,-3.0,90.000035,0.000000,0.000000 -5132,-3.0,90.000035,0.000000,0.000000 -5133,-3.0,90.000035,0.000000,0.000000 -5134,-3.0,90.000035,0.000000,0.000000 -5135,-3.0,90.000035,0.000000,0.000000 -5136,-3.0,90.000035,0.000000,0.000000 -5137,-3.0,90.000035,0.000000,0.000000 -5138,-3.0,90.000035,0.000000,0.000000 -5139,-3.0,90.000035,0.000000,0.000000 -5140,-3.0,90.000035,0.000000,0.000000 -5141,-3.0,90.000035,0.000000,0.000000 -5142,-3.0,90.000035,0.000000,0.000000 -5143,-3.0,90.000035,0.000000,0.000000 -5144,-3.0,90.000035,0.000000,0.000000 -5145,-3.0,90.000035,0.000000,0.000000 -5146,-3.0,90.000035,0.000000,0.000000 -5147,-3.0,90.000035,0.000000,0.000000 -5148,-3.0,90.000035,0.000000,0.000000 -5149,-3.0,90.000035,0.000000,0.000000 -5150,-3.0,90.000035,0.000000,0.000000 -5151,-3.0,90.000035,0.000000,0.000000 -5152,-3.0,90.000035,0.000000,0.000000 -5153,-3.0,90.000035,0.000000,0.000000 -5154,-3.0,90.000035,0.000000,0.000000 -5155,-3.0,90.000035,0.000000,0.000000 -5156,-3.0,90.000035,0.000000,0.000000 -5157,-3.0,90.000035,0.000000,0.000000 -5158,-3.0,90.000035,0.000000,0.000000 -5159,-3.0,90.000035,0.000000,0.000000 -5160,-3.0,90.000035,0.000000,0.000000 -5161,-3.0,90.000035,0.000000,0.000000 -5162,-3.0,90.000035,0.000000,0.000000 -5163,-3.0,90.000035,0.000000,0.000000 -5164,-3.0,90.000035,0.000000,0.000000 -5165,-3.0,90.000035,0.000000,0.000000 -5166,-3.0,90.000035,0.000000,0.000000 -5167,-3.0,90.000035,0.000000,0.000000 -5168,-3.0,90.000035,0.000000,0.000000 -5169,-3.0,90.000035,0.000000,0.000000 -5170,-3.0,90.000035,0.000000,0.000000 -5171,-3.0,90.000035,0.000000,0.000000 -5172,-3.0,90.000035,0.000000,0.000000 -5173,-3.0,90.000035,0.000000,0.000000 -5174,-3.0,90.000035,0.000000,0.000000 -5175,-3.0,90.000035,0.000000,0.000000 -5176,-3.0,90.000035,0.000000,0.000000 -5177,-3.0,90.000035,0.000000,0.000000 -5178,-3.0,90.000035,0.000000,0.000000 -5179,-3.0,90.000035,0.000000,0.000000 -5180,-3.0,90.000035,0.000000,0.000000 -5181,-3.0,90.000035,0.000000,0.000000 -5182,-3.0,90.000035,0.000000,0.000000 -5183,-3.0,90.000035,0.000000,0.000000 -5184,-3.0,90.000035,0.000000,0.000000 -5185,-3.0,90.000035,0.000000,0.000000 -5186,-3.0,90.000035,0.000000,0.000000 -5187,-3.0,90.000035,0.000000,0.000000 -5188,-3.0,90.000035,0.000000,0.000000 -5189,-3.0,90.000035,0.000000,0.000000 -5190,-3.0,90.000035,0.000000,0.000000 -5191,-3.0,90.000035,0.000000,0.000000 -5192,-3.0,90.000035,0.000000,0.000000 -5193,-3.0,90.000035,0.000000,0.000000 -5194,-3.0,90.000035,0.000000,0.000000 -5195,-3.0,90.000035,0.000000,0.000000 -5196,-3.0,90.000035,0.000000,0.000000 -5197,-3.0,90.000035,0.000000,0.000000 -5198,-3.0,90.000035,0.000000,0.000000 -5199,-3.0,90.000035,0.000000,0.000000 -5200,-3.0,90.000035,0.000000,0.000000 -5201,-3.0,90.000035,0.000000,0.000000 -5202,-3.0,90.000035,0.000000,0.000000 -5203,-3.0,90.000035,0.000000,0.000000 -5204,-3.0,90.000035,0.000000,0.000000 -5205,-3.0,90.000035,0.000000,0.000000 -5206,-3.0,90.000035,0.000000,0.000000 -5207,-3.0,90.000035,0.000000,0.000000 -5208,-3.0,90.000035,0.000000,0.000000 -5209,-3.0,90.000035,0.000000,0.000000 -5210,-3.0,90.000035,0.000000,0.000000 -5211,-3.0,90.000035,0.000000,0.000000 -5212,-3.0,90.000035,0.000000,0.000000 -5213,-3.0,90.000035,0.000000,0.000000 -5214,-3.0,90.000035,0.000000,0.000000 -5215,-3.0,90.000035,0.000000,0.000000 -5216,-3.0,90.000035,0.000000,0.000000 -5217,-3.0,90.000035,0.000000,0.000000 -5218,-3.0,90.000035,0.000000,0.000000 -5219,-3.0,90.000035,0.000000,0.000000 -5220,-3.0,90.000035,0.000000,0.000000 -5221,-3.0,90.000035,0.000000,0.000000 -5222,-3.0,90.000035,0.000000,0.000000 -5223,-3.0,90.000035,0.000000,0.000000 -5224,-3.0,90.000035,0.000000,0.000000 -5225,-3.0,90.000035,0.000000,0.000000 -5226,-3.0,90.000035,0.000000,0.000000 -5227,-3.0,90.000035,0.000000,0.000000 -5228,-3.0,90.000035,0.000000,0.000000 -5229,-3.0,90.000035,0.000000,0.000000 -5230,-3.0,90.000035,0.000000,0.000000 -5231,-3.0,90.000035,0.000000,0.000000 -5232,-3.0,90.000035,0.000000,0.000000 -5233,-3.0,90.000035,0.000000,0.000000 -5234,-3.0,90.000035,0.000000,0.000000 -5235,-3.0,90.000035,0.000000,0.000000 -5236,-3.0,90.000035,0.000000,0.000000 -5237,-3.0,90.000035,0.000000,0.000000 -5238,-3.0,90.000035,0.000000,0.000000 -5239,-3.0,90.000035,0.000000,0.000000 -5240,-3.0,90.000035,0.000000,0.000000 -5241,-3.0,90.000035,0.000000,0.000000 -5242,-3.0,90.000035,0.000000,0.000000 -5243,-3.0,90.000035,0.000000,0.000000 -5244,-3.0,90.000035,0.000000,0.000000 -5245,-3.0,90.000035,0.000000,0.000000 -5246,-3.0,90.000035,0.000000,0.000000 -5247,-3.0,90.000035,0.000000,0.000000 -5248,-3.0,90.000035,0.000000,0.000000 -5249,-3.0,90.000035,0.000000,0.000000 -5250,-3.0,90.000035,0.000000,0.000000 -5251,-3.0,90.000035,0.000000,0.000000 -5252,-3.0,90.000035,0.000000,0.000000 -5253,-3.0,90.000035,0.000000,0.000000 -5254,-3.0,90.000035,0.000000,0.000000 -5255,-3.0,90.000035,0.000000,0.000000 -5256,-3.0,90.000035,0.000000,0.000000 -5257,-3.0,90.000035,0.000000,0.000000 -5258,-3.0,90.000035,0.000000,0.000000 -5259,-3.0,90.000035,0.000000,0.000000 -5260,-3.0,90.000035,0.000000,0.000000 -5261,-3.0,90.000035,0.000000,0.000000 -5262,-3.0,90.000035,0.000000,0.000000 -5263,-3.0,90.000035,0.000000,0.000000 -5264,-3.0,90.000035,0.000000,0.000000 -5265,-3.0,90.000035,0.000000,0.000000 -5266,-3.0,90.000035,0.000000,0.000000 -5267,-3.0,90.000035,0.000000,0.000000 -5268,-3.0,90.000035,0.000000,0.000000 -5269,-3.0,90.000035,0.000000,0.000000 -5270,-3.0,90.000035,0.000000,0.000000 -5271,-3.0,90.000035,0.000000,0.000000 -5272,-3.0,90.000035,0.000000,0.000000 -5273,-3.0,90.000035,0.000000,0.000000 -5274,-3.0,90.000035,0.000000,0.000000 -5275,-3.0,90.000035,0.000000,0.000000 -5276,-3.0,90.000035,0.000000,0.000000 -5277,-3.0,90.000035,0.000000,0.000000 -5278,-3.0,90.000035,0.000000,0.000000 -5279,-3.0,90.000035,0.000000,0.000000 -5280,-3.0,90.000035,0.000000,0.000000 -5281,-3.0,90.000035,0.000000,0.000000 -5282,-3.0,90.000035,0.000000,0.000000 -5283,-3.0,90.000035,0.000000,0.000000 -5284,-3.0,90.000035,0.000000,0.000000 -5285,-3.0,90.000035,0.000000,0.000000 -5286,-3.0,90.000035,0.000000,0.000000 -5287,-3.0,90.000035,0.000000,0.000000 -5288,-3.0,90.000035,0.000000,0.000000 -5289,-3.0,90.000035,0.000000,0.000000 -5290,-3.0,90.000035,0.000000,0.000000 -5291,-3.0,90.000035,0.000000,0.000000 -5292,-3.0,90.000035,0.000000,0.000000 -5293,-3.0,90.000035,0.000000,0.000000 -5294,-3.0,90.000035,0.000000,0.000000 -5295,-3.0,90.000035,0.000000,0.000000 -5296,-3.0,90.000035,0.000000,0.000000 -5297,-3.0,90.000035,0.000000,0.000000 -5298,-3.0,90.000035,0.000000,0.000000 -5299,-3.0,90.000035,0.000000,0.000000 -5300,-3.0,90.000035,0.000000,0.000000 -5301,-3.0,90.000035,0.000000,0.000000 -5302,-3.0,90.000035,0.000000,0.000000 -5303,-3.0,90.000035,0.000000,0.000000 -5304,-3.0,90.000035,0.000000,0.000000 -5305,-3.0,90.000035,0.000000,0.000000 -5306,-3.0,90.000035,0.000000,0.000000 -5307,-3.0,90.000035,0.000000,0.000000 -5308,-3.0,90.000035,0.000000,0.000000 -5309,-3.0,90.000035,0.000000,0.000000 -5310,-3.0,90.000035,0.000000,0.000000 -5311,-3.0,90.000035,0.000000,0.000000 -5312,-3.0,90.000035,0.000000,0.000000 -5313,-3.0,90.000035,0.000000,0.000000 -5314,-3.0,90.000035,0.000000,0.000000 -5315,-3.0,90.000035,0.000000,0.000000 -5316,-3.0,90.000035,0.000000,0.000000 -5317,-3.0,90.000035,0.000000,0.000000 -5318,-3.0,90.000035,0.000000,0.000000 -5319,-3.0,90.000035,0.000000,0.000000 -5320,-3.0,90.000035,0.000000,0.000000 -5321,-3.0,90.000035,0.000000,0.000000 -5322,-3.0,90.000035,0.000000,0.000000 -5323,-3.0,90.000035,0.000000,0.000000 -5324,-3.0,90.000035,0.000000,0.000000 -5325,-3.0,90.000035,0.000000,0.000000 -5326,-3.0,90.000035,0.000000,0.000000 -5327,-3.0,90.000035,0.000000,0.000000 -5328,-3.0,90.000035,0.000000,0.000000 -5329,-3.0,90.000035,0.000000,0.000000 -5330,-3.0,90.000035,0.000000,0.000000 -5331,-3.0,90.000035,0.000000,0.000000 -5332,-3.0,90.000035,0.000000,0.000000 -5333,-3.0,90.000035,0.000000,0.000000 -5334,-3.0,90.000035,0.000000,0.000000 -5335,-3.0,90.000035,0.000000,0.000000 -5336,-3.0,90.000035,0.000000,0.000000 -5337,-3.0,90.000035,0.000000,0.000000 -5338,-3.0,90.000035,0.000000,0.000000 -5339,-3.0,90.000035,0.000000,0.000000 -5340,-3.0,90.000035,0.000000,0.000000 -5341,-3.0,90.000035,0.000000,0.000000 -5342,-3.0,90.000035,0.000000,0.000000 -5343,-3.0,90.000035,0.000000,0.000000 -5344,-3.0,90.000035,0.000000,0.000000 -5345,-3.0,90.000035,0.000000,0.000000 -5346,-3.0,90.000035,0.000000,0.000000 -5347,-3.0,90.000035,0.000000,0.000000 -5348,-3.0,90.000035,0.000000,0.000000 -5349,-3.0,90.000035,0.000000,0.000000 -5350,-3.0,90.000035,0.000000,0.000000 -5351,-3.0,90.000035,0.000000,0.000000 -5352,-3.0,90.000035,0.000000,0.000000 -5353,-3.0,90.000035,0.000000,0.000000 -5354,-3.0,90.000035,0.000000,0.000000 -5355,-3.0,90.000035,0.000000,0.000000 -5356,-3.0,90.000035,0.000000,0.000000 -5357,-3.0,90.000035,0.000000,0.000000 -5358,-3.0,90.000035,0.000000,0.000000 -5359,-3.0,90.000035,0.000000,0.000000 -5360,-3.0,90.000035,0.000000,0.000000 -5361,-3.0,90.000035,0.000000,0.000000 -5362,-3.0,90.000035,0.000000,0.000000 -5363,-3.0,90.000035,0.000000,0.000000 -5364,-3.0,90.000035,0.000000,0.000000 -5365,-3.0,90.000035,0.000000,0.000000 -5366,-3.0,90.000035,0.000000,0.000000 -5367,-3.0,90.000035,0.000000,0.000000 -5368,-3.0,90.000035,0.000000,0.000000 -5369,-3.0,90.000035,0.000000,0.000000 -5370,-3.0,90.000035,0.000000,0.000000 -5371,-3.0,90.000035,0.000000,0.000000 -5372,-3.0,90.000035,0.000000,0.000000 -5373,-3.0,90.000035,0.000000,0.000000 -5374,-3.0,90.000035,0.000000,0.000000 -5375,-3.0,90.000035,0.000000,0.000000 -5376,-3.0,90.000035,0.000000,0.000000 -5377,-3.0,90.000035,0.000000,0.000000 -5378,-3.0,90.000035,0.000000,0.000000 -5379,-3.0,90.000035,0.000000,0.000000 -5380,-3.0,90.000035,0.000000,0.000000 -5381,-3.0,90.000035,0.000000,0.000000 -5382,-3.0,90.000035,0.000000,0.000000 -5383,-3.0,90.000035,0.000000,0.000000 -5384,-3.0,90.000035,0.000000,0.000000 -5385,-3.0,90.000035,0.000000,0.000000 -5386,-3.0,90.000035,0.000000,0.000000 -5387,-3.0,90.000035,0.000000,0.000000 -5388,-3.0,90.000035,0.000000,0.000000 -5389,-3.0,90.000035,0.000000,0.000000 -5390,-3.0,90.000035,0.000000,0.000000 -5391,-3.0,90.000035,0.000000,0.000000 -5392,-3.0,90.000035,0.000000,0.000000 -5393,-3.0,90.000035,0.000000,0.000000 -5394,-3.0,90.000035,0.000000,0.000000 -5395,-3.0,90.000035,0.000000,0.000000 -5396,-3.0,90.000035,0.000000,0.000000 -5397,-3.0,90.000035,0.000000,0.000000 -5398,-3.0,90.000035,0.000000,0.000000 -5399,-3.0,90.000035,0.000000,0.000000 -5400,-3.0,90.000035,0.000000,0.000000 -5401,-3.0,90.000035,0.000000,0.000000 -5402,-3.0,90.000035,0.000000,0.000000 -5403,-3.0,90.000035,0.000000,0.000000 -5404,-3.0,90.000035,0.000000,0.000000 -5405,-3.0,90.000035,0.000000,0.000000 -5406,-3.0,90.000035,0.000000,0.000000 -5407,-3.0,90.000035,0.000000,0.000000 -5408,-3.0,90.000035,0.000000,0.000000 -5409,-3.0,90.000035,0.000000,0.000000 -5410,-3.0,90.000035,0.000000,0.000000 -5411,-3.0,90.000035,0.000000,0.000000 -5412,-3.0,90.000035,0.000000,0.000000 -5413,-3.0,90.000035,0.000000,0.000000 -5414,-3.0,90.000035,0.000000,0.000000 -5415,-3.0,90.000035,0.000000,0.000000 -5416,-3.0,90.000035,0.000000,0.000000 -5417,-3.0,90.000035,0.000000,0.000000 -5418,-3.0,90.000035,0.000000,0.000000 -5419,-3.0,90.000035,0.000000,0.000000 -5420,-3.0,90.000035,0.000000,0.000000 -5421,-3.0,90.000035,0.000000,0.000000 -5422,-3.0,90.000035,0.000000,0.000000 -5423,-3.0,90.000035,0.000000,0.000000 -5424,-3.0,90.000035,0.000000,0.000000 -5425,-3.0,90.000035,0.000000,0.000000 -5426,-3.0,90.000035,0.000000,0.000000 -5427,-3.0,90.000035,0.000000,0.000000 -5428,-3.0,90.000035,0.000000,0.000000 -5429,-3.0,90.000035,0.000000,0.000000 -5430,-3.0,90.000035,0.000000,0.000000 -5431,-3.0,90.000035,0.000000,0.000000 -5432,-3.0,90.000035,0.000000,0.000000 -5433,-3.0,90.000035,0.000000,0.000000 -5434,-3.0,90.000035,0.000000,0.000000 -5435,-3.0,90.000035,0.000000,0.000000 -5436,-3.0,90.000035,0.000000,0.000000 -5437,-3.0,90.000035,0.000000,0.000000 -5438,-3.0,90.000035,0.000000,0.000000 -5439,-3.0,90.000035,0.000000,0.000000 -5440,-3.0,90.000035,0.000000,0.000000 -5441,-3.0,90.000035,0.000000,0.000000 -5442,-3.0,90.000035,0.000000,0.000000 -5443,-3.0,90.000035,0.000000,0.000000 -5444,-3.0,90.000035,0.000000,0.000000 -5445,-3.0,90.000035,0.000000,0.000000 -5446,-3.0,90.000035,0.000000,0.000000 -5447,-3.0,90.000035,0.000000,0.000000 -5448,-3.0,90.000035,0.000000,0.000000 -5449,-3.0,90.000035,0.000000,0.000000 -5450,-3.0,90.000035,0.000000,0.000000 -5451,-3.0,90.000035,0.000000,0.000000 -5452,-3.0,90.000035,0.000000,0.000000 -5453,-3.0,90.000035,0.000000,0.000000 -5454,-3.0,90.000035,0.000000,0.000000 -5455,-3.0,90.000035,0.000000,0.000000 -5456,-3.0,90.000035,0.000000,0.000000 -5457,-3.0,90.000035,0.000000,0.000000 -5458,-3.0,90.000035,0.000000,0.000000 -5459,-3.0,90.000035,0.000000,0.000000 -5460,-3.0,90.000035,0.000000,0.000000 -5461,-3.0,90.000035,0.000000,0.000000 -5462,-3.0,90.000035,0.000000,0.000000 -5463,-3.0,90.000035,0.000000,0.000000 -5464,-3.0,90.000035,0.000000,0.000000 -5465,-3.0,90.000035,0.000000,0.000000 -5466,-3.0,90.000035,0.000000,0.000000 -5467,-3.0,90.000035,0.000000,0.000000 -5468,-3.0,90.000035,0.000000,0.000000 -5469,-3.0,90.000035,0.000000,0.000000 -5470,-3.0,90.000035,0.000000,0.000000 -5471,-3.0,90.000035,0.000000,0.000000 -5472,-3.0,90.000035,0.000000,0.000000 -5473,-3.0,90.000035,0.000000,0.000000 -5474,-3.0,90.000035,0.000000,0.000000 -5475,-3.0,90.000035,0.000000,0.000000 -5476,-3.0,90.000035,0.000000,0.000000 -5477,-3.0,90.000035,0.000000,0.000000 -5478,-3.0,90.000035,0.000000,0.000000 -5479,-3.0,90.000035,0.000000,0.000000 -5480,-3.0,90.000035,0.000000,0.000000 -5481,-3.0,90.000035,0.000000,0.000000 -5482,-3.0,90.000035,0.000000,0.000000 -5483,-3.0,90.000035,0.000000,0.000000 -5484,-3.0,90.000035,0.000000,0.000000 -5485,-3.0,90.000035,0.000000,0.000000 -5486,-3.0,90.000035,0.000000,0.000000 -5487,-3.0,90.000035,0.000000,0.000000 -5488,-3.0,90.000035,0.000000,0.000000 -5489,-3.0,90.000035,0.000000,0.000000 -5490,-3.0,90.000035,0.000000,0.000000 -5491,-3.0,90.000035,0.000000,0.000000 -5492,-3.0,90.000035,0.000000,0.000000 -5493,-3.0,90.000035,0.000000,0.000000 -5494,-3.0,90.000035,0.000000,0.000000 -5495,-3.0,90.000035,0.000000,0.000000 -5496,-3.0,90.000035,0.000000,0.000000 -5497,-3.0,90.000035,0.000000,0.000000 -5498,-3.0,90.000035,0.000000,0.000000 -5499,-3.0,90.000035,0.000000,0.000000 -5500,-3.0,90.000035,0.000000,0.000000 -5501,-3.0,90.000035,0.000000,0.000000 -5502,-3.0,90.000035,0.000000,0.000000 -5503,-3.0,90.000035,0.000000,0.000000 -5504,-3.0,90.000035,0.000000,0.000000 -5505,-3.0,90.000035,0.000000,0.000000 -5506,-3.0,90.000035,0.000000,0.000000 -5507,-3.0,90.000035,0.000000,0.000000 -5508,-3.0,90.000035,0.000000,0.000000 -5509,-3.0,90.000035,0.000000,0.000000 -5510,-3.0,90.000035,0.000000,0.000000 -5511,-3.0,90.000035,0.000000,0.000000 -5512,-3.0,90.000035,0.000000,0.000000 -5513,-3.0,90.000035,0.000000,0.000000 -5514,-3.0,90.000035,0.000000,0.000000 -5515,-3.0,90.000035,0.000000,0.000000 -5516,-3.0,90.000035,0.000000,0.000000 -5517,-3.0,90.000035,0.000000,0.000000 -5518,-3.0,90.000035,0.000000,0.000000 -5519,-3.0,90.000035,0.000000,0.000000 -5520,-3.0,90.000035,0.000000,0.000000 -5521,-3.0,90.000035,0.000000,0.000000 -5522,-3.0,90.000035,0.000000,0.000000 -5523,-3.0,90.000035,0.000000,0.000000 -5524,-3.0,90.000035,0.000000,0.000000 -5525,-3.0,90.000035,0.000000,0.000000 -5526,-3.0,90.000035,0.000000,0.000000 -5527,-3.0,90.000035,0.000000,0.000000 -5528,-3.0,90.000035,0.000000,0.000000 -5529,-3.0,90.000035,0.000000,0.000000 -5530,-3.0,90.000035,0.000000,0.000000 -5531,-3.0,90.000035,0.000000,0.000000 -5532,-3.0,90.000035,0.000000,0.000000 -5533,-3.0,90.000035,0.000000,0.000000 -5534,-3.0,90.000035,0.000000,0.000000 -5535,-3.0,90.000035,0.000000,0.000000 -5536,-3.0,90.000035,0.000000,0.000000 -5537,-3.0,90.000035,0.000000,0.000000 -5538,-3.0,90.000035,0.000000,0.000000 -5539,-3.0,90.000035,0.000000,0.000000 -5540,-3.0,90.000035,0.000000,0.000000 -5541,-3.0,90.000035,0.000000,0.000000 -5542,-3.0,90.000035,0.000000,0.000000 -5543,-3.0,90.000035,0.000000,0.000000 -5544,-3.0,90.000035,0.000000,0.000000 -5545,-3.0,90.000035,0.000000,0.000000 -5546,-3.0,90.000035,0.000000,0.000000 -5547,-3.0,90.000035,0.000000,0.000000 -5548,-3.0,90.000035,0.000000,0.000000 -5549,-3.0,90.000035,0.000000,0.000000 -5550,-3.0,90.000035,0.000000,0.000000 -5551,-3.0,90.000035,0.000000,0.000000 -5552,-3.0,90.000035,0.000000,0.000000 -5553,-3.0,90.000035,0.000000,0.000000 -5554,-3.0,90.000035,0.000000,0.000000 -5555,-3.0,90.000035,0.000000,0.000000 -5556,-3.0,90.000035,0.000000,0.000000 -5557,-3.0,90.000035,0.000000,0.000000 -5558,-3.0,90.000035,0.000000,0.000000 -5559,-3.0,90.000035,0.000000,0.000000 -5560,-3.0,90.000035,0.000000,0.000000 -5561,-3.0,90.000035,0.000000,0.000000 -5562,-3.0,90.000035,0.000000,0.000000 -5563,-3.0,90.000035,0.000000,0.000000 -5564,-3.0,90.000035,0.000000,0.000000 -5565,-3.0,90.000035,0.000000,0.000000 -5566,-3.0,90.000035,0.000000,0.000000 -5567,-3.0,90.000035,0.000000,0.000000 -5568,-3.0,90.000035,0.000000,0.000000 -5569,-3.0,90.000035,0.000000,0.000000 -5570,-3.0,90.000035,0.000000,0.000000 -5571,-3.0,90.000035,0.000000,0.000000 -5572,-3.0,90.000035,0.000000,0.000000 -5573,-3.0,90.000035,0.000000,0.000000 -5574,-3.0,90.000035,0.000000,0.000000 -5575,-3.0,90.000035,0.000000,0.000000 -5576,-3.0,90.000035,0.000000,0.000000 -5577,-3.0,90.000035,0.000000,0.000000 -5578,-3.0,90.000035,0.000000,0.000000 -5579,-3.0,90.000035,0.000000,0.000000 -5580,-3.0,90.000035,0.000000,0.000000 -5581,-3.0,90.000035,0.000000,0.000000 -5582,-3.0,90.000035,0.000000,0.000000 -5583,-3.0,90.000035,0.000000,0.000000 -5584,-3.0,90.000035,0.000000,0.000000 -5585,-3.0,90.000035,0.000000,0.000000 -5586,-3.0,90.000035,0.000000,0.000000 -5587,-3.0,90.000035,0.000000,0.000000 -5588,-3.0,90.000035,0.000000,0.000000 -5589,-3.0,90.000035,0.000000,0.000000 -5590,-3.0,90.000035,0.000000,0.000000 -5591,-3.0,90.000035,0.000000,0.000000 -5592,-3.0,90.000035,0.000000,0.000000 -5593,-3.0,90.000035,0.000000,0.000000 -5594,-3.0,90.000035,0.000000,0.000000 -5595,-3.0,90.000035,0.000000,0.000000 -5596,-3.0,90.000035,0.000000,0.000000 -5597,-3.0,90.000035,0.000000,0.000000 -5598,-3.0,90.000035,0.000000,0.000000 -5599,-3.0,90.000035,0.000000,0.000000 -5600,-3.0,90.000035,0.000000,0.000000 -5601,-3.0,90.000035,0.000000,0.000000 -5602,-3.0,90.000035,0.000000,0.000000 -5603,-3.0,90.000035,0.000000,0.000000 -5604,-3.0,90.000035,0.000000,0.000000 -5605,-3.0,90.000035,0.000000,0.000000 -5606,-3.0,90.000035,0.000000,0.000000 -5607,-3.0,90.000035,0.000000,0.000000 -5608,-3.0,90.000035,0.000000,0.000000 -5609,-3.0,90.000035,0.000000,0.000000 -5610,-3.0,90.000035,0.000000,0.000000 -5611,-3.0,90.000035,0.000000,0.000000 -5612,-3.0,90.000035,0.000000,0.000000 -5613,-3.0,90.000035,0.000000,0.000000 -5614,-3.0,90.000035,0.000000,0.000000 -5615,-3.0,90.000035,0.000000,0.000000 -5616,-3.0,90.000035,0.000000,0.000000 -5617,-3.0,90.000035,0.000000,0.000000 -5618,-3.0,90.000035,0.000000,0.000000 -5619,-3.0,90.000035,0.000000,0.000000 -5620,-3.0,90.000035,0.000000,0.000000 -5621,-3.0,90.000035,0.000000,0.000000 -5622,-3.0,90.000035,0.000000,0.000000 -5623,-3.0,90.000035,0.000000,0.000000 -5624,-3.0,90.000035,0.000000,0.000000 -5625,-3.0,90.000035,0.000000,0.000000 -5626,-3.0,90.000035,0.000000,0.000000 -5627,-3.0,90.000035,0.000000,0.000000 -5628,-3.0,90.000035,0.000000,0.000000 -5629,-3.0,90.000035,0.000000,0.000000 -5630,-3.0,90.000035,0.000000,0.000000 -5631,-3.0,90.000035,0.000000,0.000000 -5632,-3.0,90.000035,0.000000,0.000000 -5633,-3.0,90.000035,0.000000,0.000000 -5634,-3.0,90.000035,0.000000,0.000000 -5635,-3.0,90.000035,0.000000,0.000000 -5636,-3.0,90.000035,0.000000,0.000000 -5637,-3.0,90.000035,0.000000,0.000000 -5638,-3.0,90.000035,0.000000,0.000000 -5639,-3.0,90.000035,0.000000,0.000000 -5640,-3.0,90.000035,0.000000,0.000000 -5641,-3.0,90.000035,0.000000,0.000000 -5642,-3.0,90.000035,0.000000,0.000000 -5643,-3.0,90.000035,0.000000,0.000000 -5644,-3.0,90.000035,0.000000,0.000000 -5645,-3.0,90.000035,0.000000,0.000000 -5646,-3.0,90.000035,0.000000,0.000000 -5647,-3.0,90.000035,0.000000,0.000000 -5648,-3.0,90.000035,0.000000,0.000000 -5649,-3.0,90.000035,0.000000,0.000000 -5650,-3.0,90.000035,0.000000,0.000000 -5651,-3.0,90.000035,0.000000,0.000000 -5652,-3.0,90.000035,0.000000,0.000000 -5653,-3.0,90.000035,0.000000,0.000000 -5654,-3.0,90.000035,0.000000,0.000000 -5655,-3.0,90.000035,0.000000,0.000000 -5656,-3.0,90.000035,0.000000,0.000000 -5657,-3.0,90.000035,0.000000,0.000000 -5658,-3.0,90.000035,0.000000,0.000000 -5659,-3.0,90.000035,0.000000,0.000000 -5660,-3.0,90.000035,0.000000,0.000000 -5661,-3.0,90.000035,0.000000,0.000000 -5662,-3.0,90.000035,0.000000,0.000000 -5663,-3.0,90.000035,0.000000,0.000000 -5664,-3.0,90.000035,0.000000,0.000000 -5665,-3.0,90.000035,0.000000,0.000000 -5666,-3.0,90.000035,0.000000,0.000000 -5667,-3.0,90.000035,0.000000,0.000000 -5668,-3.0,90.000035,0.000000,0.000000 -5669,-3.0,90.000035,0.000000,0.000000 -5670,-3.0,90.000035,0.000000,0.000000 -5671,-3.0,90.000035,0.000000,0.000000 -5672,-3.0,90.000035,0.000000,0.000000 -5673,-3.0,90.000035,0.000000,0.000000 -5674,-3.0,90.000035,0.000000,0.000000 -5675,-3.0,90.000035,0.000000,0.000000 -5676,-3.0,90.000035,0.000000,0.000000 -5677,-3.0,90.000035,0.000000,0.000000 -5678,-3.0,90.000035,0.000000,0.000000 -5679,-3.0,90.000035,0.000000,0.000000 -5680,-3.0,90.000035,0.000000,0.000000 -5681,-3.0,90.000035,0.000000,0.000000 -5682,-3.0,90.000035,0.000000,0.000000 -5683,-3.0,90.000035,0.000000,0.000000 -5684,-3.0,90.000035,0.000000,0.000000 -5685,-3.0,90.000035,0.000000,0.000000 -5686,-3.0,90.000035,0.000000,0.000000 -5687,-3.0,90.000035,0.000000,0.000000 -5688,-3.0,90.000035,0.000000,0.000000 -5689,-3.0,90.000035,0.000000,0.000000 -5690,-3.0,90.000035,0.000000,0.000000 -5691,-3.0,90.000035,0.000000,0.000000 -5692,-3.0,90.000035,0.000000,0.000000 -5693,-3.0,90.000035,0.000000,0.000000 -5694,-3.0,90.000035,0.000000,0.000000 -5695,-3.0,90.000035,0.000000,0.000000 -5696,-3.0,90.000035,0.000000,0.000000 -5697,-3.0,90.000035,0.000000,0.000000 -5698,-3.0,90.000035,0.000000,0.000000 -5699,-3.0,90.000035,0.000000,0.000000 -5700,-3.0,90.000035,0.000000,0.000000 -5701,-3.0,90.000035,0.000000,0.000000 -5702,-3.0,90.000035,0.000000,0.000000 -5703,-3.0,90.000035,0.000000,0.000000 -5704,-3.0,90.000035,0.000000,0.000000 -5705,-3.0,90.000035,0.000000,0.000000 -5706,-3.0,90.000035,0.000000,0.000000 -5707,-3.0,90.000035,0.000000,0.000000 -5708,-3.0,90.000035,0.000000,0.000000 -5709,-3.0,90.000035,0.000000,0.000000 -5710,-3.0,90.000035,0.000000,0.000000 -5711,-3.0,90.000035,0.000000,0.000000 -5712,-3.0,90.000035,0.000000,0.000000 -5713,-3.0,90.000035,0.000000,0.000000 -5714,-3.0,90.000035,0.000000,0.000000 -5715,-3.0,90.000035,0.000000,0.000000 -5716,-3.0,90.000035,0.000000,0.000000 -5717,-3.0,90.000035,0.000000,0.000000 -5718,-3.0,90.000035,0.000000,0.000000 -5719,-3.0,90.000035,0.000000,0.000000 -5720,-3.0,90.000035,0.000000,0.000000 -5721,-3.0,90.000035,0.000000,0.000000 -5722,-3.0,90.000035,0.000000,0.000000 -5723,-3.0,90.000035,0.000000,0.000000 -5724,-3.0,90.000035,0.000000,0.000000 -5725,-3.0,90.000035,0.000000,0.000000 -5726,-3.0,90.000035,0.000000,0.000000 -5727,-3.0,90.000035,0.000000,0.000000 -5728,-3.0,90.000035,0.000000,0.000000 -5729,-3.0,90.000035,0.000000,0.000000 -5730,-3.0,90.000035,0.000000,0.000000 -5731,-3.0,90.000035,0.000000,0.000000 -5732,-3.0,90.000035,0.000000,0.000000 -5733,-3.0,90.000035,0.000000,0.000000 -5734,-3.0,90.000035,0.000000,0.000000 -5735,-3.0,90.000035,0.000000,0.000000 -5736,-3.0,90.000035,0.000000,0.000000 -5737,-3.0,90.000035,0.000000,0.000000 -5738,-3.0,90.000035,0.000000,0.000000 -5739,-3.0,90.000035,0.000000,0.000000 -5740,-3.0,90.000035,0.000000,0.000000 -5741,-3.0,90.000035,0.000000,0.000000 -5742,-3.0,90.000035,0.000000,0.000000 -5743,-3.0,90.000035,0.000000,0.000000 -5744,-3.0,90.000035,0.000000,0.000000 -5745,-3.0,90.000035,0.000000,0.000000 -5746,-3.0,90.000035,0.000000,0.000000 -5747,-3.0,90.000035,0.000000,0.000000 -5748,-3.0,90.000035,0.000000,0.000000 -5749,-3.0,90.000035,0.000000,0.000000 -5750,-3.0,90.000035,0.000000,0.000000 -5751,-3.0,90.000035,0.000000,0.000000 -5752,-3.0,90.000035,0.000000,0.000000 -5753,-3.0,90.000035,0.000000,0.000000 -5754,-3.0,90.000035,0.000000,0.000000 -5755,-3.0,90.000035,0.000000,0.000000 -5756,-3.0,90.000035,0.000000,0.000000 -5757,-3.0,90.000035,0.000000,0.000000 -5758,-3.0,90.000035,0.000000,0.000000 -5759,-3.0,90.000035,0.000000,0.000000 -5760,-3.0,90.000035,0.000000,0.000000 -5761,-3.0,90.000035,0.000000,0.000000 -5762,-3.0,90.000035,0.000000,0.000000 -5763,-3.0,90.000035,0.000000,0.000000 -5764,-3.0,90.000035,0.000000,0.000000 -5765,-3.0,90.000035,0.000000,0.000000 -5766,-3.0,90.000035,0.000000,0.000000 -5767,-3.0,90.000035,0.000000,0.000000 -5768,-3.0,90.000035,0.000000,0.000000 -5769,-3.0,90.000035,0.000000,0.000000 -5770,-3.0,90.000035,0.000000,0.000000 -5771,-3.0,90.000035,0.000000,0.000000 -5772,-3.0,90.000035,0.000000,0.000000 -5773,-3.0,90.000035,0.000000,0.000000 -5774,-3.0,90.000035,0.000000,0.000000 -5775,-3.0,90.000035,0.000000,0.000000 -5776,-3.0,90.000035,0.000000,0.000000 -5777,-3.0,90.000035,0.000000,0.000000 -5778,-3.0,90.000035,0.000000,0.000000 -5779,-3.0,90.000035,0.000000,0.000000 -5780,-3.0,90.000035,0.000000,0.000000 -5781,-3.0,90.000035,0.000000,0.000000 -5782,-3.0,90.000035,0.000000,0.000000 -5783,-3.0,90.000035,0.000000,0.000000 -5784,-3.0,90.000035,0.000000,0.000000 -5785,-3.0,90.000035,0.000000,0.000000 -5786,-3.0,90.000035,0.000000,0.000000 -5787,-3.0,90.000035,0.000000,0.000000 -5788,-3.0,90.000035,0.000000,0.000000 -5789,-3.0,90.000035,0.000000,0.000000 -5790,-3.0,90.000035,0.000000,0.000000 -5791,-3.0,90.000035,0.000000,0.000000 -5792,-3.0,90.000035,0.000000,0.000000 -5793,-3.0,90.000035,0.000000,0.000000 -5794,-3.0,90.000035,0.000000,0.000000 -5795,-3.0,90.000035,0.000000,0.000000 -5796,-3.0,90.000035,0.000000,0.000000 -5797,-3.0,90.000035,0.000000,0.000000 -5798,-3.0,90.000035,0.000000,0.000000 -5799,-3.0,90.000035,0.000000,0.000000 -5800,-3.0,90.000035,0.000000,0.000000 -5801,-3.0,90.000035,0.000000,0.000000 -5802,-3.0,90.000035,0.000000,0.000000 -5803,-3.0,90.000035,0.000000,0.000000 -5804,-3.0,90.000035,0.000000,0.000000 -5805,-3.0,90.000035,0.000000,0.000000 -5806,-3.0,90.000035,0.000000,0.000000 -5807,-3.0,90.000035,0.000000,0.000000 -5808,-3.0,90.000035,0.000000,0.000000 -5809,-3.0,90.000035,0.000000,0.000000 -5810,-3.0,90.000035,0.000000,0.000000 -5811,-3.0,90.000035,0.000000,0.000000 -5812,-3.0,90.000035,0.000000,0.000000 -5813,-3.0,90.000035,0.000000,0.000000 -5814,-3.0,90.000035,0.000000,0.000000 -5815,-3.0,90.000035,0.000000,0.000000 -5816,-3.0,90.000035,0.000000,0.000000 -5817,-3.0,90.000035,0.000000,0.000000 -5818,-3.0,90.000035,0.000000,0.000000 -5819,-3.0,90.000035,0.000000,0.000000 -5820,-3.0,90.000035,0.000000,0.000000 -5821,-3.0,90.000035,0.000000,0.000000 -5822,-3.0,90.000035,0.000000,0.000000 -5823,-3.0,90.000035,0.000000,0.000000 -5824,-3.0,90.000035,0.000000,0.000000 -5825,-3.0,90.000035,0.000000,0.000000 -5826,-3.0,90.000035,0.000000,0.000000 -5827,-3.0,90.000035,0.000000,0.000000 -5828,-3.0,90.000035,0.000000,0.000000 -5829,-3.0,90.000035,0.000000,0.000000 -5830,-3.0,90.000035,0.000000,0.000000 -5831,-3.0,90.000035,0.000000,0.000000 -5832,-3.0,90.000035,0.000000,0.000000 -5833,-3.0,90.000035,0.000000,0.000000 -5834,-3.0,90.000035,0.000000,0.000000 -5835,-3.0,90.000035,0.000000,0.000000 -5836,-3.0,90.000035,0.000000,0.000000 -5837,-3.0,90.000035,0.000000,0.000000 -5838,-3.0,90.000035,0.000000,0.000000 -5839,-3.0,90.000035,0.000000,0.000000 -5840,-3.0,90.000035,0.000000,0.000000 -5841,-3.0,90.000035,0.000000,0.000000 -5842,-3.0,90.000035,0.000000,0.000000 -5843,-3.0,90.000035,0.000000,0.000000 -5844,-3.0,90.000035,0.000000,0.000000 -5845,-3.0,90.000035,0.000000,0.000000 -5846,-3.0,90.000035,0.000000,0.000000 -5847,-3.0,90.000035,0.000000,0.000000 -5848,-3.0,90.000035,0.000000,0.000000 -5849,-3.0,90.000035,0.000000,0.000000 -5850,-3.0,90.000035,0.000000,0.000000 -5851,-3.0,90.000035,0.000000,0.000000 -5852,-3.0,90.000035,0.000000,0.000000 -5853,-3.0,90.000035,0.000000,0.000000 -5854,-3.0,90.000035,0.000000,0.000000 -5855,-3.0,90.000035,0.000000,0.000000 -5856,-3.0,90.000035,0.000000,0.000000 -5857,-3.0,90.000035,0.000000,0.000000 -5858,-3.0,90.000035,0.000000,0.000000 -5859,-3.0,90.000035,0.000000,0.000000 -5860,-3.0,90.000035,0.000000,0.000000 -5861,-3.0,90.000035,0.000000,0.000000 -5862,-3.0,90.000035,0.000000,0.000000 -5863,-3.0,90.000035,0.000000,0.000000 -5864,-3.0,90.000035,0.000000,0.000000 -5865,-3.0,90.000035,0.000000,0.000000 -5866,-3.0,90.000035,0.000000,0.000000 -5867,-3.0,90.000035,0.000000,0.000000 -5868,-3.0,90.000035,0.000000,0.000000 -5869,-3.0,90.000035,0.000000,0.000000 -5870,-3.0,90.000035,0.000000,0.000000 -5871,-3.0,90.000035,0.000000,0.000000 -5872,-3.0,90.000035,0.000000,0.000000 -5873,-3.0,90.000035,0.000000,0.000000 -5874,-3.0,90.000035,0.000000,0.000000 -5875,-3.0,90.000035,0.000000,0.000000 -5876,-3.0,90.000035,0.000000,0.000000 -5877,-3.0,90.000035,0.000000,0.000000 -5878,-3.0,90.000035,0.000000,0.000000 -5879,-3.0,90.000035,0.000000,0.000000 -5880,-3.0,90.000035,0.000000,0.000000 -5881,-3.0,90.000035,0.000000,0.000000 -5882,-3.0,90.000035,0.000000,0.000000 -5883,-3.0,90.000035,0.000000,0.000000 -5884,-3.0,90.000035,0.000000,0.000000 -5885,-3.0,90.000035,0.000000,0.000000 -5886,-3.0,90.000035,0.000000,0.000000 -5887,-3.0,90.000035,0.000000,0.000000 -5888,-3.0,90.000035,0.000000,0.000000 -5889,-3.0,90.000035,0.000000,0.000000 -5890,-3.0,90.000035,0.000000,0.000000 -5891,-3.0,90.000035,0.000000,0.000000 -5892,-3.0,90.000035,0.000000,0.000000 -5893,-3.0,90.000035,0.000000,0.000000 -5894,-3.0,90.000035,0.000000,0.000000 -5895,-3.0,90.000035,0.000000,0.000000 -5896,-3.0,90.000035,0.000000,0.000000 -5897,-3.0,90.000035,0.000000,0.000000 -5898,-3.0,90.000035,0.000000,0.000000 -5899,-3.0,90.000035,0.000000,0.000000 -5900,-3.0,90.000035,0.000000,0.000000 -5901,-3.0,90.000035,0.000000,0.000000 -5902,-3.0,90.000035,0.000000,0.000000 -5903,-3.0,90.000035,0.000000,0.000000 -5904,-3.0,90.000035,0.000000,0.000000 -5905,-3.0,90.000035,0.000000,0.000000 -5906,-3.0,90.000035,0.000000,0.000000 -5907,-3.0,90.000035,0.000000,0.000000 -5908,-3.0,90.000035,0.000000,0.000000 -5909,-3.0,90.000035,0.000000,0.000000 -5910,-3.0,90.000035,0.000000,0.000000 -5911,-3.0,90.000035,0.000000,0.000000 -5912,-3.0,90.000035,0.000000,0.000000 -5913,-3.0,90.000035,0.000000,0.000000 -5914,-3.0,90.000035,0.000000,0.000000 -5915,-3.0,90.000035,0.000000,0.000000 -5916,-3.0,90.000035,0.000000,0.000000 -5917,-3.0,90.000035,0.000000,0.000000 -5918,-3.0,90.000035,0.000000,0.000000 -5919,-3.0,90.000035,0.000000,0.000000 -5920,-3.0,90.000035,0.000000,0.000000 -5921,-3.0,90.000035,0.000000,0.000000 -5922,-3.0,90.000035,0.000000,0.000000 -5923,-3.0,90.000035,0.000000,0.000000 -5924,-3.0,90.000035,0.000000,0.000000 -5925,-3.0,90.000035,0.000000,0.000000 -5926,-3.0,90.000035,0.000000,0.000000 -5927,-3.0,90.000035,0.000000,0.000000 -5928,-3.0,90.000035,0.000000,0.000000 -5929,-3.0,90.000035,0.000000,0.000000 -5930,-3.0,90.000035,0.000000,0.000000 -5931,-3.0,90.000035,0.000000,0.000000 -5932,-3.0,90.000035,0.000000,0.000000 -5933,-3.0,90.000035,0.000000,0.000000 -5934,-3.0,90.000035,0.000000,0.000000 -5935,-3.0,90.000035,0.000000,0.000000 -5936,-3.0,90.000035,0.000000,0.000000 -5937,-3.0,90.000035,0.000000,0.000000 -5938,-3.0,90.000035,0.000000,0.000000 -5939,-3.0,90.000035,0.000000,0.000000 -5940,-3.0,90.000035,0.000000,0.000000 -5941,-3.0,90.000035,0.000000,0.000000 -5942,-3.0,90.000035,0.000000,0.000000 -5943,-3.0,90.000035,0.000000,0.000000 -5944,-3.0,90.000035,0.000000,0.000000 -5945,-3.0,90.000035,0.000000,0.000000 -5946,-3.0,90.000035,0.000000,0.000000 -5947,-3.0,90.000035,0.000000,0.000000 -5948,-3.0,90.000035,0.000000,0.000000 -5949,-3.0,90.000035,0.000000,0.000000 -5950,-3.0,90.000035,0.000000,0.000000 -5951,-3.0,90.000035,0.000000,0.000000 -5952,-3.0,90.000035,0.000000,0.000000 -5953,-3.0,90.000035,0.000000,0.000000 -5954,-3.0,90.000035,0.000000,0.000000 -5955,-3.0,90.000035,0.000000,0.000000 -5956,-3.0,90.000035,0.000000,0.000000 -5957,-3.0,90.000035,0.000000,0.000000 -5958,-3.0,90.000035,0.000000,0.000000 -5959,-3.0,90.000035,0.000000,0.000000 -5960,-3.0,90.000035,0.000000,0.000000 -5961,-3.0,90.000035,0.000000,0.000000 -5962,-3.0,90.000035,0.000000,0.000000 -5963,-3.0,90.000035,0.000000,0.000000 -5964,-3.0,90.000035,0.000000,0.000000 -5965,-3.0,90.000035,0.000000,0.000000 -5966,-3.0,90.000035,0.000000,0.000000 -5967,-3.0,90.000035,0.000000,0.000000 -5968,-3.0,90.000035,0.000000,0.000000 -5969,-3.0,90.000035,0.000000,0.000000 -5970,-3.0,90.000035,0.000000,0.000000 -5971,-3.0,90.000035,0.000000,0.000000 -5972,-3.0,90.000035,0.000000,0.000000 -5973,-3.0,90.000035,0.000000,0.000000 -5974,-3.0,90.000035,0.000000,0.000000 -5975,-3.0,90.000035,0.000000,0.000000 -5976,-3.0,90.000035,0.000000,0.000000 -5977,-3.0,90.000035,0.000000,0.000000 -5978,-3.0,90.000035,0.000000,0.000000 -5979,-3.0,90.000035,0.000000,0.000000 -5980,-3.0,90.000035,0.000000,0.000000 -5981,-3.0,90.000035,0.000000,0.000000 -5982,-3.0,90.000035,0.000000,0.000000 -5983,-3.0,90.000035,0.000000,0.000000 -5984,-3.0,90.000035,0.000000,0.000000 -5985,-3.0,90.000035,0.000000,0.000000 -5986,-3.0,90.000035,0.000000,0.000000 -5987,-3.0,90.000035,0.000000,0.000000 -5988,-3.0,90.000035,0.000000,0.000000 -5989,-3.0,90.000035,0.000000,0.000000 -5990,-3.0,90.000035,0.000000,0.000000 -5991,-3.0,90.000035,0.000000,0.000000 -5992,-3.0,90.000035,0.000000,0.000000 -5993,-3.0,90.000035,0.000000,0.000000 -5994,-3.0,90.000035,0.000000,0.000000 -5995,-3.0,90.000035,0.000000,0.000000 -5996,-3.0,90.000035,0.000000,0.000000 -5997,-3.0,90.000035,0.000000,0.000000 -5998,-3.0,90.000035,0.000000,0.000000 -5999,-3.0,90.000035,0.000000,0.000000 -6000,-3.0,90.000035,0.000000,0.000000 -6001,-3.0,90.000035,0.000000,0.000000 -6002,-3.0,90.000035,0.000000,0.000000 -6003,-3.0,90.000035,0.000000,0.000000 -6004,-3.0,90.000035,0.000000,0.000000 -6005,-3.0,90.000035,0.000000,0.000000 -6006,-3.0,90.000035,0.000000,0.000000 -6007,-3.0,90.000035,0.000000,0.000000 -6008,-3.0,90.000035,0.000000,0.000000 -6009,-3.0,90.000035,0.000000,0.000000 -6010,-3.0,90.000035,0.000000,0.000000 -6011,-3.0,90.000035,0.000000,0.000000 -6012,-3.0,90.000035,0.000000,0.000000 -6013,-3.0,90.000035,0.000000,0.000000 -6014,-3.0,90.000035,0.000000,0.000000 -6015,-3.0,90.000035,0.000000,0.000000 -6016,-3.0,90.000035,0.000000,0.000000 -6017,-3.0,90.000035,0.000000,0.000000 -6018,-3.0,90.000035,0.000000,0.000000 -6019,-3.0,90.000035,0.000000,0.000000 -6020,-3.0,90.000035,0.000000,0.000000 -6021,-3.0,90.000035,0.000000,0.000000 -6022,-3.0,90.000035,0.000000,0.000000 -6023,-3.0,90.000035,0.000000,0.000000 -6024,-3.0,90.000035,0.000000,0.000000 -6025,-3.0,90.000035,0.000000,0.000000 -6026,-3.0,90.000035,0.000000,0.000000 -6027,-3.0,90.000035,0.000000,0.000000 -6028,-3.0,90.000035,0.000000,0.000000 -6029,-3.0,90.000035,0.000000,0.000000 -6030,-3.0,90.000035,0.000000,0.000000 -6031,-3.0,90.000035,0.000000,0.000000 -6032,-3.0,90.000035,0.000000,0.000000 -6033,-3.0,90.000035,0.000000,0.000000 -6034,-3.0,90.000035,0.000000,0.000000 -6035,-3.0,90.000035,0.000000,0.000000 -6036,-3.0,90.000035,0.000000,0.000000 -6037,-3.0,90.000035,0.000000,0.000000 -6038,-3.0,90.000035,0.000000,0.000000 -6039,-3.0,90.000035,0.000000,0.000000 -6040,-3.0,90.000035,0.000000,0.000000 -6041,-3.0,90.000035,0.000000,0.000000 -6042,-3.0,90.000035,0.000000,0.000000 -6043,-3.0,90.000035,0.000000,0.000000 -6044,-3.0,90.000035,0.000000,0.000000 -6045,-3.0,90.000035,0.000000,0.000000 -6046,-3.0,90.000035,0.000000,0.000000 -6047,-3.0,90.000035,0.000000,0.000000 -6048,-3.0,90.000035,0.000000,0.000000 -6049,-3.0,90.000035,0.000000,0.000000 -6050,-3.0,90.000035,0.000000,0.000000 -6051,-3.0,90.000035,0.000000,0.000000 -6052,-3.0,90.000035,0.000000,0.000000 -6053,-3.0,90.000035,0.000000,0.000000 -6054,-3.0,90.000035,0.000000,0.000000 -6055,-3.0,90.000035,0.000000,0.000000 -6056,-3.0,90.000035,0.000000,0.000000 -6057,-3.0,90.000035,0.000000,0.000000 -6058,-3.0,90.000035,0.000000,0.000000 -6059,-3.0,90.000035,0.000000,0.000000 -6060,-3.0,90.000035,0.000000,0.000000 -6061,-3.0,90.000035,0.000000,0.000000 -6062,-3.0,90.000035,0.000000,0.000000 -6063,-3.0,90.000035,0.000000,0.000000 -6064,-3.0,90.000035,0.000000,0.000000 -6065,-3.0,90.000035,0.000000,0.000000 -6066,-3.0,90.000035,0.000000,0.000000 -6067,-3.0,90.000035,0.000000,0.000000 -6068,-3.0,90.000035,0.000000,0.000000 -6069,-3.0,90.000035,0.000000,0.000000 -6070,-3.0,90.000035,0.000000,0.000000 -6071,-3.0,90.000035,0.000000,0.000000 -6072,-3.0,90.000035,0.000000,0.000000 -6073,-3.0,90.000035,0.000000,0.000000 -6074,-3.0,90.000035,0.000000,0.000000 -6075,-3.0,90.000035,0.000000,0.000000 -6076,-3.0,90.000035,0.000000,0.000000 -6077,-3.0,90.000035,0.000000,0.000000 -6078,-3.0,90.000035,0.000000,0.000000 -6079,-3.0,90.000035,0.000000,0.000000 -6080,-3.0,90.000035,0.000000,0.000000 -6081,-3.0,90.000035,0.000000,0.000000 -6082,-3.0,90.000035,0.000000,0.000000 -6083,-3.0,90.000035,0.000000,0.000000 -6084,-3.0,90.000035,0.000000,0.000000 -6085,-3.0,90.000035,0.000000,0.000000 -6086,-3.0,90.000035,0.000000,0.000000 -6087,-3.0,90.000035,0.000000,0.000000 -6088,-3.0,90.000035,0.000000,0.000000 -6089,-3.0,90.000035,0.000000,0.000000 -6090,-3.0,90.000035,0.000000,0.000000 -6091,-3.0,90.000035,0.000000,0.000000 -6092,-3.0,90.000035,0.000000,0.000000 -6093,-3.0,90.000035,0.000000,0.000000 -6094,-3.0,90.000035,0.000000,0.000000 -6095,-3.0,90.000035,0.000000,0.000000 -6096,-3.0,90.000035,0.000000,0.000000 -6097,-3.0,90.000035,0.000000,0.000000 -6098,-3.0,90.000035,0.000000,0.000000 -6099,-3.0,90.000035,0.000000,0.000000 -6100,-3.0,90.000035,0.000000,0.000000 -6101,-3.0,90.000035,0.000000,0.000000 -6102,-3.0,90.000035,0.000000,0.000000 -6103,-3.0,90.000035,0.000000,0.000000 -6104,-3.0,90.000035,0.000000,0.000000 -6105,-3.0,90.000035,0.000000,0.000000 -6106,-3.0,90.000035,0.000000,0.000000 -6107,-3.0,90.000035,0.000000,0.000000 -6108,-3.0,90.000035,0.000000,0.000000 -6109,-3.0,90.000035,0.000000,0.000000 -6110,-3.0,90.000035,0.000000,0.000000 -6111,-3.0,90.000035,0.000000,0.000000 -6112,-3.0,90.000035,0.000000,0.000000 -6113,-3.0,90.000035,0.000000,0.000000 -6114,-3.0,90.000035,0.000000,0.000000 -6115,-3.0,90.000035,0.000000,0.000000 -6116,-3.0,90.000035,0.000000,0.000000 -6117,-3.0,90.000035,0.000000,0.000000 -6118,-3.0,90.000035,0.000000,0.000000 -6119,-3.0,90.000035,0.000000,0.000000 -6120,-3.0,90.000035,0.000000,0.000000 -6121,-3.0,90.000035,0.000000,0.000000 -6122,-3.0,90.000035,0.000000,0.000000 -6123,-3.0,90.000035,0.000000,0.000000 -6124,-3.0,90.000035,0.000000,0.000000 -6125,-3.0,90.000035,0.000000,0.000000 -6126,-3.0,90.000035,0.000000,0.000000 -6127,-3.0,90.000035,0.000000,0.000000 -6128,-3.0,90.000035,0.000000,0.000000 -6129,-3.0,90.000035,0.000000,0.000000 -6130,-3.0,90.000035,0.000000,0.000000 -6131,-3.0,90.000035,0.000000,0.000000 -6132,-3.0,90.000035,0.000000,0.000000 -6133,-3.0,90.000035,0.000000,0.000000 -6134,-3.0,90.000035,0.000000,0.000000 -6135,-3.0,90.000035,0.000000,0.000000 -6136,-3.0,90.000035,0.000000,0.000000 -6137,-3.0,90.000035,0.000000,0.000000 -6138,-3.0,90.000035,0.000000,0.000000 -6139,-3.0,90.000035,0.000000,0.000000 -6140,-3.0,90.000035,0.000000,0.000000 -6141,-3.0,90.000035,0.000000,0.000000 -6142,-3.0,90.000035,0.000000,0.000000 -6143,-3.0,90.000035,0.000000,0.000000 -6144,-3.0,90.000035,0.000000,0.000000 -6145,-3.0,90.000035,0.000000,0.000000 -6146,-3.0,90.000035,0.000000,0.000000 -6147,-3.0,90.000035,0.000000,0.000000 -6148,-3.0,90.000035,0.000000,0.000000 -6149,-3.0,90.000035,0.000000,0.000000 -6150,-3.0,90.000035,0.000000,0.000000 -6151,-3.0,90.000035,0.000000,0.000000 -6152,-3.0,90.000035,0.000000,0.000000 -6153,-3.0,90.000035,0.000000,0.000000 -6154,-3.0,90.000035,0.000000,0.000000 -6155,-3.0,90.000035,0.000000,0.000000 -6156,-3.0,90.000035,0.000000,0.000000 -6157,-3.0,90.000035,0.000000,0.000000 -6158,-3.0,90.000035,0.000000,0.000000 -6159,-3.0,90.000035,0.000000,0.000000 -6160,-3.0,90.000035,0.000000,0.000000 -6161,-3.0,90.000035,0.000000,0.000000 -6162,-3.0,90.000035,0.000000,0.000000 -6163,-3.0,90.000035,0.000000,0.000000 -6164,-3.0,90.000035,0.000000,0.000000 -6165,-3.0,90.000035,0.000000,0.000000 -6166,-3.0,90.000035,0.000000,0.000000 -6167,-3.0,90.000035,0.000000,0.000000 -6168,-3.0,90.000035,0.000000,0.000000 -6169,-3.0,90.000035,0.000000,0.000000 -6170,-3.0,90.000035,0.000000,0.000000 -6171,-3.0,90.000035,0.000000,0.000000 -6172,-3.0,90.000035,0.000000,0.000000 -6173,-3.0,90.000035,0.000000,0.000000 -6174,-3.0,90.000035,0.000000,0.000000 -6175,-3.0,90.000035,0.000000,0.000000 -6176,-3.0,90.000035,0.000000,0.000000 -6177,-3.0,90.000035,0.000000,0.000000 -6178,-3.0,90.000035,0.000000,0.000000 -6179,-3.0,90.000035,0.000000,0.000000 -6180,-3.0,90.000035,0.000000,0.000000 -6181,-3.0,90.000035,0.000000,0.000000 -6182,-3.0,90.000035,0.000000,0.000000 -6183,-3.0,90.000035,0.000000,0.000000 -6184,-3.0,90.000035,0.000000,0.000000 -6185,-3.0,90.000035,0.000000,0.000000 -6186,-3.0,90.000035,0.000000,0.000000 -6187,-3.0,90.000035,0.000000,0.000000 -6188,-3.0,90.000035,0.000000,0.000000 -6189,-3.0,90.000035,0.000000,0.000000 -6190,-3.0,90.000035,0.000000,0.000000 -6191,-3.0,90.000035,0.000000,0.000000 -6192,-3.0,90.000035,0.000000,0.000000 -6193,-3.0,90.000035,0.000000,0.000000 -6194,-3.0,90.000035,0.000000,0.000000 -6195,-3.0,90.000035,0.000000,0.000000 -6196,-3.0,90.000035,0.000000,0.000000 -6197,-3.0,90.000035,0.000000,0.000000 -6198,-3.0,90.000035,0.000000,0.000000 -6199,-3.0,90.000035,0.000000,0.000000 -6200,-3.0,90.000035,0.000000,0.000000 -6201,-3.0,90.000035,0.000000,0.000000 -6202,-3.0,90.000035,0.000000,0.000000 -6203,-3.0,90.000035,0.000000,0.000000 -6204,-3.0,90.000035,0.000000,0.000000 -6205,-3.0,90.000035,0.000000,0.000000 -6206,-3.0,90.000035,0.000000,0.000000 -6207,-3.0,90.000035,0.000000,0.000000 -6208,-3.0,90.000035,0.000000,0.000000 -6209,-3.0,90.000035,0.000000,0.000000 -6210,-3.0,90.000035,0.000000,0.000000 -6211,-3.0,90.000035,0.000000,0.000000 -6212,-3.0,90.000035,0.000000,0.000000 -6213,-3.0,90.000035,0.000000,0.000000 -6214,-3.0,90.000035,0.000000,0.000000 -6215,-3.0,90.000035,0.000000,0.000000 -6216,-3.0,90.000035,0.000000,0.000000 -6217,-3.0,90.000035,0.000000,0.000000 -6218,-3.0,90.000035,0.000000,0.000000 -6219,-3.0,90.000035,0.000000,0.000000 -6220,-3.0,90.000035,0.000000,0.000000 -6221,-3.0,90.000035,0.000000,0.000000 -6222,-3.0,90.000035,0.000000,0.000000 -6223,-3.0,90.000035,0.000000,0.000000 -6224,-3.0,90.000035,0.000000,0.000000 -6225,-3.0,90.000035,0.000000,0.000000 -6226,-3.0,90.000035,0.000000,0.000000 -6227,-3.0,90.000035,0.000000,0.000000 -6228,-3.0,90.000035,0.000000,0.000000 -6229,-3.0,90.000035,0.000000,0.000000 -6230,-3.0,90.000035,0.000000,0.000000 -6231,-3.0,90.000035,0.000000,0.000000 -6232,-3.0,90.000035,0.000000,0.000000 -6233,-3.0,90.000035,0.000000,0.000000 -6234,-3.0,90.000035,0.000000,0.000000 -6235,-3.0,90.000035,0.000000,0.000000 -6236,-3.0,90.000035,0.000000,0.000000 -6237,-3.0,90.000035,0.000000,0.000000 -6238,-3.0,90.000035,0.000000,0.000000 -6239,-3.0,90.000035,0.000000,0.000000 -6240,-3.0,90.000035,0.000000,0.000000 -6241,-3.0,90.000035,0.000000,0.000000 -6242,-3.0,90.000035,0.000000,0.000000 -6243,-3.0,90.000035,0.000000,0.000000 -6244,-3.0,90.000035,0.000000,0.000000 -6245,-3.0,90.000035,0.000000,0.000000 -6246,-3.0,90.000035,0.000000,0.000000 -6247,-3.0,90.000035,0.000000,0.000000 -6248,-3.0,90.000035,0.000000,0.000000 -6249,-3.0,90.000035,0.000000,0.000000 -6250,-3.0,90.000035,0.000000,0.000000 -6251,-3.0,90.000035,0.000000,0.000000 -6252,-3.0,90.000035,0.000000,0.000000 -6253,-3.0,90.000035,0.000000,0.000000 -6254,-3.0,90.000035,0.000000,0.000000 -6255,-3.0,90.000035,0.000000,0.000000 -6256,-3.0,90.000035,0.000000,0.000000 -6257,-3.0,90.000035,0.000000,0.000000 -6258,-3.0,90.000035,0.000000,0.000000 -6259,-3.0,90.000035,0.000000,0.000000 -6260,-3.0,90.000035,0.000000,0.000000 -6261,-3.0,90.000035,0.000000,0.000000 -6262,-3.0,90.000035,0.000000,0.000000 -6263,-3.0,90.000035,0.000000,0.000000 -6264,-3.0,90.000035,0.000000,0.000000 -6265,-3.0,90.000035,0.000000,0.000000 -6266,-3.0,90.000035,0.000000,0.000000 -6267,-3.0,90.000035,0.000000,0.000000 -6268,-3.0,90.000035,0.000000,0.000000 -6269,-3.0,90.000035,0.000000,0.000000 -6270,-3.0,90.000035,0.000000,0.000000 -6271,-3.0,90.000035,0.000000,0.000000 -6272,-3.0,90.000035,0.000000,0.000000 -6273,-3.0,90.000035,0.000000,0.000000 -6274,-3.0,90.000035,0.000000,0.000000 -6275,-3.0,90.000035,0.000000,0.000000 -6276,-3.0,90.000035,0.000000,0.000000 -6277,-3.0,90.000035,0.000000,0.000000 -6278,-3.0,90.000035,0.000000,0.000000 -6279,-3.0,90.000035,0.000000,0.000000 -6280,-3.0,90.000035,0.000000,0.000000 -6281,-3.0,90.000035,0.000000,0.000000 -6282,-3.0,90.000035,0.000000,0.000000 -6283,-3.0,90.000035,0.000000,0.000000 -6284,-3.0,90.000035,0.000000,0.000000 -6285,-3.0,90.000035,0.000000,0.000000 -6286,-3.0,90.000035,0.000000,0.000000 -6287,-3.0,90.000035,0.000000,0.000000 -6288,-3.0,90.000035,0.000000,0.000000 -6289,-3.0,90.000035,0.000000,0.000000 -6290,-3.0,90.000035,0.000000,0.000000 -6291,-3.0,90.000035,0.000000,0.000000 -6292,-3.0,90.000035,0.000000,0.000000 -6293,-3.0,90.000035,0.000000,0.000000 -6294,-3.0,90.000035,0.000000,0.000000 -6295,-3.0,90.000035,0.000000,0.000000 -6296,-3.0,90.000035,0.000000,0.000000 -6297,-3.0,90.000035,0.000000,0.000000 -6298,-3.0,90.000035,0.000000,0.000000 -6299,-3.0,90.000035,0.000000,0.000000 -6300,-3.0,90.000035,0.000000,0.000000 -6301,-3.0,90.000035,0.000000,0.000000 -6302,-3.0,90.000035,0.000000,0.000000 -6303,-3.0,90.000035,0.000000,0.000000 -6304,-3.0,90.000035,0.000000,0.000000 -6305,-3.0,90.000035,0.000000,0.000000 -6306,-3.0,90.000035,0.000000,0.000000 -6307,-3.0,90.000035,0.000000,0.000000 -6308,-3.0,90.000035,0.000000,0.000000 -6309,-3.0,90.000035,0.000000,0.000000 -6310,-3.0,90.000035,0.000000,0.000000 -6311,-3.0,90.000035,0.000000,0.000000 -6312,-3.0,90.000035,0.000000,0.000000 -6313,-3.0,90.000035,0.000000,0.000000 -6314,-3.0,90.000035,0.000000,0.000000 -6315,-3.0,90.000035,0.000000,0.000000 -6316,-3.0,90.000035,0.000000,0.000000 -6317,-3.0,90.000035,0.000000,0.000000 -6318,-3.0,90.000035,0.000000,0.000000 -6319,-3.0,90.000035,0.000000,0.000000 -6320,-3.0,90.000035,0.000000,0.000000 -6321,-3.0,90.000035,0.000000,0.000000 -6322,-3.0,90.000035,0.000000,0.000000 -6323,-3.0,90.000035,0.000000,0.000000 -6324,-3.0,90.000035,0.000000,0.000000 -6325,-3.0,90.000035,0.000000,0.000000 -6326,-3.0,90.000035,0.000000,0.000000 -6327,-3.0,90.000035,0.000000,0.000000 -6328,-3.0,90.000035,0.000000,0.000000 -6329,-3.0,90.000035,0.000000,0.000000 -6330,-3.0,90.000035,0.000000,0.000000 -6331,-3.0,90.000035,0.000000,0.000000 -6332,-3.0,90.000035,0.000000,0.000000 -6333,-3.0,90.000035,0.000000,0.000000 -6334,-3.0,90.000035,0.000000,0.000000 -6335,-3.0,90.000035,0.000000,0.000000 -6336,-3.0,90.000035,0.000000,0.000000 -6337,-3.0,90.000035,0.000000,0.000000 -6338,-3.0,90.000035,0.000000,0.000000 -6339,-3.0,90.000035,0.000000,0.000000 -6340,-3.0,90.000035,0.000000,0.000000 -6341,-3.0,90.000035,0.000000,0.000000 -6342,-3.0,90.000035,0.000000,0.000000 -6343,-3.0,90.000035,0.000000,0.000000 -6344,-3.0,90.000035,0.000000,0.000000 -6345,-3.0,90.000035,0.000000,0.000000 -6346,-3.0,90.000035,0.000000,0.000000 -6347,-3.0,90.000035,0.000000,0.000000 -6348,-3.0,90.000035,0.000000,0.000000 -6349,-3.0,90.000035,0.000000,0.000000 -6350,-3.0,90.000035,0.000000,0.000000 -6351,-3.0,90.000035,0.000000,0.000000 -6352,-3.0,90.000035,0.000000,0.000000 -6353,-3.0,90.000035,0.000000,0.000000 -6354,-3.0,90.000035,0.000000,0.000000 -6355,-3.0,90.000035,0.000000,0.000000 -6356,-3.0,90.000035,0.000000,0.000000 -6357,-3.0,90.000035,0.000000,0.000000 -6358,-3.0,90.000035,0.000000,0.000000 -6359,-3.0,90.000035,0.000000,0.000000 -6360,-3.0,90.000035,0.000000,0.000000 -6361,-3.0,90.000035,0.000000,0.000000 -6362,-3.0,90.000035,0.000000,0.000000 -6363,-3.0,90.000035,0.000000,0.000000 -6364,-3.0,90.000035,0.000000,0.000000 -6365,-3.0,90.000035,0.000000,0.000000 -6366,-3.0,90.000035,0.000000,0.000000 -6367,-3.0,90.000035,0.000000,0.000000 -6368,-3.0,90.000035,0.000000,0.000000 -6369,-3.0,90.000035,0.000000,0.000000 -6370,-3.0,90.000035,0.000000,0.000000 -6371,-3.0,90.000035,0.000000,0.000000 -6372,-3.0,90.000035,0.000000,0.000000 -6373,-3.0,90.000035,0.000000,0.000000 -6374,-3.0,90.000035,0.000000,0.000000 -6375,-3.0,90.000035,0.000000,0.000000 -6376,-3.0,90.000035,0.000000,0.000000 -6377,-3.0,90.000035,0.000000,0.000000 -6378,-3.0,90.000035,0.000000,0.000000 -6379,-3.0,90.000035,0.000000,0.000000 -6380,-3.0,90.000035,0.000000,0.000000 -6381,-3.0,90.000035,0.000000,0.000000 -6382,-3.0,90.000035,0.000000,0.000000 -6383,-3.0,90.000035,0.000000,0.000000 -6384,-3.0,90.000035,0.000000,0.000000 -6385,-3.0,90.000035,0.000000,0.000000 -6386,-3.0,90.000035,0.000000,0.000000 -6387,-3.0,90.000035,0.000000,0.000000 -6388,-3.0,90.000035,0.000000,0.000000 -6389,-3.0,90.000035,0.000000,0.000000 -6390,-3.0,90.000035,0.000000,0.000000 -6391,-3.0,90.000035,0.000000,0.000000 -6392,-3.0,90.000035,0.000000,0.000000 -6393,-3.0,90.000035,0.000000,0.000000 -6394,-3.0,90.000035,0.000000,0.000000 -6395,-3.0,90.000035,0.000000,0.000000 -6396,-3.0,90.000035,0.000000,0.000000 -6397,-3.0,90.000035,0.000000,0.000000 -6398,-3.0,90.000035,0.000000,0.000000 -6399,-3.0,90.000035,0.000000,0.000000 -6400,-3.0,90.000035,0.000000,0.000000 -6401,-3.0,90.000035,0.000000,0.000000 -6402,-3.0,90.000035,0.000000,0.000000 -6403,-3.0,90.000035,0.000000,0.000000 -6404,-3.0,90.000035,0.000000,0.000000 -6405,-3.0,90.000035,0.000000,0.000000 -6406,-3.0,90.000035,0.000000,0.000000 -6407,-3.0,90.000035,0.000000,0.000000 -6408,-3.0,90.000035,0.000000,0.000000 -6409,-3.0,90.000035,0.000000,0.000000 -6410,-3.0,90.000035,0.000000,0.000000 -6411,-3.0,90.000035,0.000000,0.000000 -6412,-3.0,90.000035,0.000000,0.000000 -6413,-3.0,90.000035,0.000000,0.000000 -6414,-3.0,90.000035,0.000000,0.000000 -6415,-3.0,90.000035,0.000000,0.000000 -6416,-3.0,90.000035,0.000000,0.000000 -6417,-3.0,90.000035,0.000000,0.000000 -6418,-3.0,90.000035,0.000000,0.000000 -6419,-3.0,90.000035,0.000000,0.000000 -6420,-3.0,90.000035,0.000000,0.000000 -6421,-3.0,90.000035,0.000000,0.000000 -6422,-3.0,90.000035,0.000000,0.000000 -6423,-3.0,90.000035,0.000000,0.000000 -6424,-3.0,90.000035,0.000000,0.000000 -6425,-3.0,90.000035,0.000000,0.000000 -6426,-3.0,90.000035,0.000000,0.000000 -6427,-3.0,90.000035,0.000000,0.000000 -6428,-3.0,90.000035,0.000000,0.000000 -6429,-3.0,90.000035,0.000000,0.000000 -6430,-3.0,90.000035,0.000000,0.000000 -6431,-3.0,90.000035,0.000000,0.000000 -6432,-3.0,90.000035,0.000000,0.000000 -6433,-3.0,90.000035,0.000000,0.000000 -6434,-3.0,90.000035,0.000000,0.000000 -6435,-3.0,90.000035,0.000000,0.000000 -6436,-3.0,90.000035,0.000000,0.000000 -6437,-3.0,90.000035,0.000000,0.000000 -6438,-3.0,90.000035,0.000000,0.000000 -6439,-3.0,90.000035,0.000000,0.000000 -6440,-3.0,90.000035,0.000000,0.000000 -6441,-3.0,90.000035,0.000000,0.000000 -6442,-3.0,90.000035,0.000000,0.000000 -6443,-3.0,90.000035,0.000000,0.000000 -6444,-3.0,90.000035,0.000000,0.000000 -6445,-3.0,90.000035,0.000000,0.000000 -6446,-3.0,90.000035,0.000000,0.000000 -6447,-3.0,90.000035,0.000000,0.000000 -6448,-3.0,90.000035,0.000000,0.000000 -6449,-3.0,90.000035,0.000000,0.000000 -6450,-3.0,90.000035,0.000000,0.000000 -6451,-3.0,90.000035,0.000000,0.000000 -6452,-3.0,90.000035,0.000000,0.000000 -6453,-3.0,90.000035,0.000000,0.000000 -6454,-3.0,90.000035,0.000000,0.000000 -6455,-3.0,90.000035,0.000000,0.000000 -6456,-3.0,90.000035,0.000000,0.000000 -6457,-3.0,90.000035,0.000000,0.000000 -6458,-3.0,90.000035,0.000000,0.000000 -6459,-3.0,90.000035,0.000000,0.000000 -6460,-3.0,90.000035,0.000000,0.000000 -6461,-3.0,90.000035,0.000000,0.000000 -6462,-3.0,90.000035,0.000000,0.000000 -6463,-3.0,90.000035,0.000000,0.000000 -6464,-3.0,90.000035,0.000000,0.000000 -6465,-3.0,90.000035,0.000000,0.000000 -6466,-3.0,90.000035,0.000000,0.000000 -6467,-3.0,90.000035,0.000000,0.000000 -6468,-3.0,90.000035,0.000000,0.000000 -6469,-3.0,90.000035,0.000000,0.000000 -6470,-3.0,90.000035,0.000000,0.000000 -6471,-3.0,90.000035,0.000000,0.000000 -6472,-3.0,90.000035,0.000000,0.000000 -6473,-3.0,90.000035,0.000000,0.000000 -6474,-3.0,90.000035,0.000000,0.000000 -6475,-3.0,90.000035,0.000000,0.000000 -6476,-3.0,90.000035,0.000000,0.000000 -6477,-3.0,90.000035,0.000000,0.000000 -6478,-3.0,90.000035,0.000000,0.000000 -6479,-3.0,90.000035,0.000000,0.000000 -6480,-3.0,90.000035,0.000000,0.000000 -6481,-3.0,90.000035,0.000000,0.000000 -6482,-3.0,90.000035,0.000000,0.000000 -6483,-3.0,90.000035,0.000000,0.000000 -6484,-3.0,90.000035,0.000000,0.000000 -6485,-3.0,90.000035,0.000000,0.000000 -6486,-3.0,90.000035,0.000000,0.000000 -6487,-3.0,90.000035,0.000000,0.000000 -6488,-3.0,90.000035,0.000000,0.000000 -6489,-3.0,90.000035,0.000000,0.000000 -6490,-3.0,90.000035,0.000000,0.000000 -6491,-3.0,90.000035,0.000000,0.000000 -6492,-3.0,90.000035,0.000000,0.000000 -6493,-3.0,90.000035,0.000000,0.000000 -6494,-3.0,90.000035,0.000000,0.000000 -6495,-3.0,90.000035,0.000000,0.000000 -6496,-3.0,90.000035,0.000000,0.000000 -6497,-3.0,90.000035,0.000000,0.000000 -6498,-3.0,90.000035,0.000000,0.000000 -6499,-3.0,90.000035,0.000000,0.000000 -6500,-3.0,90.000035,0.000000,0.000000 -6501,-3.0,90.000035,0.000000,0.000000 -6502,-3.0,90.000035,0.000000,0.000000 -6503,-3.0,90.000035,0.000000,0.000000 -6504,-3.0,90.000035,0.000000,0.000000 -6505,-3.0,90.000035,0.000000,0.000000 -6506,-3.0,90.000035,0.000000,0.000000 -6507,-3.0,90.000035,0.000000,0.000000 -6508,-3.0,90.000035,0.000000,0.000000 -6509,-3.0,90.000035,0.000000,0.000000 -6510,-3.0,90.000035,0.000000,0.000000 -6511,-3.0,90.000035,0.000000,0.000000 -6512,-3.0,90.000035,0.000000,0.000000 -6513,-3.0,90.000035,0.000000,0.000000 -6514,-3.0,90.000035,0.000000,0.000000 -6515,-3.0,90.000035,0.000000,0.000000 -6516,-3.0,90.000035,0.000000,0.000000 -6517,-3.0,90.000035,0.000000,0.000000 -6518,-3.0,90.000035,0.000000,0.000000 -6519,-3.0,90.000035,0.000000,0.000000 -6520,-3.0,90.000035,0.000000,0.000000 -6521,-3.0,90.000035,0.000000,0.000000 -6522,-3.0,90.000035,0.000000,0.000000 -6523,-3.0,90.000035,0.000000,0.000000 -6524,-3.0,90.000035,0.000000,0.000000 -6525,-3.0,90.000035,0.000000,0.000000 -6526,-3.0,90.000035,0.000000,0.000000 -6527,-3.0,90.000035,0.000000,0.000000 -6528,-3.0,90.000035,0.000000,0.000000 -6529,-3.0,90.000035,0.000000,0.000000 -6530,-3.0,90.000035,0.000000,0.000000 -6531,-3.0,90.000035,0.000000,0.000000 -6532,-3.0,90.000035,0.000000,0.000000 -6533,-3.0,90.000035,0.000000,0.000000 -6534,-3.0,90.000035,0.000000,0.000000 -6535,-3.0,90.000035,0.000000,0.000000 -6536,-3.0,90.000035,0.000000,0.000000 -6537,-3.0,90.000035,0.000000,0.000000 -6538,-3.0,90.000035,0.000000,0.000000 -6539,-3.0,90.000035,0.000000,0.000000 -6540,-3.0,90.000035,0.000000,0.000000 -6541,-3.0,90.000035,0.000000,0.000000 -6542,-3.0,90.000035,0.000000,0.000000 -6543,-3.0,90.000035,0.000000,0.000000 -6544,-3.0,90.000035,0.000000,0.000000 -6545,-3.0,90.000035,0.000000,0.000000 -6546,-3.0,90.000035,0.000000,0.000000 -6547,-3.0,90.000035,0.000000,0.000000 -6548,-3.0,90.000035,0.000000,0.000000 -6549,-3.0,90.000035,0.000000,0.000000 -6550,-3.0,90.000035,0.000000,0.000000 -6551,-3.0,90.000035,0.000000,0.000000 -6552,-3.0,90.000035,0.000000,0.000000 -6553,-3.0,90.000035,0.000000,0.000000 -6554,-3.0,90.000035,0.000000,0.000000 -6555,-3.0,90.000035,0.000000,0.000000 -6556,-3.0,90.000035,0.000000,0.000000 -6557,-3.0,90.000035,0.000000,0.000000 -6558,-3.0,90.000035,0.000000,0.000000 -6559,-3.0,90.000035,0.000000,0.000000 -6560,-3.0,90.000035,0.000000,0.000000 -6561,-3.0,90.000035,0.000000,0.000000 -6562,-3.0,90.000035,0.000000,0.000000 -6563,-3.0,90.000035,0.000000,0.000000 -6564,-3.0,90.000035,0.000000,0.000000 -6565,-3.0,90.000035,0.000000,0.000000 -6566,-3.0,90.000035,0.000000,0.000000 -6567,-3.0,90.000035,0.000000,0.000000 -6568,-3.0,90.000035,0.000000,0.000000 -6569,-3.0,90.000035,0.000000,0.000000 -6570,-3.0,90.000035,0.000000,0.000000 -6571,-3.0,90.000035,0.000000,0.000000 -6572,-3.0,90.000035,0.000000,0.000000 -6573,-3.0,90.000035,0.000000,0.000000 -6574,-3.0,90.000035,0.000000,0.000000 -6575,-3.0,90.000035,0.000000,0.000000 -6576,-3.0,90.000035,0.000000,0.000000 -6577,-3.0,90.000035,0.000000,0.000000 -6578,-3.0,90.000035,0.000000,0.000000 -6579,-3.0,90.000035,0.000000,0.000000 -6580,-3.0,90.000035,0.000000,0.000000 -6581,-3.0,90.000035,0.000000,0.000000 -6582,-3.0,90.000035,0.000000,0.000000 -6583,-3.0,90.000035,0.000000,0.000000 -6584,-3.0,90.000035,0.000000,0.000000 -6585,-3.0,90.000035,0.000000,0.000000 -6586,-3.0,90.000035,0.000000,0.000000 -6587,-3.0,90.000035,0.000000,0.000000 -6588,-3.0,90.000035,0.000000,0.000000 -6589,-3.0,90.000035,0.000000,0.000000 -6590,-3.0,90.000035,0.000000,0.000000 -6591,-3.0,90.000035,0.000000,0.000000 -6592,-3.0,90.000035,0.000000,0.000000 -6593,-3.0,90.000035,0.000000,0.000000 -6594,-3.0,90.000035,0.000000,0.000000 -6595,-3.0,90.000035,0.000000,0.000000 -6596,-3.0,90.000035,0.000000,0.000000 -6597,-3.0,90.000035,0.000000,0.000000 -6598,-3.0,90.000035,0.000000,0.000000 -6599,-3.0,90.000035,0.000000,0.000000 -6600,-3.0,90.000035,0.000000,0.000000 -6601,-3.0,90.000035,0.000000,0.000000 -6602,-3.0,90.000035,0.000000,0.000000 -6603,-3.0,90.000035,0.000000,0.000000 -6604,-3.0,90.000035,0.000000,0.000000 -6605,-3.0,90.000035,0.000000,0.000000 -6606,-3.0,90.000035,0.000000,0.000000 -6607,-3.0,90.000035,0.000000,0.000000 -6608,-3.0,90.000035,0.000000,0.000000 -6609,-3.0,90.000035,0.000000,0.000000 -6610,-3.0,90.000035,0.000000,0.000000 -6611,-3.0,90.000035,0.000000,0.000000 -6612,-3.0,90.000035,0.000000,0.000000 -6613,-3.0,90.000035,0.000000,0.000000 -6614,-3.0,90.000035,0.000000,0.000000 -6615,-3.0,90.000035,0.000000,0.000000 -6616,-3.0,90.000035,0.000000,0.000000 -6617,-3.0,90.000035,0.000000,0.000000 -6618,-3.0,90.000035,0.000000,0.000000 -6619,-3.0,90.000035,0.000000,0.000000 -6620,-3.0,90.000035,0.000000,0.000000 -6621,-3.0,90.000035,0.000000,0.000000 -6622,-3.0,90.000035,0.000000,0.000000 -6623,-3.0,90.000035,0.000000,0.000000 -6624,-3.0,90.000035,0.000000,0.000000 -6625,-3.0,90.000035,0.000000,0.000000 -6626,-3.0,90.000035,0.000000,0.000000 -6627,-3.0,90.000035,0.000000,0.000000 -6628,-3.0,90.000035,0.000000,0.000000 -6629,-3.0,90.000035,0.000000,0.000000 -6630,-3.0,90.000035,0.000000,0.000000 -6631,-3.0,90.000035,0.000000,0.000000 -6632,-3.0,90.000035,0.000000,0.000000 -6633,-3.0,90.000035,0.000000,0.000000 -6634,-3.0,90.000035,0.000000,0.000000 -6635,-3.0,90.000035,0.000000,0.000000 -6636,-3.0,90.000035,0.000000,0.000000 -6637,-3.0,90.000035,0.000000,0.000000 -6638,-3.0,90.000035,0.000000,0.000000 -6639,-3.0,90.000035,0.000000,0.000000 -6640,-3.0,90.000035,0.000000,0.000000 -6641,-3.0,90.000035,0.000000,0.000000 -6642,-3.0,90.000035,0.000000,0.000000 -6643,-3.0,90.000035,0.000000,0.000000 -6644,-3.0,90.000035,0.000000,0.000000 -6645,-3.0,90.000035,0.000000,0.000000 -6646,-3.0,90.000035,0.000000,0.000000 -6647,-3.0,90.000035,0.000000,0.000000 -6648,-3.0,90.000035,0.000000,0.000000 -6649,-3.0,90.000035,0.000000,0.000000 -6650,-3.0,90.000035,0.000000,0.000000 -6651,-3.0,90.000035,0.000000,0.000000 -6652,-3.0,90.000035,0.000000,0.000000 -6653,-3.0,90.000035,0.000000,0.000000 -6654,-3.0,90.000035,0.000000,0.000000 -6655,-3.0,90.000035,0.000000,0.000000 -6656,-3.0,90.000035,0.000000,0.000000 -6657,-3.0,90.000035,0.000000,0.000000 -6658,-3.0,90.000035,0.000000,0.000000 -6659,-3.0,90.000035,0.000000,0.000000 -6660,-3.0,90.000035,0.000000,0.000000 -6661,-3.0,90.000035,0.000000,0.000000 -6662,-3.0,90.000035,0.000000,0.000000 -6663,-3.0,90.000035,0.000000,0.000000 -6664,-3.0,90.000035,0.000000,0.000000 -6665,-3.0,90.000035,0.000000,0.000000 -6666,-3.0,90.000035,0.000000,0.000000 -6667,-3.0,90.000035,0.000000,0.000000 -6668,-3.0,90.000035,0.000000,0.000000 -6669,-3.0,90.000035,0.000000,0.000000 -6670,-3.0,90.000035,0.000000,0.000000 -6671,-3.0,90.000035,0.000000,0.000000 -6672,-3.0,90.000035,0.000000,0.000000 -6673,-3.0,90.000035,0.000000,0.000000 -6674,-3.0,90.000035,0.000000,0.000000 -6675,-3.0,90.000035,0.000000,0.000000 -6676,-3.0,90.000035,0.000000,0.000000 -6677,-3.0,90.000035,0.000000,0.000000 -6678,-3.0,90.000035,0.000000,0.000000 -6679,-3.0,90.000035,0.000000,0.000000 -6680,-3.0,90.000035,0.000000,0.000000 -6681,-3.0,90.000035,0.000000,0.000000 -6682,-3.0,90.000035,0.000000,0.000000 -6683,-3.0,90.000035,0.000000,0.000000 -6684,-3.0,90.000035,0.000000,0.000000 -6685,-3.0,90.000035,0.000000,0.000000 -6686,-3.0,90.000035,0.000000,0.000000 -6687,-3.0,90.000035,0.000000,0.000000 -6688,-3.0,90.000035,0.000000,0.000000 -6689,-3.0,90.000035,0.000000,0.000000 -6690,-3.0,90.000035,0.000000,0.000000 -6691,-3.0,90.000035,0.000000,0.000000 -6692,-3.0,90.000035,0.000000,0.000000 -6693,-3.0,90.000035,0.000000,0.000000 -6694,-3.0,90.000035,0.000000,0.000000 -6695,-3.0,90.000035,0.000000,0.000000 -6696,-3.0,90.000035,0.000000,0.000000 -6697,-3.0,90.000035,0.000000,0.000000 -6698,-3.0,90.000035,0.000000,0.000000 -6699,-3.0,90.000035,0.000000,0.000000 -6700,-3.0,90.000035,0.000000,0.000000 -6701,-3.0,90.000035,0.000000,0.000000 -6702,-3.0,90.000035,0.000000,0.000000 -6703,-3.0,90.000035,0.000000,0.000000 -6704,-3.0,90.000035,0.000000,0.000000 -6705,-3.0,90.000035,0.000000,0.000000 -6706,-3.0,90.000035,0.000000,0.000000 -6707,-3.0,90.000035,0.000000,0.000000 -6708,-3.0,90.000035,0.000000,0.000000 -6709,-3.0,90.000035,0.000000,0.000000 -6710,-3.0,90.000035,0.000000,0.000000 -6711,-3.0,90.000035,0.000000,0.000000 -6712,-3.0,90.000035,0.000000,0.000000 -6713,-3.0,90.000035,0.000000,0.000000 -6714,-3.0,90.000035,0.000000,0.000000 -6715,-3.0,90.000035,0.000000,0.000000 -6716,-3.0,90.000035,0.000000,0.000000 -6717,-3.0,90.000035,0.000000,0.000000 -6718,-3.0,90.000035,0.000000,0.000000 -6719,-3.0,90.000035,0.000000,0.000000 -6720,-3.0,90.000035,0.000000,0.000000 -6721,-3.0,90.000035,0.000000,0.000000 -6722,-3.0,90.000035,0.000000,0.000000 -6723,-3.0,90.000035,0.000000,0.000000 -6724,-3.0,90.000035,0.000000,0.000000 -6725,-3.0,90.000035,0.000000,0.000000 -6726,-3.0,90.000035,0.000000,0.000000 -6727,-3.0,90.000035,0.000000,0.000000 -6728,-3.0,90.000035,0.000000,0.000000 -6729,-3.0,90.000035,0.000000,0.000000 -6730,-3.0,90.000035,0.000000,0.000000 -6731,-3.0,90.000035,0.000000,0.000000 -6732,-3.0,90.000035,0.000000,0.000000 -6733,-3.0,90.000035,0.000000,0.000000 -6734,-3.0,90.000035,0.000000,0.000000 -6735,-3.0,90.000035,0.000000,0.000000 -6736,-3.0,90.000035,0.000000,0.000000 -6737,-3.0,90.000035,0.000000,0.000000 -6738,-3.0,90.000035,0.000000,0.000000 -6739,-3.0,90.000035,0.000000,0.000000 -6740,-3.0,90.000035,0.000000,0.000000 -6741,-3.0,90.000035,0.000000,0.000000 -6742,-3.0,90.000035,0.000000,0.000000 -6743,-3.0,90.000035,0.000000,0.000000 -6744,-3.0,90.000035,0.000000,0.000000 -6745,-3.0,90.000035,0.000000,0.000000 -6746,-3.0,90.000035,0.000000,0.000000 -6747,-3.0,90.000035,0.000000,0.000000 -6748,-3.0,90.000035,0.000000,0.000000 -6749,-3.0,90.000035,0.000000,0.000000 -6750,-3.0,90.000035,0.000000,0.000000 -6751,-3.0,90.000035,0.000000,0.000000 -6752,-3.0,90.000035,0.000000,0.000000 -6753,-3.0,90.000035,0.000000,0.000000 -6754,-3.0,90.000035,0.000000,0.000000 -6755,-3.0,90.000035,0.000000,0.000000 -6756,-3.0,90.000035,0.000000,0.000000 -6757,-3.0,90.000035,0.000000,0.000000 -6758,-3.0,90.000035,0.000000,0.000000 -6759,-3.0,90.000035,0.000000,0.000000 -6760,-3.0,90.000035,0.000000,0.000000 -6761,-3.0,90.000035,0.000000,0.000000 -6762,-3.0,90.000035,0.000000,0.000000 -6763,-3.0,90.000035,0.000000,0.000000 -6764,-3.0,90.000035,0.000000,0.000000 -6765,-3.0,90.000035,0.000000,0.000000 -6766,-3.0,90.000035,0.000000,0.000000 -6767,-3.0,90.000035,0.000000,0.000000 -6768,-3.0,90.000035,0.000000,0.000000 -6769,-3.0,90.000035,0.000000,0.000000 -6770,-3.0,90.000035,0.000000,0.000000 -6771,-3.0,90.000035,0.000000,0.000000 -6772,-3.0,90.000035,0.000000,0.000000 -6773,-3.0,90.000035,0.000000,0.000000 -6774,-3.0,90.000035,0.000000,0.000000 -6775,-3.0,90.000035,0.000000,0.000000 -6776,-3.0,90.000035,0.000000,0.000000 -6777,-3.0,90.000035,0.000000,0.000000 -6778,-3.0,90.000035,0.000000,0.000000 -6779,-3.0,90.000035,0.000000,0.000000 -6780,-3.0,90.000035,0.000000,0.000000 -6781,-3.0,90.000035,0.000000,0.000000 -6782,-3.0,90.000035,0.000000,0.000000 -6783,-3.0,90.000035,0.000000,0.000000 -6784,-3.0,90.000035,0.000000,0.000000 -6785,-3.0,90.000035,0.000000,0.000000 -6786,-3.0,90.000035,0.000000,0.000000 -6787,-3.0,90.000035,0.000000,0.000000 -6788,-3.0,90.000035,0.000000,0.000000 -6789,-3.0,90.000035,0.000000,0.000000 -6790,-3.0,90.000035,0.000000,0.000000 -6791,-3.0,90.000035,0.000000,0.000000 -6792,-3.0,90.000035,0.000000,0.000000 -6793,-3.0,90.000035,0.000000,0.000000 -6794,-3.0,90.000035,0.000000,0.000000 -6795,-3.0,90.000035,0.000000,0.000000 -6796,-3.0,90.000035,0.000000,0.000000 -6797,-3.0,90.000035,0.000000,0.000000 -6798,-3.0,90.000035,0.000000,0.000000 -6799,-3.0,90.000035,0.000000,0.000000 -6800,-3.0,90.000035,0.000000,0.000000 -6801,-3.0,90.000035,0.000000,0.000000 -6802,-3.0,90.000035,0.000000,0.000000 -6803,-3.0,90.000035,0.000000,0.000000 -6804,-3.0,90.000035,0.000000,0.000000 -6805,-3.0,90.000035,0.000000,0.000000 -6806,-3.0,90.000035,0.000000,0.000000 -6807,-3.0,90.000035,0.000000,0.000000 -6808,-3.0,90.000035,0.000000,0.000000 -6809,-3.0,90.000035,0.000000,0.000000 -6810,-3.0,90.000035,0.000000,0.000000 -6811,-3.0,90.000035,0.000000,0.000000 -6812,-3.0,90.000035,0.000000,0.000000 -6813,-3.0,90.000035,0.000000,0.000000 -6814,-3.0,90.000035,0.000000,0.000000 -6815,-3.0,90.000035,0.000000,0.000000 -6816,-3.0,90.000035,0.000000,0.000000 -6817,-3.0,90.000035,0.000000,0.000000 -6818,-3.0,90.000035,0.000000,0.000000 -6819,-3.0,90.000035,0.000000,0.000000 -6820,-3.0,90.000035,0.000000,0.000000 -6821,-3.0,90.000035,0.000000,0.000000 -6822,-3.0,90.000035,0.000000,0.000000 -6823,-3.0,90.000035,0.000000,0.000000 -6824,-3.0,90.000035,0.000000,0.000000 -6825,-3.0,90.000035,0.000000,0.000000 -6826,-3.0,90.000035,0.000000,0.000000 -6827,-3.0,90.000035,0.000000,0.000000 -6828,-3.0,90.000035,0.000000,0.000000 -6829,-3.0,90.000035,0.000000,0.000000 -6830,-3.0,90.000035,0.000000,0.000000 -6831,-3.0,90.000035,0.000000,0.000000 -6832,-3.0,90.000035,0.000000,0.000000 -6833,-3.0,90.000035,0.000000,0.000000 -6834,-3.0,90.000035,0.000000,0.000000 -6835,-3.0,90.000035,0.000000,0.000000 -6836,-3.0,90.000035,0.000000,0.000000 -6837,-3.0,90.000035,0.000000,0.000000 -6838,-3.0,90.000035,0.000000,0.000000 -6839,-3.0,90.000035,0.000000,0.000000 -6840,-3.0,90.000035,0.000000,0.000000 -6841,-3.0,90.000035,0.000000,0.000000 -6842,-3.0,90.000035,0.000000,0.000000 -6843,-3.0,90.000035,0.000000,0.000000 -6844,-3.0,90.000035,0.000000,0.000000 -6845,-3.0,90.000035,0.000000,0.000000 -6846,-3.0,90.000035,0.000000,0.000000 -6847,-3.0,90.000035,0.000000,0.000000 -6848,-3.0,90.000035,0.000000,0.000000 -6849,-3.0,90.000035,0.000000,0.000000 -6850,-3.0,90.000035,0.000000,0.000000 -6851,-3.0,90.000035,0.000000,0.000000 -6852,-3.0,90.000035,0.000000,0.000000 -6853,-3.0,90.000035,0.000000,0.000000 -6854,-3.0,90.000035,0.000000,0.000000 -6855,-3.0,90.000035,0.000000,0.000000 -6856,-3.0,90.000035,0.000000,0.000000 -6857,-3.0,90.000035,0.000000,0.000000 -6858,-3.0,90.000035,0.000000,0.000000 -6859,-3.0,90.000035,0.000000,0.000000 -6860,-3.0,90.000035,0.000000,0.000000 -6861,-3.0,90.000035,0.000000,0.000000 -6862,-3.0,90.000035,0.000000,0.000000 -6863,-3.0,90.000035,0.000000,0.000000 -6864,-3.0,90.000035,0.000000,0.000000 -6865,-3.0,90.000035,0.000000,0.000000 -6866,-3.0,90.000035,0.000000,0.000000 -6867,-3.0,90.000035,0.000000,0.000000 -6868,-3.0,90.000035,0.000000,0.000000 -6869,-3.0,90.000035,0.000000,0.000000 -6870,-3.0,90.000035,0.000000,0.000000 -6871,-3.0,90.000035,0.000000,0.000000 -6872,-3.0,90.000035,0.000000,0.000000 -6873,-3.0,90.000035,0.000000,0.000000 -6874,-3.0,90.000035,0.000000,0.000000 -6875,-3.0,90.000035,0.000000,0.000000 -6876,-3.0,90.000035,0.000000,0.000000 -6877,-3.0,90.000035,0.000000,0.000000 -6878,-3.0,90.000035,0.000000,0.000000 -6879,-3.0,90.000035,0.000000,0.000000 -6880,-3.0,90.000035,0.000000,0.000000 -6881,-3.0,90.000035,0.000000,0.000000 -6882,-3.0,90.000035,0.000000,0.000000 -6883,-3.0,90.000035,0.000000,0.000000 -6884,-3.0,90.000035,0.000000,0.000000 -6885,-3.0,90.000035,0.000000,0.000000 -6886,-3.0,90.000035,0.000000,0.000000 -6887,-3.0,90.000035,0.000000,0.000000 -6888,-3.0,90.000035,0.000000,0.000000 -6889,-3.0,90.000035,0.000000,0.000000 -6890,-3.0,90.000035,0.000000,0.000000 -6891,-3.0,90.000035,0.000000,0.000000 -6892,-3.0,90.000035,0.000000,0.000000 -6893,-3.0,90.000035,0.000000,0.000000 -6894,-3.0,90.000035,0.000000,0.000000 -6895,-3.0,90.000035,0.000000,0.000000 -6896,-3.0,90.000035,0.000000,0.000000 -6897,-3.0,90.000035,0.000000,0.000000 -6898,-3.0,90.000035,0.000000,0.000000 -6899,-3.0,90.000035,0.000000,0.000000 -6900,-3.0,90.000035,0.000000,0.000000 -6901,-3.0,90.000035,0.000000,0.000000 -6902,-3.0,90.000035,0.000000,0.000000 -6903,-3.0,90.000035,0.000000,0.000000 -6904,-3.0,90.000035,0.000000,0.000000 -6905,-3.0,90.000035,0.000000,0.000000 -6906,-3.0,90.000035,0.000000,0.000000 -6907,-3.0,90.000035,0.000000,0.000000 -6908,-3.0,90.000035,0.000000,0.000000 -6909,-3.0,90.000035,0.000000,0.000000 -6910,-3.0,90.000035,0.000000,0.000000 -6911,-3.0,90.000035,0.000000,0.000000 -6912,-3.0,90.000035,0.000000,0.000000 -6913,-3.0,90.000035,0.000000,0.000000 -6914,-3.0,90.000035,0.000000,0.000000 -6915,-3.0,90.000035,0.000000,0.000000 -6916,-3.0,90.000035,0.000000,0.000000 -6917,-3.0,90.000035,0.000000,0.000000 -6918,-3.0,90.000035,0.000000,0.000000 -6919,-3.0,90.000035,0.000000,0.000000 -6920,-3.0,90.000035,0.000000,0.000000 -6921,-3.0,90.000035,0.000000,0.000000 -6922,-3.0,90.000035,0.000000,0.000000 -6923,-3.0,90.000035,0.000000,0.000000 -6924,-3.0,90.000035,0.000000,0.000000 -6925,-3.0,90.000035,0.000000,0.000000 -6926,-3.0,90.000035,0.000000,0.000000 -6927,-3.0,90.000035,0.000000,0.000000 -6928,-3.0,90.000035,0.000000,0.000000 -6929,-3.0,90.000035,0.000000,0.000000 -6930,-3.0,90.000035,0.000000,0.000000 -6931,-3.0,90.000035,0.000000,0.000000 -6932,-3.0,90.000035,0.000000,0.000000 -6933,-3.0,90.000035,0.000000,0.000000 -6934,-3.0,90.000035,0.000000,0.000000 -6935,-3.0,90.000035,0.000000,0.000000 -6936,-3.0,90.000035,0.000000,0.000000 -6937,-3.0,90.000035,0.000000,0.000000 -6938,-3.0,90.000035,0.000000,0.000000 -6939,-3.0,90.000035,0.000000,0.000000 -6940,-3.0,90.000035,0.000000,0.000000 -6941,-3.0,90.000035,0.000000,0.000000 -6942,-3.0,90.000035,0.000000,0.000000 -6943,-3.0,90.000035,0.000000,0.000000 -6944,-3.0,90.000035,0.000000,0.000000 -6945,-3.0,90.000035,0.000000,0.000000 -6946,-3.0,90.000035,0.000000,0.000000 -6947,-3.0,90.000035,0.000000,0.000000 -6948,-3.0,90.000035,0.000000,0.000000 -6949,-3.0,90.000035,0.000000,0.000000 -6950,-3.0,90.000035,0.000000,0.000000 -6951,-3.0,90.000035,0.000000,0.000000 -6952,-3.0,90.000035,0.000000,0.000000 -6953,-3.0,90.000035,0.000000,0.000000 -6954,-3.0,90.000035,0.000000,0.000000 -6955,-3.0,90.000035,0.000000,0.000000 -6956,-3.0,90.000035,0.000000,0.000000 -6957,-3.0,90.000035,0.000000,0.000000 -6958,-3.0,90.000035,0.000000,0.000000 -6959,-3.0,90.000035,0.000000,0.000000 -6960,-3.0,90.000035,0.000000,0.000000 -6961,-3.0,90.000035,0.000000,0.000000 -6962,-3.0,90.000035,0.000000,0.000000 -6963,-3.0,90.000035,0.000000,0.000000 -6964,-3.0,90.000035,0.000000,0.000000 -6965,-3.0,90.000035,0.000000,0.000000 -6966,-3.0,90.000035,0.000000,0.000000 -6967,-3.0,90.000035,0.000000,0.000000 -6968,-3.0,90.000035,0.000000,0.000000 -6969,-3.0,90.000035,0.000000,0.000000 -6970,-3.0,90.000035,0.000000,0.000000 -6971,-3.0,90.000035,0.000000,0.000000 -6972,-3.0,90.000035,0.000000,0.000000 -6973,-3.0,90.000035,0.000000,0.000000 -6974,-3.0,90.000035,0.000000,0.000000 -6975,-3.0,90.000035,0.000000,0.000000 -6976,-3.0,90.000035,0.000000,0.000000 -6977,-3.0,90.000035,0.000000,0.000000 -6978,-3.0,90.000035,0.000000,0.000000 -6979,-3.0,90.000035,0.000000,0.000000 -6980,-3.0,90.000035,0.000000,0.000000 -6981,-3.0,90.000035,0.000000,0.000000 -6982,-3.0,90.000035,0.000000,0.000000 -6983,-3.0,90.000035,0.000000,0.000000 -6984,-3.0,90.000035,0.000000,0.000000 -6985,-3.0,90.000035,0.000000,0.000000 -6986,-3.0,90.000035,0.000000,0.000000 -6987,-3.0,90.000035,0.000000,0.000000 -6988,-3.0,90.000035,0.000000,0.000000 -6989,-3.0,90.000035,0.000000,0.000000 -6990,-3.0,90.000035,0.000000,0.000000 -6991,-3.0,90.000035,0.000000,0.000000 -6992,-3.0,90.000035,0.000000,0.000000 -6993,-3.0,90.000035,0.000000,0.000000 -6994,-3.0,90.000035,0.000000,0.000000 -6995,-3.0,90.000035,0.000000,0.000000 -6996,-3.0,90.000035,0.000000,0.000000 -6997,-3.0,90.000035,0.000000,0.000000 -6998,-3.0,90.000035,0.000000,0.000000 -6999,-3.0,90.000035,0.000000,0.000000 -7000,-3.0,90.000035,0.000000,0.000000 -7001,-3.0,90.000035,0.000000,0.000000 -7002,-3.0,90.000035,0.000000,0.000000 -7003,-3.0,90.000035,0.000000,0.000000 -7004,-3.0,90.000035,0.000000,0.000000 -7005,-3.0,90.000035,0.000000,0.000000 -7006,-3.0,90.000035,0.000000,0.000000 -7007,-3.0,90.000035,0.000000,0.000000 -7008,-3.0,90.000035,0.000000,0.000000 -7009,-3.0,90.000035,0.000000,0.000000 -7010,-3.0,90.000035,0.000000,0.000000 -7011,-3.0,90.000035,0.000000,0.000000 -7012,-3.0,90.000035,0.000000,0.000000 -7013,-3.0,90.000035,0.000000,0.000000 -7014,-3.0,90.000035,0.000000,0.000000 -7015,-3.0,90.000035,0.000000,0.000000 -7016,-3.0,90.000035,0.000000,0.000000 -7017,-3.0,90.000035,0.000000,0.000000 -7018,-3.0,90.000035,0.000000,0.000000 -7019,-3.0,90.000035,0.000000,0.000000 -7020,-3.0,90.000035,0.000000,0.000000 -7021,-3.0,90.000035,0.000000,0.000000 -7022,-3.0,90.000035,0.000000,0.000000 -7023,-3.0,90.000035,0.000000,0.000000 -7024,-3.0,90.000035,0.000000,0.000000 -7025,-3.0,90.000035,0.000000,0.000000 -7026,-3.0,90.000035,0.000000,0.000000 -7027,-3.0,90.000035,0.000000,0.000000 -7028,-3.0,90.000035,0.000000,0.000000 -7029,-3.0,90.000035,0.000000,0.000000 -7030,-3.0,90.000035,0.000000,0.000000 -7031,-3.0,90.000035,0.000000,0.000000 -7032,-3.0,90.000035,0.000000,0.000000 -7033,-3.0,90.000035,0.000000,0.000000 -7034,-3.0,90.000035,0.000000,0.000000 -7035,-3.0,90.000035,0.000000,0.000000 -7036,-3.0,90.000035,0.000000,0.000000 -7037,-3.0,90.000035,0.000000,0.000000 -7038,-3.0,90.000035,0.000000,0.000000 -7039,-3.0,90.000035,0.000000,0.000000 -7040,-3.0,90.000035,0.000000,0.000000 -7041,-3.0,90.000035,0.000000,0.000000 -7042,-3.0,90.000035,0.000000,0.000000 -7043,-3.0,90.000035,0.000000,0.000000 -7044,-3.0,90.000035,0.000000,0.000000 -7045,-3.0,90.000035,0.000000,0.000000 -7046,-3.0,90.000035,0.000000,0.000000 -7047,-3.0,90.000035,0.000000,0.000000 -7048,-3.0,90.000035,0.000000,0.000000 -7049,-3.0,90.000035,0.000000,0.000000 -7050,-3.0,90.000035,0.000000,0.000000 -7051,-3.0,90.000035,0.000000,0.000000 -7052,-3.0,90.000035,0.000000,0.000000 -7053,-3.0,90.000035,0.000000,0.000000 -7054,-3.0,90.000035,0.000000,0.000000 -7055,-3.0,90.000035,0.000000,0.000000 -7056,-3.0,90.000035,0.000000,0.000000 -7057,-3.0,90.000035,0.000000,0.000000 -7058,-3.0,90.000035,0.000000,0.000000 -7059,-3.0,90.000035,0.000000,0.000000 -7060,-3.0,90.000035,0.000000,0.000000 -7061,-3.0,90.000035,0.000000,0.000000 -7062,-3.0,90.000035,0.000000,0.000000 -7063,-3.0,90.000035,0.000000,0.000000 -7064,-3.0,90.000035,0.000000,0.000000 -7065,-3.0,90.000035,0.000000,0.000000 -7066,-3.0,90.000035,0.000000,0.000000 -7067,-3.0,90.000035,0.000000,0.000000 -7068,-3.0,90.000035,0.000000,0.000000 -7069,-3.0,90.000035,0.000000,0.000000 -7070,-3.0,90.000035,0.000000,0.000000 -7071,-3.0,90.000035,0.000000,0.000000 -7072,-3.0,90.000035,0.000000,0.000000 -7073,-3.0,90.000035,0.000000,0.000000 -7074,-3.0,90.000035,0.000000,0.000000 -7075,-3.0,90.000035,0.000000,0.000000 -7076,-3.0,90.000035,0.000000,0.000000 -7077,-3.0,90.000035,0.000000,0.000000 -7078,-3.0,90.000035,0.000000,0.000000 -7079,-3.0,90.000035,0.000000,0.000000 -7080,-3.0,90.000035,0.000000,0.000000 -7081,-3.0,90.000035,0.000000,0.000000 -7082,-3.0,90.000035,0.000000,0.000000 -7083,-3.0,90.000035,0.000000,0.000000 -7084,-3.0,90.000035,0.000000,0.000000 -7085,-3.0,90.000035,0.000000,0.000000 -7086,-3.0,90.000035,0.000000,0.000000 -7087,-3.0,90.000035,0.000000,0.000000 -7088,-3.0,90.000035,0.000000,0.000000 -7089,-3.0,90.000035,0.000000,0.000000 -7090,-3.0,90.000035,0.000000,0.000000 -7091,-3.0,90.000035,0.000000,0.000000 -7092,-3.0,90.000035,0.000000,0.000000 -7093,-3.0,90.000035,0.000000,0.000000 -7094,-3.0,90.000035,0.000000,0.000000 -7095,-3.0,90.000035,0.000000,0.000000 -7096,-3.0,90.000035,0.000000,0.000000 -7097,-3.0,90.000035,0.000000,0.000000 -7098,-3.0,90.000035,0.000000,0.000000 -7099,-3.0,90.000035,0.000000,0.000000 -7100,-3.0,90.000035,0.000000,0.000000 -7101,-3.0,90.000035,0.000000,0.000000 -7102,-3.0,90.000035,0.000000,0.000000 -7103,-3.0,90.000035,0.000000,0.000000 -7104,-3.0,90.000035,0.000000,0.000000 -7105,-3.0,90.000035,0.000000,0.000000 -7106,-3.0,90.000035,0.000000,0.000000 -7107,-3.0,90.000035,0.000000,0.000000 -7108,-3.0,90.000035,0.000000,0.000000 -7109,-3.0,90.000035,0.000000,0.000000 -7110,-3.0,90.000035,0.000000,0.000000 -7111,-3.0,90.000035,0.000000,0.000000 -7112,-3.0,90.000035,0.000000,0.000000 -7113,-3.0,90.000035,0.000000,0.000000 -7114,-3.0,90.000035,0.000000,0.000000 -7115,-3.0,90.000035,0.000000,0.000000 -7116,-3.0,90.000035,0.000000,0.000000 -7117,-3.0,90.000035,0.000000,0.000000 -7118,-3.0,90.000035,0.000000,0.000000 -7119,-3.0,90.000035,0.000000,0.000000 -7120,-3.0,90.000035,0.000000,0.000000 -7121,-3.0,90.000035,0.000000,0.000000 -7122,-3.0,90.000035,0.000000,0.000000 -7123,-3.0,90.000035,0.000000,0.000000 -7124,-3.0,90.000035,0.000000,0.000000 -7125,-3.0,90.000035,0.000000,0.000000 -7126,-3.0,90.000035,0.000000,0.000000 -7127,-3.0,90.000035,0.000000,0.000000 -7128,-3.0,90.000035,0.000000,0.000000 -7129,-3.0,90.000035,0.000000,0.000000 -7130,-3.0,90.000035,0.000000,0.000000 -7131,-3.0,90.000035,0.000000,0.000000 -7132,-3.0,90.000035,0.000000,0.000000 -7133,-3.0,90.000035,0.000000,0.000000 -7134,-3.0,90.000035,0.000000,0.000000 -7135,-3.0,90.000035,0.000000,0.000000 -7136,-3.0,90.000035,0.000000,0.000000 -7137,-3.0,90.000035,0.000000,0.000000 -7138,-3.0,90.000035,0.000000,0.000000 -7139,-3.0,90.000035,0.000000,0.000000 -7140,-3.0,90.000035,0.000000,0.000000 -7141,-3.0,90.000035,0.000000,0.000000 -7142,-3.0,90.000035,0.000000,0.000000 -7143,-3.0,90.000035,0.000000,0.000000 -7144,-3.0,90.000035,0.000000,0.000000 -7145,-3.0,90.000035,0.000000,0.000000 -7146,-3.0,90.000035,0.000000,0.000000 -7147,-3.0,90.000035,0.000000,0.000000 -7148,-3.0,90.000035,0.000000,0.000000 -7149,-3.0,90.000035,0.000000,0.000000 -7150,-3.0,90.000035,0.000000,0.000000 -7151,-3.0,90.000035,0.000000,0.000000 -7152,-3.0,90.000035,0.000000,0.000000 -7153,-3.0,90.000035,0.000000,0.000000 -7154,-3.0,90.000035,0.000000,0.000000 -7155,-3.0,90.000035,0.000000,0.000000 -7156,-3.0,90.000035,0.000000,0.000000 -7157,-3.0,90.000035,0.000000,0.000000 -7158,-3.0,90.000035,0.000000,0.000000 -7159,-3.0,90.000035,0.000000,0.000000 -7160,-3.0,90.000035,0.000000,0.000000 -7161,-3.0,90.000035,0.000000,0.000000 -7162,-3.0,90.000035,0.000000,0.000000 -7163,-3.0,90.000035,0.000000,0.000000 -7164,-3.0,90.000035,0.000000,0.000000 -7165,-3.0,90.000035,0.000000,0.000000 -7166,-3.0,90.000035,0.000000,0.000000 -7167,-3.0,90.000035,0.000000,0.000000 -7168,-3.0,90.000035,0.000000,0.000000 -7169,-3.0,90.000035,0.000000,0.000000 -7170,-3.0,90.000035,0.000000,0.000000 -7171,-3.0,90.000035,0.000000,0.000000 -7172,-3.0,90.000035,0.000000,0.000000 -7173,-3.0,90.000035,0.000000,0.000000 -7174,-3.0,90.000035,0.000000,0.000000 -7175,-3.0,90.000035,0.000000,0.000000 -7176,-3.0,90.000035,0.000000,0.000000 -7177,-3.0,90.000035,0.000000,0.000000 -7178,-3.0,90.000035,0.000000,0.000000 -7179,-3.0,90.000035,0.000000,0.000000 -7180,-3.0,90.000035,0.000000,0.000000 -7181,-3.0,90.000035,0.000000,0.000000 -7182,-3.0,90.000035,0.000000,0.000000 -7183,-3.0,90.000035,0.000000,0.000000 -7184,-3.0,90.000035,0.000000,0.000000 -7185,-3.0,90.000035,0.000000,0.000000 -7186,-3.0,90.000035,0.000000,0.000000 -7187,-3.0,90.000035,0.000000,0.000000 -7188,-3.0,90.000035,0.000000,0.000000 -7189,-3.0,90.000035,0.000000,0.000000 -7190,-3.0,90.000035,0.000000,0.000000 -7191,-3.0,90.000035,0.000000,0.000000 -7192,-3.0,90.000035,0.000000,0.000000 -7193,-3.0,90.000035,0.000000,0.000000 -7194,-3.0,90.000035,0.000000,0.000000 -7195,-3.0,90.000035,0.000000,0.000000 -7196,-3.0,90.000035,0.000000,0.000000 -7197,-3.0,90.000035,0.000000,0.000000 -7198,-3.0,90.000035,0.000000,0.000000 -7199,-3.0,90.000035,0.000000,0.000000 -7200,-3.0,90.000035,0.000000,0.000000 -7201,-3.0,90.000035,0.000000,0.000000 -7202,-3.0,90.000035,0.000000,0.000000 -7203,-3.0,90.000035,0.000000,0.000000 -7204,-3.0,90.000035,0.000000,0.000000 -7205,-3.0,90.000035,0.000000,0.000000 -7206,-3.0,90.000035,0.000000,0.000000 -7207,-3.0,90.000035,0.000000,0.000000 -7208,-3.0,90.000035,0.000000,0.000000 -7209,-3.0,90.000035,0.000000,0.000000 -7210,-3.0,90.000035,0.000000,0.000000 -7211,-3.0,90.000035,0.000000,0.000000 -7212,-3.0,90.000035,0.000000,0.000000 -7213,-3.0,90.000035,0.000000,0.000000 -7214,-3.0,90.000035,0.000000,0.000000 -7215,-3.0,90.000035,0.000000,0.000000 -7216,-3.0,90.000035,0.000000,0.000000 -7217,-3.0,90.000035,0.000000,0.000000 -7218,-3.0,90.000035,0.000000,0.000000 -7219,-3.0,90.000035,0.000000,0.000000 -7220,-3.0,90.000035,0.000000,0.000000 -7221,-3.0,90.000035,0.000000,0.000000 -7222,-3.0,90.000035,0.000000,0.000000 -7223,-3.0,90.000035,0.000000,0.000000 -7224,-3.0,90.000035,0.000000,0.000000 -7225,-3.0,90.000035,0.000000,0.000000 -7226,-3.0,90.000035,0.000000,0.000000 -7227,-3.0,90.000035,0.000000,0.000000 -7228,-3.0,90.000035,0.000000,0.000000 -7229,-3.0,90.000035,0.000000,0.000000 -7230,-3.0,90.000035,0.000000,0.000000 -7231,-3.0,90.000035,0.000000,0.000000 -7232,-3.0,90.000035,0.000000,0.000000 -7233,-3.0,90.000035,0.000000,0.000000 -7234,-3.0,90.000035,0.000000,0.000000 -7235,-3.0,90.000035,0.000000,0.000000 -7236,-3.0,90.000035,0.000000,0.000000 -7237,-3.0,90.000035,0.000000,0.000000 -7238,-3.0,90.000035,0.000000,0.000000 -7239,-3.0,90.000035,0.000000,0.000000 -7240,-3.0,90.000035,0.000000,0.000000 -7241,-3.0,90.000035,0.000000,0.000000 -7242,-3.0,90.000035,0.000000,0.000000 -7243,-3.0,90.000035,0.000000,0.000000 -7244,-3.0,90.000035,0.000000,0.000000 -7245,-3.0,90.000035,0.000000,0.000000 -7246,-3.0,90.000035,0.000000,0.000000 -7247,-3.0,90.000035,0.000000,0.000000 -7248,-3.0,90.000035,0.000000,0.000000 -7249,-3.0,90.000035,0.000000,0.000000 -7250,-3.0,90.000035,0.000000,0.000000 -7251,-3.0,90.000035,0.000000,0.000000 -7252,-3.0,90.000035,0.000000,0.000000 -7253,-3.0,90.000035,0.000000,0.000000 -7254,-3.0,90.000035,0.000000,0.000000 -7255,-3.0,90.000035,0.000000,0.000000 -7256,-3.0,90.000035,0.000000,0.000000 -7257,-3.0,90.000035,0.000000,0.000000 -7258,-3.0,90.000035,0.000000,0.000000 -7259,-3.0,90.000035,0.000000,0.000000 -7260,-3.0,90.000035,0.000000,0.000000 -7261,-3.0,90.000035,0.000000,0.000000 -7262,-3.0,90.000035,0.000000,0.000000 -7263,-3.0,90.000035,0.000000,0.000000 -7264,-3.0,90.000035,0.000000,0.000000 -7265,-3.0,90.000035,0.000000,0.000000 -7266,-3.0,90.000035,0.000000,0.000000 -7267,-3.0,90.000035,0.000000,0.000000 -7268,-3.0,90.000035,0.000000,0.000000 -7269,-3.0,90.000035,0.000000,0.000000 -7270,-3.0,90.000035,0.000000,0.000000 -7271,-3.0,90.000035,0.000000,0.000000 -7272,-3.0,90.000035,0.000000,0.000000 -7273,-3.0,90.000035,0.000000,0.000000 -7274,-3.0,90.000035,0.000000,0.000000 -7275,-3.0,90.000035,0.000000,0.000000 -7276,-3.0,90.000035,0.000000,0.000000 -7277,-3.0,90.000035,0.000000,0.000000 -7278,-3.0,90.000035,0.000000,0.000000 -7279,-3.0,90.000035,0.000000,0.000000 -7280,-3.0,90.000035,0.000000,0.000000 -7281,-3.0,90.000035,0.000000,0.000000 -7282,-3.0,90.000035,0.000000,0.000000 -7283,-3.0,90.000035,0.000000,0.000000 -7284,-3.0,90.000035,0.000000,0.000000 -7285,-3.0,90.000035,0.000000,0.000000 -7286,-3.0,90.000035,0.000000,0.000000 -7287,-3.0,90.000035,0.000000,0.000000 -7288,-3.0,90.000035,0.000000,0.000000 -7289,-3.0,90.000035,0.000000,0.000000 -7290,-3.0,90.000035,0.000000,0.000000 -7291,-3.0,90.000035,0.000000,0.000000 -7292,-3.0,90.000035,0.000000,0.000000 -7293,-3.0,90.000035,0.000000,0.000000 -7294,-3.0,90.000035,0.000000,0.000000 -7295,-3.0,90.000035,0.000000,0.000000 -7296,-3.0,90.000035,0.000000,0.000000 -7297,-3.0,90.000035,0.000000,0.000000 -7298,-3.0,90.000035,0.000000,0.000000 -7299,-3.0,90.000035,0.000000,0.000000 -7300,-3.0,90.000035,0.000000,0.000000 -7301,-3.0,90.000035,0.000000,0.000000 -7302,-3.0,90.000035,0.000000,0.000000 -7303,-3.0,90.000035,0.000000,0.000000 -7304,-3.0,90.000035,0.000000,0.000000 -7305,-3.0,90.000035,0.000000,0.000000 -7306,-3.0,90.000035,0.000000,0.000000 -7307,-3.0,90.000035,0.000000,0.000000 -7308,-3.0,90.000035,0.000000,0.000000 -7309,-3.0,90.000035,0.000000,0.000000 -7310,-3.0,90.000035,0.000000,0.000000 -7311,-3.0,90.000035,0.000000,0.000000 -7312,-3.0,90.000035,0.000000,0.000000 -7313,-3.0,90.000035,0.000000,0.000000 -7314,-3.0,90.000035,0.000000,0.000000 -7315,-3.0,90.000035,0.000000,0.000000 -7316,-3.0,90.000035,0.000000,0.000000 -7317,-3.0,90.000035,0.000000,0.000000 -7318,-3.0,90.000035,0.000000,0.000000 -7319,-3.0,90.000035,0.000000,0.000000 -7320,-3.0,90.000035,0.000000,0.000000 -7321,-3.0,90.000035,0.000000,0.000000 -7322,-3.0,90.000035,0.000000,0.000000 -7323,-3.0,90.000035,0.000000,0.000000 -7324,-3.0,90.000035,0.000000,0.000000 -7325,-3.0,90.000035,0.000000,0.000000 -7326,-3.0,90.000035,0.000000,0.000000 -7327,-3.0,90.000035,0.000000,0.000000 -7328,-3.0,90.000035,0.000000,0.000000 -7329,-3.0,90.000035,0.000000,0.000000 -7330,-3.0,90.000035,0.000000,0.000000 -7331,-3.0,90.000035,0.000000,0.000000 -7332,-3.0,90.000035,0.000000,0.000000 -7333,-3.0,90.000035,0.000000,0.000000 -7334,-3.0,90.000035,0.000000,0.000000 -7335,-3.0,90.000035,0.000000,0.000000 -7336,-3.0,90.000035,0.000000,0.000000 -7337,-3.0,90.000035,0.000000,0.000000 -7338,-3.0,90.000035,0.000000,0.000000 -7339,-3.0,90.000035,0.000000,0.000000 -7340,-3.0,90.000035,0.000000,0.000000 -7341,-3.0,90.000035,0.000000,0.000000 -7342,-3.0,90.000035,0.000000,0.000000 -7343,-3.0,90.000035,0.000000,0.000000 -7344,-3.0,90.000035,0.000000,0.000000 -7345,-3.0,90.000035,0.000000,0.000000 -7346,-3.0,90.000035,0.000000,0.000000 -7347,-3.0,90.000035,0.000000,0.000000 -7348,-3.0,90.000035,0.000000,0.000000 -7349,-3.0,90.000035,0.000000,0.000000 -7350,-3.0,90.000035,0.000000,0.000000 -7351,-3.0,90.000035,0.000000,0.000000 -7352,-3.0,90.000035,0.000000,0.000000 -7353,-3.0,90.000035,0.000000,0.000000 -7354,-3.0,90.000035,0.000000,0.000000 -7355,-3.0,90.000035,0.000000,0.000000 -7356,-3.0,90.000035,0.000000,0.000000 -7357,-3.0,90.000035,0.000000,0.000000 -7358,-3.0,90.000035,0.000000,0.000000 -7359,-3.0,90.000035,0.000000,0.000000 -7360,-3.0,90.000035,0.000000,0.000000 -7361,-3.0,90.000035,0.000000,0.000000 -7362,-3.0,90.000035,0.000000,0.000000 -7363,-3.0,90.000035,0.000000,0.000000 -7364,-3.0,90.000035,0.000000,0.000000 -7365,-3.0,90.000035,0.000000,0.000000 -7366,-3.0,90.000035,0.000000,0.000000 -7367,-3.0,90.000035,0.000000,0.000000 -7368,-3.0,90.000035,0.000000,0.000000 -7369,-3.0,90.000035,0.000000,0.000000 -7370,-3.0,90.000035,0.000000,0.000000 -7371,-3.0,90.000035,0.000000,0.000000 -7372,-3.0,90.000035,0.000000,0.000000 -7373,-3.0,90.000035,0.000000,0.000000 -7374,-3.0,90.000035,0.000000,0.000000 -7375,-3.0,90.000035,0.000000,0.000000 -7376,-3.0,90.000035,0.000000,0.000000 -7377,-3.0,90.000035,0.000000,0.000000 -7378,-3.0,90.000035,0.000000,0.000000 -7379,-3.0,90.000035,0.000000,0.000000 -7380,-3.0,90.000035,0.000000,0.000000 -7381,-3.0,90.000035,0.000000,0.000000 -7382,-3.0,90.000035,0.000000,0.000000 -7383,-3.0,90.000035,0.000000,0.000000 -7384,-3.0,90.000035,0.000000,0.000000 -7385,-3.0,90.000035,0.000000,0.000000 -7386,-3.0,90.000035,0.000000,0.000000 -7387,-3.0,90.000035,0.000000,0.000000 -7388,-3.0,90.000035,0.000000,0.000000 -7389,-3.0,90.000035,0.000000,0.000000 -7390,-3.0,90.000035,0.000000,0.000000 -7391,-3.0,90.000035,0.000000,0.000000 -7392,-3.0,90.000035,0.000000,0.000000 -7393,-3.0,90.000035,0.000000,0.000000 -7394,-3.0,90.000035,0.000000,0.000000 -7395,-3.0,90.000035,0.000000,0.000000 -7396,-3.0,90.000035,0.000000,0.000000 -7397,-3.0,90.000035,0.000000,0.000000 -7398,-3.0,90.000035,0.000000,0.000000 -7399,-3.0,90.000035,0.000000,0.000000 -7400,-3.0,90.000035,0.000000,0.000000 -7401,-3.0,90.000035,0.000000,0.000000 -7402,-3.0,90.000035,0.000000,0.000000 -7403,-3.0,90.000035,0.000000,0.000000 -7404,-3.0,90.000035,0.000000,0.000000 -7405,-3.0,90.000035,0.000000,0.000000 -7406,-3.0,90.000035,0.000000,0.000000 -7407,-3.0,90.000035,0.000000,0.000000 -7408,-3.0,90.000035,0.000000,0.000000 -7409,-3.0,90.000035,0.000000,0.000000 -7410,-3.0,90.000035,0.000000,0.000000 -7411,-3.0,90.000035,0.000000,0.000000 -7412,-3.0,90.000035,0.000000,0.000000 -7413,-3.0,90.000035,0.000000,0.000000 -7414,-3.0,90.000035,0.000000,0.000000 -7415,-3.0,90.000035,0.000000,0.000000 -7416,-3.0,90.000035,0.000000,0.000000 -7417,-3.0,90.000035,0.000000,0.000000 -7418,-3.0,90.000035,0.000000,0.000000 -7419,-3.0,90.000035,0.000000,0.000000 -7420,-3.0,90.000035,0.000000,0.000000 -7421,-3.0,90.000035,0.000000,0.000000 -7422,-3.0,90.000035,0.000000,0.000000 -7423,-3.0,90.000035,0.000000,0.000000 -7424,-3.0,90.000035,0.000000,0.000000 -7425,-3.0,90.000035,0.000000,0.000000 -7426,-3.0,90.000035,0.000000,0.000000 -7427,-3.0,90.000035,0.000000,0.000000 -7428,-3.0,90.000035,0.000000,0.000000 -7429,-3.0,90.000035,0.000000,0.000000 -7430,-3.0,90.000035,0.000000,0.000000 -7431,-3.0,90.000035,0.000000,0.000000 -7432,-3.0,90.000035,0.000000,0.000000 -7433,-3.0,90.000035,0.000000,0.000000 -7434,-3.0,90.000035,0.000000,0.000000 -7435,-3.0,90.000035,0.000000,0.000000 -7436,-3.0,90.000035,0.000000,0.000000 -7437,-3.0,90.000035,0.000000,0.000000 -7438,-3.0,90.000035,0.000000,0.000000 -7439,-3.0,90.000035,0.000000,0.000000 -7440,-3.0,90.000035,0.000000,0.000000 -7441,-3.0,90.000035,0.000000,0.000000 -7442,-3.0,90.000035,0.000000,0.000000 -7443,-3.0,90.000035,0.000000,0.000000 -7444,-3.0,90.000035,0.000000,0.000000 -7445,-3.0,90.000035,0.000000,0.000000 -7446,-3.0,90.000035,0.000000,0.000000 -7447,-3.0,90.000035,0.000000,0.000000 -7448,-3.0,90.000035,0.000000,0.000000 -7449,-3.0,90.000035,0.000000,0.000000 -7450,-3.0,90.000035,0.000000,0.000000 -7451,-3.0,90.000035,0.000000,0.000000 -7452,-3.0,90.000035,0.000000,0.000000 -7453,-3.0,90.000035,0.000000,0.000000 -7454,-3.0,90.000035,0.000000,0.000000 -7455,-3.0,90.000035,0.000000,0.000000 -7456,-3.0,90.000035,0.000000,0.000000 -7457,-3.0,90.000035,0.000000,0.000000 -7458,-3.0,90.000035,0.000000,0.000000 -7459,-3.0,90.000035,0.000000,0.000000 -7460,-3.0,90.000035,0.000000,0.000000 -7461,-3.0,90.000035,0.000000,0.000000 -7462,-3.0,90.000035,0.000000,0.000000 -7463,-3.0,90.000035,0.000000,0.000000 -7464,-3.0,90.000035,0.000000,0.000000 -7465,-3.0,90.000035,0.000000,0.000000 -7466,-3.0,90.000035,0.000000,0.000000 -7467,-3.0,90.000035,0.000000,0.000000 -7468,-3.0,90.000035,0.000000,0.000000 -7469,-3.0,90.000035,0.000000,0.000000 -7470,-3.0,90.000035,0.000000,0.000000 -7471,-3.0,90.000035,0.000000,0.000000 -7472,-3.0,90.000035,0.000000,0.000000 -7473,-3.0,90.000035,0.000000,0.000000 -7474,-3.0,90.000035,0.000000,0.000000 -7475,-3.0,90.000035,0.000000,0.000000 -7476,-3.0,90.000035,0.000000,0.000000 -7477,-3.0,90.000035,0.000000,0.000000 -7478,-3.0,90.000035,0.000000,0.000000 -7479,-3.0,90.000035,0.000000,0.000000 -7480,-3.0,90.000035,0.000000,0.000000 -7481,-3.0,90.000035,0.000000,0.000000 -7482,-3.0,90.000035,0.000000,0.000000 -7483,-3.0,90.000035,0.000000,0.000000 -7484,-3.0,90.000035,0.000000,0.000000 -7485,-3.0,90.000035,0.000000,0.000000 -7486,-3.0,90.000035,0.000000,0.000000 -7487,-3.0,90.000035,0.000000,0.000000 -7488,-3.0,90.000035,0.000000,0.000000 -7489,-3.0,90.000035,0.000000,0.000000 -7490,-3.0,90.000035,0.000000,0.000000 -7491,-3.0,90.000035,0.000000,0.000000 -7492,-3.0,90.000035,0.000000,0.000000 -7493,-3.0,90.000035,0.000000,0.000000 -7494,-3.0,90.000035,0.000000,0.000000 -7495,-3.0,90.000035,0.000000,0.000000 -7496,-3.0,90.000035,0.000000,0.000000 -7497,-3.0,90.000035,0.000000,0.000000 -7498,-3.0,90.000035,0.000000,0.000000 -7499,-3.0,90.000035,0.000000,0.000000 -7500,-3.0,90.000035,0.000000,0.000000 -7501,-3.0,90.000035,0.000000,0.000000 -7502,-3.0,90.000035,0.000000,0.000000 -7503,-3.0,90.000035,0.000000,0.000000 -7504,-3.0,90.000035,0.000000,0.000000 -7505,-3.0,90.000035,0.000000,0.000000 -7506,-3.0,90.000035,0.000000,0.000000 -7507,-3.0,90.000035,0.000000,0.000000 -7508,-3.0,90.000035,0.000000,0.000000 -7509,-3.0,90.000035,0.000000,0.000000 -7510,-3.0,90.000035,0.000000,0.000000 -7511,-3.0,90.000035,0.000000,0.000000 -7512,-3.0,90.000035,0.000000,0.000000 -7513,-3.0,90.000035,0.000000,0.000000 -7514,-3.0,90.000035,0.000000,0.000000 -7515,-3.0,90.000035,0.000000,0.000000 -7516,-3.0,90.000035,0.000000,0.000000 -7517,-3.0,90.000035,0.000000,0.000000 -7518,-3.0,90.000035,0.000000,0.000000 -7519,-3.0,90.000035,0.000000,0.000000 -7520,-3.0,90.000035,0.000000,0.000000 -7521,-3.0,90.000035,0.000000,0.000000 -7522,-3.0,90.000035,0.000000,0.000000 -7523,-3.0,90.000035,0.000000,0.000000 -7524,-3.0,90.000035,0.000000,0.000000 -7525,-3.0,90.000035,0.000000,0.000000 -7526,-3.0,90.000035,0.000000,0.000000 -7527,-3.0,90.000035,0.000000,0.000000 -7528,-3.0,90.000035,0.000000,0.000000 -7529,-3.0,90.000035,0.000000,0.000000 -7530,-3.0,90.000035,0.000000,0.000000 -7531,-3.0,90.000035,0.000000,0.000000 -7532,-3.0,90.000035,0.000000,0.000000 -7533,-3.0,90.000035,0.000000,0.000000 -7534,-3.0,90.000035,0.000000,0.000000 -7535,-3.0,90.000035,0.000000,0.000000 -7536,-3.0,90.000035,0.000000,0.000000 -7537,-3.0,90.000035,0.000000,0.000000 -7538,-3.0,90.000035,0.000000,0.000000 -7539,-3.0,90.000035,0.000000,0.000000 -7540,-3.0,90.000035,0.000000,0.000000 -7541,-3.0,90.000035,0.000000,0.000000 -7542,-3.0,90.000035,0.000000,0.000000 -7543,-3.0,90.000035,0.000000,0.000000 -7544,-3.0,90.000035,0.000000,0.000000 -7545,-3.0,90.000035,0.000000,0.000000 -7546,-3.0,90.000035,0.000000,0.000000 -7547,-3.0,90.000035,0.000000,0.000000 -7548,-3.0,90.000035,0.000000,0.000000 -7549,-3.0,90.000035,0.000000,0.000000 -7550,-3.0,90.000035,0.000000,0.000000 -7551,-3.0,90.000035,0.000000,0.000000 -7552,-3.0,90.000035,0.000000,0.000000 -7553,-3.0,90.000035,0.000000,0.000000 -7554,-3.0,90.000035,0.000000,0.000000 -7555,-3.0,90.000035,0.000000,0.000000 -7556,-3.0,90.000035,0.000000,0.000000 -7557,-3.0,90.000035,0.000000,0.000000 -7558,-3.0,90.000035,0.000000,0.000000 -7559,-3.0,90.000035,0.000000,0.000000 -7560,-3.0,90.000035,0.000000,0.000000 -7561,-3.0,90.000035,0.000000,0.000000 -7562,-3.0,90.000035,0.000000,0.000000 -7563,-3.0,90.000035,0.000000,0.000000 -7564,-3.0,90.000035,0.000000,0.000000 -7565,-3.0,90.000035,0.000000,0.000000 -7566,-3.0,90.000035,0.000000,0.000000 -7567,-3.0,90.000035,0.000000,0.000000 -7568,-3.0,90.000035,0.000000,0.000000 -7569,-3.0,90.000035,0.000000,0.000000 -7570,-3.0,90.000035,0.000000,0.000000 -7571,-3.0,90.000035,0.000000,0.000000 -7572,-3.0,90.000035,0.000000,0.000000 -7573,-3.0,90.000035,0.000000,0.000000 -7574,-3.0,90.000035,0.000000,0.000000 -7575,-3.0,90.000035,0.000000,0.000000 -7576,-3.0,90.000035,0.000000,0.000000 -7577,-3.0,90.000035,0.000000,0.000000 -7578,-3.0,90.000035,0.000000,0.000000 -7579,-3.0,90.000035,0.000000,0.000000 -7580,-3.0,90.000035,0.000000,0.000000 -7581,-3.0,90.000035,0.000000,0.000000 -7582,-3.0,90.000035,0.000000,0.000000 -7583,-3.0,90.000035,0.000000,0.000000 -7584,-3.0,90.000035,0.000000,0.000000 -7585,-3.0,90.000035,0.000000,0.000000 -7586,-3.0,90.000035,0.000000,0.000000 -7587,-3.0,90.000035,0.000000,0.000000 -7588,-3.0,90.000035,0.000000,0.000000 -7589,-3.0,90.000035,0.000000,0.000000 -7590,-3.0,90.000035,0.000000,0.000000 -7591,-3.0,90.000035,0.000000,0.000000 -7592,-3.0,90.000035,0.000000,0.000000 -7593,-3.0,90.000035,0.000000,0.000000 -7594,-3.0,90.000035,0.000000,0.000000 -7595,-3.0,90.000035,0.000000,0.000000 -7596,-3.0,90.000035,0.000000,0.000000 -7597,-3.0,90.000035,0.000000,0.000000 -7598,-3.0,90.000035,0.000000,0.000000 -7599,-3.0,90.000035,0.000000,0.000000 -7600,-3.0,90.000035,0.000000,0.000000 -7601,-3.0,90.000035,0.000000,0.000000 -7602,-3.0,90.000035,0.000000,0.000000 -7603,-3.0,90.000035,0.000000,0.000000 -7604,-3.0,90.000035,0.000000,0.000000 -7605,-3.0,90.000035,0.000000,0.000000 -7606,-3.0,90.000035,0.000000,0.000000 -7607,-3.0,90.000035,0.000000,0.000000 -7608,-3.0,90.000035,0.000000,0.000000 -7609,-3.0,90.000035,0.000000,0.000000 -7610,-3.0,90.000035,0.000000,0.000000 -7611,-3.0,90.000035,0.000000,0.000000 -7612,-3.0,90.000035,0.000000,0.000000 -7613,-3.0,90.000035,0.000000,0.000000 -7614,-3.0,90.000035,0.000000,0.000000 -7615,-3.0,90.000035,0.000000,0.000000 -7616,-3.0,90.000035,0.000000,0.000000 -7617,-3.0,90.000035,0.000000,0.000000 -7618,-3.0,90.000035,0.000000,0.000000 -7619,-3.0,90.000035,0.000000,0.000000 -7620,-3.0,90.000035,0.000000,0.000000 -7621,-3.0,90.000035,0.000000,0.000000 -7622,-3.0,90.000035,0.000000,0.000000 -7623,-3.0,90.000035,0.000000,0.000000 -7624,-3.0,90.000035,0.000000,0.000000 -7625,-3.0,90.000035,0.000000,0.000000 -7626,-3.0,90.000035,0.000000,0.000000 -7627,-3.0,90.000035,0.000000,0.000000 -7628,-3.0,90.000035,0.000000,0.000000 -7629,-3.0,90.000035,0.000000,0.000000 -7630,-3.0,90.000035,0.000000,0.000000 -7631,-3.0,90.000035,0.000000,0.000000 -7632,-3.0,90.000035,0.000000,0.000000 -7633,-3.0,90.000035,0.000000,0.000000 -7634,-3.0,90.000035,0.000000,0.000000 -7635,-3.0,90.000035,0.000000,0.000000 -7636,-3.0,90.000035,0.000000,0.000000 -7637,-3.0,90.000035,0.000000,0.000000 -7638,-3.0,90.000035,0.000000,0.000000 -7639,-3.0,90.000035,0.000000,0.000000 -7640,-3.0,90.000035,0.000000,0.000000 -7641,-3.0,90.000035,0.000000,0.000000 -7642,-3.0,90.000035,0.000000,0.000000 -7643,-3.0,90.000035,0.000000,0.000000 -7644,-3.0,90.000035,0.000000,0.000000 -7645,-3.0,90.000035,0.000000,0.000000 -7646,-3.0,90.000035,0.000000,0.000000 -7647,-3.0,90.000035,0.000000,0.000000 -7648,-3.0,90.000035,0.000000,0.000000 -7649,-3.0,90.000035,0.000000,0.000000 -7650,-3.0,90.000035,0.000000,0.000000 -7651,-3.0,90.000035,0.000000,0.000000 -7652,-3.0,90.000035,0.000000,0.000000 -7653,-3.0,90.000035,0.000000,0.000000 -7654,-3.0,90.000035,0.000000,0.000000 -7655,-3.0,90.000035,0.000000,0.000000 -7656,-3.0,90.000035,0.000000,0.000000 -7657,-3.0,90.000035,0.000000,0.000000 -7658,-3.0,90.000035,0.000000,0.000000 -7659,-3.0,90.000035,0.000000,0.000000 -7660,-3.0,90.000035,0.000000,0.000000 -7661,-3.0,90.000035,0.000000,0.000000 -7662,-3.0,90.000035,0.000000,0.000000 -7663,-3.0,90.000035,0.000000,0.000000 -7664,-3.0,90.000035,0.000000,0.000000 -7665,-3.0,90.000035,0.000000,0.000000 -7666,-3.0,90.000035,0.000000,0.000000 -7667,-3.0,90.000035,0.000000,0.000000 -7668,-3.0,90.000035,0.000000,0.000000 -7669,-3.0,90.000035,0.000000,0.000000 -7670,-3.0,90.000035,0.000000,0.000000 -7671,-3.0,90.000035,0.000000,0.000000 -7672,-3.0,90.000035,0.000000,0.000000 -7673,-3.0,90.000035,0.000000,0.000000 -7674,-3.0,90.000035,0.000000,0.000000 -7675,-3.0,90.000035,0.000000,0.000000 -7676,-3.0,90.000035,0.000000,0.000000 -7677,-3.0,90.000035,0.000000,0.000000 -7678,-3.0,90.000035,0.000000,0.000000 -7679,-3.0,90.000035,0.000000,0.000000 -7680,-3.0,90.000035,0.000000,0.000000 -7681,-3.0,90.000035,0.000000,0.000000 -7682,-3.0,90.000035,0.000000,0.000000 -7683,-3.0,90.000035,0.000000,0.000000 -7684,-3.0,90.000035,0.000000,0.000000 -7685,-3.0,90.000035,0.000000,0.000000 -7686,-3.0,90.000035,0.000000,0.000000 -7687,-3.0,90.000035,0.000000,0.000000 -7688,-3.0,90.000035,0.000000,0.000000 -7689,-3.0,90.000035,0.000000,0.000000 -7690,-3.0,90.000035,0.000000,0.000000 -7691,-3.0,90.000035,0.000000,0.000000 -7692,-3.0,90.000035,0.000000,0.000000 -7693,-3.0,90.000035,0.000000,0.000000 -7694,-3.0,90.000035,0.000000,0.000000 -7695,-3.0,90.000035,0.000000,0.000000 -7696,-3.0,90.000035,0.000000,0.000000 -7697,-3.0,90.000035,0.000000,0.000000 -7698,-3.0,90.000035,0.000000,0.000000 -7699,-3.0,90.000035,0.000000,0.000000 -7700,-3.0,90.000035,0.000000,0.000000 -7701,-3.0,90.000035,0.000000,0.000000 -7702,-3.0,90.000035,0.000000,0.000000 -7703,-3.0,90.000035,0.000000,0.000000 -7704,-3.0,90.000035,0.000000,0.000000 -7705,-3.0,90.000035,0.000000,0.000000 -7706,-3.0,90.000035,0.000000,0.000000 -7707,-3.0,90.000035,0.000000,0.000000 -7708,-3.0,90.000035,0.000000,0.000000 -7709,-3.0,90.000035,0.000000,0.000000 -7710,-3.0,90.000035,0.000000,0.000000 -7711,-3.0,90.000035,0.000000,0.000000 -7712,-3.0,90.000035,0.000000,0.000000 -7713,-3.0,90.000035,0.000000,0.000000 -7714,-3.0,90.000035,0.000000,0.000000 -7715,-3.0,90.000035,0.000000,0.000000 -7716,-3.0,90.000035,0.000000,0.000000 -7717,-3.0,90.000035,0.000000,0.000000 -7718,-3.0,90.000035,0.000000,0.000000 -7719,-3.0,90.000035,0.000000,0.000000 -7720,-3.0,90.000035,0.000000,0.000000 -7721,-3.0,90.000035,0.000000,0.000000 -7722,-3.0,90.000035,0.000000,0.000000 -7723,-3.0,90.000035,0.000000,0.000000 -7724,-3.0,90.000035,0.000000,0.000000 -7725,-3.0,90.000035,0.000000,0.000000 -7726,-3.0,90.000035,0.000000,0.000000 -7727,-3.0,90.000035,0.000000,0.000000 -7728,-3.0,90.000035,0.000000,0.000000 -7729,-3.0,90.000035,0.000000,0.000000 -7730,-3.0,90.000035,0.000000,0.000000 -7731,-3.0,90.000035,0.000000,0.000000 -7732,-3.0,90.000035,0.000000,0.000000 -7733,-3.0,90.000035,0.000000,0.000000 -7734,-3.0,90.000035,0.000000,0.000000 -7735,-3.0,90.000035,0.000000,0.000000 -7736,-3.0,90.000035,0.000000,0.000000 -7737,-3.0,90.000035,0.000000,0.000000 -7738,-3.0,90.000035,0.000000,0.000000 -7739,-3.0,90.000035,0.000000,0.000000 -7740,-3.0,90.000035,0.000000,0.000000 -7741,-3.0,90.000035,0.000000,0.000000 -7742,-3.0,90.000035,0.000000,0.000000 -7743,-3.0,90.000035,0.000000,0.000000 -7744,-3.0,90.000035,0.000000,0.000000 -7745,-3.0,90.000035,0.000000,0.000000 -7746,-3.0,90.000035,0.000000,0.000000 -7747,-3.0,90.000035,0.000000,0.000000 -7748,-3.0,90.000035,0.000000,0.000000 -7749,-3.0,90.000035,0.000000,0.000000 -7750,-3.0,90.000035,0.000000,0.000000 -7751,-3.0,90.000035,0.000000,0.000000 -7752,-3.0,90.000035,0.000000,0.000000 -7753,-3.0,90.000035,0.000000,0.000000 -7754,-3.0,90.000035,0.000000,0.000000 -7755,-3.0,90.000035,0.000000,0.000000 -7756,-3.0,90.000035,0.000000,0.000000 -7757,-3.0,90.000035,0.000000,0.000000 -7758,-3.0,90.000035,0.000000,0.000000 -7759,-3.0,90.000035,0.000000,0.000000 -7760,-3.0,90.000035,0.000000,0.000000 -7761,-3.0,90.000035,0.000000,0.000000 -7762,-3.0,90.000035,0.000000,0.000000 -7763,-3.0,90.000035,0.000000,0.000000 -7764,-3.0,90.000035,0.000000,0.000000 -7765,-3.0,90.000035,0.000000,0.000000 -7766,-3.0,90.000035,0.000000,0.000000 -7767,-3.0,90.000035,0.000000,0.000000 -7768,-3.0,90.000035,0.000000,0.000000 -7769,-3.0,90.000035,0.000000,0.000000 -7770,-3.0,90.000035,0.000000,0.000000 -7771,-3.0,90.000035,0.000000,0.000000 -7772,-3.0,90.000035,0.000000,0.000000 -7773,-3.0,90.000035,0.000000,0.000000 -7774,-3.0,90.000035,0.000000,0.000000 -7775,-3.0,90.000035,0.000000,0.000000 -7776,-3.0,90.000035,0.000000,0.000000 -7777,-3.0,90.000035,0.000000,0.000000 -7778,-3.0,90.000035,0.000000,0.000000 -7779,-3.0,90.000035,0.000000,0.000000 -7780,-3.0,90.000035,0.000000,0.000000 -7781,-3.0,90.000035,0.000000,0.000000 -7782,-3.0,90.000035,0.000000,0.000000 -7783,-3.0,90.000035,0.000000,0.000000 -7784,-3.0,90.000035,0.000000,0.000000 -7785,-3.0,90.000035,0.000000,0.000000 -7786,-3.0,90.000035,0.000000,0.000000 -7787,-3.0,90.000035,0.000000,0.000000 -7788,-3.0,90.000035,0.000000,0.000000 -7789,-3.0,90.000035,0.000000,0.000000 -7790,-3.0,90.000035,0.000000,0.000000 -7791,-3.0,90.000035,0.000000,0.000000 -7792,-3.0,90.000035,0.000000,0.000000 -7793,-3.0,90.000035,0.000000,0.000000 -7794,-3.0,90.000035,0.000000,0.000000 -7795,-3.0,90.000035,0.000000,0.000000 -7796,-3.0,90.000035,0.000000,0.000000 -7797,-3.0,90.000035,0.000000,0.000000 -7798,-3.0,90.000035,0.000000,0.000000 -7799,-3.0,90.000035,0.000000,0.000000 -7800,-3.0,90.000035,0.000000,0.000000 -7801,-3.0,90.000035,0.000000,0.000000 -7802,-3.0,90.000035,0.000000,0.000000 -7803,-3.0,90.000035,0.000000,0.000000 -7804,-3.0,90.000035,0.000000,0.000000 -7805,-3.0,90.000035,0.000000,0.000000 -7806,-3.0,90.000035,0.000000,0.000000 -7807,-3.0,90.000035,0.000000,0.000000 -7808,-3.0,90.000035,0.000000,0.000000 -7809,-3.0,90.000035,0.000000,0.000000 -7810,-3.0,90.000035,0.000000,0.000000 -7811,-3.0,90.000035,0.000000,0.000000 -7812,-3.0,90.000035,0.000000,0.000000 -7813,-3.0,90.000035,0.000000,0.000000 -7814,-3.0,90.000035,0.000000,0.000000 -7815,-3.0,90.000035,0.000000,0.000000 -7816,-3.0,90.000035,0.000000,0.000000 -7817,-3.0,90.000035,0.000000,0.000000 -7818,-3.0,90.000035,0.000000,0.000000 -7819,-3.0,90.000035,0.000000,0.000000 -7820,-3.0,90.000035,0.000000,0.000000 -7821,-3.0,90.000035,0.000000,0.000000 -7822,-3.0,90.000035,0.000000,0.000000 -7823,-3.0,90.000035,0.000000,0.000000 -7824,-3.0,90.000035,0.000000,0.000000 -7825,-3.0,90.000035,0.000000,0.000000 -7826,-3.0,90.000035,0.000000,0.000000 -7827,-3.0,90.000035,0.000000,0.000000 -7828,-3.0,90.000035,0.000000,0.000000 -7829,-3.0,90.000035,0.000000,0.000000 -7830,-3.0,90.000035,0.000000,0.000000 -7831,-3.0,90.000035,0.000000,0.000000 -7832,-3.0,90.000035,0.000000,0.000000 -7833,-3.0,90.000035,0.000000,0.000000 -7834,-3.0,90.000035,0.000000,0.000000 -7835,-3.0,90.000035,0.000000,0.000000 -7836,-3.0,90.000035,0.000000,0.000000 -7837,-3.0,90.000035,0.000000,0.000000 -7838,-3.0,90.000035,0.000000,0.000000 -7839,-3.0,90.000035,0.000000,0.000000 -7840,-3.0,90.000035,0.000000,0.000000 -7841,-3.0,90.000035,0.000000,0.000000 -7842,-3.0,90.000035,0.000000,0.000000 -7843,-3.0,90.000035,0.000000,0.000000 -7844,-3.0,90.000035,0.000000,0.000000 -7845,-3.0,90.000035,0.000000,0.000000 -7846,-3.0,90.000035,0.000000,0.000000 -7847,-3.0,90.000035,0.000000,0.000000 -7848,-3.0,90.000035,0.000000,0.000000 -7849,-3.0,90.000035,0.000000,0.000000 -7850,-3.0,90.000035,0.000000,0.000000 -7851,-3.0,90.000035,0.000000,0.000000 -7852,-3.0,90.000035,0.000000,0.000000 -7853,-3.0,90.000035,0.000000,0.000000 -7854,-3.0,90.000035,0.000000,0.000000 -7855,-3.0,90.000035,0.000000,0.000000 -7856,-3.0,90.000035,0.000000,0.000000 -7857,-3.0,90.000035,0.000000,0.000000 -7858,-3.0,90.000035,0.000000,0.000000 -7859,-3.0,90.000035,0.000000,0.000000 -7860,-3.0,90.000035,0.000000,0.000000 -7861,-3.0,90.000035,0.000000,0.000000 -7862,-3.0,90.000035,0.000000,0.000000 -7863,-3.0,90.000035,0.000000,0.000000 -7864,-3.0,90.000035,0.000000,0.000000 -7865,-3.0,90.000035,0.000000,0.000000 -7866,-3.0,90.000035,0.000000,0.000000 -7867,-3.0,90.000035,0.000000,0.000000 -7868,-3.0,90.000035,0.000000,0.000000 -7869,-3.0,90.000035,0.000000,0.000000 -7870,-3.0,90.000035,0.000000,0.000000 -7871,-3.0,90.000035,0.000000,0.000000 -7872,-3.0,90.000035,0.000000,0.000000 -7873,-3.0,90.000035,0.000000,0.000000 -7874,-3.0,90.000035,0.000000,0.000000 -7875,-3.0,90.000035,0.000000,0.000000 -7876,-3.0,90.000035,0.000000,0.000000 -7877,-3.0,90.000035,0.000000,0.000000 -7878,-3.0,90.000035,0.000000,0.000000 -7879,-3.0,90.000035,0.000000,0.000000 -7880,-3.0,90.000035,0.000000,0.000000 -7881,-3.0,90.000035,0.000000,0.000000 -7882,-3.0,90.000035,0.000000,0.000000 -7883,-3.0,90.000035,0.000000,0.000000 -7884,-3.0,90.000035,0.000000,0.000000 -7885,-3.0,90.000035,0.000000,0.000000 -7886,-3.0,90.000035,0.000000,0.000000 -7887,-3.0,90.000035,0.000000,0.000000 -7888,-3.0,90.000035,0.000000,0.000000 -7889,-3.0,90.000035,0.000000,0.000000 -7890,-3.0,90.000035,0.000000,0.000000 -7891,-3.0,90.000035,0.000000,0.000000 -7892,-3.0,90.000035,0.000000,0.000000 -7893,-3.0,90.000035,0.000000,0.000000 -7894,-3.0,90.000035,0.000000,0.000000 -7895,-3.0,90.000035,0.000000,0.000000 -7896,-3.0,90.000035,0.000000,0.000000 -7897,-3.0,90.000035,0.000000,0.000000 -7898,-3.0,90.000035,0.000000,0.000000 -7899,-3.0,90.000035,0.000000,0.000000 -7900,-3.0,90.000035,0.000000,0.000000 -7901,-3.0,90.000035,0.000000,0.000000 -7902,-3.0,90.000035,0.000000,0.000000 -7903,-3.0,90.000035,0.000000,0.000000 -7904,-3.0,90.000035,0.000000,0.000000 -7905,-3.0,90.000035,0.000000,0.000000 -7906,-3.0,90.000035,0.000000,0.000000 -7907,-3.0,90.000035,0.000000,0.000000 -7908,-3.0,90.000035,0.000000,0.000000 -7909,-3.0,90.000035,0.000000,0.000000 -7910,-3.0,90.000035,0.000000,0.000000 -7911,-3.0,90.000035,0.000000,0.000000 -7912,-3.0,90.000035,0.000000,0.000000 -7913,-3.0,90.000035,0.000000,0.000000 -7914,-3.0,90.000035,0.000000,0.000000 -7915,-3.0,90.000035,0.000000,0.000000 -7916,-3.0,90.000035,0.000000,0.000000 -7917,-3.0,90.000035,0.000000,0.000000 -7918,-3.0,90.000035,0.000000,0.000000 -7919,-3.0,90.000035,0.000000,0.000000 -7920,-3.0,90.000035,0.000000,0.000000 -7921,-3.0,90.000035,0.000000,0.000000 -7922,-3.0,90.000035,0.000000,0.000000 -7923,-3.0,90.000035,0.000000,0.000000 -7924,-3.0,90.000035,0.000000,0.000000 -7925,-3.0,90.000035,0.000000,0.000000 -7926,-3.0,90.000035,0.000000,0.000000 -7927,-3.0,90.000035,0.000000,0.000000 -7928,-3.0,90.000035,0.000000,0.000000 -7929,-3.0,90.000035,0.000000,0.000000 -7930,-3.0,90.000035,0.000000,0.000000 -7931,-3.0,90.000035,0.000000,0.000000 -7932,-3.0,90.000035,0.000000,0.000000 -7933,-3.0,90.000035,0.000000,0.000000 -7934,-3.0,90.000035,0.000000,0.000000 -7935,-3.0,90.000035,0.000000,0.000000 -7936,-3.0,90.000035,0.000000,0.000000 -7937,-3.0,90.000035,0.000000,0.000000 -7938,-3.0,90.000035,0.000000,0.000000 -7939,-3.0,90.000035,0.000000,0.000000 -7940,-3.0,90.000035,0.000000,0.000000 -7941,-3.0,90.000035,0.000000,0.000000 -7942,-3.0,90.000035,0.000000,0.000000 -7943,-3.0,90.000035,0.000000,0.000000 -7944,-3.0,90.000035,0.000000,0.000000 -7945,-3.0,90.000035,0.000000,0.000000 -7946,-3.0,90.000035,0.000000,0.000000 -7947,-3.0,90.000035,0.000000,0.000000 -7948,-3.0,90.000035,0.000000,0.000000 -7949,-3.0,90.000035,0.000000,0.000000 -7950,-3.0,90.000035,0.000000,0.000000 -7951,-3.0,90.000035,0.000000,0.000000 -7952,-3.0,90.000035,0.000000,0.000000 -7953,-3.0,90.000035,0.000000,0.000000 -7954,-3.0,90.000035,0.000000,0.000000 -7955,-3.0,90.000035,0.000000,0.000000 -7956,-3.0,90.000035,0.000000,0.000000 -7957,-3.0,90.000035,0.000000,0.000000 -7958,-3.0,90.000035,0.000000,0.000000 -7959,-3.0,90.000035,0.000000,0.000000 -7960,-3.0,90.000035,0.000000,0.000000 -7961,-3.0,90.000035,0.000000,0.000000 -7962,-3.0,90.000035,0.000000,0.000000 -7963,-3.0,90.000035,0.000000,0.000000 -7964,-3.0,90.000035,0.000000,0.000000 -7965,-3.0,90.000035,0.000000,0.000000 -7966,-3.0,90.000035,0.000000,0.000000 -7967,-3.0,90.000035,0.000000,0.000000 -7968,-3.0,90.000035,0.000000,0.000000 -7969,-3.0,90.000035,0.000000,0.000000 -7970,-3.0,90.000035,0.000000,0.000000 -7971,-3.0,90.000035,0.000000,0.000000 -7972,-3.0,90.000035,0.000000,0.000000 -7973,-3.0,90.000035,0.000000,0.000000 -7974,-3.0,90.000035,0.000000,0.000000 -7975,-3.0,90.000035,0.000000,0.000000 -7976,-3.0,90.000035,0.000000,0.000000 -7977,-3.0,90.000035,0.000000,0.000000 -7978,-3.0,90.000035,0.000000,0.000000 -7979,-3.0,90.000035,0.000000,0.000000 -7980,-3.0,90.000035,0.000000,0.000000 -7981,-3.0,90.000035,0.000000,0.000000 -7982,-3.0,90.000035,0.000000,0.000000 -7983,-3.0,90.000035,0.000000,0.000000 -7984,-3.0,90.000035,0.000000,0.000000 -7985,-3.0,90.000035,0.000000,0.000000 -7986,-3.0,90.000035,0.000000,0.000000 -7987,-3.0,90.000035,0.000000,0.000000 -7988,-3.0,90.000035,0.000000,0.000000 -7989,-3.0,90.000035,0.000000,0.000000 -7990,-3.0,90.000035,0.000000,0.000000 -7991,-3.0,90.000035,0.000000,0.000000 -7992,-3.0,90.000035,0.000000,0.000000 -7993,-3.0,90.000035,0.000000,0.000000 -7994,-3.0,90.000035,0.000000,0.000000 -7995,-3.0,90.000035,0.000000,0.000000 -7996,-3.0,90.000035,0.000000,0.000000 -7997,-3.0,90.000035,0.000000,0.000000 -7998,-3.0,90.000035,0.000000,0.000000 -7999,-3.0,90.000035,0.000000,0.000000 -8000,-3.0,90.000035,0.000000,0.000000 -8001,-3.0,90.000035,0.000000,0.000000 -8002,-3.0,90.000035,0.000000,0.000000 -8003,-3.0,90.000035,0.000000,0.000000 -8004,-3.0,90.000035,0.000000,0.000000 -8005,-3.0,90.000035,0.000000,0.000000 -8006,-3.0,90.000035,0.000000,0.000000 -8007,-3.0,90.000035,0.000000,0.000000 -8008,-3.0,90.000035,0.000000,0.000000 -8009,-3.0,90.000035,0.000000,0.000000 -8010,-3.0,90.000035,0.000000,0.000000 -8011,-3.0,90.000035,0.000000,0.000000 -8012,-3.0,90.000035,0.000000,0.000000 -8013,-3.0,90.000035,0.000000,0.000000 -8014,-3.0,90.000035,0.000000,0.000000 -8015,-3.0,90.000035,0.000000,0.000000 -8016,-3.0,90.000035,0.000000,0.000000 -8017,-3.0,90.000035,0.000000,0.000000 -8018,-3.0,90.000035,0.000000,0.000000 -8019,-3.0,90.000035,0.000000,0.000000 -8020,-3.0,90.000035,0.000000,0.000000 -8021,-3.0,90.000035,0.000000,0.000000 -8022,-3.0,90.000035,0.000000,0.000000 -8023,-3.0,90.000035,0.000000,0.000000 -8024,-3.0,90.000035,0.000000,0.000000 -8025,-3.0,90.000035,0.000000,0.000000 -8026,-3.0,90.000035,0.000000,0.000000 -8027,-3.0,90.000035,0.000000,0.000000 -8028,-3.0,90.000035,0.000000,0.000000 -8029,-3.0,90.000035,0.000000,0.000000 -8030,-3.0,90.000035,0.000000,0.000000 -8031,-3.0,90.000035,0.000000,0.000000 -8032,-3.0,90.000035,0.000000,0.000000 -8033,-3.0,90.000035,0.000000,0.000000 -8034,-3.0,90.000035,0.000000,0.000000 -8035,-3.0,90.000035,0.000000,0.000000 -8036,-3.0,90.000035,0.000000,0.000000 -8037,-3.0,90.000035,0.000000,0.000000 -8038,-3.0,90.000035,0.000000,0.000000 -8039,-3.0,90.000035,0.000000,0.000000 -8040,-3.0,90.000035,0.000000,0.000000 -8041,-3.0,90.000035,0.000000,0.000000 -8042,-3.0,90.000035,0.000000,0.000000 -8043,-3.0,90.000035,0.000000,0.000000 -8044,-3.0,90.000035,0.000000,0.000000 -8045,-3.0,90.000035,0.000000,0.000000 -8046,-3.0,90.000035,0.000000,0.000000 -8047,-3.0,90.000035,0.000000,0.000000 -8048,-3.0,90.000035,0.000000,0.000000 -8049,-3.0,90.000035,0.000000,0.000000 -8050,-3.0,90.000035,0.000000,0.000000 -8051,-3.0,90.000035,0.000000,0.000000 -8052,-3.0,90.000035,0.000000,0.000000 -8053,-3.0,90.000035,0.000000,0.000000 -8054,-3.0,90.000035,0.000000,0.000000 -8055,-3.0,90.000035,0.000000,0.000000 -8056,-3.0,90.000035,0.000000,0.000000 -8057,-3.0,90.000035,0.000000,0.000000 -8058,-3.0,90.000035,0.000000,0.000000 -8059,-3.0,90.000035,0.000000,0.000000 -8060,-3.0,90.000035,0.000000,0.000000 -8061,-3.0,90.000035,0.000000,0.000000 -8062,-3.0,90.000035,0.000000,0.000000 -8063,-3.0,90.000035,0.000000,0.000000 -8064,-3.0,90.000035,0.000000,0.000000 -8065,-3.0,90.000035,0.000000,0.000000 -8066,-3.0,90.000035,0.000000,0.000000 -8067,-3.0,90.000035,0.000000,0.000000 -8068,-3.0,90.000035,0.000000,0.000000 -8069,-3.0,90.000035,0.000000,0.000000 -8070,-3.0,90.000035,0.000000,0.000000 -8071,-3.0,90.000035,0.000000,0.000000 -8072,-3.0,90.000035,0.000000,0.000000 -8073,-3.0,90.000035,0.000000,0.000000 -8074,-3.0,90.000035,0.000000,0.000000 -8075,-3.0,90.000035,0.000000,0.000000 -8076,-3.0,90.000035,0.000000,0.000000 -8077,-3.0,90.000035,0.000000,0.000000 -8078,-3.0,90.000035,0.000000,0.000000 -8079,-3.0,90.000035,0.000000,0.000000 -8080,-3.0,90.000035,0.000000,0.000000 -8081,-3.0,90.000035,0.000000,0.000000 -8082,-3.0,90.000035,0.000000,0.000000 -8083,-3.0,90.000035,0.000000,0.000000 -8084,-3.0,90.000035,0.000000,0.000000 -8085,-3.0,90.000035,0.000000,0.000000 -8086,-3.0,90.000035,0.000000,0.000000 -8087,-3.0,90.000035,0.000000,0.000000 -8088,-3.0,90.000035,0.000000,0.000000 -8089,-3.0,90.000035,0.000000,0.000000 -8090,-3.0,90.000035,0.000000,0.000000 -8091,-3.0,90.000035,0.000000,0.000000 -8092,-3.0,90.000035,0.000000,0.000000 -8093,-3.0,90.000035,0.000000,0.000000 -8094,-3.0,90.000035,0.000000,0.000000 -8095,-3.0,90.000035,0.000000,0.000000 -8096,-3.0,90.000035,0.000000,0.000000 -8097,-3.0,90.000035,0.000000,0.000000 -8098,-3.0,90.000035,0.000000,0.000000 -8099,-3.0,90.000035,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.000033,0.000000,0.000000 +-3.0,10.266693,0.000000,0.000000 +-3.0,10.533298,0.000000,0.000000 +-3.0,10.799964,0.000000,0.000000 +-3.0,11.066683,0.000000,0.000000 +-3.0,11.333351,0.000000,0.000000 +-3.0,11.599969,0.000000,0.000000 +-3.0,11.866644,0.000000,0.000000 +-3.0,12.133388,0.000000,0.000000 +-3.0,12.399959,0.000000,0.000000 +-3.0,12.666719,0.000000,0.000000 +-3.0,12.933321,0.000000,0.000000 +-3.0,13.199985,0.000000,0.000000 +-3.0,13.466728,0.000000,0.000000 +-3.0,13.733303,0.000000,0.000000 +-3.0,13.999958,0.000000,0.000000 +-3.0,14.266695,0.000000,0.000000 +-3.0,14.533386,0.000000,0.000000 +-3.0,14.800045,0.000000,0.000000 +-3.0,15.066674,0.000000,0.000000 +-3.0,15.333377,0.000000,0.000000 +-3.0,15.600053,0.000000,0.000000 +-3.0,15.866688,0.000000,0.000000 +-3.0,16.133298,0.000000,0.000000 +-3.0,16.400004,0.000000,0.000000 +-3.0,16.666689,0.000000,0.000000 +-3.0,16.933338,0.000000,0.000000 +-3.0,17.199953,0.000000,0.000000 +-3.0,17.466686,0.000000,0.000000 +-3.0,17.733387,0.000000,0.000000 +-3.0,17.999939,0.000000,0.000000 +-3.0,18.266614,0.000000,0.000000 +-3.0,18.533381,0.000000,0.000000 +-3.0,18.800002,0.000000,0.000000 +-3.0,19.066614,0.000000,0.000000 +-3.0,19.333340,0.000000,0.000000 +-3.0,19.599942,0.000000,0.000000 +-3.0,19.866642,0.000000,0.000000 +-3.0,20.133340,0.000000,0.000000 +-3.0,20.400039,0.000000,0.000000 +-3.0,20.666719,0.000000,0.000000 +-3.0,20.933283,0.000000,0.000000 +-3.0,21.199951,0.000000,0.000000 +-3.0,21.466645,0.000000,0.000000 +-3.0,21.733326,0.000000,0.000000 +-3.0,21.999997,0.000000,0.000000 +-3.0,22.266677,0.000000,0.000000 +-3.0,22.533370,0.000000,0.000000 +-3.0,22.799955,0.000000,0.000000 +-3.0,23.066676,0.000000,0.000000 +-3.0,23.333393,0.000000,0.000000 +-3.0,23.599985,0.000000,0.000000 +-3.0,23.866618,0.000000,0.000000 +-3.0,24.133372,0.000000,0.000000 +-3.0,24.400027,0.000000,0.000000 +-3.0,24.666684,0.000000,0.000000 +-3.0,24.933389,0.000000,0.000000 +-3.0,25.199976,0.000000,0.000000 +-3.0,25.466691,0.000000,0.000000 +-3.0,25.733337,0.000000,0.000000 +-3.0,25.999992,0.000000,0.000000 +-3.0,26.266680,0.000000,0.000000 +-3.0,26.533402,0.000000,0.000000 +-3.0,26.800015,0.000000,0.000000 +-3.0,27.066665,0.000000,0.000000 +-3.0,27.333354,0.000000,0.000000 +-3.0,27.599937,0.000000,0.000000 +-3.0,27.866709,0.000000,0.000000 +-3.0,28.133378,0.000000,0.000000 +-3.0,28.399943,0.000000,0.000000 +-3.0,28.666705,0.000000,0.000000 +-3.0,28.933365,0.000000,0.000000 +-3.0,29.199951,0.000000,0.000000 +-3.0,29.466713,0.000000,0.000000 +-3.0,29.733404,0.000000,0.000000 +-3.0,29.999999,0.000000,0.000000 +-3.0,30.266650,0.000000,0.000000 +-3.0,30.533358,0.000000,0.000000 +-3.0,30.799975,0.000000,0.000000 +-3.0,31.066678,0.000000,0.000000 +-3.0,31.333291,0.000000,0.000000 +-3.0,31.599969,0.000000,0.000000 +-3.0,31.866712,0.000000,0.000000 +-3.0,32.133369,0.000000,0.000000 +-3.0,32.399995,0.000000,0.000000 +-3.0,32.666664,0.000000,0.000000 +-3.0,32.933278,0.000000,0.000000 +-3.0,33.199965,0.000000,0.000000 +-3.0,33.466700,0.000000,0.000000 +-3.0,33.733283,0.000000,0.000000 +-3.0,34.000045,0.000000,0.000000 +-3.0,34.266630,0.000000,0.000000 +-3.0,34.533296,0.000000,0.000000 +-3.0,34.800018,0.000000,0.000000 +-3.0,35.066723,0.000000,0.000000 +-3.0,35.333357,0.000000,0.000000 +-3.0,35.599949,0.000000,0.000000 +-3.0,35.866631,0.000000,0.000000 +-3.0,36.133274,0.000000,0.000000 +-3.0,36.400009,0.000000,0.000000 +-3.0,36.666709,0.000000,0.000000 +-3.0,36.933345,0.000000,0.000000 +-3.0,37.199948,0.000000,0.000000 +-3.0,37.466678,0.000000,0.000000 +-3.0,37.733350,0.000000,0.000000 +-3.0,37.999992,0.000000,0.000000 +-3.0,38.266709,0.000000,0.000000 +-3.0,38.533297,0.000000,0.000000 +-3.0,38.799993,0.000000,0.000000 +-3.0,39.066635,0.000000,0.000000 +-3.0,39.333285,0.000000,0.000000 +-3.0,39.600017,0.000000,0.000000 +-3.0,39.866731,0.000000,0.000000 +-3.0,40.133294,0.000000,0.000000 +-3.0,40.399973,0.000000,0.000000 +-3.0,40.666637,0.000000,0.000000 +-3.0,40.933288,0.000000,0.000000 +-3.0,41.200061,0.000000,0.000000 +-3.0,41.466659,0.000000,0.000000 +-3.0,41.733278,0.000000,0.000000 +-3.0,41.999994,0.000000,0.000000 +-3.0,42.266733,0.000000,0.000000 +-3.0,42.533303,0.000000,0.000000 +-3.0,42.800035,0.000000,0.000000 +-3.0,43.066599,0.000000,0.000000 +-3.0,43.333328,0.000000,0.000000 +-3.0,43.600028,0.000000,0.000000 +-3.0,43.866730,0.000000,0.000000 +-3.0,44.133300,0.000000,0.000000 +-3.0,44.400042,0.000000,0.000000 +-3.0,44.666624,0.000000,0.000000 +-3.0,44.933350,0.000000,0.000000 +-3.0,45.199949,0.000000,0.000000 +-3.0,45.466696,0.000000,0.000000 +-3.0,45.733350,0.000000,0.000000 +-3.0,45.999987,0.000000,0.000000 +-3.0,46.266639,0.000000,0.000000 +-3.0,46.533308,0.000000,0.000000 +-3.0,46.800027,0.000000,0.000000 +-3.0,47.066734,0.000000,0.000000 +-3.0,47.333325,0.000000,0.000000 +-3.0,47.599969,0.000000,0.000000 +-3.0,47.866607,0.000000,0.000000 +-3.0,48.133301,0.000000,0.000000 +-3.0,48.399992,0.000000,0.000000 +-3.0,48.666742,0.000000,0.000000 +-3.0,48.933353,0.000000,0.000000 +-3.0,49.200026,0.000000,0.000000 +-3.0,49.466732,0.000000,0.000000 +-3.0,49.733333,0.000000,0.000000 +-3.0,49.999970,0.000000,0.000000 +-3.0,50.266644,0.000000,0.000000 +-3.0,50.533358,0.000000,0.000000 +-3.0,50.799972,0.000000,0.000000 +-3.0,51.066659,0.000000,0.000000 +-3.0,51.333359,0.000000,0.000000 +-3.0,51.599993,0.000000,0.000000 +-3.0,51.866674,0.000000,0.000000 +-3.0,52.133373,0.000000,0.000000 +-3.0,52.400010,0.000000,0.000000 +-3.0,52.666729,0.000000,0.000000 +-3.0,52.933327,0.000000,0.000000 +-3.0,53.199980,0.000000,0.000000 +-3.0,53.466720,0.000000,0.000000 +-3.0,53.733374,0.000000,0.000000 +-3.0,53.999942,0.000000,0.000000 +-3.0,54.266716,0.000000,0.000000 +-3.0,54.533264,0.000000,0.000000 +-3.0,54.800019,0.000000,0.000000 +-3.0,55.066727,0.000000,0.000000 +-3.0,55.333356,0.000000,0.000000 +-3.0,55.600053,0.000000,0.000000 +-3.0,55.866675,0.000000,0.000000 +-3.0,56.133399,0.000000,0.000000 +-3.0,56.400021,0.000000,0.000000 +-3.0,56.666601,0.000000,0.000000 +-3.0,56.933287,0.000000,0.000000 +-3.0,57.200022,0.000000,0.000000 +-3.0,57.466719,0.000000,0.000000 +-3.0,57.733350,0.000000,0.000000 +-3.0,58.000065,0.000000,0.000000 +-3.0,58.266716,0.000000,0.000000 +-3.0,58.533335,0.000000,0.000000 +-3.0,58.800042,0.000000,0.000000 +-3.0,59.066690,0.000000,0.000000 +-3.0,59.333310,0.000000,0.000000 +-3.0,59.599993,0.000000,0.000000 +-3.0,59.866679,0.000000,0.000000 +-3.0,60.133283,0.000000,0.000000 +-3.0,60.400014,0.000000,0.000000 +-3.0,60.666694,0.000000,0.000000 +-3.0,60.933325,0.000000,0.000000 +-3.0,61.199937,0.000000,0.000000 +-3.0,61.466653,0.000000,0.000000 +-3.0,61.733352,0.000000,0.000000 +-3.0,61.999980,0.000000,0.000000 +-3.0,62.266595,0.000000,0.000000 +-3.0,62.533347,0.000000,0.000000 +-3.0,62.800061,0.000000,0.000000 +-3.0,63.066738,0.000000,0.000000 +-3.0,63.333406,0.000000,0.000000 +-3.0,63.600039,0.000000,0.000000 +-3.0,63.866640,0.000000,0.000000 +-3.0,64.133388,0.000000,0.000000 +-3.0,64.399954,0.000000,0.000000 +-3.0,64.666670,0.000000,0.000000 +-3.0,64.933359,0.000000,0.000000 +-3.0,65.200023,0.000000,0.000000 +-3.0,65.466688,0.000000,0.000000 +-3.0,65.733358,0.000000,0.000000 +-3.0,66.000006,0.000000,0.000000 +-3.0,66.266634,0.000000,0.000000 +-3.0,66.533270,0.000000,0.000000 +-3.0,66.800043,0.000000,0.000000 +-3.0,67.066673,0.000000,0.000000 +-3.0,67.333289,0.000000,0.000000 +-3.0,67.600048,0.000000,0.000000 +-3.0,67.866691,0.000000,0.000000 +-3.0,68.133301,0.000000,0.000000 +-3.0,68.399952,0.000000,0.000000 +-3.0,68.666728,0.000000,0.000000 +-3.0,68.933392,0.000000,0.000000 +-3.0,69.200031,0.000000,0.000000 +-3.0,69.466715,0.000000,0.000000 +-3.0,69.733400,0.000000,0.000000 +-3.0,69.999931,0.000000,0.000000 +-3.0,70.266644,0.000000,0.000000 +-3.0,70.533385,0.000000,0.000000 +-3.0,70.799978,0.000000,0.000000 +-3.0,71.066600,0.000000,0.000000 +-3.0,71.333389,0.000000,0.000000 +-3.0,71.600055,0.000000,0.000000 +-3.0,71.866734,0.000000,0.000000 +-3.0,72.133314,0.000000,0.000000 +-3.0,72.400046,0.000000,0.000000 +-3.0,72.666680,0.000000,0.000000 +-3.0,72.933334,0.000000,0.000000 +-3.0,73.200010,0.000000,0.000000 +-3.0,73.466749,0.000000,0.000000 +-3.0,73.733355,0.000000,0.000000 +-3.0,74.000006,0.000000,0.000000 +-3.0,74.266685,0.000000,0.000000 +-3.0,74.533413,0.000000,0.000000 +-3.0,74.800032,0.000000,0.000000 +-3.0,75.066685,0.000000,0.000000 +-3.0,75.333390,0.000000,0.000000 +-3.0,75.599991,0.000000,0.000000 +-3.0,75.866648,0.000000,0.000000 +-3.0,76.133343,0.000000,0.000000 +-3.0,76.399939,0.000000,0.000000 +-3.0,76.666594,0.000000,0.000000 +-3.0,76.933294,0.000000,0.000000 +-3.0,77.200057,0.000000,0.000000 +-3.0,77.466740,0.000000,0.000000 +-3.0,77.733298,0.000000,0.000000 +-3.0,77.999938,0.000000,0.000000 +-3.0,78.266632,0.000000,0.000000 +-3.0,78.533409,0.000000,0.000000 +-3.0,78.800084,0.000000,0.000000 +-3.0,79.066657,0.000000,0.000000 +-3.0,79.333318,0.000000,0.000000 +-3.0,79.600054,0.000000,0.000000 +-3.0,79.866694,0.000000,0.000000 +-3.0,80.133412,0.000000,0.000000 +-3.0,80.400050,0.000000,0.000000 +-3.0,80.666608,0.000000,0.000000 +-3.0,80.933409,0.000000,0.000000 +-3.0,81.199962,0.000000,0.000000 +-3.0,81.466611,0.000000,0.000000 +-3.0,81.733336,0.000000,0.000000 +-3.0,82.000000,0.000000,0.000000 +-3.0,82.266743,0.000000,0.000000 +-3.0,82.533255,0.000000,0.000000 +-3.0,82.800021,0.000000,0.000000 +-3.0,83.066720,0.000000,0.000000 +-3.0,83.333354,0.000000,0.000000 +-3.0,83.599924,0.000000,0.000000 +-3.0,83.866592,0.000000,0.000000 +-3.0,84.133361,0.000000,0.000000 +-3.0,84.400069,0.000000,0.000000 +-3.0,84.666712,0.000000,0.000000 +-3.0,84.933305,0.000000,0.000000 +-3.0,85.200004,0.000000,0.000000 +-3.0,85.466649,0.000000,0.000000 +-3.0,85.733403,0.000000,0.000000 +-3.0,85.999943,0.000000,0.000000 +-3.0,86.266596,0.000000,0.000000 +-3.0,86.533362,0.000000,0.000000 +-3.0,86.800081,0.000000,0.000000 +-3.0,87.066592,0.000000,0.000000 +-3.0,87.333384,0.000000,0.000000 +-3.0,87.599971,0.000000,0.000000 +-3.0,87.866682,0.000000,0.000000 +-3.0,88.133351,0.000000,0.000000 +-3.0,88.399984,0.000000,0.000000 +-3.0,88.666741,0.000000,0.000000 +-3.0,88.933302,0.000000,0.000000 +-3.0,89.199991,0.000000,0.000000 +-3.0,89.466649,0.000000,0.000000 +-3.0,89.733276,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 +-3.0,90.000035,0.000000,0.000000 diff --git a/scripts/trajectories/headrot-1.5s.csv b/scripts/trajectories/headrot-1.5s.csv index e3500d2d39..b298d22c89 100644 --- a/scripts/trajectories/headrot-1.5s.csv +++ b/scripts/trajectories/headrot-1.5s.csv @@ -1,8100 +1,8100 @@ -0,0.996195,0.000000,0.000000,0.087156 -1,0.996195,0.000000,0.000000,0.087156 -2,0.996195,0.000000,0.000000,0.087156 -3,0.996195,0.000000,0.000000,0.087156 -4,0.996195,0.000000,0.000000,0.087156 -5,0.996195,0.000000,0.000000,0.087156 -6,0.996195,0.000000,0.000000,0.087156 -7,0.996195,0.000000,0.000000,0.087156 -8,0.996195,0.000000,0.000000,0.087156 -9,0.996195,0.000000,0.000000,0.087156 -10,0.996195,0.000000,0.000000,0.087156 -11,0.996195,0.000000,0.000000,0.087156 -12,0.996195,0.000000,0.000000,0.087156 -13,0.996195,0.000000,0.000000,0.087156 -14,0.996195,0.000000,0.000000,0.087156 -15,0.996195,0.000000,0.000000,0.087156 -16,0.996195,0.000000,0.000000,0.087156 -17,0.996195,0.000000,0.000000,0.087156 -18,0.996195,0.000000,0.000000,0.087156 -19,0.996195,0.000000,0.000000,0.087156 -20,0.996195,0.000000,0.000000,0.087156 -21,0.996195,0.000000,0.000000,0.087156 -22,0.996195,0.000000,0.000000,0.087156 -23,0.996195,0.000000,0.000000,0.087156 -24,0.996195,0.000000,0.000000,0.087156 -25,0.996195,0.000000,0.000000,0.087156 -26,0.996195,0.000000,0.000000,0.087156 -27,0.996195,0.000000,0.000000,0.087156 -28,0.996195,0.000000,0.000000,0.087156 -29,0.996195,0.000000,0.000000,0.087156 -30,0.996195,0.000000,0.000000,0.087156 -31,0.996195,0.000000,0.000000,0.087156 -32,0.996195,0.000000,0.000000,0.087156 -33,0.996195,0.000000,0.000000,0.087156 -34,0.996195,0.000000,0.000000,0.087156 -35,0.996195,0.000000,0.000000,0.087156 -36,0.996195,0.000000,0.000000,0.087156 -37,0.996195,0.000000,0.000000,0.087156 -38,0.996195,0.000000,0.000000,0.087156 -39,0.996195,0.000000,0.000000,0.087156 -40,0.996195,0.000000,0.000000,0.087156 -41,0.996195,0.000000,0.000000,0.087156 -42,0.996195,0.000000,0.000000,0.087156 -43,0.996195,0.000000,0.000000,0.087156 -44,0.996195,0.000000,0.000000,0.087156 -45,0.996195,0.000000,0.000000,0.087156 -46,0.996195,0.000000,0.000000,0.087156 -47,0.996195,0.000000,0.000000,0.087156 -48,0.996195,0.000000,0.000000,0.087156 -49,0.996195,0.000000,0.000000,0.087156 -50,0.996195,0.000000,0.000000,0.087156 -51,0.996195,0.000000,0.000000,0.087156 -52,0.996195,0.000000,0.000000,0.087156 -53,0.996195,0.000000,0.000000,0.087156 -54,0.996195,0.000000,0.000000,0.087156 -55,0.996195,0.000000,0.000000,0.087156 -56,0.996195,0.000000,0.000000,0.087156 -57,0.996195,0.000000,0.000000,0.087156 -58,0.996195,0.000000,0.000000,0.087156 -59,0.996195,0.000000,0.000000,0.087156 -60,0.996195,0.000000,0.000000,0.087156 -61,0.996195,0.000000,0.000000,0.087156 -62,0.996195,0.000000,0.000000,0.087156 -63,0.996195,0.000000,0.000000,0.087156 -64,0.996195,0.000000,0.000000,0.087156 -65,0.996195,0.000000,0.000000,0.087156 -66,0.996195,0.000000,0.000000,0.087156 -67,0.996195,0.000000,0.000000,0.087156 -68,0.996195,0.000000,0.000000,0.087156 -69,0.996195,0.000000,0.000000,0.087156 -70,0.996195,0.000000,0.000000,0.087156 -71,0.996195,0.000000,0.000000,0.087156 -72,0.996195,0.000000,0.000000,0.087156 -73,0.996195,0.000000,0.000000,0.087156 -74,0.996195,0.000000,0.000000,0.087156 -75,0.996195,0.000000,0.000000,0.087156 -76,0.996195,0.000000,0.000000,0.087156 -77,0.996195,0.000000,0.000000,0.087156 -78,0.996195,0.000000,0.000000,0.087156 -79,0.996195,0.000000,0.000000,0.087156 -80,0.996195,0.000000,0.000000,0.087156 -81,0.996195,0.000000,0.000000,0.087156 -82,0.996195,0.000000,0.000000,0.087156 -83,0.996195,0.000000,0.000000,0.087156 -84,0.996195,0.000000,0.000000,0.087156 -85,0.996195,0.000000,0.000000,0.087156 -86,0.996195,0.000000,0.000000,0.087156 -87,0.996195,0.000000,0.000000,0.087156 -88,0.996195,0.000000,0.000000,0.087156 -89,0.996195,0.000000,0.000000,0.087156 -90,0.996195,0.000000,0.000000,0.087156 -91,0.996195,0.000000,0.000000,0.087156 -92,0.996195,0.000000,0.000000,0.087156 -93,0.996195,0.000000,0.000000,0.087156 -94,0.996195,0.000000,0.000000,0.087156 -95,0.996195,0.000000,0.000000,0.087156 -96,0.996195,0.000000,0.000000,0.087156 -97,0.996195,0.000000,0.000000,0.087156 -98,0.996195,0.000000,0.000000,0.087156 -99,0.996195,0.000000,0.000000,0.087156 -100,0.996195,0.000000,0.000000,0.087156 -101,0.996195,0.000000,0.000000,0.087156 -102,0.996195,0.000000,0.000000,0.087156 -103,0.996195,0.000000,0.000000,0.087156 -104,0.996195,0.000000,0.000000,0.087156 -105,0.996195,0.000000,0.000000,0.087156 -106,0.996195,0.000000,0.000000,0.087156 -107,0.996195,0.000000,0.000000,0.087156 -108,0.996195,0.000000,0.000000,0.087156 -109,0.996195,0.000000,0.000000,0.087156 -110,0.996195,0.000000,0.000000,0.087156 -111,0.996195,0.000000,0.000000,0.087156 -112,0.996195,0.000000,0.000000,0.087156 -113,0.996195,0.000000,0.000000,0.087156 -114,0.996195,0.000000,0.000000,0.087156 -115,0.996195,0.000000,0.000000,0.087156 -116,0.996195,0.000000,0.000000,0.087156 -117,0.996195,0.000000,0.000000,0.087156 -118,0.996195,0.000000,0.000000,0.087156 -119,0.996195,0.000000,0.000000,0.087156 -120,0.996195,0.000000,0.000000,0.087156 -121,0.996195,0.000000,0.000000,0.087156 -122,0.996195,0.000000,0.000000,0.087156 -123,0.996195,0.000000,0.000000,0.087156 -124,0.996195,0.000000,0.000000,0.087156 -125,0.996195,0.000000,0.000000,0.087156 -126,0.996195,0.000000,0.000000,0.087156 -127,0.996195,0.000000,0.000000,0.087156 -128,0.996195,0.000000,0.000000,0.087156 -129,0.996195,0.000000,0.000000,0.087156 -130,0.996195,0.000000,0.000000,0.087156 -131,0.996195,0.000000,0.000000,0.087156 -132,0.996195,0.000000,0.000000,0.087156 -133,0.996195,0.000000,0.000000,0.087156 -134,0.996195,0.000000,0.000000,0.087156 -135,0.996195,0.000000,0.000000,0.087156 -136,0.996195,0.000000,0.000000,0.087156 -137,0.996195,0.000000,0.000000,0.087156 -138,0.996195,0.000000,0.000000,0.087156 -139,0.996195,0.000000,0.000000,0.087156 -140,0.996195,0.000000,0.000000,0.087156 -141,0.996195,0.000000,0.000000,0.087156 -142,0.996195,0.000000,0.000000,0.087156 -143,0.996195,0.000000,0.000000,0.087156 -144,0.996195,0.000000,0.000000,0.087156 -145,0.996195,0.000000,0.000000,0.087156 -146,0.996195,0.000000,0.000000,0.087156 -147,0.996195,0.000000,0.000000,0.087156 -148,0.996195,0.000000,0.000000,0.087156 -149,0.996195,0.000000,0.000000,0.087156 -150,0.996195,0.000000,0.000000,0.087156 -151,0.996195,0.000000,0.000000,0.087156 -152,0.996195,0.000000,0.000000,0.087156 -153,0.996195,0.000000,0.000000,0.087156 -154,0.996195,0.000000,0.000000,0.087156 -155,0.996195,0.000000,0.000000,0.087156 -156,0.996195,0.000000,0.000000,0.087156 -157,0.996195,0.000000,0.000000,0.087156 -158,0.996195,0.000000,0.000000,0.087156 -159,0.996195,0.000000,0.000000,0.087156 -160,0.996195,0.000000,0.000000,0.087156 -161,0.996195,0.000000,0.000000,0.087156 -162,0.996195,0.000000,0.000000,0.087156 -163,0.996195,0.000000,0.000000,0.087156 -164,0.996195,0.000000,0.000000,0.087156 -165,0.996195,0.000000,0.000000,0.087156 -166,0.996195,0.000000,0.000000,0.087156 -167,0.996195,0.000000,0.000000,0.087156 -168,0.996195,0.000000,0.000000,0.087156 -169,0.996195,0.000000,0.000000,0.087156 -170,0.996195,0.000000,0.000000,0.087156 -171,0.996195,0.000000,0.000000,0.087156 -172,0.996195,0.000000,0.000000,0.087156 -173,0.996195,0.000000,0.000000,0.087156 -174,0.996195,0.000000,0.000000,0.087156 -175,0.996195,0.000000,0.000000,0.087156 -176,0.996195,0.000000,0.000000,0.087156 -177,0.996195,0.000000,0.000000,0.087156 -178,0.996195,0.000000,0.000000,0.087156 -179,0.996195,0.000000,0.000000,0.087156 -180,0.996195,0.000000,0.000000,0.087156 -181,0.996195,0.000000,0.000000,0.087156 -182,0.996195,0.000000,0.000000,0.087156 -183,0.996195,0.000000,0.000000,0.087156 -184,0.996195,0.000000,0.000000,0.087156 -185,0.996195,0.000000,0.000000,0.087156 -186,0.996195,0.000000,0.000000,0.087156 -187,0.996195,0.000000,0.000000,0.087156 -188,0.996195,0.000000,0.000000,0.087156 -189,0.996195,0.000000,0.000000,0.087156 -190,0.996195,0.000000,0.000000,0.087156 -191,0.996195,0.000000,0.000000,0.087156 -192,0.996195,0.000000,0.000000,0.087156 -193,0.996195,0.000000,0.000000,0.087156 -194,0.996195,0.000000,0.000000,0.087156 -195,0.996195,0.000000,0.000000,0.087156 -196,0.996195,0.000000,0.000000,0.087156 -197,0.996195,0.000000,0.000000,0.087156 -198,0.996195,0.000000,0.000000,0.087156 -199,0.996195,0.000000,0.000000,0.087156 -200,0.996195,0.000000,0.000000,0.087156 -201,0.996195,0.000000,0.000000,0.087156 -202,0.996195,0.000000,0.000000,0.087156 -203,0.996195,0.000000,0.000000,0.087156 -204,0.996195,0.000000,0.000000,0.087156 -205,0.996195,0.000000,0.000000,0.087156 -206,0.996195,0.000000,0.000000,0.087156 -207,0.996195,0.000000,0.000000,0.087156 -208,0.996195,0.000000,0.000000,0.087156 -209,0.996195,0.000000,0.000000,0.087156 -210,0.996195,0.000000,0.000000,0.087156 -211,0.996195,0.000000,0.000000,0.087156 -212,0.996195,0.000000,0.000000,0.087156 -213,0.996195,0.000000,0.000000,0.087156 -214,0.996195,0.000000,0.000000,0.087156 -215,0.996195,0.000000,0.000000,0.087156 -216,0.996195,0.000000,0.000000,0.087156 -217,0.996195,0.000000,0.000000,0.087156 -218,0.996195,0.000000,0.000000,0.087156 -219,0.996195,0.000000,0.000000,0.087156 -220,0.996195,0.000000,0.000000,0.087156 -221,0.996195,0.000000,0.000000,0.087156 -222,0.996195,0.000000,0.000000,0.087156 -223,0.996195,0.000000,0.000000,0.087156 -224,0.996195,0.000000,0.000000,0.087156 -225,0.996195,0.000000,0.000000,0.087156 -226,0.996195,0.000000,0.000000,0.087156 -227,0.996195,0.000000,0.000000,0.087156 -228,0.996195,0.000000,0.000000,0.087156 -229,0.996195,0.000000,0.000000,0.087156 -230,0.996195,0.000000,0.000000,0.087156 -231,0.996195,0.000000,0.000000,0.087156 -232,0.996195,0.000000,0.000000,0.087156 -233,0.996195,0.000000,0.000000,0.087156 -234,0.996195,0.000000,0.000000,0.087156 -235,0.996195,0.000000,0.000000,0.087156 -236,0.996195,0.000000,0.000000,0.087156 -237,0.996195,0.000000,0.000000,0.087156 -238,0.996195,0.000000,0.000000,0.087156 -239,0.996195,0.000000,0.000000,0.087156 -240,0.996195,0.000000,0.000000,0.087156 -241,0.996195,0.000000,0.000000,0.087156 -242,0.996195,0.000000,0.000000,0.087156 -243,0.996195,0.000000,0.000000,0.087156 -244,0.996195,0.000000,0.000000,0.087156 -245,0.996195,0.000000,0.000000,0.087156 -246,0.996195,0.000000,0.000000,0.087156 -247,0.996195,0.000000,0.000000,0.087156 -248,0.996195,0.000000,0.000000,0.087156 -249,0.996195,0.000000,0.000000,0.087156 -250,0.996195,0.000000,0.000000,0.087156 -251,0.996195,0.000000,0.000000,0.087156 -252,0.996195,0.000000,0.000000,0.087156 -253,0.996195,0.000000,0.000000,0.087156 -254,0.996195,0.000000,0.000000,0.087156 -255,0.996195,0.000000,0.000000,0.087156 -256,0.996195,0.000000,0.000000,0.087156 -257,0.996195,0.000000,0.000000,0.087156 -258,0.996195,0.000000,0.000000,0.087156 -259,0.996195,0.000000,0.000000,0.087156 -260,0.996195,0.000000,0.000000,0.087156 -261,0.996195,0.000000,0.000000,0.087156 -262,0.996195,0.000000,0.000000,0.087156 -263,0.996195,0.000000,0.000000,0.087156 -264,0.996195,0.000000,0.000000,0.087156 -265,0.996195,0.000000,0.000000,0.087156 -266,0.996195,0.000000,0.000000,0.087156 -267,0.996195,0.000000,0.000000,0.087156 -268,0.996195,0.000000,0.000000,0.087156 -269,0.996195,0.000000,0.000000,0.087156 -270,0.996195,0.000000,0.000000,0.087156 -271,0.996195,0.000000,0.000000,0.087156 -272,0.996195,0.000000,0.000000,0.087156 -273,0.996195,0.000000,0.000000,0.087156 -274,0.996195,0.000000,0.000000,0.087156 -275,0.996195,0.000000,0.000000,0.087156 -276,0.996195,0.000000,0.000000,0.087156 -277,0.996195,0.000000,0.000000,0.087156 -278,0.996195,0.000000,0.000000,0.087156 -279,0.996195,0.000000,0.000000,0.087156 -280,0.996195,0.000000,0.000000,0.087156 -281,0.996195,0.000000,0.000000,0.087156 -282,0.996195,0.000000,0.000000,0.087156 -283,0.996195,0.000000,0.000000,0.087156 -284,0.996195,0.000000,0.000000,0.087156 -285,0.996195,0.000000,0.000000,0.087156 -286,0.996195,0.000000,0.000000,0.087156 -287,0.996195,0.000000,0.000000,0.087156 -288,0.996195,0.000000,0.000000,0.087156 -289,0.996195,0.000000,0.000000,0.087156 -290,0.996195,0.000000,0.000000,0.087156 -291,0.996195,0.000000,0.000000,0.087156 -292,0.996195,0.000000,0.000000,0.087156 -293,0.996195,0.000000,0.000000,0.087156 -294,0.996195,0.000000,0.000000,0.087156 -295,0.996195,0.000000,0.000000,0.087156 -296,0.996195,0.000000,0.000000,0.087156 -297,0.996195,0.000000,0.000000,0.087156 -298,0.996195,0.000000,0.000000,0.087156 -299,0.996195,0.000000,0.000000,0.087156 -300,0.996195,0.000000,0.000000,0.087156 -301,0.996195,0.000000,0.000000,0.087156 -302,0.996195,0.000000,0.000000,0.087156 -303,0.996195,0.000000,0.000000,0.087156 -304,0.996195,0.000000,0.000000,0.087156 -305,0.996195,0.000000,0.000000,0.087156 -306,0.996195,0.000000,0.000000,0.087156 -307,0.996195,0.000000,0.000000,0.087156 -308,0.996195,0.000000,0.000000,0.087156 -309,0.996195,0.000000,0.000000,0.087156 -310,0.996195,0.000000,0.000000,0.087156 -311,0.996195,0.000000,0.000000,0.087156 -312,0.996195,0.000000,0.000000,0.087156 -313,0.996195,0.000000,0.000000,0.087156 -314,0.996195,0.000000,0.000000,0.087156 -315,0.996195,0.000000,0.000000,0.087156 -316,0.996195,0.000000,0.000000,0.087156 -317,0.996195,0.000000,0.000000,0.087156 -318,0.996195,0.000000,0.000000,0.087156 -319,0.996195,0.000000,0.000000,0.087156 -320,0.996195,0.000000,0.000000,0.087156 -321,0.996195,0.000000,0.000000,0.087156 -322,0.996195,0.000000,0.000000,0.087156 -323,0.996195,0.000000,0.000000,0.087156 -324,0.996195,0.000000,0.000000,0.087156 -325,0.996195,0.000000,0.000000,0.087156 -326,0.996195,0.000000,0.000000,0.087156 -327,0.996195,0.000000,0.000000,0.087156 -328,0.996195,0.000000,0.000000,0.087156 -329,0.996195,0.000000,0.000000,0.087156 -330,0.996195,0.000000,0.000000,0.087156 -331,0.996195,0.000000,0.000000,0.087156 -332,0.996195,0.000000,0.000000,0.087156 -333,0.996195,0.000000,0.000000,0.087156 -334,0.996195,0.000000,0.000000,0.087156 -335,0.996195,0.000000,0.000000,0.087156 -336,0.996195,0.000000,0.000000,0.087156 -337,0.996195,0.000000,0.000000,0.087156 -338,0.996195,0.000000,0.000000,0.087156 -339,0.996195,0.000000,0.000000,0.087156 -340,0.996195,0.000000,0.000000,0.087156 -341,0.996195,0.000000,0.000000,0.087156 -342,0.996195,0.000000,0.000000,0.087156 -343,0.996195,0.000000,0.000000,0.087156 -344,0.996195,0.000000,0.000000,0.087156 -345,0.996195,0.000000,0.000000,0.087156 -346,0.996195,0.000000,0.000000,0.087156 -347,0.996195,0.000000,0.000000,0.087156 -348,0.996195,0.000000,0.000000,0.087156 -349,0.996195,0.000000,0.000000,0.087156 -350,0.996195,0.000000,0.000000,0.087156 -351,0.996195,0.000000,0.000000,0.087156 -352,0.996195,0.000000,0.000000,0.087156 -353,0.996195,0.000000,0.000000,0.087156 -354,0.996195,0.000000,0.000000,0.087156 -355,0.996195,0.000000,0.000000,0.087156 -356,0.996195,0.000000,0.000000,0.087156 -357,0.996195,0.000000,0.000000,0.087156 -358,0.996195,0.000000,0.000000,0.087156 -359,0.996195,0.000000,0.000000,0.087156 -360,0.996195,0.000000,0.000000,0.087156 -361,0.996195,0.000000,0.000000,0.087156 -362,0.996195,0.000000,0.000000,0.087156 -363,0.996195,0.000000,0.000000,0.087156 -364,0.996195,0.000000,0.000000,0.087156 -365,0.996195,0.000000,0.000000,0.087156 -366,0.996195,0.000000,0.000000,0.087156 -367,0.996195,0.000000,0.000000,0.087156 -368,0.996195,0.000000,0.000000,0.087156 -369,0.996195,0.000000,0.000000,0.087156 -370,0.996195,0.000000,0.000000,0.087156 -371,0.996195,0.000000,0.000000,0.087156 -372,0.996195,0.000000,0.000000,0.087156 -373,0.996195,0.000000,0.000000,0.087156 -374,0.996195,0.000000,0.000000,0.087156 -375,0.996195,0.000000,0.000000,0.087156 -376,0.996195,0.000000,0.000000,0.087156 -377,0.996195,0.000000,0.000000,0.087156 -378,0.996195,0.000000,0.000000,0.087156 -379,0.996195,0.000000,0.000000,0.087156 -380,0.996195,0.000000,0.000000,0.087156 -381,0.996195,0.000000,0.000000,0.087156 -382,0.996195,0.000000,0.000000,0.087156 -383,0.996195,0.000000,0.000000,0.087156 -384,0.996195,0.000000,0.000000,0.087156 -385,0.996195,0.000000,0.000000,0.087156 -386,0.996195,0.000000,0.000000,0.087156 -387,0.996195,0.000000,0.000000,0.087156 -388,0.996195,0.000000,0.000000,0.087156 -389,0.996195,0.000000,0.000000,0.087156 -390,0.996195,0.000000,0.000000,0.087156 -391,0.996195,0.000000,0.000000,0.087156 -392,0.996195,0.000000,0.000000,0.087156 -393,0.996195,0.000000,0.000000,0.087156 -394,0.996195,0.000000,0.000000,0.087156 -395,0.996195,0.000000,0.000000,0.087156 -396,0.996195,0.000000,0.000000,0.087156 -397,0.996195,0.000000,0.000000,0.087156 -398,0.996195,0.000000,0.000000,0.087156 -399,0.996195,0.000000,0.000000,0.087156 -400,0.996195,0.000000,0.000000,0.087156 -401,0.996195,0.000000,0.000000,0.087156 -402,0.996195,0.000000,0.000000,0.087156 -403,0.996195,0.000000,0.000000,0.087156 -404,0.996195,0.000000,0.000000,0.087156 -405,0.996195,0.000000,0.000000,0.087156 -406,0.996195,0.000000,0.000000,0.087156 -407,0.996195,0.000000,0.000000,0.087156 -408,0.996195,0.000000,0.000000,0.087156 -409,0.996195,0.000000,0.000000,0.087156 -410,0.996195,0.000000,0.000000,0.087156 -411,0.996195,0.000000,0.000000,0.087156 -412,0.996195,0.000000,0.000000,0.087156 -413,0.996195,0.000000,0.000000,0.087156 -414,0.996195,0.000000,0.000000,0.087156 -415,0.996195,0.000000,0.000000,0.087156 -416,0.996195,0.000000,0.000000,0.087156 -417,0.996195,0.000000,0.000000,0.087156 -418,0.996195,0.000000,0.000000,0.087156 -419,0.996195,0.000000,0.000000,0.087156 -420,0.996195,0.000000,0.000000,0.087156 -421,0.996195,0.000000,0.000000,0.087156 -422,0.996195,0.000000,0.000000,0.087156 -423,0.996195,0.000000,0.000000,0.087156 -424,0.996195,0.000000,0.000000,0.087156 -425,0.996195,0.000000,0.000000,0.087156 -426,0.996195,0.000000,0.000000,0.087156 -427,0.996195,0.000000,0.000000,0.087156 -428,0.996195,0.000000,0.000000,0.087156 -429,0.996195,0.000000,0.000000,0.087156 -430,0.996195,0.000000,0.000000,0.087156 -431,0.996195,0.000000,0.000000,0.087156 -432,0.996195,0.000000,0.000000,0.087156 -433,0.996195,0.000000,0.000000,0.087156 -434,0.996195,0.000000,0.000000,0.087156 -435,0.996195,0.000000,0.000000,0.087156 -436,0.996195,0.000000,0.000000,0.087156 -437,0.996195,0.000000,0.000000,0.087156 -438,0.996195,0.000000,0.000000,0.087156 -439,0.996195,0.000000,0.000000,0.087156 -440,0.996195,0.000000,0.000000,0.087156 -441,0.996195,0.000000,0.000000,0.087156 -442,0.996195,0.000000,0.000000,0.087156 -443,0.996195,0.000000,0.000000,0.087156 -444,0.996195,0.000000,0.000000,0.087156 -445,0.996195,0.000000,0.000000,0.087156 -446,0.996195,0.000000,0.000000,0.087156 -447,0.996195,0.000000,0.000000,0.087156 -448,0.996195,0.000000,0.000000,0.087156 -449,0.996195,0.000000,0.000000,0.087156 -450,0.996195,0.000000,0.000000,0.087156 -451,0.996195,0.000000,0.000000,0.087156 -452,0.996195,0.000000,0.000000,0.087156 -453,0.996195,0.000000,0.000000,0.087156 -454,0.996195,0.000000,0.000000,0.087156 -455,0.996195,0.000000,0.000000,0.087156 -456,0.996195,0.000000,0.000000,0.087156 -457,0.996195,0.000000,0.000000,0.087156 -458,0.996195,0.000000,0.000000,0.087156 -459,0.996195,0.000000,0.000000,0.087156 -460,0.996195,0.000000,0.000000,0.087156 -461,0.996195,0.000000,0.000000,0.087156 -462,0.996195,0.000000,0.000000,0.087156 -463,0.996195,0.000000,0.000000,0.087156 -464,0.996195,0.000000,0.000000,0.087156 -465,0.996195,0.000000,0.000000,0.087156 -466,0.996195,0.000000,0.000000,0.087156 -467,0.996195,0.000000,0.000000,0.087156 -468,0.996195,0.000000,0.000000,0.087156 -469,0.996195,0.000000,0.000000,0.087156 -470,0.996195,0.000000,0.000000,0.087156 -471,0.996195,0.000000,0.000000,0.087156 -472,0.996195,0.000000,0.000000,0.087156 -473,0.996195,0.000000,0.000000,0.087156 -474,0.996195,0.000000,0.000000,0.087156 -475,0.996195,0.000000,0.000000,0.087156 -476,0.996195,0.000000,0.000000,0.087156 -477,0.996195,0.000000,0.000000,0.087156 -478,0.996195,0.000000,0.000000,0.087156 -479,0.996195,0.000000,0.000000,0.087156 -480,0.996195,0.000000,0.000000,0.087156 -481,0.996195,0.000000,0.000000,0.087156 -482,0.996195,0.000000,0.000000,0.087156 -483,0.996195,0.000000,0.000000,0.087156 -484,0.996195,0.000000,0.000000,0.087156 -485,0.996195,0.000000,0.000000,0.087156 -486,0.996195,0.000000,0.000000,0.087156 -487,0.996195,0.000000,0.000000,0.087156 -488,0.996195,0.000000,0.000000,0.087156 -489,0.996195,0.000000,0.000000,0.087156 -490,0.996195,0.000000,0.000000,0.087156 -491,0.996195,0.000000,0.000000,0.087156 -492,0.996195,0.000000,0.000000,0.087156 -493,0.996195,0.000000,0.000000,0.087156 -494,0.996195,0.000000,0.000000,0.087156 -495,0.996195,0.000000,0.000000,0.087156 -496,0.996195,0.000000,0.000000,0.087156 -497,0.996195,0.000000,0.000000,0.087156 -498,0.996195,0.000000,0.000000,0.087156 -499,0.996195,0.000000,0.000000,0.087156 -500,0.996195,0.000000,0.000000,0.087156 -501,0.996195,0.000000,0.000000,0.087156 -502,0.996195,0.000000,0.000000,0.087156 -503,0.996195,0.000000,0.000000,0.087156 -504,0.996195,0.000000,0.000000,0.087156 -505,0.996195,0.000000,0.000000,0.087156 -506,0.996195,0.000000,0.000000,0.087156 -507,0.996195,0.000000,0.000000,0.087156 -508,0.996195,0.000000,0.000000,0.087156 -509,0.996195,0.000000,0.000000,0.087156 -510,0.996195,0.000000,0.000000,0.087156 -511,0.996195,0.000000,0.000000,0.087156 -512,0.996195,0.000000,0.000000,0.087156 -513,0.996195,0.000000,0.000000,0.087156 -514,0.996195,0.000000,0.000000,0.087156 -515,0.996195,0.000000,0.000000,0.087156 -516,0.996195,0.000000,0.000000,0.087156 -517,0.996195,0.000000,0.000000,0.087156 -518,0.996195,0.000000,0.000000,0.087156 -519,0.996195,0.000000,0.000000,0.087156 -520,0.996195,0.000000,0.000000,0.087156 -521,0.996195,0.000000,0.000000,0.087156 -522,0.996195,0.000000,0.000000,0.087156 -523,0.996195,0.000000,0.000000,0.087156 -524,0.996195,0.000000,0.000000,0.087156 -525,0.996195,0.000000,0.000000,0.087156 -526,0.996195,0.000000,0.000000,0.087156 -527,0.996195,0.000000,0.000000,0.087156 -528,0.996195,0.000000,0.000000,0.087156 -529,0.996195,0.000000,0.000000,0.087156 -530,0.996195,0.000000,0.000000,0.087156 -531,0.996195,0.000000,0.000000,0.087156 -532,0.996195,0.000000,0.000000,0.087156 -533,0.996195,0.000000,0.000000,0.087156 -534,0.996195,0.000000,0.000000,0.087156 -535,0.996195,0.000000,0.000000,0.087156 -536,0.996195,0.000000,0.000000,0.087156 -537,0.996195,0.000000,0.000000,0.087156 -538,0.996195,0.000000,0.000000,0.087156 -539,0.996195,0.000000,0.000000,0.087156 -540,0.996195,0.000000,0.000000,0.087156 -541,0.996195,0.000000,0.000000,0.087156 -542,0.996195,0.000000,0.000000,0.087156 -543,0.996195,0.000000,0.000000,0.087156 -544,0.996195,0.000000,0.000000,0.087156 -545,0.996195,0.000000,0.000000,0.087156 -546,0.996195,0.000000,0.000000,0.087156 -547,0.996195,0.000000,0.000000,0.087156 -548,0.996195,0.000000,0.000000,0.087156 -549,0.996195,0.000000,0.000000,0.087156 -550,0.996195,0.000000,0.000000,0.087156 -551,0.996195,0.000000,0.000000,0.087156 -552,0.996195,0.000000,0.000000,0.087156 -553,0.996195,0.000000,0.000000,0.087156 -554,0.996195,0.000000,0.000000,0.087156 -555,0.996195,0.000000,0.000000,0.087156 -556,0.996195,0.000000,0.000000,0.087156 -557,0.996195,0.000000,0.000000,0.087156 -558,0.996195,0.000000,0.000000,0.087156 -559,0.996195,0.000000,0.000000,0.087156 -560,0.996195,0.000000,0.000000,0.087156 -561,0.996195,0.000000,0.000000,0.087156 -562,0.996195,0.000000,0.000000,0.087156 -563,0.996195,0.000000,0.000000,0.087156 -564,0.996195,0.000000,0.000000,0.087156 -565,0.996195,0.000000,0.000000,0.087156 -566,0.996195,0.000000,0.000000,0.087156 -567,0.996195,0.000000,0.000000,0.087156 -568,0.996195,0.000000,0.000000,0.087156 -569,0.996195,0.000000,0.000000,0.087156 -570,0.996195,0.000000,0.000000,0.087156 -571,0.996195,0.000000,0.000000,0.087156 -572,0.996195,0.000000,0.000000,0.087156 -573,0.996195,0.000000,0.000000,0.087156 -574,0.996195,0.000000,0.000000,0.087156 -575,0.996195,0.000000,0.000000,0.087156 -576,0.996195,0.000000,0.000000,0.087156 -577,0.996195,0.000000,0.000000,0.087156 -578,0.996195,0.000000,0.000000,0.087156 -579,0.996195,0.000000,0.000000,0.087156 -580,0.996195,0.000000,0.000000,0.087156 -581,0.996195,0.000000,0.000000,0.087156 -582,0.996195,0.000000,0.000000,0.087156 -583,0.996195,0.000000,0.000000,0.087156 -584,0.996195,0.000000,0.000000,0.087156 -585,0.996195,0.000000,0.000000,0.087156 -586,0.996195,0.000000,0.000000,0.087156 -587,0.996195,0.000000,0.000000,0.087156 -588,0.996195,0.000000,0.000000,0.087156 -589,0.996195,0.000000,0.000000,0.087156 -590,0.996195,0.000000,0.000000,0.087156 -591,0.996195,0.000000,0.000000,0.087156 -592,0.996195,0.000000,0.000000,0.087156 -593,0.996195,0.000000,0.000000,0.087156 -594,0.996195,0.000000,0.000000,0.087156 -595,0.996195,0.000000,0.000000,0.087156 -596,0.996195,0.000000,0.000000,0.087156 -597,0.996195,0.000000,0.000000,0.087156 -598,0.996195,0.000000,0.000000,0.087156 -599,0.996195,0.000000,0.000000,0.087156 -600,0.996195,0.000000,0.000000,0.087156 -601,0.996195,0.000000,0.000000,0.087156 -602,0.996195,0.000000,0.000000,0.087156 -603,0.996195,0.000000,0.000000,0.087156 -604,0.996195,0.000000,0.000000,0.087156 -605,0.996195,0.000000,0.000000,0.087156 -606,0.996195,0.000000,0.000000,0.087156 -607,0.996195,0.000000,0.000000,0.087156 -608,0.996195,0.000000,0.000000,0.087156 -609,0.996195,0.000000,0.000000,0.087156 -610,0.996195,0.000000,0.000000,0.087156 -611,0.996195,0.000000,0.000000,0.087156 -612,0.996195,0.000000,0.000000,0.087156 -613,0.996195,0.000000,0.000000,0.087156 -614,0.996195,0.000000,0.000000,0.087156 -615,0.996195,0.000000,0.000000,0.087156 -616,0.996195,0.000000,0.000000,0.087156 -617,0.996195,0.000000,0.000000,0.087156 -618,0.996195,0.000000,0.000000,0.087156 -619,0.996195,0.000000,0.000000,0.087156 -620,0.996195,0.000000,0.000000,0.087156 -621,0.996195,0.000000,0.000000,0.087156 -622,0.996195,0.000000,0.000000,0.087156 -623,0.996195,0.000000,0.000000,0.087156 -624,0.996195,0.000000,0.000000,0.087156 -625,0.996195,0.000000,0.000000,0.087156 -626,0.996195,0.000000,0.000000,0.087156 -627,0.996195,0.000000,0.000000,0.087156 -628,0.996195,0.000000,0.000000,0.087156 -629,0.996195,0.000000,0.000000,0.087156 -630,0.996195,0.000000,0.000000,0.087156 -631,0.996195,0.000000,0.000000,0.087156 -632,0.996195,0.000000,0.000000,0.087156 -633,0.996195,0.000000,0.000000,0.087156 -634,0.996195,0.000000,0.000000,0.087156 -635,0.996195,0.000000,0.000000,0.087156 -636,0.996195,0.000000,0.000000,0.087156 -637,0.996195,0.000000,0.000000,0.087156 -638,0.996195,0.000000,0.000000,0.087156 -639,0.996195,0.000000,0.000000,0.087156 -640,0.996195,0.000000,0.000000,0.087156 -641,0.996195,0.000000,0.000000,0.087156 -642,0.996195,0.000000,0.000000,0.087156 -643,0.996195,0.000000,0.000000,0.087156 -644,0.996195,0.000000,0.000000,0.087156 -645,0.996195,0.000000,0.000000,0.087156 -646,0.996195,0.000000,0.000000,0.087156 -647,0.996195,0.000000,0.000000,0.087156 -648,0.996195,0.000000,0.000000,0.087156 -649,0.996195,0.000000,0.000000,0.087156 -650,0.996195,0.000000,0.000000,0.087156 -651,0.996195,0.000000,0.000000,0.087156 -652,0.996195,0.000000,0.000000,0.087156 -653,0.996195,0.000000,0.000000,0.087156 -654,0.996195,0.000000,0.000000,0.087156 -655,0.996195,0.000000,0.000000,0.087156 -656,0.996195,0.000000,0.000000,0.087156 -657,0.996195,0.000000,0.000000,0.087156 -658,0.996195,0.000000,0.000000,0.087156 -659,0.996195,0.000000,0.000000,0.087156 -660,0.996195,0.000000,0.000000,0.087156 -661,0.996195,0.000000,0.000000,0.087156 -662,0.996195,0.000000,0.000000,0.087156 -663,0.996195,0.000000,0.000000,0.087156 -664,0.996195,0.000000,0.000000,0.087156 -665,0.996195,0.000000,0.000000,0.087156 -666,0.996195,0.000000,0.000000,0.087156 -667,0.996195,0.000000,0.000000,0.087156 -668,0.996195,0.000000,0.000000,0.087156 -669,0.996195,0.000000,0.000000,0.087156 -670,0.996195,0.000000,0.000000,0.087156 -671,0.996195,0.000000,0.000000,0.087156 -672,0.996195,0.000000,0.000000,0.087156 -673,0.996195,0.000000,0.000000,0.087156 -674,0.996195,0.000000,0.000000,0.087156 -675,0.996195,0.000000,0.000000,0.087156 -676,0.996195,0.000000,0.000000,0.087156 -677,0.996195,0.000000,0.000000,0.087156 -678,0.996195,0.000000,0.000000,0.087156 -679,0.996195,0.000000,0.000000,0.087156 -680,0.996195,0.000000,0.000000,0.087156 -681,0.996195,0.000000,0.000000,0.087156 -682,0.996195,0.000000,0.000000,0.087156 -683,0.996195,0.000000,0.000000,0.087156 -684,0.996195,0.000000,0.000000,0.087156 -685,0.996195,0.000000,0.000000,0.087156 -686,0.996195,0.000000,0.000000,0.087156 -687,0.996195,0.000000,0.000000,0.087156 -688,0.996195,0.000000,0.000000,0.087156 -689,0.996195,0.000000,0.000000,0.087156 -690,0.996195,0.000000,0.000000,0.087156 -691,0.996195,0.000000,0.000000,0.087156 -692,0.996195,0.000000,0.000000,0.087156 -693,0.996195,0.000000,0.000000,0.087156 -694,0.996195,0.000000,0.000000,0.087156 -695,0.996195,0.000000,0.000000,0.087156 -696,0.996195,0.000000,0.000000,0.087156 -697,0.996195,0.000000,0.000000,0.087156 -698,0.996195,0.000000,0.000000,0.087156 -699,0.996195,0.000000,0.000000,0.087156 -700,0.996195,0.000000,0.000000,0.087156 -701,0.996195,0.000000,0.000000,0.087156 -702,0.996195,0.000000,0.000000,0.087156 -703,0.996195,0.000000,0.000000,0.087156 -704,0.996195,0.000000,0.000000,0.087156 -705,0.996195,0.000000,0.000000,0.087156 -706,0.996195,0.000000,0.000000,0.087156 -707,0.996195,0.000000,0.000000,0.087156 -708,0.996195,0.000000,0.000000,0.087156 -709,0.996195,0.000000,0.000000,0.087156 -710,0.996195,0.000000,0.000000,0.087156 -711,0.996195,0.000000,0.000000,0.087156 -712,0.996195,0.000000,0.000000,0.087156 -713,0.996195,0.000000,0.000000,0.087156 -714,0.996195,0.000000,0.000000,0.087156 -715,0.996195,0.000000,0.000000,0.087156 -716,0.996195,0.000000,0.000000,0.087156 -717,0.996195,0.000000,0.000000,0.087156 -718,0.996195,0.000000,0.000000,0.087156 -719,0.996195,0.000000,0.000000,0.087156 -720,0.996195,0.000000,0.000000,0.087156 -721,0.996195,0.000000,0.000000,0.087156 -722,0.996195,0.000000,0.000000,0.087156 -723,0.996195,0.000000,0.000000,0.087156 -724,0.996195,0.000000,0.000000,0.087156 -725,0.996195,0.000000,0.000000,0.087156 -726,0.996195,0.000000,0.000000,0.087156 -727,0.996195,0.000000,0.000000,0.087156 -728,0.996195,0.000000,0.000000,0.087156 -729,0.996195,0.000000,0.000000,0.087156 -730,0.996195,0.000000,0.000000,0.087156 -731,0.996195,0.000000,0.000000,0.087156 -732,0.996195,0.000000,0.000000,0.087156 -733,0.996195,0.000000,0.000000,0.087156 -734,0.996195,0.000000,0.000000,0.087156 -735,0.996195,0.000000,0.000000,0.087156 -736,0.996195,0.000000,0.000000,0.087156 -737,0.996195,0.000000,0.000000,0.087156 -738,0.996195,0.000000,0.000000,0.087156 -739,0.996195,0.000000,0.000000,0.087156 -740,0.996195,0.000000,0.000000,0.087156 -741,0.996195,0.000000,0.000000,0.087156 -742,0.996195,0.000000,0.000000,0.087156 -743,0.996195,0.000000,0.000000,0.087156 -744,0.996195,0.000000,0.000000,0.087156 -745,0.996195,0.000000,0.000000,0.087156 -746,0.996195,0.000000,0.000000,0.087156 -747,0.996195,0.000000,0.000000,0.087156 -748,0.996195,0.000000,0.000000,0.087156 -749,0.996195,0.000000,0.000000,0.087156 -750,0.996195,0.000000,0.000000,0.087156 -751,0.996195,0.000000,0.000000,0.087156 -752,0.996195,0.000000,0.000000,0.087156 -753,0.996195,0.000000,0.000000,0.087156 -754,0.996195,0.000000,0.000000,0.087156 -755,0.996195,0.000000,0.000000,0.087156 -756,0.996195,0.000000,0.000000,0.087156 -757,0.996195,0.000000,0.000000,0.087156 -758,0.996195,0.000000,0.000000,0.087156 -759,0.996195,0.000000,0.000000,0.087156 -760,0.996195,0.000000,0.000000,0.087156 -761,0.996195,0.000000,0.000000,0.087156 -762,0.996195,0.000000,0.000000,0.087156 -763,0.996195,0.000000,0.000000,0.087156 -764,0.996195,0.000000,0.000000,0.087156 -765,0.996195,0.000000,0.000000,0.087156 -766,0.996195,0.000000,0.000000,0.087156 -767,0.996195,0.000000,0.000000,0.087156 -768,0.996195,0.000000,0.000000,0.087156 -769,0.996195,0.000000,0.000000,0.087156 -770,0.996195,0.000000,0.000000,0.087156 -771,0.996195,0.000000,0.000000,0.087156 -772,0.996195,0.000000,0.000000,0.087156 -773,0.996195,0.000000,0.000000,0.087156 -774,0.996195,0.000000,0.000000,0.087156 -775,0.996195,0.000000,0.000000,0.087156 -776,0.996195,0.000000,0.000000,0.087156 -777,0.996195,0.000000,0.000000,0.087156 -778,0.996195,0.000000,0.000000,0.087156 -779,0.996195,0.000000,0.000000,0.087156 -780,0.996195,0.000000,0.000000,0.087156 -781,0.996195,0.000000,0.000000,0.087156 -782,0.996195,0.000000,0.000000,0.087156 -783,0.996195,0.000000,0.000000,0.087156 -784,0.996195,0.000000,0.000000,0.087156 -785,0.996195,0.000000,0.000000,0.087156 -786,0.996195,0.000000,0.000000,0.087156 -787,0.996195,0.000000,0.000000,0.087156 -788,0.996195,0.000000,0.000000,0.087156 -789,0.996195,0.000000,0.000000,0.087156 -790,0.996195,0.000000,0.000000,0.087156 -791,0.996195,0.000000,0.000000,0.087156 -792,0.996195,0.000000,0.000000,0.087156 -793,0.996195,0.000000,0.000000,0.087156 -794,0.996195,0.000000,0.000000,0.087156 -795,0.996195,0.000000,0.000000,0.087156 -796,0.996195,0.000000,0.000000,0.087156 -797,0.996195,0.000000,0.000000,0.087156 -798,0.996195,0.000000,0.000000,0.087156 -799,0.996195,0.000000,0.000000,0.087156 -800,0.996195,0.000000,0.000000,0.087156 -801,0.995989,0.000000,0.000000,0.089474 -802,0.995778,0.000000,0.000000,0.091791 -803,0.995562,0.000000,0.000000,0.094108 -804,0.995340,0.000000,0.000000,0.096425 -805,0.995113,0.000000,0.000000,0.098741 -806,0.994881,0.000000,0.000000,0.101056 -807,0.994643,0.000000,0.000000,0.103371 -808,0.994400,0.000000,0.000000,0.105686 -809,0.994151,0.000000,0.000000,0.107999 -810,0.993897,0.000000,0.000000,0.110313 -811,0.993638,0.000000,0.000000,0.112625 -812,0.993373,0.000000,0.000000,0.114937 -813,0.993103,0.000000,0.000000,0.117249 -814,0.992827,0.000000,0.000000,0.119559 -815,0.992546,0.000000,0.000000,0.121869 -816,0.992260,0.000000,0.000000,0.124179 -817,0.991968,0.000000,0.000000,0.126488 -818,0.991671,0.000000,0.000000,0.128796 -819,0.991369,0.000000,0.000000,0.131103 -820,0.991061,0.000000,0.000000,0.133410 -821,0.990748,0.000000,0.000000,0.135716 -822,0.990429,0.000000,0.000000,0.138021 -823,0.990105,0.000000,0.000000,0.140325 -824,0.989776,0.000000,0.000000,0.142629 -825,0.989442,0.000000,0.000000,0.144932 -826,0.989102,0.000000,0.000000,0.147234 -827,0.988756,0.000000,0.000000,0.149535 -828,0.988406,0.000000,0.000000,0.151836 -829,0.988050,0.000000,0.000000,0.154136 -830,0.987688,0.000000,0.000000,0.156434 -831,0.987322,0.000000,0.000000,0.158732 -832,0.986950,0.000000,0.000000,0.161030 -833,0.986572,0.000000,0.000000,0.163326 -834,0.986189,0.000000,0.000000,0.165621 -835,0.985801,0.000000,0.000000,0.167916 -836,0.985408,0.000000,0.000000,0.170209 -837,0.985009,0.000000,0.000000,0.172502 -838,0.984605,0.000000,0.000000,0.174794 -839,0.984196,0.000000,0.000000,0.177085 -840,0.983781,0.000000,0.000000,0.179375 -841,0.983361,0.000000,0.000000,0.181663 -842,0.982935,0.000000,0.000000,0.183951 -843,0.982505,0.000000,0.000000,0.186238 -844,0.982069,0.000000,0.000000,0.188524 -845,0.981627,0.000000,0.000000,0.190809 -846,0.981180,0.000000,0.000000,0.193093 -847,0.980728,0.000000,0.000000,0.195376 -848,0.980271,0.000000,0.000000,0.197657 -849,0.979809,0.000000,0.000000,0.199938 -850,0.979341,0.000000,0.000000,0.202218 -851,0.978867,0.000000,0.000000,0.204496 -852,0.978389,0.000000,0.000000,0.206773 -853,0.977905,0.000000,0.000000,0.209050 -854,0.977416,0.000000,0.000000,0.211325 -855,0.976921,0.000000,0.000000,0.213599 -856,0.976422,0.000000,0.000000,0.215872 -857,0.975917,0.000000,0.000000,0.218143 -858,0.975406,0.000000,0.000000,0.220414 -859,0.974891,0.000000,0.000000,0.222683 -860,0.974370,0.000000,0.000000,0.224951 -861,0.973844,0.000000,0.000000,0.227218 -862,0.973313,0.000000,0.000000,0.229484 -863,0.972776,0.000000,0.000000,0.231748 -864,0.972234,0.000000,0.000000,0.234011 -865,0.971687,0.000000,0.000000,0.236273 -866,0.971134,0.000000,0.000000,0.238533 -867,0.970577,0.000000,0.000000,0.240793 -868,0.970014,0.000000,0.000000,0.243051 -869,0.969445,0.000000,0.000000,0.245307 -870,0.968872,0.000000,0.000000,0.247563 -871,0.968293,0.000000,0.000000,0.249817 -872,0.967709,0.000000,0.000000,0.252069 -873,0.967120,0.000000,0.000000,0.254321 -874,0.966526,0.000000,0.000000,0.256571 -875,0.965926,0.000000,0.000000,0.258819 -876,0.965321,0.000000,0.000000,0.261066 -877,0.964711,0.000000,0.000000,0.263312 -878,0.964095,0.000000,0.000000,0.265556 -879,0.963475,0.000000,0.000000,0.267799 -880,0.962849,0.000000,0.000000,0.270040 -881,0.962218,0.000000,0.000000,0.272280 -882,0.961582,0.000000,0.000000,0.274519 -883,0.960940,0.000000,0.000000,0.276756 -884,0.960294,0.000000,0.000000,0.278991 -885,0.959642,0.000000,0.000000,0.281225 -886,0.958985,0.000000,0.000000,0.283457 -887,0.958323,0.000000,0.000000,0.285688 -888,0.957655,0.000000,0.000000,0.287918 -889,0.956983,0.000000,0.000000,0.290145 -890,0.956305,0.000000,0.000000,0.292372 -891,0.955622,0.000000,0.000000,0.294596 -892,0.954934,0.000000,0.000000,0.296819 -893,0.954240,0.000000,0.000000,0.299041 -894,0.953542,0.000000,0.000000,0.301261 -895,0.952838,0.000000,0.000000,0.303479 -896,0.952129,0.000000,0.000000,0.305695 -897,0.951415,0.000000,0.000000,0.307910 -898,0.950696,0.000000,0.000000,0.310123 -899,0.949972,0.000000,0.000000,0.312335 -900,0.949243,0.000000,0.000000,0.314545 -901,0.948508,0.000000,0.000000,0.316753 -902,0.947768,0.000000,0.000000,0.318959 -903,0.947024,0.000000,0.000000,0.321164 -904,0.946274,0.000000,0.000000,0.323367 -905,0.945519,0.000000,0.000000,0.325568 -906,0.944758,0.000000,0.000000,0.327768 -907,0.943993,0.000000,0.000000,0.329965 -908,0.943223,0.000000,0.000000,0.332161 -909,0.942447,0.000000,0.000000,0.334355 -910,0.941667,0.000000,0.000000,0.336547 -911,0.940881,0.000000,0.000000,0.338738 -912,0.940090,0.000000,0.000000,0.340927 -913,0.939294,0.000000,0.000000,0.343113 -914,0.938493,0.000000,0.000000,0.345298 -915,0.937687,0.000000,0.000000,0.347481 -916,0.936876,0.000000,0.000000,0.349662 -917,0.936060,0.000000,0.000000,0.351842 -918,0.935238,0.000000,0.000000,0.354019 -919,0.934412,0.000000,0.000000,0.356194 -920,0.933580,0.000000,0.000000,0.358368 -921,0.932744,0.000000,0.000000,0.360540 -922,0.931902,0.000000,0.000000,0.362709 -923,0.931056,0.000000,0.000000,0.364877 -924,0.930204,0.000000,0.000000,0.367042 -925,0.929348,0.000000,0.000000,0.369206 -926,0.928486,0.000000,0.000000,0.371368 -927,0.927619,0.000000,0.000000,0.373528 -928,0.926747,0.000000,0.000000,0.375685 -929,0.925871,0.000000,0.000000,0.377841 -930,0.924989,0.000000,0.000000,0.379994 -931,0.924102,0.000000,0.000000,0.382146 -932,0.923210,0.000000,0.000000,0.384295 -933,0.922313,0.000000,0.000000,0.386443 -934,0.921412,0.000000,0.000000,0.388588 -935,0.920505,0.000000,0.000000,0.390731 -936,0.919593,0.000000,0.000000,0.392872 -937,0.918676,0.000000,0.000000,0.395011 -938,0.917755,0.000000,0.000000,0.397148 -939,0.916828,0.000000,0.000000,0.399283 -940,0.915896,0.000000,0.000000,0.401415 -941,0.914960,0.000000,0.000000,0.403545 -942,0.914018,0.000000,0.000000,0.405673 -943,0.913072,0.000000,0.000000,0.407799 -944,0.912120,0.000000,0.000000,0.409923 -945,0.911164,0.000000,0.000000,0.412045 -946,0.910202,0.000000,0.000000,0.414164 -947,0.909236,0.000000,0.000000,0.416281 -948,0.908265,0.000000,0.000000,0.418396 -949,0.907289,0.000000,0.000000,0.420508 -950,0.906308,0.000000,0.000000,0.422618 -951,0.905322,0.000000,0.000000,0.424726 -952,0.904331,0.000000,0.000000,0.426832 -953,0.903335,0.000000,0.000000,0.428935 -954,0.902335,0.000000,0.000000,0.431036 -955,0.901329,0.000000,0.000000,0.433135 -956,0.900319,0.000000,0.000000,0.435231 -957,0.899304,0.000000,0.000000,0.437325 -958,0.898283,0.000000,0.000000,0.439417 -959,0.897258,0.000000,0.000000,0.441506 -960,0.896229,0.000000,0.000000,0.443593 -961,0.895194,0.000000,0.000000,0.445677 -962,0.894154,0.000000,0.000000,0.447759 -963,0.893110,0.000000,0.000000,0.449839 -964,0.892061,0.000000,0.000000,0.451916 -965,0.891007,0.000000,0.000000,0.453990 -966,0.889948,0.000000,0.000000,0.456063 -967,0.888884,0.000000,0.000000,0.458132 -968,0.887815,0.000000,0.000000,0.460200 -969,0.886742,0.000000,0.000000,0.462265 -970,0.885664,0.000000,0.000000,0.464327 -971,0.884581,0.000000,0.000000,0.466387 -972,0.883493,0.000000,0.000000,0.468444 -973,0.882401,0.000000,0.000000,0.470499 -974,0.881303,0.000000,0.000000,0.472551 -975,0.880201,0.000000,0.000000,0.474600 -976,0.879095,0.000000,0.000000,0.476647 -977,0.877983,0.000000,0.000000,0.478692 -978,0.876867,0.000000,0.000000,0.480734 -979,0.875746,0.000000,0.000000,0.482773 -980,0.874620,0.000000,0.000000,0.484810 -981,0.873489,0.000000,0.000000,0.486844 -982,0.872354,0.000000,0.000000,0.488875 -983,0.871214,0.000000,0.000000,0.490904 -984,0.870069,0.000000,0.000000,0.492930 -985,0.868920,0.000000,0.000000,0.494953 -986,0.867765,0.000000,0.000000,0.496974 -987,0.866607,0.000000,0.000000,0.498992 -988,0.865443,0.000000,0.000000,0.501007 -989,0.864275,0.000000,0.000000,0.503020 -990,0.863102,0.000000,0.000000,0.505030 -991,0.861924,0.000000,0.000000,0.507037 -992,0.860742,0.000000,0.000000,0.509041 -993,0.859555,0.000000,0.000000,0.511043 -994,0.858364,0.000000,0.000000,0.513042 -995,0.857167,0.000000,0.000000,0.515038 -996,0.855966,0.000000,0.000000,0.517031 -997,0.854761,0.000000,0.000000,0.519022 -998,0.853551,0.000000,0.000000,0.521010 -999,0.852336,0.000000,0.000000,0.522995 -1000,0.851117,0.000000,0.000000,0.524977 -1001,0.849893,0.000000,0.000000,0.526956 -1002,0.848664,0.000000,0.000000,0.528932 -1003,0.847431,0.000000,0.000000,0.530906 -1004,0.846193,0.000000,0.000000,0.532876 -1005,0.844951,0.000000,0.000000,0.534844 -1006,0.843704,0.000000,0.000000,0.536809 -1007,0.842452,0.000000,0.000000,0.538771 -1008,0.841196,0.000000,0.000000,0.540730 -1009,0.839936,0.000000,0.000000,0.542686 -1010,0.838671,0.000000,0.000000,0.544639 -1011,0.837401,0.000000,0.000000,0.546589 -1012,0.836127,0.000000,0.000000,0.548536 -1013,0.834848,0.000000,0.000000,0.550481 -1014,0.833565,0.000000,0.000000,0.552422 -1015,0.832277,0.000000,0.000000,0.554360 -1016,0.830984,0.000000,0.000000,0.556296 -1017,0.829688,0.000000,0.000000,0.558228 -1018,0.828386,0.000000,0.000000,0.560157 -1019,0.827081,0.000000,0.000000,0.562083 -1020,0.825770,0.000000,0.000000,0.564007 -1021,0.824456,0.000000,0.000000,0.565927 -1022,0.823136,0.000000,0.000000,0.567844 -1023,0.821813,0.000000,0.000000,0.569758 -1024,0.820485,0.000000,0.000000,0.571669 -1025,0.819152,0.000000,0.000000,0.573576 -1026,0.817815,0.000000,0.000000,0.575481 -1027,0.816474,0.000000,0.000000,0.577383 -1028,0.815128,0.000000,0.000000,0.579281 -1029,0.813778,0.000000,0.000000,0.581176 -1030,0.812423,0.000000,0.000000,0.583069 -1031,0.811064,0.000000,0.000000,0.584958 -1032,0.809700,0.000000,0.000000,0.586844 -1033,0.808333,0.000000,0.000000,0.588726 -1034,0.806960,0.000000,0.000000,0.590606 -1035,0.805584,0.000000,0.000000,0.592482 -1036,0.804203,0.000000,0.000000,0.594355 -1037,0.802817,0.000000,0.000000,0.596225 -1038,0.801428,0.000000,0.000000,0.598092 -1039,0.800034,0.000000,0.000000,0.599955 -1040,0.798636,0.000000,0.000000,0.601815 -1041,0.797233,0.000000,0.000000,0.603672 -1042,0.795826,0.000000,0.000000,0.605526 -1043,0.794415,0.000000,0.000000,0.607376 -1044,0.792999,0.000000,0.000000,0.609223 -1045,0.791579,0.000000,0.000000,0.611067 -1046,0.790155,0.000000,0.000000,0.612907 -1047,0.788727,0.000000,0.000000,0.614744 -1048,0.787294,0.000000,0.000000,0.616578 -1049,0.785857,0.000000,0.000000,0.618408 -1050,0.784416,0.000000,0.000000,0.620235 -1051,0.782970,0.000000,0.000000,0.622059 -1052,0.781520,0.000000,0.000000,0.623880 -1053,0.780067,0.000000,0.000000,0.625697 -1054,0.778608,0.000000,0.000000,0.627510 -1055,0.777146,0.000000,0.000000,0.629320 -1056,0.775679,0.000000,0.000000,0.631127 -1057,0.774209,0.000000,0.000000,0.632931 -1058,0.772734,0.000000,0.000000,0.634731 -1059,0.771254,0.000000,0.000000,0.636527 -1060,0.769771,0.000000,0.000000,0.638320 -1061,0.768284,0.000000,0.000000,0.640110 -1062,0.766792,0.000000,0.000000,0.641896 -1063,0.765296,0.000000,0.000000,0.643679 -1064,0.763796,0.000000,0.000000,0.645458 -1065,0.762292,0.000000,0.000000,0.647233 -1066,0.760784,0.000000,0.000000,0.649006 -1067,0.759271,0.000000,0.000000,0.650774 -1068,0.757755,0.000000,0.000000,0.652539 -1069,0.756234,0.000000,0.000000,0.654301 -1070,0.754710,0.000000,0.000000,0.656059 -1071,0.753181,0.000000,0.000000,0.657814 -1072,0.751648,0.000000,0.000000,0.659564 -1073,0.750111,0.000000,0.000000,0.661312 -1074,0.748570,0.000000,0.000000,0.663056 -1075,0.747025,0.000000,0.000000,0.664796 -1076,0.745476,0.000000,0.000000,0.666532 -1077,0.743923,0.000000,0.000000,0.668265 -1078,0.742366,0.000000,0.000000,0.669995 -1079,0.740805,0.000000,0.000000,0.671721 -1080,0.739239,0.000000,0.000000,0.673443 -1081,0.737670,0.000000,0.000000,0.675161 -1082,0.736097,0.000000,0.000000,0.676876 -1083,0.734520,0.000000,0.000000,0.678587 -1084,0.732939,0.000000,0.000000,0.680295 -1085,0.731354,0.000000,0.000000,0.681998 -1086,0.729765,0.000000,0.000000,0.683698 -1087,0.728172,0.000000,0.000000,0.685395 -1088,0.726575,0.000000,0.000000,0.687088 -1089,0.724974,0.000000,0.000000,0.688776 -1090,0.723369,0.000000,0.000000,0.690462 -1091,0.721760,0.000000,0.000000,0.692143 -1092,0.720148,0.000000,0.000000,0.693821 -1093,0.718531,0.000000,0.000000,0.695495 -1094,0.716911,0.000000,0.000000,0.697165 -1095,0.715286,0.000000,0.000000,0.698832 -1096,0.713658,0.000000,0.000000,0.700494 -1097,0.712026,0.000000,0.000000,0.702153 -1098,0.710390,0.000000,0.000000,0.703808 -1099,0.708750,0.000000,0.000000,0.705459 -1100,0.707107,0.000000,0.000000,0.707107 -1101,0.707107,0.000000,0.000000,0.707107 -1102,0.707107,0.000000,0.000000,0.707107 -1103,0.707107,0.000000,0.000000,0.707107 -1104,0.707107,0.000000,0.000000,0.707107 -1105,0.707107,0.000000,0.000000,0.707107 -1106,0.707107,0.000000,0.000000,0.707107 -1107,0.707107,0.000000,0.000000,0.707107 -1108,0.707107,0.000000,0.000000,0.707107 -1109,0.707107,0.000000,0.000000,0.707107 -1110,0.707107,0.000000,0.000000,0.707107 -1111,0.707107,0.000000,0.000000,0.707107 -1112,0.707107,0.000000,0.000000,0.707107 -1113,0.707107,0.000000,0.000000,0.707107 -1114,0.707107,0.000000,0.000000,0.707107 -1115,0.707107,0.000000,0.000000,0.707107 -1116,0.707107,0.000000,0.000000,0.707107 -1117,0.707107,0.000000,0.000000,0.707107 -1118,0.707107,0.000000,0.000000,0.707107 -1119,0.707107,0.000000,0.000000,0.707107 -1120,0.707107,0.000000,0.000000,0.707107 -1121,0.707107,0.000000,0.000000,0.707107 -1122,0.707107,0.000000,0.000000,0.707107 -1123,0.707107,0.000000,0.000000,0.707107 -1124,0.707107,0.000000,0.000000,0.707107 -1125,0.707107,0.000000,0.000000,0.707107 -1126,0.707107,0.000000,0.000000,0.707107 -1127,0.707107,0.000000,0.000000,0.707107 -1128,0.707107,0.000000,0.000000,0.707107 -1129,0.707107,0.000000,0.000000,0.707107 -1130,0.707107,0.000000,0.000000,0.707107 -1131,0.707107,0.000000,0.000000,0.707107 -1132,0.707107,0.000000,0.000000,0.707107 -1133,0.707107,0.000000,0.000000,0.707107 -1134,0.707107,0.000000,0.000000,0.707107 -1135,0.707107,0.000000,0.000000,0.707107 -1136,0.707107,0.000000,0.000000,0.707107 -1137,0.707107,0.000000,0.000000,0.707107 -1138,0.707107,0.000000,0.000000,0.707107 -1139,0.707107,0.000000,0.000000,0.707107 -1140,0.707107,0.000000,0.000000,0.707107 -1141,0.707107,0.000000,0.000000,0.707107 -1142,0.707107,0.000000,0.000000,0.707107 -1143,0.707107,0.000000,0.000000,0.707107 -1144,0.707107,0.000000,0.000000,0.707107 -1145,0.707107,0.000000,0.000000,0.707107 -1146,0.707107,0.000000,0.000000,0.707107 -1147,0.707107,0.000000,0.000000,0.707107 -1148,0.707107,0.000000,0.000000,0.707107 -1149,0.707107,0.000000,0.000000,0.707107 -1150,0.707107,0.000000,0.000000,0.707107 -1151,0.707107,0.000000,0.000000,0.707107 -1152,0.707107,0.000000,0.000000,0.707107 -1153,0.707107,0.000000,0.000000,0.707107 -1154,0.707107,0.000000,0.000000,0.707107 -1155,0.707107,0.000000,0.000000,0.707107 -1156,0.707107,0.000000,0.000000,0.707107 -1157,0.707107,0.000000,0.000000,0.707107 -1158,0.707107,0.000000,0.000000,0.707107 -1159,0.707107,0.000000,0.000000,0.707107 -1160,0.707107,0.000000,0.000000,0.707107 -1161,0.707107,0.000000,0.000000,0.707107 -1162,0.707107,0.000000,0.000000,0.707107 -1163,0.707107,0.000000,0.000000,0.707107 -1164,0.707107,0.000000,0.000000,0.707107 -1165,0.707107,0.000000,0.000000,0.707107 -1166,0.707107,0.000000,0.000000,0.707107 -1167,0.707107,0.000000,0.000000,0.707107 -1168,0.707107,0.000000,0.000000,0.707107 -1169,0.707107,0.000000,0.000000,0.707107 -1170,0.707107,0.000000,0.000000,0.707107 -1171,0.707107,0.000000,0.000000,0.707107 -1172,0.707107,0.000000,0.000000,0.707107 -1173,0.707107,0.000000,0.000000,0.707107 -1174,0.707107,0.000000,0.000000,0.707107 -1175,0.707107,0.000000,0.000000,0.707107 -1176,0.707107,0.000000,0.000000,0.707107 -1177,0.707107,0.000000,0.000000,0.707107 -1178,0.707107,0.000000,0.000000,0.707107 -1179,0.707107,0.000000,0.000000,0.707107 -1180,0.707107,0.000000,0.000000,0.707107 -1181,0.707107,0.000000,0.000000,0.707107 -1182,0.707107,0.000000,0.000000,0.707107 -1183,0.707107,0.000000,0.000000,0.707107 -1184,0.707107,0.000000,0.000000,0.707107 -1185,0.707107,0.000000,0.000000,0.707107 -1186,0.707107,0.000000,0.000000,0.707107 -1187,0.707107,0.000000,0.000000,0.707107 -1188,0.707107,0.000000,0.000000,0.707107 -1189,0.707107,0.000000,0.000000,0.707107 -1190,0.707107,0.000000,0.000000,0.707107 -1191,0.707107,0.000000,0.000000,0.707107 -1192,0.707107,0.000000,0.000000,0.707107 -1193,0.707107,0.000000,0.000000,0.707107 -1194,0.707107,0.000000,0.000000,0.707107 -1195,0.707107,0.000000,0.000000,0.707107 -1196,0.707107,0.000000,0.000000,0.707107 -1197,0.707107,0.000000,0.000000,0.707107 -1198,0.707107,0.000000,0.000000,0.707107 -1199,0.707107,0.000000,0.000000,0.707107 -1200,0.707107,0.000000,0.000000,0.707107 -1201,0.707107,0.000000,0.000000,0.707107 -1202,0.707107,0.000000,0.000000,0.707107 -1203,0.707107,0.000000,0.000000,0.707107 -1204,0.707107,0.000000,0.000000,0.707107 -1205,0.707107,0.000000,0.000000,0.707107 -1206,0.707107,0.000000,0.000000,0.707107 -1207,0.707107,0.000000,0.000000,0.707107 -1208,0.707107,0.000000,0.000000,0.707107 -1209,0.707107,0.000000,0.000000,0.707107 -1210,0.707107,0.000000,0.000000,0.707107 -1211,0.707107,0.000000,0.000000,0.707107 -1212,0.707107,0.000000,0.000000,0.707107 -1213,0.707107,0.000000,0.000000,0.707107 -1214,0.707107,0.000000,0.000000,0.707107 -1215,0.707107,0.000000,0.000000,0.707107 -1216,0.707107,0.000000,0.000000,0.707107 -1217,0.707107,0.000000,0.000000,0.707107 -1218,0.707107,0.000000,0.000000,0.707107 -1219,0.707107,0.000000,0.000000,0.707107 -1220,0.707107,0.000000,0.000000,0.707107 -1221,0.707107,0.000000,0.000000,0.707107 -1222,0.707107,0.000000,0.000000,0.707107 -1223,0.707107,0.000000,0.000000,0.707107 -1224,0.707107,0.000000,0.000000,0.707107 -1225,0.707107,0.000000,0.000000,0.707107 -1226,0.707107,0.000000,0.000000,0.707107 -1227,0.707107,0.000000,0.000000,0.707107 -1228,0.707107,0.000000,0.000000,0.707107 -1229,0.707107,0.000000,0.000000,0.707107 -1230,0.707107,0.000000,0.000000,0.707107 -1231,0.707107,0.000000,0.000000,0.707107 -1232,0.707107,0.000000,0.000000,0.707107 -1233,0.707107,0.000000,0.000000,0.707107 -1234,0.707107,0.000000,0.000000,0.707107 -1235,0.707107,0.000000,0.000000,0.707107 -1236,0.707107,0.000000,0.000000,0.707107 -1237,0.707107,0.000000,0.000000,0.707107 -1238,0.707107,0.000000,0.000000,0.707107 -1239,0.707107,0.000000,0.000000,0.707107 -1240,0.707107,0.000000,0.000000,0.707107 -1241,0.707107,0.000000,0.000000,0.707107 -1242,0.707107,0.000000,0.000000,0.707107 -1243,0.707107,0.000000,0.000000,0.707107 -1244,0.707107,0.000000,0.000000,0.707107 -1245,0.707107,0.000000,0.000000,0.707107 -1246,0.707107,0.000000,0.000000,0.707107 -1247,0.707107,0.000000,0.000000,0.707107 -1248,0.707107,0.000000,0.000000,0.707107 -1249,0.707107,0.000000,0.000000,0.707107 -1250,0.707107,0.000000,0.000000,0.707107 -1251,0.707107,0.000000,0.000000,0.707107 -1252,0.707107,0.000000,0.000000,0.707107 -1253,0.707107,0.000000,0.000000,0.707107 -1254,0.707107,0.000000,0.000000,0.707107 -1255,0.707107,0.000000,0.000000,0.707107 -1256,0.707107,0.000000,0.000000,0.707107 -1257,0.707107,0.000000,0.000000,0.707107 -1258,0.707107,0.000000,0.000000,0.707107 -1259,0.707107,0.000000,0.000000,0.707107 -1260,0.707107,0.000000,0.000000,0.707107 -1261,0.707107,0.000000,0.000000,0.707107 -1262,0.707107,0.000000,0.000000,0.707107 -1263,0.707107,0.000000,0.000000,0.707107 -1264,0.707107,0.000000,0.000000,0.707107 -1265,0.707107,0.000000,0.000000,0.707107 -1266,0.707107,0.000000,0.000000,0.707107 -1267,0.707107,0.000000,0.000000,0.707107 -1268,0.707107,0.000000,0.000000,0.707107 -1269,0.707107,0.000000,0.000000,0.707107 -1270,0.707107,0.000000,0.000000,0.707107 -1271,0.707107,0.000000,0.000000,0.707107 -1272,0.707107,0.000000,0.000000,0.707107 -1273,0.707107,0.000000,0.000000,0.707107 -1274,0.707107,0.000000,0.000000,0.707107 -1275,0.707107,0.000000,0.000000,0.707107 -1276,0.707107,0.000000,0.000000,0.707107 -1277,0.707107,0.000000,0.000000,0.707107 -1278,0.707107,0.000000,0.000000,0.707107 -1279,0.707107,0.000000,0.000000,0.707107 -1280,0.707107,0.000000,0.000000,0.707107 -1281,0.707107,0.000000,0.000000,0.707107 -1282,0.707107,0.000000,0.000000,0.707107 -1283,0.707107,0.000000,0.000000,0.707107 -1284,0.707107,0.000000,0.000000,0.707107 -1285,0.707107,0.000000,0.000000,0.707107 -1286,0.707107,0.000000,0.000000,0.707107 -1287,0.707107,0.000000,0.000000,0.707107 -1288,0.707107,0.000000,0.000000,0.707107 -1289,0.707107,0.000000,0.000000,0.707107 -1290,0.707107,0.000000,0.000000,0.707107 -1291,0.707107,0.000000,0.000000,0.707107 -1292,0.707107,0.000000,0.000000,0.707107 -1293,0.707107,0.000000,0.000000,0.707107 -1294,0.707107,0.000000,0.000000,0.707107 -1295,0.707107,0.000000,0.000000,0.707107 -1296,0.707107,0.000000,0.000000,0.707107 -1297,0.707107,0.000000,0.000000,0.707107 -1298,0.707107,0.000000,0.000000,0.707107 -1299,0.707107,0.000000,0.000000,0.707107 -1300,0.707107,0.000000,0.000000,0.707107 -1301,0.707107,0.000000,0.000000,0.707107 -1302,0.707107,0.000000,0.000000,0.707107 -1303,0.707107,0.000000,0.000000,0.707107 -1304,0.707107,0.000000,0.000000,0.707107 -1305,0.707107,0.000000,0.000000,0.707107 -1306,0.707107,0.000000,0.000000,0.707107 -1307,0.707107,0.000000,0.000000,0.707107 -1308,0.707107,0.000000,0.000000,0.707107 -1309,0.707107,0.000000,0.000000,0.707107 -1310,0.707107,0.000000,0.000000,0.707107 -1311,0.707107,0.000000,0.000000,0.707107 -1312,0.707107,0.000000,0.000000,0.707107 -1313,0.707107,0.000000,0.000000,0.707107 -1314,0.707107,0.000000,0.000000,0.707107 -1315,0.707107,0.000000,0.000000,0.707107 -1316,0.707107,0.000000,0.000000,0.707107 -1317,0.707107,0.000000,0.000000,0.707107 -1318,0.707107,0.000000,0.000000,0.707107 -1319,0.707107,0.000000,0.000000,0.707107 -1320,0.707107,0.000000,0.000000,0.707107 -1321,0.707107,0.000000,0.000000,0.707107 -1322,0.707107,0.000000,0.000000,0.707107 -1323,0.707107,0.000000,0.000000,0.707107 -1324,0.707107,0.000000,0.000000,0.707107 -1325,0.707107,0.000000,0.000000,0.707107 -1326,0.707107,0.000000,0.000000,0.707107 -1327,0.707107,0.000000,0.000000,0.707107 -1328,0.707107,0.000000,0.000000,0.707107 -1329,0.707107,0.000000,0.000000,0.707107 -1330,0.707107,0.000000,0.000000,0.707107 -1331,0.707107,0.000000,0.000000,0.707107 -1332,0.707107,0.000000,0.000000,0.707107 -1333,0.707107,0.000000,0.000000,0.707107 -1334,0.707107,0.000000,0.000000,0.707107 -1335,0.707107,0.000000,0.000000,0.707107 -1336,0.707107,0.000000,0.000000,0.707107 -1337,0.707107,0.000000,0.000000,0.707107 -1338,0.707107,0.000000,0.000000,0.707107 -1339,0.707107,0.000000,0.000000,0.707107 -1340,0.707107,0.000000,0.000000,0.707107 -1341,0.707107,0.000000,0.000000,0.707107 -1342,0.707107,0.000000,0.000000,0.707107 -1343,0.707107,0.000000,0.000000,0.707107 -1344,0.707107,0.000000,0.000000,0.707107 -1345,0.707107,0.000000,0.000000,0.707107 -1346,0.707107,0.000000,0.000000,0.707107 -1347,0.707107,0.000000,0.000000,0.707107 -1348,0.707107,0.000000,0.000000,0.707107 -1349,0.707107,0.000000,0.000000,0.707107 -1350,0.707107,0.000000,0.000000,0.707107 -1351,0.707107,0.000000,0.000000,0.707107 -1352,0.707107,0.000000,0.000000,0.707107 -1353,0.707107,0.000000,0.000000,0.707107 -1354,0.707107,0.000000,0.000000,0.707107 -1355,0.707107,0.000000,0.000000,0.707107 -1356,0.707107,0.000000,0.000000,0.707107 -1357,0.707107,0.000000,0.000000,0.707107 -1358,0.707107,0.000000,0.000000,0.707107 -1359,0.707107,0.000000,0.000000,0.707107 -1360,0.707107,0.000000,0.000000,0.707107 -1361,0.707107,0.000000,0.000000,0.707107 -1362,0.707107,0.000000,0.000000,0.707107 -1363,0.707107,0.000000,0.000000,0.707107 -1364,0.707107,0.000000,0.000000,0.707107 -1365,0.707107,0.000000,0.000000,0.707107 -1366,0.707107,0.000000,0.000000,0.707107 -1367,0.707107,0.000000,0.000000,0.707107 -1368,0.707107,0.000000,0.000000,0.707107 -1369,0.707107,0.000000,0.000000,0.707107 -1370,0.707107,0.000000,0.000000,0.707107 -1371,0.707107,0.000000,0.000000,0.707107 -1372,0.707107,0.000000,0.000000,0.707107 -1373,0.707107,0.000000,0.000000,0.707107 -1374,0.707107,0.000000,0.000000,0.707107 -1375,0.707107,0.000000,0.000000,0.707107 -1376,0.707107,0.000000,0.000000,0.707107 -1377,0.707107,0.000000,0.000000,0.707107 -1378,0.707107,0.000000,0.000000,0.707107 -1379,0.707107,0.000000,0.000000,0.707107 -1380,0.707107,0.000000,0.000000,0.707107 -1381,0.707107,0.000000,0.000000,0.707107 -1382,0.707107,0.000000,0.000000,0.707107 -1383,0.707107,0.000000,0.000000,0.707107 -1384,0.707107,0.000000,0.000000,0.707107 -1385,0.707107,0.000000,0.000000,0.707107 -1386,0.707107,0.000000,0.000000,0.707107 -1387,0.707107,0.000000,0.000000,0.707107 -1388,0.707107,0.000000,0.000000,0.707107 -1389,0.707107,0.000000,0.000000,0.707107 -1390,0.707107,0.000000,0.000000,0.707107 -1391,0.707107,0.000000,0.000000,0.707107 -1392,0.707107,0.000000,0.000000,0.707107 -1393,0.707107,0.000000,0.000000,0.707107 -1394,0.707107,0.000000,0.000000,0.707107 -1395,0.707107,0.000000,0.000000,0.707107 -1396,0.707107,0.000000,0.000000,0.707107 -1397,0.707107,0.000000,0.000000,0.707107 -1398,0.707107,0.000000,0.000000,0.707107 -1399,0.707107,0.000000,0.000000,0.707107 -1400,0.707107,0.000000,0.000000,0.707107 -1401,0.707107,0.000000,0.000000,0.707107 -1402,0.707107,0.000000,0.000000,0.707107 -1403,0.707107,0.000000,0.000000,0.707107 -1404,0.707107,0.000000,0.000000,0.707107 -1405,0.707107,0.000000,0.000000,0.707107 -1406,0.707107,0.000000,0.000000,0.707107 -1407,0.707107,0.000000,0.000000,0.707107 -1408,0.707107,0.000000,0.000000,0.707107 -1409,0.707107,0.000000,0.000000,0.707107 -1410,0.707107,0.000000,0.000000,0.707107 -1411,0.707107,0.000000,0.000000,0.707107 -1412,0.707107,0.000000,0.000000,0.707107 -1413,0.707107,0.000000,0.000000,0.707107 -1414,0.707107,0.000000,0.000000,0.707107 -1415,0.707107,0.000000,0.000000,0.707107 -1416,0.707107,0.000000,0.000000,0.707107 -1417,0.707107,0.000000,0.000000,0.707107 -1418,0.707107,0.000000,0.000000,0.707107 -1419,0.707107,0.000000,0.000000,0.707107 -1420,0.707107,0.000000,0.000000,0.707107 -1421,0.707107,0.000000,0.000000,0.707107 -1422,0.707107,0.000000,0.000000,0.707107 -1423,0.707107,0.000000,0.000000,0.707107 -1424,0.707107,0.000000,0.000000,0.707107 -1425,0.707107,0.000000,0.000000,0.707107 -1426,0.707107,0.000000,0.000000,0.707107 -1427,0.707107,0.000000,0.000000,0.707107 -1428,0.707107,0.000000,0.000000,0.707107 -1429,0.707107,0.000000,0.000000,0.707107 -1430,0.707107,0.000000,0.000000,0.707107 -1431,0.707107,0.000000,0.000000,0.707107 -1432,0.707107,0.000000,0.000000,0.707107 -1433,0.707107,0.000000,0.000000,0.707107 -1434,0.707107,0.000000,0.000000,0.707107 -1435,0.707107,0.000000,0.000000,0.707107 -1436,0.707107,0.000000,0.000000,0.707107 -1437,0.707107,0.000000,0.000000,0.707107 -1438,0.707107,0.000000,0.000000,0.707107 -1439,0.707107,0.000000,0.000000,0.707107 -1440,0.707107,0.000000,0.000000,0.707107 -1441,0.707107,0.000000,0.000000,0.707107 -1442,0.707107,0.000000,0.000000,0.707107 -1443,0.707107,0.000000,0.000000,0.707107 -1444,0.707107,0.000000,0.000000,0.707107 -1445,0.707107,0.000000,0.000000,0.707107 -1446,0.707107,0.000000,0.000000,0.707107 -1447,0.707107,0.000000,0.000000,0.707107 -1448,0.707107,0.000000,0.000000,0.707107 -1449,0.707107,0.000000,0.000000,0.707107 -1450,0.707107,0.000000,0.000000,0.707107 -1451,0.707107,0.000000,0.000000,0.707107 -1452,0.707107,0.000000,0.000000,0.707107 -1453,0.707107,0.000000,0.000000,0.707107 -1454,0.707107,0.000000,0.000000,0.707107 -1455,0.707107,0.000000,0.000000,0.707107 -1456,0.707107,0.000000,0.000000,0.707107 -1457,0.707107,0.000000,0.000000,0.707107 -1458,0.707107,0.000000,0.000000,0.707107 -1459,0.707107,0.000000,0.000000,0.707107 -1460,0.707107,0.000000,0.000000,0.707107 -1461,0.707107,0.000000,0.000000,0.707107 -1462,0.707107,0.000000,0.000000,0.707107 -1463,0.707107,0.000000,0.000000,0.707107 -1464,0.707107,0.000000,0.000000,0.707107 -1465,0.707107,0.000000,0.000000,0.707107 -1466,0.707107,0.000000,0.000000,0.707107 -1467,0.707107,0.000000,0.000000,0.707107 -1468,0.707107,0.000000,0.000000,0.707107 -1469,0.707107,0.000000,0.000000,0.707107 -1470,0.707107,0.000000,0.000000,0.707107 -1471,0.707107,0.000000,0.000000,0.707107 -1472,0.707107,0.000000,0.000000,0.707107 -1473,0.707107,0.000000,0.000000,0.707107 -1474,0.707107,0.000000,0.000000,0.707107 -1475,0.707107,0.000000,0.000000,0.707107 -1476,0.707107,0.000000,0.000000,0.707107 -1477,0.707107,0.000000,0.000000,0.707107 -1478,0.707107,0.000000,0.000000,0.707107 -1479,0.707107,0.000000,0.000000,0.707107 -1480,0.707107,0.000000,0.000000,0.707107 -1481,0.707107,0.000000,0.000000,0.707107 -1482,0.707107,0.000000,0.000000,0.707107 -1483,0.707107,0.000000,0.000000,0.707107 -1484,0.707107,0.000000,0.000000,0.707107 -1485,0.707107,0.000000,0.000000,0.707107 -1486,0.707107,0.000000,0.000000,0.707107 -1487,0.707107,0.000000,0.000000,0.707107 -1488,0.707107,0.000000,0.000000,0.707107 -1489,0.707107,0.000000,0.000000,0.707107 -1490,0.707107,0.000000,0.000000,0.707107 -1491,0.707107,0.000000,0.000000,0.707107 -1492,0.707107,0.000000,0.000000,0.707107 -1493,0.707107,0.000000,0.000000,0.707107 -1494,0.707107,0.000000,0.000000,0.707107 -1495,0.707107,0.000000,0.000000,0.707107 -1496,0.707107,0.000000,0.000000,0.707107 -1497,0.707107,0.000000,0.000000,0.707107 -1498,0.707107,0.000000,0.000000,0.707107 -1499,0.707107,0.000000,0.000000,0.707107 -1500,0.707107,0.000000,0.000000,0.707107 -1501,0.707107,0.000000,0.000000,0.707107 -1502,0.707107,0.000000,0.000000,0.707107 -1503,0.707107,0.000000,0.000000,0.707107 -1504,0.707107,0.000000,0.000000,0.707107 -1505,0.707107,0.000000,0.000000,0.707107 -1506,0.707107,0.000000,0.000000,0.707107 -1507,0.707107,0.000000,0.000000,0.707107 -1508,0.707107,0.000000,0.000000,0.707107 -1509,0.707107,0.000000,0.000000,0.707107 -1510,0.707107,0.000000,0.000000,0.707107 -1511,0.707107,0.000000,0.000000,0.707107 -1512,0.707107,0.000000,0.000000,0.707107 -1513,0.707107,0.000000,0.000000,0.707107 -1514,0.707107,0.000000,0.000000,0.707107 -1515,0.707107,0.000000,0.000000,0.707107 -1516,0.707107,0.000000,0.000000,0.707107 -1517,0.707107,0.000000,0.000000,0.707107 -1518,0.707107,0.000000,0.000000,0.707107 -1519,0.707107,0.000000,0.000000,0.707107 -1520,0.707107,0.000000,0.000000,0.707107 -1521,0.707107,0.000000,0.000000,0.707107 -1522,0.707107,0.000000,0.000000,0.707107 -1523,0.707107,0.000000,0.000000,0.707107 -1524,0.707107,0.000000,0.000000,0.707107 -1525,0.707107,0.000000,0.000000,0.707107 -1526,0.707107,0.000000,0.000000,0.707107 -1527,0.707107,0.000000,0.000000,0.707107 -1528,0.707107,0.000000,0.000000,0.707107 -1529,0.707107,0.000000,0.000000,0.707107 -1530,0.707107,0.000000,0.000000,0.707107 -1531,0.707107,0.000000,0.000000,0.707107 -1532,0.707107,0.000000,0.000000,0.707107 -1533,0.707107,0.000000,0.000000,0.707107 -1534,0.707107,0.000000,0.000000,0.707107 -1535,0.707107,0.000000,0.000000,0.707107 -1536,0.707107,0.000000,0.000000,0.707107 -1537,0.707107,0.000000,0.000000,0.707107 -1538,0.707107,0.000000,0.000000,0.707107 -1539,0.707107,0.000000,0.000000,0.707107 -1540,0.707107,0.000000,0.000000,0.707107 -1541,0.707107,0.000000,0.000000,0.707107 -1542,0.707107,0.000000,0.000000,0.707107 -1543,0.707107,0.000000,0.000000,0.707107 -1544,0.707107,0.000000,0.000000,0.707107 -1545,0.707107,0.000000,0.000000,0.707107 -1546,0.707107,0.000000,0.000000,0.707107 -1547,0.707107,0.000000,0.000000,0.707107 -1548,0.707107,0.000000,0.000000,0.707107 -1549,0.707107,0.000000,0.000000,0.707107 -1550,0.707107,0.000000,0.000000,0.707107 -1551,0.707107,0.000000,0.000000,0.707107 -1552,0.707107,0.000000,0.000000,0.707107 -1553,0.707107,0.000000,0.000000,0.707107 -1554,0.707107,0.000000,0.000000,0.707107 -1555,0.707107,0.000000,0.000000,0.707107 -1556,0.707107,0.000000,0.000000,0.707107 -1557,0.707107,0.000000,0.000000,0.707107 -1558,0.707107,0.000000,0.000000,0.707107 -1559,0.707107,0.000000,0.000000,0.707107 -1560,0.707107,0.000000,0.000000,0.707107 -1561,0.707107,0.000000,0.000000,0.707107 -1562,0.707107,0.000000,0.000000,0.707107 -1563,0.707107,0.000000,0.000000,0.707107 -1564,0.707107,0.000000,0.000000,0.707107 -1565,0.707107,0.000000,0.000000,0.707107 -1566,0.707107,0.000000,0.000000,0.707107 -1567,0.707107,0.000000,0.000000,0.707107 -1568,0.707107,0.000000,0.000000,0.707107 -1569,0.707107,0.000000,0.000000,0.707107 -1570,0.707107,0.000000,0.000000,0.707107 -1571,0.707107,0.000000,0.000000,0.707107 -1572,0.707107,0.000000,0.000000,0.707107 -1573,0.707107,0.000000,0.000000,0.707107 -1574,0.707107,0.000000,0.000000,0.707107 -1575,0.707107,0.000000,0.000000,0.707107 -1576,0.707107,0.000000,0.000000,0.707107 -1577,0.707107,0.000000,0.000000,0.707107 -1578,0.707107,0.000000,0.000000,0.707107 -1579,0.707107,0.000000,0.000000,0.707107 -1580,0.707107,0.000000,0.000000,0.707107 -1581,0.707107,0.000000,0.000000,0.707107 -1582,0.707107,0.000000,0.000000,0.707107 -1583,0.707107,0.000000,0.000000,0.707107 -1584,0.707107,0.000000,0.000000,0.707107 -1585,0.707107,0.000000,0.000000,0.707107 -1586,0.707107,0.000000,0.000000,0.707107 -1587,0.707107,0.000000,0.000000,0.707107 -1588,0.707107,0.000000,0.000000,0.707107 -1589,0.707107,0.000000,0.000000,0.707107 -1590,0.707107,0.000000,0.000000,0.707107 -1591,0.707107,0.000000,0.000000,0.707107 -1592,0.707107,0.000000,0.000000,0.707107 -1593,0.707107,0.000000,0.000000,0.707107 -1594,0.707107,0.000000,0.000000,0.707107 -1595,0.707107,0.000000,0.000000,0.707107 -1596,0.707107,0.000000,0.000000,0.707107 -1597,0.707107,0.000000,0.000000,0.707107 -1598,0.707107,0.000000,0.000000,0.707107 -1599,0.707107,0.000000,0.000000,0.707107 -1600,0.707107,0.000000,0.000000,0.707107 -1601,0.707107,0.000000,0.000000,0.707107 -1602,0.707107,0.000000,0.000000,0.707107 -1603,0.707107,0.000000,0.000000,0.707107 -1604,0.707107,0.000000,0.000000,0.707107 -1605,0.707107,0.000000,0.000000,0.707107 -1606,0.707107,0.000000,0.000000,0.707107 -1607,0.707107,0.000000,0.000000,0.707107 -1608,0.707107,0.000000,0.000000,0.707107 -1609,0.707107,0.000000,0.000000,0.707107 -1610,0.707107,0.000000,0.000000,0.707107 -1611,0.707107,0.000000,0.000000,0.707107 -1612,0.707107,0.000000,0.000000,0.707107 -1613,0.707107,0.000000,0.000000,0.707107 -1614,0.707107,0.000000,0.000000,0.707107 -1615,0.707107,0.000000,0.000000,0.707107 -1616,0.707107,0.000000,0.000000,0.707107 -1617,0.707107,0.000000,0.000000,0.707107 -1618,0.707107,0.000000,0.000000,0.707107 -1619,0.707107,0.000000,0.000000,0.707107 -1620,0.707107,0.000000,0.000000,0.707107 -1621,0.707107,0.000000,0.000000,0.707107 -1622,0.707107,0.000000,0.000000,0.707107 -1623,0.707107,0.000000,0.000000,0.707107 -1624,0.707107,0.000000,0.000000,0.707107 -1625,0.707107,0.000000,0.000000,0.707107 -1626,0.707107,0.000000,0.000000,0.707107 -1627,0.707107,0.000000,0.000000,0.707107 -1628,0.707107,0.000000,0.000000,0.707107 -1629,0.707107,0.000000,0.000000,0.707107 -1630,0.707107,0.000000,0.000000,0.707107 -1631,0.707107,0.000000,0.000000,0.707107 -1632,0.707107,0.000000,0.000000,0.707107 -1633,0.707107,0.000000,0.000000,0.707107 -1634,0.707107,0.000000,0.000000,0.707107 -1635,0.707107,0.000000,0.000000,0.707107 -1636,0.707107,0.000000,0.000000,0.707107 -1637,0.707107,0.000000,0.000000,0.707107 -1638,0.707107,0.000000,0.000000,0.707107 -1639,0.707107,0.000000,0.000000,0.707107 -1640,0.707107,0.000000,0.000000,0.707107 -1641,0.707107,0.000000,0.000000,0.707107 -1642,0.707107,0.000000,0.000000,0.707107 -1643,0.707107,0.000000,0.000000,0.707107 -1644,0.707107,0.000000,0.000000,0.707107 -1645,0.707107,0.000000,0.000000,0.707107 -1646,0.707107,0.000000,0.000000,0.707107 -1647,0.707107,0.000000,0.000000,0.707107 -1648,0.707107,0.000000,0.000000,0.707107 -1649,0.707107,0.000000,0.000000,0.707107 -1650,0.707107,0.000000,0.000000,0.707107 -1651,0.707107,0.000000,0.000000,0.707107 -1652,0.707107,0.000000,0.000000,0.707107 -1653,0.707107,0.000000,0.000000,0.707107 -1654,0.707107,0.000000,0.000000,0.707107 -1655,0.707107,0.000000,0.000000,0.707107 -1656,0.707107,0.000000,0.000000,0.707107 -1657,0.707107,0.000000,0.000000,0.707107 -1658,0.707107,0.000000,0.000000,0.707107 -1659,0.707107,0.000000,0.000000,0.707107 -1660,0.707107,0.000000,0.000000,0.707107 -1661,0.707107,0.000000,0.000000,0.707107 -1662,0.707107,0.000000,0.000000,0.707107 -1663,0.707107,0.000000,0.000000,0.707107 -1664,0.707107,0.000000,0.000000,0.707107 -1665,0.707107,0.000000,0.000000,0.707107 -1666,0.707107,0.000000,0.000000,0.707107 -1667,0.707107,0.000000,0.000000,0.707107 -1668,0.707107,0.000000,0.000000,0.707107 -1669,0.707107,0.000000,0.000000,0.707107 -1670,0.707107,0.000000,0.000000,0.707107 -1671,0.707107,0.000000,0.000000,0.707107 -1672,0.707107,0.000000,0.000000,0.707107 -1673,0.707107,0.000000,0.000000,0.707107 -1674,0.707107,0.000000,0.000000,0.707107 -1675,0.707107,0.000000,0.000000,0.707107 -1676,0.707107,0.000000,0.000000,0.707107 -1677,0.707107,0.000000,0.000000,0.707107 -1678,0.707107,0.000000,0.000000,0.707107 -1679,0.707107,0.000000,0.000000,0.707107 -1680,0.707107,0.000000,0.000000,0.707107 -1681,0.707107,0.000000,0.000000,0.707107 -1682,0.707107,0.000000,0.000000,0.707107 -1683,0.707107,0.000000,0.000000,0.707107 -1684,0.707107,0.000000,0.000000,0.707107 -1685,0.707107,0.000000,0.000000,0.707107 -1686,0.707107,0.000000,0.000000,0.707107 -1687,0.707107,0.000000,0.000000,0.707107 -1688,0.707107,0.000000,0.000000,0.707107 -1689,0.707107,0.000000,0.000000,0.707107 -1690,0.707107,0.000000,0.000000,0.707107 -1691,0.707107,0.000000,0.000000,0.707107 -1692,0.707107,0.000000,0.000000,0.707107 -1693,0.707107,0.000000,0.000000,0.707107 -1694,0.707107,0.000000,0.000000,0.707107 -1695,0.707107,0.000000,0.000000,0.707107 -1696,0.707107,0.000000,0.000000,0.707107 -1697,0.707107,0.000000,0.000000,0.707107 -1698,0.707107,0.000000,0.000000,0.707107 -1699,0.707107,0.000000,0.000000,0.707107 -1700,0.707107,0.000000,0.000000,0.707107 -1701,0.707107,0.000000,0.000000,0.707107 -1702,0.707107,0.000000,0.000000,0.707107 -1703,0.707107,0.000000,0.000000,0.707107 -1704,0.707107,0.000000,0.000000,0.707107 -1705,0.707107,0.000000,0.000000,0.707107 -1706,0.707107,0.000000,0.000000,0.707107 -1707,0.707107,0.000000,0.000000,0.707107 -1708,0.707107,0.000000,0.000000,0.707107 -1709,0.707107,0.000000,0.000000,0.707107 -1710,0.707107,0.000000,0.000000,0.707107 -1711,0.707107,0.000000,0.000000,0.707107 -1712,0.707107,0.000000,0.000000,0.707107 -1713,0.707107,0.000000,0.000000,0.707107 -1714,0.707107,0.000000,0.000000,0.707107 -1715,0.707107,0.000000,0.000000,0.707107 -1716,0.707107,0.000000,0.000000,0.707107 -1717,0.707107,0.000000,0.000000,0.707107 -1718,0.707107,0.000000,0.000000,0.707107 -1719,0.707107,0.000000,0.000000,0.707107 -1720,0.707107,0.000000,0.000000,0.707107 -1721,0.707107,0.000000,0.000000,0.707107 -1722,0.707107,0.000000,0.000000,0.707107 -1723,0.707107,0.000000,0.000000,0.707107 -1724,0.707107,0.000000,0.000000,0.707107 -1725,0.707107,0.000000,0.000000,0.707107 -1726,0.707107,0.000000,0.000000,0.707107 -1727,0.707107,0.000000,0.000000,0.707107 -1728,0.707107,0.000000,0.000000,0.707107 -1729,0.707107,0.000000,0.000000,0.707107 -1730,0.707107,0.000000,0.000000,0.707107 -1731,0.707107,0.000000,0.000000,0.707107 -1732,0.707107,0.000000,0.000000,0.707107 -1733,0.707107,0.000000,0.000000,0.707107 -1734,0.707107,0.000000,0.000000,0.707107 -1735,0.707107,0.000000,0.000000,0.707107 -1736,0.707107,0.000000,0.000000,0.707107 -1737,0.707107,0.000000,0.000000,0.707107 -1738,0.707107,0.000000,0.000000,0.707107 -1739,0.707107,0.000000,0.000000,0.707107 -1740,0.707107,0.000000,0.000000,0.707107 -1741,0.707107,0.000000,0.000000,0.707107 -1742,0.707107,0.000000,0.000000,0.707107 -1743,0.707107,0.000000,0.000000,0.707107 -1744,0.707107,0.000000,0.000000,0.707107 -1745,0.707107,0.000000,0.000000,0.707107 -1746,0.707107,0.000000,0.000000,0.707107 -1747,0.707107,0.000000,0.000000,0.707107 -1748,0.707107,0.000000,0.000000,0.707107 -1749,0.707107,0.000000,0.000000,0.707107 -1750,0.707107,0.000000,0.000000,0.707107 -1751,0.707107,0.000000,0.000000,0.707107 -1752,0.707107,0.000000,0.000000,0.707107 -1753,0.707107,0.000000,0.000000,0.707107 -1754,0.707107,0.000000,0.000000,0.707107 -1755,0.707107,0.000000,0.000000,0.707107 -1756,0.707107,0.000000,0.000000,0.707107 -1757,0.707107,0.000000,0.000000,0.707107 -1758,0.707107,0.000000,0.000000,0.707107 -1759,0.707107,0.000000,0.000000,0.707107 -1760,0.707107,0.000000,0.000000,0.707107 -1761,0.707107,0.000000,0.000000,0.707107 -1762,0.707107,0.000000,0.000000,0.707107 -1763,0.707107,0.000000,0.000000,0.707107 -1764,0.707107,0.000000,0.000000,0.707107 -1765,0.707107,0.000000,0.000000,0.707107 -1766,0.707107,0.000000,0.000000,0.707107 -1767,0.707107,0.000000,0.000000,0.707107 -1768,0.707107,0.000000,0.000000,0.707107 -1769,0.707107,0.000000,0.000000,0.707107 -1770,0.707107,0.000000,0.000000,0.707107 -1771,0.707107,0.000000,0.000000,0.707107 -1772,0.707107,0.000000,0.000000,0.707107 -1773,0.707107,0.000000,0.000000,0.707107 -1774,0.707107,0.000000,0.000000,0.707107 -1775,0.707107,0.000000,0.000000,0.707107 -1776,0.707107,0.000000,0.000000,0.707107 -1777,0.707107,0.000000,0.000000,0.707107 -1778,0.707107,0.000000,0.000000,0.707107 -1779,0.707107,0.000000,0.000000,0.707107 -1780,0.707107,0.000000,0.000000,0.707107 -1781,0.707107,0.000000,0.000000,0.707107 -1782,0.707107,0.000000,0.000000,0.707107 -1783,0.707107,0.000000,0.000000,0.707107 -1784,0.707107,0.000000,0.000000,0.707107 -1785,0.707107,0.000000,0.000000,0.707107 -1786,0.707107,0.000000,0.000000,0.707107 -1787,0.707107,0.000000,0.000000,0.707107 -1788,0.707107,0.000000,0.000000,0.707107 -1789,0.707107,0.000000,0.000000,0.707107 -1790,0.707107,0.000000,0.000000,0.707107 -1791,0.707107,0.000000,0.000000,0.707107 -1792,0.707107,0.000000,0.000000,0.707107 -1793,0.707107,0.000000,0.000000,0.707107 -1794,0.707107,0.000000,0.000000,0.707107 -1795,0.707107,0.000000,0.000000,0.707107 -1796,0.707107,0.000000,0.000000,0.707107 -1797,0.707107,0.000000,0.000000,0.707107 -1798,0.707107,0.000000,0.000000,0.707107 -1799,0.707107,0.000000,0.000000,0.707107 -1800,0.707107,0.000000,0.000000,0.707107 -1801,0.707107,0.000000,0.000000,0.707107 -1802,0.707107,0.000000,0.000000,0.707107 -1803,0.707107,0.000000,0.000000,0.707107 -1804,0.707107,0.000000,0.000000,0.707107 -1805,0.707107,0.000000,0.000000,0.707107 -1806,0.707107,0.000000,0.000000,0.707107 -1807,0.707107,0.000000,0.000000,0.707107 -1808,0.707107,0.000000,0.000000,0.707107 -1809,0.707107,0.000000,0.000000,0.707107 -1810,0.707107,0.000000,0.000000,0.707107 -1811,0.707107,0.000000,0.000000,0.707107 -1812,0.707107,0.000000,0.000000,0.707107 -1813,0.707107,0.000000,0.000000,0.707107 -1814,0.707107,0.000000,0.000000,0.707107 -1815,0.707107,0.000000,0.000000,0.707107 -1816,0.707107,0.000000,0.000000,0.707107 -1817,0.707107,0.000000,0.000000,0.707107 -1818,0.707107,0.000000,0.000000,0.707107 -1819,0.707107,0.000000,0.000000,0.707107 -1820,0.707107,0.000000,0.000000,0.707107 -1821,0.707107,0.000000,0.000000,0.707107 -1822,0.707107,0.000000,0.000000,0.707107 -1823,0.707107,0.000000,0.000000,0.707107 -1824,0.707107,0.000000,0.000000,0.707107 -1825,0.707107,0.000000,0.000000,0.707107 -1826,0.707107,0.000000,0.000000,0.707107 -1827,0.707107,0.000000,0.000000,0.707107 -1828,0.707107,0.000000,0.000000,0.707107 -1829,0.707107,0.000000,0.000000,0.707107 -1830,0.707107,0.000000,0.000000,0.707107 -1831,0.707107,0.000000,0.000000,0.707107 -1832,0.707107,0.000000,0.000000,0.707107 -1833,0.707107,0.000000,0.000000,0.707107 -1834,0.707107,0.000000,0.000000,0.707107 -1835,0.707107,0.000000,0.000000,0.707107 -1836,0.707107,0.000000,0.000000,0.707107 -1837,0.707107,0.000000,0.000000,0.707107 -1838,0.707107,0.000000,0.000000,0.707107 -1839,0.707107,0.000000,0.000000,0.707107 -1840,0.707107,0.000000,0.000000,0.707107 -1841,0.707107,0.000000,0.000000,0.707107 -1842,0.707107,0.000000,0.000000,0.707107 -1843,0.707107,0.000000,0.000000,0.707107 -1844,0.707107,0.000000,0.000000,0.707107 -1845,0.707107,0.000000,0.000000,0.707107 -1846,0.707107,0.000000,0.000000,0.707107 -1847,0.707107,0.000000,0.000000,0.707107 -1848,0.707107,0.000000,0.000000,0.707107 -1849,0.707107,0.000000,0.000000,0.707107 -1850,0.707107,0.000000,0.000000,0.707107 -1851,0.707107,0.000000,0.000000,0.707107 -1852,0.707107,0.000000,0.000000,0.707107 -1853,0.707107,0.000000,0.000000,0.707107 -1854,0.707107,0.000000,0.000000,0.707107 -1855,0.707107,0.000000,0.000000,0.707107 -1856,0.707107,0.000000,0.000000,0.707107 -1857,0.707107,0.000000,0.000000,0.707107 -1858,0.707107,0.000000,0.000000,0.707107 -1859,0.707107,0.000000,0.000000,0.707107 -1860,0.707107,0.000000,0.000000,0.707107 -1861,0.707107,0.000000,0.000000,0.707107 -1862,0.707107,0.000000,0.000000,0.707107 -1863,0.707107,0.000000,0.000000,0.707107 -1864,0.707107,0.000000,0.000000,0.707107 -1865,0.707107,0.000000,0.000000,0.707107 -1866,0.707107,0.000000,0.000000,0.707107 -1867,0.707107,0.000000,0.000000,0.707107 -1868,0.707107,0.000000,0.000000,0.707107 -1869,0.707107,0.000000,0.000000,0.707107 -1870,0.707107,0.000000,0.000000,0.707107 -1871,0.707107,0.000000,0.000000,0.707107 -1872,0.707107,0.000000,0.000000,0.707107 -1873,0.707107,0.000000,0.000000,0.707107 -1874,0.707107,0.000000,0.000000,0.707107 -1875,0.707107,0.000000,0.000000,0.707107 -1876,0.707107,0.000000,0.000000,0.707107 -1877,0.707107,0.000000,0.000000,0.707107 -1878,0.707107,0.000000,0.000000,0.707107 -1879,0.707107,0.000000,0.000000,0.707107 -1880,0.707107,0.000000,0.000000,0.707107 -1881,0.707107,0.000000,0.000000,0.707107 -1882,0.707107,0.000000,0.000000,0.707107 -1883,0.707107,0.000000,0.000000,0.707107 -1884,0.707107,0.000000,0.000000,0.707107 -1885,0.707107,0.000000,0.000000,0.707107 -1886,0.707107,0.000000,0.000000,0.707107 -1887,0.707107,0.000000,0.000000,0.707107 -1888,0.707107,0.000000,0.000000,0.707107 -1889,0.707107,0.000000,0.000000,0.707107 -1890,0.707107,0.000000,0.000000,0.707107 -1891,0.707107,0.000000,0.000000,0.707107 -1892,0.707107,0.000000,0.000000,0.707107 -1893,0.707107,0.000000,0.000000,0.707107 -1894,0.707107,0.000000,0.000000,0.707107 -1895,0.707107,0.000000,0.000000,0.707107 -1896,0.707107,0.000000,0.000000,0.707107 -1897,0.707107,0.000000,0.000000,0.707107 -1898,0.707107,0.000000,0.000000,0.707107 -1899,0.707107,0.000000,0.000000,0.707107 -1900,0.707107,0.000000,0.000000,0.707107 -1901,0.707107,0.000000,0.000000,0.707107 -1902,0.707107,0.000000,0.000000,0.707107 -1903,0.707107,0.000000,0.000000,0.707107 -1904,0.707107,0.000000,0.000000,0.707107 -1905,0.707107,0.000000,0.000000,0.707107 -1906,0.707107,0.000000,0.000000,0.707107 -1907,0.707107,0.000000,0.000000,0.707107 -1908,0.707107,0.000000,0.000000,0.707107 -1909,0.707107,0.000000,0.000000,0.707107 -1910,0.707107,0.000000,0.000000,0.707107 -1911,0.707107,0.000000,0.000000,0.707107 -1912,0.707107,0.000000,0.000000,0.707107 -1913,0.707107,0.000000,0.000000,0.707107 -1914,0.707107,0.000000,0.000000,0.707107 -1915,0.707107,0.000000,0.000000,0.707107 -1916,0.707107,0.000000,0.000000,0.707107 -1917,0.707107,0.000000,0.000000,0.707107 -1918,0.707107,0.000000,0.000000,0.707107 -1919,0.707107,0.000000,0.000000,0.707107 -1920,0.707107,0.000000,0.000000,0.707107 -1921,0.707107,0.000000,0.000000,0.707107 -1922,0.707107,0.000000,0.000000,0.707107 -1923,0.707107,0.000000,0.000000,0.707107 -1924,0.707107,0.000000,0.000000,0.707107 -1925,0.707107,0.000000,0.000000,0.707107 -1926,0.707107,0.000000,0.000000,0.707107 -1927,0.707107,0.000000,0.000000,0.707107 -1928,0.707107,0.000000,0.000000,0.707107 -1929,0.707107,0.000000,0.000000,0.707107 -1930,0.707107,0.000000,0.000000,0.707107 -1931,0.707107,0.000000,0.000000,0.707107 -1932,0.707107,0.000000,0.000000,0.707107 -1933,0.707107,0.000000,0.000000,0.707107 -1934,0.707107,0.000000,0.000000,0.707107 -1935,0.707107,0.000000,0.000000,0.707107 -1936,0.707107,0.000000,0.000000,0.707107 -1937,0.707107,0.000000,0.000000,0.707107 -1938,0.707107,0.000000,0.000000,0.707107 -1939,0.707107,0.000000,0.000000,0.707107 -1940,0.707107,0.000000,0.000000,0.707107 -1941,0.707107,0.000000,0.000000,0.707107 -1942,0.707107,0.000000,0.000000,0.707107 -1943,0.707107,0.000000,0.000000,0.707107 -1944,0.707107,0.000000,0.000000,0.707107 -1945,0.707107,0.000000,0.000000,0.707107 -1946,0.707107,0.000000,0.000000,0.707107 -1947,0.707107,0.000000,0.000000,0.707107 -1948,0.707107,0.000000,0.000000,0.707107 -1949,0.707107,0.000000,0.000000,0.707107 -1950,0.707107,0.000000,0.000000,0.707107 -1951,0.707107,0.000000,0.000000,0.707107 -1952,0.707107,0.000000,0.000000,0.707107 -1953,0.707107,0.000000,0.000000,0.707107 -1954,0.707107,0.000000,0.000000,0.707107 -1955,0.707107,0.000000,0.000000,0.707107 -1956,0.707107,0.000000,0.000000,0.707107 -1957,0.707107,0.000000,0.000000,0.707107 -1958,0.707107,0.000000,0.000000,0.707107 -1959,0.707107,0.000000,0.000000,0.707107 -1960,0.707107,0.000000,0.000000,0.707107 -1961,0.707107,0.000000,0.000000,0.707107 -1962,0.707107,0.000000,0.000000,0.707107 -1963,0.707107,0.000000,0.000000,0.707107 -1964,0.707107,0.000000,0.000000,0.707107 -1965,0.707107,0.000000,0.000000,0.707107 -1966,0.707107,0.000000,0.000000,0.707107 -1967,0.707107,0.000000,0.000000,0.707107 -1968,0.707107,0.000000,0.000000,0.707107 -1969,0.707107,0.000000,0.000000,0.707107 -1970,0.707107,0.000000,0.000000,0.707107 -1971,0.707107,0.000000,0.000000,0.707107 -1972,0.707107,0.000000,0.000000,0.707107 -1973,0.707107,0.000000,0.000000,0.707107 -1974,0.707107,0.000000,0.000000,0.707107 -1975,0.707107,0.000000,0.000000,0.707107 -1976,0.707107,0.000000,0.000000,0.707107 -1977,0.707107,0.000000,0.000000,0.707107 -1978,0.707107,0.000000,0.000000,0.707107 -1979,0.707107,0.000000,0.000000,0.707107 -1980,0.707107,0.000000,0.000000,0.707107 -1981,0.707107,0.000000,0.000000,0.707107 -1982,0.707107,0.000000,0.000000,0.707107 -1983,0.707107,0.000000,0.000000,0.707107 -1984,0.707107,0.000000,0.000000,0.707107 -1985,0.707107,0.000000,0.000000,0.707107 -1986,0.707107,0.000000,0.000000,0.707107 -1987,0.707107,0.000000,0.000000,0.707107 -1988,0.707107,0.000000,0.000000,0.707107 -1989,0.707107,0.000000,0.000000,0.707107 -1990,0.707107,0.000000,0.000000,0.707107 -1991,0.707107,0.000000,0.000000,0.707107 -1992,0.707107,0.000000,0.000000,0.707107 -1993,0.707107,0.000000,0.000000,0.707107 -1994,0.707107,0.000000,0.000000,0.707107 -1995,0.707107,0.000000,0.000000,0.707107 -1996,0.707107,0.000000,0.000000,0.707107 -1997,0.707107,0.000000,0.000000,0.707107 -1998,0.707107,0.000000,0.000000,0.707107 -1999,0.707107,0.000000,0.000000,0.707107 -2000,0.707107,0.000000,0.000000,0.707107 -2001,0.707107,0.000000,0.000000,0.707107 -2002,0.707107,0.000000,0.000000,0.707107 -2003,0.707107,0.000000,0.000000,0.707107 -2004,0.707107,0.000000,0.000000,0.707107 -2005,0.707107,0.000000,0.000000,0.707107 -2006,0.707107,0.000000,0.000000,0.707107 -2007,0.707107,0.000000,0.000000,0.707107 -2008,0.707107,0.000000,0.000000,0.707107 -2009,0.707107,0.000000,0.000000,0.707107 -2010,0.707107,0.000000,0.000000,0.707107 -2011,0.707107,0.000000,0.000000,0.707107 -2012,0.707107,0.000000,0.000000,0.707107 -2013,0.707107,0.000000,0.000000,0.707107 -2014,0.707107,0.000000,0.000000,0.707107 -2015,0.707107,0.000000,0.000000,0.707107 -2016,0.707107,0.000000,0.000000,0.707107 -2017,0.707107,0.000000,0.000000,0.707107 -2018,0.707107,0.000000,0.000000,0.707107 -2019,0.707107,0.000000,0.000000,0.707107 -2020,0.707107,0.000000,0.000000,0.707107 -2021,0.707107,0.000000,0.000000,0.707107 -2022,0.707107,0.000000,0.000000,0.707107 -2023,0.707107,0.000000,0.000000,0.707107 -2024,0.707107,0.000000,0.000000,0.707107 -2025,0.707107,0.000000,0.000000,0.707107 -2026,0.707107,0.000000,0.000000,0.707107 -2027,0.707107,0.000000,0.000000,0.707107 -2028,0.707107,0.000000,0.000000,0.707107 -2029,0.707107,0.000000,0.000000,0.707107 -2030,0.707107,0.000000,0.000000,0.707107 -2031,0.707107,0.000000,0.000000,0.707107 -2032,0.707107,0.000000,0.000000,0.707107 -2033,0.707107,0.000000,0.000000,0.707107 -2034,0.707107,0.000000,0.000000,0.707107 -2035,0.707107,0.000000,0.000000,0.707107 -2036,0.707107,0.000000,0.000000,0.707107 -2037,0.707107,0.000000,0.000000,0.707107 -2038,0.707107,0.000000,0.000000,0.707107 -2039,0.707107,0.000000,0.000000,0.707107 -2040,0.707107,0.000000,0.000000,0.707107 -2041,0.707107,0.000000,0.000000,0.707107 -2042,0.707107,0.000000,0.000000,0.707107 -2043,0.707107,0.000000,0.000000,0.707107 -2044,0.707107,0.000000,0.000000,0.707107 -2045,0.707107,0.000000,0.000000,0.707107 -2046,0.707107,0.000000,0.000000,0.707107 -2047,0.707107,0.000000,0.000000,0.707107 -2048,0.707107,0.000000,0.000000,0.707107 -2049,0.707107,0.000000,0.000000,0.707107 -2050,0.707107,0.000000,0.000000,0.707107 -2051,0.707107,0.000000,0.000000,0.707107 -2052,0.707107,0.000000,0.000000,0.707107 -2053,0.707107,0.000000,0.000000,0.707107 -2054,0.707107,0.000000,0.000000,0.707107 -2055,0.707107,0.000000,0.000000,0.707107 -2056,0.707107,0.000000,0.000000,0.707107 -2057,0.707107,0.000000,0.000000,0.707107 -2058,0.707107,0.000000,0.000000,0.707107 -2059,0.707107,0.000000,0.000000,0.707107 -2060,0.707107,0.000000,0.000000,0.707107 -2061,0.707107,0.000000,0.000000,0.707107 -2062,0.707107,0.000000,0.000000,0.707107 -2063,0.707107,0.000000,0.000000,0.707107 -2064,0.707107,0.000000,0.000000,0.707107 -2065,0.707107,0.000000,0.000000,0.707107 -2066,0.707107,0.000000,0.000000,0.707107 -2067,0.707107,0.000000,0.000000,0.707107 -2068,0.707107,0.000000,0.000000,0.707107 -2069,0.707107,0.000000,0.000000,0.707107 -2070,0.707107,0.000000,0.000000,0.707107 -2071,0.707107,0.000000,0.000000,0.707107 -2072,0.707107,0.000000,0.000000,0.707107 -2073,0.707107,0.000000,0.000000,0.707107 -2074,0.707107,0.000000,0.000000,0.707107 -2075,0.707107,0.000000,0.000000,0.707107 -2076,0.707107,0.000000,0.000000,0.707107 -2077,0.707107,0.000000,0.000000,0.707107 -2078,0.707107,0.000000,0.000000,0.707107 -2079,0.707107,0.000000,0.000000,0.707107 -2080,0.707107,0.000000,0.000000,0.707107 -2081,0.707107,0.000000,0.000000,0.707107 -2082,0.707107,0.000000,0.000000,0.707107 -2083,0.707107,0.000000,0.000000,0.707107 -2084,0.707107,0.000000,0.000000,0.707107 -2085,0.707107,0.000000,0.000000,0.707107 -2086,0.707107,0.000000,0.000000,0.707107 -2087,0.707107,0.000000,0.000000,0.707107 -2088,0.707107,0.000000,0.000000,0.707107 -2089,0.707107,0.000000,0.000000,0.707107 -2090,0.707107,0.000000,0.000000,0.707107 -2091,0.707107,0.000000,0.000000,0.707107 -2092,0.707107,0.000000,0.000000,0.707107 -2093,0.707107,0.000000,0.000000,0.707107 -2094,0.707107,0.000000,0.000000,0.707107 -2095,0.707107,0.000000,0.000000,0.707107 -2096,0.707107,0.000000,0.000000,0.707107 -2097,0.707107,0.000000,0.000000,0.707107 -2098,0.707107,0.000000,0.000000,0.707107 -2099,0.707107,0.000000,0.000000,0.707107 -2100,0.707107,0.000000,0.000000,0.707107 -2101,0.707107,0.000000,0.000000,0.707107 -2102,0.707107,0.000000,0.000000,0.707107 -2103,0.707107,0.000000,0.000000,0.707107 -2104,0.707107,0.000000,0.000000,0.707107 -2105,0.707107,0.000000,0.000000,0.707107 -2106,0.707107,0.000000,0.000000,0.707107 -2107,0.707107,0.000000,0.000000,0.707107 -2108,0.707107,0.000000,0.000000,0.707107 -2109,0.707107,0.000000,0.000000,0.707107 -2110,0.707107,0.000000,0.000000,0.707107 -2111,0.707107,0.000000,0.000000,0.707107 -2112,0.707107,0.000000,0.000000,0.707107 -2113,0.707107,0.000000,0.000000,0.707107 -2114,0.707107,0.000000,0.000000,0.707107 -2115,0.707107,0.000000,0.000000,0.707107 -2116,0.707107,0.000000,0.000000,0.707107 -2117,0.707107,0.000000,0.000000,0.707107 -2118,0.707107,0.000000,0.000000,0.707107 -2119,0.707107,0.000000,0.000000,0.707107 -2120,0.707107,0.000000,0.000000,0.707107 -2121,0.707107,0.000000,0.000000,0.707107 -2122,0.707107,0.000000,0.000000,0.707107 -2123,0.707107,0.000000,0.000000,0.707107 -2124,0.707107,0.000000,0.000000,0.707107 -2125,0.707107,0.000000,0.000000,0.707107 -2126,0.707107,0.000000,0.000000,0.707107 -2127,0.707107,0.000000,0.000000,0.707107 -2128,0.707107,0.000000,0.000000,0.707107 -2129,0.707107,0.000000,0.000000,0.707107 -2130,0.707107,0.000000,0.000000,0.707107 -2131,0.707107,0.000000,0.000000,0.707107 -2132,0.707107,0.000000,0.000000,0.707107 -2133,0.707107,0.000000,0.000000,0.707107 -2134,0.707107,0.000000,0.000000,0.707107 -2135,0.707107,0.000000,0.000000,0.707107 -2136,0.707107,0.000000,0.000000,0.707107 -2137,0.707107,0.000000,0.000000,0.707107 -2138,0.707107,0.000000,0.000000,0.707107 -2139,0.707107,0.000000,0.000000,0.707107 -2140,0.707107,0.000000,0.000000,0.707107 -2141,0.707107,0.000000,0.000000,0.707107 -2142,0.707107,0.000000,0.000000,0.707107 -2143,0.707107,0.000000,0.000000,0.707107 -2144,0.707107,0.000000,0.000000,0.707107 -2145,0.707107,0.000000,0.000000,0.707107 -2146,0.707107,0.000000,0.000000,0.707107 -2147,0.707107,0.000000,0.000000,0.707107 -2148,0.707107,0.000000,0.000000,0.707107 -2149,0.707107,0.000000,0.000000,0.707107 -2150,0.707107,0.000000,0.000000,0.707107 -2151,0.707107,0.000000,0.000000,0.707107 -2152,0.707107,0.000000,0.000000,0.707107 -2153,0.707107,0.000000,0.000000,0.707107 -2154,0.707107,0.000000,0.000000,0.707107 -2155,0.707107,0.000000,0.000000,0.707107 -2156,0.707107,0.000000,0.000000,0.707107 -2157,0.707107,0.000000,0.000000,0.707107 -2158,0.707107,0.000000,0.000000,0.707107 -2159,0.707107,0.000000,0.000000,0.707107 -2160,0.707107,0.000000,0.000000,0.707107 -2161,0.707107,0.000000,0.000000,0.707107 -2162,0.707107,0.000000,0.000000,0.707107 -2163,0.707107,0.000000,0.000000,0.707107 -2164,0.707107,0.000000,0.000000,0.707107 -2165,0.707107,0.000000,0.000000,0.707107 -2166,0.707107,0.000000,0.000000,0.707107 -2167,0.707107,0.000000,0.000000,0.707107 -2168,0.707107,0.000000,0.000000,0.707107 -2169,0.707107,0.000000,0.000000,0.707107 -2170,0.707107,0.000000,0.000000,0.707107 -2171,0.707107,0.000000,0.000000,0.707107 -2172,0.707107,0.000000,0.000000,0.707107 -2173,0.707107,0.000000,0.000000,0.707107 -2174,0.707107,0.000000,0.000000,0.707107 -2175,0.707107,0.000000,0.000000,0.707107 -2176,0.707107,0.000000,0.000000,0.707107 -2177,0.707107,0.000000,0.000000,0.707107 -2178,0.707107,0.000000,0.000000,0.707107 -2179,0.707107,0.000000,0.000000,0.707107 -2180,0.707107,0.000000,0.000000,0.707107 -2181,0.707107,0.000000,0.000000,0.707107 -2182,0.707107,0.000000,0.000000,0.707107 -2183,0.707107,0.000000,0.000000,0.707107 -2184,0.707107,0.000000,0.000000,0.707107 -2185,0.707107,0.000000,0.000000,0.707107 -2186,0.707107,0.000000,0.000000,0.707107 -2187,0.707107,0.000000,0.000000,0.707107 -2188,0.707107,0.000000,0.000000,0.707107 -2189,0.707107,0.000000,0.000000,0.707107 -2190,0.707107,0.000000,0.000000,0.707107 -2191,0.707107,0.000000,0.000000,0.707107 -2192,0.707107,0.000000,0.000000,0.707107 -2193,0.707107,0.000000,0.000000,0.707107 -2194,0.707107,0.000000,0.000000,0.707107 -2195,0.707107,0.000000,0.000000,0.707107 -2196,0.707107,0.000000,0.000000,0.707107 -2197,0.707107,0.000000,0.000000,0.707107 -2198,0.707107,0.000000,0.000000,0.707107 -2199,0.707107,0.000000,0.000000,0.707107 -2200,0.707107,0.000000,0.000000,0.707107 -2201,0.707107,0.000000,0.000000,0.707107 -2202,0.707107,0.000000,0.000000,0.707107 -2203,0.707107,0.000000,0.000000,0.707107 -2204,0.707107,0.000000,0.000000,0.707107 -2205,0.707107,0.000000,0.000000,0.707107 -2206,0.707107,0.000000,0.000000,0.707107 -2207,0.707107,0.000000,0.000000,0.707107 -2208,0.707107,0.000000,0.000000,0.707107 -2209,0.707107,0.000000,0.000000,0.707107 -2210,0.707107,0.000000,0.000000,0.707107 -2211,0.707107,0.000000,0.000000,0.707107 -2212,0.707107,0.000000,0.000000,0.707107 -2213,0.707107,0.000000,0.000000,0.707107 -2214,0.707107,0.000000,0.000000,0.707107 -2215,0.707107,0.000000,0.000000,0.707107 -2216,0.707107,0.000000,0.000000,0.707107 -2217,0.707107,0.000000,0.000000,0.707107 -2218,0.707107,0.000000,0.000000,0.707107 -2219,0.707107,0.000000,0.000000,0.707107 -2220,0.707107,0.000000,0.000000,0.707107 -2221,0.707107,0.000000,0.000000,0.707107 -2222,0.707107,0.000000,0.000000,0.707107 -2223,0.707107,0.000000,0.000000,0.707107 -2224,0.707107,0.000000,0.000000,0.707107 -2225,0.707107,0.000000,0.000000,0.707107 -2226,0.707107,0.000000,0.000000,0.707107 -2227,0.707107,0.000000,0.000000,0.707107 -2228,0.707107,0.000000,0.000000,0.707107 -2229,0.707107,0.000000,0.000000,0.707107 -2230,0.707107,0.000000,0.000000,0.707107 -2231,0.707107,0.000000,0.000000,0.707107 -2232,0.707107,0.000000,0.000000,0.707107 -2233,0.707107,0.000000,0.000000,0.707107 -2234,0.707107,0.000000,0.000000,0.707107 -2235,0.707107,0.000000,0.000000,0.707107 -2236,0.707107,0.000000,0.000000,0.707107 -2237,0.707107,0.000000,0.000000,0.707107 -2238,0.707107,0.000000,0.000000,0.707107 -2239,0.707107,0.000000,0.000000,0.707107 -2240,0.707107,0.000000,0.000000,0.707107 -2241,0.707107,0.000000,0.000000,0.707107 -2242,0.707107,0.000000,0.000000,0.707107 -2243,0.707107,0.000000,0.000000,0.707107 -2244,0.707107,0.000000,0.000000,0.707107 -2245,0.707107,0.000000,0.000000,0.707107 -2246,0.707107,0.000000,0.000000,0.707107 -2247,0.707107,0.000000,0.000000,0.707107 -2248,0.707107,0.000000,0.000000,0.707107 -2249,0.707107,0.000000,0.000000,0.707107 -2250,0.707107,0.000000,0.000000,0.707107 -2251,0.707107,0.000000,0.000000,0.707107 -2252,0.707107,0.000000,0.000000,0.707107 -2253,0.707107,0.000000,0.000000,0.707107 -2254,0.707107,0.000000,0.000000,0.707107 -2255,0.707107,0.000000,0.000000,0.707107 -2256,0.707107,0.000000,0.000000,0.707107 -2257,0.707107,0.000000,0.000000,0.707107 -2258,0.707107,0.000000,0.000000,0.707107 -2259,0.707107,0.000000,0.000000,0.707107 -2260,0.707107,0.000000,0.000000,0.707107 -2261,0.707107,0.000000,0.000000,0.707107 -2262,0.707107,0.000000,0.000000,0.707107 -2263,0.707107,0.000000,0.000000,0.707107 -2264,0.707107,0.000000,0.000000,0.707107 -2265,0.707107,0.000000,0.000000,0.707107 -2266,0.707107,0.000000,0.000000,0.707107 -2267,0.707107,0.000000,0.000000,0.707107 -2268,0.707107,0.000000,0.000000,0.707107 -2269,0.707107,0.000000,0.000000,0.707107 -2270,0.707107,0.000000,0.000000,0.707107 -2271,0.707107,0.000000,0.000000,0.707107 -2272,0.707107,0.000000,0.000000,0.707107 -2273,0.707107,0.000000,0.000000,0.707107 -2274,0.707107,0.000000,0.000000,0.707107 -2275,0.707107,0.000000,0.000000,0.707107 -2276,0.707107,0.000000,0.000000,0.707107 -2277,0.707107,0.000000,0.000000,0.707107 -2278,0.707107,0.000000,0.000000,0.707107 -2279,0.707107,0.000000,0.000000,0.707107 -2280,0.707107,0.000000,0.000000,0.707107 -2281,0.707107,0.000000,0.000000,0.707107 -2282,0.707107,0.000000,0.000000,0.707107 -2283,0.707107,0.000000,0.000000,0.707107 -2284,0.707107,0.000000,0.000000,0.707107 -2285,0.707107,0.000000,0.000000,0.707107 -2286,0.707107,0.000000,0.000000,0.707107 -2287,0.707107,0.000000,0.000000,0.707107 -2288,0.707107,0.000000,0.000000,0.707107 -2289,0.707107,0.000000,0.000000,0.707107 -2290,0.707107,0.000000,0.000000,0.707107 -2291,0.707107,0.000000,0.000000,0.707107 -2292,0.707107,0.000000,0.000000,0.707107 -2293,0.707107,0.000000,0.000000,0.707107 -2294,0.707107,0.000000,0.000000,0.707107 -2295,0.707107,0.000000,0.000000,0.707107 -2296,0.707107,0.000000,0.000000,0.707107 -2297,0.707107,0.000000,0.000000,0.707107 -2298,0.707107,0.000000,0.000000,0.707107 -2299,0.707107,0.000000,0.000000,0.707107 -2300,0.707107,0.000000,0.000000,0.707107 -2301,0.707107,0.000000,0.000000,0.707107 -2302,0.707107,0.000000,0.000000,0.707107 -2303,0.707107,0.000000,0.000000,0.707107 -2304,0.707107,0.000000,0.000000,0.707107 -2305,0.707107,0.000000,0.000000,0.707107 -2306,0.707107,0.000000,0.000000,0.707107 -2307,0.707107,0.000000,0.000000,0.707107 -2308,0.707107,0.000000,0.000000,0.707107 -2309,0.707107,0.000000,0.000000,0.707107 -2310,0.707107,0.000000,0.000000,0.707107 -2311,0.707107,0.000000,0.000000,0.707107 -2312,0.707107,0.000000,0.000000,0.707107 -2313,0.707107,0.000000,0.000000,0.707107 -2314,0.707107,0.000000,0.000000,0.707107 -2315,0.707107,0.000000,0.000000,0.707107 -2316,0.707107,0.000000,0.000000,0.707107 -2317,0.707107,0.000000,0.000000,0.707107 -2318,0.707107,0.000000,0.000000,0.707107 -2319,0.707107,0.000000,0.000000,0.707107 -2320,0.707107,0.000000,0.000000,0.707107 -2321,0.707107,0.000000,0.000000,0.707107 -2322,0.707107,0.000000,0.000000,0.707107 -2323,0.707107,0.000000,0.000000,0.707107 -2324,0.707107,0.000000,0.000000,0.707107 -2325,0.707107,0.000000,0.000000,0.707107 -2326,0.707107,0.000000,0.000000,0.707107 -2327,0.707107,0.000000,0.000000,0.707107 -2328,0.707107,0.000000,0.000000,0.707107 -2329,0.707107,0.000000,0.000000,0.707107 -2330,0.707107,0.000000,0.000000,0.707107 -2331,0.707107,0.000000,0.000000,0.707107 -2332,0.707107,0.000000,0.000000,0.707107 -2333,0.707107,0.000000,0.000000,0.707107 -2334,0.707107,0.000000,0.000000,0.707107 -2335,0.707107,0.000000,0.000000,0.707107 -2336,0.707107,0.000000,0.000000,0.707107 -2337,0.707107,0.000000,0.000000,0.707107 -2338,0.707107,0.000000,0.000000,0.707107 -2339,0.707107,0.000000,0.000000,0.707107 -2340,0.707107,0.000000,0.000000,0.707107 -2341,0.707107,0.000000,0.000000,0.707107 -2342,0.707107,0.000000,0.000000,0.707107 -2343,0.707107,0.000000,0.000000,0.707107 -2344,0.707107,0.000000,0.000000,0.707107 -2345,0.707107,0.000000,0.000000,0.707107 -2346,0.707107,0.000000,0.000000,0.707107 -2347,0.707107,0.000000,0.000000,0.707107 -2348,0.707107,0.000000,0.000000,0.707107 -2349,0.707107,0.000000,0.000000,0.707107 -2350,0.707107,0.000000,0.000000,0.707107 -2351,0.707107,0.000000,0.000000,0.707107 -2352,0.707107,0.000000,0.000000,0.707107 -2353,0.707107,0.000000,0.000000,0.707107 -2354,0.707107,0.000000,0.000000,0.707107 -2355,0.707107,0.000000,0.000000,0.707107 -2356,0.707107,0.000000,0.000000,0.707107 -2357,0.707107,0.000000,0.000000,0.707107 -2358,0.707107,0.000000,0.000000,0.707107 -2359,0.707107,0.000000,0.000000,0.707107 -2360,0.707107,0.000000,0.000000,0.707107 -2361,0.707107,0.000000,0.000000,0.707107 -2362,0.707107,0.000000,0.000000,0.707107 -2363,0.707107,0.000000,0.000000,0.707107 -2364,0.707107,0.000000,0.000000,0.707107 -2365,0.707107,0.000000,0.000000,0.707107 -2366,0.707107,0.000000,0.000000,0.707107 -2367,0.707107,0.000000,0.000000,0.707107 -2368,0.707107,0.000000,0.000000,0.707107 -2369,0.707107,0.000000,0.000000,0.707107 -2370,0.707107,0.000000,0.000000,0.707107 -2371,0.707107,0.000000,0.000000,0.707107 -2372,0.707107,0.000000,0.000000,0.707107 -2373,0.707107,0.000000,0.000000,0.707107 -2374,0.707107,0.000000,0.000000,0.707107 -2375,0.707107,0.000000,0.000000,0.707107 -2376,0.707107,0.000000,0.000000,0.707107 -2377,0.707107,0.000000,0.000000,0.707107 -2378,0.707107,0.000000,0.000000,0.707107 -2379,0.707107,0.000000,0.000000,0.707107 -2380,0.707107,0.000000,0.000000,0.707107 -2381,0.707107,0.000000,0.000000,0.707107 -2382,0.707107,0.000000,0.000000,0.707107 -2383,0.707107,0.000000,0.000000,0.707107 -2384,0.707107,0.000000,0.000000,0.707107 -2385,0.707107,0.000000,0.000000,0.707107 -2386,0.707107,0.000000,0.000000,0.707107 -2387,0.707107,0.000000,0.000000,0.707107 -2388,0.707107,0.000000,0.000000,0.707107 -2389,0.707107,0.000000,0.000000,0.707107 -2390,0.707107,0.000000,0.000000,0.707107 -2391,0.707107,0.000000,0.000000,0.707107 -2392,0.707107,0.000000,0.000000,0.707107 -2393,0.707107,0.000000,0.000000,0.707107 -2394,0.707107,0.000000,0.000000,0.707107 -2395,0.707107,0.000000,0.000000,0.707107 -2396,0.707107,0.000000,0.000000,0.707107 -2397,0.707107,0.000000,0.000000,0.707107 -2398,0.707107,0.000000,0.000000,0.707107 -2399,0.707107,0.000000,0.000000,0.707107 -2400,0.707107,0.000000,0.000000,0.707107 -2401,0.707107,0.000000,0.000000,0.707107 -2402,0.707107,0.000000,0.000000,0.707107 -2403,0.707107,0.000000,0.000000,0.707107 -2404,0.707107,0.000000,0.000000,0.707107 -2405,0.707107,0.000000,0.000000,0.707107 -2406,0.707107,0.000000,0.000000,0.707107 -2407,0.707107,0.000000,0.000000,0.707107 -2408,0.707107,0.000000,0.000000,0.707107 -2409,0.707107,0.000000,0.000000,0.707107 -2410,0.707107,0.000000,0.000000,0.707107 -2411,0.707107,0.000000,0.000000,0.707107 -2412,0.707107,0.000000,0.000000,0.707107 -2413,0.707107,0.000000,0.000000,0.707107 -2414,0.707107,0.000000,0.000000,0.707107 -2415,0.707107,0.000000,0.000000,0.707107 -2416,0.707107,0.000000,0.000000,0.707107 -2417,0.707107,0.000000,0.000000,0.707107 -2418,0.707107,0.000000,0.000000,0.707107 -2419,0.707107,0.000000,0.000000,0.707107 -2420,0.707107,0.000000,0.000000,0.707107 -2421,0.707107,0.000000,0.000000,0.707107 -2422,0.707107,0.000000,0.000000,0.707107 -2423,0.707107,0.000000,0.000000,0.707107 -2424,0.707107,0.000000,0.000000,0.707107 -2425,0.707107,0.000000,0.000000,0.707107 -2426,0.707107,0.000000,0.000000,0.707107 -2427,0.707107,0.000000,0.000000,0.707107 -2428,0.707107,0.000000,0.000000,0.707107 -2429,0.707107,0.000000,0.000000,0.707107 -2430,0.707107,0.000000,0.000000,0.707107 -2431,0.707107,0.000000,0.000000,0.707107 -2432,0.707107,0.000000,0.000000,0.707107 -2433,0.707107,0.000000,0.000000,0.707107 -2434,0.707107,0.000000,0.000000,0.707107 -2435,0.707107,0.000000,0.000000,0.707107 -2436,0.707107,0.000000,0.000000,0.707107 -2437,0.707107,0.000000,0.000000,0.707107 -2438,0.707107,0.000000,0.000000,0.707107 -2439,0.707107,0.000000,0.000000,0.707107 -2440,0.707107,0.000000,0.000000,0.707107 -2441,0.707107,0.000000,0.000000,0.707107 -2442,0.707107,0.000000,0.000000,0.707107 -2443,0.707107,0.000000,0.000000,0.707107 -2444,0.707107,0.000000,0.000000,0.707107 -2445,0.707107,0.000000,0.000000,0.707107 -2446,0.707107,0.000000,0.000000,0.707107 -2447,0.707107,0.000000,0.000000,0.707107 -2448,0.707107,0.000000,0.000000,0.707107 -2449,0.707107,0.000000,0.000000,0.707107 -2450,0.707107,0.000000,0.000000,0.707107 -2451,0.707107,0.000000,0.000000,0.707107 -2452,0.707107,0.000000,0.000000,0.707107 -2453,0.707107,0.000000,0.000000,0.707107 -2454,0.707107,0.000000,0.000000,0.707107 -2455,0.707107,0.000000,0.000000,0.707107 -2456,0.707107,0.000000,0.000000,0.707107 -2457,0.707107,0.000000,0.000000,0.707107 -2458,0.707107,0.000000,0.000000,0.707107 -2459,0.707107,0.000000,0.000000,0.707107 -2460,0.707107,0.000000,0.000000,0.707107 -2461,0.707107,0.000000,0.000000,0.707107 -2462,0.707107,0.000000,0.000000,0.707107 -2463,0.707107,0.000000,0.000000,0.707107 -2464,0.707107,0.000000,0.000000,0.707107 -2465,0.707107,0.000000,0.000000,0.707107 -2466,0.707107,0.000000,0.000000,0.707107 -2467,0.707107,0.000000,0.000000,0.707107 -2468,0.707107,0.000000,0.000000,0.707107 -2469,0.707107,0.000000,0.000000,0.707107 -2470,0.707107,0.000000,0.000000,0.707107 -2471,0.707107,0.000000,0.000000,0.707107 -2472,0.707107,0.000000,0.000000,0.707107 -2473,0.707107,0.000000,0.000000,0.707107 -2474,0.707107,0.000000,0.000000,0.707107 -2475,0.707107,0.000000,0.000000,0.707107 -2476,0.707107,0.000000,0.000000,0.707107 -2477,0.707107,0.000000,0.000000,0.707107 -2478,0.707107,0.000000,0.000000,0.707107 -2479,0.707107,0.000000,0.000000,0.707107 -2480,0.707107,0.000000,0.000000,0.707107 -2481,0.707107,0.000000,0.000000,0.707107 -2482,0.707107,0.000000,0.000000,0.707107 -2483,0.707107,0.000000,0.000000,0.707107 -2484,0.707107,0.000000,0.000000,0.707107 -2485,0.707107,0.000000,0.000000,0.707107 -2486,0.707107,0.000000,0.000000,0.707107 -2487,0.707107,0.000000,0.000000,0.707107 -2488,0.707107,0.000000,0.000000,0.707107 -2489,0.707107,0.000000,0.000000,0.707107 -2490,0.707107,0.000000,0.000000,0.707107 -2491,0.707107,0.000000,0.000000,0.707107 -2492,0.707107,0.000000,0.000000,0.707107 -2493,0.707107,0.000000,0.000000,0.707107 -2494,0.707107,0.000000,0.000000,0.707107 -2495,0.707107,0.000000,0.000000,0.707107 -2496,0.707107,0.000000,0.000000,0.707107 -2497,0.707107,0.000000,0.000000,0.707107 -2498,0.707107,0.000000,0.000000,0.707107 -2499,0.707107,0.000000,0.000000,0.707107 -2500,0.707107,0.000000,0.000000,0.707107 -2501,0.707107,0.000000,0.000000,0.707107 -2502,0.707107,0.000000,0.000000,0.707107 -2503,0.707107,0.000000,0.000000,0.707107 -2504,0.707107,0.000000,0.000000,0.707107 -2505,0.707107,0.000000,0.000000,0.707107 -2506,0.707107,0.000000,0.000000,0.707107 -2507,0.707107,0.000000,0.000000,0.707107 -2508,0.707107,0.000000,0.000000,0.707107 -2509,0.707107,0.000000,0.000000,0.707107 -2510,0.707107,0.000000,0.000000,0.707107 -2511,0.707107,0.000000,0.000000,0.707107 -2512,0.707107,0.000000,0.000000,0.707107 -2513,0.707107,0.000000,0.000000,0.707107 -2514,0.707107,0.000000,0.000000,0.707107 -2515,0.707107,0.000000,0.000000,0.707107 -2516,0.707107,0.000000,0.000000,0.707107 -2517,0.707107,0.000000,0.000000,0.707107 -2518,0.707107,0.000000,0.000000,0.707107 -2519,0.707107,0.000000,0.000000,0.707107 -2520,0.707107,0.000000,0.000000,0.707107 -2521,0.707107,0.000000,0.000000,0.707107 -2522,0.707107,0.000000,0.000000,0.707107 -2523,0.707107,0.000000,0.000000,0.707107 -2524,0.707107,0.000000,0.000000,0.707107 -2525,0.707107,0.000000,0.000000,0.707107 -2526,0.707107,0.000000,0.000000,0.707107 -2527,0.707107,0.000000,0.000000,0.707107 -2528,0.707107,0.000000,0.000000,0.707107 -2529,0.707107,0.000000,0.000000,0.707107 -2530,0.707107,0.000000,0.000000,0.707107 -2531,0.707107,0.000000,0.000000,0.707107 -2532,0.707107,0.000000,0.000000,0.707107 -2533,0.707107,0.000000,0.000000,0.707107 -2534,0.707107,0.000000,0.000000,0.707107 -2535,0.707107,0.000000,0.000000,0.707107 -2536,0.707107,0.000000,0.000000,0.707107 -2537,0.707107,0.000000,0.000000,0.707107 -2538,0.707107,0.000000,0.000000,0.707107 -2539,0.707107,0.000000,0.000000,0.707107 -2540,0.707107,0.000000,0.000000,0.707107 -2541,0.707107,0.000000,0.000000,0.707107 -2542,0.707107,0.000000,0.000000,0.707107 -2543,0.707107,0.000000,0.000000,0.707107 -2544,0.707107,0.000000,0.000000,0.707107 -2545,0.707107,0.000000,0.000000,0.707107 -2546,0.707107,0.000000,0.000000,0.707107 -2547,0.707107,0.000000,0.000000,0.707107 -2548,0.707107,0.000000,0.000000,0.707107 -2549,0.707107,0.000000,0.000000,0.707107 -2550,0.707107,0.000000,0.000000,0.707107 -2551,0.707107,0.000000,0.000000,0.707107 -2552,0.707107,0.000000,0.000000,0.707107 -2553,0.707107,0.000000,0.000000,0.707107 -2554,0.707107,0.000000,0.000000,0.707107 -2555,0.707107,0.000000,0.000000,0.707107 -2556,0.707107,0.000000,0.000000,0.707107 -2557,0.707107,0.000000,0.000000,0.707107 -2558,0.707107,0.000000,0.000000,0.707107 -2559,0.707107,0.000000,0.000000,0.707107 -2560,0.707107,0.000000,0.000000,0.707107 -2561,0.707107,0.000000,0.000000,0.707107 -2562,0.707107,0.000000,0.000000,0.707107 -2563,0.707107,0.000000,0.000000,0.707107 -2564,0.707107,0.000000,0.000000,0.707107 -2565,0.707107,0.000000,0.000000,0.707107 -2566,0.707107,0.000000,0.000000,0.707107 -2567,0.707107,0.000000,0.000000,0.707107 -2568,0.707107,0.000000,0.000000,0.707107 -2569,0.707107,0.000000,0.000000,0.707107 -2570,0.707107,0.000000,0.000000,0.707107 -2571,0.707107,0.000000,0.000000,0.707107 -2572,0.707107,0.000000,0.000000,0.707107 -2573,0.707107,0.000000,0.000000,0.707107 -2574,0.707107,0.000000,0.000000,0.707107 -2575,0.707107,0.000000,0.000000,0.707107 -2576,0.707107,0.000000,0.000000,0.707107 -2577,0.707107,0.000000,0.000000,0.707107 -2578,0.707107,0.000000,0.000000,0.707107 -2579,0.707107,0.000000,0.000000,0.707107 -2580,0.707107,0.000000,0.000000,0.707107 -2581,0.707107,0.000000,0.000000,0.707107 -2582,0.707107,0.000000,0.000000,0.707107 -2583,0.707107,0.000000,0.000000,0.707107 -2584,0.707107,0.000000,0.000000,0.707107 -2585,0.707107,0.000000,0.000000,0.707107 -2586,0.707107,0.000000,0.000000,0.707107 -2587,0.707107,0.000000,0.000000,0.707107 -2588,0.707107,0.000000,0.000000,0.707107 -2589,0.707107,0.000000,0.000000,0.707107 -2590,0.707107,0.000000,0.000000,0.707107 -2591,0.707107,0.000000,0.000000,0.707107 -2592,0.707107,0.000000,0.000000,0.707107 -2593,0.707107,0.000000,0.000000,0.707107 -2594,0.707107,0.000000,0.000000,0.707107 -2595,0.707107,0.000000,0.000000,0.707107 -2596,0.707107,0.000000,0.000000,0.707107 -2597,0.707107,0.000000,0.000000,0.707107 -2598,0.707107,0.000000,0.000000,0.707107 -2599,0.707107,0.000000,0.000000,0.707107 -2600,0.707107,0.000000,0.000000,0.707107 -2601,0.707107,0.000000,0.000000,0.707107 -2602,0.707107,0.000000,0.000000,0.707107 -2603,0.707107,0.000000,0.000000,0.707107 -2604,0.707107,0.000000,0.000000,0.707107 -2605,0.707107,0.000000,0.000000,0.707107 -2606,0.707107,0.000000,0.000000,0.707107 -2607,0.707107,0.000000,0.000000,0.707107 -2608,0.707107,0.000000,0.000000,0.707107 -2609,0.707107,0.000000,0.000000,0.707107 -2610,0.707107,0.000000,0.000000,0.707107 -2611,0.707107,0.000000,0.000000,0.707107 -2612,0.707107,0.000000,0.000000,0.707107 -2613,0.707107,0.000000,0.000000,0.707107 -2614,0.707107,0.000000,0.000000,0.707107 -2615,0.707107,0.000000,0.000000,0.707107 -2616,0.707107,0.000000,0.000000,0.707107 -2617,0.707107,0.000000,0.000000,0.707107 -2618,0.707107,0.000000,0.000000,0.707107 -2619,0.707107,0.000000,0.000000,0.707107 -2620,0.707107,0.000000,0.000000,0.707107 -2621,0.707107,0.000000,0.000000,0.707107 -2622,0.707107,0.000000,0.000000,0.707107 -2623,0.707107,0.000000,0.000000,0.707107 -2624,0.707107,0.000000,0.000000,0.707107 -2625,0.707107,0.000000,0.000000,0.707107 -2626,0.707107,0.000000,0.000000,0.707107 -2627,0.707107,0.000000,0.000000,0.707107 -2628,0.707107,0.000000,0.000000,0.707107 -2629,0.707107,0.000000,0.000000,0.707107 -2630,0.707107,0.000000,0.000000,0.707107 -2631,0.707107,0.000000,0.000000,0.707107 -2632,0.707107,0.000000,0.000000,0.707107 -2633,0.707107,0.000000,0.000000,0.707107 -2634,0.707107,0.000000,0.000000,0.707107 -2635,0.707107,0.000000,0.000000,0.707107 -2636,0.707107,0.000000,0.000000,0.707107 -2637,0.707107,0.000000,0.000000,0.707107 -2638,0.707107,0.000000,0.000000,0.707107 -2639,0.707107,0.000000,0.000000,0.707107 -2640,0.707107,0.000000,0.000000,0.707107 -2641,0.707107,0.000000,0.000000,0.707107 -2642,0.707107,0.000000,0.000000,0.707107 -2643,0.707107,0.000000,0.000000,0.707107 -2644,0.707107,0.000000,0.000000,0.707107 -2645,0.707107,0.000000,0.000000,0.707107 -2646,0.707107,0.000000,0.000000,0.707107 -2647,0.707107,0.000000,0.000000,0.707107 -2648,0.707107,0.000000,0.000000,0.707107 -2649,0.707107,0.000000,0.000000,0.707107 -2650,0.707107,0.000000,0.000000,0.707107 -2651,0.707107,0.000000,0.000000,0.707107 -2652,0.707107,0.000000,0.000000,0.707107 -2653,0.707107,0.000000,0.000000,0.707107 -2654,0.707107,0.000000,0.000000,0.707107 -2655,0.707107,0.000000,0.000000,0.707107 -2656,0.707107,0.000000,0.000000,0.707107 -2657,0.707107,0.000000,0.000000,0.707107 -2658,0.707107,0.000000,0.000000,0.707107 -2659,0.707107,0.000000,0.000000,0.707107 -2660,0.707107,0.000000,0.000000,0.707107 -2661,0.707107,0.000000,0.000000,0.707107 -2662,0.707107,0.000000,0.000000,0.707107 -2663,0.707107,0.000000,0.000000,0.707107 -2664,0.707107,0.000000,0.000000,0.707107 -2665,0.707107,0.000000,0.000000,0.707107 -2666,0.707107,0.000000,0.000000,0.707107 -2667,0.707107,0.000000,0.000000,0.707107 -2668,0.707107,0.000000,0.000000,0.707107 -2669,0.707107,0.000000,0.000000,0.707107 -2670,0.707107,0.000000,0.000000,0.707107 -2671,0.707107,0.000000,0.000000,0.707107 -2672,0.707107,0.000000,0.000000,0.707107 -2673,0.707107,0.000000,0.000000,0.707107 -2674,0.707107,0.000000,0.000000,0.707107 -2675,0.707107,0.000000,0.000000,0.707107 -2676,0.707107,0.000000,0.000000,0.707107 -2677,0.707107,0.000000,0.000000,0.707107 -2678,0.707107,0.000000,0.000000,0.707107 -2679,0.707107,0.000000,0.000000,0.707107 -2680,0.707107,0.000000,0.000000,0.707107 -2681,0.707107,0.000000,0.000000,0.707107 -2682,0.707107,0.000000,0.000000,0.707107 -2683,0.707107,0.000000,0.000000,0.707107 -2684,0.707107,0.000000,0.000000,0.707107 -2685,0.707107,0.000000,0.000000,0.707107 -2686,0.707107,0.000000,0.000000,0.707107 -2687,0.707107,0.000000,0.000000,0.707107 -2688,0.707107,0.000000,0.000000,0.707107 -2689,0.707107,0.000000,0.000000,0.707107 -2690,0.707107,0.000000,0.000000,0.707107 -2691,0.707107,0.000000,0.000000,0.707107 -2692,0.707107,0.000000,0.000000,0.707107 -2693,0.707107,0.000000,0.000000,0.707107 -2694,0.707107,0.000000,0.000000,0.707107 -2695,0.707107,0.000000,0.000000,0.707107 -2696,0.707107,0.000000,0.000000,0.707107 -2697,0.707107,0.000000,0.000000,0.707107 -2698,0.707107,0.000000,0.000000,0.707107 -2699,0.707107,0.000000,0.000000,0.707107 -2700,0.707107,0.000000,0.000000,0.707107 -2701,0.707107,0.000000,0.000000,0.707107 -2702,0.707107,0.000000,0.000000,0.707107 -2703,0.707107,0.000000,0.000000,0.707107 -2704,0.707107,0.000000,0.000000,0.707107 -2705,0.707107,0.000000,0.000000,0.707107 -2706,0.707107,0.000000,0.000000,0.707107 -2707,0.707107,0.000000,0.000000,0.707107 -2708,0.707107,0.000000,0.000000,0.707107 -2709,0.707107,0.000000,0.000000,0.707107 -2710,0.707107,0.000000,0.000000,0.707107 -2711,0.707107,0.000000,0.000000,0.707107 -2712,0.707107,0.000000,0.000000,0.707107 -2713,0.707107,0.000000,0.000000,0.707107 -2714,0.707107,0.000000,0.000000,0.707107 -2715,0.707107,0.000000,0.000000,0.707107 -2716,0.707107,0.000000,0.000000,0.707107 -2717,0.707107,0.000000,0.000000,0.707107 -2718,0.707107,0.000000,0.000000,0.707107 -2719,0.707107,0.000000,0.000000,0.707107 -2720,0.707107,0.000000,0.000000,0.707107 -2721,0.707107,0.000000,0.000000,0.707107 -2722,0.707107,0.000000,0.000000,0.707107 -2723,0.707107,0.000000,0.000000,0.707107 -2724,0.707107,0.000000,0.000000,0.707107 -2725,0.707107,0.000000,0.000000,0.707107 -2726,0.707107,0.000000,0.000000,0.707107 -2727,0.707107,0.000000,0.000000,0.707107 -2728,0.707107,0.000000,0.000000,0.707107 -2729,0.707107,0.000000,0.000000,0.707107 -2730,0.707107,0.000000,0.000000,0.707107 -2731,0.707107,0.000000,0.000000,0.707107 -2732,0.707107,0.000000,0.000000,0.707107 -2733,0.707107,0.000000,0.000000,0.707107 -2734,0.707107,0.000000,0.000000,0.707107 -2735,0.707107,0.000000,0.000000,0.707107 -2736,0.707107,0.000000,0.000000,0.707107 -2737,0.707107,0.000000,0.000000,0.707107 -2738,0.707107,0.000000,0.000000,0.707107 -2739,0.707107,0.000000,0.000000,0.707107 -2740,0.707107,0.000000,0.000000,0.707107 -2741,0.707107,0.000000,0.000000,0.707107 -2742,0.707107,0.000000,0.000000,0.707107 -2743,0.707107,0.000000,0.000000,0.707107 -2744,0.707107,0.000000,0.000000,0.707107 -2745,0.707107,0.000000,0.000000,0.707107 -2746,0.707107,0.000000,0.000000,0.707107 -2747,0.707107,0.000000,0.000000,0.707107 -2748,0.707107,0.000000,0.000000,0.707107 -2749,0.707107,0.000000,0.000000,0.707107 -2750,0.707107,0.000000,0.000000,0.707107 -2751,0.707107,0.000000,0.000000,0.707107 -2752,0.707107,0.000000,0.000000,0.707107 -2753,0.707107,0.000000,0.000000,0.707107 -2754,0.707107,0.000000,0.000000,0.707107 -2755,0.707107,0.000000,0.000000,0.707107 -2756,0.707107,0.000000,0.000000,0.707107 -2757,0.707107,0.000000,0.000000,0.707107 -2758,0.707107,0.000000,0.000000,0.707107 -2759,0.707107,0.000000,0.000000,0.707107 -2760,0.707107,0.000000,0.000000,0.707107 -2761,0.707107,0.000000,0.000000,0.707107 -2762,0.707107,0.000000,0.000000,0.707107 -2763,0.707107,0.000000,0.000000,0.707107 -2764,0.707107,0.000000,0.000000,0.707107 -2765,0.707107,0.000000,0.000000,0.707107 -2766,0.707107,0.000000,0.000000,0.707107 -2767,0.707107,0.000000,0.000000,0.707107 -2768,0.707107,0.000000,0.000000,0.707107 -2769,0.707107,0.000000,0.000000,0.707107 -2770,0.707107,0.000000,0.000000,0.707107 -2771,0.707107,0.000000,0.000000,0.707107 -2772,0.707107,0.000000,0.000000,0.707107 -2773,0.707107,0.000000,0.000000,0.707107 -2774,0.707107,0.000000,0.000000,0.707107 -2775,0.707107,0.000000,0.000000,0.707107 -2776,0.707107,0.000000,0.000000,0.707107 -2777,0.707107,0.000000,0.000000,0.707107 -2778,0.707107,0.000000,0.000000,0.707107 -2779,0.707107,0.000000,0.000000,0.707107 -2780,0.707107,0.000000,0.000000,0.707107 -2781,0.707107,0.000000,0.000000,0.707107 -2782,0.707107,0.000000,0.000000,0.707107 -2783,0.707107,0.000000,0.000000,0.707107 -2784,0.707107,0.000000,0.000000,0.707107 -2785,0.707107,0.000000,0.000000,0.707107 -2786,0.707107,0.000000,0.000000,0.707107 -2787,0.707107,0.000000,0.000000,0.707107 -2788,0.707107,0.000000,0.000000,0.707107 -2789,0.707107,0.000000,0.000000,0.707107 -2790,0.707107,0.000000,0.000000,0.707107 -2791,0.707107,0.000000,0.000000,0.707107 -2792,0.707107,0.000000,0.000000,0.707107 -2793,0.707107,0.000000,0.000000,0.707107 -2794,0.707107,0.000000,0.000000,0.707107 -2795,0.707107,0.000000,0.000000,0.707107 -2796,0.707107,0.000000,0.000000,0.707107 -2797,0.707107,0.000000,0.000000,0.707107 -2798,0.707107,0.000000,0.000000,0.707107 -2799,0.707107,0.000000,0.000000,0.707107 -2800,0.707107,0.000000,0.000000,0.707107 -2801,0.707107,0.000000,0.000000,0.707107 -2802,0.707107,0.000000,0.000000,0.707107 -2803,0.707107,0.000000,0.000000,0.707107 -2804,0.707107,0.000000,0.000000,0.707107 -2805,0.707107,0.000000,0.000000,0.707107 -2806,0.707107,0.000000,0.000000,0.707107 -2807,0.707107,0.000000,0.000000,0.707107 -2808,0.707107,0.000000,0.000000,0.707107 -2809,0.707107,0.000000,0.000000,0.707107 -2810,0.707107,0.000000,0.000000,0.707107 -2811,0.707107,0.000000,0.000000,0.707107 -2812,0.707107,0.000000,0.000000,0.707107 -2813,0.707107,0.000000,0.000000,0.707107 -2814,0.707107,0.000000,0.000000,0.707107 -2815,0.707107,0.000000,0.000000,0.707107 -2816,0.707107,0.000000,0.000000,0.707107 -2817,0.707107,0.000000,0.000000,0.707107 -2818,0.707107,0.000000,0.000000,0.707107 -2819,0.707107,0.000000,0.000000,0.707107 -2820,0.707107,0.000000,0.000000,0.707107 -2821,0.707107,0.000000,0.000000,0.707107 -2822,0.707107,0.000000,0.000000,0.707107 -2823,0.707107,0.000000,0.000000,0.707107 -2824,0.707107,0.000000,0.000000,0.707107 -2825,0.707107,0.000000,0.000000,0.707107 -2826,0.707107,0.000000,0.000000,0.707107 -2827,0.707107,0.000000,0.000000,0.707107 -2828,0.707107,0.000000,0.000000,0.707107 -2829,0.707107,0.000000,0.000000,0.707107 -2830,0.707107,0.000000,0.000000,0.707107 -2831,0.707107,0.000000,0.000000,0.707107 -2832,0.707107,0.000000,0.000000,0.707107 -2833,0.707107,0.000000,0.000000,0.707107 -2834,0.707107,0.000000,0.000000,0.707107 -2835,0.707107,0.000000,0.000000,0.707107 -2836,0.707107,0.000000,0.000000,0.707107 -2837,0.707107,0.000000,0.000000,0.707107 -2838,0.707107,0.000000,0.000000,0.707107 -2839,0.707107,0.000000,0.000000,0.707107 -2840,0.707107,0.000000,0.000000,0.707107 -2841,0.707107,0.000000,0.000000,0.707107 -2842,0.707107,0.000000,0.000000,0.707107 -2843,0.707107,0.000000,0.000000,0.707107 -2844,0.707107,0.000000,0.000000,0.707107 -2845,0.707107,0.000000,0.000000,0.707107 -2846,0.707107,0.000000,0.000000,0.707107 -2847,0.707107,0.000000,0.000000,0.707107 -2848,0.707107,0.000000,0.000000,0.707107 -2849,0.707107,0.000000,0.000000,0.707107 -2850,0.707107,0.000000,0.000000,0.707107 -2851,0.707107,0.000000,0.000000,0.707107 -2852,0.707107,0.000000,0.000000,0.707107 -2853,0.707107,0.000000,0.000000,0.707107 -2854,0.707107,0.000000,0.000000,0.707107 -2855,0.707107,0.000000,0.000000,0.707107 -2856,0.707107,0.000000,0.000000,0.707107 -2857,0.707107,0.000000,0.000000,0.707107 -2858,0.707107,0.000000,0.000000,0.707107 -2859,0.707107,0.000000,0.000000,0.707107 -2860,0.707107,0.000000,0.000000,0.707107 -2861,0.707107,0.000000,0.000000,0.707107 -2862,0.707107,0.000000,0.000000,0.707107 -2863,0.707107,0.000000,0.000000,0.707107 -2864,0.707107,0.000000,0.000000,0.707107 -2865,0.707107,0.000000,0.000000,0.707107 -2866,0.707107,0.000000,0.000000,0.707107 -2867,0.707107,0.000000,0.000000,0.707107 -2868,0.707107,0.000000,0.000000,0.707107 -2869,0.707107,0.000000,0.000000,0.707107 -2870,0.707107,0.000000,0.000000,0.707107 -2871,0.707107,0.000000,0.000000,0.707107 -2872,0.707107,0.000000,0.000000,0.707107 -2873,0.707107,0.000000,0.000000,0.707107 -2874,0.707107,0.000000,0.000000,0.707107 -2875,0.707107,0.000000,0.000000,0.707107 -2876,0.707107,0.000000,0.000000,0.707107 -2877,0.707107,0.000000,0.000000,0.707107 -2878,0.707107,0.000000,0.000000,0.707107 -2879,0.707107,0.000000,0.000000,0.707107 -2880,0.707107,0.000000,0.000000,0.707107 -2881,0.707107,0.000000,0.000000,0.707107 -2882,0.707107,0.000000,0.000000,0.707107 -2883,0.707107,0.000000,0.000000,0.707107 -2884,0.707107,0.000000,0.000000,0.707107 -2885,0.707107,0.000000,0.000000,0.707107 -2886,0.707107,0.000000,0.000000,0.707107 -2887,0.707107,0.000000,0.000000,0.707107 -2888,0.707107,0.000000,0.000000,0.707107 -2889,0.707107,0.000000,0.000000,0.707107 -2890,0.707107,0.000000,0.000000,0.707107 -2891,0.707107,0.000000,0.000000,0.707107 -2892,0.707107,0.000000,0.000000,0.707107 -2893,0.707107,0.000000,0.000000,0.707107 -2894,0.707107,0.000000,0.000000,0.707107 -2895,0.707107,0.000000,0.000000,0.707107 -2896,0.707107,0.000000,0.000000,0.707107 -2897,0.707107,0.000000,0.000000,0.707107 -2898,0.707107,0.000000,0.000000,0.707107 -2899,0.707107,0.000000,0.000000,0.707107 -2900,0.707107,0.000000,0.000000,0.707107 -2901,0.707107,0.000000,0.000000,0.707107 -2902,0.707107,0.000000,0.000000,0.707107 -2903,0.707107,0.000000,0.000000,0.707107 -2904,0.707107,0.000000,0.000000,0.707107 -2905,0.707107,0.000000,0.000000,0.707107 -2906,0.707107,0.000000,0.000000,0.707107 -2907,0.707107,0.000000,0.000000,0.707107 -2908,0.707107,0.000000,0.000000,0.707107 -2909,0.707107,0.000000,0.000000,0.707107 -2910,0.707107,0.000000,0.000000,0.707107 -2911,0.707107,0.000000,0.000000,0.707107 -2912,0.707107,0.000000,0.000000,0.707107 -2913,0.707107,0.000000,0.000000,0.707107 -2914,0.707107,0.000000,0.000000,0.707107 -2915,0.707107,0.000000,0.000000,0.707107 -2916,0.707107,0.000000,0.000000,0.707107 -2917,0.707107,0.000000,0.000000,0.707107 -2918,0.707107,0.000000,0.000000,0.707107 -2919,0.707107,0.000000,0.000000,0.707107 -2920,0.707107,0.000000,0.000000,0.707107 -2921,0.707107,0.000000,0.000000,0.707107 -2922,0.707107,0.000000,0.000000,0.707107 -2923,0.707107,0.000000,0.000000,0.707107 -2924,0.707107,0.000000,0.000000,0.707107 -2925,0.707107,0.000000,0.000000,0.707107 -2926,0.707107,0.000000,0.000000,0.707107 -2927,0.707107,0.000000,0.000000,0.707107 -2928,0.707107,0.000000,0.000000,0.707107 -2929,0.707107,0.000000,0.000000,0.707107 -2930,0.707107,0.000000,0.000000,0.707107 -2931,0.707107,0.000000,0.000000,0.707107 -2932,0.707107,0.000000,0.000000,0.707107 -2933,0.707107,0.000000,0.000000,0.707107 -2934,0.707107,0.000000,0.000000,0.707107 -2935,0.707107,0.000000,0.000000,0.707107 -2936,0.707107,0.000000,0.000000,0.707107 -2937,0.707107,0.000000,0.000000,0.707107 -2938,0.707107,0.000000,0.000000,0.707107 -2939,0.707107,0.000000,0.000000,0.707107 -2940,0.707107,0.000000,0.000000,0.707107 -2941,0.707107,0.000000,0.000000,0.707107 -2942,0.707107,0.000000,0.000000,0.707107 -2943,0.707107,0.000000,0.000000,0.707107 -2944,0.707107,0.000000,0.000000,0.707107 -2945,0.707107,0.000000,0.000000,0.707107 -2946,0.707107,0.000000,0.000000,0.707107 -2947,0.707107,0.000000,0.000000,0.707107 -2948,0.707107,0.000000,0.000000,0.707107 -2949,0.707107,0.000000,0.000000,0.707107 -2950,0.707107,0.000000,0.000000,0.707107 -2951,0.707107,0.000000,0.000000,0.707107 -2952,0.707107,0.000000,0.000000,0.707107 -2953,0.707107,0.000000,0.000000,0.707107 -2954,0.707107,0.000000,0.000000,0.707107 -2955,0.707107,0.000000,0.000000,0.707107 -2956,0.707107,0.000000,0.000000,0.707107 -2957,0.707107,0.000000,0.000000,0.707107 -2958,0.707107,0.000000,0.000000,0.707107 -2959,0.707107,0.000000,0.000000,0.707107 -2960,0.707107,0.000000,0.000000,0.707107 -2961,0.707107,0.000000,0.000000,0.707107 -2962,0.707107,0.000000,0.000000,0.707107 -2963,0.707107,0.000000,0.000000,0.707107 -2964,0.707107,0.000000,0.000000,0.707107 -2965,0.707107,0.000000,0.000000,0.707107 -2966,0.707107,0.000000,0.000000,0.707107 -2967,0.707107,0.000000,0.000000,0.707107 -2968,0.707107,0.000000,0.000000,0.707107 -2969,0.707107,0.000000,0.000000,0.707107 -2970,0.707107,0.000000,0.000000,0.707107 -2971,0.707107,0.000000,0.000000,0.707107 -2972,0.707107,0.000000,0.000000,0.707107 -2973,0.707107,0.000000,0.000000,0.707107 -2974,0.707107,0.000000,0.000000,0.707107 -2975,0.707107,0.000000,0.000000,0.707107 -2976,0.707107,0.000000,0.000000,0.707107 -2977,0.707107,0.000000,0.000000,0.707107 -2978,0.707107,0.000000,0.000000,0.707107 -2979,0.707107,0.000000,0.000000,0.707107 -2980,0.707107,0.000000,0.000000,0.707107 -2981,0.707107,0.000000,0.000000,0.707107 -2982,0.707107,0.000000,0.000000,0.707107 -2983,0.707107,0.000000,0.000000,0.707107 -2984,0.707107,0.000000,0.000000,0.707107 -2985,0.707107,0.000000,0.000000,0.707107 -2986,0.707107,0.000000,0.000000,0.707107 -2987,0.707107,0.000000,0.000000,0.707107 -2988,0.707107,0.000000,0.000000,0.707107 -2989,0.707107,0.000000,0.000000,0.707107 -2990,0.707107,0.000000,0.000000,0.707107 -2991,0.707107,0.000000,0.000000,0.707107 -2992,0.707107,0.000000,0.000000,0.707107 -2993,0.707107,0.000000,0.000000,0.707107 -2994,0.707107,0.000000,0.000000,0.707107 -2995,0.707107,0.000000,0.000000,0.707107 -2996,0.707107,0.000000,0.000000,0.707107 -2997,0.707107,0.000000,0.000000,0.707107 -2998,0.707107,0.000000,0.000000,0.707107 -2999,0.707107,0.000000,0.000000,0.707107 -3000,0.707107,0.000000,0.000000,0.707107 -3001,0.707107,0.000000,0.000000,0.707107 -3002,0.707107,0.000000,0.000000,0.707107 -3003,0.707107,0.000000,0.000000,0.707107 -3004,0.707107,0.000000,0.000000,0.707107 -3005,0.707107,0.000000,0.000000,0.707107 -3006,0.707107,0.000000,0.000000,0.707107 -3007,0.707107,0.000000,0.000000,0.707107 -3008,0.707107,0.000000,0.000000,0.707107 -3009,0.707107,0.000000,0.000000,0.707107 -3010,0.707107,0.000000,0.000000,0.707107 -3011,0.707107,0.000000,0.000000,0.707107 -3012,0.707107,0.000000,0.000000,0.707107 -3013,0.707107,0.000000,0.000000,0.707107 -3014,0.707107,0.000000,0.000000,0.707107 -3015,0.707107,0.000000,0.000000,0.707107 -3016,0.707107,0.000000,0.000000,0.707107 -3017,0.707107,0.000000,0.000000,0.707107 -3018,0.707107,0.000000,0.000000,0.707107 -3019,0.707107,0.000000,0.000000,0.707107 -3020,0.707107,0.000000,0.000000,0.707107 -3021,0.707107,0.000000,0.000000,0.707107 -3022,0.707107,0.000000,0.000000,0.707107 -3023,0.707107,0.000000,0.000000,0.707107 -3024,0.707107,0.000000,0.000000,0.707107 -3025,0.707107,0.000000,0.000000,0.707107 -3026,0.707107,0.000000,0.000000,0.707107 -3027,0.707107,0.000000,0.000000,0.707107 -3028,0.707107,0.000000,0.000000,0.707107 -3029,0.707107,0.000000,0.000000,0.707107 -3030,0.707107,0.000000,0.000000,0.707107 -3031,0.707107,0.000000,0.000000,0.707107 -3032,0.707107,0.000000,0.000000,0.707107 -3033,0.707107,0.000000,0.000000,0.707107 -3034,0.707107,0.000000,0.000000,0.707107 -3035,0.707107,0.000000,0.000000,0.707107 -3036,0.707107,0.000000,0.000000,0.707107 -3037,0.707107,0.000000,0.000000,0.707107 -3038,0.707107,0.000000,0.000000,0.707107 -3039,0.707107,0.000000,0.000000,0.707107 -3040,0.707107,0.000000,0.000000,0.707107 -3041,0.707107,0.000000,0.000000,0.707107 -3042,0.707107,0.000000,0.000000,0.707107 -3043,0.707107,0.000000,0.000000,0.707107 -3044,0.707107,0.000000,0.000000,0.707107 -3045,0.707107,0.000000,0.000000,0.707107 -3046,0.707107,0.000000,0.000000,0.707107 -3047,0.707107,0.000000,0.000000,0.707107 -3048,0.707107,0.000000,0.000000,0.707107 -3049,0.707107,0.000000,0.000000,0.707107 -3050,0.707107,0.000000,0.000000,0.707107 -3051,0.707107,0.000000,0.000000,0.707107 -3052,0.707107,0.000000,0.000000,0.707107 -3053,0.707107,0.000000,0.000000,0.707107 -3054,0.707107,0.000000,0.000000,0.707107 -3055,0.707107,0.000000,0.000000,0.707107 -3056,0.707107,0.000000,0.000000,0.707107 -3057,0.707107,0.000000,0.000000,0.707107 -3058,0.707107,0.000000,0.000000,0.707107 -3059,0.707107,0.000000,0.000000,0.707107 -3060,0.707107,0.000000,0.000000,0.707107 -3061,0.707107,0.000000,0.000000,0.707107 -3062,0.707107,0.000000,0.000000,0.707107 -3063,0.707107,0.000000,0.000000,0.707107 -3064,0.707107,0.000000,0.000000,0.707107 -3065,0.707107,0.000000,0.000000,0.707107 -3066,0.707107,0.000000,0.000000,0.707107 -3067,0.707107,0.000000,0.000000,0.707107 -3068,0.707107,0.000000,0.000000,0.707107 -3069,0.707107,0.000000,0.000000,0.707107 -3070,0.707107,0.000000,0.000000,0.707107 -3071,0.707107,0.000000,0.000000,0.707107 -3072,0.707107,0.000000,0.000000,0.707107 -3073,0.707107,0.000000,0.000000,0.707107 -3074,0.707107,0.000000,0.000000,0.707107 -3075,0.707107,0.000000,0.000000,0.707107 -3076,0.707107,0.000000,0.000000,0.707107 -3077,0.707107,0.000000,0.000000,0.707107 -3078,0.707107,0.000000,0.000000,0.707107 -3079,0.707107,0.000000,0.000000,0.707107 -3080,0.707107,0.000000,0.000000,0.707107 -3081,0.707107,0.000000,0.000000,0.707107 -3082,0.707107,0.000000,0.000000,0.707107 -3083,0.707107,0.000000,0.000000,0.707107 -3084,0.707107,0.000000,0.000000,0.707107 -3085,0.707107,0.000000,0.000000,0.707107 -3086,0.707107,0.000000,0.000000,0.707107 -3087,0.707107,0.000000,0.000000,0.707107 -3088,0.707107,0.000000,0.000000,0.707107 -3089,0.707107,0.000000,0.000000,0.707107 -3090,0.707107,0.000000,0.000000,0.707107 -3091,0.707107,0.000000,0.000000,0.707107 -3092,0.707107,0.000000,0.000000,0.707107 -3093,0.707107,0.000000,0.000000,0.707107 -3094,0.707107,0.000000,0.000000,0.707107 -3095,0.707107,0.000000,0.000000,0.707107 -3096,0.707107,0.000000,0.000000,0.707107 -3097,0.707107,0.000000,0.000000,0.707107 -3098,0.707107,0.000000,0.000000,0.707107 -3099,0.707107,0.000000,0.000000,0.707107 -3100,0.707107,0.000000,0.000000,0.707107 -3101,0.707107,0.000000,0.000000,0.707107 -3102,0.707107,0.000000,0.000000,0.707107 -3103,0.707107,0.000000,0.000000,0.707107 -3104,0.707107,0.000000,0.000000,0.707107 -3105,0.707107,0.000000,0.000000,0.707107 -3106,0.707107,0.000000,0.000000,0.707107 -3107,0.707107,0.000000,0.000000,0.707107 -3108,0.707107,0.000000,0.000000,0.707107 -3109,0.707107,0.000000,0.000000,0.707107 -3110,0.707107,0.000000,0.000000,0.707107 -3111,0.707107,0.000000,0.000000,0.707107 -3112,0.707107,0.000000,0.000000,0.707107 -3113,0.707107,0.000000,0.000000,0.707107 -3114,0.707107,0.000000,0.000000,0.707107 -3115,0.707107,0.000000,0.000000,0.707107 -3116,0.707107,0.000000,0.000000,0.707107 -3117,0.707107,0.000000,0.000000,0.707107 -3118,0.707107,0.000000,0.000000,0.707107 -3119,0.707107,0.000000,0.000000,0.707107 -3120,0.707107,0.000000,0.000000,0.707107 -3121,0.707107,0.000000,0.000000,0.707107 -3122,0.707107,0.000000,0.000000,0.707107 -3123,0.707107,0.000000,0.000000,0.707107 -3124,0.707107,0.000000,0.000000,0.707107 -3125,0.707107,0.000000,0.000000,0.707107 -3126,0.707107,0.000000,0.000000,0.707107 -3127,0.707107,0.000000,0.000000,0.707107 -3128,0.707107,0.000000,0.000000,0.707107 -3129,0.707107,0.000000,0.000000,0.707107 -3130,0.707107,0.000000,0.000000,0.707107 -3131,0.707107,0.000000,0.000000,0.707107 -3132,0.707107,0.000000,0.000000,0.707107 -3133,0.707107,0.000000,0.000000,0.707107 -3134,0.707107,0.000000,0.000000,0.707107 -3135,0.707107,0.000000,0.000000,0.707107 -3136,0.707107,0.000000,0.000000,0.707107 -3137,0.707107,0.000000,0.000000,0.707107 -3138,0.707107,0.000000,0.000000,0.707107 -3139,0.707107,0.000000,0.000000,0.707107 -3140,0.707107,0.000000,0.000000,0.707107 -3141,0.707107,0.000000,0.000000,0.707107 -3142,0.707107,0.000000,0.000000,0.707107 -3143,0.707107,0.000000,0.000000,0.707107 -3144,0.707107,0.000000,0.000000,0.707107 -3145,0.707107,0.000000,0.000000,0.707107 -3146,0.707107,0.000000,0.000000,0.707107 -3147,0.707107,0.000000,0.000000,0.707107 -3148,0.707107,0.000000,0.000000,0.707107 -3149,0.707107,0.000000,0.000000,0.707107 -3150,0.707107,0.000000,0.000000,0.707107 -3151,0.707107,0.000000,0.000000,0.707107 -3152,0.707107,0.000000,0.000000,0.707107 -3153,0.707107,0.000000,0.000000,0.707107 -3154,0.707107,0.000000,0.000000,0.707107 -3155,0.707107,0.000000,0.000000,0.707107 -3156,0.707107,0.000000,0.000000,0.707107 -3157,0.707107,0.000000,0.000000,0.707107 -3158,0.707107,0.000000,0.000000,0.707107 -3159,0.707107,0.000000,0.000000,0.707107 -3160,0.707107,0.000000,0.000000,0.707107 -3161,0.707107,0.000000,0.000000,0.707107 -3162,0.707107,0.000000,0.000000,0.707107 -3163,0.707107,0.000000,0.000000,0.707107 -3164,0.707107,0.000000,0.000000,0.707107 -3165,0.707107,0.000000,0.000000,0.707107 -3166,0.707107,0.000000,0.000000,0.707107 -3167,0.707107,0.000000,0.000000,0.707107 -3168,0.707107,0.000000,0.000000,0.707107 -3169,0.707107,0.000000,0.000000,0.707107 -3170,0.707107,0.000000,0.000000,0.707107 -3171,0.707107,0.000000,0.000000,0.707107 -3172,0.707107,0.000000,0.000000,0.707107 -3173,0.707107,0.000000,0.000000,0.707107 -3174,0.707107,0.000000,0.000000,0.707107 -3175,0.707107,0.000000,0.000000,0.707107 -3176,0.707107,0.000000,0.000000,0.707107 -3177,0.707107,0.000000,0.000000,0.707107 -3178,0.707107,0.000000,0.000000,0.707107 -3179,0.707107,0.000000,0.000000,0.707107 -3180,0.707107,0.000000,0.000000,0.707107 -3181,0.707107,0.000000,0.000000,0.707107 -3182,0.707107,0.000000,0.000000,0.707107 -3183,0.707107,0.000000,0.000000,0.707107 -3184,0.707107,0.000000,0.000000,0.707107 -3185,0.707107,0.000000,0.000000,0.707107 -3186,0.707107,0.000000,0.000000,0.707107 -3187,0.707107,0.000000,0.000000,0.707107 -3188,0.707107,0.000000,0.000000,0.707107 -3189,0.707107,0.000000,0.000000,0.707107 -3190,0.707107,0.000000,0.000000,0.707107 -3191,0.707107,0.000000,0.000000,0.707107 -3192,0.707107,0.000000,0.000000,0.707107 -3193,0.707107,0.000000,0.000000,0.707107 -3194,0.707107,0.000000,0.000000,0.707107 -3195,0.707107,0.000000,0.000000,0.707107 -3196,0.707107,0.000000,0.000000,0.707107 -3197,0.707107,0.000000,0.000000,0.707107 -3198,0.707107,0.000000,0.000000,0.707107 -3199,0.707107,0.000000,0.000000,0.707107 -3200,0.707107,0.000000,0.000000,0.707107 -3201,0.707107,0.000000,0.000000,0.707107 -3202,0.707107,0.000000,0.000000,0.707107 -3203,0.707107,0.000000,0.000000,0.707107 -3204,0.707107,0.000000,0.000000,0.707107 -3205,0.707107,0.000000,0.000000,0.707107 -3206,0.707107,0.000000,0.000000,0.707107 -3207,0.707107,0.000000,0.000000,0.707107 -3208,0.707107,0.000000,0.000000,0.707107 -3209,0.707107,0.000000,0.000000,0.707107 -3210,0.707107,0.000000,0.000000,0.707107 -3211,0.707107,0.000000,0.000000,0.707107 -3212,0.707107,0.000000,0.000000,0.707107 -3213,0.707107,0.000000,0.000000,0.707107 -3214,0.707107,0.000000,0.000000,0.707107 -3215,0.707107,0.000000,0.000000,0.707107 -3216,0.707107,0.000000,0.000000,0.707107 -3217,0.707107,0.000000,0.000000,0.707107 -3218,0.707107,0.000000,0.000000,0.707107 -3219,0.707107,0.000000,0.000000,0.707107 -3220,0.707107,0.000000,0.000000,0.707107 -3221,0.707107,0.000000,0.000000,0.707107 -3222,0.707107,0.000000,0.000000,0.707107 -3223,0.707107,0.000000,0.000000,0.707107 -3224,0.707107,0.000000,0.000000,0.707107 -3225,0.707107,0.000000,0.000000,0.707107 -3226,0.707107,0.000000,0.000000,0.707107 -3227,0.707107,0.000000,0.000000,0.707107 -3228,0.707107,0.000000,0.000000,0.707107 -3229,0.707107,0.000000,0.000000,0.707107 -3230,0.707107,0.000000,0.000000,0.707107 -3231,0.707107,0.000000,0.000000,0.707107 -3232,0.707107,0.000000,0.000000,0.707107 -3233,0.707107,0.000000,0.000000,0.707107 -3234,0.707107,0.000000,0.000000,0.707107 -3235,0.707107,0.000000,0.000000,0.707107 -3236,0.707107,0.000000,0.000000,0.707107 -3237,0.707107,0.000000,0.000000,0.707107 -3238,0.707107,0.000000,0.000000,0.707107 -3239,0.707107,0.000000,0.000000,0.707107 -3240,0.707107,0.000000,0.000000,0.707107 -3241,0.707107,0.000000,0.000000,0.707107 -3242,0.707107,0.000000,0.000000,0.707107 -3243,0.707107,0.000000,0.000000,0.707107 -3244,0.707107,0.000000,0.000000,0.707107 -3245,0.707107,0.000000,0.000000,0.707107 -3246,0.707107,0.000000,0.000000,0.707107 -3247,0.707107,0.000000,0.000000,0.707107 -3248,0.707107,0.000000,0.000000,0.707107 -3249,0.707107,0.000000,0.000000,0.707107 -3250,0.707107,0.000000,0.000000,0.707107 -3251,0.707107,0.000000,0.000000,0.707107 -3252,0.707107,0.000000,0.000000,0.707107 -3253,0.707107,0.000000,0.000000,0.707107 -3254,0.707107,0.000000,0.000000,0.707107 -3255,0.707107,0.000000,0.000000,0.707107 -3256,0.707107,0.000000,0.000000,0.707107 -3257,0.707107,0.000000,0.000000,0.707107 -3258,0.707107,0.000000,0.000000,0.707107 -3259,0.707107,0.000000,0.000000,0.707107 -3260,0.707107,0.000000,0.000000,0.707107 -3261,0.707107,0.000000,0.000000,0.707107 -3262,0.707107,0.000000,0.000000,0.707107 -3263,0.707107,0.000000,0.000000,0.707107 -3264,0.707107,0.000000,0.000000,0.707107 -3265,0.707107,0.000000,0.000000,0.707107 -3266,0.707107,0.000000,0.000000,0.707107 -3267,0.707107,0.000000,0.000000,0.707107 -3268,0.707107,0.000000,0.000000,0.707107 -3269,0.707107,0.000000,0.000000,0.707107 -3270,0.707107,0.000000,0.000000,0.707107 -3271,0.707107,0.000000,0.000000,0.707107 -3272,0.707107,0.000000,0.000000,0.707107 -3273,0.707107,0.000000,0.000000,0.707107 -3274,0.707107,0.000000,0.000000,0.707107 -3275,0.707107,0.000000,0.000000,0.707107 -3276,0.707107,0.000000,0.000000,0.707107 -3277,0.707107,0.000000,0.000000,0.707107 -3278,0.707107,0.000000,0.000000,0.707107 -3279,0.707107,0.000000,0.000000,0.707107 -3280,0.707107,0.000000,0.000000,0.707107 -3281,0.707107,0.000000,0.000000,0.707107 -3282,0.707107,0.000000,0.000000,0.707107 -3283,0.707107,0.000000,0.000000,0.707107 -3284,0.707107,0.000000,0.000000,0.707107 -3285,0.707107,0.000000,0.000000,0.707107 -3286,0.707107,0.000000,0.000000,0.707107 -3287,0.707107,0.000000,0.000000,0.707107 -3288,0.707107,0.000000,0.000000,0.707107 -3289,0.707107,0.000000,0.000000,0.707107 -3290,0.707107,0.000000,0.000000,0.707107 -3291,0.707107,0.000000,0.000000,0.707107 -3292,0.707107,0.000000,0.000000,0.707107 -3293,0.707107,0.000000,0.000000,0.707107 -3294,0.707107,0.000000,0.000000,0.707107 -3295,0.707107,0.000000,0.000000,0.707107 -3296,0.707107,0.000000,0.000000,0.707107 -3297,0.707107,0.000000,0.000000,0.707107 -3298,0.707107,0.000000,0.000000,0.707107 -3299,0.707107,0.000000,0.000000,0.707107 -3300,0.707107,0.000000,0.000000,0.707107 -3301,0.707107,0.000000,0.000000,0.707107 -3302,0.707107,0.000000,0.000000,0.707107 -3303,0.707107,0.000000,0.000000,0.707107 -3304,0.707107,0.000000,0.000000,0.707107 -3305,0.707107,0.000000,0.000000,0.707107 -3306,0.707107,0.000000,0.000000,0.707107 -3307,0.707107,0.000000,0.000000,0.707107 -3308,0.707107,0.000000,0.000000,0.707107 -3309,0.707107,0.000000,0.000000,0.707107 -3310,0.707107,0.000000,0.000000,0.707107 -3311,0.707107,0.000000,0.000000,0.707107 -3312,0.707107,0.000000,0.000000,0.707107 -3313,0.707107,0.000000,0.000000,0.707107 -3314,0.707107,0.000000,0.000000,0.707107 -3315,0.707107,0.000000,0.000000,0.707107 -3316,0.707107,0.000000,0.000000,0.707107 -3317,0.707107,0.000000,0.000000,0.707107 -3318,0.707107,0.000000,0.000000,0.707107 -3319,0.707107,0.000000,0.000000,0.707107 -3320,0.707107,0.000000,0.000000,0.707107 -3321,0.707107,0.000000,0.000000,0.707107 -3322,0.707107,0.000000,0.000000,0.707107 -3323,0.707107,0.000000,0.000000,0.707107 -3324,0.707107,0.000000,0.000000,0.707107 -3325,0.707107,0.000000,0.000000,0.707107 -3326,0.707107,0.000000,0.000000,0.707107 -3327,0.707107,0.000000,0.000000,0.707107 -3328,0.707107,0.000000,0.000000,0.707107 -3329,0.707107,0.000000,0.000000,0.707107 -3330,0.707107,0.000000,0.000000,0.707107 -3331,0.707107,0.000000,0.000000,0.707107 -3332,0.707107,0.000000,0.000000,0.707107 -3333,0.707107,0.000000,0.000000,0.707107 -3334,0.707107,0.000000,0.000000,0.707107 -3335,0.707107,0.000000,0.000000,0.707107 -3336,0.707107,0.000000,0.000000,0.707107 -3337,0.707107,0.000000,0.000000,0.707107 -3338,0.707107,0.000000,0.000000,0.707107 -3339,0.707107,0.000000,0.000000,0.707107 -3340,0.707107,0.000000,0.000000,0.707107 -3341,0.707107,0.000000,0.000000,0.707107 -3342,0.707107,0.000000,0.000000,0.707107 -3343,0.707107,0.000000,0.000000,0.707107 -3344,0.707107,0.000000,0.000000,0.707107 -3345,0.707107,0.000000,0.000000,0.707107 -3346,0.707107,0.000000,0.000000,0.707107 -3347,0.707107,0.000000,0.000000,0.707107 -3348,0.707107,0.000000,0.000000,0.707107 -3349,0.707107,0.000000,0.000000,0.707107 -3350,0.707107,0.000000,0.000000,0.707107 -3351,0.707107,0.000000,0.000000,0.707107 -3352,0.707107,0.000000,0.000000,0.707107 -3353,0.707107,0.000000,0.000000,0.707107 -3354,0.707107,0.000000,0.000000,0.707107 -3355,0.707107,0.000000,0.000000,0.707107 -3356,0.707107,0.000000,0.000000,0.707107 -3357,0.707107,0.000000,0.000000,0.707107 -3358,0.707107,0.000000,0.000000,0.707107 -3359,0.707107,0.000000,0.000000,0.707107 -3360,0.707107,0.000000,0.000000,0.707107 -3361,0.707107,0.000000,0.000000,0.707107 -3362,0.707107,0.000000,0.000000,0.707107 -3363,0.707107,0.000000,0.000000,0.707107 -3364,0.707107,0.000000,0.000000,0.707107 -3365,0.707107,0.000000,0.000000,0.707107 -3366,0.707107,0.000000,0.000000,0.707107 -3367,0.707107,0.000000,0.000000,0.707107 -3368,0.707107,0.000000,0.000000,0.707107 -3369,0.707107,0.000000,0.000000,0.707107 -3370,0.707107,0.000000,0.000000,0.707107 -3371,0.707107,0.000000,0.000000,0.707107 -3372,0.707107,0.000000,0.000000,0.707107 -3373,0.707107,0.000000,0.000000,0.707107 -3374,0.707107,0.000000,0.000000,0.707107 -3375,0.707107,0.000000,0.000000,0.707107 -3376,0.707107,0.000000,0.000000,0.707107 -3377,0.707107,0.000000,0.000000,0.707107 -3378,0.707107,0.000000,0.000000,0.707107 -3379,0.707107,0.000000,0.000000,0.707107 -3380,0.707107,0.000000,0.000000,0.707107 -3381,0.707107,0.000000,0.000000,0.707107 -3382,0.707107,0.000000,0.000000,0.707107 -3383,0.707107,0.000000,0.000000,0.707107 -3384,0.707107,0.000000,0.000000,0.707107 -3385,0.707107,0.000000,0.000000,0.707107 -3386,0.707107,0.000000,0.000000,0.707107 -3387,0.707107,0.000000,0.000000,0.707107 -3388,0.707107,0.000000,0.000000,0.707107 -3389,0.707107,0.000000,0.000000,0.707107 -3390,0.707107,0.000000,0.000000,0.707107 -3391,0.707107,0.000000,0.000000,0.707107 -3392,0.707107,0.000000,0.000000,0.707107 -3393,0.707107,0.000000,0.000000,0.707107 -3394,0.707107,0.000000,0.000000,0.707107 -3395,0.707107,0.000000,0.000000,0.707107 -3396,0.707107,0.000000,0.000000,0.707107 -3397,0.707107,0.000000,0.000000,0.707107 -3398,0.707107,0.000000,0.000000,0.707107 -3399,0.707107,0.000000,0.000000,0.707107 -3400,0.707107,0.000000,0.000000,0.707107 -3401,0.707107,0.000000,0.000000,0.707107 -3402,0.707107,0.000000,0.000000,0.707107 -3403,0.707107,0.000000,0.000000,0.707107 -3404,0.707107,0.000000,0.000000,0.707107 -3405,0.707107,0.000000,0.000000,0.707107 -3406,0.707107,0.000000,0.000000,0.707107 -3407,0.707107,0.000000,0.000000,0.707107 -3408,0.707107,0.000000,0.000000,0.707107 -3409,0.707107,0.000000,0.000000,0.707107 -3410,0.707107,0.000000,0.000000,0.707107 -3411,0.707107,0.000000,0.000000,0.707107 -3412,0.707107,0.000000,0.000000,0.707107 -3413,0.707107,0.000000,0.000000,0.707107 -3414,0.707107,0.000000,0.000000,0.707107 -3415,0.707107,0.000000,0.000000,0.707107 -3416,0.707107,0.000000,0.000000,0.707107 -3417,0.707107,0.000000,0.000000,0.707107 -3418,0.707107,0.000000,0.000000,0.707107 -3419,0.707107,0.000000,0.000000,0.707107 -3420,0.707107,0.000000,0.000000,0.707107 -3421,0.707107,0.000000,0.000000,0.707107 -3422,0.707107,0.000000,0.000000,0.707107 -3423,0.707107,0.000000,0.000000,0.707107 -3424,0.707107,0.000000,0.000000,0.707107 -3425,0.707107,0.000000,0.000000,0.707107 -3426,0.707107,0.000000,0.000000,0.707107 -3427,0.707107,0.000000,0.000000,0.707107 -3428,0.707107,0.000000,0.000000,0.707107 -3429,0.707107,0.000000,0.000000,0.707107 -3430,0.707107,0.000000,0.000000,0.707107 -3431,0.707107,0.000000,0.000000,0.707107 -3432,0.707107,0.000000,0.000000,0.707107 -3433,0.707107,0.000000,0.000000,0.707107 -3434,0.707107,0.000000,0.000000,0.707107 -3435,0.707107,0.000000,0.000000,0.707107 -3436,0.707107,0.000000,0.000000,0.707107 -3437,0.707107,0.000000,0.000000,0.707107 -3438,0.707107,0.000000,0.000000,0.707107 -3439,0.707107,0.000000,0.000000,0.707107 -3440,0.707107,0.000000,0.000000,0.707107 -3441,0.707107,0.000000,0.000000,0.707107 -3442,0.707107,0.000000,0.000000,0.707107 -3443,0.707107,0.000000,0.000000,0.707107 -3444,0.707107,0.000000,0.000000,0.707107 -3445,0.707107,0.000000,0.000000,0.707107 -3446,0.707107,0.000000,0.000000,0.707107 -3447,0.707107,0.000000,0.000000,0.707107 -3448,0.707107,0.000000,0.000000,0.707107 -3449,0.707107,0.000000,0.000000,0.707107 -3450,0.707107,0.000000,0.000000,0.707107 -3451,0.707107,0.000000,0.000000,0.707107 -3452,0.707107,0.000000,0.000000,0.707107 -3453,0.707107,0.000000,0.000000,0.707107 -3454,0.707107,0.000000,0.000000,0.707107 -3455,0.707107,0.000000,0.000000,0.707107 -3456,0.707107,0.000000,0.000000,0.707107 -3457,0.707107,0.000000,0.000000,0.707107 -3458,0.707107,0.000000,0.000000,0.707107 -3459,0.707107,0.000000,0.000000,0.707107 -3460,0.707107,0.000000,0.000000,0.707107 -3461,0.707107,0.000000,0.000000,0.707107 -3462,0.707107,0.000000,0.000000,0.707107 -3463,0.707107,0.000000,0.000000,0.707107 -3464,0.707107,0.000000,0.000000,0.707107 -3465,0.707107,0.000000,0.000000,0.707107 -3466,0.707107,0.000000,0.000000,0.707107 -3467,0.707107,0.000000,0.000000,0.707107 -3468,0.707107,0.000000,0.000000,0.707107 -3469,0.707107,0.000000,0.000000,0.707107 -3470,0.707107,0.000000,0.000000,0.707107 -3471,0.707107,0.000000,0.000000,0.707107 -3472,0.707107,0.000000,0.000000,0.707107 -3473,0.707107,0.000000,0.000000,0.707107 -3474,0.707107,0.000000,0.000000,0.707107 -3475,0.707107,0.000000,0.000000,0.707107 -3476,0.707107,0.000000,0.000000,0.707107 -3477,0.707107,0.000000,0.000000,0.707107 -3478,0.707107,0.000000,0.000000,0.707107 -3479,0.707107,0.000000,0.000000,0.707107 -3480,0.707107,0.000000,0.000000,0.707107 -3481,0.707107,0.000000,0.000000,0.707107 -3482,0.707107,0.000000,0.000000,0.707107 -3483,0.707107,0.000000,0.000000,0.707107 -3484,0.707107,0.000000,0.000000,0.707107 -3485,0.707107,0.000000,0.000000,0.707107 -3486,0.707107,0.000000,0.000000,0.707107 -3487,0.707107,0.000000,0.000000,0.707107 -3488,0.707107,0.000000,0.000000,0.707107 -3489,0.707107,0.000000,0.000000,0.707107 -3490,0.707107,0.000000,0.000000,0.707107 -3491,0.707107,0.000000,0.000000,0.707107 -3492,0.707107,0.000000,0.000000,0.707107 -3493,0.707107,0.000000,0.000000,0.707107 -3494,0.707107,0.000000,0.000000,0.707107 -3495,0.707107,0.000000,0.000000,0.707107 -3496,0.707107,0.000000,0.000000,0.707107 -3497,0.707107,0.000000,0.000000,0.707107 -3498,0.707107,0.000000,0.000000,0.707107 -3499,0.707107,0.000000,0.000000,0.707107 -3500,0.707107,0.000000,0.000000,0.707107 -3501,0.707107,0.000000,0.000000,0.707107 -3502,0.707107,0.000000,0.000000,0.707107 -3503,0.707107,0.000000,0.000000,0.707107 -3504,0.707107,0.000000,0.000000,0.707107 -3505,0.707107,0.000000,0.000000,0.707107 -3506,0.707107,0.000000,0.000000,0.707107 -3507,0.707107,0.000000,0.000000,0.707107 -3508,0.707107,0.000000,0.000000,0.707107 -3509,0.707107,0.000000,0.000000,0.707107 -3510,0.707107,0.000000,0.000000,0.707107 -3511,0.707107,0.000000,0.000000,0.707107 -3512,0.707107,0.000000,0.000000,0.707107 -3513,0.707107,0.000000,0.000000,0.707107 -3514,0.707107,0.000000,0.000000,0.707107 -3515,0.707107,0.000000,0.000000,0.707107 -3516,0.707107,0.000000,0.000000,0.707107 -3517,0.707107,0.000000,0.000000,0.707107 -3518,0.707107,0.000000,0.000000,0.707107 -3519,0.707107,0.000000,0.000000,0.707107 -3520,0.707107,0.000000,0.000000,0.707107 -3521,0.707107,0.000000,0.000000,0.707107 -3522,0.707107,0.000000,0.000000,0.707107 -3523,0.707107,0.000000,0.000000,0.707107 -3524,0.707107,0.000000,0.000000,0.707107 -3525,0.707107,0.000000,0.000000,0.707107 -3526,0.707107,0.000000,0.000000,0.707107 -3527,0.707107,0.000000,0.000000,0.707107 -3528,0.707107,0.000000,0.000000,0.707107 -3529,0.707107,0.000000,0.000000,0.707107 -3530,0.707107,0.000000,0.000000,0.707107 -3531,0.707107,0.000000,0.000000,0.707107 -3532,0.707107,0.000000,0.000000,0.707107 -3533,0.707107,0.000000,0.000000,0.707107 -3534,0.707107,0.000000,0.000000,0.707107 -3535,0.707107,0.000000,0.000000,0.707107 -3536,0.707107,0.000000,0.000000,0.707107 -3537,0.707107,0.000000,0.000000,0.707107 -3538,0.707107,0.000000,0.000000,0.707107 -3539,0.707107,0.000000,0.000000,0.707107 -3540,0.707107,0.000000,0.000000,0.707107 -3541,0.707107,0.000000,0.000000,0.707107 -3542,0.707107,0.000000,0.000000,0.707107 -3543,0.707107,0.000000,0.000000,0.707107 -3544,0.707107,0.000000,0.000000,0.707107 -3545,0.707107,0.000000,0.000000,0.707107 -3546,0.707107,0.000000,0.000000,0.707107 -3547,0.707107,0.000000,0.000000,0.707107 -3548,0.707107,0.000000,0.000000,0.707107 -3549,0.707107,0.000000,0.000000,0.707107 -3550,0.707107,0.000000,0.000000,0.707107 -3551,0.707107,0.000000,0.000000,0.707107 -3552,0.707107,0.000000,0.000000,0.707107 -3553,0.707107,0.000000,0.000000,0.707107 -3554,0.707107,0.000000,0.000000,0.707107 -3555,0.707107,0.000000,0.000000,0.707107 -3556,0.707107,0.000000,0.000000,0.707107 -3557,0.707107,0.000000,0.000000,0.707107 -3558,0.707107,0.000000,0.000000,0.707107 -3559,0.707107,0.000000,0.000000,0.707107 -3560,0.707107,0.000000,0.000000,0.707107 -3561,0.707107,0.000000,0.000000,0.707107 -3562,0.707107,0.000000,0.000000,0.707107 -3563,0.707107,0.000000,0.000000,0.707107 -3564,0.707107,0.000000,0.000000,0.707107 -3565,0.707107,0.000000,0.000000,0.707107 -3566,0.707107,0.000000,0.000000,0.707107 -3567,0.707107,0.000000,0.000000,0.707107 -3568,0.707107,0.000000,0.000000,0.707107 -3569,0.707107,0.000000,0.000000,0.707107 -3570,0.707107,0.000000,0.000000,0.707107 -3571,0.707107,0.000000,0.000000,0.707107 -3572,0.707107,0.000000,0.000000,0.707107 -3573,0.707107,0.000000,0.000000,0.707107 -3574,0.707107,0.000000,0.000000,0.707107 -3575,0.707107,0.000000,0.000000,0.707107 -3576,0.707107,0.000000,0.000000,0.707107 -3577,0.707107,0.000000,0.000000,0.707107 -3578,0.707107,0.000000,0.000000,0.707107 -3579,0.707107,0.000000,0.000000,0.707107 -3580,0.707107,0.000000,0.000000,0.707107 -3581,0.707107,0.000000,0.000000,0.707107 -3582,0.707107,0.000000,0.000000,0.707107 -3583,0.707107,0.000000,0.000000,0.707107 -3584,0.707107,0.000000,0.000000,0.707107 -3585,0.707107,0.000000,0.000000,0.707107 -3586,0.707107,0.000000,0.000000,0.707107 -3587,0.707107,0.000000,0.000000,0.707107 -3588,0.707107,0.000000,0.000000,0.707107 -3589,0.707107,0.000000,0.000000,0.707107 -3590,0.707107,0.000000,0.000000,0.707107 -3591,0.707107,0.000000,0.000000,0.707107 -3592,0.707107,0.000000,0.000000,0.707107 -3593,0.707107,0.000000,0.000000,0.707107 -3594,0.707107,0.000000,0.000000,0.707107 -3595,0.707107,0.000000,0.000000,0.707107 -3596,0.707107,0.000000,0.000000,0.707107 -3597,0.707107,0.000000,0.000000,0.707107 -3598,0.707107,0.000000,0.000000,0.707107 -3599,0.707107,0.000000,0.000000,0.707107 -3600,0.707107,0.000000,0.000000,0.707107 -3601,0.707107,0.000000,0.000000,0.707107 -3602,0.707107,0.000000,0.000000,0.707107 -3603,0.707107,0.000000,0.000000,0.707107 -3604,0.707107,0.000000,0.000000,0.707107 -3605,0.707107,0.000000,0.000000,0.707107 -3606,0.707107,0.000000,0.000000,0.707107 -3607,0.707107,0.000000,0.000000,0.707107 -3608,0.707107,0.000000,0.000000,0.707107 -3609,0.707107,0.000000,0.000000,0.707107 -3610,0.707107,0.000000,0.000000,0.707107 -3611,0.707107,0.000000,0.000000,0.707107 -3612,0.707107,0.000000,0.000000,0.707107 -3613,0.707107,0.000000,0.000000,0.707107 -3614,0.707107,0.000000,0.000000,0.707107 -3615,0.707107,0.000000,0.000000,0.707107 -3616,0.707107,0.000000,0.000000,0.707107 -3617,0.707107,0.000000,0.000000,0.707107 -3618,0.707107,0.000000,0.000000,0.707107 -3619,0.707107,0.000000,0.000000,0.707107 -3620,0.707107,0.000000,0.000000,0.707107 -3621,0.707107,0.000000,0.000000,0.707107 -3622,0.707107,0.000000,0.000000,0.707107 -3623,0.707107,0.000000,0.000000,0.707107 -3624,0.707107,0.000000,0.000000,0.707107 -3625,0.707107,0.000000,0.000000,0.707107 -3626,0.707107,0.000000,0.000000,0.707107 -3627,0.707107,0.000000,0.000000,0.707107 -3628,0.707107,0.000000,0.000000,0.707107 -3629,0.707107,0.000000,0.000000,0.707107 -3630,0.707107,0.000000,0.000000,0.707107 -3631,0.707107,0.000000,0.000000,0.707107 -3632,0.707107,0.000000,0.000000,0.707107 -3633,0.707107,0.000000,0.000000,0.707107 -3634,0.707107,0.000000,0.000000,0.707107 -3635,0.707107,0.000000,0.000000,0.707107 -3636,0.707107,0.000000,0.000000,0.707107 -3637,0.707107,0.000000,0.000000,0.707107 -3638,0.707107,0.000000,0.000000,0.707107 -3639,0.707107,0.000000,0.000000,0.707107 -3640,0.707107,0.000000,0.000000,0.707107 -3641,0.707107,0.000000,0.000000,0.707107 -3642,0.707107,0.000000,0.000000,0.707107 -3643,0.707107,0.000000,0.000000,0.707107 -3644,0.707107,0.000000,0.000000,0.707107 -3645,0.707107,0.000000,0.000000,0.707107 -3646,0.707107,0.000000,0.000000,0.707107 -3647,0.707107,0.000000,0.000000,0.707107 -3648,0.707107,0.000000,0.000000,0.707107 -3649,0.707107,0.000000,0.000000,0.707107 -3650,0.707107,0.000000,0.000000,0.707107 -3651,0.707107,0.000000,0.000000,0.707107 -3652,0.707107,0.000000,0.000000,0.707107 -3653,0.707107,0.000000,0.000000,0.707107 -3654,0.707107,0.000000,0.000000,0.707107 -3655,0.707107,0.000000,0.000000,0.707107 -3656,0.707107,0.000000,0.000000,0.707107 -3657,0.707107,0.000000,0.000000,0.707107 -3658,0.707107,0.000000,0.000000,0.707107 -3659,0.707107,0.000000,0.000000,0.707107 -3660,0.707107,0.000000,0.000000,0.707107 -3661,0.707107,0.000000,0.000000,0.707107 -3662,0.707107,0.000000,0.000000,0.707107 -3663,0.707107,0.000000,0.000000,0.707107 -3664,0.707107,0.000000,0.000000,0.707107 -3665,0.707107,0.000000,0.000000,0.707107 -3666,0.707107,0.000000,0.000000,0.707107 -3667,0.707107,0.000000,0.000000,0.707107 -3668,0.707107,0.000000,0.000000,0.707107 -3669,0.707107,0.000000,0.000000,0.707107 -3670,0.707107,0.000000,0.000000,0.707107 -3671,0.707107,0.000000,0.000000,0.707107 -3672,0.707107,0.000000,0.000000,0.707107 -3673,0.707107,0.000000,0.000000,0.707107 -3674,0.707107,0.000000,0.000000,0.707107 -3675,0.707107,0.000000,0.000000,0.707107 -3676,0.707107,0.000000,0.000000,0.707107 -3677,0.707107,0.000000,0.000000,0.707107 -3678,0.707107,0.000000,0.000000,0.707107 -3679,0.707107,0.000000,0.000000,0.707107 -3680,0.707107,0.000000,0.000000,0.707107 -3681,0.707107,0.000000,0.000000,0.707107 -3682,0.707107,0.000000,0.000000,0.707107 -3683,0.707107,0.000000,0.000000,0.707107 -3684,0.707107,0.000000,0.000000,0.707107 -3685,0.707107,0.000000,0.000000,0.707107 -3686,0.707107,0.000000,0.000000,0.707107 -3687,0.707107,0.000000,0.000000,0.707107 -3688,0.707107,0.000000,0.000000,0.707107 -3689,0.707107,0.000000,0.000000,0.707107 -3690,0.707107,0.000000,0.000000,0.707107 -3691,0.707107,0.000000,0.000000,0.707107 -3692,0.707107,0.000000,0.000000,0.707107 -3693,0.707107,0.000000,0.000000,0.707107 -3694,0.707107,0.000000,0.000000,0.707107 -3695,0.707107,0.000000,0.000000,0.707107 -3696,0.707107,0.000000,0.000000,0.707107 -3697,0.707107,0.000000,0.000000,0.707107 -3698,0.707107,0.000000,0.000000,0.707107 -3699,0.707107,0.000000,0.000000,0.707107 -3700,0.707107,0.000000,0.000000,0.707107 -3701,0.707107,0.000000,0.000000,0.707107 -3702,0.707107,0.000000,0.000000,0.707107 -3703,0.707107,0.000000,0.000000,0.707107 -3704,0.707107,0.000000,0.000000,0.707107 -3705,0.707107,0.000000,0.000000,0.707107 -3706,0.707107,0.000000,0.000000,0.707107 -3707,0.707107,0.000000,0.000000,0.707107 -3708,0.707107,0.000000,0.000000,0.707107 -3709,0.707107,0.000000,0.000000,0.707107 -3710,0.707107,0.000000,0.000000,0.707107 -3711,0.707107,0.000000,0.000000,0.707107 -3712,0.707107,0.000000,0.000000,0.707107 -3713,0.707107,0.000000,0.000000,0.707107 -3714,0.707107,0.000000,0.000000,0.707107 -3715,0.707107,0.000000,0.000000,0.707107 -3716,0.707107,0.000000,0.000000,0.707107 -3717,0.707107,0.000000,0.000000,0.707107 -3718,0.707107,0.000000,0.000000,0.707107 -3719,0.707107,0.000000,0.000000,0.707107 -3720,0.707107,0.000000,0.000000,0.707107 -3721,0.707107,0.000000,0.000000,0.707107 -3722,0.707107,0.000000,0.000000,0.707107 -3723,0.707107,0.000000,0.000000,0.707107 -3724,0.707107,0.000000,0.000000,0.707107 -3725,0.707107,0.000000,0.000000,0.707107 -3726,0.707107,0.000000,0.000000,0.707107 -3727,0.707107,0.000000,0.000000,0.707107 -3728,0.707107,0.000000,0.000000,0.707107 -3729,0.707107,0.000000,0.000000,0.707107 -3730,0.707107,0.000000,0.000000,0.707107 -3731,0.707107,0.000000,0.000000,0.707107 -3732,0.707107,0.000000,0.000000,0.707107 -3733,0.707107,0.000000,0.000000,0.707107 -3734,0.707107,0.000000,0.000000,0.707107 -3735,0.707107,0.000000,0.000000,0.707107 -3736,0.707107,0.000000,0.000000,0.707107 -3737,0.707107,0.000000,0.000000,0.707107 -3738,0.707107,0.000000,0.000000,0.707107 -3739,0.707107,0.000000,0.000000,0.707107 -3740,0.707107,0.000000,0.000000,0.707107 -3741,0.707107,0.000000,0.000000,0.707107 -3742,0.707107,0.000000,0.000000,0.707107 -3743,0.707107,0.000000,0.000000,0.707107 -3744,0.707107,0.000000,0.000000,0.707107 -3745,0.707107,0.000000,0.000000,0.707107 -3746,0.707107,0.000000,0.000000,0.707107 -3747,0.707107,0.000000,0.000000,0.707107 -3748,0.707107,0.000000,0.000000,0.707107 -3749,0.707107,0.000000,0.000000,0.707107 -3750,0.707107,0.000000,0.000000,0.707107 -3751,0.707107,0.000000,0.000000,0.707107 -3752,0.707107,0.000000,0.000000,0.707107 -3753,0.707107,0.000000,0.000000,0.707107 -3754,0.707107,0.000000,0.000000,0.707107 -3755,0.707107,0.000000,0.000000,0.707107 -3756,0.707107,0.000000,0.000000,0.707107 -3757,0.707107,0.000000,0.000000,0.707107 -3758,0.707107,0.000000,0.000000,0.707107 -3759,0.707107,0.000000,0.000000,0.707107 -3760,0.707107,0.000000,0.000000,0.707107 -3761,0.707107,0.000000,0.000000,0.707107 -3762,0.707107,0.000000,0.000000,0.707107 -3763,0.707107,0.000000,0.000000,0.707107 -3764,0.707107,0.000000,0.000000,0.707107 -3765,0.707107,0.000000,0.000000,0.707107 -3766,0.707107,0.000000,0.000000,0.707107 -3767,0.707107,0.000000,0.000000,0.707107 -3768,0.707107,0.000000,0.000000,0.707107 -3769,0.707107,0.000000,0.000000,0.707107 -3770,0.707107,0.000000,0.000000,0.707107 -3771,0.707107,0.000000,0.000000,0.707107 -3772,0.707107,0.000000,0.000000,0.707107 -3773,0.707107,0.000000,0.000000,0.707107 -3774,0.707107,0.000000,0.000000,0.707107 -3775,0.707107,0.000000,0.000000,0.707107 -3776,0.707107,0.000000,0.000000,0.707107 -3777,0.707107,0.000000,0.000000,0.707107 -3778,0.707107,0.000000,0.000000,0.707107 -3779,0.707107,0.000000,0.000000,0.707107 -3780,0.707107,0.000000,0.000000,0.707107 -3781,0.707107,0.000000,0.000000,0.707107 -3782,0.707107,0.000000,0.000000,0.707107 -3783,0.707107,0.000000,0.000000,0.707107 -3784,0.707107,0.000000,0.000000,0.707107 -3785,0.707107,0.000000,0.000000,0.707107 -3786,0.707107,0.000000,0.000000,0.707107 -3787,0.707107,0.000000,0.000000,0.707107 -3788,0.707107,0.000000,0.000000,0.707107 -3789,0.707107,0.000000,0.000000,0.707107 -3790,0.707107,0.000000,0.000000,0.707107 -3791,0.707107,0.000000,0.000000,0.707107 -3792,0.707107,0.000000,0.000000,0.707107 -3793,0.707107,0.000000,0.000000,0.707107 -3794,0.707107,0.000000,0.000000,0.707107 -3795,0.707107,0.000000,0.000000,0.707107 -3796,0.707107,0.000000,0.000000,0.707107 -3797,0.707107,0.000000,0.000000,0.707107 -3798,0.707107,0.000000,0.000000,0.707107 -3799,0.707107,0.000000,0.000000,0.707107 -3800,0.707107,0.000000,0.000000,0.707107 -3801,0.707107,0.000000,0.000000,0.707107 -3802,0.707107,0.000000,0.000000,0.707107 -3803,0.707107,0.000000,0.000000,0.707107 -3804,0.707107,0.000000,0.000000,0.707107 -3805,0.707107,0.000000,0.000000,0.707107 -3806,0.707107,0.000000,0.000000,0.707107 -3807,0.707107,0.000000,0.000000,0.707107 -3808,0.707107,0.000000,0.000000,0.707107 -3809,0.707107,0.000000,0.000000,0.707107 -3810,0.707107,0.000000,0.000000,0.707107 -3811,0.707107,0.000000,0.000000,0.707107 -3812,0.707107,0.000000,0.000000,0.707107 -3813,0.707107,0.000000,0.000000,0.707107 -3814,0.707107,0.000000,0.000000,0.707107 -3815,0.707107,0.000000,0.000000,0.707107 -3816,0.707107,0.000000,0.000000,0.707107 -3817,0.707107,0.000000,0.000000,0.707107 -3818,0.707107,0.000000,0.000000,0.707107 -3819,0.707107,0.000000,0.000000,0.707107 -3820,0.707107,0.000000,0.000000,0.707107 -3821,0.707107,0.000000,0.000000,0.707107 -3822,0.707107,0.000000,0.000000,0.707107 -3823,0.707107,0.000000,0.000000,0.707107 -3824,0.707107,0.000000,0.000000,0.707107 -3825,0.707107,0.000000,0.000000,0.707107 -3826,0.707107,0.000000,0.000000,0.707107 -3827,0.707107,0.000000,0.000000,0.707107 -3828,0.707107,0.000000,0.000000,0.707107 -3829,0.707107,0.000000,0.000000,0.707107 -3830,0.707107,0.000000,0.000000,0.707107 -3831,0.707107,0.000000,0.000000,0.707107 -3832,0.707107,0.000000,0.000000,0.707107 -3833,0.707107,0.000000,0.000000,0.707107 -3834,0.707107,0.000000,0.000000,0.707107 -3835,0.707107,0.000000,0.000000,0.707107 -3836,0.707107,0.000000,0.000000,0.707107 -3837,0.707107,0.000000,0.000000,0.707107 -3838,0.707107,0.000000,0.000000,0.707107 -3839,0.707107,0.000000,0.000000,0.707107 -3840,0.707107,0.000000,0.000000,0.707107 -3841,0.707107,0.000000,0.000000,0.707107 -3842,0.707107,0.000000,0.000000,0.707107 -3843,0.707107,0.000000,0.000000,0.707107 -3844,0.707107,0.000000,0.000000,0.707107 -3845,0.707107,0.000000,0.000000,0.707107 -3846,0.707107,0.000000,0.000000,0.707107 -3847,0.707107,0.000000,0.000000,0.707107 -3848,0.707107,0.000000,0.000000,0.707107 -3849,0.707107,0.000000,0.000000,0.707107 -3850,0.707107,0.000000,0.000000,0.707107 -3851,0.707107,0.000000,0.000000,0.707107 -3852,0.707107,0.000000,0.000000,0.707107 -3853,0.707107,0.000000,0.000000,0.707107 -3854,0.707107,0.000000,0.000000,0.707107 -3855,0.707107,0.000000,0.000000,0.707107 -3856,0.707107,0.000000,0.000000,0.707107 -3857,0.707107,0.000000,0.000000,0.707107 -3858,0.707107,0.000000,0.000000,0.707107 -3859,0.707107,0.000000,0.000000,0.707107 -3860,0.707107,0.000000,0.000000,0.707107 -3861,0.707107,0.000000,0.000000,0.707107 -3862,0.707107,0.000000,0.000000,0.707107 -3863,0.707107,0.000000,0.000000,0.707107 -3864,0.707107,0.000000,0.000000,0.707107 -3865,0.707107,0.000000,0.000000,0.707107 -3866,0.707107,0.000000,0.000000,0.707107 -3867,0.707107,0.000000,0.000000,0.707107 -3868,0.707107,0.000000,0.000000,0.707107 -3869,0.707107,0.000000,0.000000,0.707107 -3870,0.707107,0.000000,0.000000,0.707107 -3871,0.707107,0.000000,0.000000,0.707107 -3872,0.707107,0.000000,0.000000,0.707107 -3873,0.707107,0.000000,0.000000,0.707107 -3874,0.707107,0.000000,0.000000,0.707107 -3875,0.707107,0.000000,0.000000,0.707107 -3876,0.707107,0.000000,0.000000,0.707107 -3877,0.707107,0.000000,0.000000,0.707107 -3878,0.707107,0.000000,0.000000,0.707107 -3879,0.707107,0.000000,0.000000,0.707107 -3880,0.707107,0.000000,0.000000,0.707107 -3881,0.707107,0.000000,0.000000,0.707107 -3882,0.707107,0.000000,0.000000,0.707107 -3883,0.707107,0.000000,0.000000,0.707107 -3884,0.707107,0.000000,0.000000,0.707107 -3885,0.707107,0.000000,0.000000,0.707107 -3886,0.707107,0.000000,0.000000,0.707107 -3887,0.707107,0.000000,0.000000,0.707107 -3888,0.707107,0.000000,0.000000,0.707107 -3889,0.707107,0.000000,0.000000,0.707107 -3890,0.707107,0.000000,0.000000,0.707107 -3891,0.707107,0.000000,0.000000,0.707107 -3892,0.707107,0.000000,0.000000,0.707107 -3893,0.707107,0.000000,0.000000,0.707107 -3894,0.707107,0.000000,0.000000,0.707107 -3895,0.707107,0.000000,0.000000,0.707107 -3896,0.707107,0.000000,0.000000,0.707107 -3897,0.707107,0.000000,0.000000,0.707107 -3898,0.707107,0.000000,0.000000,0.707107 -3899,0.707107,0.000000,0.000000,0.707107 -3900,0.707107,0.000000,0.000000,0.707107 -3901,0.707107,0.000000,0.000000,0.707107 -3902,0.707107,0.000000,0.000000,0.707107 -3903,0.707107,0.000000,0.000000,0.707107 -3904,0.707107,0.000000,0.000000,0.707107 -3905,0.707107,0.000000,0.000000,0.707107 -3906,0.707107,0.000000,0.000000,0.707107 -3907,0.707107,0.000000,0.000000,0.707107 -3908,0.707107,0.000000,0.000000,0.707107 -3909,0.707107,0.000000,0.000000,0.707107 -3910,0.707107,0.000000,0.000000,0.707107 -3911,0.707107,0.000000,0.000000,0.707107 -3912,0.707107,0.000000,0.000000,0.707107 -3913,0.707107,0.000000,0.000000,0.707107 -3914,0.707107,0.000000,0.000000,0.707107 -3915,0.707107,0.000000,0.000000,0.707107 -3916,0.707107,0.000000,0.000000,0.707107 -3917,0.707107,0.000000,0.000000,0.707107 -3918,0.707107,0.000000,0.000000,0.707107 -3919,0.707107,0.000000,0.000000,0.707107 -3920,0.707107,0.000000,0.000000,0.707107 -3921,0.707107,0.000000,0.000000,0.707107 -3922,0.707107,0.000000,0.000000,0.707107 -3923,0.707107,0.000000,0.000000,0.707107 -3924,0.707107,0.000000,0.000000,0.707107 -3925,0.707107,0.000000,0.000000,0.707107 -3926,0.707107,0.000000,0.000000,0.707107 -3927,0.707107,0.000000,0.000000,0.707107 -3928,0.707107,0.000000,0.000000,0.707107 -3929,0.707107,0.000000,0.000000,0.707107 -3930,0.707107,0.000000,0.000000,0.707107 -3931,0.707107,0.000000,0.000000,0.707107 -3932,0.707107,0.000000,0.000000,0.707107 -3933,0.707107,0.000000,0.000000,0.707107 -3934,0.707107,0.000000,0.000000,0.707107 -3935,0.707107,0.000000,0.000000,0.707107 -3936,0.707107,0.000000,0.000000,0.707107 -3937,0.707107,0.000000,0.000000,0.707107 -3938,0.707107,0.000000,0.000000,0.707107 -3939,0.707107,0.000000,0.000000,0.707107 -3940,0.707107,0.000000,0.000000,0.707107 -3941,0.707107,0.000000,0.000000,0.707107 -3942,0.707107,0.000000,0.000000,0.707107 -3943,0.707107,0.000000,0.000000,0.707107 -3944,0.707107,0.000000,0.000000,0.707107 -3945,0.707107,0.000000,0.000000,0.707107 -3946,0.707107,0.000000,0.000000,0.707107 -3947,0.707107,0.000000,0.000000,0.707107 -3948,0.707107,0.000000,0.000000,0.707107 -3949,0.707107,0.000000,0.000000,0.707107 -3950,0.707107,0.000000,0.000000,0.707107 -3951,0.707107,0.000000,0.000000,0.707107 -3952,0.707107,0.000000,0.000000,0.707107 -3953,0.707107,0.000000,0.000000,0.707107 -3954,0.707107,0.000000,0.000000,0.707107 -3955,0.707107,0.000000,0.000000,0.707107 -3956,0.707107,0.000000,0.000000,0.707107 -3957,0.707107,0.000000,0.000000,0.707107 -3958,0.707107,0.000000,0.000000,0.707107 -3959,0.707107,0.000000,0.000000,0.707107 -3960,0.707107,0.000000,0.000000,0.707107 -3961,0.707107,0.000000,0.000000,0.707107 -3962,0.707107,0.000000,0.000000,0.707107 -3963,0.707107,0.000000,0.000000,0.707107 -3964,0.707107,0.000000,0.000000,0.707107 -3965,0.707107,0.000000,0.000000,0.707107 -3966,0.707107,0.000000,0.000000,0.707107 -3967,0.707107,0.000000,0.000000,0.707107 -3968,0.707107,0.000000,0.000000,0.707107 -3969,0.707107,0.000000,0.000000,0.707107 -3970,0.707107,0.000000,0.000000,0.707107 -3971,0.707107,0.000000,0.000000,0.707107 -3972,0.707107,0.000000,0.000000,0.707107 -3973,0.707107,0.000000,0.000000,0.707107 -3974,0.707107,0.000000,0.000000,0.707107 -3975,0.707107,0.000000,0.000000,0.707107 -3976,0.707107,0.000000,0.000000,0.707107 -3977,0.707107,0.000000,0.000000,0.707107 -3978,0.707107,0.000000,0.000000,0.707107 -3979,0.707107,0.000000,0.000000,0.707107 -3980,0.707107,0.000000,0.000000,0.707107 -3981,0.707107,0.000000,0.000000,0.707107 -3982,0.707107,0.000000,0.000000,0.707107 -3983,0.707107,0.000000,0.000000,0.707107 -3984,0.707107,0.000000,0.000000,0.707107 -3985,0.707107,0.000000,0.000000,0.707107 -3986,0.707107,0.000000,0.000000,0.707107 -3987,0.707107,0.000000,0.000000,0.707107 -3988,0.707107,0.000000,0.000000,0.707107 -3989,0.707107,0.000000,0.000000,0.707107 -3990,0.707107,0.000000,0.000000,0.707107 -3991,0.707107,0.000000,0.000000,0.707107 -3992,0.707107,0.000000,0.000000,0.707107 -3993,0.707107,0.000000,0.000000,0.707107 -3994,0.707107,0.000000,0.000000,0.707107 -3995,0.707107,0.000000,0.000000,0.707107 -3996,0.707107,0.000000,0.000000,0.707107 -3997,0.707107,0.000000,0.000000,0.707107 -3998,0.707107,0.000000,0.000000,0.707107 -3999,0.707107,0.000000,0.000000,0.707107 -4000,0.707107,0.000000,0.000000,0.707107 -4001,0.707107,0.000000,0.000000,0.707107 -4002,0.707107,0.000000,0.000000,0.707107 -4003,0.707107,0.000000,0.000000,0.707107 -4004,0.707107,0.000000,0.000000,0.707107 -4005,0.707107,0.000000,0.000000,0.707107 -4006,0.707107,0.000000,0.000000,0.707107 -4007,0.707107,0.000000,0.000000,0.707107 -4008,0.707107,0.000000,0.000000,0.707107 -4009,0.707107,0.000000,0.000000,0.707107 -4010,0.707107,0.000000,0.000000,0.707107 -4011,0.707107,0.000000,0.000000,0.707107 -4012,0.707107,0.000000,0.000000,0.707107 -4013,0.707107,0.000000,0.000000,0.707107 -4014,0.707107,0.000000,0.000000,0.707107 -4015,0.707107,0.000000,0.000000,0.707107 -4016,0.707107,0.000000,0.000000,0.707107 -4017,0.707107,0.000000,0.000000,0.707107 -4018,0.707107,0.000000,0.000000,0.707107 -4019,0.707107,0.000000,0.000000,0.707107 -4020,0.707107,0.000000,0.000000,0.707107 -4021,0.707107,0.000000,0.000000,0.707107 -4022,0.707107,0.000000,0.000000,0.707107 -4023,0.707107,0.000000,0.000000,0.707107 -4024,0.707107,0.000000,0.000000,0.707107 -4025,0.707107,0.000000,0.000000,0.707107 -4026,0.707107,0.000000,0.000000,0.707107 -4027,0.707107,0.000000,0.000000,0.707107 -4028,0.707107,0.000000,0.000000,0.707107 -4029,0.707107,0.000000,0.000000,0.707107 -4030,0.707107,0.000000,0.000000,0.707107 -4031,0.707107,0.000000,0.000000,0.707107 -4032,0.707107,0.000000,0.000000,0.707107 -4033,0.707107,0.000000,0.000000,0.707107 -4034,0.707107,0.000000,0.000000,0.707107 -4035,0.707107,0.000000,0.000000,0.707107 -4036,0.707107,0.000000,0.000000,0.707107 -4037,0.707107,0.000000,0.000000,0.707107 -4038,0.707107,0.000000,0.000000,0.707107 -4039,0.707107,0.000000,0.000000,0.707107 -4040,0.707107,0.000000,0.000000,0.707107 -4041,0.707107,0.000000,0.000000,0.707107 -4042,0.707107,0.000000,0.000000,0.707107 -4043,0.707107,0.000000,0.000000,0.707107 -4044,0.707107,0.000000,0.000000,0.707107 -4045,0.707107,0.000000,0.000000,0.707107 -4046,0.707107,0.000000,0.000000,0.707107 -4047,0.707107,0.000000,0.000000,0.707107 -4048,0.707107,0.000000,0.000000,0.707107 -4049,0.707107,0.000000,0.000000,0.707107 -4050,0.707107,0.000000,0.000000,0.707107 -4051,0.707107,0.000000,0.000000,0.707107 -4052,0.707107,0.000000,0.000000,0.707107 -4053,0.707107,0.000000,0.000000,0.707107 -4054,0.707107,0.000000,0.000000,0.707107 -4055,0.707107,0.000000,0.000000,0.707107 -4056,0.707107,0.000000,0.000000,0.707107 -4057,0.707107,0.000000,0.000000,0.707107 -4058,0.707107,0.000000,0.000000,0.707107 -4059,0.707107,0.000000,0.000000,0.707107 -4060,0.707107,0.000000,0.000000,0.707107 -4061,0.707107,0.000000,0.000000,0.707107 -4062,0.707107,0.000000,0.000000,0.707107 -4063,0.707107,0.000000,0.000000,0.707107 -4064,0.707107,0.000000,0.000000,0.707107 -4065,0.707107,0.000000,0.000000,0.707107 -4066,0.707107,0.000000,0.000000,0.707107 -4067,0.707107,0.000000,0.000000,0.707107 -4068,0.707107,0.000000,0.000000,0.707107 -4069,0.707107,0.000000,0.000000,0.707107 -4070,0.707107,0.000000,0.000000,0.707107 -4071,0.707107,0.000000,0.000000,0.707107 -4072,0.707107,0.000000,0.000000,0.707107 -4073,0.707107,0.000000,0.000000,0.707107 -4074,0.707107,0.000000,0.000000,0.707107 -4075,0.707107,0.000000,0.000000,0.707107 -4076,0.707107,0.000000,0.000000,0.707107 -4077,0.707107,0.000000,0.000000,0.707107 -4078,0.707107,0.000000,0.000000,0.707107 -4079,0.707107,0.000000,0.000000,0.707107 -4080,0.707107,0.000000,0.000000,0.707107 -4081,0.707107,0.000000,0.000000,0.707107 -4082,0.707107,0.000000,0.000000,0.707107 -4083,0.707107,0.000000,0.000000,0.707107 -4084,0.707107,0.000000,0.000000,0.707107 -4085,0.707107,0.000000,0.000000,0.707107 -4086,0.707107,0.000000,0.000000,0.707107 -4087,0.707107,0.000000,0.000000,0.707107 -4088,0.707107,0.000000,0.000000,0.707107 -4089,0.707107,0.000000,0.000000,0.707107 -4090,0.707107,0.000000,0.000000,0.707107 -4091,0.707107,0.000000,0.000000,0.707107 -4092,0.707107,0.000000,0.000000,0.707107 -4093,0.707107,0.000000,0.000000,0.707107 -4094,0.707107,0.000000,0.000000,0.707107 -4095,0.707107,0.000000,0.000000,0.707107 -4096,0.707107,0.000000,0.000000,0.707107 -4097,0.707107,0.000000,0.000000,0.707107 -4098,0.707107,0.000000,0.000000,0.707107 -4099,0.707107,0.000000,0.000000,0.707107 -4100,0.707107,0.000000,0.000000,0.707107 -4101,0.707107,0.000000,0.000000,0.707107 -4102,0.707107,0.000000,0.000000,0.707107 -4103,0.707107,0.000000,0.000000,0.707107 -4104,0.707107,0.000000,0.000000,0.707107 -4105,0.707107,0.000000,0.000000,0.707107 -4106,0.707107,0.000000,0.000000,0.707107 -4107,0.707107,0.000000,0.000000,0.707107 -4108,0.707107,0.000000,0.000000,0.707107 -4109,0.707107,0.000000,0.000000,0.707107 -4110,0.707107,0.000000,0.000000,0.707107 -4111,0.707107,0.000000,0.000000,0.707107 -4112,0.707107,0.000000,0.000000,0.707107 -4113,0.707107,0.000000,0.000000,0.707107 -4114,0.707107,0.000000,0.000000,0.707107 -4115,0.707107,0.000000,0.000000,0.707107 -4116,0.707107,0.000000,0.000000,0.707107 -4117,0.707107,0.000000,0.000000,0.707107 -4118,0.707107,0.000000,0.000000,0.707107 -4119,0.707107,0.000000,0.000000,0.707107 -4120,0.707107,0.000000,0.000000,0.707107 -4121,0.707107,0.000000,0.000000,0.707107 -4122,0.707107,0.000000,0.000000,0.707107 -4123,0.707107,0.000000,0.000000,0.707107 -4124,0.707107,0.000000,0.000000,0.707107 -4125,0.707107,0.000000,0.000000,0.707107 -4126,0.707107,0.000000,0.000000,0.707107 -4127,0.707107,0.000000,0.000000,0.707107 -4128,0.707107,0.000000,0.000000,0.707107 -4129,0.707107,0.000000,0.000000,0.707107 -4130,0.707107,0.000000,0.000000,0.707107 -4131,0.707107,0.000000,0.000000,0.707107 -4132,0.707107,0.000000,0.000000,0.707107 -4133,0.707107,0.000000,0.000000,0.707107 -4134,0.707107,0.000000,0.000000,0.707107 -4135,0.707107,0.000000,0.000000,0.707107 -4136,0.707107,0.000000,0.000000,0.707107 -4137,0.707107,0.000000,0.000000,0.707107 -4138,0.707107,0.000000,0.000000,0.707107 -4139,0.707107,0.000000,0.000000,0.707107 -4140,0.707107,0.000000,0.000000,0.707107 -4141,0.707107,0.000000,0.000000,0.707107 -4142,0.707107,0.000000,0.000000,0.707107 -4143,0.707107,0.000000,0.000000,0.707107 -4144,0.707107,0.000000,0.000000,0.707107 -4145,0.707107,0.000000,0.000000,0.707107 -4146,0.707107,0.000000,0.000000,0.707107 -4147,0.707107,0.000000,0.000000,0.707107 -4148,0.707107,0.000000,0.000000,0.707107 -4149,0.707107,0.000000,0.000000,0.707107 -4150,0.707107,0.000000,0.000000,0.707107 -4151,0.707107,0.000000,0.000000,0.707107 -4152,0.707107,0.000000,0.000000,0.707107 -4153,0.707107,0.000000,0.000000,0.707107 -4154,0.707107,0.000000,0.000000,0.707107 -4155,0.707107,0.000000,0.000000,0.707107 -4156,0.707107,0.000000,0.000000,0.707107 -4157,0.707107,0.000000,0.000000,0.707107 -4158,0.707107,0.000000,0.000000,0.707107 -4159,0.707107,0.000000,0.000000,0.707107 -4160,0.707107,0.000000,0.000000,0.707107 -4161,0.707107,0.000000,0.000000,0.707107 -4162,0.707107,0.000000,0.000000,0.707107 -4163,0.707107,0.000000,0.000000,0.707107 -4164,0.707107,0.000000,0.000000,0.707107 -4165,0.707107,0.000000,0.000000,0.707107 -4166,0.707107,0.000000,0.000000,0.707107 -4167,0.707107,0.000000,0.000000,0.707107 -4168,0.707107,0.000000,0.000000,0.707107 -4169,0.707107,0.000000,0.000000,0.707107 -4170,0.707107,0.000000,0.000000,0.707107 -4171,0.707107,0.000000,0.000000,0.707107 -4172,0.707107,0.000000,0.000000,0.707107 -4173,0.707107,0.000000,0.000000,0.707107 -4174,0.707107,0.000000,0.000000,0.707107 -4175,0.707107,0.000000,0.000000,0.707107 -4176,0.707107,0.000000,0.000000,0.707107 -4177,0.707107,0.000000,0.000000,0.707107 -4178,0.707107,0.000000,0.000000,0.707107 -4179,0.707107,0.000000,0.000000,0.707107 -4180,0.707107,0.000000,0.000000,0.707107 -4181,0.707107,0.000000,0.000000,0.707107 -4182,0.707107,0.000000,0.000000,0.707107 -4183,0.707107,0.000000,0.000000,0.707107 -4184,0.707107,0.000000,0.000000,0.707107 -4185,0.707107,0.000000,0.000000,0.707107 -4186,0.707107,0.000000,0.000000,0.707107 -4187,0.707107,0.000000,0.000000,0.707107 -4188,0.707107,0.000000,0.000000,0.707107 -4189,0.707107,0.000000,0.000000,0.707107 -4190,0.707107,0.000000,0.000000,0.707107 -4191,0.707107,0.000000,0.000000,0.707107 -4192,0.707107,0.000000,0.000000,0.707107 -4193,0.707107,0.000000,0.000000,0.707107 -4194,0.707107,0.000000,0.000000,0.707107 -4195,0.707107,0.000000,0.000000,0.707107 -4196,0.707107,0.000000,0.000000,0.707107 -4197,0.707107,0.000000,0.000000,0.707107 -4198,0.707107,0.000000,0.000000,0.707107 -4199,0.707107,0.000000,0.000000,0.707107 -4200,0.707107,0.000000,0.000000,0.707107 -4201,0.707107,0.000000,0.000000,0.707107 -4202,0.707107,0.000000,0.000000,0.707107 -4203,0.707107,0.000000,0.000000,0.707107 -4204,0.707107,0.000000,0.000000,0.707107 -4205,0.707107,0.000000,0.000000,0.707107 -4206,0.707107,0.000000,0.000000,0.707107 -4207,0.707107,0.000000,0.000000,0.707107 -4208,0.707107,0.000000,0.000000,0.707107 -4209,0.707107,0.000000,0.000000,0.707107 -4210,0.707107,0.000000,0.000000,0.707107 -4211,0.707107,0.000000,0.000000,0.707107 -4212,0.707107,0.000000,0.000000,0.707107 -4213,0.707107,0.000000,0.000000,0.707107 -4214,0.707107,0.000000,0.000000,0.707107 -4215,0.707107,0.000000,0.000000,0.707107 -4216,0.707107,0.000000,0.000000,0.707107 -4217,0.707107,0.000000,0.000000,0.707107 -4218,0.707107,0.000000,0.000000,0.707107 -4219,0.707107,0.000000,0.000000,0.707107 -4220,0.707107,0.000000,0.000000,0.707107 -4221,0.707107,0.000000,0.000000,0.707107 -4222,0.707107,0.000000,0.000000,0.707107 -4223,0.707107,0.000000,0.000000,0.707107 -4224,0.707107,0.000000,0.000000,0.707107 -4225,0.707107,0.000000,0.000000,0.707107 -4226,0.707107,0.000000,0.000000,0.707107 -4227,0.707107,0.000000,0.000000,0.707107 -4228,0.707107,0.000000,0.000000,0.707107 -4229,0.707107,0.000000,0.000000,0.707107 -4230,0.707107,0.000000,0.000000,0.707107 -4231,0.707107,0.000000,0.000000,0.707107 -4232,0.707107,0.000000,0.000000,0.707107 -4233,0.707107,0.000000,0.000000,0.707107 -4234,0.707107,0.000000,0.000000,0.707107 -4235,0.707107,0.000000,0.000000,0.707107 -4236,0.707107,0.000000,0.000000,0.707107 -4237,0.707107,0.000000,0.000000,0.707107 -4238,0.707107,0.000000,0.000000,0.707107 -4239,0.707107,0.000000,0.000000,0.707107 -4240,0.707107,0.000000,0.000000,0.707107 -4241,0.707107,0.000000,0.000000,0.707107 -4242,0.707107,0.000000,0.000000,0.707107 -4243,0.707107,0.000000,0.000000,0.707107 -4244,0.707107,0.000000,0.000000,0.707107 -4245,0.707107,0.000000,0.000000,0.707107 -4246,0.707107,0.000000,0.000000,0.707107 -4247,0.707107,0.000000,0.000000,0.707107 -4248,0.707107,0.000000,0.000000,0.707107 -4249,0.707107,0.000000,0.000000,0.707107 -4250,0.707107,0.000000,0.000000,0.707107 -4251,0.707107,0.000000,0.000000,0.707107 -4252,0.707107,0.000000,0.000000,0.707107 -4253,0.707107,0.000000,0.000000,0.707107 -4254,0.707107,0.000000,0.000000,0.707107 -4255,0.707107,0.000000,0.000000,0.707107 -4256,0.707107,0.000000,0.000000,0.707107 -4257,0.707107,0.000000,0.000000,0.707107 -4258,0.707107,0.000000,0.000000,0.707107 -4259,0.707107,0.000000,0.000000,0.707107 -4260,0.707107,0.000000,0.000000,0.707107 -4261,0.707107,0.000000,0.000000,0.707107 -4262,0.707107,0.000000,0.000000,0.707107 -4263,0.707107,0.000000,0.000000,0.707107 -4264,0.707107,0.000000,0.000000,0.707107 -4265,0.707107,0.000000,0.000000,0.707107 -4266,0.707107,0.000000,0.000000,0.707107 -4267,0.707107,0.000000,0.000000,0.707107 -4268,0.707107,0.000000,0.000000,0.707107 -4269,0.707107,0.000000,0.000000,0.707107 -4270,0.707107,0.000000,0.000000,0.707107 -4271,0.707107,0.000000,0.000000,0.707107 -4272,0.707107,0.000000,0.000000,0.707107 -4273,0.707107,0.000000,0.000000,0.707107 -4274,0.707107,0.000000,0.000000,0.707107 -4275,0.707107,0.000000,0.000000,0.707107 -4276,0.707107,0.000000,0.000000,0.707107 -4277,0.707107,0.000000,0.000000,0.707107 -4278,0.707107,0.000000,0.000000,0.707107 -4279,0.707107,0.000000,0.000000,0.707107 -4280,0.707107,0.000000,0.000000,0.707107 -4281,0.707107,0.000000,0.000000,0.707107 -4282,0.707107,0.000000,0.000000,0.707107 -4283,0.707107,0.000000,0.000000,0.707107 -4284,0.707107,0.000000,0.000000,0.707107 -4285,0.707107,0.000000,0.000000,0.707107 -4286,0.707107,0.000000,0.000000,0.707107 -4287,0.707107,0.000000,0.000000,0.707107 -4288,0.707107,0.000000,0.000000,0.707107 -4289,0.707107,0.000000,0.000000,0.707107 -4290,0.707107,0.000000,0.000000,0.707107 -4291,0.707107,0.000000,0.000000,0.707107 -4292,0.707107,0.000000,0.000000,0.707107 -4293,0.707107,0.000000,0.000000,0.707107 -4294,0.707107,0.000000,0.000000,0.707107 -4295,0.707107,0.000000,0.000000,0.707107 -4296,0.707107,0.000000,0.000000,0.707107 -4297,0.707107,0.000000,0.000000,0.707107 -4298,0.707107,0.000000,0.000000,0.707107 -4299,0.707107,0.000000,0.000000,0.707107 -4300,0.707107,0.000000,0.000000,0.707107 -4301,0.707107,0.000000,0.000000,0.707107 -4302,0.707107,0.000000,0.000000,0.707107 -4303,0.707107,0.000000,0.000000,0.707107 -4304,0.707107,0.000000,0.000000,0.707107 -4305,0.707107,0.000000,0.000000,0.707107 -4306,0.707107,0.000000,0.000000,0.707107 -4307,0.707107,0.000000,0.000000,0.707107 -4308,0.707107,0.000000,0.000000,0.707107 -4309,0.707107,0.000000,0.000000,0.707107 -4310,0.707107,0.000000,0.000000,0.707107 -4311,0.707107,0.000000,0.000000,0.707107 -4312,0.707107,0.000000,0.000000,0.707107 -4313,0.707107,0.000000,0.000000,0.707107 -4314,0.707107,0.000000,0.000000,0.707107 -4315,0.707107,0.000000,0.000000,0.707107 -4316,0.707107,0.000000,0.000000,0.707107 -4317,0.707107,0.000000,0.000000,0.707107 -4318,0.707107,0.000000,0.000000,0.707107 -4319,0.707107,0.000000,0.000000,0.707107 -4320,0.707107,0.000000,0.000000,0.707107 -4321,0.707107,0.000000,0.000000,0.707107 -4322,0.707107,0.000000,0.000000,0.707107 -4323,0.707107,0.000000,0.000000,0.707107 -4324,0.707107,0.000000,0.000000,0.707107 -4325,0.707107,0.000000,0.000000,0.707107 -4326,0.707107,0.000000,0.000000,0.707107 -4327,0.707107,0.000000,0.000000,0.707107 -4328,0.707107,0.000000,0.000000,0.707107 -4329,0.707107,0.000000,0.000000,0.707107 -4330,0.707107,0.000000,0.000000,0.707107 -4331,0.707107,0.000000,0.000000,0.707107 -4332,0.707107,0.000000,0.000000,0.707107 -4333,0.707107,0.000000,0.000000,0.707107 -4334,0.707107,0.000000,0.000000,0.707107 -4335,0.707107,0.000000,0.000000,0.707107 -4336,0.707107,0.000000,0.000000,0.707107 -4337,0.707107,0.000000,0.000000,0.707107 -4338,0.707107,0.000000,0.000000,0.707107 -4339,0.707107,0.000000,0.000000,0.707107 -4340,0.707107,0.000000,0.000000,0.707107 -4341,0.707107,0.000000,0.000000,0.707107 -4342,0.707107,0.000000,0.000000,0.707107 -4343,0.707107,0.000000,0.000000,0.707107 -4344,0.707107,0.000000,0.000000,0.707107 -4345,0.707107,0.000000,0.000000,0.707107 -4346,0.707107,0.000000,0.000000,0.707107 -4347,0.707107,0.000000,0.000000,0.707107 -4348,0.707107,0.000000,0.000000,0.707107 -4349,0.707107,0.000000,0.000000,0.707107 -4350,0.707107,0.000000,0.000000,0.707107 -4351,0.707107,0.000000,0.000000,0.707107 -4352,0.707107,0.000000,0.000000,0.707107 -4353,0.707107,0.000000,0.000000,0.707107 -4354,0.707107,0.000000,0.000000,0.707107 -4355,0.707107,0.000000,0.000000,0.707107 -4356,0.707107,0.000000,0.000000,0.707107 -4357,0.707107,0.000000,0.000000,0.707107 -4358,0.707107,0.000000,0.000000,0.707107 -4359,0.707107,0.000000,0.000000,0.707107 -4360,0.707107,0.000000,0.000000,0.707107 -4361,0.707107,0.000000,0.000000,0.707107 -4362,0.707107,0.000000,0.000000,0.707107 -4363,0.707107,0.000000,0.000000,0.707107 -4364,0.707107,0.000000,0.000000,0.707107 -4365,0.707107,0.000000,0.000000,0.707107 -4366,0.707107,0.000000,0.000000,0.707107 -4367,0.707107,0.000000,0.000000,0.707107 -4368,0.707107,0.000000,0.000000,0.707107 -4369,0.707107,0.000000,0.000000,0.707107 -4370,0.707107,0.000000,0.000000,0.707107 -4371,0.707107,0.000000,0.000000,0.707107 -4372,0.707107,0.000000,0.000000,0.707107 -4373,0.707107,0.000000,0.000000,0.707107 -4374,0.707107,0.000000,0.000000,0.707107 -4375,0.707107,0.000000,0.000000,0.707107 -4376,0.707107,0.000000,0.000000,0.707107 -4377,0.707107,0.000000,0.000000,0.707107 -4378,0.707107,0.000000,0.000000,0.707107 -4379,0.707107,0.000000,0.000000,0.707107 -4380,0.707107,0.000000,0.000000,0.707107 -4381,0.707107,0.000000,0.000000,0.707107 -4382,0.707107,0.000000,0.000000,0.707107 -4383,0.707107,0.000000,0.000000,0.707107 -4384,0.707107,0.000000,0.000000,0.707107 -4385,0.707107,0.000000,0.000000,0.707107 -4386,0.707107,0.000000,0.000000,0.707107 -4387,0.707107,0.000000,0.000000,0.707107 -4388,0.707107,0.000000,0.000000,0.707107 -4389,0.707107,0.000000,0.000000,0.707107 -4390,0.707107,0.000000,0.000000,0.707107 -4391,0.707107,0.000000,0.000000,0.707107 -4392,0.707107,0.000000,0.000000,0.707107 -4393,0.707107,0.000000,0.000000,0.707107 -4394,0.707107,0.000000,0.000000,0.707107 -4395,0.707107,0.000000,0.000000,0.707107 -4396,0.707107,0.000000,0.000000,0.707107 -4397,0.707107,0.000000,0.000000,0.707107 -4398,0.707107,0.000000,0.000000,0.707107 -4399,0.707107,0.000000,0.000000,0.707107 -4400,0.707107,0.000000,0.000000,0.707107 -4401,0.707107,0.000000,0.000000,0.707107 -4402,0.707107,0.000000,0.000000,0.707107 -4403,0.707107,0.000000,0.000000,0.707107 -4404,0.707107,0.000000,0.000000,0.707107 -4405,0.707107,0.000000,0.000000,0.707107 -4406,0.707107,0.000000,0.000000,0.707107 -4407,0.707107,0.000000,0.000000,0.707107 -4408,0.707107,0.000000,0.000000,0.707107 -4409,0.707107,0.000000,0.000000,0.707107 -4410,0.707107,0.000000,0.000000,0.707107 -4411,0.707107,0.000000,0.000000,0.707107 -4412,0.707107,0.000000,0.000000,0.707107 -4413,0.707107,0.000000,0.000000,0.707107 -4414,0.707107,0.000000,0.000000,0.707107 -4415,0.707107,0.000000,0.000000,0.707107 -4416,0.707107,0.000000,0.000000,0.707107 -4417,0.707107,0.000000,0.000000,0.707107 -4418,0.707107,0.000000,0.000000,0.707107 -4419,0.707107,0.000000,0.000000,0.707107 -4420,0.707107,0.000000,0.000000,0.707107 -4421,0.707107,0.000000,0.000000,0.707107 -4422,0.707107,0.000000,0.000000,0.707107 -4423,0.707107,0.000000,0.000000,0.707107 -4424,0.707107,0.000000,0.000000,0.707107 -4425,0.707107,0.000000,0.000000,0.707107 -4426,0.707107,0.000000,0.000000,0.707107 -4427,0.707107,0.000000,0.000000,0.707107 -4428,0.707107,0.000000,0.000000,0.707107 -4429,0.707107,0.000000,0.000000,0.707107 -4430,0.707107,0.000000,0.000000,0.707107 -4431,0.707107,0.000000,0.000000,0.707107 -4432,0.707107,0.000000,0.000000,0.707107 -4433,0.707107,0.000000,0.000000,0.707107 -4434,0.707107,0.000000,0.000000,0.707107 -4435,0.707107,0.000000,0.000000,0.707107 -4436,0.707107,0.000000,0.000000,0.707107 -4437,0.707107,0.000000,0.000000,0.707107 -4438,0.707107,0.000000,0.000000,0.707107 -4439,0.707107,0.000000,0.000000,0.707107 -4440,0.707107,0.000000,0.000000,0.707107 -4441,0.707107,0.000000,0.000000,0.707107 -4442,0.707107,0.000000,0.000000,0.707107 -4443,0.707107,0.000000,0.000000,0.707107 -4444,0.707107,0.000000,0.000000,0.707107 -4445,0.707107,0.000000,0.000000,0.707107 -4446,0.707107,0.000000,0.000000,0.707107 -4447,0.707107,0.000000,0.000000,0.707107 -4448,0.707107,0.000000,0.000000,0.707107 -4449,0.707107,0.000000,0.000000,0.707107 -4450,0.707107,0.000000,0.000000,0.707107 -4451,0.707107,0.000000,0.000000,0.707107 -4452,0.707107,0.000000,0.000000,0.707107 -4453,0.707107,0.000000,0.000000,0.707107 -4454,0.707107,0.000000,0.000000,0.707107 -4455,0.707107,0.000000,0.000000,0.707107 -4456,0.707107,0.000000,0.000000,0.707107 -4457,0.707107,0.000000,0.000000,0.707107 -4458,0.707107,0.000000,0.000000,0.707107 -4459,0.707107,0.000000,0.000000,0.707107 -4460,0.707107,0.000000,0.000000,0.707107 -4461,0.707107,0.000000,0.000000,0.707107 -4462,0.707107,0.000000,0.000000,0.707107 -4463,0.707107,0.000000,0.000000,0.707107 -4464,0.707107,0.000000,0.000000,0.707107 -4465,0.707107,0.000000,0.000000,0.707107 -4466,0.707107,0.000000,0.000000,0.707107 -4467,0.707107,0.000000,0.000000,0.707107 -4468,0.707107,0.000000,0.000000,0.707107 -4469,0.707107,0.000000,0.000000,0.707107 -4470,0.707107,0.000000,0.000000,0.707107 -4471,0.707107,0.000000,0.000000,0.707107 -4472,0.707107,0.000000,0.000000,0.707107 -4473,0.707107,0.000000,0.000000,0.707107 -4474,0.707107,0.000000,0.000000,0.707107 -4475,0.707107,0.000000,0.000000,0.707107 -4476,0.707107,0.000000,0.000000,0.707107 -4477,0.707107,0.000000,0.000000,0.707107 -4478,0.707107,0.000000,0.000000,0.707107 -4479,0.707107,0.000000,0.000000,0.707107 -4480,0.707107,0.000000,0.000000,0.707107 -4481,0.707107,0.000000,0.000000,0.707107 -4482,0.707107,0.000000,0.000000,0.707107 -4483,0.707107,0.000000,0.000000,0.707107 -4484,0.707107,0.000000,0.000000,0.707107 -4485,0.707107,0.000000,0.000000,0.707107 -4486,0.707107,0.000000,0.000000,0.707107 -4487,0.707107,0.000000,0.000000,0.707107 -4488,0.707107,0.000000,0.000000,0.707107 -4489,0.707107,0.000000,0.000000,0.707107 -4490,0.707107,0.000000,0.000000,0.707107 -4491,0.707107,0.000000,0.000000,0.707107 -4492,0.707107,0.000000,0.000000,0.707107 -4493,0.707107,0.000000,0.000000,0.707107 -4494,0.707107,0.000000,0.000000,0.707107 -4495,0.707107,0.000000,0.000000,0.707107 -4496,0.707107,0.000000,0.000000,0.707107 -4497,0.707107,0.000000,0.000000,0.707107 -4498,0.707107,0.000000,0.000000,0.707107 -4499,0.707107,0.000000,0.000000,0.707107 -4500,0.707107,0.000000,0.000000,0.707107 -4501,0.707107,0.000000,0.000000,0.707107 -4502,0.707107,0.000000,0.000000,0.707107 -4503,0.707107,0.000000,0.000000,0.707107 -4504,0.707107,0.000000,0.000000,0.707107 -4505,0.707107,0.000000,0.000000,0.707107 -4506,0.707107,0.000000,0.000000,0.707107 -4507,0.707107,0.000000,0.000000,0.707107 -4508,0.707107,0.000000,0.000000,0.707107 -4509,0.707107,0.000000,0.000000,0.707107 -4510,0.707107,0.000000,0.000000,0.707107 -4511,0.707107,0.000000,0.000000,0.707107 -4512,0.707107,0.000000,0.000000,0.707107 -4513,0.707107,0.000000,0.000000,0.707107 -4514,0.707107,0.000000,0.000000,0.707107 -4515,0.707107,0.000000,0.000000,0.707107 -4516,0.707107,0.000000,0.000000,0.707107 -4517,0.707107,0.000000,0.000000,0.707107 -4518,0.707107,0.000000,0.000000,0.707107 -4519,0.707107,0.000000,0.000000,0.707107 -4520,0.707107,0.000000,0.000000,0.707107 -4521,0.707107,0.000000,0.000000,0.707107 -4522,0.707107,0.000000,0.000000,0.707107 -4523,0.707107,0.000000,0.000000,0.707107 -4524,0.707107,0.000000,0.000000,0.707107 -4525,0.707107,0.000000,0.000000,0.707107 -4526,0.707107,0.000000,0.000000,0.707107 -4527,0.707107,0.000000,0.000000,0.707107 -4528,0.707107,0.000000,0.000000,0.707107 -4529,0.707107,0.000000,0.000000,0.707107 -4530,0.707107,0.000000,0.000000,0.707107 -4531,0.707107,0.000000,0.000000,0.707107 -4532,0.707107,0.000000,0.000000,0.707107 -4533,0.707107,0.000000,0.000000,0.707107 -4534,0.707107,0.000000,0.000000,0.707107 -4535,0.707107,0.000000,0.000000,0.707107 -4536,0.707107,0.000000,0.000000,0.707107 -4537,0.707107,0.000000,0.000000,0.707107 -4538,0.707107,0.000000,0.000000,0.707107 -4539,0.707107,0.000000,0.000000,0.707107 -4540,0.707107,0.000000,0.000000,0.707107 -4541,0.707107,0.000000,0.000000,0.707107 -4542,0.707107,0.000000,0.000000,0.707107 -4543,0.707107,0.000000,0.000000,0.707107 -4544,0.707107,0.000000,0.000000,0.707107 -4545,0.707107,0.000000,0.000000,0.707107 -4546,0.707107,0.000000,0.000000,0.707107 -4547,0.707107,0.000000,0.000000,0.707107 -4548,0.707107,0.000000,0.000000,0.707107 -4549,0.707107,0.000000,0.000000,0.707107 -4550,0.707107,0.000000,0.000000,0.707107 -4551,0.707107,0.000000,0.000000,0.707107 -4552,0.707107,0.000000,0.000000,0.707107 -4553,0.707107,0.000000,0.000000,0.707107 -4554,0.707107,0.000000,0.000000,0.707107 -4555,0.707107,0.000000,0.000000,0.707107 -4556,0.707107,0.000000,0.000000,0.707107 -4557,0.707107,0.000000,0.000000,0.707107 -4558,0.707107,0.000000,0.000000,0.707107 -4559,0.707107,0.000000,0.000000,0.707107 -4560,0.707107,0.000000,0.000000,0.707107 -4561,0.707107,0.000000,0.000000,0.707107 -4562,0.707107,0.000000,0.000000,0.707107 -4563,0.707107,0.000000,0.000000,0.707107 -4564,0.707107,0.000000,0.000000,0.707107 -4565,0.707107,0.000000,0.000000,0.707107 -4566,0.707107,0.000000,0.000000,0.707107 -4567,0.707107,0.000000,0.000000,0.707107 -4568,0.707107,0.000000,0.000000,0.707107 -4569,0.707107,0.000000,0.000000,0.707107 -4570,0.707107,0.000000,0.000000,0.707107 -4571,0.707107,0.000000,0.000000,0.707107 -4572,0.707107,0.000000,0.000000,0.707107 -4573,0.707107,0.000000,0.000000,0.707107 -4574,0.707107,0.000000,0.000000,0.707107 -4575,0.707107,0.000000,0.000000,0.707107 -4576,0.707107,0.000000,0.000000,0.707107 -4577,0.707107,0.000000,0.000000,0.707107 -4578,0.707107,0.000000,0.000000,0.707107 -4579,0.707107,0.000000,0.000000,0.707107 -4580,0.707107,0.000000,0.000000,0.707107 -4581,0.707107,0.000000,0.000000,0.707107 -4582,0.707107,0.000000,0.000000,0.707107 -4583,0.707107,0.000000,0.000000,0.707107 -4584,0.707107,0.000000,0.000000,0.707107 -4585,0.707107,0.000000,0.000000,0.707107 -4586,0.707107,0.000000,0.000000,0.707107 -4587,0.707107,0.000000,0.000000,0.707107 -4588,0.707107,0.000000,0.000000,0.707107 -4589,0.707107,0.000000,0.000000,0.707107 -4590,0.707107,0.000000,0.000000,0.707107 -4591,0.707107,0.000000,0.000000,0.707107 -4592,0.707107,0.000000,0.000000,0.707107 -4593,0.707107,0.000000,0.000000,0.707107 -4594,0.707107,0.000000,0.000000,0.707107 -4595,0.707107,0.000000,0.000000,0.707107 -4596,0.707107,0.000000,0.000000,0.707107 -4597,0.707107,0.000000,0.000000,0.707107 -4598,0.707107,0.000000,0.000000,0.707107 -4599,0.707107,0.000000,0.000000,0.707107 -4600,0.707107,0.000000,0.000000,0.707107 -4601,0.707107,0.000000,0.000000,0.707107 -4602,0.707107,0.000000,0.000000,0.707107 -4603,0.707107,0.000000,0.000000,0.707107 -4604,0.707107,0.000000,0.000000,0.707107 -4605,0.707107,0.000000,0.000000,0.707107 -4606,0.707107,0.000000,0.000000,0.707107 -4607,0.707107,0.000000,0.000000,0.707107 -4608,0.707107,0.000000,0.000000,0.707107 -4609,0.707107,0.000000,0.000000,0.707107 -4610,0.707107,0.000000,0.000000,0.707107 -4611,0.707107,0.000000,0.000000,0.707107 -4612,0.707107,0.000000,0.000000,0.707107 -4613,0.707107,0.000000,0.000000,0.707107 -4614,0.707107,0.000000,0.000000,0.707107 -4615,0.707107,0.000000,0.000000,0.707107 -4616,0.707107,0.000000,0.000000,0.707107 -4617,0.707107,0.000000,0.000000,0.707107 -4618,0.707107,0.000000,0.000000,0.707107 -4619,0.707107,0.000000,0.000000,0.707107 -4620,0.707107,0.000000,0.000000,0.707107 -4621,0.707107,0.000000,0.000000,0.707107 -4622,0.707107,0.000000,0.000000,0.707107 -4623,0.707107,0.000000,0.000000,0.707107 -4624,0.707107,0.000000,0.000000,0.707107 -4625,0.707107,0.000000,0.000000,0.707107 -4626,0.707107,0.000000,0.000000,0.707107 -4627,0.707107,0.000000,0.000000,0.707107 -4628,0.707107,0.000000,0.000000,0.707107 -4629,0.707107,0.000000,0.000000,0.707107 -4630,0.707107,0.000000,0.000000,0.707107 -4631,0.707107,0.000000,0.000000,0.707107 -4632,0.707107,0.000000,0.000000,0.707107 -4633,0.707107,0.000000,0.000000,0.707107 -4634,0.707107,0.000000,0.000000,0.707107 -4635,0.707107,0.000000,0.000000,0.707107 -4636,0.707107,0.000000,0.000000,0.707107 -4637,0.707107,0.000000,0.000000,0.707107 -4638,0.707107,0.000000,0.000000,0.707107 -4639,0.707107,0.000000,0.000000,0.707107 -4640,0.707107,0.000000,0.000000,0.707107 -4641,0.707107,0.000000,0.000000,0.707107 -4642,0.707107,0.000000,0.000000,0.707107 -4643,0.707107,0.000000,0.000000,0.707107 -4644,0.707107,0.000000,0.000000,0.707107 -4645,0.707107,0.000000,0.000000,0.707107 -4646,0.707107,0.000000,0.000000,0.707107 -4647,0.707107,0.000000,0.000000,0.707107 -4648,0.707107,0.000000,0.000000,0.707107 -4649,0.707107,0.000000,0.000000,0.707107 -4650,0.707107,0.000000,0.000000,0.707107 -4651,0.707107,0.000000,0.000000,0.707107 -4652,0.707107,0.000000,0.000000,0.707107 -4653,0.707107,0.000000,0.000000,0.707107 -4654,0.707107,0.000000,0.000000,0.707107 -4655,0.707107,0.000000,0.000000,0.707107 -4656,0.707107,0.000000,0.000000,0.707107 -4657,0.707107,0.000000,0.000000,0.707107 -4658,0.707107,0.000000,0.000000,0.707107 -4659,0.707107,0.000000,0.000000,0.707107 -4660,0.707107,0.000000,0.000000,0.707107 -4661,0.707107,0.000000,0.000000,0.707107 -4662,0.707107,0.000000,0.000000,0.707107 -4663,0.707107,0.000000,0.000000,0.707107 -4664,0.707107,0.000000,0.000000,0.707107 -4665,0.707107,0.000000,0.000000,0.707107 -4666,0.707107,0.000000,0.000000,0.707107 -4667,0.707107,0.000000,0.000000,0.707107 -4668,0.707107,0.000000,0.000000,0.707107 -4669,0.707107,0.000000,0.000000,0.707107 -4670,0.707107,0.000000,0.000000,0.707107 -4671,0.707107,0.000000,0.000000,0.707107 -4672,0.707107,0.000000,0.000000,0.707107 -4673,0.707107,0.000000,0.000000,0.707107 -4674,0.707107,0.000000,0.000000,0.707107 -4675,0.707107,0.000000,0.000000,0.707107 -4676,0.707107,0.000000,0.000000,0.707107 -4677,0.707107,0.000000,0.000000,0.707107 -4678,0.707107,0.000000,0.000000,0.707107 -4679,0.707107,0.000000,0.000000,0.707107 -4680,0.707107,0.000000,0.000000,0.707107 -4681,0.707107,0.000000,0.000000,0.707107 -4682,0.707107,0.000000,0.000000,0.707107 -4683,0.707107,0.000000,0.000000,0.707107 -4684,0.707107,0.000000,0.000000,0.707107 -4685,0.707107,0.000000,0.000000,0.707107 -4686,0.707107,0.000000,0.000000,0.707107 -4687,0.707107,0.000000,0.000000,0.707107 -4688,0.707107,0.000000,0.000000,0.707107 -4689,0.707107,0.000000,0.000000,0.707107 -4690,0.707107,0.000000,0.000000,0.707107 -4691,0.707107,0.000000,0.000000,0.707107 -4692,0.707107,0.000000,0.000000,0.707107 -4693,0.707107,0.000000,0.000000,0.707107 -4694,0.707107,0.000000,0.000000,0.707107 -4695,0.707107,0.000000,0.000000,0.707107 -4696,0.707107,0.000000,0.000000,0.707107 -4697,0.707107,0.000000,0.000000,0.707107 -4698,0.707107,0.000000,0.000000,0.707107 -4699,0.707107,0.000000,0.000000,0.707107 -4700,0.707107,0.000000,0.000000,0.707107 -4701,0.707107,0.000000,0.000000,0.707107 -4702,0.707107,0.000000,0.000000,0.707107 -4703,0.707107,0.000000,0.000000,0.707107 -4704,0.707107,0.000000,0.000000,0.707107 -4705,0.707107,0.000000,0.000000,0.707107 -4706,0.707107,0.000000,0.000000,0.707107 -4707,0.707107,0.000000,0.000000,0.707107 -4708,0.707107,0.000000,0.000000,0.707107 -4709,0.707107,0.000000,0.000000,0.707107 -4710,0.707107,0.000000,0.000000,0.707107 -4711,0.707107,0.000000,0.000000,0.707107 -4712,0.707107,0.000000,0.000000,0.707107 -4713,0.707107,0.000000,0.000000,0.707107 -4714,0.707107,0.000000,0.000000,0.707107 -4715,0.707107,0.000000,0.000000,0.707107 -4716,0.707107,0.000000,0.000000,0.707107 -4717,0.707107,0.000000,0.000000,0.707107 -4718,0.707107,0.000000,0.000000,0.707107 -4719,0.707107,0.000000,0.000000,0.707107 -4720,0.707107,0.000000,0.000000,0.707107 -4721,0.707107,0.000000,0.000000,0.707107 -4722,0.707107,0.000000,0.000000,0.707107 -4723,0.707107,0.000000,0.000000,0.707107 -4724,0.707107,0.000000,0.000000,0.707107 -4725,0.707107,0.000000,0.000000,0.707107 -4726,0.707107,0.000000,0.000000,0.707107 -4727,0.707107,0.000000,0.000000,0.707107 -4728,0.707107,0.000000,0.000000,0.707107 -4729,0.707107,0.000000,0.000000,0.707107 -4730,0.707107,0.000000,0.000000,0.707107 -4731,0.707107,0.000000,0.000000,0.707107 -4732,0.707107,0.000000,0.000000,0.707107 -4733,0.707107,0.000000,0.000000,0.707107 -4734,0.707107,0.000000,0.000000,0.707107 -4735,0.707107,0.000000,0.000000,0.707107 -4736,0.707107,0.000000,0.000000,0.707107 -4737,0.707107,0.000000,0.000000,0.707107 -4738,0.707107,0.000000,0.000000,0.707107 -4739,0.707107,0.000000,0.000000,0.707107 -4740,0.707107,0.000000,0.000000,0.707107 -4741,0.707107,0.000000,0.000000,0.707107 -4742,0.707107,0.000000,0.000000,0.707107 -4743,0.707107,0.000000,0.000000,0.707107 -4744,0.707107,0.000000,0.000000,0.707107 -4745,0.707107,0.000000,0.000000,0.707107 -4746,0.707107,0.000000,0.000000,0.707107 -4747,0.707107,0.000000,0.000000,0.707107 -4748,0.707107,0.000000,0.000000,0.707107 -4749,0.707107,0.000000,0.000000,0.707107 -4750,0.707107,0.000000,0.000000,0.707107 -4751,0.707107,0.000000,0.000000,0.707107 -4752,0.707107,0.000000,0.000000,0.707107 -4753,0.707107,0.000000,0.000000,0.707107 -4754,0.707107,0.000000,0.000000,0.707107 -4755,0.707107,0.000000,0.000000,0.707107 -4756,0.707107,0.000000,0.000000,0.707107 -4757,0.707107,0.000000,0.000000,0.707107 -4758,0.707107,0.000000,0.000000,0.707107 -4759,0.707107,0.000000,0.000000,0.707107 -4760,0.707107,0.000000,0.000000,0.707107 -4761,0.707107,0.000000,0.000000,0.707107 -4762,0.707107,0.000000,0.000000,0.707107 -4763,0.707107,0.000000,0.000000,0.707107 -4764,0.707107,0.000000,0.000000,0.707107 -4765,0.707107,0.000000,0.000000,0.707107 -4766,0.707107,0.000000,0.000000,0.707107 -4767,0.707107,0.000000,0.000000,0.707107 -4768,0.707107,0.000000,0.000000,0.707107 -4769,0.707107,0.000000,0.000000,0.707107 -4770,0.707107,0.000000,0.000000,0.707107 -4771,0.707107,0.000000,0.000000,0.707107 -4772,0.707107,0.000000,0.000000,0.707107 -4773,0.707107,0.000000,0.000000,0.707107 -4774,0.707107,0.000000,0.000000,0.707107 -4775,0.707107,0.000000,0.000000,0.707107 -4776,0.707107,0.000000,0.000000,0.707107 -4777,0.707107,0.000000,0.000000,0.707107 -4778,0.707107,0.000000,0.000000,0.707107 -4779,0.707107,0.000000,0.000000,0.707107 -4780,0.707107,0.000000,0.000000,0.707107 -4781,0.707107,0.000000,0.000000,0.707107 -4782,0.707107,0.000000,0.000000,0.707107 -4783,0.707107,0.000000,0.000000,0.707107 -4784,0.707107,0.000000,0.000000,0.707107 -4785,0.707107,0.000000,0.000000,0.707107 -4786,0.707107,0.000000,0.000000,0.707107 -4787,0.707107,0.000000,0.000000,0.707107 -4788,0.707107,0.000000,0.000000,0.707107 -4789,0.707107,0.000000,0.000000,0.707107 -4790,0.707107,0.000000,0.000000,0.707107 -4791,0.707107,0.000000,0.000000,0.707107 -4792,0.707107,0.000000,0.000000,0.707107 -4793,0.707107,0.000000,0.000000,0.707107 -4794,0.707107,0.000000,0.000000,0.707107 -4795,0.707107,0.000000,0.000000,0.707107 -4796,0.707107,0.000000,0.000000,0.707107 -4797,0.707107,0.000000,0.000000,0.707107 -4798,0.707107,0.000000,0.000000,0.707107 -4799,0.707107,0.000000,0.000000,0.707107 -4800,0.707107,0.000000,0.000000,0.707107 -4801,0.707107,0.000000,0.000000,0.707107 -4802,0.707107,0.000000,0.000000,0.707107 -4803,0.707107,0.000000,0.000000,0.707107 -4804,0.707107,0.000000,0.000000,0.707107 -4805,0.707107,0.000000,0.000000,0.707107 -4806,0.707107,0.000000,0.000000,0.707107 -4807,0.707107,0.000000,0.000000,0.707107 -4808,0.707107,0.000000,0.000000,0.707107 -4809,0.707107,0.000000,0.000000,0.707107 -4810,0.707107,0.000000,0.000000,0.707107 -4811,0.707107,0.000000,0.000000,0.707107 -4812,0.707107,0.000000,0.000000,0.707107 -4813,0.707107,0.000000,0.000000,0.707107 -4814,0.707107,0.000000,0.000000,0.707107 -4815,0.707107,0.000000,0.000000,0.707107 -4816,0.707107,0.000000,0.000000,0.707107 -4817,0.707107,0.000000,0.000000,0.707107 -4818,0.707107,0.000000,0.000000,0.707107 -4819,0.707107,0.000000,0.000000,0.707107 -4820,0.707107,0.000000,0.000000,0.707107 -4821,0.707107,0.000000,0.000000,0.707107 -4822,0.707107,0.000000,0.000000,0.707107 -4823,0.707107,0.000000,0.000000,0.707107 -4824,0.707107,0.000000,0.000000,0.707107 -4825,0.707107,0.000000,0.000000,0.707107 -4826,0.707107,0.000000,0.000000,0.707107 -4827,0.707107,0.000000,0.000000,0.707107 -4828,0.707107,0.000000,0.000000,0.707107 -4829,0.707107,0.000000,0.000000,0.707107 -4830,0.707107,0.000000,0.000000,0.707107 -4831,0.707107,0.000000,0.000000,0.707107 -4832,0.707107,0.000000,0.000000,0.707107 -4833,0.707107,0.000000,0.000000,0.707107 -4834,0.707107,0.000000,0.000000,0.707107 -4835,0.707107,0.000000,0.000000,0.707107 -4836,0.707107,0.000000,0.000000,0.707107 -4837,0.707107,0.000000,0.000000,0.707107 -4838,0.707107,0.000000,0.000000,0.707107 -4839,0.707107,0.000000,0.000000,0.707107 -4840,0.707107,0.000000,0.000000,0.707107 -4841,0.707107,0.000000,0.000000,0.707107 -4842,0.707107,0.000000,0.000000,0.707107 -4843,0.707107,0.000000,0.000000,0.707107 -4844,0.707107,0.000000,0.000000,0.707107 -4845,0.707107,0.000000,0.000000,0.707107 -4846,0.707107,0.000000,0.000000,0.707107 -4847,0.707107,0.000000,0.000000,0.707107 -4848,0.707107,0.000000,0.000000,0.707107 -4849,0.707107,0.000000,0.000000,0.707107 -4850,0.707107,0.000000,0.000000,0.707107 -4851,0.707107,0.000000,0.000000,0.707107 -4852,0.707107,0.000000,0.000000,0.707107 -4853,0.707107,0.000000,0.000000,0.707107 -4854,0.707107,0.000000,0.000000,0.707107 -4855,0.707107,0.000000,0.000000,0.707107 -4856,0.707107,0.000000,0.000000,0.707107 -4857,0.707107,0.000000,0.000000,0.707107 -4858,0.707107,0.000000,0.000000,0.707107 -4859,0.707107,0.000000,0.000000,0.707107 -4860,0.707107,0.000000,0.000000,0.707107 -4861,0.707107,0.000000,0.000000,0.707107 -4862,0.707107,0.000000,0.000000,0.707107 -4863,0.707107,0.000000,0.000000,0.707107 -4864,0.707107,0.000000,0.000000,0.707107 -4865,0.707107,0.000000,0.000000,0.707107 -4866,0.707107,0.000000,0.000000,0.707107 -4867,0.707107,0.000000,0.000000,0.707107 -4868,0.707107,0.000000,0.000000,0.707107 -4869,0.707107,0.000000,0.000000,0.707107 -4870,0.707107,0.000000,0.000000,0.707107 -4871,0.707107,0.000000,0.000000,0.707107 -4872,0.707107,0.000000,0.000000,0.707107 -4873,0.707107,0.000000,0.000000,0.707107 -4874,0.707107,0.000000,0.000000,0.707107 -4875,0.707107,0.000000,0.000000,0.707107 -4876,0.707107,0.000000,0.000000,0.707107 -4877,0.707107,0.000000,0.000000,0.707107 -4878,0.707107,0.000000,0.000000,0.707107 -4879,0.707107,0.000000,0.000000,0.707107 -4880,0.707107,0.000000,0.000000,0.707107 -4881,0.707107,0.000000,0.000000,0.707107 -4882,0.707107,0.000000,0.000000,0.707107 -4883,0.707107,0.000000,0.000000,0.707107 -4884,0.707107,0.000000,0.000000,0.707107 -4885,0.707107,0.000000,0.000000,0.707107 -4886,0.707107,0.000000,0.000000,0.707107 -4887,0.707107,0.000000,0.000000,0.707107 -4888,0.707107,0.000000,0.000000,0.707107 -4889,0.707107,0.000000,0.000000,0.707107 -4890,0.707107,0.000000,0.000000,0.707107 -4891,0.707107,0.000000,0.000000,0.707107 -4892,0.707107,0.000000,0.000000,0.707107 -4893,0.707107,0.000000,0.000000,0.707107 -4894,0.707107,0.000000,0.000000,0.707107 -4895,0.707107,0.000000,0.000000,0.707107 -4896,0.707107,0.000000,0.000000,0.707107 -4897,0.707107,0.000000,0.000000,0.707107 -4898,0.707107,0.000000,0.000000,0.707107 -4899,0.707107,0.000000,0.000000,0.707107 -4900,0.707107,0.000000,0.000000,0.707107 -4901,0.707107,0.000000,0.000000,0.707107 -4902,0.707107,0.000000,0.000000,0.707107 -4903,0.707107,0.000000,0.000000,0.707107 -4904,0.707107,0.000000,0.000000,0.707107 -4905,0.707107,0.000000,0.000000,0.707107 -4906,0.707107,0.000000,0.000000,0.707107 -4907,0.707107,0.000000,0.000000,0.707107 -4908,0.707107,0.000000,0.000000,0.707107 -4909,0.707107,0.000000,0.000000,0.707107 -4910,0.707107,0.000000,0.000000,0.707107 -4911,0.707107,0.000000,0.000000,0.707107 -4912,0.707107,0.000000,0.000000,0.707107 -4913,0.707107,0.000000,0.000000,0.707107 -4914,0.707107,0.000000,0.000000,0.707107 -4915,0.707107,0.000000,0.000000,0.707107 -4916,0.707107,0.000000,0.000000,0.707107 -4917,0.707107,0.000000,0.000000,0.707107 -4918,0.707107,0.000000,0.000000,0.707107 -4919,0.707107,0.000000,0.000000,0.707107 -4920,0.707107,0.000000,0.000000,0.707107 -4921,0.707107,0.000000,0.000000,0.707107 -4922,0.707107,0.000000,0.000000,0.707107 -4923,0.707107,0.000000,0.000000,0.707107 -4924,0.707107,0.000000,0.000000,0.707107 -4925,0.707107,0.000000,0.000000,0.707107 -4926,0.707107,0.000000,0.000000,0.707107 -4927,0.707107,0.000000,0.000000,0.707107 -4928,0.707107,0.000000,0.000000,0.707107 -4929,0.707107,0.000000,0.000000,0.707107 -4930,0.707107,0.000000,0.000000,0.707107 -4931,0.707107,0.000000,0.000000,0.707107 -4932,0.707107,0.000000,0.000000,0.707107 -4933,0.707107,0.000000,0.000000,0.707107 -4934,0.707107,0.000000,0.000000,0.707107 -4935,0.707107,0.000000,0.000000,0.707107 -4936,0.707107,0.000000,0.000000,0.707107 -4937,0.707107,0.000000,0.000000,0.707107 -4938,0.707107,0.000000,0.000000,0.707107 -4939,0.707107,0.000000,0.000000,0.707107 -4940,0.707107,0.000000,0.000000,0.707107 -4941,0.707107,0.000000,0.000000,0.707107 -4942,0.707107,0.000000,0.000000,0.707107 -4943,0.707107,0.000000,0.000000,0.707107 -4944,0.707107,0.000000,0.000000,0.707107 -4945,0.707107,0.000000,0.000000,0.707107 -4946,0.707107,0.000000,0.000000,0.707107 -4947,0.707107,0.000000,0.000000,0.707107 -4948,0.707107,0.000000,0.000000,0.707107 -4949,0.707107,0.000000,0.000000,0.707107 -4950,0.707107,0.000000,0.000000,0.707107 -4951,0.707107,0.000000,0.000000,0.707107 -4952,0.707107,0.000000,0.000000,0.707107 -4953,0.707107,0.000000,0.000000,0.707107 -4954,0.707107,0.000000,0.000000,0.707107 -4955,0.707107,0.000000,0.000000,0.707107 -4956,0.707107,0.000000,0.000000,0.707107 -4957,0.707107,0.000000,0.000000,0.707107 -4958,0.707107,0.000000,0.000000,0.707107 -4959,0.707107,0.000000,0.000000,0.707107 -4960,0.707107,0.000000,0.000000,0.707107 -4961,0.707107,0.000000,0.000000,0.707107 -4962,0.707107,0.000000,0.000000,0.707107 -4963,0.707107,0.000000,0.000000,0.707107 -4964,0.707107,0.000000,0.000000,0.707107 -4965,0.707107,0.000000,0.000000,0.707107 -4966,0.707107,0.000000,0.000000,0.707107 -4967,0.707107,0.000000,0.000000,0.707107 -4968,0.707107,0.000000,0.000000,0.707107 -4969,0.707107,0.000000,0.000000,0.707107 -4970,0.707107,0.000000,0.000000,0.707107 -4971,0.707107,0.000000,0.000000,0.707107 -4972,0.707107,0.000000,0.000000,0.707107 -4973,0.707107,0.000000,0.000000,0.707107 -4974,0.707107,0.000000,0.000000,0.707107 -4975,0.707107,0.000000,0.000000,0.707107 -4976,0.707107,0.000000,0.000000,0.707107 -4977,0.707107,0.000000,0.000000,0.707107 -4978,0.707107,0.000000,0.000000,0.707107 -4979,0.707107,0.000000,0.000000,0.707107 -4980,0.707107,0.000000,0.000000,0.707107 -4981,0.707107,0.000000,0.000000,0.707107 -4982,0.707107,0.000000,0.000000,0.707107 -4983,0.707107,0.000000,0.000000,0.707107 -4984,0.707107,0.000000,0.000000,0.707107 -4985,0.707107,0.000000,0.000000,0.707107 -4986,0.707107,0.000000,0.000000,0.707107 -4987,0.707107,0.000000,0.000000,0.707107 -4988,0.707107,0.000000,0.000000,0.707107 -4989,0.707107,0.000000,0.000000,0.707107 -4990,0.707107,0.000000,0.000000,0.707107 -4991,0.707107,0.000000,0.000000,0.707107 -4992,0.707107,0.000000,0.000000,0.707107 -4993,0.707107,0.000000,0.000000,0.707107 -4994,0.707107,0.000000,0.000000,0.707107 -4995,0.707107,0.000000,0.000000,0.707107 -4996,0.707107,0.000000,0.000000,0.707107 -4997,0.707107,0.000000,0.000000,0.707107 -4998,0.707107,0.000000,0.000000,0.707107 -4999,0.707107,0.000000,0.000000,0.707107 -5000,0.707107,0.000000,0.000000,0.707107 -5001,0.707107,0.000000,0.000000,0.707107 -5002,0.707107,0.000000,0.000000,0.707107 -5003,0.707107,0.000000,0.000000,0.707107 -5004,0.707107,0.000000,0.000000,0.707107 -5005,0.707107,0.000000,0.000000,0.707107 -5006,0.707107,0.000000,0.000000,0.707107 -5007,0.707107,0.000000,0.000000,0.707107 -5008,0.707107,0.000000,0.000000,0.707107 -5009,0.707107,0.000000,0.000000,0.707107 -5010,0.707107,0.000000,0.000000,0.707107 -5011,0.707107,0.000000,0.000000,0.707107 -5012,0.707107,0.000000,0.000000,0.707107 -5013,0.707107,0.000000,0.000000,0.707107 -5014,0.707107,0.000000,0.000000,0.707107 -5015,0.707107,0.000000,0.000000,0.707107 -5016,0.707107,0.000000,0.000000,0.707107 -5017,0.707107,0.000000,0.000000,0.707107 -5018,0.707107,0.000000,0.000000,0.707107 -5019,0.707107,0.000000,0.000000,0.707107 -5020,0.707107,0.000000,0.000000,0.707107 -5021,0.707107,0.000000,0.000000,0.707107 -5022,0.707107,0.000000,0.000000,0.707107 -5023,0.707107,0.000000,0.000000,0.707107 -5024,0.707107,0.000000,0.000000,0.707107 -5025,0.707107,0.000000,0.000000,0.707107 -5026,0.707107,0.000000,0.000000,0.707107 -5027,0.707107,0.000000,0.000000,0.707107 -5028,0.707107,0.000000,0.000000,0.707107 -5029,0.707107,0.000000,0.000000,0.707107 -5030,0.707107,0.000000,0.000000,0.707107 -5031,0.707107,0.000000,0.000000,0.707107 -5032,0.707107,0.000000,0.000000,0.707107 -5033,0.707107,0.000000,0.000000,0.707107 -5034,0.707107,0.000000,0.000000,0.707107 -5035,0.707107,0.000000,0.000000,0.707107 -5036,0.707107,0.000000,0.000000,0.707107 -5037,0.707107,0.000000,0.000000,0.707107 -5038,0.707107,0.000000,0.000000,0.707107 -5039,0.707107,0.000000,0.000000,0.707107 -5040,0.707107,0.000000,0.000000,0.707107 -5041,0.707107,0.000000,0.000000,0.707107 -5042,0.707107,0.000000,0.000000,0.707107 -5043,0.707107,0.000000,0.000000,0.707107 -5044,0.707107,0.000000,0.000000,0.707107 -5045,0.707107,0.000000,0.000000,0.707107 -5046,0.707107,0.000000,0.000000,0.707107 -5047,0.707107,0.000000,0.000000,0.707107 -5048,0.707107,0.000000,0.000000,0.707107 -5049,0.707107,0.000000,0.000000,0.707107 -5050,0.707107,0.000000,0.000000,0.707107 -5051,0.707107,0.000000,0.000000,0.707107 -5052,0.707107,0.000000,0.000000,0.707107 -5053,0.707107,0.000000,0.000000,0.707107 -5054,0.707107,0.000000,0.000000,0.707107 -5055,0.707107,0.000000,0.000000,0.707107 -5056,0.707107,0.000000,0.000000,0.707107 -5057,0.707107,0.000000,0.000000,0.707107 -5058,0.707107,0.000000,0.000000,0.707107 -5059,0.707107,0.000000,0.000000,0.707107 -5060,0.707107,0.000000,0.000000,0.707107 -5061,0.707107,0.000000,0.000000,0.707107 -5062,0.707107,0.000000,0.000000,0.707107 -5063,0.707107,0.000000,0.000000,0.707107 -5064,0.707107,0.000000,0.000000,0.707107 -5065,0.707107,0.000000,0.000000,0.707107 -5066,0.707107,0.000000,0.000000,0.707107 -5067,0.707107,0.000000,0.000000,0.707107 -5068,0.707107,0.000000,0.000000,0.707107 -5069,0.707107,0.000000,0.000000,0.707107 -5070,0.707107,0.000000,0.000000,0.707107 -5071,0.707107,0.000000,0.000000,0.707107 -5072,0.707107,0.000000,0.000000,0.707107 -5073,0.707107,0.000000,0.000000,0.707107 -5074,0.707107,0.000000,0.000000,0.707107 -5075,0.707107,0.000000,0.000000,0.707107 -5076,0.707107,0.000000,0.000000,0.707107 -5077,0.707107,0.000000,0.000000,0.707107 -5078,0.707107,0.000000,0.000000,0.707107 -5079,0.707107,0.000000,0.000000,0.707107 -5080,0.707107,0.000000,0.000000,0.707107 -5081,0.707107,0.000000,0.000000,0.707107 -5082,0.707107,0.000000,0.000000,0.707107 -5083,0.707107,0.000000,0.000000,0.707107 -5084,0.707107,0.000000,0.000000,0.707107 -5085,0.707107,0.000000,0.000000,0.707107 -5086,0.707107,0.000000,0.000000,0.707107 -5087,0.707107,0.000000,0.000000,0.707107 -5088,0.707107,0.000000,0.000000,0.707107 -5089,0.707107,0.000000,0.000000,0.707107 -5090,0.707107,0.000000,0.000000,0.707107 -5091,0.707107,0.000000,0.000000,0.707107 -5092,0.707107,0.000000,0.000000,0.707107 -5093,0.707107,0.000000,0.000000,0.707107 -5094,0.707107,0.000000,0.000000,0.707107 -5095,0.707107,0.000000,0.000000,0.707107 -5096,0.707107,0.000000,0.000000,0.707107 -5097,0.707107,0.000000,0.000000,0.707107 -5098,0.707107,0.000000,0.000000,0.707107 -5099,0.707107,0.000000,0.000000,0.707107 -5100,0.707107,0.000000,0.000000,0.707107 -5101,0.707107,0.000000,0.000000,0.707107 -5102,0.707107,0.000000,0.000000,0.707107 -5103,0.707107,0.000000,0.000000,0.707107 -5104,0.707107,0.000000,0.000000,0.707107 -5105,0.707107,0.000000,0.000000,0.707107 -5106,0.707107,0.000000,0.000000,0.707107 -5107,0.707107,0.000000,0.000000,0.707107 -5108,0.707107,0.000000,0.000000,0.707107 -5109,0.707107,0.000000,0.000000,0.707107 -5110,0.707107,0.000000,0.000000,0.707107 -5111,0.707107,0.000000,0.000000,0.707107 -5112,0.707107,0.000000,0.000000,0.707107 -5113,0.707107,0.000000,0.000000,0.707107 -5114,0.707107,0.000000,0.000000,0.707107 -5115,0.707107,0.000000,0.000000,0.707107 -5116,0.707107,0.000000,0.000000,0.707107 -5117,0.707107,0.000000,0.000000,0.707107 -5118,0.707107,0.000000,0.000000,0.707107 -5119,0.707107,0.000000,0.000000,0.707107 -5120,0.707107,0.000000,0.000000,0.707107 -5121,0.707107,0.000000,0.000000,0.707107 -5122,0.707107,0.000000,0.000000,0.707107 -5123,0.707107,0.000000,0.000000,0.707107 -5124,0.707107,0.000000,0.000000,0.707107 -5125,0.707107,0.000000,0.000000,0.707107 -5126,0.707107,0.000000,0.000000,0.707107 -5127,0.707107,0.000000,0.000000,0.707107 -5128,0.707107,0.000000,0.000000,0.707107 -5129,0.707107,0.000000,0.000000,0.707107 -5130,0.707107,0.000000,0.000000,0.707107 -5131,0.707107,0.000000,0.000000,0.707107 -5132,0.707107,0.000000,0.000000,0.707107 -5133,0.707107,0.000000,0.000000,0.707107 -5134,0.707107,0.000000,0.000000,0.707107 -5135,0.707107,0.000000,0.000000,0.707107 -5136,0.707107,0.000000,0.000000,0.707107 -5137,0.707107,0.000000,0.000000,0.707107 -5138,0.707107,0.000000,0.000000,0.707107 -5139,0.707107,0.000000,0.000000,0.707107 -5140,0.707107,0.000000,0.000000,0.707107 -5141,0.707107,0.000000,0.000000,0.707107 -5142,0.707107,0.000000,0.000000,0.707107 -5143,0.707107,0.000000,0.000000,0.707107 -5144,0.707107,0.000000,0.000000,0.707107 -5145,0.707107,0.000000,0.000000,0.707107 -5146,0.707107,0.000000,0.000000,0.707107 -5147,0.707107,0.000000,0.000000,0.707107 -5148,0.707107,0.000000,0.000000,0.707107 -5149,0.707107,0.000000,0.000000,0.707107 -5150,0.707107,0.000000,0.000000,0.707107 -5151,0.707107,0.000000,0.000000,0.707107 -5152,0.707107,0.000000,0.000000,0.707107 -5153,0.707107,0.000000,0.000000,0.707107 -5154,0.707107,0.000000,0.000000,0.707107 -5155,0.707107,0.000000,0.000000,0.707107 -5156,0.707107,0.000000,0.000000,0.707107 -5157,0.707107,0.000000,0.000000,0.707107 -5158,0.707107,0.000000,0.000000,0.707107 -5159,0.707107,0.000000,0.000000,0.707107 -5160,0.707107,0.000000,0.000000,0.707107 -5161,0.707107,0.000000,0.000000,0.707107 -5162,0.707107,0.000000,0.000000,0.707107 -5163,0.707107,0.000000,0.000000,0.707107 -5164,0.707107,0.000000,0.000000,0.707107 -5165,0.707107,0.000000,0.000000,0.707107 -5166,0.707107,0.000000,0.000000,0.707107 -5167,0.707107,0.000000,0.000000,0.707107 -5168,0.707107,0.000000,0.000000,0.707107 -5169,0.707107,0.000000,0.000000,0.707107 -5170,0.707107,0.000000,0.000000,0.707107 -5171,0.707107,0.000000,0.000000,0.707107 -5172,0.707107,0.000000,0.000000,0.707107 -5173,0.707107,0.000000,0.000000,0.707107 -5174,0.707107,0.000000,0.000000,0.707107 -5175,0.707107,0.000000,0.000000,0.707107 -5176,0.707107,0.000000,0.000000,0.707107 -5177,0.707107,0.000000,0.000000,0.707107 -5178,0.707107,0.000000,0.000000,0.707107 -5179,0.707107,0.000000,0.000000,0.707107 -5180,0.707107,0.000000,0.000000,0.707107 -5181,0.707107,0.000000,0.000000,0.707107 -5182,0.707107,0.000000,0.000000,0.707107 -5183,0.707107,0.000000,0.000000,0.707107 -5184,0.707107,0.000000,0.000000,0.707107 -5185,0.707107,0.000000,0.000000,0.707107 -5186,0.707107,0.000000,0.000000,0.707107 -5187,0.707107,0.000000,0.000000,0.707107 -5188,0.707107,0.000000,0.000000,0.707107 -5189,0.707107,0.000000,0.000000,0.707107 -5190,0.707107,0.000000,0.000000,0.707107 -5191,0.707107,0.000000,0.000000,0.707107 -5192,0.707107,0.000000,0.000000,0.707107 -5193,0.707107,0.000000,0.000000,0.707107 -5194,0.707107,0.000000,0.000000,0.707107 -5195,0.707107,0.000000,0.000000,0.707107 -5196,0.707107,0.000000,0.000000,0.707107 -5197,0.707107,0.000000,0.000000,0.707107 -5198,0.707107,0.000000,0.000000,0.707107 -5199,0.707107,0.000000,0.000000,0.707107 -5200,0.707107,0.000000,0.000000,0.707107 -5201,0.707107,0.000000,0.000000,0.707107 -5202,0.707107,0.000000,0.000000,0.707107 -5203,0.707107,0.000000,0.000000,0.707107 -5204,0.707107,0.000000,0.000000,0.707107 -5205,0.707107,0.000000,0.000000,0.707107 -5206,0.707107,0.000000,0.000000,0.707107 -5207,0.707107,0.000000,0.000000,0.707107 -5208,0.707107,0.000000,0.000000,0.707107 -5209,0.707107,0.000000,0.000000,0.707107 -5210,0.707107,0.000000,0.000000,0.707107 -5211,0.707107,0.000000,0.000000,0.707107 -5212,0.707107,0.000000,0.000000,0.707107 -5213,0.707107,0.000000,0.000000,0.707107 -5214,0.707107,0.000000,0.000000,0.707107 -5215,0.707107,0.000000,0.000000,0.707107 -5216,0.707107,0.000000,0.000000,0.707107 -5217,0.707107,0.000000,0.000000,0.707107 -5218,0.707107,0.000000,0.000000,0.707107 -5219,0.707107,0.000000,0.000000,0.707107 -5220,0.707107,0.000000,0.000000,0.707107 -5221,0.707107,0.000000,0.000000,0.707107 -5222,0.707107,0.000000,0.000000,0.707107 -5223,0.707107,0.000000,0.000000,0.707107 -5224,0.707107,0.000000,0.000000,0.707107 -5225,0.707107,0.000000,0.000000,0.707107 -5226,0.707107,0.000000,0.000000,0.707107 -5227,0.707107,0.000000,0.000000,0.707107 -5228,0.707107,0.000000,0.000000,0.707107 -5229,0.707107,0.000000,0.000000,0.707107 -5230,0.707107,0.000000,0.000000,0.707107 -5231,0.707107,0.000000,0.000000,0.707107 -5232,0.707107,0.000000,0.000000,0.707107 -5233,0.707107,0.000000,0.000000,0.707107 -5234,0.707107,0.000000,0.000000,0.707107 -5235,0.707107,0.000000,0.000000,0.707107 -5236,0.707107,0.000000,0.000000,0.707107 -5237,0.707107,0.000000,0.000000,0.707107 -5238,0.707107,0.000000,0.000000,0.707107 -5239,0.707107,0.000000,0.000000,0.707107 -5240,0.707107,0.000000,0.000000,0.707107 -5241,0.707107,0.000000,0.000000,0.707107 -5242,0.707107,0.000000,0.000000,0.707107 -5243,0.707107,0.000000,0.000000,0.707107 -5244,0.707107,0.000000,0.000000,0.707107 -5245,0.707107,0.000000,0.000000,0.707107 -5246,0.707107,0.000000,0.000000,0.707107 -5247,0.707107,0.000000,0.000000,0.707107 -5248,0.707107,0.000000,0.000000,0.707107 -5249,0.707107,0.000000,0.000000,0.707107 -5250,0.707107,0.000000,0.000000,0.707107 -5251,0.707107,0.000000,0.000000,0.707107 -5252,0.707107,0.000000,0.000000,0.707107 -5253,0.707107,0.000000,0.000000,0.707107 -5254,0.707107,0.000000,0.000000,0.707107 -5255,0.707107,0.000000,0.000000,0.707107 -5256,0.707107,0.000000,0.000000,0.707107 -5257,0.707107,0.000000,0.000000,0.707107 -5258,0.707107,0.000000,0.000000,0.707107 -5259,0.707107,0.000000,0.000000,0.707107 -5260,0.707107,0.000000,0.000000,0.707107 -5261,0.707107,0.000000,0.000000,0.707107 -5262,0.707107,0.000000,0.000000,0.707107 -5263,0.707107,0.000000,0.000000,0.707107 -5264,0.707107,0.000000,0.000000,0.707107 -5265,0.707107,0.000000,0.000000,0.707107 -5266,0.707107,0.000000,0.000000,0.707107 -5267,0.707107,0.000000,0.000000,0.707107 -5268,0.707107,0.000000,0.000000,0.707107 -5269,0.707107,0.000000,0.000000,0.707107 -5270,0.707107,0.000000,0.000000,0.707107 -5271,0.707107,0.000000,0.000000,0.707107 -5272,0.707107,0.000000,0.000000,0.707107 -5273,0.707107,0.000000,0.000000,0.707107 -5274,0.707107,0.000000,0.000000,0.707107 -5275,0.707107,0.000000,0.000000,0.707107 -5276,0.707107,0.000000,0.000000,0.707107 -5277,0.707107,0.000000,0.000000,0.707107 -5278,0.707107,0.000000,0.000000,0.707107 -5279,0.707107,0.000000,0.000000,0.707107 -5280,0.707107,0.000000,0.000000,0.707107 -5281,0.707107,0.000000,0.000000,0.707107 -5282,0.707107,0.000000,0.000000,0.707107 -5283,0.707107,0.000000,0.000000,0.707107 -5284,0.707107,0.000000,0.000000,0.707107 -5285,0.707107,0.000000,0.000000,0.707107 -5286,0.707107,0.000000,0.000000,0.707107 -5287,0.707107,0.000000,0.000000,0.707107 -5288,0.707107,0.000000,0.000000,0.707107 -5289,0.707107,0.000000,0.000000,0.707107 -5290,0.707107,0.000000,0.000000,0.707107 -5291,0.707107,0.000000,0.000000,0.707107 -5292,0.707107,0.000000,0.000000,0.707107 -5293,0.707107,0.000000,0.000000,0.707107 -5294,0.707107,0.000000,0.000000,0.707107 -5295,0.707107,0.000000,0.000000,0.707107 -5296,0.707107,0.000000,0.000000,0.707107 -5297,0.707107,0.000000,0.000000,0.707107 -5298,0.707107,0.000000,0.000000,0.707107 -5299,0.707107,0.000000,0.000000,0.707107 -5300,0.707107,0.000000,0.000000,0.707107 -5301,0.707107,0.000000,0.000000,0.707107 -5302,0.707107,0.000000,0.000000,0.707107 -5303,0.707107,0.000000,0.000000,0.707107 -5304,0.707107,0.000000,0.000000,0.707107 -5305,0.707107,0.000000,0.000000,0.707107 -5306,0.707107,0.000000,0.000000,0.707107 -5307,0.707107,0.000000,0.000000,0.707107 -5308,0.707107,0.000000,0.000000,0.707107 -5309,0.707107,0.000000,0.000000,0.707107 -5310,0.707107,0.000000,0.000000,0.707107 -5311,0.707107,0.000000,0.000000,0.707107 -5312,0.707107,0.000000,0.000000,0.707107 -5313,0.707107,0.000000,0.000000,0.707107 -5314,0.707107,0.000000,0.000000,0.707107 -5315,0.707107,0.000000,0.000000,0.707107 -5316,0.707107,0.000000,0.000000,0.707107 -5317,0.707107,0.000000,0.000000,0.707107 -5318,0.707107,0.000000,0.000000,0.707107 -5319,0.707107,0.000000,0.000000,0.707107 -5320,0.707107,0.000000,0.000000,0.707107 -5321,0.707107,0.000000,0.000000,0.707107 -5322,0.707107,0.000000,0.000000,0.707107 -5323,0.707107,0.000000,0.000000,0.707107 -5324,0.707107,0.000000,0.000000,0.707107 -5325,0.707107,0.000000,0.000000,0.707107 -5326,0.707107,0.000000,0.000000,0.707107 -5327,0.707107,0.000000,0.000000,0.707107 -5328,0.707107,0.000000,0.000000,0.707107 -5329,0.707107,0.000000,0.000000,0.707107 -5330,0.707107,0.000000,0.000000,0.707107 -5331,0.707107,0.000000,0.000000,0.707107 -5332,0.707107,0.000000,0.000000,0.707107 -5333,0.707107,0.000000,0.000000,0.707107 -5334,0.707107,0.000000,0.000000,0.707107 -5335,0.707107,0.000000,0.000000,0.707107 -5336,0.707107,0.000000,0.000000,0.707107 -5337,0.707107,0.000000,0.000000,0.707107 -5338,0.707107,0.000000,0.000000,0.707107 -5339,0.707107,0.000000,0.000000,0.707107 -5340,0.707107,0.000000,0.000000,0.707107 -5341,0.707107,0.000000,0.000000,0.707107 -5342,0.707107,0.000000,0.000000,0.707107 -5343,0.707107,0.000000,0.000000,0.707107 -5344,0.707107,0.000000,0.000000,0.707107 -5345,0.707107,0.000000,0.000000,0.707107 -5346,0.707107,0.000000,0.000000,0.707107 -5347,0.707107,0.000000,0.000000,0.707107 -5348,0.707107,0.000000,0.000000,0.707107 -5349,0.707107,0.000000,0.000000,0.707107 -5350,0.707107,0.000000,0.000000,0.707107 -5351,0.707107,0.000000,0.000000,0.707107 -5352,0.707107,0.000000,0.000000,0.707107 -5353,0.707107,0.000000,0.000000,0.707107 -5354,0.707107,0.000000,0.000000,0.707107 -5355,0.707107,0.000000,0.000000,0.707107 -5356,0.707107,0.000000,0.000000,0.707107 -5357,0.707107,0.000000,0.000000,0.707107 -5358,0.707107,0.000000,0.000000,0.707107 -5359,0.707107,0.000000,0.000000,0.707107 -5360,0.707107,0.000000,0.000000,0.707107 -5361,0.707107,0.000000,0.000000,0.707107 -5362,0.707107,0.000000,0.000000,0.707107 -5363,0.707107,0.000000,0.000000,0.707107 -5364,0.707107,0.000000,0.000000,0.707107 -5365,0.707107,0.000000,0.000000,0.707107 -5366,0.707107,0.000000,0.000000,0.707107 -5367,0.707107,0.000000,0.000000,0.707107 -5368,0.707107,0.000000,0.000000,0.707107 -5369,0.707107,0.000000,0.000000,0.707107 -5370,0.707107,0.000000,0.000000,0.707107 -5371,0.707107,0.000000,0.000000,0.707107 -5372,0.707107,0.000000,0.000000,0.707107 -5373,0.707107,0.000000,0.000000,0.707107 -5374,0.707107,0.000000,0.000000,0.707107 -5375,0.707107,0.000000,0.000000,0.707107 -5376,0.707107,0.000000,0.000000,0.707107 -5377,0.707107,0.000000,0.000000,0.707107 -5378,0.707107,0.000000,0.000000,0.707107 -5379,0.707107,0.000000,0.000000,0.707107 -5380,0.707107,0.000000,0.000000,0.707107 -5381,0.707107,0.000000,0.000000,0.707107 -5382,0.707107,0.000000,0.000000,0.707107 -5383,0.707107,0.000000,0.000000,0.707107 -5384,0.707107,0.000000,0.000000,0.707107 -5385,0.707107,0.000000,0.000000,0.707107 -5386,0.707107,0.000000,0.000000,0.707107 -5387,0.707107,0.000000,0.000000,0.707107 -5388,0.707107,0.000000,0.000000,0.707107 -5389,0.707107,0.000000,0.000000,0.707107 -5390,0.707107,0.000000,0.000000,0.707107 -5391,0.707107,0.000000,0.000000,0.707107 -5392,0.707107,0.000000,0.000000,0.707107 -5393,0.707107,0.000000,0.000000,0.707107 -5394,0.707107,0.000000,0.000000,0.707107 -5395,0.707107,0.000000,0.000000,0.707107 -5396,0.707107,0.000000,0.000000,0.707107 -5397,0.707107,0.000000,0.000000,0.707107 -5398,0.707107,0.000000,0.000000,0.707107 -5399,0.707107,0.000000,0.000000,0.707107 -5400,0.707107,0.000000,0.000000,0.707107 -5401,0.707107,0.000000,0.000000,0.707107 -5402,0.707107,0.000000,0.000000,0.707107 -5403,0.707107,0.000000,0.000000,0.707107 -5404,0.707107,0.000000,0.000000,0.707107 -5405,0.707107,0.000000,0.000000,0.707107 -5406,0.707107,0.000000,0.000000,0.707107 -5407,0.707107,0.000000,0.000000,0.707107 -5408,0.707107,0.000000,0.000000,0.707107 -5409,0.707107,0.000000,0.000000,0.707107 -5410,0.707107,0.000000,0.000000,0.707107 -5411,0.707107,0.000000,0.000000,0.707107 -5412,0.707107,0.000000,0.000000,0.707107 -5413,0.707107,0.000000,0.000000,0.707107 -5414,0.707107,0.000000,0.000000,0.707107 -5415,0.707107,0.000000,0.000000,0.707107 -5416,0.707107,0.000000,0.000000,0.707107 -5417,0.707107,0.000000,0.000000,0.707107 -5418,0.707107,0.000000,0.000000,0.707107 -5419,0.707107,0.000000,0.000000,0.707107 -5420,0.707107,0.000000,0.000000,0.707107 -5421,0.707107,0.000000,0.000000,0.707107 -5422,0.707107,0.000000,0.000000,0.707107 -5423,0.707107,0.000000,0.000000,0.707107 -5424,0.707107,0.000000,0.000000,0.707107 -5425,0.707107,0.000000,0.000000,0.707107 -5426,0.707107,0.000000,0.000000,0.707107 -5427,0.707107,0.000000,0.000000,0.707107 -5428,0.707107,0.000000,0.000000,0.707107 -5429,0.707107,0.000000,0.000000,0.707107 -5430,0.707107,0.000000,0.000000,0.707107 -5431,0.707107,0.000000,0.000000,0.707107 -5432,0.707107,0.000000,0.000000,0.707107 -5433,0.707107,0.000000,0.000000,0.707107 -5434,0.707107,0.000000,0.000000,0.707107 -5435,0.707107,0.000000,0.000000,0.707107 -5436,0.707107,0.000000,0.000000,0.707107 -5437,0.707107,0.000000,0.000000,0.707107 -5438,0.707107,0.000000,0.000000,0.707107 -5439,0.707107,0.000000,0.000000,0.707107 -5440,0.707107,0.000000,0.000000,0.707107 -5441,0.707107,0.000000,0.000000,0.707107 -5442,0.707107,0.000000,0.000000,0.707107 -5443,0.707107,0.000000,0.000000,0.707107 -5444,0.707107,0.000000,0.000000,0.707107 -5445,0.707107,0.000000,0.000000,0.707107 -5446,0.707107,0.000000,0.000000,0.707107 -5447,0.707107,0.000000,0.000000,0.707107 -5448,0.707107,0.000000,0.000000,0.707107 -5449,0.707107,0.000000,0.000000,0.707107 -5450,0.707107,0.000000,0.000000,0.707107 -5451,0.707107,0.000000,0.000000,0.707107 -5452,0.707107,0.000000,0.000000,0.707107 -5453,0.707107,0.000000,0.000000,0.707107 -5454,0.707107,0.000000,0.000000,0.707107 -5455,0.707107,0.000000,0.000000,0.707107 -5456,0.707107,0.000000,0.000000,0.707107 -5457,0.707107,0.000000,0.000000,0.707107 -5458,0.707107,0.000000,0.000000,0.707107 -5459,0.707107,0.000000,0.000000,0.707107 -5460,0.707107,0.000000,0.000000,0.707107 -5461,0.707107,0.000000,0.000000,0.707107 -5462,0.707107,0.000000,0.000000,0.707107 -5463,0.707107,0.000000,0.000000,0.707107 -5464,0.707107,0.000000,0.000000,0.707107 -5465,0.707107,0.000000,0.000000,0.707107 -5466,0.707107,0.000000,0.000000,0.707107 -5467,0.707107,0.000000,0.000000,0.707107 -5468,0.707107,0.000000,0.000000,0.707107 -5469,0.707107,0.000000,0.000000,0.707107 -5470,0.707107,0.000000,0.000000,0.707107 -5471,0.707107,0.000000,0.000000,0.707107 -5472,0.707107,0.000000,0.000000,0.707107 -5473,0.707107,0.000000,0.000000,0.707107 -5474,0.707107,0.000000,0.000000,0.707107 -5475,0.707107,0.000000,0.000000,0.707107 -5476,0.707107,0.000000,0.000000,0.707107 -5477,0.707107,0.000000,0.000000,0.707107 -5478,0.707107,0.000000,0.000000,0.707107 -5479,0.707107,0.000000,0.000000,0.707107 -5480,0.707107,0.000000,0.000000,0.707107 -5481,0.707107,0.000000,0.000000,0.707107 -5482,0.707107,0.000000,0.000000,0.707107 -5483,0.707107,0.000000,0.000000,0.707107 -5484,0.707107,0.000000,0.000000,0.707107 -5485,0.707107,0.000000,0.000000,0.707107 -5486,0.707107,0.000000,0.000000,0.707107 -5487,0.707107,0.000000,0.000000,0.707107 -5488,0.707107,0.000000,0.000000,0.707107 -5489,0.707107,0.000000,0.000000,0.707107 -5490,0.707107,0.000000,0.000000,0.707107 -5491,0.707107,0.000000,0.000000,0.707107 -5492,0.707107,0.000000,0.000000,0.707107 -5493,0.707107,0.000000,0.000000,0.707107 -5494,0.707107,0.000000,0.000000,0.707107 -5495,0.707107,0.000000,0.000000,0.707107 -5496,0.707107,0.000000,0.000000,0.707107 -5497,0.707107,0.000000,0.000000,0.707107 -5498,0.707107,0.000000,0.000000,0.707107 -5499,0.707107,0.000000,0.000000,0.707107 -5500,0.707107,0.000000,0.000000,0.707107 -5501,0.707107,0.000000,0.000000,0.707107 -5502,0.707107,0.000000,0.000000,0.707107 -5503,0.707107,0.000000,0.000000,0.707107 -5504,0.707107,0.000000,0.000000,0.707107 -5505,0.707107,0.000000,0.000000,0.707107 -5506,0.707107,0.000000,0.000000,0.707107 -5507,0.707107,0.000000,0.000000,0.707107 -5508,0.707107,0.000000,0.000000,0.707107 -5509,0.707107,0.000000,0.000000,0.707107 -5510,0.707107,0.000000,0.000000,0.707107 -5511,0.707107,0.000000,0.000000,0.707107 -5512,0.707107,0.000000,0.000000,0.707107 -5513,0.707107,0.000000,0.000000,0.707107 -5514,0.707107,0.000000,0.000000,0.707107 -5515,0.707107,0.000000,0.000000,0.707107 -5516,0.707107,0.000000,0.000000,0.707107 -5517,0.707107,0.000000,0.000000,0.707107 -5518,0.707107,0.000000,0.000000,0.707107 -5519,0.707107,0.000000,0.000000,0.707107 -5520,0.707107,0.000000,0.000000,0.707107 -5521,0.707107,0.000000,0.000000,0.707107 -5522,0.707107,0.000000,0.000000,0.707107 -5523,0.707107,0.000000,0.000000,0.707107 -5524,0.707107,0.000000,0.000000,0.707107 -5525,0.707107,0.000000,0.000000,0.707107 -5526,0.707107,0.000000,0.000000,0.707107 -5527,0.707107,0.000000,0.000000,0.707107 -5528,0.707107,0.000000,0.000000,0.707107 -5529,0.707107,0.000000,0.000000,0.707107 -5530,0.707107,0.000000,0.000000,0.707107 -5531,0.707107,0.000000,0.000000,0.707107 -5532,0.707107,0.000000,0.000000,0.707107 -5533,0.707107,0.000000,0.000000,0.707107 -5534,0.707107,0.000000,0.000000,0.707107 -5535,0.707107,0.000000,0.000000,0.707107 -5536,0.707107,0.000000,0.000000,0.707107 -5537,0.707107,0.000000,0.000000,0.707107 -5538,0.707107,0.000000,0.000000,0.707107 -5539,0.707107,0.000000,0.000000,0.707107 -5540,0.707107,0.000000,0.000000,0.707107 -5541,0.707107,0.000000,0.000000,0.707107 -5542,0.707107,0.000000,0.000000,0.707107 -5543,0.707107,0.000000,0.000000,0.707107 -5544,0.707107,0.000000,0.000000,0.707107 -5545,0.707107,0.000000,0.000000,0.707107 -5546,0.707107,0.000000,0.000000,0.707107 -5547,0.707107,0.000000,0.000000,0.707107 -5548,0.707107,0.000000,0.000000,0.707107 -5549,0.707107,0.000000,0.000000,0.707107 -5550,0.707107,0.000000,0.000000,0.707107 -5551,0.707107,0.000000,0.000000,0.707107 -5552,0.707107,0.000000,0.000000,0.707107 -5553,0.707107,0.000000,0.000000,0.707107 -5554,0.707107,0.000000,0.000000,0.707107 -5555,0.707107,0.000000,0.000000,0.707107 -5556,0.707107,0.000000,0.000000,0.707107 -5557,0.707107,0.000000,0.000000,0.707107 -5558,0.707107,0.000000,0.000000,0.707107 -5559,0.707107,0.000000,0.000000,0.707107 -5560,0.707107,0.000000,0.000000,0.707107 -5561,0.707107,0.000000,0.000000,0.707107 -5562,0.707107,0.000000,0.000000,0.707107 -5563,0.707107,0.000000,0.000000,0.707107 -5564,0.707107,0.000000,0.000000,0.707107 -5565,0.707107,0.000000,0.000000,0.707107 -5566,0.707107,0.000000,0.000000,0.707107 -5567,0.707107,0.000000,0.000000,0.707107 -5568,0.707107,0.000000,0.000000,0.707107 -5569,0.707107,0.000000,0.000000,0.707107 -5570,0.707107,0.000000,0.000000,0.707107 -5571,0.707107,0.000000,0.000000,0.707107 -5572,0.707107,0.000000,0.000000,0.707107 -5573,0.707107,0.000000,0.000000,0.707107 -5574,0.707107,0.000000,0.000000,0.707107 -5575,0.707107,0.000000,0.000000,0.707107 -5576,0.707107,0.000000,0.000000,0.707107 -5577,0.707107,0.000000,0.000000,0.707107 -5578,0.707107,0.000000,0.000000,0.707107 -5579,0.707107,0.000000,0.000000,0.707107 -5580,0.707107,0.000000,0.000000,0.707107 -5581,0.707107,0.000000,0.000000,0.707107 -5582,0.707107,0.000000,0.000000,0.707107 -5583,0.707107,0.000000,0.000000,0.707107 -5584,0.707107,0.000000,0.000000,0.707107 -5585,0.707107,0.000000,0.000000,0.707107 -5586,0.707107,0.000000,0.000000,0.707107 -5587,0.707107,0.000000,0.000000,0.707107 -5588,0.707107,0.000000,0.000000,0.707107 -5589,0.707107,0.000000,0.000000,0.707107 -5590,0.707107,0.000000,0.000000,0.707107 -5591,0.707107,0.000000,0.000000,0.707107 -5592,0.707107,0.000000,0.000000,0.707107 -5593,0.707107,0.000000,0.000000,0.707107 -5594,0.707107,0.000000,0.000000,0.707107 -5595,0.707107,0.000000,0.000000,0.707107 -5596,0.707107,0.000000,0.000000,0.707107 -5597,0.707107,0.000000,0.000000,0.707107 -5598,0.707107,0.000000,0.000000,0.707107 -5599,0.707107,0.000000,0.000000,0.707107 -5600,0.707107,0.000000,0.000000,0.707107 -5601,0.707107,0.000000,0.000000,0.707107 -5602,0.707107,0.000000,0.000000,0.707107 -5603,0.707107,0.000000,0.000000,0.707107 -5604,0.707107,0.000000,0.000000,0.707107 -5605,0.707107,0.000000,0.000000,0.707107 -5606,0.707107,0.000000,0.000000,0.707107 -5607,0.707107,0.000000,0.000000,0.707107 -5608,0.707107,0.000000,0.000000,0.707107 -5609,0.707107,0.000000,0.000000,0.707107 -5610,0.707107,0.000000,0.000000,0.707107 -5611,0.707107,0.000000,0.000000,0.707107 -5612,0.707107,0.000000,0.000000,0.707107 -5613,0.707107,0.000000,0.000000,0.707107 -5614,0.707107,0.000000,0.000000,0.707107 -5615,0.707107,0.000000,0.000000,0.707107 -5616,0.707107,0.000000,0.000000,0.707107 -5617,0.707107,0.000000,0.000000,0.707107 -5618,0.707107,0.000000,0.000000,0.707107 -5619,0.707107,0.000000,0.000000,0.707107 -5620,0.707107,0.000000,0.000000,0.707107 -5621,0.707107,0.000000,0.000000,0.707107 -5622,0.707107,0.000000,0.000000,0.707107 -5623,0.707107,0.000000,0.000000,0.707107 -5624,0.707107,0.000000,0.000000,0.707107 -5625,0.707107,0.000000,0.000000,0.707107 -5626,0.707107,0.000000,0.000000,0.707107 -5627,0.707107,0.000000,0.000000,0.707107 -5628,0.707107,0.000000,0.000000,0.707107 -5629,0.707107,0.000000,0.000000,0.707107 -5630,0.707107,0.000000,0.000000,0.707107 -5631,0.707107,0.000000,0.000000,0.707107 -5632,0.707107,0.000000,0.000000,0.707107 -5633,0.707107,0.000000,0.000000,0.707107 -5634,0.707107,0.000000,0.000000,0.707107 -5635,0.707107,0.000000,0.000000,0.707107 -5636,0.707107,0.000000,0.000000,0.707107 -5637,0.707107,0.000000,0.000000,0.707107 -5638,0.707107,0.000000,0.000000,0.707107 -5639,0.707107,0.000000,0.000000,0.707107 -5640,0.707107,0.000000,0.000000,0.707107 -5641,0.707107,0.000000,0.000000,0.707107 -5642,0.707107,0.000000,0.000000,0.707107 -5643,0.707107,0.000000,0.000000,0.707107 -5644,0.707107,0.000000,0.000000,0.707107 -5645,0.707107,0.000000,0.000000,0.707107 -5646,0.707107,0.000000,0.000000,0.707107 -5647,0.707107,0.000000,0.000000,0.707107 -5648,0.707107,0.000000,0.000000,0.707107 -5649,0.707107,0.000000,0.000000,0.707107 -5650,0.707107,0.000000,0.000000,0.707107 -5651,0.707107,0.000000,0.000000,0.707107 -5652,0.707107,0.000000,0.000000,0.707107 -5653,0.707107,0.000000,0.000000,0.707107 -5654,0.707107,0.000000,0.000000,0.707107 -5655,0.707107,0.000000,0.000000,0.707107 -5656,0.707107,0.000000,0.000000,0.707107 -5657,0.707107,0.000000,0.000000,0.707107 -5658,0.707107,0.000000,0.000000,0.707107 -5659,0.707107,0.000000,0.000000,0.707107 -5660,0.707107,0.000000,0.000000,0.707107 -5661,0.707107,0.000000,0.000000,0.707107 -5662,0.707107,0.000000,0.000000,0.707107 -5663,0.707107,0.000000,0.000000,0.707107 -5664,0.707107,0.000000,0.000000,0.707107 -5665,0.707107,0.000000,0.000000,0.707107 -5666,0.707107,0.000000,0.000000,0.707107 -5667,0.707107,0.000000,0.000000,0.707107 -5668,0.707107,0.000000,0.000000,0.707107 -5669,0.707107,0.000000,0.000000,0.707107 -5670,0.707107,0.000000,0.000000,0.707107 -5671,0.707107,0.000000,0.000000,0.707107 -5672,0.707107,0.000000,0.000000,0.707107 -5673,0.707107,0.000000,0.000000,0.707107 -5674,0.707107,0.000000,0.000000,0.707107 -5675,0.707107,0.000000,0.000000,0.707107 -5676,0.707107,0.000000,0.000000,0.707107 -5677,0.707107,0.000000,0.000000,0.707107 -5678,0.707107,0.000000,0.000000,0.707107 -5679,0.707107,0.000000,0.000000,0.707107 -5680,0.707107,0.000000,0.000000,0.707107 -5681,0.707107,0.000000,0.000000,0.707107 -5682,0.707107,0.000000,0.000000,0.707107 -5683,0.707107,0.000000,0.000000,0.707107 -5684,0.707107,0.000000,0.000000,0.707107 -5685,0.707107,0.000000,0.000000,0.707107 -5686,0.707107,0.000000,0.000000,0.707107 -5687,0.707107,0.000000,0.000000,0.707107 -5688,0.707107,0.000000,0.000000,0.707107 -5689,0.707107,0.000000,0.000000,0.707107 -5690,0.707107,0.000000,0.000000,0.707107 -5691,0.707107,0.000000,0.000000,0.707107 -5692,0.707107,0.000000,0.000000,0.707107 -5693,0.707107,0.000000,0.000000,0.707107 -5694,0.707107,0.000000,0.000000,0.707107 -5695,0.707107,0.000000,0.000000,0.707107 -5696,0.707107,0.000000,0.000000,0.707107 -5697,0.707107,0.000000,0.000000,0.707107 -5698,0.707107,0.000000,0.000000,0.707107 -5699,0.707107,0.000000,0.000000,0.707107 -5700,0.707107,0.000000,0.000000,0.707107 -5701,0.707107,0.000000,0.000000,0.707107 -5702,0.707107,0.000000,0.000000,0.707107 -5703,0.707107,0.000000,0.000000,0.707107 -5704,0.707107,0.000000,0.000000,0.707107 -5705,0.707107,0.000000,0.000000,0.707107 -5706,0.707107,0.000000,0.000000,0.707107 -5707,0.707107,0.000000,0.000000,0.707107 -5708,0.707107,0.000000,0.000000,0.707107 -5709,0.707107,0.000000,0.000000,0.707107 -5710,0.707107,0.000000,0.000000,0.707107 -5711,0.707107,0.000000,0.000000,0.707107 -5712,0.707107,0.000000,0.000000,0.707107 -5713,0.707107,0.000000,0.000000,0.707107 -5714,0.707107,0.000000,0.000000,0.707107 -5715,0.707107,0.000000,0.000000,0.707107 -5716,0.707107,0.000000,0.000000,0.707107 -5717,0.707107,0.000000,0.000000,0.707107 -5718,0.707107,0.000000,0.000000,0.707107 -5719,0.707107,0.000000,0.000000,0.707107 -5720,0.707107,0.000000,0.000000,0.707107 -5721,0.707107,0.000000,0.000000,0.707107 -5722,0.707107,0.000000,0.000000,0.707107 -5723,0.707107,0.000000,0.000000,0.707107 -5724,0.707107,0.000000,0.000000,0.707107 -5725,0.707107,0.000000,0.000000,0.707107 -5726,0.707107,0.000000,0.000000,0.707107 -5727,0.707107,0.000000,0.000000,0.707107 -5728,0.707107,0.000000,0.000000,0.707107 -5729,0.707107,0.000000,0.000000,0.707107 -5730,0.707107,0.000000,0.000000,0.707107 -5731,0.707107,0.000000,0.000000,0.707107 -5732,0.707107,0.000000,0.000000,0.707107 -5733,0.707107,0.000000,0.000000,0.707107 -5734,0.707107,0.000000,0.000000,0.707107 -5735,0.707107,0.000000,0.000000,0.707107 -5736,0.707107,0.000000,0.000000,0.707107 -5737,0.707107,0.000000,0.000000,0.707107 -5738,0.707107,0.000000,0.000000,0.707107 -5739,0.707107,0.000000,0.000000,0.707107 -5740,0.707107,0.000000,0.000000,0.707107 -5741,0.707107,0.000000,0.000000,0.707107 -5742,0.707107,0.000000,0.000000,0.707107 -5743,0.707107,0.000000,0.000000,0.707107 -5744,0.707107,0.000000,0.000000,0.707107 -5745,0.707107,0.000000,0.000000,0.707107 -5746,0.707107,0.000000,0.000000,0.707107 -5747,0.707107,0.000000,0.000000,0.707107 -5748,0.707107,0.000000,0.000000,0.707107 -5749,0.707107,0.000000,0.000000,0.707107 -5750,0.707107,0.000000,0.000000,0.707107 -5751,0.707107,0.000000,0.000000,0.707107 -5752,0.707107,0.000000,0.000000,0.707107 -5753,0.707107,0.000000,0.000000,0.707107 -5754,0.707107,0.000000,0.000000,0.707107 -5755,0.707107,0.000000,0.000000,0.707107 -5756,0.707107,0.000000,0.000000,0.707107 -5757,0.707107,0.000000,0.000000,0.707107 -5758,0.707107,0.000000,0.000000,0.707107 -5759,0.707107,0.000000,0.000000,0.707107 -5760,0.707107,0.000000,0.000000,0.707107 -5761,0.707107,0.000000,0.000000,0.707107 -5762,0.707107,0.000000,0.000000,0.707107 -5763,0.707107,0.000000,0.000000,0.707107 -5764,0.707107,0.000000,0.000000,0.707107 -5765,0.707107,0.000000,0.000000,0.707107 -5766,0.707107,0.000000,0.000000,0.707107 -5767,0.707107,0.000000,0.000000,0.707107 -5768,0.707107,0.000000,0.000000,0.707107 -5769,0.707107,0.000000,0.000000,0.707107 -5770,0.707107,0.000000,0.000000,0.707107 -5771,0.707107,0.000000,0.000000,0.707107 -5772,0.707107,0.000000,0.000000,0.707107 -5773,0.707107,0.000000,0.000000,0.707107 -5774,0.707107,0.000000,0.000000,0.707107 -5775,0.707107,0.000000,0.000000,0.707107 -5776,0.707107,0.000000,0.000000,0.707107 -5777,0.707107,0.000000,0.000000,0.707107 -5778,0.707107,0.000000,0.000000,0.707107 -5779,0.707107,0.000000,0.000000,0.707107 -5780,0.707107,0.000000,0.000000,0.707107 -5781,0.707107,0.000000,0.000000,0.707107 -5782,0.707107,0.000000,0.000000,0.707107 -5783,0.707107,0.000000,0.000000,0.707107 -5784,0.707107,0.000000,0.000000,0.707107 -5785,0.707107,0.000000,0.000000,0.707107 -5786,0.707107,0.000000,0.000000,0.707107 -5787,0.707107,0.000000,0.000000,0.707107 -5788,0.707107,0.000000,0.000000,0.707107 -5789,0.707107,0.000000,0.000000,0.707107 -5790,0.707107,0.000000,0.000000,0.707107 -5791,0.707107,0.000000,0.000000,0.707107 -5792,0.707107,0.000000,0.000000,0.707107 -5793,0.707107,0.000000,0.000000,0.707107 -5794,0.707107,0.000000,0.000000,0.707107 -5795,0.707107,0.000000,0.000000,0.707107 -5796,0.707107,0.000000,0.000000,0.707107 -5797,0.707107,0.000000,0.000000,0.707107 -5798,0.707107,0.000000,0.000000,0.707107 -5799,0.707107,0.000000,0.000000,0.707107 -5800,0.707107,0.000000,0.000000,0.707107 -5801,0.707107,0.000000,0.000000,0.707107 -5802,0.707107,0.000000,0.000000,0.707107 -5803,0.707107,0.000000,0.000000,0.707107 -5804,0.707107,0.000000,0.000000,0.707107 -5805,0.707107,0.000000,0.000000,0.707107 -5806,0.707107,0.000000,0.000000,0.707107 -5807,0.707107,0.000000,0.000000,0.707107 -5808,0.707107,0.000000,0.000000,0.707107 -5809,0.707107,0.000000,0.000000,0.707107 -5810,0.707107,0.000000,0.000000,0.707107 -5811,0.707107,0.000000,0.000000,0.707107 -5812,0.707107,0.000000,0.000000,0.707107 -5813,0.707107,0.000000,0.000000,0.707107 -5814,0.707107,0.000000,0.000000,0.707107 -5815,0.707107,0.000000,0.000000,0.707107 -5816,0.707107,0.000000,0.000000,0.707107 -5817,0.707107,0.000000,0.000000,0.707107 -5818,0.707107,0.000000,0.000000,0.707107 -5819,0.707107,0.000000,0.000000,0.707107 -5820,0.707107,0.000000,0.000000,0.707107 -5821,0.707107,0.000000,0.000000,0.707107 -5822,0.707107,0.000000,0.000000,0.707107 -5823,0.707107,0.000000,0.000000,0.707107 -5824,0.707107,0.000000,0.000000,0.707107 -5825,0.707107,0.000000,0.000000,0.707107 -5826,0.707107,0.000000,0.000000,0.707107 -5827,0.707107,0.000000,0.000000,0.707107 -5828,0.707107,0.000000,0.000000,0.707107 -5829,0.707107,0.000000,0.000000,0.707107 -5830,0.707107,0.000000,0.000000,0.707107 -5831,0.707107,0.000000,0.000000,0.707107 -5832,0.707107,0.000000,0.000000,0.707107 -5833,0.707107,0.000000,0.000000,0.707107 -5834,0.707107,0.000000,0.000000,0.707107 -5835,0.707107,0.000000,0.000000,0.707107 -5836,0.707107,0.000000,0.000000,0.707107 -5837,0.707107,0.000000,0.000000,0.707107 -5838,0.707107,0.000000,0.000000,0.707107 -5839,0.707107,0.000000,0.000000,0.707107 -5840,0.707107,0.000000,0.000000,0.707107 -5841,0.707107,0.000000,0.000000,0.707107 -5842,0.707107,0.000000,0.000000,0.707107 -5843,0.707107,0.000000,0.000000,0.707107 -5844,0.707107,0.000000,0.000000,0.707107 -5845,0.707107,0.000000,0.000000,0.707107 -5846,0.707107,0.000000,0.000000,0.707107 -5847,0.707107,0.000000,0.000000,0.707107 -5848,0.707107,0.000000,0.000000,0.707107 -5849,0.707107,0.000000,0.000000,0.707107 -5850,0.707107,0.000000,0.000000,0.707107 -5851,0.707107,0.000000,0.000000,0.707107 -5852,0.707107,0.000000,0.000000,0.707107 -5853,0.707107,0.000000,0.000000,0.707107 -5854,0.707107,0.000000,0.000000,0.707107 -5855,0.707107,0.000000,0.000000,0.707107 -5856,0.707107,0.000000,0.000000,0.707107 -5857,0.707107,0.000000,0.000000,0.707107 -5858,0.707107,0.000000,0.000000,0.707107 -5859,0.707107,0.000000,0.000000,0.707107 -5860,0.707107,0.000000,0.000000,0.707107 -5861,0.707107,0.000000,0.000000,0.707107 -5862,0.707107,0.000000,0.000000,0.707107 -5863,0.707107,0.000000,0.000000,0.707107 -5864,0.707107,0.000000,0.000000,0.707107 -5865,0.707107,0.000000,0.000000,0.707107 -5866,0.707107,0.000000,0.000000,0.707107 -5867,0.707107,0.000000,0.000000,0.707107 -5868,0.707107,0.000000,0.000000,0.707107 -5869,0.707107,0.000000,0.000000,0.707107 -5870,0.707107,0.000000,0.000000,0.707107 -5871,0.707107,0.000000,0.000000,0.707107 -5872,0.707107,0.000000,0.000000,0.707107 -5873,0.707107,0.000000,0.000000,0.707107 -5874,0.707107,0.000000,0.000000,0.707107 -5875,0.707107,0.000000,0.000000,0.707107 -5876,0.707107,0.000000,0.000000,0.707107 -5877,0.707107,0.000000,0.000000,0.707107 -5878,0.707107,0.000000,0.000000,0.707107 -5879,0.707107,0.000000,0.000000,0.707107 -5880,0.707107,0.000000,0.000000,0.707107 -5881,0.707107,0.000000,0.000000,0.707107 -5882,0.707107,0.000000,0.000000,0.707107 -5883,0.707107,0.000000,0.000000,0.707107 -5884,0.707107,0.000000,0.000000,0.707107 -5885,0.707107,0.000000,0.000000,0.707107 -5886,0.707107,0.000000,0.000000,0.707107 -5887,0.707107,0.000000,0.000000,0.707107 -5888,0.707107,0.000000,0.000000,0.707107 -5889,0.707107,0.000000,0.000000,0.707107 -5890,0.707107,0.000000,0.000000,0.707107 -5891,0.707107,0.000000,0.000000,0.707107 -5892,0.707107,0.000000,0.000000,0.707107 -5893,0.707107,0.000000,0.000000,0.707107 -5894,0.707107,0.000000,0.000000,0.707107 -5895,0.707107,0.000000,0.000000,0.707107 -5896,0.707107,0.000000,0.000000,0.707107 -5897,0.707107,0.000000,0.000000,0.707107 -5898,0.707107,0.000000,0.000000,0.707107 -5899,0.707107,0.000000,0.000000,0.707107 -5900,0.707107,0.000000,0.000000,0.707107 -5901,0.707107,0.000000,0.000000,0.707107 -5902,0.707107,0.000000,0.000000,0.707107 -5903,0.707107,0.000000,0.000000,0.707107 -5904,0.707107,0.000000,0.000000,0.707107 -5905,0.707107,0.000000,0.000000,0.707107 -5906,0.707107,0.000000,0.000000,0.707107 -5907,0.707107,0.000000,0.000000,0.707107 -5908,0.707107,0.000000,0.000000,0.707107 -5909,0.707107,0.000000,0.000000,0.707107 -5910,0.707107,0.000000,0.000000,0.707107 -5911,0.707107,0.000000,0.000000,0.707107 -5912,0.707107,0.000000,0.000000,0.707107 -5913,0.707107,0.000000,0.000000,0.707107 -5914,0.707107,0.000000,0.000000,0.707107 -5915,0.707107,0.000000,0.000000,0.707107 -5916,0.707107,0.000000,0.000000,0.707107 -5917,0.707107,0.000000,0.000000,0.707107 -5918,0.707107,0.000000,0.000000,0.707107 -5919,0.707107,0.000000,0.000000,0.707107 -5920,0.707107,0.000000,0.000000,0.707107 -5921,0.707107,0.000000,0.000000,0.707107 -5922,0.707107,0.000000,0.000000,0.707107 -5923,0.707107,0.000000,0.000000,0.707107 -5924,0.707107,0.000000,0.000000,0.707107 -5925,0.707107,0.000000,0.000000,0.707107 -5926,0.707107,0.000000,0.000000,0.707107 -5927,0.707107,0.000000,0.000000,0.707107 -5928,0.707107,0.000000,0.000000,0.707107 -5929,0.707107,0.000000,0.000000,0.707107 -5930,0.707107,0.000000,0.000000,0.707107 -5931,0.707107,0.000000,0.000000,0.707107 -5932,0.707107,0.000000,0.000000,0.707107 -5933,0.707107,0.000000,0.000000,0.707107 -5934,0.707107,0.000000,0.000000,0.707107 -5935,0.707107,0.000000,0.000000,0.707107 -5936,0.707107,0.000000,0.000000,0.707107 -5937,0.707107,0.000000,0.000000,0.707107 -5938,0.707107,0.000000,0.000000,0.707107 -5939,0.707107,0.000000,0.000000,0.707107 -5940,0.707107,0.000000,0.000000,0.707107 -5941,0.707107,0.000000,0.000000,0.707107 -5942,0.707107,0.000000,0.000000,0.707107 -5943,0.707107,0.000000,0.000000,0.707107 -5944,0.707107,0.000000,0.000000,0.707107 -5945,0.707107,0.000000,0.000000,0.707107 -5946,0.707107,0.000000,0.000000,0.707107 -5947,0.707107,0.000000,0.000000,0.707107 -5948,0.707107,0.000000,0.000000,0.707107 -5949,0.707107,0.000000,0.000000,0.707107 -5950,0.707107,0.000000,0.000000,0.707107 -5951,0.707107,0.000000,0.000000,0.707107 -5952,0.707107,0.000000,0.000000,0.707107 -5953,0.707107,0.000000,0.000000,0.707107 -5954,0.707107,0.000000,0.000000,0.707107 -5955,0.707107,0.000000,0.000000,0.707107 -5956,0.707107,0.000000,0.000000,0.707107 -5957,0.707107,0.000000,0.000000,0.707107 -5958,0.707107,0.000000,0.000000,0.707107 -5959,0.707107,0.000000,0.000000,0.707107 -5960,0.707107,0.000000,0.000000,0.707107 -5961,0.707107,0.000000,0.000000,0.707107 -5962,0.707107,0.000000,0.000000,0.707107 -5963,0.707107,0.000000,0.000000,0.707107 -5964,0.707107,0.000000,0.000000,0.707107 -5965,0.707107,0.000000,0.000000,0.707107 -5966,0.707107,0.000000,0.000000,0.707107 -5967,0.707107,0.000000,0.000000,0.707107 -5968,0.707107,0.000000,0.000000,0.707107 -5969,0.707107,0.000000,0.000000,0.707107 -5970,0.707107,0.000000,0.000000,0.707107 -5971,0.707107,0.000000,0.000000,0.707107 -5972,0.707107,0.000000,0.000000,0.707107 -5973,0.707107,0.000000,0.000000,0.707107 -5974,0.707107,0.000000,0.000000,0.707107 -5975,0.707107,0.000000,0.000000,0.707107 -5976,0.707107,0.000000,0.000000,0.707107 -5977,0.707107,0.000000,0.000000,0.707107 -5978,0.707107,0.000000,0.000000,0.707107 -5979,0.707107,0.000000,0.000000,0.707107 -5980,0.707107,0.000000,0.000000,0.707107 -5981,0.707107,0.000000,0.000000,0.707107 -5982,0.707107,0.000000,0.000000,0.707107 -5983,0.707107,0.000000,0.000000,0.707107 -5984,0.707107,0.000000,0.000000,0.707107 -5985,0.707107,0.000000,0.000000,0.707107 -5986,0.707107,0.000000,0.000000,0.707107 -5987,0.707107,0.000000,0.000000,0.707107 -5988,0.707107,0.000000,0.000000,0.707107 -5989,0.707107,0.000000,0.000000,0.707107 -5990,0.707107,0.000000,0.000000,0.707107 -5991,0.707107,0.000000,0.000000,0.707107 -5992,0.707107,0.000000,0.000000,0.707107 -5993,0.707107,0.000000,0.000000,0.707107 -5994,0.707107,0.000000,0.000000,0.707107 -5995,0.707107,0.000000,0.000000,0.707107 -5996,0.707107,0.000000,0.000000,0.707107 -5997,0.707107,0.000000,0.000000,0.707107 -5998,0.707107,0.000000,0.000000,0.707107 -5999,0.707107,0.000000,0.000000,0.707107 -6000,0.707107,0.000000,0.000000,0.707107 -6001,0.707107,0.000000,0.000000,0.707107 -6002,0.707107,0.000000,0.000000,0.707107 -6003,0.707107,0.000000,0.000000,0.707107 -6004,0.707107,0.000000,0.000000,0.707107 -6005,0.707107,0.000000,0.000000,0.707107 -6006,0.707107,0.000000,0.000000,0.707107 -6007,0.707107,0.000000,0.000000,0.707107 -6008,0.707107,0.000000,0.000000,0.707107 -6009,0.707107,0.000000,0.000000,0.707107 -6010,0.707107,0.000000,0.000000,0.707107 -6011,0.707107,0.000000,0.000000,0.707107 -6012,0.707107,0.000000,0.000000,0.707107 -6013,0.707107,0.000000,0.000000,0.707107 -6014,0.707107,0.000000,0.000000,0.707107 -6015,0.707107,0.000000,0.000000,0.707107 -6016,0.707107,0.000000,0.000000,0.707107 -6017,0.707107,0.000000,0.000000,0.707107 -6018,0.707107,0.000000,0.000000,0.707107 -6019,0.707107,0.000000,0.000000,0.707107 -6020,0.707107,0.000000,0.000000,0.707107 -6021,0.707107,0.000000,0.000000,0.707107 -6022,0.707107,0.000000,0.000000,0.707107 -6023,0.707107,0.000000,0.000000,0.707107 -6024,0.707107,0.000000,0.000000,0.707107 -6025,0.707107,0.000000,0.000000,0.707107 -6026,0.707107,0.000000,0.000000,0.707107 -6027,0.707107,0.000000,0.000000,0.707107 -6028,0.707107,0.000000,0.000000,0.707107 -6029,0.707107,0.000000,0.000000,0.707107 -6030,0.707107,0.000000,0.000000,0.707107 -6031,0.707107,0.000000,0.000000,0.707107 -6032,0.707107,0.000000,0.000000,0.707107 -6033,0.707107,0.000000,0.000000,0.707107 -6034,0.707107,0.000000,0.000000,0.707107 -6035,0.707107,0.000000,0.000000,0.707107 -6036,0.707107,0.000000,0.000000,0.707107 -6037,0.707107,0.000000,0.000000,0.707107 -6038,0.707107,0.000000,0.000000,0.707107 -6039,0.707107,0.000000,0.000000,0.707107 -6040,0.707107,0.000000,0.000000,0.707107 -6041,0.707107,0.000000,0.000000,0.707107 -6042,0.707107,0.000000,0.000000,0.707107 -6043,0.707107,0.000000,0.000000,0.707107 -6044,0.707107,0.000000,0.000000,0.707107 -6045,0.707107,0.000000,0.000000,0.707107 -6046,0.707107,0.000000,0.000000,0.707107 -6047,0.707107,0.000000,0.000000,0.707107 -6048,0.707107,0.000000,0.000000,0.707107 -6049,0.707107,0.000000,0.000000,0.707107 -6050,0.707107,0.000000,0.000000,0.707107 -6051,0.707107,0.000000,0.000000,0.707107 -6052,0.707107,0.000000,0.000000,0.707107 -6053,0.707107,0.000000,0.000000,0.707107 -6054,0.707107,0.000000,0.000000,0.707107 -6055,0.707107,0.000000,0.000000,0.707107 -6056,0.707107,0.000000,0.000000,0.707107 -6057,0.707107,0.000000,0.000000,0.707107 -6058,0.707107,0.000000,0.000000,0.707107 -6059,0.707107,0.000000,0.000000,0.707107 -6060,0.707107,0.000000,0.000000,0.707107 -6061,0.707107,0.000000,0.000000,0.707107 -6062,0.707107,0.000000,0.000000,0.707107 -6063,0.707107,0.000000,0.000000,0.707107 -6064,0.707107,0.000000,0.000000,0.707107 -6065,0.707107,0.000000,0.000000,0.707107 -6066,0.707107,0.000000,0.000000,0.707107 -6067,0.707107,0.000000,0.000000,0.707107 -6068,0.707107,0.000000,0.000000,0.707107 -6069,0.707107,0.000000,0.000000,0.707107 -6070,0.707107,0.000000,0.000000,0.707107 -6071,0.707107,0.000000,0.000000,0.707107 -6072,0.707107,0.000000,0.000000,0.707107 -6073,0.707107,0.000000,0.000000,0.707107 -6074,0.707107,0.000000,0.000000,0.707107 -6075,0.707107,0.000000,0.000000,0.707107 -6076,0.707107,0.000000,0.000000,0.707107 -6077,0.707107,0.000000,0.000000,0.707107 -6078,0.707107,0.000000,0.000000,0.707107 -6079,0.707107,0.000000,0.000000,0.707107 -6080,0.707107,0.000000,0.000000,0.707107 -6081,0.707107,0.000000,0.000000,0.707107 -6082,0.707107,0.000000,0.000000,0.707107 -6083,0.707107,0.000000,0.000000,0.707107 -6084,0.707107,0.000000,0.000000,0.707107 -6085,0.707107,0.000000,0.000000,0.707107 -6086,0.707107,0.000000,0.000000,0.707107 -6087,0.707107,0.000000,0.000000,0.707107 -6088,0.707107,0.000000,0.000000,0.707107 -6089,0.707107,0.000000,0.000000,0.707107 -6090,0.707107,0.000000,0.000000,0.707107 -6091,0.707107,0.000000,0.000000,0.707107 -6092,0.707107,0.000000,0.000000,0.707107 -6093,0.707107,0.000000,0.000000,0.707107 -6094,0.707107,0.000000,0.000000,0.707107 -6095,0.707107,0.000000,0.000000,0.707107 -6096,0.707107,0.000000,0.000000,0.707107 -6097,0.707107,0.000000,0.000000,0.707107 -6098,0.707107,0.000000,0.000000,0.707107 -6099,0.707107,0.000000,0.000000,0.707107 -6100,0.707107,0.000000,0.000000,0.707107 -6101,0.707107,0.000000,0.000000,0.707107 -6102,0.707107,0.000000,0.000000,0.707107 -6103,0.707107,0.000000,0.000000,0.707107 -6104,0.707107,0.000000,0.000000,0.707107 -6105,0.707107,0.000000,0.000000,0.707107 -6106,0.707107,0.000000,0.000000,0.707107 -6107,0.707107,0.000000,0.000000,0.707107 -6108,0.707107,0.000000,0.000000,0.707107 -6109,0.707107,0.000000,0.000000,0.707107 -6110,0.707107,0.000000,0.000000,0.707107 -6111,0.707107,0.000000,0.000000,0.707107 -6112,0.707107,0.000000,0.000000,0.707107 -6113,0.707107,0.000000,0.000000,0.707107 -6114,0.707107,0.000000,0.000000,0.707107 -6115,0.707107,0.000000,0.000000,0.707107 -6116,0.707107,0.000000,0.000000,0.707107 -6117,0.707107,0.000000,0.000000,0.707107 -6118,0.707107,0.000000,0.000000,0.707107 -6119,0.707107,0.000000,0.000000,0.707107 -6120,0.707107,0.000000,0.000000,0.707107 -6121,0.707107,0.000000,0.000000,0.707107 -6122,0.707107,0.000000,0.000000,0.707107 -6123,0.707107,0.000000,0.000000,0.707107 -6124,0.707107,0.000000,0.000000,0.707107 -6125,0.707107,0.000000,0.000000,0.707107 -6126,0.707107,0.000000,0.000000,0.707107 -6127,0.707107,0.000000,0.000000,0.707107 -6128,0.707107,0.000000,0.000000,0.707107 -6129,0.707107,0.000000,0.000000,0.707107 -6130,0.707107,0.000000,0.000000,0.707107 -6131,0.707107,0.000000,0.000000,0.707107 -6132,0.707107,0.000000,0.000000,0.707107 -6133,0.707107,0.000000,0.000000,0.707107 -6134,0.707107,0.000000,0.000000,0.707107 -6135,0.707107,0.000000,0.000000,0.707107 -6136,0.707107,0.000000,0.000000,0.707107 -6137,0.707107,0.000000,0.000000,0.707107 -6138,0.707107,0.000000,0.000000,0.707107 -6139,0.707107,0.000000,0.000000,0.707107 -6140,0.707107,0.000000,0.000000,0.707107 -6141,0.707107,0.000000,0.000000,0.707107 -6142,0.707107,0.000000,0.000000,0.707107 -6143,0.707107,0.000000,0.000000,0.707107 -6144,0.707107,0.000000,0.000000,0.707107 -6145,0.707107,0.000000,0.000000,0.707107 -6146,0.707107,0.000000,0.000000,0.707107 -6147,0.707107,0.000000,0.000000,0.707107 -6148,0.707107,0.000000,0.000000,0.707107 -6149,0.707107,0.000000,0.000000,0.707107 -6150,0.707107,0.000000,0.000000,0.707107 -6151,0.707107,0.000000,0.000000,0.707107 -6152,0.707107,0.000000,0.000000,0.707107 -6153,0.707107,0.000000,0.000000,0.707107 -6154,0.707107,0.000000,0.000000,0.707107 -6155,0.707107,0.000000,0.000000,0.707107 -6156,0.707107,0.000000,0.000000,0.707107 -6157,0.707107,0.000000,0.000000,0.707107 -6158,0.707107,0.000000,0.000000,0.707107 -6159,0.707107,0.000000,0.000000,0.707107 -6160,0.707107,0.000000,0.000000,0.707107 -6161,0.707107,0.000000,0.000000,0.707107 -6162,0.707107,0.000000,0.000000,0.707107 -6163,0.707107,0.000000,0.000000,0.707107 -6164,0.707107,0.000000,0.000000,0.707107 -6165,0.707107,0.000000,0.000000,0.707107 -6166,0.707107,0.000000,0.000000,0.707107 -6167,0.707107,0.000000,0.000000,0.707107 -6168,0.707107,0.000000,0.000000,0.707107 -6169,0.707107,0.000000,0.000000,0.707107 -6170,0.707107,0.000000,0.000000,0.707107 -6171,0.707107,0.000000,0.000000,0.707107 -6172,0.707107,0.000000,0.000000,0.707107 -6173,0.707107,0.000000,0.000000,0.707107 -6174,0.707107,0.000000,0.000000,0.707107 -6175,0.707107,0.000000,0.000000,0.707107 -6176,0.707107,0.000000,0.000000,0.707107 -6177,0.707107,0.000000,0.000000,0.707107 -6178,0.707107,0.000000,0.000000,0.707107 -6179,0.707107,0.000000,0.000000,0.707107 -6180,0.707107,0.000000,0.000000,0.707107 -6181,0.707107,0.000000,0.000000,0.707107 -6182,0.707107,0.000000,0.000000,0.707107 -6183,0.707107,0.000000,0.000000,0.707107 -6184,0.707107,0.000000,0.000000,0.707107 -6185,0.707107,0.000000,0.000000,0.707107 -6186,0.707107,0.000000,0.000000,0.707107 -6187,0.707107,0.000000,0.000000,0.707107 -6188,0.707107,0.000000,0.000000,0.707107 -6189,0.707107,0.000000,0.000000,0.707107 -6190,0.707107,0.000000,0.000000,0.707107 -6191,0.707107,0.000000,0.000000,0.707107 -6192,0.707107,0.000000,0.000000,0.707107 -6193,0.707107,0.000000,0.000000,0.707107 -6194,0.707107,0.000000,0.000000,0.707107 -6195,0.707107,0.000000,0.000000,0.707107 -6196,0.707107,0.000000,0.000000,0.707107 -6197,0.707107,0.000000,0.000000,0.707107 -6198,0.707107,0.000000,0.000000,0.707107 -6199,0.707107,0.000000,0.000000,0.707107 -6200,0.707107,0.000000,0.000000,0.707107 -6201,0.707107,0.000000,0.000000,0.707107 -6202,0.707107,0.000000,0.000000,0.707107 -6203,0.707107,0.000000,0.000000,0.707107 -6204,0.707107,0.000000,0.000000,0.707107 -6205,0.707107,0.000000,0.000000,0.707107 -6206,0.707107,0.000000,0.000000,0.707107 -6207,0.707107,0.000000,0.000000,0.707107 -6208,0.707107,0.000000,0.000000,0.707107 -6209,0.707107,0.000000,0.000000,0.707107 -6210,0.707107,0.000000,0.000000,0.707107 -6211,0.707107,0.000000,0.000000,0.707107 -6212,0.707107,0.000000,0.000000,0.707107 -6213,0.707107,0.000000,0.000000,0.707107 -6214,0.707107,0.000000,0.000000,0.707107 -6215,0.707107,0.000000,0.000000,0.707107 -6216,0.707107,0.000000,0.000000,0.707107 -6217,0.707107,0.000000,0.000000,0.707107 -6218,0.707107,0.000000,0.000000,0.707107 -6219,0.707107,0.000000,0.000000,0.707107 -6220,0.707107,0.000000,0.000000,0.707107 -6221,0.707107,0.000000,0.000000,0.707107 -6222,0.707107,0.000000,0.000000,0.707107 -6223,0.707107,0.000000,0.000000,0.707107 -6224,0.707107,0.000000,0.000000,0.707107 -6225,0.707107,0.000000,0.000000,0.707107 -6226,0.707107,0.000000,0.000000,0.707107 -6227,0.707107,0.000000,0.000000,0.707107 -6228,0.707107,0.000000,0.000000,0.707107 -6229,0.707107,0.000000,0.000000,0.707107 -6230,0.707107,0.000000,0.000000,0.707107 -6231,0.707107,0.000000,0.000000,0.707107 -6232,0.707107,0.000000,0.000000,0.707107 -6233,0.707107,0.000000,0.000000,0.707107 -6234,0.707107,0.000000,0.000000,0.707107 -6235,0.707107,0.000000,0.000000,0.707107 -6236,0.707107,0.000000,0.000000,0.707107 -6237,0.707107,0.000000,0.000000,0.707107 -6238,0.707107,0.000000,0.000000,0.707107 -6239,0.707107,0.000000,0.000000,0.707107 -6240,0.707107,0.000000,0.000000,0.707107 -6241,0.707107,0.000000,0.000000,0.707107 -6242,0.707107,0.000000,0.000000,0.707107 -6243,0.707107,0.000000,0.000000,0.707107 -6244,0.707107,0.000000,0.000000,0.707107 -6245,0.707107,0.000000,0.000000,0.707107 -6246,0.707107,0.000000,0.000000,0.707107 -6247,0.707107,0.000000,0.000000,0.707107 -6248,0.707107,0.000000,0.000000,0.707107 -6249,0.707107,0.000000,0.000000,0.707107 -6250,0.707107,0.000000,0.000000,0.707107 -6251,0.707107,0.000000,0.000000,0.707107 -6252,0.707107,0.000000,0.000000,0.707107 -6253,0.707107,0.000000,0.000000,0.707107 -6254,0.707107,0.000000,0.000000,0.707107 -6255,0.707107,0.000000,0.000000,0.707107 -6256,0.707107,0.000000,0.000000,0.707107 -6257,0.707107,0.000000,0.000000,0.707107 -6258,0.707107,0.000000,0.000000,0.707107 -6259,0.707107,0.000000,0.000000,0.707107 -6260,0.707107,0.000000,0.000000,0.707107 -6261,0.707107,0.000000,0.000000,0.707107 -6262,0.707107,0.000000,0.000000,0.707107 -6263,0.707107,0.000000,0.000000,0.707107 -6264,0.707107,0.000000,0.000000,0.707107 -6265,0.707107,0.000000,0.000000,0.707107 -6266,0.707107,0.000000,0.000000,0.707107 -6267,0.707107,0.000000,0.000000,0.707107 -6268,0.707107,0.000000,0.000000,0.707107 -6269,0.707107,0.000000,0.000000,0.707107 -6270,0.707107,0.000000,0.000000,0.707107 -6271,0.707107,0.000000,0.000000,0.707107 -6272,0.707107,0.000000,0.000000,0.707107 -6273,0.707107,0.000000,0.000000,0.707107 -6274,0.707107,0.000000,0.000000,0.707107 -6275,0.707107,0.000000,0.000000,0.707107 -6276,0.707107,0.000000,0.000000,0.707107 -6277,0.707107,0.000000,0.000000,0.707107 -6278,0.707107,0.000000,0.000000,0.707107 -6279,0.707107,0.000000,0.000000,0.707107 -6280,0.707107,0.000000,0.000000,0.707107 -6281,0.707107,0.000000,0.000000,0.707107 -6282,0.707107,0.000000,0.000000,0.707107 -6283,0.707107,0.000000,0.000000,0.707107 -6284,0.707107,0.000000,0.000000,0.707107 -6285,0.707107,0.000000,0.000000,0.707107 -6286,0.707107,0.000000,0.000000,0.707107 -6287,0.707107,0.000000,0.000000,0.707107 -6288,0.707107,0.000000,0.000000,0.707107 -6289,0.707107,0.000000,0.000000,0.707107 -6290,0.707107,0.000000,0.000000,0.707107 -6291,0.707107,0.000000,0.000000,0.707107 -6292,0.707107,0.000000,0.000000,0.707107 -6293,0.707107,0.000000,0.000000,0.707107 -6294,0.707107,0.000000,0.000000,0.707107 -6295,0.707107,0.000000,0.000000,0.707107 -6296,0.707107,0.000000,0.000000,0.707107 -6297,0.707107,0.000000,0.000000,0.707107 -6298,0.707107,0.000000,0.000000,0.707107 -6299,0.707107,0.000000,0.000000,0.707107 -6300,0.707107,0.000000,0.000000,0.707107 -6301,0.707107,0.000000,0.000000,0.707107 -6302,0.707107,0.000000,0.000000,0.707107 -6303,0.707107,0.000000,0.000000,0.707107 -6304,0.707107,0.000000,0.000000,0.707107 -6305,0.707107,0.000000,0.000000,0.707107 -6306,0.707107,0.000000,0.000000,0.707107 -6307,0.707107,0.000000,0.000000,0.707107 -6308,0.707107,0.000000,0.000000,0.707107 -6309,0.707107,0.000000,0.000000,0.707107 -6310,0.707107,0.000000,0.000000,0.707107 -6311,0.707107,0.000000,0.000000,0.707107 -6312,0.707107,0.000000,0.000000,0.707107 -6313,0.707107,0.000000,0.000000,0.707107 -6314,0.707107,0.000000,0.000000,0.707107 -6315,0.707107,0.000000,0.000000,0.707107 -6316,0.707107,0.000000,0.000000,0.707107 -6317,0.707107,0.000000,0.000000,0.707107 -6318,0.707107,0.000000,0.000000,0.707107 -6319,0.707107,0.000000,0.000000,0.707107 -6320,0.707107,0.000000,0.000000,0.707107 -6321,0.707107,0.000000,0.000000,0.707107 -6322,0.707107,0.000000,0.000000,0.707107 -6323,0.707107,0.000000,0.000000,0.707107 -6324,0.707107,0.000000,0.000000,0.707107 -6325,0.707107,0.000000,0.000000,0.707107 -6326,0.707107,0.000000,0.000000,0.707107 -6327,0.707107,0.000000,0.000000,0.707107 -6328,0.707107,0.000000,0.000000,0.707107 -6329,0.707107,0.000000,0.000000,0.707107 -6330,0.707107,0.000000,0.000000,0.707107 -6331,0.707107,0.000000,0.000000,0.707107 -6332,0.707107,0.000000,0.000000,0.707107 -6333,0.707107,0.000000,0.000000,0.707107 -6334,0.707107,0.000000,0.000000,0.707107 -6335,0.707107,0.000000,0.000000,0.707107 -6336,0.707107,0.000000,0.000000,0.707107 -6337,0.707107,0.000000,0.000000,0.707107 -6338,0.707107,0.000000,0.000000,0.707107 -6339,0.707107,0.000000,0.000000,0.707107 -6340,0.707107,0.000000,0.000000,0.707107 -6341,0.707107,0.000000,0.000000,0.707107 -6342,0.707107,0.000000,0.000000,0.707107 -6343,0.707107,0.000000,0.000000,0.707107 -6344,0.707107,0.000000,0.000000,0.707107 -6345,0.707107,0.000000,0.000000,0.707107 -6346,0.707107,0.000000,0.000000,0.707107 -6347,0.707107,0.000000,0.000000,0.707107 -6348,0.707107,0.000000,0.000000,0.707107 -6349,0.707107,0.000000,0.000000,0.707107 -6350,0.707107,0.000000,0.000000,0.707107 -6351,0.707107,0.000000,0.000000,0.707107 -6352,0.707107,0.000000,0.000000,0.707107 -6353,0.707107,0.000000,0.000000,0.707107 -6354,0.707107,0.000000,0.000000,0.707107 -6355,0.707107,0.000000,0.000000,0.707107 -6356,0.707107,0.000000,0.000000,0.707107 -6357,0.707107,0.000000,0.000000,0.707107 -6358,0.707107,0.000000,0.000000,0.707107 -6359,0.707107,0.000000,0.000000,0.707107 -6360,0.707107,0.000000,0.000000,0.707107 -6361,0.707107,0.000000,0.000000,0.707107 -6362,0.707107,0.000000,0.000000,0.707107 -6363,0.707107,0.000000,0.000000,0.707107 -6364,0.707107,0.000000,0.000000,0.707107 -6365,0.707107,0.000000,0.000000,0.707107 -6366,0.707107,0.000000,0.000000,0.707107 -6367,0.707107,0.000000,0.000000,0.707107 -6368,0.707107,0.000000,0.000000,0.707107 -6369,0.707107,0.000000,0.000000,0.707107 -6370,0.707107,0.000000,0.000000,0.707107 -6371,0.707107,0.000000,0.000000,0.707107 -6372,0.707107,0.000000,0.000000,0.707107 -6373,0.707107,0.000000,0.000000,0.707107 -6374,0.707107,0.000000,0.000000,0.707107 -6375,0.707107,0.000000,0.000000,0.707107 -6376,0.707107,0.000000,0.000000,0.707107 -6377,0.707107,0.000000,0.000000,0.707107 -6378,0.707107,0.000000,0.000000,0.707107 -6379,0.707107,0.000000,0.000000,0.707107 -6380,0.707107,0.000000,0.000000,0.707107 -6381,0.707107,0.000000,0.000000,0.707107 -6382,0.707107,0.000000,0.000000,0.707107 -6383,0.707107,0.000000,0.000000,0.707107 -6384,0.707107,0.000000,0.000000,0.707107 -6385,0.707107,0.000000,0.000000,0.707107 -6386,0.707107,0.000000,0.000000,0.707107 -6387,0.707107,0.000000,0.000000,0.707107 -6388,0.707107,0.000000,0.000000,0.707107 -6389,0.707107,0.000000,0.000000,0.707107 -6390,0.707107,0.000000,0.000000,0.707107 -6391,0.707107,0.000000,0.000000,0.707107 -6392,0.707107,0.000000,0.000000,0.707107 -6393,0.707107,0.000000,0.000000,0.707107 -6394,0.707107,0.000000,0.000000,0.707107 -6395,0.707107,0.000000,0.000000,0.707107 -6396,0.707107,0.000000,0.000000,0.707107 -6397,0.707107,0.000000,0.000000,0.707107 -6398,0.707107,0.000000,0.000000,0.707107 -6399,0.707107,0.000000,0.000000,0.707107 -6400,0.707107,0.000000,0.000000,0.707107 -6401,0.707107,0.000000,0.000000,0.707107 -6402,0.707107,0.000000,0.000000,0.707107 -6403,0.707107,0.000000,0.000000,0.707107 -6404,0.707107,0.000000,0.000000,0.707107 -6405,0.707107,0.000000,0.000000,0.707107 -6406,0.707107,0.000000,0.000000,0.707107 -6407,0.707107,0.000000,0.000000,0.707107 -6408,0.707107,0.000000,0.000000,0.707107 -6409,0.707107,0.000000,0.000000,0.707107 -6410,0.707107,0.000000,0.000000,0.707107 -6411,0.707107,0.000000,0.000000,0.707107 -6412,0.707107,0.000000,0.000000,0.707107 -6413,0.707107,0.000000,0.000000,0.707107 -6414,0.707107,0.000000,0.000000,0.707107 -6415,0.707107,0.000000,0.000000,0.707107 -6416,0.707107,0.000000,0.000000,0.707107 -6417,0.707107,0.000000,0.000000,0.707107 -6418,0.707107,0.000000,0.000000,0.707107 -6419,0.707107,0.000000,0.000000,0.707107 -6420,0.707107,0.000000,0.000000,0.707107 -6421,0.707107,0.000000,0.000000,0.707107 -6422,0.707107,0.000000,0.000000,0.707107 -6423,0.707107,0.000000,0.000000,0.707107 -6424,0.707107,0.000000,0.000000,0.707107 -6425,0.707107,0.000000,0.000000,0.707107 -6426,0.707107,0.000000,0.000000,0.707107 -6427,0.707107,0.000000,0.000000,0.707107 -6428,0.707107,0.000000,0.000000,0.707107 -6429,0.707107,0.000000,0.000000,0.707107 -6430,0.707107,0.000000,0.000000,0.707107 -6431,0.707107,0.000000,0.000000,0.707107 -6432,0.707107,0.000000,0.000000,0.707107 -6433,0.707107,0.000000,0.000000,0.707107 -6434,0.707107,0.000000,0.000000,0.707107 -6435,0.707107,0.000000,0.000000,0.707107 -6436,0.707107,0.000000,0.000000,0.707107 -6437,0.707107,0.000000,0.000000,0.707107 -6438,0.707107,0.000000,0.000000,0.707107 -6439,0.707107,0.000000,0.000000,0.707107 -6440,0.707107,0.000000,0.000000,0.707107 -6441,0.707107,0.000000,0.000000,0.707107 -6442,0.707107,0.000000,0.000000,0.707107 -6443,0.707107,0.000000,0.000000,0.707107 -6444,0.707107,0.000000,0.000000,0.707107 -6445,0.707107,0.000000,0.000000,0.707107 -6446,0.707107,0.000000,0.000000,0.707107 -6447,0.707107,0.000000,0.000000,0.707107 -6448,0.707107,0.000000,0.000000,0.707107 -6449,0.707107,0.000000,0.000000,0.707107 -6450,0.707107,0.000000,0.000000,0.707107 -6451,0.707107,0.000000,0.000000,0.707107 -6452,0.707107,0.000000,0.000000,0.707107 -6453,0.707107,0.000000,0.000000,0.707107 -6454,0.707107,0.000000,0.000000,0.707107 -6455,0.707107,0.000000,0.000000,0.707107 -6456,0.707107,0.000000,0.000000,0.707107 -6457,0.707107,0.000000,0.000000,0.707107 -6458,0.707107,0.000000,0.000000,0.707107 -6459,0.707107,0.000000,0.000000,0.707107 -6460,0.707107,0.000000,0.000000,0.707107 -6461,0.707107,0.000000,0.000000,0.707107 -6462,0.707107,0.000000,0.000000,0.707107 -6463,0.707107,0.000000,0.000000,0.707107 -6464,0.707107,0.000000,0.000000,0.707107 -6465,0.707107,0.000000,0.000000,0.707107 -6466,0.707107,0.000000,0.000000,0.707107 -6467,0.707107,0.000000,0.000000,0.707107 -6468,0.707107,0.000000,0.000000,0.707107 -6469,0.707107,0.000000,0.000000,0.707107 -6470,0.707107,0.000000,0.000000,0.707107 -6471,0.707107,0.000000,0.000000,0.707107 -6472,0.707107,0.000000,0.000000,0.707107 -6473,0.707107,0.000000,0.000000,0.707107 -6474,0.707107,0.000000,0.000000,0.707107 -6475,0.707107,0.000000,0.000000,0.707107 -6476,0.707107,0.000000,0.000000,0.707107 -6477,0.707107,0.000000,0.000000,0.707107 -6478,0.707107,0.000000,0.000000,0.707107 -6479,0.707107,0.000000,0.000000,0.707107 -6480,0.707107,0.000000,0.000000,0.707107 -6481,0.707107,0.000000,0.000000,0.707107 -6482,0.707107,0.000000,0.000000,0.707107 -6483,0.707107,0.000000,0.000000,0.707107 -6484,0.707107,0.000000,0.000000,0.707107 -6485,0.707107,0.000000,0.000000,0.707107 -6486,0.707107,0.000000,0.000000,0.707107 -6487,0.707107,0.000000,0.000000,0.707107 -6488,0.707107,0.000000,0.000000,0.707107 -6489,0.707107,0.000000,0.000000,0.707107 -6490,0.707107,0.000000,0.000000,0.707107 -6491,0.707107,0.000000,0.000000,0.707107 -6492,0.707107,0.000000,0.000000,0.707107 -6493,0.707107,0.000000,0.000000,0.707107 -6494,0.707107,0.000000,0.000000,0.707107 -6495,0.707107,0.000000,0.000000,0.707107 -6496,0.707107,0.000000,0.000000,0.707107 -6497,0.707107,0.000000,0.000000,0.707107 -6498,0.707107,0.000000,0.000000,0.707107 -6499,0.707107,0.000000,0.000000,0.707107 -6500,0.707107,0.000000,0.000000,0.707107 -6501,0.707107,0.000000,0.000000,0.707107 -6502,0.707107,0.000000,0.000000,0.707107 -6503,0.707107,0.000000,0.000000,0.707107 -6504,0.707107,0.000000,0.000000,0.707107 -6505,0.707107,0.000000,0.000000,0.707107 -6506,0.707107,0.000000,0.000000,0.707107 -6507,0.707107,0.000000,0.000000,0.707107 -6508,0.707107,0.000000,0.000000,0.707107 -6509,0.707107,0.000000,0.000000,0.707107 -6510,0.707107,0.000000,0.000000,0.707107 -6511,0.707107,0.000000,0.000000,0.707107 -6512,0.707107,0.000000,0.000000,0.707107 -6513,0.707107,0.000000,0.000000,0.707107 -6514,0.707107,0.000000,0.000000,0.707107 -6515,0.707107,0.000000,0.000000,0.707107 -6516,0.707107,0.000000,0.000000,0.707107 -6517,0.707107,0.000000,0.000000,0.707107 -6518,0.707107,0.000000,0.000000,0.707107 -6519,0.707107,0.000000,0.000000,0.707107 -6520,0.707107,0.000000,0.000000,0.707107 -6521,0.707107,0.000000,0.000000,0.707107 -6522,0.707107,0.000000,0.000000,0.707107 -6523,0.707107,0.000000,0.000000,0.707107 -6524,0.707107,0.000000,0.000000,0.707107 -6525,0.707107,0.000000,0.000000,0.707107 -6526,0.707107,0.000000,0.000000,0.707107 -6527,0.707107,0.000000,0.000000,0.707107 -6528,0.707107,0.000000,0.000000,0.707107 -6529,0.707107,0.000000,0.000000,0.707107 -6530,0.707107,0.000000,0.000000,0.707107 -6531,0.707107,0.000000,0.000000,0.707107 -6532,0.707107,0.000000,0.000000,0.707107 -6533,0.707107,0.000000,0.000000,0.707107 -6534,0.707107,0.000000,0.000000,0.707107 -6535,0.707107,0.000000,0.000000,0.707107 -6536,0.707107,0.000000,0.000000,0.707107 -6537,0.707107,0.000000,0.000000,0.707107 -6538,0.707107,0.000000,0.000000,0.707107 -6539,0.707107,0.000000,0.000000,0.707107 -6540,0.707107,0.000000,0.000000,0.707107 -6541,0.707107,0.000000,0.000000,0.707107 -6542,0.707107,0.000000,0.000000,0.707107 -6543,0.707107,0.000000,0.000000,0.707107 -6544,0.707107,0.000000,0.000000,0.707107 -6545,0.707107,0.000000,0.000000,0.707107 -6546,0.707107,0.000000,0.000000,0.707107 -6547,0.707107,0.000000,0.000000,0.707107 -6548,0.707107,0.000000,0.000000,0.707107 -6549,0.707107,0.000000,0.000000,0.707107 -6550,0.707107,0.000000,0.000000,0.707107 -6551,0.707107,0.000000,0.000000,0.707107 -6552,0.707107,0.000000,0.000000,0.707107 -6553,0.707107,0.000000,0.000000,0.707107 -6554,0.707107,0.000000,0.000000,0.707107 -6555,0.707107,0.000000,0.000000,0.707107 -6556,0.707107,0.000000,0.000000,0.707107 -6557,0.707107,0.000000,0.000000,0.707107 -6558,0.707107,0.000000,0.000000,0.707107 -6559,0.707107,0.000000,0.000000,0.707107 -6560,0.707107,0.000000,0.000000,0.707107 -6561,0.707107,0.000000,0.000000,0.707107 -6562,0.707107,0.000000,0.000000,0.707107 -6563,0.707107,0.000000,0.000000,0.707107 -6564,0.707107,0.000000,0.000000,0.707107 -6565,0.707107,0.000000,0.000000,0.707107 -6566,0.707107,0.000000,0.000000,0.707107 -6567,0.707107,0.000000,0.000000,0.707107 -6568,0.707107,0.000000,0.000000,0.707107 -6569,0.707107,0.000000,0.000000,0.707107 -6570,0.707107,0.000000,0.000000,0.707107 -6571,0.707107,0.000000,0.000000,0.707107 -6572,0.707107,0.000000,0.000000,0.707107 -6573,0.707107,0.000000,0.000000,0.707107 -6574,0.707107,0.000000,0.000000,0.707107 -6575,0.707107,0.000000,0.000000,0.707107 -6576,0.707107,0.000000,0.000000,0.707107 -6577,0.707107,0.000000,0.000000,0.707107 -6578,0.707107,0.000000,0.000000,0.707107 -6579,0.707107,0.000000,0.000000,0.707107 -6580,0.707107,0.000000,0.000000,0.707107 -6581,0.707107,0.000000,0.000000,0.707107 -6582,0.707107,0.000000,0.000000,0.707107 -6583,0.707107,0.000000,0.000000,0.707107 -6584,0.707107,0.000000,0.000000,0.707107 -6585,0.707107,0.000000,0.000000,0.707107 -6586,0.707107,0.000000,0.000000,0.707107 -6587,0.707107,0.000000,0.000000,0.707107 -6588,0.707107,0.000000,0.000000,0.707107 -6589,0.707107,0.000000,0.000000,0.707107 -6590,0.707107,0.000000,0.000000,0.707107 -6591,0.707107,0.000000,0.000000,0.707107 -6592,0.707107,0.000000,0.000000,0.707107 -6593,0.707107,0.000000,0.000000,0.707107 -6594,0.707107,0.000000,0.000000,0.707107 -6595,0.707107,0.000000,0.000000,0.707107 -6596,0.707107,0.000000,0.000000,0.707107 -6597,0.707107,0.000000,0.000000,0.707107 -6598,0.707107,0.000000,0.000000,0.707107 -6599,0.707107,0.000000,0.000000,0.707107 -6600,0.707107,0.000000,0.000000,0.707107 -6601,0.707107,0.000000,0.000000,0.707107 -6602,0.707107,0.000000,0.000000,0.707107 -6603,0.707107,0.000000,0.000000,0.707107 -6604,0.707107,0.000000,0.000000,0.707107 -6605,0.707107,0.000000,0.000000,0.707107 -6606,0.707107,0.000000,0.000000,0.707107 -6607,0.707107,0.000000,0.000000,0.707107 -6608,0.707107,0.000000,0.000000,0.707107 -6609,0.707107,0.000000,0.000000,0.707107 -6610,0.707107,0.000000,0.000000,0.707107 -6611,0.707107,0.000000,0.000000,0.707107 -6612,0.707107,0.000000,0.000000,0.707107 -6613,0.707107,0.000000,0.000000,0.707107 -6614,0.707107,0.000000,0.000000,0.707107 -6615,0.707107,0.000000,0.000000,0.707107 -6616,0.707107,0.000000,0.000000,0.707107 -6617,0.707107,0.000000,0.000000,0.707107 -6618,0.707107,0.000000,0.000000,0.707107 -6619,0.707107,0.000000,0.000000,0.707107 -6620,0.707107,0.000000,0.000000,0.707107 -6621,0.707107,0.000000,0.000000,0.707107 -6622,0.707107,0.000000,0.000000,0.707107 -6623,0.707107,0.000000,0.000000,0.707107 -6624,0.707107,0.000000,0.000000,0.707107 -6625,0.707107,0.000000,0.000000,0.707107 -6626,0.707107,0.000000,0.000000,0.707107 -6627,0.707107,0.000000,0.000000,0.707107 -6628,0.707107,0.000000,0.000000,0.707107 -6629,0.707107,0.000000,0.000000,0.707107 -6630,0.707107,0.000000,0.000000,0.707107 -6631,0.707107,0.000000,0.000000,0.707107 -6632,0.707107,0.000000,0.000000,0.707107 -6633,0.707107,0.000000,0.000000,0.707107 -6634,0.707107,0.000000,0.000000,0.707107 -6635,0.707107,0.000000,0.000000,0.707107 -6636,0.707107,0.000000,0.000000,0.707107 -6637,0.707107,0.000000,0.000000,0.707107 -6638,0.707107,0.000000,0.000000,0.707107 -6639,0.707107,0.000000,0.000000,0.707107 -6640,0.707107,0.000000,0.000000,0.707107 -6641,0.707107,0.000000,0.000000,0.707107 -6642,0.707107,0.000000,0.000000,0.707107 -6643,0.707107,0.000000,0.000000,0.707107 -6644,0.707107,0.000000,0.000000,0.707107 -6645,0.707107,0.000000,0.000000,0.707107 -6646,0.707107,0.000000,0.000000,0.707107 -6647,0.707107,0.000000,0.000000,0.707107 -6648,0.707107,0.000000,0.000000,0.707107 -6649,0.707107,0.000000,0.000000,0.707107 -6650,0.707107,0.000000,0.000000,0.707107 -6651,0.707107,0.000000,0.000000,0.707107 -6652,0.707107,0.000000,0.000000,0.707107 -6653,0.707107,0.000000,0.000000,0.707107 -6654,0.707107,0.000000,0.000000,0.707107 -6655,0.707107,0.000000,0.000000,0.707107 -6656,0.707107,0.000000,0.000000,0.707107 -6657,0.707107,0.000000,0.000000,0.707107 -6658,0.707107,0.000000,0.000000,0.707107 -6659,0.707107,0.000000,0.000000,0.707107 -6660,0.707107,0.000000,0.000000,0.707107 -6661,0.707107,0.000000,0.000000,0.707107 -6662,0.707107,0.000000,0.000000,0.707107 -6663,0.707107,0.000000,0.000000,0.707107 -6664,0.707107,0.000000,0.000000,0.707107 -6665,0.707107,0.000000,0.000000,0.707107 -6666,0.707107,0.000000,0.000000,0.707107 -6667,0.707107,0.000000,0.000000,0.707107 -6668,0.707107,0.000000,0.000000,0.707107 -6669,0.707107,0.000000,0.000000,0.707107 -6670,0.707107,0.000000,0.000000,0.707107 -6671,0.707107,0.000000,0.000000,0.707107 -6672,0.707107,0.000000,0.000000,0.707107 -6673,0.707107,0.000000,0.000000,0.707107 -6674,0.707107,0.000000,0.000000,0.707107 -6675,0.707107,0.000000,0.000000,0.707107 -6676,0.707107,0.000000,0.000000,0.707107 -6677,0.707107,0.000000,0.000000,0.707107 -6678,0.707107,0.000000,0.000000,0.707107 -6679,0.707107,0.000000,0.000000,0.707107 -6680,0.707107,0.000000,0.000000,0.707107 -6681,0.707107,0.000000,0.000000,0.707107 -6682,0.707107,0.000000,0.000000,0.707107 -6683,0.707107,0.000000,0.000000,0.707107 -6684,0.707107,0.000000,0.000000,0.707107 -6685,0.707107,0.000000,0.000000,0.707107 -6686,0.707107,0.000000,0.000000,0.707107 -6687,0.707107,0.000000,0.000000,0.707107 -6688,0.707107,0.000000,0.000000,0.707107 -6689,0.707107,0.000000,0.000000,0.707107 -6690,0.707107,0.000000,0.000000,0.707107 -6691,0.707107,0.000000,0.000000,0.707107 -6692,0.707107,0.000000,0.000000,0.707107 -6693,0.707107,0.000000,0.000000,0.707107 -6694,0.707107,0.000000,0.000000,0.707107 -6695,0.707107,0.000000,0.000000,0.707107 -6696,0.707107,0.000000,0.000000,0.707107 -6697,0.707107,0.000000,0.000000,0.707107 -6698,0.707107,0.000000,0.000000,0.707107 -6699,0.707107,0.000000,0.000000,0.707107 -6700,0.707107,0.000000,0.000000,0.707107 -6701,0.707107,0.000000,0.000000,0.707107 -6702,0.707107,0.000000,0.000000,0.707107 -6703,0.707107,0.000000,0.000000,0.707107 -6704,0.707107,0.000000,0.000000,0.707107 -6705,0.707107,0.000000,0.000000,0.707107 -6706,0.707107,0.000000,0.000000,0.707107 -6707,0.707107,0.000000,0.000000,0.707107 -6708,0.707107,0.000000,0.000000,0.707107 -6709,0.707107,0.000000,0.000000,0.707107 -6710,0.707107,0.000000,0.000000,0.707107 -6711,0.707107,0.000000,0.000000,0.707107 -6712,0.707107,0.000000,0.000000,0.707107 -6713,0.707107,0.000000,0.000000,0.707107 -6714,0.707107,0.000000,0.000000,0.707107 -6715,0.707107,0.000000,0.000000,0.707107 -6716,0.707107,0.000000,0.000000,0.707107 -6717,0.707107,0.000000,0.000000,0.707107 -6718,0.707107,0.000000,0.000000,0.707107 -6719,0.707107,0.000000,0.000000,0.707107 -6720,0.707107,0.000000,0.000000,0.707107 -6721,0.707107,0.000000,0.000000,0.707107 -6722,0.707107,0.000000,0.000000,0.707107 -6723,0.707107,0.000000,0.000000,0.707107 -6724,0.707107,0.000000,0.000000,0.707107 -6725,0.707107,0.000000,0.000000,0.707107 -6726,0.707107,0.000000,0.000000,0.707107 -6727,0.707107,0.000000,0.000000,0.707107 -6728,0.707107,0.000000,0.000000,0.707107 -6729,0.707107,0.000000,0.000000,0.707107 -6730,0.707107,0.000000,0.000000,0.707107 -6731,0.707107,0.000000,0.000000,0.707107 -6732,0.707107,0.000000,0.000000,0.707107 -6733,0.707107,0.000000,0.000000,0.707107 -6734,0.707107,0.000000,0.000000,0.707107 -6735,0.707107,0.000000,0.000000,0.707107 -6736,0.707107,0.000000,0.000000,0.707107 -6737,0.707107,0.000000,0.000000,0.707107 -6738,0.707107,0.000000,0.000000,0.707107 -6739,0.707107,0.000000,0.000000,0.707107 -6740,0.707107,0.000000,0.000000,0.707107 -6741,0.707107,0.000000,0.000000,0.707107 -6742,0.707107,0.000000,0.000000,0.707107 -6743,0.707107,0.000000,0.000000,0.707107 -6744,0.707107,0.000000,0.000000,0.707107 -6745,0.707107,0.000000,0.000000,0.707107 -6746,0.707107,0.000000,0.000000,0.707107 -6747,0.707107,0.000000,0.000000,0.707107 -6748,0.707107,0.000000,0.000000,0.707107 -6749,0.707107,0.000000,0.000000,0.707107 -6750,0.707107,0.000000,0.000000,0.707107 -6751,0.707107,0.000000,0.000000,0.707107 -6752,0.707107,0.000000,0.000000,0.707107 -6753,0.707107,0.000000,0.000000,0.707107 -6754,0.707107,0.000000,0.000000,0.707107 -6755,0.707107,0.000000,0.000000,0.707107 -6756,0.707107,0.000000,0.000000,0.707107 -6757,0.707107,0.000000,0.000000,0.707107 -6758,0.707107,0.000000,0.000000,0.707107 -6759,0.707107,0.000000,0.000000,0.707107 -6760,0.707107,0.000000,0.000000,0.707107 -6761,0.707107,0.000000,0.000000,0.707107 -6762,0.707107,0.000000,0.000000,0.707107 -6763,0.707107,0.000000,0.000000,0.707107 -6764,0.707107,0.000000,0.000000,0.707107 -6765,0.707107,0.000000,0.000000,0.707107 -6766,0.707107,0.000000,0.000000,0.707107 -6767,0.707107,0.000000,0.000000,0.707107 -6768,0.707107,0.000000,0.000000,0.707107 -6769,0.707107,0.000000,0.000000,0.707107 -6770,0.707107,0.000000,0.000000,0.707107 -6771,0.707107,0.000000,0.000000,0.707107 -6772,0.707107,0.000000,0.000000,0.707107 -6773,0.707107,0.000000,0.000000,0.707107 -6774,0.707107,0.000000,0.000000,0.707107 -6775,0.707107,0.000000,0.000000,0.707107 -6776,0.707107,0.000000,0.000000,0.707107 -6777,0.707107,0.000000,0.000000,0.707107 -6778,0.707107,0.000000,0.000000,0.707107 -6779,0.707107,0.000000,0.000000,0.707107 -6780,0.707107,0.000000,0.000000,0.707107 -6781,0.707107,0.000000,0.000000,0.707107 -6782,0.707107,0.000000,0.000000,0.707107 -6783,0.707107,0.000000,0.000000,0.707107 -6784,0.707107,0.000000,0.000000,0.707107 -6785,0.707107,0.000000,0.000000,0.707107 -6786,0.707107,0.000000,0.000000,0.707107 -6787,0.707107,0.000000,0.000000,0.707107 -6788,0.707107,0.000000,0.000000,0.707107 -6789,0.707107,0.000000,0.000000,0.707107 -6790,0.707107,0.000000,0.000000,0.707107 -6791,0.707107,0.000000,0.000000,0.707107 -6792,0.707107,0.000000,0.000000,0.707107 -6793,0.707107,0.000000,0.000000,0.707107 -6794,0.707107,0.000000,0.000000,0.707107 -6795,0.707107,0.000000,0.000000,0.707107 -6796,0.707107,0.000000,0.000000,0.707107 -6797,0.707107,0.000000,0.000000,0.707107 -6798,0.707107,0.000000,0.000000,0.707107 -6799,0.707107,0.000000,0.000000,0.707107 -6800,0.707107,0.000000,0.000000,0.707107 -6801,0.707107,0.000000,0.000000,0.707107 -6802,0.707107,0.000000,0.000000,0.707107 -6803,0.707107,0.000000,0.000000,0.707107 -6804,0.707107,0.000000,0.000000,0.707107 -6805,0.707107,0.000000,0.000000,0.707107 -6806,0.707107,0.000000,0.000000,0.707107 -6807,0.707107,0.000000,0.000000,0.707107 -6808,0.707107,0.000000,0.000000,0.707107 -6809,0.707107,0.000000,0.000000,0.707107 -6810,0.707107,0.000000,0.000000,0.707107 -6811,0.707107,0.000000,0.000000,0.707107 -6812,0.707107,0.000000,0.000000,0.707107 -6813,0.707107,0.000000,0.000000,0.707107 -6814,0.707107,0.000000,0.000000,0.707107 -6815,0.707107,0.000000,0.000000,0.707107 -6816,0.707107,0.000000,0.000000,0.707107 -6817,0.707107,0.000000,0.000000,0.707107 -6818,0.707107,0.000000,0.000000,0.707107 -6819,0.707107,0.000000,0.000000,0.707107 -6820,0.707107,0.000000,0.000000,0.707107 -6821,0.707107,0.000000,0.000000,0.707107 -6822,0.707107,0.000000,0.000000,0.707107 -6823,0.707107,0.000000,0.000000,0.707107 -6824,0.707107,0.000000,0.000000,0.707107 -6825,0.707107,0.000000,0.000000,0.707107 -6826,0.707107,0.000000,0.000000,0.707107 -6827,0.707107,0.000000,0.000000,0.707107 -6828,0.707107,0.000000,0.000000,0.707107 -6829,0.707107,0.000000,0.000000,0.707107 -6830,0.707107,0.000000,0.000000,0.707107 -6831,0.707107,0.000000,0.000000,0.707107 -6832,0.707107,0.000000,0.000000,0.707107 -6833,0.707107,0.000000,0.000000,0.707107 -6834,0.707107,0.000000,0.000000,0.707107 -6835,0.707107,0.000000,0.000000,0.707107 -6836,0.707107,0.000000,0.000000,0.707107 -6837,0.707107,0.000000,0.000000,0.707107 -6838,0.707107,0.000000,0.000000,0.707107 -6839,0.707107,0.000000,0.000000,0.707107 -6840,0.707107,0.000000,0.000000,0.707107 -6841,0.707107,0.000000,0.000000,0.707107 -6842,0.707107,0.000000,0.000000,0.707107 -6843,0.707107,0.000000,0.000000,0.707107 -6844,0.707107,0.000000,0.000000,0.707107 -6845,0.707107,0.000000,0.000000,0.707107 -6846,0.707107,0.000000,0.000000,0.707107 -6847,0.707107,0.000000,0.000000,0.707107 -6848,0.707107,0.000000,0.000000,0.707107 -6849,0.707107,0.000000,0.000000,0.707107 -6850,0.707107,0.000000,0.000000,0.707107 -6851,0.707107,0.000000,0.000000,0.707107 -6852,0.707107,0.000000,0.000000,0.707107 -6853,0.707107,0.000000,0.000000,0.707107 -6854,0.707107,0.000000,0.000000,0.707107 -6855,0.707107,0.000000,0.000000,0.707107 -6856,0.707107,0.000000,0.000000,0.707107 -6857,0.707107,0.000000,0.000000,0.707107 -6858,0.707107,0.000000,0.000000,0.707107 -6859,0.707107,0.000000,0.000000,0.707107 -6860,0.707107,0.000000,0.000000,0.707107 -6861,0.707107,0.000000,0.000000,0.707107 -6862,0.707107,0.000000,0.000000,0.707107 -6863,0.707107,0.000000,0.000000,0.707107 -6864,0.707107,0.000000,0.000000,0.707107 -6865,0.707107,0.000000,0.000000,0.707107 -6866,0.707107,0.000000,0.000000,0.707107 -6867,0.707107,0.000000,0.000000,0.707107 -6868,0.707107,0.000000,0.000000,0.707107 -6869,0.707107,0.000000,0.000000,0.707107 -6870,0.707107,0.000000,0.000000,0.707107 -6871,0.707107,0.000000,0.000000,0.707107 -6872,0.707107,0.000000,0.000000,0.707107 -6873,0.707107,0.000000,0.000000,0.707107 -6874,0.707107,0.000000,0.000000,0.707107 -6875,0.707107,0.000000,0.000000,0.707107 -6876,0.707107,0.000000,0.000000,0.707107 -6877,0.707107,0.000000,0.000000,0.707107 -6878,0.707107,0.000000,0.000000,0.707107 -6879,0.707107,0.000000,0.000000,0.707107 -6880,0.707107,0.000000,0.000000,0.707107 -6881,0.707107,0.000000,0.000000,0.707107 -6882,0.707107,0.000000,0.000000,0.707107 -6883,0.707107,0.000000,0.000000,0.707107 -6884,0.707107,0.000000,0.000000,0.707107 -6885,0.707107,0.000000,0.000000,0.707107 -6886,0.707107,0.000000,0.000000,0.707107 -6887,0.707107,0.000000,0.000000,0.707107 -6888,0.707107,0.000000,0.000000,0.707107 -6889,0.707107,0.000000,0.000000,0.707107 -6890,0.707107,0.000000,0.000000,0.707107 -6891,0.707107,0.000000,0.000000,0.707107 -6892,0.707107,0.000000,0.000000,0.707107 -6893,0.707107,0.000000,0.000000,0.707107 -6894,0.707107,0.000000,0.000000,0.707107 -6895,0.707107,0.000000,0.000000,0.707107 -6896,0.707107,0.000000,0.000000,0.707107 -6897,0.707107,0.000000,0.000000,0.707107 -6898,0.707107,0.000000,0.000000,0.707107 -6899,0.707107,0.000000,0.000000,0.707107 -6900,0.707107,0.000000,0.000000,0.707107 -6901,0.707107,0.000000,0.000000,0.707107 -6902,0.707107,0.000000,0.000000,0.707107 -6903,0.707107,0.000000,0.000000,0.707107 -6904,0.707107,0.000000,0.000000,0.707107 -6905,0.707107,0.000000,0.000000,0.707107 -6906,0.707107,0.000000,0.000000,0.707107 -6907,0.707107,0.000000,0.000000,0.707107 -6908,0.707107,0.000000,0.000000,0.707107 -6909,0.707107,0.000000,0.000000,0.707107 -6910,0.707107,0.000000,0.000000,0.707107 -6911,0.707107,0.000000,0.000000,0.707107 -6912,0.707107,0.000000,0.000000,0.707107 -6913,0.707107,0.000000,0.000000,0.707107 -6914,0.707107,0.000000,0.000000,0.707107 -6915,0.707107,0.000000,0.000000,0.707107 -6916,0.707107,0.000000,0.000000,0.707107 -6917,0.707107,0.000000,0.000000,0.707107 -6918,0.707107,0.000000,0.000000,0.707107 -6919,0.707107,0.000000,0.000000,0.707107 -6920,0.707107,0.000000,0.000000,0.707107 -6921,0.707107,0.000000,0.000000,0.707107 -6922,0.707107,0.000000,0.000000,0.707107 -6923,0.707107,0.000000,0.000000,0.707107 -6924,0.707107,0.000000,0.000000,0.707107 -6925,0.707107,0.000000,0.000000,0.707107 -6926,0.707107,0.000000,0.000000,0.707107 -6927,0.707107,0.000000,0.000000,0.707107 -6928,0.707107,0.000000,0.000000,0.707107 -6929,0.707107,0.000000,0.000000,0.707107 -6930,0.707107,0.000000,0.000000,0.707107 -6931,0.707107,0.000000,0.000000,0.707107 -6932,0.707107,0.000000,0.000000,0.707107 -6933,0.707107,0.000000,0.000000,0.707107 -6934,0.707107,0.000000,0.000000,0.707107 -6935,0.707107,0.000000,0.000000,0.707107 -6936,0.707107,0.000000,0.000000,0.707107 -6937,0.707107,0.000000,0.000000,0.707107 -6938,0.707107,0.000000,0.000000,0.707107 -6939,0.707107,0.000000,0.000000,0.707107 -6940,0.707107,0.000000,0.000000,0.707107 -6941,0.707107,0.000000,0.000000,0.707107 -6942,0.707107,0.000000,0.000000,0.707107 -6943,0.707107,0.000000,0.000000,0.707107 -6944,0.707107,0.000000,0.000000,0.707107 -6945,0.707107,0.000000,0.000000,0.707107 -6946,0.707107,0.000000,0.000000,0.707107 -6947,0.707107,0.000000,0.000000,0.707107 -6948,0.707107,0.000000,0.000000,0.707107 -6949,0.707107,0.000000,0.000000,0.707107 -6950,0.707107,0.000000,0.000000,0.707107 -6951,0.707107,0.000000,0.000000,0.707107 -6952,0.707107,0.000000,0.000000,0.707107 -6953,0.707107,0.000000,0.000000,0.707107 -6954,0.707107,0.000000,0.000000,0.707107 -6955,0.707107,0.000000,0.000000,0.707107 -6956,0.707107,0.000000,0.000000,0.707107 -6957,0.707107,0.000000,0.000000,0.707107 -6958,0.707107,0.000000,0.000000,0.707107 -6959,0.707107,0.000000,0.000000,0.707107 -6960,0.707107,0.000000,0.000000,0.707107 -6961,0.707107,0.000000,0.000000,0.707107 -6962,0.707107,0.000000,0.000000,0.707107 -6963,0.707107,0.000000,0.000000,0.707107 -6964,0.707107,0.000000,0.000000,0.707107 -6965,0.707107,0.000000,0.000000,0.707107 -6966,0.707107,0.000000,0.000000,0.707107 -6967,0.707107,0.000000,0.000000,0.707107 -6968,0.707107,0.000000,0.000000,0.707107 -6969,0.707107,0.000000,0.000000,0.707107 -6970,0.707107,0.000000,0.000000,0.707107 -6971,0.707107,0.000000,0.000000,0.707107 -6972,0.707107,0.000000,0.000000,0.707107 -6973,0.707107,0.000000,0.000000,0.707107 -6974,0.707107,0.000000,0.000000,0.707107 -6975,0.707107,0.000000,0.000000,0.707107 -6976,0.707107,0.000000,0.000000,0.707107 -6977,0.707107,0.000000,0.000000,0.707107 -6978,0.707107,0.000000,0.000000,0.707107 -6979,0.707107,0.000000,0.000000,0.707107 -6980,0.707107,0.000000,0.000000,0.707107 -6981,0.707107,0.000000,0.000000,0.707107 -6982,0.707107,0.000000,0.000000,0.707107 -6983,0.707107,0.000000,0.000000,0.707107 -6984,0.707107,0.000000,0.000000,0.707107 -6985,0.707107,0.000000,0.000000,0.707107 -6986,0.707107,0.000000,0.000000,0.707107 -6987,0.707107,0.000000,0.000000,0.707107 -6988,0.707107,0.000000,0.000000,0.707107 -6989,0.707107,0.000000,0.000000,0.707107 -6990,0.707107,0.000000,0.000000,0.707107 -6991,0.707107,0.000000,0.000000,0.707107 -6992,0.707107,0.000000,0.000000,0.707107 -6993,0.707107,0.000000,0.000000,0.707107 -6994,0.707107,0.000000,0.000000,0.707107 -6995,0.707107,0.000000,0.000000,0.707107 -6996,0.707107,0.000000,0.000000,0.707107 -6997,0.707107,0.000000,0.000000,0.707107 -6998,0.707107,0.000000,0.000000,0.707107 -6999,0.707107,0.000000,0.000000,0.707107 -7000,0.707107,0.000000,0.000000,0.707107 -7001,0.707107,0.000000,0.000000,0.707107 -7002,0.707107,0.000000,0.000000,0.707107 -7003,0.707107,0.000000,0.000000,0.707107 -7004,0.707107,0.000000,0.000000,0.707107 -7005,0.707107,0.000000,0.000000,0.707107 -7006,0.707107,0.000000,0.000000,0.707107 -7007,0.707107,0.000000,0.000000,0.707107 -7008,0.707107,0.000000,0.000000,0.707107 -7009,0.707107,0.000000,0.000000,0.707107 -7010,0.707107,0.000000,0.000000,0.707107 -7011,0.707107,0.000000,0.000000,0.707107 -7012,0.707107,0.000000,0.000000,0.707107 -7013,0.707107,0.000000,0.000000,0.707107 -7014,0.707107,0.000000,0.000000,0.707107 -7015,0.707107,0.000000,0.000000,0.707107 -7016,0.707107,0.000000,0.000000,0.707107 -7017,0.707107,0.000000,0.000000,0.707107 -7018,0.707107,0.000000,0.000000,0.707107 -7019,0.707107,0.000000,0.000000,0.707107 -7020,0.707107,0.000000,0.000000,0.707107 -7021,0.707107,0.000000,0.000000,0.707107 -7022,0.707107,0.000000,0.000000,0.707107 -7023,0.707107,0.000000,0.000000,0.707107 -7024,0.707107,0.000000,0.000000,0.707107 -7025,0.707107,0.000000,0.000000,0.707107 -7026,0.707107,0.000000,0.000000,0.707107 -7027,0.707107,0.000000,0.000000,0.707107 -7028,0.707107,0.000000,0.000000,0.707107 -7029,0.707107,0.000000,0.000000,0.707107 -7030,0.707107,0.000000,0.000000,0.707107 -7031,0.707107,0.000000,0.000000,0.707107 -7032,0.707107,0.000000,0.000000,0.707107 -7033,0.707107,0.000000,0.000000,0.707107 -7034,0.707107,0.000000,0.000000,0.707107 -7035,0.707107,0.000000,0.000000,0.707107 -7036,0.707107,0.000000,0.000000,0.707107 -7037,0.707107,0.000000,0.000000,0.707107 -7038,0.707107,0.000000,0.000000,0.707107 -7039,0.707107,0.000000,0.000000,0.707107 -7040,0.707107,0.000000,0.000000,0.707107 -7041,0.707107,0.000000,0.000000,0.707107 -7042,0.707107,0.000000,0.000000,0.707107 -7043,0.707107,0.000000,0.000000,0.707107 -7044,0.707107,0.000000,0.000000,0.707107 -7045,0.707107,0.000000,0.000000,0.707107 -7046,0.707107,0.000000,0.000000,0.707107 -7047,0.707107,0.000000,0.000000,0.707107 -7048,0.707107,0.000000,0.000000,0.707107 -7049,0.707107,0.000000,0.000000,0.707107 -7050,0.707107,0.000000,0.000000,0.707107 -7051,0.707107,0.000000,0.000000,0.707107 -7052,0.707107,0.000000,0.000000,0.707107 -7053,0.707107,0.000000,0.000000,0.707107 -7054,0.707107,0.000000,0.000000,0.707107 -7055,0.707107,0.000000,0.000000,0.707107 -7056,0.707107,0.000000,0.000000,0.707107 -7057,0.707107,0.000000,0.000000,0.707107 -7058,0.707107,0.000000,0.000000,0.707107 -7059,0.707107,0.000000,0.000000,0.707107 -7060,0.707107,0.000000,0.000000,0.707107 -7061,0.707107,0.000000,0.000000,0.707107 -7062,0.707107,0.000000,0.000000,0.707107 -7063,0.707107,0.000000,0.000000,0.707107 -7064,0.707107,0.000000,0.000000,0.707107 -7065,0.707107,0.000000,0.000000,0.707107 -7066,0.707107,0.000000,0.000000,0.707107 -7067,0.707107,0.000000,0.000000,0.707107 -7068,0.707107,0.000000,0.000000,0.707107 -7069,0.707107,0.000000,0.000000,0.707107 -7070,0.707107,0.000000,0.000000,0.707107 -7071,0.707107,0.000000,0.000000,0.707107 -7072,0.707107,0.000000,0.000000,0.707107 -7073,0.707107,0.000000,0.000000,0.707107 -7074,0.707107,0.000000,0.000000,0.707107 -7075,0.707107,0.000000,0.000000,0.707107 -7076,0.707107,0.000000,0.000000,0.707107 -7077,0.707107,0.000000,0.000000,0.707107 -7078,0.707107,0.000000,0.000000,0.707107 -7079,0.707107,0.000000,0.000000,0.707107 -7080,0.707107,0.000000,0.000000,0.707107 -7081,0.707107,0.000000,0.000000,0.707107 -7082,0.707107,0.000000,0.000000,0.707107 -7083,0.707107,0.000000,0.000000,0.707107 -7084,0.707107,0.000000,0.000000,0.707107 -7085,0.707107,0.000000,0.000000,0.707107 -7086,0.707107,0.000000,0.000000,0.707107 -7087,0.707107,0.000000,0.000000,0.707107 -7088,0.707107,0.000000,0.000000,0.707107 -7089,0.707107,0.000000,0.000000,0.707107 -7090,0.707107,0.000000,0.000000,0.707107 -7091,0.707107,0.000000,0.000000,0.707107 -7092,0.707107,0.000000,0.000000,0.707107 -7093,0.707107,0.000000,0.000000,0.707107 -7094,0.707107,0.000000,0.000000,0.707107 -7095,0.707107,0.000000,0.000000,0.707107 -7096,0.707107,0.000000,0.000000,0.707107 -7097,0.707107,0.000000,0.000000,0.707107 -7098,0.707107,0.000000,0.000000,0.707107 -7099,0.707107,0.000000,0.000000,0.707107 -7100,0.707107,0.000000,0.000000,0.707107 -7101,0.707107,0.000000,0.000000,0.707107 -7102,0.707107,0.000000,0.000000,0.707107 -7103,0.707107,0.000000,0.000000,0.707107 -7104,0.707107,0.000000,0.000000,0.707107 -7105,0.707107,0.000000,0.000000,0.707107 -7106,0.707107,0.000000,0.000000,0.707107 -7107,0.707107,0.000000,0.000000,0.707107 -7108,0.707107,0.000000,0.000000,0.707107 -7109,0.707107,0.000000,0.000000,0.707107 -7110,0.707107,0.000000,0.000000,0.707107 -7111,0.707107,0.000000,0.000000,0.707107 -7112,0.707107,0.000000,0.000000,0.707107 -7113,0.707107,0.000000,0.000000,0.707107 -7114,0.707107,0.000000,0.000000,0.707107 -7115,0.707107,0.000000,0.000000,0.707107 -7116,0.707107,0.000000,0.000000,0.707107 -7117,0.707107,0.000000,0.000000,0.707107 -7118,0.707107,0.000000,0.000000,0.707107 -7119,0.707107,0.000000,0.000000,0.707107 -7120,0.707107,0.000000,0.000000,0.707107 -7121,0.707107,0.000000,0.000000,0.707107 -7122,0.707107,0.000000,0.000000,0.707107 -7123,0.707107,0.000000,0.000000,0.707107 -7124,0.707107,0.000000,0.000000,0.707107 -7125,0.707107,0.000000,0.000000,0.707107 -7126,0.707107,0.000000,0.000000,0.707107 -7127,0.707107,0.000000,0.000000,0.707107 -7128,0.707107,0.000000,0.000000,0.707107 -7129,0.707107,0.000000,0.000000,0.707107 -7130,0.707107,0.000000,0.000000,0.707107 -7131,0.707107,0.000000,0.000000,0.707107 -7132,0.707107,0.000000,0.000000,0.707107 -7133,0.707107,0.000000,0.000000,0.707107 -7134,0.707107,0.000000,0.000000,0.707107 -7135,0.707107,0.000000,0.000000,0.707107 -7136,0.707107,0.000000,0.000000,0.707107 -7137,0.707107,0.000000,0.000000,0.707107 -7138,0.707107,0.000000,0.000000,0.707107 -7139,0.707107,0.000000,0.000000,0.707107 -7140,0.707107,0.000000,0.000000,0.707107 -7141,0.707107,0.000000,0.000000,0.707107 -7142,0.707107,0.000000,0.000000,0.707107 -7143,0.707107,0.000000,0.000000,0.707107 -7144,0.707107,0.000000,0.000000,0.707107 -7145,0.707107,0.000000,0.000000,0.707107 -7146,0.707107,0.000000,0.000000,0.707107 -7147,0.707107,0.000000,0.000000,0.707107 -7148,0.707107,0.000000,0.000000,0.707107 -7149,0.707107,0.000000,0.000000,0.707107 -7150,0.707107,0.000000,0.000000,0.707107 -7151,0.707107,0.000000,0.000000,0.707107 -7152,0.707107,0.000000,0.000000,0.707107 -7153,0.707107,0.000000,0.000000,0.707107 -7154,0.707107,0.000000,0.000000,0.707107 -7155,0.707107,0.000000,0.000000,0.707107 -7156,0.707107,0.000000,0.000000,0.707107 -7157,0.707107,0.000000,0.000000,0.707107 -7158,0.707107,0.000000,0.000000,0.707107 -7159,0.707107,0.000000,0.000000,0.707107 -7160,0.707107,0.000000,0.000000,0.707107 -7161,0.707107,0.000000,0.000000,0.707107 -7162,0.707107,0.000000,0.000000,0.707107 -7163,0.707107,0.000000,0.000000,0.707107 -7164,0.707107,0.000000,0.000000,0.707107 -7165,0.707107,0.000000,0.000000,0.707107 -7166,0.707107,0.000000,0.000000,0.707107 -7167,0.707107,0.000000,0.000000,0.707107 -7168,0.707107,0.000000,0.000000,0.707107 -7169,0.707107,0.000000,0.000000,0.707107 -7170,0.707107,0.000000,0.000000,0.707107 -7171,0.707107,0.000000,0.000000,0.707107 -7172,0.707107,0.000000,0.000000,0.707107 -7173,0.707107,0.000000,0.000000,0.707107 -7174,0.707107,0.000000,0.000000,0.707107 -7175,0.707107,0.000000,0.000000,0.707107 -7176,0.707107,0.000000,0.000000,0.707107 -7177,0.707107,0.000000,0.000000,0.707107 -7178,0.707107,0.000000,0.000000,0.707107 -7179,0.707107,0.000000,0.000000,0.707107 -7180,0.707107,0.000000,0.000000,0.707107 -7181,0.707107,0.000000,0.000000,0.707107 -7182,0.707107,0.000000,0.000000,0.707107 -7183,0.707107,0.000000,0.000000,0.707107 -7184,0.707107,0.000000,0.000000,0.707107 -7185,0.707107,0.000000,0.000000,0.707107 -7186,0.707107,0.000000,0.000000,0.707107 -7187,0.707107,0.000000,0.000000,0.707107 -7188,0.707107,0.000000,0.000000,0.707107 -7189,0.707107,0.000000,0.000000,0.707107 -7190,0.707107,0.000000,0.000000,0.707107 -7191,0.707107,0.000000,0.000000,0.707107 -7192,0.707107,0.000000,0.000000,0.707107 -7193,0.707107,0.000000,0.000000,0.707107 -7194,0.707107,0.000000,0.000000,0.707107 -7195,0.707107,0.000000,0.000000,0.707107 -7196,0.707107,0.000000,0.000000,0.707107 -7197,0.707107,0.000000,0.000000,0.707107 -7198,0.707107,0.000000,0.000000,0.707107 -7199,0.707107,0.000000,0.000000,0.707107 -7200,0.707107,0.000000,0.000000,0.707107 -7201,0.707107,0.000000,0.000000,0.707107 -7202,0.707107,0.000000,0.000000,0.707107 -7203,0.707107,0.000000,0.000000,0.707107 -7204,0.707107,0.000000,0.000000,0.707107 -7205,0.707107,0.000000,0.000000,0.707107 -7206,0.707107,0.000000,0.000000,0.707107 -7207,0.707107,0.000000,0.000000,0.707107 -7208,0.707107,0.000000,0.000000,0.707107 -7209,0.707107,0.000000,0.000000,0.707107 -7210,0.707107,0.000000,0.000000,0.707107 -7211,0.707107,0.000000,0.000000,0.707107 -7212,0.707107,0.000000,0.000000,0.707107 -7213,0.707107,0.000000,0.000000,0.707107 -7214,0.707107,0.000000,0.000000,0.707107 -7215,0.707107,0.000000,0.000000,0.707107 -7216,0.707107,0.000000,0.000000,0.707107 -7217,0.707107,0.000000,0.000000,0.707107 -7218,0.707107,0.000000,0.000000,0.707107 -7219,0.707107,0.000000,0.000000,0.707107 -7220,0.707107,0.000000,0.000000,0.707107 -7221,0.707107,0.000000,0.000000,0.707107 -7222,0.707107,0.000000,0.000000,0.707107 -7223,0.707107,0.000000,0.000000,0.707107 -7224,0.707107,0.000000,0.000000,0.707107 -7225,0.707107,0.000000,0.000000,0.707107 -7226,0.707107,0.000000,0.000000,0.707107 -7227,0.707107,0.000000,0.000000,0.707107 -7228,0.707107,0.000000,0.000000,0.707107 -7229,0.707107,0.000000,0.000000,0.707107 -7230,0.707107,0.000000,0.000000,0.707107 -7231,0.707107,0.000000,0.000000,0.707107 -7232,0.707107,0.000000,0.000000,0.707107 -7233,0.707107,0.000000,0.000000,0.707107 -7234,0.707107,0.000000,0.000000,0.707107 -7235,0.707107,0.000000,0.000000,0.707107 -7236,0.707107,0.000000,0.000000,0.707107 -7237,0.707107,0.000000,0.000000,0.707107 -7238,0.707107,0.000000,0.000000,0.707107 -7239,0.707107,0.000000,0.000000,0.707107 -7240,0.707107,0.000000,0.000000,0.707107 -7241,0.707107,0.000000,0.000000,0.707107 -7242,0.707107,0.000000,0.000000,0.707107 -7243,0.707107,0.000000,0.000000,0.707107 -7244,0.707107,0.000000,0.000000,0.707107 -7245,0.707107,0.000000,0.000000,0.707107 -7246,0.707107,0.000000,0.000000,0.707107 -7247,0.707107,0.000000,0.000000,0.707107 -7248,0.707107,0.000000,0.000000,0.707107 -7249,0.707107,0.000000,0.000000,0.707107 -7250,0.707107,0.000000,0.000000,0.707107 -7251,0.707107,0.000000,0.000000,0.707107 -7252,0.707107,0.000000,0.000000,0.707107 -7253,0.707107,0.000000,0.000000,0.707107 -7254,0.707107,0.000000,0.000000,0.707107 -7255,0.707107,0.000000,0.000000,0.707107 -7256,0.707107,0.000000,0.000000,0.707107 -7257,0.707107,0.000000,0.000000,0.707107 -7258,0.707107,0.000000,0.000000,0.707107 -7259,0.707107,0.000000,0.000000,0.707107 -7260,0.707107,0.000000,0.000000,0.707107 -7261,0.707107,0.000000,0.000000,0.707107 -7262,0.707107,0.000000,0.000000,0.707107 -7263,0.707107,0.000000,0.000000,0.707107 -7264,0.707107,0.000000,0.000000,0.707107 -7265,0.707107,0.000000,0.000000,0.707107 -7266,0.707107,0.000000,0.000000,0.707107 -7267,0.707107,0.000000,0.000000,0.707107 -7268,0.707107,0.000000,0.000000,0.707107 -7269,0.707107,0.000000,0.000000,0.707107 -7270,0.707107,0.000000,0.000000,0.707107 -7271,0.707107,0.000000,0.000000,0.707107 -7272,0.707107,0.000000,0.000000,0.707107 -7273,0.707107,0.000000,0.000000,0.707107 -7274,0.707107,0.000000,0.000000,0.707107 -7275,0.707107,0.000000,0.000000,0.707107 -7276,0.707107,0.000000,0.000000,0.707107 -7277,0.707107,0.000000,0.000000,0.707107 -7278,0.707107,0.000000,0.000000,0.707107 -7279,0.707107,0.000000,0.000000,0.707107 -7280,0.707107,0.000000,0.000000,0.707107 -7281,0.707107,0.000000,0.000000,0.707107 -7282,0.707107,0.000000,0.000000,0.707107 -7283,0.707107,0.000000,0.000000,0.707107 -7284,0.707107,0.000000,0.000000,0.707107 -7285,0.707107,0.000000,0.000000,0.707107 -7286,0.707107,0.000000,0.000000,0.707107 -7287,0.707107,0.000000,0.000000,0.707107 -7288,0.707107,0.000000,0.000000,0.707107 -7289,0.707107,0.000000,0.000000,0.707107 -7290,0.707107,0.000000,0.000000,0.707107 -7291,0.707107,0.000000,0.000000,0.707107 -7292,0.707107,0.000000,0.000000,0.707107 -7293,0.707107,0.000000,0.000000,0.707107 -7294,0.707107,0.000000,0.000000,0.707107 -7295,0.707107,0.000000,0.000000,0.707107 -7296,0.707107,0.000000,0.000000,0.707107 -7297,0.707107,0.000000,0.000000,0.707107 -7298,0.707107,0.000000,0.000000,0.707107 -7299,0.707107,0.000000,0.000000,0.707107 -7300,0.707107,0.000000,0.000000,0.707107 -7301,0.707107,0.000000,0.000000,0.707107 -7302,0.707107,0.000000,0.000000,0.707107 -7303,0.707107,0.000000,0.000000,0.707107 -7304,0.707107,0.000000,0.000000,0.707107 -7305,0.707107,0.000000,0.000000,0.707107 -7306,0.707107,0.000000,0.000000,0.707107 -7307,0.707107,0.000000,0.000000,0.707107 -7308,0.707107,0.000000,0.000000,0.707107 -7309,0.707107,0.000000,0.000000,0.707107 -7310,0.707107,0.000000,0.000000,0.707107 -7311,0.707107,0.000000,0.000000,0.707107 -7312,0.707107,0.000000,0.000000,0.707107 -7313,0.707107,0.000000,0.000000,0.707107 -7314,0.707107,0.000000,0.000000,0.707107 -7315,0.707107,0.000000,0.000000,0.707107 -7316,0.707107,0.000000,0.000000,0.707107 -7317,0.707107,0.000000,0.000000,0.707107 -7318,0.707107,0.000000,0.000000,0.707107 -7319,0.707107,0.000000,0.000000,0.707107 -7320,0.707107,0.000000,0.000000,0.707107 -7321,0.707107,0.000000,0.000000,0.707107 -7322,0.707107,0.000000,0.000000,0.707107 -7323,0.707107,0.000000,0.000000,0.707107 -7324,0.707107,0.000000,0.000000,0.707107 -7325,0.707107,0.000000,0.000000,0.707107 -7326,0.707107,0.000000,0.000000,0.707107 -7327,0.707107,0.000000,0.000000,0.707107 -7328,0.707107,0.000000,0.000000,0.707107 -7329,0.707107,0.000000,0.000000,0.707107 -7330,0.707107,0.000000,0.000000,0.707107 -7331,0.707107,0.000000,0.000000,0.707107 -7332,0.707107,0.000000,0.000000,0.707107 -7333,0.707107,0.000000,0.000000,0.707107 -7334,0.707107,0.000000,0.000000,0.707107 -7335,0.707107,0.000000,0.000000,0.707107 -7336,0.707107,0.000000,0.000000,0.707107 -7337,0.707107,0.000000,0.000000,0.707107 -7338,0.707107,0.000000,0.000000,0.707107 -7339,0.707107,0.000000,0.000000,0.707107 -7340,0.707107,0.000000,0.000000,0.707107 -7341,0.707107,0.000000,0.000000,0.707107 -7342,0.707107,0.000000,0.000000,0.707107 -7343,0.707107,0.000000,0.000000,0.707107 -7344,0.707107,0.000000,0.000000,0.707107 -7345,0.707107,0.000000,0.000000,0.707107 -7346,0.707107,0.000000,0.000000,0.707107 -7347,0.707107,0.000000,0.000000,0.707107 -7348,0.707107,0.000000,0.000000,0.707107 -7349,0.707107,0.000000,0.000000,0.707107 -7350,0.707107,0.000000,0.000000,0.707107 -7351,0.707107,0.000000,0.000000,0.707107 -7352,0.707107,0.000000,0.000000,0.707107 -7353,0.707107,0.000000,0.000000,0.707107 -7354,0.707107,0.000000,0.000000,0.707107 -7355,0.707107,0.000000,0.000000,0.707107 -7356,0.707107,0.000000,0.000000,0.707107 -7357,0.707107,0.000000,0.000000,0.707107 -7358,0.707107,0.000000,0.000000,0.707107 -7359,0.707107,0.000000,0.000000,0.707107 -7360,0.707107,0.000000,0.000000,0.707107 -7361,0.707107,0.000000,0.000000,0.707107 -7362,0.707107,0.000000,0.000000,0.707107 -7363,0.707107,0.000000,0.000000,0.707107 -7364,0.707107,0.000000,0.000000,0.707107 -7365,0.707107,0.000000,0.000000,0.707107 -7366,0.707107,0.000000,0.000000,0.707107 -7367,0.707107,0.000000,0.000000,0.707107 -7368,0.707107,0.000000,0.000000,0.707107 -7369,0.707107,0.000000,0.000000,0.707107 -7370,0.707107,0.000000,0.000000,0.707107 -7371,0.707107,0.000000,0.000000,0.707107 -7372,0.707107,0.000000,0.000000,0.707107 -7373,0.707107,0.000000,0.000000,0.707107 -7374,0.707107,0.000000,0.000000,0.707107 -7375,0.707107,0.000000,0.000000,0.707107 -7376,0.707107,0.000000,0.000000,0.707107 -7377,0.707107,0.000000,0.000000,0.707107 -7378,0.707107,0.000000,0.000000,0.707107 -7379,0.707107,0.000000,0.000000,0.707107 -7380,0.707107,0.000000,0.000000,0.707107 -7381,0.707107,0.000000,0.000000,0.707107 -7382,0.707107,0.000000,0.000000,0.707107 -7383,0.707107,0.000000,0.000000,0.707107 -7384,0.707107,0.000000,0.000000,0.707107 -7385,0.707107,0.000000,0.000000,0.707107 -7386,0.707107,0.000000,0.000000,0.707107 -7387,0.707107,0.000000,0.000000,0.707107 -7388,0.707107,0.000000,0.000000,0.707107 -7389,0.707107,0.000000,0.000000,0.707107 -7390,0.707107,0.000000,0.000000,0.707107 -7391,0.707107,0.000000,0.000000,0.707107 -7392,0.707107,0.000000,0.000000,0.707107 -7393,0.707107,0.000000,0.000000,0.707107 -7394,0.707107,0.000000,0.000000,0.707107 -7395,0.707107,0.000000,0.000000,0.707107 -7396,0.707107,0.000000,0.000000,0.707107 -7397,0.707107,0.000000,0.000000,0.707107 -7398,0.707107,0.000000,0.000000,0.707107 -7399,0.707107,0.000000,0.000000,0.707107 -7400,0.707107,0.000000,0.000000,0.707107 -7401,0.707107,0.000000,0.000000,0.707107 -7402,0.707107,0.000000,0.000000,0.707107 -7403,0.707107,0.000000,0.000000,0.707107 -7404,0.707107,0.000000,0.000000,0.707107 -7405,0.707107,0.000000,0.000000,0.707107 -7406,0.707107,0.000000,0.000000,0.707107 -7407,0.707107,0.000000,0.000000,0.707107 -7408,0.707107,0.000000,0.000000,0.707107 -7409,0.707107,0.000000,0.000000,0.707107 -7410,0.707107,0.000000,0.000000,0.707107 -7411,0.707107,0.000000,0.000000,0.707107 -7412,0.707107,0.000000,0.000000,0.707107 -7413,0.707107,0.000000,0.000000,0.707107 -7414,0.707107,0.000000,0.000000,0.707107 -7415,0.707107,0.000000,0.000000,0.707107 -7416,0.707107,0.000000,0.000000,0.707107 -7417,0.707107,0.000000,0.000000,0.707107 -7418,0.707107,0.000000,0.000000,0.707107 -7419,0.707107,0.000000,0.000000,0.707107 -7420,0.707107,0.000000,0.000000,0.707107 -7421,0.707107,0.000000,0.000000,0.707107 -7422,0.707107,0.000000,0.000000,0.707107 -7423,0.707107,0.000000,0.000000,0.707107 -7424,0.707107,0.000000,0.000000,0.707107 -7425,0.707107,0.000000,0.000000,0.707107 -7426,0.707107,0.000000,0.000000,0.707107 -7427,0.707107,0.000000,0.000000,0.707107 -7428,0.707107,0.000000,0.000000,0.707107 -7429,0.707107,0.000000,0.000000,0.707107 -7430,0.707107,0.000000,0.000000,0.707107 -7431,0.707107,0.000000,0.000000,0.707107 -7432,0.707107,0.000000,0.000000,0.707107 -7433,0.707107,0.000000,0.000000,0.707107 -7434,0.707107,0.000000,0.000000,0.707107 -7435,0.707107,0.000000,0.000000,0.707107 -7436,0.707107,0.000000,0.000000,0.707107 -7437,0.707107,0.000000,0.000000,0.707107 -7438,0.707107,0.000000,0.000000,0.707107 -7439,0.707107,0.000000,0.000000,0.707107 -7440,0.707107,0.000000,0.000000,0.707107 -7441,0.707107,0.000000,0.000000,0.707107 -7442,0.707107,0.000000,0.000000,0.707107 -7443,0.707107,0.000000,0.000000,0.707107 -7444,0.707107,0.000000,0.000000,0.707107 -7445,0.707107,0.000000,0.000000,0.707107 -7446,0.707107,0.000000,0.000000,0.707107 -7447,0.707107,0.000000,0.000000,0.707107 -7448,0.707107,0.000000,0.000000,0.707107 -7449,0.707107,0.000000,0.000000,0.707107 -7450,0.707107,0.000000,0.000000,0.707107 -7451,0.707107,0.000000,0.000000,0.707107 -7452,0.707107,0.000000,0.000000,0.707107 -7453,0.707107,0.000000,0.000000,0.707107 -7454,0.707107,0.000000,0.000000,0.707107 -7455,0.707107,0.000000,0.000000,0.707107 -7456,0.707107,0.000000,0.000000,0.707107 -7457,0.707107,0.000000,0.000000,0.707107 -7458,0.707107,0.000000,0.000000,0.707107 -7459,0.707107,0.000000,0.000000,0.707107 -7460,0.707107,0.000000,0.000000,0.707107 -7461,0.707107,0.000000,0.000000,0.707107 -7462,0.707107,0.000000,0.000000,0.707107 -7463,0.707107,0.000000,0.000000,0.707107 -7464,0.707107,0.000000,0.000000,0.707107 -7465,0.707107,0.000000,0.000000,0.707107 -7466,0.707107,0.000000,0.000000,0.707107 -7467,0.707107,0.000000,0.000000,0.707107 -7468,0.707107,0.000000,0.000000,0.707107 -7469,0.707107,0.000000,0.000000,0.707107 -7470,0.707107,0.000000,0.000000,0.707107 -7471,0.707107,0.000000,0.000000,0.707107 -7472,0.707107,0.000000,0.000000,0.707107 -7473,0.707107,0.000000,0.000000,0.707107 -7474,0.707107,0.000000,0.000000,0.707107 -7475,0.707107,0.000000,0.000000,0.707107 -7476,0.707107,0.000000,0.000000,0.707107 -7477,0.707107,0.000000,0.000000,0.707107 -7478,0.707107,0.000000,0.000000,0.707107 -7479,0.707107,0.000000,0.000000,0.707107 -7480,0.707107,0.000000,0.000000,0.707107 -7481,0.707107,0.000000,0.000000,0.707107 -7482,0.707107,0.000000,0.000000,0.707107 -7483,0.707107,0.000000,0.000000,0.707107 -7484,0.707107,0.000000,0.000000,0.707107 -7485,0.707107,0.000000,0.000000,0.707107 -7486,0.707107,0.000000,0.000000,0.707107 -7487,0.707107,0.000000,0.000000,0.707107 -7488,0.707107,0.000000,0.000000,0.707107 -7489,0.707107,0.000000,0.000000,0.707107 -7490,0.707107,0.000000,0.000000,0.707107 -7491,0.707107,0.000000,0.000000,0.707107 -7492,0.707107,0.000000,0.000000,0.707107 -7493,0.707107,0.000000,0.000000,0.707107 -7494,0.707107,0.000000,0.000000,0.707107 -7495,0.707107,0.000000,0.000000,0.707107 -7496,0.707107,0.000000,0.000000,0.707107 -7497,0.707107,0.000000,0.000000,0.707107 -7498,0.707107,0.000000,0.000000,0.707107 -7499,0.707107,0.000000,0.000000,0.707107 -7500,0.707107,0.000000,0.000000,0.707107 -7501,0.707107,0.000000,0.000000,0.707107 -7502,0.707107,0.000000,0.000000,0.707107 -7503,0.707107,0.000000,0.000000,0.707107 -7504,0.707107,0.000000,0.000000,0.707107 -7505,0.707107,0.000000,0.000000,0.707107 -7506,0.707107,0.000000,0.000000,0.707107 -7507,0.707107,0.000000,0.000000,0.707107 -7508,0.707107,0.000000,0.000000,0.707107 -7509,0.707107,0.000000,0.000000,0.707107 -7510,0.707107,0.000000,0.000000,0.707107 -7511,0.707107,0.000000,0.000000,0.707107 -7512,0.707107,0.000000,0.000000,0.707107 -7513,0.707107,0.000000,0.000000,0.707107 -7514,0.707107,0.000000,0.000000,0.707107 -7515,0.707107,0.000000,0.000000,0.707107 -7516,0.707107,0.000000,0.000000,0.707107 -7517,0.707107,0.000000,0.000000,0.707107 -7518,0.707107,0.000000,0.000000,0.707107 -7519,0.707107,0.000000,0.000000,0.707107 -7520,0.707107,0.000000,0.000000,0.707107 -7521,0.707107,0.000000,0.000000,0.707107 -7522,0.707107,0.000000,0.000000,0.707107 -7523,0.707107,0.000000,0.000000,0.707107 -7524,0.707107,0.000000,0.000000,0.707107 -7525,0.707107,0.000000,0.000000,0.707107 -7526,0.707107,0.000000,0.000000,0.707107 -7527,0.707107,0.000000,0.000000,0.707107 -7528,0.707107,0.000000,0.000000,0.707107 -7529,0.707107,0.000000,0.000000,0.707107 -7530,0.707107,0.000000,0.000000,0.707107 -7531,0.707107,0.000000,0.000000,0.707107 -7532,0.707107,0.000000,0.000000,0.707107 -7533,0.707107,0.000000,0.000000,0.707107 -7534,0.707107,0.000000,0.000000,0.707107 -7535,0.707107,0.000000,0.000000,0.707107 -7536,0.707107,0.000000,0.000000,0.707107 -7537,0.707107,0.000000,0.000000,0.707107 -7538,0.707107,0.000000,0.000000,0.707107 -7539,0.707107,0.000000,0.000000,0.707107 -7540,0.707107,0.000000,0.000000,0.707107 -7541,0.707107,0.000000,0.000000,0.707107 -7542,0.707107,0.000000,0.000000,0.707107 -7543,0.707107,0.000000,0.000000,0.707107 -7544,0.707107,0.000000,0.000000,0.707107 -7545,0.707107,0.000000,0.000000,0.707107 -7546,0.707107,0.000000,0.000000,0.707107 -7547,0.707107,0.000000,0.000000,0.707107 -7548,0.707107,0.000000,0.000000,0.707107 -7549,0.707107,0.000000,0.000000,0.707107 -7550,0.707107,0.000000,0.000000,0.707107 -7551,0.707107,0.000000,0.000000,0.707107 -7552,0.707107,0.000000,0.000000,0.707107 -7553,0.707107,0.000000,0.000000,0.707107 -7554,0.707107,0.000000,0.000000,0.707107 -7555,0.707107,0.000000,0.000000,0.707107 -7556,0.707107,0.000000,0.000000,0.707107 -7557,0.707107,0.000000,0.000000,0.707107 -7558,0.707107,0.000000,0.000000,0.707107 -7559,0.707107,0.000000,0.000000,0.707107 -7560,0.707107,0.000000,0.000000,0.707107 -7561,0.707107,0.000000,0.000000,0.707107 -7562,0.707107,0.000000,0.000000,0.707107 -7563,0.707107,0.000000,0.000000,0.707107 -7564,0.707107,0.000000,0.000000,0.707107 -7565,0.707107,0.000000,0.000000,0.707107 -7566,0.707107,0.000000,0.000000,0.707107 -7567,0.707107,0.000000,0.000000,0.707107 -7568,0.707107,0.000000,0.000000,0.707107 -7569,0.707107,0.000000,0.000000,0.707107 -7570,0.707107,0.000000,0.000000,0.707107 -7571,0.707107,0.000000,0.000000,0.707107 -7572,0.707107,0.000000,0.000000,0.707107 -7573,0.707107,0.000000,0.000000,0.707107 -7574,0.707107,0.000000,0.000000,0.707107 -7575,0.707107,0.000000,0.000000,0.707107 -7576,0.707107,0.000000,0.000000,0.707107 -7577,0.707107,0.000000,0.000000,0.707107 -7578,0.707107,0.000000,0.000000,0.707107 -7579,0.707107,0.000000,0.000000,0.707107 -7580,0.707107,0.000000,0.000000,0.707107 -7581,0.707107,0.000000,0.000000,0.707107 -7582,0.707107,0.000000,0.000000,0.707107 -7583,0.707107,0.000000,0.000000,0.707107 -7584,0.707107,0.000000,0.000000,0.707107 -7585,0.707107,0.000000,0.000000,0.707107 -7586,0.707107,0.000000,0.000000,0.707107 -7587,0.707107,0.000000,0.000000,0.707107 -7588,0.707107,0.000000,0.000000,0.707107 -7589,0.707107,0.000000,0.000000,0.707107 -7590,0.707107,0.000000,0.000000,0.707107 -7591,0.707107,0.000000,0.000000,0.707107 -7592,0.707107,0.000000,0.000000,0.707107 -7593,0.707107,0.000000,0.000000,0.707107 -7594,0.707107,0.000000,0.000000,0.707107 -7595,0.707107,0.000000,0.000000,0.707107 -7596,0.707107,0.000000,0.000000,0.707107 -7597,0.707107,0.000000,0.000000,0.707107 -7598,0.707107,0.000000,0.000000,0.707107 -7599,0.707107,0.000000,0.000000,0.707107 -7600,0.707107,0.000000,0.000000,0.707107 -7601,0.707107,0.000000,0.000000,0.707107 -7602,0.707107,0.000000,0.000000,0.707107 -7603,0.707107,0.000000,0.000000,0.707107 -7604,0.707107,0.000000,0.000000,0.707107 -7605,0.707107,0.000000,0.000000,0.707107 -7606,0.707107,0.000000,0.000000,0.707107 -7607,0.707107,0.000000,0.000000,0.707107 -7608,0.707107,0.000000,0.000000,0.707107 -7609,0.707107,0.000000,0.000000,0.707107 -7610,0.707107,0.000000,0.000000,0.707107 -7611,0.707107,0.000000,0.000000,0.707107 -7612,0.707107,0.000000,0.000000,0.707107 -7613,0.707107,0.000000,0.000000,0.707107 -7614,0.707107,0.000000,0.000000,0.707107 -7615,0.707107,0.000000,0.000000,0.707107 -7616,0.707107,0.000000,0.000000,0.707107 -7617,0.707107,0.000000,0.000000,0.707107 -7618,0.707107,0.000000,0.000000,0.707107 -7619,0.707107,0.000000,0.000000,0.707107 -7620,0.707107,0.000000,0.000000,0.707107 -7621,0.707107,0.000000,0.000000,0.707107 -7622,0.707107,0.000000,0.000000,0.707107 -7623,0.707107,0.000000,0.000000,0.707107 -7624,0.707107,0.000000,0.000000,0.707107 -7625,0.707107,0.000000,0.000000,0.707107 -7626,0.707107,0.000000,0.000000,0.707107 -7627,0.707107,0.000000,0.000000,0.707107 -7628,0.707107,0.000000,0.000000,0.707107 -7629,0.707107,0.000000,0.000000,0.707107 -7630,0.707107,0.000000,0.000000,0.707107 -7631,0.707107,0.000000,0.000000,0.707107 -7632,0.707107,0.000000,0.000000,0.707107 -7633,0.707107,0.000000,0.000000,0.707107 -7634,0.707107,0.000000,0.000000,0.707107 -7635,0.707107,0.000000,0.000000,0.707107 -7636,0.707107,0.000000,0.000000,0.707107 -7637,0.707107,0.000000,0.000000,0.707107 -7638,0.707107,0.000000,0.000000,0.707107 -7639,0.707107,0.000000,0.000000,0.707107 -7640,0.707107,0.000000,0.000000,0.707107 -7641,0.707107,0.000000,0.000000,0.707107 -7642,0.707107,0.000000,0.000000,0.707107 -7643,0.707107,0.000000,0.000000,0.707107 -7644,0.707107,0.000000,0.000000,0.707107 -7645,0.707107,0.000000,0.000000,0.707107 -7646,0.707107,0.000000,0.000000,0.707107 -7647,0.707107,0.000000,0.000000,0.707107 -7648,0.707107,0.000000,0.000000,0.707107 -7649,0.707107,0.000000,0.000000,0.707107 -7650,0.707107,0.000000,0.000000,0.707107 -7651,0.707107,0.000000,0.000000,0.707107 -7652,0.707107,0.000000,0.000000,0.707107 -7653,0.707107,0.000000,0.000000,0.707107 -7654,0.707107,0.000000,0.000000,0.707107 -7655,0.707107,0.000000,0.000000,0.707107 -7656,0.707107,0.000000,0.000000,0.707107 -7657,0.707107,0.000000,0.000000,0.707107 -7658,0.707107,0.000000,0.000000,0.707107 -7659,0.707107,0.000000,0.000000,0.707107 -7660,0.707107,0.000000,0.000000,0.707107 -7661,0.707107,0.000000,0.000000,0.707107 -7662,0.707107,0.000000,0.000000,0.707107 -7663,0.707107,0.000000,0.000000,0.707107 -7664,0.707107,0.000000,0.000000,0.707107 -7665,0.707107,0.000000,0.000000,0.707107 -7666,0.707107,0.000000,0.000000,0.707107 -7667,0.707107,0.000000,0.000000,0.707107 -7668,0.707107,0.000000,0.000000,0.707107 -7669,0.707107,0.000000,0.000000,0.707107 -7670,0.707107,0.000000,0.000000,0.707107 -7671,0.707107,0.000000,0.000000,0.707107 -7672,0.707107,0.000000,0.000000,0.707107 -7673,0.707107,0.000000,0.000000,0.707107 -7674,0.707107,0.000000,0.000000,0.707107 -7675,0.707107,0.000000,0.000000,0.707107 -7676,0.707107,0.000000,0.000000,0.707107 -7677,0.707107,0.000000,0.000000,0.707107 -7678,0.707107,0.000000,0.000000,0.707107 -7679,0.707107,0.000000,0.000000,0.707107 -7680,0.707107,0.000000,0.000000,0.707107 -7681,0.707107,0.000000,0.000000,0.707107 -7682,0.707107,0.000000,0.000000,0.707107 -7683,0.707107,0.000000,0.000000,0.707107 -7684,0.707107,0.000000,0.000000,0.707107 -7685,0.707107,0.000000,0.000000,0.707107 -7686,0.707107,0.000000,0.000000,0.707107 -7687,0.707107,0.000000,0.000000,0.707107 -7688,0.707107,0.000000,0.000000,0.707107 -7689,0.707107,0.000000,0.000000,0.707107 -7690,0.707107,0.000000,0.000000,0.707107 -7691,0.707107,0.000000,0.000000,0.707107 -7692,0.707107,0.000000,0.000000,0.707107 -7693,0.707107,0.000000,0.000000,0.707107 -7694,0.707107,0.000000,0.000000,0.707107 -7695,0.707107,0.000000,0.000000,0.707107 -7696,0.707107,0.000000,0.000000,0.707107 -7697,0.707107,0.000000,0.000000,0.707107 -7698,0.707107,0.000000,0.000000,0.707107 -7699,0.707107,0.000000,0.000000,0.707107 -7700,0.707107,0.000000,0.000000,0.707107 -7701,0.707107,0.000000,0.000000,0.707107 -7702,0.707107,0.000000,0.000000,0.707107 -7703,0.707107,0.000000,0.000000,0.707107 -7704,0.707107,0.000000,0.000000,0.707107 -7705,0.707107,0.000000,0.000000,0.707107 -7706,0.707107,0.000000,0.000000,0.707107 -7707,0.707107,0.000000,0.000000,0.707107 -7708,0.707107,0.000000,0.000000,0.707107 -7709,0.707107,0.000000,0.000000,0.707107 -7710,0.707107,0.000000,0.000000,0.707107 -7711,0.707107,0.000000,0.000000,0.707107 -7712,0.707107,0.000000,0.000000,0.707107 -7713,0.707107,0.000000,0.000000,0.707107 -7714,0.707107,0.000000,0.000000,0.707107 -7715,0.707107,0.000000,0.000000,0.707107 -7716,0.707107,0.000000,0.000000,0.707107 -7717,0.707107,0.000000,0.000000,0.707107 -7718,0.707107,0.000000,0.000000,0.707107 -7719,0.707107,0.000000,0.000000,0.707107 -7720,0.707107,0.000000,0.000000,0.707107 -7721,0.707107,0.000000,0.000000,0.707107 -7722,0.707107,0.000000,0.000000,0.707107 -7723,0.707107,0.000000,0.000000,0.707107 -7724,0.707107,0.000000,0.000000,0.707107 -7725,0.707107,0.000000,0.000000,0.707107 -7726,0.707107,0.000000,0.000000,0.707107 -7727,0.707107,0.000000,0.000000,0.707107 -7728,0.707107,0.000000,0.000000,0.707107 -7729,0.707107,0.000000,0.000000,0.707107 -7730,0.707107,0.000000,0.000000,0.707107 -7731,0.707107,0.000000,0.000000,0.707107 -7732,0.707107,0.000000,0.000000,0.707107 -7733,0.707107,0.000000,0.000000,0.707107 -7734,0.707107,0.000000,0.000000,0.707107 -7735,0.707107,0.000000,0.000000,0.707107 -7736,0.707107,0.000000,0.000000,0.707107 -7737,0.707107,0.000000,0.000000,0.707107 -7738,0.707107,0.000000,0.000000,0.707107 -7739,0.707107,0.000000,0.000000,0.707107 -7740,0.707107,0.000000,0.000000,0.707107 -7741,0.707107,0.000000,0.000000,0.707107 -7742,0.707107,0.000000,0.000000,0.707107 -7743,0.707107,0.000000,0.000000,0.707107 -7744,0.707107,0.000000,0.000000,0.707107 -7745,0.707107,0.000000,0.000000,0.707107 -7746,0.707107,0.000000,0.000000,0.707107 -7747,0.707107,0.000000,0.000000,0.707107 -7748,0.707107,0.000000,0.000000,0.707107 -7749,0.707107,0.000000,0.000000,0.707107 -7750,0.707107,0.000000,0.000000,0.707107 -7751,0.707107,0.000000,0.000000,0.707107 -7752,0.707107,0.000000,0.000000,0.707107 -7753,0.707107,0.000000,0.000000,0.707107 -7754,0.707107,0.000000,0.000000,0.707107 -7755,0.707107,0.000000,0.000000,0.707107 -7756,0.707107,0.000000,0.000000,0.707107 -7757,0.707107,0.000000,0.000000,0.707107 -7758,0.707107,0.000000,0.000000,0.707107 -7759,0.707107,0.000000,0.000000,0.707107 -7760,0.707107,0.000000,0.000000,0.707107 -7761,0.707107,0.000000,0.000000,0.707107 -7762,0.707107,0.000000,0.000000,0.707107 -7763,0.707107,0.000000,0.000000,0.707107 -7764,0.707107,0.000000,0.000000,0.707107 -7765,0.707107,0.000000,0.000000,0.707107 -7766,0.707107,0.000000,0.000000,0.707107 -7767,0.707107,0.000000,0.000000,0.707107 -7768,0.707107,0.000000,0.000000,0.707107 -7769,0.707107,0.000000,0.000000,0.707107 -7770,0.707107,0.000000,0.000000,0.707107 -7771,0.707107,0.000000,0.000000,0.707107 -7772,0.707107,0.000000,0.000000,0.707107 -7773,0.707107,0.000000,0.000000,0.707107 -7774,0.707107,0.000000,0.000000,0.707107 -7775,0.707107,0.000000,0.000000,0.707107 -7776,0.707107,0.000000,0.000000,0.707107 -7777,0.707107,0.000000,0.000000,0.707107 -7778,0.707107,0.000000,0.000000,0.707107 -7779,0.707107,0.000000,0.000000,0.707107 -7780,0.707107,0.000000,0.000000,0.707107 -7781,0.707107,0.000000,0.000000,0.707107 -7782,0.707107,0.000000,0.000000,0.707107 -7783,0.707107,0.000000,0.000000,0.707107 -7784,0.707107,0.000000,0.000000,0.707107 -7785,0.707107,0.000000,0.000000,0.707107 -7786,0.707107,0.000000,0.000000,0.707107 -7787,0.707107,0.000000,0.000000,0.707107 -7788,0.707107,0.000000,0.000000,0.707107 -7789,0.707107,0.000000,0.000000,0.707107 -7790,0.707107,0.000000,0.000000,0.707107 -7791,0.707107,0.000000,0.000000,0.707107 -7792,0.707107,0.000000,0.000000,0.707107 -7793,0.707107,0.000000,0.000000,0.707107 -7794,0.707107,0.000000,0.000000,0.707107 -7795,0.707107,0.000000,0.000000,0.707107 -7796,0.707107,0.000000,0.000000,0.707107 -7797,0.707107,0.000000,0.000000,0.707107 -7798,0.707107,0.000000,0.000000,0.707107 -7799,0.707107,0.000000,0.000000,0.707107 -7800,0.707107,0.000000,0.000000,0.707107 -7801,0.707107,0.000000,0.000000,0.707107 -7802,0.707107,0.000000,0.000000,0.707107 -7803,0.707107,0.000000,0.000000,0.707107 -7804,0.707107,0.000000,0.000000,0.707107 -7805,0.707107,0.000000,0.000000,0.707107 -7806,0.707107,0.000000,0.000000,0.707107 -7807,0.707107,0.000000,0.000000,0.707107 -7808,0.707107,0.000000,0.000000,0.707107 -7809,0.707107,0.000000,0.000000,0.707107 -7810,0.707107,0.000000,0.000000,0.707107 -7811,0.707107,0.000000,0.000000,0.707107 -7812,0.707107,0.000000,0.000000,0.707107 -7813,0.707107,0.000000,0.000000,0.707107 -7814,0.707107,0.000000,0.000000,0.707107 -7815,0.707107,0.000000,0.000000,0.707107 -7816,0.707107,0.000000,0.000000,0.707107 -7817,0.707107,0.000000,0.000000,0.707107 -7818,0.707107,0.000000,0.000000,0.707107 -7819,0.707107,0.000000,0.000000,0.707107 -7820,0.707107,0.000000,0.000000,0.707107 -7821,0.707107,0.000000,0.000000,0.707107 -7822,0.707107,0.000000,0.000000,0.707107 -7823,0.707107,0.000000,0.000000,0.707107 -7824,0.707107,0.000000,0.000000,0.707107 -7825,0.707107,0.000000,0.000000,0.707107 -7826,0.707107,0.000000,0.000000,0.707107 -7827,0.707107,0.000000,0.000000,0.707107 -7828,0.707107,0.000000,0.000000,0.707107 -7829,0.707107,0.000000,0.000000,0.707107 -7830,0.707107,0.000000,0.000000,0.707107 -7831,0.707107,0.000000,0.000000,0.707107 -7832,0.707107,0.000000,0.000000,0.707107 -7833,0.707107,0.000000,0.000000,0.707107 -7834,0.707107,0.000000,0.000000,0.707107 -7835,0.707107,0.000000,0.000000,0.707107 -7836,0.707107,0.000000,0.000000,0.707107 -7837,0.707107,0.000000,0.000000,0.707107 -7838,0.707107,0.000000,0.000000,0.707107 -7839,0.707107,0.000000,0.000000,0.707107 -7840,0.707107,0.000000,0.000000,0.707107 -7841,0.707107,0.000000,0.000000,0.707107 -7842,0.707107,0.000000,0.000000,0.707107 -7843,0.707107,0.000000,0.000000,0.707107 -7844,0.707107,0.000000,0.000000,0.707107 -7845,0.707107,0.000000,0.000000,0.707107 -7846,0.707107,0.000000,0.000000,0.707107 -7847,0.707107,0.000000,0.000000,0.707107 -7848,0.707107,0.000000,0.000000,0.707107 -7849,0.707107,0.000000,0.000000,0.707107 -7850,0.707107,0.000000,0.000000,0.707107 -7851,0.707107,0.000000,0.000000,0.707107 -7852,0.707107,0.000000,0.000000,0.707107 -7853,0.707107,0.000000,0.000000,0.707107 -7854,0.707107,0.000000,0.000000,0.707107 -7855,0.707107,0.000000,0.000000,0.707107 -7856,0.707107,0.000000,0.000000,0.707107 -7857,0.707107,0.000000,0.000000,0.707107 -7858,0.707107,0.000000,0.000000,0.707107 -7859,0.707107,0.000000,0.000000,0.707107 -7860,0.707107,0.000000,0.000000,0.707107 -7861,0.707107,0.000000,0.000000,0.707107 -7862,0.707107,0.000000,0.000000,0.707107 -7863,0.707107,0.000000,0.000000,0.707107 -7864,0.707107,0.000000,0.000000,0.707107 -7865,0.707107,0.000000,0.000000,0.707107 -7866,0.707107,0.000000,0.000000,0.707107 -7867,0.707107,0.000000,0.000000,0.707107 -7868,0.707107,0.000000,0.000000,0.707107 -7869,0.707107,0.000000,0.000000,0.707107 -7870,0.707107,0.000000,0.000000,0.707107 -7871,0.707107,0.000000,0.000000,0.707107 -7872,0.707107,0.000000,0.000000,0.707107 -7873,0.707107,0.000000,0.000000,0.707107 -7874,0.707107,0.000000,0.000000,0.707107 -7875,0.707107,0.000000,0.000000,0.707107 -7876,0.707107,0.000000,0.000000,0.707107 -7877,0.707107,0.000000,0.000000,0.707107 -7878,0.707107,0.000000,0.000000,0.707107 -7879,0.707107,0.000000,0.000000,0.707107 -7880,0.707107,0.000000,0.000000,0.707107 -7881,0.707107,0.000000,0.000000,0.707107 -7882,0.707107,0.000000,0.000000,0.707107 -7883,0.707107,0.000000,0.000000,0.707107 -7884,0.707107,0.000000,0.000000,0.707107 -7885,0.707107,0.000000,0.000000,0.707107 -7886,0.707107,0.000000,0.000000,0.707107 -7887,0.707107,0.000000,0.000000,0.707107 -7888,0.707107,0.000000,0.000000,0.707107 -7889,0.707107,0.000000,0.000000,0.707107 -7890,0.707107,0.000000,0.000000,0.707107 -7891,0.707107,0.000000,0.000000,0.707107 -7892,0.707107,0.000000,0.000000,0.707107 -7893,0.707107,0.000000,0.000000,0.707107 -7894,0.707107,0.000000,0.000000,0.707107 -7895,0.707107,0.000000,0.000000,0.707107 -7896,0.707107,0.000000,0.000000,0.707107 -7897,0.707107,0.000000,0.000000,0.707107 -7898,0.707107,0.000000,0.000000,0.707107 -7899,0.707107,0.000000,0.000000,0.707107 -7900,0.707107,0.000000,0.000000,0.707107 -7901,0.707107,0.000000,0.000000,0.707107 -7902,0.707107,0.000000,0.000000,0.707107 -7903,0.707107,0.000000,0.000000,0.707107 -7904,0.707107,0.000000,0.000000,0.707107 -7905,0.707107,0.000000,0.000000,0.707107 -7906,0.707107,0.000000,0.000000,0.707107 -7907,0.707107,0.000000,0.000000,0.707107 -7908,0.707107,0.000000,0.000000,0.707107 -7909,0.707107,0.000000,0.000000,0.707107 -7910,0.707107,0.000000,0.000000,0.707107 -7911,0.707107,0.000000,0.000000,0.707107 -7912,0.707107,0.000000,0.000000,0.707107 -7913,0.707107,0.000000,0.000000,0.707107 -7914,0.707107,0.000000,0.000000,0.707107 -7915,0.707107,0.000000,0.000000,0.707107 -7916,0.707107,0.000000,0.000000,0.707107 -7917,0.707107,0.000000,0.000000,0.707107 -7918,0.707107,0.000000,0.000000,0.707107 -7919,0.707107,0.000000,0.000000,0.707107 -7920,0.707107,0.000000,0.000000,0.707107 -7921,0.707107,0.000000,0.000000,0.707107 -7922,0.707107,0.000000,0.000000,0.707107 -7923,0.707107,0.000000,0.000000,0.707107 -7924,0.707107,0.000000,0.000000,0.707107 -7925,0.707107,0.000000,0.000000,0.707107 -7926,0.707107,0.000000,0.000000,0.707107 -7927,0.707107,0.000000,0.000000,0.707107 -7928,0.707107,0.000000,0.000000,0.707107 -7929,0.707107,0.000000,0.000000,0.707107 -7930,0.707107,0.000000,0.000000,0.707107 -7931,0.707107,0.000000,0.000000,0.707107 -7932,0.707107,0.000000,0.000000,0.707107 -7933,0.707107,0.000000,0.000000,0.707107 -7934,0.707107,0.000000,0.000000,0.707107 -7935,0.707107,0.000000,0.000000,0.707107 -7936,0.707107,0.000000,0.000000,0.707107 -7937,0.707107,0.000000,0.000000,0.707107 -7938,0.707107,0.000000,0.000000,0.707107 -7939,0.707107,0.000000,0.000000,0.707107 -7940,0.707107,0.000000,0.000000,0.707107 -7941,0.707107,0.000000,0.000000,0.707107 -7942,0.707107,0.000000,0.000000,0.707107 -7943,0.707107,0.000000,0.000000,0.707107 -7944,0.707107,0.000000,0.000000,0.707107 -7945,0.707107,0.000000,0.000000,0.707107 -7946,0.707107,0.000000,0.000000,0.707107 -7947,0.707107,0.000000,0.000000,0.707107 -7948,0.707107,0.000000,0.000000,0.707107 -7949,0.707107,0.000000,0.000000,0.707107 -7950,0.707107,0.000000,0.000000,0.707107 -7951,0.707107,0.000000,0.000000,0.707107 -7952,0.707107,0.000000,0.000000,0.707107 -7953,0.707107,0.000000,0.000000,0.707107 -7954,0.707107,0.000000,0.000000,0.707107 -7955,0.707107,0.000000,0.000000,0.707107 -7956,0.707107,0.000000,0.000000,0.707107 -7957,0.707107,0.000000,0.000000,0.707107 -7958,0.707107,0.000000,0.000000,0.707107 -7959,0.707107,0.000000,0.000000,0.707107 -7960,0.707107,0.000000,0.000000,0.707107 -7961,0.707107,0.000000,0.000000,0.707107 -7962,0.707107,0.000000,0.000000,0.707107 -7963,0.707107,0.000000,0.000000,0.707107 -7964,0.707107,0.000000,0.000000,0.707107 -7965,0.707107,0.000000,0.000000,0.707107 -7966,0.707107,0.000000,0.000000,0.707107 -7967,0.707107,0.000000,0.000000,0.707107 -7968,0.707107,0.000000,0.000000,0.707107 -7969,0.707107,0.000000,0.000000,0.707107 -7970,0.707107,0.000000,0.000000,0.707107 -7971,0.707107,0.000000,0.000000,0.707107 -7972,0.707107,0.000000,0.000000,0.707107 -7973,0.707107,0.000000,0.000000,0.707107 -7974,0.707107,0.000000,0.000000,0.707107 -7975,0.707107,0.000000,0.000000,0.707107 -7976,0.707107,0.000000,0.000000,0.707107 -7977,0.707107,0.000000,0.000000,0.707107 -7978,0.707107,0.000000,0.000000,0.707107 -7979,0.707107,0.000000,0.000000,0.707107 -7980,0.707107,0.000000,0.000000,0.707107 -7981,0.707107,0.000000,0.000000,0.707107 -7982,0.707107,0.000000,0.000000,0.707107 -7983,0.707107,0.000000,0.000000,0.707107 -7984,0.707107,0.000000,0.000000,0.707107 -7985,0.707107,0.000000,0.000000,0.707107 -7986,0.707107,0.000000,0.000000,0.707107 -7987,0.707107,0.000000,0.000000,0.707107 -7988,0.707107,0.000000,0.000000,0.707107 -7989,0.707107,0.000000,0.000000,0.707107 -7990,0.707107,0.000000,0.000000,0.707107 -7991,0.707107,0.000000,0.000000,0.707107 -7992,0.707107,0.000000,0.000000,0.707107 -7993,0.707107,0.000000,0.000000,0.707107 -7994,0.707107,0.000000,0.000000,0.707107 -7995,0.707107,0.000000,0.000000,0.707107 -7996,0.707107,0.000000,0.000000,0.707107 -7997,0.707107,0.000000,0.000000,0.707107 -7998,0.707107,0.000000,0.000000,0.707107 -7999,0.707107,0.000000,0.000000,0.707107 -8000,0.707107,0.000000,0.000000,0.707107 -8001,0.707107,0.000000,0.000000,0.707107 -8002,0.707107,0.000000,0.000000,0.707107 -8003,0.707107,0.000000,0.000000,0.707107 -8004,0.707107,0.000000,0.000000,0.707107 -8005,0.707107,0.000000,0.000000,0.707107 -8006,0.707107,0.000000,0.000000,0.707107 -8007,0.707107,0.000000,0.000000,0.707107 -8008,0.707107,0.000000,0.000000,0.707107 -8009,0.707107,0.000000,0.000000,0.707107 -8010,0.707107,0.000000,0.000000,0.707107 -8011,0.707107,0.000000,0.000000,0.707107 -8012,0.707107,0.000000,0.000000,0.707107 -8013,0.707107,0.000000,0.000000,0.707107 -8014,0.707107,0.000000,0.000000,0.707107 -8015,0.707107,0.000000,0.000000,0.707107 -8016,0.707107,0.000000,0.000000,0.707107 -8017,0.707107,0.000000,0.000000,0.707107 -8018,0.707107,0.000000,0.000000,0.707107 -8019,0.707107,0.000000,0.000000,0.707107 -8020,0.707107,0.000000,0.000000,0.707107 -8021,0.707107,0.000000,0.000000,0.707107 -8022,0.707107,0.000000,0.000000,0.707107 -8023,0.707107,0.000000,0.000000,0.707107 -8024,0.707107,0.000000,0.000000,0.707107 -8025,0.707107,0.000000,0.000000,0.707107 -8026,0.707107,0.000000,0.000000,0.707107 -8027,0.707107,0.000000,0.000000,0.707107 -8028,0.707107,0.000000,0.000000,0.707107 -8029,0.707107,0.000000,0.000000,0.707107 -8030,0.707107,0.000000,0.000000,0.707107 -8031,0.707107,0.000000,0.000000,0.707107 -8032,0.707107,0.000000,0.000000,0.707107 -8033,0.707107,0.000000,0.000000,0.707107 -8034,0.707107,0.000000,0.000000,0.707107 -8035,0.707107,0.000000,0.000000,0.707107 -8036,0.707107,0.000000,0.000000,0.707107 -8037,0.707107,0.000000,0.000000,0.707107 -8038,0.707107,0.000000,0.000000,0.707107 -8039,0.707107,0.000000,0.000000,0.707107 -8040,0.707107,0.000000,0.000000,0.707107 -8041,0.707107,0.000000,0.000000,0.707107 -8042,0.707107,0.000000,0.000000,0.707107 -8043,0.707107,0.000000,0.000000,0.707107 -8044,0.707107,0.000000,0.000000,0.707107 -8045,0.707107,0.000000,0.000000,0.707107 -8046,0.707107,0.000000,0.000000,0.707107 -8047,0.707107,0.000000,0.000000,0.707107 -8048,0.707107,0.000000,0.000000,0.707107 -8049,0.707107,0.000000,0.000000,0.707107 -8050,0.707107,0.000000,0.000000,0.707107 -8051,0.707107,0.000000,0.000000,0.707107 -8052,0.707107,0.000000,0.000000,0.707107 -8053,0.707107,0.000000,0.000000,0.707107 -8054,0.707107,0.000000,0.000000,0.707107 -8055,0.707107,0.000000,0.000000,0.707107 -8056,0.707107,0.000000,0.000000,0.707107 -8057,0.707107,0.000000,0.000000,0.707107 -8058,0.707107,0.000000,0.000000,0.707107 -8059,0.707107,0.000000,0.000000,0.707107 -8060,0.707107,0.000000,0.000000,0.707107 -8061,0.707107,0.000000,0.000000,0.707107 -8062,0.707107,0.000000,0.000000,0.707107 -8063,0.707107,0.000000,0.000000,0.707107 -8064,0.707107,0.000000,0.000000,0.707107 -8065,0.707107,0.000000,0.000000,0.707107 -8066,0.707107,0.000000,0.000000,0.707107 -8067,0.707107,0.000000,0.000000,0.707107 -8068,0.707107,0.000000,0.000000,0.707107 -8069,0.707107,0.000000,0.000000,0.707107 -8070,0.707107,0.000000,0.000000,0.707107 -8071,0.707107,0.000000,0.000000,0.707107 -8072,0.707107,0.000000,0.000000,0.707107 -8073,0.707107,0.000000,0.000000,0.707107 -8074,0.707107,0.000000,0.000000,0.707107 -8075,0.707107,0.000000,0.000000,0.707107 -8076,0.707107,0.000000,0.000000,0.707107 -8077,0.707107,0.000000,0.000000,0.707107 -8078,0.707107,0.000000,0.000000,0.707107 -8079,0.707107,0.000000,0.000000,0.707107 -8080,0.707107,0.000000,0.000000,0.707107 -8081,0.707107,0.000000,0.000000,0.707107 -8082,0.707107,0.000000,0.000000,0.707107 -8083,0.707107,0.000000,0.000000,0.707107 -8084,0.707107,0.000000,0.000000,0.707107 -8085,0.707107,0.000000,0.000000,0.707107 -8086,0.707107,0.000000,0.000000,0.707107 -8087,0.707107,0.000000,0.000000,0.707107 -8088,0.707107,0.000000,0.000000,0.707107 -8089,0.707107,0.000000,0.000000,0.707107 -8090,0.707107,0.000000,0.000000,0.707107 -8091,0.707107,0.000000,0.000000,0.707107 -8092,0.707107,0.000000,0.000000,0.707107 -8093,0.707107,0.000000,0.000000,0.707107 -8094,0.707107,0.000000,0.000000,0.707107 -8095,0.707107,0.000000,0.000000,0.707107 -8096,0.707107,0.000000,0.000000,0.707107 -8097,0.707107,0.000000,0.000000,0.707107 -8098,0.707107,0.000000,0.000000,0.707107 -8099,0.707107,0.000000,0.000000,0.707107 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.995989,0.000000,0.000000,0.089474 +0.995778,0.000000,0.000000,0.091791 +0.995562,0.000000,0.000000,0.094108 +0.995340,0.000000,0.000000,0.096425 +0.995113,0.000000,0.000000,0.098741 +0.994881,0.000000,0.000000,0.101056 +0.994643,0.000000,0.000000,0.103371 +0.994400,0.000000,0.000000,0.105686 +0.994151,0.000000,0.000000,0.107999 +0.993897,0.000000,0.000000,0.110313 +0.993638,0.000000,0.000000,0.112625 +0.993373,0.000000,0.000000,0.114937 +0.993103,0.000000,0.000000,0.117249 +0.992827,0.000000,0.000000,0.119559 +0.992546,0.000000,0.000000,0.121869 +0.992260,0.000000,0.000000,0.124179 +0.991968,0.000000,0.000000,0.126488 +0.991671,0.000000,0.000000,0.128796 +0.991369,0.000000,0.000000,0.131103 +0.991061,0.000000,0.000000,0.133410 +0.990748,0.000000,0.000000,0.135716 +0.990429,0.000000,0.000000,0.138021 +0.990105,0.000000,0.000000,0.140325 +0.989776,0.000000,0.000000,0.142629 +0.989442,0.000000,0.000000,0.144932 +0.989102,0.000000,0.000000,0.147234 +0.988756,0.000000,0.000000,0.149535 +0.988406,0.000000,0.000000,0.151836 +0.988050,0.000000,0.000000,0.154136 +0.987688,0.000000,0.000000,0.156434 +0.987322,0.000000,0.000000,0.158732 +0.986950,0.000000,0.000000,0.161030 +0.986572,0.000000,0.000000,0.163326 +0.986189,0.000000,0.000000,0.165621 +0.985801,0.000000,0.000000,0.167916 +0.985408,0.000000,0.000000,0.170209 +0.985009,0.000000,0.000000,0.172502 +0.984605,0.000000,0.000000,0.174794 +0.984196,0.000000,0.000000,0.177085 +0.983781,0.000000,0.000000,0.179375 +0.983361,0.000000,0.000000,0.181663 +0.982935,0.000000,0.000000,0.183951 +0.982505,0.000000,0.000000,0.186238 +0.982069,0.000000,0.000000,0.188524 +0.981627,0.000000,0.000000,0.190809 +0.981180,0.000000,0.000000,0.193093 +0.980728,0.000000,0.000000,0.195376 +0.980271,0.000000,0.000000,0.197657 +0.979809,0.000000,0.000000,0.199938 +0.979341,0.000000,0.000000,0.202218 +0.978867,0.000000,0.000000,0.204496 +0.978389,0.000000,0.000000,0.206773 +0.977905,0.000000,0.000000,0.209050 +0.977416,0.000000,0.000000,0.211325 +0.976921,0.000000,0.000000,0.213599 +0.976422,0.000000,0.000000,0.215872 +0.975917,0.000000,0.000000,0.218143 +0.975406,0.000000,0.000000,0.220414 +0.974891,0.000000,0.000000,0.222683 +0.974370,0.000000,0.000000,0.224951 +0.973844,0.000000,0.000000,0.227218 +0.973313,0.000000,0.000000,0.229484 +0.972776,0.000000,0.000000,0.231748 +0.972234,0.000000,0.000000,0.234011 +0.971687,0.000000,0.000000,0.236273 +0.971134,0.000000,0.000000,0.238533 +0.970577,0.000000,0.000000,0.240793 +0.970014,0.000000,0.000000,0.243051 +0.969445,0.000000,0.000000,0.245307 +0.968872,0.000000,0.000000,0.247563 +0.968293,0.000000,0.000000,0.249817 +0.967709,0.000000,0.000000,0.252069 +0.967120,0.000000,0.000000,0.254321 +0.966526,0.000000,0.000000,0.256571 +0.965926,0.000000,0.000000,0.258819 +0.965321,0.000000,0.000000,0.261066 +0.964711,0.000000,0.000000,0.263312 +0.964095,0.000000,0.000000,0.265556 +0.963475,0.000000,0.000000,0.267799 +0.962849,0.000000,0.000000,0.270040 +0.962218,0.000000,0.000000,0.272280 +0.961582,0.000000,0.000000,0.274519 +0.960940,0.000000,0.000000,0.276756 +0.960294,0.000000,0.000000,0.278991 +0.959642,0.000000,0.000000,0.281225 +0.958985,0.000000,0.000000,0.283457 +0.958323,0.000000,0.000000,0.285688 +0.957655,0.000000,0.000000,0.287918 +0.956983,0.000000,0.000000,0.290145 +0.956305,0.000000,0.000000,0.292372 +0.955622,0.000000,0.000000,0.294596 +0.954934,0.000000,0.000000,0.296819 +0.954240,0.000000,0.000000,0.299041 +0.953542,0.000000,0.000000,0.301261 +0.952838,0.000000,0.000000,0.303479 +0.952129,0.000000,0.000000,0.305695 +0.951415,0.000000,0.000000,0.307910 +0.950696,0.000000,0.000000,0.310123 +0.949972,0.000000,0.000000,0.312335 +0.949243,0.000000,0.000000,0.314545 +0.948508,0.000000,0.000000,0.316753 +0.947768,0.000000,0.000000,0.318959 +0.947024,0.000000,0.000000,0.321164 +0.946274,0.000000,0.000000,0.323367 +0.945519,0.000000,0.000000,0.325568 +0.944758,0.000000,0.000000,0.327768 +0.943993,0.000000,0.000000,0.329965 +0.943223,0.000000,0.000000,0.332161 +0.942447,0.000000,0.000000,0.334355 +0.941667,0.000000,0.000000,0.336547 +0.940881,0.000000,0.000000,0.338738 +0.940090,0.000000,0.000000,0.340927 +0.939294,0.000000,0.000000,0.343113 +0.938493,0.000000,0.000000,0.345298 +0.937687,0.000000,0.000000,0.347481 +0.936876,0.000000,0.000000,0.349662 +0.936060,0.000000,0.000000,0.351842 +0.935238,0.000000,0.000000,0.354019 +0.934412,0.000000,0.000000,0.356194 +0.933580,0.000000,0.000000,0.358368 +0.932744,0.000000,0.000000,0.360540 +0.931902,0.000000,0.000000,0.362709 +0.931056,0.000000,0.000000,0.364877 +0.930204,0.000000,0.000000,0.367042 +0.929348,0.000000,0.000000,0.369206 +0.928486,0.000000,0.000000,0.371368 +0.927619,0.000000,0.000000,0.373528 +0.926747,0.000000,0.000000,0.375685 +0.925871,0.000000,0.000000,0.377841 +0.924989,0.000000,0.000000,0.379994 +0.924102,0.000000,0.000000,0.382146 +0.923210,0.000000,0.000000,0.384295 +0.922313,0.000000,0.000000,0.386443 +0.921412,0.000000,0.000000,0.388588 +0.920505,0.000000,0.000000,0.390731 +0.919593,0.000000,0.000000,0.392872 +0.918676,0.000000,0.000000,0.395011 +0.917755,0.000000,0.000000,0.397148 +0.916828,0.000000,0.000000,0.399283 +0.915896,0.000000,0.000000,0.401415 +0.914960,0.000000,0.000000,0.403545 +0.914018,0.000000,0.000000,0.405673 +0.913072,0.000000,0.000000,0.407799 +0.912120,0.000000,0.000000,0.409923 +0.911164,0.000000,0.000000,0.412045 +0.910202,0.000000,0.000000,0.414164 +0.909236,0.000000,0.000000,0.416281 +0.908265,0.000000,0.000000,0.418396 +0.907289,0.000000,0.000000,0.420508 +0.906308,0.000000,0.000000,0.422618 +0.905322,0.000000,0.000000,0.424726 +0.904331,0.000000,0.000000,0.426832 +0.903335,0.000000,0.000000,0.428935 +0.902335,0.000000,0.000000,0.431036 +0.901329,0.000000,0.000000,0.433135 +0.900319,0.000000,0.000000,0.435231 +0.899304,0.000000,0.000000,0.437325 +0.898283,0.000000,0.000000,0.439417 +0.897258,0.000000,0.000000,0.441506 +0.896229,0.000000,0.000000,0.443593 +0.895194,0.000000,0.000000,0.445677 +0.894154,0.000000,0.000000,0.447759 +0.893110,0.000000,0.000000,0.449839 +0.892061,0.000000,0.000000,0.451916 +0.891007,0.000000,0.000000,0.453990 +0.889948,0.000000,0.000000,0.456063 +0.888884,0.000000,0.000000,0.458132 +0.887815,0.000000,0.000000,0.460200 +0.886742,0.000000,0.000000,0.462265 +0.885664,0.000000,0.000000,0.464327 +0.884581,0.000000,0.000000,0.466387 +0.883493,0.000000,0.000000,0.468444 +0.882401,0.000000,0.000000,0.470499 +0.881303,0.000000,0.000000,0.472551 +0.880201,0.000000,0.000000,0.474600 +0.879095,0.000000,0.000000,0.476647 +0.877983,0.000000,0.000000,0.478692 +0.876867,0.000000,0.000000,0.480734 +0.875746,0.000000,0.000000,0.482773 +0.874620,0.000000,0.000000,0.484810 +0.873489,0.000000,0.000000,0.486844 +0.872354,0.000000,0.000000,0.488875 +0.871214,0.000000,0.000000,0.490904 +0.870069,0.000000,0.000000,0.492930 +0.868920,0.000000,0.000000,0.494953 +0.867765,0.000000,0.000000,0.496974 +0.866607,0.000000,0.000000,0.498992 +0.865443,0.000000,0.000000,0.501007 +0.864275,0.000000,0.000000,0.503020 +0.863102,0.000000,0.000000,0.505030 +0.861924,0.000000,0.000000,0.507037 +0.860742,0.000000,0.000000,0.509041 +0.859555,0.000000,0.000000,0.511043 +0.858364,0.000000,0.000000,0.513042 +0.857167,0.000000,0.000000,0.515038 +0.855966,0.000000,0.000000,0.517031 +0.854761,0.000000,0.000000,0.519022 +0.853551,0.000000,0.000000,0.521010 +0.852336,0.000000,0.000000,0.522995 +0.851117,0.000000,0.000000,0.524977 +0.849893,0.000000,0.000000,0.526956 +0.848664,0.000000,0.000000,0.528932 +0.847431,0.000000,0.000000,0.530906 +0.846193,0.000000,0.000000,0.532876 +0.844951,0.000000,0.000000,0.534844 +0.843704,0.000000,0.000000,0.536809 +0.842452,0.000000,0.000000,0.538771 +0.841196,0.000000,0.000000,0.540730 +0.839936,0.000000,0.000000,0.542686 +0.838671,0.000000,0.000000,0.544639 +0.837401,0.000000,0.000000,0.546589 +0.836127,0.000000,0.000000,0.548536 +0.834848,0.000000,0.000000,0.550481 +0.833565,0.000000,0.000000,0.552422 +0.832277,0.000000,0.000000,0.554360 +0.830984,0.000000,0.000000,0.556296 +0.829688,0.000000,0.000000,0.558228 +0.828386,0.000000,0.000000,0.560157 +0.827081,0.000000,0.000000,0.562083 +0.825770,0.000000,0.000000,0.564007 +0.824456,0.000000,0.000000,0.565927 +0.823136,0.000000,0.000000,0.567844 +0.821813,0.000000,0.000000,0.569758 +0.820485,0.000000,0.000000,0.571669 +0.819152,0.000000,0.000000,0.573576 +0.817815,0.000000,0.000000,0.575481 +0.816474,0.000000,0.000000,0.577383 +0.815128,0.000000,0.000000,0.579281 +0.813778,0.000000,0.000000,0.581176 +0.812423,0.000000,0.000000,0.583069 +0.811064,0.000000,0.000000,0.584958 +0.809700,0.000000,0.000000,0.586844 +0.808333,0.000000,0.000000,0.588726 +0.806960,0.000000,0.000000,0.590606 +0.805584,0.000000,0.000000,0.592482 +0.804203,0.000000,0.000000,0.594355 +0.802817,0.000000,0.000000,0.596225 +0.801428,0.000000,0.000000,0.598092 +0.800034,0.000000,0.000000,0.599955 +0.798636,0.000000,0.000000,0.601815 +0.797233,0.000000,0.000000,0.603672 +0.795826,0.000000,0.000000,0.605526 +0.794415,0.000000,0.000000,0.607376 +0.792999,0.000000,0.000000,0.609223 +0.791579,0.000000,0.000000,0.611067 +0.790155,0.000000,0.000000,0.612907 +0.788727,0.000000,0.000000,0.614744 +0.787294,0.000000,0.000000,0.616578 +0.785857,0.000000,0.000000,0.618408 +0.784416,0.000000,0.000000,0.620235 +0.782970,0.000000,0.000000,0.622059 +0.781520,0.000000,0.000000,0.623880 +0.780067,0.000000,0.000000,0.625697 +0.778608,0.000000,0.000000,0.627510 +0.777146,0.000000,0.000000,0.629320 +0.775679,0.000000,0.000000,0.631127 +0.774209,0.000000,0.000000,0.632931 +0.772734,0.000000,0.000000,0.634731 +0.771254,0.000000,0.000000,0.636527 +0.769771,0.000000,0.000000,0.638320 +0.768284,0.000000,0.000000,0.640110 +0.766792,0.000000,0.000000,0.641896 +0.765296,0.000000,0.000000,0.643679 +0.763796,0.000000,0.000000,0.645458 +0.762292,0.000000,0.000000,0.647233 +0.760784,0.000000,0.000000,0.649006 +0.759271,0.000000,0.000000,0.650774 +0.757755,0.000000,0.000000,0.652539 +0.756234,0.000000,0.000000,0.654301 +0.754710,0.000000,0.000000,0.656059 +0.753181,0.000000,0.000000,0.657814 +0.751648,0.000000,0.000000,0.659564 +0.750111,0.000000,0.000000,0.661312 +0.748570,0.000000,0.000000,0.663056 +0.747025,0.000000,0.000000,0.664796 +0.745476,0.000000,0.000000,0.666532 +0.743923,0.000000,0.000000,0.668265 +0.742366,0.000000,0.000000,0.669995 +0.740805,0.000000,0.000000,0.671721 +0.739239,0.000000,0.000000,0.673443 +0.737670,0.000000,0.000000,0.675161 +0.736097,0.000000,0.000000,0.676876 +0.734520,0.000000,0.000000,0.678587 +0.732939,0.000000,0.000000,0.680295 +0.731354,0.000000,0.000000,0.681998 +0.729765,0.000000,0.000000,0.683698 +0.728172,0.000000,0.000000,0.685395 +0.726575,0.000000,0.000000,0.687088 +0.724974,0.000000,0.000000,0.688776 +0.723369,0.000000,0.000000,0.690462 +0.721760,0.000000,0.000000,0.692143 +0.720148,0.000000,0.000000,0.693821 +0.718531,0.000000,0.000000,0.695495 +0.716911,0.000000,0.000000,0.697165 +0.715286,0.000000,0.000000,0.698832 +0.713658,0.000000,0.000000,0.700494 +0.712026,0.000000,0.000000,0.702153 +0.710390,0.000000,0.000000,0.703808 +0.708750,0.000000,0.000000,0.705459 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 diff --git a/scripts/trajectories/headrot-15s.csv b/scripts/trajectories/headrot-15s.csv index e3500d2d39..b298d22c89 100644 --- a/scripts/trajectories/headrot-15s.csv +++ b/scripts/trajectories/headrot-15s.csv @@ -1,8100 +1,8100 @@ -0,0.996195,0.000000,0.000000,0.087156 -1,0.996195,0.000000,0.000000,0.087156 -2,0.996195,0.000000,0.000000,0.087156 -3,0.996195,0.000000,0.000000,0.087156 -4,0.996195,0.000000,0.000000,0.087156 -5,0.996195,0.000000,0.000000,0.087156 -6,0.996195,0.000000,0.000000,0.087156 -7,0.996195,0.000000,0.000000,0.087156 -8,0.996195,0.000000,0.000000,0.087156 -9,0.996195,0.000000,0.000000,0.087156 -10,0.996195,0.000000,0.000000,0.087156 -11,0.996195,0.000000,0.000000,0.087156 -12,0.996195,0.000000,0.000000,0.087156 -13,0.996195,0.000000,0.000000,0.087156 -14,0.996195,0.000000,0.000000,0.087156 -15,0.996195,0.000000,0.000000,0.087156 -16,0.996195,0.000000,0.000000,0.087156 -17,0.996195,0.000000,0.000000,0.087156 -18,0.996195,0.000000,0.000000,0.087156 -19,0.996195,0.000000,0.000000,0.087156 -20,0.996195,0.000000,0.000000,0.087156 -21,0.996195,0.000000,0.000000,0.087156 -22,0.996195,0.000000,0.000000,0.087156 -23,0.996195,0.000000,0.000000,0.087156 -24,0.996195,0.000000,0.000000,0.087156 -25,0.996195,0.000000,0.000000,0.087156 -26,0.996195,0.000000,0.000000,0.087156 -27,0.996195,0.000000,0.000000,0.087156 -28,0.996195,0.000000,0.000000,0.087156 -29,0.996195,0.000000,0.000000,0.087156 -30,0.996195,0.000000,0.000000,0.087156 -31,0.996195,0.000000,0.000000,0.087156 -32,0.996195,0.000000,0.000000,0.087156 -33,0.996195,0.000000,0.000000,0.087156 -34,0.996195,0.000000,0.000000,0.087156 -35,0.996195,0.000000,0.000000,0.087156 -36,0.996195,0.000000,0.000000,0.087156 -37,0.996195,0.000000,0.000000,0.087156 -38,0.996195,0.000000,0.000000,0.087156 -39,0.996195,0.000000,0.000000,0.087156 -40,0.996195,0.000000,0.000000,0.087156 -41,0.996195,0.000000,0.000000,0.087156 -42,0.996195,0.000000,0.000000,0.087156 -43,0.996195,0.000000,0.000000,0.087156 -44,0.996195,0.000000,0.000000,0.087156 -45,0.996195,0.000000,0.000000,0.087156 -46,0.996195,0.000000,0.000000,0.087156 -47,0.996195,0.000000,0.000000,0.087156 -48,0.996195,0.000000,0.000000,0.087156 -49,0.996195,0.000000,0.000000,0.087156 -50,0.996195,0.000000,0.000000,0.087156 -51,0.996195,0.000000,0.000000,0.087156 -52,0.996195,0.000000,0.000000,0.087156 -53,0.996195,0.000000,0.000000,0.087156 -54,0.996195,0.000000,0.000000,0.087156 -55,0.996195,0.000000,0.000000,0.087156 -56,0.996195,0.000000,0.000000,0.087156 -57,0.996195,0.000000,0.000000,0.087156 -58,0.996195,0.000000,0.000000,0.087156 -59,0.996195,0.000000,0.000000,0.087156 -60,0.996195,0.000000,0.000000,0.087156 -61,0.996195,0.000000,0.000000,0.087156 -62,0.996195,0.000000,0.000000,0.087156 -63,0.996195,0.000000,0.000000,0.087156 -64,0.996195,0.000000,0.000000,0.087156 -65,0.996195,0.000000,0.000000,0.087156 -66,0.996195,0.000000,0.000000,0.087156 -67,0.996195,0.000000,0.000000,0.087156 -68,0.996195,0.000000,0.000000,0.087156 -69,0.996195,0.000000,0.000000,0.087156 -70,0.996195,0.000000,0.000000,0.087156 -71,0.996195,0.000000,0.000000,0.087156 -72,0.996195,0.000000,0.000000,0.087156 -73,0.996195,0.000000,0.000000,0.087156 -74,0.996195,0.000000,0.000000,0.087156 -75,0.996195,0.000000,0.000000,0.087156 -76,0.996195,0.000000,0.000000,0.087156 -77,0.996195,0.000000,0.000000,0.087156 -78,0.996195,0.000000,0.000000,0.087156 -79,0.996195,0.000000,0.000000,0.087156 -80,0.996195,0.000000,0.000000,0.087156 -81,0.996195,0.000000,0.000000,0.087156 -82,0.996195,0.000000,0.000000,0.087156 -83,0.996195,0.000000,0.000000,0.087156 -84,0.996195,0.000000,0.000000,0.087156 -85,0.996195,0.000000,0.000000,0.087156 -86,0.996195,0.000000,0.000000,0.087156 -87,0.996195,0.000000,0.000000,0.087156 -88,0.996195,0.000000,0.000000,0.087156 -89,0.996195,0.000000,0.000000,0.087156 -90,0.996195,0.000000,0.000000,0.087156 -91,0.996195,0.000000,0.000000,0.087156 -92,0.996195,0.000000,0.000000,0.087156 -93,0.996195,0.000000,0.000000,0.087156 -94,0.996195,0.000000,0.000000,0.087156 -95,0.996195,0.000000,0.000000,0.087156 -96,0.996195,0.000000,0.000000,0.087156 -97,0.996195,0.000000,0.000000,0.087156 -98,0.996195,0.000000,0.000000,0.087156 -99,0.996195,0.000000,0.000000,0.087156 -100,0.996195,0.000000,0.000000,0.087156 -101,0.996195,0.000000,0.000000,0.087156 -102,0.996195,0.000000,0.000000,0.087156 -103,0.996195,0.000000,0.000000,0.087156 -104,0.996195,0.000000,0.000000,0.087156 -105,0.996195,0.000000,0.000000,0.087156 -106,0.996195,0.000000,0.000000,0.087156 -107,0.996195,0.000000,0.000000,0.087156 -108,0.996195,0.000000,0.000000,0.087156 -109,0.996195,0.000000,0.000000,0.087156 -110,0.996195,0.000000,0.000000,0.087156 -111,0.996195,0.000000,0.000000,0.087156 -112,0.996195,0.000000,0.000000,0.087156 -113,0.996195,0.000000,0.000000,0.087156 -114,0.996195,0.000000,0.000000,0.087156 -115,0.996195,0.000000,0.000000,0.087156 -116,0.996195,0.000000,0.000000,0.087156 -117,0.996195,0.000000,0.000000,0.087156 -118,0.996195,0.000000,0.000000,0.087156 -119,0.996195,0.000000,0.000000,0.087156 -120,0.996195,0.000000,0.000000,0.087156 -121,0.996195,0.000000,0.000000,0.087156 -122,0.996195,0.000000,0.000000,0.087156 -123,0.996195,0.000000,0.000000,0.087156 -124,0.996195,0.000000,0.000000,0.087156 -125,0.996195,0.000000,0.000000,0.087156 -126,0.996195,0.000000,0.000000,0.087156 -127,0.996195,0.000000,0.000000,0.087156 -128,0.996195,0.000000,0.000000,0.087156 -129,0.996195,0.000000,0.000000,0.087156 -130,0.996195,0.000000,0.000000,0.087156 -131,0.996195,0.000000,0.000000,0.087156 -132,0.996195,0.000000,0.000000,0.087156 -133,0.996195,0.000000,0.000000,0.087156 -134,0.996195,0.000000,0.000000,0.087156 -135,0.996195,0.000000,0.000000,0.087156 -136,0.996195,0.000000,0.000000,0.087156 -137,0.996195,0.000000,0.000000,0.087156 -138,0.996195,0.000000,0.000000,0.087156 -139,0.996195,0.000000,0.000000,0.087156 -140,0.996195,0.000000,0.000000,0.087156 -141,0.996195,0.000000,0.000000,0.087156 -142,0.996195,0.000000,0.000000,0.087156 -143,0.996195,0.000000,0.000000,0.087156 -144,0.996195,0.000000,0.000000,0.087156 -145,0.996195,0.000000,0.000000,0.087156 -146,0.996195,0.000000,0.000000,0.087156 -147,0.996195,0.000000,0.000000,0.087156 -148,0.996195,0.000000,0.000000,0.087156 -149,0.996195,0.000000,0.000000,0.087156 -150,0.996195,0.000000,0.000000,0.087156 -151,0.996195,0.000000,0.000000,0.087156 -152,0.996195,0.000000,0.000000,0.087156 -153,0.996195,0.000000,0.000000,0.087156 -154,0.996195,0.000000,0.000000,0.087156 -155,0.996195,0.000000,0.000000,0.087156 -156,0.996195,0.000000,0.000000,0.087156 -157,0.996195,0.000000,0.000000,0.087156 -158,0.996195,0.000000,0.000000,0.087156 -159,0.996195,0.000000,0.000000,0.087156 -160,0.996195,0.000000,0.000000,0.087156 -161,0.996195,0.000000,0.000000,0.087156 -162,0.996195,0.000000,0.000000,0.087156 -163,0.996195,0.000000,0.000000,0.087156 -164,0.996195,0.000000,0.000000,0.087156 -165,0.996195,0.000000,0.000000,0.087156 -166,0.996195,0.000000,0.000000,0.087156 -167,0.996195,0.000000,0.000000,0.087156 -168,0.996195,0.000000,0.000000,0.087156 -169,0.996195,0.000000,0.000000,0.087156 -170,0.996195,0.000000,0.000000,0.087156 -171,0.996195,0.000000,0.000000,0.087156 -172,0.996195,0.000000,0.000000,0.087156 -173,0.996195,0.000000,0.000000,0.087156 -174,0.996195,0.000000,0.000000,0.087156 -175,0.996195,0.000000,0.000000,0.087156 -176,0.996195,0.000000,0.000000,0.087156 -177,0.996195,0.000000,0.000000,0.087156 -178,0.996195,0.000000,0.000000,0.087156 -179,0.996195,0.000000,0.000000,0.087156 -180,0.996195,0.000000,0.000000,0.087156 -181,0.996195,0.000000,0.000000,0.087156 -182,0.996195,0.000000,0.000000,0.087156 -183,0.996195,0.000000,0.000000,0.087156 -184,0.996195,0.000000,0.000000,0.087156 -185,0.996195,0.000000,0.000000,0.087156 -186,0.996195,0.000000,0.000000,0.087156 -187,0.996195,0.000000,0.000000,0.087156 -188,0.996195,0.000000,0.000000,0.087156 -189,0.996195,0.000000,0.000000,0.087156 -190,0.996195,0.000000,0.000000,0.087156 -191,0.996195,0.000000,0.000000,0.087156 -192,0.996195,0.000000,0.000000,0.087156 -193,0.996195,0.000000,0.000000,0.087156 -194,0.996195,0.000000,0.000000,0.087156 -195,0.996195,0.000000,0.000000,0.087156 -196,0.996195,0.000000,0.000000,0.087156 -197,0.996195,0.000000,0.000000,0.087156 -198,0.996195,0.000000,0.000000,0.087156 -199,0.996195,0.000000,0.000000,0.087156 -200,0.996195,0.000000,0.000000,0.087156 -201,0.996195,0.000000,0.000000,0.087156 -202,0.996195,0.000000,0.000000,0.087156 -203,0.996195,0.000000,0.000000,0.087156 -204,0.996195,0.000000,0.000000,0.087156 -205,0.996195,0.000000,0.000000,0.087156 -206,0.996195,0.000000,0.000000,0.087156 -207,0.996195,0.000000,0.000000,0.087156 -208,0.996195,0.000000,0.000000,0.087156 -209,0.996195,0.000000,0.000000,0.087156 -210,0.996195,0.000000,0.000000,0.087156 -211,0.996195,0.000000,0.000000,0.087156 -212,0.996195,0.000000,0.000000,0.087156 -213,0.996195,0.000000,0.000000,0.087156 -214,0.996195,0.000000,0.000000,0.087156 -215,0.996195,0.000000,0.000000,0.087156 -216,0.996195,0.000000,0.000000,0.087156 -217,0.996195,0.000000,0.000000,0.087156 -218,0.996195,0.000000,0.000000,0.087156 -219,0.996195,0.000000,0.000000,0.087156 -220,0.996195,0.000000,0.000000,0.087156 -221,0.996195,0.000000,0.000000,0.087156 -222,0.996195,0.000000,0.000000,0.087156 -223,0.996195,0.000000,0.000000,0.087156 -224,0.996195,0.000000,0.000000,0.087156 -225,0.996195,0.000000,0.000000,0.087156 -226,0.996195,0.000000,0.000000,0.087156 -227,0.996195,0.000000,0.000000,0.087156 -228,0.996195,0.000000,0.000000,0.087156 -229,0.996195,0.000000,0.000000,0.087156 -230,0.996195,0.000000,0.000000,0.087156 -231,0.996195,0.000000,0.000000,0.087156 -232,0.996195,0.000000,0.000000,0.087156 -233,0.996195,0.000000,0.000000,0.087156 -234,0.996195,0.000000,0.000000,0.087156 -235,0.996195,0.000000,0.000000,0.087156 -236,0.996195,0.000000,0.000000,0.087156 -237,0.996195,0.000000,0.000000,0.087156 -238,0.996195,0.000000,0.000000,0.087156 -239,0.996195,0.000000,0.000000,0.087156 -240,0.996195,0.000000,0.000000,0.087156 -241,0.996195,0.000000,0.000000,0.087156 -242,0.996195,0.000000,0.000000,0.087156 -243,0.996195,0.000000,0.000000,0.087156 -244,0.996195,0.000000,0.000000,0.087156 -245,0.996195,0.000000,0.000000,0.087156 -246,0.996195,0.000000,0.000000,0.087156 -247,0.996195,0.000000,0.000000,0.087156 -248,0.996195,0.000000,0.000000,0.087156 -249,0.996195,0.000000,0.000000,0.087156 -250,0.996195,0.000000,0.000000,0.087156 -251,0.996195,0.000000,0.000000,0.087156 -252,0.996195,0.000000,0.000000,0.087156 -253,0.996195,0.000000,0.000000,0.087156 -254,0.996195,0.000000,0.000000,0.087156 -255,0.996195,0.000000,0.000000,0.087156 -256,0.996195,0.000000,0.000000,0.087156 -257,0.996195,0.000000,0.000000,0.087156 -258,0.996195,0.000000,0.000000,0.087156 -259,0.996195,0.000000,0.000000,0.087156 -260,0.996195,0.000000,0.000000,0.087156 -261,0.996195,0.000000,0.000000,0.087156 -262,0.996195,0.000000,0.000000,0.087156 -263,0.996195,0.000000,0.000000,0.087156 -264,0.996195,0.000000,0.000000,0.087156 -265,0.996195,0.000000,0.000000,0.087156 -266,0.996195,0.000000,0.000000,0.087156 -267,0.996195,0.000000,0.000000,0.087156 -268,0.996195,0.000000,0.000000,0.087156 -269,0.996195,0.000000,0.000000,0.087156 -270,0.996195,0.000000,0.000000,0.087156 -271,0.996195,0.000000,0.000000,0.087156 -272,0.996195,0.000000,0.000000,0.087156 -273,0.996195,0.000000,0.000000,0.087156 -274,0.996195,0.000000,0.000000,0.087156 -275,0.996195,0.000000,0.000000,0.087156 -276,0.996195,0.000000,0.000000,0.087156 -277,0.996195,0.000000,0.000000,0.087156 -278,0.996195,0.000000,0.000000,0.087156 -279,0.996195,0.000000,0.000000,0.087156 -280,0.996195,0.000000,0.000000,0.087156 -281,0.996195,0.000000,0.000000,0.087156 -282,0.996195,0.000000,0.000000,0.087156 -283,0.996195,0.000000,0.000000,0.087156 -284,0.996195,0.000000,0.000000,0.087156 -285,0.996195,0.000000,0.000000,0.087156 -286,0.996195,0.000000,0.000000,0.087156 -287,0.996195,0.000000,0.000000,0.087156 -288,0.996195,0.000000,0.000000,0.087156 -289,0.996195,0.000000,0.000000,0.087156 -290,0.996195,0.000000,0.000000,0.087156 -291,0.996195,0.000000,0.000000,0.087156 -292,0.996195,0.000000,0.000000,0.087156 -293,0.996195,0.000000,0.000000,0.087156 -294,0.996195,0.000000,0.000000,0.087156 -295,0.996195,0.000000,0.000000,0.087156 -296,0.996195,0.000000,0.000000,0.087156 -297,0.996195,0.000000,0.000000,0.087156 -298,0.996195,0.000000,0.000000,0.087156 -299,0.996195,0.000000,0.000000,0.087156 -300,0.996195,0.000000,0.000000,0.087156 -301,0.996195,0.000000,0.000000,0.087156 -302,0.996195,0.000000,0.000000,0.087156 -303,0.996195,0.000000,0.000000,0.087156 -304,0.996195,0.000000,0.000000,0.087156 -305,0.996195,0.000000,0.000000,0.087156 -306,0.996195,0.000000,0.000000,0.087156 -307,0.996195,0.000000,0.000000,0.087156 -308,0.996195,0.000000,0.000000,0.087156 -309,0.996195,0.000000,0.000000,0.087156 -310,0.996195,0.000000,0.000000,0.087156 -311,0.996195,0.000000,0.000000,0.087156 -312,0.996195,0.000000,0.000000,0.087156 -313,0.996195,0.000000,0.000000,0.087156 -314,0.996195,0.000000,0.000000,0.087156 -315,0.996195,0.000000,0.000000,0.087156 -316,0.996195,0.000000,0.000000,0.087156 -317,0.996195,0.000000,0.000000,0.087156 -318,0.996195,0.000000,0.000000,0.087156 -319,0.996195,0.000000,0.000000,0.087156 -320,0.996195,0.000000,0.000000,0.087156 -321,0.996195,0.000000,0.000000,0.087156 -322,0.996195,0.000000,0.000000,0.087156 -323,0.996195,0.000000,0.000000,0.087156 -324,0.996195,0.000000,0.000000,0.087156 -325,0.996195,0.000000,0.000000,0.087156 -326,0.996195,0.000000,0.000000,0.087156 -327,0.996195,0.000000,0.000000,0.087156 -328,0.996195,0.000000,0.000000,0.087156 -329,0.996195,0.000000,0.000000,0.087156 -330,0.996195,0.000000,0.000000,0.087156 -331,0.996195,0.000000,0.000000,0.087156 -332,0.996195,0.000000,0.000000,0.087156 -333,0.996195,0.000000,0.000000,0.087156 -334,0.996195,0.000000,0.000000,0.087156 -335,0.996195,0.000000,0.000000,0.087156 -336,0.996195,0.000000,0.000000,0.087156 -337,0.996195,0.000000,0.000000,0.087156 -338,0.996195,0.000000,0.000000,0.087156 -339,0.996195,0.000000,0.000000,0.087156 -340,0.996195,0.000000,0.000000,0.087156 -341,0.996195,0.000000,0.000000,0.087156 -342,0.996195,0.000000,0.000000,0.087156 -343,0.996195,0.000000,0.000000,0.087156 -344,0.996195,0.000000,0.000000,0.087156 -345,0.996195,0.000000,0.000000,0.087156 -346,0.996195,0.000000,0.000000,0.087156 -347,0.996195,0.000000,0.000000,0.087156 -348,0.996195,0.000000,0.000000,0.087156 -349,0.996195,0.000000,0.000000,0.087156 -350,0.996195,0.000000,0.000000,0.087156 -351,0.996195,0.000000,0.000000,0.087156 -352,0.996195,0.000000,0.000000,0.087156 -353,0.996195,0.000000,0.000000,0.087156 -354,0.996195,0.000000,0.000000,0.087156 -355,0.996195,0.000000,0.000000,0.087156 -356,0.996195,0.000000,0.000000,0.087156 -357,0.996195,0.000000,0.000000,0.087156 -358,0.996195,0.000000,0.000000,0.087156 -359,0.996195,0.000000,0.000000,0.087156 -360,0.996195,0.000000,0.000000,0.087156 -361,0.996195,0.000000,0.000000,0.087156 -362,0.996195,0.000000,0.000000,0.087156 -363,0.996195,0.000000,0.000000,0.087156 -364,0.996195,0.000000,0.000000,0.087156 -365,0.996195,0.000000,0.000000,0.087156 -366,0.996195,0.000000,0.000000,0.087156 -367,0.996195,0.000000,0.000000,0.087156 -368,0.996195,0.000000,0.000000,0.087156 -369,0.996195,0.000000,0.000000,0.087156 -370,0.996195,0.000000,0.000000,0.087156 -371,0.996195,0.000000,0.000000,0.087156 -372,0.996195,0.000000,0.000000,0.087156 -373,0.996195,0.000000,0.000000,0.087156 -374,0.996195,0.000000,0.000000,0.087156 -375,0.996195,0.000000,0.000000,0.087156 -376,0.996195,0.000000,0.000000,0.087156 -377,0.996195,0.000000,0.000000,0.087156 -378,0.996195,0.000000,0.000000,0.087156 -379,0.996195,0.000000,0.000000,0.087156 -380,0.996195,0.000000,0.000000,0.087156 -381,0.996195,0.000000,0.000000,0.087156 -382,0.996195,0.000000,0.000000,0.087156 -383,0.996195,0.000000,0.000000,0.087156 -384,0.996195,0.000000,0.000000,0.087156 -385,0.996195,0.000000,0.000000,0.087156 -386,0.996195,0.000000,0.000000,0.087156 -387,0.996195,0.000000,0.000000,0.087156 -388,0.996195,0.000000,0.000000,0.087156 -389,0.996195,0.000000,0.000000,0.087156 -390,0.996195,0.000000,0.000000,0.087156 -391,0.996195,0.000000,0.000000,0.087156 -392,0.996195,0.000000,0.000000,0.087156 -393,0.996195,0.000000,0.000000,0.087156 -394,0.996195,0.000000,0.000000,0.087156 -395,0.996195,0.000000,0.000000,0.087156 -396,0.996195,0.000000,0.000000,0.087156 -397,0.996195,0.000000,0.000000,0.087156 -398,0.996195,0.000000,0.000000,0.087156 -399,0.996195,0.000000,0.000000,0.087156 -400,0.996195,0.000000,0.000000,0.087156 -401,0.996195,0.000000,0.000000,0.087156 -402,0.996195,0.000000,0.000000,0.087156 -403,0.996195,0.000000,0.000000,0.087156 -404,0.996195,0.000000,0.000000,0.087156 -405,0.996195,0.000000,0.000000,0.087156 -406,0.996195,0.000000,0.000000,0.087156 -407,0.996195,0.000000,0.000000,0.087156 -408,0.996195,0.000000,0.000000,0.087156 -409,0.996195,0.000000,0.000000,0.087156 -410,0.996195,0.000000,0.000000,0.087156 -411,0.996195,0.000000,0.000000,0.087156 -412,0.996195,0.000000,0.000000,0.087156 -413,0.996195,0.000000,0.000000,0.087156 -414,0.996195,0.000000,0.000000,0.087156 -415,0.996195,0.000000,0.000000,0.087156 -416,0.996195,0.000000,0.000000,0.087156 -417,0.996195,0.000000,0.000000,0.087156 -418,0.996195,0.000000,0.000000,0.087156 -419,0.996195,0.000000,0.000000,0.087156 -420,0.996195,0.000000,0.000000,0.087156 -421,0.996195,0.000000,0.000000,0.087156 -422,0.996195,0.000000,0.000000,0.087156 -423,0.996195,0.000000,0.000000,0.087156 -424,0.996195,0.000000,0.000000,0.087156 -425,0.996195,0.000000,0.000000,0.087156 -426,0.996195,0.000000,0.000000,0.087156 -427,0.996195,0.000000,0.000000,0.087156 -428,0.996195,0.000000,0.000000,0.087156 -429,0.996195,0.000000,0.000000,0.087156 -430,0.996195,0.000000,0.000000,0.087156 -431,0.996195,0.000000,0.000000,0.087156 -432,0.996195,0.000000,0.000000,0.087156 -433,0.996195,0.000000,0.000000,0.087156 -434,0.996195,0.000000,0.000000,0.087156 -435,0.996195,0.000000,0.000000,0.087156 -436,0.996195,0.000000,0.000000,0.087156 -437,0.996195,0.000000,0.000000,0.087156 -438,0.996195,0.000000,0.000000,0.087156 -439,0.996195,0.000000,0.000000,0.087156 -440,0.996195,0.000000,0.000000,0.087156 -441,0.996195,0.000000,0.000000,0.087156 -442,0.996195,0.000000,0.000000,0.087156 -443,0.996195,0.000000,0.000000,0.087156 -444,0.996195,0.000000,0.000000,0.087156 -445,0.996195,0.000000,0.000000,0.087156 -446,0.996195,0.000000,0.000000,0.087156 -447,0.996195,0.000000,0.000000,0.087156 -448,0.996195,0.000000,0.000000,0.087156 -449,0.996195,0.000000,0.000000,0.087156 -450,0.996195,0.000000,0.000000,0.087156 -451,0.996195,0.000000,0.000000,0.087156 -452,0.996195,0.000000,0.000000,0.087156 -453,0.996195,0.000000,0.000000,0.087156 -454,0.996195,0.000000,0.000000,0.087156 -455,0.996195,0.000000,0.000000,0.087156 -456,0.996195,0.000000,0.000000,0.087156 -457,0.996195,0.000000,0.000000,0.087156 -458,0.996195,0.000000,0.000000,0.087156 -459,0.996195,0.000000,0.000000,0.087156 -460,0.996195,0.000000,0.000000,0.087156 -461,0.996195,0.000000,0.000000,0.087156 -462,0.996195,0.000000,0.000000,0.087156 -463,0.996195,0.000000,0.000000,0.087156 -464,0.996195,0.000000,0.000000,0.087156 -465,0.996195,0.000000,0.000000,0.087156 -466,0.996195,0.000000,0.000000,0.087156 -467,0.996195,0.000000,0.000000,0.087156 -468,0.996195,0.000000,0.000000,0.087156 -469,0.996195,0.000000,0.000000,0.087156 -470,0.996195,0.000000,0.000000,0.087156 -471,0.996195,0.000000,0.000000,0.087156 -472,0.996195,0.000000,0.000000,0.087156 -473,0.996195,0.000000,0.000000,0.087156 -474,0.996195,0.000000,0.000000,0.087156 -475,0.996195,0.000000,0.000000,0.087156 -476,0.996195,0.000000,0.000000,0.087156 -477,0.996195,0.000000,0.000000,0.087156 -478,0.996195,0.000000,0.000000,0.087156 -479,0.996195,0.000000,0.000000,0.087156 -480,0.996195,0.000000,0.000000,0.087156 -481,0.996195,0.000000,0.000000,0.087156 -482,0.996195,0.000000,0.000000,0.087156 -483,0.996195,0.000000,0.000000,0.087156 -484,0.996195,0.000000,0.000000,0.087156 -485,0.996195,0.000000,0.000000,0.087156 -486,0.996195,0.000000,0.000000,0.087156 -487,0.996195,0.000000,0.000000,0.087156 -488,0.996195,0.000000,0.000000,0.087156 -489,0.996195,0.000000,0.000000,0.087156 -490,0.996195,0.000000,0.000000,0.087156 -491,0.996195,0.000000,0.000000,0.087156 -492,0.996195,0.000000,0.000000,0.087156 -493,0.996195,0.000000,0.000000,0.087156 -494,0.996195,0.000000,0.000000,0.087156 -495,0.996195,0.000000,0.000000,0.087156 -496,0.996195,0.000000,0.000000,0.087156 -497,0.996195,0.000000,0.000000,0.087156 -498,0.996195,0.000000,0.000000,0.087156 -499,0.996195,0.000000,0.000000,0.087156 -500,0.996195,0.000000,0.000000,0.087156 -501,0.996195,0.000000,0.000000,0.087156 -502,0.996195,0.000000,0.000000,0.087156 -503,0.996195,0.000000,0.000000,0.087156 -504,0.996195,0.000000,0.000000,0.087156 -505,0.996195,0.000000,0.000000,0.087156 -506,0.996195,0.000000,0.000000,0.087156 -507,0.996195,0.000000,0.000000,0.087156 -508,0.996195,0.000000,0.000000,0.087156 -509,0.996195,0.000000,0.000000,0.087156 -510,0.996195,0.000000,0.000000,0.087156 -511,0.996195,0.000000,0.000000,0.087156 -512,0.996195,0.000000,0.000000,0.087156 -513,0.996195,0.000000,0.000000,0.087156 -514,0.996195,0.000000,0.000000,0.087156 -515,0.996195,0.000000,0.000000,0.087156 -516,0.996195,0.000000,0.000000,0.087156 -517,0.996195,0.000000,0.000000,0.087156 -518,0.996195,0.000000,0.000000,0.087156 -519,0.996195,0.000000,0.000000,0.087156 -520,0.996195,0.000000,0.000000,0.087156 -521,0.996195,0.000000,0.000000,0.087156 -522,0.996195,0.000000,0.000000,0.087156 -523,0.996195,0.000000,0.000000,0.087156 -524,0.996195,0.000000,0.000000,0.087156 -525,0.996195,0.000000,0.000000,0.087156 -526,0.996195,0.000000,0.000000,0.087156 -527,0.996195,0.000000,0.000000,0.087156 -528,0.996195,0.000000,0.000000,0.087156 -529,0.996195,0.000000,0.000000,0.087156 -530,0.996195,0.000000,0.000000,0.087156 -531,0.996195,0.000000,0.000000,0.087156 -532,0.996195,0.000000,0.000000,0.087156 -533,0.996195,0.000000,0.000000,0.087156 -534,0.996195,0.000000,0.000000,0.087156 -535,0.996195,0.000000,0.000000,0.087156 -536,0.996195,0.000000,0.000000,0.087156 -537,0.996195,0.000000,0.000000,0.087156 -538,0.996195,0.000000,0.000000,0.087156 -539,0.996195,0.000000,0.000000,0.087156 -540,0.996195,0.000000,0.000000,0.087156 -541,0.996195,0.000000,0.000000,0.087156 -542,0.996195,0.000000,0.000000,0.087156 -543,0.996195,0.000000,0.000000,0.087156 -544,0.996195,0.000000,0.000000,0.087156 -545,0.996195,0.000000,0.000000,0.087156 -546,0.996195,0.000000,0.000000,0.087156 -547,0.996195,0.000000,0.000000,0.087156 -548,0.996195,0.000000,0.000000,0.087156 -549,0.996195,0.000000,0.000000,0.087156 -550,0.996195,0.000000,0.000000,0.087156 -551,0.996195,0.000000,0.000000,0.087156 -552,0.996195,0.000000,0.000000,0.087156 -553,0.996195,0.000000,0.000000,0.087156 -554,0.996195,0.000000,0.000000,0.087156 -555,0.996195,0.000000,0.000000,0.087156 -556,0.996195,0.000000,0.000000,0.087156 -557,0.996195,0.000000,0.000000,0.087156 -558,0.996195,0.000000,0.000000,0.087156 -559,0.996195,0.000000,0.000000,0.087156 -560,0.996195,0.000000,0.000000,0.087156 -561,0.996195,0.000000,0.000000,0.087156 -562,0.996195,0.000000,0.000000,0.087156 -563,0.996195,0.000000,0.000000,0.087156 -564,0.996195,0.000000,0.000000,0.087156 -565,0.996195,0.000000,0.000000,0.087156 -566,0.996195,0.000000,0.000000,0.087156 -567,0.996195,0.000000,0.000000,0.087156 -568,0.996195,0.000000,0.000000,0.087156 -569,0.996195,0.000000,0.000000,0.087156 -570,0.996195,0.000000,0.000000,0.087156 -571,0.996195,0.000000,0.000000,0.087156 -572,0.996195,0.000000,0.000000,0.087156 -573,0.996195,0.000000,0.000000,0.087156 -574,0.996195,0.000000,0.000000,0.087156 -575,0.996195,0.000000,0.000000,0.087156 -576,0.996195,0.000000,0.000000,0.087156 -577,0.996195,0.000000,0.000000,0.087156 -578,0.996195,0.000000,0.000000,0.087156 -579,0.996195,0.000000,0.000000,0.087156 -580,0.996195,0.000000,0.000000,0.087156 -581,0.996195,0.000000,0.000000,0.087156 -582,0.996195,0.000000,0.000000,0.087156 -583,0.996195,0.000000,0.000000,0.087156 -584,0.996195,0.000000,0.000000,0.087156 -585,0.996195,0.000000,0.000000,0.087156 -586,0.996195,0.000000,0.000000,0.087156 -587,0.996195,0.000000,0.000000,0.087156 -588,0.996195,0.000000,0.000000,0.087156 -589,0.996195,0.000000,0.000000,0.087156 -590,0.996195,0.000000,0.000000,0.087156 -591,0.996195,0.000000,0.000000,0.087156 -592,0.996195,0.000000,0.000000,0.087156 -593,0.996195,0.000000,0.000000,0.087156 -594,0.996195,0.000000,0.000000,0.087156 -595,0.996195,0.000000,0.000000,0.087156 -596,0.996195,0.000000,0.000000,0.087156 -597,0.996195,0.000000,0.000000,0.087156 -598,0.996195,0.000000,0.000000,0.087156 -599,0.996195,0.000000,0.000000,0.087156 -600,0.996195,0.000000,0.000000,0.087156 -601,0.996195,0.000000,0.000000,0.087156 -602,0.996195,0.000000,0.000000,0.087156 -603,0.996195,0.000000,0.000000,0.087156 -604,0.996195,0.000000,0.000000,0.087156 -605,0.996195,0.000000,0.000000,0.087156 -606,0.996195,0.000000,0.000000,0.087156 -607,0.996195,0.000000,0.000000,0.087156 -608,0.996195,0.000000,0.000000,0.087156 -609,0.996195,0.000000,0.000000,0.087156 -610,0.996195,0.000000,0.000000,0.087156 -611,0.996195,0.000000,0.000000,0.087156 -612,0.996195,0.000000,0.000000,0.087156 -613,0.996195,0.000000,0.000000,0.087156 -614,0.996195,0.000000,0.000000,0.087156 -615,0.996195,0.000000,0.000000,0.087156 -616,0.996195,0.000000,0.000000,0.087156 -617,0.996195,0.000000,0.000000,0.087156 -618,0.996195,0.000000,0.000000,0.087156 -619,0.996195,0.000000,0.000000,0.087156 -620,0.996195,0.000000,0.000000,0.087156 -621,0.996195,0.000000,0.000000,0.087156 -622,0.996195,0.000000,0.000000,0.087156 -623,0.996195,0.000000,0.000000,0.087156 -624,0.996195,0.000000,0.000000,0.087156 -625,0.996195,0.000000,0.000000,0.087156 -626,0.996195,0.000000,0.000000,0.087156 -627,0.996195,0.000000,0.000000,0.087156 -628,0.996195,0.000000,0.000000,0.087156 -629,0.996195,0.000000,0.000000,0.087156 -630,0.996195,0.000000,0.000000,0.087156 -631,0.996195,0.000000,0.000000,0.087156 -632,0.996195,0.000000,0.000000,0.087156 -633,0.996195,0.000000,0.000000,0.087156 -634,0.996195,0.000000,0.000000,0.087156 -635,0.996195,0.000000,0.000000,0.087156 -636,0.996195,0.000000,0.000000,0.087156 -637,0.996195,0.000000,0.000000,0.087156 -638,0.996195,0.000000,0.000000,0.087156 -639,0.996195,0.000000,0.000000,0.087156 -640,0.996195,0.000000,0.000000,0.087156 -641,0.996195,0.000000,0.000000,0.087156 -642,0.996195,0.000000,0.000000,0.087156 -643,0.996195,0.000000,0.000000,0.087156 -644,0.996195,0.000000,0.000000,0.087156 -645,0.996195,0.000000,0.000000,0.087156 -646,0.996195,0.000000,0.000000,0.087156 -647,0.996195,0.000000,0.000000,0.087156 -648,0.996195,0.000000,0.000000,0.087156 -649,0.996195,0.000000,0.000000,0.087156 -650,0.996195,0.000000,0.000000,0.087156 -651,0.996195,0.000000,0.000000,0.087156 -652,0.996195,0.000000,0.000000,0.087156 -653,0.996195,0.000000,0.000000,0.087156 -654,0.996195,0.000000,0.000000,0.087156 -655,0.996195,0.000000,0.000000,0.087156 -656,0.996195,0.000000,0.000000,0.087156 -657,0.996195,0.000000,0.000000,0.087156 -658,0.996195,0.000000,0.000000,0.087156 -659,0.996195,0.000000,0.000000,0.087156 -660,0.996195,0.000000,0.000000,0.087156 -661,0.996195,0.000000,0.000000,0.087156 -662,0.996195,0.000000,0.000000,0.087156 -663,0.996195,0.000000,0.000000,0.087156 -664,0.996195,0.000000,0.000000,0.087156 -665,0.996195,0.000000,0.000000,0.087156 -666,0.996195,0.000000,0.000000,0.087156 -667,0.996195,0.000000,0.000000,0.087156 -668,0.996195,0.000000,0.000000,0.087156 -669,0.996195,0.000000,0.000000,0.087156 -670,0.996195,0.000000,0.000000,0.087156 -671,0.996195,0.000000,0.000000,0.087156 -672,0.996195,0.000000,0.000000,0.087156 -673,0.996195,0.000000,0.000000,0.087156 -674,0.996195,0.000000,0.000000,0.087156 -675,0.996195,0.000000,0.000000,0.087156 -676,0.996195,0.000000,0.000000,0.087156 -677,0.996195,0.000000,0.000000,0.087156 -678,0.996195,0.000000,0.000000,0.087156 -679,0.996195,0.000000,0.000000,0.087156 -680,0.996195,0.000000,0.000000,0.087156 -681,0.996195,0.000000,0.000000,0.087156 -682,0.996195,0.000000,0.000000,0.087156 -683,0.996195,0.000000,0.000000,0.087156 -684,0.996195,0.000000,0.000000,0.087156 -685,0.996195,0.000000,0.000000,0.087156 -686,0.996195,0.000000,0.000000,0.087156 -687,0.996195,0.000000,0.000000,0.087156 -688,0.996195,0.000000,0.000000,0.087156 -689,0.996195,0.000000,0.000000,0.087156 -690,0.996195,0.000000,0.000000,0.087156 -691,0.996195,0.000000,0.000000,0.087156 -692,0.996195,0.000000,0.000000,0.087156 -693,0.996195,0.000000,0.000000,0.087156 -694,0.996195,0.000000,0.000000,0.087156 -695,0.996195,0.000000,0.000000,0.087156 -696,0.996195,0.000000,0.000000,0.087156 -697,0.996195,0.000000,0.000000,0.087156 -698,0.996195,0.000000,0.000000,0.087156 -699,0.996195,0.000000,0.000000,0.087156 -700,0.996195,0.000000,0.000000,0.087156 -701,0.996195,0.000000,0.000000,0.087156 -702,0.996195,0.000000,0.000000,0.087156 -703,0.996195,0.000000,0.000000,0.087156 -704,0.996195,0.000000,0.000000,0.087156 -705,0.996195,0.000000,0.000000,0.087156 -706,0.996195,0.000000,0.000000,0.087156 -707,0.996195,0.000000,0.000000,0.087156 -708,0.996195,0.000000,0.000000,0.087156 -709,0.996195,0.000000,0.000000,0.087156 -710,0.996195,0.000000,0.000000,0.087156 -711,0.996195,0.000000,0.000000,0.087156 -712,0.996195,0.000000,0.000000,0.087156 -713,0.996195,0.000000,0.000000,0.087156 -714,0.996195,0.000000,0.000000,0.087156 -715,0.996195,0.000000,0.000000,0.087156 -716,0.996195,0.000000,0.000000,0.087156 -717,0.996195,0.000000,0.000000,0.087156 -718,0.996195,0.000000,0.000000,0.087156 -719,0.996195,0.000000,0.000000,0.087156 -720,0.996195,0.000000,0.000000,0.087156 -721,0.996195,0.000000,0.000000,0.087156 -722,0.996195,0.000000,0.000000,0.087156 -723,0.996195,0.000000,0.000000,0.087156 -724,0.996195,0.000000,0.000000,0.087156 -725,0.996195,0.000000,0.000000,0.087156 -726,0.996195,0.000000,0.000000,0.087156 -727,0.996195,0.000000,0.000000,0.087156 -728,0.996195,0.000000,0.000000,0.087156 -729,0.996195,0.000000,0.000000,0.087156 -730,0.996195,0.000000,0.000000,0.087156 -731,0.996195,0.000000,0.000000,0.087156 -732,0.996195,0.000000,0.000000,0.087156 -733,0.996195,0.000000,0.000000,0.087156 -734,0.996195,0.000000,0.000000,0.087156 -735,0.996195,0.000000,0.000000,0.087156 -736,0.996195,0.000000,0.000000,0.087156 -737,0.996195,0.000000,0.000000,0.087156 -738,0.996195,0.000000,0.000000,0.087156 -739,0.996195,0.000000,0.000000,0.087156 -740,0.996195,0.000000,0.000000,0.087156 -741,0.996195,0.000000,0.000000,0.087156 -742,0.996195,0.000000,0.000000,0.087156 -743,0.996195,0.000000,0.000000,0.087156 -744,0.996195,0.000000,0.000000,0.087156 -745,0.996195,0.000000,0.000000,0.087156 -746,0.996195,0.000000,0.000000,0.087156 -747,0.996195,0.000000,0.000000,0.087156 -748,0.996195,0.000000,0.000000,0.087156 -749,0.996195,0.000000,0.000000,0.087156 -750,0.996195,0.000000,0.000000,0.087156 -751,0.996195,0.000000,0.000000,0.087156 -752,0.996195,0.000000,0.000000,0.087156 -753,0.996195,0.000000,0.000000,0.087156 -754,0.996195,0.000000,0.000000,0.087156 -755,0.996195,0.000000,0.000000,0.087156 -756,0.996195,0.000000,0.000000,0.087156 -757,0.996195,0.000000,0.000000,0.087156 -758,0.996195,0.000000,0.000000,0.087156 -759,0.996195,0.000000,0.000000,0.087156 -760,0.996195,0.000000,0.000000,0.087156 -761,0.996195,0.000000,0.000000,0.087156 -762,0.996195,0.000000,0.000000,0.087156 -763,0.996195,0.000000,0.000000,0.087156 -764,0.996195,0.000000,0.000000,0.087156 -765,0.996195,0.000000,0.000000,0.087156 -766,0.996195,0.000000,0.000000,0.087156 -767,0.996195,0.000000,0.000000,0.087156 -768,0.996195,0.000000,0.000000,0.087156 -769,0.996195,0.000000,0.000000,0.087156 -770,0.996195,0.000000,0.000000,0.087156 -771,0.996195,0.000000,0.000000,0.087156 -772,0.996195,0.000000,0.000000,0.087156 -773,0.996195,0.000000,0.000000,0.087156 -774,0.996195,0.000000,0.000000,0.087156 -775,0.996195,0.000000,0.000000,0.087156 -776,0.996195,0.000000,0.000000,0.087156 -777,0.996195,0.000000,0.000000,0.087156 -778,0.996195,0.000000,0.000000,0.087156 -779,0.996195,0.000000,0.000000,0.087156 -780,0.996195,0.000000,0.000000,0.087156 -781,0.996195,0.000000,0.000000,0.087156 -782,0.996195,0.000000,0.000000,0.087156 -783,0.996195,0.000000,0.000000,0.087156 -784,0.996195,0.000000,0.000000,0.087156 -785,0.996195,0.000000,0.000000,0.087156 -786,0.996195,0.000000,0.000000,0.087156 -787,0.996195,0.000000,0.000000,0.087156 -788,0.996195,0.000000,0.000000,0.087156 -789,0.996195,0.000000,0.000000,0.087156 -790,0.996195,0.000000,0.000000,0.087156 -791,0.996195,0.000000,0.000000,0.087156 -792,0.996195,0.000000,0.000000,0.087156 -793,0.996195,0.000000,0.000000,0.087156 -794,0.996195,0.000000,0.000000,0.087156 -795,0.996195,0.000000,0.000000,0.087156 -796,0.996195,0.000000,0.000000,0.087156 -797,0.996195,0.000000,0.000000,0.087156 -798,0.996195,0.000000,0.000000,0.087156 -799,0.996195,0.000000,0.000000,0.087156 -800,0.996195,0.000000,0.000000,0.087156 -801,0.995989,0.000000,0.000000,0.089474 -802,0.995778,0.000000,0.000000,0.091791 -803,0.995562,0.000000,0.000000,0.094108 -804,0.995340,0.000000,0.000000,0.096425 -805,0.995113,0.000000,0.000000,0.098741 -806,0.994881,0.000000,0.000000,0.101056 -807,0.994643,0.000000,0.000000,0.103371 -808,0.994400,0.000000,0.000000,0.105686 -809,0.994151,0.000000,0.000000,0.107999 -810,0.993897,0.000000,0.000000,0.110313 -811,0.993638,0.000000,0.000000,0.112625 -812,0.993373,0.000000,0.000000,0.114937 -813,0.993103,0.000000,0.000000,0.117249 -814,0.992827,0.000000,0.000000,0.119559 -815,0.992546,0.000000,0.000000,0.121869 -816,0.992260,0.000000,0.000000,0.124179 -817,0.991968,0.000000,0.000000,0.126488 -818,0.991671,0.000000,0.000000,0.128796 -819,0.991369,0.000000,0.000000,0.131103 -820,0.991061,0.000000,0.000000,0.133410 -821,0.990748,0.000000,0.000000,0.135716 -822,0.990429,0.000000,0.000000,0.138021 -823,0.990105,0.000000,0.000000,0.140325 -824,0.989776,0.000000,0.000000,0.142629 -825,0.989442,0.000000,0.000000,0.144932 -826,0.989102,0.000000,0.000000,0.147234 -827,0.988756,0.000000,0.000000,0.149535 -828,0.988406,0.000000,0.000000,0.151836 -829,0.988050,0.000000,0.000000,0.154136 -830,0.987688,0.000000,0.000000,0.156434 -831,0.987322,0.000000,0.000000,0.158732 -832,0.986950,0.000000,0.000000,0.161030 -833,0.986572,0.000000,0.000000,0.163326 -834,0.986189,0.000000,0.000000,0.165621 -835,0.985801,0.000000,0.000000,0.167916 -836,0.985408,0.000000,0.000000,0.170209 -837,0.985009,0.000000,0.000000,0.172502 -838,0.984605,0.000000,0.000000,0.174794 -839,0.984196,0.000000,0.000000,0.177085 -840,0.983781,0.000000,0.000000,0.179375 -841,0.983361,0.000000,0.000000,0.181663 -842,0.982935,0.000000,0.000000,0.183951 -843,0.982505,0.000000,0.000000,0.186238 -844,0.982069,0.000000,0.000000,0.188524 -845,0.981627,0.000000,0.000000,0.190809 -846,0.981180,0.000000,0.000000,0.193093 -847,0.980728,0.000000,0.000000,0.195376 -848,0.980271,0.000000,0.000000,0.197657 -849,0.979809,0.000000,0.000000,0.199938 -850,0.979341,0.000000,0.000000,0.202218 -851,0.978867,0.000000,0.000000,0.204496 -852,0.978389,0.000000,0.000000,0.206773 -853,0.977905,0.000000,0.000000,0.209050 -854,0.977416,0.000000,0.000000,0.211325 -855,0.976921,0.000000,0.000000,0.213599 -856,0.976422,0.000000,0.000000,0.215872 -857,0.975917,0.000000,0.000000,0.218143 -858,0.975406,0.000000,0.000000,0.220414 -859,0.974891,0.000000,0.000000,0.222683 -860,0.974370,0.000000,0.000000,0.224951 -861,0.973844,0.000000,0.000000,0.227218 -862,0.973313,0.000000,0.000000,0.229484 -863,0.972776,0.000000,0.000000,0.231748 -864,0.972234,0.000000,0.000000,0.234011 -865,0.971687,0.000000,0.000000,0.236273 -866,0.971134,0.000000,0.000000,0.238533 -867,0.970577,0.000000,0.000000,0.240793 -868,0.970014,0.000000,0.000000,0.243051 -869,0.969445,0.000000,0.000000,0.245307 -870,0.968872,0.000000,0.000000,0.247563 -871,0.968293,0.000000,0.000000,0.249817 -872,0.967709,0.000000,0.000000,0.252069 -873,0.967120,0.000000,0.000000,0.254321 -874,0.966526,0.000000,0.000000,0.256571 -875,0.965926,0.000000,0.000000,0.258819 -876,0.965321,0.000000,0.000000,0.261066 -877,0.964711,0.000000,0.000000,0.263312 -878,0.964095,0.000000,0.000000,0.265556 -879,0.963475,0.000000,0.000000,0.267799 -880,0.962849,0.000000,0.000000,0.270040 -881,0.962218,0.000000,0.000000,0.272280 -882,0.961582,0.000000,0.000000,0.274519 -883,0.960940,0.000000,0.000000,0.276756 -884,0.960294,0.000000,0.000000,0.278991 -885,0.959642,0.000000,0.000000,0.281225 -886,0.958985,0.000000,0.000000,0.283457 -887,0.958323,0.000000,0.000000,0.285688 -888,0.957655,0.000000,0.000000,0.287918 -889,0.956983,0.000000,0.000000,0.290145 -890,0.956305,0.000000,0.000000,0.292372 -891,0.955622,0.000000,0.000000,0.294596 -892,0.954934,0.000000,0.000000,0.296819 -893,0.954240,0.000000,0.000000,0.299041 -894,0.953542,0.000000,0.000000,0.301261 -895,0.952838,0.000000,0.000000,0.303479 -896,0.952129,0.000000,0.000000,0.305695 -897,0.951415,0.000000,0.000000,0.307910 -898,0.950696,0.000000,0.000000,0.310123 -899,0.949972,0.000000,0.000000,0.312335 -900,0.949243,0.000000,0.000000,0.314545 -901,0.948508,0.000000,0.000000,0.316753 -902,0.947768,0.000000,0.000000,0.318959 -903,0.947024,0.000000,0.000000,0.321164 -904,0.946274,0.000000,0.000000,0.323367 -905,0.945519,0.000000,0.000000,0.325568 -906,0.944758,0.000000,0.000000,0.327768 -907,0.943993,0.000000,0.000000,0.329965 -908,0.943223,0.000000,0.000000,0.332161 -909,0.942447,0.000000,0.000000,0.334355 -910,0.941667,0.000000,0.000000,0.336547 -911,0.940881,0.000000,0.000000,0.338738 -912,0.940090,0.000000,0.000000,0.340927 -913,0.939294,0.000000,0.000000,0.343113 -914,0.938493,0.000000,0.000000,0.345298 -915,0.937687,0.000000,0.000000,0.347481 -916,0.936876,0.000000,0.000000,0.349662 -917,0.936060,0.000000,0.000000,0.351842 -918,0.935238,0.000000,0.000000,0.354019 -919,0.934412,0.000000,0.000000,0.356194 -920,0.933580,0.000000,0.000000,0.358368 -921,0.932744,0.000000,0.000000,0.360540 -922,0.931902,0.000000,0.000000,0.362709 -923,0.931056,0.000000,0.000000,0.364877 -924,0.930204,0.000000,0.000000,0.367042 -925,0.929348,0.000000,0.000000,0.369206 -926,0.928486,0.000000,0.000000,0.371368 -927,0.927619,0.000000,0.000000,0.373528 -928,0.926747,0.000000,0.000000,0.375685 -929,0.925871,0.000000,0.000000,0.377841 -930,0.924989,0.000000,0.000000,0.379994 -931,0.924102,0.000000,0.000000,0.382146 -932,0.923210,0.000000,0.000000,0.384295 -933,0.922313,0.000000,0.000000,0.386443 -934,0.921412,0.000000,0.000000,0.388588 -935,0.920505,0.000000,0.000000,0.390731 -936,0.919593,0.000000,0.000000,0.392872 -937,0.918676,0.000000,0.000000,0.395011 -938,0.917755,0.000000,0.000000,0.397148 -939,0.916828,0.000000,0.000000,0.399283 -940,0.915896,0.000000,0.000000,0.401415 -941,0.914960,0.000000,0.000000,0.403545 -942,0.914018,0.000000,0.000000,0.405673 -943,0.913072,0.000000,0.000000,0.407799 -944,0.912120,0.000000,0.000000,0.409923 -945,0.911164,0.000000,0.000000,0.412045 -946,0.910202,0.000000,0.000000,0.414164 -947,0.909236,0.000000,0.000000,0.416281 -948,0.908265,0.000000,0.000000,0.418396 -949,0.907289,0.000000,0.000000,0.420508 -950,0.906308,0.000000,0.000000,0.422618 -951,0.905322,0.000000,0.000000,0.424726 -952,0.904331,0.000000,0.000000,0.426832 -953,0.903335,0.000000,0.000000,0.428935 -954,0.902335,0.000000,0.000000,0.431036 -955,0.901329,0.000000,0.000000,0.433135 -956,0.900319,0.000000,0.000000,0.435231 -957,0.899304,0.000000,0.000000,0.437325 -958,0.898283,0.000000,0.000000,0.439417 -959,0.897258,0.000000,0.000000,0.441506 -960,0.896229,0.000000,0.000000,0.443593 -961,0.895194,0.000000,0.000000,0.445677 -962,0.894154,0.000000,0.000000,0.447759 -963,0.893110,0.000000,0.000000,0.449839 -964,0.892061,0.000000,0.000000,0.451916 -965,0.891007,0.000000,0.000000,0.453990 -966,0.889948,0.000000,0.000000,0.456063 -967,0.888884,0.000000,0.000000,0.458132 -968,0.887815,0.000000,0.000000,0.460200 -969,0.886742,0.000000,0.000000,0.462265 -970,0.885664,0.000000,0.000000,0.464327 -971,0.884581,0.000000,0.000000,0.466387 -972,0.883493,0.000000,0.000000,0.468444 -973,0.882401,0.000000,0.000000,0.470499 -974,0.881303,0.000000,0.000000,0.472551 -975,0.880201,0.000000,0.000000,0.474600 -976,0.879095,0.000000,0.000000,0.476647 -977,0.877983,0.000000,0.000000,0.478692 -978,0.876867,0.000000,0.000000,0.480734 -979,0.875746,0.000000,0.000000,0.482773 -980,0.874620,0.000000,0.000000,0.484810 -981,0.873489,0.000000,0.000000,0.486844 -982,0.872354,0.000000,0.000000,0.488875 -983,0.871214,0.000000,0.000000,0.490904 -984,0.870069,0.000000,0.000000,0.492930 -985,0.868920,0.000000,0.000000,0.494953 -986,0.867765,0.000000,0.000000,0.496974 -987,0.866607,0.000000,0.000000,0.498992 -988,0.865443,0.000000,0.000000,0.501007 -989,0.864275,0.000000,0.000000,0.503020 -990,0.863102,0.000000,0.000000,0.505030 -991,0.861924,0.000000,0.000000,0.507037 -992,0.860742,0.000000,0.000000,0.509041 -993,0.859555,0.000000,0.000000,0.511043 -994,0.858364,0.000000,0.000000,0.513042 -995,0.857167,0.000000,0.000000,0.515038 -996,0.855966,0.000000,0.000000,0.517031 -997,0.854761,0.000000,0.000000,0.519022 -998,0.853551,0.000000,0.000000,0.521010 -999,0.852336,0.000000,0.000000,0.522995 -1000,0.851117,0.000000,0.000000,0.524977 -1001,0.849893,0.000000,0.000000,0.526956 -1002,0.848664,0.000000,0.000000,0.528932 -1003,0.847431,0.000000,0.000000,0.530906 -1004,0.846193,0.000000,0.000000,0.532876 -1005,0.844951,0.000000,0.000000,0.534844 -1006,0.843704,0.000000,0.000000,0.536809 -1007,0.842452,0.000000,0.000000,0.538771 -1008,0.841196,0.000000,0.000000,0.540730 -1009,0.839936,0.000000,0.000000,0.542686 -1010,0.838671,0.000000,0.000000,0.544639 -1011,0.837401,0.000000,0.000000,0.546589 -1012,0.836127,0.000000,0.000000,0.548536 -1013,0.834848,0.000000,0.000000,0.550481 -1014,0.833565,0.000000,0.000000,0.552422 -1015,0.832277,0.000000,0.000000,0.554360 -1016,0.830984,0.000000,0.000000,0.556296 -1017,0.829688,0.000000,0.000000,0.558228 -1018,0.828386,0.000000,0.000000,0.560157 -1019,0.827081,0.000000,0.000000,0.562083 -1020,0.825770,0.000000,0.000000,0.564007 -1021,0.824456,0.000000,0.000000,0.565927 -1022,0.823136,0.000000,0.000000,0.567844 -1023,0.821813,0.000000,0.000000,0.569758 -1024,0.820485,0.000000,0.000000,0.571669 -1025,0.819152,0.000000,0.000000,0.573576 -1026,0.817815,0.000000,0.000000,0.575481 -1027,0.816474,0.000000,0.000000,0.577383 -1028,0.815128,0.000000,0.000000,0.579281 -1029,0.813778,0.000000,0.000000,0.581176 -1030,0.812423,0.000000,0.000000,0.583069 -1031,0.811064,0.000000,0.000000,0.584958 -1032,0.809700,0.000000,0.000000,0.586844 -1033,0.808333,0.000000,0.000000,0.588726 -1034,0.806960,0.000000,0.000000,0.590606 -1035,0.805584,0.000000,0.000000,0.592482 -1036,0.804203,0.000000,0.000000,0.594355 -1037,0.802817,0.000000,0.000000,0.596225 -1038,0.801428,0.000000,0.000000,0.598092 -1039,0.800034,0.000000,0.000000,0.599955 -1040,0.798636,0.000000,0.000000,0.601815 -1041,0.797233,0.000000,0.000000,0.603672 -1042,0.795826,0.000000,0.000000,0.605526 -1043,0.794415,0.000000,0.000000,0.607376 -1044,0.792999,0.000000,0.000000,0.609223 -1045,0.791579,0.000000,0.000000,0.611067 -1046,0.790155,0.000000,0.000000,0.612907 -1047,0.788727,0.000000,0.000000,0.614744 -1048,0.787294,0.000000,0.000000,0.616578 -1049,0.785857,0.000000,0.000000,0.618408 -1050,0.784416,0.000000,0.000000,0.620235 -1051,0.782970,0.000000,0.000000,0.622059 -1052,0.781520,0.000000,0.000000,0.623880 -1053,0.780067,0.000000,0.000000,0.625697 -1054,0.778608,0.000000,0.000000,0.627510 -1055,0.777146,0.000000,0.000000,0.629320 -1056,0.775679,0.000000,0.000000,0.631127 -1057,0.774209,0.000000,0.000000,0.632931 -1058,0.772734,0.000000,0.000000,0.634731 -1059,0.771254,0.000000,0.000000,0.636527 -1060,0.769771,0.000000,0.000000,0.638320 -1061,0.768284,0.000000,0.000000,0.640110 -1062,0.766792,0.000000,0.000000,0.641896 -1063,0.765296,0.000000,0.000000,0.643679 -1064,0.763796,0.000000,0.000000,0.645458 -1065,0.762292,0.000000,0.000000,0.647233 -1066,0.760784,0.000000,0.000000,0.649006 -1067,0.759271,0.000000,0.000000,0.650774 -1068,0.757755,0.000000,0.000000,0.652539 -1069,0.756234,0.000000,0.000000,0.654301 -1070,0.754710,0.000000,0.000000,0.656059 -1071,0.753181,0.000000,0.000000,0.657814 -1072,0.751648,0.000000,0.000000,0.659564 -1073,0.750111,0.000000,0.000000,0.661312 -1074,0.748570,0.000000,0.000000,0.663056 -1075,0.747025,0.000000,0.000000,0.664796 -1076,0.745476,0.000000,0.000000,0.666532 -1077,0.743923,0.000000,0.000000,0.668265 -1078,0.742366,0.000000,0.000000,0.669995 -1079,0.740805,0.000000,0.000000,0.671721 -1080,0.739239,0.000000,0.000000,0.673443 -1081,0.737670,0.000000,0.000000,0.675161 -1082,0.736097,0.000000,0.000000,0.676876 -1083,0.734520,0.000000,0.000000,0.678587 -1084,0.732939,0.000000,0.000000,0.680295 -1085,0.731354,0.000000,0.000000,0.681998 -1086,0.729765,0.000000,0.000000,0.683698 -1087,0.728172,0.000000,0.000000,0.685395 -1088,0.726575,0.000000,0.000000,0.687088 -1089,0.724974,0.000000,0.000000,0.688776 -1090,0.723369,0.000000,0.000000,0.690462 -1091,0.721760,0.000000,0.000000,0.692143 -1092,0.720148,0.000000,0.000000,0.693821 -1093,0.718531,0.000000,0.000000,0.695495 -1094,0.716911,0.000000,0.000000,0.697165 -1095,0.715286,0.000000,0.000000,0.698832 -1096,0.713658,0.000000,0.000000,0.700494 -1097,0.712026,0.000000,0.000000,0.702153 -1098,0.710390,0.000000,0.000000,0.703808 -1099,0.708750,0.000000,0.000000,0.705459 -1100,0.707107,0.000000,0.000000,0.707107 -1101,0.707107,0.000000,0.000000,0.707107 -1102,0.707107,0.000000,0.000000,0.707107 -1103,0.707107,0.000000,0.000000,0.707107 -1104,0.707107,0.000000,0.000000,0.707107 -1105,0.707107,0.000000,0.000000,0.707107 -1106,0.707107,0.000000,0.000000,0.707107 -1107,0.707107,0.000000,0.000000,0.707107 -1108,0.707107,0.000000,0.000000,0.707107 -1109,0.707107,0.000000,0.000000,0.707107 -1110,0.707107,0.000000,0.000000,0.707107 -1111,0.707107,0.000000,0.000000,0.707107 -1112,0.707107,0.000000,0.000000,0.707107 -1113,0.707107,0.000000,0.000000,0.707107 -1114,0.707107,0.000000,0.000000,0.707107 -1115,0.707107,0.000000,0.000000,0.707107 -1116,0.707107,0.000000,0.000000,0.707107 -1117,0.707107,0.000000,0.000000,0.707107 -1118,0.707107,0.000000,0.000000,0.707107 -1119,0.707107,0.000000,0.000000,0.707107 -1120,0.707107,0.000000,0.000000,0.707107 -1121,0.707107,0.000000,0.000000,0.707107 -1122,0.707107,0.000000,0.000000,0.707107 -1123,0.707107,0.000000,0.000000,0.707107 -1124,0.707107,0.000000,0.000000,0.707107 -1125,0.707107,0.000000,0.000000,0.707107 -1126,0.707107,0.000000,0.000000,0.707107 -1127,0.707107,0.000000,0.000000,0.707107 -1128,0.707107,0.000000,0.000000,0.707107 -1129,0.707107,0.000000,0.000000,0.707107 -1130,0.707107,0.000000,0.000000,0.707107 -1131,0.707107,0.000000,0.000000,0.707107 -1132,0.707107,0.000000,0.000000,0.707107 -1133,0.707107,0.000000,0.000000,0.707107 -1134,0.707107,0.000000,0.000000,0.707107 -1135,0.707107,0.000000,0.000000,0.707107 -1136,0.707107,0.000000,0.000000,0.707107 -1137,0.707107,0.000000,0.000000,0.707107 -1138,0.707107,0.000000,0.000000,0.707107 -1139,0.707107,0.000000,0.000000,0.707107 -1140,0.707107,0.000000,0.000000,0.707107 -1141,0.707107,0.000000,0.000000,0.707107 -1142,0.707107,0.000000,0.000000,0.707107 -1143,0.707107,0.000000,0.000000,0.707107 -1144,0.707107,0.000000,0.000000,0.707107 -1145,0.707107,0.000000,0.000000,0.707107 -1146,0.707107,0.000000,0.000000,0.707107 -1147,0.707107,0.000000,0.000000,0.707107 -1148,0.707107,0.000000,0.000000,0.707107 -1149,0.707107,0.000000,0.000000,0.707107 -1150,0.707107,0.000000,0.000000,0.707107 -1151,0.707107,0.000000,0.000000,0.707107 -1152,0.707107,0.000000,0.000000,0.707107 -1153,0.707107,0.000000,0.000000,0.707107 -1154,0.707107,0.000000,0.000000,0.707107 -1155,0.707107,0.000000,0.000000,0.707107 -1156,0.707107,0.000000,0.000000,0.707107 -1157,0.707107,0.000000,0.000000,0.707107 -1158,0.707107,0.000000,0.000000,0.707107 -1159,0.707107,0.000000,0.000000,0.707107 -1160,0.707107,0.000000,0.000000,0.707107 -1161,0.707107,0.000000,0.000000,0.707107 -1162,0.707107,0.000000,0.000000,0.707107 -1163,0.707107,0.000000,0.000000,0.707107 -1164,0.707107,0.000000,0.000000,0.707107 -1165,0.707107,0.000000,0.000000,0.707107 -1166,0.707107,0.000000,0.000000,0.707107 -1167,0.707107,0.000000,0.000000,0.707107 -1168,0.707107,0.000000,0.000000,0.707107 -1169,0.707107,0.000000,0.000000,0.707107 -1170,0.707107,0.000000,0.000000,0.707107 -1171,0.707107,0.000000,0.000000,0.707107 -1172,0.707107,0.000000,0.000000,0.707107 -1173,0.707107,0.000000,0.000000,0.707107 -1174,0.707107,0.000000,0.000000,0.707107 -1175,0.707107,0.000000,0.000000,0.707107 -1176,0.707107,0.000000,0.000000,0.707107 -1177,0.707107,0.000000,0.000000,0.707107 -1178,0.707107,0.000000,0.000000,0.707107 -1179,0.707107,0.000000,0.000000,0.707107 -1180,0.707107,0.000000,0.000000,0.707107 -1181,0.707107,0.000000,0.000000,0.707107 -1182,0.707107,0.000000,0.000000,0.707107 -1183,0.707107,0.000000,0.000000,0.707107 -1184,0.707107,0.000000,0.000000,0.707107 -1185,0.707107,0.000000,0.000000,0.707107 -1186,0.707107,0.000000,0.000000,0.707107 -1187,0.707107,0.000000,0.000000,0.707107 -1188,0.707107,0.000000,0.000000,0.707107 -1189,0.707107,0.000000,0.000000,0.707107 -1190,0.707107,0.000000,0.000000,0.707107 -1191,0.707107,0.000000,0.000000,0.707107 -1192,0.707107,0.000000,0.000000,0.707107 -1193,0.707107,0.000000,0.000000,0.707107 -1194,0.707107,0.000000,0.000000,0.707107 -1195,0.707107,0.000000,0.000000,0.707107 -1196,0.707107,0.000000,0.000000,0.707107 -1197,0.707107,0.000000,0.000000,0.707107 -1198,0.707107,0.000000,0.000000,0.707107 -1199,0.707107,0.000000,0.000000,0.707107 -1200,0.707107,0.000000,0.000000,0.707107 -1201,0.707107,0.000000,0.000000,0.707107 -1202,0.707107,0.000000,0.000000,0.707107 -1203,0.707107,0.000000,0.000000,0.707107 -1204,0.707107,0.000000,0.000000,0.707107 -1205,0.707107,0.000000,0.000000,0.707107 -1206,0.707107,0.000000,0.000000,0.707107 -1207,0.707107,0.000000,0.000000,0.707107 -1208,0.707107,0.000000,0.000000,0.707107 -1209,0.707107,0.000000,0.000000,0.707107 -1210,0.707107,0.000000,0.000000,0.707107 -1211,0.707107,0.000000,0.000000,0.707107 -1212,0.707107,0.000000,0.000000,0.707107 -1213,0.707107,0.000000,0.000000,0.707107 -1214,0.707107,0.000000,0.000000,0.707107 -1215,0.707107,0.000000,0.000000,0.707107 -1216,0.707107,0.000000,0.000000,0.707107 -1217,0.707107,0.000000,0.000000,0.707107 -1218,0.707107,0.000000,0.000000,0.707107 -1219,0.707107,0.000000,0.000000,0.707107 -1220,0.707107,0.000000,0.000000,0.707107 -1221,0.707107,0.000000,0.000000,0.707107 -1222,0.707107,0.000000,0.000000,0.707107 -1223,0.707107,0.000000,0.000000,0.707107 -1224,0.707107,0.000000,0.000000,0.707107 -1225,0.707107,0.000000,0.000000,0.707107 -1226,0.707107,0.000000,0.000000,0.707107 -1227,0.707107,0.000000,0.000000,0.707107 -1228,0.707107,0.000000,0.000000,0.707107 -1229,0.707107,0.000000,0.000000,0.707107 -1230,0.707107,0.000000,0.000000,0.707107 -1231,0.707107,0.000000,0.000000,0.707107 -1232,0.707107,0.000000,0.000000,0.707107 -1233,0.707107,0.000000,0.000000,0.707107 -1234,0.707107,0.000000,0.000000,0.707107 -1235,0.707107,0.000000,0.000000,0.707107 -1236,0.707107,0.000000,0.000000,0.707107 -1237,0.707107,0.000000,0.000000,0.707107 -1238,0.707107,0.000000,0.000000,0.707107 -1239,0.707107,0.000000,0.000000,0.707107 -1240,0.707107,0.000000,0.000000,0.707107 -1241,0.707107,0.000000,0.000000,0.707107 -1242,0.707107,0.000000,0.000000,0.707107 -1243,0.707107,0.000000,0.000000,0.707107 -1244,0.707107,0.000000,0.000000,0.707107 -1245,0.707107,0.000000,0.000000,0.707107 -1246,0.707107,0.000000,0.000000,0.707107 -1247,0.707107,0.000000,0.000000,0.707107 -1248,0.707107,0.000000,0.000000,0.707107 -1249,0.707107,0.000000,0.000000,0.707107 -1250,0.707107,0.000000,0.000000,0.707107 -1251,0.707107,0.000000,0.000000,0.707107 -1252,0.707107,0.000000,0.000000,0.707107 -1253,0.707107,0.000000,0.000000,0.707107 -1254,0.707107,0.000000,0.000000,0.707107 -1255,0.707107,0.000000,0.000000,0.707107 -1256,0.707107,0.000000,0.000000,0.707107 -1257,0.707107,0.000000,0.000000,0.707107 -1258,0.707107,0.000000,0.000000,0.707107 -1259,0.707107,0.000000,0.000000,0.707107 -1260,0.707107,0.000000,0.000000,0.707107 -1261,0.707107,0.000000,0.000000,0.707107 -1262,0.707107,0.000000,0.000000,0.707107 -1263,0.707107,0.000000,0.000000,0.707107 -1264,0.707107,0.000000,0.000000,0.707107 -1265,0.707107,0.000000,0.000000,0.707107 -1266,0.707107,0.000000,0.000000,0.707107 -1267,0.707107,0.000000,0.000000,0.707107 -1268,0.707107,0.000000,0.000000,0.707107 -1269,0.707107,0.000000,0.000000,0.707107 -1270,0.707107,0.000000,0.000000,0.707107 -1271,0.707107,0.000000,0.000000,0.707107 -1272,0.707107,0.000000,0.000000,0.707107 -1273,0.707107,0.000000,0.000000,0.707107 -1274,0.707107,0.000000,0.000000,0.707107 -1275,0.707107,0.000000,0.000000,0.707107 -1276,0.707107,0.000000,0.000000,0.707107 -1277,0.707107,0.000000,0.000000,0.707107 -1278,0.707107,0.000000,0.000000,0.707107 -1279,0.707107,0.000000,0.000000,0.707107 -1280,0.707107,0.000000,0.000000,0.707107 -1281,0.707107,0.000000,0.000000,0.707107 -1282,0.707107,0.000000,0.000000,0.707107 -1283,0.707107,0.000000,0.000000,0.707107 -1284,0.707107,0.000000,0.000000,0.707107 -1285,0.707107,0.000000,0.000000,0.707107 -1286,0.707107,0.000000,0.000000,0.707107 -1287,0.707107,0.000000,0.000000,0.707107 -1288,0.707107,0.000000,0.000000,0.707107 -1289,0.707107,0.000000,0.000000,0.707107 -1290,0.707107,0.000000,0.000000,0.707107 -1291,0.707107,0.000000,0.000000,0.707107 -1292,0.707107,0.000000,0.000000,0.707107 -1293,0.707107,0.000000,0.000000,0.707107 -1294,0.707107,0.000000,0.000000,0.707107 -1295,0.707107,0.000000,0.000000,0.707107 -1296,0.707107,0.000000,0.000000,0.707107 -1297,0.707107,0.000000,0.000000,0.707107 -1298,0.707107,0.000000,0.000000,0.707107 -1299,0.707107,0.000000,0.000000,0.707107 -1300,0.707107,0.000000,0.000000,0.707107 -1301,0.707107,0.000000,0.000000,0.707107 -1302,0.707107,0.000000,0.000000,0.707107 -1303,0.707107,0.000000,0.000000,0.707107 -1304,0.707107,0.000000,0.000000,0.707107 -1305,0.707107,0.000000,0.000000,0.707107 -1306,0.707107,0.000000,0.000000,0.707107 -1307,0.707107,0.000000,0.000000,0.707107 -1308,0.707107,0.000000,0.000000,0.707107 -1309,0.707107,0.000000,0.000000,0.707107 -1310,0.707107,0.000000,0.000000,0.707107 -1311,0.707107,0.000000,0.000000,0.707107 -1312,0.707107,0.000000,0.000000,0.707107 -1313,0.707107,0.000000,0.000000,0.707107 -1314,0.707107,0.000000,0.000000,0.707107 -1315,0.707107,0.000000,0.000000,0.707107 -1316,0.707107,0.000000,0.000000,0.707107 -1317,0.707107,0.000000,0.000000,0.707107 -1318,0.707107,0.000000,0.000000,0.707107 -1319,0.707107,0.000000,0.000000,0.707107 -1320,0.707107,0.000000,0.000000,0.707107 -1321,0.707107,0.000000,0.000000,0.707107 -1322,0.707107,0.000000,0.000000,0.707107 -1323,0.707107,0.000000,0.000000,0.707107 -1324,0.707107,0.000000,0.000000,0.707107 -1325,0.707107,0.000000,0.000000,0.707107 -1326,0.707107,0.000000,0.000000,0.707107 -1327,0.707107,0.000000,0.000000,0.707107 -1328,0.707107,0.000000,0.000000,0.707107 -1329,0.707107,0.000000,0.000000,0.707107 -1330,0.707107,0.000000,0.000000,0.707107 -1331,0.707107,0.000000,0.000000,0.707107 -1332,0.707107,0.000000,0.000000,0.707107 -1333,0.707107,0.000000,0.000000,0.707107 -1334,0.707107,0.000000,0.000000,0.707107 -1335,0.707107,0.000000,0.000000,0.707107 -1336,0.707107,0.000000,0.000000,0.707107 -1337,0.707107,0.000000,0.000000,0.707107 -1338,0.707107,0.000000,0.000000,0.707107 -1339,0.707107,0.000000,0.000000,0.707107 -1340,0.707107,0.000000,0.000000,0.707107 -1341,0.707107,0.000000,0.000000,0.707107 -1342,0.707107,0.000000,0.000000,0.707107 -1343,0.707107,0.000000,0.000000,0.707107 -1344,0.707107,0.000000,0.000000,0.707107 -1345,0.707107,0.000000,0.000000,0.707107 -1346,0.707107,0.000000,0.000000,0.707107 -1347,0.707107,0.000000,0.000000,0.707107 -1348,0.707107,0.000000,0.000000,0.707107 -1349,0.707107,0.000000,0.000000,0.707107 -1350,0.707107,0.000000,0.000000,0.707107 -1351,0.707107,0.000000,0.000000,0.707107 -1352,0.707107,0.000000,0.000000,0.707107 -1353,0.707107,0.000000,0.000000,0.707107 -1354,0.707107,0.000000,0.000000,0.707107 -1355,0.707107,0.000000,0.000000,0.707107 -1356,0.707107,0.000000,0.000000,0.707107 -1357,0.707107,0.000000,0.000000,0.707107 -1358,0.707107,0.000000,0.000000,0.707107 -1359,0.707107,0.000000,0.000000,0.707107 -1360,0.707107,0.000000,0.000000,0.707107 -1361,0.707107,0.000000,0.000000,0.707107 -1362,0.707107,0.000000,0.000000,0.707107 -1363,0.707107,0.000000,0.000000,0.707107 -1364,0.707107,0.000000,0.000000,0.707107 -1365,0.707107,0.000000,0.000000,0.707107 -1366,0.707107,0.000000,0.000000,0.707107 -1367,0.707107,0.000000,0.000000,0.707107 -1368,0.707107,0.000000,0.000000,0.707107 -1369,0.707107,0.000000,0.000000,0.707107 -1370,0.707107,0.000000,0.000000,0.707107 -1371,0.707107,0.000000,0.000000,0.707107 -1372,0.707107,0.000000,0.000000,0.707107 -1373,0.707107,0.000000,0.000000,0.707107 -1374,0.707107,0.000000,0.000000,0.707107 -1375,0.707107,0.000000,0.000000,0.707107 -1376,0.707107,0.000000,0.000000,0.707107 -1377,0.707107,0.000000,0.000000,0.707107 -1378,0.707107,0.000000,0.000000,0.707107 -1379,0.707107,0.000000,0.000000,0.707107 -1380,0.707107,0.000000,0.000000,0.707107 -1381,0.707107,0.000000,0.000000,0.707107 -1382,0.707107,0.000000,0.000000,0.707107 -1383,0.707107,0.000000,0.000000,0.707107 -1384,0.707107,0.000000,0.000000,0.707107 -1385,0.707107,0.000000,0.000000,0.707107 -1386,0.707107,0.000000,0.000000,0.707107 -1387,0.707107,0.000000,0.000000,0.707107 -1388,0.707107,0.000000,0.000000,0.707107 -1389,0.707107,0.000000,0.000000,0.707107 -1390,0.707107,0.000000,0.000000,0.707107 -1391,0.707107,0.000000,0.000000,0.707107 -1392,0.707107,0.000000,0.000000,0.707107 -1393,0.707107,0.000000,0.000000,0.707107 -1394,0.707107,0.000000,0.000000,0.707107 -1395,0.707107,0.000000,0.000000,0.707107 -1396,0.707107,0.000000,0.000000,0.707107 -1397,0.707107,0.000000,0.000000,0.707107 -1398,0.707107,0.000000,0.000000,0.707107 -1399,0.707107,0.000000,0.000000,0.707107 -1400,0.707107,0.000000,0.000000,0.707107 -1401,0.707107,0.000000,0.000000,0.707107 -1402,0.707107,0.000000,0.000000,0.707107 -1403,0.707107,0.000000,0.000000,0.707107 -1404,0.707107,0.000000,0.000000,0.707107 -1405,0.707107,0.000000,0.000000,0.707107 -1406,0.707107,0.000000,0.000000,0.707107 -1407,0.707107,0.000000,0.000000,0.707107 -1408,0.707107,0.000000,0.000000,0.707107 -1409,0.707107,0.000000,0.000000,0.707107 -1410,0.707107,0.000000,0.000000,0.707107 -1411,0.707107,0.000000,0.000000,0.707107 -1412,0.707107,0.000000,0.000000,0.707107 -1413,0.707107,0.000000,0.000000,0.707107 -1414,0.707107,0.000000,0.000000,0.707107 -1415,0.707107,0.000000,0.000000,0.707107 -1416,0.707107,0.000000,0.000000,0.707107 -1417,0.707107,0.000000,0.000000,0.707107 -1418,0.707107,0.000000,0.000000,0.707107 -1419,0.707107,0.000000,0.000000,0.707107 -1420,0.707107,0.000000,0.000000,0.707107 -1421,0.707107,0.000000,0.000000,0.707107 -1422,0.707107,0.000000,0.000000,0.707107 -1423,0.707107,0.000000,0.000000,0.707107 -1424,0.707107,0.000000,0.000000,0.707107 -1425,0.707107,0.000000,0.000000,0.707107 -1426,0.707107,0.000000,0.000000,0.707107 -1427,0.707107,0.000000,0.000000,0.707107 -1428,0.707107,0.000000,0.000000,0.707107 -1429,0.707107,0.000000,0.000000,0.707107 -1430,0.707107,0.000000,0.000000,0.707107 -1431,0.707107,0.000000,0.000000,0.707107 -1432,0.707107,0.000000,0.000000,0.707107 -1433,0.707107,0.000000,0.000000,0.707107 -1434,0.707107,0.000000,0.000000,0.707107 -1435,0.707107,0.000000,0.000000,0.707107 -1436,0.707107,0.000000,0.000000,0.707107 -1437,0.707107,0.000000,0.000000,0.707107 -1438,0.707107,0.000000,0.000000,0.707107 -1439,0.707107,0.000000,0.000000,0.707107 -1440,0.707107,0.000000,0.000000,0.707107 -1441,0.707107,0.000000,0.000000,0.707107 -1442,0.707107,0.000000,0.000000,0.707107 -1443,0.707107,0.000000,0.000000,0.707107 -1444,0.707107,0.000000,0.000000,0.707107 -1445,0.707107,0.000000,0.000000,0.707107 -1446,0.707107,0.000000,0.000000,0.707107 -1447,0.707107,0.000000,0.000000,0.707107 -1448,0.707107,0.000000,0.000000,0.707107 -1449,0.707107,0.000000,0.000000,0.707107 -1450,0.707107,0.000000,0.000000,0.707107 -1451,0.707107,0.000000,0.000000,0.707107 -1452,0.707107,0.000000,0.000000,0.707107 -1453,0.707107,0.000000,0.000000,0.707107 -1454,0.707107,0.000000,0.000000,0.707107 -1455,0.707107,0.000000,0.000000,0.707107 -1456,0.707107,0.000000,0.000000,0.707107 -1457,0.707107,0.000000,0.000000,0.707107 -1458,0.707107,0.000000,0.000000,0.707107 -1459,0.707107,0.000000,0.000000,0.707107 -1460,0.707107,0.000000,0.000000,0.707107 -1461,0.707107,0.000000,0.000000,0.707107 -1462,0.707107,0.000000,0.000000,0.707107 -1463,0.707107,0.000000,0.000000,0.707107 -1464,0.707107,0.000000,0.000000,0.707107 -1465,0.707107,0.000000,0.000000,0.707107 -1466,0.707107,0.000000,0.000000,0.707107 -1467,0.707107,0.000000,0.000000,0.707107 -1468,0.707107,0.000000,0.000000,0.707107 -1469,0.707107,0.000000,0.000000,0.707107 -1470,0.707107,0.000000,0.000000,0.707107 -1471,0.707107,0.000000,0.000000,0.707107 -1472,0.707107,0.000000,0.000000,0.707107 -1473,0.707107,0.000000,0.000000,0.707107 -1474,0.707107,0.000000,0.000000,0.707107 -1475,0.707107,0.000000,0.000000,0.707107 -1476,0.707107,0.000000,0.000000,0.707107 -1477,0.707107,0.000000,0.000000,0.707107 -1478,0.707107,0.000000,0.000000,0.707107 -1479,0.707107,0.000000,0.000000,0.707107 -1480,0.707107,0.000000,0.000000,0.707107 -1481,0.707107,0.000000,0.000000,0.707107 -1482,0.707107,0.000000,0.000000,0.707107 -1483,0.707107,0.000000,0.000000,0.707107 -1484,0.707107,0.000000,0.000000,0.707107 -1485,0.707107,0.000000,0.000000,0.707107 -1486,0.707107,0.000000,0.000000,0.707107 -1487,0.707107,0.000000,0.000000,0.707107 -1488,0.707107,0.000000,0.000000,0.707107 -1489,0.707107,0.000000,0.000000,0.707107 -1490,0.707107,0.000000,0.000000,0.707107 -1491,0.707107,0.000000,0.000000,0.707107 -1492,0.707107,0.000000,0.000000,0.707107 -1493,0.707107,0.000000,0.000000,0.707107 -1494,0.707107,0.000000,0.000000,0.707107 -1495,0.707107,0.000000,0.000000,0.707107 -1496,0.707107,0.000000,0.000000,0.707107 -1497,0.707107,0.000000,0.000000,0.707107 -1498,0.707107,0.000000,0.000000,0.707107 -1499,0.707107,0.000000,0.000000,0.707107 -1500,0.707107,0.000000,0.000000,0.707107 -1501,0.707107,0.000000,0.000000,0.707107 -1502,0.707107,0.000000,0.000000,0.707107 -1503,0.707107,0.000000,0.000000,0.707107 -1504,0.707107,0.000000,0.000000,0.707107 -1505,0.707107,0.000000,0.000000,0.707107 -1506,0.707107,0.000000,0.000000,0.707107 -1507,0.707107,0.000000,0.000000,0.707107 -1508,0.707107,0.000000,0.000000,0.707107 -1509,0.707107,0.000000,0.000000,0.707107 -1510,0.707107,0.000000,0.000000,0.707107 -1511,0.707107,0.000000,0.000000,0.707107 -1512,0.707107,0.000000,0.000000,0.707107 -1513,0.707107,0.000000,0.000000,0.707107 -1514,0.707107,0.000000,0.000000,0.707107 -1515,0.707107,0.000000,0.000000,0.707107 -1516,0.707107,0.000000,0.000000,0.707107 -1517,0.707107,0.000000,0.000000,0.707107 -1518,0.707107,0.000000,0.000000,0.707107 -1519,0.707107,0.000000,0.000000,0.707107 -1520,0.707107,0.000000,0.000000,0.707107 -1521,0.707107,0.000000,0.000000,0.707107 -1522,0.707107,0.000000,0.000000,0.707107 -1523,0.707107,0.000000,0.000000,0.707107 -1524,0.707107,0.000000,0.000000,0.707107 -1525,0.707107,0.000000,0.000000,0.707107 -1526,0.707107,0.000000,0.000000,0.707107 -1527,0.707107,0.000000,0.000000,0.707107 -1528,0.707107,0.000000,0.000000,0.707107 -1529,0.707107,0.000000,0.000000,0.707107 -1530,0.707107,0.000000,0.000000,0.707107 -1531,0.707107,0.000000,0.000000,0.707107 -1532,0.707107,0.000000,0.000000,0.707107 -1533,0.707107,0.000000,0.000000,0.707107 -1534,0.707107,0.000000,0.000000,0.707107 -1535,0.707107,0.000000,0.000000,0.707107 -1536,0.707107,0.000000,0.000000,0.707107 -1537,0.707107,0.000000,0.000000,0.707107 -1538,0.707107,0.000000,0.000000,0.707107 -1539,0.707107,0.000000,0.000000,0.707107 -1540,0.707107,0.000000,0.000000,0.707107 -1541,0.707107,0.000000,0.000000,0.707107 -1542,0.707107,0.000000,0.000000,0.707107 -1543,0.707107,0.000000,0.000000,0.707107 -1544,0.707107,0.000000,0.000000,0.707107 -1545,0.707107,0.000000,0.000000,0.707107 -1546,0.707107,0.000000,0.000000,0.707107 -1547,0.707107,0.000000,0.000000,0.707107 -1548,0.707107,0.000000,0.000000,0.707107 -1549,0.707107,0.000000,0.000000,0.707107 -1550,0.707107,0.000000,0.000000,0.707107 -1551,0.707107,0.000000,0.000000,0.707107 -1552,0.707107,0.000000,0.000000,0.707107 -1553,0.707107,0.000000,0.000000,0.707107 -1554,0.707107,0.000000,0.000000,0.707107 -1555,0.707107,0.000000,0.000000,0.707107 -1556,0.707107,0.000000,0.000000,0.707107 -1557,0.707107,0.000000,0.000000,0.707107 -1558,0.707107,0.000000,0.000000,0.707107 -1559,0.707107,0.000000,0.000000,0.707107 -1560,0.707107,0.000000,0.000000,0.707107 -1561,0.707107,0.000000,0.000000,0.707107 -1562,0.707107,0.000000,0.000000,0.707107 -1563,0.707107,0.000000,0.000000,0.707107 -1564,0.707107,0.000000,0.000000,0.707107 -1565,0.707107,0.000000,0.000000,0.707107 -1566,0.707107,0.000000,0.000000,0.707107 -1567,0.707107,0.000000,0.000000,0.707107 -1568,0.707107,0.000000,0.000000,0.707107 -1569,0.707107,0.000000,0.000000,0.707107 -1570,0.707107,0.000000,0.000000,0.707107 -1571,0.707107,0.000000,0.000000,0.707107 -1572,0.707107,0.000000,0.000000,0.707107 -1573,0.707107,0.000000,0.000000,0.707107 -1574,0.707107,0.000000,0.000000,0.707107 -1575,0.707107,0.000000,0.000000,0.707107 -1576,0.707107,0.000000,0.000000,0.707107 -1577,0.707107,0.000000,0.000000,0.707107 -1578,0.707107,0.000000,0.000000,0.707107 -1579,0.707107,0.000000,0.000000,0.707107 -1580,0.707107,0.000000,0.000000,0.707107 -1581,0.707107,0.000000,0.000000,0.707107 -1582,0.707107,0.000000,0.000000,0.707107 -1583,0.707107,0.000000,0.000000,0.707107 -1584,0.707107,0.000000,0.000000,0.707107 -1585,0.707107,0.000000,0.000000,0.707107 -1586,0.707107,0.000000,0.000000,0.707107 -1587,0.707107,0.000000,0.000000,0.707107 -1588,0.707107,0.000000,0.000000,0.707107 -1589,0.707107,0.000000,0.000000,0.707107 -1590,0.707107,0.000000,0.000000,0.707107 -1591,0.707107,0.000000,0.000000,0.707107 -1592,0.707107,0.000000,0.000000,0.707107 -1593,0.707107,0.000000,0.000000,0.707107 -1594,0.707107,0.000000,0.000000,0.707107 -1595,0.707107,0.000000,0.000000,0.707107 -1596,0.707107,0.000000,0.000000,0.707107 -1597,0.707107,0.000000,0.000000,0.707107 -1598,0.707107,0.000000,0.000000,0.707107 -1599,0.707107,0.000000,0.000000,0.707107 -1600,0.707107,0.000000,0.000000,0.707107 -1601,0.707107,0.000000,0.000000,0.707107 -1602,0.707107,0.000000,0.000000,0.707107 -1603,0.707107,0.000000,0.000000,0.707107 -1604,0.707107,0.000000,0.000000,0.707107 -1605,0.707107,0.000000,0.000000,0.707107 -1606,0.707107,0.000000,0.000000,0.707107 -1607,0.707107,0.000000,0.000000,0.707107 -1608,0.707107,0.000000,0.000000,0.707107 -1609,0.707107,0.000000,0.000000,0.707107 -1610,0.707107,0.000000,0.000000,0.707107 -1611,0.707107,0.000000,0.000000,0.707107 -1612,0.707107,0.000000,0.000000,0.707107 -1613,0.707107,0.000000,0.000000,0.707107 -1614,0.707107,0.000000,0.000000,0.707107 -1615,0.707107,0.000000,0.000000,0.707107 -1616,0.707107,0.000000,0.000000,0.707107 -1617,0.707107,0.000000,0.000000,0.707107 -1618,0.707107,0.000000,0.000000,0.707107 -1619,0.707107,0.000000,0.000000,0.707107 -1620,0.707107,0.000000,0.000000,0.707107 -1621,0.707107,0.000000,0.000000,0.707107 -1622,0.707107,0.000000,0.000000,0.707107 -1623,0.707107,0.000000,0.000000,0.707107 -1624,0.707107,0.000000,0.000000,0.707107 -1625,0.707107,0.000000,0.000000,0.707107 -1626,0.707107,0.000000,0.000000,0.707107 -1627,0.707107,0.000000,0.000000,0.707107 -1628,0.707107,0.000000,0.000000,0.707107 -1629,0.707107,0.000000,0.000000,0.707107 -1630,0.707107,0.000000,0.000000,0.707107 -1631,0.707107,0.000000,0.000000,0.707107 -1632,0.707107,0.000000,0.000000,0.707107 -1633,0.707107,0.000000,0.000000,0.707107 -1634,0.707107,0.000000,0.000000,0.707107 -1635,0.707107,0.000000,0.000000,0.707107 -1636,0.707107,0.000000,0.000000,0.707107 -1637,0.707107,0.000000,0.000000,0.707107 -1638,0.707107,0.000000,0.000000,0.707107 -1639,0.707107,0.000000,0.000000,0.707107 -1640,0.707107,0.000000,0.000000,0.707107 -1641,0.707107,0.000000,0.000000,0.707107 -1642,0.707107,0.000000,0.000000,0.707107 -1643,0.707107,0.000000,0.000000,0.707107 -1644,0.707107,0.000000,0.000000,0.707107 -1645,0.707107,0.000000,0.000000,0.707107 -1646,0.707107,0.000000,0.000000,0.707107 -1647,0.707107,0.000000,0.000000,0.707107 -1648,0.707107,0.000000,0.000000,0.707107 -1649,0.707107,0.000000,0.000000,0.707107 -1650,0.707107,0.000000,0.000000,0.707107 -1651,0.707107,0.000000,0.000000,0.707107 -1652,0.707107,0.000000,0.000000,0.707107 -1653,0.707107,0.000000,0.000000,0.707107 -1654,0.707107,0.000000,0.000000,0.707107 -1655,0.707107,0.000000,0.000000,0.707107 -1656,0.707107,0.000000,0.000000,0.707107 -1657,0.707107,0.000000,0.000000,0.707107 -1658,0.707107,0.000000,0.000000,0.707107 -1659,0.707107,0.000000,0.000000,0.707107 -1660,0.707107,0.000000,0.000000,0.707107 -1661,0.707107,0.000000,0.000000,0.707107 -1662,0.707107,0.000000,0.000000,0.707107 -1663,0.707107,0.000000,0.000000,0.707107 -1664,0.707107,0.000000,0.000000,0.707107 -1665,0.707107,0.000000,0.000000,0.707107 -1666,0.707107,0.000000,0.000000,0.707107 -1667,0.707107,0.000000,0.000000,0.707107 -1668,0.707107,0.000000,0.000000,0.707107 -1669,0.707107,0.000000,0.000000,0.707107 -1670,0.707107,0.000000,0.000000,0.707107 -1671,0.707107,0.000000,0.000000,0.707107 -1672,0.707107,0.000000,0.000000,0.707107 -1673,0.707107,0.000000,0.000000,0.707107 -1674,0.707107,0.000000,0.000000,0.707107 -1675,0.707107,0.000000,0.000000,0.707107 -1676,0.707107,0.000000,0.000000,0.707107 -1677,0.707107,0.000000,0.000000,0.707107 -1678,0.707107,0.000000,0.000000,0.707107 -1679,0.707107,0.000000,0.000000,0.707107 -1680,0.707107,0.000000,0.000000,0.707107 -1681,0.707107,0.000000,0.000000,0.707107 -1682,0.707107,0.000000,0.000000,0.707107 -1683,0.707107,0.000000,0.000000,0.707107 -1684,0.707107,0.000000,0.000000,0.707107 -1685,0.707107,0.000000,0.000000,0.707107 -1686,0.707107,0.000000,0.000000,0.707107 -1687,0.707107,0.000000,0.000000,0.707107 -1688,0.707107,0.000000,0.000000,0.707107 -1689,0.707107,0.000000,0.000000,0.707107 -1690,0.707107,0.000000,0.000000,0.707107 -1691,0.707107,0.000000,0.000000,0.707107 -1692,0.707107,0.000000,0.000000,0.707107 -1693,0.707107,0.000000,0.000000,0.707107 -1694,0.707107,0.000000,0.000000,0.707107 -1695,0.707107,0.000000,0.000000,0.707107 -1696,0.707107,0.000000,0.000000,0.707107 -1697,0.707107,0.000000,0.000000,0.707107 -1698,0.707107,0.000000,0.000000,0.707107 -1699,0.707107,0.000000,0.000000,0.707107 -1700,0.707107,0.000000,0.000000,0.707107 -1701,0.707107,0.000000,0.000000,0.707107 -1702,0.707107,0.000000,0.000000,0.707107 -1703,0.707107,0.000000,0.000000,0.707107 -1704,0.707107,0.000000,0.000000,0.707107 -1705,0.707107,0.000000,0.000000,0.707107 -1706,0.707107,0.000000,0.000000,0.707107 -1707,0.707107,0.000000,0.000000,0.707107 -1708,0.707107,0.000000,0.000000,0.707107 -1709,0.707107,0.000000,0.000000,0.707107 -1710,0.707107,0.000000,0.000000,0.707107 -1711,0.707107,0.000000,0.000000,0.707107 -1712,0.707107,0.000000,0.000000,0.707107 -1713,0.707107,0.000000,0.000000,0.707107 -1714,0.707107,0.000000,0.000000,0.707107 -1715,0.707107,0.000000,0.000000,0.707107 -1716,0.707107,0.000000,0.000000,0.707107 -1717,0.707107,0.000000,0.000000,0.707107 -1718,0.707107,0.000000,0.000000,0.707107 -1719,0.707107,0.000000,0.000000,0.707107 -1720,0.707107,0.000000,0.000000,0.707107 -1721,0.707107,0.000000,0.000000,0.707107 -1722,0.707107,0.000000,0.000000,0.707107 -1723,0.707107,0.000000,0.000000,0.707107 -1724,0.707107,0.000000,0.000000,0.707107 -1725,0.707107,0.000000,0.000000,0.707107 -1726,0.707107,0.000000,0.000000,0.707107 -1727,0.707107,0.000000,0.000000,0.707107 -1728,0.707107,0.000000,0.000000,0.707107 -1729,0.707107,0.000000,0.000000,0.707107 -1730,0.707107,0.000000,0.000000,0.707107 -1731,0.707107,0.000000,0.000000,0.707107 -1732,0.707107,0.000000,0.000000,0.707107 -1733,0.707107,0.000000,0.000000,0.707107 -1734,0.707107,0.000000,0.000000,0.707107 -1735,0.707107,0.000000,0.000000,0.707107 -1736,0.707107,0.000000,0.000000,0.707107 -1737,0.707107,0.000000,0.000000,0.707107 -1738,0.707107,0.000000,0.000000,0.707107 -1739,0.707107,0.000000,0.000000,0.707107 -1740,0.707107,0.000000,0.000000,0.707107 -1741,0.707107,0.000000,0.000000,0.707107 -1742,0.707107,0.000000,0.000000,0.707107 -1743,0.707107,0.000000,0.000000,0.707107 -1744,0.707107,0.000000,0.000000,0.707107 -1745,0.707107,0.000000,0.000000,0.707107 -1746,0.707107,0.000000,0.000000,0.707107 -1747,0.707107,0.000000,0.000000,0.707107 -1748,0.707107,0.000000,0.000000,0.707107 -1749,0.707107,0.000000,0.000000,0.707107 -1750,0.707107,0.000000,0.000000,0.707107 -1751,0.707107,0.000000,0.000000,0.707107 -1752,0.707107,0.000000,0.000000,0.707107 -1753,0.707107,0.000000,0.000000,0.707107 -1754,0.707107,0.000000,0.000000,0.707107 -1755,0.707107,0.000000,0.000000,0.707107 -1756,0.707107,0.000000,0.000000,0.707107 -1757,0.707107,0.000000,0.000000,0.707107 -1758,0.707107,0.000000,0.000000,0.707107 -1759,0.707107,0.000000,0.000000,0.707107 -1760,0.707107,0.000000,0.000000,0.707107 -1761,0.707107,0.000000,0.000000,0.707107 -1762,0.707107,0.000000,0.000000,0.707107 -1763,0.707107,0.000000,0.000000,0.707107 -1764,0.707107,0.000000,0.000000,0.707107 -1765,0.707107,0.000000,0.000000,0.707107 -1766,0.707107,0.000000,0.000000,0.707107 -1767,0.707107,0.000000,0.000000,0.707107 -1768,0.707107,0.000000,0.000000,0.707107 -1769,0.707107,0.000000,0.000000,0.707107 -1770,0.707107,0.000000,0.000000,0.707107 -1771,0.707107,0.000000,0.000000,0.707107 -1772,0.707107,0.000000,0.000000,0.707107 -1773,0.707107,0.000000,0.000000,0.707107 -1774,0.707107,0.000000,0.000000,0.707107 -1775,0.707107,0.000000,0.000000,0.707107 -1776,0.707107,0.000000,0.000000,0.707107 -1777,0.707107,0.000000,0.000000,0.707107 -1778,0.707107,0.000000,0.000000,0.707107 -1779,0.707107,0.000000,0.000000,0.707107 -1780,0.707107,0.000000,0.000000,0.707107 -1781,0.707107,0.000000,0.000000,0.707107 -1782,0.707107,0.000000,0.000000,0.707107 -1783,0.707107,0.000000,0.000000,0.707107 -1784,0.707107,0.000000,0.000000,0.707107 -1785,0.707107,0.000000,0.000000,0.707107 -1786,0.707107,0.000000,0.000000,0.707107 -1787,0.707107,0.000000,0.000000,0.707107 -1788,0.707107,0.000000,0.000000,0.707107 -1789,0.707107,0.000000,0.000000,0.707107 -1790,0.707107,0.000000,0.000000,0.707107 -1791,0.707107,0.000000,0.000000,0.707107 -1792,0.707107,0.000000,0.000000,0.707107 -1793,0.707107,0.000000,0.000000,0.707107 -1794,0.707107,0.000000,0.000000,0.707107 -1795,0.707107,0.000000,0.000000,0.707107 -1796,0.707107,0.000000,0.000000,0.707107 -1797,0.707107,0.000000,0.000000,0.707107 -1798,0.707107,0.000000,0.000000,0.707107 -1799,0.707107,0.000000,0.000000,0.707107 -1800,0.707107,0.000000,0.000000,0.707107 -1801,0.707107,0.000000,0.000000,0.707107 -1802,0.707107,0.000000,0.000000,0.707107 -1803,0.707107,0.000000,0.000000,0.707107 -1804,0.707107,0.000000,0.000000,0.707107 -1805,0.707107,0.000000,0.000000,0.707107 -1806,0.707107,0.000000,0.000000,0.707107 -1807,0.707107,0.000000,0.000000,0.707107 -1808,0.707107,0.000000,0.000000,0.707107 -1809,0.707107,0.000000,0.000000,0.707107 -1810,0.707107,0.000000,0.000000,0.707107 -1811,0.707107,0.000000,0.000000,0.707107 -1812,0.707107,0.000000,0.000000,0.707107 -1813,0.707107,0.000000,0.000000,0.707107 -1814,0.707107,0.000000,0.000000,0.707107 -1815,0.707107,0.000000,0.000000,0.707107 -1816,0.707107,0.000000,0.000000,0.707107 -1817,0.707107,0.000000,0.000000,0.707107 -1818,0.707107,0.000000,0.000000,0.707107 -1819,0.707107,0.000000,0.000000,0.707107 -1820,0.707107,0.000000,0.000000,0.707107 -1821,0.707107,0.000000,0.000000,0.707107 -1822,0.707107,0.000000,0.000000,0.707107 -1823,0.707107,0.000000,0.000000,0.707107 -1824,0.707107,0.000000,0.000000,0.707107 -1825,0.707107,0.000000,0.000000,0.707107 -1826,0.707107,0.000000,0.000000,0.707107 -1827,0.707107,0.000000,0.000000,0.707107 -1828,0.707107,0.000000,0.000000,0.707107 -1829,0.707107,0.000000,0.000000,0.707107 -1830,0.707107,0.000000,0.000000,0.707107 -1831,0.707107,0.000000,0.000000,0.707107 -1832,0.707107,0.000000,0.000000,0.707107 -1833,0.707107,0.000000,0.000000,0.707107 -1834,0.707107,0.000000,0.000000,0.707107 -1835,0.707107,0.000000,0.000000,0.707107 -1836,0.707107,0.000000,0.000000,0.707107 -1837,0.707107,0.000000,0.000000,0.707107 -1838,0.707107,0.000000,0.000000,0.707107 -1839,0.707107,0.000000,0.000000,0.707107 -1840,0.707107,0.000000,0.000000,0.707107 -1841,0.707107,0.000000,0.000000,0.707107 -1842,0.707107,0.000000,0.000000,0.707107 -1843,0.707107,0.000000,0.000000,0.707107 -1844,0.707107,0.000000,0.000000,0.707107 -1845,0.707107,0.000000,0.000000,0.707107 -1846,0.707107,0.000000,0.000000,0.707107 -1847,0.707107,0.000000,0.000000,0.707107 -1848,0.707107,0.000000,0.000000,0.707107 -1849,0.707107,0.000000,0.000000,0.707107 -1850,0.707107,0.000000,0.000000,0.707107 -1851,0.707107,0.000000,0.000000,0.707107 -1852,0.707107,0.000000,0.000000,0.707107 -1853,0.707107,0.000000,0.000000,0.707107 -1854,0.707107,0.000000,0.000000,0.707107 -1855,0.707107,0.000000,0.000000,0.707107 -1856,0.707107,0.000000,0.000000,0.707107 -1857,0.707107,0.000000,0.000000,0.707107 -1858,0.707107,0.000000,0.000000,0.707107 -1859,0.707107,0.000000,0.000000,0.707107 -1860,0.707107,0.000000,0.000000,0.707107 -1861,0.707107,0.000000,0.000000,0.707107 -1862,0.707107,0.000000,0.000000,0.707107 -1863,0.707107,0.000000,0.000000,0.707107 -1864,0.707107,0.000000,0.000000,0.707107 -1865,0.707107,0.000000,0.000000,0.707107 -1866,0.707107,0.000000,0.000000,0.707107 -1867,0.707107,0.000000,0.000000,0.707107 -1868,0.707107,0.000000,0.000000,0.707107 -1869,0.707107,0.000000,0.000000,0.707107 -1870,0.707107,0.000000,0.000000,0.707107 -1871,0.707107,0.000000,0.000000,0.707107 -1872,0.707107,0.000000,0.000000,0.707107 -1873,0.707107,0.000000,0.000000,0.707107 -1874,0.707107,0.000000,0.000000,0.707107 -1875,0.707107,0.000000,0.000000,0.707107 -1876,0.707107,0.000000,0.000000,0.707107 -1877,0.707107,0.000000,0.000000,0.707107 -1878,0.707107,0.000000,0.000000,0.707107 -1879,0.707107,0.000000,0.000000,0.707107 -1880,0.707107,0.000000,0.000000,0.707107 -1881,0.707107,0.000000,0.000000,0.707107 -1882,0.707107,0.000000,0.000000,0.707107 -1883,0.707107,0.000000,0.000000,0.707107 -1884,0.707107,0.000000,0.000000,0.707107 -1885,0.707107,0.000000,0.000000,0.707107 -1886,0.707107,0.000000,0.000000,0.707107 -1887,0.707107,0.000000,0.000000,0.707107 -1888,0.707107,0.000000,0.000000,0.707107 -1889,0.707107,0.000000,0.000000,0.707107 -1890,0.707107,0.000000,0.000000,0.707107 -1891,0.707107,0.000000,0.000000,0.707107 -1892,0.707107,0.000000,0.000000,0.707107 -1893,0.707107,0.000000,0.000000,0.707107 -1894,0.707107,0.000000,0.000000,0.707107 -1895,0.707107,0.000000,0.000000,0.707107 -1896,0.707107,0.000000,0.000000,0.707107 -1897,0.707107,0.000000,0.000000,0.707107 -1898,0.707107,0.000000,0.000000,0.707107 -1899,0.707107,0.000000,0.000000,0.707107 -1900,0.707107,0.000000,0.000000,0.707107 -1901,0.707107,0.000000,0.000000,0.707107 -1902,0.707107,0.000000,0.000000,0.707107 -1903,0.707107,0.000000,0.000000,0.707107 -1904,0.707107,0.000000,0.000000,0.707107 -1905,0.707107,0.000000,0.000000,0.707107 -1906,0.707107,0.000000,0.000000,0.707107 -1907,0.707107,0.000000,0.000000,0.707107 -1908,0.707107,0.000000,0.000000,0.707107 -1909,0.707107,0.000000,0.000000,0.707107 -1910,0.707107,0.000000,0.000000,0.707107 -1911,0.707107,0.000000,0.000000,0.707107 -1912,0.707107,0.000000,0.000000,0.707107 -1913,0.707107,0.000000,0.000000,0.707107 -1914,0.707107,0.000000,0.000000,0.707107 -1915,0.707107,0.000000,0.000000,0.707107 -1916,0.707107,0.000000,0.000000,0.707107 -1917,0.707107,0.000000,0.000000,0.707107 -1918,0.707107,0.000000,0.000000,0.707107 -1919,0.707107,0.000000,0.000000,0.707107 -1920,0.707107,0.000000,0.000000,0.707107 -1921,0.707107,0.000000,0.000000,0.707107 -1922,0.707107,0.000000,0.000000,0.707107 -1923,0.707107,0.000000,0.000000,0.707107 -1924,0.707107,0.000000,0.000000,0.707107 -1925,0.707107,0.000000,0.000000,0.707107 -1926,0.707107,0.000000,0.000000,0.707107 -1927,0.707107,0.000000,0.000000,0.707107 -1928,0.707107,0.000000,0.000000,0.707107 -1929,0.707107,0.000000,0.000000,0.707107 -1930,0.707107,0.000000,0.000000,0.707107 -1931,0.707107,0.000000,0.000000,0.707107 -1932,0.707107,0.000000,0.000000,0.707107 -1933,0.707107,0.000000,0.000000,0.707107 -1934,0.707107,0.000000,0.000000,0.707107 -1935,0.707107,0.000000,0.000000,0.707107 -1936,0.707107,0.000000,0.000000,0.707107 -1937,0.707107,0.000000,0.000000,0.707107 -1938,0.707107,0.000000,0.000000,0.707107 -1939,0.707107,0.000000,0.000000,0.707107 -1940,0.707107,0.000000,0.000000,0.707107 -1941,0.707107,0.000000,0.000000,0.707107 -1942,0.707107,0.000000,0.000000,0.707107 -1943,0.707107,0.000000,0.000000,0.707107 -1944,0.707107,0.000000,0.000000,0.707107 -1945,0.707107,0.000000,0.000000,0.707107 -1946,0.707107,0.000000,0.000000,0.707107 -1947,0.707107,0.000000,0.000000,0.707107 -1948,0.707107,0.000000,0.000000,0.707107 -1949,0.707107,0.000000,0.000000,0.707107 -1950,0.707107,0.000000,0.000000,0.707107 -1951,0.707107,0.000000,0.000000,0.707107 -1952,0.707107,0.000000,0.000000,0.707107 -1953,0.707107,0.000000,0.000000,0.707107 -1954,0.707107,0.000000,0.000000,0.707107 -1955,0.707107,0.000000,0.000000,0.707107 -1956,0.707107,0.000000,0.000000,0.707107 -1957,0.707107,0.000000,0.000000,0.707107 -1958,0.707107,0.000000,0.000000,0.707107 -1959,0.707107,0.000000,0.000000,0.707107 -1960,0.707107,0.000000,0.000000,0.707107 -1961,0.707107,0.000000,0.000000,0.707107 -1962,0.707107,0.000000,0.000000,0.707107 -1963,0.707107,0.000000,0.000000,0.707107 -1964,0.707107,0.000000,0.000000,0.707107 -1965,0.707107,0.000000,0.000000,0.707107 -1966,0.707107,0.000000,0.000000,0.707107 -1967,0.707107,0.000000,0.000000,0.707107 -1968,0.707107,0.000000,0.000000,0.707107 -1969,0.707107,0.000000,0.000000,0.707107 -1970,0.707107,0.000000,0.000000,0.707107 -1971,0.707107,0.000000,0.000000,0.707107 -1972,0.707107,0.000000,0.000000,0.707107 -1973,0.707107,0.000000,0.000000,0.707107 -1974,0.707107,0.000000,0.000000,0.707107 -1975,0.707107,0.000000,0.000000,0.707107 -1976,0.707107,0.000000,0.000000,0.707107 -1977,0.707107,0.000000,0.000000,0.707107 -1978,0.707107,0.000000,0.000000,0.707107 -1979,0.707107,0.000000,0.000000,0.707107 -1980,0.707107,0.000000,0.000000,0.707107 -1981,0.707107,0.000000,0.000000,0.707107 -1982,0.707107,0.000000,0.000000,0.707107 -1983,0.707107,0.000000,0.000000,0.707107 -1984,0.707107,0.000000,0.000000,0.707107 -1985,0.707107,0.000000,0.000000,0.707107 -1986,0.707107,0.000000,0.000000,0.707107 -1987,0.707107,0.000000,0.000000,0.707107 -1988,0.707107,0.000000,0.000000,0.707107 -1989,0.707107,0.000000,0.000000,0.707107 -1990,0.707107,0.000000,0.000000,0.707107 -1991,0.707107,0.000000,0.000000,0.707107 -1992,0.707107,0.000000,0.000000,0.707107 -1993,0.707107,0.000000,0.000000,0.707107 -1994,0.707107,0.000000,0.000000,0.707107 -1995,0.707107,0.000000,0.000000,0.707107 -1996,0.707107,0.000000,0.000000,0.707107 -1997,0.707107,0.000000,0.000000,0.707107 -1998,0.707107,0.000000,0.000000,0.707107 -1999,0.707107,0.000000,0.000000,0.707107 -2000,0.707107,0.000000,0.000000,0.707107 -2001,0.707107,0.000000,0.000000,0.707107 -2002,0.707107,0.000000,0.000000,0.707107 -2003,0.707107,0.000000,0.000000,0.707107 -2004,0.707107,0.000000,0.000000,0.707107 -2005,0.707107,0.000000,0.000000,0.707107 -2006,0.707107,0.000000,0.000000,0.707107 -2007,0.707107,0.000000,0.000000,0.707107 -2008,0.707107,0.000000,0.000000,0.707107 -2009,0.707107,0.000000,0.000000,0.707107 -2010,0.707107,0.000000,0.000000,0.707107 -2011,0.707107,0.000000,0.000000,0.707107 -2012,0.707107,0.000000,0.000000,0.707107 -2013,0.707107,0.000000,0.000000,0.707107 -2014,0.707107,0.000000,0.000000,0.707107 -2015,0.707107,0.000000,0.000000,0.707107 -2016,0.707107,0.000000,0.000000,0.707107 -2017,0.707107,0.000000,0.000000,0.707107 -2018,0.707107,0.000000,0.000000,0.707107 -2019,0.707107,0.000000,0.000000,0.707107 -2020,0.707107,0.000000,0.000000,0.707107 -2021,0.707107,0.000000,0.000000,0.707107 -2022,0.707107,0.000000,0.000000,0.707107 -2023,0.707107,0.000000,0.000000,0.707107 -2024,0.707107,0.000000,0.000000,0.707107 -2025,0.707107,0.000000,0.000000,0.707107 -2026,0.707107,0.000000,0.000000,0.707107 -2027,0.707107,0.000000,0.000000,0.707107 -2028,0.707107,0.000000,0.000000,0.707107 -2029,0.707107,0.000000,0.000000,0.707107 -2030,0.707107,0.000000,0.000000,0.707107 -2031,0.707107,0.000000,0.000000,0.707107 -2032,0.707107,0.000000,0.000000,0.707107 -2033,0.707107,0.000000,0.000000,0.707107 -2034,0.707107,0.000000,0.000000,0.707107 -2035,0.707107,0.000000,0.000000,0.707107 -2036,0.707107,0.000000,0.000000,0.707107 -2037,0.707107,0.000000,0.000000,0.707107 -2038,0.707107,0.000000,0.000000,0.707107 -2039,0.707107,0.000000,0.000000,0.707107 -2040,0.707107,0.000000,0.000000,0.707107 -2041,0.707107,0.000000,0.000000,0.707107 -2042,0.707107,0.000000,0.000000,0.707107 -2043,0.707107,0.000000,0.000000,0.707107 -2044,0.707107,0.000000,0.000000,0.707107 -2045,0.707107,0.000000,0.000000,0.707107 -2046,0.707107,0.000000,0.000000,0.707107 -2047,0.707107,0.000000,0.000000,0.707107 -2048,0.707107,0.000000,0.000000,0.707107 -2049,0.707107,0.000000,0.000000,0.707107 -2050,0.707107,0.000000,0.000000,0.707107 -2051,0.707107,0.000000,0.000000,0.707107 -2052,0.707107,0.000000,0.000000,0.707107 -2053,0.707107,0.000000,0.000000,0.707107 -2054,0.707107,0.000000,0.000000,0.707107 -2055,0.707107,0.000000,0.000000,0.707107 -2056,0.707107,0.000000,0.000000,0.707107 -2057,0.707107,0.000000,0.000000,0.707107 -2058,0.707107,0.000000,0.000000,0.707107 -2059,0.707107,0.000000,0.000000,0.707107 -2060,0.707107,0.000000,0.000000,0.707107 -2061,0.707107,0.000000,0.000000,0.707107 -2062,0.707107,0.000000,0.000000,0.707107 -2063,0.707107,0.000000,0.000000,0.707107 -2064,0.707107,0.000000,0.000000,0.707107 -2065,0.707107,0.000000,0.000000,0.707107 -2066,0.707107,0.000000,0.000000,0.707107 -2067,0.707107,0.000000,0.000000,0.707107 -2068,0.707107,0.000000,0.000000,0.707107 -2069,0.707107,0.000000,0.000000,0.707107 -2070,0.707107,0.000000,0.000000,0.707107 -2071,0.707107,0.000000,0.000000,0.707107 -2072,0.707107,0.000000,0.000000,0.707107 -2073,0.707107,0.000000,0.000000,0.707107 -2074,0.707107,0.000000,0.000000,0.707107 -2075,0.707107,0.000000,0.000000,0.707107 -2076,0.707107,0.000000,0.000000,0.707107 -2077,0.707107,0.000000,0.000000,0.707107 -2078,0.707107,0.000000,0.000000,0.707107 -2079,0.707107,0.000000,0.000000,0.707107 -2080,0.707107,0.000000,0.000000,0.707107 -2081,0.707107,0.000000,0.000000,0.707107 -2082,0.707107,0.000000,0.000000,0.707107 -2083,0.707107,0.000000,0.000000,0.707107 -2084,0.707107,0.000000,0.000000,0.707107 -2085,0.707107,0.000000,0.000000,0.707107 -2086,0.707107,0.000000,0.000000,0.707107 -2087,0.707107,0.000000,0.000000,0.707107 -2088,0.707107,0.000000,0.000000,0.707107 -2089,0.707107,0.000000,0.000000,0.707107 -2090,0.707107,0.000000,0.000000,0.707107 -2091,0.707107,0.000000,0.000000,0.707107 -2092,0.707107,0.000000,0.000000,0.707107 -2093,0.707107,0.000000,0.000000,0.707107 -2094,0.707107,0.000000,0.000000,0.707107 -2095,0.707107,0.000000,0.000000,0.707107 -2096,0.707107,0.000000,0.000000,0.707107 -2097,0.707107,0.000000,0.000000,0.707107 -2098,0.707107,0.000000,0.000000,0.707107 -2099,0.707107,0.000000,0.000000,0.707107 -2100,0.707107,0.000000,0.000000,0.707107 -2101,0.707107,0.000000,0.000000,0.707107 -2102,0.707107,0.000000,0.000000,0.707107 -2103,0.707107,0.000000,0.000000,0.707107 -2104,0.707107,0.000000,0.000000,0.707107 -2105,0.707107,0.000000,0.000000,0.707107 -2106,0.707107,0.000000,0.000000,0.707107 -2107,0.707107,0.000000,0.000000,0.707107 -2108,0.707107,0.000000,0.000000,0.707107 -2109,0.707107,0.000000,0.000000,0.707107 -2110,0.707107,0.000000,0.000000,0.707107 -2111,0.707107,0.000000,0.000000,0.707107 -2112,0.707107,0.000000,0.000000,0.707107 -2113,0.707107,0.000000,0.000000,0.707107 -2114,0.707107,0.000000,0.000000,0.707107 -2115,0.707107,0.000000,0.000000,0.707107 -2116,0.707107,0.000000,0.000000,0.707107 -2117,0.707107,0.000000,0.000000,0.707107 -2118,0.707107,0.000000,0.000000,0.707107 -2119,0.707107,0.000000,0.000000,0.707107 -2120,0.707107,0.000000,0.000000,0.707107 -2121,0.707107,0.000000,0.000000,0.707107 -2122,0.707107,0.000000,0.000000,0.707107 -2123,0.707107,0.000000,0.000000,0.707107 -2124,0.707107,0.000000,0.000000,0.707107 -2125,0.707107,0.000000,0.000000,0.707107 -2126,0.707107,0.000000,0.000000,0.707107 -2127,0.707107,0.000000,0.000000,0.707107 -2128,0.707107,0.000000,0.000000,0.707107 -2129,0.707107,0.000000,0.000000,0.707107 -2130,0.707107,0.000000,0.000000,0.707107 -2131,0.707107,0.000000,0.000000,0.707107 -2132,0.707107,0.000000,0.000000,0.707107 -2133,0.707107,0.000000,0.000000,0.707107 -2134,0.707107,0.000000,0.000000,0.707107 -2135,0.707107,0.000000,0.000000,0.707107 -2136,0.707107,0.000000,0.000000,0.707107 -2137,0.707107,0.000000,0.000000,0.707107 -2138,0.707107,0.000000,0.000000,0.707107 -2139,0.707107,0.000000,0.000000,0.707107 -2140,0.707107,0.000000,0.000000,0.707107 -2141,0.707107,0.000000,0.000000,0.707107 -2142,0.707107,0.000000,0.000000,0.707107 -2143,0.707107,0.000000,0.000000,0.707107 -2144,0.707107,0.000000,0.000000,0.707107 -2145,0.707107,0.000000,0.000000,0.707107 -2146,0.707107,0.000000,0.000000,0.707107 -2147,0.707107,0.000000,0.000000,0.707107 -2148,0.707107,0.000000,0.000000,0.707107 -2149,0.707107,0.000000,0.000000,0.707107 -2150,0.707107,0.000000,0.000000,0.707107 -2151,0.707107,0.000000,0.000000,0.707107 -2152,0.707107,0.000000,0.000000,0.707107 -2153,0.707107,0.000000,0.000000,0.707107 -2154,0.707107,0.000000,0.000000,0.707107 -2155,0.707107,0.000000,0.000000,0.707107 -2156,0.707107,0.000000,0.000000,0.707107 -2157,0.707107,0.000000,0.000000,0.707107 -2158,0.707107,0.000000,0.000000,0.707107 -2159,0.707107,0.000000,0.000000,0.707107 -2160,0.707107,0.000000,0.000000,0.707107 -2161,0.707107,0.000000,0.000000,0.707107 -2162,0.707107,0.000000,0.000000,0.707107 -2163,0.707107,0.000000,0.000000,0.707107 -2164,0.707107,0.000000,0.000000,0.707107 -2165,0.707107,0.000000,0.000000,0.707107 -2166,0.707107,0.000000,0.000000,0.707107 -2167,0.707107,0.000000,0.000000,0.707107 -2168,0.707107,0.000000,0.000000,0.707107 -2169,0.707107,0.000000,0.000000,0.707107 -2170,0.707107,0.000000,0.000000,0.707107 -2171,0.707107,0.000000,0.000000,0.707107 -2172,0.707107,0.000000,0.000000,0.707107 -2173,0.707107,0.000000,0.000000,0.707107 -2174,0.707107,0.000000,0.000000,0.707107 -2175,0.707107,0.000000,0.000000,0.707107 -2176,0.707107,0.000000,0.000000,0.707107 -2177,0.707107,0.000000,0.000000,0.707107 -2178,0.707107,0.000000,0.000000,0.707107 -2179,0.707107,0.000000,0.000000,0.707107 -2180,0.707107,0.000000,0.000000,0.707107 -2181,0.707107,0.000000,0.000000,0.707107 -2182,0.707107,0.000000,0.000000,0.707107 -2183,0.707107,0.000000,0.000000,0.707107 -2184,0.707107,0.000000,0.000000,0.707107 -2185,0.707107,0.000000,0.000000,0.707107 -2186,0.707107,0.000000,0.000000,0.707107 -2187,0.707107,0.000000,0.000000,0.707107 -2188,0.707107,0.000000,0.000000,0.707107 -2189,0.707107,0.000000,0.000000,0.707107 -2190,0.707107,0.000000,0.000000,0.707107 -2191,0.707107,0.000000,0.000000,0.707107 -2192,0.707107,0.000000,0.000000,0.707107 -2193,0.707107,0.000000,0.000000,0.707107 -2194,0.707107,0.000000,0.000000,0.707107 -2195,0.707107,0.000000,0.000000,0.707107 -2196,0.707107,0.000000,0.000000,0.707107 -2197,0.707107,0.000000,0.000000,0.707107 -2198,0.707107,0.000000,0.000000,0.707107 -2199,0.707107,0.000000,0.000000,0.707107 -2200,0.707107,0.000000,0.000000,0.707107 -2201,0.707107,0.000000,0.000000,0.707107 -2202,0.707107,0.000000,0.000000,0.707107 -2203,0.707107,0.000000,0.000000,0.707107 -2204,0.707107,0.000000,0.000000,0.707107 -2205,0.707107,0.000000,0.000000,0.707107 -2206,0.707107,0.000000,0.000000,0.707107 -2207,0.707107,0.000000,0.000000,0.707107 -2208,0.707107,0.000000,0.000000,0.707107 -2209,0.707107,0.000000,0.000000,0.707107 -2210,0.707107,0.000000,0.000000,0.707107 -2211,0.707107,0.000000,0.000000,0.707107 -2212,0.707107,0.000000,0.000000,0.707107 -2213,0.707107,0.000000,0.000000,0.707107 -2214,0.707107,0.000000,0.000000,0.707107 -2215,0.707107,0.000000,0.000000,0.707107 -2216,0.707107,0.000000,0.000000,0.707107 -2217,0.707107,0.000000,0.000000,0.707107 -2218,0.707107,0.000000,0.000000,0.707107 -2219,0.707107,0.000000,0.000000,0.707107 -2220,0.707107,0.000000,0.000000,0.707107 -2221,0.707107,0.000000,0.000000,0.707107 -2222,0.707107,0.000000,0.000000,0.707107 -2223,0.707107,0.000000,0.000000,0.707107 -2224,0.707107,0.000000,0.000000,0.707107 -2225,0.707107,0.000000,0.000000,0.707107 -2226,0.707107,0.000000,0.000000,0.707107 -2227,0.707107,0.000000,0.000000,0.707107 -2228,0.707107,0.000000,0.000000,0.707107 -2229,0.707107,0.000000,0.000000,0.707107 -2230,0.707107,0.000000,0.000000,0.707107 -2231,0.707107,0.000000,0.000000,0.707107 -2232,0.707107,0.000000,0.000000,0.707107 -2233,0.707107,0.000000,0.000000,0.707107 -2234,0.707107,0.000000,0.000000,0.707107 -2235,0.707107,0.000000,0.000000,0.707107 -2236,0.707107,0.000000,0.000000,0.707107 -2237,0.707107,0.000000,0.000000,0.707107 -2238,0.707107,0.000000,0.000000,0.707107 -2239,0.707107,0.000000,0.000000,0.707107 -2240,0.707107,0.000000,0.000000,0.707107 -2241,0.707107,0.000000,0.000000,0.707107 -2242,0.707107,0.000000,0.000000,0.707107 -2243,0.707107,0.000000,0.000000,0.707107 -2244,0.707107,0.000000,0.000000,0.707107 -2245,0.707107,0.000000,0.000000,0.707107 -2246,0.707107,0.000000,0.000000,0.707107 -2247,0.707107,0.000000,0.000000,0.707107 -2248,0.707107,0.000000,0.000000,0.707107 -2249,0.707107,0.000000,0.000000,0.707107 -2250,0.707107,0.000000,0.000000,0.707107 -2251,0.707107,0.000000,0.000000,0.707107 -2252,0.707107,0.000000,0.000000,0.707107 -2253,0.707107,0.000000,0.000000,0.707107 -2254,0.707107,0.000000,0.000000,0.707107 -2255,0.707107,0.000000,0.000000,0.707107 -2256,0.707107,0.000000,0.000000,0.707107 -2257,0.707107,0.000000,0.000000,0.707107 -2258,0.707107,0.000000,0.000000,0.707107 -2259,0.707107,0.000000,0.000000,0.707107 -2260,0.707107,0.000000,0.000000,0.707107 -2261,0.707107,0.000000,0.000000,0.707107 -2262,0.707107,0.000000,0.000000,0.707107 -2263,0.707107,0.000000,0.000000,0.707107 -2264,0.707107,0.000000,0.000000,0.707107 -2265,0.707107,0.000000,0.000000,0.707107 -2266,0.707107,0.000000,0.000000,0.707107 -2267,0.707107,0.000000,0.000000,0.707107 -2268,0.707107,0.000000,0.000000,0.707107 -2269,0.707107,0.000000,0.000000,0.707107 -2270,0.707107,0.000000,0.000000,0.707107 -2271,0.707107,0.000000,0.000000,0.707107 -2272,0.707107,0.000000,0.000000,0.707107 -2273,0.707107,0.000000,0.000000,0.707107 -2274,0.707107,0.000000,0.000000,0.707107 -2275,0.707107,0.000000,0.000000,0.707107 -2276,0.707107,0.000000,0.000000,0.707107 -2277,0.707107,0.000000,0.000000,0.707107 -2278,0.707107,0.000000,0.000000,0.707107 -2279,0.707107,0.000000,0.000000,0.707107 -2280,0.707107,0.000000,0.000000,0.707107 -2281,0.707107,0.000000,0.000000,0.707107 -2282,0.707107,0.000000,0.000000,0.707107 -2283,0.707107,0.000000,0.000000,0.707107 -2284,0.707107,0.000000,0.000000,0.707107 -2285,0.707107,0.000000,0.000000,0.707107 -2286,0.707107,0.000000,0.000000,0.707107 -2287,0.707107,0.000000,0.000000,0.707107 -2288,0.707107,0.000000,0.000000,0.707107 -2289,0.707107,0.000000,0.000000,0.707107 -2290,0.707107,0.000000,0.000000,0.707107 -2291,0.707107,0.000000,0.000000,0.707107 -2292,0.707107,0.000000,0.000000,0.707107 -2293,0.707107,0.000000,0.000000,0.707107 -2294,0.707107,0.000000,0.000000,0.707107 -2295,0.707107,0.000000,0.000000,0.707107 -2296,0.707107,0.000000,0.000000,0.707107 -2297,0.707107,0.000000,0.000000,0.707107 -2298,0.707107,0.000000,0.000000,0.707107 -2299,0.707107,0.000000,0.000000,0.707107 -2300,0.707107,0.000000,0.000000,0.707107 -2301,0.707107,0.000000,0.000000,0.707107 -2302,0.707107,0.000000,0.000000,0.707107 -2303,0.707107,0.000000,0.000000,0.707107 -2304,0.707107,0.000000,0.000000,0.707107 -2305,0.707107,0.000000,0.000000,0.707107 -2306,0.707107,0.000000,0.000000,0.707107 -2307,0.707107,0.000000,0.000000,0.707107 -2308,0.707107,0.000000,0.000000,0.707107 -2309,0.707107,0.000000,0.000000,0.707107 -2310,0.707107,0.000000,0.000000,0.707107 -2311,0.707107,0.000000,0.000000,0.707107 -2312,0.707107,0.000000,0.000000,0.707107 -2313,0.707107,0.000000,0.000000,0.707107 -2314,0.707107,0.000000,0.000000,0.707107 -2315,0.707107,0.000000,0.000000,0.707107 -2316,0.707107,0.000000,0.000000,0.707107 -2317,0.707107,0.000000,0.000000,0.707107 -2318,0.707107,0.000000,0.000000,0.707107 -2319,0.707107,0.000000,0.000000,0.707107 -2320,0.707107,0.000000,0.000000,0.707107 -2321,0.707107,0.000000,0.000000,0.707107 -2322,0.707107,0.000000,0.000000,0.707107 -2323,0.707107,0.000000,0.000000,0.707107 -2324,0.707107,0.000000,0.000000,0.707107 -2325,0.707107,0.000000,0.000000,0.707107 -2326,0.707107,0.000000,0.000000,0.707107 -2327,0.707107,0.000000,0.000000,0.707107 -2328,0.707107,0.000000,0.000000,0.707107 -2329,0.707107,0.000000,0.000000,0.707107 -2330,0.707107,0.000000,0.000000,0.707107 -2331,0.707107,0.000000,0.000000,0.707107 -2332,0.707107,0.000000,0.000000,0.707107 -2333,0.707107,0.000000,0.000000,0.707107 -2334,0.707107,0.000000,0.000000,0.707107 -2335,0.707107,0.000000,0.000000,0.707107 -2336,0.707107,0.000000,0.000000,0.707107 -2337,0.707107,0.000000,0.000000,0.707107 -2338,0.707107,0.000000,0.000000,0.707107 -2339,0.707107,0.000000,0.000000,0.707107 -2340,0.707107,0.000000,0.000000,0.707107 -2341,0.707107,0.000000,0.000000,0.707107 -2342,0.707107,0.000000,0.000000,0.707107 -2343,0.707107,0.000000,0.000000,0.707107 -2344,0.707107,0.000000,0.000000,0.707107 -2345,0.707107,0.000000,0.000000,0.707107 -2346,0.707107,0.000000,0.000000,0.707107 -2347,0.707107,0.000000,0.000000,0.707107 -2348,0.707107,0.000000,0.000000,0.707107 -2349,0.707107,0.000000,0.000000,0.707107 -2350,0.707107,0.000000,0.000000,0.707107 -2351,0.707107,0.000000,0.000000,0.707107 -2352,0.707107,0.000000,0.000000,0.707107 -2353,0.707107,0.000000,0.000000,0.707107 -2354,0.707107,0.000000,0.000000,0.707107 -2355,0.707107,0.000000,0.000000,0.707107 -2356,0.707107,0.000000,0.000000,0.707107 -2357,0.707107,0.000000,0.000000,0.707107 -2358,0.707107,0.000000,0.000000,0.707107 -2359,0.707107,0.000000,0.000000,0.707107 -2360,0.707107,0.000000,0.000000,0.707107 -2361,0.707107,0.000000,0.000000,0.707107 -2362,0.707107,0.000000,0.000000,0.707107 -2363,0.707107,0.000000,0.000000,0.707107 -2364,0.707107,0.000000,0.000000,0.707107 -2365,0.707107,0.000000,0.000000,0.707107 -2366,0.707107,0.000000,0.000000,0.707107 -2367,0.707107,0.000000,0.000000,0.707107 -2368,0.707107,0.000000,0.000000,0.707107 -2369,0.707107,0.000000,0.000000,0.707107 -2370,0.707107,0.000000,0.000000,0.707107 -2371,0.707107,0.000000,0.000000,0.707107 -2372,0.707107,0.000000,0.000000,0.707107 -2373,0.707107,0.000000,0.000000,0.707107 -2374,0.707107,0.000000,0.000000,0.707107 -2375,0.707107,0.000000,0.000000,0.707107 -2376,0.707107,0.000000,0.000000,0.707107 -2377,0.707107,0.000000,0.000000,0.707107 -2378,0.707107,0.000000,0.000000,0.707107 -2379,0.707107,0.000000,0.000000,0.707107 -2380,0.707107,0.000000,0.000000,0.707107 -2381,0.707107,0.000000,0.000000,0.707107 -2382,0.707107,0.000000,0.000000,0.707107 -2383,0.707107,0.000000,0.000000,0.707107 -2384,0.707107,0.000000,0.000000,0.707107 -2385,0.707107,0.000000,0.000000,0.707107 -2386,0.707107,0.000000,0.000000,0.707107 -2387,0.707107,0.000000,0.000000,0.707107 -2388,0.707107,0.000000,0.000000,0.707107 -2389,0.707107,0.000000,0.000000,0.707107 -2390,0.707107,0.000000,0.000000,0.707107 -2391,0.707107,0.000000,0.000000,0.707107 -2392,0.707107,0.000000,0.000000,0.707107 -2393,0.707107,0.000000,0.000000,0.707107 -2394,0.707107,0.000000,0.000000,0.707107 -2395,0.707107,0.000000,0.000000,0.707107 -2396,0.707107,0.000000,0.000000,0.707107 -2397,0.707107,0.000000,0.000000,0.707107 -2398,0.707107,0.000000,0.000000,0.707107 -2399,0.707107,0.000000,0.000000,0.707107 -2400,0.707107,0.000000,0.000000,0.707107 -2401,0.707107,0.000000,0.000000,0.707107 -2402,0.707107,0.000000,0.000000,0.707107 -2403,0.707107,0.000000,0.000000,0.707107 -2404,0.707107,0.000000,0.000000,0.707107 -2405,0.707107,0.000000,0.000000,0.707107 -2406,0.707107,0.000000,0.000000,0.707107 -2407,0.707107,0.000000,0.000000,0.707107 -2408,0.707107,0.000000,0.000000,0.707107 -2409,0.707107,0.000000,0.000000,0.707107 -2410,0.707107,0.000000,0.000000,0.707107 -2411,0.707107,0.000000,0.000000,0.707107 -2412,0.707107,0.000000,0.000000,0.707107 -2413,0.707107,0.000000,0.000000,0.707107 -2414,0.707107,0.000000,0.000000,0.707107 -2415,0.707107,0.000000,0.000000,0.707107 -2416,0.707107,0.000000,0.000000,0.707107 -2417,0.707107,0.000000,0.000000,0.707107 -2418,0.707107,0.000000,0.000000,0.707107 -2419,0.707107,0.000000,0.000000,0.707107 -2420,0.707107,0.000000,0.000000,0.707107 -2421,0.707107,0.000000,0.000000,0.707107 -2422,0.707107,0.000000,0.000000,0.707107 -2423,0.707107,0.000000,0.000000,0.707107 -2424,0.707107,0.000000,0.000000,0.707107 -2425,0.707107,0.000000,0.000000,0.707107 -2426,0.707107,0.000000,0.000000,0.707107 -2427,0.707107,0.000000,0.000000,0.707107 -2428,0.707107,0.000000,0.000000,0.707107 -2429,0.707107,0.000000,0.000000,0.707107 -2430,0.707107,0.000000,0.000000,0.707107 -2431,0.707107,0.000000,0.000000,0.707107 -2432,0.707107,0.000000,0.000000,0.707107 -2433,0.707107,0.000000,0.000000,0.707107 -2434,0.707107,0.000000,0.000000,0.707107 -2435,0.707107,0.000000,0.000000,0.707107 -2436,0.707107,0.000000,0.000000,0.707107 -2437,0.707107,0.000000,0.000000,0.707107 -2438,0.707107,0.000000,0.000000,0.707107 -2439,0.707107,0.000000,0.000000,0.707107 -2440,0.707107,0.000000,0.000000,0.707107 -2441,0.707107,0.000000,0.000000,0.707107 -2442,0.707107,0.000000,0.000000,0.707107 -2443,0.707107,0.000000,0.000000,0.707107 -2444,0.707107,0.000000,0.000000,0.707107 -2445,0.707107,0.000000,0.000000,0.707107 -2446,0.707107,0.000000,0.000000,0.707107 -2447,0.707107,0.000000,0.000000,0.707107 -2448,0.707107,0.000000,0.000000,0.707107 -2449,0.707107,0.000000,0.000000,0.707107 -2450,0.707107,0.000000,0.000000,0.707107 -2451,0.707107,0.000000,0.000000,0.707107 -2452,0.707107,0.000000,0.000000,0.707107 -2453,0.707107,0.000000,0.000000,0.707107 -2454,0.707107,0.000000,0.000000,0.707107 -2455,0.707107,0.000000,0.000000,0.707107 -2456,0.707107,0.000000,0.000000,0.707107 -2457,0.707107,0.000000,0.000000,0.707107 -2458,0.707107,0.000000,0.000000,0.707107 -2459,0.707107,0.000000,0.000000,0.707107 -2460,0.707107,0.000000,0.000000,0.707107 -2461,0.707107,0.000000,0.000000,0.707107 -2462,0.707107,0.000000,0.000000,0.707107 -2463,0.707107,0.000000,0.000000,0.707107 -2464,0.707107,0.000000,0.000000,0.707107 -2465,0.707107,0.000000,0.000000,0.707107 -2466,0.707107,0.000000,0.000000,0.707107 -2467,0.707107,0.000000,0.000000,0.707107 -2468,0.707107,0.000000,0.000000,0.707107 -2469,0.707107,0.000000,0.000000,0.707107 -2470,0.707107,0.000000,0.000000,0.707107 -2471,0.707107,0.000000,0.000000,0.707107 -2472,0.707107,0.000000,0.000000,0.707107 -2473,0.707107,0.000000,0.000000,0.707107 -2474,0.707107,0.000000,0.000000,0.707107 -2475,0.707107,0.000000,0.000000,0.707107 -2476,0.707107,0.000000,0.000000,0.707107 -2477,0.707107,0.000000,0.000000,0.707107 -2478,0.707107,0.000000,0.000000,0.707107 -2479,0.707107,0.000000,0.000000,0.707107 -2480,0.707107,0.000000,0.000000,0.707107 -2481,0.707107,0.000000,0.000000,0.707107 -2482,0.707107,0.000000,0.000000,0.707107 -2483,0.707107,0.000000,0.000000,0.707107 -2484,0.707107,0.000000,0.000000,0.707107 -2485,0.707107,0.000000,0.000000,0.707107 -2486,0.707107,0.000000,0.000000,0.707107 -2487,0.707107,0.000000,0.000000,0.707107 -2488,0.707107,0.000000,0.000000,0.707107 -2489,0.707107,0.000000,0.000000,0.707107 -2490,0.707107,0.000000,0.000000,0.707107 -2491,0.707107,0.000000,0.000000,0.707107 -2492,0.707107,0.000000,0.000000,0.707107 -2493,0.707107,0.000000,0.000000,0.707107 -2494,0.707107,0.000000,0.000000,0.707107 -2495,0.707107,0.000000,0.000000,0.707107 -2496,0.707107,0.000000,0.000000,0.707107 -2497,0.707107,0.000000,0.000000,0.707107 -2498,0.707107,0.000000,0.000000,0.707107 -2499,0.707107,0.000000,0.000000,0.707107 -2500,0.707107,0.000000,0.000000,0.707107 -2501,0.707107,0.000000,0.000000,0.707107 -2502,0.707107,0.000000,0.000000,0.707107 -2503,0.707107,0.000000,0.000000,0.707107 -2504,0.707107,0.000000,0.000000,0.707107 -2505,0.707107,0.000000,0.000000,0.707107 -2506,0.707107,0.000000,0.000000,0.707107 -2507,0.707107,0.000000,0.000000,0.707107 -2508,0.707107,0.000000,0.000000,0.707107 -2509,0.707107,0.000000,0.000000,0.707107 -2510,0.707107,0.000000,0.000000,0.707107 -2511,0.707107,0.000000,0.000000,0.707107 -2512,0.707107,0.000000,0.000000,0.707107 -2513,0.707107,0.000000,0.000000,0.707107 -2514,0.707107,0.000000,0.000000,0.707107 -2515,0.707107,0.000000,0.000000,0.707107 -2516,0.707107,0.000000,0.000000,0.707107 -2517,0.707107,0.000000,0.000000,0.707107 -2518,0.707107,0.000000,0.000000,0.707107 -2519,0.707107,0.000000,0.000000,0.707107 -2520,0.707107,0.000000,0.000000,0.707107 -2521,0.707107,0.000000,0.000000,0.707107 -2522,0.707107,0.000000,0.000000,0.707107 -2523,0.707107,0.000000,0.000000,0.707107 -2524,0.707107,0.000000,0.000000,0.707107 -2525,0.707107,0.000000,0.000000,0.707107 -2526,0.707107,0.000000,0.000000,0.707107 -2527,0.707107,0.000000,0.000000,0.707107 -2528,0.707107,0.000000,0.000000,0.707107 -2529,0.707107,0.000000,0.000000,0.707107 -2530,0.707107,0.000000,0.000000,0.707107 -2531,0.707107,0.000000,0.000000,0.707107 -2532,0.707107,0.000000,0.000000,0.707107 -2533,0.707107,0.000000,0.000000,0.707107 -2534,0.707107,0.000000,0.000000,0.707107 -2535,0.707107,0.000000,0.000000,0.707107 -2536,0.707107,0.000000,0.000000,0.707107 -2537,0.707107,0.000000,0.000000,0.707107 -2538,0.707107,0.000000,0.000000,0.707107 -2539,0.707107,0.000000,0.000000,0.707107 -2540,0.707107,0.000000,0.000000,0.707107 -2541,0.707107,0.000000,0.000000,0.707107 -2542,0.707107,0.000000,0.000000,0.707107 -2543,0.707107,0.000000,0.000000,0.707107 -2544,0.707107,0.000000,0.000000,0.707107 -2545,0.707107,0.000000,0.000000,0.707107 -2546,0.707107,0.000000,0.000000,0.707107 -2547,0.707107,0.000000,0.000000,0.707107 -2548,0.707107,0.000000,0.000000,0.707107 -2549,0.707107,0.000000,0.000000,0.707107 -2550,0.707107,0.000000,0.000000,0.707107 -2551,0.707107,0.000000,0.000000,0.707107 -2552,0.707107,0.000000,0.000000,0.707107 -2553,0.707107,0.000000,0.000000,0.707107 -2554,0.707107,0.000000,0.000000,0.707107 -2555,0.707107,0.000000,0.000000,0.707107 -2556,0.707107,0.000000,0.000000,0.707107 -2557,0.707107,0.000000,0.000000,0.707107 -2558,0.707107,0.000000,0.000000,0.707107 -2559,0.707107,0.000000,0.000000,0.707107 -2560,0.707107,0.000000,0.000000,0.707107 -2561,0.707107,0.000000,0.000000,0.707107 -2562,0.707107,0.000000,0.000000,0.707107 -2563,0.707107,0.000000,0.000000,0.707107 -2564,0.707107,0.000000,0.000000,0.707107 -2565,0.707107,0.000000,0.000000,0.707107 -2566,0.707107,0.000000,0.000000,0.707107 -2567,0.707107,0.000000,0.000000,0.707107 -2568,0.707107,0.000000,0.000000,0.707107 -2569,0.707107,0.000000,0.000000,0.707107 -2570,0.707107,0.000000,0.000000,0.707107 -2571,0.707107,0.000000,0.000000,0.707107 -2572,0.707107,0.000000,0.000000,0.707107 -2573,0.707107,0.000000,0.000000,0.707107 -2574,0.707107,0.000000,0.000000,0.707107 -2575,0.707107,0.000000,0.000000,0.707107 -2576,0.707107,0.000000,0.000000,0.707107 -2577,0.707107,0.000000,0.000000,0.707107 -2578,0.707107,0.000000,0.000000,0.707107 -2579,0.707107,0.000000,0.000000,0.707107 -2580,0.707107,0.000000,0.000000,0.707107 -2581,0.707107,0.000000,0.000000,0.707107 -2582,0.707107,0.000000,0.000000,0.707107 -2583,0.707107,0.000000,0.000000,0.707107 -2584,0.707107,0.000000,0.000000,0.707107 -2585,0.707107,0.000000,0.000000,0.707107 -2586,0.707107,0.000000,0.000000,0.707107 -2587,0.707107,0.000000,0.000000,0.707107 -2588,0.707107,0.000000,0.000000,0.707107 -2589,0.707107,0.000000,0.000000,0.707107 -2590,0.707107,0.000000,0.000000,0.707107 -2591,0.707107,0.000000,0.000000,0.707107 -2592,0.707107,0.000000,0.000000,0.707107 -2593,0.707107,0.000000,0.000000,0.707107 -2594,0.707107,0.000000,0.000000,0.707107 -2595,0.707107,0.000000,0.000000,0.707107 -2596,0.707107,0.000000,0.000000,0.707107 -2597,0.707107,0.000000,0.000000,0.707107 -2598,0.707107,0.000000,0.000000,0.707107 -2599,0.707107,0.000000,0.000000,0.707107 -2600,0.707107,0.000000,0.000000,0.707107 -2601,0.707107,0.000000,0.000000,0.707107 -2602,0.707107,0.000000,0.000000,0.707107 -2603,0.707107,0.000000,0.000000,0.707107 -2604,0.707107,0.000000,0.000000,0.707107 -2605,0.707107,0.000000,0.000000,0.707107 -2606,0.707107,0.000000,0.000000,0.707107 -2607,0.707107,0.000000,0.000000,0.707107 -2608,0.707107,0.000000,0.000000,0.707107 -2609,0.707107,0.000000,0.000000,0.707107 -2610,0.707107,0.000000,0.000000,0.707107 -2611,0.707107,0.000000,0.000000,0.707107 -2612,0.707107,0.000000,0.000000,0.707107 -2613,0.707107,0.000000,0.000000,0.707107 -2614,0.707107,0.000000,0.000000,0.707107 -2615,0.707107,0.000000,0.000000,0.707107 -2616,0.707107,0.000000,0.000000,0.707107 -2617,0.707107,0.000000,0.000000,0.707107 -2618,0.707107,0.000000,0.000000,0.707107 -2619,0.707107,0.000000,0.000000,0.707107 -2620,0.707107,0.000000,0.000000,0.707107 -2621,0.707107,0.000000,0.000000,0.707107 -2622,0.707107,0.000000,0.000000,0.707107 -2623,0.707107,0.000000,0.000000,0.707107 -2624,0.707107,0.000000,0.000000,0.707107 -2625,0.707107,0.000000,0.000000,0.707107 -2626,0.707107,0.000000,0.000000,0.707107 -2627,0.707107,0.000000,0.000000,0.707107 -2628,0.707107,0.000000,0.000000,0.707107 -2629,0.707107,0.000000,0.000000,0.707107 -2630,0.707107,0.000000,0.000000,0.707107 -2631,0.707107,0.000000,0.000000,0.707107 -2632,0.707107,0.000000,0.000000,0.707107 -2633,0.707107,0.000000,0.000000,0.707107 -2634,0.707107,0.000000,0.000000,0.707107 -2635,0.707107,0.000000,0.000000,0.707107 -2636,0.707107,0.000000,0.000000,0.707107 -2637,0.707107,0.000000,0.000000,0.707107 -2638,0.707107,0.000000,0.000000,0.707107 -2639,0.707107,0.000000,0.000000,0.707107 -2640,0.707107,0.000000,0.000000,0.707107 -2641,0.707107,0.000000,0.000000,0.707107 -2642,0.707107,0.000000,0.000000,0.707107 -2643,0.707107,0.000000,0.000000,0.707107 -2644,0.707107,0.000000,0.000000,0.707107 -2645,0.707107,0.000000,0.000000,0.707107 -2646,0.707107,0.000000,0.000000,0.707107 -2647,0.707107,0.000000,0.000000,0.707107 -2648,0.707107,0.000000,0.000000,0.707107 -2649,0.707107,0.000000,0.000000,0.707107 -2650,0.707107,0.000000,0.000000,0.707107 -2651,0.707107,0.000000,0.000000,0.707107 -2652,0.707107,0.000000,0.000000,0.707107 -2653,0.707107,0.000000,0.000000,0.707107 -2654,0.707107,0.000000,0.000000,0.707107 -2655,0.707107,0.000000,0.000000,0.707107 -2656,0.707107,0.000000,0.000000,0.707107 -2657,0.707107,0.000000,0.000000,0.707107 -2658,0.707107,0.000000,0.000000,0.707107 -2659,0.707107,0.000000,0.000000,0.707107 -2660,0.707107,0.000000,0.000000,0.707107 -2661,0.707107,0.000000,0.000000,0.707107 -2662,0.707107,0.000000,0.000000,0.707107 -2663,0.707107,0.000000,0.000000,0.707107 -2664,0.707107,0.000000,0.000000,0.707107 -2665,0.707107,0.000000,0.000000,0.707107 -2666,0.707107,0.000000,0.000000,0.707107 -2667,0.707107,0.000000,0.000000,0.707107 -2668,0.707107,0.000000,0.000000,0.707107 -2669,0.707107,0.000000,0.000000,0.707107 -2670,0.707107,0.000000,0.000000,0.707107 -2671,0.707107,0.000000,0.000000,0.707107 -2672,0.707107,0.000000,0.000000,0.707107 -2673,0.707107,0.000000,0.000000,0.707107 -2674,0.707107,0.000000,0.000000,0.707107 -2675,0.707107,0.000000,0.000000,0.707107 -2676,0.707107,0.000000,0.000000,0.707107 -2677,0.707107,0.000000,0.000000,0.707107 -2678,0.707107,0.000000,0.000000,0.707107 -2679,0.707107,0.000000,0.000000,0.707107 -2680,0.707107,0.000000,0.000000,0.707107 -2681,0.707107,0.000000,0.000000,0.707107 -2682,0.707107,0.000000,0.000000,0.707107 -2683,0.707107,0.000000,0.000000,0.707107 -2684,0.707107,0.000000,0.000000,0.707107 -2685,0.707107,0.000000,0.000000,0.707107 -2686,0.707107,0.000000,0.000000,0.707107 -2687,0.707107,0.000000,0.000000,0.707107 -2688,0.707107,0.000000,0.000000,0.707107 -2689,0.707107,0.000000,0.000000,0.707107 -2690,0.707107,0.000000,0.000000,0.707107 -2691,0.707107,0.000000,0.000000,0.707107 -2692,0.707107,0.000000,0.000000,0.707107 -2693,0.707107,0.000000,0.000000,0.707107 -2694,0.707107,0.000000,0.000000,0.707107 -2695,0.707107,0.000000,0.000000,0.707107 -2696,0.707107,0.000000,0.000000,0.707107 -2697,0.707107,0.000000,0.000000,0.707107 -2698,0.707107,0.000000,0.000000,0.707107 -2699,0.707107,0.000000,0.000000,0.707107 -2700,0.707107,0.000000,0.000000,0.707107 -2701,0.707107,0.000000,0.000000,0.707107 -2702,0.707107,0.000000,0.000000,0.707107 -2703,0.707107,0.000000,0.000000,0.707107 -2704,0.707107,0.000000,0.000000,0.707107 -2705,0.707107,0.000000,0.000000,0.707107 -2706,0.707107,0.000000,0.000000,0.707107 -2707,0.707107,0.000000,0.000000,0.707107 -2708,0.707107,0.000000,0.000000,0.707107 -2709,0.707107,0.000000,0.000000,0.707107 -2710,0.707107,0.000000,0.000000,0.707107 -2711,0.707107,0.000000,0.000000,0.707107 -2712,0.707107,0.000000,0.000000,0.707107 -2713,0.707107,0.000000,0.000000,0.707107 -2714,0.707107,0.000000,0.000000,0.707107 -2715,0.707107,0.000000,0.000000,0.707107 -2716,0.707107,0.000000,0.000000,0.707107 -2717,0.707107,0.000000,0.000000,0.707107 -2718,0.707107,0.000000,0.000000,0.707107 -2719,0.707107,0.000000,0.000000,0.707107 -2720,0.707107,0.000000,0.000000,0.707107 -2721,0.707107,0.000000,0.000000,0.707107 -2722,0.707107,0.000000,0.000000,0.707107 -2723,0.707107,0.000000,0.000000,0.707107 -2724,0.707107,0.000000,0.000000,0.707107 -2725,0.707107,0.000000,0.000000,0.707107 -2726,0.707107,0.000000,0.000000,0.707107 -2727,0.707107,0.000000,0.000000,0.707107 -2728,0.707107,0.000000,0.000000,0.707107 -2729,0.707107,0.000000,0.000000,0.707107 -2730,0.707107,0.000000,0.000000,0.707107 -2731,0.707107,0.000000,0.000000,0.707107 -2732,0.707107,0.000000,0.000000,0.707107 -2733,0.707107,0.000000,0.000000,0.707107 -2734,0.707107,0.000000,0.000000,0.707107 -2735,0.707107,0.000000,0.000000,0.707107 -2736,0.707107,0.000000,0.000000,0.707107 -2737,0.707107,0.000000,0.000000,0.707107 -2738,0.707107,0.000000,0.000000,0.707107 -2739,0.707107,0.000000,0.000000,0.707107 -2740,0.707107,0.000000,0.000000,0.707107 -2741,0.707107,0.000000,0.000000,0.707107 -2742,0.707107,0.000000,0.000000,0.707107 -2743,0.707107,0.000000,0.000000,0.707107 -2744,0.707107,0.000000,0.000000,0.707107 -2745,0.707107,0.000000,0.000000,0.707107 -2746,0.707107,0.000000,0.000000,0.707107 -2747,0.707107,0.000000,0.000000,0.707107 -2748,0.707107,0.000000,0.000000,0.707107 -2749,0.707107,0.000000,0.000000,0.707107 -2750,0.707107,0.000000,0.000000,0.707107 -2751,0.707107,0.000000,0.000000,0.707107 -2752,0.707107,0.000000,0.000000,0.707107 -2753,0.707107,0.000000,0.000000,0.707107 -2754,0.707107,0.000000,0.000000,0.707107 -2755,0.707107,0.000000,0.000000,0.707107 -2756,0.707107,0.000000,0.000000,0.707107 -2757,0.707107,0.000000,0.000000,0.707107 -2758,0.707107,0.000000,0.000000,0.707107 -2759,0.707107,0.000000,0.000000,0.707107 -2760,0.707107,0.000000,0.000000,0.707107 -2761,0.707107,0.000000,0.000000,0.707107 -2762,0.707107,0.000000,0.000000,0.707107 -2763,0.707107,0.000000,0.000000,0.707107 -2764,0.707107,0.000000,0.000000,0.707107 -2765,0.707107,0.000000,0.000000,0.707107 -2766,0.707107,0.000000,0.000000,0.707107 -2767,0.707107,0.000000,0.000000,0.707107 -2768,0.707107,0.000000,0.000000,0.707107 -2769,0.707107,0.000000,0.000000,0.707107 -2770,0.707107,0.000000,0.000000,0.707107 -2771,0.707107,0.000000,0.000000,0.707107 -2772,0.707107,0.000000,0.000000,0.707107 -2773,0.707107,0.000000,0.000000,0.707107 -2774,0.707107,0.000000,0.000000,0.707107 -2775,0.707107,0.000000,0.000000,0.707107 -2776,0.707107,0.000000,0.000000,0.707107 -2777,0.707107,0.000000,0.000000,0.707107 -2778,0.707107,0.000000,0.000000,0.707107 -2779,0.707107,0.000000,0.000000,0.707107 -2780,0.707107,0.000000,0.000000,0.707107 -2781,0.707107,0.000000,0.000000,0.707107 -2782,0.707107,0.000000,0.000000,0.707107 -2783,0.707107,0.000000,0.000000,0.707107 -2784,0.707107,0.000000,0.000000,0.707107 -2785,0.707107,0.000000,0.000000,0.707107 -2786,0.707107,0.000000,0.000000,0.707107 -2787,0.707107,0.000000,0.000000,0.707107 -2788,0.707107,0.000000,0.000000,0.707107 -2789,0.707107,0.000000,0.000000,0.707107 -2790,0.707107,0.000000,0.000000,0.707107 -2791,0.707107,0.000000,0.000000,0.707107 -2792,0.707107,0.000000,0.000000,0.707107 -2793,0.707107,0.000000,0.000000,0.707107 -2794,0.707107,0.000000,0.000000,0.707107 -2795,0.707107,0.000000,0.000000,0.707107 -2796,0.707107,0.000000,0.000000,0.707107 -2797,0.707107,0.000000,0.000000,0.707107 -2798,0.707107,0.000000,0.000000,0.707107 -2799,0.707107,0.000000,0.000000,0.707107 -2800,0.707107,0.000000,0.000000,0.707107 -2801,0.707107,0.000000,0.000000,0.707107 -2802,0.707107,0.000000,0.000000,0.707107 -2803,0.707107,0.000000,0.000000,0.707107 -2804,0.707107,0.000000,0.000000,0.707107 -2805,0.707107,0.000000,0.000000,0.707107 -2806,0.707107,0.000000,0.000000,0.707107 -2807,0.707107,0.000000,0.000000,0.707107 -2808,0.707107,0.000000,0.000000,0.707107 -2809,0.707107,0.000000,0.000000,0.707107 -2810,0.707107,0.000000,0.000000,0.707107 -2811,0.707107,0.000000,0.000000,0.707107 -2812,0.707107,0.000000,0.000000,0.707107 -2813,0.707107,0.000000,0.000000,0.707107 -2814,0.707107,0.000000,0.000000,0.707107 -2815,0.707107,0.000000,0.000000,0.707107 -2816,0.707107,0.000000,0.000000,0.707107 -2817,0.707107,0.000000,0.000000,0.707107 -2818,0.707107,0.000000,0.000000,0.707107 -2819,0.707107,0.000000,0.000000,0.707107 -2820,0.707107,0.000000,0.000000,0.707107 -2821,0.707107,0.000000,0.000000,0.707107 -2822,0.707107,0.000000,0.000000,0.707107 -2823,0.707107,0.000000,0.000000,0.707107 -2824,0.707107,0.000000,0.000000,0.707107 -2825,0.707107,0.000000,0.000000,0.707107 -2826,0.707107,0.000000,0.000000,0.707107 -2827,0.707107,0.000000,0.000000,0.707107 -2828,0.707107,0.000000,0.000000,0.707107 -2829,0.707107,0.000000,0.000000,0.707107 -2830,0.707107,0.000000,0.000000,0.707107 -2831,0.707107,0.000000,0.000000,0.707107 -2832,0.707107,0.000000,0.000000,0.707107 -2833,0.707107,0.000000,0.000000,0.707107 -2834,0.707107,0.000000,0.000000,0.707107 -2835,0.707107,0.000000,0.000000,0.707107 -2836,0.707107,0.000000,0.000000,0.707107 -2837,0.707107,0.000000,0.000000,0.707107 -2838,0.707107,0.000000,0.000000,0.707107 -2839,0.707107,0.000000,0.000000,0.707107 -2840,0.707107,0.000000,0.000000,0.707107 -2841,0.707107,0.000000,0.000000,0.707107 -2842,0.707107,0.000000,0.000000,0.707107 -2843,0.707107,0.000000,0.000000,0.707107 -2844,0.707107,0.000000,0.000000,0.707107 -2845,0.707107,0.000000,0.000000,0.707107 -2846,0.707107,0.000000,0.000000,0.707107 -2847,0.707107,0.000000,0.000000,0.707107 -2848,0.707107,0.000000,0.000000,0.707107 -2849,0.707107,0.000000,0.000000,0.707107 -2850,0.707107,0.000000,0.000000,0.707107 -2851,0.707107,0.000000,0.000000,0.707107 -2852,0.707107,0.000000,0.000000,0.707107 -2853,0.707107,0.000000,0.000000,0.707107 -2854,0.707107,0.000000,0.000000,0.707107 -2855,0.707107,0.000000,0.000000,0.707107 -2856,0.707107,0.000000,0.000000,0.707107 -2857,0.707107,0.000000,0.000000,0.707107 -2858,0.707107,0.000000,0.000000,0.707107 -2859,0.707107,0.000000,0.000000,0.707107 -2860,0.707107,0.000000,0.000000,0.707107 -2861,0.707107,0.000000,0.000000,0.707107 -2862,0.707107,0.000000,0.000000,0.707107 -2863,0.707107,0.000000,0.000000,0.707107 -2864,0.707107,0.000000,0.000000,0.707107 -2865,0.707107,0.000000,0.000000,0.707107 -2866,0.707107,0.000000,0.000000,0.707107 -2867,0.707107,0.000000,0.000000,0.707107 -2868,0.707107,0.000000,0.000000,0.707107 -2869,0.707107,0.000000,0.000000,0.707107 -2870,0.707107,0.000000,0.000000,0.707107 -2871,0.707107,0.000000,0.000000,0.707107 -2872,0.707107,0.000000,0.000000,0.707107 -2873,0.707107,0.000000,0.000000,0.707107 -2874,0.707107,0.000000,0.000000,0.707107 -2875,0.707107,0.000000,0.000000,0.707107 -2876,0.707107,0.000000,0.000000,0.707107 -2877,0.707107,0.000000,0.000000,0.707107 -2878,0.707107,0.000000,0.000000,0.707107 -2879,0.707107,0.000000,0.000000,0.707107 -2880,0.707107,0.000000,0.000000,0.707107 -2881,0.707107,0.000000,0.000000,0.707107 -2882,0.707107,0.000000,0.000000,0.707107 -2883,0.707107,0.000000,0.000000,0.707107 -2884,0.707107,0.000000,0.000000,0.707107 -2885,0.707107,0.000000,0.000000,0.707107 -2886,0.707107,0.000000,0.000000,0.707107 -2887,0.707107,0.000000,0.000000,0.707107 -2888,0.707107,0.000000,0.000000,0.707107 -2889,0.707107,0.000000,0.000000,0.707107 -2890,0.707107,0.000000,0.000000,0.707107 -2891,0.707107,0.000000,0.000000,0.707107 -2892,0.707107,0.000000,0.000000,0.707107 -2893,0.707107,0.000000,0.000000,0.707107 -2894,0.707107,0.000000,0.000000,0.707107 -2895,0.707107,0.000000,0.000000,0.707107 -2896,0.707107,0.000000,0.000000,0.707107 -2897,0.707107,0.000000,0.000000,0.707107 -2898,0.707107,0.000000,0.000000,0.707107 -2899,0.707107,0.000000,0.000000,0.707107 -2900,0.707107,0.000000,0.000000,0.707107 -2901,0.707107,0.000000,0.000000,0.707107 -2902,0.707107,0.000000,0.000000,0.707107 -2903,0.707107,0.000000,0.000000,0.707107 -2904,0.707107,0.000000,0.000000,0.707107 -2905,0.707107,0.000000,0.000000,0.707107 -2906,0.707107,0.000000,0.000000,0.707107 -2907,0.707107,0.000000,0.000000,0.707107 -2908,0.707107,0.000000,0.000000,0.707107 -2909,0.707107,0.000000,0.000000,0.707107 -2910,0.707107,0.000000,0.000000,0.707107 -2911,0.707107,0.000000,0.000000,0.707107 -2912,0.707107,0.000000,0.000000,0.707107 -2913,0.707107,0.000000,0.000000,0.707107 -2914,0.707107,0.000000,0.000000,0.707107 -2915,0.707107,0.000000,0.000000,0.707107 -2916,0.707107,0.000000,0.000000,0.707107 -2917,0.707107,0.000000,0.000000,0.707107 -2918,0.707107,0.000000,0.000000,0.707107 -2919,0.707107,0.000000,0.000000,0.707107 -2920,0.707107,0.000000,0.000000,0.707107 -2921,0.707107,0.000000,0.000000,0.707107 -2922,0.707107,0.000000,0.000000,0.707107 -2923,0.707107,0.000000,0.000000,0.707107 -2924,0.707107,0.000000,0.000000,0.707107 -2925,0.707107,0.000000,0.000000,0.707107 -2926,0.707107,0.000000,0.000000,0.707107 -2927,0.707107,0.000000,0.000000,0.707107 -2928,0.707107,0.000000,0.000000,0.707107 -2929,0.707107,0.000000,0.000000,0.707107 -2930,0.707107,0.000000,0.000000,0.707107 -2931,0.707107,0.000000,0.000000,0.707107 -2932,0.707107,0.000000,0.000000,0.707107 -2933,0.707107,0.000000,0.000000,0.707107 -2934,0.707107,0.000000,0.000000,0.707107 -2935,0.707107,0.000000,0.000000,0.707107 -2936,0.707107,0.000000,0.000000,0.707107 -2937,0.707107,0.000000,0.000000,0.707107 -2938,0.707107,0.000000,0.000000,0.707107 -2939,0.707107,0.000000,0.000000,0.707107 -2940,0.707107,0.000000,0.000000,0.707107 -2941,0.707107,0.000000,0.000000,0.707107 -2942,0.707107,0.000000,0.000000,0.707107 -2943,0.707107,0.000000,0.000000,0.707107 -2944,0.707107,0.000000,0.000000,0.707107 -2945,0.707107,0.000000,0.000000,0.707107 -2946,0.707107,0.000000,0.000000,0.707107 -2947,0.707107,0.000000,0.000000,0.707107 -2948,0.707107,0.000000,0.000000,0.707107 -2949,0.707107,0.000000,0.000000,0.707107 -2950,0.707107,0.000000,0.000000,0.707107 -2951,0.707107,0.000000,0.000000,0.707107 -2952,0.707107,0.000000,0.000000,0.707107 -2953,0.707107,0.000000,0.000000,0.707107 -2954,0.707107,0.000000,0.000000,0.707107 -2955,0.707107,0.000000,0.000000,0.707107 -2956,0.707107,0.000000,0.000000,0.707107 -2957,0.707107,0.000000,0.000000,0.707107 -2958,0.707107,0.000000,0.000000,0.707107 -2959,0.707107,0.000000,0.000000,0.707107 -2960,0.707107,0.000000,0.000000,0.707107 -2961,0.707107,0.000000,0.000000,0.707107 -2962,0.707107,0.000000,0.000000,0.707107 -2963,0.707107,0.000000,0.000000,0.707107 -2964,0.707107,0.000000,0.000000,0.707107 -2965,0.707107,0.000000,0.000000,0.707107 -2966,0.707107,0.000000,0.000000,0.707107 -2967,0.707107,0.000000,0.000000,0.707107 -2968,0.707107,0.000000,0.000000,0.707107 -2969,0.707107,0.000000,0.000000,0.707107 -2970,0.707107,0.000000,0.000000,0.707107 -2971,0.707107,0.000000,0.000000,0.707107 -2972,0.707107,0.000000,0.000000,0.707107 -2973,0.707107,0.000000,0.000000,0.707107 -2974,0.707107,0.000000,0.000000,0.707107 -2975,0.707107,0.000000,0.000000,0.707107 -2976,0.707107,0.000000,0.000000,0.707107 -2977,0.707107,0.000000,0.000000,0.707107 -2978,0.707107,0.000000,0.000000,0.707107 -2979,0.707107,0.000000,0.000000,0.707107 -2980,0.707107,0.000000,0.000000,0.707107 -2981,0.707107,0.000000,0.000000,0.707107 -2982,0.707107,0.000000,0.000000,0.707107 -2983,0.707107,0.000000,0.000000,0.707107 -2984,0.707107,0.000000,0.000000,0.707107 -2985,0.707107,0.000000,0.000000,0.707107 -2986,0.707107,0.000000,0.000000,0.707107 -2987,0.707107,0.000000,0.000000,0.707107 -2988,0.707107,0.000000,0.000000,0.707107 -2989,0.707107,0.000000,0.000000,0.707107 -2990,0.707107,0.000000,0.000000,0.707107 -2991,0.707107,0.000000,0.000000,0.707107 -2992,0.707107,0.000000,0.000000,0.707107 -2993,0.707107,0.000000,0.000000,0.707107 -2994,0.707107,0.000000,0.000000,0.707107 -2995,0.707107,0.000000,0.000000,0.707107 -2996,0.707107,0.000000,0.000000,0.707107 -2997,0.707107,0.000000,0.000000,0.707107 -2998,0.707107,0.000000,0.000000,0.707107 -2999,0.707107,0.000000,0.000000,0.707107 -3000,0.707107,0.000000,0.000000,0.707107 -3001,0.707107,0.000000,0.000000,0.707107 -3002,0.707107,0.000000,0.000000,0.707107 -3003,0.707107,0.000000,0.000000,0.707107 -3004,0.707107,0.000000,0.000000,0.707107 -3005,0.707107,0.000000,0.000000,0.707107 -3006,0.707107,0.000000,0.000000,0.707107 -3007,0.707107,0.000000,0.000000,0.707107 -3008,0.707107,0.000000,0.000000,0.707107 -3009,0.707107,0.000000,0.000000,0.707107 -3010,0.707107,0.000000,0.000000,0.707107 -3011,0.707107,0.000000,0.000000,0.707107 -3012,0.707107,0.000000,0.000000,0.707107 -3013,0.707107,0.000000,0.000000,0.707107 -3014,0.707107,0.000000,0.000000,0.707107 -3015,0.707107,0.000000,0.000000,0.707107 -3016,0.707107,0.000000,0.000000,0.707107 -3017,0.707107,0.000000,0.000000,0.707107 -3018,0.707107,0.000000,0.000000,0.707107 -3019,0.707107,0.000000,0.000000,0.707107 -3020,0.707107,0.000000,0.000000,0.707107 -3021,0.707107,0.000000,0.000000,0.707107 -3022,0.707107,0.000000,0.000000,0.707107 -3023,0.707107,0.000000,0.000000,0.707107 -3024,0.707107,0.000000,0.000000,0.707107 -3025,0.707107,0.000000,0.000000,0.707107 -3026,0.707107,0.000000,0.000000,0.707107 -3027,0.707107,0.000000,0.000000,0.707107 -3028,0.707107,0.000000,0.000000,0.707107 -3029,0.707107,0.000000,0.000000,0.707107 -3030,0.707107,0.000000,0.000000,0.707107 -3031,0.707107,0.000000,0.000000,0.707107 -3032,0.707107,0.000000,0.000000,0.707107 -3033,0.707107,0.000000,0.000000,0.707107 -3034,0.707107,0.000000,0.000000,0.707107 -3035,0.707107,0.000000,0.000000,0.707107 -3036,0.707107,0.000000,0.000000,0.707107 -3037,0.707107,0.000000,0.000000,0.707107 -3038,0.707107,0.000000,0.000000,0.707107 -3039,0.707107,0.000000,0.000000,0.707107 -3040,0.707107,0.000000,0.000000,0.707107 -3041,0.707107,0.000000,0.000000,0.707107 -3042,0.707107,0.000000,0.000000,0.707107 -3043,0.707107,0.000000,0.000000,0.707107 -3044,0.707107,0.000000,0.000000,0.707107 -3045,0.707107,0.000000,0.000000,0.707107 -3046,0.707107,0.000000,0.000000,0.707107 -3047,0.707107,0.000000,0.000000,0.707107 -3048,0.707107,0.000000,0.000000,0.707107 -3049,0.707107,0.000000,0.000000,0.707107 -3050,0.707107,0.000000,0.000000,0.707107 -3051,0.707107,0.000000,0.000000,0.707107 -3052,0.707107,0.000000,0.000000,0.707107 -3053,0.707107,0.000000,0.000000,0.707107 -3054,0.707107,0.000000,0.000000,0.707107 -3055,0.707107,0.000000,0.000000,0.707107 -3056,0.707107,0.000000,0.000000,0.707107 -3057,0.707107,0.000000,0.000000,0.707107 -3058,0.707107,0.000000,0.000000,0.707107 -3059,0.707107,0.000000,0.000000,0.707107 -3060,0.707107,0.000000,0.000000,0.707107 -3061,0.707107,0.000000,0.000000,0.707107 -3062,0.707107,0.000000,0.000000,0.707107 -3063,0.707107,0.000000,0.000000,0.707107 -3064,0.707107,0.000000,0.000000,0.707107 -3065,0.707107,0.000000,0.000000,0.707107 -3066,0.707107,0.000000,0.000000,0.707107 -3067,0.707107,0.000000,0.000000,0.707107 -3068,0.707107,0.000000,0.000000,0.707107 -3069,0.707107,0.000000,0.000000,0.707107 -3070,0.707107,0.000000,0.000000,0.707107 -3071,0.707107,0.000000,0.000000,0.707107 -3072,0.707107,0.000000,0.000000,0.707107 -3073,0.707107,0.000000,0.000000,0.707107 -3074,0.707107,0.000000,0.000000,0.707107 -3075,0.707107,0.000000,0.000000,0.707107 -3076,0.707107,0.000000,0.000000,0.707107 -3077,0.707107,0.000000,0.000000,0.707107 -3078,0.707107,0.000000,0.000000,0.707107 -3079,0.707107,0.000000,0.000000,0.707107 -3080,0.707107,0.000000,0.000000,0.707107 -3081,0.707107,0.000000,0.000000,0.707107 -3082,0.707107,0.000000,0.000000,0.707107 -3083,0.707107,0.000000,0.000000,0.707107 -3084,0.707107,0.000000,0.000000,0.707107 -3085,0.707107,0.000000,0.000000,0.707107 -3086,0.707107,0.000000,0.000000,0.707107 -3087,0.707107,0.000000,0.000000,0.707107 -3088,0.707107,0.000000,0.000000,0.707107 -3089,0.707107,0.000000,0.000000,0.707107 -3090,0.707107,0.000000,0.000000,0.707107 -3091,0.707107,0.000000,0.000000,0.707107 -3092,0.707107,0.000000,0.000000,0.707107 -3093,0.707107,0.000000,0.000000,0.707107 -3094,0.707107,0.000000,0.000000,0.707107 -3095,0.707107,0.000000,0.000000,0.707107 -3096,0.707107,0.000000,0.000000,0.707107 -3097,0.707107,0.000000,0.000000,0.707107 -3098,0.707107,0.000000,0.000000,0.707107 -3099,0.707107,0.000000,0.000000,0.707107 -3100,0.707107,0.000000,0.000000,0.707107 -3101,0.707107,0.000000,0.000000,0.707107 -3102,0.707107,0.000000,0.000000,0.707107 -3103,0.707107,0.000000,0.000000,0.707107 -3104,0.707107,0.000000,0.000000,0.707107 -3105,0.707107,0.000000,0.000000,0.707107 -3106,0.707107,0.000000,0.000000,0.707107 -3107,0.707107,0.000000,0.000000,0.707107 -3108,0.707107,0.000000,0.000000,0.707107 -3109,0.707107,0.000000,0.000000,0.707107 -3110,0.707107,0.000000,0.000000,0.707107 -3111,0.707107,0.000000,0.000000,0.707107 -3112,0.707107,0.000000,0.000000,0.707107 -3113,0.707107,0.000000,0.000000,0.707107 -3114,0.707107,0.000000,0.000000,0.707107 -3115,0.707107,0.000000,0.000000,0.707107 -3116,0.707107,0.000000,0.000000,0.707107 -3117,0.707107,0.000000,0.000000,0.707107 -3118,0.707107,0.000000,0.000000,0.707107 -3119,0.707107,0.000000,0.000000,0.707107 -3120,0.707107,0.000000,0.000000,0.707107 -3121,0.707107,0.000000,0.000000,0.707107 -3122,0.707107,0.000000,0.000000,0.707107 -3123,0.707107,0.000000,0.000000,0.707107 -3124,0.707107,0.000000,0.000000,0.707107 -3125,0.707107,0.000000,0.000000,0.707107 -3126,0.707107,0.000000,0.000000,0.707107 -3127,0.707107,0.000000,0.000000,0.707107 -3128,0.707107,0.000000,0.000000,0.707107 -3129,0.707107,0.000000,0.000000,0.707107 -3130,0.707107,0.000000,0.000000,0.707107 -3131,0.707107,0.000000,0.000000,0.707107 -3132,0.707107,0.000000,0.000000,0.707107 -3133,0.707107,0.000000,0.000000,0.707107 -3134,0.707107,0.000000,0.000000,0.707107 -3135,0.707107,0.000000,0.000000,0.707107 -3136,0.707107,0.000000,0.000000,0.707107 -3137,0.707107,0.000000,0.000000,0.707107 -3138,0.707107,0.000000,0.000000,0.707107 -3139,0.707107,0.000000,0.000000,0.707107 -3140,0.707107,0.000000,0.000000,0.707107 -3141,0.707107,0.000000,0.000000,0.707107 -3142,0.707107,0.000000,0.000000,0.707107 -3143,0.707107,0.000000,0.000000,0.707107 -3144,0.707107,0.000000,0.000000,0.707107 -3145,0.707107,0.000000,0.000000,0.707107 -3146,0.707107,0.000000,0.000000,0.707107 -3147,0.707107,0.000000,0.000000,0.707107 -3148,0.707107,0.000000,0.000000,0.707107 -3149,0.707107,0.000000,0.000000,0.707107 -3150,0.707107,0.000000,0.000000,0.707107 -3151,0.707107,0.000000,0.000000,0.707107 -3152,0.707107,0.000000,0.000000,0.707107 -3153,0.707107,0.000000,0.000000,0.707107 -3154,0.707107,0.000000,0.000000,0.707107 -3155,0.707107,0.000000,0.000000,0.707107 -3156,0.707107,0.000000,0.000000,0.707107 -3157,0.707107,0.000000,0.000000,0.707107 -3158,0.707107,0.000000,0.000000,0.707107 -3159,0.707107,0.000000,0.000000,0.707107 -3160,0.707107,0.000000,0.000000,0.707107 -3161,0.707107,0.000000,0.000000,0.707107 -3162,0.707107,0.000000,0.000000,0.707107 -3163,0.707107,0.000000,0.000000,0.707107 -3164,0.707107,0.000000,0.000000,0.707107 -3165,0.707107,0.000000,0.000000,0.707107 -3166,0.707107,0.000000,0.000000,0.707107 -3167,0.707107,0.000000,0.000000,0.707107 -3168,0.707107,0.000000,0.000000,0.707107 -3169,0.707107,0.000000,0.000000,0.707107 -3170,0.707107,0.000000,0.000000,0.707107 -3171,0.707107,0.000000,0.000000,0.707107 -3172,0.707107,0.000000,0.000000,0.707107 -3173,0.707107,0.000000,0.000000,0.707107 -3174,0.707107,0.000000,0.000000,0.707107 -3175,0.707107,0.000000,0.000000,0.707107 -3176,0.707107,0.000000,0.000000,0.707107 -3177,0.707107,0.000000,0.000000,0.707107 -3178,0.707107,0.000000,0.000000,0.707107 -3179,0.707107,0.000000,0.000000,0.707107 -3180,0.707107,0.000000,0.000000,0.707107 -3181,0.707107,0.000000,0.000000,0.707107 -3182,0.707107,0.000000,0.000000,0.707107 -3183,0.707107,0.000000,0.000000,0.707107 -3184,0.707107,0.000000,0.000000,0.707107 -3185,0.707107,0.000000,0.000000,0.707107 -3186,0.707107,0.000000,0.000000,0.707107 -3187,0.707107,0.000000,0.000000,0.707107 -3188,0.707107,0.000000,0.000000,0.707107 -3189,0.707107,0.000000,0.000000,0.707107 -3190,0.707107,0.000000,0.000000,0.707107 -3191,0.707107,0.000000,0.000000,0.707107 -3192,0.707107,0.000000,0.000000,0.707107 -3193,0.707107,0.000000,0.000000,0.707107 -3194,0.707107,0.000000,0.000000,0.707107 -3195,0.707107,0.000000,0.000000,0.707107 -3196,0.707107,0.000000,0.000000,0.707107 -3197,0.707107,0.000000,0.000000,0.707107 -3198,0.707107,0.000000,0.000000,0.707107 -3199,0.707107,0.000000,0.000000,0.707107 -3200,0.707107,0.000000,0.000000,0.707107 -3201,0.707107,0.000000,0.000000,0.707107 -3202,0.707107,0.000000,0.000000,0.707107 -3203,0.707107,0.000000,0.000000,0.707107 -3204,0.707107,0.000000,0.000000,0.707107 -3205,0.707107,0.000000,0.000000,0.707107 -3206,0.707107,0.000000,0.000000,0.707107 -3207,0.707107,0.000000,0.000000,0.707107 -3208,0.707107,0.000000,0.000000,0.707107 -3209,0.707107,0.000000,0.000000,0.707107 -3210,0.707107,0.000000,0.000000,0.707107 -3211,0.707107,0.000000,0.000000,0.707107 -3212,0.707107,0.000000,0.000000,0.707107 -3213,0.707107,0.000000,0.000000,0.707107 -3214,0.707107,0.000000,0.000000,0.707107 -3215,0.707107,0.000000,0.000000,0.707107 -3216,0.707107,0.000000,0.000000,0.707107 -3217,0.707107,0.000000,0.000000,0.707107 -3218,0.707107,0.000000,0.000000,0.707107 -3219,0.707107,0.000000,0.000000,0.707107 -3220,0.707107,0.000000,0.000000,0.707107 -3221,0.707107,0.000000,0.000000,0.707107 -3222,0.707107,0.000000,0.000000,0.707107 -3223,0.707107,0.000000,0.000000,0.707107 -3224,0.707107,0.000000,0.000000,0.707107 -3225,0.707107,0.000000,0.000000,0.707107 -3226,0.707107,0.000000,0.000000,0.707107 -3227,0.707107,0.000000,0.000000,0.707107 -3228,0.707107,0.000000,0.000000,0.707107 -3229,0.707107,0.000000,0.000000,0.707107 -3230,0.707107,0.000000,0.000000,0.707107 -3231,0.707107,0.000000,0.000000,0.707107 -3232,0.707107,0.000000,0.000000,0.707107 -3233,0.707107,0.000000,0.000000,0.707107 -3234,0.707107,0.000000,0.000000,0.707107 -3235,0.707107,0.000000,0.000000,0.707107 -3236,0.707107,0.000000,0.000000,0.707107 -3237,0.707107,0.000000,0.000000,0.707107 -3238,0.707107,0.000000,0.000000,0.707107 -3239,0.707107,0.000000,0.000000,0.707107 -3240,0.707107,0.000000,0.000000,0.707107 -3241,0.707107,0.000000,0.000000,0.707107 -3242,0.707107,0.000000,0.000000,0.707107 -3243,0.707107,0.000000,0.000000,0.707107 -3244,0.707107,0.000000,0.000000,0.707107 -3245,0.707107,0.000000,0.000000,0.707107 -3246,0.707107,0.000000,0.000000,0.707107 -3247,0.707107,0.000000,0.000000,0.707107 -3248,0.707107,0.000000,0.000000,0.707107 -3249,0.707107,0.000000,0.000000,0.707107 -3250,0.707107,0.000000,0.000000,0.707107 -3251,0.707107,0.000000,0.000000,0.707107 -3252,0.707107,0.000000,0.000000,0.707107 -3253,0.707107,0.000000,0.000000,0.707107 -3254,0.707107,0.000000,0.000000,0.707107 -3255,0.707107,0.000000,0.000000,0.707107 -3256,0.707107,0.000000,0.000000,0.707107 -3257,0.707107,0.000000,0.000000,0.707107 -3258,0.707107,0.000000,0.000000,0.707107 -3259,0.707107,0.000000,0.000000,0.707107 -3260,0.707107,0.000000,0.000000,0.707107 -3261,0.707107,0.000000,0.000000,0.707107 -3262,0.707107,0.000000,0.000000,0.707107 -3263,0.707107,0.000000,0.000000,0.707107 -3264,0.707107,0.000000,0.000000,0.707107 -3265,0.707107,0.000000,0.000000,0.707107 -3266,0.707107,0.000000,0.000000,0.707107 -3267,0.707107,0.000000,0.000000,0.707107 -3268,0.707107,0.000000,0.000000,0.707107 -3269,0.707107,0.000000,0.000000,0.707107 -3270,0.707107,0.000000,0.000000,0.707107 -3271,0.707107,0.000000,0.000000,0.707107 -3272,0.707107,0.000000,0.000000,0.707107 -3273,0.707107,0.000000,0.000000,0.707107 -3274,0.707107,0.000000,0.000000,0.707107 -3275,0.707107,0.000000,0.000000,0.707107 -3276,0.707107,0.000000,0.000000,0.707107 -3277,0.707107,0.000000,0.000000,0.707107 -3278,0.707107,0.000000,0.000000,0.707107 -3279,0.707107,0.000000,0.000000,0.707107 -3280,0.707107,0.000000,0.000000,0.707107 -3281,0.707107,0.000000,0.000000,0.707107 -3282,0.707107,0.000000,0.000000,0.707107 -3283,0.707107,0.000000,0.000000,0.707107 -3284,0.707107,0.000000,0.000000,0.707107 -3285,0.707107,0.000000,0.000000,0.707107 -3286,0.707107,0.000000,0.000000,0.707107 -3287,0.707107,0.000000,0.000000,0.707107 -3288,0.707107,0.000000,0.000000,0.707107 -3289,0.707107,0.000000,0.000000,0.707107 -3290,0.707107,0.000000,0.000000,0.707107 -3291,0.707107,0.000000,0.000000,0.707107 -3292,0.707107,0.000000,0.000000,0.707107 -3293,0.707107,0.000000,0.000000,0.707107 -3294,0.707107,0.000000,0.000000,0.707107 -3295,0.707107,0.000000,0.000000,0.707107 -3296,0.707107,0.000000,0.000000,0.707107 -3297,0.707107,0.000000,0.000000,0.707107 -3298,0.707107,0.000000,0.000000,0.707107 -3299,0.707107,0.000000,0.000000,0.707107 -3300,0.707107,0.000000,0.000000,0.707107 -3301,0.707107,0.000000,0.000000,0.707107 -3302,0.707107,0.000000,0.000000,0.707107 -3303,0.707107,0.000000,0.000000,0.707107 -3304,0.707107,0.000000,0.000000,0.707107 -3305,0.707107,0.000000,0.000000,0.707107 -3306,0.707107,0.000000,0.000000,0.707107 -3307,0.707107,0.000000,0.000000,0.707107 -3308,0.707107,0.000000,0.000000,0.707107 -3309,0.707107,0.000000,0.000000,0.707107 -3310,0.707107,0.000000,0.000000,0.707107 -3311,0.707107,0.000000,0.000000,0.707107 -3312,0.707107,0.000000,0.000000,0.707107 -3313,0.707107,0.000000,0.000000,0.707107 -3314,0.707107,0.000000,0.000000,0.707107 -3315,0.707107,0.000000,0.000000,0.707107 -3316,0.707107,0.000000,0.000000,0.707107 -3317,0.707107,0.000000,0.000000,0.707107 -3318,0.707107,0.000000,0.000000,0.707107 -3319,0.707107,0.000000,0.000000,0.707107 -3320,0.707107,0.000000,0.000000,0.707107 -3321,0.707107,0.000000,0.000000,0.707107 -3322,0.707107,0.000000,0.000000,0.707107 -3323,0.707107,0.000000,0.000000,0.707107 -3324,0.707107,0.000000,0.000000,0.707107 -3325,0.707107,0.000000,0.000000,0.707107 -3326,0.707107,0.000000,0.000000,0.707107 -3327,0.707107,0.000000,0.000000,0.707107 -3328,0.707107,0.000000,0.000000,0.707107 -3329,0.707107,0.000000,0.000000,0.707107 -3330,0.707107,0.000000,0.000000,0.707107 -3331,0.707107,0.000000,0.000000,0.707107 -3332,0.707107,0.000000,0.000000,0.707107 -3333,0.707107,0.000000,0.000000,0.707107 -3334,0.707107,0.000000,0.000000,0.707107 -3335,0.707107,0.000000,0.000000,0.707107 -3336,0.707107,0.000000,0.000000,0.707107 -3337,0.707107,0.000000,0.000000,0.707107 -3338,0.707107,0.000000,0.000000,0.707107 -3339,0.707107,0.000000,0.000000,0.707107 -3340,0.707107,0.000000,0.000000,0.707107 -3341,0.707107,0.000000,0.000000,0.707107 -3342,0.707107,0.000000,0.000000,0.707107 -3343,0.707107,0.000000,0.000000,0.707107 -3344,0.707107,0.000000,0.000000,0.707107 -3345,0.707107,0.000000,0.000000,0.707107 -3346,0.707107,0.000000,0.000000,0.707107 -3347,0.707107,0.000000,0.000000,0.707107 -3348,0.707107,0.000000,0.000000,0.707107 -3349,0.707107,0.000000,0.000000,0.707107 -3350,0.707107,0.000000,0.000000,0.707107 -3351,0.707107,0.000000,0.000000,0.707107 -3352,0.707107,0.000000,0.000000,0.707107 -3353,0.707107,0.000000,0.000000,0.707107 -3354,0.707107,0.000000,0.000000,0.707107 -3355,0.707107,0.000000,0.000000,0.707107 -3356,0.707107,0.000000,0.000000,0.707107 -3357,0.707107,0.000000,0.000000,0.707107 -3358,0.707107,0.000000,0.000000,0.707107 -3359,0.707107,0.000000,0.000000,0.707107 -3360,0.707107,0.000000,0.000000,0.707107 -3361,0.707107,0.000000,0.000000,0.707107 -3362,0.707107,0.000000,0.000000,0.707107 -3363,0.707107,0.000000,0.000000,0.707107 -3364,0.707107,0.000000,0.000000,0.707107 -3365,0.707107,0.000000,0.000000,0.707107 -3366,0.707107,0.000000,0.000000,0.707107 -3367,0.707107,0.000000,0.000000,0.707107 -3368,0.707107,0.000000,0.000000,0.707107 -3369,0.707107,0.000000,0.000000,0.707107 -3370,0.707107,0.000000,0.000000,0.707107 -3371,0.707107,0.000000,0.000000,0.707107 -3372,0.707107,0.000000,0.000000,0.707107 -3373,0.707107,0.000000,0.000000,0.707107 -3374,0.707107,0.000000,0.000000,0.707107 -3375,0.707107,0.000000,0.000000,0.707107 -3376,0.707107,0.000000,0.000000,0.707107 -3377,0.707107,0.000000,0.000000,0.707107 -3378,0.707107,0.000000,0.000000,0.707107 -3379,0.707107,0.000000,0.000000,0.707107 -3380,0.707107,0.000000,0.000000,0.707107 -3381,0.707107,0.000000,0.000000,0.707107 -3382,0.707107,0.000000,0.000000,0.707107 -3383,0.707107,0.000000,0.000000,0.707107 -3384,0.707107,0.000000,0.000000,0.707107 -3385,0.707107,0.000000,0.000000,0.707107 -3386,0.707107,0.000000,0.000000,0.707107 -3387,0.707107,0.000000,0.000000,0.707107 -3388,0.707107,0.000000,0.000000,0.707107 -3389,0.707107,0.000000,0.000000,0.707107 -3390,0.707107,0.000000,0.000000,0.707107 -3391,0.707107,0.000000,0.000000,0.707107 -3392,0.707107,0.000000,0.000000,0.707107 -3393,0.707107,0.000000,0.000000,0.707107 -3394,0.707107,0.000000,0.000000,0.707107 -3395,0.707107,0.000000,0.000000,0.707107 -3396,0.707107,0.000000,0.000000,0.707107 -3397,0.707107,0.000000,0.000000,0.707107 -3398,0.707107,0.000000,0.000000,0.707107 -3399,0.707107,0.000000,0.000000,0.707107 -3400,0.707107,0.000000,0.000000,0.707107 -3401,0.707107,0.000000,0.000000,0.707107 -3402,0.707107,0.000000,0.000000,0.707107 -3403,0.707107,0.000000,0.000000,0.707107 -3404,0.707107,0.000000,0.000000,0.707107 -3405,0.707107,0.000000,0.000000,0.707107 -3406,0.707107,0.000000,0.000000,0.707107 -3407,0.707107,0.000000,0.000000,0.707107 -3408,0.707107,0.000000,0.000000,0.707107 -3409,0.707107,0.000000,0.000000,0.707107 -3410,0.707107,0.000000,0.000000,0.707107 -3411,0.707107,0.000000,0.000000,0.707107 -3412,0.707107,0.000000,0.000000,0.707107 -3413,0.707107,0.000000,0.000000,0.707107 -3414,0.707107,0.000000,0.000000,0.707107 -3415,0.707107,0.000000,0.000000,0.707107 -3416,0.707107,0.000000,0.000000,0.707107 -3417,0.707107,0.000000,0.000000,0.707107 -3418,0.707107,0.000000,0.000000,0.707107 -3419,0.707107,0.000000,0.000000,0.707107 -3420,0.707107,0.000000,0.000000,0.707107 -3421,0.707107,0.000000,0.000000,0.707107 -3422,0.707107,0.000000,0.000000,0.707107 -3423,0.707107,0.000000,0.000000,0.707107 -3424,0.707107,0.000000,0.000000,0.707107 -3425,0.707107,0.000000,0.000000,0.707107 -3426,0.707107,0.000000,0.000000,0.707107 -3427,0.707107,0.000000,0.000000,0.707107 -3428,0.707107,0.000000,0.000000,0.707107 -3429,0.707107,0.000000,0.000000,0.707107 -3430,0.707107,0.000000,0.000000,0.707107 -3431,0.707107,0.000000,0.000000,0.707107 -3432,0.707107,0.000000,0.000000,0.707107 -3433,0.707107,0.000000,0.000000,0.707107 -3434,0.707107,0.000000,0.000000,0.707107 -3435,0.707107,0.000000,0.000000,0.707107 -3436,0.707107,0.000000,0.000000,0.707107 -3437,0.707107,0.000000,0.000000,0.707107 -3438,0.707107,0.000000,0.000000,0.707107 -3439,0.707107,0.000000,0.000000,0.707107 -3440,0.707107,0.000000,0.000000,0.707107 -3441,0.707107,0.000000,0.000000,0.707107 -3442,0.707107,0.000000,0.000000,0.707107 -3443,0.707107,0.000000,0.000000,0.707107 -3444,0.707107,0.000000,0.000000,0.707107 -3445,0.707107,0.000000,0.000000,0.707107 -3446,0.707107,0.000000,0.000000,0.707107 -3447,0.707107,0.000000,0.000000,0.707107 -3448,0.707107,0.000000,0.000000,0.707107 -3449,0.707107,0.000000,0.000000,0.707107 -3450,0.707107,0.000000,0.000000,0.707107 -3451,0.707107,0.000000,0.000000,0.707107 -3452,0.707107,0.000000,0.000000,0.707107 -3453,0.707107,0.000000,0.000000,0.707107 -3454,0.707107,0.000000,0.000000,0.707107 -3455,0.707107,0.000000,0.000000,0.707107 -3456,0.707107,0.000000,0.000000,0.707107 -3457,0.707107,0.000000,0.000000,0.707107 -3458,0.707107,0.000000,0.000000,0.707107 -3459,0.707107,0.000000,0.000000,0.707107 -3460,0.707107,0.000000,0.000000,0.707107 -3461,0.707107,0.000000,0.000000,0.707107 -3462,0.707107,0.000000,0.000000,0.707107 -3463,0.707107,0.000000,0.000000,0.707107 -3464,0.707107,0.000000,0.000000,0.707107 -3465,0.707107,0.000000,0.000000,0.707107 -3466,0.707107,0.000000,0.000000,0.707107 -3467,0.707107,0.000000,0.000000,0.707107 -3468,0.707107,0.000000,0.000000,0.707107 -3469,0.707107,0.000000,0.000000,0.707107 -3470,0.707107,0.000000,0.000000,0.707107 -3471,0.707107,0.000000,0.000000,0.707107 -3472,0.707107,0.000000,0.000000,0.707107 -3473,0.707107,0.000000,0.000000,0.707107 -3474,0.707107,0.000000,0.000000,0.707107 -3475,0.707107,0.000000,0.000000,0.707107 -3476,0.707107,0.000000,0.000000,0.707107 -3477,0.707107,0.000000,0.000000,0.707107 -3478,0.707107,0.000000,0.000000,0.707107 -3479,0.707107,0.000000,0.000000,0.707107 -3480,0.707107,0.000000,0.000000,0.707107 -3481,0.707107,0.000000,0.000000,0.707107 -3482,0.707107,0.000000,0.000000,0.707107 -3483,0.707107,0.000000,0.000000,0.707107 -3484,0.707107,0.000000,0.000000,0.707107 -3485,0.707107,0.000000,0.000000,0.707107 -3486,0.707107,0.000000,0.000000,0.707107 -3487,0.707107,0.000000,0.000000,0.707107 -3488,0.707107,0.000000,0.000000,0.707107 -3489,0.707107,0.000000,0.000000,0.707107 -3490,0.707107,0.000000,0.000000,0.707107 -3491,0.707107,0.000000,0.000000,0.707107 -3492,0.707107,0.000000,0.000000,0.707107 -3493,0.707107,0.000000,0.000000,0.707107 -3494,0.707107,0.000000,0.000000,0.707107 -3495,0.707107,0.000000,0.000000,0.707107 -3496,0.707107,0.000000,0.000000,0.707107 -3497,0.707107,0.000000,0.000000,0.707107 -3498,0.707107,0.000000,0.000000,0.707107 -3499,0.707107,0.000000,0.000000,0.707107 -3500,0.707107,0.000000,0.000000,0.707107 -3501,0.707107,0.000000,0.000000,0.707107 -3502,0.707107,0.000000,0.000000,0.707107 -3503,0.707107,0.000000,0.000000,0.707107 -3504,0.707107,0.000000,0.000000,0.707107 -3505,0.707107,0.000000,0.000000,0.707107 -3506,0.707107,0.000000,0.000000,0.707107 -3507,0.707107,0.000000,0.000000,0.707107 -3508,0.707107,0.000000,0.000000,0.707107 -3509,0.707107,0.000000,0.000000,0.707107 -3510,0.707107,0.000000,0.000000,0.707107 -3511,0.707107,0.000000,0.000000,0.707107 -3512,0.707107,0.000000,0.000000,0.707107 -3513,0.707107,0.000000,0.000000,0.707107 -3514,0.707107,0.000000,0.000000,0.707107 -3515,0.707107,0.000000,0.000000,0.707107 -3516,0.707107,0.000000,0.000000,0.707107 -3517,0.707107,0.000000,0.000000,0.707107 -3518,0.707107,0.000000,0.000000,0.707107 -3519,0.707107,0.000000,0.000000,0.707107 -3520,0.707107,0.000000,0.000000,0.707107 -3521,0.707107,0.000000,0.000000,0.707107 -3522,0.707107,0.000000,0.000000,0.707107 -3523,0.707107,0.000000,0.000000,0.707107 -3524,0.707107,0.000000,0.000000,0.707107 -3525,0.707107,0.000000,0.000000,0.707107 -3526,0.707107,0.000000,0.000000,0.707107 -3527,0.707107,0.000000,0.000000,0.707107 -3528,0.707107,0.000000,0.000000,0.707107 -3529,0.707107,0.000000,0.000000,0.707107 -3530,0.707107,0.000000,0.000000,0.707107 -3531,0.707107,0.000000,0.000000,0.707107 -3532,0.707107,0.000000,0.000000,0.707107 -3533,0.707107,0.000000,0.000000,0.707107 -3534,0.707107,0.000000,0.000000,0.707107 -3535,0.707107,0.000000,0.000000,0.707107 -3536,0.707107,0.000000,0.000000,0.707107 -3537,0.707107,0.000000,0.000000,0.707107 -3538,0.707107,0.000000,0.000000,0.707107 -3539,0.707107,0.000000,0.000000,0.707107 -3540,0.707107,0.000000,0.000000,0.707107 -3541,0.707107,0.000000,0.000000,0.707107 -3542,0.707107,0.000000,0.000000,0.707107 -3543,0.707107,0.000000,0.000000,0.707107 -3544,0.707107,0.000000,0.000000,0.707107 -3545,0.707107,0.000000,0.000000,0.707107 -3546,0.707107,0.000000,0.000000,0.707107 -3547,0.707107,0.000000,0.000000,0.707107 -3548,0.707107,0.000000,0.000000,0.707107 -3549,0.707107,0.000000,0.000000,0.707107 -3550,0.707107,0.000000,0.000000,0.707107 -3551,0.707107,0.000000,0.000000,0.707107 -3552,0.707107,0.000000,0.000000,0.707107 -3553,0.707107,0.000000,0.000000,0.707107 -3554,0.707107,0.000000,0.000000,0.707107 -3555,0.707107,0.000000,0.000000,0.707107 -3556,0.707107,0.000000,0.000000,0.707107 -3557,0.707107,0.000000,0.000000,0.707107 -3558,0.707107,0.000000,0.000000,0.707107 -3559,0.707107,0.000000,0.000000,0.707107 -3560,0.707107,0.000000,0.000000,0.707107 -3561,0.707107,0.000000,0.000000,0.707107 -3562,0.707107,0.000000,0.000000,0.707107 -3563,0.707107,0.000000,0.000000,0.707107 -3564,0.707107,0.000000,0.000000,0.707107 -3565,0.707107,0.000000,0.000000,0.707107 -3566,0.707107,0.000000,0.000000,0.707107 -3567,0.707107,0.000000,0.000000,0.707107 -3568,0.707107,0.000000,0.000000,0.707107 -3569,0.707107,0.000000,0.000000,0.707107 -3570,0.707107,0.000000,0.000000,0.707107 -3571,0.707107,0.000000,0.000000,0.707107 -3572,0.707107,0.000000,0.000000,0.707107 -3573,0.707107,0.000000,0.000000,0.707107 -3574,0.707107,0.000000,0.000000,0.707107 -3575,0.707107,0.000000,0.000000,0.707107 -3576,0.707107,0.000000,0.000000,0.707107 -3577,0.707107,0.000000,0.000000,0.707107 -3578,0.707107,0.000000,0.000000,0.707107 -3579,0.707107,0.000000,0.000000,0.707107 -3580,0.707107,0.000000,0.000000,0.707107 -3581,0.707107,0.000000,0.000000,0.707107 -3582,0.707107,0.000000,0.000000,0.707107 -3583,0.707107,0.000000,0.000000,0.707107 -3584,0.707107,0.000000,0.000000,0.707107 -3585,0.707107,0.000000,0.000000,0.707107 -3586,0.707107,0.000000,0.000000,0.707107 -3587,0.707107,0.000000,0.000000,0.707107 -3588,0.707107,0.000000,0.000000,0.707107 -3589,0.707107,0.000000,0.000000,0.707107 -3590,0.707107,0.000000,0.000000,0.707107 -3591,0.707107,0.000000,0.000000,0.707107 -3592,0.707107,0.000000,0.000000,0.707107 -3593,0.707107,0.000000,0.000000,0.707107 -3594,0.707107,0.000000,0.000000,0.707107 -3595,0.707107,0.000000,0.000000,0.707107 -3596,0.707107,0.000000,0.000000,0.707107 -3597,0.707107,0.000000,0.000000,0.707107 -3598,0.707107,0.000000,0.000000,0.707107 -3599,0.707107,0.000000,0.000000,0.707107 -3600,0.707107,0.000000,0.000000,0.707107 -3601,0.707107,0.000000,0.000000,0.707107 -3602,0.707107,0.000000,0.000000,0.707107 -3603,0.707107,0.000000,0.000000,0.707107 -3604,0.707107,0.000000,0.000000,0.707107 -3605,0.707107,0.000000,0.000000,0.707107 -3606,0.707107,0.000000,0.000000,0.707107 -3607,0.707107,0.000000,0.000000,0.707107 -3608,0.707107,0.000000,0.000000,0.707107 -3609,0.707107,0.000000,0.000000,0.707107 -3610,0.707107,0.000000,0.000000,0.707107 -3611,0.707107,0.000000,0.000000,0.707107 -3612,0.707107,0.000000,0.000000,0.707107 -3613,0.707107,0.000000,0.000000,0.707107 -3614,0.707107,0.000000,0.000000,0.707107 -3615,0.707107,0.000000,0.000000,0.707107 -3616,0.707107,0.000000,0.000000,0.707107 -3617,0.707107,0.000000,0.000000,0.707107 -3618,0.707107,0.000000,0.000000,0.707107 -3619,0.707107,0.000000,0.000000,0.707107 -3620,0.707107,0.000000,0.000000,0.707107 -3621,0.707107,0.000000,0.000000,0.707107 -3622,0.707107,0.000000,0.000000,0.707107 -3623,0.707107,0.000000,0.000000,0.707107 -3624,0.707107,0.000000,0.000000,0.707107 -3625,0.707107,0.000000,0.000000,0.707107 -3626,0.707107,0.000000,0.000000,0.707107 -3627,0.707107,0.000000,0.000000,0.707107 -3628,0.707107,0.000000,0.000000,0.707107 -3629,0.707107,0.000000,0.000000,0.707107 -3630,0.707107,0.000000,0.000000,0.707107 -3631,0.707107,0.000000,0.000000,0.707107 -3632,0.707107,0.000000,0.000000,0.707107 -3633,0.707107,0.000000,0.000000,0.707107 -3634,0.707107,0.000000,0.000000,0.707107 -3635,0.707107,0.000000,0.000000,0.707107 -3636,0.707107,0.000000,0.000000,0.707107 -3637,0.707107,0.000000,0.000000,0.707107 -3638,0.707107,0.000000,0.000000,0.707107 -3639,0.707107,0.000000,0.000000,0.707107 -3640,0.707107,0.000000,0.000000,0.707107 -3641,0.707107,0.000000,0.000000,0.707107 -3642,0.707107,0.000000,0.000000,0.707107 -3643,0.707107,0.000000,0.000000,0.707107 -3644,0.707107,0.000000,0.000000,0.707107 -3645,0.707107,0.000000,0.000000,0.707107 -3646,0.707107,0.000000,0.000000,0.707107 -3647,0.707107,0.000000,0.000000,0.707107 -3648,0.707107,0.000000,0.000000,0.707107 -3649,0.707107,0.000000,0.000000,0.707107 -3650,0.707107,0.000000,0.000000,0.707107 -3651,0.707107,0.000000,0.000000,0.707107 -3652,0.707107,0.000000,0.000000,0.707107 -3653,0.707107,0.000000,0.000000,0.707107 -3654,0.707107,0.000000,0.000000,0.707107 -3655,0.707107,0.000000,0.000000,0.707107 -3656,0.707107,0.000000,0.000000,0.707107 -3657,0.707107,0.000000,0.000000,0.707107 -3658,0.707107,0.000000,0.000000,0.707107 -3659,0.707107,0.000000,0.000000,0.707107 -3660,0.707107,0.000000,0.000000,0.707107 -3661,0.707107,0.000000,0.000000,0.707107 -3662,0.707107,0.000000,0.000000,0.707107 -3663,0.707107,0.000000,0.000000,0.707107 -3664,0.707107,0.000000,0.000000,0.707107 -3665,0.707107,0.000000,0.000000,0.707107 -3666,0.707107,0.000000,0.000000,0.707107 -3667,0.707107,0.000000,0.000000,0.707107 -3668,0.707107,0.000000,0.000000,0.707107 -3669,0.707107,0.000000,0.000000,0.707107 -3670,0.707107,0.000000,0.000000,0.707107 -3671,0.707107,0.000000,0.000000,0.707107 -3672,0.707107,0.000000,0.000000,0.707107 -3673,0.707107,0.000000,0.000000,0.707107 -3674,0.707107,0.000000,0.000000,0.707107 -3675,0.707107,0.000000,0.000000,0.707107 -3676,0.707107,0.000000,0.000000,0.707107 -3677,0.707107,0.000000,0.000000,0.707107 -3678,0.707107,0.000000,0.000000,0.707107 -3679,0.707107,0.000000,0.000000,0.707107 -3680,0.707107,0.000000,0.000000,0.707107 -3681,0.707107,0.000000,0.000000,0.707107 -3682,0.707107,0.000000,0.000000,0.707107 -3683,0.707107,0.000000,0.000000,0.707107 -3684,0.707107,0.000000,0.000000,0.707107 -3685,0.707107,0.000000,0.000000,0.707107 -3686,0.707107,0.000000,0.000000,0.707107 -3687,0.707107,0.000000,0.000000,0.707107 -3688,0.707107,0.000000,0.000000,0.707107 -3689,0.707107,0.000000,0.000000,0.707107 -3690,0.707107,0.000000,0.000000,0.707107 -3691,0.707107,0.000000,0.000000,0.707107 -3692,0.707107,0.000000,0.000000,0.707107 -3693,0.707107,0.000000,0.000000,0.707107 -3694,0.707107,0.000000,0.000000,0.707107 -3695,0.707107,0.000000,0.000000,0.707107 -3696,0.707107,0.000000,0.000000,0.707107 -3697,0.707107,0.000000,0.000000,0.707107 -3698,0.707107,0.000000,0.000000,0.707107 -3699,0.707107,0.000000,0.000000,0.707107 -3700,0.707107,0.000000,0.000000,0.707107 -3701,0.707107,0.000000,0.000000,0.707107 -3702,0.707107,0.000000,0.000000,0.707107 -3703,0.707107,0.000000,0.000000,0.707107 -3704,0.707107,0.000000,0.000000,0.707107 -3705,0.707107,0.000000,0.000000,0.707107 -3706,0.707107,0.000000,0.000000,0.707107 -3707,0.707107,0.000000,0.000000,0.707107 -3708,0.707107,0.000000,0.000000,0.707107 -3709,0.707107,0.000000,0.000000,0.707107 -3710,0.707107,0.000000,0.000000,0.707107 -3711,0.707107,0.000000,0.000000,0.707107 -3712,0.707107,0.000000,0.000000,0.707107 -3713,0.707107,0.000000,0.000000,0.707107 -3714,0.707107,0.000000,0.000000,0.707107 -3715,0.707107,0.000000,0.000000,0.707107 -3716,0.707107,0.000000,0.000000,0.707107 -3717,0.707107,0.000000,0.000000,0.707107 -3718,0.707107,0.000000,0.000000,0.707107 -3719,0.707107,0.000000,0.000000,0.707107 -3720,0.707107,0.000000,0.000000,0.707107 -3721,0.707107,0.000000,0.000000,0.707107 -3722,0.707107,0.000000,0.000000,0.707107 -3723,0.707107,0.000000,0.000000,0.707107 -3724,0.707107,0.000000,0.000000,0.707107 -3725,0.707107,0.000000,0.000000,0.707107 -3726,0.707107,0.000000,0.000000,0.707107 -3727,0.707107,0.000000,0.000000,0.707107 -3728,0.707107,0.000000,0.000000,0.707107 -3729,0.707107,0.000000,0.000000,0.707107 -3730,0.707107,0.000000,0.000000,0.707107 -3731,0.707107,0.000000,0.000000,0.707107 -3732,0.707107,0.000000,0.000000,0.707107 -3733,0.707107,0.000000,0.000000,0.707107 -3734,0.707107,0.000000,0.000000,0.707107 -3735,0.707107,0.000000,0.000000,0.707107 -3736,0.707107,0.000000,0.000000,0.707107 -3737,0.707107,0.000000,0.000000,0.707107 -3738,0.707107,0.000000,0.000000,0.707107 -3739,0.707107,0.000000,0.000000,0.707107 -3740,0.707107,0.000000,0.000000,0.707107 -3741,0.707107,0.000000,0.000000,0.707107 -3742,0.707107,0.000000,0.000000,0.707107 -3743,0.707107,0.000000,0.000000,0.707107 -3744,0.707107,0.000000,0.000000,0.707107 -3745,0.707107,0.000000,0.000000,0.707107 -3746,0.707107,0.000000,0.000000,0.707107 -3747,0.707107,0.000000,0.000000,0.707107 -3748,0.707107,0.000000,0.000000,0.707107 -3749,0.707107,0.000000,0.000000,0.707107 -3750,0.707107,0.000000,0.000000,0.707107 -3751,0.707107,0.000000,0.000000,0.707107 -3752,0.707107,0.000000,0.000000,0.707107 -3753,0.707107,0.000000,0.000000,0.707107 -3754,0.707107,0.000000,0.000000,0.707107 -3755,0.707107,0.000000,0.000000,0.707107 -3756,0.707107,0.000000,0.000000,0.707107 -3757,0.707107,0.000000,0.000000,0.707107 -3758,0.707107,0.000000,0.000000,0.707107 -3759,0.707107,0.000000,0.000000,0.707107 -3760,0.707107,0.000000,0.000000,0.707107 -3761,0.707107,0.000000,0.000000,0.707107 -3762,0.707107,0.000000,0.000000,0.707107 -3763,0.707107,0.000000,0.000000,0.707107 -3764,0.707107,0.000000,0.000000,0.707107 -3765,0.707107,0.000000,0.000000,0.707107 -3766,0.707107,0.000000,0.000000,0.707107 -3767,0.707107,0.000000,0.000000,0.707107 -3768,0.707107,0.000000,0.000000,0.707107 -3769,0.707107,0.000000,0.000000,0.707107 -3770,0.707107,0.000000,0.000000,0.707107 -3771,0.707107,0.000000,0.000000,0.707107 -3772,0.707107,0.000000,0.000000,0.707107 -3773,0.707107,0.000000,0.000000,0.707107 -3774,0.707107,0.000000,0.000000,0.707107 -3775,0.707107,0.000000,0.000000,0.707107 -3776,0.707107,0.000000,0.000000,0.707107 -3777,0.707107,0.000000,0.000000,0.707107 -3778,0.707107,0.000000,0.000000,0.707107 -3779,0.707107,0.000000,0.000000,0.707107 -3780,0.707107,0.000000,0.000000,0.707107 -3781,0.707107,0.000000,0.000000,0.707107 -3782,0.707107,0.000000,0.000000,0.707107 -3783,0.707107,0.000000,0.000000,0.707107 -3784,0.707107,0.000000,0.000000,0.707107 -3785,0.707107,0.000000,0.000000,0.707107 -3786,0.707107,0.000000,0.000000,0.707107 -3787,0.707107,0.000000,0.000000,0.707107 -3788,0.707107,0.000000,0.000000,0.707107 -3789,0.707107,0.000000,0.000000,0.707107 -3790,0.707107,0.000000,0.000000,0.707107 -3791,0.707107,0.000000,0.000000,0.707107 -3792,0.707107,0.000000,0.000000,0.707107 -3793,0.707107,0.000000,0.000000,0.707107 -3794,0.707107,0.000000,0.000000,0.707107 -3795,0.707107,0.000000,0.000000,0.707107 -3796,0.707107,0.000000,0.000000,0.707107 -3797,0.707107,0.000000,0.000000,0.707107 -3798,0.707107,0.000000,0.000000,0.707107 -3799,0.707107,0.000000,0.000000,0.707107 -3800,0.707107,0.000000,0.000000,0.707107 -3801,0.707107,0.000000,0.000000,0.707107 -3802,0.707107,0.000000,0.000000,0.707107 -3803,0.707107,0.000000,0.000000,0.707107 -3804,0.707107,0.000000,0.000000,0.707107 -3805,0.707107,0.000000,0.000000,0.707107 -3806,0.707107,0.000000,0.000000,0.707107 -3807,0.707107,0.000000,0.000000,0.707107 -3808,0.707107,0.000000,0.000000,0.707107 -3809,0.707107,0.000000,0.000000,0.707107 -3810,0.707107,0.000000,0.000000,0.707107 -3811,0.707107,0.000000,0.000000,0.707107 -3812,0.707107,0.000000,0.000000,0.707107 -3813,0.707107,0.000000,0.000000,0.707107 -3814,0.707107,0.000000,0.000000,0.707107 -3815,0.707107,0.000000,0.000000,0.707107 -3816,0.707107,0.000000,0.000000,0.707107 -3817,0.707107,0.000000,0.000000,0.707107 -3818,0.707107,0.000000,0.000000,0.707107 -3819,0.707107,0.000000,0.000000,0.707107 -3820,0.707107,0.000000,0.000000,0.707107 -3821,0.707107,0.000000,0.000000,0.707107 -3822,0.707107,0.000000,0.000000,0.707107 -3823,0.707107,0.000000,0.000000,0.707107 -3824,0.707107,0.000000,0.000000,0.707107 -3825,0.707107,0.000000,0.000000,0.707107 -3826,0.707107,0.000000,0.000000,0.707107 -3827,0.707107,0.000000,0.000000,0.707107 -3828,0.707107,0.000000,0.000000,0.707107 -3829,0.707107,0.000000,0.000000,0.707107 -3830,0.707107,0.000000,0.000000,0.707107 -3831,0.707107,0.000000,0.000000,0.707107 -3832,0.707107,0.000000,0.000000,0.707107 -3833,0.707107,0.000000,0.000000,0.707107 -3834,0.707107,0.000000,0.000000,0.707107 -3835,0.707107,0.000000,0.000000,0.707107 -3836,0.707107,0.000000,0.000000,0.707107 -3837,0.707107,0.000000,0.000000,0.707107 -3838,0.707107,0.000000,0.000000,0.707107 -3839,0.707107,0.000000,0.000000,0.707107 -3840,0.707107,0.000000,0.000000,0.707107 -3841,0.707107,0.000000,0.000000,0.707107 -3842,0.707107,0.000000,0.000000,0.707107 -3843,0.707107,0.000000,0.000000,0.707107 -3844,0.707107,0.000000,0.000000,0.707107 -3845,0.707107,0.000000,0.000000,0.707107 -3846,0.707107,0.000000,0.000000,0.707107 -3847,0.707107,0.000000,0.000000,0.707107 -3848,0.707107,0.000000,0.000000,0.707107 -3849,0.707107,0.000000,0.000000,0.707107 -3850,0.707107,0.000000,0.000000,0.707107 -3851,0.707107,0.000000,0.000000,0.707107 -3852,0.707107,0.000000,0.000000,0.707107 -3853,0.707107,0.000000,0.000000,0.707107 -3854,0.707107,0.000000,0.000000,0.707107 -3855,0.707107,0.000000,0.000000,0.707107 -3856,0.707107,0.000000,0.000000,0.707107 -3857,0.707107,0.000000,0.000000,0.707107 -3858,0.707107,0.000000,0.000000,0.707107 -3859,0.707107,0.000000,0.000000,0.707107 -3860,0.707107,0.000000,0.000000,0.707107 -3861,0.707107,0.000000,0.000000,0.707107 -3862,0.707107,0.000000,0.000000,0.707107 -3863,0.707107,0.000000,0.000000,0.707107 -3864,0.707107,0.000000,0.000000,0.707107 -3865,0.707107,0.000000,0.000000,0.707107 -3866,0.707107,0.000000,0.000000,0.707107 -3867,0.707107,0.000000,0.000000,0.707107 -3868,0.707107,0.000000,0.000000,0.707107 -3869,0.707107,0.000000,0.000000,0.707107 -3870,0.707107,0.000000,0.000000,0.707107 -3871,0.707107,0.000000,0.000000,0.707107 -3872,0.707107,0.000000,0.000000,0.707107 -3873,0.707107,0.000000,0.000000,0.707107 -3874,0.707107,0.000000,0.000000,0.707107 -3875,0.707107,0.000000,0.000000,0.707107 -3876,0.707107,0.000000,0.000000,0.707107 -3877,0.707107,0.000000,0.000000,0.707107 -3878,0.707107,0.000000,0.000000,0.707107 -3879,0.707107,0.000000,0.000000,0.707107 -3880,0.707107,0.000000,0.000000,0.707107 -3881,0.707107,0.000000,0.000000,0.707107 -3882,0.707107,0.000000,0.000000,0.707107 -3883,0.707107,0.000000,0.000000,0.707107 -3884,0.707107,0.000000,0.000000,0.707107 -3885,0.707107,0.000000,0.000000,0.707107 -3886,0.707107,0.000000,0.000000,0.707107 -3887,0.707107,0.000000,0.000000,0.707107 -3888,0.707107,0.000000,0.000000,0.707107 -3889,0.707107,0.000000,0.000000,0.707107 -3890,0.707107,0.000000,0.000000,0.707107 -3891,0.707107,0.000000,0.000000,0.707107 -3892,0.707107,0.000000,0.000000,0.707107 -3893,0.707107,0.000000,0.000000,0.707107 -3894,0.707107,0.000000,0.000000,0.707107 -3895,0.707107,0.000000,0.000000,0.707107 -3896,0.707107,0.000000,0.000000,0.707107 -3897,0.707107,0.000000,0.000000,0.707107 -3898,0.707107,0.000000,0.000000,0.707107 -3899,0.707107,0.000000,0.000000,0.707107 -3900,0.707107,0.000000,0.000000,0.707107 -3901,0.707107,0.000000,0.000000,0.707107 -3902,0.707107,0.000000,0.000000,0.707107 -3903,0.707107,0.000000,0.000000,0.707107 -3904,0.707107,0.000000,0.000000,0.707107 -3905,0.707107,0.000000,0.000000,0.707107 -3906,0.707107,0.000000,0.000000,0.707107 -3907,0.707107,0.000000,0.000000,0.707107 -3908,0.707107,0.000000,0.000000,0.707107 -3909,0.707107,0.000000,0.000000,0.707107 -3910,0.707107,0.000000,0.000000,0.707107 -3911,0.707107,0.000000,0.000000,0.707107 -3912,0.707107,0.000000,0.000000,0.707107 -3913,0.707107,0.000000,0.000000,0.707107 -3914,0.707107,0.000000,0.000000,0.707107 -3915,0.707107,0.000000,0.000000,0.707107 -3916,0.707107,0.000000,0.000000,0.707107 -3917,0.707107,0.000000,0.000000,0.707107 -3918,0.707107,0.000000,0.000000,0.707107 -3919,0.707107,0.000000,0.000000,0.707107 -3920,0.707107,0.000000,0.000000,0.707107 -3921,0.707107,0.000000,0.000000,0.707107 -3922,0.707107,0.000000,0.000000,0.707107 -3923,0.707107,0.000000,0.000000,0.707107 -3924,0.707107,0.000000,0.000000,0.707107 -3925,0.707107,0.000000,0.000000,0.707107 -3926,0.707107,0.000000,0.000000,0.707107 -3927,0.707107,0.000000,0.000000,0.707107 -3928,0.707107,0.000000,0.000000,0.707107 -3929,0.707107,0.000000,0.000000,0.707107 -3930,0.707107,0.000000,0.000000,0.707107 -3931,0.707107,0.000000,0.000000,0.707107 -3932,0.707107,0.000000,0.000000,0.707107 -3933,0.707107,0.000000,0.000000,0.707107 -3934,0.707107,0.000000,0.000000,0.707107 -3935,0.707107,0.000000,0.000000,0.707107 -3936,0.707107,0.000000,0.000000,0.707107 -3937,0.707107,0.000000,0.000000,0.707107 -3938,0.707107,0.000000,0.000000,0.707107 -3939,0.707107,0.000000,0.000000,0.707107 -3940,0.707107,0.000000,0.000000,0.707107 -3941,0.707107,0.000000,0.000000,0.707107 -3942,0.707107,0.000000,0.000000,0.707107 -3943,0.707107,0.000000,0.000000,0.707107 -3944,0.707107,0.000000,0.000000,0.707107 -3945,0.707107,0.000000,0.000000,0.707107 -3946,0.707107,0.000000,0.000000,0.707107 -3947,0.707107,0.000000,0.000000,0.707107 -3948,0.707107,0.000000,0.000000,0.707107 -3949,0.707107,0.000000,0.000000,0.707107 -3950,0.707107,0.000000,0.000000,0.707107 -3951,0.707107,0.000000,0.000000,0.707107 -3952,0.707107,0.000000,0.000000,0.707107 -3953,0.707107,0.000000,0.000000,0.707107 -3954,0.707107,0.000000,0.000000,0.707107 -3955,0.707107,0.000000,0.000000,0.707107 -3956,0.707107,0.000000,0.000000,0.707107 -3957,0.707107,0.000000,0.000000,0.707107 -3958,0.707107,0.000000,0.000000,0.707107 -3959,0.707107,0.000000,0.000000,0.707107 -3960,0.707107,0.000000,0.000000,0.707107 -3961,0.707107,0.000000,0.000000,0.707107 -3962,0.707107,0.000000,0.000000,0.707107 -3963,0.707107,0.000000,0.000000,0.707107 -3964,0.707107,0.000000,0.000000,0.707107 -3965,0.707107,0.000000,0.000000,0.707107 -3966,0.707107,0.000000,0.000000,0.707107 -3967,0.707107,0.000000,0.000000,0.707107 -3968,0.707107,0.000000,0.000000,0.707107 -3969,0.707107,0.000000,0.000000,0.707107 -3970,0.707107,0.000000,0.000000,0.707107 -3971,0.707107,0.000000,0.000000,0.707107 -3972,0.707107,0.000000,0.000000,0.707107 -3973,0.707107,0.000000,0.000000,0.707107 -3974,0.707107,0.000000,0.000000,0.707107 -3975,0.707107,0.000000,0.000000,0.707107 -3976,0.707107,0.000000,0.000000,0.707107 -3977,0.707107,0.000000,0.000000,0.707107 -3978,0.707107,0.000000,0.000000,0.707107 -3979,0.707107,0.000000,0.000000,0.707107 -3980,0.707107,0.000000,0.000000,0.707107 -3981,0.707107,0.000000,0.000000,0.707107 -3982,0.707107,0.000000,0.000000,0.707107 -3983,0.707107,0.000000,0.000000,0.707107 -3984,0.707107,0.000000,0.000000,0.707107 -3985,0.707107,0.000000,0.000000,0.707107 -3986,0.707107,0.000000,0.000000,0.707107 -3987,0.707107,0.000000,0.000000,0.707107 -3988,0.707107,0.000000,0.000000,0.707107 -3989,0.707107,0.000000,0.000000,0.707107 -3990,0.707107,0.000000,0.000000,0.707107 -3991,0.707107,0.000000,0.000000,0.707107 -3992,0.707107,0.000000,0.000000,0.707107 -3993,0.707107,0.000000,0.000000,0.707107 -3994,0.707107,0.000000,0.000000,0.707107 -3995,0.707107,0.000000,0.000000,0.707107 -3996,0.707107,0.000000,0.000000,0.707107 -3997,0.707107,0.000000,0.000000,0.707107 -3998,0.707107,0.000000,0.000000,0.707107 -3999,0.707107,0.000000,0.000000,0.707107 -4000,0.707107,0.000000,0.000000,0.707107 -4001,0.707107,0.000000,0.000000,0.707107 -4002,0.707107,0.000000,0.000000,0.707107 -4003,0.707107,0.000000,0.000000,0.707107 -4004,0.707107,0.000000,0.000000,0.707107 -4005,0.707107,0.000000,0.000000,0.707107 -4006,0.707107,0.000000,0.000000,0.707107 -4007,0.707107,0.000000,0.000000,0.707107 -4008,0.707107,0.000000,0.000000,0.707107 -4009,0.707107,0.000000,0.000000,0.707107 -4010,0.707107,0.000000,0.000000,0.707107 -4011,0.707107,0.000000,0.000000,0.707107 -4012,0.707107,0.000000,0.000000,0.707107 -4013,0.707107,0.000000,0.000000,0.707107 -4014,0.707107,0.000000,0.000000,0.707107 -4015,0.707107,0.000000,0.000000,0.707107 -4016,0.707107,0.000000,0.000000,0.707107 -4017,0.707107,0.000000,0.000000,0.707107 -4018,0.707107,0.000000,0.000000,0.707107 -4019,0.707107,0.000000,0.000000,0.707107 -4020,0.707107,0.000000,0.000000,0.707107 -4021,0.707107,0.000000,0.000000,0.707107 -4022,0.707107,0.000000,0.000000,0.707107 -4023,0.707107,0.000000,0.000000,0.707107 -4024,0.707107,0.000000,0.000000,0.707107 -4025,0.707107,0.000000,0.000000,0.707107 -4026,0.707107,0.000000,0.000000,0.707107 -4027,0.707107,0.000000,0.000000,0.707107 -4028,0.707107,0.000000,0.000000,0.707107 -4029,0.707107,0.000000,0.000000,0.707107 -4030,0.707107,0.000000,0.000000,0.707107 -4031,0.707107,0.000000,0.000000,0.707107 -4032,0.707107,0.000000,0.000000,0.707107 -4033,0.707107,0.000000,0.000000,0.707107 -4034,0.707107,0.000000,0.000000,0.707107 -4035,0.707107,0.000000,0.000000,0.707107 -4036,0.707107,0.000000,0.000000,0.707107 -4037,0.707107,0.000000,0.000000,0.707107 -4038,0.707107,0.000000,0.000000,0.707107 -4039,0.707107,0.000000,0.000000,0.707107 -4040,0.707107,0.000000,0.000000,0.707107 -4041,0.707107,0.000000,0.000000,0.707107 -4042,0.707107,0.000000,0.000000,0.707107 -4043,0.707107,0.000000,0.000000,0.707107 -4044,0.707107,0.000000,0.000000,0.707107 -4045,0.707107,0.000000,0.000000,0.707107 -4046,0.707107,0.000000,0.000000,0.707107 -4047,0.707107,0.000000,0.000000,0.707107 -4048,0.707107,0.000000,0.000000,0.707107 -4049,0.707107,0.000000,0.000000,0.707107 -4050,0.707107,0.000000,0.000000,0.707107 -4051,0.707107,0.000000,0.000000,0.707107 -4052,0.707107,0.000000,0.000000,0.707107 -4053,0.707107,0.000000,0.000000,0.707107 -4054,0.707107,0.000000,0.000000,0.707107 -4055,0.707107,0.000000,0.000000,0.707107 -4056,0.707107,0.000000,0.000000,0.707107 -4057,0.707107,0.000000,0.000000,0.707107 -4058,0.707107,0.000000,0.000000,0.707107 -4059,0.707107,0.000000,0.000000,0.707107 -4060,0.707107,0.000000,0.000000,0.707107 -4061,0.707107,0.000000,0.000000,0.707107 -4062,0.707107,0.000000,0.000000,0.707107 -4063,0.707107,0.000000,0.000000,0.707107 -4064,0.707107,0.000000,0.000000,0.707107 -4065,0.707107,0.000000,0.000000,0.707107 -4066,0.707107,0.000000,0.000000,0.707107 -4067,0.707107,0.000000,0.000000,0.707107 -4068,0.707107,0.000000,0.000000,0.707107 -4069,0.707107,0.000000,0.000000,0.707107 -4070,0.707107,0.000000,0.000000,0.707107 -4071,0.707107,0.000000,0.000000,0.707107 -4072,0.707107,0.000000,0.000000,0.707107 -4073,0.707107,0.000000,0.000000,0.707107 -4074,0.707107,0.000000,0.000000,0.707107 -4075,0.707107,0.000000,0.000000,0.707107 -4076,0.707107,0.000000,0.000000,0.707107 -4077,0.707107,0.000000,0.000000,0.707107 -4078,0.707107,0.000000,0.000000,0.707107 -4079,0.707107,0.000000,0.000000,0.707107 -4080,0.707107,0.000000,0.000000,0.707107 -4081,0.707107,0.000000,0.000000,0.707107 -4082,0.707107,0.000000,0.000000,0.707107 -4083,0.707107,0.000000,0.000000,0.707107 -4084,0.707107,0.000000,0.000000,0.707107 -4085,0.707107,0.000000,0.000000,0.707107 -4086,0.707107,0.000000,0.000000,0.707107 -4087,0.707107,0.000000,0.000000,0.707107 -4088,0.707107,0.000000,0.000000,0.707107 -4089,0.707107,0.000000,0.000000,0.707107 -4090,0.707107,0.000000,0.000000,0.707107 -4091,0.707107,0.000000,0.000000,0.707107 -4092,0.707107,0.000000,0.000000,0.707107 -4093,0.707107,0.000000,0.000000,0.707107 -4094,0.707107,0.000000,0.000000,0.707107 -4095,0.707107,0.000000,0.000000,0.707107 -4096,0.707107,0.000000,0.000000,0.707107 -4097,0.707107,0.000000,0.000000,0.707107 -4098,0.707107,0.000000,0.000000,0.707107 -4099,0.707107,0.000000,0.000000,0.707107 -4100,0.707107,0.000000,0.000000,0.707107 -4101,0.707107,0.000000,0.000000,0.707107 -4102,0.707107,0.000000,0.000000,0.707107 -4103,0.707107,0.000000,0.000000,0.707107 -4104,0.707107,0.000000,0.000000,0.707107 -4105,0.707107,0.000000,0.000000,0.707107 -4106,0.707107,0.000000,0.000000,0.707107 -4107,0.707107,0.000000,0.000000,0.707107 -4108,0.707107,0.000000,0.000000,0.707107 -4109,0.707107,0.000000,0.000000,0.707107 -4110,0.707107,0.000000,0.000000,0.707107 -4111,0.707107,0.000000,0.000000,0.707107 -4112,0.707107,0.000000,0.000000,0.707107 -4113,0.707107,0.000000,0.000000,0.707107 -4114,0.707107,0.000000,0.000000,0.707107 -4115,0.707107,0.000000,0.000000,0.707107 -4116,0.707107,0.000000,0.000000,0.707107 -4117,0.707107,0.000000,0.000000,0.707107 -4118,0.707107,0.000000,0.000000,0.707107 -4119,0.707107,0.000000,0.000000,0.707107 -4120,0.707107,0.000000,0.000000,0.707107 -4121,0.707107,0.000000,0.000000,0.707107 -4122,0.707107,0.000000,0.000000,0.707107 -4123,0.707107,0.000000,0.000000,0.707107 -4124,0.707107,0.000000,0.000000,0.707107 -4125,0.707107,0.000000,0.000000,0.707107 -4126,0.707107,0.000000,0.000000,0.707107 -4127,0.707107,0.000000,0.000000,0.707107 -4128,0.707107,0.000000,0.000000,0.707107 -4129,0.707107,0.000000,0.000000,0.707107 -4130,0.707107,0.000000,0.000000,0.707107 -4131,0.707107,0.000000,0.000000,0.707107 -4132,0.707107,0.000000,0.000000,0.707107 -4133,0.707107,0.000000,0.000000,0.707107 -4134,0.707107,0.000000,0.000000,0.707107 -4135,0.707107,0.000000,0.000000,0.707107 -4136,0.707107,0.000000,0.000000,0.707107 -4137,0.707107,0.000000,0.000000,0.707107 -4138,0.707107,0.000000,0.000000,0.707107 -4139,0.707107,0.000000,0.000000,0.707107 -4140,0.707107,0.000000,0.000000,0.707107 -4141,0.707107,0.000000,0.000000,0.707107 -4142,0.707107,0.000000,0.000000,0.707107 -4143,0.707107,0.000000,0.000000,0.707107 -4144,0.707107,0.000000,0.000000,0.707107 -4145,0.707107,0.000000,0.000000,0.707107 -4146,0.707107,0.000000,0.000000,0.707107 -4147,0.707107,0.000000,0.000000,0.707107 -4148,0.707107,0.000000,0.000000,0.707107 -4149,0.707107,0.000000,0.000000,0.707107 -4150,0.707107,0.000000,0.000000,0.707107 -4151,0.707107,0.000000,0.000000,0.707107 -4152,0.707107,0.000000,0.000000,0.707107 -4153,0.707107,0.000000,0.000000,0.707107 -4154,0.707107,0.000000,0.000000,0.707107 -4155,0.707107,0.000000,0.000000,0.707107 -4156,0.707107,0.000000,0.000000,0.707107 -4157,0.707107,0.000000,0.000000,0.707107 -4158,0.707107,0.000000,0.000000,0.707107 -4159,0.707107,0.000000,0.000000,0.707107 -4160,0.707107,0.000000,0.000000,0.707107 -4161,0.707107,0.000000,0.000000,0.707107 -4162,0.707107,0.000000,0.000000,0.707107 -4163,0.707107,0.000000,0.000000,0.707107 -4164,0.707107,0.000000,0.000000,0.707107 -4165,0.707107,0.000000,0.000000,0.707107 -4166,0.707107,0.000000,0.000000,0.707107 -4167,0.707107,0.000000,0.000000,0.707107 -4168,0.707107,0.000000,0.000000,0.707107 -4169,0.707107,0.000000,0.000000,0.707107 -4170,0.707107,0.000000,0.000000,0.707107 -4171,0.707107,0.000000,0.000000,0.707107 -4172,0.707107,0.000000,0.000000,0.707107 -4173,0.707107,0.000000,0.000000,0.707107 -4174,0.707107,0.000000,0.000000,0.707107 -4175,0.707107,0.000000,0.000000,0.707107 -4176,0.707107,0.000000,0.000000,0.707107 -4177,0.707107,0.000000,0.000000,0.707107 -4178,0.707107,0.000000,0.000000,0.707107 -4179,0.707107,0.000000,0.000000,0.707107 -4180,0.707107,0.000000,0.000000,0.707107 -4181,0.707107,0.000000,0.000000,0.707107 -4182,0.707107,0.000000,0.000000,0.707107 -4183,0.707107,0.000000,0.000000,0.707107 -4184,0.707107,0.000000,0.000000,0.707107 -4185,0.707107,0.000000,0.000000,0.707107 -4186,0.707107,0.000000,0.000000,0.707107 -4187,0.707107,0.000000,0.000000,0.707107 -4188,0.707107,0.000000,0.000000,0.707107 -4189,0.707107,0.000000,0.000000,0.707107 -4190,0.707107,0.000000,0.000000,0.707107 -4191,0.707107,0.000000,0.000000,0.707107 -4192,0.707107,0.000000,0.000000,0.707107 -4193,0.707107,0.000000,0.000000,0.707107 -4194,0.707107,0.000000,0.000000,0.707107 -4195,0.707107,0.000000,0.000000,0.707107 -4196,0.707107,0.000000,0.000000,0.707107 -4197,0.707107,0.000000,0.000000,0.707107 -4198,0.707107,0.000000,0.000000,0.707107 -4199,0.707107,0.000000,0.000000,0.707107 -4200,0.707107,0.000000,0.000000,0.707107 -4201,0.707107,0.000000,0.000000,0.707107 -4202,0.707107,0.000000,0.000000,0.707107 -4203,0.707107,0.000000,0.000000,0.707107 -4204,0.707107,0.000000,0.000000,0.707107 -4205,0.707107,0.000000,0.000000,0.707107 -4206,0.707107,0.000000,0.000000,0.707107 -4207,0.707107,0.000000,0.000000,0.707107 -4208,0.707107,0.000000,0.000000,0.707107 -4209,0.707107,0.000000,0.000000,0.707107 -4210,0.707107,0.000000,0.000000,0.707107 -4211,0.707107,0.000000,0.000000,0.707107 -4212,0.707107,0.000000,0.000000,0.707107 -4213,0.707107,0.000000,0.000000,0.707107 -4214,0.707107,0.000000,0.000000,0.707107 -4215,0.707107,0.000000,0.000000,0.707107 -4216,0.707107,0.000000,0.000000,0.707107 -4217,0.707107,0.000000,0.000000,0.707107 -4218,0.707107,0.000000,0.000000,0.707107 -4219,0.707107,0.000000,0.000000,0.707107 -4220,0.707107,0.000000,0.000000,0.707107 -4221,0.707107,0.000000,0.000000,0.707107 -4222,0.707107,0.000000,0.000000,0.707107 -4223,0.707107,0.000000,0.000000,0.707107 -4224,0.707107,0.000000,0.000000,0.707107 -4225,0.707107,0.000000,0.000000,0.707107 -4226,0.707107,0.000000,0.000000,0.707107 -4227,0.707107,0.000000,0.000000,0.707107 -4228,0.707107,0.000000,0.000000,0.707107 -4229,0.707107,0.000000,0.000000,0.707107 -4230,0.707107,0.000000,0.000000,0.707107 -4231,0.707107,0.000000,0.000000,0.707107 -4232,0.707107,0.000000,0.000000,0.707107 -4233,0.707107,0.000000,0.000000,0.707107 -4234,0.707107,0.000000,0.000000,0.707107 -4235,0.707107,0.000000,0.000000,0.707107 -4236,0.707107,0.000000,0.000000,0.707107 -4237,0.707107,0.000000,0.000000,0.707107 -4238,0.707107,0.000000,0.000000,0.707107 -4239,0.707107,0.000000,0.000000,0.707107 -4240,0.707107,0.000000,0.000000,0.707107 -4241,0.707107,0.000000,0.000000,0.707107 -4242,0.707107,0.000000,0.000000,0.707107 -4243,0.707107,0.000000,0.000000,0.707107 -4244,0.707107,0.000000,0.000000,0.707107 -4245,0.707107,0.000000,0.000000,0.707107 -4246,0.707107,0.000000,0.000000,0.707107 -4247,0.707107,0.000000,0.000000,0.707107 -4248,0.707107,0.000000,0.000000,0.707107 -4249,0.707107,0.000000,0.000000,0.707107 -4250,0.707107,0.000000,0.000000,0.707107 -4251,0.707107,0.000000,0.000000,0.707107 -4252,0.707107,0.000000,0.000000,0.707107 -4253,0.707107,0.000000,0.000000,0.707107 -4254,0.707107,0.000000,0.000000,0.707107 -4255,0.707107,0.000000,0.000000,0.707107 -4256,0.707107,0.000000,0.000000,0.707107 -4257,0.707107,0.000000,0.000000,0.707107 -4258,0.707107,0.000000,0.000000,0.707107 -4259,0.707107,0.000000,0.000000,0.707107 -4260,0.707107,0.000000,0.000000,0.707107 -4261,0.707107,0.000000,0.000000,0.707107 -4262,0.707107,0.000000,0.000000,0.707107 -4263,0.707107,0.000000,0.000000,0.707107 -4264,0.707107,0.000000,0.000000,0.707107 -4265,0.707107,0.000000,0.000000,0.707107 -4266,0.707107,0.000000,0.000000,0.707107 -4267,0.707107,0.000000,0.000000,0.707107 -4268,0.707107,0.000000,0.000000,0.707107 -4269,0.707107,0.000000,0.000000,0.707107 -4270,0.707107,0.000000,0.000000,0.707107 -4271,0.707107,0.000000,0.000000,0.707107 -4272,0.707107,0.000000,0.000000,0.707107 -4273,0.707107,0.000000,0.000000,0.707107 -4274,0.707107,0.000000,0.000000,0.707107 -4275,0.707107,0.000000,0.000000,0.707107 -4276,0.707107,0.000000,0.000000,0.707107 -4277,0.707107,0.000000,0.000000,0.707107 -4278,0.707107,0.000000,0.000000,0.707107 -4279,0.707107,0.000000,0.000000,0.707107 -4280,0.707107,0.000000,0.000000,0.707107 -4281,0.707107,0.000000,0.000000,0.707107 -4282,0.707107,0.000000,0.000000,0.707107 -4283,0.707107,0.000000,0.000000,0.707107 -4284,0.707107,0.000000,0.000000,0.707107 -4285,0.707107,0.000000,0.000000,0.707107 -4286,0.707107,0.000000,0.000000,0.707107 -4287,0.707107,0.000000,0.000000,0.707107 -4288,0.707107,0.000000,0.000000,0.707107 -4289,0.707107,0.000000,0.000000,0.707107 -4290,0.707107,0.000000,0.000000,0.707107 -4291,0.707107,0.000000,0.000000,0.707107 -4292,0.707107,0.000000,0.000000,0.707107 -4293,0.707107,0.000000,0.000000,0.707107 -4294,0.707107,0.000000,0.000000,0.707107 -4295,0.707107,0.000000,0.000000,0.707107 -4296,0.707107,0.000000,0.000000,0.707107 -4297,0.707107,0.000000,0.000000,0.707107 -4298,0.707107,0.000000,0.000000,0.707107 -4299,0.707107,0.000000,0.000000,0.707107 -4300,0.707107,0.000000,0.000000,0.707107 -4301,0.707107,0.000000,0.000000,0.707107 -4302,0.707107,0.000000,0.000000,0.707107 -4303,0.707107,0.000000,0.000000,0.707107 -4304,0.707107,0.000000,0.000000,0.707107 -4305,0.707107,0.000000,0.000000,0.707107 -4306,0.707107,0.000000,0.000000,0.707107 -4307,0.707107,0.000000,0.000000,0.707107 -4308,0.707107,0.000000,0.000000,0.707107 -4309,0.707107,0.000000,0.000000,0.707107 -4310,0.707107,0.000000,0.000000,0.707107 -4311,0.707107,0.000000,0.000000,0.707107 -4312,0.707107,0.000000,0.000000,0.707107 -4313,0.707107,0.000000,0.000000,0.707107 -4314,0.707107,0.000000,0.000000,0.707107 -4315,0.707107,0.000000,0.000000,0.707107 -4316,0.707107,0.000000,0.000000,0.707107 -4317,0.707107,0.000000,0.000000,0.707107 -4318,0.707107,0.000000,0.000000,0.707107 -4319,0.707107,0.000000,0.000000,0.707107 -4320,0.707107,0.000000,0.000000,0.707107 -4321,0.707107,0.000000,0.000000,0.707107 -4322,0.707107,0.000000,0.000000,0.707107 -4323,0.707107,0.000000,0.000000,0.707107 -4324,0.707107,0.000000,0.000000,0.707107 -4325,0.707107,0.000000,0.000000,0.707107 -4326,0.707107,0.000000,0.000000,0.707107 -4327,0.707107,0.000000,0.000000,0.707107 -4328,0.707107,0.000000,0.000000,0.707107 -4329,0.707107,0.000000,0.000000,0.707107 -4330,0.707107,0.000000,0.000000,0.707107 -4331,0.707107,0.000000,0.000000,0.707107 -4332,0.707107,0.000000,0.000000,0.707107 -4333,0.707107,0.000000,0.000000,0.707107 -4334,0.707107,0.000000,0.000000,0.707107 -4335,0.707107,0.000000,0.000000,0.707107 -4336,0.707107,0.000000,0.000000,0.707107 -4337,0.707107,0.000000,0.000000,0.707107 -4338,0.707107,0.000000,0.000000,0.707107 -4339,0.707107,0.000000,0.000000,0.707107 -4340,0.707107,0.000000,0.000000,0.707107 -4341,0.707107,0.000000,0.000000,0.707107 -4342,0.707107,0.000000,0.000000,0.707107 -4343,0.707107,0.000000,0.000000,0.707107 -4344,0.707107,0.000000,0.000000,0.707107 -4345,0.707107,0.000000,0.000000,0.707107 -4346,0.707107,0.000000,0.000000,0.707107 -4347,0.707107,0.000000,0.000000,0.707107 -4348,0.707107,0.000000,0.000000,0.707107 -4349,0.707107,0.000000,0.000000,0.707107 -4350,0.707107,0.000000,0.000000,0.707107 -4351,0.707107,0.000000,0.000000,0.707107 -4352,0.707107,0.000000,0.000000,0.707107 -4353,0.707107,0.000000,0.000000,0.707107 -4354,0.707107,0.000000,0.000000,0.707107 -4355,0.707107,0.000000,0.000000,0.707107 -4356,0.707107,0.000000,0.000000,0.707107 -4357,0.707107,0.000000,0.000000,0.707107 -4358,0.707107,0.000000,0.000000,0.707107 -4359,0.707107,0.000000,0.000000,0.707107 -4360,0.707107,0.000000,0.000000,0.707107 -4361,0.707107,0.000000,0.000000,0.707107 -4362,0.707107,0.000000,0.000000,0.707107 -4363,0.707107,0.000000,0.000000,0.707107 -4364,0.707107,0.000000,0.000000,0.707107 -4365,0.707107,0.000000,0.000000,0.707107 -4366,0.707107,0.000000,0.000000,0.707107 -4367,0.707107,0.000000,0.000000,0.707107 -4368,0.707107,0.000000,0.000000,0.707107 -4369,0.707107,0.000000,0.000000,0.707107 -4370,0.707107,0.000000,0.000000,0.707107 -4371,0.707107,0.000000,0.000000,0.707107 -4372,0.707107,0.000000,0.000000,0.707107 -4373,0.707107,0.000000,0.000000,0.707107 -4374,0.707107,0.000000,0.000000,0.707107 -4375,0.707107,0.000000,0.000000,0.707107 -4376,0.707107,0.000000,0.000000,0.707107 -4377,0.707107,0.000000,0.000000,0.707107 -4378,0.707107,0.000000,0.000000,0.707107 -4379,0.707107,0.000000,0.000000,0.707107 -4380,0.707107,0.000000,0.000000,0.707107 -4381,0.707107,0.000000,0.000000,0.707107 -4382,0.707107,0.000000,0.000000,0.707107 -4383,0.707107,0.000000,0.000000,0.707107 -4384,0.707107,0.000000,0.000000,0.707107 -4385,0.707107,0.000000,0.000000,0.707107 -4386,0.707107,0.000000,0.000000,0.707107 -4387,0.707107,0.000000,0.000000,0.707107 -4388,0.707107,0.000000,0.000000,0.707107 -4389,0.707107,0.000000,0.000000,0.707107 -4390,0.707107,0.000000,0.000000,0.707107 -4391,0.707107,0.000000,0.000000,0.707107 -4392,0.707107,0.000000,0.000000,0.707107 -4393,0.707107,0.000000,0.000000,0.707107 -4394,0.707107,0.000000,0.000000,0.707107 -4395,0.707107,0.000000,0.000000,0.707107 -4396,0.707107,0.000000,0.000000,0.707107 -4397,0.707107,0.000000,0.000000,0.707107 -4398,0.707107,0.000000,0.000000,0.707107 -4399,0.707107,0.000000,0.000000,0.707107 -4400,0.707107,0.000000,0.000000,0.707107 -4401,0.707107,0.000000,0.000000,0.707107 -4402,0.707107,0.000000,0.000000,0.707107 -4403,0.707107,0.000000,0.000000,0.707107 -4404,0.707107,0.000000,0.000000,0.707107 -4405,0.707107,0.000000,0.000000,0.707107 -4406,0.707107,0.000000,0.000000,0.707107 -4407,0.707107,0.000000,0.000000,0.707107 -4408,0.707107,0.000000,0.000000,0.707107 -4409,0.707107,0.000000,0.000000,0.707107 -4410,0.707107,0.000000,0.000000,0.707107 -4411,0.707107,0.000000,0.000000,0.707107 -4412,0.707107,0.000000,0.000000,0.707107 -4413,0.707107,0.000000,0.000000,0.707107 -4414,0.707107,0.000000,0.000000,0.707107 -4415,0.707107,0.000000,0.000000,0.707107 -4416,0.707107,0.000000,0.000000,0.707107 -4417,0.707107,0.000000,0.000000,0.707107 -4418,0.707107,0.000000,0.000000,0.707107 -4419,0.707107,0.000000,0.000000,0.707107 -4420,0.707107,0.000000,0.000000,0.707107 -4421,0.707107,0.000000,0.000000,0.707107 -4422,0.707107,0.000000,0.000000,0.707107 -4423,0.707107,0.000000,0.000000,0.707107 -4424,0.707107,0.000000,0.000000,0.707107 -4425,0.707107,0.000000,0.000000,0.707107 -4426,0.707107,0.000000,0.000000,0.707107 -4427,0.707107,0.000000,0.000000,0.707107 -4428,0.707107,0.000000,0.000000,0.707107 -4429,0.707107,0.000000,0.000000,0.707107 -4430,0.707107,0.000000,0.000000,0.707107 -4431,0.707107,0.000000,0.000000,0.707107 -4432,0.707107,0.000000,0.000000,0.707107 -4433,0.707107,0.000000,0.000000,0.707107 -4434,0.707107,0.000000,0.000000,0.707107 -4435,0.707107,0.000000,0.000000,0.707107 -4436,0.707107,0.000000,0.000000,0.707107 -4437,0.707107,0.000000,0.000000,0.707107 -4438,0.707107,0.000000,0.000000,0.707107 -4439,0.707107,0.000000,0.000000,0.707107 -4440,0.707107,0.000000,0.000000,0.707107 -4441,0.707107,0.000000,0.000000,0.707107 -4442,0.707107,0.000000,0.000000,0.707107 -4443,0.707107,0.000000,0.000000,0.707107 -4444,0.707107,0.000000,0.000000,0.707107 -4445,0.707107,0.000000,0.000000,0.707107 -4446,0.707107,0.000000,0.000000,0.707107 -4447,0.707107,0.000000,0.000000,0.707107 -4448,0.707107,0.000000,0.000000,0.707107 -4449,0.707107,0.000000,0.000000,0.707107 -4450,0.707107,0.000000,0.000000,0.707107 -4451,0.707107,0.000000,0.000000,0.707107 -4452,0.707107,0.000000,0.000000,0.707107 -4453,0.707107,0.000000,0.000000,0.707107 -4454,0.707107,0.000000,0.000000,0.707107 -4455,0.707107,0.000000,0.000000,0.707107 -4456,0.707107,0.000000,0.000000,0.707107 -4457,0.707107,0.000000,0.000000,0.707107 -4458,0.707107,0.000000,0.000000,0.707107 -4459,0.707107,0.000000,0.000000,0.707107 -4460,0.707107,0.000000,0.000000,0.707107 -4461,0.707107,0.000000,0.000000,0.707107 -4462,0.707107,0.000000,0.000000,0.707107 -4463,0.707107,0.000000,0.000000,0.707107 -4464,0.707107,0.000000,0.000000,0.707107 -4465,0.707107,0.000000,0.000000,0.707107 -4466,0.707107,0.000000,0.000000,0.707107 -4467,0.707107,0.000000,0.000000,0.707107 -4468,0.707107,0.000000,0.000000,0.707107 -4469,0.707107,0.000000,0.000000,0.707107 -4470,0.707107,0.000000,0.000000,0.707107 -4471,0.707107,0.000000,0.000000,0.707107 -4472,0.707107,0.000000,0.000000,0.707107 -4473,0.707107,0.000000,0.000000,0.707107 -4474,0.707107,0.000000,0.000000,0.707107 -4475,0.707107,0.000000,0.000000,0.707107 -4476,0.707107,0.000000,0.000000,0.707107 -4477,0.707107,0.000000,0.000000,0.707107 -4478,0.707107,0.000000,0.000000,0.707107 -4479,0.707107,0.000000,0.000000,0.707107 -4480,0.707107,0.000000,0.000000,0.707107 -4481,0.707107,0.000000,0.000000,0.707107 -4482,0.707107,0.000000,0.000000,0.707107 -4483,0.707107,0.000000,0.000000,0.707107 -4484,0.707107,0.000000,0.000000,0.707107 -4485,0.707107,0.000000,0.000000,0.707107 -4486,0.707107,0.000000,0.000000,0.707107 -4487,0.707107,0.000000,0.000000,0.707107 -4488,0.707107,0.000000,0.000000,0.707107 -4489,0.707107,0.000000,0.000000,0.707107 -4490,0.707107,0.000000,0.000000,0.707107 -4491,0.707107,0.000000,0.000000,0.707107 -4492,0.707107,0.000000,0.000000,0.707107 -4493,0.707107,0.000000,0.000000,0.707107 -4494,0.707107,0.000000,0.000000,0.707107 -4495,0.707107,0.000000,0.000000,0.707107 -4496,0.707107,0.000000,0.000000,0.707107 -4497,0.707107,0.000000,0.000000,0.707107 -4498,0.707107,0.000000,0.000000,0.707107 -4499,0.707107,0.000000,0.000000,0.707107 -4500,0.707107,0.000000,0.000000,0.707107 -4501,0.707107,0.000000,0.000000,0.707107 -4502,0.707107,0.000000,0.000000,0.707107 -4503,0.707107,0.000000,0.000000,0.707107 -4504,0.707107,0.000000,0.000000,0.707107 -4505,0.707107,0.000000,0.000000,0.707107 -4506,0.707107,0.000000,0.000000,0.707107 -4507,0.707107,0.000000,0.000000,0.707107 -4508,0.707107,0.000000,0.000000,0.707107 -4509,0.707107,0.000000,0.000000,0.707107 -4510,0.707107,0.000000,0.000000,0.707107 -4511,0.707107,0.000000,0.000000,0.707107 -4512,0.707107,0.000000,0.000000,0.707107 -4513,0.707107,0.000000,0.000000,0.707107 -4514,0.707107,0.000000,0.000000,0.707107 -4515,0.707107,0.000000,0.000000,0.707107 -4516,0.707107,0.000000,0.000000,0.707107 -4517,0.707107,0.000000,0.000000,0.707107 -4518,0.707107,0.000000,0.000000,0.707107 -4519,0.707107,0.000000,0.000000,0.707107 -4520,0.707107,0.000000,0.000000,0.707107 -4521,0.707107,0.000000,0.000000,0.707107 -4522,0.707107,0.000000,0.000000,0.707107 -4523,0.707107,0.000000,0.000000,0.707107 -4524,0.707107,0.000000,0.000000,0.707107 -4525,0.707107,0.000000,0.000000,0.707107 -4526,0.707107,0.000000,0.000000,0.707107 -4527,0.707107,0.000000,0.000000,0.707107 -4528,0.707107,0.000000,0.000000,0.707107 -4529,0.707107,0.000000,0.000000,0.707107 -4530,0.707107,0.000000,0.000000,0.707107 -4531,0.707107,0.000000,0.000000,0.707107 -4532,0.707107,0.000000,0.000000,0.707107 -4533,0.707107,0.000000,0.000000,0.707107 -4534,0.707107,0.000000,0.000000,0.707107 -4535,0.707107,0.000000,0.000000,0.707107 -4536,0.707107,0.000000,0.000000,0.707107 -4537,0.707107,0.000000,0.000000,0.707107 -4538,0.707107,0.000000,0.000000,0.707107 -4539,0.707107,0.000000,0.000000,0.707107 -4540,0.707107,0.000000,0.000000,0.707107 -4541,0.707107,0.000000,0.000000,0.707107 -4542,0.707107,0.000000,0.000000,0.707107 -4543,0.707107,0.000000,0.000000,0.707107 -4544,0.707107,0.000000,0.000000,0.707107 -4545,0.707107,0.000000,0.000000,0.707107 -4546,0.707107,0.000000,0.000000,0.707107 -4547,0.707107,0.000000,0.000000,0.707107 -4548,0.707107,0.000000,0.000000,0.707107 -4549,0.707107,0.000000,0.000000,0.707107 -4550,0.707107,0.000000,0.000000,0.707107 -4551,0.707107,0.000000,0.000000,0.707107 -4552,0.707107,0.000000,0.000000,0.707107 -4553,0.707107,0.000000,0.000000,0.707107 -4554,0.707107,0.000000,0.000000,0.707107 -4555,0.707107,0.000000,0.000000,0.707107 -4556,0.707107,0.000000,0.000000,0.707107 -4557,0.707107,0.000000,0.000000,0.707107 -4558,0.707107,0.000000,0.000000,0.707107 -4559,0.707107,0.000000,0.000000,0.707107 -4560,0.707107,0.000000,0.000000,0.707107 -4561,0.707107,0.000000,0.000000,0.707107 -4562,0.707107,0.000000,0.000000,0.707107 -4563,0.707107,0.000000,0.000000,0.707107 -4564,0.707107,0.000000,0.000000,0.707107 -4565,0.707107,0.000000,0.000000,0.707107 -4566,0.707107,0.000000,0.000000,0.707107 -4567,0.707107,0.000000,0.000000,0.707107 -4568,0.707107,0.000000,0.000000,0.707107 -4569,0.707107,0.000000,0.000000,0.707107 -4570,0.707107,0.000000,0.000000,0.707107 -4571,0.707107,0.000000,0.000000,0.707107 -4572,0.707107,0.000000,0.000000,0.707107 -4573,0.707107,0.000000,0.000000,0.707107 -4574,0.707107,0.000000,0.000000,0.707107 -4575,0.707107,0.000000,0.000000,0.707107 -4576,0.707107,0.000000,0.000000,0.707107 -4577,0.707107,0.000000,0.000000,0.707107 -4578,0.707107,0.000000,0.000000,0.707107 -4579,0.707107,0.000000,0.000000,0.707107 -4580,0.707107,0.000000,0.000000,0.707107 -4581,0.707107,0.000000,0.000000,0.707107 -4582,0.707107,0.000000,0.000000,0.707107 -4583,0.707107,0.000000,0.000000,0.707107 -4584,0.707107,0.000000,0.000000,0.707107 -4585,0.707107,0.000000,0.000000,0.707107 -4586,0.707107,0.000000,0.000000,0.707107 -4587,0.707107,0.000000,0.000000,0.707107 -4588,0.707107,0.000000,0.000000,0.707107 -4589,0.707107,0.000000,0.000000,0.707107 -4590,0.707107,0.000000,0.000000,0.707107 -4591,0.707107,0.000000,0.000000,0.707107 -4592,0.707107,0.000000,0.000000,0.707107 -4593,0.707107,0.000000,0.000000,0.707107 -4594,0.707107,0.000000,0.000000,0.707107 -4595,0.707107,0.000000,0.000000,0.707107 -4596,0.707107,0.000000,0.000000,0.707107 -4597,0.707107,0.000000,0.000000,0.707107 -4598,0.707107,0.000000,0.000000,0.707107 -4599,0.707107,0.000000,0.000000,0.707107 -4600,0.707107,0.000000,0.000000,0.707107 -4601,0.707107,0.000000,0.000000,0.707107 -4602,0.707107,0.000000,0.000000,0.707107 -4603,0.707107,0.000000,0.000000,0.707107 -4604,0.707107,0.000000,0.000000,0.707107 -4605,0.707107,0.000000,0.000000,0.707107 -4606,0.707107,0.000000,0.000000,0.707107 -4607,0.707107,0.000000,0.000000,0.707107 -4608,0.707107,0.000000,0.000000,0.707107 -4609,0.707107,0.000000,0.000000,0.707107 -4610,0.707107,0.000000,0.000000,0.707107 -4611,0.707107,0.000000,0.000000,0.707107 -4612,0.707107,0.000000,0.000000,0.707107 -4613,0.707107,0.000000,0.000000,0.707107 -4614,0.707107,0.000000,0.000000,0.707107 -4615,0.707107,0.000000,0.000000,0.707107 -4616,0.707107,0.000000,0.000000,0.707107 -4617,0.707107,0.000000,0.000000,0.707107 -4618,0.707107,0.000000,0.000000,0.707107 -4619,0.707107,0.000000,0.000000,0.707107 -4620,0.707107,0.000000,0.000000,0.707107 -4621,0.707107,0.000000,0.000000,0.707107 -4622,0.707107,0.000000,0.000000,0.707107 -4623,0.707107,0.000000,0.000000,0.707107 -4624,0.707107,0.000000,0.000000,0.707107 -4625,0.707107,0.000000,0.000000,0.707107 -4626,0.707107,0.000000,0.000000,0.707107 -4627,0.707107,0.000000,0.000000,0.707107 -4628,0.707107,0.000000,0.000000,0.707107 -4629,0.707107,0.000000,0.000000,0.707107 -4630,0.707107,0.000000,0.000000,0.707107 -4631,0.707107,0.000000,0.000000,0.707107 -4632,0.707107,0.000000,0.000000,0.707107 -4633,0.707107,0.000000,0.000000,0.707107 -4634,0.707107,0.000000,0.000000,0.707107 -4635,0.707107,0.000000,0.000000,0.707107 -4636,0.707107,0.000000,0.000000,0.707107 -4637,0.707107,0.000000,0.000000,0.707107 -4638,0.707107,0.000000,0.000000,0.707107 -4639,0.707107,0.000000,0.000000,0.707107 -4640,0.707107,0.000000,0.000000,0.707107 -4641,0.707107,0.000000,0.000000,0.707107 -4642,0.707107,0.000000,0.000000,0.707107 -4643,0.707107,0.000000,0.000000,0.707107 -4644,0.707107,0.000000,0.000000,0.707107 -4645,0.707107,0.000000,0.000000,0.707107 -4646,0.707107,0.000000,0.000000,0.707107 -4647,0.707107,0.000000,0.000000,0.707107 -4648,0.707107,0.000000,0.000000,0.707107 -4649,0.707107,0.000000,0.000000,0.707107 -4650,0.707107,0.000000,0.000000,0.707107 -4651,0.707107,0.000000,0.000000,0.707107 -4652,0.707107,0.000000,0.000000,0.707107 -4653,0.707107,0.000000,0.000000,0.707107 -4654,0.707107,0.000000,0.000000,0.707107 -4655,0.707107,0.000000,0.000000,0.707107 -4656,0.707107,0.000000,0.000000,0.707107 -4657,0.707107,0.000000,0.000000,0.707107 -4658,0.707107,0.000000,0.000000,0.707107 -4659,0.707107,0.000000,0.000000,0.707107 -4660,0.707107,0.000000,0.000000,0.707107 -4661,0.707107,0.000000,0.000000,0.707107 -4662,0.707107,0.000000,0.000000,0.707107 -4663,0.707107,0.000000,0.000000,0.707107 -4664,0.707107,0.000000,0.000000,0.707107 -4665,0.707107,0.000000,0.000000,0.707107 -4666,0.707107,0.000000,0.000000,0.707107 -4667,0.707107,0.000000,0.000000,0.707107 -4668,0.707107,0.000000,0.000000,0.707107 -4669,0.707107,0.000000,0.000000,0.707107 -4670,0.707107,0.000000,0.000000,0.707107 -4671,0.707107,0.000000,0.000000,0.707107 -4672,0.707107,0.000000,0.000000,0.707107 -4673,0.707107,0.000000,0.000000,0.707107 -4674,0.707107,0.000000,0.000000,0.707107 -4675,0.707107,0.000000,0.000000,0.707107 -4676,0.707107,0.000000,0.000000,0.707107 -4677,0.707107,0.000000,0.000000,0.707107 -4678,0.707107,0.000000,0.000000,0.707107 -4679,0.707107,0.000000,0.000000,0.707107 -4680,0.707107,0.000000,0.000000,0.707107 -4681,0.707107,0.000000,0.000000,0.707107 -4682,0.707107,0.000000,0.000000,0.707107 -4683,0.707107,0.000000,0.000000,0.707107 -4684,0.707107,0.000000,0.000000,0.707107 -4685,0.707107,0.000000,0.000000,0.707107 -4686,0.707107,0.000000,0.000000,0.707107 -4687,0.707107,0.000000,0.000000,0.707107 -4688,0.707107,0.000000,0.000000,0.707107 -4689,0.707107,0.000000,0.000000,0.707107 -4690,0.707107,0.000000,0.000000,0.707107 -4691,0.707107,0.000000,0.000000,0.707107 -4692,0.707107,0.000000,0.000000,0.707107 -4693,0.707107,0.000000,0.000000,0.707107 -4694,0.707107,0.000000,0.000000,0.707107 -4695,0.707107,0.000000,0.000000,0.707107 -4696,0.707107,0.000000,0.000000,0.707107 -4697,0.707107,0.000000,0.000000,0.707107 -4698,0.707107,0.000000,0.000000,0.707107 -4699,0.707107,0.000000,0.000000,0.707107 -4700,0.707107,0.000000,0.000000,0.707107 -4701,0.707107,0.000000,0.000000,0.707107 -4702,0.707107,0.000000,0.000000,0.707107 -4703,0.707107,0.000000,0.000000,0.707107 -4704,0.707107,0.000000,0.000000,0.707107 -4705,0.707107,0.000000,0.000000,0.707107 -4706,0.707107,0.000000,0.000000,0.707107 -4707,0.707107,0.000000,0.000000,0.707107 -4708,0.707107,0.000000,0.000000,0.707107 -4709,0.707107,0.000000,0.000000,0.707107 -4710,0.707107,0.000000,0.000000,0.707107 -4711,0.707107,0.000000,0.000000,0.707107 -4712,0.707107,0.000000,0.000000,0.707107 -4713,0.707107,0.000000,0.000000,0.707107 -4714,0.707107,0.000000,0.000000,0.707107 -4715,0.707107,0.000000,0.000000,0.707107 -4716,0.707107,0.000000,0.000000,0.707107 -4717,0.707107,0.000000,0.000000,0.707107 -4718,0.707107,0.000000,0.000000,0.707107 -4719,0.707107,0.000000,0.000000,0.707107 -4720,0.707107,0.000000,0.000000,0.707107 -4721,0.707107,0.000000,0.000000,0.707107 -4722,0.707107,0.000000,0.000000,0.707107 -4723,0.707107,0.000000,0.000000,0.707107 -4724,0.707107,0.000000,0.000000,0.707107 -4725,0.707107,0.000000,0.000000,0.707107 -4726,0.707107,0.000000,0.000000,0.707107 -4727,0.707107,0.000000,0.000000,0.707107 -4728,0.707107,0.000000,0.000000,0.707107 -4729,0.707107,0.000000,0.000000,0.707107 -4730,0.707107,0.000000,0.000000,0.707107 -4731,0.707107,0.000000,0.000000,0.707107 -4732,0.707107,0.000000,0.000000,0.707107 -4733,0.707107,0.000000,0.000000,0.707107 -4734,0.707107,0.000000,0.000000,0.707107 -4735,0.707107,0.000000,0.000000,0.707107 -4736,0.707107,0.000000,0.000000,0.707107 -4737,0.707107,0.000000,0.000000,0.707107 -4738,0.707107,0.000000,0.000000,0.707107 -4739,0.707107,0.000000,0.000000,0.707107 -4740,0.707107,0.000000,0.000000,0.707107 -4741,0.707107,0.000000,0.000000,0.707107 -4742,0.707107,0.000000,0.000000,0.707107 -4743,0.707107,0.000000,0.000000,0.707107 -4744,0.707107,0.000000,0.000000,0.707107 -4745,0.707107,0.000000,0.000000,0.707107 -4746,0.707107,0.000000,0.000000,0.707107 -4747,0.707107,0.000000,0.000000,0.707107 -4748,0.707107,0.000000,0.000000,0.707107 -4749,0.707107,0.000000,0.000000,0.707107 -4750,0.707107,0.000000,0.000000,0.707107 -4751,0.707107,0.000000,0.000000,0.707107 -4752,0.707107,0.000000,0.000000,0.707107 -4753,0.707107,0.000000,0.000000,0.707107 -4754,0.707107,0.000000,0.000000,0.707107 -4755,0.707107,0.000000,0.000000,0.707107 -4756,0.707107,0.000000,0.000000,0.707107 -4757,0.707107,0.000000,0.000000,0.707107 -4758,0.707107,0.000000,0.000000,0.707107 -4759,0.707107,0.000000,0.000000,0.707107 -4760,0.707107,0.000000,0.000000,0.707107 -4761,0.707107,0.000000,0.000000,0.707107 -4762,0.707107,0.000000,0.000000,0.707107 -4763,0.707107,0.000000,0.000000,0.707107 -4764,0.707107,0.000000,0.000000,0.707107 -4765,0.707107,0.000000,0.000000,0.707107 -4766,0.707107,0.000000,0.000000,0.707107 -4767,0.707107,0.000000,0.000000,0.707107 -4768,0.707107,0.000000,0.000000,0.707107 -4769,0.707107,0.000000,0.000000,0.707107 -4770,0.707107,0.000000,0.000000,0.707107 -4771,0.707107,0.000000,0.000000,0.707107 -4772,0.707107,0.000000,0.000000,0.707107 -4773,0.707107,0.000000,0.000000,0.707107 -4774,0.707107,0.000000,0.000000,0.707107 -4775,0.707107,0.000000,0.000000,0.707107 -4776,0.707107,0.000000,0.000000,0.707107 -4777,0.707107,0.000000,0.000000,0.707107 -4778,0.707107,0.000000,0.000000,0.707107 -4779,0.707107,0.000000,0.000000,0.707107 -4780,0.707107,0.000000,0.000000,0.707107 -4781,0.707107,0.000000,0.000000,0.707107 -4782,0.707107,0.000000,0.000000,0.707107 -4783,0.707107,0.000000,0.000000,0.707107 -4784,0.707107,0.000000,0.000000,0.707107 -4785,0.707107,0.000000,0.000000,0.707107 -4786,0.707107,0.000000,0.000000,0.707107 -4787,0.707107,0.000000,0.000000,0.707107 -4788,0.707107,0.000000,0.000000,0.707107 -4789,0.707107,0.000000,0.000000,0.707107 -4790,0.707107,0.000000,0.000000,0.707107 -4791,0.707107,0.000000,0.000000,0.707107 -4792,0.707107,0.000000,0.000000,0.707107 -4793,0.707107,0.000000,0.000000,0.707107 -4794,0.707107,0.000000,0.000000,0.707107 -4795,0.707107,0.000000,0.000000,0.707107 -4796,0.707107,0.000000,0.000000,0.707107 -4797,0.707107,0.000000,0.000000,0.707107 -4798,0.707107,0.000000,0.000000,0.707107 -4799,0.707107,0.000000,0.000000,0.707107 -4800,0.707107,0.000000,0.000000,0.707107 -4801,0.707107,0.000000,0.000000,0.707107 -4802,0.707107,0.000000,0.000000,0.707107 -4803,0.707107,0.000000,0.000000,0.707107 -4804,0.707107,0.000000,0.000000,0.707107 -4805,0.707107,0.000000,0.000000,0.707107 -4806,0.707107,0.000000,0.000000,0.707107 -4807,0.707107,0.000000,0.000000,0.707107 -4808,0.707107,0.000000,0.000000,0.707107 -4809,0.707107,0.000000,0.000000,0.707107 -4810,0.707107,0.000000,0.000000,0.707107 -4811,0.707107,0.000000,0.000000,0.707107 -4812,0.707107,0.000000,0.000000,0.707107 -4813,0.707107,0.000000,0.000000,0.707107 -4814,0.707107,0.000000,0.000000,0.707107 -4815,0.707107,0.000000,0.000000,0.707107 -4816,0.707107,0.000000,0.000000,0.707107 -4817,0.707107,0.000000,0.000000,0.707107 -4818,0.707107,0.000000,0.000000,0.707107 -4819,0.707107,0.000000,0.000000,0.707107 -4820,0.707107,0.000000,0.000000,0.707107 -4821,0.707107,0.000000,0.000000,0.707107 -4822,0.707107,0.000000,0.000000,0.707107 -4823,0.707107,0.000000,0.000000,0.707107 -4824,0.707107,0.000000,0.000000,0.707107 -4825,0.707107,0.000000,0.000000,0.707107 -4826,0.707107,0.000000,0.000000,0.707107 -4827,0.707107,0.000000,0.000000,0.707107 -4828,0.707107,0.000000,0.000000,0.707107 -4829,0.707107,0.000000,0.000000,0.707107 -4830,0.707107,0.000000,0.000000,0.707107 -4831,0.707107,0.000000,0.000000,0.707107 -4832,0.707107,0.000000,0.000000,0.707107 -4833,0.707107,0.000000,0.000000,0.707107 -4834,0.707107,0.000000,0.000000,0.707107 -4835,0.707107,0.000000,0.000000,0.707107 -4836,0.707107,0.000000,0.000000,0.707107 -4837,0.707107,0.000000,0.000000,0.707107 -4838,0.707107,0.000000,0.000000,0.707107 -4839,0.707107,0.000000,0.000000,0.707107 -4840,0.707107,0.000000,0.000000,0.707107 -4841,0.707107,0.000000,0.000000,0.707107 -4842,0.707107,0.000000,0.000000,0.707107 -4843,0.707107,0.000000,0.000000,0.707107 -4844,0.707107,0.000000,0.000000,0.707107 -4845,0.707107,0.000000,0.000000,0.707107 -4846,0.707107,0.000000,0.000000,0.707107 -4847,0.707107,0.000000,0.000000,0.707107 -4848,0.707107,0.000000,0.000000,0.707107 -4849,0.707107,0.000000,0.000000,0.707107 -4850,0.707107,0.000000,0.000000,0.707107 -4851,0.707107,0.000000,0.000000,0.707107 -4852,0.707107,0.000000,0.000000,0.707107 -4853,0.707107,0.000000,0.000000,0.707107 -4854,0.707107,0.000000,0.000000,0.707107 -4855,0.707107,0.000000,0.000000,0.707107 -4856,0.707107,0.000000,0.000000,0.707107 -4857,0.707107,0.000000,0.000000,0.707107 -4858,0.707107,0.000000,0.000000,0.707107 -4859,0.707107,0.000000,0.000000,0.707107 -4860,0.707107,0.000000,0.000000,0.707107 -4861,0.707107,0.000000,0.000000,0.707107 -4862,0.707107,0.000000,0.000000,0.707107 -4863,0.707107,0.000000,0.000000,0.707107 -4864,0.707107,0.000000,0.000000,0.707107 -4865,0.707107,0.000000,0.000000,0.707107 -4866,0.707107,0.000000,0.000000,0.707107 -4867,0.707107,0.000000,0.000000,0.707107 -4868,0.707107,0.000000,0.000000,0.707107 -4869,0.707107,0.000000,0.000000,0.707107 -4870,0.707107,0.000000,0.000000,0.707107 -4871,0.707107,0.000000,0.000000,0.707107 -4872,0.707107,0.000000,0.000000,0.707107 -4873,0.707107,0.000000,0.000000,0.707107 -4874,0.707107,0.000000,0.000000,0.707107 -4875,0.707107,0.000000,0.000000,0.707107 -4876,0.707107,0.000000,0.000000,0.707107 -4877,0.707107,0.000000,0.000000,0.707107 -4878,0.707107,0.000000,0.000000,0.707107 -4879,0.707107,0.000000,0.000000,0.707107 -4880,0.707107,0.000000,0.000000,0.707107 -4881,0.707107,0.000000,0.000000,0.707107 -4882,0.707107,0.000000,0.000000,0.707107 -4883,0.707107,0.000000,0.000000,0.707107 -4884,0.707107,0.000000,0.000000,0.707107 -4885,0.707107,0.000000,0.000000,0.707107 -4886,0.707107,0.000000,0.000000,0.707107 -4887,0.707107,0.000000,0.000000,0.707107 -4888,0.707107,0.000000,0.000000,0.707107 -4889,0.707107,0.000000,0.000000,0.707107 -4890,0.707107,0.000000,0.000000,0.707107 -4891,0.707107,0.000000,0.000000,0.707107 -4892,0.707107,0.000000,0.000000,0.707107 -4893,0.707107,0.000000,0.000000,0.707107 -4894,0.707107,0.000000,0.000000,0.707107 -4895,0.707107,0.000000,0.000000,0.707107 -4896,0.707107,0.000000,0.000000,0.707107 -4897,0.707107,0.000000,0.000000,0.707107 -4898,0.707107,0.000000,0.000000,0.707107 -4899,0.707107,0.000000,0.000000,0.707107 -4900,0.707107,0.000000,0.000000,0.707107 -4901,0.707107,0.000000,0.000000,0.707107 -4902,0.707107,0.000000,0.000000,0.707107 -4903,0.707107,0.000000,0.000000,0.707107 -4904,0.707107,0.000000,0.000000,0.707107 -4905,0.707107,0.000000,0.000000,0.707107 -4906,0.707107,0.000000,0.000000,0.707107 -4907,0.707107,0.000000,0.000000,0.707107 -4908,0.707107,0.000000,0.000000,0.707107 -4909,0.707107,0.000000,0.000000,0.707107 -4910,0.707107,0.000000,0.000000,0.707107 -4911,0.707107,0.000000,0.000000,0.707107 -4912,0.707107,0.000000,0.000000,0.707107 -4913,0.707107,0.000000,0.000000,0.707107 -4914,0.707107,0.000000,0.000000,0.707107 -4915,0.707107,0.000000,0.000000,0.707107 -4916,0.707107,0.000000,0.000000,0.707107 -4917,0.707107,0.000000,0.000000,0.707107 -4918,0.707107,0.000000,0.000000,0.707107 -4919,0.707107,0.000000,0.000000,0.707107 -4920,0.707107,0.000000,0.000000,0.707107 -4921,0.707107,0.000000,0.000000,0.707107 -4922,0.707107,0.000000,0.000000,0.707107 -4923,0.707107,0.000000,0.000000,0.707107 -4924,0.707107,0.000000,0.000000,0.707107 -4925,0.707107,0.000000,0.000000,0.707107 -4926,0.707107,0.000000,0.000000,0.707107 -4927,0.707107,0.000000,0.000000,0.707107 -4928,0.707107,0.000000,0.000000,0.707107 -4929,0.707107,0.000000,0.000000,0.707107 -4930,0.707107,0.000000,0.000000,0.707107 -4931,0.707107,0.000000,0.000000,0.707107 -4932,0.707107,0.000000,0.000000,0.707107 -4933,0.707107,0.000000,0.000000,0.707107 -4934,0.707107,0.000000,0.000000,0.707107 -4935,0.707107,0.000000,0.000000,0.707107 -4936,0.707107,0.000000,0.000000,0.707107 -4937,0.707107,0.000000,0.000000,0.707107 -4938,0.707107,0.000000,0.000000,0.707107 -4939,0.707107,0.000000,0.000000,0.707107 -4940,0.707107,0.000000,0.000000,0.707107 -4941,0.707107,0.000000,0.000000,0.707107 -4942,0.707107,0.000000,0.000000,0.707107 -4943,0.707107,0.000000,0.000000,0.707107 -4944,0.707107,0.000000,0.000000,0.707107 -4945,0.707107,0.000000,0.000000,0.707107 -4946,0.707107,0.000000,0.000000,0.707107 -4947,0.707107,0.000000,0.000000,0.707107 -4948,0.707107,0.000000,0.000000,0.707107 -4949,0.707107,0.000000,0.000000,0.707107 -4950,0.707107,0.000000,0.000000,0.707107 -4951,0.707107,0.000000,0.000000,0.707107 -4952,0.707107,0.000000,0.000000,0.707107 -4953,0.707107,0.000000,0.000000,0.707107 -4954,0.707107,0.000000,0.000000,0.707107 -4955,0.707107,0.000000,0.000000,0.707107 -4956,0.707107,0.000000,0.000000,0.707107 -4957,0.707107,0.000000,0.000000,0.707107 -4958,0.707107,0.000000,0.000000,0.707107 -4959,0.707107,0.000000,0.000000,0.707107 -4960,0.707107,0.000000,0.000000,0.707107 -4961,0.707107,0.000000,0.000000,0.707107 -4962,0.707107,0.000000,0.000000,0.707107 -4963,0.707107,0.000000,0.000000,0.707107 -4964,0.707107,0.000000,0.000000,0.707107 -4965,0.707107,0.000000,0.000000,0.707107 -4966,0.707107,0.000000,0.000000,0.707107 -4967,0.707107,0.000000,0.000000,0.707107 -4968,0.707107,0.000000,0.000000,0.707107 -4969,0.707107,0.000000,0.000000,0.707107 -4970,0.707107,0.000000,0.000000,0.707107 -4971,0.707107,0.000000,0.000000,0.707107 -4972,0.707107,0.000000,0.000000,0.707107 -4973,0.707107,0.000000,0.000000,0.707107 -4974,0.707107,0.000000,0.000000,0.707107 -4975,0.707107,0.000000,0.000000,0.707107 -4976,0.707107,0.000000,0.000000,0.707107 -4977,0.707107,0.000000,0.000000,0.707107 -4978,0.707107,0.000000,0.000000,0.707107 -4979,0.707107,0.000000,0.000000,0.707107 -4980,0.707107,0.000000,0.000000,0.707107 -4981,0.707107,0.000000,0.000000,0.707107 -4982,0.707107,0.000000,0.000000,0.707107 -4983,0.707107,0.000000,0.000000,0.707107 -4984,0.707107,0.000000,0.000000,0.707107 -4985,0.707107,0.000000,0.000000,0.707107 -4986,0.707107,0.000000,0.000000,0.707107 -4987,0.707107,0.000000,0.000000,0.707107 -4988,0.707107,0.000000,0.000000,0.707107 -4989,0.707107,0.000000,0.000000,0.707107 -4990,0.707107,0.000000,0.000000,0.707107 -4991,0.707107,0.000000,0.000000,0.707107 -4992,0.707107,0.000000,0.000000,0.707107 -4993,0.707107,0.000000,0.000000,0.707107 -4994,0.707107,0.000000,0.000000,0.707107 -4995,0.707107,0.000000,0.000000,0.707107 -4996,0.707107,0.000000,0.000000,0.707107 -4997,0.707107,0.000000,0.000000,0.707107 -4998,0.707107,0.000000,0.000000,0.707107 -4999,0.707107,0.000000,0.000000,0.707107 -5000,0.707107,0.000000,0.000000,0.707107 -5001,0.707107,0.000000,0.000000,0.707107 -5002,0.707107,0.000000,0.000000,0.707107 -5003,0.707107,0.000000,0.000000,0.707107 -5004,0.707107,0.000000,0.000000,0.707107 -5005,0.707107,0.000000,0.000000,0.707107 -5006,0.707107,0.000000,0.000000,0.707107 -5007,0.707107,0.000000,0.000000,0.707107 -5008,0.707107,0.000000,0.000000,0.707107 -5009,0.707107,0.000000,0.000000,0.707107 -5010,0.707107,0.000000,0.000000,0.707107 -5011,0.707107,0.000000,0.000000,0.707107 -5012,0.707107,0.000000,0.000000,0.707107 -5013,0.707107,0.000000,0.000000,0.707107 -5014,0.707107,0.000000,0.000000,0.707107 -5015,0.707107,0.000000,0.000000,0.707107 -5016,0.707107,0.000000,0.000000,0.707107 -5017,0.707107,0.000000,0.000000,0.707107 -5018,0.707107,0.000000,0.000000,0.707107 -5019,0.707107,0.000000,0.000000,0.707107 -5020,0.707107,0.000000,0.000000,0.707107 -5021,0.707107,0.000000,0.000000,0.707107 -5022,0.707107,0.000000,0.000000,0.707107 -5023,0.707107,0.000000,0.000000,0.707107 -5024,0.707107,0.000000,0.000000,0.707107 -5025,0.707107,0.000000,0.000000,0.707107 -5026,0.707107,0.000000,0.000000,0.707107 -5027,0.707107,0.000000,0.000000,0.707107 -5028,0.707107,0.000000,0.000000,0.707107 -5029,0.707107,0.000000,0.000000,0.707107 -5030,0.707107,0.000000,0.000000,0.707107 -5031,0.707107,0.000000,0.000000,0.707107 -5032,0.707107,0.000000,0.000000,0.707107 -5033,0.707107,0.000000,0.000000,0.707107 -5034,0.707107,0.000000,0.000000,0.707107 -5035,0.707107,0.000000,0.000000,0.707107 -5036,0.707107,0.000000,0.000000,0.707107 -5037,0.707107,0.000000,0.000000,0.707107 -5038,0.707107,0.000000,0.000000,0.707107 -5039,0.707107,0.000000,0.000000,0.707107 -5040,0.707107,0.000000,0.000000,0.707107 -5041,0.707107,0.000000,0.000000,0.707107 -5042,0.707107,0.000000,0.000000,0.707107 -5043,0.707107,0.000000,0.000000,0.707107 -5044,0.707107,0.000000,0.000000,0.707107 -5045,0.707107,0.000000,0.000000,0.707107 -5046,0.707107,0.000000,0.000000,0.707107 -5047,0.707107,0.000000,0.000000,0.707107 -5048,0.707107,0.000000,0.000000,0.707107 -5049,0.707107,0.000000,0.000000,0.707107 -5050,0.707107,0.000000,0.000000,0.707107 -5051,0.707107,0.000000,0.000000,0.707107 -5052,0.707107,0.000000,0.000000,0.707107 -5053,0.707107,0.000000,0.000000,0.707107 -5054,0.707107,0.000000,0.000000,0.707107 -5055,0.707107,0.000000,0.000000,0.707107 -5056,0.707107,0.000000,0.000000,0.707107 -5057,0.707107,0.000000,0.000000,0.707107 -5058,0.707107,0.000000,0.000000,0.707107 -5059,0.707107,0.000000,0.000000,0.707107 -5060,0.707107,0.000000,0.000000,0.707107 -5061,0.707107,0.000000,0.000000,0.707107 -5062,0.707107,0.000000,0.000000,0.707107 -5063,0.707107,0.000000,0.000000,0.707107 -5064,0.707107,0.000000,0.000000,0.707107 -5065,0.707107,0.000000,0.000000,0.707107 -5066,0.707107,0.000000,0.000000,0.707107 -5067,0.707107,0.000000,0.000000,0.707107 -5068,0.707107,0.000000,0.000000,0.707107 -5069,0.707107,0.000000,0.000000,0.707107 -5070,0.707107,0.000000,0.000000,0.707107 -5071,0.707107,0.000000,0.000000,0.707107 -5072,0.707107,0.000000,0.000000,0.707107 -5073,0.707107,0.000000,0.000000,0.707107 -5074,0.707107,0.000000,0.000000,0.707107 -5075,0.707107,0.000000,0.000000,0.707107 -5076,0.707107,0.000000,0.000000,0.707107 -5077,0.707107,0.000000,0.000000,0.707107 -5078,0.707107,0.000000,0.000000,0.707107 -5079,0.707107,0.000000,0.000000,0.707107 -5080,0.707107,0.000000,0.000000,0.707107 -5081,0.707107,0.000000,0.000000,0.707107 -5082,0.707107,0.000000,0.000000,0.707107 -5083,0.707107,0.000000,0.000000,0.707107 -5084,0.707107,0.000000,0.000000,0.707107 -5085,0.707107,0.000000,0.000000,0.707107 -5086,0.707107,0.000000,0.000000,0.707107 -5087,0.707107,0.000000,0.000000,0.707107 -5088,0.707107,0.000000,0.000000,0.707107 -5089,0.707107,0.000000,0.000000,0.707107 -5090,0.707107,0.000000,0.000000,0.707107 -5091,0.707107,0.000000,0.000000,0.707107 -5092,0.707107,0.000000,0.000000,0.707107 -5093,0.707107,0.000000,0.000000,0.707107 -5094,0.707107,0.000000,0.000000,0.707107 -5095,0.707107,0.000000,0.000000,0.707107 -5096,0.707107,0.000000,0.000000,0.707107 -5097,0.707107,0.000000,0.000000,0.707107 -5098,0.707107,0.000000,0.000000,0.707107 -5099,0.707107,0.000000,0.000000,0.707107 -5100,0.707107,0.000000,0.000000,0.707107 -5101,0.707107,0.000000,0.000000,0.707107 -5102,0.707107,0.000000,0.000000,0.707107 -5103,0.707107,0.000000,0.000000,0.707107 -5104,0.707107,0.000000,0.000000,0.707107 -5105,0.707107,0.000000,0.000000,0.707107 -5106,0.707107,0.000000,0.000000,0.707107 -5107,0.707107,0.000000,0.000000,0.707107 -5108,0.707107,0.000000,0.000000,0.707107 -5109,0.707107,0.000000,0.000000,0.707107 -5110,0.707107,0.000000,0.000000,0.707107 -5111,0.707107,0.000000,0.000000,0.707107 -5112,0.707107,0.000000,0.000000,0.707107 -5113,0.707107,0.000000,0.000000,0.707107 -5114,0.707107,0.000000,0.000000,0.707107 -5115,0.707107,0.000000,0.000000,0.707107 -5116,0.707107,0.000000,0.000000,0.707107 -5117,0.707107,0.000000,0.000000,0.707107 -5118,0.707107,0.000000,0.000000,0.707107 -5119,0.707107,0.000000,0.000000,0.707107 -5120,0.707107,0.000000,0.000000,0.707107 -5121,0.707107,0.000000,0.000000,0.707107 -5122,0.707107,0.000000,0.000000,0.707107 -5123,0.707107,0.000000,0.000000,0.707107 -5124,0.707107,0.000000,0.000000,0.707107 -5125,0.707107,0.000000,0.000000,0.707107 -5126,0.707107,0.000000,0.000000,0.707107 -5127,0.707107,0.000000,0.000000,0.707107 -5128,0.707107,0.000000,0.000000,0.707107 -5129,0.707107,0.000000,0.000000,0.707107 -5130,0.707107,0.000000,0.000000,0.707107 -5131,0.707107,0.000000,0.000000,0.707107 -5132,0.707107,0.000000,0.000000,0.707107 -5133,0.707107,0.000000,0.000000,0.707107 -5134,0.707107,0.000000,0.000000,0.707107 -5135,0.707107,0.000000,0.000000,0.707107 -5136,0.707107,0.000000,0.000000,0.707107 -5137,0.707107,0.000000,0.000000,0.707107 -5138,0.707107,0.000000,0.000000,0.707107 -5139,0.707107,0.000000,0.000000,0.707107 -5140,0.707107,0.000000,0.000000,0.707107 -5141,0.707107,0.000000,0.000000,0.707107 -5142,0.707107,0.000000,0.000000,0.707107 -5143,0.707107,0.000000,0.000000,0.707107 -5144,0.707107,0.000000,0.000000,0.707107 -5145,0.707107,0.000000,0.000000,0.707107 -5146,0.707107,0.000000,0.000000,0.707107 -5147,0.707107,0.000000,0.000000,0.707107 -5148,0.707107,0.000000,0.000000,0.707107 -5149,0.707107,0.000000,0.000000,0.707107 -5150,0.707107,0.000000,0.000000,0.707107 -5151,0.707107,0.000000,0.000000,0.707107 -5152,0.707107,0.000000,0.000000,0.707107 -5153,0.707107,0.000000,0.000000,0.707107 -5154,0.707107,0.000000,0.000000,0.707107 -5155,0.707107,0.000000,0.000000,0.707107 -5156,0.707107,0.000000,0.000000,0.707107 -5157,0.707107,0.000000,0.000000,0.707107 -5158,0.707107,0.000000,0.000000,0.707107 -5159,0.707107,0.000000,0.000000,0.707107 -5160,0.707107,0.000000,0.000000,0.707107 -5161,0.707107,0.000000,0.000000,0.707107 -5162,0.707107,0.000000,0.000000,0.707107 -5163,0.707107,0.000000,0.000000,0.707107 -5164,0.707107,0.000000,0.000000,0.707107 -5165,0.707107,0.000000,0.000000,0.707107 -5166,0.707107,0.000000,0.000000,0.707107 -5167,0.707107,0.000000,0.000000,0.707107 -5168,0.707107,0.000000,0.000000,0.707107 -5169,0.707107,0.000000,0.000000,0.707107 -5170,0.707107,0.000000,0.000000,0.707107 -5171,0.707107,0.000000,0.000000,0.707107 -5172,0.707107,0.000000,0.000000,0.707107 -5173,0.707107,0.000000,0.000000,0.707107 -5174,0.707107,0.000000,0.000000,0.707107 -5175,0.707107,0.000000,0.000000,0.707107 -5176,0.707107,0.000000,0.000000,0.707107 -5177,0.707107,0.000000,0.000000,0.707107 -5178,0.707107,0.000000,0.000000,0.707107 -5179,0.707107,0.000000,0.000000,0.707107 -5180,0.707107,0.000000,0.000000,0.707107 -5181,0.707107,0.000000,0.000000,0.707107 -5182,0.707107,0.000000,0.000000,0.707107 -5183,0.707107,0.000000,0.000000,0.707107 -5184,0.707107,0.000000,0.000000,0.707107 -5185,0.707107,0.000000,0.000000,0.707107 -5186,0.707107,0.000000,0.000000,0.707107 -5187,0.707107,0.000000,0.000000,0.707107 -5188,0.707107,0.000000,0.000000,0.707107 -5189,0.707107,0.000000,0.000000,0.707107 -5190,0.707107,0.000000,0.000000,0.707107 -5191,0.707107,0.000000,0.000000,0.707107 -5192,0.707107,0.000000,0.000000,0.707107 -5193,0.707107,0.000000,0.000000,0.707107 -5194,0.707107,0.000000,0.000000,0.707107 -5195,0.707107,0.000000,0.000000,0.707107 -5196,0.707107,0.000000,0.000000,0.707107 -5197,0.707107,0.000000,0.000000,0.707107 -5198,0.707107,0.000000,0.000000,0.707107 -5199,0.707107,0.000000,0.000000,0.707107 -5200,0.707107,0.000000,0.000000,0.707107 -5201,0.707107,0.000000,0.000000,0.707107 -5202,0.707107,0.000000,0.000000,0.707107 -5203,0.707107,0.000000,0.000000,0.707107 -5204,0.707107,0.000000,0.000000,0.707107 -5205,0.707107,0.000000,0.000000,0.707107 -5206,0.707107,0.000000,0.000000,0.707107 -5207,0.707107,0.000000,0.000000,0.707107 -5208,0.707107,0.000000,0.000000,0.707107 -5209,0.707107,0.000000,0.000000,0.707107 -5210,0.707107,0.000000,0.000000,0.707107 -5211,0.707107,0.000000,0.000000,0.707107 -5212,0.707107,0.000000,0.000000,0.707107 -5213,0.707107,0.000000,0.000000,0.707107 -5214,0.707107,0.000000,0.000000,0.707107 -5215,0.707107,0.000000,0.000000,0.707107 -5216,0.707107,0.000000,0.000000,0.707107 -5217,0.707107,0.000000,0.000000,0.707107 -5218,0.707107,0.000000,0.000000,0.707107 -5219,0.707107,0.000000,0.000000,0.707107 -5220,0.707107,0.000000,0.000000,0.707107 -5221,0.707107,0.000000,0.000000,0.707107 -5222,0.707107,0.000000,0.000000,0.707107 -5223,0.707107,0.000000,0.000000,0.707107 -5224,0.707107,0.000000,0.000000,0.707107 -5225,0.707107,0.000000,0.000000,0.707107 -5226,0.707107,0.000000,0.000000,0.707107 -5227,0.707107,0.000000,0.000000,0.707107 -5228,0.707107,0.000000,0.000000,0.707107 -5229,0.707107,0.000000,0.000000,0.707107 -5230,0.707107,0.000000,0.000000,0.707107 -5231,0.707107,0.000000,0.000000,0.707107 -5232,0.707107,0.000000,0.000000,0.707107 -5233,0.707107,0.000000,0.000000,0.707107 -5234,0.707107,0.000000,0.000000,0.707107 -5235,0.707107,0.000000,0.000000,0.707107 -5236,0.707107,0.000000,0.000000,0.707107 -5237,0.707107,0.000000,0.000000,0.707107 -5238,0.707107,0.000000,0.000000,0.707107 -5239,0.707107,0.000000,0.000000,0.707107 -5240,0.707107,0.000000,0.000000,0.707107 -5241,0.707107,0.000000,0.000000,0.707107 -5242,0.707107,0.000000,0.000000,0.707107 -5243,0.707107,0.000000,0.000000,0.707107 -5244,0.707107,0.000000,0.000000,0.707107 -5245,0.707107,0.000000,0.000000,0.707107 -5246,0.707107,0.000000,0.000000,0.707107 -5247,0.707107,0.000000,0.000000,0.707107 -5248,0.707107,0.000000,0.000000,0.707107 -5249,0.707107,0.000000,0.000000,0.707107 -5250,0.707107,0.000000,0.000000,0.707107 -5251,0.707107,0.000000,0.000000,0.707107 -5252,0.707107,0.000000,0.000000,0.707107 -5253,0.707107,0.000000,0.000000,0.707107 -5254,0.707107,0.000000,0.000000,0.707107 -5255,0.707107,0.000000,0.000000,0.707107 -5256,0.707107,0.000000,0.000000,0.707107 -5257,0.707107,0.000000,0.000000,0.707107 -5258,0.707107,0.000000,0.000000,0.707107 -5259,0.707107,0.000000,0.000000,0.707107 -5260,0.707107,0.000000,0.000000,0.707107 -5261,0.707107,0.000000,0.000000,0.707107 -5262,0.707107,0.000000,0.000000,0.707107 -5263,0.707107,0.000000,0.000000,0.707107 -5264,0.707107,0.000000,0.000000,0.707107 -5265,0.707107,0.000000,0.000000,0.707107 -5266,0.707107,0.000000,0.000000,0.707107 -5267,0.707107,0.000000,0.000000,0.707107 -5268,0.707107,0.000000,0.000000,0.707107 -5269,0.707107,0.000000,0.000000,0.707107 -5270,0.707107,0.000000,0.000000,0.707107 -5271,0.707107,0.000000,0.000000,0.707107 -5272,0.707107,0.000000,0.000000,0.707107 -5273,0.707107,0.000000,0.000000,0.707107 -5274,0.707107,0.000000,0.000000,0.707107 -5275,0.707107,0.000000,0.000000,0.707107 -5276,0.707107,0.000000,0.000000,0.707107 -5277,0.707107,0.000000,0.000000,0.707107 -5278,0.707107,0.000000,0.000000,0.707107 -5279,0.707107,0.000000,0.000000,0.707107 -5280,0.707107,0.000000,0.000000,0.707107 -5281,0.707107,0.000000,0.000000,0.707107 -5282,0.707107,0.000000,0.000000,0.707107 -5283,0.707107,0.000000,0.000000,0.707107 -5284,0.707107,0.000000,0.000000,0.707107 -5285,0.707107,0.000000,0.000000,0.707107 -5286,0.707107,0.000000,0.000000,0.707107 -5287,0.707107,0.000000,0.000000,0.707107 -5288,0.707107,0.000000,0.000000,0.707107 -5289,0.707107,0.000000,0.000000,0.707107 -5290,0.707107,0.000000,0.000000,0.707107 -5291,0.707107,0.000000,0.000000,0.707107 -5292,0.707107,0.000000,0.000000,0.707107 -5293,0.707107,0.000000,0.000000,0.707107 -5294,0.707107,0.000000,0.000000,0.707107 -5295,0.707107,0.000000,0.000000,0.707107 -5296,0.707107,0.000000,0.000000,0.707107 -5297,0.707107,0.000000,0.000000,0.707107 -5298,0.707107,0.000000,0.000000,0.707107 -5299,0.707107,0.000000,0.000000,0.707107 -5300,0.707107,0.000000,0.000000,0.707107 -5301,0.707107,0.000000,0.000000,0.707107 -5302,0.707107,0.000000,0.000000,0.707107 -5303,0.707107,0.000000,0.000000,0.707107 -5304,0.707107,0.000000,0.000000,0.707107 -5305,0.707107,0.000000,0.000000,0.707107 -5306,0.707107,0.000000,0.000000,0.707107 -5307,0.707107,0.000000,0.000000,0.707107 -5308,0.707107,0.000000,0.000000,0.707107 -5309,0.707107,0.000000,0.000000,0.707107 -5310,0.707107,0.000000,0.000000,0.707107 -5311,0.707107,0.000000,0.000000,0.707107 -5312,0.707107,0.000000,0.000000,0.707107 -5313,0.707107,0.000000,0.000000,0.707107 -5314,0.707107,0.000000,0.000000,0.707107 -5315,0.707107,0.000000,0.000000,0.707107 -5316,0.707107,0.000000,0.000000,0.707107 -5317,0.707107,0.000000,0.000000,0.707107 -5318,0.707107,0.000000,0.000000,0.707107 -5319,0.707107,0.000000,0.000000,0.707107 -5320,0.707107,0.000000,0.000000,0.707107 -5321,0.707107,0.000000,0.000000,0.707107 -5322,0.707107,0.000000,0.000000,0.707107 -5323,0.707107,0.000000,0.000000,0.707107 -5324,0.707107,0.000000,0.000000,0.707107 -5325,0.707107,0.000000,0.000000,0.707107 -5326,0.707107,0.000000,0.000000,0.707107 -5327,0.707107,0.000000,0.000000,0.707107 -5328,0.707107,0.000000,0.000000,0.707107 -5329,0.707107,0.000000,0.000000,0.707107 -5330,0.707107,0.000000,0.000000,0.707107 -5331,0.707107,0.000000,0.000000,0.707107 -5332,0.707107,0.000000,0.000000,0.707107 -5333,0.707107,0.000000,0.000000,0.707107 -5334,0.707107,0.000000,0.000000,0.707107 -5335,0.707107,0.000000,0.000000,0.707107 -5336,0.707107,0.000000,0.000000,0.707107 -5337,0.707107,0.000000,0.000000,0.707107 -5338,0.707107,0.000000,0.000000,0.707107 -5339,0.707107,0.000000,0.000000,0.707107 -5340,0.707107,0.000000,0.000000,0.707107 -5341,0.707107,0.000000,0.000000,0.707107 -5342,0.707107,0.000000,0.000000,0.707107 -5343,0.707107,0.000000,0.000000,0.707107 -5344,0.707107,0.000000,0.000000,0.707107 -5345,0.707107,0.000000,0.000000,0.707107 -5346,0.707107,0.000000,0.000000,0.707107 -5347,0.707107,0.000000,0.000000,0.707107 -5348,0.707107,0.000000,0.000000,0.707107 -5349,0.707107,0.000000,0.000000,0.707107 -5350,0.707107,0.000000,0.000000,0.707107 -5351,0.707107,0.000000,0.000000,0.707107 -5352,0.707107,0.000000,0.000000,0.707107 -5353,0.707107,0.000000,0.000000,0.707107 -5354,0.707107,0.000000,0.000000,0.707107 -5355,0.707107,0.000000,0.000000,0.707107 -5356,0.707107,0.000000,0.000000,0.707107 -5357,0.707107,0.000000,0.000000,0.707107 -5358,0.707107,0.000000,0.000000,0.707107 -5359,0.707107,0.000000,0.000000,0.707107 -5360,0.707107,0.000000,0.000000,0.707107 -5361,0.707107,0.000000,0.000000,0.707107 -5362,0.707107,0.000000,0.000000,0.707107 -5363,0.707107,0.000000,0.000000,0.707107 -5364,0.707107,0.000000,0.000000,0.707107 -5365,0.707107,0.000000,0.000000,0.707107 -5366,0.707107,0.000000,0.000000,0.707107 -5367,0.707107,0.000000,0.000000,0.707107 -5368,0.707107,0.000000,0.000000,0.707107 -5369,0.707107,0.000000,0.000000,0.707107 -5370,0.707107,0.000000,0.000000,0.707107 -5371,0.707107,0.000000,0.000000,0.707107 -5372,0.707107,0.000000,0.000000,0.707107 -5373,0.707107,0.000000,0.000000,0.707107 -5374,0.707107,0.000000,0.000000,0.707107 -5375,0.707107,0.000000,0.000000,0.707107 -5376,0.707107,0.000000,0.000000,0.707107 -5377,0.707107,0.000000,0.000000,0.707107 -5378,0.707107,0.000000,0.000000,0.707107 -5379,0.707107,0.000000,0.000000,0.707107 -5380,0.707107,0.000000,0.000000,0.707107 -5381,0.707107,0.000000,0.000000,0.707107 -5382,0.707107,0.000000,0.000000,0.707107 -5383,0.707107,0.000000,0.000000,0.707107 -5384,0.707107,0.000000,0.000000,0.707107 -5385,0.707107,0.000000,0.000000,0.707107 -5386,0.707107,0.000000,0.000000,0.707107 -5387,0.707107,0.000000,0.000000,0.707107 -5388,0.707107,0.000000,0.000000,0.707107 -5389,0.707107,0.000000,0.000000,0.707107 -5390,0.707107,0.000000,0.000000,0.707107 -5391,0.707107,0.000000,0.000000,0.707107 -5392,0.707107,0.000000,0.000000,0.707107 -5393,0.707107,0.000000,0.000000,0.707107 -5394,0.707107,0.000000,0.000000,0.707107 -5395,0.707107,0.000000,0.000000,0.707107 -5396,0.707107,0.000000,0.000000,0.707107 -5397,0.707107,0.000000,0.000000,0.707107 -5398,0.707107,0.000000,0.000000,0.707107 -5399,0.707107,0.000000,0.000000,0.707107 -5400,0.707107,0.000000,0.000000,0.707107 -5401,0.707107,0.000000,0.000000,0.707107 -5402,0.707107,0.000000,0.000000,0.707107 -5403,0.707107,0.000000,0.000000,0.707107 -5404,0.707107,0.000000,0.000000,0.707107 -5405,0.707107,0.000000,0.000000,0.707107 -5406,0.707107,0.000000,0.000000,0.707107 -5407,0.707107,0.000000,0.000000,0.707107 -5408,0.707107,0.000000,0.000000,0.707107 -5409,0.707107,0.000000,0.000000,0.707107 -5410,0.707107,0.000000,0.000000,0.707107 -5411,0.707107,0.000000,0.000000,0.707107 -5412,0.707107,0.000000,0.000000,0.707107 -5413,0.707107,0.000000,0.000000,0.707107 -5414,0.707107,0.000000,0.000000,0.707107 -5415,0.707107,0.000000,0.000000,0.707107 -5416,0.707107,0.000000,0.000000,0.707107 -5417,0.707107,0.000000,0.000000,0.707107 -5418,0.707107,0.000000,0.000000,0.707107 -5419,0.707107,0.000000,0.000000,0.707107 -5420,0.707107,0.000000,0.000000,0.707107 -5421,0.707107,0.000000,0.000000,0.707107 -5422,0.707107,0.000000,0.000000,0.707107 -5423,0.707107,0.000000,0.000000,0.707107 -5424,0.707107,0.000000,0.000000,0.707107 -5425,0.707107,0.000000,0.000000,0.707107 -5426,0.707107,0.000000,0.000000,0.707107 -5427,0.707107,0.000000,0.000000,0.707107 -5428,0.707107,0.000000,0.000000,0.707107 -5429,0.707107,0.000000,0.000000,0.707107 -5430,0.707107,0.000000,0.000000,0.707107 -5431,0.707107,0.000000,0.000000,0.707107 -5432,0.707107,0.000000,0.000000,0.707107 -5433,0.707107,0.000000,0.000000,0.707107 -5434,0.707107,0.000000,0.000000,0.707107 -5435,0.707107,0.000000,0.000000,0.707107 -5436,0.707107,0.000000,0.000000,0.707107 -5437,0.707107,0.000000,0.000000,0.707107 -5438,0.707107,0.000000,0.000000,0.707107 -5439,0.707107,0.000000,0.000000,0.707107 -5440,0.707107,0.000000,0.000000,0.707107 -5441,0.707107,0.000000,0.000000,0.707107 -5442,0.707107,0.000000,0.000000,0.707107 -5443,0.707107,0.000000,0.000000,0.707107 -5444,0.707107,0.000000,0.000000,0.707107 -5445,0.707107,0.000000,0.000000,0.707107 -5446,0.707107,0.000000,0.000000,0.707107 -5447,0.707107,0.000000,0.000000,0.707107 -5448,0.707107,0.000000,0.000000,0.707107 -5449,0.707107,0.000000,0.000000,0.707107 -5450,0.707107,0.000000,0.000000,0.707107 -5451,0.707107,0.000000,0.000000,0.707107 -5452,0.707107,0.000000,0.000000,0.707107 -5453,0.707107,0.000000,0.000000,0.707107 -5454,0.707107,0.000000,0.000000,0.707107 -5455,0.707107,0.000000,0.000000,0.707107 -5456,0.707107,0.000000,0.000000,0.707107 -5457,0.707107,0.000000,0.000000,0.707107 -5458,0.707107,0.000000,0.000000,0.707107 -5459,0.707107,0.000000,0.000000,0.707107 -5460,0.707107,0.000000,0.000000,0.707107 -5461,0.707107,0.000000,0.000000,0.707107 -5462,0.707107,0.000000,0.000000,0.707107 -5463,0.707107,0.000000,0.000000,0.707107 -5464,0.707107,0.000000,0.000000,0.707107 -5465,0.707107,0.000000,0.000000,0.707107 -5466,0.707107,0.000000,0.000000,0.707107 -5467,0.707107,0.000000,0.000000,0.707107 -5468,0.707107,0.000000,0.000000,0.707107 -5469,0.707107,0.000000,0.000000,0.707107 -5470,0.707107,0.000000,0.000000,0.707107 -5471,0.707107,0.000000,0.000000,0.707107 -5472,0.707107,0.000000,0.000000,0.707107 -5473,0.707107,0.000000,0.000000,0.707107 -5474,0.707107,0.000000,0.000000,0.707107 -5475,0.707107,0.000000,0.000000,0.707107 -5476,0.707107,0.000000,0.000000,0.707107 -5477,0.707107,0.000000,0.000000,0.707107 -5478,0.707107,0.000000,0.000000,0.707107 -5479,0.707107,0.000000,0.000000,0.707107 -5480,0.707107,0.000000,0.000000,0.707107 -5481,0.707107,0.000000,0.000000,0.707107 -5482,0.707107,0.000000,0.000000,0.707107 -5483,0.707107,0.000000,0.000000,0.707107 -5484,0.707107,0.000000,0.000000,0.707107 -5485,0.707107,0.000000,0.000000,0.707107 -5486,0.707107,0.000000,0.000000,0.707107 -5487,0.707107,0.000000,0.000000,0.707107 -5488,0.707107,0.000000,0.000000,0.707107 -5489,0.707107,0.000000,0.000000,0.707107 -5490,0.707107,0.000000,0.000000,0.707107 -5491,0.707107,0.000000,0.000000,0.707107 -5492,0.707107,0.000000,0.000000,0.707107 -5493,0.707107,0.000000,0.000000,0.707107 -5494,0.707107,0.000000,0.000000,0.707107 -5495,0.707107,0.000000,0.000000,0.707107 -5496,0.707107,0.000000,0.000000,0.707107 -5497,0.707107,0.000000,0.000000,0.707107 -5498,0.707107,0.000000,0.000000,0.707107 -5499,0.707107,0.000000,0.000000,0.707107 -5500,0.707107,0.000000,0.000000,0.707107 -5501,0.707107,0.000000,0.000000,0.707107 -5502,0.707107,0.000000,0.000000,0.707107 -5503,0.707107,0.000000,0.000000,0.707107 -5504,0.707107,0.000000,0.000000,0.707107 -5505,0.707107,0.000000,0.000000,0.707107 -5506,0.707107,0.000000,0.000000,0.707107 -5507,0.707107,0.000000,0.000000,0.707107 -5508,0.707107,0.000000,0.000000,0.707107 -5509,0.707107,0.000000,0.000000,0.707107 -5510,0.707107,0.000000,0.000000,0.707107 -5511,0.707107,0.000000,0.000000,0.707107 -5512,0.707107,0.000000,0.000000,0.707107 -5513,0.707107,0.000000,0.000000,0.707107 -5514,0.707107,0.000000,0.000000,0.707107 -5515,0.707107,0.000000,0.000000,0.707107 -5516,0.707107,0.000000,0.000000,0.707107 -5517,0.707107,0.000000,0.000000,0.707107 -5518,0.707107,0.000000,0.000000,0.707107 -5519,0.707107,0.000000,0.000000,0.707107 -5520,0.707107,0.000000,0.000000,0.707107 -5521,0.707107,0.000000,0.000000,0.707107 -5522,0.707107,0.000000,0.000000,0.707107 -5523,0.707107,0.000000,0.000000,0.707107 -5524,0.707107,0.000000,0.000000,0.707107 -5525,0.707107,0.000000,0.000000,0.707107 -5526,0.707107,0.000000,0.000000,0.707107 -5527,0.707107,0.000000,0.000000,0.707107 -5528,0.707107,0.000000,0.000000,0.707107 -5529,0.707107,0.000000,0.000000,0.707107 -5530,0.707107,0.000000,0.000000,0.707107 -5531,0.707107,0.000000,0.000000,0.707107 -5532,0.707107,0.000000,0.000000,0.707107 -5533,0.707107,0.000000,0.000000,0.707107 -5534,0.707107,0.000000,0.000000,0.707107 -5535,0.707107,0.000000,0.000000,0.707107 -5536,0.707107,0.000000,0.000000,0.707107 -5537,0.707107,0.000000,0.000000,0.707107 -5538,0.707107,0.000000,0.000000,0.707107 -5539,0.707107,0.000000,0.000000,0.707107 -5540,0.707107,0.000000,0.000000,0.707107 -5541,0.707107,0.000000,0.000000,0.707107 -5542,0.707107,0.000000,0.000000,0.707107 -5543,0.707107,0.000000,0.000000,0.707107 -5544,0.707107,0.000000,0.000000,0.707107 -5545,0.707107,0.000000,0.000000,0.707107 -5546,0.707107,0.000000,0.000000,0.707107 -5547,0.707107,0.000000,0.000000,0.707107 -5548,0.707107,0.000000,0.000000,0.707107 -5549,0.707107,0.000000,0.000000,0.707107 -5550,0.707107,0.000000,0.000000,0.707107 -5551,0.707107,0.000000,0.000000,0.707107 -5552,0.707107,0.000000,0.000000,0.707107 -5553,0.707107,0.000000,0.000000,0.707107 -5554,0.707107,0.000000,0.000000,0.707107 -5555,0.707107,0.000000,0.000000,0.707107 -5556,0.707107,0.000000,0.000000,0.707107 -5557,0.707107,0.000000,0.000000,0.707107 -5558,0.707107,0.000000,0.000000,0.707107 -5559,0.707107,0.000000,0.000000,0.707107 -5560,0.707107,0.000000,0.000000,0.707107 -5561,0.707107,0.000000,0.000000,0.707107 -5562,0.707107,0.000000,0.000000,0.707107 -5563,0.707107,0.000000,0.000000,0.707107 -5564,0.707107,0.000000,0.000000,0.707107 -5565,0.707107,0.000000,0.000000,0.707107 -5566,0.707107,0.000000,0.000000,0.707107 -5567,0.707107,0.000000,0.000000,0.707107 -5568,0.707107,0.000000,0.000000,0.707107 -5569,0.707107,0.000000,0.000000,0.707107 -5570,0.707107,0.000000,0.000000,0.707107 -5571,0.707107,0.000000,0.000000,0.707107 -5572,0.707107,0.000000,0.000000,0.707107 -5573,0.707107,0.000000,0.000000,0.707107 -5574,0.707107,0.000000,0.000000,0.707107 -5575,0.707107,0.000000,0.000000,0.707107 -5576,0.707107,0.000000,0.000000,0.707107 -5577,0.707107,0.000000,0.000000,0.707107 -5578,0.707107,0.000000,0.000000,0.707107 -5579,0.707107,0.000000,0.000000,0.707107 -5580,0.707107,0.000000,0.000000,0.707107 -5581,0.707107,0.000000,0.000000,0.707107 -5582,0.707107,0.000000,0.000000,0.707107 -5583,0.707107,0.000000,0.000000,0.707107 -5584,0.707107,0.000000,0.000000,0.707107 -5585,0.707107,0.000000,0.000000,0.707107 -5586,0.707107,0.000000,0.000000,0.707107 -5587,0.707107,0.000000,0.000000,0.707107 -5588,0.707107,0.000000,0.000000,0.707107 -5589,0.707107,0.000000,0.000000,0.707107 -5590,0.707107,0.000000,0.000000,0.707107 -5591,0.707107,0.000000,0.000000,0.707107 -5592,0.707107,0.000000,0.000000,0.707107 -5593,0.707107,0.000000,0.000000,0.707107 -5594,0.707107,0.000000,0.000000,0.707107 -5595,0.707107,0.000000,0.000000,0.707107 -5596,0.707107,0.000000,0.000000,0.707107 -5597,0.707107,0.000000,0.000000,0.707107 -5598,0.707107,0.000000,0.000000,0.707107 -5599,0.707107,0.000000,0.000000,0.707107 -5600,0.707107,0.000000,0.000000,0.707107 -5601,0.707107,0.000000,0.000000,0.707107 -5602,0.707107,0.000000,0.000000,0.707107 -5603,0.707107,0.000000,0.000000,0.707107 -5604,0.707107,0.000000,0.000000,0.707107 -5605,0.707107,0.000000,0.000000,0.707107 -5606,0.707107,0.000000,0.000000,0.707107 -5607,0.707107,0.000000,0.000000,0.707107 -5608,0.707107,0.000000,0.000000,0.707107 -5609,0.707107,0.000000,0.000000,0.707107 -5610,0.707107,0.000000,0.000000,0.707107 -5611,0.707107,0.000000,0.000000,0.707107 -5612,0.707107,0.000000,0.000000,0.707107 -5613,0.707107,0.000000,0.000000,0.707107 -5614,0.707107,0.000000,0.000000,0.707107 -5615,0.707107,0.000000,0.000000,0.707107 -5616,0.707107,0.000000,0.000000,0.707107 -5617,0.707107,0.000000,0.000000,0.707107 -5618,0.707107,0.000000,0.000000,0.707107 -5619,0.707107,0.000000,0.000000,0.707107 -5620,0.707107,0.000000,0.000000,0.707107 -5621,0.707107,0.000000,0.000000,0.707107 -5622,0.707107,0.000000,0.000000,0.707107 -5623,0.707107,0.000000,0.000000,0.707107 -5624,0.707107,0.000000,0.000000,0.707107 -5625,0.707107,0.000000,0.000000,0.707107 -5626,0.707107,0.000000,0.000000,0.707107 -5627,0.707107,0.000000,0.000000,0.707107 -5628,0.707107,0.000000,0.000000,0.707107 -5629,0.707107,0.000000,0.000000,0.707107 -5630,0.707107,0.000000,0.000000,0.707107 -5631,0.707107,0.000000,0.000000,0.707107 -5632,0.707107,0.000000,0.000000,0.707107 -5633,0.707107,0.000000,0.000000,0.707107 -5634,0.707107,0.000000,0.000000,0.707107 -5635,0.707107,0.000000,0.000000,0.707107 -5636,0.707107,0.000000,0.000000,0.707107 -5637,0.707107,0.000000,0.000000,0.707107 -5638,0.707107,0.000000,0.000000,0.707107 -5639,0.707107,0.000000,0.000000,0.707107 -5640,0.707107,0.000000,0.000000,0.707107 -5641,0.707107,0.000000,0.000000,0.707107 -5642,0.707107,0.000000,0.000000,0.707107 -5643,0.707107,0.000000,0.000000,0.707107 -5644,0.707107,0.000000,0.000000,0.707107 -5645,0.707107,0.000000,0.000000,0.707107 -5646,0.707107,0.000000,0.000000,0.707107 -5647,0.707107,0.000000,0.000000,0.707107 -5648,0.707107,0.000000,0.000000,0.707107 -5649,0.707107,0.000000,0.000000,0.707107 -5650,0.707107,0.000000,0.000000,0.707107 -5651,0.707107,0.000000,0.000000,0.707107 -5652,0.707107,0.000000,0.000000,0.707107 -5653,0.707107,0.000000,0.000000,0.707107 -5654,0.707107,0.000000,0.000000,0.707107 -5655,0.707107,0.000000,0.000000,0.707107 -5656,0.707107,0.000000,0.000000,0.707107 -5657,0.707107,0.000000,0.000000,0.707107 -5658,0.707107,0.000000,0.000000,0.707107 -5659,0.707107,0.000000,0.000000,0.707107 -5660,0.707107,0.000000,0.000000,0.707107 -5661,0.707107,0.000000,0.000000,0.707107 -5662,0.707107,0.000000,0.000000,0.707107 -5663,0.707107,0.000000,0.000000,0.707107 -5664,0.707107,0.000000,0.000000,0.707107 -5665,0.707107,0.000000,0.000000,0.707107 -5666,0.707107,0.000000,0.000000,0.707107 -5667,0.707107,0.000000,0.000000,0.707107 -5668,0.707107,0.000000,0.000000,0.707107 -5669,0.707107,0.000000,0.000000,0.707107 -5670,0.707107,0.000000,0.000000,0.707107 -5671,0.707107,0.000000,0.000000,0.707107 -5672,0.707107,0.000000,0.000000,0.707107 -5673,0.707107,0.000000,0.000000,0.707107 -5674,0.707107,0.000000,0.000000,0.707107 -5675,0.707107,0.000000,0.000000,0.707107 -5676,0.707107,0.000000,0.000000,0.707107 -5677,0.707107,0.000000,0.000000,0.707107 -5678,0.707107,0.000000,0.000000,0.707107 -5679,0.707107,0.000000,0.000000,0.707107 -5680,0.707107,0.000000,0.000000,0.707107 -5681,0.707107,0.000000,0.000000,0.707107 -5682,0.707107,0.000000,0.000000,0.707107 -5683,0.707107,0.000000,0.000000,0.707107 -5684,0.707107,0.000000,0.000000,0.707107 -5685,0.707107,0.000000,0.000000,0.707107 -5686,0.707107,0.000000,0.000000,0.707107 -5687,0.707107,0.000000,0.000000,0.707107 -5688,0.707107,0.000000,0.000000,0.707107 -5689,0.707107,0.000000,0.000000,0.707107 -5690,0.707107,0.000000,0.000000,0.707107 -5691,0.707107,0.000000,0.000000,0.707107 -5692,0.707107,0.000000,0.000000,0.707107 -5693,0.707107,0.000000,0.000000,0.707107 -5694,0.707107,0.000000,0.000000,0.707107 -5695,0.707107,0.000000,0.000000,0.707107 -5696,0.707107,0.000000,0.000000,0.707107 -5697,0.707107,0.000000,0.000000,0.707107 -5698,0.707107,0.000000,0.000000,0.707107 -5699,0.707107,0.000000,0.000000,0.707107 -5700,0.707107,0.000000,0.000000,0.707107 -5701,0.707107,0.000000,0.000000,0.707107 -5702,0.707107,0.000000,0.000000,0.707107 -5703,0.707107,0.000000,0.000000,0.707107 -5704,0.707107,0.000000,0.000000,0.707107 -5705,0.707107,0.000000,0.000000,0.707107 -5706,0.707107,0.000000,0.000000,0.707107 -5707,0.707107,0.000000,0.000000,0.707107 -5708,0.707107,0.000000,0.000000,0.707107 -5709,0.707107,0.000000,0.000000,0.707107 -5710,0.707107,0.000000,0.000000,0.707107 -5711,0.707107,0.000000,0.000000,0.707107 -5712,0.707107,0.000000,0.000000,0.707107 -5713,0.707107,0.000000,0.000000,0.707107 -5714,0.707107,0.000000,0.000000,0.707107 -5715,0.707107,0.000000,0.000000,0.707107 -5716,0.707107,0.000000,0.000000,0.707107 -5717,0.707107,0.000000,0.000000,0.707107 -5718,0.707107,0.000000,0.000000,0.707107 -5719,0.707107,0.000000,0.000000,0.707107 -5720,0.707107,0.000000,0.000000,0.707107 -5721,0.707107,0.000000,0.000000,0.707107 -5722,0.707107,0.000000,0.000000,0.707107 -5723,0.707107,0.000000,0.000000,0.707107 -5724,0.707107,0.000000,0.000000,0.707107 -5725,0.707107,0.000000,0.000000,0.707107 -5726,0.707107,0.000000,0.000000,0.707107 -5727,0.707107,0.000000,0.000000,0.707107 -5728,0.707107,0.000000,0.000000,0.707107 -5729,0.707107,0.000000,0.000000,0.707107 -5730,0.707107,0.000000,0.000000,0.707107 -5731,0.707107,0.000000,0.000000,0.707107 -5732,0.707107,0.000000,0.000000,0.707107 -5733,0.707107,0.000000,0.000000,0.707107 -5734,0.707107,0.000000,0.000000,0.707107 -5735,0.707107,0.000000,0.000000,0.707107 -5736,0.707107,0.000000,0.000000,0.707107 -5737,0.707107,0.000000,0.000000,0.707107 -5738,0.707107,0.000000,0.000000,0.707107 -5739,0.707107,0.000000,0.000000,0.707107 -5740,0.707107,0.000000,0.000000,0.707107 -5741,0.707107,0.000000,0.000000,0.707107 -5742,0.707107,0.000000,0.000000,0.707107 -5743,0.707107,0.000000,0.000000,0.707107 -5744,0.707107,0.000000,0.000000,0.707107 -5745,0.707107,0.000000,0.000000,0.707107 -5746,0.707107,0.000000,0.000000,0.707107 -5747,0.707107,0.000000,0.000000,0.707107 -5748,0.707107,0.000000,0.000000,0.707107 -5749,0.707107,0.000000,0.000000,0.707107 -5750,0.707107,0.000000,0.000000,0.707107 -5751,0.707107,0.000000,0.000000,0.707107 -5752,0.707107,0.000000,0.000000,0.707107 -5753,0.707107,0.000000,0.000000,0.707107 -5754,0.707107,0.000000,0.000000,0.707107 -5755,0.707107,0.000000,0.000000,0.707107 -5756,0.707107,0.000000,0.000000,0.707107 -5757,0.707107,0.000000,0.000000,0.707107 -5758,0.707107,0.000000,0.000000,0.707107 -5759,0.707107,0.000000,0.000000,0.707107 -5760,0.707107,0.000000,0.000000,0.707107 -5761,0.707107,0.000000,0.000000,0.707107 -5762,0.707107,0.000000,0.000000,0.707107 -5763,0.707107,0.000000,0.000000,0.707107 -5764,0.707107,0.000000,0.000000,0.707107 -5765,0.707107,0.000000,0.000000,0.707107 -5766,0.707107,0.000000,0.000000,0.707107 -5767,0.707107,0.000000,0.000000,0.707107 -5768,0.707107,0.000000,0.000000,0.707107 -5769,0.707107,0.000000,0.000000,0.707107 -5770,0.707107,0.000000,0.000000,0.707107 -5771,0.707107,0.000000,0.000000,0.707107 -5772,0.707107,0.000000,0.000000,0.707107 -5773,0.707107,0.000000,0.000000,0.707107 -5774,0.707107,0.000000,0.000000,0.707107 -5775,0.707107,0.000000,0.000000,0.707107 -5776,0.707107,0.000000,0.000000,0.707107 -5777,0.707107,0.000000,0.000000,0.707107 -5778,0.707107,0.000000,0.000000,0.707107 -5779,0.707107,0.000000,0.000000,0.707107 -5780,0.707107,0.000000,0.000000,0.707107 -5781,0.707107,0.000000,0.000000,0.707107 -5782,0.707107,0.000000,0.000000,0.707107 -5783,0.707107,0.000000,0.000000,0.707107 -5784,0.707107,0.000000,0.000000,0.707107 -5785,0.707107,0.000000,0.000000,0.707107 -5786,0.707107,0.000000,0.000000,0.707107 -5787,0.707107,0.000000,0.000000,0.707107 -5788,0.707107,0.000000,0.000000,0.707107 -5789,0.707107,0.000000,0.000000,0.707107 -5790,0.707107,0.000000,0.000000,0.707107 -5791,0.707107,0.000000,0.000000,0.707107 -5792,0.707107,0.000000,0.000000,0.707107 -5793,0.707107,0.000000,0.000000,0.707107 -5794,0.707107,0.000000,0.000000,0.707107 -5795,0.707107,0.000000,0.000000,0.707107 -5796,0.707107,0.000000,0.000000,0.707107 -5797,0.707107,0.000000,0.000000,0.707107 -5798,0.707107,0.000000,0.000000,0.707107 -5799,0.707107,0.000000,0.000000,0.707107 -5800,0.707107,0.000000,0.000000,0.707107 -5801,0.707107,0.000000,0.000000,0.707107 -5802,0.707107,0.000000,0.000000,0.707107 -5803,0.707107,0.000000,0.000000,0.707107 -5804,0.707107,0.000000,0.000000,0.707107 -5805,0.707107,0.000000,0.000000,0.707107 -5806,0.707107,0.000000,0.000000,0.707107 -5807,0.707107,0.000000,0.000000,0.707107 -5808,0.707107,0.000000,0.000000,0.707107 -5809,0.707107,0.000000,0.000000,0.707107 -5810,0.707107,0.000000,0.000000,0.707107 -5811,0.707107,0.000000,0.000000,0.707107 -5812,0.707107,0.000000,0.000000,0.707107 -5813,0.707107,0.000000,0.000000,0.707107 -5814,0.707107,0.000000,0.000000,0.707107 -5815,0.707107,0.000000,0.000000,0.707107 -5816,0.707107,0.000000,0.000000,0.707107 -5817,0.707107,0.000000,0.000000,0.707107 -5818,0.707107,0.000000,0.000000,0.707107 -5819,0.707107,0.000000,0.000000,0.707107 -5820,0.707107,0.000000,0.000000,0.707107 -5821,0.707107,0.000000,0.000000,0.707107 -5822,0.707107,0.000000,0.000000,0.707107 -5823,0.707107,0.000000,0.000000,0.707107 -5824,0.707107,0.000000,0.000000,0.707107 -5825,0.707107,0.000000,0.000000,0.707107 -5826,0.707107,0.000000,0.000000,0.707107 -5827,0.707107,0.000000,0.000000,0.707107 -5828,0.707107,0.000000,0.000000,0.707107 -5829,0.707107,0.000000,0.000000,0.707107 -5830,0.707107,0.000000,0.000000,0.707107 -5831,0.707107,0.000000,0.000000,0.707107 -5832,0.707107,0.000000,0.000000,0.707107 -5833,0.707107,0.000000,0.000000,0.707107 -5834,0.707107,0.000000,0.000000,0.707107 -5835,0.707107,0.000000,0.000000,0.707107 -5836,0.707107,0.000000,0.000000,0.707107 -5837,0.707107,0.000000,0.000000,0.707107 -5838,0.707107,0.000000,0.000000,0.707107 -5839,0.707107,0.000000,0.000000,0.707107 -5840,0.707107,0.000000,0.000000,0.707107 -5841,0.707107,0.000000,0.000000,0.707107 -5842,0.707107,0.000000,0.000000,0.707107 -5843,0.707107,0.000000,0.000000,0.707107 -5844,0.707107,0.000000,0.000000,0.707107 -5845,0.707107,0.000000,0.000000,0.707107 -5846,0.707107,0.000000,0.000000,0.707107 -5847,0.707107,0.000000,0.000000,0.707107 -5848,0.707107,0.000000,0.000000,0.707107 -5849,0.707107,0.000000,0.000000,0.707107 -5850,0.707107,0.000000,0.000000,0.707107 -5851,0.707107,0.000000,0.000000,0.707107 -5852,0.707107,0.000000,0.000000,0.707107 -5853,0.707107,0.000000,0.000000,0.707107 -5854,0.707107,0.000000,0.000000,0.707107 -5855,0.707107,0.000000,0.000000,0.707107 -5856,0.707107,0.000000,0.000000,0.707107 -5857,0.707107,0.000000,0.000000,0.707107 -5858,0.707107,0.000000,0.000000,0.707107 -5859,0.707107,0.000000,0.000000,0.707107 -5860,0.707107,0.000000,0.000000,0.707107 -5861,0.707107,0.000000,0.000000,0.707107 -5862,0.707107,0.000000,0.000000,0.707107 -5863,0.707107,0.000000,0.000000,0.707107 -5864,0.707107,0.000000,0.000000,0.707107 -5865,0.707107,0.000000,0.000000,0.707107 -5866,0.707107,0.000000,0.000000,0.707107 -5867,0.707107,0.000000,0.000000,0.707107 -5868,0.707107,0.000000,0.000000,0.707107 -5869,0.707107,0.000000,0.000000,0.707107 -5870,0.707107,0.000000,0.000000,0.707107 -5871,0.707107,0.000000,0.000000,0.707107 -5872,0.707107,0.000000,0.000000,0.707107 -5873,0.707107,0.000000,0.000000,0.707107 -5874,0.707107,0.000000,0.000000,0.707107 -5875,0.707107,0.000000,0.000000,0.707107 -5876,0.707107,0.000000,0.000000,0.707107 -5877,0.707107,0.000000,0.000000,0.707107 -5878,0.707107,0.000000,0.000000,0.707107 -5879,0.707107,0.000000,0.000000,0.707107 -5880,0.707107,0.000000,0.000000,0.707107 -5881,0.707107,0.000000,0.000000,0.707107 -5882,0.707107,0.000000,0.000000,0.707107 -5883,0.707107,0.000000,0.000000,0.707107 -5884,0.707107,0.000000,0.000000,0.707107 -5885,0.707107,0.000000,0.000000,0.707107 -5886,0.707107,0.000000,0.000000,0.707107 -5887,0.707107,0.000000,0.000000,0.707107 -5888,0.707107,0.000000,0.000000,0.707107 -5889,0.707107,0.000000,0.000000,0.707107 -5890,0.707107,0.000000,0.000000,0.707107 -5891,0.707107,0.000000,0.000000,0.707107 -5892,0.707107,0.000000,0.000000,0.707107 -5893,0.707107,0.000000,0.000000,0.707107 -5894,0.707107,0.000000,0.000000,0.707107 -5895,0.707107,0.000000,0.000000,0.707107 -5896,0.707107,0.000000,0.000000,0.707107 -5897,0.707107,0.000000,0.000000,0.707107 -5898,0.707107,0.000000,0.000000,0.707107 -5899,0.707107,0.000000,0.000000,0.707107 -5900,0.707107,0.000000,0.000000,0.707107 -5901,0.707107,0.000000,0.000000,0.707107 -5902,0.707107,0.000000,0.000000,0.707107 -5903,0.707107,0.000000,0.000000,0.707107 -5904,0.707107,0.000000,0.000000,0.707107 -5905,0.707107,0.000000,0.000000,0.707107 -5906,0.707107,0.000000,0.000000,0.707107 -5907,0.707107,0.000000,0.000000,0.707107 -5908,0.707107,0.000000,0.000000,0.707107 -5909,0.707107,0.000000,0.000000,0.707107 -5910,0.707107,0.000000,0.000000,0.707107 -5911,0.707107,0.000000,0.000000,0.707107 -5912,0.707107,0.000000,0.000000,0.707107 -5913,0.707107,0.000000,0.000000,0.707107 -5914,0.707107,0.000000,0.000000,0.707107 -5915,0.707107,0.000000,0.000000,0.707107 -5916,0.707107,0.000000,0.000000,0.707107 -5917,0.707107,0.000000,0.000000,0.707107 -5918,0.707107,0.000000,0.000000,0.707107 -5919,0.707107,0.000000,0.000000,0.707107 -5920,0.707107,0.000000,0.000000,0.707107 -5921,0.707107,0.000000,0.000000,0.707107 -5922,0.707107,0.000000,0.000000,0.707107 -5923,0.707107,0.000000,0.000000,0.707107 -5924,0.707107,0.000000,0.000000,0.707107 -5925,0.707107,0.000000,0.000000,0.707107 -5926,0.707107,0.000000,0.000000,0.707107 -5927,0.707107,0.000000,0.000000,0.707107 -5928,0.707107,0.000000,0.000000,0.707107 -5929,0.707107,0.000000,0.000000,0.707107 -5930,0.707107,0.000000,0.000000,0.707107 -5931,0.707107,0.000000,0.000000,0.707107 -5932,0.707107,0.000000,0.000000,0.707107 -5933,0.707107,0.000000,0.000000,0.707107 -5934,0.707107,0.000000,0.000000,0.707107 -5935,0.707107,0.000000,0.000000,0.707107 -5936,0.707107,0.000000,0.000000,0.707107 -5937,0.707107,0.000000,0.000000,0.707107 -5938,0.707107,0.000000,0.000000,0.707107 -5939,0.707107,0.000000,0.000000,0.707107 -5940,0.707107,0.000000,0.000000,0.707107 -5941,0.707107,0.000000,0.000000,0.707107 -5942,0.707107,0.000000,0.000000,0.707107 -5943,0.707107,0.000000,0.000000,0.707107 -5944,0.707107,0.000000,0.000000,0.707107 -5945,0.707107,0.000000,0.000000,0.707107 -5946,0.707107,0.000000,0.000000,0.707107 -5947,0.707107,0.000000,0.000000,0.707107 -5948,0.707107,0.000000,0.000000,0.707107 -5949,0.707107,0.000000,0.000000,0.707107 -5950,0.707107,0.000000,0.000000,0.707107 -5951,0.707107,0.000000,0.000000,0.707107 -5952,0.707107,0.000000,0.000000,0.707107 -5953,0.707107,0.000000,0.000000,0.707107 -5954,0.707107,0.000000,0.000000,0.707107 -5955,0.707107,0.000000,0.000000,0.707107 -5956,0.707107,0.000000,0.000000,0.707107 -5957,0.707107,0.000000,0.000000,0.707107 -5958,0.707107,0.000000,0.000000,0.707107 -5959,0.707107,0.000000,0.000000,0.707107 -5960,0.707107,0.000000,0.000000,0.707107 -5961,0.707107,0.000000,0.000000,0.707107 -5962,0.707107,0.000000,0.000000,0.707107 -5963,0.707107,0.000000,0.000000,0.707107 -5964,0.707107,0.000000,0.000000,0.707107 -5965,0.707107,0.000000,0.000000,0.707107 -5966,0.707107,0.000000,0.000000,0.707107 -5967,0.707107,0.000000,0.000000,0.707107 -5968,0.707107,0.000000,0.000000,0.707107 -5969,0.707107,0.000000,0.000000,0.707107 -5970,0.707107,0.000000,0.000000,0.707107 -5971,0.707107,0.000000,0.000000,0.707107 -5972,0.707107,0.000000,0.000000,0.707107 -5973,0.707107,0.000000,0.000000,0.707107 -5974,0.707107,0.000000,0.000000,0.707107 -5975,0.707107,0.000000,0.000000,0.707107 -5976,0.707107,0.000000,0.000000,0.707107 -5977,0.707107,0.000000,0.000000,0.707107 -5978,0.707107,0.000000,0.000000,0.707107 -5979,0.707107,0.000000,0.000000,0.707107 -5980,0.707107,0.000000,0.000000,0.707107 -5981,0.707107,0.000000,0.000000,0.707107 -5982,0.707107,0.000000,0.000000,0.707107 -5983,0.707107,0.000000,0.000000,0.707107 -5984,0.707107,0.000000,0.000000,0.707107 -5985,0.707107,0.000000,0.000000,0.707107 -5986,0.707107,0.000000,0.000000,0.707107 -5987,0.707107,0.000000,0.000000,0.707107 -5988,0.707107,0.000000,0.000000,0.707107 -5989,0.707107,0.000000,0.000000,0.707107 -5990,0.707107,0.000000,0.000000,0.707107 -5991,0.707107,0.000000,0.000000,0.707107 -5992,0.707107,0.000000,0.000000,0.707107 -5993,0.707107,0.000000,0.000000,0.707107 -5994,0.707107,0.000000,0.000000,0.707107 -5995,0.707107,0.000000,0.000000,0.707107 -5996,0.707107,0.000000,0.000000,0.707107 -5997,0.707107,0.000000,0.000000,0.707107 -5998,0.707107,0.000000,0.000000,0.707107 -5999,0.707107,0.000000,0.000000,0.707107 -6000,0.707107,0.000000,0.000000,0.707107 -6001,0.707107,0.000000,0.000000,0.707107 -6002,0.707107,0.000000,0.000000,0.707107 -6003,0.707107,0.000000,0.000000,0.707107 -6004,0.707107,0.000000,0.000000,0.707107 -6005,0.707107,0.000000,0.000000,0.707107 -6006,0.707107,0.000000,0.000000,0.707107 -6007,0.707107,0.000000,0.000000,0.707107 -6008,0.707107,0.000000,0.000000,0.707107 -6009,0.707107,0.000000,0.000000,0.707107 -6010,0.707107,0.000000,0.000000,0.707107 -6011,0.707107,0.000000,0.000000,0.707107 -6012,0.707107,0.000000,0.000000,0.707107 -6013,0.707107,0.000000,0.000000,0.707107 -6014,0.707107,0.000000,0.000000,0.707107 -6015,0.707107,0.000000,0.000000,0.707107 -6016,0.707107,0.000000,0.000000,0.707107 -6017,0.707107,0.000000,0.000000,0.707107 -6018,0.707107,0.000000,0.000000,0.707107 -6019,0.707107,0.000000,0.000000,0.707107 -6020,0.707107,0.000000,0.000000,0.707107 -6021,0.707107,0.000000,0.000000,0.707107 -6022,0.707107,0.000000,0.000000,0.707107 -6023,0.707107,0.000000,0.000000,0.707107 -6024,0.707107,0.000000,0.000000,0.707107 -6025,0.707107,0.000000,0.000000,0.707107 -6026,0.707107,0.000000,0.000000,0.707107 -6027,0.707107,0.000000,0.000000,0.707107 -6028,0.707107,0.000000,0.000000,0.707107 -6029,0.707107,0.000000,0.000000,0.707107 -6030,0.707107,0.000000,0.000000,0.707107 -6031,0.707107,0.000000,0.000000,0.707107 -6032,0.707107,0.000000,0.000000,0.707107 -6033,0.707107,0.000000,0.000000,0.707107 -6034,0.707107,0.000000,0.000000,0.707107 -6035,0.707107,0.000000,0.000000,0.707107 -6036,0.707107,0.000000,0.000000,0.707107 -6037,0.707107,0.000000,0.000000,0.707107 -6038,0.707107,0.000000,0.000000,0.707107 -6039,0.707107,0.000000,0.000000,0.707107 -6040,0.707107,0.000000,0.000000,0.707107 -6041,0.707107,0.000000,0.000000,0.707107 -6042,0.707107,0.000000,0.000000,0.707107 -6043,0.707107,0.000000,0.000000,0.707107 -6044,0.707107,0.000000,0.000000,0.707107 -6045,0.707107,0.000000,0.000000,0.707107 -6046,0.707107,0.000000,0.000000,0.707107 -6047,0.707107,0.000000,0.000000,0.707107 -6048,0.707107,0.000000,0.000000,0.707107 -6049,0.707107,0.000000,0.000000,0.707107 -6050,0.707107,0.000000,0.000000,0.707107 -6051,0.707107,0.000000,0.000000,0.707107 -6052,0.707107,0.000000,0.000000,0.707107 -6053,0.707107,0.000000,0.000000,0.707107 -6054,0.707107,0.000000,0.000000,0.707107 -6055,0.707107,0.000000,0.000000,0.707107 -6056,0.707107,0.000000,0.000000,0.707107 -6057,0.707107,0.000000,0.000000,0.707107 -6058,0.707107,0.000000,0.000000,0.707107 -6059,0.707107,0.000000,0.000000,0.707107 -6060,0.707107,0.000000,0.000000,0.707107 -6061,0.707107,0.000000,0.000000,0.707107 -6062,0.707107,0.000000,0.000000,0.707107 -6063,0.707107,0.000000,0.000000,0.707107 -6064,0.707107,0.000000,0.000000,0.707107 -6065,0.707107,0.000000,0.000000,0.707107 -6066,0.707107,0.000000,0.000000,0.707107 -6067,0.707107,0.000000,0.000000,0.707107 -6068,0.707107,0.000000,0.000000,0.707107 -6069,0.707107,0.000000,0.000000,0.707107 -6070,0.707107,0.000000,0.000000,0.707107 -6071,0.707107,0.000000,0.000000,0.707107 -6072,0.707107,0.000000,0.000000,0.707107 -6073,0.707107,0.000000,0.000000,0.707107 -6074,0.707107,0.000000,0.000000,0.707107 -6075,0.707107,0.000000,0.000000,0.707107 -6076,0.707107,0.000000,0.000000,0.707107 -6077,0.707107,0.000000,0.000000,0.707107 -6078,0.707107,0.000000,0.000000,0.707107 -6079,0.707107,0.000000,0.000000,0.707107 -6080,0.707107,0.000000,0.000000,0.707107 -6081,0.707107,0.000000,0.000000,0.707107 -6082,0.707107,0.000000,0.000000,0.707107 -6083,0.707107,0.000000,0.000000,0.707107 -6084,0.707107,0.000000,0.000000,0.707107 -6085,0.707107,0.000000,0.000000,0.707107 -6086,0.707107,0.000000,0.000000,0.707107 -6087,0.707107,0.000000,0.000000,0.707107 -6088,0.707107,0.000000,0.000000,0.707107 -6089,0.707107,0.000000,0.000000,0.707107 -6090,0.707107,0.000000,0.000000,0.707107 -6091,0.707107,0.000000,0.000000,0.707107 -6092,0.707107,0.000000,0.000000,0.707107 -6093,0.707107,0.000000,0.000000,0.707107 -6094,0.707107,0.000000,0.000000,0.707107 -6095,0.707107,0.000000,0.000000,0.707107 -6096,0.707107,0.000000,0.000000,0.707107 -6097,0.707107,0.000000,0.000000,0.707107 -6098,0.707107,0.000000,0.000000,0.707107 -6099,0.707107,0.000000,0.000000,0.707107 -6100,0.707107,0.000000,0.000000,0.707107 -6101,0.707107,0.000000,0.000000,0.707107 -6102,0.707107,0.000000,0.000000,0.707107 -6103,0.707107,0.000000,0.000000,0.707107 -6104,0.707107,0.000000,0.000000,0.707107 -6105,0.707107,0.000000,0.000000,0.707107 -6106,0.707107,0.000000,0.000000,0.707107 -6107,0.707107,0.000000,0.000000,0.707107 -6108,0.707107,0.000000,0.000000,0.707107 -6109,0.707107,0.000000,0.000000,0.707107 -6110,0.707107,0.000000,0.000000,0.707107 -6111,0.707107,0.000000,0.000000,0.707107 -6112,0.707107,0.000000,0.000000,0.707107 -6113,0.707107,0.000000,0.000000,0.707107 -6114,0.707107,0.000000,0.000000,0.707107 -6115,0.707107,0.000000,0.000000,0.707107 -6116,0.707107,0.000000,0.000000,0.707107 -6117,0.707107,0.000000,0.000000,0.707107 -6118,0.707107,0.000000,0.000000,0.707107 -6119,0.707107,0.000000,0.000000,0.707107 -6120,0.707107,0.000000,0.000000,0.707107 -6121,0.707107,0.000000,0.000000,0.707107 -6122,0.707107,0.000000,0.000000,0.707107 -6123,0.707107,0.000000,0.000000,0.707107 -6124,0.707107,0.000000,0.000000,0.707107 -6125,0.707107,0.000000,0.000000,0.707107 -6126,0.707107,0.000000,0.000000,0.707107 -6127,0.707107,0.000000,0.000000,0.707107 -6128,0.707107,0.000000,0.000000,0.707107 -6129,0.707107,0.000000,0.000000,0.707107 -6130,0.707107,0.000000,0.000000,0.707107 -6131,0.707107,0.000000,0.000000,0.707107 -6132,0.707107,0.000000,0.000000,0.707107 -6133,0.707107,0.000000,0.000000,0.707107 -6134,0.707107,0.000000,0.000000,0.707107 -6135,0.707107,0.000000,0.000000,0.707107 -6136,0.707107,0.000000,0.000000,0.707107 -6137,0.707107,0.000000,0.000000,0.707107 -6138,0.707107,0.000000,0.000000,0.707107 -6139,0.707107,0.000000,0.000000,0.707107 -6140,0.707107,0.000000,0.000000,0.707107 -6141,0.707107,0.000000,0.000000,0.707107 -6142,0.707107,0.000000,0.000000,0.707107 -6143,0.707107,0.000000,0.000000,0.707107 -6144,0.707107,0.000000,0.000000,0.707107 -6145,0.707107,0.000000,0.000000,0.707107 -6146,0.707107,0.000000,0.000000,0.707107 -6147,0.707107,0.000000,0.000000,0.707107 -6148,0.707107,0.000000,0.000000,0.707107 -6149,0.707107,0.000000,0.000000,0.707107 -6150,0.707107,0.000000,0.000000,0.707107 -6151,0.707107,0.000000,0.000000,0.707107 -6152,0.707107,0.000000,0.000000,0.707107 -6153,0.707107,0.000000,0.000000,0.707107 -6154,0.707107,0.000000,0.000000,0.707107 -6155,0.707107,0.000000,0.000000,0.707107 -6156,0.707107,0.000000,0.000000,0.707107 -6157,0.707107,0.000000,0.000000,0.707107 -6158,0.707107,0.000000,0.000000,0.707107 -6159,0.707107,0.000000,0.000000,0.707107 -6160,0.707107,0.000000,0.000000,0.707107 -6161,0.707107,0.000000,0.000000,0.707107 -6162,0.707107,0.000000,0.000000,0.707107 -6163,0.707107,0.000000,0.000000,0.707107 -6164,0.707107,0.000000,0.000000,0.707107 -6165,0.707107,0.000000,0.000000,0.707107 -6166,0.707107,0.000000,0.000000,0.707107 -6167,0.707107,0.000000,0.000000,0.707107 -6168,0.707107,0.000000,0.000000,0.707107 -6169,0.707107,0.000000,0.000000,0.707107 -6170,0.707107,0.000000,0.000000,0.707107 -6171,0.707107,0.000000,0.000000,0.707107 -6172,0.707107,0.000000,0.000000,0.707107 -6173,0.707107,0.000000,0.000000,0.707107 -6174,0.707107,0.000000,0.000000,0.707107 -6175,0.707107,0.000000,0.000000,0.707107 -6176,0.707107,0.000000,0.000000,0.707107 -6177,0.707107,0.000000,0.000000,0.707107 -6178,0.707107,0.000000,0.000000,0.707107 -6179,0.707107,0.000000,0.000000,0.707107 -6180,0.707107,0.000000,0.000000,0.707107 -6181,0.707107,0.000000,0.000000,0.707107 -6182,0.707107,0.000000,0.000000,0.707107 -6183,0.707107,0.000000,0.000000,0.707107 -6184,0.707107,0.000000,0.000000,0.707107 -6185,0.707107,0.000000,0.000000,0.707107 -6186,0.707107,0.000000,0.000000,0.707107 -6187,0.707107,0.000000,0.000000,0.707107 -6188,0.707107,0.000000,0.000000,0.707107 -6189,0.707107,0.000000,0.000000,0.707107 -6190,0.707107,0.000000,0.000000,0.707107 -6191,0.707107,0.000000,0.000000,0.707107 -6192,0.707107,0.000000,0.000000,0.707107 -6193,0.707107,0.000000,0.000000,0.707107 -6194,0.707107,0.000000,0.000000,0.707107 -6195,0.707107,0.000000,0.000000,0.707107 -6196,0.707107,0.000000,0.000000,0.707107 -6197,0.707107,0.000000,0.000000,0.707107 -6198,0.707107,0.000000,0.000000,0.707107 -6199,0.707107,0.000000,0.000000,0.707107 -6200,0.707107,0.000000,0.000000,0.707107 -6201,0.707107,0.000000,0.000000,0.707107 -6202,0.707107,0.000000,0.000000,0.707107 -6203,0.707107,0.000000,0.000000,0.707107 -6204,0.707107,0.000000,0.000000,0.707107 -6205,0.707107,0.000000,0.000000,0.707107 -6206,0.707107,0.000000,0.000000,0.707107 -6207,0.707107,0.000000,0.000000,0.707107 -6208,0.707107,0.000000,0.000000,0.707107 -6209,0.707107,0.000000,0.000000,0.707107 -6210,0.707107,0.000000,0.000000,0.707107 -6211,0.707107,0.000000,0.000000,0.707107 -6212,0.707107,0.000000,0.000000,0.707107 -6213,0.707107,0.000000,0.000000,0.707107 -6214,0.707107,0.000000,0.000000,0.707107 -6215,0.707107,0.000000,0.000000,0.707107 -6216,0.707107,0.000000,0.000000,0.707107 -6217,0.707107,0.000000,0.000000,0.707107 -6218,0.707107,0.000000,0.000000,0.707107 -6219,0.707107,0.000000,0.000000,0.707107 -6220,0.707107,0.000000,0.000000,0.707107 -6221,0.707107,0.000000,0.000000,0.707107 -6222,0.707107,0.000000,0.000000,0.707107 -6223,0.707107,0.000000,0.000000,0.707107 -6224,0.707107,0.000000,0.000000,0.707107 -6225,0.707107,0.000000,0.000000,0.707107 -6226,0.707107,0.000000,0.000000,0.707107 -6227,0.707107,0.000000,0.000000,0.707107 -6228,0.707107,0.000000,0.000000,0.707107 -6229,0.707107,0.000000,0.000000,0.707107 -6230,0.707107,0.000000,0.000000,0.707107 -6231,0.707107,0.000000,0.000000,0.707107 -6232,0.707107,0.000000,0.000000,0.707107 -6233,0.707107,0.000000,0.000000,0.707107 -6234,0.707107,0.000000,0.000000,0.707107 -6235,0.707107,0.000000,0.000000,0.707107 -6236,0.707107,0.000000,0.000000,0.707107 -6237,0.707107,0.000000,0.000000,0.707107 -6238,0.707107,0.000000,0.000000,0.707107 -6239,0.707107,0.000000,0.000000,0.707107 -6240,0.707107,0.000000,0.000000,0.707107 -6241,0.707107,0.000000,0.000000,0.707107 -6242,0.707107,0.000000,0.000000,0.707107 -6243,0.707107,0.000000,0.000000,0.707107 -6244,0.707107,0.000000,0.000000,0.707107 -6245,0.707107,0.000000,0.000000,0.707107 -6246,0.707107,0.000000,0.000000,0.707107 -6247,0.707107,0.000000,0.000000,0.707107 -6248,0.707107,0.000000,0.000000,0.707107 -6249,0.707107,0.000000,0.000000,0.707107 -6250,0.707107,0.000000,0.000000,0.707107 -6251,0.707107,0.000000,0.000000,0.707107 -6252,0.707107,0.000000,0.000000,0.707107 -6253,0.707107,0.000000,0.000000,0.707107 -6254,0.707107,0.000000,0.000000,0.707107 -6255,0.707107,0.000000,0.000000,0.707107 -6256,0.707107,0.000000,0.000000,0.707107 -6257,0.707107,0.000000,0.000000,0.707107 -6258,0.707107,0.000000,0.000000,0.707107 -6259,0.707107,0.000000,0.000000,0.707107 -6260,0.707107,0.000000,0.000000,0.707107 -6261,0.707107,0.000000,0.000000,0.707107 -6262,0.707107,0.000000,0.000000,0.707107 -6263,0.707107,0.000000,0.000000,0.707107 -6264,0.707107,0.000000,0.000000,0.707107 -6265,0.707107,0.000000,0.000000,0.707107 -6266,0.707107,0.000000,0.000000,0.707107 -6267,0.707107,0.000000,0.000000,0.707107 -6268,0.707107,0.000000,0.000000,0.707107 -6269,0.707107,0.000000,0.000000,0.707107 -6270,0.707107,0.000000,0.000000,0.707107 -6271,0.707107,0.000000,0.000000,0.707107 -6272,0.707107,0.000000,0.000000,0.707107 -6273,0.707107,0.000000,0.000000,0.707107 -6274,0.707107,0.000000,0.000000,0.707107 -6275,0.707107,0.000000,0.000000,0.707107 -6276,0.707107,0.000000,0.000000,0.707107 -6277,0.707107,0.000000,0.000000,0.707107 -6278,0.707107,0.000000,0.000000,0.707107 -6279,0.707107,0.000000,0.000000,0.707107 -6280,0.707107,0.000000,0.000000,0.707107 -6281,0.707107,0.000000,0.000000,0.707107 -6282,0.707107,0.000000,0.000000,0.707107 -6283,0.707107,0.000000,0.000000,0.707107 -6284,0.707107,0.000000,0.000000,0.707107 -6285,0.707107,0.000000,0.000000,0.707107 -6286,0.707107,0.000000,0.000000,0.707107 -6287,0.707107,0.000000,0.000000,0.707107 -6288,0.707107,0.000000,0.000000,0.707107 -6289,0.707107,0.000000,0.000000,0.707107 -6290,0.707107,0.000000,0.000000,0.707107 -6291,0.707107,0.000000,0.000000,0.707107 -6292,0.707107,0.000000,0.000000,0.707107 -6293,0.707107,0.000000,0.000000,0.707107 -6294,0.707107,0.000000,0.000000,0.707107 -6295,0.707107,0.000000,0.000000,0.707107 -6296,0.707107,0.000000,0.000000,0.707107 -6297,0.707107,0.000000,0.000000,0.707107 -6298,0.707107,0.000000,0.000000,0.707107 -6299,0.707107,0.000000,0.000000,0.707107 -6300,0.707107,0.000000,0.000000,0.707107 -6301,0.707107,0.000000,0.000000,0.707107 -6302,0.707107,0.000000,0.000000,0.707107 -6303,0.707107,0.000000,0.000000,0.707107 -6304,0.707107,0.000000,0.000000,0.707107 -6305,0.707107,0.000000,0.000000,0.707107 -6306,0.707107,0.000000,0.000000,0.707107 -6307,0.707107,0.000000,0.000000,0.707107 -6308,0.707107,0.000000,0.000000,0.707107 -6309,0.707107,0.000000,0.000000,0.707107 -6310,0.707107,0.000000,0.000000,0.707107 -6311,0.707107,0.000000,0.000000,0.707107 -6312,0.707107,0.000000,0.000000,0.707107 -6313,0.707107,0.000000,0.000000,0.707107 -6314,0.707107,0.000000,0.000000,0.707107 -6315,0.707107,0.000000,0.000000,0.707107 -6316,0.707107,0.000000,0.000000,0.707107 -6317,0.707107,0.000000,0.000000,0.707107 -6318,0.707107,0.000000,0.000000,0.707107 -6319,0.707107,0.000000,0.000000,0.707107 -6320,0.707107,0.000000,0.000000,0.707107 -6321,0.707107,0.000000,0.000000,0.707107 -6322,0.707107,0.000000,0.000000,0.707107 -6323,0.707107,0.000000,0.000000,0.707107 -6324,0.707107,0.000000,0.000000,0.707107 -6325,0.707107,0.000000,0.000000,0.707107 -6326,0.707107,0.000000,0.000000,0.707107 -6327,0.707107,0.000000,0.000000,0.707107 -6328,0.707107,0.000000,0.000000,0.707107 -6329,0.707107,0.000000,0.000000,0.707107 -6330,0.707107,0.000000,0.000000,0.707107 -6331,0.707107,0.000000,0.000000,0.707107 -6332,0.707107,0.000000,0.000000,0.707107 -6333,0.707107,0.000000,0.000000,0.707107 -6334,0.707107,0.000000,0.000000,0.707107 -6335,0.707107,0.000000,0.000000,0.707107 -6336,0.707107,0.000000,0.000000,0.707107 -6337,0.707107,0.000000,0.000000,0.707107 -6338,0.707107,0.000000,0.000000,0.707107 -6339,0.707107,0.000000,0.000000,0.707107 -6340,0.707107,0.000000,0.000000,0.707107 -6341,0.707107,0.000000,0.000000,0.707107 -6342,0.707107,0.000000,0.000000,0.707107 -6343,0.707107,0.000000,0.000000,0.707107 -6344,0.707107,0.000000,0.000000,0.707107 -6345,0.707107,0.000000,0.000000,0.707107 -6346,0.707107,0.000000,0.000000,0.707107 -6347,0.707107,0.000000,0.000000,0.707107 -6348,0.707107,0.000000,0.000000,0.707107 -6349,0.707107,0.000000,0.000000,0.707107 -6350,0.707107,0.000000,0.000000,0.707107 -6351,0.707107,0.000000,0.000000,0.707107 -6352,0.707107,0.000000,0.000000,0.707107 -6353,0.707107,0.000000,0.000000,0.707107 -6354,0.707107,0.000000,0.000000,0.707107 -6355,0.707107,0.000000,0.000000,0.707107 -6356,0.707107,0.000000,0.000000,0.707107 -6357,0.707107,0.000000,0.000000,0.707107 -6358,0.707107,0.000000,0.000000,0.707107 -6359,0.707107,0.000000,0.000000,0.707107 -6360,0.707107,0.000000,0.000000,0.707107 -6361,0.707107,0.000000,0.000000,0.707107 -6362,0.707107,0.000000,0.000000,0.707107 -6363,0.707107,0.000000,0.000000,0.707107 -6364,0.707107,0.000000,0.000000,0.707107 -6365,0.707107,0.000000,0.000000,0.707107 -6366,0.707107,0.000000,0.000000,0.707107 -6367,0.707107,0.000000,0.000000,0.707107 -6368,0.707107,0.000000,0.000000,0.707107 -6369,0.707107,0.000000,0.000000,0.707107 -6370,0.707107,0.000000,0.000000,0.707107 -6371,0.707107,0.000000,0.000000,0.707107 -6372,0.707107,0.000000,0.000000,0.707107 -6373,0.707107,0.000000,0.000000,0.707107 -6374,0.707107,0.000000,0.000000,0.707107 -6375,0.707107,0.000000,0.000000,0.707107 -6376,0.707107,0.000000,0.000000,0.707107 -6377,0.707107,0.000000,0.000000,0.707107 -6378,0.707107,0.000000,0.000000,0.707107 -6379,0.707107,0.000000,0.000000,0.707107 -6380,0.707107,0.000000,0.000000,0.707107 -6381,0.707107,0.000000,0.000000,0.707107 -6382,0.707107,0.000000,0.000000,0.707107 -6383,0.707107,0.000000,0.000000,0.707107 -6384,0.707107,0.000000,0.000000,0.707107 -6385,0.707107,0.000000,0.000000,0.707107 -6386,0.707107,0.000000,0.000000,0.707107 -6387,0.707107,0.000000,0.000000,0.707107 -6388,0.707107,0.000000,0.000000,0.707107 -6389,0.707107,0.000000,0.000000,0.707107 -6390,0.707107,0.000000,0.000000,0.707107 -6391,0.707107,0.000000,0.000000,0.707107 -6392,0.707107,0.000000,0.000000,0.707107 -6393,0.707107,0.000000,0.000000,0.707107 -6394,0.707107,0.000000,0.000000,0.707107 -6395,0.707107,0.000000,0.000000,0.707107 -6396,0.707107,0.000000,0.000000,0.707107 -6397,0.707107,0.000000,0.000000,0.707107 -6398,0.707107,0.000000,0.000000,0.707107 -6399,0.707107,0.000000,0.000000,0.707107 -6400,0.707107,0.000000,0.000000,0.707107 -6401,0.707107,0.000000,0.000000,0.707107 -6402,0.707107,0.000000,0.000000,0.707107 -6403,0.707107,0.000000,0.000000,0.707107 -6404,0.707107,0.000000,0.000000,0.707107 -6405,0.707107,0.000000,0.000000,0.707107 -6406,0.707107,0.000000,0.000000,0.707107 -6407,0.707107,0.000000,0.000000,0.707107 -6408,0.707107,0.000000,0.000000,0.707107 -6409,0.707107,0.000000,0.000000,0.707107 -6410,0.707107,0.000000,0.000000,0.707107 -6411,0.707107,0.000000,0.000000,0.707107 -6412,0.707107,0.000000,0.000000,0.707107 -6413,0.707107,0.000000,0.000000,0.707107 -6414,0.707107,0.000000,0.000000,0.707107 -6415,0.707107,0.000000,0.000000,0.707107 -6416,0.707107,0.000000,0.000000,0.707107 -6417,0.707107,0.000000,0.000000,0.707107 -6418,0.707107,0.000000,0.000000,0.707107 -6419,0.707107,0.000000,0.000000,0.707107 -6420,0.707107,0.000000,0.000000,0.707107 -6421,0.707107,0.000000,0.000000,0.707107 -6422,0.707107,0.000000,0.000000,0.707107 -6423,0.707107,0.000000,0.000000,0.707107 -6424,0.707107,0.000000,0.000000,0.707107 -6425,0.707107,0.000000,0.000000,0.707107 -6426,0.707107,0.000000,0.000000,0.707107 -6427,0.707107,0.000000,0.000000,0.707107 -6428,0.707107,0.000000,0.000000,0.707107 -6429,0.707107,0.000000,0.000000,0.707107 -6430,0.707107,0.000000,0.000000,0.707107 -6431,0.707107,0.000000,0.000000,0.707107 -6432,0.707107,0.000000,0.000000,0.707107 -6433,0.707107,0.000000,0.000000,0.707107 -6434,0.707107,0.000000,0.000000,0.707107 -6435,0.707107,0.000000,0.000000,0.707107 -6436,0.707107,0.000000,0.000000,0.707107 -6437,0.707107,0.000000,0.000000,0.707107 -6438,0.707107,0.000000,0.000000,0.707107 -6439,0.707107,0.000000,0.000000,0.707107 -6440,0.707107,0.000000,0.000000,0.707107 -6441,0.707107,0.000000,0.000000,0.707107 -6442,0.707107,0.000000,0.000000,0.707107 -6443,0.707107,0.000000,0.000000,0.707107 -6444,0.707107,0.000000,0.000000,0.707107 -6445,0.707107,0.000000,0.000000,0.707107 -6446,0.707107,0.000000,0.000000,0.707107 -6447,0.707107,0.000000,0.000000,0.707107 -6448,0.707107,0.000000,0.000000,0.707107 -6449,0.707107,0.000000,0.000000,0.707107 -6450,0.707107,0.000000,0.000000,0.707107 -6451,0.707107,0.000000,0.000000,0.707107 -6452,0.707107,0.000000,0.000000,0.707107 -6453,0.707107,0.000000,0.000000,0.707107 -6454,0.707107,0.000000,0.000000,0.707107 -6455,0.707107,0.000000,0.000000,0.707107 -6456,0.707107,0.000000,0.000000,0.707107 -6457,0.707107,0.000000,0.000000,0.707107 -6458,0.707107,0.000000,0.000000,0.707107 -6459,0.707107,0.000000,0.000000,0.707107 -6460,0.707107,0.000000,0.000000,0.707107 -6461,0.707107,0.000000,0.000000,0.707107 -6462,0.707107,0.000000,0.000000,0.707107 -6463,0.707107,0.000000,0.000000,0.707107 -6464,0.707107,0.000000,0.000000,0.707107 -6465,0.707107,0.000000,0.000000,0.707107 -6466,0.707107,0.000000,0.000000,0.707107 -6467,0.707107,0.000000,0.000000,0.707107 -6468,0.707107,0.000000,0.000000,0.707107 -6469,0.707107,0.000000,0.000000,0.707107 -6470,0.707107,0.000000,0.000000,0.707107 -6471,0.707107,0.000000,0.000000,0.707107 -6472,0.707107,0.000000,0.000000,0.707107 -6473,0.707107,0.000000,0.000000,0.707107 -6474,0.707107,0.000000,0.000000,0.707107 -6475,0.707107,0.000000,0.000000,0.707107 -6476,0.707107,0.000000,0.000000,0.707107 -6477,0.707107,0.000000,0.000000,0.707107 -6478,0.707107,0.000000,0.000000,0.707107 -6479,0.707107,0.000000,0.000000,0.707107 -6480,0.707107,0.000000,0.000000,0.707107 -6481,0.707107,0.000000,0.000000,0.707107 -6482,0.707107,0.000000,0.000000,0.707107 -6483,0.707107,0.000000,0.000000,0.707107 -6484,0.707107,0.000000,0.000000,0.707107 -6485,0.707107,0.000000,0.000000,0.707107 -6486,0.707107,0.000000,0.000000,0.707107 -6487,0.707107,0.000000,0.000000,0.707107 -6488,0.707107,0.000000,0.000000,0.707107 -6489,0.707107,0.000000,0.000000,0.707107 -6490,0.707107,0.000000,0.000000,0.707107 -6491,0.707107,0.000000,0.000000,0.707107 -6492,0.707107,0.000000,0.000000,0.707107 -6493,0.707107,0.000000,0.000000,0.707107 -6494,0.707107,0.000000,0.000000,0.707107 -6495,0.707107,0.000000,0.000000,0.707107 -6496,0.707107,0.000000,0.000000,0.707107 -6497,0.707107,0.000000,0.000000,0.707107 -6498,0.707107,0.000000,0.000000,0.707107 -6499,0.707107,0.000000,0.000000,0.707107 -6500,0.707107,0.000000,0.000000,0.707107 -6501,0.707107,0.000000,0.000000,0.707107 -6502,0.707107,0.000000,0.000000,0.707107 -6503,0.707107,0.000000,0.000000,0.707107 -6504,0.707107,0.000000,0.000000,0.707107 -6505,0.707107,0.000000,0.000000,0.707107 -6506,0.707107,0.000000,0.000000,0.707107 -6507,0.707107,0.000000,0.000000,0.707107 -6508,0.707107,0.000000,0.000000,0.707107 -6509,0.707107,0.000000,0.000000,0.707107 -6510,0.707107,0.000000,0.000000,0.707107 -6511,0.707107,0.000000,0.000000,0.707107 -6512,0.707107,0.000000,0.000000,0.707107 -6513,0.707107,0.000000,0.000000,0.707107 -6514,0.707107,0.000000,0.000000,0.707107 -6515,0.707107,0.000000,0.000000,0.707107 -6516,0.707107,0.000000,0.000000,0.707107 -6517,0.707107,0.000000,0.000000,0.707107 -6518,0.707107,0.000000,0.000000,0.707107 -6519,0.707107,0.000000,0.000000,0.707107 -6520,0.707107,0.000000,0.000000,0.707107 -6521,0.707107,0.000000,0.000000,0.707107 -6522,0.707107,0.000000,0.000000,0.707107 -6523,0.707107,0.000000,0.000000,0.707107 -6524,0.707107,0.000000,0.000000,0.707107 -6525,0.707107,0.000000,0.000000,0.707107 -6526,0.707107,0.000000,0.000000,0.707107 -6527,0.707107,0.000000,0.000000,0.707107 -6528,0.707107,0.000000,0.000000,0.707107 -6529,0.707107,0.000000,0.000000,0.707107 -6530,0.707107,0.000000,0.000000,0.707107 -6531,0.707107,0.000000,0.000000,0.707107 -6532,0.707107,0.000000,0.000000,0.707107 -6533,0.707107,0.000000,0.000000,0.707107 -6534,0.707107,0.000000,0.000000,0.707107 -6535,0.707107,0.000000,0.000000,0.707107 -6536,0.707107,0.000000,0.000000,0.707107 -6537,0.707107,0.000000,0.000000,0.707107 -6538,0.707107,0.000000,0.000000,0.707107 -6539,0.707107,0.000000,0.000000,0.707107 -6540,0.707107,0.000000,0.000000,0.707107 -6541,0.707107,0.000000,0.000000,0.707107 -6542,0.707107,0.000000,0.000000,0.707107 -6543,0.707107,0.000000,0.000000,0.707107 -6544,0.707107,0.000000,0.000000,0.707107 -6545,0.707107,0.000000,0.000000,0.707107 -6546,0.707107,0.000000,0.000000,0.707107 -6547,0.707107,0.000000,0.000000,0.707107 -6548,0.707107,0.000000,0.000000,0.707107 -6549,0.707107,0.000000,0.000000,0.707107 -6550,0.707107,0.000000,0.000000,0.707107 -6551,0.707107,0.000000,0.000000,0.707107 -6552,0.707107,0.000000,0.000000,0.707107 -6553,0.707107,0.000000,0.000000,0.707107 -6554,0.707107,0.000000,0.000000,0.707107 -6555,0.707107,0.000000,0.000000,0.707107 -6556,0.707107,0.000000,0.000000,0.707107 -6557,0.707107,0.000000,0.000000,0.707107 -6558,0.707107,0.000000,0.000000,0.707107 -6559,0.707107,0.000000,0.000000,0.707107 -6560,0.707107,0.000000,0.000000,0.707107 -6561,0.707107,0.000000,0.000000,0.707107 -6562,0.707107,0.000000,0.000000,0.707107 -6563,0.707107,0.000000,0.000000,0.707107 -6564,0.707107,0.000000,0.000000,0.707107 -6565,0.707107,0.000000,0.000000,0.707107 -6566,0.707107,0.000000,0.000000,0.707107 -6567,0.707107,0.000000,0.000000,0.707107 -6568,0.707107,0.000000,0.000000,0.707107 -6569,0.707107,0.000000,0.000000,0.707107 -6570,0.707107,0.000000,0.000000,0.707107 -6571,0.707107,0.000000,0.000000,0.707107 -6572,0.707107,0.000000,0.000000,0.707107 -6573,0.707107,0.000000,0.000000,0.707107 -6574,0.707107,0.000000,0.000000,0.707107 -6575,0.707107,0.000000,0.000000,0.707107 -6576,0.707107,0.000000,0.000000,0.707107 -6577,0.707107,0.000000,0.000000,0.707107 -6578,0.707107,0.000000,0.000000,0.707107 -6579,0.707107,0.000000,0.000000,0.707107 -6580,0.707107,0.000000,0.000000,0.707107 -6581,0.707107,0.000000,0.000000,0.707107 -6582,0.707107,0.000000,0.000000,0.707107 -6583,0.707107,0.000000,0.000000,0.707107 -6584,0.707107,0.000000,0.000000,0.707107 -6585,0.707107,0.000000,0.000000,0.707107 -6586,0.707107,0.000000,0.000000,0.707107 -6587,0.707107,0.000000,0.000000,0.707107 -6588,0.707107,0.000000,0.000000,0.707107 -6589,0.707107,0.000000,0.000000,0.707107 -6590,0.707107,0.000000,0.000000,0.707107 -6591,0.707107,0.000000,0.000000,0.707107 -6592,0.707107,0.000000,0.000000,0.707107 -6593,0.707107,0.000000,0.000000,0.707107 -6594,0.707107,0.000000,0.000000,0.707107 -6595,0.707107,0.000000,0.000000,0.707107 -6596,0.707107,0.000000,0.000000,0.707107 -6597,0.707107,0.000000,0.000000,0.707107 -6598,0.707107,0.000000,0.000000,0.707107 -6599,0.707107,0.000000,0.000000,0.707107 -6600,0.707107,0.000000,0.000000,0.707107 -6601,0.707107,0.000000,0.000000,0.707107 -6602,0.707107,0.000000,0.000000,0.707107 -6603,0.707107,0.000000,0.000000,0.707107 -6604,0.707107,0.000000,0.000000,0.707107 -6605,0.707107,0.000000,0.000000,0.707107 -6606,0.707107,0.000000,0.000000,0.707107 -6607,0.707107,0.000000,0.000000,0.707107 -6608,0.707107,0.000000,0.000000,0.707107 -6609,0.707107,0.000000,0.000000,0.707107 -6610,0.707107,0.000000,0.000000,0.707107 -6611,0.707107,0.000000,0.000000,0.707107 -6612,0.707107,0.000000,0.000000,0.707107 -6613,0.707107,0.000000,0.000000,0.707107 -6614,0.707107,0.000000,0.000000,0.707107 -6615,0.707107,0.000000,0.000000,0.707107 -6616,0.707107,0.000000,0.000000,0.707107 -6617,0.707107,0.000000,0.000000,0.707107 -6618,0.707107,0.000000,0.000000,0.707107 -6619,0.707107,0.000000,0.000000,0.707107 -6620,0.707107,0.000000,0.000000,0.707107 -6621,0.707107,0.000000,0.000000,0.707107 -6622,0.707107,0.000000,0.000000,0.707107 -6623,0.707107,0.000000,0.000000,0.707107 -6624,0.707107,0.000000,0.000000,0.707107 -6625,0.707107,0.000000,0.000000,0.707107 -6626,0.707107,0.000000,0.000000,0.707107 -6627,0.707107,0.000000,0.000000,0.707107 -6628,0.707107,0.000000,0.000000,0.707107 -6629,0.707107,0.000000,0.000000,0.707107 -6630,0.707107,0.000000,0.000000,0.707107 -6631,0.707107,0.000000,0.000000,0.707107 -6632,0.707107,0.000000,0.000000,0.707107 -6633,0.707107,0.000000,0.000000,0.707107 -6634,0.707107,0.000000,0.000000,0.707107 -6635,0.707107,0.000000,0.000000,0.707107 -6636,0.707107,0.000000,0.000000,0.707107 -6637,0.707107,0.000000,0.000000,0.707107 -6638,0.707107,0.000000,0.000000,0.707107 -6639,0.707107,0.000000,0.000000,0.707107 -6640,0.707107,0.000000,0.000000,0.707107 -6641,0.707107,0.000000,0.000000,0.707107 -6642,0.707107,0.000000,0.000000,0.707107 -6643,0.707107,0.000000,0.000000,0.707107 -6644,0.707107,0.000000,0.000000,0.707107 -6645,0.707107,0.000000,0.000000,0.707107 -6646,0.707107,0.000000,0.000000,0.707107 -6647,0.707107,0.000000,0.000000,0.707107 -6648,0.707107,0.000000,0.000000,0.707107 -6649,0.707107,0.000000,0.000000,0.707107 -6650,0.707107,0.000000,0.000000,0.707107 -6651,0.707107,0.000000,0.000000,0.707107 -6652,0.707107,0.000000,0.000000,0.707107 -6653,0.707107,0.000000,0.000000,0.707107 -6654,0.707107,0.000000,0.000000,0.707107 -6655,0.707107,0.000000,0.000000,0.707107 -6656,0.707107,0.000000,0.000000,0.707107 -6657,0.707107,0.000000,0.000000,0.707107 -6658,0.707107,0.000000,0.000000,0.707107 -6659,0.707107,0.000000,0.000000,0.707107 -6660,0.707107,0.000000,0.000000,0.707107 -6661,0.707107,0.000000,0.000000,0.707107 -6662,0.707107,0.000000,0.000000,0.707107 -6663,0.707107,0.000000,0.000000,0.707107 -6664,0.707107,0.000000,0.000000,0.707107 -6665,0.707107,0.000000,0.000000,0.707107 -6666,0.707107,0.000000,0.000000,0.707107 -6667,0.707107,0.000000,0.000000,0.707107 -6668,0.707107,0.000000,0.000000,0.707107 -6669,0.707107,0.000000,0.000000,0.707107 -6670,0.707107,0.000000,0.000000,0.707107 -6671,0.707107,0.000000,0.000000,0.707107 -6672,0.707107,0.000000,0.000000,0.707107 -6673,0.707107,0.000000,0.000000,0.707107 -6674,0.707107,0.000000,0.000000,0.707107 -6675,0.707107,0.000000,0.000000,0.707107 -6676,0.707107,0.000000,0.000000,0.707107 -6677,0.707107,0.000000,0.000000,0.707107 -6678,0.707107,0.000000,0.000000,0.707107 -6679,0.707107,0.000000,0.000000,0.707107 -6680,0.707107,0.000000,0.000000,0.707107 -6681,0.707107,0.000000,0.000000,0.707107 -6682,0.707107,0.000000,0.000000,0.707107 -6683,0.707107,0.000000,0.000000,0.707107 -6684,0.707107,0.000000,0.000000,0.707107 -6685,0.707107,0.000000,0.000000,0.707107 -6686,0.707107,0.000000,0.000000,0.707107 -6687,0.707107,0.000000,0.000000,0.707107 -6688,0.707107,0.000000,0.000000,0.707107 -6689,0.707107,0.000000,0.000000,0.707107 -6690,0.707107,0.000000,0.000000,0.707107 -6691,0.707107,0.000000,0.000000,0.707107 -6692,0.707107,0.000000,0.000000,0.707107 -6693,0.707107,0.000000,0.000000,0.707107 -6694,0.707107,0.000000,0.000000,0.707107 -6695,0.707107,0.000000,0.000000,0.707107 -6696,0.707107,0.000000,0.000000,0.707107 -6697,0.707107,0.000000,0.000000,0.707107 -6698,0.707107,0.000000,0.000000,0.707107 -6699,0.707107,0.000000,0.000000,0.707107 -6700,0.707107,0.000000,0.000000,0.707107 -6701,0.707107,0.000000,0.000000,0.707107 -6702,0.707107,0.000000,0.000000,0.707107 -6703,0.707107,0.000000,0.000000,0.707107 -6704,0.707107,0.000000,0.000000,0.707107 -6705,0.707107,0.000000,0.000000,0.707107 -6706,0.707107,0.000000,0.000000,0.707107 -6707,0.707107,0.000000,0.000000,0.707107 -6708,0.707107,0.000000,0.000000,0.707107 -6709,0.707107,0.000000,0.000000,0.707107 -6710,0.707107,0.000000,0.000000,0.707107 -6711,0.707107,0.000000,0.000000,0.707107 -6712,0.707107,0.000000,0.000000,0.707107 -6713,0.707107,0.000000,0.000000,0.707107 -6714,0.707107,0.000000,0.000000,0.707107 -6715,0.707107,0.000000,0.000000,0.707107 -6716,0.707107,0.000000,0.000000,0.707107 -6717,0.707107,0.000000,0.000000,0.707107 -6718,0.707107,0.000000,0.000000,0.707107 -6719,0.707107,0.000000,0.000000,0.707107 -6720,0.707107,0.000000,0.000000,0.707107 -6721,0.707107,0.000000,0.000000,0.707107 -6722,0.707107,0.000000,0.000000,0.707107 -6723,0.707107,0.000000,0.000000,0.707107 -6724,0.707107,0.000000,0.000000,0.707107 -6725,0.707107,0.000000,0.000000,0.707107 -6726,0.707107,0.000000,0.000000,0.707107 -6727,0.707107,0.000000,0.000000,0.707107 -6728,0.707107,0.000000,0.000000,0.707107 -6729,0.707107,0.000000,0.000000,0.707107 -6730,0.707107,0.000000,0.000000,0.707107 -6731,0.707107,0.000000,0.000000,0.707107 -6732,0.707107,0.000000,0.000000,0.707107 -6733,0.707107,0.000000,0.000000,0.707107 -6734,0.707107,0.000000,0.000000,0.707107 -6735,0.707107,0.000000,0.000000,0.707107 -6736,0.707107,0.000000,0.000000,0.707107 -6737,0.707107,0.000000,0.000000,0.707107 -6738,0.707107,0.000000,0.000000,0.707107 -6739,0.707107,0.000000,0.000000,0.707107 -6740,0.707107,0.000000,0.000000,0.707107 -6741,0.707107,0.000000,0.000000,0.707107 -6742,0.707107,0.000000,0.000000,0.707107 -6743,0.707107,0.000000,0.000000,0.707107 -6744,0.707107,0.000000,0.000000,0.707107 -6745,0.707107,0.000000,0.000000,0.707107 -6746,0.707107,0.000000,0.000000,0.707107 -6747,0.707107,0.000000,0.000000,0.707107 -6748,0.707107,0.000000,0.000000,0.707107 -6749,0.707107,0.000000,0.000000,0.707107 -6750,0.707107,0.000000,0.000000,0.707107 -6751,0.707107,0.000000,0.000000,0.707107 -6752,0.707107,0.000000,0.000000,0.707107 -6753,0.707107,0.000000,0.000000,0.707107 -6754,0.707107,0.000000,0.000000,0.707107 -6755,0.707107,0.000000,0.000000,0.707107 -6756,0.707107,0.000000,0.000000,0.707107 -6757,0.707107,0.000000,0.000000,0.707107 -6758,0.707107,0.000000,0.000000,0.707107 -6759,0.707107,0.000000,0.000000,0.707107 -6760,0.707107,0.000000,0.000000,0.707107 -6761,0.707107,0.000000,0.000000,0.707107 -6762,0.707107,0.000000,0.000000,0.707107 -6763,0.707107,0.000000,0.000000,0.707107 -6764,0.707107,0.000000,0.000000,0.707107 -6765,0.707107,0.000000,0.000000,0.707107 -6766,0.707107,0.000000,0.000000,0.707107 -6767,0.707107,0.000000,0.000000,0.707107 -6768,0.707107,0.000000,0.000000,0.707107 -6769,0.707107,0.000000,0.000000,0.707107 -6770,0.707107,0.000000,0.000000,0.707107 -6771,0.707107,0.000000,0.000000,0.707107 -6772,0.707107,0.000000,0.000000,0.707107 -6773,0.707107,0.000000,0.000000,0.707107 -6774,0.707107,0.000000,0.000000,0.707107 -6775,0.707107,0.000000,0.000000,0.707107 -6776,0.707107,0.000000,0.000000,0.707107 -6777,0.707107,0.000000,0.000000,0.707107 -6778,0.707107,0.000000,0.000000,0.707107 -6779,0.707107,0.000000,0.000000,0.707107 -6780,0.707107,0.000000,0.000000,0.707107 -6781,0.707107,0.000000,0.000000,0.707107 -6782,0.707107,0.000000,0.000000,0.707107 -6783,0.707107,0.000000,0.000000,0.707107 -6784,0.707107,0.000000,0.000000,0.707107 -6785,0.707107,0.000000,0.000000,0.707107 -6786,0.707107,0.000000,0.000000,0.707107 -6787,0.707107,0.000000,0.000000,0.707107 -6788,0.707107,0.000000,0.000000,0.707107 -6789,0.707107,0.000000,0.000000,0.707107 -6790,0.707107,0.000000,0.000000,0.707107 -6791,0.707107,0.000000,0.000000,0.707107 -6792,0.707107,0.000000,0.000000,0.707107 -6793,0.707107,0.000000,0.000000,0.707107 -6794,0.707107,0.000000,0.000000,0.707107 -6795,0.707107,0.000000,0.000000,0.707107 -6796,0.707107,0.000000,0.000000,0.707107 -6797,0.707107,0.000000,0.000000,0.707107 -6798,0.707107,0.000000,0.000000,0.707107 -6799,0.707107,0.000000,0.000000,0.707107 -6800,0.707107,0.000000,0.000000,0.707107 -6801,0.707107,0.000000,0.000000,0.707107 -6802,0.707107,0.000000,0.000000,0.707107 -6803,0.707107,0.000000,0.000000,0.707107 -6804,0.707107,0.000000,0.000000,0.707107 -6805,0.707107,0.000000,0.000000,0.707107 -6806,0.707107,0.000000,0.000000,0.707107 -6807,0.707107,0.000000,0.000000,0.707107 -6808,0.707107,0.000000,0.000000,0.707107 -6809,0.707107,0.000000,0.000000,0.707107 -6810,0.707107,0.000000,0.000000,0.707107 -6811,0.707107,0.000000,0.000000,0.707107 -6812,0.707107,0.000000,0.000000,0.707107 -6813,0.707107,0.000000,0.000000,0.707107 -6814,0.707107,0.000000,0.000000,0.707107 -6815,0.707107,0.000000,0.000000,0.707107 -6816,0.707107,0.000000,0.000000,0.707107 -6817,0.707107,0.000000,0.000000,0.707107 -6818,0.707107,0.000000,0.000000,0.707107 -6819,0.707107,0.000000,0.000000,0.707107 -6820,0.707107,0.000000,0.000000,0.707107 -6821,0.707107,0.000000,0.000000,0.707107 -6822,0.707107,0.000000,0.000000,0.707107 -6823,0.707107,0.000000,0.000000,0.707107 -6824,0.707107,0.000000,0.000000,0.707107 -6825,0.707107,0.000000,0.000000,0.707107 -6826,0.707107,0.000000,0.000000,0.707107 -6827,0.707107,0.000000,0.000000,0.707107 -6828,0.707107,0.000000,0.000000,0.707107 -6829,0.707107,0.000000,0.000000,0.707107 -6830,0.707107,0.000000,0.000000,0.707107 -6831,0.707107,0.000000,0.000000,0.707107 -6832,0.707107,0.000000,0.000000,0.707107 -6833,0.707107,0.000000,0.000000,0.707107 -6834,0.707107,0.000000,0.000000,0.707107 -6835,0.707107,0.000000,0.000000,0.707107 -6836,0.707107,0.000000,0.000000,0.707107 -6837,0.707107,0.000000,0.000000,0.707107 -6838,0.707107,0.000000,0.000000,0.707107 -6839,0.707107,0.000000,0.000000,0.707107 -6840,0.707107,0.000000,0.000000,0.707107 -6841,0.707107,0.000000,0.000000,0.707107 -6842,0.707107,0.000000,0.000000,0.707107 -6843,0.707107,0.000000,0.000000,0.707107 -6844,0.707107,0.000000,0.000000,0.707107 -6845,0.707107,0.000000,0.000000,0.707107 -6846,0.707107,0.000000,0.000000,0.707107 -6847,0.707107,0.000000,0.000000,0.707107 -6848,0.707107,0.000000,0.000000,0.707107 -6849,0.707107,0.000000,0.000000,0.707107 -6850,0.707107,0.000000,0.000000,0.707107 -6851,0.707107,0.000000,0.000000,0.707107 -6852,0.707107,0.000000,0.000000,0.707107 -6853,0.707107,0.000000,0.000000,0.707107 -6854,0.707107,0.000000,0.000000,0.707107 -6855,0.707107,0.000000,0.000000,0.707107 -6856,0.707107,0.000000,0.000000,0.707107 -6857,0.707107,0.000000,0.000000,0.707107 -6858,0.707107,0.000000,0.000000,0.707107 -6859,0.707107,0.000000,0.000000,0.707107 -6860,0.707107,0.000000,0.000000,0.707107 -6861,0.707107,0.000000,0.000000,0.707107 -6862,0.707107,0.000000,0.000000,0.707107 -6863,0.707107,0.000000,0.000000,0.707107 -6864,0.707107,0.000000,0.000000,0.707107 -6865,0.707107,0.000000,0.000000,0.707107 -6866,0.707107,0.000000,0.000000,0.707107 -6867,0.707107,0.000000,0.000000,0.707107 -6868,0.707107,0.000000,0.000000,0.707107 -6869,0.707107,0.000000,0.000000,0.707107 -6870,0.707107,0.000000,0.000000,0.707107 -6871,0.707107,0.000000,0.000000,0.707107 -6872,0.707107,0.000000,0.000000,0.707107 -6873,0.707107,0.000000,0.000000,0.707107 -6874,0.707107,0.000000,0.000000,0.707107 -6875,0.707107,0.000000,0.000000,0.707107 -6876,0.707107,0.000000,0.000000,0.707107 -6877,0.707107,0.000000,0.000000,0.707107 -6878,0.707107,0.000000,0.000000,0.707107 -6879,0.707107,0.000000,0.000000,0.707107 -6880,0.707107,0.000000,0.000000,0.707107 -6881,0.707107,0.000000,0.000000,0.707107 -6882,0.707107,0.000000,0.000000,0.707107 -6883,0.707107,0.000000,0.000000,0.707107 -6884,0.707107,0.000000,0.000000,0.707107 -6885,0.707107,0.000000,0.000000,0.707107 -6886,0.707107,0.000000,0.000000,0.707107 -6887,0.707107,0.000000,0.000000,0.707107 -6888,0.707107,0.000000,0.000000,0.707107 -6889,0.707107,0.000000,0.000000,0.707107 -6890,0.707107,0.000000,0.000000,0.707107 -6891,0.707107,0.000000,0.000000,0.707107 -6892,0.707107,0.000000,0.000000,0.707107 -6893,0.707107,0.000000,0.000000,0.707107 -6894,0.707107,0.000000,0.000000,0.707107 -6895,0.707107,0.000000,0.000000,0.707107 -6896,0.707107,0.000000,0.000000,0.707107 -6897,0.707107,0.000000,0.000000,0.707107 -6898,0.707107,0.000000,0.000000,0.707107 -6899,0.707107,0.000000,0.000000,0.707107 -6900,0.707107,0.000000,0.000000,0.707107 -6901,0.707107,0.000000,0.000000,0.707107 -6902,0.707107,0.000000,0.000000,0.707107 -6903,0.707107,0.000000,0.000000,0.707107 -6904,0.707107,0.000000,0.000000,0.707107 -6905,0.707107,0.000000,0.000000,0.707107 -6906,0.707107,0.000000,0.000000,0.707107 -6907,0.707107,0.000000,0.000000,0.707107 -6908,0.707107,0.000000,0.000000,0.707107 -6909,0.707107,0.000000,0.000000,0.707107 -6910,0.707107,0.000000,0.000000,0.707107 -6911,0.707107,0.000000,0.000000,0.707107 -6912,0.707107,0.000000,0.000000,0.707107 -6913,0.707107,0.000000,0.000000,0.707107 -6914,0.707107,0.000000,0.000000,0.707107 -6915,0.707107,0.000000,0.000000,0.707107 -6916,0.707107,0.000000,0.000000,0.707107 -6917,0.707107,0.000000,0.000000,0.707107 -6918,0.707107,0.000000,0.000000,0.707107 -6919,0.707107,0.000000,0.000000,0.707107 -6920,0.707107,0.000000,0.000000,0.707107 -6921,0.707107,0.000000,0.000000,0.707107 -6922,0.707107,0.000000,0.000000,0.707107 -6923,0.707107,0.000000,0.000000,0.707107 -6924,0.707107,0.000000,0.000000,0.707107 -6925,0.707107,0.000000,0.000000,0.707107 -6926,0.707107,0.000000,0.000000,0.707107 -6927,0.707107,0.000000,0.000000,0.707107 -6928,0.707107,0.000000,0.000000,0.707107 -6929,0.707107,0.000000,0.000000,0.707107 -6930,0.707107,0.000000,0.000000,0.707107 -6931,0.707107,0.000000,0.000000,0.707107 -6932,0.707107,0.000000,0.000000,0.707107 -6933,0.707107,0.000000,0.000000,0.707107 -6934,0.707107,0.000000,0.000000,0.707107 -6935,0.707107,0.000000,0.000000,0.707107 -6936,0.707107,0.000000,0.000000,0.707107 -6937,0.707107,0.000000,0.000000,0.707107 -6938,0.707107,0.000000,0.000000,0.707107 -6939,0.707107,0.000000,0.000000,0.707107 -6940,0.707107,0.000000,0.000000,0.707107 -6941,0.707107,0.000000,0.000000,0.707107 -6942,0.707107,0.000000,0.000000,0.707107 -6943,0.707107,0.000000,0.000000,0.707107 -6944,0.707107,0.000000,0.000000,0.707107 -6945,0.707107,0.000000,0.000000,0.707107 -6946,0.707107,0.000000,0.000000,0.707107 -6947,0.707107,0.000000,0.000000,0.707107 -6948,0.707107,0.000000,0.000000,0.707107 -6949,0.707107,0.000000,0.000000,0.707107 -6950,0.707107,0.000000,0.000000,0.707107 -6951,0.707107,0.000000,0.000000,0.707107 -6952,0.707107,0.000000,0.000000,0.707107 -6953,0.707107,0.000000,0.000000,0.707107 -6954,0.707107,0.000000,0.000000,0.707107 -6955,0.707107,0.000000,0.000000,0.707107 -6956,0.707107,0.000000,0.000000,0.707107 -6957,0.707107,0.000000,0.000000,0.707107 -6958,0.707107,0.000000,0.000000,0.707107 -6959,0.707107,0.000000,0.000000,0.707107 -6960,0.707107,0.000000,0.000000,0.707107 -6961,0.707107,0.000000,0.000000,0.707107 -6962,0.707107,0.000000,0.000000,0.707107 -6963,0.707107,0.000000,0.000000,0.707107 -6964,0.707107,0.000000,0.000000,0.707107 -6965,0.707107,0.000000,0.000000,0.707107 -6966,0.707107,0.000000,0.000000,0.707107 -6967,0.707107,0.000000,0.000000,0.707107 -6968,0.707107,0.000000,0.000000,0.707107 -6969,0.707107,0.000000,0.000000,0.707107 -6970,0.707107,0.000000,0.000000,0.707107 -6971,0.707107,0.000000,0.000000,0.707107 -6972,0.707107,0.000000,0.000000,0.707107 -6973,0.707107,0.000000,0.000000,0.707107 -6974,0.707107,0.000000,0.000000,0.707107 -6975,0.707107,0.000000,0.000000,0.707107 -6976,0.707107,0.000000,0.000000,0.707107 -6977,0.707107,0.000000,0.000000,0.707107 -6978,0.707107,0.000000,0.000000,0.707107 -6979,0.707107,0.000000,0.000000,0.707107 -6980,0.707107,0.000000,0.000000,0.707107 -6981,0.707107,0.000000,0.000000,0.707107 -6982,0.707107,0.000000,0.000000,0.707107 -6983,0.707107,0.000000,0.000000,0.707107 -6984,0.707107,0.000000,0.000000,0.707107 -6985,0.707107,0.000000,0.000000,0.707107 -6986,0.707107,0.000000,0.000000,0.707107 -6987,0.707107,0.000000,0.000000,0.707107 -6988,0.707107,0.000000,0.000000,0.707107 -6989,0.707107,0.000000,0.000000,0.707107 -6990,0.707107,0.000000,0.000000,0.707107 -6991,0.707107,0.000000,0.000000,0.707107 -6992,0.707107,0.000000,0.000000,0.707107 -6993,0.707107,0.000000,0.000000,0.707107 -6994,0.707107,0.000000,0.000000,0.707107 -6995,0.707107,0.000000,0.000000,0.707107 -6996,0.707107,0.000000,0.000000,0.707107 -6997,0.707107,0.000000,0.000000,0.707107 -6998,0.707107,0.000000,0.000000,0.707107 -6999,0.707107,0.000000,0.000000,0.707107 -7000,0.707107,0.000000,0.000000,0.707107 -7001,0.707107,0.000000,0.000000,0.707107 -7002,0.707107,0.000000,0.000000,0.707107 -7003,0.707107,0.000000,0.000000,0.707107 -7004,0.707107,0.000000,0.000000,0.707107 -7005,0.707107,0.000000,0.000000,0.707107 -7006,0.707107,0.000000,0.000000,0.707107 -7007,0.707107,0.000000,0.000000,0.707107 -7008,0.707107,0.000000,0.000000,0.707107 -7009,0.707107,0.000000,0.000000,0.707107 -7010,0.707107,0.000000,0.000000,0.707107 -7011,0.707107,0.000000,0.000000,0.707107 -7012,0.707107,0.000000,0.000000,0.707107 -7013,0.707107,0.000000,0.000000,0.707107 -7014,0.707107,0.000000,0.000000,0.707107 -7015,0.707107,0.000000,0.000000,0.707107 -7016,0.707107,0.000000,0.000000,0.707107 -7017,0.707107,0.000000,0.000000,0.707107 -7018,0.707107,0.000000,0.000000,0.707107 -7019,0.707107,0.000000,0.000000,0.707107 -7020,0.707107,0.000000,0.000000,0.707107 -7021,0.707107,0.000000,0.000000,0.707107 -7022,0.707107,0.000000,0.000000,0.707107 -7023,0.707107,0.000000,0.000000,0.707107 -7024,0.707107,0.000000,0.000000,0.707107 -7025,0.707107,0.000000,0.000000,0.707107 -7026,0.707107,0.000000,0.000000,0.707107 -7027,0.707107,0.000000,0.000000,0.707107 -7028,0.707107,0.000000,0.000000,0.707107 -7029,0.707107,0.000000,0.000000,0.707107 -7030,0.707107,0.000000,0.000000,0.707107 -7031,0.707107,0.000000,0.000000,0.707107 -7032,0.707107,0.000000,0.000000,0.707107 -7033,0.707107,0.000000,0.000000,0.707107 -7034,0.707107,0.000000,0.000000,0.707107 -7035,0.707107,0.000000,0.000000,0.707107 -7036,0.707107,0.000000,0.000000,0.707107 -7037,0.707107,0.000000,0.000000,0.707107 -7038,0.707107,0.000000,0.000000,0.707107 -7039,0.707107,0.000000,0.000000,0.707107 -7040,0.707107,0.000000,0.000000,0.707107 -7041,0.707107,0.000000,0.000000,0.707107 -7042,0.707107,0.000000,0.000000,0.707107 -7043,0.707107,0.000000,0.000000,0.707107 -7044,0.707107,0.000000,0.000000,0.707107 -7045,0.707107,0.000000,0.000000,0.707107 -7046,0.707107,0.000000,0.000000,0.707107 -7047,0.707107,0.000000,0.000000,0.707107 -7048,0.707107,0.000000,0.000000,0.707107 -7049,0.707107,0.000000,0.000000,0.707107 -7050,0.707107,0.000000,0.000000,0.707107 -7051,0.707107,0.000000,0.000000,0.707107 -7052,0.707107,0.000000,0.000000,0.707107 -7053,0.707107,0.000000,0.000000,0.707107 -7054,0.707107,0.000000,0.000000,0.707107 -7055,0.707107,0.000000,0.000000,0.707107 -7056,0.707107,0.000000,0.000000,0.707107 -7057,0.707107,0.000000,0.000000,0.707107 -7058,0.707107,0.000000,0.000000,0.707107 -7059,0.707107,0.000000,0.000000,0.707107 -7060,0.707107,0.000000,0.000000,0.707107 -7061,0.707107,0.000000,0.000000,0.707107 -7062,0.707107,0.000000,0.000000,0.707107 -7063,0.707107,0.000000,0.000000,0.707107 -7064,0.707107,0.000000,0.000000,0.707107 -7065,0.707107,0.000000,0.000000,0.707107 -7066,0.707107,0.000000,0.000000,0.707107 -7067,0.707107,0.000000,0.000000,0.707107 -7068,0.707107,0.000000,0.000000,0.707107 -7069,0.707107,0.000000,0.000000,0.707107 -7070,0.707107,0.000000,0.000000,0.707107 -7071,0.707107,0.000000,0.000000,0.707107 -7072,0.707107,0.000000,0.000000,0.707107 -7073,0.707107,0.000000,0.000000,0.707107 -7074,0.707107,0.000000,0.000000,0.707107 -7075,0.707107,0.000000,0.000000,0.707107 -7076,0.707107,0.000000,0.000000,0.707107 -7077,0.707107,0.000000,0.000000,0.707107 -7078,0.707107,0.000000,0.000000,0.707107 -7079,0.707107,0.000000,0.000000,0.707107 -7080,0.707107,0.000000,0.000000,0.707107 -7081,0.707107,0.000000,0.000000,0.707107 -7082,0.707107,0.000000,0.000000,0.707107 -7083,0.707107,0.000000,0.000000,0.707107 -7084,0.707107,0.000000,0.000000,0.707107 -7085,0.707107,0.000000,0.000000,0.707107 -7086,0.707107,0.000000,0.000000,0.707107 -7087,0.707107,0.000000,0.000000,0.707107 -7088,0.707107,0.000000,0.000000,0.707107 -7089,0.707107,0.000000,0.000000,0.707107 -7090,0.707107,0.000000,0.000000,0.707107 -7091,0.707107,0.000000,0.000000,0.707107 -7092,0.707107,0.000000,0.000000,0.707107 -7093,0.707107,0.000000,0.000000,0.707107 -7094,0.707107,0.000000,0.000000,0.707107 -7095,0.707107,0.000000,0.000000,0.707107 -7096,0.707107,0.000000,0.000000,0.707107 -7097,0.707107,0.000000,0.000000,0.707107 -7098,0.707107,0.000000,0.000000,0.707107 -7099,0.707107,0.000000,0.000000,0.707107 -7100,0.707107,0.000000,0.000000,0.707107 -7101,0.707107,0.000000,0.000000,0.707107 -7102,0.707107,0.000000,0.000000,0.707107 -7103,0.707107,0.000000,0.000000,0.707107 -7104,0.707107,0.000000,0.000000,0.707107 -7105,0.707107,0.000000,0.000000,0.707107 -7106,0.707107,0.000000,0.000000,0.707107 -7107,0.707107,0.000000,0.000000,0.707107 -7108,0.707107,0.000000,0.000000,0.707107 -7109,0.707107,0.000000,0.000000,0.707107 -7110,0.707107,0.000000,0.000000,0.707107 -7111,0.707107,0.000000,0.000000,0.707107 -7112,0.707107,0.000000,0.000000,0.707107 -7113,0.707107,0.000000,0.000000,0.707107 -7114,0.707107,0.000000,0.000000,0.707107 -7115,0.707107,0.000000,0.000000,0.707107 -7116,0.707107,0.000000,0.000000,0.707107 -7117,0.707107,0.000000,0.000000,0.707107 -7118,0.707107,0.000000,0.000000,0.707107 -7119,0.707107,0.000000,0.000000,0.707107 -7120,0.707107,0.000000,0.000000,0.707107 -7121,0.707107,0.000000,0.000000,0.707107 -7122,0.707107,0.000000,0.000000,0.707107 -7123,0.707107,0.000000,0.000000,0.707107 -7124,0.707107,0.000000,0.000000,0.707107 -7125,0.707107,0.000000,0.000000,0.707107 -7126,0.707107,0.000000,0.000000,0.707107 -7127,0.707107,0.000000,0.000000,0.707107 -7128,0.707107,0.000000,0.000000,0.707107 -7129,0.707107,0.000000,0.000000,0.707107 -7130,0.707107,0.000000,0.000000,0.707107 -7131,0.707107,0.000000,0.000000,0.707107 -7132,0.707107,0.000000,0.000000,0.707107 -7133,0.707107,0.000000,0.000000,0.707107 -7134,0.707107,0.000000,0.000000,0.707107 -7135,0.707107,0.000000,0.000000,0.707107 -7136,0.707107,0.000000,0.000000,0.707107 -7137,0.707107,0.000000,0.000000,0.707107 -7138,0.707107,0.000000,0.000000,0.707107 -7139,0.707107,0.000000,0.000000,0.707107 -7140,0.707107,0.000000,0.000000,0.707107 -7141,0.707107,0.000000,0.000000,0.707107 -7142,0.707107,0.000000,0.000000,0.707107 -7143,0.707107,0.000000,0.000000,0.707107 -7144,0.707107,0.000000,0.000000,0.707107 -7145,0.707107,0.000000,0.000000,0.707107 -7146,0.707107,0.000000,0.000000,0.707107 -7147,0.707107,0.000000,0.000000,0.707107 -7148,0.707107,0.000000,0.000000,0.707107 -7149,0.707107,0.000000,0.000000,0.707107 -7150,0.707107,0.000000,0.000000,0.707107 -7151,0.707107,0.000000,0.000000,0.707107 -7152,0.707107,0.000000,0.000000,0.707107 -7153,0.707107,0.000000,0.000000,0.707107 -7154,0.707107,0.000000,0.000000,0.707107 -7155,0.707107,0.000000,0.000000,0.707107 -7156,0.707107,0.000000,0.000000,0.707107 -7157,0.707107,0.000000,0.000000,0.707107 -7158,0.707107,0.000000,0.000000,0.707107 -7159,0.707107,0.000000,0.000000,0.707107 -7160,0.707107,0.000000,0.000000,0.707107 -7161,0.707107,0.000000,0.000000,0.707107 -7162,0.707107,0.000000,0.000000,0.707107 -7163,0.707107,0.000000,0.000000,0.707107 -7164,0.707107,0.000000,0.000000,0.707107 -7165,0.707107,0.000000,0.000000,0.707107 -7166,0.707107,0.000000,0.000000,0.707107 -7167,0.707107,0.000000,0.000000,0.707107 -7168,0.707107,0.000000,0.000000,0.707107 -7169,0.707107,0.000000,0.000000,0.707107 -7170,0.707107,0.000000,0.000000,0.707107 -7171,0.707107,0.000000,0.000000,0.707107 -7172,0.707107,0.000000,0.000000,0.707107 -7173,0.707107,0.000000,0.000000,0.707107 -7174,0.707107,0.000000,0.000000,0.707107 -7175,0.707107,0.000000,0.000000,0.707107 -7176,0.707107,0.000000,0.000000,0.707107 -7177,0.707107,0.000000,0.000000,0.707107 -7178,0.707107,0.000000,0.000000,0.707107 -7179,0.707107,0.000000,0.000000,0.707107 -7180,0.707107,0.000000,0.000000,0.707107 -7181,0.707107,0.000000,0.000000,0.707107 -7182,0.707107,0.000000,0.000000,0.707107 -7183,0.707107,0.000000,0.000000,0.707107 -7184,0.707107,0.000000,0.000000,0.707107 -7185,0.707107,0.000000,0.000000,0.707107 -7186,0.707107,0.000000,0.000000,0.707107 -7187,0.707107,0.000000,0.000000,0.707107 -7188,0.707107,0.000000,0.000000,0.707107 -7189,0.707107,0.000000,0.000000,0.707107 -7190,0.707107,0.000000,0.000000,0.707107 -7191,0.707107,0.000000,0.000000,0.707107 -7192,0.707107,0.000000,0.000000,0.707107 -7193,0.707107,0.000000,0.000000,0.707107 -7194,0.707107,0.000000,0.000000,0.707107 -7195,0.707107,0.000000,0.000000,0.707107 -7196,0.707107,0.000000,0.000000,0.707107 -7197,0.707107,0.000000,0.000000,0.707107 -7198,0.707107,0.000000,0.000000,0.707107 -7199,0.707107,0.000000,0.000000,0.707107 -7200,0.707107,0.000000,0.000000,0.707107 -7201,0.707107,0.000000,0.000000,0.707107 -7202,0.707107,0.000000,0.000000,0.707107 -7203,0.707107,0.000000,0.000000,0.707107 -7204,0.707107,0.000000,0.000000,0.707107 -7205,0.707107,0.000000,0.000000,0.707107 -7206,0.707107,0.000000,0.000000,0.707107 -7207,0.707107,0.000000,0.000000,0.707107 -7208,0.707107,0.000000,0.000000,0.707107 -7209,0.707107,0.000000,0.000000,0.707107 -7210,0.707107,0.000000,0.000000,0.707107 -7211,0.707107,0.000000,0.000000,0.707107 -7212,0.707107,0.000000,0.000000,0.707107 -7213,0.707107,0.000000,0.000000,0.707107 -7214,0.707107,0.000000,0.000000,0.707107 -7215,0.707107,0.000000,0.000000,0.707107 -7216,0.707107,0.000000,0.000000,0.707107 -7217,0.707107,0.000000,0.000000,0.707107 -7218,0.707107,0.000000,0.000000,0.707107 -7219,0.707107,0.000000,0.000000,0.707107 -7220,0.707107,0.000000,0.000000,0.707107 -7221,0.707107,0.000000,0.000000,0.707107 -7222,0.707107,0.000000,0.000000,0.707107 -7223,0.707107,0.000000,0.000000,0.707107 -7224,0.707107,0.000000,0.000000,0.707107 -7225,0.707107,0.000000,0.000000,0.707107 -7226,0.707107,0.000000,0.000000,0.707107 -7227,0.707107,0.000000,0.000000,0.707107 -7228,0.707107,0.000000,0.000000,0.707107 -7229,0.707107,0.000000,0.000000,0.707107 -7230,0.707107,0.000000,0.000000,0.707107 -7231,0.707107,0.000000,0.000000,0.707107 -7232,0.707107,0.000000,0.000000,0.707107 -7233,0.707107,0.000000,0.000000,0.707107 -7234,0.707107,0.000000,0.000000,0.707107 -7235,0.707107,0.000000,0.000000,0.707107 -7236,0.707107,0.000000,0.000000,0.707107 -7237,0.707107,0.000000,0.000000,0.707107 -7238,0.707107,0.000000,0.000000,0.707107 -7239,0.707107,0.000000,0.000000,0.707107 -7240,0.707107,0.000000,0.000000,0.707107 -7241,0.707107,0.000000,0.000000,0.707107 -7242,0.707107,0.000000,0.000000,0.707107 -7243,0.707107,0.000000,0.000000,0.707107 -7244,0.707107,0.000000,0.000000,0.707107 -7245,0.707107,0.000000,0.000000,0.707107 -7246,0.707107,0.000000,0.000000,0.707107 -7247,0.707107,0.000000,0.000000,0.707107 -7248,0.707107,0.000000,0.000000,0.707107 -7249,0.707107,0.000000,0.000000,0.707107 -7250,0.707107,0.000000,0.000000,0.707107 -7251,0.707107,0.000000,0.000000,0.707107 -7252,0.707107,0.000000,0.000000,0.707107 -7253,0.707107,0.000000,0.000000,0.707107 -7254,0.707107,0.000000,0.000000,0.707107 -7255,0.707107,0.000000,0.000000,0.707107 -7256,0.707107,0.000000,0.000000,0.707107 -7257,0.707107,0.000000,0.000000,0.707107 -7258,0.707107,0.000000,0.000000,0.707107 -7259,0.707107,0.000000,0.000000,0.707107 -7260,0.707107,0.000000,0.000000,0.707107 -7261,0.707107,0.000000,0.000000,0.707107 -7262,0.707107,0.000000,0.000000,0.707107 -7263,0.707107,0.000000,0.000000,0.707107 -7264,0.707107,0.000000,0.000000,0.707107 -7265,0.707107,0.000000,0.000000,0.707107 -7266,0.707107,0.000000,0.000000,0.707107 -7267,0.707107,0.000000,0.000000,0.707107 -7268,0.707107,0.000000,0.000000,0.707107 -7269,0.707107,0.000000,0.000000,0.707107 -7270,0.707107,0.000000,0.000000,0.707107 -7271,0.707107,0.000000,0.000000,0.707107 -7272,0.707107,0.000000,0.000000,0.707107 -7273,0.707107,0.000000,0.000000,0.707107 -7274,0.707107,0.000000,0.000000,0.707107 -7275,0.707107,0.000000,0.000000,0.707107 -7276,0.707107,0.000000,0.000000,0.707107 -7277,0.707107,0.000000,0.000000,0.707107 -7278,0.707107,0.000000,0.000000,0.707107 -7279,0.707107,0.000000,0.000000,0.707107 -7280,0.707107,0.000000,0.000000,0.707107 -7281,0.707107,0.000000,0.000000,0.707107 -7282,0.707107,0.000000,0.000000,0.707107 -7283,0.707107,0.000000,0.000000,0.707107 -7284,0.707107,0.000000,0.000000,0.707107 -7285,0.707107,0.000000,0.000000,0.707107 -7286,0.707107,0.000000,0.000000,0.707107 -7287,0.707107,0.000000,0.000000,0.707107 -7288,0.707107,0.000000,0.000000,0.707107 -7289,0.707107,0.000000,0.000000,0.707107 -7290,0.707107,0.000000,0.000000,0.707107 -7291,0.707107,0.000000,0.000000,0.707107 -7292,0.707107,0.000000,0.000000,0.707107 -7293,0.707107,0.000000,0.000000,0.707107 -7294,0.707107,0.000000,0.000000,0.707107 -7295,0.707107,0.000000,0.000000,0.707107 -7296,0.707107,0.000000,0.000000,0.707107 -7297,0.707107,0.000000,0.000000,0.707107 -7298,0.707107,0.000000,0.000000,0.707107 -7299,0.707107,0.000000,0.000000,0.707107 -7300,0.707107,0.000000,0.000000,0.707107 -7301,0.707107,0.000000,0.000000,0.707107 -7302,0.707107,0.000000,0.000000,0.707107 -7303,0.707107,0.000000,0.000000,0.707107 -7304,0.707107,0.000000,0.000000,0.707107 -7305,0.707107,0.000000,0.000000,0.707107 -7306,0.707107,0.000000,0.000000,0.707107 -7307,0.707107,0.000000,0.000000,0.707107 -7308,0.707107,0.000000,0.000000,0.707107 -7309,0.707107,0.000000,0.000000,0.707107 -7310,0.707107,0.000000,0.000000,0.707107 -7311,0.707107,0.000000,0.000000,0.707107 -7312,0.707107,0.000000,0.000000,0.707107 -7313,0.707107,0.000000,0.000000,0.707107 -7314,0.707107,0.000000,0.000000,0.707107 -7315,0.707107,0.000000,0.000000,0.707107 -7316,0.707107,0.000000,0.000000,0.707107 -7317,0.707107,0.000000,0.000000,0.707107 -7318,0.707107,0.000000,0.000000,0.707107 -7319,0.707107,0.000000,0.000000,0.707107 -7320,0.707107,0.000000,0.000000,0.707107 -7321,0.707107,0.000000,0.000000,0.707107 -7322,0.707107,0.000000,0.000000,0.707107 -7323,0.707107,0.000000,0.000000,0.707107 -7324,0.707107,0.000000,0.000000,0.707107 -7325,0.707107,0.000000,0.000000,0.707107 -7326,0.707107,0.000000,0.000000,0.707107 -7327,0.707107,0.000000,0.000000,0.707107 -7328,0.707107,0.000000,0.000000,0.707107 -7329,0.707107,0.000000,0.000000,0.707107 -7330,0.707107,0.000000,0.000000,0.707107 -7331,0.707107,0.000000,0.000000,0.707107 -7332,0.707107,0.000000,0.000000,0.707107 -7333,0.707107,0.000000,0.000000,0.707107 -7334,0.707107,0.000000,0.000000,0.707107 -7335,0.707107,0.000000,0.000000,0.707107 -7336,0.707107,0.000000,0.000000,0.707107 -7337,0.707107,0.000000,0.000000,0.707107 -7338,0.707107,0.000000,0.000000,0.707107 -7339,0.707107,0.000000,0.000000,0.707107 -7340,0.707107,0.000000,0.000000,0.707107 -7341,0.707107,0.000000,0.000000,0.707107 -7342,0.707107,0.000000,0.000000,0.707107 -7343,0.707107,0.000000,0.000000,0.707107 -7344,0.707107,0.000000,0.000000,0.707107 -7345,0.707107,0.000000,0.000000,0.707107 -7346,0.707107,0.000000,0.000000,0.707107 -7347,0.707107,0.000000,0.000000,0.707107 -7348,0.707107,0.000000,0.000000,0.707107 -7349,0.707107,0.000000,0.000000,0.707107 -7350,0.707107,0.000000,0.000000,0.707107 -7351,0.707107,0.000000,0.000000,0.707107 -7352,0.707107,0.000000,0.000000,0.707107 -7353,0.707107,0.000000,0.000000,0.707107 -7354,0.707107,0.000000,0.000000,0.707107 -7355,0.707107,0.000000,0.000000,0.707107 -7356,0.707107,0.000000,0.000000,0.707107 -7357,0.707107,0.000000,0.000000,0.707107 -7358,0.707107,0.000000,0.000000,0.707107 -7359,0.707107,0.000000,0.000000,0.707107 -7360,0.707107,0.000000,0.000000,0.707107 -7361,0.707107,0.000000,0.000000,0.707107 -7362,0.707107,0.000000,0.000000,0.707107 -7363,0.707107,0.000000,0.000000,0.707107 -7364,0.707107,0.000000,0.000000,0.707107 -7365,0.707107,0.000000,0.000000,0.707107 -7366,0.707107,0.000000,0.000000,0.707107 -7367,0.707107,0.000000,0.000000,0.707107 -7368,0.707107,0.000000,0.000000,0.707107 -7369,0.707107,0.000000,0.000000,0.707107 -7370,0.707107,0.000000,0.000000,0.707107 -7371,0.707107,0.000000,0.000000,0.707107 -7372,0.707107,0.000000,0.000000,0.707107 -7373,0.707107,0.000000,0.000000,0.707107 -7374,0.707107,0.000000,0.000000,0.707107 -7375,0.707107,0.000000,0.000000,0.707107 -7376,0.707107,0.000000,0.000000,0.707107 -7377,0.707107,0.000000,0.000000,0.707107 -7378,0.707107,0.000000,0.000000,0.707107 -7379,0.707107,0.000000,0.000000,0.707107 -7380,0.707107,0.000000,0.000000,0.707107 -7381,0.707107,0.000000,0.000000,0.707107 -7382,0.707107,0.000000,0.000000,0.707107 -7383,0.707107,0.000000,0.000000,0.707107 -7384,0.707107,0.000000,0.000000,0.707107 -7385,0.707107,0.000000,0.000000,0.707107 -7386,0.707107,0.000000,0.000000,0.707107 -7387,0.707107,0.000000,0.000000,0.707107 -7388,0.707107,0.000000,0.000000,0.707107 -7389,0.707107,0.000000,0.000000,0.707107 -7390,0.707107,0.000000,0.000000,0.707107 -7391,0.707107,0.000000,0.000000,0.707107 -7392,0.707107,0.000000,0.000000,0.707107 -7393,0.707107,0.000000,0.000000,0.707107 -7394,0.707107,0.000000,0.000000,0.707107 -7395,0.707107,0.000000,0.000000,0.707107 -7396,0.707107,0.000000,0.000000,0.707107 -7397,0.707107,0.000000,0.000000,0.707107 -7398,0.707107,0.000000,0.000000,0.707107 -7399,0.707107,0.000000,0.000000,0.707107 -7400,0.707107,0.000000,0.000000,0.707107 -7401,0.707107,0.000000,0.000000,0.707107 -7402,0.707107,0.000000,0.000000,0.707107 -7403,0.707107,0.000000,0.000000,0.707107 -7404,0.707107,0.000000,0.000000,0.707107 -7405,0.707107,0.000000,0.000000,0.707107 -7406,0.707107,0.000000,0.000000,0.707107 -7407,0.707107,0.000000,0.000000,0.707107 -7408,0.707107,0.000000,0.000000,0.707107 -7409,0.707107,0.000000,0.000000,0.707107 -7410,0.707107,0.000000,0.000000,0.707107 -7411,0.707107,0.000000,0.000000,0.707107 -7412,0.707107,0.000000,0.000000,0.707107 -7413,0.707107,0.000000,0.000000,0.707107 -7414,0.707107,0.000000,0.000000,0.707107 -7415,0.707107,0.000000,0.000000,0.707107 -7416,0.707107,0.000000,0.000000,0.707107 -7417,0.707107,0.000000,0.000000,0.707107 -7418,0.707107,0.000000,0.000000,0.707107 -7419,0.707107,0.000000,0.000000,0.707107 -7420,0.707107,0.000000,0.000000,0.707107 -7421,0.707107,0.000000,0.000000,0.707107 -7422,0.707107,0.000000,0.000000,0.707107 -7423,0.707107,0.000000,0.000000,0.707107 -7424,0.707107,0.000000,0.000000,0.707107 -7425,0.707107,0.000000,0.000000,0.707107 -7426,0.707107,0.000000,0.000000,0.707107 -7427,0.707107,0.000000,0.000000,0.707107 -7428,0.707107,0.000000,0.000000,0.707107 -7429,0.707107,0.000000,0.000000,0.707107 -7430,0.707107,0.000000,0.000000,0.707107 -7431,0.707107,0.000000,0.000000,0.707107 -7432,0.707107,0.000000,0.000000,0.707107 -7433,0.707107,0.000000,0.000000,0.707107 -7434,0.707107,0.000000,0.000000,0.707107 -7435,0.707107,0.000000,0.000000,0.707107 -7436,0.707107,0.000000,0.000000,0.707107 -7437,0.707107,0.000000,0.000000,0.707107 -7438,0.707107,0.000000,0.000000,0.707107 -7439,0.707107,0.000000,0.000000,0.707107 -7440,0.707107,0.000000,0.000000,0.707107 -7441,0.707107,0.000000,0.000000,0.707107 -7442,0.707107,0.000000,0.000000,0.707107 -7443,0.707107,0.000000,0.000000,0.707107 -7444,0.707107,0.000000,0.000000,0.707107 -7445,0.707107,0.000000,0.000000,0.707107 -7446,0.707107,0.000000,0.000000,0.707107 -7447,0.707107,0.000000,0.000000,0.707107 -7448,0.707107,0.000000,0.000000,0.707107 -7449,0.707107,0.000000,0.000000,0.707107 -7450,0.707107,0.000000,0.000000,0.707107 -7451,0.707107,0.000000,0.000000,0.707107 -7452,0.707107,0.000000,0.000000,0.707107 -7453,0.707107,0.000000,0.000000,0.707107 -7454,0.707107,0.000000,0.000000,0.707107 -7455,0.707107,0.000000,0.000000,0.707107 -7456,0.707107,0.000000,0.000000,0.707107 -7457,0.707107,0.000000,0.000000,0.707107 -7458,0.707107,0.000000,0.000000,0.707107 -7459,0.707107,0.000000,0.000000,0.707107 -7460,0.707107,0.000000,0.000000,0.707107 -7461,0.707107,0.000000,0.000000,0.707107 -7462,0.707107,0.000000,0.000000,0.707107 -7463,0.707107,0.000000,0.000000,0.707107 -7464,0.707107,0.000000,0.000000,0.707107 -7465,0.707107,0.000000,0.000000,0.707107 -7466,0.707107,0.000000,0.000000,0.707107 -7467,0.707107,0.000000,0.000000,0.707107 -7468,0.707107,0.000000,0.000000,0.707107 -7469,0.707107,0.000000,0.000000,0.707107 -7470,0.707107,0.000000,0.000000,0.707107 -7471,0.707107,0.000000,0.000000,0.707107 -7472,0.707107,0.000000,0.000000,0.707107 -7473,0.707107,0.000000,0.000000,0.707107 -7474,0.707107,0.000000,0.000000,0.707107 -7475,0.707107,0.000000,0.000000,0.707107 -7476,0.707107,0.000000,0.000000,0.707107 -7477,0.707107,0.000000,0.000000,0.707107 -7478,0.707107,0.000000,0.000000,0.707107 -7479,0.707107,0.000000,0.000000,0.707107 -7480,0.707107,0.000000,0.000000,0.707107 -7481,0.707107,0.000000,0.000000,0.707107 -7482,0.707107,0.000000,0.000000,0.707107 -7483,0.707107,0.000000,0.000000,0.707107 -7484,0.707107,0.000000,0.000000,0.707107 -7485,0.707107,0.000000,0.000000,0.707107 -7486,0.707107,0.000000,0.000000,0.707107 -7487,0.707107,0.000000,0.000000,0.707107 -7488,0.707107,0.000000,0.000000,0.707107 -7489,0.707107,0.000000,0.000000,0.707107 -7490,0.707107,0.000000,0.000000,0.707107 -7491,0.707107,0.000000,0.000000,0.707107 -7492,0.707107,0.000000,0.000000,0.707107 -7493,0.707107,0.000000,0.000000,0.707107 -7494,0.707107,0.000000,0.000000,0.707107 -7495,0.707107,0.000000,0.000000,0.707107 -7496,0.707107,0.000000,0.000000,0.707107 -7497,0.707107,0.000000,0.000000,0.707107 -7498,0.707107,0.000000,0.000000,0.707107 -7499,0.707107,0.000000,0.000000,0.707107 -7500,0.707107,0.000000,0.000000,0.707107 -7501,0.707107,0.000000,0.000000,0.707107 -7502,0.707107,0.000000,0.000000,0.707107 -7503,0.707107,0.000000,0.000000,0.707107 -7504,0.707107,0.000000,0.000000,0.707107 -7505,0.707107,0.000000,0.000000,0.707107 -7506,0.707107,0.000000,0.000000,0.707107 -7507,0.707107,0.000000,0.000000,0.707107 -7508,0.707107,0.000000,0.000000,0.707107 -7509,0.707107,0.000000,0.000000,0.707107 -7510,0.707107,0.000000,0.000000,0.707107 -7511,0.707107,0.000000,0.000000,0.707107 -7512,0.707107,0.000000,0.000000,0.707107 -7513,0.707107,0.000000,0.000000,0.707107 -7514,0.707107,0.000000,0.000000,0.707107 -7515,0.707107,0.000000,0.000000,0.707107 -7516,0.707107,0.000000,0.000000,0.707107 -7517,0.707107,0.000000,0.000000,0.707107 -7518,0.707107,0.000000,0.000000,0.707107 -7519,0.707107,0.000000,0.000000,0.707107 -7520,0.707107,0.000000,0.000000,0.707107 -7521,0.707107,0.000000,0.000000,0.707107 -7522,0.707107,0.000000,0.000000,0.707107 -7523,0.707107,0.000000,0.000000,0.707107 -7524,0.707107,0.000000,0.000000,0.707107 -7525,0.707107,0.000000,0.000000,0.707107 -7526,0.707107,0.000000,0.000000,0.707107 -7527,0.707107,0.000000,0.000000,0.707107 -7528,0.707107,0.000000,0.000000,0.707107 -7529,0.707107,0.000000,0.000000,0.707107 -7530,0.707107,0.000000,0.000000,0.707107 -7531,0.707107,0.000000,0.000000,0.707107 -7532,0.707107,0.000000,0.000000,0.707107 -7533,0.707107,0.000000,0.000000,0.707107 -7534,0.707107,0.000000,0.000000,0.707107 -7535,0.707107,0.000000,0.000000,0.707107 -7536,0.707107,0.000000,0.000000,0.707107 -7537,0.707107,0.000000,0.000000,0.707107 -7538,0.707107,0.000000,0.000000,0.707107 -7539,0.707107,0.000000,0.000000,0.707107 -7540,0.707107,0.000000,0.000000,0.707107 -7541,0.707107,0.000000,0.000000,0.707107 -7542,0.707107,0.000000,0.000000,0.707107 -7543,0.707107,0.000000,0.000000,0.707107 -7544,0.707107,0.000000,0.000000,0.707107 -7545,0.707107,0.000000,0.000000,0.707107 -7546,0.707107,0.000000,0.000000,0.707107 -7547,0.707107,0.000000,0.000000,0.707107 -7548,0.707107,0.000000,0.000000,0.707107 -7549,0.707107,0.000000,0.000000,0.707107 -7550,0.707107,0.000000,0.000000,0.707107 -7551,0.707107,0.000000,0.000000,0.707107 -7552,0.707107,0.000000,0.000000,0.707107 -7553,0.707107,0.000000,0.000000,0.707107 -7554,0.707107,0.000000,0.000000,0.707107 -7555,0.707107,0.000000,0.000000,0.707107 -7556,0.707107,0.000000,0.000000,0.707107 -7557,0.707107,0.000000,0.000000,0.707107 -7558,0.707107,0.000000,0.000000,0.707107 -7559,0.707107,0.000000,0.000000,0.707107 -7560,0.707107,0.000000,0.000000,0.707107 -7561,0.707107,0.000000,0.000000,0.707107 -7562,0.707107,0.000000,0.000000,0.707107 -7563,0.707107,0.000000,0.000000,0.707107 -7564,0.707107,0.000000,0.000000,0.707107 -7565,0.707107,0.000000,0.000000,0.707107 -7566,0.707107,0.000000,0.000000,0.707107 -7567,0.707107,0.000000,0.000000,0.707107 -7568,0.707107,0.000000,0.000000,0.707107 -7569,0.707107,0.000000,0.000000,0.707107 -7570,0.707107,0.000000,0.000000,0.707107 -7571,0.707107,0.000000,0.000000,0.707107 -7572,0.707107,0.000000,0.000000,0.707107 -7573,0.707107,0.000000,0.000000,0.707107 -7574,0.707107,0.000000,0.000000,0.707107 -7575,0.707107,0.000000,0.000000,0.707107 -7576,0.707107,0.000000,0.000000,0.707107 -7577,0.707107,0.000000,0.000000,0.707107 -7578,0.707107,0.000000,0.000000,0.707107 -7579,0.707107,0.000000,0.000000,0.707107 -7580,0.707107,0.000000,0.000000,0.707107 -7581,0.707107,0.000000,0.000000,0.707107 -7582,0.707107,0.000000,0.000000,0.707107 -7583,0.707107,0.000000,0.000000,0.707107 -7584,0.707107,0.000000,0.000000,0.707107 -7585,0.707107,0.000000,0.000000,0.707107 -7586,0.707107,0.000000,0.000000,0.707107 -7587,0.707107,0.000000,0.000000,0.707107 -7588,0.707107,0.000000,0.000000,0.707107 -7589,0.707107,0.000000,0.000000,0.707107 -7590,0.707107,0.000000,0.000000,0.707107 -7591,0.707107,0.000000,0.000000,0.707107 -7592,0.707107,0.000000,0.000000,0.707107 -7593,0.707107,0.000000,0.000000,0.707107 -7594,0.707107,0.000000,0.000000,0.707107 -7595,0.707107,0.000000,0.000000,0.707107 -7596,0.707107,0.000000,0.000000,0.707107 -7597,0.707107,0.000000,0.000000,0.707107 -7598,0.707107,0.000000,0.000000,0.707107 -7599,0.707107,0.000000,0.000000,0.707107 -7600,0.707107,0.000000,0.000000,0.707107 -7601,0.707107,0.000000,0.000000,0.707107 -7602,0.707107,0.000000,0.000000,0.707107 -7603,0.707107,0.000000,0.000000,0.707107 -7604,0.707107,0.000000,0.000000,0.707107 -7605,0.707107,0.000000,0.000000,0.707107 -7606,0.707107,0.000000,0.000000,0.707107 -7607,0.707107,0.000000,0.000000,0.707107 -7608,0.707107,0.000000,0.000000,0.707107 -7609,0.707107,0.000000,0.000000,0.707107 -7610,0.707107,0.000000,0.000000,0.707107 -7611,0.707107,0.000000,0.000000,0.707107 -7612,0.707107,0.000000,0.000000,0.707107 -7613,0.707107,0.000000,0.000000,0.707107 -7614,0.707107,0.000000,0.000000,0.707107 -7615,0.707107,0.000000,0.000000,0.707107 -7616,0.707107,0.000000,0.000000,0.707107 -7617,0.707107,0.000000,0.000000,0.707107 -7618,0.707107,0.000000,0.000000,0.707107 -7619,0.707107,0.000000,0.000000,0.707107 -7620,0.707107,0.000000,0.000000,0.707107 -7621,0.707107,0.000000,0.000000,0.707107 -7622,0.707107,0.000000,0.000000,0.707107 -7623,0.707107,0.000000,0.000000,0.707107 -7624,0.707107,0.000000,0.000000,0.707107 -7625,0.707107,0.000000,0.000000,0.707107 -7626,0.707107,0.000000,0.000000,0.707107 -7627,0.707107,0.000000,0.000000,0.707107 -7628,0.707107,0.000000,0.000000,0.707107 -7629,0.707107,0.000000,0.000000,0.707107 -7630,0.707107,0.000000,0.000000,0.707107 -7631,0.707107,0.000000,0.000000,0.707107 -7632,0.707107,0.000000,0.000000,0.707107 -7633,0.707107,0.000000,0.000000,0.707107 -7634,0.707107,0.000000,0.000000,0.707107 -7635,0.707107,0.000000,0.000000,0.707107 -7636,0.707107,0.000000,0.000000,0.707107 -7637,0.707107,0.000000,0.000000,0.707107 -7638,0.707107,0.000000,0.000000,0.707107 -7639,0.707107,0.000000,0.000000,0.707107 -7640,0.707107,0.000000,0.000000,0.707107 -7641,0.707107,0.000000,0.000000,0.707107 -7642,0.707107,0.000000,0.000000,0.707107 -7643,0.707107,0.000000,0.000000,0.707107 -7644,0.707107,0.000000,0.000000,0.707107 -7645,0.707107,0.000000,0.000000,0.707107 -7646,0.707107,0.000000,0.000000,0.707107 -7647,0.707107,0.000000,0.000000,0.707107 -7648,0.707107,0.000000,0.000000,0.707107 -7649,0.707107,0.000000,0.000000,0.707107 -7650,0.707107,0.000000,0.000000,0.707107 -7651,0.707107,0.000000,0.000000,0.707107 -7652,0.707107,0.000000,0.000000,0.707107 -7653,0.707107,0.000000,0.000000,0.707107 -7654,0.707107,0.000000,0.000000,0.707107 -7655,0.707107,0.000000,0.000000,0.707107 -7656,0.707107,0.000000,0.000000,0.707107 -7657,0.707107,0.000000,0.000000,0.707107 -7658,0.707107,0.000000,0.000000,0.707107 -7659,0.707107,0.000000,0.000000,0.707107 -7660,0.707107,0.000000,0.000000,0.707107 -7661,0.707107,0.000000,0.000000,0.707107 -7662,0.707107,0.000000,0.000000,0.707107 -7663,0.707107,0.000000,0.000000,0.707107 -7664,0.707107,0.000000,0.000000,0.707107 -7665,0.707107,0.000000,0.000000,0.707107 -7666,0.707107,0.000000,0.000000,0.707107 -7667,0.707107,0.000000,0.000000,0.707107 -7668,0.707107,0.000000,0.000000,0.707107 -7669,0.707107,0.000000,0.000000,0.707107 -7670,0.707107,0.000000,0.000000,0.707107 -7671,0.707107,0.000000,0.000000,0.707107 -7672,0.707107,0.000000,0.000000,0.707107 -7673,0.707107,0.000000,0.000000,0.707107 -7674,0.707107,0.000000,0.000000,0.707107 -7675,0.707107,0.000000,0.000000,0.707107 -7676,0.707107,0.000000,0.000000,0.707107 -7677,0.707107,0.000000,0.000000,0.707107 -7678,0.707107,0.000000,0.000000,0.707107 -7679,0.707107,0.000000,0.000000,0.707107 -7680,0.707107,0.000000,0.000000,0.707107 -7681,0.707107,0.000000,0.000000,0.707107 -7682,0.707107,0.000000,0.000000,0.707107 -7683,0.707107,0.000000,0.000000,0.707107 -7684,0.707107,0.000000,0.000000,0.707107 -7685,0.707107,0.000000,0.000000,0.707107 -7686,0.707107,0.000000,0.000000,0.707107 -7687,0.707107,0.000000,0.000000,0.707107 -7688,0.707107,0.000000,0.000000,0.707107 -7689,0.707107,0.000000,0.000000,0.707107 -7690,0.707107,0.000000,0.000000,0.707107 -7691,0.707107,0.000000,0.000000,0.707107 -7692,0.707107,0.000000,0.000000,0.707107 -7693,0.707107,0.000000,0.000000,0.707107 -7694,0.707107,0.000000,0.000000,0.707107 -7695,0.707107,0.000000,0.000000,0.707107 -7696,0.707107,0.000000,0.000000,0.707107 -7697,0.707107,0.000000,0.000000,0.707107 -7698,0.707107,0.000000,0.000000,0.707107 -7699,0.707107,0.000000,0.000000,0.707107 -7700,0.707107,0.000000,0.000000,0.707107 -7701,0.707107,0.000000,0.000000,0.707107 -7702,0.707107,0.000000,0.000000,0.707107 -7703,0.707107,0.000000,0.000000,0.707107 -7704,0.707107,0.000000,0.000000,0.707107 -7705,0.707107,0.000000,0.000000,0.707107 -7706,0.707107,0.000000,0.000000,0.707107 -7707,0.707107,0.000000,0.000000,0.707107 -7708,0.707107,0.000000,0.000000,0.707107 -7709,0.707107,0.000000,0.000000,0.707107 -7710,0.707107,0.000000,0.000000,0.707107 -7711,0.707107,0.000000,0.000000,0.707107 -7712,0.707107,0.000000,0.000000,0.707107 -7713,0.707107,0.000000,0.000000,0.707107 -7714,0.707107,0.000000,0.000000,0.707107 -7715,0.707107,0.000000,0.000000,0.707107 -7716,0.707107,0.000000,0.000000,0.707107 -7717,0.707107,0.000000,0.000000,0.707107 -7718,0.707107,0.000000,0.000000,0.707107 -7719,0.707107,0.000000,0.000000,0.707107 -7720,0.707107,0.000000,0.000000,0.707107 -7721,0.707107,0.000000,0.000000,0.707107 -7722,0.707107,0.000000,0.000000,0.707107 -7723,0.707107,0.000000,0.000000,0.707107 -7724,0.707107,0.000000,0.000000,0.707107 -7725,0.707107,0.000000,0.000000,0.707107 -7726,0.707107,0.000000,0.000000,0.707107 -7727,0.707107,0.000000,0.000000,0.707107 -7728,0.707107,0.000000,0.000000,0.707107 -7729,0.707107,0.000000,0.000000,0.707107 -7730,0.707107,0.000000,0.000000,0.707107 -7731,0.707107,0.000000,0.000000,0.707107 -7732,0.707107,0.000000,0.000000,0.707107 -7733,0.707107,0.000000,0.000000,0.707107 -7734,0.707107,0.000000,0.000000,0.707107 -7735,0.707107,0.000000,0.000000,0.707107 -7736,0.707107,0.000000,0.000000,0.707107 -7737,0.707107,0.000000,0.000000,0.707107 -7738,0.707107,0.000000,0.000000,0.707107 -7739,0.707107,0.000000,0.000000,0.707107 -7740,0.707107,0.000000,0.000000,0.707107 -7741,0.707107,0.000000,0.000000,0.707107 -7742,0.707107,0.000000,0.000000,0.707107 -7743,0.707107,0.000000,0.000000,0.707107 -7744,0.707107,0.000000,0.000000,0.707107 -7745,0.707107,0.000000,0.000000,0.707107 -7746,0.707107,0.000000,0.000000,0.707107 -7747,0.707107,0.000000,0.000000,0.707107 -7748,0.707107,0.000000,0.000000,0.707107 -7749,0.707107,0.000000,0.000000,0.707107 -7750,0.707107,0.000000,0.000000,0.707107 -7751,0.707107,0.000000,0.000000,0.707107 -7752,0.707107,0.000000,0.000000,0.707107 -7753,0.707107,0.000000,0.000000,0.707107 -7754,0.707107,0.000000,0.000000,0.707107 -7755,0.707107,0.000000,0.000000,0.707107 -7756,0.707107,0.000000,0.000000,0.707107 -7757,0.707107,0.000000,0.000000,0.707107 -7758,0.707107,0.000000,0.000000,0.707107 -7759,0.707107,0.000000,0.000000,0.707107 -7760,0.707107,0.000000,0.000000,0.707107 -7761,0.707107,0.000000,0.000000,0.707107 -7762,0.707107,0.000000,0.000000,0.707107 -7763,0.707107,0.000000,0.000000,0.707107 -7764,0.707107,0.000000,0.000000,0.707107 -7765,0.707107,0.000000,0.000000,0.707107 -7766,0.707107,0.000000,0.000000,0.707107 -7767,0.707107,0.000000,0.000000,0.707107 -7768,0.707107,0.000000,0.000000,0.707107 -7769,0.707107,0.000000,0.000000,0.707107 -7770,0.707107,0.000000,0.000000,0.707107 -7771,0.707107,0.000000,0.000000,0.707107 -7772,0.707107,0.000000,0.000000,0.707107 -7773,0.707107,0.000000,0.000000,0.707107 -7774,0.707107,0.000000,0.000000,0.707107 -7775,0.707107,0.000000,0.000000,0.707107 -7776,0.707107,0.000000,0.000000,0.707107 -7777,0.707107,0.000000,0.000000,0.707107 -7778,0.707107,0.000000,0.000000,0.707107 -7779,0.707107,0.000000,0.000000,0.707107 -7780,0.707107,0.000000,0.000000,0.707107 -7781,0.707107,0.000000,0.000000,0.707107 -7782,0.707107,0.000000,0.000000,0.707107 -7783,0.707107,0.000000,0.000000,0.707107 -7784,0.707107,0.000000,0.000000,0.707107 -7785,0.707107,0.000000,0.000000,0.707107 -7786,0.707107,0.000000,0.000000,0.707107 -7787,0.707107,0.000000,0.000000,0.707107 -7788,0.707107,0.000000,0.000000,0.707107 -7789,0.707107,0.000000,0.000000,0.707107 -7790,0.707107,0.000000,0.000000,0.707107 -7791,0.707107,0.000000,0.000000,0.707107 -7792,0.707107,0.000000,0.000000,0.707107 -7793,0.707107,0.000000,0.000000,0.707107 -7794,0.707107,0.000000,0.000000,0.707107 -7795,0.707107,0.000000,0.000000,0.707107 -7796,0.707107,0.000000,0.000000,0.707107 -7797,0.707107,0.000000,0.000000,0.707107 -7798,0.707107,0.000000,0.000000,0.707107 -7799,0.707107,0.000000,0.000000,0.707107 -7800,0.707107,0.000000,0.000000,0.707107 -7801,0.707107,0.000000,0.000000,0.707107 -7802,0.707107,0.000000,0.000000,0.707107 -7803,0.707107,0.000000,0.000000,0.707107 -7804,0.707107,0.000000,0.000000,0.707107 -7805,0.707107,0.000000,0.000000,0.707107 -7806,0.707107,0.000000,0.000000,0.707107 -7807,0.707107,0.000000,0.000000,0.707107 -7808,0.707107,0.000000,0.000000,0.707107 -7809,0.707107,0.000000,0.000000,0.707107 -7810,0.707107,0.000000,0.000000,0.707107 -7811,0.707107,0.000000,0.000000,0.707107 -7812,0.707107,0.000000,0.000000,0.707107 -7813,0.707107,0.000000,0.000000,0.707107 -7814,0.707107,0.000000,0.000000,0.707107 -7815,0.707107,0.000000,0.000000,0.707107 -7816,0.707107,0.000000,0.000000,0.707107 -7817,0.707107,0.000000,0.000000,0.707107 -7818,0.707107,0.000000,0.000000,0.707107 -7819,0.707107,0.000000,0.000000,0.707107 -7820,0.707107,0.000000,0.000000,0.707107 -7821,0.707107,0.000000,0.000000,0.707107 -7822,0.707107,0.000000,0.000000,0.707107 -7823,0.707107,0.000000,0.000000,0.707107 -7824,0.707107,0.000000,0.000000,0.707107 -7825,0.707107,0.000000,0.000000,0.707107 -7826,0.707107,0.000000,0.000000,0.707107 -7827,0.707107,0.000000,0.000000,0.707107 -7828,0.707107,0.000000,0.000000,0.707107 -7829,0.707107,0.000000,0.000000,0.707107 -7830,0.707107,0.000000,0.000000,0.707107 -7831,0.707107,0.000000,0.000000,0.707107 -7832,0.707107,0.000000,0.000000,0.707107 -7833,0.707107,0.000000,0.000000,0.707107 -7834,0.707107,0.000000,0.000000,0.707107 -7835,0.707107,0.000000,0.000000,0.707107 -7836,0.707107,0.000000,0.000000,0.707107 -7837,0.707107,0.000000,0.000000,0.707107 -7838,0.707107,0.000000,0.000000,0.707107 -7839,0.707107,0.000000,0.000000,0.707107 -7840,0.707107,0.000000,0.000000,0.707107 -7841,0.707107,0.000000,0.000000,0.707107 -7842,0.707107,0.000000,0.000000,0.707107 -7843,0.707107,0.000000,0.000000,0.707107 -7844,0.707107,0.000000,0.000000,0.707107 -7845,0.707107,0.000000,0.000000,0.707107 -7846,0.707107,0.000000,0.000000,0.707107 -7847,0.707107,0.000000,0.000000,0.707107 -7848,0.707107,0.000000,0.000000,0.707107 -7849,0.707107,0.000000,0.000000,0.707107 -7850,0.707107,0.000000,0.000000,0.707107 -7851,0.707107,0.000000,0.000000,0.707107 -7852,0.707107,0.000000,0.000000,0.707107 -7853,0.707107,0.000000,0.000000,0.707107 -7854,0.707107,0.000000,0.000000,0.707107 -7855,0.707107,0.000000,0.000000,0.707107 -7856,0.707107,0.000000,0.000000,0.707107 -7857,0.707107,0.000000,0.000000,0.707107 -7858,0.707107,0.000000,0.000000,0.707107 -7859,0.707107,0.000000,0.000000,0.707107 -7860,0.707107,0.000000,0.000000,0.707107 -7861,0.707107,0.000000,0.000000,0.707107 -7862,0.707107,0.000000,0.000000,0.707107 -7863,0.707107,0.000000,0.000000,0.707107 -7864,0.707107,0.000000,0.000000,0.707107 -7865,0.707107,0.000000,0.000000,0.707107 -7866,0.707107,0.000000,0.000000,0.707107 -7867,0.707107,0.000000,0.000000,0.707107 -7868,0.707107,0.000000,0.000000,0.707107 -7869,0.707107,0.000000,0.000000,0.707107 -7870,0.707107,0.000000,0.000000,0.707107 -7871,0.707107,0.000000,0.000000,0.707107 -7872,0.707107,0.000000,0.000000,0.707107 -7873,0.707107,0.000000,0.000000,0.707107 -7874,0.707107,0.000000,0.000000,0.707107 -7875,0.707107,0.000000,0.000000,0.707107 -7876,0.707107,0.000000,0.000000,0.707107 -7877,0.707107,0.000000,0.000000,0.707107 -7878,0.707107,0.000000,0.000000,0.707107 -7879,0.707107,0.000000,0.000000,0.707107 -7880,0.707107,0.000000,0.000000,0.707107 -7881,0.707107,0.000000,0.000000,0.707107 -7882,0.707107,0.000000,0.000000,0.707107 -7883,0.707107,0.000000,0.000000,0.707107 -7884,0.707107,0.000000,0.000000,0.707107 -7885,0.707107,0.000000,0.000000,0.707107 -7886,0.707107,0.000000,0.000000,0.707107 -7887,0.707107,0.000000,0.000000,0.707107 -7888,0.707107,0.000000,0.000000,0.707107 -7889,0.707107,0.000000,0.000000,0.707107 -7890,0.707107,0.000000,0.000000,0.707107 -7891,0.707107,0.000000,0.000000,0.707107 -7892,0.707107,0.000000,0.000000,0.707107 -7893,0.707107,0.000000,0.000000,0.707107 -7894,0.707107,0.000000,0.000000,0.707107 -7895,0.707107,0.000000,0.000000,0.707107 -7896,0.707107,0.000000,0.000000,0.707107 -7897,0.707107,0.000000,0.000000,0.707107 -7898,0.707107,0.000000,0.000000,0.707107 -7899,0.707107,0.000000,0.000000,0.707107 -7900,0.707107,0.000000,0.000000,0.707107 -7901,0.707107,0.000000,0.000000,0.707107 -7902,0.707107,0.000000,0.000000,0.707107 -7903,0.707107,0.000000,0.000000,0.707107 -7904,0.707107,0.000000,0.000000,0.707107 -7905,0.707107,0.000000,0.000000,0.707107 -7906,0.707107,0.000000,0.000000,0.707107 -7907,0.707107,0.000000,0.000000,0.707107 -7908,0.707107,0.000000,0.000000,0.707107 -7909,0.707107,0.000000,0.000000,0.707107 -7910,0.707107,0.000000,0.000000,0.707107 -7911,0.707107,0.000000,0.000000,0.707107 -7912,0.707107,0.000000,0.000000,0.707107 -7913,0.707107,0.000000,0.000000,0.707107 -7914,0.707107,0.000000,0.000000,0.707107 -7915,0.707107,0.000000,0.000000,0.707107 -7916,0.707107,0.000000,0.000000,0.707107 -7917,0.707107,0.000000,0.000000,0.707107 -7918,0.707107,0.000000,0.000000,0.707107 -7919,0.707107,0.000000,0.000000,0.707107 -7920,0.707107,0.000000,0.000000,0.707107 -7921,0.707107,0.000000,0.000000,0.707107 -7922,0.707107,0.000000,0.000000,0.707107 -7923,0.707107,0.000000,0.000000,0.707107 -7924,0.707107,0.000000,0.000000,0.707107 -7925,0.707107,0.000000,0.000000,0.707107 -7926,0.707107,0.000000,0.000000,0.707107 -7927,0.707107,0.000000,0.000000,0.707107 -7928,0.707107,0.000000,0.000000,0.707107 -7929,0.707107,0.000000,0.000000,0.707107 -7930,0.707107,0.000000,0.000000,0.707107 -7931,0.707107,0.000000,0.000000,0.707107 -7932,0.707107,0.000000,0.000000,0.707107 -7933,0.707107,0.000000,0.000000,0.707107 -7934,0.707107,0.000000,0.000000,0.707107 -7935,0.707107,0.000000,0.000000,0.707107 -7936,0.707107,0.000000,0.000000,0.707107 -7937,0.707107,0.000000,0.000000,0.707107 -7938,0.707107,0.000000,0.000000,0.707107 -7939,0.707107,0.000000,0.000000,0.707107 -7940,0.707107,0.000000,0.000000,0.707107 -7941,0.707107,0.000000,0.000000,0.707107 -7942,0.707107,0.000000,0.000000,0.707107 -7943,0.707107,0.000000,0.000000,0.707107 -7944,0.707107,0.000000,0.000000,0.707107 -7945,0.707107,0.000000,0.000000,0.707107 -7946,0.707107,0.000000,0.000000,0.707107 -7947,0.707107,0.000000,0.000000,0.707107 -7948,0.707107,0.000000,0.000000,0.707107 -7949,0.707107,0.000000,0.000000,0.707107 -7950,0.707107,0.000000,0.000000,0.707107 -7951,0.707107,0.000000,0.000000,0.707107 -7952,0.707107,0.000000,0.000000,0.707107 -7953,0.707107,0.000000,0.000000,0.707107 -7954,0.707107,0.000000,0.000000,0.707107 -7955,0.707107,0.000000,0.000000,0.707107 -7956,0.707107,0.000000,0.000000,0.707107 -7957,0.707107,0.000000,0.000000,0.707107 -7958,0.707107,0.000000,0.000000,0.707107 -7959,0.707107,0.000000,0.000000,0.707107 -7960,0.707107,0.000000,0.000000,0.707107 -7961,0.707107,0.000000,0.000000,0.707107 -7962,0.707107,0.000000,0.000000,0.707107 -7963,0.707107,0.000000,0.000000,0.707107 -7964,0.707107,0.000000,0.000000,0.707107 -7965,0.707107,0.000000,0.000000,0.707107 -7966,0.707107,0.000000,0.000000,0.707107 -7967,0.707107,0.000000,0.000000,0.707107 -7968,0.707107,0.000000,0.000000,0.707107 -7969,0.707107,0.000000,0.000000,0.707107 -7970,0.707107,0.000000,0.000000,0.707107 -7971,0.707107,0.000000,0.000000,0.707107 -7972,0.707107,0.000000,0.000000,0.707107 -7973,0.707107,0.000000,0.000000,0.707107 -7974,0.707107,0.000000,0.000000,0.707107 -7975,0.707107,0.000000,0.000000,0.707107 -7976,0.707107,0.000000,0.000000,0.707107 -7977,0.707107,0.000000,0.000000,0.707107 -7978,0.707107,0.000000,0.000000,0.707107 -7979,0.707107,0.000000,0.000000,0.707107 -7980,0.707107,0.000000,0.000000,0.707107 -7981,0.707107,0.000000,0.000000,0.707107 -7982,0.707107,0.000000,0.000000,0.707107 -7983,0.707107,0.000000,0.000000,0.707107 -7984,0.707107,0.000000,0.000000,0.707107 -7985,0.707107,0.000000,0.000000,0.707107 -7986,0.707107,0.000000,0.000000,0.707107 -7987,0.707107,0.000000,0.000000,0.707107 -7988,0.707107,0.000000,0.000000,0.707107 -7989,0.707107,0.000000,0.000000,0.707107 -7990,0.707107,0.000000,0.000000,0.707107 -7991,0.707107,0.000000,0.000000,0.707107 -7992,0.707107,0.000000,0.000000,0.707107 -7993,0.707107,0.000000,0.000000,0.707107 -7994,0.707107,0.000000,0.000000,0.707107 -7995,0.707107,0.000000,0.000000,0.707107 -7996,0.707107,0.000000,0.000000,0.707107 -7997,0.707107,0.000000,0.000000,0.707107 -7998,0.707107,0.000000,0.000000,0.707107 -7999,0.707107,0.000000,0.000000,0.707107 -8000,0.707107,0.000000,0.000000,0.707107 -8001,0.707107,0.000000,0.000000,0.707107 -8002,0.707107,0.000000,0.000000,0.707107 -8003,0.707107,0.000000,0.000000,0.707107 -8004,0.707107,0.000000,0.000000,0.707107 -8005,0.707107,0.000000,0.000000,0.707107 -8006,0.707107,0.000000,0.000000,0.707107 -8007,0.707107,0.000000,0.000000,0.707107 -8008,0.707107,0.000000,0.000000,0.707107 -8009,0.707107,0.000000,0.000000,0.707107 -8010,0.707107,0.000000,0.000000,0.707107 -8011,0.707107,0.000000,0.000000,0.707107 -8012,0.707107,0.000000,0.000000,0.707107 -8013,0.707107,0.000000,0.000000,0.707107 -8014,0.707107,0.000000,0.000000,0.707107 -8015,0.707107,0.000000,0.000000,0.707107 -8016,0.707107,0.000000,0.000000,0.707107 -8017,0.707107,0.000000,0.000000,0.707107 -8018,0.707107,0.000000,0.000000,0.707107 -8019,0.707107,0.000000,0.000000,0.707107 -8020,0.707107,0.000000,0.000000,0.707107 -8021,0.707107,0.000000,0.000000,0.707107 -8022,0.707107,0.000000,0.000000,0.707107 -8023,0.707107,0.000000,0.000000,0.707107 -8024,0.707107,0.000000,0.000000,0.707107 -8025,0.707107,0.000000,0.000000,0.707107 -8026,0.707107,0.000000,0.000000,0.707107 -8027,0.707107,0.000000,0.000000,0.707107 -8028,0.707107,0.000000,0.000000,0.707107 -8029,0.707107,0.000000,0.000000,0.707107 -8030,0.707107,0.000000,0.000000,0.707107 -8031,0.707107,0.000000,0.000000,0.707107 -8032,0.707107,0.000000,0.000000,0.707107 -8033,0.707107,0.000000,0.000000,0.707107 -8034,0.707107,0.000000,0.000000,0.707107 -8035,0.707107,0.000000,0.000000,0.707107 -8036,0.707107,0.000000,0.000000,0.707107 -8037,0.707107,0.000000,0.000000,0.707107 -8038,0.707107,0.000000,0.000000,0.707107 -8039,0.707107,0.000000,0.000000,0.707107 -8040,0.707107,0.000000,0.000000,0.707107 -8041,0.707107,0.000000,0.000000,0.707107 -8042,0.707107,0.000000,0.000000,0.707107 -8043,0.707107,0.000000,0.000000,0.707107 -8044,0.707107,0.000000,0.000000,0.707107 -8045,0.707107,0.000000,0.000000,0.707107 -8046,0.707107,0.000000,0.000000,0.707107 -8047,0.707107,0.000000,0.000000,0.707107 -8048,0.707107,0.000000,0.000000,0.707107 -8049,0.707107,0.000000,0.000000,0.707107 -8050,0.707107,0.000000,0.000000,0.707107 -8051,0.707107,0.000000,0.000000,0.707107 -8052,0.707107,0.000000,0.000000,0.707107 -8053,0.707107,0.000000,0.000000,0.707107 -8054,0.707107,0.000000,0.000000,0.707107 -8055,0.707107,0.000000,0.000000,0.707107 -8056,0.707107,0.000000,0.000000,0.707107 -8057,0.707107,0.000000,0.000000,0.707107 -8058,0.707107,0.000000,0.000000,0.707107 -8059,0.707107,0.000000,0.000000,0.707107 -8060,0.707107,0.000000,0.000000,0.707107 -8061,0.707107,0.000000,0.000000,0.707107 -8062,0.707107,0.000000,0.000000,0.707107 -8063,0.707107,0.000000,0.000000,0.707107 -8064,0.707107,0.000000,0.000000,0.707107 -8065,0.707107,0.000000,0.000000,0.707107 -8066,0.707107,0.000000,0.000000,0.707107 -8067,0.707107,0.000000,0.000000,0.707107 -8068,0.707107,0.000000,0.000000,0.707107 -8069,0.707107,0.000000,0.000000,0.707107 -8070,0.707107,0.000000,0.000000,0.707107 -8071,0.707107,0.000000,0.000000,0.707107 -8072,0.707107,0.000000,0.000000,0.707107 -8073,0.707107,0.000000,0.000000,0.707107 -8074,0.707107,0.000000,0.000000,0.707107 -8075,0.707107,0.000000,0.000000,0.707107 -8076,0.707107,0.000000,0.000000,0.707107 -8077,0.707107,0.000000,0.000000,0.707107 -8078,0.707107,0.000000,0.000000,0.707107 -8079,0.707107,0.000000,0.000000,0.707107 -8080,0.707107,0.000000,0.000000,0.707107 -8081,0.707107,0.000000,0.000000,0.707107 -8082,0.707107,0.000000,0.000000,0.707107 -8083,0.707107,0.000000,0.000000,0.707107 -8084,0.707107,0.000000,0.000000,0.707107 -8085,0.707107,0.000000,0.000000,0.707107 -8086,0.707107,0.000000,0.000000,0.707107 -8087,0.707107,0.000000,0.000000,0.707107 -8088,0.707107,0.000000,0.000000,0.707107 -8089,0.707107,0.000000,0.000000,0.707107 -8090,0.707107,0.000000,0.000000,0.707107 -8091,0.707107,0.000000,0.000000,0.707107 -8092,0.707107,0.000000,0.000000,0.707107 -8093,0.707107,0.000000,0.000000,0.707107 -8094,0.707107,0.000000,0.000000,0.707107 -8095,0.707107,0.000000,0.000000,0.707107 -8096,0.707107,0.000000,0.000000,0.707107 -8097,0.707107,0.000000,0.000000,0.707107 -8098,0.707107,0.000000,0.000000,0.707107 -8099,0.707107,0.000000,0.000000,0.707107 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.996195,0.000000,0.000000,0.087156 +0.995989,0.000000,0.000000,0.089474 +0.995778,0.000000,0.000000,0.091791 +0.995562,0.000000,0.000000,0.094108 +0.995340,0.000000,0.000000,0.096425 +0.995113,0.000000,0.000000,0.098741 +0.994881,0.000000,0.000000,0.101056 +0.994643,0.000000,0.000000,0.103371 +0.994400,0.000000,0.000000,0.105686 +0.994151,0.000000,0.000000,0.107999 +0.993897,0.000000,0.000000,0.110313 +0.993638,0.000000,0.000000,0.112625 +0.993373,0.000000,0.000000,0.114937 +0.993103,0.000000,0.000000,0.117249 +0.992827,0.000000,0.000000,0.119559 +0.992546,0.000000,0.000000,0.121869 +0.992260,0.000000,0.000000,0.124179 +0.991968,0.000000,0.000000,0.126488 +0.991671,0.000000,0.000000,0.128796 +0.991369,0.000000,0.000000,0.131103 +0.991061,0.000000,0.000000,0.133410 +0.990748,0.000000,0.000000,0.135716 +0.990429,0.000000,0.000000,0.138021 +0.990105,0.000000,0.000000,0.140325 +0.989776,0.000000,0.000000,0.142629 +0.989442,0.000000,0.000000,0.144932 +0.989102,0.000000,0.000000,0.147234 +0.988756,0.000000,0.000000,0.149535 +0.988406,0.000000,0.000000,0.151836 +0.988050,0.000000,0.000000,0.154136 +0.987688,0.000000,0.000000,0.156434 +0.987322,0.000000,0.000000,0.158732 +0.986950,0.000000,0.000000,0.161030 +0.986572,0.000000,0.000000,0.163326 +0.986189,0.000000,0.000000,0.165621 +0.985801,0.000000,0.000000,0.167916 +0.985408,0.000000,0.000000,0.170209 +0.985009,0.000000,0.000000,0.172502 +0.984605,0.000000,0.000000,0.174794 +0.984196,0.000000,0.000000,0.177085 +0.983781,0.000000,0.000000,0.179375 +0.983361,0.000000,0.000000,0.181663 +0.982935,0.000000,0.000000,0.183951 +0.982505,0.000000,0.000000,0.186238 +0.982069,0.000000,0.000000,0.188524 +0.981627,0.000000,0.000000,0.190809 +0.981180,0.000000,0.000000,0.193093 +0.980728,0.000000,0.000000,0.195376 +0.980271,0.000000,0.000000,0.197657 +0.979809,0.000000,0.000000,0.199938 +0.979341,0.000000,0.000000,0.202218 +0.978867,0.000000,0.000000,0.204496 +0.978389,0.000000,0.000000,0.206773 +0.977905,0.000000,0.000000,0.209050 +0.977416,0.000000,0.000000,0.211325 +0.976921,0.000000,0.000000,0.213599 +0.976422,0.000000,0.000000,0.215872 +0.975917,0.000000,0.000000,0.218143 +0.975406,0.000000,0.000000,0.220414 +0.974891,0.000000,0.000000,0.222683 +0.974370,0.000000,0.000000,0.224951 +0.973844,0.000000,0.000000,0.227218 +0.973313,0.000000,0.000000,0.229484 +0.972776,0.000000,0.000000,0.231748 +0.972234,0.000000,0.000000,0.234011 +0.971687,0.000000,0.000000,0.236273 +0.971134,0.000000,0.000000,0.238533 +0.970577,0.000000,0.000000,0.240793 +0.970014,0.000000,0.000000,0.243051 +0.969445,0.000000,0.000000,0.245307 +0.968872,0.000000,0.000000,0.247563 +0.968293,0.000000,0.000000,0.249817 +0.967709,0.000000,0.000000,0.252069 +0.967120,0.000000,0.000000,0.254321 +0.966526,0.000000,0.000000,0.256571 +0.965926,0.000000,0.000000,0.258819 +0.965321,0.000000,0.000000,0.261066 +0.964711,0.000000,0.000000,0.263312 +0.964095,0.000000,0.000000,0.265556 +0.963475,0.000000,0.000000,0.267799 +0.962849,0.000000,0.000000,0.270040 +0.962218,0.000000,0.000000,0.272280 +0.961582,0.000000,0.000000,0.274519 +0.960940,0.000000,0.000000,0.276756 +0.960294,0.000000,0.000000,0.278991 +0.959642,0.000000,0.000000,0.281225 +0.958985,0.000000,0.000000,0.283457 +0.958323,0.000000,0.000000,0.285688 +0.957655,0.000000,0.000000,0.287918 +0.956983,0.000000,0.000000,0.290145 +0.956305,0.000000,0.000000,0.292372 +0.955622,0.000000,0.000000,0.294596 +0.954934,0.000000,0.000000,0.296819 +0.954240,0.000000,0.000000,0.299041 +0.953542,0.000000,0.000000,0.301261 +0.952838,0.000000,0.000000,0.303479 +0.952129,0.000000,0.000000,0.305695 +0.951415,0.000000,0.000000,0.307910 +0.950696,0.000000,0.000000,0.310123 +0.949972,0.000000,0.000000,0.312335 +0.949243,0.000000,0.000000,0.314545 +0.948508,0.000000,0.000000,0.316753 +0.947768,0.000000,0.000000,0.318959 +0.947024,0.000000,0.000000,0.321164 +0.946274,0.000000,0.000000,0.323367 +0.945519,0.000000,0.000000,0.325568 +0.944758,0.000000,0.000000,0.327768 +0.943993,0.000000,0.000000,0.329965 +0.943223,0.000000,0.000000,0.332161 +0.942447,0.000000,0.000000,0.334355 +0.941667,0.000000,0.000000,0.336547 +0.940881,0.000000,0.000000,0.338738 +0.940090,0.000000,0.000000,0.340927 +0.939294,0.000000,0.000000,0.343113 +0.938493,0.000000,0.000000,0.345298 +0.937687,0.000000,0.000000,0.347481 +0.936876,0.000000,0.000000,0.349662 +0.936060,0.000000,0.000000,0.351842 +0.935238,0.000000,0.000000,0.354019 +0.934412,0.000000,0.000000,0.356194 +0.933580,0.000000,0.000000,0.358368 +0.932744,0.000000,0.000000,0.360540 +0.931902,0.000000,0.000000,0.362709 +0.931056,0.000000,0.000000,0.364877 +0.930204,0.000000,0.000000,0.367042 +0.929348,0.000000,0.000000,0.369206 +0.928486,0.000000,0.000000,0.371368 +0.927619,0.000000,0.000000,0.373528 +0.926747,0.000000,0.000000,0.375685 +0.925871,0.000000,0.000000,0.377841 +0.924989,0.000000,0.000000,0.379994 +0.924102,0.000000,0.000000,0.382146 +0.923210,0.000000,0.000000,0.384295 +0.922313,0.000000,0.000000,0.386443 +0.921412,0.000000,0.000000,0.388588 +0.920505,0.000000,0.000000,0.390731 +0.919593,0.000000,0.000000,0.392872 +0.918676,0.000000,0.000000,0.395011 +0.917755,0.000000,0.000000,0.397148 +0.916828,0.000000,0.000000,0.399283 +0.915896,0.000000,0.000000,0.401415 +0.914960,0.000000,0.000000,0.403545 +0.914018,0.000000,0.000000,0.405673 +0.913072,0.000000,0.000000,0.407799 +0.912120,0.000000,0.000000,0.409923 +0.911164,0.000000,0.000000,0.412045 +0.910202,0.000000,0.000000,0.414164 +0.909236,0.000000,0.000000,0.416281 +0.908265,0.000000,0.000000,0.418396 +0.907289,0.000000,0.000000,0.420508 +0.906308,0.000000,0.000000,0.422618 +0.905322,0.000000,0.000000,0.424726 +0.904331,0.000000,0.000000,0.426832 +0.903335,0.000000,0.000000,0.428935 +0.902335,0.000000,0.000000,0.431036 +0.901329,0.000000,0.000000,0.433135 +0.900319,0.000000,0.000000,0.435231 +0.899304,0.000000,0.000000,0.437325 +0.898283,0.000000,0.000000,0.439417 +0.897258,0.000000,0.000000,0.441506 +0.896229,0.000000,0.000000,0.443593 +0.895194,0.000000,0.000000,0.445677 +0.894154,0.000000,0.000000,0.447759 +0.893110,0.000000,0.000000,0.449839 +0.892061,0.000000,0.000000,0.451916 +0.891007,0.000000,0.000000,0.453990 +0.889948,0.000000,0.000000,0.456063 +0.888884,0.000000,0.000000,0.458132 +0.887815,0.000000,0.000000,0.460200 +0.886742,0.000000,0.000000,0.462265 +0.885664,0.000000,0.000000,0.464327 +0.884581,0.000000,0.000000,0.466387 +0.883493,0.000000,0.000000,0.468444 +0.882401,0.000000,0.000000,0.470499 +0.881303,0.000000,0.000000,0.472551 +0.880201,0.000000,0.000000,0.474600 +0.879095,0.000000,0.000000,0.476647 +0.877983,0.000000,0.000000,0.478692 +0.876867,0.000000,0.000000,0.480734 +0.875746,0.000000,0.000000,0.482773 +0.874620,0.000000,0.000000,0.484810 +0.873489,0.000000,0.000000,0.486844 +0.872354,0.000000,0.000000,0.488875 +0.871214,0.000000,0.000000,0.490904 +0.870069,0.000000,0.000000,0.492930 +0.868920,0.000000,0.000000,0.494953 +0.867765,0.000000,0.000000,0.496974 +0.866607,0.000000,0.000000,0.498992 +0.865443,0.000000,0.000000,0.501007 +0.864275,0.000000,0.000000,0.503020 +0.863102,0.000000,0.000000,0.505030 +0.861924,0.000000,0.000000,0.507037 +0.860742,0.000000,0.000000,0.509041 +0.859555,0.000000,0.000000,0.511043 +0.858364,0.000000,0.000000,0.513042 +0.857167,0.000000,0.000000,0.515038 +0.855966,0.000000,0.000000,0.517031 +0.854761,0.000000,0.000000,0.519022 +0.853551,0.000000,0.000000,0.521010 +0.852336,0.000000,0.000000,0.522995 +0.851117,0.000000,0.000000,0.524977 +0.849893,0.000000,0.000000,0.526956 +0.848664,0.000000,0.000000,0.528932 +0.847431,0.000000,0.000000,0.530906 +0.846193,0.000000,0.000000,0.532876 +0.844951,0.000000,0.000000,0.534844 +0.843704,0.000000,0.000000,0.536809 +0.842452,0.000000,0.000000,0.538771 +0.841196,0.000000,0.000000,0.540730 +0.839936,0.000000,0.000000,0.542686 +0.838671,0.000000,0.000000,0.544639 +0.837401,0.000000,0.000000,0.546589 +0.836127,0.000000,0.000000,0.548536 +0.834848,0.000000,0.000000,0.550481 +0.833565,0.000000,0.000000,0.552422 +0.832277,0.000000,0.000000,0.554360 +0.830984,0.000000,0.000000,0.556296 +0.829688,0.000000,0.000000,0.558228 +0.828386,0.000000,0.000000,0.560157 +0.827081,0.000000,0.000000,0.562083 +0.825770,0.000000,0.000000,0.564007 +0.824456,0.000000,0.000000,0.565927 +0.823136,0.000000,0.000000,0.567844 +0.821813,0.000000,0.000000,0.569758 +0.820485,0.000000,0.000000,0.571669 +0.819152,0.000000,0.000000,0.573576 +0.817815,0.000000,0.000000,0.575481 +0.816474,0.000000,0.000000,0.577383 +0.815128,0.000000,0.000000,0.579281 +0.813778,0.000000,0.000000,0.581176 +0.812423,0.000000,0.000000,0.583069 +0.811064,0.000000,0.000000,0.584958 +0.809700,0.000000,0.000000,0.586844 +0.808333,0.000000,0.000000,0.588726 +0.806960,0.000000,0.000000,0.590606 +0.805584,0.000000,0.000000,0.592482 +0.804203,0.000000,0.000000,0.594355 +0.802817,0.000000,0.000000,0.596225 +0.801428,0.000000,0.000000,0.598092 +0.800034,0.000000,0.000000,0.599955 +0.798636,0.000000,0.000000,0.601815 +0.797233,0.000000,0.000000,0.603672 +0.795826,0.000000,0.000000,0.605526 +0.794415,0.000000,0.000000,0.607376 +0.792999,0.000000,0.000000,0.609223 +0.791579,0.000000,0.000000,0.611067 +0.790155,0.000000,0.000000,0.612907 +0.788727,0.000000,0.000000,0.614744 +0.787294,0.000000,0.000000,0.616578 +0.785857,0.000000,0.000000,0.618408 +0.784416,0.000000,0.000000,0.620235 +0.782970,0.000000,0.000000,0.622059 +0.781520,0.000000,0.000000,0.623880 +0.780067,0.000000,0.000000,0.625697 +0.778608,0.000000,0.000000,0.627510 +0.777146,0.000000,0.000000,0.629320 +0.775679,0.000000,0.000000,0.631127 +0.774209,0.000000,0.000000,0.632931 +0.772734,0.000000,0.000000,0.634731 +0.771254,0.000000,0.000000,0.636527 +0.769771,0.000000,0.000000,0.638320 +0.768284,0.000000,0.000000,0.640110 +0.766792,0.000000,0.000000,0.641896 +0.765296,0.000000,0.000000,0.643679 +0.763796,0.000000,0.000000,0.645458 +0.762292,0.000000,0.000000,0.647233 +0.760784,0.000000,0.000000,0.649006 +0.759271,0.000000,0.000000,0.650774 +0.757755,0.000000,0.000000,0.652539 +0.756234,0.000000,0.000000,0.654301 +0.754710,0.000000,0.000000,0.656059 +0.753181,0.000000,0.000000,0.657814 +0.751648,0.000000,0.000000,0.659564 +0.750111,0.000000,0.000000,0.661312 +0.748570,0.000000,0.000000,0.663056 +0.747025,0.000000,0.000000,0.664796 +0.745476,0.000000,0.000000,0.666532 +0.743923,0.000000,0.000000,0.668265 +0.742366,0.000000,0.000000,0.669995 +0.740805,0.000000,0.000000,0.671721 +0.739239,0.000000,0.000000,0.673443 +0.737670,0.000000,0.000000,0.675161 +0.736097,0.000000,0.000000,0.676876 +0.734520,0.000000,0.000000,0.678587 +0.732939,0.000000,0.000000,0.680295 +0.731354,0.000000,0.000000,0.681998 +0.729765,0.000000,0.000000,0.683698 +0.728172,0.000000,0.000000,0.685395 +0.726575,0.000000,0.000000,0.687088 +0.724974,0.000000,0.000000,0.688776 +0.723369,0.000000,0.000000,0.690462 +0.721760,0.000000,0.000000,0.692143 +0.720148,0.000000,0.000000,0.693821 +0.718531,0.000000,0.000000,0.695495 +0.716911,0.000000,0.000000,0.697165 +0.715286,0.000000,0.000000,0.698832 +0.713658,0.000000,0.000000,0.700494 +0.712026,0.000000,0.000000,0.702153 +0.710390,0.000000,0.000000,0.703808 +0.708750,0.000000,0.000000,0.705459 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 +0.707107,0.000000,0.000000,0.707107 diff --git a/scripts/trajectories/linear-ypr-T15.0-w0.1-Euler.csv b/scripts/trajectories/linear-ypr-T15.0-w0.1-Euler.csv index a1e03b3648..b14d88b92b 100644 --- a/scripts/trajectories/linear-ypr-T15.0-w0.1-Euler.csv +++ b/scripts/trajectories/linear-ypr-T15.0-w0.1-Euler.csv @@ -1,3000 +1,3000 @@ -0, -3.000000, 0.000000, 0.000000, 0.000000 -1, -3.000000, 0.180060, 0.045015, 0.090030 -2, -3.000000, 0.360120, 0.090030, 0.180060 -3, -3.000000, 0.540180, 0.135045, 0.270090 -4, -3.000000, 0.720240, 0.180060, 0.360120 -5, -3.000000, 0.900300, 0.225075, 0.450150 -6, -3.000000, 1.080360, 0.270090, 0.540180 -7, -3.000000, 1.260420, 0.315105, 0.630210 -8, -3.000000, 1.440480, 0.360120, 0.720240 -9, -3.000000, 1.620540, 0.405135, 0.810270 -10, -3.000000, 1.800600, 0.450150, 0.900300 -11, -3.000000, 1.980660, 0.495165, 0.990330 -12, -3.000000, 2.160720, 0.540180, 1.080360 -13, -3.000000, 2.340780, 0.585195, 1.170390 -14, -3.000000, 2.520840, 0.630210, 1.260420 -15, -3.000000, 2.700900, 0.675225, 1.350450 -16, -3.000000, 2.880960, 0.720240, 1.440480 -17, -3.000000, 3.061020, 0.765255, 1.530510 -18, -3.000000, 3.241080, 0.810270, 1.620540 -19, -3.000000, 3.421140, 0.855285, 1.710570 -20, -3.000000, 3.601200, 0.900300, 1.800600 -21, -3.000000, 3.781260, 0.945315, 1.890630 -22, -3.000000, 3.961320, 0.990330, 1.980660 -23, -3.000000, 4.141380, 1.035345, 2.070690 -24, -3.000000, 4.321440, 1.080360, 2.160720 -25, -3.000000, 4.501501, 1.125375, 2.250750 -26, -3.000000, 4.681561, 1.170390, 2.340780 -27, -3.000000, 4.861621, 1.215405, 2.430810 -28, -3.000000, 5.041681, 1.260420, 2.520840 -29, -3.000000, 5.221741, 1.305435, 2.610870 -30, -3.000000, 5.401801, 1.350450, 2.700900 -31, -3.000000, 5.581861, 1.395465, 2.790930 -32, -3.000000, 5.761921, 1.440480, 2.880960 -33, -3.000000, 5.941981, 1.485495, 2.970990 -34, -3.000000, 6.122041, 1.530510, 3.061020 -35, -3.000000, 6.302101, 1.575525, 3.151050 -36, -3.000000, 6.482161, 1.620540, 3.241080 -37, -3.000000, 6.662221, 1.665555, 3.331110 -38, -3.000000, 6.842281, 1.710570, 3.421140 -39, -3.000000, 7.022341, 1.755585, 3.511170 -40, -3.000000, 7.202401, 1.800600, 3.601200 -41, -3.000000, 7.382461, 1.845615, 3.691230 -42, -3.000000, 7.562521, 1.890630, 3.781260 -43, -3.000000, 7.742581, 1.935645, 3.871290 -44, -3.000000, 7.922641, 1.980660, 3.961320 -45, -3.000000, 8.102701, 2.025675, 4.051350 -46, -3.000000, 8.282761, 2.070690, 4.141380 -47, -3.000000, 8.462821, 2.115705, 4.231410 -48, -3.000000, 8.642881, 2.160720, 4.321440 -49, -3.000000, 8.822941, 2.205735, 4.411470 -50, -3.000000, 9.003001, 2.250750, 4.501501 -51, -3.000000, 9.183061, 2.295765, 4.591531 -52, -3.000000, 9.363121, 2.340780, 4.681561 -53, -3.000000, 9.543181, 2.385795, 4.771591 -54, -3.000000, 9.723241, 2.430810, 4.861621 -55, -3.000000, 9.903301, 2.475825, 4.951651 -56, -3.000000, 10.083361, 2.520840, 5.041681 -57, -3.000000, 10.263421, 2.565855, 5.131711 -58, -3.000000, 10.443481, 2.610870, 5.221741 -59, -3.000000, 10.623541, 2.655885, 5.311771 -60, -3.000000, 10.803601, 2.700900, 5.401801 -61, -3.000000, 10.983661, 2.745915, 5.491831 -62, -3.000000, 11.163721, 2.790930, 5.581861 -63, -3.000000, 11.343781, 2.835945, 5.671891 -64, -3.000000, 11.523841, 2.880960, 5.761921 -65, -3.000000, 11.703901, 2.925975, 5.851951 -66, -3.000000, 11.883961, 2.970990, 5.941981 -67, -3.000000, 12.064021, 3.016005, 6.032011 -68, -3.000000, 12.244081, 3.061020, 6.122041 -69, -3.000000, 12.424141, 3.106035, 6.212071 -70, -3.000000, 12.604201, 3.151050, 6.302101 -71, -3.000000, 12.784261, 3.196065, 6.392131 -72, -3.000000, 12.964321, 3.241080, 6.482161 -73, -3.000000, 13.144381, 3.286095, 6.572191 -74, -3.000000, 13.324441, 3.331110, 6.662221 -75, -3.000000, 13.504502, 3.376125, 6.752251 -76, -3.000000, 13.684562, 3.421140, 6.842281 -77, -3.000000, 13.864622, 3.466155, 6.932311 -78, -3.000000, 14.044682, 3.511170, 7.022341 -79, -3.000000, 14.224742, 3.556185, 7.112371 -80, -3.000000, 14.404802, 3.601200, 7.202401 -81, -3.000000, 14.584862, 3.646215, 7.292431 -82, -3.000000, 14.764922, 3.691230, 7.382461 -83, -3.000000, 14.944982, 3.736245, 7.472491 -84, -3.000000, 15.125042, 3.781260, 7.562521 -85, -3.000000, 15.305102, 3.826275, 7.652551 -86, -3.000000, 15.485162, 3.871290, 7.742581 -87, -3.000000, 15.665222, 3.916305, 7.832611 -88, -3.000000, 15.845282, 3.961320, 7.922641 -89, -3.000000, 16.025342, 4.006335, 8.012671 -90, -3.000000, 16.205402, 4.051350, 8.102701 -91, -3.000000, 16.385462, 4.096365, 8.192731 -92, -3.000000, 16.565522, 4.141380, 8.282761 -93, -3.000000, 16.745582, 4.186395, 8.372791 -94, -3.000000, 16.925642, 4.231410, 8.462821 -95, -3.000000, 17.105702, 4.276425, 8.552851 -96, -3.000000, 17.285762, 4.321440, 8.642881 -97, -3.000000, 17.465822, 4.366455, 8.732911 -98, -3.000000, 17.645882, 4.411470, 8.822941 -99, -3.000000, 17.825942, 4.456485, 8.912971 -100, -3.000000, 18.006002, 4.501501, 9.003001 -101, -3.000000, 18.186062, 4.546516, 9.093031 -102, -3.000000, 18.366122, 4.591531, 9.183061 -103, -3.000000, 18.546182, 4.636546, 9.273091 -104, -3.000000, 18.726242, 4.681561, 9.363121 -105, -3.000000, 18.906302, 4.726576, 9.453151 -106, -3.000000, 19.086362, 4.771591, 9.543181 -107, -3.000000, 19.266422, 4.816606, 9.633211 -108, -3.000000, 19.446482, 4.861621, 9.723241 -109, -3.000000, 19.626542, 4.906636, 9.813271 -110, -3.000000, 19.806602, 4.951651, 9.903301 -111, -3.000000, 19.986662, 4.996666, 9.993331 -112, -3.000000, 20.166722, 5.041681, 10.083361 -113, -3.000000, 20.346782, 5.086696, 10.173391 -114, -3.000000, 20.526842, 5.131711, 10.263421 -115, -3.000000, 20.706902, 5.176726, 10.353451 -116, -3.000000, 20.886962, 5.221741, 10.443481 -117, -3.000000, 21.067022, 5.266756, 10.533511 -118, -3.000000, 21.247082, 5.311771, 10.623541 -119, -3.000000, 21.427142, 5.356786, 10.713571 -120, -3.000000, 21.607202, 5.401801, 10.803601 -121, -3.000000, 21.787262, 5.446816, 10.893631 -122, -3.000000, 21.967322, 5.491831, 10.983661 -123, -3.000000, 22.147382, 5.536846, 11.073691 -124, -3.000000, 22.327442, 5.581861, 11.163721 -125, -3.000000, 22.507503, 5.626876, 11.253751 -126, -3.000000, 22.687563, 5.671891, 11.343781 -127, -3.000000, 22.867623, 5.716906, 11.433811 -128, -3.000000, 23.047683, 5.761921, 11.523841 -129, -3.000000, 23.227743, 5.806936, 11.613871 -130, -3.000000, 23.407803, 5.851951, 11.703901 -131, -3.000000, 23.587863, 5.896966, 11.793931 -132, -3.000000, 23.767923, 5.941981, 11.883961 -133, -3.000000, 23.947983, 5.986996, 11.973991 -134, -3.000000, 24.128043, 6.032011, 12.064021 -135, -3.000000, 24.308103, 6.077026, 12.154051 -136, -3.000000, 24.488163, 6.122041, 12.244081 -137, -3.000000, 24.668223, 6.167056, 12.334111 -138, -3.000000, 24.848283, 6.212071, 12.424141 -139, -3.000000, 25.028343, 6.257086, 12.514171 -140, -3.000000, 25.208403, 6.302101, 12.604201 -141, -3.000000, 25.388463, 6.347116, 12.694231 -142, -3.000000, 25.568523, 6.392131, 12.784261 -143, -3.000000, 25.748583, 6.437146, 12.874291 -144, -3.000000, 25.928643, 6.482161, 12.964321 -145, -3.000000, 26.108703, 6.527176, 13.054351 -146, -3.000000, 26.288763, 6.572191, 13.144381 -147, -3.000000, 26.468823, 6.617206, 13.234411 -148, -3.000000, 26.648883, 6.662221, 13.324441 -149, -3.000000, 26.828943, 6.707236, 13.414471 -150, -3.000000, 27.009003, 6.752251, 13.504502 -151, -3.000000, 27.189063, 6.797266, 13.594532 -152, -3.000000, 27.369123, 6.842281, 13.684562 -153, -3.000000, 27.549183, 6.887296, 13.774592 -154, -3.000000, 27.729243, 6.932311, 13.864622 -155, -3.000000, 27.909303, 6.977326, 13.954652 -156, -3.000000, 28.089363, 7.022341, 14.044682 -157, -3.000000, 28.269423, 7.067356, 14.134712 -158, -3.000000, 28.449483, 7.112371, 14.224742 -159, -3.000000, 28.629543, 7.157386, 14.314772 -160, -3.000000, 28.809603, 7.202401, 14.404802 -161, -3.000000, 28.989663, 7.247416, 14.494832 -162, -3.000000, 29.169723, 7.292431, 14.584862 -163, -3.000000, 29.349783, 7.337446, 14.674892 -164, -3.000000, 29.529843, 7.382461, 14.764922 -165, -3.000000, 29.709903, 7.427476, 14.854952 -166, -3.000000, 29.889963, 7.472491, 14.944982 -167, -3.000000, 30.070023, 7.517506, 15.035012 -168, -3.000000, 30.250083, 7.562521, 15.125042 -169, -3.000000, 30.430143, 7.607536, 15.215072 -170, -3.000000, 30.610203, 7.652551, 15.305102 -171, -3.000000, 30.790263, 7.697566, 15.395132 -172, -3.000000, 30.970323, 7.742581, 15.485162 -173, -3.000000, 31.150383, 7.787596, 15.575192 -174, -3.000000, 31.330443, 7.832611, 15.665222 -175, -3.000000, 31.510504, 7.877626, 15.755252 -176, -3.000000, 31.690564, 7.922641, 15.845282 -177, -3.000000, 31.870624, 7.967656, 15.935312 -178, -3.000000, 32.050684, 8.012671, 16.025342 -179, -3.000000, 32.230744, 8.057686, 16.115372 -180, -3.000000, 32.410804, 8.102701, 16.205402 -181, -3.000000, 32.590864, 8.147716, 16.295432 -182, -3.000000, 32.770924, 8.192731, 16.385462 -183, -3.000000, 32.950984, 8.237746, 16.475492 -184, -3.000000, 33.131044, 8.282761, 16.565522 -185, -3.000000, 33.311104, 8.327776, 16.655552 -186, -3.000000, 33.491164, 8.372791, 16.745582 -187, -3.000000, 33.671224, 8.417806, 16.835612 -188, -3.000000, 33.851284, 8.462821, 16.925642 -189, -3.000000, 34.031344, 8.507836, 17.015672 -190, -3.000000, 34.211404, 8.552851, 17.105702 -191, -3.000000, 34.391464, 8.597866, 17.195732 -192, -3.000000, 34.571524, 8.642881, 17.285762 -193, -3.000000, 34.751584, 8.687896, 17.375792 -194, -3.000000, 34.931644, 8.732911, 17.465822 -195, -3.000000, 35.111704, 8.777926, 17.555852 -196, -3.000000, 35.291764, 8.822941, 17.645882 -197, -3.000000, 35.471824, 8.867956, 17.735912 -198, -3.000000, 35.651884, 8.912971, 17.825942 -199, -3.000000, 35.831944, 8.957986, 17.915972 -200, -3.000000, 36.012004, 9.003001, 18.006002 -201, -3.000000, 36.192064, 9.048016, 18.096032 -202, -3.000000, 36.372124, 9.093031, 18.186062 -203, -3.000000, 36.552184, 9.138046, 18.276092 -204, -3.000000, 36.732244, 9.183061, 18.366122 -205, -3.000000, 36.912304, 9.228076, 18.456152 -206, -3.000000, 37.092364, 9.273091, 18.546182 -207, -3.000000, 37.272424, 9.318106, 18.636212 -208, -3.000000, 37.452484, 9.363121, 18.726242 -209, -3.000000, 37.632544, 9.408136, 18.816272 -210, -3.000000, 37.812604, 9.453151, 18.906302 -211, -3.000000, 37.992664, 9.498166, 18.996332 -212, -3.000000, 38.172724, 9.543181, 19.086362 -213, -3.000000, 38.352784, 9.588196, 19.176392 -214, -3.000000, 38.532844, 9.633211, 19.266422 -215, -3.000000, 38.712904, 9.678226, 19.356452 -216, -3.000000, 38.892964, 9.723241, 19.446482 -217, -3.000000, 39.073024, 9.768256, 19.536512 -218, -3.000000, 39.253084, 9.813271, 19.626542 -219, -3.000000, 39.433144, 9.858286, 19.716572 -220, -3.000000, 39.613204, 9.903301, 19.806602 -221, -3.000000, 39.793264, 9.948316, 19.896632 -222, -3.000000, 39.973324, 9.993331, 19.986662 -223, -3.000000, 40.153384, 10.038346, 20.076692 -224, -3.000000, 40.333444, 10.083361, 20.166722 -225, -3.000000, 40.513505, 10.128376, 20.256752 -226, -3.000000, 40.693565, 10.173391, 20.346782 -227, -3.000000, 40.873625, 10.218406, 20.436812 -228, -3.000000, 41.053685, 10.263421, 20.526842 -229, -3.000000, 41.233745, 10.308436, 20.616872 -230, -3.000000, 41.413805, 10.353451, 20.706902 -231, -3.000000, 41.593865, 10.398466, 20.796932 -232, -3.000000, 41.773925, 10.443481, 20.886962 -233, -3.000000, 41.953985, 10.488496, 20.976992 -234, -3.000000, 42.134045, 10.533511, 21.067022 -235, -3.000000, 42.314105, 10.578526, 21.157052 -236, -3.000000, 42.494165, 10.623541, 21.247082 -237, -3.000000, 42.674225, 10.668556, 21.337112 -238, -3.000000, 42.854285, 10.713571, 21.427142 -239, -3.000000, 43.034345, 10.758586, 21.517172 -240, -3.000000, 43.214405, 10.803601, 21.607202 -241, -3.000000, 43.394465, 10.848616, 21.697232 -242, -3.000000, 43.574525, 10.893631, 21.787262 -243, -3.000000, 43.754585, 10.938646, 21.877292 -244, -3.000000, 43.934645, 10.983661, 21.967322 -245, -3.000000, 44.114705, 11.028676, 22.057352 -246, -3.000000, 44.294765, 11.073691, 22.147382 -247, -3.000000, 44.474825, 11.118706, 22.237412 -248, -3.000000, 44.654885, 11.163721, 22.327442 -249, -3.000000, 44.834945, 11.208736, 22.417472 -250, -3.000000, 45.015005, 11.253751, 22.507503 -251, -3.000000, 45.195065, 11.298766, 22.597533 -252, -3.000000, 45.375125, 11.343781, 22.687563 -253, -3.000000, 45.555185, 11.388796, 22.777593 -254, -3.000000, 45.735245, 11.433811, 22.867623 -255, -3.000000, 45.915305, 11.478826, 22.957653 -256, -3.000000, 46.095365, 11.523841, 23.047683 -257, -3.000000, 46.275425, 11.568856, 23.137713 -258, -3.000000, 46.455485, 11.613871, 23.227743 -259, -3.000000, 46.635545, 11.658886, 23.317773 -260, -3.000000, 46.815605, 11.703901, 23.407803 -261, -3.000000, 46.995665, 11.748916, 23.497833 -262, -3.000000, 47.175725, 11.793931, 23.587863 -263, -3.000000, 47.355785, 11.838946, 23.677893 -264, -3.000000, 47.535845, 11.883961, 23.767923 -265, -3.000000, 47.715905, 11.928976, 23.857953 -266, -3.000000, 47.895965, 11.973991, 23.947983 -267, -3.000000, 48.076025, 12.019006, 24.038013 -268, -3.000000, 48.256085, 12.064021, 24.128043 -269, -3.000000, 48.436145, 12.109036, 24.218073 -270, -3.000000, 48.616205, 12.154051, 24.308103 -271, -3.000000, 48.796265, 12.199066, 24.398133 -272, -3.000000, 48.976325, 12.244081, 24.488163 -273, -3.000000, 49.156385, 12.289096, 24.578193 -274, -3.000000, 49.336445, 12.334111, 24.668223 -275, -3.000000, 49.516506, 12.379126, 24.758253 -276, -3.000000, 49.696566, 12.424141, 24.848283 -277, -3.000000, 49.876626, 12.469156, 24.938313 -278, -3.000000, 50.056686, 12.514171, 25.028343 -279, -3.000000, 50.236746, 12.559186, 25.118373 -280, -3.000000, 50.416806, 12.604201, 25.208403 -281, -3.000000, 50.596866, 12.649216, 25.298433 -282, -3.000000, 50.776926, 12.694231, 25.388463 -283, -3.000000, 50.956986, 12.739246, 25.478493 -284, -3.000000, 51.137046, 12.784261, 25.568523 -285, -3.000000, 51.317106, 12.829276, 25.658553 -286, -3.000000, 51.497166, 12.874291, 25.748583 -287, -3.000000, 51.677226, 12.919306, 25.838613 -288, -3.000000, 51.857286, 12.964321, 25.928643 -289, -3.000000, 52.037346, 13.009336, 26.018673 -290, -3.000000, 52.217406, 13.054351, 26.108703 -291, -3.000000, 52.397466, 13.099366, 26.198733 -292, -3.000000, 52.577526, 13.144381, 26.288763 -293, -3.000000, 52.757586, 13.189396, 26.378793 -294, -3.000000, 52.937646, 13.234411, 26.468823 -295, -3.000000, 53.117706, 13.279426, 26.558853 -296, -3.000000, 53.297766, 13.324441, 26.648883 -297, -3.000000, 53.477826, 13.369456, 26.738913 -298, -3.000000, 53.657886, 13.414471, 26.828943 -299, -3.000000, 53.837946, 13.459486, 26.918973 -300, -3.000000, 54.018006, 13.504502, 27.009003 -301, -3.000000, 54.198066, 13.549517, 27.099033 -302, -3.000000, 54.378126, 13.594532, 27.189063 -303, -3.000000, 54.558186, 13.639547, 27.279093 -304, -3.000000, 54.738246, 13.684562, 27.369123 -305, -3.000000, 54.918306, 13.729577, 27.459153 -306, -3.000000, 55.098366, 13.774592, 27.549183 -307, -3.000000, 55.278426, 13.819607, 27.639213 -308, -3.000000, 55.458486, 13.864622, 27.729243 -309, -3.000000, 55.638546, 13.909637, 27.819273 -310, -3.000000, 55.818606, 13.954652, 27.909303 -311, -3.000000, 55.998666, 13.999667, 27.999333 -312, -3.000000, 56.178726, 14.044682, 28.089363 -313, -3.000000, 56.358786, 14.089697, 28.179393 -314, -3.000000, 56.538846, 14.134712, 28.269423 -315, -3.000000, 56.718906, 14.179727, 28.359453 -316, -3.000000, 56.898966, 14.224742, 28.449483 -317, -3.000000, 57.079026, 14.269757, 28.539513 -318, -3.000000, 57.259086, 14.314772, 28.629543 -319, -3.000000, 57.439146, 14.359787, 28.719573 -320, -3.000000, 57.619206, 14.404802, 28.809603 -321, -3.000000, 57.799266, 14.449817, 28.899633 -322, -3.000000, 57.979326, 14.494832, 28.989663 -323, -3.000000, 58.159386, 14.539847, 29.079693 -324, -3.000000, 58.339446, 14.584862, 29.169723 -325, -3.000000, 58.519507, 14.629877, 29.259753 -326, -3.000000, 58.699567, 14.674892, 29.349783 -327, -3.000000, 58.879627, 14.719907, 29.439813 -328, -3.000000, 59.059687, 14.764922, 29.529843 -329, -3.000000, 59.239747, 14.809937, 29.619873 -330, -3.000000, 59.419807, 14.854952, 29.709903 -331, -3.000000, 59.599867, 14.899967, 29.799933 -332, -3.000000, 59.779927, 14.944982, 29.889963 -333, -3.000000, 59.959987, 14.989997, 29.979993 -334, -3.000000, 60.140047, 15.035012, 30.070023 -335, -3.000000, 60.320107, 15.080027, 30.160053 -336, -3.000000, 60.500167, 15.125042, 30.250083 -337, -3.000000, 60.680227, 15.170057, 30.340113 -338, -3.000000, 60.860287, 15.215072, 30.430143 -339, -3.000000, 61.040347, 15.260087, 30.520173 -340, -3.000000, 61.220407, 15.305102, 30.610203 -341, -3.000000, 61.400467, 15.350117, 30.700233 -342, -3.000000, 61.580527, 15.395132, 30.790263 -343, -3.000000, 61.760587, 15.440147, 30.880293 -344, -3.000000, 61.940647, 15.485162, 30.970323 -345, -3.000000, 62.120707, 15.530177, 31.060353 -346, -3.000000, 62.300767, 15.575192, 31.150383 -347, -3.000000, 62.480827, 15.620207, 31.240413 -348, -3.000000, 62.660887, 15.665222, 31.330443 -349, -3.000000, 62.840947, 15.710237, 31.420473 -350, -3.000000, 63.021007, 15.755252, 31.510504 -351, -3.000000, 63.201067, 15.800267, 31.600534 -352, -3.000000, 63.381127, 15.845282, 31.690564 -353, -3.000000, 63.561187, 15.890297, 31.780594 -354, -3.000000, 63.741247, 15.935312, 31.870624 -355, -3.000000, 63.921307, 15.980327, 31.960654 -356, -3.000000, 64.101367, 16.025342, 32.050684 -357, -3.000000, 64.281427, 16.070357, 32.140714 -358, -3.000000, 64.461487, 16.115372, 32.230744 -359, -3.000000, 64.641547, 16.160387, 32.320774 -360, -3.000000, 64.821607, 16.205402, 32.410804 -361, -3.000000, 65.001667, 16.250417, 32.500834 -362, -3.000000, 65.181727, 16.295432, 32.590864 -363, -3.000000, 65.361787, 16.340447, 32.680894 -364, -3.000000, 65.541847, 16.385462, 32.770924 -365, -3.000000, 65.721907, 16.430477, 32.860954 -366, -3.000000, 65.901967, 16.475492, 32.950984 -367, -3.000000, 66.082027, 16.520507, 33.041014 -368, -3.000000, 66.262087, 16.565522, 33.131044 -369, -3.000000, 66.442147, 16.610537, 33.221074 -370, -3.000000, 66.622207, 16.655552, 33.311104 -371, -3.000000, 66.802267, 16.700567, 33.401134 -372, -3.000000, 66.982327, 16.745582, 33.491164 -373, -3.000000, 67.162387, 16.790597, 33.581194 -374, -3.000000, 67.342447, 16.835612, 33.671224 -375, -3.000000, 67.522508, 16.880627, 33.761254 -376, -3.000000, 67.702568, 16.925642, 33.851284 -377, -3.000000, 67.882628, 16.970657, 33.941314 -378, -3.000000, 68.062688, 17.015672, 34.031344 -379, -3.000000, 68.242748, 17.060687, 34.121374 -380, -3.000000, 68.422808, 17.105702, 34.211404 -381, -3.000000, 68.602868, 17.150717, 34.301434 -382, -3.000000, 68.782928, 17.195732, 34.391464 -383, -3.000000, 68.962988, 17.240747, 34.481494 -384, -3.000000, 69.143048, 17.285762, 34.571524 -385, -3.000000, 69.323108, 17.330777, 34.661554 -386, -3.000000, 69.503168, 17.375792, 34.751584 -387, -3.000000, 69.683228, 17.420807, 34.841614 -388, -3.000000, 69.863288, 17.465822, 34.931644 -389, -3.000000, 70.043348, 17.510837, 35.021674 -390, -3.000000, 70.223408, 17.555852, 35.111704 -391, -3.000000, 70.403468, 17.600867, 35.201734 -392, -3.000000, 70.583528, 17.645882, 35.291764 -393, -3.000000, 70.763588, 17.690897, 35.381794 -394, -3.000000, 70.943648, 17.735912, 35.471824 -395, -3.000000, 71.123708, 17.780927, 35.561854 -396, -3.000000, 71.303768, 17.825942, 35.651884 -397, -3.000000, 71.483828, 17.870957, 35.741914 -398, -3.000000, 71.663888, 17.915972, 35.831944 -399, -3.000000, 71.843948, 17.960987, 35.921974 -400, -3.000000, 72.024008, 18.006002, 36.012004 -401, -3.000000, 72.204068, 18.051017, 36.102034 -402, -3.000000, 72.384128, 18.096032, 36.192064 -403, -3.000000, 72.564188, 18.141047, 36.282094 -404, -3.000000, 72.744248, 18.186062, 36.372124 -405, -3.000000, 72.924308, 18.231077, 36.462154 -406, -3.000000, 73.104368, 18.276092, 36.552184 -407, -3.000000, 73.284428, 18.321107, 36.642214 -408, -3.000000, 73.464488, 18.366122, 36.732244 -409, -3.000000, 73.644548, 18.411137, 36.822274 -410, -3.000000, 73.824608, 18.456152, 36.912304 -411, -3.000000, 74.004668, 18.501167, 37.002334 -412, -3.000000, 74.184728, 18.546182, 37.092364 -413, -3.000000, 74.364788, 18.591197, 37.182394 -414, -3.000000, 74.544848, 18.636212, 37.272424 -415, -3.000000, 74.724908, 18.681227, 37.362454 -416, -3.000000, 74.904968, 18.726242, 37.452484 -417, -3.000000, 75.085028, 18.771257, 37.542514 -418, -3.000000, 75.265088, 18.816272, 37.632544 -419, -3.000000, 75.445148, 18.861287, 37.722574 -420, -3.000000, 75.625208, 18.906302, 37.812604 -421, -3.000000, 75.805268, 18.951317, 37.902634 -422, -3.000000, 75.985328, 18.996332, 37.992664 -423, -3.000000, 76.165388, 19.041347, 38.082694 -424, -3.000000, 76.345448, 19.086362, 38.172724 -425, -3.000000, 76.525509, 19.131377, 38.262754 -426, -3.000000, 76.705569, 19.176392, 38.352784 -427, -3.000000, 76.885629, 19.221407, 38.442814 -428, -3.000000, 77.065689, 19.266422, 38.532844 -429, -3.000000, 77.245749, 19.311437, 38.622874 -430, -3.000000, 77.425809, 19.356452, 38.712904 -431, -3.000000, 77.605869, 19.401467, 38.802934 -432, -3.000000, 77.785929, 19.446482, 38.892964 -433, -3.000000, 77.965989, 19.491497, 38.982994 -434, -3.000000, 78.146049, 19.536512, 39.073024 -435, -3.000000, 78.326109, 19.581527, 39.163054 -436, -3.000000, 78.506169, 19.626542, 39.253084 -437, -3.000000, 78.686229, 19.671557, 39.343114 -438, -3.000000, 78.866289, 19.716572, 39.433144 -439, -3.000000, 79.046349, 19.761587, 39.523174 -440, -3.000000, 79.226409, 19.806602, 39.613204 -441, -3.000000, 79.406469, 19.851617, 39.703234 -442, -3.000000, 79.586529, 19.896632, 39.793264 -443, -3.000000, 79.766589, 19.941647, 39.883294 -444, -3.000000, 79.946649, 19.986662, 39.973324 -445, -3.000000, 80.126709, 20.031677, 40.063354 -446, -3.000000, 80.306769, 20.076692, 40.153384 -447, -3.000000, 80.486829, 20.121707, 40.243414 -448, -3.000000, 80.666889, 20.166722, 40.333444 -449, -3.000000, 80.846949, 20.211737, 40.423474 -450, -3.000000, 81.027009, 20.256752, 40.513505 -451, -3.000000, 81.207069, 20.301767, 40.603535 -452, -3.000000, 81.387129, 20.346782, 40.693565 -453, -3.000000, 81.567189, 20.391797, 40.783595 -454, -3.000000, 81.747249, 20.436812, 40.873625 -455, -3.000000, 81.927309, 20.481827, 40.963655 -456, -3.000000, 82.107369, 20.526842, 41.053685 -457, -3.000000, 82.287429, 20.571857, 41.143715 -458, -3.000000, 82.467489, 20.616872, 41.233745 -459, -3.000000, 82.647549, 20.661887, 41.323775 -460, -3.000000, 82.827609, 20.706902, 41.413805 -461, -3.000000, 83.007669, 20.751917, 41.503835 -462, -3.000000, 83.187729, 20.796932, 41.593865 -463, -3.000000, 83.367789, 20.841947, 41.683895 -464, -3.000000, 83.547849, 20.886962, 41.773925 -465, -3.000000, 83.727909, 20.931977, 41.863955 -466, -3.000000, 83.907969, 20.976992, 41.953985 -467, -3.000000, 84.088029, 21.022007, 42.044015 -468, -3.000000, 84.268089, 21.067022, 42.134045 -469, -3.000000, 84.448149, 21.112037, 42.224075 -470, -3.000000, 84.628209, 21.157052, 42.314105 -471, -3.000000, 84.808269, 21.202067, 42.404135 -472, -3.000000, 84.988329, 21.247082, 42.494165 -473, -3.000000, 85.168389, 21.292097, 42.584195 -474, -3.000000, 85.348449, 21.337112, 42.674225 -475, -3.000000, 85.528510, 21.382127, 42.764255 -476, -3.000000, 85.708570, 21.427142, 42.854285 -477, -3.000000, 85.888630, 21.472157, 42.944315 -478, -3.000000, 86.068690, 21.517172, 43.034345 -479, -3.000000, 86.248750, 21.562187, 43.124375 -480, -3.000000, 86.428810, 21.607202, 43.214405 -481, -3.000000, 86.608870, 21.652217, 43.304435 -482, -3.000000, 86.788930, 21.697232, 43.394465 -483, -3.000000, 86.968990, 21.742247, 43.484495 -484, -3.000000, 87.149050, 21.787262, 43.574525 -485, -3.000000, 87.329110, 21.832277, 43.664555 -486, -3.000000, 87.509170, 21.877292, 43.754585 -487, -3.000000, 87.689230, 21.922307, 43.844615 -488, -3.000000, 87.869290, 21.967322, 43.934645 -489, -3.000000, 88.049350, 22.012337, 44.024675 -490, -3.000000, 88.229410, 22.057352, 44.114705 -491, -3.000000, 88.409470, 22.102367, 44.204735 -492, -3.000000, 88.589530, 22.147382, 44.294765 -493, -3.000000, 88.769590, 22.192397, 44.384795 -494, -3.000000, 88.949650, 22.237412, 44.474825 -495, -3.000000, 89.129710, 22.282427, 44.564855 -496, -3.000000, 89.309770, 22.327442, 44.654885 -497, -3.000000, 89.489830, 22.372457, 44.744915 -498, -3.000000, 89.669890, 22.417472, 44.834945 -499, -3.000000, 89.849950, 22.462487, 44.924975 -500, -3.000000, 90.030010, 22.507503, 45.015005 -501, -3.000000, 90.210070, 22.552518, 45.105035 -502, -3.000000, 90.390130, 22.597533, 45.195065 -503, -3.000000, 90.570190, 22.642548, 45.285095 -504, -3.000000, 90.750250, 22.687563, 45.375125 -505, -3.000000, 90.930310, 22.732578, 45.465155 -506, -3.000000, 91.110370, 22.777593, 45.555185 -507, -3.000000, 91.290430, 22.822608, 45.645215 -508, -3.000000, 91.470490, 22.867623, 45.735245 -509, -3.000000, 91.650550, 22.912638, 45.825275 -510, -3.000000, 91.830610, 22.957653, 45.915305 -511, -3.000000, 92.010670, 23.002668, 46.005335 -512, -3.000000, 92.190730, 23.047683, 46.095365 -513, -3.000000, 92.370790, 23.092698, 46.185395 -514, -3.000000, 92.550850, 23.137713, 46.275425 -515, -3.000000, 92.730910, 23.182728, 46.365455 -516, -3.000000, 92.910970, 23.227743, 46.455485 -517, -3.000000, 93.091030, 23.272758, 46.545515 -518, -3.000000, 93.271090, 23.317773, 46.635545 -519, -3.000000, 93.451150, 23.362788, 46.725575 -520, -3.000000, 93.631210, 23.407803, 46.815605 -521, -3.000000, 93.811270, 23.452818, 46.905635 -522, -3.000000, 93.991330, 23.497833, 46.995665 -523, -3.000000, 94.171390, 23.542848, 47.085695 -524, -3.000000, 94.351450, 23.587863, 47.175725 -525, -3.000000, 94.531511, 23.632878, 47.265755 -526, -3.000000, 94.711571, 23.677893, 47.355785 -527, -3.000000, 94.891631, 23.722908, 47.445815 -528, -3.000000, 95.071691, 23.767923, 47.535845 -529, -3.000000, 95.251751, 23.812938, 47.625875 -530, -3.000000, 95.431811, 23.857953, 47.715905 -531, -3.000000, 95.611871, 23.902968, 47.805935 -532, -3.000000, 95.791931, 23.947983, 47.895965 -533, -3.000000, 95.971991, 23.992998, 47.985995 -534, -3.000000, 96.152051, 24.038013, 48.076025 -535, -3.000000, 96.332111, 24.083028, 48.166055 -536, -3.000000, 96.512171, 24.128043, 48.256085 -537, -3.000000, 96.692231, 24.173058, 48.346115 -538, -3.000000, 96.872291, 24.218073, 48.436145 -539, -3.000000, 97.052351, 24.263088, 48.526175 -540, -3.000000, 97.232411, 24.308103, 48.616205 -541, -3.000000, 97.412471, 24.353118, 48.706235 -542, -3.000000, 97.592531, 24.398133, 48.796265 -543, -3.000000, 97.772591, 24.443148, 48.886295 -544, -3.000000, 97.952651, 24.488163, 48.976325 -545, -3.000000, 98.132711, 24.533178, 49.066355 -546, -3.000000, 98.312771, 24.578193, 49.156385 -547, -3.000000, 98.492831, 24.623208, 49.246415 -548, -3.000000, 98.672891, 24.668223, 49.336445 -549, -3.000000, 98.852951, 24.713238, 49.426475 -550, -3.000000, 99.033011, 24.758253, 49.516506 -551, -3.000000, 99.213071, 24.803268, 49.606536 -552, -3.000000, 99.393131, 24.848283, 49.696566 -553, -3.000000, 99.573191, 24.893298, 49.786596 -554, -3.000000, 99.753251, 24.938313, 49.876626 -555, -3.000000, 99.933311, 24.983328, 49.966656 -556, -3.000000, 100.113371, 25.028343, 50.056686 -557, -3.000000, 100.293431, 25.073358, 50.146716 -558, -3.000000, 100.473491, 25.118373, 50.236746 -559, -3.000000, 100.653551, 25.163388, 50.326776 -560, -3.000000, 100.833611, 25.208403, 50.416806 -561, -3.000000, 101.013671, 25.253418, 50.506836 -562, -3.000000, 101.193731, 25.298433, 50.596866 -563, -3.000000, 101.373791, 25.343448, 50.686896 -564, -3.000000, 101.553851, 25.388463, 50.776926 -565, -3.000000, 101.733911, 25.433478, 50.866956 -566, -3.000000, 101.913971, 25.478493, 50.956986 -567, -3.000000, 102.094031, 25.523508, 51.047016 -568, -3.000000, 102.274091, 25.568523, 51.137046 -569, -3.000000, 102.454151, 25.613538, 51.227076 -570, -3.000000, 102.634211, 25.658553, 51.317106 -571, -3.000000, 102.814271, 25.703568, 51.407136 -572, -3.000000, 102.994331, 25.748583, 51.497166 -573, -3.000000, 103.174391, 25.793598, 51.587196 -574, -3.000000, 103.354451, 25.838613, 51.677226 -575, -3.000000, 103.534512, 25.883628, 51.767256 -576, -3.000000, 103.714572, 25.928643, 51.857286 -577, -3.000000, 103.894632, 25.973658, 51.947316 -578, -3.000000, 104.074692, 26.018673, 52.037346 -579, -3.000000, 104.254752, 26.063688, 52.127376 -580, -3.000000, 104.434812, 26.108703, 52.217406 -581, -3.000000, 104.614872, 26.153718, 52.307436 -582, -3.000000, 104.794932, 26.198733, 52.397466 -583, -3.000000, 104.974992, 26.243748, 52.487496 -584, -3.000000, 105.155052, 26.288763, 52.577526 -585, -3.000000, 105.335112, 26.333778, 52.667556 -586, -3.000000, 105.515172, 26.378793, 52.757586 -587, -3.000000, 105.695232, 26.423808, 52.847616 -588, -3.000000, 105.875292, 26.468823, 52.937646 -589, -3.000000, 106.055352, 26.513838, 53.027676 -590, -3.000000, 106.235412, 26.558853, 53.117706 -591, -3.000000, 106.415472, 26.603868, 53.207736 -592, -3.000000, 106.595532, 26.648883, 53.297766 -593, -3.000000, 106.775592, 26.693898, 53.387796 -594, -3.000000, 106.955652, 26.738913, 53.477826 -595, -3.000000, 107.135712, 26.783928, 53.567856 -596, -3.000000, 107.315772, 26.828943, 53.657886 -597, -3.000000, 107.495832, 26.873958, 53.747916 -598, -3.000000, 107.675892, 26.918973, 53.837946 -599, -3.000000, 107.855952, 26.963988, 53.927976 -600, -3.000000, 108.036012, 27.009003, 54.018006 -601, -3.000000, 108.216072, 27.054018, 54.108036 -602, -3.000000, 108.396132, 27.099033, 54.198066 -603, -3.000000, 108.576192, 27.144048, 54.288096 -604, -3.000000, 108.756252, 27.189063, 54.378126 -605, -3.000000, 108.936312, 27.234078, 54.468156 -606, -3.000000, 109.116372, 27.279093, 54.558186 -607, -3.000000, 109.296432, 27.324108, 54.648216 -608, -3.000000, 109.476492, 27.369123, 54.738246 -609, -3.000000, 109.656552, 27.414138, 54.828276 -610, -3.000000, 109.836612, 27.459153, 54.918306 -611, -3.000000, 110.016672, 27.504168, 55.008336 -612, -3.000000, 110.196732, 27.549183, 55.098366 -613, -3.000000, 110.376792, 27.594198, 55.188396 -614, -3.000000, 110.556852, 27.639213, 55.278426 -615, -3.000000, 110.736912, 27.684228, 55.368456 -616, -3.000000, 110.916972, 27.729243, 55.458486 -617, -3.000000, 111.097032, 27.774258, 55.548516 -618, -3.000000, 111.277092, 27.819273, 55.638546 -619, -3.000000, 111.457152, 27.864288, 55.728576 -620, -3.000000, 111.637212, 27.909303, 55.818606 -621, -3.000000, 111.817272, 27.954318, 55.908636 -622, -3.000000, 111.997332, 27.999333, 55.998666 -623, -3.000000, 112.177392, 28.044348, 56.088696 -624, -3.000000, 112.357452, 28.089363, 56.178726 -625, -3.000000, 112.537513, 28.134378, 56.268756 -626, -3.000000, 112.717573, 28.179393, 56.358786 -627, -3.000000, 112.897633, 28.224408, 56.448816 -628, -3.000000, 113.077693, 28.269423, 56.538846 -629, -3.000000, 113.257753, 28.314438, 56.628876 -630, -3.000000, 113.437813, 28.359453, 56.718906 -631, -3.000000, 113.617873, 28.404468, 56.808936 -632, -3.000000, 113.797933, 28.449483, 56.898966 -633, -3.000000, 113.977993, 28.494498, 56.988996 -634, -3.000000, 114.158053, 28.539513, 57.079026 -635, -3.000000, 114.338113, 28.584528, 57.169056 -636, -3.000000, 114.518173, 28.629543, 57.259086 -637, -3.000000, 114.698233, 28.674558, 57.349116 -638, -3.000000, 114.878293, 28.719573, 57.439146 -639, -3.000000, 115.058353, 28.764588, 57.529176 -640, -3.000000, 115.238413, 28.809603, 57.619206 -641, -3.000000, 115.418473, 28.854618, 57.709236 -642, -3.000000, 115.598533, 28.899633, 57.799266 -643, -3.000000, 115.778593, 28.944648, 57.889296 -644, -3.000000, 115.958653, 28.989663, 57.979326 -645, -3.000000, 116.138713, 29.034678, 58.069356 -646, -3.000000, 116.318773, 29.079693, 58.159386 -647, -3.000000, 116.498833, 29.124708, 58.249416 -648, -3.000000, 116.678893, 29.169723, 58.339446 -649, -3.000000, 116.858953, 29.214738, 58.429476 -650, -3.000000, 117.039013, 29.259753, 58.519507 -651, -3.000000, 117.219073, 29.304768, 58.609537 -652, -3.000000, 117.399133, 29.349783, 58.699567 -653, -3.000000, 117.579193, 29.394798, 58.789597 -654, -3.000000, 117.759253, 29.439813, 58.879627 -655, -3.000000, 117.939313, 29.484828, 58.969657 -656, -3.000000, 118.119373, 29.529843, 59.059687 -657, -3.000000, 118.299433, 29.574858, 59.149717 -658, -3.000000, 118.479493, 29.619873, 59.239747 -659, -3.000000, 118.659553, 29.664888, 59.329777 -660, -3.000000, 118.839613, 29.709903, 59.419807 -661, -3.000000, 119.019673, 29.754918, 59.509837 -662, -3.000000, 119.199733, 29.799933, 59.599867 -663, -3.000000, 119.379793, 29.844948, 59.689897 -664, -3.000000, 119.559853, 29.889963, 59.779927 -665, -3.000000, 119.739913, 29.934978, 59.869957 -666, -3.000000, 119.919973, 29.979993, 59.959987 -667, -3.000000, 120.100033, 30.025008, 60.050017 -668, -3.000000, 120.280093, 30.070023, 60.140047 -669, -3.000000, 120.460153, 30.115038, 60.230077 -670, -3.000000, 120.640213, 30.160053, 60.320107 -671, -3.000000, 120.820273, 30.205068, 60.410137 -672, -3.000000, 121.000333, 30.250083, 60.500167 -673, -3.000000, 121.180393, 30.295098, 60.590197 -674, -3.000000, 121.360453, 30.340113, 60.680227 -675, -3.000000, 121.540514, 30.385128, 60.770257 -676, -3.000000, 121.720574, 30.430143, 60.860287 -677, -3.000000, 121.900634, 30.475158, 60.950317 -678, -3.000000, 122.080694, 30.520173, 61.040347 -679, -3.000000, 122.260754, 30.565188, 61.130377 -680, -3.000000, 122.440814, 30.610203, 61.220407 -681, -3.000000, 122.620874, 30.655218, 61.310437 -682, -3.000000, 122.800934, 30.700233, 61.400467 -683, -3.000000, 122.980994, 30.745248, 61.490497 -684, -3.000000, 123.161054, 30.790263, 61.580527 -685, -3.000000, 123.341114, 30.835278, 61.670557 -686, -3.000000, 123.521174, 30.880293, 61.760587 -687, -3.000000, 123.701234, 30.925308, 61.850617 -688, -3.000000, 123.881294, 30.970323, 61.940647 -689, -3.000000, 124.061354, 31.015338, 62.030677 -690, -3.000000, 124.241414, 31.060353, 62.120707 -691, -3.000000, 124.421474, 31.105368, 62.210737 -692, -3.000000, 124.601534, 31.150383, 62.300767 -693, -3.000000, 124.781594, 31.195398, 62.390797 -694, -3.000000, 124.961654, 31.240413, 62.480827 -695, -3.000000, 125.141714, 31.285428, 62.570857 -696, -3.000000, 125.321774, 31.330443, 62.660887 -697, -3.000000, 125.501834, 31.375458, 62.750917 -698, -3.000000, 125.681894, 31.420473, 62.840947 -699, -3.000000, 125.861954, 31.465488, 62.930977 -700, -3.000000, 126.042014, 31.510504, 63.021007 -701, -3.000000, 126.222074, 31.555519, 63.111037 -702, -3.000000, 126.402134, 31.600534, 63.201067 -703, -3.000000, 126.582194, 31.645549, 63.291097 -704, -3.000000, 126.762254, 31.690564, 63.381127 -705, -3.000000, 126.942314, 31.735579, 63.471157 -706, -3.000000, 127.122374, 31.780594, 63.561187 -707, -3.000000, 127.302434, 31.825609, 63.651217 -708, -3.000000, 127.482494, 31.870624, 63.741247 -709, -3.000000, 127.662554, 31.915639, 63.831277 -710, -3.000000, 127.842614, 31.960654, 63.921307 -711, -3.000000, 128.022674, 32.005669, 64.011337 -712, -3.000000, 128.202734, 32.050684, 64.101367 -713, -3.000000, 128.382794, 32.095699, 64.191397 -714, -3.000000, 128.562854, 32.140714, 64.281427 -715, -3.000000, 128.742914, 32.185729, 64.371457 -716, -3.000000, 128.922974, 32.230744, 64.461487 -717, -3.000000, 129.103034, 32.275759, 64.551517 -718, -3.000000, 129.283094, 32.320774, 64.641547 -719, -3.000000, 129.463154, 32.365789, 64.731577 -720, -3.000000, 129.643214, 32.410804, 64.821607 -721, -3.000000, 129.823274, 32.455819, 64.911637 -722, -3.000000, 130.003334, 32.500834, 65.001667 -723, -3.000000, 130.183394, 32.545849, 65.091697 -724, -3.000000, 130.363454, 32.590864, 65.181727 -725, -3.000000, 130.543515, 32.635879, 65.271757 -726, -3.000000, 130.723575, 32.680894, 65.361787 -727, -3.000000, 130.903635, 32.725909, 65.451817 -728, -3.000000, 131.083695, 32.770924, 65.541847 -729, -3.000000, 131.263755, 32.815939, 65.631877 -730, -3.000000, 131.443815, 32.860954, 65.721907 -731, -3.000000, 131.623875, 32.905969, 65.811937 -732, -3.000000, 131.803935, 32.950984, 65.901967 -733, -3.000000, 131.983995, 32.995999, 65.991997 -734, -3.000000, 132.164055, 33.041014, 66.082027 -735, -3.000000, 132.344115, 33.086029, 66.172057 -736, -3.000000, 132.524175, 33.131044, 66.262087 -737, -3.000000, 132.704235, 33.176059, 66.352117 -738, -3.000000, 132.884295, 33.221074, 66.442147 -739, -3.000000, 133.064355, 33.266089, 66.532177 -740, -3.000000, 133.244415, 33.311104, 66.622207 -741, -3.000000, 133.424475, 33.356119, 66.712237 -742, -3.000000, 133.604535, 33.401134, 66.802267 -743, -3.000000, 133.784595, 33.446149, 66.892297 -744, -3.000000, 133.964655, 33.491164, 66.982327 -745, -3.000000, 134.144715, 33.536179, 67.072357 -746, -3.000000, 134.324775, 33.581194, 67.162387 -747, -3.000000, 134.504835, 33.626209, 67.252417 -748, -3.000000, 134.684895, 33.671224, 67.342447 -749, -3.000000, 134.864955, 33.716239, 67.432477 -750, -3.000000, 135.045015, 33.761254, 67.522508 -751, -3.000000, 135.225075, 33.806269, 67.612538 -752, -3.000000, 135.405135, 33.851284, 67.702568 -753, -3.000000, 135.585195, 33.896299, 67.792598 -754, -3.000000, 135.765255, 33.941314, 67.882628 -755, -3.000000, 135.945315, 33.986329, 67.972658 -756, -3.000000, 136.125375, 34.031344, 68.062688 -757, -3.000000, 136.305435, 34.076359, 68.152718 -758, -3.000000, 136.485495, 34.121374, 68.242748 -759, -3.000000, 136.665555, 34.166389, 68.332778 -760, -3.000000, 136.845615, 34.211404, 68.422808 -761, -3.000000, 137.025675, 34.256419, 68.512838 -762, -3.000000, 137.205735, 34.301434, 68.602868 -763, -3.000000, 137.385795, 34.346449, 68.692898 -764, -3.000000, 137.565855, 34.391464, 68.782928 -765, -3.000000, 137.745915, 34.436479, 68.872958 -766, -3.000000, 137.925975, 34.481494, 68.962988 -767, -3.000000, 138.106035, 34.526509, 69.053018 -768, -3.000000, 138.286095, 34.571524, 69.143048 -769, -3.000000, 138.466155, 34.616539, 69.233078 -770, -3.000000, 138.646215, 34.661554, 69.323108 -771, -3.000000, 138.826275, 34.706569, 69.413138 -772, -3.000000, 139.006335, 34.751584, 69.503168 -773, -3.000000, 139.186395, 34.796599, 69.593198 -774, -3.000000, 139.366455, 34.841614, 69.683228 -775, -3.000000, 139.546516, 34.886629, 69.773258 -776, -3.000000, 139.726576, 34.931644, 69.863288 -777, -3.000000, 139.906636, 34.976659, 69.953318 -778, -3.000000, 140.086696, 35.021674, 70.043348 -779, -3.000000, 140.266756, 35.066689, 70.133378 -780, -3.000000, 140.446816, 35.111704, 70.223408 -781, -3.000000, 140.626876, 35.156719, 70.313438 -782, -3.000000, 140.806936, 35.201734, 70.403468 -783, -3.000000, 140.986996, 35.246749, 70.493498 -784, -3.000000, 141.167056, 35.291764, 70.583528 -785, -3.000000, 141.347116, 35.336779, 70.673558 -786, -3.000000, 141.527176, 35.381794, 70.763588 -787, -3.000000, 141.707236, 35.426809, 70.853618 -788, -3.000000, 141.887296, 35.471824, 70.943648 -789, -3.000000, 142.067356, 35.516839, 71.033678 -790, -3.000000, 142.247416, 35.561854, 71.123708 -791, -3.000000, 142.427476, 35.606869, 71.213738 -792, -3.000000, 142.607536, 35.651884, 71.303768 -793, -3.000000, 142.787596, 35.696899, 71.393798 -794, -3.000000, 142.967656, 35.741914, 71.483828 -795, -3.000000, 143.147716, 35.786929, 71.573858 -796, -3.000000, 143.327776, 35.831944, 71.663888 -797, -3.000000, 143.507836, 35.876959, 71.753918 -798, -3.000000, 143.687896, 35.921974, 71.843948 -799, -3.000000, 143.867956, 35.966989, 71.933978 -800, -3.000000, 144.048016, 36.012004, 72.024008 -801, -3.000000, 144.228076, 36.057019, 72.114038 -802, -3.000000, 144.408136, 36.102034, 72.204068 -803, -3.000000, 144.588196, 36.147049, 72.294098 -804, -3.000000, 144.768256, 36.192064, 72.384128 -805, -3.000000, 144.948316, 36.237079, 72.474158 -806, -3.000000, 145.128376, 36.282094, 72.564188 -807, -3.000000, 145.308436, 36.327109, 72.654218 -808, -3.000000, 145.488496, 36.372124, 72.744248 -809, -3.000000, 145.668556, 36.417139, 72.834278 -810, -3.000000, 145.848616, 36.462154, 72.924308 -811, -3.000000, 146.028676, 36.507169, 73.014338 -812, -3.000000, 146.208736, 36.552184, 73.104368 -813, -3.000000, 146.388796, 36.597199, 73.194398 -814, -3.000000, 146.568856, 36.642214, 73.284428 -815, -3.000000, 146.748916, 36.687229, 73.374458 -816, -3.000000, 146.928976, 36.732244, 73.464488 -817, -3.000000, 147.109036, 36.777259, 73.554518 -818, -3.000000, 147.289096, 36.822274, 73.644548 -819, -3.000000, 147.469156, 36.867289, 73.734578 -820, -3.000000, 147.649216, 36.912304, 73.824608 -821, -3.000000, 147.829276, 36.957319, 73.914638 -822, -3.000000, 148.009336, 37.002334, 74.004668 -823, -3.000000, 148.189396, 37.047349, 74.094698 -824, -3.000000, 148.369456, 37.092364, 74.184728 -825, -3.000000, 148.549517, 37.137379, 74.274758 -826, -3.000000, 148.729577, 37.182394, 74.364788 -827, -3.000000, 148.909637, 37.227409, 74.454818 -828, -3.000000, 149.089697, 37.272424, 74.544848 -829, -3.000000, 149.269757, 37.317439, 74.634878 -830, -3.000000, 149.449817, 37.362454, 74.724908 -831, -3.000000, 149.629877, 37.407469, 74.814938 -832, -3.000000, 149.809937, 37.452484, 74.904968 -833, -3.000000, 149.989997, 37.497499, 74.994998 -834, -3.000000, 150.170057, 37.542514, 75.085028 -835, -3.000000, 150.350117, 37.587529, 75.175058 -836, -3.000000, 150.530177, 37.632544, 75.265088 -837, -3.000000, 150.710237, 37.677559, 75.355118 -838, -3.000000, 150.890297, 37.722574, 75.445148 -839, -3.000000, 151.070357, 37.767589, 75.535178 -840, -3.000000, 151.250417, 37.812604, 75.625208 -841, -3.000000, 151.430477, 37.857619, 75.715238 -842, -3.000000, 151.610537, 37.902634, 75.805268 -843, -3.000000, 151.790597, 37.947649, 75.895298 -844, -3.000000, 151.970657, 37.992664, 75.985328 -845, -3.000000, 152.150717, 38.037679, 76.075358 -846, -3.000000, 152.330777, 38.082694, 76.165388 -847, -3.000000, 152.510837, 38.127709, 76.255418 -848, -3.000000, 152.690897, 38.172724, 76.345448 -849, -3.000000, 152.870957, 38.217739, 76.435478 -850, -3.000000, 153.051017, 38.262754, 76.525509 -851, -3.000000, 153.231077, 38.307769, 76.615539 -852, -3.000000, 153.411137, 38.352784, 76.705569 -853, -3.000000, 153.591197, 38.397799, 76.795599 -854, -3.000000, 153.771257, 38.442814, 76.885629 -855, -3.000000, 153.951317, 38.487829, 76.975659 -856, -3.000000, 154.131377, 38.532844, 77.065689 -857, -3.000000, 154.311437, 38.577859, 77.155719 -858, -3.000000, 154.491497, 38.622874, 77.245749 -859, -3.000000, 154.671557, 38.667889, 77.335779 -860, -3.000000, 154.851617, 38.712904, 77.425809 -861, -3.000000, 155.031677, 38.757919, 77.515839 -862, -3.000000, 155.211737, 38.802934, 77.605869 -863, -3.000000, 155.391797, 38.847949, 77.695899 -864, -3.000000, 155.571857, 38.892964, 77.785929 -865, -3.000000, 155.751917, 38.937979, 77.875959 -866, -3.000000, 155.931977, 38.982994, 77.965989 -867, -3.000000, 156.112037, 39.028009, 78.056019 -868, -3.000000, 156.292097, 39.073024, 78.146049 -869, -3.000000, 156.472157, 39.118039, 78.236079 -870, -3.000000, 156.652217, 39.163054, 78.326109 -871, -3.000000, 156.832277, 39.208069, 78.416139 -872, -3.000000, 157.012337, 39.253084, 78.506169 -873, -3.000000, 157.192397, 39.298099, 78.596199 -874, -3.000000, 157.372457, 39.343114, 78.686229 -875, -3.000000, 157.552518, 39.388129, 78.776259 -876, -3.000000, 157.732578, 39.433144, 78.866289 -877, -3.000000, 157.912638, 39.478159, 78.956319 -878, -3.000000, 158.092698, 39.523174, 79.046349 -879, -3.000000, 158.272758, 39.568189, 79.136379 -880, -3.000000, 158.452818, 39.613204, 79.226409 -881, -3.000000, 158.632878, 39.658219, 79.316439 -882, -3.000000, 158.812938, 39.703234, 79.406469 -883, -3.000000, 158.992998, 39.748249, 79.496499 -884, -3.000000, 159.173058, 39.793264, 79.586529 -885, -3.000000, 159.353118, 39.838279, 79.676559 -886, -3.000000, 159.533178, 39.883294, 79.766589 -887, -3.000000, 159.713238, 39.928309, 79.856619 -888, -3.000000, 159.893298, 39.973324, 79.946649 -889, -3.000000, 160.073358, 40.018339, 80.036679 -890, -3.000000, 160.253418, 40.063354, 80.126709 -891, -3.000000, 160.433478, 40.108369, 80.216739 -892, -3.000000, 160.613538, 40.153384, 80.306769 -893, -3.000000, 160.793598, 40.198399, 80.396799 -894, -3.000000, 160.973658, 40.243414, 80.486829 -895, -3.000000, 161.153718, 40.288429, 80.576859 -896, -3.000000, 161.333778, 40.333444, 80.666889 -897, -3.000000, 161.513838, 40.378459, 80.756919 -898, -3.000000, 161.693898, 40.423474, 80.846949 -899, -3.000000, 161.873958, 40.468489, 80.936979 -900, -3.000000, 162.054018, 40.513505, 81.027009 -901, -3.000000, 162.234078, 40.558520, 81.117039 -902, -3.000000, 162.414138, 40.603535, 81.207069 -903, -3.000000, 162.594198, 40.648550, 81.297099 -904, -3.000000, 162.774258, 40.693565, 81.387129 -905, -3.000000, 162.954318, 40.738580, 81.477159 -906, -3.000000, 163.134378, 40.783595, 81.567189 -907, -3.000000, 163.314438, 40.828610, 81.657219 -908, -3.000000, 163.494498, 40.873625, 81.747249 -909, -3.000000, 163.674558, 40.918640, 81.837279 -910, -3.000000, 163.854618, 40.963655, 81.927309 -911, -3.000000, 164.034678, 41.008670, 82.017339 -912, -3.000000, 164.214738, 41.053685, 82.107369 -913, -3.000000, 164.394798, 41.098700, 82.197399 -914, -3.000000, 164.574858, 41.143715, 82.287429 -915, -3.000000, 164.754918, 41.188730, 82.377459 -916, -3.000000, 164.934978, 41.233745, 82.467489 -917, -3.000000, 165.115038, 41.278760, 82.557519 -918, -3.000000, 165.295098, 41.323775, 82.647549 -919, -3.000000, 165.475158, 41.368790, 82.737579 -920, -3.000000, 165.655218, 41.413805, 82.827609 -921, -3.000000, 165.835278, 41.458820, 82.917639 -922, -3.000000, 166.015338, 41.503835, 83.007669 -923, -3.000000, 166.195398, 41.548850, 83.097699 -924, -3.000000, 166.375458, 41.593865, 83.187729 -925, -3.000000, 166.555519, 41.638880, 83.277759 -926, -3.000000, 166.735579, 41.683895, 83.367789 -927, -3.000000, 166.915639, 41.728910, 83.457819 -928, -3.000000, 167.095699, 41.773925, 83.547849 -929, -3.000000, 167.275759, 41.818940, 83.637879 -930, -3.000000, 167.455819, 41.863955, 83.727909 -931, -3.000000, 167.635879, 41.908970, 83.817939 -932, -3.000000, 167.815939, 41.953985, 83.907969 -933, -3.000000, 167.995999, 41.999000, 83.997999 -934, -3.000000, 168.176059, 42.044015, 84.088029 -935, -3.000000, 168.356119, 42.089030, 84.178059 -936, -3.000000, 168.536179, 42.134045, 84.268089 -937, -3.000000, 168.716239, 42.179060, 84.358119 -938, -3.000000, 168.896299, 42.224075, 84.448149 -939, -3.000000, 169.076359, 42.269090, 84.538179 -940, -3.000000, 169.256419, 42.314105, 84.628209 -941, -3.000000, 169.436479, 42.359120, 84.718239 -942, -3.000000, 169.616539, 42.404135, 84.808269 -943, -3.000000, 169.796599, 42.449150, 84.898299 -944, -3.000000, 169.976659, 42.494165, 84.988329 -945, -3.000000, 170.156719, 42.539180, 85.078359 -946, -3.000000, 170.336779, 42.584195, 85.168389 -947, -3.000000, 170.516839, 42.629210, 85.258419 -948, -3.000000, 170.696899, 42.674225, 85.348449 -949, -3.000000, 170.876959, 42.719240, 85.438479 -950, -3.000000, 171.057019, 42.764255, 85.528510 -951, -3.000000, 171.237079, 42.809270, 85.618540 -952, -3.000000, 171.417139, 42.854285, 85.708570 -953, -3.000000, 171.597199, 42.899300, 85.798600 -954, -3.000000, 171.777259, 42.944315, 85.888630 -955, -3.000000, 171.957319, 42.989330, 85.978660 -956, -3.000000, 172.137379, 43.034345, 86.068690 -957, -3.000000, 172.317439, 43.079360, 86.158720 -958, -3.000000, 172.497499, 43.124375, 86.248750 -959, -3.000000, 172.677559, 43.169390, 86.338780 -960, -3.000000, 172.857619, 43.214405, 86.428810 -961, -3.000000, 173.037679, 43.259420, 86.518840 -962, -3.000000, 173.217739, 43.304435, 86.608870 -963, -3.000000, 173.397799, 43.349450, 86.698900 -964, -3.000000, 173.577859, 43.394465, 86.788930 -965, -3.000000, 173.757919, 43.439480, 86.878960 -966, -3.000000, 173.937979, 43.484495, 86.968990 -967, -3.000000, 174.118039, 43.529510, 87.059020 -968, -3.000000, 174.298099, 43.574525, 87.149050 -969, -3.000000, 174.478159, 43.619540, 87.239080 -970, -3.000000, 174.658219, 43.664555, 87.329110 -971, -3.000000, 174.838279, 43.709570, 87.419140 -972, -3.000000, 175.018339, 43.754585, 87.509170 -973, -3.000000, 175.198399, 43.799600, 87.599200 -974, -3.000000, 175.378459, 43.844615, 87.689230 -975, -3.000000, 175.558520, 43.889630, 87.779260 -976, -3.000000, 175.738580, 43.934645, 87.869290 -977, -3.000000, 175.918640, 43.979660, 87.959320 -978, -3.000000, 176.098700, 44.024675, 88.049350 -979, -3.000000, 176.278760, 44.069690, 88.139380 -980, -3.000000, 176.458820, 44.114705, 88.229410 -981, -3.000000, 176.638880, 44.159720, 88.319440 -982, -3.000000, 176.818940, 44.204735, 88.409470 -983, -3.000000, 176.999000, 44.249750, 88.499500 -984, -3.000000, 177.179060, 44.294765, 88.589530 -985, -3.000000, 177.359120, 44.339780, 88.679560 -986, -3.000000, 177.539180, 44.384795, 88.769590 -987, -3.000000, 177.719240, 44.429810, 88.859620 -988, -3.000000, 177.899300, 44.474825, 88.949650 -989, -3.000000, 178.079360, 44.519840, 89.039680 -990, -3.000000, 178.259420, 44.564855, 89.129710 -991, -3.000000, 178.439480, 44.609870, 89.219740 -992, -3.000000, 178.619540, 44.654885, 89.309770 -993, -3.000000, 178.799600, 44.699900, 89.399800 -994, -3.000000, 178.979660, 44.744915, 89.489830 -995, -3.000000, 179.159720, 44.789930, 89.579860 -996, -3.000000, 179.339780, 44.834945, 89.669890 -997, -3.000000, 179.519840, 44.879960, 89.759920 -998, -3.000000, 179.699900, 44.924975, 89.849950 -999, -3.000000, 179.879960, 44.969990, 89.939980 -1000, -3.000000, 180.060020, 45.015005, 90.030010 -1001, -3.000000, 180.240080, 45.060020, 90.120040 -1002, -3.000000, 180.420140, 45.105035, 90.210070 -1003, -3.000000, 180.600200, 45.150050, 90.300100 -1004, -3.000000, 180.780260, 45.195065, 90.390130 -1005, -3.000000, 180.960320, 45.240080, 90.480160 -1006, -3.000000, 181.140380, 45.285095, 90.570190 -1007, -3.000000, 181.320440, 45.330110, 90.660220 -1008, -3.000000, 181.500500, 45.375125, 90.750250 -1009, -3.000000, 181.680560, 45.420140, 90.840280 -1010, -3.000000, 181.860620, 45.465155, 90.930310 -1011, -3.000000, 182.040680, 45.510170, 91.020340 -1012, -3.000000, 182.220740, 45.555185, 91.110370 -1013, -3.000000, 182.400800, 45.600200, 91.200400 -1014, -3.000000, 182.580860, 45.645215, 91.290430 -1015, -3.000000, 182.760920, 45.690230, 91.380460 -1016, -3.000000, 182.940980, 45.735245, 91.470490 -1017, -3.000000, 183.121040, 45.780260, 91.560520 -1018, -3.000000, 183.301100, 45.825275, 91.650550 -1019, -3.000000, 183.481160, 45.870290, 91.740580 -1020, -3.000000, 183.661220, 45.915305, 91.830610 -1021, -3.000000, 183.841280, 45.960320, 91.920640 -1022, -3.000000, 184.021340, 46.005335, 92.010670 -1023, -3.000000, 184.201400, 46.050350, 92.100700 -1024, -3.000000, 184.381460, 46.095365, 92.190730 -1025, -3.000000, 184.561521, 46.140380, 92.280760 -1026, -3.000000, 184.741581, 46.185395, 92.370790 -1027, -3.000000, 184.921641, 46.230410, 92.460820 -1028, -3.000000, 185.101701, 46.275425, 92.550850 -1029, -3.000000, 185.281761, 46.320440, 92.640880 -1030, -3.000000, 185.461821, 46.365455, 92.730910 -1031, -3.000000, 185.641881, 46.410470, 92.820940 -1032, -3.000000, 185.821941, 46.455485, 92.910970 -1033, -3.000000, 186.002001, 46.500500, 93.001000 -1034, -3.000000, 186.182061, 46.545515, 93.091030 -1035, -3.000000, 186.362121, 46.590530, 93.181060 -1036, -3.000000, 186.542181, 46.635545, 93.271090 -1037, -3.000000, 186.722241, 46.680560, 93.361120 -1038, -3.000000, 186.902301, 46.725575, 93.451150 -1039, -3.000000, 187.082361, 46.770590, 93.541180 -1040, -3.000000, 187.262421, 46.815605, 93.631210 -1041, -3.000000, 187.442481, 46.860620, 93.721240 -1042, -3.000000, 187.622541, 46.905635, 93.811270 -1043, -3.000000, 187.802601, 46.950650, 93.901300 -1044, -3.000000, 187.982661, 46.995665, 93.991330 -1045, -3.000000, 188.162721, 47.040680, 94.081360 -1046, -3.000000, 188.342781, 47.085695, 94.171390 -1047, -3.000000, 188.522841, 47.130710, 94.261420 -1048, -3.000000, 188.702901, 47.175725, 94.351450 -1049, -3.000000, 188.882961, 47.220740, 94.441480 -1050, -3.000000, 189.063021, 47.265755, 94.531511 -1051, -3.000000, 189.243081, 47.310770, 94.621541 -1052, -3.000000, 189.423141, 47.355785, 94.711571 -1053, -3.000000, 189.603201, 47.400800, 94.801601 -1054, -3.000000, 189.783261, 47.445815, 94.891631 -1055, -3.000000, 189.963321, 47.490830, 94.981661 -1056, -3.000000, 190.143381, 47.535845, 95.071691 -1057, -3.000000, 190.323441, 47.580860, 95.161721 -1058, -3.000000, 190.503501, 47.625875, 95.251751 -1059, -3.000000, 190.683561, 47.670890, 95.341781 -1060, -3.000000, 190.863621, 47.715905, 95.431811 -1061, -3.000000, 191.043681, 47.760920, 95.521841 -1062, -3.000000, 191.223741, 47.805935, 95.611871 -1063, -3.000000, 191.403801, 47.850950, 95.701901 -1064, -3.000000, 191.583861, 47.895965, 95.791931 -1065, -3.000000, 191.763921, 47.940980, 95.881961 -1066, -3.000000, 191.943981, 47.985995, 95.971991 -1067, -3.000000, 192.124041, 48.031010, 96.062021 -1068, -3.000000, 192.304101, 48.076025, 96.152051 -1069, -3.000000, 192.484161, 48.121040, 96.242081 -1070, -3.000000, 192.664221, 48.166055, 96.332111 -1071, -3.000000, 192.844281, 48.211070, 96.422141 -1072, -3.000000, 193.024341, 48.256085, 96.512171 -1073, -3.000000, 193.204401, 48.301100, 96.602201 -1074, -3.000000, 193.384461, 48.346115, 96.692231 -1075, -3.000000, 193.564522, 48.391130, 96.782261 -1076, -3.000000, 193.744582, 48.436145, 96.872291 -1077, -3.000000, 193.924642, 48.481160, 96.962321 -1078, -3.000000, 194.104702, 48.526175, 97.052351 -1079, -3.000000, 194.284762, 48.571190, 97.142381 -1080, -3.000000, 194.464822, 48.616205, 97.232411 -1081, -3.000000, 194.644882, 48.661220, 97.322441 -1082, -3.000000, 194.824942, 48.706235, 97.412471 -1083, -3.000000, 195.005002, 48.751250, 97.502501 -1084, -3.000000, 195.185062, 48.796265, 97.592531 -1085, -3.000000, 195.365122, 48.841280, 97.682561 -1086, -3.000000, 195.545182, 48.886295, 97.772591 -1087, -3.000000, 195.725242, 48.931310, 97.862621 -1088, -3.000000, 195.905302, 48.976325, 97.952651 -1089, -3.000000, 196.085362, 49.021340, 98.042681 -1090, -3.000000, 196.265422, 49.066355, 98.132711 -1091, -3.000000, 196.445482, 49.111370, 98.222741 -1092, -3.000000, 196.625542, 49.156385, 98.312771 -1093, -3.000000, 196.805602, 49.201400, 98.402801 -1094, -3.000000, 196.985662, 49.246415, 98.492831 -1095, -3.000000, 197.165722, 49.291430, 98.582861 -1096, -3.000000, 197.345782, 49.336445, 98.672891 -1097, -3.000000, 197.525842, 49.381460, 98.762921 -1098, -3.000000, 197.705902, 49.426475, 98.852951 -1099, -3.000000, 197.885962, 49.471490, 98.942981 -1100, -3.000000, 198.066022, 49.516506, 99.033011 -1101, -3.000000, 198.246082, 49.561521, 99.123041 -1102, -3.000000, 198.426142, 49.606536, 99.213071 -1103, -3.000000, 198.606202, 49.651551, 99.303101 -1104, -3.000000, 198.786262, 49.696566, 99.393131 -1105, -3.000000, 198.966322, 49.741581, 99.483161 -1106, -3.000000, 199.146382, 49.786596, 99.573191 -1107, -3.000000, 199.326442, 49.831611, 99.663221 -1108, -3.000000, 199.506502, 49.876626, 99.753251 -1109, -3.000000, 199.686562, 49.921641, 99.843281 -1110, -3.000000, 199.866622, 49.966656, 99.933311 -1111, -3.000000, 200.046682, 50.011671, 100.023341 -1112, -3.000000, 200.226742, 50.056686, 100.113371 -1113, -3.000000, 200.406802, 50.101701, 100.203401 -1114, -3.000000, 200.586862, 50.146716, 100.293431 -1115, -3.000000, 200.766922, 50.191731, 100.383461 -1116, -3.000000, 200.946982, 50.236746, 100.473491 -1117, -3.000000, 201.127042, 50.281761, 100.563521 -1118, -3.000000, 201.307102, 50.326776, 100.653551 -1119, -3.000000, 201.487162, 50.371791, 100.743581 -1120, -3.000000, 201.667222, 50.416806, 100.833611 -1121, -3.000000, 201.847282, 50.461821, 100.923641 -1122, -3.000000, 202.027342, 50.506836, 101.013671 -1123, -3.000000, 202.207402, 50.551851, 101.103701 -1124, -3.000000, 202.387462, 50.596866, 101.193731 -1125, -3.000000, 202.567523, 50.641881, 101.283761 -1126, -3.000000, 202.747583, 50.686896, 101.373791 -1127, -3.000000, 202.927643, 50.731911, 101.463821 -1128, -3.000000, 203.107703, 50.776926, 101.553851 -1129, -3.000000, 203.287763, 50.821941, 101.643881 -1130, -3.000000, 203.467823, 50.866956, 101.733911 -1131, -3.000000, 203.647883, 50.911971, 101.823941 -1132, -3.000000, 203.827943, 50.956986, 101.913971 -1133, -3.000000, 204.008003, 51.002001, 102.004001 -1134, -3.000000, 204.188063, 51.047016, 102.094031 -1135, -3.000000, 204.368123, 51.092031, 102.184061 -1136, -3.000000, 204.548183, 51.137046, 102.274091 -1137, -3.000000, 204.728243, 51.182061, 102.364121 -1138, -3.000000, 204.908303, 51.227076, 102.454151 -1139, -3.000000, 205.088363, 51.272091, 102.544181 -1140, -3.000000, 205.268423, 51.317106, 102.634211 -1141, -3.000000, 205.448483, 51.362121, 102.724241 -1142, -3.000000, 205.628543, 51.407136, 102.814271 -1143, -3.000000, 205.808603, 51.452151, 102.904301 -1144, -3.000000, 205.988663, 51.497166, 102.994331 -1145, -3.000000, 206.168723, 51.542181, 103.084361 -1146, -3.000000, 206.348783, 51.587196, 103.174391 -1147, -3.000000, 206.528843, 51.632211, 103.264421 -1148, -3.000000, 206.708903, 51.677226, 103.354451 -1149, -3.000000, 206.888963, 51.722241, 103.444481 -1150, -3.000000, 207.069023, 51.767256, 103.534512 -1151, -3.000000, 207.249083, 51.812271, 103.624542 -1152, -3.000000, 207.429143, 51.857286, 103.714572 -1153, -3.000000, 207.609203, 51.902301, 103.804602 -1154, -3.000000, 207.789263, 51.947316, 103.894632 -1155, -3.000000, 207.969323, 51.992331, 103.984662 -1156, -3.000000, 208.149383, 52.037346, 104.074692 -1157, -3.000000, 208.329443, 52.082361, 104.164722 -1158, -3.000000, 208.509503, 52.127376, 104.254752 -1159, -3.000000, 208.689563, 52.172391, 104.344782 -1160, -3.000000, 208.869623, 52.217406, 104.434812 -1161, -3.000000, 209.049683, 52.262421, 104.524842 -1162, -3.000000, 209.229743, 52.307436, 104.614872 -1163, -3.000000, 209.409803, 52.352451, 104.704902 -1164, -3.000000, 209.589863, 52.397466, 104.794932 -1165, -3.000000, 209.769923, 52.442481, 104.884962 -1166, -3.000000, 209.949983, 52.487496, 104.974992 -1167, -3.000000, 210.130043, 52.532511, 105.065022 -1168, -3.000000, 210.310103, 52.577526, 105.155052 -1169, -3.000000, 210.490163, 52.622541, 105.245082 -1170, -3.000000, 210.670223, 52.667556, 105.335112 -1171, -3.000000, 210.850283, 52.712571, 105.425142 -1172, -3.000000, 211.030343, 52.757586, 105.515172 -1173, -3.000000, 211.210403, 52.802601, 105.605202 -1174, -3.000000, 211.390463, 52.847616, 105.695232 -1175, -3.000000, 211.570524, 52.892631, 105.785262 -1176, -3.000000, 211.750584, 52.937646, 105.875292 -1177, -3.000000, 211.930644, 52.982661, 105.965322 -1178, -3.000000, 212.110704, 53.027676, 106.055352 -1179, -3.000000, 212.290764, 53.072691, 106.145382 -1180, -3.000000, 212.470824, 53.117706, 106.235412 -1181, -3.000000, 212.650884, 53.162721, 106.325442 -1182, -3.000000, 212.830944, 53.207736, 106.415472 -1183, -3.000000, 213.011004, 53.252751, 106.505502 -1184, -3.000000, 213.191064, 53.297766, 106.595532 -1185, -3.000000, 213.371124, 53.342781, 106.685562 -1186, -3.000000, 213.551184, 53.387796, 106.775592 -1187, -3.000000, 213.731244, 53.432811, 106.865622 -1188, -3.000000, 213.911304, 53.477826, 106.955652 -1189, -3.000000, 214.091364, 53.522841, 107.045682 -1190, -3.000000, 214.271424, 53.567856, 107.135712 -1191, -3.000000, 214.451484, 53.612871, 107.225742 -1192, -3.000000, 214.631544, 53.657886, 107.315772 -1193, -3.000000, 214.811604, 53.702901, 107.405802 -1194, -3.000000, 214.991664, 53.747916, 107.495832 -1195, -3.000000, 215.171724, 53.792931, 107.585862 -1196, -3.000000, 215.351784, 53.837946, 107.675892 -1197, -3.000000, 215.531844, 53.882961, 107.765922 -1198, -3.000000, 215.711904, 53.927976, 107.855952 -1199, -3.000000, 215.891964, 53.972991, 107.945982 -1200, -3.000000, 216.072024, 54.018006, 108.036012 -1201, -3.000000, 216.252084, 54.063021, 108.126042 -1202, -3.000000, 216.432144, 54.108036, 108.216072 -1203, -3.000000, 216.612204, 54.153051, 108.306102 -1204, -3.000000, 216.792264, 54.198066, 108.396132 -1205, -3.000000, 216.972324, 54.243081, 108.486162 -1206, -3.000000, 217.152384, 54.288096, 108.576192 -1207, -3.000000, 217.332444, 54.333111, 108.666222 -1208, -3.000000, 217.512504, 54.378126, 108.756252 -1209, -3.000000, 217.692564, 54.423141, 108.846282 -1210, -3.000000, 217.872624, 54.468156, 108.936312 -1211, -3.000000, 218.052684, 54.513171, 109.026342 -1212, -3.000000, 218.232744, 54.558186, 109.116372 -1213, -3.000000, 218.412804, 54.603201, 109.206402 -1214, -3.000000, 218.592864, 54.648216, 109.296432 -1215, -3.000000, 218.772924, 54.693231, 109.386462 -1216, -3.000000, 218.952984, 54.738246, 109.476492 -1217, -3.000000, 219.133044, 54.783261, 109.566522 -1218, -3.000000, 219.313104, 54.828276, 109.656552 -1219, -3.000000, 219.493164, 54.873291, 109.746582 -1220, -3.000000, 219.673224, 54.918306, 109.836612 -1221, -3.000000, 219.853284, 54.963321, 109.926642 -1222, -3.000000, 220.033344, 55.008336, 110.016672 -1223, -3.000000, 220.213404, 55.053351, 110.106702 -1224, -3.000000, 220.393464, 55.098366, 110.196732 -1225, -3.000000, 220.573525, 55.143381, 110.286762 -1226, -3.000000, 220.753585, 55.188396, 110.376792 -1227, -3.000000, 220.933645, 55.233411, 110.466822 -1228, -3.000000, 221.113705, 55.278426, 110.556852 -1229, -3.000000, 221.293765, 55.323441, 110.646882 -1230, -3.000000, 221.473825, 55.368456, 110.736912 -1231, -3.000000, 221.653885, 55.413471, 110.826942 -1232, -3.000000, 221.833945, 55.458486, 110.916972 -1233, -3.000000, 222.014005, 55.503501, 111.007002 -1234, -3.000000, 222.194065, 55.548516, 111.097032 -1235, -3.000000, 222.374125, 55.593531, 111.187062 -1236, -3.000000, 222.554185, 55.638546, 111.277092 -1237, -3.000000, 222.734245, 55.683561, 111.367122 -1238, -3.000000, 222.914305, 55.728576, 111.457152 -1239, -3.000000, 223.094365, 55.773591, 111.547182 -1240, -3.000000, 223.274425, 55.818606, 111.637212 -1241, -3.000000, 223.454485, 55.863621, 111.727242 -1242, -3.000000, 223.634545, 55.908636, 111.817272 -1243, -3.000000, 223.814605, 55.953651, 111.907302 -1244, -3.000000, 223.994665, 55.998666, 111.997332 -1245, -3.000000, 224.174725, 56.043681, 112.087362 -1246, -3.000000, 224.354785, 56.088696, 112.177392 -1247, -3.000000, 224.534845, 56.133711, 112.267422 -1248, -3.000000, 224.714905, 56.178726, 112.357452 -1249, -3.000000, 224.894965, 56.223741, 112.447482 -1250, -3.000000, 225.075025, 56.268756, 112.537513 -1251, -3.000000, 225.255085, 56.313771, 112.627543 -1252, -3.000000, 225.435145, 56.358786, 112.717573 -1253, -3.000000, 225.615205, 56.403801, 112.807603 -1254, -3.000000, 225.795265, 56.448816, 112.897633 -1255, -3.000000, 225.975325, 56.493831, 112.987663 -1256, -3.000000, 226.155385, 56.538846, 113.077693 -1257, -3.000000, 226.335445, 56.583861, 113.167723 -1258, -3.000000, 226.515505, 56.628876, 113.257753 -1259, -3.000000, 226.695565, 56.673891, 113.347783 -1260, -3.000000, 226.875625, 56.718906, 113.437813 -1261, -3.000000, 227.055685, 56.763921, 113.527843 -1262, -3.000000, 227.235745, 56.808936, 113.617873 -1263, -3.000000, 227.415805, 56.853951, 113.707903 -1264, -3.000000, 227.595865, 56.898966, 113.797933 -1265, -3.000000, 227.775925, 56.943981, 113.887963 -1266, -3.000000, 227.955985, 56.988996, 113.977993 -1267, -3.000000, 228.136045, 57.034011, 114.068023 -1268, -3.000000, 228.316105, 57.079026, 114.158053 -1269, -3.000000, 228.496165, 57.124041, 114.248083 -1270, -3.000000, 228.676225, 57.169056, 114.338113 -1271, -3.000000, 228.856285, 57.214071, 114.428143 -1272, -3.000000, 229.036345, 57.259086, 114.518173 -1273, -3.000000, 229.216405, 57.304101, 114.608203 -1274, -3.000000, 229.396465, 57.349116, 114.698233 -1275, -3.000000, 229.576526, 57.394131, 114.788263 -1276, -3.000000, 229.756586, 57.439146, 114.878293 -1277, -3.000000, 229.936646, 57.484161, 114.968323 -1278, -3.000000, 230.116706, 57.529176, 115.058353 -1279, -3.000000, 230.296766, 57.574191, 115.148383 -1280, -3.000000, 230.476826, 57.619206, 115.238413 -1281, -3.000000, 230.656886, 57.664221, 115.328443 -1282, -3.000000, 230.836946, 57.709236, 115.418473 -1283, -3.000000, 231.017006, 57.754251, 115.508503 -1284, -3.000000, 231.197066, 57.799266, 115.598533 -1285, -3.000000, 231.377126, 57.844281, 115.688563 -1286, -3.000000, 231.557186, 57.889296, 115.778593 -1287, -3.000000, 231.737246, 57.934311, 115.868623 -1288, -3.000000, 231.917306, 57.979326, 115.958653 -1289, -3.000000, 232.097366, 58.024341, 116.048683 -1290, -3.000000, 232.277426, 58.069356, 116.138713 -1291, -3.000000, 232.457486, 58.114371, 116.228743 -1292, -3.000000, 232.637546, 58.159386, 116.318773 -1293, -3.000000, 232.817606, 58.204401, 116.408803 -1294, -3.000000, 232.997666, 58.249416, 116.498833 -1295, -3.000000, 233.177726, 58.294431, 116.588863 -1296, -3.000000, 233.357786, 58.339446, 116.678893 -1297, -3.000000, 233.537846, 58.384461, 116.768923 -1298, -3.000000, 233.717906, 58.429476, 116.858953 -1299, -3.000000, 233.897966, 58.474491, 116.948983 -1300, -3.000000, 234.078026, 58.519507, 117.039013 -1301, -3.000000, 234.258086, 58.564522, 117.129043 -1302, -3.000000, 234.438146, 58.609537, 117.219073 -1303, -3.000000, 234.618206, 58.654552, 117.309103 -1304, -3.000000, 234.798266, 58.699567, 117.399133 -1305, -3.000000, 234.978326, 58.744582, 117.489163 -1306, -3.000000, 235.158386, 58.789597, 117.579193 -1307, -3.000000, 235.338446, 58.834612, 117.669223 -1308, -3.000000, 235.518506, 58.879627, 117.759253 -1309, -3.000000, 235.698566, 58.924642, 117.849283 -1310, -3.000000, 235.878626, 58.969657, 117.939313 -1311, -3.000000, 236.058686, 59.014672, 118.029343 -1312, -3.000000, 236.238746, 59.059687, 118.119373 -1313, -3.000000, 236.418806, 59.104702, 118.209403 -1314, -3.000000, 236.598866, 59.149717, 118.299433 -1315, -3.000000, 236.778926, 59.194732, 118.389463 -1316, -3.000000, 236.958986, 59.239747, 118.479493 -1317, -3.000000, 237.139046, 59.284762, 118.569523 -1318, -3.000000, 237.319106, 59.329777, 118.659553 -1319, -3.000000, 237.499166, 59.374792, 118.749583 -1320, -3.000000, 237.679226, 59.419807, 118.839613 -1321, -3.000000, 237.859286, 59.464822, 118.929643 -1322, -3.000000, 238.039346, 59.509837, 119.019673 -1323, -3.000000, 238.219406, 59.554852, 119.109703 -1324, -3.000000, 238.399466, 59.599867, 119.199733 -1325, -3.000000, 238.579527, 59.644882, 119.289763 -1326, -3.000000, 238.759587, 59.689897, 119.379793 -1327, -3.000000, 238.939647, 59.734912, 119.469823 -1328, -3.000000, 239.119707, 59.779927, 119.559853 -1329, -3.000000, 239.299767, 59.824942, 119.649883 -1330, -3.000000, 239.479827, 59.869957, 119.739913 -1331, -3.000000, 239.659887, 59.914972, 119.829943 -1332, -3.000000, 239.839947, 59.959987, 119.919973 -1333, -3.000000, 240.020007, 60.005002, 120.010003 -1334, -3.000000, 240.200067, 60.050017, 120.100033 -1335, -3.000000, 240.380127, 60.095032, 120.190063 -1336, -3.000000, 240.560187, 60.140047, 120.280093 -1337, -3.000000, 240.740247, 60.185062, 120.370123 -1338, -3.000000, 240.920307, 60.230077, 120.460153 -1339, -3.000000, 241.100367, 60.275092, 120.550183 -1340, -3.000000, 241.280427, 60.320107, 120.640213 -1341, -3.000000, 241.460487, 60.365122, 120.730243 -1342, -3.000000, 241.640547, 60.410137, 120.820273 -1343, -3.000000, 241.820607, 60.455152, 120.910303 -1344, -3.000000, 242.000667, 60.500167, 121.000333 -1345, -3.000000, 242.180727, 60.545182, 121.090363 -1346, -3.000000, 242.360787, 60.590197, 121.180393 -1347, -3.000000, 242.540847, 60.635212, 121.270423 -1348, -3.000000, 242.720907, 60.680227, 121.360453 -1349, -3.000000, 242.900967, 60.725242, 121.450483 -1350, -3.000000, 243.081027, 60.770257, 121.540514 -1351, -3.000000, 243.261087, 60.815272, 121.630544 -1352, -3.000000, 243.441147, 60.860287, 121.720574 -1353, -3.000000, 243.621207, 60.905302, 121.810604 -1354, -3.000000, 243.801267, 60.950317, 121.900634 -1355, -3.000000, 243.981327, 60.995332, 121.990664 -1356, -3.000000, 244.161387, 61.040347, 122.080694 -1357, -3.000000, 244.341447, 61.085362, 122.170724 -1358, -3.000000, 244.521507, 61.130377, 122.260754 -1359, -3.000000, 244.701567, 61.175392, 122.350784 -1360, -3.000000, 244.881627, 61.220407, 122.440814 -1361, -3.000000, 245.061687, 61.265422, 122.530844 -1362, -3.000000, 245.241747, 61.310437, 122.620874 -1363, -3.000000, 245.421807, 61.355452, 122.710904 -1364, -3.000000, 245.601867, 61.400467, 122.800934 -1365, -3.000000, 245.781927, 61.445482, 122.890964 -1366, -3.000000, 245.961987, 61.490497, 122.980994 -1367, -3.000000, 246.142047, 61.535512, 123.071024 -1368, -3.000000, 246.322107, 61.580527, 123.161054 -1369, -3.000000, 246.502167, 61.625542, 123.251084 -1370, -3.000000, 246.682227, 61.670557, 123.341114 -1371, -3.000000, 246.862287, 61.715572, 123.431144 -1372, -3.000000, 247.042347, 61.760587, 123.521174 -1373, -3.000000, 247.222407, 61.805602, 123.611204 -1374, -3.000000, 247.402467, 61.850617, 123.701234 -1375, -3.000000, 247.582528, 61.895632, 123.791264 -1376, -3.000000, 247.762588, 61.940647, 123.881294 -1377, -3.000000, 247.942648, 61.985662, 123.971324 -1378, -3.000000, 248.122708, 62.030677, 124.061354 -1379, -3.000000, 248.302768, 62.075692, 124.151384 -1380, -3.000000, 248.482828, 62.120707, 124.241414 -1381, -3.000000, 248.662888, 62.165722, 124.331444 -1382, -3.000000, 248.842948, 62.210737, 124.421474 -1383, -3.000000, 249.023008, 62.255752, 124.511504 -1384, -3.000000, 249.203068, 62.300767, 124.601534 -1385, -3.000000, 249.383128, 62.345782, 124.691564 -1386, -3.000000, 249.563188, 62.390797, 124.781594 -1387, -3.000000, 249.743248, 62.435812, 124.871624 -1388, -3.000000, 249.923308, 62.480827, 124.961654 -1389, -3.000000, 250.103368, 62.525842, 125.051684 -1390, -3.000000, 250.283428, 62.570857, 125.141714 -1391, -3.000000, 250.463488, 62.615872, 125.231744 -1392, -3.000000, 250.643548, 62.660887, 125.321774 -1393, -3.000000, 250.823608, 62.705902, 125.411804 -1394, -3.000000, 251.003668, 62.750917, 125.501834 -1395, -3.000000, 251.183728, 62.795932, 125.591864 -1396, -3.000000, 251.363788, 62.840947, 125.681894 -1397, -3.000000, 251.543848, 62.885962, 125.771924 -1398, -3.000000, 251.723908, 62.930977, 125.861954 -1399, -3.000000, 251.903968, 62.975992, 125.951984 -1400, -3.000000, 252.084028, 63.021007, 126.042014 -1401, -3.000000, 252.264088, 63.066022, 126.132044 -1402, -3.000000, 252.444148, 63.111037, 126.222074 -1403, -3.000000, 252.624208, 63.156052, 126.312104 -1404, -3.000000, 252.804268, 63.201067, 126.402134 -1405, -3.000000, 252.984328, 63.246082, 126.492164 -1406, -3.000000, 253.164388, 63.291097, 126.582194 -1407, -3.000000, 253.344448, 63.336112, 126.672224 -1408, -3.000000, 253.524508, 63.381127, 126.762254 -1409, -3.000000, 253.704568, 63.426142, 126.852284 -1410, -3.000000, 253.884628, 63.471157, 126.942314 -1411, -3.000000, 254.064688, 63.516172, 127.032344 -1412, -3.000000, 254.244748, 63.561187, 127.122374 -1413, -3.000000, 254.424808, 63.606202, 127.212404 -1414, -3.000000, 254.604868, 63.651217, 127.302434 -1415, -3.000000, 254.784928, 63.696232, 127.392464 -1416, -3.000000, 254.964988, 63.741247, 127.482494 -1417, -3.000000, 255.145048, 63.786262, 127.572524 -1418, -3.000000, 255.325108, 63.831277, 127.662554 -1419, -3.000000, 255.505168, 63.876292, 127.752584 -1420, -3.000000, 255.685228, 63.921307, 127.842614 -1421, -3.000000, 255.865288, 63.966322, 127.932644 -1422, -3.000000, 256.045348, 64.011337, 128.022674 -1423, -3.000000, 256.225408, 64.056352, 128.112704 -1424, -3.000000, 256.405468, 64.101367, 128.202734 -1425, -3.000000, 256.585529, 64.146382, 128.292764 -1426, -3.000000, 256.765589, 64.191397, 128.382794 -1427, -3.000000, 256.945649, 64.236412, 128.472824 -1428, -3.000000, 257.125709, 64.281427, 128.562854 -1429, -3.000000, 257.305769, 64.326442, 128.652884 -1430, -3.000000, 257.485829, 64.371457, 128.742914 -1431, -3.000000, 257.665889, 64.416472, 128.832944 -1432, -3.000000, 257.845949, 64.461487, 128.922974 -1433, -3.000000, 258.026009, 64.506502, 129.013004 -1434, -3.000000, 258.206069, 64.551517, 129.103034 -1435, -3.000000, 258.386129, 64.596532, 129.193064 -1436, -3.000000, 258.566189, 64.641547, 129.283094 -1437, -3.000000, 258.746249, 64.686562, 129.373124 -1438, -3.000000, 258.926309, 64.731577, 129.463154 -1439, -3.000000, 259.106369, 64.776592, 129.553184 -1440, -3.000000, 259.286429, 64.821607, 129.643214 -1441, -3.000000, 259.466489, 64.866622, 129.733244 -1442, -3.000000, 259.646549, 64.911637, 129.823274 -1443, -3.000000, 259.826609, 64.956652, 129.913304 -1444, -3.000000, 260.006669, 65.001667, 130.003334 -1445, -3.000000, 260.186729, 65.046682, 130.093364 -1446, -3.000000, 260.366789, 65.091697, 130.183394 -1447, -3.000000, 260.546849, 65.136712, 130.273424 -1448, -3.000000, 260.726909, 65.181727, 130.363454 -1449, -3.000000, 260.906969, 65.226742, 130.453484 -1450, -3.000000, 261.087029, 65.271757, 130.543515 -1451, -3.000000, 261.267089, 65.316772, 130.633545 -1452, -3.000000, 261.447149, 65.361787, 130.723575 -1453, -3.000000, 261.627209, 65.406802, 130.813605 -1454, -3.000000, 261.807269, 65.451817, 130.903635 -1455, -3.000000, 261.987329, 65.496832, 130.993665 -1456, -3.000000, 262.167389, 65.541847, 131.083695 -1457, -3.000000, 262.347449, 65.586862, 131.173725 -1458, -3.000000, 262.527509, 65.631877, 131.263755 -1459, -3.000000, 262.707569, 65.676892, 131.353785 -1460, -3.000000, 262.887629, 65.721907, 131.443815 -1461, -3.000000, 263.067689, 65.766922, 131.533845 -1462, -3.000000, 263.247749, 65.811937, 131.623875 -1463, -3.000000, 263.427809, 65.856952, 131.713905 -1464, -3.000000, 263.607869, 65.901967, 131.803935 -1465, -3.000000, 263.787929, 65.946982, 131.893965 -1466, -3.000000, 263.967989, 65.991997, 131.983995 -1467, -3.000000, 264.148049, 66.037012, 132.074025 -1468, -3.000000, 264.328109, 66.082027, 132.164055 -1469, -3.000000, 264.508169, 66.127042, 132.254085 -1470, -3.000000, 264.688229, 66.172057, 132.344115 -1471, -3.000000, 264.868289, 66.217072, 132.434145 -1472, -3.000000, 265.048349, 66.262087, 132.524175 -1473, -3.000000, 265.228409, 66.307102, 132.614205 -1474, -3.000000, 265.408469, 66.352117, 132.704235 -1475, -3.000000, 265.588530, 66.397132, 132.794265 -1476, -3.000000, 265.768590, 66.442147, 132.884295 -1477, -3.000000, 265.948650, 66.487162, 132.974325 -1478, -3.000000, 266.128710, 66.532177, 133.064355 -1479, -3.000000, 266.308770, 66.577192, 133.154385 -1480, -3.000000, 266.488830, 66.622207, 133.244415 -1481, -3.000000, 266.668890, 66.667222, 133.334445 -1482, -3.000000, 266.848950, 66.712237, 133.424475 -1483, -3.000000, 267.029010, 66.757252, 133.514505 -1484, -3.000000, 267.209070, 66.802267, 133.604535 -1485, -3.000000, 267.389130, 66.847282, 133.694565 -1486, -3.000000, 267.569190, 66.892297, 133.784595 -1487, -3.000000, 267.749250, 66.937312, 133.874625 -1488, -3.000000, 267.929310, 66.982327, 133.964655 -1489, -3.000000, 268.109370, 67.027342, 134.054685 -1490, -3.000000, 268.289430, 67.072357, 134.144715 -1491, -3.000000, 268.469490, 67.117372, 134.234745 -1492, -3.000000, 268.649550, 67.162387, 134.324775 -1493, -3.000000, 268.829610, 67.207402, 134.414805 -1494, -3.000000, 269.009670, 67.252417, 134.504835 -1495, -3.000000, 269.189730, 67.297432, 134.594865 -1496, -3.000000, 269.369790, 67.342447, 134.684895 -1497, -3.000000, 269.549850, 67.387462, 134.774925 -1498, -3.000000, 269.729910, 67.432477, 134.864955 -1499, -3.000000, 269.909970, 67.477492, 134.954985 -1500, -3.000000, 270.090030, 67.522508, 135.045015 -1501, -3.000000, 270.270090, 67.567523, 135.135045 -1502, -3.000000, 270.450150, 67.612538, 135.225075 -1503, -3.000000, 270.630210, 67.657553, 135.315105 -1504, -3.000000, 270.810270, 67.702568, 135.405135 -1505, -3.000000, 270.990330, 67.747583, 135.495165 -1506, -3.000000, 271.170390, 67.792598, 135.585195 -1507, -3.000000, 271.350450, 67.837613, 135.675225 -1508, -3.000000, 271.530510, 67.882628, 135.765255 -1509, -3.000000, 271.710570, 67.927643, 135.855285 -1510, -3.000000, 271.890630, 67.972658, 135.945315 -1511, -3.000000, 272.070690, 68.017673, 136.035345 -1512, -3.000000, 272.250750, 68.062688, 136.125375 -1513, -3.000000, 272.430810, 68.107703, 136.215405 -1514, -3.000000, 272.610870, 68.152718, 136.305435 -1515, -3.000000, 272.790930, 68.197733, 136.395465 -1516, -3.000000, 272.970990, 68.242748, 136.485495 -1517, -3.000000, 273.151050, 68.287763, 136.575525 -1518, -3.000000, 273.331110, 68.332778, 136.665555 -1519, -3.000000, 273.511170, 68.377793, 136.755585 -1520, -3.000000, 273.691230, 68.422808, 136.845615 -1521, -3.000000, 273.871290, 68.467823, 136.935645 -1522, -3.000000, 274.051350, 68.512838, 137.025675 -1523, -3.000000, 274.231410, 68.557853, 137.115705 -1524, -3.000000, 274.411470, 68.602868, 137.205735 -1525, -3.000000, 274.591531, 68.647883, 137.295765 -1526, -3.000000, 274.771591, 68.692898, 137.385795 -1527, -3.000000, 274.951651, 68.737913, 137.475825 -1528, -3.000000, 275.131711, 68.782928, 137.565855 -1529, -3.000000, 275.311771, 68.827943, 137.655885 -1530, -3.000000, 275.491831, 68.872958, 137.745915 -1531, -3.000000, 275.671891, 68.917973, 137.835945 -1532, -3.000000, 275.851951, 68.962988, 137.925975 -1533, -3.000000, 276.032011, 69.008003, 138.016005 -1534, -3.000000, 276.212071, 69.053018, 138.106035 -1535, -3.000000, 276.392131, 69.098033, 138.196065 -1536, -3.000000, 276.572191, 69.143048, 138.286095 -1537, -3.000000, 276.752251, 69.188063, 138.376125 -1538, -3.000000, 276.932311, 69.233078, 138.466155 -1539, -3.000000, 277.112371, 69.278093, 138.556185 -1540, -3.000000, 277.292431, 69.323108, 138.646215 -1541, -3.000000, 277.472491, 69.368123, 138.736245 -1542, -3.000000, 277.652551, 69.413138, 138.826275 -1543, -3.000000, 277.832611, 69.458153, 138.916305 -1544, -3.000000, 278.012671, 69.503168, 139.006335 -1545, -3.000000, 278.192731, 69.548183, 139.096365 -1546, -3.000000, 278.372791, 69.593198, 139.186395 -1547, -3.000000, 278.552851, 69.638213, 139.276425 -1548, -3.000000, 278.732911, 69.683228, 139.366455 -1549, -3.000000, 278.912971, 69.728243, 139.456485 -1550, -3.000000, 279.093031, 69.773258, 139.546516 -1551, -3.000000, 279.273091, 69.818273, 139.636546 -1552, -3.000000, 279.453151, 69.863288, 139.726576 -1553, -3.000000, 279.633211, 69.908303, 139.816606 -1554, -3.000000, 279.813271, 69.953318, 139.906636 -1555, -3.000000, 279.993331, 69.998333, 139.996666 -1556, -3.000000, 280.173391, 70.043348, 140.086696 -1557, -3.000000, 280.353451, 70.088363, 140.176726 -1558, -3.000000, 280.533511, 70.133378, 140.266756 -1559, -3.000000, 280.713571, 70.178393, 140.356786 -1560, -3.000000, 280.893631, 70.223408, 140.446816 -1561, -3.000000, 281.073691, 70.268423, 140.536846 -1562, -3.000000, 281.253751, 70.313438, 140.626876 -1563, -3.000000, 281.433811, 70.358453, 140.716906 -1564, -3.000000, 281.613871, 70.403468, 140.806936 -1565, -3.000000, 281.793931, 70.448483, 140.896966 -1566, -3.000000, 281.973991, 70.493498, 140.986996 -1567, -3.000000, 282.154051, 70.538513, 141.077026 -1568, -3.000000, 282.334111, 70.583528, 141.167056 -1569, -3.000000, 282.514171, 70.628543, 141.257086 -1570, -3.000000, 282.694231, 70.673558, 141.347116 -1571, -3.000000, 282.874291, 70.718573, 141.437146 -1572, -3.000000, 283.054351, 70.763588, 141.527176 -1573, -3.000000, 283.234411, 70.808603, 141.617206 -1574, -3.000000, 283.414471, 70.853618, 141.707236 -1575, -3.000000, 283.594532, 70.898633, 141.797266 -1576, -3.000000, 283.774592, 70.943648, 141.887296 -1577, -3.000000, 283.954652, 70.988663, 141.977326 -1578, -3.000000, 284.134712, 71.033678, 142.067356 -1579, -3.000000, 284.314772, 71.078693, 142.157386 -1580, -3.000000, 284.494832, 71.123708, 142.247416 -1581, -3.000000, 284.674892, 71.168723, 142.337446 -1582, -3.000000, 284.854952, 71.213738, 142.427476 -1583, -3.000000, 285.035012, 71.258753, 142.517506 -1584, -3.000000, 285.215072, 71.303768, 142.607536 -1585, -3.000000, 285.395132, 71.348783, 142.697566 -1586, -3.000000, 285.575192, 71.393798, 142.787596 -1587, -3.000000, 285.755252, 71.438813, 142.877626 -1588, -3.000000, 285.935312, 71.483828, 142.967656 -1589, -3.000000, 286.115372, 71.528843, 143.057686 -1590, -3.000000, 286.295432, 71.573858, 143.147716 -1591, -3.000000, 286.475492, 71.618873, 143.237746 -1592, -3.000000, 286.655552, 71.663888, 143.327776 -1593, -3.000000, 286.835612, 71.708903, 143.417806 -1594, -3.000000, 287.015672, 71.753918, 143.507836 -1595, -3.000000, 287.195732, 71.798933, 143.597866 -1596, -3.000000, 287.375792, 71.843948, 143.687896 -1597, -3.000000, 287.555852, 71.888963, 143.777926 -1598, -3.000000, 287.735912, 71.933978, 143.867956 -1599, -3.000000, 287.915972, 71.978993, 143.957986 -1600, -3.000000, 288.096032, 72.024008, 144.048016 -1601, -3.000000, 288.276092, 72.069023, 144.138046 -1602, -3.000000, 288.456152, 72.114038, 144.228076 -1603, -3.000000, 288.636212, 72.159053, 144.318106 -1604, -3.000000, 288.816272, 72.204068, 144.408136 -1605, -3.000000, 288.996332, 72.249083, 144.498166 -1606, -3.000000, 289.176392, 72.294098, 144.588196 -1607, -3.000000, 289.356452, 72.339113, 144.678226 -1608, -3.000000, 289.536512, 72.384128, 144.768256 -1609, -3.000000, 289.716572, 72.429143, 144.858286 -1610, -3.000000, 289.896632, 72.474158, 144.948316 -1611, -3.000000, 290.076692, 72.519173, 145.038346 -1612, -3.000000, 290.256752, 72.564188, 145.128376 -1613, -3.000000, 290.436812, 72.609203, 145.218406 -1614, -3.000000, 290.616872, 72.654218, 145.308436 -1615, -3.000000, 290.796932, 72.699233, 145.398466 -1616, -3.000000, 290.976992, 72.744248, 145.488496 -1617, -3.000000, 291.157052, 72.789263, 145.578526 -1618, -3.000000, 291.337112, 72.834278, 145.668556 -1619, -3.000000, 291.517172, 72.879293, 145.758586 -1620, -3.000000, 291.697232, 72.924308, 145.848616 -1621, -3.000000, 291.877292, 72.969323, 145.938646 -1622, -3.000000, 292.057352, 73.014338, 146.028676 -1623, -3.000000, 292.237412, 73.059353, 146.118706 -1624, -3.000000, 292.417472, 73.104368, 146.208736 -1625, -3.000000, 292.597533, 73.149383, 146.298766 -1626, -3.000000, 292.777593, 73.194398, 146.388796 -1627, -3.000000, 292.957653, 73.239413, 146.478826 -1628, -3.000000, 293.137713, 73.284428, 146.568856 -1629, -3.000000, 293.317773, 73.329443, 146.658886 -1630, -3.000000, 293.497833, 73.374458, 146.748916 -1631, -3.000000, 293.677893, 73.419473, 146.838946 -1632, -3.000000, 293.857953, 73.464488, 146.928976 -1633, -3.000000, 294.038013, 73.509503, 147.019006 -1634, -3.000000, 294.218073, 73.554518, 147.109036 -1635, -3.000000, 294.398133, 73.599533, 147.199066 -1636, -3.000000, 294.578193, 73.644548, 147.289096 -1637, -3.000000, 294.758253, 73.689563, 147.379126 -1638, -3.000000, 294.938313, 73.734578, 147.469156 -1639, -3.000000, 295.118373, 73.779593, 147.559186 -1640, -3.000000, 295.298433, 73.824608, 147.649216 -1641, -3.000000, 295.478493, 73.869623, 147.739246 -1642, -3.000000, 295.658553, 73.914638, 147.829276 -1643, -3.000000, 295.838613, 73.959653, 147.919306 -1644, -3.000000, 296.018673, 74.004668, 148.009336 -1645, -3.000000, 296.198733, 74.049683, 148.099366 -1646, -3.000000, 296.378793, 74.094698, 148.189396 -1647, -3.000000, 296.558853, 74.139713, 148.279426 -1648, -3.000000, 296.738913, 74.184728, 148.369456 -1649, -3.000000, 296.918973, 74.229743, 148.459486 -1650, -3.000000, 297.099033, 74.274758, 148.549517 -1651, -3.000000, 297.279093, 74.319773, 148.639547 -1652, -3.000000, 297.459153, 74.364788, 148.729577 -1653, -3.000000, 297.639213, 74.409803, 148.819607 -1654, -3.000000, 297.819273, 74.454818, 148.909637 -1655, -3.000000, 297.999333, 74.499833, 148.999667 -1656, -3.000000, 298.179393, 74.544848, 149.089697 -1657, -3.000000, 298.359453, 74.589863, 149.179727 -1658, -3.000000, 298.539513, 74.634878, 149.269757 -1659, -3.000000, 298.719573, 74.679893, 149.359787 -1660, -3.000000, 298.899633, 74.724908, 149.449817 -1661, -3.000000, 299.079693, 74.769923, 149.539847 -1662, -3.000000, 299.259753, 74.814938, 149.629877 -1663, -3.000000, 299.439813, 74.859953, 149.719907 -1664, -3.000000, 299.619873, 74.904968, 149.809937 -1665, -3.000000, 299.799933, 74.949983, 149.899967 -1666, -3.000000, 299.979993, 74.994998, 149.989997 -1667, -3.000000, 300.160053, 75.040013, 150.080027 -1668, -3.000000, 300.340113, 75.085028, 150.170057 -1669, -3.000000, 300.520173, 75.130043, 150.260087 -1670, -3.000000, 300.700233, 75.175058, 150.350117 -1671, -3.000000, 300.880293, 75.220073, 150.440147 -1672, -3.000000, 301.060353, 75.265088, 150.530177 -1673, -3.000000, 301.240413, 75.310103, 150.620207 -1674, -3.000000, 301.420473, 75.355118, 150.710237 -1675, -3.000000, 301.600534, 75.400133, 150.800267 -1676, -3.000000, 301.780594, 75.445148, 150.890297 -1677, -3.000000, 301.960654, 75.490163, 150.980327 -1678, -3.000000, 302.140714, 75.535178, 151.070357 -1679, -3.000000, 302.320774, 75.580193, 151.160387 -1680, -3.000000, 302.500834, 75.625208, 151.250417 -1681, -3.000000, 302.680894, 75.670223, 151.340447 -1682, -3.000000, 302.860954, 75.715238, 151.430477 -1683, -3.000000, 303.041014, 75.760253, 151.520507 -1684, -3.000000, 303.221074, 75.805268, 151.610537 -1685, -3.000000, 303.401134, 75.850283, 151.700567 -1686, -3.000000, 303.581194, 75.895298, 151.790597 -1687, -3.000000, 303.761254, 75.940313, 151.880627 -1688, -3.000000, 303.941314, 75.985328, 151.970657 -1689, -3.000000, 304.121374, 76.030343, 152.060687 -1690, -3.000000, 304.301434, 76.075358, 152.150717 -1691, -3.000000, 304.481494, 76.120373, 152.240747 -1692, -3.000000, 304.661554, 76.165388, 152.330777 -1693, -3.000000, 304.841614, 76.210403, 152.420807 -1694, -3.000000, 305.021674, 76.255418, 152.510837 -1695, -3.000000, 305.201734, 76.300433, 152.600867 -1696, -3.000000, 305.381794, 76.345448, 152.690897 -1697, -3.000000, 305.561854, 76.390463, 152.780927 -1698, -3.000000, 305.741914, 76.435478, 152.870957 -1699, -3.000000, 305.921974, 76.480493, 152.960987 -1700, -3.000000, 306.102034, 76.525509, 153.051017 -1701, -3.000000, 306.282094, 76.570524, 153.141047 -1702, -3.000000, 306.462154, 76.615539, 153.231077 -1703, -3.000000, 306.642214, 76.660554, 153.321107 -1704, -3.000000, 306.822274, 76.705569, 153.411137 -1705, -3.000000, 307.002334, 76.750584, 153.501167 -1706, -3.000000, 307.182394, 76.795599, 153.591197 -1707, -3.000000, 307.362454, 76.840614, 153.681227 -1708, -3.000000, 307.542514, 76.885629, 153.771257 -1709, -3.000000, 307.722574, 76.930644, 153.861287 -1710, -3.000000, 307.902634, 76.975659, 153.951317 -1711, -3.000000, 308.082694, 77.020674, 154.041347 -1712, -3.000000, 308.262754, 77.065689, 154.131377 -1713, -3.000000, 308.442814, 77.110704, 154.221407 -1714, -3.000000, 308.622874, 77.155719, 154.311437 -1715, -3.000000, 308.802934, 77.200734, 154.401467 -1716, -3.000000, 308.982994, 77.245749, 154.491497 -1717, -3.000000, 309.163054, 77.290764, 154.581527 -1718, -3.000000, 309.343114, 77.335779, 154.671557 -1719, -3.000000, 309.523174, 77.380794, 154.761587 -1720, -3.000000, 309.703234, 77.425809, 154.851617 -1721, -3.000000, 309.883294, 77.470824, 154.941647 -1722, -3.000000, 310.063354, 77.515839, 155.031677 -1723, -3.000000, 310.243414, 77.560854, 155.121707 -1724, -3.000000, 310.423474, 77.605869, 155.211737 -1725, -3.000000, 310.603535, 77.650884, 155.301767 -1726, -3.000000, 310.783595, 77.695899, 155.391797 -1727, -3.000000, 310.963655, 77.740914, 155.481827 -1728, -3.000000, 311.143715, 77.785929, 155.571857 -1729, -3.000000, 311.323775, 77.830944, 155.661887 -1730, -3.000000, 311.503835, 77.875959, 155.751917 -1731, -3.000000, 311.683895, 77.920974, 155.841947 -1732, -3.000000, 311.863955, 77.965989, 155.931977 -1733, -3.000000, 312.044015, 78.011004, 156.022007 -1734, -3.000000, 312.224075, 78.056019, 156.112037 -1735, -3.000000, 312.404135, 78.101034, 156.202067 -1736, -3.000000, 312.584195, 78.146049, 156.292097 -1737, -3.000000, 312.764255, 78.191064, 156.382127 -1738, -3.000000, 312.944315, 78.236079, 156.472157 -1739, -3.000000, 313.124375, 78.281094, 156.562187 -1740, -3.000000, 313.304435, 78.326109, 156.652217 -1741, -3.000000, 313.484495, 78.371124, 156.742247 -1742, -3.000000, 313.664555, 78.416139, 156.832277 -1743, -3.000000, 313.844615, 78.461154, 156.922307 -1744, -3.000000, 314.024675, 78.506169, 157.012337 -1745, -3.000000, 314.204735, 78.551184, 157.102367 -1746, -3.000000, 314.384795, 78.596199, 157.192397 -1747, -3.000000, 314.564855, 78.641214, 157.282427 -1748, -3.000000, 314.744915, 78.686229, 157.372457 -1749, -3.000000, 314.924975, 78.731244, 157.462487 -1750, -3.000000, 315.105035, 78.776259, 157.552518 -1751, -3.000000, 315.285095, 78.821274, 157.642548 -1752, -3.000000, 315.465155, 78.866289, 157.732578 -1753, -3.000000, 315.645215, 78.911304, 157.822608 -1754, -3.000000, 315.825275, 78.956319, 157.912638 -1755, -3.000000, 316.005335, 79.001334, 158.002668 -1756, -3.000000, 316.185395, 79.046349, 158.092698 -1757, -3.000000, 316.365455, 79.091364, 158.182728 -1758, -3.000000, 316.545515, 79.136379, 158.272758 -1759, -3.000000, 316.725575, 79.181394, 158.362788 -1760, -3.000000, 316.905635, 79.226409, 158.452818 -1761, -3.000000, 317.085695, 79.271424, 158.542848 -1762, -3.000000, 317.265755, 79.316439, 158.632878 -1763, -3.000000, 317.445815, 79.361454, 158.722908 -1764, -3.000000, 317.625875, 79.406469, 158.812938 -1765, -3.000000, 317.805935, 79.451484, 158.902968 -1766, -3.000000, 317.985995, 79.496499, 158.992998 -1767, -3.000000, 318.166055, 79.541514, 159.083028 -1768, -3.000000, 318.346115, 79.586529, 159.173058 -1769, -3.000000, 318.526175, 79.631544, 159.263088 -1770, -3.000000, 318.706235, 79.676559, 159.353118 -1771, -3.000000, 318.886295, 79.721574, 159.443148 -1772, -3.000000, 319.066355, 79.766589, 159.533178 -1773, -3.000000, 319.246415, 79.811604, 159.623208 -1774, -3.000000, 319.426475, 79.856619, 159.713238 -1775, -3.000000, 319.606536, 79.901634, 159.803268 -1776, -3.000000, 319.786596, 79.946649, 159.893298 -1777, -3.000000, 319.966656, 79.991664, 159.983328 -1778, -3.000000, 320.146716, 80.036679, 160.073358 -1779, -3.000000, 320.326776, 80.081694, 160.163388 -1780, -3.000000, 320.506836, 80.126709, 160.253418 -1781, -3.000000, 320.686896, 80.171724, 160.343448 -1782, -3.000000, 320.866956, 80.216739, 160.433478 -1783, -3.000000, 321.047016, 80.261754, 160.523508 -1784, -3.000000, 321.227076, 80.306769, 160.613538 -1785, -3.000000, 321.407136, 80.351784, 160.703568 -1786, -3.000000, 321.587196, 80.396799, 160.793598 -1787, -3.000000, 321.767256, 80.441814, 160.883628 -1788, -3.000000, 321.947316, 80.486829, 160.973658 -1789, -3.000000, 322.127376, 80.531844, 161.063688 -1790, -3.000000, 322.307436, 80.576859, 161.153718 -1791, -3.000000, 322.487496, 80.621874, 161.243748 -1792, -3.000000, 322.667556, 80.666889, 161.333778 -1793, -3.000000, 322.847616, 80.711904, 161.423808 -1794, -3.000000, 323.027676, 80.756919, 161.513838 -1795, -3.000000, 323.207736, 80.801934, 161.603868 -1796, -3.000000, 323.387796, 80.846949, 161.693898 -1797, -3.000000, 323.567856, 80.891964, 161.783928 -1798, -3.000000, 323.747916, 80.936979, 161.873958 -1799, -3.000000, 323.927976, 80.981994, 161.963988 -1800, -3.000000, 324.108036, 81.027009, 162.054018 -1801, -3.000000, 324.288096, 81.072024, 162.144048 -1802, -3.000000, 324.468156, 81.117039, 162.234078 -1803, -3.000000, 324.648216, 81.162054, 162.324108 -1804, -3.000000, 324.828276, 81.207069, 162.414138 -1805, -3.000000, 325.008336, 81.252084, 162.504168 -1806, -3.000000, 325.188396, 81.297099, 162.594198 -1807, -3.000000, 325.368456, 81.342114, 162.684228 -1808, -3.000000, 325.548516, 81.387129, 162.774258 -1809, -3.000000, 325.728576, 81.432144, 162.864288 -1810, -3.000000, 325.908636, 81.477159, 162.954318 -1811, -3.000000, 326.088696, 81.522174, 163.044348 -1812, -3.000000, 326.268756, 81.567189, 163.134378 -1813, -3.000000, 326.448816, 81.612204, 163.224408 -1814, -3.000000, 326.628876, 81.657219, 163.314438 -1815, -3.000000, 326.808936, 81.702234, 163.404468 -1816, -3.000000, 326.988996, 81.747249, 163.494498 -1817, -3.000000, 327.169056, 81.792264, 163.584528 -1818, -3.000000, 327.349116, 81.837279, 163.674558 -1819, -3.000000, 327.529176, 81.882294, 163.764588 -1820, -3.000000, 327.709236, 81.927309, 163.854618 -1821, -3.000000, 327.889296, 81.972324, 163.944648 -1822, -3.000000, 328.069356, 82.017339, 164.034678 -1823, -3.000000, 328.249416, 82.062354, 164.124708 -1824, -3.000000, 328.429476, 82.107369, 164.214738 -1825, -3.000000, 328.609537, 82.152384, 164.304768 -1826, -3.000000, 328.789597, 82.197399, 164.394798 -1827, -3.000000, 328.969657, 82.242414, 164.484828 -1828, -3.000000, 329.149717, 82.287429, 164.574858 -1829, -3.000000, 329.329777, 82.332444, 164.664888 -1830, -3.000000, 329.509837, 82.377459, 164.754918 -1831, -3.000000, 329.689897, 82.422474, 164.844948 -1832, -3.000000, 329.869957, 82.467489, 164.934978 -1833, -3.000000, 330.050017, 82.512504, 165.025008 -1834, -3.000000, 330.230077, 82.557519, 165.115038 -1835, -3.000000, 330.410137, 82.602534, 165.205068 -1836, -3.000000, 330.590197, 82.647549, 165.295098 -1837, -3.000000, 330.770257, 82.692564, 165.385128 -1838, -3.000000, 330.950317, 82.737579, 165.475158 -1839, -3.000000, 331.130377, 82.782594, 165.565188 -1840, -3.000000, 331.310437, 82.827609, 165.655218 -1841, -3.000000, 331.490497, 82.872624, 165.745248 -1842, -3.000000, 331.670557, 82.917639, 165.835278 -1843, -3.000000, 331.850617, 82.962654, 165.925308 -1844, -3.000000, 332.030677, 83.007669, 166.015338 -1845, -3.000000, 332.210737, 83.052684, 166.105368 -1846, -3.000000, 332.390797, 83.097699, 166.195398 -1847, -3.000000, 332.570857, 83.142714, 166.285428 -1848, -3.000000, 332.750917, 83.187729, 166.375458 -1849, -3.000000, 332.930977, 83.232744, 166.465488 -1850, -3.000000, 333.111037, 83.277759, 166.555519 -1851, -3.000000, 333.291097, 83.322774, 166.645549 -1852, -3.000000, 333.471157, 83.367789, 166.735579 -1853, -3.000000, 333.651217, 83.412804, 166.825609 -1854, -3.000000, 333.831277, 83.457819, 166.915639 -1855, -3.000000, 334.011337, 83.502834, 167.005669 -1856, -3.000000, 334.191397, 83.547849, 167.095699 -1857, -3.000000, 334.371457, 83.592864, 167.185729 -1858, -3.000000, 334.551517, 83.637879, 167.275759 -1859, -3.000000, 334.731577, 83.682894, 167.365789 -1860, -3.000000, 334.911637, 83.727909, 167.455819 -1861, -3.000000, 335.091697, 83.772924, 167.545849 -1862, -3.000000, 335.271757, 83.817939, 167.635879 -1863, -3.000000, 335.451817, 83.862954, 167.725909 -1864, -3.000000, 335.631877, 83.907969, 167.815939 -1865, -3.000000, 335.811937, 83.952984, 167.905969 -1866, -3.000000, 335.991997, 83.997999, 167.995999 -1867, -3.000000, 336.172057, 84.043014, 168.086029 -1868, -3.000000, 336.352117, 84.088029, 168.176059 -1869, -3.000000, 336.532177, 84.133044, 168.266089 -1870, -3.000000, 336.712237, 84.178059, 168.356119 -1871, -3.000000, 336.892297, 84.223074, 168.446149 -1872, -3.000000, 337.072357, 84.268089, 168.536179 -1873, -3.000000, 337.252417, 84.313104, 168.626209 -1874, -3.000000, 337.432477, 84.358119, 168.716239 -1875, -3.000000, 337.612538, 84.403134, 168.806269 -1876, -3.000000, 337.792598, 84.448149, 168.896299 -1877, -3.000000, 337.972658, 84.493164, 168.986329 -1878, -3.000000, 338.152718, 84.538179, 169.076359 -1879, -3.000000, 338.332778, 84.583194, 169.166389 -1880, -3.000000, 338.512838, 84.628209, 169.256419 -1881, -3.000000, 338.692898, 84.673224, 169.346449 -1882, -3.000000, 338.872958, 84.718239, 169.436479 -1883, -3.000000, 339.053018, 84.763254, 169.526509 -1884, -3.000000, 339.233078, 84.808269, 169.616539 -1885, -3.000000, 339.413138, 84.853284, 169.706569 -1886, -3.000000, 339.593198, 84.898299, 169.796599 -1887, -3.000000, 339.773258, 84.943314, 169.886629 -1888, -3.000000, 339.953318, 84.988329, 169.976659 -1889, -3.000000, 340.133378, 85.033344, 170.066689 -1890, -3.000000, 340.313438, 85.078359, 170.156719 -1891, -3.000000, 340.493498, 85.123374, 170.246749 -1892, -3.000000, 340.673558, 85.168389, 170.336779 -1893, -3.000000, 340.853618, 85.213404, 170.426809 -1894, -3.000000, 341.033678, 85.258419, 170.516839 -1895, -3.000000, 341.213738, 85.303434, 170.606869 -1896, -3.000000, 341.393798, 85.348449, 170.696899 -1897, -3.000000, 341.573858, 85.393464, 170.786929 -1898, -3.000000, 341.753918, 85.438479, 170.876959 -1899, -3.000000, 341.933978, 85.483494, 170.966989 -1900, -3.000000, 342.114038, 85.528510, 171.057019 -1901, -3.000000, 342.294098, 85.573525, 171.147049 -1902, -3.000000, 342.474158, 85.618540, 171.237079 -1903, -3.000000, 342.654218, 85.663555, 171.327109 -1904, -3.000000, 342.834278, 85.708570, 171.417139 -1905, -3.000000, 343.014338, 85.753585, 171.507169 -1906, -3.000000, 343.194398, 85.798600, 171.597199 -1907, -3.000000, 343.374458, 85.843615, 171.687229 -1908, -3.000000, 343.554518, 85.888630, 171.777259 -1909, -3.000000, 343.734578, 85.933645, 171.867289 -1910, -3.000000, 343.914638, 85.978660, 171.957319 -1911, -3.000000, 344.094698, 86.023675, 172.047349 -1912, -3.000000, 344.274758, 86.068690, 172.137379 -1913, -3.000000, 344.454818, 86.113705, 172.227409 -1914, -3.000000, 344.634878, 86.158720, 172.317439 -1915, -3.000000, 344.814938, 86.203735, 172.407469 -1916, -3.000000, 344.994998, 86.248750, 172.497499 -1917, -3.000000, 345.175058, 86.293765, 172.587529 -1918, -3.000000, 345.355118, 86.338780, 172.677559 -1919, -3.000000, 345.535178, 86.383795, 172.767589 -1920, -3.000000, 345.715238, 86.428810, 172.857619 -1921, -3.000000, 345.895298, 86.473825, 172.947649 -1922, -3.000000, 346.075358, 86.518840, 173.037679 -1923, -3.000000, 346.255418, 86.563855, 173.127709 -1924, -3.000000, 346.435478, 86.608870, 173.217739 -1925, -3.000000, 346.615539, 86.653885, 173.307769 -1926, -3.000000, 346.795599, 86.698900, 173.397799 -1927, -3.000000, 346.975659, 86.743915, 173.487829 -1928, -3.000000, 347.155719, 86.788930, 173.577859 -1929, -3.000000, 347.335779, 86.833945, 173.667889 -1930, -3.000000, 347.515839, 86.878960, 173.757919 -1931, -3.000000, 347.695899, 86.923975, 173.847949 -1932, -3.000000, 347.875959, 86.968990, 173.937979 -1933, -3.000000, 348.056019, 87.014005, 174.028009 -1934, -3.000000, 348.236079, 87.059020, 174.118039 -1935, -3.000000, 348.416139, 87.104035, 174.208069 -1936, -3.000000, 348.596199, 87.149050, 174.298099 -1937, -3.000000, 348.776259, 87.194065, 174.388129 -1938, -3.000000, 348.956319, 87.239080, 174.478159 -1939, -3.000000, 349.136379, 87.284095, 174.568189 -1940, -3.000000, 349.316439, 87.329110, 174.658219 -1941, -3.000000, 349.496499, 87.374125, 174.748249 -1942, -3.000000, 349.676559, 87.419140, 174.838279 -1943, -3.000000, 349.856619, 87.464155, 174.928309 -1944, -3.000000, 350.036679, 87.509170, 175.018339 -1945, -3.000000, 350.216739, 87.554185, 175.108369 -1946, -3.000000, 350.396799, 87.599200, 175.198399 -1947, -3.000000, 350.576859, 87.644215, 175.288429 -1948, -3.000000, 350.756919, 87.689230, 175.378459 -1949, -3.000000, 350.936979, 87.734245, 175.468489 -1950, -3.000000, 351.117039, 87.779260, 175.558520 -1951, -3.000000, 351.297099, 87.824275, 175.648550 -1952, -3.000000, 351.477159, 87.869290, 175.738580 -1953, -3.000000, 351.657219, 87.914305, 175.828610 -1954, -3.000000, 351.837279, 87.959320, 175.918640 -1955, -3.000000, 352.017339, 88.004335, 176.008670 -1956, -3.000000, 352.197399, 88.049350, 176.098700 -1957, -3.000000, 352.377459, 88.094365, 176.188730 -1958, -3.000000, 352.557519, 88.139380, 176.278760 -1959, -3.000000, 352.737579, 88.184395, 176.368790 -1960, -3.000000, 352.917639, 88.229410, 176.458820 -1961, -3.000000, 353.097699, 88.274425, 176.548850 -1962, -3.000000, 353.277759, 88.319440, 176.638880 -1963, -3.000000, 353.457819, 88.364455, 176.728910 -1964, -3.000000, 353.637879, 88.409470, 176.818940 -1965, -3.000000, 353.817939, 88.454485, 176.908970 -1966, -3.000000, 353.997999, 88.499500, 176.999000 -1967, -3.000000, 354.178059, 88.544515, 177.089030 -1968, -3.000000, 354.358119, 88.589530, 177.179060 -1969, -3.000000, 354.538179, 88.634545, 177.269090 -1970, -3.000000, 354.718239, 88.679560, 177.359120 -1971, -3.000000, 354.898299, 88.724575, 177.449150 -1972, -3.000000, 355.078359, 88.769590, 177.539180 -1973, -3.000000, 355.258419, 88.814605, 177.629210 -1974, -3.000000, 355.438479, 88.859620, 177.719240 -1975, -3.000000, 355.618540, 88.904635, 177.809270 -1976, -3.000000, 355.798600, 88.949650, 177.899300 -1977, -3.000000, 355.978660, 88.994665, 177.989330 -1978, -3.000000, 356.158720, 89.039680, 178.079360 -1979, -3.000000, 356.338780, 89.084695, 178.169390 -1980, -3.000000, 356.518840, 89.129710, 178.259420 -1981, -3.000000, 356.698900, 89.174725, 178.349450 -1982, -3.000000, 356.878960, 89.219740, 178.439480 -1983, -3.000000, 357.059020, 89.264755, 178.529510 -1984, -3.000000, 357.239080, 89.309770, 178.619540 -1985, -3.000000, 357.419140, 89.354785, 178.709570 -1986, -3.000000, 357.599200, 89.399800, 178.799600 -1987, -3.000000, 357.779260, 89.444815, 178.889630 -1988, -3.000000, 357.959320, 89.489830, 178.979660 -1989, -3.000000, 358.139380, 89.534845, 179.069690 -1990, -3.000000, 358.319440, 89.579860, 179.159720 -1991, -3.000000, 358.499500, 89.624875, 179.249750 -1992, -3.000000, 358.679560, 89.669890, 179.339780 -1993, -3.000000, 358.859620, 89.714905, 179.429810 -1994, -3.000000, 359.039680, 89.759920, 179.519840 -1995, -3.000000, 359.219740, 89.804935, 179.609870 -1996, -3.000000, 359.399800, 89.849950, 179.699900 -1997, -3.000000, 359.579860, 89.894965, 179.789930 -1998, -3.000000, 359.759920, 89.939980, 179.879960 -1999, -3.000000, 359.939980, 89.984995, 179.969990 -2000, -3.000000, 360.120040, 90.030010, 180.060020 -2001, -3.000000, 360.300100, 90.075025, 180.150050 -2002, -3.000000, 360.480160, 90.120040, 180.240080 -2003, -3.000000, 360.660220, 90.165055, 180.330110 -2004, -3.000000, 360.840280, 90.210070, 180.420140 -2005, -3.000000, 361.020340, 90.255085, 180.510170 -2006, -3.000000, 361.200400, 90.300100, 180.600200 -2007, -3.000000, 361.380460, 90.345115, 180.690230 -2008, -3.000000, 361.560520, 90.390130, 180.780260 -2009, -3.000000, 361.740580, 90.435145, 180.870290 -2010, -3.000000, 361.920640, 90.480160, 180.960320 -2011, -3.000000, 362.100700, 90.525175, 181.050350 -2012, -3.000000, 362.280760, 90.570190, 181.140380 -2013, -3.000000, 362.460820, 90.615205, 181.230410 -2014, -3.000000, 362.640880, 90.660220, 181.320440 -2015, -3.000000, 362.820940, 90.705235, 181.410470 -2016, -3.000000, 363.001000, 90.750250, 181.500500 -2017, -3.000000, 363.181060, 90.795265, 181.590530 -2018, -3.000000, 363.361120, 90.840280, 181.680560 -2019, -3.000000, 363.541180, 90.885295, 181.770590 -2020, -3.000000, 363.721240, 90.930310, 181.860620 -2021, -3.000000, 363.901300, 90.975325, 181.950650 -2022, -3.000000, 364.081360, 91.020340, 182.040680 -2023, -3.000000, 364.261420, 91.065355, 182.130710 -2024, -3.000000, 364.441480, 91.110370, 182.220740 -2025, -3.000000, 364.621541, 91.155385, 182.310770 -2026, -3.000000, 364.801601, 91.200400, 182.400800 -2027, -3.000000, 364.981661, 91.245415, 182.490830 -2028, -3.000000, 365.161721, 91.290430, 182.580860 -2029, -3.000000, 365.341781, 91.335445, 182.670890 -2030, -3.000000, 365.521841, 91.380460, 182.760920 -2031, -3.000000, 365.701901, 91.425475, 182.850950 -2032, -3.000000, 365.881961, 91.470490, 182.940980 -2033, -3.000000, 366.062021, 91.515505, 183.031010 -2034, -3.000000, 366.242081, 91.560520, 183.121040 -2035, -3.000000, 366.422141, 91.605535, 183.211070 -2036, -3.000000, 366.602201, 91.650550, 183.301100 -2037, -3.000000, 366.782261, 91.695565, 183.391130 -2038, -3.000000, 366.962321, 91.740580, 183.481160 -2039, -3.000000, 367.142381, 91.785595, 183.571190 -2040, -3.000000, 367.322441, 91.830610, 183.661220 -2041, -3.000000, 367.502501, 91.875625, 183.751250 -2042, -3.000000, 367.682561, 91.920640, 183.841280 -2043, -3.000000, 367.862621, 91.965655, 183.931310 -2044, -3.000000, 368.042681, 92.010670, 184.021340 -2045, -3.000000, 368.222741, 92.055685, 184.111370 -2046, -3.000000, 368.402801, 92.100700, 184.201400 -2047, -3.000000, 368.582861, 92.145715, 184.291430 -2048, -3.000000, 368.762921, 92.190730, 184.381460 -2049, -3.000000, 368.942981, 92.235745, 184.471490 -2050, -3.000000, 369.123041, 92.280760, 184.561521 -2051, -3.000000, 369.303101, 92.325775, 184.651551 -2052, -3.000000, 369.483161, 92.370790, 184.741581 -2053, -3.000000, 369.663221, 92.415805, 184.831611 -2054, -3.000000, 369.843281, 92.460820, 184.921641 -2055, -3.000000, 370.023341, 92.505835, 185.011671 -2056, -3.000000, 370.203401, 92.550850, 185.101701 -2057, -3.000000, 370.383461, 92.595865, 185.191731 -2058, -3.000000, 370.563521, 92.640880, 185.281761 -2059, -3.000000, 370.743581, 92.685895, 185.371791 -2060, -3.000000, 370.923641, 92.730910, 185.461821 -2061, -3.000000, 371.103701, 92.775925, 185.551851 -2062, -3.000000, 371.283761, 92.820940, 185.641881 -2063, -3.000000, 371.463821, 92.865955, 185.731911 -2064, -3.000000, 371.643881, 92.910970, 185.821941 -2065, -3.000000, 371.823941, 92.955985, 185.911971 -2066, -3.000000, 372.004001, 93.001000, 186.002001 -2067, -3.000000, 372.184061, 93.046015, 186.092031 -2068, -3.000000, 372.364121, 93.091030, 186.182061 -2069, -3.000000, 372.544181, 93.136045, 186.272091 -2070, -3.000000, 372.724241, 93.181060, 186.362121 -2071, -3.000000, 372.904301, 93.226075, 186.452151 -2072, -3.000000, 373.084361, 93.271090, 186.542181 -2073, -3.000000, 373.264421, 93.316105, 186.632211 -2074, -3.000000, 373.444481, 93.361120, 186.722241 -2075, -3.000000, 373.624542, 93.406135, 186.812271 -2076, -3.000000, 373.804602, 93.451150, 186.902301 -2077, -3.000000, 373.984662, 93.496165, 186.992331 -2078, -3.000000, 374.164722, 93.541180, 187.082361 -2079, -3.000000, 374.344782, 93.586195, 187.172391 -2080, -3.000000, 374.524842, 93.631210, 187.262421 -2081, -3.000000, 374.704902, 93.676225, 187.352451 -2082, -3.000000, 374.884962, 93.721240, 187.442481 -2083, -3.000000, 375.065022, 93.766255, 187.532511 -2084, -3.000000, 375.245082, 93.811270, 187.622541 -2085, -3.000000, 375.425142, 93.856285, 187.712571 -2086, -3.000000, 375.605202, 93.901300, 187.802601 -2087, -3.000000, 375.785262, 93.946315, 187.892631 -2088, -3.000000, 375.965322, 93.991330, 187.982661 -2089, -3.000000, 376.145382, 94.036345, 188.072691 -2090, -3.000000, 376.325442, 94.081360, 188.162721 -2091, -3.000000, 376.505502, 94.126375, 188.252751 -2092, -3.000000, 376.685562, 94.171390, 188.342781 -2093, -3.000000, 376.865622, 94.216405, 188.432811 -2094, -3.000000, 377.045682, 94.261420, 188.522841 -2095, -3.000000, 377.225742, 94.306435, 188.612871 -2096, -3.000000, 377.405802, 94.351450, 188.702901 -2097, -3.000000, 377.585862, 94.396465, 188.792931 -2098, -3.000000, 377.765922, 94.441480, 188.882961 -2099, -3.000000, 377.945982, 94.486495, 188.972991 -2100, -3.000000, 378.126042, 94.531511, 189.063021 -2101, -3.000000, 378.306102, 94.576526, 189.153051 -2102, -3.000000, 378.486162, 94.621541, 189.243081 -2103, -3.000000, 378.666222, 94.666556, 189.333111 -2104, -3.000000, 378.846282, 94.711571, 189.423141 -2105, -3.000000, 379.026342, 94.756586, 189.513171 -2106, -3.000000, 379.206402, 94.801601, 189.603201 -2107, -3.000000, 379.386462, 94.846616, 189.693231 -2108, -3.000000, 379.566522, 94.891631, 189.783261 -2109, -3.000000, 379.746582, 94.936646, 189.873291 -2110, -3.000000, 379.926642, 94.981661, 189.963321 -2111, -3.000000, 380.106702, 95.026676, 190.053351 -2112, -3.000000, 380.286762, 95.071691, 190.143381 -2113, -3.000000, 380.466822, 95.116706, 190.233411 -2114, -3.000000, 380.646882, 95.161721, 190.323441 -2115, -3.000000, 380.826942, 95.206736, 190.413471 -2116, -3.000000, 381.007002, 95.251751, 190.503501 -2117, -3.000000, 381.187062, 95.296766, 190.593531 -2118, -3.000000, 381.367122, 95.341781, 190.683561 -2119, -3.000000, 381.547182, 95.386796, 190.773591 -2120, -3.000000, 381.727242, 95.431811, 190.863621 -2121, -3.000000, 381.907302, 95.476826, 190.953651 -2122, -3.000000, 382.087362, 95.521841, 191.043681 -2123, -3.000000, 382.267422, 95.566856, 191.133711 -2124, -3.000000, 382.447482, 95.611871, 191.223741 -2125, -3.000000, 382.627543, 95.656886, 191.313771 -2126, -3.000000, 382.807603, 95.701901, 191.403801 -2127, -3.000000, 382.987663, 95.746916, 191.493831 -2128, -3.000000, 383.167723, 95.791931, 191.583861 -2129, -3.000000, 383.347783, 95.836946, 191.673891 -2130, -3.000000, 383.527843, 95.881961, 191.763921 -2131, -3.000000, 383.707903, 95.926976, 191.853951 -2132, -3.000000, 383.887963, 95.971991, 191.943981 -2133, -3.000000, 384.068023, 96.017006, 192.034011 -2134, -3.000000, 384.248083, 96.062021, 192.124041 -2135, -3.000000, 384.428143, 96.107036, 192.214071 -2136, -3.000000, 384.608203, 96.152051, 192.304101 -2137, -3.000000, 384.788263, 96.197066, 192.394131 -2138, -3.000000, 384.968323, 96.242081, 192.484161 -2139, -3.000000, 385.148383, 96.287096, 192.574191 -2140, -3.000000, 385.328443, 96.332111, 192.664221 -2141, -3.000000, 385.508503, 96.377126, 192.754251 -2142, -3.000000, 385.688563, 96.422141, 192.844281 -2143, -3.000000, 385.868623, 96.467156, 192.934311 -2144, -3.000000, 386.048683, 96.512171, 193.024341 -2145, -3.000000, 386.228743, 96.557186, 193.114371 -2146, -3.000000, 386.408803, 96.602201, 193.204401 -2147, -3.000000, 386.588863, 96.647216, 193.294431 -2148, -3.000000, 386.768923, 96.692231, 193.384461 -2149, -3.000000, 386.948983, 96.737246, 193.474491 -2150, -3.000000, 387.129043, 96.782261, 193.564522 -2151, -3.000000, 387.309103, 96.827276, 193.654552 -2152, -3.000000, 387.489163, 96.872291, 193.744582 -2153, -3.000000, 387.669223, 96.917306, 193.834612 -2154, -3.000000, 387.849283, 96.962321, 193.924642 -2155, -3.000000, 388.029343, 97.007336, 194.014672 -2156, -3.000000, 388.209403, 97.052351, 194.104702 -2157, -3.000000, 388.389463, 97.097366, 194.194732 -2158, -3.000000, 388.569523, 97.142381, 194.284762 -2159, -3.000000, 388.749583, 97.187396, 194.374792 -2160, -3.000000, 388.929643, 97.232411, 194.464822 -2161, -3.000000, 389.109703, 97.277426, 194.554852 -2162, -3.000000, 389.289763, 97.322441, 194.644882 -2163, -3.000000, 389.469823, 97.367456, 194.734912 -2164, -3.000000, 389.649883, 97.412471, 194.824942 -2165, -3.000000, 389.829943, 97.457486, 194.914972 -2166, -3.000000, 390.010003, 97.502501, 195.005002 -2167, -3.000000, 390.190063, 97.547516, 195.095032 -2168, -3.000000, 390.370123, 97.592531, 195.185062 -2169, -3.000000, 390.550183, 97.637546, 195.275092 -2170, -3.000000, 390.730243, 97.682561, 195.365122 -2171, -3.000000, 390.910303, 97.727576, 195.455152 -2172, -3.000000, 391.090363, 97.772591, 195.545182 -2173, -3.000000, 391.270423, 97.817606, 195.635212 -2174, -3.000000, 391.450483, 97.862621, 195.725242 -2175, -3.000000, 391.630544, 97.907636, 195.815272 -2176, -3.000000, 391.810604, 97.952651, 195.905302 -2177, -3.000000, 391.990664, 97.997666, 195.995332 -2178, -3.000000, 392.170724, 98.042681, 196.085362 -2179, -3.000000, 392.350784, 98.087696, 196.175392 -2180, -3.000000, 392.530844, 98.132711, 196.265422 -2181, -3.000000, 392.710904, 98.177726, 196.355452 -2182, -3.000000, 392.890964, 98.222741, 196.445482 -2183, -3.000000, 393.071024, 98.267756, 196.535512 -2184, -3.000000, 393.251084, 98.312771, 196.625542 -2185, -3.000000, 393.431144, 98.357786, 196.715572 -2186, -3.000000, 393.611204, 98.402801, 196.805602 -2187, -3.000000, 393.791264, 98.447816, 196.895632 -2188, -3.000000, 393.971324, 98.492831, 196.985662 -2189, -3.000000, 394.151384, 98.537846, 197.075692 -2190, -3.000000, 394.331444, 98.582861, 197.165722 -2191, -3.000000, 394.511504, 98.627876, 197.255752 -2192, -3.000000, 394.691564, 98.672891, 197.345782 -2193, -3.000000, 394.871624, 98.717906, 197.435812 -2194, -3.000000, 395.051684, 98.762921, 197.525842 -2195, -3.000000, 395.231744, 98.807936, 197.615872 -2196, -3.000000, 395.411804, 98.852951, 197.705902 -2197, -3.000000, 395.591864, 98.897966, 197.795932 -2198, -3.000000, 395.771924, 98.942981, 197.885962 -2199, -3.000000, 395.951984, 98.987996, 197.975992 -2200, -3.000000, 396.132044, 99.033011, 198.066022 -2201, -3.000000, 396.312104, 99.078026, 198.156052 -2202, -3.000000, 396.492164, 99.123041, 198.246082 -2203, -3.000000, 396.672224, 99.168056, 198.336112 -2204, -3.000000, 396.852284, 99.213071, 198.426142 -2205, -3.000000, 397.032344, 99.258086, 198.516172 -2206, -3.000000, 397.212404, 99.303101, 198.606202 -2207, -3.000000, 397.392464, 99.348116, 198.696232 -2208, -3.000000, 397.572524, 99.393131, 198.786262 -2209, -3.000000, 397.752584, 99.438146, 198.876292 -2210, -3.000000, 397.932644, 99.483161, 198.966322 -2211, -3.000000, 398.112704, 99.528176, 199.056352 -2212, -3.000000, 398.292764, 99.573191, 199.146382 -2213, -3.000000, 398.472824, 99.618206, 199.236412 -2214, -3.000000, 398.652884, 99.663221, 199.326442 -2215, -3.000000, 398.832944, 99.708236, 199.416472 -2216, -3.000000, 399.013004, 99.753251, 199.506502 -2217, -3.000000, 399.193064, 99.798266, 199.596532 -2218, -3.000000, 399.373124, 99.843281, 199.686562 -2219, -3.000000, 399.553184, 99.888296, 199.776592 -2220, -3.000000, 399.733244, 99.933311, 199.866622 -2221, -3.000000, 399.913304, 99.978326, 199.956652 -2222, -3.000000, 400.093364, 100.023341, 200.046682 -2223, -3.000000, 400.273424, 100.068356, 200.136712 -2224, -3.000000, 400.453484, 100.113371, 200.226742 -2225, -3.000000, 400.633545, 100.158386, 200.316772 -2226, -3.000000, 400.813605, 100.203401, 200.406802 -2227, -3.000000, 400.993665, 100.248416, 200.496832 -2228, -3.000000, 401.173725, 100.293431, 200.586862 -2229, -3.000000, 401.353785, 100.338446, 200.676892 -2230, -3.000000, 401.533845, 100.383461, 200.766922 -2231, -3.000000, 401.713905, 100.428476, 200.856952 -2232, -3.000000, 401.893965, 100.473491, 200.946982 -2233, -3.000000, 402.074025, 100.518506, 201.037012 -2234, -3.000000, 402.254085, 100.563521, 201.127042 -2235, -3.000000, 402.434145, 100.608536, 201.217072 -2236, -3.000000, 402.614205, 100.653551, 201.307102 -2237, -3.000000, 402.794265, 100.698566, 201.397132 -2238, -3.000000, 402.974325, 100.743581, 201.487162 -2239, -3.000000, 403.154385, 100.788596, 201.577192 -2240, -3.000000, 403.334445, 100.833611, 201.667222 -2241, -3.000000, 403.514505, 100.878626, 201.757252 -2242, -3.000000, 403.694565, 100.923641, 201.847282 -2243, -3.000000, 403.874625, 100.968656, 201.937312 -2244, -3.000000, 404.054685, 101.013671, 202.027342 -2245, -3.000000, 404.234745, 101.058686, 202.117372 -2246, -3.000000, 404.414805, 101.103701, 202.207402 -2247, -3.000000, 404.594865, 101.148716, 202.297432 -2248, -3.000000, 404.774925, 101.193731, 202.387462 -2249, -3.000000, 404.954985, 101.238746, 202.477492 -2250, -3.000000, 405.135045, 101.283761, 202.567523 -2251, -3.000000, 405.315105, 101.328776, 202.657553 -2252, -3.000000, 405.495165, 101.373791, 202.747583 -2253, -3.000000, 405.675225, 101.418806, 202.837613 -2254, -3.000000, 405.855285, 101.463821, 202.927643 -2255, -3.000000, 406.035345, 101.508836, 203.017673 -2256, -3.000000, 406.215405, 101.553851, 203.107703 -2257, -3.000000, 406.395465, 101.598866, 203.197733 -2258, -3.000000, 406.575525, 101.643881, 203.287763 -2259, -3.000000, 406.755585, 101.688896, 203.377793 -2260, -3.000000, 406.935645, 101.733911, 203.467823 -2261, -3.000000, 407.115705, 101.778926, 203.557853 -2262, -3.000000, 407.295765, 101.823941, 203.647883 -2263, -3.000000, 407.475825, 101.868956, 203.737913 -2264, -3.000000, 407.655885, 101.913971, 203.827943 -2265, -3.000000, 407.835945, 101.958986, 203.917973 -2266, -3.000000, 408.016005, 102.004001, 204.008003 -2267, -3.000000, 408.196065, 102.049016, 204.098033 -2268, -3.000000, 408.376125, 102.094031, 204.188063 -2269, -3.000000, 408.556185, 102.139046, 204.278093 -2270, -3.000000, 408.736245, 102.184061, 204.368123 -2271, -3.000000, 408.916305, 102.229076, 204.458153 -2272, -3.000000, 409.096365, 102.274091, 204.548183 -2273, -3.000000, 409.276425, 102.319106, 204.638213 -2274, -3.000000, 409.456485, 102.364121, 204.728243 -2275, -3.000000, 409.636546, 102.409136, 204.818273 -2276, -3.000000, 409.816606, 102.454151, 204.908303 -2277, -3.000000, 409.996666, 102.499166, 204.998333 -2278, -3.000000, 410.176726, 102.544181, 205.088363 -2279, -3.000000, 410.356786, 102.589196, 205.178393 -2280, -3.000000, 410.536846, 102.634211, 205.268423 -2281, -3.000000, 410.716906, 102.679226, 205.358453 -2282, -3.000000, 410.896966, 102.724241, 205.448483 -2283, -3.000000, 411.077026, 102.769256, 205.538513 -2284, -3.000000, 411.257086, 102.814271, 205.628543 -2285, -3.000000, 411.437146, 102.859286, 205.718573 -2286, -3.000000, 411.617206, 102.904301, 205.808603 -2287, -3.000000, 411.797266, 102.949316, 205.898633 -2288, -3.000000, 411.977326, 102.994331, 205.988663 -2289, -3.000000, 412.157386, 103.039346, 206.078693 -2290, -3.000000, 412.337446, 103.084361, 206.168723 -2291, -3.000000, 412.517506, 103.129376, 206.258753 -2292, -3.000000, 412.697566, 103.174391, 206.348783 -2293, -3.000000, 412.877626, 103.219406, 206.438813 -2294, -3.000000, 413.057686, 103.264421, 206.528843 -2295, -3.000000, 413.237746, 103.309436, 206.618873 -2296, -3.000000, 413.417806, 103.354451, 206.708903 -2297, -3.000000, 413.597866, 103.399466, 206.798933 -2298, -3.000000, 413.777926, 103.444481, 206.888963 -2299, -3.000000, 413.957986, 103.489496, 206.978993 -2300, -3.000000, 414.138046, 103.534512, 207.069023 -2301, -3.000000, 414.318106, 103.579527, 207.159053 -2302, -3.000000, 414.498166, 103.624542, 207.249083 -2303, -3.000000, 414.678226, 103.669557, 207.339113 -2304, -3.000000, 414.858286, 103.714572, 207.429143 -2305, -3.000000, 415.038346, 103.759587, 207.519173 -2306, -3.000000, 415.218406, 103.804602, 207.609203 -2307, -3.000000, 415.398466, 103.849617, 207.699233 -2308, -3.000000, 415.578526, 103.894632, 207.789263 -2309, -3.000000, 415.758586, 103.939647, 207.879293 -2310, -3.000000, 415.938646, 103.984662, 207.969323 -2311, -3.000000, 416.118706, 104.029677, 208.059353 -2312, -3.000000, 416.298766, 104.074692, 208.149383 -2313, -3.000000, 416.478826, 104.119707, 208.239413 -2314, -3.000000, 416.658886, 104.164722, 208.329443 -2315, -3.000000, 416.838946, 104.209737, 208.419473 -2316, -3.000000, 417.019006, 104.254752, 208.509503 -2317, -3.000000, 417.199066, 104.299767, 208.599533 -2318, -3.000000, 417.379126, 104.344782, 208.689563 -2319, -3.000000, 417.559186, 104.389797, 208.779593 -2320, -3.000000, 417.739246, 104.434812, 208.869623 -2321, -3.000000, 417.919306, 104.479827, 208.959653 -2322, -3.000000, 418.099366, 104.524842, 209.049683 -2323, -3.000000, 418.279426, 104.569857, 209.139713 -2324, -3.000000, 418.459486, 104.614872, 209.229743 -2325, -3.000000, 418.639547, 104.659887, 209.319773 -2326, -3.000000, 418.819607, 104.704902, 209.409803 -2327, -3.000000, 418.999667, 104.749917, 209.499833 -2328, -3.000000, 419.179727, 104.794932, 209.589863 -2329, -3.000000, 419.359787, 104.839947, 209.679893 -2330, -3.000000, 419.539847, 104.884962, 209.769923 -2331, -3.000000, 419.719907, 104.929977, 209.859953 -2332, -3.000000, 419.899967, 104.974992, 209.949983 -2333, -3.000000, 420.080027, 105.020007, 210.040013 -2334, -3.000000, 420.260087, 105.065022, 210.130043 -2335, -3.000000, 420.440147, 105.110037, 210.220073 -2336, -3.000000, 420.620207, 105.155052, 210.310103 -2337, -3.000000, 420.800267, 105.200067, 210.400133 -2338, -3.000000, 420.980327, 105.245082, 210.490163 -2339, -3.000000, 421.160387, 105.290097, 210.580193 -2340, -3.000000, 421.340447, 105.335112, 210.670223 -2341, -3.000000, 421.520507, 105.380127, 210.760253 -2342, -3.000000, 421.700567, 105.425142, 210.850283 -2343, -3.000000, 421.880627, 105.470157, 210.940313 -2344, -3.000000, 422.060687, 105.515172, 211.030343 -2345, -3.000000, 422.240747, 105.560187, 211.120373 -2346, -3.000000, 422.420807, 105.605202, 211.210403 -2347, -3.000000, 422.600867, 105.650217, 211.300433 -2348, -3.000000, 422.780927, 105.695232, 211.390463 -2349, -3.000000, 422.960987, 105.740247, 211.480493 -2350, -3.000000, 423.141047, 105.785262, 211.570524 -2351, -3.000000, 423.321107, 105.830277, 211.660554 -2352, -3.000000, 423.501167, 105.875292, 211.750584 -2353, -3.000000, 423.681227, 105.920307, 211.840614 -2354, -3.000000, 423.861287, 105.965322, 211.930644 -2355, -3.000000, 424.041347, 106.010337, 212.020674 -2356, -3.000000, 424.221407, 106.055352, 212.110704 -2357, -3.000000, 424.401467, 106.100367, 212.200734 -2358, -3.000000, 424.581527, 106.145382, 212.290764 -2359, -3.000000, 424.761587, 106.190397, 212.380794 -2360, -3.000000, 424.941647, 106.235412, 212.470824 -2361, -3.000000, 425.121707, 106.280427, 212.560854 -2362, -3.000000, 425.301767, 106.325442, 212.650884 -2363, -3.000000, 425.481827, 106.370457, 212.740914 -2364, -3.000000, 425.661887, 106.415472, 212.830944 -2365, -3.000000, 425.841947, 106.460487, 212.920974 -2366, -3.000000, 426.022007, 106.505502, 213.011004 -2367, -3.000000, 426.202067, 106.550517, 213.101034 -2368, -3.000000, 426.382127, 106.595532, 213.191064 -2369, -3.000000, 426.562187, 106.640547, 213.281094 -2370, -3.000000, 426.742247, 106.685562, 213.371124 -2371, -3.000000, 426.922307, 106.730577, 213.461154 -2372, -3.000000, 427.102367, 106.775592, 213.551184 -2373, -3.000000, 427.282427, 106.820607, 213.641214 -2374, -3.000000, 427.462487, 106.865622, 213.731244 -2375, -3.000000, 427.642548, 106.910637, 213.821274 -2376, -3.000000, 427.822608, 106.955652, 213.911304 -2377, -3.000000, 428.002668, 107.000667, 214.001334 -2378, -3.000000, 428.182728, 107.045682, 214.091364 -2379, -3.000000, 428.362788, 107.090697, 214.181394 -2380, -3.000000, 428.542848, 107.135712, 214.271424 -2381, -3.000000, 428.722908, 107.180727, 214.361454 -2382, -3.000000, 428.902968, 107.225742, 214.451484 -2383, -3.000000, 429.083028, 107.270757, 214.541514 -2384, -3.000000, 429.263088, 107.315772, 214.631544 -2385, -3.000000, 429.443148, 107.360787, 214.721574 -2386, -3.000000, 429.623208, 107.405802, 214.811604 -2387, -3.000000, 429.803268, 107.450817, 214.901634 -2388, -3.000000, 429.983328, 107.495832, 214.991664 -2389, -3.000000, 430.163388, 107.540847, 215.081694 -2390, -3.000000, 430.343448, 107.585862, 215.171724 -2391, -3.000000, 430.523508, 107.630877, 215.261754 -2392, -3.000000, 430.703568, 107.675892, 215.351784 -2393, -3.000000, 430.883628, 107.720907, 215.441814 -2394, -3.000000, 431.063688, 107.765922, 215.531844 -2395, -3.000000, 431.243748, 107.810937, 215.621874 -2396, -3.000000, 431.423808, 107.855952, 215.711904 -2397, -3.000000, 431.603868, 107.900967, 215.801934 -2398, -3.000000, 431.783928, 107.945982, 215.891964 -2399, -3.000000, 431.963988, 107.990997, 215.981994 -2400, -3.000000, 432.144048, 108.036012, 216.072024 -2401, -3.000000, 432.324108, 108.081027, 216.162054 -2402, -3.000000, 432.504168, 108.126042, 216.252084 -2403, -3.000000, 432.684228, 108.171057, 216.342114 -2404, -3.000000, 432.864288, 108.216072, 216.432144 -2405, -3.000000, 433.044348, 108.261087, 216.522174 -2406, -3.000000, 433.224408, 108.306102, 216.612204 -2407, -3.000000, 433.404468, 108.351117, 216.702234 -2408, -3.000000, 433.584528, 108.396132, 216.792264 -2409, -3.000000, 433.764588, 108.441147, 216.882294 -2410, -3.000000, 433.944648, 108.486162, 216.972324 -2411, -3.000000, 434.124708, 108.531177, 217.062354 -2412, -3.000000, 434.304768, 108.576192, 217.152384 -2413, -3.000000, 434.484828, 108.621207, 217.242414 -2414, -3.000000, 434.664888, 108.666222, 217.332444 -2415, -3.000000, 434.844948, 108.711237, 217.422474 -2416, -3.000000, 435.025008, 108.756252, 217.512504 -2417, -3.000000, 435.205068, 108.801267, 217.602534 -2418, -3.000000, 435.385128, 108.846282, 217.692564 -2419, -3.000000, 435.565188, 108.891297, 217.782594 -2420, -3.000000, 435.745248, 108.936312, 217.872624 -2421, -3.000000, 435.925308, 108.981327, 217.962654 -2422, -3.000000, 436.105368, 109.026342, 218.052684 -2423, -3.000000, 436.285428, 109.071357, 218.142714 -2424, -3.000000, 436.465488, 109.116372, 218.232744 -2425, -3.000000, 436.645549, 109.161387, 218.322774 -2426, -3.000000, 436.825609, 109.206402, 218.412804 -2427, -3.000000, 437.005669, 109.251417, 218.502834 -2428, -3.000000, 437.185729, 109.296432, 218.592864 -2429, -3.000000, 437.365789, 109.341447, 218.682894 -2430, -3.000000, 437.545849, 109.386462, 218.772924 -2431, -3.000000, 437.725909, 109.431477, 218.862954 -2432, -3.000000, 437.905969, 109.476492, 218.952984 -2433, -3.000000, 438.086029, 109.521507, 219.043014 -2434, -3.000000, 438.266089, 109.566522, 219.133044 -2435, -3.000000, 438.446149, 109.611537, 219.223074 -2436, -3.000000, 438.626209, 109.656552, 219.313104 -2437, -3.000000, 438.806269, 109.701567, 219.403134 -2438, -3.000000, 438.986329, 109.746582, 219.493164 -2439, -3.000000, 439.166389, 109.791597, 219.583194 -2440, -3.000000, 439.346449, 109.836612, 219.673224 -2441, -3.000000, 439.526509, 109.881627, 219.763254 -2442, -3.000000, 439.706569, 109.926642, 219.853284 -2443, -3.000000, 439.886629, 109.971657, 219.943314 -2444, -3.000000, 440.066689, 110.016672, 220.033344 -2445, -3.000000, 440.246749, 110.061687, 220.123374 -2446, -3.000000, 440.426809, 110.106702, 220.213404 -2447, -3.000000, 440.606869, 110.151717, 220.303434 -2448, -3.000000, 440.786929, 110.196732, 220.393464 -2449, -3.000000, 440.966989, 110.241747, 220.483494 -2450, -3.000000, 441.147049, 110.286762, 220.573525 -2451, -3.000000, 441.327109, 110.331777, 220.663555 -2452, -3.000000, 441.507169, 110.376792, 220.753585 -2453, -3.000000, 441.687229, 110.421807, 220.843615 -2454, -3.000000, 441.867289, 110.466822, 220.933645 -2455, -3.000000, 442.047349, 110.511837, 221.023675 -2456, -3.000000, 442.227409, 110.556852, 221.113705 -2457, -3.000000, 442.407469, 110.601867, 221.203735 -2458, -3.000000, 442.587529, 110.646882, 221.293765 -2459, -3.000000, 442.767589, 110.691897, 221.383795 -2460, -3.000000, 442.947649, 110.736912, 221.473825 -2461, -3.000000, 443.127709, 110.781927, 221.563855 -2462, -3.000000, 443.307769, 110.826942, 221.653885 -2463, -3.000000, 443.487829, 110.871957, 221.743915 -2464, -3.000000, 443.667889, 110.916972, 221.833945 -2465, -3.000000, 443.847949, 110.961987, 221.923975 -2466, -3.000000, 444.028009, 111.007002, 222.014005 -2467, -3.000000, 444.208069, 111.052017, 222.104035 -2468, -3.000000, 444.388129, 111.097032, 222.194065 -2469, -3.000000, 444.568189, 111.142047, 222.284095 -2470, -3.000000, 444.748249, 111.187062, 222.374125 -2471, -3.000000, 444.928309, 111.232077, 222.464155 -2472, -3.000000, 445.108369, 111.277092, 222.554185 -2473, -3.000000, 445.288429, 111.322107, 222.644215 -2474, -3.000000, 445.468489, 111.367122, 222.734245 -2475, -3.000000, 445.648550, 111.412137, 222.824275 -2476, -3.000000, 445.828610, 111.457152, 222.914305 -2477, -3.000000, 446.008670, 111.502167, 223.004335 -2478, -3.000000, 446.188730, 111.547182, 223.094365 -2479, -3.000000, 446.368790, 111.592197, 223.184395 -2480, -3.000000, 446.548850, 111.637212, 223.274425 -2481, -3.000000, 446.728910, 111.682227, 223.364455 -2482, -3.000000, 446.908970, 111.727242, 223.454485 -2483, -3.000000, 447.089030, 111.772257, 223.544515 -2484, -3.000000, 447.269090, 111.817272, 223.634545 -2485, -3.000000, 447.449150, 111.862287, 223.724575 -2486, -3.000000, 447.629210, 111.907302, 223.814605 -2487, -3.000000, 447.809270, 111.952317, 223.904635 -2488, -3.000000, 447.989330, 111.997332, 223.994665 -2489, -3.000000, 448.169390, 112.042347, 224.084695 -2490, -3.000000, 448.349450, 112.087362, 224.174725 -2491, -3.000000, 448.529510, 112.132377, 224.264755 -2492, -3.000000, 448.709570, 112.177392, 224.354785 -2493, -3.000000, 448.889630, 112.222407, 224.444815 -2494, -3.000000, 449.069690, 112.267422, 224.534845 -2495, -3.000000, 449.249750, 112.312437, 224.624875 -2496, -3.000000, 449.429810, 112.357452, 224.714905 -2497, -3.000000, 449.609870, 112.402467, 224.804935 -2498, -3.000000, 449.789930, 112.447482, 224.894965 -2499, -3.000000, 449.969990, 112.492497, 224.984995 -2500, -3.000000, 450.150050, 112.537513, 225.075025 -2501, -3.000000, 450.330110, 112.582528, 225.165055 -2502, -3.000000, 450.510170, 112.627543, 225.255085 -2503, -3.000000, 450.690230, 112.672558, 225.345115 -2504, -3.000000, 450.870290, 112.717573, 225.435145 -2505, -3.000000, 451.050350, 112.762588, 225.525175 -2506, -3.000000, 451.230410, 112.807603, 225.615205 -2507, -3.000000, 451.410470, 112.852618, 225.705235 -2508, -3.000000, 451.590530, 112.897633, 225.795265 -2509, -3.000000, 451.770590, 112.942648, 225.885295 -2510, -3.000000, 451.950650, 112.987663, 225.975325 -2511, -3.000000, 452.130710, 113.032678, 226.065355 -2512, -3.000000, 452.310770, 113.077693, 226.155385 -2513, -3.000000, 452.490830, 113.122708, 226.245415 -2514, -3.000000, 452.670890, 113.167723, 226.335445 -2515, -3.000000, 452.850950, 113.212738, 226.425475 -2516, -3.000000, 453.031010, 113.257753, 226.515505 -2517, -3.000000, 453.211070, 113.302768, 226.605535 -2518, -3.000000, 453.391130, 113.347783, 226.695565 -2519, -3.000000, 453.571190, 113.392798, 226.785595 -2520, -3.000000, 453.751250, 113.437813, 226.875625 -2521, -3.000000, 453.931310, 113.482828, 226.965655 -2522, -3.000000, 454.111370, 113.527843, 227.055685 -2523, -3.000000, 454.291430, 113.572858, 227.145715 -2524, -3.000000, 454.471490, 113.617873, 227.235745 -2525, -3.000000, 454.651551, 113.662888, 227.325775 -2526, -3.000000, 454.831611, 113.707903, 227.415805 -2527, -3.000000, 455.011671, 113.752918, 227.505835 -2528, -3.000000, 455.191731, 113.797933, 227.595865 -2529, -3.000000, 455.371791, 113.842948, 227.685895 -2530, -3.000000, 455.551851, 113.887963, 227.775925 -2531, -3.000000, 455.731911, 113.932978, 227.865955 -2532, -3.000000, 455.911971, 113.977993, 227.955985 -2533, -3.000000, 456.092031, 114.023008, 228.046015 -2534, -3.000000, 456.272091, 114.068023, 228.136045 -2535, -3.000000, 456.452151, 114.113038, 228.226075 -2536, -3.000000, 456.632211, 114.158053, 228.316105 -2537, -3.000000, 456.812271, 114.203068, 228.406135 -2538, -3.000000, 456.992331, 114.248083, 228.496165 -2539, -3.000000, 457.172391, 114.293098, 228.586195 -2540, -3.000000, 457.352451, 114.338113, 228.676225 -2541, -3.000000, 457.532511, 114.383128, 228.766255 -2542, -3.000000, 457.712571, 114.428143, 228.856285 -2543, -3.000000, 457.892631, 114.473158, 228.946315 -2544, -3.000000, 458.072691, 114.518173, 229.036345 -2545, -3.000000, 458.252751, 114.563188, 229.126375 -2546, -3.000000, 458.432811, 114.608203, 229.216405 -2547, -3.000000, 458.612871, 114.653218, 229.306435 -2548, -3.000000, 458.792931, 114.698233, 229.396465 -2549, -3.000000, 458.972991, 114.743248, 229.486495 -2550, -3.000000, 459.153051, 114.788263, 229.576526 -2551, -3.000000, 459.333111, 114.833278, 229.666556 -2552, -3.000000, 459.513171, 114.878293, 229.756586 -2553, -3.000000, 459.693231, 114.923308, 229.846616 -2554, -3.000000, 459.873291, 114.968323, 229.936646 -2555, -3.000000, 460.053351, 115.013338, 230.026676 -2556, -3.000000, 460.233411, 115.058353, 230.116706 -2557, -3.000000, 460.413471, 115.103368, 230.206736 -2558, -3.000000, 460.593531, 115.148383, 230.296766 -2559, -3.000000, 460.773591, 115.193398, 230.386796 -2560, -3.000000, 460.953651, 115.238413, 230.476826 -2561, -3.000000, 461.133711, 115.283428, 230.566856 -2562, -3.000000, 461.313771, 115.328443, 230.656886 -2563, -3.000000, 461.493831, 115.373458, 230.746916 -2564, -3.000000, 461.673891, 115.418473, 230.836946 -2565, -3.000000, 461.853951, 115.463488, 230.926976 -2566, -3.000000, 462.034011, 115.508503, 231.017006 -2567, -3.000000, 462.214071, 115.553518, 231.107036 -2568, -3.000000, 462.394131, 115.598533, 231.197066 -2569, -3.000000, 462.574191, 115.643548, 231.287096 -2570, -3.000000, 462.754251, 115.688563, 231.377126 -2571, -3.000000, 462.934311, 115.733578, 231.467156 -2572, -3.000000, 463.114371, 115.778593, 231.557186 -2573, -3.000000, 463.294431, 115.823608, 231.647216 -2574, -3.000000, 463.474491, 115.868623, 231.737246 -2575, -3.000000, 463.654552, 115.913638, 231.827276 -2576, -3.000000, 463.834612, 115.958653, 231.917306 -2577, -3.000000, 464.014672, 116.003668, 232.007336 -2578, -3.000000, 464.194732, 116.048683, 232.097366 -2579, -3.000000, 464.374792, 116.093698, 232.187396 -2580, -3.000000, 464.554852, 116.138713, 232.277426 -2581, -3.000000, 464.734912, 116.183728, 232.367456 -2582, -3.000000, 464.914972, 116.228743, 232.457486 -2583, -3.000000, 465.095032, 116.273758, 232.547516 -2584, -3.000000, 465.275092, 116.318773, 232.637546 -2585, -3.000000, 465.455152, 116.363788, 232.727576 -2586, -3.000000, 465.635212, 116.408803, 232.817606 -2587, -3.000000, 465.815272, 116.453818, 232.907636 -2588, -3.000000, 465.995332, 116.498833, 232.997666 -2589, -3.000000, 466.175392, 116.543848, 233.087696 -2590, -3.000000, 466.355452, 116.588863, 233.177726 -2591, -3.000000, 466.535512, 116.633878, 233.267756 -2592, -3.000000, 466.715572, 116.678893, 233.357786 -2593, -3.000000, 466.895632, 116.723908, 233.447816 -2594, -3.000000, 467.075692, 116.768923, 233.537846 -2595, -3.000000, 467.255752, 116.813938, 233.627876 -2596, -3.000000, 467.435812, 116.858953, 233.717906 -2597, -3.000000, 467.615872, 116.903968, 233.807936 -2598, -3.000000, 467.795932, 116.948983, 233.897966 -2599, -3.000000, 467.975992, 116.993998, 233.987996 -2600, -3.000000, 468.156052, 117.039013, 234.078026 -2601, -3.000000, 468.336112, 117.084028, 234.168056 -2602, -3.000000, 468.516172, 117.129043, 234.258086 -2603, -3.000000, 468.696232, 117.174058, 234.348116 -2604, -3.000000, 468.876292, 117.219073, 234.438146 -2605, -3.000000, 469.056352, 117.264088, 234.528176 -2606, -3.000000, 469.236412, 117.309103, 234.618206 -2607, -3.000000, 469.416472, 117.354118, 234.708236 -2608, -3.000000, 469.596532, 117.399133, 234.798266 -2609, -3.000000, 469.776592, 117.444148, 234.888296 -2610, -3.000000, 469.956652, 117.489163, 234.978326 -2611, -3.000000, 470.136712, 117.534178, 235.068356 -2612, -3.000000, 470.316772, 117.579193, 235.158386 -2613, -3.000000, 470.496832, 117.624208, 235.248416 -2614, -3.000000, 470.676892, 117.669223, 235.338446 -2615, -3.000000, 470.856952, 117.714238, 235.428476 -2616, -3.000000, 471.037012, 117.759253, 235.518506 -2617, -3.000000, 471.217072, 117.804268, 235.608536 -2618, -3.000000, 471.397132, 117.849283, 235.698566 -2619, -3.000000, 471.577192, 117.894298, 235.788596 -2620, -3.000000, 471.757252, 117.939313, 235.878626 -2621, -3.000000, 471.937312, 117.984328, 235.968656 -2622, -3.000000, 472.117372, 118.029343, 236.058686 -2623, -3.000000, 472.297432, 118.074358, 236.148716 -2624, -3.000000, 472.477492, 118.119373, 236.238746 -2625, -3.000000, 472.657553, 118.164388, 236.328776 -2626, -3.000000, 472.837613, 118.209403, 236.418806 -2627, -3.000000, 473.017673, 118.254418, 236.508836 -2628, -3.000000, 473.197733, 118.299433, 236.598866 -2629, -3.000000, 473.377793, 118.344448, 236.688896 -2630, -3.000000, 473.557853, 118.389463, 236.778926 -2631, -3.000000, 473.737913, 118.434478, 236.868956 -2632, -3.000000, 473.917973, 118.479493, 236.958986 -2633, -3.000000, 474.098033, 118.524508, 237.049016 -2634, -3.000000, 474.278093, 118.569523, 237.139046 -2635, -3.000000, 474.458153, 118.614538, 237.229076 -2636, -3.000000, 474.638213, 118.659553, 237.319106 -2637, -3.000000, 474.818273, 118.704568, 237.409136 -2638, -3.000000, 474.998333, 118.749583, 237.499166 -2639, -3.000000, 475.178393, 118.794598, 237.589196 -2640, -3.000000, 475.358453, 118.839613, 237.679226 -2641, -3.000000, 475.538513, 118.884628, 237.769256 -2642, -3.000000, 475.718573, 118.929643, 237.859286 -2643, -3.000000, 475.898633, 118.974658, 237.949316 -2644, -3.000000, 476.078693, 119.019673, 238.039346 -2645, -3.000000, 476.258753, 119.064688, 238.129376 -2646, -3.000000, 476.438813, 119.109703, 238.219406 -2647, -3.000000, 476.618873, 119.154718, 238.309436 -2648, -3.000000, 476.798933, 119.199733, 238.399466 -2649, -3.000000, 476.978993, 119.244748, 238.489496 -2650, -3.000000, 477.159053, 119.289763, 238.579527 -2651, -3.000000, 477.339113, 119.334778, 238.669557 -2652, -3.000000, 477.519173, 119.379793, 238.759587 -2653, -3.000000, 477.699233, 119.424808, 238.849617 -2654, -3.000000, 477.879293, 119.469823, 238.939647 -2655, -3.000000, 478.059353, 119.514838, 239.029677 -2656, -3.000000, 478.239413, 119.559853, 239.119707 -2657, -3.000000, 478.419473, 119.604868, 239.209737 -2658, -3.000000, 478.599533, 119.649883, 239.299767 -2659, -3.000000, 478.779593, 119.694898, 239.389797 -2660, -3.000000, 478.959653, 119.739913, 239.479827 -2661, -3.000000, 479.139713, 119.784928, 239.569857 -2662, -3.000000, 479.319773, 119.829943, 239.659887 -2663, -3.000000, 479.499833, 119.874958, 239.749917 -2664, -3.000000, 479.679893, 119.919973, 239.839947 -2665, -3.000000, 479.859953, 119.964988, 239.929977 -2666, -3.000000, 480.040013, 120.010003, 240.020007 -2667, -3.000000, 480.220073, 120.055018, 240.110037 -2668, -3.000000, 480.400133, 120.100033, 240.200067 -2669, -3.000000, 480.580193, 120.145048, 240.290097 -2670, -3.000000, 480.760253, 120.190063, 240.380127 -2671, -3.000000, 480.940313, 120.235078, 240.470157 -2672, -3.000000, 481.120373, 120.280093, 240.560187 -2673, -3.000000, 481.300433, 120.325108, 240.650217 -2674, -3.000000, 481.480493, 120.370123, 240.740247 -2675, -3.000000, 481.660554, 120.415138, 240.830277 -2676, -3.000000, 481.840614, 120.460153, 240.920307 -2677, -3.000000, 482.020674, 120.505168, 241.010337 -2678, -3.000000, 482.200734, 120.550183, 241.100367 -2679, -3.000000, 482.380794, 120.595198, 241.190397 -2680, -3.000000, 482.560854, 120.640213, 241.280427 -2681, -3.000000, 482.740914, 120.685228, 241.370457 -2682, -3.000000, 482.920974, 120.730243, 241.460487 -2683, -3.000000, 483.101034, 120.775258, 241.550517 -2684, -3.000000, 483.281094, 120.820273, 241.640547 -2685, -3.000000, 483.461154, 120.865288, 241.730577 -2686, -3.000000, 483.641214, 120.910303, 241.820607 -2687, -3.000000, 483.821274, 120.955318, 241.910637 -2688, -3.000000, 484.001334, 121.000333, 242.000667 -2689, -3.000000, 484.181394, 121.045348, 242.090697 -2690, -3.000000, 484.361454, 121.090363, 242.180727 -2691, -3.000000, 484.541514, 121.135378, 242.270757 -2692, -3.000000, 484.721574, 121.180393, 242.360787 -2693, -3.000000, 484.901634, 121.225408, 242.450817 -2694, -3.000000, 485.081694, 121.270423, 242.540847 -2695, -3.000000, 485.261754, 121.315438, 242.630877 -2696, -3.000000, 485.441814, 121.360453, 242.720907 -2697, -3.000000, 485.621874, 121.405468, 242.810937 -2698, -3.000000, 485.801934, 121.450483, 242.900967 -2699, -3.000000, 485.981994, 121.495498, 242.990997 -2700, -3.000000, 486.162054, 121.540514, 243.081027 -2701, -3.000000, 486.342114, 121.585529, 243.171057 -2702, -3.000000, 486.522174, 121.630544, 243.261087 -2703, -3.000000, 486.702234, 121.675559, 243.351117 -2704, -3.000000, 486.882294, 121.720574, 243.441147 -2705, -3.000000, 487.062354, 121.765589, 243.531177 -2706, -3.000000, 487.242414, 121.810604, 243.621207 -2707, -3.000000, 487.422474, 121.855619, 243.711237 -2708, -3.000000, 487.602534, 121.900634, 243.801267 -2709, -3.000000, 487.782594, 121.945649, 243.891297 -2710, -3.000000, 487.962654, 121.990664, 243.981327 -2711, -3.000000, 488.142714, 122.035679, 244.071357 -2712, -3.000000, 488.322774, 122.080694, 244.161387 -2713, -3.000000, 488.502834, 122.125709, 244.251417 -2714, -3.000000, 488.682894, 122.170724, 244.341447 -2715, -3.000000, 488.862954, 122.215739, 244.431477 -2716, -3.000000, 489.043014, 122.260754, 244.521507 -2717, -3.000000, 489.223074, 122.305769, 244.611537 -2718, -3.000000, 489.403134, 122.350784, 244.701567 -2719, -3.000000, 489.583194, 122.395799, 244.791597 -2720, -3.000000, 489.763254, 122.440814, 244.881627 -2721, -3.000000, 489.943314, 122.485829, 244.971657 -2722, -3.000000, 490.123374, 122.530844, 245.061687 -2723, -3.000000, 490.303434, 122.575859, 245.151717 -2724, -3.000000, 490.483494, 122.620874, 245.241747 -2725, -3.000000, 490.663555, 122.665889, 245.331777 -2726, -3.000000, 490.843615, 122.710904, 245.421807 -2727, -3.000000, 491.023675, 122.755919, 245.511837 -2728, -3.000000, 491.203735, 122.800934, 245.601867 -2729, -3.000000, 491.383795, 122.845949, 245.691897 -2730, -3.000000, 491.563855, 122.890964, 245.781927 -2731, -3.000000, 491.743915, 122.935979, 245.871957 -2732, -3.000000, 491.923975, 122.980994, 245.961987 -2733, -3.000000, 492.104035, 123.026009, 246.052017 -2734, -3.000000, 492.284095, 123.071024, 246.142047 -2735, -3.000000, 492.464155, 123.116039, 246.232077 -2736, -3.000000, 492.644215, 123.161054, 246.322107 -2737, -3.000000, 492.824275, 123.206069, 246.412137 -2738, -3.000000, 493.004335, 123.251084, 246.502167 -2739, -3.000000, 493.184395, 123.296099, 246.592197 -2740, -3.000000, 493.364455, 123.341114, 246.682227 -2741, -3.000000, 493.544515, 123.386129, 246.772257 -2742, -3.000000, 493.724575, 123.431144, 246.862287 -2743, -3.000000, 493.904635, 123.476159, 246.952317 -2744, -3.000000, 494.084695, 123.521174, 247.042347 -2745, -3.000000, 494.264755, 123.566189, 247.132377 -2746, -3.000000, 494.444815, 123.611204, 247.222407 -2747, -3.000000, 494.624875, 123.656219, 247.312437 -2748, -3.000000, 494.804935, 123.701234, 247.402467 -2749, -3.000000, 494.984995, 123.746249, 247.492497 -2750, -3.000000, 495.165055, 123.791264, 247.582528 -2751, -3.000000, 495.345115, 123.836279, 247.672558 -2752, -3.000000, 495.525175, 123.881294, 247.762588 -2753, -3.000000, 495.705235, 123.926309, 247.852618 -2754, -3.000000, 495.885295, 123.971324, 247.942648 -2755, -3.000000, 496.065355, 124.016339, 248.032678 -2756, -3.000000, 496.245415, 124.061354, 248.122708 -2757, -3.000000, 496.425475, 124.106369, 248.212738 -2758, -3.000000, 496.605535, 124.151384, 248.302768 -2759, -3.000000, 496.785595, 124.196399, 248.392798 -2760, -3.000000, 496.965655, 124.241414, 248.482828 -2761, -3.000000, 497.145715, 124.286429, 248.572858 -2762, -3.000000, 497.325775, 124.331444, 248.662888 -2763, -3.000000, 497.505835, 124.376459, 248.752918 -2764, -3.000000, 497.685895, 124.421474, 248.842948 -2765, -3.000000, 497.865955, 124.466489, 248.932978 -2766, -3.000000, 498.046015, 124.511504, 249.023008 -2767, -3.000000, 498.226075, 124.556519, 249.113038 -2768, -3.000000, 498.406135, 124.601534, 249.203068 -2769, -3.000000, 498.586195, 124.646549, 249.293098 -2770, -3.000000, 498.766255, 124.691564, 249.383128 -2771, -3.000000, 498.946315, 124.736579, 249.473158 -2772, -3.000000, 499.126375, 124.781594, 249.563188 -2773, -3.000000, 499.306435, 124.826609, 249.653218 -2774, -3.000000, 499.486495, 124.871624, 249.743248 -2775, -3.000000, 499.666556, 124.916639, 249.833278 -2776, -3.000000, 499.846616, 124.961654, 249.923308 -2777, -3.000000, 500.026676, 125.006669, 250.013338 -2778, -3.000000, 500.206736, 125.051684, 250.103368 -2779, -3.000000, 500.386796, 125.096699, 250.193398 -2780, -3.000000, 500.566856, 125.141714, 250.283428 -2781, -3.000000, 500.746916, 125.186729, 250.373458 -2782, -3.000000, 500.926976, 125.231744, 250.463488 -2783, -3.000000, 501.107036, 125.276759, 250.553518 -2784, -3.000000, 501.287096, 125.321774, 250.643548 -2785, -3.000000, 501.467156, 125.366789, 250.733578 -2786, -3.000000, 501.647216, 125.411804, 250.823608 -2787, -3.000000, 501.827276, 125.456819, 250.913638 -2788, -3.000000, 502.007336, 125.501834, 251.003668 -2789, -3.000000, 502.187396, 125.546849, 251.093698 -2790, -3.000000, 502.367456, 125.591864, 251.183728 -2791, -3.000000, 502.547516, 125.636879, 251.273758 -2792, -3.000000, 502.727576, 125.681894, 251.363788 -2793, -3.000000, 502.907636, 125.726909, 251.453818 -2794, -3.000000, 503.087696, 125.771924, 251.543848 -2795, -3.000000, 503.267756, 125.816939, 251.633878 -2796, -3.000000, 503.447816, 125.861954, 251.723908 -2797, -3.000000, 503.627876, 125.906969, 251.813938 -2798, -3.000000, 503.807936, 125.951984, 251.903968 -2799, -3.000000, 503.987996, 125.996999, 251.993998 -2800, -3.000000, 504.168056, 126.042014, 252.084028 -2801, -3.000000, 504.348116, 126.087029, 252.174058 -2802, -3.000000, 504.528176, 126.132044, 252.264088 -2803, -3.000000, 504.708236, 126.177059, 252.354118 -2804, -3.000000, 504.888296, 126.222074, 252.444148 -2805, -3.000000, 505.068356, 126.267089, 252.534178 -2806, -3.000000, 505.248416, 126.312104, 252.624208 -2807, -3.000000, 505.428476, 126.357119, 252.714238 -2808, -3.000000, 505.608536, 126.402134, 252.804268 -2809, -3.000000, 505.788596, 126.447149, 252.894298 -2810, -3.000000, 505.968656, 126.492164, 252.984328 -2811, -3.000000, 506.148716, 126.537179, 253.074358 -2812, -3.000000, 506.328776, 126.582194, 253.164388 -2813, -3.000000, 506.508836, 126.627209, 253.254418 -2814, -3.000000, 506.688896, 126.672224, 253.344448 -2815, -3.000000, 506.868956, 126.717239, 253.434478 -2816, -3.000000, 507.049016, 126.762254, 253.524508 -2817, -3.000000, 507.229076, 126.807269, 253.614538 -2818, -3.000000, 507.409136, 126.852284, 253.704568 -2819, -3.000000, 507.589196, 126.897299, 253.794598 -2820, -3.000000, 507.769256, 126.942314, 253.884628 -2821, -3.000000, 507.949316, 126.987329, 253.974658 -2822, -3.000000, 508.129376, 127.032344, 254.064688 -2823, -3.000000, 508.309436, 127.077359, 254.154718 -2824, -3.000000, 508.489496, 127.122374, 254.244748 -2825, -3.000000, 508.669557, 127.167389, 254.334778 -2826, -3.000000, 508.849617, 127.212404, 254.424808 -2827, -3.000000, 509.029677, 127.257419, 254.514838 -2828, -3.000000, 509.209737, 127.302434, 254.604868 -2829, -3.000000, 509.389797, 127.347449, 254.694898 -2830, -3.000000, 509.569857, 127.392464, 254.784928 -2831, -3.000000, 509.749917, 127.437479, 254.874958 -2832, -3.000000, 509.929977, 127.482494, 254.964988 -2833, -3.000000, 510.110037, 127.527509, 255.055018 -2834, -3.000000, 510.290097, 127.572524, 255.145048 -2835, -3.000000, 510.470157, 127.617539, 255.235078 -2836, -3.000000, 510.650217, 127.662554, 255.325108 -2837, -3.000000, 510.830277, 127.707569, 255.415138 -2838, -3.000000, 511.010337, 127.752584, 255.505168 -2839, -3.000000, 511.190397, 127.797599, 255.595198 -2840, -3.000000, 511.370457, 127.842614, 255.685228 -2841, -3.000000, 511.550517, 127.887629, 255.775258 -2842, -3.000000, 511.730577, 127.932644, 255.865288 -2843, -3.000000, 511.910637, 127.977659, 255.955318 -2844, -3.000000, 512.090697, 128.022674, 256.045348 -2845, -3.000000, 512.270757, 128.067689, 256.135378 -2846, -3.000000, 512.450817, 128.112704, 256.225408 -2847, -3.000000, 512.630877, 128.157719, 256.315438 -2848, -3.000000, 512.810937, 128.202734, 256.405468 -2849, -3.000000, 512.990997, 128.247749, 256.495498 -2850, -3.000000, 513.171057, 128.292764, 256.585529 -2851, -3.000000, 513.351117, 128.337779, 256.675559 -2852, -3.000000, 513.531177, 128.382794, 256.765589 -2853, -3.000000, 513.711237, 128.427809, 256.855619 -2854, -3.000000, 513.891297, 128.472824, 256.945649 -2855, -3.000000, 514.071357, 128.517839, 257.035679 -2856, -3.000000, 514.251417, 128.562854, 257.125709 -2857, -3.000000, 514.431477, 128.607869, 257.215739 -2858, -3.000000, 514.611537, 128.652884, 257.305769 -2859, -3.000000, 514.791597, 128.697899, 257.395799 -2860, -3.000000, 514.971657, 128.742914, 257.485829 -2861, -3.000000, 515.151717, 128.787929, 257.575859 -2862, -3.000000, 515.331777, 128.832944, 257.665889 -2863, -3.000000, 515.511837, 128.877959, 257.755919 -2864, -3.000000, 515.691897, 128.922974, 257.845949 -2865, -3.000000, 515.871957, 128.967989, 257.935979 -2866, -3.000000, 516.052017, 129.013004, 258.026009 -2867, -3.000000, 516.232077, 129.058019, 258.116039 -2868, -3.000000, 516.412137, 129.103034, 258.206069 -2869, -3.000000, 516.592197, 129.148049, 258.296099 -2870, -3.000000, 516.772257, 129.193064, 258.386129 -2871, -3.000000, 516.952317, 129.238079, 258.476159 -2872, -3.000000, 517.132377, 129.283094, 258.566189 -2873, -3.000000, 517.312437, 129.328109, 258.656219 -2874, -3.000000, 517.492497, 129.373124, 258.746249 -2875, -3.000000, 517.672558, 129.418139, 258.836279 -2876, -3.000000, 517.852618, 129.463154, 258.926309 -2877, -3.000000, 518.032678, 129.508169, 259.016339 -2878, -3.000000, 518.212738, 129.553184, 259.106369 -2879, -3.000000, 518.392798, 129.598199, 259.196399 -2880, -3.000000, 518.572858, 129.643214, 259.286429 -2881, -3.000000, 518.752918, 129.688229, 259.376459 -2882, -3.000000, 518.932978, 129.733244, 259.466489 -2883, -3.000000, 519.113038, 129.778259, 259.556519 -2884, -3.000000, 519.293098, 129.823274, 259.646549 -2885, -3.000000, 519.473158, 129.868289, 259.736579 -2886, -3.000000, 519.653218, 129.913304, 259.826609 -2887, -3.000000, 519.833278, 129.958319, 259.916639 -2888, -3.000000, 520.013338, 130.003334, 260.006669 -2889, -3.000000, 520.193398, 130.048349, 260.096699 -2890, -3.000000, 520.373458, 130.093364, 260.186729 -2891, -3.000000, 520.553518, 130.138379, 260.276759 -2892, -3.000000, 520.733578, 130.183394, 260.366789 -2893, -3.000000, 520.913638, 130.228409, 260.456819 -2894, -3.000000, 521.093698, 130.273424, 260.546849 -2895, -3.000000, 521.273758, 130.318439, 260.636879 -2896, -3.000000, 521.453818, 130.363454, 260.726909 -2897, -3.000000, 521.633878, 130.408469, 260.816939 -2898, -3.000000, 521.813938, 130.453484, 260.906969 -2899, -3.000000, 521.993998, 130.498499, 260.996999 -2900, -3.000000, 522.174058, 130.543515, 261.087029 -2901, -3.000000, 522.354118, 130.588530, 261.177059 -2902, -3.000000, 522.534178, 130.633545, 261.267089 -2903, -3.000000, 522.714238, 130.678560, 261.357119 -2904, -3.000000, 522.894298, 130.723575, 261.447149 -2905, -3.000000, 523.074358, 130.768590, 261.537179 -2906, -3.000000, 523.254418, 130.813605, 261.627209 -2907, -3.000000, 523.434478, 130.858620, 261.717239 -2908, -3.000000, 523.614538, 130.903635, 261.807269 -2909, -3.000000, 523.794598, 130.948650, 261.897299 -2910, -3.000000, 523.974658, 130.993665, 261.987329 -2911, -3.000000, 524.154718, 131.038680, 262.077359 -2912, -3.000000, 524.334778, 131.083695, 262.167389 -2913, -3.000000, 524.514838, 131.128710, 262.257419 -2914, -3.000000, 524.694898, 131.173725, 262.347449 -2915, -3.000000, 524.874958, 131.218740, 262.437479 -2916, -3.000000, 525.055018, 131.263755, 262.527509 -2917, -3.000000, 525.235078, 131.308770, 262.617539 -2918, -3.000000, 525.415138, 131.353785, 262.707569 -2919, -3.000000, 525.595198, 131.398800, 262.797599 -2920, -3.000000, 525.775258, 131.443815, 262.887629 -2921, -3.000000, 525.955318, 131.488830, 262.977659 -2922, -3.000000, 526.135378, 131.533845, 263.067689 -2923, -3.000000, 526.315438, 131.578860, 263.157719 -2924, -3.000000, 526.495498, 131.623875, 263.247749 -2925, -3.000000, 526.675559, 131.668890, 263.337779 -2926, -3.000000, 526.855619, 131.713905, 263.427809 -2927, -3.000000, 527.035679, 131.758920, 263.517839 -2928, -3.000000, 527.215739, 131.803935, 263.607869 -2929, -3.000000, 527.395799, 131.848950, 263.697899 -2930, -3.000000, 527.575859, 131.893965, 263.787929 -2931, -3.000000, 527.755919, 131.938980, 263.877959 -2932, -3.000000, 527.935979, 131.983995, 263.967989 -2933, -3.000000, 528.116039, 132.029010, 264.058019 -2934, -3.000000, 528.296099, 132.074025, 264.148049 -2935, -3.000000, 528.476159, 132.119040, 264.238079 -2936, -3.000000, 528.656219, 132.164055, 264.328109 -2937, -3.000000, 528.836279, 132.209070, 264.418139 -2938, -3.000000, 529.016339, 132.254085, 264.508169 -2939, -3.000000, 529.196399, 132.299100, 264.598199 -2940, -3.000000, 529.376459, 132.344115, 264.688229 -2941, -3.000000, 529.556519, 132.389130, 264.778259 -2942, -3.000000, 529.736579, 132.434145, 264.868289 -2943, -3.000000, 529.916639, 132.479160, 264.958319 -2944, -3.000000, 530.096699, 132.524175, 265.048349 -2945, -3.000000, 530.276759, 132.569190, 265.138379 -2946, -3.000000, 530.456819, 132.614205, 265.228409 -2947, -3.000000, 530.636879, 132.659220, 265.318439 -2948, -3.000000, 530.816939, 132.704235, 265.408469 -2949, -3.000000, 530.996999, 132.749250, 265.498499 -2950, -3.000000, 531.177059, 132.794265, 265.588530 -2951, -3.000000, 531.357119, 132.839280, 265.678560 -2952, -3.000000, 531.537179, 132.884295, 265.768590 -2953, -3.000000, 531.717239, 132.929310, 265.858620 -2954, -3.000000, 531.897299, 132.974325, 265.948650 -2955, -3.000000, 532.077359, 133.019340, 266.038680 -2956, -3.000000, 532.257419, 133.064355, 266.128710 -2957, -3.000000, 532.437479, 133.109370, 266.218740 -2958, -3.000000, 532.617539, 133.154385, 266.308770 -2959, -3.000000, 532.797599, 133.199400, 266.398800 -2960, -3.000000, 532.977659, 133.244415, 266.488830 -2961, -3.000000, 533.157719, 133.289430, 266.578860 -2962, -3.000000, 533.337779, 133.334445, 266.668890 -2963, -3.000000, 533.517839, 133.379460, 266.758920 -2964, -3.000000, 533.697899, 133.424475, 266.848950 -2965, -3.000000, 533.877959, 133.469490, 266.938980 -2966, -3.000000, 534.058019, 133.514505, 267.029010 -2967, -3.000000, 534.238079, 133.559520, 267.119040 -2968, -3.000000, 534.418139, 133.604535, 267.209070 -2969, -3.000000, 534.598199, 133.649550, 267.299100 -2970, -3.000000, 534.778259, 133.694565, 267.389130 -2971, -3.000000, 534.958319, 133.739580, 267.479160 -2972, -3.000000, 535.138379, 133.784595, 267.569190 -2973, -3.000000, 535.318439, 133.829610, 267.659220 -2974, -3.000000, 535.498499, 133.874625, 267.749250 -2975, -3.000000, 535.678560, 133.919640, 267.839280 -2976, -3.000000, 535.858620, 133.964655, 267.929310 -2977, -3.000000, 536.038680, 134.009670, 268.019340 -2978, -3.000000, 536.218740, 134.054685, 268.109370 -2979, -3.000000, 536.398800, 134.099700, 268.199400 -2980, -3.000000, 536.578860, 134.144715, 268.289430 -2981, -3.000000, 536.758920, 134.189730, 268.379460 -2982, -3.000000, 536.938980, 134.234745, 268.469490 -2983, -3.000000, 537.119040, 134.279760, 268.559520 -2984, -3.000000, 537.299100, 134.324775, 268.649550 -2985, -3.000000, 537.479160, 134.369790, 268.739580 -2986, -3.000000, 537.659220, 134.414805, 268.829610 -2987, -3.000000, 537.839280, 134.459820, 268.919640 -2988, -3.000000, 538.019340, 134.504835, 269.009670 -2989, -3.000000, 538.199400, 134.549850, 269.099700 -2990, -3.000000, 538.379460, 134.594865, 269.189730 -2991, -3.000000, 538.559520, 134.639880, 269.279760 -2992, -3.000000, 538.739580, 134.684895, 269.369790 -2993, -3.000000, 538.919640, 134.729910, 269.459820 -2994, -3.000000, 539.099700, 134.774925, 269.549850 -2995, -3.000000, 539.279760, 134.819940, 269.639880 -2996, -3.000000, 539.459820, 134.864955, 269.729910 -2997, -3.000000, 539.639880, 134.909970, 269.819940 -2998, -3.000000, 539.819940, 134.954985, 269.909970 -2999, -3.000000, 540.000000, 135.000000, 270.000000 + -3.000000, 0.000000, 0.000000, 0.000000 + -3.000000, 0.180060, 0.045015, 0.090030 + -3.000000, 0.360120, 0.090030, 0.180060 + -3.000000, 0.540180, 0.135045, 0.270090 + -3.000000, 0.720240, 0.180060, 0.360120 + -3.000000, 0.900300, 0.225075, 0.450150 + -3.000000, 1.080360, 0.270090, 0.540180 + -3.000000, 1.260420, 0.315105, 0.630210 + -3.000000, 1.440480, 0.360120, 0.720240 + -3.000000, 1.620540, 0.405135, 0.810270 + -3.000000, 1.800600, 0.450150, 0.900300 + -3.000000, 1.980660, 0.495165, 0.990330 + -3.000000, 2.160720, 0.540180, 1.080360 + -3.000000, 2.340780, 0.585195, 1.170390 + -3.000000, 2.520840, 0.630210, 1.260420 + -3.000000, 2.700900, 0.675225, 1.350450 + -3.000000, 2.880960, 0.720240, 1.440480 + -3.000000, 3.061020, 0.765255, 1.530510 + -3.000000, 3.241080, 0.810270, 1.620540 + -3.000000, 3.421140, 0.855285, 1.710570 + -3.000000, 3.601200, 0.900300, 1.800600 + -3.000000, 3.781260, 0.945315, 1.890630 + -3.000000, 3.961320, 0.990330, 1.980660 + -3.000000, 4.141380, 1.035345, 2.070690 + -3.000000, 4.321440, 1.080360, 2.160720 + -3.000000, 4.501501, 1.125375, 2.250750 + -3.000000, 4.681561, 1.170390, 2.340780 + -3.000000, 4.861621, 1.215405, 2.430810 + -3.000000, 5.041681, 1.260420, 2.520840 + -3.000000, 5.221741, 1.305435, 2.610870 + -3.000000, 5.401801, 1.350450, 2.700900 + -3.000000, 5.581861, 1.395465, 2.790930 + -3.000000, 5.761921, 1.440480, 2.880960 + -3.000000, 5.941981, 1.485495, 2.970990 + -3.000000, 6.122041, 1.530510, 3.061020 + -3.000000, 6.302101, 1.575525, 3.151050 + -3.000000, 6.482161, 1.620540, 3.241080 + -3.000000, 6.662221, 1.665555, 3.331110 + -3.000000, 6.842281, 1.710570, 3.421140 + -3.000000, 7.022341, 1.755585, 3.511170 + -3.000000, 7.202401, 1.800600, 3.601200 + -3.000000, 7.382461, 1.845615, 3.691230 + -3.000000, 7.562521, 1.890630, 3.781260 + -3.000000, 7.742581, 1.935645, 3.871290 + -3.000000, 7.922641, 1.980660, 3.961320 + -3.000000, 8.102701, 2.025675, 4.051350 + -3.000000, 8.282761, 2.070690, 4.141380 + -3.000000, 8.462821, 2.115705, 4.231410 + -3.000000, 8.642881, 2.160720, 4.321440 + -3.000000, 8.822941, 2.205735, 4.411470 + -3.000000, 9.003001, 2.250750, 4.501501 + -3.000000, 9.183061, 2.295765, 4.591531 + -3.000000, 9.363121, 2.340780, 4.681561 + -3.000000, 9.543181, 2.385795, 4.771591 + -3.000000, 9.723241, 2.430810, 4.861621 + -3.000000, 9.903301, 2.475825, 4.951651 + -3.000000, 10.083361, 2.520840, 5.041681 + -3.000000, 10.263421, 2.565855, 5.131711 + -3.000000, 10.443481, 2.610870, 5.221741 + -3.000000, 10.623541, 2.655885, 5.311771 + -3.000000, 10.803601, 2.700900, 5.401801 + -3.000000, 10.983661, 2.745915, 5.491831 + -3.000000, 11.163721, 2.790930, 5.581861 + -3.000000, 11.343781, 2.835945, 5.671891 + -3.000000, 11.523841, 2.880960, 5.761921 + -3.000000, 11.703901, 2.925975, 5.851951 + -3.000000, 11.883961, 2.970990, 5.941981 + -3.000000, 12.064021, 3.016005, 6.032011 + -3.000000, 12.244081, 3.061020, 6.122041 + -3.000000, 12.424141, 3.106035, 6.212071 + -3.000000, 12.604201, 3.151050, 6.302101 + -3.000000, 12.784261, 3.196065, 6.392131 + -3.000000, 12.964321, 3.241080, 6.482161 + -3.000000, 13.144381, 3.286095, 6.572191 + -3.000000, 13.324441, 3.331110, 6.662221 + -3.000000, 13.504502, 3.376125, 6.752251 + -3.000000, 13.684562, 3.421140, 6.842281 + -3.000000, 13.864622, 3.466155, 6.932311 + -3.000000, 14.044682, 3.511170, 7.022341 + -3.000000, 14.224742, 3.556185, 7.112371 + -3.000000, 14.404802, 3.601200, 7.202401 + -3.000000, 14.584862, 3.646215, 7.292431 + -3.000000, 14.764922, 3.691230, 7.382461 + -3.000000, 14.944982, 3.736245, 7.472491 + -3.000000, 15.125042, 3.781260, 7.562521 + -3.000000, 15.305102, 3.826275, 7.652551 + -3.000000, 15.485162, 3.871290, 7.742581 + -3.000000, 15.665222, 3.916305, 7.832611 + -3.000000, 15.845282, 3.961320, 7.922641 + -3.000000, 16.025342, 4.006335, 8.012671 + -3.000000, 16.205402, 4.051350, 8.102701 + -3.000000, 16.385462, 4.096365, 8.192731 + -3.000000, 16.565522, 4.141380, 8.282761 + -3.000000, 16.745582, 4.186395, 8.372791 + -3.000000, 16.925642, 4.231410, 8.462821 + -3.000000, 17.105702, 4.276425, 8.552851 + -3.000000, 17.285762, 4.321440, 8.642881 + -3.000000, 17.465822, 4.366455, 8.732911 + -3.000000, 17.645882, 4.411470, 8.822941 + -3.000000, 17.825942, 4.456485, 8.912971 + -3.000000, 18.006002, 4.501501, 9.003001 + -3.000000, 18.186062, 4.546516, 9.093031 + -3.000000, 18.366122, 4.591531, 9.183061 + -3.000000, 18.546182, 4.636546, 9.273091 + -3.000000, 18.726242, 4.681561, 9.363121 + -3.000000, 18.906302, 4.726576, 9.453151 + -3.000000, 19.086362, 4.771591, 9.543181 + -3.000000, 19.266422, 4.816606, 9.633211 + -3.000000, 19.446482, 4.861621, 9.723241 + -3.000000, 19.626542, 4.906636, 9.813271 + -3.000000, 19.806602, 4.951651, 9.903301 + -3.000000, 19.986662, 4.996666, 9.993331 + -3.000000, 20.166722, 5.041681, 10.083361 + -3.000000, 20.346782, 5.086696, 10.173391 + -3.000000, 20.526842, 5.131711, 10.263421 + -3.000000, 20.706902, 5.176726, 10.353451 + -3.000000, 20.886962, 5.221741, 10.443481 + -3.000000, 21.067022, 5.266756, 10.533511 + -3.000000, 21.247082, 5.311771, 10.623541 + -3.000000, 21.427142, 5.356786, 10.713571 + -3.000000, 21.607202, 5.401801, 10.803601 + -3.000000, 21.787262, 5.446816, 10.893631 + -3.000000, 21.967322, 5.491831, 10.983661 + -3.000000, 22.147382, 5.536846, 11.073691 + -3.000000, 22.327442, 5.581861, 11.163721 + -3.000000, 22.507503, 5.626876, 11.253751 + -3.000000, 22.687563, 5.671891, 11.343781 + -3.000000, 22.867623, 5.716906, 11.433811 + -3.000000, 23.047683, 5.761921, 11.523841 + -3.000000, 23.227743, 5.806936, 11.613871 + -3.000000, 23.407803, 5.851951, 11.703901 + -3.000000, 23.587863, 5.896966, 11.793931 + -3.000000, 23.767923, 5.941981, 11.883961 + -3.000000, 23.947983, 5.986996, 11.973991 + -3.000000, 24.128043, 6.032011, 12.064021 + -3.000000, 24.308103, 6.077026, 12.154051 + -3.000000, 24.488163, 6.122041, 12.244081 + -3.000000, 24.668223, 6.167056, 12.334111 + -3.000000, 24.848283, 6.212071, 12.424141 + -3.000000, 25.028343, 6.257086, 12.514171 + -3.000000, 25.208403, 6.302101, 12.604201 + -3.000000, 25.388463, 6.347116, 12.694231 + -3.000000, 25.568523, 6.392131, 12.784261 + -3.000000, 25.748583, 6.437146, 12.874291 + -3.000000, 25.928643, 6.482161, 12.964321 + -3.000000, 26.108703, 6.527176, 13.054351 + -3.000000, 26.288763, 6.572191, 13.144381 + -3.000000, 26.468823, 6.617206, 13.234411 + -3.000000, 26.648883, 6.662221, 13.324441 + -3.000000, 26.828943, 6.707236, 13.414471 + -3.000000, 27.009003, 6.752251, 13.504502 + -3.000000, 27.189063, 6.797266, 13.594532 + -3.000000, 27.369123, 6.842281, 13.684562 + -3.000000, 27.549183, 6.887296, 13.774592 + -3.000000, 27.729243, 6.932311, 13.864622 + -3.000000, 27.909303, 6.977326, 13.954652 + -3.000000, 28.089363, 7.022341, 14.044682 + -3.000000, 28.269423, 7.067356, 14.134712 + -3.000000, 28.449483, 7.112371, 14.224742 + -3.000000, 28.629543, 7.157386, 14.314772 + -3.000000, 28.809603, 7.202401, 14.404802 + -3.000000, 28.989663, 7.247416, 14.494832 + -3.000000, 29.169723, 7.292431, 14.584862 + -3.000000, 29.349783, 7.337446, 14.674892 + -3.000000, 29.529843, 7.382461, 14.764922 + -3.000000, 29.709903, 7.427476, 14.854952 + -3.000000, 29.889963, 7.472491, 14.944982 + -3.000000, 30.070023, 7.517506, 15.035012 + -3.000000, 30.250083, 7.562521, 15.125042 + -3.000000, 30.430143, 7.607536, 15.215072 + -3.000000, 30.610203, 7.652551, 15.305102 + -3.000000, 30.790263, 7.697566, 15.395132 + -3.000000, 30.970323, 7.742581, 15.485162 + -3.000000, 31.150383, 7.787596, 15.575192 + -3.000000, 31.330443, 7.832611, 15.665222 + -3.000000, 31.510504, 7.877626, 15.755252 + -3.000000, 31.690564, 7.922641, 15.845282 + -3.000000, 31.870624, 7.967656, 15.935312 + -3.000000, 32.050684, 8.012671, 16.025342 + -3.000000, 32.230744, 8.057686, 16.115372 + -3.000000, 32.410804, 8.102701, 16.205402 + -3.000000, 32.590864, 8.147716, 16.295432 + -3.000000, 32.770924, 8.192731, 16.385462 + -3.000000, 32.950984, 8.237746, 16.475492 + -3.000000, 33.131044, 8.282761, 16.565522 + -3.000000, 33.311104, 8.327776, 16.655552 + -3.000000, 33.491164, 8.372791, 16.745582 + -3.000000, 33.671224, 8.417806, 16.835612 + -3.000000, 33.851284, 8.462821, 16.925642 + -3.000000, 34.031344, 8.507836, 17.015672 + -3.000000, 34.211404, 8.552851, 17.105702 + -3.000000, 34.391464, 8.597866, 17.195732 + -3.000000, 34.571524, 8.642881, 17.285762 + -3.000000, 34.751584, 8.687896, 17.375792 + -3.000000, 34.931644, 8.732911, 17.465822 + -3.000000, 35.111704, 8.777926, 17.555852 + -3.000000, 35.291764, 8.822941, 17.645882 + -3.000000, 35.471824, 8.867956, 17.735912 + -3.000000, 35.651884, 8.912971, 17.825942 + -3.000000, 35.831944, 8.957986, 17.915972 + -3.000000, 36.012004, 9.003001, 18.006002 + -3.000000, 36.192064, 9.048016, 18.096032 + -3.000000, 36.372124, 9.093031, 18.186062 + -3.000000, 36.552184, 9.138046, 18.276092 + -3.000000, 36.732244, 9.183061, 18.366122 + -3.000000, 36.912304, 9.228076, 18.456152 + -3.000000, 37.092364, 9.273091, 18.546182 + -3.000000, 37.272424, 9.318106, 18.636212 + -3.000000, 37.452484, 9.363121, 18.726242 + -3.000000, 37.632544, 9.408136, 18.816272 + -3.000000, 37.812604, 9.453151, 18.906302 + -3.000000, 37.992664, 9.498166, 18.996332 + -3.000000, 38.172724, 9.543181, 19.086362 + -3.000000, 38.352784, 9.588196, 19.176392 + -3.000000, 38.532844, 9.633211, 19.266422 + -3.000000, 38.712904, 9.678226, 19.356452 + -3.000000, 38.892964, 9.723241, 19.446482 + -3.000000, 39.073024, 9.768256, 19.536512 + -3.000000, 39.253084, 9.813271, 19.626542 + -3.000000, 39.433144, 9.858286, 19.716572 + -3.000000, 39.613204, 9.903301, 19.806602 + -3.000000, 39.793264, 9.948316, 19.896632 + -3.000000, 39.973324, 9.993331, 19.986662 + -3.000000, 40.153384, 10.038346, 20.076692 + -3.000000, 40.333444, 10.083361, 20.166722 + -3.000000, 40.513505, 10.128376, 20.256752 + -3.000000, 40.693565, 10.173391, 20.346782 + -3.000000, 40.873625, 10.218406, 20.436812 + -3.000000, 41.053685, 10.263421, 20.526842 + -3.000000, 41.233745, 10.308436, 20.616872 + -3.000000, 41.413805, 10.353451, 20.706902 + -3.000000, 41.593865, 10.398466, 20.796932 + -3.000000, 41.773925, 10.443481, 20.886962 + -3.000000, 41.953985, 10.488496, 20.976992 + -3.000000, 42.134045, 10.533511, 21.067022 + -3.000000, 42.314105, 10.578526, 21.157052 + -3.000000, 42.494165, 10.623541, 21.247082 + -3.000000, 42.674225, 10.668556, 21.337112 + -3.000000, 42.854285, 10.713571, 21.427142 + -3.000000, 43.034345, 10.758586, 21.517172 + -3.000000, 43.214405, 10.803601, 21.607202 + -3.000000, 43.394465, 10.848616, 21.697232 + -3.000000, 43.574525, 10.893631, 21.787262 + -3.000000, 43.754585, 10.938646, 21.877292 + -3.000000, 43.934645, 10.983661, 21.967322 + -3.000000, 44.114705, 11.028676, 22.057352 + -3.000000, 44.294765, 11.073691, 22.147382 + -3.000000, 44.474825, 11.118706, 22.237412 + -3.000000, 44.654885, 11.163721, 22.327442 + -3.000000, 44.834945, 11.208736, 22.417472 + -3.000000, 45.015005, 11.253751, 22.507503 + -3.000000, 45.195065, 11.298766, 22.597533 + -3.000000, 45.375125, 11.343781, 22.687563 + -3.000000, 45.555185, 11.388796, 22.777593 + -3.000000, 45.735245, 11.433811, 22.867623 + -3.000000, 45.915305, 11.478826, 22.957653 + -3.000000, 46.095365, 11.523841, 23.047683 + -3.000000, 46.275425, 11.568856, 23.137713 + -3.000000, 46.455485, 11.613871, 23.227743 + -3.000000, 46.635545, 11.658886, 23.317773 + -3.000000, 46.815605, 11.703901, 23.407803 + -3.000000, 46.995665, 11.748916, 23.497833 + -3.000000, 47.175725, 11.793931, 23.587863 + -3.000000, 47.355785, 11.838946, 23.677893 + -3.000000, 47.535845, 11.883961, 23.767923 + -3.000000, 47.715905, 11.928976, 23.857953 + -3.000000, 47.895965, 11.973991, 23.947983 + -3.000000, 48.076025, 12.019006, 24.038013 + -3.000000, 48.256085, 12.064021, 24.128043 + -3.000000, 48.436145, 12.109036, 24.218073 + -3.000000, 48.616205, 12.154051, 24.308103 + -3.000000, 48.796265, 12.199066, 24.398133 + -3.000000, 48.976325, 12.244081, 24.488163 + -3.000000, 49.156385, 12.289096, 24.578193 + -3.000000, 49.336445, 12.334111, 24.668223 + -3.000000, 49.516506, 12.379126, 24.758253 + -3.000000, 49.696566, 12.424141, 24.848283 + -3.000000, 49.876626, 12.469156, 24.938313 + -3.000000, 50.056686, 12.514171, 25.028343 + -3.000000, 50.236746, 12.559186, 25.118373 + -3.000000, 50.416806, 12.604201, 25.208403 + -3.000000, 50.596866, 12.649216, 25.298433 + -3.000000, 50.776926, 12.694231, 25.388463 + -3.000000, 50.956986, 12.739246, 25.478493 + -3.000000, 51.137046, 12.784261, 25.568523 + -3.000000, 51.317106, 12.829276, 25.658553 + -3.000000, 51.497166, 12.874291, 25.748583 + -3.000000, 51.677226, 12.919306, 25.838613 + -3.000000, 51.857286, 12.964321, 25.928643 + -3.000000, 52.037346, 13.009336, 26.018673 + -3.000000, 52.217406, 13.054351, 26.108703 + -3.000000, 52.397466, 13.099366, 26.198733 + -3.000000, 52.577526, 13.144381, 26.288763 + -3.000000, 52.757586, 13.189396, 26.378793 + -3.000000, 52.937646, 13.234411, 26.468823 + -3.000000, 53.117706, 13.279426, 26.558853 + -3.000000, 53.297766, 13.324441, 26.648883 + -3.000000, 53.477826, 13.369456, 26.738913 + -3.000000, 53.657886, 13.414471, 26.828943 + -3.000000, 53.837946, 13.459486, 26.918973 + -3.000000, 54.018006, 13.504502, 27.009003 + -3.000000, 54.198066, 13.549517, 27.099033 + -3.000000, 54.378126, 13.594532, 27.189063 + -3.000000, 54.558186, 13.639547, 27.279093 + -3.000000, 54.738246, 13.684562, 27.369123 + -3.000000, 54.918306, 13.729577, 27.459153 + -3.000000, 55.098366, 13.774592, 27.549183 + -3.000000, 55.278426, 13.819607, 27.639213 + -3.000000, 55.458486, 13.864622, 27.729243 + -3.000000, 55.638546, 13.909637, 27.819273 + -3.000000, 55.818606, 13.954652, 27.909303 + -3.000000, 55.998666, 13.999667, 27.999333 + -3.000000, 56.178726, 14.044682, 28.089363 + -3.000000, 56.358786, 14.089697, 28.179393 + -3.000000, 56.538846, 14.134712, 28.269423 + -3.000000, 56.718906, 14.179727, 28.359453 + -3.000000, 56.898966, 14.224742, 28.449483 + -3.000000, 57.079026, 14.269757, 28.539513 + -3.000000, 57.259086, 14.314772, 28.629543 + -3.000000, 57.439146, 14.359787, 28.719573 + -3.000000, 57.619206, 14.404802, 28.809603 + -3.000000, 57.799266, 14.449817, 28.899633 + -3.000000, 57.979326, 14.494832, 28.989663 + -3.000000, 58.159386, 14.539847, 29.079693 + -3.000000, 58.339446, 14.584862, 29.169723 + -3.000000, 58.519507, 14.629877, 29.259753 + -3.000000, 58.699567, 14.674892, 29.349783 + -3.000000, 58.879627, 14.719907, 29.439813 + -3.000000, 59.059687, 14.764922, 29.529843 + -3.000000, 59.239747, 14.809937, 29.619873 + -3.000000, 59.419807, 14.854952, 29.709903 + -3.000000, 59.599867, 14.899967, 29.799933 + -3.000000, 59.779927, 14.944982, 29.889963 + -3.000000, 59.959987, 14.989997, 29.979993 + -3.000000, 60.140047, 15.035012, 30.070023 + -3.000000, 60.320107, 15.080027, 30.160053 + -3.000000, 60.500167, 15.125042, 30.250083 + -3.000000, 60.680227, 15.170057, 30.340113 + -3.000000, 60.860287, 15.215072, 30.430143 + -3.000000, 61.040347, 15.260087, 30.520173 + -3.000000, 61.220407, 15.305102, 30.610203 + -3.000000, 61.400467, 15.350117, 30.700233 + -3.000000, 61.580527, 15.395132, 30.790263 + -3.000000, 61.760587, 15.440147, 30.880293 + -3.000000, 61.940647, 15.485162, 30.970323 + -3.000000, 62.120707, 15.530177, 31.060353 + -3.000000, 62.300767, 15.575192, 31.150383 + -3.000000, 62.480827, 15.620207, 31.240413 + -3.000000, 62.660887, 15.665222, 31.330443 + -3.000000, 62.840947, 15.710237, 31.420473 + -3.000000, 63.021007, 15.755252, 31.510504 + -3.000000, 63.201067, 15.800267, 31.600534 + -3.000000, 63.381127, 15.845282, 31.690564 + -3.000000, 63.561187, 15.890297, 31.780594 + -3.000000, 63.741247, 15.935312, 31.870624 + -3.000000, 63.921307, 15.980327, 31.960654 + -3.000000, 64.101367, 16.025342, 32.050684 + -3.000000, 64.281427, 16.070357, 32.140714 + -3.000000, 64.461487, 16.115372, 32.230744 + -3.000000, 64.641547, 16.160387, 32.320774 + -3.000000, 64.821607, 16.205402, 32.410804 + -3.000000, 65.001667, 16.250417, 32.500834 + -3.000000, 65.181727, 16.295432, 32.590864 + -3.000000, 65.361787, 16.340447, 32.680894 + -3.000000, 65.541847, 16.385462, 32.770924 + -3.000000, 65.721907, 16.430477, 32.860954 + -3.000000, 65.901967, 16.475492, 32.950984 + -3.000000, 66.082027, 16.520507, 33.041014 + -3.000000, 66.262087, 16.565522, 33.131044 + -3.000000, 66.442147, 16.610537, 33.221074 + -3.000000, 66.622207, 16.655552, 33.311104 + -3.000000, 66.802267, 16.700567, 33.401134 + -3.000000, 66.982327, 16.745582, 33.491164 + -3.000000, 67.162387, 16.790597, 33.581194 + -3.000000, 67.342447, 16.835612, 33.671224 + -3.000000, 67.522508, 16.880627, 33.761254 + -3.000000, 67.702568, 16.925642, 33.851284 + -3.000000, 67.882628, 16.970657, 33.941314 + -3.000000, 68.062688, 17.015672, 34.031344 + -3.000000, 68.242748, 17.060687, 34.121374 + -3.000000, 68.422808, 17.105702, 34.211404 + -3.000000, 68.602868, 17.150717, 34.301434 + -3.000000, 68.782928, 17.195732, 34.391464 + -3.000000, 68.962988, 17.240747, 34.481494 + -3.000000, 69.143048, 17.285762, 34.571524 + -3.000000, 69.323108, 17.330777, 34.661554 + -3.000000, 69.503168, 17.375792, 34.751584 + -3.000000, 69.683228, 17.420807, 34.841614 + -3.000000, 69.863288, 17.465822, 34.931644 + -3.000000, 70.043348, 17.510837, 35.021674 + -3.000000, 70.223408, 17.555852, 35.111704 + -3.000000, 70.403468, 17.600867, 35.201734 + -3.000000, 70.583528, 17.645882, 35.291764 + -3.000000, 70.763588, 17.690897, 35.381794 + -3.000000, 70.943648, 17.735912, 35.471824 + -3.000000, 71.123708, 17.780927, 35.561854 + -3.000000, 71.303768, 17.825942, 35.651884 + -3.000000, 71.483828, 17.870957, 35.741914 + -3.000000, 71.663888, 17.915972, 35.831944 + -3.000000, 71.843948, 17.960987, 35.921974 + -3.000000, 72.024008, 18.006002, 36.012004 + -3.000000, 72.204068, 18.051017, 36.102034 + -3.000000, 72.384128, 18.096032, 36.192064 + -3.000000, 72.564188, 18.141047, 36.282094 + -3.000000, 72.744248, 18.186062, 36.372124 + -3.000000, 72.924308, 18.231077, 36.462154 + -3.000000, 73.104368, 18.276092, 36.552184 + -3.000000, 73.284428, 18.321107, 36.642214 + -3.000000, 73.464488, 18.366122, 36.732244 + -3.000000, 73.644548, 18.411137, 36.822274 + -3.000000, 73.824608, 18.456152, 36.912304 + -3.000000, 74.004668, 18.501167, 37.002334 + -3.000000, 74.184728, 18.546182, 37.092364 + -3.000000, 74.364788, 18.591197, 37.182394 + -3.000000, 74.544848, 18.636212, 37.272424 + -3.000000, 74.724908, 18.681227, 37.362454 + -3.000000, 74.904968, 18.726242, 37.452484 + -3.000000, 75.085028, 18.771257, 37.542514 + -3.000000, 75.265088, 18.816272, 37.632544 + -3.000000, 75.445148, 18.861287, 37.722574 + -3.000000, 75.625208, 18.906302, 37.812604 + -3.000000, 75.805268, 18.951317, 37.902634 + -3.000000, 75.985328, 18.996332, 37.992664 + -3.000000, 76.165388, 19.041347, 38.082694 + -3.000000, 76.345448, 19.086362, 38.172724 + -3.000000, 76.525509, 19.131377, 38.262754 + -3.000000, 76.705569, 19.176392, 38.352784 + -3.000000, 76.885629, 19.221407, 38.442814 + -3.000000, 77.065689, 19.266422, 38.532844 + -3.000000, 77.245749, 19.311437, 38.622874 + -3.000000, 77.425809, 19.356452, 38.712904 + -3.000000, 77.605869, 19.401467, 38.802934 + -3.000000, 77.785929, 19.446482, 38.892964 + -3.000000, 77.965989, 19.491497, 38.982994 + -3.000000, 78.146049, 19.536512, 39.073024 + -3.000000, 78.326109, 19.581527, 39.163054 + -3.000000, 78.506169, 19.626542, 39.253084 + -3.000000, 78.686229, 19.671557, 39.343114 + -3.000000, 78.866289, 19.716572, 39.433144 + -3.000000, 79.046349, 19.761587, 39.523174 + -3.000000, 79.226409, 19.806602, 39.613204 + -3.000000, 79.406469, 19.851617, 39.703234 + -3.000000, 79.586529, 19.896632, 39.793264 + -3.000000, 79.766589, 19.941647, 39.883294 + -3.000000, 79.946649, 19.986662, 39.973324 + -3.000000, 80.126709, 20.031677, 40.063354 + -3.000000, 80.306769, 20.076692, 40.153384 + -3.000000, 80.486829, 20.121707, 40.243414 + -3.000000, 80.666889, 20.166722, 40.333444 + -3.000000, 80.846949, 20.211737, 40.423474 + -3.000000, 81.027009, 20.256752, 40.513505 + -3.000000, 81.207069, 20.301767, 40.603535 + -3.000000, 81.387129, 20.346782, 40.693565 + -3.000000, 81.567189, 20.391797, 40.783595 + -3.000000, 81.747249, 20.436812, 40.873625 + -3.000000, 81.927309, 20.481827, 40.963655 + -3.000000, 82.107369, 20.526842, 41.053685 + -3.000000, 82.287429, 20.571857, 41.143715 + -3.000000, 82.467489, 20.616872, 41.233745 + -3.000000, 82.647549, 20.661887, 41.323775 + -3.000000, 82.827609, 20.706902, 41.413805 + -3.000000, 83.007669, 20.751917, 41.503835 + -3.000000, 83.187729, 20.796932, 41.593865 + -3.000000, 83.367789, 20.841947, 41.683895 + -3.000000, 83.547849, 20.886962, 41.773925 + -3.000000, 83.727909, 20.931977, 41.863955 + -3.000000, 83.907969, 20.976992, 41.953985 + -3.000000, 84.088029, 21.022007, 42.044015 + -3.000000, 84.268089, 21.067022, 42.134045 + -3.000000, 84.448149, 21.112037, 42.224075 + -3.000000, 84.628209, 21.157052, 42.314105 + -3.000000, 84.808269, 21.202067, 42.404135 + -3.000000, 84.988329, 21.247082, 42.494165 + -3.000000, 85.168389, 21.292097, 42.584195 + -3.000000, 85.348449, 21.337112, 42.674225 + -3.000000, 85.528510, 21.382127, 42.764255 + -3.000000, 85.708570, 21.427142, 42.854285 + -3.000000, 85.888630, 21.472157, 42.944315 + -3.000000, 86.068690, 21.517172, 43.034345 + -3.000000, 86.248750, 21.562187, 43.124375 + -3.000000, 86.428810, 21.607202, 43.214405 + -3.000000, 86.608870, 21.652217, 43.304435 + -3.000000, 86.788930, 21.697232, 43.394465 + -3.000000, 86.968990, 21.742247, 43.484495 + -3.000000, 87.149050, 21.787262, 43.574525 + -3.000000, 87.329110, 21.832277, 43.664555 + -3.000000, 87.509170, 21.877292, 43.754585 + -3.000000, 87.689230, 21.922307, 43.844615 + -3.000000, 87.869290, 21.967322, 43.934645 + -3.000000, 88.049350, 22.012337, 44.024675 + -3.000000, 88.229410, 22.057352, 44.114705 + -3.000000, 88.409470, 22.102367, 44.204735 + -3.000000, 88.589530, 22.147382, 44.294765 + -3.000000, 88.769590, 22.192397, 44.384795 + -3.000000, 88.949650, 22.237412, 44.474825 + -3.000000, 89.129710, 22.282427, 44.564855 + -3.000000, 89.309770, 22.327442, 44.654885 + -3.000000, 89.489830, 22.372457, 44.744915 + -3.000000, 89.669890, 22.417472, 44.834945 + -3.000000, 89.849950, 22.462487, 44.924975 + -3.000000, 90.030010, 22.507503, 45.015005 + -3.000000, 90.210070, 22.552518, 45.105035 + -3.000000, 90.390130, 22.597533, 45.195065 + -3.000000, 90.570190, 22.642548, 45.285095 + -3.000000, 90.750250, 22.687563, 45.375125 + -3.000000, 90.930310, 22.732578, 45.465155 + -3.000000, 91.110370, 22.777593, 45.555185 + -3.000000, 91.290430, 22.822608, 45.645215 + -3.000000, 91.470490, 22.867623, 45.735245 + -3.000000, 91.650550, 22.912638, 45.825275 + -3.000000, 91.830610, 22.957653, 45.915305 + -3.000000, 92.010670, 23.002668, 46.005335 + -3.000000, 92.190730, 23.047683, 46.095365 + -3.000000, 92.370790, 23.092698, 46.185395 + -3.000000, 92.550850, 23.137713, 46.275425 + -3.000000, 92.730910, 23.182728, 46.365455 + -3.000000, 92.910970, 23.227743, 46.455485 + -3.000000, 93.091030, 23.272758, 46.545515 + -3.000000, 93.271090, 23.317773, 46.635545 + -3.000000, 93.451150, 23.362788, 46.725575 + -3.000000, 93.631210, 23.407803, 46.815605 + -3.000000, 93.811270, 23.452818, 46.905635 + -3.000000, 93.991330, 23.497833, 46.995665 + -3.000000, 94.171390, 23.542848, 47.085695 + -3.000000, 94.351450, 23.587863, 47.175725 + -3.000000, 94.531511, 23.632878, 47.265755 + -3.000000, 94.711571, 23.677893, 47.355785 + -3.000000, 94.891631, 23.722908, 47.445815 + -3.000000, 95.071691, 23.767923, 47.535845 + -3.000000, 95.251751, 23.812938, 47.625875 + -3.000000, 95.431811, 23.857953, 47.715905 + -3.000000, 95.611871, 23.902968, 47.805935 + -3.000000, 95.791931, 23.947983, 47.895965 + -3.000000, 95.971991, 23.992998, 47.985995 + -3.000000, 96.152051, 24.038013, 48.076025 + -3.000000, 96.332111, 24.083028, 48.166055 + -3.000000, 96.512171, 24.128043, 48.256085 + -3.000000, 96.692231, 24.173058, 48.346115 + -3.000000, 96.872291, 24.218073, 48.436145 + -3.000000, 97.052351, 24.263088, 48.526175 + -3.000000, 97.232411, 24.308103, 48.616205 + -3.000000, 97.412471, 24.353118, 48.706235 + -3.000000, 97.592531, 24.398133, 48.796265 + -3.000000, 97.772591, 24.443148, 48.886295 + -3.000000, 97.952651, 24.488163, 48.976325 + -3.000000, 98.132711, 24.533178, 49.066355 + -3.000000, 98.312771, 24.578193, 49.156385 + -3.000000, 98.492831, 24.623208, 49.246415 + -3.000000, 98.672891, 24.668223, 49.336445 + -3.000000, 98.852951, 24.713238, 49.426475 + -3.000000, 99.033011, 24.758253, 49.516506 + -3.000000, 99.213071, 24.803268, 49.606536 + -3.000000, 99.393131, 24.848283, 49.696566 + -3.000000, 99.573191, 24.893298, 49.786596 + -3.000000, 99.753251, 24.938313, 49.876626 + -3.000000, 99.933311, 24.983328, 49.966656 + -3.000000, 100.113371, 25.028343, 50.056686 + -3.000000, 100.293431, 25.073358, 50.146716 + -3.000000, 100.473491, 25.118373, 50.236746 + -3.000000, 100.653551, 25.163388, 50.326776 + -3.000000, 100.833611, 25.208403, 50.416806 + -3.000000, 101.013671, 25.253418, 50.506836 + -3.000000, 101.193731, 25.298433, 50.596866 + -3.000000, 101.373791, 25.343448, 50.686896 + -3.000000, 101.553851, 25.388463, 50.776926 + -3.000000, 101.733911, 25.433478, 50.866956 + -3.000000, 101.913971, 25.478493, 50.956986 + -3.000000, 102.094031, 25.523508, 51.047016 + -3.000000, 102.274091, 25.568523, 51.137046 + -3.000000, 102.454151, 25.613538, 51.227076 + -3.000000, 102.634211, 25.658553, 51.317106 + -3.000000, 102.814271, 25.703568, 51.407136 + -3.000000, 102.994331, 25.748583, 51.497166 + -3.000000, 103.174391, 25.793598, 51.587196 + -3.000000, 103.354451, 25.838613, 51.677226 + -3.000000, 103.534512, 25.883628, 51.767256 + -3.000000, 103.714572, 25.928643, 51.857286 + -3.000000, 103.894632, 25.973658, 51.947316 + -3.000000, 104.074692, 26.018673, 52.037346 + -3.000000, 104.254752, 26.063688, 52.127376 + -3.000000, 104.434812, 26.108703, 52.217406 + -3.000000, 104.614872, 26.153718, 52.307436 + -3.000000, 104.794932, 26.198733, 52.397466 + -3.000000, 104.974992, 26.243748, 52.487496 + -3.000000, 105.155052, 26.288763, 52.577526 + -3.000000, 105.335112, 26.333778, 52.667556 + -3.000000, 105.515172, 26.378793, 52.757586 + -3.000000, 105.695232, 26.423808, 52.847616 + -3.000000, 105.875292, 26.468823, 52.937646 + -3.000000, 106.055352, 26.513838, 53.027676 + -3.000000, 106.235412, 26.558853, 53.117706 + -3.000000, 106.415472, 26.603868, 53.207736 + -3.000000, 106.595532, 26.648883, 53.297766 + -3.000000, 106.775592, 26.693898, 53.387796 + -3.000000, 106.955652, 26.738913, 53.477826 + -3.000000, 107.135712, 26.783928, 53.567856 + -3.000000, 107.315772, 26.828943, 53.657886 + -3.000000, 107.495832, 26.873958, 53.747916 + -3.000000, 107.675892, 26.918973, 53.837946 + -3.000000, 107.855952, 26.963988, 53.927976 + -3.000000, 108.036012, 27.009003, 54.018006 + -3.000000, 108.216072, 27.054018, 54.108036 + -3.000000, 108.396132, 27.099033, 54.198066 + -3.000000, 108.576192, 27.144048, 54.288096 + -3.000000, 108.756252, 27.189063, 54.378126 + -3.000000, 108.936312, 27.234078, 54.468156 + -3.000000, 109.116372, 27.279093, 54.558186 + -3.000000, 109.296432, 27.324108, 54.648216 + -3.000000, 109.476492, 27.369123, 54.738246 + -3.000000, 109.656552, 27.414138, 54.828276 + -3.000000, 109.836612, 27.459153, 54.918306 + -3.000000, 110.016672, 27.504168, 55.008336 + -3.000000, 110.196732, 27.549183, 55.098366 + -3.000000, 110.376792, 27.594198, 55.188396 + -3.000000, 110.556852, 27.639213, 55.278426 + -3.000000, 110.736912, 27.684228, 55.368456 + -3.000000, 110.916972, 27.729243, 55.458486 + -3.000000, 111.097032, 27.774258, 55.548516 + -3.000000, 111.277092, 27.819273, 55.638546 + -3.000000, 111.457152, 27.864288, 55.728576 + -3.000000, 111.637212, 27.909303, 55.818606 + -3.000000, 111.817272, 27.954318, 55.908636 + -3.000000, 111.997332, 27.999333, 55.998666 + -3.000000, 112.177392, 28.044348, 56.088696 + -3.000000, 112.357452, 28.089363, 56.178726 + -3.000000, 112.537513, 28.134378, 56.268756 + -3.000000, 112.717573, 28.179393, 56.358786 + -3.000000, 112.897633, 28.224408, 56.448816 + -3.000000, 113.077693, 28.269423, 56.538846 + -3.000000, 113.257753, 28.314438, 56.628876 + -3.000000, 113.437813, 28.359453, 56.718906 + -3.000000, 113.617873, 28.404468, 56.808936 + -3.000000, 113.797933, 28.449483, 56.898966 + -3.000000, 113.977993, 28.494498, 56.988996 + -3.000000, 114.158053, 28.539513, 57.079026 + -3.000000, 114.338113, 28.584528, 57.169056 + -3.000000, 114.518173, 28.629543, 57.259086 + -3.000000, 114.698233, 28.674558, 57.349116 + -3.000000, 114.878293, 28.719573, 57.439146 + -3.000000, 115.058353, 28.764588, 57.529176 + -3.000000, 115.238413, 28.809603, 57.619206 + -3.000000, 115.418473, 28.854618, 57.709236 + -3.000000, 115.598533, 28.899633, 57.799266 + -3.000000, 115.778593, 28.944648, 57.889296 + -3.000000, 115.958653, 28.989663, 57.979326 + -3.000000, 116.138713, 29.034678, 58.069356 + -3.000000, 116.318773, 29.079693, 58.159386 + -3.000000, 116.498833, 29.124708, 58.249416 + -3.000000, 116.678893, 29.169723, 58.339446 + -3.000000, 116.858953, 29.214738, 58.429476 + -3.000000, 117.039013, 29.259753, 58.519507 + -3.000000, 117.219073, 29.304768, 58.609537 + -3.000000, 117.399133, 29.349783, 58.699567 + -3.000000, 117.579193, 29.394798, 58.789597 + -3.000000, 117.759253, 29.439813, 58.879627 + -3.000000, 117.939313, 29.484828, 58.969657 + -3.000000, 118.119373, 29.529843, 59.059687 + -3.000000, 118.299433, 29.574858, 59.149717 + -3.000000, 118.479493, 29.619873, 59.239747 + -3.000000, 118.659553, 29.664888, 59.329777 + -3.000000, 118.839613, 29.709903, 59.419807 + -3.000000, 119.019673, 29.754918, 59.509837 + -3.000000, 119.199733, 29.799933, 59.599867 + -3.000000, 119.379793, 29.844948, 59.689897 + -3.000000, 119.559853, 29.889963, 59.779927 + -3.000000, 119.739913, 29.934978, 59.869957 + -3.000000, 119.919973, 29.979993, 59.959987 + -3.000000, 120.100033, 30.025008, 60.050017 + -3.000000, 120.280093, 30.070023, 60.140047 + -3.000000, 120.460153, 30.115038, 60.230077 + -3.000000, 120.640213, 30.160053, 60.320107 + -3.000000, 120.820273, 30.205068, 60.410137 + -3.000000, 121.000333, 30.250083, 60.500167 + -3.000000, 121.180393, 30.295098, 60.590197 + -3.000000, 121.360453, 30.340113, 60.680227 + -3.000000, 121.540514, 30.385128, 60.770257 + -3.000000, 121.720574, 30.430143, 60.860287 + -3.000000, 121.900634, 30.475158, 60.950317 + -3.000000, 122.080694, 30.520173, 61.040347 + -3.000000, 122.260754, 30.565188, 61.130377 + -3.000000, 122.440814, 30.610203, 61.220407 + -3.000000, 122.620874, 30.655218, 61.310437 + -3.000000, 122.800934, 30.700233, 61.400467 + -3.000000, 122.980994, 30.745248, 61.490497 + -3.000000, 123.161054, 30.790263, 61.580527 + -3.000000, 123.341114, 30.835278, 61.670557 + -3.000000, 123.521174, 30.880293, 61.760587 + -3.000000, 123.701234, 30.925308, 61.850617 + -3.000000, 123.881294, 30.970323, 61.940647 + -3.000000, 124.061354, 31.015338, 62.030677 + -3.000000, 124.241414, 31.060353, 62.120707 + -3.000000, 124.421474, 31.105368, 62.210737 + -3.000000, 124.601534, 31.150383, 62.300767 + -3.000000, 124.781594, 31.195398, 62.390797 + -3.000000, 124.961654, 31.240413, 62.480827 + -3.000000, 125.141714, 31.285428, 62.570857 + -3.000000, 125.321774, 31.330443, 62.660887 + -3.000000, 125.501834, 31.375458, 62.750917 + -3.000000, 125.681894, 31.420473, 62.840947 + -3.000000, 125.861954, 31.465488, 62.930977 + -3.000000, 126.042014, 31.510504, 63.021007 + -3.000000, 126.222074, 31.555519, 63.111037 + -3.000000, 126.402134, 31.600534, 63.201067 + -3.000000, 126.582194, 31.645549, 63.291097 + -3.000000, 126.762254, 31.690564, 63.381127 + -3.000000, 126.942314, 31.735579, 63.471157 + -3.000000, 127.122374, 31.780594, 63.561187 + -3.000000, 127.302434, 31.825609, 63.651217 + -3.000000, 127.482494, 31.870624, 63.741247 + -3.000000, 127.662554, 31.915639, 63.831277 + -3.000000, 127.842614, 31.960654, 63.921307 + -3.000000, 128.022674, 32.005669, 64.011337 + -3.000000, 128.202734, 32.050684, 64.101367 + -3.000000, 128.382794, 32.095699, 64.191397 + -3.000000, 128.562854, 32.140714, 64.281427 + -3.000000, 128.742914, 32.185729, 64.371457 + -3.000000, 128.922974, 32.230744, 64.461487 + -3.000000, 129.103034, 32.275759, 64.551517 + -3.000000, 129.283094, 32.320774, 64.641547 + -3.000000, 129.463154, 32.365789, 64.731577 + -3.000000, 129.643214, 32.410804, 64.821607 + -3.000000, 129.823274, 32.455819, 64.911637 + -3.000000, 130.003334, 32.500834, 65.001667 + -3.000000, 130.183394, 32.545849, 65.091697 + -3.000000, 130.363454, 32.590864, 65.181727 + -3.000000, 130.543515, 32.635879, 65.271757 + -3.000000, 130.723575, 32.680894, 65.361787 + -3.000000, 130.903635, 32.725909, 65.451817 + -3.000000, 131.083695, 32.770924, 65.541847 + -3.000000, 131.263755, 32.815939, 65.631877 + -3.000000, 131.443815, 32.860954, 65.721907 + -3.000000, 131.623875, 32.905969, 65.811937 + -3.000000, 131.803935, 32.950984, 65.901967 + -3.000000, 131.983995, 32.995999, 65.991997 + -3.000000, 132.164055, 33.041014, 66.082027 + -3.000000, 132.344115, 33.086029, 66.172057 + -3.000000, 132.524175, 33.131044, 66.262087 + -3.000000, 132.704235, 33.176059, 66.352117 + -3.000000, 132.884295, 33.221074, 66.442147 + -3.000000, 133.064355, 33.266089, 66.532177 + -3.000000, 133.244415, 33.311104, 66.622207 + -3.000000, 133.424475, 33.356119, 66.712237 + -3.000000, 133.604535, 33.401134, 66.802267 + -3.000000, 133.784595, 33.446149, 66.892297 + -3.000000, 133.964655, 33.491164, 66.982327 + -3.000000, 134.144715, 33.536179, 67.072357 + -3.000000, 134.324775, 33.581194, 67.162387 + -3.000000, 134.504835, 33.626209, 67.252417 + -3.000000, 134.684895, 33.671224, 67.342447 + -3.000000, 134.864955, 33.716239, 67.432477 + -3.000000, 135.045015, 33.761254, 67.522508 + -3.000000, 135.225075, 33.806269, 67.612538 + -3.000000, 135.405135, 33.851284, 67.702568 + -3.000000, 135.585195, 33.896299, 67.792598 + -3.000000, 135.765255, 33.941314, 67.882628 + -3.000000, 135.945315, 33.986329, 67.972658 + -3.000000, 136.125375, 34.031344, 68.062688 + -3.000000, 136.305435, 34.076359, 68.152718 + -3.000000, 136.485495, 34.121374, 68.242748 + -3.000000, 136.665555, 34.166389, 68.332778 + -3.000000, 136.845615, 34.211404, 68.422808 + -3.000000, 137.025675, 34.256419, 68.512838 + -3.000000, 137.205735, 34.301434, 68.602868 + -3.000000, 137.385795, 34.346449, 68.692898 + -3.000000, 137.565855, 34.391464, 68.782928 + -3.000000, 137.745915, 34.436479, 68.872958 + -3.000000, 137.925975, 34.481494, 68.962988 + -3.000000, 138.106035, 34.526509, 69.053018 + -3.000000, 138.286095, 34.571524, 69.143048 + -3.000000, 138.466155, 34.616539, 69.233078 + -3.000000, 138.646215, 34.661554, 69.323108 + -3.000000, 138.826275, 34.706569, 69.413138 + -3.000000, 139.006335, 34.751584, 69.503168 + -3.000000, 139.186395, 34.796599, 69.593198 + -3.000000, 139.366455, 34.841614, 69.683228 + -3.000000, 139.546516, 34.886629, 69.773258 + -3.000000, 139.726576, 34.931644, 69.863288 + -3.000000, 139.906636, 34.976659, 69.953318 + -3.000000, 140.086696, 35.021674, 70.043348 + -3.000000, 140.266756, 35.066689, 70.133378 + -3.000000, 140.446816, 35.111704, 70.223408 + -3.000000, 140.626876, 35.156719, 70.313438 + -3.000000, 140.806936, 35.201734, 70.403468 + -3.000000, 140.986996, 35.246749, 70.493498 + -3.000000, 141.167056, 35.291764, 70.583528 + -3.000000, 141.347116, 35.336779, 70.673558 + -3.000000, 141.527176, 35.381794, 70.763588 + -3.000000, 141.707236, 35.426809, 70.853618 + -3.000000, 141.887296, 35.471824, 70.943648 + -3.000000, 142.067356, 35.516839, 71.033678 + -3.000000, 142.247416, 35.561854, 71.123708 + -3.000000, 142.427476, 35.606869, 71.213738 + -3.000000, 142.607536, 35.651884, 71.303768 + -3.000000, 142.787596, 35.696899, 71.393798 + -3.000000, 142.967656, 35.741914, 71.483828 + -3.000000, 143.147716, 35.786929, 71.573858 + -3.000000, 143.327776, 35.831944, 71.663888 + -3.000000, 143.507836, 35.876959, 71.753918 + -3.000000, 143.687896, 35.921974, 71.843948 + -3.000000, 143.867956, 35.966989, 71.933978 + -3.000000, 144.048016, 36.012004, 72.024008 + -3.000000, 144.228076, 36.057019, 72.114038 + -3.000000, 144.408136, 36.102034, 72.204068 + -3.000000, 144.588196, 36.147049, 72.294098 + -3.000000, 144.768256, 36.192064, 72.384128 + -3.000000, 144.948316, 36.237079, 72.474158 + -3.000000, 145.128376, 36.282094, 72.564188 + -3.000000, 145.308436, 36.327109, 72.654218 + -3.000000, 145.488496, 36.372124, 72.744248 + -3.000000, 145.668556, 36.417139, 72.834278 + -3.000000, 145.848616, 36.462154, 72.924308 + -3.000000, 146.028676, 36.507169, 73.014338 + -3.000000, 146.208736, 36.552184, 73.104368 + -3.000000, 146.388796, 36.597199, 73.194398 + -3.000000, 146.568856, 36.642214, 73.284428 + -3.000000, 146.748916, 36.687229, 73.374458 + -3.000000, 146.928976, 36.732244, 73.464488 + -3.000000, 147.109036, 36.777259, 73.554518 + -3.000000, 147.289096, 36.822274, 73.644548 + -3.000000, 147.469156, 36.867289, 73.734578 + -3.000000, 147.649216, 36.912304, 73.824608 + -3.000000, 147.829276, 36.957319, 73.914638 + -3.000000, 148.009336, 37.002334, 74.004668 + -3.000000, 148.189396, 37.047349, 74.094698 + -3.000000, 148.369456, 37.092364, 74.184728 + -3.000000, 148.549517, 37.137379, 74.274758 + -3.000000, 148.729577, 37.182394, 74.364788 + -3.000000, 148.909637, 37.227409, 74.454818 + -3.000000, 149.089697, 37.272424, 74.544848 + -3.000000, 149.269757, 37.317439, 74.634878 + -3.000000, 149.449817, 37.362454, 74.724908 + -3.000000, 149.629877, 37.407469, 74.814938 + -3.000000, 149.809937, 37.452484, 74.904968 + -3.000000, 149.989997, 37.497499, 74.994998 + -3.000000, 150.170057, 37.542514, 75.085028 + -3.000000, 150.350117, 37.587529, 75.175058 + -3.000000, 150.530177, 37.632544, 75.265088 + -3.000000, 150.710237, 37.677559, 75.355118 + -3.000000, 150.890297, 37.722574, 75.445148 + -3.000000, 151.070357, 37.767589, 75.535178 + -3.000000, 151.250417, 37.812604, 75.625208 + -3.000000, 151.430477, 37.857619, 75.715238 + -3.000000, 151.610537, 37.902634, 75.805268 + -3.000000, 151.790597, 37.947649, 75.895298 + -3.000000, 151.970657, 37.992664, 75.985328 + -3.000000, 152.150717, 38.037679, 76.075358 + -3.000000, 152.330777, 38.082694, 76.165388 + -3.000000, 152.510837, 38.127709, 76.255418 + -3.000000, 152.690897, 38.172724, 76.345448 + -3.000000, 152.870957, 38.217739, 76.435478 + -3.000000, 153.051017, 38.262754, 76.525509 + -3.000000, 153.231077, 38.307769, 76.615539 + -3.000000, 153.411137, 38.352784, 76.705569 + -3.000000, 153.591197, 38.397799, 76.795599 + -3.000000, 153.771257, 38.442814, 76.885629 + -3.000000, 153.951317, 38.487829, 76.975659 + -3.000000, 154.131377, 38.532844, 77.065689 + -3.000000, 154.311437, 38.577859, 77.155719 + -3.000000, 154.491497, 38.622874, 77.245749 + -3.000000, 154.671557, 38.667889, 77.335779 + -3.000000, 154.851617, 38.712904, 77.425809 + -3.000000, 155.031677, 38.757919, 77.515839 + -3.000000, 155.211737, 38.802934, 77.605869 + -3.000000, 155.391797, 38.847949, 77.695899 + -3.000000, 155.571857, 38.892964, 77.785929 + -3.000000, 155.751917, 38.937979, 77.875959 + -3.000000, 155.931977, 38.982994, 77.965989 + -3.000000, 156.112037, 39.028009, 78.056019 + -3.000000, 156.292097, 39.073024, 78.146049 + -3.000000, 156.472157, 39.118039, 78.236079 + -3.000000, 156.652217, 39.163054, 78.326109 + -3.000000, 156.832277, 39.208069, 78.416139 + -3.000000, 157.012337, 39.253084, 78.506169 + -3.000000, 157.192397, 39.298099, 78.596199 + -3.000000, 157.372457, 39.343114, 78.686229 + -3.000000, 157.552518, 39.388129, 78.776259 + -3.000000, 157.732578, 39.433144, 78.866289 + -3.000000, 157.912638, 39.478159, 78.956319 + -3.000000, 158.092698, 39.523174, 79.046349 + -3.000000, 158.272758, 39.568189, 79.136379 + -3.000000, 158.452818, 39.613204, 79.226409 + -3.000000, 158.632878, 39.658219, 79.316439 + -3.000000, 158.812938, 39.703234, 79.406469 + -3.000000, 158.992998, 39.748249, 79.496499 + -3.000000, 159.173058, 39.793264, 79.586529 + -3.000000, 159.353118, 39.838279, 79.676559 + -3.000000, 159.533178, 39.883294, 79.766589 + -3.000000, 159.713238, 39.928309, 79.856619 + -3.000000, 159.893298, 39.973324, 79.946649 + -3.000000, 160.073358, 40.018339, 80.036679 + -3.000000, 160.253418, 40.063354, 80.126709 + -3.000000, 160.433478, 40.108369, 80.216739 + -3.000000, 160.613538, 40.153384, 80.306769 + -3.000000, 160.793598, 40.198399, 80.396799 + -3.000000, 160.973658, 40.243414, 80.486829 + -3.000000, 161.153718, 40.288429, 80.576859 + -3.000000, 161.333778, 40.333444, 80.666889 + -3.000000, 161.513838, 40.378459, 80.756919 + -3.000000, 161.693898, 40.423474, 80.846949 + -3.000000, 161.873958, 40.468489, 80.936979 + -3.000000, 162.054018, 40.513505, 81.027009 + -3.000000, 162.234078, 40.558520, 81.117039 + -3.000000, 162.414138, 40.603535, 81.207069 + -3.000000, 162.594198, 40.648550, 81.297099 + -3.000000, 162.774258, 40.693565, 81.387129 + -3.000000, 162.954318, 40.738580, 81.477159 + -3.000000, 163.134378, 40.783595, 81.567189 + -3.000000, 163.314438, 40.828610, 81.657219 + -3.000000, 163.494498, 40.873625, 81.747249 + -3.000000, 163.674558, 40.918640, 81.837279 + -3.000000, 163.854618, 40.963655, 81.927309 + -3.000000, 164.034678, 41.008670, 82.017339 + -3.000000, 164.214738, 41.053685, 82.107369 + -3.000000, 164.394798, 41.098700, 82.197399 + -3.000000, 164.574858, 41.143715, 82.287429 + -3.000000, 164.754918, 41.188730, 82.377459 + -3.000000, 164.934978, 41.233745, 82.467489 + -3.000000, 165.115038, 41.278760, 82.557519 + -3.000000, 165.295098, 41.323775, 82.647549 + -3.000000, 165.475158, 41.368790, 82.737579 + -3.000000, 165.655218, 41.413805, 82.827609 + -3.000000, 165.835278, 41.458820, 82.917639 + -3.000000, 166.015338, 41.503835, 83.007669 + -3.000000, 166.195398, 41.548850, 83.097699 + -3.000000, 166.375458, 41.593865, 83.187729 + -3.000000, 166.555519, 41.638880, 83.277759 + -3.000000, 166.735579, 41.683895, 83.367789 + -3.000000, 166.915639, 41.728910, 83.457819 + -3.000000, 167.095699, 41.773925, 83.547849 + -3.000000, 167.275759, 41.818940, 83.637879 + -3.000000, 167.455819, 41.863955, 83.727909 + -3.000000, 167.635879, 41.908970, 83.817939 + -3.000000, 167.815939, 41.953985, 83.907969 + -3.000000, 167.995999, 41.999000, 83.997999 + -3.000000, 168.176059, 42.044015, 84.088029 + -3.000000, 168.356119, 42.089030, 84.178059 + -3.000000, 168.536179, 42.134045, 84.268089 + -3.000000, 168.716239, 42.179060, 84.358119 + -3.000000, 168.896299, 42.224075, 84.448149 + -3.000000, 169.076359, 42.269090, 84.538179 + -3.000000, 169.256419, 42.314105, 84.628209 + -3.000000, 169.436479, 42.359120, 84.718239 + -3.000000, 169.616539, 42.404135, 84.808269 + -3.000000, 169.796599, 42.449150, 84.898299 + -3.000000, 169.976659, 42.494165, 84.988329 + -3.000000, 170.156719, 42.539180, 85.078359 + -3.000000, 170.336779, 42.584195, 85.168389 + -3.000000, 170.516839, 42.629210, 85.258419 + -3.000000, 170.696899, 42.674225, 85.348449 + -3.000000, 170.876959, 42.719240, 85.438479 + -3.000000, 171.057019, 42.764255, 85.528510 + -3.000000, 171.237079, 42.809270, 85.618540 + -3.000000, 171.417139, 42.854285, 85.708570 + -3.000000, 171.597199, 42.899300, 85.798600 + -3.000000, 171.777259, 42.944315, 85.888630 + -3.000000, 171.957319, 42.989330, 85.978660 + -3.000000, 172.137379, 43.034345, 86.068690 + -3.000000, 172.317439, 43.079360, 86.158720 + -3.000000, 172.497499, 43.124375, 86.248750 + -3.000000, 172.677559, 43.169390, 86.338780 + -3.000000, 172.857619, 43.214405, 86.428810 + -3.000000, 173.037679, 43.259420, 86.518840 + -3.000000, 173.217739, 43.304435, 86.608870 + -3.000000, 173.397799, 43.349450, 86.698900 + -3.000000, 173.577859, 43.394465, 86.788930 + -3.000000, 173.757919, 43.439480, 86.878960 + -3.000000, 173.937979, 43.484495, 86.968990 + -3.000000, 174.118039, 43.529510, 87.059020 + -3.000000, 174.298099, 43.574525, 87.149050 + -3.000000, 174.478159, 43.619540, 87.239080 + -3.000000, 174.658219, 43.664555, 87.329110 + -3.000000, 174.838279, 43.709570, 87.419140 + -3.000000, 175.018339, 43.754585, 87.509170 + -3.000000, 175.198399, 43.799600, 87.599200 + -3.000000, 175.378459, 43.844615, 87.689230 + -3.000000, 175.558520, 43.889630, 87.779260 + -3.000000, 175.738580, 43.934645, 87.869290 + -3.000000, 175.918640, 43.979660, 87.959320 + -3.000000, 176.098700, 44.024675, 88.049350 + -3.000000, 176.278760, 44.069690, 88.139380 + -3.000000, 176.458820, 44.114705, 88.229410 + -3.000000, 176.638880, 44.159720, 88.319440 + -3.000000, 176.818940, 44.204735, 88.409470 + -3.000000, 176.999000, 44.249750, 88.499500 + -3.000000, 177.179060, 44.294765, 88.589530 + -3.000000, 177.359120, 44.339780, 88.679560 + -3.000000, 177.539180, 44.384795, 88.769590 + -3.000000, 177.719240, 44.429810, 88.859620 + -3.000000, 177.899300, 44.474825, 88.949650 + -3.000000, 178.079360, 44.519840, 89.039680 + -3.000000, 178.259420, 44.564855, 89.129710 + -3.000000, 178.439480, 44.609870, 89.219740 + -3.000000, 178.619540, 44.654885, 89.309770 + -3.000000, 178.799600, 44.699900, 89.399800 + -3.000000, 178.979660, 44.744915, 89.489830 + -3.000000, 179.159720, 44.789930, 89.579860 + -3.000000, 179.339780, 44.834945, 89.669890 + -3.000000, 179.519840, 44.879960, 89.759920 + -3.000000, 179.699900, 44.924975, 89.849950 + -3.000000, 179.879960, 44.969990, 89.939980 + -3.000000, 180.060020, 45.015005, 90.030010 + -3.000000, 180.240080, 45.060020, 90.120040 + -3.000000, 180.420140, 45.105035, 90.210070 + -3.000000, 180.600200, 45.150050, 90.300100 + -3.000000, 180.780260, 45.195065, 90.390130 + -3.000000, 180.960320, 45.240080, 90.480160 + -3.000000, 181.140380, 45.285095, 90.570190 + -3.000000, 181.320440, 45.330110, 90.660220 + -3.000000, 181.500500, 45.375125, 90.750250 + -3.000000, 181.680560, 45.420140, 90.840280 + -3.000000, 181.860620, 45.465155, 90.930310 + -3.000000, 182.040680, 45.510170, 91.020340 + -3.000000, 182.220740, 45.555185, 91.110370 + -3.000000, 182.400800, 45.600200, 91.200400 + -3.000000, 182.580860, 45.645215, 91.290430 + -3.000000, 182.760920, 45.690230, 91.380460 + -3.000000, 182.940980, 45.735245, 91.470490 + -3.000000, 183.121040, 45.780260, 91.560520 + -3.000000, 183.301100, 45.825275, 91.650550 + -3.000000, 183.481160, 45.870290, 91.740580 + -3.000000, 183.661220, 45.915305, 91.830610 + -3.000000, 183.841280, 45.960320, 91.920640 + -3.000000, 184.021340, 46.005335, 92.010670 + -3.000000, 184.201400, 46.050350, 92.100700 + -3.000000, 184.381460, 46.095365, 92.190730 + -3.000000, 184.561521, 46.140380, 92.280760 + -3.000000, 184.741581, 46.185395, 92.370790 + -3.000000, 184.921641, 46.230410, 92.460820 + -3.000000, 185.101701, 46.275425, 92.550850 + -3.000000, 185.281761, 46.320440, 92.640880 + -3.000000, 185.461821, 46.365455, 92.730910 + -3.000000, 185.641881, 46.410470, 92.820940 + -3.000000, 185.821941, 46.455485, 92.910970 + -3.000000, 186.002001, 46.500500, 93.001000 + -3.000000, 186.182061, 46.545515, 93.091030 + -3.000000, 186.362121, 46.590530, 93.181060 + -3.000000, 186.542181, 46.635545, 93.271090 + -3.000000, 186.722241, 46.680560, 93.361120 + -3.000000, 186.902301, 46.725575, 93.451150 + -3.000000, 187.082361, 46.770590, 93.541180 + -3.000000, 187.262421, 46.815605, 93.631210 + -3.000000, 187.442481, 46.860620, 93.721240 + -3.000000, 187.622541, 46.905635, 93.811270 + -3.000000, 187.802601, 46.950650, 93.901300 + -3.000000, 187.982661, 46.995665, 93.991330 + -3.000000, 188.162721, 47.040680, 94.081360 + -3.000000, 188.342781, 47.085695, 94.171390 + -3.000000, 188.522841, 47.130710, 94.261420 + -3.000000, 188.702901, 47.175725, 94.351450 + -3.000000, 188.882961, 47.220740, 94.441480 + -3.000000, 189.063021, 47.265755, 94.531511 + -3.000000, 189.243081, 47.310770, 94.621541 + -3.000000, 189.423141, 47.355785, 94.711571 + -3.000000, 189.603201, 47.400800, 94.801601 + -3.000000, 189.783261, 47.445815, 94.891631 + -3.000000, 189.963321, 47.490830, 94.981661 + -3.000000, 190.143381, 47.535845, 95.071691 + -3.000000, 190.323441, 47.580860, 95.161721 + -3.000000, 190.503501, 47.625875, 95.251751 + -3.000000, 190.683561, 47.670890, 95.341781 + -3.000000, 190.863621, 47.715905, 95.431811 + -3.000000, 191.043681, 47.760920, 95.521841 + -3.000000, 191.223741, 47.805935, 95.611871 + -3.000000, 191.403801, 47.850950, 95.701901 + -3.000000, 191.583861, 47.895965, 95.791931 + -3.000000, 191.763921, 47.940980, 95.881961 + -3.000000, 191.943981, 47.985995, 95.971991 + -3.000000, 192.124041, 48.031010, 96.062021 + -3.000000, 192.304101, 48.076025, 96.152051 + -3.000000, 192.484161, 48.121040, 96.242081 + -3.000000, 192.664221, 48.166055, 96.332111 + -3.000000, 192.844281, 48.211070, 96.422141 + -3.000000, 193.024341, 48.256085, 96.512171 + -3.000000, 193.204401, 48.301100, 96.602201 + -3.000000, 193.384461, 48.346115, 96.692231 + -3.000000, 193.564522, 48.391130, 96.782261 + -3.000000, 193.744582, 48.436145, 96.872291 + -3.000000, 193.924642, 48.481160, 96.962321 + -3.000000, 194.104702, 48.526175, 97.052351 + -3.000000, 194.284762, 48.571190, 97.142381 + -3.000000, 194.464822, 48.616205, 97.232411 + -3.000000, 194.644882, 48.661220, 97.322441 + -3.000000, 194.824942, 48.706235, 97.412471 + -3.000000, 195.005002, 48.751250, 97.502501 + -3.000000, 195.185062, 48.796265, 97.592531 + -3.000000, 195.365122, 48.841280, 97.682561 + -3.000000, 195.545182, 48.886295, 97.772591 + -3.000000, 195.725242, 48.931310, 97.862621 + -3.000000, 195.905302, 48.976325, 97.952651 + -3.000000, 196.085362, 49.021340, 98.042681 + -3.000000, 196.265422, 49.066355, 98.132711 + -3.000000, 196.445482, 49.111370, 98.222741 + -3.000000, 196.625542, 49.156385, 98.312771 + -3.000000, 196.805602, 49.201400, 98.402801 + -3.000000, 196.985662, 49.246415, 98.492831 + -3.000000, 197.165722, 49.291430, 98.582861 + -3.000000, 197.345782, 49.336445, 98.672891 + -3.000000, 197.525842, 49.381460, 98.762921 + -3.000000, 197.705902, 49.426475, 98.852951 + -3.000000, 197.885962, 49.471490, 98.942981 + -3.000000, 198.066022, 49.516506, 99.033011 + -3.000000, 198.246082, 49.561521, 99.123041 + -3.000000, 198.426142, 49.606536, 99.213071 + -3.000000, 198.606202, 49.651551, 99.303101 + -3.000000, 198.786262, 49.696566, 99.393131 + -3.000000, 198.966322, 49.741581, 99.483161 + -3.000000, 199.146382, 49.786596, 99.573191 + -3.000000, 199.326442, 49.831611, 99.663221 + -3.000000, 199.506502, 49.876626, 99.753251 + -3.000000, 199.686562, 49.921641, 99.843281 + -3.000000, 199.866622, 49.966656, 99.933311 + -3.000000, 200.046682, 50.011671, 100.023341 + -3.000000, 200.226742, 50.056686, 100.113371 + -3.000000, 200.406802, 50.101701, 100.203401 + -3.000000, 200.586862, 50.146716, 100.293431 + -3.000000, 200.766922, 50.191731, 100.383461 + -3.000000, 200.946982, 50.236746, 100.473491 + -3.000000, 201.127042, 50.281761, 100.563521 + -3.000000, 201.307102, 50.326776, 100.653551 + -3.000000, 201.487162, 50.371791, 100.743581 + -3.000000, 201.667222, 50.416806, 100.833611 + -3.000000, 201.847282, 50.461821, 100.923641 + -3.000000, 202.027342, 50.506836, 101.013671 + -3.000000, 202.207402, 50.551851, 101.103701 + -3.000000, 202.387462, 50.596866, 101.193731 + -3.000000, 202.567523, 50.641881, 101.283761 + -3.000000, 202.747583, 50.686896, 101.373791 + -3.000000, 202.927643, 50.731911, 101.463821 + -3.000000, 203.107703, 50.776926, 101.553851 + -3.000000, 203.287763, 50.821941, 101.643881 + -3.000000, 203.467823, 50.866956, 101.733911 + -3.000000, 203.647883, 50.911971, 101.823941 + -3.000000, 203.827943, 50.956986, 101.913971 + -3.000000, 204.008003, 51.002001, 102.004001 + -3.000000, 204.188063, 51.047016, 102.094031 + -3.000000, 204.368123, 51.092031, 102.184061 + -3.000000, 204.548183, 51.137046, 102.274091 + -3.000000, 204.728243, 51.182061, 102.364121 + -3.000000, 204.908303, 51.227076, 102.454151 + -3.000000, 205.088363, 51.272091, 102.544181 + -3.000000, 205.268423, 51.317106, 102.634211 + -3.000000, 205.448483, 51.362121, 102.724241 + -3.000000, 205.628543, 51.407136, 102.814271 + -3.000000, 205.808603, 51.452151, 102.904301 + -3.000000, 205.988663, 51.497166, 102.994331 + -3.000000, 206.168723, 51.542181, 103.084361 + -3.000000, 206.348783, 51.587196, 103.174391 + -3.000000, 206.528843, 51.632211, 103.264421 + -3.000000, 206.708903, 51.677226, 103.354451 + -3.000000, 206.888963, 51.722241, 103.444481 + -3.000000, 207.069023, 51.767256, 103.534512 + -3.000000, 207.249083, 51.812271, 103.624542 + -3.000000, 207.429143, 51.857286, 103.714572 + -3.000000, 207.609203, 51.902301, 103.804602 + -3.000000, 207.789263, 51.947316, 103.894632 + -3.000000, 207.969323, 51.992331, 103.984662 + -3.000000, 208.149383, 52.037346, 104.074692 + -3.000000, 208.329443, 52.082361, 104.164722 + -3.000000, 208.509503, 52.127376, 104.254752 + -3.000000, 208.689563, 52.172391, 104.344782 + -3.000000, 208.869623, 52.217406, 104.434812 + -3.000000, 209.049683, 52.262421, 104.524842 + -3.000000, 209.229743, 52.307436, 104.614872 + -3.000000, 209.409803, 52.352451, 104.704902 + -3.000000, 209.589863, 52.397466, 104.794932 + -3.000000, 209.769923, 52.442481, 104.884962 + -3.000000, 209.949983, 52.487496, 104.974992 + -3.000000, 210.130043, 52.532511, 105.065022 + -3.000000, 210.310103, 52.577526, 105.155052 + -3.000000, 210.490163, 52.622541, 105.245082 + -3.000000, 210.670223, 52.667556, 105.335112 + -3.000000, 210.850283, 52.712571, 105.425142 + -3.000000, 211.030343, 52.757586, 105.515172 + -3.000000, 211.210403, 52.802601, 105.605202 + -3.000000, 211.390463, 52.847616, 105.695232 + -3.000000, 211.570524, 52.892631, 105.785262 + -3.000000, 211.750584, 52.937646, 105.875292 + -3.000000, 211.930644, 52.982661, 105.965322 + -3.000000, 212.110704, 53.027676, 106.055352 + -3.000000, 212.290764, 53.072691, 106.145382 + -3.000000, 212.470824, 53.117706, 106.235412 + -3.000000, 212.650884, 53.162721, 106.325442 + -3.000000, 212.830944, 53.207736, 106.415472 + -3.000000, 213.011004, 53.252751, 106.505502 + -3.000000, 213.191064, 53.297766, 106.595532 + -3.000000, 213.371124, 53.342781, 106.685562 + -3.000000, 213.551184, 53.387796, 106.775592 + -3.000000, 213.731244, 53.432811, 106.865622 + -3.000000, 213.911304, 53.477826, 106.955652 + -3.000000, 214.091364, 53.522841, 107.045682 + -3.000000, 214.271424, 53.567856, 107.135712 + -3.000000, 214.451484, 53.612871, 107.225742 + -3.000000, 214.631544, 53.657886, 107.315772 + -3.000000, 214.811604, 53.702901, 107.405802 + -3.000000, 214.991664, 53.747916, 107.495832 + -3.000000, 215.171724, 53.792931, 107.585862 + -3.000000, 215.351784, 53.837946, 107.675892 + -3.000000, 215.531844, 53.882961, 107.765922 + -3.000000, 215.711904, 53.927976, 107.855952 + -3.000000, 215.891964, 53.972991, 107.945982 + -3.000000, 216.072024, 54.018006, 108.036012 + -3.000000, 216.252084, 54.063021, 108.126042 + -3.000000, 216.432144, 54.108036, 108.216072 + -3.000000, 216.612204, 54.153051, 108.306102 + -3.000000, 216.792264, 54.198066, 108.396132 + -3.000000, 216.972324, 54.243081, 108.486162 + -3.000000, 217.152384, 54.288096, 108.576192 + -3.000000, 217.332444, 54.333111, 108.666222 + -3.000000, 217.512504, 54.378126, 108.756252 + -3.000000, 217.692564, 54.423141, 108.846282 + -3.000000, 217.872624, 54.468156, 108.936312 + -3.000000, 218.052684, 54.513171, 109.026342 + -3.000000, 218.232744, 54.558186, 109.116372 + -3.000000, 218.412804, 54.603201, 109.206402 + -3.000000, 218.592864, 54.648216, 109.296432 + -3.000000, 218.772924, 54.693231, 109.386462 + -3.000000, 218.952984, 54.738246, 109.476492 + -3.000000, 219.133044, 54.783261, 109.566522 + -3.000000, 219.313104, 54.828276, 109.656552 + -3.000000, 219.493164, 54.873291, 109.746582 + -3.000000, 219.673224, 54.918306, 109.836612 + -3.000000, 219.853284, 54.963321, 109.926642 + -3.000000, 220.033344, 55.008336, 110.016672 + -3.000000, 220.213404, 55.053351, 110.106702 + -3.000000, 220.393464, 55.098366, 110.196732 + -3.000000, 220.573525, 55.143381, 110.286762 + -3.000000, 220.753585, 55.188396, 110.376792 + -3.000000, 220.933645, 55.233411, 110.466822 + -3.000000, 221.113705, 55.278426, 110.556852 + -3.000000, 221.293765, 55.323441, 110.646882 + -3.000000, 221.473825, 55.368456, 110.736912 + -3.000000, 221.653885, 55.413471, 110.826942 + -3.000000, 221.833945, 55.458486, 110.916972 + -3.000000, 222.014005, 55.503501, 111.007002 + -3.000000, 222.194065, 55.548516, 111.097032 + -3.000000, 222.374125, 55.593531, 111.187062 + -3.000000, 222.554185, 55.638546, 111.277092 + -3.000000, 222.734245, 55.683561, 111.367122 + -3.000000, 222.914305, 55.728576, 111.457152 + -3.000000, 223.094365, 55.773591, 111.547182 + -3.000000, 223.274425, 55.818606, 111.637212 + -3.000000, 223.454485, 55.863621, 111.727242 + -3.000000, 223.634545, 55.908636, 111.817272 + -3.000000, 223.814605, 55.953651, 111.907302 + -3.000000, 223.994665, 55.998666, 111.997332 + -3.000000, 224.174725, 56.043681, 112.087362 + -3.000000, 224.354785, 56.088696, 112.177392 + -3.000000, 224.534845, 56.133711, 112.267422 + -3.000000, 224.714905, 56.178726, 112.357452 + -3.000000, 224.894965, 56.223741, 112.447482 + -3.000000, 225.075025, 56.268756, 112.537513 + -3.000000, 225.255085, 56.313771, 112.627543 + -3.000000, 225.435145, 56.358786, 112.717573 + -3.000000, 225.615205, 56.403801, 112.807603 + -3.000000, 225.795265, 56.448816, 112.897633 + -3.000000, 225.975325, 56.493831, 112.987663 + -3.000000, 226.155385, 56.538846, 113.077693 + -3.000000, 226.335445, 56.583861, 113.167723 + -3.000000, 226.515505, 56.628876, 113.257753 + -3.000000, 226.695565, 56.673891, 113.347783 + -3.000000, 226.875625, 56.718906, 113.437813 + -3.000000, 227.055685, 56.763921, 113.527843 + -3.000000, 227.235745, 56.808936, 113.617873 + -3.000000, 227.415805, 56.853951, 113.707903 + -3.000000, 227.595865, 56.898966, 113.797933 + -3.000000, 227.775925, 56.943981, 113.887963 + -3.000000, 227.955985, 56.988996, 113.977993 + -3.000000, 228.136045, 57.034011, 114.068023 + -3.000000, 228.316105, 57.079026, 114.158053 + -3.000000, 228.496165, 57.124041, 114.248083 + -3.000000, 228.676225, 57.169056, 114.338113 + -3.000000, 228.856285, 57.214071, 114.428143 + -3.000000, 229.036345, 57.259086, 114.518173 + -3.000000, 229.216405, 57.304101, 114.608203 + -3.000000, 229.396465, 57.349116, 114.698233 + -3.000000, 229.576526, 57.394131, 114.788263 + -3.000000, 229.756586, 57.439146, 114.878293 + -3.000000, 229.936646, 57.484161, 114.968323 + -3.000000, 230.116706, 57.529176, 115.058353 + -3.000000, 230.296766, 57.574191, 115.148383 + -3.000000, 230.476826, 57.619206, 115.238413 + -3.000000, 230.656886, 57.664221, 115.328443 + -3.000000, 230.836946, 57.709236, 115.418473 + -3.000000, 231.017006, 57.754251, 115.508503 + -3.000000, 231.197066, 57.799266, 115.598533 + -3.000000, 231.377126, 57.844281, 115.688563 + -3.000000, 231.557186, 57.889296, 115.778593 + -3.000000, 231.737246, 57.934311, 115.868623 + -3.000000, 231.917306, 57.979326, 115.958653 + -3.000000, 232.097366, 58.024341, 116.048683 + -3.000000, 232.277426, 58.069356, 116.138713 + -3.000000, 232.457486, 58.114371, 116.228743 + -3.000000, 232.637546, 58.159386, 116.318773 + -3.000000, 232.817606, 58.204401, 116.408803 + -3.000000, 232.997666, 58.249416, 116.498833 + -3.000000, 233.177726, 58.294431, 116.588863 + -3.000000, 233.357786, 58.339446, 116.678893 + -3.000000, 233.537846, 58.384461, 116.768923 + -3.000000, 233.717906, 58.429476, 116.858953 + -3.000000, 233.897966, 58.474491, 116.948983 + -3.000000, 234.078026, 58.519507, 117.039013 + -3.000000, 234.258086, 58.564522, 117.129043 + -3.000000, 234.438146, 58.609537, 117.219073 + -3.000000, 234.618206, 58.654552, 117.309103 + -3.000000, 234.798266, 58.699567, 117.399133 + -3.000000, 234.978326, 58.744582, 117.489163 + -3.000000, 235.158386, 58.789597, 117.579193 + -3.000000, 235.338446, 58.834612, 117.669223 + -3.000000, 235.518506, 58.879627, 117.759253 + -3.000000, 235.698566, 58.924642, 117.849283 + -3.000000, 235.878626, 58.969657, 117.939313 + -3.000000, 236.058686, 59.014672, 118.029343 + -3.000000, 236.238746, 59.059687, 118.119373 + -3.000000, 236.418806, 59.104702, 118.209403 + -3.000000, 236.598866, 59.149717, 118.299433 + -3.000000, 236.778926, 59.194732, 118.389463 + -3.000000, 236.958986, 59.239747, 118.479493 + -3.000000, 237.139046, 59.284762, 118.569523 + -3.000000, 237.319106, 59.329777, 118.659553 + -3.000000, 237.499166, 59.374792, 118.749583 + -3.000000, 237.679226, 59.419807, 118.839613 + -3.000000, 237.859286, 59.464822, 118.929643 + -3.000000, 238.039346, 59.509837, 119.019673 + -3.000000, 238.219406, 59.554852, 119.109703 + -3.000000, 238.399466, 59.599867, 119.199733 + -3.000000, 238.579527, 59.644882, 119.289763 + -3.000000, 238.759587, 59.689897, 119.379793 + -3.000000, 238.939647, 59.734912, 119.469823 + -3.000000, 239.119707, 59.779927, 119.559853 + -3.000000, 239.299767, 59.824942, 119.649883 + -3.000000, 239.479827, 59.869957, 119.739913 + -3.000000, 239.659887, 59.914972, 119.829943 + -3.000000, 239.839947, 59.959987, 119.919973 + -3.000000, 240.020007, 60.005002, 120.010003 + -3.000000, 240.200067, 60.050017, 120.100033 + -3.000000, 240.380127, 60.095032, 120.190063 + -3.000000, 240.560187, 60.140047, 120.280093 + -3.000000, 240.740247, 60.185062, 120.370123 + -3.000000, 240.920307, 60.230077, 120.460153 + -3.000000, 241.100367, 60.275092, 120.550183 + -3.000000, 241.280427, 60.320107, 120.640213 + -3.000000, 241.460487, 60.365122, 120.730243 + -3.000000, 241.640547, 60.410137, 120.820273 + -3.000000, 241.820607, 60.455152, 120.910303 + -3.000000, 242.000667, 60.500167, 121.000333 + -3.000000, 242.180727, 60.545182, 121.090363 + -3.000000, 242.360787, 60.590197, 121.180393 + -3.000000, 242.540847, 60.635212, 121.270423 + -3.000000, 242.720907, 60.680227, 121.360453 + -3.000000, 242.900967, 60.725242, 121.450483 + -3.000000, 243.081027, 60.770257, 121.540514 + -3.000000, 243.261087, 60.815272, 121.630544 + -3.000000, 243.441147, 60.860287, 121.720574 + -3.000000, 243.621207, 60.905302, 121.810604 + -3.000000, 243.801267, 60.950317, 121.900634 + -3.000000, 243.981327, 60.995332, 121.990664 + -3.000000, 244.161387, 61.040347, 122.080694 + -3.000000, 244.341447, 61.085362, 122.170724 + -3.000000, 244.521507, 61.130377, 122.260754 + -3.000000, 244.701567, 61.175392, 122.350784 + -3.000000, 244.881627, 61.220407, 122.440814 + -3.000000, 245.061687, 61.265422, 122.530844 + -3.000000, 245.241747, 61.310437, 122.620874 + -3.000000, 245.421807, 61.355452, 122.710904 + -3.000000, 245.601867, 61.400467, 122.800934 + -3.000000, 245.781927, 61.445482, 122.890964 + -3.000000, 245.961987, 61.490497, 122.980994 + -3.000000, 246.142047, 61.535512, 123.071024 + -3.000000, 246.322107, 61.580527, 123.161054 + -3.000000, 246.502167, 61.625542, 123.251084 + -3.000000, 246.682227, 61.670557, 123.341114 + -3.000000, 246.862287, 61.715572, 123.431144 + -3.000000, 247.042347, 61.760587, 123.521174 + -3.000000, 247.222407, 61.805602, 123.611204 + -3.000000, 247.402467, 61.850617, 123.701234 + -3.000000, 247.582528, 61.895632, 123.791264 + -3.000000, 247.762588, 61.940647, 123.881294 + -3.000000, 247.942648, 61.985662, 123.971324 + -3.000000, 248.122708, 62.030677, 124.061354 + -3.000000, 248.302768, 62.075692, 124.151384 + -3.000000, 248.482828, 62.120707, 124.241414 + -3.000000, 248.662888, 62.165722, 124.331444 + -3.000000, 248.842948, 62.210737, 124.421474 + -3.000000, 249.023008, 62.255752, 124.511504 + -3.000000, 249.203068, 62.300767, 124.601534 + -3.000000, 249.383128, 62.345782, 124.691564 + -3.000000, 249.563188, 62.390797, 124.781594 + -3.000000, 249.743248, 62.435812, 124.871624 + -3.000000, 249.923308, 62.480827, 124.961654 + -3.000000, 250.103368, 62.525842, 125.051684 + -3.000000, 250.283428, 62.570857, 125.141714 + -3.000000, 250.463488, 62.615872, 125.231744 + -3.000000, 250.643548, 62.660887, 125.321774 + -3.000000, 250.823608, 62.705902, 125.411804 + -3.000000, 251.003668, 62.750917, 125.501834 + -3.000000, 251.183728, 62.795932, 125.591864 + -3.000000, 251.363788, 62.840947, 125.681894 + -3.000000, 251.543848, 62.885962, 125.771924 + -3.000000, 251.723908, 62.930977, 125.861954 + -3.000000, 251.903968, 62.975992, 125.951984 + -3.000000, 252.084028, 63.021007, 126.042014 + -3.000000, 252.264088, 63.066022, 126.132044 + -3.000000, 252.444148, 63.111037, 126.222074 + -3.000000, 252.624208, 63.156052, 126.312104 + -3.000000, 252.804268, 63.201067, 126.402134 + -3.000000, 252.984328, 63.246082, 126.492164 + -3.000000, 253.164388, 63.291097, 126.582194 + -3.000000, 253.344448, 63.336112, 126.672224 + -3.000000, 253.524508, 63.381127, 126.762254 + -3.000000, 253.704568, 63.426142, 126.852284 + -3.000000, 253.884628, 63.471157, 126.942314 + -3.000000, 254.064688, 63.516172, 127.032344 + -3.000000, 254.244748, 63.561187, 127.122374 + -3.000000, 254.424808, 63.606202, 127.212404 + -3.000000, 254.604868, 63.651217, 127.302434 + -3.000000, 254.784928, 63.696232, 127.392464 + -3.000000, 254.964988, 63.741247, 127.482494 + -3.000000, 255.145048, 63.786262, 127.572524 + -3.000000, 255.325108, 63.831277, 127.662554 + -3.000000, 255.505168, 63.876292, 127.752584 + -3.000000, 255.685228, 63.921307, 127.842614 + -3.000000, 255.865288, 63.966322, 127.932644 + -3.000000, 256.045348, 64.011337, 128.022674 + -3.000000, 256.225408, 64.056352, 128.112704 + -3.000000, 256.405468, 64.101367, 128.202734 + -3.000000, 256.585529, 64.146382, 128.292764 + -3.000000, 256.765589, 64.191397, 128.382794 + -3.000000, 256.945649, 64.236412, 128.472824 + -3.000000, 257.125709, 64.281427, 128.562854 + -3.000000, 257.305769, 64.326442, 128.652884 + -3.000000, 257.485829, 64.371457, 128.742914 + -3.000000, 257.665889, 64.416472, 128.832944 + -3.000000, 257.845949, 64.461487, 128.922974 + -3.000000, 258.026009, 64.506502, 129.013004 + -3.000000, 258.206069, 64.551517, 129.103034 + -3.000000, 258.386129, 64.596532, 129.193064 + -3.000000, 258.566189, 64.641547, 129.283094 + -3.000000, 258.746249, 64.686562, 129.373124 + -3.000000, 258.926309, 64.731577, 129.463154 + -3.000000, 259.106369, 64.776592, 129.553184 + -3.000000, 259.286429, 64.821607, 129.643214 + -3.000000, 259.466489, 64.866622, 129.733244 + -3.000000, 259.646549, 64.911637, 129.823274 + -3.000000, 259.826609, 64.956652, 129.913304 + -3.000000, 260.006669, 65.001667, 130.003334 + -3.000000, 260.186729, 65.046682, 130.093364 + -3.000000, 260.366789, 65.091697, 130.183394 + -3.000000, 260.546849, 65.136712, 130.273424 + -3.000000, 260.726909, 65.181727, 130.363454 + -3.000000, 260.906969, 65.226742, 130.453484 + -3.000000, 261.087029, 65.271757, 130.543515 + -3.000000, 261.267089, 65.316772, 130.633545 + -3.000000, 261.447149, 65.361787, 130.723575 + -3.000000, 261.627209, 65.406802, 130.813605 + -3.000000, 261.807269, 65.451817, 130.903635 + -3.000000, 261.987329, 65.496832, 130.993665 + -3.000000, 262.167389, 65.541847, 131.083695 + -3.000000, 262.347449, 65.586862, 131.173725 + -3.000000, 262.527509, 65.631877, 131.263755 + -3.000000, 262.707569, 65.676892, 131.353785 + -3.000000, 262.887629, 65.721907, 131.443815 + -3.000000, 263.067689, 65.766922, 131.533845 + -3.000000, 263.247749, 65.811937, 131.623875 + -3.000000, 263.427809, 65.856952, 131.713905 + -3.000000, 263.607869, 65.901967, 131.803935 + -3.000000, 263.787929, 65.946982, 131.893965 + -3.000000, 263.967989, 65.991997, 131.983995 + -3.000000, 264.148049, 66.037012, 132.074025 + -3.000000, 264.328109, 66.082027, 132.164055 + -3.000000, 264.508169, 66.127042, 132.254085 + -3.000000, 264.688229, 66.172057, 132.344115 + -3.000000, 264.868289, 66.217072, 132.434145 + -3.000000, 265.048349, 66.262087, 132.524175 + -3.000000, 265.228409, 66.307102, 132.614205 + -3.000000, 265.408469, 66.352117, 132.704235 + -3.000000, 265.588530, 66.397132, 132.794265 + -3.000000, 265.768590, 66.442147, 132.884295 + -3.000000, 265.948650, 66.487162, 132.974325 + -3.000000, 266.128710, 66.532177, 133.064355 + -3.000000, 266.308770, 66.577192, 133.154385 + -3.000000, 266.488830, 66.622207, 133.244415 + -3.000000, 266.668890, 66.667222, 133.334445 + -3.000000, 266.848950, 66.712237, 133.424475 + -3.000000, 267.029010, 66.757252, 133.514505 + -3.000000, 267.209070, 66.802267, 133.604535 + -3.000000, 267.389130, 66.847282, 133.694565 + -3.000000, 267.569190, 66.892297, 133.784595 + -3.000000, 267.749250, 66.937312, 133.874625 + -3.000000, 267.929310, 66.982327, 133.964655 + -3.000000, 268.109370, 67.027342, 134.054685 + -3.000000, 268.289430, 67.072357, 134.144715 + -3.000000, 268.469490, 67.117372, 134.234745 + -3.000000, 268.649550, 67.162387, 134.324775 + -3.000000, 268.829610, 67.207402, 134.414805 + -3.000000, 269.009670, 67.252417, 134.504835 + -3.000000, 269.189730, 67.297432, 134.594865 + -3.000000, 269.369790, 67.342447, 134.684895 + -3.000000, 269.549850, 67.387462, 134.774925 + -3.000000, 269.729910, 67.432477, 134.864955 + -3.000000, 269.909970, 67.477492, 134.954985 + -3.000000, 270.090030, 67.522508, 135.045015 + -3.000000, 270.270090, 67.567523, 135.135045 + -3.000000, 270.450150, 67.612538, 135.225075 + -3.000000, 270.630210, 67.657553, 135.315105 + -3.000000, 270.810270, 67.702568, 135.405135 + -3.000000, 270.990330, 67.747583, 135.495165 + -3.000000, 271.170390, 67.792598, 135.585195 + -3.000000, 271.350450, 67.837613, 135.675225 + -3.000000, 271.530510, 67.882628, 135.765255 + -3.000000, 271.710570, 67.927643, 135.855285 + -3.000000, 271.890630, 67.972658, 135.945315 + -3.000000, 272.070690, 68.017673, 136.035345 + -3.000000, 272.250750, 68.062688, 136.125375 + -3.000000, 272.430810, 68.107703, 136.215405 + -3.000000, 272.610870, 68.152718, 136.305435 + -3.000000, 272.790930, 68.197733, 136.395465 + -3.000000, 272.970990, 68.242748, 136.485495 + -3.000000, 273.151050, 68.287763, 136.575525 + -3.000000, 273.331110, 68.332778, 136.665555 + -3.000000, 273.511170, 68.377793, 136.755585 + -3.000000, 273.691230, 68.422808, 136.845615 + -3.000000, 273.871290, 68.467823, 136.935645 + -3.000000, 274.051350, 68.512838, 137.025675 + -3.000000, 274.231410, 68.557853, 137.115705 + -3.000000, 274.411470, 68.602868, 137.205735 + -3.000000, 274.591531, 68.647883, 137.295765 + -3.000000, 274.771591, 68.692898, 137.385795 + -3.000000, 274.951651, 68.737913, 137.475825 + -3.000000, 275.131711, 68.782928, 137.565855 + -3.000000, 275.311771, 68.827943, 137.655885 + -3.000000, 275.491831, 68.872958, 137.745915 + -3.000000, 275.671891, 68.917973, 137.835945 + -3.000000, 275.851951, 68.962988, 137.925975 + -3.000000, 276.032011, 69.008003, 138.016005 + -3.000000, 276.212071, 69.053018, 138.106035 + -3.000000, 276.392131, 69.098033, 138.196065 + -3.000000, 276.572191, 69.143048, 138.286095 + -3.000000, 276.752251, 69.188063, 138.376125 + -3.000000, 276.932311, 69.233078, 138.466155 + -3.000000, 277.112371, 69.278093, 138.556185 + -3.000000, 277.292431, 69.323108, 138.646215 + -3.000000, 277.472491, 69.368123, 138.736245 + -3.000000, 277.652551, 69.413138, 138.826275 + -3.000000, 277.832611, 69.458153, 138.916305 + -3.000000, 278.012671, 69.503168, 139.006335 + -3.000000, 278.192731, 69.548183, 139.096365 + -3.000000, 278.372791, 69.593198, 139.186395 + -3.000000, 278.552851, 69.638213, 139.276425 + -3.000000, 278.732911, 69.683228, 139.366455 + -3.000000, 278.912971, 69.728243, 139.456485 + -3.000000, 279.093031, 69.773258, 139.546516 + -3.000000, 279.273091, 69.818273, 139.636546 + -3.000000, 279.453151, 69.863288, 139.726576 + -3.000000, 279.633211, 69.908303, 139.816606 + -3.000000, 279.813271, 69.953318, 139.906636 + -3.000000, 279.993331, 69.998333, 139.996666 + -3.000000, 280.173391, 70.043348, 140.086696 + -3.000000, 280.353451, 70.088363, 140.176726 + -3.000000, 280.533511, 70.133378, 140.266756 + -3.000000, 280.713571, 70.178393, 140.356786 + -3.000000, 280.893631, 70.223408, 140.446816 + -3.000000, 281.073691, 70.268423, 140.536846 + -3.000000, 281.253751, 70.313438, 140.626876 + -3.000000, 281.433811, 70.358453, 140.716906 + -3.000000, 281.613871, 70.403468, 140.806936 + -3.000000, 281.793931, 70.448483, 140.896966 + -3.000000, 281.973991, 70.493498, 140.986996 + -3.000000, 282.154051, 70.538513, 141.077026 + -3.000000, 282.334111, 70.583528, 141.167056 + -3.000000, 282.514171, 70.628543, 141.257086 + -3.000000, 282.694231, 70.673558, 141.347116 + -3.000000, 282.874291, 70.718573, 141.437146 + -3.000000, 283.054351, 70.763588, 141.527176 + -3.000000, 283.234411, 70.808603, 141.617206 + -3.000000, 283.414471, 70.853618, 141.707236 + -3.000000, 283.594532, 70.898633, 141.797266 + -3.000000, 283.774592, 70.943648, 141.887296 + -3.000000, 283.954652, 70.988663, 141.977326 + -3.000000, 284.134712, 71.033678, 142.067356 + -3.000000, 284.314772, 71.078693, 142.157386 + -3.000000, 284.494832, 71.123708, 142.247416 + -3.000000, 284.674892, 71.168723, 142.337446 + -3.000000, 284.854952, 71.213738, 142.427476 + -3.000000, 285.035012, 71.258753, 142.517506 + -3.000000, 285.215072, 71.303768, 142.607536 + -3.000000, 285.395132, 71.348783, 142.697566 + -3.000000, 285.575192, 71.393798, 142.787596 + -3.000000, 285.755252, 71.438813, 142.877626 + -3.000000, 285.935312, 71.483828, 142.967656 + -3.000000, 286.115372, 71.528843, 143.057686 + -3.000000, 286.295432, 71.573858, 143.147716 + -3.000000, 286.475492, 71.618873, 143.237746 + -3.000000, 286.655552, 71.663888, 143.327776 + -3.000000, 286.835612, 71.708903, 143.417806 + -3.000000, 287.015672, 71.753918, 143.507836 + -3.000000, 287.195732, 71.798933, 143.597866 + -3.000000, 287.375792, 71.843948, 143.687896 + -3.000000, 287.555852, 71.888963, 143.777926 + -3.000000, 287.735912, 71.933978, 143.867956 + -3.000000, 287.915972, 71.978993, 143.957986 + -3.000000, 288.096032, 72.024008, 144.048016 + -3.000000, 288.276092, 72.069023, 144.138046 + -3.000000, 288.456152, 72.114038, 144.228076 + -3.000000, 288.636212, 72.159053, 144.318106 + -3.000000, 288.816272, 72.204068, 144.408136 + -3.000000, 288.996332, 72.249083, 144.498166 + -3.000000, 289.176392, 72.294098, 144.588196 + -3.000000, 289.356452, 72.339113, 144.678226 + -3.000000, 289.536512, 72.384128, 144.768256 + -3.000000, 289.716572, 72.429143, 144.858286 + -3.000000, 289.896632, 72.474158, 144.948316 + -3.000000, 290.076692, 72.519173, 145.038346 + -3.000000, 290.256752, 72.564188, 145.128376 + -3.000000, 290.436812, 72.609203, 145.218406 + -3.000000, 290.616872, 72.654218, 145.308436 + -3.000000, 290.796932, 72.699233, 145.398466 + -3.000000, 290.976992, 72.744248, 145.488496 + -3.000000, 291.157052, 72.789263, 145.578526 + -3.000000, 291.337112, 72.834278, 145.668556 + -3.000000, 291.517172, 72.879293, 145.758586 + -3.000000, 291.697232, 72.924308, 145.848616 + -3.000000, 291.877292, 72.969323, 145.938646 + -3.000000, 292.057352, 73.014338, 146.028676 + -3.000000, 292.237412, 73.059353, 146.118706 + -3.000000, 292.417472, 73.104368, 146.208736 + -3.000000, 292.597533, 73.149383, 146.298766 + -3.000000, 292.777593, 73.194398, 146.388796 + -3.000000, 292.957653, 73.239413, 146.478826 + -3.000000, 293.137713, 73.284428, 146.568856 + -3.000000, 293.317773, 73.329443, 146.658886 + -3.000000, 293.497833, 73.374458, 146.748916 + -3.000000, 293.677893, 73.419473, 146.838946 + -3.000000, 293.857953, 73.464488, 146.928976 + -3.000000, 294.038013, 73.509503, 147.019006 + -3.000000, 294.218073, 73.554518, 147.109036 + -3.000000, 294.398133, 73.599533, 147.199066 + -3.000000, 294.578193, 73.644548, 147.289096 + -3.000000, 294.758253, 73.689563, 147.379126 + -3.000000, 294.938313, 73.734578, 147.469156 + -3.000000, 295.118373, 73.779593, 147.559186 + -3.000000, 295.298433, 73.824608, 147.649216 + -3.000000, 295.478493, 73.869623, 147.739246 + -3.000000, 295.658553, 73.914638, 147.829276 + -3.000000, 295.838613, 73.959653, 147.919306 + -3.000000, 296.018673, 74.004668, 148.009336 + -3.000000, 296.198733, 74.049683, 148.099366 + -3.000000, 296.378793, 74.094698, 148.189396 + -3.000000, 296.558853, 74.139713, 148.279426 + -3.000000, 296.738913, 74.184728, 148.369456 + -3.000000, 296.918973, 74.229743, 148.459486 + -3.000000, 297.099033, 74.274758, 148.549517 + -3.000000, 297.279093, 74.319773, 148.639547 + -3.000000, 297.459153, 74.364788, 148.729577 + -3.000000, 297.639213, 74.409803, 148.819607 + -3.000000, 297.819273, 74.454818, 148.909637 + -3.000000, 297.999333, 74.499833, 148.999667 + -3.000000, 298.179393, 74.544848, 149.089697 + -3.000000, 298.359453, 74.589863, 149.179727 + -3.000000, 298.539513, 74.634878, 149.269757 + -3.000000, 298.719573, 74.679893, 149.359787 + -3.000000, 298.899633, 74.724908, 149.449817 + -3.000000, 299.079693, 74.769923, 149.539847 + -3.000000, 299.259753, 74.814938, 149.629877 + -3.000000, 299.439813, 74.859953, 149.719907 + -3.000000, 299.619873, 74.904968, 149.809937 + -3.000000, 299.799933, 74.949983, 149.899967 + -3.000000, 299.979993, 74.994998, 149.989997 + -3.000000, 300.160053, 75.040013, 150.080027 + -3.000000, 300.340113, 75.085028, 150.170057 + -3.000000, 300.520173, 75.130043, 150.260087 + -3.000000, 300.700233, 75.175058, 150.350117 + -3.000000, 300.880293, 75.220073, 150.440147 + -3.000000, 301.060353, 75.265088, 150.530177 + -3.000000, 301.240413, 75.310103, 150.620207 + -3.000000, 301.420473, 75.355118, 150.710237 + -3.000000, 301.600534, 75.400133, 150.800267 + -3.000000, 301.780594, 75.445148, 150.890297 + -3.000000, 301.960654, 75.490163, 150.980327 + -3.000000, 302.140714, 75.535178, 151.070357 + -3.000000, 302.320774, 75.580193, 151.160387 + -3.000000, 302.500834, 75.625208, 151.250417 + -3.000000, 302.680894, 75.670223, 151.340447 + -3.000000, 302.860954, 75.715238, 151.430477 + -3.000000, 303.041014, 75.760253, 151.520507 + -3.000000, 303.221074, 75.805268, 151.610537 + -3.000000, 303.401134, 75.850283, 151.700567 + -3.000000, 303.581194, 75.895298, 151.790597 + -3.000000, 303.761254, 75.940313, 151.880627 + -3.000000, 303.941314, 75.985328, 151.970657 + -3.000000, 304.121374, 76.030343, 152.060687 + -3.000000, 304.301434, 76.075358, 152.150717 + -3.000000, 304.481494, 76.120373, 152.240747 + -3.000000, 304.661554, 76.165388, 152.330777 + -3.000000, 304.841614, 76.210403, 152.420807 + -3.000000, 305.021674, 76.255418, 152.510837 + -3.000000, 305.201734, 76.300433, 152.600867 + -3.000000, 305.381794, 76.345448, 152.690897 + -3.000000, 305.561854, 76.390463, 152.780927 + -3.000000, 305.741914, 76.435478, 152.870957 + -3.000000, 305.921974, 76.480493, 152.960987 + -3.000000, 306.102034, 76.525509, 153.051017 + -3.000000, 306.282094, 76.570524, 153.141047 + -3.000000, 306.462154, 76.615539, 153.231077 + -3.000000, 306.642214, 76.660554, 153.321107 + -3.000000, 306.822274, 76.705569, 153.411137 + -3.000000, 307.002334, 76.750584, 153.501167 + -3.000000, 307.182394, 76.795599, 153.591197 + -3.000000, 307.362454, 76.840614, 153.681227 + -3.000000, 307.542514, 76.885629, 153.771257 + -3.000000, 307.722574, 76.930644, 153.861287 + -3.000000, 307.902634, 76.975659, 153.951317 + -3.000000, 308.082694, 77.020674, 154.041347 + -3.000000, 308.262754, 77.065689, 154.131377 + -3.000000, 308.442814, 77.110704, 154.221407 + -3.000000, 308.622874, 77.155719, 154.311437 + -3.000000, 308.802934, 77.200734, 154.401467 + -3.000000, 308.982994, 77.245749, 154.491497 + -3.000000, 309.163054, 77.290764, 154.581527 + -3.000000, 309.343114, 77.335779, 154.671557 + -3.000000, 309.523174, 77.380794, 154.761587 + -3.000000, 309.703234, 77.425809, 154.851617 + -3.000000, 309.883294, 77.470824, 154.941647 + -3.000000, 310.063354, 77.515839, 155.031677 + -3.000000, 310.243414, 77.560854, 155.121707 + -3.000000, 310.423474, 77.605869, 155.211737 + -3.000000, 310.603535, 77.650884, 155.301767 + -3.000000, 310.783595, 77.695899, 155.391797 + -3.000000, 310.963655, 77.740914, 155.481827 + -3.000000, 311.143715, 77.785929, 155.571857 + -3.000000, 311.323775, 77.830944, 155.661887 + -3.000000, 311.503835, 77.875959, 155.751917 + -3.000000, 311.683895, 77.920974, 155.841947 + -3.000000, 311.863955, 77.965989, 155.931977 + -3.000000, 312.044015, 78.011004, 156.022007 + -3.000000, 312.224075, 78.056019, 156.112037 + -3.000000, 312.404135, 78.101034, 156.202067 + -3.000000, 312.584195, 78.146049, 156.292097 + -3.000000, 312.764255, 78.191064, 156.382127 + -3.000000, 312.944315, 78.236079, 156.472157 + -3.000000, 313.124375, 78.281094, 156.562187 + -3.000000, 313.304435, 78.326109, 156.652217 + -3.000000, 313.484495, 78.371124, 156.742247 + -3.000000, 313.664555, 78.416139, 156.832277 + -3.000000, 313.844615, 78.461154, 156.922307 + -3.000000, 314.024675, 78.506169, 157.012337 + -3.000000, 314.204735, 78.551184, 157.102367 + -3.000000, 314.384795, 78.596199, 157.192397 + -3.000000, 314.564855, 78.641214, 157.282427 + -3.000000, 314.744915, 78.686229, 157.372457 + -3.000000, 314.924975, 78.731244, 157.462487 + -3.000000, 315.105035, 78.776259, 157.552518 + -3.000000, 315.285095, 78.821274, 157.642548 + -3.000000, 315.465155, 78.866289, 157.732578 + -3.000000, 315.645215, 78.911304, 157.822608 + -3.000000, 315.825275, 78.956319, 157.912638 + -3.000000, 316.005335, 79.001334, 158.002668 + -3.000000, 316.185395, 79.046349, 158.092698 + -3.000000, 316.365455, 79.091364, 158.182728 + -3.000000, 316.545515, 79.136379, 158.272758 + -3.000000, 316.725575, 79.181394, 158.362788 + -3.000000, 316.905635, 79.226409, 158.452818 + -3.000000, 317.085695, 79.271424, 158.542848 + -3.000000, 317.265755, 79.316439, 158.632878 + -3.000000, 317.445815, 79.361454, 158.722908 + -3.000000, 317.625875, 79.406469, 158.812938 + -3.000000, 317.805935, 79.451484, 158.902968 + -3.000000, 317.985995, 79.496499, 158.992998 + -3.000000, 318.166055, 79.541514, 159.083028 + -3.000000, 318.346115, 79.586529, 159.173058 + -3.000000, 318.526175, 79.631544, 159.263088 + -3.000000, 318.706235, 79.676559, 159.353118 + -3.000000, 318.886295, 79.721574, 159.443148 + -3.000000, 319.066355, 79.766589, 159.533178 + -3.000000, 319.246415, 79.811604, 159.623208 + -3.000000, 319.426475, 79.856619, 159.713238 + -3.000000, 319.606536, 79.901634, 159.803268 + -3.000000, 319.786596, 79.946649, 159.893298 + -3.000000, 319.966656, 79.991664, 159.983328 + -3.000000, 320.146716, 80.036679, 160.073358 + -3.000000, 320.326776, 80.081694, 160.163388 + -3.000000, 320.506836, 80.126709, 160.253418 + -3.000000, 320.686896, 80.171724, 160.343448 + -3.000000, 320.866956, 80.216739, 160.433478 + -3.000000, 321.047016, 80.261754, 160.523508 + -3.000000, 321.227076, 80.306769, 160.613538 + -3.000000, 321.407136, 80.351784, 160.703568 + -3.000000, 321.587196, 80.396799, 160.793598 + -3.000000, 321.767256, 80.441814, 160.883628 + -3.000000, 321.947316, 80.486829, 160.973658 + -3.000000, 322.127376, 80.531844, 161.063688 + -3.000000, 322.307436, 80.576859, 161.153718 + -3.000000, 322.487496, 80.621874, 161.243748 + -3.000000, 322.667556, 80.666889, 161.333778 + -3.000000, 322.847616, 80.711904, 161.423808 + -3.000000, 323.027676, 80.756919, 161.513838 + -3.000000, 323.207736, 80.801934, 161.603868 + -3.000000, 323.387796, 80.846949, 161.693898 + -3.000000, 323.567856, 80.891964, 161.783928 + -3.000000, 323.747916, 80.936979, 161.873958 + -3.000000, 323.927976, 80.981994, 161.963988 + -3.000000, 324.108036, 81.027009, 162.054018 + -3.000000, 324.288096, 81.072024, 162.144048 + -3.000000, 324.468156, 81.117039, 162.234078 + -3.000000, 324.648216, 81.162054, 162.324108 + -3.000000, 324.828276, 81.207069, 162.414138 + -3.000000, 325.008336, 81.252084, 162.504168 + -3.000000, 325.188396, 81.297099, 162.594198 + -3.000000, 325.368456, 81.342114, 162.684228 + -3.000000, 325.548516, 81.387129, 162.774258 + -3.000000, 325.728576, 81.432144, 162.864288 + -3.000000, 325.908636, 81.477159, 162.954318 + -3.000000, 326.088696, 81.522174, 163.044348 + -3.000000, 326.268756, 81.567189, 163.134378 + -3.000000, 326.448816, 81.612204, 163.224408 + -3.000000, 326.628876, 81.657219, 163.314438 + -3.000000, 326.808936, 81.702234, 163.404468 + -3.000000, 326.988996, 81.747249, 163.494498 + -3.000000, 327.169056, 81.792264, 163.584528 + -3.000000, 327.349116, 81.837279, 163.674558 + -3.000000, 327.529176, 81.882294, 163.764588 + -3.000000, 327.709236, 81.927309, 163.854618 + -3.000000, 327.889296, 81.972324, 163.944648 + -3.000000, 328.069356, 82.017339, 164.034678 + -3.000000, 328.249416, 82.062354, 164.124708 + -3.000000, 328.429476, 82.107369, 164.214738 + -3.000000, 328.609537, 82.152384, 164.304768 + -3.000000, 328.789597, 82.197399, 164.394798 + -3.000000, 328.969657, 82.242414, 164.484828 + -3.000000, 329.149717, 82.287429, 164.574858 + -3.000000, 329.329777, 82.332444, 164.664888 + -3.000000, 329.509837, 82.377459, 164.754918 + -3.000000, 329.689897, 82.422474, 164.844948 + -3.000000, 329.869957, 82.467489, 164.934978 + -3.000000, 330.050017, 82.512504, 165.025008 + -3.000000, 330.230077, 82.557519, 165.115038 + -3.000000, 330.410137, 82.602534, 165.205068 + -3.000000, 330.590197, 82.647549, 165.295098 + -3.000000, 330.770257, 82.692564, 165.385128 + -3.000000, 330.950317, 82.737579, 165.475158 + -3.000000, 331.130377, 82.782594, 165.565188 + -3.000000, 331.310437, 82.827609, 165.655218 + -3.000000, 331.490497, 82.872624, 165.745248 + -3.000000, 331.670557, 82.917639, 165.835278 + -3.000000, 331.850617, 82.962654, 165.925308 + -3.000000, 332.030677, 83.007669, 166.015338 + -3.000000, 332.210737, 83.052684, 166.105368 + -3.000000, 332.390797, 83.097699, 166.195398 + -3.000000, 332.570857, 83.142714, 166.285428 + -3.000000, 332.750917, 83.187729, 166.375458 + -3.000000, 332.930977, 83.232744, 166.465488 + -3.000000, 333.111037, 83.277759, 166.555519 + -3.000000, 333.291097, 83.322774, 166.645549 + -3.000000, 333.471157, 83.367789, 166.735579 + -3.000000, 333.651217, 83.412804, 166.825609 + -3.000000, 333.831277, 83.457819, 166.915639 + -3.000000, 334.011337, 83.502834, 167.005669 + -3.000000, 334.191397, 83.547849, 167.095699 + -3.000000, 334.371457, 83.592864, 167.185729 + -3.000000, 334.551517, 83.637879, 167.275759 + -3.000000, 334.731577, 83.682894, 167.365789 + -3.000000, 334.911637, 83.727909, 167.455819 + -3.000000, 335.091697, 83.772924, 167.545849 + -3.000000, 335.271757, 83.817939, 167.635879 + -3.000000, 335.451817, 83.862954, 167.725909 + -3.000000, 335.631877, 83.907969, 167.815939 + -3.000000, 335.811937, 83.952984, 167.905969 + -3.000000, 335.991997, 83.997999, 167.995999 + -3.000000, 336.172057, 84.043014, 168.086029 + -3.000000, 336.352117, 84.088029, 168.176059 + -3.000000, 336.532177, 84.133044, 168.266089 + -3.000000, 336.712237, 84.178059, 168.356119 + -3.000000, 336.892297, 84.223074, 168.446149 + -3.000000, 337.072357, 84.268089, 168.536179 + -3.000000, 337.252417, 84.313104, 168.626209 + -3.000000, 337.432477, 84.358119, 168.716239 + -3.000000, 337.612538, 84.403134, 168.806269 + -3.000000, 337.792598, 84.448149, 168.896299 + -3.000000, 337.972658, 84.493164, 168.986329 + -3.000000, 338.152718, 84.538179, 169.076359 + -3.000000, 338.332778, 84.583194, 169.166389 + -3.000000, 338.512838, 84.628209, 169.256419 + -3.000000, 338.692898, 84.673224, 169.346449 + -3.000000, 338.872958, 84.718239, 169.436479 + -3.000000, 339.053018, 84.763254, 169.526509 + -3.000000, 339.233078, 84.808269, 169.616539 + -3.000000, 339.413138, 84.853284, 169.706569 + -3.000000, 339.593198, 84.898299, 169.796599 + -3.000000, 339.773258, 84.943314, 169.886629 + -3.000000, 339.953318, 84.988329, 169.976659 + -3.000000, 340.133378, 85.033344, 170.066689 + -3.000000, 340.313438, 85.078359, 170.156719 + -3.000000, 340.493498, 85.123374, 170.246749 + -3.000000, 340.673558, 85.168389, 170.336779 + -3.000000, 340.853618, 85.213404, 170.426809 + -3.000000, 341.033678, 85.258419, 170.516839 + -3.000000, 341.213738, 85.303434, 170.606869 + -3.000000, 341.393798, 85.348449, 170.696899 + -3.000000, 341.573858, 85.393464, 170.786929 + -3.000000, 341.753918, 85.438479, 170.876959 + -3.000000, 341.933978, 85.483494, 170.966989 + -3.000000, 342.114038, 85.528510, 171.057019 + -3.000000, 342.294098, 85.573525, 171.147049 + -3.000000, 342.474158, 85.618540, 171.237079 + -3.000000, 342.654218, 85.663555, 171.327109 + -3.000000, 342.834278, 85.708570, 171.417139 + -3.000000, 343.014338, 85.753585, 171.507169 + -3.000000, 343.194398, 85.798600, 171.597199 + -3.000000, 343.374458, 85.843615, 171.687229 + -3.000000, 343.554518, 85.888630, 171.777259 + -3.000000, 343.734578, 85.933645, 171.867289 + -3.000000, 343.914638, 85.978660, 171.957319 + -3.000000, 344.094698, 86.023675, 172.047349 + -3.000000, 344.274758, 86.068690, 172.137379 + -3.000000, 344.454818, 86.113705, 172.227409 + -3.000000, 344.634878, 86.158720, 172.317439 + -3.000000, 344.814938, 86.203735, 172.407469 + -3.000000, 344.994998, 86.248750, 172.497499 + -3.000000, 345.175058, 86.293765, 172.587529 + -3.000000, 345.355118, 86.338780, 172.677559 + -3.000000, 345.535178, 86.383795, 172.767589 + -3.000000, 345.715238, 86.428810, 172.857619 + -3.000000, 345.895298, 86.473825, 172.947649 + -3.000000, 346.075358, 86.518840, 173.037679 + -3.000000, 346.255418, 86.563855, 173.127709 + -3.000000, 346.435478, 86.608870, 173.217739 + -3.000000, 346.615539, 86.653885, 173.307769 + -3.000000, 346.795599, 86.698900, 173.397799 + -3.000000, 346.975659, 86.743915, 173.487829 + -3.000000, 347.155719, 86.788930, 173.577859 + -3.000000, 347.335779, 86.833945, 173.667889 + -3.000000, 347.515839, 86.878960, 173.757919 + -3.000000, 347.695899, 86.923975, 173.847949 + -3.000000, 347.875959, 86.968990, 173.937979 + -3.000000, 348.056019, 87.014005, 174.028009 + -3.000000, 348.236079, 87.059020, 174.118039 + -3.000000, 348.416139, 87.104035, 174.208069 + -3.000000, 348.596199, 87.149050, 174.298099 + -3.000000, 348.776259, 87.194065, 174.388129 + -3.000000, 348.956319, 87.239080, 174.478159 + -3.000000, 349.136379, 87.284095, 174.568189 + -3.000000, 349.316439, 87.329110, 174.658219 + -3.000000, 349.496499, 87.374125, 174.748249 + -3.000000, 349.676559, 87.419140, 174.838279 + -3.000000, 349.856619, 87.464155, 174.928309 + -3.000000, 350.036679, 87.509170, 175.018339 + -3.000000, 350.216739, 87.554185, 175.108369 + -3.000000, 350.396799, 87.599200, 175.198399 + -3.000000, 350.576859, 87.644215, 175.288429 + -3.000000, 350.756919, 87.689230, 175.378459 + -3.000000, 350.936979, 87.734245, 175.468489 + -3.000000, 351.117039, 87.779260, 175.558520 + -3.000000, 351.297099, 87.824275, 175.648550 + -3.000000, 351.477159, 87.869290, 175.738580 + -3.000000, 351.657219, 87.914305, 175.828610 + -3.000000, 351.837279, 87.959320, 175.918640 + -3.000000, 352.017339, 88.004335, 176.008670 + -3.000000, 352.197399, 88.049350, 176.098700 + -3.000000, 352.377459, 88.094365, 176.188730 + -3.000000, 352.557519, 88.139380, 176.278760 + -3.000000, 352.737579, 88.184395, 176.368790 + -3.000000, 352.917639, 88.229410, 176.458820 + -3.000000, 353.097699, 88.274425, 176.548850 + -3.000000, 353.277759, 88.319440, 176.638880 + -3.000000, 353.457819, 88.364455, 176.728910 + -3.000000, 353.637879, 88.409470, 176.818940 + -3.000000, 353.817939, 88.454485, 176.908970 + -3.000000, 353.997999, 88.499500, 176.999000 + -3.000000, 354.178059, 88.544515, 177.089030 + -3.000000, 354.358119, 88.589530, 177.179060 + -3.000000, 354.538179, 88.634545, 177.269090 + -3.000000, 354.718239, 88.679560, 177.359120 + -3.000000, 354.898299, 88.724575, 177.449150 + -3.000000, 355.078359, 88.769590, 177.539180 + -3.000000, 355.258419, 88.814605, 177.629210 + -3.000000, 355.438479, 88.859620, 177.719240 + -3.000000, 355.618540, 88.904635, 177.809270 + -3.000000, 355.798600, 88.949650, 177.899300 + -3.000000, 355.978660, 88.994665, 177.989330 + -3.000000, 356.158720, 89.039680, 178.079360 + -3.000000, 356.338780, 89.084695, 178.169390 + -3.000000, 356.518840, 89.129710, 178.259420 + -3.000000, 356.698900, 89.174725, 178.349450 + -3.000000, 356.878960, 89.219740, 178.439480 + -3.000000, 357.059020, 89.264755, 178.529510 + -3.000000, 357.239080, 89.309770, 178.619540 + -3.000000, 357.419140, 89.354785, 178.709570 + -3.000000, 357.599200, 89.399800, 178.799600 + -3.000000, 357.779260, 89.444815, 178.889630 + -3.000000, 357.959320, 89.489830, 178.979660 + -3.000000, 358.139380, 89.534845, 179.069690 + -3.000000, 358.319440, 89.579860, 179.159720 + -3.000000, 358.499500, 89.624875, 179.249750 + -3.000000, 358.679560, 89.669890, 179.339780 + -3.000000, 358.859620, 89.714905, 179.429810 + -3.000000, 359.039680, 89.759920, 179.519840 + -3.000000, 359.219740, 89.804935, 179.609870 + -3.000000, 359.399800, 89.849950, 179.699900 + -3.000000, 359.579860, 89.894965, 179.789930 + -3.000000, 359.759920, 89.939980, 179.879960 + -3.000000, 359.939980, 89.984995, 179.969990 + -3.000000, 360.120040, 90.030010, 180.060020 + -3.000000, 360.300100, 90.075025, 180.150050 + -3.000000, 360.480160, 90.120040, 180.240080 + -3.000000, 360.660220, 90.165055, 180.330110 + -3.000000, 360.840280, 90.210070, 180.420140 + -3.000000, 361.020340, 90.255085, 180.510170 + -3.000000, 361.200400, 90.300100, 180.600200 + -3.000000, 361.380460, 90.345115, 180.690230 + -3.000000, 361.560520, 90.390130, 180.780260 + -3.000000, 361.740580, 90.435145, 180.870290 + -3.000000, 361.920640, 90.480160, 180.960320 + -3.000000, 362.100700, 90.525175, 181.050350 + -3.000000, 362.280760, 90.570190, 181.140380 + -3.000000, 362.460820, 90.615205, 181.230410 + -3.000000, 362.640880, 90.660220, 181.320440 + -3.000000, 362.820940, 90.705235, 181.410470 + -3.000000, 363.001000, 90.750250, 181.500500 + -3.000000, 363.181060, 90.795265, 181.590530 + -3.000000, 363.361120, 90.840280, 181.680560 + -3.000000, 363.541180, 90.885295, 181.770590 + -3.000000, 363.721240, 90.930310, 181.860620 + -3.000000, 363.901300, 90.975325, 181.950650 + -3.000000, 364.081360, 91.020340, 182.040680 + -3.000000, 364.261420, 91.065355, 182.130710 + -3.000000, 364.441480, 91.110370, 182.220740 + -3.000000, 364.621541, 91.155385, 182.310770 + -3.000000, 364.801601, 91.200400, 182.400800 + -3.000000, 364.981661, 91.245415, 182.490830 + -3.000000, 365.161721, 91.290430, 182.580860 + -3.000000, 365.341781, 91.335445, 182.670890 + -3.000000, 365.521841, 91.380460, 182.760920 + -3.000000, 365.701901, 91.425475, 182.850950 + -3.000000, 365.881961, 91.470490, 182.940980 + -3.000000, 366.062021, 91.515505, 183.031010 + -3.000000, 366.242081, 91.560520, 183.121040 + -3.000000, 366.422141, 91.605535, 183.211070 + -3.000000, 366.602201, 91.650550, 183.301100 + -3.000000, 366.782261, 91.695565, 183.391130 + -3.000000, 366.962321, 91.740580, 183.481160 + -3.000000, 367.142381, 91.785595, 183.571190 + -3.000000, 367.322441, 91.830610, 183.661220 + -3.000000, 367.502501, 91.875625, 183.751250 + -3.000000, 367.682561, 91.920640, 183.841280 + -3.000000, 367.862621, 91.965655, 183.931310 + -3.000000, 368.042681, 92.010670, 184.021340 + -3.000000, 368.222741, 92.055685, 184.111370 + -3.000000, 368.402801, 92.100700, 184.201400 + -3.000000, 368.582861, 92.145715, 184.291430 + -3.000000, 368.762921, 92.190730, 184.381460 + -3.000000, 368.942981, 92.235745, 184.471490 + -3.000000, 369.123041, 92.280760, 184.561521 + -3.000000, 369.303101, 92.325775, 184.651551 + -3.000000, 369.483161, 92.370790, 184.741581 + -3.000000, 369.663221, 92.415805, 184.831611 + -3.000000, 369.843281, 92.460820, 184.921641 + -3.000000, 370.023341, 92.505835, 185.011671 + -3.000000, 370.203401, 92.550850, 185.101701 + -3.000000, 370.383461, 92.595865, 185.191731 + -3.000000, 370.563521, 92.640880, 185.281761 + -3.000000, 370.743581, 92.685895, 185.371791 + -3.000000, 370.923641, 92.730910, 185.461821 + -3.000000, 371.103701, 92.775925, 185.551851 + -3.000000, 371.283761, 92.820940, 185.641881 + -3.000000, 371.463821, 92.865955, 185.731911 + -3.000000, 371.643881, 92.910970, 185.821941 + -3.000000, 371.823941, 92.955985, 185.911971 + -3.000000, 372.004001, 93.001000, 186.002001 + -3.000000, 372.184061, 93.046015, 186.092031 + -3.000000, 372.364121, 93.091030, 186.182061 + -3.000000, 372.544181, 93.136045, 186.272091 + -3.000000, 372.724241, 93.181060, 186.362121 + -3.000000, 372.904301, 93.226075, 186.452151 + -3.000000, 373.084361, 93.271090, 186.542181 + -3.000000, 373.264421, 93.316105, 186.632211 + -3.000000, 373.444481, 93.361120, 186.722241 + -3.000000, 373.624542, 93.406135, 186.812271 + -3.000000, 373.804602, 93.451150, 186.902301 + -3.000000, 373.984662, 93.496165, 186.992331 + -3.000000, 374.164722, 93.541180, 187.082361 + -3.000000, 374.344782, 93.586195, 187.172391 + -3.000000, 374.524842, 93.631210, 187.262421 + -3.000000, 374.704902, 93.676225, 187.352451 + -3.000000, 374.884962, 93.721240, 187.442481 + -3.000000, 375.065022, 93.766255, 187.532511 + -3.000000, 375.245082, 93.811270, 187.622541 + -3.000000, 375.425142, 93.856285, 187.712571 + -3.000000, 375.605202, 93.901300, 187.802601 + -3.000000, 375.785262, 93.946315, 187.892631 + -3.000000, 375.965322, 93.991330, 187.982661 + -3.000000, 376.145382, 94.036345, 188.072691 + -3.000000, 376.325442, 94.081360, 188.162721 + -3.000000, 376.505502, 94.126375, 188.252751 + -3.000000, 376.685562, 94.171390, 188.342781 + -3.000000, 376.865622, 94.216405, 188.432811 + -3.000000, 377.045682, 94.261420, 188.522841 + -3.000000, 377.225742, 94.306435, 188.612871 + -3.000000, 377.405802, 94.351450, 188.702901 + -3.000000, 377.585862, 94.396465, 188.792931 + -3.000000, 377.765922, 94.441480, 188.882961 + -3.000000, 377.945982, 94.486495, 188.972991 + -3.000000, 378.126042, 94.531511, 189.063021 + -3.000000, 378.306102, 94.576526, 189.153051 + -3.000000, 378.486162, 94.621541, 189.243081 + -3.000000, 378.666222, 94.666556, 189.333111 + -3.000000, 378.846282, 94.711571, 189.423141 + -3.000000, 379.026342, 94.756586, 189.513171 + -3.000000, 379.206402, 94.801601, 189.603201 + -3.000000, 379.386462, 94.846616, 189.693231 + -3.000000, 379.566522, 94.891631, 189.783261 + -3.000000, 379.746582, 94.936646, 189.873291 + -3.000000, 379.926642, 94.981661, 189.963321 + -3.000000, 380.106702, 95.026676, 190.053351 + -3.000000, 380.286762, 95.071691, 190.143381 + -3.000000, 380.466822, 95.116706, 190.233411 + -3.000000, 380.646882, 95.161721, 190.323441 + -3.000000, 380.826942, 95.206736, 190.413471 + -3.000000, 381.007002, 95.251751, 190.503501 + -3.000000, 381.187062, 95.296766, 190.593531 + -3.000000, 381.367122, 95.341781, 190.683561 + -3.000000, 381.547182, 95.386796, 190.773591 + -3.000000, 381.727242, 95.431811, 190.863621 + -3.000000, 381.907302, 95.476826, 190.953651 + -3.000000, 382.087362, 95.521841, 191.043681 + -3.000000, 382.267422, 95.566856, 191.133711 + -3.000000, 382.447482, 95.611871, 191.223741 + -3.000000, 382.627543, 95.656886, 191.313771 + -3.000000, 382.807603, 95.701901, 191.403801 + -3.000000, 382.987663, 95.746916, 191.493831 + -3.000000, 383.167723, 95.791931, 191.583861 + -3.000000, 383.347783, 95.836946, 191.673891 + -3.000000, 383.527843, 95.881961, 191.763921 + -3.000000, 383.707903, 95.926976, 191.853951 + -3.000000, 383.887963, 95.971991, 191.943981 + -3.000000, 384.068023, 96.017006, 192.034011 + -3.000000, 384.248083, 96.062021, 192.124041 + -3.000000, 384.428143, 96.107036, 192.214071 + -3.000000, 384.608203, 96.152051, 192.304101 + -3.000000, 384.788263, 96.197066, 192.394131 + -3.000000, 384.968323, 96.242081, 192.484161 + -3.000000, 385.148383, 96.287096, 192.574191 + -3.000000, 385.328443, 96.332111, 192.664221 + -3.000000, 385.508503, 96.377126, 192.754251 + -3.000000, 385.688563, 96.422141, 192.844281 + -3.000000, 385.868623, 96.467156, 192.934311 + -3.000000, 386.048683, 96.512171, 193.024341 + -3.000000, 386.228743, 96.557186, 193.114371 + -3.000000, 386.408803, 96.602201, 193.204401 + -3.000000, 386.588863, 96.647216, 193.294431 + -3.000000, 386.768923, 96.692231, 193.384461 + -3.000000, 386.948983, 96.737246, 193.474491 + -3.000000, 387.129043, 96.782261, 193.564522 + -3.000000, 387.309103, 96.827276, 193.654552 + -3.000000, 387.489163, 96.872291, 193.744582 + -3.000000, 387.669223, 96.917306, 193.834612 + -3.000000, 387.849283, 96.962321, 193.924642 + -3.000000, 388.029343, 97.007336, 194.014672 + -3.000000, 388.209403, 97.052351, 194.104702 + -3.000000, 388.389463, 97.097366, 194.194732 + -3.000000, 388.569523, 97.142381, 194.284762 + -3.000000, 388.749583, 97.187396, 194.374792 + -3.000000, 388.929643, 97.232411, 194.464822 + -3.000000, 389.109703, 97.277426, 194.554852 + -3.000000, 389.289763, 97.322441, 194.644882 + -3.000000, 389.469823, 97.367456, 194.734912 + -3.000000, 389.649883, 97.412471, 194.824942 + -3.000000, 389.829943, 97.457486, 194.914972 + -3.000000, 390.010003, 97.502501, 195.005002 + -3.000000, 390.190063, 97.547516, 195.095032 + -3.000000, 390.370123, 97.592531, 195.185062 + -3.000000, 390.550183, 97.637546, 195.275092 + -3.000000, 390.730243, 97.682561, 195.365122 + -3.000000, 390.910303, 97.727576, 195.455152 + -3.000000, 391.090363, 97.772591, 195.545182 + -3.000000, 391.270423, 97.817606, 195.635212 + -3.000000, 391.450483, 97.862621, 195.725242 + -3.000000, 391.630544, 97.907636, 195.815272 + -3.000000, 391.810604, 97.952651, 195.905302 + -3.000000, 391.990664, 97.997666, 195.995332 + -3.000000, 392.170724, 98.042681, 196.085362 + -3.000000, 392.350784, 98.087696, 196.175392 + -3.000000, 392.530844, 98.132711, 196.265422 + -3.000000, 392.710904, 98.177726, 196.355452 + -3.000000, 392.890964, 98.222741, 196.445482 + -3.000000, 393.071024, 98.267756, 196.535512 + -3.000000, 393.251084, 98.312771, 196.625542 + -3.000000, 393.431144, 98.357786, 196.715572 + -3.000000, 393.611204, 98.402801, 196.805602 + -3.000000, 393.791264, 98.447816, 196.895632 + -3.000000, 393.971324, 98.492831, 196.985662 + -3.000000, 394.151384, 98.537846, 197.075692 + -3.000000, 394.331444, 98.582861, 197.165722 + -3.000000, 394.511504, 98.627876, 197.255752 + -3.000000, 394.691564, 98.672891, 197.345782 + -3.000000, 394.871624, 98.717906, 197.435812 + -3.000000, 395.051684, 98.762921, 197.525842 + -3.000000, 395.231744, 98.807936, 197.615872 + -3.000000, 395.411804, 98.852951, 197.705902 + -3.000000, 395.591864, 98.897966, 197.795932 + -3.000000, 395.771924, 98.942981, 197.885962 + -3.000000, 395.951984, 98.987996, 197.975992 + -3.000000, 396.132044, 99.033011, 198.066022 + -3.000000, 396.312104, 99.078026, 198.156052 + -3.000000, 396.492164, 99.123041, 198.246082 + -3.000000, 396.672224, 99.168056, 198.336112 + -3.000000, 396.852284, 99.213071, 198.426142 + -3.000000, 397.032344, 99.258086, 198.516172 + -3.000000, 397.212404, 99.303101, 198.606202 + -3.000000, 397.392464, 99.348116, 198.696232 + -3.000000, 397.572524, 99.393131, 198.786262 + -3.000000, 397.752584, 99.438146, 198.876292 + -3.000000, 397.932644, 99.483161, 198.966322 + -3.000000, 398.112704, 99.528176, 199.056352 + -3.000000, 398.292764, 99.573191, 199.146382 + -3.000000, 398.472824, 99.618206, 199.236412 + -3.000000, 398.652884, 99.663221, 199.326442 + -3.000000, 398.832944, 99.708236, 199.416472 + -3.000000, 399.013004, 99.753251, 199.506502 + -3.000000, 399.193064, 99.798266, 199.596532 + -3.000000, 399.373124, 99.843281, 199.686562 + -3.000000, 399.553184, 99.888296, 199.776592 + -3.000000, 399.733244, 99.933311, 199.866622 + -3.000000, 399.913304, 99.978326, 199.956652 + -3.000000, 400.093364, 100.023341, 200.046682 + -3.000000, 400.273424, 100.068356, 200.136712 + -3.000000, 400.453484, 100.113371, 200.226742 + -3.000000, 400.633545, 100.158386, 200.316772 + -3.000000, 400.813605, 100.203401, 200.406802 + -3.000000, 400.993665, 100.248416, 200.496832 + -3.000000, 401.173725, 100.293431, 200.586862 + -3.000000, 401.353785, 100.338446, 200.676892 + -3.000000, 401.533845, 100.383461, 200.766922 + -3.000000, 401.713905, 100.428476, 200.856952 + -3.000000, 401.893965, 100.473491, 200.946982 + -3.000000, 402.074025, 100.518506, 201.037012 + -3.000000, 402.254085, 100.563521, 201.127042 + -3.000000, 402.434145, 100.608536, 201.217072 + -3.000000, 402.614205, 100.653551, 201.307102 + -3.000000, 402.794265, 100.698566, 201.397132 + -3.000000, 402.974325, 100.743581, 201.487162 + -3.000000, 403.154385, 100.788596, 201.577192 + -3.000000, 403.334445, 100.833611, 201.667222 + -3.000000, 403.514505, 100.878626, 201.757252 + -3.000000, 403.694565, 100.923641, 201.847282 + -3.000000, 403.874625, 100.968656, 201.937312 + -3.000000, 404.054685, 101.013671, 202.027342 + -3.000000, 404.234745, 101.058686, 202.117372 + -3.000000, 404.414805, 101.103701, 202.207402 + -3.000000, 404.594865, 101.148716, 202.297432 + -3.000000, 404.774925, 101.193731, 202.387462 + -3.000000, 404.954985, 101.238746, 202.477492 + -3.000000, 405.135045, 101.283761, 202.567523 + -3.000000, 405.315105, 101.328776, 202.657553 + -3.000000, 405.495165, 101.373791, 202.747583 + -3.000000, 405.675225, 101.418806, 202.837613 + -3.000000, 405.855285, 101.463821, 202.927643 + -3.000000, 406.035345, 101.508836, 203.017673 + -3.000000, 406.215405, 101.553851, 203.107703 + -3.000000, 406.395465, 101.598866, 203.197733 + -3.000000, 406.575525, 101.643881, 203.287763 + -3.000000, 406.755585, 101.688896, 203.377793 + -3.000000, 406.935645, 101.733911, 203.467823 + -3.000000, 407.115705, 101.778926, 203.557853 + -3.000000, 407.295765, 101.823941, 203.647883 + -3.000000, 407.475825, 101.868956, 203.737913 + -3.000000, 407.655885, 101.913971, 203.827943 + -3.000000, 407.835945, 101.958986, 203.917973 + -3.000000, 408.016005, 102.004001, 204.008003 + -3.000000, 408.196065, 102.049016, 204.098033 + -3.000000, 408.376125, 102.094031, 204.188063 + -3.000000, 408.556185, 102.139046, 204.278093 + -3.000000, 408.736245, 102.184061, 204.368123 + -3.000000, 408.916305, 102.229076, 204.458153 + -3.000000, 409.096365, 102.274091, 204.548183 + -3.000000, 409.276425, 102.319106, 204.638213 + -3.000000, 409.456485, 102.364121, 204.728243 + -3.000000, 409.636546, 102.409136, 204.818273 + -3.000000, 409.816606, 102.454151, 204.908303 + -3.000000, 409.996666, 102.499166, 204.998333 + -3.000000, 410.176726, 102.544181, 205.088363 + -3.000000, 410.356786, 102.589196, 205.178393 + -3.000000, 410.536846, 102.634211, 205.268423 + -3.000000, 410.716906, 102.679226, 205.358453 + -3.000000, 410.896966, 102.724241, 205.448483 + -3.000000, 411.077026, 102.769256, 205.538513 + -3.000000, 411.257086, 102.814271, 205.628543 + -3.000000, 411.437146, 102.859286, 205.718573 + -3.000000, 411.617206, 102.904301, 205.808603 + -3.000000, 411.797266, 102.949316, 205.898633 + -3.000000, 411.977326, 102.994331, 205.988663 + -3.000000, 412.157386, 103.039346, 206.078693 + -3.000000, 412.337446, 103.084361, 206.168723 + -3.000000, 412.517506, 103.129376, 206.258753 + -3.000000, 412.697566, 103.174391, 206.348783 + -3.000000, 412.877626, 103.219406, 206.438813 + -3.000000, 413.057686, 103.264421, 206.528843 + -3.000000, 413.237746, 103.309436, 206.618873 + -3.000000, 413.417806, 103.354451, 206.708903 + -3.000000, 413.597866, 103.399466, 206.798933 + -3.000000, 413.777926, 103.444481, 206.888963 + -3.000000, 413.957986, 103.489496, 206.978993 + -3.000000, 414.138046, 103.534512, 207.069023 + -3.000000, 414.318106, 103.579527, 207.159053 + -3.000000, 414.498166, 103.624542, 207.249083 + -3.000000, 414.678226, 103.669557, 207.339113 + -3.000000, 414.858286, 103.714572, 207.429143 + -3.000000, 415.038346, 103.759587, 207.519173 + -3.000000, 415.218406, 103.804602, 207.609203 + -3.000000, 415.398466, 103.849617, 207.699233 + -3.000000, 415.578526, 103.894632, 207.789263 + -3.000000, 415.758586, 103.939647, 207.879293 + -3.000000, 415.938646, 103.984662, 207.969323 + -3.000000, 416.118706, 104.029677, 208.059353 + -3.000000, 416.298766, 104.074692, 208.149383 + -3.000000, 416.478826, 104.119707, 208.239413 + -3.000000, 416.658886, 104.164722, 208.329443 + -3.000000, 416.838946, 104.209737, 208.419473 + -3.000000, 417.019006, 104.254752, 208.509503 + -3.000000, 417.199066, 104.299767, 208.599533 + -3.000000, 417.379126, 104.344782, 208.689563 + -3.000000, 417.559186, 104.389797, 208.779593 + -3.000000, 417.739246, 104.434812, 208.869623 + -3.000000, 417.919306, 104.479827, 208.959653 + -3.000000, 418.099366, 104.524842, 209.049683 + -3.000000, 418.279426, 104.569857, 209.139713 + -3.000000, 418.459486, 104.614872, 209.229743 + -3.000000, 418.639547, 104.659887, 209.319773 + -3.000000, 418.819607, 104.704902, 209.409803 + -3.000000, 418.999667, 104.749917, 209.499833 + -3.000000, 419.179727, 104.794932, 209.589863 + -3.000000, 419.359787, 104.839947, 209.679893 + -3.000000, 419.539847, 104.884962, 209.769923 + -3.000000, 419.719907, 104.929977, 209.859953 + -3.000000, 419.899967, 104.974992, 209.949983 + -3.000000, 420.080027, 105.020007, 210.040013 + -3.000000, 420.260087, 105.065022, 210.130043 + -3.000000, 420.440147, 105.110037, 210.220073 + -3.000000, 420.620207, 105.155052, 210.310103 + -3.000000, 420.800267, 105.200067, 210.400133 + -3.000000, 420.980327, 105.245082, 210.490163 + -3.000000, 421.160387, 105.290097, 210.580193 + -3.000000, 421.340447, 105.335112, 210.670223 + -3.000000, 421.520507, 105.380127, 210.760253 + -3.000000, 421.700567, 105.425142, 210.850283 + -3.000000, 421.880627, 105.470157, 210.940313 + -3.000000, 422.060687, 105.515172, 211.030343 + -3.000000, 422.240747, 105.560187, 211.120373 + -3.000000, 422.420807, 105.605202, 211.210403 + -3.000000, 422.600867, 105.650217, 211.300433 + -3.000000, 422.780927, 105.695232, 211.390463 + -3.000000, 422.960987, 105.740247, 211.480493 + -3.000000, 423.141047, 105.785262, 211.570524 + -3.000000, 423.321107, 105.830277, 211.660554 + -3.000000, 423.501167, 105.875292, 211.750584 + -3.000000, 423.681227, 105.920307, 211.840614 + -3.000000, 423.861287, 105.965322, 211.930644 + -3.000000, 424.041347, 106.010337, 212.020674 + -3.000000, 424.221407, 106.055352, 212.110704 + -3.000000, 424.401467, 106.100367, 212.200734 + -3.000000, 424.581527, 106.145382, 212.290764 + -3.000000, 424.761587, 106.190397, 212.380794 + -3.000000, 424.941647, 106.235412, 212.470824 + -3.000000, 425.121707, 106.280427, 212.560854 + -3.000000, 425.301767, 106.325442, 212.650884 + -3.000000, 425.481827, 106.370457, 212.740914 + -3.000000, 425.661887, 106.415472, 212.830944 + -3.000000, 425.841947, 106.460487, 212.920974 + -3.000000, 426.022007, 106.505502, 213.011004 + -3.000000, 426.202067, 106.550517, 213.101034 + -3.000000, 426.382127, 106.595532, 213.191064 + -3.000000, 426.562187, 106.640547, 213.281094 + -3.000000, 426.742247, 106.685562, 213.371124 + -3.000000, 426.922307, 106.730577, 213.461154 + -3.000000, 427.102367, 106.775592, 213.551184 + -3.000000, 427.282427, 106.820607, 213.641214 + -3.000000, 427.462487, 106.865622, 213.731244 + -3.000000, 427.642548, 106.910637, 213.821274 + -3.000000, 427.822608, 106.955652, 213.911304 + -3.000000, 428.002668, 107.000667, 214.001334 + -3.000000, 428.182728, 107.045682, 214.091364 + -3.000000, 428.362788, 107.090697, 214.181394 + -3.000000, 428.542848, 107.135712, 214.271424 + -3.000000, 428.722908, 107.180727, 214.361454 + -3.000000, 428.902968, 107.225742, 214.451484 + -3.000000, 429.083028, 107.270757, 214.541514 + -3.000000, 429.263088, 107.315772, 214.631544 + -3.000000, 429.443148, 107.360787, 214.721574 + -3.000000, 429.623208, 107.405802, 214.811604 + -3.000000, 429.803268, 107.450817, 214.901634 + -3.000000, 429.983328, 107.495832, 214.991664 + -3.000000, 430.163388, 107.540847, 215.081694 + -3.000000, 430.343448, 107.585862, 215.171724 + -3.000000, 430.523508, 107.630877, 215.261754 + -3.000000, 430.703568, 107.675892, 215.351784 + -3.000000, 430.883628, 107.720907, 215.441814 + -3.000000, 431.063688, 107.765922, 215.531844 + -3.000000, 431.243748, 107.810937, 215.621874 + -3.000000, 431.423808, 107.855952, 215.711904 + -3.000000, 431.603868, 107.900967, 215.801934 + -3.000000, 431.783928, 107.945982, 215.891964 + -3.000000, 431.963988, 107.990997, 215.981994 + -3.000000, 432.144048, 108.036012, 216.072024 + -3.000000, 432.324108, 108.081027, 216.162054 + -3.000000, 432.504168, 108.126042, 216.252084 + -3.000000, 432.684228, 108.171057, 216.342114 + -3.000000, 432.864288, 108.216072, 216.432144 + -3.000000, 433.044348, 108.261087, 216.522174 + -3.000000, 433.224408, 108.306102, 216.612204 + -3.000000, 433.404468, 108.351117, 216.702234 + -3.000000, 433.584528, 108.396132, 216.792264 + -3.000000, 433.764588, 108.441147, 216.882294 + -3.000000, 433.944648, 108.486162, 216.972324 + -3.000000, 434.124708, 108.531177, 217.062354 + -3.000000, 434.304768, 108.576192, 217.152384 + -3.000000, 434.484828, 108.621207, 217.242414 + -3.000000, 434.664888, 108.666222, 217.332444 + -3.000000, 434.844948, 108.711237, 217.422474 + -3.000000, 435.025008, 108.756252, 217.512504 + -3.000000, 435.205068, 108.801267, 217.602534 + -3.000000, 435.385128, 108.846282, 217.692564 + -3.000000, 435.565188, 108.891297, 217.782594 + -3.000000, 435.745248, 108.936312, 217.872624 + -3.000000, 435.925308, 108.981327, 217.962654 + -3.000000, 436.105368, 109.026342, 218.052684 + -3.000000, 436.285428, 109.071357, 218.142714 + -3.000000, 436.465488, 109.116372, 218.232744 + -3.000000, 436.645549, 109.161387, 218.322774 + -3.000000, 436.825609, 109.206402, 218.412804 + -3.000000, 437.005669, 109.251417, 218.502834 + -3.000000, 437.185729, 109.296432, 218.592864 + -3.000000, 437.365789, 109.341447, 218.682894 + -3.000000, 437.545849, 109.386462, 218.772924 + -3.000000, 437.725909, 109.431477, 218.862954 + -3.000000, 437.905969, 109.476492, 218.952984 + -3.000000, 438.086029, 109.521507, 219.043014 + -3.000000, 438.266089, 109.566522, 219.133044 + -3.000000, 438.446149, 109.611537, 219.223074 + -3.000000, 438.626209, 109.656552, 219.313104 + -3.000000, 438.806269, 109.701567, 219.403134 + -3.000000, 438.986329, 109.746582, 219.493164 + -3.000000, 439.166389, 109.791597, 219.583194 + -3.000000, 439.346449, 109.836612, 219.673224 + -3.000000, 439.526509, 109.881627, 219.763254 + -3.000000, 439.706569, 109.926642, 219.853284 + -3.000000, 439.886629, 109.971657, 219.943314 + -3.000000, 440.066689, 110.016672, 220.033344 + -3.000000, 440.246749, 110.061687, 220.123374 + -3.000000, 440.426809, 110.106702, 220.213404 + -3.000000, 440.606869, 110.151717, 220.303434 + -3.000000, 440.786929, 110.196732, 220.393464 + -3.000000, 440.966989, 110.241747, 220.483494 + -3.000000, 441.147049, 110.286762, 220.573525 + -3.000000, 441.327109, 110.331777, 220.663555 + -3.000000, 441.507169, 110.376792, 220.753585 + -3.000000, 441.687229, 110.421807, 220.843615 + -3.000000, 441.867289, 110.466822, 220.933645 + -3.000000, 442.047349, 110.511837, 221.023675 + -3.000000, 442.227409, 110.556852, 221.113705 + -3.000000, 442.407469, 110.601867, 221.203735 + -3.000000, 442.587529, 110.646882, 221.293765 + -3.000000, 442.767589, 110.691897, 221.383795 + -3.000000, 442.947649, 110.736912, 221.473825 + -3.000000, 443.127709, 110.781927, 221.563855 + -3.000000, 443.307769, 110.826942, 221.653885 + -3.000000, 443.487829, 110.871957, 221.743915 + -3.000000, 443.667889, 110.916972, 221.833945 + -3.000000, 443.847949, 110.961987, 221.923975 + -3.000000, 444.028009, 111.007002, 222.014005 + -3.000000, 444.208069, 111.052017, 222.104035 + -3.000000, 444.388129, 111.097032, 222.194065 + -3.000000, 444.568189, 111.142047, 222.284095 + -3.000000, 444.748249, 111.187062, 222.374125 + -3.000000, 444.928309, 111.232077, 222.464155 + -3.000000, 445.108369, 111.277092, 222.554185 + -3.000000, 445.288429, 111.322107, 222.644215 + -3.000000, 445.468489, 111.367122, 222.734245 + -3.000000, 445.648550, 111.412137, 222.824275 + -3.000000, 445.828610, 111.457152, 222.914305 + -3.000000, 446.008670, 111.502167, 223.004335 + -3.000000, 446.188730, 111.547182, 223.094365 + -3.000000, 446.368790, 111.592197, 223.184395 + -3.000000, 446.548850, 111.637212, 223.274425 + -3.000000, 446.728910, 111.682227, 223.364455 + -3.000000, 446.908970, 111.727242, 223.454485 + -3.000000, 447.089030, 111.772257, 223.544515 + -3.000000, 447.269090, 111.817272, 223.634545 + -3.000000, 447.449150, 111.862287, 223.724575 + -3.000000, 447.629210, 111.907302, 223.814605 + -3.000000, 447.809270, 111.952317, 223.904635 + -3.000000, 447.989330, 111.997332, 223.994665 + -3.000000, 448.169390, 112.042347, 224.084695 + -3.000000, 448.349450, 112.087362, 224.174725 + -3.000000, 448.529510, 112.132377, 224.264755 + -3.000000, 448.709570, 112.177392, 224.354785 + -3.000000, 448.889630, 112.222407, 224.444815 + -3.000000, 449.069690, 112.267422, 224.534845 + -3.000000, 449.249750, 112.312437, 224.624875 + -3.000000, 449.429810, 112.357452, 224.714905 + -3.000000, 449.609870, 112.402467, 224.804935 + -3.000000, 449.789930, 112.447482, 224.894965 + -3.000000, 449.969990, 112.492497, 224.984995 + -3.000000, 450.150050, 112.537513, 225.075025 + -3.000000, 450.330110, 112.582528, 225.165055 + -3.000000, 450.510170, 112.627543, 225.255085 + -3.000000, 450.690230, 112.672558, 225.345115 + -3.000000, 450.870290, 112.717573, 225.435145 + -3.000000, 451.050350, 112.762588, 225.525175 + -3.000000, 451.230410, 112.807603, 225.615205 + -3.000000, 451.410470, 112.852618, 225.705235 + -3.000000, 451.590530, 112.897633, 225.795265 + -3.000000, 451.770590, 112.942648, 225.885295 + -3.000000, 451.950650, 112.987663, 225.975325 + -3.000000, 452.130710, 113.032678, 226.065355 + -3.000000, 452.310770, 113.077693, 226.155385 + -3.000000, 452.490830, 113.122708, 226.245415 + -3.000000, 452.670890, 113.167723, 226.335445 + -3.000000, 452.850950, 113.212738, 226.425475 + -3.000000, 453.031010, 113.257753, 226.515505 + -3.000000, 453.211070, 113.302768, 226.605535 + -3.000000, 453.391130, 113.347783, 226.695565 + -3.000000, 453.571190, 113.392798, 226.785595 + -3.000000, 453.751250, 113.437813, 226.875625 + -3.000000, 453.931310, 113.482828, 226.965655 + -3.000000, 454.111370, 113.527843, 227.055685 + -3.000000, 454.291430, 113.572858, 227.145715 + -3.000000, 454.471490, 113.617873, 227.235745 + -3.000000, 454.651551, 113.662888, 227.325775 + -3.000000, 454.831611, 113.707903, 227.415805 + -3.000000, 455.011671, 113.752918, 227.505835 + -3.000000, 455.191731, 113.797933, 227.595865 + -3.000000, 455.371791, 113.842948, 227.685895 + -3.000000, 455.551851, 113.887963, 227.775925 + -3.000000, 455.731911, 113.932978, 227.865955 + -3.000000, 455.911971, 113.977993, 227.955985 + -3.000000, 456.092031, 114.023008, 228.046015 + -3.000000, 456.272091, 114.068023, 228.136045 + -3.000000, 456.452151, 114.113038, 228.226075 + -3.000000, 456.632211, 114.158053, 228.316105 + -3.000000, 456.812271, 114.203068, 228.406135 + -3.000000, 456.992331, 114.248083, 228.496165 + -3.000000, 457.172391, 114.293098, 228.586195 + -3.000000, 457.352451, 114.338113, 228.676225 + -3.000000, 457.532511, 114.383128, 228.766255 + -3.000000, 457.712571, 114.428143, 228.856285 + -3.000000, 457.892631, 114.473158, 228.946315 + -3.000000, 458.072691, 114.518173, 229.036345 + -3.000000, 458.252751, 114.563188, 229.126375 + -3.000000, 458.432811, 114.608203, 229.216405 + -3.000000, 458.612871, 114.653218, 229.306435 + -3.000000, 458.792931, 114.698233, 229.396465 + -3.000000, 458.972991, 114.743248, 229.486495 + -3.000000, 459.153051, 114.788263, 229.576526 + -3.000000, 459.333111, 114.833278, 229.666556 + -3.000000, 459.513171, 114.878293, 229.756586 + -3.000000, 459.693231, 114.923308, 229.846616 + -3.000000, 459.873291, 114.968323, 229.936646 + -3.000000, 460.053351, 115.013338, 230.026676 + -3.000000, 460.233411, 115.058353, 230.116706 + -3.000000, 460.413471, 115.103368, 230.206736 + -3.000000, 460.593531, 115.148383, 230.296766 + -3.000000, 460.773591, 115.193398, 230.386796 + -3.000000, 460.953651, 115.238413, 230.476826 + -3.000000, 461.133711, 115.283428, 230.566856 + -3.000000, 461.313771, 115.328443, 230.656886 + -3.000000, 461.493831, 115.373458, 230.746916 + -3.000000, 461.673891, 115.418473, 230.836946 + -3.000000, 461.853951, 115.463488, 230.926976 + -3.000000, 462.034011, 115.508503, 231.017006 + -3.000000, 462.214071, 115.553518, 231.107036 + -3.000000, 462.394131, 115.598533, 231.197066 + -3.000000, 462.574191, 115.643548, 231.287096 + -3.000000, 462.754251, 115.688563, 231.377126 + -3.000000, 462.934311, 115.733578, 231.467156 + -3.000000, 463.114371, 115.778593, 231.557186 + -3.000000, 463.294431, 115.823608, 231.647216 + -3.000000, 463.474491, 115.868623, 231.737246 + -3.000000, 463.654552, 115.913638, 231.827276 + -3.000000, 463.834612, 115.958653, 231.917306 + -3.000000, 464.014672, 116.003668, 232.007336 + -3.000000, 464.194732, 116.048683, 232.097366 + -3.000000, 464.374792, 116.093698, 232.187396 + -3.000000, 464.554852, 116.138713, 232.277426 + -3.000000, 464.734912, 116.183728, 232.367456 + -3.000000, 464.914972, 116.228743, 232.457486 + -3.000000, 465.095032, 116.273758, 232.547516 + -3.000000, 465.275092, 116.318773, 232.637546 + -3.000000, 465.455152, 116.363788, 232.727576 + -3.000000, 465.635212, 116.408803, 232.817606 + -3.000000, 465.815272, 116.453818, 232.907636 + -3.000000, 465.995332, 116.498833, 232.997666 + -3.000000, 466.175392, 116.543848, 233.087696 + -3.000000, 466.355452, 116.588863, 233.177726 + -3.000000, 466.535512, 116.633878, 233.267756 + -3.000000, 466.715572, 116.678893, 233.357786 + -3.000000, 466.895632, 116.723908, 233.447816 + -3.000000, 467.075692, 116.768923, 233.537846 + -3.000000, 467.255752, 116.813938, 233.627876 + -3.000000, 467.435812, 116.858953, 233.717906 + -3.000000, 467.615872, 116.903968, 233.807936 + -3.000000, 467.795932, 116.948983, 233.897966 + -3.000000, 467.975992, 116.993998, 233.987996 + -3.000000, 468.156052, 117.039013, 234.078026 + -3.000000, 468.336112, 117.084028, 234.168056 + -3.000000, 468.516172, 117.129043, 234.258086 + -3.000000, 468.696232, 117.174058, 234.348116 + -3.000000, 468.876292, 117.219073, 234.438146 + -3.000000, 469.056352, 117.264088, 234.528176 + -3.000000, 469.236412, 117.309103, 234.618206 + -3.000000, 469.416472, 117.354118, 234.708236 + -3.000000, 469.596532, 117.399133, 234.798266 + -3.000000, 469.776592, 117.444148, 234.888296 + -3.000000, 469.956652, 117.489163, 234.978326 + -3.000000, 470.136712, 117.534178, 235.068356 + -3.000000, 470.316772, 117.579193, 235.158386 + -3.000000, 470.496832, 117.624208, 235.248416 + -3.000000, 470.676892, 117.669223, 235.338446 + -3.000000, 470.856952, 117.714238, 235.428476 + -3.000000, 471.037012, 117.759253, 235.518506 + -3.000000, 471.217072, 117.804268, 235.608536 + -3.000000, 471.397132, 117.849283, 235.698566 + -3.000000, 471.577192, 117.894298, 235.788596 + -3.000000, 471.757252, 117.939313, 235.878626 + -3.000000, 471.937312, 117.984328, 235.968656 + -3.000000, 472.117372, 118.029343, 236.058686 + -3.000000, 472.297432, 118.074358, 236.148716 + -3.000000, 472.477492, 118.119373, 236.238746 + -3.000000, 472.657553, 118.164388, 236.328776 + -3.000000, 472.837613, 118.209403, 236.418806 + -3.000000, 473.017673, 118.254418, 236.508836 + -3.000000, 473.197733, 118.299433, 236.598866 + -3.000000, 473.377793, 118.344448, 236.688896 + -3.000000, 473.557853, 118.389463, 236.778926 + -3.000000, 473.737913, 118.434478, 236.868956 + -3.000000, 473.917973, 118.479493, 236.958986 + -3.000000, 474.098033, 118.524508, 237.049016 + -3.000000, 474.278093, 118.569523, 237.139046 + -3.000000, 474.458153, 118.614538, 237.229076 + -3.000000, 474.638213, 118.659553, 237.319106 + -3.000000, 474.818273, 118.704568, 237.409136 + -3.000000, 474.998333, 118.749583, 237.499166 + -3.000000, 475.178393, 118.794598, 237.589196 + -3.000000, 475.358453, 118.839613, 237.679226 + -3.000000, 475.538513, 118.884628, 237.769256 + -3.000000, 475.718573, 118.929643, 237.859286 + -3.000000, 475.898633, 118.974658, 237.949316 + -3.000000, 476.078693, 119.019673, 238.039346 + -3.000000, 476.258753, 119.064688, 238.129376 + -3.000000, 476.438813, 119.109703, 238.219406 + -3.000000, 476.618873, 119.154718, 238.309436 + -3.000000, 476.798933, 119.199733, 238.399466 + -3.000000, 476.978993, 119.244748, 238.489496 + -3.000000, 477.159053, 119.289763, 238.579527 + -3.000000, 477.339113, 119.334778, 238.669557 + -3.000000, 477.519173, 119.379793, 238.759587 + -3.000000, 477.699233, 119.424808, 238.849617 + -3.000000, 477.879293, 119.469823, 238.939647 + -3.000000, 478.059353, 119.514838, 239.029677 + -3.000000, 478.239413, 119.559853, 239.119707 + -3.000000, 478.419473, 119.604868, 239.209737 + -3.000000, 478.599533, 119.649883, 239.299767 + -3.000000, 478.779593, 119.694898, 239.389797 + -3.000000, 478.959653, 119.739913, 239.479827 + -3.000000, 479.139713, 119.784928, 239.569857 + -3.000000, 479.319773, 119.829943, 239.659887 + -3.000000, 479.499833, 119.874958, 239.749917 + -3.000000, 479.679893, 119.919973, 239.839947 + -3.000000, 479.859953, 119.964988, 239.929977 + -3.000000, 480.040013, 120.010003, 240.020007 + -3.000000, 480.220073, 120.055018, 240.110037 + -3.000000, 480.400133, 120.100033, 240.200067 + -3.000000, 480.580193, 120.145048, 240.290097 + -3.000000, 480.760253, 120.190063, 240.380127 + -3.000000, 480.940313, 120.235078, 240.470157 + -3.000000, 481.120373, 120.280093, 240.560187 + -3.000000, 481.300433, 120.325108, 240.650217 + -3.000000, 481.480493, 120.370123, 240.740247 + -3.000000, 481.660554, 120.415138, 240.830277 + -3.000000, 481.840614, 120.460153, 240.920307 + -3.000000, 482.020674, 120.505168, 241.010337 + -3.000000, 482.200734, 120.550183, 241.100367 + -3.000000, 482.380794, 120.595198, 241.190397 + -3.000000, 482.560854, 120.640213, 241.280427 + -3.000000, 482.740914, 120.685228, 241.370457 + -3.000000, 482.920974, 120.730243, 241.460487 + -3.000000, 483.101034, 120.775258, 241.550517 + -3.000000, 483.281094, 120.820273, 241.640547 + -3.000000, 483.461154, 120.865288, 241.730577 + -3.000000, 483.641214, 120.910303, 241.820607 + -3.000000, 483.821274, 120.955318, 241.910637 + -3.000000, 484.001334, 121.000333, 242.000667 + -3.000000, 484.181394, 121.045348, 242.090697 + -3.000000, 484.361454, 121.090363, 242.180727 + -3.000000, 484.541514, 121.135378, 242.270757 + -3.000000, 484.721574, 121.180393, 242.360787 + -3.000000, 484.901634, 121.225408, 242.450817 + -3.000000, 485.081694, 121.270423, 242.540847 + -3.000000, 485.261754, 121.315438, 242.630877 + -3.000000, 485.441814, 121.360453, 242.720907 + -3.000000, 485.621874, 121.405468, 242.810937 + -3.000000, 485.801934, 121.450483, 242.900967 + -3.000000, 485.981994, 121.495498, 242.990997 + -3.000000, 486.162054, 121.540514, 243.081027 + -3.000000, 486.342114, 121.585529, 243.171057 + -3.000000, 486.522174, 121.630544, 243.261087 + -3.000000, 486.702234, 121.675559, 243.351117 + -3.000000, 486.882294, 121.720574, 243.441147 + -3.000000, 487.062354, 121.765589, 243.531177 + -3.000000, 487.242414, 121.810604, 243.621207 + -3.000000, 487.422474, 121.855619, 243.711237 + -3.000000, 487.602534, 121.900634, 243.801267 + -3.000000, 487.782594, 121.945649, 243.891297 + -3.000000, 487.962654, 121.990664, 243.981327 + -3.000000, 488.142714, 122.035679, 244.071357 + -3.000000, 488.322774, 122.080694, 244.161387 + -3.000000, 488.502834, 122.125709, 244.251417 + -3.000000, 488.682894, 122.170724, 244.341447 + -3.000000, 488.862954, 122.215739, 244.431477 + -3.000000, 489.043014, 122.260754, 244.521507 + -3.000000, 489.223074, 122.305769, 244.611537 + -3.000000, 489.403134, 122.350784, 244.701567 + -3.000000, 489.583194, 122.395799, 244.791597 + -3.000000, 489.763254, 122.440814, 244.881627 + -3.000000, 489.943314, 122.485829, 244.971657 + -3.000000, 490.123374, 122.530844, 245.061687 + -3.000000, 490.303434, 122.575859, 245.151717 + -3.000000, 490.483494, 122.620874, 245.241747 + -3.000000, 490.663555, 122.665889, 245.331777 + -3.000000, 490.843615, 122.710904, 245.421807 + -3.000000, 491.023675, 122.755919, 245.511837 + -3.000000, 491.203735, 122.800934, 245.601867 + -3.000000, 491.383795, 122.845949, 245.691897 + -3.000000, 491.563855, 122.890964, 245.781927 + -3.000000, 491.743915, 122.935979, 245.871957 + -3.000000, 491.923975, 122.980994, 245.961987 + -3.000000, 492.104035, 123.026009, 246.052017 + -3.000000, 492.284095, 123.071024, 246.142047 + -3.000000, 492.464155, 123.116039, 246.232077 + -3.000000, 492.644215, 123.161054, 246.322107 + -3.000000, 492.824275, 123.206069, 246.412137 + -3.000000, 493.004335, 123.251084, 246.502167 + -3.000000, 493.184395, 123.296099, 246.592197 + -3.000000, 493.364455, 123.341114, 246.682227 + -3.000000, 493.544515, 123.386129, 246.772257 + -3.000000, 493.724575, 123.431144, 246.862287 + -3.000000, 493.904635, 123.476159, 246.952317 + -3.000000, 494.084695, 123.521174, 247.042347 + -3.000000, 494.264755, 123.566189, 247.132377 + -3.000000, 494.444815, 123.611204, 247.222407 + -3.000000, 494.624875, 123.656219, 247.312437 + -3.000000, 494.804935, 123.701234, 247.402467 + -3.000000, 494.984995, 123.746249, 247.492497 + -3.000000, 495.165055, 123.791264, 247.582528 + -3.000000, 495.345115, 123.836279, 247.672558 + -3.000000, 495.525175, 123.881294, 247.762588 + -3.000000, 495.705235, 123.926309, 247.852618 + -3.000000, 495.885295, 123.971324, 247.942648 + -3.000000, 496.065355, 124.016339, 248.032678 + -3.000000, 496.245415, 124.061354, 248.122708 + -3.000000, 496.425475, 124.106369, 248.212738 + -3.000000, 496.605535, 124.151384, 248.302768 + -3.000000, 496.785595, 124.196399, 248.392798 + -3.000000, 496.965655, 124.241414, 248.482828 + -3.000000, 497.145715, 124.286429, 248.572858 + -3.000000, 497.325775, 124.331444, 248.662888 + -3.000000, 497.505835, 124.376459, 248.752918 + -3.000000, 497.685895, 124.421474, 248.842948 + -3.000000, 497.865955, 124.466489, 248.932978 + -3.000000, 498.046015, 124.511504, 249.023008 + -3.000000, 498.226075, 124.556519, 249.113038 + -3.000000, 498.406135, 124.601534, 249.203068 + -3.000000, 498.586195, 124.646549, 249.293098 + -3.000000, 498.766255, 124.691564, 249.383128 + -3.000000, 498.946315, 124.736579, 249.473158 + -3.000000, 499.126375, 124.781594, 249.563188 + -3.000000, 499.306435, 124.826609, 249.653218 + -3.000000, 499.486495, 124.871624, 249.743248 + -3.000000, 499.666556, 124.916639, 249.833278 + -3.000000, 499.846616, 124.961654, 249.923308 + -3.000000, 500.026676, 125.006669, 250.013338 + -3.000000, 500.206736, 125.051684, 250.103368 + -3.000000, 500.386796, 125.096699, 250.193398 + -3.000000, 500.566856, 125.141714, 250.283428 + -3.000000, 500.746916, 125.186729, 250.373458 + -3.000000, 500.926976, 125.231744, 250.463488 + -3.000000, 501.107036, 125.276759, 250.553518 + -3.000000, 501.287096, 125.321774, 250.643548 + -3.000000, 501.467156, 125.366789, 250.733578 + -3.000000, 501.647216, 125.411804, 250.823608 + -3.000000, 501.827276, 125.456819, 250.913638 + -3.000000, 502.007336, 125.501834, 251.003668 + -3.000000, 502.187396, 125.546849, 251.093698 + -3.000000, 502.367456, 125.591864, 251.183728 + -3.000000, 502.547516, 125.636879, 251.273758 + -3.000000, 502.727576, 125.681894, 251.363788 + -3.000000, 502.907636, 125.726909, 251.453818 + -3.000000, 503.087696, 125.771924, 251.543848 + -3.000000, 503.267756, 125.816939, 251.633878 + -3.000000, 503.447816, 125.861954, 251.723908 + -3.000000, 503.627876, 125.906969, 251.813938 + -3.000000, 503.807936, 125.951984, 251.903968 + -3.000000, 503.987996, 125.996999, 251.993998 + -3.000000, 504.168056, 126.042014, 252.084028 + -3.000000, 504.348116, 126.087029, 252.174058 + -3.000000, 504.528176, 126.132044, 252.264088 + -3.000000, 504.708236, 126.177059, 252.354118 + -3.000000, 504.888296, 126.222074, 252.444148 + -3.000000, 505.068356, 126.267089, 252.534178 + -3.000000, 505.248416, 126.312104, 252.624208 + -3.000000, 505.428476, 126.357119, 252.714238 + -3.000000, 505.608536, 126.402134, 252.804268 + -3.000000, 505.788596, 126.447149, 252.894298 + -3.000000, 505.968656, 126.492164, 252.984328 + -3.000000, 506.148716, 126.537179, 253.074358 + -3.000000, 506.328776, 126.582194, 253.164388 + -3.000000, 506.508836, 126.627209, 253.254418 + -3.000000, 506.688896, 126.672224, 253.344448 + -3.000000, 506.868956, 126.717239, 253.434478 + -3.000000, 507.049016, 126.762254, 253.524508 + -3.000000, 507.229076, 126.807269, 253.614538 + -3.000000, 507.409136, 126.852284, 253.704568 + -3.000000, 507.589196, 126.897299, 253.794598 + -3.000000, 507.769256, 126.942314, 253.884628 + -3.000000, 507.949316, 126.987329, 253.974658 + -3.000000, 508.129376, 127.032344, 254.064688 + -3.000000, 508.309436, 127.077359, 254.154718 + -3.000000, 508.489496, 127.122374, 254.244748 + -3.000000, 508.669557, 127.167389, 254.334778 + -3.000000, 508.849617, 127.212404, 254.424808 + -3.000000, 509.029677, 127.257419, 254.514838 + -3.000000, 509.209737, 127.302434, 254.604868 + -3.000000, 509.389797, 127.347449, 254.694898 + -3.000000, 509.569857, 127.392464, 254.784928 + -3.000000, 509.749917, 127.437479, 254.874958 + -3.000000, 509.929977, 127.482494, 254.964988 + -3.000000, 510.110037, 127.527509, 255.055018 + -3.000000, 510.290097, 127.572524, 255.145048 + -3.000000, 510.470157, 127.617539, 255.235078 + -3.000000, 510.650217, 127.662554, 255.325108 + -3.000000, 510.830277, 127.707569, 255.415138 + -3.000000, 511.010337, 127.752584, 255.505168 + -3.000000, 511.190397, 127.797599, 255.595198 + -3.000000, 511.370457, 127.842614, 255.685228 + -3.000000, 511.550517, 127.887629, 255.775258 + -3.000000, 511.730577, 127.932644, 255.865288 + -3.000000, 511.910637, 127.977659, 255.955318 + -3.000000, 512.090697, 128.022674, 256.045348 + -3.000000, 512.270757, 128.067689, 256.135378 + -3.000000, 512.450817, 128.112704, 256.225408 + -3.000000, 512.630877, 128.157719, 256.315438 + -3.000000, 512.810937, 128.202734, 256.405468 + -3.000000, 512.990997, 128.247749, 256.495498 + -3.000000, 513.171057, 128.292764, 256.585529 + -3.000000, 513.351117, 128.337779, 256.675559 + -3.000000, 513.531177, 128.382794, 256.765589 + -3.000000, 513.711237, 128.427809, 256.855619 + -3.000000, 513.891297, 128.472824, 256.945649 + -3.000000, 514.071357, 128.517839, 257.035679 + -3.000000, 514.251417, 128.562854, 257.125709 + -3.000000, 514.431477, 128.607869, 257.215739 + -3.000000, 514.611537, 128.652884, 257.305769 + -3.000000, 514.791597, 128.697899, 257.395799 + -3.000000, 514.971657, 128.742914, 257.485829 + -3.000000, 515.151717, 128.787929, 257.575859 + -3.000000, 515.331777, 128.832944, 257.665889 + -3.000000, 515.511837, 128.877959, 257.755919 + -3.000000, 515.691897, 128.922974, 257.845949 + -3.000000, 515.871957, 128.967989, 257.935979 + -3.000000, 516.052017, 129.013004, 258.026009 + -3.000000, 516.232077, 129.058019, 258.116039 + -3.000000, 516.412137, 129.103034, 258.206069 + -3.000000, 516.592197, 129.148049, 258.296099 + -3.000000, 516.772257, 129.193064, 258.386129 + -3.000000, 516.952317, 129.238079, 258.476159 + -3.000000, 517.132377, 129.283094, 258.566189 + -3.000000, 517.312437, 129.328109, 258.656219 + -3.000000, 517.492497, 129.373124, 258.746249 + -3.000000, 517.672558, 129.418139, 258.836279 + -3.000000, 517.852618, 129.463154, 258.926309 + -3.000000, 518.032678, 129.508169, 259.016339 + -3.000000, 518.212738, 129.553184, 259.106369 + -3.000000, 518.392798, 129.598199, 259.196399 + -3.000000, 518.572858, 129.643214, 259.286429 + -3.000000, 518.752918, 129.688229, 259.376459 + -3.000000, 518.932978, 129.733244, 259.466489 + -3.000000, 519.113038, 129.778259, 259.556519 + -3.000000, 519.293098, 129.823274, 259.646549 + -3.000000, 519.473158, 129.868289, 259.736579 + -3.000000, 519.653218, 129.913304, 259.826609 + -3.000000, 519.833278, 129.958319, 259.916639 + -3.000000, 520.013338, 130.003334, 260.006669 + -3.000000, 520.193398, 130.048349, 260.096699 + -3.000000, 520.373458, 130.093364, 260.186729 + -3.000000, 520.553518, 130.138379, 260.276759 + -3.000000, 520.733578, 130.183394, 260.366789 + -3.000000, 520.913638, 130.228409, 260.456819 + -3.000000, 521.093698, 130.273424, 260.546849 + -3.000000, 521.273758, 130.318439, 260.636879 + -3.000000, 521.453818, 130.363454, 260.726909 + -3.000000, 521.633878, 130.408469, 260.816939 + -3.000000, 521.813938, 130.453484, 260.906969 + -3.000000, 521.993998, 130.498499, 260.996999 + -3.000000, 522.174058, 130.543515, 261.087029 + -3.000000, 522.354118, 130.588530, 261.177059 + -3.000000, 522.534178, 130.633545, 261.267089 + -3.000000, 522.714238, 130.678560, 261.357119 + -3.000000, 522.894298, 130.723575, 261.447149 + -3.000000, 523.074358, 130.768590, 261.537179 + -3.000000, 523.254418, 130.813605, 261.627209 + -3.000000, 523.434478, 130.858620, 261.717239 + -3.000000, 523.614538, 130.903635, 261.807269 + -3.000000, 523.794598, 130.948650, 261.897299 + -3.000000, 523.974658, 130.993665, 261.987329 + -3.000000, 524.154718, 131.038680, 262.077359 + -3.000000, 524.334778, 131.083695, 262.167389 + -3.000000, 524.514838, 131.128710, 262.257419 + -3.000000, 524.694898, 131.173725, 262.347449 + -3.000000, 524.874958, 131.218740, 262.437479 + -3.000000, 525.055018, 131.263755, 262.527509 + -3.000000, 525.235078, 131.308770, 262.617539 + -3.000000, 525.415138, 131.353785, 262.707569 + -3.000000, 525.595198, 131.398800, 262.797599 + -3.000000, 525.775258, 131.443815, 262.887629 + -3.000000, 525.955318, 131.488830, 262.977659 + -3.000000, 526.135378, 131.533845, 263.067689 + -3.000000, 526.315438, 131.578860, 263.157719 + -3.000000, 526.495498, 131.623875, 263.247749 + -3.000000, 526.675559, 131.668890, 263.337779 + -3.000000, 526.855619, 131.713905, 263.427809 + -3.000000, 527.035679, 131.758920, 263.517839 + -3.000000, 527.215739, 131.803935, 263.607869 + -3.000000, 527.395799, 131.848950, 263.697899 + -3.000000, 527.575859, 131.893965, 263.787929 + -3.000000, 527.755919, 131.938980, 263.877959 + -3.000000, 527.935979, 131.983995, 263.967989 + -3.000000, 528.116039, 132.029010, 264.058019 + -3.000000, 528.296099, 132.074025, 264.148049 + -3.000000, 528.476159, 132.119040, 264.238079 + -3.000000, 528.656219, 132.164055, 264.328109 + -3.000000, 528.836279, 132.209070, 264.418139 + -3.000000, 529.016339, 132.254085, 264.508169 + -3.000000, 529.196399, 132.299100, 264.598199 + -3.000000, 529.376459, 132.344115, 264.688229 + -3.000000, 529.556519, 132.389130, 264.778259 + -3.000000, 529.736579, 132.434145, 264.868289 + -3.000000, 529.916639, 132.479160, 264.958319 + -3.000000, 530.096699, 132.524175, 265.048349 + -3.000000, 530.276759, 132.569190, 265.138379 + -3.000000, 530.456819, 132.614205, 265.228409 + -3.000000, 530.636879, 132.659220, 265.318439 + -3.000000, 530.816939, 132.704235, 265.408469 + -3.000000, 530.996999, 132.749250, 265.498499 + -3.000000, 531.177059, 132.794265, 265.588530 + -3.000000, 531.357119, 132.839280, 265.678560 + -3.000000, 531.537179, 132.884295, 265.768590 + -3.000000, 531.717239, 132.929310, 265.858620 + -3.000000, 531.897299, 132.974325, 265.948650 + -3.000000, 532.077359, 133.019340, 266.038680 + -3.000000, 532.257419, 133.064355, 266.128710 + -3.000000, 532.437479, 133.109370, 266.218740 + -3.000000, 532.617539, 133.154385, 266.308770 + -3.000000, 532.797599, 133.199400, 266.398800 + -3.000000, 532.977659, 133.244415, 266.488830 + -3.000000, 533.157719, 133.289430, 266.578860 + -3.000000, 533.337779, 133.334445, 266.668890 + -3.000000, 533.517839, 133.379460, 266.758920 + -3.000000, 533.697899, 133.424475, 266.848950 + -3.000000, 533.877959, 133.469490, 266.938980 + -3.000000, 534.058019, 133.514505, 267.029010 + -3.000000, 534.238079, 133.559520, 267.119040 + -3.000000, 534.418139, 133.604535, 267.209070 + -3.000000, 534.598199, 133.649550, 267.299100 + -3.000000, 534.778259, 133.694565, 267.389130 + -3.000000, 534.958319, 133.739580, 267.479160 + -3.000000, 535.138379, 133.784595, 267.569190 + -3.000000, 535.318439, 133.829610, 267.659220 + -3.000000, 535.498499, 133.874625, 267.749250 + -3.000000, 535.678560, 133.919640, 267.839280 + -3.000000, 535.858620, 133.964655, 267.929310 + -3.000000, 536.038680, 134.009670, 268.019340 + -3.000000, 536.218740, 134.054685, 268.109370 + -3.000000, 536.398800, 134.099700, 268.199400 + -3.000000, 536.578860, 134.144715, 268.289430 + -3.000000, 536.758920, 134.189730, 268.379460 + -3.000000, 536.938980, 134.234745, 268.469490 + -3.000000, 537.119040, 134.279760, 268.559520 + -3.000000, 537.299100, 134.324775, 268.649550 + -3.000000, 537.479160, 134.369790, 268.739580 + -3.000000, 537.659220, 134.414805, 268.829610 + -3.000000, 537.839280, 134.459820, 268.919640 + -3.000000, 538.019340, 134.504835, 269.009670 + -3.000000, 538.199400, 134.549850, 269.099700 + -3.000000, 538.379460, 134.594865, 269.189730 + -3.000000, 538.559520, 134.639880, 269.279760 + -3.000000, 538.739580, 134.684895, 269.369790 + -3.000000, 538.919640, 134.729910, 269.459820 + -3.000000, 539.099700, 134.774925, 269.549850 + -3.000000, 539.279760, 134.819940, 269.639880 + -3.000000, 539.459820, 134.864955, 269.729910 + -3.000000, 539.639880, 134.909970, 269.819940 + -3.000000, 539.819940, 134.954985, 269.909970 + -3.000000, 540.000000, 135.000000, 270.000000 diff --git a/scripts/trajectories/linear-ypr-T15.0-w0.1.csv b/scripts/trajectories/linear-ypr-T15.0-w0.1.csv index fa541cc019..89bdbc540c 100644 --- a/scripts/trajectories/linear-ypr-T15.0-w0.1.csv +++ b/scripts/trajectories/linear-ypr-T15.0-w0.1.csv @@ -1,3000 +1,3000 @@ -0, 1.000000, 0.000000, 0.000000, 0.000000 -1, 0.999998, 0.000785, 0.000394, 0.001571 -2, 0.999994, 0.001569, 0.000791, 0.003141 -3, 0.999985, 0.002351, 0.001190, 0.004711 -4, 0.999974, 0.003133, 0.001591, 0.006280 -5, 0.999960, 0.003913, 0.001995, 0.007849 -6, 0.999942, 0.004691, 0.002401, 0.009417 -7, 0.999921, 0.005469, 0.002810, 0.010984 -8, 0.999897, 0.006245, 0.003221, 0.012550 -9, 0.999869, 0.007020, 0.003635, 0.014116 -10, 0.999838, 0.007794, 0.004051, 0.015681 -11, 0.999805, 0.008566, 0.004470, 0.017246 -12, 0.999768, 0.009337, 0.004891, 0.018809 -13, 0.999727, 0.010107, 0.005314, 0.020372 -14, 0.999684, 0.010875, 0.005740, 0.021935 -15, 0.999637, 0.011642, 0.006168, 0.023496 -16, 0.999587, 0.012408, 0.006599, 0.025057 -17, 0.999534, 0.013172, 0.007032, 0.026617 -18, 0.999478, 0.013935, 0.007467, 0.028177 -19, 0.999418, 0.014697, 0.007905, 0.029735 -20, 0.999356, 0.015457, 0.008345, 0.031293 -21, 0.999290, 0.016216, 0.008788, 0.032850 -22, 0.999221, 0.016974, 0.009233, 0.034406 -23, 0.999149, 0.017730, 0.009680, 0.035962 -24, 0.999074, 0.018485, 0.010130, 0.037517 -25, 0.998995, 0.019239, 0.010582, 0.039071 -26, 0.998914, 0.019991, 0.011037, 0.040624 -27, 0.998829, 0.020741, 0.011494, 0.042176 -28, 0.998741, 0.021490, 0.011953, 0.043728 -29, 0.998650, 0.022238, 0.012415, 0.045278 -30, 0.998555, 0.022985, 0.012879, 0.046828 -31, 0.998458, 0.023730, 0.013345, 0.048377 -32, 0.998357, 0.024473, 0.013814, 0.049926 -33, 0.998254, 0.025215, 0.014285, 0.051473 -34, 0.998147, 0.025956, 0.014758, 0.053019 -35, 0.998037, 0.026695, 0.015234, 0.054565 -36, 0.997924, 0.027433, 0.015712, 0.056110 -37, 0.997808, 0.028169, 0.016192, 0.057654 -38, 0.997688, 0.028904, 0.016675, 0.059197 -39, 0.997566, 0.029637, 0.017160, 0.060739 -40, 0.997440, 0.030369, 0.017647, 0.062280 -41, 0.997312, 0.031099, 0.018137, 0.063820 -42, 0.997180, 0.031828, 0.018629, 0.065360 -43, 0.997045, 0.032555, 0.019123, 0.066898 -44, 0.996907, 0.033281, 0.019619, 0.068435 -45, 0.996766, 0.034005, 0.020118, 0.069972 -46, 0.996622, 0.034728, 0.020619, 0.071508 -47, 0.996475, 0.035449, 0.021123, 0.073042 -48, 0.996324, 0.036169, 0.021628, 0.074576 -49, 0.996171, 0.036887, 0.022136, 0.076109 -50, 0.996015, 0.037604, 0.022646, 0.077641 -51, 0.995855, 0.038319, 0.023159, 0.079171 -52, 0.995692, 0.039032, 0.023673, 0.080701 -53, 0.995527, 0.039744, 0.024190, 0.082230 -54, 0.995358, 0.040455, 0.024710, 0.083758 -55, 0.995186, 0.041164, 0.025231, 0.085285 -56, 0.995011, 0.041871, 0.025755, 0.086810 -57, 0.994833, 0.042576, 0.026281, 0.088335 -58, 0.994652, 0.043280, 0.026809, 0.089859 -59, 0.994468, 0.043983, 0.027339, 0.091382 -60, 0.994281, 0.044684, 0.027872, 0.092903 -61, 0.994091, 0.045383, 0.028407, 0.094424 -62, 0.993898, 0.046080, 0.028944, 0.095943 -63, 0.993702, 0.046776, 0.029483, 0.097462 -64, 0.993503, 0.047471, 0.030024, 0.098979 -65, 0.993301, 0.048163, 0.030568, 0.100496 -66, 0.993096, 0.048854, 0.031114, 0.102011 -67, 0.992887, 0.049544, 0.031662, 0.103525 -68, 0.992676, 0.050232, 0.032212, 0.105038 -69, 0.992462, 0.050918, 0.032764, 0.106550 -70, 0.992245, 0.051602, 0.033319, 0.108061 -71, 0.992025, 0.052285, 0.033876, 0.109571 -72, 0.991802, 0.052966, 0.034434, 0.111080 -73, 0.991575, 0.053645, 0.034995, 0.112587 -74, 0.991346, 0.054323, 0.035559, 0.114093 -75, 0.991114, 0.054999, 0.036124, 0.115599 -76, 0.990879, 0.055673, 0.036692, 0.117103 -77, 0.990641, 0.056346, 0.037261, 0.118606 -78, 0.990400, 0.057017, 0.037833, 0.120107 -79, 0.990156, 0.057686, 0.038407, 0.121608 -80, 0.989909, 0.058353, 0.038983, 0.123107 -81, 0.989659, 0.059019, 0.039561, 0.124606 -82, 0.989406, 0.059683, 0.040141, 0.126103 -83, 0.989150, 0.060345, 0.040724, 0.127599 -84, 0.988892, 0.061006, 0.041308, 0.129093 -85, 0.988630, 0.061665, 0.041895, 0.130587 -86, 0.988366, 0.062322, 0.042483, 0.132079 -87, 0.988098, 0.062977, 0.043074, 0.133570 -88, 0.987828, 0.063630, 0.043667, 0.135060 -89, 0.987554, 0.064282, 0.044262, 0.136548 -90, 0.987278, 0.064932, 0.044859, 0.138035 -91, 0.986999, 0.065580, 0.045458, 0.139522 -92, 0.986717, 0.066226, 0.046059, 0.141006 -93, 0.986432, 0.066871, 0.046662, 0.142490 -94, 0.986144, 0.067514, 0.047267, 0.143972 -95, 0.985853, 0.068154, 0.047875, 0.145453 -96, 0.985559, 0.068794, 0.048484, 0.146933 -97, 0.985263, 0.069431, 0.049095, 0.148411 -98, 0.984964, 0.070066, 0.049709, 0.149888 -99, 0.984661, 0.070700, 0.050324, 0.151364 -100, 0.984356, 0.071332, 0.050942, 0.152839 -101, 0.984048, 0.071962, 0.051561, 0.154312 -102, 0.983737, 0.072590, 0.052183, 0.155784 -103, 0.983424, 0.073216, 0.052806, 0.157254 -104, 0.983107, 0.073841, 0.053432, 0.158724 -105, 0.982788, 0.074463, 0.054059, 0.160192 -106, 0.982465, 0.075084, 0.054689, 0.161658 -107, 0.982140, 0.075703, 0.055320, 0.163123 -108, 0.981812, 0.076320, 0.055954, 0.164587 -109, 0.981482, 0.076935, 0.056589, 0.166050 -110, 0.981148, 0.077548, 0.057226, 0.167511 -111, 0.980812, 0.078159, 0.057866, 0.168971 -112, 0.980473, 0.078769, 0.058507, 0.170429 -113, 0.980131, 0.079376, 0.059150, 0.171886 -114, 0.979786, 0.079982, 0.059796, 0.173342 -115, 0.979438, 0.080585, 0.060443, 0.174796 -116, 0.979088, 0.081187, 0.061092, 0.176249 -117, 0.978735, 0.081787, 0.061743, 0.177700 -118, 0.978379, 0.082385, 0.062396, 0.179150 -119, 0.978020, 0.082981, 0.063051, 0.180599 -120, 0.977658, 0.083575, 0.063708, 0.182046 -121, 0.977294, 0.084167, 0.064366, 0.183492 -122, 0.976927, 0.084757, 0.065027, 0.184936 -123, 0.976557, 0.085345, 0.065689, 0.186379 -124, 0.976185, 0.085931, 0.066354, 0.187820 -125, 0.975809, 0.086516, 0.067020, 0.189260 -126, 0.975431, 0.087098, 0.067688, 0.190698 -127, 0.975051, 0.087678, 0.068358, 0.192135 -128, 0.974667, 0.088257, 0.069030, 0.193571 -129, 0.974281, 0.088833, 0.069704, 0.195005 -130, 0.973892, 0.089407, 0.070380, 0.196437 -131, 0.973500, 0.089980, 0.071057, 0.197868 -132, 0.973106, 0.090550, 0.071736, 0.199298 -133, 0.972709, 0.091119, 0.072418, 0.200726 -134, 0.972309, 0.091685, 0.073101, 0.202153 -135, 0.971906, 0.092249, 0.073785, 0.203578 -136, 0.971501, 0.092812, 0.074472, 0.205001 -137, 0.971093, 0.093372, 0.075161, 0.206423 -138, 0.970683, 0.093930, 0.075851, 0.207843 -139, 0.970269, 0.094487, 0.076543, 0.209262 -140, 0.969853, 0.095041, 0.077237, 0.210680 -141, 0.969435, 0.095593, 0.077933, 0.212095 -142, 0.969014, 0.096143, 0.078630, 0.213510 -143, 0.968590, 0.096691, 0.079330, 0.214922 -144, 0.968163, 0.097237, 0.080031, 0.216333 -145, 0.967734, 0.097781, 0.080733, 0.217743 -146, 0.967302, 0.098323, 0.081438, 0.219151 -147, 0.966868, 0.098863, 0.082144, 0.220557 -148, 0.966430, 0.099401, 0.082853, 0.221962 -149, 0.965991, 0.099937, 0.083562, 0.223365 -150, 0.965548, 0.100470, 0.084274, 0.224767 -151, 0.965103, 0.101002, 0.084987, 0.226167 -152, 0.964656, 0.101531, 0.085702, 0.227565 -153, 0.964205, 0.102059, 0.086419, 0.228962 -154, 0.963753, 0.102584, 0.087138, 0.230357 -155, 0.963297, 0.103107, 0.087858, 0.231751 -156, 0.962839, 0.103628, 0.088580, 0.233142 -157, 0.962379, 0.104147, 0.089304, 0.234533 -158, 0.961916, 0.104664, 0.090029, 0.235921 -159, 0.961450, 0.105179, 0.090756, 0.237308 -160, 0.960981, 0.105691, 0.091485, 0.238693 -161, 0.960511, 0.106202, 0.092215, 0.240077 -162, 0.960037, 0.106710, 0.092947, 0.241459 -163, 0.959561, 0.107216, 0.093681, 0.242839 -164, 0.959083, 0.107720, 0.094416, 0.244218 -165, 0.958602, 0.108222, 0.095153, 0.245595 -166, 0.958118, 0.108722, 0.095892, 0.246970 -167, 0.957632, 0.109219, 0.096633, 0.248343 -168, 0.957143, 0.109715, 0.097375, 0.249715 -169, 0.956652, 0.110208, 0.098118, 0.251085 -170, 0.956158, 0.110699, 0.098863, 0.252454 -171, 0.955662, 0.111188, 0.099610, 0.253820 -172, 0.955164, 0.111674, 0.100359, 0.255185 -173, 0.954662, 0.112159, 0.101109, 0.256549 -174, 0.954159, 0.112641, 0.101860, 0.257910 -175, 0.953652, 0.113121, 0.102614, 0.259270 -176, 0.953144, 0.113599, 0.103369, 0.260628 -177, 0.952633, 0.114075, 0.104125, 0.261984 -178, 0.952119, 0.114549, 0.104883, 0.263339 -179, 0.951603, 0.115020, 0.105643, 0.264692 -180, 0.951085, 0.115489, 0.106404, 0.266043 -181, 0.950564, 0.115956, 0.107166, 0.267392 -182, 0.950040, 0.116421, 0.107931, 0.268740 -183, 0.949514, 0.116883, 0.108696, 0.270085 -184, 0.948986, 0.117343, 0.109464, 0.271429 -185, 0.948455, 0.117801, 0.110233, 0.272771 -186, 0.947922, 0.118257, 0.111003, 0.274112 -187, 0.947387, 0.118711, 0.111775, 0.275450 -188, 0.946849, 0.119162, 0.112548, 0.276787 -189, 0.946308, 0.119611, 0.113323, 0.278122 -190, 0.945765, 0.120058, 0.114100, 0.279455 -191, 0.945220, 0.120502, 0.114878, 0.280787 -192, 0.944673, 0.120945, 0.115657, 0.282116 -193, 0.944123, 0.121385, 0.116438, 0.283444 -194, 0.943570, 0.121822, 0.117220, 0.284770 -195, 0.943016, 0.122258, 0.118004, 0.286094 -196, 0.942459, 0.122691, 0.118789, 0.287416 -197, 0.941899, 0.123122, 0.119576, 0.288736 -198, 0.941337, 0.123550, 0.120364, 0.290055 -199, 0.940773, 0.123977, 0.121154, 0.291371 -200, 0.940207, 0.124401, 0.121945, 0.292686 -201, 0.939638, 0.124823, 0.122738, 0.293999 -202, 0.939067, 0.125242, 0.123531, 0.295310 -203, 0.938493, 0.125659, 0.124327, 0.296619 -204, 0.937917, 0.126074, 0.125124, 0.297927 -205, 0.937339, 0.126487, 0.125922, 0.299232 -206, 0.936759, 0.126897, 0.126721, 0.300536 -207, 0.936176, 0.127305, 0.127522, 0.301837 -208, 0.935591, 0.127711, 0.128324, 0.303137 -209, 0.935004, 0.128114, 0.129128, 0.304435 -210, 0.934414, 0.128515, 0.129933, 0.305731 -211, 0.933822, 0.128913, 0.130740, 0.307025 -212, 0.933228, 0.129310, 0.131548, 0.308317 -213, 0.932632, 0.129704, 0.132357, 0.309607 -214, 0.932033, 0.130095, 0.133167, 0.310896 -215, 0.931432, 0.130485, 0.133979, 0.312182 -216, 0.930829, 0.130872, 0.134792, 0.313466 -217, 0.930223, 0.131256, 0.135607, 0.314749 -218, 0.929616, 0.131638, 0.136422, 0.316030 -219, 0.929006, 0.132018, 0.137240, 0.317308 -220, 0.928394, 0.132396, 0.138058, 0.318585 -221, 0.927779, 0.132771, 0.138878, 0.319860 -222, 0.927163, 0.133144, 0.139699, 0.321132 -223, 0.926544, 0.133514, 0.140521, 0.322403 -224, 0.925923, 0.133882, 0.141345, 0.323672 -225, 0.925300, 0.134248, 0.142170, 0.324939 -226, 0.924675, 0.134611, 0.142996, 0.326204 -227, 0.924047, 0.134972, 0.143823, 0.327467 -228, 0.923417, 0.135331, 0.144652, 0.328727 -229, 0.922786, 0.135687, 0.145482, 0.329986 -230, 0.922151, 0.136041, 0.146313, 0.331243 -231, 0.921515, 0.136392, 0.147145, 0.332498 -232, 0.920877, 0.136741, 0.147979, 0.333751 -233, 0.920236, 0.137087, 0.148814, 0.335002 -234, 0.919594, 0.137432, 0.149650, 0.336251 -235, 0.918949, 0.137773, 0.150487, 0.337498 -236, 0.918302, 0.138113, 0.151325, 0.338743 -237, 0.917653, 0.138450, 0.152165, 0.339986 -238, 0.917002, 0.138784, 0.153006, 0.341227 -239, 0.916349, 0.139116, 0.153848, 0.342466 -240, 0.915693, 0.139446, 0.154691, 0.343702 -241, 0.915036, 0.139773, 0.155535, 0.344937 -242, 0.914376, 0.140098, 0.156381, 0.346170 -243, 0.913715, 0.140420, 0.157227, 0.347400 -244, 0.913051, 0.140740, 0.158075, 0.348629 -245, 0.912385, 0.141058, 0.158924, 0.349856 -246, 0.911717, 0.141373, 0.159774, 0.351080 -247, 0.911048, 0.141685, 0.160625, 0.352303 -248, 0.910376, 0.141996, 0.161478, 0.353523 -249, 0.909702, 0.142303, 0.162331, 0.354741 -250, 0.909026, 0.142609, 0.163186, 0.355958 -251, 0.908347, 0.142911, 0.164041, 0.357172 -252, 0.907667, 0.143212, 0.164898, 0.358384 -253, 0.906985, 0.143510, 0.165756, 0.359594 -254, 0.906301, 0.143805, 0.166615, 0.360802 -255, 0.905615, 0.144098, 0.167475, 0.362008 -256, 0.904927, 0.144389, 0.168336, 0.363211 -257, 0.904237, 0.144677, 0.169198, 0.364413 -258, 0.903544, 0.144962, 0.170061, 0.365613 -259, 0.902850, 0.145245, 0.170925, 0.366810 -260, 0.902154, 0.145526, 0.171790, 0.368005 -261, 0.901456, 0.145804, 0.172657, 0.369199 -262, 0.900756, 0.146080, 0.173524, 0.370390 -263, 0.900054, 0.146353, 0.174392, 0.371579 -264, 0.899350, 0.146624, 0.175261, 0.372766 -265, 0.898644, 0.146892, 0.176132, 0.373950 -266, 0.897936, 0.147157, 0.177003, 0.375133 -267, 0.897227, 0.147421, 0.177875, 0.376313 -268, 0.896515, 0.147681, 0.178749, 0.377492 -269, 0.895801, 0.147940, 0.179623, 0.378668 -270, 0.895086, 0.148195, 0.180498, 0.379842 -271, 0.894368, 0.148448, 0.181374, 0.381014 -272, 0.893649, 0.148699, 0.182251, 0.382184 -273, 0.892928, 0.148947, 0.183129, 0.383351 -274, 0.892205, 0.149193, 0.184008, 0.384517 -275, 0.891480, 0.149436, 0.184888, 0.385680 -276, 0.890753, 0.149677, 0.185769, 0.386841 -277, 0.890024, 0.149915, 0.186651, 0.388000 -278, 0.889294, 0.150150, 0.187534, 0.389157 -279, 0.888561, 0.150383, 0.188417, 0.390311 -280, 0.887827, 0.150614, 0.189302, 0.391464 -281, 0.887091, 0.150842, 0.190187, 0.392614 -282, 0.886353, 0.151067, 0.191074, 0.393762 -283, 0.885613, 0.151290, 0.191961, 0.394908 -284, 0.884871, 0.151511, 0.192849, 0.396051 -285, 0.884128, 0.151729, 0.193738, 0.397193 -286, 0.883382, 0.151944, 0.194628, 0.398332 -287, 0.882635, 0.152157, 0.195518, 0.399469 -288, 0.881887, 0.152367, 0.196410, 0.400604 -289, 0.881136, 0.152575, 0.197302, 0.401737 -290, 0.880383, 0.152780, 0.198195, 0.402867 -291, 0.879629, 0.152982, 0.199089, 0.403996 -292, 0.878873, 0.153183, 0.199984, 0.405122 -293, 0.878115, 0.153380, 0.200879, 0.406245 -294, 0.877356, 0.153575, 0.201776, 0.407367 -295, 0.876595, 0.153767, 0.202673, 0.408486 -296, 0.875832, 0.153957, 0.203571, 0.409603 -297, 0.875067, 0.154144, 0.204470, 0.410718 -298, 0.874300, 0.154329, 0.205369, 0.411831 -299, 0.873532, 0.154511, 0.206269, 0.412941 -300, 0.872762, 0.154691, 0.207170, 0.414050 -301, 0.871991, 0.154868, 0.208072, 0.415156 -302, 0.871217, 0.155042, 0.208975, 0.416259 -303, 0.870442, 0.155214, 0.209878, 0.417361 -304, 0.869666, 0.155384, 0.210782, 0.418460 -305, 0.868887, 0.155550, 0.211687, 0.419557 -306, 0.868107, 0.155714, 0.212592, 0.420652 -307, 0.867325, 0.155876, 0.213498, 0.421744 -308, 0.866542, 0.156035, 0.214405, 0.422834 -309, 0.865757, 0.156191, 0.215313, 0.423922 -310, 0.864970, 0.156345, 0.216221, 0.425008 -311, 0.864182, 0.156496, 0.217130, 0.426091 -312, 0.863392, 0.156645, 0.218040, 0.427172 -313, 0.862600, 0.156791, 0.218950, 0.428251 -314, 0.861807, 0.156935, 0.219861, 0.429327 -315, 0.861012, 0.157075, 0.220772, 0.430402 -316, 0.860215, 0.157214, 0.221685, 0.431474 -317, 0.859417, 0.157349, 0.222598, 0.432543 -318, 0.858617, 0.157482, 0.223511, 0.433611 -319, 0.857816, 0.157613, 0.224425, 0.434676 -320, 0.857013, 0.157741, 0.225340, 0.435739 -321, 0.856209, 0.157866, 0.226255, 0.436799 -322, 0.855403, 0.157989, 0.227171, 0.437857 -323, 0.854595, 0.158109, 0.228088, 0.438913 -324, 0.853786, 0.158226, 0.229005, 0.439967 -325, 0.852975, 0.158341, 0.229923, 0.441018 -326, 0.852163, 0.158454, 0.230841, 0.442067 -327, 0.851349, 0.158563, 0.231760, 0.443114 -328, 0.850534, 0.158670, 0.232679, 0.444158 -329, 0.849717, 0.158775, 0.233599, 0.445200 -330, 0.848898, 0.158877, 0.234520, 0.446240 -331, 0.848079, 0.158976, 0.235441, 0.447277 -332, 0.847257, 0.159072, 0.236363, 0.448313 -333, 0.846434, 0.159166, 0.237285, 0.449345 -334, 0.845610, 0.159258, 0.238207, 0.450376 -335, 0.844784, 0.159347, 0.239131, 0.451404 -336, 0.843957, 0.159433, 0.240054, 0.452430 -337, 0.843128, 0.159516, 0.240978, 0.453453 -338, 0.842297, 0.159597, 0.241903, 0.454474 -339, 0.841466, 0.159675, 0.242828, 0.455493 -340, 0.840632, 0.159751, 0.243754, 0.456509 -341, 0.839798, 0.159824, 0.244680, 0.457523 -342, 0.838962, 0.159894, 0.245606, 0.458535 -343, 0.838124, 0.159962, 0.246533, 0.459545 -344, 0.837285, 0.160027, 0.247461, 0.460552 -345, 0.836445, 0.160090, 0.248389, 0.461556 -346, 0.835603, 0.160150, 0.249317, 0.462559 -347, 0.834760, 0.160207, 0.250246, 0.463559 -348, 0.833915, 0.160262, 0.251175, 0.464556 -349, 0.833069, 0.160314, 0.252104, 0.465552 -350, 0.832222, 0.160363, 0.253034, 0.466544 -351, 0.831373, 0.160410, 0.253965, 0.467535 -352, 0.830523, 0.160454, 0.254896, 0.468523 -353, 0.829672, 0.160495, 0.255827, 0.469509 -354, 0.828819, 0.160534, 0.256758, 0.470492 -355, 0.827965, 0.160570, 0.257690, 0.471473 -356, 0.827109, 0.160604, 0.258622, 0.472452 -357, 0.826252, 0.160635, 0.259555, 0.473429 -358, 0.825394, 0.160663, 0.260488, 0.474402 -359, 0.824535, 0.160689, 0.261421, 0.475374 -360, 0.823674, 0.160712, 0.262355, 0.476343 -361, 0.822812, 0.160732, 0.263289, 0.477310 -362, 0.821948, 0.160750, 0.264223, 0.478274 -363, 0.821084, 0.160765, 0.265157, 0.479237 -364, 0.820218, 0.160777, 0.266092, 0.480196 -365, 0.819350, 0.160787, 0.267027, 0.481153 -366, 0.818482, 0.160794, 0.267963, 0.482108 -367, 0.817612, 0.160799, 0.268899, 0.483061 -368, 0.816741, 0.160801, 0.269835, 0.484011 -369, 0.815869, 0.160800, 0.270771, 0.484959 -370, 0.814995, 0.160796, 0.271707, 0.485904 -371, 0.814120, 0.160790, 0.272644, 0.486847 -372, 0.813244, 0.160781, 0.273581, 0.487787 -373, 0.812367, 0.160770, 0.274519, 0.488726 -374, 0.811488, 0.160756, 0.275456, 0.489661 -375, 0.810609, 0.160739, 0.276394, 0.490595 -376, 0.809728, 0.160720, 0.277332, 0.491525 -377, 0.808846, 0.160698, 0.278270, 0.492454 -378, 0.807962, 0.160673, 0.279208, 0.493380 -379, 0.807078, 0.160646, 0.280147, 0.494304 -380, 0.806192, 0.160616, 0.281086, 0.495225 -381, 0.805305, 0.160584, 0.282024, 0.496144 -382, 0.804417, 0.160548, 0.282964, 0.497060 -383, 0.803528, 0.160511, 0.283903, 0.497974 -384, 0.802638, 0.160470, 0.284842, 0.498886 -385, 0.801746, 0.160427, 0.285782, 0.499795 -386, 0.800853, 0.160381, 0.286722, 0.500702 -387, 0.799960, 0.160333, 0.287661, 0.501606 -388, 0.799065, 0.160282, 0.288601, 0.502508 -389, 0.798169, 0.160228, 0.289541, 0.503408 -390, 0.797272, 0.160171, 0.290482, 0.504305 -391, 0.796374, 0.160112, 0.291422, 0.505199 -392, 0.795474, 0.160051, 0.292362, 0.506092 -393, 0.794574, 0.159986, 0.293303, 0.506982 -394, 0.793672, 0.159919, 0.294244, 0.507869 -395, 0.792770, 0.159849, 0.295184, 0.508754 -396, 0.791866, 0.159777, 0.296125, 0.509636 -397, 0.790961, 0.159702, 0.297066, 0.510516 -398, 0.790056, 0.159625, 0.298007, 0.511394 -399, 0.789149, 0.159544, 0.298948, 0.512269 -400, 0.788241, 0.159461, 0.299889, 0.513142 -401, 0.787332, 0.159376, 0.300830, 0.514013 -402, 0.786422, 0.159288, 0.301771, 0.514880 -403, 0.785511, 0.159197, 0.302712, 0.515746 -404, 0.784599, 0.159103, 0.303653, 0.516609 -405, 0.783686, 0.159007, 0.304594, 0.517470 -406, 0.782772, 0.158908, 0.305535, 0.518328 -407, 0.781857, 0.158807, 0.306476, 0.519184 -408, 0.780942, 0.158703, 0.307418, 0.520037 -409, 0.780025, 0.158596, 0.308359, 0.520888 -410, 0.779107, 0.158486, 0.309300, 0.521736 -411, 0.778188, 0.158374, 0.310241, 0.522582 -412, 0.777268, 0.158260, 0.311182, 0.523426 -413, 0.776347, 0.158142, 0.312123, 0.524267 -414, 0.775425, 0.158022, 0.313064, 0.525105 -415, 0.774503, 0.157900, 0.314004, 0.525941 -416, 0.773579, 0.157774, 0.314945, 0.526775 -417, 0.772655, 0.157646, 0.315886, 0.527606 -418, 0.771729, 0.157516, 0.316826, 0.528435 -419, 0.770803, 0.157383, 0.317767, 0.529262 -420, 0.769876, 0.157247, 0.318707, 0.530086 -421, 0.768947, 0.157108, 0.319648, 0.530907 -422, 0.768018, 0.156967, 0.320588, 0.531726 -423, 0.767088, 0.156823, 0.321528, 0.532543 -424, 0.766158, 0.156677, 0.322468, 0.533357 -425, 0.765226, 0.156528, 0.323408, 0.534169 -426, 0.764293, 0.156376, 0.324347, 0.534978 -427, 0.763360, 0.156222, 0.325287, 0.535785 -428, 0.762426, 0.156065, 0.326226, 0.536589 -429, 0.761490, 0.155905, 0.327165, 0.537391 -430, 0.760555, 0.155743, 0.328104, 0.538190 -431, 0.759618, 0.155578, 0.329043, 0.538987 -432, 0.758680, 0.155410, 0.329982, 0.539782 -433, 0.757742, 0.155240, 0.330920, 0.540574 -434, 0.756802, 0.155067, 0.331859, 0.541363 -435, 0.755862, 0.154892, 0.332797, 0.542150 -436, 0.754922, 0.154714, 0.333735, 0.542935 -437, 0.753980, 0.154533, 0.334672, 0.543717 -438, 0.753037, 0.154350, 0.335610, 0.544497 -439, 0.752094, 0.154164, 0.336547, 0.545274 -440, 0.751150, 0.153975, 0.337484, 0.546049 -441, 0.750206, 0.153784, 0.338421, 0.546821 -442, 0.749260, 0.153590, 0.339357, 0.547591 -443, 0.748314, 0.153393, 0.340293, 0.548359 -444, 0.747367, 0.153194, 0.341229, 0.549124 -445, 0.746419, 0.152993, 0.342165, 0.549886 -446, 0.745471, 0.152788, 0.343100, 0.550646 -447, 0.744522, 0.152581, 0.344035, 0.551404 -448, 0.743572, 0.152372, 0.344970, 0.552159 -449, 0.742621, 0.152159, 0.345904, 0.552912 -450, 0.741670, 0.151944, 0.346839, 0.553662 -451, 0.740718, 0.151727, 0.347773, 0.554410 -452, 0.739765, 0.151507, 0.348706, 0.555155 -453, 0.738812, 0.151284, 0.349639, 0.555898 -454, 0.737858, 0.151059, 0.350572, 0.556639 -455, 0.736903, 0.150831, 0.351505, 0.557377 -456, 0.735948, 0.150600, 0.352437, 0.558112 -457, 0.734992, 0.150367, 0.353369, 0.558845 -458, 0.734035, 0.150132, 0.354300, 0.559576 -459, 0.733078, 0.149893, 0.355231, 0.560304 -460, 0.732120, 0.149652, 0.356162, 0.561029 -461, 0.731161, 0.149409, 0.357092, 0.561753 -462, 0.730202, 0.149162, 0.358022, 0.562473 -463, 0.729242, 0.148914, 0.358952, 0.563192 -464, 0.728282, 0.148662, 0.359881, 0.563907 -465, 0.727320, 0.148408, 0.360809, 0.564621 -466, 0.726359, 0.148152, 0.361738, 0.565332 -467, 0.725397, 0.147893, 0.362665, 0.566040 -468, 0.724434, 0.147631, 0.363593, 0.566746 -469, 0.723470, 0.147366, 0.364520, 0.567449 -470, 0.722507, 0.147099, 0.365446, 0.568151 -471, 0.721542, 0.146830, 0.366372, 0.568849 -472, 0.720577, 0.146558, 0.367298, 0.569545 -473, 0.719611, 0.146283, 0.368223, 0.570239 -474, 0.718645, 0.146006, 0.369148, 0.570930 -475, 0.717679, 0.145726, 0.370072, 0.571619 -476, 0.716711, 0.145443, 0.370996, 0.572305 -477, 0.715744, 0.145158, 0.371919, 0.572989 -478, 0.714775, 0.144870, 0.372842, 0.573671 -479, 0.713807, 0.144580, 0.373764, 0.574350 -480, 0.712837, 0.144287, 0.374685, 0.575026 -481, 0.711868, 0.143992, 0.375606, 0.575700 -482, 0.710897, 0.143694, 0.376527, 0.576372 -483, 0.709927, 0.143393, 0.377447, 0.577041 -484, 0.708955, 0.143090, 0.378367, 0.577708 -485, 0.707984, 0.142785, 0.379286, 0.578372 -486, 0.707012, 0.142476, 0.380204, 0.579034 -487, 0.706039, 0.142166, 0.381122, 0.579693 -488, 0.705066, 0.141852, 0.382039, 0.580350 -489, 0.704092, 0.141536, 0.382956, 0.581004 -490, 0.703119, 0.141218, 0.383872, 0.581656 -491, 0.702144, 0.140897, 0.384787, 0.582306 -492, 0.701169, 0.140573, 0.385702, 0.582953 -493, 0.700194, 0.140247, 0.386617, 0.583598 -494, 0.699219, 0.139918, 0.387530, 0.584240 -495, 0.698243, 0.139587, 0.388443, 0.584880 -496, 0.697266, 0.139253, 0.389356, 0.585517 -497, 0.696290, 0.138917, 0.390268, 0.586152 -498, 0.695312, 0.138578, 0.391179, 0.586785 -499, 0.694335, 0.138236, 0.392089, 0.587415 -500, 0.693357, 0.137892, 0.392999, 0.588042 -501, 0.692379, 0.137546, 0.393908, 0.588667 -502, 0.691400, 0.137197, 0.394817, 0.589290 -503, 0.690421, 0.136845, 0.395725, 0.589910 -504, 0.689442, 0.136491, 0.396632, 0.590528 -505, 0.688462, 0.136134, 0.397538, 0.591144 -506, 0.687482, 0.135775, 0.398444, 0.591757 -507, 0.686502, 0.135413, 0.399349, 0.592367 -508, 0.685521, 0.135049, 0.400254, 0.592975 -509, 0.684540, 0.134682, 0.401157, 0.593581 -510, 0.683559, 0.134313, 0.402060, 0.594184 -511, 0.682577, 0.133941, 0.402962, 0.594785 -512, 0.681596, 0.133567, 0.403864, 0.595383 -513, 0.680613, 0.133190, 0.404765, 0.595979 -514, 0.679631, 0.132810, 0.405665, 0.596573 -515, 0.678648, 0.132429, 0.406564, 0.597164 -516, 0.677665, 0.132044, 0.407462, 0.597753 -517, 0.676682, 0.131657, 0.408360, 0.598339 -518, 0.675699, 0.131268, 0.409257, 0.598923 -519, 0.674715, 0.130876, 0.410153, 0.599504 -520, 0.673731, 0.130482, 0.411049, 0.600083 -521, 0.672747, 0.130085, 0.411943, 0.600660 -522, 0.671763, 0.129685, 0.412837, 0.601234 -523, 0.670778, 0.129284, 0.413730, 0.601806 -524, 0.669793, 0.128879, 0.414622, 0.602375 -525, 0.668808, 0.128472, 0.415514, 0.602942 -526, 0.667823, 0.128063, 0.416404, 0.603507 -527, 0.666837, 0.127651, 0.417294, 0.604069 -528, 0.665852, 0.127237, 0.418183, 0.604628 -529, 0.664866, 0.126820, 0.419071, 0.605186 -530, 0.663880, 0.126401, 0.419958, 0.605741 -531, 0.662894, 0.125979, 0.420844, 0.606293 -532, 0.661907, 0.125555, 0.421729, 0.606843 -533, 0.660921, 0.125129, 0.422614, 0.607391 -534, 0.659934, 0.124700, 0.423498, 0.607936 -535, 0.658948, 0.124268, 0.424380, 0.608479 -536, 0.657961, 0.123834, 0.425262, 0.609020 -537, 0.656974, 0.123398, 0.426143, 0.609558 -538, 0.655986, 0.122959, 0.427023, 0.610093 -539, 0.654999, 0.122517, 0.427903, 0.610627 -540, 0.654012, 0.122074, 0.428781, 0.611158 -541, 0.653024, 0.121627, 0.429658, 0.611686 -542, 0.652037, 0.121179, 0.430535, 0.612212 -543, 0.651049, 0.120727, 0.431410, 0.612736 -544, 0.650061, 0.120274, 0.432285, 0.613257 -545, 0.649073, 0.119818, 0.433158, 0.613776 -546, 0.648085, 0.119360, 0.434031, 0.614293 -547, 0.647097, 0.118899, 0.434903, 0.614807 -548, 0.646109, 0.118435, 0.435773, 0.615319 -549, 0.645121, 0.117970, 0.436643, 0.615829 -550, 0.644133, 0.117502, 0.437512, 0.616336 -551, 0.643145, 0.117031, 0.438379, 0.616840 -552, 0.642156, 0.116558, 0.439246, 0.617343 -553, 0.641168, 0.116083, 0.440112, 0.617843 -554, 0.640180, 0.115605, 0.440977, 0.618340 -555, 0.639192, 0.115125, 0.441840, 0.618836 -556, 0.638203, 0.114642, 0.442703, 0.619328 -557, 0.637215, 0.114157, 0.443565, 0.619819 -558, 0.636226, 0.113670, 0.444426, 0.620307 -559, 0.635238, 0.113180, 0.445285, 0.620793 -560, 0.634250, 0.112688, 0.446144, 0.621276 -561, 0.633261, 0.112194, 0.447001, 0.621758 -562, 0.632273, 0.111697, 0.447858, 0.622236 -563, 0.631285, 0.111198, 0.448713, 0.622713 -564, 0.630297, 0.110696, 0.449568, 0.623187 -565, 0.629308, 0.110192, 0.450421, 0.623658 -566, 0.628320, 0.109686, 0.451273, 0.624128 -567, 0.627332, 0.109177, 0.452124, 0.624595 -568, 0.626344, 0.108666, 0.452974, 0.625059 -569, 0.625356, 0.108152, 0.453823, 0.625522 -570, 0.624368, 0.107636, 0.454671, 0.625982 -571, 0.623380, 0.107118, 0.455517, 0.626439 -572, 0.622393, 0.106598, 0.456363, 0.626895 -573, 0.621405, 0.106075, 0.457207, 0.627348 -574, 0.620417, 0.105550, 0.458051, 0.627798 -575, 0.619430, 0.105022, 0.458893, 0.628247 -576, 0.618443, 0.104492, 0.459734, 0.628693 -577, 0.617455, 0.103960, 0.460574, 0.629137 -578, 0.616468, 0.103425, 0.461413, 0.629578 -579, 0.615481, 0.102888, 0.462250, 0.630017 -580, 0.614495, 0.102349, 0.463087, 0.630454 -581, 0.613508, 0.101808, 0.463922, 0.630888 -582, 0.612521, 0.101264, 0.464756, 0.631320 -583, 0.611535, 0.100718, 0.465589, 0.631750 -584, 0.610549, 0.100169, 0.466420, 0.632178 -585, 0.609563, 0.099618, 0.467251, 0.632603 -586, 0.608577, 0.099065, 0.468080, 0.633026 -587, 0.607591, 0.098510, 0.468908, 0.633446 -588, 0.606605, 0.097952, 0.469735, 0.633865 -589, 0.605620, 0.097392, 0.470561, 0.634281 -590, 0.604635, 0.096830, 0.471385, 0.634694 -591, 0.603650, 0.096265, 0.472208, 0.635106 -592, 0.602665, 0.095699, 0.473030, 0.635515 -593, 0.601680, 0.095129, 0.473851, 0.635922 -594, 0.600696, 0.094558, 0.474670, 0.636326 -595, 0.599712, 0.093984, 0.475488, 0.636729 -596, 0.598728, 0.093408, 0.476305, 0.637129 -597, 0.597744, 0.092830, 0.477121, 0.637526 -598, 0.596761, 0.092250, 0.477935, 0.637922 -599, 0.595778, 0.091667, 0.478748, 0.638315 -600, 0.594795, 0.091082, 0.479560, 0.638706 -601, 0.593812, 0.090495, 0.480371, 0.639095 -602, 0.592830, 0.089905, 0.481180, 0.639481 -603, 0.591847, 0.089314, 0.481988, 0.639865 -604, 0.590866, 0.088720, 0.482794, 0.640247 -605, 0.589884, 0.088124, 0.483600, 0.640627 -606, 0.588903, 0.087525, 0.484404, 0.641004 -607, 0.587922, 0.086925, 0.485206, 0.641379 -608, 0.586941, 0.086322, 0.486008, 0.641752 -609, 0.585960, 0.085717, 0.486808, 0.642123 -610, 0.584980, 0.085109, 0.487606, 0.642491 -611, 0.584000, 0.084500, 0.488404, 0.642857 -612, 0.583021, 0.083888, 0.489199, 0.643221 -613, 0.582042, 0.083274, 0.489994, 0.643583 -614, 0.581063, 0.082658, 0.490787, 0.643942 -615, 0.580084, 0.082040, 0.491579, 0.644299 -616, 0.579106, 0.081419, 0.492369, 0.644654 -617, 0.578128, 0.080797, 0.493159, 0.645007 -618, 0.577151, 0.080172, 0.493946, 0.645358 -619, 0.576174, 0.079545, 0.494732, 0.645706 -620, 0.575197, 0.078915, 0.495517, 0.646052 -621, 0.574221, 0.078284, 0.496301, 0.646396 -622, 0.573245, 0.077650, 0.497083, 0.646738 -623, 0.572269, 0.077015, 0.497863, 0.647077 -624, 0.571294, 0.076377, 0.498643, 0.647414 -625, 0.570319, 0.075737, 0.499420, 0.647750 -626, 0.569345, 0.075095, 0.500197, 0.648082 -627, 0.568370, 0.074450, 0.500972, 0.648413 -628, 0.567397, 0.073804, 0.501745, 0.648742 -629, 0.566424, 0.073155, 0.502517, 0.649068 -630, 0.565451, 0.072504, 0.503288, 0.649392 -631, 0.564478, 0.071851, 0.504057, 0.649714 -632, 0.563506, 0.071196, 0.504825, 0.650034 -633, 0.562535, 0.070539, 0.505591, 0.650351 -634, 0.561564, 0.069880, 0.506355, 0.650667 -635, 0.560593, 0.069218, 0.507119, 0.650980 -636, 0.559623, 0.068555, 0.507880, 0.651291 -637, 0.558653, 0.067889, 0.508640, 0.651600 -638, 0.557684, 0.067222, 0.509399, 0.651907 -639, 0.556715, 0.066552, 0.510156, 0.652211 -640, 0.555747, 0.065880, 0.510912, 0.652514 -641, 0.554779, 0.065206, 0.511666, 0.652814 -642, 0.553812, 0.064530, 0.512419, 0.653112 -643, 0.552845, 0.063852, 0.513170, 0.653408 -644, 0.551879, 0.063172, 0.513920, 0.653702 -645, 0.550913, 0.062489, 0.514668, 0.653993 -646, 0.549947, 0.061805, 0.515414, 0.654283 -647, 0.548982, 0.061118, 0.516159, 0.654570 -648, 0.548018, 0.060430, 0.516903, 0.654856 -649, 0.547054, 0.059739, 0.517645, 0.655139 -650, 0.546091, 0.059047, 0.518385, 0.655420 -651, 0.545128, 0.058352, 0.519124, 0.655699 -652, 0.544166, 0.057655, 0.519861, 0.655976 -653, 0.543204, 0.056957, 0.520596, 0.656250 -654, 0.542243, 0.056256, 0.521330, 0.656523 -655, 0.541283, 0.055553, 0.522063, 0.656793 -656, 0.540323, 0.054848, 0.522794, 0.657062 -657, 0.539363, 0.054142, 0.523523, 0.657328 -658, 0.538404, 0.053433, 0.524250, 0.657592 -659, 0.537446, 0.052722, 0.524976, 0.657854 -660, 0.536488, 0.052009, 0.525701, 0.658114 -661, 0.535531, 0.051294, 0.526424, 0.658372 -662, 0.534574, 0.050577, 0.527145, 0.658628 -663, 0.533618, 0.049858, 0.527864, 0.658882 -664, 0.532663, 0.049138, 0.528582, 0.659133 -665, 0.531708, 0.048415, 0.529298, 0.659383 -666, 0.530754, 0.047690, 0.530013, 0.659630 -667, 0.529800, 0.046963, 0.530726, 0.659876 -668, 0.528847, 0.046234, 0.531437, 0.660119 -669, 0.527895, 0.045504, 0.532147, 0.660360 -670, 0.526943, 0.044771, 0.532855, 0.660600 -671, 0.525992, 0.044036, 0.533561, 0.660837 -672, 0.525042, 0.043300, 0.534266, 0.661072 -673, 0.524092, 0.042561, 0.534969, 0.661305 -674, 0.523143, 0.041821, 0.535670, 0.661536 -675, 0.522195, 0.041079, 0.536370, 0.661765 -676, 0.521247, 0.040334, 0.537067, 0.661992 -677, 0.520300, 0.039588, 0.537764, 0.662217 -678, 0.519353, 0.038840, 0.538458, 0.662440 -679, 0.518407, 0.038090, 0.539151, 0.662661 -680, 0.517462, 0.037338, 0.539842, 0.662880 -681, 0.516518, 0.036584, 0.540531, 0.663097 -682, 0.515574, 0.035828, 0.541219, 0.663311 -683, 0.514631, 0.035070, 0.541905, 0.663524 -684, 0.513689, 0.034311, 0.542589, 0.663735 -685, 0.512747, 0.033549, 0.543271, 0.663944 -686, 0.511806, 0.032786, 0.543952, 0.664151 -687, 0.510866, 0.032021, 0.544631, 0.664356 -688, 0.509926, 0.031253, 0.545308, 0.664558 -689, 0.508987, 0.030484, 0.545983, 0.664759 -690, 0.508049, 0.029714, 0.546657, 0.664958 -691, 0.507112, 0.028941, 0.547329, 0.665155 -692, 0.506175, 0.028166, 0.547999, 0.665350 -693, 0.505239, 0.027390, 0.548667, 0.665543 -694, 0.504304, 0.026612, 0.549334, 0.665734 -695, 0.503370, 0.025832, 0.549999, 0.665923 -696, 0.502436, 0.025050, 0.550662, 0.666110 -697, 0.501503, 0.024266, 0.551323, 0.666295 -698, 0.500571, 0.023480, 0.551982, 0.666478 -699, 0.499640, 0.022693, 0.552640, 0.666659 -700, 0.498709, 0.021904, 0.553296, 0.666838 -701, 0.497779, 0.021113, 0.553950, 0.667016 -702, 0.496850, 0.020320, 0.554602, 0.667191 -703, 0.495922, 0.019525, 0.555252, 0.667364 -704, 0.494995, 0.018729, 0.555900, 0.667536 -705, 0.494068, 0.017931, 0.556547, 0.667705 -706, 0.493142, 0.017131, 0.557192, 0.667873 -707, 0.492217, 0.016329, 0.557835, 0.668039 -708, 0.491293, 0.015525, 0.558476, 0.668202 -709, 0.490370, 0.014720, 0.559115, 0.668364 -710, 0.489447, 0.013913, 0.559753, 0.668524 -711, 0.488525, 0.013104, 0.560389, 0.668682 -712, 0.487604, 0.012293, 0.561022, 0.668838 -713, 0.486684, 0.011481, 0.561654, 0.668993 -714, 0.485765, 0.010667, 0.562284, 0.669145 -715, 0.484847, 0.009851, 0.562912, 0.669296 -716, 0.483929, 0.009034, 0.563538, 0.669444 -717, 0.483012, 0.008214, 0.564163, 0.669591 -718, 0.482096, 0.007393, 0.564785, 0.669736 -719, 0.481181, 0.006571, 0.565406, 0.669879 -720, 0.480267, 0.005746, 0.566025, 0.670020 -721, 0.479354, 0.004920, 0.566641, 0.670159 -722, 0.478441, 0.004092, 0.567256, 0.670296 -723, 0.477530, 0.003263, 0.567869, 0.670432 -724, 0.476619, 0.002431, 0.568480, 0.670566 -725, 0.475709, 0.001599, 0.569090, 0.670698 -726, 0.474801, 0.000764, 0.569697, 0.670827 -727, 0.473893, -0.000072, 0.570302, 0.670956 -728, 0.472985, -0.000910, 0.570905, 0.671082 -729, 0.472079, -0.001750, 0.571507, 0.671206 -730, 0.471174, -0.002591, 0.572106, 0.671329 -731, 0.470269, -0.003434, 0.572704, 0.671450 -732, 0.469366, -0.004279, 0.573300, 0.671569 -733, 0.468463, -0.005125, 0.573893, 0.671686 -734, 0.467562, -0.005973, 0.574485, 0.671802 -735, 0.466661, -0.006822, 0.575075, 0.671915 -736, 0.465761, -0.007673, 0.575663, 0.672027 -737, 0.464862, -0.008526, 0.576248, 0.672137 -738, 0.463965, -0.009380, 0.576832, 0.672245 -739, 0.463068, -0.010236, 0.577414, 0.672351 -740, 0.462172, -0.011094, 0.577994, 0.672456 -741, 0.461277, -0.011953, 0.578572, 0.672559 -742, 0.460382, -0.012813, 0.579148, 0.672660 -743, 0.459489, -0.013676, 0.579722, 0.672759 -744, 0.458597, -0.014540, 0.580294, 0.672857 -745, 0.457706, -0.015405, 0.580864, 0.672953 -746, 0.456816, -0.016272, 0.581432, 0.673047 -747, 0.455926, -0.017141, 0.581998, 0.673139 -748, 0.455038, -0.018011, 0.582562, 0.673229 -749, 0.454151, -0.018883, 0.583124, 0.673318 -750, 0.453264, -0.019756, 0.583684, 0.673405 -751, 0.452379, -0.020631, 0.584242, 0.673490 -752, 0.451495, -0.021507, 0.584797, 0.673574 -753, 0.450611, -0.022385, 0.585351, 0.673656 -754, 0.449729, -0.023264, 0.585903, 0.673736 -755, 0.448848, -0.024145, 0.586453, 0.673814 -756, 0.447967, -0.025028, 0.587001, 0.673891 -757, 0.447088, -0.025912, 0.587546, 0.673966 -758, 0.446210, -0.026797, 0.588090, 0.674039 -759, 0.445332, -0.027684, 0.588632, 0.674111 -760, 0.444456, -0.028573, 0.589171, 0.674181 -761, 0.443581, -0.029463, 0.589709, 0.674249 -762, 0.442707, -0.030354, 0.590244, 0.674315 -763, 0.441834, -0.031247, 0.590778, 0.674380 -764, 0.440961, -0.032141, 0.591309, 0.674443 -765, 0.440090, -0.033037, 0.591838, 0.674505 -766, 0.439220, -0.033935, 0.592366, 0.674564 -767, 0.438351, -0.034833, 0.592891, 0.674622 -768, 0.437483, -0.035733, 0.593414, 0.674679 -769, 0.436617, -0.036635, 0.593935, 0.674734 -770, 0.435751, -0.037538, 0.594453, 0.674787 -771, 0.434886, -0.038443, 0.594970, 0.674838 -772, 0.434022, -0.039349, 0.595485, 0.674888 -773, 0.433160, -0.040256, 0.595998, 0.674936 -774, 0.432298, -0.041165, 0.596508, 0.674983 -775, 0.431438, -0.042075, 0.597016, 0.675028 -776, 0.430578, -0.042987, 0.597523, 0.675071 -777, 0.429720, -0.043900, 0.598027, 0.675113 -778, 0.428863, -0.044814, 0.598529, 0.675153 -779, 0.428007, -0.045730, 0.599029, 0.675191 -780, 0.427152, -0.046647, 0.599527, 0.675228 -781, 0.426298, -0.047565, 0.600022, 0.675264 -782, 0.425445, -0.048485, 0.600516, 0.675297 -783, 0.424594, -0.049406, 0.601007, 0.675329 -784, 0.423743, -0.050329, 0.601496, 0.675360 -785, 0.422894, -0.051253, 0.601984, 0.675389 -786, 0.422045, -0.052178, 0.602469, 0.675416 -787, 0.421198, -0.053105, 0.602951, 0.675442 -788, 0.420352, -0.054033, 0.603432, 0.675466 -789, 0.419507, -0.054962, 0.603911, 0.675489 -790, 0.418663, -0.055893, 0.604387, 0.675510 -791, 0.417821, -0.056825, 0.604861, 0.675529 -792, 0.416979, -0.057758, 0.605333, 0.675547 -793, 0.416139, -0.058692, 0.605803, 0.675564 -794, 0.415299, -0.059628, 0.606271, 0.675578 -795, 0.414461, -0.060565, 0.606737, 0.675592 -796, 0.413624, -0.061504, 0.607200, 0.675604 -797, 0.412789, -0.062443, 0.607661, 0.675614 -798, 0.411954, -0.063384, 0.608120, 0.675623 -799, 0.411120, -0.064327, 0.608577, 0.675630 -800, 0.410288, -0.065270, 0.609032, 0.675636 -801, 0.409457, -0.066215, 0.609485, 0.675640 -802, 0.408627, -0.067161, 0.609935, 0.675643 -803, 0.407798, -0.068108, 0.610383, 0.675644 -804, 0.406970, -0.069057, 0.610829, 0.675644 -805, 0.406144, -0.070006, 0.611273, 0.675642 -806, 0.405319, -0.070957, 0.611714, 0.675639 -807, 0.404495, -0.071909, 0.612154, 0.675634 -808, 0.403672, -0.072863, 0.612591, 0.675628 -809, 0.402850, -0.073817, 0.613026, 0.675620 -810, 0.402030, -0.074773, 0.613458, 0.675611 -811, 0.401210, -0.075730, 0.613889, 0.675600 -812, 0.400392, -0.076688, 0.614317, 0.675588 -813, 0.399575, -0.077648, 0.614743, 0.675575 -814, 0.398759, -0.078608, 0.615167, 0.675560 -815, 0.397945, -0.079570, 0.615589, 0.675544 -816, 0.397132, -0.080533, 0.616008, 0.675526 -817, 0.396320, -0.081497, 0.616425, 0.675507 -818, 0.395509, -0.082462, 0.616840, 0.675486 -819, 0.394699, -0.083428, 0.617253, 0.675464 -820, 0.393891, -0.084396, 0.617663, 0.675440 -821, 0.393084, -0.085364, 0.618071, 0.675415 -822, 0.392278, -0.086334, 0.618477, 0.675389 -823, 0.391473, -0.087305, 0.618881, 0.675361 -824, 0.390669, -0.088277, 0.619283, 0.675332 -825, 0.389867, -0.089250, 0.619682, 0.675302 -826, 0.389066, -0.090224, 0.620079, 0.675270 -827, 0.388266, -0.091199, 0.620473, 0.675237 -828, 0.387468, -0.092176, 0.620866, 0.675202 -829, 0.386671, -0.093153, 0.621256, 0.675166 -830, 0.385875, -0.094132, 0.621644, 0.675129 -831, 0.385080, -0.095111, 0.622030, 0.675090 -832, 0.384286, -0.096092, 0.622413, 0.675050 -833, 0.383494, -0.097074, 0.622794, 0.675009 -834, 0.382703, -0.098056, 0.623173, 0.674966 -835, 0.381913, -0.099040, 0.623549, 0.674922 -836, 0.381125, -0.100025, 0.623924, 0.674876 -837, 0.380338, -0.101011, 0.624296, 0.674829 -838, 0.379552, -0.101998, 0.624665, 0.674781 -839, 0.378767, -0.102986, 0.625033, 0.674732 -840, 0.377984, -0.103975, 0.625398, 0.674681 -841, 0.377202, -0.104965, 0.625761, 0.674629 -842, 0.376421, -0.105956, 0.626121, 0.674576 -843, 0.375642, -0.106948, 0.626480, 0.674521 -844, 0.374863, -0.107941, 0.626835, 0.674465 -845, 0.374087, -0.108935, 0.627189, 0.674408 -846, 0.373311, -0.109930, 0.627541, 0.674349 -847, 0.372537, -0.110926, 0.627890, 0.674290 -848, 0.371764, -0.111923, 0.628236, 0.674229 -849, 0.370992, -0.112921, 0.628581, 0.674166 -850, 0.370221, -0.113920, 0.628923, 0.674103 -851, 0.369452, -0.114920, 0.629263, 0.674038 -852, 0.368684, -0.115920, 0.629600, 0.673972 -853, 0.367918, -0.116922, 0.629935, 0.673904 -854, 0.367153, -0.117925, 0.630268, 0.673836 -855, 0.366389, -0.118928, 0.630599, 0.673766 -856, 0.365626, -0.119933, 0.630927, 0.673695 -857, 0.364865, -0.120938, 0.631253, 0.673622 -858, 0.364105, -0.121944, 0.631577, 0.673549 -859, 0.363346, -0.122952, 0.631898, 0.673474 -860, 0.362589, -0.123960, 0.632217, 0.673398 -861, 0.361833, -0.124969, 0.632533, 0.673321 -862, 0.361079, -0.125979, 0.632848, 0.673243 -863, 0.360325, -0.126989, 0.633160, 0.673163 -864, 0.359573, -0.128001, 0.633469, 0.673082 -865, 0.358823, -0.129013, 0.633776, 0.673000 -866, 0.358073, -0.130027, 0.634081, 0.672917 -867, 0.357326, -0.131041, 0.634384, 0.672833 -868, 0.356579, -0.132056, 0.634684, 0.672747 -869, 0.355834, -0.133072, 0.634982, 0.672661 -870, 0.355090, -0.134088, 0.635278, 0.672573 -871, 0.354347, -0.135106, 0.635571, 0.672484 -872, 0.353606, -0.136124, 0.635862, 0.672394 -873, 0.352866, -0.137143, 0.636150, 0.672302 -874, 0.352128, -0.138163, 0.636436, 0.672210 -875, 0.351391, -0.139184, 0.636720, 0.672116 -876, 0.350655, -0.140206, 0.637001, 0.672022 -877, 0.349920, -0.141228, 0.637280, 0.671926 -878, 0.349187, -0.142251, 0.637557, 0.671829 -879, 0.348456, -0.143275, 0.637831, 0.671731 -880, 0.347725, -0.144300, 0.638103, 0.671632 -881, 0.346996, -0.145325, 0.638373, 0.671531 -882, 0.346269, -0.146351, 0.638640, 0.671430 -883, 0.345542, -0.147378, 0.638905, 0.671327 -884, 0.344818, -0.148406, 0.639168, 0.671224 -885, 0.344094, -0.149434, 0.639428, 0.671119 -886, 0.343372, -0.150463, 0.639685, 0.671013 -887, 0.342651, -0.151493, 0.639941, 0.670907 -888, 0.341932, -0.152524, 0.640194, 0.670799 -889, 0.341214, -0.153555, 0.640444, 0.670690 -890, 0.340497, -0.154587, 0.640693, 0.670580 -891, 0.339782, -0.155620, 0.640939, 0.670469 -892, 0.339068, -0.156653, 0.641182, 0.670357 -893, 0.338356, -0.157687, 0.641423, 0.670244 -894, 0.337645, -0.158722, 0.641662, 0.670129 -895, 0.336935, -0.159757, 0.641898, 0.670014 -896, 0.336227, -0.160793, 0.642132, 0.669898 -897, 0.335520, -0.161830, 0.642364, 0.669781 -898, 0.334815, -0.162868, 0.642593, 0.669662 -899, 0.334111, -0.163906, 0.642820, 0.669543 -900, 0.333408, -0.164944, 0.643044, 0.669423 -901, 0.332707, -0.165984, 0.643266, 0.669301 -902, 0.332007, -0.167024, 0.643486, 0.669179 -903, 0.331309, -0.168064, 0.643703, 0.669056 -904, 0.330612, -0.169105, 0.643918, 0.668932 -905, 0.329916, -0.170147, 0.644130, 0.668806 -906, 0.329222, -0.171190, 0.644340, 0.668680 -907, 0.328529, -0.172233, 0.644548, 0.668553 -908, 0.327838, -0.173276, 0.644753, 0.668425 -909, 0.327148, -0.174320, 0.644956, 0.668296 -910, 0.326459, -0.175365, 0.645156, 0.668166 -911, 0.325772, -0.176410, 0.645354, 0.668035 -912, 0.325086, -0.177456, 0.645550, 0.667903 -913, 0.324402, -0.178503, 0.645743, 0.667770 -914, 0.323719, -0.179550, 0.645933, 0.667636 -915, 0.323038, -0.180597, 0.646122, 0.667501 -916, 0.322358, -0.181645, 0.646308, 0.667365 -917, 0.321679, -0.182694, 0.646491, 0.667229 -918, 0.321002, -0.183743, 0.646673, 0.667091 -919, 0.320326, -0.184793, 0.646851, 0.666953 -920, 0.319652, -0.185843, 0.647028, 0.666814 -921, 0.318979, -0.186894, 0.647201, 0.666673 -922, 0.318308, -0.187945, 0.647373, 0.666532 -923, 0.317638, -0.188997, 0.647542, 0.666390 -924, 0.316969, -0.190049, 0.647709, 0.666247 -925, 0.316302, -0.191101, 0.647873, 0.666104 -926, 0.315636, -0.192155, 0.648035, 0.665959 -927, 0.314972, -0.193208, 0.648194, 0.665814 -928, 0.314309, -0.194262, 0.648351, 0.665667 -929, 0.313647, -0.195317, 0.648506, 0.665520 -930, 0.312988, -0.196372, 0.648658, 0.665372 -931, 0.312329, -0.197427, 0.648808, 0.665223 -932, 0.311672, -0.198483, 0.648955, 0.665073 -933, 0.311016, -0.199539, 0.649100, 0.664923 -934, 0.310362, -0.200596, 0.649242, 0.664771 -935, 0.309709, -0.201653, 0.649382, 0.664619 -936, 0.309058, -0.202711, 0.649520, 0.664466 -937, 0.308408, -0.203769, 0.649655, 0.664312 -938, 0.307760, -0.204827, 0.649788, 0.664158 -939, 0.307113, -0.205886, 0.649918, 0.664002 -940, 0.306467, -0.206945, 0.650046, 0.663846 -941, 0.305823, -0.208004, 0.650172, 0.663689 -942, 0.305180, -0.209064, 0.650295, 0.663531 -943, 0.304539, -0.210124, 0.650416, 0.663373 -944, 0.303900, -0.211185, 0.650534, 0.663213 -945, 0.303261, -0.212246, 0.650650, 0.663053 -946, 0.302624, -0.213307, 0.650763, 0.662892 -947, 0.301989, -0.214369, 0.650874, 0.662731 -948, 0.301355, -0.215431, 0.650982, 0.662568 -949, 0.300723, -0.216493, 0.651088, 0.662405 -950, 0.300092, -0.217556, 0.651192, 0.662241 -951, 0.299462, -0.218619, 0.651293, 0.662077 -952, 0.298834, -0.219682, 0.651392, 0.661911 -953, 0.298208, -0.220745, 0.651488, 0.661745 -954, 0.297582, -0.221809, 0.651582, 0.661578 -955, 0.296959, -0.222873, 0.651674, 0.661411 -956, 0.296337, -0.223938, 0.651763, 0.661242 -957, 0.295716, -0.225002, 0.651850, 0.661074 -958, 0.295096, -0.226067, 0.651934, 0.660904 -959, 0.294479, -0.227133, 0.652016, 0.660734 -960, 0.293862, -0.228198, 0.652095, 0.660563 -961, 0.293247, -0.229264, 0.652172, 0.660391 -962, 0.292634, -0.230330, 0.652246, 0.660218 -963, 0.292022, -0.231396, 0.652318, 0.660045 -964, 0.291411, -0.232462, 0.652388, 0.659872 -965, 0.290802, -0.233529, 0.652455, 0.659697 -966, 0.290195, -0.234596, 0.652520, 0.659522 -967, 0.289589, -0.235663, 0.652582, 0.659346 -968, 0.288984, -0.236730, 0.652642, 0.659170 -969, 0.288381, -0.237798, 0.652700, 0.658993 -970, 0.287779, -0.238866, 0.652755, 0.658815 -971, 0.287179, -0.239933, 0.652807, 0.658637 -972, 0.286580, -0.241002, 0.652857, 0.658458 -973, 0.285983, -0.242070, 0.652905, 0.658279 -974, 0.285387, -0.243138, 0.652950, 0.658099 -975, 0.284793, -0.244207, 0.652993, 0.657918 -976, 0.284200, -0.245275, 0.653034, 0.657737 -977, 0.283608, -0.246344, 0.653072, 0.657555 -978, 0.283018, -0.247413, 0.653107, 0.657372 -979, 0.282430, -0.248482, 0.653140, 0.657189 -980, 0.281843, -0.249552, 0.653171, 0.657005 -981, 0.281257, -0.250621, 0.653199, 0.656821 -982, 0.280673, -0.251691, 0.653225, 0.656636 -983, 0.280091, -0.252760, 0.653249, 0.656451 -984, 0.279510, -0.253830, 0.653270, 0.656265 -985, 0.278930, -0.254900, 0.653288, 0.656078 -986, 0.278352, -0.255970, 0.653304, 0.655891 -987, 0.277775, -0.257040, 0.653318, 0.655703 -988, 0.277200, -0.258110, 0.653329, 0.655515 -989, 0.276626, -0.259180, 0.653338, 0.655327 -990, 0.276054, -0.260250, 0.653345, 0.655137 -991, 0.275483, -0.261321, 0.653349, 0.654948 -992, 0.274914, -0.262391, 0.653350, 0.654757 -993, 0.274346, -0.263461, 0.653349, 0.654566 -994, 0.273780, -0.264532, 0.653346, 0.654375 -995, 0.273215, -0.265602, 0.653340, 0.654183 -996, 0.272651, -0.266673, 0.653332, 0.653991 -997, 0.272089, -0.267743, 0.653322, 0.653798 -998, 0.271529, -0.268814, 0.653309, 0.653605 -999, 0.270970, -0.269884, 0.653293, 0.653411 -1000, 0.270412, -0.270955, 0.653275, 0.653217 -1001, 0.269856, -0.272025, 0.653255, 0.653022 -1002, 0.269302, -0.273096, 0.653232, 0.652827 -1003, 0.268749, -0.274166, 0.653207, 0.652631 -1004, 0.268197, -0.275237, 0.653180, 0.652435 -1005, 0.267647, -0.276307, 0.653150, 0.652238 -1006, 0.267098, -0.277378, 0.653117, 0.652041 -1007, 0.266551, -0.278448, 0.653083, 0.651844 -1008, 0.266005, -0.279519, 0.653045, 0.651646 -1009, 0.265461, -0.280589, 0.653006, 0.651447 -1010, 0.264918, -0.281659, 0.652964, 0.651249 -1011, 0.264377, -0.282729, 0.652919, 0.651049 -1012, 0.263837, -0.283799, 0.652873, 0.650850 -1013, 0.263298, -0.284869, 0.652823, 0.650650 -1014, 0.262762, -0.285939, 0.652772, 0.650449 -1015, 0.262226, -0.287009, 0.652717, 0.650249 -1016, 0.261692, -0.288079, 0.652661, 0.650047 -1017, 0.261160, -0.289149, 0.652602, 0.649846 -1018, 0.260629, -0.290218, 0.652541, 0.649644 -1019, 0.260099, -0.291287, 0.652477, 0.649441 -1020, 0.259571, -0.292357, 0.652411, 0.649239 -1021, 0.259044, -0.293426, 0.652342, 0.649035 -1022, 0.258519, -0.294495, 0.652271, 0.648832 -1023, 0.257995, -0.295564, 0.652198, 0.648628 -1024, 0.257473, -0.296633, 0.652122, 0.648424 -1025, 0.256952, -0.297701, 0.652044, 0.648219 -1026, 0.256433, -0.298770, 0.651963, 0.648014 -1027, 0.255915, -0.299838, 0.651880, 0.647809 -1028, 0.255399, -0.300906, 0.651795, 0.647604 -1029, 0.254884, -0.301974, 0.651707, 0.647398 -1030, 0.254370, -0.303041, 0.651617, 0.647191 -1031, 0.253858, -0.304109, 0.651525, 0.646985 -1032, 0.253348, -0.305176, 0.651430, 0.646778 -1033, 0.252839, -0.306243, 0.651332, 0.646571 -1034, 0.252331, -0.307310, 0.651232, 0.646363 -1035, 0.251825, -0.308377, 0.651130, 0.646156 -1036, 0.251321, -0.309444, 0.651026, 0.645947 -1037, 0.250817, -0.310510, 0.650919, 0.645739 -1038, 0.250316, -0.311576, 0.650810, 0.645531 -1039, 0.249815, -0.312642, 0.650698, 0.645322 -1040, 0.249316, -0.313707, 0.650584, 0.645112 -1041, 0.248819, -0.314772, 0.650467, 0.644903 -1042, 0.248323, -0.315837, 0.650348, 0.644693 -1043, 0.247829, -0.316902, 0.650227, 0.644483 -1044, 0.247336, -0.317967, 0.650104, 0.644273 -1045, 0.246844, -0.319031, 0.649978, 0.644063 -1046, 0.246354, -0.320095, 0.649849, 0.643852 -1047, 0.245865, -0.321158, 0.649718, 0.643641 -1048, 0.245378, -0.322222, 0.649585, 0.643430 -1049, 0.244892, -0.323285, 0.649450, 0.643218 -1050, 0.244408, -0.324347, 0.649312, 0.643007 -1051, 0.243925, -0.325410, 0.649172, 0.642795 -1052, 0.243444, -0.326472, 0.649029, 0.642583 -1053, 0.242964, -0.327534, 0.648884, 0.642371 -1054, 0.242485, -0.328595, 0.648737, 0.642158 -1055, 0.242008, -0.329656, 0.648587, 0.641945 -1056, 0.241532, -0.330717, 0.648435, 0.641733 -1057, 0.241058, -0.331777, 0.648280, 0.641519 -1058, 0.240586, -0.332837, 0.648124, 0.641306 -1059, 0.240114, -0.333897, 0.647964, 0.641093 -1060, 0.239644, -0.334956, 0.647803, 0.640879 -1061, 0.239176, -0.336015, 0.647639, 0.640666 -1062, 0.238709, -0.337074, 0.647473, 0.640452 -1063, 0.238243, -0.338132, 0.647304, 0.640238 -1064, 0.237779, -0.339190, 0.647133, 0.640023 -1065, 0.237317, -0.340247, 0.646960, 0.639809 -1066, 0.236855, -0.341304, 0.646784, 0.639595 -1067, 0.236395, -0.342361, 0.646606, 0.639380 -1068, 0.235937, -0.343417, 0.646426, 0.639165 -1069, 0.235480, -0.344473, 0.646243, 0.638950 -1070, 0.235025, -0.345528, 0.646058, 0.638735 -1071, 0.234571, -0.346583, 0.645871, 0.638520 -1072, 0.234118, -0.347637, 0.645681, 0.638305 -1073, 0.233667, -0.348691, 0.645489, 0.638090 -1074, 0.233217, -0.349745, 0.645295, 0.637874 -1075, 0.232768, -0.350798, 0.645098, 0.637658 -1076, 0.232321, -0.351850, 0.644899, 0.637443 -1077, 0.231876, -0.352903, 0.644698, 0.637227 -1078, 0.231432, -0.353954, 0.644494, 0.637011 -1079, 0.230989, -0.355005, 0.644288, 0.636795 -1080, 0.230548, -0.356056, 0.644080, 0.636579 -1081, 0.230108, -0.357106, 0.643869, 0.636363 -1082, 0.229669, -0.358156, 0.643656, 0.636147 -1083, 0.229232, -0.359205, 0.643441, 0.635931 -1084, 0.228797, -0.360254, 0.643223, 0.635715 -1085, 0.228362, -0.361302, 0.643003, 0.635499 -1086, 0.227929, -0.362350, 0.642781, 0.635282 -1087, 0.227498, -0.363397, 0.642556, 0.635066 -1088, 0.227068, -0.364443, 0.642329, 0.634850 -1089, 0.226639, -0.365489, 0.642100, 0.634633 -1090, 0.226212, -0.366535, 0.641869, 0.634417 -1091, 0.225786, -0.367580, 0.641635, 0.634200 -1092, 0.225362, -0.368624, 0.641399, 0.633984 -1093, 0.224939, -0.369668, 0.641161, 0.633767 -1094, 0.224517, -0.370711, 0.640920, 0.633551 -1095, 0.224097, -0.371754, 0.640677, 0.633335 -1096, 0.223678, -0.372796, 0.640432, 0.633118 -1097, 0.223261, -0.373837, 0.640184, 0.632902 -1098, 0.222845, -0.374878, 0.639934, 0.632685 -1099, 0.222430, -0.375919, 0.639682, 0.632469 -1100, 0.222017, -0.376958, 0.639428, 0.632252 -1101, 0.221605, -0.377997, 0.639171, 0.632036 -1102, 0.221194, -0.379036, 0.638912, 0.631820 -1103, 0.220785, -0.380074, 0.638651, 0.631603 -1104, 0.220378, -0.381111, 0.638388, 0.631387 -1105, 0.219971, -0.382148, 0.638122, 0.631171 -1106, 0.219566, -0.383184, 0.637854, 0.630955 -1107, 0.219163, -0.384219, 0.637583, 0.630738 -1108, 0.218760, -0.385253, 0.637311, 0.630522 -1109, 0.218359, -0.386287, 0.637036, 0.630306 -1110, 0.217960, -0.387321, 0.636759, 0.630090 -1111, 0.217562, -0.388353, 0.636480, 0.629875 -1112, 0.217165, -0.389385, 0.636198, 0.629659 -1113, 0.216770, -0.390417, 0.635914, 0.629443 -1114, 0.216376, -0.391447, 0.635628, 0.629228 -1115, 0.215983, -0.392477, 0.635340, 0.629012 -1116, 0.215592, -0.393507, 0.635049, 0.628797 -1117, 0.215202, -0.394535, 0.634756, 0.628581 -1118, 0.214813, -0.395563, 0.634461, 0.628366 -1119, 0.214426, -0.396590, 0.634164, 0.628151 -1120, 0.214040, -0.397617, 0.633864, 0.627936 -1121, 0.213655, -0.398642, 0.633563, 0.627721 -1122, 0.213272, -0.399667, 0.633259, 0.627507 -1123, 0.212890, -0.400691, 0.632952, 0.627292 -1124, 0.212510, -0.401715, 0.632644, 0.627078 -1125, 0.212131, -0.402738, 0.632333, 0.626863 -1126, 0.211753, -0.403760, 0.632020, 0.626649 -1127, 0.211376, -0.404781, 0.631705, 0.626435 -1128, 0.211001, -0.405801, 0.631388, 0.626221 -1129, 0.210627, -0.406821, 0.631069, 0.626008 -1130, 0.210255, -0.407840, 0.630747, 0.625794 -1131, 0.209884, -0.408858, 0.630423, 0.625581 -1132, 0.209514, -0.409875, 0.630097, 0.625367 -1133, 0.209145, -0.410892, 0.629768, 0.625154 -1134, 0.208778, -0.411908, 0.629438, 0.624942 -1135, 0.208412, -0.412923, 0.629105, 0.624729 -1136, 0.208048, -0.413937, 0.628770, 0.624516 -1137, 0.207685, -0.414950, 0.628433, 0.624304 -1138, 0.207323, -0.415963, 0.628094, 0.624092 -1139, 0.206962, -0.416974, 0.627752, 0.623880 -1140, 0.206603, -0.417985, 0.627408, 0.623668 -1141, 0.206245, -0.418995, 0.627063, 0.623457 -1142, 0.205888, -0.420004, 0.626715, 0.623246 -1143, 0.205533, -0.421013, 0.626364, 0.623035 -1144, 0.205179, -0.422020, 0.626012, 0.622824 -1145, 0.204826, -0.423027, 0.625657, 0.622613 -1146, 0.204475, -0.424033, 0.625301, 0.622403 -1147, 0.204125, -0.425037, 0.624942, 0.622193 -1148, 0.203776, -0.426042, 0.624581, 0.621983 -1149, 0.203428, -0.427045, 0.624218, 0.621773 -1150, 0.203082, -0.428047, 0.623852, 0.621564 -1151, 0.202737, -0.429048, 0.623485, 0.621355 -1152, 0.202393, -0.430049, 0.623115, 0.621146 -1153, 0.202051, -0.431048, 0.622743, 0.620937 -1154, 0.201710, -0.432047, 0.622370, 0.620729 -1155, 0.201370, -0.433045, 0.621993, 0.620521 -1156, 0.201031, -0.434042, 0.621615, 0.620313 -1157, 0.200694, -0.435038, 0.621235, 0.620106 -1158, 0.200358, -0.436033, 0.620852, 0.619899 -1159, 0.200023, -0.437027, 0.620468, 0.619692 -1160, 0.199689, -0.438020, 0.620081, 0.619485 -1161, 0.199357, -0.439012, 0.619692, 0.619279 -1162, 0.199026, -0.440004, 0.619301, 0.619073 -1163, 0.198696, -0.440994, 0.618908, 0.618867 -1164, 0.198368, -0.441983, 0.618513, 0.618662 -1165, 0.198041, -0.442972, 0.618116, 0.618457 -1166, 0.197715, -0.443959, 0.617717, 0.618252 -1167, 0.197390, -0.444946, 0.617315, 0.618047 -1168, 0.197067, -0.445931, 0.616912, 0.617843 -1169, 0.196744, -0.446916, 0.616506, 0.617639 -1170, 0.196423, -0.447899, 0.616098, 0.617436 -1171, 0.196104, -0.448882, 0.615688, 0.617233 -1172, 0.195785, -0.449863, 0.615277, 0.617030 -1173, 0.195468, -0.450844, 0.614863, 0.616828 -1174, 0.195152, -0.451823, 0.614446, 0.616626 -1175, 0.194837, -0.452802, 0.614028, 0.616424 -1176, 0.194523, -0.453779, 0.613608, 0.616223 -1177, 0.194211, -0.454756, 0.613186, 0.616022 -1178, 0.193900, -0.455731, 0.612761, 0.615821 -1179, 0.193590, -0.456705, 0.612335, 0.615621 -1180, 0.193281, -0.457679, 0.611907, 0.615421 -1181, 0.192974, -0.458651, 0.611476, 0.615221 -1182, 0.192667, -0.459622, 0.611043, 0.615022 -1183, 0.192362, -0.460593, 0.610609, 0.614824 -1184, 0.192058, -0.461562, 0.610172, 0.614625 -1185, 0.191756, -0.462530, 0.609733, 0.614427 -1186, 0.191454, -0.463497, 0.609293, 0.614230 -1187, 0.191154, -0.464463, 0.608850, 0.614033 -1188, 0.190855, -0.465428, 0.608405, 0.613836 -1189, 0.190557, -0.466392, 0.607958, 0.613640 -1190, 0.190260, -0.467354, 0.607509, 0.613444 -1191, 0.189964, -0.468316, 0.607059, 0.613248 -1192, 0.189670, -0.469276, 0.606606, 0.613053 -1193, 0.189377, -0.470236, 0.606151, 0.612859 -1194, 0.189085, -0.471194, 0.605694, 0.612665 -1195, 0.188794, -0.472151, 0.605235, 0.612471 -1196, 0.188504, -0.473107, 0.604774, 0.612278 -1197, 0.188216, -0.474062, 0.604311, 0.612085 -1198, 0.187929, -0.475016, 0.603846, 0.611892 -1199, 0.187642, -0.475969, 0.603379, 0.611700 -1200, 0.187357, -0.476921, 0.602910, 0.611509 -1201, 0.187074, -0.477871, 0.602440, 0.611318 -1202, 0.186791, -0.478820, 0.601967, 0.611127 -1203, 0.186509, -0.479768, 0.601492, 0.610937 -1204, 0.186229, -0.480715, 0.601015, 0.610748 -1205, 0.185950, -0.481661, 0.600536, 0.610558 -1206, 0.185671, -0.482606, 0.600055, 0.610370 -1207, 0.185394, -0.483549, 0.599573, 0.610182 -1208, 0.185119, -0.484492, 0.599088, 0.609994 -1209, 0.184844, -0.485433, 0.598601, 0.609807 -1210, 0.184570, -0.486373, 0.598113, 0.609620 -1211, 0.184298, -0.487311, 0.597622, 0.609434 -1212, 0.184027, -0.488249, 0.597130, 0.609248 -1213, 0.183756, -0.489185, 0.596636, 0.609063 -1214, 0.183487, -0.490120, 0.596139, 0.608878 -1215, 0.183219, -0.491054, 0.595641, 0.608694 -1216, 0.182952, -0.491987, 0.595141, 0.608510 -1217, 0.182687, -0.492919, 0.594639, 0.608327 -1218, 0.182422, -0.493849, 0.594135, 0.608144 -1219, 0.182158, -0.494778, 0.593629, 0.607962 -1220, 0.181896, -0.495706, 0.593121, 0.607781 -1221, 0.181635, -0.496632, 0.592611, 0.607600 -1222, 0.181374, -0.497558, 0.592099, 0.607419 -1223, 0.181115, -0.498482, 0.591586, 0.607239 -1224, 0.180857, -0.499405, 0.591070, 0.607060 -1225, 0.180600, -0.500326, 0.590553, 0.606881 -1226, 0.180344, -0.501247, 0.590034, 0.606703 -1227, 0.180089, -0.502166, 0.589512, 0.606525 -1228, 0.179835, -0.503084, 0.588989, 0.606348 -1229, 0.179583, -0.504000, 0.588465, 0.606171 -1230, 0.179331, -0.504916, 0.587938, 0.605995 -1231, 0.179081, -0.505830, 0.587409, 0.605819 -1232, 0.178831, -0.506742, 0.586879, 0.605644 -1233, 0.178583, -0.507654, 0.586346, 0.605470 -1234, 0.178335, -0.508564, 0.585812, 0.605296 -1235, 0.178089, -0.509473, 0.585276, 0.605123 -1236, 0.177843, -0.510380, 0.584738, 0.604951 -1237, 0.177599, -0.511287, 0.584198, 0.604779 -1238, 0.177356, -0.512192, 0.583656, 0.604607 -1239, 0.177114, -0.513095, 0.583113, 0.604436 -1240, 0.176873, -0.513997, 0.582568, 0.604266 -1241, 0.176633, -0.514898, 0.582021, 0.604097 -1242, 0.176393, -0.515798, 0.581472, 0.603928 -1243, 0.176155, -0.516696, 0.580921, 0.603759 -1244, 0.175918, -0.517593, 0.580368, 0.603591 -1245, 0.175682, -0.518489, 0.579814, 0.603424 -1246, 0.175447, -0.519383, 0.579258, 0.603258 -1247, 0.175213, -0.520276, 0.578700, 0.603092 -1248, 0.174980, -0.521168, 0.578140, 0.602926 -1249, 0.174748, -0.522058, 0.577578, 0.602762 -1250, 0.174517, -0.522947, 0.577015, 0.602598 -1251, 0.174287, -0.523834, 0.576450, 0.602434 -1252, 0.174058, -0.524721, 0.575883, 0.602272 -1253, 0.173830, -0.525605, 0.575314, 0.602110 -1254, 0.173603, -0.526489, 0.574743, 0.601948 -1255, 0.173377, -0.527371, 0.574171, 0.601787 -1256, 0.173152, -0.528251, 0.573597, 0.601627 -1257, 0.172928, -0.529131, 0.573021, 0.601468 -1258, 0.172705, -0.530008, 0.572444, 0.601309 -1259, 0.172483, -0.530885, 0.571864, 0.601151 -1260, 0.172262, -0.531760, 0.571283, 0.600993 -1261, 0.172041, -0.532633, 0.570700, 0.600836 -1262, 0.171822, -0.533506, 0.570116, 0.600680 -1263, 0.171604, -0.534376, 0.569529, 0.600525 -1264, 0.171386, -0.535246, 0.568941, 0.600370 -1265, 0.171170, -0.536114, 0.568352, 0.600216 -1266, 0.170955, -0.536980, 0.567760, 0.600063 -1267, 0.170740, -0.537845, 0.567167, 0.599910 -1268, 0.170526, -0.538709, 0.566572, 0.599758 -1269, 0.170314, -0.539571, 0.565975, 0.599606 -1270, 0.170102, -0.540432, 0.565377, 0.599456 -1271, 0.169891, -0.541291, 0.564777, 0.599306 -1272, 0.169681, -0.542149, 0.564175, 0.599157 -1273, 0.169473, -0.543006, 0.563572, 0.599008 -1274, 0.169264, -0.543861, 0.562967, 0.598860 -1275, 0.169057, -0.544714, 0.562360, 0.598713 -1276, 0.168851, -0.545566, 0.561751, 0.598567 -1277, 0.168646, -0.546417, 0.561141, 0.598421 -1278, 0.168441, -0.547266, 0.560529, 0.598276 -1279, 0.168238, -0.548114, 0.559916, 0.598132 -1280, 0.168035, -0.548960, 0.559301, 0.597988 -1281, 0.167834, -0.549804, 0.558684, 0.597846 -1282, 0.167633, -0.550647, 0.558066, 0.597703 -1283, 0.167433, -0.551489, 0.557445, 0.597562 -1284, 0.167234, -0.552329, 0.556824, 0.597422 -1285, 0.167036, -0.553168, 0.556200, 0.597282 -1286, 0.166838, -0.554005, 0.555575, 0.597143 -1287, 0.166642, -0.554841, 0.554949, 0.597004 -1288, 0.166446, -0.555675, 0.554320, 0.596867 -1289, 0.166251, -0.556508, 0.553690, 0.596730 -1290, 0.166057, -0.557339, 0.553059, 0.596594 -1291, 0.165864, -0.558168, 0.552426, 0.596459 -1292, 0.165672, -0.558996, 0.551791, 0.596324 -1293, 0.165481, -0.559823, 0.551155, 0.596190 -1294, 0.165290, -0.560648, 0.550517, 0.596057 -1295, 0.165101, -0.561471, 0.549877, 0.595925 -1296, 0.164912, -0.562293, 0.549236, 0.595793 -1297, 0.164724, -0.563114, 0.548593, 0.595663 -1298, 0.164537, -0.563933, 0.547949, 0.595533 -1299, 0.164350, -0.564750, 0.547303, 0.595404 -1300, 0.164165, -0.565566, 0.546656, 0.595275 -1301, 0.163980, -0.566380, 0.546007, 0.595148 -1302, 0.163796, -0.567192, 0.545356, 0.595021 -1303, 0.163613, -0.568004, 0.544704, 0.594895 -1304, 0.163431, -0.568813, 0.544051, 0.594770 -1305, 0.163249, -0.569621, 0.543395, 0.594645 -1306, 0.163069, -0.570427, 0.542739, 0.594522 -1307, 0.162889, -0.571232, 0.542080, 0.594399 -1308, 0.162710, -0.572035, 0.541421, 0.594277 -1309, 0.162531, -0.572837, 0.540759, 0.594156 -1310, 0.162354, -0.573637, 0.540096, 0.594035 -1311, 0.162177, -0.574435, 0.539432, 0.593916 -1312, 0.162001, -0.575232, 0.538766, 0.593797 -1313, 0.161826, -0.576027, 0.538099, 0.593679 -1314, 0.161651, -0.576821, 0.537430, 0.593562 -1315, 0.161478, -0.577613, 0.536759, 0.593446 -1316, 0.161305, -0.578403, 0.536088, 0.593330 -1317, 0.161132, -0.579192, 0.535414, 0.593215 -1318, 0.160961, -0.579979, 0.534739, 0.593102 -1319, 0.160790, -0.580765, 0.534063, 0.592989 -1320, 0.160620, -0.581549, 0.533385, 0.592876 -1321, 0.160451, -0.582331, 0.532706, 0.592765 -1322, 0.160282, -0.583112, 0.532025, 0.592655 -1323, 0.160115, -0.583891, 0.531343, 0.592545 -1324, 0.159948, -0.584668, 0.530659, 0.592436 -1325, 0.159781, -0.585444, 0.529974, 0.592328 -1326, 0.159616, -0.586218, 0.529288, 0.592221 -1327, 0.159451, -0.586991, 0.528600, 0.592115 -1328, 0.159286, -0.587762, 0.527910, 0.592009 -1329, 0.159123, -0.588531, 0.527219, 0.591905 -1330, 0.158960, -0.589298, 0.526527, 0.591801 -1331, 0.158798, -0.590064, 0.525833, 0.591698 -1332, 0.158637, -0.590828, 0.525138, 0.591596 -1333, 0.158476, -0.591591, 0.524442, 0.591495 -1334, 0.158316, -0.592352, 0.523744, 0.591395 -1335, 0.158156, -0.593111, 0.523044, 0.591296 -1336, 0.157998, -0.593869, 0.522344, 0.591197 -1337, 0.157840, -0.594625, 0.521641, 0.591099 -1338, 0.157682, -0.595379, 0.520938, 0.591003 -1339, 0.157526, -0.596131, 0.520233, 0.590907 -1340, 0.157370, -0.596882, 0.519527, 0.590812 -1341, 0.157214, -0.597631, 0.518819, 0.590717 -1342, 0.157059, -0.598379, 0.518110, 0.590624 -1343, 0.156905, -0.599125, 0.517400, 0.590532 -1344, 0.156752, -0.599869, 0.516688, 0.590440 -1345, 0.156599, -0.600611, 0.515975, 0.590350 -1346, 0.156447, -0.601352, 0.515260, 0.590260 -1347, 0.156295, -0.602091, 0.514545, 0.590171 -1348, 0.156144, -0.602828, 0.513828, 0.590083 -1349, 0.155994, -0.603564, 0.513109, 0.589996 -1350, 0.155845, -0.604298, 0.512389, 0.589910 -1351, 0.155695, -0.605030, 0.511668, 0.589825 -1352, 0.155547, -0.605760, 0.510946, 0.589741 -1353, 0.155399, -0.606489, 0.510222, 0.589657 -1354, 0.155252, -0.607216, 0.509497, 0.589575 -1355, 0.155105, -0.607941, 0.508771, 0.589493 -1356, 0.154959, -0.608665, 0.508043, 0.589412 -1357, 0.154814, -0.609387, 0.507314, 0.589333 -1358, 0.154669, -0.610107, 0.506584, 0.589254 -1359, 0.154524, -0.610825, 0.505853, 0.589176 -1360, 0.154381, -0.611542, 0.505120, 0.589099 -1361, 0.154238, -0.612256, 0.504386, 0.589023 -1362, 0.154095, -0.612970, 0.503651, 0.588947 -1363, 0.153953, -0.613681, 0.502914, 0.588873 -1364, 0.153811, -0.614391, 0.502176, 0.588800 -1365, 0.153670, -0.615098, 0.501437, 0.588727 -1366, 0.153530, -0.615805, 0.500697, 0.588656 -1367, 0.153390, -0.616509, 0.499956, 0.588585 -1368, 0.153251, -0.617212, 0.499213, 0.588516 -1369, 0.153112, -0.617912, 0.498469, 0.588447 -1370, 0.152974, -0.618611, 0.497724, 0.588379 -1371, 0.152836, -0.619309, 0.496977, 0.588312 -1372, 0.152699, -0.620004, 0.496230, 0.588246 -1373, 0.152562, -0.620698, 0.495481, 0.588181 -1374, 0.152426, -0.621390, 0.494731, 0.588117 -1375, 0.152291, -0.622080, 0.493980, 0.588054 -1376, 0.152156, -0.622769, 0.493227, 0.587992 -1377, 0.152021, -0.623455, 0.492473, 0.587931 -1378, 0.151887, -0.624140, 0.491719, 0.587871 -1379, 0.151753, -0.624823, 0.490963, 0.587811 -1380, 0.151620, -0.625505, 0.490206, 0.587753 -1381, 0.151487, -0.626184, 0.489447, 0.587696 -1382, 0.151355, -0.626862, 0.488688, 0.587639 -1383, 0.151224, -0.627538, 0.487927, 0.587584 -1384, 0.151092, -0.628212, 0.487165, 0.587529 -1385, 0.150962, -0.628885, 0.486402, 0.587476 -1386, 0.150831, -0.629555, 0.485638, 0.587423 -1387, 0.150701, -0.630224, 0.484873, 0.587371 -1388, 0.150572, -0.630891, 0.484107, 0.587321 -1389, 0.150443, -0.631556, 0.483339, 0.587271 -1390, 0.150315, -0.632219, 0.482571, 0.587222 -1391, 0.150187, -0.632881, 0.481801, 0.587174 -1392, 0.150059, -0.633540, 0.481030, 0.587128 -1393, 0.149932, -0.634198, 0.480258, 0.587082 -1394, 0.149805, -0.634854, 0.479485, 0.587037 -1395, 0.149679, -0.635509, 0.478711, 0.586993 -1396, 0.149553, -0.636161, 0.477936, 0.586950 -1397, 0.149427, -0.636812, 0.477160, 0.586908 -1398, 0.149302, -0.637460, 0.476382, 0.586867 -1399, 0.149178, -0.638107, 0.475604, 0.586827 -1400, 0.149054, -0.638752, 0.474825, 0.586788 -1401, 0.148930, -0.639396, 0.474044, 0.586750 -1402, 0.148806, -0.640037, 0.473262, 0.586713 -1403, 0.148683, -0.640677, 0.472480, 0.586677 -1404, 0.148560, -0.641314, 0.471696, 0.586642 -1405, 0.148438, -0.641950, 0.470911, 0.586607 -1406, 0.148316, -0.642584, 0.470126, 0.586574 -1407, 0.148195, -0.643217, 0.469339, 0.586542 -1408, 0.148073, -0.643847, 0.468551, 0.586511 -1409, 0.147953, -0.644476, 0.467762, 0.586481 -1410, 0.147832, -0.645102, 0.466972, 0.586452 -1411, 0.147712, -0.645727, 0.466181, 0.586423 -1412, 0.147592, -0.646350, 0.465390, 0.586396 -1413, 0.147473, -0.646971, 0.464597, 0.586370 -1414, 0.147354, -0.647591, 0.463803, 0.586345 -1415, 0.147235, -0.648208, 0.463008, 0.586321 -1416, 0.147117, -0.648824, 0.462212, 0.586297 -1417, 0.146998, -0.649437, 0.461415, 0.586275 -1418, 0.146881, -0.650049, 0.460618, 0.586254 -1419, 0.146763, -0.650659, 0.459819, 0.586234 -1420, 0.146646, -0.651267, 0.459019, 0.586214 -1421, 0.146529, -0.651873, 0.458219, 0.586196 -1422, 0.146413, -0.652478, 0.457417, 0.586179 -1423, 0.146297, -0.653080, 0.456615, 0.586163 -1424, 0.146181, -0.653681, 0.455811, 0.586147 -1425, 0.146065, -0.654280, 0.455007, 0.586133 -1426, 0.145950, -0.654877, 0.454201, 0.586120 -1427, 0.145835, -0.655472, 0.453395, 0.586108 -1428, 0.145720, -0.656065, 0.452588, 0.586096 -1429, 0.145605, -0.656656, 0.451780, 0.586086 -1430, 0.145491, -0.657245, 0.450971, 0.586077 -1431, 0.145377, -0.657833, 0.450161, 0.586069 -1432, 0.145263, -0.658418, 0.449350, 0.586062 -1433, 0.145150, -0.659002, 0.448539, 0.586056 -1434, 0.145037, -0.659584, 0.447726, 0.586050 -1435, 0.144924, -0.660164, 0.446913, 0.586046 -1436, 0.144811, -0.660742, 0.446098, 0.586043 -1437, 0.144699, -0.661318, 0.445283, 0.586041 -1438, 0.144586, -0.661892, 0.444467, 0.586040 -1439, 0.144474, -0.662464, 0.443650, 0.586040 -1440, 0.144363, -0.663035, 0.442833, 0.586041 -1441, 0.144251, -0.663603, 0.442014, 0.586043 -1442, 0.144140, -0.664170, 0.441195, 0.586046 -1443, 0.144028, -0.664735, 0.440374, 0.586050 -1444, 0.143918, -0.665298, 0.439553, 0.586055 -1445, 0.143807, -0.665858, 0.438731, 0.586061 -1446, 0.143696, -0.666417, 0.437909, 0.586068 -1447, 0.143586, -0.666975, 0.437085, 0.586076 -1448, 0.143476, -0.667530, 0.436261, 0.586085 -1449, 0.143366, -0.668083, 0.435436, 0.586095 -1450, 0.143256, -0.668635, 0.434610, 0.586106 -1451, 0.143146, -0.669184, 0.433783, 0.586118 -1452, 0.143037, -0.669732, 0.432955, 0.586131 -1453, 0.142928, -0.670277, 0.432127, 0.586145 -1454, 0.142819, -0.670821, 0.431298, 0.586161 -1455, 0.142710, -0.671363, 0.430468, 0.586177 -1456, 0.142601, -0.671903, 0.429638, 0.586194 -1457, 0.142492, -0.672441, 0.428806, 0.586212 -1458, 0.142384, -0.672977, 0.427974, 0.586232 -1459, 0.142275, -0.673511, 0.427141, 0.586252 -1460, 0.142167, -0.674043, 0.426308, 0.586273 -1461, 0.142059, -0.674573, 0.425473, 0.586296 -1462, 0.141951, -0.675102, 0.424638, 0.586319 -1463, 0.141843, -0.675628, 0.423802, 0.586343 -1464, 0.141735, -0.676153, 0.422966, 0.586369 -1465, 0.141628, -0.676675, 0.422129, 0.586395 -1466, 0.141520, -0.677196, 0.421291, 0.586423 -1467, 0.141413, -0.677715, 0.420452, 0.586451 -1468, 0.141305, -0.678232, 0.419613, 0.586481 -1469, 0.141198, -0.678747, 0.418773, 0.586511 -1470, 0.141091, -0.679260, 0.417932, 0.586543 -1471, 0.140984, -0.679771, 0.417091, 0.586576 -1472, 0.140877, -0.680280, 0.416248, 0.586609 -1473, 0.140770, -0.680787, 0.415406, 0.586644 -1474, 0.140663, -0.681292, 0.414562, 0.586680 -1475, 0.140557, -0.681795, 0.413718, 0.586716 -1476, 0.140450, -0.682297, 0.412873, 0.586754 -1477, 0.140343, -0.682796, 0.412028, 0.586793 -1478, 0.140237, -0.683294, 0.411182, 0.586833 -1479, 0.140130, -0.683789, 0.410335, 0.586874 -1480, 0.140024, -0.684283, 0.409488, 0.586916 -1481, 0.139917, -0.684774, 0.408640, 0.586958 -1482, 0.139811, -0.685264, 0.407792, 0.587002 -1483, 0.139704, -0.685752, 0.406943, 0.587047 -1484, 0.139598, -0.686238, 0.406093, 0.587093 -1485, 0.139492, -0.686722, 0.405242, 0.587140 -1486, 0.139385, -0.687204, 0.404391, 0.587188 -1487, 0.139279, -0.687684, 0.403540, 0.587238 -1488, 0.139173, -0.688162, 0.402688, 0.587288 -1489, 0.139067, -0.688638, 0.401835, 0.587339 -1490, 0.138960, -0.689112, 0.400982, 0.587391 -1491, 0.138854, -0.689584, 0.400128, 0.587444 -1492, 0.138748, -0.690055, 0.399273, 0.587498 -1493, 0.138641, -0.690523, 0.398418, 0.587554 -1494, 0.138535, -0.690990, 0.397563, 0.587610 -1495, 0.138429, -0.691454, 0.396707, 0.587667 -1496, 0.138322, -0.691916, 0.395850, 0.587726 -1497, 0.138216, -0.692377, 0.394993, 0.587785 -1498, 0.138109, -0.692836, 0.394135, 0.587845 -1499, 0.138003, -0.693292, 0.393277, 0.587907 -1500, 0.137896, -0.693747, 0.392418, 0.587969 -1501, 0.137790, -0.694200, 0.391559, 0.588033 -1502, 0.137683, -0.694651, 0.390699, 0.588097 -1503, 0.137577, -0.695099, 0.389839, 0.588163 -1504, 0.137470, -0.695546, 0.388978, 0.588229 -1505, 0.137363, -0.695991, 0.388116, 0.588297 -1506, 0.137256, -0.696434, 0.387255, 0.588365 -1507, 0.137149, -0.696875, 0.386392, 0.588435 -1508, 0.137042, -0.697315, 0.385530, 0.588506 -1509, 0.136935, -0.697752, 0.384666, 0.588577 -1510, 0.136828, -0.698187, 0.383803, 0.588650 -1511, 0.136720, -0.698620, 0.382939, 0.588724 -1512, 0.136613, -0.699051, 0.382074, 0.588798 -1513, 0.136505, -0.699481, 0.381209, 0.588874 -1514, 0.136398, -0.699908, 0.380343, 0.588951 -1515, 0.136290, -0.700334, 0.379477, 0.589029 -1516, 0.136182, -0.700757, 0.378611, 0.589108 -1517, 0.136074, -0.701179, 0.377744, 0.589187 -1518, 0.135966, -0.701598, 0.376877, 0.589268 -1519, 0.135858, -0.702016, 0.376009, 0.589350 -1520, 0.135749, -0.702432, 0.375141, 0.589433 -1521, 0.135641, -0.702845, 0.374273, 0.589517 -1522, 0.135532, -0.703257, 0.373404, 0.589602 -1523, 0.135423, -0.703667, 0.372534, 0.589688 -1524, 0.135315, -0.704075, 0.371665, 0.589775 -1525, 0.135205, -0.704481, 0.370795, 0.589863 -1526, 0.135096, -0.704884, 0.369924, 0.589952 -1527, 0.134987, -0.705286, 0.369053, 0.590042 -1528, 0.134877, -0.705687, 0.368182, 0.590133 -1529, 0.134767, -0.706085, 0.367311, 0.590225 -1530, 0.134657, -0.706481, 0.366439, 0.590318 -1531, 0.134547, -0.706875, 0.365567, 0.590412 -1532, 0.134437, -0.707267, 0.364694, 0.590507 -1533, 0.134326, -0.707657, 0.363821, 0.590603 -1534, 0.134216, -0.708046, 0.362948, 0.590700 -1535, 0.134105, -0.708432, 0.362074, 0.590798 -1536, 0.133994, -0.708816, 0.361200, 0.590897 -1537, 0.133882, -0.709199, 0.360326, 0.590997 -1538, 0.133771, -0.709579, 0.359451, 0.591098 -1539, 0.133659, -0.709958, 0.358576, 0.591200 -1540, 0.133547, -0.710335, 0.357701, 0.591304 -1541, 0.133435, -0.710709, 0.356826, 0.591408 -1542, 0.133322, -0.711082, 0.355950, 0.591513 -1543, 0.133210, -0.711453, 0.355074, 0.591619 -1544, 0.133097, -0.711821, 0.354198, 0.591726 -1545, 0.132984, -0.712188, 0.353321, 0.591834 -1546, 0.132870, -0.712553, 0.352444, 0.591943 -1547, 0.132757, -0.712916, 0.351567, 0.592053 -1548, 0.132643, -0.713277, 0.350689, 0.592164 -1549, 0.132528, -0.713636, 0.349812, 0.592277 -1550, 0.132414, -0.713993, 0.348934, 0.592390 -1551, 0.132299, -0.714348, 0.348056, 0.592504 -1552, 0.132184, -0.714702, 0.347177, 0.592619 -1553, 0.132069, -0.715053, 0.346299, 0.592735 -1554, 0.131953, -0.715402, 0.345420, 0.592852 -1555, 0.131838, -0.715749, 0.344541, 0.592970 -1556, 0.131721, -0.716095, 0.343661, 0.593089 -1557, 0.131605, -0.716438, 0.342782, 0.593209 -1558, 0.131488, -0.716780, 0.341902, 0.593330 -1559, 0.131371, -0.717119, 0.341022, 0.593452 -1560, 0.131254, -0.717457, 0.340142, 0.593575 -1561, 0.131136, -0.717793, 0.339262, 0.593699 -1562, 0.131018, -0.718126, 0.338381, 0.593824 -1563, 0.130900, -0.718458, 0.337500, 0.593950 -1564, 0.130781, -0.718788, 0.336619, 0.594077 -1565, 0.130662, -0.719116, 0.335738, 0.594205 -1566, 0.130543, -0.719442, 0.334857, 0.594334 -1567, 0.130423, -0.719766, 0.333976, 0.594464 -1568, 0.130303, -0.720088, 0.333094, 0.594594 -1569, 0.130183, -0.720408, 0.332213, 0.594726 -1570, 0.130062, -0.720726, 0.331331, 0.594859 -1571, 0.129941, -0.721043, 0.330449, 0.594993 -1572, 0.129820, -0.721357, 0.329567, 0.595127 -1573, 0.129698, -0.721669, 0.328685, 0.595263 -1574, 0.129576, -0.721980, 0.327802, 0.595400 -1575, 0.129453, -0.722288, 0.326920, 0.595537 -1576, 0.129331, -0.722595, 0.326037, 0.595676 -1577, 0.129207, -0.722900, 0.325155, 0.595815 -1578, 0.129084, -0.723202, 0.324272, 0.595956 -1579, 0.128960, -0.723503, 0.323389, 0.596097 -1580, 0.128835, -0.723802, 0.322506, 0.596240 -1581, 0.128710, -0.724099, 0.321623, 0.596383 -1582, 0.128585, -0.724394, 0.320740, 0.596527 -1583, 0.128459, -0.724687, 0.319857, 0.596673 -1584, 0.128333, -0.724978, 0.318974, 0.596819 -1585, 0.128207, -0.725268, 0.318090, 0.596966 -1586, 0.128080, -0.725555, 0.317207, 0.597114 -1587, 0.127952, -0.725840, 0.316324, 0.597263 -1588, 0.127825, -0.726124, 0.315440, 0.597413 -1589, 0.127697, -0.726405, 0.314557, 0.597564 -1590, 0.127568, -0.726685, 0.313673, 0.597716 -1591, 0.127439, -0.726963, 0.312789, 0.597869 -1592, 0.127309, -0.727239, 0.311906, 0.598023 -1593, 0.127179, -0.727512, 0.311022, 0.598177 -1594, 0.127049, -0.727784, 0.310139, 0.598333 -1595, 0.126918, -0.728054, 0.309255, 0.598490 -1596, 0.126787, -0.728323, 0.308371, 0.598647 -1597, 0.126655, -0.728589, 0.307488, 0.598806 -1598, 0.126523, -0.728853, 0.306604, 0.598965 -1599, 0.126390, -0.729116, 0.305720, 0.599125 -1600, 0.126257, -0.729376, 0.304837, 0.599287 -1601, 0.126123, -0.729635, 0.303953, 0.599449 -1602, 0.125989, -0.729891, 0.303069, 0.599612 -1603, 0.125854, -0.730146, 0.302186, 0.599776 -1604, 0.125719, -0.730399, 0.301302, 0.599941 -1605, 0.125583, -0.730650, 0.300419, 0.600107 -1606, 0.125447, -0.730899, 0.299536, 0.600274 -1607, 0.125310, -0.731146, 0.298652, 0.600441 -1608, 0.125173, -0.731391, 0.297769, 0.600610 -1609, 0.125035, -0.731635, 0.296886, 0.600779 -1610, 0.124897, -0.731876, 0.296002, 0.600950 -1611, 0.124758, -0.732116, 0.295119, 0.601121 -1612, 0.124619, -0.732353, 0.294236, 0.601293 -1613, 0.124479, -0.732589, 0.293353, 0.601466 -1614, 0.124339, -0.732823, 0.292470, 0.601641 -1615, 0.124198, -0.733055, 0.291588, 0.601815 -1616, 0.124056, -0.733285, 0.290705, 0.601991 -1617, 0.123914, -0.733513, 0.289822, 0.602168 -1618, 0.123772, -0.733740, 0.288940, 0.602346 -1619, 0.123629, -0.733964, 0.288058, 0.602524 -1620, 0.123485, -0.734187, 0.287175, 0.602704 -1621, 0.123341, -0.734407, 0.286293, 0.602884 -1622, 0.123196, -0.734626, 0.285411, 0.603065 -1623, 0.123051, -0.734843, 0.284529, 0.603247 -1624, 0.122905, -0.735058, 0.283648, 0.603430 -1625, 0.122758, -0.735271, 0.282766, 0.603614 -1626, 0.122611, -0.735483, 0.281885, 0.603799 -1627, 0.122463, -0.735692, 0.281003, 0.603984 -1628, 0.122315, -0.735900, 0.280122, 0.604171 -1629, 0.122166, -0.736105, 0.279241, 0.604358 -1630, 0.122017, -0.736309, 0.278361, 0.604546 -1631, 0.121867, -0.736511, 0.277480, 0.604735 -1632, 0.121716, -0.736711, 0.276600, 0.604925 -1633, 0.121565, -0.736909, 0.275719, 0.605116 -1634, 0.121413, -0.737106, 0.274839, 0.605308 -1635, 0.121260, -0.737300, 0.273959, 0.605500 -1636, 0.121107, -0.737493, 0.273080, 0.605694 -1637, 0.120953, -0.737684, 0.272200, 0.605888 -1638, 0.120799, -0.737873, 0.271321, 0.606083 -1639, 0.120644, -0.738060, 0.270442, 0.606279 -1640, 0.120488, -0.738245, 0.269563, 0.606476 -1641, 0.120332, -0.738428, 0.268685, 0.606673 -1642, 0.120175, -0.738610, 0.267806, 0.606872 -1643, 0.120017, -0.738790, 0.266928, 0.607071 -1644, 0.119859, -0.738967, 0.266050, 0.607271 -1645, 0.119700, -0.739143, 0.265173, 0.607472 -1646, 0.119540, -0.739318, 0.264295, 0.607674 -1647, 0.119380, -0.739490, 0.263418, 0.607877 -1648, 0.119219, -0.739660, 0.262541, 0.608080 -1649, 0.119057, -0.739829, 0.261665, 0.608284 -1650, 0.118895, -0.739996, 0.260788, 0.608490 -1651, 0.118732, -0.740161, 0.259912, 0.608696 -1652, 0.118568, -0.740324, 0.259036, 0.608902 -1653, 0.118404, -0.740485, 0.258161, 0.609110 -1654, 0.118239, -0.740645, 0.257286, 0.609318 -1655, 0.118073, -0.740803, 0.256411, 0.609528 -1656, 0.117907, -0.740958, 0.255536, 0.609738 -1657, 0.117740, -0.741112, 0.254662, 0.609948 -1658, 0.117572, -0.741265, 0.253788, 0.610160 -1659, 0.117403, -0.741415, 0.252914, 0.610373 -1660, 0.117234, -0.741564, 0.252040, 0.610586 -1661, 0.117064, -0.741710, 0.251167, 0.610800 -1662, 0.116893, -0.741855, 0.250295, 0.611015 -1663, 0.116722, -0.741999, 0.249422, 0.611230 -1664, 0.116550, -0.742140, 0.248550, 0.611447 -1665, 0.116377, -0.742280, 0.247678, 0.611664 -1666, 0.116203, -0.742417, 0.246807, 0.611882 -1667, 0.116029, -0.742553, 0.245936, 0.612101 -1668, 0.115854, -0.742687, 0.245065, 0.612320 -1669, 0.115678, -0.742820, 0.244195, 0.612541 -1670, 0.115501, -0.742950, 0.243325, 0.612762 -1671, 0.115324, -0.743079, 0.242455, 0.612984 -1672, 0.115146, -0.743206, 0.241586, 0.613206 -1673, 0.114967, -0.743331, 0.240717, 0.613430 -1674, 0.114787, -0.743455, 0.239849, 0.613654 -1675, 0.114607, -0.743577, 0.238980, 0.613879 -1676, 0.114426, -0.743696, 0.238113, 0.614105 -1677, 0.114244, -0.743815, 0.237245, 0.614331 -1678, 0.114061, -0.743931, 0.236379, 0.614559 -1679, 0.113877, -0.744045, 0.235512, 0.614786 -1680, 0.113693, -0.744158, 0.234646, 0.615015 -1681, 0.113508, -0.744269, 0.233780, 0.615245 -1682, 0.113322, -0.744378, 0.232915, 0.615475 -1683, 0.113135, -0.744486, 0.232050, 0.615706 -1684, 0.112948, -0.744592, 0.231186, 0.615938 -1685, 0.112760, -0.744696, 0.230322, 0.616170 -1686, 0.112570, -0.744798, 0.229458, 0.616403 -1687, 0.112381, -0.744898, 0.228595, 0.616637 -1688, 0.112190, -0.744997, 0.227733, 0.616872 -1689, 0.111998, -0.745094, 0.226870, 0.617107 -1690, 0.111806, -0.745189, 0.226009, 0.617343 -1691, 0.111613, -0.745283, 0.225148, 0.617580 -1692, 0.111419, -0.745374, 0.224287, 0.617817 -1693, 0.111224, -0.745464, 0.223426, 0.618056 -1694, 0.111028, -0.745553, 0.222567, 0.618295 -1695, 0.110832, -0.745639, 0.221707, 0.618534 -1696, 0.110634, -0.745724, 0.220848, 0.618775 -1697, 0.110436, -0.745807, 0.219990, 0.619016 -1698, 0.110237, -0.745888, 0.219132, 0.619257 -1699, 0.110037, -0.745968, 0.218275, 0.619500 -1700, 0.109836, -0.746046, 0.217418, 0.619743 -1701, 0.109634, -0.746122, 0.216561, 0.619987 -1702, 0.109432, -0.746196, 0.215705, 0.620231 -1703, 0.109229, -0.746269, 0.214850, 0.620476 -1704, 0.109024, -0.746340, 0.213995, 0.620722 -1705, 0.108819, -0.746410, 0.213141, 0.620969 -1706, 0.108613, -0.746477, 0.212287, 0.621216 -1707, 0.108406, -0.746543, 0.211434, 0.621464 -1708, 0.108199, -0.746607, 0.210581, 0.621712 -1709, 0.107990, -0.746670, 0.209729, 0.621962 -1710, 0.107781, -0.746731, 0.208877, 0.622211 -1711, 0.107570, -0.746790, 0.208026, 0.622462 -1712, 0.107359, -0.746847, 0.207176, 0.622713 -1713, 0.107147, -0.746903, 0.206326, 0.622965 -1714, 0.106934, -0.746957, 0.205476, 0.623217 -1715, 0.106720, -0.747009, 0.204627, 0.623471 -1716, 0.106505, -0.747060, 0.203779, 0.623724 -1717, 0.106289, -0.747109, 0.202931, 0.623979 -1718, 0.106072, -0.747156, 0.202084, 0.624234 -1719, 0.105854, -0.747202, 0.201238, 0.624489 -1720, 0.105636, -0.747246, 0.200392, 0.624746 -1721, 0.105416, -0.747289, 0.199547, 0.625003 -1722, 0.105196, -0.747329, 0.198702, 0.625260 -1723, 0.104974, -0.747368, 0.197858, 0.625518 -1724, 0.104752, -0.747406, 0.197014, 0.625777 -1725, 0.104529, -0.747441, 0.196171, 0.626037 -1726, 0.104305, -0.747475, 0.195329, 0.626297 -1727, 0.104080, -0.747508, 0.194487, 0.626557 -1728, 0.103854, -0.747539, 0.193646, 0.626819 -1729, 0.103627, -0.747568, 0.192806, 0.627080 -1730, 0.103399, -0.747595, 0.191966, 0.627343 -1731, 0.103170, -0.747621, 0.191127, 0.627606 -1732, 0.102940, -0.747645, 0.190288, 0.627870 -1733, 0.102709, -0.747668, 0.189450, 0.628134 -1734, 0.102477, -0.747689, 0.188613, 0.628399 -1735, 0.102244, -0.747708, 0.187777, 0.628664 -1736, 0.102011, -0.747726, 0.186941, 0.628930 -1737, 0.101776, -0.747742, 0.186106, 0.629196 -1738, 0.101540, -0.747757, 0.185271, 0.629464 -1739, 0.101304, -0.747769, 0.184437, 0.629731 -1740, 0.101066, -0.747781, 0.183604, 0.629999 -1741, 0.100827, -0.747790, 0.182771, 0.630268 -1742, 0.100588, -0.747798, 0.181939, 0.630538 -1743, 0.100347, -0.747805, 0.181108, 0.630808 -1744, 0.100106, -0.747810, 0.180278, 0.631078 -1745, 0.099863, -0.747813, 0.179448, 0.631349 -1746, 0.099619, -0.747815, 0.178619, 0.631621 -1747, 0.099375, -0.747815, 0.177790, 0.631893 -1748, 0.099129, -0.747813, 0.176963, 0.632165 -1749, 0.098883, -0.747810, 0.176136, 0.632438 -1750, 0.098635, -0.747806, 0.175309, 0.632712 -1751, 0.098386, -0.747799, 0.174484, 0.632986 -1752, 0.098137, -0.747791, 0.173659, 0.633261 -1753, 0.097886, -0.747782, 0.172835, 0.633536 -1754, 0.097634, -0.747771, 0.172011, 0.633812 -1755, 0.097382, -0.747759, 0.171189, 0.634088 -1756, 0.097128, -0.747745, 0.170367, 0.634365 -1757, 0.096873, -0.747729, 0.169546, 0.634643 -1758, 0.096617, -0.747712, 0.168725, 0.634920 -1759, 0.096361, -0.747693, 0.167906, 0.635199 -1760, 0.096103, -0.747673, 0.167087, 0.635478 -1761, 0.095844, -0.747651, 0.166268, 0.635757 -1762, 0.095584, -0.747628, 0.165451, 0.636037 -1763, 0.095323, -0.747603, 0.164634, 0.636317 -1764, 0.095061, -0.747576, 0.163819, 0.636598 -1765, 0.094798, -0.747548, 0.163003, 0.636879 -1766, 0.094534, -0.747519, 0.162189, 0.637161 -1767, 0.094268, -0.747488, 0.161376, 0.637443 -1768, 0.094002, -0.747455, 0.160563, 0.637725 -1769, 0.093735, -0.747421, 0.159751, 0.638008 -1770, 0.093466, -0.747386, 0.158940, 0.638292 -1771, 0.093197, -0.747349, 0.158129, 0.638576 -1772, 0.092926, -0.747310, 0.157320, 0.638861 -1773, 0.092655, -0.747270, 0.156511, 0.639145 -1774, 0.092382, -0.747229, 0.155703, 0.639431 -1775, 0.092108, -0.747185, 0.154896, 0.639717 -1776, 0.091833, -0.747141, 0.154089, 0.640003 -1777, 0.091558, -0.747095, 0.153284, 0.640289 -1778, 0.091281, -0.747047, 0.152479, 0.640577 -1779, 0.091002, -0.746998, 0.151675, 0.640864 -1780, 0.090723, -0.746948, 0.150872, 0.641152 -1781, 0.090443, -0.746896, 0.150070, 0.641440 -1782, 0.090162, -0.746842, 0.149269, 0.641729 -1783, 0.089879, -0.746787, 0.148468, 0.642018 -1784, 0.089596, -0.746731, 0.147668, 0.642308 -1785, 0.089311, -0.746673, 0.146869, 0.642598 -1786, 0.089025, -0.746614, 0.146071, 0.642888 -1787, 0.088738, -0.746553, 0.145274, 0.643179 -1788, 0.088450, -0.746491, 0.144478, 0.643470 -1789, 0.088161, -0.746427, 0.143683, 0.643762 -1790, 0.087871, -0.746362, 0.142888, 0.644054 -1791, 0.087580, -0.746296, 0.142094, 0.644346 -1792, 0.087287, -0.746228, 0.141301, 0.644639 -1793, 0.086994, -0.746158, 0.140509, 0.644932 -1794, 0.086699, -0.746087, 0.139718, 0.645225 -1795, 0.086403, -0.746015, 0.138928, 0.645519 -1796, 0.086106, -0.745941, 0.138139, 0.645813 -1797, 0.085808, -0.745866, 0.137350, 0.646108 -1798, 0.085509, -0.745790, 0.136563, 0.646403 -1799, 0.085208, -0.745712, 0.135776, 0.646698 -1800, 0.084907, -0.745633, 0.134990, 0.646993 -1801, 0.084604, -0.745552, 0.134206, 0.647289 -1802, 0.084301, -0.745470, 0.133422, 0.647586 -1803, 0.083996, -0.745386, 0.132639, 0.647882 -1804, 0.083690, -0.745301, 0.131857, 0.648179 -1805, 0.083382, -0.745215, 0.131075, 0.648476 -1806, 0.083074, -0.745127, 0.130295, 0.648774 -1807, 0.082764, -0.745038, 0.129516, 0.649072 -1808, 0.082454, -0.744948, 0.128737, 0.649370 -1809, 0.082142, -0.744856, 0.127960, 0.649668 -1810, 0.081829, -0.744762, 0.127183, 0.649967 -1811, 0.081515, -0.744668, 0.126408, 0.650266 -1812, 0.081200, -0.744572, 0.125633, 0.650566 -1813, 0.080883, -0.744475, 0.124859, 0.650865 -1814, 0.080565, -0.744376, 0.124086, 0.651165 -1815, 0.080247, -0.744276, 0.123314, 0.651466 -1816, 0.079927, -0.744174, 0.122544, 0.651766 -1817, 0.079605, -0.744072, 0.121774, 0.652067 -1818, 0.079283, -0.743968, 0.121005, 0.652368 -1819, 0.078960, -0.743862, 0.120237, 0.652669 -1820, 0.078635, -0.743756, 0.119470, 0.652971 -1821, 0.078309, -0.743648, 0.118703, 0.653273 -1822, 0.077982, -0.743538, 0.117938, 0.653575 -1823, 0.077654, -0.743427, 0.117174, 0.653877 -1824, 0.077324, -0.743315, 0.116411, 0.654180 -1825, 0.076994, -0.743202, 0.115649, 0.654483 -1826, 0.076662, -0.743087, 0.114888, 0.654786 -1827, 0.076329, -0.742971, 0.114127, 0.655089 -1828, 0.075995, -0.742854, 0.113368, 0.655393 -1829, 0.075659, -0.742736, 0.112610, 0.655697 -1830, 0.075323, -0.742616, 0.111853, 0.656001 -1831, 0.074985, -0.742495, 0.111096, 0.656305 -1832, 0.074646, -0.742372, 0.110341, 0.656610 -1833, 0.074306, -0.742249, 0.109587, 0.656914 -1834, 0.073964, -0.742124, 0.108834, 0.657219 -1835, 0.073622, -0.741997, 0.108081, 0.657524 -1836, 0.073278, -0.741870, 0.107330, 0.657830 -1837, 0.072933, -0.741741, 0.106580, 0.658135 -1838, 0.072587, -0.741611, 0.105831, 0.658441 -1839, 0.072239, -0.741480, 0.105083, 0.658747 -1840, 0.071891, -0.741347, 0.104336, 0.659053 -1841, 0.071541, -0.741213, 0.103589, 0.659359 -1842, 0.071190, -0.741078, 0.102844, 0.659665 -1843, 0.070837, -0.740942, 0.102100, 0.659972 -1844, 0.070484, -0.740804, 0.101357, 0.660279 -1845, 0.070129, -0.740665, 0.100615, 0.660586 -1846, 0.069773, -0.740525, 0.099874, 0.660893 -1847, 0.069416, -0.740384, 0.099135, 0.661200 -1848, 0.069057, -0.740242, 0.098396, 0.661507 -1849, 0.068697, -0.740098, 0.097658, 0.661815 -1850, 0.068336, -0.739953, 0.096921, 0.662122 -1851, 0.067974, -0.739807, 0.096186, 0.662430 -1852, 0.067611, -0.739660, 0.095451, 0.662738 -1853, 0.067246, -0.739511, 0.094717, 0.663046 -1854, 0.066880, -0.739361, 0.093985, 0.663354 -1855, 0.066513, -0.739210, 0.093254, 0.663662 -1856, 0.066145, -0.739058, 0.092523, 0.663971 -1857, 0.065775, -0.738905, 0.091794, 0.664279 -1858, 0.065404, -0.738750, 0.091066, 0.664588 -1859, 0.065032, -0.738595, 0.090339, 0.664897 -1860, 0.064659, -0.738438, 0.089613, 0.665205 -1861, 0.064284, -0.738280, 0.088888, 0.665514 -1862, 0.063909, -0.738121, 0.088164, 0.665823 -1863, 0.063531, -0.737960, 0.087441, 0.666132 -1864, 0.063153, -0.737799, 0.086719, 0.666441 -1865, 0.062773, -0.737636, 0.085999, 0.666751 -1866, 0.062393, -0.737473, 0.085279, 0.667060 -1867, 0.062010, -0.737308, 0.084561, 0.667369 -1868, 0.061627, -0.737142, 0.083844, 0.667679 -1869, 0.061242, -0.736974, 0.083127, 0.667988 -1870, 0.060857, -0.736806, 0.082412, 0.668298 -1871, 0.060469, -0.736637, 0.081698, 0.668607 -1872, 0.060081, -0.736466, 0.080985, 0.668917 -1873, 0.059691, -0.736294, 0.080274, 0.669226 -1874, 0.059300, -0.736121, 0.079563, 0.669536 -1875, 0.058908, -0.735947, 0.078854, 0.669846 -1876, 0.058515, -0.735772, 0.078145, 0.670155 -1877, 0.058120, -0.735596, 0.077438, 0.670465 -1878, 0.057724, -0.735419, 0.076732, 0.670775 -1879, 0.057326, -0.735241, 0.076027, 0.671085 -1880, 0.056928, -0.735061, 0.075323, 0.671395 -1881, 0.056528, -0.734881, 0.074620, 0.671704 -1882, 0.056127, -0.734699, 0.073918, 0.672014 -1883, 0.055724, -0.734516, 0.073218, 0.672324 -1884, 0.055321, -0.734333, 0.072519, 0.672634 -1885, 0.054916, -0.734148, 0.071820, 0.672944 -1886, 0.054509, -0.733962, 0.071123, 0.673253 -1887, 0.054102, -0.733775, 0.070427, 0.673563 -1888, 0.053693, -0.733587, 0.069733, 0.673873 -1889, 0.053283, -0.733398, 0.069039, 0.674182 -1890, 0.052872, -0.733208, 0.068347, 0.674492 -1891, 0.052459, -0.733017, 0.067655, 0.674802 -1892, 0.052045, -0.732825, 0.066965, 0.675111 -1893, 0.051630, -0.732631, 0.066276, 0.675421 -1894, 0.051213, -0.732437, 0.065588, 0.675730 -1895, 0.050795, -0.732242, 0.064902, 0.676039 -1896, 0.050376, -0.732046, 0.064216, 0.676349 -1897, 0.049956, -0.731848, 0.063532, 0.676658 -1898, 0.049534, -0.731650, 0.062849, 0.676967 -1899, 0.049111, -0.731451, 0.062167, 0.677276 -1900, 0.048687, -0.731250, 0.061486, 0.677585 -1901, 0.048261, -0.731049, 0.060806, 0.677894 -1902, 0.047834, -0.730847, 0.060128, 0.678203 -1903, 0.047406, -0.730643, 0.059450, 0.678512 -1904, 0.046976, -0.730439, 0.058774, 0.678821 -1905, 0.046546, -0.730234, 0.058099, 0.679129 -1906, 0.046114, -0.730028, 0.057426, 0.679438 -1907, 0.045680, -0.729820, 0.056753, 0.679746 -1908, 0.045246, -0.729612, 0.056082, 0.680054 -1909, 0.044810, -0.729403, 0.055412, 0.680362 -1910, 0.044372, -0.729193, 0.054743, 0.680670 -1911, 0.043934, -0.728982, 0.054075, 0.680978 -1912, 0.043494, -0.728770, 0.053408, 0.681286 -1913, 0.043053, -0.728557, 0.052743, 0.681593 -1914, 0.042610, -0.728343, 0.052079, 0.681901 -1915, 0.042166, -0.728128, 0.051416, 0.682208 -1916, 0.041721, -0.727912, 0.050754, 0.682515 -1917, 0.041275, -0.727696, 0.050094, 0.682822 -1918, 0.040827, -0.727478, 0.049434, 0.683129 -1919, 0.040378, -0.727259, 0.048776, 0.683436 -1920, 0.039927, -0.727040, 0.048119, 0.683742 -1921, 0.039476, -0.726820, 0.047464, 0.684048 -1922, 0.039023, -0.726598, 0.046809, 0.684354 -1923, 0.038568, -0.726376, 0.046156, 0.684660 -1924, 0.038113, -0.726153, 0.045504, 0.684966 -1925, 0.037656, -0.725929, 0.044853, 0.685272 -1926, 0.037198, -0.725704, 0.044203, 0.685577 -1927, 0.036738, -0.725479, 0.043555, 0.685882 -1928, 0.036277, -0.725252, 0.042908, 0.686187 -1929, 0.035815, -0.725024, 0.042262, 0.686492 -1930, 0.035352, -0.724796, 0.041617, 0.686796 -1931, 0.034887, -0.724567, 0.040974, 0.687100 -1932, 0.034421, -0.724337, 0.040332, 0.687404 -1933, 0.033953, -0.724106, 0.039691, 0.687708 -1934, 0.033485, -0.723874, 0.039051, 0.688012 -1935, 0.033014, -0.723641, 0.038412, 0.688315 -1936, 0.032543, -0.723408, 0.037775, 0.688618 -1937, 0.032070, -0.723174, 0.037139, 0.688921 -1938, 0.031596, -0.722938, 0.036504, 0.689224 -1939, 0.031121, -0.722702, 0.035871, 0.689526 -1940, 0.030644, -0.722466, 0.035239, 0.689828 -1941, 0.030166, -0.722228, 0.034608, 0.690130 -1942, 0.029687, -0.721990, 0.033978, 0.690431 -1943, 0.029206, -0.721750, 0.033349, 0.690733 -1944, 0.028725, -0.721510, 0.032722, 0.691033 -1945, 0.028241, -0.721269, 0.032096, 0.691334 -1946, 0.027757, -0.721028, 0.031471, 0.691634 -1947, 0.027271, -0.720785, 0.030848, 0.691935 -1948, 0.026784, -0.720542, 0.030225, 0.692234 -1949, 0.026295, -0.720298, 0.029604, 0.692534 -1950, 0.025805, -0.720053, 0.028985, 0.692833 -1951, 0.025314, -0.719808, 0.028366, 0.693132 -1952, 0.024822, -0.719561, 0.027749, 0.693430 -1953, 0.024328, -0.719314, 0.027133, 0.693729 -1954, 0.023833, -0.719066, 0.026518, 0.694026 -1955, 0.023336, -0.718818, 0.025905, 0.694324 -1956, 0.022838, -0.718568, 0.025293, 0.694621 -1957, 0.022339, -0.718318, 0.024682, 0.694918 -1958, 0.021839, -0.718067, 0.024072, 0.695214 -1959, 0.021337, -0.717816, 0.023464, 0.695511 -1960, 0.020834, -0.717563, 0.022857, 0.695806 -1961, 0.020330, -0.717310, 0.022251, 0.696102 -1962, 0.019824, -0.717056, 0.021646, 0.696397 -1963, 0.019317, -0.716802, 0.021043, 0.696692 -1964, 0.018808, -0.716547, 0.020441, 0.696986 -1965, 0.018299, -0.716291, 0.019841, 0.697280 -1966, 0.017788, -0.716034, 0.019241, 0.697573 -1967, 0.017275, -0.715777, 0.018643, 0.697867 -1968, 0.016762, -0.715519, 0.018046, 0.698159 -1969, 0.016247, -0.715260, 0.017451, 0.698452 -1970, 0.015731, -0.715000, 0.016856, 0.698744 -1971, 0.015213, -0.714740, 0.016263, 0.699035 -1972, 0.014694, -0.714480, 0.015672, 0.699326 -1973, 0.014174, -0.714218, 0.015081, 0.699617 -1974, 0.013652, -0.713956, 0.014492, 0.699907 -1975, 0.013129, -0.713693, 0.013904, 0.700197 -1976, 0.012605, -0.713430, 0.013318, 0.700487 -1977, 0.012080, -0.713166, 0.012732, 0.700776 -1978, 0.011553, -0.712901, 0.012149, 0.701064 -1979, 0.011025, -0.712636, 0.011566, 0.701352 -1980, 0.010495, -0.712369, 0.010984, 0.701640 -1981, 0.009964, -0.712103, 0.010404, 0.701927 -1982, 0.009432, -0.711835, 0.009826, 0.702214 -1983, 0.008899, -0.711568, 0.009248, 0.702500 -1984, 0.008364, -0.711299, 0.008672, 0.702786 -1985, 0.007828, -0.711030, 0.008097, 0.703072 -1986, 0.007291, -0.710760, 0.007523, 0.703356 -1987, 0.006752, -0.710490, 0.006951, 0.703641 -1988, 0.006212, -0.710219, 0.006380, 0.703925 -1989, 0.005671, -0.709947, 0.005810, 0.704208 -1990, 0.005128, -0.709675, 0.005242, 0.704491 -1991, 0.004584, -0.709402, 0.004675, 0.704774 -1992, 0.004039, -0.709129, 0.004109, 0.705055 -1993, 0.003492, -0.708855, 0.003545, 0.705337 -1994, 0.002944, -0.708580, 0.002982, 0.705618 -1995, 0.002395, -0.708305, 0.002420, 0.705898 -1996, 0.001845, -0.708030, 0.001859, 0.706178 -1997, 0.001293, -0.707753, 0.001300, 0.706457 -1998, 0.000740, -0.707477, 0.000742, 0.706736 -1999, 0.000185, -0.707199, 0.000185, 0.707014 -2000, -0.000371, -0.706921, -0.000370, 0.707292 -2001, -0.000928, -0.706643, -0.000924, 0.707569 -2002, -0.001486, -0.706364, -0.001477, 0.707846 -2003, -0.002046, -0.706085, -0.002028, 0.708122 -2004, -0.002607, -0.705805, -0.002578, 0.708397 -2005, -0.003169, -0.705524, -0.003127, 0.708672 -2006, -0.003733, -0.705243, -0.003675, 0.708946 -2007, -0.004298, -0.704962, -0.004221, 0.709220 -2008, -0.004864, -0.704679, -0.004765, 0.709493 -2009, -0.005431, -0.704397, -0.005309, 0.709766 -2010, -0.006000, -0.704114, -0.005851, 0.710038 -2011, -0.006570, -0.703830, -0.006392, 0.710309 -2012, -0.007142, -0.703546, -0.006932, 0.710580 -2013, -0.007714, -0.703262, -0.007470, 0.710850 -2014, -0.008288, -0.702977, -0.008007, 0.711120 -2015, -0.008864, -0.702691, -0.008543, 0.711389 -2016, -0.009440, -0.702405, -0.009077, 0.711657 -2017, -0.010018, -0.702119, -0.009610, 0.711925 -2018, -0.010598, -0.701832, -0.010141, 0.712192 -2019, -0.011178, -0.701544, -0.010672, 0.712458 -2020, -0.011760, -0.701257, -0.011201, 0.712724 -2021, -0.012343, -0.700968, -0.011729, 0.712989 -2022, -0.012927, -0.700680, -0.012255, 0.713254 -2023, -0.013513, -0.700390, -0.012780, 0.713518 -2024, -0.014100, -0.700101, -0.013304, 0.713781 -2025, -0.014688, -0.699811, -0.013826, 0.714043 -2026, -0.015278, -0.699520, -0.014347, 0.714305 -2027, -0.015869, -0.699229, -0.014867, 0.714567 -2028, -0.016461, -0.698938, -0.015386, 0.714827 -2029, -0.017054, -0.698646, -0.015903, 0.715087 -2030, -0.017649, -0.698354, -0.016419, 0.715346 -2031, -0.018245, -0.698062, -0.016933, 0.715605 -2032, -0.018842, -0.697769, -0.017446, 0.715862 -2033, -0.019441, -0.697476, -0.017958, 0.716120 -2034, -0.020041, -0.697182, -0.018469, 0.716376 -2035, -0.020642, -0.696888, -0.018978, 0.716632 -2036, -0.021244, -0.696593, -0.019486, 0.716887 -2037, -0.021848, -0.696299, -0.019993, 0.717141 -2038, -0.022453, -0.696003, -0.020498, 0.717395 -2039, -0.023059, -0.695708, -0.021002, 0.717647 -2040, -0.023666, -0.695412, -0.021504, 0.717899 -2041, -0.024275, -0.695116, -0.022006, 0.718151 -2042, -0.024885, -0.694819, -0.022506, 0.718401 -2043, -0.025497, -0.694522, -0.023004, 0.718651 -2044, -0.026109, -0.694225, -0.023502, 0.718900 -2045, -0.026723, -0.693927, -0.023998, 0.719149 -2046, -0.027338, -0.693629, -0.024492, 0.719397 -2047, -0.027955, -0.693331, -0.024986, 0.719643 -2048, -0.028572, -0.693032, -0.025478, 0.719889 -2049, -0.029191, -0.692733, -0.025969, 0.720135 -2050, -0.029811, -0.692434, -0.026458, 0.720379 -2051, -0.030433, -0.692134, -0.026946, 0.720623 -2052, -0.031055, -0.691835, -0.027433, 0.720866 -2053, -0.031679, -0.691534, -0.027918, 0.721108 -2054, -0.032304, -0.691234, -0.028402, 0.721350 -2055, -0.032931, -0.690933, -0.028885, 0.721590 -2056, -0.033559, -0.690632, -0.029367, 0.721830 -2057, -0.034188, -0.690331, -0.029847, 0.722069 -2058, -0.034818, -0.690029, -0.030326, 0.722307 -2059, -0.035449, -0.689727, -0.030803, 0.722545 -2060, -0.036082, -0.689425, -0.031280, 0.722781 -2061, -0.036716, -0.689123, -0.031754, 0.723017 -2062, -0.037351, -0.688820, -0.032228, 0.723252 -2063, -0.037988, -0.688517, -0.032700, 0.723486 -2064, -0.038625, -0.688214, -0.033171, 0.723719 -2065, -0.039264, -0.687911, -0.033641, 0.723951 -2066, -0.039904, -0.687607, -0.034109, 0.724183 -2067, -0.040546, -0.687303, -0.034576, 0.724414 -2068, -0.041188, -0.686999, -0.035042, 0.724643 -2069, -0.041832, -0.686695, -0.035506, 0.724872 -2070, -0.042477, -0.686390, -0.035969, 0.725100 -2071, -0.043124, -0.686085, -0.036431, 0.725328 -2072, -0.043771, -0.685780, -0.036891, 0.725554 -2073, -0.044420, -0.685475, -0.037351, 0.725779 -2074, -0.045070, -0.685170, -0.037808, 0.726004 -2075, -0.045721, -0.684864, -0.038265, 0.726228 -2076, -0.046373, -0.684558, -0.038720, 0.726450 -2077, -0.047027, -0.684252, -0.039174, 0.726672 -2078, -0.047682, -0.683946, -0.039626, 0.726893 -2079, -0.048338, -0.683640, -0.040078, 0.727113 -2080, -0.048995, -0.683333, -0.040528, 0.727332 -2081, -0.049654, -0.683027, -0.040976, 0.727551 -2082, -0.050314, -0.682720, -0.041424, 0.727768 -2083, -0.050975, -0.682413, -0.041870, 0.727984 -2084, -0.051637, -0.682106, -0.042314, 0.728200 -2085, -0.052300, -0.681798, -0.042758, 0.728414 -2086, -0.052965, -0.681491, -0.043200, 0.728628 -2087, -0.053630, -0.681183, -0.043640, 0.728841 -2088, -0.054297, -0.680875, -0.044080, 0.729052 -2089, -0.054966, -0.680568, -0.044518, 0.729263 -2090, -0.055635, -0.680260, -0.044955, 0.729473 -2091, -0.056305, -0.679951, -0.045391, 0.729682 -2092, -0.056977, -0.679643, -0.045825, 0.729890 -2093, -0.057650, -0.679335, -0.046258, 0.730096 -2094, -0.058324, -0.679026, -0.046689, 0.730302 -2095, -0.059000, -0.678718, -0.047120, 0.730507 -2096, -0.059676, -0.678409, -0.047549, 0.730711 -2097, -0.060354, -0.678100, -0.047977, 0.730914 -2098, -0.061033, -0.677791, -0.048403, 0.731116 -2099, -0.061713, -0.677482, -0.048828, 0.731317 -2100, -0.062394, -0.677173, -0.049252, 0.731517 -2101, -0.063076, -0.676864, -0.049675, 0.731716 -2102, -0.063760, -0.676555, -0.050096, 0.731914 -2103, -0.064444, -0.676246, -0.050516, 0.732111 -2104, -0.065130, -0.675936, -0.050935, 0.732307 -2105, -0.065817, -0.675627, -0.051352, 0.732502 -2106, -0.066506, -0.675317, -0.051768, 0.732696 -2107, -0.067195, -0.675008, -0.052183, 0.732889 -2108, -0.067886, -0.674698, -0.052597, 0.733081 -2109, -0.068577, -0.674389, -0.053009, 0.733271 -2110, -0.069270, -0.674079, -0.053420, 0.733461 -2111, -0.069964, -0.673769, -0.053829, 0.733650 -2112, -0.070659, -0.673460, -0.054238, 0.733838 -2113, -0.071356, -0.673150, -0.054645, 0.734024 -2114, -0.072053, -0.672840, -0.055051, 0.734210 -2115, -0.072752, -0.672530, -0.055455, 0.734394 -2116, -0.073451, -0.672221, -0.055859, 0.734577 -2117, -0.074152, -0.671911, -0.056261, 0.734760 -2118, -0.074854, -0.671601, -0.056661, 0.734941 -2119, -0.075557, -0.671291, -0.057061, 0.735121 -2120, -0.076262, -0.670982, -0.057459, 0.735300 -2121, -0.076967, -0.670672, -0.057856, 0.735478 -2122, -0.077673, -0.670362, -0.058252, 0.735655 -2123, -0.078381, -0.670052, -0.058646, 0.735831 -2124, -0.079090, -0.669742, -0.059039, 0.736006 -2125, -0.079800, -0.669433, -0.059431, 0.736179 -2126, -0.080511, -0.669123, -0.059821, 0.736352 -2127, -0.081223, -0.668813, -0.060211, 0.736523 -2128, -0.081936, -0.668504, -0.060599, 0.736693 -2129, -0.082651, -0.668194, -0.060985, 0.736862 -2130, -0.083366, -0.667885, -0.061371, 0.737030 -2131, -0.084083, -0.667575, -0.061755, 0.737197 -2132, -0.084800, -0.667266, -0.062138, 0.737363 -2133, -0.085519, -0.666957, -0.062520, 0.737527 -2134, -0.086239, -0.666647, -0.062900, 0.737691 -2135, -0.086960, -0.666338, -0.063279, 0.737853 -2136, -0.087682, -0.666029, -0.063657, 0.738014 -2137, -0.088405, -0.665720, -0.064034, 0.738174 -2138, -0.089129, -0.665411, -0.064409, 0.738333 -2139, -0.089855, -0.665102, -0.064784, 0.738490 -2140, -0.090581, -0.664794, -0.065157, 0.738647 -2141, -0.091308, -0.664485, -0.065528, 0.738802 -2142, -0.092037, -0.664176, -0.065899, 0.738956 -2143, -0.092767, -0.663868, -0.066268, 0.739109 -2144, -0.093497, -0.663560, -0.066636, 0.739261 -2145, -0.094229, -0.663251, -0.067002, 0.739411 -2146, -0.094962, -0.662943, -0.067368, 0.739561 -2147, -0.095696, -0.662635, -0.067732, 0.739709 -2148, -0.096431, -0.662327, -0.068095, 0.739856 -2149, -0.097167, -0.662020, -0.068457, 0.740001 -2150, -0.097904, -0.661712, -0.068817, 0.740146 -2151, -0.098642, -0.661405, -0.069177, 0.740289 -2152, -0.099381, -0.661097, -0.069535, 0.740431 -2153, -0.100121, -0.660790, -0.069892, 0.740572 -2154, -0.100863, -0.660483, -0.070247, 0.740712 -2155, -0.101605, -0.660176, -0.070602, 0.740850 -2156, -0.102348, -0.659870, -0.070955, 0.740987 -2157, -0.103093, -0.659563, -0.071307, 0.741123 -2158, -0.103838, -0.659257, -0.071657, 0.741258 -2159, -0.104584, -0.658951, -0.072007, 0.741391 -2160, -0.105332, -0.658645, -0.072355, 0.741523 -2161, -0.106080, -0.658339, -0.072702, 0.741654 -2162, -0.106830, -0.658033, -0.073048, 0.741784 -2163, -0.107581, -0.657728, -0.073393, 0.741912 -2164, -0.108332, -0.657423, -0.073736, 0.742040 -2165, -0.109085, -0.657118, -0.074078, 0.742165 -2166, -0.109838, -0.656813, -0.074419, 0.742290 -2167, -0.110593, -0.656508, -0.074759, 0.742413 -2168, -0.111348, -0.656204, -0.075098, 0.742535 -2169, -0.112105, -0.655900, -0.075435, 0.742656 -2170, -0.112863, -0.655596, -0.075771, 0.742775 -2171, -0.113621, -0.655292, -0.076106, 0.742893 -2172, -0.114381, -0.654988, -0.076440, 0.743010 -2173, -0.115141, -0.654685, -0.076773, 0.743126 -2174, -0.115903, -0.654382, -0.077104, 0.743240 -2175, -0.116665, -0.654079, -0.077434, 0.743353 -2176, -0.117429, -0.653777, -0.077763, 0.743464 -2177, -0.118193, -0.653474, -0.078091, 0.743575 -2178, -0.118959, -0.653172, -0.078418, 0.743684 -2179, -0.119725, -0.652870, -0.078743, 0.743791 -2180, -0.120493, -0.652569, -0.079068, 0.743898 -2181, -0.121261, -0.652268, -0.079391, 0.744003 -2182, -0.122030, -0.651967, -0.079713, 0.744106 -2183, -0.122800, -0.651666, -0.080033, 0.744208 -2184, -0.123572, -0.651366, -0.080353, 0.744309 -2185, -0.124344, -0.651065, -0.080671, 0.744409 -2186, -0.125117, -0.650765, -0.080989, 0.744507 -2187, -0.125891, -0.650466, -0.081305, 0.744604 -2188, -0.126666, -0.650167, -0.081620, 0.744700 -2189, -0.127442, -0.649868, -0.081933, 0.744794 -2190, -0.128219, -0.649569, -0.082246, 0.744886 -2191, -0.128997, -0.649270, -0.082557, 0.744978 -2192, -0.129775, -0.648972, -0.082868, 0.745068 -2193, -0.130555, -0.648675, -0.083177, 0.745156 -2194, -0.131336, -0.648377, -0.083485, 0.745244 -2195, -0.132117, -0.648080, -0.083792, 0.745330 -2196, -0.132900, -0.647783, -0.084097, 0.745414 -2197, -0.133683, -0.647487, -0.084402, 0.745497 -2198, -0.134467, -0.647191, -0.084705, 0.745579 -2199, -0.135252, -0.646895, -0.085008, 0.745659 -2200, -0.136038, -0.646599, -0.085309, 0.745738 -2201, -0.136825, -0.646304, -0.085609, 0.745815 -2202, -0.137613, -0.646010, -0.085907, 0.745892 -2203, -0.138402, -0.645715, -0.086205, 0.745966 -2204, -0.139191, -0.645421, -0.086502, 0.746039 -2205, -0.139982, -0.645127, -0.086797, 0.746111 -2206, -0.140773, -0.644834, -0.087092, 0.746182 -2207, -0.141566, -0.644541, -0.087385, 0.746250 -2208, -0.142359, -0.644249, -0.087677, 0.746318 -2209, -0.143153, -0.643956, -0.087968, 0.746384 -2210, -0.143948, -0.643665, -0.088258, 0.746449 -2211, -0.144743, -0.643373, -0.088546, 0.746512 -2212, -0.145540, -0.643082, -0.088834, 0.746574 -2213, -0.146337, -0.642791, -0.089121, 0.746634 -2214, -0.147136, -0.642501, -0.089406, 0.746693 -2215, -0.147935, -0.642211, -0.089690, 0.746750 -2216, -0.148735, -0.641922, -0.089973, 0.746806 -2217, -0.149536, -0.641633, -0.090256, 0.746860 -2218, -0.150337, -0.641344, -0.090537, 0.746913 -2219, -0.151140, -0.641056, -0.090816, 0.746965 -2220, -0.151943, -0.640768, -0.091095, 0.747015 -2221, -0.152747, -0.640481, -0.091373, 0.747063 -2222, -0.153552, -0.640194, -0.091650, 0.747110 -2223, -0.154358, -0.639907, -0.091925, 0.747156 -2224, -0.155165, -0.639621, -0.092200, 0.747200 -2225, -0.155972, -0.639336, -0.092473, 0.747243 -2226, -0.156780, -0.639050, -0.092745, 0.747284 -2227, -0.157589, -0.638766, -0.093017, 0.747323 -2228, -0.158399, -0.638481, -0.093287, 0.747361 -2229, -0.159210, -0.638197, -0.093556, 0.747398 -2230, -0.160021, -0.637914, -0.093824, 0.747433 -2231, -0.160834, -0.637631, -0.094091, 0.747466 -2232, -0.161647, -0.637349, -0.094357, 0.747498 -2233, -0.162460, -0.637067, -0.094622, 0.747529 -2234, -0.163275, -0.636785, -0.094886, 0.747558 -2235, -0.164090, -0.636504, -0.095148, 0.747585 -2236, -0.164907, -0.636223, -0.095410, 0.747611 -2237, -0.165723, -0.635943, -0.095671, 0.747636 -2238, -0.166541, -0.635664, -0.095930, 0.747658 -2239, -0.167360, -0.635385, -0.096189, 0.747680 -2240, -0.168179, -0.635106, -0.096446, 0.747699 -2241, -0.168999, -0.634828, -0.096703, 0.747718 -2242, -0.169819, -0.634550, -0.096958, 0.747734 -2243, -0.170641, -0.634273, -0.097213, 0.747749 -2244, -0.171463, -0.633996, -0.097466, 0.747763 -2245, -0.172286, -0.633720, -0.097718, 0.747775 -2246, -0.173109, -0.633445, -0.097970, 0.747785 -2247, -0.173934, -0.633170, -0.098220, 0.747794 -2248, -0.174759, -0.632895, -0.098469, 0.747802 -2249, -0.175585, -0.632621, -0.098718, 0.747807 -2250, -0.176411, -0.632347, -0.098965, 0.747811 -2251, -0.177238, -0.632074, -0.099211, 0.747814 -2252, -0.178066, -0.631802, -0.099457, 0.747815 -2253, -0.178895, -0.631530, -0.099701, 0.747814 -2254, -0.179724, -0.631259, -0.099944, 0.747812 -2255, -0.180554, -0.630988, -0.100186, 0.747808 -2256, -0.181385, -0.630718, -0.100428, 0.747803 -2257, -0.182217, -0.630448, -0.100668, 0.747796 -2258, -0.183049, -0.630179, -0.100907, 0.747787 -2259, -0.183881, -0.629910, -0.101145, 0.747777 -2260, -0.184715, -0.629642, -0.101383, 0.747765 -2261, -0.185549, -0.629374, -0.101619, 0.747752 -2262, -0.186384, -0.629108, -0.101854, 0.747737 -2263, -0.187219, -0.628841, -0.102089, 0.747720 -2264, -0.188055, -0.628575, -0.102322, 0.747702 -2265, -0.188892, -0.628310, -0.102555, 0.747682 -2266, -0.189730, -0.628046, -0.102786, 0.747661 -2267, -0.190568, -0.627782, -0.103017, 0.747637 -2268, -0.191407, -0.627518, -0.103246, 0.747613 -2269, -0.192246, -0.627255, -0.103475, 0.747586 -2270, -0.193086, -0.626993, -0.103702, 0.747558 -2271, -0.193927, -0.626731, -0.103929, 0.747529 -2272, -0.194768, -0.626470, -0.104155, 0.747497 -2273, -0.195610, -0.626210, -0.104380, 0.747464 -2274, -0.196452, -0.625950, -0.104603, 0.747430 -2275, -0.197295, -0.625691, -0.104826, 0.747393 -2276, -0.198139, -0.625432, -0.105048, 0.747355 -2277, -0.198983, -0.625174, -0.105269, 0.747316 -2278, -0.199828, -0.624917, -0.105490, 0.747275 -2279, -0.200674, -0.624660, -0.105709, 0.747232 -2280, -0.201520, -0.624404, -0.105927, 0.747187 -2281, -0.202367, -0.624149, -0.106144, 0.747141 -2282, -0.203214, -0.623894, -0.106361, 0.747093 -2283, -0.204062, -0.623640, -0.106576, 0.747043 -2284, -0.204910, -0.623386, -0.106791, 0.746992 -2285, -0.205759, -0.623133, -0.107005, 0.746939 -2286, -0.206609, -0.622881, -0.107217, 0.746885 -2287, -0.207459, -0.622629, -0.107429, 0.746828 -2288, -0.208310, -0.622378, -0.107640, 0.746770 -2289, -0.209161, -0.622128, -0.107850, 0.746711 -2290, -0.210013, -0.621878, -0.108060, 0.746649 -2291, -0.210865, -0.621629, -0.108268, 0.746586 -2292, -0.211718, -0.621381, -0.108475, 0.746521 -2293, -0.212572, -0.621133, -0.108682, 0.746455 -2294, -0.213426, -0.620886, -0.108888, 0.746387 -2295, -0.214280, -0.620640, -0.109093, 0.746317 -2296, -0.215135, -0.620394, -0.109297, 0.746245 -2297, -0.215991, -0.620150, -0.109500, 0.746172 -2298, -0.216847, -0.619905, -0.109702, 0.746097 -2299, -0.217703, -0.619662, -0.109903, 0.746020 -2300, -0.218560, -0.619419, -0.110104, 0.745942 -2301, -0.219418, -0.619177, -0.110303, 0.745861 -2302, -0.220276, -0.618935, -0.110502, 0.745780 -2303, -0.221135, -0.618694, -0.110700, 0.745696 -2304, -0.221994, -0.618454, -0.110897, 0.745611 -2305, -0.222853, -0.618215, -0.111093, 0.745523 -2306, -0.223713, -0.617976, -0.111289, 0.745435 -2307, -0.224574, -0.617738, -0.111483, 0.745344 -2308, -0.225435, -0.617501, -0.111677, 0.745252 -2309, -0.226296, -0.617264, -0.111870, 0.745158 -2310, -0.227158, -0.617029, -0.112062, 0.745062 -2311, -0.228020, -0.616793, -0.112253, 0.744964 -2312, -0.228883, -0.616559, -0.112444, 0.744865 -2313, -0.229746, -0.616325, -0.112634, 0.744764 -2314, -0.230610, -0.616092, -0.112822, 0.744661 -2315, -0.231474, -0.615860, -0.113010, 0.744557 -2316, -0.232338, -0.615629, -0.113198, 0.744450 -2317, -0.233203, -0.615398, -0.113384, 0.744342 -2318, -0.234069, -0.615168, -0.113570, 0.744232 -2319, -0.234935, -0.614939, -0.113755, 0.744121 -2320, -0.235801, -0.614710, -0.113939, 0.744007 -2321, -0.236668, -0.614483, -0.114122, 0.743892 -2322, -0.237535, -0.614256, -0.114304, 0.743775 -2323, -0.238402, -0.614029, -0.114486, 0.743657 -2324, -0.239270, -0.613804, -0.114667, 0.743536 -2325, -0.240138, -0.613579, -0.114847, 0.743414 -2326, -0.241007, -0.613355, -0.115027, 0.743290 -2327, -0.241876, -0.613132, -0.115205, 0.743164 -2328, -0.242745, -0.612910, -0.115383, 0.743036 -2329, -0.243615, -0.612688, -0.115560, 0.742907 -2330, -0.244485, -0.612467, -0.115737, 0.742776 -2331, -0.245355, -0.612247, -0.115912, 0.742643 -2332, -0.246226, -0.612028, -0.116087, 0.742508 -2333, -0.247097, -0.611809, -0.116261, 0.742372 -2334, -0.247969, -0.611592, -0.116435, 0.742233 -2335, -0.248841, -0.611375, -0.116607, 0.742093 -2336, -0.249713, -0.611158, -0.116779, 0.741951 -2337, -0.250585, -0.610943, -0.116950, 0.741807 -2338, -0.251458, -0.610728, -0.117121, 0.741662 -2339, -0.252332, -0.610515, -0.117291, 0.741514 -2340, -0.253205, -0.610302, -0.117460, 0.741365 -2341, -0.254079, -0.610089, -0.117628, 0.741214 -2342, -0.254953, -0.609878, -0.117796, 0.741061 -2343, -0.255827, -0.609668, -0.117962, 0.740907 -2344, -0.256702, -0.609458, -0.118129, 0.740750 -2345, -0.257577, -0.609249, -0.118294, 0.740592 -2346, -0.258453, -0.609041, -0.118459, 0.740432 -2347, -0.259328, -0.608833, -0.118623, 0.740270 -2348, -0.260204, -0.608627, -0.118786, 0.740106 -2349, -0.261080, -0.608421, -0.118949, 0.739940 -2350, -0.261957, -0.608216, -0.119111, 0.739773 -2351, -0.262833, -0.608012, -0.119273, 0.739604 -2352, -0.263710, -0.607809, -0.119433, 0.739433 -2353, -0.264588, -0.607607, -0.119593, 0.739260 -2354, -0.265465, -0.607405, -0.119753, 0.739085 -2355, -0.266343, -0.607204, -0.119912, 0.738908 -2356, -0.267221, -0.607005, -0.120070, 0.738730 -2357, -0.268099, -0.606806, -0.120227, 0.738550 -2358, -0.268977, -0.606607, -0.120384, 0.738367 -2359, -0.269856, -0.606410, -0.120540, 0.738183 -2360, -0.270735, -0.606213, -0.120695, 0.737998 -2361, -0.271614, -0.606018, -0.120850, 0.737810 -2362, -0.272493, -0.605823, -0.121004, 0.737620 -2363, -0.273373, -0.605629, -0.121158, 0.737429 -2364, -0.274253, -0.605436, -0.121311, 0.737236 -2365, -0.275133, -0.605244, -0.121463, 0.737040 -2366, -0.276013, -0.605052, -0.121615, 0.736844 -2367, -0.276893, -0.604862, -0.121766, 0.736645 -2368, -0.277774, -0.604672, -0.121917, 0.736444 -2369, -0.278654, -0.604483, -0.122067, 0.736241 -2370, -0.279535, -0.604296, -0.122216, 0.736037 -2371, -0.280416, -0.604108, -0.122365, 0.735831 -2372, -0.281297, -0.603922, -0.122513, 0.735622 -2373, -0.282178, -0.603737, -0.122660, 0.735412 -2374, -0.283060, -0.603553, -0.122807, 0.735200 -2375, -0.283942, -0.603369, -0.122953, 0.734987 -2376, -0.284823, -0.603186, -0.123099, 0.734771 -2377, -0.285705, -0.603005, -0.123244, 0.734553 -2378, -0.286587, -0.602824, -0.123389, 0.734334 -2379, -0.287469, -0.602644, -0.123533, 0.734113 -2380, -0.288352, -0.602465, -0.123676, 0.733890 -2381, -0.289234, -0.602286, -0.123819, 0.733664 -2382, -0.290117, -0.602109, -0.123962, 0.733437 -2383, -0.290999, -0.601933, -0.124104, 0.733209 -2384, -0.291882, -0.601757, -0.124245, 0.732978 -2385, -0.292765, -0.601582, -0.124386, 0.732745 -2386, -0.293648, -0.601409, -0.124526, 0.732511 -2387, -0.294531, -0.601236, -0.124665, 0.732274 -2388, -0.295414, -0.601064, -0.124805, 0.732036 -2389, -0.296297, -0.600893, -0.124943, 0.731796 -2390, -0.297180, -0.600723, -0.125081, 0.731554 -2391, -0.298063, -0.600554, -0.125219, 0.731310 -2392, -0.298947, -0.600385, -0.125356, 0.731064 -2393, -0.299830, -0.600218, -0.125492, 0.730816 -2394, -0.300713, -0.600051, -0.125628, 0.730566 -2395, -0.301597, -0.599886, -0.125764, 0.730315 -2396, -0.302480, -0.599721, -0.125899, 0.730061 -2397, -0.303364, -0.599557, -0.126033, 0.729806 -2398, -0.304248, -0.599395, -0.126167, 0.729549 -2399, -0.305131, -0.599233, -0.126301, 0.729289 -2400, -0.306015, -0.599072, -0.126434, 0.729028 -2401, -0.306898, -0.598912, -0.126567, 0.728765 -2402, -0.307782, -0.598753, -0.126699, 0.728500 -2403, -0.308666, -0.598595, -0.126830, 0.728233 -2404, -0.309549, -0.598437, -0.126962, 0.727965 -2405, -0.310433, -0.598281, -0.127092, 0.727694 -2406, -0.311317, -0.598126, -0.127223, 0.727421 -2407, -0.312200, -0.597971, -0.127353, 0.727147 -2408, -0.313084, -0.597818, -0.127482, 0.726870 -2409, -0.313968, -0.597665, -0.127611, 0.726592 -2410, -0.314851, -0.597514, -0.127739, 0.726312 -2411, -0.315735, -0.597363, -0.127867, 0.726030 -2412, -0.316618, -0.597213, -0.127995, 0.725745 -2413, -0.317501, -0.597065, -0.128122, 0.725459 -2414, -0.318385, -0.596917, -0.128249, 0.725171 -2415, -0.319268, -0.596770, -0.128375, 0.724882 -2416, -0.320151, -0.596624, -0.128501, 0.724590 -2417, -0.321034, -0.596479, -0.128627, 0.724296 -2418, -0.321917, -0.596335, -0.128752, 0.724000 -2419, -0.322800, -0.596192, -0.128877, 0.723703 -2420, -0.323683, -0.596050, -0.129001, 0.723403 -2421, -0.324566, -0.595909, -0.129125, 0.723102 -2422, -0.325449, -0.595769, -0.129248, 0.722798 -2423, -0.326332, -0.595629, -0.129372, 0.722493 -2424, -0.327214, -0.595491, -0.129494, 0.722186 -2425, -0.328096, -0.595354, -0.129617, 0.721877 -2426, -0.328979, -0.595218, -0.129739, 0.721566 -2427, -0.329861, -0.595082, -0.129860, 0.721252 -2428, -0.330743, -0.594948, -0.129982, 0.720938 -2429, -0.331625, -0.594815, -0.130103, 0.720621 -2430, -0.332507, -0.594682, -0.130223, 0.720302 -2431, -0.333388, -0.594551, -0.130343, 0.719981 -2432, -0.334270, -0.594420, -0.130463, 0.719658 -2433, -0.335151, -0.594291, -0.130583, 0.719333 -2434, -0.336032, -0.594162, -0.130702, 0.719007 -2435, -0.336913, -0.594034, -0.130821, 0.718678 -2436, -0.337794, -0.593908, -0.130939, 0.718348 -2437, -0.338675, -0.593782, -0.131058, 0.718015 -2438, -0.339555, -0.593658, -0.131175, 0.717681 -2439, -0.340435, -0.593534, -0.131293, 0.717345 -2440, -0.341315, -0.593411, -0.131410, 0.717006 -2441, -0.342195, -0.593290, -0.131527, 0.716666 -2442, -0.343075, -0.593169, -0.131644, 0.716324 -2443, -0.343954, -0.593049, -0.131760, 0.715980 -2444, -0.344834, -0.592931, -0.131876, 0.715634 -2445, -0.345713, -0.592813, -0.131992, 0.715286 -2446, -0.346591, -0.592696, -0.132107, 0.714936 -2447, -0.347470, -0.592580, -0.132223, 0.714584 -2448, -0.348348, -0.592466, -0.132337, 0.714230 -2449, -0.349226, -0.592352, -0.132452, 0.713874 -2450, -0.350104, -0.592239, -0.132566, 0.713517 -2451, -0.350982, -0.592127, -0.132681, 0.713157 -2452, -0.351859, -0.592017, -0.132794, 0.712795 -2453, -0.352736, -0.591907, -0.132908, 0.712432 -2454, -0.353613, -0.591798, -0.133021, 0.712066 -2455, -0.354490, -0.591690, -0.133134, 0.711699 -2456, -0.355366, -0.591583, -0.133247, 0.711329 -2457, -0.356242, -0.591478, -0.133360, 0.710958 -2458, -0.357118, -0.591373, -0.133472, 0.710585 -2459, -0.357993, -0.591269, -0.133584, 0.710209 -2460, -0.358868, -0.591166, -0.133696, 0.709832 -2461, -0.359743, -0.591065, -0.133808, 0.709453 -2462, -0.360617, -0.590964, -0.133919, 0.709072 -2463, -0.361491, -0.590864, -0.134031, 0.708689 -2464, -0.362365, -0.590765, -0.134142, 0.708303 -2465, -0.363239, -0.590667, -0.134253, 0.707916 -2466, -0.364112, -0.590571, -0.134363, 0.707527 -2467, -0.364985, -0.590475, -0.134474, 0.707137 -2468, -0.365857, -0.590380, -0.134584, 0.706744 -2469, -0.366729, -0.590287, -0.134694, 0.706349 -2470, -0.367601, -0.590194, -0.134804, 0.705952 -2471, -0.368473, -0.590102, -0.134914, 0.705553 -2472, -0.369344, -0.590012, -0.135023, 0.705153 -2473, -0.370214, -0.589922, -0.135133, 0.704750 -2474, -0.371085, -0.589833, -0.135242, 0.704345 -2475, -0.371955, -0.589746, -0.135351, 0.703939 -2476, -0.372824, -0.589659, -0.135460, 0.703530 -2477, -0.373693, -0.589573, -0.135569, 0.703120 -2478, -0.374562, -0.589489, -0.135677, 0.702708 -2479, -0.375431, -0.589405, -0.135786, 0.702293 -2480, -0.376298, -0.589323, -0.135894, 0.701877 -2481, -0.377166, -0.589241, -0.136002, 0.701459 -2482, -0.378033, -0.589161, -0.136110, 0.701038 -2483, -0.378900, -0.589081, -0.136218, 0.700616 -2484, -0.379766, -0.589003, -0.136326, 0.700192 -2485, -0.380632, -0.588925, -0.136434, 0.699766 -2486, -0.381497, -0.588849, -0.136541, 0.699338 -2487, -0.382362, -0.588773, -0.136649, 0.698908 -2488, -0.383227, -0.588699, -0.136756, 0.698476 -2489, -0.384091, -0.588626, -0.136863, 0.698042 -2490, -0.384954, -0.588553, -0.136971, 0.697606 -2491, -0.385817, -0.588482, -0.137078, 0.697168 -2492, -0.386680, -0.588412, -0.137185, 0.696729 -2493, -0.387542, -0.588342, -0.137292, 0.696287 -2494, -0.388404, -0.588274, -0.137399, 0.695843 -2495, -0.389265, -0.588207, -0.137505, 0.695398 -2496, -0.390125, -0.588141, -0.137612, 0.694950 -2497, -0.390986, -0.588075, -0.137719, 0.694501 -2498, -0.391845, -0.588011, -0.137825, 0.694049 -2499, -0.392704, -0.587948, -0.137932, 0.693596 -2500, -0.393563, -0.587886, -0.138038, 0.693140 -2501, -0.394421, -0.587825, -0.138145, 0.692683 -2502, -0.395279, -0.587765, -0.138251, 0.692224 -2503, -0.396136, -0.587706, -0.138358, 0.691763 -2504, -0.396992, -0.587648, -0.138464, 0.691299 -2505, -0.397848, -0.587591, -0.138570, 0.690834 -2506, -0.398703, -0.587535, -0.138677, 0.690367 -2507, -0.399558, -0.587480, -0.138783, 0.689898 -2508, -0.400412, -0.587426, -0.138889, 0.689427 -2509, -0.401266, -0.587373, -0.138996, 0.688954 -2510, -0.402119, -0.587322, -0.139102, 0.688480 -2511, -0.402972, -0.587271, -0.139208, 0.688003 -2512, -0.403824, -0.587221, -0.139315, 0.687524 -2513, -0.404675, -0.587172, -0.139421, 0.687043 -2514, -0.405526, -0.587125, -0.139527, 0.686561 -2515, -0.406376, -0.587078, -0.139633, 0.686076 -2516, -0.407226, -0.587032, -0.139740, 0.685590 -2517, -0.408075, -0.586988, -0.139846, 0.685101 -2518, -0.408923, -0.586944, -0.139953, 0.684611 -2519, -0.409771, -0.586901, -0.140059, 0.684119 -2520, -0.410618, -0.586860, -0.140166, 0.683624 -2521, -0.411464, -0.586819, -0.140272, 0.683128 -2522, -0.412310, -0.586780, -0.140379, 0.682630 -2523, -0.413155, -0.586741, -0.140485, 0.682130 -2524, -0.414000, -0.586704, -0.140592, 0.681628 -2525, -0.414844, -0.586668, -0.140699, 0.681124 -2526, -0.415687, -0.586632, -0.140806, 0.680618 -2527, -0.416529, -0.586598, -0.140913, 0.680110 -2528, -0.417371, -0.586565, -0.141020, 0.679600 -2529, -0.418212, -0.586532, -0.141127, 0.679089 -2530, -0.419053, -0.586501, -0.141234, 0.678575 -2531, -0.419893, -0.586471, -0.141341, 0.678060 -2532, -0.420732, -0.586442, -0.141449, 0.677542 -2533, -0.421570, -0.586413, -0.141556, 0.677023 -2534, -0.422408, -0.586386, -0.141664, 0.676501 -2535, -0.423245, -0.586360, -0.141771, 0.675978 -2536, -0.424081, -0.586335, -0.141879, 0.675453 -2537, -0.424917, -0.586311, -0.141987, 0.674926 -2538, -0.425751, -0.586288, -0.142095, 0.674397 -2539, -0.426586, -0.586266, -0.142203, 0.673866 -2540, -0.427419, -0.586245, -0.142311, 0.673333 -2541, -0.428252, -0.586225, -0.142420, 0.672798 -2542, -0.429083, -0.586206, -0.142528, 0.672262 -2543, -0.429915, -0.586188, -0.142637, 0.671723 -2544, -0.430745, -0.586171, -0.142746, 0.671182 -2545, -0.431574, -0.586155, -0.142855, 0.670640 -2546, -0.432403, -0.586140, -0.142964, 0.670096 -2547, -0.433231, -0.586127, -0.143073, 0.669549 -2548, -0.434059, -0.586114, -0.143183, 0.669001 -2549, -0.434885, -0.586102, -0.143293, 0.668451 -2550, -0.435711, -0.586091, -0.143402, 0.667899 -2551, -0.436536, -0.586082, -0.143512, 0.667345 -2552, -0.437360, -0.586073, -0.143623, 0.666789 -2553, -0.438183, -0.586065, -0.143733, 0.666231 -2554, -0.439005, -0.586058, -0.143844, 0.665672 -2555, -0.439827, -0.586053, -0.143954, 0.665110 -2556, -0.440648, -0.586048, -0.144065, 0.664547 -2557, -0.441468, -0.586044, -0.144177, 0.663981 -2558, -0.442287, -0.586042, -0.144288, 0.663414 -2559, -0.443105, -0.586040, -0.144400, 0.662845 -2560, -0.443923, -0.586040, -0.144512, 0.662274 -2561, -0.444739, -0.586040, -0.144624, 0.661701 -2562, -0.445555, -0.586042, -0.144736, 0.661126 -2563, -0.446370, -0.586044, -0.144849, 0.660549 -2564, -0.447184, -0.586047, -0.144961, 0.659971 -2565, -0.447997, -0.586052, -0.145074, 0.659390 -2566, -0.448809, -0.586057, -0.145188, 0.658808 -2567, -0.449621, -0.586064, -0.145301, 0.658223 -2568, -0.450431, -0.586071, -0.145415, 0.657637 -2569, -0.451241, -0.586080, -0.145529, 0.657049 -2570, -0.452049, -0.586090, -0.145643, 0.656459 -2571, -0.452857, -0.586100, -0.145758, 0.655867 -2572, -0.453664, -0.586112, -0.145873, 0.655273 -2573, -0.454470, -0.586124, -0.145988, 0.654678 -2574, -0.455275, -0.586138, -0.146104, 0.654080 -2575, -0.456079, -0.586152, -0.146219, 0.653481 -2576, -0.456882, -0.586168, -0.146335, 0.652880 -2577, -0.457684, -0.586184, -0.146452, 0.652277 -2578, -0.458486, -0.586202, -0.146568, 0.651672 -2579, -0.459286, -0.586221, -0.146685, 0.651065 -2580, -0.460085, -0.586240, -0.146802, 0.650456 -2581, -0.460884, -0.586261, -0.146920, 0.649845 -2582, -0.461681, -0.586282, -0.147038, 0.649233 -2583, -0.462478, -0.586305, -0.147156, 0.648619 -2584, -0.463273, -0.586328, -0.147275, 0.648002 -2585, -0.464068, -0.586353, -0.147393, 0.647384 -2586, -0.464861, -0.586379, -0.147513, 0.646764 -2587, -0.465654, -0.586405, -0.147632, 0.646143 -2588, -0.466445, -0.586433, -0.147752, 0.645519 -2589, -0.467236, -0.586461, -0.147872, 0.644894 -2590, -0.468025, -0.586491, -0.147993, 0.644266 -2591, -0.468814, -0.586521, -0.148114, 0.643637 -2592, -0.469601, -0.586553, -0.148235, 0.643006 -2593, -0.470388, -0.586585, -0.148357, 0.642373 -2594, -0.471173, -0.586619, -0.148479, 0.641739 -2595, -0.471957, -0.586653, -0.148601, 0.641102 -2596, -0.472741, -0.586689, -0.148724, 0.640464 -2597, -0.473523, -0.586725, -0.148847, 0.639823 -2598, -0.474304, -0.586762, -0.148971, 0.639181 -2599, -0.475085, -0.586801, -0.149095, 0.638538 -2600, -0.475864, -0.586840, -0.149219, 0.637892 -2601, -0.476642, -0.586881, -0.149344, 0.637244 -2602, -0.477419, -0.586922, -0.149469, 0.636595 -2603, -0.478195, -0.586964, -0.149595, 0.635944 -2604, -0.478969, -0.587007, -0.149721, 0.635291 -2605, -0.479743, -0.587052, -0.149847, 0.634636 -2606, -0.480516, -0.587097, -0.149974, 0.633979 -2607, -0.481287, -0.587143, -0.150102, 0.633321 -2608, -0.482058, -0.587190, -0.150229, 0.632660 -2609, -0.482827, -0.587238, -0.150357, 0.631998 -2610, -0.483595, -0.587287, -0.150486, 0.631334 -2611, -0.484362, -0.587337, -0.150615, 0.630669 -2612, -0.485128, -0.587388, -0.150745, 0.630001 -2613, -0.485893, -0.587440, -0.150875, 0.629332 -2614, -0.486657, -0.587493, -0.151005, 0.628661 -2615, -0.487419, -0.587547, -0.151136, 0.627988 -2616, -0.488181, -0.587602, -0.151267, 0.627313 -2617, -0.488941, -0.587658, -0.151399, 0.626636 -2618, -0.489700, -0.587715, -0.151532, 0.625958 -2619, -0.490458, -0.587772, -0.151664, 0.625278 -2620, -0.491215, -0.587831, -0.151798, 0.624596 -2621, -0.491970, -0.587891, -0.151932, 0.623912 -2622, -0.492725, -0.587951, -0.152066, 0.623227 -2623, -0.493478, -0.588013, -0.152201, 0.622540 -2624, -0.494230, -0.588075, -0.152336, 0.621850 -2625, -0.494981, -0.588139, -0.152472, 0.621160 -2626, -0.495731, -0.588203, -0.152608, 0.620467 -2627, -0.496479, -0.588268, -0.152745, 0.619773 -2628, -0.497226, -0.588334, -0.152882, 0.619077 -2629, -0.497972, -0.588402, -0.153020, 0.618379 -2630, -0.498717, -0.588470, -0.153158, 0.617679 -2631, -0.499461, -0.588539, -0.153297, 0.616978 -2632, -0.500203, -0.588609, -0.153437, 0.616274 -2633, -0.500944, -0.588679, -0.153577, 0.615569 -2634, -0.501684, -0.588751, -0.153717, 0.614863 -2635, -0.502423, -0.588824, -0.153859, 0.614154 -2636, -0.503160, -0.588898, -0.154000, 0.613444 -2637, -0.503896, -0.588972, -0.154142, 0.612732 -2638, -0.504631, -0.589048, -0.154285, 0.612018 -2639, -0.505364, -0.589124, -0.154429, 0.611303 -2640, -0.506097, -0.589202, -0.154572, 0.610586 -2641, -0.506828, -0.589280, -0.154717, 0.609867 -2642, -0.507558, -0.589359, -0.154862, 0.609146 -2643, -0.508286, -0.589439, -0.155008, 0.608424 -2644, -0.509013, -0.589520, -0.155154, 0.607700 -2645, -0.509739, -0.589602, -0.155301, 0.606974 -2646, -0.510464, -0.589685, -0.155448, 0.606246 -2647, -0.511187, -0.589769, -0.155596, 0.605517 -2648, -0.511909, -0.589853, -0.155745, 0.604786 -2649, -0.512630, -0.589939, -0.155894, 0.604053 -2650, -0.513349, -0.590025, -0.156044, 0.603319 -2651, -0.514067, -0.590113, -0.156195, 0.602583 -2652, -0.514783, -0.590201, -0.156346, 0.601845 -2653, -0.515499, -0.590290, -0.156498, 0.601105 -2654, -0.516213, -0.590380, -0.156650, 0.600364 -2655, -0.516925, -0.590471, -0.156803, 0.599621 -2656, -0.517637, -0.590563, -0.156957, 0.598876 -2657, -0.518347, -0.590655, -0.157111, 0.598130 -2658, -0.519055, -0.590749, -0.157266, 0.597382 -2659, -0.519762, -0.590843, -0.157422, 0.596632 -2660, -0.520468, -0.590939, -0.157578, 0.595881 -2661, -0.521173, -0.591035, -0.157735, 0.595128 -2662, -0.521876, -0.591132, -0.157892, 0.594373 -2663, -0.522577, -0.591230, -0.158051, 0.593616 -2664, -0.523278, -0.591329, -0.158209, 0.592858 -2665, -0.523976, -0.591428, -0.158369, 0.592098 -2666, -0.524674, -0.591529, -0.158529, 0.591337 -2667, -0.525370, -0.591630, -0.158690, 0.590574 -2668, -0.526065, -0.591732, -0.158852, 0.589809 -2669, -0.526758, -0.591836, -0.159014, 0.589043 -2670, -0.527450, -0.591940, -0.159177, 0.588275 -2671, -0.528140, -0.592044, -0.159341, 0.587505 -2672, -0.528829, -0.592150, -0.159506, 0.586733 -2673, -0.529517, -0.592257, -0.159671, 0.585960 -2674, -0.530203, -0.592364, -0.159837, 0.585186 -2675, -0.530887, -0.592472, -0.160003, 0.584409 -2676, -0.531570, -0.592581, -0.160170, 0.583631 -2677, -0.532252, -0.592691, -0.160338, 0.582852 -2678, -0.532932, -0.592802, -0.160507, 0.582071 -2679, -0.533611, -0.592914, -0.160677, 0.581288 -2680, -0.534289, -0.593026, -0.160847, 0.580503 -2681, -0.534964, -0.593139, -0.161018, 0.579717 -2682, -0.535639, -0.593254, -0.161190, 0.578929 -2683, -0.536312, -0.593369, -0.161362, 0.578140 -2684, -0.536983, -0.593484, -0.161535, 0.577349 -2685, -0.537653, -0.593601, -0.161709, 0.576557 -2686, -0.538321, -0.593718, -0.161884, 0.575762 -2687, -0.538988, -0.593836, -0.162060, 0.574967 -2688, -0.539654, -0.593956, -0.162236, 0.574169 -2689, -0.540317, -0.594075, -0.162413, 0.573370 -2690, -0.540980, -0.594196, -0.162591, 0.572570 -2691, -0.541641, -0.594317, -0.162769, 0.571768 -2692, -0.542300, -0.594440, -0.162949, 0.570964 -2693, -0.542958, -0.594563, -0.163129, 0.570159 -2694, -0.543614, -0.594687, -0.163310, 0.569352 -2695, -0.544269, -0.594811, -0.163492, 0.568543 -2696, -0.544922, -0.594937, -0.163674, 0.567733 -2697, -0.545573, -0.595063, -0.163857, 0.566922 -2698, -0.546223, -0.595190, -0.164042, 0.566109 -2699, -0.546872, -0.595318, -0.164227, 0.565294 -2700, -0.547519, -0.595447, -0.164412, 0.564478 -2701, -0.548164, -0.595576, -0.164599, 0.563660 -2702, -0.548808, -0.595706, -0.164787, 0.562841 -2703, -0.549450, -0.595837, -0.164975, 0.562020 -2704, -0.550091, -0.595969, -0.165164, 0.561197 -2705, -0.550730, -0.596101, -0.165354, 0.560373 -2706, -0.551367, -0.596235, -0.165545, 0.559548 -2707, -0.552003, -0.596369, -0.165736, 0.558721 -2708, -0.552637, -0.596504, -0.165929, 0.557892 -2709, -0.553270, -0.596639, -0.166122, 0.557062 -2710, -0.553901, -0.596775, -0.166316, 0.556230 -2711, -0.554530, -0.596913, -0.166511, 0.555397 -2712, -0.555158, -0.597050, -0.166707, 0.554562 -2713, -0.555784, -0.597189, -0.166904, 0.553726 -2714, -0.556408, -0.597328, -0.167101, 0.552889 -2715, -0.557031, -0.597468, -0.167300, 0.552049 -2716, -0.557652, -0.597609, -0.167499, 0.551209 -2717, -0.558272, -0.597751, -0.167700, 0.550367 -2718, -0.558890, -0.597893, -0.167901, 0.549523 -2719, -0.559506, -0.598036, -0.168103, 0.548678 -2720, -0.560121, -0.598180, -0.168306, 0.547831 -2721, -0.560734, -0.598324, -0.168509, 0.546983 -2722, -0.561345, -0.598469, -0.168714, 0.546133 -2723, -0.561954, -0.598615, -0.168920, 0.545282 -2724, -0.562562, -0.598762, -0.169126, 0.544430 -2725, -0.563169, -0.598909, -0.169334, 0.543576 -2726, -0.563773, -0.599057, -0.169542, 0.542720 -2727, -0.564376, -0.599206, -0.169751, 0.541863 -2728, -0.564977, -0.599356, -0.169961, 0.541005 -2729, -0.565577, -0.599506, -0.170173, 0.540145 -2730, -0.566174, -0.599657, -0.170385, 0.539284 -2731, -0.566771, -0.599808, -0.170598, 0.538421 -2732, -0.567365, -0.599961, -0.170811, 0.537557 -2733, -0.567958, -0.600114, -0.171026, 0.536692 -2734, -0.568548, -0.600267, -0.171242, 0.535825 -2735, -0.569138, -0.600422, -0.171459, 0.534956 -2736, -0.569725, -0.600577, -0.171676, 0.534086 -2737, -0.570311, -0.600732, -0.171895, 0.533215 -2738, -0.570895, -0.600889, -0.172115, 0.532342 -2739, -0.571477, -0.601046, -0.172335, 0.531468 -2740, -0.572058, -0.601203, -0.172557, 0.530593 -2741, -0.572636, -0.601362, -0.172779, 0.529716 -2742, -0.573213, -0.601521, -0.173003, 0.528838 -2743, -0.573789, -0.601681, -0.173227, 0.527958 -2744, -0.574362, -0.601841, -0.173452, 0.527077 -2745, -0.574934, -0.602002, -0.173679, 0.526194 -2746, -0.575504, -0.602164, -0.173906, 0.525311 -2747, -0.576072, -0.602326, -0.174134, 0.524425 -2748, -0.576638, -0.602489, -0.174364, 0.523539 -2749, -0.577203, -0.602652, -0.174594, 0.522651 -2750, -0.577766, -0.602817, -0.174825, 0.521761 -2751, -0.578327, -0.602982, -0.175058, 0.520871 -2752, -0.578886, -0.603147, -0.175291, 0.519979 -2753, -0.579443, -0.603313, -0.175525, 0.519085 -2754, -0.579999, -0.603480, -0.175761, 0.518191 -2755, -0.580553, -0.603647, -0.175997, 0.517294 -2756, -0.581105, -0.603815, -0.176235, 0.516397 -2757, -0.581655, -0.603984, -0.176473, 0.515498 -2758, -0.582203, -0.604153, -0.176712, 0.514598 -2759, -0.582750, -0.604323, -0.176953, 0.513697 -2760, -0.583294, -0.604493, -0.177194, 0.512794 -2761, -0.583837, -0.604664, -0.177437, 0.511890 -2762, -0.584378, -0.604836, -0.177681, 0.510985 -2763, -0.584917, -0.605008, -0.177925, 0.510078 -2764, -0.585455, -0.605181, -0.178171, 0.509170 -2765, -0.585990, -0.605354, -0.178417, 0.508261 -2766, -0.586524, -0.605528, -0.178665, 0.507350 -2767, -0.587056, -0.605703, -0.178914, 0.506438 -2768, -0.587585, -0.605878, -0.179164, 0.505525 -2769, -0.588114, -0.606054, -0.179415, 0.504611 -2770, -0.588640, -0.606230, -0.179667, 0.503695 -2771, -0.589164, -0.606407, -0.179920, 0.502778 -2772, -0.589686, -0.606584, -0.180174, 0.501860 -2773, -0.590207, -0.606762, -0.180429, 0.500940 -2774, -0.590726, -0.606940, -0.180686, 0.500019 -2775, -0.591242, -0.607119, -0.180943, 0.499097 -2776, -0.591757, -0.607299, -0.181201, 0.498174 -2777, -0.592270, -0.607479, -0.181461, 0.497250 -2778, -0.592781, -0.607660, -0.181722, 0.496324 -2779, -0.593290, -0.607841, -0.181983, 0.495397 -2780, -0.593797, -0.608023, -0.182246, 0.494468 -2781, -0.594303, -0.608205, -0.182510, 0.493539 -2782, -0.594806, -0.608388, -0.182775, 0.492608 -2783, -0.595308, -0.608571, -0.183041, 0.491676 -2784, -0.595807, -0.608755, -0.183308, 0.490743 -2785, -0.596305, -0.608940, -0.183577, 0.489809 -2786, -0.596801, -0.609124, -0.183846, 0.488873 -2787, -0.597294, -0.609310, -0.184117, 0.487937 -2788, -0.597786, -0.609496, -0.184389, 0.486999 -2789, -0.598276, -0.609682, -0.184661, 0.486059 -2790, -0.598764, -0.609869, -0.184935, 0.485119 -2791, -0.599250, -0.610056, -0.185210, 0.484178 -2792, -0.599734, -0.610244, -0.185487, 0.483235 -2793, -0.600216, -0.610433, -0.185764, 0.482291 -2794, -0.600696, -0.610621, -0.186043, 0.481346 -2795, -0.601174, -0.610811, -0.186322, 0.480400 -2796, -0.601650, -0.611000, -0.186603, 0.479452 -2797, -0.602124, -0.611191, -0.186885, 0.478504 -2798, -0.602597, -0.611381, -0.187168, 0.477554 -2799, -0.603067, -0.611573, -0.187452, 0.476603 -2800, -0.603535, -0.611764, -0.187738, 0.475652 -2801, -0.604001, -0.611956, -0.188024, 0.474698 -2802, -0.604466, -0.612149, -0.188312, 0.473744 -2803, -0.604928, -0.612342, -0.188601, 0.472789 -2804, -0.605388, -0.612535, -0.188891, 0.471832 -2805, -0.605846, -0.612729, -0.189182, 0.470875 -2806, -0.606303, -0.612924, -0.189474, 0.469916 -2807, -0.606757, -0.613118, -0.189768, 0.468956 -2808, -0.607209, -0.613313, -0.190063, 0.467996 -2809, -0.607659, -0.613509, -0.190359, 0.467034 -2810, -0.608107, -0.613705, -0.190656, 0.466070 -2811, -0.608554, -0.613902, -0.190954, 0.465106 -2812, -0.608998, -0.614098, -0.191254, 0.464141 -2813, -0.609440, -0.614296, -0.191554, 0.463175 -2814, -0.609880, -0.614493, -0.191856, 0.462207 -2815, -0.610318, -0.614691, -0.192159, 0.461239 -2816, -0.610754, -0.614890, -0.192464, 0.460269 -2817, -0.611188, -0.615089, -0.192769, 0.459299 -2818, -0.611620, -0.615288, -0.193076, 0.458327 -2819, -0.612050, -0.615487, -0.193384, 0.457355 -2820, -0.612477, -0.615687, -0.193693, 0.456381 -2821, -0.612903, -0.615888, -0.194003, 0.455406 -2822, -0.613327, -0.616089, -0.194315, 0.454430 -2823, -0.613748, -0.616290, -0.194628, 0.453453 -2824, -0.614168, -0.616491, -0.194942, 0.452476 -2825, -0.614585, -0.616693, -0.195257, 0.451497 -2826, -0.615001, -0.616895, -0.195573, 0.450517 -2827, -0.615414, -0.617098, -0.195891, 0.449536 -2828, -0.615825, -0.617301, -0.196210, 0.448554 -2829, -0.616234, -0.617504, -0.196530, 0.447571 -2830, -0.616641, -0.617707, -0.196852, 0.446587 -2831, -0.617046, -0.617911, -0.197174, 0.445603 -2832, -0.617449, -0.618115, -0.197498, 0.444617 -2833, -0.617850, -0.618320, -0.197823, 0.443630 -2834, -0.618249, -0.618525, -0.198150, 0.442642 -2835, -0.618645, -0.618730, -0.198477, 0.441654 -2836, -0.619040, -0.618936, -0.198806, 0.440664 -2837, -0.619432, -0.619141, -0.199136, 0.439673 -2838, -0.619822, -0.619348, -0.199468, 0.438682 -2839, -0.620210, -0.619554, -0.199800, 0.437689 -2840, -0.620596, -0.619761, -0.200134, 0.436696 -2841, -0.620980, -0.619968, -0.200470, 0.435701 -2842, -0.621362, -0.620175, -0.200806, 0.434706 -2843, -0.621742, -0.620383, -0.201144, 0.433710 -2844, -0.622119, -0.620590, -0.201483, 0.432712 -2845, -0.622494, -0.620799, -0.201823, 0.431714 -2846, -0.622868, -0.621007, -0.202165, 0.430715 -2847, -0.623239, -0.621216, -0.202508, 0.429715 -2848, -0.623608, -0.621425, -0.202852, 0.428715 -2849, -0.623974, -0.621634, -0.203197, 0.427713 -2850, -0.624339, -0.621843, -0.203544, 0.426710 -2851, -0.624701, -0.622053, -0.203892, 0.425707 -2852, -0.625062, -0.622263, -0.204241, 0.424703 -2853, -0.625420, -0.622473, -0.204592, 0.423697 -2854, -0.625776, -0.622683, -0.204944, 0.422691 -2855, -0.626130, -0.622894, -0.205297, 0.421684 -2856, -0.626481, -0.623105, -0.205651, 0.420677 -2857, -0.626831, -0.623316, -0.206007, 0.419668 -2858, -0.627178, -0.623527, -0.206364, 0.418659 -2859, -0.627523, -0.623739, -0.206723, 0.417648 -2860, -0.627866, -0.623951, -0.207082, 0.416637 -2861, -0.628207, -0.624163, -0.207443, 0.415625 -2862, -0.628546, -0.624375, -0.207806, 0.414612 -2863, -0.628882, -0.624587, -0.208169, 0.413599 -2864, -0.629216, -0.624800, -0.208534, 0.412584 -2865, -0.629548, -0.625012, -0.208900, 0.411569 -2866, -0.629878, -0.625225, -0.209268, 0.410553 -2867, -0.630206, -0.625438, -0.209637, 0.409536 -2868, -0.630531, -0.625652, -0.210007, 0.408519 -2869, -0.630854, -0.625865, -0.210379, 0.407500 -2870, -0.631175, -0.626079, -0.210752, 0.406481 -2871, -0.631494, -0.626293, -0.211126, 0.405461 -2872, -0.631811, -0.626506, -0.211502, 0.404440 -2873, -0.632125, -0.626720, -0.211879, 0.403419 -2874, -0.632437, -0.626935, -0.212257, 0.402397 -2875, -0.632747, -0.627149, -0.212637, 0.401374 -2876, -0.633055, -0.627364, -0.213017, 0.400350 -2877, -0.633360, -0.627578, -0.213400, 0.399326 -2878, -0.633664, -0.627793, -0.213783, 0.398300 -2879, -0.633965, -0.628008, -0.214168, 0.397274 -2880, -0.634263, -0.628223, -0.214555, 0.396248 -2881, -0.634560, -0.628438, -0.214942, 0.395220 -2882, -0.634854, -0.628653, -0.215331, 0.394192 -2883, -0.635146, -0.628868, -0.215722, 0.393164 -2884, -0.635436, -0.629084, -0.216114, 0.392134 -2885, -0.635724, -0.629299, -0.216507, 0.391104 -2886, -0.636009, -0.629515, -0.216901, 0.390073 -2887, -0.636292, -0.629731, -0.217297, 0.389042 -2888, -0.636573, -0.629947, -0.217694, 0.388009 -2889, -0.636852, -0.630162, -0.218093, 0.386976 -2890, -0.637128, -0.630378, -0.218493, 0.385943 -2891, -0.637402, -0.630594, -0.218894, 0.384909 -2892, -0.637674, -0.630810, -0.219297, 0.383874 -2893, -0.637943, -0.631027, -0.219701, 0.382838 -2894, -0.638211, -0.631243, -0.220106, 0.381802 -2895, -0.638476, -0.631459, -0.220513, 0.380765 -2896, -0.638738, -0.631675, -0.220921, 0.379728 -2897, -0.638999, -0.631892, -0.221331, 0.378690 -2898, -0.639257, -0.632108, -0.221742, 0.377651 -2899, -0.639513, -0.632324, -0.222154, 0.376612 -2900, -0.639767, -0.632541, -0.222568, 0.375572 -2901, -0.640018, -0.632757, -0.222983, 0.374531 -2902, -0.640267, -0.632974, -0.223400, 0.373490 -2903, -0.640514, -0.633190, -0.223818, 0.372449 -2904, -0.640758, -0.633407, -0.224237, 0.371406 -2905, -0.641000, -0.633623, -0.224658, 0.370364 -2906, -0.641240, -0.633840, -0.225080, 0.369320 -2907, -0.641478, -0.634056, -0.225503, 0.368276 -2908, -0.641713, -0.634273, -0.225928, 0.367232 -2909, -0.641946, -0.634489, -0.226354, 0.366186 -2910, -0.642177, -0.634705, -0.226782, 0.365141 -2911, -0.642405, -0.634922, -0.227211, 0.364095 -2912, -0.642631, -0.635138, -0.227642, 0.363048 -2913, -0.642855, -0.635355, -0.228074, 0.362001 -2914, -0.643077, -0.635571, -0.228507, 0.360953 -2915, -0.643296, -0.635787, -0.228942, 0.359904 -2916, -0.643513, -0.636003, -0.229378, 0.358856 -2917, -0.643727, -0.636219, -0.229815, 0.357806 -2918, -0.643939, -0.636435, -0.230254, 0.356756 -2919, -0.644149, -0.636651, -0.230695, 0.355706 -2920, -0.644357, -0.636867, -0.231136, 0.354655 -2921, -0.644562, -0.637083, -0.231580, 0.353604 -2922, -0.644765, -0.637299, -0.232024, 0.352552 -2923, -0.644966, -0.637515, -0.232470, 0.351500 -2924, -0.645164, -0.637730, -0.232918, 0.350447 -2925, -0.645360, -0.637946, -0.233367, 0.349394 -2926, -0.645553, -0.638161, -0.233817, 0.348340 -2927, -0.645745, -0.638377, -0.234269, 0.347286 -2928, -0.645933, -0.638592, -0.234722, 0.346231 -2929, -0.646120, -0.638807, -0.235176, 0.345176 -2930, -0.646304, -0.639022, -0.235632, 0.344121 -2931, -0.646486, -0.639237, -0.236090, 0.343065 -2932, -0.646666, -0.639451, -0.236549, 0.342009 -2933, -0.646843, -0.639666, -0.237009, 0.340952 -2934, -0.647018, -0.639881, -0.237471, 0.339895 -2935, -0.647190, -0.640095, -0.237934, 0.338837 -2936, -0.647361, -0.640309, -0.238398, 0.337779 -2937, -0.647528, -0.640523, -0.238864, 0.336721 -2938, -0.647694, -0.640737, -0.239332, 0.335662 -2939, -0.647857, -0.640951, -0.239801, 0.334603 -2940, -0.648018, -0.641164, -0.240271, 0.333544 -2941, -0.648176, -0.641377, -0.240743, 0.332484 -2942, -0.648332, -0.641591, -0.241216, 0.331424 -2943, -0.648486, -0.641804, -0.241691, 0.330363 -2944, -0.648637, -0.642016, -0.242167, 0.329303 -2945, -0.648786, -0.642229, -0.242645, 0.328241 -2946, -0.648933, -0.642441, -0.243124, 0.327180 -2947, -0.649077, -0.642653, -0.243604, 0.326118 -2948, -0.649219, -0.642865, -0.244086, 0.325056 -2949, -0.649358, -0.643077, -0.244569, 0.323993 -2950, -0.649495, -0.643289, -0.245054, 0.322930 -2951, -0.649630, -0.643500, -0.245540, 0.321867 -2952, -0.649762, -0.643711, -0.246028, 0.320804 -2953, -0.649892, -0.643922, -0.246517, 0.319740 -2954, -0.650020, -0.644133, -0.247008, 0.318676 -2955, -0.650145, -0.644343, -0.247500, 0.317612 -2956, -0.650268, -0.644553, -0.247993, 0.316547 -2957, -0.650388, -0.644763, -0.248488, 0.315482 -2958, -0.650506, -0.644973, -0.248985, 0.314417 -2959, -0.650622, -0.645182, -0.249483, 0.313352 -2960, -0.650735, -0.645391, -0.249982, 0.312286 -2961, -0.650846, -0.645600, -0.250483, 0.311220 -2962, -0.650955, -0.645809, -0.250985, 0.310154 -2963, -0.651061, -0.646017, -0.251489, 0.309088 -2964, -0.651165, -0.646225, -0.251994, 0.308021 -2965, -0.651266, -0.646433, -0.252500, 0.306955 -2966, -0.651365, -0.646640, -0.253008, 0.305888 -2967, -0.651461, -0.646847, -0.253518, 0.304821 -2968, -0.651556, -0.647054, -0.254029, 0.303753 -2969, -0.651647, -0.647260, -0.254541, 0.302686 -2970, -0.651737, -0.647466, -0.255055, 0.301618 -2971, -0.651824, -0.647672, -0.255571, 0.300550 -2972, -0.651908, -0.647878, -0.256088, 0.299482 -2973, -0.651991, -0.648083, -0.256606, 0.298413 -2974, -0.652070, -0.648287, -0.257126, 0.297345 -2975, -0.652148, -0.648492, -0.257647, 0.296276 -2976, -0.652223, -0.648696, -0.258170, 0.295208 -2977, -0.652295, -0.648900, -0.258694, 0.294139 -2978, -0.652365, -0.649103, -0.259220, 0.293070 -2979, -0.652433, -0.649306, -0.259747, 0.292000 -2980, -0.652498, -0.649509, -0.260275, 0.290931 -2981, -0.652561, -0.649711, -0.260805, 0.289862 -2982, -0.652622, -0.649913, -0.261337, 0.288792 -2983, -0.652680, -0.650114, -0.261870, 0.287722 -2984, -0.652736, -0.650316, -0.262404, 0.286653 -2985, -0.652789, -0.650516, -0.262940, 0.285583 -2986, -0.652840, -0.650717, -0.263478, 0.284513 -2987, -0.652888, -0.650916, -0.264017, 0.283443 -2988, -0.652934, -0.651116, -0.264557, 0.282373 -2989, -0.652978, -0.651315, -0.265099, 0.281302 -2990, -0.653019, -0.651514, -0.265642, 0.280232 -2991, -0.653058, -0.651712, -0.266187, 0.279162 -2992, -0.653095, -0.651910, -0.266733, 0.278091 -2993, -0.653128, -0.652107, -0.267281, 0.277021 -2994, -0.653160, -0.652304, -0.267830, 0.275951 -2995, -0.653189, -0.652500, -0.268381, 0.274880 -2996, -0.653216, -0.652696, -0.268933, 0.273810 -2997, -0.653240, -0.652892, -0.269486, 0.272739 -2998, -0.653262, -0.653087, -0.270041, 0.271669 -2999, -0.653281, -0.653281, -0.270598, 0.270598 + 1.000000, 0.000000, 0.000000, 0.000000 + 0.999998, 0.000785, 0.000394, 0.001571 + 0.999994, 0.001569, 0.000791, 0.003141 + 0.999985, 0.002351, 0.001190, 0.004711 + 0.999974, 0.003133, 0.001591, 0.006280 + 0.999960, 0.003913, 0.001995, 0.007849 + 0.999942, 0.004691, 0.002401, 0.009417 + 0.999921, 0.005469, 0.002810, 0.010984 + 0.999897, 0.006245, 0.003221, 0.012550 + 0.999869, 0.007020, 0.003635, 0.014116 + 0.999838, 0.007794, 0.004051, 0.015681 + 0.999805, 0.008566, 0.004470, 0.017246 + 0.999768, 0.009337, 0.004891, 0.018809 + 0.999727, 0.010107, 0.005314, 0.020372 + 0.999684, 0.010875, 0.005740, 0.021935 + 0.999637, 0.011642, 0.006168, 0.023496 + 0.999587, 0.012408, 0.006599, 0.025057 + 0.999534, 0.013172, 0.007032, 0.026617 + 0.999478, 0.013935, 0.007467, 0.028177 + 0.999418, 0.014697, 0.007905, 0.029735 + 0.999356, 0.015457, 0.008345, 0.031293 + 0.999290, 0.016216, 0.008788, 0.032850 + 0.999221, 0.016974, 0.009233, 0.034406 + 0.999149, 0.017730, 0.009680, 0.035962 + 0.999074, 0.018485, 0.010130, 0.037517 + 0.998995, 0.019239, 0.010582, 0.039071 + 0.998914, 0.019991, 0.011037, 0.040624 + 0.998829, 0.020741, 0.011494, 0.042176 + 0.998741, 0.021490, 0.011953, 0.043728 + 0.998650, 0.022238, 0.012415, 0.045278 + 0.998555, 0.022985, 0.012879, 0.046828 + 0.998458, 0.023730, 0.013345, 0.048377 + 0.998357, 0.024473, 0.013814, 0.049926 + 0.998254, 0.025215, 0.014285, 0.051473 + 0.998147, 0.025956, 0.014758, 0.053019 + 0.998037, 0.026695, 0.015234, 0.054565 + 0.997924, 0.027433, 0.015712, 0.056110 + 0.997808, 0.028169, 0.016192, 0.057654 + 0.997688, 0.028904, 0.016675, 0.059197 + 0.997566, 0.029637, 0.017160, 0.060739 + 0.997440, 0.030369, 0.017647, 0.062280 + 0.997312, 0.031099, 0.018137, 0.063820 + 0.997180, 0.031828, 0.018629, 0.065360 + 0.997045, 0.032555, 0.019123, 0.066898 + 0.996907, 0.033281, 0.019619, 0.068435 + 0.996766, 0.034005, 0.020118, 0.069972 + 0.996622, 0.034728, 0.020619, 0.071508 + 0.996475, 0.035449, 0.021123, 0.073042 + 0.996324, 0.036169, 0.021628, 0.074576 + 0.996171, 0.036887, 0.022136, 0.076109 + 0.996015, 0.037604, 0.022646, 0.077641 + 0.995855, 0.038319, 0.023159, 0.079171 + 0.995692, 0.039032, 0.023673, 0.080701 + 0.995527, 0.039744, 0.024190, 0.082230 + 0.995358, 0.040455, 0.024710, 0.083758 + 0.995186, 0.041164, 0.025231, 0.085285 + 0.995011, 0.041871, 0.025755, 0.086810 + 0.994833, 0.042576, 0.026281, 0.088335 + 0.994652, 0.043280, 0.026809, 0.089859 + 0.994468, 0.043983, 0.027339, 0.091382 + 0.994281, 0.044684, 0.027872, 0.092903 + 0.994091, 0.045383, 0.028407, 0.094424 + 0.993898, 0.046080, 0.028944, 0.095943 + 0.993702, 0.046776, 0.029483, 0.097462 + 0.993503, 0.047471, 0.030024, 0.098979 + 0.993301, 0.048163, 0.030568, 0.100496 + 0.993096, 0.048854, 0.031114, 0.102011 + 0.992887, 0.049544, 0.031662, 0.103525 + 0.992676, 0.050232, 0.032212, 0.105038 + 0.992462, 0.050918, 0.032764, 0.106550 + 0.992245, 0.051602, 0.033319, 0.108061 + 0.992025, 0.052285, 0.033876, 0.109571 + 0.991802, 0.052966, 0.034434, 0.111080 + 0.991575, 0.053645, 0.034995, 0.112587 + 0.991346, 0.054323, 0.035559, 0.114093 + 0.991114, 0.054999, 0.036124, 0.115599 + 0.990879, 0.055673, 0.036692, 0.117103 + 0.990641, 0.056346, 0.037261, 0.118606 + 0.990400, 0.057017, 0.037833, 0.120107 + 0.990156, 0.057686, 0.038407, 0.121608 + 0.989909, 0.058353, 0.038983, 0.123107 + 0.989659, 0.059019, 0.039561, 0.124606 + 0.989406, 0.059683, 0.040141, 0.126103 + 0.989150, 0.060345, 0.040724, 0.127599 + 0.988892, 0.061006, 0.041308, 0.129093 + 0.988630, 0.061665, 0.041895, 0.130587 + 0.988366, 0.062322, 0.042483, 0.132079 + 0.988098, 0.062977, 0.043074, 0.133570 + 0.987828, 0.063630, 0.043667, 0.135060 + 0.987554, 0.064282, 0.044262, 0.136548 + 0.987278, 0.064932, 0.044859, 0.138035 + 0.986999, 0.065580, 0.045458, 0.139522 + 0.986717, 0.066226, 0.046059, 0.141006 + 0.986432, 0.066871, 0.046662, 0.142490 + 0.986144, 0.067514, 0.047267, 0.143972 + 0.985853, 0.068154, 0.047875, 0.145453 + 0.985559, 0.068794, 0.048484, 0.146933 + 0.985263, 0.069431, 0.049095, 0.148411 + 0.984964, 0.070066, 0.049709, 0.149888 + 0.984661, 0.070700, 0.050324, 0.151364 + 0.984356, 0.071332, 0.050942, 0.152839 + 0.984048, 0.071962, 0.051561, 0.154312 + 0.983737, 0.072590, 0.052183, 0.155784 + 0.983424, 0.073216, 0.052806, 0.157254 + 0.983107, 0.073841, 0.053432, 0.158724 + 0.982788, 0.074463, 0.054059, 0.160192 + 0.982465, 0.075084, 0.054689, 0.161658 + 0.982140, 0.075703, 0.055320, 0.163123 + 0.981812, 0.076320, 0.055954, 0.164587 + 0.981482, 0.076935, 0.056589, 0.166050 + 0.981148, 0.077548, 0.057226, 0.167511 + 0.980812, 0.078159, 0.057866, 0.168971 + 0.980473, 0.078769, 0.058507, 0.170429 + 0.980131, 0.079376, 0.059150, 0.171886 + 0.979786, 0.079982, 0.059796, 0.173342 + 0.979438, 0.080585, 0.060443, 0.174796 + 0.979088, 0.081187, 0.061092, 0.176249 + 0.978735, 0.081787, 0.061743, 0.177700 + 0.978379, 0.082385, 0.062396, 0.179150 + 0.978020, 0.082981, 0.063051, 0.180599 + 0.977658, 0.083575, 0.063708, 0.182046 + 0.977294, 0.084167, 0.064366, 0.183492 + 0.976927, 0.084757, 0.065027, 0.184936 + 0.976557, 0.085345, 0.065689, 0.186379 + 0.976185, 0.085931, 0.066354, 0.187820 + 0.975809, 0.086516, 0.067020, 0.189260 + 0.975431, 0.087098, 0.067688, 0.190698 + 0.975051, 0.087678, 0.068358, 0.192135 + 0.974667, 0.088257, 0.069030, 0.193571 + 0.974281, 0.088833, 0.069704, 0.195005 + 0.973892, 0.089407, 0.070380, 0.196437 + 0.973500, 0.089980, 0.071057, 0.197868 + 0.973106, 0.090550, 0.071736, 0.199298 + 0.972709, 0.091119, 0.072418, 0.200726 + 0.972309, 0.091685, 0.073101, 0.202153 + 0.971906, 0.092249, 0.073785, 0.203578 + 0.971501, 0.092812, 0.074472, 0.205001 + 0.971093, 0.093372, 0.075161, 0.206423 + 0.970683, 0.093930, 0.075851, 0.207843 + 0.970269, 0.094487, 0.076543, 0.209262 + 0.969853, 0.095041, 0.077237, 0.210680 + 0.969435, 0.095593, 0.077933, 0.212095 + 0.969014, 0.096143, 0.078630, 0.213510 + 0.968590, 0.096691, 0.079330, 0.214922 + 0.968163, 0.097237, 0.080031, 0.216333 + 0.967734, 0.097781, 0.080733, 0.217743 + 0.967302, 0.098323, 0.081438, 0.219151 + 0.966868, 0.098863, 0.082144, 0.220557 + 0.966430, 0.099401, 0.082853, 0.221962 + 0.965991, 0.099937, 0.083562, 0.223365 + 0.965548, 0.100470, 0.084274, 0.224767 + 0.965103, 0.101002, 0.084987, 0.226167 + 0.964656, 0.101531, 0.085702, 0.227565 + 0.964205, 0.102059, 0.086419, 0.228962 + 0.963753, 0.102584, 0.087138, 0.230357 + 0.963297, 0.103107, 0.087858, 0.231751 + 0.962839, 0.103628, 0.088580, 0.233142 + 0.962379, 0.104147, 0.089304, 0.234533 + 0.961916, 0.104664, 0.090029, 0.235921 + 0.961450, 0.105179, 0.090756, 0.237308 + 0.960981, 0.105691, 0.091485, 0.238693 + 0.960511, 0.106202, 0.092215, 0.240077 + 0.960037, 0.106710, 0.092947, 0.241459 + 0.959561, 0.107216, 0.093681, 0.242839 + 0.959083, 0.107720, 0.094416, 0.244218 + 0.958602, 0.108222, 0.095153, 0.245595 + 0.958118, 0.108722, 0.095892, 0.246970 + 0.957632, 0.109219, 0.096633, 0.248343 + 0.957143, 0.109715, 0.097375, 0.249715 + 0.956652, 0.110208, 0.098118, 0.251085 + 0.956158, 0.110699, 0.098863, 0.252454 + 0.955662, 0.111188, 0.099610, 0.253820 + 0.955164, 0.111674, 0.100359, 0.255185 + 0.954662, 0.112159, 0.101109, 0.256549 + 0.954159, 0.112641, 0.101860, 0.257910 + 0.953652, 0.113121, 0.102614, 0.259270 + 0.953144, 0.113599, 0.103369, 0.260628 + 0.952633, 0.114075, 0.104125, 0.261984 + 0.952119, 0.114549, 0.104883, 0.263339 + 0.951603, 0.115020, 0.105643, 0.264692 + 0.951085, 0.115489, 0.106404, 0.266043 + 0.950564, 0.115956, 0.107166, 0.267392 + 0.950040, 0.116421, 0.107931, 0.268740 + 0.949514, 0.116883, 0.108696, 0.270085 + 0.948986, 0.117343, 0.109464, 0.271429 + 0.948455, 0.117801, 0.110233, 0.272771 + 0.947922, 0.118257, 0.111003, 0.274112 + 0.947387, 0.118711, 0.111775, 0.275450 + 0.946849, 0.119162, 0.112548, 0.276787 + 0.946308, 0.119611, 0.113323, 0.278122 + 0.945765, 0.120058, 0.114100, 0.279455 + 0.945220, 0.120502, 0.114878, 0.280787 + 0.944673, 0.120945, 0.115657, 0.282116 + 0.944123, 0.121385, 0.116438, 0.283444 + 0.943570, 0.121822, 0.117220, 0.284770 + 0.943016, 0.122258, 0.118004, 0.286094 + 0.942459, 0.122691, 0.118789, 0.287416 + 0.941899, 0.123122, 0.119576, 0.288736 + 0.941337, 0.123550, 0.120364, 0.290055 + 0.940773, 0.123977, 0.121154, 0.291371 + 0.940207, 0.124401, 0.121945, 0.292686 + 0.939638, 0.124823, 0.122738, 0.293999 + 0.939067, 0.125242, 0.123531, 0.295310 + 0.938493, 0.125659, 0.124327, 0.296619 + 0.937917, 0.126074, 0.125124, 0.297927 + 0.937339, 0.126487, 0.125922, 0.299232 + 0.936759, 0.126897, 0.126721, 0.300536 + 0.936176, 0.127305, 0.127522, 0.301837 + 0.935591, 0.127711, 0.128324, 0.303137 + 0.935004, 0.128114, 0.129128, 0.304435 + 0.934414, 0.128515, 0.129933, 0.305731 + 0.933822, 0.128913, 0.130740, 0.307025 + 0.933228, 0.129310, 0.131548, 0.308317 + 0.932632, 0.129704, 0.132357, 0.309607 + 0.932033, 0.130095, 0.133167, 0.310896 + 0.931432, 0.130485, 0.133979, 0.312182 + 0.930829, 0.130872, 0.134792, 0.313466 + 0.930223, 0.131256, 0.135607, 0.314749 + 0.929616, 0.131638, 0.136422, 0.316030 + 0.929006, 0.132018, 0.137240, 0.317308 + 0.928394, 0.132396, 0.138058, 0.318585 + 0.927779, 0.132771, 0.138878, 0.319860 + 0.927163, 0.133144, 0.139699, 0.321132 + 0.926544, 0.133514, 0.140521, 0.322403 + 0.925923, 0.133882, 0.141345, 0.323672 + 0.925300, 0.134248, 0.142170, 0.324939 + 0.924675, 0.134611, 0.142996, 0.326204 + 0.924047, 0.134972, 0.143823, 0.327467 + 0.923417, 0.135331, 0.144652, 0.328727 + 0.922786, 0.135687, 0.145482, 0.329986 + 0.922151, 0.136041, 0.146313, 0.331243 + 0.921515, 0.136392, 0.147145, 0.332498 + 0.920877, 0.136741, 0.147979, 0.333751 + 0.920236, 0.137087, 0.148814, 0.335002 + 0.919594, 0.137432, 0.149650, 0.336251 + 0.918949, 0.137773, 0.150487, 0.337498 + 0.918302, 0.138113, 0.151325, 0.338743 + 0.917653, 0.138450, 0.152165, 0.339986 + 0.917002, 0.138784, 0.153006, 0.341227 + 0.916349, 0.139116, 0.153848, 0.342466 + 0.915693, 0.139446, 0.154691, 0.343702 + 0.915036, 0.139773, 0.155535, 0.344937 + 0.914376, 0.140098, 0.156381, 0.346170 + 0.913715, 0.140420, 0.157227, 0.347400 + 0.913051, 0.140740, 0.158075, 0.348629 + 0.912385, 0.141058, 0.158924, 0.349856 + 0.911717, 0.141373, 0.159774, 0.351080 + 0.911048, 0.141685, 0.160625, 0.352303 + 0.910376, 0.141996, 0.161478, 0.353523 + 0.909702, 0.142303, 0.162331, 0.354741 + 0.909026, 0.142609, 0.163186, 0.355958 + 0.908347, 0.142911, 0.164041, 0.357172 + 0.907667, 0.143212, 0.164898, 0.358384 + 0.906985, 0.143510, 0.165756, 0.359594 + 0.906301, 0.143805, 0.166615, 0.360802 + 0.905615, 0.144098, 0.167475, 0.362008 + 0.904927, 0.144389, 0.168336, 0.363211 + 0.904237, 0.144677, 0.169198, 0.364413 + 0.903544, 0.144962, 0.170061, 0.365613 + 0.902850, 0.145245, 0.170925, 0.366810 + 0.902154, 0.145526, 0.171790, 0.368005 + 0.901456, 0.145804, 0.172657, 0.369199 + 0.900756, 0.146080, 0.173524, 0.370390 + 0.900054, 0.146353, 0.174392, 0.371579 + 0.899350, 0.146624, 0.175261, 0.372766 + 0.898644, 0.146892, 0.176132, 0.373950 + 0.897936, 0.147157, 0.177003, 0.375133 + 0.897227, 0.147421, 0.177875, 0.376313 + 0.896515, 0.147681, 0.178749, 0.377492 + 0.895801, 0.147940, 0.179623, 0.378668 + 0.895086, 0.148195, 0.180498, 0.379842 + 0.894368, 0.148448, 0.181374, 0.381014 + 0.893649, 0.148699, 0.182251, 0.382184 + 0.892928, 0.148947, 0.183129, 0.383351 + 0.892205, 0.149193, 0.184008, 0.384517 + 0.891480, 0.149436, 0.184888, 0.385680 + 0.890753, 0.149677, 0.185769, 0.386841 + 0.890024, 0.149915, 0.186651, 0.388000 + 0.889294, 0.150150, 0.187534, 0.389157 + 0.888561, 0.150383, 0.188417, 0.390311 + 0.887827, 0.150614, 0.189302, 0.391464 + 0.887091, 0.150842, 0.190187, 0.392614 + 0.886353, 0.151067, 0.191074, 0.393762 + 0.885613, 0.151290, 0.191961, 0.394908 + 0.884871, 0.151511, 0.192849, 0.396051 + 0.884128, 0.151729, 0.193738, 0.397193 + 0.883382, 0.151944, 0.194628, 0.398332 + 0.882635, 0.152157, 0.195518, 0.399469 + 0.881887, 0.152367, 0.196410, 0.400604 + 0.881136, 0.152575, 0.197302, 0.401737 + 0.880383, 0.152780, 0.198195, 0.402867 + 0.879629, 0.152982, 0.199089, 0.403996 + 0.878873, 0.153183, 0.199984, 0.405122 + 0.878115, 0.153380, 0.200879, 0.406245 + 0.877356, 0.153575, 0.201776, 0.407367 + 0.876595, 0.153767, 0.202673, 0.408486 + 0.875832, 0.153957, 0.203571, 0.409603 + 0.875067, 0.154144, 0.204470, 0.410718 + 0.874300, 0.154329, 0.205369, 0.411831 + 0.873532, 0.154511, 0.206269, 0.412941 + 0.872762, 0.154691, 0.207170, 0.414050 + 0.871991, 0.154868, 0.208072, 0.415156 + 0.871217, 0.155042, 0.208975, 0.416259 + 0.870442, 0.155214, 0.209878, 0.417361 + 0.869666, 0.155384, 0.210782, 0.418460 + 0.868887, 0.155550, 0.211687, 0.419557 + 0.868107, 0.155714, 0.212592, 0.420652 + 0.867325, 0.155876, 0.213498, 0.421744 + 0.866542, 0.156035, 0.214405, 0.422834 + 0.865757, 0.156191, 0.215313, 0.423922 + 0.864970, 0.156345, 0.216221, 0.425008 + 0.864182, 0.156496, 0.217130, 0.426091 + 0.863392, 0.156645, 0.218040, 0.427172 + 0.862600, 0.156791, 0.218950, 0.428251 + 0.861807, 0.156935, 0.219861, 0.429327 + 0.861012, 0.157075, 0.220772, 0.430402 + 0.860215, 0.157214, 0.221685, 0.431474 + 0.859417, 0.157349, 0.222598, 0.432543 + 0.858617, 0.157482, 0.223511, 0.433611 + 0.857816, 0.157613, 0.224425, 0.434676 + 0.857013, 0.157741, 0.225340, 0.435739 + 0.856209, 0.157866, 0.226255, 0.436799 + 0.855403, 0.157989, 0.227171, 0.437857 + 0.854595, 0.158109, 0.228088, 0.438913 + 0.853786, 0.158226, 0.229005, 0.439967 + 0.852975, 0.158341, 0.229923, 0.441018 + 0.852163, 0.158454, 0.230841, 0.442067 + 0.851349, 0.158563, 0.231760, 0.443114 + 0.850534, 0.158670, 0.232679, 0.444158 + 0.849717, 0.158775, 0.233599, 0.445200 + 0.848898, 0.158877, 0.234520, 0.446240 + 0.848079, 0.158976, 0.235441, 0.447277 + 0.847257, 0.159072, 0.236363, 0.448313 + 0.846434, 0.159166, 0.237285, 0.449345 + 0.845610, 0.159258, 0.238207, 0.450376 + 0.844784, 0.159347, 0.239131, 0.451404 + 0.843957, 0.159433, 0.240054, 0.452430 + 0.843128, 0.159516, 0.240978, 0.453453 + 0.842297, 0.159597, 0.241903, 0.454474 + 0.841466, 0.159675, 0.242828, 0.455493 + 0.840632, 0.159751, 0.243754, 0.456509 + 0.839798, 0.159824, 0.244680, 0.457523 + 0.838962, 0.159894, 0.245606, 0.458535 + 0.838124, 0.159962, 0.246533, 0.459545 + 0.837285, 0.160027, 0.247461, 0.460552 + 0.836445, 0.160090, 0.248389, 0.461556 + 0.835603, 0.160150, 0.249317, 0.462559 + 0.834760, 0.160207, 0.250246, 0.463559 + 0.833915, 0.160262, 0.251175, 0.464556 + 0.833069, 0.160314, 0.252104, 0.465552 + 0.832222, 0.160363, 0.253034, 0.466544 + 0.831373, 0.160410, 0.253965, 0.467535 + 0.830523, 0.160454, 0.254896, 0.468523 + 0.829672, 0.160495, 0.255827, 0.469509 + 0.828819, 0.160534, 0.256758, 0.470492 + 0.827965, 0.160570, 0.257690, 0.471473 + 0.827109, 0.160604, 0.258622, 0.472452 + 0.826252, 0.160635, 0.259555, 0.473429 + 0.825394, 0.160663, 0.260488, 0.474402 + 0.824535, 0.160689, 0.261421, 0.475374 + 0.823674, 0.160712, 0.262355, 0.476343 + 0.822812, 0.160732, 0.263289, 0.477310 + 0.821948, 0.160750, 0.264223, 0.478274 + 0.821084, 0.160765, 0.265157, 0.479237 + 0.820218, 0.160777, 0.266092, 0.480196 + 0.819350, 0.160787, 0.267027, 0.481153 + 0.818482, 0.160794, 0.267963, 0.482108 + 0.817612, 0.160799, 0.268899, 0.483061 + 0.816741, 0.160801, 0.269835, 0.484011 + 0.815869, 0.160800, 0.270771, 0.484959 + 0.814995, 0.160796, 0.271707, 0.485904 + 0.814120, 0.160790, 0.272644, 0.486847 + 0.813244, 0.160781, 0.273581, 0.487787 + 0.812367, 0.160770, 0.274519, 0.488726 + 0.811488, 0.160756, 0.275456, 0.489661 + 0.810609, 0.160739, 0.276394, 0.490595 + 0.809728, 0.160720, 0.277332, 0.491525 + 0.808846, 0.160698, 0.278270, 0.492454 + 0.807962, 0.160673, 0.279208, 0.493380 + 0.807078, 0.160646, 0.280147, 0.494304 + 0.806192, 0.160616, 0.281086, 0.495225 + 0.805305, 0.160584, 0.282024, 0.496144 + 0.804417, 0.160548, 0.282964, 0.497060 + 0.803528, 0.160511, 0.283903, 0.497974 + 0.802638, 0.160470, 0.284842, 0.498886 + 0.801746, 0.160427, 0.285782, 0.499795 + 0.800853, 0.160381, 0.286722, 0.500702 + 0.799960, 0.160333, 0.287661, 0.501606 + 0.799065, 0.160282, 0.288601, 0.502508 + 0.798169, 0.160228, 0.289541, 0.503408 + 0.797272, 0.160171, 0.290482, 0.504305 + 0.796374, 0.160112, 0.291422, 0.505199 + 0.795474, 0.160051, 0.292362, 0.506092 + 0.794574, 0.159986, 0.293303, 0.506982 + 0.793672, 0.159919, 0.294244, 0.507869 + 0.792770, 0.159849, 0.295184, 0.508754 + 0.791866, 0.159777, 0.296125, 0.509636 + 0.790961, 0.159702, 0.297066, 0.510516 + 0.790056, 0.159625, 0.298007, 0.511394 + 0.789149, 0.159544, 0.298948, 0.512269 + 0.788241, 0.159461, 0.299889, 0.513142 + 0.787332, 0.159376, 0.300830, 0.514013 + 0.786422, 0.159288, 0.301771, 0.514880 + 0.785511, 0.159197, 0.302712, 0.515746 + 0.784599, 0.159103, 0.303653, 0.516609 + 0.783686, 0.159007, 0.304594, 0.517470 + 0.782772, 0.158908, 0.305535, 0.518328 + 0.781857, 0.158807, 0.306476, 0.519184 + 0.780942, 0.158703, 0.307418, 0.520037 + 0.780025, 0.158596, 0.308359, 0.520888 + 0.779107, 0.158486, 0.309300, 0.521736 + 0.778188, 0.158374, 0.310241, 0.522582 + 0.777268, 0.158260, 0.311182, 0.523426 + 0.776347, 0.158142, 0.312123, 0.524267 + 0.775425, 0.158022, 0.313064, 0.525105 + 0.774503, 0.157900, 0.314004, 0.525941 + 0.773579, 0.157774, 0.314945, 0.526775 + 0.772655, 0.157646, 0.315886, 0.527606 + 0.771729, 0.157516, 0.316826, 0.528435 + 0.770803, 0.157383, 0.317767, 0.529262 + 0.769876, 0.157247, 0.318707, 0.530086 + 0.768947, 0.157108, 0.319648, 0.530907 + 0.768018, 0.156967, 0.320588, 0.531726 + 0.767088, 0.156823, 0.321528, 0.532543 + 0.766158, 0.156677, 0.322468, 0.533357 + 0.765226, 0.156528, 0.323408, 0.534169 + 0.764293, 0.156376, 0.324347, 0.534978 + 0.763360, 0.156222, 0.325287, 0.535785 + 0.762426, 0.156065, 0.326226, 0.536589 + 0.761490, 0.155905, 0.327165, 0.537391 + 0.760555, 0.155743, 0.328104, 0.538190 + 0.759618, 0.155578, 0.329043, 0.538987 + 0.758680, 0.155410, 0.329982, 0.539782 + 0.757742, 0.155240, 0.330920, 0.540574 + 0.756802, 0.155067, 0.331859, 0.541363 + 0.755862, 0.154892, 0.332797, 0.542150 + 0.754922, 0.154714, 0.333735, 0.542935 + 0.753980, 0.154533, 0.334672, 0.543717 + 0.753037, 0.154350, 0.335610, 0.544497 + 0.752094, 0.154164, 0.336547, 0.545274 + 0.751150, 0.153975, 0.337484, 0.546049 + 0.750206, 0.153784, 0.338421, 0.546821 + 0.749260, 0.153590, 0.339357, 0.547591 + 0.748314, 0.153393, 0.340293, 0.548359 + 0.747367, 0.153194, 0.341229, 0.549124 + 0.746419, 0.152993, 0.342165, 0.549886 + 0.745471, 0.152788, 0.343100, 0.550646 + 0.744522, 0.152581, 0.344035, 0.551404 + 0.743572, 0.152372, 0.344970, 0.552159 + 0.742621, 0.152159, 0.345904, 0.552912 + 0.741670, 0.151944, 0.346839, 0.553662 + 0.740718, 0.151727, 0.347773, 0.554410 + 0.739765, 0.151507, 0.348706, 0.555155 + 0.738812, 0.151284, 0.349639, 0.555898 + 0.737858, 0.151059, 0.350572, 0.556639 + 0.736903, 0.150831, 0.351505, 0.557377 + 0.735948, 0.150600, 0.352437, 0.558112 + 0.734992, 0.150367, 0.353369, 0.558845 + 0.734035, 0.150132, 0.354300, 0.559576 + 0.733078, 0.149893, 0.355231, 0.560304 + 0.732120, 0.149652, 0.356162, 0.561029 + 0.731161, 0.149409, 0.357092, 0.561753 + 0.730202, 0.149162, 0.358022, 0.562473 + 0.729242, 0.148914, 0.358952, 0.563192 + 0.728282, 0.148662, 0.359881, 0.563907 + 0.727320, 0.148408, 0.360809, 0.564621 + 0.726359, 0.148152, 0.361738, 0.565332 + 0.725397, 0.147893, 0.362665, 0.566040 + 0.724434, 0.147631, 0.363593, 0.566746 + 0.723470, 0.147366, 0.364520, 0.567449 + 0.722507, 0.147099, 0.365446, 0.568151 + 0.721542, 0.146830, 0.366372, 0.568849 + 0.720577, 0.146558, 0.367298, 0.569545 + 0.719611, 0.146283, 0.368223, 0.570239 + 0.718645, 0.146006, 0.369148, 0.570930 + 0.717679, 0.145726, 0.370072, 0.571619 + 0.716711, 0.145443, 0.370996, 0.572305 + 0.715744, 0.145158, 0.371919, 0.572989 + 0.714775, 0.144870, 0.372842, 0.573671 + 0.713807, 0.144580, 0.373764, 0.574350 + 0.712837, 0.144287, 0.374685, 0.575026 + 0.711868, 0.143992, 0.375606, 0.575700 + 0.710897, 0.143694, 0.376527, 0.576372 + 0.709927, 0.143393, 0.377447, 0.577041 + 0.708955, 0.143090, 0.378367, 0.577708 + 0.707984, 0.142785, 0.379286, 0.578372 + 0.707012, 0.142476, 0.380204, 0.579034 + 0.706039, 0.142166, 0.381122, 0.579693 + 0.705066, 0.141852, 0.382039, 0.580350 + 0.704092, 0.141536, 0.382956, 0.581004 + 0.703119, 0.141218, 0.383872, 0.581656 + 0.702144, 0.140897, 0.384787, 0.582306 + 0.701169, 0.140573, 0.385702, 0.582953 + 0.700194, 0.140247, 0.386617, 0.583598 + 0.699219, 0.139918, 0.387530, 0.584240 + 0.698243, 0.139587, 0.388443, 0.584880 + 0.697266, 0.139253, 0.389356, 0.585517 + 0.696290, 0.138917, 0.390268, 0.586152 + 0.695312, 0.138578, 0.391179, 0.586785 + 0.694335, 0.138236, 0.392089, 0.587415 + 0.693357, 0.137892, 0.392999, 0.588042 + 0.692379, 0.137546, 0.393908, 0.588667 + 0.691400, 0.137197, 0.394817, 0.589290 + 0.690421, 0.136845, 0.395725, 0.589910 + 0.689442, 0.136491, 0.396632, 0.590528 + 0.688462, 0.136134, 0.397538, 0.591144 + 0.687482, 0.135775, 0.398444, 0.591757 + 0.686502, 0.135413, 0.399349, 0.592367 + 0.685521, 0.135049, 0.400254, 0.592975 + 0.684540, 0.134682, 0.401157, 0.593581 + 0.683559, 0.134313, 0.402060, 0.594184 + 0.682577, 0.133941, 0.402962, 0.594785 + 0.681596, 0.133567, 0.403864, 0.595383 + 0.680613, 0.133190, 0.404765, 0.595979 + 0.679631, 0.132810, 0.405665, 0.596573 + 0.678648, 0.132429, 0.406564, 0.597164 + 0.677665, 0.132044, 0.407462, 0.597753 + 0.676682, 0.131657, 0.408360, 0.598339 + 0.675699, 0.131268, 0.409257, 0.598923 + 0.674715, 0.130876, 0.410153, 0.599504 + 0.673731, 0.130482, 0.411049, 0.600083 + 0.672747, 0.130085, 0.411943, 0.600660 + 0.671763, 0.129685, 0.412837, 0.601234 + 0.670778, 0.129284, 0.413730, 0.601806 + 0.669793, 0.128879, 0.414622, 0.602375 + 0.668808, 0.128472, 0.415514, 0.602942 + 0.667823, 0.128063, 0.416404, 0.603507 + 0.666837, 0.127651, 0.417294, 0.604069 + 0.665852, 0.127237, 0.418183, 0.604628 + 0.664866, 0.126820, 0.419071, 0.605186 + 0.663880, 0.126401, 0.419958, 0.605741 + 0.662894, 0.125979, 0.420844, 0.606293 + 0.661907, 0.125555, 0.421729, 0.606843 + 0.660921, 0.125129, 0.422614, 0.607391 + 0.659934, 0.124700, 0.423498, 0.607936 + 0.658948, 0.124268, 0.424380, 0.608479 + 0.657961, 0.123834, 0.425262, 0.609020 + 0.656974, 0.123398, 0.426143, 0.609558 + 0.655986, 0.122959, 0.427023, 0.610093 + 0.654999, 0.122517, 0.427903, 0.610627 + 0.654012, 0.122074, 0.428781, 0.611158 + 0.653024, 0.121627, 0.429658, 0.611686 + 0.652037, 0.121179, 0.430535, 0.612212 + 0.651049, 0.120727, 0.431410, 0.612736 + 0.650061, 0.120274, 0.432285, 0.613257 + 0.649073, 0.119818, 0.433158, 0.613776 + 0.648085, 0.119360, 0.434031, 0.614293 + 0.647097, 0.118899, 0.434903, 0.614807 + 0.646109, 0.118435, 0.435773, 0.615319 + 0.645121, 0.117970, 0.436643, 0.615829 + 0.644133, 0.117502, 0.437512, 0.616336 + 0.643145, 0.117031, 0.438379, 0.616840 + 0.642156, 0.116558, 0.439246, 0.617343 + 0.641168, 0.116083, 0.440112, 0.617843 + 0.640180, 0.115605, 0.440977, 0.618340 + 0.639192, 0.115125, 0.441840, 0.618836 + 0.638203, 0.114642, 0.442703, 0.619328 + 0.637215, 0.114157, 0.443565, 0.619819 + 0.636226, 0.113670, 0.444426, 0.620307 + 0.635238, 0.113180, 0.445285, 0.620793 + 0.634250, 0.112688, 0.446144, 0.621276 + 0.633261, 0.112194, 0.447001, 0.621758 + 0.632273, 0.111697, 0.447858, 0.622236 + 0.631285, 0.111198, 0.448713, 0.622713 + 0.630297, 0.110696, 0.449568, 0.623187 + 0.629308, 0.110192, 0.450421, 0.623658 + 0.628320, 0.109686, 0.451273, 0.624128 + 0.627332, 0.109177, 0.452124, 0.624595 + 0.626344, 0.108666, 0.452974, 0.625059 + 0.625356, 0.108152, 0.453823, 0.625522 + 0.624368, 0.107636, 0.454671, 0.625982 + 0.623380, 0.107118, 0.455517, 0.626439 + 0.622393, 0.106598, 0.456363, 0.626895 + 0.621405, 0.106075, 0.457207, 0.627348 + 0.620417, 0.105550, 0.458051, 0.627798 + 0.619430, 0.105022, 0.458893, 0.628247 + 0.618443, 0.104492, 0.459734, 0.628693 + 0.617455, 0.103960, 0.460574, 0.629137 + 0.616468, 0.103425, 0.461413, 0.629578 + 0.615481, 0.102888, 0.462250, 0.630017 + 0.614495, 0.102349, 0.463087, 0.630454 + 0.613508, 0.101808, 0.463922, 0.630888 + 0.612521, 0.101264, 0.464756, 0.631320 + 0.611535, 0.100718, 0.465589, 0.631750 + 0.610549, 0.100169, 0.466420, 0.632178 + 0.609563, 0.099618, 0.467251, 0.632603 + 0.608577, 0.099065, 0.468080, 0.633026 + 0.607591, 0.098510, 0.468908, 0.633446 + 0.606605, 0.097952, 0.469735, 0.633865 + 0.605620, 0.097392, 0.470561, 0.634281 + 0.604635, 0.096830, 0.471385, 0.634694 + 0.603650, 0.096265, 0.472208, 0.635106 + 0.602665, 0.095699, 0.473030, 0.635515 + 0.601680, 0.095129, 0.473851, 0.635922 + 0.600696, 0.094558, 0.474670, 0.636326 + 0.599712, 0.093984, 0.475488, 0.636729 + 0.598728, 0.093408, 0.476305, 0.637129 + 0.597744, 0.092830, 0.477121, 0.637526 + 0.596761, 0.092250, 0.477935, 0.637922 + 0.595778, 0.091667, 0.478748, 0.638315 + 0.594795, 0.091082, 0.479560, 0.638706 + 0.593812, 0.090495, 0.480371, 0.639095 + 0.592830, 0.089905, 0.481180, 0.639481 + 0.591847, 0.089314, 0.481988, 0.639865 + 0.590866, 0.088720, 0.482794, 0.640247 + 0.589884, 0.088124, 0.483600, 0.640627 + 0.588903, 0.087525, 0.484404, 0.641004 + 0.587922, 0.086925, 0.485206, 0.641379 + 0.586941, 0.086322, 0.486008, 0.641752 + 0.585960, 0.085717, 0.486808, 0.642123 + 0.584980, 0.085109, 0.487606, 0.642491 + 0.584000, 0.084500, 0.488404, 0.642857 + 0.583021, 0.083888, 0.489199, 0.643221 + 0.582042, 0.083274, 0.489994, 0.643583 + 0.581063, 0.082658, 0.490787, 0.643942 + 0.580084, 0.082040, 0.491579, 0.644299 + 0.579106, 0.081419, 0.492369, 0.644654 + 0.578128, 0.080797, 0.493159, 0.645007 + 0.577151, 0.080172, 0.493946, 0.645358 + 0.576174, 0.079545, 0.494732, 0.645706 + 0.575197, 0.078915, 0.495517, 0.646052 + 0.574221, 0.078284, 0.496301, 0.646396 + 0.573245, 0.077650, 0.497083, 0.646738 + 0.572269, 0.077015, 0.497863, 0.647077 + 0.571294, 0.076377, 0.498643, 0.647414 + 0.570319, 0.075737, 0.499420, 0.647750 + 0.569345, 0.075095, 0.500197, 0.648082 + 0.568370, 0.074450, 0.500972, 0.648413 + 0.567397, 0.073804, 0.501745, 0.648742 + 0.566424, 0.073155, 0.502517, 0.649068 + 0.565451, 0.072504, 0.503288, 0.649392 + 0.564478, 0.071851, 0.504057, 0.649714 + 0.563506, 0.071196, 0.504825, 0.650034 + 0.562535, 0.070539, 0.505591, 0.650351 + 0.561564, 0.069880, 0.506355, 0.650667 + 0.560593, 0.069218, 0.507119, 0.650980 + 0.559623, 0.068555, 0.507880, 0.651291 + 0.558653, 0.067889, 0.508640, 0.651600 + 0.557684, 0.067222, 0.509399, 0.651907 + 0.556715, 0.066552, 0.510156, 0.652211 + 0.555747, 0.065880, 0.510912, 0.652514 + 0.554779, 0.065206, 0.511666, 0.652814 + 0.553812, 0.064530, 0.512419, 0.653112 + 0.552845, 0.063852, 0.513170, 0.653408 + 0.551879, 0.063172, 0.513920, 0.653702 + 0.550913, 0.062489, 0.514668, 0.653993 + 0.549947, 0.061805, 0.515414, 0.654283 + 0.548982, 0.061118, 0.516159, 0.654570 + 0.548018, 0.060430, 0.516903, 0.654856 + 0.547054, 0.059739, 0.517645, 0.655139 + 0.546091, 0.059047, 0.518385, 0.655420 + 0.545128, 0.058352, 0.519124, 0.655699 + 0.544166, 0.057655, 0.519861, 0.655976 + 0.543204, 0.056957, 0.520596, 0.656250 + 0.542243, 0.056256, 0.521330, 0.656523 + 0.541283, 0.055553, 0.522063, 0.656793 + 0.540323, 0.054848, 0.522794, 0.657062 + 0.539363, 0.054142, 0.523523, 0.657328 + 0.538404, 0.053433, 0.524250, 0.657592 + 0.537446, 0.052722, 0.524976, 0.657854 + 0.536488, 0.052009, 0.525701, 0.658114 + 0.535531, 0.051294, 0.526424, 0.658372 + 0.534574, 0.050577, 0.527145, 0.658628 + 0.533618, 0.049858, 0.527864, 0.658882 + 0.532663, 0.049138, 0.528582, 0.659133 + 0.531708, 0.048415, 0.529298, 0.659383 + 0.530754, 0.047690, 0.530013, 0.659630 + 0.529800, 0.046963, 0.530726, 0.659876 + 0.528847, 0.046234, 0.531437, 0.660119 + 0.527895, 0.045504, 0.532147, 0.660360 + 0.526943, 0.044771, 0.532855, 0.660600 + 0.525992, 0.044036, 0.533561, 0.660837 + 0.525042, 0.043300, 0.534266, 0.661072 + 0.524092, 0.042561, 0.534969, 0.661305 + 0.523143, 0.041821, 0.535670, 0.661536 + 0.522195, 0.041079, 0.536370, 0.661765 + 0.521247, 0.040334, 0.537067, 0.661992 + 0.520300, 0.039588, 0.537764, 0.662217 + 0.519353, 0.038840, 0.538458, 0.662440 + 0.518407, 0.038090, 0.539151, 0.662661 + 0.517462, 0.037338, 0.539842, 0.662880 + 0.516518, 0.036584, 0.540531, 0.663097 + 0.515574, 0.035828, 0.541219, 0.663311 + 0.514631, 0.035070, 0.541905, 0.663524 + 0.513689, 0.034311, 0.542589, 0.663735 + 0.512747, 0.033549, 0.543271, 0.663944 + 0.511806, 0.032786, 0.543952, 0.664151 + 0.510866, 0.032021, 0.544631, 0.664356 + 0.509926, 0.031253, 0.545308, 0.664558 + 0.508987, 0.030484, 0.545983, 0.664759 + 0.508049, 0.029714, 0.546657, 0.664958 + 0.507112, 0.028941, 0.547329, 0.665155 + 0.506175, 0.028166, 0.547999, 0.665350 + 0.505239, 0.027390, 0.548667, 0.665543 + 0.504304, 0.026612, 0.549334, 0.665734 + 0.503370, 0.025832, 0.549999, 0.665923 + 0.502436, 0.025050, 0.550662, 0.666110 + 0.501503, 0.024266, 0.551323, 0.666295 + 0.500571, 0.023480, 0.551982, 0.666478 + 0.499640, 0.022693, 0.552640, 0.666659 + 0.498709, 0.021904, 0.553296, 0.666838 + 0.497779, 0.021113, 0.553950, 0.667016 + 0.496850, 0.020320, 0.554602, 0.667191 + 0.495922, 0.019525, 0.555252, 0.667364 + 0.494995, 0.018729, 0.555900, 0.667536 + 0.494068, 0.017931, 0.556547, 0.667705 + 0.493142, 0.017131, 0.557192, 0.667873 + 0.492217, 0.016329, 0.557835, 0.668039 + 0.491293, 0.015525, 0.558476, 0.668202 + 0.490370, 0.014720, 0.559115, 0.668364 + 0.489447, 0.013913, 0.559753, 0.668524 + 0.488525, 0.013104, 0.560389, 0.668682 + 0.487604, 0.012293, 0.561022, 0.668838 + 0.486684, 0.011481, 0.561654, 0.668993 + 0.485765, 0.010667, 0.562284, 0.669145 + 0.484847, 0.009851, 0.562912, 0.669296 + 0.483929, 0.009034, 0.563538, 0.669444 + 0.483012, 0.008214, 0.564163, 0.669591 + 0.482096, 0.007393, 0.564785, 0.669736 + 0.481181, 0.006571, 0.565406, 0.669879 + 0.480267, 0.005746, 0.566025, 0.670020 + 0.479354, 0.004920, 0.566641, 0.670159 + 0.478441, 0.004092, 0.567256, 0.670296 + 0.477530, 0.003263, 0.567869, 0.670432 + 0.476619, 0.002431, 0.568480, 0.670566 + 0.475709, 0.001599, 0.569090, 0.670698 + 0.474801, 0.000764, 0.569697, 0.670827 + 0.473893, -0.000072, 0.570302, 0.670956 + 0.472985, -0.000910, 0.570905, 0.671082 + 0.472079, -0.001750, 0.571507, 0.671206 + 0.471174, -0.002591, 0.572106, 0.671329 + 0.470269, -0.003434, 0.572704, 0.671450 + 0.469366, -0.004279, 0.573300, 0.671569 + 0.468463, -0.005125, 0.573893, 0.671686 + 0.467562, -0.005973, 0.574485, 0.671802 + 0.466661, -0.006822, 0.575075, 0.671915 + 0.465761, -0.007673, 0.575663, 0.672027 + 0.464862, -0.008526, 0.576248, 0.672137 + 0.463965, -0.009380, 0.576832, 0.672245 + 0.463068, -0.010236, 0.577414, 0.672351 + 0.462172, -0.011094, 0.577994, 0.672456 + 0.461277, -0.011953, 0.578572, 0.672559 + 0.460382, -0.012813, 0.579148, 0.672660 + 0.459489, -0.013676, 0.579722, 0.672759 + 0.458597, -0.014540, 0.580294, 0.672857 + 0.457706, -0.015405, 0.580864, 0.672953 + 0.456816, -0.016272, 0.581432, 0.673047 + 0.455926, -0.017141, 0.581998, 0.673139 + 0.455038, -0.018011, 0.582562, 0.673229 + 0.454151, -0.018883, 0.583124, 0.673318 + 0.453264, -0.019756, 0.583684, 0.673405 + 0.452379, -0.020631, 0.584242, 0.673490 + 0.451495, -0.021507, 0.584797, 0.673574 + 0.450611, -0.022385, 0.585351, 0.673656 + 0.449729, -0.023264, 0.585903, 0.673736 + 0.448848, -0.024145, 0.586453, 0.673814 + 0.447967, -0.025028, 0.587001, 0.673891 + 0.447088, -0.025912, 0.587546, 0.673966 + 0.446210, -0.026797, 0.588090, 0.674039 + 0.445332, -0.027684, 0.588632, 0.674111 + 0.444456, -0.028573, 0.589171, 0.674181 + 0.443581, -0.029463, 0.589709, 0.674249 + 0.442707, -0.030354, 0.590244, 0.674315 + 0.441834, -0.031247, 0.590778, 0.674380 + 0.440961, -0.032141, 0.591309, 0.674443 + 0.440090, -0.033037, 0.591838, 0.674505 + 0.439220, -0.033935, 0.592366, 0.674564 + 0.438351, -0.034833, 0.592891, 0.674622 + 0.437483, -0.035733, 0.593414, 0.674679 + 0.436617, -0.036635, 0.593935, 0.674734 + 0.435751, -0.037538, 0.594453, 0.674787 + 0.434886, -0.038443, 0.594970, 0.674838 + 0.434022, -0.039349, 0.595485, 0.674888 + 0.433160, -0.040256, 0.595998, 0.674936 + 0.432298, -0.041165, 0.596508, 0.674983 + 0.431438, -0.042075, 0.597016, 0.675028 + 0.430578, -0.042987, 0.597523, 0.675071 + 0.429720, -0.043900, 0.598027, 0.675113 + 0.428863, -0.044814, 0.598529, 0.675153 + 0.428007, -0.045730, 0.599029, 0.675191 + 0.427152, -0.046647, 0.599527, 0.675228 + 0.426298, -0.047565, 0.600022, 0.675264 + 0.425445, -0.048485, 0.600516, 0.675297 + 0.424594, -0.049406, 0.601007, 0.675329 + 0.423743, -0.050329, 0.601496, 0.675360 + 0.422894, -0.051253, 0.601984, 0.675389 + 0.422045, -0.052178, 0.602469, 0.675416 + 0.421198, -0.053105, 0.602951, 0.675442 + 0.420352, -0.054033, 0.603432, 0.675466 + 0.419507, -0.054962, 0.603911, 0.675489 + 0.418663, -0.055893, 0.604387, 0.675510 + 0.417821, -0.056825, 0.604861, 0.675529 + 0.416979, -0.057758, 0.605333, 0.675547 + 0.416139, -0.058692, 0.605803, 0.675564 + 0.415299, -0.059628, 0.606271, 0.675578 + 0.414461, -0.060565, 0.606737, 0.675592 + 0.413624, -0.061504, 0.607200, 0.675604 + 0.412789, -0.062443, 0.607661, 0.675614 + 0.411954, -0.063384, 0.608120, 0.675623 + 0.411120, -0.064327, 0.608577, 0.675630 + 0.410288, -0.065270, 0.609032, 0.675636 + 0.409457, -0.066215, 0.609485, 0.675640 + 0.408627, -0.067161, 0.609935, 0.675643 + 0.407798, -0.068108, 0.610383, 0.675644 + 0.406970, -0.069057, 0.610829, 0.675644 + 0.406144, -0.070006, 0.611273, 0.675642 + 0.405319, -0.070957, 0.611714, 0.675639 + 0.404495, -0.071909, 0.612154, 0.675634 + 0.403672, -0.072863, 0.612591, 0.675628 + 0.402850, -0.073817, 0.613026, 0.675620 + 0.402030, -0.074773, 0.613458, 0.675611 + 0.401210, -0.075730, 0.613889, 0.675600 + 0.400392, -0.076688, 0.614317, 0.675588 + 0.399575, -0.077648, 0.614743, 0.675575 + 0.398759, -0.078608, 0.615167, 0.675560 + 0.397945, -0.079570, 0.615589, 0.675544 + 0.397132, -0.080533, 0.616008, 0.675526 + 0.396320, -0.081497, 0.616425, 0.675507 + 0.395509, -0.082462, 0.616840, 0.675486 + 0.394699, -0.083428, 0.617253, 0.675464 + 0.393891, -0.084396, 0.617663, 0.675440 + 0.393084, -0.085364, 0.618071, 0.675415 + 0.392278, -0.086334, 0.618477, 0.675389 + 0.391473, -0.087305, 0.618881, 0.675361 + 0.390669, -0.088277, 0.619283, 0.675332 + 0.389867, -0.089250, 0.619682, 0.675302 + 0.389066, -0.090224, 0.620079, 0.675270 + 0.388266, -0.091199, 0.620473, 0.675237 + 0.387468, -0.092176, 0.620866, 0.675202 + 0.386671, -0.093153, 0.621256, 0.675166 + 0.385875, -0.094132, 0.621644, 0.675129 + 0.385080, -0.095111, 0.622030, 0.675090 + 0.384286, -0.096092, 0.622413, 0.675050 + 0.383494, -0.097074, 0.622794, 0.675009 + 0.382703, -0.098056, 0.623173, 0.674966 + 0.381913, -0.099040, 0.623549, 0.674922 + 0.381125, -0.100025, 0.623924, 0.674876 + 0.380338, -0.101011, 0.624296, 0.674829 + 0.379552, -0.101998, 0.624665, 0.674781 + 0.378767, -0.102986, 0.625033, 0.674732 + 0.377984, -0.103975, 0.625398, 0.674681 + 0.377202, -0.104965, 0.625761, 0.674629 + 0.376421, -0.105956, 0.626121, 0.674576 + 0.375642, -0.106948, 0.626480, 0.674521 + 0.374863, -0.107941, 0.626835, 0.674465 + 0.374087, -0.108935, 0.627189, 0.674408 + 0.373311, -0.109930, 0.627541, 0.674349 + 0.372537, -0.110926, 0.627890, 0.674290 + 0.371764, -0.111923, 0.628236, 0.674229 + 0.370992, -0.112921, 0.628581, 0.674166 + 0.370221, -0.113920, 0.628923, 0.674103 + 0.369452, -0.114920, 0.629263, 0.674038 + 0.368684, -0.115920, 0.629600, 0.673972 + 0.367918, -0.116922, 0.629935, 0.673904 + 0.367153, -0.117925, 0.630268, 0.673836 + 0.366389, -0.118928, 0.630599, 0.673766 + 0.365626, -0.119933, 0.630927, 0.673695 + 0.364865, -0.120938, 0.631253, 0.673622 + 0.364105, -0.121944, 0.631577, 0.673549 + 0.363346, -0.122952, 0.631898, 0.673474 + 0.362589, -0.123960, 0.632217, 0.673398 + 0.361833, -0.124969, 0.632533, 0.673321 + 0.361079, -0.125979, 0.632848, 0.673243 + 0.360325, -0.126989, 0.633160, 0.673163 + 0.359573, -0.128001, 0.633469, 0.673082 + 0.358823, -0.129013, 0.633776, 0.673000 + 0.358073, -0.130027, 0.634081, 0.672917 + 0.357326, -0.131041, 0.634384, 0.672833 + 0.356579, -0.132056, 0.634684, 0.672747 + 0.355834, -0.133072, 0.634982, 0.672661 + 0.355090, -0.134088, 0.635278, 0.672573 + 0.354347, -0.135106, 0.635571, 0.672484 + 0.353606, -0.136124, 0.635862, 0.672394 + 0.352866, -0.137143, 0.636150, 0.672302 + 0.352128, -0.138163, 0.636436, 0.672210 + 0.351391, -0.139184, 0.636720, 0.672116 + 0.350655, -0.140206, 0.637001, 0.672022 + 0.349920, -0.141228, 0.637280, 0.671926 + 0.349187, -0.142251, 0.637557, 0.671829 + 0.348456, -0.143275, 0.637831, 0.671731 + 0.347725, -0.144300, 0.638103, 0.671632 + 0.346996, -0.145325, 0.638373, 0.671531 + 0.346269, -0.146351, 0.638640, 0.671430 + 0.345542, -0.147378, 0.638905, 0.671327 + 0.344818, -0.148406, 0.639168, 0.671224 + 0.344094, -0.149434, 0.639428, 0.671119 + 0.343372, -0.150463, 0.639685, 0.671013 + 0.342651, -0.151493, 0.639941, 0.670907 + 0.341932, -0.152524, 0.640194, 0.670799 + 0.341214, -0.153555, 0.640444, 0.670690 + 0.340497, -0.154587, 0.640693, 0.670580 + 0.339782, -0.155620, 0.640939, 0.670469 + 0.339068, -0.156653, 0.641182, 0.670357 + 0.338356, -0.157687, 0.641423, 0.670244 + 0.337645, -0.158722, 0.641662, 0.670129 + 0.336935, -0.159757, 0.641898, 0.670014 + 0.336227, -0.160793, 0.642132, 0.669898 + 0.335520, -0.161830, 0.642364, 0.669781 + 0.334815, -0.162868, 0.642593, 0.669662 + 0.334111, -0.163906, 0.642820, 0.669543 + 0.333408, -0.164944, 0.643044, 0.669423 + 0.332707, -0.165984, 0.643266, 0.669301 + 0.332007, -0.167024, 0.643486, 0.669179 + 0.331309, -0.168064, 0.643703, 0.669056 + 0.330612, -0.169105, 0.643918, 0.668932 + 0.329916, -0.170147, 0.644130, 0.668806 + 0.329222, -0.171190, 0.644340, 0.668680 + 0.328529, -0.172233, 0.644548, 0.668553 + 0.327838, -0.173276, 0.644753, 0.668425 + 0.327148, -0.174320, 0.644956, 0.668296 + 0.326459, -0.175365, 0.645156, 0.668166 + 0.325772, -0.176410, 0.645354, 0.668035 + 0.325086, -0.177456, 0.645550, 0.667903 + 0.324402, -0.178503, 0.645743, 0.667770 + 0.323719, -0.179550, 0.645933, 0.667636 + 0.323038, -0.180597, 0.646122, 0.667501 + 0.322358, -0.181645, 0.646308, 0.667365 + 0.321679, -0.182694, 0.646491, 0.667229 + 0.321002, -0.183743, 0.646673, 0.667091 + 0.320326, -0.184793, 0.646851, 0.666953 + 0.319652, -0.185843, 0.647028, 0.666814 + 0.318979, -0.186894, 0.647201, 0.666673 + 0.318308, -0.187945, 0.647373, 0.666532 + 0.317638, -0.188997, 0.647542, 0.666390 + 0.316969, -0.190049, 0.647709, 0.666247 + 0.316302, -0.191101, 0.647873, 0.666104 + 0.315636, -0.192155, 0.648035, 0.665959 + 0.314972, -0.193208, 0.648194, 0.665814 + 0.314309, -0.194262, 0.648351, 0.665667 + 0.313647, -0.195317, 0.648506, 0.665520 + 0.312988, -0.196372, 0.648658, 0.665372 + 0.312329, -0.197427, 0.648808, 0.665223 + 0.311672, -0.198483, 0.648955, 0.665073 + 0.311016, -0.199539, 0.649100, 0.664923 + 0.310362, -0.200596, 0.649242, 0.664771 + 0.309709, -0.201653, 0.649382, 0.664619 + 0.309058, -0.202711, 0.649520, 0.664466 + 0.308408, -0.203769, 0.649655, 0.664312 + 0.307760, -0.204827, 0.649788, 0.664158 + 0.307113, -0.205886, 0.649918, 0.664002 + 0.306467, -0.206945, 0.650046, 0.663846 + 0.305823, -0.208004, 0.650172, 0.663689 + 0.305180, -0.209064, 0.650295, 0.663531 + 0.304539, -0.210124, 0.650416, 0.663373 + 0.303900, -0.211185, 0.650534, 0.663213 + 0.303261, -0.212246, 0.650650, 0.663053 + 0.302624, -0.213307, 0.650763, 0.662892 + 0.301989, -0.214369, 0.650874, 0.662731 + 0.301355, -0.215431, 0.650982, 0.662568 + 0.300723, -0.216493, 0.651088, 0.662405 + 0.300092, -0.217556, 0.651192, 0.662241 + 0.299462, -0.218619, 0.651293, 0.662077 + 0.298834, -0.219682, 0.651392, 0.661911 + 0.298208, -0.220745, 0.651488, 0.661745 + 0.297582, -0.221809, 0.651582, 0.661578 + 0.296959, -0.222873, 0.651674, 0.661411 + 0.296337, -0.223938, 0.651763, 0.661242 + 0.295716, -0.225002, 0.651850, 0.661074 + 0.295096, -0.226067, 0.651934, 0.660904 + 0.294479, -0.227133, 0.652016, 0.660734 + 0.293862, -0.228198, 0.652095, 0.660563 + 0.293247, -0.229264, 0.652172, 0.660391 + 0.292634, -0.230330, 0.652246, 0.660218 + 0.292022, -0.231396, 0.652318, 0.660045 + 0.291411, -0.232462, 0.652388, 0.659872 + 0.290802, -0.233529, 0.652455, 0.659697 + 0.290195, -0.234596, 0.652520, 0.659522 + 0.289589, -0.235663, 0.652582, 0.659346 + 0.288984, -0.236730, 0.652642, 0.659170 + 0.288381, -0.237798, 0.652700, 0.658993 + 0.287779, -0.238866, 0.652755, 0.658815 + 0.287179, -0.239933, 0.652807, 0.658637 + 0.286580, -0.241002, 0.652857, 0.658458 + 0.285983, -0.242070, 0.652905, 0.658279 + 0.285387, -0.243138, 0.652950, 0.658099 + 0.284793, -0.244207, 0.652993, 0.657918 + 0.284200, -0.245275, 0.653034, 0.657737 + 0.283608, -0.246344, 0.653072, 0.657555 + 0.283018, -0.247413, 0.653107, 0.657372 + 0.282430, -0.248482, 0.653140, 0.657189 + 0.281843, -0.249552, 0.653171, 0.657005 + 0.281257, -0.250621, 0.653199, 0.656821 + 0.280673, -0.251691, 0.653225, 0.656636 + 0.280091, -0.252760, 0.653249, 0.656451 + 0.279510, -0.253830, 0.653270, 0.656265 + 0.278930, -0.254900, 0.653288, 0.656078 + 0.278352, -0.255970, 0.653304, 0.655891 + 0.277775, -0.257040, 0.653318, 0.655703 + 0.277200, -0.258110, 0.653329, 0.655515 + 0.276626, -0.259180, 0.653338, 0.655327 + 0.276054, -0.260250, 0.653345, 0.655137 + 0.275483, -0.261321, 0.653349, 0.654948 + 0.274914, -0.262391, 0.653350, 0.654757 + 0.274346, -0.263461, 0.653349, 0.654566 + 0.273780, -0.264532, 0.653346, 0.654375 + 0.273215, -0.265602, 0.653340, 0.654183 + 0.272651, -0.266673, 0.653332, 0.653991 + 0.272089, -0.267743, 0.653322, 0.653798 + 0.271529, -0.268814, 0.653309, 0.653605 + 0.270970, -0.269884, 0.653293, 0.653411 + 0.270412, -0.270955, 0.653275, 0.653217 + 0.269856, -0.272025, 0.653255, 0.653022 + 0.269302, -0.273096, 0.653232, 0.652827 + 0.268749, -0.274166, 0.653207, 0.652631 + 0.268197, -0.275237, 0.653180, 0.652435 + 0.267647, -0.276307, 0.653150, 0.652238 + 0.267098, -0.277378, 0.653117, 0.652041 + 0.266551, -0.278448, 0.653083, 0.651844 + 0.266005, -0.279519, 0.653045, 0.651646 + 0.265461, -0.280589, 0.653006, 0.651447 + 0.264918, -0.281659, 0.652964, 0.651249 + 0.264377, -0.282729, 0.652919, 0.651049 + 0.263837, -0.283799, 0.652873, 0.650850 + 0.263298, -0.284869, 0.652823, 0.650650 + 0.262762, -0.285939, 0.652772, 0.650449 + 0.262226, -0.287009, 0.652717, 0.650249 + 0.261692, -0.288079, 0.652661, 0.650047 + 0.261160, -0.289149, 0.652602, 0.649846 + 0.260629, -0.290218, 0.652541, 0.649644 + 0.260099, -0.291287, 0.652477, 0.649441 + 0.259571, -0.292357, 0.652411, 0.649239 + 0.259044, -0.293426, 0.652342, 0.649035 + 0.258519, -0.294495, 0.652271, 0.648832 + 0.257995, -0.295564, 0.652198, 0.648628 + 0.257473, -0.296633, 0.652122, 0.648424 + 0.256952, -0.297701, 0.652044, 0.648219 + 0.256433, -0.298770, 0.651963, 0.648014 + 0.255915, -0.299838, 0.651880, 0.647809 + 0.255399, -0.300906, 0.651795, 0.647604 + 0.254884, -0.301974, 0.651707, 0.647398 + 0.254370, -0.303041, 0.651617, 0.647191 + 0.253858, -0.304109, 0.651525, 0.646985 + 0.253348, -0.305176, 0.651430, 0.646778 + 0.252839, -0.306243, 0.651332, 0.646571 + 0.252331, -0.307310, 0.651232, 0.646363 + 0.251825, -0.308377, 0.651130, 0.646156 + 0.251321, -0.309444, 0.651026, 0.645947 + 0.250817, -0.310510, 0.650919, 0.645739 + 0.250316, -0.311576, 0.650810, 0.645531 + 0.249815, -0.312642, 0.650698, 0.645322 + 0.249316, -0.313707, 0.650584, 0.645112 + 0.248819, -0.314772, 0.650467, 0.644903 + 0.248323, -0.315837, 0.650348, 0.644693 + 0.247829, -0.316902, 0.650227, 0.644483 + 0.247336, -0.317967, 0.650104, 0.644273 + 0.246844, -0.319031, 0.649978, 0.644063 + 0.246354, -0.320095, 0.649849, 0.643852 + 0.245865, -0.321158, 0.649718, 0.643641 + 0.245378, -0.322222, 0.649585, 0.643430 + 0.244892, -0.323285, 0.649450, 0.643218 + 0.244408, -0.324347, 0.649312, 0.643007 + 0.243925, -0.325410, 0.649172, 0.642795 + 0.243444, -0.326472, 0.649029, 0.642583 + 0.242964, -0.327534, 0.648884, 0.642371 + 0.242485, -0.328595, 0.648737, 0.642158 + 0.242008, -0.329656, 0.648587, 0.641945 + 0.241532, -0.330717, 0.648435, 0.641733 + 0.241058, -0.331777, 0.648280, 0.641519 + 0.240586, -0.332837, 0.648124, 0.641306 + 0.240114, -0.333897, 0.647964, 0.641093 + 0.239644, -0.334956, 0.647803, 0.640879 + 0.239176, -0.336015, 0.647639, 0.640666 + 0.238709, -0.337074, 0.647473, 0.640452 + 0.238243, -0.338132, 0.647304, 0.640238 + 0.237779, -0.339190, 0.647133, 0.640023 + 0.237317, -0.340247, 0.646960, 0.639809 + 0.236855, -0.341304, 0.646784, 0.639595 + 0.236395, -0.342361, 0.646606, 0.639380 + 0.235937, -0.343417, 0.646426, 0.639165 + 0.235480, -0.344473, 0.646243, 0.638950 + 0.235025, -0.345528, 0.646058, 0.638735 + 0.234571, -0.346583, 0.645871, 0.638520 + 0.234118, -0.347637, 0.645681, 0.638305 + 0.233667, -0.348691, 0.645489, 0.638090 + 0.233217, -0.349745, 0.645295, 0.637874 + 0.232768, -0.350798, 0.645098, 0.637658 + 0.232321, -0.351850, 0.644899, 0.637443 + 0.231876, -0.352903, 0.644698, 0.637227 + 0.231432, -0.353954, 0.644494, 0.637011 + 0.230989, -0.355005, 0.644288, 0.636795 + 0.230548, -0.356056, 0.644080, 0.636579 + 0.230108, -0.357106, 0.643869, 0.636363 + 0.229669, -0.358156, 0.643656, 0.636147 + 0.229232, -0.359205, 0.643441, 0.635931 + 0.228797, -0.360254, 0.643223, 0.635715 + 0.228362, -0.361302, 0.643003, 0.635499 + 0.227929, -0.362350, 0.642781, 0.635282 + 0.227498, -0.363397, 0.642556, 0.635066 + 0.227068, -0.364443, 0.642329, 0.634850 + 0.226639, -0.365489, 0.642100, 0.634633 + 0.226212, -0.366535, 0.641869, 0.634417 + 0.225786, -0.367580, 0.641635, 0.634200 + 0.225362, -0.368624, 0.641399, 0.633984 + 0.224939, -0.369668, 0.641161, 0.633767 + 0.224517, -0.370711, 0.640920, 0.633551 + 0.224097, -0.371754, 0.640677, 0.633335 + 0.223678, -0.372796, 0.640432, 0.633118 + 0.223261, -0.373837, 0.640184, 0.632902 + 0.222845, -0.374878, 0.639934, 0.632685 + 0.222430, -0.375919, 0.639682, 0.632469 + 0.222017, -0.376958, 0.639428, 0.632252 + 0.221605, -0.377997, 0.639171, 0.632036 + 0.221194, -0.379036, 0.638912, 0.631820 + 0.220785, -0.380074, 0.638651, 0.631603 + 0.220378, -0.381111, 0.638388, 0.631387 + 0.219971, -0.382148, 0.638122, 0.631171 + 0.219566, -0.383184, 0.637854, 0.630955 + 0.219163, -0.384219, 0.637583, 0.630738 + 0.218760, -0.385253, 0.637311, 0.630522 + 0.218359, -0.386287, 0.637036, 0.630306 + 0.217960, -0.387321, 0.636759, 0.630090 + 0.217562, -0.388353, 0.636480, 0.629875 + 0.217165, -0.389385, 0.636198, 0.629659 + 0.216770, -0.390417, 0.635914, 0.629443 + 0.216376, -0.391447, 0.635628, 0.629228 + 0.215983, -0.392477, 0.635340, 0.629012 + 0.215592, -0.393507, 0.635049, 0.628797 + 0.215202, -0.394535, 0.634756, 0.628581 + 0.214813, -0.395563, 0.634461, 0.628366 + 0.214426, -0.396590, 0.634164, 0.628151 + 0.214040, -0.397617, 0.633864, 0.627936 + 0.213655, -0.398642, 0.633563, 0.627721 + 0.213272, -0.399667, 0.633259, 0.627507 + 0.212890, -0.400691, 0.632952, 0.627292 + 0.212510, -0.401715, 0.632644, 0.627078 + 0.212131, -0.402738, 0.632333, 0.626863 + 0.211753, -0.403760, 0.632020, 0.626649 + 0.211376, -0.404781, 0.631705, 0.626435 + 0.211001, -0.405801, 0.631388, 0.626221 + 0.210627, -0.406821, 0.631069, 0.626008 + 0.210255, -0.407840, 0.630747, 0.625794 + 0.209884, -0.408858, 0.630423, 0.625581 + 0.209514, -0.409875, 0.630097, 0.625367 + 0.209145, -0.410892, 0.629768, 0.625154 + 0.208778, -0.411908, 0.629438, 0.624942 + 0.208412, -0.412923, 0.629105, 0.624729 + 0.208048, -0.413937, 0.628770, 0.624516 + 0.207685, -0.414950, 0.628433, 0.624304 + 0.207323, -0.415963, 0.628094, 0.624092 + 0.206962, -0.416974, 0.627752, 0.623880 + 0.206603, -0.417985, 0.627408, 0.623668 + 0.206245, -0.418995, 0.627063, 0.623457 + 0.205888, -0.420004, 0.626715, 0.623246 + 0.205533, -0.421013, 0.626364, 0.623035 + 0.205179, -0.422020, 0.626012, 0.622824 + 0.204826, -0.423027, 0.625657, 0.622613 + 0.204475, -0.424033, 0.625301, 0.622403 + 0.204125, -0.425037, 0.624942, 0.622193 + 0.203776, -0.426042, 0.624581, 0.621983 + 0.203428, -0.427045, 0.624218, 0.621773 + 0.203082, -0.428047, 0.623852, 0.621564 + 0.202737, -0.429048, 0.623485, 0.621355 + 0.202393, -0.430049, 0.623115, 0.621146 + 0.202051, -0.431048, 0.622743, 0.620937 + 0.201710, -0.432047, 0.622370, 0.620729 + 0.201370, -0.433045, 0.621993, 0.620521 + 0.201031, -0.434042, 0.621615, 0.620313 + 0.200694, -0.435038, 0.621235, 0.620106 + 0.200358, -0.436033, 0.620852, 0.619899 + 0.200023, -0.437027, 0.620468, 0.619692 + 0.199689, -0.438020, 0.620081, 0.619485 + 0.199357, -0.439012, 0.619692, 0.619279 + 0.199026, -0.440004, 0.619301, 0.619073 + 0.198696, -0.440994, 0.618908, 0.618867 + 0.198368, -0.441983, 0.618513, 0.618662 + 0.198041, -0.442972, 0.618116, 0.618457 + 0.197715, -0.443959, 0.617717, 0.618252 + 0.197390, -0.444946, 0.617315, 0.618047 + 0.197067, -0.445931, 0.616912, 0.617843 + 0.196744, -0.446916, 0.616506, 0.617639 + 0.196423, -0.447899, 0.616098, 0.617436 + 0.196104, -0.448882, 0.615688, 0.617233 + 0.195785, -0.449863, 0.615277, 0.617030 + 0.195468, -0.450844, 0.614863, 0.616828 + 0.195152, -0.451823, 0.614446, 0.616626 + 0.194837, -0.452802, 0.614028, 0.616424 + 0.194523, -0.453779, 0.613608, 0.616223 + 0.194211, -0.454756, 0.613186, 0.616022 + 0.193900, -0.455731, 0.612761, 0.615821 + 0.193590, -0.456705, 0.612335, 0.615621 + 0.193281, -0.457679, 0.611907, 0.615421 + 0.192974, -0.458651, 0.611476, 0.615221 + 0.192667, -0.459622, 0.611043, 0.615022 + 0.192362, -0.460593, 0.610609, 0.614824 + 0.192058, -0.461562, 0.610172, 0.614625 + 0.191756, -0.462530, 0.609733, 0.614427 + 0.191454, -0.463497, 0.609293, 0.614230 + 0.191154, -0.464463, 0.608850, 0.614033 + 0.190855, -0.465428, 0.608405, 0.613836 + 0.190557, -0.466392, 0.607958, 0.613640 + 0.190260, -0.467354, 0.607509, 0.613444 + 0.189964, -0.468316, 0.607059, 0.613248 + 0.189670, -0.469276, 0.606606, 0.613053 + 0.189377, -0.470236, 0.606151, 0.612859 + 0.189085, -0.471194, 0.605694, 0.612665 + 0.188794, -0.472151, 0.605235, 0.612471 + 0.188504, -0.473107, 0.604774, 0.612278 + 0.188216, -0.474062, 0.604311, 0.612085 + 0.187929, -0.475016, 0.603846, 0.611892 + 0.187642, -0.475969, 0.603379, 0.611700 + 0.187357, -0.476921, 0.602910, 0.611509 + 0.187074, -0.477871, 0.602440, 0.611318 + 0.186791, -0.478820, 0.601967, 0.611127 + 0.186509, -0.479768, 0.601492, 0.610937 + 0.186229, -0.480715, 0.601015, 0.610748 + 0.185950, -0.481661, 0.600536, 0.610558 + 0.185671, -0.482606, 0.600055, 0.610370 + 0.185394, -0.483549, 0.599573, 0.610182 + 0.185119, -0.484492, 0.599088, 0.609994 + 0.184844, -0.485433, 0.598601, 0.609807 + 0.184570, -0.486373, 0.598113, 0.609620 + 0.184298, -0.487311, 0.597622, 0.609434 + 0.184027, -0.488249, 0.597130, 0.609248 + 0.183756, -0.489185, 0.596636, 0.609063 + 0.183487, -0.490120, 0.596139, 0.608878 + 0.183219, -0.491054, 0.595641, 0.608694 + 0.182952, -0.491987, 0.595141, 0.608510 + 0.182687, -0.492919, 0.594639, 0.608327 + 0.182422, -0.493849, 0.594135, 0.608144 + 0.182158, -0.494778, 0.593629, 0.607962 + 0.181896, -0.495706, 0.593121, 0.607781 + 0.181635, -0.496632, 0.592611, 0.607600 + 0.181374, -0.497558, 0.592099, 0.607419 + 0.181115, -0.498482, 0.591586, 0.607239 + 0.180857, -0.499405, 0.591070, 0.607060 + 0.180600, -0.500326, 0.590553, 0.606881 + 0.180344, -0.501247, 0.590034, 0.606703 + 0.180089, -0.502166, 0.589512, 0.606525 + 0.179835, -0.503084, 0.588989, 0.606348 + 0.179583, -0.504000, 0.588465, 0.606171 + 0.179331, -0.504916, 0.587938, 0.605995 + 0.179081, -0.505830, 0.587409, 0.605819 + 0.178831, -0.506742, 0.586879, 0.605644 + 0.178583, -0.507654, 0.586346, 0.605470 + 0.178335, -0.508564, 0.585812, 0.605296 + 0.178089, -0.509473, 0.585276, 0.605123 + 0.177843, -0.510380, 0.584738, 0.604951 + 0.177599, -0.511287, 0.584198, 0.604779 + 0.177356, -0.512192, 0.583656, 0.604607 + 0.177114, -0.513095, 0.583113, 0.604436 + 0.176873, -0.513997, 0.582568, 0.604266 + 0.176633, -0.514898, 0.582021, 0.604097 + 0.176393, -0.515798, 0.581472, 0.603928 + 0.176155, -0.516696, 0.580921, 0.603759 + 0.175918, -0.517593, 0.580368, 0.603591 + 0.175682, -0.518489, 0.579814, 0.603424 + 0.175447, -0.519383, 0.579258, 0.603258 + 0.175213, -0.520276, 0.578700, 0.603092 + 0.174980, -0.521168, 0.578140, 0.602926 + 0.174748, -0.522058, 0.577578, 0.602762 + 0.174517, -0.522947, 0.577015, 0.602598 + 0.174287, -0.523834, 0.576450, 0.602434 + 0.174058, -0.524721, 0.575883, 0.602272 + 0.173830, -0.525605, 0.575314, 0.602110 + 0.173603, -0.526489, 0.574743, 0.601948 + 0.173377, -0.527371, 0.574171, 0.601787 + 0.173152, -0.528251, 0.573597, 0.601627 + 0.172928, -0.529131, 0.573021, 0.601468 + 0.172705, -0.530008, 0.572444, 0.601309 + 0.172483, -0.530885, 0.571864, 0.601151 + 0.172262, -0.531760, 0.571283, 0.600993 + 0.172041, -0.532633, 0.570700, 0.600836 + 0.171822, -0.533506, 0.570116, 0.600680 + 0.171604, -0.534376, 0.569529, 0.600525 + 0.171386, -0.535246, 0.568941, 0.600370 + 0.171170, -0.536114, 0.568352, 0.600216 + 0.170955, -0.536980, 0.567760, 0.600063 + 0.170740, -0.537845, 0.567167, 0.599910 + 0.170526, -0.538709, 0.566572, 0.599758 + 0.170314, -0.539571, 0.565975, 0.599606 + 0.170102, -0.540432, 0.565377, 0.599456 + 0.169891, -0.541291, 0.564777, 0.599306 + 0.169681, -0.542149, 0.564175, 0.599157 + 0.169473, -0.543006, 0.563572, 0.599008 + 0.169264, -0.543861, 0.562967, 0.598860 + 0.169057, -0.544714, 0.562360, 0.598713 + 0.168851, -0.545566, 0.561751, 0.598567 + 0.168646, -0.546417, 0.561141, 0.598421 + 0.168441, -0.547266, 0.560529, 0.598276 + 0.168238, -0.548114, 0.559916, 0.598132 + 0.168035, -0.548960, 0.559301, 0.597988 + 0.167834, -0.549804, 0.558684, 0.597846 + 0.167633, -0.550647, 0.558066, 0.597703 + 0.167433, -0.551489, 0.557445, 0.597562 + 0.167234, -0.552329, 0.556824, 0.597422 + 0.167036, -0.553168, 0.556200, 0.597282 + 0.166838, -0.554005, 0.555575, 0.597143 + 0.166642, -0.554841, 0.554949, 0.597004 + 0.166446, -0.555675, 0.554320, 0.596867 + 0.166251, -0.556508, 0.553690, 0.596730 + 0.166057, -0.557339, 0.553059, 0.596594 + 0.165864, -0.558168, 0.552426, 0.596459 + 0.165672, -0.558996, 0.551791, 0.596324 + 0.165481, -0.559823, 0.551155, 0.596190 + 0.165290, -0.560648, 0.550517, 0.596057 + 0.165101, -0.561471, 0.549877, 0.595925 + 0.164912, -0.562293, 0.549236, 0.595793 + 0.164724, -0.563114, 0.548593, 0.595663 + 0.164537, -0.563933, 0.547949, 0.595533 + 0.164350, -0.564750, 0.547303, 0.595404 + 0.164165, -0.565566, 0.546656, 0.595275 + 0.163980, -0.566380, 0.546007, 0.595148 + 0.163796, -0.567192, 0.545356, 0.595021 + 0.163613, -0.568004, 0.544704, 0.594895 + 0.163431, -0.568813, 0.544051, 0.594770 + 0.163249, -0.569621, 0.543395, 0.594645 + 0.163069, -0.570427, 0.542739, 0.594522 + 0.162889, -0.571232, 0.542080, 0.594399 + 0.162710, -0.572035, 0.541421, 0.594277 + 0.162531, -0.572837, 0.540759, 0.594156 + 0.162354, -0.573637, 0.540096, 0.594035 + 0.162177, -0.574435, 0.539432, 0.593916 + 0.162001, -0.575232, 0.538766, 0.593797 + 0.161826, -0.576027, 0.538099, 0.593679 + 0.161651, -0.576821, 0.537430, 0.593562 + 0.161478, -0.577613, 0.536759, 0.593446 + 0.161305, -0.578403, 0.536088, 0.593330 + 0.161132, -0.579192, 0.535414, 0.593215 + 0.160961, -0.579979, 0.534739, 0.593102 + 0.160790, -0.580765, 0.534063, 0.592989 + 0.160620, -0.581549, 0.533385, 0.592876 + 0.160451, -0.582331, 0.532706, 0.592765 + 0.160282, -0.583112, 0.532025, 0.592655 + 0.160115, -0.583891, 0.531343, 0.592545 + 0.159948, -0.584668, 0.530659, 0.592436 + 0.159781, -0.585444, 0.529974, 0.592328 + 0.159616, -0.586218, 0.529288, 0.592221 + 0.159451, -0.586991, 0.528600, 0.592115 + 0.159286, -0.587762, 0.527910, 0.592009 + 0.159123, -0.588531, 0.527219, 0.591905 + 0.158960, -0.589298, 0.526527, 0.591801 + 0.158798, -0.590064, 0.525833, 0.591698 + 0.158637, -0.590828, 0.525138, 0.591596 + 0.158476, -0.591591, 0.524442, 0.591495 + 0.158316, -0.592352, 0.523744, 0.591395 + 0.158156, -0.593111, 0.523044, 0.591296 + 0.157998, -0.593869, 0.522344, 0.591197 + 0.157840, -0.594625, 0.521641, 0.591099 + 0.157682, -0.595379, 0.520938, 0.591003 + 0.157526, -0.596131, 0.520233, 0.590907 + 0.157370, -0.596882, 0.519527, 0.590812 + 0.157214, -0.597631, 0.518819, 0.590717 + 0.157059, -0.598379, 0.518110, 0.590624 + 0.156905, -0.599125, 0.517400, 0.590532 + 0.156752, -0.599869, 0.516688, 0.590440 + 0.156599, -0.600611, 0.515975, 0.590350 + 0.156447, -0.601352, 0.515260, 0.590260 + 0.156295, -0.602091, 0.514545, 0.590171 + 0.156144, -0.602828, 0.513828, 0.590083 + 0.155994, -0.603564, 0.513109, 0.589996 + 0.155845, -0.604298, 0.512389, 0.589910 + 0.155695, -0.605030, 0.511668, 0.589825 + 0.155547, -0.605760, 0.510946, 0.589741 + 0.155399, -0.606489, 0.510222, 0.589657 + 0.155252, -0.607216, 0.509497, 0.589575 + 0.155105, -0.607941, 0.508771, 0.589493 + 0.154959, -0.608665, 0.508043, 0.589412 + 0.154814, -0.609387, 0.507314, 0.589333 + 0.154669, -0.610107, 0.506584, 0.589254 + 0.154524, -0.610825, 0.505853, 0.589176 + 0.154381, -0.611542, 0.505120, 0.589099 + 0.154238, -0.612256, 0.504386, 0.589023 + 0.154095, -0.612970, 0.503651, 0.588947 + 0.153953, -0.613681, 0.502914, 0.588873 + 0.153811, -0.614391, 0.502176, 0.588800 + 0.153670, -0.615098, 0.501437, 0.588727 + 0.153530, -0.615805, 0.500697, 0.588656 + 0.153390, -0.616509, 0.499956, 0.588585 + 0.153251, -0.617212, 0.499213, 0.588516 + 0.153112, -0.617912, 0.498469, 0.588447 + 0.152974, -0.618611, 0.497724, 0.588379 + 0.152836, -0.619309, 0.496977, 0.588312 + 0.152699, -0.620004, 0.496230, 0.588246 + 0.152562, -0.620698, 0.495481, 0.588181 + 0.152426, -0.621390, 0.494731, 0.588117 + 0.152291, -0.622080, 0.493980, 0.588054 + 0.152156, -0.622769, 0.493227, 0.587992 + 0.152021, -0.623455, 0.492473, 0.587931 + 0.151887, -0.624140, 0.491719, 0.587871 + 0.151753, -0.624823, 0.490963, 0.587811 + 0.151620, -0.625505, 0.490206, 0.587753 + 0.151487, -0.626184, 0.489447, 0.587696 + 0.151355, -0.626862, 0.488688, 0.587639 + 0.151224, -0.627538, 0.487927, 0.587584 + 0.151092, -0.628212, 0.487165, 0.587529 + 0.150962, -0.628885, 0.486402, 0.587476 + 0.150831, -0.629555, 0.485638, 0.587423 + 0.150701, -0.630224, 0.484873, 0.587371 + 0.150572, -0.630891, 0.484107, 0.587321 + 0.150443, -0.631556, 0.483339, 0.587271 + 0.150315, -0.632219, 0.482571, 0.587222 + 0.150187, -0.632881, 0.481801, 0.587174 + 0.150059, -0.633540, 0.481030, 0.587128 + 0.149932, -0.634198, 0.480258, 0.587082 + 0.149805, -0.634854, 0.479485, 0.587037 + 0.149679, -0.635509, 0.478711, 0.586993 + 0.149553, -0.636161, 0.477936, 0.586950 + 0.149427, -0.636812, 0.477160, 0.586908 + 0.149302, -0.637460, 0.476382, 0.586867 + 0.149178, -0.638107, 0.475604, 0.586827 + 0.149054, -0.638752, 0.474825, 0.586788 + 0.148930, -0.639396, 0.474044, 0.586750 + 0.148806, -0.640037, 0.473262, 0.586713 + 0.148683, -0.640677, 0.472480, 0.586677 + 0.148560, -0.641314, 0.471696, 0.586642 + 0.148438, -0.641950, 0.470911, 0.586607 + 0.148316, -0.642584, 0.470126, 0.586574 + 0.148195, -0.643217, 0.469339, 0.586542 + 0.148073, -0.643847, 0.468551, 0.586511 + 0.147953, -0.644476, 0.467762, 0.586481 + 0.147832, -0.645102, 0.466972, 0.586452 + 0.147712, -0.645727, 0.466181, 0.586423 + 0.147592, -0.646350, 0.465390, 0.586396 + 0.147473, -0.646971, 0.464597, 0.586370 + 0.147354, -0.647591, 0.463803, 0.586345 + 0.147235, -0.648208, 0.463008, 0.586321 + 0.147117, -0.648824, 0.462212, 0.586297 + 0.146998, -0.649437, 0.461415, 0.586275 + 0.146881, -0.650049, 0.460618, 0.586254 + 0.146763, -0.650659, 0.459819, 0.586234 + 0.146646, -0.651267, 0.459019, 0.586214 + 0.146529, -0.651873, 0.458219, 0.586196 + 0.146413, -0.652478, 0.457417, 0.586179 + 0.146297, -0.653080, 0.456615, 0.586163 + 0.146181, -0.653681, 0.455811, 0.586147 + 0.146065, -0.654280, 0.455007, 0.586133 + 0.145950, -0.654877, 0.454201, 0.586120 + 0.145835, -0.655472, 0.453395, 0.586108 + 0.145720, -0.656065, 0.452588, 0.586096 + 0.145605, -0.656656, 0.451780, 0.586086 + 0.145491, -0.657245, 0.450971, 0.586077 + 0.145377, -0.657833, 0.450161, 0.586069 + 0.145263, -0.658418, 0.449350, 0.586062 + 0.145150, -0.659002, 0.448539, 0.586056 + 0.145037, -0.659584, 0.447726, 0.586050 + 0.144924, -0.660164, 0.446913, 0.586046 + 0.144811, -0.660742, 0.446098, 0.586043 + 0.144699, -0.661318, 0.445283, 0.586041 + 0.144586, -0.661892, 0.444467, 0.586040 + 0.144474, -0.662464, 0.443650, 0.586040 + 0.144363, -0.663035, 0.442833, 0.586041 + 0.144251, -0.663603, 0.442014, 0.586043 + 0.144140, -0.664170, 0.441195, 0.586046 + 0.144028, -0.664735, 0.440374, 0.586050 + 0.143918, -0.665298, 0.439553, 0.586055 + 0.143807, -0.665858, 0.438731, 0.586061 + 0.143696, -0.666417, 0.437909, 0.586068 + 0.143586, -0.666975, 0.437085, 0.586076 + 0.143476, -0.667530, 0.436261, 0.586085 + 0.143366, -0.668083, 0.435436, 0.586095 + 0.143256, -0.668635, 0.434610, 0.586106 + 0.143146, -0.669184, 0.433783, 0.586118 + 0.143037, -0.669732, 0.432955, 0.586131 + 0.142928, -0.670277, 0.432127, 0.586145 + 0.142819, -0.670821, 0.431298, 0.586161 + 0.142710, -0.671363, 0.430468, 0.586177 + 0.142601, -0.671903, 0.429638, 0.586194 + 0.142492, -0.672441, 0.428806, 0.586212 + 0.142384, -0.672977, 0.427974, 0.586232 + 0.142275, -0.673511, 0.427141, 0.586252 + 0.142167, -0.674043, 0.426308, 0.586273 + 0.142059, -0.674573, 0.425473, 0.586296 + 0.141951, -0.675102, 0.424638, 0.586319 + 0.141843, -0.675628, 0.423802, 0.586343 + 0.141735, -0.676153, 0.422966, 0.586369 + 0.141628, -0.676675, 0.422129, 0.586395 + 0.141520, -0.677196, 0.421291, 0.586423 + 0.141413, -0.677715, 0.420452, 0.586451 + 0.141305, -0.678232, 0.419613, 0.586481 + 0.141198, -0.678747, 0.418773, 0.586511 + 0.141091, -0.679260, 0.417932, 0.586543 + 0.140984, -0.679771, 0.417091, 0.586576 + 0.140877, -0.680280, 0.416248, 0.586609 + 0.140770, -0.680787, 0.415406, 0.586644 + 0.140663, -0.681292, 0.414562, 0.586680 + 0.140557, -0.681795, 0.413718, 0.586716 + 0.140450, -0.682297, 0.412873, 0.586754 + 0.140343, -0.682796, 0.412028, 0.586793 + 0.140237, -0.683294, 0.411182, 0.586833 + 0.140130, -0.683789, 0.410335, 0.586874 + 0.140024, -0.684283, 0.409488, 0.586916 + 0.139917, -0.684774, 0.408640, 0.586958 + 0.139811, -0.685264, 0.407792, 0.587002 + 0.139704, -0.685752, 0.406943, 0.587047 + 0.139598, -0.686238, 0.406093, 0.587093 + 0.139492, -0.686722, 0.405242, 0.587140 + 0.139385, -0.687204, 0.404391, 0.587188 + 0.139279, -0.687684, 0.403540, 0.587238 + 0.139173, -0.688162, 0.402688, 0.587288 + 0.139067, -0.688638, 0.401835, 0.587339 + 0.138960, -0.689112, 0.400982, 0.587391 + 0.138854, -0.689584, 0.400128, 0.587444 + 0.138748, -0.690055, 0.399273, 0.587498 + 0.138641, -0.690523, 0.398418, 0.587554 + 0.138535, -0.690990, 0.397563, 0.587610 + 0.138429, -0.691454, 0.396707, 0.587667 + 0.138322, -0.691916, 0.395850, 0.587726 + 0.138216, -0.692377, 0.394993, 0.587785 + 0.138109, -0.692836, 0.394135, 0.587845 + 0.138003, -0.693292, 0.393277, 0.587907 + 0.137896, -0.693747, 0.392418, 0.587969 + 0.137790, -0.694200, 0.391559, 0.588033 + 0.137683, -0.694651, 0.390699, 0.588097 + 0.137577, -0.695099, 0.389839, 0.588163 + 0.137470, -0.695546, 0.388978, 0.588229 + 0.137363, -0.695991, 0.388116, 0.588297 + 0.137256, -0.696434, 0.387255, 0.588365 + 0.137149, -0.696875, 0.386392, 0.588435 + 0.137042, -0.697315, 0.385530, 0.588506 + 0.136935, -0.697752, 0.384666, 0.588577 + 0.136828, -0.698187, 0.383803, 0.588650 + 0.136720, -0.698620, 0.382939, 0.588724 + 0.136613, -0.699051, 0.382074, 0.588798 + 0.136505, -0.699481, 0.381209, 0.588874 + 0.136398, -0.699908, 0.380343, 0.588951 + 0.136290, -0.700334, 0.379477, 0.589029 + 0.136182, -0.700757, 0.378611, 0.589108 + 0.136074, -0.701179, 0.377744, 0.589187 + 0.135966, -0.701598, 0.376877, 0.589268 + 0.135858, -0.702016, 0.376009, 0.589350 + 0.135749, -0.702432, 0.375141, 0.589433 + 0.135641, -0.702845, 0.374273, 0.589517 + 0.135532, -0.703257, 0.373404, 0.589602 + 0.135423, -0.703667, 0.372534, 0.589688 + 0.135315, -0.704075, 0.371665, 0.589775 + 0.135205, -0.704481, 0.370795, 0.589863 + 0.135096, -0.704884, 0.369924, 0.589952 + 0.134987, -0.705286, 0.369053, 0.590042 + 0.134877, -0.705687, 0.368182, 0.590133 + 0.134767, -0.706085, 0.367311, 0.590225 + 0.134657, -0.706481, 0.366439, 0.590318 + 0.134547, -0.706875, 0.365567, 0.590412 + 0.134437, -0.707267, 0.364694, 0.590507 + 0.134326, -0.707657, 0.363821, 0.590603 + 0.134216, -0.708046, 0.362948, 0.590700 + 0.134105, -0.708432, 0.362074, 0.590798 + 0.133994, -0.708816, 0.361200, 0.590897 + 0.133882, -0.709199, 0.360326, 0.590997 + 0.133771, -0.709579, 0.359451, 0.591098 + 0.133659, -0.709958, 0.358576, 0.591200 + 0.133547, -0.710335, 0.357701, 0.591304 + 0.133435, -0.710709, 0.356826, 0.591408 + 0.133322, -0.711082, 0.355950, 0.591513 + 0.133210, -0.711453, 0.355074, 0.591619 + 0.133097, -0.711821, 0.354198, 0.591726 + 0.132984, -0.712188, 0.353321, 0.591834 + 0.132870, -0.712553, 0.352444, 0.591943 + 0.132757, -0.712916, 0.351567, 0.592053 + 0.132643, -0.713277, 0.350689, 0.592164 + 0.132528, -0.713636, 0.349812, 0.592277 + 0.132414, -0.713993, 0.348934, 0.592390 + 0.132299, -0.714348, 0.348056, 0.592504 + 0.132184, -0.714702, 0.347177, 0.592619 + 0.132069, -0.715053, 0.346299, 0.592735 + 0.131953, -0.715402, 0.345420, 0.592852 + 0.131838, -0.715749, 0.344541, 0.592970 + 0.131721, -0.716095, 0.343661, 0.593089 + 0.131605, -0.716438, 0.342782, 0.593209 + 0.131488, -0.716780, 0.341902, 0.593330 + 0.131371, -0.717119, 0.341022, 0.593452 + 0.131254, -0.717457, 0.340142, 0.593575 + 0.131136, -0.717793, 0.339262, 0.593699 + 0.131018, -0.718126, 0.338381, 0.593824 + 0.130900, -0.718458, 0.337500, 0.593950 + 0.130781, -0.718788, 0.336619, 0.594077 + 0.130662, -0.719116, 0.335738, 0.594205 + 0.130543, -0.719442, 0.334857, 0.594334 + 0.130423, -0.719766, 0.333976, 0.594464 + 0.130303, -0.720088, 0.333094, 0.594594 + 0.130183, -0.720408, 0.332213, 0.594726 + 0.130062, -0.720726, 0.331331, 0.594859 + 0.129941, -0.721043, 0.330449, 0.594993 + 0.129820, -0.721357, 0.329567, 0.595127 + 0.129698, -0.721669, 0.328685, 0.595263 + 0.129576, -0.721980, 0.327802, 0.595400 + 0.129453, -0.722288, 0.326920, 0.595537 + 0.129331, -0.722595, 0.326037, 0.595676 + 0.129207, -0.722900, 0.325155, 0.595815 + 0.129084, -0.723202, 0.324272, 0.595956 + 0.128960, -0.723503, 0.323389, 0.596097 + 0.128835, -0.723802, 0.322506, 0.596240 + 0.128710, -0.724099, 0.321623, 0.596383 + 0.128585, -0.724394, 0.320740, 0.596527 + 0.128459, -0.724687, 0.319857, 0.596673 + 0.128333, -0.724978, 0.318974, 0.596819 + 0.128207, -0.725268, 0.318090, 0.596966 + 0.128080, -0.725555, 0.317207, 0.597114 + 0.127952, -0.725840, 0.316324, 0.597263 + 0.127825, -0.726124, 0.315440, 0.597413 + 0.127697, -0.726405, 0.314557, 0.597564 + 0.127568, -0.726685, 0.313673, 0.597716 + 0.127439, -0.726963, 0.312789, 0.597869 + 0.127309, -0.727239, 0.311906, 0.598023 + 0.127179, -0.727512, 0.311022, 0.598177 + 0.127049, -0.727784, 0.310139, 0.598333 + 0.126918, -0.728054, 0.309255, 0.598490 + 0.126787, -0.728323, 0.308371, 0.598647 + 0.126655, -0.728589, 0.307488, 0.598806 + 0.126523, -0.728853, 0.306604, 0.598965 + 0.126390, -0.729116, 0.305720, 0.599125 + 0.126257, -0.729376, 0.304837, 0.599287 + 0.126123, -0.729635, 0.303953, 0.599449 + 0.125989, -0.729891, 0.303069, 0.599612 + 0.125854, -0.730146, 0.302186, 0.599776 + 0.125719, -0.730399, 0.301302, 0.599941 + 0.125583, -0.730650, 0.300419, 0.600107 + 0.125447, -0.730899, 0.299536, 0.600274 + 0.125310, -0.731146, 0.298652, 0.600441 + 0.125173, -0.731391, 0.297769, 0.600610 + 0.125035, -0.731635, 0.296886, 0.600779 + 0.124897, -0.731876, 0.296002, 0.600950 + 0.124758, -0.732116, 0.295119, 0.601121 + 0.124619, -0.732353, 0.294236, 0.601293 + 0.124479, -0.732589, 0.293353, 0.601466 + 0.124339, -0.732823, 0.292470, 0.601641 + 0.124198, -0.733055, 0.291588, 0.601815 + 0.124056, -0.733285, 0.290705, 0.601991 + 0.123914, -0.733513, 0.289822, 0.602168 + 0.123772, -0.733740, 0.288940, 0.602346 + 0.123629, -0.733964, 0.288058, 0.602524 + 0.123485, -0.734187, 0.287175, 0.602704 + 0.123341, -0.734407, 0.286293, 0.602884 + 0.123196, -0.734626, 0.285411, 0.603065 + 0.123051, -0.734843, 0.284529, 0.603247 + 0.122905, -0.735058, 0.283648, 0.603430 + 0.122758, -0.735271, 0.282766, 0.603614 + 0.122611, -0.735483, 0.281885, 0.603799 + 0.122463, -0.735692, 0.281003, 0.603984 + 0.122315, -0.735900, 0.280122, 0.604171 + 0.122166, -0.736105, 0.279241, 0.604358 + 0.122017, -0.736309, 0.278361, 0.604546 + 0.121867, -0.736511, 0.277480, 0.604735 + 0.121716, -0.736711, 0.276600, 0.604925 + 0.121565, -0.736909, 0.275719, 0.605116 + 0.121413, -0.737106, 0.274839, 0.605308 + 0.121260, -0.737300, 0.273959, 0.605500 + 0.121107, -0.737493, 0.273080, 0.605694 + 0.120953, -0.737684, 0.272200, 0.605888 + 0.120799, -0.737873, 0.271321, 0.606083 + 0.120644, -0.738060, 0.270442, 0.606279 + 0.120488, -0.738245, 0.269563, 0.606476 + 0.120332, -0.738428, 0.268685, 0.606673 + 0.120175, -0.738610, 0.267806, 0.606872 + 0.120017, -0.738790, 0.266928, 0.607071 + 0.119859, -0.738967, 0.266050, 0.607271 + 0.119700, -0.739143, 0.265173, 0.607472 + 0.119540, -0.739318, 0.264295, 0.607674 + 0.119380, -0.739490, 0.263418, 0.607877 + 0.119219, -0.739660, 0.262541, 0.608080 + 0.119057, -0.739829, 0.261665, 0.608284 + 0.118895, -0.739996, 0.260788, 0.608490 + 0.118732, -0.740161, 0.259912, 0.608696 + 0.118568, -0.740324, 0.259036, 0.608902 + 0.118404, -0.740485, 0.258161, 0.609110 + 0.118239, -0.740645, 0.257286, 0.609318 + 0.118073, -0.740803, 0.256411, 0.609528 + 0.117907, -0.740958, 0.255536, 0.609738 + 0.117740, -0.741112, 0.254662, 0.609948 + 0.117572, -0.741265, 0.253788, 0.610160 + 0.117403, -0.741415, 0.252914, 0.610373 + 0.117234, -0.741564, 0.252040, 0.610586 + 0.117064, -0.741710, 0.251167, 0.610800 + 0.116893, -0.741855, 0.250295, 0.611015 + 0.116722, -0.741999, 0.249422, 0.611230 + 0.116550, -0.742140, 0.248550, 0.611447 + 0.116377, -0.742280, 0.247678, 0.611664 + 0.116203, -0.742417, 0.246807, 0.611882 + 0.116029, -0.742553, 0.245936, 0.612101 + 0.115854, -0.742687, 0.245065, 0.612320 + 0.115678, -0.742820, 0.244195, 0.612541 + 0.115501, -0.742950, 0.243325, 0.612762 + 0.115324, -0.743079, 0.242455, 0.612984 + 0.115146, -0.743206, 0.241586, 0.613206 + 0.114967, -0.743331, 0.240717, 0.613430 + 0.114787, -0.743455, 0.239849, 0.613654 + 0.114607, -0.743577, 0.238980, 0.613879 + 0.114426, -0.743696, 0.238113, 0.614105 + 0.114244, -0.743815, 0.237245, 0.614331 + 0.114061, -0.743931, 0.236379, 0.614559 + 0.113877, -0.744045, 0.235512, 0.614786 + 0.113693, -0.744158, 0.234646, 0.615015 + 0.113508, -0.744269, 0.233780, 0.615245 + 0.113322, -0.744378, 0.232915, 0.615475 + 0.113135, -0.744486, 0.232050, 0.615706 + 0.112948, -0.744592, 0.231186, 0.615938 + 0.112760, -0.744696, 0.230322, 0.616170 + 0.112570, -0.744798, 0.229458, 0.616403 + 0.112381, -0.744898, 0.228595, 0.616637 + 0.112190, -0.744997, 0.227733, 0.616872 + 0.111998, -0.745094, 0.226870, 0.617107 + 0.111806, -0.745189, 0.226009, 0.617343 + 0.111613, -0.745283, 0.225148, 0.617580 + 0.111419, -0.745374, 0.224287, 0.617817 + 0.111224, -0.745464, 0.223426, 0.618056 + 0.111028, -0.745553, 0.222567, 0.618295 + 0.110832, -0.745639, 0.221707, 0.618534 + 0.110634, -0.745724, 0.220848, 0.618775 + 0.110436, -0.745807, 0.219990, 0.619016 + 0.110237, -0.745888, 0.219132, 0.619257 + 0.110037, -0.745968, 0.218275, 0.619500 + 0.109836, -0.746046, 0.217418, 0.619743 + 0.109634, -0.746122, 0.216561, 0.619987 + 0.109432, -0.746196, 0.215705, 0.620231 + 0.109229, -0.746269, 0.214850, 0.620476 + 0.109024, -0.746340, 0.213995, 0.620722 + 0.108819, -0.746410, 0.213141, 0.620969 + 0.108613, -0.746477, 0.212287, 0.621216 + 0.108406, -0.746543, 0.211434, 0.621464 + 0.108199, -0.746607, 0.210581, 0.621712 + 0.107990, -0.746670, 0.209729, 0.621962 + 0.107781, -0.746731, 0.208877, 0.622211 + 0.107570, -0.746790, 0.208026, 0.622462 + 0.107359, -0.746847, 0.207176, 0.622713 + 0.107147, -0.746903, 0.206326, 0.622965 + 0.106934, -0.746957, 0.205476, 0.623217 + 0.106720, -0.747009, 0.204627, 0.623471 + 0.106505, -0.747060, 0.203779, 0.623724 + 0.106289, -0.747109, 0.202931, 0.623979 + 0.106072, -0.747156, 0.202084, 0.624234 + 0.105854, -0.747202, 0.201238, 0.624489 + 0.105636, -0.747246, 0.200392, 0.624746 + 0.105416, -0.747289, 0.199547, 0.625003 + 0.105196, -0.747329, 0.198702, 0.625260 + 0.104974, -0.747368, 0.197858, 0.625518 + 0.104752, -0.747406, 0.197014, 0.625777 + 0.104529, -0.747441, 0.196171, 0.626037 + 0.104305, -0.747475, 0.195329, 0.626297 + 0.104080, -0.747508, 0.194487, 0.626557 + 0.103854, -0.747539, 0.193646, 0.626819 + 0.103627, -0.747568, 0.192806, 0.627080 + 0.103399, -0.747595, 0.191966, 0.627343 + 0.103170, -0.747621, 0.191127, 0.627606 + 0.102940, -0.747645, 0.190288, 0.627870 + 0.102709, -0.747668, 0.189450, 0.628134 + 0.102477, -0.747689, 0.188613, 0.628399 + 0.102244, -0.747708, 0.187777, 0.628664 + 0.102011, -0.747726, 0.186941, 0.628930 + 0.101776, -0.747742, 0.186106, 0.629196 + 0.101540, -0.747757, 0.185271, 0.629464 + 0.101304, -0.747769, 0.184437, 0.629731 + 0.101066, -0.747781, 0.183604, 0.629999 + 0.100827, -0.747790, 0.182771, 0.630268 + 0.100588, -0.747798, 0.181939, 0.630538 + 0.100347, -0.747805, 0.181108, 0.630808 + 0.100106, -0.747810, 0.180278, 0.631078 + 0.099863, -0.747813, 0.179448, 0.631349 + 0.099619, -0.747815, 0.178619, 0.631621 + 0.099375, -0.747815, 0.177790, 0.631893 + 0.099129, -0.747813, 0.176963, 0.632165 + 0.098883, -0.747810, 0.176136, 0.632438 + 0.098635, -0.747806, 0.175309, 0.632712 + 0.098386, -0.747799, 0.174484, 0.632986 + 0.098137, -0.747791, 0.173659, 0.633261 + 0.097886, -0.747782, 0.172835, 0.633536 + 0.097634, -0.747771, 0.172011, 0.633812 + 0.097382, -0.747759, 0.171189, 0.634088 + 0.097128, -0.747745, 0.170367, 0.634365 + 0.096873, -0.747729, 0.169546, 0.634643 + 0.096617, -0.747712, 0.168725, 0.634920 + 0.096361, -0.747693, 0.167906, 0.635199 + 0.096103, -0.747673, 0.167087, 0.635478 + 0.095844, -0.747651, 0.166268, 0.635757 + 0.095584, -0.747628, 0.165451, 0.636037 + 0.095323, -0.747603, 0.164634, 0.636317 + 0.095061, -0.747576, 0.163819, 0.636598 + 0.094798, -0.747548, 0.163003, 0.636879 + 0.094534, -0.747519, 0.162189, 0.637161 + 0.094268, -0.747488, 0.161376, 0.637443 + 0.094002, -0.747455, 0.160563, 0.637725 + 0.093735, -0.747421, 0.159751, 0.638008 + 0.093466, -0.747386, 0.158940, 0.638292 + 0.093197, -0.747349, 0.158129, 0.638576 + 0.092926, -0.747310, 0.157320, 0.638861 + 0.092655, -0.747270, 0.156511, 0.639145 + 0.092382, -0.747229, 0.155703, 0.639431 + 0.092108, -0.747185, 0.154896, 0.639717 + 0.091833, -0.747141, 0.154089, 0.640003 + 0.091558, -0.747095, 0.153284, 0.640289 + 0.091281, -0.747047, 0.152479, 0.640577 + 0.091002, -0.746998, 0.151675, 0.640864 + 0.090723, -0.746948, 0.150872, 0.641152 + 0.090443, -0.746896, 0.150070, 0.641440 + 0.090162, -0.746842, 0.149269, 0.641729 + 0.089879, -0.746787, 0.148468, 0.642018 + 0.089596, -0.746731, 0.147668, 0.642308 + 0.089311, -0.746673, 0.146869, 0.642598 + 0.089025, -0.746614, 0.146071, 0.642888 + 0.088738, -0.746553, 0.145274, 0.643179 + 0.088450, -0.746491, 0.144478, 0.643470 + 0.088161, -0.746427, 0.143683, 0.643762 + 0.087871, -0.746362, 0.142888, 0.644054 + 0.087580, -0.746296, 0.142094, 0.644346 + 0.087287, -0.746228, 0.141301, 0.644639 + 0.086994, -0.746158, 0.140509, 0.644932 + 0.086699, -0.746087, 0.139718, 0.645225 + 0.086403, -0.746015, 0.138928, 0.645519 + 0.086106, -0.745941, 0.138139, 0.645813 + 0.085808, -0.745866, 0.137350, 0.646108 + 0.085509, -0.745790, 0.136563, 0.646403 + 0.085208, -0.745712, 0.135776, 0.646698 + 0.084907, -0.745633, 0.134990, 0.646993 + 0.084604, -0.745552, 0.134206, 0.647289 + 0.084301, -0.745470, 0.133422, 0.647586 + 0.083996, -0.745386, 0.132639, 0.647882 + 0.083690, -0.745301, 0.131857, 0.648179 + 0.083382, -0.745215, 0.131075, 0.648476 + 0.083074, -0.745127, 0.130295, 0.648774 + 0.082764, -0.745038, 0.129516, 0.649072 + 0.082454, -0.744948, 0.128737, 0.649370 + 0.082142, -0.744856, 0.127960, 0.649668 + 0.081829, -0.744762, 0.127183, 0.649967 + 0.081515, -0.744668, 0.126408, 0.650266 + 0.081200, -0.744572, 0.125633, 0.650566 + 0.080883, -0.744475, 0.124859, 0.650865 + 0.080565, -0.744376, 0.124086, 0.651165 + 0.080247, -0.744276, 0.123314, 0.651466 + 0.079927, -0.744174, 0.122544, 0.651766 + 0.079605, -0.744072, 0.121774, 0.652067 + 0.079283, -0.743968, 0.121005, 0.652368 + 0.078960, -0.743862, 0.120237, 0.652669 + 0.078635, -0.743756, 0.119470, 0.652971 + 0.078309, -0.743648, 0.118703, 0.653273 + 0.077982, -0.743538, 0.117938, 0.653575 + 0.077654, -0.743427, 0.117174, 0.653877 + 0.077324, -0.743315, 0.116411, 0.654180 + 0.076994, -0.743202, 0.115649, 0.654483 + 0.076662, -0.743087, 0.114888, 0.654786 + 0.076329, -0.742971, 0.114127, 0.655089 + 0.075995, -0.742854, 0.113368, 0.655393 + 0.075659, -0.742736, 0.112610, 0.655697 + 0.075323, -0.742616, 0.111853, 0.656001 + 0.074985, -0.742495, 0.111096, 0.656305 + 0.074646, -0.742372, 0.110341, 0.656610 + 0.074306, -0.742249, 0.109587, 0.656914 + 0.073964, -0.742124, 0.108834, 0.657219 + 0.073622, -0.741997, 0.108081, 0.657524 + 0.073278, -0.741870, 0.107330, 0.657830 + 0.072933, -0.741741, 0.106580, 0.658135 + 0.072587, -0.741611, 0.105831, 0.658441 + 0.072239, -0.741480, 0.105083, 0.658747 + 0.071891, -0.741347, 0.104336, 0.659053 + 0.071541, -0.741213, 0.103589, 0.659359 + 0.071190, -0.741078, 0.102844, 0.659665 + 0.070837, -0.740942, 0.102100, 0.659972 + 0.070484, -0.740804, 0.101357, 0.660279 + 0.070129, -0.740665, 0.100615, 0.660586 + 0.069773, -0.740525, 0.099874, 0.660893 + 0.069416, -0.740384, 0.099135, 0.661200 + 0.069057, -0.740242, 0.098396, 0.661507 + 0.068697, -0.740098, 0.097658, 0.661815 + 0.068336, -0.739953, 0.096921, 0.662122 + 0.067974, -0.739807, 0.096186, 0.662430 + 0.067611, -0.739660, 0.095451, 0.662738 + 0.067246, -0.739511, 0.094717, 0.663046 + 0.066880, -0.739361, 0.093985, 0.663354 + 0.066513, -0.739210, 0.093254, 0.663662 + 0.066145, -0.739058, 0.092523, 0.663971 + 0.065775, -0.738905, 0.091794, 0.664279 + 0.065404, -0.738750, 0.091066, 0.664588 + 0.065032, -0.738595, 0.090339, 0.664897 + 0.064659, -0.738438, 0.089613, 0.665205 + 0.064284, -0.738280, 0.088888, 0.665514 + 0.063909, -0.738121, 0.088164, 0.665823 + 0.063531, -0.737960, 0.087441, 0.666132 + 0.063153, -0.737799, 0.086719, 0.666441 + 0.062773, -0.737636, 0.085999, 0.666751 + 0.062393, -0.737473, 0.085279, 0.667060 + 0.062010, -0.737308, 0.084561, 0.667369 + 0.061627, -0.737142, 0.083844, 0.667679 + 0.061242, -0.736974, 0.083127, 0.667988 + 0.060857, -0.736806, 0.082412, 0.668298 + 0.060469, -0.736637, 0.081698, 0.668607 + 0.060081, -0.736466, 0.080985, 0.668917 + 0.059691, -0.736294, 0.080274, 0.669226 + 0.059300, -0.736121, 0.079563, 0.669536 + 0.058908, -0.735947, 0.078854, 0.669846 + 0.058515, -0.735772, 0.078145, 0.670155 + 0.058120, -0.735596, 0.077438, 0.670465 + 0.057724, -0.735419, 0.076732, 0.670775 + 0.057326, -0.735241, 0.076027, 0.671085 + 0.056928, -0.735061, 0.075323, 0.671395 + 0.056528, -0.734881, 0.074620, 0.671704 + 0.056127, -0.734699, 0.073918, 0.672014 + 0.055724, -0.734516, 0.073218, 0.672324 + 0.055321, -0.734333, 0.072519, 0.672634 + 0.054916, -0.734148, 0.071820, 0.672944 + 0.054509, -0.733962, 0.071123, 0.673253 + 0.054102, -0.733775, 0.070427, 0.673563 + 0.053693, -0.733587, 0.069733, 0.673873 + 0.053283, -0.733398, 0.069039, 0.674182 + 0.052872, -0.733208, 0.068347, 0.674492 + 0.052459, -0.733017, 0.067655, 0.674802 + 0.052045, -0.732825, 0.066965, 0.675111 + 0.051630, -0.732631, 0.066276, 0.675421 + 0.051213, -0.732437, 0.065588, 0.675730 + 0.050795, -0.732242, 0.064902, 0.676039 + 0.050376, -0.732046, 0.064216, 0.676349 + 0.049956, -0.731848, 0.063532, 0.676658 + 0.049534, -0.731650, 0.062849, 0.676967 + 0.049111, -0.731451, 0.062167, 0.677276 + 0.048687, -0.731250, 0.061486, 0.677585 + 0.048261, -0.731049, 0.060806, 0.677894 + 0.047834, -0.730847, 0.060128, 0.678203 + 0.047406, -0.730643, 0.059450, 0.678512 + 0.046976, -0.730439, 0.058774, 0.678821 + 0.046546, -0.730234, 0.058099, 0.679129 + 0.046114, -0.730028, 0.057426, 0.679438 + 0.045680, -0.729820, 0.056753, 0.679746 + 0.045246, -0.729612, 0.056082, 0.680054 + 0.044810, -0.729403, 0.055412, 0.680362 + 0.044372, -0.729193, 0.054743, 0.680670 + 0.043934, -0.728982, 0.054075, 0.680978 + 0.043494, -0.728770, 0.053408, 0.681286 + 0.043053, -0.728557, 0.052743, 0.681593 + 0.042610, -0.728343, 0.052079, 0.681901 + 0.042166, -0.728128, 0.051416, 0.682208 + 0.041721, -0.727912, 0.050754, 0.682515 + 0.041275, -0.727696, 0.050094, 0.682822 + 0.040827, -0.727478, 0.049434, 0.683129 + 0.040378, -0.727259, 0.048776, 0.683436 + 0.039927, -0.727040, 0.048119, 0.683742 + 0.039476, -0.726820, 0.047464, 0.684048 + 0.039023, -0.726598, 0.046809, 0.684354 + 0.038568, -0.726376, 0.046156, 0.684660 + 0.038113, -0.726153, 0.045504, 0.684966 + 0.037656, -0.725929, 0.044853, 0.685272 + 0.037198, -0.725704, 0.044203, 0.685577 + 0.036738, -0.725479, 0.043555, 0.685882 + 0.036277, -0.725252, 0.042908, 0.686187 + 0.035815, -0.725024, 0.042262, 0.686492 + 0.035352, -0.724796, 0.041617, 0.686796 + 0.034887, -0.724567, 0.040974, 0.687100 + 0.034421, -0.724337, 0.040332, 0.687404 + 0.033953, -0.724106, 0.039691, 0.687708 + 0.033485, -0.723874, 0.039051, 0.688012 + 0.033014, -0.723641, 0.038412, 0.688315 + 0.032543, -0.723408, 0.037775, 0.688618 + 0.032070, -0.723174, 0.037139, 0.688921 + 0.031596, -0.722938, 0.036504, 0.689224 + 0.031121, -0.722702, 0.035871, 0.689526 + 0.030644, -0.722466, 0.035239, 0.689828 + 0.030166, -0.722228, 0.034608, 0.690130 + 0.029687, -0.721990, 0.033978, 0.690431 + 0.029206, -0.721750, 0.033349, 0.690733 + 0.028725, -0.721510, 0.032722, 0.691033 + 0.028241, -0.721269, 0.032096, 0.691334 + 0.027757, -0.721028, 0.031471, 0.691634 + 0.027271, -0.720785, 0.030848, 0.691935 + 0.026784, -0.720542, 0.030225, 0.692234 + 0.026295, -0.720298, 0.029604, 0.692534 + 0.025805, -0.720053, 0.028985, 0.692833 + 0.025314, -0.719808, 0.028366, 0.693132 + 0.024822, -0.719561, 0.027749, 0.693430 + 0.024328, -0.719314, 0.027133, 0.693729 + 0.023833, -0.719066, 0.026518, 0.694026 + 0.023336, -0.718818, 0.025905, 0.694324 + 0.022838, -0.718568, 0.025293, 0.694621 + 0.022339, -0.718318, 0.024682, 0.694918 + 0.021839, -0.718067, 0.024072, 0.695214 + 0.021337, -0.717816, 0.023464, 0.695511 + 0.020834, -0.717563, 0.022857, 0.695806 + 0.020330, -0.717310, 0.022251, 0.696102 + 0.019824, -0.717056, 0.021646, 0.696397 + 0.019317, -0.716802, 0.021043, 0.696692 + 0.018808, -0.716547, 0.020441, 0.696986 + 0.018299, -0.716291, 0.019841, 0.697280 + 0.017788, -0.716034, 0.019241, 0.697573 + 0.017275, -0.715777, 0.018643, 0.697867 + 0.016762, -0.715519, 0.018046, 0.698159 + 0.016247, -0.715260, 0.017451, 0.698452 + 0.015731, -0.715000, 0.016856, 0.698744 + 0.015213, -0.714740, 0.016263, 0.699035 + 0.014694, -0.714480, 0.015672, 0.699326 + 0.014174, -0.714218, 0.015081, 0.699617 + 0.013652, -0.713956, 0.014492, 0.699907 + 0.013129, -0.713693, 0.013904, 0.700197 + 0.012605, -0.713430, 0.013318, 0.700487 + 0.012080, -0.713166, 0.012732, 0.700776 + 0.011553, -0.712901, 0.012149, 0.701064 + 0.011025, -0.712636, 0.011566, 0.701352 + 0.010495, -0.712369, 0.010984, 0.701640 + 0.009964, -0.712103, 0.010404, 0.701927 + 0.009432, -0.711835, 0.009826, 0.702214 + 0.008899, -0.711568, 0.009248, 0.702500 + 0.008364, -0.711299, 0.008672, 0.702786 + 0.007828, -0.711030, 0.008097, 0.703072 + 0.007291, -0.710760, 0.007523, 0.703356 + 0.006752, -0.710490, 0.006951, 0.703641 + 0.006212, -0.710219, 0.006380, 0.703925 + 0.005671, -0.709947, 0.005810, 0.704208 + 0.005128, -0.709675, 0.005242, 0.704491 + 0.004584, -0.709402, 0.004675, 0.704774 + 0.004039, -0.709129, 0.004109, 0.705055 + 0.003492, -0.708855, 0.003545, 0.705337 + 0.002944, -0.708580, 0.002982, 0.705618 + 0.002395, -0.708305, 0.002420, 0.705898 + 0.001845, -0.708030, 0.001859, 0.706178 + 0.001293, -0.707753, 0.001300, 0.706457 + 0.000740, -0.707477, 0.000742, 0.706736 + 0.000185, -0.707199, 0.000185, 0.707014 + -0.000371, -0.706921, -0.000370, 0.707292 + -0.000928, -0.706643, -0.000924, 0.707569 + -0.001486, -0.706364, -0.001477, 0.707846 + -0.002046, -0.706085, -0.002028, 0.708122 + -0.002607, -0.705805, -0.002578, 0.708397 + -0.003169, -0.705524, -0.003127, 0.708672 + -0.003733, -0.705243, -0.003675, 0.708946 + -0.004298, -0.704962, -0.004221, 0.709220 + -0.004864, -0.704679, -0.004765, 0.709493 + -0.005431, -0.704397, -0.005309, 0.709766 + -0.006000, -0.704114, -0.005851, 0.710038 + -0.006570, -0.703830, -0.006392, 0.710309 + -0.007142, -0.703546, -0.006932, 0.710580 + -0.007714, -0.703262, -0.007470, 0.710850 + -0.008288, -0.702977, -0.008007, 0.711120 + -0.008864, -0.702691, -0.008543, 0.711389 + -0.009440, -0.702405, -0.009077, 0.711657 + -0.010018, -0.702119, -0.009610, 0.711925 + -0.010598, -0.701832, -0.010141, 0.712192 + -0.011178, -0.701544, -0.010672, 0.712458 + -0.011760, -0.701257, -0.011201, 0.712724 + -0.012343, -0.700968, -0.011729, 0.712989 + -0.012927, -0.700680, -0.012255, 0.713254 + -0.013513, -0.700390, -0.012780, 0.713518 + -0.014100, -0.700101, -0.013304, 0.713781 + -0.014688, -0.699811, -0.013826, 0.714043 + -0.015278, -0.699520, -0.014347, 0.714305 + -0.015869, -0.699229, -0.014867, 0.714567 + -0.016461, -0.698938, -0.015386, 0.714827 + -0.017054, -0.698646, -0.015903, 0.715087 + -0.017649, -0.698354, -0.016419, 0.715346 + -0.018245, -0.698062, -0.016933, 0.715605 + -0.018842, -0.697769, -0.017446, 0.715862 + -0.019441, -0.697476, -0.017958, 0.716120 + -0.020041, -0.697182, -0.018469, 0.716376 + -0.020642, -0.696888, -0.018978, 0.716632 + -0.021244, -0.696593, -0.019486, 0.716887 + -0.021848, -0.696299, -0.019993, 0.717141 + -0.022453, -0.696003, -0.020498, 0.717395 + -0.023059, -0.695708, -0.021002, 0.717647 + -0.023666, -0.695412, -0.021504, 0.717899 + -0.024275, -0.695116, -0.022006, 0.718151 + -0.024885, -0.694819, -0.022506, 0.718401 + -0.025497, -0.694522, -0.023004, 0.718651 + -0.026109, -0.694225, -0.023502, 0.718900 + -0.026723, -0.693927, -0.023998, 0.719149 + -0.027338, -0.693629, -0.024492, 0.719397 + -0.027955, -0.693331, -0.024986, 0.719643 + -0.028572, -0.693032, -0.025478, 0.719889 + -0.029191, -0.692733, -0.025969, 0.720135 + -0.029811, -0.692434, -0.026458, 0.720379 + -0.030433, -0.692134, -0.026946, 0.720623 + -0.031055, -0.691835, -0.027433, 0.720866 + -0.031679, -0.691534, -0.027918, 0.721108 + -0.032304, -0.691234, -0.028402, 0.721350 + -0.032931, -0.690933, -0.028885, 0.721590 + -0.033559, -0.690632, -0.029367, 0.721830 + -0.034188, -0.690331, -0.029847, 0.722069 + -0.034818, -0.690029, -0.030326, 0.722307 + -0.035449, -0.689727, -0.030803, 0.722545 + -0.036082, -0.689425, -0.031280, 0.722781 + -0.036716, -0.689123, -0.031754, 0.723017 + -0.037351, -0.688820, -0.032228, 0.723252 + -0.037988, -0.688517, -0.032700, 0.723486 + -0.038625, -0.688214, -0.033171, 0.723719 + -0.039264, -0.687911, -0.033641, 0.723951 + -0.039904, -0.687607, -0.034109, 0.724183 + -0.040546, -0.687303, -0.034576, 0.724414 + -0.041188, -0.686999, -0.035042, 0.724643 + -0.041832, -0.686695, -0.035506, 0.724872 + -0.042477, -0.686390, -0.035969, 0.725100 + -0.043124, -0.686085, -0.036431, 0.725328 + -0.043771, -0.685780, -0.036891, 0.725554 + -0.044420, -0.685475, -0.037351, 0.725779 + -0.045070, -0.685170, -0.037808, 0.726004 + -0.045721, -0.684864, -0.038265, 0.726228 + -0.046373, -0.684558, -0.038720, 0.726450 + -0.047027, -0.684252, -0.039174, 0.726672 + -0.047682, -0.683946, -0.039626, 0.726893 + -0.048338, -0.683640, -0.040078, 0.727113 + -0.048995, -0.683333, -0.040528, 0.727332 + -0.049654, -0.683027, -0.040976, 0.727551 + -0.050314, -0.682720, -0.041424, 0.727768 + -0.050975, -0.682413, -0.041870, 0.727984 + -0.051637, -0.682106, -0.042314, 0.728200 + -0.052300, -0.681798, -0.042758, 0.728414 + -0.052965, -0.681491, -0.043200, 0.728628 + -0.053630, -0.681183, -0.043640, 0.728841 + -0.054297, -0.680875, -0.044080, 0.729052 + -0.054966, -0.680568, -0.044518, 0.729263 + -0.055635, -0.680260, -0.044955, 0.729473 + -0.056305, -0.679951, -0.045391, 0.729682 + -0.056977, -0.679643, -0.045825, 0.729890 + -0.057650, -0.679335, -0.046258, 0.730096 + -0.058324, -0.679026, -0.046689, 0.730302 + -0.059000, -0.678718, -0.047120, 0.730507 + -0.059676, -0.678409, -0.047549, 0.730711 + -0.060354, -0.678100, -0.047977, 0.730914 + -0.061033, -0.677791, -0.048403, 0.731116 + -0.061713, -0.677482, -0.048828, 0.731317 + -0.062394, -0.677173, -0.049252, 0.731517 + -0.063076, -0.676864, -0.049675, 0.731716 + -0.063760, -0.676555, -0.050096, 0.731914 + -0.064444, -0.676246, -0.050516, 0.732111 + -0.065130, -0.675936, -0.050935, 0.732307 + -0.065817, -0.675627, -0.051352, 0.732502 + -0.066506, -0.675317, -0.051768, 0.732696 + -0.067195, -0.675008, -0.052183, 0.732889 + -0.067886, -0.674698, -0.052597, 0.733081 + -0.068577, -0.674389, -0.053009, 0.733271 + -0.069270, -0.674079, -0.053420, 0.733461 + -0.069964, -0.673769, -0.053829, 0.733650 + -0.070659, -0.673460, -0.054238, 0.733838 + -0.071356, -0.673150, -0.054645, 0.734024 + -0.072053, -0.672840, -0.055051, 0.734210 + -0.072752, -0.672530, -0.055455, 0.734394 + -0.073451, -0.672221, -0.055859, 0.734577 + -0.074152, -0.671911, -0.056261, 0.734760 + -0.074854, -0.671601, -0.056661, 0.734941 + -0.075557, -0.671291, -0.057061, 0.735121 + -0.076262, -0.670982, -0.057459, 0.735300 + -0.076967, -0.670672, -0.057856, 0.735478 + -0.077673, -0.670362, -0.058252, 0.735655 + -0.078381, -0.670052, -0.058646, 0.735831 + -0.079090, -0.669742, -0.059039, 0.736006 + -0.079800, -0.669433, -0.059431, 0.736179 + -0.080511, -0.669123, -0.059821, 0.736352 + -0.081223, -0.668813, -0.060211, 0.736523 + -0.081936, -0.668504, -0.060599, 0.736693 + -0.082651, -0.668194, -0.060985, 0.736862 + -0.083366, -0.667885, -0.061371, 0.737030 + -0.084083, -0.667575, -0.061755, 0.737197 + -0.084800, -0.667266, -0.062138, 0.737363 + -0.085519, -0.666957, -0.062520, 0.737527 + -0.086239, -0.666647, -0.062900, 0.737691 + -0.086960, -0.666338, -0.063279, 0.737853 + -0.087682, -0.666029, -0.063657, 0.738014 + -0.088405, -0.665720, -0.064034, 0.738174 + -0.089129, -0.665411, -0.064409, 0.738333 + -0.089855, -0.665102, -0.064784, 0.738490 + -0.090581, -0.664794, -0.065157, 0.738647 + -0.091308, -0.664485, -0.065528, 0.738802 + -0.092037, -0.664176, -0.065899, 0.738956 + -0.092767, -0.663868, -0.066268, 0.739109 + -0.093497, -0.663560, -0.066636, 0.739261 + -0.094229, -0.663251, -0.067002, 0.739411 + -0.094962, -0.662943, -0.067368, 0.739561 + -0.095696, -0.662635, -0.067732, 0.739709 + -0.096431, -0.662327, -0.068095, 0.739856 + -0.097167, -0.662020, -0.068457, 0.740001 + -0.097904, -0.661712, -0.068817, 0.740146 + -0.098642, -0.661405, -0.069177, 0.740289 + -0.099381, -0.661097, -0.069535, 0.740431 + -0.100121, -0.660790, -0.069892, 0.740572 + -0.100863, -0.660483, -0.070247, 0.740712 + -0.101605, -0.660176, -0.070602, 0.740850 + -0.102348, -0.659870, -0.070955, 0.740987 + -0.103093, -0.659563, -0.071307, 0.741123 + -0.103838, -0.659257, -0.071657, 0.741258 + -0.104584, -0.658951, -0.072007, 0.741391 + -0.105332, -0.658645, -0.072355, 0.741523 + -0.106080, -0.658339, -0.072702, 0.741654 + -0.106830, -0.658033, -0.073048, 0.741784 + -0.107581, -0.657728, -0.073393, 0.741912 + -0.108332, -0.657423, -0.073736, 0.742040 + -0.109085, -0.657118, -0.074078, 0.742165 + -0.109838, -0.656813, -0.074419, 0.742290 + -0.110593, -0.656508, -0.074759, 0.742413 + -0.111348, -0.656204, -0.075098, 0.742535 + -0.112105, -0.655900, -0.075435, 0.742656 + -0.112863, -0.655596, -0.075771, 0.742775 + -0.113621, -0.655292, -0.076106, 0.742893 + -0.114381, -0.654988, -0.076440, 0.743010 + -0.115141, -0.654685, -0.076773, 0.743126 + -0.115903, -0.654382, -0.077104, 0.743240 + -0.116665, -0.654079, -0.077434, 0.743353 + -0.117429, -0.653777, -0.077763, 0.743464 + -0.118193, -0.653474, -0.078091, 0.743575 + -0.118959, -0.653172, -0.078418, 0.743684 + -0.119725, -0.652870, -0.078743, 0.743791 + -0.120493, -0.652569, -0.079068, 0.743898 + -0.121261, -0.652268, -0.079391, 0.744003 + -0.122030, -0.651967, -0.079713, 0.744106 + -0.122800, -0.651666, -0.080033, 0.744208 + -0.123572, -0.651366, -0.080353, 0.744309 + -0.124344, -0.651065, -0.080671, 0.744409 + -0.125117, -0.650765, -0.080989, 0.744507 + -0.125891, -0.650466, -0.081305, 0.744604 + -0.126666, -0.650167, -0.081620, 0.744700 + -0.127442, -0.649868, -0.081933, 0.744794 + -0.128219, -0.649569, -0.082246, 0.744886 + -0.128997, -0.649270, -0.082557, 0.744978 + -0.129775, -0.648972, -0.082868, 0.745068 + -0.130555, -0.648675, -0.083177, 0.745156 + -0.131336, -0.648377, -0.083485, 0.745244 + -0.132117, -0.648080, -0.083792, 0.745330 + -0.132900, -0.647783, -0.084097, 0.745414 + -0.133683, -0.647487, -0.084402, 0.745497 + -0.134467, -0.647191, -0.084705, 0.745579 + -0.135252, -0.646895, -0.085008, 0.745659 + -0.136038, -0.646599, -0.085309, 0.745738 + -0.136825, -0.646304, -0.085609, 0.745815 + -0.137613, -0.646010, -0.085907, 0.745892 + -0.138402, -0.645715, -0.086205, 0.745966 + -0.139191, -0.645421, -0.086502, 0.746039 + -0.139982, -0.645127, -0.086797, 0.746111 + -0.140773, -0.644834, -0.087092, 0.746182 + -0.141566, -0.644541, -0.087385, 0.746250 + -0.142359, -0.644249, -0.087677, 0.746318 + -0.143153, -0.643956, -0.087968, 0.746384 + -0.143948, -0.643665, -0.088258, 0.746449 + -0.144743, -0.643373, -0.088546, 0.746512 + -0.145540, -0.643082, -0.088834, 0.746574 + -0.146337, -0.642791, -0.089121, 0.746634 + -0.147136, -0.642501, -0.089406, 0.746693 + -0.147935, -0.642211, -0.089690, 0.746750 + -0.148735, -0.641922, -0.089973, 0.746806 + -0.149536, -0.641633, -0.090256, 0.746860 + -0.150337, -0.641344, -0.090537, 0.746913 + -0.151140, -0.641056, -0.090816, 0.746965 + -0.151943, -0.640768, -0.091095, 0.747015 + -0.152747, -0.640481, -0.091373, 0.747063 + -0.153552, -0.640194, -0.091650, 0.747110 + -0.154358, -0.639907, -0.091925, 0.747156 + -0.155165, -0.639621, -0.092200, 0.747200 + -0.155972, -0.639336, -0.092473, 0.747243 + -0.156780, -0.639050, -0.092745, 0.747284 + -0.157589, -0.638766, -0.093017, 0.747323 + -0.158399, -0.638481, -0.093287, 0.747361 + -0.159210, -0.638197, -0.093556, 0.747398 + -0.160021, -0.637914, -0.093824, 0.747433 + -0.160834, -0.637631, -0.094091, 0.747466 + -0.161647, -0.637349, -0.094357, 0.747498 + -0.162460, -0.637067, -0.094622, 0.747529 + -0.163275, -0.636785, -0.094886, 0.747558 + -0.164090, -0.636504, -0.095148, 0.747585 + -0.164907, -0.636223, -0.095410, 0.747611 + -0.165723, -0.635943, -0.095671, 0.747636 + -0.166541, -0.635664, -0.095930, 0.747658 + -0.167360, -0.635385, -0.096189, 0.747680 + -0.168179, -0.635106, -0.096446, 0.747699 + -0.168999, -0.634828, -0.096703, 0.747718 + -0.169819, -0.634550, -0.096958, 0.747734 + -0.170641, -0.634273, -0.097213, 0.747749 + -0.171463, -0.633996, -0.097466, 0.747763 + -0.172286, -0.633720, -0.097718, 0.747775 + -0.173109, -0.633445, -0.097970, 0.747785 + -0.173934, -0.633170, -0.098220, 0.747794 + -0.174759, -0.632895, -0.098469, 0.747802 + -0.175585, -0.632621, -0.098718, 0.747807 + -0.176411, -0.632347, -0.098965, 0.747811 + -0.177238, -0.632074, -0.099211, 0.747814 + -0.178066, -0.631802, -0.099457, 0.747815 + -0.178895, -0.631530, -0.099701, 0.747814 + -0.179724, -0.631259, -0.099944, 0.747812 + -0.180554, -0.630988, -0.100186, 0.747808 + -0.181385, -0.630718, -0.100428, 0.747803 + -0.182217, -0.630448, -0.100668, 0.747796 + -0.183049, -0.630179, -0.100907, 0.747787 + -0.183881, -0.629910, -0.101145, 0.747777 + -0.184715, -0.629642, -0.101383, 0.747765 + -0.185549, -0.629374, -0.101619, 0.747752 + -0.186384, -0.629108, -0.101854, 0.747737 + -0.187219, -0.628841, -0.102089, 0.747720 + -0.188055, -0.628575, -0.102322, 0.747702 + -0.188892, -0.628310, -0.102555, 0.747682 + -0.189730, -0.628046, -0.102786, 0.747661 + -0.190568, -0.627782, -0.103017, 0.747637 + -0.191407, -0.627518, -0.103246, 0.747613 + -0.192246, -0.627255, -0.103475, 0.747586 + -0.193086, -0.626993, -0.103702, 0.747558 + -0.193927, -0.626731, -0.103929, 0.747529 + -0.194768, -0.626470, -0.104155, 0.747497 + -0.195610, -0.626210, -0.104380, 0.747464 + -0.196452, -0.625950, -0.104603, 0.747430 + -0.197295, -0.625691, -0.104826, 0.747393 + -0.198139, -0.625432, -0.105048, 0.747355 + -0.198983, -0.625174, -0.105269, 0.747316 + -0.199828, -0.624917, -0.105490, 0.747275 + -0.200674, -0.624660, -0.105709, 0.747232 + -0.201520, -0.624404, -0.105927, 0.747187 + -0.202367, -0.624149, -0.106144, 0.747141 + -0.203214, -0.623894, -0.106361, 0.747093 + -0.204062, -0.623640, -0.106576, 0.747043 + -0.204910, -0.623386, -0.106791, 0.746992 + -0.205759, -0.623133, -0.107005, 0.746939 + -0.206609, -0.622881, -0.107217, 0.746885 + -0.207459, -0.622629, -0.107429, 0.746828 + -0.208310, -0.622378, -0.107640, 0.746770 + -0.209161, -0.622128, -0.107850, 0.746711 + -0.210013, -0.621878, -0.108060, 0.746649 + -0.210865, -0.621629, -0.108268, 0.746586 + -0.211718, -0.621381, -0.108475, 0.746521 + -0.212572, -0.621133, -0.108682, 0.746455 + -0.213426, -0.620886, -0.108888, 0.746387 + -0.214280, -0.620640, -0.109093, 0.746317 + -0.215135, -0.620394, -0.109297, 0.746245 + -0.215991, -0.620150, -0.109500, 0.746172 + -0.216847, -0.619905, -0.109702, 0.746097 + -0.217703, -0.619662, -0.109903, 0.746020 + -0.218560, -0.619419, -0.110104, 0.745942 + -0.219418, -0.619177, -0.110303, 0.745861 + -0.220276, -0.618935, -0.110502, 0.745780 + -0.221135, -0.618694, -0.110700, 0.745696 + -0.221994, -0.618454, -0.110897, 0.745611 + -0.222853, -0.618215, -0.111093, 0.745523 + -0.223713, -0.617976, -0.111289, 0.745435 + -0.224574, -0.617738, -0.111483, 0.745344 + -0.225435, -0.617501, -0.111677, 0.745252 + -0.226296, -0.617264, -0.111870, 0.745158 + -0.227158, -0.617029, -0.112062, 0.745062 + -0.228020, -0.616793, -0.112253, 0.744964 + -0.228883, -0.616559, -0.112444, 0.744865 + -0.229746, -0.616325, -0.112634, 0.744764 + -0.230610, -0.616092, -0.112822, 0.744661 + -0.231474, -0.615860, -0.113010, 0.744557 + -0.232338, -0.615629, -0.113198, 0.744450 + -0.233203, -0.615398, -0.113384, 0.744342 + -0.234069, -0.615168, -0.113570, 0.744232 + -0.234935, -0.614939, -0.113755, 0.744121 + -0.235801, -0.614710, -0.113939, 0.744007 + -0.236668, -0.614483, -0.114122, 0.743892 + -0.237535, -0.614256, -0.114304, 0.743775 + -0.238402, -0.614029, -0.114486, 0.743657 + -0.239270, -0.613804, -0.114667, 0.743536 + -0.240138, -0.613579, -0.114847, 0.743414 + -0.241007, -0.613355, -0.115027, 0.743290 + -0.241876, -0.613132, -0.115205, 0.743164 + -0.242745, -0.612910, -0.115383, 0.743036 + -0.243615, -0.612688, -0.115560, 0.742907 + -0.244485, -0.612467, -0.115737, 0.742776 + -0.245355, -0.612247, -0.115912, 0.742643 + -0.246226, -0.612028, -0.116087, 0.742508 + -0.247097, -0.611809, -0.116261, 0.742372 + -0.247969, -0.611592, -0.116435, 0.742233 + -0.248841, -0.611375, -0.116607, 0.742093 + -0.249713, -0.611158, -0.116779, 0.741951 + -0.250585, -0.610943, -0.116950, 0.741807 + -0.251458, -0.610728, -0.117121, 0.741662 + -0.252332, -0.610515, -0.117291, 0.741514 + -0.253205, -0.610302, -0.117460, 0.741365 + -0.254079, -0.610089, -0.117628, 0.741214 + -0.254953, -0.609878, -0.117796, 0.741061 + -0.255827, -0.609668, -0.117962, 0.740907 + -0.256702, -0.609458, -0.118129, 0.740750 + -0.257577, -0.609249, -0.118294, 0.740592 + -0.258453, -0.609041, -0.118459, 0.740432 + -0.259328, -0.608833, -0.118623, 0.740270 + -0.260204, -0.608627, -0.118786, 0.740106 + -0.261080, -0.608421, -0.118949, 0.739940 + -0.261957, -0.608216, -0.119111, 0.739773 + -0.262833, -0.608012, -0.119273, 0.739604 + -0.263710, -0.607809, -0.119433, 0.739433 + -0.264588, -0.607607, -0.119593, 0.739260 + -0.265465, -0.607405, -0.119753, 0.739085 + -0.266343, -0.607204, -0.119912, 0.738908 + -0.267221, -0.607005, -0.120070, 0.738730 + -0.268099, -0.606806, -0.120227, 0.738550 + -0.268977, -0.606607, -0.120384, 0.738367 + -0.269856, -0.606410, -0.120540, 0.738183 + -0.270735, -0.606213, -0.120695, 0.737998 + -0.271614, -0.606018, -0.120850, 0.737810 + -0.272493, -0.605823, -0.121004, 0.737620 + -0.273373, -0.605629, -0.121158, 0.737429 + -0.274253, -0.605436, -0.121311, 0.737236 + -0.275133, -0.605244, -0.121463, 0.737040 + -0.276013, -0.605052, -0.121615, 0.736844 + -0.276893, -0.604862, -0.121766, 0.736645 + -0.277774, -0.604672, -0.121917, 0.736444 + -0.278654, -0.604483, -0.122067, 0.736241 + -0.279535, -0.604296, -0.122216, 0.736037 + -0.280416, -0.604108, -0.122365, 0.735831 + -0.281297, -0.603922, -0.122513, 0.735622 + -0.282178, -0.603737, -0.122660, 0.735412 + -0.283060, -0.603553, -0.122807, 0.735200 + -0.283942, -0.603369, -0.122953, 0.734987 + -0.284823, -0.603186, -0.123099, 0.734771 + -0.285705, -0.603005, -0.123244, 0.734553 + -0.286587, -0.602824, -0.123389, 0.734334 + -0.287469, -0.602644, -0.123533, 0.734113 + -0.288352, -0.602465, -0.123676, 0.733890 + -0.289234, -0.602286, -0.123819, 0.733664 + -0.290117, -0.602109, -0.123962, 0.733437 + -0.290999, -0.601933, -0.124104, 0.733209 + -0.291882, -0.601757, -0.124245, 0.732978 + -0.292765, -0.601582, -0.124386, 0.732745 + -0.293648, -0.601409, -0.124526, 0.732511 + -0.294531, -0.601236, -0.124665, 0.732274 + -0.295414, -0.601064, -0.124805, 0.732036 + -0.296297, -0.600893, -0.124943, 0.731796 + -0.297180, -0.600723, -0.125081, 0.731554 + -0.298063, -0.600554, -0.125219, 0.731310 + -0.298947, -0.600385, -0.125356, 0.731064 + -0.299830, -0.600218, -0.125492, 0.730816 + -0.300713, -0.600051, -0.125628, 0.730566 + -0.301597, -0.599886, -0.125764, 0.730315 + -0.302480, -0.599721, -0.125899, 0.730061 + -0.303364, -0.599557, -0.126033, 0.729806 + -0.304248, -0.599395, -0.126167, 0.729549 + -0.305131, -0.599233, -0.126301, 0.729289 + -0.306015, -0.599072, -0.126434, 0.729028 + -0.306898, -0.598912, -0.126567, 0.728765 + -0.307782, -0.598753, -0.126699, 0.728500 + -0.308666, -0.598595, -0.126830, 0.728233 + -0.309549, -0.598437, -0.126962, 0.727965 + -0.310433, -0.598281, -0.127092, 0.727694 + -0.311317, -0.598126, -0.127223, 0.727421 + -0.312200, -0.597971, -0.127353, 0.727147 + -0.313084, -0.597818, -0.127482, 0.726870 + -0.313968, -0.597665, -0.127611, 0.726592 + -0.314851, -0.597514, -0.127739, 0.726312 + -0.315735, -0.597363, -0.127867, 0.726030 + -0.316618, -0.597213, -0.127995, 0.725745 + -0.317501, -0.597065, -0.128122, 0.725459 + -0.318385, -0.596917, -0.128249, 0.725171 + -0.319268, -0.596770, -0.128375, 0.724882 + -0.320151, -0.596624, -0.128501, 0.724590 + -0.321034, -0.596479, -0.128627, 0.724296 + -0.321917, -0.596335, -0.128752, 0.724000 + -0.322800, -0.596192, -0.128877, 0.723703 + -0.323683, -0.596050, -0.129001, 0.723403 + -0.324566, -0.595909, -0.129125, 0.723102 + -0.325449, -0.595769, -0.129248, 0.722798 + -0.326332, -0.595629, -0.129372, 0.722493 + -0.327214, -0.595491, -0.129494, 0.722186 + -0.328096, -0.595354, -0.129617, 0.721877 + -0.328979, -0.595218, -0.129739, 0.721566 + -0.329861, -0.595082, -0.129860, 0.721252 + -0.330743, -0.594948, -0.129982, 0.720938 + -0.331625, -0.594815, -0.130103, 0.720621 + -0.332507, -0.594682, -0.130223, 0.720302 + -0.333388, -0.594551, -0.130343, 0.719981 + -0.334270, -0.594420, -0.130463, 0.719658 + -0.335151, -0.594291, -0.130583, 0.719333 + -0.336032, -0.594162, -0.130702, 0.719007 + -0.336913, -0.594034, -0.130821, 0.718678 + -0.337794, -0.593908, -0.130939, 0.718348 + -0.338675, -0.593782, -0.131058, 0.718015 + -0.339555, -0.593658, -0.131175, 0.717681 + -0.340435, -0.593534, -0.131293, 0.717345 + -0.341315, -0.593411, -0.131410, 0.717006 + -0.342195, -0.593290, -0.131527, 0.716666 + -0.343075, -0.593169, -0.131644, 0.716324 + -0.343954, -0.593049, -0.131760, 0.715980 + -0.344834, -0.592931, -0.131876, 0.715634 + -0.345713, -0.592813, -0.131992, 0.715286 + -0.346591, -0.592696, -0.132107, 0.714936 + -0.347470, -0.592580, -0.132223, 0.714584 + -0.348348, -0.592466, -0.132337, 0.714230 + -0.349226, -0.592352, -0.132452, 0.713874 + -0.350104, -0.592239, -0.132566, 0.713517 + -0.350982, -0.592127, -0.132681, 0.713157 + -0.351859, -0.592017, -0.132794, 0.712795 + -0.352736, -0.591907, -0.132908, 0.712432 + -0.353613, -0.591798, -0.133021, 0.712066 + -0.354490, -0.591690, -0.133134, 0.711699 + -0.355366, -0.591583, -0.133247, 0.711329 + -0.356242, -0.591478, -0.133360, 0.710958 + -0.357118, -0.591373, -0.133472, 0.710585 + -0.357993, -0.591269, -0.133584, 0.710209 + -0.358868, -0.591166, -0.133696, 0.709832 + -0.359743, -0.591065, -0.133808, 0.709453 + -0.360617, -0.590964, -0.133919, 0.709072 + -0.361491, -0.590864, -0.134031, 0.708689 + -0.362365, -0.590765, -0.134142, 0.708303 + -0.363239, -0.590667, -0.134253, 0.707916 + -0.364112, -0.590571, -0.134363, 0.707527 + -0.364985, -0.590475, -0.134474, 0.707137 + -0.365857, -0.590380, -0.134584, 0.706744 + -0.366729, -0.590287, -0.134694, 0.706349 + -0.367601, -0.590194, -0.134804, 0.705952 + -0.368473, -0.590102, -0.134914, 0.705553 + -0.369344, -0.590012, -0.135023, 0.705153 + -0.370214, -0.589922, -0.135133, 0.704750 + -0.371085, -0.589833, -0.135242, 0.704345 + -0.371955, -0.589746, -0.135351, 0.703939 + -0.372824, -0.589659, -0.135460, 0.703530 + -0.373693, -0.589573, -0.135569, 0.703120 + -0.374562, -0.589489, -0.135677, 0.702708 + -0.375431, -0.589405, -0.135786, 0.702293 + -0.376298, -0.589323, -0.135894, 0.701877 + -0.377166, -0.589241, -0.136002, 0.701459 + -0.378033, -0.589161, -0.136110, 0.701038 + -0.378900, -0.589081, -0.136218, 0.700616 + -0.379766, -0.589003, -0.136326, 0.700192 + -0.380632, -0.588925, -0.136434, 0.699766 + -0.381497, -0.588849, -0.136541, 0.699338 + -0.382362, -0.588773, -0.136649, 0.698908 + -0.383227, -0.588699, -0.136756, 0.698476 + -0.384091, -0.588626, -0.136863, 0.698042 + -0.384954, -0.588553, -0.136971, 0.697606 + -0.385817, -0.588482, -0.137078, 0.697168 + -0.386680, -0.588412, -0.137185, 0.696729 + -0.387542, -0.588342, -0.137292, 0.696287 + -0.388404, -0.588274, -0.137399, 0.695843 + -0.389265, -0.588207, -0.137505, 0.695398 + -0.390125, -0.588141, -0.137612, 0.694950 + -0.390986, -0.588075, -0.137719, 0.694501 + -0.391845, -0.588011, -0.137825, 0.694049 + -0.392704, -0.587948, -0.137932, 0.693596 + -0.393563, -0.587886, -0.138038, 0.693140 + -0.394421, -0.587825, -0.138145, 0.692683 + -0.395279, -0.587765, -0.138251, 0.692224 + -0.396136, -0.587706, -0.138358, 0.691763 + -0.396992, -0.587648, -0.138464, 0.691299 + -0.397848, -0.587591, -0.138570, 0.690834 + -0.398703, -0.587535, -0.138677, 0.690367 + -0.399558, -0.587480, -0.138783, 0.689898 + -0.400412, -0.587426, -0.138889, 0.689427 + -0.401266, -0.587373, -0.138996, 0.688954 + -0.402119, -0.587322, -0.139102, 0.688480 + -0.402972, -0.587271, -0.139208, 0.688003 + -0.403824, -0.587221, -0.139315, 0.687524 + -0.404675, -0.587172, -0.139421, 0.687043 + -0.405526, -0.587125, -0.139527, 0.686561 + -0.406376, -0.587078, -0.139633, 0.686076 + -0.407226, -0.587032, -0.139740, 0.685590 + -0.408075, -0.586988, -0.139846, 0.685101 + -0.408923, -0.586944, -0.139953, 0.684611 + -0.409771, -0.586901, -0.140059, 0.684119 + -0.410618, -0.586860, -0.140166, 0.683624 + -0.411464, -0.586819, -0.140272, 0.683128 + -0.412310, -0.586780, -0.140379, 0.682630 + -0.413155, -0.586741, -0.140485, 0.682130 + -0.414000, -0.586704, -0.140592, 0.681628 + -0.414844, -0.586668, -0.140699, 0.681124 + -0.415687, -0.586632, -0.140806, 0.680618 + -0.416529, -0.586598, -0.140913, 0.680110 + -0.417371, -0.586565, -0.141020, 0.679600 + -0.418212, -0.586532, -0.141127, 0.679089 + -0.419053, -0.586501, -0.141234, 0.678575 + -0.419893, -0.586471, -0.141341, 0.678060 + -0.420732, -0.586442, -0.141449, 0.677542 + -0.421570, -0.586413, -0.141556, 0.677023 + -0.422408, -0.586386, -0.141664, 0.676501 + -0.423245, -0.586360, -0.141771, 0.675978 + -0.424081, -0.586335, -0.141879, 0.675453 + -0.424917, -0.586311, -0.141987, 0.674926 + -0.425751, -0.586288, -0.142095, 0.674397 + -0.426586, -0.586266, -0.142203, 0.673866 + -0.427419, -0.586245, -0.142311, 0.673333 + -0.428252, -0.586225, -0.142420, 0.672798 + -0.429083, -0.586206, -0.142528, 0.672262 + -0.429915, -0.586188, -0.142637, 0.671723 + -0.430745, -0.586171, -0.142746, 0.671182 + -0.431574, -0.586155, -0.142855, 0.670640 + -0.432403, -0.586140, -0.142964, 0.670096 + -0.433231, -0.586127, -0.143073, 0.669549 + -0.434059, -0.586114, -0.143183, 0.669001 + -0.434885, -0.586102, -0.143293, 0.668451 + -0.435711, -0.586091, -0.143402, 0.667899 + -0.436536, -0.586082, -0.143512, 0.667345 + -0.437360, -0.586073, -0.143623, 0.666789 + -0.438183, -0.586065, -0.143733, 0.666231 + -0.439005, -0.586058, -0.143844, 0.665672 + -0.439827, -0.586053, -0.143954, 0.665110 + -0.440648, -0.586048, -0.144065, 0.664547 + -0.441468, -0.586044, -0.144177, 0.663981 + -0.442287, -0.586042, -0.144288, 0.663414 + -0.443105, -0.586040, -0.144400, 0.662845 + -0.443923, -0.586040, -0.144512, 0.662274 + -0.444739, -0.586040, -0.144624, 0.661701 + -0.445555, -0.586042, -0.144736, 0.661126 + -0.446370, -0.586044, -0.144849, 0.660549 + -0.447184, -0.586047, -0.144961, 0.659971 + -0.447997, -0.586052, -0.145074, 0.659390 + -0.448809, -0.586057, -0.145188, 0.658808 + -0.449621, -0.586064, -0.145301, 0.658223 + -0.450431, -0.586071, -0.145415, 0.657637 + -0.451241, -0.586080, -0.145529, 0.657049 + -0.452049, -0.586090, -0.145643, 0.656459 + -0.452857, -0.586100, -0.145758, 0.655867 + -0.453664, -0.586112, -0.145873, 0.655273 + -0.454470, -0.586124, -0.145988, 0.654678 + -0.455275, -0.586138, -0.146104, 0.654080 + -0.456079, -0.586152, -0.146219, 0.653481 + -0.456882, -0.586168, -0.146335, 0.652880 + -0.457684, -0.586184, -0.146452, 0.652277 + -0.458486, -0.586202, -0.146568, 0.651672 + -0.459286, -0.586221, -0.146685, 0.651065 + -0.460085, -0.586240, -0.146802, 0.650456 + -0.460884, -0.586261, -0.146920, 0.649845 + -0.461681, -0.586282, -0.147038, 0.649233 + -0.462478, -0.586305, -0.147156, 0.648619 + -0.463273, -0.586328, -0.147275, 0.648002 + -0.464068, -0.586353, -0.147393, 0.647384 + -0.464861, -0.586379, -0.147513, 0.646764 + -0.465654, -0.586405, -0.147632, 0.646143 + -0.466445, -0.586433, -0.147752, 0.645519 + -0.467236, -0.586461, -0.147872, 0.644894 + -0.468025, -0.586491, -0.147993, 0.644266 + -0.468814, -0.586521, -0.148114, 0.643637 + -0.469601, -0.586553, -0.148235, 0.643006 + -0.470388, -0.586585, -0.148357, 0.642373 + -0.471173, -0.586619, -0.148479, 0.641739 + -0.471957, -0.586653, -0.148601, 0.641102 + -0.472741, -0.586689, -0.148724, 0.640464 + -0.473523, -0.586725, -0.148847, 0.639823 + -0.474304, -0.586762, -0.148971, 0.639181 + -0.475085, -0.586801, -0.149095, 0.638538 + -0.475864, -0.586840, -0.149219, 0.637892 + -0.476642, -0.586881, -0.149344, 0.637244 + -0.477419, -0.586922, -0.149469, 0.636595 + -0.478195, -0.586964, -0.149595, 0.635944 + -0.478969, -0.587007, -0.149721, 0.635291 + -0.479743, -0.587052, -0.149847, 0.634636 + -0.480516, -0.587097, -0.149974, 0.633979 + -0.481287, -0.587143, -0.150102, 0.633321 + -0.482058, -0.587190, -0.150229, 0.632660 + -0.482827, -0.587238, -0.150357, 0.631998 + -0.483595, -0.587287, -0.150486, 0.631334 + -0.484362, -0.587337, -0.150615, 0.630669 + -0.485128, -0.587388, -0.150745, 0.630001 + -0.485893, -0.587440, -0.150875, 0.629332 + -0.486657, -0.587493, -0.151005, 0.628661 + -0.487419, -0.587547, -0.151136, 0.627988 + -0.488181, -0.587602, -0.151267, 0.627313 + -0.488941, -0.587658, -0.151399, 0.626636 + -0.489700, -0.587715, -0.151532, 0.625958 + -0.490458, -0.587772, -0.151664, 0.625278 + -0.491215, -0.587831, -0.151798, 0.624596 + -0.491970, -0.587891, -0.151932, 0.623912 + -0.492725, -0.587951, -0.152066, 0.623227 + -0.493478, -0.588013, -0.152201, 0.622540 + -0.494230, -0.588075, -0.152336, 0.621850 + -0.494981, -0.588139, -0.152472, 0.621160 + -0.495731, -0.588203, -0.152608, 0.620467 + -0.496479, -0.588268, -0.152745, 0.619773 + -0.497226, -0.588334, -0.152882, 0.619077 + -0.497972, -0.588402, -0.153020, 0.618379 + -0.498717, -0.588470, -0.153158, 0.617679 + -0.499461, -0.588539, -0.153297, 0.616978 + -0.500203, -0.588609, -0.153437, 0.616274 + -0.500944, -0.588679, -0.153577, 0.615569 + -0.501684, -0.588751, -0.153717, 0.614863 + -0.502423, -0.588824, -0.153859, 0.614154 + -0.503160, -0.588898, -0.154000, 0.613444 + -0.503896, -0.588972, -0.154142, 0.612732 + -0.504631, -0.589048, -0.154285, 0.612018 + -0.505364, -0.589124, -0.154429, 0.611303 + -0.506097, -0.589202, -0.154572, 0.610586 + -0.506828, -0.589280, -0.154717, 0.609867 + -0.507558, -0.589359, -0.154862, 0.609146 + -0.508286, -0.589439, -0.155008, 0.608424 + -0.509013, -0.589520, -0.155154, 0.607700 + -0.509739, -0.589602, -0.155301, 0.606974 + -0.510464, -0.589685, -0.155448, 0.606246 + -0.511187, -0.589769, -0.155596, 0.605517 + -0.511909, -0.589853, -0.155745, 0.604786 + -0.512630, -0.589939, -0.155894, 0.604053 + -0.513349, -0.590025, -0.156044, 0.603319 + -0.514067, -0.590113, -0.156195, 0.602583 + -0.514783, -0.590201, -0.156346, 0.601845 + -0.515499, -0.590290, -0.156498, 0.601105 + -0.516213, -0.590380, -0.156650, 0.600364 + -0.516925, -0.590471, -0.156803, 0.599621 + -0.517637, -0.590563, -0.156957, 0.598876 + -0.518347, -0.590655, -0.157111, 0.598130 + -0.519055, -0.590749, -0.157266, 0.597382 + -0.519762, -0.590843, -0.157422, 0.596632 + -0.520468, -0.590939, -0.157578, 0.595881 + -0.521173, -0.591035, -0.157735, 0.595128 + -0.521876, -0.591132, -0.157892, 0.594373 + -0.522577, -0.591230, -0.158051, 0.593616 + -0.523278, -0.591329, -0.158209, 0.592858 + -0.523976, -0.591428, -0.158369, 0.592098 + -0.524674, -0.591529, -0.158529, 0.591337 + -0.525370, -0.591630, -0.158690, 0.590574 + -0.526065, -0.591732, -0.158852, 0.589809 + -0.526758, -0.591836, -0.159014, 0.589043 + -0.527450, -0.591940, -0.159177, 0.588275 + -0.528140, -0.592044, -0.159341, 0.587505 + -0.528829, -0.592150, -0.159506, 0.586733 + -0.529517, -0.592257, -0.159671, 0.585960 + -0.530203, -0.592364, -0.159837, 0.585186 + -0.530887, -0.592472, -0.160003, 0.584409 + -0.531570, -0.592581, -0.160170, 0.583631 + -0.532252, -0.592691, -0.160338, 0.582852 + -0.532932, -0.592802, -0.160507, 0.582071 + -0.533611, -0.592914, -0.160677, 0.581288 + -0.534289, -0.593026, -0.160847, 0.580503 + -0.534964, -0.593139, -0.161018, 0.579717 + -0.535639, -0.593254, -0.161190, 0.578929 + -0.536312, -0.593369, -0.161362, 0.578140 + -0.536983, -0.593484, -0.161535, 0.577349 + -0.537653, -0.593601, -0.161709, 0.576557 + -0.538321, -0.593718, -0.161884, 0.575762 + -0.538988, -0.593836, -0.162060, 0.574967 + -0.539654, -0.593956, -0.162236, 0.574169 + -0.540317, -0.594075, -0.162413, 0.573370 + -0.540980, -0.594196, -0.162591, 0.572570 + -0.541641, -0.594317, -0.162769, 0.571768 + -0.542300, -0.594440, -0.162949, 0.570964 + -0.542958, -0.594563, -0.163129, 0.570159 + -0.543614, -0.594687, -0.163310, 0.569352 + -0.544269, -0.594811, -0.163492, 0.568543 + -0.544922, -0.594937, -0.163674, 0.567733 + -0.545573, -0.595063, -0.163857, 0.566922 + -0.546223, -0.595190, -0.164042, 0.566109 + -0.546872, -0.595318, -0.164227, 0.565294 + -0.547519, -0.595447, -0.164412, 0.564478 + -0.548164, -0.595576, -0.164599, 0.563660 + -0.548808, -0.595706, -0.164787, 0.562841 + -0.549450, -0.595837, -0.164975, 0.562020 + -0.550091, -0.595969, -0.165164, 0.561197 + -0.550730, -0.596101, -0.165354, 0.560373 + -0.551367, -0.596235, -0.165545, 0.559548 + -0.552003, -0.596369, -0.165736, 0.558721 + -0.552637, -0.596504, -0.165929, 0.557892 + -0.553270, -0.596639, -0.166122, 0.557062 + -0.553901, -0.596775, -0.166316, 0.556230 + -0.554530, -0.596913, -0.166511, 0.555397 + -0.555158, -0.597050, -0.166707, 0.554562 + -0.555784, -0.597189, -0.166904, 0.553726 + -0.556408, -0.597328, -0.167101, 0.552889 + -0.557031, -0.597468, -0.167300, 0.552049 + -0.557652, -0.597609, -0.167499, 0.551209 + -0.558272, -0.597751, -0.167700, 0.550367 + -0.558890, -0.597893, -0.167901, 0.549523 + -0.559506, -0.598036, -0.168103, 0.548678 + -0.560121, -0.598180, -0.168306, 0.547831 + -0.560734, -0.598324, -0.168509, 0.546983 + -0.561345, -0.598469, -0.168714, 0.546133 + -0.561954, -0.598615, -0.168920, 0.545282 + -0.562562, -0.598762, -0.169126, 0.544430 + -0.563169, -0.598909, -0.169334, 0.543576 + -0.563773, -0.599057, -0.169542, 0.542720 + -0.564376, -0.599206, -0.169751, 0.541863 + -0.564977, -0.599356, -0.169961, 0.541005 + -0.565577, -0.599506, -0.170173, 0.540145 + -0.566174, -0.599657, -0.170385, 0.539284 + -0.566771, -0.599808, -0.170598, 0.538421 + -0.567365, -0.599961, -0.170811, 0.537557 + -0.567958, -0.600114, -0.171026, 0.536692 + -0.568548, -0.600267, -0.171242, 0.535825 + -0.569138, -0.600422, -0.171459, 0.534956 + -0.569725, -0.600577, -0.171676, 0.534086 + -0.570311, -0.600732, -0.171895, 0.533215 + -0.570895, -0.600889, -0.172115, 0.532342 + -0.571477, -0.601046, -0.172335, 0.531468 + -0.572058, -0.601203, -0.172557, 0.530593 + -0.572636, -0.601362, -0.172779, 0.529716 + -0.573213, -0.601521, -0.173003, 0.528838 + -0.573789, -0.601681, -0.173227, 0.527958 + -0.574362, -0.601841, -0.173452, 0.527077 + -0.574934, -0.602002, -0.173679, 0.526194 + -0.575504, -0.602164, -0.173906, 0.525311 + -0.576072, -0.602326, -0.174134, 0.524425 + -0.576638, -0.602489, -0.174364, 0.523539 + -0.577203, -0.602652, -0.174594, 0.522651 + -0.577766, -0.602817, -0.174825, 0.521761 + -0.578327, -0.602982, -0.175058, 0.520871 + -0.578886, -0.603147, -0.175291, 0.519979 + -0.579443, -0.603313, -0.175525, 0.519085 + -0.579999, -0.603480, -0.175761, 0.518191 + -0.580553, -0.603647, -0.175997, 0.517294 + -0.581105, -0.603815, -0.176235, 0.516397 + -0.581655, -0.603984, -0.176473, 0.515498 + -0.582203, -0.604153, -0.176712, 0.514598 + -0.582750, -0.604323, -0.176953, 0.513697 + -0.583294, -0.604493, -0.177194, 0.512794 + -0.583837, -0.604664, -0.177437, 0.511890 + -0.584378, -0.604836, -0.177681, 0.510985 + -0.584917, -0.605008, -0.177925, 0.510078 + -0.585455, -0.605181, -0.178171, 0.509170 + -0.585990, -0.605354, -0.178417, 0.508261 + -0.586524, -0.605528, -0.178665, 0.507350 + -0.587056, -0.605703, -0.178914, 0.506438 + -0.587585, -0.605878, -0.179164, 0.505525 + -0.588114, -0.606054, -0.179415, 0.504611 + -0.588640, -0.606230, -0.179667, 0.503695 + -0.589164, -0.606407, -0.179920, 0.502778 + -0.589686, -0.606584, -0.180174, 0.501860 + -0.590207, -0.606762, -0.180429, 0.500940 + -0.590726, -0.606940, -0.180686, 0.500019 + -0.591242, -0.607119, -0.180943, 0.499097 + -0.591757, -0.607299, -0.181201, 0.498174 + -0.592270, -0.607479, -0.181461, 0.497250 + -0.592781, -0.607660, -0.181722, 0.496324 + -0.593290, -0.607841, -0.181983, 0.495397 + -0.593797, -0.608023, -0.182246, 0.494468 + -0.594303, -0.608205, -0.182510, 0.493539 + -0.594806, -0.608388, -0.182775, 0.492608 + -0.595308, -0.608571, -0.183041, 0.491676 + -0.595807, -0.608755, -0.183308, 0.490743 + -0.596305, -0.608940, -0.183577, 0.489809 + -0.596801, -0.609124, -0.183846, 0.488873 + -0.597294, -0.609310, -0.184117, 0.487937 + -0.597786, -0.609496, -0.184389, 0.486999 + -0.598276, -0.609682, -0.184661, 0.486059 + -0.598764, -0.609869, -0.184935, 0.485119 + -0.599250, -0.610056, -0.185210, 0.484178 + -0.599734, -0.610244, -0.185487, 0.483235 + -0.600216, -0.610433, -0.185764, 0.482291 + -0.600696, -0.610621, -0.186043, 0.481346 + -0.601174, -0.610811, -0.186322, 0.480400 + -0.601650, -0.611000, -0.186603, 0.479452 + -0.602124, -0.611191, -0.186885, 0.478504 + -0.602597, -0.611381, -0.187168, 0.477554 + -0.603067, -0.611573, -0.187452, 0.476603 + -0.603535, -0.611764, -0.187738, 0.475652 + -0.604001, -0.611956, -0.188024, 0.474698 + -0.604466, -0.612149, -0.188312, 0.473744 + -0.604928, -0.612342, -0.188601, 0.472789 + -0.605388, -0.612535, -0.188891, 0.471832 + -0.605846, -0.612729, -0.189182, 0.470875 + -0.606303, -0.612924, -0.189474, 0.469916 + -0.606757, -0.613118, -0.189768, 0.468956 + -0.607209, -0.613313, -0.190063, 0.467996 + -0.607659, -0.613509, -0.190359, 0.467034 + -0.608107, -0.613705, -0.190656, 0.466070 + -0.608554, -0.613902, -0.190954, 0.465106 + -0.608998, -0.614098, -0.191254, 0.464141 + -0.609440, -0.614296, -0.191554, 0.463175 + -0.609880, -0.614493, -0.191856, 0.462207 + -0.610318, -0.614691, -0.192159, 0.461239 + -0.610754, -0.614890, -0.192464, 0.460269 + -0.611188, -0.615089, -0.192769, 0.459299 + -0.611620, -0.615288, -0.193076, 0.458327 + -0.612050, -0.615487, -0.193384, 0.457355 + -0.612477, -0.615687, -0.193693, 0.456381 + -0.612903, -0.615888, -0.194003, 0.455406 + -0.613327, -0.616089, -0.194315, 0.454430 + -0.613748, -0.616290, -0.194628, 0.453453 + -0.614168, -0.616491, -0.194942, 0.452476 + -0.614585, -0.616693, -0.195257, 0.451497 + -0.615001, -0.616895, -0.195573, 0.450517 + -0.615414, -0.617098, -0.195891, 0.449536 + -0.615825, -0.617301, -0.196210, 0.448554 + -0.616234, -0.617504, -0.196530, 0.447571 + -0.616641, -0.617707, -0.196852, 0.446587 + -0.617046, -0.617911, -0.197174, 0.445603 + -0.617449, -0.618115, -0.197498, 0.444617 + -0.617850, -0.618320, -0.197823, 0.443630 + -0.618249, -0.618525, -0.198150, 0.442642 + -0.618645, -0.618730, -0.198477, 0.441654 + -0.619040, -0.618936, -0.198806, 0.440664 + -0.619432, -0.619141, -0.199136, 0.439673 + -0.619822, -0.619348, -0.199468, 0.438682 + -0.620210, -0.619554, -0.199800, 0.437689 + -0.620596, -0.619761, -0.200134, 0.436696 + -0.620980, -0.619968, -0.200470, 0.435701 + -0.621362, -0.620175, -0.200806, 0.434706 + -0.621742, -0.620383, -0.201144, 0.433710 + -0.622119, -0.620590, -0.201483, 0.432712 + -0.622494, -0.620799, -0.201823, 0.431714 + -0.622868, -0.621007, -0.202165, 0.430715 + -0.623239, -0.621216, -0.202508, 0.429715 + -0.623608, -0.621425, -0.202852, 0.428715 + -0.623974, -0.621634, -0.203197, 0.427713 + -0.624339, -0.621843, -0.203544, 0.426710 + -0.624701, -0.622053, -0.203892, 0.425707 + -0.625062, -0.622263, -0.204241, 0.424703 + -0.625420, -0.622473, -0.204592, 0.423697 + -0.625776, -0.622683, -0.204944, 0.422691 + -0.626130, -0.622894, -0.205297, 0.421684 + -0.626481, -0.623105, -0.205651, 0.420677 + -0.626831, -0.623316, -0.206007, 0.419668 + -0.627178, -0.623527, -0.206364, 0.418659 + -0.627523, -0.623739, -0.206723, 0.417648 + -0.627866, -0.623951, -0.207082, 0.416637 + -0.628207, -0.624163, -0.207443, 0.415625 + -0.628546, -0.624375, -0.207806, 0.414612 + -0.628882, -0.624587, -0.208169, 0.413599 + -0.629216, -0.624800, -0.208534, 0.412584 + -0.629548, -0.625012, -0.208900, 0.411569 + -0.629878, -0.625225, -0.209268, 0.410553 + -0.630206, -0.625438, -0.209637, 0.409536 + -0.630531, -0.625652, -0.210007, 0.408519 + -0.630854, -0.625865, -0.210379, 0.407500 + -0.631175, -0.626079, -0.210752, 0.406481 + -0.631494, -0.626293, -0.211126, 0.405461 + -0.631811, -0.626506, -0.211502, 0.404440 + -0.632125, -0.626720, -0.211879, 0.403419 + -0.632437, -0.626935, -0.212257, 0.402397 + -0.632747, -0.627149, -0.212637, 0.401374 + -0.633055, -0.627364, -0.213017, 0.400350 + -0.633360, -0.627578, -0.213400, 0.399326 + -0.633664, -0.627793, -0.213783, 0.398300 + -0.633965, -0.628008, -0.214168, 0.397274 + -0.634263, -0.628223, -0.214555, 0.396248 + -0.634560, -0.628438, -0.214942, 0.395220 + -0.634854, -0.628653, -0.215331, 0.394192 + -0.635146, -0.628868, -0.215722, 0.393164 + -0.635436, -0.629084, -0.216114, 0.392134 + -0.635724, -0.629299, -0.216507, 0.391104 + -0.636009, -0.629515, -0.216901, 0.390073 + -0.636292, -0.629731, -0.217297, 0.389042 + -0.636573, -0.629947, -0.217694, 0.388009 + -0.636852, -0.630162, -0.218093, 0.386976 + -0.637128, -0.630378, -0.218493, 0.385943 + -0.637402, -0.630594, -0.218894, 0.384909 + -0.637674, -0.630810, -0.219297, 0.383874 + -0.637943, -0.631027, -0.219701, 0.382838 + -0.638211, -0.631243, -0.220106, 0.381802 + -0.638476, -0.631459, -0.220513, 0.380765 + -0.638738, -0.631675, -0.220921, 0.379728 + -0.638999, -0.631892, -0.221331, 0.378690 + -0.639257, -0.632108, -0.221742, 0.377651 + -0.639513, -0.632324, -0.222154, 0.376612 + -0.639767, -0.632541, -0.222568, 0.375572 + -0.640018, -0.632757, -0.222983, 0.374531 + -0.640267, -0.632974, -0.223400, 0.373490 + -0.640514, -0.633190, -0.223818, 0.372449 + -0.640758, -0.633407, -0.224237, 0.371406 + -0.641000, -0.633623, -0.224658, 0.370364 + -0.641240, -0.633840, -0.225080, 0.369320 + -0.641478, -0.634056, -0.225503, 0.368276 + -0.641713, -0.634273, -0.225928, 0.367232 + -0.641946, -0.634489, -0.226354, 0.366186 + -0.642177, -0.634705, -0.226782, 0.365141 + -0.642405, -0.634922, -0.227211, 0.364095 + -0.642631, -0.635138, -0.227642, 0.363048 + -0.642855, -0.635355, -0.228074, 0.362001 + -0.643077, -0.635571, -0.228507, 0.360953 + -0.643296, -0.635787, -0.228942, 0.359904 + -0.643513, -0.636003, -0.229378, 0.358856 + -0.643727, -0.636219, -0.229815, 0.357806 + -0.643939, -0.636435, -0.230254, 0.356756 + -0.644149, -0.636651, -0.230695, 0.355706 + -0.644357, -0.636867, -0.231136, 0.354655 + -0.644562, -0.637083, -0.231580, 0.353604 + -0.644765, -0.637299, -0.232024, 0.352552 + -0.644966, -0.637515, -0.232470, 0.351500 + -0.645164, -0.637730, -0.232918, 0.350447 + -0.645360, -0.637946, -0.233367, 0.349394 + -0.645553, -0.638161, -0.233817, 0.348340 + -0.645745, -0.638377, -0.234269, 0.347286 + -0.645933, -0.638592, -0.234722, 0.346231 + -0.646120, -0.638807, -0.235176, 0.345176 + -0.646304, -0.639022, -0.235632, 0.344121 + -0.646486, -0.639237, -0.236090, 0.343065 + -0.646666, -0.639451, -0.236549, 0.342009 + -0.646843, -0.639666, -0.237009, 0.340952 + -0.647018, -0.639881, -0.237471, 0.339895 + -0.647190, -0.640095, -0.237934, 0.338837 + -0.647361, -0.640309, -0.238398, 0.337779 + -0.647528, -0.640523, -0.238864, 0.336721 + -0.647694, -0.640737, -0.239332, 0.335662 + -0.647857, -0.640951, -0.239801, 0.334603 + -0.648018, -0.641164, -0.240271, 0.333544 + -0.648176, -0.641377, -0.240743, 0.332484 + -0.648332, -0.641591, -0.241216, 0.331424 + -0.648486, -0.641804, -0.241691, 0.330363 + -0.648637, -0.642016, -0.242167, 0.329303 + -0.648786, -0.642229, -0.242645, 0.328241 + -0.648933, -0.642441, -0.243124, 0.327180 + -0.649077, -0.642653, -0.243604, 0.326118 + -0.649219, -0.642865, -0.244086, 0.325056 + -0.649358, -0.643077, -0.244569, 0.323993 + -0.649495, -0.643289, -0.245054, 0.322930 + -0.649630, -0.643500, -0.245540, 0.321867 + -0.649762, -0.643711, -0.246028, 0.320804 + -0.649892, -0.643922, -0.246517, 0.319740 + -0.650020, -0.644133, -0.247008, 0.318676 + -0.650145, -0.644343, -0.247500, 0.317612 + -0.650268, -0.644553, -0.247993, 0.316547 + -0.650388, -0.644763, -0.248488, 0.315482 + -0.650506, -0.644973, -0.248985, 0.314417 + -0.650622, -0.645182, -0.249483, 0.313352 + -0.650735, -0.645391, -0.249982, 0.312286 + -0.650846, -0.645600, -0.250483, 0.311220 + -0.650955, -0.645809, -0.250985, 0.310154 + -0.651061, -0.646017, -0.251489, 0.309088 + -0.651165, -0.646225, -0.251994, 0.308021 + -0.651266, -0.646433, -0.252500, 0.306955 + -0.651365, -0.646640, -0.253008, 0.305888 + -0.651461, -0.646847, -0.253518, 0.304821 + -0.651556, -0.647054, -0.254029, 0.303753 + -0.651647, -0.647260, -0.254541, 0.302686 + -0.651737, -0.647466, -0.255055, 0.301618 + -0.651824, -0.647672, -0.255571, 0.300550 + -0.651908, -0.647878, -0.256088, 0.299482 + -0.651991, -0.648083, -0.256606, 0.298413 + -0.652070, -0.648287, -0.257126, 0.297345 + -0.652148, -0.648492, -0.257647, 0.296276 + -0.652223, -0.648696, -0.258170, 0.295208 + -0.652295, -0.648900, -0.258694, 0.294139 + -0.652365, -0.649103, -0.259220, 0.293070 + -0.652433, -0.649306, -0.259747, 0.292000 + -0.652498, -0.649509, -0.260275, 0.290931 + -0.652561, -0.649711, -0.260805, 0.289862 + -0.652622, -0.649913, -0.261337, 0.288792 + -0.652680, -0.650114, -0.261870, 0.287722 + -0.652736, -0.650316, -0.262404, 0.286653 + -0.652789, -0.650516, -0.262940, 0.285583 + -0.652840, -0.650717, -0.263478, 0.284513 + -0.652888, -0.650916, -0.264017, 0.283443 + -0.652934, -0.651116, -0.264557, 0.282373 + -0.652978, -0.651315, -0.265099, 0.281302 + -0.653019, -0.651514, -0.265642, 0.280232 + -0.653058, -0.651712, -0.266187, 0.279162 + -0.653095, -0.651910, -0.266733, 0.278091 + -0.653128, -0.652107, -0.267281, 0.277021 + -0.653160, -0.652304, -0.267830, 0.275951 + -0.653189, -0.652500, -0.268381, 0.274880 + -0.653216, -0.652696, -0.268933, 0.273810 + -0.653240, -0.652892, -0.269486, 0.272739 + -0.653262, -0.653087, -0.270041, 0.271669 + -0.653281, -0.653281, -0.270598, 0.270598 diff --git a/scripts/trajectories/rotate_yaw_pitch_roll1.csv b/scripts/trajectories/rotate_yaw_pitch_roll1.csv index 16657b5438..9c572e3cfb 100644 --- a/scripts/trajectories/rotate_yaw_pitch_roll1.csv +++ b/scripts/trajectories/rotate_yaw_pitch_roll1.csv @@ -1,2401 +1,2401 @@ -0,-3.0,-360.000000,0.000000,0.000000 -1,-3.0,-359.100000,0.000000,0.000000 -2,-3.0,-358.200000,0.000000,0.000000 -3,-3.0,-357.300000,0.000000,0.000000 -4,-3.0,-356.400000,0.000000,0.000000 -5,-3.0,-355.500000,0.000000,0.000000 -6,-3.0,-354.600000,0.000000,0.000000 -7,-3.0,-353.700000,0.000000,0.000000 -8,-3.0,-352.800000,0.000000,0.000000 -9,-3.0,-351.900000,0.000000,0.000000 -10,-3.0,-351.000000,0.000000,0.000000 -11,-3.0,-350.100000,0.000000,0.000000 -12,-3.0,-349.200000,0.000000,0.000000 -13,-3.0,-348.300000,0.000000,0.000000 -14,-3.0,-347.400000,0.000000,0.000000 -15,-3.0,-346.500000,0.000000,0.000000 -16,-3.0,-345.600000,0.000000,0.000000 -17,-3.0,-344.700000,0.000000,0.000000 -18,-3.0,-343.800000,0.000000,0.000000 -19,-3.0,-342.900000,0.000000,0.000000 -20,-3.0,-342.000000,0.000000,0.000000 -21,-3.0,-341.100000,0.000000,0.000000 -22,-3.0,-340.200000,0.000000,0.000000 -23,-3.0,-339.300000,0.000000,0.000000 -24,-3.0,-338.400000,0.000000,0.000000 -25,-3.0,-337.500000,0.000000,0.000000 -26,-3.0,-336.600000,0.000000,0.000000 -27,-3.0,-335.700000,0.000000,0.000000 -28,-3.0,-334.800000,0.000000,0.000000 -29,-3.0,-333.900000,0.000000,0.000000 -30,-3.0,-333.000000,0.000000,0.000000 -31,-3.0,-332.100000,0.000000,0.000000 -32,-3.0,-331.200000,0.000000,0.000000 -33,-3.0,-330.300000,0.000000,0.000000 -34,-3.0,-329.400000,0.000000,0.000000 -35,-3.0,-328.500000,0.000000,0.000000 -36,-3.0,-327.600000,0.000000,0.000000 -37,-3.0,-326.700000,0.000000,0.000000 -38,-3.0,-325.800000,0.000000,0.000000 -39,-3.0,-324.900000,0.000000,0.000000 -40,-3.0,-324.000000,0.000000,0.000000 -41,-3.0,-323.100000,0.000000,0.000000 -42,-3.0,-322.200000,0.000000,0.000000 -43,-3.0,-321.300000,0.000000,0.000000 -44,-3.0,-320.400000,0.000000,0.000000 -45,-3.0,-319.500000,0.000000,0.000000 -46,-3.0,-318.600000,0.000000,0.000000 -47,-3.0,-317.700000,0.000000,0.000000 -48,-3.0,-316.800000,0.000000,0.000000 -49,-3.0,-315.900000,0.000000,0.000000 -50,-3.0,-315.000000,0.000000,0.000000 -51,-3.0,-314.100000,0.000000,0.000000 -52,-3.0,-313.200000,0.000000,0.000000 -53,-3.0,-312.300000,0.000000,0.000000 -54,-3.0,-311.400000,0.000000,0.000000 -55,-3.0,-310.500000,0.000000,0.000000 -56,-3.0,-309.600000,0.000000,0.000000 -57,-3.0,-308.700000,0.000000,0.000000 -58,-3.0,-307.800000,0.000000,0.000000 -59,-3.0,-306.900000,0.000000,0.000000 -60,-3.0,-306.000000,0.000000,0.000000 -61,-3.0,-305.100000,0.000000,0.000000 -62,-3.0,-304.200000,0.000000,0.000000 -63,-3.0,-303.300000,0.000000,0.000000 -64,-3.0,-302.400000,0.000000,0.000000 -65,-3.0,-301.500000,0.000000,0.000000 -66,-3.0,-300.600000,0.000000,0.000000 -67,-3.0,-299.700000,0.000000,0.000000 -68,-3.0,-298.800000,0.000000,0.000000 -69,-3.0,-297.900000,0.000000,0.000000 -70,-3.0,-297.000000,0.000000,0.000000 -71,-3.0,-296.100000,0.000000,0.000000 -72,-3.0,-295.200000,0.000000,0.000000 -73,-3.0,-294.300000,0.000000,0.000000 -74,-3.0,-293.400000,0.000000,0.000000 -75,-3.0,-292.500000,0.000000,0.000000 -76,-3.0,-291.600000,0.000000,0.000000 -77,-3.0,-290.700000,0.000000,0.000000 -78,-3.0,-289.800000,0.000000,0.000000 -79,-3.0,-288.900000,0.000000,0.000000 -80,-3.0,-288.000000,0.000000,0.000000 -81,-3.0,-287.100000,0.000000,0.000000 -82,-3.0,-286.200000,0.000000,0.000000 -83,-3.0,-285.300000,0.000000,0.000000 -84,-3.0,-284.400000,0.000000,0.000000 -85,-3.0,-283.500000,0.000000,0.000000 -86,-3.0,-282.600000,0.000000,0.000000 -87,-3.0,-281.700000,0.000000,0.000000 -88,-3.0,-280.800000,0.000000,0.000000 -89,-3.0,-279.900000,0.000000,0.000000 -90,-3.0,-279.000000,0.000000,0.000000 -91,-3.0,-278.100000,0.000000,0.000000 -92,-3.0,-277.200000,0.000000,0.000000 -93,-3.0,-276.300000,0.000000,0.000000 -94,-3.0,-275.400000,0.000000,0.000000 -95,-3.0,-274.500000,0.000000,0.000000 -96,-3.0,-273.600000,0.000000,0.000000 -97,-3.0,-272.700000,0.000000,0.000000 -98,-3.0,-271.800000,0.000000,0.000000 -99,-3.0,-270.900000,0.000000,0.000000 -100,-3.0,-270.000000,0.000000,0.000000 -101,-3.0,-269.100000,0.000000,0.000000 -102,-3.0,-268.200000,0.000000,0.000000 -103,-3.0,-267.300000,0.000000,0.000000 -104,-3.0,-266.400000,0.000000,0.000000 -105,-3.0,-265.500000,0.000000,0.000000 -106,-3.0,-264.600000,0.000000,0.000000 -107,-3.0,-263.700000,0.000000,0.000000 -108,-3.0,-262.800000,0.000000,0.000000 -109,-3.0,-261.900000,0.000000,0.000000 -110,-3.0,-261.000000,0.000000,0.000000 -111,-3.0,-260.100000,0.000000,0.000000 -112,-3.0,-259.200000,0.000000,0.000000 -113,-3.0,-258.300000,0.000000,0.000000 -114,-3.0,-257.400000,0.000000,0.000000 -115,-3.0,-256.500000,0.000000,0.000000 -116,-3.0,-255.600000,0.000000,0.000000 -117,-3.0,-254.700000,0.000000,0.000000 -118,-3.0,-253.800000,0.000000,0.000000 -119,-3.0,-252.900000,0.000000,0.000000 -120,-3.0,-252.000000,0.000000,0.000000 -121,-3.0,-251.100000,0.000000,0.000000 -122,-3.0,-250.200000,0.000000,0.000000 -123,-3.0,-249.300000,0.000000,0.000000 -124,-3.0,-248.400000,0.000000,0.000000 -125,-3.0,-247.500000,0.000000,0.000000 -126,-3.0,-246.600000,0.000000,0.000000 -127,-3.0,-245.700000,0.000000,0.000000 -128,-3.0,-244.800000,0.000000,0.000000 -129,-3.0,-243.900000,0.000000,0.000000 -130,-3.0,-243.000000,0.000000,0.000000 -131,-3.0,-242.100000,0.000000,0.000000 -132,-3.0,-241.200000,0.000000,0.000000 -133,-3.0,-240.300000,0.000000,0.000000 -134,-3.0,-239.400000,0.000000,0.000000 -135,-3.0,-238.500000,0.000000,0.000000 -136,-3.0,-237.600000,0.000000,0.000000 -137,-3.0,-236.700000,0.000000,0.000000 -138,-3.0,-235.800000,0.000000,0.000000 -139,-3.0,-234.900000,0.000000,0.000000 -140,-3.0,-234.000000,0.000000,0.000000 -141,-3.0,-233.100000,0.000000,0.000000 -142,-3.0,-232.200000,0.000000,0.000000 -143,-3.0,-231.300000,0.000000,0.000000 -144,-3.0,-230.400000,0.000000,0.000000 -145,-3.0,-229.500000,0.000000,0.000000 -146,-3.0,-228.600000,0.000000,0.000000 -147,-3.0,-227.700000,0.000000,0.000000 -148,-3.0,-226.800000,0.000000,0.000000 -149,-3.0,-225.900000,0.000000,0.000000 -150,-3.0,-225.000000,0.000000,0.000000 -151,-3.0,-224.100000,0.000000,0.000000 -152,-3.0,-223.200000,0.000000,0.000000 -153,-3.0,-222.300000,0.000000,0.000000 -154,-3.0,-221.400000,0.000000,0.000000 -155,-3.0,-220.500000,0.000000,0.000000 -156,-3.0,-219.600000,0.000000,0.000000 -157,-3.0,-218.700000,0.000000,0.000000 -158,-3.0,-217.800000,0.000000,0.000000 -159,-3.0,-216.900000,0.000000,0.000000 -160,-3.0,-216.000000,0.000000,0.000000 -161,-3.0,-215.100000,0.000000,0.000000 -162,-3.0,-214.200000,0.000000,0.000000 -163,-3.0,-213.300000,0.000000,0.000000 -164,-3.0,-212.400000,0.000000,0.000000 -165,-3.0,-211.500000,0.000000,0.000000 -166,-3.0,-210.600000,0.000000,0.000000 -167,-3.0,-209.700000,0.000000,0.000000 -168,-3.0,-208.800000,0.000000,0.000000 -169,-3.0,-207.900000,0.000000,0.000000 -170,-3.0,-207.000000,0.000000,0.000000 -171,-3.0,-206.100000,0.000000,0.000000 -172,-3.0,-205.200000,0.000000,0.000000 -173,-3.0,-204.300000,0.000000,0.000000 -174,-3.0,-203.400000,0.000000,0.000000 -175,-3.0,-202.500000,0.000000,0.000000 -176,-3.0,-201.600000,0.000000,0.000000 -177,-3.0,-200.700000,0.000000,0.000000 -178,-3.0,-199.800000,0.000000,0.000000 -179,-3.0,-198.900000,0.000000,0.000000 -180,-3.0,-198.000000,0.000000,0.000000 -181,-3.0,-197.100000,0.000000,0.000000 -182,-3.0,-196.200000,0.000000,0.000000 -183,-3.0,-195.300000,0.000000,0.000000 -184,-3.0,-194.400000,0.000000,0.000000 -185,-3.0,-193.500000,0.000000,0.000000 -186,-3.0,-192.600000,0.000000,0.000000 -187,-3.0,-191.700000,0.000000,0.000000 -188,-3.0,-190.800000,0.000000,0.000000 -189,-3.0,-189.900000,0.000000,0.000000 -190,-3.0,-189.000000,0.000000,0.000000 -191,-3.0,-188.100000,0.000000,0.000000 -192,-3.0,-187.200000,0.000000,0.000000 -193,-3.0,-186.300000,0.000000,0.000000 -194,-3.0,-185.400000,0.000000,0.000000 -195,-3.0,-184.500000,0.000000,0.000000 -196,-3.0,-183.600000,0.000000,0.000000 -197,-3.0,-182.700000,0.000000,0.000000 -198,-3.0,-181.800000,0.000000,0.000000 -199,-3.0,-180.900000,0.000000,0.000000 -200,-3.0,-180.000000,0.000000,0.000000 -201,-3.0,-179.100000,0.000000,0.000000 -202,-3.0,-178.200000,0.000000,0.000000 -203,-3.0,-177.300000,0.000000,0.000000 -204,-3.0,-176.400000,0.000000,0.000000 -205,-3.0,-175.500000,0.000000,0.000000 -206,-3.0,-174.600000,0.000000,0.000000 -207,-3.0,-173.700000,0.000000,0.000000 -208,-3.0,-172.800000,0.000000,0.000000 -209,-3.0,-171.900000,0.000000,0.000000 -210,-3.0,-171.000000,0.000000,0.000000 -211,-3.0,-170.100000,0.000000,0.000000 -212,-3.0,-169.200000,0.000000,0.000000 -213,-3.0,-168.300000,0.000000,0.000000 -214,-3.0,-167.400000,0.000000,0.000000 -215,-3.0,-166.500000,0.000000,0.000000 -216,-3.0,-165.600000,0.000000,0.000000 -217,-3.0,-164.700000,0.000000,0.000000 -218,-3.0,-163.800000,0.000000,0.000000 -219,-3.0,-162.900000,0.000000,0.000000 -220,-3.0,-162.000000,0.000000,0.000000 -221,-3.0,-161.100000,0.000000,0.000000 -222,-3.0,-160.200000,0.000000,0.000000 -223,-3.0,-159.300000,0.000000,0.000000 -224,-3.0,-158.400000,0.000000,0.000000 -225,-3.0,-157.500000,0.000000,0.000000 -226,-3.0,-156.600000,0.000000,0.000000 -227,-3.0,-155.700000,0.000000,0.000000 -228,-3.0,-154.800000,0.000000,0.000000 -229,-3.0,-153.900000,0.000000,0.000000 -230,-3.0,-153.000000,0.000000,0.000000 -231,-3.0,-152.100000,0.000000,0.000000 -232,-3.0,-151.200000,0.000000,0.000000 -233,-3.0,-150.300000,0.000000,0.000000 -234,-3.0,-149.400000,0.000000,0.000000 -235,-3.0,-148.500000,0.000000,0.000000 -236,-3.0,-147.600000,0.000000,0.000000 -237,-3.0,-146.700000,0.000000,0.000000 -238,-3.0,-145.800000,0.000000,0.000000 -239,-3.0,-144.900000,0.000000,0.000000 -240,-3.0,-144.000000,0.000000,0.000000 -241,-3.0,-143.100000,0.000000,0.000000 -242,-3.0,-142.200000,0.000000,0.000000 -243,-3.0,-141.300000,0.000000,0.000000 -244,-3.0,-140.400000,0.000000,0.000000 -245,-3.0,-139.500000,0.000000,0.000000 -246,-3.0,-138.600000,0.000000,0.000000 -247,-3.0,-137.700000,0.000000,0.000000 -248,-3.0,-136.800000,0.000000,0.000000 -249,-3.0,-135.900000,0.000000,0.000000 -250,-3.0,-135.000000,0.000000,0.000000 -251,-3.0,-134.100000,0.000000,0.000000 -252,-3.0,-133.200000,0.000000,0.000000 -253,-3.0,-132.300000,0.000000,0.000000 -254,-3.0,-131.400000,0.000000,0.000000 -255,-3.0,-130.500000,0.000000,0.000000 -256,-3.0,-129.600000,0.000000,0.000000 -257,-3.0,-128.700000,0.000000,0.000000 -258,-3.0,-127.800000,0.000000,0.000000 -259,-3.0,-126.900000,0.000000,0.000000 -260,-3.0,-126.000000,0.000000,0.000000 -261,-3.0,-125.100000,0.000000,0.000000 -262,-3.0,-124.200000,0.000000,0.000000 -263,-3.0,-123.300000,0.000000,0.000000 -264,-3.0,-122.400000,0.000000,0.000000 -265,-3.0,-121.500000,0.000000,0.000000 -266,-3.0,-120.600000,0.000000,0.000000 -267,-3.0,-119.700000,0.000000,0.000000 -268,-3.0,-118.800000,0.000000,0.000000 -269,-3.0,-117.900000,0.000000,0.000000 -270,-3.0,-117.000000,0.000000,0.000000 -271,-3.0,-116.100000,0.000000,0.000000 -272,-3.0,-115.200000,0.000000,0.000000 -273,-3.0,-114.300000,0.000000,0.000000 -274,-3.0,-113.400000,0.000000,0.000000 -275,-3.0,-112.500000,0.000000,0.000000 -276,-3.0,-111.600000,0.000000,0.000000 -277,-3.0,-110.700000,0.000000,0.000000 -278,-3.0,-109.800000,0.000000,0.000000 -279,-3.0,-108.900000,0.000000,0.000000 -280,-3.0,-108.000000,0.000000,0.000000 -281,-3.0,-107.100000,0.000000,0.000000 -282,-3.0,-106.200000,0.000000,0.000000 -283,-3.0,-105.300000,0.000000,0.000000 -284,-3.0,-104.400000,0.000000,0.000000 -285,-3.0,-103.500000,0.000000,0.000000 -286,-3.0,-102.600000,0.000000,0.000000 -287,-3.0,-101.700000,0.000000,0.000000 -288,-3.0,-100.800000,0.000000,0.000000 -289,-3.0,-99.900000,0.000000,0.000000 -290,-3.0,-99.000000,0.000000,0.000000 -291,-3.0,-98.100000,0.000000,0.000000 -292,-3.0,-97.200000,0.000000,0.000000 -293,-3.0,-96.300000,0.000000,0.000000 -294,-3.0,-95.400000,0.000000,0.000000 -295,-3.0,-94.500000,0.000000,0.000000 -296,-3.0,-93.600000,0.000000,0.000000 -297,-3.0,-92.700000,0.000000,0.000000 -298,-3.0,-91.800000,0.000000,0.000000 -299,-3.0,-90.900000,0.000000,0.000000 -300,-3.0,-90.000000,0.000000,0.000000 -301,-3.0,-89.100000,0.000000,0.000000 -302,-3.0,-88.200000,0.000000,0.000000 -303,-3.0,-87.300000,0.000000,0.000000 -304,-3.0,-86.400000,0.000000,0.000000 -305,-3.0,-85.500000,0.000000,0.000000 -306,-3.0,-84.600000,0.000000,0.000000 -307,-3.0,-83.700000,0.000000,0.000000 -308,-3.0,-82.800000,0.000000,0.000000 -309,-3.0,-81.900000,0.000000,0.000000 -310,-3.0,-81.000000,0.000000,0.000000 -311,-3.0,-80.100000,0.000000,0.000000 -312,-3.0,-79.200000,0.000000,0.000000 -313,-3.0,-78.300000,0.000000,0.000000 -314,-3.0,-77.400000,0.000000,0.000000 -315,-3.0,-76.500000,0.000000,0.000000 -316,-3.0,-75.600000,0.000000,0.000000 -317,-3.0,-74.700000,0.000000,0.000000 -318,-3.0,-73.800000,0.000000,0.000000 -319,-3.0,-72.900000,0.000000,0.000000 -320,-3.0,-72.000000,0.000000,0.000000 -321,-3.0,-71.100000,0.000000,0.000000 -322,-3.0,-70.200000,0.000000,0.000000 -323,-3.0,-69.300000,0.000000,0.000000 -324,-3.0,-68.400000,0.000000,0.000000 -325,-3.0,-67.500000,0.000000,0.000000 -326,-3.0,-66.600000,0.000000,0.000000 -327,-3.0,-65.700000,0.000000,0.000000 -328,-3.0,-64.800000,0.000000,0.000000 -329,-3.0,-63.900000,0.000000,0.000000 -330,-3.0,-63.000000,0.000000,0.000000 -331,-3.0,-62.100000,0.000000,0.000000 -332,-3.0,-61.200000,0.000000,0.000000 -333,-3.0,-60.300000,0.000000,0.000000 -334,-3.0,-59.400000,0.000000,0.000000 -335,-3.0,-58.500000,0.000000,0.000000 -336,-3.0,-57.600000,0.000000,0.000000 -337,-3.0,-56.700000,0.000000,0.000000 -338,-3.0,-55.800000,0.000000,0.000000 -339,-3.0,-54.900000,0.000000,0.000000 -340,-3.0,-54.000000,0.000000,0.000000 -341,-3.0,-53.100000,0.000000,0.000000 -342,-3.0,-52.200000,0.000000,0.000000 -343,-3.0,-51.300000,0.000000,0.000000 -344,-3.0,-50.400000,0.000000,0.000000 -345,-3.0,-49.500000,0.000000,0.000000 -346,-3.0,-48.600000,0.000000,0.000000 -347,-3.0,-47.700000,0.000000,0.000000 -348,-3.0,-46.800000,0.000000,0.000000 -349,-3.0,-45.900000,0.000000,0.000000 -350,-3.0,-45.000000,0.000000,0.000000 -351,-3.0,-44.100000,0.000000,0.000000 -352,-3.0,-43.200000,0.000000,0.000000 -353,-3.0,-42.300000,0.000000,0.000000 -354,-3.0,-41.400000,0.000000,0.000000 -355,-3.0,-40.500000,0.000000,0.000000 -356,-3.0,-39.600000,0.000000,0.000000 -357,-3.0,-38.700000,0.000000,0.000000 -358,-3.0,-37.800000,0.000000,0.000000 -359,-3.0,-36.900000,0.000000,0.000000 -360,-3.0,-36.000000,0.000000,0.000000 -361,-3.0,-35.100000,0.000000,0.000000 -362,-3.0,-34.200000,0.000000,0.000000 -363,-3.0,-33.300000,0.000000,0.000000 -364,-3.0,-32.400000,0.000000,0.000000 -365,-3.0,-31.500000,0.000000,0.000000 -366,-3.0,-30.600000,0.000000,0.000000 -367,-3.0,-29.700000,0.000000,0.000000 -368,-3.0,-28.800000,0.000000,0.000000 -369,-3.0,-27.900000,0.000000,0.000000 -370,-3.0,-27.000000,0.000000,0.000000 -371,-3.0,-26.100000,0.000000,0.000000 -372,-3.0,-25.200000,0.000000,0.000000 -373,-3.0,-24.300000,0.000000,0.000000 -374,-3.0,-23.400000,0.000000,0.000000 -375,-3.0,-22.500000,0.000000,0.000000 -376,-3.0,-21.600000,0.000000,0.000000 -377,-3.0,-20.700000,0.000000,0.000000 -378,-3.0,-19.800000,0.000000,0.000000 -379,-3.0,-18.900000,0.000000,0.000000 -380,-3.0,-18.000000,0.000000,0.000000 -381,-3.0,-17.100000,0.000000,0.000000 -382,-3.0,-16.200000,0.000000,0.000000 -383,-3.0,-15.300000,0.000000,0.000000 -384,-3.0,-14.400000,0.000000,0.000000 -385,-3.0,-13.500000,0.000000,0.000000 -386,-3.0,-12.600000,0.000000,0.000000 -387,-3.0,-11.700000,0.000000,0.000000 -388,-3.0,-10.800000,0.000000,0.000000 -389,-3.0,-9.900000,0.000000,0.000000 -390,-3.0,-9.000000,0.000000,0.000000 -391,-3.0,-8.100000,0.000000,0.000000 -392,-3.0,-7.200000,0.000000,0.000000 -393,-3.0,-6.300000,0.000000,0.000000 -394,-3.0,-5.400000,0.000000,0.000000 -395,-3.0,-4.500000,0.000000,0.000000 -396,-3.0,-3.600000,0.000000,0.000000 -397,-3.0,-2.700000,0.000000,0.000000 -398,-3.0,-1.800000,0.000000,0.000000 -399,-3.0,-0.900000,0.000000,0.000000 -400,-3.0,0.000000,0.000000,0.000000 -401,-3.0,0.900000,0.000000,0.000000 -402,-3.0,1.800000,0.000000,0.000000 -403,-3.0,2.700000,0.000000,0.000000 -404,-3.0,3.600000,0.000000,0.000000 -405,-3.0,4.500000,0.000000,0.000000 -406,-3.0,5.400000,0.000000,0.000000 -407,-3.0,6.300000,0.000000,0.000000 -408,-3.0,7.200000,0.000000,0.000000 -409,-3.0,8.100000,0.000000,0.000000 -410,-3.0,9.000000,0.000000,0.000000 -411,-3.0,9.900000,0.000000,0.000000 -412,-3.0,10.800000,0.000000,0.000000 -413,-3.0,11.700000,0.000000,0.000000 -414,-3.0,12.600000,0.000000,0.000000 -415,-3.0,13.500000,0.000000,0.000000 -416,-3.0,14.400000,0.000000,0.000000 -417,-3.0,15.300000,0.000000,0.000000 -418,-3.0,16.200000,0.000000,0.000000 -419,-3.0,17.100000,0.000000,0.000000 -420,-3.0,18.000000,0.000000,0.000000 -421,-3.0,18.900000,0.000000,0.000000 -422,-3.0,19.800000,0.000000,0.000000 -423,-3.0,20.700000,0.000000,0.000000 -424,-3.0,21.600000,0.000000,0.000000 -425,-3.0,22.500000,0.000000,0.000000 -426,-3.0,23.400000,0.000000,0.000000 -427,-3.0,24.300000,0.000000,0.000000 -428,-3.0,25.200000,0.000000,0.000000 -429,-3.0,26.100000,0.000000,0.000000 -430,-3.0,27.000000,0.000000,0.000000 -431,-3.0,27.900000,0.000000,0.000000 -432,-3.0,28.800000,0.000000,0.000000 -433,-3.0,29.700000,0.000000,0.000000 -434,-3.0,30.600000,0.000000,0.000000 -435,-3.0,31.500000,0.000000,0.000000 -436,-3.0,32.400000,0.000000,0.000000 -437,-3.0,33.300000,0.000000,0.000000 -438,-3.0,34.200000,0.000000,0.000000 -439,-3.0,35.100000,0.000000,0.000000 -440,-3.0,36.000000,0.000000,0.000000 -441,-3.0,36.900000,0.000000,0.000000 -442,-3.0,37.800000,0.000000,0.000000 -443,-3.0,38.700000,0.000000,0.000000 -444,-3.0,39.600000,0.000000,0.000000 -445,-3.0,40.500000,0.000000,0.000000 -446,-3.0,41.400000,0.000000,0.000000 -447,-3.0,42.300000,0.000000,0.000000 -448,-3.0,43.200000,0.000000,0.000000 -449,-3.0,44.100000,0.000000,0.000000 -450,-3.0,45.000000,0.000000,0.000000 -451,-3.0,45.900000,0.000000,0.000000 -452,-3.0,46.800000,0.000000,0.000000 -453,-3.0,47.700000,0.000000,0.000000 -454,-3.0,48.600000,0.000000,0.000000 -455,-3.0,49.500000,0.000000,0.000000 -456,-3.0,50.400000,0.000000,0.000000 -457,-3.0,51.300000,0.000000,0.000000 -458,-3.0,52.200000,0.000000,0.000000 -459,-3.0,53.100000,0.000000,0.000000 -460,-3.0,54.000000,0.000000,0.000000 -461,-3.0,54.900000,0.000000,0.000000 -462,-3.0,55.800000,0.000000,0.000000 -463,-3.0,56.700000,0.000000,0.000000 -464,-3.0,57.600000,0.000000,0.000000 -465,-3.0,58.500000,0.000000,0.000000 -466,-3.0,59.400000,0.000000,0.000000 -467,-3.0,60.300000,0.000000,0.000000 -468,-3.0,61.200000,0.000000,0.000000 -469,-3.0,62.100000,0.000000,0.000000 -470,-3.0,63.000000,0.000000,0.000000 -471,-3.0,63.900000,0.000000,0.000000 -472,-3.0,64.800000,0.000000,0.000000 -473,-3.0,65.700000,0.000000,0.000000 -474,-3.0,66.600000,0.000000,0.000000 -475,-3.0,67.500000,0.000000,0.000000 -476,-3.0,68.400000,0.000000,0.000000 -477,-3.0,69.300000,0.000000,0.000000 -478,-3.0,70.200000,0.000000,0.000000 -479,-3.0,71.100000,0.000000,0.000000 -480,-3.0,72.000000,0.000000,0.000000 -481,-3.0,72.900000,0.000000,0.000000 -482,-3.0,73.800000,0.000000,0.000000 -483,-3.0,74.700000,0.000000,0.000000 -484,-3.0,75.600000,0.000000,0.000000 -485,-3.0,76.500000,0.000000,0.000000 -486,-3.0,77.400000,0.000000,0.000000 -487,-3.0,78.300000,0.000000,0.000000 -488,-3.0,79.200000,0.000000,0.000000 -489,-3.0,80.100000,0.000000,0.000000 -490,-3.0,81.000000,0.000000,0.000000 -491,-3.0,81.900000,0.000000,0.000000 -492,-3.0,82.800000,0.000000,0.000000 -493,-3.0,83.700000,0.000000,0.000000 -494,-3.0,84.600000,0.000000,0.000000 -495,-3.0,85.500000,0.000000,0.000000 -496,-3.0,86.400000,0.000000,0.000000 -497,-3.0,87.300000,0.000000,0.000000 -498,-3.0,88.200000,0.000000,0.000000 -499,-3.0,89.100000,0.000000,0.000000 -500,-3.0,90.000000,0.000000,0.000000 -501,-3.0,90.900000,0.000000,0.000000 -502,-3.0,91.800000,0.000000,0.000000 -503,-3.0,92.700000,0.000000,0.000000 -504,-3.0,93.600000,0.000000,0.000000 -505,-3.0,94.500000,0.000000,0.000000 -506,-3.0,95.400000,0.000000,0.000000 -507,-3.0,96.300000,0.000000,0.000000 -508,-3.0,97.200000,0.000000,0.000000 -509,-3.0,98.100000,0.000000,0.000000 -510,-3.0,99.000000,0.000000,0.000000 -511,-3.0,99.900000,0.000000,0.000000 -512,-3.0,100.800000,0.000000,0.000000 -513,-3.0,101.700000,0.000000,0.000000 -514,-3.0,102.600000,0.000000,0.000000 -515,-3.0,103.500000,0.000000,0.000000 -516,-3.0,104.400000,0.000000,0.000000 -517,-3.0,105.300000,0.000000,0.000000 -518,-3.0,106.200000,0.000000,0.000000 -519,-3.0,107.100000,0.000000,0.000000 -520,-3.0,108.000000,0.000000,0.000000 -521,-3.0,108.900000,0.000000,0.000000 -522,-3.0,109.800000,0.000000,0.000000 -523,-3.0,110.700000,0.000000,0.000000 -524,-3.0,111.600000,0.000000,0.000000 -525,-3.0,112.500000,0.000000,0.000000 -526,-3.0,113.400000,0.000000,0.000000 -527,-3.0,114.300000,0.000000,0.000000 -528,-3.0,115.200000,0.000000,0.000000 -529,-3.0,116.100000,0.000000,0.000000 -530,-3.0,117.000000,0.000000,0.000000 -531,-3.0,117.900000,0.000000,0.000000 -532,-3.0,118.800000,0.000000,0.000000 -533,-3.0,119.700000,0.000000,0.000000 -534,-3.0,120.600000,0.000000,0.000000 -535,-3.0,121.500000,0.000000,0.000000 -536,-3.0,122.400000,0.000000,0.000000 -537,-3.0,123.300000,0.000000,0.000000 -538,-3.0,124.200000,0.000000,0.000000 -539,-3.0,125.100000,0.000000,0.000000 -540,-3.0,126.000000,0.000000,0.000000 -541,-3.0,126.900000,0.000000,0.000000 -542,-3.0,127.800000,0.000000,0.000000 -543,-3.0,128.700000,0.000000,0.000000 -544,-3.0,129.600000,0.000000,0.000000 -545,-3.0,130.500000,0.000000,0.000000 -546,-3.0,131.400000,0.000000,0.000000 -547,-3.0,132.300000,0.000000,0.000000 -548,-3.0,133.200000,0.000000,0.000000 -549,-3.0,134.100000,0.000000,0.000000 -550,-3.0,135.000000,0.000000,0.000000 -551,-3.0,135.900000,0.000000,0.000000 -552,-3.0,136.800000,0.000000,0.000000 -553,-3.0,137.700000,0.000000,0.000000 -554,-3.0,138.600000,0.000000,0.000000 -555,-3.0,139.500000,0.000000,0.000000 -556,-3.0,140.400000,0.000000,0.000000 -557,-3.0,141.300000,0.000000,0.000000 -558,-3.0,142.200000,0.000000,0.000000 -559,-3.0,143.100000,0.000000,0.000000 -560,-3.0,144.000000,0.000000,0.000000 -561,-3.0,144.900000,0.000000,0.000000 -562,-3.0,145.800000,0.000000,0.000000 -563,-3.0,146.700000,0.000000,0.000000 -564,-3.0,147.600000,0.000000,0.000000 -565,-3.0,148.500000,0.000000,0.000000 -566,-3.0,149.400000,0.000000,0.000000 -567,-3.0,150.300000,0.000000,0.000000 -568,-3.0,151.200000,0.000000,0.000000 -569,-3.0,152.100000,0.000000,0.000000 -570,-3.0,153.000000,0.000000,0.000000 -571,-3.0,153.900000,0.000000,0.000000 -572,-3.0,154.800000,0.000000,0.000000 -573,-3.0,155.700000,0.000000,0.000000 -574,-3.0,156.600000,0.000000,0.000000 -575,-3.0,157.500000,0.000000,0.000000 -576,-3.0,158.400000,0.000000,0.000000 -577,-3.0,159.300000,0.000000,0.000000 -578,-3.0,160.200000,0.000000,0.000000 -579,-3.0,161.100000,0.000000,0.000000 -580,-3.0,162.000000,0.000000,0.000000 -581,-3.0,162.900000,0.000000,0.000000 -582,-3.0,163.800000,0.000000,0.000000 -583,-3.0,164.700000,0.000000,0.000000 -584,-3.0,165.600000,0.000000,0.000000 -585,-3.0,166.500000,0.000000,0.000000 -586,-3.0,167.400000,0.000000,0.000000 -587,-3.0,168.300000,0.000000,0.000000 -588,-3.0,169.200000,0.000000,0.000000 -589,-3.0,170.100000,0.000000,0.000000 -590,-3.0,171.000000,0.000000,0.000000 -591,-3.0,171.900000,0.000000,0.000000 -592,-3.0,172.800000,0.000000,0.000000 -593,-3.0,173.700000,0.000000,0.000000 -594,-3.0,174.600000,0.000000,0.000000 -595,-3.0,175.500000,0.000000,0.000000 -596,-3.0,176.400000,0.000000,0.000000 -597,-3.0,177.300000,0.000000,0.000000 -598,-3.0,178.200000,0.000000,0.000000 -599,-3.0,179.100000,0.000000,0.000000 -600,-3.0,180.000000,0.000000,0.000000 -601,-3.0,180.900000,0.000000,0.000000 -602,-3.0,181.800000,0.000000,0.000000 -603,-3.0,182.700000,0.000000,0.000000 -604,-3.0,183.600000,0.000000,0.000000 -605,-3.0,184.500000,0.000000,0.000000 -606,-3.0,185.400000,0.000000,0.000000 -607,-3.0,186.300000,0.000000,0.000000 -608,-3.0,187.200000,0.000000,0.000000 -609,-3.0,188.100000,0.000000,0.000000 -610,-3.0,189.000000,0.000000,0.000000 -611,-3.0,189.900000,0.000000,0.000000 -612,-3.0,190.800000,0.000000,0.000000 -613,-3.0,191.700000,0.000000,0.000000 -614,-3.0,192.600000,0.000000,0.000000 -615,-3.0,193.500000,0.000000,0.000000 -616,-3.0,194.400000,0.000000,0.000000 -617,-3.0,195.300000,0.000000,0.000000 -618,-3.0,196.200000,0.000000,0.000000 -619,-3.0,197.100000,0.000000,0.000000 -620,-3.0,198.000000,0.000000,0.000000 -621,-3.0,198.900000,0.000000,0.000000 -622,-3.0,199.800000,0.000000,0.000000 -623,-3.0,200.700000,0.000000,0.000000 -624,-3.0,201.600000,0.000000,0.000000 -625,-3.0,202.500000,0.000000,0.000000 -626,-3.0,203.400000,0.000000,0.000000 -627,-3.0,204.300000,0.000000,0.000000 -628,-3.0,205.200000,0.000000,0.000000 -629,-3.0,206.100000,0.000000,0.000000 -630,-3.0,207.000000,0.000000,0.000000 -631,-3.0,207.900000,0.000000,0.000000 -632,-3.0,208.800000,0.000000,0.000000 -633,-3.0,209.700000,0.000000,0.000000 -634,-3.0,210.600000,0.000000,0.000000 -635,-3.0,211.500000,0.000000,0.000000 -636,-3.0,212.400000,0.000000,0.000000 -637,-3.0,213.300000,0.000000,0.000000 -638,-3.0,214.200000,0.000000,0.000000 -639,-3.0,215.100000,0.000000,0.000000 -640,-3.0,216.000000,0.000000,0.000000 -641,-3.0,216.900000,0.000000,0.000000 -642,-3.0,217.800000,0.000000,0.000000 -643,-3.0,218.700000,0.000000,0.000000 -644,-3.0,219.600000,0.000000,0.000000 -645,-3.0,220.500000,0.000000,0.000000 -646,-3.0,221.400000,0.000000,0.000000 -647,-3.0,222.300000,0.000000,0.000000 -648,-3.0,223.200000,0.000000,0.000000 -649,-3.0,224.100000,0.000000,0.000000 -650,-3.0,225.000000,0.000000,0.000000 -651,-3.0,225.900000,0.000000,0.000000 -652,-3.0,226.800000,0.000000,0.000000 -653,-3.0,227.700000,0.000000,0.000000 -654,-3.0,228.600000,0.000000,0.000000 -655,-3.0,229.500000,0.000000,0.000000 -656,-3.0,230.400000,0.000000,0.000000 -657,-3.0,231.300000,0.000000,0.000000 -658,-3.0,232.200000,0.000000,0.000000 -659,-3.0,233.100000,0.000000,0.000000 -660,-3.0,234.000000,0.000000,0.000000 -661,-3.0,234.900000,0.000000,0.000000 -662,-3.0,235.800000,0.000000,0.000000 -663,-3.0,236.700000,0.000000,0.000000 -664,-3.0,237.600000,0.000000,0.000000 -665,-3.0,238.500000,0.000000,0.000000 -666,-3.0,239.400000,0.000000,0.000000 -667,-3.0,240.300000,0.000000,0.000000 -668,-3.0,241.200000,0.000000,0.000000 -669,-3.0,242.100000,0.000000,0.000000 -670,-3.0,243.000000,0.000000,0.000000 -671,-3.0,243.900000,0.000000,0.000000 -672,-3.0,244.800000,0.000000,0.000000 -673,-3.0,245.700000,0.000000,0.000000 -674,-3.0,246.600000,0.000000,0.000000 -675,-3.0,247.500000,0.000000,0.000000 -676,-3.0,248.400000,0.000000,0.000000 -677,-3.0,249.300000,0.000000,0.000000 -678,-3.0,250.200000,0.000000,0.000000 -679,-3.0,251.100000,0.000000,0.000000 -680,-3.0,252.000000,0.000000,0.000000 -681,-3.0,252.900000,0.000000,0.000000 -682,-3.0,253.800000,0.000000,0.000000 -683,-3.0,254.700000,0.000000,0.000000 -684,-3.0,255.600000,0.000000,0.000000 -685,-3.0,256.500000,0.000000,0.000000 -686,-3.0,257.400000,0.000000,0.000000 -687,-3.0,258.300000,0.000000,0.000000 -688,-3.0,259.200000,0.000000,0.000000 -689,-3.0,260.100000,0.000000,0.000000 -690,-3.0,261.000000,0.000000,0.000000 -691,-3.0,261.900000,0.000000,0.000000 -692,-3.0,262.800000,0.000000,0.000000 -693,-3.0,263.700000,0.000000,0.000000 -694,-3.0,264.600000,0.000000,0.000000 -695,-3.0,265.500000,0.000000,0.000000 -696,-3.0,266.400000,0.000000,0.000000 -697,-3.0,267.300000,0.000000,0.000000 -698,-3.0,268.200000,0.000000,0.000000 -699,-3.0,269.100000,0.000000,0.000000 -700,-3.0,270.000000,0.000000,0.000000 -701,-3.0,270.900000,0.000000,0.000000 -702,-3.0,271.800000,0.000000,0.000000 -703,-3.0,272.700000,0.000000,0.000000 -704,-3.0,273.600000,0.000000,0.000000 -705,-3.0,274.500000,0.000000,0.000000 -706,-3.0,275.400000,0.000000,0.000000 -707,-3.0,276.300000,0.000000,0.000000 -708,-3.0,277.200000,0.000000,0.000000 -709,-3.0,278.100000,0.000000,0.000000 -710,-3.0,279.000000,0.000000,0.000000 -711,-3.0,279.900000,0.000000,0.000000 -712,-3.0,280.800000,0.000000,0.000000 -713,-3.0,281.700000,0.000000,0.000000 -714,-3.0,282.600000,0.000000,0.000000 -715,-3.0,283.500000,0.000000,0.000000 -716,-3.0,284.400000,0.000000,0.000000 -717,-3.0,285.300000,0.000000,0.000000 -718,-3.0,286.200000,0.000000,0.000000 -719,-3.0,287.100000,0.000000,0.000000 -720,-3.0,288.000000,0.000000,0.000000 -721,-3.0,288.900000,0.000000,0.000000 -722,-3.0,289.800000,0.000000,0.000000 -723,-3.0,290.700000,0.000000,0.000000 -724,-3.0,291.600000,0.000000,0.000000 -725,-3.0,292.500000,0.000000,0.000000 -726,-3.0,293.400000,0.000000,0.000000 -727,-3.0,294.300000,0.000000,0.000000 -728,-3.0,295.200000,0.000000,0.000000 -729,-3.0,296.100000,0.000000,0.000000 -730,-3.0,297.000000,0.000000,0.000000 -731,-3.0,297.900000,0.000000,0.000000 -732,-3.0,298.800000,0.000000,0.000000 -733,-3.0,299.700000,0.000000,0.000000 -734,-3.0,300.600000,0.000000,0.000000 -735,-3.0,301.500000,0.000000,0.000000 -736,-3.0,302.400000,0.000000,0.000000 -737,-3.0,303.300000,0.000000,0.000000 -738,-3.0,304.200000,0.000000,0.000000 -739,-3.0,305.100000,0.000000,0.000000 -740,-3.0,306.000000,0.000000,0.000000 -741,-3.0,306.900000,0.000000,0.000000 -742,-3.0,307.800000,0.000000,0.000000 -743,-3.0,308.700000,0.000000,0.000000 -744,-3.0,309.600000,0.000000,0.000000 -745,-3.0,310.500000,0.000000,0.000000 -746,-3.0,311.400000,0.000000,0.000000 -747,-3.0,312.300000,0.000000,0.000000 -748,-3.0,313.200000,0.000000,0.000000 -749,-3.0,314.100000,0.000000,0.000000 -750,-3.0,315.000000,0.000000,0.000000 -751,-3.0,315.900000,0.000000,0.000000 -752,-3.0,316.800000,0.000000,0.000000 -753,-3.0,317.700000,0.000000,0.000000 -754,-3.0,318.600000,0.000000,0.000000 -755,-3.0,319.500000,0.000000,0.000000 -756,-3.0,320.400000,0.000000,0.000000 -757,-3.0,321.300000,0.000000,0.000000 -758,-3.0,322.200000,0.000000,0.000000 -759,-3.0,323.100000,0.000000,0.000000 -760,-3.0,324.000000,0.000000,0.000000 -761,-3.0,324.900000,0.000000,0.000000 -762,-3.0,325.800000,0.000000,0.000000 -763,-3.0,326.700000,0.000000,0.000000 -764,-3.0,327.600000,0.000000,0.000000 -765,-3.0,328.500000,0.000000,0.000000 -766,-3.0,329.400000,0.000000,0.000000 -767,-3.0,330.300000,0.000000,0.000000 -768,-3.0,331.200000,0.000000,0.000000 -769,-3.0,332.100000,0.000000,0.000000 -770,-3.0,333.000000,0.000000,0.000000 -771,-3.0,333.900000,0.000000,0.000000 -772,-3.0,334.800000,0.000000,0.000000 -773,-3.0,335.700000,0.000000,0.000000 -774,-3.0,336.600000,0.000000,0.000000 -775,-3.0,337.500000,0.000000,0.000000 -776,-3.0,338.400000,0.000000,0.000000 -777,-3.0,339.300000,0.000000,0.000000 -778,-3.0,340.200000,0.000000,0.000000 -779,-3.0,341.100000,0.000000,0.000000 -780,-3.0,342.000000,0.000000,0.000000 -781,-3.0,342.900000,0.000000,0.000000 -782,-3.0,343.800000,0.000000,0.000000 -783,-3.0,344.700000,0.000000,0.000000 -784,-3.0,345.600000,0.000000,0.000000 -785,-3.0,346.500000,0.000000,0.000000 -786,-3.0,347.400000,0.000000,0.000000 -787,-3.0,348.300000,0.000000,0.000000 -788,-3.0,349.200000,0.000000,0.000000 -789,-3.0,350.100000,0.000000,0.000000 -790,-3.0,351.000000,0.000000,0.000000 -791,-3.0,351.900000,0.000000,0.000000 -792,-3.0,352.800000,0.000000,0.000000 -793,-3.0,353.700000,0.000000,0.000000 -794,-3.0,354.600000,0.000000,0.000000 -795,-3.0,355.500000,0.000000,0.000000 -796,-3.0,356.400000,0.000000,0.000000 -797,-3.0,357.300000,0.000000,0.000000 -798,-3.0,358.200000,0.000000,0.000000 -799,-3.0,359.100000,0.000000,0.000000 -800,-3.0,0.000000,-360.000000,0.000000 -801,-3.0,0.000000,-359.100000,0.000000 -802,-3.0,0.000000,-358.200000,0.000000 -803,-3.0,0.000000,-357.300000,0.000000 -804,-3.0,0.000000,-356.400000,0.000000 -805,-3.0,0.000000,-355.500000,0.000000 -806,-3.0,0.000000,-354.600000,0.000000 -807,-3.0,0.000000,-353.700000,0.000000 -808,-3.0,0.000000,-352.800000,0.000000 -809,-3.0,0.000000,-351.900000,0.000000 -810,-3.0,0.000000,-351.000000,0.000000 -811,-3.0,0.000000,-350.100000,0.000000 -812,-3.0,0.000000,-349.200000,0.000000 -813,-3.0,0.000000,-348.300000,0.000000 -814,-3.0,0.000000,-347.400000,0.000000 -815,-3.0,0.000000,-346.500000,0.000000 -816,-3.0,0.000000,-345.600000,0.000000 -817,-3.0,0.000000,-344.700000,0.000000 -818,-3.0,0.000000,-343.800000,0.000000 -819,-3.0,0.000000,-342.900000,0.000000 -820,-3.0,0.000000,-342.000000,0.000000 -821,-3.0,0.000000,-341.100000,0.000000 -822,-3.0,0.000000,-340.200000,0.000000 -823,-3.0,0.000000,-339.300000,0.000000 -824,-3.0,0.000000,-338.400000,0.000000 -825,-3.0,0.000000,-337.500000,0.000000 -826,-3.0,0.000000,-336.600000,0.000000 -827,-3.0,0.000000,-335.700000,0.000000 -828,-3.0,0.000000,-334.800000,0.000000 -829,-3.0,0.000000,-333.900000,0.000000 -830,-3.0,0.000000,-333.000000,0.000000 -831,-3.0,0.000000,-332.100000,0.000000 -832,-3.0,0.000000,-331.200000,0.000000 -833,-3.0,0.000000,-330.300000,0.000000 -834,-3.0,0.000000,-329.400000,0.000000 -835,-3.0,0.000000,-328.500000,0.000000 -836,-3.0,0.000000,-327.600000,0.000000 -837,-3.0,0.000000,-326.700000,0.000000 -838,-3.0,0.000000,-325.800000,0.000000 -839,-3.0,0.000000,-324.900000,0.000000 -840,-3.0,0.000000,-324.000000,0.000000 -841,-3.0,0.000000,-323.100000,0.000000 -842,-3.0,0.000000,-322.200000,0.000000 -843,-3.0,0.000000,-321.300000,0.000000 -844,-3.0,0.000000,-320.400000,0.000000 -845,-3.0,0.000000,-319.500000,0.000000 -846,-3.0,0.000000,-318.600000,0.000000 -847,-3.0,0.000000,-317.700000,0.000000 -848,-3.0,0.000000,-316.800000,0.000000 -849,-3.0,0.000000,-315.900000,0.000000 -850,-3.0,0.000000,-315.000000,0.000000 -851,-3.0,0.000000,-314.100000,0.000000 -852,-3.0,0.000000,-313.200000,0.000000 -853,-3.0,0.000000,-312.300000,0.000000 -854,-3.0,0.000000,-311.400000,0.000000 -855,-3.0,0.000000,-310.500000,0.000000 -856,-3.0,0.000000,-309.600000,0.000000 -857,-3.0,0.000000,-308.700000,0.000000 -858,-3.0,0.000000,-307.800000,0.000000 -859,-3.0,0.000000,-306.900000,0.000000 -860,-3.0,0.000000,-306.000000,0.000000 -861,-3.0,0.000000,-305.100000,0.000000 -862,-3.0,0.000000,-304.200000,0.000000 -863,-3.0,0.000000,-303.300000,0.000000 -864,-3.0,0.000000,-302.400000,0.000000 -865,-3.0,0.000000,-301.500000,0.000000 -866,-3.0,0.000000,-300.600000,0.000000 -867,-3.0,0.000000,-299.700000,0.000000 -868,-3.0,0.000000,-298.800000,0.000000 -869,-3.0,0.000000,-297.900000,0.000000 -870,-3.0,0.000000,-297.000000,0.000000 -871,-3.0,0.000000,-296.100000,0.000000 -872,-3.0,0.000000,-295.200000,0.000000 -873,-3.0,0.000000,-294.300000,0.000000 -874,-3.0,0.000000,-293.400000,0.000000 -875,-3.0,0.000000,-292.500000,0.000000 -876,-3.0,0.000000,-291.600000,0.000000 -877,-3.0,0.000000,-290.700000,0.000000 -878,-3.0,0.000000,-289.800000,0.000000 -879,-3.0,0.000000,-288.900000,0.000000 -880,-3.0,0.000000,-288.000000,0.000000 -881,-3.0,0.000000,-287.100000,0.000000 -882,-3.0,0.000000,-286.200000,0.000000 -883,-3.0,0.000000,-285.300000,0.000000 -884,-3.0,0.000000,-284.400000,0.000000 -885,-3.0,0.000000,-283.500000,0.000000 -886,-3.0,0.000000,-282.600000,0.000000 -887,-3.0,0.000000,-281.700000,0.000000 -888,-3.0,0.000000,-280.800000,0.000000 -889,-3.0,0.000000,-279.900000,0.000000 -890,-3.0,0.000000,-279.000000,0.000000 -891,-3.0,0.000000,-278.100000,0.000000 -892,-3.0,0.000000,-277.200000,0.000000 -893,-3.0,0.000000,-276.300000,0.000000 -894,-3.0,0.000000,-275.400000,0.000000 -895,-3.0,0.000000,-274.500000,0.000000 -896,-3.0,0.000000,-273.600000,0.000000 -897,-3.0,0.000000,-272.700000,0.000000 -898,-3.0,0.000000,-271.800000,0.000000 -899,-3.0,0.000000,-270.900000,0.000000 -900,-3.0,0.000000,-270.000000,0.000000 -901,-3.0,0.000000,-269.100000,0.000000 -902,-3.0,0.000000,-268.200000,0.000000 -903,-3.0,0.000000,-267.300000,0.000000 -904,-3.0,0.000000,-266.400000,0.000000 -905,-3.0,0.000000,-265.500000,0.000000 -906,-3.0,0.000000,-264.600000,0.000000 -907,-3.0,0.000000,-263.700000,0.000000 -908,-3.0,0.000000,-262.800000,0.000000 -909,-3.0,0.000000,-261.900000,0.000000 -910,-3.0,0.000000,-261.000000,0.000000 -911,-3.0,0.000000,-260.100000,0.000000 -912,-3.0,0.000000,-259.200000,0.000000 -913,-3.0,0.000000,-258.300000,0.000000 -914,-3.0,0.000000,-257.400000,0.000000 -915,-3.0,0.000000,-256.500000,0.000000 -916,-3.0,0.000000,-255.600000,0.000000 -917,-3.0,0.000000,-254.700000,0.000000 -918,-3.0,0.000000,-253.800000,0.000000 -919,-3.0,0.000000,-252.900000,0.000000 -920,-3.0,0.000000,-252.000000,0.000000 -921,-3.0,0.000000,-251.100000,0.000000 -922,-3.0,0.000000,-250.200000,0.000000 -923,-3.0,0.000000,-249.300000,0.000000 -924,-3.0,0.000000,-248.400000,0.000000 -925,-3.0,0.000000,-247.500000,0.000000 -926,-3.0,0.000000,-246.600000,0.000000 -927,-3.0,0.000000,-245.700000,0.000000 -928,-3.0,0.000000,-244.800000,0.000000 -929,-3.0,0.000000,-243.900000,0.000000 -930,-3.0,0.000000,-243.000000,0.000000 -931,-3.0,0.000000,-242.100000,0.000000 -932,-3.0,0.000000,-241.200000,0.000000 -933,-3.0,0.000000,-240.300000,0.000000 -934,-3.0,0.000000,-239.400000,0.000000 -935,-3.0,0.000000,-238.500000,0.000000 -936,-3.0,0.000000,-237.600000,0.000000 -937,-3.0,0.000000,-236.700000,0.000000 -938,-3.0,0.000000,-235.800000,0.000000 -939,-3.0,0.000000,-234.900000,0.000000 -940,-3.0,0.000000,-234.000000,0.000000 -941,-3.0,0.000000,-233.100000,0.000000 -942,-3.0,0.000000,-232.200000,0.000000 -943,-3.0,0.000000,-231.300000,0.000000 -944,-3.0,0.000000,-230.400000,0.000000 -945,-3.0,0.000000,-229.500000,0.000000 -946,-3.0,0.000000,-228.600000,0.000000 -947,-3.0,0.000000,-227.700000,0.000000 -948,-3.0,0.000000,-226.800000,0.000000 -949,-3.0,0.000000,-225.900000,0.000000 -950,-3.0,0.000000,-225.000000,0.000000 -951,-3.0,0.000000,-224.100000,0.000000 -952,-3.0,0.000000,-223.200000,0.000000 -953,-3.0,0.000000,-222.300000,0.000000 -954,-3.0,0.000000,-221.400000,0.000000 -955,-3.0,0.000000,-220.500000,0.000000 -956,-3.0,0.000000,-219.600000,0.000000 -957,-3.0,0.000000,-218.700000,0.000000 -958,-3.0,0.000000,-217.800000,0.000000 -959,-3.0,0.000000,-216.900000,0.000000 -960,-3.0,0.000000,-216.000000,0.000000 -961,-3.0,0.000000,-215.100000,0.000000 -962,-3.0,0.000000,-214.200000,0.000000 -963,-3.0,0.000000,-213.300000,0.000000 -964,-3.0,0.000000,-212.400000,0.000000 -965,-3.0,0.000000,-211.500000,0.000000 -966,-3.0,0.000000,-210.600000,0.000000 -967,-3.0,0.000000,-209.700000,0.000000 -968,-3.0,0.000000,-208.800000,0.000000 -969,-3.0,0.000000,-207.900000,0.000000 -970,-3.0,0.000000,-207.000000,0.000000 -971,-3.0,0.000000,-206.100000,0.000000 -972,-3.0,0.000000,-205.200000,0.000000 -973,-3.0,0.000000,-204.300000,0.000000 -974,-3.0,0.000000,-203.400000,0.000000 -975,-3.0,0.000000,-202.500000,0.000000 -976,-3.0,0.000000,-201.600000,0.000000 -977,-3.0,0.000000,-200.700000,0.000000 -978,-3.0,0.000000,-199.800000,0.000000 -979,-3.0,0.000000,-198.900000,0.000000 -980,-3.0,0.000000,-198.000000,0.000000 -981,-3.0,0.000000,-197.100000,0.000000 -982,-3.0,0.000000,-196.200000,0.000000 -983,-3.0,0.000000,-195.300000,0.000000 -984,-3.0,0.000000,-194.400000,0.000000 -985,-3.0,0.000000,-193.500000,0.000000 -986,-3.0,0.000000,-192.600000,0.000000 -987,-3.0,0.000000,-191.700000,0.000000 -988,-3.0,0.000000,-190.800000,0.000000 -989,-3.0,0.000000,-189.900000,0.000000 -990,-3.0,0.000000,-189.000000,0.000000 -991,-3.0,0.000000,-188.100000,0.000000 -992,-3.0,0.000000,-187.200000,0.000000 -993,-3.0,0.000000,-186.300000,0.000000 -994,-3.0,0.000000,-185.400000,0.000000 -995,-3.0,0.000000,-184.500000,0.000000 -996,-3.0,0.000000,-183.600000,0.000000 -997,-3.0,0.000000,-182.700000,0.000000 -998,-3.0,0.000000,-181.800000,0.000000 -999,-3.0,0.000000,-180.900000,0.000000 -1000,-3.0,0.000000,-180.000000,0.000000 -1001,-3.0,0.000000,-179.100000,0.000000 -1002,-3.0,0.000000,-178.200000,0.000000 -1003,-3.0,0.000000,-177.300000,0.000000 -1004,-3.0,0.000000,-176.400000,0.000000 -1005,-3.0,0.000000,-175.500000,0.000000 -1006,-3.0,0.000000,-174.600000,0.000000 -1007,-3.0,0.000000,-173.700000,0.000000 -1008,-3.0,0.000000,-172.800000,0.000000 -1009,-3.0,0.000000,-171.900000,0.000000 -1010,-3.0,0.000000,-171.000000,0.000000 -1011,-3.0,0.000000,-170.100000,0.000000 -1012,-3.0,0.000000,-169.200000,0.000000 -1013,-3.0,0.000000,-168.300000,0.000000 -1014,-3.0,0.000000,-167.400000,0.000000 -1015,-3.0,0.000000,-166.500000,0.000000 -1016,-3.0,0.000000,-165.600000,0.000000 -1017,-3.0,0.000000,-164.700000,0.000000 -1018,-3.0,0.000000,-163.800000,0.000000 -1019,-3.0,0.000000,-162.900000,0.000000 -1020,-3.0,0.000000,-162.000000,0.000000 -1021,-3.0,0.000000,-161.100000,0.000000 -1022,-3.0,0.000000,-160.200000,0.000000 -1023,-3.0,0.000000,-159.300000,0.000000 -1024,-3.0,0.000000,-158.400000,0.000000 -1025,-3.0,0.000000,-157.500000,0.000000 -1026,-3.0,0.000000,-156.600000,0.000000 -1027,-3.0,0.000000,-155.700000,0.000000 -1028,-3.0,0.000000,-154.800000,0.000000 -1029,-3.0,0.000000,-153.900000,0.000000 -1030,-3.0,0.000000,-153.000000,0.000000 -1031,-3.0,0.000000,-152.100000,0.000000 -1032,-3.0,0.000000,-151.200000,0.000000 -1033,-3.0,0.000000,-150.300000,0.000000 -1034,-3.0,0.000000,-149.400000,0.000000 -1035,-3.0,0.000000,-148.500000,0.000000 -1036,-3.0,0.000000,-147.600000,0.000000 -1037,-3.0,0.000000,-146.700000,0.000000 -1038,-3.0,0.000000,-145.800000,0.000000 -1039,-3.0,0.000000,-144.900000,0.000000 -1040,-3.0,0.000000,-144.000000,0.000000 -1041,-3.0,0.000000,-143.100000,0.000000 -1042,-3.0,0.000000,-142.200000,0.000000 -1043,-3.0,0.000000,-141.300000,0.000000 -1044,-3.0,0.000000,-140.400000,0.000000 -1045,-3.0,0.000000,-139.500000,0.000000 -1046,-3.0,0.000000,-138.600000,0.000000 -1047,-3.0,0.000000,-137.700000,0.000000 -1048,-3.0,0.000000,-136.800000,0.000000 -1049,-3.0,0.000000,-135.900000,0.000000 -1050,-3.0,0.000000,-135.000000,0.000000 -1051,-3.0,0.000000,-134.100000,0.000000 -1052,-3.0,0.000000,-133.200000,0.000000 -1053,-3.0,0.000000,-132.300000,0.000000 -1054,-3.0,0.000000,-131.400000,0.000000 -1055,-3.0,0.000000,-130.500000,0.000000 -1056,-3.0,0.000000,-129.600000,0.000000 -1057,-3.0,0.000000,-128.700000,0.000000 -1058,-3.0,0.000000,-127.800000,0.000000 -1059,-3.0,0.000000,-126.900000,0.000000 -1060,-3.0,0.000000,-126.000000,0.000000 -1061,-3.0,0.000000,-125.100000,0.000000 -1062,-3.0,0.000000,-124.200000,0.000000 -1063,-3.0,0.000000,-123.300000,0.000000 -1064,-3.0,0.000000,-122.400000,0.000000 -1065,-3.0,0.000000,-121.500000,0.000000 -1066,-3.0,0.000000,-120.600000,0.000000 -1067,-3.0,0.000000,-119.700000,0.000000 -1068,-3.0,0.000000,-118.800000,0.000000 -1069,-3.0,0.000000,-117.900000,0.000000 -1070,-3.0,0.000000,-117.000000,0.000000 -1071,-3.0,0.000000,-116.100000,0.000000 -1072,-3.0,0.000000,-115.200000,0.000000 -1073,-3.0,0.000000,-114.300000,0.000000 -1074,-3.0,0.000000,-113.400000,0.000000 -1075,-3.0,0.000000,-112.500000,0.000000 -1076,-3.0,0.000000,-111.600000,0.000000 -1077,-3.0,0.000000,-110.700000,0.000000 -1078,-3.0,0.000000,-109.800000,0.000000 -1079,-3.0,0.000000,-108.900000,0.000000 -1080,-3.0,0.000000,-108.000000,0.000000 -1081,-3.0,0.000000,-107.100000,0.000000 -1082,-3.0,0.000000,-106.200000,0.000000 -1083,-3.0,0.000000,-105.300000,0.000000 -1084,-3.0,0.000000,-104.400000,0.000000 -1085,-3.0,0.000000,-103.500000,0.000000 -1086,-3.0,0.000000,-102.600000,0.000000 -1087,-3.0,0.000000,-101.700000,0.000000 -1088,-3.0,0.000000,-100.800000,0.000000 -1089,-3.0,0.000000,-99.900000,0.000000 -1090,-3.0,0.000000,-99.000000,0.000000 -1091,-3.0,0.000000,-98.100000,0.000000 -1092,-3.0,0.000000,-97.200000,0.000000 -1093,-3.0,0.000000,-96.300000,0.000000 -1094,-3.0,0.000000,-95.400000,0.000000 -1095,-3.0,0.000000,-94.500000,0.000000 -1096,-3.0,0.000000,-93.600000,0.000000 -1097,-3.0,0.000000,-92.700000,0.000000 -1098,-3.0,0.000000,-91.800000,0.000000 -1099,-3.0,0.000000,-90.900000,0.000000 -1100,-3.0,0.000000,-90.000000,0.000000 -1101,-3.0,0.000000,-89.100000,0.000000 -1102,-3.0,0.000000,-88.200000,0.000000 -1103,-3.0,0.000000,-87.300000,0.000000 -1104,-3.0,0.000000,-86.400000,0.000000 -1105,-3.0,0.000000,-85.500000,0.000000 -1106,-3.0,0.000000,-84.600000,0.000000 -1107,-3.0,0.000000,-83.700000,0.000000 -1108,-3.0,0.000000,-82.800000,0.000000 -1109,-3.0,0.000000,-81.900000,0.000000 -1110,-3.0,0.000000,-81.000000,0.000000 -1111,-3.0,0.000000,-80.100000,0.000000 -1112,-3.0,0.000000,-79.200000,0.000000 -1113,-3.0,0.000000,-78.300000,0.000000 -1114,-3.0,0.000000,-77.400000,0.000000 -1115,-3.0,0.000000,-76.500000,0.000000 -1116,-3.0,0.000000,-75.600000,0.000000 -1117,-3.0,0.000000,-74.700000,0.000000 -1118,-3.0,0.000000,-73.800000,0.000000 -1119,-3.0,0.000000,-72.900000,0.000000 -1120,-3.0,0.000000,-72.000000,0.000000 -1121,-3.0,0.000000,-71.100000,0.000000 -1122,-3.0,0.000000,-70.200000,0.000000 -1123,-3.0,0.000000,-69.300000,0.000000 -1124,-3.0,0.000000,-68.400000,0.000000 -1125,-3.0,0.000000,-67.500000,0.000000 -1126,-3.0,0.000000,-66.600000,0.000000 -1127,-3.0,0.000000,-65.700000,0.000000 -1128,-3.0,0.000000,-64.800000,0.000000 -1129,-3.0,0.000000,-63.900000,0.000000 -1130,-3.0,0.000000,-63.000000,0.000000 -1131,-3.0,0.000000,-62.100000,0.000000 -1132,-3.0,0.000000,-61.200000,0.000000 -1133,-3.0,0.000000,-60.300000,0.000000 -1134,-3.0,0.000000,-59.400000,0.000000 -1135,-3.0,0.000000,-58.500000,0.000000 -1136,-3.0,0.000000,-57.600000,0.000000 -1137,-3.0,0.000000,-56.700000,0.000000 -1138,-3.0,0.000000,-55.800000,0.000000 -1139,-3.0,0.000000,-54.900000,0.000000 -1140,-3.0,0.000000,-54.000000,0.000000 -1141,-3.0,0.000000,-53.100000,0.000000 -1142,-3.0,0.000000,-52.200000,0.000000 -1143,-3.0,0.000000,-51.300000,0.000000 -1144,-3.0,0.000000,-50.400000,0.000000 -1145,-3.0,0.000000,-49.500000,0.000000 -1146,-3.0,0.000000,-48.600000,0.000000 -1147,-3.0,0.000000,-47.700000,0.000000 -1148,-3.0,0.000000,-46.800000,0.000000 -1149,-3.0,0.000000,-45.900000,0.000000 -1150,-3.0,0.000000,-45.000000,0.000000 -1151,-3.0,0.000000,-44.100000,0.000000 -1152,-3.0,0.000000,-43.200000,0.000000 -1153,-3.0,0.000000,-42.300000,0.000000 -1154,-3.0,0.000000,-41.400000,0.000000 -1155,-3.0,0.000000,-40.500000,0.000000 -1156,-3.0,0.000000,-39.600000,0.000000 -1157,-3.0,0.000000,-38.700000,0.000000 -1158,-3.0,0.000000,-37.800000,0.000000 -1159,-3.0,0.000000,-36.900000,0.000000 -1160,-3.0,0.000000,-36.000000,0.000000 -1161,-3.0,0.000000,-35.100000,0.000000 -1162,-3.0,0.000000,-34.200000,0.000000 -1163,-3.0,0.000000,-33.300000,0.000000 -1164,-3.0,0.000000,-32.400000,0.000000 -1165,-3.0,0.000000,-31.500000,0.000000 -1166,-3.0,0.000000,-30.600000,0.000000 -1167,-3.0,0.000000,-29.700000,0.000000 -1168,-3.0,0.000000,-28.800000,0.000000 -1169,-3.0,0.000000,-27.900000,0.000000 -1170,-3.0,0.000000,-27.000000,0.000000 -1171,-3.0,0.000000,-26.100000,0.000000 -1172,-3.0,0.000000,-25.200000,0.000000 -1173,-3.0,0.000000,-24.300000,0.000000 -1174,-3.0,0.000000,-23.400000,0.000000 -1175,-3.0,0.000000,-22.500000,0.000000 -1176,-3.0,0.000000,-21.600000,0.000000 -1177,-3.0,0.000000,-20.700000,0.000000 -1178,-3.0,0.000000,-19.800000,0.000000 -1179,-3.0,0.000000,-18.900000,0.000000 -1180,-3.0,0.000000,-18.000000,0.000000 -1181,-3.0,0.000000,-17.100000,0.000000 -1182,-3.0,0.000000,-16.200000,0.000000 -1183,-3.0,0.000000,-15.300000,0.000000 -1184,-3.0,0.000000,-14.400000,0.000000 -1185,-3.0,0.000000,-13.500000,0.000000 -1186,-3.0,0.000000,-12.600000,0.000000 -1187,-3.0,0.000000,-11.700000,0.000000 -1188,-3.0,0.000000,-10.800000,0.000000 -1189,-3.0,0.000000,-9.900000,0.000000 -1190,-3.0,0.000000,-9.000000,0.000000 -1191,-3.0,0.000000,-8.100000,0.000000 -1192,-3.0,0.000000,-7.200000,0.000000 -1193,-3.0,0.000000,-6.300000,0.000000 -1194,-3.0,0.000000,-5.400000,0.000000 -1195,-3.0,0.000000,-4.500000,0.000000 -1196,-3.0,0.000000,-3.600000,0.000000 -1197,-3.0,0.000000,-2.700000,0.000000 -1198,-3.0,0.000000,-1.800000,0.000000 -1199,-3.0,0.000000,-0.900000,0.000000 -1200,-3.0,0.000000,0.000000,0.000000 -1201,-3.0,0.000000,0.900000,0.000000 -1202,-3.0,0.000000,1.800000,0.000000 -1203,-3.0,0.000000,2.700000,0.000000 -1204,-3.0,0.000000,3.600000,0.000000 -1205,-3.0,0.000000,4.500000,0.000000 -1206,-3.0,0.000000,5.400000,0.000000 -1207,-3.0,0.000000,6.300000,0.000000 -1208,-3.0,0.000000,7.200000,0.000000 -1209,-3.0,0.000000,8.100000,0.000000 -1210,-3.0,0.000000,9.000000,0.000000 -1211,-3.0,0.000000,9.900000,0.000000 -1212,-3.0,0.000000,10.800000,0.000000 -1213,-3.0,0.000000,11.700000,0.000000 -1214,-3.0,0.000000,12.600000,0.000000 -1215,-3.0,0.000000,13.500000,0.000000 -1216,-3.0,0.000000,14.400000,0.000000 -1217,-3.0,0.000000,15.300000,0.000000 -1218,-3.0,0.000000,16.200000,0.000000 -1219,-3.0,0.000000,17.100000,0.000000 -1220,-3.0,0.000000,18.000000,0.000000 -1221,-3.0,0.000000,18.900000,0.000000 -1222,-3.0,0.000000,19.800000,0.000000 -1223,-3.0,0.000000,20.700000,0.000000 -1224,-3.0,0.000000,21.600000,0.000000 -1225,-3.0,0.000000,22.500000,0.000000 -1226,-3.0,0.000000,23.400000,0.000000 -1227,-3.0,0.000000,24.300000,0.000000 -1228,-3.0,0.000000,25.200000,0.000000 -1229,-3.0,0.000000,26.100000,0.000000 -1230,-3.0,0.000000,27.000000,0.000000 -1231,-3.0,0.000000,27.900000,0.000000 -1232,-3.0,0.000000,28.800000,0.000000 -1233,-3.0,0.000000,29.700000,0.000000 -1234,-3.0,0.000000,30.600000,0.000000 -1235,-3.0,0.000000,31.500000,0.000000 -1236,-3.0,0.000000,32.400000,0.000000 -1237,-3.0,0.000000,33.300000,0.000000 -1238,-3.0,0.000000,34.200000,0.000000 -1239,-3.0,0.000000,35.100000,0.000000 -1240,-3.0,0.000000,36.000000,0.000000 -1241,-3.0,0.000000,36.900000,0.000000 -1242,-3.0,0.000000,37.800000,0.000000 -1243,-3.0,0.000000,38.700000,0.000000 -1244,-3.0,0.000000,39.600000,0.000000 -1245,-3.0,0.000000,40.500000,0.000000 -1246,-3.0,0.000000,41.400000,0.000000 -1247,-3.0,0.000000,42.300000,0.000000 -1248,-3.0,0.000000,43.200000,0.000000 -1249,-3.0,0.000000,44.100000,0.000000 -1250,-3.0,0.000000,45.000000,0.000000 -1251,-3.0,0.000000,45.900000,0.000000 -1252,-3.0,0.000000,46.800000,0.000000 -1253,-3.0,0.000000,47.700000,0.000000 -1254,-3.0,0.000000,48.600000,0.000000 -1255,-3.0,0.000000,49.500000,0.000000 -1256,-3.0,0.000000,50.400000,0.000000 -1257,-3.0,0.000000,51.300000,0.000000 -1258,-3.0,0.000000,52.200000,0.000000 -1259,-3.0,0.000000,53.100000,0.000000 -1260,-3.0,0.000000,54.000000,0.000000 -1261,-3.0,0.000000,54.900000,0.000000 -1262,-3.0,0.000000,55.800000,0.000000 -1263,-3.0,0.000000,56.700000,0.000000 -1264,-3.0,0.000000,57.600000,0.000000 -1265,-3.0,0.000000,58.500000,0.000000 -1266,-3.0,0.000000,59.400000,0.000000 -1267,-3.0,0.000000,60.300000,0.000000 -1268,-3.0,0.000000,61.200000,0.000000 -1269,-3.0,0.000000,62.100000,0.000000 -1270,-3.0,0.000000,63.000000,0.000000 -1271,-3.0,0.000000,63.900000,0.000000 -1272,-3.0,0.000000,64.800000,0.000000 -1273,-3.0,0.000000,65.700000,0.000000 -1274,-3.0,0.000000,66.600000,0.000000 -1275,-3.0,0.000000,67.500000,0.000000 -1276,-3.0,0.000000,68.400000,0.000000 -1277,-3.0,0.000000,69.300000,0.000000 -1278,-3.0,0.000000,70.200000,0.000000 -1279,-3.0,0.000000,71.100000,0.000000 -1280,-3.0,0.000000,72.000000,0.000000 -1281,-3.0,0.000000,72.900000,0.000000 -1282,-3.0,0.000000,73.800000,0.000000 -1283,-3.0,0.000000,74.700000,0.000000 -1284,-3.0,0.000000,75.600000,0.000000 -1285,-3.0,0.000000,76.500000,0.000000 -1286,-3.0,0.000000,77.400000,0.000000 -1287,-3.0,0.000000,78.300000,0.000000 -1288,-3.0,0.000000,79.200000,0.000000 -1289,-3.0,0.000000,80.100000,0.000000 -1290,-3.0,0.000000,81.000000,0.000000 -1291,-3.0,0.000000,81.900000,0.000000 -1292,-3.0,0.000000,82.800000,0.000000 -1293,-3.0,0.000000,83.700000,0.000000 -1294,-3.0,0.000000,84.600000,0.000000 -1295,-3.0,0.000000,85.500000,0.000000 -1296,-3.0,0.000000,86.400000,0.000000 -1297,-3.0,0.000000,87.300000,0.000000 -1298,-3.0,0.000000,88.200000,0.000000 -1299,-3.0,0.000000,89.100000,0.000000 -1300,-3.0,0.000000,90.000000,0.000000 -1301,-3.0,0.000000,90.900000,0.000000 -1302,-3.0,0.000000,91.800000,0.000000 -1303,-3.0,0.000000,92.700000,0.000000 -1304,-3.0,0.000000,93.600000,0.000000 -1305,-3.0,0.000000,94.500000,0.000000 -1306,-3.0,0.000000,95.400000,0.000000 -1307,-3.0,0.000000,96.300000,0.000000 -1308,-3.0,0.000000,97.200000,0.000000 -1309,-3.0,0.000000,98.100000,0.000000 -1310,-3.0,0.000000,99.000000,0.000000 -1311,-3.0,0.000000,99.900000,0.000000 -1312,-3.0,0.000000,100.800000,0.000000 -1313,-3.0,0.000000,101.700000,0.000000 -1314,-3.0,0.000000,102.600000,0.000000 -1315,-3.0,0.000000,103.500000,0.000000 -1316,-3.0,0.000000,104.400000,0.000000 -1317,-3.0,0.000000,105.300000,0.000000 -1318,-3.0,0.000000,106.200000,0.000000 -1319,-3.0,0.000000,107.100000,0.000000 -1320,-3.0,0.000000,108.000000,0.000000 -1321,-3.0,0.000000,108.900000,0.000000 -1322,-3.0,0.000000,109.800000,0.000000 -1323,-3.0,0.000000,110.700000,0.000000 -1324,-3.0,0.000000,111.600000,0.000000 -1325,-3.0,0.000000,112.500000,0.000000 -1326,-3.0,0.000000,113.400000,0.000000 -1327,-3.0,0.000000,114.300000,0.000000 -1328,-3.0,0.000000,115.200000,0.000000 -1329,-3.0,0.000000,116.100000,0.000000 -1330,-3.0,0.000000,117.000000,0.000000 -1331,-3.0,0.000000,117.900000,0.000000 -1332,-3.0,0.000000,118.800000,0.000000 -1333,-3.0,0.000000,119.700000,0.000000 -1334,-3.0,0.000000,120.600000,0.000000 -1335,-3.0,0.000000,121.500000,0.000000 -1336,-3.0,0.000000,122.400000,0.000000 -1337,-3.0,0.000000,123.300000,0.000000 -1338,-3.0,0.000000,124.200000,0.000000 -1339,-3.0,0.000000,125.100000,0.000000 -1340,-3.0,0.000000,126.000000,0.000000 -1341,-3.0,0.000000,126.900000,0.000000 -1342,-3.0,0.000000,127.800000,0.000000 -1343,-3.0,0.000000,128.700000,0.000000 -1344,-3.0,0.000000,129.600000,0.000000 -1345,-3.0,0.000000,130.500000,0.000000 -1346,-3.0,0.000000,131.400000,0.000000 -1347,-3.0,0.000000,132.300000,0.000000 -1348,-3.0,0.000000,133.200000,0.000000 -1349,-3.0,0.000000,134.100000,0.000000 -1350,-3.0,0.000000,135.000000,0.000000 -1351,-3.0,0.000000,135.900000,0.000000 -1352,-3.0,0.000000,136.800000,0.000000 -1353,-3.0,0.000000,137.700000,0.000000 -1354,-3.0,0.000000,138.600000,0.000000 -1355,-3.0,0.000000,139.500000,0.000000 -1356,-3.0,0.000000,140.400000,0.000000 -1357,-3.0,0.000000,141.300000,0.000000 -1358,-3.0,0.000000,142.200000,0.000000 -1359,-3.0,0.000000,143.100000,0.000000 -1360,-3.0,0.000000,144.000000,0.000000 -1361,-3.0,0.000000,144.900000,0.000000 -1362,-3.0,0.000000,145.800000,0.000000 -1363,-3.0,0.000000,146.700000,0.000000 -1364,-3.0,0.000000,147.600000,0.000000 -1365,-3.0,0.000000,148.500000,0.000000 -1366,-3.0,0.000000,149.400000,0.000000 -1367,-3.0,0.000000,150.300000,0.000000 -1368,-3.0,0.000000,151.200000,0.000000 -1369,-3.0,0.000000,152.100000,0.000000 -1370,-3.0,0.000000,153.000000,0.000000 -1371,-3.0,0.000000,153.900000,0.000000 -1372,-3.0,0.000000,154.800000,0.000000 -1373,-3.0,0.000000,155.700000,0.000000 -1374,-3.0,0.000000,156.600000,0.000000 -1375,-3.0,0.000000,157.500000,0.000000 -1376,-3.0,0.000000,158.400000,0.000000 -1377,-3.0,0.000000,159.300000,0.000000 -1378,-3.0,0.000000,160.200000,0.000000 -1379,-3.0,0.000000,161.100000,0.000000 -1380,-3.0,0.000000,162.000000,0.000000 -1381,-3.0,0.000000,162.900000,0.000000 -1382,-3.0,0.000000,163.800000,0.000000 -1383,-3.0,0.000000,164.700000,0.000000 -1384,-3.0,0.000000,165.600000,0.000000 -1385,-3.0,0.000000,166.500000,0.000000 -1386,-3.0,0.000000,167.400000,0.000000 -1387,-3.0,0.000000,168.300000,0.000000 -1388,-3.0,0.000000,169.200000,0.000000 -1389,-3.0,0.000000,170.100000,0.000000 -1390,-3.0,0.000000,171.000000,0.000000 -1391,-3.0,0.000000,171.900000,0.000000 -1392,-3.0,0.000000,172.800000,0.000000 -1393,-3.0,0.000000,173.700000,0.000000 -1394,-3.0,0.000000,174.600000,0.000000 -1395,-3.0,0.000000,175.500000,0.000000 -1396,-3.0,0.000000,176.400000,0.000000 -1397,-3.0,0.000000,177.300000,0.000000 -1398,-3.0,0.000000,178.200000,0.000000 -1399,-3.0,0.000000,179.100000,0.000000 -1400,-3.0,0.000000,180.000000,0.000000 -1401,-3.0,0.000000,180.900000,0.000000 -1402,-3.0,0.000000,181.800000,0.000000 -1403,-3.0,0.000000,182.700000,0.000000 -1404,-3.0,0.000000,183.600000,0.000000 -1405,-3.0,0.000000,184.500000,0.000000 -1406,-3.0,0.000000,185.400000,0.000000 -1407,-3.0,0.000000,186.300000,0.000000 -1408,-3.0,0.000000,187.200000,0.000000 -1409,-3.0,0.000000,188.100000,0.000000 -1410,-3.0,0.000000,189.000000,0.000000 -1411,-3.0,0.000000,189.900000,0.000000 -1412,-3.0,0.000000,190.800000,0.000000 -1413,-3.0,0.000000,191.700000,0.000000 -1414,-3.0,0.000000,192.600000,0.000000 -1415,-3.0,0.000000,193.500000,0.000000 -1416,-3.0,0.000000,194.400000,0.000000 -1417,-3.0,0.000000,195.300000,0.000000 -1418,-3.0,0.000000,196.200000,0.000000 -1419,-3.0,0.000000,197.100000,0.000000 -1420,-3.0,0.000000,198.000000,0.000000 -1421,-3.0,0.000000,198.900000,0.000000 -1422,-3.0,0.000000,199.800000,0.000000 -1423,-3.0,0.000000,200.700000,0.000000 -1424,-3.0,0.000000,201.600000,0.000000 -1425,-3.0,0.000000,202.500000,0.000000 -1426,-3.0,0.000000,203.400000,0.000000 -1427,-3.0,0.000000,204.300000,0.000000 -1428,-3.0,0.000000,205.200000,0.000000 -1429,-3.0,0.000000,206.100000,0.000000 -1430,-3.0,0.000000,207.000000,0.000000 -1431,-3.0,0.000000,207.900000,0.000000 -1432,-3.0,0.000000,208.800000,0.000000 -1433,-3.0,0.000000,209.700000,0.000000 -1434,-3.0,0.000000,210.600000,0.000000 -1435,-3.0,0.000000,211.500000,0.000000 -1436,-3.0,0.000000,212.400000,0.000000 -1437,-3.0,0.000000,213.300000,0.000000 -1438,-3.0,0.000000,214.200000,0.000000 -1439,-3.0,0.000000,215.100000,0.000000 -1440,-3.0,0.000000,216.000000,0.000000 -1441,-3.0,0.000000,216.900000,0.000000 -1442,-3.0,0.000000,217.800000,0.000000 -1443,-3.0,0.000000,218.700000,0.000000 -1444,-3.0,0.000000,219.600000,0.000000 -1445,-3.0,0.000000,220.500000,0.000000 -1446,-3.0,0.000000,221.400000,0.000000 -1447,-3.0,0.000000,222.300000,0.000000 -1448,-3.0,0.000000,223.200000,0.000000 -1449,-3.0,0.000000,224.100000,0.000000 -1450,-3.0,0.000000,225.000000,0.000000 -1451,-3.0,0.000000,225.900000,0.000000 -1452,-3.0,0.000000,226.800000,0.000000 -1453,-3.0,0.000000,227.700000,0.000000 -1454,-3.0,0.000000,228.600000,0.000000 -1455,-3.0,0.000000,229.500000,0.000000 -1456,-3.0,0.000000,230.400000,0.000000 -1457,-3.0,0.000000,231.300000,0.000000 -1458,-3.0,0.000000,232.200000,0.000000 -1459,-3.0,0.000000,233.100000,0.000000 -1460,-3.0,0.000000,234.000000,0.000000 -1461,-3.0,0.000000,234.900000,0.000000 -1462,-3.0,0.000000,235.800000,0.000000 -1463,-3.0,0.000000,236.700000,0.000000 -1464,-3.0,0.000000,237.600000,0.000000 -1465,-3.0,0.000000,238.500000,0.000000 -1466,-3.0,0.000000,239.400000,0.000000 -1467,-3.0,0.000000,240.300000,0.000000 -1468,-3.0,0.000000,241.200000,0.000000 -1469,-3.0,0.000000,242.100000,0.000000 -1470,-3.0,0.000000,243.000000,0.000000 -1471,-3.0,0.000000,243.900000,0.000000 -1472,-3.0,0.000000,244.800000,0.000000 -1473,-3.0,0.000000,245.700000,0.000000 -1474,-3.0,0.000000,246.600000,0.000000 -1475,-3.0,0.000000,247.500000,0.000000 -1476,-3.0,0.000000,248.400000,0.000000 -1477,-3.0,0.000000,249.300000,0.000000 -1478,-3.0,0.000000,250.200000,0.000000 -1479,-3.0,0.000000,251.100000,0.000000 -1480,-3.0,0.000000,252.000000,0.000000 -1481,-3.0,0.000000,252.900000,0.000000 -1482,-3.0,0.000000,253.800000,0.000000 -1483,-3.0,0.000000,254.700000,0.000000 -1484,-3.0,0.000000,255.600000,0.000000 -1485,-3.0,0.000000,256.500000,0.000000 -1486,-3.0,0.000000,257.400000,0.000000 -1487,-3.0,0.000000,258.300000,0.000000 -1488,-3.0,0.000000,259.200000,0.000000 -1489,-3.0,0.000000,260.100000,0.000000 -1490,-3.0,0.000000,261.000000,0.000000 -1491,-3.0,0.000000,261.900000,0.000000 -1492,-3.0,0.000000,262.800000,0.000000 -1493,-3.0,0.000000,263.700000,0.000000 -1494,-3.0,0.000000,264.600000,0.000000 -1495,-3.0,0.000000,265.500000,0.000000 -1496,-3.0,0.000000,266.400000,0.000000 -1497,-3.0,0.000000,267.300000,0.000000 -1498,-3.0,0.000000,268.200000,0.000000 -1499,-3.0,0.000000,269.100000,0.000000 -1500,-3.0,0.000000,270.000000,0.000000 -1501,-3.0,0.000000,270.900000,0.000000 -1502,-3.0,0.000000,271.800000,0.000000 -1503,-3.0,0.000000,272.700000,0.000000 -1504,-3.0,0.000000,273.600000,0.000000 -1505,-3.0,0.000000,274.500000,0.000000 -1506,-3.0,0.000000,275.400000,0.000000 -1507,-3.0,0.000000,276.300000,0.000000 -1508,-3.0,0.000000,277.200000,0.000000 -1509,-3.0,0.000000,278.100000,0.000000 -1510,-3.0,0.000000,279.000000,0.000000 -1511,-3.0,0.000000,279.900000,0.000000 -1512,-3.0,0.000000,280.800000,0.000000 -1513,-3.0,0.000000,281.700000,0.000000 -1514,-3.0,0.000000,282.600000,0.000000 -1515,-3.0,0.000000,283.500000,0.000000 -1516,-3.0,0.000000,284.400000,0.000000 -1517,-3.0,0.000000,285.300000,0.000000 -1518,-3.0,0.000000,286.200000,0.000000 -1519,-3.0,0.000000,287.100000,0.000000 -1520,-3.0,0.000000,288.000000,0.000000 -1521,-3.0,0.000000,288.900000,0.000000 -1522,-3.0,0.000000,289.800000,0.000000 -1523,-3.0,0.000000,290.700000,0.000000 -1524,-3.0,0.000000,291.600000,0.000000 -1525,-3.0,0.000000,292.500000,0.000000 -1526,-3.0,0.000000,293.400000,0.000000 -1527,-3.0,0.000000,294.300000,0.000000 -1528,-3.0,0.000000,295.200000,0.000000 -1529,-3.0,0.000000,296.100000,0.000000 -1530,-3.0,0.000000,297.000000,0.000000 -1531,-3.0,0.000000,297.900000,0.000000 -1532,-3.0,0.000000,298.800000,0.000000 -1533,-3.0,0.000000,299.700000,0.000000 -1534,-3.0,0.000000,300.600000,0.000000 -1535,-3.0,0.000000,301.500000,0.000000 -1536,-3.0,0.000000,302.400000,0.000000 -1537,-3.0,0.000000,303.300000,0.000000 -1538,-3.0,0.000000,304.200000,0.000000 -1539,-3.0,0.000000,305.100000,0.000000 -1540,-3.0,0.000000,306.000000,0.000000 -1541,-3.0,0.000000,306.900000,0.000000 -1542,-3.0,0.000000,307.800000,0.000000 -1543,-3.0,0.000000,308.700000,0.000000 -1544,-3.0,0.000000,309.600000,0.000000 -1545,-3.0,0.000000,310.500000,0.000000 -1546,-3.0,0.000000,311.400000,0.000000 -1547,-3.0,0.000000,312.300000,0.000000 -1548,-3.0,0.000000,313.200000,0.000000 -1549,-3.0,0.000000,314.100000,0.000000 -1550,-3.0,0.000000,315.000000,0.000000 -1551,-3.0,0.000000,315.900000,0.000000 -1552,-3.0,0.000000,316.800000,0.000000 -1553,-3.0,0.000000,317.700000,0.000000 -1554,-3.0,0.000000,318.600000,0.000000 -1555,-3.0,0.000000,319.500000,0.000000 -1556,-3.0,0.000000,320.400000,0.000000 -1557,-3.0,0.000000,321.300000,0.000000 -1558,-3.0,0.000000,322.200000,0.000000 -1559,-3.0,0.000000,323.100000,0.000000 -1560,-3.0,0.000000,324.000000,0.000000 -1561,-3.0,0.000000,324.900000,0.000000 -1562,-3.0,0.000000,325.800000,0.000000 -1563,-3.0,0.000000,326.700000,0.000000 -1564,-3.0,0.000000,327.600000,0.000000 -1565,-3.0,0.000000,328.500000,0.000000 -1566,-3.0,0.000000,329.400000,0.000000 -1567,-3.0,0.000000,330.300000,0.000000 -1568,-3.0,0.000000,331.200000,0.000000 -1569,-3.0,0.000000,332.100000,0.000000 -1570,-3.0,0.000000,333.000000,0.000000 -1571,-3.0,0.000000,333.900000,0.000000 -1572,-3.0,0.000000,334.800000,0.000000 -1573,-3.0,0.000000,335.700000,0.000000 -1574,-3.0,0.000000,336.600000,0.000000 -1575,-3.0,0.000000,337.500000,0.000000 -1576,-3.0,0.000000,338.400000,0.000000 -1577,-3.0,0.000000,339.300000,0.000000 -1578,-3.0,0.000000,340.200000,0.000000 -1579,-3.0,0.000000,341.100000,0.000000 -1580,-3.0,0.000000,342.000000,0.000000 -1581,-3.0,0.000000,342.900000,0.000000 -1582,-3.0,0.000000,343.800000,0.000000 -1583,-3.0,0.000000,344.700000,0.000000 -1584,-3.0,0.000000,345.600000,0.000000 -1585,-3.0,0.000000,346.500000,0.000000 -1586,-3.0,0.000000,347.400000,0.000000 -1587,-3.0,0.000000,348.300000,0.000000 -1588,-3.0,0.000000,349.200000,0.000000 -1589,-3.0,0.000000,350.100000,0.000000 -1590,-3.0,0.000000,351.000000,0.000000 -1591,-3.0,0.000000,351.900000,0.000000 -1592,-3.0,0.000000,352.800000,0.000000 -1593,-3.0,0.000000,353.700000,0.000000 -1594,-3.0,0.000000,354.600000,0.000000 -1595,-3.0,0.000000,355.500000,0.000000 -1596,-3.0,0.000000,356.400000,0.000000 -1597,-3.0,0.000000,357.300000,0.000000 -1598,-3.0,0.000000,358.200000,0.000000 -1599,-3.0,0.000000,359.100000,0.000000 -1600,-3.0,90.000000,0.000000,-360.000000 -1601,-3.0,90.000000,0.000000,-359.100000 -1602,-3.0,90.000000,0.000000,-358.200000 -1603,-3.0,90.000000,0.000000,-357.300000 -1604,-3.0,90.000000,0.000000,-356.400000 -1605,-3.0,90.000000,0.000000,-355.500000 -1606,-3.0,90.000000,0.000000,-354.600000 -1607,-3.0,90.000000,0.000000,-353.700000 -1608,-3.0,90.000000,0.000000,-352.800000 -1609,-3.0,90.000000,0.000000,-351.900000 -1610,-3.0,90.000000,0.000000,-351.000000 -1611,-3.0,90.000000,0.000000,-350.100000 -1612,-3.0,90.000000,0.000000,-349.200000 -1613,-3.0,90.000000,0.000000,-348.300000 -1614,-3.0,90.000000,0.000000,-347.400000 -1615,-3.0,90.000000,0.000000,-346.500000 -1616,-3.0,90.000000,0.000000,-345.600000 -1617,-3.0,90.000000,0.000000,-344.700000 -1618,-3.0,90.000000,0.000000,-343.800000 -1619,-3.0,90.000000,0.000000,-342.900000 -1620,-3.0,90.000000,0.000000,-342.000000 -1621,-3.0,90.000000,0.000000,-341.100000 -1622,-3.0,90.000000,0.000000,-340.200000 -1623,-3.0,90.000000,0.000000,-339.300000 -1624,-3.0,90.000000,0.000000,-338.400000 -1625,-3.0,90.000000,0.000000,-337.500000 -1626,-3.0,90.000000,0.000000,-336.600000 -1627,-3.0,90.000000,0.000000,-335.700000 -1628,-3.0,90.000000,0.000000,-334.800000 -1629,-3.0,90.000000,0.000000,-333.900000 -1630,-3.0,90.000000,0.000000,-333.000000 -1631,-3.0,90.000000,0.000000,-332.100000 -1632,-3.0,90.000000,0.000000,-331.200000 -1633,-3.0,90.000000,0.000000,-330.300000 -1634,-3.0,90.000000,0.000000,-329.400000 -1635,-3.0,90.000000,0.000000,-328.500000 -1636,-3.0,90.000000,0.000000,-327.600000 -1637,-3.0,90.000000,0.000000,-326.700000 -1638,-3.0,90.000000,0.000000,-325.800000 -1639,-3.0,90.000000,0.000000,-324.900000 -1640,-3.0,90.000000,0.000000,-324.000000 -1641,-3.0,90.000000,0.000000,-323.100000 -1642,-3.0,90.000000,0.000000,-322.200000 -1643,-3.0,90.000000,0.000000,-321.300000 -1644,-3.0,90.000000,0.000000,-320.400000 -1645,-3.0,90.000000,0.000000,-319.500000 -1646,-3.0,90.000000,0.000000,-318.600000 -1647,-3.0,90.000000,0.000000,-317.700000 -1648,-3.0,90.000000,0.000000,-316.800000 -1649,-3.0,90.000000,0.000000,-315.900000 -1650,-3.0,90.000000,0.000000,-315.000000 -1651,-3.0,90.000000,0.000000,-314.100000 -1652,-3.0,90.000000,0.000000,-313.200000 -1653,-3.0,90.000000,0.000000,-312.300000 -1654,-3.0,90.000000,0.000000,-311.400000 -1655,-3.0,90.000000,0.000000,-310.500000 -1656,-3.0,90.000000,0.000000,-309.600000 -1657,-3.0,90.000000,0.000000,-308.700000 -1658,-3.0,90.000000,0.000000,-307.800000 -1659,-3.0,90.000000,0.000000,-306.900000 -1660,-3.0,90.000000,0.000000,-306.000000 -1661,-3.0,90.000000,0.000000,-305.100000 -1662,-3.0,90.000000,0.000000,-304.200000 -1663,-3.0,90.000000,0.000000,-303.300000 -1664,-3.0,90.000000,0.000000,-302.400000 -1665,-3.0,90.000000,0.000000,-301.500000 -1666,-3.0,90.000000,0.000000,-300.600000 -1667,-3.0,90.000000,0.000000,-299.700000 -1668,-3.0,90.000000,0.000000,-298.800000 -1669,-3.0,90.000000,0.000000,-297.900000 -1670,-3.0,90.000000,0.000000,-297.000000 -1671,-3.0,90.000000,0.000000,-296.100000 -1672,-3.0,90.000000,0.000000,-295.200000 -1673,-3.0,90.000000,0.000000,-294.300000 -1674,-3.0,90.000000,0.000000,-293.400000 -1675,-3.0,90.000000,0.000000,-292.500000 -1676,-3.0,90.000000,0.000000,-291.600000 -1677,-3.0,90.000000,0.000000,-290.700000 -1678,-3.0,90.000000,0.000000,-289.800000 -1679,-3.0,90.000000,0.000000,-288.900000 -1680,-3.0,90.000000,0.000000,-288.000000 -1681,-3.0,90.000000,0.000000,-287.100000 -1682,-3.0,90.000000,0.000000,-286.200000 -1683,-3.0,90.000000,0.000000,-285.300000 -1684,-3.0,90.000000,0.000000,-284.400000 -1685,-3.0,90.000000,0.000000,-283.500000 -1686,-3.0,90.000000,0.000000,-282.600000 -1687,-3.0,90.000000,0.000000,-281.700000 -1688,-3.0,90.000000,0.000000,-280.800000 -1689,-3.0,90.000000,0.000000,-279.900000 -1690,-3.0,90.000000,0.000000,-279.000000 -1691,-3.0,90.000000,0.000000,-278.100000 -1692,-3.0,90.000000,0.000000,-277.200000 -1693,-3.0,90.000000,0.000000,-276.300000 -1694,-3.0,90.000000,0.000000,-275.400000 -1695,-3.0,90.000000,0.000000,-274.500000 -1696,-3.0,90.000000,0.000000,-273.600000 -1697,-3.0,90.000000,0.000000,-272.700000 -1698,-3.0,90.000000,0.000000,-271.800000 -1699,-3.0,90.000000,0.000000,-270.900000 -1700,-3.0,90.000000,0.000000,-270.000000 -1701,-3.0,90.000000,0.000000,-269.100000 -1702,-3.0,90.000000,0.000000,-268.200000 -1703,-3.0,90.000000,0.000000,-267.300000 -1704,-3.0,90.000000,0.000000,-266.400000 -1705,-3.0,90.000000,0.000000,-265.500000 -1706,-3.0,90.000000,0.000000,-264.600000 -1707,-3.0,90.000000,0.000000,-263.700000 -1708,-3.0,90.000000,0.000000,-262.800000 -1709,-3.0,90.000000,0.000000,-261.900000 -1710,-3.0,90.000000,0.000000,-261.000000 -1711,-3.0,90.000000,0.000000,-260.100000 -1712,-3.0,90.000000,0.000000,-259.200000 -1713,-3.0,90.000000,0.000000,-258.300000 -1714,-3.0,90.000000,0.000000,-257.400000 -1715,-3.0,90.000000,0.000000,-256.500000 -1716,-3.0,90.000000,0.000000,-255.600000 -1717,-3.0,90.000000,0.000000,-254.700000 -1718,-3.0,90.000000,0.000000,-253.800000 -1719,-3.0,90.000000,0.000000,-252.900000 -1720,-3.0,90.000000,0.000000,-252.000000 -1721,-3.0,90.000000,0.000000,-251.100000 -1722,-3.0,90.000000,0.000000,-250.200000 -1723,-3.0,90.000000,0.000000,-249.300000 -1724,-3.0,90.000000,0.000000,-248.400000 -1725,-3.0,90.000000,0.000000,-247.500000 -1726,-3.0,90.000000,0.000000,-246.600000 -1727,-3.0,90.000000,0.000000,-245.700000 -1728,-3.0,90.000000,0.000000,-244.800000 -1729,-3.0,90.000000,0.000000,-243.900000 -1730,-3.0,90.000000,0.000000,-243.000000 -1731,-3.0,90.000000,0.000000,-242.100000 -1732,-3.0,90.000000,0.000000,-241.200000 -1733,-3.0,90.000000,0.000000,-240.300000 -1734,-3.0,90.000000,0.000000,-239.400000 -1735,-3.0,90.000000,0.000000,-238.500000 -1736,-3.0,90.000000,0.000000,-237.600000 -1737,-3.0,90.000000,0.000000,-236.700000 -1738,-3.0,90.000000,0.000000,-235.800000 -1739,-3.0,90.000000,0.000000,-234.900000 -1740,-3.0,90.000000,0.000000,-234.000000 -1741,-3.0,90.000000,0.000000,-233.100000 -1742,-3.0,90.000000,0.000000,-232.200000 -1743,-3.0,90.000000,0.000000,-231.300000 -1744,-3.0,90.000000,0.000000,-230.400000 -1745,-3.0,90.000000,0.000000,-229.500000 -1746,-3.0,90.000000,0.000000,-228.600000 -1747,-3.0,90.000000,0.000000,-227.700000 -1748,-3.0,90.000000,0.000000,-226.800000 -1749,-3.0,90.000000,0.000000,-225.900000 -1750,-3.0,90.000000,0.000000,-225.000000 -1751,-3.0,90.000000,0.000000,-224.100000 -1752,-3.0,90.000000,0.000000,-223.200000 -1753,-3.0,90.000000,0.000000,-222.300000 -1754,-3.0,90.000000,0.000000,-221.400000 -1755,-3.0,90.000000,0.000000,-220.500000 -1756,-3.0,90.000000,0.000000,-219.600000 -1757,-3.0,90.000000,0.000000,-218.700000 -1758,-3.0,90.000000,0.000000,-217.800000 -1759,-3.0,90.000000,0.000000,-216.900000 -1760,-3.0,90.000000,0.000000,-216.000000 -1761,-3.0,90.000000,0.000000,-215.100000 -1762,-3.0,90.000000,0.000000,-214.200000 -1763,-3.0,90.000000,0.000000,-213.300000 -1764,-3.0,90.000000,0.000000,-212.400000 -1765,-3.0,90.000000,0.000000,-211.500000 -1766,-3.0,90.000000,0.000000,-210.600000 -1767,-3.0,90.000000,0.000000,-209.700000 -1768,-3.0,90.000000,0.000000,-208.800000 -1769,-3.0,90.000000,0.000000,-207.900000 -1770,-3.0,90.000000,0.000000,-207.000000 -1771,-3.0,90.000000,0.000000,-206.100000 -1772,-3.0,90.000000,0.000000,-205.200000 -1773,-3.0,90.000000,0.000000,-204.300000 -1774,-3.0,90.000000,0.000000,-203.400000 -1775,-3.0,90.000000,0.000000,-202.500000 -1776,-3.0,90.000000,0.000000,-201.600000 -1777,-3.0,90.000000,0.000000,-200.700000 -1778,-3.0,90.000000,0.000000,-199.800000 -1779,-3.0,90.000000,0.000000,-198.900000 -1780,-3.0,90.000000,0.000000,-198.000000 -1781,-3.0,90.000000,0.000000,-197.100000 -1782,-3.0,90.000000,0.000000,-196.200000 -1783,-3.0,90.000000,0.000000,-195.300000 -1784,-3.0,90.000000,0.000000,-194.400000 -1785,-3.0,90.000000,0.000000,-193.500000 -1786,-3.0,90.000000,0.000000,-192.600000 -1787,-3.0,90.000000,0.000000,-191.700000 -1788,-3.0,90.000000,0.000000,-190.800000 -1789,-3.0,90.000000,0.000000,-189.900000 -1790,-3.0,90.000000,0.000000,-189.000000 -1791,-3.0,90.000000,0.000000,-188.100000 -1792,-3.0,90.000000,0.000000,-187.200000 -1793,-3.0,90.000000,0.000000,-186.300000 -1794,-3.0,90.000000,0.000000,-185.400000 -1795,-3.0,90.000000,0.000000,-184.500000 -1796,-3.0,90.000000,0.000000,-183.600000 -1797,-3.0,90.000000,0.000000,-182.700000 -1798,-3.0,90.000000,0.000000,-181.800000 -1799,-3.0,90.000000,0.000000,-180.900000 -1800,-3.0,90.000000,0.000000,-180.000000 -1801,-3.0,90.000000,0.000000,-179.100000 -1802,-3.0,90.000000,0.000000,-178.200000 -1803,-3.0,90.000000,0.000000,-177.300000 -1804,-3.0,90.000000,0.000000,-176.400000 -1805,-3.0,90.000000,0.000000,-175.500000 -1806,-3.0,90.000000,0.000000,-174.600000 -1807,-3.0,90.000000,0.000000,-173.700000 -1808,-3.0,90.000000,0.000000,-172.800000 -1809,-3.0,90.000000,0.000000,-171.900000 -1810,-3.0,90.000000,0.000000,-171.000000 -1811,-3.0,90.000000,0.000000,-170.100000 -1812,-3.0,90.000000,0.000000,-169.200000 -1813,-3.0,90.000000,0.000000,-168.300000 -1814,-3.0,90.000000,0.000000,-167.400000 -1815,-3.0,90.000000,0.000000,-166.500000 -1816,-3.0,90.000000,0.000000,-165.600000 -1817,-3.0,90.000000,0.000000,-164.700000 -1818,-3.0,90.000000,0.000000,-163.800000 -1819,-3.0,90.000000,0.000000,-162.900000 -1820,-3.0,90.000000,0.000000,-162.000000 -1821,-3.0,90.000000,0.000000,-161.100000 -1822,-3.0,90.000000,0.000000,-160.200000 -1823,-3.0,90.000000,0.000000,-159.300000 -1824,-3.0,90.000000,0.000000,-158.400000 -1825,-3.0,90.000000,0.000000,-157.500000 -1826,-3.0,90.000000,0.000000,-156.600000 -1827,-3.0,90.000000,0.000000,-155.700000 -1828,-3.0,90.000000,0.000000,-154.800000 -1829,-3.0,90.000000,0.000000,-153.900000 -1830,-3.0,90.000000,0.000000,-153.000000 -1831,-3.0,90.000000,0.000000,-152.100000 -1832,-3.0,90.000000,0.000000,-151.200000 -1833,-3.0,90.000000,0.000000,-150.300000 -1834,-3.0,90.000000,0.000000,-149.400000 -1835,-3.0,90.000000,0.000000,-148.500000 -1836,-3.0,90.000000,0.000000,-147.600000 -1837,-3.0,90.000000,0.000000,-146.700000 -1838,-3.0,90.000000,0.000000,-145.800000 -1839,-3.0,90.000000,0.000000,-144.900000 -1840,-3.0,90.000000,0.000000,-144.000000 -1841,-3.0,90.000000,0.000000,-143.100000 -1842,-3.0,90.000000,0.000000,-142.200000 -1843,-3.0,90.000000,0.000000,-141.300000 -1844,-3.0,90.000000,0.000000,-140.400000 -1845,-3.0,90.000000,0.000000,-139.500000 -1846,-3.0,90.000000,0.000000,-138.600000 -1847,-3.0,90.000000,0.000000,-137.700000 -1848,-3.0,90.000000,0.000000,-136.800000 -1849,-3.0,90.000000,0.000000,-135.900000 -1850,-3.0,90.000000,0.000000,-135.000000 -1851,-3.0,90.000000,0.000000,-134.100000 -1852,-3.0,90.000000,0.000000,-133.200000 -1853,-3.0,90.000000,0.000000,-132.300000 -1854,-3.0,90.000000,0.000000,-131.400000 -1855,-3.0,90.000000,0.000000,-130.500000 -1856,-3.0,90.000000,0.000000,-129.600000 -1857,-3.0,90.000000,0.000000,-128.700000 -1858,-3.0,90.000000,0.000000,-127.800000 -1859,-3.0,90.000000,0.000000,-126.900000 -1860,-3.0,90.000000,0.000000,-126.000000 -1861,-3.0,90.000000,0.000000,-125.100000 -1862,-3.0,90.000000,0.000000,-124.200000 -1863,-3.0,90.000000,0.000000,-123.300000 -1864,-3.0,90.000000,0.000000,-122.400000 -1865,-3.0,90.000000,0.000000,-121.500000 -1866,-3.0,90.000000,0.000000,-120.600000 -1867,-3.0,90.000000,0.000000,-119.700000 -1868,-3.0,90.000000,0.000000,-118.800000 -1869,-3.0,90.000000,0.000000,-117.900000 -1870,-3.0,90.000000,0.000000,-117.000000 -1871,-3.0,90.000000,0.000000,-116.100000 -1872,-3.0,90.000000,0.000000,-115.200000 -1873,-3.0,90.000000,0.000000,-114.300000 -1874,-3.0,90.000000,0.000000,-113.400000 -1875,-3.0,90.000000,0.000000,-112.500000 -1876,-3.0,90.000000,0.000000,-111.600000 -1877,-3.0,90.000000,0.000000,-110.700000 -1878,-3.0,90.000000,0.000000,-109.800000 -1879,-3.0,90.000000,0.000000,-108.900000 -1880,-3.0,90.000000,0.000000,-108.000000 -1881,-3.0,90.000000,0.000000,-107.100000 -1882,-3.0,90.000000,0.000000,-106.200000 -1883,-3.0,90.000000,0.000000,-105.300000 -1884,-3.0,90.000000,0.000000,-104.400000 -1885,-3.0,90.000000,0.000000,-103.500000 -1886,-3.0,90.000000,0.000000,-102.600000 -1887,-3.0,90.000000,0.000000,-101.700000 -1888,-3.0,90.000000,0.000000,-100.800000 -1889,-3.0,90.000000,0.000000,-99.900000 -1890,-3.0,90.000000,0.000000,-99.000000 -1891,-3.0,90.000000,0.000000,-98.100000 -1892,-3.0,90.000000,0.000000,-97.200000 -1893,-3.0,90.000000,0.000000,-96.300000 -1894,-3.0,90.000000,0.000000,-95.400000 -1895,-3.0,90.000000,0.000000,-94.500000 -1896,-3.0,90.000000,0.000000,-93.600000 -1897,-3.0,90.000000,0.000000,-92.700000 -1898,-3.0,90.000000,0.000000,-91.800000 -1899,-3.0,90.000000,0.000000,-90.900000 -1900,-3.0,90.000000,0.000000,-90.000000 -1901,-3.0,90.000000,0.000000,-89.100000 -1902,-3.0,90.000000,0.000000,-88.200000 -1903,-3.0,90.000000,0.000000,-87.300000 -1904,-3.0,90.000000,0.000000,-86.400000 -1905,-3.0,90.000000,0.000000,-85.500000 -1906,-3.0,90.000000,0.000000,-84.600000 -1907,-3.0,90.000000,0.000000,-83.700000 -1908,-3.0,90.000000,0.000000,-82.800000 -1909,-3.0,90.000000,0.000000,-81.900000 -1910,-3.0,90.000000,0.000000,-81.000000 -1911,-3.0,90.000000,0.000000,-80.100000 -1912,-3.0,90.000000,0.000000,-79.200000 -1913,-3.0,90.000000,0.000000,-78.300000 -1914,-3.0,90.000000,0.000000,-77.400000 -1915,-3.0,90.000000,0.000000,-76.500000 -1916,-3.0,90.000000,0.000000,-75.600000 -1917,-3.0,90.000000,0.000000,-74.700000 -1918,-3.0,90.000000,0.000000,-73.800000 -1919,-3.0,90.000000,0.000000,-72.900000 -1920,-3.0,90.000000,0.000000,-72.000000 -1921,-3.0,90.000000,0.000000,-71.100000 -1922,-3.0,90.000000,0.000000,-70.200000 -1923,-3.0,90.000000,0.000000,-69.300000 -1924,-3.0,90.000000,0.000000,-68.400000 -1925,-3.0,90.000000,0.000000,-67.500000 -1926,-3.0,90.000000,0.000000,-66.600000 -1927,-3.0,90.000000,0.000000,-65.700000 -1928,-3.0,90.000000,0.000000,-64.800000 -1929,-3.0,90.000000,0.000000,-63.900000 -1930,-3.0,90.000000,0.000000,-63.000000 -1931,-3.0,90.000000,0.000000,-62.100000 -1932,-3.0,90.000000,0.000000,-61.200000 -1933,-3.0,90.000000,0.000000,-60.300000 -1934,-3.0,90.000000,0.000000,-59.400000 -1935,-3.0,90.000000,0.000000,-58.500000 -1936,-3.0,90.000000,0.000000,-57.600000 -1937,-3.0,90.000000,0.000000,-56.700000 -1938,-3.0,90.000000,0.000000,-55.800000 -1939,-3.0,90.000000,0.000000,-54.900000 -1940,-3.0,90.000000,0.000000,-54.000000 -1941,-3.0,90.000000,0.000000,-53.100000 -1942,-3.0,90.000000,0.000000,-52.200000 -1943,-3.0,90.000000,0.000000,-51.300000 -1944,-3.0,90.000000,0.000000,-50.400000 -1945,-3.0,90.000000,0.000000,-49.500000 -1946,-3.0,90.000000,0.000000,-48.600000 -1947,-3.0,90.000000,0.000000,-47.700000 -1948,-3.0,90.000000,0.000000,-46.800000 -1949,-3.0,90.000000,0.000000,-45.900000 -1950,-3.0,90.000000,0.000000,-45.000000 -1951,-3.0,90.000000,0.000000,-44.100000 -1952,-3.0,90.000000,0.000000,-43.200000 -1953,-3.0,90.000000,0.000000,-42.300000 -1954,-3.0,90.000000,0.000000,-41.400000 -1955,-3.0,90.000000,0.000000,-40.500000 -1956,-3.0,90.000000,0.000000,-39.600000 -1957,-3.0,90.000000,0.000000,-38.700000 -1958,-3.0,90.000000,0.000000,-37.800000 -1959,-3.0,90.000000,0.000000,-36.900000 -1960,-3.0,90.000000,0.000000,-36.000000 -1961,-3.0,90.000000,0.000000,-35.100000 -1962,-3.0,90.000000,0.000000,-34.200000 -1963,-3.0,90.000000,0.000000,-33.300000 -1964,-3.0,90.000000,0.000000,-32.400000 -1965,-3.0,90.000000,0.000000,-31.500000 -1966,-3.0,90.000000,0.000000,-30.600000 -1967,-3.0,90.000000,0.000000,-29.700000 -1968,-3.0,90.000000,0.000000,-28.800000 -1969,-3.0,90.000000,0.000000,-27.900000 -1970,-3.0,90.000000,0.000000,-27.000000 -1971,-3.0,90.000000,0.000000,-26.100000 -1972,-3.0,90.000000,0.000000,-25.200000 -1973,-3.0,90.000000,0.000000,-24.300000 -1974,-3.0,90.000000,0.000000,-23.400000 -1975,-3.0,90.000000,0.000000,-22.500000 -1976,-3.0,90.000000,0.000000,-21.600000 -1977,-3.0,90.000000,0.000000,-20.700000 -1978,-3.0,90.000000,0.000000,-19.800000 -1979,-3.0,90.000000,0.000000,-18.900000 -1980,-3.0,90.000000,0.000000,-18.000000 -1981,-3.0,90.000000,0.000000,-17.100000 -1982,-3.0,90.000000,0.000000,-16.200000 -1983,-3.0,90.000000,0.000000,-15.300000 -1984,-3.0,90.000000,0.000000,-14.400000 -1985,-3.0,90.000000,0.000000,-13.500000 -1986,-3.0,90.000000,0.000000,-12.600000 -1987,-3.0,90.000000,0.000000,-11.700000 -1988,-3.0,90.000000,0.000000,-10.800000 -1989,-3.0,90.000000,0.000000,-9.900000 -1990,-3.0,90.000000,0.000000,-9.000000 -1991,-3.0,90.000000,0.000000,-8.100000 -1992,-3.0,90.000000,0.000000,-7.200000 -1993,-3.0,90.000000,0.000000,-6.300000 -1994,-3.0,90.000000,0.000000,-5.400000 -1995,-3.0,90.000000,0.000000,-4.500000 -1996,-3.0,90.000000,0.000000,-3.600000 -1997,-3.0,90.000000,0.000000,-2.700000 -1998,-3.0,90.000000,0.000000,-1.800000 -1999,-3.0,90.000000,0.000000,-0.900000 -2000,-3.0,90.000000,0.000000,0.000000 -2001,-3.0,90.000000,0.000000,0.900000 -2002,-3.0,90.000000,0.000000,1.800000 -2003,-3.0,90.000000,0.000000,2.700000 -2004,-3.0,90.000000,0.000000,3.600000 -2005,-3.0,90.000000,0.000000,4.500000 -2006,-3.0,90.000000,0.000000,5.400000 -2007,-3.0,90.000000,0.000000,6.300000 -2008,-3.0,90.000000,0.000000,7.200000 -2009,-3.0,90.000000,0.000000,8.100000 -2010,-3.0,90.000000,0.000000,9.000000 -2011,-3.0,90.000000,0.000000,9.900000 -2012,-3.0,90.000000,0.000000,10.800000 -2013,-3.0,90.000000,0.000000,11.700000 -2014,-3.0,90.000000,0.000000,12.600000 -2015,-3.0,90.000000,0.000000,13.500000 -2016,-3.0,90.000000,0.000000,14.400000 -2017,-3.0,90.000000,0.000000,15.300000 -2018,-3.0,90.000000,0.000000,16.200000 -2019,-3.0,90.000000,0.000000,17.100000 -2020,-3.0,90.000000,0.000000,18.000000 -2021,-3.0,90.000000,0.000000,18.900000 -2022,-3.0,90.000000,0.000000,19.800000 -2023,-3.0,90.000000,0.000000,20.700000 -2024,-3.0,90.000000,0.000000,21.600000 -2025,-3.0,90.000000,0.000000,22.500000 -2026,-3.0,90.000000,0.000000,23.400000 -2027,-3.0,90.000000,0.000000,24.300000 -2028,-3.0,90.000000,0.000000,25.200000 -2029,-3.0,90.000000,0.000000,26.100000 -2030,-3.0,90.000000,0.000000,27.000000 -2031,-3.0,90.000000,0.000000,27.900000 -2032,-3.0,90.000000,0.000000,28.800000 -2033,-3.0,90.000000,0.000000,29.700000 -2034,-3.0,90.000000,0.000000,30.600000 -2035,-3.0,90.000000,0.000000,31.500000 -2036,-3.0,90.000000,0.000000,32.400000 -2037,-3.0,90.000000,0.000000,33.300000 -2038,-3.0,90.000000,0.000000,34.200000 -2039,-3.0,90.000000,0.000000,35.100000 -2040,-3.0,90.000000,0.000000,36.000000 -2041,-3.0,90.000000,0.000000,36.900000 -2042,-3.0,90.000000,0.000000,37.800000 -2043,-3.0,90.000000,0.000000,38.700000 -2044,-3.0,90.000000,0.000000,39.600000 -2045,-3.0,90.000000,0.000000,40.500000 -2046,-3.0,90.000000,0.000000,41.400000 -2047,-3.0,90.000000,0.000000,42.300000 -2048,-3.0,90.000000,0.000000,43.200000 -2049,-3.0,90.000000,0.000000,44.100000 -2050,-3.0,90.000000,0.000000,45.000000 -2051,-3.0,90.000000,0.000000,45.900000 -2052,-3.0,90.000000,0.000000,46.800000 -2053,-3.0,90.000000,0.000000,47.700000 -2054,-3.0,90.000000,0.000000,48.600000 -2055,-3.0,90.000000,0.000000,49.500000 -2056,-3.0,90.000000,0.000000,50.400000 -2057,-3.0,90.000000,0.000000,51.300000 -2058,-3.0,90.000000,0.000000,52.200000 -2059,-3.0,90.000000,0.000000,53.100000 -2060,-3.0,90.000000,0.000000,54.000000 -2061,-3.0,90.000000,0.000000,54.900000 -2062,-3.0,90.000000,0.000000,55.800000 -2063,-3.0,90.000000,0.000000,56.700000 -2064,-3.0,90.000000,0.000000,57.600000 -2065,-3.0,90.000000,0.000000,58.500000 -2066,-3.0,90.000000,0.000000,59.400000 -2067,-3.0,90.000000,0.000000,60.300000 -2068,-3.0,90.000000,0.000000,61.200000 -2069,-3.0,90.000000,0.000000,62.100000 -2070,-3.0,90.000000,0.000000,63.000000 -2071,-3.0,90.000000,0.000000,63.900000 -2072,-3.0,90.000000,0.000000,64.800000 -2073,-3.0,90.000000,0.000000,65.700000 -2074,-3.0,90.000000,0.000000,66.600000 -2075,-3.0,90.000000,0.000000,67.500000 -2076,-3.0,90.000000,0.000000,68.400000 -2077,-3.0,90.000000,0.000000,69.300000 -2078,-3.0,90.000000,0.000000,70.200000 -2079,-3.0,90.000000,0.000000,71.100000 -2080,-3.0,90.000000,0.000000,72.000000 -2081,-3.0,90.000000,0.000000,72.900000 -2082,-3.0,90.000000,0.000000,73.800000 -2083,-3.0,90.000000,0.000000,74.700000 -2084,-3.0,90.000000,0.000000,75.600000 -2085,-3.0,90.000000,0.000000,76.500000 -2086,-3.0,90.000000,0.000000,77.400000 -2087,-3.0,90.000000,0.000000,78.300000 -2088,-3.0,90.000000,0.000000,79.200000 -2089,-3.0,90.000000,0.000000,80.100000 -2090,-3.0,90.000000,0.000000,81.000000 -2091,-3.0,90.000000,0.000000,81.900000 -2092,-3.0,90.000000,0.000000,82.800000 -2093,-3.0,90.000000,0.000000,83.700000 -2094,-3.0,90.000000,0.000000,84.600000 -2095,-3.0,90.000000,0.000000,85.500000 -2096,-3.0,90.000000,0.000000,86.400000 -2097,-3.0,90.000000,0.000000,87.300000 -2098,-3.0,90.000000,0.000000,88.200000 -2099,-3.0,90.000000,0.000000,89.100000 -2100,-3.0,90.000000,0.000000,90.000000 -2101,-3.0,90.000000,0.000000,90.900000 -2102,-3.0,90.000000,0.000000,91.800000 -2103,-3.0,90.000000,0.000000,92.700000 -2104,-3.0,90.000000,0.000000,93.600000 -2105,-3.0,90.000000,0.000000,94.500000 -2106,-3.0,90.000000,0.000000,95.400000 -2107,-3.0,90.000000,0.000000,96.300000 -2108,-3.0,90.000000,0.000000,97.200000 -2109,-3.0,90.000000,0.000000,98.100000 -2110,-3.0,90.000000,0.000000,99.000000 -2111,-3.0,90.000000,0.000000,99.900000 -2112,-3.0,90.000000,0.000000,100.800000 -2113,-3.0,90.000000,0.000000,101.700000 -2114,-3.0,90.000000,0.000000,102.600000 -2115,-3.0,90.000000,0.000000,103.500000 -2116,-3.0,90.000000,0.000000,104.400000 -2117,-3.0,90.000000,0.000000,105.300000 -2118,-3.0,90.000000,0.000000,106.200000 -2119,-3.0,90.000000,0.000000,107.100000 -2120,-3.0,90.000000,0.000000,108.000000 -2121,-3.0,90.000000,0.000000,108.900000 -2122,-3.0,90.000000,0.000000,109.800000 -2123,-3.0,90.000000,0.000000,110.700000 -2124,-3.0,90.000000,0.000000,111.600000 -2125,-3.0,90.000000,0.000000,112.500000 -2126,-3.0,90.000000,0.000000,113.400000 -2127,-3.0,90.000000,0.000000,114.300000 -2128,-3.0,90.000000,0.000000,115.200000 -2129,-3.0,90.000000,0.000000,116.100000 -2130,-3.0,90.000000,0.000000,117.000000 -2131,-3.0,90.000000,0.000000,117.900000 -2132,-3.0,90.000000,0.000000,118.800000 -2133,-3.0,90.000000,0.000000,119.700000 -2134,-3.0,90.000000,0.000000,120.600000 -2135,-3.0,90.000000,0.000000,121.500000 -2136,-3.0,90.000000,0.000000,122.400000 -2137,-3.0,90.000000,0.000000,123.300000 -2138,-3.0,90.000000,0.000000,124.200000 -2139,-3.0,90.000000,0.000000,125.100000 -2140,-3.0,90.000000,0.000000,126.000000 -2141,-3.0,90.000000,0.000000,126.900000 -2142,-3.0,90.000000,0.000000,127.800000 -2143,-3.0,90.000000,0.000000,128.700000 -2144,-3.0,90.000000,0.000000,129.600000 -2145,-3.0,90.000000,0.000000,130.500000 -2146,-3.0,90.000000,0.000000,131.400000 -2147,-3.0,90.000000,0.000000,132.300000 -2148,-3.0,90.000000,0.000000,133.200000 -2149,-3.0,90.000000,0.000000,134.100000 -2150,-3.0,90.000000,0.000000,135.000000 -2151,-3.0,90.000000,0.000000,135.900000 -2152,-3.0,90.000000,0.000000,136.800000 -2153,-3.0,90.000000,0.000000,137.700000 -2154,-3.0,90.000000,0.000000,138.600000 -2155,-3.0,90.000000,0.000000,139.500000 -2156,-3.0,90.000000,0.000000,140.400000 -2157,-3.0,90.000000,0.000000,141.300000 -2158,-3.0,90.000000,0.000000,142.200000 -2159,-3.0,90.000000,0.000000,143.100000 -2160,-3.0,90.000000,0.000000,144.000000 -2161,-3.0,90.000000,0.000000,144.900000 -2162,-3.0,90.000000,0.000000,145.800000 -2163,-3.0,90.000000,0.000000,146.700000 -2164,-3.0,90.000000,0.000000,147.600000 -2165,-3.0,90.000000,0.000000,148.500000 -2166,-3.0,90.000000,0.000000,149.400000 -2167,-3.0,90.000000,0.000000,150.300000 -2168,-3.0,90.000000,0.000000,151.200000 -2169,-3.0,90.000000,0.000000,152.100000 -2170,-3.0,90.000000,0.000000,153.000000 -2171,-3.0,90.000000,0.000000,153.900000 -2172,-3.0,90.000000,0.000000,154.800000 -2173,-3.0,90.000000,0.000000,155.700000 -2174,-3.0,90.000000,0.000000,156.600000 -2175,-3.0,90.000000,0.000000,157.500000 -2176,-3.0,90.000000,0.000000,158.400000 -2177,-3.0,90.000000,0.000000,159.300000 -2178,-3.0,90.000000,0.000000,160.200000 -2179,-3.0,90.000000,0.000000,161.100000 -2180,-3.0,90.000000,0.000000,162.000000 -2181,-3.0,90.000000,0.000000,162.900000 -2182,-3.0,90.000000,0.000000,163.800000 -2183,-3.0,90.000000,0.000000,164.700000 -2184,-3.0,90.000000,0.000000,165.600000 -2185,-3.0,90.000000,0.000000,166.500000 -2186,-3.0,90.000000,0.000000,167.400000 -2187,-3.0,90.000000,0.000000,168.300000 -2188,-3.0,90.000000,0.000000,169.200000 -2189,-3.0,90.000000,0.000000,170.100000 -2190,-3.0,90.000000,0.000000,171.000000 -2191,-3.0,90.000000,0.000000,171.900000 -2192,-3.0,90.000000,0.000000,172.800000 -2193,-3.0,90.000000,0.000000,173.700000 -2194,-3.0,90.000000,0.000000,174.600000 -2195,-3.0,90.000000,0.000000,175.500000 -2196,-3.0,90.000000,0.000000,176.400000 -2197,-3.0,90.000000,0.000000,177.300000 -2198,-3.0,90.000000,0.000000,178.200000 -2199,-3.0,90.000000,0.000000,179.100000 -2200,-3.0,90.000000,0.000000,180.000000 -2201,-3.0,90.000000,0.000000,180.900000 -2202,-3.0,90.000000,0.000000,181.800000 -2203,-3.0,90.000000,0.000000,182.700000 -2204,-3.0,90.000000,0.000000,183.600000 -2205,-3.0,90.000000,0.000000,184.500000 -2206,-3.0,90.000000,0.000000,185.400000 -2207,-3.0,90.000000,0.000000,186.300000 -2208,-3.0,90.000000,0.000000,187.200000 -2209,-3.0,90.000000,0.000000,188.100000 -2210,-3.0,90.000000,0.000000,189.000000 -2211,-3.0,90.000000,0.000000,189.900000 -2212,-3.0,90.000000,0.000000,190.800000 -2213,-3.0,90.000000,0.000000,191.700000 -2214,-3.0,90.000000,0.000000,192.600000 -2215,-3.0,90.000000,0.000000,193.500000 -2216,-3.0,90.000000,0.000000,194.400000 -2217,-3.0,90.000000,0.000000,195.300000 -2218,-3.0,90.000000,0.000000,196.200000 -2219,-3.0,90.000000,0.000000,197.100000 -2220,-3.0,90.000000,0.000000,198.000000 -2221,-3.0,90.000000,0.000000,198.900000 -2222,-3.0,90.000000,0.000000,199.800000 -2223,-3.0,90.000000,0.000000,200.700000 -2224,-3.0,90.000000,0.000000,201.600000 -2225,-3.0,90.000000,0.000000,202.500000 -2226,-3.0,90.000000,0.000000,203.400000 -2227,-3.0,90.000000,0.000000,204.300000 -2228,-3.0,90.000000,0.000000,205.200000 -2229,-3.0,90.000000,0.000000,206.100000 -2230,-3.0,90.000000,0.000000,207.000000 -2231,-3.0,90.000000,0.000000,207.900000 -2232,-3.0,90.000000,0.000000,208.800000 -2233,-3.0,90.000000,0.000000,209.700000 -2234,-3.0,90.000000,0.000000,210.600000 -2235,-3.0,90.000000,0.000000,211.500000 -2236,-3.0,90.000000,0.000000,212.400000 -2237,-3.0,90.000000,0.000000,213.300000 -2238,-3.0,90.000000,0.000000,214.200000 -2239,-3.0,90.000000,0.000000,215.100000 -2240,-3.0,90.000000,0.000000,216.000000 -2241,-3.0,90.000000,0.000000,216.900000 -2242,-3.0,90.000000,0.000000,217.800000 -2243,-3.0,90.000000,0.000000,218.700000 -2244,-3.0,90.000000,0.000000,219.600000 -2245,-3.0,90.000000,0.000000,220.500000 -2246,-3.0,90.000000,0.000000,221.400000 -2247,-3.0,90.000000,0.000000,222.300000 -2248,-3.0,90.000000,0.000000,223.200000 -2249,-3.0,90.000000,0.000000,224.100000 -2250,-3.0,90.000000,0.000000,225.000000 -2251,-3.0,90.000000,0.000000,225.900000 -2252,-3.0,90.000000,0.000000,226.800000 -2253,-3.0,90.000000,0.000000,227.700000 -2254,-3.0,90.000000,0.000000,228.600000 -2255,-3.0,90.000000,0.000000,229.500000 -2256,-3.0,90.000000,0.000000,230.400000 -2257,-3.0,90.000000,0.000000,231.300000 -2258,-3.0,90.000000,0.000000,232.200000 -2259,-3.0,90.000000,0.000000,233.100000 -2260,-3.0,90.000000,0.000000,234.000000 -2261,-3.0,90.000000,0.000000,234.900000 -2262,-3.0,90.000000,0.000000,235.800000 -2263,-3.0,90.000000,0.000000,236.700000 -2264,-3.0,90.000000,0.000000,237.600000 -2265,-3.0,90.000000,0.000000,238.500000 -2266,-3.0,90.000000,0.000000,239.400000 -2267,-3.0,90.000000,0.000000,240.300000 -2268,-3.0,90.000000,0.000000,241.200000 -2269,-3.0,90.000000,0.000000,242.100000 -2270,-3.0,90.000000,0.000000,243.000000 -2271,-3.0,90.000000,0.000000,243.900000 -2272,-3.0,90.000000,0.000000,244.800000 -2273,-3.0,90.000000,0.000000,245.700000 -2274,-3.0,90.000000,0.000000,246.600000 -2275,-3.0,90.000000,0.000000,247.500000 -2276,-3.0,90.000000,0.000000,248.400000 -2277,-3.0,90.000000,0.000000,249.300000 -2278,-3.0,90.000000,0.000000,250.200000 -2279,-3.0,90.000000,0.000000,251.100000 -2280,-3.0,90.000000,0.000000,252.000000 -2281,-3.0,90.000000,0.000000,252.900000 -2282,-3.0,90.000000,0.000000,253.800000 -2283,-3.0,90.000000,0.000000,254.700000 -2284,-3.0,90.000000,0.000000,255.600000 -2285,-3.0,90.000000,0.000000,256.500000 -2286,-3.0,90.000000,0.000000,257.400000 -2287,-3.0,90.000000,0.000000,258.300000 -2288,-3.0,90.000000,0.000000,259.200000 -2289,-3.0,90.000000,0.000000,260.100000 -2290,-3.0,90.000000,0.000000,261.000000 -2291,-3.0,90.000000,0.000000,261.900000 -2292,-3.0,90.000000,0.000000,262.800000 -2293,-3.0,90.000000,0.000000,263.700000 -2294,-3.0,90.000000,0.000000,264.600000 -2295,-3.0,90.000000,0.000000,265.500000 -2296,-3.0,90.000000,0.000000,266.400000 -2297,-3.0,90.000000,0.000000,267.300000 -2298,-3.0,90.000000,0.000000,268.200000 -2299,-3.0,90.000000,0.000000,269.100000 -2300,-3.0,90.000000,0.000000,270.000000 -2301,-3.0,90.000000,0.000000,270.900000 -2302,-3.0,90.000000,0.000000,271.800000 -2303,-3.0,90.000000,0.000000,272.700000 -2304,-3.0,90.000000,0.000000,273.600000 -2305,-3.0,90.000000,0.000000,274.500000 -2306,-3.0,90.000000,0.000000,275.400000 -2307,-3.0,90.000000,0.000000,276.300000 -2308,-3.0,90.000000,0.000000,277.200000 -2309,-3.0,90.000000,0.000000,278.100000 -2310,-3.0,90.000000,0.000000,279.000000 -2311,-3.0,90.000000,0.000000,279.900000 -2312,-3.0,90.000000,0.000000,280.800000 -2313,-3.0,90.000000,0.000000,281.700000 -2314,-3.0,90.000000,0.000000,282.600000 -2315,-3.0,90.000000,0.000000,283.500000 -2316,-3.0,90.000000,0.000000,284.400000 -2317,-3.0,90.000000,0.000000,285.300000 -2318,-3.0,90.000000,0.000000,286.200000 -2319,-3.0,90.000000,0.000000,287.100000 -2320,-3.0,90.000000,0.000000,288.000000 -2321,-3.0,90.000000,0.000000,288.900000 -2322,-3.0,90.000000,0.000000,289.800000 -2323,-3.0,90.000000,0.000000,290.700000 -2324,-3.0,90.000000,0.000000,291.600000 -2325,-3.0,90.000000,0.000000,292.500000 -2326,-3.0,90.000000,0.000000,293.400000 -2327,-3.0,90.000000,0.000000,294.300000 -2328,-3.0,90.000000,0.000000,295.200000 -2329,-3.0,90.000000,0.000000,296.100000 -2330,-3.0,90.000000,0.000000,297.000000 -2331,-3.0,90.000000,0.000000,297.900000 -2332,-3.0,90.000000,0.000000,298.800000 -2333,-3.0,90.000000,0.000000,299.700000 -2334,-3.0,90.000000,0.000000,300.600000 -2335,-3.0,90.000000,0.000000,301.500000 -2336,-3.0,90.000000,0.000000,302.400000 -2337,-3.0,90.000000,0.000000,303.300000 -2338,-3.0,90.000000,0.000000,304.200000 -2339,-3.0,90.000000,0.000000,305.100000 -2340,-3.0,90.000000,0.000000,306.000000 -2341,-3.0,90.000000,0.000000,306.900000 -2342,-3.0,90.000000,0.000000,307.800000 -2343,-3.0,90.000000,0.000000,308.700000 -2344,-3.0,90.000000,0.000000,309.600000 -2345,-3.0,90.000000,0.000000,310.500000 -2346,-3.0,90.000000,0.000000,311.400000 -2347,-3.0,90.000000,0.000000,312.300000 -2348,-3.0,90.000000,0.000000,313.200000 -2349,-3.0,90.000000,0.000000,314.100000 -2350,-3.0,90.000000,0.000000,315.000000 -2351,-3.0,90.000000,0.000000,315.900000 -2352,-3.0,90.000000,0.000000,316.800000 -2353,-3.0,90.000000,0.000000,317.700000 -2354,-3.0,90.000000,0.000000,318.600000 -2355,-3.0,90.000000,0.000000,319.500000 -2356,-3.0,90.000000,0.000000,320.400000 -2357,-3.0,90.000000,0.000000,321.300000 -2358,-3.0,90.000000,0.000000,322.200000 -2359,-3.0,90.000000,0.000000,323.100000 -2360,-3.0,90.000000,0.000000,324.000000 -2361,-3.0,90.000000,0.000000,324.900000 -2362,-3.0,90.000000,0.000000,325.800000 -2363,-3.0,90.000000,0.000000,326.700000 -2364,-3.0,90.000000,0.000000,327.600000 -2365,-3.0,90.000000,0.000000,328.500000 -2366,-3.0,90.000000,0.000000,329.400000 -2367,-3.0,90.000000,0.000000,330.300000 -2368,-3.0,90.000000,0.000000,331.200000 -2369,-3.0,90.000000,0.000000,332.100000 -2370,-3.0,90.000000,0.000000,333.000000 -2371,-3.0,90.000000,0.000000,333.900000 -2372,-3.0,90.000000,0.000000,334.800000 -2373,-3.0,90.000000,0.000000,335.700000 -2374,-3.0,90.000000,0.000000,336.600000 -2375,-3.0,90.000000,0.000000,337.500000 -2376,-3.0,90.000000,0.000000,338.400000 -2377,-3.0,90.000000,0.000000,339.300000 -2378,-3.0,90.000000,0.000000,340.200000 -2379,-3.0,90.000000,0.000000,341.100000 -2380,-3.0,90.000000,0.000000,342.000000 -2381,-3.0,90.000000,0.000000,342.900000 -2382,-3.0,90.000000,0.000000,343.800000 -2383,-3.0,90.000000,0.000000,344.700000 -2384,-3.0,90.000000,0.000000,345.600000 -2385,-3.0,90.000000,0.000000,346.500000 -2386,-3.0,90.000000,0.000000,347.400000 -2387,-3.0,90.000000,0.000000,348.300000 -2388,-3.0,90.000000,0.000000,349.200000 -2389,-3.0,90.000000,0.000000,350.100000 -2390,-3.0,90.000000,0.000000,351.000000 -2391,-3.0,90.000000,0.000000,351.900000 -2392,-3.0,90.000000,0.000000,352.800000 -2393,-3.0,90.000000,0.000000,353.700000 -2394,-3.0,90.000000,0.000000,354.600000 -2395,-3.0,90.000000,0.000000,355.500000 -2396,-3.0,90.000000,0.000000,356.400000 -2397,-3.0,90.000000,0.000000,357.300000 -2398,-3.0,90.000000,0.000000,358.200000 -2399,-3.0,90.000000,0.000000,359.100000 +-3.0,-360.000000,0.000000,0.000000 +-3.0,-359.100000,0.000000,0.000000 +-3.0,-358.200000,0.000000,0.000000 +-3.0,-357.300000,0.000000,0.000000 +-3.0,-356.400000,0.000000,0.000000 +-3.0,-355.500000,0.000000,0.000000 +-3.0,-354.600000,0.000000,0.000000 +-3.0,-353.700000,0.000000,0.000000 +-3.0,-352.800000,0.000000,0.000000 +-3.0,-351.900000,0.000000,0.000000 +-3.0,-351.000000,0.000000,0.000000 +-3.0,-350.100000,0.000000,0.000000 +-3.0,-349.200000,0.000000,0.000000 +-3.0,-348.300000,0.000000,0.000000 +-3.0,-347.400000,0.000000,0.000000 +-3.0,-346.500000,0.000000,0.000000 +-3.0,-345.600000,0.000000,0.000000 +-3.0,-344.700000,0.000000,0.000000 +-3.0,-343.800000,0.000000,0.000000 +-3.0,-342.900000,0.000000,0.000000 +-3.0,-342.000000,0.000000,0.000000 +-3.0,-341.100000,0.000000,0.000000 +-3.0,-340.200000,0.000000,0.000000 +-3.0,-339.300000,0.000000,0.000000 +-3.0,-338.400000,0.000000,0.000000 +-3.0,-337.500000,0.000000,0.000000 +-3.0,-336.600000,0.000000,0.000000 +-3.0,-335.700000,0.000000,0.000000 +-3.0,-334.800000,0.000000,0.000000 +-3.0,-333.900000,0.000000,0.000000 +-3.0,-333.000000,0.000000,0.000000 +-3.0,-332.100000,0.000000,0.000000 +-3.0,-331.200000,0.000000,0.000000 +-3.0,-330.300000,0.000000,0.000000 +-3.0,-329.400000,0.000000,0.000000 +-3.0,-328.500000,0.000000,0.000000 +-3.0,-327.600000,0.000000,0.000000 +-3.0,-326.700000,0.000000,0.000000 +-3.0,-325.800000,0.000000,0.000000 +-3.0,-324.900000,0.000000,0.000000 +-3.0,-324.000000,0.000000,0.000000 +-3.0,-323.100000,0.000000,0.000000 +-3.0,-322.200000,0.000000,0.000000 +-3.0,-321.300000,0.000000,0.000000 +-3.0,-320.400000,0.000000,0.000000 +-3.0,-319.500000,0.000000,0.000000 +-3.0,-318.600000,0.000000,0.000000 +-3.0,-317.700000,0.000000,0.000000 +-3.0,-316.800000,0.000000,0.000000 +-3.0,-315.900000,0.000000,0.000000 +-3.0,-315.000000,0.000000,0.000000 +-3.0,-314.100000,0.000000,0.000000 +-3.0,-313.200000,0.000000,0.000000 +-3.0,-312.300000,0.000000,0.000000 +-3.0,-311.400000,0.000000,0.000000 +-3.0,-310.500000,0.000000,0.000000 +-3.0,-309.600000,0.000000,0.000000 +-3.0,-308.700000,0.000000,0.000000 +-3.0,-307.800000,0.000000,0.000000 +-3.0,-306.900000,0.000000,0.000000 +-3.0,-306.000000,0.000000,0.000000 +-3.0,-305.100000,0.000000,0.000000 +-3.0,-304.200000,0.000000,0.000000 +-3.0,-303.300000,0.000000,0.000000 +-3.0,-302.400000,0.000000,0.000000 +-3.0,-301.500000,0.000000,0.000000 +-3.0,-300.600000,0.000000,0.000000 +-3.0,-299.700000,0.000000,0.000000 +-3.0,-298.800000,0.000000,0.000000 +-3.0,-297.900000,0.000000,0.000000 +-3.0,-297.000000,0.000000,0.000000 +-3.0,-296.100000,0.000000,0.000000 +-3.0,-295.200000,0.000000,0.000000 +-3.0,-294.300000,0.000000,0.000000 +-3.0,-293.400000,0.000000,0.000000 +-3.0,-292.500000,0.000000,0.000000 +-3.0,-291.600000,0.000000,0.000000 +-3.0,-290.700000,0.000000,0.000000 +-3.0,-289.800000,0.000000,0.000000 +-3.0,-288.900000,0.000000,0.000000 +-3.0,-288.000000,0.000000,0.000000 +-3.0,-287.100000,0.000000,0.000000 +-3.0,-286.200000,0.000000,0.000000 +-3.0,-285.300000,0.000000,0.000000 +-3.0,-284.400000,0.000000,0.000000 +-3.0,-283.500000,0.000000,0.000000 +-3.0,-282.600000,0.000000,0.000000 +-3.0,-281.700000,0.000000,0.000000 +-3.0,-280.800000,0.000000,0.000000 +-3.0,-279.900000,0.000000,0.000000 +-3.0,-279.000000,0.000000,0.000000 +-3.0,-278.100000,0.000000,0.000000 +-3.0,-277.200000,0.000000,0.000000 +-3.0,-276.300000,0.000000,0.000000 +-3.0,-275.400000,0.000000,0.000000 +-3.0,-274.500000,0.000000,0.000000 +-3.0,-273.600000,0.000000,0.000000 +-3.0,-272.700000,0.000000,0.000000 +-3.0,-271.800000,0.000000,0.000000 +-3.0,-270.900000,0.000000,0.000000 +-3.0,-270.000000,0.000000,0.000000 +-3.0,-269.100000,0.000000,0.000000 +-3.0,-268.200000,0.000000,0.000000 +-3.0,-267.300000,0.000000,0.000000 +-3.0,-266.400000,0.000000,0.000000 +-3.0,-265.500000,0.000000,0.000000 +-3.0,-264.600000,0.000000,0.000000 +-3.0,-263.700000,0.000000,0.000000 +-3.0,-262.800000,0.000000,0.000000 +-3.0,-261.900000,0.000000,0.000000 +-3.0,-261.000000,0.000000,0.000000 +-3.0,-260.100000,0.000000,0.000000 +-3.0,-259.200000,0.000000,0.000000 +-3.0,-258.300000,0.000000,0.000000 +-3.0,-257.400000,0.000000,0.000000 +-3.0,-256.500000,0.000000,0.000000 +-3.0,-255.600000,0.000000,0.000000 +-3.0,-254.700000,0.000000,0.000000 +-3.0,-253.800000,0.000000,0.000000 +-3.0,-252.900000,0.000000,0.000000 +-3.0,-252.000000,0.000000,0.000000 +-3.0,-251.100000,0.000000,0.000000 +-3.0,-250.200000,0.000000,0.000000 +-3.0,-249.300000,0.000000,0.000000 +-3.0,-248.400000,0.000000,0.000000 +-3.0,-247.500000,0.000000,0.000000 +-3.0,-246.600000,0.000000,0.000000 +-3.0,-245.700000,0.000000,0.000000 +-3.0,-244.800000,0.000000,0.000000 +-3.0,-243.900000,0.000000,0.000000 +-3.0,-243.000000,0.000000,0.000000 +-3.0,-242.100000,0.000000,0.000000 +-3.0,-241.200000,0.000000,0.000000 +-3.0,-240.300000,0.000000,0.000000 +-3.0,-239.400000,0.000000,0.000000 +-3.0,-238.500000,0.000000,0.000000 +-3.0,-237.600000,0.000000,0.000000 +-3.0,-236.700000,0.000000,0.000000 +-3.0,-235.800000,0.000000,0.000000 +-3.0,-234.900000,0.000000,0.000000 +-3.0,-234.000000,0.000000,0.000000 +-3.0,-233.100000,0.000000,0.000000 +-3.0,-232.200000,0.000000,0.000000 +-3.0,-231.300000,0.000000,0.000000 +-3.0,-230.400000,0.000000,0.000000 +-3.0,-229.500000,0.000000,0.000000 +-3.0,-228.600000,0.000000,0.000000 +-3.0,-227.700000,0.000000,0.000000 +-3.0,-226.800000,0.000000,0.000000 +-3.0,-225.900000,0.000000,0.000000 +-3.0,-225.000000,0.000000,0.000000 +-3.0,-224.100000,0.000000,0.000000 +-3.0,-223.200000,0.000000,0.000000 +-3.0,-222.300000,0.000000,0.000000 +-3.0,-221.400000,0.000000,0.000000 +-3.0,-220.500000,0.000000,0.000000 +-3.0,-219.600000,0.000000,0.000000 +-3.0,-218.700000,0.000000,0.000000 +-3.0,-217.800000,0.000000,0.000000 +-3.0,-216.900000,0.000000,0.000000 +-3.0,-216.000000,0.000000,0.000000 +-3.0,-215.100000,0.000000,0.000000 +-3.0,-214.200000,0.000000,0.000000 +-3.0,-213.300000,0.000000,0.000000 +-3.0,-212.400000,0.000000,0.000000 +-3.0,-211.500000,0.000000,0.000000 +-3.0,-210.600000,0.000000,0.000000 +-3.0,-209.700000,0.000000,0.000000 +-3.0,-208.800000,0.000000,0.000000 +-3.0,-207.900000,0.000000,0.000000 +-3.0,-207.000000,0.000000,0.000000 +-3.0,-206.100000,0.000000,0.000000 +-3.0,-205.200000,0.000000,0.000000 +-3.0,-204.300000,0.000000,0.000000 +-3.0,-203.400000,0.000000,0.000000 +-3.0,-202.500000,0.000000,0.000000 +-3.0,-201.600000,0.000000,0.000000 +-3.0,-200.700000,0.000000,0.000000 +-3.0,-199.800000,0.000000,0.000000 +-3.0,-198.900000,0.000000,0.000000 +-3.0,-198.000000,0.000000,0.000000 +-3.0,-197.100000,0.000000,0.000000 +-3.0,-196.200000,0.000000,0.000000 +-3.0,-195.300000,0.000000,0.000000 +-3.0,-194.400000,0.000000,0.000000 +-3.0,-193.500000,0.000000,0.000000 +-3.0,-192.600000,0.000000,0.000000 +-3.0,-191.700000,0.000000,0.000000 +-3.0,-190.800000,0.000000,0.000000 +-3.0,-189.900000,0.000000,0.000000 +-3.0,-189.000000,0.000000,0.000000 +-3.0,-188.100000,0.000000,0.000000 +-3.0,-187.200000,0.000000,0.000000 +-3.0,-186.300000,0.000000,0.000000 +-3.0,-185.400000,0.000000,0.000000 +-3.0,-184.500000,0.000000,0.000000 +-3.0,-183.600000,0.000000,0.000000 +-3.0,-182.700000,0.000000,0.000000 +-3.0,-181.800000,0.000000,0.000000 +-3.0,-180.900000,0.000000,0.000000 +-3.0,-180.000000,0.000000,0.000000 +-3.0,-179.100000,0.000000,0.000000 +-3.0,-178.200000,0.000000,0.000000 +-3.0,-177.300000,0.000000,0.000000 +-3.0,-176.400000,0.000000,0.000000 +-3.0,-175.500000,0.000000,0.000000 +-3.0,-174.600000,0.000000,0.000000 +-3.0,-173.700000,0.000000,0.000000 +-3.0,-172.800000,0.000000,0.000000 +-3.0,-171.900000,0.000000,0.000000 +-3.0,-171.000000,0.000000,0.000000 +-3.0,-170.100000,0.000000,0.000000 +-3.0,-169.200000,0.000000,0.000000 +-3.0,-168.300000,0.000000,0.000000 +-3.0,-167.400000,0.000000,0.000000 +-3.0,-166.500000,0.000000,0.000000 +-3.0,-165.600000,0.000000,0.000000 +-3.0,-164.700000,0.000000,0.000000 +-3.0,-163.800000,0.000000,0.000000 +-3.0,-162.900000,0.000000,0.000000 +-3.0,-162.000000,0.000000,0.000000 +-3.0,-161.100000,0.000000,0.000000 +-3.0,-160.200000,0.000000,0.000000 +-3.0,-159.300000,0.000000,0.000000 +-3.0,-158.400000,0.000000,0.000000 +-3.0,-157.500000,0.000000,0.000000 +-3.0,-156.600000,0.000000,0.000000 +-3.0,-155.700000,0.000000,0.000000 +-3.0,-154.800000,0.000000,0.000000 +-3.0,-153.900000,0.000000,0.000000 +-3.0,-153.000000,0.000000,0.000000 +-3.0,-152.100000,0.000000,0.000000 +-3.0,-151.200000,0.000000,0.000000 +-3.0,-150.300000,0.000000,0.000000 +-3.0,-149.400000,0.000000,0.000000 +-3.0,-148.500000,0.000000,0.000000 +-3.0,-147.600000,0.000000,0.000000 +-3.0,-146.700000,0.000000,0.000000 +-3.0,-145.800000,0.000000,0.000000 +-3.0,-144.900000,0.000000,0.000000 +-3.0,-144.000000,0.000000,0.000000 +-3.0,-143.100000,0.000000,0.000000 +-3.0,-142.200000,0.000000,0.000000 +-3.0,-141.300000,0.000000,0.000000 +-3.0,-140.400000,0.000000,0.000000 +-3.0,-139.500000,0.000000,0.000000 +-3.0,-138.600000,0.000000,0.000000 +-3.0,-137.700000,0.000000,0.000000 +-3.0,-136.800000,0.000000,0.000000 +-3.0,-135.900000,0.000000,0.000000 +-3.0,-135.000000,0.000000,0.000000 +-3.0,-134.100000,0.000000,0.000000 +-3.0,-133.200000,0.000000,0.000000 +-3.0,-132.300000,0.000000,0.000000 +-3.0,-131.400000,0.000000,0.000000 +-3.0,-130.500000,0.000000,0.000000 +-3.0,-129.600000,0.000000,0.000000 +-3.0,-128.700000,0.000000,0.000000 +-3.0,-127.800000,0.000000,0.000000 +-3.0,-126.900000,0.000000,0.000000 +-3.0,-126.000000,0.000000,0.000000 +-3.0,-125.100000,0.000000,0.000000 +-3.0,-124.200000,0.000000,0.000000 +-3.0,-123.300000,0.000000,0.000000 +-3.0,-122.400000,0.000000,0.000000 +-3.0,-121.500000,0.000000,0.000000 +-3.0,-120.600000,0.000000,0.000000 +-3.0,-119.700000,0.000000,0.000000 +-3.0,-118.800000,0.000000,0.000000 +-3.0,-117.900000,0.000000,0.000000 +-3.0,-117.000000,0.000000,0.000000 +-3.0,-116.100000,0.000000,0.000000 +-3.0,-115.200000,0.000000,0.000000 +-3.0,-114.300000,0.000000,0.000000 +-3.0,-113.400000,0.000000,0.000000 +-3.0,-112.500000,0.000000,0.000000 +-3.0,-111.600000,0.000000,0.000000 +-3.0,-110.700000,0.000000,0.000000 +-3.0,-109.800000,0.000000,0.000000 +-3.0,-108.900000,0.000000,0.000000 +-3.0,-108.000000,0.000000,0.000000 +-3.0,-107.100000,0.000000,0.000000 +-3.0,-106.200000,0.000000,0.000000 +-3.0,-105.300000,0.000000,0.000000 +-3.0,-104.400000,0.000000,0.000000 +-3.0,-103.500000,0.000000,0.000000 +-3.0,-102.600000,0.000000,0.000000 +-3.0,-101.700000,0.000000,0.000000 +-3.0,-100.800000,0.000000,0.000000 +-3.0,-99.900000,0.000000,0.000000 +-3.0,-99.000000,0.000000,0.000000 +-3.0,-98.100000,0.000000,0.000000 +-3.0,-97.200000,0.000000,0.000000 +-3.0,-96.300000,0.000000,0.000000 +-3.0,-95.400000,0.000000,0.000000 +-3.0,-94.500000,0.000000,0.000000 +-3.0,-93.600000,0.000000,0.000000 +-3.0,-92.700000,0.000000,0.000000 +-3.0,-91.800000,0.000000,0.000000 +-3.0,-90.900000,0.000000,0.000000 +-3.0,-90.000000,0.000000,0.000000 +-3.0,-89.100000,0.000000,0.000000 +-3.0,-88.200000,0.000000,0.000000 +-3.0,-87.300000,0.000000,0.000000 +-3.0,-86.400000,0.000000,0.000000 +-3.0,-85.500000,0.000000,0.000000 +-3.0,-84.600000,0.000000,0.000000 +-3.0,-83.700000,0.000000,0.000000 +-3.0,-82.800000,0.000000,0.000000 +-3.0,-81.900000,0.000000,0.000000 +-3.0,-81.000000,0.000000,0.000000 +-3.0,-80.100000,0.000000,0.000000 +-3.0,-79.200000,0.000000,0.000000 +-3.0,-78.300000,0.000000,0.000000 +-3.0,-77.400000,0.000000,0.000000 +-3.0,-76.500000,0.000000,0.000000 +-3.0,-75.600000,0.000000,0.000000 +-3.0,-74.700000,0.000000,0.000000 +-3.0,-73.800000,0.000000,0.000000 +-3.0,-72.900000,0.000000,0.000000 +-3.0,-72.000000,0.000000,0.000000 +-3.0,-71.100000,0.000000,0.000000 +-3.0,-70.200000,0.000000,0.000000 +-3.0,-69.300000,0.000000,0.000000 +-3.0,-68.400000,0.000000,0.000000 +-3.0,-67.500000,0.000000,0.000000 +-3.0,-66.600000,0.000000,0.000000 +-3.0,-65.700000,0.000000,0.000000 +-3.0,-64.800000,0.000000,0.000000 +-3.0,-63.900000,0.000000,0.000000 +-3.0,-63.000000,0.000000,0.000000 +-3.0,-62.100000,0.000000,0.000000 +-3.0,-61.200000,0.000000,0.000000 +-3.0,-60.300000,0.000000,0.000000 +-3.0,-59.400000,0.000000,0.000000 +-3.0,-58.500000,0.000000,0.000000 +-3.0,-57.600000,0.000000,0.000000 +-3.0,-56.700000,0.000000,0.000000 +-3.0,-55.800000,0.000000,0.000000 +-3.0,-54.900000,0.000000,0.000000 +-3.0,-54.000000,0.000000,0.000000 +-3.0,-53.100000,0.000000,0.000000 +-3.0,-52.200000,0.000000,0.000000 +-3.0,-51.300000,0.000000,0.000000 +-3.0,-50.400000,0.000000,0.000000 +-3.0,-49.500000,0.000000,0.000000 +-3.0,-48.600000,0.000000,0.000000 +-3.0,-47.700000,0.000000,0.000000 +-3.0,-46.800000,0.000000,0.000000 +-3.0,-45.900000,0.000000,0.000000 +-3.0,-45.000000,0.000000,0.000000 +-3.0,-44.100000,0.000000,0.000000 +-3.0,-43.200000,0.000000,0.000000 +-3.0,-42.300000,0.000000,0.000000 +-3.0,-41.400000,0.000000,0.000000 +-3.0,-40.500000,0.000000,0.000000 +-3.0,-39.600000,0.000000,0.000000 +-3.0,-38.700000,0.000000,0.000000 +-3.0,-37.800000,0.000000,0.000000 +-3.0,-36.900000,0.000000,0.000000 +-3.0,-36.000000,0.000000,0.000000 +-3.0,-35.100000,0.000000,0.000000 +-3.0,-34.200000,0.000000,0.000000 +-3.0,-33.300000,0.000000,0.000000 +-3.0,-32.400000,0.000000,0.000000 +-3.0,-31.500000,0.000000,0.000000 +-3.0,-30.600000,0.000000,0.000000 +-3.0,-29.700000,0.000000,0.000000 +-3.0,-28.800000,0.000000,0.000000 +-3.0,-27.900000,0.000000,0.000000 +-3.0,-27.000000,0.000000,0.000000 +-3.0,-26.100000,0.000000,0.000000 +-3.0,-25.200000,0.000000,0.000000 +-3.0,-24.300000,0.000000,0.000000 +-3.0,-23.400000,0.000000,0.000000 +-3.0,-22.500000,0.000000,0.000000 +-3.0,-21.600000,0.000000,0.000000 +-3.0,-20.700000,0.000000,0.000000 +-3.0,-19.800000,0.000000,0.000000 +-3.0,-18.900000,0.000000,0.000000 +-3.0,-18.000000,0.000000,0.000000 +-3.0,-17.100000,0.000000,0.000000 +-3.0,-16.200000,0.000000,0.000000 +-3.0,-15.300000,0.000000,0.000000 +-3.0,-14.400000,0.000000,0.000000 +-3.0,-13.500000,0.000000,0.000000 +-3.0,-12.600000,0.000000,0.000000 +-3.0,-11.700000,0.000000,0.000000 +-3.0,-10.800000,0.000000,0.000000 +-3.0,-9.900000,0.000000,0.000000 +-3.0,-9.000000,0.000000,0.000000 +-3.0,-8.100000,0.000000,0.000000 +-3.0,-7.200000,0.000000,0.000000 +-3.0,-6.300000,0.000000,0.000000 +-3.0,-5.400000,0.000000,0.000000 +-3.0,-4.500000,0.000000,0.000000 +-3.0,-3.600000,0.000000,0.000000 +-3.0,-2.700000,0.000000,0.000000 +-3.0,-1.800000,0.000000,0.000000 +-3.0,-0.900000,0.000000,0.000000 +-3.0,0.000000,0.000000,0.000000 +-3.0,0.900000,0.000000,0.000000 +-3.0,1.800000,0.000000,0.000000 +-3.0,2.700000,0.000000,0.000000 +-3.0,3.600000,0.000000,0.000000 +-3.0,4.500000,0.000000,0.000000 +-3.0,5.400000,0.000000,0.000000 +-3.0,6.300000,0.000000,0.000000 +-3.0,7.200000,0.000000,0.000000 +-3.0,8.100000,0.000000,0.000000 +-3.0,9.000000,0.000000,0.000000 +-3.0,9.900000,0.000000,0.000000 +-3.0,10.800000,0.000000,0.000000 +-3.0,11.700000,0.000000,0.000000 +-3.0,12.600000,0.000000,0.000000 +-3.0,13.500000,0.000000,0.000000 +-3.0,14.400000,0.000000,0.000000 +-3.0,15.300000,0.000000,0.000000 +-3.0,16.200000,0.000000,0.000000 +-3.0,17.100000,0.000000,0.000000 +-3.0,18.000000,0.000000,0.000000 +-3.0,18.900000,0.000000,0.000000 +-3.0,19.800000,0.000000,0.000000 +-3.0,20.700000,0.000000,0.000000 +-3.0,21.600000,0.000000,0.000000 +-3.0,22.500000,0.000000,0.000000 +-3.0,23.400000,0.000000,0.000000 +-3.0,24.300000,0.000000,0.000000 +-3.0,25.200000,0.000000,0.000000 +-3.0,26.100000,0.000000,0.000000 +-3.0,27.000000,0.000000,0.000000 +-3.0,27.900000,0.000000,0.000000 +-3.0,28.800000,0.000000,0.000000 +-3.0,29.700000,0.000000,0.000000 +-3.0,30.600000,0.000000,0.000000 +-3.0,31.500000,0.000000,0.000000 +-3.0,32.400000,0.000000,0.000000 +-3.0,33.300000,0.000000,0.000000 +-3.0,34.200000,0.000000,0.000000 +-3.0,35.100000,0.000000,0.000000 +-3.0,36.000000,0.000000,0.000000 +-3.0,36.900000,0.000000,0.000000 +-3.0,37.800000,0.000000,0.000000 +-3.0,38.700000,0.000000,0.000000 +-3.0,39.600000,0.000000,0.000000 +-3.0,40.500000,0.000000,0.000000 +-3.0,41.400000,0.000000,0.000000 +-3.0,42.300000,0.000000,0.000000 +-3.0,43.200000,0.000000,0.000000 +-3.0,44.100000,0.000000,0.000000 +-3.0,45.000000,0.000000,0.000000 +-3.0,45.900000,0.000000,0.000000 +-3.0,46.800000,0.000000,0.000000 +-3.0,47.700000,0.000000,0.000000 +-3.0,48.600000,0.000000,0.000000 +-3.0,49.500000,0.000000,0.000000 +-3.0,50.400000,0.000000,0.000000 +-3.0,51.300000,0.000000,0.000000 +-3.0,52.200000,0.000000,0.000000 +-3.0,53.100000,0.000000,0.000000 +-3.0,54.000000,0.000000,0.000000 +-3.0,54.900000,0.000000,0.000000 +-3.0,55.800000,0.000000,0.000000 +-3.0,56.700000,0.000000,0.000000 +-3.0,57.600000,0.000000,0.000000 +-3.0,58.500000,0.000000,0.000000 +-3.0,59.400000,0.000000,0.000000 +-3.0,60.300000,0.000000,0.000000 +-3.0,61.200000,0.000000,0.000000 +-3.0,62.100000,0.000000,0.000000 +-3.0,63.000000,0.000000,0.000000 +-3.0,63.900000,0.000000,0.000000 +-3.0,64.800000,0.000000,0.000000 +-3.0,65.700000,0.000000,0.000000 +-3.0,66.600000,0.000000,0.000000 +-3.0,67.500000,0.000000,0.000000 +-3.0,68.400000,0.000000,0.000000 +-3.0,69.300000,0.000000,0.000000 +-3.0,70.200000,0.000000,0.000000 +-3.0,71.100000,0.000000,0.000000 +-3.0,72.000000,0.000000,0.000000 +-3.0,72.900000,0.000000,0.000000 +-3.0,73.800000,0.000000,0.000000 +-3.0,74.700000,0.000000,0.000000 +-3.0,75.600000,0.000000,0.000000 +-3.0,76.500000,0.000000,0.000000 +-3.0,77.400000,0.000000,0.000000 +-3.0,78.300000,0.000000,0.000000 +-3.0,79.200000,0.000000,0.000000 +-3.0,80.100000,0.000000,0.000000 +-3.0,81.000000,0.000000,0.000000 +-3.0,81.900000,0.000000,0.000000 +-3.0,82.800000,0.000000,0.000000 +-3.0,83.700000,0.000000,0.000000 +-3.0,84.600000,0.000000,0.000000 +-3.0,85.500000,0.000000,0.000000 +-3.0,86.400000,0.000000,0.000000 +-3.0,87.300000,0.000000,0.000000 +-3.0,88.200000,0.000000,0.000000 +-3.0,89.100000,0.000000,0.000000 +-3.0,90.000000,0.000000,0.000000 +-3.0,90.900000,0.000000,0.000000 +-3.0,91.800000,0.000000,0.000000 +-3.0,92.700000,0.000000,0.000000 +-3.0,93.600000,0.000000,0.000000 +-3.0,94.500000,0.000000,0.000000 +-3.0,95.400000,0.000000,0.000000 +-3.0,96.300000,0.000000,0.000000 +-3.0,97.200000,0.000000,0.000000 +-3.0,98.100000,0.000000,0.000000 +-3.0,99.000000,0.000000,0.000000 +-3.0,99.900000,0.000000,0.000000 +-3.0,100.800000,0.000000,0.000000 +-3.0,101.700000,0.000000,0.000000 +-3.0,102.600000,0.000000,0.000000 +-3.0,103.500000,0.000000,0.000000 +-3.0,104.400000,0.000000,0.000000 +-3.0,105.300000,0.000000,0.000000 +-3.0,106.200000,0.000000,0.000000 +-3.0,107.100000,0.000000,0.000000 +-3.0,108.000000,0.000000,0.000000 +-3.0,108.900000,0.000000,0.000000 +-3.0,109.800000,0.000000,0.000000 +-3.0,110.700000,0.000000,0.000000 +-3.0,111.600000,0.000000,0.000000 +-3.0,112.500000,0.000000,0.000000 +-3.0,113.400000,0.000000,0.000000 +-3.0,114.300000,0.000000,0.000000 +-3.0,115.200000,0.000000,0.000000 +-3.0,116.100000,0.000000,0.000000 +-3.0,117.000000,0.000000,0.000000 +-3.0,117.900000,0.000000,0.000000 +-3.0,118.800000,0.000000,0.000000 +-3.0,119.700000,0.000000,0.000000 +-3.0,120.600000,0.000000,0.000000 +-3.0,121.500000,0.000000,0.000000 +-3.0,122.400000,0.000000,0.000000 +-3.0,123.300000,0.000000,0.000000 +-3.0,124.200000,0.000000,0.000000 +-3.0,125.100000,0.000000,0.000000 +-3.0,126.000000,0.000000,0.000000 +-3.0,126.900000,0.000000,0.000000 +-3.0,127.800000,0.000000,0.000000 +-3.0,128.700000,0.000000,0.000000 +-3.0,129.600000,0.000000,0.000000 +-3.0,130.500000,0.000000,0.000000 +-3.0,131.400000,0.000000,0.000000 +-3.0,132.300000,0.000000,0.000000 +-3.0,133.200000,0.000000,0.000000 +-3.0,134.100000,0.000000,0.000000 +-3.0,135.000000,0.000000,0.000000 +-3.0,135.900000,0.000000,0.000000 +-3.0,136.800000,0.000000,0.000000 +-3.0,137.700000,0.000000,0.000000 +-3.0,138.600000,0.000000,0.000000 +-3.0,139.500000,0.000000,0.000000 +-3.0,140.400000,0.000000,0.000000 +-3.0,141.300000,0.000000,0.000000 +-3.0,142.200000,0.000000,0.000000 +-3.0,143.100000,0.000000,0.000000 +-3.0,144.000000,0.000000,0.000000 +-3.0,144.900000,0.000000,0.000000 +-3.0,145.800000,0.000000,0.000000 +-3.0,146.700000,0.000000,0.000000 +-3.0,147.600000,0.000000,0.000000 +-3.0,148.500000,0.000000,0.000000 +-3.0,149.400000,0.000000,0.000000 +-3.0,150.300000,0.000000,0.000000 +-3.0,151.200000,0.000000,0.000000 +-3.0,152.100000,0.000000,0.000000 +-3.0,153.000000,0.000000,0.000000 +-3.0,153.900000,0.000000,0.000000 +-3.0,154.800000,0.000000,0.000000 +-3.0,155.700000,0.000000,0.000000 +-3.0,156.600000,0.000000,0.000000 +-3.0,157.500000,0.000000,0.000000 +-3.0,158.400000,0.000000,0.000000 +-3.0,159.300000,0.000000,0.000000 +-3.0,160.200000,0.000000,0.000000 +-3.0,161.100000,0.000000,0.000000 +-3.0,162.000000,0.000000,0.000000 +-3.0,162.900000,0.000000,0.000000 +-3.0,163.800000,0.000000,0.000000 +-3.0,164.700000,0.000000,0.000000 +-3.0,165.600000,0.000000,0.000000 +-3.0,166.500000,0.000000,0.000000 +-3.0,167.400000,0.000000,0.000000 +-3.0,168.300000,0.000000,0.000000 +-3.0,169.200000,0.000000,0.000000 +-3.0,170.100000,0.000000,0.000000 +-3.0,171.000000,0.000000,0.000000 +-3.0,171.900000,0.000000,0.000000 +-3.0,172.800000,0.000000,0.000000 +-3.0,173.700000,0.000000,0.000000 +-3.0,174.600000,0.000000,0.000000 +-3.0,175.500000,0.000000,0.000000 +-3.0,176.400000,0.000000,0.000000 +-3.0,177.300000,0.000000,0.000000 +-3.0,178.200000,0.000000,0.000000 +-3.0,179.100000,0.000000,0.000000 +-3.0,180.000000,0.000000,0.000000 +-3.0,180.900000,0.000000,0.000000 +-3.0,181.800000,0.000000,0.000000 +-3.0,182.700000,0.000000,0.000000 +-3.0,183.600000,0.000000,0.000000 +-3.0,184.500000,0.000000,0.000000 +-3.0,185.400000,0.000000,0.000000 +-3.0,186.300000,0.000000,0.000000 +-3.0,187.200000,0.000000,0.000000 +-3.0,188.100000,0.000000,0.000000 +-3.0,189.000000,0.000000,0.000000 +-3.0,189.900000,0.000000,0.000000 +-3.0,190.800000,0.000000,0.000000 +-3.0,191.700000,0.000000,0.000000 +-3.0,192.600000,0.000000,0.000000 +-3.0,193.500000,0.000000,0.000000 +-3.0,194.400000,0.000000,0.000000 +-3.0,195.300000,0.000000,0.000000 +-3.0,196.200000,0.000000,0.000000 +-3.0,197.100000,0.000000,0.000000 +-3.0,198.000000,0.000000,0.000000 +-3.0,198.900000,0.000000,0.000000 +-3.0,199.800000,0.000000,0.000000 +-3.0,200.700000,0.000000,0.000000 +-3.0,201.600000,0.000000,0.000000 +-3.0,202.500000,0.000000,0.000000 +-3.0,203.400000,0.000000,0.000000 +-3.0,204.300000,0.000000,0.000000 +-3.0,205.200000,0.000000,0.000000 +-3.0,206.100000,0.000000,0.000000 +-3.0,207.000000,0.000000,0.000000 +-3.0,207.900000,0.000000,0.000000 +-3.0,208.800000,0.000000,0.000000 +-3.0,209.700000,0.000000,0.000000 +-3.0,210.600000,0.000000,0.000000 +-3.0,211.500000,0.000000,0.000000 +-3.0,212.400000,0.000000,0.000000 +-3.0,213.300000,0.000000,0.000000 +-3.0,214.200000,0.000000,0.000000 +-3.0,215.100000,0.000000,0.000000 +-3.0,216.000000,0.000000,0.000000 +-3.0,216.900000,0.000000,0.000000 +-3.0,217.800000,0.000000,0.000000 +-3.0,218.700000,0.000000,0.000000 +-3.0,219.600000,0.000000,0.000000 +-3.0,220.500000,0.000000,0.000000 +-3.0,221.400000,0.000000,0.000000 +-3.0,222.300000,0.000000,0.000000 +-3.0,223.200000,0.000000,0.000000 +-3.0,224.100000,0.000000,0.000000 +-3.0,225.000000,0.000000,0.000000 +-3.0,225.900000,0.000000,0.000000 +-3.0,226.800000,0.000000,0.000000 +-3.0,227.700000,0.000000,0.000000 +-3.0,228.600000,0.000000,0.000000 +-3.0,229.500000,0.000000,0.000000 +-3.0,230.400000,0.000000,0.000000 +-3.0,231.300000,0.000000,0.000000 +-3.0,232.200000,0.000000,0.000000 +-3.0,233.100000,0.000000,0.000000 +-3.0,234.000000,0.000000,0.000000 +-3.0,234.900000,0.000000,0.000000 +-3.0,235.800000,0.000000,0.000000 +-3.0,236.700000,0.000000,0.000000 +-3.0,237.600000,0.000000,0.000000 +-3.0,238.500000,0.000000,0.000000 +-3.0,239.400000,0.000000,0.000000 +-3.0,240.300000,0.000000,0.000000 +-3.0,241.200000,0.000000,0.000000 +-3.0,242.100000,0.000000,0.000000 +-3.0,243.000000,0.000000,0.000000 +-3.0,243.900000,0.000000,0.000000 +-3.0,244.800000,0.000000,0.000000 +-3.0,245.700000,0.000000,0.000000 +-3.0,246.600000,0.000000,0.000000 +-3.0,247.500000,0.000000,0.000000 +-3.0,248.400000,0.000000,0.000000 +-3.0,249.300000,0.000000,0.000000 +-3.0,250.200000,0.000000,0.000000 +-3.0,251.100000,0.000000,0.000000 +-3.0,252.000000,0.000000,0.000000 +-3.0,252.900000,0.000000,0.000000 +-3.0,253.800000,0.000000,0.000000 +-3.0,254.700000,0.000000,0.000000 +-3.0,255.600000,0.000000,0.000000 +-3.0,256.500000,0.000000,0.000000 +-3.0,257.400000,0.000000,0.000000 +-3.0,258.300000,0.000000,0.000000 +-3.0,259.200000,0.000000,0.000000 +-3.0,260.100000,0.000000,0.000000 +-3.0,261.000000,0.000000,0.000000 +-3.0,261.900000,0.000000,0.000000 +-3.0,262.800000,0.000000,0.000000 +-3.0,263.700000,0.000000,0.000000 +-3.0,264.600000,0.000000,0.000000 +-3.0,265.500000,0.000000,0.000000 +-3.0,266.400000,0.000000,0.000000 +-3.0,267.300000,0.000000,0.000000 +-3.0,268.200000,0.000000,0.000000 +-3.0,269.100000,0.000000,0.000000 +-3.0,270.000000,0.000000,0.000000 +-3.0,270.900000,0.000000,0.000000 +-3.0,271.800000,0.000000,0.000000 +-3.0,272.700000,0.000000,0.000000 +-3.0,273.600000,0.000000,0.000000 +-3.0,274.500000,0.000000,0.000000 +-3.0,275.400000,0.000000,0.000000 +-3.0,276.300000,0.000000,0.000000 +-3.0,277.200000,0.000000,0.000000 +-3.0,278.100000,0.000000,0.000000 +-3.0,279.000000,0.000000,0.000000 +-3.0,279.900000,0.000000,0.000000 +-3.0,280.800000,0.000000,0.000000 +-3.0,281.700000,0.000000,0.000000 +-3.0,282.600000,0.000000,0.000000 +-3.0,283.500000,0.000000,0.000000 +-3.0,284.400000,0.000000,0.000000 +-3.0,285.300000,0.000000,0.000000 +-3.0,286.200000,0.000000,0.000000 +-3.0,287.100000,0.000000,0.000000 +-3.0,288.000000,0.000000,0.000000 +-3.0,288.900000,0.000000,0.000000 +-3.0,289.800000,0.000000,0.000000 +-3.0,290.700000,0.000000,0.000000 +-3.0,291.600000,0.000000,0.000000 +-3.0,292.500000,0.000000,0.000000 +-3.0,293.400000,0.000000,0.000000 +-3.0,294.300000,0.000000,0.000000 +-3.0,295.200000,0.000000,0.000000 +-3.0,296.100000,0.000000,0.000000 +-3.0,297.000000,0.000000,0.000000 +-3.0,297.900000,0.000000,0.000000 +-3.0,298.800000,0.000000,0.000000 +-3.0,299.700000,0.000000,0.000000 +-3.0,300.600000,0.000000,0.000000 +-3.0,301.500000,0.000000,0.000000 +-3.0,302.400000,0.000000,0.000000 +-3.0,303.300000,0.000000,0.000000 +-3.0,304.200000,0.000000,0.000000 +-3.0,305.100000,0.000000,0.000000 +-3.0,306.000000,0.000000,0.000000 +-3.0,306.900000,0.000000,0.000000 +-3.0,307.800000,0.000000,0.000000 +-3.0,308.700000,0.000000,0.000000 +-3.0,309.600000,0.000000,0.000000 +-3.0,310.500000,0.000000,0.000000 +-3.0,311.400000,0.000000,0.000000 +-3.0,312.300000,0.000000,0.000000 +-3.0,313.200000,0.000000,0.000000 +-3.0,314.100000,0.000000,0.000000 +-3.0,315.000000,0.000000,0.000000 +-3.0,315.900000,0.000000,0.000000 +-3.0,316.800000,0.000000,0.000000 +-3.0,317.700000,0.000000,0.000000 +-3.0,318.600000,0.000000,0.000000 +-3.0,319.500000,0.000000,0.000000 +-3.0,320.400000,0.000000,0.000000 +-3.0,321.300000,0.000000,0.000000 +-3.0,322.200000,0.000000,0.000000 +-3.0,323.100000,0.000000,0.000000 +-3.0,324.000000,0.000000,0.000000 +-3.0,324.900000,0.000000,0.000000 +-3.0,325.800000,0.000000,0.000000 +-3.0,326.700000,0.000000,0.000000 +-3.0,327.600000,0.000000,0.000000 +-3.0,328.500000,0.000000,0.000000 +-3.0,329.400000,0.000000,0.000000 +-3.0,330.300000,0.000000,0.000000 +-3.0,331.200000,0.000000,0.000000 +-3.0,332.100000,0.000000,0.000000 +-3.0,333.000000,0.000000,0.000000 +-3.0,333.900000,0.000000,0.000000 +-3.0,334.800000,0.000000,0.000000 +-3.0,335.700000,0.000000,0.000000 +-3.0,336.600000,0.000000,0.000000 +-3.0,337.500000,0.000000,0.000000 +-3.0,338.400000,0.000000,0.000000 +-3.0,339.300000,0.000000,0.000000 +-3.0,340.200000,0.000000,0.000000 +-3.0,341.100000,0.000000,0.000000 +-3.0,342.000000,0.000000,0.000000 +-3.0,342.900000,0.000000,0.000000 +-3.0,343.800000,0.000000,0.000000 +-3.0,344.700000,0.000000,0.000000 +-3.0,345.600000,0.000000,0.000000 +-3.0,346.500000,0.000000,0.000000 +-3.0,347.400000,0.000000,0.000000 +-3.0,348.300000,0.000000,0.000000 +-3.0,349.200000,0.000000,0.000000 +-3.0,350.100000,0.000000,0.000000 +-3.0,351.000000,0.000000,0.000000 +-3.0,351.900000,0.000000,0.000000 +-3.0,352.800000,0.000000,0.000000 +-3.0,353.700000,0.000000,0.000000 +-3.0,354.600000,0.000000,0.000000 +-3.0,355.500000,0.000000,0.000000 +-3.0,356.400000,0.000000,0.000000 +-3.0,357.300000,0.000000,0.000000 +-3.0,358.200000,0.000000,0.000000 +-3.0,359.100000,0.000000,0.000000 +-3.0,0.000000,-360.000000,0.000000 +-3.0,0.000000,-359.100000,0.000000 +-3.0,0.000000,-358.200000,0.000000 +-3.0,0.000000,-357.300000,0.000000 +-3.0,0.000000,-356.400000,0.000000 +-3.0,0.000000,-355.500000,0.000000 +-3.0,0.000000,-354.600000,0.000000 +-3.0,0.000000,-353.700000,0.000000 +-3.0,0.000000,-352.800000,0.000000 +-3.0,0.000000,-351.900000,0.000000 +-3.0,0.000000,-351.000000,0.000000 +-3.0,0.000000,-350.100000,0.000000 +-3.0,0.000000,-349.200000,0.000000 +-3.0,0.000000,-348.300000,0.000000 +-3.0,0.000000,-347.400000,0.000000 +-3.0,0.000000,-346.500000,0.000000 +-3.0,0.000000,-345.600000,0.000000 +-3.0,0.000000,-344.700000,0.000000 +-3.0,0.000000,-343.800000,0.000000 +-3.0,0.000000,-342.900000,0.000000 +-3.0,0.000000,-342.000000,0.000000 +-3.0,0.000000,-341.100000,0.000000 +-3.0,0.000000,-340.200000,0.000000 +-3.0,0.000000,-339.300000,0.000000 +-3.0,0.000000,-338.400000,0.000000 +-3.0,0.000000,-337.500000,0.000000 +-3.0,0.000000,-336.600000,0.000000 +-3.0,0.000000,-335.700000,0.000000 +-3.0,0.000000,-334.800000,0.000000 +-3.0,0.000000,-333.900000,0.000000 +-3.0,0.000000,-333.000000,0.000000 +-3.0,0.000000,-332.100000,0.000000 +-3.0,0.000000,-331.200000,0.000000 +-3.0,0.000000,-330.300000,0.000000 +-3.0,0.000000,-329.400000,0.000000 +-3.0,0.000000,-328.500000,0.000000 +-3.0,0.000000,-327.600000,0.000000 +-3.0,0.000000,-326.700000,0.000000 +-3.0,0.000000,-325.800000,0.000000 +-3.0,0.000000,-324.900000,0.000000 +-3.0,0.000000,-324.000000,0.000000 +-3.0,0.000000,-323.100000,0.000000 +-3.0,0.000000,-322.200000,0.000000 +-3.0,0.000000,-321.300000,0.000000 +-3.0,0.000000,-320.400000,0.000000 +-3.0,0.000000,-319.500000,0.000000 +-3.0,0.000000,-318.600000,0.000000 +-3.0,0.000000,-317.700000,0.000000 +-3.0,0.000000,-316.800000,0.000000 +-3.0,0.000000,-315.900000,0.000000 +-3.0,0.000000,-315.000000,0.000000 +-3.0,0.000000,-314.100000,0.000000 +-3.0,0.000000,-313.200000,0.000000 +-3.0,0.000000,-312.300000,0.000000 +-3.0,0.000000,-311.400000,0.000000 +-3.0,0.000000,-310.500000,0.000000 +-3.0,0.000000,-309.600000,0.000000 +-3.0,0.000000,-308.700000,0.000000 +-3.0,0.000000,-307.800000,0.000000 +-3.0,0.000000,-306.900000,0.000000 +-3.0,0.000000,-306.000000,0.000000 +-3.0,0.000000,-305.100000,0.000000 +-3.0,0.000000,-304.200000,0.000000 +-3.0,0.000000,-303.300000,0.000000 +-3.0,0.000000,-302.400000,0.000000 +-3.0,0.000000,-301.500000,0.000000 +-3.0,0.000000,-300.600000,0.000000 +-3.0,0.000000,-299.700000,0.000000 +-3.0,0.000000,-298.800000,0.000000 +-3.0,0.000000,-297.900000,0.000000 +-3.0,0.000000,-297.000000,0.000000 +-3.0,0.000000,-296.100000,0.000000 +-3.0,0.000000,-295.200000,0.000000 +-3.0,0.000000,-294.300000,0.000000 +-3.0,0.000000,-293.400000,0.000000 +-3.0,0.000000,-292.500000,0.000000 +-3.0,0.000000,-291.600000,0.000000 +-3.0,0.000000,-290.700000,0.000000 +-3.0,0.000000,-289.800000,0.000000 +-3.0,0.000000,-288.900000,0.000000 +-3.0,0.000000,-288.000000,0.000000 +-3.0,0.000000,-287.100000,0.000000 +-3.0,0.000000,-286.200000,0.000000 +-3.0,0.000000,-285.300000,0.000000 +-3.0,0.000000,-284.400000,0.000000 +-3.0,0.000000,-283.500000,0.000000 +-3.0,0.000000,-282.600000,0.000000 +-3.0,0.000000,-281.700000,0.000000 +-3.0,0.000000,-280.800000,0.000000 +-3.0,0.000000,-279.900000,0.000000 +-3.0,0.000000,-279.000000,0.000000 +-3.0,0.000000,-278.100000,0.000000 +-3.0,0.000000,-277.200000,0.000000 +-3.0,0.000000,-276.300000,0.000000 +-3.0,0.000000,-275.400000,0.000000 +-3.0,0.000000,-274.500000,0.000000 +-3.0,0.000000,-273.600000,0.000000 +-3.0,0.000000,-272.700000,0.000000 +-3.0,0.000000,-271.800000,0.000000 +-3.0,0.000000,-270.900000,0.000000 +-3.0,0.000000,-270.000000,0.000000 +-3.0,0.000000,-269.100000,0.000000 +-3.0,0.000000,-268.200000,0.000000 +-3.0,0.000000,-267.300000,0.000000 +-3.0,0.000000,-266.400000,0.000000 +-3.0,0.000000,-265.500000,0.000000 +-3.0,0.000000,-264.600000,0.000000 +-3.0,0.000000,-263.700000,0.000000 +-3.0,0.000000,-262.800000,0.000000 +-3.0,0.000000,-261.900000,0.000000 +-3.0,0.000000,-261.000000,0.000000 +-3.0,0.000000,-260.100000,0.000000 +-3.0,0.000000,-259.200000,0.000000 +-3.0,0.000000,-258.300000,0.000000 +-3.0,0.000000,-257.400000,0.000000 +-3.0,0.000000,-256.500000,0.000000 +-3.0,0.000000,-255.600000,0.000000 +-3.0,0.000000,-254.700000,0.000000 +-3.0,0.000000,-253.800000,0.000000 +-3.0,0.000000,-252.900000,0.000000 +-3.0,0.000000,-252.000000,0.000000 +-3.0,0.000000,-251.100000,0.000000 +-3.0,0.000000,-250.200000,0.000000 +-3.0,0.000000,-249.300000,0.000000 +-3.0,0.000000,-248.400000,0.000000 +-3.0,0.000000,-247.500000,0.000000 +-3.0,0.000000,-246.600000,0.000000 +-3.0,0.000000,-245.700000,0.000000 +-3.0,0.000000,-244.800000,0.000000 +-3.0,0.000000,-243.900000,0.000000 +-3.0,0.000000,-243.000000,0.000000 +-3.0,0.000000,-242.100000,0.000000 +-3.0,0.000000,-241.200000,0.000000 +-3.0,0.000000,-240.300000,0.000000 +-3.0,0.000000,-239.400000,0.000000 +-3.0,0.000000,-238.500000,0.000000 +-3.0,0.000000,-237.600000,0.000000 +-3.0,0.000000,-236.700000,0.000000 +-3.0,0.000000,-235.800000,0.000000 +-3.0,0.000000,-234.900000,0.000000 +-3.0,0.000000,-234.000000,0.000000 +-3.0,0.000000,-233.100000,0.000000 +-3.0,0.000000,-232.200000,0.000000 +-3.0,0.000000,-231.300000,0.000000 +-3.0,0.000000,-230.400000,0.000000 +-3.0,0.000000,-229.500000,0.000000 +-3.0,0.000000,-228.600000,0.000000 +-3.0,0.000000,-227.700000,0.000000 +-3.0,0.000000,-226.800000,0.000000 +-3.0,0.000000,-225.900000,0.000000 +-3.0,0.000000,-225.000000,0.000000 +-3.0,0.000000,-224.100000,0.000000 +-3.0,0.000000,-223.200000,0.000000 +-3.0,0.000000,-222.300000,0.000000 +-3.0,0.000000,-221.400000,0.000000 +-3.0,0.000000,-220.500000,0.000000 +-3.0,0.000000,-219.600000,0.000000 +-3.0,0.000000,-218.700000,0.000000 +-3.0,0.000000,-217.800000,0.000000 +-3.0,0.000000,-216.900000,0.000000 +-3.0,0.000000,-216.000000,0.000000 +-3.0,0.000000,-215.100000,0.000000 +-3.0,0.000000,-214.200000,0.000000 +-3.0,0.000000,-213.300000,0.000000 +-3.0,0.000000,-212.400000,0.000000 +-3.0,0.000000,-211.500000,0.000000 +-3.0,0.000000,-210.600000,0.000000 +-3.0,0.000000,-209.700000,0.000000 +-3.0,0.000000,-208.800000,0.000000 +-3.0,0.000000,-207.900000,0.000000 +-3.0,0.000000,-207.000000,0.000000 +-3.0,0.000000,-206.100000,0.000000 +-3.0,0.000000,-205.200000,0.000000 +-3.0,0.000000,-204.300000,0.000000 +-3.0,0.000000,-203.400000,0.000000 +-3.0,0.000000,-202.500000,0.000000 +-3.0,0.000000,-201.600000,0.000000 +-3.0,0.000000,-200.700000,0.000000 +-3.0,0.000000,-199.800000,0.000000 +-3.0,0.000000,-198.900000,0.000000 +-3.0,0.000000,-198.000000,0.000000 +-3.0,0.000000,-197.100000,0.000000 +-3.0,0.000000,-196.200000,0.000000 +-3.0,0.000000,-195.300000,0.000000 +-3.0,0.000000,-194.400000,0.000000 +-3.0,0.000000,-193.500000,0.000000 +-3.0,0.000000,-192.600000,0.000000 +-3.0,0.000000,-191.700000,0.000000 +-3.0,0.000000,-190.800000,0.000000 +-3.0,0.000000,-189.900000,0.000000 +-3.0,0.000000,-189.000000,0.000000 +-3.0,0.000000,-188.100000,0.000000 +-3.0,0.000000,-187.200000,0.000000 +-3.0,0.000000,-186.300000,0.000000 +-3.0,0.000000,-185.400000,0.000000 +-3.0,0.000000,-184.500000,0.000000 +-3.0,0.000000,-183.600000,0.000000 +-3.0,0.000000,-182.700000,0.000000 +-3.0,0.000000,-181.800000,0.000000 +-3.0,0.000000,-180.900000,0.000000 +-3.0,0.000000,-180.000000,0.000000 +-3.0,0.000000,-179.100000,0.000000 +-3.0,0.000000,-178.200000,0.000000 +-3.0,0.000000,-177.300000,0.000000 +-3.0,0.000000,-176.400000,0.000000 +-3.0,0.000000,-175.500000,0.000000 +-3.0,0.000000,-174.600000,0.000000 +-3.0,0.000000,-173.700000,0.000000 +-3.0,0.000000,-172.800000,0.000000 +-3.0,0.000000,-171.900000,0.000000 +-3.0,0.000000,-171.000000,0.000000 +-3.0,0.000000,-170.100000,0.000000 +-3.0,0.000000,-169.200000,0.000000 +-3.0,0.000000,-168.300000,0.000000 +-3.0,0.000000,-167.400000,0.000000 +-3.0,0.000000,-166.500000,0.000000 +-3.0,0.000000,-165.600000,0.000000 +-3.0,0.000000,-164.700000,0.000000 +-3.0,0.000000,-163.800000,0.000000 +-3.0,0.000000,-162.900000,0.000000 +-3.0,0.000000,-162.000000,0.000000 +-3.0,0.000000,-161.100000,0.000000 +-3.0,0.000000,-160.200000,0.000000 +-3.0,0.000000,-159.300000,0.000000 +-3.0,0.000000,-158.400000,0.000000 +-3.0,0.000000,-157.500000,0.000000 +-3.0,0.000000,-156.600000,0.000000 +-3.0,0.000000,-155.700000,0.000000 +-3.0,0.000000,-154.800000,0.000000 +-3.0,0.000000,-153.900000,0.000000 +-3.0,0.000000,-153.000000,0.000000 +-3.0,0.000000,-152.100000,0.000000 +-3.0,0.000000,-151.200000,0.000000 +-3.0,0.000000,-150.300000,0.000000 +-3.0,0.000000,-149.400000,0.000000 +-3.0,0.000000,-148.500000,0.000000 +-3.0,0.000000,-147.600000,0.000000 +-3.0,0.000000,-146.700000,0.000000 +-3.0,0.000000,-145.800000,0.000000 +-3.0,0.000000,-144.900000,0.000000 +-3.0,0.000000,-144.000000,0.000000 +-3.0,0.000000,-143.100000,0.000000 +-3.0,0.000000,-142.200000,0.000000 +-3.0,0.000000,-141.300000,0.000000 +-3.0,0.000000,-140.400000,0.000000 +-3.0,0.000000,-139.500000,0.000000 +-3.0,0.000000,-138.600000,0.000000 +-3.0,0.000000,-137.700000,0.000000 +-3.0,0.000000,-136.800000,0.000000 +-3.0,0.000000,-135.900000,0.000000 +-3.0,0.000000,-135.000000,0.000000 +-3.0,0.000000,-134.100000,0.000000 +-3.0,0.000000,-133.200000,0.000000 +-3.0,0.000000,-132.300000,0.000000 +-3.0,0.000000,-131.400000,0.000000 +-3.0,0.000000,-130.500000,0.000000 +-3.0,0.000000,-129.600000,0.000000 +-3.0,0.000000,-128.700000,0.000000 +-3.0,0.000000,-127.800000,0.000000 +-3.0,0.000000,-126.900000,0.000000 +-3.0,0.000000,-126.000000,0.000000 +-3.0,0.000000,-125.100000,0.000000 +-3.0,0.000000,-124.200000,0.000000 +-3.0,0.000000,-123.300000,0.000000 +-3.0,0.000000,-122.400000,0.000000 +-3.0,0.000000,-121.500000,0.000000 +-3.0,0.000000,-120.600000,0.000000 +-3.0,0.000000,-119.700000,0.000000 +-3.0,0.000000,-118.800000,0.000000 +-3.0,0.000000,-117.900000,0.000000 +-3.0,0.000000,-117.000000,0.000000 +-3.0,0.000000,-116.100000,0.000000 +-3.0,0.000000,-115.200000,0.000000 +-3.0,0.000000,-114.300000,0.000000 +-3.0,0.000000,-113.400000,0.000000 +-3.0,0.000000,-112.500000,0.000000 +-3.0,0.000000,-111.600000,0.000000 +-3.0,0.000000,-110.700000,0.000000 +-3.0,0.000000,-109.800000,0.000000 +-3.0,0.000000,-108.900000,0.000000 +-3.0,0.000000,-108.000000,0.000000 +-3.0,0.000000,-107.100000,0.000000 +-3.0,0.000000,-106.200000,0.000000 +-3.0,0.000000,-105.300000,0.000000 +-3.0,0.000000,-104.400000,0.000000 +-3.0,0.000000,-103.500000,0.000000 +-3.0,0.000000,-102.600000,0.000000 +-3.0,0.000000,-101.700000,0.000000 +-3.0,0.000000,-100.800000,0.000000 +-3.0,0.000000,-99.900000,0.000000 +-3.0,0.000000,-99.000000,0.000000 +-3.0,0.000000,-98.100000,0.000000 +-3.0,0.000000,-97.200000,0.000000 +-3.0,0.000000,-96.300000,0.000000 +-3.0,0.000000,-95.400000,0.000000 +-3.0,0.000000,-94.500000,0.000000 +-3.0,0.000000,-93.600000,0.000000 +-3.0,0.000000,-92.700000,0.000000 +-3.0,0.000000,-91.800000,0.000000 +-3.0,0.000000,-90.900000,0.000000 +-3.0,0.000000,-90.000000,0.000000 +-3.0,0.000000,-89.100000,0.000000 +-3.0,0.000000,-88.200000,0.000000 +-3.0,0.000000,-87.300000,0.000000 +-3.0,0.000000,-86.400000,0.000000 +-3.0,0.000000,-85.500000,0.000000 +-3.0,0.000000,-84.600000,0.000000 +-3.0,0.000000,-83.700000,0.000000 +-3.0,0.000000,-82.800000,0.000000 +-3.0,0.000000,-81.900000,0.000000 +-3.0,0.000000,-81.000000,0.000000 +-3.0,0.000000,-80.100000,0.000000 +-3.0,0.000000,-79.200000,0.000000 +-3.0,0.000000,-78.300000,0.000000 +-3.0,0.000000,-77.400000,0.000000 +-3.0,0.000000,-76.500000,0.000000 +-3.0,0.000000,-75.600000,0.000000 +-3.0,0.000000,-74.700000,0.000000 +-3.0,0.000000,-73.800000,0.000000 +-3.0,0.000000,-72.900000,0.000000 +-3.0,0.000000,-72.000000,0.000000 +-3.0,0.000000,-71.100000,0.000000 +-3.0,0.000000,-70.200000,0.000000 +-3.0,0.000000,-69.300000,0.000000 +-3.0,0.000000,-68.400000,0.000000 +-3.0,0.000000,-67.500000,0.000000 +-3.0,0.000000,-66.600000,0.000000 +-3.0,0.000000,-65.700000,0.000000 +-3.0,0.000000,-64.800000,0.000000 +-3.0,0.000000,-63.900000,0.000000 +-3.0,0.000000,-63.000000,0.000000 +-3.0,0.000000,-62.100000,0.000000 +-3.0,0.000000,-61.200000,0.000000 +-3.0,0.000000,-60.300000,0.000000 +-3.0,0.000000,-59.400000,0.000000 +-3.0,0.000000,-58.500000,0.000000 +-3.0,0.000000,-57.600000,0.000000 +-3.0,0.000000,-56.700000,0.000000 +-3.0,0.000000,-55.800000,0.000000 +-3.0,0.000000,-54.900000,0.000000 +-3.0,0.000000,-54.000000,0.000000 +-3.0,0.000000,-53.100000,0.000000 +-3.0,0.000000,-52.200000,0.000000 +-3.0,0.000000,-51.300000,0.000000 +-3.0,0.000000,-50.400000,0.000000 +-3.0,0.000000,-49.500000,0.000000 +-3.0,0.000000,-48.600000,0.000000 +-3.0,0.000000,-47.700000,0.000000 +-3.0,0.000000,-46.800000,0.000000 +-3.0,0.000000,-45.900000,0.000000 +-3.0,0.000000,-45.000000,0.000000 +-3.0,0.000000,-44.100000,0.000000 +-3.0,0.000000,-43.200000,0.000000 +-3.0,0.000000,-42.300000,0.000000 +-3.0,0.000000,-41.400000,0.000000 +-3.0,0.000000,-40.500000,0.000000 +-3.0,0.000000,-39.600000,0.000000 +-3.0,0.000000,-38.700000,0.000000 +-3.0,0.000000,-37.800000,0.000000 +-3.0,0.000000,-36.900000,0.000000 +-3.0,0.000000,-36.000000,0.000000 +-3.0,0.000000,-35.100000,0.000000 +-3.0,0.000000,-34.200000,0.000000 +-3.0,0.000000,-33.300000,0.000000 +-3.0,0.000000,-32.400000,0.000000 +-3.0,0.000000,-31.500000,0.000000 +-3.0,0.000000,-30.600000,0.000000 +-3.0,0.000000,-29.700000,0.000000 +-3.0,0.000000,-28.800000,0.000000 +-3.0,0.000000,-27.900000,0.000000 +-3.0,0.000000,-27.000000,0.000000 +-3.0,0.000000,-26.100000,0.000000 +-3.0,0.000000,-25.200000,0.000000 +-3.0,0.000000,-24.300000,0.000000 +-3.0,0.000000,-23.400000,0.000000 +-3.0,0.000000,-22.500000,0.000000 +-3.0,0.000000,-21.600000,0.000000 +-3.0,0.000000,-20.700000,0.000000 +-3.0,0.000000,-19.800000,0.000000 +-3.0,0.000000,-18.900000,0.000000 +-3.0,0.000000,-18.000000,0.000000 +-3.0,0.000000,-17.100000,0.000000 +-3.0,0.000000,-16.200000,0.000000 +-3.0,0.000000,-15.300000,0.000000 +-3.0,0.000000,-14.400000,0.000000 +-3.0,0.000000,-13.500000,0.000000 +-3.0,0.000000,-12.600000,0.000000 +-3.0,0.000000,-11.700000,0.000000 +-3.0,0.000000,-10.800000,0.000000 +-3.0,0.000000,-9.900000,0.000000 +-3.0,0.000000,-9.000000,0.000000 +-3.0,0.000000,-8.100000,0.000000 +-3.0,0.000000,-7.200000,0.000000 +-3.0,0.000000,-6.300000,0.000000 +-3.0,0.000000,-5.400000,0.000000 +-3.0,0.000000,-4.500000,0.000000 +-3.0,0.000000,-3.600000,0.000000 +-3.0,0.000000,-2.700000,0.000000 +-3.0,0.000000,-1.800000,0.000000 +-3.0,0.000000,-0.900000,0.000000 +-3.0,0.000000,0.000000,0.000000 +-3.0,0.000000,0.900000,0.000000 +-3.0,0.000000,1.800000,0.000000 +-3.0,0.000000,2.700000,0.000000 +-3.0,0.000000,3.600000,0.000000 +-3.0,0.000000,4.500000,0.000000 +-3.0,0.000000,5.400000,0.000000 +-3.0,0.000000,6.300000,0.000000 +-3.0,0.000000,7.200000,0.000000 +-3.0,0.000000,8.100000,0.000000 +-3.0,0.000000,9.000000,0.000000 +-3.0,0.000000,9.900000,0.000000 +-3.0,0.000000,10.800000,0.000000 +-3.0,0.000000,11.700000,0.000000 +-3.0,0.000000,12.600000,0.000000 +-3.0,0.000000,13.500000,0.000000 +-3.0,0.000000,14.400000,0.000000 +-3.0,0.000000,15.300000,0.000000 +-3.0,0.000000,16.200000,0.000000 +-3.0,0.000000,17.100000,0.000000 +-3.0,0.000000,18.000000,0.000000 +-3.0,0.000000,18.900000,0.000000 +-3.0,0.000000,19.800000,0.000000 +-3.0,0.000000,20.700000,0.000000 +-3.0,0.000000,21.600000,0.000000 +-3.0,0.000000,22.500000,0.000000 +-3.0,0.000000,23.400000,0.000000 +-3.0,0.000000,24.300000,0.000000 +-3.0,0.000000,25.200000,0.000000 +-3.0,0.000000,26.100000,0.000000 +-3.0,0.000000,27.000000,0.000000 +-3.0,0.000000,27.900000,0.000000 +-3.0,0.000000,28.800000,0.000000 +-3.0,0.000000,29.700000,0.000000 +-3.0,0.000000,30.600000,0.000000 +-3.0,0.000000,31.500000,0.000000 +-3.0,0.000000,32.400000,0.000000 +-3.0,0.000000,33.300000,0.000000 +-3.0,0.000000,34.200000,0.000000 +-3.0,0.000000,35.100000,0.000000 +-3.0,0.000000,36.000000,0.000000 +-3.0,0.000000,36.900000,0.000000 +-3.0,0.000000,37.800000,0.000000 +-3.0,0.000000,38.700000,0.000000 +-3.0,0.000000,39.600000,0.000000 +-3.0,0.000000,40.500000,0.000000 +-3.0,0.000000,41.400000,0.000000 +-3.0,0.000000,42.300000,0.000000 +-3.0,0.000000,43.200000,0.000000 +-3.0,0.000000,44.100000,0.000000 +-3.0,0.000000,45.000000,0.000000 +-3.0,0.000000,45.900000,0.000000 +-3.0,0.000000,46.800000,0.000000 +-3.0,0.000000,47.700000,0.000000 +-3.0,0.000000,48.600000,0.000000 +-3.0,0.000000,49.500000,0.000000 +-3.0,0.000000,50.400000,0.000000 +-3.0,0.000000,51.300000,0.000000 +-3.0,0.000000,52.200000,0.000000 +-3.0,0.000000,53.100000,0.000000 +-3.0,0.000000,54.000000,0.000000 +-3.0,0.000000,54.900000,0.000000 +-3.0,0.000000,55.800000,0.000000 +-3.0,0.000000,56.700000,0.000000 +-3.0,0.000000,57.600000,0.000000 +-3.0,0.000000,58.500000,0.000000 +-3.0,0.000000,59.400000,0.000000 +-3.0,0.000000,60.300000,0.000000 +-3.0,0.000000,61.200000,0.000000 +-3.0,0.000000,62.100000,0.000000 +-3.0,0.000000,63.000000,0.000000 +-3.0,0.000000,63.900000,0.000000 +-3.0,0.000000,64.800000,0.000000 +-3.0,0.000000,65.700000,0.000000 +-3.0,0.000000,66.600000,0.000000 +-3.0,0.000000,67.500000,0.000000 +-3.0,0.000000,68.400000,0.000000 +-3.0,0.000000,69.300000,0.000000 +-3.0,0.000000,70.200000,0.000000 +-3.0,0.000000,71.100000,0.000000 +-3.0,0.000000,72.000000,0.000000 +-3.0,0.000000,72.900000,0.000000 +-3.0,0.000000,73.800000,0.000000 +-3.0,0.000000,74.700000,0.000000 +-3.0,0.000000,75.600000,0.000000 +-3.0,0.000000,76.500000,0.000000 +-3.0,0.000000,77.400000,0.000000 +-3.0,0.000000,78.300000,0.000000 +-3.0,0.000000,79.200000,0.000000 +-3.0,0.000000,80.100000,0.000000 +-3.0,0.000000,81.000000,0.000000 +-3.0,0.000000,81.900000,0.000000 +-3.0,0.000000,82.800000,0.000000 +-3.0,0.000000,83.700000,0.000000 +-3.0,0.000000,84.600000,0.000000 +-3.0,0.000000,85.500000,0.000000 +-3.0,0.000000,86.400000,0.000000 +-3.0,0.000000,87.300000,0.000000 +-3.0,0.000000,88.200000,0.000000 +-3.0,0.000000,89.100000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.900000,0.000000 +-3.0,0.000000,91.800000,0.000000 +-3.0,0.000000,92.700000,0.000000 +-3.0,0.000000,93.600000,0.000000 +-3.0,0.000000,94.500000,0.000000 +-3.0,0.000000,95.400000,0.000000 +-3.0,0.000000,96.300000,0.000000 +-3.0,0.000000,97.200000,0.000000 +-3.0,0.000000,98.100000,0.000000 +-3.0,0.000000,99.000000,0.000000 +-3.0,0.000000,99.900000,0.000000 +-3.0,0.000000,100.800000,0.000000 +-3.0,0.000000,101.700000,0.000000 +-3.0,0.000000,102.600000,0.000000 +-3.0,0.000000,103.500000,0.000000 +-3.0,0.000000,104.400000,0.000000 +-3.0,0.000000,105.300000,0.000000 +-3.0,0.000000,106.200000,0.000000 +-3.0,0.000000,107.100000,0.000000 +-3.0,0.000000,108.000000,0.000000 +-3.0,0.000000,108.900000,0.000000 +-3.0,0.000000,109.800000,0.000000 +-3.0,0.000000,110.700000,0.000000 +-3.0,0.000000,111.600000,0.000000 +-3.0,0.000000,112.500000,0.000000 +-3.0,0.000000,113.400000,0.000000 +-3.0,0.000000,114.300000,0.000000 +-3.0,0.000000,115.200000,0.000000 +-3.0,0.000000,116.100000,0.000000 +-3.0,0.000000,117.000000,0.000000 +-3.0,0.000000,117.900000,0.000000 +-3.0,0.000000,118.800000,0.000000 +-3.0,0.000000,119.700000,0.000000 +-3.0,0.000000,120.600000,0.000000 +-3.0,0.000000,121.500000,0.000000 +-3.0,0.000000,122.400000,0.000000 +-3.0,0.000000,123.300000,0.000000 +-3.0,0.000000,124.200000,0.000000 +-3.0,0.000000,125.100000,0.000000 +-3.0,0.000000,126.000000,0.000000 +-3.0,0.000000,126.900000,0.000000 +-3.0,0.000000,127.800000,0.000000 +-3.0,0.000000,128.700000,0.000000 +-3.0,0.000000,129.600000,0.000000 +-3.0,0.000000,130.500000,0.000000 +-3.0,0.000000,131.400000,0.000000 +-3.0,0.000000,132.300000,0.000000 +-3.0,0.000000,133.200000,0.000000 +-3.0,0.000000,134.100000,0.000000 +-3.0,0.000000,135.000000,0.000000 +-3.0,0.000000,135.900000,0.000000 +-3.0,0.000000,136.800000,0.000000 +-3.0,0.000000,137.700000,0.000000 +-3.0,0.000000,138.600000,0.000000 +-3.0,0.000000,139.500000,0.000000 +-3.0,0.000000,140.400000,0.000000 +-3.0,0.000000,141.300000,0.000000 +-3.0,0.000000,142.200000,0.000000 +-3.0,0.000000,143.100000,0.000000 +-3.0,0.000000,144.000000,0.000000 +-3.0,0.000000,144.900000,0.000000 +-3.0,0.000000,145.800000,0.000000 +-3.0,0.000000,146.700000,0.000000 +-3.0,0.000000,147.600000,0.000000 +-3.0,0.000000,148.500000,0.000000 +-3.0,0.000000,149.400000,0.000000 +-3.0,0.000000,150.300000,0.000000 +-3.0,0.000000,151.200000,0.000000 +-3.0,0.000000,152.100000,0.000000 +-3.0,0.000000,153.000000,0.000000 +-3.0,0.000000,153.900000,0.000000 +-3.0,0.000000,154.800000,0.000000 +-3.0,0.000000,155.700000,0.000000 +-3.0,0.000000,156.600000,0.000000 +-3.0,0.000000,157.500000,0.000000 +-3.0,0.000000,158.400000,0.000000 +-3.0,0.000000,159.300000,0.000000 +-3.0,0.000000,160.200000,0.000000 +-3.0,0.000000,161.100000,0.000000 +-3.0,0.000000,162.000000,0.000000 +-3.0,0.000000,162.900000,0.000000 +-3.0,0.000000,163.800000,0.000000 +-3.0,0.000000,164.700000,0.000000 +-3.0,0.000000,165.600000,0.000000 +-3.0,0.000000,166.500000,0.000000 +-3.0,0.000000,167.400000,0.000000 +-3.0,0.000000,168.300000,0.000000 +-3.0,0.000000,169.200000,0.000000 +-3.0,0.000000,170.100000,0.000000 +-3.0,0.000000,171.000000,0.000000 +-3.0,0.000000,171.900000,0.000000 +-3.0,0.000000,172.800000,0.000000 +-3.0,0.000000,173.700000,0.000000 +-3.0,0.000000,174.600000,0.000000 +-3.0,0.000000,175.500000,0.000000 +-3.0,0.000000,176.400000,0.000000 +-3.0,0.000000,177.300000,0.000000 +-3.0,0.000000,178.200000,0.000000 +-3.0,0.000000,179.100000,0.000000 +-3.0,0.000000,180.000000,0.000000 +-3.0,0.000000,180.900000,0.000000 +-3.0,0.000000,181.800000,0.000000 +-3.0,0.000000,182.700000,0.000000 +-3.0,0.000000,183.600000,0.000000 +-3.0,0.000000,184.500000,0.000000 +-3.0,0.000000,185.400000,0.000000 +-3.0,0.000000,186.300000,0.000000 +-3.0,0.000000,187.200000,0.000000 +-3.0,0.000000,188.100000,0.000000 +-3.0,0.000000,189.000000,0.000000 +-3.0,0.000000,189.900000,0.000000 +-3.0,0.000000,190.800000,0.000000 +-3.0,0.000000,191.700000,0.000000 +-3.0,0.000000,192.600000,0.000000 +-3.0,0.000000,193.500000,0.000000 +-3.0,0.000000,194.400000,0.000000 +-3.0,0.000000,195.300000,0.000000 +-3.0,0.000000,196.200000,0.000000 +-3.0,0.000000,197.100000,0.000000 +-3.0,0.000000,198.000000,0.000000 +-3.0,0.000000,198.900000,0.000000 +-3.0,0.000000,199.800000,0.000000 +-3.0,0.000000,200.700000,0.000000 +-3.0,0.000000,201.600000,0.000000 +-3.0,0.000000,202.500000,0.000000 +-3.0,0.000000,203.400000,0.000000 +-3.0,0.000000,204.300000,0.000000 +-3.0,0.000000,205.200000,0.000000 +-3.0,0.000000,206.100000,0.000000 +-3.0,0.000000,207.000000,0.000000 +-3.0,0.000000,207.900000,0.000000 +-3.0,0.000000,208.800000,0.000000 +-3.0,0.000000,209.700000,0.000000 +-3.0,0.000000,210.600000,0.000000 +-3.0,0.000000,211.500000,0.000000 +-3.0,0.000000,212.400000,0.000000 +-3.0,0.000000,213.300000,0.000000 +-3.0,0.000000,214.200000,0.000000 +-3.0,0.000000,215.100000,0.000000 +-3.0,0.000000,216.000000,0.000000 +-3.0,0.000000,216.900000,0.000000 +-3.0,0.000000,217.800000,0.000000 +-3.0,0.000000,218.700000,0.000000 +-3.0,0.000000,219.600000,0.000000 +-3.0,0.000000,220.500000,0.000000 +-3.0,0.000000,221.400000,0.000000 +-3.0,0.000000,222.300000,0.000000 +-3.0,0.000000,223.200000,0.000000 +-3.0,0.000000,224.100000,0.000000 +-3.0,0.000000,225.000000,0.000000 +-3.0,0.000000,225.900000,0.000000 +-3.0,0.000000,226.800000,0.000000 +-3.0,0.000000,227.700000,0.000000 +-3.0,0.000000,228.600000,0.000000 +-3.0,0.000000,229.500000,0.000000 +-3.0,0.000000,230.400000,0.000000 +-3.0,0.000000,231.300000,0.000000 +-3.0,0.000000,232.200000,0.000000 +-3.0,0.000000,233.100000,0.000000 +-3.0,0.000000,234.000000,0.000000 +-3.0,0.000000,234.900000,0.000000 +-3.0,0.000000,235.800000,0.000000 +-3.0,0.000000,236.700000,0.000000 +-3.0,0.000000,237.600000,0.000000 +-3.0,0.000000,238.500000,0.000000 +-3.0,0.000000,239.400000,0.000000 +-3.0,0.000000,240.300000,0.000000 +-3.0,0.000000,241.200000,0.000000 +-3.0,0.000000,242.100000,0.000000 +-3.0,0.000000,243.000000,0.000000 +-3.0,0.000000,243.900000,0.000000 +-3.0,0.000000,244.800000,0.000000 +-3.0,0.000000,245.700000,0.000000 +-3.0,0.000000,246.600000,0.000000 +-3.0,0.000000,247.500000,0.000000 +-3.0,0.000000,248.400000,0.000000 +-3.0,0.000000,249.300000,0.000000 +-3.0,0.000000,250.200000,0.000000 +-3.0,0.000000,251.100000,0.000000 +-3.0,0.000000,252.000000,0.000000 +-3.0,0.000000,252.900000,0.000000 +-3.0,0.000000,253.800000,0.000000 +-3.0,0.000000,254.700000,0.000000 +-3.0,0.000000,255.600000,0.000000 +-3.0,0.000000,256.500000,0.000000 +-3.0,0.000000,257.400000,0.000000 +-3.0,0.000000,258.300000,0.000000 +-3.0,0.000000,259.200000,0.000000 +-3.0,0.000000,260.100000,0.000000 +-3.0,0.000000,261.000000,0.000000 +-3.0,0.000000,261.900000,0.000000 +-3.0,0.000000,262.800000,0.000000 +-3.0,0.000000,263.700000,0.000000 +-3.0,0.000000,264.600000,0.000000 +-3.0,0.000000,265.500000,0.000000 +-3.0,0.000000,266.400000,0.000000 +-3.0,0.000000,267.300000,0.000000 +-3.0,0.000000,268.200000,0.000000 +-3.0,0.000000,269.100000,0.000000 +-3.0,0.000000,270.000000,0.000000 +-3.0,0.000000,270.900000,0.000000 +-3.0,0.000000,271.800000,0.000000 +-3.0,0.000000,272.700000,0.000000 +-3.0,0.000000,273.600000,0.000000 +-3.0,0.000000,274.500000,0.000000 +-3.0,0.000000,275.400000,0.000000 +-3.0,0.000000,276.300000,0.000000 +-3.0,0.000000,277.200000,0.000000 +-3.0,0.000000,278.100000,0.000000 +-3.0,0.000000,279.000000,0.000000 +-3.0,0.000000,279.900000,0.000000 +-3.0,0.000000,280.800000,0.000000 +-3.0,0.000000,281.700000,0.000000 +-3.0,0.000000,282.600000,0.000000 +-3.0,0.000000,283.500000,0.000000 +-3.0,0.000000,284.400000,0.000000 +-3.0,0.000000,285.300000,0.000000 +-3.0,0.000000,286.200000,0.000000 +-3.0,0.000000,287.100000,0.000000 +-3.0,0.000000,288.000000,0.000000 +-3.0,0.000000,288.900000,0.000000 +-3.0,0.000000,289.800000,0.000000 +-3.0,0.000000,290.700000,0.000000 +-3.0,0.000000,291.600000,0.000000 +-3.0,0.000000,292.500000,0.000000 +-3.0,0.000000,293.400000,0.000000 +-3.0,0.000000,294.300000,0.000000 +-3.0,0.000000,295.200000,0.000000 +-3.0,0.000000,296.100000,0.000000 +-3.0,0.000000,297.000000,0.000000 +-3.0,0.000000,297.900000,0.000000 +-3.0,0.000000,298.800000,0.000000 +-3.0,0.000000,299.700000,0.000000 +-3.0,0.000000,300.600000,0.000000 +-3.0,0.000000,301.500000,0.000000 +-3.0,0.000000,302.400000,0.000000 +-3.0,0.000000,303.300000,0.000000 +-3.0,0.000000,304.200000,0.000000 +-3.0,0.000000,305.100000,0.000000 +-3.0,0.000000,306.000000,0.000000 +-3.0,0.000000,306.900000,0.000000 +-3.0,0.000000,307.800000,0.000000 +-3.0,0.000000,308.700000,0.000000 +-3.0,0.000000,309.600000,0.000000 +-3.0,0.000000,310.500000,0.000000 +-3.0,0.000000,311.400000,0.000000 +-3.0,0.000000,312.300000,0.000000 +-3.0,0.000000,313.200000,0.000000 +-3.0,0.000000,314.100000,0.000000 +-3.0,0.000000,315.000000,0.000000 +-3.0,0.000000,315.900000,0.000000 +-3.0,0.000000,316.800000,0.000000 +-3.0,0.000000,317.700000,0.000000 +-3.0,0.000000,318.600000,0.000000 +-3.0,0.000000,319.500000,0.000000 +-3.0,0.000000,320.400000,0.000000 +-3.0,0.000000,321.300000,0.000000 +-3.0,0.000000,322.200000,0.000000 +-3.0,0.000000,323.100000,0.000000 +-3.0,0.000000,324.000000,0.000000 +-3.0,0.000000,324.900000,0.000000 +-3.0,0.000000,325.800000,0.000000 +-3.0,0.000000,326.700000,0.000000 +-3.0,0.000000,327.600000,0.000000 +-3.0,0.000000,328.500000,0.000000 +-3.0,0.000000,329.400000,0.000000 +-3.0,0.000000,330.300000,0.000000 +-3.0,0.000000,331.200000,0.000000 +-3.0,0.000000,332.100000,0.000000 +-3.0,0.000000,333.000000,0.000000 +-3.0,0.000000,333.900000,0.000000 +-3.0,0.000000,334.800000,0.000000 +-3.0,0.000000,335.700000,0.000000 +-3.0,0.000000,336.600000,0.000000 +-3.0,0.000000,337.500000,0.000000 +-3.0,0.000000,338.400000,0.000000 +-3.0,0.000000,339.300000,0.000000 +-3.0,0.000000,340.200000,0.000000 +-3.0,0.000000,341.100000,0.000000 +-3.0,0.000000,342.000000,0.000000 +-3.0,0.000000,342.900000,0.000000 +-3.0,0.000000,343.800000,0.000000 +-3.0,0.000000,344.700000,0.000000 +-3.0,0.000000,345.600000,0.000000 +-3.0,0.000000,346.500000,0.000000 +-3.0,0.000000,347.400000,0.000000 +-3.0,0.000000,348.300000,0.000000 +-3.0,0.000000,349.200000,0.000000 +-3.0,0.000000,350.100000,0.000000 +-3.0,0.000000,351.000000,0.000000 +-3.0,0.000000,351.900000,0.000000 +-3.0,0.000000,352.800000,0.000000 +-3.0,0.000000,353.700000,0.000000 +-3.0,0.000000,354.600000,0.000000 +-3.0,0.000000,355.500000,0.000000 +-3.0,0.000000,356.400000,0.000000 +-3.0,0.000000,357.300000,0.000000 +-3.0,0.000000,358.200000,0.000000 +-3.0,0.000000,359.100000,0.000000 +-3.0,90.000000,0.000000,-360.000000 +-3.0,90.000000,0.000000,-359.100000 +-3.0,90.000000,0.000000,-358.200000 +-3.0,90.000000,0.000000,-357.300000 +-3.0,90.000000,0.000000,-356.400000 +-3.0,90.000000,0.000000,-355.500000 +-3.0,90.000000,0.000000,-354.600000 +-3.0,90.000000,0.000000,-353.700000 +-3.0,90.000000,0.000000,-352.800000 +-3.0,90.000000,0.000000,-351.900000 +-3.0,90.000000,0.000000,-351.000000 +-3.0,90.000000,0.000000,-350.100000 +-3.0,90.000000,0.000000,-349.200000 +-3.0,90.000000,0.000000,-348.300000 +-3.0,90.000000,0.000000,-347.400000 +-3.0,90.000000,0.000000,-346.500000 +-3.0,90.000000,0.000000,-345.600000 +-3.0,90.000000,0.000000,-344.700000 +-3.0,90.000000,0.000000,-343.800000 +-3.0,90.000000,0.000000,-342.900000 +-3.0,90.000000,0.000000,-342.000000 +-3.0,90.000000,0.000000,-341.100000 +-3.0,90.000000,0.000000,-340.200000 +-3.0,90.000000,0.000000,-339.300000 +-3.0,90.000000,0.000000,-338.400000 +-3.0,90.000000,0.000000,-337.500000 +-3.0,90.000000,0.000000,-336.600000 +-3.0,90.000000,0.000000,-335.700000 +-3.0,90.000000,0.000000,-334.800000 +-3.0,90.000000,0.000000,-333.900000 +-3.0,90.000000,0.000000,-333.000000 +-3.0,90.000000,0.000000,-332.100000 +-3.0,90.000000,0.000000,-331.200000 +-3.0,90.000000,0.000000,-330.300000 +-3.0,90.000000,0.000000,-329.400000 +-3.0,90.000000,0.000000,-328.500000 +-3.0,90.000000,0.000000,-327.600000 +-3.0,90.000000,0.000000,-326.700000 +-3.0,90.000000,0.000000,-325.800000 +-3.0,90.000000,0.000000,-324.900000 +-3.0,90.000000,0.000000,-324.000000 +-3.0,90.000000,0.000000,-323.100000 +-3.0,90.000000,0.000000,-322.200000 +-3.0,90.000000,0.000000,-321.300000 +-3.0,90.000000,0.000000,-320.400000 +-3.0,90.000000,0.000000,-319.500000 +-3.0,90.000000,0.000000,-318.600000 +-3.0,90.000000,0.000000,-317.700000 +-3.0,90.000000,0.000000,-316.800000 +-3.0,90.000000,0.000000,-315.900000 +-3.0,90.000000,0.000000,-315.000000 +-3.0,90.000000,0.000000,-314.100000 +-3.0,90.000000,0.000000,-313.200000 +-3.0,90.000000,0.000000,-312.300000 +-3.0,90.000000,0.000000,-311.400000 +-3.0,90.000000,0.000000,-310.500000 +-3.0,90.000000,0.000000,-309.600000 +-3.0,90.000000,0.000000,-308.700000 +-3.0,90.000000,0.000000,-307.800000 +-3.0,90.000000,0.000000,-306.900000 +-3.0,90.000000,0.000000,-306.000000 +-3.0,90.000000,0.000000,-305.100000 +-3.0,90.000000,0.000000,-304.200000 +-3.0,90.000000,0.000000,-303.300000 +-3.0,90.000000,0.000000,-302.400000 +-3.0,90.000000,0.000000,-301.500000 +-3.0,90.000000,0.000000,-300.600000 +-3.0,90.000000,0.000000,-299.700000 +-3.0,90.000000,0.000000,-298.800000 +-3.0,90.000000,0.000000,-297.900000 +-3.0,90.000000,0.000000,-297.000000 +-3.0,90.000000,0.000000,-296.100000 +-3.0,90.000000,0.000000,-295.200000 +-3.0,90.000000,0.000000,-294.300000 +-3.0,90.000000,0.000000,-293.400000 +-3.0,90.000000,0.000000,-292.500000 +-3.0,90.000000,0.000000,-291.600000 +-3.0,90.000000,0.000000,-290.700000 +-3.0,90.000000,0.000000,-289.800000 +-3.0,90.000000,0.000000,-288.900000 +-3.0,90.000000,0.000000,-288.000000 +-3.0,90.000000,0.000000,-287.100000 +-3.0,90.000000,0.000000,-286.200000 +-3.0,90.000000,0.000000,-285.300000 +-3.0,90.000000,0.000000,-284.400000 +-3.0,90.000000,0.000000,-283.500000 +-3.0,90.000000,0.000000,-282.600000 +-3.0,90.000000,0.000000,-281.700000 +-3.0,90.000000,0.000000,-280.800000 +-3.0,90.000000,0.000000,-279.900000 +-3.0,90.000000,0.000000,-279.000000 +-3.0,90.000000,0.000000,-278.100000 +-3.0,90.000000,0.000000,-277.200000 +-3.0,90.000000,0.000000,-276.300000 +-3.0,90.000000,0.000000,-275.400000 +-3.0,90.000000,0.000000,-274.500000 +-3.0,90.000000,0.000000,-273.600000 +-3.0,90.000000,0.000000,-272.700000 +-3.0,90.000000,0.000000,-271.800000 +-3.0,90.000000,0.000000,-270.900000 +-3.0,90.000000,0.000000,-270.000000 +-3.0,90.000000,0.000000,-269.100000 +-3.0,90.000000,0.000000,-268.200000 +-3.0,90.000000,0.000000,-267.300000 +-3.0,90.000000,0.000000,-266.400000 +-3.0,90.000000,0.000000,-265.500000 +-3.0,90.000000,0.000000,-264.600000 +-3.0,90.000000,0.000000,-263.700000 +-3.0,90.000000,0.000000,-262.800000 +-3.0,90.000000,0.000000,-261.900000 +-3.0,90.000000,0.000000,-261.000000 +-3.0,90.000000,0.000000,-260.100000 +-3.0,90.000000,0.000000,-259.200000 +-3.0,90.000000,0.000000,-258.300000 +-3.0,90.000000,0.000000,-257.400000 +-3.0,90.000000,0.000000,-256.500000 +-3.0,90.000000,0.000000,-255.600000 +-3.0,90.000000,0.000000,-254.700000 +-3.0,90.000000,0.000000,-253.800000 +-3.0,90.000000,0.000000,-252.900000 +-3.0,90.000000,0.000000,-252.000000 +-3.0,90.000000,0.000000,-251.100000 +-3.0,90.000000,0.000000,-250.200000 +-3.0,90.000000,0.000000,-249.300000 +-3.0,90.000000,0.000000,-248.400000 +-3.0,90.000000,0.000000,-247.500000 +-3.0,90.000000,0.000000,-246.600000 +-3.0,90.000000,0.000000,-245.700000 +-3.0,90.000000,0.000000,-244.800000 +-3.0,90.000000,0.000000,-243.900000 +-3.0,90.000000,0.000000,-243.000000 +-3.0,90.000000,0.000000,-242.100000 +-3.0,90.000000,0.000000,-241.200000 +-3.0,90.000000,0.000000,-240.300000 +-3.0,90.000000,0.000000,-239.400000 +-3.0,90.000000,0.000000,-238.500000 +-3.0,90.000000,0.000000,-237.600000 +-3.0,90.000000,0.000000,-236.700000 +-3.0,90.000000,0.000000,-235.800000 +-3.0,90.000000,0.000000,-234.900000 +-3.0,90.000000,0.000000,-234.000000 +-3.0,90.000000,0.000000,-233.100000 +-3.0,90.000000,0.000000,-232.200000 +-3.0,90.000000,0.000000,-231.300000 +-3.0,90.000000,0.000000,-230.400000 +-3.0,90.000000,0.000000,-229.500000 +-3.0,90.000000,0.000000,-228.600000 +-3.0,90.000000,0.000000,-227.700000 +-3.0,90.000000,0.000000,-226.800000 +-3.0,90.000000,0.000000,-225.900000 +-3.0,90.000000,0.000000,-225.000000 +-3.0,90.000000,0.000000,-224.100000 +-3.0,90.000000,0.000000,-223.200000 +-3.0,90.000000,0.000000,-222.300000 +-3.0,90.000000,0.000000,-221.400000 +-3.0,90.000000,0.000000,-220.500000 +-3.0,90.000000,0.000000,-219.600000 +-3.0,90.000000,0.000000,-218.700000 +-3.0,90.000000,0.000000,-217.800000 +-3.0,90.000000,0.000000,-216.900000 +-3.0,90.000000,0.000000,-216.000000 +-3.0,90.000000,0.000000,-215.100000 +-3.0,90.000000,0.000000,-214.200000 +-3.0,90.000000,0.000000,-213.300000 +-3.0,90.000000,0.000000,-212.400000 +-3.0,90.000000,0.000000,-211.500000 +-3.0,90.000000,0.000000,-210.600000 +-3.0,90.000000,0.000000,-209.700000 +-3.0,90.000000,0.000000,-208.800000 +-3.0,90.000000,0.000000,-207.900000 +-3.0,90.000000,0.000000,-207.000000 +-3.0,90.000000,0.000000,-206.100000 +-3.0,90.000000,0.000000,-205.200000 +-3.0,90.000000,0.000000,-204.300000 +-3.0,90.000000,0.000000,-203.400000 +-3.0,90.000000,0.000000,-202.500000 +-3.0,90.000000,0.000000,-201.600000 +-3.0,90.000000,0.000000,-200.700000 +-3.0,90.000000,0.000000,-199.800000 +-3.0,90.000000,0.000000,-198.900000 +-3.0,90.000000,0.000000,-198.000000 +-3.0,90.000000,0.000000,-197.100000 +-3.0,90.000000,0.000000,-196.200000 +-3.0,90.000000,0.000000,-195.300000 +-3.0,90.000000,0.000000,-194.400000 +-3.0,90.000000,0.000000,-193.500000 +-3.0,90.000000,0.000000,-192.600000 +-3.0,90.000000,0.000000,-191.700000 +-3.0,90.000000,0.000000,-190.800000 +-3.0,90.000000,0.000000,-189.900000 +-3.0,90.000000,0.000000,-189.000000 +-3.0,90.000000,0.000000,-188.100000 +-3.0,90.000000,0.000000,-187.200000 +-3.0,90.000000,0.000000,-186.300000 +-3.0,90.000000,0.000000,-185.400000 +-3.0,90.000000,0.000000,-184.500000 +-3.0,90.000000,0.000000,-183.600000 +-3.0,90.000000,0.000000,-182.700000 +-3.0,90.000000,0.000000,-181.800000 +-3.0,90.000000,0.000000,-180.900000 +-3.0,90.000000,0.000000,-180.000000 +-3.0,90.000000,0.000000,-179.100000 +-3.0,90.000000,0.000000,-178.200000 +-3.0,90.000000,0.000000,-177.300000 +-3.0,90.000000,0.000000,-176.400000 +-3.0,90.000000,0.000000,-175.500000 +-3.0,90.000000,0.000000,-174.600000 +-3.0,90.000000,0.000000,-173.700000 +-3.0,90.000000,0.000000,-172.800000 +-3.0,90.000000,0.000000,-171.900000 +-3.0,90.000000,0.000000,-171.000000 +-3.0,90.000000,0.000000,-170.100000 +-3.0,90.000000,0.000000,-169.200000 +-3.0,90.000000,0.000000,-168.300000 +-3.0,90.000000,0.000000,-167.400000 +-3.0,90.000000,0.000000,-166.500000 +-3.0,90.000000,0.000000,-165.600000 +-3.0,90.000000,0.000000,-164.700000 +-3.0,90.000000,0.000000,-163.800000 +-3.0,90.000000,0.000000,-162.900000 +-3.0,90.000000,0.000000,-162.000000 +-3.0,90.000000,0.000000,-161.100000 +-3.0,90.000000,0.000000,-160.200000 +-3.0,90.000000,0.000000,-159.300000 +-3.0,90.000000,0.000000,-158.400000 +-3.0,90.000000,0.000000,-157.500000 +-3.0,90.000000,0.000000,-156.600000 +-3.0,90.000000,0.000000,-155.700000 +-3.0,90.000000,0.000000,-154.800000 +-3.0,90.000000,0.000000,-153.900000 +-3.0,90.000000,0.000000,-153.000000 +-3.0,90.000000,0.000000,-152.100000 +-3.0,90.000000,0.000000,-151.200000 +-3.0,90.000000,0.000000,-150.300000 +-3.0,90.000000,0.000000,-149.400000 +-3.0,90.000000,0.000000,-148.500000 +-3.0,90.000000,0.000000,-147.600000 +-3.0,90.000000,0.000000,-146.700000 +-3.0,90.000000,0.000000,-145.800000 +-3.0,90.000000,0.000000,-144.900000 +-3.0,90.000000,0.000000,-144.000000 +-3.0,90.000000,0.000000,-143.100000 +-3.0,90.000000,0.000000,-142.200000 +-3.0,90.000000,0.000000,-141.300000 +-3.0,90.000000,0.000000,-140.400000 +-3.0,90.000000,0.000000,-139.500000 +-3.0,90.000000,0.000000,-138.600000 +-3.0,90.000000,0.000000,-137.700000 +-3.0,90.000000,0.000000,-136.800000 +-3.0,90.000000,0.000000,-135.900000 +-3.0,90.000000,0.000000,-135.000000 +-3.0,90.000000,0.000000,-134.100000 +-3.0,90.000000,0.000000,-133.200000 +-3.0,90.000000,0.000000,-132.300000 +-3.0,90.000000,0.000000,-131.400000 +-3.0,90.000000,0.000000,-130.500000 +-3.0,90.000000,0.000000,-129.600000 +-3.0,90.000000,0.000000,-128.700000 +-3.0,90.000000,0.000000,-127.800000 +-3.0,90.000000,0.000000,-126.900000 +-3.0,90.000000,0.000000,-126.000000 +-3.0,90.000000,0.000000,-125.100000 +-3.0,90.000000,0.000000,-124.200000 +-3.0,90.000000,0.000000,-123.300000 +-3.0,90.000000,0.000000,-122.400000 +-3.0,90.000000,0.000000,-121.500000 +-3.0,90.000000,0.000000,-120.600000 +-3.0,90.000000,0.000000,-119.700000 +-3.0,90.000000,0.000000,-118.800000 +-3.0,90.000000,0.000000,-117.900000 +-3.0,90.000000,0.000000,-117.000000 +-3.0,90.000000,0.000000,-116.100000 +-3.0,90.000000,0.000000,-115.200000 +-3.0,90.000000,0.000000,-114.300000 +-3.0,90.000000,0.000000,-113.400000 +-3.0,90.000000,0.000000,-112.500000 +-3.0,90.000000,0.000000,-111.600000 +-3.0,90.000000,0.000000,-110.700000 +-3.0,90.000000,0.000000,-109.800000 +-3.0,90.000000,0.000000,-108.900000 +-3.0,90.000000,0.000000,-108.000000 +-3.0,90.000000,0.000000,-107.100000 +-3.0,90.000000,0.000000,-106.200000 +-3.0,90.000000,0.000000,-105.300000 +-3.0,90.000000,0.000000,-104.400000 +-3.0,90.000000,0.000000,-103.500000 +-3.0,90.000000,0.000000,-102.600000 +-3.0,90.000000,0.000000,-101.700000 +-3.0,90.000000,0.000000,-100.800000 +-3.0,90.000000,0.000000,-99.900000 +-3.0,90.000000,0.000000,-99.000000 +-3.0,90.000000,0.000000,-98.100000 +-3.0,90.000000,0.000000,-97.200000 +-3.0,90.000000,0.000000,-96.300000 +-3.0,90.000000,0.000000,-95.400000 +-3.0,90.000000,0.000000,-94.500000 +-3.0,90.000000,0.000000,-93.600000 +-3.0,90.000000,0.000000,-92.700000 +-3.0,90.000000,0.000000,-91.800000 +-3.0,90.000000,0.000000,-90.900000 +-3.0,90.000000,0.000000,-90.000000 +-3.0,90.000000,0.000000,-89.100000 +-3.0,90.000000,0.000000,-88.200000 +-3.0,90.000000,0.000000,-87.300000 +-3.0,90.000000,0.000000,-86.400000 +-3.0,90.000000,0.000000,-85.500000 +-3.0,90.000000,0.000000,-84.600000 +-3.0,90.000000,0.000000,-83.700000 +-3.0,90.000000,0.000000,-82.800000 +-3.0,90.000000,0.000000,-81.900000 +-3.0,90.000000,0.000000,-81.000000 +-3.0,90.000000,0.000000,-80.100000 +-3.0,90.000000,0.000000,-79.200000 +-3.0,90.000000,0.000000,-78.300000 +-3.0,90.000000,0.000000,-77.400000 +-3.0,90.000000,0.000000,-76.500000 +-3.0,90.000000,0.000000,-75.600000 +-3.0,90.000000,0.000000,-74.700000 +-3.0,90.000000,0.000000,-73.800000 +-3.0,90.000000,0.000000,-72.900000 +-3.0,90.000000,0.000000,-72.000000 +-3.0,90.000000,0.000000,-71.100000 +-3.0,90.000000,0.000000,-70.200000 +-3.0,90.000000,0.000000,-69.300000 +-3.0,90.000000,0.000000,-68.400000 +-3.0,90.000000,0.000000,-67.500000 +-3.0,90.000000,0.000000,-66.600000 +-3.0,90.000000,0.000000,-65.700000 +-3.0,90.000000,0.000000,-64.800000 +-3.0,90.000000,0.000000,-63.900000 +-3.0,90.000000,0.000000,-63.000000 +-3.0,90.000000,0.000000,-62.100000 +-3.0,90.000000,0.000000,-61.200000 +-3.0,90.000000,0.000000,-60.300000 +-3.0,90.000000,0.000000,-59.400000 +-3.0,90.000000,0.000000,-58.500000 +-3.0,90.000000,0.000000,-57.600000 +-3.0,90.000000,0.000000,-56.700000 +-3.0,90.000000,0.000000,-55.800000 +-3.0,90.000000,0.000000,-54.900000 +-3.0,90.000000,0.000000,-54.000000 +-3.0,90.000000,0.000000,-53.100000 +-3.0,90.000000,0.000000,-52.200000 +-3.0,90.000000,0.000000,-51.300000 +-3.0,90.000000,0.000000,-50.400000 +-3.0,90.000000,0.000000,-49.500000 +-3.0,90.000000,0.000000,-48.600000 +-3.0,90.000000,0.000000,-47.700000 +-3.0,90.000000,0.000000,-46.800000 +-3.0,90.000000,0.000000,-45.900000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-44.100000 +-3.0,90.000000,0.000000,-43.200000 +-3.0,90.000000,0.000000,-42.300000 +-3.0,90.000000,0.000000,-41.400000 +-3.0,90.000000,0.000000,-40.500000 +-3.0,90.000000,0.000000,-39.600000 +-3.0,90.000000,0.000000,-38.700000 +-3.0,90.000000,0.000000,-37.800000 +-3.0,90.000000,0.000000,-36.900000 +-3.0,90.000000,0.000000,-36.000000 +-3.0,90.000000,0.000000,-35.100000 +-3.0,90.000000,0.000000,-34.200000 +-3.0,90.000000,0.000000,-33.300000 +-3.0,90.000000,0.000000,-32.400000 +-3.0,90.000000,0.000000,-31.500000 +-3.0,90.000000,0.000000,-30.600000 +-3.0,90.000000,0.000000,-29.700000 +-3.0,90.000000,0.000000,-28.800000 +-3.0,90.000000,0.000000,-27.900000 +-3.0,90.000000,0.000000,-27.000000 +-3.0,90.000000,0.000000,-26.100000 +-3.0,90.000000,0.000000,-25.200000 +-3.0,90.000000,0.000000,-24.300000 +-3.0,90.000000,0.000000,-23.400000 +-3.0,90.000000,0.000000,-22.500000 +-3.0,90.000000,0.000000,-21.600000 +-3.0,90.000000,0.000000,-20.700000 +-3.0,90.000000,0.000000,-19.800000 +-3.0,90.000000,0.000000,-18.900000 +-3.0,90.000000,0.000000,-18.000000 +-3.0,90.000000,0.000000,-17.100000 +-3.0,90.000000,0.000000,-16.200000 +-3.0,90.000000,0.000000,-15.300000 +-3.0,90.000000,0.000000,-14.400000 +-3.0,90.000000,0.000000,-13.500000 +-3.0,90.000000,0.000000,-12.600000 +-3.0,90.000000,0.000000,-11.700000 +-3.0,90.000000,0.000000,-10.800000 +-3.0,90.000000,0.000000,-9.900000 +-3.0,90.000000,0.000000,-9.000000 +-3.0,90.000000,0.000000,-8.100000 +-3.0,90.000000,0.000000,-7.200000 +-3.0,90.000000,0.000000,-6.300000 +-3.0,90.000000,0.000000,-5.400000 +-3.0,90.000000,0.000000,-4.500000 +-3.0,90.000000,0.000000,-3.600000 +-3.0,90.000000,0.000000,-2.700000 +-3.0,90.000000,0.000000,-1.800000 +-3.0,90.000000,0.000000,-0.900000 +-3.0,90.000000,0.000000,0.000000 +-3.0,90.000000,0.000000,0.900000 +-3.0,90.000000,0.000000,1.800000 +-3.0,90.000000,0.000000,2.700000 +-3.0,90.000000,0.000000,3.600000 +-3.0,90.000000,0.000000,4.500000 +-3.0,90.000000,0.000000,5.400000 +-3.0,90.000000,0.000000,6.300000 +-3.0,90.000000,0.000000,7.200000 +-3.0,90.000000,0.000000,8.100000 +-3.0,90.000000,0.000000,9.000000 +-3.0,90.000000,0.000000,9.900000 +-3.0,90.000000,0.000000,10.800000 +-3.0,90.000000,0.000000,11.700000 +-3.0,90.000000,0.000000,12.600000 +-3.0,90.000000,0.000000,13.500000 +-3.0,90.000000,0.000000,14.400000 +-3.0,90.000000,0.000000,15.300000 +-3.0,90.000000,0.000000,16.200000 +-3.0,90.000000,0.000000,17.100000 +-3.0,90.000000,0.000000,18.000000 +-3.0,90.000000,0.000000,18.900000 +-3.0,90.000000,0.000000,19.800000 +-3.0,90.000000,0.000000,20.700000 +-3.0,90.000000,0.000000,21.600000 +-3.0,90.000000,0.000000,22.500000 +-3.0,90.000000,0.000000,23.400000 +-3.0,90.000000,0.000000,24.300000 +-3.0,90.000000,0.000000,25.200000 +-3.0,90.000000,0.000000,26.100000 +-3.0,90.000000,0.000000,27.000000 +-3.0,90.000000,0.000000,27.900000 +-3.0,90.000000,0.000000,28.800000 +-3.0,90.000000,0.000000,29.700000 +-3.0,90.000000,0.000000,30.600000 +-3.0,90.000000,0.000000,31.500000 +-3.0,90.000000,0.000000,32.400000 +-3.0,90.000000,0.000000,33.300000 +-3.0,90.000000,0.000000,34.200000 +-3.0,90.000000,0.000000,35.100000 +-3.0,90.000000,0.000000,36.000000 +-3.0,90.000000,0.000000,36.900000 +-3.0,90.000000,0.000000,37.800000 +-3.0,90.000000,0.000000,38.700000 +-3.0,90.000000,0.000000,39.600000 +-3.0,90.000000,0.000000,40.500000 +-3.0,90.000000,0.000000,41.400000 +-3.0,90.000000,0.000000,42.300000 +-3.0,90.000000,0.000000,43.200000 +-3.0,90.000000,0.000000,44.100000 +-3.0,90.000000,0.000000,45.000000 +-3.0,90.000000,0.000000,45.900000 +-3.0,90.000000,0.000000,46.800000 +-3.0,90.000000,0.000000,47.700000 +-3.0,90.000000,0.000000,48.600000 +-3.0,90.000000,0.000000,49.500000 +-3.0,90.000000,0.000000,50.400000 +-3.0,90.000000,0.000000,51.300000 +-3.0,90.000000,0.000000,52.200000 +-3.0,90.000000,0.000000,53.100000 +-3.0,90.000000,0.000000,54.000000 +-3.0,90.000000,0.000000,54.900000 +-3.0,90.000000,0.000000,55.800000 +-3.0,90.000000,0.000000,56.700000 +-3.0,90.000000,0.000000,57.600000 +-3.0,90.000000,0.000000,58.500000 +-3.0,90.000000,0.000000,59.400000 +-3.0,90.000000,0.000000,60.300000 +-3.0,90.000000,0.000000,61.200000 +-3.0,90.000000,0.000000,62.100000 +-3.0,90.000000,0.000000,63.000000 +-3.0,90.000000,0.000000,63.900000 +-3.0,90.000000,0.000000,64.800000 +-3.0,90.000000,0.000000,65.700000 +-3.0,90.000000,0.000000,66.600000 +-3.0,90.000000,0.000000,67.500000 +-3.0,90.000000,0.000000,68.400000 +-3.0,90.000000,0.000000,69.300000 +-3.0,90.000000,0.000000,70.200000 +-3.0,90.000000,0.000000,71.100000 +-3.0,90.000000,0.000000,72.000000 +-3.0,90.000000,0.000000,72.900000 +-3.0,90.000000,0.000000,73.800000 +-3.0,90.000000,0.000000,74.700000 +-3.0,90.000000,0.000000,75.600000 +-3.0,90.000000,0.000000,76.500000 +-3.0,90.000000,0.000000,77.400000 +-3.0,90.000000,0.000000,78.300000 +-3.0,90.000000,0.000000,79.200000 +-3.0,90.000000,0.000000,80.100000 +-3.0,90.000000,0.000000,81.000000 +-3.0,90.000000,0.000000,81.900000 +-3.0,90.000000,0.000000,82.800000 +-3.0,90.000000,0.000000,83.700000 +-3.0,90.000000,0.000000,84.600000 +-3.0,90.000000,0.000000,85.500000 +-3.0,90.000000,0.000000,86.400000 +-3.0,90.000000,0.000000,87.300000 +-3.0,90.000000,0.000000,88.200000 +-3.0,90.000000,0.000000,89.100000 +-3.0,90.000000,0.000000,90.000000 +-3.0,90.000000,0.000000,90.900000 +-3.0,90.000000,0.000000,91.800000 +-3.0,90.000000,0.000000,92.700000 +-3.0,90.000000,0.000000,93.600000 +-3.0,90.000000,0.000000,94.500000 +-3.0,90.000000,0.000000,95.400000 +-3.0,90.000000,0.000000,96.300000 +-3.0,90.000000,0.000000,97.200000 +-3.0,90.000000,0.000000,98.100000 +-3.0,90.000000,0.000000,99.000000 +-3.0,90.000000,0.000000,99.900000 +-3.0,90.000000,0.000000,100.800000 +-3.0,90.000000,0.000000,101.700000 +-3.0,90.000000,0.000000,102.600000 +-3.0,90.000000,0.000000,103.500000 +-3.0,90.000000,0.000000,104.400000 +-3.0,90.000000,0.000000,105.300000 +-3.0,90.000000,0.000000,106.200000 +-3.0,90.000000,0.000000,107.100000 +-3.0,90.000000,0.000000,108.000000 +-3.0,90.000000,0.000000,108.900000 +-3.0,90.000000,0.000000,109.800000 +-3.0,90.000000,0.000000,110.700000 +-3.0,90.000000,0.000000,111.600000 +-3.0,90.000000,0.000000,112.500000 +-3.0,90.000000,0.000000,113.400000 +-3.0,90.000000,0.000000,114.300000 +-3.0,90.000000,0.000000,115.200000 +-3.0,90.000000,0.000000,116.100000 +-3.0,90.000000,0.000000,117.000000 +-3.0,90.000000,0.000000,117.900000 +-3.0,90.000000,0.000000,118.800000 +-3.0,90.000000,0.000000,119.700000 +-3.0,90.000000,0.000000,120.600000 +-3.0,90.000000,0.000000,121.500000 +-3.0,90.000000,0.000000,122.400000 +-3.0,90.000000,0.000000,123.300000 +-3.0,90.000000,0.000000,124.200000 +-3.0,90.000000,0.000000,125.100000 +-3.0,90.000000,0.000000,126.000000 +-3.0,90.000000,0.000000,126.900000 +-3.0,90.000000,0.000000,127.800000 +-3.0,90.000000,0.000000,128.700000 +-3.0,90.000000,0.000000,129.600000 +-3.0,90.000000,0.000000,130.500000 +-3.0,90.000000,0.000000,131.400000 +-3.0,90.000000,0.000000,132.300000 +-3.0,90.000000,0.000000,133.200000 +-3.0,90.000000,0.000000,134.100000 +-3.0,90.000000,0.000000,135.000000 +-3.0,90.000000,0.000000,135.900000 +-3.0,90.000000,0.000000,136.800000 +-3.0,90.000000,0.000000,137.700000 +-3.0,90.000000,0.000000,138.600000 +-3.0,90.000000,0.000000,139.500000 +-3.0,90.000000,0.000000,140.400000 +-3.0,90.000000,0.000000,141.300000 +-3.0,90.000000,0.000000,142.200000 +-3.0,90.000000,0.000000,143.100000 +-3.0,90.000000,0.000000,144.000000 +-3.0,90.000000,0.000000,144.900000 +-3.0,90.000000,0.000000,145.800000 +-3.0,90.000000,0.000000,146.700000 +-3.0,90.000000,0.000000,147.600000 +-3.0,90.000000,0.000000,148.500000 +-3.0,90.000000,0.000000,149.400000 +-3.0,90.000000,0.000000,150.300000 +-3.0,90.000000,0.000000,151.200000 +-3.0,90.000000,0.000000,152.100000 +-3.0,90.000000,0.000000,153.000000 +-3.0,90.000000,0.000000,153.900000 +-3.0,90.000000,0.000000,154.800000 +-3.0,90.000000,0.000000,155.700000 +-3.0,90.000000,0.000000,156.600000 +-3.0,90.000000,0.000000,157.500000 +-3.0,90.000000,0.000000,158.400000 +-3.0,90.000000,0.000000,159.300000 +-3.0,90.000000,0.000000,160.200000 +-3.0,90.000000,0.000000,161.100000 +-3.0,90.000000,0.000000,162.000000 +-3.0,90.000000,0.000000,162.900000 +-3.0,90.000000,0.000000,163.800000 +-3.0,90.000000,0.000000,164.700000 +-3.0,90.000000,0.000000,165.600000 +-3.0,90.000000,0.000000,166.500000 +-3.0,90.000000,0.000000,167.400000 +-3.0,90.000000,0.000000,168.300000 +-3.0,90.000000,0.000000,169.200000 +-3.0,90.000000,0.000000,170.100000 +-3.0,90.000000,0.000000,171.000000 +-3.0,90.000000,0.000000,171.900000 +-3.0,90.000000,0.000000,172.800000 +-3.0,90.000000,0.000000,173.700000 +-3.0,90.000000,0.000000,174.600000 +-3.0,90.000000,0.000000,175.500000 +-3.0,90.000000,0.000000,176.400000 +-3.0,90.000000,0.000000,177.300000 +-3.0,90.000000,0.000000,178.200000 +-3.0,90.000000,0.000000,179.100000 +-3.0,90.000000,0.000000,180.000000 +-3.0,90.000000,0.000000,180.900000 +-3.0,90.000000,0.000000,181.800000 +-3.0,90.000000,0.000000,182.700000 +-3.0,90.000000,0.000000,183.600000 +-3.0,90.000000,0.000000,184.500000 +-3.0,90.000000,0.000000,185.400000 +-3.0,90.000000,0.000000,186.300000 +-3.0,90.000000,0.000000,187.200000 +-3.0,90.000000,0.000000,188.100000 +-3.0,90.000000,0.000000,189.000000 +-3.0,90.000000,0.000000,189.900000 +-3.0,90.000000,0.000000,190.800000 +-3.0,90.000000,0.000000,191.700000 +-3.0,90.000000,0.000000,192.600000 +-3.0,90.000000,0.000000,193.500000 +-3.0,90.000000,0.000000,194.400000 +-3.0,90.000000,0.000000,195.300000 +-3.0,90.000000,0.000000,196.200000 +-3.0,90.000000,0.000000,197.100000 +-3.0,90.000000,0.000000,198.000000 +-3.0,90.000000,0.000000,198.900000 +-3.0,90.000000,0.000000,199.800000 +-3.0,90.000000,0.000000,200.700000 +-3.0,90.000000,0.000000,201.600000 +-3.0,90.000000,0.000000,202.500000 +-3.0,90.000000,0.000000,203.400000 +-3.0,90.000000,0.000000,204.300000 +-3.0,90.000000,0.000000,205.200000 +-3.0,90.000000,0.000000,206.100000 +-3.0,90.000000,0.000000,207.000000 +-3.0,90.000000,0.000000,207.900000 +-3.0,90.000000,0.000000,208.800000 +-3.0,90.000000,0.000000,209.700000 +-3.0,90.000000,0.000000,210.600000 +-3.0,90.000000,0.000000,211.500000 +-3.0,90.000000,0.000000,212.400000 +-3.0,90.000000,0.000000,213.300000 +-3.0,90.000000,0.000000,214.200000 +-3.0,90.000000,0.000000,215.100000 +-3.0,90.000000,0.000000,216.000000 +-3.0,90.000000,0.000000,216.900000 +-3.0,90.000000,0.000000,217.800000 +-3.0,90.000000,0.000000,218.700000 +-3.0,90.000000,0.000000,219.600000 +-3.0,90.000000,0.000000,220.500000 +-3.0,90.000000,0.000000,221.400000 +-3.0,90.000000,0.000000,222.300000 +-3.0,90.000000,0.000000,223.200000 +-3.0,90.000000,0.000000,224.100000 +-3.0,90.000000,0.000000,225.000000 +-3.0,90.000000,0.000000,225.900000 +-3.0,90.000000,0.000000,226.800000 +-3.0,90.000000,0.000000,227.700000 +-3.0,90.000000,0.000000,228.600000 +-3.0,90.000000,0.000000,229.500000 +-3.0,90.000000,0.000000,230.400000 +-3.0,90.000000,0.000000,231.300000 +-3.0,90.000000,0.000000,232.200000 +-3.0,90.000000,0.000000,233.100000 +-3.0,90.000000,0.000000,234.000000 +-3.0,90.000000,0.000000,234.900000 +-3.0,90.000000,0.000000,235.800000 +-3.0,90.000000,0.000000,236.700000 +-3.0,90.000000,0.000000,237.600000 +-3.0,90.000000,0.000000,238.500000 +-3.0,90.000000,0.000000,239.400000 +-3.0,90.000000,0.000000,240.300000 +-3.0,90.000000,0.000000,241.200000 +-3.0,90.000000,0.000000,242.100000 +-3.0,90.000000,0.000000,243.000000 +-3.0,90.000000,0.000000,243.900000 +-3.0,90.000000,0.000000,244.800000 +-3.0,90.000000,0.000000,245.700000 +-3.0,90.000000,0.000000,246.600000 +-3.0,90.000000,0.000000,247.500000 +-3.0,90.000000,0.000000,248.400000 +-3.0,90.000000,0.000000,249.300000 +-3.0,90.000000,0.000000,250.200000 +-3.0,90.000000,0.000000,251.100000 +-3.0,90.000000,0.000000,252.000000 +-3.0,90.000000,0.000000,252.900000 +-3.0,90.000000,0.000000,253.800000 +-3.0,90.000000,0.000000,254.700000 +-3.0,90.000000,0.000000,255.600000 +-3.0,90.000000,0.000000,256.500000 +-3.0,90.000000,0.000000,257.400000 +-3.0,90.000000,0.000000,258.300000 +-3.0,90.000000,0.000000,259.200000 +-3.0,90.000000,0.000000,260.100000 +-3.0,90.000000,0.000000,261.000000 +-3.0,90.000000,0.000000,261.900000 +-3.0,90.000000,0.000000,262.800000 +-3.0,90.000000,0.000000,263.700000 +-3.0,90.000000,0.000000,264.600000 +-3.0,90.000000,0.000000,265.500000 +-3.0,90.000000,0.000000,266.400000 +-3.0,90.000000,0.000000,267.300000 +-3.0,90.000000,0.000000,268.200000 +-3.0,90.000000,0.000000,269.100000 +-3.0,90.000000,0.000000,270.000000 +-3.0,90.000000,0.000000,270.900000 +-3.0,90.000000,0.000000,271.800000 +-3.0,90.000000,0.000000,272.700000 +-3.0,90.000000,0.000000,273.600000 +-3.0,90.000000,0.000000,274.500000 +-3.0,90.000000,0.000000,275.400000 +-3.0,90.000000,0.000000,276.300000 +-3.0,90.000000,0.000000,277.200000 +-3.0,90.000000,0.000000,278.100000 +-3.0,90.000000,0.000000,279.000000 +-3.0,90.000000,0.000000,279.900000 +-3.0,90.000000,0.000000,280.800000 +-3.0,90.000000,0.000000,281.700000 +-3.0,90.000000,0.000000,282.600000 +-3.0,90.000000,0.000000,283.500000 +-3.0,90.000000,0.000000,284.400000 +-3.0,90.000000,0.000000,285.300000 +-3.0,90.000000,0.000000,286.200000 +-3.0,90.000000,0.000000,287.100000 +-3.0,90.000000,0.000000,288.000000 +-3.0,90.000000,0.000000,288.900000 +-3.0,90.000000,0.000000,289.800000 +-3.0,90.000000,0.000000,290.700000 +-3.0,90.000000,0.000000,291.600000 +-3.0,90.000000,0.000000,292.500000 +-3.0,90.000000,0.000000,293.400000 +-3.0,90.000000,0.000000,294.300000 +-3.0,90.000000,0.000000,295.200000 +-3.0,90.000000,0.000000,296.100000 +-3.0,90.000000,0.000000,297.000000 +-3.0,90.000000,0.000000,297.900000 +-3.0,90.000000,0.000000,298.800000 +-3.0,90.000000,0.000000,299.700000 +-3.0,90.000000,0.000000,300.600000 +-3.0,90.000000,0.000000,301.500000 +-3.0,90.000000,0.000000,302.400000 +-3.0,90.000000,0.000000,303.300000 +-3.0,90.000000,0.000000,304.200000 +-3.0,90.000000,0.000000,305.100000 +-3.0,90.000000,0.000000,306.000000 +-3.0,90.000000,0.000000,306.900000 +-3.0,90.000000,0.000000,307.800000 +-3.0,90.000000,0.000000,308.700000 +-3.0,90.000000,0.000000,309.600000 +-3.0,90.000000,0.000000,310.500000 +-3.0,90.000000,0.000000,311.400000 +-3.0,90.000000,0.000000,312.300000 +-3.0,90.000000,0.000000,313.200000 +-3.0,90.000000,0.000000,314.100000 +-3.0,90.000000,0.000000,315.000000 +-3.0,90.000000,0.000000,315.900000 +-3.0,90.000000,0.000000,316.800000 +-3.0,90.000000,0.000000,317.700000 +-3.0,90.000000,0.000000,318.600000 +-3.0,90.000000,0.000000,319.500000 +-3.0,90.000000,0.000000,320.400000 +-3.0,90.000000,0.000000,321.300000 +-3.0,90.000000,0.000000,322.200000 +-3.0,90.000000,0.000000,323.100000 +-3.0,90.000000,0.000000,324.000000 +-3.0,90.000000,0.000000,324.900000 +-3.0,90.000000,0.000000,325.800000 +-3.0,90.000000,0.000000,326.700000 +-3.0,90.000000,0.000000,327.600000 +-3.0,90.000000,0.000000,328.500000 +-3.0,90.000000,0.000000,329.400000 +-3.0,90.000000,0.000000,330.300000 +-3.0,90.000000,0.000000,331.200000 +-3.0,90.000000,0.000000,332.100000 +-3.0,90.000000,0.000000,333.000000 +-3.0,90.000000,0.000000,333.900000 +-3.0,90.000000,0.000000,334.800000 +-3.0,90.000000,0.000000,335.700000 +-3.0,90.000000,0.000000,336.600000 +-3.0,90.000000,0.000000,337.500000 +-3.0,90.000000,0.000000,338.400000 +-3.0,90.000000,0.000000,339.300000 +-3.0,90.000000,0.000000,340.200000 +-3.0,90.000000,0.000000,341.100000 +-3.0,90.000000,0.000000,342.000000 +-3.0,90.000000,0.000000,342.900000 +-3.0,90.000000,0.000000,343.800000 +-3.0,90.000000,0.000000,344.700000 +-3.0,90.000000,0.000000,345.600000 +-3.0,90.000000,0.000000,346.500000 +-3.0,90.000000,0.000000,347.400000 +-3.0,90.000000,0.000000,348.300000 +-3.0,90.000000,0.000000,349.200000 +-3.0,90.000000,0.000000,350.100000 +-3.0,90.000000,0.000000,351.000000 +-3.0,90.000000,0.000000,351.900000 +-3.0,90.000000,0.000000,352.800000 +-3.0,90.000000,0.000000,353.700000 +-3.0,90.000000,0.000000,354.600000 +-3.0,90.000000,0.000000,355.500000 +-3.0,90.000000,0.000000,356.400000 +-3.0,90.000000,0.000000,357.300000 +-3.0,90.000000,0.000000,358.200000 +-3.0,90.000000,0.000000,359.100000 diff --git a/scripts/trajectories/rotate_yaw_pitch_roll2.csv b/scripts/trajectories/rotate_yaw_pitch_roll2.csv index bd2921148b..c3675950ba 100644 --- a/scripts/trajectories/rotate_yaw_pitch_roll2.csv +++ b/scripts/trajectories/rotate_yaw_pitch_roll2.csv @@ -1,2401 +1,2401 @@ -0,-3.0,90.00000,0.000000,0.000000 -1,-3.0,90.00000,0.000000,0.000000 -2,-3.0,90.00000,0.000000,0.000000 -3,-3.0,90.00000,0.000000,0.000000 -4,-3.0,90.00000,0.000000,0.000000 -5,-3.0,90.00000,0.000000,0.000000 -6,-3.0,90.00000,0.000000,0.000000 -7,-3.0,90.00000,0.000000,0.000000 -8,-3.0,90.00000,0.000000,0.000000 -9,-3.0,90.00000,0.000000,0.000000 -10,-3.0,90.00000,0.000000,0.000000 -11,-3.0,90.00000,0.000000,0.000000 -12,-3.0,90.00000,0.000000,0.000000 -13,-3.0,90.00000,0.000000,0.000000 -14,-3.0,90.00000,0.000000,0.000000 -15,-3.0,90.00000,0.000000,0.000000 -16,-3.0,90.00000,0.000000,0.000000 -17,-3.0,90.00000,0.000000,0.000000 -18,-3.0,90.00000,0.000000,0.000000 -19,-3.0,90.00000,0.000000,0.000000 -20,-3.0,90.00000,0.000000,0.000000 -21,-3.0,90.00000,0.000000,0.000000 -22,-3.0,90.00000,0.000000,0.000000 -23,-3.0,90.00000,0.000000,0.000000 -24,-3.0,90.00000,0.000000,0.000000 -25,-3.0,90.00000,0.000000,0.000000 -26,-3.0,90.00000,0.000000,0.000000 -27,-3.0,90.00000,0.000000,0.000000 -28,-3.0,90.00000,0.000000,0.000000 -29,-3.0,90.00000,0.000000,0.000000 -30,-3.0,90.00000,0.000000,0.000000 -31,-3.0,90.00000,0.000000,0.000000 -32,-3.0,90.00000,0.000000,0.000000 -33,-3.0,90.00000,0.000000,0.000000 -34,-3.0,90.00000,0.000000,0.000000 -35,-3.0,90.00000,0.000000,0.000000 -36,-3.0,90.00000,0.000000,0.000000 -37,-3.0,90.00000,0.000000,0.000000 -38,-3.0,90.00000,0.000000,0.000000 -39,-3.0,90.00000,0.000000,0.000000 -40,-3.0,90.00000,0.000000,0.000000 -41,-3.0,90.00000,0.000000,0.000000 -42,-3.0,90.00000,0.000000,0.000000 -43,-3.0,90.00000,0.000000,0.000000 -44,-3.0,90.00000,0.000000,0.000000 -45,-3.0,90.00000,0.000000,0.000000 -46,-3.0,90.00000,0.000000,0.000000 -47,-3.0,90.00000,0.000000,0.000000 -48,-3.0,90.00000,0.000000,0.000000 -49,-3.0,90.00000,0.000000,0.000000 -50,-3.0,90.00000,0.000000,0.000000 -51,-3.0,90.00000,0.000000,0.000000 -52,-3.0,90.00000,0.000000,0.000000 -53,-3.0,90.00000,0.000000,0.000000 -54,-3.0,90.00000,0.000000,0.000000 -55,-3.0,90.00000,0.000000,0.000000 -56,-3.0,90.00000,0.000000,0.000000 -57,-3.0,90.00000,0.000000,0.000000 -58,-3.0,90.00000,0.000000,0.000000 -59,-3.0,90.00000,0.000000,0.000000 -60,-3.0,90.00000,0.000000,0.000000 -61,-3.0,90.00000,0.000000,0.000000 -62,-3.0,90.00000,0.000000,0.000000 -63,-3.0,90.00000,0.000000,0.000000 -64,-3.0,90.00000,0.000000,0.000000 -65,-3.0,90.00000,0.000000,0.000000 -66,-3.0,90.00000,0.000000,0.000000 -67,-3.0,90.00000,0.000000,0.000000 -68,-3.0,90.00000,0.000000,0.000000 -69,-3.0,90.00000,0.000000,0.000000 -70,-3.0,90.00000,0.000000,0.000000 -71,-3.0,90.00000,0.000000,0.000000 -72,-3.0,90.00000,0.000000,0.000000 -73,-3.0,90.00000,0.000000,0.000000 -74,-3.0,90.00000,0.000000,0.000000 -75,-3.0,90.00000,0.000000,0.000000 -76,-3.0,90.00000,0.000000,0.000000 -77,-3.0,90.00000,0.000000,0.000000 -78,-3.0,90.00000,0.000000,0.000000 -79,-3.0,90.00000,0.000000,0.000000 -80,-3.0,90.00000,0.000000,0.000000 -81,-3.0,90.00000,0.000000,0.000000 -82,-3.0,90.00000,0.000000,0.000000 -83,-3.0,90.00000,0.000000,0.000000 -84,-3.0,90.00000,0.000000,0.000000 -85,-3.0,90.00000,0.000000,0.000000 -86,-3.0,90.00000,0.000000,0.000000 -87,-3.0,90.00000,0.000000,0.000000 -88,-3.0,90.00000,0.000000,0.000000 -89,-3.0,90.00000,0.000000,0.000000 -90,-3.0,90.00000,0.000000,0.000000 -91,-3.0,90.00000,0.000000,0.000000 -92,-3.0,90.00000,0.000000,0.000000 -93,-3.0,90.00000,0.000000,0.000000 -94,-3.0,90.00000,0.000000,0.000000 -95,-3.0,90.00000,0.000000,0.000000 -96,-3.0,90.00000,0.000000,0.000000 -97,-3.0,90.00000,0.000000,0.000000 -98,-3.0,90.00000,0.000000,0.000000 -99,-3.0,90.00000,0.000000,0.000000 -100,-3.0,90.00000,0.000000,0.000000 -101,-3.0,90.00000,0.000000,0.000000 -102,-3.0,90.00000,0.000000,0.000000 -103,-3.0,90.00000,0.000000,0.000000 -104,-3.0,90.00000,0.000000,0.000000 -105,-3.0,90.00000,0.000000,0.000000 -106,-3.0,90.00000,0.000000,0.000000 -107,-3.0,90.00000,0.000000,0.000000 -108,-3.0,90.00000,0.000000,0.000000 -109,-3.0,90.00000,0.000000,0.000000 -110,-3.0,90.00000,0.000000,0.000000 -111,-3.0,90.00000,0.000000,0.000000 -112,-3.0,90.00000,0.000000,0.000000 -113,-3.0,90.00000,0.000000,0.000000 -114,-3.0,90.00000,0.000000,0.000000 -115,-3.0,90.00000,0.000000,0.000000 -116,-3.0,90.00000,0.000000,0.000000 -117,-3.0,90.00000,0.000000,0.000000 -118,-3.0,90.00000,0.000000,0.000000 -119,-3.0,90.00000,0.000000,0.000000 -120,-3.0,90.00000,0.000000,0.000000 -121,-3.0,90.00000,0.000000,0.000000 -122,-3.0,90.00000,0.000000,0.000000 -123,-3.0,90.00000,0.000000,0.000000 -124,-3.0,90.00000,0.000000,0.000000 -125,-3.0,90.00000,0.000000,0.000000 -126,-3.0,90.00000,0.000000,0.000000 -127,-3.0,90.00000,0.000000,0.000000 -128,-3.0,90.00000,0.000000,0.000000 -129,-3.0,90.00000,0.000000,0.000000 -130,-3.0,90.00000,0.000000,0.000000 -131,-3.0,90.00000,0.000000,0.000000 -132,-3.0,90.00000,0.000000,0.000000 -133,-3.0,90.00000,0.000000,0.000000 -134,-3.0,90.00000,0.000000,0.000000 -135,-3.0,90.00000,0.000000,0.000000 -136,-3.0,90.00000,0.000000,0.000000 -137,-3.0,90.00000,0.000000,0.000000 -138,-3.0,90.00000,0.000000,0.000000 -139,-3.0,90.00000,0.000000,0.000000 -140,-3.0,90.00000,0.000000,0.000000 -141,-3.0,90.00000,0.000000,0.000000 -142,-3.0,90.00000,0.000000,0.000000 -143,-3.0,90.00000,0.000000,0.000000 -144,-3.0,90.00000,0.000000,0.000000 -145,-3.0,90.00000,0.000000,0.000000 -146,-3.0,90.00000,0.000000,0.000000 -147,-3.0,90.00000,0.000000,0.000000 -148,-3.0,90.00000,0.000000,0.000000 -149,-3.0,90.00000,0.000000,0.000000 -150,-3.0,90.00000,0.000000,0.000000 -151,-3.0,90.00000,0.000000,0.000000 -152,-3.0,90.00000,0.000000,0.000000 -153,-3.0,90.00000,0.000000,0.000000 -154,-3.0,90.00000,0.000000,0.000000 -155,-3.0,90.00000,0.000000,0.000000 -156,-3.0,90.00000,0.000000,0.000000 -157,-3.0,90.00000,0.000000,0.000000 -158,-3.0,90.00000,0.000000,0.000000 -159,-3.0,90.00000,0.000000,0.000000 -160,-3.0,90.00000,0.000000,0.000000 -161,-3.0,90.00000,0.000000,0.000000 -162,-3.0,90.00000,0.000000,0.000000 -163,-3.0,90.00000,0.000000,0.000000 -164,-3.0,90.00000,0.000000,0.000000 -165,-3.0,90.00000,0.000000,0.000000 -166,-3.0,90.00000,0.000000,0.000000 -167,-3.0,90.00000,0.000000,0.000000 -168,-3.0,90.00000,0.000000,0.000000 -169,-3.0,90.00000,0.000000,0.000000 -170,-3.0,90.00000,0.000000,0.000000 -171,-3.0,90.00000,0.000000,0.000000 -172,-3.0,90.00000,0.000000,0.000000 -173,-3.0,90.00000,0.000000,0.000000 -174,-3.0,90.00000,0.000000,0.000000 -175,-3.0,90.00000,0.000000,0.000000 -176,-3.0,90.00000,0.000000,0.000000 -177,-3.0,90.00000,0.000000,0.000000 -178,-3.0,90.00000,0.000000,0.000000 -179,-3.0,90.00000,0.000000,0.000000 -180,-3.0,90.00000,0.000000,0.000000 -181,-3.0,90.00000,0.000000,0.000000 -182,-3.0,90.00000,0.000000,0.000000 -183,-3.0,90.00000,0.000000,0.000000 -184,-3.0,90.00000,0.000000,0.000000 -185,-3.0,90.00000,0.000000,0.000000 -186,-3.0,90.00000,0.000000,0.000000 -187,-3.0,90.00000,0.000000,0.000000 -188,-3.0,90.00000,0.000000,0.000000 -189,-3.0,90.00000,0.000000,0.000000 -190,-3.0,90.00000,0.000000,0.000000 -191,-3.0,90.00000,0.000000,0.000000 -192,-3.0,90.00000,0.000000,0.000000 -193,-3.0,90.00000,0.000000,0.000000 -194,-3.0,90.00000,0.000000,0.000000 -195,-3.0,90.00000,0.000000,0.000000 -196,-3.0,90.00000,0.000000,0.000000 -197,-3.0,90.00000,0.000000,0.000000 -198,-3.0,90.00000,0.000000,0.000000 -199,-3.0,90.00000,0.000000,0.000000 -200,-3.0,90.00000,0.000000,0.000000 -201,-3.0,90.00000,0.000000,0.000000 -202,-3.0,90.00000,0.000000,0.000000 -203,-3.0,90.00000,0.000000,0.000000 -204,-3.0,90.00000,0.000000,0.000000 -205,-3.0,90.00000,0.000000,0.000000 -206,-3.0,90.00000,0.000000,0.000000 -207,-3.0,90.00000,0.000000,0.000000 -208,-3.0,90.00000,0.000000,0.000000 -209,-3.0,90.00000,0.000000,0.000000 -210,-3.0,90.00000,0.000000,0.000000 -211,-3.0,90.00000,0.000000,0.000000 -212,-3.0,90.00000,0.000000,0.000000 -213,-3.0,90.00000,0.000000,0.000000 -214,-3.0,90.00000,0.000000,0.000000 -215,-3.0,90.00000,0.000000,0.000000 -216,-3.0,90.00000,0.000000,0.000000 -217,-3.0,90.00000,0.000000,0.000000 -218,-3.0,90.00000,0.000000,0.000000 -219,-3.0,90.00000,0.000000,0.000000 -220,-3.0,90.00000,0.000000,0.000000 -221,-3.0,90.00000,0.000000,0.000000 -222,-3.0,90.00000,0.000000,0.000000 -223,-3.0,90.00000,0.000000,0.000000 -224,-3.0,90.00000,0.000000,0.000000 -225,-3.0,90.00000,0.000000,0.000000 -226,-3.0,90.00000,0.000000,0.000000 -227,-3.0,90.00000,0.000000,0.000000 -228,-3.0,90.00000,0.000000,0.000000 -229,-3.0,90.00000,0.000000,0.000000 -230,-3.0,90.00000,0.000000,0.000000 -231,-3.0,90.00000,0.000000,0.000000 -232,-3.0,90.00000,0.000000,0.000000 -233,-3.0,90.00000,0.000000,0.000000 -234,-3.0,90.00000,0.000000,0.000000 -235,-3.0,90.00000,0.000000,0.000000 -236,-3.0,90.00000,0.000000,0.000000 -237,-3.0,90.00000,0.000000,0.000000 -238,-3.0,90.00000,0.000000,0.000000 -239,-3.0,90.00000,0.000000,0.000000 -240,-3.0,90.00000,0.000000,0.000000 -241,-3.0,90.00000,0.000000,0.000000 -242,-3.0,90.00000,0.000000,0.000000 -243,-3.0,90.00000,0.000000,0.000000 -244,-3.0,90.00000,0.000000,0.000000 -245,-3.0,90.00000,0.000000,0.000000 -246,-3.0,90.00000,0.000000,0.000000 -247,-3.0,90.00000,0.000000,0.000000 -248,-3.0,90.00000,0.000000,0.000000 -249,-3.0,90.00000,0.000000,0.000000 -250,-3.0,90.00000,0.000000,0.000000 -251,-3.0,90.00000,0.000000,0.000000 -252,-3.0,90.00000,0.000000,0.000000 -253,-3.0,90.00000,0.000000,0.000000 -254,-3.0,90.00000,0.000000,0.000000 -255,-3.0,90.00000,0.000000,0.000000 -256,-3.0,90.00000,0.000000,0.000000 -257,-3.0,90.00000,0.000000,0.000000 -258,-3.0,90.00000,0.000000,0.000000 -259,-3.0,90.00000,0.000000,0.000000 -260,-3.0,90.00000,0.000000,0.000000 -261,-3.0,90.00000,0.000000,0.000000 -262,-3.0,90.00000,0.000000,0.000000 -263,-3.0,90.00000,0.000000,0.000000 -264,-3.0,90.00000,0.000000,0.000000 -265,-3.0,90.00000,0.000000,0.000000 -266,-3.0,90.00000,0.000000,0.000000 -267,-3.0,90.00000,0.000000,0.000000 -268,-3.0,90.00000,0.000000,0.000000 -269,-3.0,90.00000,0.000000,0.000000 -270,-3.0,90.00000,0.000000,0.000000 -271,-3.0,90.00000,0.000000,0.000000 -272,-3.0,90.00000,0.000000,0.000000 -273,-3.0,90.00000,0.000000,0.000000 -274,-3.0,90.00000,0.000000,0.000000 -275,-3.0,90.00000,0.000000,0.000000 -276,-3.0,90.00000,0.000000,0.000000 -277,-3.0,90.00000,0.000000,0.000000 -278,-3.0,90.00000,0.000000,0.000000 -279,-3.0,90.00000,0.000000,0.000000 -280,-3.0,90.00000,0.000000,0.000000 -281,-3.0,90.00000,0.000000,0.000000 -282,-3.0,90.00000,0.000000,0.000000 -283,-3.0,90.00000,0.000000,0.000000 -284,-3.0,90.00000,0.000000,0.000000 -285,-3.0,90.00000,0.000000,0.000000 -286,-3.0,90.00000,0.000000,0.000000 -287,-3.0,90.00000,0.000000,0.000000 -288,-3.0,90.00000,0.000000,0.000000 -289,-3.0,90.0000,0.000000,0.000000 -290,-3.0,90.0000,0.000000,0.000000 -291,-3.0,90.0000,0.000000,0.000000 -292,-3.0,90.0000,0.000000,0.000000 -293,-3.0,90.0000,0.000000,0.000000 -294,-3.0,90.0000,0.000000,0.000000 -295,-3.0,90.0000,0.000000,0.000000 -296,-3.0,90.0000,0.000000,0.000000 -297,-3.0,90.0000,0.000000,0.000000 -298,-3.0,90.0000,0.000000,0.000000 -299,-3.0,90.0000,0.000000,0.000000 -300,-3.0,90.0000,0.000000,0.000000 -301,-3.0,90.0000,0.000000,0.000000 -302,-3.0,90.0000,0.000000,0.000000 -303,-3.0,90.0000,0.000000,0.000000 -304,-3.0,90.0000,0.000000,0.000000 -305,-3.0,90.0000,0.000000,0.000000 -306,-3.0,90.0000,0.000000,0.000000 -307,-3.0,90.0000,0.000000,0.000000 -308,-3.0,90.0000,0.000000,0.000000 -309,-3.0,90.0000,0.000000,0.000000 -310,-3.0,90.0000,0.000000,0.000000 -311,-3.0,90.0000,0.000000,0.000000 -312,-3.0,90.0000,0.000000,0.000000 -313,-3.0,90.0000,0.000000,0.000000 -314,-3.0,90.0000,0.000000,0.000000 -315,-3.0,90.0000,0.000000,0.000000 -316,-3.0,90.0000,0.000000,0.000000 -317,-3.0,90.0000,0.000000,0.000000 -318,-3.0,90.0000,0.000000,0.000000 -319,-3.0,90.0000,0.000000,0.000000 -320,-3.0,90.0000,0.000000,0.000000 -321,-3.0,90.0000,0.000000,0.000000 -322,-3.0,90.0000,0.000000,0.000000 -323,-3.0,90.0000,0.000000,0.000000 -324,-3.0,90.0000,0.000000,0.000000 -325,-3.0,90.0000,0.000000,0.000000 -326,-3.0,90.0000,0.000000,0.000000 -327,-3.0,90.0000,0.000000,0.000000 -328,-3.0,90.0000,0.000000,0.000000 -329,-3.0,90.0000,0.000000,0.000000 -330,-3.0,90.0000,0.000000,0.000000 -331,-3.0,90.0000,0.000000,0.000000 -332,-3.0,90.0000,0.000000,0.000000 -333,-3.0,90.0000,0.000000,0.000000 -334,-3.0,90.0000,0.000000,0.000000 -335,-3.0,90.0000,0.000000,0.000000 -336,-3.0,90.0000,0.000000,0.000000 -337,-3.0,90.0000,0.000000,0.000000 -338,-3.0,90.0000,0.000000,0.000000 -339,-3.0,90.0000,0.000000,0.000000 -340,-3.0,90.0000,0.000000,0.000000 -341,-3.0,90.0000,0.000000,0.000000 -342,-3.0,90.0000,0.000000,0.000000 -343,-3.0,90.0000,0.000000,0.000000 -344,-3.0,90.0000,0.000000,0.000000 -345,-3.0,90.0000,0.000000,0.000000 -346,-3.0,90.0000,0.000000,0.000000 -347,-3.0,90.0000,0.000000,0.000000 -348,-3.0,90.0000,0.000000,0.000000 -349,-3.0,90.0000,0.000000,0.000000 -350,-3.0,90.0000,0.000000,0.000000 -351,-3.0,90.0000,0.000000,0.000000 -352,-3.0,90.0000,0.000000,0.000000 -353,-3.0,90.0000,0.000000,0.000000 -354,-3.0,90.0000,0.000000,0.000000 -355,-3.0,90.0000,0.000000,0.000000 -356,-3.0,90.0000,0.000000,0.000000 -357,-3.0,90.0000,0.000000,0.000000 -358,-3.0,90.0000,0.000000,0.000000 -359,-3.0,90.0000,0.000000,0.000000 -360,-3.0,90.0000,0.000000,0.000000 -361,-3.0,90.0000,0.000000,0.000000 -362,-3.0,90.0000,0.000000,0.000000 -363,-3.0,90.0000,0.000000,0.000000 -364,-3.0,90.0000,0.000000,0.000000 -365,-3.0,90.0000,0.000000,0.000000 -366,-3.0,90.0000,0.000000,0.000000 -367,-3.0,90.0000,0.000000,0.000000 -368,-3.0,90.0000,0.000000,0.000000 -369,-3.0,90.0000,0.000000,0.000000 -370,-3.0,90.0000,0.000000,0.000000 -371,-3.0,90.0000,0.000000,0.000000 -372,-3.0,90.0000,0.000000,0.000000 -373,-3.0,90.0000,0.000000,0.000000 -374,-3.0,90.0000,0.000000,0.000000 -375,-3.0,90.0000,0.000000,0.000000 -376,-3.0,90.0000,0.000000,0.000000 -377,-3.0,90.0000,0.000000,0.000000 -378,-3.0,90.0000,0.000000,0.000000 -379,-3.0,90.0000,0.000000,0.000000 -380,-3.0,90.0000,0.000000,0.000000 -381,-3.0,90.0000,0.000000,0.000000 -382,-3.0,90.0000,0.000000,0.000000 -383,-3.0,90.0000,0.000000,0.000000 -384,-3.0,90.0000,0.000000,0.000000 -385,-3.0,90.0000,0.000000,0.000000 -386,-3.0,90.0000,0.000000,0.000000 -387,-3.0,90.0000,0.000000,0.000000 -388,-3.0,90.0000,0.000000,0.000000 -389,-3.0,90.000,0.000000,0.000000 -390,-3.0,90.000,0.000000,0.000000 -391,-3.0,90.000,0.000000,0.000000 -392,-3.0,90.000,0.000000,0.000000 -393,-3.0,90.000,0.000000,0.000000 -394,-3.0,90.000,0.000000,0.000000 -395,-3.0,90.000,0.000000,0.000000 -396,-3.0,90.000,0.000000,0.000000 -397,-3.0,90.000,0.000000,0.000000 -398,-3.0,90.000,0.000000,0.000000 -399,-3.0,-90.000,0.000000,0.000000 -400,-3.0,-90.000,0.000000,0.000000 -401,-3.0,-90.000,0.000000,0.000000 -402,-3.0,-90.000,0.000000,0.000000 -403,-3.0,-90.000,0.000000,0.000000 -404,-3.0,-90.000,0.000000,0.000000 -405,-3.0,-90.000,0.000000,0.000000 -406,-3.0,-90.000,0.000000,0.000000 -407,-3.0,-90.000,0.000000,0.000000 -408,-3.0,-90.000,0.000000,0.000000 -409,-3.0,-90.000,0.000000,0.000000 -410,-3.0,-90.000,0.000000,0.000000 -411,-3.0,-90.000,0.000000,0.000000 -412,-3.0,-90.0000,0.000000,0.000000 -413,-3.0,-90.0000,0.000000,0.000000 -414,-3.0,-90.0000,0.000000,0.000000 -415,-3.0,-90.0000,0.000000,0.000000 -416,-3.0,-90.0000,0.000000,0.000000 -417,-3.0,-90.0000,0.000000,0.000000 -418,-3.0,-90.0000,0.000000,0.000000 -419,-3.0,-90.0000,0.000000,0.000000 -420,-3.0,-90.0000,0.000000,0.000000 -421,-3.0,-90.0000,0.000000,0.000000 -422,-3.0,-90.0000,0.000000,0.000000 -423,-3.0,-90.0000,0.000000,0.000000 -424,-3.0,-90.0000,0.000000,0.000000 -425,-3.0,-90.0000,0.000000,0.000000 -426,-3.0,-90.0000,0.000000,0.000000 -427,-3.0,-90.0000,0.000000,0.000000 -428,-3.0,-90.0000,0.000000,0.000000 -429,-3.0,-90.0000,0.000000,0.000000 -430,-3.0,-90.0000,0.000000,0.000000 -431,-3.0,-90.0000,0.000000,0.000000 -432,-3.0,-90.0000,0.000000,0.000000 -433,-3.0,-90.0000,0.000000,0.000000 -434,-3.0,-90.0000,0.000000,0.000000 -435,-3.0,-90.0000,0.000000,0.000000 -436,-3.0,-90.0000,0.000000,0.000000 -437,-3.0,-90.0000,0.000000,0.000000 -438,-3.0,-90.0000,0.000000,0.000000 -439,-3.0,-90.0000,0.000000,0.000000 -440,-3.0,-90.0000,0.000000,0.000000 -441,-3.0,-90.0000,0.000000,0.000000 -442,-3.0,-90.0000,0.000000,0.000000 -443,-3.0,-90.0000,0.000000,0.000000 -444,-3.0,-90.0000,0.000000,0.000000 -445,-3.0,-90.0000,0.000000,0.000000 -446,-3.0,-90.0000,0.000000,0.000000 -447,-3.0,-90.0000,0.000000,0.000000 -448,-3.0,-90.0000,0.000000,0.000000 -449,-3.0,-90.0000,0.000000,0.000000 -450,-3.0,-90.0000,0.000000,0.000000 -451,-3.0,-90.0000,0.000000,0.000000 -452,-3.0,-90.0000,0.000000,0.000000 -453,-3.0,-90.0000,0.000000,0.000000 -454,-3.0,-90.0000,0.000000,0.000000 -455,-3.0,-90.0000,0.000000,0.000000 -456,-3.0,-90.0000,0.000000,0.000000 -457,-3.0,-90.0000,0.000000,0.000000 -458,-3.0,-90.0000,0.000000,0.000000 -459,-3.0,-90.0000,0.000000,0.000000 -460,-3.0,-90.0000,0.000000,0.000000 -461,-3.0,-90.0000,0.000000,0.000000 -462,-3.0,-90.0000,0.000000,0.000000 -463,-3.0,-90.0000,0.000000,0.000000 -464,-3.0,-90.0000,0.000000,0.000000 -465,-3.0,-90.0000,0.000000,0.000000 -466,-3.0,-90.0000,0.000000,0.000000 -467,-3.0,-90.0000,0.000000,0.000000 -468,-3.0,-90.0000,0.000000,0.000000 -469,-3.0,-90.0000,0.000000,0.000000 -470,-3.0,-90.0000,0.000000,0.000000 -471,-3.0,-90.0000,0.000000,0.000000 -472,-3.0,-90.0000,0.000000,0.000000 -473,-3.0,-90.0000,0.000000,0.000000 -474,-3.0,-90.0000,0.000000,0.000000 -475,-3.0,-90.0000,0.000000,0.000000 -476,-3.0,-90.0000,0.000000,0.000000 -477,-3.0,-90.0000,0.000000,0.000000 -478,-3.0,-90.0000,0.000000,0.000000 -479,-3.0,-90.0000,0.000000,0.000000 -480,-3.0,-90.0000,0.000000,0.000000 -481,-3.0,-90.0000,0.000000,0.000000 -482,-3.0,-90.0000,0.000000,0.000000 -483,-3.0,-90.0000,0.000000,0.000000 -484,-3.0,-90.0000,0.000000,0.000000 -485,-3.0,-90.0000,0.000000,0.000000 -486,-3.0,-90.0000,0.000000,0.000000 -487,-3.0,-90.0000,0.000000,0.000000 -488,-3.0,-90.0000,0.000000,0.000000 -489,-3.0,-90.0000,0.000000,0.000000 -490,-3.0,-90.0000,0.000000,0.000000 -491,-3.0,-90.0000,0.000000,0.000000 -492,-3.0,-90.0000,0.000000,0.000000 -493,-3.0,-90.0000,0.000000,0.000000 -494,-3.0,-90.0000,0.000000,0.000000 -495,-3.0,-90.0000,0.000000,0.000000 -496,-3.0,-90.0000,0.000000,0.000000 -497,-3.0,-90.0000,0.000000,0.000000 -498,-3.0,-90.0000,0.000000,0.000000 -499,-3.0,-90.0000,0.000000,0.000000 -500,-3.0,-90.0000,0.000000,0.000000 -501,-3.0,-90.0000,0.000000,0.000000 -502,-3.0,-90.0000,0.000000,0.000000 -503,-3.0,-90.0000,0.000000,0.000000 -504,-3.0,-90.0000,0.000000,0.000000 -505,-3.0,-90.0000,0.000000,0.000000 -506,-3.0,-90.0000,0.000000,0.000000 -507,-3.0,-90.0000,0.000000,0.000000 -508,-3.0,-90.0000,0.000000,0.000000 -509,-3.0,-90.0000,0.000000,0.000000 -510,-3.0,-90.0000,0.000000,0.000000 -511,-3.0,-90.0000,0.000000,0.000000 -512,-3.0,-90.00000,0.000000,0.000000 -513,-3.0,-90.00000,0.000000,0.000000 -514,-3.0,-90.00000,0.000000,0.000000 -515,-3.0,-90.00000,0.000000,0.000000 -516,-3.0,-90.00000,0.000000,0.000000 -517,-3.0,-90.00000,0.000000,0.000000 -518,-3.0,-90.00000,0.000000,0.000000 -519,-3.0,-90.00000,0.000000,0.000000 -520,-3.0,-90.00000,0.000000,0.000000 -521,-3.0,-90.00000,0.000000,0.000000 -522,-3.0,-90.00000,0.000000,0.000000 -523,-3.0,-90.00000,0.000000,0.000000 -524,-3.0,-90.00000,0.000000,0.000000 -525,-3.0,-90.00000,0.000000,0.000000 -526,-3.0,-90.00000,0.000000,0.000000 -527,-3.0,-90.00000,0.000000,0.000000 -528,-3.0,-90.00000,0.000000,0.000000 -529,-3.0,-90.00000,0.000000,0.000000 -530,-3.0,-90.00000,0.000000,0.000000 -531,-3.0,-90.00000,0.000000,0.000000 -532,-3.0,-90.00000,0.000000,0.000000 -533,-3.0,-90.00000,0.000000,0.000000 -534,-3.0,-90.00000,0.000000,0.000000 -535,-3.0,-90.00000,0.000000,0.000000 -536,-3.0,-90.00000,0.000000,0.000000 -537,-3.0,-90.00000,0.000000,0.000000 -538,-3.0,-90.00000,0.000000,0.000000 -539,-3.0,-90.00000,0.000000,0.000000 -540,-3.0,-90.00000,0.000000,0.000000 -541,-3.0,-90.00000,0.000000,0.000000 -542,-3.0,-90.00000,0.000000,0.000000 -543,-3.0,-90.00000,0.000000,0.000000 -544,-3.0,-90.00000,0.000000,0.000000 -545,-3.0,-90.00000,0.000000,0.000000 -546,-3.0,-90.00000,0.000000,0.000000 -547,-3.0,-90.00000,0.000000,0.000000 -548,-3.0,-90.00000,0.000000,0.000000 -549,-3.0,-90.00000,0.000000,0.000000 -550,-3.0,-90.00000,0.000000,0.000000 -551,-3.0,-90.00000,0.000000,0.000000 -552,-3.0,-90.00000,0.000000,0.000000 -553,-3.0,-90.00000,0.000000,0.000000 -554,-3.0,-90.00000,0.000000,0.000000 -555,-3.0,-90.00000,0.000000,0.000000 -556,-3.0,-90.00000,0.000000,0.000000 -557,-3.0,-90.00000,0.000000,0.000000 -558,-3.0,-90.00000,0.000000,0.000000 -559,-3.0,-90.00000,0.000000,0.000000 -560,-3.0,-90.00000,0.000000,0.000000 -561,-3.0,-90.00000,0.000000,0.000000 -562,-3.0,-90.00000,0.000000,0.000000 -563,-3.0,-90.00000,0.000000,0.000000 -564,-3.0,-90.00000,0.000000,0.000000 -565,-3.0,-90.00000,0.000000,0.000000 -566,-3.0,-90.00000,0.000000,0.000000 -567,-3.0,-90.00000,0.000000,0.000000 -568,-3.0,-90.00000,0.000000,0.000000 -569,-3.0,-90.00000,0.000000,0.000000 -570,-3.0,-90.00000,0.000000,0.000000 -571,-3.0,-90.00000,0.000000,0.000000 -572,-3.0,-90.00000,0.000000,0.000000 -573,-3.0,-90.00000,0.000000,0.000000 -574,-3.0,-90.00000,0.000000,0.000000 -575,-3.0,-90.00000,0.000000,0.000000 -576,-3.0,-90.00000,0.000000,0.000000 -577,-3.0,-90.00000,0.000000,0.000000 -578,-3.0,-90.00000,0.000000,0.000000 -579,-3.0,-90.00000,0.000000,0.000000 -580,-3.0,-90.00000,0.000000,0.000000 -581,-3.0,-90.00000,0.000000,0.000000 -582,-3.0,-90.00000,0.000000,0.000000 -583,-3.0,-90.00000,0.000000,0.000000 -584,-3.0,-90.00000,0.000000,0.000000 -585,-3.0,-90.00000,0.000000,0.000000 -586,-3.0,-90.00000,0.000000,0.000000 -587,-3.0,-90.00000,0.000000,0.000000 -588,-3.0,-90.00000,0.000000,0.000000 -589,-3.0,-90.00000,0.000000,0.000000 -590,-3.0,-90.00000,0.000000,0.000000 -591,-3.0,-90.00000,0.000000,0.000000 -592,-3.0,-90.00000,0.000000,0.000000 -593,-3.0,-90.00000,0.000000,0.000000 -594,-3.0,-90.00000,0.000000,0.000000 -595,-3.0,-90.00000,0.000000,0.000000 -596,-3.0,-90.00000,0.000000,0.000000 -597,-3.0,-90.00000,0.000000,0.000000 -598,-3.0,-90.00000,0.000000,0.000000 -599,-3.0,-90.00000,0.000000,0.000000 -600,-3.0,-90.00000,0.000000,0.000000 -601,-3.0,-90.00000,0.000000,0.000000 -602,-3.0,-90.00000,0.000000,0.000000 -603,-3.0,-90.00000,0.000000,0.000000 -604,-3.0,-90.00000,0.000000,0.000000 -605,-3.0,-90.00000,0.000000,0.000000 -606,-3.0,-90.00000,0.000000,0.000000 -607,-3.0,-90.00000,0.000000,0.000000 -608,-3.0,-90.00000,0.000000,0.000000 -609,-3.0,-90.00000,0.000000,0.000000 -610,-3.0,-90.00000,0.000000,0.000000 -611,-3.0,-90.00000,0.000000,0.000000 -612,-3.0,-90.00000,0.000000,0.000000 -613,-3.0,-90.00000,0.000000,0.000000 -614,-3.0,-90.00000,0.000000,0.000000 -615,-3.0,-90.00000,0.000000,0.000000 -616,-3.0,-90.00000,0.000000,0.000000 -617,-3.0,-90.00000,0.000000,0.000000 -618,-3.0,-90.00000,0.000000,0.000000 -619,-3.0,-90.00000,0.000000,0.000000 -620,-3.0,-90.00000,0.000000,0.000000 -621,-3.0,-90.00000,0.000000,0.000000 -622,-3.0,-90.00000,0.000000,0.000000 -623,-3.0,-90.00000,0.000000,0.000000 -624,-3.0,-90.00000,0.000000,0.000000 -625,-3.0,-90.00000,0.000000,0.000000 -626,-3.0,-90.00000,0.000000,0.000000 -627,-3.0,-90.00000,0.000000,0.000000 -628,-3.0,-90.00000,0.000000,0.000000 -629,-3.0,-90.00000,0.000000,0.000000 -630,-3.0,-90.00000,0.000000,0.000000 -631,-3.0,-90.00000,0.000000,0.000000 -632,-3.0,-90.00000,0.000000,0.000000 -633,-3.0,-90.00000,0.000000,0.000000 -634,-3.0,-90.00000,0.000000,0.000000 -635,-3.0,-90.00000,0.000000,0.000000 -636,-3.0,-90.00000,0.000000,0.000000 -637,-3.0,-90.00000,0.000000,0.000000 -638,-3.0,-90.00000,0.000000,0.000000 -639,-3.0,-90.00000,0.000000,0.000000 -640,-3.0,-90.00000,0.000000,0.000000 -641,-3.0,-90.00000,0.000000,0.000000 -642,-3.0,-90.00000,0.000000,0.000000 -643,-3.0,-90.00000,0.000000,0.000000 -644,-3.0,-90.00000,0.000000,0.000000 -645,-3.0,-90.00000,0.000000,0.000000 -646,-3.0,-90.00000,0.000000,0.000000 -647,-3.0,-90.00000,0.000000,0.000000 -648,-3.0,-90.00000,0.000000,0.000000 -649,-3.0,-90.00000,0.000000,0.000000 -650,-3.0,-90.00000,0.000000,0.000000 -651,-3.0,-90.00000,0.000000,0.000000 -652,-3.0,-90.00000,0.000000,0.000000 -653,-3.0,-90.00000,0.000000,0.000000 -654,-3.0,-90.00000,0.000000,0.000000 -655,-3.0,-90.00000,0.000000,0.000000 -656,-3.0,-90.00000,0.000000,0.000000 -657,-3.0,-90.00000,0.000000,0.000000 -658,-3.0,-90.00000,0.000000,0.000000 -659,-3.0,-90.00000,0.000000,0.000000 -660,-3.0,-90.00000,0.000000,0.000000 -661,-3.0,-90.00000,0.000000,0.000000 -662,-3.0,-90.00000,0.000000,0.000000 -663,-3.0,-90.00000,0.000000,0.000000 -664,-3.0,-90.00000,0.000000,0.000000 -665,-3.0,-90.00000,0.000000,0.000000 -666,-3.0,-90.00000,0.000000,0.000000 -667,-3.0,-90.00000,0.000000,0.000000 -668,-3.0,-90.00000,0.000000,0.000000 -669,-3.0,-90.00000,0.000000,0.000000 -670,-3.0,-90.00000,0.000000,0.000000 -671,-3.0,-90.00000,0.000000,0.000000 -672,-3.0,-90.00000,0.000000,0.000000 -673,-3.0,-90.00000,0.000000,0.000000 -674,-3.0,-90.00000,0.000000,0.000000 -675,-3.0,-90.00000,0.000000,0.000000 -676,-3.0,-90.00000,0.000000,0.000000 -677,-3.0,-90.00000,0.000000,0.000000 -678,-3.0,-90.00000,0.000000,0.000000 -679,-3.0,-90.00000,0.000000,0.000000 -680,-3.0,-90.00000,0.000000,0.000000 -681,-3.0,-90.00000,0.000000,0.000000 -682,-3.0,-90.00000,0.000000,0.000000 -683,-3.0,-90.00000,0.000000,0.000000 -684,-3.0,-90.00000,0.000000,0.000000 -685,-3.0,-90.00000,0.000000,0.000000 -686,-3.0,-90.00000,0.000000,0.000000 -687,-3.0,-90.00000,0.000000,0.000000 -688,-3.0,-90.00000,0.000000,0.000000 -689,-3.0,-90.00000,0.000000,0.000000 -690,-3.0,-90.00000,0.000000,0.000000 -691,-3.0,-90.00000,0.000000,0.000000 -692,-3.0,-90.00000,0.000000,0.000000 -693,-3.0,-90.00000,0.000000,0.000000 -694,-3.0,-90.00000,0.000000,0.000000 -695,-3.0,-90.00000,0.000000,0.000000 -696,-3.0,-90.00000,0.000000,0.000000 -697,-3.0,-90.00000,0.000000,0.000000 -698,-3.0,-90.00000,0.000000,0.000000 -699,-3.0,-90.00000,0.000000,0.000000 -700,-3.0,-90.00000,0.000000,0.000000 -701,-3.0,-90.00000,0.000000,0.000000 -702,-3.0,-90.00000,0.000000,0.000000 -703,-3.0,-90.00000,0.000000,0.000000 -704,-3.0,-90.00000,0.000000,0.000000 -705,-3.0,-90.00000,0.000000,0.000000 -706,-3.0,-90.00000,0.000000,0.000000 -707,-3.0,-90.00000,0.000000,0.000000 -708,-3.0,-90.00000,0.000000,0.000000 -709,-3.0,-90.00000,0.000000,0.000000 -710,-3.0,-90.00000,0.000000,0.000000 -711,-3.0,-90.00000,0.000000,0.000000 -712,-3.0,-90.00000,0.000000,0.000000 -713,-3.0,-90.00000,0.000000,0.000000 -714,-3.0,-90.00000,0.000000,0.000000 -715,-3.0,-90.00000,0.000000,0.000000 -716,-3.0,-90.00000,0.000000,0.000000 -717,-3.0,-90.00000,0.000000,0.000000 -718,-3.0,-90.00000,0.000000,0.000000 -719,-3.0,-90.00000,0.000000,0.000000 -720,-3.0,-90.00000,0.000000,0.000000 -721,-3.0,-90.00000,0.000000,0.000000 -722,-3.0,-90.00000,0.000000,0.000000 -723,-3.0,-90.00000,0.000000,0.000000 -724,-3.0,-90.00000,0.000000,0.000000 -725,-3.0,-90.00000,0.000000,0.000000 -726,-3.0,-90.00000,0.000000,0.000000 -727,-3.0,-90.00000,0.000000,0.000000 -728,-3.0,-90.00000,0.000000,0.000000 -729,-3.0,-90.00000,0.000000,0.000000 -730,-3.0,-90.00000,0.000000,0.000000 -731,-3.0,-90.00000,0.000000,0.000000 -732,-3.0,-90.00000,0.000000,0.000000 -733,-3.0,-90.00000,0.000000,0.000000 -734,-3.0,-90.00000,0.000000,0.000000 -735,-3.0,-90.00000,0.000000,0.000000 -736,-3.0,-90.00000,0.000000,0.000000 -737,-3.0,-90.00000,0.000000,0.000000 -738,-3.0,-90.00000,0.000000,0.000000 -739,-3.0,-90.00000,0.000000,0.000000 -740,-3.0,-90.00000,0.000000,0.000000 -741,-3.0,-90.00000,0.000000,0.000000 -742,-3.0,-90.00000,0.000000,0.000000 -743,-3.0,-90.00000,0.000000,0.000000 -744,-3.0,-90.00000,0.000000,0.000000 -745,-3.0,-90.00000,0.000000,0.000000 -746,-3.0,-90.00000,0.000000,0.000000 -747,-3.0,-90.00000,0.000000,0.000000 -748,-3.0,-90.00000,0.000000,0.000000 -749,-3.0,-90.00000,0.000000,0.000000 -750,-3.0,-90.00000,0.000000,0.000000 -751,-3.0,-90.00000,0.000000,0.000000 -752,-3.0,-90.00000,0.000000,0.000000 -753,-3.0,-90.00000,0.000000,0.000000 -754,-3.0,-90.00000,0.000000,0.000000 -755,-3.0,-90.00000,0.000000,0.000000 -756,-3.0,-90.00000,0.000000,0.000000 -757,-3.0,-90.00000,0.000000,0.000000 -758,-3.0,-90.00000,0.000000,0.000000 -759,-3.0,-90.00000,0.000000,0.000000 -760,-3.0,-90.00000,0.000000,0.000000 -761,-3.0,-90.00000,0.000000,0.000000 -762,-3.0,-90.00000,0.000000,0.000000 -763,-3.0,-90.00000,0.000000,0.000000 -764,-3.0,-90.00000,0.000000,0.000000 -765,-3.0,-90.00000,0.000000,0.000000 -766,-3.0,-90.00000,0.000000,0.000000 -767,-3.0,-90.00000,0.000000,0.000000 -768,-3.0,-90.00000,0.000000,0.000000 -769,-3.0,-90.00000,0.000000,0.000000 -770,-3.0,-90.00000,0.000000,0.000000 -771,-3.0,-90.00000,0.000000,0.000000 -772,-3.0,-90.00000,0.000000,0.000000 -773,-3.0,-90.00000,0.000000,0.000000 -774,-3.0,-90.00000,0.000000,0.000000 -775,-3.0,-90.00000,0.000000,0.000000 -776,-3.0,-90.00000,0.000000,0.000000 -777,-3.0,-90.00000,0.000000,0.000000 -778,-3.0,-90.00000,0.000000,0.000000 -779,-3.0,-90.00000,0.000000,0.000000 -780,-3.0,-90.00000,0.000000,0.000000 -781,-3.0,-90.00000,0.000000,0.000000 -782,-3.0,-90.00000,0.000000,0.000000 -783,-3.0,-90.00000,0.000000,0.000000 -784,-3.0,-90.00000,0.000000,0.000000 -785,-3.0,-90.00000,0.000000,0.000000 -786,-3.0,-90.00000,0.000000,0.000000 -787,-3.0,-90.00000,0.000000,0.000000 -788,-3.0,-90.00000,0.000000,0.000000 -789,-3.0,-90.00000,0.000000,0.000000 -790,-3.0,-90.00000,0.000000,0.000000 -791,-3.0,-90.00000,0.000000,0.000000 -792,-3.0,-90.00000,0.000000,0.000000 -793,-3.0,-90.00000,0.000000,0.000000 -794,-3.0,-90.00000,0.000000,0.000000 -795,-3.0,-90.00000,0.000000,0.000000 -796,-3.0,-90.00000,0.000000,0.000000 -797,-3.0,-90.00000,0.000000,0.000000 -798,-3.0,-90.00000,0.000000,0.000000 -799,-3.0,-90.00000,0.000000,0.000000 -800,-3.0,0.000000,90.0000000,0.000000 -801,-3.0,0.000000,90.0000000,0.000000 -802,-3.0,0.000000,90.0000000,0.000000 -803,-3.0,0.000000,90.0000000,0.000000 -804,-3.0,0.000000,90.0000000,0.000000 -805,-3.0,0.000000,90.0000000,0.000000 -806,-3.0,0.000000,90.0000000,0.000000 -807,-3.0,0.000000,90.0000000,0.000000 -808,-3.0,0.000000,90.0000000,0.000000 -809,-3.0,0.000000,90.0000000,0.000000 -810,-3.0,0.000000,90.0000000,0.000000 -811,-3.0,0.000000,90.0000000,0.000000 -812,-3.0,0.000000,90.0000000,0.000000 -813,-3.0,0.000000,90.0000000,0.000000 -814,-3.0,0.000000,90.0000000,0.000000 -815,-3.0,0.000000,90.0000000,0.000000 -816,-3.0,0.000000,90.0000000,0.000000 -817,-3.0,0.000000,90.0000000,0.000000 -818,-3.0,0.000000,90.0000000,0.000000 -819,-3.0,0.000000,90.0000000,0.000000 -820,-3.0,0.000000,90.0000000,0.000000 -821,-3.0,0.000000,90.0000000,0.000000 -822,-3.0,0.000000,90.0000000,0.000000 -823,-3.0,0.000000,90.0000000,0.000000 -824,-3.0,0.000000,90.0000000,0.000000 -825,-3.0,0.000000,90.0000000,0.000000 -826,-3.0,0.000000,90.0000000,0.000000 -827,-3.0,0.000000,90.0000000,0.000000 -828,-3.0,0.000000,90.0000000,0.000000 -829,-3.0,0.000000,90.0000000,0.000000 -830,-3.0,0.000000,90.0000000,0.000000 -831,-3.0,0.000000,90.0000000,0.000000 -832,-3.0,0.000000,90.0000000,0.000000 -833,-3.0,0.000000,90.0000000,0.000000 -834,-3.0,0.000000,90.0000000,0.000000 -835,-3.0,0.000000,90.0000000,0.000000 -836,-3.0,0.000000,90.0000000,0.000000 -837,-3.0,0.000000,90.0000000,0.000000 -838,-3.0,0.000000,90.0000000,0.000000 -839,-3.0,0.000000,90.0000000,0.000000 -840,-3.0,0.000000,90.0000000,0.000000 -841,-3.0,0.000000,90.0000000,0.000000 -842,-3.0,0.000000,90.0000000,0.000000 -843,-3.0,0.000000,90.0000000,0.000000 -844,-3.0,0.000000,90.0000000,0.000000 -845,-3.0,0.000000,90.0000000,0.000000 -846,-3.0,0.000000,90.0000000,0.000000 -847,-3.0,0.000000,90.0000000,0.000000 -848,-3.0,0.000000,90.0000000,0.000000 -849,-3.0,0.000000,90.0000000,0.000000 -850,-3.0,0.000000,90.0000000,0.000000 -851,-3.0,0.000000,90.0000000,0.000000 -852,-3.0,0.000000,90.0000000,0.000000 -853,-3.0,0.000000,90.0000000,0.000000 -854,-3.0,0.000000,90.0000000,0.000000 -855,-3.0,0.000000,90.0000000,0.000000 -856,-3.0,0.000000,90.0000000,0.000000 -857,-3.0,0.000000,90.0000000,0.000000 -858,-3.0,0.000000,90.0000000,0.000000 -859,-3.0,0.000000,90.0000000,0.000000 -860,-3.0,0.000000,90.0000000,0.000000 -861,-3.0,0.000000,90.0000000,0.000000 -862,-3.0,0.000000,90.0000000,0.000000 -863,-3.0,0.000000,90.0000000,0.000000 -864,-3.0,0.000000,90.0000000,0.000000 -865,-3.0,0.000000,90.0000000,0.000000 -866,-3.0,0.000000,90.0000000,0.000000 -867,-3.0,0.000000,90.0000000,0.000000 -868,-3.0,0.000000,90.0000000,0.000000 -869,-3.0,0.000000,90.0000000,0.000000 -870,-3.0,0.000000,90.0000000,0.000000 -871,-3.0,0.000000,90.0000000,0.000000 -872,-3.0,0.000000,90.0000000,0.000000 -873,-3.0,0.000000,90.0000000,0.000000 -874,-3.0,0.000000,90.0000000,0.000000 -875,-3.0,0.000000,90.0000000,0.000000 -876,-3.0,0.000000,90.0000000,0.000000 -877,-3.0,0.000000,90.0000000,0.000000 -878,-3.0,0.000000,90.0000000,0.000000 -879,-3.0,0.000000,90.0000000,0.000000 -880,-3.0,0.000000,90.0000000,0.000000 -881,-3.0,0.000000,90.0000000,0.000000 -882,-3.0,0.000000,90.0000000,0.000000 -883,-3.0,0.000000,90.0000000,0.000000 -884,-3.0,0.000000,90.0000000,0.000000 -885,-3.0,0.000000,90.0000000,0.000000 -886,-3.0,0.000000,90.0000000,0.000000 -887,-3.0,0.000000,90.0000000,0.000000 -888,-3.0,0.000000,90.0000000,0.000000 -889,-3.0,0.000000,90.0000000,0.000000 -890,-3.0,0.000000,90.0000000,0.000000 -891,-3.0,0.000000,90.0000000,0.000000 -892,-3.0,0.000000,90.0000000,0.000000 -893,-3.0,0.000000,90.0000000,0.000000 -894,-3.0,0.000000,90.0000000,0.000000 -895,-3.0,0.000000,90.0000000,0.000000 -896,-3.0,0.000000,90.0000000,0.000000 -897,-3.0,0.000000,90.0000000,0.000000 -898,-3.0,0.000000,90.0000000,0.000000 -899,-3.0,0.000000,90.0000000,0.000000 -900,-3.0,0.000000,90.0000000,0.000000 -901,-3.0,0.000000,90.0000000,0.000000 -902,-3.0,0.000000,90.0000000,0.000000 -903,-3.0,0.000000,90.0000000,0.000000 -904,-3.0,0.000000,90.0000000,0.000000 -905,-3.0,0.000000,90.0000000,0.000000 -906,-3.0,0.000000,90.0000000,0.000000 -907,-3.0,0.000000,90.0000000,0.000000 -908,-3.0,0.000000,90.0000000,0.000000 -909,-3.0,0.000000,90.0000000,0.000000 -910,-3.0,0.000000,90.0000000,0.000000 -911,-3.0,0.000000,90.0000000,0.000000 -912,-3.0,0.000000,90.0000000,0.000000 -913,-3.0,0.000000,90.0000000,0.000000 -914,-3.0,0.000000,90.0000000,0.000000 -915,-3.0,0.000000,90.0000000,0.000000 -916,-3.0,0.000000,90.0000000,0.000000 -917,-3.0,0.000000,90.0000000,0.000000 -918,-3.0,0.000000,90.0000000,0.000000 -919,-3.0,0.000000,90.0000000,0.000000 -920,-3.0,0.000000,90.0000000,0.000000 -921,-3.0,0.000000,90.0000000,0.000000 -922,-3.0,0.000000,90.0000000,0.000000 -923,-3.0,0.000000,90.0000000,0.000000 -924,-3.0,0.000000,90.0000000,0.000000 -925,-3.0,0.000000,90.0000000,0.000000 -926,-3.0,0.000000,90.0000000,0.000000 -927,-3.0,0.000000,90.0000000,0.000000 -928,-3.0,0.000000,90.0000000,0.000000 -929,-3.0,0.000000,90.0000000,0.000000 -930,-3.0,0.000000,90.0000000,0.000000 -931,-3.0,0.000000,90.0000000,0.000000 -932,-3.0,0.000000,90.0000000,0.000000 -933,-3.0,0.000000,90.0000000,0.000000 -934,-3.0,0.000000,90.0000000,0.000000 -935,-3.0,0.000000,90.0000000,0.000000 -936,-3.0,0.000000,90.0000000,0.000000 -937,-3.0,0.000000,90.0000000,0.000000 -938,-3.0,0.000000,90.0000000,0.000000 -939,-3.0,0.000000,90.0000000,0.000000 -940,-3.0,0.000000,90.0000000,0.000000 -941,-3.0,0.000000,90.0000000,0.000000 -942,-3.0,0.000000,90.0000000,0.000000 -943,-3.0,0.000000,90.0000000,0.000000 -944,-3.0,0.000000,90.0000000,0.000000 -945,-3.0,0.000000,90.0000000,0.000000 -946,-3.0,0.000000,90.0000000,0.000000 -947,-3.0,0.000000,90.0000000,0.000000 -948,-3.0,0.000000,90.0000000,0.000000 -949,-3.0,0.000000,90.0000000,0.000000 -950,-3.0,0.000000,90.0000000,0.000000 -951,-3.0,0.000000,90.0000000,0.000000 -952,-3.0,0.000000,90.0000000,0.000000 -953,-3.0,0.000000,90.0000000,0.000000 -954,-3.0,0.000000,90.0000000,0.000000 -955,-3.0,0.000000,90.0000000,0.000000 -956,-3.0,0.000000,90.0000000,0.000000 -957,-3.0,0.000000,90.0000000,0.000000 -958,-3.0,0.000000,90.0000000,0.000000 -959,-3.0,0.000000,90.0000000,0.000000 -960,-3.0,0.000000,90.0000000,0.000000 -961,-3.0,0.000000,90.0000000,0.000000 -962,-3.0,0.000000,90.0000000,0.000000 -963,-3.0,0.000000,90.0000000,0.000000 -964,-3.0,0.000000,90.0000000,0.000000 -965,-3.0,0.000000,90.0000000,0.000000 -966,-3.0,0.000000,90.0000000,0.000000 -967,-3.0,0.000000,90.0000000,0.000000 -968,-3.0,0.000000,90.0000000,0.000000 -969,-3.0,0.000000,90.0000000,0.000000 -970,-3.0,0.000000,90.0000000,0.000000 -971,-3.0,0.000000,90.0000000,0.000000 -972,-3.0,0.000000,90.0000000,0.000000 -973,-3.0,0.000000,90.0000000,0.000000 -974,-3.0,0.000000,90.0000000,0.000000 -975,-3.0,0.000000,90.0000000,0.000000 -976,-3.0,0.000000,90.0000000,0.000000 -977,-3.0,0.000000,90.0000000,0.000000 -978,-3.0,0.000000,90.0000000,0.000000 -979,-3.0,0.000000,90.0000000,0.000000 -980,-3.0,0.000000,90.0000000,0.000000 -981,-3.0,0.000000,90.0000000,0.000000 -982,-3.0,0.000000,90.0000000,0.000000 -983,-3.0,0.000000,90.0000000,0.000000 -984,-3.0,0.000000,90.0000000,0.000000 -985,-3.0,0.000000,90.0000000,0.000000 -986,-3.0,0.000000,90.0000000,0.000000 -987,-3.0,0.000000,90.0000000,0.000000 -988,-3.0,0.000000,90.0000000,0.000000 -989,-3.0,0.000000,90.0000000,0.000000 -990,-3.0,0.000000,90.0000000,0.000000 -991,-3.0,0.000000,90.0000000,0.000000 -992,-3.0,0.000000,90.0000000,0.000000 -993,-3.0,0.000000,90.0000000,0.000000 -994,-3.0,0.000000,90.0000000,0.000000 -995,-3.0,0.000000,90.0000000,0.000000 -996,-3.0,0.000000,90.0000000,0.000000 -997,-3.0,0.000000,90.0000000,0.000000 -998,-3.0,0.000000,90.0000000,0.000000 -999,-3.0,0.000000,90.0000000,0.000000 -1000,-3.0,0.000000,90.0000000,0.000000 -1001,-3.0,0.000000,90.0000000,0.000000 -1002,-3.0,0.000000,90.0000000,0.000000 -1003,-3.0,0.000000,90.0000000,0.000000 -1004,-3.0,0.000000,90.0000000,0.000000 -1005,-3.0,0.000000,90.0000000,0.000000 -1006,-3.0,0.000000,90.0000000,0.000000 -1007,-3.0,0.000000,90.0000000,0.000000 -1008,-3.0,0.000000,90.0000000,0.000000 -1009,-3.0,0.000000,90.0000000,0.000000 -1010,-3.0,0.000000,90.0000000,0.000000 -1011,-3.0,0.000000,90.0000000,0.000000 -1012,-3.0,0.000000,90.0000000,0.000000 -1013,-3.0,0.000000,90.0000000,0.000000 -1014,-3.0,0.000000,90.0000000,0.000000 -1015,-3.0,0.000000,90.0000000,0.000000 -1016,-3.0,0.000000,90.0000000,0.000000 -1017,-3.0,0.000000,90.0000000,0.000000 -1018,-3.0,0.000000,90.0000000,0.000000 -1019,-3.0,0.000000,90.0000000,0.000000 -1020,-3.0,0.000000,90.0000000,0.000000 -1021,-3.0,0.000000,90.0000000,0.000000 -1022,-3.0,0.000000,90.0000000,0.000000 -1023,-3.0,0.000000,90.0000000,0.000000 -1024,-3.0,0.000000,90.0000000,0.000000 -1025,-3.0,0.000000,90.0000000,0.000000 -1026,-3.0,0.000000,90.0000000,0.000000 -1027,-3.0,0.000000,90.0000000,0.000000 -1028,-3.0,0.000000,90.0000000,0.000000 -1029,-3.0,0.000000,90.0000000,0.000000 -1030,-3.0,0.000000,90.0000000,0.000000 -1031,-3.0,0.000000,90.0000000,0.000000 -1032,-3.0,0.000000,90.0000000,0.000000 -1033,-3.0,0.000000,90.0000000,0.000000 -1034,-3.0,0.000000,90.0000000,0.000000 -1035,-3.0,0.000000,90.0000000,0.000000 -1036,-3.0,0.000000,90.0000000,0.000000 -1037,-3.0,0.000000,90.0000000,0.000000 -1038,-3.0,0.000000,90.0000000,0.000000 -1039,-3.0,0.000000,90.0000000,0.000000 -1040,-3.0,0.000000,90.0000000,0.000000 -1041,-3.0,0.000000,90.0000000,0.000000 -1042,-3.0,0.000000,90.0000000,0.000000 -1043,-3.0,0.000000,90.0000000,0.000000 -1044,-3.0,0.000000,90.0000000,0.000000 -1045,-3.0,0.000000,90.0000000,0.000000 -1046,-3.0,0.000000,90.0000000,0.000000 -1047,-3.0,0.000000,90.0000000,0.000000 -1048,-3.0,0.000000,90.0000000,0.000000 -1049,-3.0,0.000000,90.0000000,0.000000 -1050,-3.0,0.000000,90.0000000,0.000000 -1051,-3.0,0.000000,90.0000000,0.000000 -1052,-3.0,0.000000,90.0000000,0.000000 -1053,-3.0,0.000000,90.0000000,0.000000 -1054,-3.0,0.000000,90.0000000,0.000000 -1055,-3.0,0.000000,90.0000000,0.000000 -1056,-3.0,0.000000,90.0000000,0.000000 -1057,-3.0,0.000000,90.0000000,0.000000 -1058,-3.0,0.000000,90.0000000,0.000000 -1059,-3.0,0.000000,90.0000000,0.000000 -1060,-3.0,0.000000,90.0000000,0.000000 -1061,-3.0,0.000000,90.0000000,0.000000 -1062,-3.0,0.000000,90.0000000,0.000000 -1063,-3.0,0.000000,90.0000000,0.000000 -1064,-3.0,0.000000,90.0000000,0.000000 -1065,-3.0,0.000000,90.0000000,0.000000 -1066,-3.0,0.000000,90.0000000,0.000000 -1067,-3.0,0.000000,90.0000000,0.000000 -1068,-3.0,0.000000,90.0000000,0.000000 -1069,-3.0,0.000000,90.0000000,0.000000 -1070,-3.0,0.000000,90.0000000,0.000000 -1071,-3.0,0.000000,90.0000000,0.000000 -1072,-3.0,0.000000,90.0000000,0.000000 -1073,-3.0,0.000000,90.0000000,0.000000 -1074,-3.0,0.000000,90.0000000,0.000000 -1075,-3.0,0.000000,90.0000000,0.000000 -1076,-3.0,0.000000,90.0000000,0.000000 -1077,-3.0,0.000000,90.0000000,0.000000 -1078,-3.0,0.000000,90.0000000,0.000000 -1079,-3.0,0.000000,90.0000000,0.000000 -1080,-3.0,0.000000,90.0000000,0.000000 -1081,-3.0,0.000000,90.0000000,0.000000 -1082,-3.0,0.000000,90.0000000,0.000000 -1083,-3.0,0.000000,90.0000000,0.000000 -1084,-3.0,0.000000,90.0000000,0.000000 -1085,-3.0,0.000000,90.0000000,0.000000 -1086,-3.0,0.000000,90.0000000,0.000000 -1087,-3.0,0.000000,90.0000000,0.000000 -1088,-3.0,0.000000,90.0000000,0.000000 -1089,-3.0,0.000000,90.000000,0.000000 -1090,-3.0,0.000000,90.000000,0.000000 -1091,-3.0,0.000000,90.000000,0.000000 -1092,-3.0,0.000000,90.000000,0.000000 -1093,-3.0,0.000000,90.000000,0.000000 -1094,-3.0,0.000000,90.000000,0.000000 -1095,-3.0,0.000000,90.000000,0.000000 -1096,-3.0,0.000000,90.000000,0.000000 -1097,-3.0,0.000000,90.000000,0.000000 -1098,-3.0,0.000000,90.000000,0.000000 -1099,-3.0,0.000000,90.000000,0.000000 -1100,-3.0,0.000000,90.000000,0.000000 -1101,-3.0,0.000000,90.000000,0.000000 -1102,-3.0,0.000000,90.000000,0.000000 -1103,-3.0,0.000000,90.000000,0.000000 -1104,-3.0,0.000000,90.000000,0.000000 -1105,-3.0,0.000000,90.000000,0.000000 -1106,-3.0,0.000000,90.000000,0.000000 -1107,-3.0,0.000000,90.000000,0.000000 -1108,-3.0,0.000000,90.000000,0.000000 -1109,-3.0,0.000000,90.000000,0.000000 -1110,-3.0,0.000000,90.000000,0.000000 -1111,-3.0,0.000000,90.000000,0.000000 -1112,-3.0,0.000000,90.000000,0.000000 -1113,-3.0,0.000000,90.000000,0.000000 -1114,-3.0,0.000000,90.000000,0.000000 -1115,-3.0,0.000000,90.000000,0.000000 -1116,-3.0,0.000000,90.000000,0.000000 -1117,-3.0,0.000000,90.000000,0.000000 -1118,-3.0,0.000000,90.000000,0.000000 -1119,-3.0,0.000000,90.000000,0.000000 -1120,-3.0,0.000000,90.000000,0.000000 -1121,-3.0,0.000000,90.000000,0.000000 -1122,-3.0,0.000000,90.000000,0.000000 -1123,-3.0,0.000000,90.000000,0.000000 -1124,-3.0,0.000000,90.000000,0.000000 -1125,-3.0,0.000000,90.000000,0.000000 -1126,-3.0,0.000000,90.000000,0.000000 -1127,-3.0,0.000000,90.000000,0.000000 -1128,-3.0,0.000000,90.000000,0.000000 -1129,-3.0,0.000000,90.000000,0.000000 -1130,-3.0,0.000000,90.000000,0.000000 -1131,-3.0,0.000000,90.000000,0.000000 -1132,-3.0,0.000000,90.000000,0.000000 -1133,-3.0,0.000000,90.000000,0.000000 -1134,-3.0,0.000000,90.000000,0.000000 -1135,-3.0,0.000000,90.000000,0.000000 -1136,-3.0,0.000000,90.000000,0.000000 -1137,-3.0,0.000000,90.000000,0.000000 -1138,-3.0,0.000000,90.000000,0.000000 -1139,-3.0,0.000000,90.000000,0.000000 -1140,-3.0,0.000000,90.000000,0.000000 -1141,-3.0,0.000000,90.000000,0.000000 -1142,-3.0,0.000000,90.000000,0.000000 -1143,-3.0,0.000000,90.000000,0.000000 -1144,-3.0,0.000000,90.000000,0.000000 -1145,-3.0,0.000000,90.000000,0.000000 -1146,-3.0,0.000000,90.000000,0.000000 -1147,-3.0,0.000000,90.000000,0.000000 -1148,-3.0,0.000000,90.000000,0.000000 -1149,-3.0,0.000000,90.000000,0.000000 -1150,-3.0,0.000000,90.000000,0.000000 -1151,-3.0,0.000000,90.000000,0.000000 -1152,-3.0,0.000000,90.000000,0.000000 -1153,-3.0,0.000000,90.000000,0.000000 -1154,-3.0,0.000000,90.000000,0.000000 -1155,-3.0,0.000000,90.000000,0.000000 -1156,-3.0,0.000000,90.000000,0.000000 -1157,-3.0,0.000000,90.000000,0.000000 -1158,-3.0,0.000000,90.000000,0.000000 -1159,-3.0,0.000000,90.000000,0.000000 -1160,-3.0,0.000000,90.000000,0.000000 -1161,-3.0,0.000000,90.000000,0.000000 -1162,-3.0,0.000000,90.000000,0.000000 -1163,-3.0,0.000000,90.000000,0.000000 -1164,-3.0,0.000000,90.000000,0.000000 -1165,-3.0,0.000000,90.000000,0.000000 -1166,-3.0,0.000000,90.000000,0.000000 -1167,-3.0,0.000000,90.000000,0.000000 -1168,-3.0,0.000000,90.000000,0.000000 -1169,-3.0,0.000000,90.000000,0.000000 -1170,-3.0,0.000000,90.000000,0.000000 -1171,-3.0,0.000000,90.000000,0.000000 -1172,-3.0,0.000000,90.000000,0.000000 -1173,-3.0,0.000000,90.000000,0.000000 -1174,-3.0,0.000000,90.000000,0.000000 -1175,-3.0,0.000000,90.000000,0.000000 -1176,-3.0,0.000000,90.000000,0.000000 -1177,-3.0,0.000000,90.000000,0.000000 -1178,-3.0,0.000000,90.000000,0.000000 -1179,-3.0,0.000000,90.000000,0.000000 -1180,-3.0,0.000000,90.000000,0.000000 -1181,-3.0,0.000000,90.000000,0.000000 -1182,-3.0,0.000000,90.000000,0.000000 -1183,-3.0,0.000000,90.000000,0.000000 -1184,-3.0,0.000000,90.000000,0.000000 -1185,-3.0,0.000000,90.000000,0.000000 -1186,-3.0,0.000000,90.000000,0.000000 -1187,-3.0,0.000000,90.000000,0.000000 -1188,-3.0,0.000000,90.000000,0.000000 -1189,-3.0,0.000000,90.00000,0.000000 -1190,-3.0,0.000000,90.00000,0.000000 -1191,-3.0,0.000000,90.00000,0.000000 -1192,-3.0,0.000000,90.00000,0.000000 -1193,-3.0,0.000000,90.00000,0.000000 -1194,-3.0,0.000000,90.00000,0.000000 -1195,-3.0,0.000000,90.00000,0.000000 -1196,-3.0,0.000000,90.00000,0.000000 -1197,-3.0,0.000000,90.00000,0.000000 -1198,-3.0,0.000000,90.00000,0.000000 -1199,-3.0,0.000000,90.00000,0.000000 -1200,-3.0,0.000000,-90.000,0.000000 -1201,-3.0,0.000000,-90.000,0.000000 -1202,-3.0,0.000000,-90.000,0.000000 -1203,-3.0,0.000000,-90.000,0.000000 -1204,-3.0,0.000000,-90.000,0.000000 -1205,-3.0,0.000000,-90.000,0.000000 -1206,-3.0,0.000000,-90.000,0.000000 -1207,-3.0,0.000000,-90.000,0.000000 -1208,-3.0,0.000000,-90.000,0.000000 -1209,-3.0,0.000000,-90.000,0.000000 -1210,-3.0,0.000000,-90.000,0.000000 -1211,-3.0,0.000000,-90.000,0.000000 -1212,-3.0,0.000000,-90.0000,0.000000 -1213,-3.0,0.000000,-90.0000,0.000000 -1214,-3.0,0.000000,-90.0000,0.000000 -1215,-3.0,0.000000,-90.0000,0.000000 -1216,-3.0,0.000000,-90.0000,0.000000 -1217,-3.0,0.000000,-90.0000,0.000000 -1218,-3.0,0.000000,-90.0000,0.000000 -1219,-3.0,0.000000,-90.0000,0.000000 -1220,-3.0,0.000000,-90.0000,0.000000 -1221,-3.0,0.000000,-90.0000,0.000000 -1222,-3.0,0.000000,-90.0000,0.000000 -1223,-3.0,0.000000,-90.0000,0.000000 -1224,-3.0,0.000000,-90.0000,0.000000 -1225,-3.0,0.000000,-90.0000,0.000000 -1226,-3.0,0.000000,-90.0000,0.000000 -1227,-3.0,0.000000,-90.0000,0.000000 -1228,-3.0,0.000000,-90.0000,0.000000 -1229,-3.0,0.000000,-90.0000,0.000000 -1230,-3.0,0.000000,-90.0000,0.000000 -1231,-3.0,0.000000,-90.0000,0.000000 -1232,-3.0,0.000000,-90.0000,0.000000 -1233,-3.0,0.000000,-90.0000,0.000000 -1234,-3.0,0.000000,-90.0000,0.000000 -1235,-3.0,0.000000,-90.0000,0.000000 -1236,-3.0,0.000000,-90.0000,0.000000 -1237,-3.0,0.000000,-90.0000,0.000000 -1238,-3.0,0.000000,-90.0000,0.000000 -1239,-3.0,0.000000,-90.0000,0.000000 -1240,-3.0,0.000000,-90.0000,0.000000 -1241,-3.0,0.000000,-90.0000,0.000000 -1242,-3.0,0.000000,-90.0000,0.000000 -1243,-3.0,0.000000,-90.0000,0.000000 -1244,-3.0,0.000000,-90.0000,0.000000 -1245,-3.0,0.000000,-90.0000,0.000000 -1246,-3.0,0.000000,-90.0000,0.000000 -1247,-3.0,0.000000,-90.0000,0.000000 -1248,-3.0,0.000000,-90.0000,0.000000 -1249,-3.0,0.000000,-90.0000,0.000000 -1250,-3.0,0.000000,-90.0000,0.000000 -1251,-3.0,0.000000,-90.0000,0.000000 -1252,-3.0,0.000000,-90.0000,0.000000 -1253,-3.0,0.000000,-90.0000,0.000000 -1254,-3.0,0.000000,-90.0000,0.000000 -1255,-3.0,0.000000,-90.0000,0.000000 -1256,-3.0,0.000000,-90.0000,0.000000 -1257,-3.0,0.000000,-90.0000,0.000000 -1258,-3.0,0.000000,-90.0000,0.000000 -1259,-3.0,0.000000,-90.0000,0.000000 -1260,-3.0,0.000000,-90.0000,0.000000 -1261,-3.0,0.000000,-90.0000,0.000000 -1262,-3.0,0.000000,-90.0000,0.000000 -1263,-3.0,0.000000,-90.0000,0.000000 -1264,-3.0,0.000000,-90.0000,0.000000 -1265,-3.0,0.000000,-90.0000,0.000000 -1266,-3.0,0.000000,-90.0000,0.000000 -1267,-3.0,0.000000,-90.0000,0.000000 -1268,-3.0,0.000000,-90.0000,0.000000 -1269,-3.0,0.000000,-90.0000,0.000000 -1270,-3.0,0.000000,-90.0000,0.000000 -1271,-3.0,0.000000,-90.0000,0.000000 -1272,-3.0,0.000000,-90.0000,0.000000 -1273,-3.0,0.000000,-90.0000,0.000000 -1274,-3.0,0.000000,-90.0000,0.000000 -1275,-3.0,0.000000,-90.0000,0.000000 -1276,-3.0,0.000000,-90.0000,0.000000 -1277,-3.0,0.000000,-90.0000,0.000000 -1278,-3.0,0.000000,-90.0000,0.000000 -1279,-3.0,0.000000,-90.0000,0.000000 -1280,-3.0,0.000000,-90.0000,0.000000 -1281,-3.0,0.000000,-90.0000,0.000000 -1282,-3.0,0.000000,-90.0000,0.000000 -1283,-3.0,0.000000,-90.0000,0.000000 -1284,-3.0,0.000000,-90.0000,0.000000 -1285,-3.0,0.000000,-90.0000,0.000000 -1286,-3.0,0.000000,-90.0000,0.000000 -1287,-3.0,0.000000,-90.0000,0.000000 -1288,-3.0,0.000000,-90.0000,0.000000 -1289,-3.0,0.000000,-90.0000,0.000000 -1290,-3.0,0.000000,-90.0000,0.000000 -1291,-3.0,0.000000,-90.0000,0.000000 -1292,-3.0,0.000000,-90.0000,0.000000 -1293,-3.0,0.000000,-90.0000,0.000000 -1294,-3.0,0.000000,-90.0000,0.000000 -1295,-3.0,0.000000,-90.0000,0.000000 -1296,-3.0,0.000000,-90.0000,0.000000 -1297,-3.0,0.000000,-90.0000,0.000000 -1298,-3.0,0.000000,-90.0000,0.000000 -1299,-3.0,0.000000,-90.0000,0.000000 -1300,-3.0,0.000000,-90.0000,0.000000 -1301,-3.0,0.000000,-90.0000,0.000000 -1302,-3.0,0.000000,-90.0000,0.000000 -1303,-3.0,0.000000,-90.0000,0.000000 -1304,-3.0,0.000000,-90.0000,0.000000 -1305,-3.0,0.000000,-90.0000,0.000000 -1306,-3.0,0.000000,-90.0000,0.000000 -1307,-3.0,0.000000,-90.0000,0.000000 -1308,-3.0,0.000000,-90.0000,0.000000 -1309,-3.0,0.000000,-90.0000,0.000000 -1310,-3.0,0.000000,-90.0000,0.000000 -1311,-3.0,0.000000,-90.0000,0.000000 -1312,-3.0,0.000000,-90.00000,0.000000 -1313,-3.0,0.000000,-90.00000,0.000000 -1314,-3.0,0.000000,-90.00000,0.000000 -1315,-3.0,0.000000,-90.00000,0.000000 -1316,-3.0,0.000000,-90.00000,0.000000 -1317,-3.0,0.000000,-90.00000,0.000000 -1318,-3.0,0.000000,-90.00000,0.000000 -1319,-3.0,0.000000,-90.00000,0.000000 -1320,-3.0,0.000000,-90.00000,0.000000 -1321,-3.0,0.000000,-90.00000,0.000000 -1322,-3.0,0.000000,-90.00000,0.000000 -1323,-3.0,0.000000,-90.00000,0.000000 -1324,-3.0,0.000000,-90.00000,0.000000 -1325,-3.0,0.000000,-90.00000,0.000000 -1326,-3.0,0.000000,-90.00000,0.000000 -1327,-3.0,0.000000,-90.00000,0.000000 -1328,-3.0,0.000000,-90.00000,0.000000 -1329,-3.0,0.000000,-90.00000,0.000000 -1330,-3.0,0.000000,-90.00000,0.000000 -1331,-3.0,0.000000,-90.00000,0.000000 -1332,-3.0,0.000000,-90.00000,0.000000 -1333,-3.0,0.000000,-90.00000,0.000000 -1334,-3.0,0.000000,-90.00000,0.000000 -1335,-3.0,0.000000,-90.00000,0.000000 -1336,-3.0,0.000000,-90.00000,0.000000 -1337,-3.0,0.000000,-90.00000,0.000000 -1338,-3.0,0.000000,-90.00000,0.000000 -1339,-3.0,0.000000,-90.00000,0.000000 -1340,-3.0,0.000000,-90.00000,0.000000 -1341,-3.0,0.000000,-90.00000,0.000000 -1342,-3.0,0.000000,-90.00000,0.000000 -1343,-3.0,0.000000,-90.00000,0.000000 -1344,-3.0,0.000000,-90.00000,0.000000 -1345,-3.0,0.000000,-90.00000,0.000000 -1346,-3.0,0.000000,-90.00000,0.000000 -1347,-3.0,0.000000,-90.00000,0.000000 -1348,-3.0,0.000000,-90.00000,0.000000 -1349,-3.0,0.000000,-90.00000,0.000000 -1350,-3.0,0.000000,-90.00000,0.000000 -1351,-3.0,0.000000,-90.00000,0.000000 -1352,-3.0,0.000000,-90.00000,0.000000 -1353,-3.0,0.000000,-90.00000,0.000000 -1354,-3.0,0.000000,-90.00000,0.000000 -1355,-3.0,0.000000,-90.00000,0.000000 -1356,-3.0,0.000000,-90.00000,0.000000 -1357,-3.0,0.000000,-90.00000,0.000000 -1358,-3.0,0.000000,-90.00000,0.000000 -1359,-3.0,0.000000,-90.00000,0.000000 -1360,-3.0,0.000000,-90.00000,0.000000 -1361,-3.0,0.000000,-90.00000,0.000000 -1362,-3.0,0.000000,-90.00000,0.000000 -1363,-3.0,0.000000,-90.00000,0.000000 -1364,-3.0,0.000000,-90.00000,0.000000 -1365,-3.0,0.000000,-90.00000,0.000000 -1366,-3.0,0.000000,-90.00000,0.000000 -1367,-3.0,0.000000,-90.00000,0.000000 -1368,-3.0,0.000000,-90.00000,0.000000 -1369,-3.0,0.000000,-90.00000,0.000000 -1370,-3.0,0.000000,-90.00000,0.000000 -1371,-3.0,0.000000,-90.00000,0.000000 -1372,-3.0,0.000000,-90.00000,0.000000 -1373,-3.0,0.000000,-90.00000,0.000000 -1374,-3.0,0.000000,-90.00000,0.000000 -1375,-3.0,0.000000,-90.00000,0.000000 -1376,-3.0,0.000000,-90.00000,0.000000 -1377,-3.0,0.000000,-90.00000,0.000000 -1378,-3.0,0.000000,-90.00000,0.000000 -1379,-3.0,0.000000,-90.00000,0.000000 -1380,-3.0,0.000000,-90.00000,0.000000 -1381,-3.0,0.000000,-90.00000,0.000000 -1382,-3.0,0.000000,-90.00000,0.000000 -1383,-3.0,0.000000,-90.00000,0.000000 -1384,-3.0,0.000000,-90.00000,0.000000 -1385,-3.0,0.000000,-90.00000,0.000000 -1386,-3.0,0.000000,-90.00000,0.000000 -1387,-3.0,0.000000,-90.00000,0.000000 -1388,-3.0,0.000000,-90.00000,0.000000 -1389,-3.0,0.000000,-90.00000,0.000000 -1390,-3.0,0.000000,-90.00000,0.000000 -1391,-3.0,0.000000,-90.00000,0.000000 -1392,-3.0,0.000000,-90.00000,0.000000 -1393,-3.0,0.000000,-90.00000,0.000000 -1394,-3.0,0.000000,-90.00000,0.000000 -1395,-3.0,0.000000,-90.00000,0.000000 -1396,-3.0,0.000000,-90.00000,0.000000 -1397,-3.0,0.000000,-90.00000,0.000000 -1398,-3.0,0.000000,-90.00000,0.000000 -1399,-3.0,0.000000,-90.00000,0.000000 -1400,-3.0,0.000000,-90.00000,0.000000 -1401,-3.0,0.000000,-90.00000,0.000000 -1402,-3.0,0.000000,-90.00000,0.000000 -1403,-3.0,0.000000,-90.00000,0.000000 -1404,-3.0,0.000000,-90.00000,0.000000 -1405,-3.0,0.000000,-90.00000,0.000000 -1406,-3.0,0.000000,-90.00000,0.000000 -1407,-3.0,0.000000,-90.00000,0.000000 -1408,-3.0,0.000000,-90.00000,0.000000 -1409,-3.0,0.000000,-90.00000,0.000000 -1410,-3.0,0.000000,-90.00000,0.000000 -1411,-3.0,0.000000,-90.00000,0.000000 -1412,-3.0,0.000000,-90.00000,0.000000 -1413,-3.0,0.000000,-90.00000,0.000000 -1414,-3.0,0.000000,-90.00000,0.000000 -1415,-3.0,0.000000,-90.00000,0.000000 -1416,-3.0,0.000000,-90.00000,0.000000 -1417,-3.0,0.000000,-90.00000,0.000000 -1418,-3.0,0.000000,-90.00000,0.000000 -1419,-3.0,0.000000,-90.00000,0.000000 -1420,-3.0,0.000000,-90.00000,0.000000 -1421,-3.0,0.000000,-90.00000,0.000000 -1422,-3.0,0.000000,-90.00000,0.000000 -1423,-3.0,0.000000,-90.00000,0.000000 -1424,-3.0,0.000000,-90.00000,0.000000 -1425,-3.0,0.000000,-90.00000,0.000000 -1426,-3.0,0.000000,-90.00000,0.000000 -1427,-3.0,0.000000,-90.00000,0.000000 -1428,-3.0,0.000000,-90.00000,0.000000 -1429,-3.0,0.000000,-90.00000,0.000000 -1430,-3.0,0.000000,-90.00000,0.000000 -1431,-3.0,0.000000,-90.00000,0.000000 -1432,-3.0,0.000000,-90.00000,0.000000 -1433,-3.0,0.000000,-90.00000,0.000000 -1434,-3.0,0.000000,-90.00000,0.000000 -1435,-3.0,0.000000,-90.00000,0.000000 -1436,-3.0,0.000000,-90.00000,0.000000 -1437,-3.0,0.000000,-90.00000,0.000000 -1438,-3.0,0.000000,-90.00000,0.000000 -1439,-3.0,0.000000,-90.00000,0.000000 -1440,-3.0,0.000000,-90.00000,0.000000 -1441,-3.0,0.000000,-90.00000,0.000000 -1442,-3.0,0.000000,-90.00000,0.000000 -1443,-3.0,0.000000,-90.00000,0.000000 -1444,-3.0,0.000000,-90.00000,0.000000 -1445,-3.0,0.000000,-90.00000,0.000000 -1446,-3.0,0.000000,-90.00000,0.000000 -1447,-3.0,0.000000,-90.00000,0.000000 -1448,-3.0,0.000000,-90.00000,0.000000 -1449,-3.0,0.000000,-90.00000,0.000000 -1450,-3.0,0.000000,-90.00000,0.000000 -1451,-3.0,0.000000,-90.00000,0.000000 -1452,-3.0,0.000000,-90.00000,0.000000 -1453,-3.0,0.000000,-90.00000,0.000000 -1454,-3.0,0.000000,-90.00000,0.000000 -1455,-3.0,0.000000,-90.00000,0.000000 -1456,-3.0,0.000000,-90.00000,0.000000 -1457,-3.0,0.000000,-90.00000,0.000000 -1458,-3.0,0.000000,-90.00000,0.000000 -1459,-3.0,0.000000,-90.00000,0.000000 -1460,-3.0,0.000000,-90.00000,0.000000 -1461,-3.0,0.000000,-90.00000,0.000000 -1462,-3.0,0.000000,-90.00000,0.000000 -1463,-3.0,0.000000,-90.00000,0.000000 -1464,-3.0,0.000000,-90.00000,0.000000 -1465,-3.0,0.000000,-90.00000,0.000000 -1466,-3.0,0.000000,-90.00000,0.000000 -1467,-3.0,0.000000,-90.00000,0.000000 -1468,-3.0,0.000000,-90.00000,0.000000 -1469,-3.0,0.000000,-90.00000,0.000000 -1470,-3.0,0.000000,-90.00000,0.000000 -1471,-3.0,0.000000,-90.00000,0.000000 -1472,-3.0,0.000000,-90.00000,0.000000 -1473,-3.0,0.000000,-90.00000,0.000000 -1474,-3.0,0.000000,-90.00000,0.000000 -1475,-3.0,0.000000,-90.00000,0.000000 -1476,-3.0,0.000000,-90.00000,0.000000 -1477,-3.0,0.000000,-90.00000,0.000000 -1478,-3.0,0.000000,-90.00000,0.000000 -1479,-3.0,0.000000,-90.00000,0.000000 -1480,-3.0,0.000000,-90.00000,0.000000 -1481,-3.0,0.000000,-90.00000,0.000000 -1482,-3.0,0.000000,-90.00000,0.000000 -1483,-3.0,0.000000,-90.00000,0.000000 -1484,-3.0,0.000000,-90.00000,0.000000 -1485,-3.0,0.000000,-90.00000,0.000000 -1486,-3.0,0.000000,-90.00000,0.000000 -1487,-3.0,0.000000,-90.00000,0.000000 -1488,-3.0,0.000000,-90.00000,0.000000 -1489,-3.0,0.000000,-90.00000,0.000000 -1490,-3.0,0.000000,-90.00000,0.000000 -1491,-3.0,0.000000,-90.00000,0.000000 -1492,-3.0,0.000000,-90.00000,0.000000 -1493,-3.0,0.000000,-90.00000,0.000000 -1494,-3.0,0.000000,-90.00000,0.000000 -1495,-3.0,0.000000,-90.00000,0.000000 -1496,-3.0,0.000000,-90.00000,0.000000 -1497,-3.0,0.000000,-90.00000,0.000000 -1498,-3.0,0.000000,-90.00000,0.000000 -1499,-3.0,0.000000,-90.00000,0.000000 -1500,-3.0,0.000000,-90.00000,0.000000 -1501,-3.0,0.000000,-90.00000,0.000000 -1502,-3.0,0.000000,-90.00000,0.000000 -1503,-3.0,0.000000,-90.00000,0.000000 -1504,-3.0,0.000000,-90.00000,0.000000 -1505,-3.0,0.000000,-90.00000,0.000000 -1506,-3.0,0.000000,-90.00000,0.000000 -1507,-3.0,0.000000,-90.00000,0.000000 -1508,-3.0,0.000000,-90.00000,0.000000 -1509,-3.0,0.000000,-90.00000,0.000000 -1510,-3.0,0.000000,-90.00000,0.000000 -1511,-3.0,0.000000,-90.00000,0.000000 -1512,-3.0,0.000000,-90.00000,0.000000 -1513,-3.0,0.000000,-90.00000,0.000000 -1514,-3.0,0.000000,-90.00000,0.000000 -1515,-3.0,0.000000,-90.00000,0.000000 -1516,-3.0,0.000000,-90.00000,0.000000 -1517,-3.0,0.000000,-90.00000,0.000000 -1518,-3.0,0.000000,-90.00000,0.000000 -1519,-3.0,0.000000,-90.00000,0.000000 -1520,-3.0,0.000000,-90.00000,0.000000 -1521,-3.0,0.000000,-90.00000,0.000000 -1522,-3.0,0.000000,-90.00000,0.000000 -1523,-3.0,0.000000,-90.00000,0.000000 -1524,-3.0,0.000000,-90.00000,0.000000 -1525,-3.0,0.000000,-90.00000,0.000000 -1526,-3.0,0.000000,-90.00000,0.000000 -1527,-3.0,0.000000,-90.00000,0.000000 -1528,-3.0,0.000000,-90.00000,0.000000 -1529,-3.0,0.000000,-90.00000,0.000000 -1530,-3.0,0.000000,-90.00000,0.000000 -1531,-3.0,0.000000,-90.00000,0.000000 -1532,-3.0,0.000000,-90.00000,0.000000 -1533,-3.0,0.000000,-90.00000,0.000000 -1534,-3.0,0.000000,-90.00000,0.000000 -1535,-3.0,0.000000,-90.00000,0.000000 -1536,-3.0,0.000000,-90.00000,0.000000 -1537,-3.0,0.000000,-90.00000,0.000000 -1538,-3.0,0.000000,-90.00000,0.000000 -1539,-3.0,0.000000,-90.00000,0.000000 -1540,-3.0,0.000000,-90.00000,0.000000 -1541,-3.0,0.000000,-90.00000,0.000000 -1542,-3.0,0.000000,-90.00000,0.000000 -1543,-3.0,0.000000,-90.00000,0.000000 -1544,-3.0,0.000000,-90.00000,0.000000 -1545,-3.0,0.000000,-90.00000,0.000000 -1546,-3.0,0.000000,-90.00000,0.000000 -1547,-3.0,0.000000,-90.00000,0.000000 -1548,-3.0,0.000000,-90.00000,0.000000 -1549,-3.0,0.000000,-90.00000,0.000000 -1550,-3.0,0.000000,-90.00000,0.000000 -1551,-3.0,0.000000,-90.00000,0.000000 -1552,-3.0,0.000000,-90.00000,0.000000 -1553,-3.0,0.000000,-90.00000,0.000000 -1554,-3.0,0.000000,-90.00000,0.000000 -1555,-3.0,0.000000,-90.00000,0.000000 -1556,-3.0,0.000000,-90.00000,0.000000 -1557,-3.0,0.000000,-90.00000,0.000000 -1558,-3.0,0.000000,-90.00000,0.000000 -1559,-3.0,0.000000,-90.00000,0.000000 -1560,-3.0,0.000000,-90.00000,0.000000 -1561,-3.0,0.000000,-90.00000,0.000000 -1562,-3.0,0.000000,-90.00000,0.000000 -1563,-3.0,0.000000,-90.00000,0.000000 -1564,-3.0,0.000000,-90.00000,0.000000 -1565,-3.0,0.000000,-90.00000,0.000000 -1566,-3.0,0.000000,-90.00000,0.000000 -1567,-3.0,0.000000,-90.00000,0.000000 -1568,-3.0,0.000000,-90.00000,0.000000 -1569,-3.0,0.000000,-90.00000,0.000000 -1570,-3.0,0.000000,-90.00000,0.000000 -1571,-3.0,0.000000,-90.00000,0.000000 -1572,-3.0,0.000000,-90.00000,0.000000 -1573,-3.0,0.000000,-90.00000,0.000000 -1574,-3.0,0.000000,-90.00000,0.000000 -1575,-3.0,0.000000,-90.00000,0.000000 -1576,-3.0,0.000000,-90.00000,0.000000 -1577,-3.0,0.000000,-90.00000,0.000000 -1578,-3.0,0.000000,-90.00000,0.000000 -1579,-3.0,0.000000,-90.00000,0.000000 -1580,-3.0,0.000000,-90.00000,0.000000 -1581,-3.0,0.000000,-90.00000,0.000000 -1582,-3.0,0.000000,-90.00000,0.000000 -1583,-3.0,0.000000,-90.00000,0.000000 -1584,-3.0,0.000000,-90.00000,0.000000 -1585,-3.0,0.000000,-90.00000,0.000000 -1586,-3.0,0.000000,-90.00000,0.000000 -1587,-3.0,0.000000,-90.00000,0.000000 -1588,-3.0,0.000000,-90.00000,0.000000 -1589,-3.0,0.000000,-90.00000,0.000000 -1590,-3.0,0.000000,-90.00000,0.000000 -1591,-3.0,0.000000,-90.00000,0.000000 -1592,-3.0,0.000000,-90.00000,0.000000 -1593,-3.0,0.000000,-90.00000,0.000000 -1594,-3.0,0.000000,-90.00000,0.000000 -1595,-3.0,0.000000,-90.00000,0.000000 -1596,-3.0,0.000000,-90.00000,0.000000 -1597,-3.0,0.000000,-90.00000,0.000000 -1598,-3.0,0.000000,-90.00000,0.000000 -1599,-3.0,0.000000,-90.00000,0.000000 -1600,-3.0,90.000000,0.000000,45.00000000 -1601,-3.0,90.000000,0.000000,45.00000000 -1602,-3.0,90.000000,0.000000,45.00000000 -1603,-3.0,90.000000,0.000000,45.00000000 -1604,-3.0,90.000000,0.000000,45.00000000 -1605,-3.0,90.000000,0.000000,45.00000000 -1606,-3.0,90.000000,0.000000,45.00000000 -1607,-3.0,90.000000,0.000000,45.00000000 -1608,-3.0,90.000000,0.000000,45.00000000 -1609,-3.0,90.000000,0.000000,45.00000000 -1610,-3.0,90.000000,0.000000,45.00000000 -1611,-3.0,90.000000,0.000000,45.00000000 -1612,-3.0,90.000000,0.000000,45.00000000 -1613,-3.0,90.000000,0.000000,45.00000000 -1614,-3.0,90.000000,0.000000,45.00000000 -1615,-3.0,90.000000,0.000000,45.00000000 -1616,-3.0,90.000000,0.000000,45.00000000 -1617,-3.0,90.000000,0.000000,45.00000000 -1618,-3.0,90.000000,0.000000,45.00000000 -1619,-3.0,90.000000,0.000000,45.00000000 -1620,-3.0,90.000000,0.000000,45.00000000 -1621,-3.0,90.000000,0.000000,45.00000000 -1622,-3.0,90.000000,0.000000,45.00000000 -1623,-3.0,90.000000,0.000000,45.00000000 -1624,-3.0,90.000000,0.000000,45.00000000 -1625,-3.0,90.000000,0.000000,45.00000000 -1626,-3.0,90.000000,0.000000,45.00000000 -1627,-3.0,90.000000,0.000000,45.00000000 -1628,-3.0,90.000000,0.000000,45.00000000 -1629,-3.0,90.000000,0.000000,45.00000000 -1630,-3.0,90.000000,0.000000,45.00000000 -1631,-3.0,90.000000,0.000000,45.00000000 -1632,-3.0,90.000000,0.000000,45.00000000 -1633,-3.0,90.000000,0.000000,45.00000000 -1634,-3.0,90.000000,0.000000,45.00000000 -1635,-3.0,90.000000,0.000000,45.00000000 -1636,-3.0,90.000000,0.000000,45.00000000 -1637,-3.0,90.000000,0.000000,45.00000000 -1638,-3.0,90.000000,0.000000,45.00000000 -1639,-3.0,90.000000,0.000000,45.00000000 -1640,-3.0,90.000000,0.000000,45.00000000 -1641,-3.0,90.000000,0.000000,45.00000000 -1642,-3.0,90.000000,0.000000,45.00000000 -1643,-3.0,90.000000,0.000000,45.00000000 -1644,-3.0,90.000000,0.000000,45.00000000 -1645,-3.0,90.000000,0.000000,45.00000000 -1646,-3.0,90.000000,0.000000,45.00000000 -1647,-3.0,90.000000,0.000000,45.00000000 -1648,-3.0,90.000000,0.000000,45.00000000 -1649,-3.0,90.000000,0.000000,45.00000000 -1650,-3.0,90.000000,0.000000,45.00000000 -1651,-3.0,90.000000,0.000000,45.00000000 -1652,-3.0,90.000000,0.000000,45.00000000 -1653,-3.0,90.000000,0.000000,45.00000000 -1654,-3.0,90.000000,0.000000,45.00000000 -1655,-3.0,90.000000,0.000000,45.00000000 -1656,-3.0,90.000000,0.000000,45.00000000 -1657,-3.0,90.000000,0.000000,45.00000000 -1658,-3.0,90.000000,0.000000,45.00000000 -1659,-3.0,90.000000,0.000000,45.00000000 -1660,-3.0,90.000000,0.000000,45.00000000 -1661,-3.0,90.000000,0.000000,45.00000000 -1662,-3.0,90.000000,0.000000,45.00000000 -1663,-3.0,90.000000,0.000000,45.00000000 -1664,-3.0,90.000000,0.000000,45.00000000 -1665,-3.0,90.000000,0.000000,45.00000000 -1666,-3.0,90.000000,0.000000,45.00000000 -1667,-3.0,90.000000,0.000000,45.00000000 -1668,-3.0,90.000000,0.000000,45.00000000 -1669,-3.0,90.000000,0.000000,45.00000000 -1670,-3.0,90.000000,0.000000,45.00000000 -1671,-3.0,90.000000,0.000000,45.00000000 -1672,-3.0,90.000000,0.000000,45.00000000 -1673,-3.0,90.000000,0.000000,45.00000000 -1674,-3.0,90.000000,0.000000,45.00000000 -1675,-3.0,90.000000,0.000000,45.00000000 -1676,-3.0,90.000000,0.000000,45.00000000 -1677,-3.0,90.000000,0.000000,45.00000000 -1678,-3.0,90.000000,0.000000,45.00000000 -1679,-3.0,90.000000,0.000000,45.00000000 -1680,-3.0,90.000000,0.000000,45.00000000 -1681,-3.0,90.000000,0.000000,45.00000000 -1682,-3.0,90.000000,0.000000,45.00000000 -1683,-3.0,90.000000,0.000000,45.00000000 -1684,-3.0,90.000000,0.000000,45.00000000 -1685,-3.0,90.000000,0.000000,45.00000000 -1686,-3.0,90.000000,0.000000,45.00000000 -1687,-3.0,90.000000,0.000000,45.00000000 -1688,-3.0,90.000000,0.000000,45.00000000 -1689,-3.0,90.000000,0.000000,45.00000000 -1690,-3.0,90.000000,0.000000,45.00000000 -1691,-3.0,90.000000,0.000000,45.00000000 -1692,-3.0,90.000000,0.000000,45.00000000 -1693,-3.0,90.000000,0.000000,45.00000000 -1694,-3.0,90.000000,0.000000,45.00000000 -1695,-3.0,90.000000,0.000000,45.00000000 -1696,-3.0,90.000000,0.000000,45.00000000 -1697,-3.0,90.000000,0.000000,45.00000000 -1698,-3.0,90.000000,0.000000,45.00000000 -1699,-3.0,90.000000,0.000000,45.00000000 -1700,-3.0,90.000000,0.000000,45.00000000 -1701,-3.0,90.000000,0.000000,45.00000000 -1702,-3.0,90.000000,0.000000,45.00000000 -1703,-3.0,90.000000,0.000000,45.00000000 -1704,-3.0,90.000000,0.000000,45.00000000 -1705,-3.0,90.000000,0.000000,45.00000000 -1706,-3.0,90.000000,0.000000,45.00000000 -1707,-3.0,90.000000,0.000000,45.00000000 -1708,-3.0,90.000000,0.000000,45.00000000 -1709,-3.0,90.000000,0.000000,45.00000000 -1710,-3.0,90.000000,0.000000,45.00000000 -1711,-3.0,90.000000,0.000000,45.00000000 -1712,-3.0,90.000000,0.000000,45.00000000 -1713,-3.0,90.000000,0.000000,45.00000000 -1714,-3.0,90.000000,0.000000,45.00000000 -1715,-3.0,90.000000,0.000000,45.00000000 -1716,-3.0,90.000000,0.000000,45.00000000 -1717,-3.0,90.000000,0.000000,45.00000000 -1718,-3.0,90.000000,0.000000,45.00000000 -1719,-3.0,90.000000,0.000000,45.00000000 -1720,-3.0,90.000000,0.000000,45.00000000 -1721,-3.0,90.000000,0.000000,45.00000000 -1722,-3.0,90.000000,0.000000,45.00000000 -1723,-3.0,90.000000,0.000000,45.00000000 -1724,-3.0,90.000000,0.000000,45.00000000 -1725,-3.0,90.000000,0.000000,45.00000000 -1726,-3.0,90.000000,0.000000,45.00000000 -1727,-3.0,90.000000,0.000000,45.00000000 -1728,-3.0,90.000000,0.000000,45.00000000 -1729,-3.0,90.000000,0.000000,45.00000000 -1730,-3.0,90.000000,0.000000,45.00000000 -1731,-3.0,90.000000,0.000000,45.00000000 -1732,-3.0,90.000000,0.000000,45.00000000 -1733,-3.0,90.000000,0.000000,45.00000000 -1734,-3.0,90.000000,0.000000,45.00000000 -1735,-3.0,90.000000,0.000000,45.00000000 -1736,-3.0,90.000000,0.000000,45.00000000 -1737,-3.0,90.000000,0.000000,45.00000000 -1738,-3.0,90.000000,0.000000,45.00000000 -1739,-3.0,90.000000,0.000000,45.00000000 -1740,-3.0,90.000000,0.000000,45.00000000 -1741,-3.0,90.000000,0.000000,45.00000000 -1742,-3.0,90.000000,0.000000,45.00000000 -1743,-3.0,90.000000,0.000000,45.00000000 -1744,-3.0,90.000000,0.000000,45.00000000 -1745,-3.0,90.000000,0.000000,45.00000000 -1746,-3.0,90.000000,0.000000,45.00000000 -1747,-3.0,90.000000,0.000000,45.00000000 -1748,-3.0,90.000000,0.000000,45.00000000 -1749,-3.0,90.000000,0.000000,45.00000000 -1750,-3.0,90.000000,0.000000,45.00000000 -1751,-3.0,90.000000,0.000000,45.00000000 -1752,-3.0,90.000000,0.000000,45.00000000 -1753,-3.0,90.000000,0.000000,45.00000000 -1754,-3.0,90.000000,0.000000,45.00000000 -1755,-3.0,90.000000,0.000000,45.00000000 -1756,-3.0,90.000000,0.000000,45.00000000 -1757,-3.0,90.000000,0.000000,45.00000000 -1758,-3.0,90.000000,0.000000,45.00000000 -1759,-3.0,90.000000,0.000000,45.00000000 -1760,-3.0,90.000000,0.000000,45.00000000 -1761,-3.0,90.000000,0.000000,45.00000000 -1762,-3.0,90.000000,0.000000,45.00000000 -1763,-3.0,90.000000,0.000000,45.00000000 -1764,-3.0,90.000000,0.000000,45.00000000 -1765,-3.0,90.000000,0.000000,45.00000000 -1766,-3.0,90.000000,0.000000,45.00000000 -1767,-3.0,90.000000,0.000000,45.00000000 -1768,-3.0,90.000000,0.000000,45.00000000 -1769,-3.0,90.000000,0.000000,45.00000000 -1770,-3.0,90.000000,0.000000,45.00000000 -1771,-3.0,90.000000,0.000000,45.00000000 -1772,-3.0,90.000000,0.000000,45.00000000 -1773,-3.0,90.000000,0.000000,45.00000000 -1774,-3.0,90.000000,0.000000,45.00000000 -1775,-3.0,90.000000,0.000000,45.00000000 -1776,-3.0,90.000000,0.000000,45.00000000 -1777,-3.0,90.000000,0.000000,45.00000000 -1778,-3.0,90.000000,0.000000,45.00000000 -1779,-3.0,90.000000,0.000000,45.00000000 -1780,-3.0,90.000000,0.000000,45.00000000 -1781,-3.0,90.000000,0.000000,45.00000000 -1782,-3.0,90.000000,0.000000,45.00000000 -1783,-3.0,90.000000,0.000000,45.00000000 -1784,-3.0,90.000000,0.000000,45.00000000 -1785,-3.0,90.000000,0.000000,45.00000000 -1786,-3.0,90.000000,0.000000,45.00000000 -1787,-3.0,90.000000,0.000000,45.00000000 -1788,-3.0,90.000000,0.000000,45.00000000 -1789,-3.0,90.000000,0.000000,45.00000000 -1790,-3.0,90.000000,0.000000,45.00000000 -1791,-3.0,90.000000,0.000000,45.00000000 -1792,-3.0,90.000000,0.000000,45.00000000 -1793,-3.0,90.000000,0.000000,45.00000000 -1794,-3.0,90.000000,0.000000,45.00000000 -1795,-3.0,90.000000,0.000000,45.00000000 -1796,-3.0,90.000000,0.000000,45.00000000 -1797,-3.0,90.000000,0.000000,45.00000000 -1798,-3.0,90.000000,0.000000,45.00000000 -1799,-3.0,90.000000,0.000000,45.00000000 -1800,-3.0,90.000000,0.000000,45.00000000 -1801,-3.0,90.000000,0.000000,45.00000000 -1802,-3.0,90.000000,0.000000,45.00000000 -1803,-3.0,90.000000,0.000000,45.00000000 -1804,-3.0,90.000000,0.000000,45.00000000 -1805,-3.0,90.000000,0.000000,45.00000000 -1806,-3.0,90.000000,0.000000,45.00000000 -1807,-3.0,90.000000,0.000000,45.00000000 -1808,-3.0,90.000000,0.000000,45.00000000 -1809,-3.0,90.000000,0.000000,45.00000000 -1810,-3.0,90.000000,0.000000,45.00000000 -1811,-3.0,90.000000,0.000000,45.00000000 -1812,-3.0,90.000000,0.000000,45.00000000 -1813,-3.0,90.000000,0.000000,45.00000000 -1814,-3.0,90.000000,0.000000,45.00000000 -1815,-3.0,90.000000,0.000000,45.00000000 -1816,-3.0,90.000000,0.000000,45.00000000 -1817,-3.0,90.000000,0.000000,45.00000000 -1818,-3.0,90.000000,0.000000,45.00000000 -1819,-3.0,90.000000,0.000000,45.00000000 -1820,-3.0,90.000000,0.000000,45.00000000 -1821,-3.0,90.000000,0.000000,45.00000000 -1822,-3.0,90.000000,0.000000,45.00000000 -1823,-3.0,90.000000,0.000000,45.00000000 -1824,-3.0,90.000000,0.000000,45.00000000 -1825,-3.0,90.000000,0.000000,45.00000000 -1826,-3.0,90.000000,0.000000,45.00000000 -1827,-3.0,90.000000,0.000000,45.00000000 -1828,-3.0,90.000000,0.000000,45.00000000 -1829,-3.0,90.000000,0.000000,45.00000000 -1830,-3.0,90.000000,0.000000,45.00000000 -1831,-3.0,90.000000,0.000000,45.00000000 -1832,-3.0,90.000000,0.000000,45.00000000 -1833,-3.0,90.000000,0.000000,45.00000000 -1834,-3.0,90.000000,0.000000,45.00000000 -1835,-3.0,90.000000,0.000000,45.00000000 -1836,-3.0,90.000000,0.000000,45.00000000 -1837,-3.0,90.000000,0.000000,45.00000000 -1838,-3.0,90.000000,0.000000,45.00000000 -1839,-3.0,90.000000,0.000000,45.00000000 -1840,-3.0,90.000000,0.000000,45.00000000 -1841,-3.0,90.000000,0.000000,45.00000000 -1842,-3.0,90.000000,0.000000,45.00000000 -1843,-3.0,90.000000,0.000000,45.00000000 -1844,-3.0,90.000000,0.000000,45.00000000 -1845,-3.0,90.000000,0.000000,45.00000000 -1846,-3.0,90.000000,0.000000,45.00000000 -1847,-3.0,90.000000,0.000000,45.00000000 -1848,-3.0,90.000000,0.000000,45.00000000 -1849,-3.0,90.000000,0.000000,45.00000000 -1850,-3.0,90.000000,0.000000,45.00000000 -1851,-3.0,90.000000,0.000000,45.00000000 -1852,-3.0,90.000000,0.000000,45.00000000 -1853,-3.0,90.000000,0.000000,45.00000000 -1854,-3.0,90.000000,0.000000,45.00000000 -1855,-3.0,90.000000,0.000000,45.00000000 -1856,-3.0,90.000000,0.000000,45.00000000 -1857,-3.0,90.000000,0.000000,45.00000000 -1858,-3.0,90.000000,0.000000,45.00000000 -1859,-3.0,90.000000,0.000000,45.00000000 -1860,-3.0,90.000000,0.000000,45.00000000 -1861,-3.0,90.000000,0.000000,45.00000000 -1862,-3.0,90.000000,0.000000,45.00000000 -1863,-3.0,90.000000,0.000000,45.00000000 -1864,-3.0,90.000000,0.000000,45.00000000 -1865,-3.0,90.000000,0.000000,45.00000000 -1866,-3.0,90.000000,0.000000,45.00000000 -1867,-3.0,90.000000,0.000000,45.00000000 -1868,-3.0,90.000000,0.000000,45.00000000 -1869,-3.0,90.000000,0.000000,45.00000000 -1870,-3.0,90.000000,0.000000,45.00000000 -1871,-3.0,90.000000,0.000000,45.00000000 -1872,-3.0,90.000000,0.000000,45.00000000 -1873,-3.0,90.000000,0.000000,45.00000000 -1874,-3.0,90.000000,0.000000,45.00000000 -1875,-3.0,90.000000,0.000000,45.00000000 -1876,-3.0,90.000000,0.000000,45.00000000 -1877,-3.0,90.000000,0.000000,45.00000000 -1878,-3.0,90.000000,0.000000,45.00000000 -1879,-3.0,90.000000,0.000000,45.00000000 -1880,-3.0,90.000000,0.000000,45.00000000 -1881,-3.0,90.000000,0.000000,45.00000000 -1882,-3.0,90.000000,0.000000,45.00000000 -1883,-3.0,90.000000,0.000000,45.00000000 -1884,-3.0,90.000000,0.000000,45.00000000 -1885,-3.0,90.000000,0.000000,45.00000000 -1886,-3.0,90.000000,0.000000,45.00000000 -1887,-3.0,90.000000,0.000000,45.00000000 -1888,-3.0,90.000000,0.000000,45.00000000 -1889,-3.0,90.000000,0.000000,45.00000000 -1890,-3.0,90.000000,0.000000,45.00000000 -1891,-3.0,90.000000,0.000000,45.00000000 -1892,-3.0,90.000000,0.000000,45.00000000 -1893,-3.0,90.000000,0.000000,45.00000000 -1894,-3.0,90.000000,0.000000,45.00000000 -1895,-3.0,90.000000,0.000000,45.00000000 -1896,-3.0,90.000000,0.000000,45.00000000 -1897,-3.0,90.000000,0.000000,45.00000000 -1898,-3.0,90.000000,0.000000,45.00000000 -1899,-3.0,90.000000,0.000000,45.00000000 -1900,-3.0,90.000000,0.000000,45.00000000 -1901,-3.0,90.000000,0.000000,45.00000000 -1902,-3.0,90.000000,0.000000,45.00000000 -1903,-3.0,90.000000,0.000000,45.00000000 -1904,-3.0,90.000000,0.000000,45.00000000 -1905,-3.0,90.000000,0.000000,45.00000000 -1906,-3.0,90.000000,0.000000,45.00000000 -1907,-3.0,90.000000,0.000000,45.00000000 -1908,-3.0,90.000000,0.000000,45.00000000 -1909,-3.0,90.000000,0.000000,45.00000000 -1910,-3.0,90.000000,0.000000,45.00000000 -1911,-3.0,90.000000,0.000000,45.00000000 -1912,-3.0,90.000000,0.000000,45.00000000 -1913,-3.0,90.000000,0.000000,45.00000000 -1914,-3.0,90.000000,0.000000,45.00000000 -1915,-3.0,90.000000,0.000000,45.00000000 -1916,-3.0,90.000000,0.000000,45.00000000 -1917,-3.0,90.000000,0.000000,45.00000000 -1918,-3.0,90.000000,0.000000,45.00000000 -1919,-3.0,90.000000,0.000000,45.00000000 -1920,-3.0,90.000000,0.000000,45.00000000 -1921,-3.0,90.000000,0.000000,45.00000000 -1922,-3.0,90.000000,0.000000,45.00000000 -1923,-3.0,90.000000,0.000000,45.00000000 -1924,-3.0,90.000000,0.000000,45.00000000 -1925,-3.0,90.000000,0.000000,45.00000000 -1926,-3.0,90.000000,0.000000,45.00000000 -1927,-3.0,90.000000,0.000000,45.00000000 -1928,-3.0,90.000000,0.000000,45.00000000 -1929,-3.0,90.000000,0.000000,45.00000000 -1930,-3.0,90.000000,0.000000,45.00000000 -1931,-3.0,90.000000,0.000000,45.00000000 -1932,-3.0,90.000000,0.000000,45.00000000 -1933,-3.0,90.000000,0.000000,45.00000000 -1934,-3.0,90.000000,0.000000,45.00000000 -1935,-3.0,90.000000,0.000000,45.00000000 -1936,-3.0,90.000000,0.000000,45.00000000 -1937,-3.0,90.000000,0.000000,45.00000000 -1938,-3.0,90.000000,0.000000,45.00000000 -1939,-3.0,90.000000,0.000000,45.00000000 -1940,-3.0,90.000000,0.000000,45.00000000 -1941,-3.0,90.000000,0.000000,45.00000000 -1942,-3.0,90.000000,0.000000,45.00000000 -1943,-3.0,90.000000,0.000000,45.00000000 -1944,-3.0,90.000000,0.000000,45.00000000 -1945,-3.0,90.000000,0.000000,45.00000000 -1946,-3.0,90.000000,0.000000,45.00000000 -1947,-3.0,90.000000,0.000000,45.00000000 -1948,-3.0,90.000000,0.000000,45.00000000 -1949,-3.0,90.000000,0.000000,45.00000000 -1950,-3.0,90.000000,0.000000,45.00000000 -1951,-3.0,90.000000,0.000000,45.00000000 -1952,-3.0,90.000000,0.000000,45.00000000 -1953,-3.0,90.000000,0.000000,45.00000000 -1954,-3.0,90.000000,0.000000,45.00000000 -1955,-3.0,90.000000,0.000000,45.00000000 -1956,-3.0,90.000000,0.000000,45.00000000 -1957,-3.0,90.000000,0.000000,45.00000000 -1958,-3.0,90.000000,0.000000,45.00000000 -1959,-3.0,90.000000,0.000000,45.00000000 -1960,-3.0,90.000000,0.000000,45.00000000 -1961,-3.0,90.000000,0.000000,45.00000000 -1962,-3.0,90.000000,0.000000,45.00000000 -1963,-3.0,90.000000,0.000000,45.00000000 -1964,-3.0,90.000000,0.000000,45.00000000 -1965,-3.0,90.000000,0.000000,45.00000000 -1966,-3.0,90.000000,0.000000,45.00000000 -1967,-3.0,90.000000,0.000000,45.00000000 -1968,-3.0,90.000000,0.000000,45.00000000 -1969,-3.0,90.000000,0.000000,45.00000000 -1970,-3.0,90.000000,0.000000,45.00000000 -1971,-3.0,90.000000,0.000000,45.00000000 -1972,-3.0,90.000000,0.000000,45.00000000 -1973,-3.0,90.000000,0.000000,45.00000000 -1974,-3.0,90.000000,0.000000,45.00000000 -1975,-3.0,90.000000,0.000000,45.00000000 -1976,-3.0,90.000000,0.000000,45.00000000 -1977,-3.0,90.000000,0.000000,45.00000000 -1978,-3.0,90.000000,0.000000,45.00000000 -1979,-3.0,90.000000,0.000000,45.00000000 -1980,-3.0,90.000000,0.000000,45.00000000 -1981,-3.0,90.000000,0.000000,45.00000000 -1982,-3.0,90.000000,0.000000,45.00000000 -1983,-3.0,90.000000,0.000000,45.00000000 -1984,-3.0,90.000000,0.000000,45.00000000 -1985,-3.0,90.000000,0.000000,45.00000000 -1986,-3.0,90.000000,0.000000,45.00000000 -1987,-3.0,90.000000,0.000000,45.00000000 -1988,-3.0,90.000000,0.000000,45.00000000 -1989,-3.0,90.000000,0.000000,45.0000000 -1990,-3.0,90.000000,0.000000,45.0000000 -1991,-3.0,90.000000,0.000000,45.0000000 -1992,-3.0,90.000000,0.000000,45.0000000 -1993,-3.0,90.000000,0.000000,45.0000000 -1994,-3.0,90.000000,0.000000,45.0000000 -1995,-3.0,90.000000,0.000000,45.0000000 -1996,-3.0,90.000000,0.000000,45.0000000 -1997,-3.0,90.000000,0.000000,45.0000000 -1998,-3.0,90.000000,0.000000,45.0000000 -1999,-3.0,90.000000,0.000000,45.0000000 -2000,-3.0,90.000000,0.000000,45.0000000 -2001,-3.0,90.000000,0.000000,45.0000000 -2002,-3.0,90.000000,0.000000,45.0000000 -2003,-3.0,90.000000,0.000000,45.0000000 -2004,-3.0,90.000000,0.000000,45.0000000 -2005,-3.0,90.000000,0.000000,45.0000000 -2006,-3.0,90.000000,0.000000,45.0000000 -2007,-3.0,90.000000,0.000000,45.0000000 -2008,-3.0,90.000000,0.000000,45.0000000 -2009,-3.0,90.000000,0.000000,45.0000000 -2010,-3.0,90.000000,0.000000,45.0000000 -2011,-3.0,90.000000,0.000000,45.0000000 -2012,-3.0,90.000000,0.000000,45.0000000 -2013,-3.0,90.000000,0.000000,45.0000000 -2014,-3.0,90.000000,0.000000,45.0000000 -2015,-3.0,90.000000,0.000000,45.0000000 -2016,-3.0,90.000000,0.000000,45.0000000 -2017,-3.0,90.000000,0.000000,45.0000000 -2018,-3.0,90.000000,0.000000,45.0000000 -2019,-3.0,90.000000,0.000000,45.0000000 -2020,-3.0,90.000000,0.000000,45.0000000 -2021,-3.0,90.000000,0.000000,45.0000000 -2022,-3.0,90.000000,0.000000,45.0000000 -2023,-3.0,90.000000,0.000000,45.0000000 -2024,-3.0,90.000000,0.000000,45.0000000 -2025,-3.0,90.000000,0.000000,45.0000000 -2026,-3.0,90.000000,0.000000,45.0000000 -2027,-3.0,90.000000,0.000000,45.0000000 -2028,-3.0,90.000000,0.000000,45.0000000 -2029,-3.0,90.000000,0.000000,45.0000000 -2030,-3.0,90.000000,0.000000,45.0000000 -2031,-3.0,90.000000,0.000000,45.0000000 -2032,-3.0,90.000000,0.000000,45.0000000 -2033,-3.0,90.000000,0.000000,45.0000000 -2034,-3.0,90.000000,0.000000,45.0000000 -2035,-3.0,90.000000,0.000000,45.0000000 -2036,-3.0,90.000000,0.000000,45.0000000 -2037,-3.0,90.000000,0.000000,45.0000000 -2038,-3.0,90.000000,0.000000,45.0000000 -2039,-3.0,90.000000,0.000000,45.0000000 -2040,-3.0,90.000000,0.000000,45.0000000 -2041,-3.0,90.000000,0.000000,45.0000000 -2042,-3.0,90.000000,0.000000,45.0000000 -2043,-3.0,90.000000,0.000000,45.0000000 -2044,-3.0,90.000000,0.000000,45.0000000 -2045,-3.0,90.000000,0.000000,45.0000000 -2046,-3.0,90.000000,0.000000,45.0000000 -2047,-3.0,90.000000,0.000000,45.0000000 -2048,-3.0,90.000000,0.000000,45.0000000 -2049,-3.0,90.000000,0.000000,45.0000000 -2050,-3.0,90.000000,0.000000,45.0000000 -2051,-3.0,90.000000,0.000000,45.0000000 -2052,-3.0,90.000000,0.000000,45.0000000 -2053,-3.0,90.000000,0.000000,45.0000000 -2054,-3.0,90.000000,0.000000,45.0000000 -2055,-3.0,90.000000,0.000000,45.0000000 -2056,-3.0,90.000000,0.000000,45.0000000 -2057,-3.0,90.000000,0.000000,45.0000000 -2058,-3.0,90.000000,0.000000,45.0000000 -2059,-3.0,90.000000,0.000000,45.0000000 -2060,-3.0,90.000000,0.000000,45.0000000 -2061,-3.0,90.000000,0.000000,45.0000000 -2062,-3.0,90.000000,0.000000,45.0000000 -2063,-3.0,90.000000,0.000000,45.0000000 -2064,-3.0,90.000000,0.000000,45.0000000 -2065,-3.0,90.000000,0.000000,45.0000000 -2066,-3.0,90.000000,0.000000,45.0000000 -2067,-3.0,90.000000,0.000000,45.0000000 -2068,-3.0,90.000000,0.000000,45.0000000 -2069,-3.0,90.000000,0.000000,45.0000000 -2070,-3.0,90.000000,0.000000,45.0000000 -2071,-3.0,90.000000,0.000000,45.0000000 -2072,-3.0,90.000000,0.000000,45.0000000 -2073,-3.0,90.000000,0.000000,45.0000000 -2074,-3.0,90.000000,0.000000,45.0000000 -2075,-3.0,90.000000,0.000000,45.0000000 -2076,-3.0,90.000000,0.000000,45.0000000 -2077,-3.0,90.000000,0.000000,45.0000000 -2078,-3.0,90.000000,0.000000,45.0000000 -2079,-3.0,90.000000,0.000000,45.0000000 -2080,-3.0,90.000000,0.000000,45.0000000 -2081,-3.0,90.000000,0.000000,45.0000000 -2082,-3.0,90.000000,0.000000,45.0000000 -2083,-3.0,90.000000,0.000000,45.0000000 -2084,-3.0,90.000000,0.000000,45.0000000 -2085,-3.0,90.000000,0.000000,45.0000000 -2086,-3.0,90.000000,0.000000,45.0000000 -2087,-3.0,90.000000,0.000000,45.0000000 -2088,-3.0,90.000000,0.000000,45.0000000 -2089,-3.0,90.000000,0.000000,45.0000000 -2090,-3.0,90.000000,0.000000,45.0000000 -2091,-3.0,90.000000,0.000000,45.0000000 -2092,-3.0,90.000000,0.000000,45.0000000 -2093,-3.0,90.000000,0.000000,45.0000000 -2094,-3.0,90.000000,0.000000,45.0000000 -2095,-3.0,90.000000,0.000000,45.0000000 -2096,-3.0,90.000000,0.000000,45.0000000 -2097,-3.0,90.000000,0.000000,45.0000000 -2098,-3.0,90.000000,0.000000,45.0000000 -2099,-3.0,90.000000,0.000000,45.0000000 -2100,-3.0,90.000000,0.000000,-45.000000 -2101,-3.0,90.000000,0.000000,-45.000000 -2102,-3.0,90.000000,0.000000,-45.000000 -2103,-3.0,90.000000,0.000000,-45.000000 -2104,-3.0,90.000000,0.000000,-45.000000 -2105,-3.0,90.000000,0.000000,-45.000000 -2106,-3.0,90.000000,0.000000,-45.000000 -2107,-3.0,90.000000,0.000000,-45.000000 -2108,-3.0,90.000000,0.000000,-45.000000 -2109,-3.0,90.000000,0.000000,-45.000000 -2110,-3.0,90.000000,0.000000,-45.000000 -2111,-3.0,90.000000,0.000000,-45.000000 -2112,-3.0,90.000000,0.000000,-45.000000 -2113,-3.0,90.000000,0.000000,-45.000000 -2114,-3.0,90.000000,0.000000,-45.000000 -2115,-3.0,90.000000,0.000000,-45.000000 -2116,-3.0,90.000000,0.000000,-45.000000 -2117,-3.0,90.000000,0.000000,-45.000000 -2118,-3.0,90.000000,0.000000,-45.000000 -2119,-3.0,90.000000,0.000000,-45.000000 -2120,-3.0,90.000000,0.000000,-45.000000 -2121,-3.0,90.000000,0.000000,-45.000000 -2122,-3.0,90.000000,0.000000,-45.000000 -2123,-3.0,90.000000,0.000000,-45.000000 -2124,-3.0,90.000000,0.000000,-45.000000 -2125,-3.0,90.000000,0.000000,-45.000000 -2126,-3.0,90.000000,0.000000,-45.000000 -2127,-3.0,90.000000,0.000000,-45.000000 -2128,-3.0,90.000000,0.000000,-45.000000 -2129,-3.0,90.000000,0.000000,-45.000000 -2130,-3.0,90.000000,0.000000,-45.000000 -2131,-3.0,90.000000,0.000000,-45.000000 -2132,-3.0,90.000000,0.000000,-45.000000 -2133,-3.0,90.000000,0.000000,-45.000000 -2134,-3.0,90.000000,0.000000,-45.000000 -2135,-3.0,90.000000,0.000000,-45.000000 -2136,-3.0,90.000000,0.000000,-45.000000 -2137,-3.0,90.000000,0.000000,-45.000000 -2138,-3.0,90.000000,0.000000,-45.000000 -2139,-3.0,90.000000,0.000000,-45.000000 -2140,-3.0,90.000000,0.000000,-45.000000 -2141,-3.0,90.000000,0.000000,-45.000000 -2142,-3.0,90.000000,0.000000,-45.000000 -2143,-3.0,90.000000,0.000000,-45.000000 -2144,-3.0,90.000000,0.000000,-45.000000 -2145,-3.0,90.000000,0.000000,-45.000000 -2146,-3.0,90.000000,0.000000,-45.000000 -2147,-3.0,90.000000,0.000000,-45.000000 -2148,-3.0,90.000000,0.000000,-45.000000 -2149,-3.0,90.000000,0.000000,-45.000000 -2150,-3.0,90.000000,0.000000,-45.000000 -2151,-3.0,90.000000,0.000000,-45.000000 -2152,-3.0,90.000000,0.000000,-45.000000 -2153,-3.0,90.000000,0.000000,-45.000000 -2154,-3.0,90.000000,0.000000,-45.000000 -2155,-3.0,90.000000,0.000000,-45.000000 -2156,-3.0,90.000000,0.000000,-45.000000 -2157,-3.0,90.000000,0.000000,-45.000000 -2158,-3.0,90.000000,0.000000,-45.000000 -2159,-3.0,90.000000,0.000000,-45.000000 -2160,-3.0,90.000000,0.000000,-45.000000 -2161,-3.0,90.000000,0.000000,-45.000000 -2162,-3.0,90.000000,0.000000,-45.000000 -2163,-3.0,90.000000,0.000000,-45.000000 -2164,-3.0,90.000000,0.000000,-45.000000 -2165,-3.0,90.000000,0.000000,-45.000000 -2166,-3.0,90.000000,0.000000,-45.000000 -2167,-3.0,90.000000,0.000000,-45.000000 -2168,-3.0,90.000000,0.000000,-45.000000 -2169,-3.0,90.000000,0.000000,-45.000000 -2170,-3.0,90.000000,0.000000,-45.000000 -2171,-3.0,90.000000,0.000000,-45.000000 -2172,-3.0,90.000000,0.000000,-45.000000 -2173,-3.0,90.000000,0.000000,-45.000000 -2174,-3.0,90.000000,0.000000,-45.000000 -2175,-3.0,90.000000,0.000000,-45.000000 -2176,-3.0,90.000000,0.000000,-45.000000 -2177,-3.0,90.000000,0.000000,-45.000000 -2178,-3.0,90.000000,0.000000,-45.000000 -2179,-3.0,90.000000,0.000000,-45.000000 -2180,-3.0,90.000000,0.000000,-45.000000 -2181,-3.0,90.000000,0.000000,-45.000000 -2182,-3.0,90.000000,0.000000,-45.000000 -2183,-3.0,90.000000,0.000000,-45.000000 -2184,-3.0,90.000000,0.000000,-45.000000 -2185,-3.0,90.000000,0.000000,-45.000000 -2186,-3.0,90.000000,0.000000,-45.000000 -2187,-3.0,90.000000,0.000000,-45.000000 -2188,-3.0,90.000000,0.000000,-45.000000 -2189,-3.0,90.000000,0.000000,-45.000000 -2190,-3.0,90.000000,0.000000,-45.000000 -2191,-3.0,90.000000,0.000000,-45.000000 -2192,-3.0,90.000000,0.000000,-45.000000 -2193,-3.0,90.000000,0.000000,-45.000000 -2194,-3.0,90.000000,0.000000,-45.000000 -2195,-3.0,90.000000,0.000000,-45.000000 -2196,-3.0,90.000000,0.000000,-45.000000 -2197,-3.0,90.000000,0.000000,-45.000000 -2198,-3.0,90.000000,0.000000,-45.000000 -2199,-3.0,90.000000,0.000000,-45.000000 -2200,-3.0,90.000000,0.000000,-45.000000 -2201,-3.0,90.000000,0.000000,-45.000000 -2202,-3.0,90.000000,0.000000,-45.000000 -2203,-3.0,90.000000,0.000000,-45.000000 -2204,-3.0,90.000000,0.000000,-45.000000 -2205,-3.0,90.000000,0.000000,-45.000000 -2206,-3.0,90.000000,0.000000,-45.000000 -2207,-3.0,90.000000,0.000000,-45.000000 -2208,-3.0,90.000000,0.000000,-45.000000 -2209,-3.0,90.000000,0.000000,-45.000000 -2210,-3.0,90.000000,0.000000,-45.000000 -2211,-3.0,90.000000,0.000000,-45.000000 -2212,-3.0,90.000000,0.000000,-45.000000 -2213,-3.0,90.000000,0.000000,-45.000000 -2214,-3.0,90.000000,0.000000,-45.000000 -2215,-3.0,90.000000,0.000000,-45.000000 -2216,-3.0,90.000000,0.000000,-45.000000 -2217,-3.0,90.000000,0.000000,-45.000000 -2218,-3.0,90.000000,0.000000,-45.000000 -2219,-3.0,90.000000,0.000000,-45.000000 -2220,-3.0,90.000000,0.000000,-45.000000 -2221,-3.0,90.000000,0.000000,-45.000000 -2222,-3.0,90.000000,0.000000,-45.000000 -2223,-3.0,90.000000,0.000000,-45.000000 -2224,-3.0,90.000000,0.000000,-45.000000 -2225,-3.0,90.000000,0.000000,-45.000000 -2226,-3.0,90.000000,0.000000,-45.000000 -2227,-3.0,90.000000,0.000000,-45.000000 -2228,-3.0,90.000000,0.000000,-45.000000 -2229,-3.0,90.000000,0.000000,-45.000000 -2230,-3.0,90.000000,0.000000,-45.000000 -2231,-3.0,90.000000,0.000000,-45.000000 -2232,-3.0,90.000000,0.000000,-45.000000 -2233,-3.0,90.000000,0.000000,-45.000000 -2234,-3.0,90.000000,0.000000,-45.000000 -2235,-3.0,90.000000,0.000000,-45.000000 -2236,-3.0,90.000000,0.000000,-45.000000 -2237,-3.0,90.000000,0.000000,-45.000000 -2238,-3.0,90.000000,0.000000,-45.000000 -2239,-3.0,90.000000,0.000000,-45.000000 -2240,-3.0,90.000000,0.000000,-45.000000 -2241,-3.0,90.000000,0.000000,-45.000000 -2242,-3.0,90.000000,0.000000,-45.000000 -2243,-3.0,90.000000,0.000000,-45.000000 -2244,-3.0,90.000000,0.000000,-45.000000 -2245,-3.0,90.000000,0.000000,-45.000000 -2246,-3.0,90.000000,0.000000,-45.000000 -2247,-3.0,90.000000,0.000000,-45.000000 -2248,-3.0,90.000000,0.000000,-45.000000 -2249,-3.0,90.000000,0.000000,-45.000000 -2250,-3.0,90.000000,0.000000,-45.000000 -2251,-3.0,90.000000,0.000000,-45.000000 -2252,-3.0,90.000000,0.000000,-45.000000 -2253,-3.0,90.000000,0.000000,-45.000000 -2254,-3.0,90.000000,0.000000,-45.000000 -2255,-3.0,90.000000,0.000000,-45.000000 -2256,-3.0,90.000000,0.000000,-45.000000 -2257,-3.0,90.000000,0.000000,-45.000000 -2258,-3.0,90.000000,0.000000,-45.000000 -2259,-3.0,90.000000,0.000000,-45.000000 -2260,-3.0,90.000000,0.000000,-45.000000 -2261,-3.0,90.000000,0.000000,-45.000000 -2262,-3.0,90.000000,0.000000,-45.000000 -2263,-3.0,90.000000,0.000000,-45.000000 -2264,-3.0,90.000000,0.000000,-45.000000 -2265,-3.0,90.000000,0.000000,-45.000000 -2266,-3.0,90.000000,0.000000,-45.000000 -2267,-3.0,90.000000,0.000000,-45.000000 -2268,-3.0,90.000000,0.000000,-45.000000 -2269,-3.0,90.000000,0.000000,-45.000000 -2270,-3.0,90.000000,0.000000,-45.000000 -2271,-3.0,90.000000,0.000000,-45.000000 -2272,-3.0,90.000000,0.000000,-45.000000 -2273,-3.0,90.000000,0.000000,-45.000000 -2274,-3.0,90.000000,0.000000,-45.000000 -2275,-3.0,90.000000,0.000000,-45.000000 -2276,-3.0,90.000000,0.000000,-45.000000 -2277,-3.0,90.000000,0.000000,-45.000000 -2278,-3.0,90.000000,0.000000,-45.000000 -2279,-3.0,90.000000,0.000000,-45.000000 -2280,-3.0,90.000000,0.000000,-45.000000 -2281,-3.0,90.000000,0.000000,-45.000000 -2282,-3.0,90.000000,0.000000,-45.000000 -2283,-3.0,90.000000,0.000000,-45.000000 -2284,-3.0,90.000000,0.000000,-45.000000 -2285,-3.0,90.000000,0.000000,-45.000000 -2286,-3.0,90.000000,0.000000,-45.000000 -2287,-3.0,90.000000,0.000000,-45.000000 -2288,-3.0,90.000000,0.000000,-45.000000 -2289,-3.0,90.000000,0.000000,-45.000000 -2290,-3.0,90.000000,0.000000,-45.000000 -2291,-3.0,90.000000,0.000000,-45.000000 -2292,-3.0,90.000000,0.000000,-45.000000 -2293,-3.0,90.000000,0.000000,-45.000000 -2294,-3.0,90.000000,0.000000,-45.000000 -2295,-3.0,90.000000,0.000000,-45.000000 -2296,-3.0,90.000000,0.000000,-45.000000 -2297,-3.0,90.000000,0.000000,-45.000000 -2298,-3.0,90.000000,0.000000,-45.000000 -2299,-3.0,90.000000,0.000000,-45.000000 -2300,-3.0,90.000000,0.000000,-45.000000 -2301,-3.0,90.000000,0.000000,-45.000000 -2302,-3.0,90.000000,0.000000,-45.000000 -2303,-3.0,90.000000,0.000000,-45.000000 -2304,-3.0,90.000000,0.000000,-45.000000 -2305,-3.0,90.000000,0.000000,-45.000000 -2306,-3.0,90.000000,0.000000,-45.000000 -2307,-3.0,90.000000,0.000000,-45.000000 -2308,-3.0,90.000000,0.000000,-45.000000 -2309,-3.0,90.000000,0.000000,-45.000000 -2310,-3.0,90.000000,0.000000,-45.000000 -2311,-3.0,90.000000,0.000000,-45.000000 -2312,-3.0,90.000000,0.000000,-45.000000 -2313,-3.0,90.000000,0.000000,-45.000000 -2314,-3.0,90.000000,0.000000,-45.000000 -2315,-3.0,90.000000,0.000000,-45.000000 -2316,-3.0,90.000000,0.000000,-45.000000 -2317,-3.0,90.000000,0.000000,-45.000000 -2318,-3.0,90.000000,0.000000,-45.000000 -2319,-3.0,90.000000,0.000000,-45.000000 -2320,-3.0,90.000000,0.000000,-45.000000 -2321,-3.0,90.000000,0.000000,-45.000000 -2322,-3.0,90.000000,0.000000,-45.000000 -2323,-3.0,90.000000,0.000000,-45.000000 -2324,-3.0,90.000000,0.000000,-45.000000 -2325,-3.0,90.000000,0.000000,-45.000000 -2326,-3.0,90.000000,0.000000,-45.000000 -2327,-3.0,90.000000,0.000000,-45.000000 -2328,-3.0,90.000000,0.000000,-45.000000 -2329,-3.0,90.000000,0.000000,-45.000000 -2330,-3.0,90.000000,0.000000,-45.000000 -2331,-3.0,90.000000,0.000000,-45.000000 -2332,-3.0,90.000000,0.000000,-45.000000 -2333,-3.0,90.000000,0.000000,-45.000000 -2334,-3.0,90.000000,0.000000,-45.000000 -2335,-3.0,90.000000,0.000000,-45.000000 -2336,-3.0,90.000000,0.000000,-45.000000 -2337,-3.0,90.000000,0.000000,-45.000000 -2338,-3.0,90.000000,0.000000,-45.000000 -2339,-3.0,90.000000,0.000000,-45.000000 -2340,-3.0,90.000000,0.000000,-45.000000 -2341,-3.0,90.000000,0.000000,-45.000000 -2342,-3.0,90.000000,0.000000,-45.000000 -2343,-3.0,90.000000,0.000000,-45.000000 -2344,-3.0,90.000000,0.000000,-45.000000 -2345,-3.0,90.000000,0.000000,-45.000000 -2346,-3.0,90.000000,0.000000,-45.000000 -2347,-3.0,90.000000,0.000000,-45.000000 -2348,-3.0,90.000000,0.000000,-45.000000 -2349,-3.0,90.000000,0.000000,-45.000000 -2350,-3.0,90.000000,0.000000,-45.000000 -2351,-3.0,90.000000,0.000000,-45.000000 -2352,-3.0,90.000000,0.000000,-45.000000 -2353,-3.0,90.000000,0.000000,-45.000000 -2354,-3.0,90.000000,0.000000,-45.000000 -2355,-3.0,90.000000,0.000000,-45.000000 -2356,-3.0,90.000000,0.000000,-45.000000 -2357,-3.0,90.000000,0.000000,-45.000000 -2358,-3.0,90.000000,0.000000,-45.000000 -2359,-3.0,90.000000,0.000000,-45.000000 -2360,-3.0,90.000000,0.000000,-45.000000 -2361,-3.0,90.000000,0.000000,-45.000000 -2362,-3.0,90.000000,0.000000,-45.000000 -2363,-3.0,90.000000,0.000000,-45.000000 -2364,-3.0,90.000000,0.000000,-45.000000 -2365,-3.0,90.000000,0.000000,-45.000000 -2366,-3.0,90.000000,0.000000,-45.000000 -2367,-3.0,90.000000,0.000000,-45.000000 -2368,-3.0,90.000000,0.000000,-45.000000 -2369,-3.0,90.000000,0.000000,-45.000000 -2370,-3.0,90.000000,0.000000,-45.000000 -2371,-3.0,90.000000,0.000000,-45.000000 -2372,-3.0,90.000000,0.000000,-45.000000 -2373,-3.0,90.000000,0.000000,-45.000000 -2374,-3.0,90.000000,0.000000,-45.000000 -2375,-3.0,90.000000,0.000000,-45.000000 -2376,-3.0,90.000000,0.000000,-45.000000 -2377,-3.0,90.000000,0.000000,-45.000000 -2378,-3.0,90.000000,0.000000,-45.000000 -2379,-3.0,90.000000,0.000000,-45.000000 -2380,-3.0,90.000000,0.000000,-45.000000 -2381,-3.0,90.000000,0.000000,-45.000000 -2382,-3.0,90.000000,0.000000,-45.000000 -2383,-3.0,90.000000,0.000000,-45.000000 -2384,-3.0,90.000000,0.000000,-45.000000 -2385,-3.0,90.000000,0.000000,-45.000000 -2386,-3.0,90.000000,0.000000,-45.000000 -2387,-3.0,90.000000,0.000000,-45.000000 -2388,-3.0,90.000000,0.000000,-45.000000 -2389,-3.0,90.000000,0.000000,-45.000000 -2390,-3.0,90.000000,0.000000,-45.000000 -2391,-3.0,90.000000,0.000000,-45.000000 -2392,-3.0,90.000000,0.000000,-45.000000 -2393,-3.0,90.000000,0.000000,-45.000000 -2394,-3.0,90.000000,0.000000,-45.000000 -2395,-3.0,90.000000,0.000000,-45.000000 -2396,-3.0,90.000000,0.000000,-45.000000 -2397,-3.0,90.000000,0.000000,-45.000000 -2398,-3.0,90.000000,0.000000,-45.000000 -2399,-3.0,90.000000,0.000000,-45.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.00000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.0000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.0000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,-90.00000,0.000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.0000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.000000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,90.00000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.0000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,0.000000,-90.00000,0.000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.00000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,45.0000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 +-3.0,90.000000,0.000000,-45.000000 -- GitLab From b0909112b441dee900e30f7c8b5c73ea7e3f7467 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 24 Oct 2022 21:22:31 +0200 Subject: [PATCH 292/479] Updated ISM metadata files in scripts/prerenderer_configs --- .../IVAS_ISM_metadata_-30_0.csv | 100 +++++++++--------- .../IVAS_ISM_metadata_0_0.csv | 100 +++++++++--------- .../IVAS_ISM_metadata_30_0.csv | 100 +++++++++--------- .../IVAS_ISM_metadata_circle.csv | 100 +++++++++--------- 4 files changed, 200 insertions(+), 200 deletions(-) diff --git a/scripts/prerenderer_configs/IVAS_ISM_metadata_-30_0.csv b/scripts/prerenderer_configs/IVAS_ISM_metadata_-30_0.csv index f25d25b2f4..c3f47f7220 100644 --- a/scripts/prerenderer_configs/IVAS_ISM_metadata_-30_0.csv +++ b/scripts/prerenderer_configs/IVAS_ISM_metadata_-30_0.csv @@ -1,50 +1,50 @@ -0000,-030.00,+00.00,01.00,000.00,1.00 -0001,-030.00,+00.00,01.00,000.00,1.00 -0002,-030.00,+00.00,01.00,000.00,1.00 -0003,-030.00,+00.00,01.00,000.00,1.00 -0004,-030.00,+00.00,01.00,000.00,1.00 -0005,-030.00,+00.00,01.00,000.00,1.00 -0006,-030.00,+00.00,01.00,000.00,1.00 -0007,-030.00,+00.00,01.00,000.00,1.00 -0008,-030.00,+00.00,01.00,000.00,1.00 -0009,-030.00,+00.00,01.00,000.00,1.00 -0010,-030.00,+00.00,01.00,000.00,1.00 -0011,-030.00,+00.00,01.00,000.00,1.00 -0012,-030.00,+00.00,01.00,000.00,1.00 -0013,-030.00,+00.00,01.00,000.00,1.00 -0014,-030.00,+00.00,01.00,000.00,1.00 -0015,-030.00,+00.00,01.00,000.00,1.00 -0016,-030.00,+00.00,01.00,000.00,1.00 -0017,-030.00,+00.00,01.00,000.00,1.00 -0018,-030.00,+00.00,01.00,000.00,1.00 -0019,-030.00,+00.00,01.00,000.00,1.00 -0020,-030.00,+00.00,01.00,000.00,1.00 -0021,-030.00,+00.00,01.00,000.00,1.00 -0022,-030.00,+00.00,01.00,000.00,1.00 -0023,-030.00,+00.00,01.00,000.00,1.00 -0024,-030.00,+00.00,01.00,000.00,1.00 -0025,-030.00,+00.00,01.00,000.00,1.00 -0026,-030.00,+00.00,01.00,000.00,1.00 -0027,-030.00,+00.00,01.00,000.00,1.00 -0028,-030.00,+00.00,01.00,000.00,1.00 -0029,-030.00,+00.00,01.00,000.00,1.00 -0030,-030.00,+00.00,01.00,000.00,1.00 -0031,-030.00,+00.00,01.00,000.00,1.00 -0032,-030.00,+00.00,01.00,000.00,1.00 -0033,-030.00,+00.00,01.00,000.00,1.00 -0034,-030.00,+00.00,01.00,000.00,1.00 -0035,-030.00,+00.00,01.00,000.00,1.00 -0036,-030.00,+00.00,01.00,000.00,1.00 -0037,-030.00,+00.00,01.00,000.00,1.00 -0038,-030.00,+00.00,01.00,000.00,1.00 -0039,-030.00,+00.00,01.00,000.00,1.00 -0040,-030.00,+00.00,01.00,000.00,1.00 -0041,-030.00,+00.00,01.00,000.00,1.00 -0042,-030.00,+00.00,01.00,000.00,1.00 -0043,-030.00,+00.00,01.00,000.00,1.00 -0044,-030.00,+00.00,01.00,000.00,1.00 -0045,-030.00,+00.00,01.00,000.00,1.00 -0046,-030.00,+00.00,01.00,000.00,1.00 -0047,-030.00,+00.00,01.00,000.00,1.00 -0048,-030.00,+00.00,01.00,000.00,1.00 -0049,-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 +-030.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/prerenderer_configs/IVAS_ISM_metadata_0_0.csv b/scripts/prerenderer_configs/IVAS_ISM_metadata_0_0.csv index 613f66457f..887782fd4e 100644 --- a/scripts/prerenderer_configs/IVAS_ISM_metadata_0_0.csv +++ b/scripts/prerenderer_configs/IVAS_ISM_metadata_0_0.csv @@ -1,50 +1,50 @@ -0000,+000.00,+00.00,01.00,000.00,1.00 -0001,+000.00,+00.00,01.00,000.00,1.00 -0002,+000.00,+00.00,01.00,000.00,1.00 -0003,+000.00,+00.00,01.00,000.00,1.00 -0004,+000.00,+00.00,01.00,000.00,1.00 -0005,+000.00,+00.00,01.00,000.00,1.00 -0006,+000.00,+00.00,01.00,000.00,1.00 -0007,+000.00,+00.00,01.00,000.00,1.00 -0008,+000.00,+00.00,01.00,000.00,1.00 -0009,+000.00,+00.00,01.00,000.00,1.00 -0010,+000.00,+00.00,01.00,000.00,1.00 -0011,+000.00,+00.00,01.00,000.00,1.00 -0012,+000.00,+00.00,01.00,000.00,1.00 -0013,+000.00,+00.00,01.00,000.00,1.00 -0014,+000.00,+00.00,01.00,000.00,1.00 -0015,+000.00,+00.00,01.00,000.00,1.00 -0016,+000.00,+00.00,01.00,000.00,1.00 -0017,+000.00,+00.00,01.00,000.00,1.00 -0018,+000.00,+00.00,01.00,000.00,1.00 -0019,+000.00,+00.00,01.00,000.00,1.00 -0020,+000.00,+00.00,01.00,000.00,1.00 -0021,+000.00,+00.00,01.00,000.00,1.00 -0022,+000.00,+00.00,01.00,000.00,1.00 -0023,+000.00,+00.00,01.00,000.00,1.00 -0024,+000.00,+00.00,01.00,000.00,1.00 -0025,+000.00,+00.00,01.00,000.00,1.00 -0026,+000.00,+00.00,01.00,000.00,1.00 -0027,+000.00,+00.00,01.00,000.00,1.00 -0028,+000.00,+00.00,01.00,000.00,1.00 -0029,+000.00,+00.00,01.00,000.00,1.00 -0030,+000.00,+00.00,01.00,000.00,1.00 -0031,+000.00,+00.00,01.00,000.00,1.00 -0032,+000.00,+00.00,01.00,000.00,1.00 -0033,+000.00,+00.00,01.00,000.00,1.00 -0034,+000.00,+00.00,01.00,000.00,1.00 -0035,+000.00,+00.00,01.00,000.00,1.00 -0036,+000.00,+00.00,01.00,000.00,1.00 -0037,+000.00,+00.00,01.00,000.00,1.00 -0038,+000.00,+00.00,01.00,000.00,1.00 -0039,+000.00,+00.00,01.00,000.00,1.00 -0040,+000.00,+00.00,01.00,000.00,1.00 -0041,+000.00,+00.00,01.00,000.00,1.00 -0042,+000.00,+00.00,01.00,000.00,1.00 -0043,+000.00,+00.00,01.00,000.00,1.00 -0044,+000.00,+00.00,01.00,000.00,1.00 -0045,+000.00,+00.00,01.00,000.00,1.00 -0046,+000.00,+00.00,01.00,000.00,1.00 -0047,+000.00,+00.00,01.00,000.00,1.00 -0048,+000.00,+00.00,01.00,000.00,1.00 -0049,+000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/prerenderer_configs/IVAS_ISM_metadata_30_0.csv b/scripts/prerenderer_configs/IVAS_ISM_metadata_30_0.csv index 1bcd90bbcf..8ed2a4df12 100644 --- a/scripts/prerenderer_configs/IVAS_ISM_metadata_30_0.csv +++ b/scripts/prerenderer_configs/IVAS_ISM_metadata_30_0.csv @@ -1,50 +1,50 @@ -0000,+030.00,+00.00,01.00,000.00,1.00 -0001,+030.00,+00.00,01.00,000.00,1.00 -0002,+030.00,+00.00,01.00,000.00,1.00 -0003,+030.00,+00.00,01.00,000.00,1.00 -0004,+030.00,+00.00,01.00,000.00,1.00 -0005,+030.00,+00.00,01.00,000.00,1.00 -0006,+030.00,+00.00,01.00,000.00,1.00 -0007,+030.00,+00.00,01.00,000.00,1.00 -0008,+030.00,+00.00,01.00,000.00,1.00 -0009,+030.00,+00.00,01.00,000.00,1.00 -0010,+030.00,+00.00,01.00,000.00,1.00 -0011,+030.00,+00.00,01.00,000.00,1.00 -0012,+030.00,+00.00,01.00,000.00,1.00 -0013,+030.00,+00.00,01.00,000.00,1.00 -0014,+030.00,+00.00,01.00,000.00,1.00 -0015,+030.00,+00.00,01.00,000.00,1.00 -0016,+030.00,+00.00,01.00,000.00,1.00 -0017,+030.00,+00.00,01.00,000.00,1.00 -0018,+030.00,+00.00,01.00,000.00,1.00 -0019,+030.00,+00.00,01.00,000.00,1.00 -0020,+030.00,+00.00,01.00,000.00,1.00 -0021,+030.00,+00.00,01.00,000.00,1.00 -0022,+030.00,+00.00,01.00,000.00,1.00 -0023,+030.00,+00.00,01.00,000.00,1.00 -0024,+030.00,+00.00,01.00,000.00,1.00 -0025,+030.00,+00.00,01.00,000.00,1.00 -0026,+030.00,+00.00,01.00,000.00,1.00 -0027,+030.00,+00.00,01.00,000.00,1.00 -0028,+030.00,+00.00,01.00,000.00,1.00 -0029,+030.00,+00.00,01.00,000.00,1.00 -0030,+030.00,+00.00,01.00,000.00,1.00 -0031,+030.00,+00.00,01.00,000.00,1.00 -0032,+030.00,+00.00,01.00,000.00,1.00 -0033,+030.00,+00.00,01.00,000.00,1.00 -0034,+030.00,+00.00,01.00,000.00,1.00 -0035,+030.00,+00.00,01.00,000.00,1.00 -0036,+030.00,+00.00,01.00,000.00,1.00 -0037,+030.00,+00.00,01.00,000.00,1.00 -0038,+030.00,+00.00,01.00,000.00,1.00 -0039,+030.00,+00.00,01.00,000.00,1.00 -0040,+030.00,+00.00,01.00,000.00,1.00 -0041,+030.00,+00.00,01.00,000.00,1.00 -0042,+030.00,+00.00,01.00,000.00,1.00 -0043,+030.00,+00.00,01.00,000.00,1.00 -0044,+030.00,+00.00,01.00,000.00,1.00 -0045,+030.00,+00.00,01.00,000.00,1.00 -0046,+030.00,+00.00,01.00,000.00,1.00 -0047,+030.00,+00.00,01.00,000.00,1.00 -0048,+030.00,+00.00,01.00,000.00,1.00 -0049,+030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 ++030.00,+00.00,01.00,000.00,1.00 diff --git a/scripts/prerenderer_configs/IVAS_ISM_metadata_circle.csv b/scripts/prerenderer_configs/IVAS_ISM_metadata_circle.csv index f5fbf46941..9323b776fe 100644 --- a/scripts/prerenderer_configs/IVAS_ISM_metadata_circle.csv +++ b/scripts/prerenderer_configs/IVAS_ISM_metadata_circle.csv @@ -1,50 +1,50 @@ -0000,+000.00,+00.00,01.00,000.00,1.00 -0001,+007.00,+00.00,01.00,000.00,1.00 -0002,+014.00,+00.00,01.00,000.00,1.00 -0003,+022.00,+00.00,01.00,000.00,1.00 -0004,+029.00,+00.00,01.00,000.00,1.00 -0005,+036.00,+00.00,01.00,000.00,1.00 -0006,+043.00,+00.00,01.00,000.00,1.00 -0007,+050.00,+00.00,01.00,000.00,1.00 -0008,+058.00,+00.00,01.00,000.00,1.00 -0009,+065.00,+00.00,01.00,000.00,1.00 -0010,+072.00,+00.00,01.00,000.00,1.00 -0011,+079.00,+00.00,01.00,000.00,1.00 -0012,+086.00,+00.00,01.00,000.00,1.00 -0013,+094.00,+00.00,01.00,000.00,1.00 -0014,+101.00,+00.00,01.00,000.00,1.00 -0015,+108.00,+00.00,01.00,000.00,1.00 -0016,+115.00,+00.00,01.00,000.00,1.00 -0017,+122.00,+00.00,01.00,000.00,1.00 -0018,+130.00,+00.00,01.00,000.00,1.00 -0019,+137.00,+00.00,01.00,000.00,1.00 -0020,+144.00,+00.00,01.00,000.00,1.00 -0021,+151.00,+00.00,01.00,000.00,1.00 -0022,+158.00,+00.00,01.00,000.00,1.00 -0023,+166.00,+00.00,01.00,000.00,1.00 -0024,+173.00,+00.00,01.00,000.00,1.00 -0025,+180.00,+00.00,01.00,000.00,1.00 -0026,+187.00,+00.00,01.00,000.00,1.00 -0027,+194.00,+00.00,01.00,000.00,1.00 -0028,+202.00,+00.00,01.00,000.00,1.00 -0029,+209.00,+00.00,01.00,000.00,1.00 -0030,+216.00,+00.00,01.00,000.00,1.00 -0031,+223.00,+00.00,01.00,000.00,1.00 -0032,+230.00,+00.00,01.00,000.00,1.00 -0033,+238.00,+00.00,01.00,000.00,1.00 -0034,+245.00,+00.00,01.00,000.00,1.00 -0035,+252.00,+00.00,01.00,000.00,1.00 -0036,+259.00,+00.00,01.00,000.00,1.00 -0037,+266.00,+00.00,01.00,000.00,1.00 -0038,+274.00,+00.00,01.00,000.00,1.00 -0039,+281.00,+00.00,01.00,000.00,1.00 -0040,+288.00,+00.00,01.00,000.00,1.00 -0041,+295.00,+00.00,01.00,000.00,1.00 -0042,+302.00,+00.00,01.00,000.00,1.00 -0043,+310.00,+00.00,01.00,000.00,1.00 -0044,+317.00,+00.00,01.00,000.00,1.00 -0045,+324.00,+00.00,01.00,000.00,1.00 -0046,+331.00,+00.00,01.00,000.00,1.00 -0047,+338.00,+00.00,01.00,000.00,1.00 -0048,+346.00,+00.00,01.00,000.00,1.00 -0049,+353.00,+00.00,01.00,000.00,1.00 ++000.00,+00.00,01.00,000.00,1.00 ++007.00,+00.00,01.00,000.00,1.00 ++014.00,+00.00,01.00,000.00,1.00 ++022.00,+00.00,01.00,000.00,1.00 ++029.00,+00.00,01.00,000.00,1.00 ++036.00,+00.00,01.00,000.00,1.00 ++043.00,+00.00,01.00,000.00,1.00 ++050.00,+00.00,01.00,000.00,1.00 ++058.00,+00.00,01.00,000.00,1.00 ++065.00,+00.00,01.00,000.00,1.00 ++072.00,+00.00,01.00,000.00,1.00 ++079.00,+00.00,01.00,000.00,1.00 ++086.00,+00.00,01.00,000.00,1.00 ++094.00,+00.00,01.00,000.00,1.00 ++101.00,+00.00,01.00,000.00,1.00 ++108.00,+00.00,01.00,000.00,1.00 ++115.00,+00.00,01.00,000.00,1.00 ++122.00,+00.00,01.00,000.00,1.00 ++130.00,+00.00,01.00,000.00,1.00 ++137.00,+00.00,01.00,000.00,1.00 ++144.00,+00.00,01.00,000.00,1.00 ++151.00,+00.00,01.00,000.00,1.00 ++158.00,+00.00,01.00,000.00,1.00 ++166.00,+00.00,01.00,000.00,1.00 ++173.00,+00.00,01.00,000.00,1.00 ++180.00,+00.00,01.00,000.00,1.00 ++187.00,+00.00,01.00,000.00,1.00 ++194.00,+00.00,01.00,000.00,1.00 ++202.00,+00.00,01.00,000.00,1.00 ++209.00,+00.00,01.00,000.00,1.00 ++216.00,+00.00,01.00,000.00,1.00 ++223.00,+00.00,01.00,000.00,1.00 ++230.00,+00.00,01.00,000.00,1.00 ++238.00,+00.00,01.00,000.00,1.00 ++245.00,+00.00,01.00,000.00,1.00 ++252.00,+00.00,01.00,000.00,1.00 ++259.00,+00.00,01.00,000.00,1.00 ++266.00,+00.00,01.00,000.00,1.00 ++274.00,+00.00,01.00,000.00,1.00 ++281.00,+00.00,01.00,000.00,1.00 ++288.00,+00.00,01.00,000.00,1.00 ++295.00,+00.00,01.00,000.00,1.00 ++302.00,+00.00,01.00,000.00,1.00 ++310.00,+00.00,01.00,000.00,1.00 ++317.00,+00.00,01.00,000.00,1.00 ++324.00,+00.00,01.00,000.00,1.00 ++331.00,+00.00,01.00,000.00,1.00 ++338.00,+00.00,01.00,000.00,1.00 ++346.00,+00.00,01.00,000.00,1.00 ++353.00,+00.00,01.00,000.00,1.00 -- GitLab From a914510139b8f0b4dda2be3ef5687175e4ad5514 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 25 Oct 2022 08:58:53 +0200 Subject: [PATCH 293/479] formatting, comments --- lib_com/ivas_filters.c | 14 ++++---- lib_com/ivas_prot.h | 74 ++++++++++++++++++++-------------------- lib_enc/ivas_dirac_enc.c | 39 ++++++++++----------- 3 files changed, 64 insertions(+), 63 deletions(-) diff --git a/lib_com/ivas_filters.c b/lib_com/ivas_filters.c index 96148e5ca3..898ba7fe89 100644 --- a/lib_com/ivas_filters.c +++ b/lib_com/ivas_filters.c @@ -42,7 +42,7 @@ /*------------------------------------------------------------------------------------------* - * Static functions declaration + * Local functions declaration *------------------------------------------------------------------------------------------*/ static void ivas_iir_2_filter( ivas_filters_process_state_t *filter_state, float *pIn_Out, const int16_t length, const int16_t stage ); @@ -55,9 +55,9 @@ static void ivas_iir_2_filter( ivas_filters_process_state_t *filter_state, float *-----------------------------------------------------------------------------------------*/ void ivas_filters_init( - ivas_filters_process_state_t *filter_state, - const float *filt_coeff, - const int16_t order ) + ivas_filters_process_state_t *filter_state, /* i/o: filter state handle */ + const float *filt_coeff, /* i : filter coefficients */ + const int16_t order ) /* i : filter order */ { int16_t i; filter_state->order = order; @@ -107,9 +107,9 @@ void ivas_filters_init( *-----------------------------------------------------------------------------------------*/ void ivas_filter_process( - ivas_filters_process_state_t *filter_state, - float *pIn_Out, - const int16_t length ) + ivas_filters_process_state_t *filter_state, /* i/o: filter state handle */ + float *pIn_Out, /* i/o: signal subject to filtering */ + const int16_t length ) /* i : filter order */ { switch ( filter_state->order ) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index df12064a13..6ee0b402ad 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3165,14 +3165,14 @@ void ivas_dirac_enc_close( ); void ivas_dirac_enc( - DIRAC_ENC_HANDLE hDirAC, /* i/o: encoder DirAC handle */ - IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: q_metadata handle */ - BSTR_ENC_HANDLE hMetaData, /* i/o: Metadata bitstream handle */ - int16_t *nb_bits_metadata, /* o : number of metadata bits written */ - const int16_t Opt_DTX_ON, /* i : flag signaling DTX on */ - float data_f[][L_FRAME48k], /* i/o: input: ACN/SN3D, output: omni, stereo DMX or FOA */ - const int16_t input_frame, /* i : input frame length */ - const int16_t sba_planar /* i : SBA planar flag */ + DIRAC_ENC_HANDLE hDirAC, /* i/o: encoder DirAC handle */ + IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: q_metadata handle */ + BSTR_ENC_HANDLE hMetaData, /* i/o: Metadata bitstream handle */ + int16_t *nb_bits_metadata, /* o : number of metadata bits written */ + const int16_t Opt_DTX_ON, /* i : flag signaling DTX on */ + float data_f[][L_FRAME48k], /* i : SBA channels */ + const int16_t input_frame, /* i : input frame length */ + const int16_t sba_planar /* i : SBA planar flag */ ); ivas_error ivas_dirac_config( @@ -3988,7 +3988,7 @@ ivas_error ivas_spar_md_dec_open( const int16_t num_channels /* i : number of internal channels */ #ifdef SBA_HOA_HBR_IMPROV , - const int16_t sba_order /* i : flag to send HOA MD for all bands */ + const int16_t sba_order /* i : SBA order */ #endif ); @@ -4806,28 +4806,28 @@ void ivas_mcmasa_param_est_enc( MCMASA_ENC_HANDLE hMcMasa, /* i/o: Encoder McMASA handle */ MASA_ENCODER_HANDLE hMasa, /* i/o: Encoder MASA handle */ float data_f[][L_FRAME48k], /* i : Input frame of audio */ - float elevation_m_values[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated elevation */ - float azimuth_m_values[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated azimuth */ - float energyRatio[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated direct-to-total ratio */ - float spreadCoherence[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated spread coherence */ - float surroundingCoherence[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated surround coherence */ + float elevation_m_values[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated elevation */ + float azimuth_m_values[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated azimuth */ + float energyRatio[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated direct-to-total ratio*/ + float spreadCoherence[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated spread coherence */ + float surroundingCoherence[MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS], /* o : Estimated surround coherence */ const int16_t input_frame, /* i : Input frame size */ const int16_t nchan_inp /* i : Number of input channels */ ); void v_multc_acc( - const float x[], /* i : Input vector */ - const float c, /* i : Constant */ - float y[], /* o : Output vector that contains y + c*x */ - const int16_t N /* i : Vector length */ + const float x[], /* i : Input vector */ + const float c, /* i : Constant */ + float y[], /* o : Output vector that contains y + c*x */ + const int16_t N /* i : Vector length */ ); void lls_interp_n( - float x[], /* i/o: input/output vector */ - const int16_t N, /* i : length of the input vector */ - float *a, /* o : calculated slope */ - float *b, /* o : calculated offset */ - const int16_t upd /* i : use 1 to update x[] with the interpolated output */ + float x[], /* i/o: input/output vector */ + const int16_t N, /* i : length of the input vector */ + float *a, /* o : calculated slope */ + float *b, /* o : calculated offset */ + const int16_t upd /* i : use 1 to update x[] with the interpolated output*/ ); void computeReferencePower_enc( @@ -4839,13 +4839,13 @@ void computeReferencePower_enc( const int16_t num_freq_bands /* i : Number of frequency bands */ #ifdef SBA_HOA_HBR_IMPROV , - const SBA_MODE sba_mode /* i : SBA mode */ + const SBA_MODE sba_mode /* i : SBA mode */ #endif ); ivas_error ivas_mono_dmx_renderer_open( - Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ + Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); void ivas_mono_downmix_render_passive( @@ -4926,15 +4926,15 @@ void ivas_lfe_lpf_select_filt_coeff( ); void ivas_filters_init( - ivas_filters_process_state_t *filter_state, - const float *filt_coeff, - const int16_t order + ivas_filters_process_state_t *filter_state, /* i/o: filter state handle */ + const float *filt_coeff, /* i : filter coefficients */ + const int16_t order /* i : filter order */ ); void ivas_filter_process( - ivas_filters_process_state_t *filter_state, - float *pIn_Out, - const int16_t length + ivas_filters_process_state_t *filter_state, /* i/o: filter state handle */ + float *pIn_Out, /* i : signal subject to filtering */ + const int16_t length /* i : filter order */ ); @@ -5004,7 +5004,7 @@ void TDREND_HRFILT_SetFiltSet( #endif ivas_error TDREND_REND_RenderSourceHRFilt( - TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ + TDREND_SRC_t *Src_p, /* i/o: The source to be rendered */ #ifdef TDREND_HRTF_TABLE_METHODS BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, /* i/o: TD renderer handle */ #endif @@ -5051,7 +5051,7 @@ ivas_error TDREND_SRC_Alloc( ); void TDREND_SRC_Dealloc( - TDREND_SRC_t *Src_p /* i/o: Source to deallocate */ + TDREND_SRC_t *Src_p /* i/o: Source to deallocate */ ); void TDREND_SRC_Init( @@ -5149,7 +5149,7 @@ void TDREND_SFX_SpatBin_SetParams( void TDREND_SFX_SpatBin_Execute_Main( SFX_SpatBin_t *SfxSpatBin_p, /* i/o: Spatial parameters handle */ const float *InBuffer_p, /* i : Input buffer */ - const int16_t subframe_length, /* i : subframe length */ + const int16_t subframe_length, /* i : subframe length */ float *LeftOutBuffer_p, /* o : Rendered left channel */ float *RightOutBuffer_p, /* o : Rendered right channel */ int16_t *NoOfUsedInputSamples_p, /* o : Number of input samples actually used */ @@ -5191,9 +5191,9 @@ void ivas_fb_mixer_pcm_ingest( ); void ivas_dirac_enc_spar_delay_synchro( - Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ - const int16_t input_frame, /* i : input frame length */ - float data_f[][L_FRAME48k] /* i/o: input: ACN/SN3D, output: omni, stereo DMX or FOA*/ + Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ + const int16_t input_frame, /* i : input frame length */ + float data_f[][L_FRAME48k] /* i/o: SBA channels (ACN / SN3D) */ ); void ivas_fb_mixer_update_prior_input( diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 04f4becd22..de4f7867dc 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -301,14 +301,14 @@ void ivas_dirac_enc_close( *------------------------------------------------------------------------*/ void ivas_dirac_enc( - DIRAC_ENC_HANDLE hDirAC, /* i/o: encoder DirAC handle */ - IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: q_metadata handle */ - BSTR_ENC_HANDLE hMetaData, /* i/o: Metadata bitstream handle */ - int16_t *nb_bits_metadata, /* o : number of metadata bits written */ - const int16_t Opt_DTX_ON, /* i : flag signaling DTX on */ - float data_f[][L_FRAME48k], /* i/o: input: ACN/SN3D, output: omni, stereo DMX or FOA*/ - const int16_t input_frame, /* i : input frame length */ - const int16_t sba_planar /* i : SBA planar flag */ + DIRAC_ENC_HANDLE hDirAC, /* i/o: encoder DirAC handle */ + IVAS_QMETADATA_HANDLE hQMetaData, /* i/o: q_metadata handle */ + BSTR_ENC_HANDLE hMetaData, /* i/o: Metadata bitstream handle */ + int16_t *nb_bits_metadata, /* o : number of metadata bits written */ + const int16_t Opt_DTX_ON, /* i : flag signaling DTX on */ + float data_f[][L_FRAME48k], /* i : SBA channels */ + const int16_t input_frame, /* i : input frame length */ + const int16_t sba_planar /* i : SBA planar flag */ ) { int16_t i; @@ -444,35 +444,35 @@ void ivas_dirac_enc( /*------------------------------------------------------------------------- - * computeReferencePower_enc() - * + * ivas_dirac_enc_spar_delay_synchro() * + * Delay input channels to be synchronized between DirAC and SPAR *-------------------------------------------------------------------------*/ void ivas_dirac_enc_spar_delay_synchro( - Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ - const int16_t input_frame, /* i : input frame length */ - float data_f[][L_FRAME48k] /* i/o: input: ACN/SN3D, output: omni, stereo DMX or FOA*/ + Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ + const int16_t input_frame, /* i : input frame length */ + float data_f[][L_FRAME48k] /* i/o: SBA channels (ACN / SN3D) */ ) { int16_t ch_idx; float tmp_buffer[L_FRAME48k]; - #ifdef CORECODER_BITRATE_SWITCHING + Encoder_State *sts[MCT_MAX_BLOCKS]; + int16_t sce_id, cpe_id, i_chan; + /* check last sba_mode */ if ( ivas_sba_mode_select( st_ivas->hEncoderConfig->last_ivas_total_brate ) == SBA_MODE_SPAR ) { - Encoder_State *sts[MCT_MAX_BLOCKS]; - int16_t i_chan = 0; - /* initializations */ - for ( int16_t sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) + i_chan = 0; + for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) { sts[sce_id] = st_ivas->hSCE[sce_id]->hCoreCoder[0]; i_chan++; } - for ( int16_t cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) { for ( int16_t ch = 0; ch < CPE_CHANNELS; ch++ ) { @@ -481,6 +481,7 @@ void ivas_dirac_enc_spar_delay_synchro( } } + /* populate old synchro buffers */ for ( ch_idx = 0; ch_idx < i_chan; ch_idx++ ) { mvr2r( sts[ch_idx]->input, st_ivas->hDirAC->sba_synchro_buffer[ch_idx], st_ivas->hDirAC->num_samples_synchro_delay ); -- GitLab From bdca923ceedac60bf9a36ee725a772627e99a025 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 25 Oct 2022 13:02:03 +0200 Subject: [PATCH 294/479] [harmonization] Use a common name MCT_flag instead of is_mct/is_MCT/isMCT/hMCT_flag/MCT_flag --- lib_com/core_com_config.c | 12 +- lib_com/ivas_prot.h | 202 ++++++++++++++-------------- lib_com/prot.h | 85 ++++++------ lib_com/swb_tbe_com.c | 6 + lib_com/tcx_utils.c | 8 +- lib_com/tns_base.c | 5 +- lib_dec/core_dec_init.c | 20 +-- lib_dec/core_dec_switch.c | 18 +-- lib_dec/dec_tcx.c | 43 +++--- lib_dec/ivas_mct_dec_mct.c | 2 +- lib_dec/ivas_mdct_core_dec.c | 74 +++++----- lib_dec/ivas_stereo_mdct_core_dec.c | 2 +- lib_dec/ivas_tcx_core_dec.c | 10 +- lib_enc/cod_tcx.c | 4 +- lib_enc/core_enc_init.c | 17 +-- lib_enc/core_enc_switch.c | 15 ++- lib_enc/enc_prm.c | 12 +- lib_enc/ivas_core_enc.c | 18 +-- lib_enc/ivas_core_pre_proc.c | 6 +- lib_enc/ivas_decision_matrix_enc.c | 10 +- lib_enc/ivas_front_vad.c | 6 +- lib_enc/ivas_mdct_core_enc.c | 20 +-- lib_enc/ivas_tcx_core_enc.c | 2 +- lib_enc/setmodeindex.c | 12 +- 24 files changed, 304 insertions(+), 305 deletions(-) diff --git a/lib_com/core_com_config.c b/lib_com/core_com_config.c index 295eca6233..7ffb4f0e9f 100644 --- a/lib_com/core_com_config.c +++ b/lib_com/core_com_config.c @@ -163,9 +163,9 @@ int16_t get_codec_mode( *-------------------------------------------------------------------*/ int16_t getTcxonly( - const int16_t element_mode, /* i : IVAS element mode */ - const int32_t total_brate, /* i : total bitrate */ - const int16_t is_mct /* i : MCT mode flag */ + const int16_t element_mode, /* i : IVAS element mode */ + const int32_t total_brate, /* i : total bitrate */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0)*/ ) { int16_t tcxonly = 0; @@ -187,7 +187,7 @@ int16_t getTcxonly( } break; case IVAS_CPE_MDCT: - if ( total_brate >= ( is_mct ? IVAS_32k : IVAS_48k ) ) + if ( total_brate >= ( MCT_flag ? IVAS_32k : IVAS_48k ) ) { tcxonly = 1; } @@ -808,7 +808,7 @@ void init_tcx_cfg( const int16_t infoIGFStopFreq, const int16_t element_mode, const int16_t ini_frame, - const int16_t is_mct, + const int16_t MCT_flag, const MCT_CHAN_MODE mct_chan_mode /* i : MDCT channel mode */ ) { @@ -850,7 +850,7 @@ void init_tcx_cfg( if ( hTcxCfg->fIsTNSAllowed ) { - InitTnsConfigs( bwidth, hTcxCfg->tcx_coded_lines, hTcxCfg->tnsConfig, infoIGFStopFreq, total_brate, element_mode, is_mct ); + InitTnsConfigs( bwidth, hTcxCfg->tcx_coded_lines, hTcxCfg->tnsConfig, infoIGFStopFreq, total_brate, element_mode, MCT_flag ); SetAllowTnsOnWhite( hTcxCfg->tnsConfig, element_mode == IVAS_CPE_MDCT ); } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index ff23fb7ebf..6419fbc905 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -225,7 +225,7 @@ ivas_error pre_proc_ivas( const int16_t vad_flag_dtx, /* i : HE-SAD flag with additional DTX HO */ const float enerBuffer[CLDFB_NO_CHANNELS_MAX], /* i : energy buffer */ const float fft_buff[2 * L_FFT], /* i : FFT buffer */ - const int16_t is_mct, /* i : MCT mode flag */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ const int16_t vad_hover_flag, /* i : VAD hangover flag */ const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ ); @@ -504,7 +504,7 @@ void stereo_tcx_core_dec( void stereo_tcx_init_dec( Decoder_State *st, /* i/o: decoder state structure */ - const int16_t is_mct, /* i : MCT mode flag */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ const int16_t last_element_mode /* i : element mode of previous frame */ ); @@ -561,7 +561,7 @@ void ivas_decision_matrix_enc( void ivas_signaling_enc( Encoder_State *st, /* i/o: encoder state structure */ - const int16_t is_MCT, /* i : MCT enabled */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ const int32_t element_brate, /* i : element bitrate */ const int16_t tdm_SM_flag, /* i : channel combination scheme flag in TD stereo */ const int16_t tdm_Pitch_reuse_flag /* i : primary channel pitch reuse flag in TD stereo*/ @@ -1869,7 +1869,7 @@ void EstimateStereoTCXNoiseLevel( const int16_t ignore_chan[], /* i : flag indicating whether the channel should be ignored */ float fac_ns[][NB_DIV], /* o : noise filling level */ int16_t param_core[][NB_DIV * NPRM_DIV], /* o : quantized noise filling level */ - const int16_t is_mct /* i : is mct flag */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ); void TNSAnalysisStereo( @@ -1998,7 +1998,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ - const int16_t isMCT, + const int16_t MCT_flag, const int16_t frame_cnt /* i : frame counter in the super frame */ ); @@ -2082,7 +2082,7 @@ void decoder_tcx_IGF_stereo( const int16_t left_rect, /* i : left part is rectangular */ const int16_t k, /* i : Subframe index */ const int16_t bfi, /* i : bad frame indicator */ - const int16_t is_mct /* i : flag to signal MCT or SMDCT */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ); void ms_processing( @@ -2360,7 +2360,7 @@ ivas_error front_vad( Encoder_State *st, /* i/o: encoder state structure */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ FRONT_VAD_ENC_HANDLE *hFrontVads, /* i/o: front-VAD handles */ - const int16_t hMCT_flag, /* i : hMCT handle allocated (1) or not (0) */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ const int16_t input_frame, /* i : frame length */ int16_t vad_flag_dtx[], /* o : HE-SAD flag with additional DTX HO */ float fr_bands[][2 * NB_BANDS], /* i : energy in frequency bands */ @@ -2603,139 +2603,139 @@ int16_t read_GR0( *----------------------------------------------------------------------------------*/ void ivas_mdct_core_whitening_enc( - CPE_ENC_HANDLE hCPE, /* i/o: CPE encoder structure */ - float new_samples[CPE_CHANNELS][L_INP], /* i : new samples */ - float old_wsp[CPE_CHANNELS][L_WSP], /* i : 12.8kHz weighted speech (for LTP */ - float pitch_buf[CPE_CHANNELS][NB_SUBFR16k], /* o : floating pitch for each subframe */ - float *mdst_spectrum_long[CPE_CHANNELS], /* o : buffer for MDST spectrum */ - int16_t tnsBits[CPE_CHANNELS][NB_DIV], /* o : buffer TNS bits */ - float *orig_spectrum_long[CPE_CHANNELS], /* o : origingal spectrum w/o whitening */ - int16_t tnsSize[CPE_CHANNELS][NB_DIV], /* o : size of TNS */ - int16_t p_param[CPE_CHANNELS][NB_DIV], /* o : pointer to parameter array */ - BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ - int16_t *LFE_off, /* o : flag if LFE has content */ - const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ - const int16_t nChannels /* i : total number of coded channels */ + CPE_ENC_HANDLE hCPE, /* i/o: CPE encoder structure */ + float new_samples[CPE_CHANNELS][L_INP], /* i : new samples */ + float old_wsp[CPE_CHANNELS][L_WSP], /* i : 12.8kHz weighted speech (for LTP */ + float pitch_buf[CPE_CHANNELS][NB_SUBFR16k], /* o : floating pitch for each subframe */ + float *mdst_spectrum_long[CPE_CHANNELS], /* o : buffer for MDST spectrum */ + int16_t tnsBits[CPE_CHANNELS][NB_DIV], /* o : buffer TNS bits */ + float *orig_spectrum_long[CPE_CHANNELS], /* o : origingal spectrum w/o whitening */ + int16_t tnsSize[CPE_CHANNELS][NB_DIV], /* o : size of TNS */ + int16_t p_param[CPE_CHANNELS][NB_DIV], /* o : pointer to parameter array */ + BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ + int16_t *LFE_off, /* o : flag if LFE has content */ + const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ + const int16_t nChannels /* i : total number of coded channels */ ); void ivas_mct_core_enc( - const IVAS_FORMAT ivas_format, /* i : IVAS format */ - MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ - CPE_ENC_HANDLE hCPE[MCT_MAX_BLOCKS], /* i/o: CPE encoder structures */ - const int16_t nChannels, /* i : number of channels to be coded */ - const int32_t ivas_total_brate, /* i : IVAS total bitrate */ - const int16_t switch_bw, /* i : flag bandwidth switch occurance */ - const int16_t lfe_bits /* i : bits spent for LFE */ + const IVAS_FORMAT ivas_format, /* i : IVAS format */ + MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ + CPE_ENC_HANDLE hCPE[MCT_MAX_BLOCKS], /* i/o: CPE encoder structures */ + const int16_t nChannels, /* i : number of channels to be coded */ + const int32_t ivas_total_brate, /* i : IVAS total bitrate */ + const int16_t switch_bw, /* i : flag bandwidth switch occurance */ + const int16_t lfe_bits /* i : bits spent for LFE */ #ifdef FIX_I1_113 , - const int16_t sba_order /* i : Ambisonic (SBA) order */ + const int16_t sba_order /* i : Ambisonic (SBA) order */ #endif ); void ivas_mdct_quant_coder( - CPE_ENC_HANDLE hCPE, /* i/o: Encoder CPE handle */ - const int16_t LFE_off, /* i : flag if LFE has content */ - int16_t tnsBits[CPE_CHANNELS][NB_DIV], /* i : bits needed for TNS parameters */ - int16_t tnsSize[CPE_CHANNELS][NB_DIV], /* i : size of TNS */ - int16_t p_param[CPE_CHANNELS][NB_DIV], /* i : pointer to parameter array */ - const int16_t is_mct /* i : is mct flag */ + CPE_ENC_HANDLE hCPE, /* i/o: Encoder CPE handle */ + const int16_t LFE_off, /* i : flag if LFE has content */ + int16_t tnsBits[CPE_CHANNELS][NB_DIV], /* i : bits needed for TNS parameters */ + int16_t tnsSize[CPE_CHANNELS][NB_DIV], /* i : size of TNS */ + int16_t p_param[CPE_CHANNELS][NB_DIV], /* i : pointer to parameter array */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ); void apply_MCT_enc( - MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ - Encoder_State **sts, /* i/o: encoder state structure */ - float *mdst_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i/o: MDST spectrum */ - float *inv_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i/o: inverse spectrum */ - float *inv_mdst_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i/o: inverse MDST spectrum */ - const int16_t nchan /* i : number of channels */ + MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ + Encoder_State **sts, /* i/o: encoder state structure */ + float *mdst_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i/o: MDST spectrum */ + float *inv_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i/o: inverse spectrum */ + float *inv_mdst_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i/o: inverse MDST spectrum */ + const int16_t nchan /* i : number of channels */ ); void write_mct_bitstream( - Encoder_State **sts, /* i/o: encoder state structure */ - MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ - const int16_t nchan /* i : number of channels */ + Encoder_State **sts, /* i/o: encoder state structure */ + MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ + const int16_t nchan /* i : number of channels */ ); void splitAvailableBitsMCT( - void **sts, /* i/o: encoder/decoder state structure */ - const int16_t total_bits, /* i : total number of available bits */ - const int16_t split_ratio[MCT_MAX_CHANNELS], /* i : ratio for splitting the bits */ - const int16_t enc_dec, /* i : encoder or decoder flag */ - const int16_t nchan /* i : number of channels */ + void **sts, /* i/o: encoder/decoder state structure */ + const int16_t total_bits, /* i : total number of available bits */ + const int16_t split_ratio[MCT_MAX_CHANNELS], /* i : ratio for splitting the bits */ + const int16_t enc_dec, /* i : encoder or decoder flag */ + const int16_t nchan /* i : number of channels */ ); void getChannelEnergies( - Encoder_State **sts, /* i : Encoder state structure */ - float nrg[MCT_MAX_CHANNELS], /* o : energies */ - const int16_t nchan /* i : number of channels */ + Encoder_State **sts, /* i : Encoder state structure */ + float nrg[MCT_MAX_CHANNELS], /* o : energies */ + const int16_t nchan /* i : number of channels */ ); void mctStereoIGF_enc( - MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ - Encoder_State **sts, /* i/o: encoder state structure */ - float *orig_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i : MDCT spectrum for ITF */ - float powerSpec[MCT_MAX_CHANNELS][L_FRAME48k], /* i/o: MDCT^2 + MDST^2 spectrum,or estimate*/ - float *powerSpecMsInv[MCT_MAX_CHANNELS][NB_DIV], /* i : same as above but for inverse spect.*/ - float *inv_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i : inverse spectrum */ - const int16_t sp_aud_decision0[MCT_MAX_CHANNELS] /* i : speech audio decision */ + MCT_ENC_HANDLE hMCT, /* i/o: MCT encoder structure */ + Encoder_State **sts, /* i/o: encoder state structure */ + float *orig_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i : MDCT spectrum for ITF */ + float powerSpec[MCT_MAX_CHANNELS][L_FRAME48k], /* i/o: MDCT^2 + MDST^2 spectrum,or estimate */ + float *powerSpecMsInv[MCT_MAX_CHANNELS][NB_DIV], /* i : same as above but for inverse spect. */ + float *inv_spectrum[MCT_MAX_CHANNELS][NB_DIV], /* i : inverse spectrum */ + const int16_t sp_aud_decision0[MCT_MAX_CHANNELS] /* i : speech audio decision */ ); void ivas_mdct_dec_side_bits_frame_channel( - CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ - int16_t param_lpc[MCT_MAX_CHANNELS][NPRM_LPC_NEW], /* o : lpc_parameters */ - int16_t p_param[CPE_CHANNELS][NB_DIV], /* o : pointer to param buffer */ - Decoder_State *st0, /* i : pointer to bitstream handle */ - int16_t *LFE_off, /* o : flag if LFE has content */ - int16_t nTnsBitsTCX10[CPE_CHANNELS][NB_DIV], /* o : number of bits for TNS */ - int16_t param[CPE_CHANNELS][DEC_NPRM_DIV * NB_DIV], /* i/o: parameters buffer */ - const int16_t MCT_flag, /* i : MCT tool active(1) or deactive (0) */ - const int16_t odd_channel_cpe /* i : flag cpe with odd nb of tc channels */ + CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ + int16_t param_lpc[MCT_MAX_CHANNELS][NPRM_LPC_NEW], /* o : lpc_parameters */ + int16_t p_param[CPE_CHANNELS][NB_DIV], /* o : pointer to param buffer */ + Decoder_State *st0, /* i : pointer to bitstream handle */ + int16_t *LFE_off, /* o : flag if LFE has content */ + int16_t nTnsBitsTCX10[CPE_CHANNELS][NB_DIV], /* o : number of bits for TNS */ + int16_t param[CPE_CHANNELS][DEC_NPRM_DIV * NB_DIV], /* i/o: parameters buffer */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ + const int16_t odd_channel_cpe /* i : flag cpe with odd nb of tc channels */ ); void ivas_mct_side_bits( - MCT_DEC_HANDLE hMCT, /* i/o: MCT decoder structure */ - CPE_DEC_HANDLE hCPE[MCT_MAX_BLOCKS], /* i/o: CPE decoder structure */ - const int16_t nCPE, /* i : number of CPEs */ - Decoder_State *st0, /* i : decoder handle for Bstr */ - const int16_t bfi, /* i : BFI flag */ - uint16_t *bitstream, /* o : bitstream indices */ - const int32_t ivas_total_brate, /* i : IVAS total bitrate */ - const int16_t nb_bits_metadata /* i : number of metadata bits */ + MCT_DEC_HANDLE hMCT, /* i/o: MCT decoder structure */ + CPE_DEC_HANDLE hCPE[MCT_MAX_BLOCKS], /* i/o: CPE decoder structure */ + const int16_t nCPE, /* i : number of CPEs */ + Decoder_State *st0, /* i : decoder handle for Bstr */ + const int16_t bfi, /* i : BFI flag */ + uint16_t *bitstream, /* o : bitstream indices */ + const int32_t ivas_total_brate, /* i : IVAS total bitrate */ + const int16_t nb_bits_metadata /* i : number of metadata bits */ ); void ivas_mdct_core_invQ( - CPE_DEC_HANDLE hCPE, /* i/o: CPE handle */ - const int16_t LFE_off, /* i : flag if LFE content */ - int16_t nTnsBitsTCX10[CPE_CHANNELS][NB_DIV], /* i : number of TNS bits */ - int16_t p_param[CPE_CHANNELS][NB_DIV], /* i : pointer to param buffer */ - int16_t param_lpc[CPE_CHANNELS][NPRM_LPC_NEW], /* i : lpc parameters */ - int16_t param[CPE_CHANNELS][DEC_NPRM_DIV * NB_DIV], /* i : param buffer */ - int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : flag TNS enabled */ - STnsData tnsData[CPE_CHANNELS][NB_DIV], /* i : TNS parameter */ - float *x_0[CPE_CHANNELS][NB_DIV], /* i/o: signal buffer */ - float *x[CPE_CHANNELS][NB_DIV], /* i/o: signal buffer */ - float Aq[CPE_CHANNELS][( NB_SUBFR16k + 1 ) * ( M + 1 )], /* i : LP coefficients */ - int16_t ms_mask[NB_DIV][MAX_SFB], /* i : M/S mask */ - const int16_t isMCT /* i : MCT flag */ + CPE_DEC_HANDLE hCPE, /* i/o: CPE handle */ + const int16_t LFE_off, /* i : flag if LFE content */ + int16_t nTnsBitsTCX10[CPE_CHANNELS][NB_DIV], /* i : number of TNS bits */ + int16_t p_param[CPE_CHANNELS][NB_DIV], /* i : pointer to param buffer */ + int16_t param_lpc[CPE_CHANNELS][NPRM_LPC_NEW], /* i : lpc parameters */ + int16_t param[CPE_CHANNELS][DEC_NPRM_DIV * NB_DIV], /* i : param buffer */ + int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : flag TNS enabled */ + STnsData tnsData[CPE_CHANNELS][NB_DIV], /* i : TNS parameter */ + float *x_0[CPE_CHANNELS][NB_DIV], /* i/o: signal buffer */ + float *x[CPE_CHANNELS][NB_DIV], /* i/o: signal buffer */ + float Aq[CPE_CHANNELS][( NB_SUBFR16k + 1 ) * ( M + 1 )], /* i : LP coefficients */ + int16_t ms_mask[NB_DIV][MAX_SFB], /* i : M/S mask */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ); void ivas_mdct_core_reconstruct( - CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ - float *x[][NB_DIV], /* i/o: pointers to synthesis @internal_FS */ - float signal_outFB[CPE_CHANNELS][L_FRAME_PLUS], /* o : synthesis @output_FS */ - const int16_t LFE_off, /* i : flag if LFE content */ - int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : flage TNS enabled */ - const int16_t isMCT /* i : MCT flag */ + CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ + float *x[][NB_DIV], /* i/o: pointers to synthesis @internal_FS */ + float signal_outFB[CPE_CHANNELS][L_FRAME_PLUS], /* o : synthesis @output_FS */ + const int16_t LFE_off, /* i : flag if LFE content */ + int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : flage TNS enabled */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ); void ivas_mdct_core_tns_ns( - CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ - const int16_t LFE_off, /* i : flag if LFE has content */ - int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : two entries for each channel in TCX10*/ - STnsData tnsData[CPE_CHANNELS][NB_DIV], /* o : TNS parameter */ - float *x[CPE_CHANNELS][NB_DIV], /* o : synthesis @internal_FS */ - float Aq[CPE_CHANNELS][( NB_SUBFR16k + 1 ) * ( M + 1 )], /* o : LP coefficients */ - const int16_t isMCT /* i : MCT flag */ + CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ + const int16_t LFE_off, /* i : flag if LFE has content */ + int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : two entries for each channel in TCX10 */ + STnsData tnsData[CPE_CHANNELS][NB_DIV], /* o : TNS parameter */ + float *x[CPE_CHANNELS][NB_DIV], /* o : synthesis @internal_FS */ + float Aq[CPE_CHANNELS][( NB_SUBFR16k + 1 ) * ( M + 1 )], /* o : LP coefficients */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ); void ivas_mct_core_dec( diff --git a/lib_com/prot.h b/lib_com/prot.h index 5bc1e39753..9ea060effd 100755 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -6745,7 +6745,7 @@ float correlation_shift( void init_coder_ace_plus( Encoder_State *st, /* i : Encoder state handle */ const int32_t last_total_brate, /* i : last total bitrate */ - const int16_t is_mct /* i : MCT mode flag */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0)*/ ); void core_coder_reconfig( @@ -6756,7 +6756,7 @@ void core_coder_reconfig( void core_coder_mode_switch( Encoder_State *st, /* i/o: encoder state structure */ const int32_t last_total_brate, /* i : last bitrate */ - const int16_t is_mct /* i : MCT mode flag */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0)*/ ); void enc_acelp_tcx_main( @@ -6775,8 +6775,7 @@ void getTCXMode( Decoder_State *st, /* i/o: decoder memory state */ Decoder_State *st0 /* i : bitstream */ , - const int16_t MCT_flag -); + const int16_t MCT_flag ); void getTCXWindowing( const int16_t core, /* i : current frame mode */ @@ -7606,8 +7605,7 @@ void InitTnsConfigs( const int16_t igfStopFreq, const int32_t total_brate, const int16_t element_mode, - const int16_t is_mct /* i : MCT mode flag */ -); + const int16_t MCT_flag ); void SetAllowTnsOnWhite( STnsConfig tnsConfig[2][2], @@ -7884,13 +7882,12 @@ void decoder_tcx( ); void decoder_tcx_post( - Decoder_State *st, /* i/o: decoder memory state */ - float *synth, - float *synthFB, - float *A, - const int16_t bfi - , - const int16_t isMCT + Decoder_State *st, /* i/o: decoder memory state */ + float *synth, /* i/o: synthesis */ + float *synthFB, /* i/o: FB synthesis */ + float *A, /* i : A(z) filter coefficients */ + const int16_t bfi, /* i : Bad frame indicator */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ); void coder_acelp( @@ -7941,10 +7938,10 @@ void decoder_acelp( ); void writeTCXMode( - Encoder_State *st, /* i/o: encoder state structure */ - BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ - const int16_t is_mct, - int16_t *nbits_start /* o : nbits start */ + Encoder_State *st, /* i/o: encoder state structure */ + BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0)*/ + int16_t *nbits_start /* o : nbits start */ ); void writeTCXWindowing( @@ -8133,8 +8130,7 @@ void con_tcx( int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left /* i : TD-PLC only in left channel */ , - const float *A_cng -); + const float *A_cng ); /*! r: codebook index */ int16_t tcxlpc_get_cdk( @@ -8848,8 +8844,7 @@ void InitTnsConfiguration( const int16_t igfStopFreq, const int32_t total_brate, const int16_t element_mode, - const int16_t is_mct /* i : MCT mode flag */ -); + const int16_t MCT_flag ); int16_t DetectTnsFilt( const STnsConfig *pTnsConfig, /* i : TNS Configuration struct */ @@ -9183,13 +9178,13 @@ void longshiftleft( ); void open_decoder_LPD( - Decoder_State *st, /* i/o: decoder state structure */ - const int32_t total_brate, /* i : total bitrate */ - const int32_t last_total_brate, /* i : last total bitrate */ - const int16_t bwidth, /* i : audio bandwidth */ - const int16_t is_mct, /* i : MCT mode flag */ - const int16_t last_element_mode, - const int16_t is_init /* i : indicate call during initialization */ + Decoder_State *st, /* i/o: decoder state structure */ + const int32_t total_brate, /* i : total bitrate */ + const int32_t last_total_brate, /* i : last total bitrate */ + const int16_t bwidth, /* i : audio bandwidth */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ + const int16_t last_element_mode, /* i : last element mode */ + const int16_t is_init /* i : indicate call during initialization */ ); void acelp_plc_mdct_transition( @@ -9223,14 +9218,13 @@ void reconfig_decoder_LPD( ); void mode_switch_decoder_LPD( - Decoder_State *st, /* i/o: decoder state structure */ - const int16_t bwidth, /* i : audio bandwidth */ - const int32_t total_brate, /* i : total bitrate */ - const int32_t last_total_brate, /* i : last frame total bitrate */ - const int16_t frame_size_index, /* i : index determining the frame size*/ - const int16_t is_mct /* i : MCT mode flag */ - , - const int16_t last_element_mode /* i : last element mode */ + Decoder_State *st, /* i/o: decoder state structure */ + const int16_t bwidth, /* i : audio bandwidth */ + const int32_t total_brate, /* i : total bitrate */ + const int32_t last_total_brate, /* i : last frame total bitrate */ + const int16_t frame_size_index, /* i : index determining the frame size */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0)*/ + const int16_t last_element_mode /* i : last element mode */ ); void dec_acelp_tcx_frame( @@ -9510,10 +9504,8 @@ void TonalMDCTConceal_SaveFreqSignal( const float *mdctSpectrum, const uint16_t numSamples, const uint16_t nNewSamplesCore, - const float *scaleFactors - , - const int16_t infoIGFStartLine -); + const float *scaleFactors, + const int16_t infoIGFStartLine ); void TonalMDCTConceal_UpdateState( TonalMDCTConcealPtr hTonalMDCTConc, @@ -9658,9 +9650,9 @@ int16_t get_codec_mode( ); int16_t getTcxonly( - const int16_t element_mode, /* i : IVAS element mode */ - const int32_t total_brate, /* i : total bitrate */ - const int16_t is_mct /* i : MCT mode flag */ + const int16_t element_mode, /* i : IVAS element mode */ + const int32_t total_brate, /* i : total bitrate */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0)*/ ); int16_t getTnsAllowed( @@ -9740,7 +9732,7 @@ void SetModeIndex( Encoder_State *st, /* i : Encoder state */ const int32_t last_total_brate, /* i : last total bitrate */ const int16_t last_element_mode, /* i : last IVAS element mode */ - const int16_t is_mct /* i : MCT mode flag */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ); int16_t getNumTcxCodedLines( @@ -9964,6 +9956,7 @@ void IGFSCFDecoderDecode( if 0 on input the decoder will be forced to encode without a reset */ ); +/*! r: offset value */ int16_t tbe_celp_exc_offset( const int16_t T0, /* i : Integer pitch */ const int16_t T0_frac /* i : Fractional part of the pitch */ @@ -10006,6 +9999,6 @@ void init_tcx_cfg( const int16_t infoIGFStopFreq, const int16_t element_mode, const int16_t ini_frame, - const int16_t is_mct, /* i : MCT mode flag */ - const MCT_CHAN_MODE mct_chan_mode /* i : MCT channel mode */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ + const MCT_CHAN_MODE mct_chan_mode /* i : MCT channel mode */ ); diff --git a/lib_com/swb_tbe_com.c b/lib_com/swb_tbe_com.c index 4291feaed9..cc0c70cbbf 100644 --- a/lib_com/swb_tbe_com.c +++ b/lib_com/swb_tbe_com.c @@ -89,6 +89,7 @@ void swb_tbe_reset( return; } + /*-------------------------------------------------------------------* * swb_tbe_reset_synth() * @@ -105,11 +106,14 @@ void swb_tbe_reset_synth( return; } + /*-------------------------------------------------------------------* * tbe_celp_exc_offset() * * Compute tbe bwe celp excitation offset *-------------------------------------------------------------------*/ + +/*! r: offset value */ int16_t tbe_celp_exc_offset( const int16_t T0, /* i : Integer pitch */ const int16_t T0_frac /* i : Fractional part of the pitch */ @@ -120,6 +124,8 @@ int16_t tbe_celp_exc_offset( return offset; } + + /*-------------------------------------------------------------------* * flip_and_downmix_generic() * diff --git a/lib_com/tcx_utils.c b/lib_com/tcx_utils.c index 19e0220439..6e868add48 100644 --- a/lib_com/tcx_utils.c +++ b/lib_com/tcx_utils.c @@ -995,16 +995,16 @@ void InitTnsConfigs( const int16_t igfStopFreq, const int32_t total_brate, const int16_t element_mode, - const int16_t is_mct ) + const int16_t MCT_flag ) { if ( total_brate > ACELP_32k ) { - InitTnsConfiguration( bwidth, L_frame / 2, &tnsConfig[0][0], igfStopFreq, total_brate, element_mode, is_mct ); + InitTnsConfiguration( bwidth, L_frame / 2, &tnsConfig[0][0], igfStopFreq, total_brate, element_mode, MCT_flag ); } - InitTnsConfiguration( bwidth, L_frame, &tnsConfig[1][0], igfStopFreq, total_brate, element_mode, is_mct ); + InitTnsConfiguration( bwidth, L_frame, &tnsConfig[1][0], igfStopFreq, total_brate, element_mode, MCT_flag ); - InitTnsConfiguration( bwidth, L_frame + L_frame / 4, &tnsConfig[1][1], igfStopFreq, total_brate, element_mode, is_mct ); + InitTnsConfiguration( bwidth, L_frame + L_frame / 4, &tnsConfig[1][1], igfStopFreq, total_brate, element_mode, MCT_flag ); return; } diff --git a/lib_com/tns_base.c b/lib_com/tns_base.c index 1be0b73b0c..94b014b59b 100644 --- a/lib_com/tns_base.c +++ b/lib_com/tns_base.c @@ -78,7 +78,7 @@ void InitTnsConfiguration( const int16_t igfStopFreq, const int32_t total_brate, const int16_t element_mode, - const int16_t is_mct ) + const int16_t MCT_flag ) { int32_t nSampleRate; int16_t iFilter; @@ -111,8 +111,7 @@ void InitTnsConfiguration( } else if ( nSampleRate > 16000 ) { - - if ( ( element_mode > IVAS_SCE ) && ( total_brate >= ( is_mct ? IVAS_32k : IVAS_48k ) ) ) + if ( ( element_mode > IVAS_SCE ) && ( total_brate >= ( MCT_flag ? IVAS_32k : IVAS_48k ) ) ) { pTnsConfig->nMaxFilters = sizeof( tnsParameters32kHz_Stereo ) / sizeof( tnsParameters32kHz_Stereo[0] ); if ( nSampleRate == 100 * frameLength ) /* sub-frame length is <= 10 ms */ diff --git a/lib_dec/core_dec_init.c b/lib_dec/core_dec_init.c index 906d24adab..90827ca0ee 100644 --- a/lib_dec/core_dec_init.c +++ b/lib_dec/core_dec_init.c @@ -52,13 +52,13 @@ *-----------------------------------------------------------------------*/ void open_decoder_LPD( - Decoder_State *st, - const int32_t total_brate, - const int32_t last_total_brate, - const int16_t bwidth, - const int16_t is_mct, /* i : MCT mode flag */ - const int16_t last_element_mode, - const int16_t is_init /* i : indicate call from init_decoder() to avoid double TC initialization */ + Decoder_State *st, /* i/o: decoder state structure */ + const int32_t total_brate, /* i : total bitrate */ + const int32_t last_total_brate, /* i : last total bitrate */ + const int16_t bwidth, /* i : audio bandwidth */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ + const int16_t last_element_mode, /* i : last element mode */ + const int16_t is_init /* i : indicate call during initialization */ ) { int16_t i; @@ -92,7 +92,7 @@ void open_decoder_LPD( } } - st->tcxonly = getTcxonly( st->element_mode, total_brate, is_mct ); + st->tcxonly = getTcxonly( st->element_mode, total_brate, MCT_flag ); /* the TD TCX PLC in MODE1 still runs with 80ms subframes */ if ( ( st->element_mode == EVS_MONO && st->L_frame == L_FRAME16k && total_brate <= ACELP_32k ) || ( st->element_mode > EVS_MONO && st->L_frame == L_FRAME16k && total_brate <= MAX_ACELP_BRATE ) || ( st->tcxonly && ( st->sr_core == 32000 || st->sr_core == 16000 ) ) ) @@ -190,7 +190,7 @@ void open_decoder_LPD( { if ( !is_init || st->element_mode != IVAS_CPE_MDCT ) { - init_tcx_cfg( st->hTcxCfg, total_brate, st->sr_core, st->output_Fs, st->L_frame, st->bwidth, st->hTcxDec->L_frameTCX, st->fscale, encoderLookahead, encoderLookaheadFB, st->preemph_fac, st->tcxonly, st->rf_flag, st->igf, st->hIGFDec->infoIGFStopFreq, st->element_mode, st->ini_frame, is_mct, st->mct_chan_mode ); + init_tcx_cfg( st->hTcxCfg, total_brate, st->sr_core, st->output_Fs, st->L_frame, st->bwidth, st->hTcxDec->L_frameTCX, st->fscale, encoderLookahead, encoderLookaheadFB, st->preemph_fac, st->tcxonly, st->rf_flag, st->igf, st->hIGFDec->infoIGFStopFreq, st->element_mode, st->ini_frame, MCT_flag, st->mct_chan_mode ); } else { @@ -550,7 +550,7 @@ void open_decoder_LPD( { st->hTcxDec->prev_widow_left_rect = 0; - if ( is_init || is_mct || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) + if ( is_init || MCT_flag || !( st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV; st->hTcxDec->NoiseLevelIndex_bfi = PLC_MIN_STAT_BUFF_SIZE - 1; diff --git a/lib_dec/core_dec_switch.c b/lib_dec/core_dec_switch.c index cc1619cba0..7b28143666 100644 --- a/lib_dec/core_dec_switch.c +++ b/lib_dec/core_dec_switch.c @@ -51,14 +51,14 @@ *-------------------------------------------------------------*/ void mode_switch_decoder_LPD( - Decoder_State *st, /* i/o: decoder state structure */ - const int16_t bwidth, /* i : audio bandwidth */ - const int32_t total_brate, /* i : total bitrate */ - const int32_t last_total_brate, /* i : last frame total bitrate */ - const int16_t frame_size_index, /* i : index determining the frame size*/ - const int16_t is_mct /* i : MCT mode flag */ + Decoder_State *st, /* i/o: decoder state structure */ + const int16_t bwidth, /* i : audio bandwidth */ + const int32_t total_brate, /* i : total bitrate */ + const int32_t last_total_brate, /* i : last frame total bitrate */ + const int16_t frame_size_index, /* i : index determining the frame size */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0)*/ , - const int16_t last_element_mode /* i : last element mode */ + const int16_t last_element_mode /* i : last element mode */ ) { int16_t fscale, switchWB; @@ -107,7 +107,7 @@ void mode_switch_decoder_LPD( if ( fscale != st->fscale || switchWB || bSwitchFromAmrwbIO || st->last_codec_mode == MODE1 || st->force_lpd_reset ) { - open_decoder_LPD( st, total_brate, last_total_brate, bwidth, is_mct, last_element_mode, 0 ); + open_decoder_LPD( st, total_brate, last_total_brate, bwidth, MCT_flag, last_element_mode, 0 ); } else { @@ -146,7 +146,7 @@ void mode_switch_decoder_LPD( if ( st->hTcxCfg->fIsTNSAllowed && st->hIGFDec != NULL && st->hTcxCfg != NULL ) { - InitTnsConfigs( bwidth, st->hTcxCfg->tcx_coded_lines, st->hTcxCfg->tnsConfig, st->hIGFDec->infoIGFStopFreq, total_brate, st->element_mode, is_mct ); + InitTnsConfigs( bwidth, st->hTcxCfg->tcx_coded_lines, st->hTcxCfg->tnsConfig, st->hIGFDec->infoIGFStopFreq, total_brate, st->element_mode, MCT_flag ); SetAllowTnsOnWhite( st->hTcxCfg->tnsConfig, st->element_mode == IVAS_CPE_MDCT ); } diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index d625139a47..4f9b0c3a28 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -120,13 +120,12 @@ void decoder_tcx( *-------------------------------------------------------------------*/ void decoder_tcx_post( - Decoder_State *st, - float *synth, - float *synthFB, - float *A, - const int16_t bfi - , - const int16_t isMCT + Decoder_State *st, /* i/o: decoder memory state */ + float *synth, /* i/o: synthesis */ + float *synthFB, /* i/o: FB synthesis */ + float *A, /* i : A(z) filter coefficients */ + const int16_t bfi, /* i : Bad frame indicator */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ) { int16_t i; @@ -178,7 +177,7 @@ void decoder_tcx_post( /* PLC: [TCX: Fade-out] * PLC: update or retrieve the background level */ - if ( bfi == 0 && st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) && st->clas_dec == UNVOICED_CLAS ) + if ( bfi == 0 && st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || MCT_flag ) && st->clas_dec == UNVOICED_CLAS ) { minimumStatistics( hTcxDec->NoiseLevelMemory_bfi, &hTcxDec->NoiseLevelIndex_bfi, &hTcxDec->CurrLevelIndex_bfi, &hTcxDec->CngLevelBackgroundTrace_bfi, &hTcxDec->LastFrameLevel_bfi, level_syn, PLC_MIN_CNG_LEV, PLC_MIN_STAT_BUFF_SIZE ); } @@ -193,7 +192,7 @@ void decoder_tcx_post( { gainCNG = hTcxDec->CngLevelBackgroundTrace_bfi / ( level_syn + 0.01f ); - if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) + if ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) { if ( st->nbLostCmpt > MDCT_ST_PLC_FADEOUT_MAX_CONC_FRAME + MDCT_ST_PLC_FADEOUT_TO_ZERO_LEN ) { @@ -1078,7 +1077,7 @@ void decoder_tcx_noisefilling( const int16_t *prm_sqQ, int16_t nf_seed, const int16_t bfi, /* i : Bad frame indicator */ - const int16_t isMCT, + const int16_t MCT_flag, const int16_t frame_cnt /* i : frame counter in the super frame*/ ) { @@ -1223,7 +1222,7 @@ void decoder_tcx_noisefilling( { /* set f to 1 to not fade out */ /* set f to 0 to immediately switch to white noise */ - if ( st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || isMCT ) ) + if ( st->tcxonly && ( st->element_mode != IVAS_CPE_MDCT || MCT_flag ) ) { f = 1.0f; } @@ -1262,7 +1261,7 @@ void decoder_tcx_noisefilling( noiseTiltFactor = 1.0f; tcxGetNoiseFillingTilt( A, L_frame, ( total_brate >= ACELP_13k20 && !st->rf_flag ), &noiseTiltFactor ); - if ( st->element_mode == IVAS_CPE_MDCT && !isMCT ) + if ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) { TonalMDCTConceal_InsertNoise( st->hTonalMDCTConc, x, st->tonal_mdct_plc_active, &st->seed_tcx_plc, noiseTiltFactor, f, concealment_noise, hTcxDec->CngLevelBackgroundTrace_bfi, infoIGFStartLine ); } @@ -1905,15 +1904,15 @@ void decoder_tcx_IGF_mono( *-------------------------------------------------------------------*/ void decoder_tcx_IGF_stereo( - Decoder_State **sts, /* i/o: coder memory states */ - STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct, /* i/o: MDCT stereo structure */ - int16_t ms_mask[NB_DIV][MAX_SFB], /* i : bandwise MS mask */ - float *x[CPE_CHANNELS][NB_DIV], /* o : de-quatized coefficients */ - const int16_t L_frame, /* i : frame length */ - const int16_t left_rect, /* i : left part is rectangular */ - const int16_t k, /* i : Subframe index */ - const int16_t bfi, /* i : bad frame indicator */ - const int16_t is_mct /* i : flag to signal MCT or SMDCT */ + Decoder_State **sts, /* i/o: coder memory states */ + STEREO_MDCT_DEC_DATA_HANDLE hStereoMdct, /* i/o: MDCT stereo structure */ + int16_t ms_mask[NB_DIV][MAX_SFB], /* i : bandwise MS mask */ + float *x[CPE_CHANNELS][NB_DIV], /* o : de-quatized coefficients */ + const int16_t L_frame, /* i : frame length */ + const int16_t left_rect, /* i : left part is rectangular */ + const int16_t k, /* i : Subframe index */ + const int16_t bfi, /* i : bad frame indicator */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ) { int16_t coreMsMask[N_MAX]; @@ -1966,7 +1965,7 @@ void decoder_tcx_IGF_stereo( igfGridIdx = ( sts[0]->last_core == ACELP_CORE || ( left_rect && bfi ) ) ? IGF_GRID_LB_TRAN : IGF_GRID_LB_NORM; } - IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, is_mct ); + IGFDecApplyStereo( sts[0]->hIGFDec, sts[1]->hIGFDec, x[0][k], x[1][k], igfGridIdx, coreMsMask, hStereoMdct->IGFStereoMode[k] == SMDCT_BW_MS, bfi, MCT_flag ); } return; diff --git a/lib_dec/ivas_mct_dec_mct.c b/lib_dec/ivas_mct_dec_mct.c index b46320cbcd..2dd7b18d52 100644 --- a/lib_dec/ivas_mct_dec_mct.c +++ b/lib_dec/ivas_mct_dec_mct.c @@ -286,7 +286,7 @@ void mctStereoIGF_dec( /* stereo IGF decoding */ assert( ( sts[0]->core == sts[1]->core ) || ( hMCT->hBlockData[b]->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); - decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi, 1 /* <- is_mct */ ); + decoder_tcx_IGF_stereo( sts, hMCT->hBlockData[b]->hStereoMdct, hMCT->hBlockData[b]->mask, p_x, L_frame[0], left_rect[0], k, bfi, 1 /* MCT_flag */ ); } else { diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index 14de87546d..7fe27c4cd9 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -301,7 +301,7 @@ void ivas_mdct_dec_side_bits_frame_channel( int16_t *LFE_off, /* o : flag if LFE has content */ int16_t nTnsBitsTCX10[CPE_CHANNELS][NB_DIV], /* o : number of bits for TNS */ int16_t param[CPE_CHANNELS][DEC_NPRM_DIV * NB_DIV], /* i/o: parameters buffer */ - const int16_t MCT_flag, /* i : MCT tool active(1) or deactive(0) */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0)*/ const int16_t odd_channel_cpe /* i : flag cpe with odd nb of tc channels */ ) { @@ -433,19 +433,19 @@ void ivas_mdct_dec_side_bits_frame_channel( *-----------------------------------------------------------------*/ void ivas_mdct_core_invQ( - CPE_DEC_HANDLE hCPE, /* i/o: CPE handle */ - const int16_t LFE_off, /* i : flag if LFE content */ - int16_t nTnsBitsTCX10[CPE_CHANNELS][NB_DIV], /* i : number of TNS bits */ - int16_t p_param[CPE_CHANNELS][NB_DIV], /* i : pointer to param buffer */ - int16_t param_lpc[CPE_CHANNELS][NPRM_LPC_NEW], /* i : lpc parameters */ - int16_t param[CPE_CHANNELS][DEC_NPRM_DIV * NB_DIV], /* i : param buffer */ - int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : flag TNS enabled */ - STnsData tnsData[CPE_CHANNELS][NB_DIV], /* i : TNS parameter */ - float *x_0[CPE_CHANNELS][NB_DIV], /* i/o: signal buffer */ - float *x[CPE_CHANNELS][NB_DIV], /* i/o: signal buffer */ - float Aq[CPE_CHANNELS][( NB_SUBFR16k + 1 ) * ( M + 1 )], /* i : LP coefficients */ - int16_t ms_mask[NB_DIV][MAX_SFB], /* i : M/S mask */ - const int16_t isMCT /* i : MCT flag */ + CPE_DEC_HANDLE hCPE, /* i/o: CPE handle */ + const int16_t LFE_off, /* i : flag if LFE content */ + int16_t nTnsBitsTCX10[CPE_CHANNELS][NB_DIV], /* i : number of TNS bits */ + int16_t p_param[CPE_CHANNELS][NB_DIV], /* i : pointer to param buffer */ + int16_t param_lpc[CPE_CHANNELS][NPRM_LPC_NEW], /* i : lpc parameters */ + int16_t param[CPE_CHANNELS][DEC_NPRM_DIV * NB_DIV], /* i : param buffer */ + int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : flag TNS enabled */ + STnsData tnsData[CPE_CHANNELS][NB_DIV], /* i : TNS parameter */ + float *x_0[CPE_CHANNELS][NB_DIV], /* i/o: signal buffer */ + float *x[CPE_CHANNELS][NB_DIV], /* i/o: signal buffer */ + float Aq[CPE_CHANNELS][( NB_SUBFR16k + 1 ) * ( M + 1 )], /* i : LP coefficients */ + int16_t ms_mask[NB_DIV][MAX_SFB], /* i : M/S mask */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ) { int16_t ch, bfi, k; @@ -491,7 +491,7 @@ void ivas_mdct_core_invQ( } /* temporarily restore LR representation of previous frame for PLC mode decision (done on the individual channels) */ - if ( bfi && !isMCT && ( hCPE->hStereoMdct->mdct_stereo_mode[0] > SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[1] > SMDCT_DUAL_MONO ) ) + if ( bfi && !MCT_flag && ( hCPE->hStereoMdct->mdct_stereo_mode[0] > SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[1] > SMDCT_DUAL_MONO ) ) { L_frameTCX[0] = sts[0]->L_frameTCX_past; #ifdef FIX_TCX10_STEREO_PROC @@ -613,7 +613,7 @@ void ivas_mdct_core_invQ( } } - if ( bfi && !isMCT && ( hCPE->hStereoMdct->mdct_stereo_mode[0] > SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[1] > SMDCT_DUAL_MONO ) ) + if ( bfi && !MCT_flag && ( hCPE->hStereoMdct->mdct_stereo_mode[0] > SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[1] > SMDCT_DUAL_MONO ) ) { /* avoid using TD-PLC in only one channel when stereo mode isn't dual mono */ if ( sts[0]->core != sts[1]->core && ( sts[0]->core == ACELP_CORE || sts[1]->core == ACELP_CORE ) ) @@ -722,11 +722,11 @@ void ivas_mdct_core_invQ( mvr2r( x[ch][k], x_0[ch][k], L_frameTCX[ch] ); - if ( bfi && !isMCT ) + if ( bfi && !MCT_flag ) { TonalMdctConceal_create_concealment_noise( concealment_noise[ch], hCPE, L_frameTCX[ch], L_frame[ch], ch, k, st->core, st->hTcxDec->cummulative_damping_tcx, noise_gen_mode_bfi ); } - decoder_tcx_noisefilling( st, concealment_noise[ch], Aq[ch], L_frameTCX_global[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, isMCT, k ); + decoder_tcx_noisefilling( st, concealment_noise[ch], Aq[ch], L_frameTCX_global[ch], L_spec[ch], L_frame[ch], L_frameTCX[ch], x[ch][k], NULL, &tmp_concealment_method, gain_tcx, prm_sqQ, nf_seed, bfi, MCT_flag, k ); decoder_tcx_noiseshaping_igf( st, L_spec[ch], L_frame[ch], L_frameTCX[ch], left_rect[ch], x[ch][k], NULL, &tmp_concealment_method, bfi ); @@ -752,12 +752,12 @@ void ivas_mdct_core_invQ( *-----------------------------------------------------------------*/ void ivas_mdct_core_reconstruct( - CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ - float *x[][NB_DIV], /* i/o: synthesis @internal_FS */ - float signal_outFB[CPE_CHANNELS][L_FRAME_PLUS], /* o : synthesis @output_FS */ - const int16_t LFE_off, /* i : flag if LFE content */ - int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : flage TNS enabled */ - const int16_t isMCT /* i : MCT flag */ + CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ + float *x[][NB_DIV], /* i/o: synthesis @internal_FS */ + float signal_outFB[CPE_CHANNELS][L_FRAME_PLUS], /* o : synthesis @output_FS */ + const int16_t LFE_off, /* i : flag if LFE content */ + int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : flage TNS enabled */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0)*/ ) { int16_t ch, k, bfi; @@ -843,13 +843,13 @@ void ivas_mdct_core_reconstruct( TonalMDCTConceal_SaveTimeSignal( st->hTonalMDCTConc, synthFB, L_frameTCX[ch] ); } - decoder_tcx_post( st, synth, synthFB, NULL, bfi, isMCT ); + decoder_tcx_post( st, synth, synthFB, NULL, bfi, MCT_flag ); } else /*ACELP core for ACELP-PLC */ { assert( st->bfi == 1 ); /* PLC: [TCX: TD PLC] */ - if ( isMCT ) + if ( MCT_flag ) { con_tcx( st, &synthFB[0], -1.f, NULL, 0, NULL ); } @@ -946,7 +946,7 @@ void ivas_mdct_core_reconstruct( } /* calculate coherence of signal needed when next frame is lost */ - if ( !bfi && !isMCT && hCPE->element_mode == IVAS_CPE_MDCT ) + if ( !bfi && !MCT_flag && hCPE->element_mode == IVAS_CPE_MDCT ) { int16_t i; @@ -976,13 +976,13 @@ void ivas_mdct_core_reconstruct( *-----------------------------------------------------------------*/ void ivas_mdct_core_tns_ns( - CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ - const int16_t LFE_off, /* i : flag if LFE has content */ - int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : two entries for each channel in TCX10 */ - STnsData tnsData[CPE_CHANNELS][NB_DIV], /* o : TNS parameter */ - float *x[CPE_CHANNELS][NB_DIV], /* o : synthesis @internal_FS */ - float Aq[CPE_CHANNELS][( NB_SUBFR16k + 1 ) * ( M + 1 )], /* o : LP coefficients */ - const int16_t isMCT /* i : MCT flag */ + CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */ + const int16_t LFE_off, /* i : flag if LFE has content */ + int16_t fUseTns[CPE_CHANNELS][NB_DIV], /* i : two entries for each channel in TCX10 */ + STnsData tnsData[CPE_CHANNELS][NB_DIV], /* o : TNS parameter */ + float *x[CPE_CHANNELS][NB_DIV], /* o : synthesis @internal_FS */ + float Aq[CPE_CHANNELS][( NB_SUBFR16k + 1 ) * ( M + 1 )], /* o : LP coefficients */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ) { int16_t ch, k, bfi; @@ -1034,7 +1034,7 @@ void ivas_mdct_core_tns_ns( { sns_interpolate_scalefactors( &sns_int_scf[0], &Aq[ch][k * M], DEC ); - if ( isMCT && st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) + if ( MCT_flag && st->hTonalMDCTConc != NULL && ( ( k + 1 ) == nSubframes[ch] ) ) { TonalMDCTConceal_SaveFreqSignal( st->hTonalMDCTConc, x[ch][k], L_frameTCX[ch], L_frame[ch], &sns_int_scf[0], get_igf_startline( st, L_frame[ch], L_frameTCX[ch] ) ); } @@ -1043,7 +1043,7 @@ void ivas_mdct_core_tns_ns( { if ( st->hTonalMDCTConc != NULL ) { - if ( !isMCT && st->hTcxDec->cummulative_damping_tcx != 1.f ) + if ( !MCT_flag && st->hTcxDec->cummulative_damping_tcx != 1.f ) { float *scf_last, *scf_bg; float fade_in, fade_out; @@ -1084,7 +1084,7 @@ void ivas_mdct_core_tns_ns( TonalMDCTConceal_Apply( st->hTonalMDCTConc, x[ch][0], st->hTcxCfg->psychParamsCurrent ); } - if ( ( bfi || isMCT ) && st->hTonalMDCTConc != NULL ) + if ( ( bfi || MCT_flag ) && st->hTonalMDCTConc != NULL ) { TonalMDCTConceal_UpdateState( st->hTonalMDCTConc, L_frameTCX[ch], ( st->hTcxDec->tcxltp_last_gain_unmodified > 0 ) ? st->old_fpitch : 0, bfi, bfi && st->tonal_mdct_plc_active ); } diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index 141858ccf8..82ad3fc95b 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -292,7 +292,7 @@ void stereo_mdct_core_dec( assert( ( sts[0]->core == sts[1]->core ) || ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) ); /* stereo IGF decoding */ - decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi, 0 /* <- is_mct */ ); + decoder_tcx_IGF_stereo( sts, hCPE->hStereoMdct, ms_mask, x, L_frame[0], left_rect[0], k, bfi, 0 /* MCT_flag */ ); } else { diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 9420be9eb9..41196b6b02 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -61,9 +61,9 @@ static void dec_prm_tcx( Decoder_State *st, int16_t param[], int16_t param_lpc[] *-------------------------------------------------------------*/ void stereo_tcx_init_dec( - Decoder_State *st, /* i/o: decoder state structure */ - const int16_t is_mct, /* i : MCT mode flag */ - const int16_t last_element_mode /* i : element mode of previous frame */ + Decoder_State *st, /* i/o: decoder state structure */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0)*/ + const int16_t last_element_mode /* i : element mode of previous frame */ ) { int16_t frame_size_index; @@ -103,7 +103,7 @@ void stereo_tcx_init_dec( if ( st->element_mode == IVAS_SCE ) { - st->tcxonly = getTcxonly( st->element_mode, st->bits_frame_nominal * FRAMES_PER_SEC, is_mct ); + st->tcxonly = getTcxonly( st->element_mode, st->bits_frame_nominal * FRAMES_PER_SEC, MCT_flag ); /* LPC quantization */ if ( st->sr_core <= INT_FS_16k && st->tcxonly == 0 ) @@ -150,7 +150,7 @@ void stereo_tcx_init_dec( } /* Reconfigure Core */ - mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, is_mct, last_element_mode ); + mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, MCT_flag, last_element_mode ); } return; diff --git a/lib_enc/cod_tcx.c b/lib_enc/cod_tcx.c index 2ac9ca9aca..f60ac1a314 100644 --- a/lib_enc/cod_tcx.c +++ b/lib_enc/cod_tcx.c @@ -943,7 +943,7 @@ void EstimateStereoTCXNoiseLevel( const int16_t ignore_chan[], /* i : flag indicating whether the channel should be ignored */ float fac_ns[][NB_DIV], /* o : noise filling level */ int16_t param_core[][NB_DIV * NPRM_DIV], /* o : quantized noise filling level */ - const int16_t is_mct /* i : is mct flag */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ) { int16_t ch, n; @@ -964,7 +964,7 @@ void EstimateStereoTCXNoiseLevel( { continue; } - total_brate = ( st->element_mode == IVAS_CPE_MDCT && !is_mct ) ? st->element_brate : st->total_brate; + total_brate = ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) ? st->element_brate : st->total_brate; for ( n = 0; n < nSubframes; n++ ) { diff --git a/lib_enc/core_enc_init.c b/lib_enc/core_enc_init.c index 333700164a..009185cc88 100644 --- a/lib_enc/core_enc_init.c +++ b/lib_enc/core_enc_init.c @@ -49,7 +49,7 @@ * Local function prototypes *-----------------------------------------------------------------------*/ -static void init_tcx( Encoder_State *st, const int16_t L_frame_old, const int32_t total_brate, const int32_t last_total_brate, const int16_t is_mct ); +static void init_tcx( Encoder_State *st, const int16_t L_frame_old, const int32_t total_brate, const int32_t last_total_brate, const int16_t MCT_flag ); static void init_sig_buffers( Encoder_State *st, const int16_t L_frame_old, const int16_t L_subfr, const int32_t total_brate, const int32_t last_total_brate ); static void init_core_sig_ana( Encoder_State *st ); static void init_acelp( Encoder_State *st, const int16_t L_frame_old, const int32_t total_brate, const int32_t last_total_brate ); @@ -62,16 +62,17 @@ static void init_modes( Encoder_State *st, const int32_t last_total_brate ); *-----------------------------------------------------------------------*/ void init_coder_ace_plus( - Encoder_State *st, - const int32_t last_total_brate, - const int16_t is_mct ) + Encoder_State *st, /* i : Encoder state */ + const int32_t last_total_brate, /* i : last total bitrate */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ +) { TCX_ENC_HANDLE hTcxEnc = st->hTcxEnc; int16_t L_frame_old; /*keep old frame size for switching */ int16_t L_subfr; /* Bitrate */ - st->tcxonly = getTcxonly( st->element_mode, st->total_brate, is_mct ); + st->tcxonly = getTcxonly( st->element_mode, st->total_brate, MCT_flag ); /* Core Sampling Rate */ st->sr_core = getCoreSamplerateMode2( st->element_mode, st->total_brate, st->bwidth, st->flag_ACELP16k, st->rf_mode ); @@ -167,7 +168,7 @@ void init_coder_ace_plus( /* Initialize TCX */ if ( hTcxEnc != NULL ) { - init_tcx( st, L_frame_old, st->total_brate, last_total_brate, is_mct ); + init_tcx( st, L_frame_old, st->total_brate, last_total_brate, MCT_flag ); } /* Initialize Signal Buffers */ @@ -252,7 +253,7 @@ static void init_tcx( const int16_t L_frame_old, const int32_t total_brate, const int32_t last_total_brate, - const int16_t is_mct ) + const int16_t MCT_flag ) { TCX_ENC_HANDLE hTcxEnc = st->hTcxEnc; @@ -260,7 +261,7 @@ static void init_tcx( hTcxEnc->spectrum[0] = hTcxEnc->spectrum_long; hTcxEnc->spectrum[1] = hTcxEnc->spectrum_long + N_TCX10_MAX; - init_tcx_cfg( st->hTcxCfg, total_brate, st->sr_core, st->input_Fs, st->L_frame, st->bwidth, hTcxEnc->L_frameTCX, st->fscale, st->encoderLookahead_enc, st->encoderLookahead_FB, st->preemph_fac, st->tcxonly, st->rf_mode, st->igf, st->hIGFEnc != NULL ? st->hIGFEnc->infoStopFrequency : 0, st->element_mode, st->ini_frame, is_mct, st->mct_chan_mode ); + init_tcx_cfg( st->hTcxCfg, total_brate, st->sr_core, st->input_Fs, st->L_frame, st->bwidth, hTcxEnc->L_frameTCX, st->fscale, st->encoderLookahead_enc, st->encoderLookahead_FB, st->preemph_fac, st->tcxonly, st->rf_mode, st->igf, st->hIGFEnc != NULL ? st->hIGFEnc->infoStopFrequency : 0, st->element_mode, st->ini_frame, MCT_flag, st->mct_chan_mode ); /* Init TCX target bits correction factor */ hTcxEnc->tcx_target_bits_fac = 1.0f; diff --git a/lib_enc/core_enc_switch.c b/lib_enc/core_enc_switch.c index ca92135736..f96d0eed57 100644 --- a/lib_enc/core_enc_switch.c +++ b/lib_enc/core_enc_switch.c @@ -50,9 +50,10 @@ *-------------------------------------------------------------------*/ void core_coder_mode_switch( - Encoder_State *st, - const int32_t last_total_brate, - const int16_t is_mct ) + Encoder_State *st, /* i/o: encoder state structure */ + const int32_t last_total_brate, /* i : last bitrate */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0)*/ +) { TCX_ENC_HANDLE hTcxEnc = st->hTcxEnc; int16_t i, fscale, switchWB; @@ -78,7 +79,7 @@ void core_coder_mode_switch( switchWB = 1; /*force init when coming from MODE1*/ } - tcxonly_tmp = getTcxonly( st->element_mode, st->total_brate, is_mct ); + tcxonly_tmp = getTcxonly( st->element_mode, st->total_brate, MCT_flag ); if ( tcxonly_tmp != st->tcxonly ) { @@ -90,7 +91,7 @@ void core_coder_mode_switch( st->sr_core = sr_core; st->L_frame = (int16_t) ( sr_core / FRAMES_PER_SEC ); - st->tcxonly = getTcxonly( st->element_mode, st->total_brate, is_mct ); + st->tcxonly = getTcxonly( st->element_mode, st->total_brate, MCT_flag ); st->bits_frame_nominal = (int16_t) ( (float) st->L_frame / (float) st->fscale * (float) FSCALE_DENOM / 128.0f * (float) st->total_brate / 100.0f + 0.49f ); @@ -115,7 +116,7 @@ void core_coder_mode_switch( if ( st->hTcxCfg->fIsTNSAllowed ) { - InitTnsConfigs( st->bwidth, st->hTcxCfg->tcx_coded_lines, st->hTcxCfg->tnsConfig, st->hIGFEnc->infoStopFrequency, st->total_brate, st->element_mode, is_mct ); + InitTnsConfigs( st->bwidth, st->hTcxCfg->tcx_coded_lines, st->hTcxCfg->tnsConfig, st->hIGFEnc->infoStopFrequency, st->total_brate, st->element_mode, MCT_flag ); SetAllowTnsOnWhite( st->hTcxCfg->tnsConfig, st->element_mode == IVAS_CPE_MDCT ); } @@ -151,7 +152,7 @@ void core_coder_mode_switch( else { st->igf = getIgfPresent( st->element_mode, st->total_brate, st->bwidth, st->rf_mode, st->mct_chan_mode ); - init_coder_ace_plus( st, last_total_brate, is_mct ); + init_coder_ace_plus( st, last_total_brate, MCT_flag ); } if ( st->igf && st->hBWE_TD != NULL ) diff --git a/lib_enc/enc_prm.c b/lib_enc/enc_prm.c index a68f95aff6..cd606af8fb 100644 --- a/lib_enc/enc_prm.c +++ b/lib_enc/enc_prm.c @@ -53,10 +53,10 @@ *--------------------------------------------------------------------*/ void writeTCXMode( - Encoder_State *st, /* i/o: encoder state structure */ - BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ - const int16_t is_mct, - int16_t *nbits_start /* o : nbits start */ + Encoder_State *st, /* i/o: encoder state structure */ + BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ + int16_t *nbits_start /* o : nbits start */ ) { uint16_t index; @@ -86,7 +86,7 @@ void writeTCXMode( push_next_indice( hBstr, index, 2 ); - if ( st->element_mode == IVAS_CPE_MDCT && !is_mct ) + if ( st->element_mode == IVAS_CPE_MDCT && !MCT_flag ) { push_next_indice( hBstr, st->vad_flag, 1 ); } @@ -788,7 +788,7 @@ void enc_prm( /* EVS header */ /* Modes (ACE_GC, ACE_UC, TCX20, TCX10...) */ - writeTCXMode( st, st->hBstr, 0, /* <- is_mct */ &nbits_start ); + writeTCXMode( st, st->hBstr, 0 /* MCT_flag */, &nbits_start ); /* write last_core for error concealment */ if ( !( core == ACELP_CORE && st->hTcxCfg->lfacNext <= 0 ) ) diff --git a/lib_enc/ivas_core_enc.c b/lib_enc/ivas_core_enc.c index 3f9cb84b51..597f1d5854 100644 --- a/lib_enc/ivas_core_enc.c +++ b/lib_enc/ivas_core_enc.c @@ -86,7 +86,7 @@ ivas_error ivas_core_enc( ) { int16_t n, input_frame; - int16_t cpe_id, is_MCT; + int16_t cpe_id, MCT_flag; Encoder_State **sts, *st; STEREO_ICBWE_ENC_HANDLE hStereoICBWE; STEREO_TD_ENC_DATA_HANDLE hStereoTD; @@ -122,7 +122,7 @@ ivas_error ivas_core_enc( if ( hSCE != NULL ) { cpe_id = -1; - is_MCT = 0; + MCT_flag = 0; sts = hSCE->hCoreCoder; hStereoTD = NULL; hStereoICBWE = NULL; @@ -136,10 +136,10 @@ ivas_error ivas_core_enc( else { cpe_id = hCPE->cpe_id; - is_MCT = 0; + MCT_flag = 0; if ( hMCT != NULL ) { - is_MCT = 1; + MCT_flag = 1; } sts = hCPE->hCoreCoder; hStereoICBWE = hCPE->hStereoICBWE; @@ -188,9 +188,9 @@ ivas_error ivas_core_enc( *---------------------------------------------------------------------*/ #ifdef CORECODER_BITRATE_SWITCHING - if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, ivas_format == SBA_FORMAT ? last_element_brate : element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], is_MCT, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) + if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, ivas_format == SBA_FORMAT ? last_element_brate : element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], MCT_flag, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) #else - if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], is_MCT, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) + if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], MCT_flag, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) #endif { return error; @@ -214,9 +214,9 @@ ivas_error ivas_core_enc( * Write signaling info into the bitstream *---------------------------------------------------------------------*/ - if ( !is_MCT || ( is_MCT && cpe_id == 0 ) ) + if ( !MCT_flag || ( MCT_flag && cpe_id == 0 ) ) { - ivas_signaling_enc( st, is_MCT, element_brate, tdm_SM_or_LRTD_Pri, tdm_Pitch_reuse_flag ); + ivas_signaling_enc( st, MCT_flag, element_brate, tdm_SM_or_LRTD_Pri, tdm_Pitch_reuse_flag ); } /*---------------------------------------------------------------------* @@ -271,7 +271,7 @@ ivas_error ivas_core_enc( { if ( sts[0]->core_brate > SID_2k40 && sts[1]->core_brate > SID_2k40 ) { - if ( is_MCT ) + if ( MCT_flag ) { ivas_mdct_core_whitening_enc( hCPE, old_inp_16k, old_wsp, pitch_buf, hMCT->p_mdst_spectrum_long[cpe_id], hMCT->tnsBits[cpe_id], hMCT->p_orig_spectrum_long[cpe_id], hMCT->tnsSize[cpe_id], hMCT->p_param[cpe_id], hMCT->hBstr, &hMCT->LFE_off, 1, hMCT->nchan_out_woLFE + hMCT->num_lfe ); diff --git a/lib_enc/ivas_core_pre_proc.c b/lib_enc/ivas_core_pre_proc.c index ded3df2235..3cc206e65e 100644 --- a/lib_enc/ivas_core_pre_proc.c +++ b/lib_enc/ivas_core_pre_proc.c @@ -76,7 +76,7 @@ ivas_error pre_proc_ivas( const int16_t vad_flag_dtx, /* i : HE-SAD flag with additional DTX HO */ const float enerBuffer[CLDFB_NO_CHANNELS_MAX], /* i : energy buffer */ const float fft_buff[2 * L_FFT], /* i : FFT buffer */ - const int16_t is_mct, /* i : MCT mode flag */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ const int16_t vad_hover_flag, /* i : VAD hangover flag */ const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ ) @@ -237,7 +237,7 @@ ivas_error pre_proc_ivas( /* Configure TCX with the same bitrate as given when (re-)initializing TCX */ total_brate_tmp = st->total_brate; st->total_brate = st->bits_frame_nominal * FRAMES_PER_SEC; - SetModeIndex( st, st->last_bits_frame_nominal * FRAMES_PER_SEC, last_element_mode, is_mct ); + SetModeIndex( st, st->last_bits_frame_nominal * FRAMES_PER_SEC, last_element_mode, MCT_flag ); st->sr_core = getCoreSamplerateMode2( element_mode, st->total_brate, st->bwidth, st->flag_ACELP16k, st->rf_mode ); st->total_brate = total_brate_tmp; @@ -281,7 +281,7 @@ ivas_error pre_proc_ivas( #ifdef CORECODER_BITRATE_SWITCHING else if ( element_brate != last_element_brate ) { - SetModeIndex( st, st->bits_frame_nominal * FRAMES_PER_SEC, element_mode, is_mct ); + SetModeIndex( st, st->bits_frame_nominal * FRAMES_PER_SEC, element_mode, MCT_flag ); } #endif diff --git a/lib_enc/ivas_decision_matrix_enc.c b/lib_enc/ivas_decision_matrix_enc.c index 49bb62e469..de6fe8dc96 100644 --- a/lib_enc/ivas_decision_matrix_enc.c +++ b/lib_enc/ivas_decision_matrix_enc.c @@ -374,11 +374,11 @@ void ivas_decision_matrix_enc( *---------------------------------------------------------------------*/ void ivas_signaling_enc( - Encoder_State *st, /* i/o: encoder state structure */ - const int16_t is_MCT, /* i : MCT enabled */ - const int32_t element_brate, /* i : element bitrate */ + Encoder_State *st, /* i/o: encoder state structure */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ + const int32_t element_brate, /* i : element bitrate */ const int16_t tdm_SM_or_LRTD_Pri, /* i : channel combination scheme flag in TD stereo OR LRTD primary channel */ - const int16_t tdm_Pitch_reuse_flag /* i : primary channel pitch reuse flag in TD stereo */ + const int16_t tdm_Pitch_reuse_flag /* i : primary channel pitch reuse flag in TD stereo */ ) { int16_t ind; @@ -405,7 +405,7 @@ void ivas_signaling_enc( * Write element mode info *--------------------------------------------------------------------------*/ - if ( st->element_mode >= IVAS_CPE_DFT && element_brate < MIN_BRATE_MDCT_STEREO && !is_MCT ) /* note: in MCT, the MDCT stereo is used exclusively */ + if ( st->element_mode >= IVAS_CPE_DFT && element_brate < MIN_BRATE_MDCT_STEREO && !MCT_flag ) /* note: in MCT, the MDCT stereo is used exclusively */ { ind = st->element_mode - IVAS_CPE_DFT; push_indice( hBstr, IND_SMODE, ind, NBITS_ELEMENT_MODE ); diff --git a/lib_enc/ivas_front_vad.c b/lib_enc/ivas_front_vad.c index 09fd624ca5..1d18af7761 100644 --- a/lib_enc/ivas_front_vad.c +++ b/lib_enc/ivas_front_vad.c @@ -57,7 +57,7 @@ ivas_error front_vad( Encoder_State *st, /* i/o: encoder state structure */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ FRONT_VAD_ENC_HANDLE *hFrontVads, /* i/o: FrontVad handles */ - const int16_t hMCT_flag, /* i : hMCT handle allocated (1) or not (0) */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ const int16_t input_frame, /* i : frame length */ int16_t vad_flag_dtx[], /* o : HE-SAD flag with additional DTX HO */ float fr_bands[][2 * NB_BANDS], /* i : energy in frequency bands */ @@ -116,7 +116,7 @@ ivas_error front_vad( * Allocate/deallocate hFrontVad handles in case of element_mode change *-----------------------------------------------------------------*/ - if ( sts[0]->ini_frame > 0 && hMCT_flag == 0 && last_element_mode != element_mode ) + if ( sts[0]->ini_frame > 0 && MCT_flag == 0 && last_element_mode != element_mode ) { if ( element_mode == IVAS_CPE_MDCT ) { @@ -422,7 +422,7 @@ ivas_error front_vad_spar( * Front-VAD *-----------------------------------------------------------------*/ - if ( ( error = front_vad( NULL, st, hEncoderConfig, &hFrontVad, 0 /* hMCT_flag */, input_frame, vad_flag_dtx, fr_bands, Etot, lf_E, localVAD_HE_SAD, vad_hover_flag, band_energies, &PS[0], &st->Bin_E[0] ) ) != IVAS_ERR_OK ) + if ( ( error = front_vad( NULL, st, hEncoderConfig, &hFrontVad, 0 /* MCT_flag */, input_frame, vad_flag_dtx, fr_bands, Etot, lf_E, localVAD_HE_SAD, vad_hover_flag, band_energies, &PS[0], &st->Bin_E[0] ) ) != IVAS_ERR_OK ) { return error; } diff --git a/lib_enc/ivas_mdct_core_enc.c b/lib_enc/ivas_mdct_core_enc.c index 5234ae5c60..f516af2310 100644 --- a/lib_enc/ivas_mdct_core_enc.c +++ b/lib_enc/ivas_mdct_core_enc.c @@ -63,8 +63,8 @@ static void enc_prm_pre_mdct( int16_t param[], /* i : parameters */ const int16_t *no_param_tns, /* i : number of TNS parameters per subframe */ int16_t p_param[2], /* o : pointer to parameters for next round of bs writing */ - const int16_t is_mct, - BSTR_ENC_HANDLE hBstr /* i/o: encoder bitstream handle */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0) */ + BSTR_ENC_HANDLE hBstr /* i/o: encoder bitstream handle */ ) { int16_t nbits_start; @@ -78,7 +78,7 @@ static void enc_prm_pre_mdct( * Header *--------------------------------------------------------------------------------*/ - writeTCXMode( st, hBstr, is_mct, &nbits_start ); + writeTCXMode( st, hBstr, MCT_flag, &nbits_start ); /* write last_core for core switching and error concealment */ push_next_indice( hBstr, st->last_core != ACELP_CORE, 1 ); @@ -1151,12 +1151,12 @@ void ivas_mdct_core_whitening_enc( *---------------------------------------------------------------*/ void ivas_mdct_quant_coder( - CPE_ENC_HANDLE hCPE, /* i/o: Encoder CPE handle */ - const int16_t LFE_off, /* i : flag if LFE is inactive */ - int16_t tnsBits[CPE_CHANNELS][NB_DIV], /* i : bits needed for TNS parameters */ - int16_t tnsSize[CPE_CHANNELS][NB_DIV], /* i : size of TNS */ - int16_t p_param[CPE_CHANNELS][NB_DIV], /* i : pointer to parameter array */ - const int16_t is_mct /* i : is mct flag */ + CPE_ENC_HANDLE hCPE, /* i/o: Encoder CPE handle */ + const int16_t LFE_off, /* i : flag if LFE is inactive */ + int16_t tnsBits[CPE_CHANNELS][NB_DIV], /* i : bits needed for TNS parameters */ + int16_t tnsSize[CPE_CHANNELS][NB_DIV], /* i : size of TNS */ + int16_t p_param[CPE_CHANNELS][NB_DIV], /* i : pointer to parameter array */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ ) { Encoder_State *st, **sts; @@ -1252,7 +1252,7 @@ void ivas_mdct_quant_coder( } } - EstimateStereoTCXNoiseLevel( sts, quantized_spectrum, gain_tcx, L_frame, noiseFillingBorder, hm_active, ignore_chan, fac_ns, param_core, is_mct ); + EstimateStereoTCXNoiseLevel( sts, quantized_spectrum, gain_tcx, L_frame, noiseFillingBorder, hm_active, ignore_chan, fac_ns, param_core, MCT_flag ); for ( ch = 0; ch < CPE_CHANNELS; ch++ ) { diff --git a/lib_enc/ivas_tcx_core_enc.c b/lib_enc/ivas_tcx_core_enc.c index 2c1e4a9051..e8cfaf6697 100644 --- a/lib_enc/ivas_tcx_core_enc.c +++ b/lib_enc/ivas_tcx_core_enc.c @@ -268,7 +268,7 @@ void stereo_tcx_core_enc( *--------------------------------------------------------------------------------*/ /* TCX20/TCX10 and coder type */ - writeTCXMode( st, hBstr, 0, /* <- is_mct */ &nbits_start ); + writeTCXMode( st, hBstr, 0, /* MCT_flag */ &nbits_start ); /* write last_core for error concealment */ push_next_indice( hBstr, ( st->last_core != ACELP_CORE || st->core == TCX_10_CORE ), 1 ); diff --git a/lib_enc/setmodeindex.c b/lib_enc/setmodeindex.c index 199933fbaf..67d2d9d710 100644 --- a/lib_enc/setmodeindex.c +++ b/lib_enc/setmodeindex.c @@ -55,10 +55,11 @@ ---------------------------------------------------------------------------*/ void SetModeIndex( - Encoder_State *st, - const int32_t last_total_brate, - const int16_t last_element_mode, - const int16_t is_mct ) + Encoder_State *st, /* i : Encoder state */ + const int32_t last_total_brate, /* i : last total bitrate */ + const int16_t last_element_mode, /* i : last IVAS element mode */ + const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0) */ +) { int16_t ini_frame_loc = st->ini_frame; @@ -75,10 +76,9 @@ void SetModeIndex( ( st->rf_mode_last != st->rf_mode ) || ( st->element_mode > EVS_MONO && st->ini_frame == 0 ) ) { - core_coder_mode_switch( st, last_total_brate, is_mct ); + core_coder_mode_switch( st, last_total_brate, MCT_flag ); } - st->ini_frame = ini_frame_loc; return; -- GitLab From 9f8be23a864443ce52c599623b66bb0c281d8902 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 25 Oct 2022 14:30:42 +0200 Subject: [PATCH 295/479] [fix] CMake Build --- CMakeLists.txt | 4 ++-- .../unit_tests/crend/ivas_crend_unit_test.c | 16 ++++++++-------- .../unit_tests/crend/ivas_crend_utest_utils.c | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d0dccdee5d..0751f32401 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,7 +155,7 @@ add_library(lib_util ${libUtilSrcs} ${libUtilHeaders}) file(GLOB libCRendSrcs "scripts/ivas_pytests/tests/unit_tests/crend/*.c") file(GLOB libCRendHeaders "scripts/ivas_pytests/tests/unit_tests/crend/*.h") add_executable(IVAS_crend_unit_test ${libCRendSrcs} ${libCRendHeaders}) -target_link_libraries(IVAS_crend_unit_test lib_dec lib_rend lib_util lib_com lib_debug) +target_link_libraries(IVAS_crend_unit_test lib_rend lib_dec lib_util lib_com lib_debug) add_executable(IVAS_cod apps/encoder.c) target_link_libraries(IVAS_cod lib_enc lib_util) @@ -178,4 +178,4 @@ if(COPY_EXECUTABLES_TO_ROOT) add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_crend_unit_test POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") -endif() \ No newline at end of file +endif() diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c index 0e32e634fe..baa953bc7d 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.c @@ -200,14 +200,14 @@ static ivas_result_t ivas_crend_reverb_test( ivas_crend_io_params_t *pIo_params #else AudioFileWriter_close( &pIo_params->fOut ); AudioFileReader *fOut; - AudioFileReader_open( &fOut , pIo_params->out_path, pIo_params->sample_rate); + AudioFileReader_open( &fOut , pIo_params->out_path, &pIo_params->sample_rate); int16_t numRead; /* Compare */ if ( pIo_params->fRef ) { AudioFileReader_close( &pIo_params->fRef ); AudioFileReader *fRef; - AudioFileReader_open( &fRef, pIo_params->ref_path, pIo_params->sample_rate ); + AudioFileReader_open( &fRef, pIo_params->ref_path, &pIo_params->sample_rate ); if ( test != FAIL ) { @@ -337,8 +337,8 @@ static ivas_result_t ivas_crend_proximity_test( ivas_crend_io_params_t *pIo_para AudioFileReader_close( &pIo_params->fRef ); AudioFileWriter_close( &pIo_params->fOut ); AudioFileReader *fRef, *fOut; - AudioFileReader_open( &fOut, pIo_params->out_path, pIo_params->sample_rate ); - AudioFileReader_open( &fRef, pIo_params->ref_path, pIo_params->sample_rate ); + AudioFileReader_open( &fOut, pIo_params->out_path, &pIo_params->sample_rate ); + AudioFileReader_open( &fRef, pIo_params->ref_path, &pIo_params->sample_rate ); while ( 1 ) { acc_0f = 0.0f; @@ -500,8 +500,8 @@ static ivas_result_t ivas_crend_binaural_test( ivas_crend_io_params_t *pIo_param AudioFileReader_close( &pIo_params->fRef ); AudioFileWriter_close( &pIo_params->fOut ); AudioFileReader *fRef, *fOut; - AudioFileReader_open( &fOut, pIo_params->out_path, pIo_params->sample_rate ); - AudioFileReader_open( &fRef, pIo_params->ref_path, pIo_params->sample_rate ); + AudioFileReader_open( &fOut, pIo_params->out_path, &pIo_params->sample_rate ); + AudioFileReader_open( &fRef, pIo_params->ref_path, &pIo_params->sample_rate ); skip_samples = (int32_t) ( pIo_params->latency_s * pIo_params->sample_rate ); /* skip intial samples based on latency */ @@ -630,8 +630,8 @@ static ivas_result_t ivas_crend_no_diegetic_test( ivas_crend_io_params_t *pIo_pa AudioFileReader_close( &pIo_params->fRef ); AudioFileWriter_close( &pIo_params->fOut ); AudioFileReader *fRef, *fOut; - AudioFileReader_open( &fOut, pIo_params->out_path, pIo_params->sample_rate ); - AudioFileReader_open( &fRef, pIo_params->ref_path, pIo_params->sample_rate ); + AudioFileReader_open( &fOut, pIo_params->out_path, &pIo_params->sample_rate ); + AudioFileReader_open( &fRef, pIo_params->ref_path, &pIo_params->sample_rate ); if ( fRef ) { diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c index 00f00560e7..8535ed27a3 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c @@ -452,7 +452,7 @@ void ivas_open_files_crend( ivas_crend_io_params_t *pIo_params ) #ifdef USE_PCM_OUT if ( ( pIo_params->fIn[0] = fopen( pIo_params->in_path, "rb" ) ) == NULL ) #else - if ( AudioFileReader_open( &pIo_params->fIn[0] , pIo_params->in_path, pIo_params->sample_rate ) != IVAS_ERR_OK ) + if ( AudioFileReader_open( &pIo_params->fIn[0] , pIo_params->in_path, &pIo_params->sample_rate ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "Error: Input audio file %s could not be opened\n\n", pIo_params->in_path ); @@ -464,7 +464,7 @@ void ivas_open_files_crend( ivas_crend_io_params_t *pIo_params ) #ifdef USE_PCM_OUT if ( ( strlen( pIo_params->ref_path ) > 0 ) && ( ( pIo_params->fRef = fopen( pIo_params->ref_path, "rb" ) ) == NULL ) ) #else - if ( ( strlen( pIo_params->ref_path ) > 0 ) && ( AudioFileReader_open( &pIo_params->fRef, pIo_params->ref_path, pIo_params->sample_rate ) != IVAS_ERR_OK ) ) + if ( ( strlen( pIo_params->ref_path ) > 0 ) && ( AudioFileReader_open( &pIo_params->fRef, pIo_params->ref_path, &pIo_params->sample_rate ) != IVAS_ERR_OK ) ) #endif { fprintf( stderr, "Error: Reference audio file %s could not be opened\n\n", pIo_params->ref_path ); -- GitLab From c622638d01e6c35da329b4f5226b28c73e9a3f8b Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 25 Oct 2022 14:41:27 +0200 Subject: [PATCH 296/479] apply .clang-format --- lib_com/prot.h | 3 ++- lib_dec/er_dec_tcx.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib_com/prot.h b/lib_com/prot.h index 6df1f543b7..7687e96fb2 100755 --- a/lib_com/prot.h +++ b/lib_com/prot.h @@ -8128,7 +8128,8 @@ void con_tcx( const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left, /* i : TD-PLC only in left channel */ - const float A_cng[] ); + const float A_cng[] /* i : CNG LP filter coefficients */ +); /*! r: codebook index */ int16_t tcxlpc_get_cdk( diff --git a/lib_dec/er_dec_tcx.c b/lib_dec/er_dec_tcx.c index 4b507df683..6710e2a6ff 100644 --- a/lib_dec/er_dec_tcx.c +++ b/lib_dec/er_dec_tcx.c @@ -59,7 +59,8 @@ void con_tcx( const float coh, /* i : coherence of stereo signal */ int16_t *noise_seed, /* i/o: noise seed for stereo */ const int16_t only_left, /* i : TD-PLC only in left channel */ - const float A_cng[] ) + const float A_cng[] /* i : CNG LP filter coefficients */ +) { int16_t i, n, L_frame, L_subfr, fLowPassFilter, T0; int16_t offset = 0; -- GitLab From 2008d776d9fcae15c053657c5be9c47751ca5278 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 25 Oct 2022 17:44:23 +0200 Subject: [PATCH 297/479] fix 'i/o' buffer label --- lib_com/ivas_prot.h | 2 +- lib_enc/ivas_dirac_enc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 6ee0b402ad..85f1b25c43 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3170,7 +3170,7 @@ void ivas_dirac_enc( BSTR_ENC_HANDLE hMetaData, /* i/o: Metadata bitstream handle */ int16_t *nb_bits_metadata, /* o : number of metadata bits written */ const int16_t Opt_DTX_ON, /* i : flag signaling DTX on */ - float data_f[][L_FRAME48k], /* i : SBA channels */ + float data_f[][L_FRAME48k], /* i/o: SBA channels */ const int16_t input_frame, /* i : input frame length */ const int16_t sba_planar /* i : SBA planar flag */ ); diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index de4f7867dc..6d281256d9 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -306,7 +306,7 @@ void ivas_dirac_enc( BSTR_ENC_HANDLE hMetaData, /* i/o: Metadata bitstream handle */ int16_t *nb_bits_metadata, /* o : number of metadata bits written */ const int16_t Opt_DTX_ON, /* i : flag signaling DTX on */ - float data_f[][L_FRAME48k], /* i : SBA channels */ + float data_f[][L_FRAME48k], /* i/o: SBA channels */ const int16_t input_frame, /* i : input frame length */ const int16_t sba_planar /* i : SBA planar flag */ ) -- GitLab From 7946ee748952a22251a52b345e760208dfefcb37 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 25 Oct 2022 19:35:30 +0200 Subject: [PATCH 298/479] print-out also the SBA order of IVAS SBA format to stdout; under PRINT_SBA_ORDER --- lib_com/options.h | 1 + lib_dec/lib_dec.c | 4 ++++ lib_enc/lib_enc.c | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index b988fcb581..9c9effa225 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -152,6 +152,7 @@ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ +#define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ /* ################## End DEVELOPMENT switches ######################### */ diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index b7f82edd2e..c63a2e064e 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1766,7 +1766,11 @@ static ivas_error printConfigInfo_dec( } else if ( st_ivas->ivas_format == SBA_FORMAT ) { +#ifdef PRINT_SBA_ORDER + fprintf( stdout, "Input configuration: Scene Based Analysis, Ambisonic order %i%s, %d transport channel(s)\n", st_ivas->sba_order, st_ivas->sba_planar ? " (Planar)" : "", st_ivas->nchan_transport ); +#else fprintf( stdout, "Input configuration: SBA - %d transport channel(s) %s\n", st_ivas->nchan_transport, st_ivas->sba_planar ? "(Planar)" : "" ); +#endif } else if ( st_ivas->ivas_format == MASA_FORMAT ) { diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 4f990a25df..279a18954c 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1501,7 +1501,11 @@ static ivas_error printConfigInfo_enc( } else if ( hEncoderConfig->ivas_format == SBA_FORMAT ) { +#ifdef PRINT_SBA_ORDER + fprintf( stdout, "IVAS format: Scene Based Analysis, Ambisonic order %i %s ", hEncoderConfig->sba_order, hEncoderConfig->sba_planar ? "(Planar)" : "" ); +#else fprintf( stdout, "IVAS format: Scene Based Analysis %s ", hEncoderConfig->sba_planar ? "(Planar)" : "" ); +#endif if ( hEncoderConfig->Opt_PCA_ON ) { fprintf( stdout, "- PCA configured with signal adaptive decision " ); -- GitLab From d267a03c41aaf97ea72f6519228dab65fe8077ac Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Wed, 26 Oct 2022 01:11:10 +0200 Subject: [PATCH 299/479] fix compiler warnings --- lib_util/render_config_reader.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_util/render_config_reader.c b/lib_util/render_config_reader.c index 58e0eee286..27eed3bf14 100644 --- a/lib_util/render_config_reader.c +++ b/lib_util/render_config_reader.c @@ -419,7 +419,7 @@ ivas_error RenderConfigReader_read( while ( sscanf( pParams + params_idx, "%64[^=]=%[^;];", item, pValue ) == 2 ) { hRenderConfig->room_acoustics.override = true; - params_idx += strlen( item ) + strlen( pValue ) + 2; + params_idx += (int32_t) ( strlen( item ) + strlen( pValue ) + 2 ); #ifdef DEBUGGING fprintf( stderr, " PARAM: %s -> %s\n", item, pValue ); #endif @@ -506,7 +506,7 @@ ivas_error RenderConfigReader_read( pValue = (char *) calloc( strlen( pParams ), sizeof( char ) ); while ( sscanf( pParams + params_idx, "%64[^=]=%[^;];", item, pValue ) == 2 ) { - params_idx += strlen( item ) + strlen( pValue ) + 2; + params_idx += (int32_t) ( strlen( item ) + strlen( pValue ) + 2 ); fprintf( stderr, " PARAM: %s -> %s\n", item, pValue ); if ( strcmp( item, "RENDERER" ) == 0 ) { -- GitLab From bd0762f1dbcba304927ffba537152334e92ff0b6 Mon Sep 17 00:00:00 2001 From: rtyag Date: Wed, 26 Oct 2022 11:22:32 +1100 Subject: [PATCH 300/479] changes as per review comments --- lib_com/ivas_prot.h | 4 ++++ lib_debug/mem_count.c | 2 +- lib_dec/ivas_spar_decoder.c | 7 ++++++- lib_dec/ivas_spar_md_dec.c | 17 ++++++++++++----- lib_enc/ivas_spar_md_enc.c | 7 +++---- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index d8de806183..ed67a41986 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4024,6 +4024,10 @@ ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels /* i : number of internal channels */ +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t sba_order /* i : SBA order */ +#endif ); void ivas_spar_md_dec_process( diff --git a/lib_debug/mem_count.c b/lib_debug/mem_count.c index a4ec2fb8d7..02ec086f10 100644 --- a/lib_debug/mem_count.c +++ b/lib_debug/mem_count.c @@ -94,7 +94,7 @@ typedef INT64 int64_t; /* This is the maximum number of allocations for which to keep information. It can be increased if required. */ #ifdef SBA_BR_SWITCHING -#define MAX_INFO_RECORDS 3200 +#define MAX_INFO_RECORDS 5000 #else #define MAX_INFO_RECORDS 3000 #endif diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 7a0590e6c1..10a5a96430 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -666,7 +666,12 @@ static void ivas_spar_dec_MD( hSpar->hMdDec->table_idx = table_idx; hSpar->hTdDecorr->ducking_flag = ivas_spar_br_table_consts[table_idx].td_ducking; - ivas_spar_md_dec_init( hSpar->hMdDec, hDecoderConfig, num_channels ); + ivas_spar_md_dec_init( hSpar->hMdDec, hDecoderConfig, num_channels +#ifdef SBA_HOA_HBR_IMPROV + , + sba_order +#endif + ); } } diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 3d5f03b208..30684bbf8e 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -271,12 +271,14 @@ ivas_error ivas_spar_md_dec_open( return error; } -#ifdef SBA_HOA_HBR_IMPROV - hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); -#endif hMdDec->table_idx = 0; /* just to initialize state variables*/ - if ( ( error = ivas_spar_md_dec_init( hMdDec, hDecoderConfig, num_channels ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_dec_init( hMdDec, hDecoderConfig, num_channels +#ifdef SBA_HOA_HBR_IMPROV + , + sba_order +#endif + ) ) != IVAS_ERR_OK ) { return error; } @@ -438,6 +440,10 @@ ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels /* i : number of internal channels */ +#ifdef SBA_HOA_HBR_IMPROV + , + const int16_t sba_order /* i : SBA order */ +#endif ) { int16_t i, j, k; @@ -447,6 +453,7 @@ ivas_error ivas_spar_md_dec_init( hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? #ifdef SBA_HOA_HBR_IMPROV + hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); #else hMdDec->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); @@ -1419,7 +1426,7 @@ void ivas_spar_dec_gen_umx_mat( } } } - + #ifdef DEBUG_SBA_MD_DUMP { static FILE *f_mat = 0; diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 2624389cc4..76b2495b24 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -121,10 +121,6 @@ ivas_error ivas_spar_md_enc_open( num_channels = 2 * sba_order + 2; -#ifdef SBA_HOA_HBR_IMPROV - hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); -#endif - if ( ( hMdEnc->spar_md.band_coeffs = (ivas_band_coeffs_t *) count_malloc( IVAS_MAX_NUM_BANDS * sizeof( ivas_band_coeffs_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for band_coeffs in SPAR MD" ); @@ -319,6 +315,9 @@ static ivas_error ivas_spar_md_enc_init( float PR_minmax[2]; int16_t num_channels, i, j, k; +#ifdef SBA_HOA_HBR_IMPROV + hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); +#endif num_channels = ivas_sba_get_nchan_metadata( sba_order ); table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); -- GitLab From 7ddba8b6db0917bff4a29fa625747dc40124d679 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Wed, 26 Oct 2022 07:48:33 +0200 Subject: [PATCH 301/479] Added fix FIX_I178_HQ_BUFFER_OVERRUN to fix a too short buffer for the spectral fill codebook --- lib_com/fill_spectrum.c | 8 ++++++++ lib_com/options.h | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib_com/fill_spectrum.c b/lib_com/fill_spectrum.c index 9b743a5f1c..c1837d5140 100644 --- a/lib_com/fill_spectrum.c +++ b/lib_com/fill_spectrum.c @@ -90,10 +90,18 @@ void fill_spectrum( const int16_t element_mode /* i : element mode */ ) { +#ifdef FIX_I178_HQ_BUFFER_OVERRUN + float CodeBook[L_SPEC48k_EXT]; +#else float CodeBook[FREQ_LENGTH]; +#endif int16_t cb_size = 0; int16_t last_sfm; +#ifdef FIX_I178_HQ_BUFFER_OVERRUN + float CodeBook_mod[L_SPEC48k_EXT]; +#else float CodeBook_mod[FREQ_LENGTH]; +#endif float norm_adj[NB_SFM]; int16_t high_sfm = 23; int16_t flag_32K_env_hangover; diff --git a/lib_com/options.h b/lib_com/options.h index b988fcb581..eea64354c1 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -152,7 +152,7 @@ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ - +#define FIX_I178_HQ_BUFFER_OVERRUN /* issue 178: Buffer overrun in HQ core decoder -- spectral filling buffer did not account for extended transition frame in IVAS */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ -- GitLab From e36827f9f82b4c59f897ec1c31cca5df5f157d58 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 26 Oct 2022 08:51:29 +0200 Subject: [PATCH 302/479] put more common parts of the pytest jobs into yaml anchors --- .gitlab-ci.yml | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7948146179..27d3656175 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -78,9 +78,18 @@ stages: - mv IVAS_dec ../IVAS_dec_ref - cd .. + # rename test binaries back + - mv IVAS_cod_test IVAS_cod + - mv IVAS_dec_test IVAS_dec + ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) - git checkout $source_branch_commit_sha +.merge-request-comparison-check: &merge-request-comparison-check + - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi + - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "Non-bitexact cases without non-BE tag encountered!"; exit $EXIT_CODE_FAIL; fi + - if [ $exit_code -eq 1 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; exit $EXIT_CODE_NON_BE; fi + - exit 0 # --------------------------------------------------------------- # Job templates @@ -329,9 +338,6 @@ ivas-pytest-on-merge-request: ### prepare pytest # create short test vectors - python3 tests/create_short_testvectors.py - # rename test binaries back - - mv IVAS_cod_test IVAS_cod - - mv IVAS_dec_test IVAS_dec # create references - python3 -m pytest tests -v --update_ref 1 -m create_ref - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 @@ -341,11 +347,7 @@ ivas-pytest-on-merge-request: - python3 -m pytest tests -v --junit-xml=report-junit.xml || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - - if [ $zero_errors != 1 ]; then echo "Run errors in pytest"; exit $EXIT_CODE_FAIL; fi - - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "pytest run had failures without non-BE tag encountered"; exit $EXIT_CODE_FAIL; fi - - if [ $exit_code -eq 1 ] && [ $non_be_flag != 0 ]; then echo "pytest run had failures with non-BE tag encountered"; exit $EXIT_CODE_NON_BE; fi - - - exit 0 + - *merge-request-comparison-check allow_failure: exit_codes: @@ -372,12 +374,9 @@ evs-pytest-on-merge-request: - *merge_request_comparison_setup # some helper variables - "|| true" to prevent failures from grep not finding anything - - evs_non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]*non[ -]*be\]") || true + - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]*non[ -]*be\]") || true ### prepare pytest - # rename test binaries back - - mv IVAS_cod_test IVAS_cod - - mv IVAS_dec_test IVAS_dec # create references - python3 -m pytest tests/test_param_file.py -v --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm @@ -386,10 +385,7 @@ evs-pytest-on-merge-request: - python3 -m pytest tests/test_param_file.py -v --param_file scripts/config/self_test_evs.prm --junit-xml=report-junit-evs.xml || exit_code=$? - zero_errors=$(cat report-junit-evs.xml | grep -c 'errors="0"') || true - - if [ $zero_errors != 1 ]; then echo "Run errors in pytest for EVS"; exit $EXIT_CODE_FAIL; fi - - if [ $exit_code -eq 1 ] && [ $evs_non_be_flag == 0 ]; then echo "Non-bitexact EVS cases without EVS-non-BE tag encountered"; exit $EXIT_CODE_FAIL; fi - - if [ $exit_code -eq 1 ] && [ $evs_non_be_flag != 0 ]; then echo "Non-bitexact EVS cases with EVS-non-BE tag encountered"; exit $EXIT_CODE_NON_BE; fi - - exit 0 + - *merge-request-comparison-check allow_failure: exit_codes: -- GitLab From eecac1f227c893baa2b0508b7802d9b0a64537e7 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Wed, 26 Oct 2022 19:50:43 +1100 Subject: [PATCH 303/479] Fix a previous incorrect merge and address some review comments --- lib_com/options.h | 1 + lib_enc/ivas_agc_enc.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 83dc3a752f..2f31efb32f 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -152,6 +152,7 @@ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ +#define AGC_TUNING_IMPROVEMENT /* Issue 168: Enable AGC for low bit rate (1 TC) */ #ifdef AGC_TUNING_IMPROVEMENT #define AGC_ENABLE_FOR_LBR /* Issue 168: Enable AGC for low bit rate (1 TC) */ #endif diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 5bfcc74e53..0f3274f43c 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -73,9 +73,9 @@ int16_t ivas_agc_enc_get_enablement_flag( IVAS_ENC_AGC agc_configuration, int16_t nchan_transport ) { - return (bool) ( ( agc_configuration == IVAS_ENC_AGC_UNDEFINED ) + return (int16_t) ( ( agc_configuration == IVAS_ENC_AGC_UNDEFINED ) ? ( nchan_transport == 1 ) - : !!agc_configuration ); + : agc_configuration ); } #endif -- GitLab From e869e90a19a8a38fa0315e6541d1088d56e216f8 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Wed, 26 Oct 2022 19:58:38 +1100 Subject: [PATCH 304/479] Do a != false check rather than greater than 0 --- lib_enc/ivas_spar_encoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index eab9224303..b5f00848a8 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -926,7 +926,7 @@ static ivas_error ivas_spar_enc_process( if ( dtx_vad == 1 ) { #ifdef AGC_ENABLE_FOR_LBR - if ( hSpar->AGC_Enable > 0 ) + if ( hSpar->AGC_Enable != 0 ) #else if ( hEncoderConfig->Opt_AGC_ON > 0 ) #endif -- GitLab From f14f9fd882f1ab2f9ccd1c922cd99e35ff7644c3 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 26 Oct 2022 12:30:37 +0200 Subject: [PATCH 305/479] enable SBA rate switching conditions in smoke test --- ci/smoke_test.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/ci/smoke_test.sh b/ci/smoke_test.sh index b8c4bdd3f0..e3caac3533 100755 --- a/ci/smoke_test.sh +++ b/ci/smoke_test.sh @@ -8,8 +8,5 @@ fi make clean make all -j 8 -# get all modes except SBA rate switching (which is broken currently) -list=$(./scripts/runIvasCodec.py -l | grep -v "SBA.*rs") -./scripts/runIvasCodec.py -p ./scripts/config/ci_linux.json -m $list -U 1 | tee smoke_test_output.txt - -./scripts/runIvasCodec.py -p ./scripts/config/ci_linux.json -m $list -U 1 -D="-fec 15" --decoder_only | tee smoke_test_output_plc.txt +./scripts/runIvasCodec.py -p ./scripts/config/ci_linux.json -U 1 | tee smoke_test_output.txt +./scripts/runIvasCodec.py -p ./scripts/config/ci_linux.json -U 1 -D="-fec 15" --decoder_only | tee smoke_test_output_plc.txt -- GitLab From 62eb56afe89da9df036b894f200b4ded0279cfa9 Mon Sep 17 00:00:00 2001 From: Dominik Weckbecker Date: Wed, 26 Oct 2022 10:08:52 +0200 Subject: [PATCH 306/479] implement SPAR_STEREO_NO_DIRAC to fix #180 --- lib_com/options.h | 1 + lib_dec/ivas_init_dec.c | 7 ++++++- lib_dec/ivas_output_init.c | 6 ++++++ lib_dec/ivas_spar_decoder.c | 7 ++++++- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 87edfc787e..49c0ef3d90 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -155,6 +155,7 @@ #define FIX_I178_HQ_BUFFER_OVERRUN /* issue 178: Buffer overrun in HQ core decoder -- spectral filling buffer did not account for extended transition frame in IVAS */ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ +#define SPAR_STEREO_NO_DIRAC /* Issue 180: skip DirAC processing channels for stereo output */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index e3849dfbe0..3250fe05cb 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -790,7 +790,12 @@ ivas_error ivas_init_decoder( return error; } - if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA +#ifdef SPAR_STEREO_NO_DIRAC + && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO + && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO +#endif + ) { if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_output_init.c b/lib_dec/ivas_output_init.c index 307b29e74a..3b65756ad6 100644 --- a/lib_dec/ivas_output_init.c +++ b/lib_dec/ivas_output_init.c @@ -515,6 +515,12 @@ void ivas_renderer_select( { *internal_config = output_config; } +#ifdef SPAR_STEREO_NO_DIRAC + else if ( output_config == AUDIO_CONFIG_MONO || output_config == AUDIO_CONFIG_STEREO ) + { + *internal_config = AUDIO_CONFIG_FOA; + } +#endif else { *internal_config = AUDIO_CONFIG_HOA3; diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index eea34b31dc..a51e941548 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -1146,7 +1146,12 @@ void ivas_spar_dec_upmixer( } } - if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) + if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA +#ifdef SPAR_STEREO_NO_DIRAC + && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO + && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO +#endif + ) { ivas_dirac_dec( st_ivas, output, nchan_internal, cldfb_in_ts_re, cldfb_in_ts_im, i_sf ); } -- GitLab From 20f874574095d2e4c64cbca2f26e1848d4cc14fb Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 26 Oct 2022 13:10:44 +0200 Subject: [PATCH 307/479] [fix] IVAS_crend_unit_test tests and pipeline - Bug in delay compensation for binauralrenderer.py when zero delay - Modify -lfe_lpf flag to affect only whether the LFE is filtered; always add it by default. - Update SNR thresholds - Update usage printout for IVAS_crend_unit_test - Apply clang-format --- .../unit_tests/crend/ivas_crend_utest_utils.c | 99 +++++++++---------- scripts/pyaudio3dtools/binauralrenderer.py | 3 +- scripts/tests/constants.py | 6 +- scripts/tests/test_renderer.py | 58 ++++++----- 4 files changed, 86 insertions(+), 80 deletions(-) diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c index 8535ed27a3..42d9795219 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c @@ -64,7 +64,6 @@ #include "render_config_reader.h" - static ivas_result_t ivas_dec_default_io_params( ivas_dec_io_params_t *pIO_params ) { memset( pIO_params, 0, sizeof( ivas_dec_io_params_t ) ); @@ -103,7 +102,7 @@ static ivas_error ivas_hrtf_init( hHrtf->max_num_iterations = 0; hHrtf->gain_lfe = 0; hHrtf->index_frequency_max_diffuse = 0; - + for ( i = 0; i < IVAS_MAX_NUM_CH; i++ ) { hHrtf->inv_diffuse_weight[i] = 0; @@ -285,9 +284,9 @@ static void ivas_crend_unit_test_usage( void ) fprintf( stdout, "\nOptional arguments:\n" ); fprintf( stdout, "---------------------\n" ); fprintf( stdout, "-ifmt : Input format index\n" ); - fprintf( stdout, " (0 - MONO, 1 - STEREO, 2 - BINAURAL, 3 - FOA, 4 - 5.1, 5 - 7.1, 6 - 5.1.2, 7 - 7.1.4, 8 - HOA2, 9 - HOA3)\n" ); + fprintf( stdout, " (0 - MONO, 1 - STEREO, 2 - BINAURAL, 3 - FOA, 4 - 5.1, 5 - 7.1, 6 - 5.1.2, 7 - 5.1.4, 8 - 7.1.4, 9 - HOA2, 10 - HOA3)\n" ); fprintf( stdout, "-ofmt : Output format index\n" ); - fprintf( stdout, " (0 - MONO, 1 - STEREO, 2 - BINAURAL, 3 - FOA, 4 - 5.1, 5 - 7.1, 6 - 5.1.2, 7 - 7.1.4, 8 - HOA2, 9 - HOA3)\n" ); + fprintf( stdout, " (0 - MONO, 1 - STEREO, 2 - BINAURAL, 3 - FOA, 4 - 5.1, 5 - 7.1, 6 - 5.1.2, 7 - 5.1.4, 8 - 7.1.4, 9 - HOA2, 10 - HOA3)\n" ); fprintf( stdout, "-i : Input path/file\n" ); fprintf( stdout, "-o : Output file\n" ); fprintf( stdout, "-r : Reference path/file\n" ); @@ -452,7 +451,7 @@ void ivas_open_files_crend( ivas_crend_io_params_t *pIo_params ) #ifdef USE_PCM_OUT if ( ( pIo_params->fIn[0] = fopen( pIo_params->in_path, "rb" ) ) == NULL ) #else - if ( AudioFileReader_open( &pIo_params->fIn[0] , pIo_params->in_path, &pIo_params->sample_rate ) != IVAS_ERR_OK ) + if ( AudioFileReader_open( &pIo_params->fIn[0], pIo_params->in_path, &pIo_params->sample_rate ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "Error: Input audio file %s could not be opened\n\n", pIo_params->in_path ); @@ -867,7 +866,7 @@ static ivas_result_t ivas_wrapper_get_in_buf( ivas_crend_io_params_t *pIo_params int16_t tmp, read = 0; num_in_ch = ivas_get_num_channels( pIo_params->in_fmt ); - if ( pIo_params->test == CREND_BIN_TEST || pIo_params->test == FASTCONV_BIN_TEST || pIo_params->test == PARAM_BIN_TEST || pIo_params->test == TD_BIN_TEST || pIo_params->test == CREND_ACOUSTIC_PROXIMITY) + if ( pIo_params->test == CREND_BIN_TEST || pIo_params->test == FASTCONV_BIN_TEST || pIo_params->test == PARAM_BIN_TEST || pIo_params->test == TD_BIN_TEST || pIo_params->test == CREND_ACOUSTIC_PROXIMITY ) { /* Read in PCM */ for ( j = 0; j < input_frame_len; j++ ) @@ -877,11 +876,11 @@ static ivas_result_t ivas_wrapper_get_in_buf( ivas_crend_io_params_t *pIo_params #ifdef USE_PCM_OUT if ( ( read = (int16_t) fread( &tmp, sizeof( int16_t ), 1, pIo_params->fIn[0] ) ) > 0 ) #else - if ( (AudioFileReader_read( pIo_params->fIn[0], &tmp, 1, &read ) == IVAS_ERR_OK) && (read > 0) ) + if ( ( AudioFileReader_read( pIo_params->fIn[0], &tmp, 1, &read ) == IVAS_ERR_OK ) && ( read > 0 ) ) #endif { ppPcm_in[i][j] = (float) tmp; - // ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); + // ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); samples_read += 1; } else @@ -917,9 +916,9 @@ static ivas_result_t ivas_wrapper_get_in_buf( ivas_crend_io_params_t *pIo_params #else if ( ( AudioFileReader_read( pIo_params->fIn[i], &tmp, 1, &read ) == IVAS_ERR_OK ) && ( read > 0 ) ) #endif - { + { ppPcm_in[i][j] = (float) tmp; - // ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); + // ppPcm_in[i][j] *= ( 1.0 / PCM16_TO_FLT_FAC ); samples_read += 1; } else @@ -949,14 +948,14 @@ static ivas_result_t ivas_wrapper_get_in_buf( ivas_crend_io_params_t *pIo_params *---------------------------------------------------------------------*/ static ivas_result_t ivas_feed_head_track_data( - Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ + Decoder_Struct *st_ivas, /* i/o: IVAS decoder handle */ IVAS_QUATERNION *orientation /* i : head-tracking data */ ) { HEAD_TRACK_DATA_HANDLE hHeadTrackData; int16_t i; - + hHeadTrackData = st_ivas->hHeadTrackData; if ( hHeadTrackData == NULL ) @@ -1116,7 +1115,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { st_ivas.ivas_format = SBA_FORMAT; } - + if ( ( pIo_params->out_fmt == BIN_2 ) && ( pIo_params->in_fmt != pIo_params->out_fmt ) ) { if ( pIo_params->test == FASTCONV_BIN_TEST ) @@ -1131,8 +1130,8 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { st_ivas.renderer_type = RENDERER_BINAURAL_FASTCONV; st_ivas.hOutSetup.output_config = st_ivas.hDecoderConfig->output_config = AUDIO_CONFIG_BINAURAL; - if (st_ivas.ivas_format == MC_FORMAT) - pIo_params->latency_s = ( (float) frame_len ) / (float) dec_io_params.out_sample_rate + FASTCONV_HRIR_latency_s ; + if ( st_ivas.ivas_format == MC_FORMAT ) + pIo_params->latency_s = ( (float) frame_len ) / (float) dec_io_params.out_sample_rate + FASTCONV_HRIR_latency_s; else pIo_params->latency_s = ( (float) frame_len ) / (float) dec_io_params.out_sample_rate + FASTCONV_HOA3_latency_s; } @@ -1144,7 +1143,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl fprintf( stderr, "TD Renderer configuration wrong input format\n" ); exit( -1 ); } - + if ( st_ivas.hRenderConfig->roomAcoustics.use_brir ) { st_ivas.renderer_type = RENDERER_BINAURAL_OBJECTS_TD; @@ -1171,7 +1170,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl } pIo_params->latency_s = ( (float) frame_len ) / (float) dec_io_params.out_sample_rate; } - else if( pIo_params->test == CREND_BIN_TEST ) + else if ( pIo_params->test == CREND_BIN_TEST ) { if ( st_ivas.hRenderConfig->roomAcoustics.use_brir ) { @@ -1212,11 +1211,10 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { return error; } - if ( ( error = HeadRotationFileReader_open( pIo_params->csv_path , &headRotReader ) ) != IVAS_ERR_OK ) + if ( ( error = HeadRotationFileReader_open( pIo_params->csv_path, &headRotReader ) ) != IVAS_ERR_OK ) { return error; } - } st_ivas.nchan_transport = audioCfg2channels( st_ivas.transport_config ); @@ -1266,8 +1264,8 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { if ( ( pIo_params->in_fmt != FOA_4 ) && ( pIo_params->in_fmt != HOA_9 ) && ( pIo_params->in_fmt != HOA_16 ) ) { - fprintf( stderr, "PARAM renderer configuration wrong format, must be FOA or HOA up to order 3\n" ); - exit( -1 ); + fprintf( stderr, "PARAM renderer configuration wrong format, must be FOA or HOA up to order 3\n" ); + exit( -1 ); } ivas_output_init( &st_ivas.hIntSetup, st_ivas.transport_config ); @@ -1310,7 +1308,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl if ( pIo_params->test == CREND_BIN_TEST ) { - pIo_params->latency_s = st_ivas.hHrtf->latency_s; + pIo_params->latency_s = st_ivas.hHrtf->latency_s; } if ( st_ivas.ivas_format == MC_FORMAT ) { @@ -1360,7 +1358,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl delay_lp = 0; } } - + if ( pIo_params->limiter_enable ) { st_ivas.hLimiter = ivas_limiter_open( out_ch, pIo_params->sample_rate ); @@ -1387,20 +1385,20 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { skip_samples = NS2SA( pIo_params->sample_rate, (int32_t) ( pIo_params->latency_s * 1000000000.f ) ); } - fprintf( stdout, "IVAS Common Renderer skip samples = %d\n", (int)skip_samples ); + fprintf( stdout, "IVAS Common Renderer skip samples = %d\n", (int) skip_samples ); frame_len = frame_len << 2; - int32_t frame_dec=0; - IVAS_QUATERNION Quaternions[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES] = {0}; + int32_t frame_dec = 0; + IVAS_QUATERNION Quaternions[IVAS_MAX_PARAM_SPATIAL_SUBFRAMES] = { 0 }; /* process loop */ - while ( ( ( result = ivas_wrapper_get_in_buf( pIo_params, ppPcm_in ) ) == IVAS_SUCCESS ) && ( (st_ivas.hDecoderConfig->Opt_Headrotation == 0) || ( (st_ivas.hDecoderConfig->Opt_Headrotation == 1) && (HeadRotationFileReading( headRotReader, Quaternions, frame_dec ) == IVAS_ERR_OK ) ) ) ) + while ( ( ( result = ivas_wrapper_get_in_buf( pIo_params, ppPcm_in ) ) == IVAS_SUCCESS ) && ( ( st_ivas.hDecoderConfig->Opt_Headrotation == 0 ) || ( ( st_ivas.hDecoderConfig->Opt_Headrotation == 1 ) && ( HeadRotationFileReading( headRotReader, Quaternions, frame_dec ) == IVAS_ERR_OK ) ) ) ) { int16_t pcm[MAX_OUTPUT_CHANNELS]; frame_dec++; result = IVAS_SUCCESS; - if ( ( st_ivas.hDecoderConfig->Opt_Headrotation == 1 ) && (ivas_feed_head_track_data( &st_ivas, Quaternions ) != IVAS_SUCCESS )) + if ( ( st_ivas.hDecoderConfig->Opt_Headrotation == 1 ) && ( ivas_feed_head_track_data( &st_ivas, Quaternions ) != IVAS_SUCCESS ) ) { return IVAS_IO_ERROR; } @@ -1419,7 +1417,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl if ( pIo_params->test == FASTCONV_BIN_TEST ) { ivas_binaural_cldfb( &st_ivas, ppPcm_in ); - } + } else if ( pIo_params->test == TD_BIN_TEST ) { ObjRenderIVASFrame( &st_ivas, ppPcm_in, frame_len ); @@ -1436,7 +1434,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl /* Implement a 5 msec loops */ maxBand = (int16_t) ( ( CLDFB_NO_CHANNELS_MAX * st_ivas.hDecoderConfig->output_Fs ) / 48000 ); - for ( slot_idx = 0; slot_idx < (int16_t)CLDFB_NO_COL_MAX; slot_idx++ ) + for ( slot_idx = 0; slot_idx < (int16_t) CLDFB_NO_COL_MAX; slot_idx++ ) { for ( ch = 0; ch < in_ch; ch++ ) @@ -1448,7 +1446,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl } } - for ( slot_idx = 0; slot_idx < (int16_t)CLDFB_NO_COL_MAX ; slot_idx++ ) + for ( slot_idx = 0; slot_idx < (int16_t) CLDFB_NO_COL_MAX; slot_idx++ ) { /* Implement binaural rendering */ for ( ch = 0; ch < BINAURAL_CHANNELS; ch++ ) @@ -1465,7 +1463,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { filterTapsRealPtr = hrtfShCoeffsRe[ch][chIdx]; filterTapsImagPtr = hrtfShCoeffsIm[ch][chIdx]; - + for ( bandIdx = 0; bandIdx < maxBand; bandIdx++ ) { RealBuffer[bandIdx] += gain * ( Cldfb_RealBuffer[chIdx][slot_idx][bandIdx] * filterTapsRealPtr[bandIdx] ) - ( Cldfb_ImagBuffer[chIdx][slot_idx][bandIdx] * filterTapsImagPtr[bandIdx] ); @@ -1477,7 +1475,6 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl cldfbSynthesis( &outSlotRePr, &outSlotImPr, &( ppPcm_in[ch][slot_idx * maxBand] ), maxBand, st_ivas.cldfbSynDec[ch] ); } } - } else { @@ -1485,23 +1482,24 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { ivas_crend_mixer( ppPcm_in, ppPcm_out, in_ch, out_ch, mixer, frame_len ); } - else + else { ivas_crend_process( &st_ivas, ppPcm_in ); } } - + if ( mixer == NULL ) { - if ( pIo_params->lfe_lp_enable ) - { - for ( i = 0; i < out_ch; i++ ) + if ( pIo_params->lfe_lp_enable ) { - delay_signal( ppPcm_in[i], frame_len, ppDelay_lines[i], delay_lp ); + for ( i = 0; i < out_ch; i++ ) + { + delay_signal( ppPcm_in[i], frame_len, ppDelay_lines[i], delay_lp ); + } } - ivas_binaural_add_LFE( &st_ivas, frame_len, ppPcm_in ); - } + ivas_binaural_add_LFE( &st_ivas, frame_len, ppPcm_in ); + for ( i = 0; i < out_ch; i++ ) { mvr2r( ppPcm_in[i], ppPcm_out[i], frame_len ); @@ -1523,7 +1521,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl } for ( i = 0; i < out_ch; i++ ) { -// float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); + // float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); float temp; #ifdef _FIND_MAX_ valMaxLoc = ( ppPcm_out[i][j] > valMaxLoc ) ? ppPcm_out[i][j] : ( ppPcm_out[i][j] < -valMaxLoc ) ? -ppPcm_out[i][j] @@ -1534,15 +1532,13 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl valEner += ppPcm_out[i][j] * ppPcm_out[i][j]; #endif temp = ( ppPcm_out[i][j] > MAX16B_FLT ) ? MAX16B_FLT : ( ppPcm_out[i][j] < MIN16B_FLT ) ? MIN16B_FLT - : ppPcm_out[i][j]; - pcm[i] = (short) roundf(temp); + : ppPcm_out[i][j]; + pcm[i] = (short) roundf( temp ); clip = max( clip, fabsf( ppPcm_out[i][j] ) ); - - } if ( write_flag == 1 ) { -#ifdef USE_PCM_OUT +#ifdef USE_PCM_OUT fwrite( pcm, sizeof( int16_t ), out_ch, pIo_params->fOut ); #else AudioFileWriter_write( pIo_params->fOut, pcm, out_ch ); @@ -1558,10 +1554,9 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl fprintf( stdout, "Processed frame: %ld\r", (long) frame_count ); frame_count++; - } - int16_t pcm[MAX_OUTPUT_CHANNELS] = {0}; + int16_t pcm[MAX_OUTPUT_CHANNELS] = { 0 }; while ( skipped_samples > 0 ) { AudioFileWriter_write( pIo_params->fOut, pcm, out_ch ); @@ -1579,7 +1574,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl ivas_lfe_dec_close( st_ivas.hLFE ); } - if ( st_ivas.hDirAC != NULL ) + if ( st_ivas.hDirAC != NULL ) ivas_dirac_dec_close( st_ivas.hDirAC ); if ( st_ivas.hBinRenderer != NULL ) ivas_binRenderer_close( &st_ivas.hBinRenderer ); @@ -1754,7 +1749,7 @@ ivas_result_t ivas_object_mixer_renderer( ivas_crend_io_params_t *pIo_params, in for ( i = 0; i < out_ch; i++ ) { -// float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); + // float temp = roundf( ppPcm_out[i][j] * PCM16_TO_FLT_FAC ); float temp = roundf( ppPcm_out[i][j] ); #ifdef _FIND_MAX_ @@ -1771,7 +1766,7 @@ ivas_result_t ivas_object_mixer_renderer( ivas_crend_io_params_t *pIo_params, in #ifdef USE_PCM_OUT pcm = ( temp > MAX16B_FLT ) ? MAX16B : ( temp < MIN16B_FLT ) ? MIN16B - : (short) temp; + : (short) temp; fwrite( &pcm, sizeof( int16_t ), 1, pIo_params->fOut ); #else pcm[i] = ( temp > MAX16B_FLT ) ? MAX16B : ( temp < MIN16B_FLT ) ? MIN16B diff --git a/scripts/pyaudio3dtools/binauralrenderer.py b/scripts/pyaudio3dtools/binauralrenderer.py index e9b8f88778..d5004c06f3 100644 --- a/scripts/pyaudio3dtools/binauralrenderer.py +++ b/scripts/pyaudio3dtools/binauralrenderer.py @@ -773,7 +773,8 @@ def binaural_rendering( # delay compensation delay_total_smp = NS2SA(fs, delay_total_ns) y = np.roll(y, -delay_total_smp, axis=0) - y[-delay_total_smp:, :] = 0 + if delay_total_smp > 0: + y[-delay_total_smp:, :] = 0 # resample back to original rate y = audioarray.resample(y, 48000, fs) diff --git a/scripts/tests/constants.py b/scripts/tests/constants.py index 3203d15ccd..639a7792ec 100644 --- a/scripts/tests/constants.py +++ b/scripts/tests/constants.py @@ -70,7 +70,7 @@ TDRENDERER_CMD = [ """ CREND commandline template """ RENDERER_CREND_CMD = [ - str(TESTS_DIR.parent.parent.joinpath("IVAS_crend_unit_test")), + str(TESTS_DIR.parent.parent.joinpath("build/IVAS_crend_unit_test")), "-test", "1", "-sr", @@ -83,8 +83,8 @@ RENDERER_CREND_CMD = [ "", # 2 -> input file "-o", "/dev/null", # 6 -> output file - "-lp_lfe", - "-limiter" + # "-lp_lfe", + # "-limiter" # "-no_delay_cmp" ] diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index a076b1d72e..c13b16fc3f 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -68,7 +68,7 @@ def check_BE( if not np.allclose(ref, cut, rtol=0, atol=2) and max_diff > 2: if snr >= snr_min: pytest.xfail( - f"xfailed with minimum SNR {snr_min} vs {snr:3.2f}dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" + f"Expected failure with minimum SNR {snr_min} vs {snr:3.2f}dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" ) else: pytest.fail( @@ -204,8 +204,8 @@ def run_crend_unittest( ) cmd = RENDERER_CREND_CMD[:] - cmd[6] = FORMAT_TO_CREND_FORMAT(str(in_fmt)) - cmd[8] = FORMAT_TO_CREND_FORMAT(str(out_fmt)) + cmd[6] = FORMAT_TO_CREND_FORMAT[str(in_fmt)] + cmd[8] = FORMAT_TO_CREND_FORMAT[str(out_fmt)] cmd[10] = str(in_file) cmd[12] = str(out_file) if str(out_fmt) == "BINAURAL_ROOM": @@ -469,7 +469,7 @@ def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) -def test_multichannel_binaural_static_vs_crend_unitest(test_info, in_fmt, out_fmt): +def test_multichannel_binaural_static_vs_crend_unittest(test_info, in_fmt, out_fmt): cut, cut_fs = run_renderer(in_fmt, out_fmt) @@ -618,36 +618,36 @@ pass_snr = { "test_ambisonics_binaural_static[FOA-BINAURAL_ROOM]": 0.6, "test_ambisonics_binaural_static[HOA2-BINAURAL_ROOM]": 0.5, "test_ambisonics_binaural_static[HOA3-BINAURAL_ROOM]": 0.1, + "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL]": 0, + "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL_ROOM]": 0, "test_custom_ls_input_binaural[4d4-BINAURAL]": 0.2, + "test_custom_ls_input_binaural[4d4-BINAURAL_ROOM]": 0, "test_custom_ls_input_binaural[custom1-BINAURAL]": 0.2, + "test_custom_ls_input_binaural[custom1-BINAURAL_ROOM]": 0, "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL]": 0, + "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL_ROOM]": 3, "test_custom_ls_input_binaural[t_design_4-BINAURAL]": 0, + "test_custom_ls_input_binaural[t_design_4-BINAURAL_ROOM]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-full_circle_in_15s]": 0.1, - "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-full_circle_in_15s]": 0.1, - "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL]": 0, - "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL-full_circle_in_15s]": 0, "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural[4d4-BINAURAL_ROOM]": 0, - "test_custom_ls_input_binaural[custom1-BINAURAL_ROOM]": 0, - "test_custom_ls_input_binaural[t_design_4-BINAURAL_ROOM]": 0, - "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL_ROOM]": 3.9, + "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-full_circle_in_15s]": 3, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, + "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-full_circle_in_15s]": 0.1, "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL_ROOM]": 0.2, "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-full_circle_in_15s]": 4, - "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4, - "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_ism[ISM1-FOA]": 45, "test_ism[ISM1-HOA2]": 41, "test_ism[ISM1-HOA3]": 38, @@ -717,4 +717,14 @@ pass_snr = { "test_multichannel_binaural_static[7_1-BINAURAL_ROOM]": 1, "test_multichannel_binaural_static[7_1_4-BINAURAL]": 7, "test_multichannel_binaural_static[7_1_4-BINAURAL_ROOM]": 1, + "test_multichannel_binaural_static_vs_crend_unittest[5_1-BINAURAL]": 23, + "test_multichannel_binaural_static_vs_crend_unittest[5_1-BINAURAL_ROOM]": 38, + "test_multichannel_binaural_static_vs_crend_unittest[5_1_2-BINAURAL]": 24, + "test_multichannel_binaural_static_vs_crend_unittest[5_1_2-BINAURAL_ROOM]": 37, + "test_multichannel_binaural_static_vs_crend_unittest[5_1_4-BINAURAL]": 23, + "test_multichannel_binaural_static_vs_crend_unittest[5_1_4-BINAURAL_ROOM]": 36, + "test_multichannel_binaural_static_vs_crend_unittest[7_1-BINAURAL]": 24, + "test_multichannel_binaural_static_vs_crend_unittest[7_1-BINAURAL_ROOM]": 37, + "test_multichannel_binaural_static_vs_crend_unittest[7_1_4-BINAURAL]": 23, + "test_multichannel_binaural_static_vs_crend_unittest[7_1_4-BINAURAL_ROOM]": 36, } -- GitLab From cfc0a4434942946f1af5df47a0365452798514a0 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 26 Oct 2022 13:43:02 +0200 Subject: [PATCH 308/479] [fix] IVAS_crend_unit_test binary location --- .gitlab-ci.yml | 1 + scripts/tests/constants.py | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 08847375e2..989db6f25b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -272,6 +272,7 @@ external-renderer-make-pytest: stage: test script: - make -j IVAS_rend + - make -j unittests - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto # test external renderer executable with cmake + asan diff --git a/scripts/tests/constants.py b/scripts/tests/constants.py index 639a7792ec..2836c9998e 100644 --- a/scripts/tests/constants.py +++ b/scripts/tests/constants.py @@ -32,8 +32,10 @@ from pathlib import PurePath TESTS_DIR = PurePath(__file__).parent TEST_VECTOR_DIR = TESTS_DIR.joinpath("data") -OUTPUT_PATH_REF = TESTS_DIR.joinpath("ref") -OUTPUT_PATH_CUT = TESTS_DIR.joinpath("cut") +# OUTPUT_PATH_REF = TESTS_DIR.joinpath("ref") +# OUTPUT_PATH_CUT = TESTS_DIR.joinpath("cut") +OUTPUT_PATH_REF = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/ref") +OUTPUT_PATH_CUT = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/cut") CUSTOM_LAYOUT_DIR = TEST_VECTOR_DIR.parent.parent.joinpath("ls_layouts") HR_TRAJECTORY_DIR = TEST_VECTOR_DIR.parent.parent.joinpath("trajectories") @@ -70,7 +72,7 @@ TDRENDERER_CMD = [ """ CREND commandline template """ RENDERER_CREND_CMD = [ - str(TESTS_DIR.parent.parent.joinpath("build/IVAS_crend_unit_test")), + str(TESTS_DIR.parent.parent.joinpath("IVAS_crend_unit_test")), "-test", "1", "-sr", -- GitLab From 761861313e4045a0fa79cf9bd825ec6b2f17d316 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 26 Oct 2022 13:47:53 +0200 Subject: [PATCH 309/479] "revert accidental change to output directories" --- scripts/tests/constants.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/tests/constants.py b/scripts/tests/constants.py index 2836c9998e..8c5de89dc1 100644 --- a/scripts/tests/constants.py +++ b/scripts/tests/constants.py @@ -32,10 +32,8 @@ from pathlib import PurePath TESTS_DIR = PurePath(__file__).parent TEST_VECTOR_DIR = TESTS_DIR.joinpath("data") -# OUTPUT_PATH_REF = TESTS_DIR.joinpath("ref") -# OUTPUT_PATH_CUT = TESTS_DIR.joinpath("cut") -OUTPUT_PATH_REF = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/ref") -OUTPUT_PATH_CUT = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/cut") +OUTPUT_PATH_REF = TESTS_DIR.joinpath("ref") +OUTPUT_PATH_CUT = TESTS_DIR.joinpath("cut") CUSTOM_LAYOUT_DIR = TEST_VECTOR_DIR.parent.parent.joinpath("ls_layouts") HR_TRAJECTORY_DIR = TEST_VECTOR_DIR.parent.parent.joinpath("trajectories") -- GitLab From 222d97a9a6e4c50227dc551d8e025e83bf6d63f4 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 26 Oct 2022 14:06:30 +0200 Subject: [PATCH 310/479] disable CREND unit test cases until fixed --- scripts/tests/test_renderer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/tests/test_renderer.py b/scripts/tests/test_renderer.py index c13b16fc3f..5c535e688b 100644 --- a/scripts/tests/test_renderer.py +++ b/scripts/tests/test_renderer.py @@ -467,6 +467,7 @@ def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): check_BE(test_info, ref, ref_fs, cut, cut_fs) +@pytest.mark.skip("Skip CREND unit test comparison until ASAN issues and copying binaries is fixed") @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) def test_multichannel_binaural_static_vs_crend_unittest(test_info, in_fmt, out_fmt): -- GitLab From a78ef61d76dc5ba0be781e9cae7b0c3da8a375ec Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 26 Oct 2022 14:18:31 +0200 Subject: [PATCH 311/479] update pyaudio3dtools ISM metadata and headrotation trajectory reading --- scripts/pyaudio3dtools/rotateHOA.py | 2 +- scripts/pyaudio3dtools/rotateISM.py | 2 +- scripts/pyaudio3dtools/rotateMC.py | 2 +- scripts/pyaudio3dtools/spatialmetadata.py | 12 ++++++------ 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/pyaudio3dtools/rotateHOA.py b/scripts/pyaudio3dtools/rotateHOA.py index cd11be2e59..c672491fc9 100644 --- a/scripts/pyaudio3dtools/rotateHOA.py +++ b/scripts/pyaudio3dtools/rotateHOA.py @@ -237,7 +237,7 @@ def rotateHOA(x: np.ndarray, trajectory: str) -> np.ndarray: i1 = i_frame * frame_len i2 = (i_frame + 1) * frame_len - q1 = trj_data[i_frame % trj_frames, 1:] + q1 = trj_data[i_frame % trj_frames, :] R_r = Quat2RotMat(q1) R[:, :] = SHrotmatgen(R_r, order=int(np.sqrt(sig_dim)) - 1) diff --git a/scripts/pyaudio3dtools/rotateISM.py b/scripts/pyaudio3dtools/rotateISM.py index 4ed88f43ba..bea8e65068 100644 --- a/scripts/pyaudio3dtools/rotateISM.py +++ b/scripts/pyaudio3dtools/rotateISM.py @@ -55,7 +55,7 @@ def rotateISM( ele_rot = np.zeros([N_frames]) for i_frame in range(N_frames): - q = trj_data[i_frame % trj_frames, 1:] + q = trj_data[i_frame % trj_frames, :] azi_rot[i_frame], ele_rot[i_frame] = rotateAziEle( azi[i_frame], ele[i_frame], Quat2RotMat(q) ) diff --git a/scripts/pyaudio3dtools/rotateMC.py b/scripts/pyaudio3dtools/rotateMC.py index 65b47b9b18..a956db633a 100644 --- a/scripts/pyaudio3dtools/rotateMC.py +++ b/scripts/pyaudio3dtools/rotateMC.py @@ -74,7 +74,7 @@ def rotateMC(x: np.ndarray, trajectory: str, layout: spatialaudioformat) -> np.n start = i_frame * frame_len end = (i_frame + 1) * frame_len - q = trj_data[i_frame % trj_frames, 1:] + q = trj_data[i_frame % trj_frames, :] rotated_pos = np.array( [ diff --git a/scripts/pyaudio3dtools/spatialmetadata.py b/scripts/pyaudio3dtools/spatialmetadata.py index 829bd298bc..f081278fa0 100644 --- a/scripts/pyaudio3dtools/spatialmetadata.py +++ b/scripts/pyaudio3dtools/spatialmetadata.py @@ -315,8 +315,8 @@ def read_ism_input(file_handle: TextIO, dirname: str) -> dict: current_values = line.strip().split(",") pos = {} pos["use_for_frames"] = 1 - pos["azimuth"] = float(current_values[1]) - pos["elevation"] = float(current_values[2]) + pos["azimuth"] = float(current_values[0]) + pos["elevation"] = float(current_values[1]) ism["positions"].append(pos) pos_idx += 1 @@ -429,8 +429,8 @@ def read_ism_ivas_data(metadata_path: str, object_index: int = 0) -> None: current_values = line.strip().split(",") pos = {} pos["use_for_frames"] = 1 - pos["azimuth"] = float(current_values[1]) - pos["elevation"] = float(current_values[2]) + pos["azimuth"] = float(current_values[0]) + pos["elevation"] = float(current_values[1]) ism["positions"].append(pos) pos_idx += 1 except FileNotFoundError: @@ -462,12 +462,12 @@ def write_ism_ivas_data( gain = 1.0 pos_idx = 0 pos_used_times = 0 - for frame_idx in range(num_frames): + for _ in range(num_frames): azimuth = float(positions[pos_idx]["azimuth"]) elevation = float(positions[pos_idx]["elevation"]) file_handle.write( - f"{frame_idx:04d},{azimuth:+07.2f},{elevation:+06.2f},{distance:05.2f},{spread:06.2f},{gain:04.2f}\n" + f"{azimuth:+07.2f},{elevation:+06.2f},{distance:05.2f},{spread:06.2f},{gain:04.2f}\n" ) pos_used_times += 1 -- GitLab From 526f81065262b1b83b5eb71f041942e10ef77091 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 26 Oct 2022 16:55:43 +0200 Subject: [PATCH 312/479] [tests] move renderer tests to tests/renderer in the root directory - update CMakeLists.txt to copy IVAS_crend_unit_test to the same location as `make unittests` does - update .gitlab-ci.yml accordingly - update paths in the corresponding renderer pytest scripts --- .gitignore | 4 ++-- .gitlab-ci.yml | 4 ++-- CMakeLists.txt | 4 ++-- {scripts/tests => tests/renderer}/__init__.py | 0 {scripts/tests => tests/renderer}/compare_audio.py | 5 +++++ {scripts/tests => tests/renderer}/constants.py | 13 +++++++------ {scripts/tests => tests/renderer}/cut/.gitignore | 0 .../renderer}/data/IVAS_ISM_metadata_-30_0.csv | 0 .../renderer}/data/IVAS_ISM_metadata_0_0.csv | 0 .../renderer}/data/IVAS_ISM_metadata_30_0.csv | 0 .../renderer}/data/IVAS_ISM_metadata_circle.csv | 0 .../renderer}/data/ism1_ivas_mtdt_config.txt | 0 .../renderer}/data/ism1_shorthand_config.txt | 0 .../renderer}/data/ism2_ivas_mtdt_config.txt | 0 .../renderer}/data/ism2_shorthand_config.txt | 0 .../renderer}/data/ism3_ivas_mtdt_config.txt | 0 .../renderer}/data/ism3_shorthand_config.txt | 0 .../renderer}/data/ism4_ivas_mtdt_config.txt | 0 .../renderer}/data/ism4_shorthand_config.txt | 0 .../tests => tests/renderer}/data/ism_-90a_0e.csv | 0 .../tests => tests/renderer}/data/ism_0a_0e.csv | 0 .../tests => tests/renderer}/data/ism_180a_0e.csv | 0 .../tests => tests/renderer}/data/ism_90a_0e.csv | 0 .../tests => tests/renderer}/data/masa_scene.txt | 0 .../renderer}/data/mixed_ivas_mtdt_config.txt | 0 .../renderer}/data/mixed_ivas_mtdt_gain_config.txt | 0 .../tests => tests/renderer}/data/mixed_scene.txt | 0 .../renderer}/data/mixed_scene_simple.txt | 0 .../renderer}/data/mixed_shorthand_config.txt | 0 .../renderer}/data/mixed_shorthand_gain_config.txt | 0 .../data/mixed_shorthand_limiter_config.txt | 0 .../renderer}/data/pink_noise_10ch_48kHz.wav | 0 .../renderer}/data/pink_noise_11ch_48kHz.wav | 0 .../renderer}/data/pink_noise_12ch_48kHz.wav | 0 .../renderer}/data/pink_noise_13ch_48kHz.wav | 0 .../renderer}/data/pink_noise_14ch_48kHz.wav | 0 .../renderer}/data/pink_noise_15ch_48kHz.wav | 0 .../renderer}/data/pink_noise_16ch_48kHz.wav | 0 .../renderer}/data/pink_noise_1ch_48kHz.wav | 0 .../renderer}/data/pink_noise_2ch_48kHz.wav | 0 .../renderer}/data/pink_noise_3ch_48kHz.wav | 0 .../renderer}/data/pink_noise_4ch_48kHz.wav | 0 .../renderer}/data/pink_noise_5ch_48kHz.wav | 0 .../renderer}/data/pink_noise_6ch_48kHz.wav | 0 .../renderer}/data/pink_noise_7ch_48kHz.wav | 0 .../renderer}/data/pink_noise_8ch_48kHz.wav | 0 .../renderer}/data/pink_noise_9ch_48kHz.wav | 0 .../data/renderer_config_format_readme.txt | 0 .../renderer}/data/spectral_test_10ch_48kHz.wav | 0 .../renderer}/data/spectral_test_11ch_48kHz.wav | 0 .../renderer}/data/spectral_test_12ch_48kHz.wav | 0 .../renderer}/data/spectral_test_15ch_48kHz.wav | 0 .../renderer}/data/spectral_test_16ch_48kHz.wav | 0 .../renderer}/data/spectral_test_1ch_48kHz.wav | 0 .../renderer}/data/spectral_test_2ch_48kHz.wav | 0 .../renderer}/data/spectral_test_3ch_48kHz.wav | 0 .../renderer}/data/spectral_test_4ch_48kHz.wav | 0 .../renderer}/data/spectral_test_5ch_48kHz.wav | 0 .../renderer}/data/spectral_test_6ch_48kHz.wav | 0 .../renderer}/data/spectral_test_8ch_48kHz.wav | 0 .../renderer}/data/spectral_test_9ch_48kHz.wav | 0 .../renderer}/data/spectral_test_ism1.txt | 0 .../renderer}/data/spectral_test_ism2.txt | 0 .../renderer}/data/spectral_test_ism3.txt | 0 .../renderer}/data/spectral_test_ism4.txt | 0 {scripts/tests => tests/renderer}/data/stvISM1.csv | 0 {scripts/tests => tests/renderer}/data/stvISM2.csv | 0 {scripts/tests => tests/renderer}/data/stvISM3.csv | 0 {scripts/tests => tests/renderer}/data/stvISM4.csv | 0 .../renderer}/data/stv_IVASMASA_1dir1TC.met | 0 .../renderer}/data/stv_IVASMASA_1dir1TC.pcm | 0 .../renderer}/data/stv_IVASMASA_1dir2TC.met | 0 .../renderer}/data/stv_IVASMASA_1dir2TC.pcm | 0 .../renderer}/data/stv_IVASMASA_2dir1TC.met | 0 .../renderer}/data/stv_IVASMASA_2dir1TC.pcm | 0 .../renderer}/data/stv_IVASMASA_2dir2TC.met | 0 .../renderer}/data/stv_IVASMASA_2dir2TC.pcm | 0 {scripts/tests => tests/renderer}/ref/.gitignore | 0 {scripts/tests => tests/renderer}/test_renderer.py | 11 ++++++++--- 79 files changed, 26 insertions(+), 15 deletions(-) rename {scripts/tests => tests/renderer}/__init__.py (100%) rename {scripts/tests => tests/renderer}/compare_audio.py (98%) rename {scripts/tests => tests/renderer}/constants.py (95%) rename {scripts/tests => tests/renderer}/cut/.gitignore (100%) rename {scripts/tests => tests/renderer}/data/IVAS_ISM_metadata_-30_0.csv (100%) rename {scripts/tests => tests/renderer}/data/IVAS_ISM_metadata_0_0.csv (100%) rename {scripts/tests => tests/renderer}/data/IVAS_ISM_metadata_30_0.csv (100%) rename {scripts/tests => tests/renderer}/data/IVAS_ISM_metadata_circle.csv (100%) rename {scripts/tests => tests/renderer}/data/ism1_ivas_mtdt_config.txt (100%) rename {scripts/tests => tests/renderer}/data/ism1_shorthand_config.txt (100%) rename {scripts/tests => tests/renderer}/data/ism2_ivas_mtdt_config.txt (100%) rename {scripts/tests => tests/renderer}/data/ism2_shorthand_config.txt (100%) rename {scripts/tests => tests/renderer}/data/ism3_ivas_mtdt_config.txt (100%) rename {scripts/tests => tests/renderer}/data/ism3_shorthand_config.txt (100%) rename {scripts/tests => tests/renderer}/data/ism4_ivas_mtdt_config.txt (100%) rename {scripts/tests => tests/renderer}/data/ism4_shorthand_config.txt (100%) rename {scripts/tests => tests/renderer}/data/ism_-90a_0e.csv (100%) rename {scripts/tests => tests/renderer}/data/ism_0a_0e.csv (100%) rename {scripts/tests => tests/renderer}/data/ism_180a_0e.csv (100%) rename {scripts/tests => tests/renderer}/data/ism_90a_0e.csv (100%) rename {scripts/tests => tests/renderer}/data/masa_scene.txt (100%) rename {scripts/tests => tests/renderer}/data/mixed_ivas_mtdt_config.txt (100%) rename {scripts/tests => tests/renderer}/data/mixed_ivas_mtdt_gain_config.txt (100%) rename {scripts/tests => tests/renderer}/data/mixed_scene.txt (100%) rename {scripts/tests => tests/renderer}/data/mixed_scene_simple.txt (100%) rename {scripts/tests => tests/renderer}/data/mixed_shorthand_config.txt (100%) rename {scripts/tests => tests/renderer}/data/mixed_shorthand_gain_config.txt (100%) rename {scripts/tests => tests/renderer}/data/mixed_shorthand_limiter_config.txt (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_10ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_11ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_12ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_13ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_14ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_15ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_16ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_1ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_2ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_3ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_4ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_5ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_6ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_7ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_8ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/pink_noise_9ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/renderer_config_format_readme.txt (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_10ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_11ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_12ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_15ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_16ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_1ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_2ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_3ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_4ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_5ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_6ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_8ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_9ch_48kHz.wav (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_ism1.txt (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_ism2.txt (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_ism3.txt (100%) rename {scripts/tests => tests/renderer}/data/spectral_test_ism4.txt (100%) rename {scripts/tests => tests/renderer}/data/stvISM1.csv (100%) rename {scripts/tests => tests/renderer}/data/stvISM2.csv (100%) rename {scripts/tests => tests/renderer}/data/stvISM3.csv (100%) rename {scripts/tests => tests/renderer}/data/stvISM4.csv (100%) rename {scripts/tests => tests/renderer}/data/stv_IVASMASA_1dir1TC.met (100%) rename {scripts/tests => tests/renderer}/data/stv_IVASMASA_1dir1TC.pcm (100%) rename {scripts/tests => tests/renderer}/data/stv_IVASMASA_1dir2TC.met (100%) rename {scripts/tests => tests/renderer}/data/stv_IVASMASA_1dir2TC.pcm (100%) rename {scripts/tests => tests/renderer}/data/stv_IVASMASA_2dir1TC.met (100%) rename {scripts/tests => tests/renderer}/data/stv_IVASMASA_2dir1TC.pcm (100%) rename {scripts/tests => tests/renderer}/data/stv_IVASMASA_2dir2TC.met (100%) rename {scripts/tests => tests/renderer}/data/stv_IVASMASA_2dir2TC.pcm (100%) rename {scripts/tests => tests/renderer}/ref/.gitignore (100%) rename {scripts/tests => tests/renderer}/test_renderer.py (99%) diff --git a/.gitignore b/.gitignore index 55a113e4bb..591570d7d1 100644 --- a/.gitignore +++ b/.gitignore @@ -47,8 +47,8 @@ scripts/ref/ scripts/test/ scripts/out/ scripts/self_test_summary.txt -scripts/tests/cut/ -scripts/tests/ref/ +tests/renderer/cut +tests/renderer/ref tests/dut tests/ref diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bc7b9ade46..a3e6fbc120 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -330,7 +330,7 @@ external-renderer-cmake-asan-pytest: stage: test script: - python3 ci/disable_ram_counting.py - - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_TO_ROOT=true + - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto @@ -343,7 +343,7 @@ external-renderer-cmake-msan-pytest: stage: test script: - python3 ci/disable_ram_counting.py - - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_TO_ROOT=true + - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto diff --git a/CMakeLists.txt b/CMakeLists.txt index 0751f32401..8e9237dcd8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,10 +172,10 @@ endif() add_executable(IVAS_rend apps/renderer.c) target_link_libraries(IVAS_rend lib_rend lib_util) -if(COPY_EXECUTABLES_TO_ROOT) +if(COPY_EXECUTABLES_FROM_BUILD_DIR) # Optionally copy executables to root directory after build add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") - add_custom_command(TARGET IVAS_crend_unit_test POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") + add_custom_command(TARGET IVAS_crend_unit_test POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/ivas_pytests/tests/unit_tests/crend/") endif() diff --git a/scripts/tests/__init__.py b/tests/renderer/__init__.py similarity index 100% rename from scripts/tests/__init__.py rename to tests/renderer/__init__.py diff --git a/scripts/tests/compare_audio.py b/tests/renderer/compare_audio.py similarity index 98% rename from scripts/tests/compare_audio.py rename to tests/renderer/compare_audio.py index 915cc432e9..e7bd34f6df 100644 --- a/scripts/tests/compare_audio.py +++ b/tests/renderer/compare_audio.py @@ -26,10 +26,15 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ +import sys import warnings from typing import Tuple import numpy as np + +from .constants import SCRIPTS_DIR + +sys.path.append(str(SCRIPTS_DIR)) from pyaudio3dtools.audioarray import getdelay diff --git a/scripts/tests/constants.py b/tests/renderer/constants.py similarity index 95% rename from scripts/tests/constants.py rename to tests/renderer/constants.py index 8c5de89dc1..4ecb5f503c 100644 --- a/scripts/tests/constants.py +++ b/tests/renderer/constants.py @@ -26,17 +26,18 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ -from pathlib import PurePath +from pathlib import Path """ Set up paths """ -TESTS_DIR = PurePath(__file__).parent +TESTS_DIR = Path(__file__).parent +SCRIPTS_DIR = TESTS_DIR.parents[1].joinpath("scripts").resolve() TEST_VECTOR_DIR = TESTS_DIR.joinpath("data") OUTPUT_PATH_REF = TESTS_DIR.joinpath("ref") OUTPUT_PATH_CUT = TESTS_DIR.joinpath("cut") -CUSTOM_LAYOUT_DIR = TEST_VECTOR_DIR.parent.parent.joinpath("ls_layouts") -HR_TRAJECTORY_DIR = TEST_VECTOR_DIR.parent.parent.joinpath("trajectories") +CUSTOM_LAYOUT_DIR = SCRIPTS_DIR.joinpath("ls_layouts") +HR_TRAJECTORY_DIR = SCRIPTS_DIR.joinpath("trajectories") """ Renderer commandline template """ RENDERER_CMD = [ @@ -70,7 +71,7 @@ TDRENDERER_CMD = [ """ CREND commandline template """ RENDERER_CREND_CMD = [ - str(TESTS_DIR.parent.parent.joinpath("IVAS_crend_unit_test")), + str(SCRIPTS_DIR.joinpath("ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test")), "-test", "1", "-sr", @@ -84,7 +85,7 @@ RENDERER_CREND_CMD = [ "-o", "/dev/null", # 6 -> output file # "-lp_lfe", - # "-limiter" + "-limiter" # "-no_delay_cmp" ] diff --git a/scripts/tests/cut/.gitignore b/tests/renderer/cut/.gitignore similarity index 100% rename from scripts/tests/cut/.gitignore rename to tests/renderer/cut/.gitignore diff --git a/scripts/tests/data/IVAS_ISM_metadata_-30_0.csv b/tests/renderer/data/IVAS_ISM_metadata_-30_0.csv similarity index 100% rename from scripts/tests/data/IVAS_ISM_metadata_-30_0.csv rename to tests/renderer/data/IVAS_ISM_metadata_-30_0.csv diff --git a/scripts/tests/data/IVAS_ISM_metadata_0_0.csv b/tests/renderer/data/IVAS_ISM_metadata_0_0.csv similarity index 100% rename from scripts/tests/data/IVAS_ISM_metadata_0_0.csv rename to tests/renderer/data/IVAS_ISM_metadata_0_0.csv diff --git a/scripts/tests/data/IVAS_ISM_metadata_30_0.csv b/tests/renderer/data/IVAS_ISM_metadata_30_0.csv similarity index 100% rename from scripts/tests/data/IVAS_ISM_metadata_30_0.csv rename to tests/renderer/data/IVAS_ISM_metadata_30_0.csv diff --git a/scripts/tests/data/IVAS_ISM_metadata_circle.csv b/tests/renderer/data/IVAS_ISM_metadata_circle.csv similarity index 100% rename from scripts/tests/data/IVAS_ISM_metadata_circle.csv rename to tests/renderer/data/IVAS_ISM_metadata_circle.csv diff --git a/scripts/tests/data/ism1_ivas_mtdt_config.txt b/tests/renderer/data/ism1_ivas_mtdt_config.txt similarity index 100% rename from scripts/tests/data/ism1_ivas_mtdt_config.txt rename to tests/renderer/data/ism1_ivas_mtdt_config.txt diff --git a/scripts/tests/data/ism1_shorthand_config.txt b/tests/renderer/data/ism1_shorthand_config.txt similarity index 100% rename from scripts/tests/data/ism1_shorthand_config.txt rename to tests/renderer/data/ism1_shorthand_config.txt diff --git a/scripts/tests/data/ism2_ivas_mtdt_config.txt b/tests/renderer/data/ism2_ivas_mtdt_config.txt similarity index 100% rename from scripts/tests/data/ism2_ivas_mtdt_config.txt rename to tests/renderer/data/ism2_ivas_mtdt_config.txt diff --git a/scripts/tests/data/ism2_shorthand_config.txt b/tests/renderer/data/ism2_shorthand_config.txt similarity index 100% rename from scripts/tests/data/ism2_shorthand_config.txt rename to tests/renderer/data/ism2_shorthand_config.txt diff --git a/scripts/tests/data/ism3_ivas_mtdt_config.txt b/tests/renderer/data/ism3_ivas_mtdt_config.txt similarity index 100% rename from scripts/tests/data/ism3_ivas_mtdt_config.txt rename to tests/renderer/data/ism3_ivas_mtdt_config.txt diff --git a/scripts/tests/data/ism3_shorthand_config.txt b/tests/renderer/data/ism3_shorthand_config.txt similarity index 100% rename from scripts/tests/data/ism3_shorthand_config.txt rename to tests/renderer/data/ism3_shorthand_config.txt diff --git a/scripts/tests/data/ism4_ivas_mtdt_config.txt b/tests/renderer/data/ism4_ivas_mtdt_config.txt similarity index 100% rename from scripts/tests/data/ism4_ivas_mtdt_config.txt rename to tests/renderer/data/ism4_ivas_mtdt_config.txt diff --git a/scripts/tests/data/ism4_shorthand_config.txt b/tests/renderer/data/ism4_shorthand_config.txt similarity index 100% rename from scripts/tests/data/ism4_shorthand_config.txt rename to tests/renderer/data/ism4_shorthand_config.txt diff --git a/scripts/tests/data/ism_-90a_0e.csv b/tests/renderer/data/ism_-90a_0e.csv similarity index 100% rename from scripts/tests/data/ism_-90a_0e.csv rename to tests/renderer/data/ism_-90a_0e.csv diff --git a/scripts/tests/data/ism_0a_0e.csv b/tests/renderer/data/ism_0a_0e.csv similarity index 100% rename from scripts/tests/data/ism_0a_0e.csv rename to tests/renderer/data/ism_0a_0e.csv diff --git a/scripts/tests/data/ism_180a_0e.csv b/tests/renderer/data/ism_180a_0e.csv similarity index 100% rename from scripts/tests/data/ism_180a_0e.csv rename to tests/renderer/data/ism_180a_0e.csv diff --git a/scripts/tests/data/ism_90a_0e.csv b/tests/renderer/data/ism_90a_0e.csv similarity index 100% rename from scripts/tests/data/ism_90a_0e.csv rename to tests/renderer/data/ism_90a_0e.csv diff --git a/scripts/tests/data/masa_scene.txt b/tests/renderer/data/masa_scene.txt similarity index 100% rename from scripts/tests/data/masa_scene.txt rename to tests/renderer/data/masa_scene.txt diff --git a/scripts/tests/data/mixed_ivas_mtdt_config.txt b/tests/renderer/data/mixed_ivas_mtdt_config.txt similarity index 100% rename from scripts/tests/data/mixed_ivas_mtdt_config.txt rename to tests/renderer/data/mixed_ivas_mtdt_config.txt diff --git a/scripts/tests/data/mixed_ivas_mtdt_gain_config.txt b/tests/renderer/data/mixed_ivas_mtdt_gain_config.txt similarity index 100% rename from scripts/tests/data/mixed_ivas_mtdt_gain_config.txt rename to tests/renderer/data/mixed_ivas_mtdt_gain_config.txt diff --git a/scripts/tests/data/mixed_scene.txt b/tests/renderer/data/mixed_scene.txt similarity index 100% rename from scripts/tests/data/mixed_scene.txt rename to tests/renderer/data/mixed_scene.txt diff --git a/scripts/tests/data/mixed_scene_simple.txt b/tests/renderer/data/mixed_scene_simple.txt similarity index 100% rename from scripts/tests/data/mixed_scene_simple.txt rename to tests/renderer/data/mixed_scene_simple.txt diff --git a/scripts/tests/data/mixed_shorthand_config.txt b/tests/renderer/data/mixed_shorthand_config.txt similarity index 100% rename from scripts/tests/data/mixed_shorthand_config.txt rename to tests/renderer/data/mixed_shorthand_config.txt diff --git a/scripts/tests/data/mixed_shorthand_gain_config.txt b/tests/renderer/data/mixed_shorthand_gain_config.txt similarity index 100% rename from scripts/tests/data/mixed_shorthand_gain_config.txt rename to tests/renderer/data/mixed_shorthand_gain_config.txt diff --git a/scripts/tests/data/mixed_shorthand_limiter_config.txt b/tests/renderer/data/mixed_shorthand_limiter_config.txt similarity index 100% rename from scripts/tests/data/mixed_shorthand_limiter_config.txt rename to tests/renderer/data/mixed_shorthand_limiter_config.txt diff --git a/scripts/tests/data/pink_noise_10ch_48kHz.wav b/tests/renderer/data/pink_noise_10ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_10ch_48kHz.wav rename to tests/renderer/data/pink_noise_10ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_11ch_48kHz.wav b/tests/renderer/data/pink_noise_11ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_11ch_48kHz.wav rename to tests/renderer/data/pink_noise_11ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_12ch_48kHz.wav b/tests/renderer/data/pink_noise_12ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_12ch_48kHz.wav rename to tests/renderer/data/pink_noise_12ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_13ch_48kHz.wav b/tests/renderer/data/pink_noise_13ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_13ch_48kHz.wav rename to tests/renderer/data/pink_noise_13ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_14ch_48kHz.wav b/tests/renderer/data/pink_noise_14ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_14ch_48kHz.wav rename to tests/renderer/data/pink_noise_14ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_15ch_48kHz.wav b/tests/renderer/data/pink_noise_15ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_15ch_48kHz.wav rename to tests/renderer/data/pink_noise_15ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_16ch_48kHz.wav b/tests/renderer/data/pink_noise_16ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_16ch_48kHz.wav rename to tests/renderer/data/pink_noise_16ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_1ch_48kHz.wav b/tests/renderer/data/pink_noise_1ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_1ch_48kHz.wav rename to tests/renderer/data/pink_noise_1ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_2ch_48kHz.wav b/tests/renderer/data/pink_noise_2ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_2ch_48kHz.wav rename to tests/renderer/data/pink_noise_2ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_3ch_48kHz.wav b/tests/renderer/data/pink_noise_3ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_3ch_48kHz.wav rename to tests/renderer/data/pink_noise_3ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_4ch_48kHz.wav b/tests/renderer/data/pink_noise_4ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_4ch_48kHz.wav rename to tests/renderer/data/pink_noise_4ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_5ch_48kHz.wav b/tests/renderer/data/pink_noise_5ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_5ch_48kHz.wav rename to tests/renderer/data/pink_noise_5ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_6ch_48kHz.wav b/tests/renderer/data/pink_noise_6ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_6ch_48kHz.wav rename to tests/renderer/data/pink_noise_6ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_7ch_48kHz.wav b/tests/renderer/data/pink_noise_7ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_7ch_48kHz.wav rename to tests/renderer/data/pink_noise_7ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_8ch_48kHz.wav b/tests/renderer/data/pink_noise_8ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_8ch_48kHz.wav rename to tests/renderer/data/pink_noise_8ch_48kHz.wav diff --git a/scripts/tests/data/pink_noise_9ch_48kHz.wav b/tests/renderer/data/pink_noise_9ch_48kHz.wav similarity index 100% rename from scripts/tests/data/pink_noise_9ch_48kHz.wav rename to tests/renderer/data/pink_noise_9ch_48kHz.wav diff --git a/scripts/tests/data/renderer_config_format_readme.txt b/tests/renderer/data/renderer_config_format_readme.txt similarity index 100% rename from scripts/tests/data/renderer_config_format_readme.txt rename to tests/renderer/data/renderer_config_format_readme.txt diff --git a/scripts/tests/data/spectral_test_10ch_48kHz.wav b/tests/renderer/data/spectral_test_10ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_10ch_48kHz.wav rename to tests/renderer/data/spectral_test_10ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_11ch_48kHz.wav b/tests/renderer/data/spectral_test_11ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_11ch_48kHz.wav rename to tests/renderer/data/spectral_test_11ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_12ch_48kHz.wav b/tests/renderer/data/spectral_test_12ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_12ch_48kHz.wav rename to tests/renderer/data/spectral_test_12ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_15ch_48kHz.wav b/tests/renderer/data/spectral_test_15ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_15ch_48kHz.wav rename to tests/renderer/data/spectral_test_15ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_16ch_48kHz.wav b/tests/renderer/data/spectral_test_16ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_16ch_48kHz.wav rename to tests/renderer/data/spectral_test_16ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_1ch_48kHz.wav b/tests/renderer/data/spectral_test_1ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_1ch_48kHz.wav rename to tests/renderer/data/spectral_test_1ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_2ch_48kHz.wav b/tests/renderer/data/spectral_test_2ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_2ch_48kHz.wav rename to tests/renderer/data/spectral_test_2ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_3ch_48kHz.wav b/tests/renderer/data/spectral_test_3ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_3ch_48kHz.wav rename to tests/renderer/data/spectral_test_3ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_4ch_48kHz.wav b/tests/renderer/data/spectral_test_4ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_4ch_48kHz.wav rename to tests/renderer/data/spectral_test_4ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_5ch_48kHz.wav b/tests/renderer/data/spectral_test_5ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_5ch_48kHz.wav rename to tests/renderer/data/spectral_test_5ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_6ch_48kHz.wav b/tests/renderer/data/spectral_test_6ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_6ch_48kHz.wav rename to tests/renderer/data/spectral_test_6ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_8ch_48kHz.wav b/tests/renderer/data/spectral_test_8ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_8ch_48kHz.wav rename to tests/renderer/data/spectral_test_8ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_9ch_48kHz.wav b/tests/renderer/data/spectral_test_9ch_48kHz.wav similarity index 100% rename from scripts/tests/data/spectral_test_9ch_48kHz.wav rename to tests/renderer/data/spectral_test_9ch_48kHz.wav diff --git a/scripts/tests/data/spectral_test_ism1.txt b/tests/renderer/data/spectral_test_ism1.txt similarity index 100% rename from scripts/tests/data/spectral_test_ism1.txt rename to tests/renderer/data/spectral_test_ism1.txt diff --git a/scripts/tests/data/spectral_test_ism2.txt b/tests/renderer/data/spectral_test_ism2.txt similarity index 100% rename from scripts/tests/data/spectral_test_ism2.txt rename to tests/renderer/data/spectral_test_ism2.txt diff --git a/scripts/tests/data/spectral_test_ism3.txt b/tests/renderer/data/spectral_test_ism3.txt similarity index 100% rename from scripts/tests/data/spectral_test_ism3.txt rename to tests/renderer/data/spectral_test_ism3.txt diff --git a/scripts/tests/data/spectral_test_ism4.txt b/tests/renderer/data/spectral_test_ism4.txt similarity index 100% rename from scripts/tests/data/spectral_test_ism4.txt rename to tests/renderer/data/spectral_test_ism4.txt diff --git a/scripts/tests/data/stvISM1.csv b/tests/renderer/data/stvISM1.csv similarity index 100% rename from scripts/tests/data/stvISM1.csv rename to tests/renderer/data/stvISM1.csv diff --git a/scripts/tests/data/stvISM2.csv b/tests/renderer/data/stvISM2.csv similarity index 100% rename from scripts/tests/data/stvISM2.csv rename to tests/renderer/data/stvISM2.csv diff --git a/scripts/tests/data/stvISM3.csv b/tests/renderer/data/stvISM3.csv similarity index 100% rename from scripts/tests/data/stvISM3.csv rename to tests/renderer/data/stvISM3.csv diff --git a/scripts/tests/data/stvISM4.csv b/tests/renderer/data/stvISM4.csv similarity index 100% rename from scripts/tests/data/stvISM4.csv rename to tests/renderer/data/stvISM4.csv diff --git a/scripts/tests/data/stv_IVASMASA_1dir1TC.met b/tests/renderer/data/stv_IVASMASA_1dir1TC.met similarity index 100% rename from scripts/tests/data/stv_IVASMASA_1dir1TC.met rename to tests/renderer/data/stv_IVASMASA_1dir1TC.met diff --git a/scripts/tests/data/stv_IVASMASA_1dir1TC.pcm b/tests/renderer/data/stv_IVASMASA_1dir1TC.pcm similarity index 100% rename from scripts/tests/data/stv_IVASMASA_1dir1TC.pcm rename to tests/renderer/data/stv_IVASMASA_1dir1TC.pcm diff --git a/scripts/tests/data/stv_IVASMASA_1dir2TC.met b/tests/renderer/data/stv_IVASMASA_1dir2TC.met similarity index 100% rename from scripts/tests/data/stv_IVASMASA_1dir2TC.met rename to tests/renderer/data/stv_IVASMASA_1dir2TC.met diff --git a/scripts/tests/data/stv_IVASMASA_1dir2TC.pcm b/tests/renderer/data/stv_IVASMASA_1dir2TC.pcm similarity index 100% rename from scripts/tests/data/stv_IVASMASA_1dir2TC.pcm rename to tests/renderer/data/stv_IVASMASA_1dir2TC.pcm diff --git a/scripts/tests/data/stv_IVASMASA_2dir1TC.met b/tests/renderer/data/stv_IVASMASA_2dir1TC.met similarity index 100% rename from scripts/tests/data/stv_IVASMASA_2dir1TC.met rename to tests/renderer/data/stv_IVASMASA_2dir1TC.met diff --git a/scripts/tests/data/stv_IVASMASA_2dir1TC.pcm b/tests/renderer/data/stv_IVASMASA_2dir1TC.pcm similarity index 100% rename from scripts/tests/data/stv_IVASMASA_2dir1TC.pcm rename to tests/renderer/data/stv_IVASMASA_2dir1TC.pcm diff --git a/scripts/tests/data/stv_IVASMASA_2dir2TC.met b/tests/renderer/data/stv_IVASMASA_2dir2TC.met similarity index 100% rename from scripts/tests/data/stv_IVASMASA_2dir2TC.met rename to tests/renderer/data/stv_IVASMASA_2dir2TC.met diff --git a/scripts/tests/data/stv_IVASMASA_2dir2TC.pcm b/tests/renderer/data/stv_IVASMASA_2dir2TC.pcm similarity index 100% rename from scripts/tests/data/stv_IVASMASA_2dir2TC.pcm rename to tests/renderer/data/stv_IVASMASA_2dir2TC.pcm diff --git a/scripts/tests/ref/.gitignore b/tests/renderer/ref/.gitignore similarity index 100% rename from scripts/tests/ref/.gitignore rename to tests/renderer/ref/.gitignore diff --git a/scripts/tests/test_renderer.py b/tests/renderer/test_renderer.py similarity index 99% rename from scripts/tests/test_renderer.py rename to tests/renderer/test_renderer.py index 5c535e688b..e7a02408ce 100644 --- a/scripts/tests/test_renderer.py +++ b/tests/renderer/test_renderer.py @@ -27,17 +27,20 @@ """ import subprocess as sp +import sys from pathlib import Path from tempfile import TemporaryDirectory from typing import Optional, Tuple import numpy as np -import pyaudio3dtools import pytest from .compare_audio import compare_audio_arrays from .constants import * +sys.path.append(SCRIPTS_DIR) +import pyaudio3dtools + def check_BE( test_info, @@ -97,7 +100,7 @@ def run_pyscripts( if metadata_input is not None: in_file = metadata_input in_name = metadata_input.stem - elif isinstance(in_fmt, PurePath): + elif isinstance(in_fmt, Path): in_file = FORMAT_TO_FILE[in_fmt.stem] in_name = in_fmt.stem else: @@ -467,7 +470,9 @@ def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): check_BE(test_info, ref, ref_fs, cut, cut_fs) -@pytest.mark.skip("Skip CREND unit test comparison until ASAN issues and copying binaries is fixed") +@pytest.mark.skip( + "Skip CREND unit test comparison until ASAN issues and copying binaries is fixed" +) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) def test_multichannel_binaural_static_vs_crend_unittest(test_info, in_fmt, out_fmt): -- GitLab From 0633f4a8ca3e546d0f9fd2aa5cfe34cd7cb87c6a Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 26 Oct 2022 17:02:09 +0200 Subject: [PATCH 313/479] update CI - report all test results and update filepath --- .gitlab-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a3e6fbc120..a98fefea44 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -319,7 +319,7 @@ external-renderer-make-pytest: script: - make -j IVAS_rend - make -j unittests - - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto + - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA # test external renderer executable with cmake + asan external-renderer-cmake-asan-pytest: @@ -332,7 +332,7 @@ external-renderer-cmake-asan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto + - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA # test external renderer executable with cmake + msan external-renderer-cmake-msan-pytest: @@ -345,7 +345,7 @@ external-renderer-cmake-msan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - - python3 -m pytest scripts/tests/test_renderer.py -q --log-level ERROR -n auto + - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA # compare bit exactness between target and source branch ivas-pytest-on-merge-request: -- GitLab From 338cc091494639e3e3133425e64ec1bec3cfa6e2 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 26 Oct 2022 20:39:04 +0200 Subject: [PATCH 314/479] - improve comments - output_fs -> output_Fs --- lib_com/ivas_cnst.h | 21 +++++++++------------ lib_com/ivas_prot.h | 4 ++-- lib_dec/ivas_rotation.c | 4 ++-- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 0512cf27e6..b97cf5c70b 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1418,19 +1418,9 @@ typedef enum /*----------------------------------------------------------------------------------* - * Crend constants + * Orientation tracking constants *----------------------------------------------------------------------------------*/ -#define IVAS_REV_MAX_NR_BRANCHES 8 /* setup is for maximum */ - -#define IVAS_REV_MAX_IIR_FILTER_LENGTH 4 /* maximum nr of taps - MUST BE EVEN! */ - -#define RV_FILTER_MAX_FFT_SIZE ( 512 ) -#define RV_FILTER_MAX_HISTORY ( 512 - 160 ) /* for longest history */ - -#define RV_LENGTH_NR_FC ( RV_FILTER_MAX_FFT_SIZE / 2 ) + 1 - - /* Orientation tracking types */ #define IVAS_ORIENT_TRK_REF 0 #define IVAS_ORIENT_TRK_AVG 1 @@ -1440,14 +1430,21 @@ typedef enum OTR_TRACKING_NONE = IVAS_ORIENT_TRK_REF-1, /* track orientation relative to external reference orientation (default: yaw=pitch=roll=0) */ OTR_TRACKING_REF_ORIENT = IVAS_ORIENT_TRK_REF, /* track orientation relative to external reference orientation (default: yaw=pitch=roll=0) */ OTR_TRACKING_AVG_ORIENT = IVAS_ORIENT_TRK_AVG /* track orientation relative to average orientation */ -} OTR_TRACKING_T; +} OTR_TRACKING_T; /*----------------------------------------------------------------------------------* * Reverberator constants *----------------------------------------------------------------------------------*/ +#define IVAS_REV_MAX_NR_BRANCHES 8 /* setup is for maximum */ +#define IVAS_REV_MAX_IIR_FILTER_LENGTH 4 /* maximum nr of taps - MUST BE EVEN! */ + +#define RV_FILTER_MAX_FFT_SIZE ( 512 ) +#define RV_FILTER_MAX_HISTORY ( 512 - 160 ) /* for longest history */ +#define RV_LENGTH_NR_FC ( RV_FILTER_MAX_FFT_SIZE / 2 ) + 1 + #define IVAS_REVERB_DEFAULT_N_BANDS 31 #define IVAS_REVERB_DEFAULT_PRE_DELAY 0.016f #define IVAS_REVERB_DEFAULT_INPUT_DELAY 0.1f diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index f54f37414f..dbe5ec6e5d 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4578,7 +4578,7 @@ ivas_error ivas_headTrack_open( void rotateFrame_shd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated HOA3 signal buffer in TD */ - const int32_t output_fs, /* i : output sampling frequency */ + const int32_t output_Fs, /* i : output sampling frequency */ const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ const int16_t subframe_idx /* i : subframe index */ @@ -4587,7 +4587,7 @@ void rotateFrame_shd( void rotateFrame_sd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated SD signal buffer in TD */ - const int32_t output_fs, /* i : output sampling frequency */ + const int32_t output_Fs, /* i : output sampling frequency */ const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ const EFAP_HANDLE hEFAPdata, /* i : EFAP structure */ diff --git a/lib_dec/ivas_rotation.c b/lib_dec/ivas_rotation.c index 77809d8270..702dfd08a0 100644 --- a/lib_dec/ivas_rotation.c +++ b/lib_dec/ivas_rotation.c @@ -302,7 +302,7 @@ void rotateAziEle_DirAC( void rotateFrame_shd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated HOA3 signal buffer in TD */ - const int32_t output_fs, /* i : output sampling frequency */ + const int32_t output_Fs, /* i : output sampling frequency */ const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ const int16_t subframe_idx /* i : subframe index */ @@ -321,7 +321,7 @@ void rotateFrame_shd( shd_rot_max_order = hTransSetup.ambisonics_order; /* 1ms linear crossfade */ - fade_len_smp = NS2SA( output_fs, 1000000 ); + fade_len_smp = NS2SA( output_Fs, 1000000 ); tmp = 1.0f / fade_len_smp; for ( i = 0; i < fade_len_smp; i++ ) { -- GitLab From ff3cc1dd50e6877b105778a19d50173e66bdb85f Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 26 Oct 2022 20:48:27 +0200 Subject: [PATCH 315/479] move local constants from ivas_cnst.h to the appropriate file --- lib_com/ivas_cnst.h | 13 +++---------- lib_com/ivas_mdft_imdft.c | 12 ++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index b97cf5c70b..851f965fcc 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -189,10 +189,12 @@ typedef enum #define IVAS_MAX_SBA_ORDER 3 /* Maximum supported Ambisonics order */ +#define IVAS_NUM_SUPPORTED_FS 3 /* number of supported sampling-rates in IVAS */ /*----------------------------------------------------------------------------------* * IVAS Bitrates *----------------------------------------------------------------------------------*/ + #define IVAS_SID_5k2 5200 /* SID frame bitrate */ #define IVAS_13k2 13200 #define IVAS_16k4 16400 @@ -1427,7 +1429,7 @@ typedef enum typedef enum { - OTR_TRACKING_NONE = IVAS_ORIENT_TRK_REF-1, /* track orientation relative to external reference orientation (default: yaw=pitch=roll=0) */ + OTR_TRACKING_NONE = IVAS_ORIENT_TRK_REF-1, /* track orientation relative to external reference orientation (default: yaw=pitch=roll=0) */ // VE: not really used in IVAS (only in unit-test) OTR_TRACKING_REF_ORIENT = IVAS_ORIENT_TRK_REF, /* track orientation relative to external reference orientation (default: yaw=pitch=roll=0) */ OTR_TRACKING_AVG_ORIENT = IVAS_ORIENT_TRK_AVG /* track orientation relative to average orientation */ @@ -1454,13 +1456,6 @@ typedef enum * FB mixer constants *----------------------------------------------------------------------------------*/ -#define IVAS_ONE_BY_960 0.001041666666666666f -#define IVAS_ONE_BY_640 0.0015625f -#define IVAS_ONE_BY_320 0.003125f -#define IVAS_ONE_BY_240 0.004166666666666667f -#define IVAS_ONE_BY_160 0.00625f -#define IVAS_ONE_BY_80 0.0125f - #define IVAS_960_PT_LEN 960 #define IVAS_640_PT_LEN 640 #define IVAS_480_PT_LEN 480 @@ -1470,8 +1465,6 @@ typedef enum #define IVAS_80_PT_LEN 80 #define IVAS_40_PT_LEN 40 -#define IVAS_NUM_SUPPORTED_FS 3 - /* FB windows ovlp */ #define IVAS_FB_4MS_48K_SAMP 192 #define IVAS_FB_1MS_48K_SAMP 48 diff --git a/lib_com/ivas_mdft_imdft.c b/lib_com/ivas_mdft_imdft.c index 4c986e84e5..61797d6746 100644 --- a/lib_com/ivas_mdft_imdft.c +++ b/lib_com/ivas_mdft_imdft.c @@ -42,6 +42,18 @@ #include "wmops.h" +/*-----------------------------------------------------------------------------------------* + * Local constants + *-----------------------------------------------------------------------------------------*/ + +#define IVAS_ONE_BY_960 0.001041666666666666f +#define IVAS_ONE_BY_640 0.0015625f +#define IVAS_ONE_BY_320 0.003125f +#define IVAS_ONE_BY_240 0.004166666666666667f +#define IVAS_ONE_BY_160 0.00625f +#define IVAS_ONE_BY_80 0.0125f + + /*-----------------------------------------------------------------------------------------* * Function ivas_get_mdft_twid_factors() * -- GitLab From 5912615af749cbf27e7920637ea71994c1723fc8 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 27 Oct 2022 10:38:42 +0200 Subject: [PATCH 316/479] [tests] Enable testing against TD Object Renderer Standalone - Fix crash by correctly setting Opt_Headrotation in renderer_standalone.c - Instead of testing against pyaudio3dtools as reference, generate it with TD Standalone instead for corresponding paths --- .../renderer_standalone.c | 5 ++ tests/renderer/constants.py | 2 +- tests/renderer/test_renderer.py | 89 ++++++++----------- 3 files changed, 45 insertions(+), 51 deletions(-) diff --git a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c index 8afcd73603..3c98b8d688 100644 --- a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c +++ b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c @@ -310,12 +310,17 @@ int main( int argc, char *argv[] ) if ( f_quat_traj != NULL ) { + st_ivas->hDecoderConfig->Opt_Headrotation = 1; if ( ( st_ivas->hHeadTrackData = (HEAD_TRACK_DATA_HANDLE) count_malloc( sizeof( HEAD_TRACK_DATA ) ) ) == NULL ) { fprintf( stderr, "Can not allocate memory for head-tracking\n" ); exit( -1 ); } } + else + { + st_ivas->hDecoderConfig->Opt_Headrotation = 0; + } /* Init limiter */ st_ivas->hLimiter = ivas_limiter_open( nChannels, st_ivas->hDecoderConfig->output_Fs ); diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index 4ecb5f503c..b5d5cf3502 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -60,7 +60,7 @@ RENDERER_CMD = [ """ TD Object Renderer commandline template """ TDRENDERER_CMD = [ str( - TESTS_DIR.parent.joinpath("td_object_renderer") + SCRIPTS_DIR.joinpath("td_object_renderer") .joinpath("object_renderer_standalone") .joinpath("renderer_standalone") ), diff --git a/tests/renderer/test_renderer.py b/tests/renderer/test_renderer.py index e7a02408ce..e09dc37222 100644 --- a/tests/renderer/test_renderer.py +++ b/tests/renderer/test_renderer.py @@ -67,6 +67,10 @@ def check_BE( else: snr_min = np.inf + # TODO temporary fix to pad TD Object Renderer Standalone output + if ref.shape != cut.shape: + ref = np.pad(ref, [(0, cut.shape[0] - ref.shape[0]), (0, 0)]) + # check max_diff as well, since compare_audio_arrays will try to adjust for small delay differences if not np.allclose(ref, cut, rtol=0, atol=2) and max_diff > 2: if snr >= snr_min: @@ -203,7 +207,7 @@ def run_crend_unittest( in_name = in_fmt out_file = str( - OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}_crend.wav") + OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}_crend.wav") ) cmd = RENDERER_CREND_CMD[:] @@ -258,7 +262,7 @@ def run_td_standalone( in_file = FORMAT_TO_FILE[in_fmt] in_name = in_fmt - out_file = str(OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}.pcm")) + out_file = str(OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}.pcm")) in_spfmt = pyaudio3dtools.spatialaudioformat.Format(in_fmt) @@ -449,12 +453,11 @@ def test_ism_binaural_static(test_info, in_fmt, out_fmt): except: in_meta_files = None - ref, ref_fs = run_pyscripts(in_fmt, out_fmt, in_meta_files=in_meta_files) + if out_fmt == "BINAURAL": + ref, ref_fs = run_td_standalone(in_fmt, out_fmt, in_meta_files=in_meta_files) + else: + ref, ref_fs = run_pyscripts(in_fmt, out_fmt, in_meta_files=in_meta_files) - # if out_fmt == "BINAURAL": - # cut, cut_fs = run_td_standalone(in_fmt, out_fmt, in_meta_files=in_meta_files) - # else: - # cut, cut_fs = run_renderer(in_fmt, out_fmt, in_meta_files=in_meta_files) cut, cut_fs = run_renderer(in_fmt, out_fmt, in_meta_files=in_meta_files) check_BE(test_info, ref, ref_fs, cut, cut_fs) @@ -470,17 +473,15 @@ def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): check_BE(test_info, ref, ref_fs, cut, cut_fs) -@pytest.mark.skip( - "Skip CREND unit test comparison until ASAN issues and copying binaries is fixed" -) +@pytest.mark.skip("Skip CREND unit test comparison until ASAN issues are fixed") @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) def test_multichannel_binaural_static_vs_crend_unittest(test_info, in_fmt, out_fmt): - cut, cut_fs = run_renderer(in_fmt, out_fmt) - crend, crend_fs = run_crend_unittest(in_fmt, out_fmt) + cut, cut_fs = run_renderer(in_fmt, out_fmt) + check_BE(test_info, cut, cut_fs, crend, crend_fs) @@ -513,27 +514,20 @@ def test_ism_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): except: in_meta_files = None - ref, ref_fs = run_pyscripts( - in_fmt, - out_fmt, - trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - in_meta_files=in_meta_files, - ) - - # if out_fmt == "BINAURAL": - # cut, cut_fs = run_td_standalone( - # in_fmt, - # out_fmt, - # trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - # in_meta_files=in_meta_files, - # ) - # else: - # cut, cut_fs = run_renderer( - # in_fmt, - # out_fmt, - # trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - # in_meta_files=in_meta_files, - # ) + if out_fmt == "BINAURAL": + ref, ref_fs = run_td_standalone( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + in_meta_files=in_meta_files, + ) + else: + ref, ref_fs = run_pyscripts( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + in_meta_files=in_meta_files, + ) cut, cut_fs = run_renderer( in_fmt, @@ -549,24 +543,19 @@ def test_ism_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): - ref, ref_fs = run_pyscripts( - in_fmt, - out_fmt, - trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - ) - # if (in_fmt == "5_1" or in_fmt == "7_1") and out_fmt == "BINAURAL": - # cut, cut_fs = run_td_standalone( - # in_fmt, - # out_fmt, - # trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - # ) - # else: - # cut, cut_fs = run_renderer( - # in_fmt, - # out_fmt, - # trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - # ) + if (in_fmt == "5_1" or in_fmt == "7_1") and out_fmt == "BINAURAL": + ref, ref_fs = run_td_standalone( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + else: + ref, ref_fs = run_pyscripts( + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) cut, cut_fs = run_renderer( in_fmt, -- GitLab From 12d08876e5a648d34be7d2a2f785f5cafa59a008 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 27 Oct 2022 19:44:41 +1100 Subject: [PATCH 317/479] Wrapping AGC command line option in a debugging macro Macro is named `DEBUG_AGC_ENCODER_CMD_OPTION` --- apps/encoder.c | 34 ++++++++++++++++++++++++++++------ lib_com/ivas_prot.h | 6 +++++- lib_com/options.h | 1 + lib_enc/ivas_agc_enc.c | 22 +++++++++++++++++++--- lib_enc/ivas_spar_encoder.c | 4 ++++ lib_enc/ivas_stat_enc.h | 6 +++++- lib_enc/lib_enc.c | 23 ++++++++++++++++++----- lib_enc/lib_enc.h | 8 ++++++-- 8 files changed, 86 insertions(+), 18 deletions(-) diff --git a/apps/encoder.c b/apps/encoder.c index bcd2dcea78..b3c4602b63 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -120,11 +120,13 @@ typedef struct const char *ca_config_file; bool mimeOutput; +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR IVAS_ENC_AGC agc; #else bool agc; -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ bool pca; #ifdef DEBUG_FOA_AGC FILE *agcBitstream; /* temporary */ @@ -444,11 +446,25 @@ int main( } break; case IVAS_ENC_INPUT_SBA: + if ( ( error = + IVAS_ENC_ConfigureForAmbisonics( + hIvasEnc, + arg.inputFs, + totalBitrate, + arg.max_bwidth_user, + bandwidth, + arg.dtxConfig, + arg.inputFormatConfig.sba.order, + arg.inputFormatConfig.sba.isPlanar, +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + arg.agc, +#endif + arg.pca #ifdef DEBUG_SBA_AUDIO_DUMP - if ( ( error = IVAS_ENC_ConfigureForAmbisonics( hIvasEnc, arg.inputFs, totalBitrate, arg.max_bwidth_user, bandwidth, arg.dtxConfig, arg.inputFormatConfig.sba.order, arg.inputFormatConfig.sba.isPlanar, arg.agc, arg.pca, &numTransportChannels ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_ENC_ConfigureForAmbisonics( hIvasEnc, arg.inputFs, totalBitrate, arg.max_bwidth_user, bandwidth, arg.dtxConfig, arg.inputFormatConfig.sba.order, arg.inputFormatConfig.sba.isPlanar, arg.agc, arg.pca ) ) != IVAS_ERR_OK ) + , + &numTransportChannels #endif + ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_ENC_ConfigureForAmbisonics failed: %s\n\n", IVAS_ENC_GetErrorMessage( error ) ); goto cleanup; @@ -874,11 +890,13 @@ static void initArgStruct( EncArguments *arg ) arg->ca_config_file = NULL; arg->mimeOutput = false; +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR arg->agc = IVAS_ENC_AGC_UNDEFINED; #else arg->agc = IVAS_DEFAULT_AGC; -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ arg->pca = false; #ifdef DEBUG_FOA_AGC arg->agcBitstream = NULL; @@ -1384,6 +1402,7 @@ static bool parseCmdlIVAS_enc( arg->inputFormatConfig.stereoToMonoDownmix = true; i++; } +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION else if ( strcmp( argv_to_upper, "-AGC" ) == 0 ) { i++; @@ -1409,6 +1428,7 @@ static bool parseCmdlIVAS_enc( return false; } } +#endif else if ( strcmp( argv_to_upper, "-BYPASS" ) == 0 ) // VE: should be renamed to "-pca" { i++; @@ -1648,13 +1668,15 @@ static void usage_enc( void ) #ifdef DEBUG_SBA fprintf( stdout, "-tag : Tag name for intermediate debug files\n" ); #endif +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR fprintf( stdout, "-agc op : SBA Adaptive gain control, op = (0, 1). \n" ); fprintf( stdout, " By default op is 1 (activated) for bitrates between 24400 and 32000,\n" ); fprintf( stdout, " otherwise it is 0 (deactivated) for all other bitrates\n" ); #else fprintf( stdout, "-agc op : SBA Adaptive gain control, op = (0, 1), by default op is 0 or deactivated\n" ); -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ fprintf( stdout, "-bypass mode : SBA PCA by-pass, mode = (1, 2), 1 = PCA off, 2 = signal adaptive, default is 1\n" ); #ifdef DEBUGGING diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 50f0bba4fb..05e481df4a 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -45,8 +45,10 @@ #include "ivas_stat_com.h" #include "ivas_error_utils.h" #ifdef AGC_ENABLE_FOR_LBR +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #include "lib_enc.h" -#endif +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ +#endif /* AGC_ENABLE_FOR_LBR */ /* clang-format off */ @@ -3774,7 +3776,9 @@ void ivas_sba_prototype_renderer( /* AGC */ #ifdef AGC_ENABLE_FOR_LBR int16_t ivas_agc_enc_get_enablement_flag( +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION IVAS_ENC_AGC agc_configuration, /* i : configuration used when encoder was initialised from cmd line */ +#endif int16_t nchan_transport /* i : number of transport channels */ ); #endif diff --git a/lib_com/options.h b/lib_com/options.h index 8ae36580e8..8aaba4184d 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -126,6 +126,7 @@ #endif /*#define SPAR_HOA_DBG*/ /* SPAR HOA debug statements */ /*#define DEBUG_BINAURAL_FILTER_DESIGN*/ /* debugging of Crend binaural filter design */ +#define DEBUG_AGC_ENCODER_CMD_OPTION /* Ability to force enable or disable AGC behaviour in DIRAC/SPAR via command line option */ #endif /* #################### End DEBUGGING switches ############################ */ diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 0f3274f43c..2fdd312fd8 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -60,6 +60,7 @@ static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_ #endif #ifdef AGC_ENABLE_FOR_LBR +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_get_enablement_flag() * @@ -68,16 +69,31 @@ static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_ * enablement, otherwise AGC is enabled only if there is one transport channel. * *-----------------------------------------------------------------------------------------*/ +#else +/*-----------------------------------------------------------------------------------------* + * Function ivas_agc_enc_get_enablement_flag() + * + * This function determines if AGC should be enabled or disabled. + * AGC is enabled only if there is one transport channel. + * + *-----------------------------------------------------------------------------------------*/ +#endif int16_t ivas_agc_enc_get_enablement_flag( +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION IVAS_ENC_AGC agc_configuration, +#endif int16_t nchan_transport ) { +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION return (int16_t) ( ( agc_configuration == IVAS_ENC_AGC_UNDEFINED ) - ? ( nchan_transport == 1 ) - : agc_configuration ); -} + ? ( nchan_transport == 1 ) + : agc_configuration ); +#else + return (int16_t) ( nchan_transport == 1 ); #endif +} +#endif /* AGC_ENABLE_FOR_LBR */ /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_init() diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index b5f00848a8..8a97813d11 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -121,7 +121,11 @@ ivas_error ivas_spar_enc_open( /* AGC handle */ #ifdef AGC_ENABLE_FOR_LBR +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION hSpar->AGC_Enable = ivas_agc_enc_get_enablement_flag( hEncoderConfig->Opt_AGC_ON, nchan_transport ); +#else + hSpar->AGC_Enable = ivas_agc_enc_get_enablement_flag( nchan_transport ); +#endif #endif if ( ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) { diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 531e69d85a..1ab14fdd03 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -41,8 +41,10 @@ #include "ivas_cnst.h" #include "ivas_stat_com.h" #ifdef AGC_ENABLE_FOR_LBR +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #include "lib_enc.h" -#endif +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ +#endif /* AGC_ENABLE_FOR_LBR */ /*----------------------------------------------------------------------------------* * DFT Stereo encoder structures @@ -1027,11 +1029,13 @@ typedef struct encoder_config_structure int16_t Opt_SC_VBR; /* flag indicating SC-VBR mode */ int16_t last_Opt_SC_VBR; /* flag indicating prev frame's SC-VBR mode */ +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR IVAS_ENC_AGC Opt_AGC_ON; /* flag indicating AGC operation in SBA */ #else /* temp. development parameters */ int16_t Opt_AGC_ON; /* flag indicating AGC operation in SBA */ +#endif #endif int16_t Opt_PCA_ON; /* flag indicating PCA operation in SBA */ diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index d6aa8a54f1..ecd98e71f5 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -451,11 +451,13 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( const IVAS_ENC_DTX_CONFIG dtxConfig, /* i : configuration of DTX, can by set to default by using IVAS_ENC_GetDefaultDtxConfig() */ const IVAS_ENC_SBA_ORDER order, /* i : order of the Ambisonics input */ const bool isPlanar, /* i : if true, input is treated as planar Ambisonics */ +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR const IVAS_ENC_AGC Opt_AGC_ON, /* i : AGC on/off/undefined flag */ #else const bool Opt_AGC_ON, /* i : AGC on/off flag */ -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ const bool Opt_PCA_ON /* i : PCA option flag */ #ifdef DEBUG_SBA_AUDIO_DUMP , @@ -479,11 +481,13 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( hEncoderConfig->sba_order = order; /* Input in ACN/SN3D in all cases (3D and planar): get number of channels */ hEncoderConfig->nchan_inp = ivas_sba_get_nchan( hEncoderConfig->sba_order, 0 ); /*planar input arg. deliberately set to zero since input always in ACN/SN3D*/ +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR hEncoderConfig->Opt_AGC_ON = Opt_AGC_ON; #else hEncoderConfig->Opt_AGC_ON = (int16_t) Opt_AGC_ON; -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ hEncoderConfig->Opt_PCA_ON = (int16_t) Opt_PCA_ON; hIvasEnc->maxBandwidthUser = max_bwidth_user; @@ -897,14 +901,17 @@ static ivas_error configureEncoder( return IVAS_ERROR( IVAS_ERR_DTX_NOT_SUPPORTED, "DTX is not supported in this IVAS format and element mode." ); } +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR if ( hEncoderConfig->Opt_AGC_ON == IVAS_ENC_AGC_ENABLED && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) #else if ( hEncoderConfig->Opt_AGC_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) -#endif +#endif /* AGC_ENABLE_FOR_LBR */ { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "AGC supported in SBA format at bitrates >= 24.4 kbps only." ); } +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ + if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && hEncoderConfig->sba_order == 1 ) ) { @@ -1522,6 +1529,7 @@ static ivas_error printConfigInfo_enc( { fprintf( stdout, "- PCA configured with signal adaptive decision " ); } +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR switch ( hEncoderConfig->Opt_AGC_ON ) { @@ -1543,7 +1551,10 @@ static ivas_error printConfigInfo_enc( { fprintf( stdout, "- AGC ON " ); } -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#else + fprintf( stdout, "- AGC default mode " ); +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ fprintf( stdout, "\n" ); } else if ( hEncoderConfig->ivas_format == MASA_FORMAT ) @@ -2216,11 +2227,13 @@ static void init_encoder_config( hEncoderConfig->stereo_dmx_evs = 0; hEncoderConfig->sba_order = 0; hEncoderConfig->sba_planar = 0; +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR hEncoderConfig->Opt_AGC_ON = IVAS_ENC_AGC_UNDEFINED; #else hEncoderConfig->Opt_AGC_ON = 0; -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ hEncoderConfig->Opt_PCA_ON = 0; return; diff --git a/lib_enc/lib_enc.h b/lib_enc/lib_enc.h index 20eef7b1fe..373da97f96 100644 --- a/lib_enc/lib_enc.h +++ b/lib_enc/lib_enc.h @@ -124,13 +124,15 @@ typedef enum _IVAS_ENC_FORCED_MODE #endif #ifdef AGC_ENABLE_FOR_LBR +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION typedef enum _IVAS_ENC_AGC { IVAS_ENC_AGC_DISABLED = 0, IVAS_ENC_AGC_ENABLED, IVAS_ENC_AGC_UNDEFINED = 0xffff } IVAS_ENC_AGC; -#endif +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ +#endif /* AGC_ENABLE_FOR_LBR */ /*---------------------------------------------------------------------* * Encoder structures @@ -197,11 +199,13 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( const IVAS_ENC_DTX_CONFIG dtxConfig, /* i : configuration of DTX, can by set to default by using IVAS_ENC_GetDefaultDtxConfig() */ const IVAS_ENC_SBA_ORDER order, /* i : order of the Ambisonics input */ const bool isPlanar, /* i : if true, input is treated as planar Ambisonics */ +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR const IVAS_ENC_AGC Opt_AGC_ON, /* i : AGC on/off/undefined flag */ #else const bool Opt_AGC_ON, /* i : AGC on/off flag */ -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ const bool Opt_PCA_ON /* i : PCA option flag */ #ifdef DEBUG_SBA_AUDIO_DUMP , -- GitLab From 80e2683165d1ba514375635671495ab3bcb1372f Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 27 Oct 2022 10:51:26 +0200 Subject: [PATCH 318/479] Implemented [Ref-Using-Main] tag to use main for reference creation. For now only in the MR pipeline, but needs to be added to the comparison on main if it works --- .gitlab-ci.yml | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 27d3656175..60acabfb96 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -82,9 +82,6 @@ stages: - mv IVAS_cod_test IVAS_cod - mv IVAS_dec_test IVAS_dec - ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) - - git checkout $source_branch_commit_sha - .merge-request-comparison-check: &merge-request-comparison-check - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "Non-bitexact cases without non-BE tag encountered!"; exit $EXIT_CODE_FAIL; fi @@ -331,9 +328,16 @@ ivas-pytest-on-merge-request: script: - *print-common-info - *merge_request_comparison_setup + + ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) + - git checkout $source_branch_commit_sha # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true + - ref_using_main=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[ref[ -]*using[ -]*main\]") || true + + ### If ref_using_main is not set, checkoug the source branch to use scripts and input from there + - if [ $ref_using_main == 0 ]; then git checkout $source_branch_commit_sha; fi ### prepare pytest # create short test vectors @@ -342,6 +346,9 @@ ivas-pytest-on-merge-request: - python3 -m pytest tests -v --update_ref 1 -m create_ref - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 + ### Run test using branch scripts and input + - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi + ### run pytest - exit_code=0 - python3 -m pytest tests -v --junit-xml=report-junit.xml || exit_code=$? @@ -372,14 +379,21 @@ evs-pytest-on-merge-request: script: - *print-common-info - *merge_request_comparison_setup - + # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]*non[ -]*be\]") || true + - ref_using_main=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[ref[ -]*using[ -]*main\]") || true + + ### If ref_using_main is not set, checkoug the source branch to use scripts and input from there + - if [ $ref_using_main == 0 ]; then git checkout $source_branch_commit_sha; fi ### prepare pytest # create references - python3 -m pytest tests/test_param_file.py -v --update_ref 1 -m create_ref --param_file scripts/config/self_test_evs.prm + ### Run test using branch scripts and input + - if [ $ref_using_main == 1 ]; then git checkout $source_branch_commit_sha; fi + ### run pytest for EVS cases - exit_code=0 - python3 -m pytest tests/test_param_file.py -v --param_file scripts/config/self_test_evs.prm --junit-xml=report-junit-evs.xml || exit_code=$? -- GitLab From 5a924f0197a4fc915de722cf6a436968bc56f1a0 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Thu, 27 Oct 2022 11:03:29 +0200 Subject: [PATCH 319/479] Updated codec-comparison-on-main-push to consider [ref using main] --- .gitlab-ci.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 60acabfb96..f6f4d1712c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -486,11 +486,12 @@ codec-comparison-on-main-push: - mv IVAS_dec ../IVAS_dec_ref - cd .. - ### re-checkout the latest commit in the main branch - - git checkout $latest_commit - # helper variable - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_COMMIT_MESSAGE | grep -c --ignore-case "\[non[ -]*be\]") || true + - ref_using_main=$(echo $CI_COMMIT_MESSAGE | grep -c --ignore-case "\[ref[ -]*using[ -]*main\]") || true + + ### re-checkout the latest commit in the main branch, if ref_using_main is not set + - if [ $ref_using_main == 0 ]; then git checkout $latest_commit;fi ### prepare pytest # create short test vectors @@ -502,6 +503,9 @@ codec-comparison-on-main-push: - python3 -m pytest tests -v --update_ref 1 -m create_ref - python3 -m pytest tests -v --update_ref 1 -m create_ref_part2 + ### re-checkout the latest commit here, if ref_using_main is set + - if [ $ref_using_main -eq 1 ]; then git checkout $latest_commit;fi + ### run pytest - exit_code=0 - python3 -m pytest tests -v --junit-xml=report-junit.xml || exit_code=$? -- GitLab From 78314c3efa03ff73c7b47f8e236fb4abfa2539c5 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 27 Oct 2022 11:08:22 +0200 Subject: [PATCH 320/479] remove masaRenderer related files to avoid clutter --- scripts/deco.bin | 3 --- scripts/eigen_to_foa_cldfb_domain_filters.bin | 3 --- scripts/eigen_to_hoa2_cldfb_domain_filters.bin | 3 --- scripts/hrir.bin | 0 scripts/sector_filters.bin | 3 --- scripts/vbap_51_table.bin | 3 --- scripts/vbap_714_table.bin | 3 --- scripts/vbap_bin_table.bin | 3 --- 8 files changed, 21 deletions(-) delete mode 100644 scripts/deco.bin delete mode 100644 scripts/eigen_to_foa_cldfb_domain_filters.bin delete mode 100644 scripts/eigen_to_hoa2_cldfb_domain_filters.bin delete mode 100644 scripts/hrir.bin delete mode 100644 scripts/sector_filters.bin delete mode 100644 scripts/vbap_51_table.bin delete mode 100644 scripts/vbap_714_table.bin delete mode 100644 scripts/vbap_bin_table.bin diff --git a/scripts/deco.bin b/scripts/deco.bin deleted file mode 100644 index 3ea11b0fad..0000000000 --- a/scripts/deco.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c24505426ee0d7f5eb019af6d918647eebb363dd96a45ae50be65a4aa2f809c0 -size 229376 diff --git a/scripts/eigen_to_foa_cldfb_domain_filters.bin b/scripts/eigen_to_foa_cldfb_domain_filters.bin deleted file mode 100644 index 3a9d67c0c7..0000000000 --- a/scripts/eigen_to_foa_cldfb_domain_filters.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3c3ebc3d9e031d2d640a32639132771da974874686a378fb323645b9dbb553fe -size 61440 diff --git a/scripts/eigen_to_hoa2_cldfb_domain_filters.bin b/scripts/eigen_to_hoa2_cldfb_domain_filters.bin deleted file mode 100644 index 4c586da3d5..0000000000 --- a/scripts/eigen_to_hoa2_cldfb_domain_filters.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c9097ecbf3b26b814abe141edadc701f1ffec5a141f2becc746926d6d32a7e58 -size 138240 diff --git a/scripts/hrir.bin b/scripts/hrir.bin deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/scripts/sector_filters.bin b/scripts/sector_filters.bin deleted file mode 100644 index 88adf401ba..0000000000 --- a/scripts/sector_filters.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c4ff3f7d925b868aa98e366318c1bb2530ad9738ff53a187dafa5dcebcf3ec68 -size 288 diff --git a/scripts/vbap_51_table.bin b/scripts/vbap_51_table.bin deleted file mode 100644 index 2477f1194a..0000000000 --- a/scripts/vbap_51_table.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d5182e9d0d86d47871e34d8a2821ebef94d8f25d08c51cd0bd618d66a59e4fab -size 3620 diff --git a/scripts/vbap_714_table.bin b/scripts/vbap_714_table.bin deleted file mode 100644 index 1541c1fdee..0000000000 --- a/scripts/vbap_714_table.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ac34d9a81d62ac12094aab948047650017019377059fdf425614ef9f345954f7 -size 294668 diff --git a/scripts/vbap_bin_table.bin b/scripts/vbap_bin_table.bin deleted file mode 100644 index 1bf371c9c5..0000000000 --- a/scripts/vbap_bin_table.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab7bfe8d1c01359213362e8dcce21f42b50c07ed7f7a4a8ff972f516283df027 -size 428608 -- GitLab From 9d5a1dc4eb967333b015a748ab852471af84601f Mon Sep 17 00:00:00 2001 From: norvell Date: Thu, 27 Oct 2022 09:10:47 +0000 Subject: [PATCH 321/479] Correction regarding ref_using_main in ivas-pytest-on-merge-request --- .gitlab-ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f6f4d1712c..8da2346512 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -328,9 +328,6 @@ ivas-pytest-on-merge-request: script: - *print-common-info - *merge_request_comparison_setup - - ### re-checkout the commit from the source branch to have up-to-date self_test.py and scripts/testv (and actually everything) - - git checkout $source_branch_commit_sha # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true -- GitLab From 934afe5f99736cb0bd45dc9c6174dbe4719c2b64 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 27 Oct 2022 11:56:01 +0200 Subject: [PATCH 322/479] Add standalone TD renderer to CMake build --- CMakeLists.txt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e9237dcd8..006940791d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,11 +152,14 @@ file(GLOB libUtilSrcs "lib_util/*.c") file(GLOB libUtilHeaders "lib_util/*.h") add_library(lib_util ${libUtilSrcs} ${libUtilHeaders}) -file(GLOB libCRendSrcs "scripts/ivas_pytests/tests/unit_tests/crend/*.c") -file(GLOB libCRendHeaders "scripts/ivas_pytests/tests/unit_tests/crend/*.h") -add_executable(IVAS_crend_unit_test ${libCRendSrcs} ${libCRendHeaders}) +file(GLOB unitTestCRendSrcs "scripts/ivas_pytests/tests/unit_tests/crend/*.c") +file(GLOB unitTestCRendHeaders "scripts/ivas_pytests/tests/unit_tests/crend/*.h") +add_executable(IVAS_crend_unit_test ${unitTestCRendSrcs} ${unitTestCRendHeaders}) target_link_libraries(IVAS_crend_unit_test lib_rend lib_dec lib_util lib_com lib_debug) +add_executable(renderer_standalone "scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c") +target_link_libraries(renderer_standalone lib_rend lib_dec lib_util lib_com lib_debug) + add_executable(IVAS_cod apps/encoder.c) target_link_libraries(IVAS_cod lib_enc lib_util) if(WIN32) @@ -173,9 +176,10 @@ add_executable(IVAS_rend apps/renderer.c) target_link_libraries(IVAS_rend lib_rend lib_util) if(COPY_EXECUTABLES_FROM_BUILD_DIR) - # Optionally copy executables to root directory after build + # Optionally copy executables to the same place where Make puts them (useful for tests that expect executables in specific places) add_custom_command(TARGET IVAS_cod POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_dec POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_rend POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/") add_custom_command(TARGET IVAS_crend_unit_test POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/ivas_pytests/tests/unit_tests/crend/") + add_custom_command(TARGET renderer_standalone POST_BUILD VERBATIM COMMAND "${CMAKE_COMMAND}" -E copy "$" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/td_object_renderer/object_renderer_standalone/") endif() -- GitLab From c9b09181fa2b14b2cddd305fede36918fbd8a6a6 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 27 Oct 2022 12:18:23 +0200 Subject: [PATCH 323/479] First draft of clang-format job --- .gitlab-ci.yml | 9 +++++++++ scripts/check-format.sh | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 27d3656175..bfe1aecd79 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -400,6 +400,15 @@ evs-pytest-on-merge-request: junit: - report-junit-evs.xml +clang-format-check: + extends: + - .test-job-linux + - .rules-merge-request + stage: maintenance + needs: [] + timeout: "5 minutes" + script: + - scripts/check-format.sh -a -p 8 # --------------------------------------------------------------- # Test jobs for main branch diff --git a/scripts/check-format.sh b/scripts/check-format.sh index 1302b5e03d..9b6911f289 100755 --- a/scripts/check-format.sh +++ b/scripts/check-format.sh @@ -229,7 +229,7 @@ else rm "$NUMFAILSTMPFILE" if [[ $NUMFAILS -gt 0 ]]; then echo "Total fails: $NUMFAILS" -# exit $NUMFAILS ## uncomment if script should have num fails as return code + exit $NUMFAILS ## uncomment if script should have num fails as return code fi fi -- GitLab From 76b5671da7644b59f6bceac809e8fcbd9d52281c Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 27 Oct 2022 12:23:05 +0200 Subject: [PATCH 324/479] Add missing build of standalone TD renderer in ext renderer Make job --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a98fefea44..df216642fe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -319,6 +319,7 @@ external-renderer-make-pytest: script: - make -j IVAS_rend - make -j unittests + - make -j --directory scripts/td_object_renderer/object_renderer_standalone - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA # test external renderer executable with cmake + asan -- GitLab From af202945e86b23266b862c747e48d999bc61dc05 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Thu, 27 Oct 2022 12:48:10 +0200 Subject: [PATCH 325/479] interim commit to check changes on FhG branch --- lib_rend/ivas_crend.c | 20 +++++++++++--------- lib_rend/ivas_lib_rend_internal.h | 2 ++ lib_rend/lib_rend.c | 2 ++ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index bec08cbbaf..defdbae74b 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -30,6 +30,7 @@ *******************************************************************************************************/ +#include "common_api_types.h" #include #include #include "options.h" @@ -1148,6 +1149,7 @@ ivas_error ivas_rend_openCrend( CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, + //IVAS_RENDER_CONFIG_HANDLE hRendererConfig, int32_t output_Fs ) { /* TODO tmu : Based on ivas_crend_open() - could be harmonized / refactored */ @@ -1277,14 +1279,14 @@ ivas_error ivas_rend_openCrend( } /* TODO tmu : implement renderConfig */ - // if ( ( ( st_ivas->hRenderConfig != NULL ) && st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) - // { - // if ( ( error = ivas_reverb_open( &( hCrend->hReverb ), st_ivas->intern_config, hHrtf, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) - // { - // return error; - // } - // } - // else + //if ( ( ( hRendererConfig != NULL ) && hRendererConfig->room_acoustics.late_reverb_on ) ) + //{ + // //if ( ( error = ivas_reverb_open( &( hCrend->hReverb ), st_ivas->intern_config, hHrtf, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) + // { + // return error; + // } + //} + //else { hCrend->hReverb = NULL; } @@ -1760,7 +1762,7 @@ ivas_error ivas_rend_closeCrend( } /*-----------------------------------------------------------------------------------------* - * Function ivas_crend_process() + * Function ivas_rend_crend_process() * * Process call for IVAS Crend renderer *-----------------------------------------------------------------------------------------*/ diff --git a/lib_rend/ivas_lib_rend_internal.h b/lib_rend/ivas_lib_rend_internal.h index e82348484f..339131c811 100644 --- a/lib_rend/ivas_lib_rend_internal.h +++ b/lib_rend/ivas_lib_rend_internal.h @@ -1,3 +1,4 @@ +#include "common_api_types.h" #include "ivas_error.h" #include "lib_rend.h" #include "ivas_stat_dec.h" @@ -40,6 +41,7 @@ ivas_error ivas_rend_openCrend( CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, +// IVAS_RENDER_CONFIG_HANDLE hRendererConfig, int32_t output_Fs ); ivas_error ivas_rend_initCrend( diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 98fe8fdb1f..6a803b1cd1 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -148,6 +148,7 @@ struct IVAS_REND input_mc inputsMc[RENDERER_MAX_MC_INPUTS]; input_sba inputsSba[RENDERER_MAX_SBA_INPUTS]; + IVAS_REND_AudioConfig inputConfig; IVAS_REND_AudioConfig outputConfig; EFAP_WRAPPER efapOutWrapper; IVAS_LSSETUP_CUSTOM_STRUCT customLsOut; @@ -3751,6 +3752,7 @@ static ivas_error renderActiveInputsMc( /* Skip inactive inputs */ continue; } + if ( ( error = renderInputMc( pCurrentInput, hIvasRend->outputConfig, outAudio ) ) != IVAS_ERR_OK ) -- GitLab From 433bde48a04506a1f5af0fa796dc90f1cb79c60b Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 27 Oct 2022 13:22:50 +0200 Subject: [PATCH 326/479] do not filter out rate switching modes for SBA anymore --- ci/run_scheduled_sanitizer_test.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index 4f3cd25c0b..8d257edf99 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -48,9 +48,6 @@ def get_modes(in_format: str) -> list: in_format = "MC_" + in_format + "_b" mode_list = [m for m in output.splitlines() if in_format in m] - if "SBA" in in_format: - # rate switching not implemented yet - mode_list = [m for m in mode_list if not "_rs" in m] return mode_list -- GitLab From ee96f217b9be9f9b6260939f83b97a2f95a6dff6 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 27 Oct 2022 13:30:17 +0200 Subject: [PATCH 327/479] Move clang-format check to "validate" stage --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bfe1aecd79..3b5f7a3081 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -404,7 +404,7 @@ clang-format-check: extends: - .test-job-linux - .rules-merge-request - stage: maintenance + stage: validate needs: [] timeout: "5 minutes" script: -- GitLab From f582b623da57ce6814ce100ffe4673f20a753975 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 27 Oct 2022 13:39:59 +0200 Subject: [PATCH 328/479] remove unused constant define --- lib_enc/lsf_enc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib_enc/lsf_enc.c b/lib_enc/lsf_enc.c index a6d973b36e..1cbe2352a7 100644 --- a/lib_enc/lsf_enc.c +++ b/lib_enc/lsf_enc.c @@ -55,8 +55,7 @@ * Local constants *-----------------------------------------------------------------*/ -#define MSVQ_MAXCNT 3000 /* was 300 */ -#define LOWEMPH_LSFI 1.0f /* bigger value means more weight for lower frequencies */ +#define MSVQ_MAXCNT 3000 /*---------------------------------------------------------------------* @@ -1020,7 +1019,7 @@ void first_VQstages( dist[0] = dist_buf; dist[1] = dist_buf + maxC; - set_s( idx_buf, 0, ( const int16_t )( 2 * stagesVQ * maxC ) ); + set_s( idx_buf, 0, (const int16_t) ( 2 * stagesVQ * maxC ) ); set_s( parents, 0, maxC ); /* Set up inital distance vector */ -- GitLab From 910d40c3732f4e2a927d2f1722c9ec1e8372dbd1 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 27 Oct 2022 13:51:36 +0200 Subject: [PATCH 329/479] add wmops_sub_start/end() to rendering functions --- lib_rend/lib_rend.c | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 6ff1a683c3..d6da36371d 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -2767,6 +2767,8 @@ static ivas_error rotateFrameMc( rotation_gains gains; float tmp_gains[MAX_INPUT_CHANNELS]; + wmops_sub_start("rotateFrameMc"); + if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { getAudioConfigNumChannels( inConfig, &nchan ); @@ -2865,6 +2867,8 @@ static ivas_error rotateFrameMc( } } + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -2886,6 +2890,8 @@ static ivas_error rotateFrameSba( float tmpRot[2 * HEADROT_ORDER + 1]; rotation_gains gains; + wmops_sub_start("rotateFrameSba"); + getAmbisonicsOrder( inConfig, &shd_rot_max_order ); /* subframe loop */ @@ -2960,6 +2966,7 @@ static ivas_error rotateFrameSba( } } + wmops_sub_end(); return IVAS_ERR_OK; } @@ -2972,6 +2979,8 @@ static ivas_error renderIsmToBinaural( ivas_error error; + wmops_sub_start("renderIsmToBinaural"); + copyBufferTo2dArray( ismInput->base.inputBuffer, tmpTDRendBuffer ); /* TODO tmu : missing: interpolation between positions, 5ms rendering */ @@ -2989,6 +2998,8 @@ static ivas_error renderIsmToBinaural( accumulate2dArrayToBuffer( tmpTDRendBuffer, &outAudio ); + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3011,6 +3022,8 @@ static ivas_error renderIsmToBinauralRoom( IVAS_REND_AudioObjectPosition rotatedPos; const IVAS_REND_HeadRotData *headRotData; + wmops_sub_start("renderIsmToBinauralRoom"); + headRotData = ismInput->base.ctx.pHeadRotData; rotatedPos = defaultObjectPosition(); @@ -3103,6 +3116,8 @@ static ivas_error renderIsmToBinauralRoom( count_free( tmpMcBuffer.data ); + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3114,6 +3129,8 @@ static ivas_error renderIsmToMc( pan_vector previousPanGains; ivas_error error; + wmops_sub_start("renderIsmToMc"); + /* TODO(sgi): Possible optimization: less processing needed if position didn't change */ if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, ismInput->currentPos.azimuth, @@ -3138,6 +3155,8 @@ static ivas_error renderIsmToMc( previousPanGains, outAudio ); + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3153,6 +3172,8 @@ static ivas_error renderIsmToSba( ivas_error error; error = IVAS_ERR_OK; + wmops_sub_start("renderIsmToSba"); + if ( ( error = getAudioConfigNumChannels( outConfig, &numOutChannels ) ) != IVAS_ERR_OK ) { return error; @@ -3188,6 +3209,8 @@ static ivas_error renderIsmToSba( previousPanGains, outAudio ); + wmops_sub_end(); + return error; } @@ -3285,6 +3308,8 @@ static ivas_error renderLfeToBinaural( assert( ( outAudio.config.numChannels == 2 ) && "Must be binaural output" ); + wmops_sub_start("renderLfeToBinaural"); + gain = GAIN_LFE; if ( mcInput->base.inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) @@ -3316,6 +3341,8 @@ static ivas_error renderLfeToBinaural( *writePtr++ += gain * ( *readPtr++ ); } + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3331,6 +3358,8 @@ static ivas_error renderMcToBinaural( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; + wmops_sub_start("renderMcToBinaural"); + headRotEnabled = mcInput->base.ctx.pHeadRotData->headRotEnabled; inConfig = mcInput->base.inConfig; @@ -3392,6 +3421,7 @@ static ivas_error renderMcToBinaural( /* TODO tmu : needs delay compensation */ renderLfeToBinaural( mcInput, outAudio ); + wmops_sub_end(); return IVAS_ERR_OK; } @@ -3406,6 +3436,8 @@ static ivas_error renderMcToBinauralRoom( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; + wmops_sub_start("renderMcToBinauralRoom"); + /* apply rotation */ if ( mcInput->base.ctx.pHeadRotData->headRotEnabled ) { @@ -3445,6 +3477,8 @@ static ivas_error renderMcToBinauralRoom( /* TODO tmu : needs delay compensation */ renderLfeToBinaural( mcInput, outAudio ); + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3463,6 +3497,8 @@ static ivas_error renderMcCustomLsToBinauralRoom( IVAS_REND_AudioBuffer tmpMcBuffer; IVAS_REND_AudioBuffer *tmpBufPtr; + wmops_sub_start("renderMcCustomLsToBinauralRoom"); + headRotEnabled = mcInput->base.ctx.pHeadRotData->headRotEnabled; /* apply rotation */ @@ -3519,6 +3555,8 @@ static ivas_error renderMcCustomLsToBinauralRoom( } count_free( tmpMcBuffer.data ); + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3529,6 +3567,8 @@ static ivas_error renderMcToMc( int32_t i; IVAS_REND_AudioBuffer inAudio; + wmops_sub_start("renderMcToMc"); + inAudio = mcInput->base.inputBuffer; for ( i = 0; i < inAudio.config.numChannels; ++i ) @@ -3536,6 +3576,8 @@ static ivas_error renderMcToMc( renderBufferChannel( inAudio, i, mcInput->panGains[i], outAudio ); } + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3546,6 +3588,8 @@ static ivas_error renderMcToSba( int32_t i; IVAS_REND_AudioBuffer inAudio; + wmops_sub_start("renderMcToSba"); + inAudio = mcInput->base.inputBuffer; for ( i = 0; i < inAudio.config.numChannels; ++i ) @@ -3553,6 +3597,8 @@ static ivas_error renderMcToSba( renderBufferChannel( inAudio, i, mcInput->panGains[i], outAudio ); } + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3652,6 +3698,8 @@ static ivas_error renderSbaToMc( int32_t i; IVAS_REND_AudioBuffer inAudio; + wmops_sub_start("renderSbaToMc"); + inAudio = sbaInput->base.inputBuffer; for ( i = 0; i < inAudio.config.numChannels; ++i ) @@ -3659,6 +3707,8 @@ static ivas_error renderSbaToMc( renderBufferChannel( inAudio, i, sbaInput->hoaDecMtx[i], outAudio ); } + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3669,6 +3719,8 @@ static ivas_error renderSbaToSba( int32_t i; IVAS_REND_AudioBuffer inAudio; + wmops_sub_start("renderSbaToSba"); + inAudio = sbaInput->base.inputBuffer; for ( i = 0; i < inAudio.config.numChannels; ++i ) @@ -3676,6 +3728,8 @@ static ivas_error renderSbaToSba( renderBufferChannel( inAudio, i, sbaInput->hoaDecMtx[i], outAudio ); } + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3689,6 +3743,8 @@ static ivas_error renderSbaToBinaural( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; + wmops_sub_start("renderSbaToBinaural"); + /* apply rotation */ if ( sbaInput->base.ctx.pHeadRotData->headRotEnabled ) { @@ -3724,6 +3780,8 @@ static ivas_error renderSbaToBinaural( accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -3742,6 +3800,8 @@ static ivas_error renderSbaToBinauralRoom( IVAS_REND_AudioBuffer tmpMcBuffer; IVAS_REND_AudioBuffer *tmpBufPtr; + wmops_sub_start("renderSbaToBinauralRoom"); + headRotEnabled = sbaInput->base.ctx.pHeadRotData->headRotEnabled; /* apply rotation */ @@ -3797,6 +3857,8 @@ static ivas_error renderSbaToBinauralRoom( } count_free( tmpMcBuffer.data ); + wmops_sub_end(); + return IVAS_ERR_OK; } -- GitLab From 071567cc0cfc64c815a27f556ee973a464c4b557 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 27 Oct 2022 15:09:29 +0200 Subject: [PATCH 330/479] adjust ci file for longer testvectors --- .gitlab-ci.yml | 52 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 27d3656175..9aed91ea75 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ variables: TESTV_DIR: "/usr/local/testv" + LTV_DIR: "/usr/local/ltv" BUILD_OUTPUT: "build_output.txt" EVS_BE_TEST_DIR: "/usr/local/be_2_evs_test" SANITIZER_TESTS: "CLANG1 CLANG2" @@ -91,6 +92,11 @@ stages: - if [ $exit_code -eq 1 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; exit $EXIT_CODE_NON_BE; fi - exit 0 +.update-ltv-repo: &update-ltv-repo + - cd $LTV_DIR + - git pull + - cd - + # --------------------------------------------------------------- # Job templates # --------------------------------------------------------------- @@ -513,10 +519,13 @@ codec-comparison-on-main-push: # --------------------------------------------------------------- .sanitizer-test-template: extends: + # TODO: still needed since MASA ltv vectors are not there yet + # when they were added, we can add a needs-ltv-dir template - .test-job-linux-needs-testv-dir stage: test tags: - sanitizer_test_main + timeout: "2 hours" artifacts: name: "$CI_JOB_NAME--main--sha-$CI_COMMIT_SHORT_SHA" when: always @@ -530,6 +539,7 @@ sanitizer-test-mono: rules: - if: $IS_SANITIZER_TEST_RUN script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS sanitizer-test-stereo: @@ -537,8 +547,9 @@ sanitizer-test-stereo: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 20 minutes + start_in: 1 hour script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py stereo $OUT_FORMATS_CHANNEL_BASED --tests $SANITIZER_TESTS sanitizer-test-stereodmxevs: @@ -546,8 +557,9 @@ sanitizer-test-stereodmxevs: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 40 minutes + start_in: 2 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py StereoDmxEvs mono --tests $SANITIZER_TESTS sanitizer-test-ism1: @@ -555,8 +567,9 @@ sanitizer-test-ism1: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 1 hour + start_in: 3 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py ISM1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-ism2: @@ -564,8 +577,9 @@ sanitizer-test-ism2: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 1 hour 30 minutes + start_in: 4 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py ISM2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-ism3: @@ -573,8 +587,9 @@ sanitizer-test-ism3: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 2 hours + start_in: 6 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py ISM3 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-ism4: @@ -582,8 +597,9 @@ sanitizer-test-ism4: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 2 hours 30 minutes + start_in: 8 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-mc-5_1: @@ -591,8 +607,9 @@ sanitizer-test-mc-5_1: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 3 hours + start_in: 10 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_2: @@ -600,8 +617,9 @@ sanitizer-test-mc-5_1_2: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 4 hours + start_in: 12 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_4: @@ -609,8 +627,9 @@ sanitizer-test-mc-5_1_4: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 5 hours + start_in: 14 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-7_1: @@ -618,8 +637,9 @@ sanitizer-test-mc-7_1: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 6 hours + start_in: 16 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-7_1_4: @@ -627,8 +647,9 @@ sanitizer-test-mc-7_1_4: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 7 hours + start_in: 18 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-masa: @@ -636,8 +657,9 @@ sanitizer-test-masa: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 8 hours + start_in: 20 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-sba: @@ -645,8 +667,9 @@ sanitizer-test-sba: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 9 hours + start_in: 22 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-planarsba: @@ -654,8 +677,9 @@ sanitizer-test-planarsba: rules: - if: $IS_SANITIZER_TEST_RUN when: delayed - start_in: 10 hours + start_in: 24 hours script: + - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS # GCOV/LCOV coverage analysis of self_test suite -- GitLab From 43835d426b18d618f2c1208e0303908c622da387 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 27 Oct 2022 15:12:50 +0200 Subject: [PATCH 331/479] add json config for longer test vectors in CI --- scripts/config/ci_linux_ltv.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 scripts/config/ci_linux_ltv.json diff --git a/scripts/config/ci_linux_ltv.json b/scripts/config/ci_linux_ltv.json new file mode 100644 index 0000000000..e20af4edfd --- /dev/null +++ b/scripts/config/ci_linux_ltv.json @@ -0,0 +1,25 @@ +{ + "afspPath": "not_needed", + "utilPath": "/tools", + "inpaths": { + "MONO": "/usr/local/ltv/ltv48_MONO.wav", + "STEREO": "/usr/local/ltv/ltv48_STEREO.wav", + "FOA": "/usr/local/ltv/ltv48_FOA.wav", + "HOA2": "/usr/local/ltv/ltv48_HOA2.wav", + "HOA3": "/usr/local/ltv/ltv48_HOA3.wav", + "SBA": "/usr/local/ltv/ltv48_HOA3.wav", + "MASA1TC1DIR": "/usr/local/testv/test_MASA_1dir1TC.wav", + "MASA1TC2DIR": "/usr/local/testv/test_MASA_2dir1TC.wav", + "MASA2TC1DIR": "/usr/local/testv/test_MASA_1dir2TC.wav", + "MASA2TC2DIR": "/usr/local/testv/test_MASA_2dir2TC.wav", + "5_1": "/usr/local/ltv/ltv48_MC51.wav", + "5_1_2": "/usr/local/ltv/ltv48_MC512.wav", + "5_1_4": "/usr/local/ltv/ltv48_MC514.wav", + "7_1": "/usr/local/ltv/ltv48_MC71.wav", + "7_1_4": "/usr/local/ltv/ltv48_MC714.wav", + "ISM1": "/usr/local/ltv/ltv48_1ISM.wav", + "ISM2": "/usr/local/ltv/ltv48_2ISM.wav", + "ISM3": "/usr/local/ltv/ltv48_3ISM.wav", + "ISM4": "/usr/local/ltv/ltv48_4ISM.wav" + } +} -- GitLab From f61e4cdaecd657009482e3f204a099c8b905f3cc Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:09:56 +0200 Subject: [PATCH 332/479] [cleanup] accept FIX_I13_TCX_TNS_ISSUE --- lib_com/options.h | 1 - lib_dec/dec_tcx.c | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 0a58d7d06f..e140e912d7 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ #define FIX_TCX10_STEREO_PROC /* Issue 11 */ #define CORECODER_BITRATE_SWITCHING /* Issue 133: support bitrate switching in core-coder */ #define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index c74564e1f7..904e117851 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -1465,12 +1465,6 @@ void decoder_tcx_tns( isTCX5 = 1; tcx5SpectrumDeinterleaving( L >> 1, x ); -#ifndef FIX_I13_TCX_TNS_ISSUE - if ( hTcxCfg->fIsTNSAllowed && fUseTns != 0 && bfi != 1 && tnsData->tnsOnWhitenedSpectra == whitenedDomain ) - { - tcx5TnsGrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x ); - } -#endif } } @@ -1488,12 +1482,10 @@ void decoder_tcx_tns( /* Apply TNS to get the reconstructed signal */ SetTnsConfig( hTcxCfg, L_frame_glob == st->L_frame, ( st->last_core == ACELP_CORE ) && ( frame_cnt == 0 ) ); -#ifdef FIX_I13_TCX_TNS_ISSUE if ( ( L_frame == st->L_frame >> 1 ) && st->tcxonly && isTCX5 ) { tcx5TnsGrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x ); } -#endif ApplyTnsFilter( hTcxCfg->pCurrentTnsConfig, tnsData, x, 0 ); #ifdef DEBUG_PLOT @@ -1502,9 +1494,6 @@ void decoder_tcx_tns( if ( ( L_frame == st->L_frame >> 1 ) && st->tcxonly && isTCX5 ) { -#ifndef FIX_I13_TCX_TNS_ISSUE - tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); -#else if ( st->element_mode == EVS_MONO || L_spec < L_frameTCX ) /* TBC: this is temporary to maintain EVS BE, this is a bug and should be fixed also for EVS (see issue 13) */ { tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); @@ -1513,7 +1502,6 @@ void decoder_tcx_tns( { tcx5TnsUngrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); } -#endif } } -- GitLab From 85d307c0a0e77415213038b0da0148457599ca0f Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:11:22 +0200 Subject: [PATCH 333/479] [cleanup] accept FIX_TCX10_STEREO_PROC --- lib_com/ivas_prot.h | 4 ---- lib_com/options.h | 1 - lib_dec/ivas_mct_dec_mct.c | 4 ---- lib_dec/ivas_mdct_core_dec.c | 6 ------ lib_dec/ivas_stereo_mdct_core_dec.c | 4 ---- lib_dec/ivas_stereo_mdct_stereo_dec.c | 12 ------------ 6 files changed, 31 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 50f0bba4fb..8815fe76ca 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -2169,12 +2169,8 @@ void stereo_decoder_tcx( const int16_t core_l, /* i : core for left channel (TCX20/TCX10) */ const int16_t core_r, /* i : core for right channel (TCX20/TCX10) */ const int16_t igf, /* i : flag for IGF activity */ -#ifdef FIX_TCX10_STEREO_PROC const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ -#else - const int16_t L_frame, /* i : TCX frame length */ -#endif const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ const int16_t last_core_l, /* i : last core for left channel */ const int16_t last_core_r, /* i : last core for right channel */ diff --git a/lib_com/options.h b/lib_com/options.h index e140e912d7..c4f0c18ac2 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define FIX_TCX10_STEREO_PROC /* Issue 11 */ #define CORECODER_BITRATE_SWITCHING /* Issue 133: support bitrate switching in core-coder */ #define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ #define SBA_SPAR_HARM /* Issue 92: maintenance of the SBA SPAR functions */ diff --git a/lib_dec/ivas_mct_dec_mct.c b/lib_dec/ivas_mct_dec_mct.c index 2dd7b18d52..6b8f9b74fa 100644 --- a/lib_dec/ivas_mct_dec_mct.c +++ b/lib_dec/ivas_mct_dec_mct.c @@ -220,11 +220,7 @@ void apply_MCT_dec( { hBlock = hMCT->hBlockData[pair]; -#ifdef FIX_TCX10_STEREO_PROC stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode, sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, sts[1]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 ); -#else - stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode, sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 ); -#endif } applyGlobalILD( sts, hMCT, x ); diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index 748475dc5c..3e186d61b8 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -494,16 +494,10 @@ void ivas_mdct_core_invQ( if ( bfi && !MCT_flag && ( hCPE->hStereoMdct->mdct_stereo_mode[0] > SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[1] > SMDCT_DUAL_MONO ) ) { L_frameTCX[0] = sts[0]->L_frameTCX_past; -#ifdef FIX_TCX10_STEREO_PROC L_frameTCX[1] = sts[1]->L_frameTCX_past; -#endif mvr2r( sts[0]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[0], L_frameTCX[0] ); mvr2r( sts[1]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[1], L_frameTCX[0] ); -#ifdef FIX_TCX10_STEREO_PROC stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], L_frameTCX[1], 0, sts[0]->last_core, sts[1]->last_core, 1 ); -#else - stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 1 ); -#endif } if ( bfi ) diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index 82ad3fc95b..d0d05f1fa0 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -340,11 +340,7 @@ void stereo_mdct_core_dec( #ifdef DEBUGGING assert( ( sts[0]->core == sts[1]->core ) || ( ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) && ( hCPE->hStereoMdct->mdct_stereo_mode[1] == SMDCT_DUAL_MONO ) ) ); #endif -#ifdef FIX_TCX10_STEREO_PROC stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], x[0], x[1], &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], L_frameTCX[1], 0, sts[0]->last_core, sts[1]->last_core, 0 ); -#else - stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], x[0], x[1], &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 0 ); -#endif } ivas_mdct_core_tns_ns( hCPE, 0, fUseTns, tnsData, x, Aq, 0 ); diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 1bdbb5eda7..67b893a9f2 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -214,12 +214,8 @@ void stereo_decoder_tcx( const int16_t core_l, /* i : core for left channel (TCX20/TCX10) */ const int16_t core_r, /* i : core for right channel (TCX20/TCX10) */ const int16_t igf, /* i : flag for IGF activity */ -#ifdef FIX_TCX10_STEREO_PROC const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ -#else - const int16_t L_frame, /* i : TCX frame length */ -#endif const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ const int16_t last_core_l, /* i : last core for left channel */ const int16_t last_core_r, /* i : last core for right channel */ @@ -333,19 +329,11 @@ void stereo_decoder_tcx( if ( ( nrgRatio > 1.0f ) && ( k < ( ( core_r == TCX_20_CORE ) ? 1 : NB_DIV ) ) ) { -#ifdef FIX_TCX10_STEREO_PROC v_multc( spec_r[k], nrgRatio, spec_r[k], L_frameTCX_r ); -#else - v_multc( spec_r[k], nrgRatio, spec_r[k], L_frame / ( ( core_r == TCX_20_CORE ) ? 1 : NB_DIV ) ); -#endif } else if ( ( nrgRatio < 1.0f ) && ( k < ( ( core_l == TCX_20_CORE ) ? 1 : NB_DIV ) ) ) { -#ifdef FIX_TCX10_STEREO_PROC v_multc( spec_l[k], 1.0f / nrgRatio, spec_l[k], L_frameTCX_l ); -#else - v_multc( spec_l[k], 1.0f / nrgRatio, spec_l[k], L_frame / ( ( core_l == TCX_20_CORE ) ? 1 : NB_DIV ) ); -#endif } } } /* for k */ -- GitLab From 117460bf4922efc0c7ae09bccc1f62305b4a471b Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:12:56 +0200 Subject: [PATCH 334/479] [cleanup] accept CORECODER_BITRATE_SWITCHING --- lib_com/ivas_prot.h | 8 - lib_com/options.h | 1 - lib_dec/ivas_corecoder_dec_reconfig.c | 2 - lib_dec/ivas_init_dec.c | 4 - lib_dec/ivas_ism_param_dec.c | 79 ------- lib_dec/ivas_sba_dec.c | 297 -------------------------- lib_enc/ivas_core_enc.c | 14 -- lib_enc/ivas_core_pre_proc.c | 4 - lib_enc/ivas_corecoder_enc_reconfig.c | 2 - lib_enc/ivas_cpe_enc.c | 4 - lib_enc/ivas_dirac_enc.c | 2 - lib_enc/ivas_ism_enc.c | 4 - lib_enc/ivas_ism_param_enc.c | 108 ---------- lib_enc/ivas_sba_enc.c | 288 ------------------------- lib_enc/ivas_sce_enc.c | 12 -- lib_enc/ivas_stat_enc.h | 2 - 16 files changed, 831 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 8815fe76ca..3fd00bd124 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -125,14 +125,12 @@ void ivas_mct_enc_close( MCT_ENC_HANDLE hMCT /* i/o: MCT encoder structure */ ); -#ifdef CORECODER_BITRATE_SWITCHING ivas_error ivas_corecoder_enc_reconfig( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ const int16_t nSCE_old, /* i : number of SCEs in previous frame */ const int16_t nCPE_old, /* i : number of CPEs in previous frame */ const int16_t nchan_transport_old /* i : number of TCs in previous frame */ ); -#endif ivas_error ivas_sce_enc( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ @@ -206,9 +204,7 @@ ivas_error pre_proc_ivas( Encoder_State *st, /* i/o: encoder state structure */ const int16_t last_element_mode, /* i : last element mode */ const int32_t element_brate, /* i : element bitrate */ -#ifdef CORECODER_BITRATE_SWITCHING const int32_t last_element_brate, /* i : last element bitrate */ -#endif const int16_t input_frame, /* i : frame length */ float old_inp_12k8[], /* i/o: buffer of old input signal */ float old_inp_16k[], /* i/o: buffer of old input signal @ 16kHz */ @@ -333,7 +329,6 @@ void ivas_mct_dec_close( MCT_DEC_HANDLE *hMCT /* i/o: MCT decoder structure */ ); -#ifdef CORECODER_BITRATE_SWITCHING ivas_error ivas_corecoder_dec_reconfig( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int16_t nSCE_old, /* i : number of SCEs in previous frame */ @@ -346,7 +341,6 @@ ivas_error ivas_hp20_dec_reconfig( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int16_t nchan_hp20_old /* i : number of HP20 filters in previous frame*/ ); -#endif ivas_error ivas_sce_dec( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ @@ -418,9 +412,7 @@ ivas_error ivas_core_enc( float enerBuffer[CPE_CHANNELS][CLDFB_NO_CHANNELS_MAX], /* i : energy buffer */ float fft_buff[CPE_CHANNELS][2 * L_FFT], /* i : FFT buffer */ const int16_t tdm_SM_flag, /* i : channel combination scheme flag */ -#ifdef CORECODER_BITRATE_SWITCHING const int16_t ivas_format, /* i : IVAS format */ -#endif const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ ); diff --git a/lib_com/options.h b/lib_com/options.h index c4f0c18ac2..ba634b0bbf 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define CORECODER_BITRATE_SWITCHING /* Issue 133: support bitrate switching in core-coder */ #define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ #define SBA_SPAR_HARM /* Issue 92: maintenance of the SBA SPAR functions */ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ diff --git a/lib_dec/ivas_corecoder_dec_reconfig.c b/lib_dec/ivas_corecoder_dec_reconfig.c index cebd170100..af6743abae 100644 --- a/lib_dec/ivas_corecoder_dec_reconfig.c +++ b/lib_dec/ivas_corecoder_dec_reconfig.c @@ -46,7 +46,6 @@ #include "wmops.h" -#ifdef CORECODER_BITRATE_SWITCHING /*-------------------------------------------------------------------* * ivas_corecoder_dec_reconfig() * @@ -401,4 +400,3 @@ ivas_error ivas_hp20_dec_reconfig( return error; } -#endif diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 3250fe05cb..f98c812477 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -892,9 +892,7 @@ ivas_error ivas_init_decoder( } st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ -#ifdef CORECODER_BITRATE_SWITCHING st_ivas->hCPE[0]->hCoreCoder[1] = NULL; -#endif } if ( st_ivas->nCPE > 1 ) @@ -1092,9 +1090,7 @@ ivas_error ivas_init_decoder( } st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ -#ifdef CORECODER_BITRATE_SWITCHING st_ivas->hCPE[0]->hCoreCoder[1] = NULL; -#endif } /* set CNA/CNG flags */ diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index c6c1f99c9c..3f49703c52 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1018,9 +1018,6 @@ static ivas_error ivas_ism_bitrate_switching( const int16_t num_obj /* i : number of objects in the bitstream */ ) { -#ifndef CORECODER_BITRATE_SWITCHING - int16_t sce_id; -#endif ivas_error error; int32_t element_brate_tmp[MAX_NUM_OBJECTS]; @@ -1029,85 +1026,9 @@ static ivas_error ivas_ism_bitrate_switching( ivas_ism_config( st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, num_obj, NULL, NULL, NULL, element_brate_tmp, NULL, NULL ); st_ivas->nSCE = st_ivas->nchan_transport; -#ifdef CORECODER_BITRATE_SWITCHING ivas_corecoder_dec_reconfig( st_ivas, nchan_transport_old, 0, nchan_transport_old, 0 ); -#else - if ( st_ivas->nchan_transport > nchan_transport_old ) - { - /* Initialize for new bitrate */ - for ( sce_id = 0; sce_id < nchan_transport_old; sce_id++ ) - { - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - /* Initialize some memories */ - for ( sce_id = nchan_transport_old; sce_id < st_ivas->nchan_transport; sce_id++ ) - { - if ( ( error = create_sce_dec( st_ivas, sce_id, element_brate_tmp[sce_id] ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } - else - { - /* Initialize for new bitrate */ - for ( sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++ ) - { - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Destroy the core coder memory */ - for ( ; sce_id < nchan_transport_old; sce_id++ ) - { - destroy_sce_dec( st_ivas->hSCE[sce_id] ); - st_ivas->hSCE[sce_id] = NULL; - } - } -#endif - -#ifdef CORECODER_BITRATE_SWITCHING ivas_hp20_dec_reconfig( st_ivas, nchan_transport_old ); -#else - /* destroy the memory of hp20*/ - if ( st_ivas->mem_hp20_out != NULL ) - { - for ( sce_id = 0; sce_id < nchan_transport_old; sce_id++ ) - { - count_free( st_ivas->mem_hp20_out[sce_id] ); - st_ivas->mem_hp20_out[sce_id] = NULL; - } - count_free( st_ivas->mem_hp20_out ); - st_ivas->mem_hp20_out = NULL; - } - - /* re initialize the memory of hp20 */ - /* set number of input channels used for analysis/coding */ - - if ( st_ivas->nchan_transport > 0 ) - { - if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( st_ivas->nchan_transport * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - } - else - { - st_ivas->mem_hp20_out = NULL; - } - - for ( sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++ ) - { - if ( ( st_ivas->mem_hp20_out[sce_id] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - set_f( st_ivas->mem_hp20_out[sce_id], 0.0f, L_HP20_MEM ); - } -#endif /* Initialize the needed renderer struct and destroy the unnecessary renderer struct */ diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 2180cb79a3..3d91d6834d 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -347,15 +347,9 @@ ivas_error ivas_sba_dec_reconfigure( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ) { -#ifdef CORECODER_BITRATE_SWITCHING int16_t i; int16_t nchan_transport, nchan_transport_old; int16_t nSCE_old, nCPE_old, nchan_hp20_old; -#else - int16_t i, n, sce_id, cpe_id; - int16_t nchan_transport, nchan_transport_old; - int16_t nSCE_old, nCPE_old; -#endif AUDIO_CONFIG intern_config_old; int16_t numCldfbAnalyses_old, numCldfbAnalyses, numCldfbSyntheses, numCldfbSyntheses_old; int16_t sba_dirac_stereo_flag_old; @@ -374,9 +368,7 @@ ivas_error ivas_sba_dec_reconfigure( ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); numCldfbAnalyses = 0; -#ifdef CORECODER_BITRATE_SWITCHING nchan_hp20_old = getNumChanSynthesis( st_ivas ); -#endif nSCE_old = st_ivas->nSCE; nCPE_old = st_ivas->nCPE; @@ -456,7 +448,6 @@ ivas_error ivas_sba_dec_reconfigure( * Allocate, initalize, and configure SCE/CPE/MCT handles *-----------------------------------------------------------------*/ -#ifdef CORECODER_BITRATE_SWITCHING ivas_corecoder_dec_reconfig( st_ivas, nSCE_old, nCPE_old, nchan_transport_old, sba_dirac_stereo_flag_old ); /*-----------------------------------------------------------------* @@ -464,251 +455,6 @@ ivas_error ivas_sba_dec_reconfigure( *-----------------------------------------------------------------*/ ivas_hp20_dec_reconfig( st_ivas, nchan_hp20_old ); -#else - - if ( nchan_transport == nchan_transport_old ) - { - for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) - { - st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) - { - st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; - - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - } - - if ( st_ivas->nCPE > 1 ) - { - if ( ( error = mct_dec_reconfigure( st_ivas, 0 ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } - else - { - int16_t nSCE_existing; - int16_t nCPE_existing; - - nSCE_existing = min( nSCE_old, st_ivas->nSCE ); - nCPE_existing = min( nCPE_old, st_ivas->nCPE ); - - /* destroy superfluous core coder elements */ - for ( sce_id = st_ivas->nSCE; sce_id < nSCE_old; sce_id++ ) - { - destroy_sce_dec( st_ivas->hSCE[sce_id] ); - st_ivas->hSCE[sce_id] = NULL; - - /* remove dummy CPE needed for 1TC->Stereo rendering via DFT stereo*/ - if ( sba_dirac_stereo_flag_old ) - { -#ifdef DEBUGGING - assert( st_ivas->hCPE[0] ); -#endif - st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hCPE[0]->hCoreCoder[1] = NULL; - destroy_cpe_dec( st_ivas->hCPE[0] ); - st_ivas->hCPE[0] = NULL; - } - } - - for ( cpe_id = st_ivas->nCPE; cpe_id < nCPE_old; cpe_id++ ) - { - destroy_cpe_dec( st_ivas->hCPE[cpe_id] ); - st_ivas->hCPE[cpe_id] = NULL; - } - - if ( st_ivas->nCPE <= 1 && st_ivas->hMCT != NULL ) - { - ivas_mct_dec_close( &st_ivas->hMCT ); - } - - /* special case, if we have MCT now and had a single CPE before, remove the MDCT Stereo handles from the first CPE*/ - if ( st_ivas->nCPE > 1 && nCPE_old == 1 ) - { - count_free( st_ivas->hCPE[0]->hStereoMdct ); - st_ivas->hCPE[0]->hStereoMdct = NULL; - } - - for ( sce_id = 0; sce_id < nSCE_existing; sce_id++ ) - { - st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - for ( ; sce_id < st_ivas->nSCE; sce_id++ ) - { - if ( ( error = create_sce_dec( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - for ( cpe_id = 0; cpe_id < nCPE_existing; cpe_id++ ) - { - st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; - - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - } - for ( ; cpe_id < st_ivas->nCPE; cpe_id++ ) - { - if ( ( error = create_cpe_dec( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - /* create CPE element for DFT Stereo like upmix */ - if ( st_ivas->sba_dirac_stereo_flag ) - { - if ( ( error = create_cpe_dec( st_ivas, 0, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) - { - return error; - } - - st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ - } - - if ( st_ivas->nCPE > 1 && nCPE_old <= 1 ) - { - if ( nCPE_old == 1 ) - { - /* set correct nominal bitrates and igf config already here, needed for the correct init of the MDCT Stereo handles for MCT */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[0]->hCoreCoder[n]->total_brate = st_ivas->hCPE[0]->element_brate; - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[0]->element_brate / FRAMES_PER_SEC ); - st_ivas->hCPE[0]->hCoreCoder[n]->igf = 0; - } - } - - if ( ( error = create_mct_dec( st_ivas ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else if ( st_ivas->hMCT != NULL && st_ivas->nCPE > 1 ) - { - if ( ( error = mct_dec_reconfigure( st_ivas, st_ivas->nCPE != nCPE_old ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - /* special case, if we have a single CPE and had MCT before we need to init the MDCT stereo handles here */ - if ( st_ivas->nCPE == 1 && nCPE_old > 1 ) - { - if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct = (STEREO_MDCT_DEC_DATA_HANDLE) count_malloc( sizeof( STEREO_MDCT_DEC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MDCT Stereo \n" ) ); - } - - st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->use_itd = 0; - st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->reverse_dmx = 0; - st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->smooth_ratio = 1.f; - - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - /* reset mct_chan_mode */ - st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode = MCT_CHAN_MODE_REGULAR; - } - } - - /*-----------------------------------------------------------------* - * HP20 memories - *-----------------------------------------------------------------*/ - - if ( nchan_transport > nchan_transport_old ) - { - /* create additional hp20 memories */ - float **old_mem_hp20_out; - uint16_t n_old; - - if ( sba_dirac_stereo_flag_old ) - { - n_old = CPE_CHANNELS; - } - else - { - n_old = nchan_transport_old; - } - n = st_ivas->nchan_transport; - - /* save old mem_hp_20 pointer */ - old_mem_hp20_out = st_ivas->mem_hp20_out; - st_ivas->mem_hp20_out = NULL; - if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - for ( i = 0; i < n_old; i++ ) - { - st_ivas->mem_hp20_out[i] = old_mem_hp20_out[i]; - old_mem_hp20_out[i] = NULL; - } - for ( ; i < nchan_transport; i++ ) - { - if ( ( st_ivas->mem_hp20_out[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - set_f( st_ivas->mem_hp20_out[i], 0.0f, L_HP20_MEM ); - } - - count_free( old_mem_hp20_out ); - old_mem_hp20_out = NULL; - } - else if ( nchan_transport < nchan_transport_old ) - { - /* remove superfluous hp20 memories */ - float **old_mem_hp20_out; - - if ( st_ivas->sba_dirac_stereo_flag ) - { - n = CPE_CHANNELS; - } - else - { - n = st_ivas->nchan_transport; - } - - /* save old mem_hp_20 pointer */ - old_mem_hp20_out = st_ivas->mem_hp20_out; - st_ivas->mem_hp20_out = NULL; - if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - for ( i = 0; i < n; i++ ) - - { - st_ivas->mem_hp20_out[i] = old_mem_hp20_out[i]; - old_mem_hp20_out[i] = NULL; - } - for ( ; i < nchan_transport_old; i++ ) - { - count_free( old_mem_hp20_out[i] ); - old_mem_hp20_out[i] = NULL; - } - - count_free( old_mem_hp20_out ); - old_mem_hp20_out = NULL; - } - } -#endif /*-----------------------------------------------------------------* * CLDFB instances @@ -769,49 +515,6 @@ ivas_error ivas_sba_dec_reconfigure( } } -#ifndef CORECODER_BITRATE_SWITCHING - /*-----------------------------------------------------------------* - * Set CNA/CNG flags - *-----------------------------------------------------------------*/ - - if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->nchan_transport == 1 ) - { - /* skip as done in init function */ - } - else if ( st_ivas->nchan_transport == 1 && ( ( st_ivas->renderer_type == RENDERER_DIRAC && st_ivas->hDirAC->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD ) || ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) ) - { - st_ivas->hSCE[0]->hCoreCoder[0]->cna_dirac_flag = 1; - st_ivas->hSCE[0]->hCoreCoder[0]->cng_sba_flag = 1; - } - else if ( st_ivas->nchan_transport == 2 ) - { - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[0]->hCoreCoder[n]->cna_dirac_flag = 0; - st_ivas->hCPE[0]->hCoreCoder[n]->cng_sba_flag = 1; - } - } - else - { - for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) - { - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cna_dirac_flag = 0; - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 0; - } - } - } - - /* special case, if the decoder goes from 1TC DTX to 2TC active frame (in case the bitstream started with an SBA SID frame), allocate DTX memories */ - if ( last_ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE >= 1 ) - { - if ( ( error = initMdctStereoDtxData( st_ivas->hCPE[0] ) ) != IVAS_ERR_OK ) - { - return error; - } - } -#endif /*-------------------------------------------------------------------* * Reallocate and initialize binaural rendering handles diff --git a/lib_enc/ivas_core_enc.c b/lib_enc/ivas_core_enc.c index 597f1d5854..d3e9852080 100644 --- a/lib_enc/ivas_core_enc.c +++ b/lib_enc/ivas_core_enc.c @@ -79,9 +79,7 @@ ivas_error ivas_core_enc( float enerBuffer[CPE_CHANNELS][CLDFB_NO_CHANNELS_MAX], /* i : energy buffer */ float fft_buff[CPE_CHANNELS][2 * L_FFT], /* i : FFT buffer */ const int16_t tdm_SM_or_LRTD_Pri, /* i : channel combination scheme flag in TD stereo OR LRTD primary channel */ -#ifdef CORECODER_BITRATE_SWITCHING const int16_t ivas_format, /* i : IVAS format */ -#endif const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ ) { @@ -104,11 +102,7 @@ ivas_error ivas_core_enc( int16_t unbits[CPE_CHANNELS]; float tdm_lspQ_PCh[M], tdm_lsfQ_PCh[M]; int16_t last_element_mode, tdm_Pitch_reuse_flag; -#ifdef CORECODER_BITRATE_SWITCHING int32_t element_brate, last_element_brate, input_Fs; -#else - int32_t element_brate, input_Fs; -#endif ivas_error error; wmops_sub_start( "ivas_core_enc" ); @@ -127,9 +121,7 @@ ivas_error ivas_core_enc( hStereoTD = NULL; hStereoICBWE = NULL; element_brate = hSCE->element_brate; -#ifdef CORECODER_BITRATE_SWITCHING last_element_brate = hSCE->last_element_brate; -#endif last_element_mode = IVAS_SCE; tdm_Pitch_reuse_flag = -1; } @@ -144,9 +136,7 @@ ivas_error ivas_core_enc( sts = hCPE->hCoreCoder; hStereoICBWE = hCPE->hStereoICBWE; element_brate = hCPE->element_brate; -#ifdef CORECODER_BITRATE_SWITCHING last_element_brate = hCPE->last_element_brate; -#endif last_element_mode = hCPE->last_element_mode; if ( hCPE->hStereoTD != NULL ) @@ -187,11 +177,7 @@ ivas_error ivas_core_enc( * Pre-processing, incl. Decision matrix *---------------------------------------------------------------------*/ -#ifdef CORECODER_BITRATE_SWITCHING if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, ivas_format == SBA_FORMAT ? last_element_brate : element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], MCT_flag, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) -#else - if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], MCT_flag, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_enc/ivas_core_pre_proc.c b/lib_enc/ivas_core_pre_proc.c index 3cc206e65e..c1a109277c 100644 --- a/lib_enc/ivas_core_pre_proc.c +++ b/lib_enc/ivas_core_pre_proc.c @@ -55,9 +55,7 @@ ivas_error pre_proc_ivas( Encoder_State *st, /* i/o: encoder state structure */ const int16_t last_element_mode, /* i : last element mode */ const int32_t element_brate, /* i : element bitrate */ -#ifdef CORECODER_BITRATE_SWITCHING const int32_t last_element_brate, /* i : last element bitrate */ -#endif const int16_t input_frame, /* i : frame length */ float old_inp_12k8[], /* i/o: buffer of old input signal */ float old_inp_16k[], /* i/o: buffer of old input signal @ 16kHz */ @@ -278,12 +276,10 @@ ivas_error pre_proc_ivas( { st->hTcxEnc->tfm_mem = 0.75f; } -#ifdef CORECODER_BITRATE_SWITCHING else if ( element_brate != last_element_brate ) { SetModeIndex( st, st->bits_frame_nominal * FRAMES_PER_SEC, element_mode, MCT_flag ); } -#endif /*-----------------------------------------------------------------* diff --git a/lib_enc/ivas_corecoder_enc_reconfig.c b/lib_enc/ivas_corecoder_enc_reconfig.c index f4b302eefd..dffd53bb93 100644 --- a/lib_enc/ivas_corecoder_enc_reconfig.c +++ b/lib_enc/ivas_corecoder_enc_reconfig.c @@ -43,7 +43,6 @@ #include "wmops.h" -#ifdef CORECODER_BITRATE_SWITCHING /*-------------------------------------------------------------------* * ivas_corecoder_enc_reconfig() * @@ -393,4 +392,3 @@ ivas_error ivas_corecoder_enc_reconfig( return error; } -#endif diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 491a9ab358..e047defac6 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -612,11 +612,7 @@ ivas_error ivas_cpe_enc( * Core Encoder *----------------------------------------------------------------*/ -#ifdef CORECODER_BITRATE_SWITCHING if ( ( error = ivas_core_enc( NULL, hCPE, st_ivas->hMCT, n_CoreChannels, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, tdm_SM_or_LRTD_Pri, ivas_format, 0 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_core_enc( NULL, hCPE, st_ivas->hMCT, n_CoreChannels, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, tdm_SM_or_LRTD_Pri, 0 ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 6d281256d9..2386037052 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -457,7 +457,6 @@ void ivas_dirac_enc_spar_delay_synchro( { int16_t ch_idx; float tmp_buffer[L_FRAME48k]; -#ifdef CORECODER_BITRATE_SWITCHING Encoder_State *sts[MCT_MAX_BLOCKS]; int16_t sce_id, cpe_id, i_chan; @@ -487,7 +486,6 @@ void ivas_dirac_enc_spar_delay_synchro( mvr2r( sts[ch_idx]->input, st_ivas->hDirAC->sba_synchro_buffer[ch_idx], st_ivas->hDirAC->num_samples_synchro_delay ); } } -#endif for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) { diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 2122dcf874..3c8a1f04b3 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -262,11 +262,7 @@ ivas_error ivas_ism_enc( * Encoder *----------------------------------------------------------------*/ -#ifdef CORECODER_BITRATE_SWITCHING if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8[sce_id], old_inp_16k[sce_id], Etot[sce_id], ener[sce_id], A[sce_id], Aw[sce_id], epsP[sce_id], lsp_new[sce_id], lsp_mid[sce_id], vad_hover_flag[sce_id], attack_flag[sce_id], realBuffer[sce_id], imagBuffer[sce_id], old_wsp[sce_id], loc_harm[sce_id], cor_map_sum[sce_id], vad_flag_dtx[sce_id], enerBuffer[sce_id], fft_buff[sce_id], 0, ISM_FORMAT, 0 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8[sce_id], old_inp_16k[sce_id], Etot[sce_id], ener[sce_id], A[sce_id], Aw[sce_id], epsP[sce_id], lsp_new[sce_id], lsp_mid[sce_id], vad_hover_flag[sce_id], attack_flag[sce_id], realBuffer[sce_id], imagBuffer[sce_id], old_wsp[sce_id], loc_harm[sce_id], cor_map_sum[sce_id], vad_flag_dtx[sce_id], enerBuffer[sce_id], fft_buff[sce_id], 0, 0 ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index 3358e41e21..fff76944c9 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -42,10 +42,8 @@ #include "wmops.h" #ifndef FIX_155_HP20_ISSUE -#ifdef CORECODER_BITRATE_SWITCHING static ivas_error ivas_hp20_reconfig( Encoder_Struct *st_ivas, const int16_t nchan_hp20_old ); #endif -#endif /*------------------------------------------------------------------------- * Local function definitions *------------------------------------------------------------------------*/ @@ -420,12 +418,7 @@ ivas_error ivas_ism_enc_config( ivas_error error; ISM_MODE last_ism_mode; #ifdef ISM_BITRATE_SWITCHING -#ifdef CORECODER_BITRATE_SWITCHING int16_t nchan_transport_old; -#else - int16_t nSCE_old, nchan_transport_old; - int16_t sce_id, n; -#endif #endif error = IVAS_ERR_OK; @@ -439,13 +432,7 @@ ivas_error ivas_ism_enc_config( if ( ( st_ivas->ism_mode != last_ism_mode ) || ( st_ivas->hEncoderConfig->ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate ) ) { int32_t element_brate_tmp[MAX_NUM_OBJECTS]; -#ifndef CORECODER_BITRATE_SWITCHING - Indice *ind_list_sce, *ind_list_metadata; -#endif -#ifndef CORECODER_BITRATE_SWITCHING - nSCE_old = st_ivas->nSCE; -#endif nchan_transport_old = st_ivas->nchan_transport; /* Reset and Initialize */ @@ -463,60 +450,7 @@ ivas_error ivas_ism_enc_config( ivas_ism_config( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hEncoderConfig->nchan_inp, NULL, NULL, NULL, element_brate_tmp, NULL, NULL ); -#ifdef CORECODER_BITRATE_SWITCHING ivas_corecoder_enc_reconfig( st_ivas, nchan_transport_old, 0, nchan_transport_old ); -#else - if ( st_ivas->nSCE > nSCE_old ) - { - /* Reconfigure the core coders */ - for ( sce_id = 0; sce_id < nSCE_old; sce_id++ ) - { - copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Initialize the extra required memory */ - ind_list_sce = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr->ind_list; - ind_list_metadata = st_ivas->hSCE[0]->hMetaData->ind_list; - - for ( sce_id = nSCE_old; sce_id < st_ivas->nSCE; sce_id++ ) - { - /* Initialize the Core Coder */ - if ( ( error = create_sce_enc( st_ivas, sce_id, element_brate_tmp[sce_id] ) ) != IVAS_ERR_OK ) - { - return error; - } - - /* prepare bitstream buffers */ - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list_sce + ( sce_id * MAX_NUM_INDICES ); - reset_indices_enc( st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES ); - - st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + ( sce_id * MAX_BITS_METADATA ); - reset_indices_enc( st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA ); - } - } - else - { - /* Reconfigure the Core Coders */ - for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) - { - copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Delete the extra memory */ - for ( sce_id = st_ivas->nSCE; sce_id < nSCE_old; sce_id++ ) - { - if ( st_ivas->hSCE[sce_id] != NULL ) - { - destroy_sce_enc( st_ivas->hSCE[sce_id] ); - st_ivas->hSCE[sce_id] = NULL; - } - } - } -#endif if ( st_ivas->ism_mode == ISM_MODE_PARAM && last_ism_mode == ISM_MODE_DISC ) { @@ -535,47 +469,7 @@ ivas_error ivas_ism_enc_config( } #ifndef FIX_155_HP20_ISSUE -#ifdef CORECODER_BITRATE_SWITCHING ivas_hp20_reconfig( st_ivas, nchan_transport_old ); -#else - /* destroy the memory of hp20*/ - if ( st_ivas->mem_hp20_in != NULL ) - { - for ( sce_id = 0; sce_id < nSCE_old; sce_id++ ) - { - count_free( st_ivas->mem_hp20_in[sce_id] ); - st_ivas->mem_hp20_in[sce_id] = NULL; - } - count_free( st_ivas->mem_hp20_in ); - st_ivas->mem_hp20_in = NULL; - } - - /* re initialize the memory of hp20 */ - /* set number of input channels used for analysis/coding */ - n = getNumChanAnalysis( st_ivas ); - - if ( n > 0 ) - { - if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - } - else - { - st_ivas->mem_hp20_in = NULL; - } - - for ( sce_id = 0; sce_id < n; sce_id++ ) - { - if ( ( st_ivas->mem_hp20_in[sce_id] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - set_f( st_ivas->mem_hp20_in[sce_id], 0.0f, L_HP20_MEM ); - } -#endif #endif } #else @@ -591,7 +485,6 @@ ivas_error ivas_ism_enc_config( } #ifndef FIX_155_HP20_ISSUE -#ifdef CORECODER_BITRATE_SWITCHING // VE: this is the same function as at the decoder -> harmonize them to a new file ivas_corecoder_reconfig.c /*-------------------------------------------------------------------* * ivas_hp20_dec_reconfig() @@ -676,4 +569,3 @@ static ivas_error ivas_hp20_reconfig( return error; } #endif -#endif diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index d4c7c70b21..ed51037dcf 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -105,10 +105,6 @@ ivas_error ivas_sba_enc_reconfigure( ) { int16_t nSCE_old, nCPE_old, nchan_transport_old; -#ifndef CORECODER_BITRATE_SWITCHING - int16_t n, sce_id, cpe_id; - Indice *ind_list_metadata; -#endif int32_t ivas_total_brate; ivas_error error; @@ -121,301 +117,17 @@ ivas_error ivas_sba_enc_reconfigure( nchan_transport_old = st_ivas->nchan_transport; nCPE_old = st_ivas->nCPE; nSCE_old = st_ivas->nSCE; -#ifndef CORECODER_BITRATE_SWITCHING - ind_list_metadata = NULL; -#endif st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); ivas_dirac_enc_reconfigure( st_ivas ); -#ifdef CORECODER_BITRATE_SWITCHING /*-----------------------------------------------------------------* * Allocate, initalize, and configure SCE/CPE/MCT handles *-----------------------------------------------------------------*/ ivas_corecoder_enc_reconfig( st_ivas, nSCE_old, nCPE_old, nchan_transport_old ); -#else - - if ( hEncoderConfig->nchan_transport == nchan_transport_old ) - { - for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) - { - copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); - st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) - { - st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - copy_encoder_config( st_ivas, st_ivas->hCPE[cpe_id]->hCoreCoder[n], 0 ); - - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - } - - if ( st_ivas->nCPE > 1 ) - { - if ( ( error = mct_enc_reconfigure( st_ivas, 0 ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } - else - { - Indice *ind_list; - int16_t nb_bits_tot; - int16_t next_ind; - int16_t last_ind; - BSTR_ENC_HANDLE hBstr; - BSTR_ENC_HANDLE hMetaData; - - ind_list = NULL; - hBstr = NULL; - hMetaData = NULL; - - /* get the index list pointers */ - if ( nSCE_old ) - { - hBstr = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr; - hMetaData = st_ivas->hSCE[0]->hMetaData; - } - else if ( nCPE_old ) - { - hBstr = st_ivas->hCPE[0]->hCoreCoder[0]->hBstr; - hMetaData = st_ivas->hCPE[nCPE_old - 1]->hMetaData; - } -#ifdef DEBUGGING - else - { - assert( 0 && "At least one SCE or one CPE should have existed before!\n" ); - } -#endif - - /* save bitstream information */ - ind_list = hBstr->ind_list; - nb_bits_tot = hBstr->nb_bits_tot; - next_ind = hBstr->next_ind; - last_ind = hBstr->last_ind; - ind_list_metadata = hMetaData->ind_list; - - /* destroy superfluous core coder elements */ - for ( sce_id = st_ivas->nSCE; sce_id < nSCE_old; sce_id++ ) - { - destroy_sce_enc( st_ivas->hSCE[sce_id] ); - st_ivas->hSCE[sce_id] = NULL; - } - - for ( cpe_id = st_ivas->nCPE; cpe_id < nCPE_old; cpe_id++ ) - { - destroy_cpe_enc( st_ivas->hCPE[cpe_id] ); - st_ivas->hCPE[cpe_id] = NULL; - } - - if ( st_ivas->nCPE <= 1 && st_ivas->hMCT != NULL ) - { - ivas_mct_enc_close( st_ivas->hMCT ); - st_ivas->hMCT = NULL; - } - - /* special case, if we have MCT now and had a single CPE before, remove the MDCT Stereo handles */ - if ( st_ivas->nCPE > 1 && nCPE_old == 1 ) - { - count_free( st_ivas->hCPE[0]->hStereoMdct ); - st_ivas->hCPE[0]->hStereoMdct = NULL; - } - - /* create missing core coder elements and set element bitrates for alrady existing ones */ - if ( st_ivas->nSCE > 0 ) - { - int16_t nSCE_existing; - nSCE_existing = min( nSCE_old, st_ivas->nSCE ); - for ( sce_id = 0; sce_id < nSCE_existing; sce_id++ ) - { - copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); - st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - for ( sce_id = nSCE_existing; sce_id < st_ivas->nSCE; sce_id++ ) - { - if ( ( error = create_sce_enc( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) - { - return error; - } - - /* prepare bitstream buffers */ - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list + sce_id * MAX_NUM_INDICES; - - /* only reset indices if it is not the first index list, this already contains the IVAS format bits */ - if ( sce_id > 0 ) - { - reset_indices_enc( st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES ); - } - else - { - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->last_ind = last_ind; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->nb_bits_tot = nb_bits_tot; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->next_ind = next_ind; - } - - st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + sce_id * MAX_BITS_METADATA; - reset_indices_enc( st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA ); - } - } - - if ( st_ivas->nCPE > 0 ) - { - int16_t nCPE_existing; - nCPE_existing = min( nCPE_old, st_ivas->nCPE ); - for ( cpe_id = 0; cpe_id < nCPE_existing; cpe_id++ ) - { - st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; - - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - copy_encoder_config( st_ivas, st_ivas->hCPE[cpe_id]->hCoreCoder[n], 0 ); - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - } - - for ( cpe_id = nCPE_existing; cpe_id < st_ivas->nCPE; cpe_id++ ) - { - if ( ( error = create_cpe_enc( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) - { - return error; - } - - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->ind_list = ind_list + ( cpe_id * CPE_CHANNELS + n ) * MAX_NUM_INDICES; - if ( cpe_id * CPE_CHANNELS + n > 0 ) - { - reset_indices_enc( st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr, MAX_NUM_INDICES ); - } - else - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->last_ind = last_ind; - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->nb_bits_tot = nb_bits_tot; - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->next_ind = next_ind; - } - - if ( st_ivas->hEncoderConfig->Opt_DTX_ON ) - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 1; - } - } - } - } - - if ( st_ivas->nCPE > 1 && nCPE_old <= 1 ) - { - if ( nCPE_old == 1 ) - { - /* set correct nominal bitrates and igf config already here, needed for the correct init of the MDCT Stereo handles for MCT */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[0]->hCoreCoder[n]->total_brate = st_ivas->hCPE[0]->element_brate; - - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[0]->element_brate / FRAMES_PER_SEC ); - st_ivas->hCPE[0]->hCoreCoder[n]->igf = getIgfPresent( st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal * FRAMES_PER_SEC, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode ); - - if ( st_ivas->hCPE[0]->hCoreCoder[n]->igf ) - { - IGFEncSetMode( st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, - st_ivas->hCPE[0]->element_brate, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); - } - } - } - - if ( ( error = create_mct_enc( st_ivas ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else if ( st_ivas->hMCT != NULL && st_ivas->nCPE > 1 ) - { - if ( ( error = mct_enc_reconfigure( st_ivas, st_ivas->nCPE != nCPE_old ) ) != IVAS_ERR_OK ) - { - return error; - } - } - - /* metadata handling for CPEs */ - if ( st_ivas->nCPE > 0 ) - { - if ( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData == NULL ) - { - if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData = (BSTR_ENC_HANDLE) count_malloc( sizeof( BSTR_ENC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MetaData structure\n" ) ); - } - } - - st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->ind_list = ind_list_metadata; - reset_indices_enc( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData, MAX_BITS_METADATA ); - - for ( cpe_id = 0; cpe_id < st_ivas->nCPE - 1; cpe_id++ ) - { - if ( st_ivas->hCPE[cpe_id]->hMetaData != NULL ) - { - count_free( st_ivas->hCPE[cpe_id]->hMetaData ); - st_ivas->hCPE[cpe_id]->hMetaData = NULL; - } - } - } - - /* special case, if we have a single CPE and had MCT before we need to init the MDCT stereo handles here */ - if ( st_ivas->nCPE == 1 && nCPE_old > 1 ) - { - if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct = (STEREO_MDCT_ENC_DATA_HANDLE) count_malloc( sizeof( STEREO_MDCT_ENC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MDCT Stereo \n" ) ); - } - - /* set correct nominal bitrates and igf config already here, needed for the correct init of the MDCT Stereo handle */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[0]->hCoreCoder[n]->total_brate = st_ivas->hCPE[0]->element_brate; - - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[0]->element_brate / FRAMES_PER_SEC ); - st_ivas->hCPE[0]->hCoreCoder[n]->igf = getIgfPresent( st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal * FRAMES_PER_SEC, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode ); - - if ( st_ivas->hCPE[0]->hCoreCoder[n]->igf ) - { - IGFEncSetMode( st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, - st_ivas->hCPE[0]->element_brate, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); - } - /* reset mct_chan_mode */ - st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode = MCT_CHAN_MODE_REGULAR; - } - - initMdctStereoEncData( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct, st_ivas->hEncoderConfig->ivas_format, st_ivas->hCPE[st_ivas->nCPE - 1]->element_mode, st_ivas->hCPE[st_ivas->nCPE - 1]->element_brate, st_ivas->hEncoderConfig->max_bwidth, 0, NULL, 1 ); - st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->isSBAStereoMode = ( ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); - } - } -#endif } return error; diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 2592b578f6..0b49c56854 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -166,15 +166,11 @@ ivas_error ivas_sce_enc( st->total_brate = hSCE->element_brate - nb_bits_metadata * FRAMES_PER_SEC; /* set flag for sampling rate of OL S/M classifier */ -#ifdef CORECODER_BITRATE_SWITCHING // VE2EF: TBV whether it can be done more efficiently flag_16k_smc = 0; if ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT && ( st_ivas->hEncoderConfig->ivas_total_brate == IVAS_24k4 || st_ivas->hEncoderConfig->ivas_total_brate == IVAS_32k ) && hSCE->element_brate == hSCE->last_element_brate ) { flag_16k_smc = 1; } -#else - flag_16k_smc = ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT && ( st_ivas->hEncoderConfig->ivas_total_brate == IVAS_24k4 || st_ivas->hEncoderConfig->ivas_total_brate == IVAS_32k ) ); -#endif #ifdef DEBUG_MODE_INFO dbgwrite( st->input - NS2SA( st->input_Fs, ACELP_LOOK_NS ), sizeof( float ), input_frame, 1, "res/input_DMX" ); @@ -241,11 +237,7 @@ ivas_error ivas_sce_enc( * Encoder *----------------------------------------------------------------*/ -#ifdef CORECODER_BITRATE_SWITCHING if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, ivas_format, flag_16k_smc ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, flag_16k_smc ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -257,9 +249,7 @@ ivas_error ivas_sce_enc( /* update input samples buffer */ mvr2r( st->input, st->old_input_signal, input_frame ); -#ifdef CORECODER_BITRATE_SWITCHING hSCE->last_element_brate = hSCE->element_brate; -#endif #ifdef DEBUG_MODE_INFO { @@ -307,9 +297,7 @@ ivas_error create_sce_enc( hSCE->sce_id = sce_id; hSCE->element_brate = element_brate; -#ifdef CORECODER_BITRATE_SWITCHING hSCE->last_element_brate = hSCE->element_brate; -#endif /*-----------------------------------------------------------------* * Metadata: allocate and initialize diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 531e69d85a..8a940b4ac9 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -852,9 +852,7 @@ typedef struct sce_enc_data_structure { int16_t sce_id; /* SCE # identifier */ int32_t element_brate; /* SCE element total bitrate in bps */ -#ifdef CORECODER_BITRATE_SWITCHING int32_t last_element_brate; /* last SCE element bitrate in bps */ -#endif BSTR_ENC_HANDLE hMetaData; /* Metadata bitstream handle */ -- GitLab From fcc9e15fd6cdfbd042c7f924af313637d483d8c2 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:14:13 +0200 Subject: [PATCH 335/479] [cleanup] accept ISM_BITRATE_SWITCHING --- lib_com/options.h | 1 - lib_dec/ivas_corecoder_dec_reconfig.c | 2 -- lib_dec/ivas_ism_param_dec.c | 15 --------------- lib_enc/ivas_ism_param_enc.c | 11 ----------- lib_enc/lib_enc.c | 27 --------------------------- 5 files changed, 56 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index ba634b0bbf..ccee8dfbf1 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ #define SBA_SPAR_HARM /* Issue 92: maintenance of the SBA SPAR functions */ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ diff --git a/lib_dec/ivas_corecoder_dec_reconfig.c b/lib_dec/ivas_corecoder_dec_reconfig.c index af6743abae..b11ba6cd39 100644 --- a/lib_dec/ivas_corecoder_dec_reconfig.c +++ b/lib_dec/ivas_corecoder_dec_reconfig.c @@ -271,9 +271,7 @@ ivas_error ivas_corecoder_dec_reconfig( *-----------------------------------------------------------------*/ /// VE: this could be merged with part of ivas_init_decoder() -#ifdef ISM_BITRATE_SWITCHING if ( st_ivas->ivas_format == SBA_FORMAT ) -#endif { if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->nchan_transport == 1 ) { diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index 3f49703c52..8ebf27afb5 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1004,7 +1004,6 @@ void ivas_param_ism_params_to_masa_param_mapping( } -#ifdef ISM_BITRATE_SWITCHING /*-------------------------------------------------------------------------* * ivas_ism_bitrate_switching() * @@ -1136,7 +1135,6 @@ static ivas_error ivas_ism_bitrate_switching( return error; } -#endif /*------------------------------------------------------------------------- * ivas_ism_dec_config() @@ -1154,9 +1152,7 @@ ivas_error ivas_ism_dec_config( int32_t ivas_total_brate; ISM_MODE last_ism_mode; ivas_error error; -#ifdef ISM_BITRATE_SWITCHING int16_t nchan_transport_old; -#endif error = IVAS_ERR_OK; @@ -1164,14 +1160,12 @@ ivas_error ivas_ism_dec_config( /* store last frame ISM mode */ last_ism_mode = st_ivas->ism_mode; -#ifdef ISM_BITRATE_SWITCHING /* Assumes that num of input objects are constant */ nchan_transport_old = num_obj; if ( last_ism_mode == ISM_MODE_PARAM ) { nchan_transport_old = 2; } -#endif if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_5k2 && ivas_total_brate != FRAME_NO_DATA ) { @@ -1190,7 +1184,6 @@ ivas_error ivas_ism_dec_config( if ( st_ivas->ini_active_frame != 0 ) { -#ifdef ISM_BITRATE_SWITCHING /* ISM bit-rate switching */ if ( st_ivas->hDecoderConfig->last_ivas_total_brate != IVAS_SID_5k2 && st_ivas->hDecoderConfig->last_ivas_total_brate != FRAME_NO_DATA ) { @@ -1199,14 +1192,6 @@ ivas_error ivas_ism_dec_config( ivas_ism_bitrate_switching( st_ivas, nchan_transport_old, last_ism_mode, num_obj ); } } -#else - /* ISM format switching */ - if ( st_ivas->ism_mode != last_ism_mode ) - { - /*ivas_ism_dec_reconfigure( st_ivas );*/ - return IVAS_ERROR( IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, "\n\n!!! Error: ISM format switching not supported yet!!!\n\n" ); - } -#endif } } else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index fff76944c9..1e5e83a8b7 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -417,9 +417,7 @@ ivas_error ivas_ism_enc_config( { ivas_error error; ISM_MODE last_ism_mode; -#ifdef ISM_BITRATE_SWITCHING int16_t nchan_transport_old; -#endif error = IVAS_ERR_OK; last_ism_mode = st_ivas->ism_mode; @@ -427,7 +425,6 @@ ivas_error ivas_ism_enc_config( /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( st_ivas->hEncoderConfig->nchan_inp, st_ivas->hEncoderConfig->ivas_total_brate ); -#ifdef ISM_BITRATE_SWITCHING /* ISM bit-rate switching */ if ( ( st_ivas->ism_mode != last_ism_mode ) || ( st_ivas->hEncoderConfig->ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate ) ) { @@ -472,14 +469,6 @@ ivas_error ivas_ism_enc_config( ivas_hp20_reconfig( st_ivas, nchan_transport_old ); #endif } -#else - /* ISM format switching */ - if ( st_ivas->ism_mode != last_ism_mode ) - { - /*ivas_ism_dec_reconfigure( st_ivas );*/ - return IVAS_ERROR( IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, "Error: ISM format switching not supported yet!!!\n\n" ); - } -#endif return error; } diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index d6aa8a54f1..4be84480fe 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -78,9 +78,7 @@ static int16_t getInputBufferSize( const Encoder_Struct *st_ivas ); static ivas_error doCommonConfigureChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error doCommonSetterChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ); -#ifdef ISM_BITRATE_SWITCHING static ivas_error sanitizeBitrateISM( const ENCODER_CONFIG_HANDLE hEncoderConfig ); -#endif static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error bandwidthApiToInternal( const IVAS_ENC_BANDWIDTH maxBandwidth, int16_t *internalMaxBandwidth ); @@ -772,29 +770,10 @@ static ivas_error configureEncoder( } else if ( hEncoderConfig->ivas_format == ISM_FORMAT ) { -#ifdef ISM_BITRATE_SWITCHING if ( ( error = sanitizeBitrateISM( hEncoderConfig ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( hEncoderConfig->ivas_total_brate > IVAS_256k ) - { - return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too high bitrate for ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); - } - if ( hEncoderConfig->ivas_total_brate < IVAS_16k4 && hEncoderConfig->nchan_inp == 2 ) - { - return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 2 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); - } - if ( hEncoderConfig->ivas_total_brate < IVAS_24k4 && hEncoderConfig->nchan_inp == 3 ) - { - return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 3 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); - } - if ( hEncoderConfig->ivas_total_brate < IVAS_24k4 && hEncoderConfig->nchan_inp == 4 ) - { - return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 4 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); - } -#endif } else if ( hEncoderConfig->ivas_format == SBA_FORMAT ) { @@ -1669,9 +1648,7 @@ static ivas_error setBitrate( { Encoder_Struct *st_ivas; ENCODER_CONFIG_HANDLE hEncoderConfig; -#ifdef ISM_BITRATE_SWITCHING ivas_error error; -#endif st_ivas = hIvasEnc->st_ivas; hEncoderConfig = st_ivas->hEncoderConfig; @@ -1718,7 +1695,6 @@ static ivas_error setBitrate( } } -#ifdef ISM_BITRATE_SWITCHING if ( hEncoderConfig->ivas_format == ISM_FORMAT ) { if ( ( error = sanitizeBitrateISM( hEncoderConfig ) ) != IVAS_ERR_OK ) @@ -1726,7 +1702,6 @@ static ivas_error setBitrate( return error; } } -#endif st_ivas->codec_mode = MODE1; @@ -1954,7 +1929,6 @@ static ivas_error sanitizeBandwidth( } -#ifdef ISM_BITRATE_SWITCHING /*---------------------------------------------------------------------* * sanitizeBitrateISM() * @@ -1986,7 +1960,6 @@ static ivas_error sanitizeBitrateISM( return IVAS_ERR_OK; } -#endif /*---------------------------------------------------------------------* -- GitLab From 1ae736585a33d6e4e4d854b1c854e12916921bd1 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:15:15 +0200 Subject: [PATCH 336/479] [cleanup] accept SBA_SPAR_HARM --- lib_com/ivas_cov_smooth.c | 29 ----- lib_com/ivas_prot.h | 22 ---- lib_com/ivas_stat_com.h | 9 -- lib_com/options.h | 1 - lib_dec/ivas_spar_md_dec.c | 9 -- lib_enc/ivas_enc_cov_handler.c | 65 ----------- lib_enc/ivas_spar_encoder.c | 197 --------------------------------- lib_enc/ivas_spar_md_enc.c | 42 ------- lib_enc/ivas_stat_enc.h | 20 ---- 9 files changed, 394 deletions(-) diff --git a/lib_com/ivas_cov_smooth.c b/lib_com/ivas_cov_smooth.c index 0015871287..c74c7c5f00 100644 --- a/lib_com/ivas_cov_smooth.c +++ b/lib_com/ivas_cov_smooth.c @@ -169,36 +169,24 @@ void ivas_spar_covar_smooth_enc_close( static void ivas_compute_smooth_cov( ivas_cov_smooth_state_t *hCovState, -#ifndef SBA_SPAR_HARM - ivas_cov_smooth_in_buf_t *pIn_buf, -#endif ivas_filterbank_t *pFb, float *pCov_buf[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *pPrior_cov_buf[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], const float fac, const int16_t start_band, const int16_t end_band -#ifdef SBA_SPAR_HARM , const int16_t num_ch, const int16_t transient_det -#endif ) { int16_t i, j, k; int16_t prev_idx = hCovState->prior_bank_idx; -#ifndef SBA_SPAR_HARM - int16_t num_ch = pIn_buf->num_ch; -#endif float factor = 0; assert( end_band <= pFb->filterbank_num_bands ); -#ifdef SBA_SPAR_HARM if ( prev_idx == -1 || transient_det == 1 ) -#else - if ( prev_idx == -1 || pIn_buf->reset_cov == 1 ) -#endif { for ( i = 0; i < num_ch; i++ ) { @@ -243,42 +231,25 @@ static void ivas_compute_smooth_cov( void ivas_cov_smooth_process( ivas_cov_smooth_state_t *hCovState, /* i/o: Covariance state handle */ -#ifdef SBA_SPAR_HARM float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_cov_smooth_in_buf_t *pIn_buf, -#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, const int16_t end_band -#ifdef SBA_SPAR_HARM , const int16_t num_ch, const int16_t transient_det -#endif ) { int16_t i, j; -#ifndef SBA_SPAR_HARM - int16_t num_ch = pIn_buf->num_ch; -#endif int16_t num_bands = end_band - start_band; -#ifdef SBA_SPAR_HARM ivas_compute_smooth_cov( hCovState, pFb, cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band, num_ch, transient_det ); -#else - ivas_compute_smooth_cov( hCovState, pIn_buf, pFb, pIn_buf->cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band ); -#endif for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < num_ch; j++ ) { -#ifdef SBA_SPAR_HARM mvr2r( &cov_real[i][j][start_band], &hCovState->pPrior_cov_real[i][j][start_band], num_bands ); -#else - mvr2r( &pIn_buf->cov_real[i][j][start_band], &hCovState->pPrior_cov_real[i][j][start_band], num_bands ); -#endif } } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 3fd00bd124..168cf10c0f 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3907,19 +3907,11 @@ void ivas_spar_md_enc_close( ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_state_t *hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ -#ifdef SBA_SPAR_HARM float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_spar_md_enc_in_buf_t *pIn_buf, -#endif BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ -#ifdef SBA_SPAR_HARM int16_t dtx_vad, const int16_t nchan_inp, -#else - const int16_t dtx_silence_mode, -#endif const int16_t sba_order /* i : Ambisonic (SBA) order */ ); @@ -4059,24 +4051,16 @@ void ivas_spar_covar_enc_close( void ivas_enc_cov_handler_process( ivas_enc_cov_handler_state_t *hCovEnc, /* i/o: SPAR Covar. encoder handle */ -#ifdef SBA_SPAR_HARM float **ppIn_FR_real, float **ppIn_FR_imag, float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_enc_cov_handler_in_buf_t *pIn_buf, - float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], - float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, const int16_t end_band -#ifdef SBA_SPAR_HARM ,const int16_t nchan_inp, const int16_t dtx_vad, const int16_t transient_det -#endif ); ivas_error ivas_spar_covar_smooth_enc_open( @@ -4093,19 +4077,13 @@ void ivas_spar_covar_smooth_enc_close( void ivas_cov_smooth_process( ivas_cov_smooth_state_t *hCovState, /* i/o: Covariance state handle */ -#ifdef SBA_SPAR_HARM float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_cov_smooth_in_buf_t *pIn_buf, -#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, const int16_t end_band -#ifdef SBA_SPAR_HARM , const int16_t num_ch, const int16_t transient_det -#endif ); /* Transient detector module */ diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index 026191559b..b275d2d6eb 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -352,15 +352,6 @@ typedef struct ivas_cov_smooth_cfg_t } ivas_cov_smooth_cfg_t; -#ifndef SBA_SPAR_HARM -typedef struct ivas_cov_smooth_in_buf_t -{ - float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; - int16_t num_ch; - int16_t reset_cov; - -} ivas_cov_smooth_in_buf_t; -#endif /* SPAR bitrate constant table structure */ typedef struct ivas_spar_br_table_t diff --git a/lib_com/options.h b/lib_com/options.h index ccee8dfbf1..43f078e1f7 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define SBA_SPAR_HARM /* Issue 92: maintenance of the SBA SPAR functions */ #define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 3d5f03b208..84f885b158 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -684,13 +684,7 @@ void ivas_spar_md_dec_process( } #endif -#ifndef SBA_SPAR_HARM - /* SPAR to DirAC and DirAC to SPAR conversion */ // VE2DB: -> "DirAC to SPAR conversion" only? - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete - { -#else /* SPAR to DirAC conversion */ -#endif ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); /* set correct number of bands*/ @@ -699,9 +693,6 @@ void ivas_spar_md_dec_process( { nB = nB >> 1; } -#ifndef SBA_SPAR_HARM - } -#endif /* expand DirAC MD to all time slots */ for ( i_ts = 1; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) diff --git a/lib_enc/ivas_enc_cov_handler.c b/lib_enc/ivas_enc_cov_handler.c index 907b8c5908..b733bc2090 100644 --- a/lib_enc/ivas_enc_cov_handler.c +++ b/lib_enc/ivas_enc_cov_handler.c @@ -141,44 +141,25 @@ void ivas_spar_covar_enc_close( void ivas_enc_cov_handler_process( ivas_enc_cov_handler_state_t *hCovEnc, /* i/o: SPAR Covar. encoder handle */ -#ifdef SBA_SPAR_HARM float **ppIn_FR_real, float **ppIn_FR_imag, float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_enc_cov_handler_in_buf_t *pIn_buf, - float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], - float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, const int16_t end_band -#ifdef SBA_SPAR_HARM , const int16_t num_ch, const int16_t dtx_vad, const int16_t transient_det -#endif ) { int16_t i, j; -#ifdef SBA_SPAR_HARM int16_t dtx_cov_flag; dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; -#else - ivas_cov_smooth_in_buf_t pCov_in_buf; - int16_t num_ch = pIn_buf->num_ch; - pCov_in_buf.num_ch = num_ch; -#endif - -#ifdef SBA_SPAR_HARM ivas_band_cov( ppIn_FR_real, ppIn_FR_imag, num_ch, hCovEnc->num_bins, -#else - ivas_band_cov( pIn_buf->ppIn_FR_real, pIn_buf->ppIn_FR_imag, pIn_buf->num_ch, hCovEnc->num_bins, -#endif pFb->fb_bin_to_band.short_stride, pFb->fb_bin_to_band.pp_short_stride_bin_to_band, pFb->fb_bin_to_band.p_short_stride_start_bin_per_band, @@ -213,36 +194,20 @@ void ivas_enc_cov_handler_process( { for ( j = 0; j < num_ch; j++ ) { -#ifndef SBA_SPAR_HARM - pCov_in_buf.cov_real[i][j] = cov_real[i][j]; -#endif mvr2r( cov_real[i][j], cov_dtx_real[i][j], pFb->filterbank_num_bands ); } } -#ifdef SBA_SPAR_HARM ivas_cov_smooth_process( hCovEnc->pCov_state, cov_real, pFb, start_band, end_band, num_ch, transient_det ); -#else - ivas_cov_smooth_process( hCovEnc->pCov_state, &pCov_in_buf, pFb, start_band, end_band ); -#endif -#ifdef SBA_SPAR_HARM if ( dtx_cov_flag == 0 ) -#else - if ( pIn_buf->dtx_cov_flag == 0 ) -#endif { for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < num_ch; j++ ) { -#ifdef SBA_SPAR_HARM mvr2r( cov_real[i][j], hCovEnc->pCov_dtx_state->pPrior_cov_real[i][j], pFb->filterbank_num_bands ); mvr2r( cov_real[i][j], cov_dtx_real[i][j], pFb->filterbank_num_bands ); -#else - mvr2r( pCov_in_buf.cov_real[i][j], hCovEnc->pCov_dtx_state->pPrior_cov_real[i][j], pFb->filterbank_num_bands ); - mvr2r( pCov_in_buf.cov_real[i][j], cov_dtx_real[i][j], pFb->filterbank_num_bands ); -#endif } } @@ -250,46 +215,16 @@ void ivas_enc_cov_handler_process( } else { -#ifdef SBA_SPAR_HARM if ( transient_det == 0 ) -#else - if ( pIn_buf->transient_det == 0 ) -#endif { -#ifdef SBA_SPAR_HARM ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, cov_dtx_real, pFb, start_band, end_band, num_ch, transient_det ); -#else - for ( i = 0; i < num_ch; i++ ) - { - for ( j = 0; j < num_ch; j++ ) - { - pCov_in_buf.cov_real[i][j] = cov_dtx_real[i][j]; - } - } - - pCov_in_buf.reset_cov = 0; - ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, &pCov_in_buf, pFb, start_band, end_band ); -#endif hCovEnc->prior_dtx_present = 1; } else { if ( hCovEnc->prior_dtx_present == 0 ) { -#ifdef SBA_SPAR_HARM ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, cov_dtx_real, pFb, start_band, end_band, num_ch, transient_det ); -#else - for ( i = 0; i < num_ch; i++ ) - { - for ( j = 0; j < num_ch; j++ ) - { - pCov_in_buf.cov_real[i][j] = cov_dtx_real[i][j]; - } - } - - pCov_in_buf.reset_cov = 1; - ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, &pCov_in_buf, pFb, start_band, end_band ); -#endif hCovEnc->prior_dtx_present = 1; } else diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index b5f00848a8..d90349e2af 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -319,69 +319,6 @@ ivas_error ivas_spar_enc( return error; } -#ifndef SBA_SPAR_HARM -/*-----------------------------------------------------------------------------------------* - * Function ivas_spar_enc_get_windowed_fr() - * - * Get windowed FRs - *-----------------------------------------------------------------------------------------*/ - -static void ivas_spar_enc_get_windowed_fr( - IVAS_FB_MIXER_HANDLE hFbMixer, - float *pIn_blocks[IVAS_SPAR_MAX_CH], - ivas_enc_cov_handler_in_buf_t *pCov_in_buf, - const int16_t input_frame, - const int16_t nchan_inp, - const int16_t num_past_samples ) -{ - int16_t i, j, rev_offset; - - for ( i = 0; i < nchan_inp; i++ ) - { - const int16_t stride = hFbMixer->pFb->fb_bin_to_band.short_stride; - float tmp_buf[MDFT_FB_BANDS_240 * 2]; - int16_t win_len = (int16_t) hFbMixer->ana_window_offset; - float *mdft_in_ptr = tmp_buf + stride - win_len; - float tmp_in_block[L_FRAME48k + MDFT_FB_BANDS_240]; - float *data_ptr = tmp_in_block; - float *fr_re_ptr = pCov_in_buf->ppIn_FR_real[i]; - float *fr_im_ptr = pCov_in_buf->ppIn_FR_imag[i]; - - set_f( tmp_buf, 0, MDFT_FB_BANDS_240 * 2 ); - - /* copy input data, because pIn_blocks and fr_re_ptr + fr_im_ptr use the same memory */ - mvr2r( &pIn_blocks[i][input_frame - num_past_samples], tmp_in_block, input_frame + win_len ); - - for ( int16_t blk = 0; blk < input_frame / stride; blk++ ) - { - - for ( j = 0; j < win_len; j++ ) - { - mdft_in_ptr[j] = data_ptr[j] * hFbMixer->pAna_window[j]; - } - - for ( j = win_len; j < stride; j++ ) - { - mdft_in_ptr[j] = data_ptr[j]; - } - - rev_offset = win_len - 1; - for ( j = stride; j < stride + win_len; j++ ) - { - mdft_in_ptr[j] = data_ptr[j] * hFbMixer->pAna_window[rev_offset--]; - } - - ivas_mdft( tmp_buf, fr_re_ptr, fr_im_ptr, stride << 1, stride ); - - data_ptr += stride; - fr_re_ptr += stride; - fr_im_ptr += stride; - } - } - - return; -} -#endif /*-----------------------------------------------------------------------------------------* * Function ivas_spar_enc_process() @@ -399,24 +336,11 @@ static ivas_error ivas_spar_enc_process( { float pcm_tmp[IVAS_SPAR_MAX_CH][L_FRAME48k * 2]; float *p_pcm_tmp[IVAS_SPAR_MAX_CH]; -#ifdef SBA_SPAR_HARM int16_t i, j, b, i_ts, input_frame, transient_det, dtx_vad; -#else - int16_t i, j, k, b, i_ts, input_frame, num_bands_bw; - int16_t dtx_vad, dtx_cov_flag, dtx_silence_mode; -#endif int32_t ivas_total_brate, input_Fs; -#ifndef SBA_SPAR_HARM - ivas_enc_cov_handler_in_buf_t cov_in_buf; -#endif float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; -#ifdef SBA_SPAR_HARM int16_t nchan_inp, nchan_transport, sba_order; -#else - ivas_spar_md_enc_in_buf_t md_in_buf; - int16_t nchan_inp, nchan_transport, bwidth, sba_order; -#endif int16_t table_idx; int16_t in_out_mixer_map[IVAS_MAX_FB_MIXER_OUT_CH][IVAS_MAX_SPAR_FB_MIXER_IN_CH]; ivas_error error; @@ -451,19 +375,12 @@ static ivas_error ivas_spar_enc_process( mvr2r( data_f[HOA_keep_ind[i]], data_f[i], input_frame ); } -#ifndef SBA_SPAR_HARM - table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); -#endif /*-----------------------------------------------------------------------------------------* * Transient detector *-----------------------------------------------------------------------------------------*/ -#ifdef SBA_SPAR_HARM transient_det = ivas_transient_det_process( hSpar->hTranDet, data_f[0], input_frame ); -#else - cov_in_buf.transient_det = ivas_transient_det_process( hSpar->hTranDet, data_f[0], input_frame ); -#endif /* store previous input samples for W in local buffer */ assert( num_del_samples <= IVAS_FB_1MS_48K_SAMP ); @@ -482,27 +399,12 @@ static ivas_error ivas_spar_enc_process( ivas_fb_mixer_pcm_ingest( hSpar->hFbMixer, data_f, p_pcm_tmp, input_frame ); /* prepare Parameter MDFT analysis */ -#ifdef SBA_SPAR_HARM for ( i = 0; i < nchan_inp; i++ ) { ppIn_FR_real[i] = p_pcm_tmp[i]; ppIn_FR_imag[i] = p_pcm_tmp[i] + input_frame; p_pcm_tmp[i] = &data_f[i][0]; } -#else - for ( i = 0; i < nchan_inp; i++ ) - { - cov_in_buf.ppIn_FR_real[i] = p_pcm_tmp[i]; - cov_in_buf.ppIn_FR_imag[i] = p_pcm_tmp[i] + input_frame; - } - - for ( i = 0; i < nchan_inp; i++ ) - { - p_pcm_tmp[i] = &data_f[i][0]; - ppIn_FR_real[i] = cov_in_buf.ppIn_FR_real[i]; - ppIn_FR_imag[i] = cov_in_buf.ppIn_FR_imag[i]; - } -#endif l_ts = input_frame / MAX_PARAM_SPATIAL_SUBFRAMES; @@ -522,16 +424,11 @@ static ivas_error ivas_spar_enc_process( /* turn pointers back to the local buffer, needed for the following processing */ for ( i = 0; i < nchan_inp; i++ ) { -#ifdef SBA_SPAR_HARM ppIn_FR_real[i] = pcm_tmp[i]; ppIn_FR_imag[i] = pcm_tmp[i] + input_frame; -#endif p_pcm_tmp[i] = pcm_tmp[i]; } -#ifndef SBA_SPAR_HARM - cov_in_buf.num_ch = nchan_inp; -#endif dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; @@ -539,7 +436,6 @@ static ivas_error ivas_spar_enc_process( * DirAC encoding *-----------------------------------------------------------------------------------------*/ -#ifdef SBA_SPAR_HARM ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, data_f, ppIn_FR_real, ppIn_FR_imag, input_frame #ifdef SBA_HOA_HBR_IMPROV @@ -547,15 +443,6 @@ static ivas_error ivas_spar_enc_process( st_ivas->sba_mode #endif ); -#else - ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, - data_f, cov_in_buf.ppIn_FR_real, cov_in_buf.ppIn_FR_imag, input_frame -#ifdef SBA_HOA_HBR_IMPROV - , - st_ivas->sba_mode -#endif - ); -#endif if ( hQMetaData->q_direction->cfg.nbands > 0 ) @@ -641,26 +528,11 @@ static ivas_error ivas_spar_enc_process( } } -#ifndef SBA_SPAR_HARM - /*-----------------------------------------------------------------------------------------* - * Pre-proc flags - *-----------------------------------------------------------------------------------------*/ - - /* use just VAD function to get VAD flags */ - dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; - dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; - dtx_silence_mode = 0; // VE2DB: this variable is always 0 - please review or remove it - bwidth = ivas_get_bw_idx_from_sample_rate( input_Fs ); - bwidth = min( bwidth, hEncoderConfig->max_bwidth ); -#endif /*-----------------------------------------------------------------------------------------* * Covariance process *-----------------------------------------------------------------------------------------*/ -#ifndef SBA_SPAR_HARM - cov_in_buf.num_ch = nchan_inp; -#endif for ( i = 0; i < nchan_inp; i++ ) { for ( j = 0; j < nchan_inp; j++ ) @@ -670,21 +542,13 @@ static ivas_error ivas_spar_enc_process( } } -#ifdef SBA_SPAR_HARM ivas_enc_cov_handler_process( hSpar->hCovEnc, ppIn_FR_real, ppIn_FR_imag, cov_real, cov_dtx_real, hSpar->hFbMixer->pFb, 0, hSpar->hFbMixer->pFb->filterbank_num_bands, nchan_inp, dtx_vad, transient_det ); -#else - cov_in_buf.dtx_cov_flag = dtx_cov_flag; - - ivas_enc_cov_handler_process( hSpar->hCovEnc, &cov_in_buf, cov_real, cov_dtx_real, hSpar->hFbMixer->pFb, 0, hSpar->hFbMixer->pFb->filterbank_num_bands ); -#endif /*-----------------------------------------------------------------------------------------* * Set SPAR bitrates *-----------------------------------------------------------------------------------------*/ -#ifdef SBA_SPAR_HARM table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); -#endif if ( hSpar->hMdEnc->table_idx != table_idx ) { @@ -698,76 +562,19 @@ static ivas_error ivas_spar_enc_process( ); } -#ifdef SBA_SPAR_HARM nchan_transport = st_ivas->nchan_transport; -#else - nchan_transport = hSpar->hMdEnc->spar_md_cfg.nchan_transport; -#endif /*-----------------------------------------------------------------------------------------* * MetaData encoder *-----------------------------------------------------------------------------------------*/ -#ifdef SBA_SPAR_HARM #ifdef SBA_HOA_HBR_IMPROV if ( hSpar->hMdEnc->spar_hoa_md_flag == 0 ) #endif { ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, nchan_inp, sba_order ); } -#else - num_bands_bw = ivas_get_num_bands_from_bw_idx( bwidth ); - - if ( dtx_vad == 0 ) - { - for ( i = 0; i < nchan_inp; i++ ) - { - for ( j = 0; j < nchan_inp; j++ ) - { - md_in_buf.cov_real[i][j] = cov_dtx_real[i][j]; - for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) - { - md_in_buf.cov_real[i][j][k] = 0; - } - } - } - } - else - { - for ( i = 0; i < nchan_inp; i++ ) - { - for ( j = 0; j < nchan_inp; j++ ) - { - md_in_buf.cov_real[i][j] = cov_real[i][j]; - for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) - { - md_in_buf.cov_real[i][j][k] = 0; - } - } - } - } - md_in_buf.num_bands = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW ); -#ifdef SBA_HOA_HBR_IMPROV - if ( hSpar->hMdEnc->spar_hoa_md_flag == 0 ) -#endif - { - md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); - } - - md_in_buf.dtx_vad = dtx_vad; - -#ifdef SBA_HOA_HBR_IMPROV - if ( hSpar->hMdEnc->spar_hoa_md_flag == 0 ) -#endif - { - ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); - } -#endif - -#ifndef SBA_SPAR_HARM - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete -#endif { float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; float ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; @@ -800,11 +607,7 @@ static ivas_error ivas_spar_enc_process( Wscale_d[b] = 1.0f; for ( i = 1; i < nchan_inp; i++ ) { -#ifdef SBA_SPAR_HARM Wscale_d[b] += cov_real[i][i][b] / max( EPSILON, cov_real[0][0][b] ); -#else - Wscale_d[b] += md_in_buf.cov_real[i][i][b] / max( EPSILON, md_in_buf.cov_real[0][0][b] ); -#endif } Wscale_d[b] = Wscale_d[b] / ( 1.0f + (float) sba_order ); /*DirAC normalized signal variance sums to 1 + order*/ Wscale_d[b] = sqrtf( Wscale_d[b] ); diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 263d32292a..ccea624a5f 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -562,19 +562,11 @@ static void write_metadata_buffer( ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_state_t *hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ -#ifdef SBA_SPAR_HARM float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_spar_md_enc_in_buf_t *pIn_buf, -#endif BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ -#ifdef SBA_SPAR_HARM int16_t dtx_vad, const int16_t nchan_inp, -#else - const int16_t dtx_silence_mode, -#endif const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { @@ -585,12 +577,7 @@ ivas_error ivas_spar_md_enc_process( #endif int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; int16_t j, planarCP; -#ifdef SBA_SPAR_HARM int16_t k, bwidth, num_bands, num_bands_full, num_bands_bw; -#else - int16_t num_bands = pIn_buf->num_bands; - int16_t dtx_vad = pIn_buf->dtx_vad; -#endif int16_t active_w, nchan_transport, dmx_switch, strat; int16_t nB, bands_bw, packed_ok = 0; ivas_strats_t cs[MAX_CODING_STRATS]; @@ -605,7 +592,6 @@ ivas_error ivas_spar_md_enc_process( active_w = hMdEnc->spar_md_cfg.active_w; nchan_transport = hMdEnc->spar_md_cfg.nchan_transport; -#ifdef SBA_SPAR_HARM bwidth = ivas_get_bw_idx_from_sample_rate( hEncoderConfig->input_Fs ); bwidth = min( bwidth, hEncoderConfig->max_bwidth ); @@ -647,7 +633,6 @@ ivas_error ivas_spar_md_enc_process( } } } -#endif if ( hEncoderConfig->ivas_total_brate == BRATE_SPAR_Q_STRAT && sba_order == 1 ) { @@ -662,12 +647,6 @@ ivas_error ivas_spar_md_enc_process( next_ind_start = hMetaData->next_ind; last_ind_start = hMetaData->last_ind; -#ifndef SBA_SPAR_HARM - if ( hEncoderConfig->Opt_DTX_ON == 0 ) - { - dtx_vad = 1; - } -#endif dmx_switch = 0; @@ -676,11 +655,7 @@ ivas_error ivas_spar_md_enc_process( nB = SPAR_DTX_BANDS; bands_bw = num_bands / nB; -#ifdef SBA_SPAR_HARM ivas_band_mixer( cov_real, num_ch, &num_bands, bands_bw ); -#else - ivas_band_mixer( pIn_buf->cov_real, num_ch, &num_bands, bands_bw ); -#endif } else { @@ -702,13 +677,8 @@ ivas_error ivas_spar_md_enc_process( } #endif -#ifdef SBA_SPAR_HARM ivas_compute_spar_params( cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); -#else - ivas_compute_spar_params( pIn_buf->cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, - bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); -#endif for ( i = 0; i < num_ch; i++ ) { @@ -755,11 +725,7 @@ ivas_error ivas_spar_md_enc_process( if ( ndm != num_ch ) { -#ifdef SBA_SPAR_HARM ivas_calc_c_p_coeffs( &hMdEnc->spar_md, cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); -#else - ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); -#endif } } } @@ -868,11 +834,7 @@ ivas_error ivas_spar_md_enc_process( if ( ( ndm != num_ch ) && ( ndm != 1 ) ) { -#ifdef SBA_SPAR_HARM ivas_calc_c_p_coeffs( &hMdEnc->spar_md, cov_real, 0, hMdEnc->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); -#else - ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); -#endif #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n C coefficients: band %d\n", b); @@ -933,11 +895,7 @@ ivas_error ivas_spar_md_enc_process( /* band mixing */ if ( bands_bw > 1 ) { -#ifdef SBA_SPAR_HARM ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, num_bands_full ); -#else - ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, pIn_buf->num_bands ); -#endif } if ( hMdEnc->spar_md_cfg.gen_bs == 0 ) diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 8a940b4ac9..d48e442445 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -631,17 +631,6 @@ typedef struct ivas_enc_cov_handler_state_t } ivas_enc_cov_handler_state_t; -#ifndef SBA_SPAR_HARM -typedef struct ivas_enc_cov_handler_in_buf_t -{ - float *ppIn_FR_real[IVAS_SPAR_MAX_CH]; - float *ppIn_FR_imag[IVAS_SPAR_MAX_CH]; - int16_t num_ch; - int16_t transient_det; - int16_t dtx_cov_flag; - -} ivas_enc_cov_handler_in_buf_t; -#endif /* SPAR MD structures */ typedef struct ivas_spar_md_enc_state_t @@ -664,15 +653,6 @@ typedef struct ivas_spar_md_enc_state_t #endif } ivas_spar_md_enc_state_t; -#ifndef SBA_SPAR_HARM -typedef struct ivas_spar_md_enc_in_buf_t -{ - float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; - int16_t num_bands; - int16_t dtx_vad; - -} ivas_spar_md_enc_in_buf_t; -#endif /* PCA structure */ typedef struct { -- GitLab From 007440d682911c44e209c15538896b4d3f1582d1 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:16:03 +0200 Subject: [PATCH 337/479] [cleanup] accept FIX_155_HP20_ISSUE --- lib_com/options.h | 1 - lib_enc/ivas_init_enc.c | 2 - lib_enc/ivas_ism_param_enc.c | 91 ------------------------------------ 3 files changed, 94 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 43f078e1f7..09fdbbadfd 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ #define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ #define ALLRAD_OPTIM /* Issue 159: Optimize memory allocation for ALLRAD */ diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index 8d79594c7e..18280a60e2 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -190,12 +190,10 @@ int16_t getNumChanAnalysis( { n = st_ivas->hEncoderConfig->nchan_inp; } -#ifdef FIX_155_HP20_ISSUE else if ( st_ivas->hEncoderConfig->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) { n = st_ivas->hEncoderConfig->nchan_inp; } -#endif return n; } diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index 1e5e83a8b7..493fb6f54a 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -41,9 +41,6 @@ #include "ivas_rom_com.h" #include "wmops.h" -#ifndef FIX_155_HP20_ISSUE -static ivas_error ivas_hp20_reconfig( Encoder_Struct *st_ivas, const int16_t nchan_hp20_old ); -#endif /*------------------------------------------------------------------------- * Local function definitions *------------------------------------------------------------------------*/ @@ -465,96 +462,8 @@ ivas_error ivas_ism_enc_config( st_ivas->hDirAC = NULL; } -#ifndef FIX_155_HP20_ISSUE - ivas_hp20_reconfig( st_ivas, nchan_transport_old ); -#endif } return error; } -#ifndef FIX_155_HP20_ISSUE -// VE: this is the same function as at the decoder -> harmonize them to a new file ivas_corecoder_reconfig.c -/*-------------------------------------------------------------------* - * ivas_hp20_dec_reconfig() - * - * Allocate, initialize, and configure HP20 memory handles in case of bitrate switching - *-------------------------------------------------------------------*/ - -static ivas_error ivas_hp20_reconfig( - Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ - const int16_t nchan_hp20_old /* i : number of HP20 filters in previous frame */ -) -{ - int16_t i, nchan_hp20; - float **old_mem_hp20_out; - ivas_error error; - - error = IVAS_ERR_OK; - - /*-----------------------------------------------------------------* - * HP20 memories - *-----------------------------------------------------------------*/ - - nchan_hp20 = getNumChanAnalysis( st_ivas ); - - if ( nchan_hp20 > nchan_hp20_old ) - { - /* save old mem_hp_20 pointer */ - old_mem_hp20_out = st_ivas->mem_hp20_in; - st_ivas->mem_hp20_in = NULL; - - if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( nchan_hp20 * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - for ( i = 0; i < nchan_hp20_old; i++ ) - { - st_ivas->mem_hp20_in[i] = old_mem_hp20_out[i]; - old_mem_hp20_out[i] = NULL; - } - /* create additional hp20 memories */ - for ( ; i < nchan_hp20; i++ ) - { - if ( ( st_ivas->mem_hp20_in[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - set_f( st_ivas->mem_hp20_in[i], 0.0f, L_HP20_MEM ); - } - - count_free( old_mem_hp20_out ); - old_mem_hp20_out = NULL; - } - else if ( nchan_hp20 < nchan_hp20_old ) - { - /* save old mem_hp_20 pointer */ - old_mem_hp20_out = st_ivas->mem_hp20_in; - st_ivas->mem_hp20_in = NULL; - - if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( nchan_hp20 * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - for ( i = 0; i < nchan_hp20; i++ ) - { - st_ivas->mem_hp20_in[i] = old_mem_hp20_out[i]; - old_mem_hp20_out[i] = NULL; - } - /* remove superfluous hp20 memories */ - for ( ; i < nchan_hp20_old; i++ ) - { - count_free( old_mem_hp20_out[i] ); - old_mem_hp20_out[i] = NULL; - } - - count_free( old_mem_hp20_out ); - old_mem_hp20_out = NULL; - } - - return error; -} -#endif -- GitLab From 9a69a5ba8dec9a269ab91067a715ce69f3d3c9c3 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:16:58 +0200 Subject: [PATCH 338/479] [cleanup] accept EFAP_FIX_POLY --- lib_com/options.h | 1 - lib_dec/ivas_efap.c | 22 ---------------------- 2 files changed, 23 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 09fdbbadfd..cf316c25d4 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ #define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ #define ALLRAD_OPTIM /* Issue 159: Optimize memory allocation for ALLRAD */ #define FIX_I178_HQ_BUFFER_OVERRUN /* issue 178: Buffer overrun in HQ core decoder -- spectral filling buffer did not account for extended transition frame in IVAS */ diff --git a/lib_dec/ivas_efap.c b/lib_dec/ivas_efap.c index bbb464b292..788eb58f33 100644 --- a/lib_dec/ivas_efap.c +++ b/lib_dec/ivas_efap.c @@ -100,9 +100,7 @@ static float vertex_distance( const EFAP_VERTEX *vtxArray, const EFAP_LS_TRIANGL static float point_plane_distance( const float P1[3], const float P2[3], const float P3[3], const float X[3] ); -#ifdef EFAP_FIX_POLY static float point_poly_distance( const EFAP_POLYSET poly, const float X[3] ); -#endif static void efap_crossp( const float *v1, const float *v2, float *v ); static int16_t find_int_in_tri( const EFAP_LS_TRIANGLE *tri, const int16_t n, const int16_t r, int16_t *pos ); @@ -127,9 +125,7 @@ static int16_t in_poly( const float P[2], const EFAP_POLYSET poly ); static int16_t in_tri( float A[2], float B[2], float C[2], float P_minus_A[2] ); -#ifdef EFAP_FIX_POLY static void sph2cart( const float azi, const float ele, float *pos ); -#endif /*-----------------------------------------------------------------------* * Global function definitions @@ -1502,13 +1498,7 @@ static void add_vertex( vtxArray[pos].ele = ( ( -180.0f > tmp ) ? -180.0f : tmp ); /* Converting spherical coordinates to cartesians, assuming radius = 1 */ -#ifdef EFAP_FIX_POLY sph2cart( vtxArray[pos].azi, vtxArray[pos].ele, &vtxArray[pos].pos[0] ); -#else - vtxArray[pos].pos[0] = cosf( vtxArray[pos].azi * PI_OVER_180 ) * cosf( vtxArray[pos].ele * PI_OVER_180 ); - vtxArray[pos].pos[1] = sinf( vtxArray[pos].azi * PI_OVER_180 ) * cosf( vtxArray[pos].ele * PI_OVER_180 ); - vtxArray[pos].pos[2] = sinf( vtxArray[pos].ele * PI_OVER_180 ); -#endif /* Computing the index defined by idx = idxAziTmp + 181 * idxEleTmp */ @@ -1600,7 +1590,6 @@ static float vertex_distance( return point_plane_distance( A, B, C, P ); } -#ifdef EFAP_FIX_POLY /*-------------------------------------------------------------------------* * point_poly_distance() * @@ -1620,7 +1609,6 @@ static float point_poly_distance( return point_plane_distance( P1, P2, P3, X ); } -#endif /*-------------------------------------------------------------------------* * point_plane_distance() @@ -2112,7 +2100,6 @@ static int16_t get_poly_num( ) { int16_t i; -#ifdef EFAP_FIX_POLY int16_t num_poly, found_poly; int16_t poly_tmp[EFAP_MAX_CHAN_NUM]; float poly_dist[EFAP_MAX_CHAN_NUM]; @@ -2125,12 +2112,10 @@ static int16_t get_poly_num( sph2cart( P[0], P[1], &pos[0] ); /* Filter the polygon list with a fast 2d check */ -#endif for ( i = 0; i < polyData->numPoly; ++i ) { if ( in_poly( P, polyData->polysetArray[i] ) ) { -#ifdef EFAP_FIX_POLY /* select only polygons which are visible from the point */ dist_tmp = point_poly_distance( polyData->polysetArray[i], pos ); if ( dist_tmp == 0 ) @@ -2143,12 +2128,8 @@ static int16_t get_poly_num( poly_dist[num_poly] = dist_tmp; num_poly++; } -#else - return i; -#endif } } -#ifdef EFAP_FIX_POLY if ( num_poly == 0 ) { return -1; @@ -2167,9 +2148,6 @@ static int16_t get_poly_num( } return found_poly; -#else - return -1; -#endif } -- GitLab From b1cc181af3492a265389b585976d2f95bcabc5f9 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:18:55 +0200 Subject: [PATCH 339/479] [cleanup] accept SBA_HOA_HBR_IMPROV --- lib_com/ivas_prot.h | 8 -------- lib_com/ivas_sba_config.c | 2 -- lib_com/ivas_spar_com.c | 5 ----- lib_com/options.h | 1 - lib_dec/ivas_spar_decoder.c | 8 -------- lib_dec/ivas_spar_md_dec.c | 34 ---------------------------------- lib_dec/ivas_stat_dec.h | 2 -- lib_enc/ivas_dirac_enc.c | 18 ------------------ lib_enc/ivas_entropy_coder.c | 15 --------------- lib_enc/ivas_mcmasa_enc.c | 2 -- lib_enc/ivas_mct_core_enc.c | 2 -- lib_enc/ivas_spar_encoder.c | 14 -------------- lib_enc/ivas_spar_md_enc.c | 22 ---------------------- lib_enc/ivas_stat_enc.h | 2 -- 14 files changed, 135 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 168cf10c0f..dcf94d5761 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3018,10 +3018,8 @@ void ivas_dirac_param_est_enc( float **pp_fr_real, float **pp_fr_imag, const int16_t input_frame -#ifdef SBA_HOA_HBR_IMPROV , const SBA_MODE sba_mode -#endif ); /*----------------------------------------------------------------------------------* @@ -3081,13 +3079,11 @@ int16_t ivas_sba_get_nchan_metadata( const int16_t sba_order /* i : Ambisonic (SBA) order */ ); -#ifdef SBA_HOA_HBR_IMPROV /*! r: flag indicating to code SPAR HOA MD for all bands */ int16_t ivas_sba_get_spar_hoa_md_flag( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); -#endif void ivas_sba_zero_vert_comp( float sba_data[][L_FRAME48k], /* i/o: SBA data frame */ @@ -3975,10 +3971,8 @@ ivas_error ivas_spar_md_dec_open( ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels /* i : number of internal channels */ -#ifdef SBA_HOA_HBR_IMPROV , const int16_t sba_order /* i : SBA order */ -#endif ); void ivas_spar_md_dec_close( @@ -4812,10 +4806,8 @@ void computeReferencePower_enc( float *reference_power, /* o : Estimated power */ const int16_t enc_param_start_band, /* i : first band to process */ const int16_t num_freq_bands /* i : Number of frequency bands */ -#ifdef SBA_HOA_HBR_IMPROV , const SBA_MODE sba_mode /* i : SBA mode */ -#endif ); diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index cf22cf38ff..29c0ca6617 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -281,7 +281,6 @@ int16_t ivas_sba_get_nchan_metadata( return ( nb_channels ); } -#ifdef SBA_HOA_HBR_IMPROV /*-------------------------------------------------------------------* * ivas_sba_get_spar_hoa_md_flag() * @@ -307,7 +306,6 @@ int16_t ivas_sba_get_spar_hoa_md_flag( return spar_hoa_md_flag; } -#endif /*-------------------------------------------------------------------* * ivas_sba_zero_vert_comp() diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index b5821e4632..fa5e65460e 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -1737,11 +1737,6 @@ void ivas_get_spar_md_from_dirac( /*SPAR from DirAC*/ set_f( response_avg, 0.0f, MAX_OUTPUT_CHANNELS ); -#ifndef SBA_HOA_HBR_IMPROV - set_f( hSpar_md->band_coeffs[band + i_ts * IVAS_MAX_NUM_BANDS].pred_re, 0.0f, IVAS_SPAR_MAX_CH - 1 ); - set_f( &hSpar_md->band_coeffs[band + i_ts * IVAS_MAX_NUM_BANDS].C_re[0][0], 0.0f, ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ) * ( IVAS_SPAR_MAX_DMX_CHS - 1 ) ); - set_f( &hSpar_md->band_coeffs[band + i_ts * IVAS_MAX_NUM_BANDS].P_re[0], 0.0f, ( IVAS_SPAR_MAX_CH - 1 ) ); -#endif if ( n_ts > 1 ) { ivas_dirac_dec_get_response( (int16_t) azi_dirac[band][i_ts], (int16_t) ele_dirac[band][i_ts], response_avg, order ); diff --git a/lib_com/options.h b/lib_com/options.h index cf316c25d4..6ef01adc25 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ #define ALLRAD_OPTIM /* Issue 159: Optimize memory allocation for ALLRAD */ #define FIX_I178_HQ_BUFFER_OVERRUN /* issue 178: Buffer overrun in HQ core decoder -- spectral filling buffer did not account for extended transition frame in IVAS */ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index a51e941548..640dd8e367 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -90,10 +90,8 @@ ivas_error ivas_spar_dec_open( /* MD handle */ if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal -#ifdef SBA_HOA_HBR_IMPROV , sba_order_internal -#endif ) ) != IVAS_ERR_OK ) { return error; @@ -649,13 +647,11 @@ static void ivas_spar_dec_MD( { ivas_parse_spar_header( hDecoderConfig->ivas_total_brate, sba_order, st0, &table_idx ); -#ifdef SBA_HOA_HBR_IMPROV if ( hSpar->hMdDec->spar_hoa_md_flag ) { hSpar->hMdDec->spar_md.num_bands = IVAS_MAX_NUM_BANDS; } else -#endif { hSpar->hMdDec->spar_md.num_bands = min( SPAR_DIRAC_SPLIT_START_BAND, IVAS_MAX_NUM_BANDS ); } @@ -801,11 +797,7 @@ void ivas_spar_get_parameters( weight = ivas_spar_get_cldfb_slot_gain( hSpar, hDecoderConfig, ts, &ts0, &ts1, &weight_20ms ); -#ifdef SBA_HOA_HBR_IMPROV split_band = hSpar->hMdDec->spar_md.num_bands; -#else - split_band = SPAR_DIRAC_SPLIT_START_BAND; -#endif for ( spar_band = 0; spar_band < num_spar_bands; spar_band++ ) { diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 84f885b158..4f07ff09b3 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -250,10 +250,8 @@ ivas_error ivas_spar_md_dec_open( ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels /* i : number of internal channels */ -#ifdef SBA_HOA_HBR_IMPROV , const int16_t sba_order /* i : SBA order */ -#endif ) { ivas_spar_md_dec_state_t *hMdDec; @@ -271,9 +269,7 @@ ivas_error ivas_spar_md_dec_open( return error; } -#ifdef SBA_HOA_HBR_IMPROV hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); -#endif hMdDec->table_idx = 0; /* just to initialize state variables*/ if ( ( error = ivas_spar_md_dec_init( hMdDec, hDecoderConfig, num_channels ) ) != IVAS_ERR_OK ) @@ -446,18 +442,10 @@ ivas_error ivas_spar_md_dec_init( hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? -#ifdef SBA_HOA_HBR_IMPROV hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); -#else - hMdDec->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); -#endif ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, -#ifdef SBA_HOA_HBR_IMPROV hMdDec->spar_md.num_bands -#else - min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) -#endif ); nchan_transport = hMdDec->spar_md_cfg.nchan_transport; @@ -697,11 +685,7 @@ void ivas_spar_md_dec_process( /* expand DirAC MD to all time slots */ for ( i_ts = 1; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) { -#ifdef SBA_HOA_HBR_IMPROV for ( b = 0; b < hMdDec->spar_md.num_bands; b++ ) -#else - for ( b = 0; b < min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); b++ ) -#endif { for ( j = 0; j < IVAS_SPAR_MAX_CH - 1; j++ ) { @@ -1782,7 +1766,6 @@ static void ivas_decode_arith_bs( ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_cell_dims[i].dim1 = ndm + ndec - 1; -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1790,7 +1773,6 @@ static void ivas_decode_arith_bs( pred_cell_dims[i].dim1 -= ( FOA_CHANNELS - 1 ); } } -#endif pred_cell_dims[i].dim2 = 1; drct_cell_dims[i].dim1 = ndec; drct_cell_dims[i].dim2 = ndm - 1; @@ -1811,7 +1793,6 @@ static void ivas_decode_arith_bs( if ( any_diff == 1 ) { -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { int16_t j; @@ -1827,7 +1808,6 @@ static void ivas_decode_arith_bs( } } } -#endif ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, pred_cell_dims, PRED_COEFF, planarCP ); } @@ -1836,7 +1816,6 @@ static void ivas_decode_arith_bs( ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { int16_t j; @@ -1856,7 +1835,6 @@ static void ivas_decode_arith_bs( } } } -#endif if ( any_diff == 1 ) { @@ -2106,7 +2084,6 @@ static void ivas_decode_huffman_bs( drct_dim = ndec * ( ndm - 1 ); decd_dim = ndec; pred_offset = 0; -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -2114,7 +2091,6 @@ static void ivas_decode_huffman_bs( pred_offset = FOA_CHANNELS - 1; } } -#endif for ( j = pred_offset; j < pred_dim; j++ ) { @@ -2122,7 +2098,6 @@ static void ivas_decode_huffman_bs( &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); } -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -2133,7 +2108,6 @@ static void ivas_decode_huffman_bs( } } } -#endif for ( j = 0; j < drct_dim; j++ ) { @@ -2787,11 +2761,7 @@ void ivas_spar_to_dirac( { ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, end_band, num_bands_out, -#ifdef SBA_HOA_HBR_IMPROV ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, -#else - sba_order_internal, -#endif dtx_vad, NULL ); /* temporarily copy frame-wise prediction coefficients in DirAC bands*/ @@ -2806,11 +2776,7 @@ void ivas_spar_to_dirac( ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, MAX_PARAM_SPATIAL_SUBFRAMES, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, end_band, num_bands_out, -#ifdef SBA_HOA_HBR_IMPROV ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, -#else - sba_order_internal, -#endif dtx_vad, NULL ); /* expand DirAC TC 20ms MD for residual channels to all subframes*/ diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 765770f0c0..b2e8940b8c 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -803,9 +803,7 @@ typedef struct ivas_spar_md_dec_state_t ivas_huff_coeffs_t huff_coeffs; int16_t table_idx; int16_t dtx_vad; -#ifdef SBA_HOA_HBR_IMPROV int16_t spar_hoa_md_flag; -#endif } ivas_spar_md_dec_state_t; diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 2386037052..50f9eb073a 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -335,10 +335,8 @@ void ivas_dirac_enc( } ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame -#ifdef SBA_HOA_HBR_IMPROV , SBA_MODE_DIRAC -#endif ); /* encode parameters */ if ( sba_planar || hQMetaData->useLowerRes ) @@ -512,18 +510,14 @@ void computeReferencePower_enc( float *reference_power, /* o : Estimated power */ const int16_t enc_param_start_band, /* i : first band to process */ const int16_t num_freq_bands /* i : Number of frequency bands */ -#ifdef SBA_HOA_HBR_IMPROV , const SBA_MODE sba_mode /* i : SBA mode */ -#endif ) { int16_t brange[2]; int16_t ch_idx, i, j; -#ifdef SBA_HOA_HBR_IMPROV float reference_power_W[DIRAC_MAX_NBANDS]; -#endif for ( i = 0; i < num_freq_bands; i++ ) { @@ -531,19 +525,13 @@ void computeReferencePower_enc( brange[1] = band_grouping[i + enc_param_start_band + 1]; reference_power[i] = 0; -#ifdef SBA_HOA_HBR_IMPROV reference_power_W[i] = 0; for ( j = brange[0]; j < brange[1]; j++ ) { reference_power_W[i] += ( Cldfb_RealBuffer[0][j] * Cldfb_RealBuffer[0][j] ) + ( Cldfb_ImagBuffer[0][j] * Cldfb_ImagBuffer[0][j] ); } reference_power[i] += reference_power_W[i]; -#endif -#ifdef SBA_HOA_HBR_IMPROV for ( ch_idx = 1; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) -#else - for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) -#endif { /* abs()^2 */ for ( j = brange[0]; j < brange[1]; j++ ) @@ -554,7 +542,6 @@ void computeReferencePower_enc( } v_multc( reference_power, 0.5f, reference_power, num_freq_bands ); -#ifdef SBA_HOA_HBR_IMPROV if ( sba_mode == SBA_MODE_SPAR ) { for ( i = 0; i < num_freq_bands; i++ ) @@ -562,7 +549,6 @@ void computeReferencePower_enc( reference_power[i] = max( reference_power[i], reference_power_W[i] ); } } -#endif return; } @@ -582,10 +568,8 @@ void ivas_dirac_param_est_enc( float **pp_fr_real, float **pp_fr_imag, const int16_t input_frame -#ifdef SBA_HOA_HBR_IMPROV , const SBA_MODE sba_mode -#endif ) { int16_t i, d, ts, index, l_ts, num_freq_bands; @@ -685,10 +669,8 @@ void ivas_dirac_param_est_enc( reference_power[ts], hDirAC->hConfig->enc_param_start_band, num_freq_bands -#ifdef SBA_HOA_HBR_IMPROV , sba_mode -#endif ); computeIntensityVector_enc( diff --git a/lib_enc/ivas_entropy_coder.c b/lib_enc/ivas_entropy_coder.c index 7f5ab7b996..a3714821f3 100644 --- a/lib_enc/ivas_entropy_coder.c +++ b/lib_enc/ivas_entropy_coder.c @@ -316,17 +316,13 @@ void ivas_arith_encode_cmplx_cell_array( int16_t input[IVAS_MAX_INPUT_LEN]; ivas_cell_dim_t cell_dim[IVAS_MAX_NUM_BANDS], cell_dim_diff[IVAS_MAX_NUM_BANDS]; int16_t len, idx, i, j, idx1; -#ifdef SBA_HOA_HBR_IMPROV int16_t total_len; -#endif idx1 = 0; if ( any_diff == 1 ) { idx = 0; -#ifdef SBA_HOA_HBR_IMPROV total_len = 0; -#endif for ( i = 0; i < nB; i++ ) { len = ( pCell_dims[i].dim1 * pCell_dims[i].dim2 ); @@ -334,13 +330,8 @@ void ivas_arith_encode_cmplx_cell_array( { for ( j = 0; j < len; j++ ) { -#ifdef SBA_HOA_HBR_IMPROV input_old[idx] = pSymbol_old_re[total_len + j]; input_new[idx++] = pSymbol_re[total_len + j]; -#else - input_old[idx] = pSymbol_old_re[i * len + j]; - input_new[idx++] = pSymbol_re[i * len + j]; -#endif } cell_dim_diff[i].dim1 = pCell_dims[i].dim1; cell_dim_diff[i].dim2 = pCell_dims[i].dim2; @@ -351,20 +342,14 @@ void ivas_arith_encode_cmplx_cell_array( { for ( j = 0; j < len; j++ ) { -#ifdef SBA_HOA_HBR_IMPROV input[idx1++] = pSymbol_re[total_len + j]; -#else - input[idx1++] = pSymbol_re[i * len + j]; -#endif } cell_dim_diff[i].dim1 = 0; cell_dim_diff[i].dim2 = 0; cell_dim[i].dim1 = pCell_dims[i].dim1; cell_dim[i].dim2 = pCell_dims[i].dim2; } -#ifdef SBA_HOA_HBR_IMPROV total_len += len; -#endif } #ifdef SPAR_HOA_DBG /*if ( 0 )*/ /*(pCell_dims[0].dim1 == 12)*/ diff --git a/lib_enc/ivas_mcmasa_enc.c b/lib_enc/ivas_mcmasa_enc.c index 1329e572ae..77f203e60b 100644 --- a/lib_enc/ivas_mcmasa_enc.c +++ b/lib_enc/ivas_mcmasa_enc.c @@ -893,10 +893,8 @@ void ivas_mcmasa_param_est_enc( computeReferencePower_enc( hMcMasa->band_grouping, FoaEven_RealBuffer, FoaEven_ImagBuffer, reference_power[ts], 0, num_freq_bands -#ifdef SBA_HOA_HBR_IMPROV , SBA_MODE_NONE -#endif ); /* Fill buffers of length "averaging_length" time slots for intensity and energy */ diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c index f682a380f7..30e7022698 100644 --- a/lib_enc/ivas_mct_core_enc.c +++ b/lib_enc/ivas_mct_core_enc.c @@ -178,7 +178,6 @@ static void AdjustChannelRatios( } chBitRatios[1] += ratio_diff; -#ifdef SBA_HOA_HBR_IMPROV /* make sure final ratios are within range*/ sum_ratio = 0.0f; for ( i = 0; i < nChannels; i++ ) @@ -190,7 +189,6 @@ static void AdjustChannelRatios( cur_ratio = chBitRatios[i] / sum_ratio; chBitRatios[i] = min( BITRATE_MCT_RATIO_RANGE - 1, max( 1, (uint16_t) ( BITRATE_MCT_RATIO_RANGE * cur_ratio + 0.5f ) ) ); } -#endif return; } diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index d90349e2af..1a84bd34e5 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -438,10 +438,8 @@ static ivas_error ivas_spar_enc_process( ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, data_f, ppIn_FR_real, ppIn_FR_imag, input_frame -#ifdef SBA_HOA_HBR_IMPROV , st_ivas->sba_mode -#endif ); @@ -554,11 +552,7 @@ static ivas_error ivas_spar_enc_process( { hSpar->hMdEnc->table_idx = table_idx; ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, -#ifdef SBA_HOA_HBR_IMPROV ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND -#else - SPAR_DIRAC_SPLIT_START_BAND -#endif ); } @@ -568,9 +562,7 @@ static ivas_error ivas_spar_enc_process( * MetaData encoder *-----------------------------------------------------------------------------------------*/ -#ifdef SBA_HOA_HBR_IMPROV if ( hSpar->hMdEnc->spar_hoa_md_flag == 0 ) -#endif { ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, nchan_inp, sba_order ); } @@ -616,20 +608,14 @@ static ivas_error ivas_spar_enc_process( ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, d_start_band, d_end_band, -#ifdef SBA_HOA_HBR_IMPROV ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, -#else - sba_order, -#endif dtx_vad, Wscale_d ); } -#ifdef SBA_HOA_HBR_IMPROV if ( hSpar->hMdEnc->spar_hoa_md_flag ) { ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, nchan_inp, sba_order ); } -#endif /*-----------------------------------------------------------------------------------------* * FB mixer diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index ccea624a5f..bff51818f1 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -121,9 +121,7 @@ ivas_error ivas_spar_md_enc_open( num_channels = 2 * sba_order + 2; -#ifdef SBA_HOA_HBR_IMPROV hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); -#endif if ( ( hMdEnc->spar_md.band_coeffs = (ivas_band_coeffs_t *) count_malloc( IVAS_MAX_NUM_BANDS * sizeof( ivas_band_coeffs_t ) ) ) == NULL ) { @@ -325,11 +323,7 @@ static ivas_error ivas_spar_md_enc_init( hMdEnc->spar_md_cfg.gen_bs = 1; ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, -#ifdef SBA_HOA_HBR_IMPROV ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND -#else - SPAR_DIRAC_SPLIT_START_BAND -#endif ); /* get FB coefficients */ @@ -572,9 +566,7 @@ ivas_error ivas_spar_md_enc_process( { float pred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; float dm_fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; -#ifdef SBA_HOA_HBR_IMPROV float pred_coeffs_re_local[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; -#endif int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; int16_t j, planarCP; int16_t k, bwidth, num_bands, num_bands_full, num_bands_bw; @@ -596,9 +588,7 @@ ivas_error ivas_spar_md_enc_process( bwidth = min( bwidth, hEncoderConfig->max_bwidth ); num_bands = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW ); -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag == 0 ) -#endif { num_bands = min( num_bands, SPAR_DIRAC_SPLIT_START_BAND ); } @@ -663,7 +653,6 @@ ivas_error ivas_spar_md_enc_process( bands_bw = 1; } -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { for ( b = SPAR_DIRAC_SPLIT_START_BAND; b < num_bands; b++ ) @@ -675,7 +664,6 @@ ivas_error ivas_spar_md_enc_process( } } } -#endif ivas_compute_spar_params( cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); @@ -804,7 +792,6 @@ ivas_error ivas_spar_md_enc_process( } } -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { for ( b = SPAR_DIRAC_SPLIT_START_BAND; b < num_bands; b++ ) @@ -818,7 +805,6 @@ ivas_error ivas_spar_md_enc_process( } } } -#endif ivas_create_fullr_dmx_mat( pred_coeffs_re, dm_fv_re, hMdEnc->mixer_mat, num_ch, 0, num_bands, active_w, &hMdEnc->spar_md_cfg ); @@ -1313,7 +1299,6 @@ static void ivas_get_huffman_coded_bs( pred_coeff_dim = ndm + ndec - 1; pred_offset = 0; -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1321,7 +1306,6 @@ static void ivas_get_huffman_coded_bs( pred_offset = FOA_CHANNELS - 1; } } -#endif if ( planarCP ) { @@ -1404,7 +1388,6 @@ static void ivas_get_arith_coded_bs( ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; ndec = hMdEnc->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_cell_dims[i].dim1 = ndm + ndec - 1; -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1412,7 +1395,6 @@ static void ivas_get_arith_coded_bs( pred_cell_dims[i].dim1 -= ( FOA_CHANNELS - 1 ); } } -#endif pred_cell_dims[i].dim2 = 1; drct_cell_dims[i].dim1 = ndec; drct_cell_dims[i].dim2 = ndm - 1; @@ -1431,7 +1413,6 @@ static void ivas_get_arith_coded_bs( break; } } -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { int16_t j; @@ -1452,7 +1433,6 @@ static void ivas_get_arith_coded_bs( } } } -#endif ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); if ( any_diff == 1 ) @@ -1464,7 +1444,6 @@ static void ivas_get_arith_coded_bs( ivas_arith_encode_cmplx_cell_array( &hMdEnc->arith_coeffs.pred_arith_re[qsi], &hMdEnc->arith_coeffs.pred_arith_re_diff[qsi], pDo_diff, nB, symbol_arr_re, symbol_arr_old_re, pred_cell_dims, hMetaData, any_diff ); -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { int16_t j; @@ -1484,7 +1463,6 @@ static void ivas_get_arith_coded_bs( } } } -#endif #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n band_indexes:\n"); diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index d48e442445..78b79531cb 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -648,9 +648,7 @@ typedef struct ivas_spar_md_enc_state_t ivas_arith_coeffs_t arith_coeffs; ivas_huff_coeffs_t huff_coeffs; int16_t table_idx; -#ifdef SBA_HOA_HBR_IMPROV int16_t spar_hoa_md_flag; -#endif } ivas_spar_md_enc_state_t; /* PCA structure */ -- GitLab From c125f313685ac25b74e008141c3d11e4725d8f70 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:20:16 +0200 Subject: [PATCH 340/479] [cleanup] accept ALLRAD_OPTIM --- lib_com/ivas_cnst.h | 4 ---- lib_com/options.h | 1 - lib_dec/ivas_allrad_dec.c | 4 ---- 3 files changed, 9 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 0512cf27e6..abf0e1f663 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -1319,11 +1319,7 @@ typedef enum #define PANNING_ELE_RESOLUTION 5 #define EFAP_MAX_CHAN_NUM 5 /* Maximum number of channels that constitute a polygon, 4 or 5 */ -#ifdef ALLRAD_OPTIM #define EFAP_MAX_POLY_SET 50 /* Upper bound on number of polygons; with a Speaker setup of 16.0, we obtain 44 polygons/triangles in the matlab implementation. */ -#else -#define EFAP_MAX_POLY_SET 70 /* Upper bound on number of polygons; with a Speaker setup of 26.0, we obtain 54 polygons/triangles in the matlab implementation. */ -#endif #define EFAP_MODE_EFAP 0 /* EFAP Panning */ #define EFAP_MODE_EFIP 1 /* EFIP Panning */ diff --git a/lib_com/options.h b/lib_com/options.h index 6ef01adc25..424ff65f53 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define ALLRAD_OPTIM /* Issue 159: Optimize memory allocation for ALLRAD */ #define FIX_I178_HQ_BUFFER_OVERRUN /* issue 178: Buffer overrun in HQ core decoder -- spectral filling buffer did not account for extended transition frame in IVAS */ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ diff --git a/lib_dec/ivas_allrad_dec.c b/lib_dec/ivas_allrad_dec.c index 13e4f3c241..ab1402a452 100644 --- a/lib_dec/ivas_allrad_dec.c +++ b/lib_dec/ivas_allrad_dec.c @@ -108,11 +108,7 @@ ivas_error ivas_sba_get_hoa_dec_matrix( /* Allocate memory */ assert( *hoa_dec_mtx == NULL && "hoa_dec_mtx != NULL" ); -#ifdef ALLRAD_OPTIM if ( ( *hoa_dec_mtx = (float *) count_malloc( SBA_NHARM_HOA3 * ( hOutSetup.nchan_out_woLFE ) * sizeof( float ) ) ) == NULL ) -#else - if ( ( *hoa_dec_mtx = (float *) count_malloc( SBA_NHARM_HOA3 * MAX_OUTPUT_CHANNELS * sizeof( float ) ) ) == NULL ) -#endif { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "ALLRAD: Cannot allocate memory!" ) ); } -- GitLab From 7ddb7f5cb369740d6deb9ebbc29dbba2b37b7bc0 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 17:21:31 +0200 Subject: [PATCH 341/479] [cleanup] accept FIX_I178_HQ_BUFFER_OVERRUN --- lib_com/fill_spectrum.c | 8 -------- lib_com/options.h | 1 - 2 files changed, 9 deletions(-) diff --git a/lib_com/fill_spectrum.c b/lib_com/fill_spectrum.c index c1837d5140..a3dbcf304b 100644 --- a/lib_com/fill_spectrum.c +++ b/lib_com/fill_spectrum.c @@ -90,18 +90,10 @@ void fill_spectrum( const int16_t element_mode /* i : element mode */ ) { -#ifdef FIX_I178_HQ_BUFFER_OVERRUN float CodeBook[L_SPEC48k_EXT]; -#else - float CodeBook[FREQ_LENGTH]; -#endif int16_t cb_size = 0; int16_t last_sfm; -#ifdef FIX_I178_HQ_BUFFER_OVERRUN float CodeBook_mod[L_SPEC48k_EXT]; -#else - float CodeBook_mod[FREQ_LENGTH]; -#endif float norm_adj[NB_SFM]; int16_t high_sfm = 23; int16_t flag_32K_env_hangover; diff --git a/lib_com/options.h b/lib_com/options.h index 424ff65f53..514e8c04f0 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -144,7 +144,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ -#define FIX_I178_HQ_BUFFER_OVERRUN /* issue 178: Buffer overrun in HQ core decoder -- spectral filling buffer did not account for extended transition frame in IVAS */ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ #define SPAR_STEREO_NO_DIRAC /* Issue 180: skip DirAC processing channels for stereo output */ -- GitLab From 8671fbd9219d0d7c016efbc55aa0597efd88e0c7 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 27 Oct 2022 17:45:47 +0200 Subject: [PATCH 342/479] change version parsing --- scripts/check-format.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/check-format.sh b/scripts/check-format.sh index 9b6911f289..f372403115 100755 --- a/scripts/check-format.sh +++ b/scripts/check-format.sh @@ -62,7 +62,7 @@ EOM } cl-format-check-version() { - ${CLANG_FORMAT} --version | awk '{print $3}' + ${CLANG_FORMAT} --version | sed 's/.*version \([1-9]*\.[0-9]*\).*/\1/' } cl-format-apply() { -- GitLab From 853adaab48c3a8b207683718018e58f54c05cc49 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 18:02:42 +0200 Subject: [PATCH 343/479] formatting --- lib_com/ivas_cov_smooth.c | 12 ++++-------- lib_com/ivas_stereo_psychlpc_com.c | 16 ++++++++-------- lib_com/vlpc_2st_com.c | 3 +-- lib_dec/igf_dec.c | 7 +++---- lib_dec/ivas_core_dec.c | 4 ++-- lib_dec/ivas_init_dec.c | 5 ++--- lib_dec/ivas_spar_decoder.c | 13 +++++-------- lib_dec/ivas_spar_md_dec.c | 19 +++++++++---------- lib_enc/igf_enc.c | 6 +++--- lib_enc/ivas_agc_enc.c | 4 ++-- lib_enc/ivas_core_enc.c | 4 ++-- lib_enc/ivas_core_pre_proc.c | 8 ++++---- lib_enc/ivas_dirac_enc.c | 18 ++++++------------ lib_enc/ivas_enc_cov_handler.c | 6 ++---- lib_enc/ivas_ism_param_enc.c | 2 -- lib_enc/ivas_mcmasa_enc.c | 6 ++---- lib_enc/ivas_sns_enc.c | 1 - lib_enc/ivas_spar_encoder.c | 9 +++------ lib_enc/ivas_spar_md_enc.c | 3 +-- lib_enc/ivas_stat_enc.h | 4 ++-- 20 files changed, 61 insertions(+), 89 deletions(-) mode change 100755 => 100644 lib_enc/igf_enc.c diff --git a/lib_com/ivas_cov_smooth.c b/lib_com/ivas_cov_smooth.c index c74c7c5f00..eaaec6a982 100644 --- a/lib_com/ivas_cov_smooth.c +++ b/lib_com/ivas_cov_smooth.c @@ -174,11 +174,9 @@ static void ivas_compute_smooth_cov( float *pPrior_cov_buf[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], const float fac, const int16_t start_band, - const int16_t end_band - , + const int16_t end_band, const int16_t num_ch, - const int16_t transient_det -) + const int16_t transient_det ) { int16_t i, j, k; int16_t prev_idx = hCovState->prior_bank_idx; @@ -234,11 +232,9 @@ void ivas_cov_smooth_process( float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, - const int16_t end_band - , + const int16_t end_band, const int16_t num_ch, - const int16_t transient_det -) + const int16_t transient_det ) { int16_t i, j; int16_t num_bands = end_band - start_band; diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index 3cbca73cc0..8a50caaa29 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -68,14 +68,14 @@ static void SpectrumWeighting_Init( * initialize a PsychoacousticParameters structure *-------------------------------------------------------------------*/ - ivas_error - PsychoacousticParameters_Init( - const int32_t sr_core, /* i : sampling rate of core-coder */ - const int16_t nBins, /* i : Number of bins (spectral lines) */ - const int8_t nBands, /* i : Number of spectrum subbands */ - const int16_t isTCX20, /* i : Flag indicating if the subband division is for TCX20 or TCX10 */ - const int16_t isWarped, /* i : Flag indicating if the scale is linear or warped */ - PsychoacousticParameters *pPsychParams ) +ivas_error +PsychoacousticParameters_Init( + const int32_t sr_core, /* i : sampling rate of core-coder */ + const int16_t nBins, /* i : Number of bins (spectral lines) */ + const int8_t nBands, /* i : Number of spectrum subbands */ + const int16_t isTCX20, /* i : Flag indicating if the subband division is for TCX20 or TCX10 */ + const int16_t isWarped, /* i : Flag indicating if the scale is linear or warped */ + PsychoacousticParameters *pPsychParams ) { if ( pPsychParams == NULL ) diff --git a/lib_com/vlpc_2st_com.c b/lib_com/vlpc_2st_com.c index f027ecd8ea..86fdf68c5f 100644 --- a/lib_com/vlpc_2st_com.c +++ b/lib_com/vlpc_2st_com.c @@ -52,8 +52,7 @@ void lsf_weight_2st( const float *lsfq, float *w, const int16_t mode, - const int32_t sr_core -) + const int32_t sr_core ) { int16_t i; float d[M + 1]; diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index f876391b2d..2cded75928 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -679,8 +679,8 @@ static void IGF_appl( float *pSpectralData, /* i/o: Q31 | MDCT spectrum */ const float *igf_spec, /* i : Q31 | prepared IGF spectrum */ float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ - int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ - const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ + int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ + const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ ) { H_IGF_GRID hGrid; @@ -1240,8 +1240,7 @@ void IGFDecApplyStereo( const int16_t *coreMsMask, const int16_t restrict_hopsize, const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t bfi_apply_damping -) + const int16_t bfi_apply_damping ) { IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR; H_IGF_GRID hGrid; diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index fd5d5b3c1e..e18f0e3e5d 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -186,8 +186,8 @@ ivas_error ivas_core_dec( { float gain; - gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : - ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain : 0.0f; + gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain + : 0.0f; if ( ( st->element_mode == IVAS_CPE_MDCT && hMCT == NULL ) || ( st->hPlcInfo != NULL ) ) { diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index f98c812477..30b96a25c8 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -792,10 +792,9 @@ ivas_error ivas_init_decoder( if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA #ifdef SPAR_STEREO_NO_DIRAC - && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO - && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO + && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO #endif - ) + ) { if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 640dd8e367..444a14457e 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -89,10 +89,8 @@ ivas_error ivas_spar_dec_open( } /* MD handle */ - if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal - , - sba_order_internal - ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal, + sba_order_internal ) ) != IVAS_ERR_OK ) { return error; } @@ -1138,12 +1136,11 @@ void ivas_spar_dec_upmixer( } } - if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA + if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA #ifdef SPAR_STEREO_NO_DIRAC - && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO - && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO + && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO #endif - ) + ) { ivas_dirac_dec( st_ivas, output, nchan_internal, cldfb_in_ts_re, cldfb_in_ts_im, i_sf ); } diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 4f07ff09b3..5d39aee9a0 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -445,8 +445,7 @@ ivas_error ivas_spar_md_dec_init( hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, - hMdDec->spar_md.num_bands - ); + hMdDec->spar_md.num_bands ); nchan_transport = hMdDec->spar_md_cfg.nchan_transport; @@ -673,14 +672,14 @@ void ivas_spar_md_dec_process( #endif /* SPAR to DirAC conversion */ - ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); + ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); - /* set correct number of bands*/ - nB = IVAS_MAX_NUM_BANDS; - if ( bw == IVAS_RED_BAND_FACT ) - { - nB = nB >> 1; - } + /* set correct number of bands*/ + nB = IVAS_MAX_NUM_BANDS; + if ( bw == IVAS_RED_BAND_FACT ) + { + nB = nB >> 1; + } /* expand DirAC MD to all time slots */ for ( i_ts = 1; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) @@ -1394,7 +1393,7 @@ void ivas_spar_dec_gen_umx_mat( } } } - + #ifdef DEBUG_SBA_MD_DUMP { static FILE *f_mat = 0; diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c old mode 100755 new mode 100644 index 6050354a8f..e355cd2083 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -462,7 +462,7 @@ static void IGF_CalculateEnvelope( float diffSFM; float shiftedSFM = 0.f; - tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); + tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); tmp_sb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, tmp, strt_cpy ) / IGF_getCrest_new( hPrivateData->logSpec, tmp, strt_cpy ); if ( last_core_acelp || hPrivateData->wasTransient ) @@ -494,12 +494,12 @@ static void IGF_CalculateEnvelope( if ( slope < -threshold ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); } else if ( ( slope > 1.f * threshold ) && ( sfb != hGrid->sfbWrap[hGrid->nTiles] - 1 ) ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); } if ( shiftedSFM > 0.04f ) diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 0f3274f43c..b0012ee469 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -74,8 +74,8 @@ int16_t ivas_agc_enc_get_enablement_flag( int16_t nchan_transport ) { return (int16_t) ( ( agc_configuration == IVAS_ENC_AGC_UNDEFINED ) - ? ( nchan_transport == 1 ) - : agc_configuration ); + ? ( nchan_transport == 1 ) + : agc_configuration ); } #endif diff --git a/lib_enc/ivas_core_enc.c b/lib_enc/ivas_core_enc.c index d3e9852080..b863944b57 100644 --- a/lib_enc/ivas_core_enc.c +++ b/lib_enc/ivas_core_enc.c @@ -79,8 +79,8 @@ ivas_error ivas_core_enc( float enerBuffer[CPE_CHANNELS][CLDFB_NO_CHANNELS_MAX], /* i : energy buffer */ float fft_buff[CPE_CHANNELS][2 * L_FFT], /* i : FFT buffer */ const int16_t tdm_SM_or_LRTD_Pri, /* i : channel combination scheme flag in TD stereo OR LRTD primary channel */ - const int16_t ivas_format, /* i : IVAS format */ - const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ + const int16_t ivas_format, /* i : IVAS format */ + const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ ) { int16_t n, input_frame; diff --git a/lib_enc/ivas_core_pre_proc.c b/lib_enc/ivas_core_pre_proc.c index c1a109277c..acbacc09e0 100644 --- a/lib_enc/ivas_core_pre_proc.c +++ b/lib_enc/ivas_core_pre_proc.c @@ -52,10 +52,10 @@ *--------------------------------------------------------------------*/ ivas_error pre_proc_ivas( - Encoder_State *st, /* i/o: encoder state structure */ - const int16_t last_element_mode, /* i : last element mode */ - const int32_t element_brate, /* i : element bitrate */ - const int32_t last_element_brate, /* i : last element bitrate */ + Encoder_State *st, /* i/o: encoder state structure */ + const int16_t last_element_mode, /* i : last element mode */ + const int32_t element_brate, /* i : element bitrate */ + const int32_t last_element_brate, /* i : last element bitrate */ const int16_t input_frame, /* i : frame length */ float old_inp_12k8[], /* i/o: buffer of old input signal */ float old_inp_16k[], /* i/o: buffer of old input signal @ 16kHz */ diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 50f9eb073a..96a005a0b3 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -334,10 +334,8 @@ void ivas_dirac_enc( set_zero( data_f[2], input_frame ); } - ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame - , - SBA_MODE_DIRAC - ); + ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame, + SBA_MODE_DIRAC ); /* encode parameters */ if ( sba_planar || hQMetaData->useLowerRes ) { @@ -567,10 +565,8 @@ void ivas_dirac_param_est_enc( float data_f[][L_FRAME48k], float **pp_fr_real, float **pp_fr_imag, - const int16_t input_frame - , - const SBA_MODE sba_mode -) + const int16_t input_frame, + const SBA_MODE sba_mode ) { int16_t i, d, ts, index, l_ts, num_freq_bands; int16_t band_m_idx, block_m_idx; @@ -668,10 +664,8 @@ void ivas_dirac_param_est_enc( Cldfb_ImagBuffer, reference_power[ts], hDirAC->hConfig->enc_param_start_band, - num_freq_bands - , - sba_mode - ); + num_freq_bands, + sba_mode ); computeIntensityVector_enc( hDirAC, diff --git a/lib_enc/ivas_enc_cov_handler.c b/lib_enc/ivas_enc_cov_handler.c index b733bc2090..933c2c5de9 100644 --- a/lib_enc/ivas_enc_cov_handler.c +++ b/lib_enc/ivas_enc_cov_handler.c @@ -147,12 +147,10 @@ void ivas_enc_cov_handler_process( float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, - const int16_t end_band - , + const int16_t end_band, const int16_t num_ch, const int16_t dtx_vad, - const int16_t transient_det -) + const int16_t transient_det ) { int16_t i, j; int16_t dtx_cov_flag; diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index 493fb6f54a..8dcdef30b5 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -461,9 +461,7 @@ ivas_error ivas_ism_enc_config( ivas_param_ism_enc_close( st_ivas->hDirAC, st_ivas->hEncoderConfig->input_Fs ); st_ivas->hDirAC = NULL; } - } return error; } - diff --git a/lib_enc/ivas_mcmasa_enc.c b/lib_enc/ivas_mcmasa_enc.c index 77f203e60b..de816f3bf7 100644 --- a/lib_enc/ivas_mcmasa_enc.c +++ b/lib_enc/ivas_mcmasa_enc.c @@ -892,10 +892,8 @@ void ivas_mcmasa_param_est_enc( intensity_even_real ); computeReferencePower_enc( hMcMasa->band_grouping, FoaEven_RealBuffer, FoaEven_ImagBuffer, reference_power[ts], 0, - num_freq_bands - , - SBA_MODE_NONE - ); + num_freq_bands, + SBA_MODE_NONE ); /* Fill buffers of length "averaging_length" time slots for intensity and energy */ hMcMasa->index_buffer_intensity = ( hMcMasa->index_buffer_intensity % hMcMasa->no_col_avg_diff ) + 1; /* averaging_length = 32 */ diff --git a/lib_enc/ivas_sns_enc.c b/lib_enc/ivas_sns_enc.c index 6790f0cf6d..45c04ac9ea 100644 --- a/lib_enc/ivas_sns_enc.c +++ b/lib_enc/ivas_sns_enc.c @@ -44,7 +44,6 @@ #include "wmops.h" - /*------------------------------------------------------------------- * sns_1st_cod() * diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 1a84bd34e5..7e2d49310f 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -437,10 +437,8 @@ static ivas_error ivas_spar_enc_process( *-----------------------------------------------------------------------------------------*/ ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, - data_f, ppIn_FR_real, ppIn_FR_imag, input_frame - , - st_ivas->sba_mode - ); + data_f, ppIn_FR_real, ppIn_FR_imag, input_frame, + st_ivas->sba_mode ); if ( hQMetaData->q_direction->cfg.nbands > 0 ) @@ -552,8 +550,7 @@ static ivas_error ivas_spar_enc_process( { hSpar->hMdEnc->table_idx = table_idx; ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, - ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND - ); + ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); } nchan_transport = st_ivas->nchan_transport; diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index bff51818f1..4bd23dee47 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -323,8 +323,7 @@ static ivas_error ivas_spar_md_enc_init( hMdEnc->spar_md_cfg.gen_bs = 1; ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, - ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND - ); + ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); /* get FB coefficients */ for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 78b79531cb..1a8f595bd0 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -828,8 +828,8 @@ typedef struct stereo_cng_enc typedef struct sce_enc_data_structure { - int16_t sce_id; /* SCE # identifier */ - int32_t element_brate; /* SCE element total bitrate in bps */ + int16_t sce_id; /* SCE # identifier */ + int32_t element_brate; /* SCE element total bitrate in bps */ int32_t last_element_brate; /* last SCE element bitrate in bps */ BSTR_ENC_HANDLE hMetaData; /* Metadata bitstream handle */ -- GitLab From dfa34c5a7d7d7139f3c67507c774b6eedd0e59c2 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Thu, 27 Oct 2022 18:03:36 +0200 Subject: [PATCH 344/479] whitespace --- lib_com/options.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 514e8c04f0..3c41d7d271 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -143,11 +143,8 @@ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ - #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ - #define SPAR_STEREO_NO_DIRAC /* Issue 180: skip DirAC processing channels for stereo output */ - #define AGC_TUNING_IMPROVEMENT /* Issue 168: Enable AGC for low bit rate (1 TC) */ #ifdef AGC_TUNING_IMPROVEMENT #define AGC_ENABLE_FOR_LBR /* Issue 168: Enable AGC for low bit rate (1 TC) */ -- GitLab From 7182b13c9dd4650967d6d21c0a17e0e58573503c Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Fri, 28 Oct 2022 01:09:44 +0200 Subject: [PATCH 345/479] wired up renderconfig to ivas_rend_openCrend and children --- apps/renderer.c | 72 +++++++++++++++---------------- lib_dec/ivas_stat_dec.h | 1 - lib_rend/ivas_crend.c | 31 +++++++------ lib_rend/ivas_lib_rend_internal.h | 3 +- lib_rend/lib_rend.c | 31 ++++++++----- 5 files changed, 75 insertions(+), 63 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index b6d51ce43c..22311cfa96 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -501,6 +501,42 @@ int32_t main( int32_t argc, char **argv ) exit( -1 ); } + /* === Configure === */ + if ( ( error = IVAS_REND_ConfigureConfig( hIvasRend, args.trajectoryFile[0] != '\0', args.renderConfigFile[0] != '\0' ) ) != IVAS_ERR_OK ) + { + exit( -1 ); + } + + if ( args.renderConfigFile[0] != '\0' ) + { + IVAS_RENDER_CONFIG_DATA renderConfig; + + /* sanity check */ + if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + { + fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" ); + exit( -1 ); // goto cleanup; + } + + if ( ( error = IVAS_REND_GetRenderConfig( hIvasRend, &renderConfig ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed\n" ); + exit( -1 ); // goto cleanup; + } + + if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK ) + { + fprintf( stderr, "Failed to read renderer configuration from file %s\n", args.renderConfigFile ); + exit( -1 ); // goto cleanup; + } + + if ( ( error = IVAS_REND_FeedRenderConfig( hIvasRend, renderConfig ) ) != IVAS_ERR_OK ) + { + fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed\n" ); + exit( -1 ); // goto cleanup; + } + } + /* Set up output custom layout configuration */ if ( args.outConfig.audioConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { @@ -589,42 +625,6 @@ int32_t main( int32_t argc, char **argv ) hMasaMetadata = MasaFileReader_getMetadataHandle( masaReader ); } - /* === Configure === */ - if ( ( error = IVAS_REND_ConfigureConfig( hIvasRend, args.trajectoryFile[0] != '\0', args.renderConfigFile[0] != '\0' ) ) != IVAS_ERR_OK ) - { - exit( -1 ); - } - - if ( args.renderConfigFile[0] != '\0' ) - { - IVAS_RENDER_CONFIG_DATA renderConfig; - - /* sanity check */ - if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) - { - fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" ); - exit( -1 ); // goto cleanup; - } - - if ( ( error = IVAS_REND_GetRenderConfig( hIvasRend, &renderConfig ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed\n" ); - exit( -1 ); // goto cleanup; - } - - if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK ) - { - fprintf( stderr, "Failed to read renderer configuration from file %s\n", args.renderConfigFile ); - exit( -1 ); // goto cleanup; - } - - if ( ( error = IVAS_REND_FeedRenderConfig( hIvasRend, renderConfig ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed\n" ); - exit( -1 ); // goto cleanup; - } - } - int32_t numOutChannels; if ( ( error = IVAS_REND_NumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 2284f9d09d..42354c201d 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -1658,7 +1658,6 @@ typedef struct ivas_hrtfs_structure /* Reverberator structures */ - typedef struct ivas_roomAcoustics_t { int16_t override; diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index defdbae74b..924997f008 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1149,7 +1149,7 @@ ivas_error ivas_rend_openCrend( CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, - //IVAS_RENDER_CONFIG_HANDLE hRendererConfig, + RENDER_CONFIG_DATA *hRend, int32_t output_Fs ) { /* TODO tmu : Based on ivas_crend_open() - could be harmonized / refactored */ @@ -1164,7 +1164,7 @@ ivas_error ivas_rend_openCrend( if ( pCrend->hHrtfCrend == NULL ) { - if ( ( error = ivas_rend_initCrend( pCrend, inConfig, outConfig, output_Fs ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_initCrend( pCrend, inConfig, outConfig, hRend, output_Fs ) ) != IVAS_ERR_OK ) { return error; } @@ -1278,15 +1278,19 @@ ivas_error ivas_rend_openCrend( hCrend->hTrack = NULL; } - /* TODO tmu : implement renderConfig */ - //if ( ( ( hRendererConfig != NULL ) && hRendererConfig->room_acoustics.late_reverb_on ) ) - //{ - // //if ( ( error = ivas_reverb_open( &( hCrend->hReverb ), st_ivas->intern_config, hHrtf, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) - // { - // return error; - // } - //} - //else + if ( ( hRend != NULL ) && (hRend->roomAcoustics.late_reverb_on ) ) + { + if ( ( error = ivas_reverb_open( &(hCrend->hReverb), + getIvasAudioConfigFromRendAudioConfig( inConfig ), + pCrend->hHrtfCrend, + hRend, + output_Fs + ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else { hCrend->hReverb = NULL; } @@ -1308,6 +1312,7 @@ ivas_error ivas_rend_initCrend( CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, + RENDER_CONFIG_DATA *hRend, int32_t output_Fs ) { int16_t i, j, tmp; @@ -1339,9 +1344,7 @@ ivas_error ivas_rend_initCrend( /* set BRIR flag */ use_brir = false; - /* TODO tmu : pass down render config handle */ - // if ((pCrend->hRenderConfig != NULL && pCrend->hRenderConfig->roomAcoustics.use_brir) || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) - if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + if ( (hRend != NULL && hRend->roomAcoustics.use_brir ) || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { use_brir = true; } diff --git a/lib_rend/ivas_lib_rend_internal.h b/lib_rend/ivas_lib_rend_internal.h index 339131c811..0628e4d4b0 100644 --- a/lib_rend/ivas_lib_rend_internal.h +++ b/lib_rend/ivas_lib_rend_internal.h @@ -41,13 +41,14 @@ ivas_error ivas_rend_openCrend( CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, -// IVAS_RENDER_CONFIG_HANDLE hRendererConfig, + RENDER_CONFIG_DATA *hRend, int32_t output_Fs ); ivas_error ivas_rend_initCrend( CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, + RENDER_CONFIG_DATA *hRend, int32_t output_Fs ); ivas_error ivas_rend_closeCrend( diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 6a803b1cd1..1da589469f 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -887,7 +887,8 @@ static CREND_WRAPPER defaultCrendWrapper( void ) static ivas_error setRendInputActiveIsm( void *input, IVAS_REND_AudioConfig inConfig, - IVAS_REND_InputId id ) + IVAS_REND_InputId id, + RENDER_CONFIG_DATA *hRend ) { ivas_error error; rendering_context rendCtx; @@ -919,6 +920,7 @@ static ivas_error setRendInputActiveIsm( error = ivas_rend_openCrend( &inputIsm->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, + hRend, *rendCtx.pOutSampleRate ); } if ( error != IVAS_ERR_OK ) @@ -1428,7 +1430,8 @@ static void tmpFixBuggyTdBinRendInit( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRen static ivas_error initMcBinauralRendering( input_mc *inputMc, IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig ) + IVAS_REND_AudioConfig outConfig, + RENDER_CONFIG_DATA *hRend ) { ivas_error error; int32_t outSampleRate; @@ -1480,6 +1483,7 @@ static ivas_error initMcBinauralRendering( if ( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, ( inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) ? IVAS_REND_AUDIO_CONFIG_7_1_4 : inConfig, outConfig, + hRend, outSampleRate ) ) != IVAS_ERR_OK ) { return error; @@ -1547,7 +1551,8 @@ static IVAS_REND_LfeRouting defaultLfeRouting( static ivas_error setRendInputActiveMc( void *input, IVAS_REND_AudioConfig inConfig, - IVAS_REND_InputId id ) + IVAS_REND_InputId id, + RENDER_CONFIG_DATA *hRend ) { ivas_error error; rendering_context rendCtx; @@ -1571,7 +1576,7 @@ static ivas_error setRendInputActiveMc( if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { - if ( ( error = initMcBinauralRendering( inputMc, inConfig, outConfig ) ) != IVAS_ERR_OK ) + if ( ( error = initMcBinauralRendering( inputMc, inConfig, outConfig, hRend ) ) != IVAS_ERR_OK ) { return error; } @@ -1695,7 +1700,7 @@ static ivas_error initSbaPanGainsForSbaOut( input_sba *inputSba, IVAS_REND_Audio return error; } -static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig outConfig ) +static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig outConfig, RENDER_CONFIG_DATA *hRend ) { ivas_error error; IVAS_REND_AudioConfig inConfig; @@ -1722,6 +1727,7 @@ static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig error = ivas_rend_openCrend( &inputSba->crendWrapper, inConfig, outConfig, + hRend, *rendCtx.pOutSampleRate ); break; case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: @@ -1732,6 +1738,7 @@ static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig error = ivas_rend_openCrend( &inputSba->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, + hRend, *rendCtx.pOutSampleRate ); break; default: @@ -1753,7 +1760,8 @@ static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig static ivas_error setRendInputActiveSba( void *input, IVAS_REND_AudioConfig inConfig, - IVAS_REND_InputId id ) + IVAS_REND_InputId id, + RENDER_CONFIG_DATA *hRend ) { ivas_error error; rendering_context rendCtx; @@ -1769,7 +1777,7 @@ static ivas_error setRendInputActiveSba( inputSba->crendWrapper = defaultCrendWrapper(); initRotGains( inputSba->rot_gains_prev ); - if ( ( error = updateSbaPanGains( inputSba, outConfig ) ) != IVAS_ERR_OK ) + if ( ( error = updateSbaPanGains( inputSba, outConfig, hRend ) ) != IVAS_ERR_OK ) { return error; } @@ -2007,7 +2015,7 @@ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( /* Input inactive, skip. */ continue; } - if ( ( error = updateSbaPanGains( inputSba, hIvasRend->outputConfig ) ) != IVAS_ERR_OK ) + if ( ( error = updateSbaPanGains( inputSba, hIvasRend->outputConfig, hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK ) { return error; } @@ -2217,7 +2225,7 @@ ivas_error IVAS_REND_AddInput( int32_t maxNumInputsOfType; void *inputsArray; int32_t inputStructSize; - ivas_error ( *activateInput )( void *, IVAS_REND_AudioConfig, IVAS_REND_InputId ); + ivas_error ( *activateInput )( void *, IVAS_REND_AudioConfig, IVAS_REND_InputId, RENDER_CONFIG_DATA * ); int32_t inputIndex; /*-----------------------------------------------------------------* @@ -2266,7 +2274,8 @@ ivas_error IVAS_REND_AddInput( if ( ( error = activateInput( (uint8_t *) inputsArray + inputStructSize * inputIndex, inConfig, - *inputId ) ) != IVAS_ERR_OK ) + *inputId, + hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK ) { return error; } @@ -2318,7 +2327,7 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( if ( hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || hIvasRend->outputConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { - if ( ( error = initMcBinauralRendering( inputMc, inputMc->base.inConfig, hIvasRend->outputConfig ) ) != IVAS_ERR_OK ) + if ( ( error = initMcBinauralRendering( inputMc, inputMc->base.inConfig, hIvasRend->outputConfig, hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK ) { return error; } -- GitLab From d465cf95d15b0f1e5d6ca17ead7c306658b9636c Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Fri, 28 Oct 2022 07:49:53 +0200 Subject: [PATCH 346/479] Reenable FIX_I173_I174 in options.h, removed by accident --- lib_com/options.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lib_com/options.h b/lib_com/options.h index 3c41d7d271..f01f67178a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,6 +149,7 @@ #ifdef AGC_TUNING_IMPROVEMENT #define AGC_ENABLE_FOR_LBR /* Issue 168: Enable AGC for low bit rate (1 TC) */ #endif +#define FIX_I173_I174 /* Issues 173 and 174: Remove frame and subframe index from ISm metadata and headtracking respectively. */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ -- GitLab From 90c91a25789679ded398af249f615ce2efbc4637 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Fri, 28 Oct 2022 14:12:16 +0200 Subject: [PATCH 347/479] Add float dump for testing external vs internal rendering --- CMakeLists.txt | 3 +++ apps/renderer.c | 19 +++++++++++++++++++ lib_com/ivas_tools.c | 10 ++++++++++ 3 files changed, 32 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 006940791d..75dabe1d22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,6 +108,9 @@ if(WMOPS) add_definitions("-DWMOPS=1") endif() +if(DEC_TO_REND_FLOAT_DUMP) + add_compile_definitions(DEC_TO_REND_FLOAT_DUMP) +endif() project(stereo-evs) set_property(GLOBAL PROPERTY USE_FOLDERS ON) # make Visual Studio projects look nicer diff --git a/apps/renderer.c b/apps/renderer.c index 5eb517740b..3fe9fcd89b 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -31,6 +31,7 @@ *******************************************************************************************************/ #include "options.h" +#include "debug.h" #include "audio_file_reader.h" #include "audio_file_writer.h" #include "cmdl_tools.h" @@ -750,6 +751,10 @@ int32_t main( int32_t argc, char **argv ) fprintf( stderr, "Failed to open file: %s\n", args.outputFilePath ); exit( -1 ); } +#ifdef DEC_TO_REND_FLOAT_DUMP + printf( "Warning: Renderer executable built with DEC_TO_REND_FLOAT_DUMP enabled!\n" ); + printf( " Float dump file (./float_out.wav) will be forced as input.\n" ); +#endif inBufferSize = frameSize_smpls * totalNumInChannels; outBufferSize = frameSize_smpls * numOutChannels; @@ -800,6 +805,20 @@ int32_t main( int32_t argc, char **argv ) /* Convert from int to float and from interleaved to packed */ convertInputBuffer( inpInt16Buffer, numSamplesRead, frameSize_smpls, num_in_channels, inFloatBuffer ); +#ifdef DEC_TO_REND_FLOAT_DUMP + /* Overwrite from dump file */ + float tmp[960 * 16]; + dbgread( tmp, sizeof( float ), numSamplesRead, "./float_out.raw" ); + + /* Conversion from interleaved to packed still necessary */ + for ( int32_t i = 0; i < numSamplesRead / num_in_channels; ++i ) + { + for ( int32_t c = 0; c < num_in_channels; ++c ) + { + inFloatBuffer[c * frameSize_smpls + i] = tmp[i * num_in_channels + c]; + } + } +#endif for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { diff --git a/lib_com/ivas_tools.c b/lib_com/ivas_tools.c index 3c941ccc77..b8fbaa833f 100644 --- a/lib_com/ivas_tools.c +++ b/lib_com/ivas_tools.c @@ -144,6 +144,16 @@ uint32_t ivas_syn_output( } } +#ifdef DEC_TO_REND_FLOAT_DUMP + for ( i = 0; i < output_frame; ++i ) + { + for ( n = 0; n < n_channels; ++n ) + { + dbgwrite( &synth[n][i], sizeof( float ), 1, 1, "./float_out.raw" ); + } + } +#endif + return noClipping; } -- GitLab From 9ebeea99b817aeafac55cc440dc7839bd073b9d4 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 28 Oct 2022 14:52:02 +0200 Subject: [PATCH 348/479] allow compiling the external renderer with EXT_RENDERER undefined --- apps/renderer.c | 10 ++++++++++ lib_rend/ivas_lib_rend_internal.h | 2 ++ lib_rend/lib_rend.c | 2 ++ lib_rend/lib_rend.h | 3 +++ 4 files changed, 17 insertions(+) diff --git a/apps/renderer.c b/apps/renderer.c index 3fe9fcd89b..95f18e993c 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -60,6 +60,7 @@ #include #include +#ifdef EXT_RENDERER #ifndef count_malloc #ifdef RAM_COUNTING_TOOL #define count_malloc( n1 ) MALLOC_FCT_CALL( n1 ) @@ -2274,3 +2275,12 @@ static void convertOutputBuffer( const float *floatBuffer, } } } +#else +int32_t main( int32_t argc, char **argv ) +{ + (void) argc; + (void) argv; + fprintf( stderr, "Enable EXT_RENDERER in options.h to use the external renderer.\n" ); + return 0; +} +#endif diff --git a/lib_rend/ivas_lib_rend_internal.h b/lib_rend/ivas_lib_rend_internal.h index e82348484f..9edfcc46a9 100644 --- a/lib_rend/ivas_lib_rend_internal.h +++ b/lib_rend/ivas_lib_rend_internal.h @@ -5,6 +5,7 @@ #ifndef IVAS_LIB_REND_INTERNALS_H #define IVAS_LIB_REND_INTERNALS_H +#ifdef EXT_RENDERER typedef struct { int8_t headRotEnabled; @@ -85,3 +86,4 @@ ivas_error ivas_rend_TDObjRendOpen( int32_t outFs ); #endif +#endif diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index d6da36371d..2cb50d4507 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -48,6 +48,7 @@ #include #include +#ifdef EXT_RENDERER /* Maximum buffer length (per channel) in samples. * Keep this separate from L_FRAME48k in case we want to support different size later */ #define MAX_BUFFER_LENGTH_PER_CHANNEL ( L_FRAME48k ) @@ -4064,3 +4065,4 @@ int32_t IVAS_REND_GetCntFramesLimited( return hIvasRend->hLimiter->cnt_frames_limited; } #endif +#endif diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 3be9ad9964..b9aad11e84 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -41,6 +41,8 @@ #include "common_api_types.h" #include "ivas_error.h" +#ifdef EXT_RENDERER + #define RENDERER_MAX_ISM_INPUTS 4 #define RENDERER_MAX_MC_INPUTS 1 #define RENDERER_MAX_SBA_INPUTS 1 @@ -263,3 +265,4 @@ int32_t IVAS_REND_GetCntFramesLimited( /* clang-format on */ #endif /* LIB_REND_H */ +#endif -- GitLab From 43ba5d8ff6ab48c01b75dd8d87c4313b8c7f903d Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 31 Oct 2022 09:22:53 +0100 Subject: [PATCH 349/479] formatting, comments --- lib_com/cnst.h | 3 ++- lib_com/ivas_prot.h | 6 ++---- lib_dec/core_dec_switch.c | 3 +-- lib_dec/ivas_spar_decoder.c | 3 +-- lib_dec/ivas_spar_md_dec.c | 9 ++++----- lib_enc/ivas_dirac_enc.c | 5 ++--- lib_enc/ivas_mcmasa_enc.c | 6 +++++- lib_enc/ivas_spar_md_enc.c | 3 +++ 8 files changed, 20 insertions(+), 18 deletions(-) diff --git a/lib_com/cnst.h b/lib_com/cnst.h index e62ef001dc..68981089d3 100644 --- a/lib_com/cnst.h +++ b/lib_com/cnst.h @@ -887,7 +887,7 @@ enum * TCX constants *---------------------------------------------------------------*/ -#define NBITS_TCX_GAIN 7 +#define NBITS_TCX_GAIN 7 #define NOISE_FILL_RANGES 1 #define NBITS_NOISE_FILL_LEVEL 3 /* Number of bits used for coding noise filling level for each range */ @@ -1019,6 +1019,7 @@ enum #define SIZE_BK22_36b 128 #define SIZE_BK23_36b 64 +/* Gain quantizer constants */ #define NB_QUA_GAIN5B 32 /* Number of quantization level */ #define NB_QUA_GAIN6B 64 /* Number of quantization level */ #define NB_QUA_GAIN7B 128 /* Number of quantization level */ diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 10901678b0..7181e36640 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3970,8 +3970,7 @@ void ivas_get_spar_md_from_dirac( ivas_error ivas_spar_md_dec_open( ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ - const int16_t num_channels /* i : number of internal channels */ - , + const int16_t num_channels, /* i : number of internal channels */ const int16_t sba_order /* i : SBA order */ ); @@ -4074,8 +4073,7 @@ void ivas_cov_smooth_process( float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, - const int16_t end_band - , + const int16_t end_band, const int16_t num_ch, const int16_t transient_det ); diff --git a/lib_dec/core_dec_switch.c b/lib_dec/core_dec_switch.c index 7b28143666..c1f8e590fb 100644 --- a/lib_dec/core_dec_switch.c +++ b/lib_dec/core_dec_switch.c @@ -56,8 +56,7 @@ void mode_switch_decoder_LPD( const int32_t total_brate, /* i : total bitrate */ const int32_t last_total_brate, /* i : last frame total bitrate */ const int16_t frame_size_index, /* i : index determining the frame size */ - const int16_t MCT_flag /* i : hMCT handle allocated (1) or not (0)*/ - , + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0)*/ const int16_t last_element_mode /* i : last element mode */ ) { diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 444a14457e..8fb28c826f 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -89,8 +89,7 @@ ivas_error ivas_spar_dec_open( } /* MD handle */ - if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal, - sba_order_internal ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal, sba_order_internal ) ) != IVAS_ERR_OK ) { return error; } diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 5d39aee9a0..bf27f7d58c 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -247,11 +247,10 @@ static ivas_error ivas_spar_md_dec_matrix_open( *------------------------------------------------------------------------*/ ivas_error ivas_spar_md_dec_open( - ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ - const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ - const int16_t num_channels /* i : number of internal channels */ - , - const int16_t sba_order /* i : SBA order */ + ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ + const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ + const int16_t num_channels, /* i : number of internal channels */ + const int16_t sba_order /* i : SBA order */ ) { ivas_spar_md_dec_state_t *hMdDec; diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 96a005a0b3..d105cff616 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -507,9 +507,8 @@ void computeReferencePower_enc( float Cldfb_ImagBuffer[DIRAC_MAX_ANA_CHANS][DIRAC_NO_FB_BANDS_MAX], /* i : Imag part of input signal */ float *reference_power, /* o : Estimated power */ const int16_t enc_param_start_band, /* i : first band to process */ - const int16_t num_freq_bands /* i : Number of frequency bands */ - , - const SBA_MODE sba_mode /* i : SBA mode */ + const int16_t num_freq_bands, /* i : Number of frequency bands */ + const SBA_MODE sba_mode /* i : SBA mode */ ) { int16_t brange[2]; diff --git a/lib_enc/ivas_mcmasa_enc.c b/lib_enc/ivas_mcmasa_enc.c index de816f3bf7..8d127e17d5 100644 --- a/lib_enc/ivas_mcmasa_enc.c +++ b/lib_enc/ivas_mcmasa_enc.c @@ -890,7 +890,11 @@ void ivas_mcmasa_param_est_enc( 0, num_freq_bands, intensity_even_real ); - computeReferencePower_enc( hMcMasa->band_grouping, FoaEven_RealBuffer, FoaEven_ImagBuffer, reference_power[ts], + + computeReferencePower_enc( hMcMasa->band_grouping, + FoaEven_RealBuffer, + FoaEven_ImagBuffer, + reference_power[ts], 0, num_freq_bands, SBA_MODE_NONE ); diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 4bd23dee47..6500019164 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -85,8 +85,11 @@ static void ivas_store_prior_coeffs( ivas_spar_md_enc_state_t *hMdEnc, const int static void ivas_write_spar_md_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *hMdEnc, const ENCODER_CONFIG_HANDLE hEncoderConfig, const int16_t sba_order ); + static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, const float *pValues, const int16_t ndm, int16_t *pIndex, const int16_t dim1, float *pQuant ); + static void ivas_quant_p_per_band_dtx( float *pP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float *pP_out, const int16_t num_ch ); + static void ivas_write_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, BSTR_ENC_HANDLE hMetaData, int16_t *num_dmx, int16_t *num_dec, const int16_t num_bands ); static void ivas_quant_p_per_band( ivas_band_coeffs_t *pband_coeffs, ivas_band_coeffs_ind_t *pBand_coeffs_idx, ivas_quant_strat_t *pQs, const int16_t num_ch ); -- GitLab From dcbb024d306689b005d185c907a905e3565d5c09 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Mon, 31 Oct 2022 21:38:04 +1100 Subject: [PATCH 350/479] Ensure freedom of core-coder VAD decision only occurs at the correct bitrates --- lib_com/ivas_cnst.h | 1 + lib_enc/ivas_front_vad.c | 2 +- lib_enc/ivas_spar_encoder.c | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index abf0e1f663..42173361c1 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -836,6 +836,7 @@ typedef enum { #define SBA_MIN_BRATE_HOA IVAS_256k #define SBA_NHARM_HOA3 16 #define SBA_T_DESIGN_11_SIZE 70 +#define SBA_DTX_BITRATE_THRESHOLD IVAS_80k typedef enum { diff --git a/lib_enc/ivas_front_vad.c b/lib_enc/ivas_front_vad.c index 1d18af7761..e9818cb7ae 100644 --- a/lib_enc/ivas_front_vad.c +++ b/lib_enc/ivas_front_vad.c @@ -396,7 +396,7 @@ ivas_error front_vad_spar( hFrontVad = hSpar->hFrontVad; st = hSpar->hCoreCoderVAD; - if ( hEncoderConfig->Opt_DTX_ON && hEncoderConfig->ivas_total_brate <= IVAS_80k ) + if ( hEncoderConfig->Opt_DTX_ON && hEncoderConfig->ivas_total_brate <= SBA_DTX_BITRATE_THRESHOLD ) { /*------------------------------------------------------------------* * Initialization diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 7e2d49310f..3049e28b9b 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -310,8 +310,8 @@ ivas_error ivas_spar_enc( *nb_bits_metadata = hMetaData->nb_bits_tot; - /* temp hack to not force IVAS front pre-proc decision for higher bitrates */ - if ( hEncoderConfig->ivas_total_brate > IVAS_64k || hEncoderConfig->Opt_DTX_ON == 0 ) + /* Force IVAS front pre-proc decision for higher bitrates */ + if ( hEncoderConfig->ivas_total_brate > SBA_DTX_BITRATE_THRESHOLD || hEncoderConfig->Opt_DTX_ON == 0 ) { st_ivas->hSpar->front_vad_flag = 0; } -- GitLab From 506a8bfe6f27b0e8de39729d43efd20e5ec9f4db Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 31 Oct 2022 11:42:13 +0100 Subject: [PATCH 351/479] comments --- lib_dec/ivas_tcx_core_dec.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 8e56ed5ef7..e8ad580648 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -822,9 +822,9 @@ void stereo_tcx_core_dec( /*-----------------------------------------------------------------* - * Function dec_prm_tcx() * - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * - * decode TCX parameters + * Function dec_prm_tcx() + * + * Decode TCX parameters *-----------------------------------------------------------------*/ static void dec_prm_tcx( @@ -835,7 +835,7 @@ static void dec_prm_tcx( #ifdef FIX_TCX_DEC_RECONF_BFI const int16_t last_element_mode, #endif - int16_t *bitsRead /* o : number of read bits */ + int16_t *bitsRead /* o : number of read bits */ ) { int16_t start_bit_pos, bits_common; @@ -960,10 +960,16 @@ static void dec_prm_tcx( } #ifdef FIX_TCX_DEC_RECONF_BFI +/*-----------------------------------------------------------------* + * Function stereo_tcx_dec_mode_switch_reconf() + * + * Reconfigure stereo TCX parameters + *-----------------------------------------------------------------*/ + static void stereo_tcx_dec_mode_switch_reconf( - Decoder_State *st, - const int16_t MCT_flag, - const int16_t last_element_mode + Decoder_State *st, /* i/o: decoder state structure */ + const int16_t MCT_flag, /* i : hMCT handle allocated (1) or not (0)*/ + const int16_t last_element_mode /* i : element mode of previous frame */ ) { int16_t frame_size_index; @@ -991,5 +997,7 @@ static void stereo_tcx_dec_mode_switch_reconf( /* Reconfigure Core */ mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, MCT_flag, last_element_mode ); + + return; } #endif -- GitLab From b769bf8cc635403683623a2e26689fd7b6adc18c Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 31 Oct 2022 13:48:16 +0100 Subject: [PATCH 352/479] formatting --- lib_dec/ivas_spar_md_dec.c | 13 +++---------- lib_enc/ivas_spar_encoder.c | 8 ++------ lib_enc/ivas_spar_md_enc.c | 3 +-- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 5d39aee9a0..4b9dbc5347 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -444,8 +444,7 @@ ivas_error ivas_spar_md_dec_init( hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); - ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, - hMdDec->spar_md.num_bands ); + ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, hMdDec->spar_md.num_bands ); nchan_transport = hMdDec->spar_md_cfg.nchan_transport; @@ -2758,10 +2757,7 @@ void ivas_spar_to_dirac( /* DirAC MD averaged over 4 subframes and converted to SPAR format similar to encoder processing */ if ( hMdDec->spar_md_cfg.nchan_transport > 1 ) { - ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, - end_band, num_bands_out, - ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, - dtx_vad, NULL ); + ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, end_band, num_bands_out, ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, dtx_vad, NULL ); /* temporarily copy frame-wise prediction coefficients in DirAC bands*/ for ( pred_idx = 0; pred_idx < FOA_CHANNELS - 1; pred_idx++ ) @@ -2773,10 +2769,7 @@ void ivas_spar_to_dirac( } } - ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, MAX_PARAM_SPATIAL_SUBFRAMES, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, - end_band, num_bands_out, - ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, - dtx_vad, NULL ); + ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, MAX_PARAM_SPATIAL_SUBFRAMES, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, end_band, num_bands_out, ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, dtx_vad, NULL ); /* expand DirAC TC 20ms MD for residual channels to all subframes*/ for ( block = 0; block < MAX_PARAM_SPATIAL_SUBFRAMES; block++ ) diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 7e2d49310f..d84bee262e 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -549,8 +549,7 @@ static ivas_error ivas_spar_enc_process( if ( hSpar->hMdEnc->table_idx != table_idx ) { hSpar->hMdEnc->table_idx = table_idx; - ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, - ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); + ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); } nchan_transport = st_ivas->nchan_transport; @@ -603,10 +602,7 @@ static ivas_error ivas_spar_enc_process( Wscale_d[b] = min( 2.0f, max( Wscale_d[b], 1.0f ) ); } - ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, - d_start_band, d_end_band, - ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, - dtx_vad, Wscale_d ); + ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, d_start_band, d_end_band, ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, dtx_vad, Wscale_d ); } if ( hSpar->hMdEnc->spar_hoa_md_flag ) diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 4bd23dee47..508742c4ea 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -322,8 +322,7 @@ static ivas_error ivas_spar_md_enc_init( table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); hMdEnc->spar_md_cfg.gen_bs = 1; - ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, - ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); + ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); /* get FB coefficients */ for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) -- GitLab From d8c0f7d9889a712579f5ccc9f1f08eeaf68d8340 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 31 Oct 2022 13:49:32 +0100 Subject: [PATCH 353/479] remove 'fb_ducking_flag ' parameter which was always == 0 --- lib_dec/ivas_spar_md_dec.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 4b9dbc5347..72022dba61 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -1344,7 +1344,6 @@ void ivas_spar_dec_gen_umx_mat( ) { int16_t i, j, b, i_ts, num_out_ch; - int16_t fb_ducking_flag = 0; // VE2DB: always 0 - can it be removed? num_out_ch = hMdDec->spar_md_cfg.num_umx_chs; @@ -1373,11 +1372,6 @@ void ivas_spar_dec_gen_umx_mat( } } } - - if ( fb_ducking_flag ) - { - assert( 0 ); /* fb_ducking_flag not supported */ - } } else { -- GitLab From d8e5c770c738d41132e023cbc1ac98fa0d0aca2d Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 31 Oct 2022 13:51:02 +0100 Subject: [PATCH 354/479] remove 'dtx_silence_mode' parameter which was always == 0 --- lib_enc/ivas_spar_md_enc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 508742c4ea..d19299c562 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -82,11 +82,14 @@ static void ivas_select_next_strat( ivas_strats_t prior_strat, ivas_strats_t cs[ static void ivas_store_prior_coeffs( ivas_spar_md_enc_state_t *hMdEnc, const int16_t num_bands, const int16_t bands_bw, const int16_t strat, const int16_t dtx_vad, const int16_t qsi ); -static void ivas_write_spar_md_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); +static void ivas_write_spar_md_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t strat, const int16_t qsi, const int16_t planarCP ); static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *hMdEnc, const ENCODER_CONFIG_HANDLE hEncoderConfig, const int16_t sba_order ); + static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, const float *pValues, const int16_t ndm, int16_t *pIndex, const int16_t dim1, float *pQuant ); + static void ivas_quant_p_per_band_dtx( float *pP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float *pP_out, const int16_t num_ch ); + static void ivas_write_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, BSTR_ENC_HANDLE hMetaData, int16_t *num_dmx, int16_t *num_dec, const int16_t num_bands ); static void ivas_quant_p_per_band( ivas_band_coeffs_t *pband_coeffs, ivas_band_coeffs_ind_t *pBand_coeffs_idx, ivas_quant_strat_t *pQs, const int16_t num_ch ); @@ -902,7 +905,7 @@ ivas_error ivas_spar_md_enc_process( { reset_indices_enc( &hMetaData_tmp, MAX_BITS_METADATA ); - ivas_write_spar_md_bitstream( hMdEnc, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, 0, strat, qsi, planarCP ); + ivas_write_spar_md_bitstream( hMdEnc, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, strat, qsi, planarCP ); if ( hMetaData->nb_bits_tot == bit_pos_start || hMetaData_tmp.nb_bits_tot < ( hMetaData->nb_bits_tot - bit_pos_start ) ) { @@ -1178,7 +1181,6 @@ static void ivas_write_spar_md_bitstream( const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, - const int16_t dtx_silence_mode, // VE2DB: it is always 0 -> remove it? const int16_t strat, const int16_t qsi, const int16_t planarCP ) @@ -1192,7 +1194,7 @@ static void ivas_write_spar_md_bitstream( } /* write quant strat */ - if ( dtx_silence_mode == 0 && ivas_total_brate >= BRATE_SPAR_Q_STRAT ) + if ( ivas_total_brate >= BRATE_SPAR_Q_STRAT ) { push_next_indice( hMetaData, qsi >> 1, hMdEnc->spar_md_cfg.quant_strat_bits - 1 ); } -- GitLab From 64c4f7b10f92f261bd3ad9643704277b42fe75cd Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Tue, 1 Nov 2022 09:17:17 +1100 Subject: [PATCH 355/479] Encapsulate fix in a compilation flag --- lib_com/ivas_cnst.h | 2 ++ lib_com/options.h | 1 + lib_enc/ivas_front_vad.c | 4 ++++ lib_enc/ivas_spar_encoder.c | 5 +++++ 4 files changed, 12 insertions(+) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 42173361c1..dbaf718348 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -836,7 +836,9 @@ typedef enum { #define SBA_MIN_BRATE_HOA IVAS_256k #define SBA_NHARM_HOA3 16 #define SBA_T_DESIGN_11_SIZE 70 +#ifdef FIX_SBA_DTX_DECODE_ERROR #define SBA_DTX_BITRATE_THRESHOLD IVAS_80k +#endif typedef enum { diff --git a/lib_com/options.h b/lib_com/options.h index 612e6b1b49..2cda5877c3 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -150,6 +150,7 @@ #define AGC_ENABLE_FOR_LBR /* Issue 168: Enable AGC for low bit rate (1 TC) */ #endif #define FIX_TCX_DEC_RECONF_BFI +#define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_enc/ivas_front_vad.c b/lib_enc/ivas_front_vad.c index e9818cb7ae..62eeee5a02 100644 --- a/lib_enc/ivas_front_vad.c +++ b/lib_enc/ivas_front_vad.c @@ -396,7 +396,11 @@ ivas_error front_vad_spar( hFrontVad = hSpar->hFrontVad; st = hSpar->hCoreCoderVAD; +#ifdef FIX_SBA_DTX_DECODE_ERROR if ( hEncoderConfig->Opt_DTX_ON && hEncoderConfig->ivas_total_brate <= SBA_DTX_BITRATE_THRESHOLD ) +#else + if ( hEncoderConfig->Opt_DTX_ON && hEncoderConfig->ivas_total_brate <= IVAS_80k ) +#endif { /*------------------------------------------------------------------* * Initialization diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 3049e28b9b..16b66aef54 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -310,8 +310,13 @@ ivas_error ivas_spar_enc( *nb_bits_metadata = hMetaData->nb_bits_tot; +#ifdef FIX_SBA_DTX_DECODE_ERROR /* Force IVAS front pre-proc decision for higher bitrates */ if ( hEncoderConfig->ivas_total_brate > SBA_DTX_BITRATE_THRESHOLD || hEncoderConfig->Opt_DTX_ON == 0 ) +#else + /* temp hack to not force IVAS front pre-proc decision for higher bitrates */ + if ( hEncoderConfig->ivas_total_brate > IVAS_64k || hEncoderConfig->Opt_DTX_ON == 0 ) +#endif { st_ivas->hSpar->front_vad_flag = 0; } -- GitLab From 95990ff450df3acddaaec97721e02627951f818d Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Tue, 1 Nov 2022 10:42:08 +1100 Subject: [PATCH 356/479] Decouple IVAS_AGC_ENC enum and rename AGC flag function - Decouple IVAS_AGC_ENC enum within the submodules of the codec - Rename AGC flag function to be a bit smaller. This function will likely be moved and renamed when the future of AGC is more certain --- lib_com/cnst.h | 3 +++ lib_com/ivas_error.h | 3 +++ lib_com/ivas_prot.h | 9 ++------ lib_enc/ivas_agc_enc.c | 10 ++++----- lib_enc/ivas_spar_encoder.c | 4 ++-- lib_enc/ivas_stat_enc.h | 11 +--------- lib_enc/lib_enc.c | 41 +++++++++++++++++++++++++++++++------ 7 files changed, 51 insertions(+), 30 deletions(-) diff --git a/lib_com/cnst.h b/lib_com/cnst.h index e62ef001dc..be668b01c7 100644 --- a/lib_com/cnst.h +++ b/lib_com/cnst.h @@ -132,6 +132,9 @@ enum{ #define MAX_V_MULT_MAT 100 /* maximum array length for the function v_mult_mat() */ +#define SBA_AGC_FORCE_ENABLE 1 +#define SBA_AGC_FORCE_DISABLE 0 +#define SBA_AGC_DEFAULT -1 /*----------------------------------------------------------------------------------* * Layers diff --git a/lib_com/ivas_error.h b/lib_com/ivas_error.h index 58c45ee5ee..8d09e48bbd 100644 --- a/lib_com/ivas_error.h +++ b/lib_com/ivas_error.h @@ -86,6 +86,9 @@ typedef enum IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH, IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT, IVAS_ERR_INVALID_MASA_FORMAT_METADATA_FILE, +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + IVAS_ERR_INVALID_AGC, +#endif /*----------------------------------------* * input data errors * diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 5a80aede4d..aadfca8c89 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -44,11 +44,6 @@ #include "ivas_stat_dec.h" #include "ivas_stat_com.h" #include "ivas_error_utils.h" -#ifdef AGC_ENABLE_FOR_LBR -#ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#include "lib_enc.h" -#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ -#endif /* AGC_ENABLE_FOR_LBR */ /* clang-format off */ @@ -3759,9 +3754,9 @@ void ivas_sba_prototype_renderer( /* AGC */ #ifdef AGC_ENABLE_FOR_LBR -int16_t ivas_agc_enc_get_enablement_flag( +int16_t ivas_agc_enc_get_flag( #ifdef DEBUG_AGC_ENCODER_CMD_OPTION - IVAS_ENC_AGC agc_configuration, /* i : configuration used when encoder was initialised from cmd line */ + int16_t agc_configuration, /* i : configuration used when encoder was initialised from cmd line */ #endif int16_t nchan_transport /* i : number of transport channels */ ); diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 2fdd312fd8..70ed1c55db 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -62,7 +62,7 @@ static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_ #ifdef AGC_ENABLE_FOR_LBR #ifdef DEBUG_AGC_ENCODER_CMD_OPTION /*-----------------------------------------------------------------------------------------* - * Function ivas_agc_enc_get_enablement_flag() + * Function ivas_agc_enc_get_flag() * * This function determines if AGC should be enabled or disabled. * If agc_configuration is not undefined, then this value decides on the state of @@ -71,7 +71,7 @@ static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_ *-----------------------------------------------------------------------------------------*/ #else /*-----------------------------------------------------------------------------------------* - * Function ivas_agc_enc_get_enablement_flag() + * Function ivas_agc_enc_get_flag() * * This function determines if AGC should be enabled or disabled. * AGC is enabled only if there is one transport channel. @@ -79,14 +79,14 @@ static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_ *-----------------------------------------------------------------------------------------*/ #endif -int16_t ivas_agc_enc_get_enablement_flag( +int16_t ivas_agc_enc_get_flag( #ifdef DEBUG_AGC_ENCODER_CMD_OPTION - IVAS_ENC_AGC agc_configuration, + int16_t agc_configuration, #endif int16_t nchan_transport ) { #ifdef DEBUG_AGC_ENCODER_CMD_OPTION - return (int16_t) ( ( agc_configuration == IVAS_ENC_AGC_UNDEFINED ) + return (int16_t) ( ( agc_configuration == SBA_AGC_DEFAULT ) ? ( nchan_transport == 1 ) : agc_configuration ); #else diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index a3b9399a85..4f3c7e73ff 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -122,9 +122,9 @@ ivas_error ivas_spar_enc_open( /* AGC handle */ #ifdef AGC_ENABLE_FOR_LBR #ifdef DEBUG_AGC_ENCODER_CMD_OPTION - hSpar->AGC_Enable = ivas_agc_enc_get_enablement_flag( hEncoderConfig->Opt_AGC_ON, nchan_transport ); + hSpar->AGC_Enable = ivas_agc_enc_get_flag( hEncoderConfig->Opt_AGC_ON, nchan_transport ); #else - hSpar->AGC_Enable = ivas_agc_enc_get_enablement_flag( nchan_transport ); + hSpar->AGC_Enable = ivas_agc_enc_get_flag( nchan_transport ); #endif #endif if ( ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 8e58be3d32..4ae2e2f41f 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -40,11 +40,6 @@ #include "stat_enc.h" #include "ivas_cnst.h" #include "ivas_stat_com.h" -#ifdef AGC_ENABLE_FOR_LBR -#ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#include "lib_enc.h" -#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ -#endif /* AGC_ENABLE_FOR_LBR */ /*----------------------------------------------------------------------------------* * DFT Stereo encoder structures @@ -1005,13 +1000,9 @@ typedef struct encoder_config_structure int16_t Opt_SC_VBR; /* flag indicating SC-VBR mode */ int16_t last_Opt_SC_VBR; /* flag indicating prev frame's SC-VBR mode */ -#ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR - IVAS_ENC_AGC Opt_AGC_ON; /* flag indicating AGC operation in SBA */ -#else /* temp. development parameters */ +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION int16_t Opt_AGC_ON; /* flag indicating AGC operation in SBA */ -#endif #endif int16_t Opt_PCA_ON; /* flag indicating PCA operation in SBA */ diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index a7dd232e05..8a5491dd6f 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -82,6 +82,7 @@ static ivas_error sanitizeBitrateISM( const ENCODER_CONFIG_HANDLE hEncoderConfig static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error bandwidthApiToInternal( const IVAS_ENC_BANDWIDTH maxBandwidth, int16_t *internalMaxBandwidth ); +static ivas_error agcAPIToInternal( const IVAS_ENC_AGC agcOption, int16_t *internalAGCOption ); static ivas_error fecIndicatorApiToInternal( const IVAS_ENC_FEC_INDICATOR fecIndicator, int16_t *fecIndicatorInternal ); #ifdef DEBUGGING static ivas_error forcedModeApiToInternal( IVAS_ENC_FORCED_MODE forcedMode, int16_t *forcedModeInternal ); @@ -481,7 +482,10 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( hEncoderConfig->nchan_inp = ivas_sba_get_nchan( hEncoderConfig->sba_order, 0 ); /*planar input arg. deliberately set to zero since input always in ACN/SN3D*/ #ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR - hEncoderConfig->Opt_AGC_ON = Opt_AGC_ON; + if ( ( error = agcAPIToInternal( Opt_AGC_ON, &( hEncoderConfig->Opt_AGC_ON ) ) ) != IVAS_ERR_OK ) + { + return error; + } #else hEncoderConfig->Opt_AGC_ON = (int16_t) Opt_AGC_ON; #endif /* AGC_ENABLE_FOR_LBR */ @@ -882,7 +886,7 @@ static ivas_error configureEncoder( #ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR - if ( hEncoderConfig->Opt_AGC_ON == IVAS_ENC_AGC_ENABLED && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) + if ( hEncoderConfig->Opt_AGC_ON == SBA_AGC_FORCE_ENABLE && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) #else if ( hEncoderConfig->Opt_AGC_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) #endif /* AGC_ENABLE_FOR_LBR */ @@ -1512,13 +1516,13 @@ static ivas_error printConfigInfo_enc( #ifdef AGC_ENABLE_FOR_LBR switch ( hEncoderConfig->Opt_AGC_ON ) { - case IVAS_ENC_AGC_ENABLED: + case SBA_AGC_FORCE_ENABLE: fprintf( stdout, "- AGC FORCED ON " ); break; - case IVAS_ENC_AGC_DISABLED: + case SBA_AGC_FORCE_DISABLE: fprintf( stdout, "- AGC FORCED OFF " ); break; - case IVAS_ENC_AGC_UNDEFINED: + case SBA_AGC_DEFAULT: fprintf( stdout, "- AGC default mode " ); break; default: @@ -2066,6 +2070,31 @@ static ivas_error bandwidthApiToInternal( return IVAS_ERR_OK; } +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION +static ivas_error agcAPIToInternal( + const IVAS_ENC_AGC agcOption, + int16_t *internalAGCOption ) +{ + switch ( agcOption ) + { + case IVAS_ENC_AGC_ENABLED: + *internalAGCOption = SBA_AGC_FORCE_ENABLE; + break; + case IVAS_ENC_AGC_DISABLED: + *internalAGCOption = SBA_AGC_FORCE_DISABLE; + break; + case IVAS_ENC_AGC_UNDEFINED: + *internalAGCOption = SBA_AGC_DEFAULT; + break; + default: + return IVAS_ERR_INVALID_AGC; + break; + } + + return IVAS_ERR_OK; +} +#endif + /*---------------------------------------------------------------------* * fecIndicatorApiToInternal() @@ -2202,7 +2231,7 @@ static void init_encoder_config( hEncoderConfig->sba_planar = 0; #ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR - hEncoderConfig->Opt_AGC_ON = IVAS_ENC_AGC_UNDEFINED; + hEncoderConfig->Opt_AGC_ON = SBA_AGC_DEFAULT; #else hEncoderConfig->Opt_AGC_ON = 0; #endif /* AGC_ENABLE_FOR_LBR */ -- GitLab From bdfc67db84b86072104775b286e93a7b5ecbc146 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Tue, 1 Nov 2022 11:01:48 +1100 Subject: [PATCH 357/479] Allocate and initialise AGC only when AGC is enabled --- lib_enc/ivas_spar_encoder.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 4f3c7e73ff..3249a3c70a 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -123,11 +123,16 @@ ivas_error ivas_spar_enc_open( #ifdef AGC_ENABLE_FOR_LBR #ifdef DEBUG_AGC_ENCODER_CMD_OPTION hSpar->AGC_Enable = ivas_agc_enc_get_flag( hEncoderConfig->Opt_AGC_ON, nchan_transport ); + hSpar->hAgcEnc = NULL; #else hSpar->AGC_Enable = ivas_agc_enc_get_flag( nchan_transport ); #endif #endif - if ( ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) + if ( +#ifdef AGC_ENABLE_FOR_LBR + hSpar->AGC_Enable && +#endif + ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) { return error; } @@ -254,7 +259,14 @@ void ivas_spar_enc_close( ivas_spar_transient_det_close( &hSpar->hTranDet ); /* AGC */ - ivas_spar_agc_enc_close( &hSpar->hAgcEnc ); +#ifdef AGC_ENABLE_FOR_LBR + if ( hSpar->hAgcEnc != NULL ) + { +#endif + ivas_spar_agc_enc_close( &hSpar->hAgcEnc ); +#ifdef AGC_ENABLE_FOR_LBR + } +#endif /* PCA */ if ( hSpar->hPCA != NULL ) -- GitLab From f3e3e3255540ad2f8889a9c186b460f700418fce Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Tue, 1 Nov 2022 11:12:52 +1100 Subject: [PATCH 358/479] Forgot to encapsulate agcAPIToInternal into the debug macro --- lib_enc/lib_enc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 8a5491dd6f..242a56f7bc 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -82,7 +82,9 @@ static ivas_error sanitizeBitrateISM( const ENCODER_CONFIG_HANDLE hEncoderConfig static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error bandwidthApiToInternal( const IVAS_ENC_BANDWIDTH maxBandwidth, int16_t *internalMaxBandwidth ); +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION static ivas_error agcAPIToInternal( const IVAS_ENC_AGC agcOption, int16_t *internalAGCOption ); +#endif static ivas_error fecIndicatorApiToInternal( const IVAS_ENC_FEC_INDICATOR fecIndicator, int16_t *fecIndicatorInternal ); #ifdef DEBUGGING static ivas_error forcedModeApiToInternal( IVAS_ENC_FORCED_MODE forcedMode, int16_t *forcedModeInternal ); -- GitLab From 7e7e171f20f4e430d1ab353b4fda054cea6444d4 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Tue, 1 Nov 2022 11:24:26 +1100 Subject: [PATCH 359/479] Add a fmToDo to remind us to remove this agc bit when the command line option is no longer used --- lib_enc/ivas_spar_encoder.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 3249a3c70a..3b04dbe24b 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -737,6 +737,10 @@ static ivas_error ivas_spar_enc_process( } else { + /* IVAS_fmToDo: This AGC on/off bit should be removed when the command line option to force enable/disable AGC is + * removed. + * On the decoder side, ivas_agc_enc_get_flag could be used instead to determine if AGC is on or not. The + * ivas_agc_enc_get_flag function should be moved to ivas_agc_com.c and renamed when this occurs. */ push_next_indice( hMetaData, 0, 1 ); } } -- GitLab From c01aeaf76c546a4abe81ba552de47af0182a5047 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 1 Nov 2022 09:12:35 +0100 Subject: [PATCH 360/479] remove 'gen_bs' SPAR MD parameter + improve formatting --- lib_com/ivas_spar_com.c | 17 +- lib_com/ivas_stat_com.h | 1 - lib_dec/ivas_spar_md_dec.c | 338 ++++++++++++++++++------------------- lib_enc/ivas_spar_md_enc.c | 24 +-- 4 files changed, 170 insertions(+), 210 deletions(-) diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index fa5e65460e..c9204291bc 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -2109,17 +2109,7 @@ void ivas_spar_set_bitrate_config( pSpar_md_cfg->agc_bits_ch_idx = ivas_spar_br_table_consts[table_idx].agc_bits_ch_idx; ivas_spar_get_uniform_quant_strat( pSpar_md_cfg, table_idx ); - if ( pSpar_md_cfg->quant_strat->C.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->C.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->PR.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->PR.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->P_c.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->P_c.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->P_r.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->P_r.q_levels[1] == 0 ) - { - pSpar_md_cfg->gen_bs = 0; - } - else - { - if ( 0 != pSpar_md_cfg->gen_bs ) - { - pSpar_md_cfg->quant_strat_bits = ivas_get_bits_to_encode( MAX_QUANT_STRATS ); - } - } + pSpar_md_cfg->quant_strat_bits = ivas_get_bits_to_encode( MAX_QUANT_STRATS ); /* BLOCK: getEntropyCoderModels */ @@ -2138,11 +2128,12 @@ void ivas_spar_set_bitrate_config( total_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][0] / FRAMES_PER_SEC ); max_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][1] / FRAMES_PER_SEC ); } - pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - total_bits; + pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - total_bits; pSpar_md_cfg->max_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - max_bits; md_coding_bits_header = SPAR_NUM_CODING_STRAT_BITS + pSpar_md_cfg->quant_strat_bits; + pSpar_md_cfg->tgt_bits_per_blk -= md_coding_bits_header; pSpar_md_cfg->max_bits_per_blk -= md_coding_bits_header; @@ -2151,9 +2142,11 @@ void ivas_spar_set_bitrate_config( pSpar_md_cfg->tgt_bits_per_blk += md_coding_bits_header; pSpar_md_cfg->max_bits_per_blk += md_coding_bits_header; + return; } + #ifdef FIX_I1_113 /*-----------------------------------------------------------------------------------------* * Function ivas_spar_bitrate_dist() diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index b275d2d6eb..8dd59f1d18 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -229,7 +229,6 @@ typedef struct ivas_spar_md_com_cfg int16_t active_w; int16_t remix_unmix_order; ivas_quant_strat_t quant_strat[MAX_QUANT_STRATS]; - int16_t gen_bs; int16_t quant_strat_bits; int16_t nchan_transport; int16_t num_quant_strats; diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 72022dba61..846ec04778 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -82,7 +82,9 @@ static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coe static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ); static void ivas_parse_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, Decoder_State *st, const int16_t bw, const int16_t num_bands, int16_t *num_dmx_per_band, int16_t *num_dec_per_band ); + static ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, float *quant, const int16_t num_ch_dim2 ); + static void ivas_spar_dec_parse_md_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, int16_t *nB, int16_t *bands_bw, int16_t *dtx_vad, const int32_t ivas_total_brate, const int16_t use_planar_coeff, const int16_t sba_inactive_mode ); @@ -440,8 +442,6 @@ ivas_error ivas_spar_md_dec_init( int16_t nchan_transport; float pFC[IVAS_MAX_NUM_BANDS], PR_minmax[2]; - hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? - hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, hMdDec->spar_md.num_bands ); @@ -1431,226 +1431,220 @@ static void ivas_spar_dec_parse_md_bs( const int16_t sba_inactive_mode ) { int16_t i, j, k, num_bands; + int16_t ii, jj, ndec, ndm, b, idx; uint16_t qsi; ivas_quant_strat_t qs; int16_t strat, freq_diff, no_ec; int16_t do_diff[IVAS_MAX_NUM_BANDS]; - int16_t planarCP = 0; + int16_t planarCP; + float quant[IVAS_SPAR_MAX_C_COEFF]; *dtx_vad = 1; *bands_bw = 1; qsi = 0; num_bands = hMdDec->spar_md.num_bands; - if ( hMdDec->spar_md_cfg.gen_bs == 1 ) + if ( ivas_total_brate > IVAS_SID_5k2 ) { - if ( ivas_total_brate > IVAS_SID_5k2 ) + if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) { - if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) + if ( ivas_total_brate >= BRATE_SPAR_Q_STRAT ) { - if ( ivas_total_brate >= BRATE_SPAR_Q_STRAT ) - { - /*only one bit written for quantization strategy to indicate either a fixed quantization strategy or dtx_vad==0 */ - qsi = get_next_indice( st0, 1 ); - if ( qsi == 1 ) - { - *dtx_vad = 0; - } - } - else + /*only one bit written for quantization strategy to indicate either a fixed quantization strategy or dtx_vad==0 */ + qsi = get_next_indice( st0, 1 ); + if ( qsi == 1 ) { - if ( sba_inactive_mode == 1 ) - { - *dtx_vad = 0; - qsi = hMdDec->spar_md_cfg.quant_strat_bits + 1; - } - else - { - qsi = get_next_indice( st0, hMdDec->spar_md_cfg.quant_strat_bits ); - } + *dtx_vad = 0; } } else { - qsi = 0; + if ( sba_inactive_mode == 1 ) + { + *dtx_vad = 0; + qsi = hMdDec->spar_md_cfg.quant_strat_bits + 1; + } + else + { + qsi = get_next_indice( st0, hMdDec->spar_md_cfg.quant_strat_bits ); + } } } else { - *dtx_vad = 0; + qsi = 0; } + } + else + { + *dtx_vad = 0; + } - hMdDec->dtx_vad = *dtx_vad; + hMdDec->dtx_vad = *dtx_vad; - if ( *dtx_vad == 0 ) - { - *nB = SPAR_DTX_BANDS; - *bands_bw = num_bands / *nB; + if ( *dtx_vad == 0 ) + { + *nB = SPAR_DTX_BANDS; + *bands_bw = num_bands / *nB; - for ( i = 0; i < *nB; i++ ) + for ( i = 0; i < *nB; i++ ) + { + for ( j = 0; j < IVAS_SPAR_MAX_CH - 1; j++ ) { - for ( j = 0; j < IVAS_SPAR_MAX_CH - 1; j++ ) - { - hMdDec->spar_md.band_coeffs[i].pred_re[j] = 0; - hMdDec->spar_md.band_coeffs[i].P_re[j] = 0; - } - hMdDec->valid_bands[i] = 1; + hMdDec->spar_md.band_coeffs[i].pred_re[j] = 0; + hMdDec->spar_md.band_coeffs[i].P_re[j] = 0; } - for ( i = 0; i < num_bands; i++ ) + hMdDec->valid_bands[i] = 1; + } + + for ( i = 0; i < num_bands; i++ ) + { + for ( j = 0; j < ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ); j++ ) { - for ( j = 0; j < ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ); j++ ) + for ( k = 0; k < ( IVAS_SPAR_MAX_DMX_CHS - 1 ); k++ ) { - for ( k = 0; k < ( IVAS_SPAR_MAX_DMX_CHS - 1 ); k++ ) - { - hMdDec->spar_md.band_coeffs[i].C_re[j][k] = 0; - } + hMdDec->spar_md.band_coeffs[i].C_re[j][k] = 0; } } + } + + ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); + + for ( i = *nB - 1; i >= 0; i-- ) + { + ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; - ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, - hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); + for ( b = *bands_bw - 1; b >= 0; b-- ) { - int16_t ndec, b, idx; - for ( i = *nB - 1; i >= 0; i-- ) + idx = i * *bands_bw + b; + for ( j = 0; j < FOA_CHANNELS - 1; j++ ) { - ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; - - for ( b = *bands_bw - 1; b >= 0; b-- ) - { - idx = i * *bands_bw + b; - for ( j = 0; j < FOA_CHANNELS - 1; j++ ) - { - hMdDec->spar_md.band_coeffs[idx].pred_re[j] = hMdDec->spar_md.band_coeffs[i].pred_re[j]; - } - for ( j = 0; j < ndec; j++ ) - { - hMdDec->spar_md.band_coeffs[idx].P_re[j] = hMdDec->spar_md.band_coeffs[i].P_re[j]; - } - hMdDec->valid_bands[idx] = 1; - } + hMdDec->spar_md.band_coeffs[idx].pred_re[j] = hMdDec->spar_md.band_coeffs[i].pred_re[j]; } - *nB = num_bands; - *bands_bw = 1; + for ( j = 0; j < ndec; j++ ) + { + hMdDec->spar_md.band_coeffs[idx].P_re[j] = hMdDec->spar_md.band_coeffs[i].P_re[j]; + } + hMdDec->valid_bands[idx] = 1; } - - return; } - qs = hMdDec->spar_md_cfg.quant_strat[qsi]; - if ( ( qsi == 2 ) && ( use_planar_coeff ) ) - { - planarCP = 1; + *nB = num_bands; + *bands_bw = 1; + + return; + } + + qs = hMdDec->spar_md_cfg.quant_strat[qsi]; + + planarCP = 0; + if ( ( qsi == 2 ) && ( use_planar_coeff ) ) + { + planarCP = 1; #ifdef SPAR_HOA_DBG - fprintf( stdout, "planarCP = 1\n" ); + fprintf( stdout, "planarCP = 1\n" ); #endif - } - strat = get_next_indice( st0, 3 ); + } + strat = get_next_indice( st0, 3 ); + #ifdef SPAR_HOA_DBG - /*fprintf(stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat);*/ + /*fprintf(stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat);*/ #endif - freq_diff = 0; - no_ec = 0; + freq_diff = 0; + no_ec = 0; - if ( strat < 2 ) + if ( strat < 2 ) + { + *bands_bw = strat + 1; + *nB = num_bands / *bands_bw; + for ( i = 0; i < *nB; i++ ) { - *bands_bw = strat + 1; - *nB = num_bands / *bands_bw; - for ( i = 0; i < *nB; i++ ) - { - do_diff[i] = 0; - } + do_diff[i] = 0; } - else if ( strat < 4 ) + } + else if ( strat < 4 ) + { + *bands_bw = strat - 1; + *nB = num_bands / *bands_bw; + for ( i = 0; i < *nB; i++ ) { - *bands_bw = strat - 1; - *nB = num_bands / *bands_bw; - for ( i = 0; i < *nB; i++ ) - { - do_diff[i] = 0; - } - no_ec = 1; + do_diff[i] = 0; } - else - { - *bands_bw = 1; - *nB = num_bands; - - for ( i = 0; i < *nB; i++ ) - { - do_diff[i] = ( ( ( i + 1 ) & 3 ) != strat - 4 ); - } + no_ec = 1; + } + else + { + *bands_bw = 1; + *nB = num_bands; - ivas_map_prior_coeffs_quant( &hMdDec->spar_md_prev, &hMdDec->spar_md_cfg, qsi, *nB ); + for ( i = 0; i < *nB; i++ ) + { + do_diff[i] = ( ( ( i + 1 ) & 3 ) != strat - 4 ); } + + ivas_map_prior_coeffs_quant( &hMdDec->spar_md_prev, &hMdDec->spar_md_cfg, qsi, *nB ); + } #ifdef SPAR_HOA_DBG - fprintf( stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat ); + fprintf( stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat ); #endif - hMdDec->spar_md_cfg.prev_quant_idx = qsi; + hMdDec->spar_md_cfg.prev_quant_idx = qsi; - if ( no_ec == 0 ) - { - ivas_decode_arith_bs( hMdDec, st0, qsi, *nB, *bands_bw, do_diff, freq_diff, planarCP ); - } - else - { - ivas_decode_huffman_bs( hMdDec, st0, qsi, *nB, *bands_bw, planarCP ); - } + if ( no_ec == 0 ) + { + ivas_decode_arith_bs( hMdDec, st0, qsi, *nB, *bands_bw, do_diff, freq_diff, planarCP ); + } + else + { + ivas_decode_huffman_bs( hMdDec, st0, qsi, *nB, *bands_bw, planarCP ); + } - for ( i = 0; i < *nB; i++ ) - { - int16_t ii, jj; - int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; - int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; - float quant[IVAS_SPAR_MAX_C_COEFF]; - ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); + for ( i = 0; i < *nB; i++ ) + { + ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; + ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; - j = 0; - for ( ii = 0; ii < ndec; ii++ ) - { - for ( jj = 0; jj < ndm - 1; jj++ ) - { - quant[j] = hMdDec->spar_md.band_coeffs[i].C_re[ii][jj]; - j++; - } - } - ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); - j = 0; - for ( ii = 0; ii < ndec; ii++ ) - { - for ( jj = 0; jj < ndm - 1; jj++ ) - { - hMdDec->spar_md.band_coeffs[i].C_re[ii][jj] = quant[j]; - j++; - } - } - ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); - /* Store prior coefficient indices */ - for ( j = 0; j < ndm + ndec - 1; j++ ) - { - hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; - } - for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); + + j = 0; + for ( ii = 0; ii < ndec; ii++ ) + { + for ( jj = 0; jj < ndm - 1; jj++ ) { - hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; + quant[j] = hMdDec->spar_md.band_coeffs[i].C_re[ii][jj]; + j++; } - for ( j = 0; j < ndec; j++ ) + } + + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); + + j = 0; + for ( ii = 0; ii < ndec; ii++ ) + { + for ( jj = 0; jj < ndm - 1; jj++ ) { - hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; + hMdDec->spar_md.band_coeffs[i].C_re[ii][jj] = quant[j]; + j++; } - hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } - } - else - { - *dtx_vad = hMdDec->spar_md.dtx_vad; - *nB = num_bands; - *bands_bw = num_bands / *nB; - for ( i = 0; i < *nB; i++ ) + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); + + /* Store prior coefficient indices */ + for ( j = 0; j < ndm + ndec - 1; j++ ) { - hMdDec->valid_bands[i] = 1; + hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; } + for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) + { + hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; + } + for ( j = 0; j < ndec; j++ ) + { + hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; + } + hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } + #ifdef SPAR_HOA_DBG int16_t b; b = 0; @@ -1743,14 +1737,14 @@ static void ivas_decode_arith_bs( const int16_t freq_diff, const int16_t planarCP ) { - int16_t i, ndm, ndec; + int16_t i, j, ndm, ndec; ivas_cell_dim_t pred_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t drct_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decd_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decx_cell_dims[IVAS_MAX_NUM_BANDS]; int16_t symbol_arr_re[IVAS_MAX_INPUT_LEN]; int16_t symbol_arr_old_re[IVAS_MAX_INPUT_LEN]; - int16_t any_diff = 0; + int16_t any_diff; for ( i = 0; i < nB; i++ ) { @@ -1774,6 +1768,7 @@ static void ivas_decode_arith_bs( decx_cell_dims[i].dim2 = 1; } + any_diff = 0; for ( i = 0; i < nB; i++ ) { if ( pDo_diff[i] != 0 ) @@ -1787,7 +1782,6 @@ static void ivas_decode_arith_bs( { if ( hMdDec->spar_hoa_md_flag ) { - int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1810,7 +1804,6 @@ static void ivas_decode_arith_bs( if ( hMdDec->spar_hoa_md_flag ) { - int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -2063,12 +2056,11 @@ static void ivas_decode_huffman_bs( const int16_t planarCP ) { int16_t i, j; + int16_t ndm, ndec; + int16_t pred_dim, drct_dim, decd_dim, pred_offset; for ( i = 0; i < nB; i++ ) { - int16_t ndm, ndec; - int16_t pred_dim, drct_dim, decd_dim, pred_offset; - ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; @@ -2086,8 +2078,7 @@ static void ivas_decode_huffman_bs( for ( j = pred_offset; j < pred_dim; j++ ) { - ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); } if ( hMdDec->spar_hoa_md_flag ) @@ -2109,8 +2100,7 @@ static void ivas_decode_huffman_bs( } else { - ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); } } @@ -2122,8 +2112,7 @@ static void ivas_decode_huffman_bs( } else { - ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); } } } @@ -2347,6 +2336,7 @@ static void ivas_spar_unquant_dtx_indicies( pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; + for ( b = 0; b < nB; b++ ) { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) @@ -2384,7 +2374,7 @@ static void ivas_parse_parameter_bitstream_dtx( int16_t *num_dmx_per_band, int16_t *num_dec_per_band ) { - int16_t i, j; + int16_t i, j, ndec, ndm; float val; int16_t idx; float pr_min_max[2]; @@ -2397,8 +2387,8 @@ static void ivas_parse_parameter_bitstream_dtx( for ( i = 0; i < num_bands; i++ ) { - int16_t ndec = num_dec_per_band[bw * i]; - int16_t ndm = num_dmx_per_band[bw * i]; + ndec = num_dec_per_band[bw * i]; + ndm = num_dmx_per_band[bw * i]; for ( j = 0; j < FOA_CHANNELS - 1; j++ ) { diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index d19299c562..1fafdbd4e6 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -324,7 +324,6 @@ static ivas_error ivas_spar_md_enc_init( table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); - hMdEnc->spar_md_cfg.gen_bs = 1; ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); /* get FB coefficients */ @@ -334,19 +333,6 @@ static ivas_error ivas_spar_md_enc_init( } ivas_spar_set_enc_config( hMdEnc, hMdEnc->spar_md_cfg.max_freq_per_chan, hMdEnc->spar_md_cfg.nchan_transport, pFC, num_channels ); - /* - if(hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) - { - hMdEnc->spar_md_cfg.gen_bs = 0; - } - else if(0 != hMdEnc->spar_md_cfg.gen_bs) - { - hMdEnc->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); - } -*/ if ( hMdEnc->spar_md_cfg.nchan_transport != 2 && ( ( hMdEnc->spar_md_cfg.remix_unmix_order == 1 ) || ( hMdEnc->spar_md_cfg.remix_unmix_order == 2 ) ) ) { @@ -885,11 +871,6 @@ ivas_error ivas_spar_md_enc_process( ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, num_bands_full ); } - if ( hMdEnc->spar_md_cfg.gen_bs == 0 ) - { - break; - } - if ( dtx_vad == 0 ) { ivas_write_parameter_bitstream_dtx( &hMdEnc->spar_md, hMetaData, hMdEnc->spar_md_cfg.num_dmx_chans_per_band, hMdEnc->spar_md_cfg.num_decorr_per_band, num_bands ); @@ -1110,10 +1091,7 @@ ivas_error ivas_spar_md_enc_process( fclose( fp ); #endif - if ( hMdEnc->spar_md_cfg.gen_bs == 1 ) - { - ivas_store_prior_coeffs( hMdEnc, num_bands, bands_bw, code_strat, dtx_vad, qsi ); - } + ivas_store_prior_coeffs( hMdEnc, num_bands, bands_bw, code_strat, dtx_vad, qsi ); hMdEnc->spar_md.dtx_vad = dtx_vad; hMdEnc->spar_md.num_bands = num_bands; -- GitLab From cd8a633d2aa672f79c112c4ccc679c0ec3f97d3e Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 1 Nov 2022 09:37:30 +0100 Subject: [PATCH 361/479] editorial improvements --- lib_com/ivas_prot.h | 5 +++-- lib_enc/ivas_agc_enc.c | 9 +++++++-- lib_enc/ivas_spar_encoder.c | 38 +++++++++++-------------------------- lib_enc/lib_enc.c | 3 +++ 4 files changed, 24 insertions(+), 31 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index aadfca8c89..fe0786f023 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3754,11 +3754,12 @@ void ivas_sba_prototype_renderer( /* AGC */ #ifdef AGC_ENABLE_FOR_LBR +/*! r: AGC enable flag */ int16_t ivas_agc_enc_get_flag( #ifdef DEBUG_AGC_ENCODER_CMD_OPTION - int16_t agc_configuration, /* i : configuration used when encoder was initialised from cmd line */ + int16_t agc_configuration, /* i : AGC configuration from command-line */ #endif - int16_t nchan_transport /* i : number of transport channels */ + int16_t nchan_transport /* i : number of transport channels */ ); #endif diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 70ed1c55db..53a6df3a13 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -79,11 +79,13 @@ static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_ *-----------------------------------------------------------------------------------------*/ #endif +/*! r: AGC enable flag */ int16_t ivas_agc_enc_get_flag( #ifdef DEBUG_AGC_ENCODER_CMD_OPTION - int16_t agc_configuration, + int16_t agc_configuration, /* i : AGC configuration from command-line */ #endif - int16_t nchan_transport ) + int16_t nchan_transport /* i : number of transport channels */ +) { #ifdef DEBUG_AGC_ENCODER_CMD_OPTION return (int16_t) ( ( agc_configuration == SBA_AGC_DEFAULT ) @@ -143,6 +145,7 @@ static void ivas_agc_enc_init( return; } + /*------------------------------------------------------------------------- * ivas_spar_agc_enc_open() * @@ -187,6 +190,7 @@ ivas_error ivas_spar_agc_enc_open( return IVAS_ERR_OK; } + /*------------------------------------------------------------------------- * ivas_spar_agc_enc_close() * @@ -219,6 +223,7 @@ void ivas_spar_agc_enc_close( return; } + /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_process() * diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 3b04dbe24b..1beab643d5 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -123,20 +123,21 @@ ivas_error ivas_spar_enc_open( #ifdef AGC_ENABLE_FOR_LBR #ifdef DEBUG_AGC_ENCODER_CMD_OPTION hSpar->AGC_Enable = ivas_agc_enc_get_flag( hEncoderConfig->Opt_AGC_ON, nchan_transport ); - hSpar->hAgcEnc = NULL; #else hSpar->AGC_Enable = ivas_agc_enc_get_flag( nchan_transport ); #endif #endif - if ( + #ifdef AGC_ENABLE_FOR_LBR - hSpar->AGC_Enable && + hSpar->hAgcEnc = NULL; + if ( hSpar->AGC_Enable ) #endif - ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) { - return error; + if ( ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) + { + return error; + } } - /* PCA handle */ hSpar->hPCA = NULL; if ( hEncoderConfig->Opt_PCA_ON ) @@ -242,7 +243,6 @@ void ivas_spar_enc_close( hSpar->hFrontVad = NULL; } - num_chans = hSpar->hFbMixer->fb_cfg->num_in_chans; assert( num_chans <= nchan_inp ); @@ -259,14 +259,7 @@ void ivas_spar_enc_close( ivas_spar_transient_det_close( &hSpar->hTranDet ); /* AGC */ -#ifdef AGC_ENABLE_FOR_LBR - if ( hSpar->hAgcEnc != NULL ) - { -#endif - ivas_spar_agc_enc_close( &hSpar->hAgcEnc ); -#ifdef AGC_ENABLE_FOR_LBR - } -#endif + ivas_spar_agc_enc_close( &hSpar->hAgcEnc ); /* PCA */ if ( hSpar->hPCA != NULL ) @@ -391,7 +384,6 @@ static ivas_error ivas_spar_enc_process( mvr2r( data_f[HOA_keep_ind[i]], data_f[i], input_frame ); } - /*-----------------------------------------------------------------------------------------* * Transient detector *-----------------------------------------------------------------------------------------*/ @@ -445,17 +437,13 @@ static ivas_error ivas_spar_enc_process( p_pcm_tmp[i] = pcm_tmp[i]; } - dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; /*-----------------------------------------------------------------------------------------* * DirAC encoding *-----------------------------------------------------------------------------------------*/ - ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, - data_f, ppIn_FR_real, ppIn_FR_imag, input_frame, - st_ivas->sba_mode ); - + ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, data_f, ppIn_FR_real, ppIn_FR_imag, input_frame, st_ivas->sba_mode ); if ( hQMetaData->q_direction->cfg.nbands > 0 ) { @@ -540,7 +528,6 @@ static ivas_error ivas_spar_enc_process( } } - /*-----------------------------------------------------------------------------------------* * Covariance process *-----------------------------------------------------------------------------------------*/ @@ -565,8 +552,7 @@ static ivas_error ivas_spar_enc_process( if ( hSpar->hMdEnc->table_idx != table_idx ) { hSpar->hMdEnc->table_idx = table_idx; - ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, - ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); + ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); } nchan_transport = st_ivas->nchan_transport; @@ -620,9 +606,7 @@ static ivas_error ivas_spar_enc_process( } ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, - d_start_band, d_end_band, - ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, - dtx_vad, Wscale_d ); + d_start_band, d_end_band, ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, dtx_vad, Wscale_d ); } if ( hSpar->hMdEnc->spar_hoa_md_flag ) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 242a56f7bc..e25afc9fd8 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -480,8 +480,10 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( hEncoderConfig->element_mode_init = IVAS_SCE; /* Just needs to be something not mono, will be set later */ hEncoderConfig->sba_planar = isPlanar; hEncoderConfig->sba_order = order; + /* Input in ACN/SN3D in all cases (3D and planar): get number of channels */ hEncoderConfig->nchan_inp = ivas_sba_get_nchan( hEncoderConfig->sba_order, 0 ); /*planar input arg. deliberately set to zero since input always in ACN/SN3D*/ + #ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR if ( ( error = agcAPIToInternal( Opt_AGC_ON, &( hEncoderConfig->Opt_AGC_ON ) ) ) != IVAS_ERR_OK ) @@ -492,6 +494,7 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( hEncoderConfig->Opt_AGC_ON = (int16_t) Opt_AGC_ON; #endif /* AGC_ENABLE_FOR_LBR */ #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ + hEncoderConfig->Opt_PCA_ON = (int16_t) Opt_PCA_ON; hIvasEnc->maxBandwidthUser = max_bwidth_user; -- GitLab From 1e60bcb8074808ae7f903910ba9e2571fa890257 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 1 Nov 2022 23:46:10 +0100 Subject: [PATCH 362/479] Use hDecoderConfig intsead st_ivas->hDecoderConfig; --- lib_dec/ivas_spar_decoder.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 8fb28c826f..2882693a80 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -1024,7 +1024,7 @@ void ivas_spar_dec_upmixer( *---------------------------------------------------------------------*/ /* set-up pointers */ - if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) { /* at this point, output channels are used as intermediate procesing buffers */ for ( in_ch = 0; in_ch < MAX_OUTPUT_CHANNELS; in_ch++ ) @@ -1065,7 +1065,7 @@ void ivas_spar_dec_upmixer( /* determine if we can skip certain data */ ivas_spar_get_skip_mat( hSpar, numch_out, numch_in, num_spar_bands, b_skip_mat ); /* this can be precomputed based on bitrate and format*/ - numch_out_dirac = st_ivas->hDecoderConfig->nchan_out; + numch_out_dirac = hDecoderConfig->nchan_out; for ( int16_t i_sf = 0; i_sf < MAX_PARAM_SPATIAL_SUBFRAMES; i_sf++ ) { @@ -1086,7 +1086,7 @@ void ivas_spar_dec_upmixer( for ( ts = 0; ts < MAX_PARAM_SPATIAL_SUBFRAMES; ts++ ) { /* determine SPAR parameters for this time slots */ - ivas_spar_get_parameters( hSpar, st_ivas->hDecoderConfig, ts + i_sf * MAX_PARAM_SPATIAL_SUBFRAMES, numch_out, numch_in, num_spar_bands, mixer_mat ); + ivas_spar_get_parameters( hSpar, hDecoderConfig, ts + i_sf * MAX_PARAM_SPATIAL_SUBFRAMES, numch_out, numch_in, num_spar_bands, mixer_mat ); for ( cldfb_band = 0; cldfb_band < num_cldfb_bands; cldfb_band++ ) { @@ -1135,9 +1135,9 @@ void ivas_spar_dec_upmixer( } } - if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA #ifdef SPAR_STEREO_NO_DIRAC - && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO + && hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && hDecoderConfig->output_config != AUDIO_CONFIG_MONO #endif ) { @@ -1164,8 +1164,7 @@ void ivas_spar_dec_upmixer( } else { - if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_FOA || - !( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM ) ) + if ( hDecoderConfig->output_config == AUDIO_CONFIG_FOA || !( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM ) ) { for ( ts = 0; ts < MAX_PARAM_SPATIAL_SUBFRAMES; ts++ ) { -- GitLab From 1f55fb65b518fa54f16d9aef9945684905033215 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 2 Nov 2022 08:04:44 +0100 Subject: [PATCH 363/479] data type change int32_t -> int16_t --- lib_dec/ivas_stat_dec.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index b2e8940b8c..edbb0bed62 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -870,7 +870,7 @@ typedef struct ivas_spar_dec_lib_t int16_t dirac_to_spar_md_bands[DIRAC_MAX_NBANDS]; int16_t enc_param_start_band; int32_t core_nominal_brate; /* Nominal bitrate for core coding */ - int32_t i_subframe; + int16_t i_subframe; #ifdef DEBUG_SBA_AUDIO_DUMP int16_t numOutChannels; -- GitLab From 6093927c519b6f5f7de613ff277a9fdb03fb750b Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 2 Nov 2022 10:38:57 +0100 Subject: [PATCH 364/479] formatting; add "const" to function input parameter --- lib_com/ivas_prot.h | 2 +- lib_com/ivas_spar_com.c | 5 +++-- lib_dec/ivas_spar_md_dec.c | 33 +++++++++++++-------------------- lib_enc/ivas_dirac_enc.c | 6 ++++-- lib_enc/ivas_spar_encoder.c | 14 +++----------- lib_enc/ivas_spar_md_enc.c | 36 +++++++++++++++++++----------------- 6 files changed, 43 insertions(+), 53 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 7181e36640..265f86c507 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3906,7 +3906,7 @@ ivas_error ivas_spar_md_enc_process( float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ - int16_t dtx_vad, + const int16_t dtx_vad, const int16_t nchan_inp, const int16_t sba_order /* i : Ambisonic (SBA) order */ ); diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index fa5e65460e..ad143e057f 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -912,7 +912,6 @@ static void ivas_calc_post_pred_per_band( { for ( k = 0; k < num_ch; k++ ) { - IVAS_RMULT_FLOAT( mixer_mat[i][k][band_idx], temp_mat[k][j], tmp_re ); postpred_cov_re[i][j] += tmp_re; } @@ -1213,6 +1212,7 @@ static void ivas_calc_c_coeffs_per_band( else { ivas_calc_mat_inv( cov_dd_re, num_dmx - 1, cov_dd_re_inv ); + for ( i = 0; i < num_ch - num_dmx; i++ ) { for ( j = 0; j < num_dmx - 1; j++ ) @@ -1390,6 +1390,7 @@ static void ivas_get_mat_cofactor( * * Calculate Invert of a matrix *-----------------------------------------------------------------------------------------*/ + static void ivas_calc_mat_inv( float in_re[MAX_MAT_DIM][MAX_MAT_DIM], const int16_t dim, @@ -1489,6 +1490,7 @@ static void ivas_calc_mat_inv( * * Check if matrix is invertible or not by checking if determinant is 0 or very close to 0 *-----------------------------------------------------------------------------------------*/ + static int16_t ivas_is_mat_inv( float in_re[MAX_MAT_DIM][MAX_MAT_DIM], const int16_t dim ) @@ -1624,7 +1626,6 @@ void ivas_compute_spar_params( } } - return; } diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index bf27f7d58c..99eae474c1 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -82,7 +82,9 @@ static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coe static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ); static void ivas_parse_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, Decoder_State *st, const int16_t bw, const int16_t num_bands, int16_t *num_dmx_per_band, int16_t *num_dec_per_band ); + static ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, float *quant, const int16_t num_ch_dim2 ); + static void ivas_spar_dec_parse_md_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, int16_t *nB, int16_t *bands_bw, int16_t *dtx_vad, const int32_t ivas_total_brate, const int16_t use_planar_coeff, const int16_t sba_inactive_mode ); @@ -443,8 +445,7 @@ ivas_error ivas_spar_md_dec_init( hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); - ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, - hMdDec->spar_md.num_bands ); + ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, hMdDec->spar_md.num_bands ); nchan_transport = hMdDec->spar_md_cfg.nchan_transport; @@ -1207,7 +1208,6 @@ static void ivas_get_spar_matrices( for ( j = 1; j < numch_out; j++ ) { for ( k = dmx_ch; k < numch_out; k++ ) - { for ( m = 0; m < numch_out; m++ ) { @@ -1513,8 +1513,7 @@ static void ivas_spar_dec_parse_md_bs( } } - ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, - hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); + ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); { int16_t ndec, b, idx; for ( i = *nB - 1; i >= 0; i-- ) @@ -1608,6 +1607,7 @@ static void ivas_spar_dec_parse_md_bs( int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; float quant[IVAS_SPAR_MAX_C_COEFF]; + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); j = 0; @@ -1620,6 +1620,7 @@ static void ivas_spar_dec_parse_md_bs( } } ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); + j = 0; for ( ii = 0; ii < ndec; ii++ ) { @@ -1630,6 +1631,7 @@ static void ivas_spar_dec_parse_md_bs( } } ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); + /* Store prior coefficient indices */ for ( j = 0; j < ndm + ndec - 1; j++ ) { @@ -1749,7 +1751,7 @@ static void ivas_decode_arith_bs( const int16_t freq_diff, const int16_t planarCP ) { - int16_t i, ndm, ndec; + int16_t i, j, ndm, ndec; ivas_cell_dim_t pred_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t drct_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decd_cell_dims[IVAS_MAX_NUM_BANDS]; @@ -1793,7 +1795,6 @@ static void ivas_decode_arith_bs( { if ( hMdDec->spar_hoa_md_flag ) { - int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1816,7 +1817,6 @@ static void ivas_decode_arith_bs( if ( hMdDec->spar_hoa_md_flag ) { - int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -2092,8 +2092,7 @@ static void ivas_decode_huffman_bs( for ( j = pred_offset; j < pred_dim; j++ ) { - ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); } if ( hMdDec->spar_hoa_md_flag ) @@ -2115,8 +2114,7 @@ static void ivas_decode_huffman_bs( } else { - ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); } } @@ -2128,8 +2126,7 @@ static void ivas_decode_huffman_bs( } else { - ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); } } } @@ -2758,9 +2755,7 @@ void ivas_spar_to_dirac( if ( hMdDec->spar_md_cfg.nchan_transport > 1 ) { ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, - end_band, num_bands_out, - ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, - dtx_vad, NULL ); + end_band, num_bands_out, ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, dtx_vad, NULL ); /* temporarily copy frame-wise prediction coefficients in DirAC bands*/ for ( pred_idx = 0; pred_idx < FOA_CHANNELS - 1; pred_idx++ ) @@ -2773,9 +2768,7 @@ void ivas_spar_to_dirac( } ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, MAX_PARAM_SPATIAL_SUBFRAMES, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, - end_band, num_bands_out, - ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, - dtx_vad, NULL ); + end_band, num_bands_out, ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, dtx_vad, NULL ); /* expand DirAC TC 20ms MD for residual channels to all subframes*/ for ( block = 0; block < MAX_PARAM_SPATIAL_SUBFRAMES; block++ ) diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index d105cff616..223d23d695 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -334,8 +334,8 @@ void ivas_dirac_enc( set_zero( data_f[2], input_frame ); } - ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame, - SBA_MODE_DIRAC ); + ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame, SBA_MODE_DIRAC ); + /* encode parameters */ if ( sba_planar || hQMetaData->useLowerRes ) { @@ -427,6 +427,7 @@ void ivas_dirac_enc( { /*indicate whether SPAR or DiRAC mode*/ push_next_indice( hMetaData, 0, 1 ); + /* encode SID parameters */ ivas_qmetadata_enc_sid_encode( hMetaData, hQMetaData, -1, SBA_FORMAT, SBA_MODE_DIRAC ); } @@ -889,6 +890,7 @@ static void computeIntensityVector_enc( int16_t i, j; float real, img; int16_t brange[2]; + for ( i = 0; i < num_frequency_bands; i++ ) { brange[0] = hDirAC->band_grouping[i + enc_param_start_band]; diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 7e2d49310f..115ef94254 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -233,7 +233,6 @@ void ivas_spar_enc_close( hSpar->hFrontVad = NULL; } - num_chans = hSpar->hFbMixer->fb_cfg->num_in_chans; assert( num_chans <= nchan_inp ); @@ -436,10 +435,7 @@ static ivas_error ivas_spar_enc_process( * DirAC encoding *-----------------------------------------------------------------------------------------*/ - ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, - data_f, ppIn_FR_real, ppIn_FR_imag, input_frame, - st_ivas->sba_mode ); - + ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, data_f, ppIn_FR_real, ppIn_FR_imag, input_frame, st_ivas->sba_mode ); if ( hQMetaData->q_direction->cfg.nbands > 0 ) { @@ -502,7 +498,6 @@ static ivas_error ivas_spar_enc_process( if ( dtx_vad == 0 ) { - for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { hQMetaData->q_direction[0].band_data[orig_dirac_bands - 1].azimuth[i] = hQMetaData->q_direction[0].band_data[1].azimuth[0]; @@ -549,8 +544,7 @@ static ivas_error ivas_spar_enc_process( if ( hSpar->hMdEnc->table_idx != table_idx ) { hSpar->hMdEnc->table_idx = table_idx; - ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, - ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); + ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); } nchan_transport = st_ivas->nchan_transport; @@ -604,9 +598,7 @@ static ivas_error ivas_spar_enc_process( } ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, - d_start_band, d_end_band, - ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, - dtx_vad, Wscale_d ); + d_start_band, d_end_band, ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, dtx_vad, Wscale_d ); } if ( hSpar->hMdEnc->spar_hoa_md_flag ) diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 6500019164..1f1802f419 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -325,8 +325,7 @@ static ivas_error ivas_spar_md_enc_init( table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); hMdEnc->spar_md_cfg.gen_bs = 1; - ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, - ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); + ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); /* get FB coefficients */ for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) @@ -561,7 +560,7 @@ ivas_error ivas_spar_md_enc_process( float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ - int16_t dtx_vad, + const int16_t dtx_vad, const int16_t nchan_inp, const int16_t sba_order /* i : Ambisonic (SBA) order */ ) @@ -639,7 +638,6 @@ ivas_error ivas_spar_md_enc_process( next_ind_start = hMetaData->next_ind; last_ind_start = hMetaData->last_ind; - dmx_switch = 0; if ( dtx_vad == 0 ) @@ -661,8 +659,7 @@ ivas_error ivas_spar_md_enc_process( { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) { - pred_coeffs_re_local[i][b] = - hMdEnc->spar_md.band_coeffs[b].pred_re[i]; + pred_coeffs_re_local[i][b] = hMdEnc->spar_md.band_coeffs[b].pred_re[i]; } } } @@ -773,15 +770,16 @@ ivas_error ivas_spar_md_enc_process( } else { - if ( ndm != num_ch ) { ivas_quant_p_per_band_dtx( hMdEnc->spar_md.band_coeffs[b].P_re, ndec, ndm, &hMdEnc->spar_md.band_coeffs_idx[b].decd_index_re[0], hMdEnc->spar_md.band_coeffs[b].P_quant_re, num_ch ); } + for ( i = 0; i < num_ch - 1; i++ ) { hMdEnc->spar_md.band_coeffs[b].pred_quant_re[i] = 0; } + ivas_spar_quant_pred_coeffs_dtx( &hMdEnc->spar_md, hMdEnc->spar_md.band_coeffs[b].pred_re, ndm, hMdEnc->spar_md.band_coeffs_idx[b].pred_index_re, num_ch - 1, hMdEnc->spar_md.band_coeffs[b].pred_quant_re ); } } @@ -1376,7 +1374,7 @@ static void ivas_get_arith_coded_bs( const int16_t qsi, const int16_t planarCP ) { - int16_t i, any_diff; + int16_t i, j, any_diff; ivas_cell_dim_t pred_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t drct_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decd_cell_dims[IVAS_MAX_NUM_BANDS]; @@ -1417,7 +1415,6 @@ static void ivas_get_arith_coded_bs( } if ( hMdEnc->spar_hoa_md_flag ) { - int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1426,6 +1423,7 @@ static void ivas_get_arith_coded_bs( { hMdEnc->spar_md.band_coeffs_idx[i].pred_index_re[j] = hMdEnc->spar_md.band_coeffs_idx[i].pred_index_re[j + ( FOA_CHANNELS - 1 )]; + if ( any_diff == 1 ) { hMdEnc->spar_md_prior.band_coeffs_idx_mapped[i].pred_index_re[j] = @@ -1439,8 +1437,7 @@ static void ivas_get_arith_coded_bs( if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md_prior.band_coeffs_idx_mapped, nB, - symbol_arr_old_re, pred_cell_dims, PRED_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md_prior.band_coeffs_idx_mapped, nB, symbol_arr_old_re, pred_cell_dims, PRED_COEFF, planarCP ); } ivas_arith_encode_cmplx_cell_array( &hMdEnc->arith_coeffs.pred_arith_re[qsi], &hMdEnc->arith_coeffs.pred_arith_re_diff[qsi], pDo_diff, nB, @@ -1448,7 +1445,6 @@ static void ivas_get_arith_coded_bs( if ( hMdEnc->spar_hoa_md_flag ) { - int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1494,8 +1490,7 @@ static void ivas_get_arith_coded_bs( if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md_prior.band_coeffs_idx_mapped, nB, - symbol_arr_old_re, decd_cell_dims, DECD_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md_prior.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decd_cell_dims, DECD_COEFF, planarCP ); } if ( planarCP ) @@ -1509,13 +1504,11 @@ static void ivas_get_arith_coded_bs( ivas_arith_encode_cmplx_cell_array( &hMdEnc->arith_coeffs.decd_arith_re[qsi], &hMdEnc->arith_coeffs.decd_arith_re_diff[qsi], pDo_diff, nB, symbol_arr_re, symbol_arr_old_re, decd_cell_dims, hMetaData, any_diff ); - ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md.band_coeffs_idx, nB, symbol_arr_re, decx_cell_dims, DECX_COEFF, planarCP ); if ( any_diff == 1 ) { - ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md_prior.band_coeffs_idx_mapped, nB, - symbol_arr_old_re, decx_cell_dims, DECX_COEFF, planarCP ); + ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md_prior.band_coeffs_idx_mapped, nB, symbol_arr_old_re, decx_cell_dims, DECX_COEFF, planarCP ); } return; @@ -1638,13 +1631,16 @@ static void ivas_spar_quant_pred_coeffs_dtx( int16_t i; int16_t q_lvl; float pr_min_max[2]; + pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; + for ( i = 0; i < dim1; i++ ) { q_lvl = dtx_pr_real_q_levels[ndm - 1][i]; ivas_quantise_real_values( &pValues[i], q_lvl, pr_min_max[0], pr_min_max[1], &pIndex[i], &pQuant[i], 1 ); } + return; } @@ -1665,6 +1661,7 @@ static void ivas_quant_p_per_band_dtx( { int16_t i; int16_t dim = num_ch - num_dmx; + if ( num_dec == num_ch - 1 ) { for ( i = 0; i < dim; i++ ) @@ -1680,10 +1677,12 @@ static void ivas_quant_p_per_band_dtx( { assert( !"Not Supported!" ); } + for ( i = 0; i < dim; i++ ) { ivas_quantise_real_values( &pP_mat[i], dtx_pd_real_q_levels[num_ch - num_dec - 1][i], dtx_pd_real_min_max[0], dtx_pd_real_min_max[1], &ppIdx_pd[i], &pP_out[i], 1 ); } + return; } @@ -1762,6 +1761,7 @@ static void ivas_write_parameter_bitstream_dtx( { int16_t pr_q_lvls1, pr_q_lvls2; int16_t pr_idx1, pr_idx2, pr_pr_bits; + pr_q_lvls1 = dtx_pr_real_q_levels[ndm - 1][pr_idx_1 - 1]; pr_q_lvls2 = dtx_pr_real_q_levels[ndm - 1][pr_idx_2 - 1]; val = pr_min_max[0]; @@ -1814,6 +1814,7 @@ static void ivas_quant_pred_coeffs_per_band( const int16_t num_ch ) { ivas_quantise_real_values( pband_coeffs->pred_re, pQs->PR.q_levels[0], pQs->PR.min, pQs->PR.max, pBand_coeffs_idx->pred_index_re, pband_coeffs->pred_quant_re, ( num_ch - 1 ) ); + return; } @@ -1900,5 +1901,6 @@ static void ivas_quant_p_per_band( fprintf(stderr, "\n\n");*/ #endif ivas_quantise_real_values( pband_coeffs->P_re, pQs->P_r.q_levels[0], pQs->P_r.min, pQs->P_r.max, pBand_coeffs_idx->decd_index_re, pband_coeffs->P_quant_re, num_ch - 1 ); + return; } -- GitLab From efa08a98bb76136c5c1fc11811b03bfb341c77a0 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 2 Nov 2022 10:47:22 +0100 Subject: [PATCH 365/479] replace magic numbers, e.g. 2 * order + 2, by a function call + formatting --- lib_com/ivas_spar_com.c | 7 ++++--- lib_dec/ivas_spar_md_dec.c | 2 +- lib_enc/ivas_spar_md_enc.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index c9204291bc..ceab9dd42c 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -1667,8 +1667,8 @@ void ivas_get_spar_md_from_dirac( remix_order = remix_order_set[hSpar_md_cfg->remix_unmix_order]; - num_ch = 2 * order + 2; - hoa2_ch = 6; + num_ch = ivas_sba_get_nchan_metadata( order ); + hoa2_ch = ivas_sba_get_nchan_metadata( 2 ); foa_ch = FOA_CHANNELS; diff_norm_order1 = 3.0f; diff_norm_order2 = 5.0f; @@ -1687,6 +1687,7 @@ void ivas_get_spar_md_from_dirac( { float P_norm[3]; int16_t idx; + ndm = hSpar_md_cfg->num_dmx_chans_per_band[start_band - 1]; P_norm[0] = 0.0f; for ( i = 0; i < max( 0, foa_ch - ndm ); i++ ) @@ -1754,7 +1755,7 @@ void ivas_get_spar_md_from_dirac( int16_t num_ch_order, hoa2_ch_order; num_ch_order = ivas_sba_get_nchan( order, 0 ); - hoa2_ch_order = 9; + hoa2_ch_order = ivas_sba_get_nchan( 2, 0 ); for ( ch = 0; ch < num_ch_order; ch++ ) { diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 846ec04778..609239f9cc 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -627,7 +627,7 @@ void ivas_spar_md_dec_process( char f_name[100]; int16_t num_bands = nB; int16_t num_subframes = 1, num_block_groups = 1, num_elements = 1, byte_size = sizeof( float ); - int16_t num_ch = 2 * sba_order + 2; + int16_t num_ch = ivas_sba_get_nchan_metadata( sba_order ); for ( b = 0; b < num_bands; b++ ) { sprintf( f_name, "spar_band_pred_coeffs_dec.bin" ); diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 1fafdbd4e6..b740eb36fc 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -122,7 +122,7 @@ ivas_error ivas_spar_md_enc_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR MD encoder" ); } - num_channels = 2 * sba_order + 2; + num_channels = ivas_sba_get_nchan_metadata( sba_order ); hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); -- GitLab From 4a46376e4c00f8f1420ce76cd2eae7013b60405c Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 2 Nov 2022 10:03:50 +0000 Subject: [PATCH 366/479] Update lib_dec.c: Ambisonic -> Audio --- lib_dec/lib_dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index c63a2e064e..d16d1f2494 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1767,7 +1767,7 @@ static ivas_error printConfigInfo_dec( else if ( st_ivas->ivas_format == SBA_FORMAT ) { #ifdef PRINT_SBA_ORDER - fprintf( stdout, "Input configuration: Scene Based Analysis, Ambisonic order %i%s, %d transport channel(s)\n", st_ivas->sba_order, st_ivas->sba_planar ? " (Planar)" : "", st_ivas->nchan_transport ); + fprintf( stdout, "Input configuration: Scene Based Audio, Ambisonic order %i%s, %d transport channel(s)\n", st_ivas->sba_order, st_ivas->sba_planar ? " (Planar)" : "", st_ivas->nchan_transport ); #else fprintf( stdout, "Input configuration: SBA - %d transport channel(s) %s\n", st_ivas->nchan_transport, st_ivas->sba_planar ? "(Planar)" : "" ); #endif -- GitLab From 35264dbd8be82147158acc0be80371ccd2bb4422 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 2 Nov 2022 10:05:06 +0000 Subject: [PATCH 367/479] Update lib_enc.c: Analysis -> Audio --- lib_enc/lib_enc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index e25afc9fd8..3504394a0b 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -1509,7 +1509,7 @@ static ivas_error printConfigInfo_enc( else if ( hEncoderConfig->ivas_format == SBA_FORMAT ) { #ifdef PRINT_SBA_ORDER - fprintf( stdout, "IVAS format: Scene Based Analysis, Ambisonic order %i %s ", hEncoderConfig->sba_order, hEncoderConfig->sba_planar ? "(Planar)" : "" ); + fprintf( stdout, "IVAS format: Scene Based Audio, Ambisonic order %i %s ", hEncoderConfig->sba_order, hEncoderConfig->sba_planar ? "(Planar)" : "" ); #else fprintf( stdout, "IVAS format: Scene Based Analysis %s ", hEncoderConfig->sba_planar ? "(Planar)" : "" ); #endif -- GitLab From be159dcade473b21f76361d4c1ba4a5fcf53fbb8 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 2 Nov 2022 11:11:53 +0100 Subject: [PATCH 368/479] replace two identical assignments by one --- lib_dec/ivas_spar_decoder.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 444a14457e..9720f3c16a 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -1012,14 +1012,11 @@ void ivas_spar_dec_upmixer( { mvr2r( pPcm_tmp[hSpar->hTdDecorr->num_apd_outputs - 1 - i], output[nchan_internal - 1 - i], output_frame ); } - - hSpar->hFbMixer->fb_cfg->num_in_chans = num_in_ingest; - } - else - { - hSpar->hFbMixer->fb_cfg->num_in_chans = num_in_ingest; } + hSpar->hFbMixer->fb_cfg->num_in_chans = num_in_ingest; + + /*---------------------------------------------------------------------* * Prepare CLDFB buffers *---------------------------------------------------------------------*/ -- GitLab From 487815fe7ae4228641a3242b29701e242cf22b92 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 2 Nov 2022 11:18:28 +0100 Subject: [PATCH 369/479] replace "st_ivas->hDecoderConfig" with "hDecoderConfig" --- lib_dec/ivas_spar_decoder.c | 16 +++++++--------- lib_enc/ivas_spar_encoder.c | 6 +++--- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 9720f3c16a..76956c7c07 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -89,8 +89,7 @@ ivas_error ivas_spar_dec_open( } /* MD handle */ - if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal, - sba_order_internal ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal, sba_order_internal ) ) != IVAS_ERR_OK ) { return error; } @@ -1022,7 +1021,7 @@ void ivas_spar_dec_upmixer( *---------------------------------------------------------------------*/ /* set-up pointers */ - if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) { /* at this point, output channels are used as intermediate procesing buffers */ for ( in_ch = 0; in_ch < MAX_OUTPUT_CHANNELS; in_ch++ ) @@ -1063,7 +1062,7 @@ void ivas_spar_dec_upmixer( /* determine if we can skip certain data */ ivas_spar_get_skip_mat( hSpar, numch_out, numch_in, num_spar_bands, b_skip_mat ); /* this can be precomputed based on bitrate and format*/ - numch_out_dirac = st_ivas->hDecoderConfig->nchan_out; + numch_out_dirac = hDecoderConfig->nchan_out; for ( int16_t i_sf = 0; i_sf < MAX_PARAM_SPATIAL_SUBFRAMES; i_sf++ ) { @@ -1084,7 +1083,7 @@ void ivas_spar_dec_upmixer( for ( ts = 0; ts < MAX_PARAM_SPATIAL_SUBFRAMES; ts++ ) { /* determine SPAR parameters for this time slots */ - ivas_spar_get_parameters( hSpar, st_ivas->hDecoderConfig, ts + i_sf * MAX_PARAM_SPATIAL_SUBFRAMES, numch_out, numch_in, num_spar_bands, mixer_mat ); + ivas_spar_get_parameters( hSpar, hDecoderConfig, ts + i_sf * MAX_PARAM_SPATIAL_SUBFRAMES, numch_out, numch_in, num_spar_bands, mixer_mat ); for ( cldfb_band = 0; cldfb_band < num_cldfb_bands; cldfb_band++ ) { @@ -1133,9 +1132,9 @@ void ivas_spar_dec_upmixer( } } - if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA #ifdef SPAR_STEREO_NO_DIRAC - && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO + && hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && hDecoderConfig->output_config != AUDIO_CONFIG_MONO #endif ) { @@ -1162,8 +1161,7 @@ void ivas_spar_dec_upmixer( } else { - if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_FOA || - !( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM ) ) + if ( hDecoderConfig->output_config == AUDIO_CONFIG_FOA || !( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM ) ) { for ( ts = 0; ts < MAX_PARAM_SPATIAL_SUBFRAMES; ts++ ) { diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index eaecc8fe30..acdd88ee73 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -161,11 +161,11 @@ ivas_error ivas_spar_enc_open( if ( st_ivas->nchan_transport == 1 ) { - st_ivas->hEncoderConfig->element_mode_init = IVAS_SCE; + hEncoderConfig->element_mode_init = IVAS_SCE; } else { - st_ivas->hEncoderConfig->element_mode_init = IVAS_CPE_MDCT; + hEncoderConfig->element_mode_init = IVAS_CPE_MDCT; } /*-----------------------------------------------------------------* @@ -297,7 +297,7 @@ ivas_error ivas_spar_enc( hEncoderConfig = st_ivas->hEncoderConfig; /* front VAD */ - if ( ( error = front_vad_spar( st_ivas->hSpar, data_f[0], st_ivas->hEncoderConfig, input_frame ) ) != IVAS_ERR_OK ) + if ( ( error = front_vad_spar( st_ivas->hSpar, data_f[0], hEncoderConfig, input_frame ) ) != IVAS_ERR_OK ) { return error; } -- GitLab From 317d42b65e43d2911c58f23e89c14196d83dcc44 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 2 Nov 2022 12:03:03 +0100 Subject: [PATCH 370/479] use correct config json file --- ci/run_scheduled_sanitizer_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index 4f3cd25c0b..3c677cea94 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -7,7 +7,7 @@ import pathlib DURATION = "120" -CFG = "ci_linux.json" +CFG = "ci_linux_ltv.json" SUPPORTED_TESTS = ["CLANG1", "CLANG2", "CLANG3", "VALGRIND"] EP_FILE = "ep_015.g192" GENPATT_CMD = f"gen-patt -tailstat -fer -g192 -gamma 0 -rate 0.15 -tol 0.001 -reset -n {int(DURATION) * 50} {EP_FILE}" -- GitLab From 7830d91217a17185bd2d4ce06868f9e1ed615634 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 13:38:01 +0100 Subject: [PATCH 371/479] Expose patch with formatting fix as artifact of clang-format job --- .gitlab-ci.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3b5f7a3081..1f1d01fb3b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -404,11 +404,21 @@ clang-format-check: extends: - .test-job-linux - .rules-merge-request + variables: + ARTIFACT_NAME: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--formatting-fix.patch" stage: validate needs: [] timeout: "5 minutes" script: - - scripts/check-format.sh -a -p 8 + - format_problems=$(scripts/check-format.sh -af -p 8) + - if [ $format_problems == 0 ] then; exit 0; fi + - git diff > formatting-fix.patch + artifacts: + paths: + - formatting-fix.patch + when: on_failure + name: $ARTIFACT_NAME + expose_as: 'formatting patch' # --------------------------------------------------------------- # Test jobs for main branch -- GitLab From 24b052f3cbcad0240ff48500b6ed4c02043f117e Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 13:46:16 +0100 Subject: [PATCH 372/479] Do not stop job early if formatting problems were found --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1f1d01fb3b..b2c072b04e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -410,7 +410,7 @@ clang-format-check: needs: [] timeout: "5 minutes" script: - - format_problems=$(scripts/check-format.sh -af -p 8) + - scripts/check-format.sh -af -p 8 || format_problems=$? - if [ $format_problems == 0 ] then; exit 0; fi - git diff > formatting-fix.patch artifacts: -- GitLab From 026253912f7c00b399cbc48928e19d5f532f2678 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 13:48:26 +0100 Subject: [PATCH 373/479] Fix incorrectly placed semicolon --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b2c072b04e..6fec7ef5f0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -411,7 +411,7 @@ clang-format-check: timeout: "5 minutes" script: - scripts/check-format.sh -af -p 8 || format_problems=$? - - if [ $format_problems == 0 ] then; exit 0; fi + - if [ $format_problems == 0 ] ; then exit 0; fi - git diff > formatting-fix.patch artifacts: paths: -- GitLab From c61dc1ff4d9295fe8ae87b832181e26f6d2e289c Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 13:50:18 +0100 Subject: [PATCH 374/479] Fail job if format problems found --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6fec7ef5f0..1388b4a1f1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -413,6 +413,7 @@ clang-format-check: - scripts/check-format.sh -af -p 8 || format_problems=$? - if [ $format_problems == 0 ] ; then exit 0; fi - git diff > formatting-fix.patch + - exit $format_problems artifacts: paths: - formatting-fix.patch -- GitLab From e9603a626f3415deb7a9f4c50dcbcabc5cf677b1 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 2 Nov 2022 13:51:09 +0100 Subject: [PATCH 375/479] skip configureFdCngEnc in init_encoder for IVAS modes --- lib_enc/init_enc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib_enc/init_enc.c b/lib_enc/init_enc.c index 1ae2f48c66..4e4ab24369 100644 --- a/lib_enc/init_enc.c +++ b/lib_enc/init_enc.c @@ -785,7 +785,12 @@ ivas_error init_encoder( } initFdCngEnc( st->hFdCngEnc, st->input_Fs, st->cldfbAnaEnc->scale ); - configureFdCngEnc( st->hFdCngEnc, st->bwidth, st->rf_mode && st->total_brate == ACELP_13k20 ? ACELP_9k60 : st->total_brate ); + + /* initialization for IVAS modes happens in first frame pre-processing */ + if ( st->element_mode == EVS_MONO ) + { + configureFdCngEnc( st->hFdCngEnc, st->bwidth, st->rf_mode && st->total_brate == ACELP_13k20 ? ACELP_9k60 : st->total_brate ); + } } else { -- GitLab From f63b146231d11adb9cecc3f8f46cd4928145bd7b Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 14:13:45 +0100 Subject: [PATCH 376/479] Add instructions --- .gitlab-ci.yml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1388b4a1f1..5fcd5e62e7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -406,17 +406,35 @@ clang-format-check: - .rules-merge-request variables: ARTIFACT_NAME: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--formatting-fix.patch" + INSTRUCTIONS_GITLAB: "To fix formatting issues:\n + - download the diff patch available as artifact of this job\n + - unzip the artifact and place the patch file in the root directory of your local IVAS repo\n + - run: git apply $ARTIFACT_NAME + - commit new changes" + INSTRUCTIONS_README: "To fix formatting issues:\n + - place the patch file in the root directory of your local IVAS repo\n + - run: git apply $ARTIFACT_NAME + - commit new changes" stage: validate needs: [] timeout: "5 minutes" script: - scripts/check-format.sh -af -p 8 || format_problems=$? - if [ $format_problems == 0 ] ; then exit 0; fi - - git diff > formatting-fix.patch + + - mkdir tmp-formatting + - git diff > "tmp-formatting/$ARTIFACT_NAME" + + # Print instructions to job output + - echo $INSTRUCTIONS_GITLAB + + # Include readme in the artifact, in case someone misses the job printout (e.g. getting the artifact via MR interface) + - echo $INSTRUCTIONS_README > "tmp-formatting/readme.txt" + - exit $format_problems artifacts: paths: - - formatting-fix.patch + - tmp-formatting/ when: on_failure name: $ARTIFACT_NAME expose_as: 'formatting patch' -- GitLab From 9b40acc17e79dde14535dead9fd7cac37bb092f9 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 14:24:33 +0100 Subject: [PATCH 377/479] Try to fix echo problems --- .gitlab-ci.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5fcd5e62e7..b6a05d63ef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -405,15 +405,16 @@ clang-format-check: - .test-job-linux - .rules-merge-request variables: - ARTIFACT_NAME: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--formatting-fix.patch" + ARTIFACT_BASE_NAME: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--formatting-fix" + PATCH_FILE_NAME: "$ARTIFACT_BASE_NAME.patch" INSTRUCTIONS_GITLAB: "To fix formatting issues:\n - download the diff patch available as artifact of this job\n - unzip the artifact and place the patch file in the root directory of your local IVAS repo\n - - run: git apply $ARTIFACT_NAME + - run: git apply $PATCH_FILE_NAME - commit new changes" INSTRUCTIONS_README: "To fix formatting issues:\n - place the patch file in the root directory of your local IVAS repo\n - - run: git apply $ARTIFACT_NAME + - run: git apply $PATCH_FILE_NAME - commit new changes" stage: validate needs: [] @@ -422,21 +423,21 @@ clang-format-check: - scripts/check-format.sh -af -p 8 || format_problems=$? - if [ $format_problems == 0 ] ; then exit 0; fi - - mkdir tmp-formatting - - git diff > "tmp-formatting/$ARTIFACT_NAME" + - mkdir tmp-formatting-fix + - git diff > "tmp-formatting-fix/$PATCH_FILE_NAME" # Print instructions to job output - - echo $INSTRUCTIONS_GITLAB + - echo -e "$INSTRUCTIONS_GITLAB" # Include readme in the artifact, in case someone misses the job printout (e.g. getting the artifact via MR interface) - - echo $INSTRUCTIONS_README > "tmp-formatting/readme.txt" + - echo -e "$INSTRUCTIONS_README" > "tmp-formatting-fix/readme.txt" - exit $format_problems artifacts: paths: - - tmp-formatting/ + - tmp-formatting-fix/ when: on_failure - name: $ARTIFACT_NAME + name: "$ARTIFACT_BASE_NAME" expose_as: 'formatting patch' # --------------------------------------------------------------- -- GitLab From c1f5291ee295e6637746dc6351663ac6b712bd4f Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 14:27:55 +0100 Subject: [PATCH 378/479] Fix missing newline --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b6a05d63ef..12cf864a77 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -410,11 +410,11 @@ clang-format-check: INSTRUCTIONS_GITLAB: "To fix formatting issues:\n - download the diff patch available as artifact of this job\n - unzip the artifact and place the patch file in the root directory of your local IVAS repo\n - - run: git apply $PATCH_FILE_NAME + - run: git apply $PATCH_FILE_NAME\n - commit new changes" INSTRUCTIONS_README: "To fix formatting issues:\n - place the patch file in the root directory of your local IVAS repo\n - - run: git apply $PATCH_FILE_NAME + - run: git apply $PATCH_FILE_NAME\n - commit new changes" stage: validate needs: [] -- GitLab From 58265cb2a52b043401592fddf87a62a052ae741e Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 14:38:20 +0100 Subject: [PATCH 379/479] Try fix issues with variable expansion --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 12cf864a77..a38a3aa41a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -406,7 +406,6 @@ clang-format-check: - .rules-merge-request variables: ARTIFACT_BASE_NAME: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--formatting-fix" - PATCH_FILE_NAME: "$ARTIFACT_BASE_NAME.patch" INSTRUCTIONS_GITLAB: "To fix formatting issues:\n - download the diff patch available as artifact of this job\n - unzip the artifact and place the patch file in the root directory of your local IVAS repo\n @@ -424,6 +423,7 @@ clang-format-check: - if [ $format_problems == 0 ] ; then exit 0; fi - mkdir tmp-formatting-fix + - PATCH_FILE_NAME="$ARTIFACT_BASE_NAME.patch" # Must be assigned here so that all variables get expanded - git diff > "tmp-formatting-fix/$PATCH_FILE_NAME" # Print instructions to job output -- GitLab From a4d8fe7090b4883f4c2f2ea906db6889ffa5d2aa Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 14:46:29 +0100 Subject: [PATCH 380/479] Another attempt to fix issues with variable expansion --- .gitlab-ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a38a3aa41a..6f782de96e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -406,15 +406,16 @@ clang-format-check: - .rules-merge-request variables: ARTIFACT_BASE_NAME: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--formatting-fix" - INSTRUCTIONS_GITLAB: "To fix formatting issues:\n + PATCH_FILE_NAME: '"$ARTIFACT_BASE_NAME".patch' + INSTRUCTIONS_GITLAB: 'To fix formatting issues:\n - download the diff patch available as artifact of this job\n - unzip the artifact and place the patch file in the root directory of your local IVAS repo\n - - run: git apply $PATCH_FILE_NAME\n - - commit new changes" - INSTRUCTIONS_README: "To fix formatting issues:\n + - run: git apply "$PATCH_FILE_NAME"\n + - commit new changes' + INSTRUCTIONS_README: 'To fix formatting issues:\n - place the patch file in the root directory of your local IVAS repo\n - - run: git apply $PATCH_FILE_NAME\n - - commit new changes" + - run: git apply "$PATCH_FILE_NAME"\n + - commit new changes' stage: validate needs: [] timeout: "5 minutes" @@ -423,7 +424,6 @@ clang-format-check: - if [ $format_problems == 0 ] ; then exit 0; fi - mkdir tmp-formatting-fix - - PATCH_FILE_NAME="$ARTIFACT_BASE_NAME.patch" # Must be assigned here so that all variables get expanded - git diff > "tmp-formatting-fix/$PATCH_FILE_NAME" # Print instructions to job output -- GitLab From 55ec5cbb61e38510e7d6be20addc2a63ba88dd4a Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 14:49:31 +0100 Subject: [PATCH 381/479] Another attempt to get quotes right --- .gitlab-ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6f782de96e..76f21a14d0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -407,15 +407,15 @@ clang-format-check: variables: ARTIFACT_BASE_NAME: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--formatting-fix" PATCH_FILE_NAME: '"$ARTIFACT_BASE_NAME".patch' - INSTRUCTIONS_GITLAB: 'To fix formatting issues:\n + INSTRUCTIONS_GITLAB: "To fix formatting issues:\n - download the diff patch available as artifact of this job\n - unzip the artifact and place the patch file in the root directory of your local IVAS repo\n - - run: git apply "$PATCH_FILE_NAME"\n - - commit new changes' - INSTRUCTIONS_README: 'To fix formatting issues:\n + - run: git apply $PATCH_FILE_NAME\n + - commit new changes" + INSTRUCTIONS_README: "To fix formatting issues:\n - place the patch file in the root directory of your local IVAS repo\n - - run: git apply "$PATCH_FILE_NAME"\n - - commit new changes' + - run: git apply $PATCH_FILE_NAME\n + - commit new changes" stage: validate needs: [] timeout: "5 minutes" -- GitLab From 728e81263b55c031fe6b2bca88d9a6dd47f102e4 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 14:58:12 +0100 Subject: [PATCH 382/479] Remove one nesting level from variables --- .gitlab-ci.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 76f21a14d0..fb7b1d0919 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -406,16 +406,15 @@ clang-format-check: - .rules-merge-request variables: ARTIFACT_BASE_NAME: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--formatting-fix" - PATCH_FILE_NAME: '"$ARTIFACT_BASE_NAME".patch' - INSTRUCTIONS_GITLAB: "To fix formatting issues:\n + INSTRUCTIONS_GITLAB: 'To fix formatting issues:\n - download the diff patch available as artifact of this job\n - unzip the artifact and place the patch file in the root directory of your local IVAS repo\n - - run: git apply $PATCH_FILE_NAME\n - - commit new changes" - INSTRUCTIONS_README: "To fix formatting issues:\n + - run: git apply "$ARTIFACT_BASE_NAME".patch\n + - commit new changes' + INSTRUCTIONS_README: 'To fix formatting issues:\n - place the patch file in the root directory of your local IVAS repo\n - - run: git apply $PATCH_FILE_NAME\n - - commit new changes" + - run: git apply "$ARTIFACT_BASE_NAME".patch\n + - commit new changes' stage: validate needs: [] timeout: "5 minutes" @@ -424,7 +423,7 @@ clang-format-check: - if [ $format_problems == 0 ] ; then exit 0; fi - mkdir tmp-formatting-fix - - git diff > "tmp-formatting-fix/$PATCH_FILE_NAME" + - git diff > "tmp-formatting-fix/$ARTIFACT_BASE_NAME".patch" # Print instructions to job output - echo -e "$INSTRUCTIONS_GITLAB" -- GitLab From 185466b10bdce82877296edbae6e190313bc25c6 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 15:01:03 +0100 Subject: [PATCH 383/479] Fix stray double-quote --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fb7b1d0919..2aabe3e63a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -423,7 +423,7 @@ clang-format-check: - if [ $format_problems == 0 ] ; then exit 0; fi - mkdir tmp-formatting-fix - - git diff > "tmp-formatting-fix/$ARTIFACT_BASE_NAME".patch" + - git diff > "tmp-formatting-fix/$ARTIFACT_BASE_NAME.patch" # Print instructions to job output - echo -e "$INSTRUCTIONS_GITLAB" -- GitLab From f20b379cbeaaf7ac960ecf8610f8a040e88f1f8d Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 2 Nov 2022 15:19:22 +0100 Subject: [PATCH 384/479] do not allocate PLCinfo struct in IVAS modes --- lib_com/options.h | 1 + lib_dec/init_dec.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 9bdbbc81aa..28149aafa5 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -153,6 +153,7 @@ #define FIX_I173_I174 /* Issues 173 and 174: Remove frame and subframe index from ISm metadata and headtracking respectively. */ #define FIX_TCX_DEC_RECONF_BFI #define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ +#define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 4f022e2811..278f8c2d5a 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -661,7 +661,11 @@ ivas_error init_decoder( * Mode 2 initialization *-----------------------------------------------------------------*/ +#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS + if ( st->element_mode == EVS_MONO ) +#else if ( idchan == 0 && st->element_mode != IVAS_CPE_MDCT ) +#endif { if ( ( st->hPlcInfo = (T_PLCInfo_HANDLE) count_malloc( sizeof( T_PLCInfo ) ) ) == NULL ) { -- GitLab From 430a97342ebd173e00471914c0d9743f8d962fd9 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 15:27:36 +0100 Subject: [PATCH 385/479] Try to set variables within the script --- .gitlab-ci.yml | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2aabe3e63a..0d1919af1b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -406,24 +406,29 @@ clang-format-check: - .rules-merge-request variables: ARTIFACT_BASE_NAME: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--formatting-fix" - INSTRUCTIONS_GITLAB: 'To fix formatting issues:\n - - download the diff patch available as artifact of this job\n - - unzip the artifact and place the patch file in the root directory of your local IVAS repo\n - - run: git apply "$ARTIFACT_BASE_NAME".patch\n - - commit new changes' - INSTRUCTIONS_README: 'To fix formatting issues:\n - - place the patch file in the root directory of your local IVAS repo\n - - run: git apply "$ARTIFACT_BASE_NAME".patch\n - - commit new changes' stage: validate needs: [] timeout: "5 minutes" script: + # Set up variables. This can't be done in the "variables" section because variables are not expanded properly there + - PATCH_FILE_NAME="$ARTIFACT_BASE_NAME".patch + - > + INSTRUCTIONS_GITLAB="To fix formatting issues: + - download the diff patch available as artifact of this job + - unzip the artifact and place the patch file in the root directory of your local IVAS repo + - run: git apply $PATCH_FILE_NAME + - commit new changes" + - > + INSTRUCTIONS_README="To fix formatting issues: + - place the patch file in the root directory of your local IVAS repo + - run: git apply $PATCH_FILE_NAME + - commit new changes" + - scripts/check-format.sh -af -p 8 || format_problems=$? - if [ $format_problems == 0 ] ; then exit 0; fi - mkdir tmp-formatting-fix - - git diff > "tmp-formatting-fix/$ARTIFACT_BASE_NAME.patch" + - git diff > "tmp-formatting-fix/$PATCH_FILE_NAME" # Print instructions to job output - echo -e "$INSTRUCTIONS_GITLAB" -- GitLab From 3d2067fa27983d4e42550e799f32f2e4c0e24516 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Wed, 2 Nov 2022 15:30:18 +0100 Subject: [PATCH 386/479] Re-introduce newlines --- .gitlab-ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0d1919af1b..627c46da15 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -413,15 +413,15 @@ clang-format-check: # Set up variables. This can't be done in the "variables" section because variables are not expanded properly there - PATCH_FILE_NAME="$ARTIFACT_BASE_NAME".patch - > - INSTRUCTIONS_GITLAB="To fix formatting issues: - - download the diff patch available as artifact of this job - - unzip the artifact and place the patch file in the root directory of your local IVAS repo - - run: git apply $PATCH_FILE_NAME + INSTRUCTIONS_GITLAB="To fix formatting issues:\n + - download the diff patch available as artifact of this job\n + - unzip the artifact and place the patch file in the root directory of your local IVAS repo\n + - run: git apply $PATCH_FILE_NAME\n - commit new changes" - > - INSTRUCTIONS_README="To fix formatting issues: - - place the patch file in the root directory of your local IVAS repo - - run: git apply $PATCH_FILE_NAME + INSTRUCTIONS_README="To fix formatting issues:\n + - place the patch file in the root directory of your local IVAS repo\n + - run: git apply $PATCH_FILE_NAME\n - commit new changes" - scripts/check-format.sh -af -p 8 || format_problems=$? -- GitLab From c989e5df084115413d4cbbebdccef5383bd1a8c1 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Wed, 2 Nov 2022 15:30:19 +0100 Subject: [PATCH 387/479] remove redundant dependencies --- lib_rend/ivas_crend.c | 1 - lib_rend/ivas_lib_rend_internal.h | 1 - 2 files changed, 2 deletions(-) diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index 0f27efc55c..c87a61e44f 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -30,7 +30,6 @@ *******************************************************************************************************/ -#include "common_api_types.h" #include #include #include "options.h" diff --git a/lib_rend/ivas_lib_rend_internal.h b/lib_rend/ivas_lib_rend_internal.h index fb53d22a59..117d492d17 100644 --- a/lib_rend/ivas_lib_rend_internal.h +++ b/lib_rend/ivas_lib_rend_internal.h @@ -1,4 +1,3 @@ -#include "common_api_types.h" #include "ivas_error.h" #include "lib_rend.h" #include "ivas_stat_dec.h" -- GitLab From e37facbfd0af74a7ea5ec1f6135219867e551338 Mon Sep 17 00:00:00 2001 From: kiene Date: Wed, 2 Nov 2022 15:45:57 +0100 Subject: [PATCH 388/479] only copy from buffer if it was written to before --- lib_com/options.h | 1 + lib_dec/ivas_post_proc.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 9bdbbc81aa..8c9e60ab79 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -153,6 +153,7 @@ #define FIX_I173_I174 /* Issues 173 and 174: Remove frame and subframe index from ISm metadata and headtracking respectively. */ #define FIX_TCX_DEC_RECONF_BFI #define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ +#define FIX_MSAN_ERROR_STEREO_RATE_SWITCHING /* addresses Issue 177 */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_post_proc.c b/lib_dec/ivas_post_proc.c index a295a8b2a2..b2cc27d5ef 100644 --- a/lib_dec/ivas_post_proc.c +++ b/lib_dec/ivas_post_proc.c @@ -478,7 +478,11 @@ void stereo_dft_dec_core_switching( mvr2r( output, pAp_input, st->L_frame ); } +#ifdef FIX_MSAN_ERROR_STEREO_RATE_SWITCHING + if ( st->last_core == ACELP_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) && !st->tcxonly ) /* ACELP -> TCX/HQ-Core */ +#else if ( st->last_core == ACELP_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) /* ACELP -> TCX/HQ-Core */ +#endif { mvr2r( tcx_core_buf, tmp_fade, ap_fade_len ); for ( i = 0; i < ap_fade_len; i++ ) -- GitLab From af9e776a708c36752c82ff08feabbc23b1705875 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Wed, 2 Nov 2022 22:33:33 +0100 Subject: [PATCH 389/479] added lib_rend_internal.h to MSVC project and added IVAS header --- Workspace_msvc/lib_rend.vcxproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Workspace_msvc/lib_rend.vcxproj b/Workspace_msvc/lib_rend.vcxproj index e87baf5605..c3a1268694 100644 --- a/Workspace_msvc/lib_rend.vcxproj +++ b/Workspace_msvc/lib_rend.vcxproj @@ -229,6 +229,7 @@ + -- GitLab From c671ada28040bf84fcd42075662c50f60309192c Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Wed, 2 Nov 2022 22:37:32 +0100 Subject: [PATCH 390/479] rename ConfigureConfig to InitConfig --- apps/renderer.c | 2 +- lib_rend/ivas_lib_rend_internal.h | 32 +++++++++++++++++++++++++++++++ lib_rend/lib_rend.c | 2 +- lib_rend/lib_rend.h | 2 +- 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index 88a8aa88a4..e4d6bf36d0 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -665,7 +665,7 @@ int32_t main( int32_t argc, char **argv ) } /* === Configure === */ - if ( ( error = IVAS_REND_ConfigureConfig( hIvasRend, headRotReader != NULL, args.renderConfigFilePath[0] != '\0' ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_InitConfig( hIvasRend, headRotReader != NULL, args.renderConfigFilePath[0] != '\0' ) ) != IVAS_ERR_OK ) { exit( -1 ); } diff --git a/lib_rend/ivas_lib_rend_internal.h b/lib_rend/ivas_lib_rend_internal.h index 117d492d17..773b75309b 100644 --- a/lib_rend/ivas_lib_rend_internal.h +++ b/lib_rend/ivas_lib_rend_internal.h @@ -1,3 +1,35 @@ +/****************************************************************************************************** + + (C) 2022 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange, + Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other + contributors to this repository retain full ownership rights in their respective contributions in + the software. This notice grants no license of any kind, including but not limited to patent + license, nor is any license granted by implication, estoppel or otherwise. + + Contributors are required to enter into the IVAS codec Public Collaboration agreement before making + contributions. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. + +*******************************************************************************************************/ + #include "ivas_error.h" #include "lib_rend.h" #include "ivas_stat_dec.h" diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index e6ac1967ae..eea5a0c7ea 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -2640,7 +2640,7 @@ ivas_error IVAS_REND_FeedInputObjectMetadata( return IVAS_ERR_OK; } -ivas_error IVAS_REND_ConfigureConfig( IVAS_REND_HANDLE st, +ivas_error IVAS_REND_InitConfig( IVAS_REND_HANDLE st, bool headRotationEnabled, bool rendererConfigEnabled ) { diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 7e3d07c0fd..924bc0e6fe 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -236,7 +236,7 @@ ivas_error IVAS_REND_FeedInputMasaMetadata( void* TODO ); -ivas_error IVAS_REND_ConfigureConfig( +ivas_error IVAS_REND_InitConfig( IVAS_REND_HANDLE st, /* i/o: Renderer handle */ bool headRotationEnabled, /* i : enable head rotation for binaural output, ignored for other output formats */ bool rendererConfigEnabled /* i : flag indicating if a renderer configuration file was supplied */ -- GitLab From 7a1aa576f8f9b55b914da57bb6264e508e4611d6 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Wed, 2 Nov 2022 22:41:25 +0100 Subject: [PATCH 391/479] renamed hRend to hRendCfg --- lib_rend/ivas_crend.c | 12 ++++++------ lib_rend/lib_rend.c | 22 +++++++++++----------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index c87a61e44f..ae910b1f25 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1148,7 +1148,7 @@ ivas_error ivas_rend_openCrend( CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, - RENDER_CONFIG_DATA *hRend, + RENDER_CONFIG_DATA *hRendCfg, int32_t output_Fs ) { /* TODO tmu : Based on ivas_crend_open() - could be harmonized / refactored */ @@ -1163,7 +1163,7 @@ ivas_error ivas_rend_openCrend( if ( pCrend->hHrtfCrend == NULL ) { - if ( ( error = ivas_rend_initCrend( pCrend, inConfig, outConfig, hRend, output_Fs ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_initCrend( pCrend, inConfig, outConfig, hRendCfg, output_Fs ) ) != IVAS_ERR_OK ) { return error; } @@ -1277,12 +1277,12 @@ ivas_error ivas_rend_openCrend( hCrend->hTrack = NULL; } - if ( ( hRend != NULL ) && (hRend->roomAcoustics.late_reverb_on ) ) + if ( ( hRendCfg != NULL ) && (hRendCfg->roomAcoustics.late_reverb_on ) ) { if ( ( error = ivas_reverb_open( &(hCrend->hReverb), getIvasAudioConfigFromRendAudioConfig( inConfig ), pCrend->hHrtfCrend, - hRend, + hRendCfg, output_Fs ) ) != IVAS_ERR_OK ) { @@ -1311,7 +1311,7 @@ ivas_error ivas_rend_initCrend( CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, - RENDER_CONFIG_DATA *hRend, + RENDER_CONFIG_DATA *hRendCfg, int32_t output_Fs ) { int16_t i, j, tmp; @@ -1343,7 +1343,7 @@ ivas_error ivas_rend_initCrend( /* set BRIR flag */ use_brir = false; - if ( (hRend != NULL && hRend->roomAcoustics.use_brir ) || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + if ( (hRendCfg != NULL && hRendCfg->roomAcoustics.use_brir ) || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { use_brir = true; } diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index eea5a0c7ea..3a3fb1658b 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -886,7 +886,7 @@ static ivas_error setRendInputActiveIsm( void *input, IVAS_REND_AudioConfig inConfig, IVAS_REND_InputId id, - RENDER_CONFIG_DATA *hRend ) + RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; rendering_context rendCtx; @@ -918,7 +918,7 @@ static ivas_error setRendInputActiveIsm( error = ivas_rend_openCrend( &inputIsm->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, - hRend, + hRendCfg, *rendCtx.pOutSampleRate ); } if ( error != IVAS_ERR_OK ) @@ -1429,7 +1429,7 @@ static ivas_error initMcBinauralRendering( input_mc *inputMc, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, - RENDER_CONFIG_DATA *hRend ) + RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; int32_t outSampleRate; @@ -1481,7 +1481,7 @@ static ivas_error initMcBinauralRendering( if ( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, ( inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) ? IVAS_REND_AUDIO_CONFIG_7_1_4 : inConfig, outConfig, - hRend, + hRendCfg, outSampleRate ) ) != IVAS_ERR_OK ) { return error; @@ -1550,7 +1550,7 @@ static ivas_error setRendInputActiveMc( void *input, IVAS_REND_AudioConfig inConfig, IVAS_REND_InputId id, - RENDER_CONFIG_DATA *hRend ) + RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; rendering_context rendCtx; @@ -1574,7 +1574,7 @@ static ivas_error setRendInputActiveMc( if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { - if ( ( error = initMcBinauralRendering( inputMc, inConfig, outConfig, hRend ) ) != IVAS_ERR_OK ) + if ( ( error = initMcBinauralRendering( inputMc, inConfig, outConfig, hRendCfg ) ) != IVAS_ERR_OK ) { return error; } @@ -1698,7 +1698,7 @@ static ivas_error initSbaPanGainsForSbaOut( input_sba *inputSba, IVAS_REND_Audio return error; } -static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig outConfig, RENDER_CONFIG_DATA *hRend ) +static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig outConfig, RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; IVAS_REND_AudioConfig inConfig; @@ -1725,7 +1725,7 @@ static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig error = ivas_rend_openCrend( &inputSba->crendWrapper, inConfig, outConfig, - hRend, + hRendCfg, *rendCtx.pOutSampleRate ); break; case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: @@ -1736,7 +1736,7 @@ static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig error = ivas_rend_openCrend( &inputSba->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, - hRend, + hRendCfg, *rendCtx.pOutSampleRate ); break; default: @@ -1759,7 +1759,7 @@ static ivas_error setRendInputActiveSba( void *input, IVAS_REND_AudioConfig inConfig, IVAS_REND_InputId id, - RENDER_CONFIG_DATA *hRend ) + RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; rendering_context rendCtx; @@ -1775,7 +1775,7 @@ static ivas_error setRendInputActiveSba( inputSba->crendWrapper = defaultCrendWrapper(); initRotGains( inputSba->rot_gains_prev ); - if ( ( error = updateSbaPanGains( inputSba, outConfig, hRend ) ) != IVAS_ERR_OK ) + if ( ( error = updateSbaPanGains( inputSba, outConfig, hRendCfg ) ) != IVAS_ERR_OK ) { return error; } -- GitLab From e8691f0132194a3a1d4b1354aa06c205c3182d80 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Wed, 2 Nov 2022 22:45:05 +0100 Subject: [PATCH 392/479] cosmetics --- apps/renderer.c | 8 ++++---- lib_rend/lib_rend.c | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index e4d6bf36d0..5345c938ca 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -678,25 +678,25 @@ int32_t main( int32_t argc, char **argv ) if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { fprintf( stderr, "\nExternal Renderer Config is supported only when BINAURAL_ROOM is used as output. Exiting. \n" ); - exit( -1 ); // goto cleanup; + exit( -1 ); } if ( ( error = IVAS_REND_GetRenderConfig( hIvasRend, &renderConfig ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_DEC_GetRenderConfig failed\n" ); - exit( -1 ); // goto cleanup; + exit( -1 ); } if ( RenderConfigReader_read( renderConfigReader, &renderConfig ) != IVAS_ERR_OK ) { fprintf( stderr, "Failed to read renderer configuration from file %s\n", args.renderConfigFilePath ); - exit( -1 ); // goto cleanup; + exit( -1 ); } if ( ( error = IVAS_REND_FeedRenderConfig( hIvasRend, renderConfig ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_DEC_FeedRenderConfig failed\n" ); - exit( -1 ); // goto cleanup; + exit( -1 ); } } diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 3a3fb1658b..aa3fb2599f 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -2670,7 +2670,7 @@ ivas_error IVAS_REND_InitConfig( IVAS_REND_HANDLE st, } int16_t IVAS_REND_GetRenderConfig( - IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ + IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ const IVAS_RENDER_CONFIG_HANDLE hRCout /* o : Render configuration handle */ ) { @@ -2712,7 +2712,7 @@ int16_t IVAS_REND_GetRenderConfig( int16_t IVAS_REND_FeedRenderConfig( - IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ + IVAS_REND_HANDLE hIvasRend, /* i/o: IVAS decoder handle */ const IVAS_RENDER_CONFIG_DATA renderConfig /* i : Render configuration struct */ ) { -- GitLab From b45c0e3f9794495ceff6b34585dee4dd4a499eaf Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Wed, 2 Nov 2022 22:47:51 +0100 Subject: [PATCH 393/479] pacifying compiler --- apps/renderer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/renderer.c b/apps/renderer.c index 5345c938ca..05de0db262 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -2214,7 +2214,7 @@ static void convert_backslash( char *str ) int32_t i, len; /* check that all backslashes are correct on the given platform */ - len = strlen( str ); + len = (int32_t) strlen( str ); for ( i = 0; i < len; i++ ) { -- GitLab From 35faa10618078bae4e9be2afcdc5c1b5193c8738 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 11:22:51 +1100 Subject: [PATCH 394/479] Fix memory leak with binaural and binaural room output --- lib_debug/mem_count.c | 2 +- lib_dec/ivas_sba_dec.c | 44 ++++++++++++++++++++++++++++++++++++------ 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/lib_debug/mem_count.c b/lib_debug/mem_count.c index 02ec086f10..ca4832399f 100644 --- a/lib_debug/mem_count.c +++ b/lib_debug/mem_count.c @@ -94,7 +94,7 @@ typedef INT64 int64_t; /* This is the maximum number of allocations for which to keep information. It can be increased if required. */ #ifdef SBA_BR_SWITCHING -#define MAX_INFO_RECORDS 5000 +#define MAX_INFO_RECORDS 8000 #else #define MAX_INFO_RECORDS 3000 #endif diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 564abeee6a..3d09b77903 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -364,8 +364,8 @@ ivas_error ivas_sba_dec_reinit( hDecoderConfig->last_ivas_total_brate = ivas_total_brate; /*------------------------------------------------------------------------------------------* - * Closing Decoder handles before Reinitialisation - *------------------------------------------------------------------------------------------*/ + * Closing Decoder handles before Reinitialisation + *------------------------------------------------------------------------------------------*/ /* Qmetadata handle */ ivas_qmetadata_close( &st_ivas->hQMetaData ); @@ -526,14 +526,42 @@ ivas_error ivas_sba_dec_reinit( } } + /*------------------------------------------------------------------------------------------* + * Reopening Decoder handles for Reinitialisation + *------------------------------------------------------------------------------------------*/ + + /* Allocate and initialize Custom loudspeaker layout handle */ + if ( st_ivas->hDecoderConfig->Opt_LsCustom ) + { + if ( ( error = ivas_ls_custom_open( &( st_ivas->hLsSetupCustom ) ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + /* Allocate and initialize Head-Tracking handle */ + if ( st_ivas->hDecoderConfig->Opt_Headrotation ) + { + if ( ( error = ivas_headTrack_open( &( st_ivas->hHeadTrackData ) ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + /* Allocate HRTF binary handle */ + if ( st_ivas->hDecoderConfig->Opt_HRTF_binary ) + { + if ( ( error = ivas_HRTF_binary_open( &( st_ivas->hHrtfTD ) ) ) != IVAS_ERR_OK ) + { + return error; + } + } + st_ivas->sba_dirac_stereo_flag = 0; /*Reconfigure output paramaters*/ ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); ivas_renderer_select( st_ivas ); ivas_output_init( &( st_ivas->hIntSetup ), st_ivas->intern_config ); - /*------------------------------------------------------------------------------------------* - * Reopening Decoder handles for Reinitialisation - *------------------------------------------------------------------------------------------*/ if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { return error; @@ -577,7 +605,7 @@ ivas_error ivas_sba_dec_reinit( st_ivas->hSpar->enc_param_start_band = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); - ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, ( int16_t )( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), + ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, (int16_t) ( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); } } @@ -711,6 +739,10 @@ ivas_error ivas_sba_dec_reinit( { return error; } + if ( ivas_render_config_init_from_rom( &st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_BINAURAL_ROOM ) != IVAS_ERR_OK ) + { + return IVAS_ERR_INTERNAL_FATAL; + } } if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) { -- GitLab From 80cdfd71d8505159435953ecfd2c4b91815fc1a8 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 12:05:09 +1100 Subject: [PATCH 395/479] Fix a bad merge --- lib_enc/ivas_spar_md_enc.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index d459b5b3cf..4bd23dee47 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -317,9 +317,6 @@ static ivas_error ivas_spar_md_enc_init( float PR_minmax[2]; int16_t num_channels, i, j, k; -#ifdef SBA_HOA_HBR_IMPROV - hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); -#endif num_channels = ivas_sba_get_nchan_metadata( sba_order ); table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); -- GitLab From bd8dcf588925f2747c38fabbe4742b20f3f8ecc5 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 12:06:54 +1100 Subject: [PATCH 396/479] Fix a bad merge part 2 --- lib_dec/ivas_spar_md_dec.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 024a1083b8..5d39aee9a0 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -434,10 +434,6 @@ ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels /* i : number of internal channels */ -#ifdef SBA_HOA_HBR_IMPROV - , - const int16_t sba_order /* i : SBA order */ -#endif ) { int16_t i, j, k; @@ -446,7 +442,6 @@ ivas_error ivas_spar_md_dec_init( hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? - hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, -- GitLab From f018c908584760fac24208ee5c3d05f3f22175ce Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 12:36:24 +1100 Subject: [PATCH 397/479] Remove additional self_tests to prepare to push only C changes first --- scripts/config/self_test.prm | 15 --------------- scripts/switchPaths/sw_13k2_192k_50fr.bin | 3 --- scripts/switchPaths/sw_16k4_512k_50fr.bin | 3 --- 3 files changed, 21 deletions(-) delete mode 100644 scripts/switchPaths/sw_13k2_192k_50fr.bin delete mode 100644 scripts/switchPaths/sw_16k4_512k_50fr.bin diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index fda5d04295..470b649ce0 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -585,21 +585,6 @@ ../IVAS_cod -sba 3 512000 48 testv/stv3OA48c.pcm bit ../IVAS_dec binaural 48 bit testv/stv3OA48c.pcm_SBA_512000_48-48_binaural.tst -// SBA FOA bitrate switching from 16.4 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out -../IVAS_cod -sba 1 ../scripts/switchPaths/sw_16k4_512k_50fr.bin 48 testv/stvFOA48c.pcm bit -../IVAS_dec FOA 48 bit testv/stvFOA48c.pcm_sw_48-48_FOA.tst - -// SBA FOA bitrate switching from 13.2 kbps to 192 kbps, 48kHz in, 48kHz out, BINAURAL out -../IVAS_cod -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 48 testv/stvFOA48c.pcm bit -../IVAS_dec BINAURAL 48 bit testv/stvFOA48c.pcm_sw_48-48_BINAURAL.tst - -// SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3 out -../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.pcm bit -../IVAS_dec HOA3 48 bit testv/stv3OA48c.pcm_sw_48-48_HOA3.tst - -// SBA 3OA bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, 7_1_4 out -../IVAS_cod -sba 3 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stvFOA48c.pcm bit -../IVAS_dec 7_1_4 48 bit testv/stvFOA48c.pcm_sw_48-48_7_1_4.tst // MASA 1dir 1TC at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out ../IVAS_cod -masa 1 testv/stv_IVASMASA_1dir1TC.met 13200 48 testv/stv_IVASMASA_1dir1TC.pcm bit diff --git a/scripts/switchPaths/sw_13k2_192k_50fr.bin b/scripts/switchPaths/sw_13k2_192k_50fr.bin deleted file mode 100644 index cd833ebd24..0000000000 --- a/scripts/switchPaths/sw_13k2_192k_50fr.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:58b5dfb78c283c6d9d5f52502a695c1f9e9e62589507736af5667e00dac4a890 -size 3996 diff --git a/scripts/switchPaths/sw_16k4_512k_50fr.bin b/scripts/switchPaths/sw_16k4_512k_50fr.bin deleted file mode 100644 index 6f57a5afe8..0000000000 --- a/scripts/switchPaths/sw_16k4_512k_50fr.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8abe2e5fb8110fa5f79f8df67986f4ac00809db9b7c19b9824a520a437b00250 -size 3996 -- GitLab From f9ecf82ff0c80db026ebcc371720e41cc9e8a883 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 12:54:53 +1100 Subject: [PATCH 398/479] Re-add self test --- scripts/config/self_test.prm | 15 +++++++++++++++ scripts/switchPaths/sw_13k2_192k_50fr.bin | 3 +++ scripts/switchPaths/sw_16k4_512k_50fr.bin | 3 +++ 3 files changed, 21 insertions(+) create mode 100644 scripts/switchPaths/sw_13k2_192k_50fr.bin create mode 100644 scripts/switchPaths/sw_16k4_512k_50fr.bin diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 470b649ce0..fda5d04295 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -585,6 +585,21 @@ ../IVAS_cod -sba 3 512000 48 testv/stv3OA48c.pcm bit ../IVAS_dec binaural 48 bit testv/stv3OA48c.pcm_SBA_512000_48-48_binaural.tst +// SBA FOA bitrate switching from 16.4 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -sba 1 ../scripts/switchPaths/sw_16k4_512k_50fr.bin 48 testv/stvFOA48c.pcm bit +../IVAS_dec FOA 48 bit testv/stvFOA48c.pcm_sw_48-48_FOA.tst + +// SBA FOA bitrate switching from 13.2 kbps to 192 kbps, 48kHz in, 48kHz out, BINAURAL out +../IVAS_cod -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 48 testv/stvFOA48c.pcm bit +../IVAS_dec BINAURAL 48 bit testv/stvFOA48c.pcm_sw_48-48_BINAURAL.tst + +// SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3 out +../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.pcm bit +../IVAS_dec HOA3 48 bit testv/stv3OA48c.pcm_sw_48-48_HOA3.tst + +// SBA 3OA bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -sba 3 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stvFOA48c.pcm bit +../IVAS_dec 7_1_4 48 bit testv/stvFOA48c.pcm_sw_48-48_7_1_4.tst // MASA 1dir 1TC at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out ../IVAS_cod -masa 1 testv/stv_IVASMASA_1dir1TC.met 13200 48 testv/stv_IVASMASA_1dir1TC.pcm bit diff --git a/scripts/switchPaths/sw_13k2_192k_50fr.bin b/scripts/switchPaths/sw_13k2_192k_50fr.bin new file mode 100644 index 0000000000..cd833ebd24 --- /dev/null +++ b/scripts/switchPaths/sw_13k2_192k_50fr.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58b5dfb78c283c6d9d5f52502a695c1f9e9e62589507736af5667e00dac4a890 +size 3996 diff --git a/scripts/switchPaths/sw_16k4_512k_50fr.bin b/scripts/switchPaths/sw_16k4_512k_50fr.bin new file mode 100644 index 0000000000..6f57a5afe8 --- /dev/null +++ b/scripts/switchPaths/sw_16k4_512k_50fr.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8abe2e5fb8110fa5f79f8df67986f4ac00809db9b7c19b9824a520a437b00250 +size 3996 -- GitLab From 3f3a1e90d501ecc30fee874d9756952a167f8b02 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 13:26:23 +1100 Subject: [PATCH 399/479] Tiny bug fix and editorial change which should be BE --- lib_com/ivas_spar_com.c | 2 +- lib_enc/ivas_spar_md_enc.c | 17 +++++------------ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index fa5e65460e..630497e14c 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -2131,7 +2131,7 @@ void ivas_spar_set_bitrate_config( ivas_total_brate = ivas_spar_br_table_consts[table_idx].ivas_total_brate; sba_order = ivas_spar_br_table_consts[table_idx].sba_order; - ivas_get_spar_table_idx( ivas_total_brate, sba_order, ivas_spar_br_table_consts[table_idx].bwidth, &code, &length ); + ivas_get_spar_table_idx( ivas_total_brate, sba_order, ivas_spar_br_table_consts[table_idx].bwidth, &length, &code ); for ( i = 0; i < pSpar_md_cfg->nchan_transport; i++ ) { diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 4bd23dee47..cf71589fb3 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -601,24 +601,17 @@ ivas_error ivas_spar_md_enc_process( for ( j = 0; j < nchan_inp; j++ ) { cov_real[i][j] = cov_dtx_real[i][j]; - for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) - { - cov_real[i][j][k] = 0; - } } } } - else + + for ( i = 0; i < nchan_inp; i++ ) { - for ( i = 0; i < nchan_inp; i++ ) + for ( j = 0; j < nchan_inp; j++ ) { - for ( j = 0; j < nchan_inp; j++ ) + for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) { - cov_real[i][j] = cov_real[i][j]; - for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) - { - cov_real[i][j][k] = 0; - } + cov_real[i][j][k] = 0; } } } -- GitLab From aa52d718e31148f2195abdbf7c6a627003afd411 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 13:32:28 +1100 Subject: [PATCH 400/479] Sigh, remnants of the bad merge are still there --- lib_dec/ivas_spar_decoder.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 4bd12a921a..444a14457e 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -659,12 +659,7 @@ static void ivas_spar_dec_MD( hSpar->hMdDec->table_idx = table_idx; hSpar->hTdDecorr->ducking_flag = ivas_spar_br_table_consts[table_idx].td_ducking; - ivas_spar_md_dec_init( hSpar->hMdDec, hDecoderConfig, num_channels -#ifdef SBA_HOA_HBR_IMPROV - , - sba_order -#endif - ); + ivas_spar_md_dec_init( hSpar->hMdDec, hDecoderConfig, num_channels ); } } -- GitLab From 6f58a3371acb66da7990ebcbcff9619ffe7def71 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 13:34:34 +1100 Subject: [PATCH 401/479] There is even more remnants! Hopefully this is the last one --- lib_com/ivas_prot.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index c488b6260c..40bec75984 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4007,10 +4007,6 @@ ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels /* i : number of internal channels */ -#ifdef SBA_HOA_HBR_IMPROV - , - const int16_t sba_order /* i : SBA order */ -#endif ); void ivas_spar_md_dec_process( -- GitLab From 21f6a20e6e9929e2822dd725db388e2a35d570dd Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 15:28:11 +1100 Subject: [PATCH 402/479] Sorry, I got very confused. Those "bad" merges were indeed fine and were new to this branch. Added them back in. --- lib_com/ivas_prot.h | 3 ++- lib_dec/ivas_spar_decoder.c | 2 +- lib_dec/ivas_spar_md_dec.c | 11 ++++++----- lib_enc/ivas_spar_md_enc.c | 1 + 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 40bec75984..7c43565510 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4006,7 +4006,8 @@ void ivas_spar_get_parameters( ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ - const int16_t num_channels /* i : number of internal channels */ + const int16_t num_channels, /* i : number of internal channels */ + const int16_t sba_order /* i : SBA order */ ); void ivas_spar_md_dec_process( diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 444a14457e..116d1f1926 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -659,7 +659,7 @@ static void ivas_spar_dec_MD( hSpar->hMdDec->table_idx = table_idx; hSpar->hTdDecorr->ducking_flag = ivas_spar_br_table_consts[table_idx].td_ducking; - ivas_spar_md_dec_init( hSpar->hMdDec, hDecoderConfig, num_channels ); + ivas_spar_md_dec_init( hSpar->hMdDec, hDecoderConfig, num_channels, sba_order ); } } diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 5d39aee9a0..e9f4b5b2e6 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -249,9 +249,8 @@ static ivas_error ivas_spar_md_dec_matrix_open( ivas_error ivas_spar_md_dec_open( ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ - const int16_t num_channels /* i : number of internal channels */ - , - const int16_t sba_order /* i : SBA order */ + const int16_t num_channels, /* i : number of internal channels */ + const int16_t sba_order /* i : SBA order */ ) { ivas_spar_md_dec_state_t *hMdDec; @@ -272,7 +271,7 @@ ivas_error ivas_spar_md_dec_open( hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); hMdDec->table_idx = 0; /* just to initialize state variables*/ - if ( ( error = ivas_spar_md_dec_init( hMdDec, hDecoderConfig, num_channels ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_dec_init( hMdDec, hDecoderConfig, num_channels, sba_order ) ) != IVAS_ERR_OK ) { return error; } @@ -433,7 +432,8 @@ void ivas_spar_md_dec_close( ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ - const int16_t num_channels /* i : number of internal channels */ + const int16_t num_channels, /* i : number of internal channels */ + const int16_t sba_order /* i : SBA order */ ) { int16_t i, j, k; @@ -442,6 +442,7 @@ ivas_error ivas_spar_md_dec_init( hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? + hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index cf71589fb3..cd78eb65dc 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -317,6 +317,7 @@ static ivas_error ivas_spar_md_enc_init( float PR_minmax[2]; int16_t num_channels, i, j, k; + hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); num_channels = ivas_sba_get_nchan_metadata( sba_order ); table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); -- GitLab From 1b8d42095f16b9e1209acb0ff1ac2f715beef337 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 15:34:59 +1100 Subject: [PATCH 403/479] Algin the */ in the comments --- lib_com/ivas_prot.h | 2 +- lib_dec/ivas_spar_md_dec.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 7c43565510..39d9d237c0 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4007,7 +4007,7 @@ ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels, /* i : number of internal channels */ - const int16_t sba_order /* i : SBA order */ + const int16_t sba_order /* i : SBA order */ ); void ivas_spar_md_dec_process( diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index e9f4b5b2e6..3ed2e252fd 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -250,7 +250,7 @@ ivas_error ivas_spar_md_dec_open( ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels, /* i : number of internal channels */ - const int16_t sba_order /* i : SBA order */ + const int16_t sba_order /* i : SBA order */ ) { ivas_spar_md_dec_state_t *hMdDec; @@ -433,7 +433,7 @@ ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels, /* i : number of internal channels */ - const int16_t sba_order /* i : SBA order */ + const int16_t sba_order /* i : SBA order */ ) { int16_t i, j, k; -- GitLab From a93655da922e1370a84b4bdc2ad287e198e446fc Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 16:00:20 +1100 Subject: [PATCH 404/479] Remove setting spar_hoa_md_flag in open function since it is done within init --- lib_dec/ivas_spar_md_dec.c | 1 - lib_enc/ivas_spar_md_enc.c | 2 -- 2 files changed, 3 deletions(-) diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 3ed2e252fd..b345674c99 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -268,7 +268,6 @@ ivas_error ivas_spar_md_dec_open( return error; } - hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); hMdDec->table_idx = 0; /* just to initialize state variables*/ if ( ( error = ivas_spar_md_dec_init( hMdDec, hDecoderConfig, num_channels, sba_order ) ) != IVAS_ERR_OK ) diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index cd78eb65dc..1fa39f13bf 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -121,8 +121,6 @@ ivas_error ivas_spar_md_enc_open( num_channels = 2 * sba_order + 2; - hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); - if ( ( hMdEnc->spar_md.band_coeffs = (ivas_band_coeffs_t *) count_malloc( IVAS_MAX_NUM_BANDS * sizeof( ivas_band_coeffs_t ) ) ) == NULL ) { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for band_coeffs in SPAR MD" ); -- GitLab From f358b4cce0738db21f69533c90b756bc4cd6194b Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 3 Nov 2022 10:17:13 +0100 Subject: [PATCH 405/479] removal of unnecessary assignment and one sanity condition (before the parameter `st->hPlcInfo->concealment_method` was uninitialized) --- lib_dec/dec_tcx.c | 4 ++++ lib_dec/init_dec.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index 904e117851..20e4dedbe3 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -152,7 +152,11 @@ void decoder_tcx_post( if ( bfi && !st->use_partial_copy ) { /* run lpc gain compensation not for waveform adjustment */ +#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS + if ( !st->enablePlcWaveadjust || ( st->hPlcInfo != NULL && st->hPlcInfo->concealment_method == TCX_TONAL ) ) +#else if ( !st->enablePlcWaveadjust || st->hPlcInfo->concealment_method == TCX_TONAL ) +#endif { float gainHelperFB = hTcxDec->gainHelper; float stepCompensateFB = hTcxDec->stepCompensate * st->L_frame / hTcxDec->L_frameTCX; diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 278f8c2d5a..4b74ccebb9 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -689,8 +689,9 @@ ivas_error init_decoder( st->hTECDec = NULL; } +#ifndef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS // the initialziation is done in open_decoder_LPD() st->enablePlcWaveadjust = 0; - +#endif /* Init Core Decoder */ open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, st->element_mode, 1 ); -- GitLab From f8b67dce4f68da105e3f15f704d386a0cb0ca196 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 3 Nov 2022 10:43:17 +0100 Subject: [PATCH 406/479] Issue 62: lower agc_com.winFunc memory consumption; under FIX_AGC_WINFUNC_MEMORY --- lib_com/options.h | 2 ++ lib_dec/ivas_agc_dec.c | 15 +++++++++++++++ lib_enc/ivas_agc_enc.c | 15 +++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 8c9e60ab79..f0801028cb 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -155,6 +155,8 @@ #define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ #define FIX_MSAN_ERROR_STEREO_RATE_SWITCHING /* addresses Issue 177 */ +#define FIX_AGC_WINFUNC_MEMORY /* Issue 62: lower agc_com.winFunc memory consumption */ + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_dec/ivas_agc_dec.c b/lib_dec/ivas_agc_dec.c index 81039651d8..e522574bb2 100644 --- a/lib_dec/ivas_agc_dec.c +++ b/lib_dec/ivas_agc_dec.c @@ -98,7 +98,11 @@ ivas_error ivas_spar_agc_dec_open( ) { ivas_agc_dec_state_t *hAgc; +#ifdef FIX_AGC_WINFUNC_MEMORY + int16_t output_frame, delay; +#else int16_t output_frame; +#endif if ( ( hAgc = (ivas_agc_dec_state_t *) count_malloc( sizeof( ivas_agc_dec_state_t ) ) ) == NULL ) { @@ -106,8 +110,15 @@ ivas_error ivas_spar_agc_dec_open( } output_frame = (int16_t) ( output_Fs / FRAMES_PER_SEC ); +#ifdef FIX_AGC_WINFUNC_MEMORY + delay = NS2SA( output_Fs, ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) ); +#endif +#ifdef FIX_AGC_WINFUNC_MEMORY + if ( ( hAgc->agc_com.winFunc = (float *) count_malloc( sizeof( float ) * ( output_frame - delay ) ) ) == NULL ) +#else if ( ( hAgc->agc_com.winFunc = (float *) count_malloc( sizeof( float ) * output_frame ) ) == NULL ) +#endif { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for AGC decoder" ); } @@ -122,7 +133,11 @@ ivas_error ivas_spar_agc_dec_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for AGC decoder" ); } +#ifdef FIX_AGC_WINFUNC_MEMORY + ivas_agc_dec_init( hAgc, output_frame, delay ); +#else ivas_agc_dec_init( hAgc, output_frame, NS2SA( output_Fs, ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) ) ); +#endif *hAgcDec = hAgc; diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 53a6df3a13..b7f69b38b0 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -159,7 +159,11 @@ ivas_error ivas_spar_agc_enc_open( ) { ivas_agc_enc_state_t *hAgc; +#ifdef FIX_AGC_WINFUNC_MEMORY + int16_t input_frame, delay; +#else int16_t input_frame; +#endif if ( ( hAgc = (ivas_agc_enc_state_t *) count_malloc( sizeof( ivas_agc_enc_state_t ) ) ) == NULL ) { @@ -167,8 +171,15 @@ ivas_error ivas_spar_agc_enc_open( } input_frame = (int16_t) ( input_Fs / FRAMES_PER_SEC ); +#ifdef FIX_AGC_WINFUNC_MEMORY + delay = NS2SA( input_Fs, ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) ); +#endif +#ifdef FIX_AGC_WINFUNC_MEMORY + if ( ( hAgc->agc_com.winFunc = (float *) count_malloc( sizeof( float ) * ( input_frame - delay ) ) ) == NULL ) +#else if ( ( hAgc->agc_com.winFunc = (float *) count_malloc( sizeof( float ) * input_frame ) ) == NULL ) +#endif { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR AGC encoder" ); } @@ -183,7 +194,11 @@ ivas_error ivas_spar_agc_enc_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR AGC encoder" ); } +#ifdef FIX_AGC_WINFUNC_MEMORY + ivas_agc_enc_init( hAgc, input_frame, nchan_inp, delay ); +#else ivas_agc_enc_init( hAgc, input_frame, nchan_inp, NS2SA( input_Fs, ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) ) ); +#endif *hAgcEnc = hAgc; -- GitLab From 849eb266d417019a1bc02c608e1145dc22e93a26 Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 3 Nov 2022 21:23:28 +1100 Subject: [PATCH 407/479] Change two tests to cover 2nd order HOA and planar 3rd order HOA --- scripts/config/self_test.prm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index fda5d04295..2f14e098a2 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -585,20 +585,20 @@ ../IVAS_cod -sba 3 512000 48 testv/stv3OA48c.pcm bit ../IVAS_dec binaural 48 bit testv/stv3OA48c.pcm_SBA_512000_48-48_binaural.tst -// SBA FOA bitrate switching from 16.4 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out -../IVAS_cod -sba 1 ../scripts/switchPaths/sw_16k4_512k_50fr.bin 48 testv/stvFOA48c.pcm bit -../IVAS_dec FOA 48 bit testv/stvFOA48c.pcm_sw_48-48_FOA.tst - // SBA FOA bitrate switching from 13.2 kbps to 192 kbps, 48kHz in, 48kHz out, BINAURAL out ../IVAS_cod -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 48 testv/stvFOA48c.pcm bit ../IVAS_dec BINAURAL 48 bit testv/stvFOA48c.pcm_sw_48-48_BINAURAL.tst +// SBA 2OA bitrate switching from 16.4 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out +../IVAS_cod -sba 2 ../scripts/switchPaths/sw_16k4_512k_50fr.bin 48 testv/stvFOA48c.pcm bit +../IVAS_dec FOA 48 bit testv/stvFOA48c.pcm_sw_48-48_FOA.tst + // SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3 out ../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.pcm bit ../IVAS_dec HOA3 48 bit testv/stv3OA48c.pcm_sw_48-48_HOA3.tst -// SBA 3OA bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, 7_1_4 out -../IVAS_cod -sba 3 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stvFOA48c.pcm bit +// SBA planar 3OA bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, 7_1_4 out +../IVAS_cod -sba -3 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stvFOA48c.pcm bit ../IVAS_dec 7_1_4 48 bit testv/stvFOA48c.pcm_sw_48-48_7_1_4.tst // MASA 1dir 1TC at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out -- GitLab From 50c4a1ab9618a28890769a2e4373f4aa9dcee6c3 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 3 Nov 2022 11:40:23 +0100 Subject: [PATCH 408/479] Introduce SBA order constants: #define SBA_FOA_ORDER 1 #define SBA_HOA2_ORDER 2 #define SBA_HOA3_ORDER 3 --- lib_com/ivas_cnst.h | 5 +++++ lib_com/ivas_rom_com.c | 32 ++++++++++++++++---------------- lib_com/ivas_sba_config.c | 10 +++++----- lib_com/ivas_spar_com.c | 4 ++-- lib_dec/ivas_dirac_dec.c | 6 +++--- lib_dec/ivas_init_dec.c | 2 +- lib_dec/ivas_output_init.c | 6 +++--- lib_enc/ivas_spar_encoder.c | 2 +- lib_enc/ivas_spar_md_enc.c | 8 ++++---- lib_enc/lib_enc.c | 2 +- 10 files changed, 41 insertions(+), 36 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index dbaf718348..7051caf9a5 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -831,8 +831,13 @@ typedef enum { * SBA Constants *----------------------------------------------------------------------------------*/ +#define SBA_FOA_ORDER 1 +#define SBA_HOA2_ORDER 2 +#define SBA_HOA3_ORDER 3 + #define SBA_PLANAR_BITS 1 #define SBA_ORDER_BITS 2 + #define SBA_MIN_BRATE_HOA IVAS_256k #define SBA_NHARM_HOA3 16 #define SBA_T_DESIGN_11_SIZE 70 diff --git a/lib_com/ivas_rom_com.c b/lib_com/ivas_rom_com.c index 4169e4ee92..c843d5ddc4 100644 --- a/lib_com/ivas_rom_com.c +++ b/lib_com/ivas_rom_com.c @@ -903,57 +903,57 @@ const ivas_spar_br_table_t ivas_spar_br_table_consts[IVAS_SPAR_BR_TABLE_LEN] = { /* When AGC is ON additional (AGC_BITS_PER_CH+1) bits may be taken from each core-coder channel so minimum core-coder bitrate per channel can be min core-coder bitrates as per the table - AGC_BITS_PER_CH */ - { 24400, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{ { 16400, 14850, 24350 } }, + { 24400, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0,{ { 16400, 14850, 24350 } }, { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, - { 32000, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{ { 24000, 20450, 31950 } }, + { 32000, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0,{ { 24000, 20450, 31950 } }, { { 21, 1, 5, 1 },{ 15, 1, 5, 1 },{ 15, 1, 3, 1 } }, 0, 0, 0 }, - { 48000, 0, 1, FB, 24000, 2, WYXZ, 0, 0,{ { 24000, 21000, 31950 },{ 16000, 15000, 20400 } }, + { 48000, 0, SBA_FOA_ORDER, FB, 24000, 2, WYXZ, 0, 0,{ { 24000, 21000, 31950 },{ 16000, 15000, 20400 } }, { { 15, 7, 5, 1 },{ 15, 7, 3, 1 },{ 7, 7, 3, 1 } }, 1, 0, 0 }, - { 64000, 0, 1, FB, 24000, 2, WYXZ, 0, 0,{ { 38000, 34050, 56000 },{ 16000, 15600, 20400 } },{ { 21, 7, 5, 1 },{ 15, 7, 5, 1 },{ 15, 7, 3, 1 } }, 1, 1, 0 }, + { 64000, 0, SBA_FOA_ORDER, FB, 24000, 2, WYXZ, 0, 0,{ { 38000, 34050, 56000 },{ 16000, 15600, 20400 } },{ { 21, 7, 5, 1 },{ 15, 7, 5, 1 },{ 15, 7, 3, 1 } }, 1, 1, 0 }, - { 80000, 0, 1, FB, 24000, 2, WYXZ, 0, 0,{ { 46000, 43000, 56000 },{ 24000, 23000, 31950 } }, + { 80000, 0, SBA_FOA_ORDER, FB, 24000, 2, WYXZ, 0, 0,{ { 46000, 43000, 56000 },{ 24000, 23000, 31950 } }, { { 21, 7, 5, 1 },{ 15, 7, 5, 1 },{ 15, 7, 3, 1 } }, 1, 0, 0 }, - { 96000, 0, 1, FB, 24000, 3, WYXZ, 0, 0,{ { 47000, 42600, 56000 },{ 23000, 22600, 31950 },{ 16000, 15600, 20400 } }, + { 96000, 0, SBA_FOA_ORDER, FB, 24000, 3, WYXZ, 0, 0,{ { 47000, 42600, 56000 },{ 23000, 22600, 31950 },{ 16000, 15600, 20400 } }, { { 21, 9, 9, 1 },{ 21, 7, 5, 1 },{ 21, 7, 5, 1 } }, 1, 0, 0 }, - { 128000, 0, 1, FB, 24000, 3, WYXZ, 0, 0,{ { 55000, 50000, 56000 },{ 36000, 36000, 56000 },{ 27000, 27000, 31950 } }, + { 128000, 0, SBA_FOA_ORDER, FB, 24000, 3, WYXZ, 0, 0,{ { 55000, 50000, 56000 },{ 36000, 36000, 56000 },{ 27000, 27000, 31950 } }, { { 21, 11, 9, 1 },{ 21, 9, 7, 1 },{ 21, 7, 7, 1 } }, 1, 0, 0 }, - { 160000, 0, 1, FB, 24000, 3, WYXZ, 0, 0,{ { 74000, 70900, 112000 },{ 41000, 40050, 56000 },{ 35000, 34050, 56000 } }, + { 160000, 0, SBA_FOA_ORDER, FB, 24000, 3, WYXZ, 0, 0,{ { 74000, 70900, 112000 },{ 41000, 40050, 56000 },{ 35000, 34050, 56000 } }, { { 21, 11, 11, 1 },{ 21, 9, 9, 1 },{ 21, 7, 7, 1 } }, 1, 0, 0 }, - { 192000, 0, 1, FB, 24000, 3, WYXZ, 0, 0,{ { 90000, 87900, 112000 },{ 50000, 48050, 56000 },{ 42000, 41050, 56000 } }, + { 192000, 0, SBA_FOA_ORDER, FB, 24000, 3, WYXZ, 0, 0,{ { 90000, 87900, 112000 },{ 50000, 48050, 56000 },{ 42000, 41050, 56000 } }, { { 21, 11, 11, 1 },{ 21, 9, 9, 1 },{ 21, 7, 7, 1 } }, 1, 0, 0 }, - { 256000, 0, 1, FB, 24000, 4, WYXZ, 0, 0,{ { 90000, 85000, 112000 },{ 70000, 69000, 112000 },{ 50000, 48950, 56000 },{ 36400, 35600, 56000 } }, + { 256000, 0, SBA_FOA_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 90000, 85000, 112000 },{ 70000, 69000, 112000 },{ 50000, 48950, 56000 },{ 36400, 35600, 56000 } }, { { 31, 1, 1, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 256000, 0, 2, FB, 24000, 4, WYXZ, 0, 0,{ { 84650, 83000, 112000 },{ 65850, 64550, 56000 },{ 47000, 46100, 48000 },{ 28200, 27650, 40000 } }, + { 256000, 0, SBA_HOA2_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 84650, 83000, 112000 },{ 65850, 64550, 56000 },{ 47000, 46100, 48000 },{ 28200, 27650, 40000 } }, { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 256000, 0, 3, FB, 24000, 4, WYXZ, 0, 0,{ { 76300, 73550, 112000 },{ 59350, 57200, 56000 },{ 42400, 40850, 48000 },{ 25450, 24500, 40000 } }, + { 256000, 0, SBA_HOA3_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 76300, 73550, 112000 },{ 59350, 57200, 56000 },{ 42400, 40850, 48000 },{ 25450, 24500, 40000 } }, { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 31, 1, 1, 1 } }, 1, 2, 0 }, { 384000, 0, 1, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 100000, 100000, 128000 },{ 79850, 79850, 104000 },{ 66600, 66600, 104000 } }, // not yet optimized { { 31, 1, 1, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 384000, 0, 2, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 105350, 103300, 112000 },{ 75200, 73750, 96000 },{ 45100, 44250, 48000 } }, // just added as a place holder, not necessarily operational + { 384000, 0, SBA_HOA2_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 105350, 103300, 112000 },{ 75200, 73750, 96000 },{ 45100, 44250, 48000 } }, // just added as a place holder, not necessarily operational { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 384000, 0, 3, FB, 24000, 4, WYXZ, 0, 0,{ { 124300, 121550, 128000 },{ 96700, 94550, 112000 },{ 69050, 67500, 96000 },{ 41450, 40500, 48000 } }, // just added as a place holder, not necessarily operational + { 384000, 0, SBA_HOA3_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 124300, 121550, 128000 },{ 96700, 94550, 112000 },{ 69050, 67500, 96000 },{ 41450, 40500, 48000 } }, // just added as a place holder, not necessarily operational { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, { 512000, 0, 1, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 128000, 128000, 128000 }, {118450, 118450, 128000 } }, // not yet optimized { { 31, 1, 1, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 512000, 0, 2, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 97700, 93300, 128000 } }, // not yet optimized + { 512000, 0, SBA_HOA2_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 97700, 93300, 128000 } }, // not yet optimized { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 512000, 0, 3, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 127200, 122550, 128000 },{ 76300, 73550, 128000 } }, // not yet optimized + { 512000, 0, SBA_HOA3_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 127200, 122550, 128000 },{ 76300, 73550, 128000 } }, // not yet optimized { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, }; diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index 29c0ca6617..d94341c985 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -194,7 +194,7 @@ int16_t ivas_sba_get_analysis_order( if ( ivas_total_brate < SBA_MIN_BRATE_HOA ) { /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ - sba_analysis_order = 1; + sba_analysis_order = SBA_FOA_ORDER; } return sba_analysis_order; @@ -213,15 +213,15 @@ int16_t ivas_sba_get_order_transport( { int16_t sba_order; - sba_order = 1; + sba_order = SBA_FOA_ORDER; if ( nchan_transport > 6 ) { - sba_order = 3; + sba_order = SBA_HOA3_ORDER; } else if ( nchan_transport > 4 ) { - sba_order = 2; + sba_order = SBA_HOA2_ORDER; } return ( sba_order ); @@ -268,7 +268,7 @@ int16_t ivas_sba_get_nchan_metadata( { int16_t nb_channels; - if ( sba_order == 1 ) + if ( sba_order == SBA_FOA_ORDER ) { nb_channels = FOA_CHANNELS; } diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index ceab9dd42c..e704feb049 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -1668,7 +1668,7 @@ void ivas_get_spar_md_from_dirac( remix_order = remix_order_set[hSpar_md_cfg->remix_unmix_order]; num_ch = ivas_sba_get_nchan_metadata( order ); - hoa2_ch = ivas_sba_get_nchan_metadata( 2 ); + hoa2_ch = ivas_sba_get_nchan_metadata( SBA_HOA2_ORDER ); foa_ch = FOA_CHANNELS; diff_norm_order1 = 3.0f; diff_norm_order2 = 5.0f; @@ -1755,7 +1755,7 @@ void ivas_get_spar_md_from_dirac( int16_t num_ch_order, hoa2_ch_order; num_ch_order = ivas_sba_get_nchan( order, 0 ); - hoa2_ch_order = ivas_sba_get_nchan( 2, 0 ); + hoa2_ch_order = ivas_sba_get_nchan( SBA_HOA2_ORDER, 0 ); for ( ch = 0; ch < num_ch_order; ch++ ) { diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index ec9a712065..d7feb33256 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -234,13 +234,13 @@ ivas_error ivas_dirac_dec_config( if ( hDirAC->hOutSetup.ambisonics_order == -1 ) { - hDirAC->hOutSetup.ambisonics_order = 3; /* Order 3 is used by default in DirAC for SHD processing */ + hDirAC->hOutSetup.ambisonics_order = SBA_HOA3_ORDER; /* Order 3 is used by default in DirAC for SHD processing */ if ( hDirAC->hOutSetup.output_config == AUDIO_CONFIG_MONO || hDirAC->hOutSetup.output_config == AUDIO_CONFIG_STEREO ) { - hDirAC->hOutSetup.ambisonics_order = 1; + hDirAC->hOutSetup.ambisonics_order = SBA_FOA_ORDER; } } - else if ( hDirAC->hOutSetup.ambisonics_order >= 1 ) + else if ( hDirAC->hOutSetup.ambisonics_order >= SBA_FOA_ORDER ) { mvr2r( ls_azimuth_4d4, ls_azimuth, DIRAC_HOA_RENDERING_NUM_VIRT_DECORR_LS ); mvr2r( ls_elevation_4d4, ls_elevation, DIRAC_HOA_RENDERING_NUM_VIRT_DECORR_LS ); diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 30b96a25c8..9f05b74e34 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -410,7 +410,7 @@ static ivas_error ivas_read_format( // TBD: needs more work for HOA if ( st_ivas->sba_analysis_order == 0 ) { - st_ivas->sba_analysis_order = 1; + st_ivas->sba_analysis_order = SBA_FOA_ORDER; } if ( idx == 1 ) { diff --git a/lib_dec/ivas_output_init.c b/lib_dec/ivas_output_init.c index 3b65756ad6..005db1d4ac 100644 --- a/lib_dec/ivas_output_init.c +++ b/lib_dec/ivas_output_init.c @@ -171,13 +171,13 @@ void ivas_output_init( hOutSetup->ls_elevation = ls_elevation_CICP2; break; case AUDIO_CONFIG_FOA: - hOutSetup->ambisonics_order = 1; + hOutSetup->ambisonics_order = SBA_FOA_ORDER; break; case AUDIO_CONFIG_HOA2: - hOutSetup->ambisonics_order = 2; + hOutSetup->ambisonics_order = SBA_HOA2_ORDER; break; case AUDIO_CONFIG_HOA3: - hOutSetup->ambisonics_order = 3; + hOutSetup->ambisonics_order = SBA_HOA3_ORDER; break; case AUDIO_CONFIG_5_1: hOutSetup->num_lfe = 1; diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index acdd88ee73..00d185fe08 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -684,7 +684,7 @@ static ivas_error ivas_spar_enc_process( } else { - if ( ivas_total_brate == PCA_BRATE && sba_order == 1 ) + if ( ivas_total_brate == PCA_BRATE && sba_order == SBA_FOA_ORDER ) { /* write PCA bypass bit */ push_next_indice( hMetaData, PCA_MODE_INACTIVE, 1 ); diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index b740eb36fc..a3d9daac4e 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -611,7 +611,7 @@ ivas_error ivas_spar_md_enc_process( } } - if ( hEncoderConfig->ivas_total_brate == BRATE_SPAR_Q_STRAT && sba_order == 1 ) + if ( hEncoderConfig->ivas_total_brate == BRATE_SPAR_Q_STRAT && sba_order == SBA_FOA_ORDER ) { /* make sure that qsi is always 0 (temporary bits are '00') */ num_quant_strats = 1; @@ -893,7 +893,7 @@ ivas_error ivas_spar_md_enc_process( write_metadata_buffer( &hMetaData_tmp, hMetaData, bit_pos_start, next_ind_start, last_ind_start ); code_strat = strat; } - if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.tgt_bits_per_blk ) + if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == SBA_FOA_ORDER ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.tgt_bits_per_blk ) { packed_ok = 1; break; @@ -906,7 +906,7 @@ ivas_error ivas_spar_md_enc_process( break; } - if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.max_bits_per_blk ) + if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == SBA_FOA_ORDER ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.max_bits_per_blk ) { break; } @@ -1084,7 +1084,7 @@ ivas_error ivas_spar_md_enc_process( } #endif #ifdef DEBUG_SPAR_MD_TARGET_TUNING - int16_t md_bits = hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ); + int16_t md_bits = hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == SBA_FOA_ORDER ) ) ? 1 : 0 ); FILE *fp = fopen( "spar_md_bitrate.txt", "a" ); fprintf( fp, "%d\t %d \t %d\n", md_bits, qsi, code_strat ); diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index e25afc9fd8..61ad0586f2 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -901,7 +901,7 @@ static ivas_error configureEncoder( #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ - if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && hEncoderConfig->sba_order == 1 ) ) + if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && hEncoderConfig->sba_order == SBA_FOA_ORDER ) ) { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "PCA supported at SBA FOA 256 kbps only." ); } -- GitLab From b569f2af00d59d2d486089673eb0d101b6583638 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 3 Nov 2022 12:48:22 +0100 Subject: [PATCH 409/479] fix for not using recovery_gain anymore not completely BE, but conceptually the same, differences are small --- lib_dec/ivas_core_dec.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index e18f0e3e5d..4fbf75cf23 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -181,13 +181,28 @@ ivas_error ivas_core_dec( st->flagGuidedAcelp = 0; } +#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS + if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->hTcxDec != NULL ) + { + float gain; + + gain = st->hTcxDec->conceal_eof_gain * st->last_concealed_gain_syn_deemph; + v_multc( st->hHQ_core->old_out, gain, st->hHQ_core->old_out, st->hTcxDec->L_frameTCX ); + v_multc( st->hHQ_core->old_outLB, gain, st->hHQ_core->old_outLB, st->L_frame ); + + if ( !st->hTcxCfg->last_aldo ) + { + v_multc( st->hTcxDec->syn_OverlFB, gain, st->hTcxDec->syn_OverlFB, st->hTcxCfg->tcx_mdct_window_lengthFB ); + v_multc( st->hTcxDec->syn_Overl, gain, st->hTcxDec->syn_Overl, st->hTcxCfg->tcx_mdct_window_length ); + } + } +#else /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) ) { float gain; - gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain - : 0.0f; + gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain : 0.0f; if ( ( st->element_mode == IVAS_CPE_MDCT && hMCT == NULL ) || ( st->hPlcInfo != NULL ) ) { @@ -201,6 +216,7 @@ ivas_error ivas_core_dec( } } } +#endif set_f( voice_factors[n], 0.f, NB_SUBFR16k ); set_f( hb_synth[n], 0.0f, L_FRAME48k ); -- GitLab From 55450bd3fde3a6f9823563c28b5bf619fefa7161 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 3 Nov 2022 13:07:57 +0100 Subject: [PATCH 410/479] Fix missing renderer executable in ivas-pytest-on-merge-request job --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index df216642fe..8f2a0704b8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -53,6 +53,7 @@ stages: - make -j - mv IVAS_cod ../IVAS_cod_test - mv IVAS_dec ../IVAS_dec_test + - mv IVAS_rend .. - cd .. - rm -rf build/* -- GitLab From 980ca09dc0a3359fb1dbb31231d47053322afd79 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Thu, 3 Nov 2022 14:06:39 +0100 Subject: [PATCH 411/479] Apply formatting to make clang-format job pass --- lib_com/ivas_stereo_psychlpc_com.c | 16 ++++++++-------- lib_com/vlpc_2st_com.c | 3 +-- lib_dec/igf_dec.c | 7 +++---- lib_dec/ivas_core_dec.c | 4 ++-- lib_dec/ivas_spar_md_dec.c | 2 +- lib_dec/ivas_stereo_mdct_stereo_dec.c | 14 +++++++------- lib_enc/igf_enc.c | 6 +++--- lib_enc/ivas_agc_enc.c | 4 ++-- lib_enc/ivas_sns_enc.c | 1 - 9 files changed, 27 insertions(+), 30 deletions(-) mode change 100755 => 100644 lib_enc/igf_enc.c diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index 3cbca73cc0..8a50caaa29 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -68,14 +68,14 @@ static void SpectrumWeighting_Init( * initialize a PsychoacousticParameters structure *-------------------------------------------------------------------*/ - ivas_error - PsychoacousticParameters_Init( - const int32_t sr_core, /* i : sampling rate of core-coder */ - const int16_t nBins, /* i : Number of bins (spectral lines) */ - const int8_t nBands, /* i : Number of spectrum subbands */ - const int16_t isTCX20, /* i : Flag indicating if the subband division is for TCX20 or TCX10 */ - const int16_t isWarped, /* i : Flag indicating if the scale is linear or warped */ - PsychoacousticParameters *pPsychParams ) +ivas_error +PsychoacousticParameters_Init( + const int32_t sr_core, /* i : sampling rate of core-coder */ + const int16_t nBins, /* i : Number of bins (spectral lines) */ + const int8_t nBands, /* i : Number of spectrum subbands */ + const int16_t isTCX20, /* i : Flag indicating if the subband division is for TCX20 or TCX10 */ + const int16_t isWarped, /* i : Flag indicating if the scale is linear or warped */ + PsychoacousticParameters *pPsychParams ) { if ( pPsychParams == NULL ) diff --git a/lib_com/vlpc_2st_com.c b/lib_com/vlpc_2st_com.c index f027ecd8ea..86fdf68c5f 100644 --- a/lib_com/vlpc_2st_com.c +++ b/lib_com/vlpc_2st_com.c @@ -52,8 +52,7 @@ void lsf_weight_2st( const float *lsfq, float *w, const int16_t mode, - const int32_t sr_core -) + const int32_t sr_core ) { int16_t i; float d[M + 1]; diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index f876391b2d..2cded75928 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -679,8 +679,8 @@ static void IGF_appl( float *pSpectralData, /* i/o: Q31 | MDCT spectrum */ const float *igf_spec, /* i : Q31 | prepared IGF spectrum */ float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ - int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ - const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ + int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ + const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ ) { H_IGF_GRID hGrid; @@ -1240,8 +1240,7 @@ void IGFDecApplyStereo( const int16_t *coreMsMask, const int16_t restrict_hopsize, const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t bfi_apply_damping -) + const int16_t bfi_apply_damping ) { IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR; H_IGF_GRID hGrid; diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index fd5d5b3c1e..e18f0e3e5d 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -186,8 +186,8 @@ ivas_error ivas_core_dec( { float gain; - gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : - ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain : 0.0f; + gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain + : 0.0f; if ( ( st->element_mode == IVAS_CPE_MDCT && hMCT == NULL ) || ( st->hPlcInfo != NULL ) ) { diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 3d5f03b208..d670741610 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -1419,7 +1419,7 @@ void ivas_spar_dec_gen_umx_mat( } } } - + #ifdef DEBUG_SBA_MD_DUMP { static FILE *f_mat = 0; diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 1bdbb5eda7..020d9f96df 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -215,15 +215,15 @@ void stereo_decoder_tcx( const int16_t core_r, /* i : core for right channel (TCX20/TCX10) */ const int16_t igf, /* i : flag for IGF activity */ #ifdef FIX_TCX10_STEREO_PROC - const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ - const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ + const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ + const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ #else - const int16_t L_frame, /* i : TCX frame length */ + const int16_t L_frame, /* i : TCX frame length */ #endif - const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ - const int16_t last_core_l, /* i : last core for left channel */ - const int16_t last_core_r, /* i : last core for right channel */ - const int16_t tmp_plc_upmix /* i : indicates temp upmix for PLC decision */ + const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ + const int16_t last_core_l, /* i : last core for left channel */ + const int16_t last_core_r, /* i : last core for right channel */ + const int16_t tmp_plc_upmix /* i : indicates temp upmix for PLC decision */ ) { int16_t i, k, sfb, nSubframes; diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c old mode 100755 new mode 100644 index 6050354a8f..e355cd2083 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -462,7 +462,7 @@ static void IGF_CalculateEnvelope( float diffSFM; float shiftedSFM = 0.f; - tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); + tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); tmp_sb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, tmp, strt_cpy ) / IGF_getCrest_new( hPrivateData->logSpec, tmp, strt_cpy ); if ( last_core_acelp || hPrivateData->wasTransient ) @@ -494,12 +494,12 @@ static void IGF_CalculateEnvelope( if ( slope < -threshold ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); } else if ( ( slope > 1.f * threshold ) && ( sfb != hGrid->sfbWrap[hGrid->nTiles] - 1 ) ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); } if ( shiftedSFM > 0.04f ) diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 0f3274f43c..b0012ee469 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -74,8 +74,8 @@ int16_t ivas_agc_enc_get_enablement_flag( int16_t nchan_transport ) { return (int16_t) ( ( agc_configuration == IVAS_ENC_AGC_UNDEFINED ) - ? ( nchan_transport == 1 ) - : agc_configuration ); + ? ( nchan_transport == 1 ) + : agc_configuration ); } #endif diff --git a/lib_enc/ivas_sns_enc.c b/lib_enc/ivas_sns_enc.c index 6790f0cf6d..45c04ac9ea 100644 --- a/lib_enc/ivas_sns_enc.c +++ b/lib_enc/ivas_sns_enc.c @@ -44,7 +44,6 @@ #include "wmops.h" - /*------------------------------------------------------------------- * sns_1st_cod() * -- GitLab From 02fc63c12b16c0e1decfc66102fbd4407749c7c6 Mon Sep 17 00:00:00 2001 From: knj Date: Thu, 3 Nov 2022 16:53:47 +0100 Subject: [PATCH 412/479] add witch for fixing MCT PLC recovery - still inactive --- lib_com/options.h | 3 ++- lib_dec/ivas_core_dec.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 28149aafa5..52f4435019 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -58,7 +58,7 @@ #ifdef DEBUGGING -/*#define MEM_COUNT_DETAILS*/ /* RAM counting tool: print per sub-structure details */ +#define MEM_COUNT_DETAILS /* RAM counting tool: print per sub-structure details */ /*#define DEBUG_MODE_INFO*/ /* output most important parameters to the subdirectory "res/" */ #ifdef DEBUG_MODE_INFO @@ -154,6 +154,7 @@ #define FIX_TCX_DEC_RECONF_BFI #define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ #define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ +/*#define FIX_MCT_PLC_RECOVERY*/ /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index 4fbf75cf23..5c189b7d32 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -182,7 +182,11 @@ ivas_error ivas_core_dec( } #ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS +#ifdef FIX_MCT_PLC_RECOVERY if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->hTcxDec != NULL ) +#else + if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->hTcxDec != NULL && hMCT == NULL ) +#endif { float gain; -- GitLab From 2197980a8de9bc0f4175a232bc3682d0a7c01cea Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Fri, 4 Nov 2022 09:45:52 +1100 Subject: [PATCH 413/479] Ensure to use 2OA and 3OA files for sba 2 and -3 bitrate switching tests --- scripts/config/self_test.prm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/config/self_test.prm b/scripts/config/self_test.prm index 2f14e098a2..15e0be1ab5 100644 --- a/scripts/config/self_test.prm +++ b/scripts/config/self_test.prm @@ -590,16 +590,16 @@ ../IVAS_dec BINAURAL 48 bit testv/stvFOA48c.pcm_sw_48-48_BINAURAL.tst // SBA 2OA bitrate switching from 16.4 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out -../IVAS_cod -sba 2 ../scripts/switchPaths/sw_16k4_512k_50fr.bin 48 testv/stvFOA48c.pcm bit -../IVAS_dec FOA 48 bit testv/stvFOA48c.pcm_sw_48-48_FOA.tst +../IVAS_cod -sba 2 ../scripts/switchPaths/sw_16k4_512k_50fr.bin 48 testv/stv2OA48c.pcm bit +../IVAS_dec FOA 48 bit testv/stv2OA48c.pcm_sw_48-48_FOA.tst // SBA 3OA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, HOA3 out ../IVAS_cod -sba 3 ../scripts/switchPaths/sw_13k2_512k.bin 48 testv/stv3OA48c.pcm bit ../IVAS_dec HOA3 48 bit testv/stv3OA48c.pcm_sw_48-48_HOA3.tst // SBA planar 3OA bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, 7_1_4 out -../IVAS_cod -sba -3 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stvFOA48c.pcm bit -../IVAS_dec 7_1_4 48 bit testv/stvFOA48c.pcm_sw_48-48_7_1_4.tst +../IVAS_cod -sba -3 ../scripts/switchPaths/sw_24k4_256k.bin 48 testv/stv3OA48c.pcm bit +../IVAS_dec 7_1_4 48 bit testv/stv3OA48c.pcm_sw_48-48_7_1_4.tst // MASA 1dir 1TC at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out ../IVAS_cod -masa 1 testv/stv_IVASMASA_1dir1TC.met 13200 48 testv/stv_IVASMASA_1dir1TC.pcm bit -- GitLab From 089196f716d173203ba5966c1fe43133e3b07fd7 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 4 Nov 2022 08:36:53 +0100 Subject: [PATCH 414/479] disable MEM_COUNT_DETAILS again --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 52f4435019..9ef0c7cb0e 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -58,7 +58,7 @@ #ifdef DEBUGGING -#define MEM_COUNT_DETAILS /* RAM counting tool: print per sub-structure details */ +/*#define MEM_COUNT_DETAILS*/ /* RAM counting tool: print per sub-structure details */ /*#define DEBUG_MODE_INFO*/ /* output most important parameters to the subdirectory "res/" */ #ifdef DEBUG_MODE_INFO -- GitLab From a5e32d2ad4bf5f98b0d0532e76aae1874af7f1ae Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 4 Nov 2022 08:53:20 +0100 Subject: [PATCH 415/479] fix typo StereoDmxEvs -> StereoDmxEVS --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2a67fb68d1..d639c71ceb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -575,7 +575,7 @@ sanitizer-test-stereodmxevs: start_in: 2 hours script: - *update-ltv-repo - - python3 ci/run_scheduled_sanitizer_test.py StereoDmxEvs mono --tests $SANITIZER_TESTS + - python3 ci/run_scheduled_sanitizer_test.py StereoDmxEVS mono --tests $SANITIZER_TESTS sanitizer-test-ism1: extends: .sanitizer-test-template -- GitLab From 80b1eadcfdb8eef02fcdd3141184ae30fdf402a0 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 4 Nov 2022 09:30:43 +0100 Subject: [PATCH 416/479] half duration of sanitizer tests for now --- ci/run_scheduled_sanitizer_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index b63c76cac5..5fdcff0942 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -6,7 +6,7 @@ import subprocess import pathlib -DURATION = "120" +DURATION = "60" CFG = "ci_linux_ltv.json" SUPPORTED_TESTS = ["CLANG1", "CLANG2", "CLANG3", "VALGRIND"] EP_FILE = "ep_015.g192" -- GitLab From 4c88e7e28826c05f24c42e27a03b18cafbc87b10 Mon Sep 17 00:00:00 2001 From: knj Date: Fri, 4 Nov 2022 09:53:06 +0100 Subject: [PATCH 417/479] even shorter duration to be extra sure --- ci/run_scheduled_sanitizer_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index 5fdcff0942..6696e184c2 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -6,7 +6,7 @@ import subprocess import pathlib -DURATION = "60" +DURATION = "30" CFG = "ci_linux_ltv.json" SUPPORTED_TESTS = ["CLANG1", "CLANG2", "CLANG3", "VALGRIND"] EP_FILE = "ep_015.g192" -- GitLab From 4d63f4fc27774ca8acb7b6930116a6e11b59b11e Mon Sep 17 00:00:00 2001 From: vaclav Date: Fri, 4 Nov 2022 10:07:11 +0100 Subject: [PATCH 418/479] merge main --- lib_com/options.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index cad2176e3e..c8740088c3 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -155,9 +155,10 @@ #define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ #define FIX_MSAN_ERROR_STEREO_RATE_SWITCHING /* addresses Issue 177 */ #define SBA_BR_SWITCHING /* Issue 114: Changes for sba bit rate switching*/ - #define FIX_AGC_WINFUNC_MEMORY /* Issue 62: lower agc_com.winFunc memory consumption */ + + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif -- GitLab From 116dd54e11897add626c6523e868386f3b03350f Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 4 Nov 2022 10:27:38 +0100 Subject: [PATCH 419/479] [tests] simplify pytest functions and cleanup, add tests vs internal (decoder) renderer --- .gitlab-ci.yml | 108 ++-- tests/renderer/constants.py | 326 +++++++++- tests/renderer/test_renderer.py | 719 ++++----------------- tests/renderer/test_renderer_vs_decoder.py | 128 ++++ tests/renderer/utils.py | 439 +++++++++++++ 5 files changed, 1046 insertions(+), 674 deletions(-) create mode 100644 tests/renderer/test_renderer_vs_decoder.py create mode 100644 tests/renderer/utils.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index df216642fe..aa3893bdd0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,6 @@ variables: EXIT_CODE_NON_BE: 123 EXIT_CODE_FAIL: 1 - # This sets when pipelines are created. Jobs have more specific rules to restrict them. workflow: rules: @@ -44,8 +43,8 @@ stages: .get-previous-merge-commit-sha: &get-previous-merge-commit-sha - previous_merge_commit=$(git --no-pager log --merges HEAD~1 -n 1 --pretty=format:%H) -.merge_request_comparison_setup: &merge_request_comparison_setup - ### build test binaries, initial clean for paranoia reasons +.merge_request_comparison_setup: + &merge_request_comparison_setup ### build test binaries, initial clean for paranoia reasons - make clean - mkdir build - cd build @@ -86,10 +85,10 @@ stages: - git checkout $source_branch_commit_sha .merge-request-comparison-check: &merge-request-comparison-check - - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi - - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "Non-bitexact cases without non-BE tag encountered!"; exit $EXIT_CODE_FAIL; fi - - if [ $exit_code -eq 1 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; exit $EXIT_CODE_NON_BE; fi - - exit 0 + - if [ $zero_errors != 1 ]; then echo "Run errors encountered!"; exit $EXIT_CODE_FAIL; fi + - if [ $exit_code -eq 1 ] && [ $non_be_flag == 0 ]; then echo "Non-bitexact cases without non-BE tag encountered!"; exit $EXIT_CODE_FAIL; fi + - if [ $exit_code -eq 1 ] && [ $non_be_flag != 0 ]; then echo "Non-bitexact cases with non-BE tag encountered"; exit $EXIT_CODE_NON_BE; fi + - exit 0 # --------------------------------------------------------------- # Job templates @@ -125,7 +124,6 @@ stages: rules: - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - # templates to define stages and platforms .test-job-linux: tags: @@ -137,7 +135,6 @@ stages: tags: - ivas-linux - # template for test jobs on linux that need the TESTV_DIR .test-job-linux-needs-testv-dir: extends: .test-job-linux @@ -153,7 +150,6 @@ stages: exit_codes: - 123 - # --------------------------------------------------------------- # Validation jobs # --------------------------------------------------------------- @@ -172,13 +168,12 @@ check-if-branch-is-up-to-date-with-main: - echo $commits_behind_count - if [ $commits_behind_count -eq 0 ]; then exit 0; else exit 1; fi; - # --------------------------------------------------------------- # Build jobs # --------------------------------------------------------------- build-codec-linux-make: - extends: + extends: - .build-job-with-check-for-warnings - .rules-basis script: @@ -188,7 +183,7 @@ build-codec-linux-make: - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-unittests-linux: - extends: + extends: - .build-job-with-check-for-warnings - .rules-basis script: @@ -198,7 +193,7 @@ build-unittests-linux: - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-td-object-renderer-standalone-linux: - extends: + extends: - .build-job-with-check-for-warnings - .rules-basis script: @@ -208,7 +203,7 @@ build-td-object-renderer-standalone-linux: - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-codec-linux-cmake: - extends: + extends: - .build-job-with-check-for-warnings - .rules-basis script: @@ -222,7 +217,7 @@ build-codec-linux-cmake: - ci/check_for_warnings.py $BUILD_OUTPUT || exit $? build-codec-instrumented-linux: - extends: + extends: - .build-job-linux - .rules-basis script: @@ -231,26 +226,25 @@ build-codec-instrumented-linux: # make sure that the codec builds with msan, asan and usan build-codec-sanitizers-linux: - extends: + extends: - .build-job-linux - .rules-basis script: - *print-common-info - bash ci/build_codec_sanitizers_linux.sh - # --------------------------------------------------------------- # Test jobs for merge requests # --------------------------------------------------------------- # test that runs all modes with 1s input signals codec-smoke-test: - extends: + extends: - .test-job-linux-needs-testv-dir - .rules-merge-request timeout: "5 minutes" stage: test - needs: [ "build-codec-linux-cmake" ] + needs: ["build-codec-linux-cmake"] script: - *print-common-info - bash ci/smoke_test.sh @@ -263,16 +257,15 @@ codec-smoke-test: - out/logs/ - smoke_test_output.txt - smoke_test_output_plc.txt - expose_as: 'Smoke test results' - + expose_as: "Smoke test results" # code selftest testvectors with memory-sanitizer binaries msan-on-merge-request-linux: - extends: + extends: - .test-job-linux - .rules-merge-request stage: test - needs: [ "build-codec-sanitizers-linux" ] + needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - make clean @@ -285,16 +278,15 @@ msan-on-merge-request-linux: paths: - scripts/ref/logs/ - test_output.txt - expose_as: 'Msan selftest results' - + expose_as: "Msan selftest results" # code selftest testvectors with address-sanitizer binaries asan-on-merge-request-linux: - extends: + extends: - .test-job-linux - .rules-merge-request stage: test - needs: [ "build-codec-sanitizers-linux" ] + needs: ["build-codec-sanitizers-linux"] script: - *print-common-info - make clean @@ -307,54 +299,66 @@ asan-on-merge-request-linux: paths: - scripts/ref/logs/ - test_output.txt - expose_as: 'Asan selftest results' + expose_as: "Asan selftest results" # test external renderer executable external-renderer-make-pytest: extends: - .test-job-linux - .rules-merge-request - needs: [ "build-codec-linux-make" ] + needs: ["build-codec-linux-make"] stage: test script: - make -j IVAS_rend - make -j unittests - make -j --directory scripts/td_object_renderer/object_renderer_standalone - - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA + - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py # test external renderer executable with cmake + asan external-renderer-cmake-asan-pytest: extends: - .test-job-linux - .rules-merge-request - needs: [ "build-codec-linux-cmake" ] + needs: ["build-codec-linux-cmake"] stage: test script: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA + - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py # test external renderer executable with cmake + msan external-renderer-cmake-msan-pytest: extends: - .test-job-linux - .rules-merge-request - needs: [ "build-codec-linux-cmake" ] + needs: ["build-codec-linux-cmake"] stage: test script: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - - python3 -m pytest tests/renderer/test_renderer.py -q --log-level ERROR -n auto -rA + - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py + +# test external renderer executable with cmake vs decoder renderer +external-renderer-make-vs-decoder-pytest: + extends: + - .test-job-linux + - .rules-merge-request + needs: ["build-codec-linux-cmake"] + stage: test + script: + - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP + - cmake --build cmake-build -- -j + - python3 -m pytest -q --log-level ERROR -n 1 -rA tests/renderer/test_renderer_vs_decoder.py # compare bit exactness between target and source branch ivas-pytest-on-merge-request: - extends: + extends: - .test-job-linux - .rules-merge-request stage: compare - needs: [ "build-codec-linux-cmake", "codec-smoke-test" ] + needs: ["build-codec-linux-cmake", "codec-smoke-test"] timeout: "10 minutes" script: - *print-common-info @@ -385,17 +389,17 @@ ivas-pytest-on-merge-request: when: always paths: - report-junit.xml - expose_as: 'pytest ivas results' + expose_as: "pytest ivas results" reports: junit: - report-junit.xml evs-pytest-on-merge-request: - extends: + extends: - .test-job-linux - .rules-merge-request stage: compare - needs: [ "build-codec-linux-cmake", "codec-smoke-test" ] + needs: ["build-codec-linux-cmake", "codec-smoke-test"] timeout: "10 minutes" script: - *print-common-info @@ -423,12 +427,11 @@ evs-pytest-on-merge-request: when: always paths: - report-junit-evs.xml - expose_as: 'pytest evs results' + expose_as: "pytest evs results" reports: junit: - report-junit-evs.xml - # --------------------------------------------------------------- # Test jobs for main branch # --------------------------------------------------------------- @@ -441,7 +444,7 @@ be-2-evs-linux: tags: - be-2-evs-temp stage: test - needs: [ "build-codec-linux-cmake" ] + needs: ["build-codec-linux-cmake"] timeout: "20 minutes" # To be revisited script: - *print-common-info @@ -460,13 +463,12 @@ be-2-evs-linux: - cd evs_be_test - python3 ../ci/run_evs_be_test.py - codec-comparison-on-main-push: extends: - .test-job-linux - .rules-main-push stage: compare - needs: [ "build-codec-linux-cmake" ] + needs: ["build-codec-linux-cmake"] timeout: "30 minutes" # To be revisited script: - *print-common-info @@ -476,7 +478,7 @@ codec-comparison-on-main-push: - git --no-pager diff --stat $previous_merge_commit..$latest_commit # Rest is more or less placeholder adapted from MR self test. This should be replaced with more complex tests. - + ### build test binaries, initial clean for paranoia reasons - make clean - mkdir build @@ -531,11 +533,10 @@ codec-comparison-on-main-push: when: always paths: - report-junit.xml - expose_as: 'Results of comparison to previous merge commit' + expose_as: "Results of comparison to previous merge commit" reports: junit: report-junit.xml - # --------------------------------------------------------------- # Scheduled jobs on main # --------------------------------------------------------------- @@ -688,15 +689,15 @@ sanitizer-test-planarsba: # GCOV/LCOV coverage analysis of self_test suite coverage-test-on-main-scheduled: - extends: + extends: - .test-job-linux-needs-testv-dir - - .rules-main-scheduled + - .rules-main-scheduled tags: - coverage-test stage: test rules: # only run in scheduled pipeline that passes this env vars - - if: $COVERAGE_TEST + - if: $COVERAGE_TEST script: - *print-common-info - make GCOV=1 -j @@ -725,10 +726,10 @@ pull-from-3gpp-forge: script: # Set up git LFS for mirroring (see: https://github.com/git-lfs/git-lfs/issues/1762) - git lfs install --skip-smudge --local - + # Check out mirror branch - by default the runner checks out by commit hash, which results in detached head state - git checkout $CI_COMMIT_BRANCH - + # Pull commits from upstream - git remote add upstream https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec.git - git pull --ff-only --tags upstream $MIRROR_SOURCE_BRANCH @@ -736,4 +737,3 @@ pull-from-3gpp-forge: # Push to mirror, include tags. Option `-o ci.skip` tells GitLab to skip CI for the pushed commits (assumed already tested upstream) - git push --tags -o ci.skip "https://${GITLAB_USER_LOGIN}:${MIRROR_ACCESS_TOKEN}@${CI_REPOSITORY_URL#*@}" "HEAD:${CI_COMMIT_BRANCH}" - diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index b5d5cf3502..d76be35089 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -35,9 +35,33 @@ TEST_VECTOR_DIR = TESTS_DIR.joinpath("data") OUTPUT_PATH_REF = TESTS_DIR.joinpath("ref") OUTPUT_PATH_CUT = TESTS_DIR.joinpath("cut") +OUTPUT_PATH_REF = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/ref") +OUTPUT_PATH_CUT = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/cut") CUSTOM_LAYOUT_DIR = SCRIPTS_DIR.joinpath("ls_layouts") HR_TRAJECTORY_DIR = SCRIPTS_DIR.joinpath("trajectories") +TESTV_DIR = SCRIPTS_DIR.joinpath("testv") + +""" Encoder commandline template """ +IVAS_COD_CMD = [ + str(TESTS_DIR.parent.parent.joinpath("IVAS_cod")), + "", # 1 -> mode + "", # 2 -> options for mode + "", # 3 -> bitrate + "48", # 4 -> input fs + "", # 5 -> input file + "", # 6 -> bitstream file +] + +""" Decoder commandline template """ +IVAS_DEC_CMD = [ + str(TESTS_DIR.parent.parent.joinpath("IVAS_dec")), + "-no_delay_cmp", + "", # 2 -> output format, + "48", # 3 -> output fs + "", # 4 -> bitstream file + "", # 5 -> output file +] """ Renderer commandline template """ RENDERER_CMD = [ @@ -52,7 +76,7 @@ RENDERER_CMD = [ "", # 8 -> output format "-fs", "48", # 10 -> input fs - # "--no_delay_cmp", + "--no_delay_cmp", # "-ndl", "-q", ] @@ -71,7 +95,9 @@ TDRENDERER_CMD = [ """ CREND commandline template """ RENDERER_CREND_CMD = [ - str(SCRIPTS_DIR.joinpath("ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test")), + str( + SCRIPTS_DIR.joinpath("ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test") + ), "-test", "1", "-sr", @@ -162,6 +188,40 @@ FORMAT_TO_METADATA_FILES = { "MASA2": [str(TEST_VECTOR_DIR.joinpath("stv_IVASMASAQ_2dir2TC.met"))], } +FORMAT_TO_IVAS = { + "MONO": ["", ""], + "STEREO": ["-stereo", ""], + "FOA": ["-sba", "1"], + "HOA2": ["-sba", "2"], + "HOA3": ["-sba", "3"], + "5_1": ["-mc", "5_1"], + "7_1": ["-mc", "7_1"], + "5_1_2": ["-mc", "5_1_2"], + "5_1_4": ["-mc", "5_1_4"], + "7_1_4": ["-mc", "7_1_4"], + "ISM1": ["-ism", "1"], + "ISM2": ["-ism", "2"], + "ISM3": ["-ism", "3"], + "ISM4": ["-ism", "4"], +} + +FORMAT_TO_IVAS_BR = { + "MONO": "128000", + "STEREO": "256000", + "FOA": "512000", + "HOA2": "512000", + "HOA3": "512000", + "5_1": "512000", + "7_1": "512000", + "5_1_2": "512000", + "5_1_4": "512000", + "7_1_4": "512000", + "ISM1": "256000", + "ISM2": "256000", + "ISM3": "256000", + "ISM4": "256000", +} + FORMAT_TO_CREND_FORMAT = { "MONO": "0", "STEREO": "1", @@ -199,14 +259,9 @@ OUTPUT_FORMATS = [ """ Custom loudspeaker input/output """ CUSTOM_LS_TO_TEST = [ - # "cicp1", - # "cicp2", "t_design_4", - # "4d0", "4d4", "itu_4+5+1", - "custom1", - # "cicp20", "16ch_8+4+4", ] @@ -215,21 +270,252 @@ METADATA_SCENES_TO_TEST = ["mixed_scene", "mixed_scene_simple"] METADATA_SCENES_TO_TEST_NO_BE = ["masa_scene"] """ Binaural rendering """ -INPUT_FORMATS_BINAURAL = OUTPUT_FORMATS[2:] -INPUT_FORMATS_BINAURAL.extend( - [ - "ISM1", - "ISM2", - "ISM3", - "ISM4", - # "MASA1", - # "MASA2", - ] -) OUTPUT_FORMATS_BINAURAL = ["BINAURAL", "BINAURAL_ROOM"] HR_TRAJECTORIES_TO_TEST = [ - # "const000", "full_circle_in_15s", - # "full_circle_in_15s-Euler", "rotate_yaw_pitch_roll1", ] + +""" Per-testcase xfail SNR thresholds (dB) """ +pass_snr = { + #################################################################### + # + # External Renderer vs Standalone and pyaudio3dtools renderers tests + # + #################################################################### + # Crend used internally, comparison to pyaudio3dtools has bad SNR + # Crend unit test does not support Quaternion files + "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-full_circle_in_15s]": 18, + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-rotate_yaw_pitch_roll1]": 4, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-full_circle_in_15s]": 15, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-rotate_yaw_pitch_roll1]": 3, + # TODO needs debugging + "test_ambisonics_binaural_static[FOA-BINAURAL_ROOM]": 0, + "test_ambisonics_binaural_static[HOA2-BINAURAL_ROOM]": 0, + "test_ambisonics_binaural_static[HOA3-BINAURAL_ROOM]": 0, + # TD Object Renderer used internally, comparison to pyaudio3dtools has bad SNR + # TD Object Renderer standalone does not support custom LS + "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL]": 0, + "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL_ROOM]": 0, + "test_custom_ls_input_binaural[4d4-BINAURAL]": 0, + "test_custom_ls_input_binaural[4d4-BINAURAL_ROOM]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-full_circle_in_15s]": 3, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, + "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-full_circle_in_15s]": 0, + "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL]": 0, + "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL_ROOM]": 3, + "test_custom_ls_input_binaural[t_design_4-BINAURAL]": 0, + "test_custom_ls_input_binaural[t_design_4-BINAURAL_ROOM]": 0, + # Crend used internally, comparison to pyaudio3dtools has bad SNR + # Crend unit test does not support ISM rendering or Quaternion files + "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 9, + "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4, + "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 10, + "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, + "test_ism_binaural_headrotation[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 24, + "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-full_circle_in_15s]": 10, + "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4, + "test_ism_binaural_headrotation[ISM3-BINAURAL-rotate_yaw_pitch_roll1]": 24, + "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-full_circle_in_15s]": 10, + "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4, + "test_ism_binaural_headrotation[ISM4-BINAURAL-rotate_yaw_pitch_roll1]": 24, + "test_ism_binaural_static[ISM1-BINAURAL_ROOM]": 23, + "test_ism_binaural_static[ISM2-BINAURAL_ROOM]": 21, + "test_ism_binaural_static[ISM3-BINAURAL_ROOM]": 21, + "test_ism_binaural_static[ISM4-BINAURAL_ROOM]": 21, + # TODO needs debugging, minor differences could be due to crossfades or metadata position casts + "test_ism[ISM1-5_1_2]": 48, + "test_ism[ISM1-5_1_4]": 48, + "test_ism[ISM1-5_1]": 48, + "test_ism[ISM1-7_1_4]": 46, + "test_ism[ISM1-7_1]": 45, + "test_ism[ISM1-FOA]": 44, + "test_ism[ISM1-HOA2]": 40, + "test_ism[ISM1-HOA3]": 37, + "test_ism[ISM1-STEREO]": 54, + "test_ism[ISM2-5_1_2]": 46, + "test_ism[ISM2-5_1_4]": 45, + "test_ism[ISM2-5_1]": 47, + "test_ism[ISM2-7_1_4]": 43, + "test_ism[ISM2-7_1]": 45, + "test_ism[ISM2-FOA]": 41, + "test_ism[ISM2-HOA2]": 37, + "test_ism[ISM2-HOA3]": 34, + "test_ism[ISM2-STEREO]": 55, + "test_ism[ISM3-5_1_2]": 44, + "test_ism[ISM3-5_1_4]": 43, + "test_ism[ISM3-5_1]": 45, + "test_ism[ISM3-7_1_4]": 42, + "test_ism[ISM3-7_1]": 44, + "test_ism[ISM3-FOA]": 39, + "test_ism[ISM3-HOA2]": 36, + "test_ism[ISM3-HOA3]": 33, + "test_ism[ISM3-STEREO]": 54, + "test_ism[ISM4-5_1_2]": 44, + "test_ism[ISM4-5_1_4]": 44, + "test_ism[ISM4-5_1]": 46, + "test_ism[ISM4-7_1_4]": 43, + "test_ism[ISM4-7_1]": 44, + "test_ism[ISM4-FOA]": 40, + "test_ism[ISM4-HOA2]": 36, + "test_ism[ISM4-HOA3]": 33, + "test_ism[ISM4-STEREO]": 57, + # Crend used internally, comparison to pyaudio3dtools has bad SNR + # Crend unit test does not support Quaternion files + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-full_circle_in_15s]": 8, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 2, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 1, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-full_circle_in_15s]": 8, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 2, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 1, + "test_multichannel_binaural_headrotation[5_1-BINAURAL-full_circle_in_15s]": 7, + "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-full_circle_in_15s]": 3, + "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, + "test_multichannel_binaural_headrotation[5_1-BINAURAL-rotate_yaw_pitch_roll1]": 6, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-full_circle_in_15s]": 7, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 2, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 1, + "test_multichannel_binaural_headrotation[7_1-BINAURAL-full_circle_in_15s]": 8, + "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-full_circle_in_15s]": 2, + "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, + "test_multichannel_binaural_headrotation[7_1-BINAURAL-rotate_yaw_pitch_roll1]": 8, + ##################################### + # + # External vs Internal Renderer tests + # + ##################################### + # TODO conversion to 7_1_4 might be different (as indicated by next section of tests), needs debugging + "test_ism_binaural_headrotation_vs_decoder[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 15, + "test_ism_binaural_headrotation_vs_decoder[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 15, + "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 12, + "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 13, + "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 84, + "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL_ROOM-full_circle_in_15s]": 12, + "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 13, + "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL-rotate_yaw_pitch_roll1]": 78, + "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL_ROOM-full_circle_in_15s]": 12, + "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 13, + "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL-rotate_yaw_pitch_roll1]": 85, + "test_ism_binaural_static_vs_decoder[ISM1-BINAURAL_ROOM]": 15, + "test_ism_binaural_static_vs_decoder[ISM2-BINAURAL_ROOM]": 12, + "test_ism_binaural_static_vs_decoder[ISM3-BINAURAL_ROOM]": 12, + "test_ism_binaural_static_vs_decoder[ISM4-BINAURAL_ROOM]": 12, + # TODO loudspeaker and ambisonics rendering could be due to crossfades or metadata position rounding + "test_ism_vs_decoder[ISM1-5_1_2]": 26, + "test_ism_vs_decoder[ISM1-5_1]": 26, + "test_ism_vs_decoder[ISM1-5_1_4]": 26, + "test_ism_vs_decoder[ISM1-7_1]": 26, + "test_ism_vs_decoder[ISM1-7_1_4]": 26, + "test_ism_vs_decoder[ISM1-FOA]": 27, + "test_ism_vs_decoder[ISM1-HOA2]": 26, + "test_ism_vs_decoder[ISM1-HOA3]": 26, + "test_ism_vs_decoder[ISM1-STEREO]": 8, + "test_ism_vs_decoder[ISM2-5_1_2]": 32, + "test_ism_vs_decoder[ISM2-5_1_4]": 31, + "test_ism_vs_decoder[ISM2-5_1]": 6, + "test_ism_vs_decoder[ISM2-7_1_4]": 31, + "test_ism_vs_decoder[ISM2-7_1]": 5, + "test_ism_vs_decoder[ISM2-FOA]": 32, + "test_ism_vs_decoder[ISM2-HOA2]": 31, + "test_ism_vs_decoder[ISM2-HOA3]": 30, + "test_ism_vs_decoder[ISM2-STEREO]": 17, + "test_ism_vs_decoder[ISM3-5_1_2]": 32, + "test_ism_vs_decoder[ISM3-5_1_4]": 32, + "test_ism_vs_decoder[ISM3-5_1]": 8, + "test_ism_vs_decoder[ISM3-7_1_4]": 31, + "test_ism_vs_decoder[ISM3-7_1]": 7, + "test_ism_vs_decoder[ISM3-FOA]": 32, + "test_ism_vs_decoder[ISM3-HOA2]": 32, + "test_ism_vs_decoder[ISM3-HOA3]": 30, + "test_ism_vs_decoder[ISM3-MONO]": 77, + "test_ism_vs_decoder[ISM3-STEREO]": 14, + "test_ism_vs_decoder[ISM4-5_1_2]": 31, + "test_ism_vs_decoder[ISM4-5_1_4]": 31, + "test_ism_vs_decoder[ISM4-5_1]": 8, + "test_ism_vs_decoder[ISM4-7_1_4]": 30, + "test_ism_vs_decoder[ISM4-7_1]": 7, + "test_ism_vs_decoder[ISM4-FOA]": 31, + "test_ism_vs_decoder[ISM4-HOA2]": 31, + "test_ism_vs_decoder[ISM4-HOA3]": 30, + "test_ism_vs_decoder[ISM4-MONO]": 77, + "test_ism_vs_decoder[ISM4-STEREO]": 14, + # TODO needs debugging + "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL-full_circle_in_15s]": 4, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 6, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL-full_circle_in_15s]": 4, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 7, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation_vs_decoder[5_1-BINAURAL_ROOM-full_circle_in_15s]": 5, + "test_multichannel_binaural_headrotation_vs_decoder[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL-full_circle_in_15s]": 4, + "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 5, + "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation_vs_decoder[7_1-BINAURAL_ROOM-full_circle_in_15s]": 5, + "test_multichannel_binaural_headrotation_vs_decoder[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + # TODO needs debugging + "test_multichannel_binaural_static_vs_decoder[5_1_2-BINAURAL_ROOM]": 18, + "test_multichannel_binaural_static_vs_decoder[5_1_4-BINAURAL_ROOM]": 18, + "test_multichannel_binaural_static_vs_decoder[5_1-BINAURAL_ROOM]": 18, + "test_multichannel_binaural_static_vs_decoder[7_1_4-BINAURAL_ROOM]": 18, + "test_multichannel_binaural_static_vs_decoder[7_1-BINAURAL_ROOM]": 19, + # TODO Mono downmix significantly different, needs a fix + "test_multichannel_vs_decoder[5_1_2-MONO]": 1, + "test_multichannel_vs_decoder[5_1_4-MONO]": 1, + "test_multichannel_vs_decoder[5_1-MONO]": 1, + "test_multichannel_vs_decoder[7_1_4-MONO]": 1, + "test_multichannel_vs_decoder[7_1-MONO]": 1, + "test_multichannel_vs_decoder[STEREO-MONO]": 17, + # TODO Stereo downmix differs slightly, needs debugging + "test_multichannel_vs_decoder[5_1_2-STEREO]": 44, + "test_multichannel_vs_decoder[5_1_4-STEREO]": 48, + "test_multichannel_vs_decoder[5_1-STEREO]": 48, + "test_multichannel_vs_decoder[7_1_4-STEREO]": 46, + "test_multichannel_vs_decoder[7_1-STEREO]": 44, + # TODO minor differences, needs debugging + "test_multichannel_vs_decoder[5_1_2-5_1_4]": 63, + "test_multichannel_vs_decoder[5_1_2-5_1]": 63, + "test_multichannel_vs_decoder[5_1_2-7_1_4]": 63, + "test_multichannel_vs_decoder[5_1_2-7_1]": 63, + "test_multichannel_vs_decoder[5_1_4-5_1_2]": 63, + "test_multichannel_vs_decoder[5_1_4-5_1]": 62, + "test_multichannel_vs_decoder[5_1_4-7_1_4]": 61, + "test_multichannel_vs_decoder[5_1_4-7_1]": 62, + "test_multichannel_vs_decoder[5_1-5_1_2]": 62, + "test_multichannel_vs_decoder[5_1-5_1_4]": 62, + "test_multichannel_vs_decoder[5_1-7_1_4]": 62, + "test_multichannel_vs_decoder[5_1-7_1]": 62, + "test_multichannel_vs_decoder[7_1_4-5_1_2]": 63, + "test_multichannel_vs_decoder[7_1_4-5_1_4]": 63, + "test_multichannel_vs_decoder[7_1_4-5_1]": 63, + "test_multichannel_vs_decoder[7_1_4-7_1]": 62, + "test_multichannel_vs_decoder[7_1-5_1_2]": 63, + "test_multichannel_vs_decoder[7_1-5_1_4]": 63, + "test_multichannel_vs_decoder[7_1-5_1]": 63, + "test_multichannel_vs_decoder[7_1-7_1_4]": 63, +} diff --git a/tests/renderer/test_renderer.py b/tests/renderer/test_renderer.py index e09dc37222..87af209318 100644 --- a/tests/renderer/test_renderer.py +++ b/tests/renderer/test_renderer.py @@ -26,424 +26,89 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ -import subprocess as sp -import sys -from pathlib import Path -from tempfile import TemporaryDirectory -from typing import Optional, Tuple -import numpy as np import pytest +from .utils import * -from .compare_audio import compare_audio_arrays -from .constants import * -sys.path.append(SCRIPTS_DIR) -import pyaudio3dtools +""" Ambisonics """ -def check_BE( - test_info, - ref: np.ndarray, - ref_fs: int, - cut: np.ndarray, - cut_fs: int, -): - - if ref is None or np.array_equal(ref, np.zeros_like(ref)): - pytest.fail("REF signal does not exist or is zero!") - - if cut is None or np.array_equal(cut, np.zeros_like(cut)): - pytest.fail("CuT signal does not exist or is zero!") - - snr, gain_b, max_diff = compare_audio_arrays(ref, ref_fs, cut, cut_fs) - - if np.isnan(snr) or gain_b == 0: - pytest.fail("Invalid comparison result, check your signals!") - - # try to get a minimum SNR from the config - if test_info.node.name in pass_snr: - snr_min = pass_snr.get(test_info.node.name) - else: - snr_min = np.inf - - # TODO temporary fix to pad TD Object Renderer Standalone output - if ref.shape != cut.shape: - ref = np.pad(ref, [(0, cut.shape[0] - ref.shape[0]), (0, 0)]) - - # check max_diff as well, since compare_audio_arrays will try to adjust for small delay differences - if not np.allclose(ref, cut, rtol=0, atol=2) and max_diff > 2: - if snr >= snr_min: - pytest.xfail( - f"Expected failure with minimum SNR {snr_min} vs {snr:3.2f}dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" - ) - else: - pytest.fail( - f"CuT not BE to REF! SNR : {snr:3.2f} dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" - ) - - -def run_pyscripts( - in_fmt, - out_fmt, - metadata_input: Optional[str] = None, - in_meta_files: Optional[list] = None, - trj_file: Optional[str] = None, -) -> Tuple[np.ndarray, int]: - """Reference rendering with pyaudio3dtools""" - if trj_file is not None: - trj_name = f"_{trj_file.stem}" - else: - trj_name = "" - - if not isinstance(out_fmt, str): - out_name = f"{out_fmt.stem}" - else: - out_name = out_fmt - - if metadata_input is not None: - in_file = metadata_input - in_name = metadata_input.stem - elif isinstance(in_fmt, Path): - in_file = FORMAT_TO_FILE[in_fmt.stem] - in_name = in_fmt.stem - else: - in_file = FORMAT_TO_FILE[in_fmt] - in_name = in_fmt - - out_file = str(OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) - - pyaudio3dtools.spatialaudioconvert.spatial_audio_convert( - in_file, - out_file, - in_format=in_fmt, - out_format=out_fmt, - in_meta_files=in_meta_files, - trajectory=trj_file, - limit_output=True, - ) - - return pyaudio3dtools.audiofile.readfile(out_file) - - -def run_renderer( - in_fmt: str, - out_fmt: str, - metadata_input: Optional[str] = None, - in_meta_files: Optional[list] = None, - trj_file: Optional[str] = None, -) -> Tuple[np.ndarray, int]: - """CuT creation with standalone renderer""" - if trj_file is not None: - trj_name = f"_{trj_file.stem}" - else: - trj_name = "" - - if not isinstance(out_fmt, str): - out_name = f"{out_fmt.stem}" - else: - out_name = out_fmt - - if metadata_input is not None: - in_file = metadata_input - in_name = metadata_input.stem - elif not isinstance(in_fmt, str): - in_file = FORMAT_TO_FILE[in_fmt.stem] - in_name = in_fmt.stem - else: - in_file = FORMAT_TO_FILE[in_fmt] - in_name = in_fmt - - out_file = str(OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) - - cmd = RENDERER_CMD[:] - cmd[2] = str(in_file) - cmd[4] = str(in_fmt) - cmd[6] = str(out_file) - cmd[8] = str(out_fmt) - - if in_meta_files is not None: - cmd[5:5] = ["-im", *in_meta_files] - - if trj_file is not None: - cmd.extend(["-tf", str(trj_file)]) - - try: - sp.run(cmd, check=True, capture_output=True, text=True) - except sp.CalledProcessError as e: - pytest.fail( - f"Command returned non-zero exit status ({e.returncode})!\n{' '.join(e.cmd)}\n{e.stderr}\n{e.stdout}\n{e.output}" - ) - - return pyaudio3dtools.audiofile.readfile(out_file) - - -def run_crend_unittest( - in_fmt: str, - out_fmt: str, - metadata_input: Optional[str] = None, - in_meta_files: Optional[list] = None, - trj_file: Optional[str] = None, -) -> Tuple[np.ndarray, int]: - """CuT creation with standalone renderer""" - if trj_file is not None: - trj_name = f"_{trj_file.stem}" - else: - trj_name = "" - - if not isinstance(out_fmt, str): - out_name = f"{out_fmt.stem}" - else: - out_name = out_fmt - - if metadata_input is not None: - in_file = metadata_input - in_name = metadata_input.stem - elif not isinstance(in_fmt, str): - in_file = FORMAT_TO_FILE[in_fmt.stem] - in_name = in_fmt.stem - else: - in_file = FORMAT_TO_FILE[in_fmt] - in_name = in_fmt - - out_file = str( - OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}_crend.wav") - ) - - cmd = RENDERER_CREND_CMD[:] - cmd[6] = FORMAT_TO_CREND_FORMAT[str(in_fmt)] - cmd[8] = FORMAT_TO_CREND_FORMAT[str(out_fmt)] - cmd[10] = str(in_file) - cmd[12] = str(out_file) - if str(out_fmt) == "BINAURAL_ROOM": - cmd.append("-BRIR") - - # if in_meta_files is not None: - # cmd[5:5] = in_meta_files - - # if trj_file is not None: - # cmd.extend(["-tf", str(trj_file)]) - - try: - sp.run(cmd, check=True, capture_output=True, text=True) - except sp.CalledProcessError as e: - pytest.fail( - f"Command returned non-zero exit status ({e.returncode})!\n{' '.join(e.cmd)}\n{e.stderr}\n{e.stdout}\n{e.output}" - ) - - return pyaudio3dtools.audiofile.readfile(out_file) - - -def run_td_standalone( - in_fmt: str, - out_fmt: str, - metadata_input: Optional[str] = None, - in_meta_files: Optional[list] = None, - trj_file: Optional[str] = None, -): - """CuT creation with TD Object renderer""" - if trj_file is not None: - trj_name = f"_{trj_file.stem}" - else: - trj_name = "" - - if not isinstance(out_fmt, str): - out_name = f"{out_fmt.stem}" - else: - out_name = out_fmt - - if metadata_input is not None: - in_file = metadata_input - in_name = metadata_input.stem - elif not isinstance(in_fmt, str): - in_file = FORMAT_TO_FILE[in_fmt.stem] - in_name = in_fmt.stem - else: - in_file = FORMAT_TO_FILE[in_fmt] - in_name = in_fmt - - out_file = str(OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}.pcm")) - - in_spfmt = pyaudio3dtools.spatialaudioformat.Format(in_fmt) - - with TemporaryDirectory() as tmp_dir: - # write PCM tmp file - tmp_dir = Path(tmp_dir) - in_file_pcm = tmp_dir.joinpath(in_file.stem + ".pcm") - - in_sig, _ = pyaudio3dtools.audiofile.readfile(in_file) - pyaudio3dtools.audiofile.writefile(in_file_pcm, in_sig) - - cmd = TDRENDERER_CMD[:] - cmd[2] = str(in_file_pcm) - cmd[3] = str(out_file) - - if in_spfmt.isloudspeaker: - cmd[1:1] = ["-mc", in_spfmt.name] - else: - cmd[1:1] = str(in_spfmt.nchannels) - if in_meta_files is not None: - cmd[2:2] = in_meta_files - else: - cmd[2:2] = ["NULL"] * in_spfmt.nchannels - - if trj_file is not None: - cmd[1:1] = ["-T", str(trj_file)] - - try: - sp.run(cmd, check=True, capture_output=True, text=True) - except sp.CalledProcessError as e: - pytest.fail( - f"Command returned non-zero exit status ({e.returncode})!\n{' '.join(e.cmd)}\n{e.stderr}\n{e.stdout}\n{e.output}" - ) - - return pyaudio3dtools.audiofile.readfile(out_file, nchannels=2) - - -# fixture returns test information, enabling per-testcase SNR -@pytest.fixture -def test_info(request): - return request - - -# Ambisonics / loudspeaker based input formats @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) def test_ambisonics(test_info, in_fmt, out_fmt): - ref, ref_fs = run_pyscripts(in_fmt, out_fmt) + compare_renderer_vs_pyscripts(test_info, in_fmt, out_fmt) - cut, cut_fs = run_renderer(in_fmt, out_fmt) - check_BE(test_info, ref, ref_fs, cut, cut_fs) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics_binaural_static(test_info, in_fmt, out_fmt): + compare_renderer_vs_crend_unit_test(test_info, in_fmt, out_fmt) -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) -@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) -def test_multichannel(test_info, in_fmt, out_fmt): - ref, ref_fs = run_pyscripts(in_fmt, out_fmt) +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): + compare_renderer_vs_pyscripts( + test_info, + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) - cut, cut_fs = run_renderer(in_fmt, out_fmt) - if out_fmt in ["MONO", "STEREO"]: - check_BE(test_info, ref, ref_fs, cut, cut_fs) - else: - check_BE(test_info, ref, ref_fs, cut, cut_fs) +""" Multichannel """ @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) -@pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) -def test_custom_ls_input(test_info, in_layout, out_fmt): - ref, ref_fs = run_pyscripts( - CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), - out_fmt, - ) - - cut, cut_fs = run_renderer(CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt) - - check_BE(test_info, ref, ref_fs, cut, cut_fs) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel(test_info, in_fmt, out_fmt): + compare_renderer_vs_pyscripts(test_info, in_fmt, out_fmt) -@pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) -@pytest.mark.parametrize("in_fmt", OUTPUT_FORMATS) -def test_custom_ls_output(test_info, in_fmt, out_fmt): - ref, ref_fs = run_pyscripts( - in_fmt, - CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), - ) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): + if in_fmt in ["MONO", "STEREO"]: + pytest.skip("MONO or STEREO to Binaural rendering unsupported") - cut, cut_fs = run_renderer(in_fmt, CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt")) + compare_renderer_vs_crend_unit_test(test_info, in_fmt, out_fmt) - check_BE(test_info, ref, ref_fs, cut, cut_fs) +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): + if in_fmt in ["MONO", "STEREO"]: + pytest.skip("MONO or STEREO to Binaural rendering unsupported") -@pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) -@pytest.mark.parametrize("in_fmt", CUSTOM_LS_TO_TEST) -def test_custom_ls_input_output(test_info, in_fmt, out_fmt): - ref, ref_fs = run_pyscripts( - CUSTOM_LAYOUT_DIR.joinpath(f"{in_fmt}.txt"), - CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), - ) + if (in_fmt == "5_1" or in_fmt == "7_1") and out_fmt == "BINAURAL": + compare_renderer_vs_td_standalone( + test_info, + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + else: + compare_renderer_vs_pyscripts( + test_info, + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) - cut, cut_fs = run_renderer( - CUSTOM_LAYOUT_DIR.joinpath(f"{in_fmt}.txt"), - CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), - ) - check_BE(test_info, ref, ref_fs, cut, cut_fs) +""" ISM """ -# Metadata / parametric input formats @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) def test_ism(test_info, in_fmt, out_fmt): - ref, ref_fs = run_pyscripts( - in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] - ) - cut, cut_fs = run_renderer( - in_fmt, - out_fmt, - in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], + compare_renderer_vs_pyscripts( + test_info, in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] ) - check_BE(test_info, ref, ref_fs, cut, cut_fs) - - -# MASA inputs not supported yet -# @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) -# @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MASA) -# def test_masa(test_info, in_fmt, out_fmt): -# # TODO: implement MASA in Python, compare BE -# # ref, ref_fs = run_pyscripts( -# # in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] -# # ) - -# cut, cut_fs = run_renderer( -# in_fmt, -# out_fmt, -# in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt], -# ) - -# # check_BE(test_info, ref, ref_fs, cut, cut_fs) - - -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) -@pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST) -def test_metadata(test_info, in_fmt, out_fmt): - ref, ref_fs = run_pyscripts( - "META", out_fmt, metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt") - ) - - cut, cut_fs = run_renderer( - "META", - out_fmt, - metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), - ) - - check_BE(test_info, ref, ref_fs, cut, cut_fs) - - -# MASA inputs not supported yet -# @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) -# @pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST_NO_BE) -# def test_metadata_masa(test_info, in_fmt, out_fmt): -# # TODO: unify with test_metadata once Python supports MASA -# cut, cut_fs = run_renderer( -# "META", -# out_fmt, -# metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), -# ) - - -# Binaural rendering (static) -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) -@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) -def test_ambisonics_binaural_static(test_info, in_fmt, out_fmt): - ref, ref_fs = run_pyscripts(in_fmt, out_fmt) - - cut, cut_fs = run_renderer(in_fmt, out_fmt) - - check_BE(test_info, ref, ref_fs, cut, cut_fs) - @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) @@ -454,55 +119,13 @@ def test_ism_binaural_static(test_info, in_fmt, out_fmt): in_meta_files = None if out_fmt == "BINAURAL": - ref, ref_fs = run_td_standalone(in_fmt, out_fmt, in_meta_files=in_meta_files) + compare_renderer_vs_td_standalone( + test_info, in_fmt, out_fmt, in_meta_files=in_meta_files + ) else: - ref, ref_fs = run_pyscripts(in_fmt, out_fmt, in_meta_files=in_meta_files) - - cut, cut_fs = run_renderer(in_fmt, out_fmt, in_meta_files=in_meta_files) - - check_BE(test_info, ref, ref_fs, cut, cut_fs) - - -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) -@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) -def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): - ref, ref_fs = run_pyscripts(in_fmt, out_fmt) - - cut, cut_fs = run_renderer(in_fmt, out_fmt) - - check_BE(test_info, ref, ref_fs, cut, cut_fs) - - -@pytest.mark.skip("Skip CREND unit test comparison until ASAN issues are fixed") -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) -@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) -def test_multichannel_binaural_static_vs_crend_unittest(test_info, in_fmt, out_fmt): - - crend, crend_fs = run_crend_unittest(in_fmt, out_fmt) - - cut, cut_fs = run_renderer(in_fmt, out_fmt) - - check_BE(test_info, cut, cut_fs, crend, crend_fs) - - -# Binaural rendering (head rotation) -@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) -@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) -def test_ambisonics_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): - ref, ref_fs = run_pyscripts( - in_fmt, - out_fmt, - trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - ) - - cut, cut_fs = run_renderer( - in_fmt, - out_fmt, - trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - ) - - check_BE(test_info, ref, ref_fs, cut, cut_fs) + compare_renderer_vs_pyscripts( + test_info, in_fmt, out_fmt, in_meta_files=in_meta_files + ) @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) @@ -515,211 +138,107 @@ def test_ism_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): in_meta_files = None if out_fmt == "BINAURAL": - ref, ref_fs = run_td_standalone( + compare_renderer_vs_td_standalone( + test_info, in_fmt, out_fmt, trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), in_meta_files=in_meta_files, ) else: - ref, ref_fs = run_pyscripts( + compare_renderer_vs_pyscripts( + test_info, in_fmt, out_fmt, trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), in_meta_files=in_meta_files, ) - cut, cut_fs = run_renderer( - in_fmt, - out_fmt, - trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - in_meta_files=in_meta_files, - ) - check_BE(test_info, ref, ref_fs, cut, cut_fs) +""" MASA """ +# # MASA inputs not supported yet +# @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +# @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MASA) +# def test_masa(test_info, in_fmt, out_fmt): +# # TODO: implement MASA in Python, compare BE +# compare_renderer_vs_pyscripts( test_info, in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] +# ) -@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) -@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) -@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC[2:]) -def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): +# MASA inputs not supported yet +# @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +# @pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST_NO_BE) +# def test_metadata_masa(test_info, in_fmt, out_fmt): +# # TODO: unify with test_metadata once Python supports MASA +# cut, cut_fs = run_renderer( +# "META", +# out_fmt, +# metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), +# ) + + +""" Custom loudspeaker layouts """ - if (in_fmt == "5_1" or in_fmt == "7_1") and out_fmt == "BINAURAL": - ref, ref_fs = run_td_standalone( - in_fmt, - out_fmt, - trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - ) - else: - ref, ref_fs = run_pyscripts( - in_fmt, - out_fmt, - trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), - ) - cut, cut_fs = run_renderer( +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) +def test_custom_ls_input(test_info, in_layout, out_fmt): + compare_renderer_vs_pyscripts( + test_info, CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt + ) + + +@pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) +@pytest.mark.parametrize("in_fmt", OUTPUT_FORMATS) +def test_custom_ls_output(test_info, in_fmt, out_fmt): + compare_renderer_vs_pyscripts( + test_info, in_fmt, - out_fmt, - trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), ) - check_BE(test_info, ref, ref_fs, cut, cut_fs) + +@pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) +@pytest.mark.parametrize("in_fmt", CUSTOM_LS_TO_TEST) +def test_custom_ls_input_output(test_info, in_fmt, out_fmt): + compare_renderer_vs_pyscripts( + test_info, + CUSTOM_LAYOUT_DIR.joinpath(f"{in_fmt}.txt"), + CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), + ) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) def test_custom_ls_input_binaural(test_info, in_layout, out_fmt): - ref, ref_fs = run_pyscripts( + compare_renderer_vs_pyscripts( + test_info, CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt, ) - cut, cut_fs = run_renderer(CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt) - - check_BE(test_info, ref, ref_fs, cut, cut_fs) - @pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) def test_custom_ls_input_binaural_headrotation(test_info, in_layout, out_fmt, trj_file): - ref, ref_fs = run_pyscripts( + compare_renderer_vs_pyscripts( + test_info, CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt, trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), ) - cut, cut_fs = run_renderer( - CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), + +""" Metadata / scene description input """ + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST) +def test_metadata(test_info, in_fmt, out_fmt): + compare_renderer_vs_pyscripts( + test_info, + "META", out_fmt, - trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), ) - - check_BE(test_info, ref, ref_fs, cut, cut_fs) - - -# per-testcase passing SNR -pass_snr = { - "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-full_circle_in_15s]": 0.6, - "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0.1, - "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-full_circle_in_15s]": 18, - "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-rotate_yaw_pitch_roll1]": 4, - "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-full_circle_in_15s]": 0.4, - "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0.04, - "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-full_circle_in_15s]": 15, - "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-rotate_yaw_pitch_roll1]": 3, - "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-full_circle_in_15s]": 0.4, - "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0.05, - "test_ambisonics_binaural_static[FOA-BINAURAL_ROOM]": 0.6, - "test_ambisonics_binaural_static[HOA2-BINAURAL_ROOM]": 0.5, - "test_ambisonics_binaural_static[HOA3-BINAURAL_ROOM]": 0.1, - "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL]": 0, - "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL_ROOM]": 0, - "test_custom_ls_input_binaural[4d4-BINAURAL]": 0.2, - "test_custom_ls_input_binaural[4d4-BINAURAL_ROOM]": 0, - "test_custom_ls_input_binaural[custom1-BINAURAL]": 0.2, - "test_custom_ls_input_binaural[custom1-BINAURAL_ROOM]": 0, - "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL]": 0, - "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL_ROOM]": 3, - "test_custom_ls_input_binaural[t_design_4-BINAURAL]": 0, - "test_custom_ls_input_binaural[t_design_4-BINAURAL_ROOM]": 0, - "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[16ch_8+4+4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-full_circle_in_15s]": 0.1, - "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[4d4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[custom1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-full_circle_in_15s]": 3, - "test_custom_ls_input_binaural_headrotation[itu_4+5+1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, - "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-full_circle_in_15s]": 0.1, - "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_custom_ls_input_binaural_headrotation[t_design_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_ism[ISM1-FOA]": 45, - "test_ism[ISM1-HOA2]": 41, - "test_ism[ISM1-HOA3]": 38, - "test_ism[ISM2-FOA]": 45, - "test_ism[ISM2-HOA2]": 41, - "test_ism[ISM2-HOA3]": 38, - "test_ism[ISM3-FOA]": 45, - "test_ism[ISM3-HOA2]": 41, - "test_ism[ISM3-HOA3]": 38, - "test_ism[ISM4-FOA]": 45, - "test_ism[ISM4-HOA2]": 41, - "test_ism[ISM4-HOA3]": 38, - "test_ism_binaural_headrotation[ISM1-BINAURAL-full_circle_in_15s]": 0, - "test_ism_binaural_headrotation[ISM1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 6.7, - "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, - "test_ism_binaural_headrotation[ISM2-BINAURAL-full_circle_in_15s]": 0, - "test_ism_binaural_headrotation[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 4, - "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_ism_binaural_headrotation[ISM3-BINAURAL-full_circle_in_15s]": 0, - "test_ism_binaural_headrotation[ISM3-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-full_circle_in_15s]": 4, - "test_ism_binaural_headrotation[ISM3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_ism_binaural_headrotation[ISM4-BINAURAL-full_circle_in_15s]": 0, - "test_ism_binaural_headrotation[ISM4-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-full_circle_in_15s]": 3.9, - "test_ism_binaural_headrotation[ISM4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_ism_binaural_static[ISM1-BINAURAL]": 0.00, - "test_ism_binaural_static[ISM1-BINAURAL_ROOM]": 18, - "test_ism_binaural_static[ISM2-BINAURAL]": 0, - "test_ism_binaural_static[ISM2-BINAURAL_ROOM]": 19, - "test_ism_binaural_static[ISM3-BINAURAL]": 0, - "test_ism_binaural_static[ISM3-BINAURAL_ROOM]": 19, - "test_ism_binaural_static[ISM4-BINAURAL]": 0, - "test_ism_binaural_static[ISM4-BINAURAL_ROOM]": 19, - "test_metadata[mixed_scene-5_1_4]": 11, - "test_metadata[mixed_scene-MONO]": 13, - "test_metadata[mixed_scene-STEREO]": 12, - "test_multichannel_binaural_headrotation[5_1-BINAURAL-full_circle_in_15s]": 0, - "test_multichannel_binaural_headrotation[5_1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-full_circle_in_15s]": 3, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 0.7, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-full_circle_in_15s]": 3.1, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0.7, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_multichannel_binaural_headrotation[7_1-BINAURAL-full_circle_in_15s]": 0, - "test_multichannel_binaural_headrotation[7_1-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-full_circle_in_15s]": 2, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0.7, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 0, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 1, - "test_multichannel_binaural_static[5_1-BINAURAL]": 6, - "test_multichannel_binaural_static[5_1-BINAURAL_ROOM]": 1, - "test_multichannel_binaural_static[5_1_2-BINAURAL]": 7.5, - "test_multichannel_binaural_static[5_1_2-BINAURAL_ROOM]": 1, - "test_multichannel_binaural_static[5_1_4-BINAURAL]": 7, - "test_multichannel_binaural_static[5_1_4-BINAURAL_ROOM]": 1, - "test_multichannel_binaural_static[7_1-BINAURAL]": 6, - "test_multichannel_binaural_static[7_1-BINAURAL_ROOM]": 1, - "test_multichannel_binaural_static[7_1_4-BINAURAL]": 7, - "test_multichannel_binaural_static[7_1_4-BINAURAL_ROOM]": 1, - "test_multichannel_binaural_static_vs_crend_unittest[5_1-BINAURAL]": 23, - "test_multichannel_binaural_static_vs_crend_unittest[5_1-BINAURAL_ROOM]": 38, - "test_multichannel_binaural_static_vs_crend_unittest[5_1_2-BINAURAL]": 24, - "test_multichannel_binaural_static_vs_crend_unittest[5_1_2-BINAURAL_ROOM]": 37, - "test_multichannel_binaural_static_vs_crend_unittest[5_1_4-BINAURAL]": 23, - "test_multichannel_binaural_static_vs_crend_unittest[5_1_4-BINAURAL_ROOM]": 36, - "test_multichannel_binaural_static_vs_crend_unittest[7_1-BINAURAL]": 24, - "test_multichannel_binaural_static_vs_crend_unittest[7_1-BINAURAL_ROOM]": 37, - "test_multichannel_binaural_static_vs_crend_unittest[7_1_4-BINAURAL]": 23, - "test_multichannel_binaural_static_vs_crend_unittest[7_1_4-BINAURAL_ROOM]": 36, -} diff --git a/tests/renderer/test_renderer_vs_decoder.py b/tests/renderer/test_renderer_vs_decoder.py new file mode 100644 index 0000000000..cd88580d9b --- /dev/null +++ b/tests/renderer/test_renderer_vs_decoder.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 + +""" + (C) 2022 Baseline Development Group with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The Baseline Development Group consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., and VoiceAge Corporation retain full ownership + rights in their respective contributions in the software. No license of any kind, including but not + limited to patent license, of any foregoing parties is hereby granted by implication, estoppel or + otherwise. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and/or fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +from .utils import * + +""" Ambisonics """ + + +@pytest.mark.skip("Ambisonics comparison requires CLDFB interface") +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics_vs_decoder(test_info, in_fmt, out_fmt): + compare_renderer_vs_decoder(test_info, in_fmt, out_fmt) + + +@pytest.mark.skip("Ambisonics comparison requires CLDFB interface") +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics_binaural_static_vs_decoder(test_info, in_fmt, out_fmt): + compare_renderer_vs_decoder(test_info, in_fmt, out_fmt) + + +@pytest.mark.skip("Ambisonics comparison requires CLDFB interface") +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics_binaural_headrotation_vs_decoder( + test_info, in_fmt, out_fmt, trj_file +): + compare_renderer_vs_decoder( + test_info, + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + +""" Multichannel """ + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel_vs_decoder(test_info, in_fmt, out_fmt): + if in_fmt == "MONO": + pytest.skip("(EVS) Mono decoder rendering unsupported") + + if in_fmt == "STEREO" and out_fmt in ["FOA", "HOA2", "HOA3"]: + pytest.skip("Stereo to Ambisonics rendering unsupported in the decoder") + + compare_renderer_vs_decoder(test_info, in_fmt, out_fmt) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel_binaural_static_vs_decoder(test_info, in_fmt, out_fmt): + if in_fmt in ["MONO", "STEREO"]: + pytest.skip("MONO or STEREO to Binaural rendering unsupported") + + compare_renderer_vs_decoder(test_info, in_fmt, out_fmt) + + +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel_binaural_headrotation_vs_decoder( + test_info, in_fmt, out_fmt, trj_file +): + if in_fmt in ["MONO", "STEREO"]: + pytest.skip("MONO or STEREO to Binaural rendering unsupported") + + compare_renderer_vs_decoder( + test_info, + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + +""" ISM """ + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) +def test_ism_vs_decoder(test_info, in_fmt, out_fmt): + compare_renderer_vs_decoder(test_info, in_fmt, out_fmt) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) +def test_ism_binaural_static_vs_decoder(test_info, in_fmt, out_fmt): + compare_renderer_vs_decoder(test_info, in_fmt, out_fmt) + + +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) +def test_ism_binaural_headrotation_vs_decoder(test_info, in_fmt, out_fmt, trj_file): + compare_renderer_vs_decoder( + test_info, + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) diff --git a/tests/renderer/utils.py b/tests/renderer/utils.py new file mode 100644 index 0000000000..92d017c43a --- /dev/null +++ b/tests/renderer/utils.py @@ -0,0 +1,439 @@ +#!/usr/bin/env python3 + +""" + (C) 2022 Baseline Development Group with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The Baseline Development Group consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., and VoiceAge Corporation retain full ownership + rights in their respective contributions in the software. No license of any kind, including but not + limited to patent license, of any foregoing parties is hereby granted by implication, estoppel or + otherwise. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and/or fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + +import subprocess as sp +import sys +from pathlib import Path +from tempfile import TemporaryDirectory +from typing import Optional, Tuple + +import numpy as np +import pytest + + +from .compare_audio import compare_audio_arrays +from .constants import * + +sys.path.append(SCRIPTS_DIR) +import pyaudio3dtools + +# fixture returns test information, enabling per-testcase SNR +@pytest.fixture +def test_info(request): + return request + + +def run_cmd(cmd): + try: + sp.run(cmd, check=True, capture_output=True, text=True) + except sp.CalledProcessError as e: + raise SystemError( + f"Command returned non-zero exit status ({e.returncode}): {' '.join(e.cmd)}\n{e.stderr}\n{e.stdout}" + ) + + +def check_BE( + test_info, + ref: np.ndarray, + ref_fs: int, + cut: np.ndarray, + cut_fs: int, +): + + if ref is None or np.array_equal(ref, np.zeros_like(ref)): + pytest.fail("REF signal does not exist or is zero!") + + if cut is None or np.array_equal(cut, np.zeros_like(cut)): + pytest.fail("CuT signal does not exist or is zero!") + + snr, gain_b, max_diff = compare_audio_arrays(ref, ref_fs, cut, cut_fs) + + if np.isnan(snr) or gain_b == 0: + pytest.fail("Invalid comparison result, check your signals!") + + # try to get a minimum SNR from the config + if test_info.node.name in pass_snr: + snr_min = pass_snr.get(test_info.node.name) + else: + snr_min = np.inf + + # TODO temporary fix to pad TD Object Renderer Standalone output + if ref.shape != cut.shape: + ref = np.pad(ref, [(0, cut.shape[0] - ref.shape[0]), (0, 0)]) + + # check max_diff as well, since compare_audio_arrays will try to adjust for small delay differences + if not np.allclose(ref, cut, rtol=0, atol=2) and max_diff > 2: + if snr >= snr_min: + pytest.xfail( + f"Expected failure with minimum SNR {snr_min} vs {snr:3.2f}dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" + ) + else: + pytest.fail( + f"CuT not BE to REF! SNR : {snr:3.2f} dB, Gain CuT: {gain_b:1.3f}, Max Diff = {int(max_diff)}" + ) + + +def run_enc( + in_fmt: str, + bit_file: str, + in_meta_files: Optional[list] = None, +) -> None: + + cmd = IVAS_COD_CMD[:] + cmd[1] = FORMAT_TO_IVAS[in_fmt][0] + cmd[2] = FORMAT_TO_IVAS[in_fmt][1] + cmd[3] = FORMAT_TO_IVAS_BR[in_fmt] + cmd[5] = str(FORMAT_TO_FILE[in_fmt]) + cmd[6] = bit_file + + if in_meta_files is not None: + cmd[3:3] = [*in_meta_files] + + if in_fmt == "MONO": + cmd.pop(1) + cmd.pop(1) + elif in_fmt == "STEREO": + cmd.pop(2) + + run_cmd(cmd) + + +def run_dec( + bit_file: str, + out_file: str, + out_fmt: str, + trj_file: Optional[str] = None, +) -> Tuple[np.ndarray, int]: + + cmd = IVAS_DEC_CMD[:] + cmd[2] = out_fmt + cmd[4] = bit_file + cmd[5] = out_file + + if trj_file is not None and out_fmt in ["BINAURAL", "BINAURAL_ROOM"]: + cmd[1:1] = ["-T", str(trj_file)] + + run_cmd(cmd) + + return pyaudio3dtools.audiofile.readfile(out_file) + + +def run_renderer( + in_fmt: str, + out_fmt: str, + metadata_input: Optional[str] = None, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +) -> Tuple[np.ndarray, int]: + """CuT creation with standalone renderer""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + if metadata_input is not None: + in_file = metadata_input + in_name = metadata_input.stem + elif not isinstance(in_fmt, str): + in_file = FORMAT_TO_FILE[in_fmt.stem] + in_name = in_fmt.stem + else: + in_file = FORMAT_TO_FILE[in_fmt] + in_name = in_fmt + + out_file = str(OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) + + cmd = RENDERER_CMD[:] + cmd[2] = str(in_file) + cmd[4] = str(in_fmt) + cmd[6] = str(out_file) + cmd[8] = str(out_fmt) + + if in_meta_files is not None: + cmd[5:5] = ["-im", *in_meta_files] + + if trj_file is not None: + cmd.extend(["-tf", str(trj_file)]) + + run_cmd(cmd) + + return pyaudio3dtools.audiofile.readfile(out_file) + + +def run_renderer_ext( + in_file: str, + in_fmt: str, + out_fmt: str, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +) -> Tuple[np.ndarray, int]: + """Run renderer with decoder float dump""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + in_name = in_fmt + + out_file = str(OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) + + cmd = RENDERER_CMD[:] + cmd[2] = str(in_file) + cmd[4] = str(in_fmt) + cmd[6] = str(out_file) + cmd[8] = str(out_fmt) + + if in_meta_files is not None: + cmd[5:5] = ["-im", *in_meta_files] + + if trj_file is not None: + cmd.extend(["-tf", str(trj_file)]) + + run_cmd(cmd) + + return pyaudio3dtools.audiofile.readfile(out_file) + + +def run_crend_unittest( + in_fmt: str, + out_fmt: str, + metadata_input: Optional[str] = None, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +) -> Tuple[np.ndarray, int]: + """CuT creation with standalone renderer""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + if metadata_input is not None: + in_file = metadata_input + in_name = metadata_input.stem + elif not isinstance(in_fmt, str): + in_file = FORMAT_TO_FILE[in_fmt.stem] + in_name = in_fmt.stem + else: + in_file = FORMAT_TO_FILE[in_fmt] + in_name = in_fmt + + out_file = str( + OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}_crend.wav") + ) + + cmd = RENDERER_CREND_CMD[:] + cmd[6] = FORMAT_TO_CREND_FORMAT[str(in_fmt)] + cmd[8] = FORMAT_TO_CREND_FORMAT[str(out_fmt)] + cmd[10] = str(in_file) + cmd[12] = str(out_file) + if str(out_fmt) == "BINAURAL_ROOM": + cmd.append("-brir") + + if trj_file is not None: + cmd.extend(["-t", str(trj_file)]) + cmd.extend(["-otr", "REF"]) + + run_cmd(cmd) + + return pyaudio3dtools.audiofile.readfile(out_file) + + +def run_td_standalone( + in_fmt: str, + out_fmt: str, + metadata_input: Optional[str] = None, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +): + """CuT creation with TD Object renderer""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + if metadata_input is not None: + in_file = metadata_input + in_name = metadata_input.stem + elif not isinstance(in_fmt, str): + in_file = FORMAT_TO_FILE[in_fmt.stem] + in_name = in_fmt.stem + else: + in_file = FORMAT_TO_FILE[in_fmt] + in_name = in_fmt + + out_file = str(OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}.pcm")) + + in_spfmt = pyaudio3dtools.spatialaudioformat.Format(in_fmt) + + with TemporaryDirectory() as tmp_dir: + # write PCM tmp file + tmp_dir = Path(tmp_dir) + in_file_pcm = tmp_dir.joinpath(in_file.stem + ".pcm") + + in_sig, _ = pyaudio3dtools.audiofile.readfile(in_file) + pyaudio3dtools.audiofile.writefile(in_file_pcm, in_sig) + + cmd = TDRENDERER_CMD[:] + cmd[2] = str(in_file_pcm) + cmd[3] = str(out_file) + + if in_spfmt.isloudspeaker: + cmd[1:1] = ["-mc", in_spfmt.name] + else: + cmd[1:1] = str(in_spfmt.nchannels) + if in_meta_files is not None: + cmd[2:2] = in_meta_files + else: + cmd[2:2] = ["NULL"] * in_spfmt.nchannels + + if trj_file is not None: + cmd[1:1] = ["-T", str(trj_file)] + + run_cmd(cmd) + + return pyaudio3dtools.audiofile.readfile(out_file, nchannels=2) + + +def run_pyscripts( + in_fmt, + out_fmt, + metadata_input: Optional[str] = None, + in_meta_files: Optional[list] = None, + trj_file: Optional[str] = None, +) -> Tuple[np.ndarray, int]: + """Reference rendering with pyaudio3dtools""" + if trj_file is not None: + trj_name = f"_{trj_file.stem}" + else: + trj_name = "" + + if not isinstance(out_fmt, str): + out_name = f"{out_fmt.stem}" + else: + out_name = out_fmt + + if metadata_input is not None: + in_file = metadata_input + in_name = metadata_input.stem + elif isinstance(in_fmt, Path): + in_file = FORMAT_TO_FILE[in_fmt.stem] + in_name = in_fmt.stem + else: + in_file = FORMAT_TO_FILE[in_fmt] + in_name = in_fmt + + out_file = str(OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) + + pyaudio3dtools.spatialaudioconvert.spatial_audio_convert( + in_file, + out_file, + in_format=in_fmt, + out_format=out_fmt, + in_meta_files=in_meta_files, + trajectory=trj_file, + limit_output=True, + ) + + return pyaudio3dtools.audiofile.readfile(out_file) + + +def compare_renderer_vs_pyscripts(test_info, in_fmt, out_fmt, **kwargs): + ref, ref_fs = run_pyscripts(in_fmt, out_fmt, **kwargs) + cut, cut_fs = run_renderer(in_fmt, out_fmt, **kwargs) + check_BE(test_info, ref, ref_fs, cut, cut_fs) + + +def compare_renderer_vs_crend_unit_test(test_info, in_fmt, out_fmt, **kwargs): + ref, ref_fs = run_crend_unittest(in_fmt, out_fmt, **kwargs) + cut, cut_fs = run_renderer(in_fmt, out_fmt, **kwargs) + check_BE(test_info, ref, ref_fs, cut, cut_fs) + + +def compare_renderer_vs_td_standalone(test_info, in_fmt, out_fmt, **kwargs): + ref, ref_fs = run_td_standalone(in_fmt, out_fmt, **kwargs) + cut, cut_fs = run_renderer(in_fmt, out_fmt, **kwargs) + check_BE(test_info, ref, ref_fs, cut, cut_fs) + + +def compare_renderer_vs_decoder(test_info, in_fmt, out_fmt, **kwargs): + with TemporaryDirectory() as tmp_dir: + tmp_dir = Path(tmp_dir) + + in_meta_files = None + bit_file = str(tmp_dir.joinpath(f"{in_fmt}_to_{out_fmt}.192")) + out_file_decoder = str(OUTPUT_PATH_REF.joinpath(f"{in_fmt}_to_{out_fmt}.wav")) + + # Ref: cod -> dec (out_fmt) + if in_fmt in FORMAT_TO_METADATA_FILES.keys(): + in_meta_files = FORMAT_TO_METADATA_FILES[in_fmt] + + # encoder + run_enc(in_fmt, bit_file, in_meta_files=in_meta_files) + # decoder renderer + ref, ref_fs = run_dec(bit_file, out_file_decoder, out_fmt, **kwargs) + + # CuT cod -> dec (in_fmt) -> rend + if in_fmt in FORMAT_TO_METADATA_FILES.keys(): + tmp_fmt = "EXT" + in_meta_files = [ + str(tmp_dir.joinpath(f"{in_fmt}_to_EXT.wav.{n}.csv")) + for n in range(int(in_fmt[3])) + ] + else: + tmp_fmt = in_fmt + + out_file_ext = str(tmp_dir.joinpath(f"{in_fmt}_to_{tmp_fmt}.wav")) + + # passthrough decoder + run_dec(bit_file, out_file_ext, tmp_fmt, **kwargs) + # external renderer + cut, cut_fs = run_renderer_ext( + out_file_ext, in_fmt, out_fmt, in_meta_files=in_meta_files, **kwargs + ) + + check_BE(test_info, ref, ref_fs, cut, cut_fs) -- GitLab From 90fe5a24a19403f72a813c67555b9f67137bf1a9 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 4 Nov 2022 10:58:25 +0100 Subject: [PATCH 420/479] ci updates --- .gitlab-ci.yml | 4 ++-- tests/renderer/constants.py | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5f840839ea..73927a1ccf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -342,14 +342,14 @@ external-renderer-cmake-msan-pytest: - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py # test external renderer executable with cmake vs decoder renderer -external-renderer-make-vs-decoder-pytest: +external-renderer-cmake-vs-decoder-pytest: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-cmake"] stage: test script: - - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP + - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n 1 -rA tests/renderer/test_renderer_vs_decoder.py diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index d76be35089..8c36d7b539 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -35,8 +35,6 @@ TEST_VECTOR_DIR = TESTS_DIR.joinpath("data") OUTPUT_PATH_REF = TESTS_DIR.joinpath("ref") OUTPUT_PATH_CUT = TESTS_DIR.joinpath("cut") -OUTPUT_PATH_REF = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/ref") -OUTPUT_PATH_CUT = TESTS_DIR.joinpath("/home/amm-er/tmu/external_renderer/cut") CUSTOM_LAYOUT_DIR = SCRIPTS_DIR.joinpath("ls_layouts") HR_TRAJECTORY_DIR = SCRIPTS_DIR.joinpath("trajectories") -- GitLab From 1fba23eaec4ca34b700c1eea455460cc64712915 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 4 Nov 2022 11:18:31 +0100 Subject: [PATCH 421/479] ci updates --- .gitlab-ci.yml | 2 +- .../tests/unit_tests/crend/ivas_crend_utest_utils.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 73927a1ccf..30c822bd26 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -349,7 +349,7 @@ external-renderer-cmake-vs-decoder-pytest: needs: ["build-codec-linux-cmake"] stage: test script: - - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP + - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n 1 -rA tests/renderer/test_renderer_vs_decoder.py diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c index 42d9795219..de9212443e 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c @@ -1591,7 +1591,7 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl count_free( ppDelay_lines[i] ); } } - if ( st_ivas.hRenderConfig->roomAcoustics.late_reverb_on ) + if ( st_ivas.hRenderConfig != NULL ) { ivas_render_config_close( &st_ivas.hRenderConfig ); } -- GitLab From 1fb4c6eae406aab14357b3f52409a9e15089b5ce Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 4 Nov 2022 11:51:35 +0100 Subject: [PATCH 422/479] fix linker error and warnings in crend_unit_test --- CMakeLists.txt | 1 + .../unit_tests/crend/ivas_crend_utest_utils.c | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 75dabe1d22..a048f400a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -135,6 +135,7 @@ endif() file(GLOB libDebugSrcs "lib_debug/*.c") file(GLOB libDebugHeaders "lib_debug/*.h") add_library(lib_debug ${libDebugSrcs} ${libDebugHeaders}) +target_link_libraries(lib_debug lib_com) file(GLOB libEncSrcs "lib_enc/*.c") file(GLOB libEncHeaders "lib_enc/*.h") diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c index de9212443e..43853e041f 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c @@ -1209,11 +1209,11 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { if ( ( error = ivas_headTrack_open( &( st_ivas.hHeadTrackData ) ) ) != IVAS_ERR_OK ) { - return error; + return IVAS_FAILED; } if ( ( error = HeadRotationFileReader_open( pIo_params->csv_path, &headRotReader ) ) != IVAS_ERR_OK ) { - return error; + return IVAS_FAILED; } } @@ -1327,7 +1327,10 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { if ( ( st_ivas.hLFE->lfe_delay_buf = (float *) count_malloc( st_ivas.hLFE->lfe_addl_delay * sizeof( float ) ) ) == NULL ) { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for LFE additional delay buffer\n" ) ); + if ( ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for LFE additional delay buffer\n" ) ) != IVAS_ERR_OK ) + { + return IVAS_FAILED; + } } set_zero( (float *) st_ivas.hLFE->lfe_delay_buf, st_ivas.hLFE->lfe_addl_delay ); } @@ -1345,7 +1348,10 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { if ( ( ppDelay_lines[i] = (float *) count_malloc( delay_lp * sizeof( float ) ) ) == NULL ) { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for LFE additional delay buffer\n" ) ); + if ( ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for LFE additional delay buffer\n" ) ) != IVAS_ERR_OK ) + { + return IVAS_FAILED; + } } set_zero( (float *) ppDelay_lines[i], delay_lp ); } -- GitLab From d9abd3a88523619bced553f3962637d95c6d7cea Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Fri, 4 Nov 2022 12:13:52 +0100 Subject: [PATCH 423/479] Revert "Apply formatting to make clang-format job pass" This reverts commit 980ca09dc0a3359fb1dbb31231d47053322afd79. --- lib_com/ivas_stereo_psychlpc_com.c | 16 ++++++++-------- lib_com/vlpc_2st_com.c | 3 ++- lib_dec/igf_dec.c | 7 ++++--- lib_dec/ivas_core_dec.c | 4 ++-- lib_dec/ivas_spar_md_dec.c | 2 +- lib_dec/ivas_stereo_mdct_stereo_dec.c | 14 +++++++------- lib_enc/igf_enc.c | 6 +++--- lib_enc/ivas_agc_enc.c | 4 ++-- lib_enc/ivas_sns_enc.c | 1 + 9 files changed, 30 insertions(+), 27 deletions(-) mode change 100644 => 100755 lib_enc/igf_enc.c diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index 8a50caaa29..3cbca73cc0 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -68,14 +68,14 @@ static void SpectrumWeighting_Init( * initialize a PsychoacousticParameters structure *-------------------------------------------------------------------*/ -ivas_error -PsychoacousticParameters_Init( - const int32_t sr_core, /* i : sampling rate of core-coder */ - const int16_t nBins, /* i : Number of bins (spectral lines) */ - const int8_t nBands, /* i : Number of spectrum subbands */ - const int16_t isTCX20, /* i : Flag indicating if the subband division is for TCX20 or TCX10 */ - const int16_t isWarped, /* i : Flag indicating if the scale is linear or warped */ - PsychoacousticParameters *pPsychParams ) + ivas_error + PsychoacousticParameters_Init( + const int32_t sr_core, /* i : sampling rate of core-coder */ + const int16_t nBins, /* i : Number of bins (spectral lines) */ + const int8_t nBands, /* i : Number of spectrum subbands */ + const int16_t isTCX20, /* i : Flag indicating if the subband division is for TCX20 or TCX10 */ + const int16_t isWarped, /* i : Flag indicating if the scale is linear or warped */ + PsychoacousticParameters *pPsychParams ) { if ( pPsychParams == NULL ) diff --git a/lib_com/vlpc_2st_com.c b/lib_com/vlpc_2st_com.c index 86fdf68c5f..f027ecd8ea 100644 --- a/lib_com/vlpc_2st_com.c +++ b/lib_com/vlpc_2st_com.c @@ -52,7 +52,8 @@ void lsf_weight_2st( const float *lsfq, float *w, const int16_t mode, - const int32_t sr_core ) + const int32_t sr_core +) { int16_t i; float d[M + 1]; diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index 2cded75928..f876391b2d 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -679,8 +679,8 @@ static void IGF_appl( float *pSpectralData, /* i/o: Q31 | MDCT spectrum */ const float *igf_spec, /* i : Q31 | prepared IGF spectrum */ float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ - int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ - const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ + int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ + const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ ) { H_IGF_GRID hGrid; @@ -1240,7 +1240,8 @@ void IGFDecApplyStereo( const int16_t *coreMsMask, const int16_t restrict_hopsize, const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t bfi_apply_damping ) + const int16_t bfi_apply_damping +) { IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR; H_IGF_GRID hGrid; diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index e18f0e3e5d..fd5d5b3c1e 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -186,8 +186,8 @@ ivas_error ivas_core_dec( { float gain; - gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain - : 0.0f; + gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : + ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain : 0.0f; if ( ( st->element_mode == IVAS_CPE_MDCT && hMCT == NULL ) || ( st->hPlcInfo != NULL ) ) { diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index d670741610..3d5f03b208 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -1419,7 +1419,7 @@ void ivas_spar_dec_gen_umx_mat( } } } - + #ifdef DEBUG_SBA_MD_DUMP { static FILE *f_mat = 0; diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 020d9f96df..1bdbb5eda7 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -215,15 +215,15 @@ void stereo_decoder_tcx( const int16_t core_r, /* i : core for right channel (TCX20/TCX10) */ const int16_t igf, /* i : flag for IGF activity */ #ifdef FIX_TCX10_STEREO_PROC - const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ - const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ + const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ + const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ #else - const int16_t L_frame, /* i : TCX frame length */ + const int16_t L_frame, /* i : TCX frame length */ #endif - const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ - const int16_t last_core_l, /* i : last core for left channel */ - const int16_t last_core_r, /* i : last core for right channel */ - const int16_t tmp_plc_upmix /* i : indicates temp upmix for PLC decision */ + const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ + const int16_t last_core_l, /* i : last core for left channel */ + const int16_t last_core_r, /* i : last core for right channel */ + const int16_t tmp_plc_upmix /* i : indicates temp upmix for PLC decision */ ) { int16_t i, k, sfb, nSubframes; diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c old mode 100644 new mode 100755 index e355cd2083..6050354a8f --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -462,7 +462,7 @@ static void IGF_CalculateEnvelope( float diffSFM; float shiftedSFM = 0.f; - tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); + tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); tmp_sb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, tmp, strt_cpy ) / IGF_getCrest_new( hPrivateData->logSpec, tmp, strt_cpy ); if ( last_core_acelp || hPrivateData->wasTransient ) @@ -494,12 +494,12 @@ static void IGF_CalculateEnvelope( if ( slope < -threshold ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); } else if ( ( slope > 1.f * threshold ) && ( sfb != hGrid->sfbWrap[hGrid->nTiles] - 1 ) ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); } if ( shiftedSFM > 0.04f ) diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index b0012ee469..0f3274f43c 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -74,8 +74,8 @@ int16_t ivas_agc_enc_get_enablement_flag( int16_t nchan_transport ) { return (int16_t) ( ( agc_configuration == IVAS_ENC_AGC_UNDEFINED ) - ? ( nchan_transport == 1 ) - : agc_configuration ); + ? ( nchan_transport == 1 ) + : agc_configuration ); } #endif diff --git a/lib_enc/ivas_sns_enc.c b/lib_enc/ivas_sns_enc.c index 45c04ac9ea..6790f0cf6d 100644 --- a/lib_enc/ivas_sns_enc.c +++ b/lib_enc/ivas_sns_enc.c @@ -44,6 +44,7 @@ #include "wmops.h" + /*------------------------------------------------------------------- * sns_1st_cod() * -- GitLab From 46d2a5d3ecafe443056236f9191a253586dfac42 Mon Sep 17 00:00:00 2001 From: Kacper Sagnowski Date: Fri, 4 Nov 2022 12:53:23 +0100 Subject: [PATCH 424/479] Fix formatting --- lib_dec/ivas_core_dec.c | 3 ++- lib_dec/ivas_tcx_core_dec.c | 5 ++--- lib_enc/ivas_sba_enc.c | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index 5c189b7d32..1d98e39e2b 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -206,7 +206,8 @@ ivas_error ivas_core_dec( { float gain; - gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain : 0.0f; + gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain + : 0.0f; if ( ( st->element_mode == IVAS_CPE_MDCT && hMCT == NULL ) || ( st->hPlcInfo != NULL ) ) { diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 8e56ed5ef7..54af577fd1 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -835,7 +835,7 @@ static void dec_prm_tcx( #ifdef FIX_TCX_DEC_RECONF_BFI const int16_t last_element_mode, #endif - int16_t *bitsRead /* o : number of read bits */ + int16_t *bitsRead /* o : number of read bits */ ) { int16_t start_bit_pos, bits_common; @@ -963,8 +963,7 @@ static void dec_prm_tcx( static void stereo_tcx_dec_mode_switch_reconf( Decoder_State *st, const int16_t MCT_flag, - const int16_t last_element_mode -) + const int16_t last_element_mode ) { int16_t frame_size_index; diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index aca565b64d..d987b41d51 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -150,8 +150,8 @@ ivas_error ivas_sba_enc_reinit( ind_list_metadata = hMetaData->ind_list; /*------------------------------------------------------------------------------------------* - * Closing Encoder handles before Reinitialisation - *------------------------------------------------------------------------------------------*/ + * Closing Encoder handles before Reinitialisation + *------------------------------------------------------------------------------------------*/ /* Q Metadata handle */ ivas_qmetadata_close( &( st_ivas->hQMetaData ) ); @@ -208,8 +208,8 @@ ivas_error ivas_sba_enc_reinit( } /*------------------------------------------------------------------------------------------* - * Reopening Encoder handles for Reinitialisation - *------------------------------------------------------------------------------------------*/ + * Reopening Encoder handles for Reinitialisation + *------------------------------------------------------------------------------------------*/ if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { -- GitLab From 5822c79e1a03dd3365a068daaf4471d175836801 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 4 Nov 2022 14:15:51 +0100 Subject: [PATCH 425/479] update xfail thresholds with comments --- .../unit_tests/crend/ivas_crend_utest_utils.c | 12 +-- tests/renderer/constants.py | 90 ++++++++++--------- tests/renderer/test_renderer.py | 4 +- tests/renderer/utils.py | 8 +- 4 files changed, 59 insertions(+), 55 deletions(-) diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c index 43853e041f..6ef4a55fd1 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c @@ -1327,10 +1327,8 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { if ( ( st_ivas.hLFE->lfe_delay_buf = (float *) count_malloc( st_ivas.hLFE->lfe_addl_delay * sizeof( float ) ) ) == NULL ) { - if ( ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for LFE additional delay buffer\n" ) ) != IVAS_ERR_OK ) - { - return IVAS_FAILED; - } + fprintf( stderr, "Can not allocate memory for LFE additional delay buffer\n" ); + return IVAS_FAILED; } set_zero( (float *) st_ivas.hLFE->lfe_delay_buf, st_ivas.hLFE->lfe_addl_delay ); } @@ -1348,10 +1346,8 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl { if ( ( ppDelay_lines[i] = (float *) count_malloc( delay_lp * sizeof( float ) ) ) == NULL ) { - if ( ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for LFE additional delay buffer\n" ) ) != IVAS_ERR_OK ) - { - return IVAS_FAILED; - } + fprintf( stderr, "Can not allocate memory for LFE additional delay buffer\n" ); + return IVAS_FAILED; } set_zero( (float *) ppDelay_lines[i], delay_lp ); } diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index 8c36d7b539..d1b2ee202d 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -92,7 +92,7 @@ TDRENDERER_CMD = [ ] """ CREND commandline template """ -RENDERER_CREND_CMD = [ +CREND_CMD = [ str( SCRIPTS_DIR.joinpath("ivas_pytests/tests/unit_tests/crend/IVAS_crend_unit_test") ), @@ -109,7 +109,7 @@ RENDERER_CREND_CMD = [ "-o", "/dev/null", # 6 -> output file # "-lp_lfe", - "-limiter" + # "-limiter" # "-no_delay_cmp" ] @@ -281,19 +281,18 @@ pass_snr = { # External Renderer vs Standalone and pyaudio3dtools renderers tests # #################################################################### - # Crend used internally, comparison to pyaudio3dtools has bad SNR - # Crend unit test does not support Quaternion files + # TODO needs debugging + "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-full_circle_in_15s]": 18, + "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-full_circle_in_15s]": 15, + # Crend unit test does not support SHD BRIRs "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-full_circle_in_15s]": 18, "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-rotate_yaw_pitch_roll1]": 4, - "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-full_circle_in_15s]": 15, "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_ambisonics_binaural_headrotation[HOA3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-rotate_yaw_pitch_roll1]": 3, - # TODO needs debugging "test_ambisonics_binaural_static[FOA-BINAURAL_ROOM]": 0, "test_ambisonics_binaural_static[HOA2-BINAURAL_ROOM]": 0, "test_ambisonics_binaural_static[HOA3-BINAURAL_ROOM]": 0, @@ -324,7 +323,8 @@ pass_snr = { "test_custom_ls_input_binaural[t_design_4-BINAURAL]": 0, "test_custom_ls_input_binaural[t_design_4-BINAURAL_ROOM]": 0, # Crend used internally, comparison to pyaudio3dtools has bad SNR - # Crend unit test does not support ISM rendering or Quaternion files + # Crend unit test does not support ISM rendering + # 5ms rendering still TODO in renderer "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 9, "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4, "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 10, @@ -340,7 +340,7 @@ pass_snr = { "test_ism_binaural_static[ISM2-BINAURAL_ROOM]": 21, "test_ism_binaural_static[ISM3-BINAURAL_ROOM]": 21, "test_ism_binaural_static[ISM4-BINAURAL_ROOM]": 21, - # TODO needs debugging, minor differences could be due to crossfades or metadata position casts + # TODO needs debugging, minor differences could be due to crossfades or metadata position rounding "test_ism[ISM1-5_1_2]": 48, "test_ism[ISM1-5_1_4]": 48, "test_ism[ISM1-5_1]": 48, @@ -377,28 +377,35 @@ pass_snr = { "test_ism[ISM4-HOA2]": 36, "test_ism[ISM4-HOA3]": 33, "test_ism[ISM4-STEREO]": 57, - # Crend used internally, comparison to pyaudio3dtools has bad SNR - # Crend unit test does not support Quaternion files - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-full_circle_in_15s]": 8, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 2, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, - "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 1, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-full_circle_in_15s]": 8, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 2, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, - "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 1, + # bitexact except for delay alignment of LFE signal (Issue 59) "test_multichannel_binaural_headrotation[5_1-BINAURAL-full_circle_in_15s]": 7, - "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-full_circle_in_15s]": 3, - "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, "test_multichannel_binaural_headrotation[5_1-BINAURAL-rotate_yaw_pitch_roll1]": 6, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-full_circle_in_15s]": 7, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 2, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, - "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 1, "test_multichannel_binaural_headrotation[7_1-BINAURAL-full_circle_in_15s]": 8, - "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-full_circle_in_15s]": 2, - "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 2, "test_multichannel_binaural_headrotation[7_1-BINAURAL-rotate_yaw_pitch_roll1]": 8, + # TODO minor differences, needs debugging + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-full_circle_in_15s]": 30, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 30, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-full_circle_in_15s]": 29, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 29, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-full_circle_in_15s]": 30, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 30, + # headrotation may be applied differently + "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-full_circle_in_15s]": 10, + "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 11, + "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 12, + "test_multichannel_binaural_headrotation[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, + "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-full_circle_in_15s]": 10, + "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 10, + "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, + # TODO minor differences, needs debugging (same as headrotation case) + "test_multichannel_binaural_static[5_1_2-BINAURAL]": 30, + "test_multichannel_binaural_static[5_1_4-BINAURAL]": 29, + "test_multichannel_binaural_static[5_1-BINAURAL]": 27, + "test_multichannel_binaural_static[7_1-BINAURAL]": 30, + "test_multichannel_binaural_static[7_1_4-BINAURAL]": 30, ##################################### # # External vs Internal Renderer tests @@ -420,45 +427,46 @@ pass_snr = { "test_ism_binaural_static_vs_decoder[ISM2-BINAURAL_ROOM]": 12, "test_ism_binaural_static_vs_decoder[ISM3-BINAURAL_ROOM]": 12, "test_ism_binaural_static_vs_decoder[ISM4-BINAURAL_ROOM]": 12, + # TODO ISM to stereo panning is done via EFAP in the renderer and tangent law in decoder, harmonize + "test_ism_vs_decoder[ISM1-STEREO]": 8, + "test_ism_vs_decoder[ISM2-STEREO]": 17, + "test_ism_vs_decoder[ISM3-STEREO]": 14, + "test_ism_vs_decoder[ISM4-STEREO]": 14, # TODO loudspeaker and ambisonics rendering could be due to crossfades or metadata position rounding "test_ism_vs_decoder[ISM1-5_1_2]": 26, "test_ism_vs_decoder[ISM1-5_1]": 26, "test_ism_vs_decoder[ISM1-5_1_4]": 26, "test_ism_vs_decoder[ISM1-7_1]": 26, "test_ism_vs_decoder[ISM1-7_1_4]": 26, - "test_ism_vs_decoder[ISM1-FOA]": 27, + "test_ism_vs_decoder[ISM1-FOA]": 26, "test_ism_vs_decoder[ISM1-HOA2]": 26, "test_ism_vs_decoder[ISM1-HOA3]": 26, - "test_ism_vs_decoder[ISM1-STEREO]": 8, - "test_ism_vs_decoder[ISM2-5_1_2]": 32, + "test_ism_vs_decoder[ISM2-5_1_2]": 31, "test_ism_vs_decoder[ISM2-5_1_4]": 31, "test_ism_vs_decoder[ISM2-5_1]": 6, "test_ism_vs_decoder[ISM2-7_1_4]": 31, "test_ism_vs_decoder[ISM2-7_1]": 5, - "test_ism_vs_decoder[ISM2-FOA]": 32, - "test_ism_vs_decoder[ISM2-HOA2]": 31, - "test_ism_vs_decoder[ISM2-HOA3]": 30, - "test_ism_vs_decoder[ISM2-STEREO]": 17, + "test_ism_vs_decoder[ISM2-FOA]": 31, + "test_ism_vs_decoder[ISM2-HOA2]": 30, + "test_ism_vs_decoder[ISM2-HOA3]": 29, "test_ism_vs_decoder[ISM3-5_1_2]": 32, "test_ism_vs_decoder[ISM3-5_1_4]": 32, "test_ism_vs_decoder[ISM3-5_1]": 8, "test_ism_vs_decoder[ISM3-7_1_4]": 31, "test_ism_vs_decoder[ISM3-7_1]": 7, "test_ism_vs_decoder[ISM3-FOA]": 32, - "test_ism_vs_decoder[ISM3-HOA2]": 32, - "test_ism_vs_decoder[ISM3-HOA3]": 30, + "test_ism_vs_decoder[ISM3-HOA2]": 31, + "test_ism_vs_decoder[ISM3-HOA3]": 29, "test_ism_vs_decoder[ISM3-MONO]": 77, - "test_ism_vs_decoder[ISM3-STEREO]": 14, "test_ism_vs_decoder[ISM4-5_1_2]": 31, - "test_ism_vs_decoder[ISM4-5_1_4]": 31, + "test_ism_vs_decoder[ISM4-5_1_4]": 30, "test_ism_vs_decoder[ISM4-5_1]": 8, "test_ism_vs_decoder[ISM4-7_1_4]": 30, "test_ism_vs_decoder[ISM4-7_1]": 7, "test_ism_vs_decoder[ISM4-FOA]": 31, - "test_ism_vs_decoder[ISM4-HOA2]": 31, - "test_ism_vs_decoder[ISM4-HOA3]": 30, + "test_ism_vs_decoder[ISM4-HOA2]": 30, + "test_ism_vs_decoder[ISM4-HOA3]": 29, "test_ism_vs_decoder[ISM4-MONO]": 77, - "test_ism_vs_decoder[ISM4-STEREO]": 14, # TODO needs debugging "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL-full_circle_in_15s]": 4, "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 6, diff --git a/tests/renderer/test_renderer.py b/tests/renderer/test_renderer.py index 87af209318..9660910afc 100644 --- a/tests/renderer/test_renderer.py +++ b/tests/renderer/test_renderer.py @@ -50,7 +50,7 @@ def test_ambisonics_binaural_static(test_info, in_fmt, out_fmt): @pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) @pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) def test_ambisonics_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): - compare_renderer_vs_pyscripts( + compare_renderer_vs_crend_unit_test( test_info, in_fmt, out_fmt, @@ -91,7 +91,7 @@ def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), ) else: - compare_renderer_vs_pyscripts( + compare_renderer_vs_crend_unit_test( test_info, in_fmt, out_fmt, diff --git a/tests/renderer/utils.py b/tests/renderer/utils.py index 92d017c43a..89ffbe0f6d 100644 --- a/tests/renderer/utils.py +++ b/tests/renderer/utils.py @@ -258,15 +258,15 @@ def run_crend_unittest( in_name = in_fmt out_file = str( - OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}_crend.wav") + OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav") ) - cmd = RENDERER_CREND_CMD[:] + cmd = CREND_CMD[:] cmd[6] = FORMAT_TO_CREND_FORMAT[str(in_fmt)] cmd[8] = FORMAT_TO_CREND_FORMAT[str(out_fmt)] cmd[10] = str(in_file) cmd[12] = str(out_file) - if str(out_fmt) == "BINAURAL_ROOM": + if out_fmt == "BINAURAL_ROOM": cmd.append("-brir") if trj_file is not None: @@ -422,7 +422,7 @@ def compare_renderer_vs_decoder(test_info, in_fmt, out_fmt, **kwargs): tmp_fmt = "EXT" in_meta_files = [ str(tmp_dir.joinpath(f"{in_fmt}_to_EXT.wav.{n}.csv")) - for n in range(int(in_fmt[3])) + for n in range(int(in_fmt[-1])) ] else: tmp_fmt = in_fmt -- GitLab From 12d26b0b994d3745713d772d1ed494449b27f59a Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 4 Nov 2022 14:24:56 +0100 Subject: [PATCH 426/479] fix memory leak in crend unit test (and pipeline) --- .../tests/unit_tests/crend/ivas_crend_utest_utils.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c index 6ef4a55fd1..be5e483927 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_utest_utils.c @@ -1585,6 +1585,8 @@ ivas_result_t ivas_common_mixer_renderer( ivas_crend_io_params_t *pIo_params, fl ivas_td_binaural_close( &st_ivas.hBinRendererTd ); if ( st_ivas.hLimiter != NULL ) ivas_limiter_close( &st_ivas.hLimiter ); + if ( st_ivas.hEFAPdata != NULL ) + efap_free_data( &st_ivas.hEFAPdata ); if ( pIo_params->lfe_lp_enable ) { -- GitLab From 76b5a7a0e82f5b45f14cc011199cf7b21709fb8b Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Fri, 4 Nov 2022 16:02:38 +0100 Subject: [PATCH 427/479] fix merge changes - update TD Object Renderer file reading - clean up tests/renderer/data directory --- scripts/pyaudio3dtools/rotation.py | 4 +- .../renderer_standalone.c | 31 +- tests/renderer/constants.py | 24 +- .../renderer/data/IVAS_ISM_metadata_-30_0.csv | 50 - tests/renderer/data/IVAS_ISM_metadata_0_0.csv | 50 - .../renderer/data/IVAS_ISM_metadata_30_0.csv | 50 - .../data/IVAS_ISM_metadata_circle.csv | 50 - tests/renderer/data/ism_-90a_0e.csv | 750 --------- tests/renderer/data/ism_180a_0e.csv | 750 --------- tests/renderer/data/ism_90a_0e.csv | 750 --------- tests/renderer/data/pink_noise_10ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_11ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_12ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_13ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_14ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_15ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_16ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_1ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_2ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_3ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_4ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_5ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_6ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_7ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_8ch_48kHz.wav | 3 - tests/renderer/data/pink_noise_9ch_48kHz.wav | 3 - tests/renderer/data/spectral_test_ism1.txt | 5 - tests/renderer/data/spectral_test_ism2.txt | 8 - tests/renderer/data/spectral_test_ism3.txt | 11 - tests/renderer/data/spectral_test_ism4.txt | 14 - tests/renderer/data/stvISM1.csv | 1500 ----------------- tests/renderer/data/stvISM2.csv | 1500 ----------------- tests/renderer/data/stvISM3.csv | 1500 ----------------- tests/renderer/data/stvISM4.csv | 1500 ----------------- tests/renderer/data/stv_IVASMASA_1dir1TC.met | 3 - tests/renderer/data/stv_IVASMASA_1dir1TC.pcm | 3 - tests/renderer/data/stv_IVASMASA_1dir2TC.met | 3 - tests/renderer/data/stv_IVASMASA_1dir2TC.pcm | 3 - tests/renderer/data/stv_IVASMASA_2dir1TC.met | 3 - tests/renderer/data/stv_IVASMASA_2dir1TC.pcm | 3 - tests/renderer/data/stv_IVASMASA_2dir2TC.met | 3 - tests/renderer/data/stv_IVASMASA_2dir2TC.pcm | 3 - tests/renderer/utils.py | 6 +- 43 files changed, 42 insertions(+), 8583 deletions(-) delete mode 100644 tests/renderer/data/IVAS_ISM_metadata_-30_0.csv delete mode 100644 tests/renderer/data/IVAS_ISM_metadata_0_0.csv delete mode 100644 tests/renderer/data/IVAS_ISM_metadata_30_0.csv delete mode 100644 tests/renderer/data/IVAS_ISM_metadata_circle.csv delete mode 100644 tests/renderer/data/ism_-90a_0e.csv delete mode 100644 tests/renderer/data/ism_180a_0e.csv delete mode 100644 tests/renderer/data/ism_90a_0e.csv delete mode 100644 tests/renderer/data/pink_noise_10ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_11ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_12ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_13ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_14ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_15ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_16ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_1ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_2ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_3ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_4ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_5ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_6ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_7ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_8ch_48kHz.wav delete mode 100644 tests/renderer/data/pink_noise_9ch_48kHz.wav delete mode 100644 tests/renderer/data/spectral_test_ism1.txt delete mode 100644 tests/renderer/data/spectral_test_ism2.txt delete mode 100644 tests/renderer/data/spectral_test_ism3.txt delete mode 100644 tests/renderer/data/spectral_test_ism4.txt delete mode 100644 tests/renderer/data/stvISM1.csv delete mode 100644 tests/renderer/data/stvISM2.csv delete mode 100644 tests/renderer/data/stvISM3.csv delete mode 100644 tests/renderer/data/stvISM4.csv delete mode 100644 tests/renderer/data/stv_IVASMASA_1dir1TC.met delete mode 100644 tests/renderer/data/stv_IVASMASA_1dir1TC.pcm delete mode 100644 tests/renderer/data/stv_IVASMASA_1dir2TC.met delete mode 100644 tests/renderer/data/stv_IVASMASA_1dir2TC.pcm delete mode 100644 tests/renderer/data/stv_IVASMASA_2dir1TC.met delete mode 100644 tests/renderer/data/stv_IVASMASA_2dir1TC.pcm delete mode 100644 tests/renderer/data/stv_IVASMASA_2dir2TC.met delete mode 100644 tests/renderer/data/stv_IVASMASA_2dir2TC.pcm diff --git a/scripts/pyaudio3dtools/rotation.py b/scripts/pyaudio3dtools/rotation.py index ccdf0fc5f5..09f90a9ccf 100644 --- a/scripts/pyaudio3dtools/rotation.py +++ b/scripts/pyaudio3dtools/rotation.py @@ -273,7 +273,7 @@ def rotateISM( ele_rot = np.zeros([N_frames]) for i_frame in range(N_frames): - q = trj_data[i_frame % trj_frames, 1:] + q = trj_data[i_frame % trj_frames, :] azi_rot[i_frame], ele_rot[i_frame] = rotateAziEle( azi[i_frame], ele[i_frame], Quat2RotMat(q) ) @@ -324,7 +324,7 @@ def rotateMC(x: np.ndarray, trajectory: str, layout: spatialaudioformat) -> np.n start = i_frame * frame_len end = (i_frame + 1) * frame_len - q = trj_data[i_frame % trj_frames, 1:] + q = trj_data[i_frame % trj_frames, :] rotated_pos = np.array( [ diff --git a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c index 3c98b8d688..414d8e07f7 100644 --- a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c +++ b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c @@ -51,8 +51,12 @@ * Constants *------------------------------------------------------------------------------------------*/ -#define META_LINE_LENGTH 200 /* max number of characters at one line of metadata input/output file */ -#define NUM_ISM_METADATA_PER_LINE 5 /* Number of ISM metadata per line in a metadata file */ +#define META_LINE_LENGTH 200 /* max number of characters at one line of metadata input/output file */ +#ifdef FIX_I173_I174 +#define NUM_ISM_METADATA_PER_LINE 4 /* Number of ISM metadata per line in a metadata file */ +#else +#define NUM_ISM_METADATA_PER_LINE 5 /* Number of ISM metadata per line in a metadata file */ +#endif /*---------------------------------------------------------------------* * Local function prototypes @@ -109,7 +113,7 @@ int32_t frame = 0; /* Counter of frames */ /*------------------------------------------------------------------------------------------* * Standalone Renderer program * - * + * *------------------------------------------------------------------------------------------*/ int main( int argc, char *argv[] ) { @@ -126,7 +130,9 @@ int main( int argc, char *argv[] ) FILE *f_input; FILE *f_output; FILE *f_quat_traj; +#ifndef FIX_I173_I174 int32_t tmp; +#endif float x, y, z, w; FILE *f_metadata[MAX_NUM_OBJECTS]; Decoder_Struct st_ivas_static; @@ -282,7 +288,7 @@ int main( int argc, char *argv[] ) /* Fs and 20ms frame length */ st_ivas->hDecoderConfig->output_Fs = atoi( argv[i] ) * 1000; - nFrameLength = ( ( int16_t )( st_ivas->hDecoderConfig->output_Fs / 1000 ) ) * 20; /* 20 ms frame */ + nFrameLength = ( (int16_t) ( st_ivas->hDecoderConfig->output_Fs / 1000 ) ) * 20; /* 20 ms frame */ i++; /* Input, n-channel audio */ @@ -395,7 +401,11 @@ int main( int argc, char *argv[] ) { for ( i = 0; i < 4; i++ ) /* MAX_PARAM_SPATIAL_SUBFRAMES = 4 */ { +#ifdef FIX_I173_I174 + if ( 4 == fscanf( f_quat_traj, "%f,%f,%f,%f", &w, &x, &y, &z ) ) +#else if ( 5 == fscanf( f_quat_traj, "%d,%f,%f,%f,%f", &tmp, &w, &x, &y, &z ) ) +#endif { st_ivas->hHeadTrackData->num_quaternions = -1; @@ -433,7 +443,7 @@ int main( int argc, char *argv[] ) /* Trim first frame to compensate for delay */ if ( nFrameCount == 0 ) { - offset = ( int16_t )( st_ivas->hDecoderConfig->output_Fs / 200 ); /* 240 samples for 48kHz etc */ + offset = (int16_t) ( st_ivas->hDecoderConfig->output_Fs / 200 ); /* 240 samples for 48kHz etc */ } else { @@ -445,7 +455,7 @@ int main( int argc, char *argv[] ) { for ( nS = 0; nS < NumLdspks; nS++ ) { - MixFrameWav[n * NumLdspks + nS] = ( int16_t )( output[nS][n + offset] + 0.5f * sign( output[nS][n + offset] ) ); + MixFrameWav[n * NumLdspks + nS] = (int16_t) ( output[nS][n + offset] + 0.5f * sign( output[nS][n + offset] ) ); } } fwrite( MixFrameWav, sizeof( int16_t ), ( currFrameLength - offset ) * NumLdspks, f_output ); @@ -543,7 +553,9 @@ static void readMetadata( float meta_prm[NUM_ISM_METADATA_PER_LINE]; char *char_ptr; int16_t j; +#ifndef FIX_I173_I174 int32_t time_stamp; +#endif if ( fgets( char_buff, META_LINE_LENGTH, file ) == NULL ) { @@ -552,6 +564,7 @@ static void readMetadata( } char_ptr = strtok( char_buff, "," ); +#ifndef FIX_I173_I174 time_stamp = (int32_t) atoi( char_ptr ); if ( time_stamp != frame ) @@ -559,12 +572,18 @@ static void readMetadata( fprintf( stderr, "\n!!!Error: Wrong time-stamp while reading ISM metadata input file. Exiting!!!\n\n" ); exit( -1 ); } +#endif j = 0; while ( char_ptr != NULL && j < NUM_ISM_METADATA_PER_LINE ) { +#ifndef FIX_I173_I174 + meta_prm[j++] = (float) atof( char_ptr ); + char_ptr = strtok( NULL, "," ); +#else char_ptr = strtok( NULL, "," ); meta_prm[j++] = (float) atof( char_ptr ); +#endif } hIsmMetaData->azimuth = meta_prm[0]; diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index d1b2ee202d..ff2e008438 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -166,24 +166,24 @@ FORMAT_TO_FILE = { } FORMAT_TO_METADATA_FILES = { - "ISM1": [str(TEST_VECTOR_DIR.joinpath("stvISM1.csv"))], + "ISM1": [str(TESTV_DIR.joinpath("stvISM1.csv"))], "ISM2": [ - str(TEST_VECTOR_DIR.joinpath("stvISM1.csv")), - str(TEST_VECTOR_DIR.joinpath("stvISM2.csv")), + str(TESTV_DIR.joinpath("stvISM1.csv")), + str(TESTV_DIR.joinpath("stvISM2.csv")), ], "ISM3": [ - str(TEST_VECTOR_DIR.joinpath("stvISM1.csv")), - str(TEST_VECTOR_DIR.joinpath("stvISM2.csv")), - str(TEST_VECTOR_DIR.joinpath("stvISM3.csv")), + str(TESTV_DIR.joinpath("stvISM1.csv")), + str(TESTV_DIR.joinpath("stvISM2.csv")), + str(TESTV_DIR.joinpath("stvISM3.csv")), ], "ISM4": [ - str(TEST_VECTOR_DIR.joinpath("stvISM1.csv")), - str(TEST_VECTOR_DIR.joinpath("stvISM2.csv")), - str(TEST_VECTOR_DIR.joinpath("stvISM3.csv")), - str(TEST_VECTOR_DIR.joinpath("stvISM4.csv")), + str(TESTV_DIR.joinpath("stvISM1.csv")), + str(TESTV_DIR.joinpath("stvISM2.csv")), + str(TESTV_DIR.joinpath("stvISM3.csv")), + str(TESTV_DIR.joinpath("stvISM4.csv")), ], - "MASA1": [str(TEST_VECTOR_DIR.joinpath("stv_IVASMASAQ_1dir1TC.met"))], - "MASA2": [str(TEST_VECTOR_DIR.joinpath("stv_IVASMASAQ_2dir2TC.met"))], + "MASA1": [str(TESTV_DIR.joinpath("stv_IVASMASAQ_1dir1TC.met"))], + "MASA2": [str(TESTV_DIR.joinpath("stv_IVASMASAQ_2dir2TC.met"))], } FORMAT_TO_IVAS = { diff --git a/tests/renderer/data/IVAS_ISM_metadata_-30_0.csv b/tests/renderer/data/IVAS_ISM_metadata_-30_0.csv deleted file mode 100644 index c3f47f7220..0000000000 --- a/tests/renderer/data/IVAS_ISM_metadata_-30_0.csv +++ /dev/null @@ -1,50 +0,0 @@ --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 --030.00,+00.00,01.00,000.00,1.00 diff --git a/tests/renderer/data/IVAS_ISM_metadata_0_0.csv b/tests/renderer/data/IVAS_ISM_metadata_0_0.csv deleted file mode 100644 index 887782fd4e..0000000000 --- a/tests/renderer/data/IVAS_ISM_metadata_0_0.csv +++ /dev/null @@ -1,50 +0,0 @@ -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 -+000.00,+00.00,01.00,000.00,1.00 diff --git a/tests/renderer/data/IVAS_ISM_metadata_30_0.csv b/tests/renderer/data/IVAS_ISM_metadata_30_0.csv deleted file mode 100644 index 8ed2a4df12..0000000000 --- a/tests/renderer/data/IVAS_ISM_metadata_30_0.csv +++ /dev/null @@ -1,50 +0,0 @@ -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 -+030.00,+00.00,01.00,000.00,1.00 diff --git a/tests/renderer/data/IVAS_ISM_metadata_circle.csv b/tests/renderer/data/IVAS_ISM_metadata_circle.csv deleted file mode 100644 index 9323b776fe..0000000000 --- a/tests/renderer/data/IVAS_ISM_metadata_circle.csv +++ /dev/null @@ -1,50 +0,0 @@ -+000.00,+00.00,01.00,000.00,1.00 -+007.00,+00.00,01.00,000.00,1.00 -+014.00,+00.00,01.00,000.00,1.00 -+022.00,+00.00,01.00,000.00,1.00 -+029.00,+00.00,01.00,000.00,1.00 -+036.00,+00.00,01.00,000.00,1.00 -+043.00,+00.00,01.00,000.00,1.00 -+050.00,+00.00,01.00,000.00,1.00 -+058.00,+00.00,01.00,000.00,1.00 -+065.00,+00.00,01.00,000.00,1.00 -+072.00,+00.00,01.00,000.00,1.00 -+079.00,+00.00,01.00,000.00,1.00 -+086.00,+00.00,01.00,000.00,1.00 -+094.00,+00.00,01.00,000.00,1.00 -+101.00,+00.00,01.00,000.00,1.00 -+108.00,+00.00,01.00,000.00,1.00 -+115.00,+00.00,01.00,000.00,1.00 -+122.00,+00.00,01.00,000.00,1.00 -+130.00,+00.00,01.00,000.00,1.00 -+137.00,+00.00,01.00,000.00,1.00 -+144.00,+00.00,01.00,000.00,1.00 -+151.00,+00.00,01.00,000.00,1.00 -+158.00,+00.00,01.00,000.00,1.00 -+166.00,+00.00,01.00,000.00,1.00 -+173.00,+00.00,01.00,000.00,1.00 -+180.00,+00.00,01.00,000.00,1.00 -+187.00,+00.00,01.00,000.00,1.00 -+194.00,+00.00,01.00,000.00,1.00 -+202.00,+00.00,01.00,000.00,1.00 -+209.00,+00.00,01.00,000.00,1.00 -+216.00,+00.00,01.00,000.00,1.00 -+223.00,+00.00,01.00,000.00,1.00 -+230.00,+00.00,01.00,000.00,1.00 -+238.00,+00.00,01.00,000.00,1.00 -+245.00,+00.00,01.00,000.00,1.00 -+252.00,+00.00,01.00,000.00,1.00 -+259.00,+00.00,01.00,000.00,1.00 -+266.00,+00.00,01.00,000.00,1.00 -+274.00,+00.00,01.00,000.00,1.00 -+281.00,+00.00,01.00,000.00,1.00 -+288.00,+00.00,01.00,000.00,1.00 -+295.00,+00.00,01.00,000.00,1.00 -+302.00,+00.00,01.00,000.00,1.00 -+310.00,+00.00,01.00,000.00,1.00 -+317.00,+00.00,01.00,000.00,1.00 -+324.00,+00.00,01.00,000.00,1.00 -+331.00,+00.00,01.00,000.00,1.00 -+338.00,+00.00,01.00,000.00,1.00 -+346.00,+00.00,01.00,000.00,1.00 -+353.00,+00.00,01.00,000.00,1.00 diff --git a/tests/renderer/data/ism_-90a_0e.csv b/tests/renderer/data/ism_-90a_0e.csv deleted file mode 100644 index 766ba1023f..0000000000 --- a/tests/renderer/data/ism_-90a_0e.csv +++ /dev/null @@ -1,750 +0,0 @@ -0,-90,0,1,0,1 -1,-90,0,1,0,1 -2,-90,0,1,0,1 -3,-90,0,1,0,1 -4,-90,0,1,0,1 -5,-90,0,1,0,1 -6,-90,0,1,0,1 -7,-90,0,1,0,1 -8,-90,0,1,0,1 -9,-90,0,1,0,1 -10,-90,0,1,0,1 -11,-90,0,1,0,1 -12,-90,0,1,0,1 -13,-90,0,1,0,1 -14,-90,0,1,0,1 -15,-90,0,1,0,1 -16,-90,0,1,0,1 -17,-90,0,1,0,1 -18,-90,0,1,0,1 -19,-90,0,1,0,1 -20,-90,0,1,0,1 -21,-90,0,1,0,1 -22,-90,0,1,0,1 -23,-90,0,1,0,1 -24,-90,0,1,0,1 -25,-90,0,1,0,1 -26,-90,0,1,0,1 -27,-90,0,1,0,1 -28,-90,0,1,0,1 -29,-90,0,1,0,1 -30,-90,0,1,0,1 -31,-90,0,1,0,1 -32,-90,0,1,0,1 -33,-90,0,1,0,1 -34,-90,0,1,0,1 -35,-90,0,1,0,1 -36,-90,0,1,0,1 -37,-90,0,1,0,1 -38,-90,0,1,0,1 -39,-90,0,1,0,1 -40,-90,0,1,0,1 -41,-90,0,1,0,1 -42,-90,0,1,0,1 -43,-90,0,1,0,1 -44,-90,0,1,0,1 -45,-90,0,1,0,1 -46,-90,0,1,0,1 -47,-90,0,1,0,1 -48,-90,0,1,0,1 -49,-90,0,1,0,1 -50,-90,0,1,0,1 -51,-90,0,1,0,1 -52,-90,0,1,0,1 -53,-90,0,1,0,1 -54,-90,0,1,0,1 -55,-90,0,1,0,1 -56,-90,0,1,0,1 -57,-90,0,1,0,1 -58,-90,0,1,0,1 -59,-90,0,1,0,1 -60,-90,0,1,0,1 -61,-90,0,1,0,1 -62,-90,0,1,0,1 -63,-90,0,1,0,1 -64,-90,0,1,0,1 -65,-90,0,1,0,1 -66,-90,0,1,0,1 -67,-90,0,1,0,1 -68,-90,0,1,0,1 -69,-90,0,1,0,1 -70,-90,0,1,0,1 -71,-90,0,1,0,1 -72,-90,0,1,0,1 -73,-90,0,1,0,1 -74,-90,0,1,0,1 -75,-90,0,1,0,1 -76,-90,0,1,0,1 -77,-90,0,1,0,1 -78,-90,0,1,0,1 -79,-90,0,1,0,1 -80,-90,0,1,0,1 -81,-90,0,1,0,1 -82,-90,0,1,0,1 -83,-90,0,1,0,1 -84,-90,0,1,0,1 -85,-90,0,1,0,1 -86,-90,0,1,0,1 -87,-90,0,1,0,1 -88,-90,0,1,0,1 -89,-90,0,1,0,1 -90,-90,0,1,0,1 -91,-90,0,1,0,1 -92,-90,0,1,0,1 -93,-90,0,1,0,1 -94,-90,0,1,0,1 -95,-90,0,1,0,1 -96,-90,0,1,0,1 -97,-90,0,1,0,1 -98,-90,0,1,0,1 -99,-90,0,1,0,1 -100,-90,0,1,0,1 -101,-90,0,1,0,1 -102,-90,0,1,0,1 -103,-90,0,1,0,1 -104,-90,0,1,0,1 -105,-90,0,1,0,1 -106,-90,0,1,0,1 -107,-90,0,1,0,1 -108,-90,0,1,0,1 -109,-90,0,1,0,1 -110,-90,0,1,0,1 -111,-90,0,1,0,1 -112,-90,0,1,0,1 -113,-90,0,1,0,1 -114,-90,0,1,0,1 -115,-90,0,1,0,1 -116,-90,0,1,0,1 -117,-90,0,1,0,1 -118,-90,0,1,0,1 -119,-90,0,1,0,1 -120,-90,0,1,0,1 -121,-90,0,1,0,1 -122,-90,0,1,0,1 -123,-90,0,1,0,1 -124,-90,0,1,0,1 -125,-90,0,1,0,1 -126,-90,0,1,0,1 -127,-90,0,1,0,1 -128,-90,0,1,0,1 -129,-90,0,1,0,1 -130,-90,0,1,0,1 -131,-90,0,1,0,1 -132,-90,0,1,0,1 -133,-90,0,1,0,1 -134,-90,0,1,0,1 -135,-90,0,1,0,1 -136,-90,0,1,0,1 -137,-90,0,1,0,1 -138,-90,0,1,0,1 -139,-90,0,1,0,1 -140,-90,0,1,0,1 -141,-90,0,1,0,1 -142,-90,0,1,0,1 -143,-90,0,1,0,1 -144,-90,0,1,0,1 -145,-90,0,1,0,1 -146,-90,0,1,0,1 -147,-90,0,1,0,1 -148,-90,0,1,0,1 -149,-90,0,1,0,1 -150,-90,0,1,0,1 -151,-90,0,1,0,1 -152,-90,0,1,0,1 -153,-90,0,1,0,1 -154,-90,0,1,0,1 -155,-90,0,1,0,1 -156,-90,0,1,0,1 -157,-90,0,1,0,1 -158,-90,0,1,0,1 -159,-90,0,1,0,1 -160,-90,0,1,0,1 -161,-90,0,1,0,1 -162,-90,0,1,0,1 -163,-90,0,1,0,1 -164,-90,0,1,0,1 -165,-90,0,1,0,1 -166,-90,0,1,0,1 -167,-90,0,1,0,1 -168,-90,0,1,0,1 -169,-90,0,1,0,1 -170,-90,0,1,0,1 -171,-90,0,1,0,1 -172,-90,0,1,0,1 -173,-90,0,1,0,1 -174,-90,0,1,0,1 -175,-90,0,1,0,1 -176,-90,0,1,0,1 -177,-90,0,1,0,1 -178,-90,0,1,0,1 -179,-90,0,1,0,1 -180,-90,0,1,0,1 -181,-90,0,1,0,1 -182,-90,0,1,0,1 -183,-90,0,1,0,1 -184,-90,0,1,0,1 -185,-90,0,1,0,1 -186,-90,0,1,0,1 -187,-90,0,1,0,1 -188,-90,0,1,0,1 -189,-90,0,1,0,1 -190,-90,0,1,0,1 -191,-90,0,1,0,1 -192,-90,0,1,0,1 -193,-90,0,1,0,1 -194,-90,0,1,0,1 -195,-90,0,1,0,1 -196,-90,0,1,0,1 -197,-90,0,1,0,1 -198,-90,0,1,0,1 -199,-90,0,1,0,1 -200,-90,0,1,0,1 -201,-90,0,1,0,1 -202,-90,0,1,0,1 -203,-90,0,1,0,1 -204,-90,0,1,0,1 -205,-90,0,1,0,1 -206,-90,0,1,0,1 -207,-90,0,1,0,1 -208,-90,0,1,0,1 -209,-90,0,1,0,1 -210,-90,0,1,0,1 -211,-90,0,1,0,1 -212,-90,0,1,0,1 -213,-90,0,1,0,1 -214,-90,0,1,0,1 -215,-90,0,1,0,1 -216,-90,0,1,0,1 -217,-90,0,1,0,1 -218,-90,0,1,0,1 -219,-90,0,1,0,1 -220,-90,0,1,0,1 -221,-90,0,1,0,1 -222,-90,0,1,0,1 -223,-90,0,1,0,1 -224,-90,0,1,0,1 -225,-90,0,1,0,1 -226,-90,0,1,0,1 -227,-90,0,1,0,1 -228,-90,0,1,0,1 -229,-90,0,1,0,1 -230,-90,0,1,0,1 -231,-90,0,1,0,1 -232,-90,0,1,0,1 -233,-90,0,1,0,1 -234,-90,0,1,0,1 -235,-90,0,1,0,1 -236,-90,0,1,0,1 -237,-90,0,1,0,1 -238,-90,0,1,0,1 -239,-90,0,1,0,1 -240,-90,0,1,0,1 -241,-90,0,1,0,1 -242,-90,0,1,0,1 -243,-90,0,1,0,1 -244,-90,0,1,0,1 -245,-90,0,1,0,1 -246,-90,0,1,0,1 -247,-90,0,1,0,1 -248,-90,0,1,0,1 -249,-90,0,1,0,1 -250,-90,0,1,0,1 -251,-90,0,1,0,1 -252,-90,0,1,0,1 -253,-90,0,1,0,1 -254,-90,0,1,0,1 -255,-90,0,1,0,1 -256,-90,0,1,0,1 -257,-90,0,1,0,1 -258,-90,0,1,0,1 -259,-90,0,1,0,1 -260,-90,0,1,0,1 -261,-90,0,1,0,1 -262,-90,0,1,0,1 -263,-90,0,1,0,1 -264,-90,0,1,0,1 -265,-90,0,1,0,1 -266,-90,0,1,0,1 -267,-90,0,1,0,1 -268,-90,0,1,0,1 -269,-90,0,1,0,1 -270,-90,0,1,0,1 -271,-90,0,1,0,1 -272,-90,0,1,0,1 -273,-90,0,1,0,1 -274,-90,0,1,0,1 -275,-90,0,1,0,1 -276,-90,0,1,0,1 -277,-90,0,1,0,1 -278,-90,0,1,0,1 -279,-90,0,1,0,1 -280,-90,0,1,0,1 -281,-90,0,1,0,1 -282,-90,0,1,0,1 -283,-90,0,1,0,1 -284,-90,0,1,0,1 -285,-90,0,1,0,1 -286,-90,0,1,0,1 -287,-90,0,1,0,1 -288,-90,0,1,0,1 -289,-90,0,1,0,1 -290,-90,0,1,0,1 -291,-90,0,1,0,1 -292,-90,0,1,0,1 -293,-90,0,1,0,1 -294,-90,0,1,0,1 -295,-90,0,1,0,1 -296,-90,0,1,0,1 -297,-90,0,1,0,1 -298,-90,0,1,0,1 -299,-90,0,1,0,1 -300,-90,0,1,0,1 -301,-90,0,1,0,1 -302,-90,0,1,0,1 -303,-90,0,1,0,1 -304,-90,0,1,0,1 -305,-90,0,1,0,1 -306,-90,0,1,0,1 -307,-90,0,1,0,1 -308,-90,0,1,0,1 -309,-90,0,1,0,1 -310,-90,0,1,0,1 -311,-90,0,1,0,1 -312,-90,0,1,0,1 -313,-90,0,1,0,1 -314,-90,0,1,0,1 -315,-90,0,1,0,1 -316,-90,0,1,0,1 -317,-90,0,1,0,1 -318,-90,0,1,0,1 -319,-90,0,1,0,1 -320,-90,0,1,0,1 -321,-90,0,1,0,1 -322,-90,0,1,0,1 -323,-90,0,1,0,1 -324,-90,0,1,0,1 -325,-90,0,1,0,1 -326,-90,0,1,0,1 -327,-90,0,1,0,1 -328,-90,0,1,0,1 -329,-90,0,1,0,1 -330,-90,0,1,0,1 -331,-90,0,1,0,1 -332,-90,0,1,0,1 -333,-90,0,1,0,1 -334,-90,0,1,0,1 -335,-90,0,1,0,1 -336,-90,0,1,0,1 -337,-90,0,1,0,1 -338,-90,0,1,0,1 -339,-90,0,1,0,1 -340,-90,0,1,0,1 -341,-90,0,1,0,1 -342,-90,0,1,0,1 -343,-90,0,1,0,1 -344,-90,0,1,0,1 -345,-90,0,1,0,1 -346,-90,0,1,0,1 -347,-90,0,1,0,1 -348,-90,0,1,0,1 -349,-90,0,1,0,1 -350,-90,0,1,0,1 -351,-90,0,1,0,1 -352,-90,0,1,0,1 -353,-90,0,1,0,1 -354,-90,0,1,0,1 -355,-90,0,1,0,1 -356,-90,0,1,0,1 -357,-90,0,1,0,1 -358,-90,0,1,0,1 -359,-90,0,1,0,1 -360,-90,0,1,0,1 -361,-90,0,1,0,1 -362,-90,0,1,0,1 -363,-90,0,1,0,1 -364,-90,0,1,0,1 -365,-90,0,1,0,1 -366,-90,0,1,0,1 -367,-90,0,1,0,1 -368,-90,0,1,0,1 -369,-90,0,1,0,1 -370,-90,0,1,0,1 -371,-90,0,1,0,1 -372,-90,0,1,0,1 -373,-90,0,1,0,1 -374,-90,0,1,0,1 -375,-90,0,1,0,1 -376,-90,0,1,0,1 -377,-90,0,1,0,1 -378,-90,0,1,0,1 -379,-90,0,1,0,1 -380,-90,0,1,0,1 -381,-90,0,1,0,1 -382,-90,0,1,0,1 -383,-90,0,1,0,1 -384,-90,0,1,0,1 -385,-90,0,1,0,1 -386,-90,0,1,0,1 -387,-90,0,1,0,1 -388,-90,0,1,0,1 -389,-90,0,1,0,1 -390,-90,0,1,0,1 -391,-90,0,1,0,1 -392,-90,0,1,0,1 -393,-90,0,1,0,1 -394,-90,0,1,0,1 -395,-90,0,1,0,1 -396,-90,0,1,0,1 -397,-90,0,1,0,1 -398,-90,0,1,0,1 -399,-90,0,1,0,1 -400,-90,0,1,0,1 -401,-90,0,1,0,1 -402,-90,0,1,0,1 -403,-90,0,1,0,1 -404,-90,0,1,0,1 -405,-90,0,1,0,1 -406,-90,0,1,0,1 -407,-90,0,1,0,1 -408,-90,0,1,0,1 -409,-90,0,1,0,1 -410,-90,0,1,0,1 -411,-90,0,1,0,1 -412,-90,0,1,0,1 -413,-90,0,1,0,1 -414,-90,0,1,0,1 -415,-90,0,1,0,1 -416,-90,0,1,0,1 -417,-90,0,1,0,1 -418,-90,0,1,0,1 -419,-90,0,1,0,1 -420,-90,0,1,0,1 -421,-90,0,1,0,1 -422,-90,0,1,0,1 -423,-90,0,1,0,1 -424,-90,0,1,0,1 -425,-90,0,1,0,1 -426,-90,0,1,0,1 -427,-90,0,1,0,1 -428,-90,0,1,0,1 -429,-90,0,1,0,1 -430,-90,0,1,0,1 -431,-90,0,1,0,1 -432,-90,0,1,0,1 -433,-90,0,1,0,1 -434,-90,0,1,0,1 -435,-90,0,1,0,1 -436,-90,0,1,0,1 -437,-90,0,1,0,1 -438,-90,0,1,0,1 -439,-90,0,1,0,1 -440,-90,0,1,0,1 -441,-90,0,1,0,1 -442,-90,0,1,0,1 -443,-90,0,1,0,1 -444,-90,0,1,0,1 -445,-90,0,1,0,1 -446,-90,0,1,0,1 -447,-90,0,1,0,1 -448,-90,0,1,0,1 -449,-90,0,1,0,1 -450,-90,0,1,0,1 -451,-90,0,1,0,1 -452,-90,0,1,0,1 -453,-90,0,1,0,1 -454,-90,0,1,0,1 -455,-90,0,1,0,1 -456,-90,0,1,0,1 -457,-90,0,1,0,1 -458,-90,0,1,0,1 -459,-90,0,1,0,1 -460,-90,0,1,0,1 -461,-90,0,1,0,1 -462,-90,0,1,0,1 -463,-90,0,1,0,1 -464,-90,0,1,0,1 -465,-90,0,1,0,1 -466,-90,0,1,0,1 -467,-90,0,1,0,1 -468,-90,0,1,0,1 -469,-90,0,1,0,1 -470,-90,0,1,0,1 -471,-90,0,1,0,1 -472,-90,0,1,0,1 -473,-90,0,1,0,1 -474,-90,0,1,0,1 -475,-90,0,1,0,1 -476,-90,0,1,0,1 -477,-90,0,1,0,1 -478,-90,0,1,0,1 -479,-90,0,1,0,1 -480,-90,0,1,0,1 -481,-90,0,1,0,1 -482,-90,0,1,0,1 -483,-90,0,1,0,1 -484,-90,0,1,0,1 -485,-90,0,1,0,1 -486,-90,0,1,0,1 -487,-90,0,1,0,1 -488,-90,0,1,0,1 -489,-90,0,1,0,1 -490,-90,0,1,0,1 -491,-90,0,1,0,1 -492,-90,0,1,0,1 -493,-90,0,1,0,1 -494,-90,0,1,0,1 -495,-90,0,1,0,1 -496,-90,0,1,0,1 -497,-90,0,1,0,1 -498,-90,0,1,0,1 -499,-90,0,1,0,1 -500,-90,0,1,0,1 -501,-90,0,1,0,1 -502,-90,0,1,0,1 -503,-90,0,1,0,1 -504,-90,0,1,0,1 -505,-90,0,1,0,1 -506,-90,0,1,0,1 -507,-90,0,1,0,1 -508,-90,0,1,0,1 -509,-90,0,1,0,1 -510,-90,0,1,0,1 -511,-90,0,1,0,1 -512,-90,0,1,0,1 -513,-90,0,1,0,1 -514,-90,0,1,0,1 -515,-90,0,1,0,1 -516,-90,0,1,0,1 -517,-90,0,1,0,1 -518,-90,0,1,0,1 -519,-90,0,1,0,1 -520,-90,0,1,0,1 -521,-90,0,1,0,1 -522,-90,0,1,0,1 -523,-90,0,1,0,1 -524,-90,0,1,0,1 -525,-90,0,1,0,1 -526,-90,0,1,0,1 -527,-90,0,1,0,1 -528,-90,0,1,0,1 -529,-90,0,1,0,1 -530,-90,0,1,0,1 -531,-90,0,1,0,1 -532,-90,0,1,0,1 -533,-90,0,1,0,1 -534,-90,0,1,0,1 -535,-90,0,1,0,1 -536,-90,0,1,0,1 -537,-90,0,1,0,1 -538,-90,0,1,0,1 -539,-90,0,1,0,1 -540,-90,0,1,0,1 -541,-90,0,1,0,1 -542,-90,0,1,0,1 -543,-90,0,1,0,1 -544,-90,0,1,0,1 -545,-90,0,1,0,1 -546,-90,0,1,0,1 -547,-90,0,1,0,1 -548,-90,0,1,0,1 -549,-90,0,1,0,1 -550,-90,0,1,0,1 -551,-90,0,1,0,1 -552,-90,0,1,0,1 -553,-90,0,1,0,1 -554,-90,0,1,0,1 -555,-90,0,1,0,1 -556,-90,0,1,0,1 -557,-90,0,1,0,1 -558,-90,0,1,0,1 -559,-90,0,1,0,1 -560,-90,0,1,0,1 -561,-90,0,1,0,1 -562,-90,0,1,0,1 -563,-90,0,1,0,1 -564,-90,0,1,0,1 -565,-90,0,1,0,1 -566,-90,0,1,0,1 -567,-90,0,1,0,1 -568,-90,0,1,0,1 -569,-90,0,1,0,1 -570,-90,0,1,0,1 -571,-90,0,1,0,1 -572,-90,0,1,0,1 -573,-90,0,1,0,1 -574,-90,0,1,0,1 -575,-90,0,1,0,1 -576,-90,0,1,0,1 -577,-90,0,1,0,1 -578,-90,0,1,0,1 -579,-90,0,1,0,1 -580,-90,0,1,0,1 -581,-90,0,1,0,1 -582,-90,0,1,0,1 -583,-90,0,1,0,1 -584,-90,0,1,0,1 -585,-90,0,1,0,1 -586,-90,0,1,0,1 -587,-90,0,1,0,1 -588,-90,0,1,0,1 -589,-90,0,1,0,1 -590,-90,0,1,0,1 -591,-90,0,1,0,1 -592,-90,0,1,0,1 -593,-90,0,1,0,1 -594,-90,0,1,0,1 -595,-90,0,1,0,1 -596,-90,0,1,0,1 -597,-90,0,1,0,1 -598,-90,0,1,0,1 -599,-90,0,1,0,1 -600,-90,0,1,0,1 -601,-90,0,1,0,1 -602,-90,0,1,0,1 -603,-90,0,1,0,1 -604,-90,0,1,0,1 -605,-90,0,1,0,1 -606,-90,0,1,0,1 -607,-90,0,1,0,1 -608,-90,0,1,0,1 -609,-90,0,1,0,1 -610,-90,0,1,0,1 -611,-90,0,1,0,1 -612,-90,0,1,0,1 -613,-90,0,1,0,1 -614,-90,0,1,0,1 -615,-90,0,1,0,1 -616,-90,0,1,0,1 -617,-90,0,1,0,1 -618,-90,0,1,0,1 -619,-90,0,1,0,1 -620,-90,0,1,0,1 -621,-90,0,1,0,1 -622,-90,0,1,0,1 -623,-90,0,1,0,1 -624,-90,0,1,0,1 -625,-90,0,1,0,1 -626,-90,0,1,0,1 -627,-90,0,1,0,1 -628,-90,0,1,0,1 -629,-90,0,1,0,1 -630,-90,0,1,0,1 -631,-90,0,1,0,1 -632,-90,0,1,0,1 -633,-90,0,1,0,1 -634,-90,0,1,0,1 -635,-90,0,1,0,1 -636,-90,0,1,0,1 -637,-90,0,1,0,1 -638,-90,0,1,0,1 -639,-90,0,1,0,1 -640,-90,0,1,0,1 -641,-90,0,1,0,1 -642,-90,0,1,0,1 -643,-90,0,1,0,1 -644,-90,0,1,0,1 -645,-90,0,1,0,1 -646,-90,0,1,0,1 -647,-90,0,1,0,1 -648,-90,0,1,0,1 -649,-90,0,1,0,1 -650,-90,0,1,0,1 -651,-90,0,1,0,1 -652,-90,0,1,0,1 -653,-90,0,1,0,1 -654,-90,0,1,0,1 -655,-90,0,1,0,1 -656,-90,0,1,0,1 -657,-90,0,1,0,1 -658,-90,0,1,0,1 -659,-90,0,1,0,1 -660,-90,0,1,0,1 -661,-90,0,1,0,1 -662,-90,0,1,0,1 -663,-90,0,1,0,1 -664,-90,0,1,0,1 -665,-90,0,1,0,1 -666,-90,0,1,0,1 -667,-90,0,1,0,1 -668,-90,0,1,0,1 -669,-90,0,1,0,1 -670,-90,0,1,0,1 -671,-90,0,1,0,1 -672,-90,0,1,0,1 -673,-90,0,1,0,1 -674,-90,0,1,0,1 -675,-90,0,1,0,1 -676,-90,0,1,0,1 -677,-90,0,1,0,1 -678,-90,0,1,0,1 -679,-90,0,1,0,1 -680,-90,0,1,0,1 -681,-90,0,1,0,1 -682,-90,0,1,0,1 -683,-90,0,1,0,1 -684,-90,0,1,0,1 -685,-90,0,1,0,1 -686,-90,0,1,0,1 -687,-90,0,1,0,1 -688,-90,0,1,0,1 -689,-90,0,1,0,1 -690,-90,0,1,0,1 -691,-90,0,1,0,1 -692,-90,0,1,0,1 -693,-90,0,1,0,1 -694,-90,0,1,0,1 -695,-90,0,1,0,1 -696,-90,0,1,0,1 -697,-90,0,1,0,1 -698,-90,0,1,0,1 -699,-90,0,1,0,1 -700,-90,0,1,0,1 -701,-90,0,1,0,1 -702,-90,0,1,0,1 -703,-90,0,1,0,1 -704,-90,0,1,0,1 -705,-90,0,1,0,1 -706,-90,0,1,0,1 -707,-90,0,1,0,1 -708,-90,0,1,0,1 -709,-90,0,1,0,1 -710,-90,0,1,0,1 -711,-90,0,1,0,1 -712,-90,0,1,0,1 -713,-90,0,1,0,1 -714,-90,0,1,0,1 -715,-90,0,1,0,1 -716,-90,0,1,0,1 -717,-90,0,1,0,1 -718,-90,0,1,0,1 -719,-90,0,1,0,1 -720,-90,0,1,0,1 -721,-90,0,1,0,1 -722,-90,0,1,0,1 -723,-90,0,1,0,1 -724,-90,0,1,0,1 -725,-90,0,1,0,1 -726,-90,0,1,0,1 -727,-90,0,1,0,1 -728,-90,0,1,0,1 -729,-90,0,1,0,1 -730,-90,0,1,0,1 -731,-90,0,1,0,1 -732,-90,0,1,0,1 -733,-90,0,1,0,1 -734,-90,0,1,0,1 -735,-90,0,1,0,1 -736,-90,0,1,0,1 -737,-90,0,1,0,1 -738,-90,0,1,0,1 -739,-90,0,1,0,1 -740,-90,0,1,0,1 -741,-90,0,1,0,1 -742,-90,0,1,0,1 -743,-90,0,1,0,1 -744,-90,0,1,0,1 -745,-90,0,1,0,1 -746,-90,0,1,0,1 -747,-90,0,1,0,1 -748,-90,0,1,0,1 -749,-90,0,1,0,1 diff --git a/tests/renderer/data/ism_180a_0e.csv b/tests/renderer/data/ism_180a_0e.csv deleted file mode 100644 index 2db0f1a477..0000000000 --- a/tests/renderer/data/ism_180a_0e.csv +++ /dev/null @@ -1,750 +0,0 @@ -0,180,0,1,0,1 -1,180,0,1,0,1 -2,180,0,1,0,1 -3,180,0,1,0,1 -4,180,0,1,0,1 -5,180,0,1,0,1 -6,180,0,1,0,1 -7,180,0,1,0,1 -8,180,0,1,0,1 -9,180,0,1,0,1 -10,180,0,1,0,1 -11,180,0,1,0,1 -12,180,0,1,0,1 -13,180,0,1,0,1 -14,180,0,1,0,1 -15,180,0,1,0,1 -16,180,0,1,0,1 -17,180,0,1,0,1 -18,180,0,1,0,1 -19,180,0,1,0,1 -20,180,0,1,0,1 -21,180,0,1,0,1 -22,180,0,1,0,1 -23,180,0,1,0,1 -24,180,0,1,0,1 -25,180,0,1,0,1 -26,180,0,1,0,1 -27,180,0,1,0,1 -28,180,0,1,0,1 -29,180,0,1,0,1 -30,180,0,1,0,1 -31,180,0,1,0,1 -32,180,0,1,0,1 -33,180,0,1,0,1 -34,180,0,1,0,1 -35,180,0,1,0,1 -36,180,0,1,0,1 -37,180,0,1,0,1 -38,180,0,1,0,1 -39,180,0,1,0,1 -40,180,0,1,0,1 -41,180,0,1,0,1 -42,180,0,1,0,1 -43,180,0,1,0,1 -44,180,0,1,0,1 -45,180,0,1,0,1 -46,180,0,1,0,1 -47,180,0,1,0,1 -48,180,0,1,0,1 -49,180,0,1,0,1 -50,180,0,1,0,1 -51,180,0,1,0,1 -52,180,0,1,0,1 -53,180,0,1,0,1 -54,180,0,1,0,1 -55,180,0,1,0,1 -56,180,0,1,0,1 -57,180,0,1,0,1 -58,180,0,1,0,1 -59,180,0,1,0,1 -60,180,0,1,0,1 -61,180,0,1,0,1 -62,180,0,1,0,1 -63,180,0,1,0,1 -64,180,0,1,0,1 -65,180,0,1,0,1 -66,180,0,1,0,1 -67,180,0,1,0,1 -68,180,0,1,0,1 -69,180,0,1,0,1 -70,180,0,1,0,1 -71,180,0,1,0,1 -72,180,0,1,0,1 -73,180,0,1,0,1 -74,180,0,1,0,1 -75,180,0,1,0,1 -76,180,0,1,0,1 -77,180,0,1,0,1 -78,180,0,1,0,1 -79,180,0,1,0,1 -80,180,0,1,0,1 -81,180,0,1,0,1 -82,180,0,1,0,1 -83,180,0,1,0,1 -84,180,0,1,0,1 -85,180,0,1,0,1 -86,180,0,1,0,1 -87,180,0,1,0,1 -88,180,0,1,0,1 -89,180,0,1,0,1 -90,180,0,1,0,1 -91,180,0,1,0,1 -92,180,0,1,0,1 -93,180,0,1,0,1 -94,180,0,1,0,1 -95,180,0,1,0,1 -96,180,0,1,0,1 -97,180,0,1,0,1 -98,180,0,1,0,1 -99,180,0,1,0,1 -100,180,0,1,0,1 -101,180,0,1,0,1 -102,180,0,1,0,1 -103,180,0,1,0,1 -104,180,0,1,0,1 -105,180,0,1,0,1 -106,180,0,1,0,1 -107,180,0,1,0,1 -108,180,0,1,0,1 -109,180,0,1,0,1 -110,180,0,1,0,1 -111,180,0,1,0,1 -112,180,0,1,0,1 -113,180,0,1,0,1 -114,180,0,1,0,1 -115,180,0,1,0,1 -116,180,0,1,0,1 -117,180,0,1,0,1 -118,180,0,1,0,1 -119,180,0,1,0,1 -120,180,0,1,0,1 -121,180,0,1,0,1 -122,180,0,1,0,1 -123,180,0,1,0,1 -124,180,0,1,0,1 -125,180,0,1,0,1 -126,180,0,1,0,1 -127,180,0,1,0,1 -128,180,0,1,0,1 -129,180,0,1,0,1 -130,180,0,1,0,1 -131,180,0,1,0,1 -132,180,0,1,0,1 -133,180,0,1,0,1 -134,180,0,1,0,1 -135,180,0,1,0,1 -136,180,0,1,0,1 -137,180,0,1,0,1 -138,180,0,1,0,1 -139,180,0,1,0,1 -140,180,0,1,0,1 -141,180,0,1,0,1 -142,180,0,1,0,1 -143,180,0,1,0,1 -144,180,0,1,0,1 -145,180,0,1,0,1 -146,180,0,1,0,1 -147,180,0,1,0,1 -148,180,0,1,0,1 -149,180,0,1,0,1 -150,180,0,1,0,1 -151,180,0,1,0,1 -152,180,0,1,0,1 -153,180,0,1,0,1 -154,180,0,1,0,1 -155,180,0,1,0,1 -156,180,0,1,0,1 -157,180,0,1,0,1 -158,180,0,1,0,1 -159,180,0,1,0,1 -160,180,0,1,0,1 -161,180,0,1,0,1 -162,180,0,1,0,1 -163,180,0,1,0,1 -164,180,0,1,0,1 -165,180,0,1,0,1 -166,180,0,1,0,1 -167,180,0,1,0,1 -168,180,0,1,0,1 -169,180,0,1,0,1 -170,180,0,1,0,1 -171,180,0,1,0,1 -172,180,0,1,0,1 -173,180,0,1,0,1 -174,180,0,1,0,1 -175,180,0,1,0,1 -176,180,0,1,0,1 -177,180,0,1,0,1 -178,180,0,1,0,1 -179,180,0,1,0,1 -180,180,0,1,0,1 -181,180,0,1,0,1 -182,180,0,1,0,1 -183,180,0,1,0,1 -184,180,0,1,0,1 -185,180,0,1,0,1 -186,180,0,1,0,1 -187,180,0,1,0,1 -188,180,0,1,0,1 -189,180,0,1,0,1 -190,180,0,1,0,1 -191,180,0,1,0,1 -192,180,0,1,0,1 -193,180,0,1,0,1 -194,180,0,1,0,1 -195,180,0,1,0,1 -196,180,0,1,0,1 -197,180,0,1,0,1 -198,180,0,1,0,1 -199,180,0,1,0,1 -200,180,0,1,0,1 -201,180,0,1,0,1 -202,180,0,1,0,1 -203,180,0,1,0,1 -204,180,0,1,0,1 -205,180,0,1,0,1 -206,180,0,1,0,1 -207,180,0,1,0,1 -208,180,0,1,0,1 -209,180,0,1,0,1 -210,180,0,1,0,1 -211,180,0,1,0,1 -212,180,0,1,0,1 -213,180,0,1,0,1 -214,180,0,1,0,1 -215,180,0,1,0,1 -216,180,0,1,0,1 -217,180,0,1,0,1 -218,180,0,1,0,1 -219,180,0,1,0,1 -220,180,0,1,0,1 -221,180,0,1,0,1 -222,180,0,1,0,1 -223,180,0,1,0,1 -224,180,0,1,0,1 -225,180,0,1,0,1 -226,180,0,1,0,1 -227,180,0,1,0,1 -228,180,0,1,0,1 -229,180,0,1,0,1 -230,180,0,1,0,1 -231,180,0,1,0,1 -232,180,0,1,0,1 -233,180,0,1,0,1 -234,180,0,1,0,1 -235,180,0,1,0,1 -236,180,0,1,0,1 -237,180,0,1,0,1 -238,180,0,1,0,1 -239,180,0,1,0,1 -240,180,0,1,0,1 -241,180,0,1,0,1 -242,180,0,1,0,1 -243,180,0,1,0,1 -244,180,0,1,0,1 -245,180,0,1,0,1 -246,180,0,1,0,1 -247,180,0,1,0,1 -248,180,0,1,0,1 -249,180,0,1,0,1 -250,180,0,1,0,1 -251,180,0,1,0,1 -252,180,0,1,0,1 -253,180,0,1,0,1 -254,180,0,1,0,1 -255,180,0,1,0,1 -256,180,0,1,0,1 -257,180,0,1,0,1 -258,180,0,1,0,1 -259,180,0,1,0,1 -260,180,0,1,0,1 -261,180,0,1,0,1 -262,180,0,1,0,1 -263,180,0,1,0,1 -264,180,0,1,0,1 -265,180,0,1,0,1 -266,180,0,1,0,1 -267,180,0,1,0,1 -268,180,0,1,0,1 -269,180,0,1,0,1 -270,180,0,1,0,1 -271,180,0,1,0,1 -272,180,0,1,0,1 -273,180,0,1,0,1 -274,180,0,1,0,1 -275,180,0,1,0,1 -276,180,0,1,0,1 -277,180,0,1,0,1 -278,180,0,1,0,1 -279,180,0,1,0,1 -280,180,0,1,0,1 -281,180,0,1,0,1 -282,180,0,1,0,1 -283,180,0,1,0,1 -284,180,0,1,0,1 -285,180,0,1,0,1 -286,180,0,1,0,1 -287,180,0,1,0,1 -288,180,0,1,0,1 -289,180,0,1,0,1 -290,180,0,1,0,1 -291,180,0,1,0,1 -292,180,0,1,0,1 -293,180,0,1,0,1 -294,180,0,1,0,1 -295,180,0,1,0,1 -296,180,0,1,0,1 -297,180,0,1,0,1 -298,180,0,1,0,1 -299,180,0,1,0,1 -300,180,0,1,0,1 -301,180,0,1,0,1 -302,180,0,1,0,1 -303,180,0,1,0,1 -304,180,0,1,0,1 -305,180,0,1,0,1 -306,180,0,1,0,1 -307,180,0,1,0,1 -308,180,0,1,0,1 -309,180,0,1,0,1 -310,180,0,1,0,1 -311,180,0,1,0,1 -312,180,0,1,0,1 -313,180,0,1,0,1 -314,180,0,1,0,1 -315,180,0,1,0,1 -316,180,0,1,0,1 -317,180,0,1,0,1 -318,180,0,1,0,1 -319,180,0,1,0,1 -320,180,0,1,0,1 -321,180,0,1,0,1 -322,180,0,1,0,1 -323,180,0,1,0,1 -324,180,0,1,0,1 -325,180,0,1,0,1 -326,180,0,1,0,1 -327,180,0,1,0,1 -328,180,0,1,0,1 -329,180,0,1,0,1 -330,180,0,1,0,1 -331,180,0,1,0,1 -332,180,0,1,0,1 -333,180,0,1,0,1 -334,180,0,1,0,1 -335,180,0,1,0,1 -336,180,0,1,0,1 -337,180,0,1,0,1 -338,180,0,1,0,1 -339,180,0,1,0,1 -340,180,0,1,0,1 -341,180,0,1,0,1 -342,180,0,1,0,1 -343,180,0,1,0,1 -344,180,0,1,0,1 -345,180,0,1,0,1 -346,180,0,1,0,1 -347,180,0,1,0,1 -348,180,0,1,0,1 -349,180,0,1,0,1 -350,180,0,1,0,1 -351,180,0,1,0,1 -352,180,0,1,0,1 -353,180,0,1,0,1 -354,180,0,1,0,1 -355,180,0,1,0,1 -356,180,0,1,0,1 -357,180,0,1,0,1 -358,180,0,1,0,1 -359,180,0,1,0,1 -360,180,0,1,0,1 -361,180,0,1,0,1 -362,180,0,1,0,1 -363,180,0,1,0,1 -364,180,0,1,0,1 -365,180,0,1,0,1 -366,180,0,1,0,1 -367,180,0,1,0,1 -368,180,0,1,0,1 -369,180,0,1,0,1 -370,180,0,1,0,1 -371,180,0,1,0,1 -372,180,0,1,0,1 -373,180,0,1,0,1 -374,180,0,1,0,1 -375,180,0,1,0,1 -376,180,0,1,0,1 -377,180,0,1,0,1 -378,180,0,1,0,1 -379,180,0,1,0,1 -380,180,0,1,0,1 -381,180,0,1,0,1 -382,180,0,1,0,1 -383,180,0,1,0,1 -384,180,0,1,0,1 -385,180,0,1,0,1 -386,180,0,1,0,1 -387,180,0,1,0,1 -388,180,0,1,0,1 -389,180,0,1,0,1 -390,180,0,1,0,1 -391,180,0,1,0,1 -392,180,0,1,0,1 -393,180,0,1,0,1 -394,180,0,1,0,1 -395,180,0,1,0,1 -396,180,0,1,0,1 -397,180,0,1,0,1 -398,180,0,1,0,1 -399,180,0,1,0,1 -400,180,0,1,0,1 -401,180,0,1,0,1 -402,180,0,1,0,1 -403,180,0,1,0,1 -404,180,0,1,0,1 -405,180,0,1,0,1 -406,180,0,1,0,1 -407,180,0,1,0,1 -408,180,0,1,0,1 -409,180,0,1,0,1 -410,180,0,1,0,1 -411,180,0,1,0,1 -412,180,0,1,0,1 -413,180,0,1,0,1 -414,180,0,1,0,1 -415,180,0,1,0,1 -416,180,0,1,0,1 -417,180,0,1,0,1 -418,180,0,1,0,1 -419,180,0,1,0,1 -420,180,0,1,0,1 -421,180,0,1,0,1 -422,180,0,1,0,1 -423,180,0,1,0,1 -424,180,0,1,0,1 -425,180,0,1,0,1 -426,180,0,1,0,1 -427,180,0,1,0,1 -428,180,0,1,0,1 -429,180,0,1,0,1 -430,180,0,1,0,1 -431,180,0,1,0,1 -432,180,0,1,0,1 -433,180,0,1,0,1 -434,180,0,1,0,1 -435,180,0,1,0,1 -436,180,0,1,0,1 -437,180,0,1,0,1 -438,180,0,1,0,1 -439,180,0,1,0,1 -440,180,0,1,0,1 -441,180,0,1,0,1 -442,180,0,1,0,1 -443,180,0,1,0,1 -444,180,0,1,0,1 -445,180,0,1,0,1 -446,180,0,1,0,1 -447,180,0,1,0,1 -448,180,0,1,0,1 -449,180,0,1,0,1 -450,180,0,1,0,1 -451,180,0,1,0,1 -452,180,0,1,0,1 -453,180,0,1,0,1 -454,180,0,1,0,1 -455,180,0,1,0,1 -456,180,0,1,0,1 -457,180,0,1,0,1 -458,180,0,1,0,1 -459,180,0,1,0,1 -460,180,0,1,0,1 -461,180,0,1,0,1 -462,180,0,1,0,1 -463,180,0,1,0,1 -464,180,0,1,0,1 -465,180,0,1,0,1 -466,180,0,1,0,1 -467,180,0,1,0,1 -468,180,0,1,0,1 -469,180,0,1,0,1 -470,180,0,1,0,1 -471,180,0,1,0,1 -472,180,0,1,0,1 -473,180,0,1,0,1 -474,180,0,1,0,1 -475,180,0,1,0,1 -476,180,0,1,0,1 -477,180,0,1,0,1 -478,180,0,1,0,1 -479,180,0,1,0,1 -480,180,0,1,0,1 -481,180,0,1,0,1 -482,180,0,1,0,1 -483,180,0,1,0,1 -484,180,0,1,0,1 -485,180,0,1,0,1 -486,180,0,1,0,1 -487,180,0,1,0,1 -488,180,0,1,0,1 -489,180,0,1,0,1 -490,180,0,1,0,1 -491,180,0,1,0,1 -492,180,0,1,0,1 -493,180,0,1,0,1 -494,180,0,1,0,1 -495,180,0,1,0,1 -496,180,0,1,0,1 -497,180,0,1,0,1 -498,180,0,1,0,1 -499,180,0,1,0,1 -500,180,0,1,0,1 -501,180,0,1,0,1 -502,180,0,1,0,1 -503,180,0,1,0,1 -504,180,0,1,0,1 -505,180,0,1,0,1 -506,180,0,1,0,1 -507,180,0,1,0,1 -508,180,0,1,0,1 -509,180,0,1,0,1 -510,180,0,1,0,1 -511,180,0,1,0,1 -512,180,0,1,0,1 -513,180,0,1,0,1 -514,180,0,1,0,1 -515,180,0,1,0,1 -516,180,0,1,0,1 -517,180,0,1,0,1 -518,180,0,1,0,1 -519,180,0,1,0,1 -520,180,0,1,0,1 -521,180,0,1,0,1 -522,180,0,1,0,1 -523,180,0,1,0,1 -524,180,0,1,0,1 -525,180,0,1,0,1 -526,180,0,1,0,1 -527,180,0,1,0,1 -528,180,0,1,0,1 -529,180,0,1,0,1 -530,180,0,1,0,1 -531,180,0,1,0,1 -532,180,0,1,0,1 -533,180,0,1,0,1 -534,180,0,1,0,1 -535,180,0,1,0,1 -536,180,0,1,0,1 -537,180,0,1,0,1 -538,180,0,1,0,1 -539,180,0,1,0,1 -540,180,0,1,0,1 -541,180,0,1,0,1 -542,180,0,1,0,1 -543,180,0,1,0,1 -544,180,0,1,0,1 -545,180,0,1,0,1 -546,180,0,1,0,1 -547,180,0,1,0,1 -548,180,0,1,0,1 -549,180,0,1,0,1 -550,180,0,1,0,1 -551,180,0,1,0,1 -552,180,0,1,0,1 -553,180,0,1,0,1 -554,180,0,1,0,1 -555,180,0,1,0,1 -556,180,0,1,0,1 -557,180,0,1,0,1 -558,180,0,1,0,1 -559,180,0,1,0,1 -560,180,0,1,0,1 -561,180,0,1,0,1 -562,180,0,1,0,1 -563,180,0,1,0,1 -564,180,0,1,0,1 -565,180,0,1,0,1 -566,180,0,1,0,1 -567,180,0,1,0,1 -568,180,0,1,0,1 -569,180,0,1,0,1 -570,180,0,1,0,1 -571,180,0,1,0,1 -572,180,0,1,0,1 -573,180,0,1,0,1 -574,180,0,1,0,1 -575,180,0,1,0,1 -576,180,0,1,0,1 -577,180,0,1,0,1 -578,180,0,1,0,1 -579,180,0,1,0,1 -580,180,0,1,0,1 -581,180,0,1,0,1 -582,180,0,1,0,1 -583,180,0,1,0,1 -584,180,0,1,0,1 -585,180,0,1,0,1 -586,180,0,1,0,1 -587,180,0,1,0,1 -588,180,0,1,0,1 -589,180,0,1,0,1 -590,180,0,1,0,1 -591,180,0,1,0,1 -592,180,0,1,0,1 -593,180,0,1,0,1 -594,180,0,1,0,1 -595,180,0,1,0,1 -596,180,0,1,0,1 -597,180,0,1,0,1 -598,180,0,1,0,1 -599,180,0,1,0,1 -600,180,0,1,0,1 -601,180,0,1,0,1 -602,180,0,1,0,1 -603,180,0,1,0,1 -604,180,0,1,0,1 -605,180,0,1,0,1 -606,180,0,1,0,1 -607,180,0,1,0,1 -608,180,0,1,0,1 -609,180,0,1,0,1 -610,180,0,1,0,1 -611,180,0,1,0,1 -612,180,0,1,0,1 -613,180,0,1,0,1 -614,180,0,1,0,1 -615,180,0,1,0,1 -616,180,0,1,0,1 -617,180,0,1,0,1 -618,180,0,1,0,1 -619,180,0,1,0,1 -620,180,0,1,0,1 -621,180,0,1,0,1 -622,180,0,1,0,1 -623,180,0,1,0,1 -624,180,0,1,0,1 -625,180,0,1,0,1 -626,180,0,1,0,1 -627,180,0,1,0,1 -628,180,0,1,0,1 -629,180,0,1,0,1 -630,180,0,1,0,1 -631,180,0,1,0,1 -632,180,0,1,0,1 -633,180,0,1,0,1 -634,180,0,1,0,1 -635,180,0,1,0,1 -636,180,0,1,0,1 -637,180,0,1,0,1 -638,180,0,1,0,1 -639,180,0,1,0,1 -640,180,0,1,0,1 -641,180,0,1,0,1 -642,180,0,1,0,1 -643,180,0,1,0,1 -644,180,0,1,0,1 -645,180,0,1,0,1 -646,180,0,1,0,1 -647,180,0,1,0,1 -648,180,0,1,0,1 -649,180,0,1,0,1 -650,180,0,1,0,1 -651,180,0,1,0,1 -652,180,0,1,0,1 -653,180,0,1,0,1 -654,180,0,1,0,1 -655,180,0,1,0,1 -656,180,0,1,0,1 -657,180,0,1,0,1 -658,180,0,1,0,1 -659,180,0,1,0,1 -660,180,0,1,0,1 -661,180,0,1,0,1 -662,180,0,1,0,1 -663,180,0,1,0,1 -664,180,0,1,0,1 -665,180,0,1,0,1 -666,180,0,1,0,1 -667,180,0,1,0,1 -668,180,0,1,0,1 -669,180,0,1,0,1 -670,180,0,1,0,1 -671,180,0,1,0,1 -672,180,0,1,0,1 -673,180,0,1,0,1 -674,180,0,1,0,1 -675,180,0,1,0,1 -676,180,0,1,0,1 -677,180,0,1,0,1 -678,180,0,1,0,1 -679,180,0,1,0,1 -680,180,0,1,0,1 -681,180,0,1,0,1 -682,180,0,1,0,1 -683,180,0,1,0,1 -684,180,0,1,0,1 -685,180,0,1,0,1 -686,180,0,1,0,1 -687,180,0,1,0,1 -688,180,0,1,0,1 -689,180,0,1,0,1 -690,180,0,1,0,1 -691,180,0,1,0,1 -692,180,0,1,0,1 -693,180,0,1,0,1 -694,180,0,1,0,1 -695,180,0,1,0,1 -696,180,0,1,0,1 -697,180,0,1,0,1 -698,180,0,1,0,1 -699,180,0,1,0,1 -700,180,0,1,0,1 -701,180,0,1,0,1 -702,180,0,1,0,1 -703,180,0,1,0,1 -704,180,0,1,0,1 -705,180,0,1,0,1 -706,180,0,1,0,1 -707,180,0,1,0,1 -708,180,0,1,0,1 -709,180,0,1,0,1 -710,180,0,1,0,1 -711,180,0,1,0,1 -712,180,0,1,0,1 -713,180,0,1,0,1 -714,180,0,1,0,1 -715,180,0,1,0,1 -716,180,0,1,0,1 -717,180,0,1,0,1 -718,180,0,1,0,1 -719,180,0,1,0,1 -720,180,0,1,0,1 -721,180,0,1,0,1 -722,180,0,1,0,1 -723,180,0,1,0,1 -724,180,0,1,0,1 -725,180,0,1,0,1 -726,180,0,1,0,1 -727,180,0,1,0,1 -728,180,0,1,0,1 -729,180,0,1,0,1 -730,180,0,1,0,1 -731,180,0,1,0,1 -732,180,0,1,0,1 -733,180,0,1,0,1 -734,180,0,1,0,1 -735,180,0,1,0,1 -736,180,0,1,0,1 -737,180,0,1,0,1 -738,180,0,1,0,1 -739,180,0,1,0,1 -740,180,0,1,0,1 -741,180,0,1,0,1 -742,180,0,1,0,1 -743,180,0,1,0,1 -744,180,0,1,0,1 -745,180,0,1,0,1 -746,180,0,1,0,1 -747,180,0,1,0,1 -748,180,0,1,0,1 -749,180,0,1,0,1 diff --git a/tests/renderer/data/ism_90a_0e.csv b/tests/renderer/data/ism_90a_0e.csv deleted file mode 100644 index bcd91364fe..0000000000 --- a/tests/renderer/data/ism_90a_0e.csv +++ /dev/null @@ -1,750 +0,0 @@ -0,90,0,1,0,1 -1,90,0,1,0,1 -2,90,0,1,0,1 -3,90,0,1,0,1 -4,90,0,1,0,1 -5,90,0,1,0,1 -6,90,0,1,0,1 -7,90,0,1,0,1 -8,90,0,1,0,1 -9,90,0,1,0,1 -10,90,0,1,0,1 -11,90,0,1,0,1 -12,90,0,1,0,1 -13,90,0,1,0,1 -14,90,0,1,0,1 -15,90,0,1,0,1 -16,90,0,1,0,1 -17,90,0,1,0,1 -18,90,0,1,0,1 -19,90,0,1,0,1 -20,90,0,1,0,1 -21,90,0,1,0,1 -22,90,0,1,0,1 -23,90,0,1,0,1 -24,90,0,1,0,1 -25,90,0,1,0,1 -26,90,0,1,0,1 -27,90,0,1,0,1 -28,90,0,1,0,1 -29,90,0,1,0,1 -30,90,0,1,0,1 -31,90,0,1,0,1 -32,90,0,1,0,1 -33,90,0,1,0,1 -34,90,0,1,0,1 -35,90,0,1,0,1 -36,90,0,1,0,1 -37,90,0,1,0,1 -38,90,0,1,0,1 -39,90,0,1,0,1 -40,90,0,1,0,1 -41,90,0,1,0,1 -42,90,0,1,0,1 -43,90,0,1,0,1 -44,90,0,1,0,1 -45,90,0,1,0,1 -46,90,0,1,0,1 -47,90,0,1,0,1 -48,90,0,1,0,1 -49,90,0,1,0,1 -50,90,0,1,0,1 -51,90,0,1,0,1 -52,90,0,1,0,1 -53,90,0,1,0,1 -54,90,0,1,0,1 -55,90,0,1,0,1 -56,90,0,1,0,1 -57,90,0,1,0,1 -58,90,0,1,0,1 -59,90,0,1,0,1 -60,90,0,1,0,1 -61,90,0,1,0,1 -62,90,0,1,0,1 -63,90,0,1,0,1 -64,90,0,1,0,1 -65,90,0,1,0,1 -66,90,0,1,0,1 -67,90,0,1,0,1 -68,90,0,1,0,1 -69,90,0,1,0,1 -70,90,0,1,0,1 -71,90,0,1,0,1 -72,90,0,1,0,1 -73,90,0,1,0,1 -74,90,0,1,0,1 -75,90,0,1,0,1 -76,90,0,1,0,1 -77,90,0,1,0,1 -78,90,0,1,0,1 -79,90,0,1,0,1 -80,90,0,1,0,1 -81,90,0,1,0,1 -82,90,0,1,0,1 -83,90,0,1,0,1 -84,90,0,1,0,1 -85,90,0,1,0,1 -86,90,0,1,0,1 -87,90,0,1,0,1 -88,90,0,1,0,1 -89,90,0,1,0,1 -90,90,0,1,0,1 -91,90,0,1,0,1 -92,90,0,1,0,1 -93,90,0,1,0,1 -94,90,0,1,0,1 -95,90,0,1,0,1 -96,90,0,1,0,1 -97,90,0,1,0,1 -98,90,0,1,0,1 -99,90,0,1,0,1 -100,90,0,1,0,1 -101,90,0,1,0,1 -102,90,0,1,0,1 -103,90,0,1,0,1 -104,90,0,1,0,1 -105,90,0,1,0,1 -106,90,0,1,0,1 -107,90,0,1,0,1 -108,90,0,1,0,1 -109,90,0,1,0,1 -110,90,0,1,0,1 -111,90,0,1,0,1 -112,90,0,1,0,1 -113,90,0,1,0,1 -114,90,0,1,0,1 -115,90,0,1,0,1 -116,90,0,1,0,1 -117,90,0,1,0,1 -118,90,0,1,0,1 -119,90,0,1,0,1 -120,90,0,1,0,1 -121,90,0,1,0,1 -122,90,0,1,0,1 -123,90,0,1,0,1 -124,90,0,1,0,1 -125,90,0,1,0,1 -126,90,0,1,0,1 -127,90,0,1,0,1 -128,90,0,1,0,1 -129,90,0,1,0,1 -130,90,0,1,0,1 -131,90,0,1,0,1 -132,90,0,1,0,1 -133,90,0,1,0,1 -134,90,0,1,0,1 -135,90,0,1,0,1 -136,90,0,1,0,1 -137,90,0,1,0,1 -138,90,0,1,0,1 -139,90,0,1,0,1 -140,90,0,1,0,1 -141,90,0,1,0,1 -142,90,0,1,0,1 -143,90,0,1,0,1 -144,90,0,1,0,1 -145,90,0,1,0,1 -146,90,0,1,0,1 -147,90,0,1,0,1 -148,90,0,1,0,1 -149,90,0,1,0,1 -150,90,0,1,0,1 -151,90,0,1,0,1 -152,90,0,1,0,1 -153,90,0,1,0,1 -154,90,0,1,0,1 -155,90,0,1,0,1 -156,90,0,1,0,1 -157,90,0,1,0,1 -158,90,0,1,0,1 -159,90,0,1,0,1 -160,90,0,1,0,1 -161,90,0,1,0,1 -162,90,0,1,0,1 -163,90,0,1,0,1 -164,90,0,1,0,1 -165,90,0,1,0,1 -166,90,0,1,0,1 -167,90,0,1,0,1 -168,90,0,1,0,1 -169,90,0,1,0,1 -170,90,0,1,0,1 -171,90,0,1,0,1 -172,90,0,1,0,1 -173,90,0,1,0,1 -174,90,0,1,0,1 -175,90,0,1,0,1 -176,90,0,1,0,1 -177,90,0,1,0,1 -178,90,0,1,0,1 -179,90,0,1,0,1 -180,90,0,1,0,1 -181,90,0,1,0,1 -182,90,0,1,0,1 -183,90,0,1,0,1 -184,90,0,1,0,1 -185,90,0,1,0,1 -186,90,0,1,0,1 -187,90,0,1,0,1 -188,90,0,1,0,1 -189,90,0,1,0,1 -190,90,0,1,0,1 -191,90,0,1,0,1 -192,90,0,1,0,1 -193,90,0,1,0,1 -194,90,0,1,0,1 -195,90,0,1,0,1 -196,90,0,1,0,1 -197,90,0,1,0,1 -198,90,0,1,0,1 -199,90,0,1,0,1 -200,90,0,1,0,1 -201,90,0,1,0,1 -202,90,0,1,0,1 -203,90,0,1,0,1 -204,90,0,1,0,1 -205,90,0,1,0,1 -206,90,0,1,0,1 -207,90,0,1,0,1 -208,90,0,1,0,1 -209,90,0,1,0,1 -210,90,0,1,0,1 -211,90,0,1,0,1 -212,90,0,1,0,1 -213,90,0,1,0,1 -214,90,0,1,0,1 -215,90,0,1,0,1 -216,90,0,1,0,1 -217,90,0,1,0,1 -218,90,0,1,0,1 -219,90,0,1,0,1 -220,90,0,1,0,1 -221,90,0,1,0,1 -222,90,0,1,0,1 -223,90,0,1,0,1 -224,90,0,1,0,1 -225,90,0,1,0,1 -226,90,0,1,0,1 -227,90,0,1,0,1 -228,90,0,1,0,1 -229,90,0,1,0,1 -230,90,0,1,0,1 -231,90,0,1,0,1 -232,90,0,1,0,1 -233,90,0,1,0,1 -234,90,0,1,0,1 -235,90,0,1,0,1 -236,90,0,1,0,1 -237,90,0,1,0,1 -238,90,0,1,0,1 -239,90,0,1,0,1 -240,90,0,1,0,1 -241,90,0,1,0,1 -242,90,0,1,0,1 -243,90,0,1,0,1 -244,90,0,1,0,1 -245,90,0,1,0,1 -246,90,0,1,0,1 -247,90,0,1,0,1 -248,90,0,1,0,1 -249,90,0,1,0,1 -250,90,0,1,0,1 -251,90,0,1,0,1 -252,90,0,1,0,1 -253,90,0,1,0,1 -254,90,0,1,0,1 -255,90,0,1,0,1 -256,90,0,1,0,1 -257,90,0,1,0,1 -258,90,0,1,0,1 -259,90,0,1,0,1 -260,90,0,1,0,1 -261,90,0,1,0,1 -262,90,0,1,0,1 -263,90,0,1,0,1 -264,90,0,1,0,1 -265,90,0,1,0,1 -266,90,0,1,0,1 -267,90,0,1,0,1 -268,90,0,1,0,1 -269,90,0,1,0,1 -270,90,0,1,0,1 -271,90,0,1,0,1 -272,90,0,1,0,1 -273,90,0,1,0,1 -274,90,0,1,0,1 -275,90,0,1,0,1 -276,90,0,1,0,1 -277,90,0,1,0,1 -278,90,0,1,0,1 -279,90,0,1,0,1 -280,90,0,1,0,1 -281,90,0,1,0,1 -282,90,0,1,0,1 -283,90,0,1,0,1 -284,90,0,1,0,1 -285,90,0,1,0,1 -286,90,0,1,0,1 -287,90,0,1,0,1 -288,90,0,1,0,1 -289,90,0,1,0,1 -290,90,0,1,0,1 -291,90,0,1,0,1 -292,90,0,1,0,1 -293,90,0,1,0,1 -294,90,0,1,0,1 -295,90,0,1,0,1 -296,90,0,1,0,1 -297,90,0,1,0,1 -298,90,0,1,0,1 -299,90,0,1,0,1 -300,90,0,1,0,1 -301,90,0,1,0,1 -302,90,0,1,0,1 -303,90,0,1,0,1 -304,90,0,1,0,1 -305,90,0,1,0,1 -306,90,0,1,0,1 -307,90,0,1,0,1 -308,90,0,1,0,1 -309,90,0,1,0,1 -310,90,0,1,0,1 -311,90,0,1,0,1 -312,90,0,1,0,1 -313,90,0,1,0,1 -314,90,0,1,0,1 -315,90,0,1,0,1 -316,90,0,1,0,1 -317,90,0,1,0,1 -318,90,0,1,0,1 -319,90,0,1,0,1 -320,90,0,1,0,1 -321,90,0,1,0,1 -322,90,0,1,0,1 -323,90,0,1,0,1 -324,90,0,1,0,1 -325,90,0,1,0,1 -326,90,0,1,0,1 -327,90,0,1,0,1 -328,90,0,1,0,1 -329,90,0,1,0,1 -330,90,0,1,0,1 -331,90,0,1,0,1 -332,90,0,1,0,1 -333,90,0,1,0,1 -334,90,0,1,0,1 -335,90,0,1,0,1 -336,90,0,1,0,1 -337,90,0,1,0,1 -338,90,0,1,0,1 -339,90,0,1,0,1 -340,90,0,1,0,1 -341,90,0,1,0,1 -342,90,0,1,0,1 -343,90,0,1,0,1 -344,90,0,1,0,1 -345,90,0,1,0,1 -346,90,0,1,0,1 -347,90,0,1,0,1 -348,90,0,1,0,1 -349,90,0,1,0,1 -350,90,0,1,0,1 -351,90,0,1,0,1 -352,90,0,1,0,1 -353,90,0,1,0,1 -354,90,0,1,0,1 -355,90,0,1,0,1 -356,90,0,1,0,1 -357,90,0,1,0,1 -358,90,0,1,0,1 -359,90,0,1,0,1 -360,90,0,1,0,1 -361,90,0,1,0,1 -362,90,0,1,0,1 -363,90,0,1,0,1 -364,90,0,1,0,1 -365,90,0,1,0,1 -366,90,0,1,0,1 -367,90,0,1,0,1 -368,90,0,1,0,1 -369,90,0,1,0,1 -370,90,0,1,0,1 -371,90,0,1,0,1 -372,90,0,1,0,1 -373,90,0,1,0,1 -374,90,0,1,0,1 -375,90,0,1,0,1 -376,90,0,1,0,1 -377,90,0,1,0,1 -378,90,0,1,0,1 -379,90,0,1,0,1 -380,90,0,1,0,1 -381,90,0,1,0,1 -382,90,0,1,0,1 -383,90,0,1,0,1 -384,90,0,1,0,1 -385,90,0,1,0,1 -386,90,0,1,0,1 -387,90,0,1,0,1 -388,90,0,1,0,1 -389,90,0,1,0,1 -390,90,0,1,0,1 -391,90,0,1,0,1 -392,90,0,1,0,1 -393,90,0,1,0,1 -394,90,0,1,0,1 -395,90,0,1,0,1 -396,90,0,1,0,1 -397,90,0,1,0,1 -398,90,0,1,0,1 -399,90,0,1,0,1 -400,90,0,1,0,1 -401,90,0,1,0,1 -402,90,0,1,0,1 -403,90,0,1,0,1 -404,90,0,1,0,1 -405,90,0,1,0,1 -406,90,0,1,0,1 -407,90,0,1,0,1 -408,90,0,1,0,1 -409,90,0,1,0,1 -410,90,0,1,0,1 -411,90,0,1,0,1 -412,90,0,1,0,1 -413,90,0,1,0,1 -414,90,0,1,0,1 -415,90,0,1,0,1 -416,90,0,1,0,1 -417,90,0,1,0,1 -418,90,0,1,0,1 -419,90,0,1,0,1 -420,90,0,1,0,1 -421,90,0,1,0,1 -422,90,0,1,0,1 -423,90,0,1,0,1 -424,90,0,1,0,1 -425,90,0,1,0,1 -426,90,0,1,0,1 -427,90,0,1,0,1 -428,90,0,1,0,1 -429,90,0,1,0,1 -430,90,0,1,0,1 -431,90,0,1,0,1 -432,90,0,1,0,1 -433,90,0,1,0,1 -434,90,0,1,0,1 -435,90,0,1,0,1 -436,90,0,1,0,1 -437,90,0,1,0,1 -438,90,0,1,0,1 -439,90,0,1,0,1 -440,90,0,1,0,1 -441,90,0,1,0,1 -442,90,0,1,0,1 -443,90,0,1,0,1 -444,90,0,1,0,1 -445,90,0,1,0,1 -446,90,0,1,0,1 -447,90,0,1,0,1 -448,90,0,1,0,1 -449,90,0,1,0,1 -450,90,0,1,0,1 -451,90,0,1,0,1 -452,90,0,1,0,1 -453,90,0,1,0,1 -454,90,0,1,0,1 -455,90,0,1,0,1 -456,90,0,1,0,1 -457,90,0,1,0,1 -458,90,0,1,0,1 -459,90,0,1,0,1 -460,90,0,1,0,1 -461,90,0,1,0,1 -462,90,0,1,0,1 -463,90,0,1,0,1 -464,90,0,1,0,1 -465,90,0,1,0,1 -466,90,0,1,0,1 -467,90,0,1,0,1 -468,90,0,1,0,1 -469,90,0,1,0,1 -470,90,0,1,0,1 -471,90,0,1,0,1 -472,90,0,1,0,1 -473,90,0,1,0,1 -474,90,0,1,0,1 -475,90,0,1,0,1 -476,90,0,1,0,1 -477,90,0,1,0,1 -478,90,0,1,0,1 -479,90,0,1,0,1 -480,90,0,1,0,1 -481,90,0,1,0,1 -482,90,0,1,0,1 -483,90,0,1,0,1 -484,90,0,1,0,1 -485,90,0,1,0,1 -486,90,0,1,0,1 -487,90,0,1,0,1 -488,90,0,1,0,1 -489,90,0,1,0,1 -490,90,0,1,0,1 -491,90,0,1,0,1 -492,90,0,1,0,1 -493,90,0,1,0,1 -494,90,0,1,0,1 -495,90,0,1,0,1 -496,90,0,1,0,1 -497,90,0,1,0,1 -498,90,0,1,0,1 -499,90,0,1,0,1 -500,90,0,1,0,1 -501,90,0,1,0,1 -502,90,0,1,0,1 -503,90,0,1,0,1 -504,90,0,1,0,1 -505,90,0,1,0,1 -506,90,0,1,0,1 -507,90,0,1,0,1 -508,90,0,1,0,1 -509,90,0,1,0,1 -510,90,0,1,0,1 -511,90,0,1,0,1 -512,90,0,1,0,1 -513,90,0,1,0,1 -514,90,0,1,0,1 -515,90,0,1,0,1 -516,90,0,1,0,1 -517,90,0,1,0,1 -518,90,0,1,0,1 -519,90,0,1,0,1 -520,90,0,1,0,1 -521,90,0,1,0,1 -522,90,0,1,0,1 -523,90,0,1,0,1 -524,90,0,1,0,1 -525,90,0,1,0,1 -526,90,0,1,0,1 -527,90,0,1,0,1 -528,90,0,1,0,1 -529,90,0,1,0,1 -530,90,0,1,0,1 -531,90,0,1,0,1 -532,90,0,1,0,1 -533,90,0,1,0,1 -534,90,0,1,0,1 -535,90,0,1,0,1 -536,90,0,1,0,1 -537,90,0,1,0,1 -538,90,0,1,0,1 -539,90,0,1,0,1 -540,90,0,1,0,1 -541,90,0,1,0,1 -542,90,0,1,0,1 -543,90,0,1,0,1 -544,90,0,1,0,1 -545,90,0,1,0,1 -546,90,0,1,0,1 -547,90,0,1,0,1 -548,90,0,1,0,1 -549,90,0,1,0,1 -550,90,0,1,0,1 -551,90,0,1,0,1 -552,90,0,1,0,1 -553,90,0,1,0,1 -554,90,0,1,0,1 -555,90,0,1,0,1 -556,90,0,1,0,1 -557,90,0,1,0,1 -558,90,0,1,0,1 -559,90,0,1,0,1 -560,90,0,1,0,1 -561,90,0,1,0,1 -562,90,0,1,0,1 -563,90,0,1,0,1 -564,90,0,1,0,1 -565,90,0,1,0,1 -566,90,0,1,0,1 -567,90,0,1,0,1 -568,90,0,1,0,1 -569,90,0,1,0,1 -570,90,0,1,0,1 -571,90,0,1,0,1 -572,90,0,1,0,1 -573,90,0,1,0,1 -574,90,0,1,0,1 -575,90,0,1,0,1 -576,90,0,1,0,1 -577,90,0,1,0,1 -578,90,0,1,0,1 -579,90,0,1,0,1 -580,90,0,1,0,1 -581,90,0,1,0,1 -582,90,0,1,0,1 -583,90,0,1,0,1 -584,90,0,1,0,1 -585,90,0,1,0,1 -586,90,0,1,0,1 -587,90,0,1,0,1 -588,90,0,1,0,1 -589,90,0,1,0,1 -590,90,0,1,0,1 -591,90,0,1,0,1 -592,90,0,1,0,1 -593,90,0,1,0,1 -594,90,0,1,0,1 -595,90,0,1,0,1 -596,90,0,1,0,1 -597,90,0,1,0,1 -598,90,0,1,0,1 -599,90,0,1,0,1 -600,90,0,1,0,1 -601,90,0,1,0,1 -602,90,0,1,0,1 -603,90,0,1,0,1 -604,90,0,1,0,1 -605,90,0,1,0,1 -606,90,0,1,0,1 -607,90,0,1,0,1 -608,90,0,1,0,1 -609,90,0,1,0,1 -610,90,0,1,0,1 -611,90,0,1,0,1 -612,90,0,1,0,1 -613,90,0,1,0,1 -614,90,0,1,0,1 -615,90,0,1,0,1 -616,90,0,1,0,1 -617,90,0,1,0,1 -618,90,0,1,0,1 -619,90,0,1,0,1 -620,90,0,1,0,1 -621,90,0,1,0,1 -622,90,0,1,0,1 -623,90,0,1,0,1 -624,90,0,1,0,1 -625,90,0,1,0,1 -626,90,0,1,0,1 -627,90,0,1,0,1 -628,90,0,1,0,1 -629,90,0,1,0,1 -630,90,0,1,0,1 -631,90,0,1,0,1 -632,90,0,1,0,1 -633,90,0,1,0,1 -634,90,0,1,0,1 -635,90,0,1,0,1 -636,90,0,1,0,1 -637,90,0,1,0,1 -638,90,0,1,0,1 -639,90,0,1,0,1 -640,90,0,1,0,1 -641,90,0,1,0,1 -642,90,0,1,0,1 -643,90,0,1,0,1 -644,90,0,1,0,1 -645,90,0,1,0,1 -646,90,0,1,0,1 -647,90,0,1,0,1 -648,90,0,1,0,1 -649,90,0,1,0,1 -650,90,0,1,0,1 -651,90,0,1,0,1 -652,90,0,1,0,1 -653,90,0,1,0,1 -654,90,0,1,0,1 -655,90,0,1,0,1 -656,90,0,1,0,1 -657,90,0,1,0,1 -658,90,0,1,0,1 -659,90,0,1,0,1 -660,90,0,1,0,1 -661,90,0,1,0,1 -662,90,0,1,0,1 -663,90,0,1,0,1 -664,90,0,1,0,1 -665,90,0,1,0,1 -666,90,0,1,0,1 -667,90,0,1,0,1 -668,90,0,1,0,1 -669,90,0,1,0,1 -670,90,0,1,0,1 -671,90,0,1,0,1 -672,90,0,1,0,1 -673,90,0,1,0,1 -674,90,0,1,0,1 -675,90,0,1,0,1 -676,90,0,1,0,1 -677,90,0,1,0,1 -678,90,0,1,0,1 -679,90,0,1,0,1 -680,90,0,1,0,1 -681,90,0,1,0,1 -682,90,0,1,0,1 -683,90,0,1,0,1 -684,90,0,1,0,1 -685,90,0,1,0,1 -686,90,0,1,0,1 -687,90,0,1,0,1 -688,90,0,1,0,1 -689,90,0,1,0,1 -690,90,0,1,0,1 -691,90,0,1,0,1 -692,90,0,1,0,1 -693,90,0,1,0,1 -694,90,0,1,0,1 -695,90,0,1,0,1 -696,90,0,1,0,1 -697,90,0,1,0,1 -698,90,0,1,0,1 -699,90,0,1,0,1 -700,90,0,1,0,1 -701,90,0,1,0,1 -702,90,0,1,0,1 -703,90,0,1,0,1 -704,90,0,1,0,1 -705,90,0,1,0,1 -706,90,0,1,0,1 -707,90,0,1,0,1 -708,90,0,1,0,1 -709,90,0,1,0,1 -710,90,0,1,0,1 -711,90,0,1,0,1 -712,90,0,1,0,1 -713,90,0,1,0,1 -714,90,0,1,0,1 -715,90,0,1,0,1 -716,90,0,1,0,1 -717,90,0,1,0,1 -718,90,0,1,0,1 -719,90,0,1,0,1 -720,90,0,1,0,1 -721,90,0,1,0,1 -722,90,0,1,0,1 -723,90,0,1,0,1 -724,90,0,1,0,1 -725,90,0,1,0,1 -726,90,0,1,0,1 -727,90,0,1,0,1 -728,90,0,1,0,1 -729,90,0,1,0,1 -730,90,0,1,0,1 -731,90,0,1,0,1 -732,90,0,1,0,1 -733,90,0,1,0,1 -734,90,0,1,0,1 -735,90,0,1,0,1 -736,90,0,1,0,1 -737,90,0,1,0,1 -738,90,0,1,0,1 -739,90,0,1,0,1 -740,90,0,1,0,1 -741,90,0,1,0,1 -742,90,0,1,0,1 -743,90,0,1,0,1 -744,90,0,1,0,1 -745,90,0,1,0,1 -746,90,0,1,0,1 -747,90,0,1,0,1 -748,90,0,1,0,1 -749,90,0,1,0,1 diff --git a/tests/renderer/data/pink_noise_10ch_48kHz.wav b/tests/renderer/data/pink_noise_10ch_48kHz.wav deleted file mode 100644 index d62a4a2e45..0000000000 --- a/tests/renderer/data/pink_noise_10ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d91e0bde3e5efd507b50ab9635504918936f406be5655a33859ecc7cce8e6578 -size 960044 diff --git a/tests/renderer/data/pink_noise_11ch_48kHz.wav b/tests/renderer/data/pink_noise_11ch_48kHz.wav deleted file mode 100644 index 1d6de74f3c..0000000000 --- a/tests/renderer/data/pink_noise_11ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:91c84157cb13d5c61493f907e4b38302d1e838a04610e708186e67a066ebb0c2 -size 1056044 diff --git a/tests/renderer/data/pink_noise_12ch_48kHz.wav b/tests/renderer/data/pink_noise_12ch_48kHz.wav deleted file mode 100644 index a6ec8c67ae..0000000000 --- a/tests/renderer/data/pink_noise_12ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:90ea167b7228a7ec54658bf4d0d61814fbe288bf4e7bd5a72a6ab3ef691f2008 -size 1152044 diff --git a/tests/renderer/data/pink_noise_13ch_48kHz.wav b/tests/renderer/data/pink_noise_13ch_48kHz.wav deleted file mode 100644 index 222397e8e1..0000000000 --- a/tests/renderer/data/pink_noise_13ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6b3afeddf57940780add178ff098515940556752758f87ac160386ff7125071e -size 1248044 diff --git a/tests/renderer/data/pink_noise_14ch_48kHz.wav b/tests/renderer/data/pink_noise_14ch_48kHz.wav deleted file mode 100644 index 098b57d3dd..0000000000 --- a/tests/renderer/data/pink_noise_14ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c542f1421067546614e47b17715c89d5e705f904faf41bdbd1d439e0abd9e1e0 -size 1344044 diff --git a/tests/renderer/data/pink_noise_15ch_48kHz.wav b/tests/renderer/data/pink_noise_15ch_48kHz.wav deleted file mode 100644 index f059f92c69..0000000000 --- a/tests/renderer/data/pink_noise_15ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9becb4e4c271590ead4c898992e593baaf4678887f67153e91a8de87c7b5c3ca -size 1440044 diff --git a/tests/renderer/data/pink_noise_16ch_48kHz.wav b/tests/renderer/data/pink_noise_16ch_48kHz.wav deleted file mode 100644 index 3ee7f71d89..0000000000 --- a/tests/renderer/data/pink_noise_16ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:90027b3f8b8514bafb2e1dee80a77fc200bafcf45219852b3b7bd97ca60369c2 -size 1536044 diff --git a/tests/renderer/data/pink_noise_1ch_48kHz.wav b/tests/renderer/data/pink_noise_1ch_48kHz.wav deleted file mode 100644 index 5ed1fe6292..0000000000 --- a/tests/renderer/data/pink_noise_1ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:54ee3a0aa4cbb5295a33fe0637a1854900d2b14813911c7316193cab53b609dc -size 96044 diff --git a/tests/renderer/data/pink_noise_2ch_48kHz.wav b/tests/renderer/data/pink_noise_2ch_48kHz.wav deleted file mode 100644 index 0e0e43f682..0000000000 --- a/tests/renderer/data/pink_noise_2ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce34623cf87d56cf5d695e79388d1229f74ba266e0977c18cdf03df174675e3d -size 192044 diff --git a/tests/renderer/data/pink_noise_3ch_48kHz.wav b/tests/renderer/data/pink_noise_3ch_48kHz.wav deleted file mode 100644 index a9ae37feb4..0000000000 --- a/tests/renderer/data/pink_noise_3ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:de99e669d4300cd94d3f4966f96ba0f2ca85c40c7cc6cfeb8d09058050ab0909 -size 288044 diff --git a/tests/renderer/data/pink_noise_4ch_48kHz.wav b/tests/renderer/data/pink_noise_4ch_48kHz.wav deleted file mode 100644 index 7881c149f0..0000000000 --- a/tests/renderer/data/pink_noise_4ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a9310f2e04af7f544f70dfd7360b93c9bafff7e35d9c919e003b27ed549974d8 -size 384044 diff --git a/tests/renderer/data/pink_noise_5ch_48kHz.wav b/tests/renderer/data/pink_noise_5ch_48kHz.wav deleted file mode 100644 index f99dc847d9..0000000000 --- a/tests/renderer/data/pink_noise_5ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:be89b959d794e780a04956637d3a6f0128452e54153ad7f54e516b2596b52589 -size 480044 diff --git a/tests/renderer/data/pink_noise_6ch_48kHz.wav b/tests/renderer/data/pink_noise_6ch_48kHz.wav deleted file mode 100644 index deaea297fe..0000000000 --- a/tests/renderer/data/pink_noise_6ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6bfe70996dee2eb3bad563eed9bfaf6824449cbec165d666670de2641660b6d -size 576044 diff --git a/tests/renderer/data/pink_noise_7ch_48kHz.wav b/tests/renderer/data/pink_noise_7ch_48kHz.wav deleted file mode 100644 index 70a4cf75da..0000000000 --- a/tests/renderer/data/pink_noise_7ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9e582f2584abdce32381f1f1366c73171f71a08334751c3c6114ec2f49945b2c -size 672044 diff --git a/tests/renderer/data/pink_noise_8ch_48kHz.wav b/tests/renderer/data/pink_noise_8ch_48kHz.wav deleted file mode 100644 index 3b42c83e48..0000000000 --- a/tests/renderer/data/pink_noise_8ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:418a1cc37dec9dc9a51efd208afe7b6843787e3ed64c86fa69c5780cfb5d3c18 -size 768044 diff --git a/tests/renderer/data/pink_noise_9ch_48kHz.wav b/tests/renderer/data/pink_noise_9ch_48kHz.wav deleted file mode 100644 index 6c5859184d..0000000000 --- a/tests/renderer/data/pink_noise_9ch_48kHz.wav +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d1ef5804949cabfb17ce103010ff33c6229e5c6e28d2cd93c7c8c6060a894023 -size 864044 diff --git a/tests/renderer/data/spectral_test_ism1.txt b/tests/renderer/data/spectral_test_ism1.txt deleted file mode 100644 index 84b3b25268..0000000000 --- a/tests/renderer/data/spectral_test_ism1.txt +++ /dev/null @@ -1,5 +0,0 @@ -spectral_test_1ch_48kHz.wav -1 -ISM -1 -stvISM1.csv diff --git a/tests/renderer/data/spectral_test_ism2.txt b/tests/renderer/data/spectral_test_ism2.txt deleted file mode 100644 index 18f3e7a24c..0000000000 --- a/tests/renderer/data/spectral_test_ism2.txt +++ /dev/null @@ -1,8 +0,0 @@ -spectral_test_2ch_48kHz.wav -2 -ISM -1 -stvISM1.csv -ISM -2 -stvISM2.csv diff --git a/tests/renderer/data/spectral_test_ism3.txt b/tests/renderer/data/spectral_test_ism3.txt deleted file mode 100644 index c25d0d0dff..0000000000 --- a/tests/renderer/data/spectral_test_ism3.txt +++ /dev/null @@ -1,11 +0,0 @@ -spectral_test_3ch_48kHz.wav -3 -ISM -1 -stvISM1.csv -ISM -2 -stvISM2.csv -ISM -3 -stvISM3.csv diff --git a/tests/renderer/data/spectral_test_ism4.txt b/tests/renderer/data/spectral_test_ism4.txt deleted file mode 100644 index f4a95d1e09..0000000000 --- a/tests/renderer/data/spectral_test_ism4.txt +++ /dev/null @@ -1,14 +0,0 @@ -spectral_test_4ch_48kHz.wav -4 -ISM -1 -stvISM1.csv -ISM -2 -stvISM2.csv -ISM -3 -stvISM3.csv -ISM -4 -stvISM4.csv diff --git a/tests/renderer/data/stvISM1.csv b/tests/renderer/data/stvISM1.csv deleted file mode 100644 index 574c537028..0000000000 --- a/tests/renderer/data/stvISM1.csv +++ /dev/null @@ -1,1500 +0,0 @@ -0,0.00,0.00,1.00,0.00,1.00 -1,4.80,0.00,1.00,0.00,1.00 -2,9.60,0.00,1.00,0.00,1.00 -3,14.40,0.00,1.00,0.00,1.00 -4,19.20,0.00,1.00,0.00,1.00 -5,24.00,0.00,1.00,0.00,1.00 -6,28.80,0.00,1.00,0.00,1.00 -7,33.60,0.00,1.00,0.00,1.00 -8,38.40,0.00,1.00,0.00,1.00 -9,43.20,0.00,1.00,0.00,1.00 -10,48.00,0.00,1.00,0.00,1.00 -11,52.80,0.00,1.00,0.00,1.00 -12,57.60,0.00,1.00,0.00,1.00 -13,62.40,0.00,1.00,0.00,1.00 -14,67.20,0.00,1.00,0.00,1.00 -15,72.00,0.00,1.00,0.00,1.00 -16,76.80,0.00,1.00,0.00,1.00 -17,81.60,0.00,1.00,0.00,1.00 -18,86.40,0.00,1.00,0.00,1.00 -19,91.20,0.00,1.00,0.00,1.00 -20,96.00,0.00,1.00,0.00,1.00 -21,100.80,0.00,1.00,0.00,1.00 -22,105.60,0.00,1.00,0.00,1.00 -23,110.40,0.00,1.00,0.00,1.00 -24,115.20,0.00,1.00,0.00,1.00 -25,120.00,0.00,1.00,0.00,1.00 -26,124.80,0.00,1.00,0.00,1.00 -27,129.60,0.00,1.00,0.00,1.00 -28,134.40,0.00,1.00,0.00,1.00 -29,139.20,0.00,1.00,0.00,1.00 -30,144.00,0.00,1.00,0.00,1.00 -31,148.80,0.00,1.00,0.00,1.00 -32,153.60,0.00,1.00,0.00,1.00 -33,158.40,0.00,1.00,0.00,1.00 -34,163.20,0.00,1.00,0.00,1.00 -35,168.00,0.00,1.00,0.00,1.00 -36,172.80,0.00,1.00,0.00,1.00 -37,177.60,0.00,1.00,0.00,1.00 -38,-177.60,0.00,1.00,0.00,1.00 -39,-172.80,0.00,1.00,0.00,1.00 -40,-168.00,0.00,1.00,0.00,1.00 -41,-163.20,0.00,1.00,0.00,1.00 -42,-158.40,0.00,1.00,0.00,1.00 -43,-153.60,0.00,1.00,0.00,1.00 -44,-148.80,0.00,1.00,0.00,1.00 -45,-144.00,0.00,1.00,0.00,1.00 -46,-139.20,0.00,1.00,0.00,1.00 -47,-134.40,0.00,1.00,0.00,1.00 -48,-129.60,0.00,1.00,0.00,1.00 -49,-124.80,0.00,1.00,0.00,1.00 -50,-120.00,0.00,1.00,0.00,1.00 -51,-115.20,0.00,1.00,0.00,1.00 -52,-110.40,0.00,1.00,0.00,1.00 -53,-105.60,0.00,1.00,0.00,1.00 -54,-100.80,0.00,1.00,0.00,1.00 -55,-96.00,0.00,1.00,0.00,1.00 -56,-91.20,0.00,1.00,0.00,1.00 -57,-86.40,0.00,1.00,0.00,1.00 -58,-81.60,0.00,1.00,0.00,1.00 -59,-76.80,0.00,1.00,0.00,1.00 -60,-72.00,0.00,1.00,0.00,1.00 -61,-67.20,0.00,1.00,0.00,1.00 -62,-62.40,0.00,1.00,0.00,1.00 -63,-57.60,0.00,1.00,0.00,1.00 -64,-52.80,0.00,1.00,0.00,1.00 -65,-48.00,0.00,1.00,0.00,1.00 -66,-43.20,0.00,1.00,0.00,1.00 -67,-38.40,0.00,1.00,0.00,1.00 -68,-33.60,0.00,1.00,0.00,1.00 -69,-28.80,0.00,1.00,0.00,1.00 -70,-24.00,0.00,1.00,0.00,1.00 -71,-19.20,0.00,1.00,0.00,1.00 -72,-14.40,0.00,1.00,0.00,1.00 -73,-9.60,0.00,1.00,0.00,1.00 -74,-4.80,0.00,1.00,0.00,1.00 -75,0.00,0.00,1.00,0.00,1.00 -76,4.80,-0.00,1.00,0.00,1.00 -77,9.60,-0.00,1.00,0.00,1.00 -78,14.40,-0.00,1.00,0.00,1.00 -79,19.20,-0.00,1.00,0.00,1.00 -80,24.00,-0.00,1.00,0.00,1.00 -81,28.80,-0.00,1.00,0.00,1.00 -82,33.60,-4.80,1.00,0.00,1.00 -83,38.40,-4.80,1.00,0.00,1.00 -84,43.20,-4.80,1.00,0.00,1.00 -85,48.00,-4.80,1.00,0.00,1.00 -86,52.80,-4.80,1.00,0.00,1.00 -87,57.60,-4.80,1.00,0.00,1.00 -88,62.40,-4.80,1.00,0.00,1.00 -89,67.20,-4.80,1.00,0.00,1.00 -90,72.00,-4.80,1.00,0.00,1.00 -91,76.80,-4.80,1.00,0.00,1.00 -92,81.60,-4.80,1.00,0.00,1.00 -93,86.40,-4.80,1.00,0.00,1.00 -94,91.20,-4.80,1.00,0.00,1.00 -95,96.00,-4.80,1.00,0.00,1.00 -96,100.80,-4.80,1.00,0.00,1.00 -97,105.60,-4.80,1.00,0.00,1.00 -98,110.40,-4.80,1.00,0.00,1.00 -99,115.20,-4.80,1.00,0.00,1.00 -100,120.00,-4.80,1.00,0.00,1.00 -101,124.80,-4.80,1.00,0.00,1.00 -102,129.60,-4.80,1.00,0.00,1.00 -103,134.40,-4.80,1.00,0.00,1.00 -104,139.20,-4.80,1.00,0.00,1.00 -105,144.00,-4.80,1.00,0.00,1.00 -106,148.80,-4.80,1.00,0.00,1.00 -107,153.60,-0.00,1.00,0.00,1.00 -108,158.40,-0.00,1.00,0.00,1.00 -109,163.20,-0.00,1.00,0.00,1.00 -110,168.00,-0.00,1.00,0.00,1.00 -111,172.80,-0.00,1.00,0.00,1.00 -112,177.60,-0.00,1.00,0.00,1.00 -113,-177.60,0.00,1.00,0.00,1.00 -114,-172.80,0.00,1.00,0.00,1.00 -115,-168.00,0.00,1.00,0.00,1.00 -116,-163.20,0.00,1.00,0.00,1.00 -117,-158.40,0.00,1.00,0.00,1.00 -118,-153.60,0.00,1.00,0.00,1.00 -119,-148.80,4.80,1.00,0.00,1.00 -120,-144.00,4.80,1.00,0.00,1.00 -121,-139.20,4.80,1.00,0.00,1.00 -122,-134.40,4.80,1.00,0.00,1.00 -123,-129.60,4.80,1.00,0.00,1.00 -124,-124.80,4.80,1.00,0.00,1.00 -125,-120.00,4.80,1.00,0.00,1.00 -126,-115.20,4.80,1.00,0.00,1.00 -127,-110.40,4.80,1.00,0.00,1.00 -128,-105.60,4.80,1.00,0.00,1.00 -129,-100.80,4.80,1.00,0.00,1.00 -130,-96.00,4.80,1.00,0.00,1.00 -131,-91.20,4.80,1.00,0.00,1.00 -132,-86.40,4.80,1.00,0.00,1.00 -133,-81.60,4.80,1.00,0.00,1.00 -134,-76.80,4.80,1.00,0.00,1.00 -135,-72.00,4.80,1.00,0.00,1.00 -136,-67.20,4.80,1.00,0.00,1.00 -137,-62.40,4.80,1.00,0.00,1.00 -138,-57.60,4.80,1.00,0.00,1.00 -139,-52.80,4.80,1.00,0.00,1.00 -140,-48.00,4.80,1.00,0.00,1.00 -141,-43.20,4.80,1.00,0.00,1.00 -142,-38.40,4.80,1.00,0.00,1.00 -143,-33.60,4.80,1.00,0.00,1.00 -144,-28.80,0.00,1.00,0.00,1.00 -145,-24.00,0.00,1.00,0.00,1.00 -146,-19.20,0.00,1.00,0.00,1.00 -147,-14.40,0.00,1.00,0.00,1.00 -148,-9.60,0.00,1.00,0.00,1.00 -149,-4.80,0.00,1.00,0.00,1.00 -150,0.00,0.00,1.00,0.00,1.00 -151,4.80,-0.00,1.00,0.00,1.00 -152,9.60,-0.00,1.00,0.00,1.00 -153,14.40,-0.00,1.00,0.00,1.00 -154,19.20,-4.80,1.00,0.00,1.00 -155,24.00,-4.80,1.00,0.00,1.00 -156,28.80,-4.80,1.00,0.00,1.00 -157,33.60,-4.80,1.00,0.00,1.00 -158,38.40,-4.80,1.00,0.00,1.00 -159,43.20,-4.80,1.00,0.00,1.00 -160,48.00,-4.80,1.00,0.00,1.00 -161,52.80,-9.60,1.00,0.00,1.00 -162,57.60,-9.60,1.00,0.00,1.00 -163,62.40,-9.60,1.00,0.00,1.00 -164,67.20,-9.60,1.00,0.00,1.00 -165,72.00,-9.60,1.00,0.00,1.00 -166,76.80,-9.60,1.00,0.00,1.00 -167,81.60,-9.60,1.00,0.00,1.00 -168,86.40,-9.60,1.00,0.00,1.00 -169,91.20,-9.60,1.00,0.00,1.00 -170,96.00,-9.60,1.00,0.00,1.00 -171,100.80,-9.60,1.00,0.00,1.00 -172,105.60,-9.60,1.00,0.00,1.00 -173,110.40,-9.60,1.00,0.00,1.00 -174,115.20,-9.60,1.00,0.00,1.00 -175,120.00,-9.60,1.00,0.00,1.00 -176,124.80,-9.60,1.00,0.00,1.00 -177,129.60,-9.60,1.00,0.00,1.00 -178,134.40,-4.80,1.00,0.00,1.00 -179,139.20,-4.80,1.00,0.00,1.00 -180,144.00,-4.80,1.00,0.00,1.00 -181,148.80,-4.80,1.00,0.00,1.00 -182,153.60,-4.80,1.00,0.00,1.00 -183,158.40,-4.80,1.00,0.00,1.00 -184,163.20,-4.80,1.00,0.00,1.00 -185,168.00,-0.00,1.00,0.00,1.00 -186,172.80,-0.00,1.00,0.00,1.00 -187,177.60,-0.00,1.00,0.00,1.00 -188,-177.60,0.00,1.00,0.00,1.00 -189,-172.80,0.00,1.00,0.00,1.00 -190,-168.00,0.00,1.00,0.00,1.00 -191,-163.20,4.80,1.00,0.00,1.00 -192,-158.40,4.80,1.00,0.00,1.00 -193,-153.60,4.80,1.00,0.00,1.00 -194,-148.80,4.80,1.00,0.00,1.00 -195,-144.00,4.80,1.00,0.00,1.00 -196,-139.20,4.80,1.00,0.00,1.00 -197,-134.40,4.80,1.00,0.00,1.00 -198,-129.60,9.60,1.00,0.00,1.00 -199,-124.80,9.60,1.00,0.00,1.00 -200,-120.00,9.60,1.00,0.00,1.00 -201,-115.20,9.60,1.00,0.00,1.00 -202,-110.40,9.60,1.00,0.00,1.00 -203,-105.60,9.60,1.00,0.00,1.00 -204,-100.80,9.60,1.00,0.00,1.00 -205,-96.00,9.60,1.00,0.00,1.00 -206,-91.20,9.60,1.00,0.00,1.00 -207,-86.40,9.60,1.00,0.00,1.00 -208,-81.60,9.60,1.00,0.00,1.00 -209,-76.80,9.60,1.00,0.00,1.00 -210,-72.00,9.60,1.00,0.00,1.00 -211,-67.20,9.60,1.00,0.00,1.00 -212,-62.40,9.60,1.00,0.00,1.00 -213,-57.60,9.60,1.00,0.00,1.00 -214,-52.80,9.60,1.00,0.00,1.00 -215,-48.00,4.80,1.00,0.00,1.00 -216,-43.20,4.80,1.00,0.00,1.00 -217,-38.40,4.80,1.00,0.00,1.00 -218,-33.60,4.80,1.00,0.00,1.00 -219,-28.80,4.80,1.00,0.00,1.00 -220,-24.00,4.80,1.00,0.00,1.00 -221,-19.20,4.80,1.00,0.00,1.00 -222,-14.40,0.00,1.00,0.00,1.00 -223,-9.60,0.00,1.00,0.00,1.00 -224,-4.80,0.00,1.00,0.00,1.00 -225,0.00,0.00,1.00,0.00,1.00 -226,4.80,-0.00,1.00,0.00,1.00 -227,9.60,-0.00,1.00,0.00,1.00 -228,14.40,-4.80,1.00,0.00,1.00 -229,19.20,-4.80,1.00,0.00,1.00 -230,24.00,-4.80,1.00,0.00,1.00 -231,28.80,-4.80,1.00,0.00,1.00 -232,33.60,-9.60,1.00,0.00,1.00 -233,38.40,-9.60,1.00,0.00,1.00 -234,43.20,-9.60,1.00,0.00,1.00 -235,48.00,-9.60,1.00,0.00,1.00 -236,52.80,-9.60,1.00,0.00,1.00 -237,57.60,-14.40,1.00,0.00,1.00 -238,62.40,-14.40,1.00,0.00,1.00 -239,67.20,-14.40,1.00,0.00,1.00 -240,72.00,-14.40,1.00,0.00,1.00 -241,76.80,-14.40,1.00,0.00,1.00 -242,81.60,-14.40,1.00,0.00,1.00 -243,86.40,-14.40,1.00,0.00,1.00 -244,91.20,-14.40,1.00,0.00,1.00 -245,96.00,-14.40,1.00,0.00,1.00 -246,100.80,-14.40,1.00,0.00,1.00 -247,105.60,-14.40,1.00,0.00,1.00 -248,110.40,-14.40,1.00,0.00,1.00 -249,115.20,-14.40,1.00,0.00,1.00 -250,120.00,-14.40,1.00,0.00,1.00 -251,124.80,-9.60,1.00,0.00,1.00 -252,129.60,-9.60,1.00,0.00,1.00 -253,134.40,-9.60,1.00,0.00,1.00 -254,139.20,-9.60,1.00,0.00,1.00 -255,144.00,-9.60,1.00,0.00,1.00 -256,148.80,-9.60,1.00,0.00,1.00 -257,153.60,-4.80,1.00,0.00,1.00 -258,158.40,-4.80,1.00,0.00,1.00 -259,163.20,-4.80,1.00,0.00,1.00 -260,168.00,-4.80,1.00,0.00,1.00 -261,172.80,-0.00,1.00,0.00,1.00 -262,177.60,-0.00,1.00,0.00,1.00 -263,-177.60,0.00,1.00,0.00,1.00 -264,-172.80,0.00,1.00,0.00,1.00 -265,-168.00,4.80,1.00,0.00,1.00 -266,-163.20,4.80,1.00,0.00,1.00 -267,-158.40,4.80,1.00,0.00,1.00 -268,-153.60,4.80,1.00,0.00,1.00 -269,-148.80,9.60,1.00,0.00,1.00 -270,-144.00,9.60,1.00,0.00,1.00 -271,-139.20,9.60,1.00,0.00,1.00 -272,-134.40,9.60,1.00,0.00,1.00 -273,-129.60,9.60,1.00,0.00,1.00 -274,-124.80,9.60,1.00,0.00,1.00 -275,-120.00,14.40,1.00,0.00,1.00 -276,-115.20,14.40,1.00,0.00,1.00 -277,-110.40,14.40,1.00,0.00,1.00 -278,-105.60,14.40,1.00,0.00,1.00 -279,-100.80,14.40,1.00,0.00,1.00 -280,-96.00,14.40,1.00,0.00,1.00 -281,-91.20,14.40,1.00,0.00,1.00 -282,-86.40,14.40,1.00,0.00,1.00 -283,-81.60,14.40,1.00,0.00,1.00 -284,-76.80,14.40,1.00,0.00,1.00 -285,-72.00,14.40,1.00,0.00,1.00 -286,-67.20,14.40,1.00,0.00,1.00 -287,-62.40,14.40,1.00,0.00,1.00 -288,-57.60,14.40,1.00,0.00,1.00 -289,-52.80,9.60,1.00,0.00,1.00 -290,-48.00,9.60,1.00,0.00,1.00 -291,-43.20,9.60,1.00,0.00,1.00 -292,-38.40,9.60,1.00,0.00,1.00 -293,-33.60,9.60,1.00,0.00,1.00 -294,-28.80,4.80,1.00,0.00,1.00 -295,-24.00,4.80,1.00,0.00,1.00 -296,-19.20,4.80,1.00,0.00,1.00 -297,-14.40,4.80,1.00,0.00,1.00 -298,-9.60,0.00,1.00,0.00,1.00 -299,-4.80,0.00,1.00,0.00,1.00 -300,0.00,0.00,1.00,0.00,1.00 -301,4.80,-0.00,1.00,0.00,1.00 -302,9.60,-4.80,1.00,0.00,1.00 -303,14.40,-4.80,1.00,0.00,1.00 -304,19.20,-4.80,1.00,0.00,1.00 -305,24.00,-9.60,1.00,0.00,1.00 -306,28.80,-9.60,1.00,0.00,1.00 -307,33.60,-9.60,1.00,0.00,1.00 -308,38.40,-9.60,1.00,0.00,1.00 -309,43.20,-14.40,1.00,0.00,1.00 -310,48.00,-14.40,1.00,0.00,1.00 -311,52.80,-14.40,1.00,0.00,1.00 -312,57.60,-14.40,1.00,0.00,1.00 -313,62.40,-19.20,1.00,0.00,1.00 -314,67.20,-19.20,1.00,0.00,1.00 -315,72.00,-19.20,1.00,0.00,1.00 -316,76.80,-19.20,1.00,0.00,1.00 -317,81.60,-19.20,1.00,0.00,1.00 -318,86.40,-19.20,1.00,0.00,1.00 -319,91.20,-19.20,1.00,0.00,1.00 -320,96.00,-19.20,1.00,0.00,1.00 -321,100.80,-19.20,1.00,0.00,1.00 -322,105.60,-19.20,1.00,0.00,1.00 -323,110.40,-19.20,1.00,0.00,1.00 -324,115.20,-19.20,1.00,0.00,1.00 -325,120.00,-14.40,1.00,0.00,1.00 -326,124.80,-14.40,1.00,0.00,1.00 -327,129.60,-14.40,1.00,0.00,1.00 -328,134.40,-14.40,1.00,0.00,1.00 -329,139.20,-14.40,1.00,0.00,1.00 -330,144.00,-9.60,1.00,0.00,1.00 -331,148.80,-9.60,1.00,0.00,1.00 -332,153.60,-9.60,1.00,0.00,1.00 -333,158.40,-4.80,1.00,0.00,1.00 -334,163.20,-4.80,1.00,0.00,1.00 -335,168.00,-4.80,1.00,0.00,1.00 -336,172.80,-0.00,1.00,0.00,1.00 -337,177.60,-0.00,1.00,0.00,1.00 -338,-177.60,0.00,1.00,0.00,1.00 -339,-172.80,0.00,1.00,0.00,1.00 -340,-168.00,4.80,1.00,0.00,1.00 -341,-163.20,4.80,1.00,0.00,1.00 -342,-158.40,4.80,1.00,0.00,1.00 -343,-153.60,9.60,1.00,0.00,1.00 -344,-148.80,9.60,1.00,0.00,1.00 -345,-144.00,9.60,1.00,0.00,1.00 -346,-139.20,14.40,1.00,0.00,1.00 -347,-134.40,14.40,1.00,0.00,1.00 -348,-129.60,14.40,1.00,0.00,1.00 -349,-124.80,14.40,1.00,0.00,1.00 -350,-120.00,14.40,1.00,0.00,1.00 -351,-115.20,19.20,1.00,0.00,1.00 -352,-110.40,19.20,1.00,0.00,1.00 -353,-105.60,19.20,1.00,0.00,1.00 -354,-100.80,19.20,1.00,0.00,1.00 -355,-96.00,19.20,1.00,0.00,1.00 -356,-91.20,19.20,1.00,0.00,1.00 -357,-86.40,19.20,1.00,0.00,1.00 -358,-81.60,19.20,1.00,0.00,1.00 -359,-76.80,19.20,1.00,0.00,1.00 -360,-72.00,19.20,1.00,0.00,1.00 -361,-67.20,19.20,1.00,0.00,1.00 -362,-62.40,19.20,1.00,0.00,1.00 -363,-57.60,14.40,1.00,0.00,1.00 -364,-52.80,14.40,1.00,0.00,1.00 -365,-48.00,14.40,1.00,0.00,1.00 -366,-43.20,14.40,1.00,0.00,1.00 -367,-38.40,9.60,1.00,0.00,1.00 -368,-33.60,9.60,1.00,0.00,1.00 -369,-28.80,9.60,1.00,0.00,1.00 -370,-24.00,9.60,1.00,0.00,1.00 -371,-19.20,4.80,1.00,0.00,1.00 -372,-14.40,4.80,1.00,0.00,1.00 -373,-9.60,4.80,1.00,0.00,1.00 -374,-4.80,0.00,1.00,0.00,1.00 -375,0.00,0.00,1.00,0.00,1.00 -376,4.80,-0.00,1.00,0.00,1.00 -377,9.60,-4.80,1.00,0.00,1.00 -378,14.40,-4.80,1.00,0.00,1.00 -379,19.20,-9.60,1.00,0.00,1.00 -380,24.00,-9.60,1.00,0.00,1.00 -381,28.80,-9.60,1.00,0.00,1.00 -382,33.60,-14.40,1.00,0.00,1.00 -383,33.60,-14.40,1.00,0.00,1.00 -384,38.40,-14.40,1.00,0.00,1.00 -385,43.20,-19.20,1.00,0.00,1.00 -386,48.00,-19.20,1.00,0.00,1.00 -387,57.60,-19.20,1.00,0.00,1.00 -388,62.40,-19.20,1.00,0.00,1.00 -389,67.20,-24.00,1.00,0.00,1.00 -390,72.00,-24.00,1.00,0.00,1.00 -391,76.80,-24.00,1.00,0.00,1.00 -392,81.60,-24.00,1.00,0.00,1.00 -393,86.40,-24.00,1.00,0.00,1.00 -394,91.20,-24.00,1.00,0.00,1.00 -395,96.00,-24.00,1.00,0.00,1.00 -396,100.80,-24.00,1.00,0.00,1.00 -397,105.60,-24.00,1.00,0.00,1.00 -398,110.40,-24.00,1.00,0.00,1.00 -399,115.20,-19.20,1.00,0.00,1.00 -400,120.00,-19.20,1.00,0.00,1.00 -401,129.60,-19.20,1.00,0.00,1.00 -402,134.40,-19.20,1.00,0.00,1.00 -403,139.20,-19.20,1.00,0.00,1.00 -404,144.00,-14.40,1.00,0.00,1.00 -405,148.80,-14.40,1.00,0.00,1.00 -406,148.80,-14.40,1.00,0.00,1.00 -407,153.60,-9.60,1.00,0.00,1.00 -408,158.40,-9.60,1.00,0.00,1.00 -409,163.20,-4.80,1.00,0.00,1.00 -410,168.00,-4.80,1.00,0.00,1.00 -411,172.80,-4.80,1.00,0.00,1.00 -412,177.60,-0.00,1.00,0.00,1.00 -413,-177.60,0.00,1.00,0.00,1.00 -414,-172.80,4.80,1.00,0.00,1.00 -415,-168.00,4.80,1.00,0.00,1.00 -416,-163.20,4.80,1.00,0.00,1.00 -417,-158.40,9.60,1.00,0.00,1.00 -418,-153.60,9.60,1.00,0.00,1.00 -419,-148.80,14.40,1.00,0.00,1.00 -420,-148.80,14.40,1.00,0.00,1.00 -421,-144.00,14.40,1.00,0.00,1.00 -422,-139.20,19.20,1.00,0.00,1.00 -423,-134.40,19.20,1.00,0.00,1.00 -424,-129.60,19.20,1.00,0.00,1.00 -425,-120.00,19.20,1.00,0.00,1.00 -426,-115.20,19.20,1.00,0.00,1.00 -427,-110.40,24.00,1.00,0.00,1.00 -428,-105.60,24.00,1.00,0.00,1.00 -429,-100.80,24.00,1.00,0.00,1.00 -430,-96.00,24.00,1.00,0.00,1.00 -431,-91.20,24.00,1.00,0.00,1.00 -432,-86.40,24.00,1.00,0.00,1.00 -433,-81.60,24.00,1.00,0.00,1.00 -434,-76.80,24.00,1.00,0.00,1.00 -435,-72.00,24.00,1.00,0.00,1.00 -436,-67.20,24.00,1.00,0.00,1.00 -437,-62.40,19.20,1.00,0.00,1.00 -438,-57.60,19.20,1.00,0.00,1.00 -439,-48.00,19.20,1.00,0.00,1.00 -440,-43.20,19.20,1.00,0.00,1.00 -441,-38.40,14.40,1.00,0.00,1.00 -442,-33.60,14.40,1.00,0.00,1.00 -443,-33.60,14.40,1.00,0.00,1.00 -444,-28.80,9.60,1.00,0.00,1.00 -445,-24.00,9.60,1.00,0.00,1.00 -446,-19.20,9.60,1.00,0.00,1.00 -447,-14.40,4.80,1.00,0.00,1.00 -448,-9.60,4.80,1.00,0.00,1.00 -449,-4.80,0.00,1.00,0.00,1.00 -450,0.00,0.00,1.00,0.00,1.00 -451,4.80,-0.00,1.00,0.00,1.00 -452,9.60,-4.80,1.00,0.00,1.00 -453,14.40,-4.80,1.00,0.00,1.00 -454,19.20,-9.60,1.00,0.00,1.00 -455,19.20,-9.60,1.00,0.00,1.00 -456,24.00,-14.40,1.00,0.00,1.00 -457,28.80,-14.40,1.00,0.00,1.00 -458,33.60,-19.20,1.00,0.00,1.00 -459,38.40,-19.20,1.00,0.00,1.00 -460,43.20,-19.20,1.00,0.00,1.00 -461,48.00,-24.00,1.00,0.00,1.00 -462,52.80,-24.00,1.00,0.00,1.00 -463,57.60,-24.00,1.00,0.00,1.00 -464,62.40,-24.00,1.00,0.00,1.00 -465,72.00,-28.80,1.00,0.00,1.00 -466,76.80,-28.80,1.00,0.00,1.00 -467,81.60,-28.80,1.00,0.00,1.00 -468,86.40,-28.80,1.00,0.00,1.00 -469,91.20,-28.80,1.00,0.00,1.00 -470,96.00,-28.80,1.00,0.00,1.00 -471,100.80,-28.80,1.00,0.00,1.00 -472,105.60,-28.80,1.00,0.00,1.00 -473,115.20,-28.80,1.00,0.00,1.00 -474,120.00,-24.00,1.00,0.00,1.00 -475,124.80,-24.00,1.00,0.00,1.00 -476,129.60,-24.00,1.00,0.00,1.00 -477,134.40,-24.00,1.00,0.00,1.00 -478,139.20,-19.20,1.00,0.00,1.00 -479,144.00,-19.20,1.00,0.00,1.00 -480,148.80,-14.40,1.00,0.00,1.00 -481,153.60,-14.40,1.00,0.00,1.00 -482,158.40,-14.40,1.00,0.00,1.00 -483,163.20,-9.60,1.00,0.00,1.00 -484,163.20,-9.60,1.00,0.00,1.00 -485,168.00,-4.80,1.00,0.00,1.00 -486,172.80,-4.80,1.00,0.00,1.00 -487,177.60,-0.00,1.00,0.00,1.00 -488,-177.60,0.00,1.00,0.00,1.00 -489,-172.80,4.80,1.00,0.00,1.00 -490,-168.00,4.80,1.00,0.00,1.00 -491,-163.20,9.60,1.00,0.00,1.00 -492,-163.20,9.60,1.00,0.00,1.00 -493,-158.40,14.40,1.00,0.00,1.00 -494,-153.60,14.40,1.00,0.00,1.00 -495,-148.80,14.40,1.00,0.00,1.00 -496,-144.00,19.20,1.00,0.00,1.00 -497,-139.20,19.20,1.00,0.00,1.00 -498,-134.40,24.00,1.00,0.00,1.00 -499,-129.60,24.00,1.00,0.00,1.00 -500,-124.80,24.00,1.00,0.00,1.00 -501,-120.00,24.00,1.00,0.00,1.00 -502,-115.20,28.80,1.00,0.00,1.00 -503,-105.60,28.80,1.00,0.00,1.00 -504,-100.80,28.80,1.00,0.00,1.00 -505,-96.00,28.80,1.00,0.00,1.00 -506,-91.20,28.80,1.00,0.00,1.00 -507,-86.40,28.80,1.00,0.00,1.00 -508,-81.60,28.80,1.00,0.00,1.00 -509,-76.80,28.80,1.00,0.00,1.00 -510,-72.00,28.80,1.00,0.00,1.00 -511,-62.40,24.00,1.00,0.00,1.00 -512,-57.60,24.00,1.00,0.00,1.00 -513,-52.80,24.00,1.00,0.00,1.00 -514,-48.00,24.00,1.00,0.00,1.00 -515,-43.20,19.20,1.00,0.00,1.00 -516,-38.40,19.20,1.00,0.00,1.00 -517,-33.60,19.20,1.00,0.00,1.00 -518,-28.80,14.40,1.00,0.00,1.00 -519,-24.00,14.40,1.00,0.00,1.00 -520,-19.20,9.60,1.00,0.00,1.00 -521,-19.20,9.60,1.00,0.00,1.00 -522,-14.40,4.80,1.00,0.00,1.00 -523,-9.60,4.80,1.00,0.00,1.00 -524,-4.80,0.00,1.00,0.00,1.00 -525,0.00,0.00,1.00,0.00,1.00 -526,4.80,-4.80,1.00,0.00,1.00 -527,9.60,-4.80,1.00,0.00,1.00 -528,14.40,-9.60,1.00,0.00,1.00 -529,14.40,-9.60,1.00,0.00,1.00 -530,19.20,-14.40,1.00,0.00,1.00 -531,24.00,-14.40,1.00,0.00,1.00 -532,28.80,-19.20,1.00,0.00,1.00 -533,33.60,-19.20,1.00,0.00,1.00 -534,38.40,-24.00,1.00,0.00,1.00 -535,43.20,-24.00,1.00,0.00,1.00 -536,48.00,-24.00,1.00,0.00,1.00 -537,52.80,-28.80,1.00,0.00,1.00 -538,57.60,-28.80,1.00,0.00,1.00 -539,62.40,-28.80,1.00,0.00,1.00 -540,67.20,-33.60,1.00,0.00,1.00 -541,72.00,-33.60,1.00,0.00,1.00 -542,81.60,-33.60,1.00,0.00,1.00 -543,86.40,-33.60,1.00,0.00,1.00 -544,91.20,-33.60,1.00,0.00,1.00 -545,96.00,-33.60,1.00,0.00,1.00 -546,100.80,-33.60,1.00,0.00,1.00 -547,110.40,-33.60,1.00,0.00,1.00 -548,115.20,-33.60,1.00,0.00,1.00 -549,120.00,-28.80,1.00,0.00,1.00 -550,124.80,-28.80,1.00,0.00,1.00 -551,129.60,-28.80,1.00,0.00,1.00 -552,134.40,-24.00,1.00,0.00,1.00 -553,139.20,-24.00,1.00,0.00,1.00 -554,144.00,-19.20,1.00,0.00,1.00 -555,148.80,-19.20,1.00,0.00,1.00 -556,153.60,-14.40,1.00,0.00,1.00 -557,158.40,-14.40,1.00,0.00,1.00 -558,163.20,-9.60,1.00,0.00,1.00 -559,168.00,-9.60,1.00,0.00,1.00 -560,168.00,-4.80,1.00,0.00,1.00 -561,172.80,-4.80,1.00,0.00,1.00 -562,177.60,-0.00,1.00,0.00,1.00 -563,-177.60,0.00,1.00,0.00,1.00 -564,-172.80,4.80,1.00,0.00,1.00 -565,-168.00,4.80,1.00,0.00,1.00 -566,-168.00,9.60,1.00,0.00,1.00 -567,-163.20,9.60,1.00,0.00,1.00 -568,-158.40,14.40,1.00,0.00,1.00 -569,-153.60,14.40,1.00,0.00,1.00 -570,-148.80,19.20,1.00,0.00,1.00 -571,-144.00,19.20,1.00,0.00,1.00 -572,-139.20,24.00,1.00,0.00,1.00 -573,-134.40,24.00,1.00,0.00,1.00 -574,-129.60,28.80,1.00,0.00,1.00 -575,-124.80,28.80,1.00,0.00,1.00 -576,-120.00,28.80,1.00,0.00,1.00 -577,-115.20,33.60,1.00,0.00,1.00 -578,-110.40,33.60,1.00,0.00,1.00 -579,-100.80,33.60,1.00,0.00,1.00 -580,-96.00,33.60,1.00,0.00,1.00 -581,-91.20,33.60,1.00,0.00,1.00 -582,-86.40,33.60,1.00,0.00,1.00 -583,-81.60,33.60,1.00,0.00,1.00 -584,-72.00,33.60,1.00,0.00,1.00 -585,-67.20,33.60,1.00,0.00,1.00 -586,-62.40,28.80,1.00,0.00,1.00 -587,-57.60,28.80,1.00,0.00,1.00 -588,-52.80,28.80,1.00,0.00,1.00 -589,-48.00,24.00,1.00,0.00,1.00 -590,-43.20,24.00,1.00,0.00,1.00 -591,-38.40,24.00,1.00,0.00,1.00 -592,-33.60,19.20,1.00,0.00,1.00 -593,-28.80,19.20,1.00,0.00,1.00 -594,-24.00,14.40,1.00,0.00,1.00 -595,-19.20,14.40,1.00,0.00,1.00 -596,-14.40,9.60,1.00,0.00,1.00 -597,-14.40,9.60,1.00,0.00,1.00 -598,-9.60,4.80,1.00,0.00,1.00 -599,-4.80,4.80,1.00,0.00,1.00 -600,0.00,0.00,1.00,0.00,1.00 -601,4.80,-4.80,1.00,0.00,1.00 -602,9.60,-4.80,1.00,0.00,1.00 -603,9.60,-9.60,1.00,0.00,1.00 -604,14.40,-9.60,1.00,0.00,1.00 -605,19.20,-14.40,1.00,0.00,1.00 -606,24.00,-19.20,1.00,0.00,1.00 -607,28.80,-19.20,1.00,0.00,1.00 -608,33.60,-24.00,1.00,0.00,1.00 -609,38.40,-24.00,1.00,0.00,1.00 -610,43.20,-28.80,1.00,0.00,1.00 -611,48.00,-28.80,1.00,0.00,1.00 -612,52.80,-33.60,1.00,0.00,1.00 -613,57.60,-33.60,1.00,0.00,1.00 -614,62.40,-33.60,1.00,0.00,1.00 -615,67.20,-38.40,1.00,0.00,1.00 -616,72.00,-38.40,1.00,0.00,1.00 -617,81.60,-38.40,1.00,0.00,1.00 -618,86.40,-38.40,1.00,0.00,1.00 -619,91.20,-38.40,1.00,0.00,1.00 -620,96.00,-38.40,1.00,0.00,1.00 -621,105.60,-38.40,1.00,0.00,1.00 -622,110.40,-38.40,1.00,0.00,1.00 -623,115.20,-33.60,1.00,0.00,1.00 -624,120.00,-33.60,1.00,0.00,1.00 -625,124.80,-33.60,1.00,0.00,1.00 -626,129.60,-28.80,1.00,0.00,1.00 -627,134.40,-28.80,1.00,0.00,1.00 -628,139.20,-24.00,1.00,0.00,1.00 -629,144.00,-24.00,1.00,0.00,1.00 -630,148.80,-19.20,1.00,0.00,1.00 -631,153.60,-19.20,1.00,0.00,1.00 -632,158.40,-14.40,1.00,0.00,1.00 -633,163.20,-14.40,1.00,0.00,1.00 -634,168.00,-9.60,1.00,0.00,1.00 -635,172.80,-9.60,1.00,0.00,1.00 -636,172.80,-4.80,1.00,0.00,1.00 -637,177.60,-0.00,1.00,0.00,1.00 -638,-177.60,0.00,1.00,0.00,1.00 -639,-172.80,4.80,1.00,0.00,1.00 -640,-172.80,9.60,1.00,0.00,1.00 -641,-168.00,9.60,1.00,0.00,1.00 -642,-163.20,14.40,1.00,0.00,1.00 -643,-158.40,14.40,1.00,0.00,1.00 -644,-153.60,19.20,1.00,0.00,1.00 -645,-148.80,19.20,1.00,0.00,1.00 -646,-144.00,24.00,1.00,0.00,1.00 -647,-139.20,24.00,1.00,0.00,1.00 -648,-134.40,28.80,1.00,0.00,1.00 -649,-129.60,28.80,1.00,0.00,1.00 -650,-124.80,33.60,1.00,0.00,1.00 -651,-120.00,33.60,1.00,0.00,1.00 -652,-115.20,33.60,1.00,0.00,1.00 -653,-110.40,38.40,1.00,0.00,1.00 -654,-105.60,38.40,1.00,0.00,1.00 -655,-96.00,38.40,1.00,0.00,1.00 -656,-91.20,38.40,1.00,0.00,1.00 -657,-86.40,38.40,1.00,0.00,1.00 -658,-81.60,38.40,1.00,0.00,1.00 -659,-72.00,38.40,1.00,0.00,1.00 -660,-67.20,38.40,1.00,0.00,1.00 -661,-62.40,33.60,1.00,0.00,1.00 -662,-57.60,33.60,1.00,0.00,1.00 -663,-52.80,33.60,1.00,0.00,1.00 -664,-48.00,28.80,1.00,0.00,1.00 -665,-43.20,28.80,1.00,0.00,1.00 -666,-38.40,24.00,1.00,0.00,1.00 -667,-33.60,24.00,1.00,0.00,1.00 -668,-28.80,19.20,1.00,0.00,1.00 -669,-24.00,19.20,1.00,0.00,1.00 -670,-19.20,14.40,1.00,0.00,1.00 -671,-14.40,9.60,1.00,0.00,1.00 -672,-9.60,9.60,1.00,0.00,1.00 -673,-9.60,4.80,1.00,0.00,1.00 -674,-4.80,4.80,1.00,0.00,1.00 -675,0.00,0.00,1.00,0.00,1.00 -676,4.80,-4.80,1.00,0.00,1.00 -677,4.80,-4.80,1.00,0.00,1.00 -678,9.60,-9.60,1.00,0.00,1.00 -679,14.40,-14.40,1.00,0.00,1.00 -680,19.20,-14.40,1.00,0.00,1.00 -681,24.00,-19.20,1.00,0.00,1.00 -682,24.00,-24.00,1.00,0.00,1.00 -683,28.80,-24.00,1.00,0.00,1.00 -684,33.60,-28.80,1.00,0.00,1.00 -685,38.40,-28.80,1.00,0.00,1.00 -686,43.20,-33.60,1.00,0.00,1.00 -687,48.00,-33.60,1.00,0.00,1.00 -688,52.80,-38.40,1.00,0.00,1.00 -689,62.40,-38.40,1.00,0.00,1.00 -690,67.20,-38.40,1.00,0.00,1.00 -691,72.00,-43.20,1.00,0.00,1.00 -692,76.80,-43.20,1.00,0.00,1.00 -693,86.40,-43.20,1.00,0.00,1.00 -694,91.20,-43.20,1.00,0.00,1.00 -695,96.00,-43.20,1.00,0.00,1.00 -696,105.60,-43.20,1.00,0.00,1.00 -697,110.40,-43.20,1.00,0.00,1.00 -698,115.20,-38.40,1.00,0.00,1.00 -699,124.80,-38.40,1.00,0.00,1.00 -700,129.60,-38.40,1.00,0.00,1.00 -701,134.40,-33.60,1.00,0.00,1.00 -702,139.20,-33.60,1.00,0.00,1.00 -703,144.00,-28.80,1.00,0.00,1.00 -704,148.80,-28.80,1.00,0.00,1.00 -705,153.60,-24.00,1.00,0.00,1.00 -706,158.40,-19.20,1.00,0.00,1.00 -707,158.40,-19.20,1.00,0.00,1.00 -708,163.20,-14.40,1.00,0.00,1.00 -709,168.00,-9.60,1.00,0.00,1.00 -710,172.80,-9.60,1.00,0.00,1.00 -711,172.80,-4.80,1.00,0.00,1.00 -712,177.60,-0.00,1.00,0.00,1.00 -713,-177.60,0.00,1.00,0.00,1.00 -714,-172.80,4.80,1.00,0.00,1.00 -715,-172.80,9.60,1.00,0.00,1.00 -716,-168.00,9.60,1.00,0.00,1.00 -717,-163.20,14.40,1.00,0.00,1.00 -718,-158.40,19.20,1.00,0.00,1.00 -719,-158.40,19.20,1.00,0.00,1.00 -720,-153.60,24.00,1.00,0.00,1.00 -721,-148.80,28.80,1.00,0.00,1.00 -722,-144.00,28.80,1.00,0.00,1.00 -723,-139.20,33.60,1.00,0.00,1.00 -724,-134.40,33.60,1.00,0.00,1.00 -725,-129.60,38.40,1.00,0.00,1.00 -726,-124.80,38.40,1.00,0.00,1.00 -727,-115.20,38.40,1.00,0.00,1.00 -728,-110.40,43.20,1.00,0.00,1.00 -729,-105.60,43.20,1.00,0.00,1.00 -730,-96.00,43.20,1.00,0.00,1.00 -731,-91.20,43.20,1.00,0.00,1.00 -732,-86.40,43.20,1.00,0.00,1.00 -733,-76.80,43.20,1.00,0.00,1.00 -734,-72.00,43.20,1.00,0.00,1.00 -735,-67.20,38.40,1.00,0.00,1.00 -736,-62.40,38.40,1.00,0.00,1.00 -737,-52.80,38.40,1.00,0.00,1.00 -738,-48.00,33.60,1.00,0.00,1.00 -739,-43.20,33.60,1.00,0.00,1.00 -740,-38.40,28.80,1.00,0.00,1.00 -741,-33.60,28.80,1.00,0.00,1.00 -742,-28.80,24.00,1.00,0.00,1.00 -743,-24.00,24.00,1.00,0.00,1.00 -744,-24.00,19.20,1.00,0.00,1.00 -745,-19.20,14.40,1.00,0.00,1.00 -746,-14.40,14.40,1.00,0.00,1.00 -747,-9.60,9.60,1.00,0.00,1.00 -748,-4.80,4.80,1.00,0.00,1.00 -749,-4.80,4.80,1.00,0.00,1.00 -750,0.00,0.00,1.00,0.00,1.00 -751,4.80,-4.80,1.00,0.00,1.00 -752,4.80,-4.80,1.00,0.00,1.00 -753,9.60,-9.60,1.00,0.00,1.00 -754,14.40,-14.40,1.00,0.00,1.00 -755,14.40,-19.20,1.00,0.00,1.00 -756,19.20,-19.20,1.00,0.00,1.00 -757,24.00,-24.00,1.00,0.00,1.00 -758,28.80,-28.80,1.00,0.00,1.00 -759,33.60,-28.80,1.00,0.00,1.00 -760,38.40,-33.60,1.00,0.00,1.00 -761,43.20,-38.40,1.00,0.00,1.00 -762,48.00,-38.40,1.00,0.00,1.00 -763,52.80,-43.20,1.00,0.00,1.00 -764,57.60,-43.20,1.00,0.00,1.00 -765,62.40,-43.20,1.00,0.00,1.00 -766,72.00,-48.00,1.00,0.00,1.00 -767,76.80,-48.00,1.00,0.00,1.00 -768,86.40,-48.00,1.00,0.00,1.00 -769,91.20,-48.00,1.00,0.00,1.00 -770,100.80,-48.00,1.00,0.00,1.00 -771,105.60,-48.00,1.00,0.00,1.00 -772,110.40,-48.00,1.00,0.00,1.00 -773,120.00,-43.20,1.00,0.00,1.00 -774,124.80,-43.20,1.00,0.00,1.00 -775,129.60,-38.40,1.00,0.00,1.00 -776,134.40,-38.40,1.00,0.00,1.00 -777,139.20,-33.60,1.00,0.00,1.00 -778,144.00,-33.60,1.00,0.00,1.00 -779,148.80,-28.80,1.00,0.00,1.00 -780,153.60,-24.00,1.00,0.00,1.00 -781,158.40,-24.00,1.00,0.00,1.00 -782,163.20,-19.20,1.00,0.00,1.00 -783,163.20,-14.40,1.00,0.00,1.00 -784,168.00,-14.40,1.00,0.00,1.00 -785,172.80,-9.60,1.00,0.00,1.00 -786,172.80,-4.80,1.00,0.00,1.00 -787,177.60,-0.00,1.00,0.00,1.00 -788,-177.60,0.00,1.00,0.00,1.00 -789,-172.80,4.80,1.00,0.00,1.00 -790,-172.80,9.60,1.00,0.00,1.00 -791,-168.00,14.40,1.00,0.00,1.00 -792,-163.20,14.40,1.00,0.00,1.00 -793,-163.20,19.20,1.00,0.00,1.00 -794,-158.40,24.00,1.00,0.00,1.00 -795,-153.60,24.00,1.00,0.00,1.00 -796,-148.80,28.80,1.00,0.00,1.00 -797,-144.00,33.60,1.00,0.00,1.00 -798,-139.20,33.60,1.00,0.00,1.00 -799,-134.40,38.40,1.00,0.00,1.00 -800,-129.60,38.40,1.00,0.00,1.00 -801,-124.80,43.20,1.00,0.00,1.00 -802,-120.00,43.20,1.00,0.00,1.00 -803,-110.40,48.00,1.00,0.00,1.00 -804,-105.60,48.00,1.00,0.00,1.00 -805,-100.80,48.00,1.00,0.00,1.00 -806,-91.20,48.00,1.00,0.00,1.00 -807,-86.40,48.00,1.00,0.00,1.00 -808,-76.80,48.00,1.00,0.00,1.00 -809,-72.00,48.00,1.00,0.00,1.00 -810,-62.40,43.20,1.00,0.00,1.00 -811,-57.60,43.20,1.00,0.00,1.00 -812,-52.80,43.20,1.00,0.00,1.00 -813,-48.00,38.40,1.00,0.00,1.00 -814,-43.20,38.40,1.00,0.00,1.00 -815,-38.40,33.60,1.00,0.00,1.00 -816,-33.60,28.80,1.00,0.00,1.00 -817,-28.80,28.80,1.00,0.00,1.00 -818,-24.00,24.00,1.00,0.00,1.00 -819,-19.20,19.20,1.00,0.00,1.00 -820,-14.40,19.20,1.00,0.00,1.00 -821,-14.40,14.40,1.00,0.00,1.00 -822,-9.60,9.60,1.00,0.00,1.00 -823,-4.80,4.80,1.00,0.00,1.00 -824,-4.80,4.80,1.00,0.00,1.00 -825,0.00,0.00,1.00,0.00,1.00 -826,4.80,-4.80,1.00,0.00,1.00 -827,4.80,-9.60,1.00,0.00,1.00 -828,9.60,-9.60,1.00,0.00,1.00 -829,9.60,-14.40,1.00,0.00,1.00 -830,14.40,-19.20,1.00,0.00,1.00 -831,19.20,-24.00,1.00,0.00,1.00 -832,24.00,-24.00,1.00,0.00,1.00 -833,24.00,-28.80,1.00,0.00,1.00 -834,28.80,-33.60,1.00,0.00,1.00 -835,33.60,-38.40,1.00,0.00,1.00 -836,38.40,-38.40,1.00,0.00,1.00 -837,43.20,-43.20,1.00,0.00,1.00 -838,48.00,-43.20,1.00,0.00,1.00 -839,52.80,-48.00,1.00,0.00,1.00 -840,62.40,-48.00,1.00,0.00,1.00 -841,67.20,-52.80,1.00,0.00,1.00 -842,76.80,-52.80,1.00,0.00,1.00 -843,86.40,-52.80,1.00,0.00,1.00 -844,91.20,-52.80,1.00,0.00,1.00 -845,100.80,-52.80,1.00,0.00,1.00 -846,105.60,-52.80,1.00,0.00,1.00 -847,115.20,-48.00,1.00,0.00,1.00 -848,120.00,-48.00,1.00,0.00,1.00 -849,129.60,-48.00,1.00,0.00,1.00 -850,134.40,-43.20,1.00,0.00,1.00 -851,139.20,-43.20,1.00,0.00,1.00 -852,144.00,-38.40,1.00,0.00,1.00 -853,148.80,-33.60,1.00,0.00,1.00 -854,153.60,-33.60,1.00,0.00,1.00 -855,158.40,-28.80,1.00,0.00,1.00 -856,158.40,-24.00,1.00,0.00,1.00 -857,163.20,-19.20,1.00,0.00,1.00 -858,168.00,-19.20,1.00,0.00,1.00 -859,168.00,-14.40,1.00,0.00,1.00 -860,172.80,-9.60,1.00,0.00,1.00 -861,177.60,-4.80,1.00,0.00,1.00 -862,177.60,-0.00,1.00,0.00,1.00 -863,-177.60,0.00,1.00,0.00,1.00 -864,-177.60,4.80,1.00,0.00,1.00 -865,-172.80,9.60,1.00,0.00,1.00 -866,-168.00,14.40,1.00,0.00,1.00 -867,-168.00,19.20,1.00,0.00,1.00 -868,-163.20,19.20,1.00,0.00,1.00 -869,-158.40,24.00,1.00,0.00,1.00 -870,-158.40,28.80,1.00,0.00,1.00 -871,-153.60,33.60,1.00,0.00,1.00 -872,-148.80,33.60,1.00,0.00,1.00 -873,-144.00,38.40,1.00,0.00,1.00 -874,-139.20,43.20,1.00,0.00,1.00 -875,-134.40,43.20,1.00,0.00,1.00 -876,-129.60,48.00,1.00,0.00,1.00 -877,-120.00,48.00,1.00,0.00,1.00 -878,-115.20,48.00,1.00,0.00,1.00 -879,-105.60,52.80,1.00,0.00,1.00 -880,-100.80,52.80,1.00,0.00,1.00 -881,-91.20,52.80,1.00,0.00,1.00 -882,-86.40,52.80,1.00,0.00,1.00 -883,-76.80,52.80,1.00,0.00,1.00 -884,-67.20,52.80,1.00,0.00,1.00 -885,-62.40,48.00,1.00,0.00,1.00 -886,-52.80,48.00,1.00,0.00,1.00 -887,-48.00,43.20,1.00,0.00,1.00 -888,-43.20,43.20,1.00,0.00,1.00 -889,-38.40,38.40,1.00,0.00,1.00 -890,-33.60,38.40,1.00,0.00,1.00 -891,-28.80,33.60,1.00,0.00,1.00 -892,-24.00,28.80,1.00,0.00,1.00 -893,-24.00,24.00,1.00,0.00,1.00 -894,-19.20,24.00,1.00,0.00,1.00 -895,-14.40,19.20,1.00,0.00,1.00 -896,-9.60,14.40,1.00,0.00,1.00 -897,-9.60,9.60,1.00,0.00,1.00 -898,-4.80,9.60,1.00,0.00,1.00 -899,-4.80,4.80,1.00,0.00,1.00 -900,0.00,0.00,1.00,0.00,1.00 -901,4.80,-4.80,1.00,0.00,1.00 -902,4.80,-9.60,1.00,0.00,1.00 -903,9.60,-14.40,1.00,0.00,1.00 -904,9.60,-14.40,1.00,0.00,1.00 -905,14.40,-19.20,1.00,0.00,1.00 -906,14.40,-24.00,1.00,0.00,1.00 -907,19.20,-28.80,1.00,0.00,1.00 -908,24.00,-33.60,1.00,0.00,1.00 -909,28.80,-33.60,1.00,0.00,1.00 -910,28.80,-38.40,1.00,0.00,1.00 -911,33.60,-43.20,1.00,0.00,1.00 -912,38.40,-43.20,1.00,0.00,1.00 -913,48.00,-48.00,1.00,0.00,1.00 -914,52.80,-52.80,1.00,0.00,1.00 -915,57.60,-52.80,1.00,0.00,1.00 -916,67.20,-57.60,1.00,0.00,1.00 -917,76.80,-57.60,1.00,0.00,1.00 -918,81.60,-57.60,1.00,0.00,1.00 -919,91.20,-57.60,1.00,0.00,1.00 -920,100.80,-57.60,1.00,0.00,1.00 -921,110.40,-57.60,1.00,0.00,1.00 -922,115.20,-52.80,1.00,0.00,1.00 -923,124.80,-52.80,1.00,0.00,1.00 -924,129.60,-48.00,1.00,0.00,1.00 -925,139.20,-48.00,1.00,0.00,1.00 -926,144.00,-43.20,1.00,0.00,1.00 -927,148.80,-38.40,1.00,0.00,1.00 -928,153.60,-38.40,1.00,0.00,1.00 -929,153.60,-33.60,1.00,0.00,1.00 -930,158.40,-28.80,1.00,0.00,1.00 -931,163.20,-24.00,1.00,0.00,1.00 -932,163.20,-24.00,1.00,0.00,1.00 -933,168.00,-19.20,1.00,0.00,1.00 -934,172.80,-14.40,1.00,0.00,1.00 -935,172.80,-9.60,1.00,0.00,1.00 -936,177.60,-4.80,1.00,0.00,1.00 -937,177.60,-0.00,1.00,0.00,1.00 -938,-177.60,0.00,1.00,0.00,1.00 -939,-177.60,4.80,1.00,0.00,1.00 -940,-172.80,9.60,1.00,0.00,1.00 -941,-172.80,14.40,1.00,0.00,1.00 -942,-168.00,19.20,1.00,0.00,1.00 -943,-163.20,24.00,1.00,0.00,1.00 -944,-163.20,24.00,1.00,0.00,1.00 -945,-158.40,28.80,1.00,0.00,1.00 -946,-153.60,33.60,1.00,0.00,1.00 -947,-153.60,38.40,1.00,0.00,1.00 -948,-148.80,38.40,1.00,0.00,1.00 -949,-144.00,43.20,1.00,0.00,1.00 -950,-139.20,48.00,1.00,0.00,1.00 -951,-129.60,48.00,1.00,0.00,1.00 -952,-124.80,52.80,1.00,0.00,1.00 -953,-115.20,52.80,1.00,0.00,1.00 -954,-110.40,57.60,1.00,0.00,1.00 -955,-100.80,57.60,1.00,0.00,1.00 -956,-91.20,57.60,1.00,0.00,1.00 -957,-81.60,57.60,1.00,0.00,1.00 -958,-76.80,57.60,1.00,0.00,1.00 -959,-67.20,57.60,1.00,0.00,1.00 -960,-57.60,52.80,1.00,0.00,1.00 -961,-52.80,52.80,1.00,0.00,1.00 -962,-48.00,48.00,1.00,0.00,1.00 -963,-38.40,43.20,1.00,0.00,1.00 -964,-33.60,43.20,1.00,0.00,1.00 -965,-28.80,38.40,1.00,0.00,1.00 -966,-28.80,33.60,1.00,0.00,1.00 -967,-24.00,33.60,1.00,0.00,1.00 -968,-19.20,28.80,1.00,0.00,1.00 -969,-14.40,24.00,1.00,0.00,1.00 -970,-14.40,19.20,1.00,0.00,1.00 -971,-9.60,14.40,1.00,0.00,1.00 -972,-9.60,14.40,1.00,0.00,1.00 -973,-4.80,9.60,1.00,0.00,1.00 -974,-4.80,4.80,1.00,0.00,1.00 -975,0.00,0.00,1.00,0.00,1.00 -976,0.00,-4.80,1.00,0.00,1.00 -977,4.80,-9.60,1.00,0.00,1.00 -978,4.80,-14.40,1.00,0.00,1.00 -979,9.60,-19.20,1.00,0.00,1.00 -980,9.60,-19.20,1.00,0.00,1.00 -981,14.40,-24.00,1.00,0.00,1.00 -982,19.20,-28.80,1.00,0.00,1.00 -983,19.20,-33.60,1.00,0.00,1.00 -984,24.00,-38.40,1.00,0.00,1.00 -985,28.80,-43.20,1.00,0.00,1.00 -986,33.60,-43.20,1.00,0.00,1.00 -987,38.40,-48.00,1.00,0.00,1.00 -988,43.20,-52.80,1.00,0.00,1.00 -989,48.00,-52.80,1.00,0.00,1.00 -990,52.80,-57.60,1.00,0.00,1.00 -991,62.40,-57.60,1.00,0.00,1.00 -992,72.00,-62.40,1.00,0.00,1.00 -993,81.60,-62.40,1.00,0.00,1.00 -994,91.20,-62.40,1.00,0.00,1.00 -995,100.80,-62.40,1.00,0.00,1.00 -996,110.40,-62.40,1.00,0.00,1.00 -997,120.00,-57.60,1.00,0.00,1.00 -998,129.60,-57.60,1.00,0.00,1.00 -999,134.40,-52.80,1.00,0.00,1.00 -1000,139.20,-48.00,1.00,0.00,1.00 -1001,144.00,-48.00,1.00,0.00,1.00 -1002,148.80,-43.20,1.00,0.00,1.00 -1003,153.60,-38.40,1.00,0.00,1.00 -1004,158.40,-33.60,1.00,0.00,1.00 -1005,163.20,-33.60,1.00,0.00,1.00 -1006,163.20,-28.80,1.00,0.00,1.00 -1007,168.00,-24.00,1.00,0.00,1.00 -1008,168.00,-19.20,1.00,0.00,1.00 -1009,172.80,-14.40,1.00,0.00,1.00 -1010,172.80,-9.60,1.00,0.00,1.00 -1011,177.60,-4.80,1.00,0.00,1.00 -1012,177.60,-0.00,1.00,0.00,1.00 -1013,-177.60,0.00,1.00,0.00,1.00 -1014,-177.60,4.80,1.00,0.00,1.00 -1015,-172.80,9.60,1.00,0.00,1.00 -1016,-172.80,14.40,1.00,0.00,1.00 -1017,-168.00,19.20,1.00,0.00,1.00 -1018,-168.00,24.00,1.00,0.00,1.00 -1019,-163.20,28.80,1.00,0.00,1.00 -1020,-163.20,33.60,1.00,0.00,1.00 -1021,-158.40,33.60,1.00,0.00,1.00 -1022,-153.60,38.40,1.00,0.00,1.00 -1023,-148.80,43.20,1.00,0.00,1.00 -1024,-144.00,48.00,1.00,0.00,1.00 -1025,-139.20,48.00,1.00,0.00,1.00 -1026,-134.40,52.80,1.00,0.00,1.00 -1027,-129.60,57.60,1.00,0.00,1.00 -1028,-120.00,57.60,1.00,0.00,1.00 -1029,-110.40,62.40,1.00,0.00,1.00 -1030,-100.80,62.40,1.00,0.00,1.00 -1031,-91.20,62.40,1.00,0.00,1.00 -1032,-81.60,62.40,1.00,0.00,1.00 -1033,-72.00,62.40,1.00,0.00,1.00 -1034,-62.40,57.60,1.00,0.00,1.00 -1035,-52.80,57.60,1.00,0.00,1.00 -1036,-48.00,52.80,1.00,0.00,1.00 -1037,-43.20,52.80,1.00,0.00,1.00 -1038,-38.40,48.00,1.00,0.00,1.00 -1039,-33.60,43.20,1.00,0.00,1.00 -1040,-28.80,43.20,1.00,0.00,1.00 -1041,-24.00,38.40,1.00,0.00,1.00 -1042,-19.20,33.60,1.00,0.00,1.00 -1043,-19.20,28.80,1.00,0.00,1.00 -1044,-14.40,24.00,1.00,0.00,1.00 -1045,-9.60,19.20,1.00,0.00,1.00 -1046,-9.60,19.20,1.00,0.00,1.00 -1047,-4.80,14.40,1.00,0.00,1.00 -1048,-4.80,9.60,1.00,0.00,1.00 -1049,-0.00,4.80,1.00,0.00,1.00 -1050,0.00,0.00,1.00,0.00,1.00 -1051,0.00,-4.80,1.00,0.00,1.00 -1052,4.80,-9.60,1.00,0.00,1.00 -1053,4.80,-14.40,1.00,0.00,1.00 -1054,9.60,-19.20,1.00,0.00,1.00 -1055,9.60,-24.00,1.00,0.00,1.00 -1056,14.40,-24.00,1.00,0.00,1.00 -1057,14.40,-28.80,1.00,0.00,1.00 -1058,19.20,-33.60,1.00,0.00,1.00 -1059,19.20,-38.40,1.00,0.00,1.00 -1060,24.00,-43.20,1.00,0.00,1.00 -1061,28.80,-48.00,1.00,0.00,1.00 -1062,33.60,-52.80,1.00,0.00,1.00 -1063,38.40,-52.80,1.00,0.00,1.00 -1064,43.20,-57.60,1.00,0.00,1.00 -1065,48.00,-62.40,1.00,0.00,1.00 -1066,57.60,-62.40,1.00,0.00,1.00 -1067,67.20,-67.20,1.00,0.00,1.00 -1068,81.60,-67.20,1.00,0.00,1.00 -1069,91.20,-67.20,1.00,0.00,1.00 -1070,105.60,-67.20,1.00,0.00,1.00 -1071,115.20,-67.20,1.00,0.00,1.00 -1072,124.80,-62.40,1.00,0.00,1.00 -1073,134.40,-57.60,1.00,0.00,1.00 -1074,139.20,-57.60,1.00,0.00,1.00 -1075,144.00,-52.80,1.00,0.00,1.00 -1076,148.80,-48.00,1.00,0.00,1.00 -1077,153.60,-43.20,1.00,0.00,1.00 -1078,158.40,-43.20,1.00,0.00,1.00 -1079,163.20,-38.40,1.00,0.00,1.00 -1080,163.20,-33.60,1.00,0.00,1.00 -1081,168.00,-28.80,1.00,0.00,1.00 -1082,168.00,-24.00,1.00,0.00,1.00 -1083,172.80,-19.20,1.00,0.00,1.00 -1084,172.80,-14.40,1.00,0.00,1.00 -1085,177.60,-9.60,1.00,0.00,1.00 -1086,177.60,-4.80,1.00,0.00,1.00 -1087,177.60,-0.00,1.00,0.00,1.00 -1088,-177.60,0.00,1.00,0.00,1.00 -1089,-177.60,4.80,1.00,0.00,1.00 -1090,-177.60,9.60,1.00,0.00,1.00 -1091,-172.80,14.40,1.00,0.00,1.00 -1092,-172.80,19.20,1.00,0.00,1.00 -1093,-168.00,24.00,1.00,0.00,1.00 -1094,-168.00,28.80,1.00,0.00,1.00 -1095,-163.20,33.60,1.00,0.00,1.00 -1096,-163.20,38.40,1.00,0.00,1.00 -1097,-158.40,43.20,1.00,0.00,1.00 -1098,-153.60,43.20,1.00,0.00,1.00 -1099,-148.80,48.00,1.00,0.00,1.00 -1100,-144.00,52.80,1.00,0.00,1.00 -1101,-139.20,57.60,1.00,0.00,1.00 -1102,-134.40,57.60,1.00,0.00,1.00 -1103,-124.80,62.40,1.00,0.00,1.00 -1104,-115.20,67.20,1.00,0.00,1.00 -1105,-105.60,67.20,1.00,0.00,1.00 -1106,-91.20,67.20,1.00,0.00,1.00 -1107,-81.60,67.20,1.00,0.00,1.00 -1108,-67.20,67.20,1.00,0.00,1.00 -1109,-57.60,62.40,1.00,0.00,1.00 -1110,-48.00,62.40,1.00,0.00,1.00 -1111,-43.20,57.60,1.00,0.00,1.00 -1112,-38.40,52.80,1.00,0.00,1.00 -1113,-33.60,52.80,1.00,0.00,1.00 -1114,-28.80,48.00,1.00,0.00,1.00 -1115,-24.00,43.20,1.00,0.00,1.00 -1116,-19.20,38.40,1.00,0.00,1.00 -1117,-19.20,33.60,1.00,0.00,1.00 -1118,-14.40,28.80,1.00,0.00,1.00 -1119,-14.40,24.00,1.00,0.00,1.00 -1120,-9.60,24.00,1.00,0.00,1.00 -1121,-9.60,19.20,1.00,0.00,1.00 -1122,-4.80,14.40,1.00,0.00,1.00 -1123,-4.80,9.60,1.00,0.00,1.00 -1124,-0.00,4.80,1.00,0.00,1.00 -1125,0.00,0.00,1.00,0.00,1.00 -1126,0.00,-4.80,1.00,0.00,1.00 -1127,4.80,-9.60,1.00,0.00,1.00 -1128,4.80,-14.40,1.00,0.00,1.00 -1129,4.80,-19.20,1.00,0.00,1.00 -1130,9.60,-24.00,1.00,0.00,1.00 -1131,9.60,-28.80,1.00,0.00,1.00 -1132,9.60,-33.60,1.00,0.00,1.00 -1133,14.40,-38.40,1.00,0.00,1.00 -1134,14.40,-38.40,1.00,0.00,1.00 -1135,19.20,-43.20,1.00,0.00,1.00 -1136,24.00,-48.00,1.00,0.00,1.00 -1137,24.00,-52.80,1.00,0.00,1.00 -1138,28.80,-57.60,1.00,0.00,1.00 -1139,38.40,-62.40,1.00,0.00,1.00 -1140,43.20,-62.40,1.00,0.00,1.00 -1141,52.80,-67.20,1.00,0.00,1.00 -1142,62.40,-72.00,1.00,0.00,1.00 -1143,76.80,-72.00,1.00,0.00,1.00 -1144,96.00,-72.00,1.00,0.00,1.00 -1145,110.40,-72.00,1.00,0.00,1.00 -1146,120.00,-67.20,1.00,0.00,1.00 -1147,134.40,-67.20,1.00,0.00,1.00 -1148,139.20,-62.40,1.00,0.00,1.00 -1149,148.80,-57.60,1.00,0.00,1.00 -1150,153.60,-57.60,1.00,0.00,1.00 -1151,158.40,-52.80,1.00,0.00,1.00 -1152,158.40,-48.00,1.00,0.00,1.00 -1153,163.20,-43.20,1.00,0.00,1.00 -1154,163.20,-38.40,1.00,0.00,1.00 -1155,168.00,-33.60,1.00,0.00,1.00 -1156,168.00,-28.80,1.00,0.00,1.00 -1157,172.80,-24.00,1.00,0.00,1.00 -1158,172.80,-19.20,1.00,0.00,1.00 -1159,172.80,-14.40,1.00,0.00,1.00 -1160,177.60,-9.60,1.00,0.00,1.00 -1161,177.60,-4.80,1.00,0.00,1.00 -1162,177.60,-0.00,1.00,0.00,1.00 -1163,-177.60,0.00,1.00,0.00,1.00 -1164,-177.60,4.80,1.00,0.00,1.00 -1165,-177.60,9.60,1.00,0.00,1.00 -1166,-172.80,14.40,1.00,0.00,1.00 -1167,-172.80,19.20,1.00,0.00,1.00 -1168,-172.80,24.00,1.00,0.00,1.00 -1169,-168.00,28.80,1.00,0.00,1.00 -1170,-168.00,33.60,1.00,0.00,1.00 -1171,-163.20,38.40,1.00,0.00,1.00 -1172,-163.20,43.20,1.00,0.00,1.00 -1173,-158.40,48.00,1.00,0.00,1.00 -1174,-158.40,52.80,1.00,0.00,1.00 -1175,-153.60,57.60,1.00,0.00,1.00 -1176,-148.80,57.60,1.00,0.00,1.00 -1177,-139.20,62.40,1.00,0.00,1.00 -1178,-134.40,67.20,1.00,0.00,1.00 -1179,-120.00,67.20,1.00,0.00,1.00 -1180,-110.40,72.00,1.00,0.00,1.00 -1181,-96.00,72.00,1.00,0.00,1.00 -1182,-76.80,72.00,1.00,0.00,1.00 -1183,-62.40,72.00,1.00,0.00,1.00 -1184,-52.80,67.20,1.00,0.00,1.00 -1185,-43.20,62.40,1.00,0.00,1.00 -1186,-38.40,62.40,1.00,0.00,1.00 -1187,-28.80,57.60,1.00,0.00,1.00 -1188,-24.00,52.80,1.00,0.00,1.00 -1189,-24.00,48.00,1.00,0.00,1.00 -1190,-19.20,43.20,1.00,0.00,1.00 -1191,-14.40,38.40,1.00,0.00,1.00 -1192,-14.40,38.40,1.00,0.00,1.00 -1193,-9.60,33.60,1.00,0.00,1.00 -1194,-9.60,28.80,1.00,0.00,1.00 -1195,-9.60,24.00,1.00,0.00,1.00 -1196,-4.80,19.20,1.00,0.00,1.00 -1197,-4.80,14.40,1.00,0.00,1.00 -1198,-4.80,9.60,1.00,0.00,1.00 -1199,-0.00,4.80,1.00,0.00,1.00 -1200,0.00,0.00,1.00,0.00,1.00 -1201,0.00,-4.80,1.00,0.00,1.00 -1202,0.00,-9.60,1.00,0.00,1.00 -1203,4.80,-14.40,1.00,0.00,1.00 -1204,4.80,-19.20,1.00,0.00,1.00 -1205,4.80,-24.00,1.00,0.00,1.00 -1206,4.80,-28.80,1.00,0.00,1.00 -1207,9.60,-33.60,1.00,0.00,1.00 -1208,9.60,-38.40,1.00,0.00,1.00 -1209,14.40,-43.20,1.00,0.00,1.00 -1210,14.40,-48.00,1.00,0.00,1.00 -1211,14.40,-52.80,1.00,0.00,1.00 -1212,19.20,-57.60,1.00,0.00,1.00 -1213,24.00,-57.60,1.00,0.00,1.00 -1214,28.80,-62.40,1.00,0.00,1.00 -1215,33.60,-67.20,1.00,0.00,1.00 -1216,43.20,-72.00,1.00,0.00,1.00 -1217,57.60,-72.00,1.00,0.00,1.00 -1218,76.80,-76.80,1.00,0.00,1.00 -1219,96.00,-76.80,1.00,0.00,1.00 -1220,115.20,-76.80,1.00,0.00,1.00 -1221,129.60,-72.00,1.00,0.00,1.00 -1222,139.20,-72.00,1.00,0.00,1.00 -1223,148.80,-67.20,1.00,0.00,1.00 -1224,153.60,-62.40,1.00,0.00,1.00 -1225,158.40,-57.60,1.00,0.00,1.00 -1226,163.20,-52.80,1.00,0.00,1.00 -1227,163.20,-48.00,1.00,0.00,1.00 -1228,168.00,-43.20,1.00,0.00,1.00 -1229,168.00,-38.40,1.00,0.00,1.00 -1230,172.80,-33.60,1.00,0.00,1.00 -1231,172.80,-28.80,1.00,0.00,1.00 -1232,172.80,-24.00,1.00,0.00,1.00 -1233,172.80,-19.20,1.00,0.00,1.00 -1234,177.60,-14.40,1.00,0.00,1.00 -1235,177.60,-9.60,1.00,0.00,1.00 -1236,177.60,-4.80,1.00,0.00,1.00 -1237,177.60,-0.00,1.00,0.00,1.00 -1238,-177.60,0.00,1.00,0.00,1.00 -1239,-177.60,4.80,1.00,0.00,1.00 -1240,-177.60,9.60,1.00,0.00,1.00 -1241,-177.60,14.40,1.00,0.00,1.00 -1242,-172.80,19.20,1.00,0.00,1.00 -1243,-172.80,24.00,1.00,0.00,1.00 -1244,-172.80,28.80,1.00,0.00,1.00 -1245,-172.80,33.60,1.00,0.00,1.00 -1246,-168.00,38.40,1.00,0.00,1.00 -1247,-168.00,43.20,1.00,0.00,1.00 -1248,-163.20,48.00,1.00,0.00,1.00 -1249,-163.20,52.80,1.00,0.00,1.00 -1250,-158.40,57.60,1.00,0.00,1.00 -1251,-153.60,62.40,1.00,0.00,1.00 -1252,-148.80,67.20,1.00,0.00,1.00 -1253,-139.20,72.00,1.00,0.00,1.00 -1254,-129.60,72.00,1.00,0.00,1.00 -1255,-115.20,76.80,1.00,0.00,1.00 -1256,-96.00,76.80,1.00,0.00,1.00 -1257,-76.80,76.80,1.00,0.00,1.00 -1258,-57.60,72.00,1.00,0.00,1.00 -1259,-43.20,72.00,1.00,0.00,1.00 -1260,-33.60,67.20,1.00,0.00,1.00 -1261,-28.80,62.40,1.00,0.00,1.00 -1262,-24.00,57.60,1.00,0.00,1.00 -1263,-19.20,57.60,1.00,0.00,1.00 -1264,-14.40,52.80,1.00,0.00,1.00 -1265,-14.40,48.00,1.00,0.00,1.00 -1266,-14.40,43.20,1.00,0.00,1.00 -1267,-9.60,38.40,1.00,0.00,1.00 -1268,-9.60,33.60,1.00,0.00,1.00 -1269,-4.80,28.80,1.00,0.00,1.00 -1270,-4.80,24.00,1.00,0.00,1.00 -1271,-4.80,19.20,1.00,0.00,1.00 -1272,-4.80,14.40,1.00,0.00,1.00 -1273,-0.00,9.60,1.00,0.00,1.00 -1274,-0.00,4.80,1.00,0.00,1.00 -1275,0.00,0.00,1.00,0.00,1.00 -1276,0.00,-4.80,1.00,0.00,1.00 -1277,0.00,-9.60,1.00,0.00,1.00 -1278,0.00,-14.40,1.00,0.00,1.00 -1279,4.80,-19.20,1.00,0.00,1.00 -1280,4.80,-24.00,1.00,0.00,1.00 -1281,4.80,-28.80,1.00,0.00,1.00 -1282,4.80,-33.60,1.00,0.00,1.00 -1283,4.80,-38.40,1.00,0.00,1.00 -1284,9.60,-43.20,1.00,0.00,1.00 -1285,9.60,-48.00,1.00,0.00,1.00 -1286,9.60,-52.80,1.00,0.00,1.00 -1287,14.40,-57.60,1.00,0.00,1.00 -1288,14.40,-62.40,1.00,0.00,1.00 -1289,19.20,-67.20,1.00,0.00,1.00 -1290,24.00,-72.00,1.00,0.00,1.00 -1291,33.60,-72.00,1.00,0.00,1.00 -1292,43.20,-76.80,1.00,0.00,1.00 -1293,67.20,-81.60,1.00,0.00,1.00 -1294,96.00,-81.60,1.00,0.00,1.00 -1295,124.80,-81.60,1.00,0.00,1.00 -1296,144.00,-76.80,1.00,0.00,1.00 -1297,153.60,-72.00,1.00,0.00,1.00 -1298,158.40,-67.20,1.00,0.00,1.00 -1299,163.20,-62.40,1.00,0.00,1.00 -1300,168.00,-57.60,1.00,0.00,1.00 -1301,168.00,-52.80,1.00,0.00,1.00 -1302,168.00,-48.00,1.00,0.00,1.00 -1303,172.80,-43.20,1.00,0.00,1.00 -1304,172.80,-38.40,1.00,0.00,1.00 -1305,172.80,-33.60,1.00,0.00,1.00 -1306,172.80,-28.80,1.00,0.00,1.00 -1307,177.60,-24.00,1.00,0.00,1.00 -1308,177.60,-19.20,1.00,0.00,1.00 -1309,177.60,-14.40,1.00,0.00,1.00 -1310,177.60,-9.60,1.00,0.00,1.00 -1311,177.60,-4.80,1.00,0.00,1.00 -1312,177.60,-0.00,1.00,0.00,1.00 -1313,-177.60,0.00,1.00,0.00,1.00 -1314,-177.60,4.80,1.00,0.00,1.00 -1315,-177.60,9.60,1.00,0.00,1.00 -1316,-177.60,14.40,1.00,0.00,1.00 -1317,-177.60,19.20,1.00,0.00,1.00 -1318,-177.60,24.00,1.00,0.00,1.00 -1319,-172.80,28.80,1.00,0.00,1.00 -1320,-172.80,33.60,1.00,0.00,1.00 -1321,-172.80,38.40,1.00,0.00,1.00 -1322,-172.80,43.20,1.00,0.00,1.00 -1323,-168.00,48.00,1.00,0.00,1.00 -1324,-168.00,52.80,1.00,0.00,1.00 -1325,-168.00,57.60,1.00,0.00,1.00 -1326,-163.20,62.40,1.00,0.00,1.00 -1327,-158.40,67.20,1.00,0.00,1.00 -1328,-153.60,72.00,1.00,0.00,1.00 -1329,-144.00,76.80,1.00,0.00,1.00 -1330,-124.80,81.60,1.00,0.00,1.00 -1331,-96.00,81.60,1.00,0.00,1.00 -1332,-67.20,81.60,1.00,0.00,1.00 -1333,-43.20,76.80,1.00,0.00,1.00 -1334,-33.60,72.00,1.00,0.00,1.00 -1335,-24.00,72.00,1.00,0.00,1.00 -1336,-19.20,67.20,1.00,0.00,1.00 -1337,-14.40,62.40,1.00,0.00,1.00 -1338,-14.40,57.60,1.00,0.00,1.00 -1339,-9.60,52.80,1.00,0.00,1.00 -1340,-9.60,48.00,1.00,0.00,1.00 -1341,-9.60,43.20,1.00,0.00,1.00 -1342,-4.80,38.40,1.00,0.00,1.00 -1343,-4.80,33.60,1.00,0.00,1.00 -1344,-4.80,28.80,1.00,0.00,1.00 -1345,-4.80,24.00,1.00,0.00,1.00 -1346,-4.80,19.20,1.00,0.00,1.00 -1347,-0.00,14.40,1.00,0.00,1.00 -1348,-0.00,9.60,1.00,0.00,1.00 -1349,-0.00,4.80,1.00,0.00,1.00 -1350,0.00,0.00,1.00,0.00,1.00 -1351,0.00,-4.80,1.00,0.00,1.00 -1352,0.00,-9.60,1.00,0.00,1.00 -1353,0.00,-14.40,1.00,0.00,1.00 -1354,0.00,-19.20,1.00,0.00,1.00 -1355,0.00,-24.00,1.00,0.00,1.00 -1356,0.00,-28.80,1.00,0.00,1.00 -1357,0.00,-33.60,1.00,0.00,1.00 -1358,4.80,-38.40,1.00,0.00,1.00 -1359,4.80,-43.20,1.00,0.00,1.00 -1360,4.80,-48.00,1.00,0.00,1.00 -1361,4.80,-52.80,1.00,0.00,1.00 -1362,4.80,-57.60,1.00,0.00,1.00 -1363,4.80,-62.40,1.00,0.00,1.00 -1364,9.60,-67.20,1.00,0.00,1.00 -1365,9.60,-72.00,1.00,0.00,1.00 -1366,14.40,-76.80,1.00,0.00,1.00 -1367,24.00,-81.60,1.00,0.00,1.00 -1368,43.20,-86.40,1.00,0.00,1.00 -1369,110.40,-86.40,1.00,0.00,1.00 -1370,148.80,-81.60,1.00,0.00,1.00 -1371,163.20,-76.80,1.00,0.00,1.00 -1372,168.00,-72.00,1.00,0.00,1.00 -1373,172.80,-67.20,1.00,0.00,1.00 -1374,172.80,-62.40,1.00,0.00,1.00 -1375,172.80,-57.60,1.00,0.00,1.00 -1376,172.80,-52.80,1.00,0.00,1.00 -1377,177.60,-48.00,1.00,0.00,1.00 -1378,177.60,-43.20,1.00,0.00,1.00 -1379,177.60,-38.40,1.00,0.00,1.00 -1380,177.60,-33.60,1.00,0.00,1.00 -1381,177.60,-28.80,1.00,0.00,1.00 -1382,177.60,-24.00,1.00,0.00,1.00 -1383,177.60,-19.20,1.00,0.00,1.00 -1384,177.60,-14.40,1.00,0.00,1.00 -1385,177.60,-9.60,1.00,0.00,1.00 -1386,177.60,-4.80,1.00,0.00,1.00 -1387,177.60,-0.00,1.00,0.00,1.00 -1388,-177.60,0.00,1.00,0.00,1.00 -1389,-177.60,4.80,1.00,0.00,1.00 -1390,-177.60,9.60,1.00,0.00,1.00 -1391,-177.60,14.40,1.00,0.00,1.00 -1392,-177.60,19.20,1.00,0.00,1.00 -1393,-177.60,24.00,1.00,0.00,1.00 -1394,-177.60,28.80,1.00,0.00,1.00 -1395,-177.60,33.60,1.00,0.00,1.00 -1396,-177.60,38.40,1.00,0.00,1.00 -1397,-177.60,43.20,1.00,0.00,1.00 -1398,-177.60,48.00,1.00,0.00,1.00 -1399,-172.80,52.80,1.00,0.00,1.00 -1400,-172.80,57.60,1.00,0.00,1.00 -1401,-172.80,62.40,1.00,0.00,1.00 -1402,-172.80,67.20,1.00,0.00,1.00 -1403,-168.00,72.00,1.00,0.00,1.00 -1404,-163.20,76.80,1.00,0.00,1.00 -1405,-148.80,81.60,1.00,0.00,1.00 -1406,-110.40,86.40,1.00,0.00,1.00 -1407,-43.20,86.40,1.00,0.00,1.00 -1408,-24.00,81.60,1.00,0.00,1.00 -1409,-14.40,76.80,1.00,0.00,1.00 -1410,-9.60,72.00,1.00,0.00,1.00 -1411,-9.60,67.20,1.00,0.00,1.00 -1412,-4.80,62.40,1.00,0.00,1.00 -1413,-4.80,57.60,1.00,0.00,1.00 -1414,-4.80,52.80,1.00,0.00,1.00 -1415,-4.80,48.00,1.00,0.00,1.00 -1416,-4.80,43.20,1.00,0.00,1.00 -1417,-4.80,38.40,1.00,0.00,1.00 -1418,-0.00,33.60,1.00,0.00,1.00 -1419,-0.00,28.80,1.00,0.00,1.00 -1420,-0.00,24.00,1.00,0.00,1.00 -1421,-0.00,19.20,1.00,0.00,1.00 -1422,-0.00,14.40,1.00,0.00,1.00 -1423,-0.00,9.60,1.00,0.00,1.00 -1424,-0.00,4.80,1.00,0.00,1.00 -1425,-0.00,0.00,1.00,0.00,1.00 -1426,-0.00,-4.80,1.00,0.00,1.00 -1427,-0.00,-9.60,1.00,0.00,1.00 -1428,-0.00,-14.40,1.00,0.00,1.00 -1429,-0.00,-19.20,1.00,0.00,1.00 -1430,-0.00,-24.00,1.00,0.00,1.00 -1431,-0.00,-28.80,1.00,0.00,1.00 -1432,-0.00,-33.60,1.00,0.00,1.00 -1433,-0.00,-38.40,1.00,0.00,1.00 -1434,-0.00,-43.20,1.00,0.00,1.00 -1435,-0.00,-48.00,1.00,0.00,1.00 -1436,-0.00,-52.80,1.00,0.00,1.00 -1437,-0.00,-57.60,1.00,0.00,1.00 -1438,-0.00,-62.40,1.00,0.00,1.00 -1439,-4.80,-67.20,1.00,0.00,1.00 -1440,-4.80,-72.00,1.00,0.00,1.00 -1441,-4.80,-76.80,1.00,0.00,1.00 -1442,-9.60,-81.60,1.00,0.00,1.00 -1443,-19.20,-86.40,1.00,0.00,1.00 -1444,-134.40,-86.40,1.00,0.00,1.00 -1445,-168.00,-81.60,1.00,0.00,1.00 -1446,-172.80,-76.80,1.00,0.00,1.00 -1447,-177.60,-72.00,1.00,0.00,1.00 -1448,-177.60,-67.20,1.00,0.00,1.00 -1449,-177.60,-62.40,1.00,0.00,1.00 -1450,-177.60,-57.60,1.00,0.00,1.00 -1451,-177.60,-52.80,1.00,0.00,1.00 -1452,-177.60,-48.00,1.00,0.00,1.00 -1453,-177.60,-43.20,1.00,0.00,1.00 -1454,-177.60,-38.40,1.00,0.00,1.00 -1455,-177.60,-33.60,1.00,0.00,1.00 -1456,-177.60,-28.80,1.00,0.00,1.00 -1457,-177.60,-24.00,1.00,0.00,1.00 -1458,-177.60,-19.20,1.00,0.00,1.00 -1459,-177.60,-14.40,1.00,0.00,1.00 -1460,-177.60,-9.60,1.00,0.00,1.00 -1461,-177.60,-4.80,1.00,0.00,1.00 -1462,-177.60,-0.00,1.00,0.00,1.00 -1463,177.60,0.00,1.00,0.00,1.00 -1464,177.60,4.80,1.00,0.00,1.00 -1465,177.60,9.60,1.00,0.00,1.00 -1466,177.60,14.40,1.00,0.00,1.00 -1467,177.60,19.20,1.00,0.00,1.00 -1468,177.60,24.00,1.00,0.00,1.00 -1469,177.60,28.80,1.00,0.00,1.00 -1470,177.60,33.60,1.00,0.00,1.00 -1471,177.60,38.40,1.00,0.00,1.00 -1472,177.60,43.20,1.00,0.00,1.00 -1473,177.60,48.00,1.00,0.00,1.00 -1474,177.60,52.80,1.00,0.00,1.00 -1475,177.60,57.60,1.00,0.00,1.00 -1476,177.60,62.40,1.00,0.00,1.00 -1477,177.60,67.20,1.00,0.00,1.00 -1478,177.60,72.00,1.00,0.00,1.00 -1479,172.80,76.80,1.00,0.00,1.00 -1480,168.00,81.60,1.00,0.00,1.00 -1481,134.40,86.40,1.00,0.00,1.00 -1482,19.20,86.40,1.00,0.00,1.00 -1483,9.60,81.60,1.00,0.00,1.00 -1484,4.80,76.80,1.00,0.00,1.00 -1485,4.80,72.00,1.00,0.00,1.00 -1486,4.80,67.20,1.00,0.00,1.00 -1487,0.00,62.40,1.00,0.00,1.00 -1488,0.00,57.60,1.00,0.00,1.00 -1489,0.00,52.80,1.00,0.00,1.00 -1490,0.00,48.00,1.00,0.00,1.00 -1491,0.00,43.20,1.00,0.00,1.00 -1492,0.00,38.40,1.00,0.00,1.00 -1493,0.00,33.60,1.00,0.00,1.00 -1494,0.00,28.80,1.00,0.00,1.00 -1495,0.00,24.00,1.00,0.00,1.00 -1496,0.00,19.20,1.00,0.00,1.00 -1497,0.00,14.40,1.00,0.00,1.00 -1498,0.00,9.60,1.00,0.00,1.00 -1499,0.00,4.80,1.00,0.00,1.00 diff --git a/tests/renderer/data/stvISM2.csv b/tests/renderer/data/stvISM2.csv deleted file mode 100644 index 9fd14fdf63..0000000000 --- a/tests/renderer/data/stvISM2.csv +++ /dev/null @@ -1,1500 +0,0 @@ -0,0.00,4.80,1.00,0.00,1.00 -1,0.00,9.60,1.00,0.00,1.00 -2,0.00,14.40,1.00,0.00,1.00 -3,0.00,19.20,1.00,0.00,1.00 -4,0.00,24.00,1.00,0.00,1.00 -5,0.00,28.80,1.00,0.00,1.00 -6,0.00,33.60,1.00,0.00,1.00 -7,0.00,38.40,1.00,0.00,1.00 -8,0.00,43.20,1.00,0.00,1.00 -9,0.00,48.00,1.00,0.00,1.00 -10,0.00,52.80,1.00,0.00,1.00 -11,0.00,57.60,1.00,0.00,1.00 -12,0.00,62.40,1.00,0.00,1.00 -13,4.80,67.20,1.00,0.00,1.00 -14,4.80,72.00,1.00,0.00,1.00 -15,4.80,76.80,1.00,0.00,1.00 -16,9.60,81.60,1.00,0.00,1.00 -17,19.20,86.40,1.00,0.00,1.00 -18,134.40,86.40,1.00,0.00,1.00 -19,168.00,81.60,1.00,0.00,1.00 -20,172.80,76.80,1.00,0.00,1.00 -21,177.60,72.00,1.00,0.00,1.00 -22,177.60,67.20,1.00,0.00,1.00 -23,177.60,62.40,1.00,0.00,1.00 -24,177.60,57.60,1.00,0.00,1.00 -25,177.60,52.80,1.00,0.00,1.00 -26,177.60,48.00,1.00,0.00,1.00 -27,177.60,43.20,1.00,0.00,1.00 -28,177.60,38.40,1.00,0.00,1.00 -29,177.60,33.60,1.00,0.00,1.00 -30,177.60,28.80,1.00,0.00,1.00 -31,177.60,24.00,1.00,0.00,1.00 -32,177.60,19.20,1.00,0.00,1.00 -33,177.60,14.40,1.00,0.00,1.00 -34,177.60,9.60,1.00,0.00,1.00 -35,177.60,4.80,1.00,0.00,1.00 -36,177.60,0.00,1.00,0.00,1.00 -37,-177.60,-0.00,1.00,0.00,1.00 -38,-177.60,-4.80,1.00,0.00,1.00 -39,-177.60,-9.60,1.00,0.00,1.00 -40,-177.60,-14.40,1.00,0.00,1.00 -41,-177.60,-19.20,1.00,0.00,1.00 -42,-177.60,-24.00,1.00,0.00,1.00 -43,-177.60,-28.80,1.00,0.00,1.00 -44,-177.60,-33.60,1.00,0.00,1.00 -45,-177.60,-38.40,1.00,0.00,1.00 -46,-177.60,-43.20,1.00,0.00,1.00 -47,-177.60,-48.00,1.00,0.00,1.00 -48,-177.60,-52.80,1.00,0.00,1.00 -49,-177.60,-57.60,1.00,0.00,1.00 -50,-177.60,-62.40,1.00,0.00,1.00 -51,-177.60,-67.20,1.00,0.00,1.00 -52,-177.60,-72.00,1.00,0.00,1.00 -53,-172.80,-76.80,1.00,0.00,1.00 -54,-168.00,-81.60,1.00,0.00,1.00 -55,-134.40,-86.40,1.00,0.00,1.00 -56,-19.20,-86.40,1.00,0.00,1.00 -57,-9.60,-81.60,1.00,0.00,1.00 -58,-4.80,-76.80,1.00,0.00,1.00 -59,-4.80,-72.00,1.00,0.00,1.00 -60,-4.80,-67.20,1.00,0.00,1.00 -61,-0.00,-62.40,1.00,0.00,1.00 -62,-0.00,-57.60,1.00,0.00,1.00 -63,-0.00,-52.80,1.00,0.00,1.00 -64,-0.00,-48.00,1.00,0.00,1.00 -65,-0.00,-43.20,1.00,0.00,1.00 -66,-0.00,-38.40,1.00,0.00,1.00 -67,-0.00,-33.60,1.00,0.00,1.00 -68,-0.00,-28.80,1.00,0.00,1.00 -69,-0.00,-24.00,1.00,0.00,1.00 -70,-0.00,-19.20,1.00,0.00,1.00 -71,-0.00,-14.40,1.00,0.00,1.00 -72,-0.00,-9.60,1.00,0.00,1.00 -73,-0.00,-4.80,1.00,0.00,1.00 -74,-0.00,0.00,1.00,0.00,1.00 -75,-0.00,4.80,1.00,0.00,1.00 -76,-0.00,9.60,1.00,0.00,1.00 -77,-0.00,14.40,1.00,0.00,1.00 -78,-0.00,19.20,1.00,0.00,1.00 -79,-0.00,24.00,1.00,0.00,1.00 -80,-0.00,28.80,1.00,0.00,1.00 -81,-0.00,33.60,1.00,0.00,1.00 -82,-4.80,38.40,1.00,0.00,1.00 -83,-4.80,43.20,1.00,0.00,1.00 -84,-4.80,48.00,1.00,0.00,1.00 -85,-4.80,52.80,1.00,0.00,1.00 -86,-4.80,57.60,1.00,0.00,1.00 -87,-4.80,62.40,1.00,0.00,1.00 -88,-9.60,67.20,1.00,0.00,1.00 -89,-9.60,72.00,1.00,0.00,1.00 -90,-14.40,76.80,1.00,0.00,1.00 -91,-24.00,81.60,1.00,0.00,1.00 -92,-43.20,86.40,1.00,0.00,1.00 -93,-110.40,86.40,1.00,0.00,1.00 -94,-148.80,81.60,1.00,0.00,1.00 -95,-163.20,76.80,1.00,0.00,1.00 -96,-168.00,72.00,1.00,0.00,1.00 -97,-172.80,67.20,1.00,0.00,1.00 -98,-172.80,62.40,1.00,0.00,1.00 -99,-172.80,57.60,1.00,0.00,1.00 -100,-172.80,52.80,1.00,0.00,1.00 -101,-177.60,48.00,1.00,0.00,1.00 -102,-177.60,43.20,1.00,0.00,1.00 -103,-177.60,38.40,1.00,0.00,1.00 -104,-177.60,33.60,1.00,0.00,1.00 -105,-177.60,28.80,1.00,0.00,1.00 -106,-177.60,24.00,1.00,0.00,1.00 -107,-177.60,19.20,1.00,0.00,1.00 -108,-177.60,14.40,1.00,0.00,1.00 -109,-177.60,9.60,1.00,0.00,1.00 -110,-177.60,4.80,1.00,0.00,1.00 -111,-177.60,0.00,1.00,0.00,1.00 -112,177.60,-0.00,1.00,0.00,1.00 -113,177.60,-4.80,1.00,0.00,1.00 -114,177.60,-9.60,1.00,0.00,1.00 -115,177.60,-14.40,1.00,0.00,1.00 -116,177.60,-19.20,1.00,0.00,1.00 -117,177.60,-24.00,1.00,0.00,1.00 -118,177.60,-28.80,1.00,0.00,1.00 -119,177.60,-33.60,1.00,0.00,1.00 -120,177.60,-38.40,1.00,0.00,1.00 -121,177.60,-43.20,1.00,0.00,1.00 -122,177.60,-48.00,1.00,0.00,1.00 -123,172.80,-52.80,1.00,0.00,1.00 -124,172.80,-57.60,1.00,0.00,1.00 -125,172.80,-62.40,1.00,0.00,1.00 -126,172.80,-67.20,1.00,0.00,1.00 -127,168.00,-72.00,1.00,0.00,1.00 -128,163.20,-76.80,1.00,0.00,1.00 -129,148.80,-81.60,1.00,0.00,1.00 -130,110.40,-86.40,1.00,0.00,1.00 -131,43.20,-86.40,1.00,0.00,1.00 -132,24.00,-81.60,1.00,0.00,1.00 -133,14.40,-76.80,1.00,0.00,1.00 -134,9.60,-72.00,1.00,0.00,1.00 -135,9.60,-67.20,1.00,0.00,1.00 -136,4.80,-62.40,1.00,0.00,1.00 -137,4.80,-57.60,1.00,0.00,1.00 -138,4.80,-52.80,1.00,0.00,1.00 -139,4.80,-48.00,1.00,0.00,1.00 -140,4.80,-43.20,1.00,0.00,1.00 -141,4.80,-38.40,1.00,0.00,1.00 -142,0.00,-33.60,1.00,0.00,1.00 -143,0.00,-28.80,1.00,0.00,1.00 -144,0.00,-24.00,1.00,0.00,1.00 -145,0.00,-19.20,1.00,0.00,1.00 -146,0.00,-14.40,1.00,0.00,1.00 -147,0.00,-9.60,1.00,0.00,1.00 -148,0.00,-4.80,1.00,0.00,1.00 -149,0.00,0.00,1.00,0.00,1.00 -150,-0.00,4.80,1.00,0.00,1.00 -151,-0.00,9.60,1.00,0.00,1.00 -152,-0.00,14.40,1.00,0.00,1.00 -153,-4.80,19.20,1.00,0.00,1.00 -154,-4.80,24.00,1.00,0.00,1.00 -155,-4.80,28.80,1.00,0.00,1.00 -156,-4.80,33.60,1.00,0.00,1.00 -157,-4.80,38.40,1.00,0.00,1.00 -158,-9.60,43.20,1.00,0.00,1.00 -159,-9.60,48.00,1.00,0.00,1.00 -160,-9.60,52.80,1.00,0.00,1.00 -161,-14.40,57.60,1.00,0.00,1.00 -162,-14.40,62.40,1.00,0.00,1.00 -163,-19.20,67.20,1.00,0.00,1.00 -164,-24.00,72.00,1.00,0.00,1.00 -165,-33.60,72.00,1.00,0.00,1.00 -166,-43.20,76.80,1.00,0.00,1.00 -167,-67.20,81.60,1.00,0.00,1.00 -168,-96.00,81.60,1.00,0.00,1.00 -169,-124.80,81.60,1.00,0.00,1.00 -170,-144.00,76.80,1.00,0.00,1.00 -171,-153.60,72.00,1.00,0.00,1.00 -172,-158.40,67.20,1.00,0.00,1.00 -173,-163.20,62.40,1.00,0.00,1.00 -174,-168.00,57.60,1.00,0.00,1.00 -175,-168.00,52.80,1.00,0.00,1.00 -176,-168.00,48.00,1.00,0.00,1.00 -177,-172.80,43.20,1.00,0.00,1.00 -178,-172.80,38.40,1.00,0.00,1.00 -179,-172.80,33.60,1.00,0.00,1.00 -180,-172.80,28.80,1.00,0.00,1.00 -181,-177.60,24.00,1.00,0.00,1.00 -182,-177.60,19.20,1.00,0.00,1.00 -183,-177.60,14.40,1.00,0.00,1.00 -184,-177.60,9.60,1.00,0.00,1.00 -185,-177.60,4.80,1.00,0.00,1.00 -186,-177.60,0.00,1.00,0.00,1.00 -187,177.60,-0.00,1.00,0.00,1.00 -188,177.60,-4.80,1.00,0.00,1.00 -189,177.60,-9.60,1.00,0.00,1.00 -190,177.60,-14.40,1.00,0.00,1.00 -191,177.60,-19.20,1.00,0.00,1.00 -192,177.60,-24.00,1.00,0.00,1.00 -193,172.80,-28.80,1.00,0.00,1.00 -194,172.80,-33.60,1.00,0.00,1.00 -195,172.80,-38.40,1.00,0.00,1.00 -196,172.80,-43.20,1.00,0.00,1.00 -197,168.00,-48.00,1.00,0.00,1.00 -198,168.00,-52.80,1.00,0.00,1.00 -199,168.00,-57.60,1.00,0.00,1.00 -200,163.20,-62.40,1.00,0.00,1.00 -201,158.40,-67.20,1.00,0.00,1.00 -202,153.60,-72.00,1.00,0.00,1.00 -203,144.00,-76.80,1.00,0.00,1.00 -204,124.80,-81.60,1.00,0.00,1.00 -205,96.00,-81.60,1.00,0.00,1.00 -206,67.20,-81.60,1.00,0.00,1.00 -207,43.20,-76.80,1.00,0.00,1.00 -208,33.60,-72.00,1.00,0.00,1.00 -209,24.00,-72.00,1.00,0.00,1.00 -210,19.20,-67.20,1.00,0.00,1.00 -211,14.40,-62.40,1.00,0.00,1.00 -212,14.40,-57.60,1.00,0.00,1.00 -213,9.60,-52.80,1.00,0.00,1.00 -214,9.60,-48.00,1.00,0.00,1.00 -215,9.60,-43.20,1.00,0.00,1.00 -216,4.80,-38.40,1.00,0.00,1.00 -217,4.80,-33.60,1.00,0.00,1.00 -218,4.80,-28.80,1.00,0.00,1.00 -219,4.80,-24.00,1.00,0.00,1.00 -220,4.80,-19.20,1.00,0.00,1.00 -221,0.00,-14.40,1.00,0.00,1.00 -222,0.00,-9.60,1.00,0.00,1.00 -223,0.00,-4.80,1.00,0.00,1.00 -224,0.00,0.00,1.00,0.00,1.00 -225,-0.00,4.80,1.00,0.00,1.00 -226,-0.00,9.60,1.00,0.00,1.00 -227,-4.80,14.40,1.00,0.00,1.00 -228,-4.80,19.20,1.00,0.00,1.00 -229,-4.80,24.00,1.00,0.00,1.00 -230,-4.80,28.80,1.00,0.00,1.00 -231,-9.60,33.60,1.00,0.00,1.00 -232,-9.60,38.40,1.00,0.00,1.00 -233,-14.40,43.20,1.00,0.00,1.00 -234,-14.40,48.00,1.00,0.00,1.00 -235,-14.40,52.80,1.00,0.00,1.00 -236,-19.20,57.60,1.00,0.00,1.00 -237,-24.00,57.60,1.00,0.00,1.00 -238,-28.80,62.40,1.00,0.00,1.00 -239,-33.60,67.20,1.00,0.00,1.00 -240,-43.20,72.00,1.00,0.00,1.00 -241,-57.60,72.00,1.00,0.00,1.00 -242,-76.80,76.80,1.00,0.00,1.00 -243,-96.00,76.80,1.00,0.00,1.00 -244,-115.20,76.80,1.00,0.00,1.00 -245,-129.60,72.00,1.00,0.00,1.00 -246,-139.20,72.00,1.00,0.00,1.00 -247,-148.80,67.20,1.00,0.00,1.00 -248,-153.60,62.40,1.00,0.00,1.00 -249,-158.40,57.60,1.00,0.00,1.00 -250,-163.20,52.80,1.00,0.00,1.00 -251,-163.20,48.00,1.00,0.00,1.00 -252,-168.00,43.20,1.00,0.00,1.00 -253,-168.00,38.40,1.00,0.00,1.00 -254,-172.80,33.60,1.00,0.00,1.00 -255,-172.80,28.80,1.00,0.00,1.00 -256,-172.80,24.00,1.00,0.00,1.00 -257,-172.80,19.20,1.00,0.00,1.00 -258,-177.60,14.40,1.00,0.00,1.00 -259,-177.60,9.60,1.00,0.00,1.00 -260,-177.60,4.80,1.00,0.00,1.00 -261,-177.60,0.00,1.00,0.00,1.00 -262,177.60,-0.00,1.00,0.00,1.00 -263,177.60,-4.80,1.00,0.00,1.00 -264,177.60,-9.60,1.00,0.00,1.00 -265,177.60,-14.40,1.00,0.00,1.00 -266,172.80,-19.20,1.00,0.00,1.00 -267,172.80,-24.00,1.00,0.00,1.00 -268,172.80,-28.80,1.00,0.00,1.00 -269,172.80,-33.60,1.00,0.00,1.00 -270,168.00,-38.40,1.00,0.00,1.00 -271,168.00,-43.20,1.00,0.00,1.00 -272,163.20,-48.00,1.00,0.00,1.00 -273,163.20,-52.80,1.00,0.00,1.00 -274,158.40,-57.60,1.00,0.00,1.00 -275,153.60,-62.40,1.00,0.00,1.00 -276,148.80,-67.20,1.00,0.00,1.00 -277,139.20,-72.00,1.00,0.00,1.00 -278,129.60,-72.00,1.00,0.00,1.00 -279,115.20,-76.80,1.00,0.00,1.00 -280,96.00,-76.80,1.00,0.00,1.00 -281,76.80,-76.80,1.00,0.00,1.00 -282,57.60,-72.00,1.00,0.00,1.00 -283,43.20,-72.00,1.00,0.00,1.00 -284,33.60,-67.20,1.00,0.00,1.00 -285,28.80,-62.40,1.00,0.00,1.00 -286,24.00,-57.60,1.00,0.00,1.00 -287,19.20,-57.60,1.00,0.00,1.00 -288,14.40,-52.80,1.00,0.00,1.00 -289,14.40,-48.00,1.00,0.00,1.00 -290,14.40,-43.20,1.00,0.00,1.00 -291,9.60,-38.40,1.00,0.00,1.00 -292,9.60,-33.60,1.00,0.00,1.00 -293,4.80,-28.80,1.00,0.00,1.00 -294,4.80,-24.00,1.00,0.00,1.00 -295,4.80,-19.20,1.00,0.00,1.00 -296,4.80,-14.40,1.00,0.00,1.00 -297,0.00,-9.60,1.00,0.00,1.00 -298,0.00,-4.80,1.00,0.00,1.00 -299,0.00,0.00,1.00,0.00,1.00 -300,-0.00,4.80,1.00,0.00,1.00 -301,-4.80,9.60,1.00,0.00,1.00 -302,-4.80,14.40,1.00,0.00,1.00 -303,-4.80,19.20,1.00,0.00,1.00 -304,-9.60,24.00,1.00,0.00,1.00 -305,-9.60,28.80,1.00,0.00,1.00 -306,-9.60,33.60,1.00,0.00,1.00 -307,-14.40,38.40,1.00,0.00,1.00 -308,-14.40,38.40,1.00,0.00,1.00 -309,-19.20,43.20,1.00,0.00,1.00 -310,-24.00,48.00,1.00,0.00,1.00 -311,-24.00,52.80,1.00,0.00,1.00 -312,-28.80,57.60,1.00,0.00,1.00 -313,-38.40,62.40,1.00,0.00,1.00 -314,-43.20,62.40,1.00,0.00,1.00 -315,-52.80,67.20,1.00,0.00,1.00 -316,-62.40,72.00,1.00,0.00,1.00 -317,-76.80,72.00,1.00,0.00,1.00 -318,-96.00,72.00,1.00,0.00,1.00 -319,-110.40,72.00,1.00,0.00,1.00 -320,-120.00,67.20,1.00,0.00,1.00 -321,-134.40,67.20,1.00,0.00,1.00 -322,-139.20,62.40,1.00,0.00,1.00 -323,-148.80,57.60,1.00,0.00,1.00 -324,-153.60,57.60,1.00,0.00,1.00 -325,-158.40,52.80,1.00,0.00,1.00 -326,-158.40,48.00,1.00,0.00,1.00 -327,-163.20,43.20,1.00,0.00,1.00 -328,-163.20,38.40,1.00,0.00,1.00 -329,-168.00,33.60,1.00,0.00,1.00 -330,-168.00,28.80,1.00,0.00,1.00 -331,-172.80,24.00,1.00,0.00,1.00 -332,-172.80,19.20,1.00,0.00,1.00 -333,-172.80,14.40,1.00,0.00,1.00 -334,-177.60,9.60,1.00,0.00,1.00 -335,-177.60,4.80,1.00,0.00,1.00 -336,-177.60,0.00,1.00,0.00,1.00 -337,177.60,-0.00,1.00,0.00,1.00 -338,177.60,-4.80,1.00,0.00,1.00 -339,177.60,-9.60,1.00,0.00,1.00 -340,172.80,-14.40,1.00,0.00,1.00 -341,172.80,-19.20,1.00,0.00,1.00 -342,172.80,-24.00,1.00,0.00,1.00 -343,168.00,-28.80,1.00,0.00,1.00 -344,168.00,-33.60,1.00,0.00,1.00 -345,163.20,-38.40,1.00,0.00,1.00 -346,163.20,-43.20,1.00,0.00,1.00 -347,158.40,-48.00,1.00,0.00,1.00 -348,158.40,-52.80,1.00,0.00,1.00 -349,153.60,-57.60,1.00,0.00,1.00 -350,148.80,-57.60,1.00,0.00,1.00 -351,139.20,-62.40,1.00,0.00,1.00 -352,134.40,-67.20,1.00,0.00,1.00 -353,120.00,-67.20,1.00,0.00,1.00 -354,110.40,-72.00,1.00,0.00,1.00 -355,96.00,-72.00,1.00,0.00,1.00 -356,76.80,-72.00,1.00,0.00,1.00 -357,62.40,-72.00,1.00,0.00,1.00 -358,52.80,-67.20,1.00,0.00,1.00 -359,43.20,-62.40,1.00,0.00,1.00 -360,38.40,-62.40,1.00,0.00,1.00 -361,28.80,-57.60,1.00,0.00,1.00 -362,24.00,-52.80,1.00,0.00,1.00 -363,24.00,-48.00,1.00,0.00,1.00 -364,19.20,-43.20,1.00,0.00,1.00 -365,14.40,-38.40,1.00,0.00,1.00 -366,14.40,-38.40,1.00,0.00,1.00 -367,9.60,-33.60,1.00,0.00,1.00 -368,9.60,-28.80,1.00,0.00,1.00 -369,9.60,-24.00,1.00,0.00,1.00 -370,4.80,-19.20,1.00,0.00,1.00 -371,4.80,-14.40,1.00,0.00,1.00 -372,4.80,-9.60,1.00,0.00,1.00 -373,0.00,-4.80,1.00,0.00,1.00 -374,0.00,0.00,1.00,0.00,1.00 -375,-0.00,4.80,1.00,0.00,1.00 -376,-4.80,9.60,1.00,0.00,1.00 -377,-4.80,14.40,1.00,0.00,1.00 -378,-9.60,19.20,1.00,0.00,1.00 -379,-9.60,24.00,1.00,0.00,1.00 -380,-14.40,24.00,1.00,0.00,1.00 -381,-14.40,28.80,1.00,0.00,1.00 -382,-19.20,33.60,1.00,0.00,1.00 -383,-19.20,38.40,1.00,0.00,1.00 -384,-24.00,43.20,1.00,0.00,1.00 -385,-28.80,48.00,1.00,0.00,1.00 -386,-33.60,52.80,1.00,0.00,1.00 -387,-38.40,52.80,1.00,0.00,1.00 -388,-43.20,57.60,1.00,0.00,1.00 -389,-48.00,62.40,1.00,0.00,1.00 -390,-57.60,62.40,1.00,0.00,1.00 -391,-67.20,67.20,1.00,0.00,1.00 -392,-81.60,67.20,1.00,0.00,1.00 -393,-91.20,67.20,1.00,0.00,1.00 -394,-105.60,67.20,1.00,0.00,1.00 -395,-115.20,67.20,1.00,0.00,1.00 -396,-124.80,62.40,1.00,0.00,1.00 -397,-134.40,57.60,1.00,0.00,1.00 -398,-139.20,57.60,1.00,0.00,1.00 -399,-144.00,52.80,1.00,0.00,1.00 -400,-148.80,48.00,1.00,0.00,1.00 -401,-153.60,43.20,1.00,0.00,1.00 -402,-158.40,43.20,1.00,0.00,1.00 -403,-163.20,38.40,1.00,0.00,1.00 -404,-163.20,33.60,1.00,0.00,1.00 -405,-168.00,28.80,1.00,0.00,1.00 -406,-168.00,24.00,1.00,0.00,1.00 -407,-172.80,19.20,1.00,0.00,1.00 -408,-172.80,14.40,1.00,0.00,1.00 -409,-177.60,9.60,1.00,0.00,1.00 -410,-177.60,4.80,1.00,0.00,1.00 -411,-177.60,0.00,1.00,0.00,1.00 -412,177.60,-0.00,1.00,0.00,1.00 -413,177.60,-4.80,1.00,0.00,1.00 -414,177.60,-9.60,1.00,0.00,1.00 -415,172.80,-14.40,1.00,0.00,1.00 -416,172.80,-19.20,1.00,0.00,1.00 -417,168.00,-24.00,1.00,0.00,1.00 -418,168.00,-28.80,1.00,0.00,1.00 -419,163.20,-33.60,1.00,0.00,1.00 -420,163.20,-38.40,1.00,0.00,1.00 -421,158.40,-43.20,1.00,0.00,1.00 -422,153.60,-43.20,1.00,0.00,1.00 -423,148.80,-48.00,1.00,0.00,1.00 -424,144.00,-52.80,1.00,0.00,1.00 -425,139.20,-57.60,1.00,0.00,1.00 -426,134.40,-57.60,1.00,0.00,1.00 -427,124.80,-62.40,1.00,0.00,1.00 -428,115.20,-67.20,1.00,0.00,1.00 -429,105.60,-67.20,1.00,0.00,1.00 -430,91.20,-67.20,1.00,0.00,1.00 -431,81.60,-67.20,1.00,0.00,1.00 -432,67.20,-67.20,1.00,0.00,1.00 -433,57.60,-62.40,1.00,0.00,1.00 -434,48.00,-62.40,1.00,0.00,1.00 -435,43.20,-57.60,1.00,0.00,1.00 -436,38.40,-52.80,1.00,0.00,1.00 -437,33.60,-52.80,1.00,0.00,1.00 -438,28.80,-48.00,1.00,0.00,1.00 -439,24.00,-43.20,1.00,0.00,1.00 -440,19.20,-38.40,1.00,0.00,1.00 -441,19.20,-33.60,1.00,0.00,1.00 -442,14.40,-28.80,1.00,0.00,1.00 -443,14.40,-24.00,1.00,0.00,1.00 -444,9.60,-24.00,1.00,0.00,1.00 -445,9.60,-19.20,1.00,0.00,1.00 -446,4.80,-14.40,1.00,0.00,1.00 -447,4.80,-9.60,1.00,0.00,1.00 -448,0.00,-4.80,1.00,0.00,1.00 -449,0.00,0.00,1.00,0.00,1.00 -450,-0.00,4.80,1.00,0.00,1.00 -451,-4.80,9.60,1.00,0.00,1.00 -452,-4.80,14.40,1.00,0.00,1.00 -453,-9.60,19.20,1.00,0.00,1.00 -454,-9.60,19.20,1.00,0.00,1.00 -455,-14.40,24.00,1.00,0.00,1.00 -456,-19.20,28.80,1.00,0.00,1.00 -457,-19.20,33.60,1.00,0.00,1.00 -458,-24.00,38.40,1.00,0.00,1.00 -459,-28.80,43.20,1.00,0.00,1.00 -460,-33.60,43.20,1.00,0.00,1.00 -461,-38.40,48.00,1.00,0.00,1.00 -462,-43.20,52.80,1.00,0.00,1.00 -463,-48.00,52.80,1.00,0.00,1.00 -464,-52.80,57.60,1.00,0.00,1.00 -465,-62.40,57.60,1.00,0.00,1.00 -466,-72.00,62.40,1.00,0.00,1.00 -467,-81.60,62.40,1.00,0.00,1.00 -468,-91.20,62.40,1.00,0.00,1.00 -469,-100.80,62.40,1.00,0.00,1.00 -470,-110.40,62.40,1.00,0.00,1.00 -471,-120.00,57.60,1.00,0.00,1.00 -472,-129.60,57.60,1.00,0.00,1.00 -473,-134.40,52.80,1.00,0.00,1.00 -474,-139.20,48.00,1.00,0.00,1.00 -475,-144.00,48.00,1.00,0.00,1.00 -476,-148.80,43.20,1.00,0.00,1.00 -477,-153.60,38.40,1.00,0.00,1.00 -478,-158.40,33.60,1.00,0.00,1.00 -479,-163.20,33.60,1.00,0.00,1.00 -480,-163.20,28.80,1.00,0.00,1.00 -481,-168.00,24.00,1.00,0.00,1.00 -482,-168.00,19.20,1.00,0.00,1.00 -483,-172.80,14.40,1.00,0.00,1.00 -484,-172.80,9.60,1.00,0.00,1.00 -485,-177.60,4.80,1.00,0.00,1.00 -486,-177.60,0.00,1.00,0.00,1.00 -487,177.60,-0.00,1.00,0.00,1.00 -488,177.60,-4.80,1.00,0.00,1.00 -489,172.80,-9.60,1.00,0.00,1.00 -490,172.80,-14.40,1.00,0.00,1.00 -491,168.00,-19.20,1.00,0.00,1.00 -492,168.00,-24.00,1.00,0.00,1.00 -493,163.20,-28.80,1.00,0.00,1.00 -494,163.20,-33.60,1.00,0.00,1.00 -495,158.40,-33.60,1.00,0.00,1.00 -496,153.60,-38.40,1.00,0.00,1.00 -497,148.80,-43.20,1.00,0.00,1.00 -498,144.00,-48.00,1.00,0.00,1.00 -499,139.20,-48.00,1.00,0.00,1.00 -500,134.40,-52.80,1.00,0.00,1.00 -501,129.60,-57.60,1.00,0.00,1.00 -502,120.00,-57.60,1.00,0.00,1.00 -503,110.40,-62.40,1.00,0.00,1.00 -504,100.80,-62.40,1.00,0.00,1.00 -505,91.20,-62.40,1.00,0.00,1.00 -506,81.60,-62.40,1.00,0.00,1.00 -507,72.00,-62.40,1.00,0.00,1.00 -508,62.40,-57.60,1.00,0.00,1.00 -509,52.80,-57.60,1.00,0.00,1.00 -510,48.00,-52.80,1.00,0.00,1.00 -511,43.20,-52.80,1.00,0.00,1.00 -512,38.40,-48.00,1.00,0.00,1.00 -513,33.60,-43.20,1.00,0.00,1.00 -514,28.80,-43.20,1.00,0.00,1.00 -515,24.00,-38.40,1.00,0.00,1.00 -516,19.20,-33.60,1.00,0.00,1.00 -517,19.20,-28.80,1.00,0.00,1.00 -518,14.40,-24.00,1.00,0.00,1.00 -519,9.60,-19.20,1.00,0.00,1.00 -520,9.60,-19.20,1.00,0.00,1.00 -521,4.80,-14.40,1.00,0.00,1.00 -522,4.80,-9.60,1.00,0.00,1.00 -523,0.00,-4.80,1.00,0.00,1.00 -524,0.00,0.00,1.00,0.00,1.00 -525,-4.80,4.80,1.00,0.00,1.00 -526,-4.80,9.60,1.00,0.00,1.00 -527,-9.60,14.40,1.00,0.00,1.00 -528,-9.60,14.40,1.00,0.00,1.00 -529,-14.40,19.20,1.00,0.00,1.00 -530,-14.40,24.00,1.00,0.00,1.00 -531,-19.20,28.80,1.00,0.00,1.00 -532,-24.00,33.60,1.00,0.00,1.00 -533,-28.80,33.60,1.00,0.00,1.00 -534,-28.80,38.40,1.00,0.00,1.00 -535,-33.60,43.20,1.00,0.00,1.00 -536,-38.40,43.20,1.00,0.00,1.00 -537,-48.00,48.00,1.00,0.00,1.00 -538,-52.80,52.80,1.00,0.00,1.00 -539,-57.60,52.80,1.00,0.00,1.00 -540,-67.20,57.60,1.00,0.00,1.00 -541,-76.80,57.60,1.00,0.00,1.00 -542,-81.60,57.60,1.00,0.00,1.00 -543,-91.20,57.60,1.00,0.00,1.00 -544,-100.80,57.60,1.00,0.00,1.00 -545,-110.40,57.60,1.00,0.00,1.00 -546,-115.20,52.80,1.00,0.00,1.00 -547,-124.80,52.80,1.00,0.00,1.00 -548,-129.60,48.00,1.00,0.00,1.00 -549,-139.20,48.00,1.00,0.00,1.00 -550,-144.00,43.20,1.00,0.00,1.00 -551,-148.80,38.40,1.00,0.00,1.00 -552,-153.60,38.40,1.00,0.00,1.00 -553,-153.60,33.60,1.00,0.00,1.00 -554,-158.40,28.80,1.00,0.00,1.00 -555,-163.20,24.00,1.00,0.00,1.00 -556,-163.20,24.00,1.00,0.00,1.00 -557,-168.00,19.20,1.00,0.00,1.00 -558,-172.80,14.40,1.00,0.00,1.00 -559,-172.80,9.60,1.00,0.00,1.00 -560,-177.60,4.80,1.00,0.00,1.00 -561,-177.60,0.00,1.00,0.00,1.00 -562,177.60,-0.00,1.00,0.00,1.00 -563,177.60,-4.80,1.00,0.00,1.00 -564,172.80,-9.60,1.00,0.00,1.00 -565,172.80,-14.40,1.00,0.00,1.00 -566,168.00,-19.20,1.00,0.00,1.00 -567,163.20,-24.00,1.00,0.00,1.00 -568,163.20,-24.00,1.00,0.00,1.00 -569,158.40,-28.80,1.00,0.00,1.00 -570,153.60,-33.60,1.00,0.00,1.00 -571,153.60,-38.40,1.00,0.00,1.00 -572,148.80,-38.40,1.00,0.00,1.00 -573,144.00,-43.20,1.00,0.00,1.00 -574,139.20,-48.00,1.00,0.00,1.00 -575,129.60,-48.00,1.00,0.00,1.00 -576,124.80,-52.80,1.00,0.00,1.00 -577,115.20,-52.80,1.00,0.00,1.00 -578,110.40,-57.60,1.00,0.00,1.00 -579,100.80,-57.60,1.00,0.00,1.00 -580,91.20,-57.60,1.00,0.00,1.00 -581,81.60,-57.60,1.00,0.00,1.00 -582,76.80,-57.60,1.00,0.00,1.00 -583,67.20,-57.60,1.00,0.00,1.00 -584,57.60,-52.80,1.00,0.00,1.00 -585,52.80,-52.80,1.00,0.00,1.00 -586,48.00,-48.00,1.00,0.00,1.00 -587,38.40,-43.20,1.00,0.00,1.00 -588,33.60,-43.20,1.00,0.00,1.00 -589,28.80,-38.40,1.00,0.00,1.00 -590,28.80,-33.60,1.00,0.00,1.00 -591,24.00,-33.60,1.00,0.00,1.00 -592,19.20,-28.80,1.00,0.00,1.00 -593,14.40,-24.00,1.00,0.00,1.00 -594,14.40,-19.20,1.00,0.00,1.00 -595,9.60,-14.40,1.00,0.00,1.00 -596,9.60,-14.40,1.00,0.00,1.00 -597,4.80,-9.60,1.00,0.00,1.00 -598,4.80,-4.80,1.00,0.00,1.00 -599,0.00,0.00,1.00,0.00,1.00 -600,-4.80,4.80,1.00,0.00,1.00 -601,-4.80,9.60,1.00,0.00,1.00 -602,-9.60,9.60,1.00,0.00,1.00 -603,-9.60,14.40,1.00,0.00,1.00 -604,-14.40,19.20,1.00,0.00,1.00 -605,-19.20,24.00,1.00,0.00,1.00 -606,-24.00,24.00,1.00,0.00,1.00 -607,-24.00,28.80,1.00,0.00,1.00 -608,-28.80,33.60,1.00,0.00,1.00 -609,-33.60,38.40,1.00,0.00,1.00 -610,-38.40,38.40,1.00,0.00,1.00 -611,-43.20,43.20,1.00,0.00,1.00 -612,-48.00,43.20,1.00,0.00,1.00 -613,-52.80,48.00,1.00,0.00,1.00 -614,-62.40,48.00,1.00,0.00,1.00 -615,-67.20,52.80,1.00,0.00,1.00 -616,-76.80,52.80,1.00,0.00,1.00 -617,-86.40,52.80,1.00,0.00,1.00 -618,-91.20,52.80,1.00,0.00,1.00 -619,-100.80,52.80,1.00,0.00,1.00 -620,-105.60,52.80,1.00,0.00,1.00 -621,-115.20,48.00,1.00,0.00,1.00 -622,-120.00,48.00,1.00,0.00,1.00 -623,-129.60,48.00,1.00,0.00,1.00 -624,-134.40,43.20,1.00,0.00,1.00 -625,-139.20,43.20,1.00,0.00,1.00 -626,-144.00,38.40,1.00,0.00,1.00 -627,-148.80,33.60,1.00,0.00,1.00 -628,-153.60,33.60,1.00,0.00,1.00 -629,-158.40,28.80,1.00,0.00,1.00 -630,-158.40,24.00,1.00,0.00,1.00 -631,-163.20,19.20,1.00,0.00,1.00 -632,-168.00,19.20,1.00,0.00,1.00 -633,-168.00,14.40,1.00,0.00,1.00 -634,-172.80,9.60,1.00,0.00,1.00 -635,-177.60,4.80,1.00,0.00,1.00 -636,-177.60,0.00,1.00,0.00,1.00 -637,177.60,-0.00,1.00,0.00,1.00 -638,177.60,-4.80,1.00,0.00,1.00 -639,172.80,-9.60,1.00,0.00,1.00 -640,168.00,-14.40,1.00,0.00,1.00 -641,168.00,-19.20,1.00,0.00,1.00 -642,163.20,-19.20,1.00,0.00,1.00 -643,158.40,-24.00,1.00,0.00,1.00 -644,158.40,-28.80,1.00,0.00,1.00 -645,153.60,-33.60,1.00,0.00,1.00 -646,148.80,-33.60,1.00,0.00,1.00 -647,144.00,-38.40,1.00,0.00,1.00 -648,139.20,-43.20,1.00,0.00,1.00 -649,134.40,-43.20,1.00,0.00,1.00 -650,129.60,-48.00,1.00,0.00,1.00 -651,120.00,-48.00,1.00,0.00,1.00 -652,115.20,-48.00,1.00,0.00,1.00 -653,105.60,-52.80,1.00,0.00,1.00 -654,100.80,-52.80,1.00,0.00,1.00 -655,91.20,-52.80,1.00,0.00,1.00 -656,86.40,-52.80,1.00,0.00,1.00 -657,76.80,-52.80,1.00,0.00,1.00 -658,67.20,-52.80,1.00,0.00,1.00 -659,62.40,-48.00,1.00,0.00,1.00 -660,52.80,-48.00,1.00,0.00,1.00 -661,48.00,-43.20,1.00,0.00,1.00 -662,43.20,-43.20,1.00,0.00,1.00 -663,38.40,-38.40,1.00,0.00,1.00 -664,33.60,-38.40,1.00,0.00,1.00 -665,28.80,-33.60,1.00,0.00,1.00 -666,24.00,-28.80,1.00,0.00,1.00 -667,24.00,-24.00,1.00,0.00,1.00 -668,19.20,-24.00,1.00,0.00,1.00 -669,14.40,-19.20,1.00,0.00,1.00 -670,9.60,-14.40,1.00,0.00,1.00 -671,9.60,-9.60,1.00,0.00,1.00 -672,4.80,-9.60,1.00,0.00,1.00 -673,4.80,-4.80,1.00,0.00,1.00 -674,0.00,0.00,1.00,0.00,1.00 -675,-4.80,4.80,1.00,0.00,1.00 -676,-4.80,4.80,1.00,0.00,1.00 -677,-9.60,9.60,1.00,0.00,1.00 -678,-14.40,14.40,1.00,0.00,1.00 -679,-14.40,19.20,1.00,0.00,1.00 -680,-19.20,19.20,1.00,0.00,1.00 -681,-24.00,24.00,1.00,0.00,1.00 -682,-28.80,28.80,1.00,0.00,1.00 -683,-33.60,28.80,1.00,0.00,1.00 -684,-38.40,33.60,1.00,0.00,1.00 -685,-43.20,38.40,1.00,0.00,1.00 -686,-48.00,38.40,1.00,0.00,1.00 -687,-52.80,43.20,1.00,0.00,1.00 -688,-57.60,43.20,1.00,0.00,1.00 -689,-62.40,43.20,1.00,0.00,1.00 -690,-72.00,48.00,1.00,0.00,1.00 -691,-76.80,48.00,1.00,0.00,1.00 -692,-86.40,48.00,1.00,0.00,1.00 -693,-91.20,48.00,1.00,0.00,1.00 -694,-100.80,48.00,1.00,0.00,1.00 -695,-105.60,48.00,1.00,0.00,1.00 -696,-110.40,48.00,1.00,0.00,1.00 -697,-120.00,43.20,1.00,0.00,1.00 -698,-124.80,43.20,1.00,0.00,1.00 -699,-129.60,38.40,1.00,0.00,1.00 -700,-134.40,38.40,1.00,0.00,1.00 -701,-139.20,33.60,1.00,0.00,1.00 -702,-144.00,33.60,1.00,0.00,1.00 -703,-148.80,28.80,1.00,0.00,1.00 -704,-153.60,24.00,1.00,0.00,1.00 -705,-158.40,24.00,1.00,0.00,1.00 -706,-163.20,19.20,1.00,0.00,1.00 -707,-163.20,14.40,1.00,0.00,1.00 -708,-168.00,14.40,1.00,0.00,1.00 -709,-172.80,9.60,1.00,0.00,1.00 -710,-172.80,4.80,1.00,0.00,1.00 -711,-177.60,0.00,1.00,0.00,1.00 -712,177.60,-0.00,1.00,0.00,1.00 -713,172.80,-4.80,1.00,0.00,1.00 -714,172.80,-9.60,1.00,0.00,1.00 -715,168.00,-14.40,1.00,0.00,1.00 -716,163.20,-14.40,1.00,0.00,1.00 -717,163.20,-19.20,1.00,0.00,1.00 -718,158.40,-24.00,1.00,0.00,1.00 -719,153.60,-24.00,1.00,0.00,1.00 -720,148.80,-28.80,1.00,0.00,1.00 -721,144.00,-33.60,1.00,0.00,1.00 -722,139.20,-33.60,1.00,0.00,1.00 -723,134.40,-38.40,1.00,0.00,1.00 -724,129.60,-38.40,1.00,0.00,1.00 -725,124.80,-43.20,1.00,0.00,1.00 -726,120.00,-43.20,1.00,0.00,1.00 -727,110.40,-48.00,1.00,0.00,1.00 -728,105.60,-48.00,1.00,0.00,1.00 -729,100.80,-48.00,1.00,0.00,1.00 -730,91.20,-48.00,1.00,0.00,1.00 -731,86.40,-48.00,1.00,0.00,1.00 -732,76.80,-48.00,1.00,0.00,1.00 -733,72.00,-48.00,1.00,0.00,1.00 -734,62.40,-43.20,1.00,0.00,1.00 -735,57.60,-43.20,1.00,0.00,1.00 -736,52.80,-43.20,1.00,0.00,1.00 -737,48.00,-38.40,1.00,0.00,1.00 -738,43.20,-38.40,1.00,0.00,1.00 -739,38.40,-33.60,1.00,0.00,1.00 -740,33.60,-28.80,1.00,0.00,1.00 -741,28.80,-28.80,1.00,0.00,1.00 -742,24.00,-24.00,1.00,0.00,1.00 -743,19.20,-19.20,1.00,0.00,1.00 -744,14.40,-19.20,1.00,0.00,1.00 -745,14.40,-14.40,1.00,0.00,1.00 -746,9.60,-9.60,1.00,0.00,1.00 -747,4.80,-4.80,1.00,0.00,1.00 -748,4.80,-4.80,1.00,0.00,1.00 -749,0.00,0.00,1.00,0.00,1.00 -750,-4.80,4.80,1.00,0.00,1.00 -751,-4.80,4.80,1.00,0.00,1.00 -752,-9.60,9.60,1.00,0.00,1.00 -753,-14.40,14.40,1.00,0.00,1.00 -754,-19.20,14.40,1.00,0.00,1.00 -755,-24.00,19.20,1.00,0.00,1.00 -756,-24.00,24.00,1.00,0.00,1.00 -757,-28.80,24.00,1.00,0.00,1.00 -758,-33.60,28.80,1.00,0.00,1.00 -759,-38.40,28.80,1.00,0.00,1.00 -760,-43.20,33.60,1.00,0.00,1.00 -761,-48.00,33.60,1.00,0.00,1.00 -762,-52.80,38.40,1.00,0.00,1.00 -763,-62.40,38.40,1.00,0.00,1.00 -764,-67.20,38.40,1.00,0.00,1.00 -765,-72.00,43.20,1.00,0.00,1.00 -766,-76.80,43.20,1.00,0.00,1.00 -767,-86.40,43.20,1.00,0.00,1.00 -768,-91.20,43.20,1.00,0.00,1.00 -769,-96.00,43.20,1.00,0.00,1.00 -770,-105.60,43.20,1.00,0.00,1.00 -771,-110.40,43.20,1.00,0.00,1.00 -772,-115.20,38.40,1.00,0.00,1.00 -773,-124.80,38.40,1.00,0.00,1.00 -774,-129.60,38.40,1.00,0.00,1.00 -775,-134.40,33.60,1.00,0.00,1.00 -776,-139.20,33.60,1.00,0.00,1.00 -777,-144.00,28.80,1.00,0.00,1.00 -778,-148.80,28.80,1.00,0.00,1.00 -779,-153.60,24.00,1.00,0.00,1.00 -780,-158.40,19.20,1.00,0.00,1.00 -781,-158.40,19.20,1.00,0.00,1.00 -782,-163.20,14.40,1.00,0.00,1.00 -783,-168.00,9.60,1.00,0.00,1.00 -784,-172.80,9.60,1.00,0.00,1.00 -785,-172.80,4.80,1.00,0.00,1.00 -786,-177.60,0.00,1.00,0.00,1.00 -787,177.60,-0.00,1.00,0.00,1.00 -788,172.80,-4.80,1.00,0.00,1.00 -789,172.80,-9.60,1.00,0.00,1.00 -790,168.00,-9.60,1.00,0.00,1.00 -791,163.20,-14.40,1.00,0.00,1.00 -792,158.40,-19.20,1.00,0.00,1.00 -793,158.40,-19.20,1.00,0.00,1.00 -794,153.60,-24.00,1.00,0.00,1.00 -795,148.80,-28.80,1.00,0.00,1.00 -796,144.00,-28.80,1.00,0.00,1.00 -797,139.20,-33.60,1.00,0.00,1.00 -798,134.40,-33.60,1.00,0.00,1.00 -799,129.60,-38.40,1.00,0.00,1.00 -800,124.80,-38.40,1.00,0.00,1.00 -801,115.20,-38.40,1.00,0.00,1.00 -802,110.40,-43.20,1.00,0.00,1.00 -803,105.60,-43.20,1.00,0.00,1.00 -804,96.00,-43.20,1.00,0.00,1.00 -805,91.20,-43.20,1.00,0.00,1.00 -806,86.40,-43.20,1.00,0.00,1.00 -807,76.80,-43.20,1.00,0.00,1.00 -808,72.00,-43.20,1.00,0.00,1.00 -809,67.20,-38.40,1.00,0.00,1.00 -810,62.40,-38.40,1.00,0.00,1.00 -811,52.80,-38.40,1.00,0.00,1.00 -812,48.00,-33.60,1.00,0.00,1.00 -813,43.20,-33.60,1.00,0.00,1.00 -814,38.40,-28.80,1.00,0.00,1.00 -815,33.60,-28.80,1.00,0.00,1.00 -816,28.80,-24.00,1.00,0.00,1.00 -817,24.00,-24.00,1.00,0.00,1.00 -818,24.00,-19.20,1.00,0.00,1.00 -819,19.20,-14.40,1.00,0.00,1.00 -820,14.40,-14.40,1.00,0.00,1.00 -821,9.60,-9.60,1.00,0.00,1.00 -822,4.80,-4.80,1.00,0.00,1.00 -823,4.80,-4.80,1.00,0.00,1.00 -824,0.00,0.00,1.00,0.00,1.00 -825,-4.80,4.80,1.00,0.00,1.00 -826,-9.60,4.80,1.00,0.00,1.00 -827,-9.60,9.60,1.00,0.00,1.00 -828,-14.40,9.60,1.00,0.00,1.00 -829,-19.20,14.40,1.00,0.00,1.00 -830,-24.00,19.20,1.00,0.00,1.00 -831,-28.80,19.20,1.00,0.00,1.00 -832,-33.60,24.00,1.00,0.00,1.00 -833,-38.40,24.00,1.00,0.00,1.00 -834,-43.20,28.80,1.00,0.00,1.00 -835,-48.00,28.80,1.00,0.00,1.00 -836,-52.80,33.60,1.00,0.00,1.00 -837,-57.60,33.60,1.00,0.00,1.00 -838,-62.40,33.60,1.00,0.00,1.00 -839,-67.20,38.40,1.00,0.00,1.00 -840,-72.00,38.40,1.00,0.00,1.00 -841,-81.60,38.40,1.00,0.00,1.00 -842,-86.40,38.40,1.00,0.00,1.00 -843,-91.20,38.40,1.00,0.00,1.00 -844,-96.00,38.40,1.00,0.00,1.00 -845,-105.60,38.40,1.00,0.00,1.00 -846,-110.40,38.40,1.00,0.00,1.00 -847,-115.20,33.60,1.00,0.00,1.00 -848,-120.00,33.60,1.00,0.00,1.00 -849,-124.80,33.60,1.00,0.00,1.00 -850,-129.60,28.80,1.00,0.00,1.00 -851,-134.40,28.80,1.00,0.00,1.00 -852,-139.20,24.00,1.00,0.00,1.00 -853,-144.00,24.00,1.00,0.00,1.00 -854,-148.80,19.20,1.00,0.00,1.00 -855,-153.60,19.20,1.00,0.00,1.00 -856,-158.40,14.40,1.00,0.00,1.00 -857,-163.20,14.40,1.00,0.00,1.00 -858,-168.00,9.60,1.00,0.00,1.00 -859,-172.80,9.60,1.00,0.00,1.00 -860,-172.80,4.80,1.00,0.00,1.00 -861,-177.60,0.00,1.00,0.00,1.00 -862,177.60,-0.00,1.00,0.00,1.00 -863,172.80,-4.80,1.00,0.00,1.00 -864,172.80,-9.60,1.00,0.00,1.00 -865,168.00,-9.60,1.00,0.00,1.00 -866,163.20,-14.40,1.00,0.00,1.00 -867,158.40,-14.40,1.00,0.00,1.00 -868,153.60,-19.20,1.00,0.00,1.00 -869,148.80,-19.20,1.00,0.00,1.00 -870,144.00,-24.00,1.00,0.00,1.00 -871,139.20,-24.00,1.00,0.00,1.00 -872,134.40,-28.80,1.00,0.00,1.00 -873,129.60,-28.80,1.00,0.00,1.00 -874,124.80,-33.60,1.00,0.00,1.00 -875,120.00,-33.60,1.00,0.00,1.00 -876,115.20,-33.60,1.00,0.00,1.00 -877,110.40,-38.40,1.00,0.00,1.00 -878,105.60,-38.40,1.00,0.00,1.00 -879,96.00,-38.40,1.00,0.00,1.00 -880,91.20,-38.40,1.00,0.00,1.00 -881,86.40,-38.40,1.00,0.00,1.00 -882,81.60,-38.40,1.00,0.00,1.00 -883,72.00,-38.40,1.00,0.00,1.00 -884,67.20,-38.40,1.00,0.00,1.00 -885,62.40,-33.60,1.00,0.00,1.00 -886,57.60,-33.60,1.00,0.00,1.00 -887,52.80,-33.60,1.00,0.00,1.00 -888,48.00,-28.80,1.00,0.00,1.00 -889,43.20,-28.80,1.00,0.00,1.00 -890,38.40,-24.00,1.00,0.00,1.00 -891,33.60,-24.00,1.00,0.00,1.00 -892,28.80,-19.20,1.00,0.00,1.00 -893,24.00,-19.20,1.00,0.00,1.00 -894,19.20,-14.40,1.00,0.00,1.00 -895,14.40,-9.60,1.00,0.00,1.00 -896,9.60,-9.60,1.00,0.00,1.00 -897,9.60,-4.80,1.00,0.00,1.00 -898,4.80,-4.80,1.00,0.00,1.00 -899,0.00,0.00,1.00,0.00,1.00 -900,-4.80,4.80,1.00,0.00,1.00 -901,-9.60,4.80,1.00,0.00,1.00 -902,-14.40,9.60,1.00,0.00,1.00 -903,-14.40,9.60,1.00,0.00,1.00 -904,-19.20,14.40,1.00,0.00,1.00 -905,-24.00,14.40,1.00,0.00,1.00 -906,-28.80,19.20,1.00,0.00,1.00 -907,-33.60,19.20,1.00,0.00,1.00 -908,-38.40,24.00,1.00,0.00,1.00 -909,-43.20,24.00,1.00,0.00,1.00 -910,-48.00,24.00,1.00,0.00,1.00 -911,-52.80,28.80,1.00,0.00,1.00 -912,-57.60,28.80,1.00,0.00,1.00 -913,-62.40,28.80,1.00,0.00,1.00 -914,-67.20,33.60,1.00,0.00,1.00 -915,-72.00,33.60,1.00,0.00,1.00 -916,-81.60,33.60,1.00,0.00,1.00 -917,-86.40,33.60,1.00,0.00,1.00 -918,-91.20,33.60,1.00,0.00,1.00 -919,-96.00,33.60,1.00,0.00,1.00 -920,-100.80,33.60,1.00,0.00,1.00 -921,-110.40,33.60,1.00,0.00,1.00 -922,-115.20,33.60,1.00,0.00,1.00 -923,-120.00,28.80,1.00,0.00,1.00 -924,-124.80,28.80,1.00,0.00,1.00 -925,-129.60,28.80,1.00,0.00,1.00 -926,-134.40,24.00,1.00,0.00,1.00 -927,-139.20,24.00,1.00,0.00,1.00 -928,-144.00,19.20,1.00,0.00,1.00 -929,-148.80,19.20,1.00,0.00,1.00 -930,-153.60,14.40,1.00,0.00,1.00 -931,-158.40,14.40,1.00,0.00,1.00 -932,-163.20,9.60,1.00,0.00,1.00 -933,-168.00,9.60,1.00,0.00,1.00 -934,-168.00,4.80,1.00,0.00,1.00 -935,-172.80,4.80,1.00,0.00,1.00 -936,-177.60,0.00,1.00,0.00,1.00 -937,177.60,-0.00,1.00,0.00,1.00 -938,172.80,-4.80,1.00,0.00,1.00 -939,168.00,-4.80,1.00,0.00,1.00 -940,168.00,-9.60,1.00,0.00,1.00 -941,163.20,-9.60,1.00,0.00,1.00 -942,158.40,-14.40,1.00,0.00,1.00 -943,153.60,-14.40,1.00,0.00,1.00 -944,148.80,-19.20,1.00,0.00,1.00 -945,144.00,-19.20,1.00,0.00,1.00 -946,139.20,-24.00,1.00,0.00,1.00 -947,134.40,-24.00,1.00,0.00,1.00 -948,129.60,-28.80,1.00,0.00,1.00 -949,124.80,-28.80,1.00,0.00,1.00 -950,120.00,-28.80,1.00,0.00,1.00 -951,115.20,-33.60,1.00,0.00,1.00 -952,110.40,-33.60,1.00,0.00,1.00 -953,100.80,-33.60,1.00,0.00,1.00 -954,96.00,-33.60,1.00,0.00,1.00 -955,91.20,-33.60,1.00,0.00,1.00 -956,86.40,-33.60,1.00,0.00,1.00 -957,81.60,-33.60,1.00,0.00,1.00 -958,72.00,-33.60,1.00,0.00,1.00 -959,67.20,-33.60,1.00,0.00,1.00 -960,62.40,-28.80,1.00,0.00,1.00 -961,57.60,-28.80,1.00,0.00,1.00 -962,52.80,-28.80,1.00,0.00,1.00 -963,48.00,-24.00,1.00,0.00,1.00 -964,43.20,-24.00,1.00,0.00,1.00 -965,38.40,-24.00,1.00,0.00,1.00 -966,33.60,-19.20,1.00,0.00,1.00 -967,28.80,-19.20,1.00,0.00,1.00 -968,24.00,-14.40,1.00,0.00,1.00 -969,19.20,-14.40,1.00,0.00,1.00 -970,14.40,-9.60,1.00,0.00,1.00 -971,14.40,-9.60,1.00,0.00,1.00 -972,9.60,-4.80,1.00,0.00,1.00 -973,4.80,-4.80,1.00,0.00,1.00 -974,0.00,0.00,1.00,0.00,1.00 -975,-4.80,0.00,1.00,0.00,1.00 -976,-9.60,4.80,1.00,0.00,1.00 -977,-14.40,4.80,1.00,0.00,1.00 -978,-19.20,9.60,1.00,0.00,1.00 -979,-19.20,9.60,1.00,0.00,1.00 -980,-24.00,14.40,1.00,0.00,1.00 -981,-28.80,14.40,1.00,0.00,1.00 -982,-33.60,19.20,1.00,0.00,1.00 -983,-38.40,19.20,1.00,0.00,1.00 -984,-43.20,19.20,1.00,0.00,1.00 -985,-48.00,24.00,1.00,0.00,1.00 -986,-52.80,24.00,1.00,0.00,1.00 -987,-57.60,24.00,1.00,0.00,1.00 -988,-62.40,24.00,1.00,0.00,1.00 -989,-72.00,28.80,1.00,0.00,1.00 -990,-76.80,28.80,1.00,0.00,1.00 -991,-81.60,28.80,1.00,0.00,1.00 -992,-86.40,28.80,1.00,0.00,1.00 -993,-91.20,28.80,1.00,0.00,1.00 -994,-96.00,28.80,1.00,0.00,1.00 -995,-100.80,28.80,1.00,0.00,1.00 -996,-105.60,28.80,1.00,0.00,1.00 -997,-115.20,28.80,1.00,0.00,1.00 -998,-120.00,24.00,1.00,0.00,1.00 -999,-124.80,24.00,1.00,0.00,1.00 -1000,-129.60,24.00,1.00,0.00,1.00 -1001,-134.40,24.00,1.00,0.00,1.00 -1002,-139.20,19.20,1.00,0.00,1.00 -1003,-144.00,19.20,1.00,0.00,1.00 -1004,-148.80,14.40,1.00,0.00,1.00 -1005,-153.60,14.40,1.00,0.00,1.00 -1006,-158.40,14.40,1.00,0.00,1.00 -1007,-163.20,9.60,1.00,0.00,1.00 -1008,-163.20,9.60,1.00,0.00,1.00 -1009,-168.00,4.80,1.00,0.00,1.00 -1010,-172.80,4.80,1.00,0.00,1.00 -1011,-177.60,0.00,1.00,0.00,1.00 -1012,177.60,-0.00,1.00,0.00,1.00 -1013,172.80,-4.80,1.00,0.00,1.00 -1014,168.00,-4.80,1.00,0.00,1.00 -1015,163.20,-9.60,1.00,0.00,1.00 -1016,163.20,-9.60,1.00,0.00,1.00 -1017,158.40,-14.40,1.00,0.00,1.00 -1018,153.60,-14.40,1.00,0.00,1.00 -1019,148.80,-14.40,1.00,0.00,1.00 -1020,144.00,-19.20,1.00,0.00,1.00 -1021,139.20,-19.20,1.00,0.00,1.00 -1022,134.40,-24.00,1.00,0.00,1.00 -1023,129.60,-24.00,1.00,0.00,1.00 -1024,124.80,-24.00,1.00,0.00,1.00 -1025,120.00,-24.00,1.00,0.00,1.00 -1026,115.20,-28.80,1.00,0.00,1.00 -1027,105.60,-28.80,1.00,0.00,1.00 -1028,100.80,-28.80,1.00,0.00,1.00 -1029,96.00,-28.80,1.00,0.00,1.00 -1030,91.20,-28.80,1.00,0.00,1.00 -1031,86.40,-28.80,1.00,0.00,1.00 -1032,81.60,-28.80,1.00,0.00,1.00 -1033,76.80,-28.80,1.00,0.00,1.00 -1034,72.00,-28.80,1.00,0.00,1.00 -1035,62.40,-24.00,1.00,0.00,1.00 -1036,57.60,-24.00,1.00,0.00,1.00 -1037,52.80,-24.00,1.00,0.00,1.00 -1038,48.00,-24.00,1.00,0.00,1.00 -1039,43.20,-19.20,1.00,0.00,1.00 -1040,38.40,-19.20,1.00,0.00,1.00 -1041,33.60,-19.20,1.00,0.00,1.00 -1042,28.80,-14.40,1.00,0.00,1.00 -1043,24.00,-14.40,1.00,0.00,1.00 -1044,19.20,-9.60,1.00,0.00,1.00 -1045,19.20,-9.60,1.00,0.00,1.00 -1046,14.40,-4.80,1.00,0.00,1.00 -1047,9.60,-4.80,1.00,0.00,1.00 -1048,4.80,-0.00,1.00,0.00,1.00 -1049,0.00,0.00,1.00,0.00,1.00 -1050,-4.80,0.00,1.00,0.00,1.00 -1051,-9.60,4.80,1.00,0.00,1.00 -1052,-14.40,4.80,1.00,0.00,1.00 -1053,-19.20,9.60,1.00,0.00,1.00 -1054,-24.00,9.60,1.00,0.00,1.00 -1055,-28.80,9.60,1.00,0.00,1.00 -1056,-33.60,14.40,1.00,0.00,1.00 -1057,-33.60,14.40,1.00,0.00,1.00 -1058,-38.40,14.40,1.00,0.00,1.00 -1059,-43.20,19.20,1.00,0.00,1.00 -1060,-48.00,19.20,1.00,0.00,1.00 -1061,-57.60,19.20,1.00,0.00,1.00 -1062,-62.40,19.20,1.00,0.00,1.00 -1063,-67.20,24.00,1.00,0.00,1.00 -1064,-72.00,24.00,1.00,0.00,1.00 -1065,-76.80,24.00,1.00,0.00,1.00 -1066,-81.60,24.00,1.00,0.00,1.00 -1067,-86.40,24.00,1.00,0.00,1.00 -1068,-91.20,24.00,1.00,0.00,1.00 -1069,-96.00,24.00,1.00,0.00,1.00 -1070,-100.80,24.00,1.00,0.00,1.00 -1071,-105.60,24.00,1.00,0.00,1.00 -1072,-110.40,24.00,1.00,0.00,1.00 -1073,-115.20,19.20,1.00,0.00,1.00 -1074,-120.00,19.20,1.00,0.00,1.00 -1075,-129.60,19.20,1.00,0.00,1.00 -1076,-134.40,19.20,1.00,0.00,1.00 -1077,-139.20,19.20,1.00,0.00,1.00 -1078,-144.00,14.40,1.00,0.00,1.00 -1079,-148.80,14.40,1.00,0.00,1.00 -1080,-148.80,14.40,1.00,0.00,1.00 -1081,-153.60,9.60,1.00,0.00,1.00 -1082,-158.40,9.60,1.00,0.00,1.00 -1083,-163.20,4.80,1.00,0.00,1.00 -1084,-168.00,4.80,1.00,0.00,1.00 -1085,-172.80,4.80,1.00,0.00,1.00 -1086,-177.60,0.00,1.00,0.00,1.00 -1087,177.60,-0.00,1.00,0.00,1.00 -1088,172.80,-4.80,1.00,0.00,1.00 -1089,168.00,-4.80,1.00,0.00,1.00 -1090,163.20,-4.80,1.00,0.00,1.00 -1091,158.40,-9.60,1.00,0.00,1.00 -1092,153.60,-9.60,1.00,0.00,1.00 -1093,148.80,-14.40,1.00,0.00,1.00 -1094,148.80,-14.40,1.00,0.00,1.00 -1095,144.00,-14.40,1.00,0.00,1.00 -1096,139.20,-19.20,1.00,0.00,1.00 -1097,134.40,-19.20,1.00,0.00,1.00 -1098,129.60,-19.20,1.00,0.00,1.00 -1099,120.00,-19.20,1.00,0.00,1.00 -1100,115.20,-19.20,1.00,0.00,1.00 -1101,110.40,-24.00,1.00,0.00,1.00 -1102,105.60,-24.00,1.00,0.00,1.00 -1103,100.80,-24.00,1.00,0.00,1.00 -1104,96.00,-24.00,1.00,0.00,1.00 -1105,91.20,-24.00,1.00,0.00,1.00 -1106,86.40,-24.00,1.00,0.00,1.00 -1107,81.60,-24.00,1.00,0.00,1.00 -1108,76.80,-24.00,1.00,0.00,1.00 -1109,72.00,-24.00,1.00,0.00,1.00 -1110,67.20,-24.00,1.00,0.00,1.00 -1111,62.40,-19.20,1.00,0.00,1.00 -1112,57.60,-19.20,1.00,0.00,1.00 -1113,48.00,-19.20,1.00,0.00,1.00 -1114,43.20,-19.20,1.00,0.00,1.00 -1115,38.40,-14.40,1.00,0.00,1.00 -1116,33.60,-14.40,1.00,0.00,1.00 -1117,33.60,-14.40,1.00,0.00,1.00 -1118,28.80,-9.60,1.00,0.00,1.00 -1119,24.00,-9.60,1.00,0.00,1.00 -1120,19.20,-9.60,1.00,0.00,1.00 -1121,14.40,-4.80,1.00,0.00,1.00 -1122,9.60,-4.80,1.00,0.00,1.00 -1123,4.80,-0.00,1.00,0.00,1.00 -1124,0.00,0.00,1.00,0.00,1.00 -1125,-4.80,0.00,1.00,0.00,1.00 -1126,-9.60,4.80,1.00,0.00,1.00 -1127,-14.40,4.80,1.00,0.00,1.00 -1128,-19.20,4.80,1.00,0.00,1.00 -1129,-24.00,9.60,1.00,0.00,1.00 -1130,-28.80,9.60,1.00,0.00,1.00 -1131,-33.60,9.60,1.00,0.00,1.00 -1132,-38.40,9.60,1.00,0.00,1.00 -1133,-43.20,14.40,1.00,0.00,1.00 -1134,-48.00,14.40,1.00,0.00,1.00 -1135,-52.80,14.40,1.00,0.00,1.00 -1136,-57.60,14.40,1.00,0.00,1.00 -1137,-62.40,19.20,1.00,0.00,1.00 -1138,-67.20,19.20,1.00,0.00,1.00 -1139,-72.00,19.20,1.00,0.00,1.00 -1140,-76.80,19.20,1.00,0.00,1.00 -1141,-81.60,19.20,1.00,0.00,1.00 -1142,-86.40,19.20,1.00,0.00,1.00 -1143,-91.20,19.20,1.00,0.00,1.00 -1144,-96.00,19.20,1.00,0.00,1.00 -1145,-100.80,19.20,1.00,0.00,1.00 -1146,-105.60,19.20,1.00,0.00,1.00 -1147,-110.40,19.20,1.00,0.00,1.00 -1148,-115.20,19.20,1.00,0.00,1.00 -1149,-120.00,14.40,1.00,0.00,1.00 -1150,-124.80,14.40,1.00,0.00,1.00 -1151,-129.60,14.40,1.00,0.00,1.00 -1152,-134.40,14.40,1.00,0.00,1.00 -1153,-139.20,14.40,1.00,0.00,1.00 -1154,-144.00,9.60,1.00,0.00,1.00 -1155,-148.80,9.60,1.00,0.00,1.00 -1156,-153.60,9.60,1.00,0.00,1.00 -1157,-158.40,4.80,1.00,0.00,1.00 -1158,-163.20,4.80,1.00,0.00,1.00 -1159,-168.00,4.80,1.00,0.00,1.00 -1160,-172.80,0.00,1.00,0.00,1.00 -1161,-177.60,0.00,1.00,0.00,1.00 -1162,177.60,-0.00,1.00,0.00,1.00 -1163,172.80,-0.00,1.00,0.00,1.00 -1164,168.00,-4.80,1.00,0.00,1.00 -1165,163.20,-4.80,1.00,0.00,1.00 -1166,158.40,-4.80,1.00,0.00,1.00 -1167,153.60,-9.60,1.00,0.00,1.00 -1168,148.80,-9.60,1.00,0.00,1.00 -1169,144.00,-9.60,1.00,0.00,1.00 -1170,139.20,-14.40,1.00,0.00,1.00 -1171,134.40,-14.40,1.00,0.00,1.00 -1172,129.60,-14.40,1.00,0.00,1.00 -1173,124.80,-14.40,1.00,0.00,1.00 -1174,120.00,-14.40,1.00,0.00,1.00 -1175,115.20,-19.20,1.00,0.00,1.00 -1176,110.40,-19.20,1.00,0.00,1.00 -1177,105.60,-19.20,1.00,0.00,1.00 -1178,100.80,-19.20,1.00,0.00,1.00 -1179,96.00,-19.20,1.00,0.00,1.00 -1180,91.20,-19.20,1.00,0.00,1.00 -1181,86.40,-19.20,1.00,0.00,1.00 -1182,81.60,-19.20,1.00,0.00,1.00 -1183,76.80,-19.20,1.00,0.00,1.00 -1184,72.00,-19.20,1.00,0.00,1.00 -1185,67.20,-19.20,1.00,0.00,1.00 -1186,62.40,-19.20,1.00,0.00,1.00 -1187,57.60,-14.40,1.00,0.00,1.00 -1188,52.80,-14.40,1.00,0.00,1.00 -1189,48.00,-14.40,1.00,0.00,1.00 -1190,43.20,-14.40,1.00,0.00,1.00 -1191,38.40,-9.60,1.00,0.00,1.00 -1192,33.60,-9.60,1.00,0.00,1.00 -1193,28.80,-9.60,1.00,0.00,1.00 -1194,24.00,-9.60,1.00,0.00,1.00 -1195,19.20,-4.80,1.00,0.00,1.00 -1196,14.40,-4.80,1.00,0.00,1.00 -1197,9.60,-4.80,1.00,0.00,1.00 -1198,4.80,-0.00,1.00,0.00,1.00 -1199,0.00,0.00,1.00,0.00,1.00 -1200,-4.80,0.00,1.00,0.00,1.00 -1201,-9.60,0.00,1.00,0.00,1.00 -1202,-14.40,4.80,1.00,0.00,1.00 -1203,-19.20,4.80,1.00,0.00,1.00 -1204,-24.00,4.80,1.00,0.00,1.00 -1205,-28.80,4.80,1.00,0.00,1.00 -1206,-33.60,9.60,1.00,0.00,1.00 -1207,-38.40,9.60,1.00,0.00,1.00 -1208,-43.20,9.60,1.00,0.00,1.00 -1209,-48.00,9.60,1.00,0.00,1.00 -1210,-52.80,9.60,1.00,0.00,1.00 -1211,-57.60,14.40,1.00,0.00,1.00 -1212,-62.40,14.40,1.00,0.00,1.00 -1213,-67.20,14.40,1.00,0.00,1.00 -1214,-72.00,14.40,1.00,0.00,1.00 -1215,-76.80,14.40,1.00,0.00,1.00 -1216,-81.60,14.40,1.00,0.00,1.00 -1217,-86.40,14.40,1.00,0.00,1.00 -1218,-91.20,14.40,1.00,0.00,1.00 -1219,-96.00,14.40,1.00,0.00,1.00 -1220,-100.80,14.40,1.00,0.00,1.00 -1221,-105.60,14.40,1.00,0.00,1.00 -1222,-110.40,14.40,1.00,0.00,1.00 -1223,-115.20,14.40,1.00,0.00,1.00 -1224,-120.00,14.40,1.00,0.00,1.00 -1225,-124.80,9.60,1.00,0.00,1.00 -1226,-129.60,9.60,1.00,0.00,1.00 -1227,-134.40,9.60,1.00,0.00,1.00 -1228,-139.20,9.60,1.00,0.00,1.00 -1229,-144.00,9.60,1.00,0.00,1.00 -1230,-148.80,9.60,1.00,0.00,1.00 -1231,-153.60,4.80,1.00,0.00,1.00 -1232,-158.40,4.80,1.00,0.00,1.00 -1233,-163.20,4.80,1.00,0.00,1.00 -1234,-168.00,4.80,1.00,0.00,1.00 -1235,-172.80,0.00,1.00,0.00,1.00 -1236,-177.60,0.00,1.00,0.00,1.00 -1237,177.60,-0.00,1.00,0.00,1.00 -1238,172.80,-0.00,1.00,0.00,1.00 -1239,168.00,-4.80,1.00,0.00,1.00 -1240,163.20,-4.80,1.00,0.00,1.00 -1241,158.40,-4.80,1.00,0.00,1.00 -1242,153.60,-4.80,1.00,0.00,1.00 -1243,148.80,-9.60,1.00,0.00,1.00 -1244,144.00,-9.60,1.00,0.00,1.00 -1245,139.20,-9.60,1.00,0.00,1.00 -1246,134.40,-9.60,1.00,0.00,1.00 -1247,129.60,-9.60,1.00,0.00,1.00 -1248,124.80,-9.60,1.00,0.00,1.00 -1249,120.00,-14.40,1.00,0.00,1.00 -1250,115.20,-14.40,1.00,0.00,1.00 -1251,110.40,-14.40,1.00,0.00,1.00 -1252,105.60,-14.40,1.00,0.00,1.00 -1253,100.80,-14.40,1.00,0.00,1.00 -1254,96.00,-14.40,1.00,0.00,1.00 -1255,91.20,-14.40,1.00,0.00,1.00 -1256,86.40,-14.40,1.00,0.00,1.00 -1257,81.60,-14.40,1.00,0.00,1.00 -1258,76.80,-14.40,1.00,0.00,1.00 -1259,72.00,-14.40,1.00,0.00,1.00 -1260,67.20,-14.40,1.00,0.00,1.00 -1261,62.40,-14.40,1.00,0.00,1.00 -1262,57.60,-14.40,1.00,0.00,1.00 -1263,52.80,-9.60,1.00,0.00,1.00 -1264,48.00,-9.60,1.00,0.00,1.00 -1265,43.20,-9.60,1.00,0.00,1.00 -1266,38.40,-9.60,1.00,0.00,1.00 -1267,33.60,-9.60,1.00,0.00,1.00 -1268,28.80,-4.80,1.00,0.00,1.00 -1269,24.00,-4.80,1.00,0.00,1.00 -1270,19.20,-4.80,1.00,0.00,1.00 -1271,14.40,-4.80,1.00,0.00,1.00 -1272,9.60,-0.00,1.00,0.00,1.00 -1273,4.80,-0.00,1.00,0.00,1.00 -1274,0.00,0.00,1.00,0.00,1.00 -1275,-4.80,0.00,1.00,0.00,1.00 -1276,-9.60,0.00,1.00,0.00,1.00 -1277,-14.40,0.00,1.00,0.00,1.00 -1278,-19.20,4.80,1.00,0.00,1.00 -1279,-24.00,4.80,1.00,0.00,1.00 -1280,-28.80,4.80,1.00,0.00,1.00 -1281,-33.60,4.80,1.00,0.00,1.00 -1282,-38.40,4.80,1.00,0.00,1.00 -1283,-43.20,4.80,1.00,0.00,1.00 -1284,-48.00,4.80,1.00,0.00,1.00 -1285,-52.80,9.60,1.00,0.00,1.00 -1286,-57.60,9.60,1.00,0.00,1.00 -1287,-62.40,9.60,1.00,0.00,1.00 -1288,-67.20,9.60,1.00,0.00,1.00 -1289,-72.00,9.60,1.00,0.00,1.00 -1290,-76.80,9.60,1.00,0.00,1.00 -1291,-81.60,9.60,1.00,0.00,1.00 -1292,-86.40,9.60,1.00,0.00,1.00 -1293,-91.20,9.60,1.00,0.00,1.00 -1294,-96.00,9.60,1.00,0.00,1.00 -1295,-100.80,9.60,1.00,0.00,1.00 -1296,-105.60,9.60,1.00,0.00,1.00 -1297,-110.40,9.60,1.00,0.00,1.00 -1298,-115.20,9.60,1.00,0.00,1.00 -1299,-120.00,9.60,1.00,0.00,1.00 -1300,-124.80,9.60,1.00,0.00,1.00 -1301,-129.60,9.60,1.00,0.00,1.00 -1302,-134.40,4.80,1.00,0.00,1.00 -1303,-139.20,4.80,1.00,0.00,1.00 -1304,-144.00,4.80,1.00,0.00,1.00 -1305,-148.80,4.80,1.00,0.00,1.00 -1306,-153.60,4.80,1.00,0.00,1.00 -1307,-158.40,4.80,1.00,0.00,1.00 -1308,-163.20,4.80,1.00,0.00,1.00 -1309,-168.00,0.00,1.00,0.00,1.00 -1310,-172.80,0.00,1.00,0.00,1.00 -1311,-177.60,0.00,1.00,0.00,1.00 -1312,177.60,-0.00,1.00,0.00,1.00 -1313,172.80,-0.00,1.00,0.00,1.00 -1314,168.00,-0.00,1.00,0.00,1.00 -1315,163.20,-4.80,1.00,0.00,1.00 -1316,158.40,-4.80,1.00,0.00,1.00 -1317,153.60,-4.80,1.00,0.00,1.00 -1318,148.80,-4.80,1.00,0.00,1.00 -1319,144.00,-4.80,1.00,0.00,1.00 -1320,139.20,-4.80,1.00,0.00,1.00 -1321,134.40,-4.80,1.00,0.00,1.00 -1322,129.60,-9.60,1.00,0.00,1.00 -1323,124.80,-9.60,1.00,0.00,1.00 -1324,120.00,-9.60,1.00,0.00,1.00 -1325,115.20,-9.60,1.00,0.00,1.00 -1326,110.40,-9.60,1.00,0.00,1.00 -1327,105.60,-9.60,1.00,0.00,1.00 -1328,100.80,-9.60,1.00,0.00,1.00 -1329,96.00,-9.60,1.00,0.00,1.00 -1330,91.20,-9.60,1.00,0.00,1.00 -1331,86.40,-9.60,1.00,0.00,1.00 -1332,81.60,-9.60,1.00,0.00,1.00 -1333,76.80,-9.60,1.00,0.00,1.00 -1334,72.00,-9.60,1.00,0.00,1.00 -1335,67.20,-9.60,1.00,0.00,1.00 -1336,62.40,-9.60,1.00,0.00,1.00 -1337,57.60,-9.60,1.00,0.00,1.00 -1338,52.80,-9.60,1.00,0.00,1.00 -1339,48.00,-4.80,1.00,0.00,1.00 -1340,43.20,-4.80,1.00,0.00,1.00 -1341,38.40,-4.80,1.00,0.00,1.00 -1342,33.60,-4.80,1.00,0.00,1.00 -1343,28.80,-4.80,1.00,0.00,1.00 -1344,24.00,-4.80,1.00,0.00,1.00 -1345,19.20,-4.80,1.00,0.00,1.00 -1346,14.40,-0.00,1.00,0.00,1.00 -1347,9.60,-0.00,1.00,0.00,1.00 -1348,4.80,-0.00,1.00,0.00,1.00 -1349,0.00,0.00,1.00,0.00,1.00 -1350,-4.80,0.00,1.00,0.00,1.00 -1351,-9.60,0.00,1.00,0.00,1.00 -1352,-14.40,0.00,1.00,0.00,1.00 -1353,-19.20,0.00,1.00,0.00,1.00 -1354,-24.00,0.00,1.00,0.00,1.00 -1355,-28.80,0.00,1.00,0.00,1.00 -1356,-33.60,4.80,1.00,0.00,1.00 -1357,-38.40,4.80,1.00,0.00,1.00 -1358,-43.20,4.80,1.00,0.00,1.00 -1359,-48.00,4.80,1.00,0.00,1.00 -1360,-52.80,4.80,1.00,0.00,1.00 -1361,-57.60,4.80,1.00,0.00,1.00 -1362,-62.40,4.80,1.00,0.00,1.00 -1363,-67.20,4.80,1.00,0.00,1.00 -1364,-72.00,4.80,1.00,0.00,1.00 -1365,-76.80,4.80,1.00,0.00,1.00 -1366,-81.60,4.80,1.00,0.00,1.00 -1367,-86.40,4.80,1.00,0.00,1.00 -1368,-91.20,4.80,1.00,0.00,1.00 -1369,-96.00,4.80,1.00,0.00,1.00 -1370,-100.80,4.80,1.00,0.00,1.00 -1371,-105.60,4.80,1.00,0.00,1.00 -1372,-110.40,4.80,1.00,0.00,1.00 -1373,-115.20,4.80,1.00,0.00,1.00 -1374,-120.00,4.80,1.00,0.00,1.00 -1375,-124.80,4.80,1.00,0.00,1.00 -1376,-129.60,4.80,1.00,0.00,1.00 -1377,-134.40,4.80,1.00,0.00,1.00 -1378,-139.20,4.80,1.00,0.00,1.00 -1379,-144.00,4.80,1.00,0.00,1.00 -1380,-148.80,4.80,1.00,0.00,1.00 -1381,-153.60,0.00,1.00,0.00,1.00 -1382,-158.40,0.00,1.00,0.00,1.00 -1383,-163.20,0.00,1.00,0.00,1.00 -1384,-168.00,0.00,1.00,0.00,1.00 -1385,-172.80,0.00,1.00,0.00,1.00 -1386,-177.60,0.00,1.00,0.00,1.00 -1387,177.60,-0.00,1.00,0.00,1.00 -1388,172.80,-0.00,1.00,0.00,1.00 -1389,168.00,-0.00,1.00,0.00,1.00 -1390,163.20,-0.00,1.00,0.00,1.00 -1391,158.40,-0.00,1.00,0.00,1.00 -1392,153.60,-0.00,1.00,0.00,1.00 -1393,148.80,-4.80,1.00,0.00,1.00 -1394,144.00,-4.80,1.00,0.00,1.00 -1395,139.20,-4.80,1.00,0.00,1.00 -1396,134.40,-4.80,1.00,0.00,1.00 -1397,129.60,-4.80,1.00,0.00,1.00 -1398,124.80,-4.80,1.00,0.00,1.00 -1399,120.00,-4.80,1.00,0.00,1.00 -1400,115.20,-4.80,1.00,0.00,1.00 -1401,110.40,-4.80,1.00,0.00,1.00 -1402,105.60,-4.80,1.00,0.00,1.00 -1403,100.80,-4.80,1.00,0.00,1.00 -1404,96.00,-4.80,1.00,0.00,1.00 -1405,91.20,-4.80,1.00,0.00,1.00 -1406,86.40,-4.80,1.00,0.00,1.00 -1407,81.60,-4.80,1.00,0.00,1.00 -1408,76.80,-4.80,1.00,0.00,1.00 -1409,72.00,-4.80,1.00,0.00,1.00 -1410,67.20,-4.80,1.00,0.00,1.00 -1411,62.40,-4.80,1.00,0.00,1.00 -1412,57.60,-4.80,1.00,0.00,1.00 -1413,52.80,-4.80,1.00,0.00,1.00 -1414,48.00,-4.80,1.00,0.00,1.00 -1415,43.20,-4.80,1.00,0.00,1.00 -1416,38.40,-4.80,1.00,0.00,1.00 -1417,33.60,-4.80,1.00,0.00,1.00 -1418,28.80,-0.00,1.00,0.00,1.00 -1419,24.00,-0.00,1.00,0.00,1.00 -1420,19.20,-0.00,1.00,0.00,1.00 -1421,14.40,-0.00,1.00,0.00,1.00 -1422,9.60,-0.00,1.00,0.00,1.00 -1423,4.80,-0.00,1.00,0.00,1.00 -1424,0.00,0.00,1.00,0.00,1.00 -1425,-4.80,0.00,1.00,0.00,1.00 -1426,-9.60,0.00,1.00,0.00,1.00 -1427,-14.40,0.00,1.00,0.00,1.00 -1428,-19.20,0.00,1.00,0.00,1.00 -1429,-24.00,0.00,1.00,0.00,1.00 -1430,-28.80,0.00,1.00,0.00,1.00 -1431,-33.60,0.00,1.00,0.00,1.00 -1432,-38.40,0.00,1.00,0.00,1.00 -1433,-43.20,0.00,1.00,0.00,1.00 -1434,-48.00,0.00,1.00,0.00,1.00 -1435,-52.80,0.00,1.00,0.00,1.00 -1436,-57.60,0.00,1.00,0.00,1.00 -1437,-62.40,0.00,1.00,0.00,1.00 -1438,-67.20,0.00,1.00,0.00,1.00 -1439,-72.00,0.00,1.00,0.00,1.00 -1440,-76.80,0.00,1.00,0.00,1.00 -1441,-81.60,0.00,1.00,0.00,1.00 -1442,-86.40,0.00,1.00,0.00,1.00 -1443,-91.20,0.00,1.00,0.00,1.00 -1444,-96.00,0.00,1.00,0.00,1.00 -1445,-100.80,0.00,1.00,0.00,1.00 -1446,-105.60,0.00,1.00,0.00,1.00 -1447,-110.40,0.00,1.00,0.00,1.00 -1448,-115.20,0.00,1.00,0.00,1.00 -1449,-120.00,0.00,1.00,0.00,1.00 -1450,-124.80,0.00,1.00,0.00,1.00 -1451,-129.60,0.00,1.00,0.00,1.00 -1452,-134.40,0.00,1.00,0.00,1.00 -1453,-139.20,0.00,1.00,0.00,1.00 -1454,-144.00,0.00,1.00,0.00,1.00 -1455,-148.80,0.00,1.00,0.00,1.00 -1456,-153.60,0.00,1.00,0.00,1.00 -1457,-158.40,0.00,1.00,0.00,1.00 -1458,-163.20,0.00,1.00,0.00,1.00 -1459,-168.00,0.00,1.00,0.00,1.00 -1460,-172.80,0.00,1.00,0.00,1.00 -1461,-177.60,0.00,1.00,0.00,1.00 -1462,177.60,0.00,1.00,0.00,1.00 -1463,172.80,0.00,1.00,0.00,1.00 -1464,168.00,0.00,1.00,0.00,1.00 -1465,163.20,0.00,1.00,0.00,1.00 -1466,158.40,0.00,1.00,0.00,1.00 -1467,153.60,0.00,1.00,0.00,1.00 -1468,148.80,0.00,1.00,0.00,1.00 -1469,144.00,0.00,1.00,0.00,1.00 -1470,139.20,0.00,1.00,0.00,1.00 -1471,134.40,0.00,1.00,0.00,1.00 -1472,129.60,0.00,1.00,0.00,1.00 -1473,124.80,0.00,1.00,0.00,1.00 -1474,120.00,0.00,1.00,0.00,1.00 -1475,115.20,0.00,1.00,0.00,1.00 -1476,110.40,0.00,1.00,0.00,1.00 -1477,105.60,0.00,1.00,0.00,1.00 -1478,100.80,0.00,1.00,0.00,1.00 -1479,96.00,0.00,1.00,0.00,1.00 -1480,91.20,0.00,1.00,0.00,1.00 -1481,86.40,0.00,1.00,0.00,1.00 -1482,81.60,0.00,1.00,0.00,1.00 -1483,76.80,0.00,1.00,0.00,1.00 -1484,72.00,0.00,1.00,0.00,1.00 -1485,67.20,0.00,1.00,0.00,1.00 -1486,62.40,0.00,1.00,0.00,1.00 -1487,57.60,0.00,1.00,0.00,1.00 -1488,52.80,0.00,1.00,0.00,1.00 -1489,48.00,0.00,1.00,0.00,1.00 -1490,43.20,0.00,1.00,0.00,1.00 -1491,38.40,0.00,1.00,0.00,1.00 -1492,33.60,0.00,1.00,0.00,1.00 -1493,28.80,0.00,1.00,0.00,1.00 -1494,24.00,0.00,1.00,0.00,1.00 -1495,19.20,0.00,1.00,0.00,1.00 -1496,14.40,0.00,1.00,0.00,1.00 -1497,9.60,0.00,1.00,0.00,1.00 -1498,4.80,0.00,1.00,0.00,1.00 -1499,0.00,0.00,1.00,0.00,1.00 diff --git a/tests/renderer/data/stvISM3.csv b/tests/renderer/data/stvISM3.csv deleted file mode 100644 index 6b57caab12..0000000000 --- a/tests/renderer/data/stvISM3.csv +++ /dev/null @@ -1,1500 +0,0 @@ -0,0.00,0.00,1.00,0.00,1.00 -1,-177.60,-4.80,1.00,0.00,1.00 -2,4.80,4.80,1.00,0.00,1.00 -3,-168.00,-9.60,1.00,0.00,1.00 -4,14.40,14.40,1.00,0.00,1.00 -5,-163.20,-14.40,1.00,0.00,1.00 -6,19.20,19.20,1.00,0.00,1.00 -7,-153.60,-24.00,1.00,0.00,1.00 -8,28.80,24.00,1.00,0.00,1.00 -9,-148.80,-28.80,1.00,0.00,1.00 -10,38.40,33.60,1.00,0.00,1.00 -11,-139.20,-33.60,1.00,0.00,1.00 -12,48.00,38.40,1.00,0.00,1.00 -13,-124.80,-38.40,1.00,0.00,1.00 -14,57.60,38.40,1.00,0.00,1.00 -15,-115.20,-43.20,1.00,0.00,1.00 -16,72.00,43.20,1.00,0.00,1.00 -17,-100.80,-43.20,1.00,0.00,1.00 -18,86.40,43.20,1.00,0.00,1.00 -19,-86.40,-43.20,1.00,0.00,1.00 -20,100.80,43.20,1.00,0.00,1.00 -21,-76.80,-43.20,1.00,0.00,1.00 -22,110.40,43.20,1.00,0.00,1.00 -23,-62.40,-43.20,1.00,0.00,1.00 -24,124.80,38.40,1.00,0.00,1.00 -25,-52.80,-38.40,1.00,0.00,1.00 -26,134.40,33.60,1.00,0.00,1.00 -27,-38.40,-33.60,1.00,0.00,1.00 -28,144.00,28.80,1.00,0.00,1.00 -29,-33.60,-28.80,1.00,0.00,1.00 -30,153.60,24.00,1.00,0.00,1.00 -31,-24.00,-19.20,1.00,0.00,1.00 -32,158.40,19.20,1.00,0.00,1.00 -33,-14.40,-14.40,1.00,0.00,1.00 -34,168.00,9.60,1.00,0.00,1.00 -35,-9.60,-9.60,1.00,0.00,1.00 -36,172.80,4.80,1.00,0.00,1.00 -37,-0.00,-0.00,1.00,0.00,1.00 -38,-177.60,-0.00,1.00,0.00,1.00 -39,4.80,4.80,1.00,0.00,1.00 -40,-172.80,-9.60,1.00,0.00,1.00 -41,14.40,9.60,1.00,0.00,1.00 -42,-163.20,-14.40,1.00,0.00,1.00 -43,19.20,19.20,1.00,0.00,1.00 -44,-158.40,-19.20,1.00,0.00,1.00 -45,28.80,24.00,1.00,0.00,1.00 -46,-148.80,-28.80,1.00,0.00,1.00 -47,33.60,28.80,1.00,0.00,1.00 -48,-139.20,-33.60,1.00,0.00,1.00 -49,43.20,33.60,1.00,0.00,1.00 -50,-129.60,-38.40,1.00,0.00,1.00 -51,57.60,38.40,1.00,0.00,1.00 -52,-120.00,-43.20,1.00,0.00,1.00 -53,67.20,43.20,1.00,0.00,1.00 -54,-105.60,-43.20,1.00,0.00,1.00 -55,81.60,43.20,1.00,0.00,1.00 -56,-91.20,-43.20,1.00,0.00,1.00 -57,96.00,43.20,1.00,0.00,1.00 -58,-76.80,-43.20,1.00,0.00,1.00 -59,110.40,43.20,1.00,0.00,1.00 -60,-67.20,-43.20,1.00,0.00,1.00 -61,120.00,38.40,1.00,0.00,1.00 -62,-52.80,-38.40,1.00,0.00,1.00 -63,129.60,38.40,1.00,0.00,1.00 -64,-43.20,-33.60,1.00,0.00,1.00 -65,144.00,33.60,1.00,0.00,1.00 -66,-33.60,-28.80,1.00,0.00,1.00 -67,148.80,24.00,1.00,0.00,1.00 -68,-24.00,-24.00,1.00,0.00,1.00 -69,158.40,19.20,1.00,0.00,1.00 -70,-19.20,-14.40,1.00,0.00,1.00 -71,168.00,14.40,1.00,0.00,1.00 -72,-9.60,-9.60,1.00,0.00,1.00 -73,172.80,4.80,1.00,0.00,1.00 -74,-4.80,-4.80,1.00,0.00,1.00 -75,0.00,0.00,1.00,0.00,1.00 -76,-177.60,-4.80,1.00,0.00,1.00 -77,9.60,4.80,1.00,0.00,1.00 -78,-168.00,-9.60,1.00,0.00,1.00 -79,14.40,14.40,1.00,0.00,1.00 -80,-163.20,-14.40,1.00,0.00,1.00 -81,24.00,19.20,1.00,0.00,1.00 -82,-153.60,-19.20,1.00,0.00,1.00 -83,28.80,24.00,1.00,0.00,1.00 -84,-144.00,-24.00,1.00,0.00,1.00 -85,38.40,28.80,1.00,0.00,1.00 -86,-134.40,-28.80,1.00,0.00,1.00 -87,48.00,33.60,1.00,0.00,1.00 -88,-124.80,-33.60,1.00,0.00,1.00 -89,62.40,38.40,1.00,0.00,1.00 -90,-115.20,-38.40,1.00,0.00,1.00 -91,72.00,38.40,1.00,0.00,1.00 -92,-100.80,-38.40,1.00,0.00,1.00 -93,86.40,38.40,1.00,0.00,1.00 -94,-86.40,-38.40,1.00,0.00,1.00 -95,96.00,38.40,1.00,0.00,1.00 -96,-76.80,-38.40,1.00,0.00,1.00 -97,110.40,38.40,1.00,0.00,1.00 -98,-62.40,-38.40,1.00,0.00,1.00 -99,120.00,33.60,1.00,0.00,1.00 -100,-52.80,-33.60,1.00,0.00,1.00 -101,134.40,33.60,1.00,0.00,1.00 -102,-43.20,-28.80,1.00,0.00,1.00 -103,144.00,28.80,1.00,0.00,1.00 -104,-33.60,-24.00,1.00,0.00,1.00 -105,148.80,24.00,1.00,0.00,1.00 -106,-24.00,-19.20,1.00,0.00,1.00 -107,158.40,14.40,1.00,0.00,1.00 -108,-19.20,-14.40,1.00,0.00,1.00 -109,168.00,9.60,1.00,0.00,1.00 -110,-9.60,-9.60,1.00,0.00,1.00 -111,172.80,4.80,1.00,0.00,1.00 -112,-0.00,-0.00,1.00,0.00,1.00 -113,-177.60,-0.00,1.00,0.00,1.00 -114,4.80,4.80,1.00,0.00,1.00 -115,-172.80,-9.60,1.00,0.00,1.00 -116,14.40,9.60,1.00,0.00,1.00 -117,-163.20,-14.40,1.00,0.00,1.00 -118,19.20,14.40,1.00,0.00,1.00 -119,-153.60,-19.20,1.00,0.00,1.00 -120,28.80,24.00,1.00,0.00,1.00 -121,-148.80,-24.00,1.00,0.00,1.00 -122,38.40,28.80,1.00,0.00,1.00 -123,-139.20,-28.80,1.00,0.00,1.00 -124,48.00,33.60,1.00,0.00,1.00 -125,-124.80,-33.60,1.00,0.00,1.00 -126,57.60,33.60,1.00,0.00,1.00 -127,-115.20,-38.40,1.00,0.00,1.00 -128,72.00,38.40,1.00,0.00,1.00 -129,-105.60,-38.40,1.00,0.00,1.00 -130,81.60,38.40,1.00,0.00,1.00 -131,-91.20,-38.40,1.00,0.00,1.00 -132,96.00,38.40,1.00,0.00,1.00 -133,-76.80,-38.40,1.00,0.00,1.00 -134,105.60,38.40,1.00,0.00,1.00 -135,-67.20,-38.40,1.00,0.00,1.00 -136,120.00,38.40,1.00,0.00,1.00 -137,-57.60,-33.60,1.00,0.00,1.00 -138,129.60,33.60,1.00,0.00,1.00 -139,-43.20,-28.80,1.00,0.00,1.00 -140,139.20,28.80,1.00,0.00,1.00 -141,-33.60,-24.00,1.00,0.00,1.00 -142,148.80,24.00,1.00,0.00,1.00 -143,-28.80,-19.20,1.00,0.00,1.00 -144,158.40,19.20,1.00,0.00,1.00 -145,-19.20,-14.40,1.00,0.00,1.00 -146,163.20,14.40,1.00,0.00,1.00 -147,-9.60,-9.60,1.00,0.00,1.00 -148,172.80,4.80,1.00,0.00,1.00 -149,-4.80,-4.80,1.00,0.00,1.00 -150,0.00,0.00,1.00,0.00,1.00 -151,-177.60,-4.80,1.00,0.00,1.00 -152,9.60,4.80,1.00,0.00,1.00 -153,-168.00,-9.60,1.00,0.00,1.00 -154,14.40,9.60,1.00,0.00,1.00 -155,-158.40,-14.40,1.00,0.00,1.00 -156,24.00,14.40,1.00,0.00,1.00 -157,-153.60,-19.20,1.00,0.00,1.00 -158,33.60,19.20,1.00,0.00,1.00 -159,-144.00,-24.00,1.00,0.00,1.00 -160,43.20,24.00,1.00,0.00,1.00 -161,-134.40,-28.80,1.00,0.00,1.00 -162,52.80,28.80,1.00,0.00,1.00 -163,-124.80,-28.80,1.00,0.00,1.00 -164,62.40,33.60,1.00,0.00,1.00 -165,-110.40,-33.60,1.00,0.00,1.00 -166,72.00,33.60,1.00,0.00,1.00 -167,-100.80,-33.60,1.00,0.00,1.00 -168,86.40,33.60,1.00,0.00,1.00 -169,-86.40,-33.60,1.00,0.00,1.00 -170,96.00,33.60,1.00,0.00,1.00 -171,-76.80,-33.60,1.00,0.00,1.00 -172,110.40,33.60,1.00,0.00,1.00 -173,-67.20,-33.60,1.00,0.00,1.00 -174,120.00,33.60,1.00,0.00,1.00 -175,-52.80,-28.80,1.00,0.00,1.00 -176,129.60,28.80,1.00,0.00,1.00 -177,-43.20,-28.80,1.00,0.00,1.00 -178,139.20,24.00,1.00,0.00,1.00 -179,-33.60,-24.00,1.00,0.00,1.00 -180,148.80,19.20,1.00,0.00,1.00 -181,-24.00,-19.20,1.00,0.00,1.00 -182,158.40,14.40,1.00,0.00,1.00 -183,-19.20,-14.40,1.00,0.00,1.00 -184,168.00,9.60,1.00,0.00,1.00 -185,-9.60,-4.80,1.00,0.00,1.00 -186,172.80,4.80,1.00,0.00,1.00 -187,-0.00,-0.00,1.00,0.00,1.00 -188,-177.60,-0.00,1.00,0.00,1.00 -189,4.80,4.80,1.00,0.00,1.00 -190,-168.00,-4.80,1.00,0.00,1.00 -191,14.40,9.60,1.00,0.00,1.00 -192,-163.20,-14.40,1.00,0.00,1.00 -193,24.00,14.40,1.00,0.00,1.00 -194,-153.60,-19.20,1.00,0.00,1.00 -195,28.80,19.20,1.00,0.00,1.00 -196,-144.00,-24.00,1.00,0.00,1.00 -197,38.40,24.00,1.00,0.00,1.00 -198,-134.40,-28.80,1.00,0.00,1.00 -199,48.00,28.80,1.00,0.00,1.00 -200,-124.80,-28.80,1.00,0.00,1.00 -201,62.40,33.60,1.00,0.00,1.00 -202,-115.20,-33.60,1.00,0.00,1.00 -203,72.00,33.60,1.00,0.00,1.00 -204,-100.80,-33.60,1.00,0.00,1.00 -205,81.60,33.60,1.00,0.00,1.00 -206,-91.20,-33.60,1.00,0.00,1.00 -207,96.00,33.60,1.00,0.00,1.00 -208,-81.60,-33.60,1.00,0.00,1.00 -209,105.60,33.60,1.00,0.00,1.00 -210,-67.20,-33.60,1.00,0.00,1.00 -211,115.20,33.60,1.00,0.00,1.00 -212,-57.60,-28.80,1.00,0.00,1.00 -213,129.60,28.80,1.00,0.00,1.00 -214,-48.00,-28.80,1.00,0.00,1.00 -215,139.20,24.00,1.00,0.00,1.00 -216,-38.40,-24.00,1.00,0.00,1.00 -217,148.80,19.20,1.00,0.00,1.00 -218,-28.80,-19.20,1.00,0.00,1.00 -219,153.60,14.40,1.00,0.00,1.00 -220,-19.20,-14.40,1.00,0.00,1.00 -221,163.20,9.60,1.00,0.00,1.00 -222,-9.60,-9.60,1.00,0.00,1.00 -223,172.80,4.80,1.00,0.00,1.00 -224,-4.80,-4.80,1.00,0.00,1.00 -225,0.00,0.00,1.00,0.00,1.00 -226,-177.60,-4.80,1.00,0.00,1.00 -227,9.60,4.80,1.00,0.00,1.00 -228,-168.00,-9.60,1.00,0.00,1.00 -229,14.40,9.60,1.00,0.00,1.00 -230,-158.40,-9.60,1.00,0.00,1.00 -231,24.00,14.40,1.00,0.00,1.00 -232,-148.80,-14.40,1.00,0.00,1.00 -233,33.60,19.20,1.00,0.00,1.00 -234,-139.20,-19.20,1.00,0.00,1.00 -235,43.20,24.00,1.00,0.00,1.00 -236,-129.60,-24.00,1.00,0.00,1.00 -237,52.80,24.00,1.00,0.00,1.00 -238,-120.00,-28.80,1.00,0.00,1.00 -239,62.40,28.80,1.00,0.00,1.00 -240,-110.40,-28.80,1.00,0.00,1.00 -241,76.80,28.80,1.00,0.00,1.00 -242,-100.80,-28.80,1.00,0.00,1.00 -243,86.40,28.80,1.00,0.00,1.00 -244,-86.40,-28.80,1.00,0.00,1.00 -245,96.00,28.80,1.00,0.00,1.00 -246,-76.80,-28.80,1.00,0.00,1.00 -247,105.60,28.80,1.00,0.00,1.00 -248,-67.20,-28.80,1.00,0.00,1.00 -249,120.00,28.80,1.00,0.00,1.00 -250,-57.60,-24.00,1.00,0.00,1.00 -251,129.60,24.00,1.00,0.00,1.00 -252,-48.00,-24.00,1.00,0.00,1.00 -253,139.20,19.20,1.00,0.00,1.00 -254,-38.40,-19.20,1.00,0.00,1.00 -255,148.80,19.20,1.00,0.00,1.00 -256,-28.80,-14.40,1.00,0.00,1.00 -257,158.40,14.40,1.00,0.00,1.00 -258,-19.20,-9.60,1.00,0.00,1.00 -259,163.20,9.60,1.00,0.00,1.00 -260,-9.60,-4.80,1.00,0.00,1.00 -261,172.80,4.80,1.00,0.00,1.00 -262,-0.00,-0.00,1.00,0.00,1.00 -263,-177.60,-0.00,1.00,0.00,1.00 -264,4.80,4.80,1.00,0.00,1.00 -265,-168.00,-4.80,1.00,0.00,1.00 -266,14.40,9.60,1.00,0.00,1.00 -267,-163.20,-9.60,1.00,0.00,1.00 -268,24.00,14.40,1.00,0.00,1.00 -269,-153.60,-14.40,1.00,0.00,1.00 -270,33.60,19.20,1.00,0.00,1.00 -271,-144.00,-19.20,1.00,0.00,1.00 -272,43.20,19.20,1.00,0.00,1.00 -273,-134.40,-24.00,1.00,0.00,1.00 -274,52.80,24.00,1.00,0.00,1.00 -275,-124.80,-24.00,1.00,0.00,1.00 -276,62.40,28.80,1.00,0.00,1.00 -277,-115.20,-28.80,1.00,0.00,1.00 -278,72.00,28.80,1.00,0.00,1.00 -279,-100.80,-28.80,1.00,0.00,1.00 -280,81.60,28.80,1.00,0.00,1.00 -281,-91.20,-28.80,1.00,0.00,1.00 -282,96.00,28.80,1.00,0.00,1.00 -283,-81.60,-28.80,1.00,0.00,1.00 -284,105.60,28.80,1.00,0.00,1.00 -285,-67.20,-28.80,1.00,0.00,1.00 -286,115.20,28.80,1.00,0.00,1.00 -287,-57.60,-28.80,1.00,0.00,1.00 -288,124.80,24.00,1.00,0.00,1.00 -289,-48.00,-24.00,1.00,0.00,1.00 -290,134.40,24.00,1.00,0.00,1.00 -291,-38.40,-19.20,1.00,0.00,1.00 -292,144.00,19.20,1.00,0.00,1.00 -293,-28.80,-14.40,1.00,0.00,1.00 -294,153.60,14.40,1.00,0.00,1.00 -295,-19.20,-9.60,1.00,0.00,1.00 -296,163.20,9.60,1.00,0.00,1.00 -297,-14.40,-9.60,1.00,0.00,1.00 -298,172.80,4.80,1.00,0.00,1.00 -299,-4.80,-4.80,1.00,0.00,1.00 -300,0.00,0.00,1.00,0.00,1.00 -301,-177.60,-0.00,1.00,0.00,1.00 -302,9.60,4.80,1.00,0.00,1.00 -303,-168.00,-4.80,1.00,0.00,1.00 -304,19.20,9.60,1.00,0.00,1.00 -305,-158.40,-9.60,1.00,0.00,1.00 -306,24.00,14.40,1.00,0.00,1.00 -307,-148.80,-14.40,1.00,0.00,1.00 -308,33.60,14.40,1.00,0.00,1.00 -309,-139.20,-19.20,1.00,0.00,1.00 -310,43.20,19.20,1.00,0.00,1.00 -311,-129.60,-19.20,1.00,0.00,1.00 -312,52.80,19.20,1.00,0.00,1.00 -313,-120.00,-24.00,1.00,0.00,1.00 -314,67.20,24.00,1.00,0.00,1.00 -315,-110.40,-24.00,1.00,0.00,1.00 -316,76.80,24.00,1.00,0.00,1.00 -317,-100.80,-24.00,1.00,0.00,1.00 -318,86.40,24.00,1.00,0.00,1.00 -319,-86.40,-24.00,1.00,0.00,1.00 -320,96.00,24.00,1.00,0.00,1.00 -321,-76.80,-24.00,1.00,0.00,1.00 -322,105.60,24.00,1.00,0.00,1.00 -323,-67.20,-24.00,1.00,0.00,1.00 -324,115.20,24.00,1.00,0.00,1.00 -325,-57.60,-24.00,1.00,0.00,1.00 -326,129.60,19.20,1.00,0.00,1.00 -327,-48.00,-19.20,1.00,0.00,1.00 -328,139.20,19.20,1.00,0.00,1.00 -329,-38.40,-14.40,1.00,0.00,1.00 -330,148.80,14.40,1.00,0.00,1.00 -331,-28.80,-14.40,1.00,0.00,1.00 -332,153.60,9.60,1.00,0.00,1.00 -333,-19.20,-9.60,1.00,0.00,1.00 -334,163.20,9.60,1.00,0.00,1.00 -335,-9.60,-4.80,1.00,0.00,1.00 -336,172.80,4.80,1.00,0.00,1.00 -337,-0.00,-0.00,1.00,0.00,1.00 -338,-177.60,-0.00,1.00,0.00,1.00 -339,4.80,4.80,1.00,0.00,1.00 -340,-168.00,-4.80,1.00,0.00,1.00 -341,14.40,9.60,1.00,0.00,1.00 -342,-158.40,-9.60,1.00,0.00,1.00 -343,24.00,9.60,1.00,0.00,1.00 -344,-153.60,-14.40,1.00,0.00,1.00 -345,33.60,14.40,1.00,0.00,1.00 -346,-144.00,-14.40,1.00,0.00,1.00 -347,43.20,19.20,1.00,0.00,1.00 -348,-134.40,-19.20,1.00,0.00,1.00 -349,52.80,19.20,1.00,0.00,1.00 -350,-124.80,-24.00,1.00,0.00,1.00 -351,62.40,24.00,1.00,0.00,1.00 -352,-110.40,-24.00,1.00,0.00,1.00 -353,72.00,24.00,1.00,0.00,1.00 -354,-100.80,-24.00,1.00,0.00,1.00 -355,81.60,24.00,1.00,0.00,1.00 -356,-91.20,-24.00,1.00,0.00,1.00 -357,96.00,24.00,1.00,0.00,1.00 -358,-81.60,-24.00,1.00,0.00,1.00 -359,105.60,24.00,1.00,0.00,1.00 -360,-72.00,-24.00,1.00,0.00,1.00 -361,115.20,24.00,1.00,0.00,1.00 -362,-57.60,-24.00,1.00,0.00,1.00 -363,124.80,19.20,1.00,0.00,1.00 -364,-48.00,-19.20,1.00,0.00,1.00 -365,134.40,19.20,1.00,0.00,1.00 -366,-38.40,-19.20,1.00,0.00,1.00 -367,144.00,14.40,1.00,0.00,1.00 -368,-28.80,-14.40,1.00,0.00,1.00 -369,153.60,14.40,1.00,0.00,1.00 -370,-24.00,-9.60,1.00,0.00,1.00 -371,163.20,9.60,1.00,0.00,1.00 -372,-14.40,-4.80,1.00,0.00,1.00 -373,172.80,4.80,1.00,0.00,1.00 -374,-4.80,-0.00,1.00,0.00,1.00 -375,0.00,0.00,1.00,0.00,1.00 -376,-177.60,-0.00,1.00,0.00,1.00 -377,9.60,4.80,1.00,0.00,1.00 -378,-168.00,-4.80,1.00,0.00,1.00 -379,19.20,4.80,1.00,0.00,1.00 -380,-158.40,-9.60,1.00,0.00,1.00 -381,28.80,9.60,1.00,0.00,1.00 -382,-148.80,-9.60,1.00,0.00,1.00 -383,38.40,14.40,1.00,0.00,1.00 -384,-139.20,-14.40,1.00,0.00,1.00 -385,48.00,14.40,1.00,0.00,1.00 -386,-129.60,-14.40,1.00,0.00,1.00 -387,57.60,19.20,1.00,0.00,1.00 -388,-120.00,-19.20,1.00,0.00,1.00 -389,67.20,19.20,1.00,0.00,1.00 -390,-110.40,-19.20,1.00,0.00,1.00 -391,76.80,19.20,1.00,0.00,1.00 -392,-100.80,-19.20,1.00,0.00,1.00 -393,86.40,19.20,1.00,0.00,1.00 -394,-86.40,-19.20,1.00,0.00,1.00 -395,96.00,19.20,1.00,0.00,1.00 -396,-76.80,-19.20,1.00,0.00,1.00 -397,105.60,19.20,1.00,0.00,1.00 -398,-67.20,-19.20,1.00,0.00,1.00 -399,115.20,19.20,1.00,0.00,1.00 -400,-57.60,-19.20,1.00,0.00,1.00 -401,124.80,19.20,1.00,0.00,1.00 -402,-48.00,-14.40,1.00,0.00,1.00 -403,134.40,14.40,1.00,0.00,1.00 -404,-38.40,-14.40,1.00,0.00,1.00 -405,144.00,14.40,1.00,0.00,1.00 -406,-28.80,-9.60,1.00,0.00,1.00 -407,153.60,9.60,1.00,0.00,1.00 -408,-19.20,-9.60,1.00,0.00,1.00 -409,163.20,4.80,1.00,0.00,1.00 -410,-9.60,-4.80,1.00,0.00,1.00 -411,172.80,4.80,1.00,0.00,1.00 -412,-0.00,-0.00,1.00,0.00,1.00 -413,-177.60,-0.00,1.00,0.00,1.00 -414,4.80,4.80,1.00,0.00,1.00 -415,-168.00,-4.80,1.00,0.00,1.00 -416,14.40,4.80,1.00,0.00,1.00 -417,-158.40,-9.60,1.00,0.00,1.00 -418,24.00,9.60,1.00,0.00,1.00 -419,-148.80,-9.60,1.00,0.00,1.00 -420,33.60,14.40,1.00,0.00,1.00 -421,-139.20,-14.40,1.00,0.00,1.00 -422,43.20,14.40,1.00,0.00,1.00 -423,-129.60,-14.40,1.00,0.00,1.00 -424,52.80,19.20,1.00,0.00,1.00 -425,-120.00,-19.20,1.00,0.00,1.00 -426,62.40,19.20,1.00,0.00,1.00 -427,-110.40,-19.20,1.00,0.00,1.00 -428,72.00,19.20,1.00,0.00,1.00 -429,-100.80,-19.20,1.00,0.00,1.00 -430,81.60,19.20,1.00,0.00,1.00 -431,-91.20,-19.20,1.00,0.00,1.00 -432,96.00,19.20,1.00,0.00,1.00 -433,-81.60,-19.20,1.00,0.00,1.00 -434,105.60,19.20,1.00,0.00,1.00 -435,-72.00,-19.20,1.00,0.00,1.00 -436,115.20,19.20,1.00,0.00,1.00 -437,-62.40,-19.20,1.00,0.00,1.00 -438,124.80,19.20,1.00,0.00,1.00 -439,-52.80,-14.40,1.00,0.00,1.00 -440,134.40,14.40,1.00,0.00,1.00 -441,-43.20,-14.40,1.00,0.00,1.00 -442,144.00,14.40,1.00,0.00,1.00 -443,-33.60,-9.60,1.00,0.00,1.00 -444,153.60,9.60,1.00,0.00,1.00 -445,-24.00,-9.60,1.00,0.00,1.00 -446,163.20,4.80,1.00,0.00,1.00 -447,-14.40,-4.80,1.00,0.00,1.00 -448,172.80,4.80,1.00,0.00,1.00 -449,-4.80,-0.00,1.00,0.00,1.00 -450,0.00,0.00,1.00,0.00,1.00 -451,-177.60,-0.00,1.00,0.00,1.00 -452,9.60,4.80,1.00,0.00,1.00 -453,-168.00,-4.80,1.00,0.00,1.00 -454,19.20,4.80,1.00,0.00,1.00 -455,-158.40,-4.80,1.00,0.00,1.00 -456,28.80,9.60,1.00,0.00,1.00 -457,-148.80,-9.60,1.00,0.00,1.00 -458,38.40,9.60,1.00,0.00,1.00 -459,-139.20,-9.60,1.00,0.00,1.00 -460,48.00,9.60,1.00,0.00,1.00 -461,-129.60,-14.40,1.00,0.00,1.00 -462,57.60,14.40,1.00,0.00,1.00 -463,-120.00,-14.40,1.00,0.00,1.00 -464,67.20,14.40,1.00,0.00,1.00 -465,-110.40,-14.40,1.00,0.00,1.00 -466,76.80,14.40,1.00,0.00,1.00 -467,-100.80,-14.40,1.00,0.00,1.00 -468,86.40,14.40,1.00,0.00,1.00 -469,-86.40,-14.40,1.00,0.00,1.00 -470,96.00,14.40,1.00,0.00,1.00 -471,-76.80,-14.40,1.00,0.00,1.00 -472,105.60,14.40,1.00,0.00,1.00 -473,-67.20,-14.40,1.00,0.00,1.00 -474,115.20,14.40,1.00,0.00,1.00 -475,-57.60,-14.40,1.00,0.00,1.00 -476,124.80,14.40,1.00,0.00,1.00 -477,-48.00,-14.40,1.00,0.00,1.00 -478,134.40,9.60,1.00,0.00,1.00 -479,-38.40,-9.60,1.00,0.00,1.00 -480,144.00,9.60,1.00,0.00,1.00 -481,-28.80,-9.60,1.00,0.00,1.00 -482,153.60,4.80,1.00,0.00,1.00 -483,-19.20,-4.80,1.00,0.00,1.00 -484,163.20,4.80,1.00,0.00,1.00 -485,-9.60,-4.80,1.00,0.00,1.00 -486,172.80,0.00,1.00,0.00,1.00 -487,-0.00,-0.00,1.00,0.00,1.00 -488,-177.60,-0.00,1.00,0.00,1.00 -489,4.80,0.00,1.00,0.00,1.00 -490,-168.00,-4.80,1.00,0.00,1.00 -491,14.40,4.80,1.00,0.00,1.00 -492,-158.40,-4.80,1.00,0.00,1.00 -493,24.00,4.80,1.00,0.00,1.00 -494,-148.80,-9.60,1.00,0.00,1.00 -495,33.60,9.60,1.00,0.00,1.00 -496,-139.20,-9.60,1.00,0.00,1.00 -497,43.20,9.60,1.00,0.00,1.00 -498,-129.60,-14.40,1.00,0.00,1.00 -499,52.80,14.40,1.00,0.00,1.00 -500,-120.00,-14.40,1.00,0.00,1.00 -501,62.40,14.40,1.00,0.00,1.00 -502,-110.40,-14.40,1.00,0.00,1.00 -503,72.00,14.40,1.00,0.00,1.00 -504,-100.80,-14.40,1.00,0.00,1.00 -505,81.60,14.40,1.00,0.00,1.00 -506,-91.20,-14.40,1.00,0.00,1.00 -507,96.00,14.40,1.00,0.00,1.00 -508,-81.60,-14.40,1.00,0.00,1.00 -509,105.60,14.40,1.00,0.00,1.00 -510,-72.00,-14.40,1.00,0.00,1.00 -511,115.20,14.40,1.00,0.00,1.00 -512,-62.40,-14.40,1.00,0.00,1.00 -513,124.80,14.40,1.00,0.00,1.00 -514,-52.80,-14.40,1.00,0.00,1.00 -515,134.40,9.60,1.00,0.00,1.00 -516,-43.20,-9.60,1.00,0.00,1.00 -517,144.00,9.60,1.00,0.00,1.00 -518,-33.60,-9.60,1.00,0.00,1.00 -519,153.60,9.60,1.00,0.00,1.00 -520,-24.00,-4.80,1.00,0.00,1.00 -521,163.20,4.80,1.00,0.00,1.00 -522,-14.40,-4.80,1.00,0.00,1.00 -523,172.80,4.80,1.00,0.00,1.00 -524,-4.80,-0.00,1.00,0.00,1.00 -525,0.00,0.00,1.00,0.00,1.00 -526,-177.60,-0.00,1.00,0.00,1.00 -527,9.60,0.00,1.00,0.00,1.00 -528,-168.00,-4.80,1.00,0.00,1.00 -529,19.20,4.80,1.00,0.00,1.00 -530,-158.40,-4.80,1.00,0.00,1.00 -531,28.80,4.80,1.00,0.00,1.00 -532,-148.80,-4.80,1.00,0.00,1.00 -533,38.40,4.80,1.00,0.00,1.00 -534,-139.20,-9.60,1.00,0.00,1.00 -535,48.00,9.60,1.00,0.00,1.00 -536,-129.60,-9.60,1.00,0.00,1.00 -537,57.60,9.60,1.00,0.00,1.00 -538,-120.00,-9.60,1.00,0.00,1.00 -539,67.20,9.60,1.00,0.00,1.00 -540,-110.40,-9.60,1.00,0.00,1.00 -541,76.80,9.60,1.00,0.00,1.00 -542,-100.80,-9.60,1.00,0.00,1.00 -543,86.40,9.60,1.00,0.00,1.00 -544,-86.40,-9.60,1.00,0.00,1.00 -545,96.00,9.60,1.00,0.00,1.00 -546,-76.80,-9.60,1.00,0.00,1.00 -547,105.60,9.60,1.00,0.00,1.00 -548,-67.20,-9.60,1.00,0.00,1.00 -549,115.20,9.60,1.00,0.00,1.00 -550,-57.60,-9.60,1.00,0.00,1.00 -551,124.80,9.60,1.00,0.00,1.00 -552,-48.00,-9.60,1.00,0.00,1.00 -553,134.40,9.60,1.00,0.00,1.00 -554,-38.40,-9.60,1.00,0.00,1.00 -555,144.00,4.80,1.00,0.00,1.00 -556,-28.80,-4.80,1.00,0.00,1.00 -557,153.60,4.80,1.00,0.00,1.00 -558,-19.20,-4.80,1.00,0.00,1.00 -559,163.20,4.80,1.00,0.00,1.00 -560,-9.60,-0.00,1.00,0.00,1.00 -561,172.80,0.00,1.00,0.00,1.00 -562,-0.00,-0.00,1.00,0.00,1.00 -563,-177.60,-0.00,1.00,0.00,1.00 -564,4.80,0.00,1.00,0.00,1.00 -565,-168.00,-0.00,1.00,0.00,1.00 -566,14.40,4.80,1.00,0.00,1.00 -567,-158.40,-4.80,1.00,0.00,1.00 -568,24.00,4.80,1.00,0.00,1.00 -569,-148.80,-4.80,1.00,0.00,1.00 -570,33.60,4.80,1.00,0.00,1.00 -571,-139.20,-9.60,1.00,0.00,1.00 -572,43.20,9.60,1.00,0.00,1.00 -573,-129.60,-9.60,1.00,0.00,1.00 -574,52.80,9.60,1.00,0.00,1.00 -575,-120.00,-9.60,1.00,0.00,1.00 -576,62.40,9.60,1.00,0.00,1.00 -577,-110.40,-9.60,1.00,0.00,1.00 -578,72.00,9.60,1.00,0.00,1.00 -579,-100.80,-9.60,1.00,0.00,1.00 -580,81.60,9.60,1.00,0.00,1.00 -581,-91.20,-9.60,1.00,0.00,1.00 -582,96.00,9.60,1.00,0.00,1.00 -583,-81.60,-9.60,1.00,0.00,1.00 -584,105.60,9.60,1.00,0.00,1.00 -585,-72.00,-9.60,1.00,0.00,1.00 -586,115.20,9.60,1.00,0.00,1.00 -587,-62.40,-9.60,1.00,0.00,1.00 -588,124.80,9.60,1.00,0.00,1.00 -589,-52.80,-9.60,1.00,0.00,1.00 -590,134.40,9.60,1.00,0.00,1.00 -591,-43.20,-9.60,1.00,0.00,1.00 -592,144.00,4.80,1.00,0.00,1.00 -593,-33.60,-4.80,1.00,0.00,1.00 -594,153.60,4.80,1.00,0.00,1.00 -595,-24.00,-4.80,1.00,0.00,1.00 -596,163.20,4.80,1.00,0.00,1.00 -597,-14.40,-4.80,1.00,0.00,1.00 -598,172.80,0.00,1.00,0.00,1.00 -599,-4.80,-0.00,1.00,0.00,1.00 -600,0.00,0.00,1.00,0.00,1.00 -601,-177.60,-0.00,1.00,0.00,1.00 -602,9.60,0.00,1.00,0.00,1.00 -603,-168.00,-0.00,1.00,0.00,1.00 -604,19.20,0.00,1.00,0.00,1.00 -605,-158.40,-4.80,1.00,0.00,1.00 -606,28.80,4.80,1.00,0.00,1.00 -607,-148.80,-4.80,1.00,0.00,1.00 -608,38.40,4.80,1.00,0.00,1.00 -609,-139.20,-4.80,1.00,0.00,1.00 -610,48.00,4.80,1.00,0.00,1.00 -611,-129.60,-4.80,1.00,0.00,1.00 -612,57.60,4.80,1.00,0.00,1.00 -613,-120.00,-4.80,1.00,0.00,1.00 -614,67.20,4.80,1.00,0.00,1.00 -615,-110.40,-4.80,1.00,0.00,1.00 -616,76.80,4.80,1.00,0.00,1.00 -617,-100.80,-4.80,1.00,0.00,1.00 -618,86.40,4.80,1.00,0.00,1.00 -619,-86.40,-4.80,1.00,0.00,1.00 -620,96.00,4.80,1.00,0.00,1.00 -621,-76.80,-4.80,1.00,0.00,1.00 -622,105.60,4.80,1.00,0.00,1.00 -623,-67.20,-4.80,1.00,0.00,1.00 -624,115.20,4.80,1.00,0.00,1.00 -625,-57.60,-4.80,1.00,0.00,1.00 -626,124.80,4.80,1.00,0.00,1.00 -627,-48.00,-4.80,1.00,0.00,1.00 -628,134.40,4.80,1.00,0.00,1.00 -629,-38.40,-4.80,1.00,0.00,1.00 -630,144.00,4.80,1.00,0.00,1.00 -631,-28.80,-4.80,1.00,0.00,1.00 -632,153.60,4.80,1.00,0.00,1.00 -633,-19.20,-4.80,1.00,0.00,1.00 -634,163.20,0.00,1.00,0.00,1.00 -635,-9.60,-0.00,1.00,0.00,1.00 -636,172.80,0.00,1.00,0.00,1.00 -637,-0.00,-0.00,1.00,0.00,1.00 -638,-177.60,-0.00,1.00,0.00,1.00 -639,4.80,0.00,1.00,0.00,1.00 -640,-168.00,-0.00,1.00,0.00,1.00 -641,14.40,0.00,1.00,0.00,1.00 -642,-158.40,-4.80,1.00,0.00,1.00 -643,24.00,4.80,1.00,0.00,1.00 -644,-148.80,-4.80,1.00,0.00,1.00 -645,33.60,4.80,1.00,0.00,1.00 -646,-139.20,-4.80,1.00,0.00,1.00 -647,43.20,4.80,1.00,0.00,1.00 -648,-129.60,-4.80,1.00,0.00,1.00 -649,52.80,4.80,1.00,0.00,1.00 -650,-120.00,-4.80,1.00,0.00,1.00 -651,62.40,4.80,1.00,0.00,1.00 -652,-110.40,-4.80,1.00,0.00,1.00 -653,72.00,4.80,1.00,0.00,1.00 -654,-100.80,-4.80,1.00,0.00,1.00 -655,81.60,4.80,1.00,0.00,1.00 -656,-91.20,-4.80,1.00,0.00,1.00 -657,96.00,4.80,1.00,0.00,1.00 -658,-81.60,-4.80,1.00,0.00,1.00 -659,105.60,4.80,1.00,0.00,1.00 -660,-72.00,-4.80,1.00,0.00,1.00 -661,115.20,4.80,1.00,0.00,1.00 -662,-62.40,-4.80,1.00,0.00,1.00 -663,124.80,4.80,1.00,0.00,1.00 -664,-52.80,-4.80,1.00,0.00,1.00 -665,134.40,4.80,1.00,0.00,1.00 -666,-43.20,-4.80,1.00,0.00,1.00 -667,144.00,4.80,1.00,0.00,1.00 -668,-33.60,-4.80,1.00,0.00,1.00 -669,153.60,4.80,1.00,0.00,1.00 -670,-24.00,-4.80,1.00,0.00,1.00 -671,163.20,0.00,1.00,0.00,1.00 -672,-14.40,-0.00,1.00,0.00,1.00 -673,172.80,0.00,1.00,0.00,1.00 -674,-4.80,-0.00,1.00,0.00,1.00 -675,0.00,0.00,1.00,0.00,1.00 -676,-177.60,-0.00,1.00,0.00,1.00 -677,9.60,0.00,1.00,0.00,1.00 -678,-168.00,-0.00,1.00,0.00,1.00 -679,19.20,0.00,1.00,0.00,1.00 -680,-158.40,-0.00,1.00,0.00,1.00 -681,28.80,0.00,1.00,0.00,1.00 -682,-148.80,-0.00,1.00,0.00,1.00 -683,38.40,0.00,1.00,0.00,1.00 -684,-139.20,-0.00,1.00,0.00,1.00 -685,48.00,0.00,1.00,0.00,1.00 -686,-129.60,-0.00,1.00,0.00,1.00 -687,57.60,0.00,1.00,0.00,1.00 -688,-120.00,-0.00,1.00,0.00,1.00 -689,67.20,0.00,1.00,0.00,1.00 -690,-110.40,-0.00,1.00,0.00,1.00 -691,76.80,0.00,1.00,0.00,1.00 -692,-100.80,-0.00,1.00,0.00,1.00 -693,86.40,0.00,1.00,0.00,1.00 -694,-86.40,-0.00,1.00,0.00,1.00 -695,96.00,0.00,1.00,0.00,1.00 -696,-76.80,-0.00,1.00,0.00,1.00 -697,105.60,0.00,1.00,0.00,1.00 -698,-67.20,-0.00,1.00,0.00,1.00 -699,115.20,0.00,1.00,0.00,1.00 -700,-57.60,-0.00,1.00,0.00,1.00 -701,124.80,0.00,1.00,0.00,1.00 -702,-48.00,-0.00,1.00,0.00,1.00 -703,134.40,0.00,1.00,0.00,1.00 -704,-38.40,-0.00,1.00,0.00,1.00 -705,144.00,0.00,1.00,0.00,1.00 -706,-28.80,-0.00,1.00,0.00,1.00 -707,153.60,0.00,1.00,0.00,1.00 -708,-19.20,-0.00,1.00,0.00,1.00 -709,163.20,0.00,1.00,0.00,1.00 -710,-9.60,-0.00,1.00,0.00,1.00 -711,172.80,0.00,1.00,0.00,1.00 -712,-0.00,-0.00,1.00,0.00,1.00 -713,-177.60,-0.00,1.00,0.00,1.00 -714,4.80,0.00,1.00,0.00,1.00 -715,-168.00,-0.00,1.00,0.00,1.00 -716,14.40,0.00,1.00,0.00,1.00 -717,-158.40,-0.00,1.00,0.00,1.00 -718,24.00,0.00,1.00,0.00,1.00 -719,-148.80,-0.00,1.00,0.00,1.00 -720,33.60,0.00,1.00,0.00,1.00 -721,-139.20,-0.00,1.00,0.00,1.00 -722,43.20,0.00,1.00,0.00,1.00 -723,-129.60,-0.00,1.00,0.00,1.00 -724,52.80,0.00,1.00,0.00,1.00 -725,-120.00,-0.00,1.00,0.00,1.00 -726,62.40,0.00,1.00,0.00,1.00 -727,-110.40,-0.00,1.00,0.00,1.00 -728,72.00,0.00,1.00,0.00,1.00 -729,-100.80,-0.00,1.00,0.00,1.00 -730,81.60,0.00,1.00,0.00,1.00 -731,-91.20,-0.00,1.00,0.00,1.00 -732,96.00,0.00,1.00,0.00,1.00 -733,-81.60,-0.00,1.00,0.00,1.00 -734,105.60,0.00,1.00,0.00,1.00 -735,-72.00,-0.00,1.00,0.00,1.00 -736,115.20,0.00,1.00,0.00,1.00 -737,-62.40,-0.00,1.00,0.00,1.00 -738,124.80,0.00,1.00,0.00,1.00 -739,-52.80,-0.00,1.00,0.00,1.00 -740,134.40,0.00,1.00,0.00,1.00 -741,-43.20,-0.00,1.00,0.00,1.00 -742,144.00,0.00,1.00,0.00,1.00 -743,-33.60,-0.00,1.00,0.00,1.00 -744,153.60,0.00,1.00,0.00,1.00 -745,-24.00,-0.00,1.00,0.00,1.00 -746,163.20,0.00,1.00,0.00,1.00 -747,-14.40,-0.00,1.00,0.00,1.00 -748,172.80,0.00,1.00,0.00,1.00 -749,-4.80,-0.00,1.00,0.00,1.00 -750,0.00,0.00,1.00,0.00,1.00 -751,-177.60,0.00,1.00,0.00,1.00 -752,9.60,-0.00,1.00,0.00,1.00 -753,-168.00,0.00,1.00,0.00,1.00 -754,19.20,-0.00,1.00,0.00,1.00 -755,-158.40,0.00,1.00,0.00,1.00 -756,28.80,-0.00,1.00,0.00,1.00 -757,-148.80,0.00,1.00,0.00,1.00 -758,38.40,-0.00,1.00,0.00,1.00 -759,-139.20,0.00,1.00,0.00,1.00 -760,48.00,-0.00,1.00,0.00,1.00 -761,-129.60,0.00,1.00,0.00,1.00 -762,57.60,-4.80,1.00,0.00,1.00 -763,-120.00,4.80,1.00,0.00,1.00 -764,67.20,-4.80,1.00,0.00,1.00 -765,-110.40,4.80,1.00,0.00,1.00 -766,76.80,-4.80,1.00,0.00,1.00 -767,-100.80,4.80,1.00,0.00,1.00 -768,86.40,-4.80,1.00,0.00,1.00 -769,-86.40,4.80,1.00,0.00,1.00 -770,96.00,-4.80,1.00,0.00,1.00 -771,-76.80,4.80,1.00,0.00,1.00 -772,105.60,-4.80,1.00,0.00,1.00 -773,-67.20,4.80,1.00,0.00,1.00 -774,115.20,-4.80,1.00,0.00,1.00 -775,-57.60,4.80,1.00,0.00,1.00 -776,124.80,-4.80,1.00,0.00,1.00 -777,-48.00,0.00,1.00,0.00,1.00 -778,134.40,-0.00,1.00,0.00,1.00 -779,-38.40,0.00,1.00,0.00,1.00 -780,144.00,-0.00,1.00,0.00,1.00 -781,-28.80,0.00,1.00,0.00,1.00 -782,153.60,-0.00,1.00,0.00,1.00 -783,-19.20,0.00,1.00,0.00,1.00 -784,163.20,-0.00,1.00,0.00,1.00 -785,-9.60,0.00,1.00,0.00,1.00 -786,172.80,-0.00,1.00,0.00,1.00 -787,-0.00,0.00,1.00,0.00,1.00 -788,-177.60,0.00,1.00,0.00,1.00 -789,4.80,-0.00,1.00,0.00,1.00 -790,-168.00,0.00,1.00,0.00,1.00 -791,14.40,-0.00,1.00,0.00,1.00 -792,-158.40,0.00,1.00,0.00,1.00 -793,24.00,-0.00,1.00,0.00,1.00 -794,-148.80,0.00,1.00,0.00,1.00 -795,33.60,-0.00,1.00,0.00,1.00 -796,-139.20,0.00,1.00,0.00,1.00 -797,43.20,-0.00,1.00,0.00,1.00 -798,-129.60,0.00,1.00,0.00,1.00 -799,52.80,-4.80,1.00,0.00,1.00 -800,-120.00,4.80,1.00,0.00,1.00 -801,62.40,-4.80,1.00,0.00,1.00 -802,-110.40,4.80,1.00,0.00,1.00 -803,72.00,-4.80,1.00,0.00,1.00 -804,-100.80,4.80,1.00,0.00,1.00 -805,81.60,-4.80,1.00,0.00,1.00 -806,-91.20,4.80,1.00,0.00,1.00 -807,96.00,-4.80,1.00,0.00,1.00 -808,-81.60,4.80,1.00,0.00,1.00 -809,105.60,-4.80,1.00,0.00,1.00 -810,-72.00,4.80,1.00,0.00,1.00 -811,115.20,-4.80,1.00,0.00,1.00 -812,-62.40,4.80,1.00,0.00,1.00 -813,124.80,-4.80,1.00,0.00,1.00 -814,-52.80,0.00,1.00,0.00,1.00 -815,134.40,-0.00,1.00,0.00,1.00 -816,-43.20,0.00,1.00,0.00,1.00 -817,144.00,-0.00,1.00,0.00,1.00 -818,-33.60,0.00,1.00,0.00,1.00 -819,153.60,-0.00,1.00,0.00,1.00 -820,-24.00,0.00,1.00,0.00,1.00 -821,163.20,-0.00,1.00,0.00,1.00 -822,-14.40,0.00,1.00,0.00,1.00 -823,172.80,-0.00,1.00,0.00,1.00 -824,-4.80,0.00,1.00,0.00,1.00 -825,0.00,0.00,1.00,0.00,1.00 -826,-177.60,0.00,1.00,0.00,1.00 -827,9.60,-0.00,1.00,0.00,1.00 -828,-168.00,0.00,1.00,0.00,1.00 -829,19.20,-4.80,1.00,0.00,1.00 -830,-158.40,4.80,1.00,0.00,1.00 -831,28.80,-4.80,1.00,0.00,1.00 -832,-148.80,4.80,1.00,0.00,1.00 -833,38.40,-4.80,1.00,0.00,1.00 -834,-139.20,4.80,1.00,0.00,1.00 -835,48.00,-4.80,1.00,0.00,1.00 -836,-129.60,4.80,1.00,0.00,1.00 -837,57.60,-4.80,1.00,0.00,1.00 -838,-120.00,4.80,1.00,0.00,1.00 -839,67.20,-4.80,1.00,0.00,1.00 -840,-110.40,9.60,1.00,0.00,1.00 -841,76.80,-9.60,1.00,0.00,1.00 -842,-100.80,9.60,1.00,0.00,1.00 -843,86.40,-9.60,1.00,0.00,1.00 -844,-86.40,9.60,1.00,0.00,1.00 -845,96.00,-9.60,1.00,0.00,1.00 -846,-76.80,9.60,1.00,0.00,1.00 -847,105.60,-9.60,1.00,0.00,1.00 -848,-67.20,9.60,1.00,0.00,1.00 -849,115.20,-4.80,1.00,0.00,1.00 -850,-57.60,4.80,1.00,0.00,1.00 -851,124.80,-4.80,1.00,0.00,1.00 -852,-48.00,4.80,1.00,0.00,1.00 -853,134.40,-4.80,1.00,0.00,1.00 -854,-38.40,4.80,1.00,0.00,1.00 -855,144.00,-4.80,1.00,0.00,1.00 -856,-28.80,4.80,1.00,0.00,1.00 -857,153.60,-4.80,1.00,0.00,1.00 -858,-19.20,4.80,1.00,0.00,1.00 -859,163.20,-0.00,1.00,0.00,1.00 -860,-9.60,0.00,1.00,0.00,1.00 -861,172.80,-0.00,1.00,0.00,1.00 -862,-0.00,0.00,1.00,0.00,1.00 -863,-177.60,0.00,1.00,0.00,1.00 -864,4.80,-0.00,1.00,0.00,1.00 -865,-168.00,0.00,1.00,0.00,1.00 -866,14.40,-0.00,1.00,0.00,1.00 -867,-158.40,4.80,1.00,0.00,1.00 -868,24.00,-4.80,1.00,0.00,1.00 -869,-148.80,4.80,1.00,0.00,1.00 -870,33.60,-4.80,1.00,0.00,1.00 -871,-139.20,4.80,1.00,0.00,1.00 -872,43.20,-4.80,1.00,0.00,1.00 -873,-129.60,4.80,1.00,0.00,1.00 -874,52.80,-4.80,1.00,0.00,1.00 -875,-120.00,4.80,1.00,0.00,1.00 -876,62.40,-4.80,1.00,0.00,1.00 -877,-110.40,9.60,1.00,0.00,1.00 -878,72.00,-9.60,1.00,0.00,1.00 -879,-100.80,9.60,1.00,0.00,1.00 -880,81.60,-9.60,1.00,0.00,1.00 -881,-91.20,9.60,1.00,0.00,1.00 -882,96.00,-9.60,1.00,0.00,1.00 -883,-81.60,9.60,1.00,0.00,1.00 -884,105.60,-9.60,1.00,0.00,1.00 -885,-72.00,9.60,1.00,0.00,1.00 -886,115.20,-4.80,1.00,0.00,1.00 -887,-62.40,4.80,1.00,0.00,1.00 -888,124.80,-4.80,1.00,0.00,1.00 -889,-52.80,4.80,1.00,0.00,1.00 -890,134.40,-4.80,1.00,0.00,1.00 -891,-43.20,4.80,1.00,0.00,1.00 -892,144.00,-4.80,1.00,0.00,1.00 -893,-33.60,4.80,1.00,0.00,1.00 -894,153.60,-4.80,1.00,0.00,1.00 -895,-24.00,4.80,1.00,0.00,1.00 -896,163.20,-4.80,1.00,0.00,1.00 -897,-14.40,0.00,1.00,0.00,1.00 -898,172.80,-0.00,1.00,0.00,1.00 -899,-4.80,0.00,1.00,0.00,1.00 -900,0.00,0.00,1.00,0.00,1.00 -901,-177.60,0.00,1.00,0.00,1.00 -902,9.60,-0.00,1.00,0.00,1.00 -903,-168.00,4.80,1.00,0.00,1.00 -904,19.20,-4.80,1.00,0.00,1.00 -905,-158.40,4.80,1.00,0.00,1.00 -906,28.80,-4.80,1.00,0.00,1.00 -907,-148.80,4.80,1.00,0.00,1.00 -908,38.40,-9.60,1.00,0.00,1.00 -909,-139.20,9.60,1.00,0.00,1.00 -910,48.00,-9.60,1.00,0.00,1.00 -911,-129.60,9.60,1.00,0.00,1.00 -912,57.60,-9.60,1.00,0.00,1.00 -913,-120.00,9.60,1.00,0.00,1.00 -914,67.20,-9.60,1.00,0.00,1.00 -915,-110.40,9.60,1.00,0.00,1.00 -916,76.80,-14.40,1.00,0.00,1.00 -917,-100.80,14.40,1.00,0.00,1.00 -918,86.40,-14.40,1.00,0.00,1.00 -919,-86.40,14.40,1.00,0.00,1.00 -920,96.00,-14.40,1.00,0.00,1.00 -921,-76.80,14.40,1.00,0.00,1.00 -922,105.60,-14.40,1.00,0.00,1.00 -923,-67.20,9.60,1.00,0.00,1.00 -924,115.20,-9.60,1.00,0.00,1.00 -925,-57.60,9.60,1.00,0.00,1.00 -926,124.80,-9.60,1.00,0.00,1.00 -927,-48.00,9.60,1.00,0.00,1.00 -928,134.40,-9.60,1.00,0.00,1.00 -929,-38.40,9.60,1.00,0.00,1.00 -930,144.00,-9.60,1.00,0.00,1.00 -931,-28.80,4.80,1.00,0.00,1.00 -932,153.60,-4.80,1.00,0.00,1.00 -933,-19.20,4.80,1.00,0.00,1.00 -934,163.20,-4.80,1.00,0.00,1.00 -935,-9.60,4.80,1.00,0.00,1.00 -936,172.80,-0.00,1.00,0.00,1.00 -937,-0.00,0.00,1.00,0.00,1.00 -938,-177.60,0.00,1.00,0.00,1.00 -939,4.80,-0.00,1.00,0.00,1.00 -940,-168.00,4.80,1.00,0.00,1.00 -941,14.40,-4.80,1.00,0.00,1.00 -942,-158.40,4.80,1.00,0.00,1.00 -943,24.00,-4.80,1.00,0.00,1.00 -944,-148.80,4.80,1.00,0.00,1.00 -945,33.60,-9.60,1.00,0.00,1.00 -946,-139.20,9.60,1.00,0.00,1.00 -947,43.20,-9.60,1.00,0.00,1.00 -948,-129.60,9.60,1.00,0.00,1.00 -949,52.80,-9.60,1.00,0.00,1.00 -950,-120.00,9.60,1.00,0.00,1.00 -951,62.40,-9.60,1.00,0.00,1.00 -952,-110.40,9.60,1.00,0.00,1.00 -953,72.00,-14.40,1.00,0.00,1.00 -954,-100.80,14.40,1.00,0.00,1.00 -955,81.60,-14.40,1.00,0.00,1.00 -956,-91.20,14.40,1.00,0.00,1.00 -957,96.00,-14.40,1.00,0.00,1.00 -958,-81.60,14.40,1.00,0.00,1.00 -959,105.60,-14.40,1.00,0.00,1.00 -960,-72.00,9.60,1.00,0.00,1.00 -961,115.20,-9.60,1.00,0.00,1.00 -962,-62.40,9.60,1.00,0.00,1.00 -963,124.80,-9.60,1.00,0.00,1.00 -964,-52.80,9.60,1.00,0.00,1.00 -965,134.40,-9.60,1.00,0.00,1.00 -966,-43.20,9.60,1.00,0.00,1.00 -967,144.00,-9.60,1.00,0.00,1.00 -968,-33.60,4.80,1.00,0.00,1.00 -969,153.60,-4.80,1.00,0.00,1.00 -970,-24.00,4.80,1.00,0.00,1.00 -971,163.20,-4.80,1.00,0.00,1.00 -972,-14.40,4.80,1.00,0.00,1.00 -973,172.80,-0.00,1.00,0.00,1.00 -974,-4.80,0.00,1.00,0.00,1.00 -975,0.00,0.00,1.00,0.00,1.00 -976,-177.60,0.00,1.00,0.00,1.00 -977,9.60,-4.80,1.00,0.00,1.00 -978,-168.00,4.80,1.00,0.00,1.00 -979,19.20,-4.80,1.00,0.00,1.00 -980,-158.40,4.80,1.00,0.00,1.00 -981,28.80,-9.60,1.00,0.00,1.00 -982,-148.80,9.60,1.00,0.00,1.00 -983,38.40,-9.60,1.00,0.00,1.00 -984,-139.20,9.60,1.00,0.00,1.00 -985,48.00,-14.40,1.00,0.00,1.00 -986,-129.60,14.40,1.00,0.00,1.00 -987,57.60,-14.40,1.00,0.00,1.00 -988,-120.00,14.40,1.00,0.00,1.00 -989,67.20,-14.40,1.00,0.00,1.00 -990,-110.40,14.40,1.00,0.00,1.00 -991,76.80,-19.20,1.00,0.00,1.00 -992,-100.80,19.20,1.00,0.00,1.00 -993,86.40,-19.20,1.00,0.00,1.00 -994,-86.40,19.20,1.00,0.00,1.00 -995,96.00,-19.20,1.00,0.00,1.00 -996,-76.80,19.20,1.00,0.00,1.00 -997,105.60,-14.40,1.00,0.00,1.00 -998,-67.20,14.40,1.00,0.00,1.00 -999,115.20,-14.40,1.00,0.00,1.00 -1000,-57.60,14.40,1.00,0.00,1.00 -1001,124.80,-14.40,1.00,0.00,1.00 -1002,-48.00,14.40,1.00,0.00,1.00 -1003,134.40,-14.40,1.00,0.00,1.00 -1004,-38.40,9.60,1.00,0.00,1.00 -1005,144.00,-9.60,1.00,0.00,1.00 -1006,-28.80,9.60,1.00,0.00,1.00 -1007,153.60,-9.60,1.00,0.00,1.00 -1008,-19.20,4.80,1.00,0.00,1.00 -1009,163.20,-4.80,1.00,0.00,1.00 -1010,-9.60,4.80,1.00,0.00,1.00 -1011,172.80,-0.00,1.00,0.00,1.00 -1012,-0.00,0.00,1.00,0.00,1.00 -1013,-177.60,0.00,1.00,0.00,1.00 -1014,4.80,-0.00,1.00,0.00,1.00 -1015,-168.00,4.80,1.00,0.00,1.00 -1016,14.40,-4.80,1.00,0.00,1.00 -1017,-158.40,4.80,1.00,0.00,1.00 -1018,24.00,-9.60,1.00,0.00,1.00 -1019,-148.80,9.60,1.00,0.00,1.00 -1020,33.60,-9.60,1.00,0.00,1.00 -1021,-139.20,9.60,1.00,0.00,1.00 -1022,43.20,-14.40,1.00,0.00,1.00 -1023,-129.60,14.40,1.00,0.00,1.00 -1024,52.80,-14.40,1.00,0.00,1.00 -1025,-120.00,14.40,1.00,0.00,1.00 -1026,62.40,-14.40,1.00,0.00,1.00 -1027,-110.40,14.40,1.00,0.00,1.00 -1028,72.00,-14.40,1.00,0.00,1.00 -1029,-100.80,19.20,1.00,0.00,1.00 -1030,81.60,-19.20,1.00,0.00,1.00 -1031,-91.20,19.20,1.00,0.00,1.00 -1032,96.00,-19.20,1.00,0.00,1.00 -1033,-81.60,19.20,1.00,0.00,1.00 -1034,105.60,-19.20,1.00,0.00,1.00 -1035,-72.00,14.40,1.00,0.00,1.00 -1036,115.20,-14.40,1.00,0.00,1.00 -1037,-62.40,14.40,1.00,0.00,1.00 -1038,124.80,-14.40,1.00,0.00,1.00 -1039,-52.80,14.40,1.00,0.00,1.00 -1040,134.40,-14.40,1.00,0.00,1.00 -1041,-43.20,9.60,1.00,0.00,1.00 -1042,144.00,-9.60,1.00,0.00,1.00 -1043,-33.60,9.60,1.00,0.00,1.00 -1044,153.60,-9.60,1.00,0.00,1.00 -1045,-24.00,4.80,1.00,0.00,1.00 -1046,163.20,-4.80,1.00,0.00,1.00 -1047,-14.40,4.80,1.00,0.00,1.00 -1048,172.80,-4.80,1.00,0.00,1.00 -1049,-4.80,0.00,1.00,0.00,1.00 -1050,0.00,0.00,1.00,0.00,1.00 -1051,-177.60,0.00,1.00,0.00,1.00 -1052,9.60,-4.80,1.00,0.00,1.00 -1053,-168.00,4.80,1.00,0.00,1.00 -1054,19.20,-4.80,1.00,0.00,1.00 -1055,-158.40,9.60,1.00,0.00,1.00 -1056,28.80,-9.60,1.00,0.00,1.00 -1057,-148.80,14.40,1.00,0.00,1.00 -1058,38.40,-14.40,1.00,0.00,1.00 -1059,-139.20,14.40,1.00,0.00,1.00 -1060,48.00,-14.40,1.00,0.00,1.00 -1061,-129.60,19.20,1.00,0.00,1.00 -1062,57.60,-19.20,1.00,0.00,1.00 -1063,-120.00,19.20,1.00,0.00,1.00 -1064,67.20,-19.20,1.00,0.00,1.00 -1065,-110.40,19.20,1.00,0.00,1.00 -1066,76.80,-19.20,1.00,0.00,1.00 -1067,-100.80,24.00,1.00,0.00,1.00 -1068,86.40,-24.00,1.00,0.00,1.00 -1069,-86.40,24.00,1.00,0.00,1.00 -1070,96.00,-24.00,1.00,0.00,1.00 -1071,-76.80,24.00,1.00,0.00,1.00 -1072,105.60,-19.20,1.00,0.00,1.00 -1073,-67.20,19.20,1.00,0.00,1.00 -1074,115.20,-19.20,1.00,0.00,1.00 -1075,-57.60,19.20,1.00,0.00,1.00 -1076,124.80,-19.20,1.00,0.00,1.00 -1077,-48.00,19.20,1.00,0.00,1.00 -1078,134.40,-14.40,1.00,0.00,1.00 -1079,-38.40,14.40,1.00,0.00,1.00 -1080,144.00,-14.40,1.00,0.00,1.00 -1081,-28.80,9.60,1.00,0.00,1.00 -1082,153.60,-9.60,1.00,0.00,1.00 -1083,-19.20,9.60,1.00,0.00,1.00 -1084,163.20,-4.80,1.00,0.00,1.00 -1085,-9.60,4.80,1.00,0.00,1.00 -1086,172.80,-4.80,1.00,0.00,1.00 -1087,-0.00,0.00,1.00,0.00,1.00 -1088,-177.60,0.00,1.00,0.00,1.00 -1089,4.80,-4.80,1.00,0.00,1.00 -1090,-168.00,4.80,1.00,0.00,1.00 -1091,14.40,-4.80,1.00,0.00,1.00 -1092,-158.40,9.60,1.00,0.00,1.00 -1093,24.00,-9.60,1.00,0.00,1.00 -1094,-148.80,9.60,1.00,0.00,1.00 -1095,33.60,-14.40,1.00,0.00,1.00 -1096,-139.20,14.40,1.00,0.00,1.00 -1097,43.20,-14.40,1.00,0.00,1.00 -1098,-129.60,19.20,1.00,0.00,1.00 -1099,52.80,-19.20,1.00,0.00,1.00 -1100,-120.00,19.20,1.00,0.00,1.00 -1101,62.40,-19.20,1.00,0.00,1.00 -1102,-110.40,19.20,1.00,0.00,1.00 -1103,72.00,-19.20,1.00,0.00,1.00 -1104,-100.80,24.00,1.00,0.00,1.00 -1105,81.60,-24.00,1.00,0.00,1.00 -1106,-91.20,24.00,1.00,0.00,1.00 -1107,96.00,-24.00,1.00,0.00,1.00 -1108,-81.60,24.00,1.00,0.00,1.00 -1109,105.60,-19.20,1.00,0.00,1.00 -1110,-72.00,19.20,1.00,0.00,1.00 -1111,115.20,-19.20,1.00,0.00,1.00 -1112,-62.40,19.20,1.00,0.00,1.00 -1113,124.80,-19.20,1.00,0.00,1.00 -1114,-52.80,19.20,1.00,0.00,1.00 -1115,134.40,-14.40,1.00,0.00,1.00 -1116,-43.20,14.40,1.00,0.00,1.00 -1117,144.00,-14.40,1.00,0.00,1.00 -1118,-33.60,14.40,1.00,0.00,1.00 -1119,153.60,-9.60,1.00,0.00,1.00 -1120,-24.00,9.60,1.00,0.00,1.00 -1121,163.20,-4.80,1.00,0.00,1.00 -1122,-14.40,4.80,1.00,0.00,1.00 -1123,172.80,-4.80,1.00,0.00,1.00 -1124,-4.80,0.00,1.00,0.00,1.00 -1125,0.00,0.00,1.00,0.00,1.00 -1126,-177.60,0.00,1.00,0.00,1.00 -1127,9.60,-4.80,1.00,0.00,1.00 -1128,-168.00,4.80,1.00,0.00,1.00 -1129,19.20,-9.60,1.00,0.00,1.00 -1130,-158.40,9.60,1.00,0.00,1.00 -1131,24.00,-14.40,1.00,0.00,1.00 -1132,-148.80,14.40,1.00,0.00,1.00 -1133,33.60,-14.40,1.00,0.00,1.00 -1134,-139.20,19.20,1.00,0.00,1.00 -1135,43.20,-19.20,1.00,0.00,1.00 -1136,-129.60,19.20,1.00,0.00,1.00 -1137,52.80,-24.00,1.00,0.00,1.00 -1138,-120.00,24.00,1.00,0.00,1.00 -1139,62.40,-24.00,1.00,0.00,1.00 -1140,-110.40,24.00,1.00,0.00,1.00 -1141,76.80,-24.00,1.00,0.00,1.00 -1142,-100.80,28.80,1.00,0.00,1.00 -1143,86.40,-28.80,1.00,0.00,1.00 -1144,-86.40,28.80,1.00,0.00,1.00 -1145,96.00,-28.80,1.00,0.00,1.00 -1146,-76.80,28.80,1.00,0.00,1.00 -1147,105.60,-24.00,1.00,0.00,1.00 -1148,-67.20,24.00,1.00,0.00,1.00 -1149,120.00,-24.00,1.00,0.00,1.00 -1150,-57.60,24.00,1.00,0.00,1.00 -1151,129.60,-24.00,1.00,0.00,1.00 -1152,-48.00,19.20,1.00,0.00,1.00 -1153,139.20,-19.20,1.00,0.00,1.00 -1154,-38.40,19.20,1.00,0.00,1.00 -1155,148.80,-14.40,1.00,0.00,1.00 -1156,-28.80,14.40,1.00,0.00,1.00 -1157,158.40,-9.60,1.00,0.00,1.00 -1158,-19.20,9.60,1.00,0.00,1.00 -1159,163.20,-9.60,1.00,0.00,1.00 -1160,-9.60,4.80,1.00,0.00,1.00 -1161,172.80,-4.80,1.00,0.00,1.00 -1162,-0.00,0.00,1.00,0.00,1.00 -1163,-177.60,0.00,1.00,0.00,1.00 -1164,4.80,-4.80,1.00,0.00,1.00 -1165,-168.00,4.80,1.00,0.00,1.00 -1166,14.40,-9.60,1.00,0.00,1.00 -1167,-158.40,9.60,1.00,0.00,1.00 -1168,24.00,-9.60,1.00,0.00,1.00 -1169,-153.60,14.40,1.00,0.00,1.00 -1170,33.60,-14.40,1.00,0.00,1.00 -1171,-144.00,19.20,1.00,0.00,1.00 -1172,43.20,-19.20,1.00,0.00,1.00 -1173,-134.40,19.20,1.00,0.00,1.00 -1174,52.80,-24.00,1.00,0.00,1.00 -1175,-124.80,24.00,1.00,0.00,1.00 -1176,62.40,-24.00,1.00,0.00,1.00 -1177,-110.40,24.00,1.00,0.00,1.00 -1178,72.00,-24.00,1.00,0.00,1.00 -1179,-100.80,28.80,1.00,0.00,1.00 -1180,81.60,-28.80,1.00,0.00,1.00 -1181,-91.20,28.80,1.00,0.00,1.00 -1182,96.00,-28.80,1.00,0.00,1.00 -1183,-81.60,28.80,1.00,0.00,1.00 -1184,105.60,-24.00,1.00,0.00,1.00 -1185,-72.00,24.00,1.00,0.00,1.00 -1186,115.20,-24.00,1.00,0.00,1.00 -1187,-57.60,24.00,1.00,0.00,1.00 -1188,124.80,-24.00,1.00,0.00,1.00 -1189,-48.00,19.20,1.00,0.00,1.00 -1190,134.40,-19.20,1.00,0.00,1.00 -1191,-38.40,19.20,1.00,0.00,1.00 -1192,144.00,-14.40,1.00,0.00,1.00 -1193,-28.80,14.40,1.00,0.00,1.00 -1194,153.60,-14.40,1.00,0.00,1.00 -1195,-24.00,9.60,1.00,0.00,1.00 -1196,163.20,-9.60,1.00,0.00,1.00 -1197,-14.40,4.80,1.00,0.00,1.00 -1198,172.80,-4.80,1.00,0.00,1.00 -1199,-4.80,0.00,1.00,0.00,1.00 -1200,0.00,0.00,1.00,0.00,1.00 -1201,-177.60,4.80,1.00,0.00,1.00 -1202,9.60,-4.80,1.00,0.00,1.00 -1203,-168.00,9.60,1.00,0.00,1.00 -1204,14.40,-9.60,1.00,0.00,1.00 -1205,-158.40,14.40,1.00,0.00,1.00 -1206,24.00,-14.40,1.00,0.00,1.00 -1207,-148.80,19.20,1.00,0.00,1.00 -1208,33.60,-19.20,1.00,0.00,1.00 -1209,-139.20,19.20,1.00,0.00,1.00 -1210,43.20,-24.00,1.00,0.00,1.00 -1211,-129.60,24.00,1.00,0.00,1.00 -1212,52.80,-28.80,1.00,0.00,1.00 -1213,-120.00,28.80,1.00,0.00,1.00 -1214,62.40,-28.80,1.00,0.00,1.00 -1215,-110.40,28.80,1.00,0.00,1.00 -1216,76.80,-28.80,1.00,0.00,1.00 -1217,-100.80,33.60,1.00,0.00,1.00 -1218,86.40,-33.60,1.00,0.00,1.00 -1219,-86.40,33.60,1.00,0.00,1.00 -1220,96.00,-33.60,1.00,0.00,1.00 -1221,-76.80,28.80,1.00,0.00,1.00 -1222,110.40,-28.80,1.00,0.00,1.00 -1223,-67.20,28.80,1.00,0.00,1.00 -1224,120.00,-28.80,1.00,0.00,1.00 -1225,-57.60,28.80,1.00,0.00,1.00 -1226,129.60,-24.00,1.00,0.00,1.00 -1227,-48.00,24.00,1.00,0.00,1.00 -1228,139.20,-24.00,1.00,0.00,1.00 -1229,-38.40,19.20,1.00,0.00,1.00 -1230,148.80,-19.20,1.00,0.00,1.00 -1231,-28.80,14.40,1.00,0.00,1.00 -1232,158.40,-14.40,1.00,0.00,1.00 -1233,-19.20,9.60,1.00,0.00,1.00 -1234,168.00,-9.60,1.00,0.00,1.00 -1235,-9.60,4.80,1.00,0.00,1.00 -1236,172.80,-4.80,1.00,0.00,1.00 -1237,-0.00,0.00,1.00,0.00,1.00 -1238,-177.60,0.00,1.00,0.00,1.00 -1239,4.80,-4.80,1.00,0.00,1.00 -1240,-168.00,4.80,1.00,0.00,1.00 -1241,14.40,-9.60,1.00,0.00,1.00 -1242,-163.20,9.60,1.00,0.00,1.00 -1243,24.00,-14.40,1.00,0.00,1.00 -1244,-153.60,14.40,1.00,0.00,1.00 -1245,33.60,-19.20,1.00,0.00,1.00 -1246,-144.00,19.20,1.00,0.00,1.00 -1247,43.20,-24.00,1.00,0.00,1.00 -1248,-134.40,24.00,1.00,0.00,1.00 -1249,52.80,-24.00,1.00,0.00,1.00 -1250,-124.80,28.80,1.00,0.00,1.00 -1251,62.40,-28.80,1.00,0.00,1.00 -1252,-115.20,28.80,1.00,0.00,1.00 -1253,72.00,-28.80,1.00,0.00,1.00 -1254,-100.80,28.80,1.00,0.00,1.00 -1255,81.60,-33.60,1.00,0.00,1.00 -1256,-91.20,33.60,1.00,0.00,1.00 -1257,96.00,-33.60,1.00,0.00,1.00 -1258,-81.60,33.60,1.00,0.00,1.00 -1259,105.60,-28.80,1.00,0.00,1.00 -1260,-67.20,28.80,1.00,0.00,1.00 -1261,115.20,-28.80,1.00,0.00,1.00 -1262,-57.60,28.80,1.00,0.00,1.00 -1263,124.80,-28.80,1.00,0.00,1.00 -1264,-48.00,24.00,1.00,0.00,1.00 -1265,134.40,-24.00,1.00,0.00,1.00 -1266,-38.40,19.20,1.00,0.00,1.00 -1267,144.00,-19.20,1.00,0.00,1.00 -1268,-28.80,19.20,1.00,0.00,1.00 -1269,153.60,-14.40,1.00,0.00,1.00 -1270,-19.20,14.40,1.00,0.00,1.00 -1271,163.20,-9.60,1.00,0.00,1.00 -1272,-14.40,9.60,1.00,0.00,1.00 -1273,172.80,-4.80,1.00,0.00,1.00 -1274,-4.80,4.80,1.00,0.00,1.00 -1275,0.00,0.00,1.00,0.00,1.00 -1276,-177.60,4.80,1.00,0.00,1.00 -1277,9.60,-4.80,1.00,0.00,1.00 -1278,-168.00,9.60,1.00,0.00,1.00 -1279,14.40,-9.60,1.00,0.00,1.00 -1280,-158.40,14.40,1.00,0.00,1.00 -1281,24.00,-14.40,1.00,0.00,1.00 -1282,-153.60,19.20,1.00,0.00,1.00 -1283,33.60,-24.00,1.00,0.00,1.00 -1284,-144.00,24.00,1.00,0.00,1.00 -1285,43.20,-24.00,1.00,0.00,1.00 -1286,-134.40,28.80,1.00,0.00,1.00 -1287,52.80,-28.80,1.00,0.00,1.00 -1288,-124.80,33.60,1.00,0.00,1.00 -1289,62.40,-33.60,1.00,0.00,1.00 -1290,-110.40,33.60,1.00,0.00,1.00 -1291,72.00,-33.60,1.00,0.00,1.00 -1292,-100.80,38.40,1.00,0.00,1.00 -1293,86.40,-38.40,1.00,0.00,1.00 -1294,-86.40,38.40,1.00,0.00,1.00 -1295,96.00,-38.40,1.00,0.00,1.00 -1296,-76.80,33.60,1.00,0.00,1.00 -1297,110.40,-33.60,1.00,0.00,1.00 -1298,-67.20,33.60,1.00,0.00,1.00 -1299,120.00,-33.60,1.00,0.00,1.00 -1300,-52.80,28.80,1.00,0.00,1.00 -1301,129.60,-28.80,1.00,0.00,1.00 -1302,-43.20,28.80,1.00,0.00,1.00 -1303,139.20,-24.00,1.00,0.00,1.00 -1304,-33.60,24.00,1.00,0.00,1.00 -1305,148.80,-19.20,1.00,0.00,1.00 -1306,-24.00,19.20,1.00,0.00,1.00 -1307,158.40,-14.40,1.00,0.00,1.00 -1308,-19.20,14.40,1.00,0.00,1.00 -1309,168.00,-9.60,1.00,0.00,1.00 -1310,-9.60,4.80,1.00,0.00,1.00 -1311,172.80,-4.80,1.00,0.00,1.00 -1312,-0.00,0.00,1.00,0.00,1.00 -1313,-177.60,0.00,1.00,0.00,1.00 -1314,4.80,-4.80,1.00,0.00,1.00 -1315,-168.00,4.80,1.00,0.00,1.00 -1316,14.40,-9.60,1.00,0.00,1.00 -1317,-163.20,14.40,1.00,0.00,1.00 -1318,24.00,-14.40,1.00,0.00,1.00 -1319,-153.60,19.20,1.00,0.00,1.00 -1320,28.80,-19.20,1.00,0.00,1.00 -1321,-144.00,24.00,1.00,0.00,1.00 -1322,38.40,-24.00,1.00,0.00,1.00 -1323,-134.40,28.80,1.00,0.00,1.00 -1324,48.00,-28.80,1.00,0.00,1.00 -1325,-124.80,28.80,1.00,0.00,1.00 -1326,57.60,-33.60,1.00,0.00,1.00 -1327,-115.20,33.60,1.00,0.00,1.00 -1328,72.00,-33.60,1.00,0.00,1.00 -1329,-105.60,33.60,1.00,0.00,1.00 -1330,81.60,-38.40,1.00,0.00,1.00 -1331,-91.20,38.40,1.00,0.00,1.00 -1332,96.00,-38.40,1.00,0.00,1.00 -1333,-81.60,38.40,1.00,0.00,1.00 -1334,105.60,-33.60,1.00,0.00,1.00 -1335,-67.20,33.60,1.00,0.00,1.00 -1336,120.00,-33.60,1.00,0.00,1.00 -1337,-57.60,33.60,1.00,0.00,1.00 -1338,129.60,-28.80,1.00,0.00,1.00 -1339,-48.00,28.80,1.00,0.00,1.00 -1340,139.20,-24.00,1.00,0.00,1.00 -1341,-38.40,24.00,1.00,0.00,1.00 -1342,148.80,-24.00,1.00,0.00,1.00 -1343,-28.80,19.20,1.00,0.00,1.00 -1344,158.40,-14.40,1.00,0.00,1.00 -1345,-19.20,14.40,1.00,0.00,1.00 -1346,163.20,-9.60,1.00,0.00,1.00 -1347,-9.60,9.60,1.00,0.00,1.00 -1348,172.80,-4.80,1.00,0.00,1.00 -1349,-4.80,4.80,1.00,0.00,1.00 -1350,0.00,0.00,1.00,0.00,1.00 -1351,-177.60,4.80,1.00,0.00,1.00 -1352,9.60,-4.80,1.00,0.00,1.00 -1353,-168.00,9.60,1.00,0.00,1.00 -1354,14.40,-14.40,1.00,0.00,1.00 -1355,-163.20,14.40,1.00,0.00,1.00 -1356,24.00,-19.20,1.00,0.00,1.00 -1357,-153.60,19.20,1.00,0.00,1.00 -1358,28.80,-24.00,1.00,0.00,1.00 -1359,-144.00,28.80,1.00,0.00,1.00 -1360,38.40,-28.80,1.00,0.00,1.00 -1361,-134.40,33.60,1.00,0.00,1.00 -1362,48.00,-33.60,1.00,0.00,1.00 -1363,-124.80,33.60,1.00,0.00,1.00 -1364,62.40,-38.40,1.00,0.00,1.00 -1365,-115.20,38.40,1.00,0.00,1.00 -1366,72.00,-38.40,1.00,0.00,1.00 -1367,-100.80,43.20,1.00,0.00,1.00 -1368,86.40,-43.20,1.00,0.00,1.00 -1369,-86.40,43.20,1.00,0.00,1.00 -1370,96.00,-43.20,1.00,0.00,1.00 -1371,-76.80,38.40,1.00,0.00,1.00 -1372,110.40,-38.40,1.00,0.00,1.00 -1373,-62.40,38.40,1.00,0.00,1.00 -1374,120.00,-38.40,1.00,0.00,1.00 -1375,-52.80,33.60,1.00,0.00,1.00 -1376,134.40,-33.60,1.00,0.00,1.00 -1377,-43.20,28.80,1.00,0.00,1.00 -1378,144.00,-28.80,1.00,0.00,1.00 -1379,-33.60,24.00,1.00,0.00,1.00 -1380,153.60,-24.00,1.00,0.00,1.00 -1381,-24.00,19.20,1.00,0.00,1.00 -1382,158.40,-19.20,1.00,0.00,1.00 -1383,-14.40,14.40,1.00,0.00,1.00 -1384,168.00,-9.60,1.00,0.00,1.00 -1385,-9.60,9.60,1.00,0.00,1.00 -1386,172.80,-4.80,1.00,0.00,1.00 -1387,-0.00,0.00,1.00,0.00,1.00 -1388,-177.60,0.00,1.00,0.00,1.00 -1389,4.80,-4.80,1.00,0.00,1.00 -1390,-172.80,9.60,1.00,0.00,1.00 -1391,14.40,-9.60,1.00,0.00,1.00 -1392,-163.20,14.40,1.00,0.00,1.00 -1393,19.20,-19.20,1.00,0.00,1.00 -1394,-153.60,19.20,1.00,0.00,1.00 -1395,28.80,-24.00,1.00,0.00,1.00 -1396,-148.80,24.00,1.00,0.00,1.00 -1397,38.40,-28.80,1.00,0.00,1.00 -1398,-139.20,28.80,1.00,0.00,1.00 -1399,48.00,-33.60,1.00,0.00,1.00 -1400,-129.60,33.60,1.00,0.00,1.00 -1401,57.60,-38.40,1.00,0.00,1.00 -1402,-115.20,38.40,1.00,0.00,1.00 -1403,67.20,-38.40,1.00,0.00,1.00 -1404,-105.60,38.40,1.00,0.00,1.00 -1405,81.60,-43.20,1.00,0.00,1.00 -1406,-91.20,43.20,1.00,0.00,1.00 -1407,96.00,-43.20,1.00,0.00,1.00 -1408,-76.80,43.20,1.00,0.00,1.00 -1409,105.60,-38.40,1.00,0.00,1.00 -1410,-67.20,38.40,1.00,0.00,1.00 -1411,120.00,-38.40,1.00,0.00,1.00 -1412,-52.80,33.60,1.00,0.00,1.00 -1413,129.60,-33.60,1.00,0.00,1.00 -1414,-43.20,33.60,1.00,0.00,1.00 -1415,139.20,-28.80,1.00,0.00,1.00 -1416,-33.60,28.80,1.00,0.00,1.00 -1417,148.80,-24.00,1.00,0.00,1.00 -1418,-28.80,19.20,1.00,0.00,1.00 -1419,158.40,-19.20,1.00,0.00,1.00 -1420,-19.20,14.40,1.00,0.00,1.00 -1421,163.20,-14.40,1.00,0.00,1.00 -1422,-9.60,9.60,1.00,0.00,1.00 -1423,172.80,-4.80,1.00,0.00,1.00 -1424,-4.80,4.80,1.00,0.00,1.00 -1425,0.00,0.00,1.00,0.00,1.00 -1426,-177.60,4.80,1.00,0.00,1.00 -1427,4.80,-4.80,1.00,0.00,1.00 -1428,-168.00,9.60,1.00,0.00,1.00 -1429,14.40,-14.40,1.00,0.00,1.00 -1430,-163.20,19.20,1.00,0.00,1.00 -1431,19.20,-19.20,1.00,0.00,1.00 -1432,-153.60,24.00,1.00,0.00,1.00 -1433,28.80,-28.80,1.00,0.00,1.00 -1434,-148.80,28.80,1.00,0.00,1.00 -1435,38.40,-33.60,1.00,0.00,1.00 -1436,-139.20,33.60,1.00,0.00,1.00 -1437,48.00,-38.40,1.00,0.00,1.00 -1438,-124.80,38.40,1.00,0.00,1.00 -1439,57.60,-43.20,1.00,0.00,1.00 -1440,-115.20,43.20,1.00,0.00,1.00 -1441,72.00,-43.20,1.00,0.00,1.00 -1442,-100.80,43.20,1.00,0.00,1.00 -1443,86.40,-48.00,1.00,0.00,1.00 -1444,-86.40,48.00,1.00,0.00,1.00 -1445,100.80,-48.00,1.00,0.00,1.00 -1446,-76.80,43.20,1.00,0.00,1.00 -1447,110.40,-43.20,1.00,0.00,1.00 -1448,-62.40,43.20,1.00,0.00,1.00 -1449,124.80,-38.40,1.00,0.00,1.00 -1450,-48.00,38.40,1.00,0.00,1.00 -1451,134.40,-38.40,1.00,0.00,1.00 -1452,-38.40,33.60,1.00,0.00,1.00 -1453,144.00,-28.80,1.00,0.00,1.00 -1454,-28.80,28.80,1.00,0.00,1.00 -1455,153.60,-24.00,1.00,0.00,1.00 -1456,-24.00,24.00,1.00,0.00,1.00 -1457,163.20,-19.20,1.00,0.00,1.00 -1458,-14.40,14.40,1.00,0.00,1.00 -1459,168.00,-14.40,1.00,0.00,1.00 -1460,-9.60,9.60,1.00,0.00,1.00 -1461,172.80,-4.80,1.00,0.00,1.00 -1462,-0.00,0.00,1.00,0.00,1.00 -1463,-177.60,0.00,1.00,0.00,1.00 -1464,4.80,-4.80,1.00,0.00,1.00 -1465,-172.80,9.60,1.00,0.00,1.00 -1466,9.60,-14.40,1.00,0.00,1.00 -1467,-163.20,14.40,1.00,0.00,1.00 -1468,19.20,-19.20,1.00,0.00,1.00 -1469,-158.40,24.00,1.00,0.00,1.00 -1470,28.80,-24.00,1.00,0.00,1.00 -1471,-148.80,28.80,1.00,0.00,1.00 -1472,33.60,-28.80,1.00,0.00,1.00 -1473,-139.20,33.60,1.00,0.00,1.00 -1474,43.20,-38.40,1.00,0.00,1.00 -1475,-129.60,38.40,1.00,0.00,1.00 -1476,57.60,-38.40,1.00,0.00,1.00 -1477,-120.00,43.20,1.00,0.00,1.00 -1478,67.20,-43.20,1.00,0.00,1.00 -1479,-105.60,43.20,1.00,0.00,1.00 -1480,81.60,-48.00,1.00,0.00,1.00 -1481,-91.20,48.00,1.00,0.00,1.00 -1482,96.00,-48.00,1.00,0.00,1.00 -1483,-76.80,43.20,1.00,0.00,1.00 -1484,110.40,-43.20,1.00,0.00,1.00 -1485,-67.20,43.20,1.00,0.00,1.00 -1486,120.00,-43.20,1.00,0.00,1.00 -1487,-52.80,38.40,1.00,0.00,1.00 -1488,134.40,-38.40,1.00,0.00,1.00 -1489,-43.20,33.60,1.00,0.00,1.00 -1490,144.00,-33.60,1.00,0.00,1.00 -1491,-33.60,28.80,1.00,0.00,1.00 -1492,153.60,-28.80,1.00,0.00,1.00 -1493,-24.00,24.00,1.00,0.00,1.00 -1494,158.40,-19.20,1.00,0.00,1.00 -1495,-19.20,19.20,1.00,0.00,1.00 -1496,168.00,-14.40,1.00,0.00,1.00 -1497,-9.60,9.60,1.00,0.00,1.00 -1498,172.80,-4.80,1.00,0.00,1.00 -1499,-4.80,4.80,1.00,0.00,1.00 diff --git a/tests/renderer/data/stvISM4.csv b/tests/renderer/data/stvISM4.csv deleted file mode 100644 index f3a2884ff0..0000000000 --- a/tests/renderer/data/stvISM4.csv +++ /dev/null @@ -1,1500 +0,0 @@ -0,-0.00,0.00,1.00,0.00,1.00 -1,-0.00,4.80,1.00,0.00,1.00 -2,-0.00,9.60,1.00,0.00,1.00 -3,-0.00,14.40,1.00,0.00,1.00 -4,-0.00,19.20,1.00,0.00,1.00 -5,-0.00,24.00,1.00,0.00,1.00 -6,-0.00,28.80,1.00,0.00,1.00 -7,-0.00,33.60,1.00,0.00,1.00 -8,-0.00,38.40,1.00,0.00,1.00 -9,-0.00,43.20,1.00,0.00,1.00 -10,-0.00,48.00,1.00,0.00,1.00 -11,-0.00,52.80,1.00,0.00,1.00 -12,-0.00,57.60,1.00,0.00,1.00 -13,-0.00,62.40,1.00,0.00,1.00 -14,-0.00,67.20,1.00,0.00,1.00 -15,-0.00,72.00,1.00,0.00,1.00 -16,-0.00,76.80,1.00,0.00,1.00 -17,-0.00,81.60,1.00,0.00,1.00 -18,-0.00,86.40,1.00,0.00,1.00 -19,-177.60,91.20,1.00,0.00,1.00 -20,-177.60,86.40,1.00,0.00,1.00 -21,-177.60,81.60,1.00,0.00,1.00 -22,-177.60,76.80,1.00,0.00,1.00 -23,-177.60,72.00,1.00,0.00,1.00 -24,-177.60,67.20,1.00,0.00,1.00 -25,177.60,62.40,1.00,0.00,1.00 -26,177.60,57.60,1.00,0.00,1.00 -27,177.60,52.80,1.00,0.00,1.00 -28,177.60,48.00,1.00,0.00,1.00 -29,177.60,43.20,1.00,0.00,1.00 -30,177.60,38.40,1.00,0.00,1.00 -31,177.60,33.60,1.00,0.00,1.00 -32,177.60,28.80,1.00,0.00,1.00 -33,177.60,24.00,1.00,0.00,1.00 -34,177.60,19.20,1.00,0.00,1.00 -35,177.60,14.40,1.00,0.00,1.00 -36,177.60,9.60,1.00,0.00,1.00 -37,177.60,4.80,1.00,0.00,1.00 -38,-177.60,-0.00,1.00,0.00,1.00 -39,-177.60,-4.80,1.00,0.00,1.00 -40,-177.60,-9.60,1.00,0.00,1.00 -41,-177.60,-14.40,1.00,0.00,1.00 -42,-177.60,-19.20,1.00,0.00,1.00 -43,-177.60,-24.00,1.00,0.00,1.00 -44,-177.60,-28.80,1.00,0.00,1.00 -45,-177.60,-33.60,1.00,0.00,1.00 -46,-177.60,-38.40,1.00,0.00,1.00 -47,-177.60,-48.00,1.00,0.00,1.00 -48,-177.60,-48.00,1.00,0.00,1.00 -49,-177.60,-52.80,1.00,0.00,1.00 -50,-177.60,-57.60,1.00,0.00,1.00 -51,177.60,-62.40,1.00,0.00,1.00 -52,177.60,-67.20,1.00,0.00,1.00 -53,177.60,-76.80,1.00,0.00,1.00 -54,177.60,-76.80,1.00,0.00,1.00 -55,177.60,-86.40,1.00,0.00,1.00 -56,177.60,-91.20,1.00,0.00,1.00 -57,0.00,-86.40,1.00,0.00,1.00 -58,0.00,-81.60,1.00,0.00,1.00 -59,0.00,-76.80,1.00,0.00,1.00 -60,0.00,-72.00,1.00,0.00,1.00 -61,0.00,-67.20,1.00,0.00,1.00 -62,0.00,-62.40,1.00,0.00,1.00 -63,0.00,-57.60,1.00,0.00,1.00 -64,0.00,-52.80,1.00,0.00,1.00 -65,0.00,-48.00,1.00,0.00,1.00 -66,0.00,-43.20,1.00,0.00,1.00 -67,0.00,-38.40,1.00,0.00,1.00 -68,0.00,-33.60,1.00,0.00,1.00 -69,0.00,-28.80,1.00,0.00,1.00 -70,0.00,-24.00,1.00,0.00,1.00 -71,0.00,-19.20,1.00,0.00,1.00 -72,0.00,-14.40,1.00,0.00,1.00 -73,0.00,-9.60,1.00,0.00,1.00 -74,0.00,-4.80,1.00,0.00,1.00 -75,0.00,0.00,1.00,0.00,1.00 -76,0.00,4.80,1.00,0.00,1.00 -77,0.00,9.60,1.00,0.00,1.00 -78,0.00,14.40,1.00,0.00,1.00 -79,0.00,19.20,1.00,0.00,1.00 -80,0.00,24.00,1.00,0.00,1.00 -81,4.80,28.80,1.00,0.00,1.00 -82,4.80,33.60,1.00,0.00,1.00 -83,4.80,38.40,1.00,0.00,1.00 -84,4.80,43.20,1.00,0.00,1.00 -85,4.80,48.00,1.00,0.00,1.00 -86,4.80,52.80,1.00,0.00,1.00 -87,9.60,57.60,1.00,0.00,1.00 -88,9.60,62.40,1.00,0.00,1.00 -89,9.60,67.20,1.00,0.00,1.00 -90,14.40,72.00,1.00,0.00,1.00 -91,19.20,76.80,1.00,0.00,1.00 -92,28.80,81.60,1.00,0.00,1.00 -93,52.80,86.40,1.00,0.00,1.00 -94,105.60,86.40,1.00,0.00,1.00 -95,139.20,81.60,1.00,0.00,1.00 -96,158.40,76.80,1.00,0.00,1.00 -97,163.20,72.00,1.00,0.00,1.00 -98,168.00,67.20,1.00,0.00,1.00 -99,168.00,62.40,1.00,0.00,1.00 -100,172.80,57.60,1.00,0.00,1.00 -101,172.80,52.80,1.00,0.00,1.00 -102,172.80,48.00,1.00,0.00,1.00 -103,172.80,43.20,1.00,0.00,1.00 -104,177.60,38.40,1.00,0.00,1.00 -105,177.60,33.60,1.00,0.00,1.00 -106,177.60,28.80,1.00,0.00,1.00 -107,177.60,24.00,1.00,0.00,1.00 -108,177.60,19.20,1.00,0.00,1.00 -109,177.60,14.40,1.00,0.00,1.00 -110,177.60,9.60,1.00,0.00,1.00 -111,177.60,4.80,1.00,0.00,1.00 -112,177.60,0.00,1.00,0.00,1.00 -113,-177.60,-0.00,1.00,0.00,1.00 -114,-177.60,-4.80,1.00,0.00,1.00 -115,-177.60,-9.60,1.00,0.00,1.00 -116,-177.60,-14.40,1.00,0.00,1.00 -117,-177.60,-19.20,1.00,0.00,1.00 -118,-177.60,-24.00,1.00,0.00,1.00 -119,-177.60,-28.80,1.00,0.00,1.00 -120,-177.60,-33.60,1.00,0.00,1.00 -121,-177.60,-38.40,1.00,0.00,1.00 -122,-172.80,-43.20,1.00,0.00,1.00 -123,-172.80,-48.00,1.00,0.00,1.00 -124,-172.80,-52.80,1.00,0.00,1.00 -125,-172.80,-57.60,1.00,0.00,1.00 -126,-168.00,-62.40,1.00,0.00,1.00 -127,-168.00,-67.20,1.00,0.00,1.00 -128,-163.20,-72.00,1.00,0.00,1.00 -129,-158.40,-76.80,1.00,0.00,1.00 -130,-139.20,-81.60,1.00,0.00,1.00 -131,-105.60,-86.40,1.00,0.00,1.00 -132,-52.80,-86.40,1.00,0.00,1.00 -133,-28.80,-81.60,1.00,0.00,1.00 -134,-19.20,-76.80,1.00,0.00,1.00 -135,-14.40,-72.00,1.00,0.00,1.00 -136,-9.60,-67.20,1.00,0.00,1.00 -137,-9.60,-62.40,1.00,0.00,1.00 -138,-9.60,-57.60,1.00,0.00,1.00 -139,-4.80,-52.80,1.00,0.00,1.00 -140,-4.80,-48.00,1.00,0.00,1.00 -141,-4.80,-43.20,1.00,0.00,1.00 -142,-4.80,-38.40,1.00,0.00,1.00 -143,-4.80,-33.60,1.00,0.00,1.00 -144,-4.80,-28.80,1.00,0.00,1.00 -145,-0.00,-24.00,1.00,0.00,1.00 -146,-0.00,-19.20,1.00,0.00,1.00 -147,-0.00,-14.40,1.00,0.00,1.00 -148,-0.00,-9.60,1.00,0.00,1.00 -149,-0.00,-4.80,1.00,0.00,1.00 -150,0.00,0.00,1.00,0.00,1.00 -151,0.00,4.80,1.00,0.00,1.00 -152,0.00,9.60,1.00,0.00,1.00 -153,4.80,14.40,1.00,0.00,1.00 -154,4.80,19.20,1.00,0.00,1.00 -155,4.80,24.00,1.00,0.00,1.00 -156,4.80,28.80,1.00,0.00,1.00 -157,4.80,33.60,1.00,0.00,1.00 -158,9.60,38.40,1.00,0.00,1.00 -159,9.60,43.20,1.00,0.00,1.00 -160,9.60,48.00,1.00,0.00,1.00 -161,14.40,52.80,1.00,0.00,1.00 -162,14.40,57.60,1.00,0.00,1.00 -163,19.20,62.40,1.00,0.00,1.00 -164,24.00,67.20,1.00,0.00,1.00 -165,28.80,72.00,1.00,0.00,1.00 -166,33.60,72.00,1.00,0.00,1.00 -167,48.00,76.80,1.00,0.00,1.00 -168,67.20,81.60,1.00,0.00,1.00 -169,96.00,81.60,1.00,0.00,1.00 -170,120.00,76.80,1.00,0.00,1.00 -171,139.20,76.80,1.00,0.00,1.00 -172,148.80,72.00,1.00,0.00,1.00 -173,153.60,67.20,1.00,0.00,1.00 -174,158.40,62.40,1.00,0.00,1.00 -175,163.20,57.60,1.00,0.00,1.00 -176,168.00,52.80,1.00,0.00,1.00 -177,168.00,48.00,1.00,0.00,1.00 -178,168.00,43.20,1.00,0.00,1.00 -179,172.80,38.40,1.00,0.00,1.00 -180,172.80,33.60,1.00,0.00,1.00 -181,172.80,28.80,1.00,0.00,1.00 -182,177.60,24.00,1.00,0.00,1.00 -183,177.60,19.20,1.00,0.00,1.00 -184,177.60,14.40,1.00,0.00,1.00 -185,177.60,9.60,1.00,0.00,1.00 -186,177.60,4.80,1.00,0.00,1.00 -187,177.60,0.00,1.00,0.00,1.00 -188,-177.60,-0.00,1.00,0.00,1.00 -189,-177.60,-4.80,1.00,0.00,1.00 -190,-177.60,-9.60,1.00,0.00,1.00 -191,-177.60,-14.40,1.00,0.00,1.00 -192,-177.60,-19.20,1.00,0.00,1.00 -193,-177.60,-24.00,1.00,0.00,1.00 -194,-172.80,-28.80,1.00,0.00,1.00 -195,-172.80,-33.60,1.00,0.00,1.00 -196,-172.80,-38.40,1.00,0.00,1.00 -197,-168.00,-43.20,1.00,0.00,1.00 -198,-168.00,-48.00,1.00,0.00,1.00 -199,-168.00,-52.80,1.00,0.00,1.00 -200,-163.20,-57.60,1.00,0.00,1.00 -201,-158.40,-62.40,1.00,0.00,1.00 -202,-153.60,-67.20,1.00,0.00,1.00 -203,-148.80,-72.00,1.00,0.00,1.00 -204,-139.20,-76.80,1.00,0.00,1.00 -205,-120.00,-76.80,1.00,0.00,1.00 -206,-96.00,-81.60,1.00,0.00,1.00 -207,-67.20,-81.60,1.00,0.00,1.00 -208,-48.00,-76.80,1.00,0.00,1.00 -209,-33.60,-72.00,1.00,0.00,1.00 -210,-28.80,-72.00,1.00,0.00,1.00 -211,-24.00,-67.20,1.00,0.00,1.00 -212,-19.20,-62.40,1.00,0.00,1.00 -213,-14.40,-57.60,1.00,0.00,1.00 -214,-14.40,-52.80,1.00,0.00,1.00 -215,-9.60,-48.00,1.00,0.00,1.00 -216,-9.60,-43.20,1.00,0.00,1.00 -217,-9.60,-38.40,1.00,0.00,1.00 -218,-4.80,-33.60,1.00,0.00,1.00 -219,-4.80,-28.80,1.00,0.00,1.00 -220,-4.80,-24.00,1.00,0.00,1.00 -221,-4.80,-19.20,1.00,0.00,1.00 -222,-4.80,-14.40,1.00,0.00,1.00 -223,-0.00,-9.60,1.00,0.00,1.00 -224,-0.00,-4.80,1.00,0.00,1.00 -225,0.00,0.00,1.00,0.00,1.00 -226,0.00,4.80,1.00,0.00,1.00 -227,4.80,9.60,1.00,0.00,1.00 -228,4.80,14.40,1.00,0.00,1.00 -229,4.80,19.20,1.00,0.00,1.00 -230,4.80,24.00,1.00,0.00,1.00 -231,9.60,28.80,1.00,0.00,1.00 -232,9.60,33.60,1.00,0.00,1.00 -233,9.60,38.40,1.00,0.00,1.00 -234,14.40,43.20,1.00,0.00,1.00 -235,14.40,48.00,1.00,0.00,1.00 -236,19.20,52.80,1.00,0.00,1.00 -237,19.20,52.80,1.00,0.00,1.00 -238,24.00,57.60,1.00,0.00,1.00 -239,28.80,62.40,1.00,0.00,1.00 -240,38.40,67.20,1.00,0.00,1.00 -241,48.00,72.00,1.00,0.00,1.00 -242,57.60,72.00,1.00,0.00,1.00 -243,76.80,76.80,1.00,0.00,1.00 -244,96.00,76.80,1.00,0.00,1.00 -245,115.20,76.80,1.00,0.00,1.00 -246,129.60,72.00,1.00,0.00,1.00 -247,139.20,67.20,1.00,0.00,1.00 -248,144.00,67.20,1.00,0.00,1.00 -249,153.60,62.40,1.00,0.00,1.00 -250,158.40,57.60,1.00,0.00,1.00 -251,158.40,52.80,1.00,0.00,1.00 -252,163.20,48.00,1.00,0.00,1.00 -253,168.00,43.20,1.00,0.00,1.00 -254,168.00,38.40,1.00,0.00,1.00 -255,168.00,33.60,1.00,0.00,1.00 -256,172.80,28.80,1.00,0.00,1.00 -257,172.80,24.00,1.00,0.00,1.00 -258,172.80,19.20,1.00,0.00,1.00 -259,177.60,14.40,1.00,0.00,1.00 -260,177.60,9.60,1.00,0.00,1.00 -261,177.60,4.80,1.00,0.00,1.00 -262,177.60,0.00,1.00,0.00,1.00 -263,-177.60,-0.00,1.00,0.00,1.00 -264,-177.60,-4.80,1.00,0.00,1.00 -265,-177.60,-9.60,1.00,0.00,1.00 -266,-177.60,-14.40,1.00,0.00,1.00 -267,-172.80,-19.20,1.00,0.00,1.00 -268,-172.80,-24.00,1.00,0.00,1.00 -269,-172.80,-28.80,1.00,0.00,1.00 -270,-168.00,-33.60,1.00,0.00,1.00 -271,-168.00,-38.40,1.00,0.00,1.00 -272,-168.00,-43.20,1.00,0.00,1.00 -273,-163.20,-48.00,1.00,0.00,1.00 -274,-158.40,-52.80,1.00,0.00,1.00 -275,-158.40,-57.60,1.00,0.00,1.00 -276,-153.60,-62.40,1.00,0.00,1.00 -277,-144.00,-67.20,1.00,0.00,1.00 -278,-139.20,-67.20,1.00,0.00,1.00 -279,-129.60,-72.00,1.00,0.00,1.00 -280,-115.20,-76.80,1.00,0.00,1.00 -281,-96.00,-76.80,1.00,0.00,1.00 -282,-76.80,-76.80,1.00,0.00,1.00 -283,-57.60,-72.00,1.00,0.00,1.00 -284,-48.00,-72.00,1.00,0.00,1.00 -285,-38.40,-67.20,1.00,0.00,1.00 -286,-28.80,-62.40,1.00,0.00,1.00 -287,-24.00,-57.60,1.00,0.00,1.00 -288,-19.20,-52.80,1.00,0.00,1.00 -289,-19.20,-52.80,1.00,0.00,1.00 -290,-14.40,-48.00,1.00,0.00,1.00 -291,-14.40,-43.20,1.00,0.00,1.00 -292,-9.60,-38.40,1.00,0.00,1.00 -293,-9.60,-33.60,1.00,0.00,1.00 -294,-9.60,-28.80,1.00,0.00,1.00 -295,-4.80,-24.00,1.00,0.00,1.00 -296,-4.80,-19.20,1.00,0.00,1.00 -297,-4.80,-14.40,1.00,0.00,1.00 -298,-4.80,-9.60,1.00,0.00,1.00 -299,-0.00,-4.80,1.00,0.00,1.00 -300,0.00,0.00,1.00,0.00,1.00 -301,0.00,4.80,1.00,0.00,1.00 -302,4.80,9.60,1.00,0.00,1.00 -303,4.80,14.40,1.00,0.00,1.00 -304,4.80,19.20,1.00,0.00,1.00 -305,9.60,24.00,1.00,0.00,1.00 -306,9.60,28.80,1.00,0.00,1.00 -307,14.40,33.60,1.00,0.00,1.00 -308,14.40,33.60,1.00,0.00,1.00 -309,19.20,38.40,1.00,0.00,1.00 -310,19.20,43.20,1.00,0.00,1.00 -311,24.00,48.00,1.00,0.00,1.00 -312,28.80,52.80,1.00,0.00,1.00 -313,33.60,57.60,1.00,0.00,1.00 -314,38.40,62.40,1.00,0.00,1.00 -315,43.20,62.40,1.00,0.00,1.00 -316,52.80,67.20,1.00,0.00,1.00 -317,67.20,67.20,1.00,0.00,1.00 -318,76.80,72.00,1.00,0.00,1.00 -319,96.00,72.00,1.00,0.00,1.00 -320,105.60,72.00,1.00,0.00,1.00 -321,120.00,67.20,1.00,0.00,1.00 -322,129.60,67.20,1.00,0.00,1.00 -323,139.20,62.40,1.00,0.00,1.00 -324,144.00,57.60,1.00,0.00,1.00 -325,148.80,52.80,1.00,0.00,1.00 -326,153.60,52.80,1.00,0.00,1.00 -327,158.40,48.00,1.00,0.00,1.00 -328,163.20,43.20,1.00,0.00,1.00 -329,163.20,38.40,1.00,0.00,1.00 -330,168.00,33.60,1.00,0.00,1.00 -331,168.00,28.80,1.00,0.00,1.00 -332,172.80,24.00,1.00,0.00,1.00 -333,172.80,19.20,1.00,0.00,1.00 -334,172.80,14.40,1.00,0.00,1.00 -335,177.60,9.60,1.00,0.00,1.00 -336,177.60,4.80,1.00,0.00,1.00 -337,177.60,0.00,1.00,0.00,1.00 -338,-177.60,-0.00,1.00,0.00,1.00 -339,-177.60,-4.80,1.00,0.00,1.00 -340,-177.60,-9.60,1.00,0.00,1.00 -341,-172.80,-14.40,1.00,0.00,1.00 -342,-172.80,-19.20,1.00,0.00,1.00 -343,-172.80,-24.00,1.00,0.00,1.00 -344,-168.00,-28.80,1.00,0.00,1.00 -345,-168.00,-33.60,1.00,0.00,1.00 -346,-163.20,-38.40,1.00,0.00,1.00 -347,-163.20,-43.20,1.00,0.00,1.00 -348,-158.40,-48.00,1.00,0.00,1.00 -349,-153.60,-52.80,1.00,0.00,1.00 -350,-148.80,-52.80,1.00,0.00,1.00 -351,-144.00,-57.60,1.00,0.00,1.00 -352,-139.20,-62.40,1.00,0.00,1.00 -353,-129.60,-67.20,1.00,0.00,1.00 -354,-120.00,-67.20,1.00,0.00,1.00 -355,-105.60,-72.00,1.00,0.00,1.00 -356,-96.00,-72.00,1.00,0.00,1.00 -357,-76.80,-72.00,1.00,0.00,1.00 -358,-67.20,-67.20,1.00,0.00,1.00 -359,-52.80,-67.20,1.00,0.00,1.00 -360,-43.20,-62.40,1.00,0.00,1.00 -361,-38.40,-62.40,1.00,0.00,1.00 -362,-33.60,-57.60,1.00,0.00,1.00 -363,-28.80,-52.80,1.00,0.00,1.00 -364,-24.00,-48.00,1.00,0.00,1.00 -365,-19.20,-43.20,1.00,0.00,1.00 -366,-19.20,-38.40,1.00,0.00,1.00 -367,-14.40,-33.60,1.00,0.00,1.00 -368,-14.40,-33.60,1.00,0.00,1.00 -369,-9.60,-28.80,1.00,0.00,1.00 -370,-9.60,-24.00,1.00,0.00,1.00 -371,-4.80,-19.20,1.00,0.00,1.00 -372,-4.80,-14.40,1.00,0.00,1.00 -373,-4.80,-9.60,1.00,0.00,1.00 -374,-0.00,-4.80,1.00,0.00,1.00 -375,0.00,0.00,1.00,0.00,1.00 -376,0.00,4.80,1.00,0.00,1.00 -377,4.80,9.60,1.00,0.00,1.00 -378,4.80,14.40,1.00,0.00,1.00 -379,9.60,19.20,1.00,0.00,1.00 -380,9.60,24.00,1.00,0.00,1.00 -381,14.40,24.00,1.00,0.00,1.00 -382,14.40,28.80,1.00,0.00,1.00 -383,19.20,33.60,1.00,0.00,1.00 -384,19.20,38.40,1.00,0.00,1.00 -385,24.00,43.20,1.00,0.00,1.00 -386,28.80,48.00,1.00,0.00,1.00 -387,33.60,52.80,1.00,0.00,1.00 -388,38.40,52.80,1.00,0.00,1.00 -389,43.20,57.60,1.00,0.00,1.00 -390,52.80,62.40,1.00,0.00,1.00 -391,62.40,62.40,1.00,0.00,1.00 -392,72.00,62.40,1.00,0.00,1.00 -393,81.60,67.20,1.00,0.00,1.00 -394,91.20,67.20,1.00,0.00,1.00 -395,105.60,67.20,1.00,0.00,1.00 -396,115.20,62.40,1.00,0.00,1.00 -397,124.80,62.40,1.00,0.00,1.00 -398,134.40,57.60,1.00,0.00,1.00 -399,139.20,57.60,1.00,0.00,1.00 -400,144.00,52.80,1.00,0.00,1.00 -401,148.80,48.00,1.00,0.00,1.00 -402,153.60,43.20,1.00,0.00,1.00 -403,158.40,38.40,1.00,0.00,1.00 -404,158.40,38.40,1.00,0.00,1.00 -405,163.20,33.60,1.00,0.00,1.00 -406,168.00,28.80,1.00,0.00,1.00 -407,168.00,24.00,1.00,0.00,1.00 -408,172.80,19.20,1.00,0.00,1.00 -409,172.80,14.40,1.00,0.00,1.00 -410,172.80,9.60,1.00,0.00,1.00 -411,177.60,4.80,1.00,0.00,1.00 -412,177.60,0.00,1.00,0.00,1.00 -413,-177.60,-0.00,1.00,0.00,1.00 -414,-177.60,-4.80,1.00,0.00,1.00 -415,-172.80,-9.60,1.00,0.00,1.00 -416,-172.80,-14.40,1.00,0.00,1.00 -417,-172.80,-19.20,1.00,0.00,1.00 -418,-168.00,-24.00,1.00,0.00,1.00 -419,-168.00,-28.80,1.00,0.00,1.00 -420,-163.20,-33.60,1.00,0.00,1.00 -421,-158.40,-38.40,1.00,0.00,1.00 -422,-158.40,-38.40,1.00,0.00,1.00 -423,-153.60,-43.20,1.00,0.00,1.00 -424,-148.80,-48.00,1.00,0.00,1.00 -425,-144.00,-52.80,1.00,0.00,1.00 -426,-139.20,-57.60,1.00,0.00,1.00 -427,-134.40,-57.60,1.00,0.00,1.00 -428,-124.80,-62.40,1.00,0.00,1.00 -429,-115.20,-62.40,1.00,0.00,1.00 -430,-105.60,-67.20,1.00,0.00,1.00 -431,-91.20,-67.20,1.00,0.00,1.00 -432,-81.60,-67.20,1.00,0.00,1.00 -433,-72.00,-62.40,1.00,0.00,1.00 -434,-62.40,-62.40,1.00,0.00,1.00 -435,-52.80,-62.40,1.00,0.00,1.00 -436,-43.20,-57.60,1.00,0.00,1.00 -437,-38.40,-52.80,1.00,0.00,1.00 -438,-33.60,-52.80,1.00,0.00,1.00 -439,-28.80,-48.00,1.00,0.00,1.00 -440,-24.00,-43.20,1.00,0.00,1.00 -441,-19.20,-38.40,1.00,0.00,1.00 -442,-19.20,-33.60,1.00,0.00,1.00 -443,-14.40,-28.80,1.00,0.00,1.00 -444,-14.40,-24.00,1.00,0.00,1.00 -445,-9.60,-24.00,1.00,0.00,1.00 -446,-9.60,-19.20,1.00,0.00,1.00 -447,-4.80,-14.40,1.00,0.00,1.00 -448,-4.80,-9.60,1.00,0.00,1.00 -449,-0.00,-4.80,1.00,0.00,1.00 -450,0.00,0.00,1.00,0.00,1.00 -451,0.00,4.80,1.00,0.00,1.00 -452,4.80,9.60,1.00,0.00,1.00 -453,4.80,14.40,1.00,0.00,1.00 -454,9.60,14.40,1.00,0.00,1.00 -455,14.40,19.20,1.00,0.00,1.00 -456,14.40,24.00,1.00,0.00,1.00 -457,19.20,28.80,1.00,0.00,1.00 -458,19.20,33.60,1.00,0.00,1.00 -459,24.00,38.40,1.00,0.00,1.00 -460,28.80,38.40,1.00,0.00,1.00 -461,33.60,43.20,1.00,0.00,1.00 -462,38.40,48.00,1.00,0.00,1.00 -463,43.20,52.80,1.00,0.00,1.00 -464,48.00,52.80,1.00,0.00,1.00 -465,57.60,57.60,1.00,0.00,1.00 -466,62.40,57.60,1.00,0.00,1.00 -467,72.00,62.40,1.00,0.00,1.00 -468,81.60,62.40,1.00,0.00,1.00 -469,91.20,62.40,1.00,0.00,1.00 -470,100.80,62.40,1.00,0.00,1.00 -471,110.40,57.60,1.00,0.00,1.00 -472,120.00,57.60,1.00,0.00,1.00 -473,129.60,57.60,1.00,0.00,1.00 -474,134.40,52.80,1.00,0.00,1.00 -475,139.20,48.00,1.00,0.00,1.00 -476,144.00,48.00,1.00,0.00,1.00 -477,148.80,43.20,1.00,0.00,1.00 -478,153.60,38.40,1.00,0.00,1.00 -479,158.40,33.60,1.00,0.00,1.00 -480,158.40,28.80,1.00,0.00,1.00 -481,163.20,28.80,1.00,0.00,1.00 -482,168.00,24.00,1.00,0.00,1.00 -483,168.00,19.20,1.00,0.00,1.00 -484,172.80,14.40,1.00,0.00,1.00 -485,172.80,9.60,1.00,0.00,1.00 -486,177.60,4.80,1.00,0.00,1.00 -487,177.60,0.00,1.00,0.00,1.00 -488,-177.60,-0.00,1.00,0.00,1.00 -489,-177.60,-4.80,1.00,0.00,1.00 -490,-172.80,-9.60,1.00,0.00,1.00 -491,-172.80,-14.40,1.00,0.00,1.00 -492,-168.00,-19.20,1.00,0.00,1.00 -493,-168.00,-24.00,1.00,0.00,1.00 -494,-163.20,-28.80,1.00,0.00,1.00 -495,-158.40,-28.80,1.00,0.00,1.00 -496,-158.40,-33.60,1.00,0.00,1.00 -497,-153.60,-38.40,1.00,0.00,1.00 -498,-148.80,-43.20,1.00,0.00,1.00 -499,-144.00,-48.00,1.00,0.00,1.00 -500,-139.20,-48.00,1.00,0.00,1.00 -501,-134.40,-52.80,1.00,0.00,1.00 -502,-129.60,-57.60,1.00,0.00,1.00 -503,-120.00,-57.60,1.00,0.00,1.00 -504,-110.40,-57.60,1.00,0.00,1.00 -505,-100.80,-62.40,1.00,0.00,1.00 -506,-91.20,-62.40,1.00,0.00,1.00 -507,-81.60,-62.40,1.00,0.00,1.00 -508,-72.00,-62.40,1.00,0.00,1.00 -509,-62.40,-57.60,1.00,0.00,1.00 -510,-57.60,-57.60,1.00,0.00,1.00 -511,-48.00,-52.80,1.00,0.00,1.00 -512,-43.20,-52.80,1.00,0.00,1.00 -513,-38.40,-48.00,1.00,0.00,1.00 -514,-33.60,-43.20,1.00,0.00,1.00 -515,-28.80,-38.40,1.00,0.00,1.00 -516,-24.00,-38.40,1.00,0.00,1.00 -517,-19.20,-33.60,1.00,0.00,1.00 -518,-19.20,-28.80,1.00,0.00,1.00 -519,-14.40,-24.00,1.00,0.00,1.00 -520,-14.40,-19.20,1.00,0.00,1.00 -521,-9.60,-14.40,1.00,0.00,1.00 -522,-4.80,-14.40,1.00,0.00,1.00 -523,-4.80,-9.60,1.00,0.00,1.00 -524,-0.00,-4.80,1.00,0.00,1.00 -525,0.00,0.00,1.00,0.00,1.00 -526,4.80,4.80,1.00,0.00,1.00 -527,4.80,9.60,1.00,0.00,1.00 -528,9.60,9.60,1.00,0.00,1.00 -529,9.60,14.40,1.00,0.00,1.00 -530,14.40,19.20,1.00,0.00,1.00 -531,19.20,24.00,1.00,0.00,1.00 -532,19.20,28.80,1.00,0.00,1.00 -533,24.00,28.80,1.00,0.00,1.00 -534,28.80,33.60,1.00,0.00,1.00 -535,33.60,38.40,1.00,0.00,1.00 -536,38.40,43.20,1.00,0.00,1.00 -537,43.20,43.20,1.00,0.00,1.00 -538,48.00,48.00,1.00,0.00,1.00 -539,52.80,48.00,1.00,0.00,1.00 -540,57.60,52.80,1.00,0.00,1.00 -541,67.20,52.80,1.00,0.00,1.00 -542,76.80,57.60,1.00,0.00,1.00 -543,81.60,57.60,1.00,0.00,1.00 -544,91.20,57.60,1.00,0.00,1.00 -545,100.80,57.60,1.00,0.00,1.00 -546,110.40,52.80,1.00,0.00,1.00 -547,115.20,52.80,1.00,0.00,1.00 -548,124.80,52.80,1.00,0.00,1.00 -549,129.60,48.00,1.00,0.00,1.00 -550,134.40,48.00,1.00,0.00,1.00 -551,139.20,43.20,1.00,0.00,1.00 -552,144.00,38.40,1.00,0.00,1.00 -553,148.80,38.40,1.00,0.00,1.00 -554,153.60,33.60,1.00,0.00,1.00 -555,158.40,28.80,1.00,0.00,1.00 -556,163.20,24.00,1.00,0.00,1.00 -557,163.20,24.00,1.00,0.00,1.00 -558,168.00,19.20,1.00,0.00,1.00 -559,172.80,14.40,1.00,0.00,1.00 -560,172.80,9.60,1.00,0.00,1.00 -561,177.60,4.80,1.00,0.00,1.00 -562,177.60,0.00,1.00,0.00,1.00 -563,-177.60,-0.00,1.00,0.00,1.00 -564,-177.60,-4.80,1.00,0.00,1.00 -565,-172.80,-9.60,1.00,0.00,1.00 -566,-172.80,-14.40,1.00,0.00,1.00 -567,-168.00,-19.20,1.00,0.00,1.00 -568,-163.20,-24.00,1.00,0.00,1.00 -569,-163.20,-24.00,1.00,0.00,1.00 -570,-158.40,-28.80,1.00,0.00,1.00 -571,-153.60,-33.60,1.00,0.00,1.00 -572,-148.80,-38.40,1.00,0.00,1.00 -573,-144.00,-38.40,1.00,0.00,1.00 -574,-139.20,-43.20,1.00,0.00,1.00 -575,-134.40,-48.00,1.00,0.00,1.00 -576,-129.60,-48.00,1.00,0.00,1.00 -577,-124.80,-52.80,1.00,0.00,1.00 -578,-115.20,-52.80,1.00,0.00,1.00 -579,-110.40,-52.80,1.00,0.00,1.00 -580,-100.80,-57.60,1.00,0.00,1.00 -581,-91.20,-57.60,1.00,0.00,1.00 -582,-81.60,-57.60,1.00,0.00,1.00 -583,-76.80,-57.60,1.00,0.00,1.00 -584,-67.20,-52.80,1.00,0.00,1.00 -585,-57.60,-52.80,1.00,0.00,1.00 -586,-52.80,-48.00,1.00,0.00,1.00 -587,-48.00,-48.00,1.00,0.00,1.00 -588,-43.20,-43.20,1.00,0.00,1.00 -589,-38.40,-43.20,1.00,0.00,1.00 -590,-33.60,-38.40,1.00,0.00,1.00 -591,-28.80,-33.60,1.00,0.00,1.00 -592,-24.00,-28.80,1.00,0.00,1.00 -593,-19.20,-28.80,1.00,0.00,1.00 -594,-19.20,-24.00,1.00,0.00,1.00 -595,-14.40,-19.20,1.00,0.00,1.00 -596,-9.60,-14.40,1.00,0.00,1.00 -597,-9.60,-9.60,1.00,0.00,1.00 -598,-4.80,-9.60,1.00,0.00,1.00 -599,-4.80,-4.80,1.00,0.00,1.00 -600,0.00,0.00,1.00,0.00,1.00 -601,4.80,4.80,1.00,0.00,1.00 -602,4.80,9.60,1.00,0.00,1.00 -603,9.60,9.60,1.00,0.00,1.00 -604,14.40,14.40,1.00,0.00,1.00 -605,14.40,19.20,1.00,0.00,1.00 -606,19.20,24.00,1.00,0.00,1.00 -607,24.00,24.00,1.00,0.00,1.00 -608,24.00,28.80,1.00,0.00,1.00 -609,28.80,33.60,1.00,0.00,1.00 -610,33.60,33.60,1.00,0.00,1.00 -611,38.40,38.40,1.00,0.00,1.00 -612,43.20,43.20,1.00,0.00,1.00 -613,48.00,43.20,1.00,0.00,1.00 -614,57.60,48.00,1.00,0.00,1.00 -615,62.40,48.00,1.00,0.00,1.00 -616,67.20,48.00,1.00,0.00,1.00 -617,76.80,52.80,1.00,0.00,1.00 -618,86.40,52.80,1.00,0.00,1.00 -619,91.20,52.80,1.00,0.00,1.00 -620,100.80,52.80,1.00,0.00,1.00 -621,105.60,48.00,1.00,0.00,1.00 -622,115.20,48.00,1.00,0.00,1.00 -623,120.00,48.00,1.00,0.00,1.00 -624,124.80,43.20,1.00,0.00,1.00 -625,134.40,43.20,1.00,0.00,1.00 -626,139.20,38.40,1.00,0.00,1.00 -627,144.00,38.40,1.00,0.00,1.00 -628,148.80,33.60,1.00,0.00,1.00 -629,153.60,28.80,1.00,0.00,1.00 -630,153.60,28.80,1.00,0.00,1.00 -631,158.40,24.00,1.00,0.00,1.00 -632,163.20,19.20,1.00,0.00,1.00 -633,168.00,14.40,1.00,0.00,1.00 -634,168.00,14.40,1.00,0.00,1.00 -635,172.80,9.60,1.00,0.00,1.00 -636,177.60,4.80,1.00,0.00,1.00 -637,177.60,0.00,1.00,0.00,1.00 -638,-177.60,-0.00,1.00,0.00,1.00 -639,-177.60,-4.80,1.00,0.00,1.00 -640,-172.80,-9.60,1.00,0.00,1.00 -641,-168.00,-14.40,1.00,0.00,1.00 -642,-168.00,-14.40,1.00,0.00,1.00 -643,-163.20,-19.20,1.00,0.00,1.00 -644,-158.40,-24.00,1.00,0.00,1.00 -645,-153.60,-28.80,1.00,0.00,1.00 -646,-153.60,-28.80,1.00,0.00,1.00 -647,-148.80,-33.60,1.00,0.00,1.00 -648,-144.00,-38.40,1.00,0.00,1.00 -649,-139.20,-38.40,1.00,0.00,1.00 -650,-134.40,-43.20,1.00,0.00,1.00 -651,-124.80,-43.20,1.00,0.00,1.00 -652,-120.00,-48.00,1.00,0.00,1.00 -653,-115.20,-48.00,1.00,0.00,1.00 -654,-105.60,-48.00,1.00,0.00,1.00 -655,-100.80,-52.80,1.00,0.00,1.00 -656,-91.20,-52.80,1.00,0.00,1.00 -657,-86.40,-52.80,1.00,0.00,1.00 -658,-76.80,-52.80,1.00,0.00,1.00 -659,-67.20,-48.00,1.00,0.00,1.00 -660,-62.40,-48.00,1.00,0.00,1.00 -661,-57.60,-48.00,1.00,0.00,1.00 -662,-48.00,-43.20,1.00,0.00,1.00 -663,-43.20,-43.20,1.00,0.00,1.00 -664,-38.40,-38.40,1.00,0.00,1.00 -665,-33.60,-33.60,1.00,0.00,1.00 -666,-28.80,-33.60,1.00,0.00,1.00 -667,-24.00,-28.80,1.00,0.00,1.00 -668,-24.00,-24.00,1.00,0.00,1.00 -669,-19.20,-24.00,1.00,0.00,1.00 -670,-14.40,-19.20,1.00,0.00,1.00 -671,-14.40,-14.40,1.00,0.00,1.00 -672,-9.60,-9.60,1.00,0.00,1.00 -673,-4.80,-9.60,1.00,0.00,1.00 -674,-4.80,-4.80,1.00,0.00,1.00 -675,0.00,0.00,1.00,0.00,1.00 -676,4.80,4.80,1.00,0.00,1.00 -677,4.80,4.80,1.00,0.00,1.00 -678,9.60,9.60,1.00,0.00,1.00 -679,14.40,14.40,1.00,0.00,1.00 -680,19.20,19.20,1.00,0.00,1.00 -681,19.20,19.20,1.00,0.00,1.00 -682,24.00,24.00,1.00,0.00,1.00 -683,28.80,28.80,1.00,0.00,1.00 -684,33.60,28.80,1.00,0.00,1.00 -685,38.40,33.60,1.00,0.00,1.00 -686,43.20,33.60,1.00,0.00,1.00 -687,48.00,38.40,1.00,0.00,1.00 -688,52.80,38.40,1.00,0.00,1.00 -689,57.60,43.20,1.00,0.00,1.00 -690,62.40,43.20,1.00,0.00,1.00 -691,72.00,43.20,1.00,0.00,1.00 -692,76.80,48.00,1.00,0.00,1.00 -693,86.40,48.00,1.00,0.00,1.00 -694,91.20,48.00,1.00,0.00,1.00 -695,100.80,48.00,1.00,0.00,1.00 -696,105.60,48.00,1.00,0.00,1.00 -697,110.40,43.20,1.00,0.00,1.00 -698,120.00,43.20,1.00,0.00,1.00 -699,124.80,43.20,1.00,0.00,1.00 -700,129.60,38.40,1.00,0.00,1.00 -701,134.40,38.40,1.00,0.00,1.00 -702,139.20,33.60,1.00,0.00,1.00 -703,144.00,33.60,1.00,0.00,1.00 -704,148.80,28.80,1.00,0.00,1.00 -705,153.60,24.00,1.00,0.00,1.00 -706,158.40,24.00,1.00,0.00,1.00 -707,163.20,19.20,1.00,0.00,1.00 -708,163.20,14.40,1.00,0.00,1.00 -709,168.00,14.40,1.00,0.00,1.00 -710,172.80,9.60,1.00,0.00,1.00 -711,172.80,4.80,1.00,0.00,1.00 -712,177.60,0.00,1.00,0.00,1.00 -713,-177.60,-0.00,1.00,0.00,1.00 -714,-172.80,-4.80,1.00,0.00,1.00 -715,-172.80,-9.60,1.00,0.00,1.00 -716,-168.00,-14.40,1.00,0.00,1.00 -717,-163.20,-14.40,1.00,0.00,1.00 -718,-163.20,-19.20,1.00,0.00,1.00 -719,-158.40,-24.00,1.00,0.00,1.00 -720,-153.60,-24.00,1.00,0.00,1.00 -721,-148.80,-28.80,1.00,0.00,1.00 -722,-144.00,-33.60,1.00,0.00,1.00 -723,-139.20,-33.60,1.00,0.00,1.00 -724,-134.40,-38.40,1.00,0.00,1.00 -725,-129.60,-38.40,1.00,0.00,1.00 -726,-124.80,-43.20,1.00,0.00,1.00 -727,-120.00,-43.20,1.00,0.00,1.00 -728,-110.40,-43.20,1.00,0.00,1.00 -729,-105.60,-48.00,1.00,0.00,1.00 -730,-100.80,-48.00,1.00,0.00,1.00 -731,-91.20,-48.00,1.00,0.00,1.00 -732,-86.40,-48.00,1.00,0.00,1.00 -733,-76.80,-48.00,1.00,0.00,1.00 -734,-72.00,-43.20,1.00,0.00,1.00 -735,-62.40,-43.20,1.00,0.00,1.00 -736,-57.60,-43.20,1.00,0.00,1.00 -737,-52.80,-38.40,1.00,0.00,1.00 -738,-48.00,-38.40,1.00,0.00,1.00 -739,-43.20,-33.60,1.00,0.00,1.00 -740,-38.40,-33.60,1.00,0.00,1.00 -741,-33.60,-28.80,1.00,0.00,1.00 -742,-28.80,-28.80,1.00,0.00,1.00 -743,-24.00,-24.00,1.00,0.00,1.00 -744,-19.20,-19.20,1.00,0.00,1.00 -745,-19.20,-19.20,1.00,0.00,1.00 -746,-14.40,-14.40,1.00,0.00,1.00 -747,-9.60,-9.60,1.00,0.00,1.00 -748,-4.80,-4.80,1.00,0.00,1.00 -749,-4.80,-4.80,1.00,0.00,1.00 -750,0.00,0.00,1.00,0.00,1.00 -751,4.80,4.80,1.00,0.00,1.00 -752,4.80,4.80,1.00,0.00,1.00 -753,9.60,9.60,1.00,0.00,1.00 -754,14.40,14.40,1.00,0.00,1.00 -755,19.20,14.40,1.00,0.00,1.00 -756,24.00,19.20,1.00,0.00,1.00 -757,24.00,24.00,1.00,0.00,1.00 -758,28.80,24.00,1.00,0.00,1.00 -759,33.60,28.80,1.00,0.00,1.00 -760,38.40,28.80,1.00,0.00,1.00 -761,43.20,33.60,1.00,0.00,1.00 -762,48.00,33.60,1.00,0.00,1.00 -763,52.80,38.40,1.00,0.00,1.00 -764,62.40,38.40,1.00,0.00,1.00 -765,67.20,38.40,1.00,0.00,1.00 -766,72.00,38.40,1.00,0.00,1.00 -767,76.80,43.20,1.00,0.00,1.00 -768,86.40,43.20,1.00,0.00,1.00 -769,91.20,43.20,1.00,0.00,1.00 -770,96.00,43.20,1.00,0.00,1.00 -771,105.60,43.20,1.00,0.00,1.00 -772,110.40,38.40,1.00,0.00,1.00 -773,115.20,38.40,1.00,0.00,1.00 -774,120.00,38.40,1.00,0.00,1.00 -775,129.60,33.60,1.00,0.00,1.00 -776,134.40,33.60,1.00,0.00,1.00 -777,139.20,28.80,1.00,0.00,1.00 -778,144.00,28.80,1.00,0.00,1.00 -779,148.80,24.00,1.00,0.00,1.00 -780,153.60,24.00,1.00,0.00,1.00 -781,153.60,19.20,1.00,0.00,1.00 -782,158.40,19.20,1.00,0.00,1.00 -783,163.20,14.40,1.00,0.00,1.00 -784,168.00,9.60,1.00,0.00,1.00 -785,172.80,9.60,1.00,0.00,1.00 -786,172.80,4.80,1.00,0.00,1.00 -787,177.60,0.00,1.00,0.00,1.00 -788,-177.60,-0.00,1.00,0.00,1.00 -789,-172.80,-4.80,1.00,0.00,1.00 -790,-172.80,-9.60,1.00,0.00,1.00 -791,-168.00,-9.60,1.00,0.00,1.00 -792,-163.20,-14.40,1.00,0.00,1.00 -793,-158.40,-19.20,1.00,0.00,1.00 -794,-153.60,-19.20,1.00,0.00,1.00 -795,-153.60,-24.00,1.00,0.00,1.00 -796,-148.80,-24.00,1.00,0.00,1.00 -797,-144.00,-28.80,1.00,0.00,1.00 -798,-139.20,-28.80,1.00,0.00,1.00 -799,-134.40,-33.60,1.00,0.00,1.00 -800,-129.60,-33.60,1.00,0.00,1.00 -801,-120.00,-38.40,1.00,0.00,1.00 -802,-115.20,-38.40,1.00,0.00,1.00 -803,-110.40,-38.40,1.00,0.00,1.00 -804,-105.60,-43.20,1.00,0.00,1.00 -805,-96.00,-43.20,1.00,0.00,1.00 -806,-91.20,-43.20,1.00,0.00,1.00 -807,-86.40,-43.20,1.00,0.00,1.00 -808,-76.80,-43.20,1.00,0.00,1.00 -809,-72.00,-38.40,1.00,0.00,1.00 -810,-67.20,-38.40,1.00,0.00,1.00 -811,-62.40,-38.40,1.00,0.00,1.00 -812,-52.80,-38.40,1.00,0.00,1.00 -813,-48.00,-33.60,1.00,0.00,1.00 -814,-43.20,-33.60,1.00,0.00,1.00 -815,-38.40,-28.80,1.00,0.00,1.00 -816,-33.60,-28.80,1.00,0.00,1.00 -817,-28.80,-24.00,1.00,0.00,1.00 -818,-24.00,-24.00,1.00,0.00,1.00 -819,-24.00,-19.20,1.00,0.00,1.00 -820,-19.20,-14.40,1.00,0.00,1.00 -821,-14.40,-14.40,1.00,0.00,1.00 -822,-9.60,-9.60,1.00,0.00,1.00 -823,-4.80,-4.80,1.00,0.00,1.00 -824,-4.80,-4.80,1.00,0.00,1.00 -825,0.00,0.00,1.00,0.00,1.00 -826,4.80,4.80,1.00,0.00,1.00 -827,9.60,4.80,1.00,0.00,1.00 -828,9.60,9.60,1.00,0.00,1.00 -829,14.40,9.60,1.00,0.00,1.00 -830,19.20,14.40,1.00,0.00,1.00 -831,24.00,19.20,1.00,0.00,1.00 -832,28.80,19.20,1.00,0.00,1.00 -833,33.60,24.00,1.00,0.00,1.00 -834,38.40,24.00,1.00,0.00,1.00 -835,43.20,28.80,1.00,0.00,1.00 -836,48.00,28.80,1.00,0.00,1.00 -837,52.80,28.80,1.00,0.00,1.00 -838,57.60,33.60,1.00,0.00,1.00 -839,62.40,33.60,1.00,0.00,1.00 -840,67.20,33.60,1.00,0.00,1.00 -841,72.00,38.40,1.00,0.00,1.00 -842,81.60,38.40,1.00,0.00,1.00 -843,86.40,38.40,1.00,0.00,1.00 -844,91.20,38.40,1.00,0.00,1.00 -845,96.00,38.40,1.00,0.00,1.00 -846,105.60,38.40,1.00,0.00,1.00 -847,110.40,33.60,1.00,0.00,1.00 -848,115.20,33.60,1.00,0.00,1.00 -849,120.00,33.60,1.00,0.00,1.00 -850,124.80,33.60,1.00,0.00,1.00 -851,129.60,28.80,1.00,0.00,1.00 -852,134.40,28.80,1.00,0.00,1.00 -853,139.20,24.00,1.00,0.00,1.00 -854,144.00,24.00,1.00,0.00,1.00 -855,148.80,19.20,1.00,0.00,1.00 -856,153.60,19.20,1.00,0.00,1.00 -857,158.40,14.40,1.00,0.00,1.00 -858,163.20,14.40,1.00,0.00,1.00 -859,168.00,9.60,1.00,0.00,1.00 -860,168.00,9.60,1.00,0.00,1.00 -861,172.80,4.80,1.00,0.00,1.00 -862,177.60,0.00,1.00,0.00,1.00 -863,-177.60,-0.00,1.00,0.00,1.00 -864,-172.80,-4.80,1.00,0.00,1.00 -865,-168.00,-9.60,1.00,0.00,1.00 -866,-168.00,-9.60,1.00,0.00,1.00 -867,-163.20,-14.40,1.00,0.00,1.00 -868,-158.40,-14.40,1.00,0.00,1.00 -869,-153.60,-19.20,1.00,0.00,1.00 -870,-148.80,-19.20,1.00,0.00,1.00 -871,-144.00,-24.00,1.00,0.00,1.00 -872,-139.20,-24.00,1.00,0.00,1.00 -873,-134.40,-28.80,1.00,0.00,1.00 -874,-129.60,-28.80,1.00,0.00,1.00 -875,-124.80,-33.60,1.00,0.00,1.00 -876,-120.00,-33.60,1.00,0.00,1.00 -877,-115.20,-33.60,1.00,0.00,1.00 -878,-110.40,-33.60,1.00,0.00,1.00 -879,-105.60,-38.40,1.00,0.00,1.00 -880,-96.00,-38.40,1.00,0.00,1.00 -881,-91.20,-38.40,1.00,0.00,1.00 -882,-86.40,-38.40,1.00,0.00,1.00 -883,-81.60,-38.40,1.00,0.00,1.00 -884,-72.00,-38.40,1.00,0.00,1.00 -885,-67.20,-33.60,1.00,0.00,1.00 -886,-62.40,-33.60,1.00,0.00,1.00 -887,-57.60,-33.60,1.00,0.00,1.00 -888,-52.80,-28.80,1.00,0.00,1.00 -889,-48.00,-28.80,1.00,0.00,1.00 -890,-43.20,-28.80,1.00,0.00,1.00 -891,-38.40,-24.00,1.00,0.00,1.00 -892,-33.60,-24.00,1.00,0.00,1.00 -893,-28.80,-19.20,1.00,0.00,1.00 -894,-24.00,-19.20,1.00,0.00,1.00 -895,-19.20,-14.40,1.00,0.00,1.00 -896,-14.40,-9.60,1.00,0.00,1.00 -897,-9.60,-9.60,1.00,0.00,1.00 -898,-9.60,-4.80,1.00,0.00,1.00 -899,-4.80,-4.80,1.00,0.00,1.00 -900,0.00,0.00,1.00,0.00,1.00 -901,4.80,4.80,1.00,0.00,1.00 -902,9.60,4.80,1.00,0.00,1.00 -903,14.40,9.60,1.00,0.00,1.00 -904,14.40,9.60,1.00,0.00,1.00 -905,19.20,14.40,1.00,0.00,1.00 -906,24.00,14.40,1.00,0.00,1.00 -907,28.80,19.20,1.00,0.00,1.00 -908,33.60,19.20,1.00,0.00,1.00 -909,38.40,19.20,1.00,0.00,1.00 -910,43.20,24.00,1.00,0.00,1.00 -911,48.00,24.00,1.00,0.00,1.00 -912,52.80,28.80,1.00,0.00,1.00 -913,57.60,28.80,1.00,0.00,1.00 -914,62.40,28.80,1.00,0.00,1.00 -915,67.20,28.80,1.00,0.00,1.00 -916,76.80,33.60,1.00,0.00,1.00 -917,81.60,33.60,1.00,0.00,1.00 -918,86.40,33.60,1.00,0.00,1.00 -919,91.20,33.60,1.00,0.00,1.00 -920,96.00,33.60,1.00,0.00,1.00 -921,100.80,33.60,1.00,0.00,1.00 -922,110.40,28.80,1.00,0.00,1.00 -923,115.20,28.80,1.00,0.00,1.00 -924,120.00,28.80,1.00,0.00,1.00 -925,124.80,28.80,1.00,0.00,1.00 -926,129.60,24.00,1.00,0.00,1.00 -927,134.40,24.00,1.00,0.00,1.00 -928,139.20,24.00,1.00,0.00,1.00 -929,144.00,19.20,1.00,0.00,1.00 -930,148.80,19.20,1.00,0.00,1.00 -931,153.60,14.40,1.00,0.00,1.00 -932,158.40,14.40,1.00,0.00,1.00 -933,163.20,9.60,1.00,0.00,1.00 -934,168.00,9.60,1.00,0.00,1.00 -935,168.00,4.80,1.00,0.00,1.00 -936,172.80,4.80,1.00,0.00,1.00 -937,177.60,0.00,1.00,0.00,1.00 -938,-177.60,-0.00,1.00,0.00,1.00 -939,-172.80,-4.80,1.00,0.00,1.00 -940,-168.00,-4.80,1.00,0.00,1.00 -941,-168.00,-9.60,1.00,0.00,1.00 -942,-163.20,-9.60,1.00,0.00,1.00 -943,-158.40,-14.40,1.00,0.00,1.00 -944,-153.60,-14.40,1.00,0.00,1.00 -945,-148.80,-19.20,1.00,0.00,1.00 -946,-144.00,-19.20,1.00,0.00,1.00 -947,-139.20,-24.00,1.00,0.00,1.00 -948,-134.40,-24.00,1.00,0.00,1.00 -949,-129.60,-24.00,1.00,0.00,1.00 -950,-124.80,-28.80,1.00,0.00,1.00 -951,-120.00,-28.80,1.00,0.00,1.00 -952,-115.20,-28.80,1.00,0.00,1.00 -953,-110.40,-28.80,1.00,0.00,1.00 -954,-100.80,-33.60,1.00,0.00,1.00 -955,-96.00,-33.60,1.00,0.00,1.00 -956,-91.20,-33.60,1.00,0.00,1.00 -957,-86.40,-33.60,1.00,0.00,1.00 -958,-81.60,-33.60,1.00,0.00,1.00 -959,-76.80,-33.60,1.00,0.00,1.00 -960,-67.20,-28.80,1.00,0.00,1.00 -961,-62.40,-28.80,1.00,0.00,1.00 -962,-57.60,-28.80,1.00,0.00,1.00 -963,-52.80,-28.80,1.00,0.00,1.00 -964,-48.00,-24.00,1.00,0.00,1.00 -965,-43.20,-24.00,1.00,0.00,1.00 -966,-38.40,-19.20,1.00,0.00,1.00 -967,-33.60,-19.20,1.00,0.00,1.00 -968,-28.80,-19.20,1.00,0.00,1.00 -969,-24.00,-14.40,1.00,0.00,1.00 -970,-19.20,-14.40,1.00,0.00,1.00 -971,-14.40,-9.60,1.00,0.00,1.00 -972,-14.40,-9.60,1.00,0.00,1.00 -973,-9.60,-4.80,1.00,0.00,1.00 -974,-4.80,-4.80,1.00,0.00,1.00 -975,0.00,0.00,1.00,0.00,1.00 -976,4.80,0.00,1.00,0.00,1.00 -977,9.60,4.80,1.00,0.00,1.00 -978,14.40,4.80,1.00,0.00,1.00 -979,19.20,9.60,1.00,0.00,1.00 -980,19.20,9.60,1.00,0.00,1.00 -981,24.00,14.40,1.00,0.00,1.00 -982,28.80,14.40,1.00,0.00,1.00 -983,33.60,14.40,1.00,0.00,1.00 -984,38.40,19.20,1.00,0.00,1.00 -985,43.20,19.20,1.00,0.00,1.00 -986,48.00,24.00,1.00,0.00,1.00 -987,52.80,24.00,1.00,0.00,1.00 -988,57.60,24.00,1.00,0.00,1.00 -989,62.40,24.00,1.00,0.00,1.00 -990,72.00,24.00,1.00,0.00,1.00 -991,76.80,28.80,1.00,0.00,1.00 -992,81.60,28.80,1.00,0.00,1.00 -993,86.40,28.80,1.00,0.00,1.00 -994,91.20,28.80,1.00,0.00,1.00 -995,96.00,28.80,1.00,0.00,1.00 -996,100.80,28.80,1.00,0.00,1.00 -997,105.60,28.80,1.00,0.00,1.00 -998,110.40,24.00,1.00,0.00,1.00 -999,120.00,24.00,1.00,0.00,1.00 -1000,124.80,24.00,1.00,0.00,1.00 -1001,129.60,24.00,1.00,0.00,1.00 -1002,134.40,19.20,1.00,0.00,1.00 -1003,139.20,19.20,1.00,0.00,1.00 -1004,144.00,19.20,1.00,0.00,1.00 -1005,148.80,14.40,1.00,0.00,1.00 -1006,153.60,14.40,1.00,0.00,1.00 -1007,158.40,9.60,1.00,0.00,1.00 -1008,158.40,9.60,1.00,0.00,1.00 -1009,163.20,9.60,1.00,0.00,1.00 -1010,168.00,4.80,1.00,0.00,1.00 -1011,172.80,4.80,1.00,0.00,1.00 -1012,177.60,0.00,1.00,0.00,1.00 -1013,-177.60,-0.00,1.00,0.00,1.00 -1014,-172.80,-4.80,1.00,0.00,1.00 -1015,-168.00,-4.80,1.00,0.00,1.00 -1016,-163.20,-9.60,1.00,0.00,1.00 -1017,-158.40,-9.60,1.00,0.00,1.00 -1018,-158.40,-9.60,1.00,0.00,1.00 -1019,-153.60,-14.40,1.00,0.00,1.00 -1020,-148.80,-14.40,1.00,0.00,1.00 -1021,-144.00,-19.20,1.00,0.00,1.00 -1022,-139.20,-19.20,1.00,0.00,1.00 -1023,-134.40,-19.20,1.00,0.00,1.00 -1024,-129.60,-24.00,1.00,0.00,1.00 -1025,-124.80,-24.00,1.00,0.00,1.00 -1026,-120.00,-24.00,1.00,0.00,1.00 -1027,-110.40,-24.00,1.00,0.00,1.00 -1028,-105.60,-28.80,1.00,0.00,1.00 -1029,-100.80,-28.80,1.00,0.00,1.00 -1030,-96.00,-28.80,1.00,0.00,1.00 -1031,-91.20,-28.80,1.00,0.00,1.00 -1032,-86.40,-28.80,1.00,0.00,1.00 -1033,-81.60,-28.80,1.00,0.00,1.00 -1034,-76.80,-28.80,1.00,0.00,1.00 -1035,-72.00,-24.00,1.00,0.00,1.00 -1036,-62.40,-24.00,1.00,0.00,1.00 -1037,-57.60,-24.00,1.00,0.00,1.00 -1038,-52.80,-24.00,1.00,0.00,1.00 -1039,-48.00,-24.00,1.00,0.00,1.00 -1040,-43.20,-19.20,1.00,0.00,1.00 -1041,-38.40,-19.20,1.00,0.00,1.00 -1042,-33.60,-14.40,1.00,0.00,1.00 -1043,-28.80,-14.40,1.00,0.00,1.00 -1044,-24.00,-14.40,1.00,0.00,1.00 -1045,-19.20,-9.60,1.00,0.00,1.00 -1046,-19.20,-9.60,1.00,0.00,1.00 -1047,-14.40,-4.80,1.00,0.00,1.00 -1048,-9.60,-4.80,1.00,0.00,1.00 -1049,-4.80,-0.00,1.00,0.00,1.00 -1050,0.00,0.00,1.00,0.00,1.00 -1051,4.80,0.00,1.00,0.00,1.00 -1052,9.60,4.80,1.00,0.00,1.00 -1053,14.40,4.80,1.00,0.00,1.00 -1054,19.20,9.60,1.00,0.00,1.00 -1055,24.00,9.60,1.00,0.00,1.00 -1056,28.80,9.60,1.00,0.00,1.00 -1057,33.60,14.40,1.00,0.00,1.00 -1058,38.40,14.40,1.00,0.00,1.00 -1059,43.20,14.40,1.00,0.00,1.00 -1060,48.00,14.40,1.00,0.00,1.00 -1061,52.80,19.20,1.00,0.00,1.00 -1062,57.60,19.20,1.00,0.00,1.00 -1063,62.40,19.20,1.00,0.00,1.00 -1064,67.20,19.20,1.00,0.00,1.00 -1065,72.00,24.00,1.00,0.00,1.00 -1066,76.80,24.00,1.00,0.00,1.00 -1067,81.60,24.00,1.00,0.00,1.00 -1068,86.40,24.00,1.00,0.00,1.00 -1069,91.20,24.00,1.00,0.00,1.00 -1070,96.00,24.00,1.00,0.00,1.00 -1071,100.80,24.00,1.00,0.00,1.00 -1072,105.60,24.00,1.00,0.00,1.00 -1073,110.40,19.20,1.00,0.00,1.00 -1074,115.20,19.20,1.00,0.00,1.00 -1075,120.00,19.20,1.00,0.00,1.00 -1076,124.80,19.20,1.00,0.00,1.00 -1077,129.60,19.20,1.00,0.00,1.00 -1078,134.40,14.40,1.00,0.00,1.00 -1079,139.20,14.40,1.00,0.00,1.00 -1080,144.00,14.40,1.00,0.00,1.00 -1081,148.80,9.60,1.00,0.00,1.00 -1082,153.60,9.60,1.00,0.00,1.00 -1083,158.40,9.60,1.00,0.00,1.00 -1084,163.20,4.80,1.00,0.00,1.00 -1085,168.00,4.80,1.00,0.00,1.00 -1086,172.80,4.80,1.00,0.00,1.00 -1087,177.60,0.00,1.00,0.00,1.00 -1088,-177.60,-0.00,1.00,0.00,1.00 -1089,-172.80,-4.80,1.00,0.00,1.00 -1090,-168.00,-4.80,1.00,0.00,1.00 -1091,-163.20,-4.80,1.00,0.00,1.00 -1092,-158.40,-9.60,1.00,0.00,1.00 -1093,-153.60,-9.60,1.00,0.00,1.00 -1094,-148.80,-9.60,1.00,0.00,1.00 -1095,-144.00,-14.40,1.00,0.00,1.00 -1096,-139.20,-14.40,1.00,0.00,1.00 -1097,-134.40,-14.40,1.00,0.00,1.00 -1098,-129.60,-19.20,1.00,0.00,1.00 -1099,-124.80,-19.20,1.00,0.00,1.00 -1100,-120.00,-19.20,1.00,0.00,1.00 -1101,-115.20,-19.20,1.00,0.00,1.00 -1102,-110.40,-19.20,1.00,0.00,1.00 -1103,-105.60,-24.00,1.00,0.00,1.00 -1104,-100.80,-24.00,1.00,0.00,1.00 -1105,-96.00,-24.00,1.00,0.00,1.00 -1106,-91.20,-24.00,1.00,0.00,1.00 -1107,-86.40,-24.00,1.00,0.00,1.00 -1108,-81.60,-24.00,1.00,0.00,1.00 -1109,-76.80,-24.00,1.00,0.00,1.00 -1110,-72.00,-24.00,1.00,0.00,1.00 -1111,-67.20,-19.20,1.00,0.00,1.00 -1112,-62.40,-19.20,1.00,0.00,1.00 -1113,-57.60,-19.20,1.00,0.00,1.00 -1114,-52.80,-19.20,1.00,0.00,1.00 -1115,-48.00,-14.40,1.00,0.00,1.00 -1116,-43.20,-14.40,1.00,0.00,1.00 -1117,-38.40,-14.40,1.00,0.00,1.00 -1118,-33.60,-14.40,1.00,0.00,1.00 -1119,-28.80,-9.60,1.00,0.00,1.00 -1120,-24.00,-9.60,1.00,0.00,1.00 -1121,-19.20,-9.60,1.00,0.00,1.00 -1122,-14.40,-4.80,1.00,0.00,1.00 -1123,-9.60,-4.80,1.00,0.00,1.00 -1124,-4.80,-0.00,1.00,0.00,1.00 -1125,0.00,0.00,1.00,0.00,1.00 -1126,4.80,0.00,1.00,0.00,1.00 -1127,9.60,4.80,1.00,0.00,1.00 -1128,14.40,4.80,1.00,0.00,1.00 -1129,19.20,4.80,1.00,0.00,1.00 -1130,24.00,9.60,1.00,0.00,1.00 -1131,28.80,9.60,1.00,0.00,1.00 -1132,33.60,9.60,1.00,0.00,1.00 -1133,38.40,9.60,1.00,0.00,1.00 -1134,43.20,14.40,1.00,0.00,1.00 -1135,48.00,14.40,1.00,0.00,1.00 -1136,52.80,14.40,1.00,0.00,1.00 -1137,57.60,14.40,1.00,0.00,1.00 -1138,62.40,14.40,1.00,0.00,1.00 -1139,67.20,14.40,1.00,0.00,1.00 -1140,72.00,19.20,1.00,0.00,1.00 -1141,76.80,19.20,1.00,0.00,1.00 -1142,81.60,19.20,1.00,0.00,1.00 -1143,86.40,19.20,1.00,0.00,1.00 -1144,91.20,19.20,1.00,0.00,1.00 -1145,96.00,19.20,1.00,0.00,1.00 -1146,100.80,19.20,1.00,0.00,1.00 -1147,105.60,19.20,1.00,0.00,1.00 -1148,110.40,19.20,1.00,0.00,1.00 -1149,115.20,14.40,1.00,0.00,1.00 -1150,120.00,14.40,1.00,0.00,1.00 -1151,124.80,14.40,1.00,0.00,1.00 -1152,129.60,14.40,1.00,0.00,1.00 -1153,134.40,14.40,1.00,0.00,1.00 -1154,139.20,9.60,1.00,0.00,1.00 -1155,144.00,9.60,1.00,0.00,1.00 -1156,148.80,9.60,1.00,0.00,1.00 -1157,153.60,9.60,1.00,0.00,1.00 -1158,158.40,4.80,1.00,0.00,1.00 -1159,163.20,4.80,1.00,0.00,1.00 -1160,168.00,4.80,1.00,0.00,1.00 -1161,172.80,0.00,1.00,0.00,1.00 -1162,177.60,0.00,1.00,0.00,1.00 -1163,-177.60,-0.00,1.00,0.00,1.00 -1164,-172.80,-0.00,1.00,0.00,1.00 -1165,-168.00,-4.80,1.00,0.00,1.00 -1166,-163.20,-4.80,1.00,0.00,1.00 -1167,-158.40,-4.80,1.00,0.00,1.00 -1168,-153.60,-9.60,1.00,0.00,1.00 -1169,-148.80,-9.60,1.00,0.00,1.00 -1170,-144.00,-9.60,1.00,0.00,1.00 -1171,-139.20,-9.60,1.00,0.00,1.00 -1172,-134.40,-14.40,1.00,0.00,1.00 -1173,-129.60,-14.40,1.00,0.00,1.00 -1174,-124.80,-14.40,1.00,0.00,1.00 -1175,-120.00,-14.40,1.00,0.00,1.00 -1176,-115.20,-14.40,1.00,0.00,1.00 -1177,-110.40,-19.20,1.00,0.00,1.00 -1178,-105.60,-19.20,1.00,0.00,1.00 -1179,-100.80,-19.20,1.00,0.00,1.00 -1180,-96.00,-19.20,1.00,0.00,1.00 -1181,-91.20,-19.20,1.00,0.00,1.00 -1182,-86.40,-19.20,1.00,0.00,1.00 -1183,-81.60,-19.20,1.00,0.00,1.00 -1184,-76.80,-19.20,1.00,0.00,1.00 -1185,-72.00,-19.20,1.00,0.00,1.00 -1186,-67.20,-14.40,1.00,0.00,1.00 -1187,-62.40,-14.40,1.00,0.00,1.00 -1188,-57.60,-14.40,1.00,0.00,1.00 -1189,-52.80,-14.40,1.00,0.00,1.00 -1190,-48.00,-14.40,1.00,0.00,1.00 -1191,-43.20,-14.40,1.00,0.00,1.00 -1192,-38.40,-9.60,1.00,0.00,1.00 -1193,-33.60,-9.60,1.00,0.00,1.00 -1194,-28.80,-9.60,1.00,0.00,1.00 -1195,-24.00,-9.60,1.00,0.00,1.00 -1196,-19.20,-4.80,1.00,0.00,1.00 -1197,-14.40,-4.80,1.00,0.00,1.00 -1198,-9.60,-4.80,1.00,0.00,1.00 -1199,-4.80,-0.00,1.00,0.00,1.00 -1200,0.00,0.00,1.00,0.00,1.00 -1201,4.80,0.00,1.00,0.00,1.00 -1202,9.60,0.00,1.00,0.00,1.00 -1203,14.40,4.80,1.00,0.00,1.00 -1204,19.20,4.80,1.00,0.00,1.00 -1205,24.00,4.80,1.00,0.00,1.00 -1206,28.80,4.80,1.00,0.00,1.00 -1207,33.60,9.60,1.00,0.00,1.00 -1208,38.40,9.60,1.00,0.00,1.00 -1209,43.20,9.60,1.00,0.00,1.00 -1210,48.00,9.60,1.00,0.00,1.00 -1211,52.80,9.60,1.00,0.00,1.00 -1212,57.60,9.60,1.00,0.00,1.00 -1213,62.40,9.60,1.00,0.00,1.00 -1214,67.20,14.40,1.00,0.00,1.00 -1215,72.00,14.40,1.00,0.00,1.00 -1216,76.80,14.40,1.00,0.00,1.00 -1217,81.60,14.40,1.00,0.00,1.00 -1218,86.40,14.40,1.00,0.00,1.00 -1219,91.20,14.40,1.00,0.00,1.00 -1220,96.00,14.40,1.00,0.00,1.00 -1221,100.80,14.40,1.00,0.00,1.00 -1222,105.60,14.40,1.00,0.00,1.00 -1223,110.40,14.40,1.00,0.00,1.00 -1224,115.20,9.60,1.00,0.00,1.00 -1225,120.00,9.60,1.00,0.00,1.00 -1226,124.80,9.60,1.00,0.00,1.00 -1227,129.60,9.60,1.00,0.00,1.00 -1228,134.40,9.60,1.00,0.00,1.00 -1229,139.20,9.60,1.00,0.00,1.00 -1230,144.00,9.60,1.00,0.00,1.00 -1231,148.80,4.80,1.00,0.00,1.00 -1232,153.60,4.80,1.00,0.00,1.00 -1233,158.40,4.80,1.00,0.00,1.00 -1234,163.20,4.80,1.00,0.00,1.00 -1235,168.00,4.80,1.00,0.00,1.00 -1236,172.80,0.00,1.00,0.00,1.00 -1237,177.60,0.00,1.00,0.00,1.00 -1238,-177.60,-0.00,1.00,0.00,1.00 -1239,-172.80,-0.00,1.00,0.00,1.00 -1240,-168.00,-4.80,1.00,0.00,1.00 -1241,-163.20,-4.80,1.00,0.00,1.00 -1242,-158.40,-4.80,1.00,0.00,1.00 -1243,-153.60,-4.80,1.00,0.00,1.00 -1244,-148.80,-4.80,1.00,0.00,1.00 -1245,-144.00,-9.60,1.00,0.00,1.00 -1246,-139.20,-9.60,1.00,0.00,1.00 -1247,-134.40,-9.60,1.00,0.00,1.00 -1248,-129.60,-9.60,1.00,0.00,1.00 -1249,-124.80,-9.60,1.00,0.00,1.00 -1250,-120.00,-9.60,1.00,0.00,1.00 -1251,-115.20,-9.60,1.00,0.00,1.00 -1252,-110.40,-14.40,1.00,0.00,1.00 -1253,-105.60,-14.40,1.00,0.00,1.00 -1254,-100.80,-14.40,1.00,0.00,1.00 -1255,-96.00,-14.40,1.00,0.00,1.00 -1256,-91.20,-14.40,1.00,0.00,1.00 -1257,-86.40,-14.40,1.00,0.00,1.00 -1258,-81.60,-14.40,1.00,0.00,1.00 -1259,-76.80,-14.40,1.00,0.00,1.00 -1260,-72.00,-14.40,1.00,0.00,1.00 -1261,-67.20,-14.40,1.00,0.00,1.00 -1262,-62.40,-9.60,1.00,0.00,1.00 -1263,-57.60,-9.60,1.00,0.00,1.00 -1264,-52.80,-9.60,1.00,0.00,1.00 -1265,-48.00,-9.60,1.00,0.00,1.00 -1266,-43.20,-9.60,1.00,0.00,1.00 -1267,-38.40,-9.60,1.00,0.00,1.00 -1268,-33.60,-9.60,1.00,0.00,1.00 -1269,-28.80,-4.80,1.00,0.00,1.00 -1270,-24.00,-4.80,1.00,0.00,1.00 -1271,-19.20,-4.80,1.00,0.00,1.00 -1272,-14.40,-4.80,1.00,0.00,1.00 -1273,-9.60,-0.00,1.00,0.00,1.00 -1274,-4.80,-0.00,1.00,0.00,1.00 -1275,0.00,0.00,1.00,0.00,1.00 -1276,4.80,0.00,1.00,0.00,1.00 -1277,9.60,0.00,1.00,0.00,1.00 -1278,14.40,0.00,1.00,0.00,1.00 -1279,19.20,4.80,1.00,0.00,1.00 -1280,24.00,4.80,1.00,0.00,1.00 -1281,28.80,4.80,1.00,0.00,1.00 -1282,33.60,4.80,1.00,0.00,1.00 -1283,38.40,4.80,1.00,0.00,1.00 -1284,43.20,4.80,1.00,0.00,1.00 -1285,48.00,4.80,1.00,0.00,1.00 -1286,52.80,4.80,1.00,0.00,1.00 -1287,57.60,4.80,1.00,0.00,1.00 -1288,62.40,9.60,1.00,0.00,1.00 -1289,67.20,9.60,1.00,0.00,1.00 -1290,72.00,9.60,1.00,0.00,1.00 -1291,76.80,9.60,1.00,0.00,1.00 -1292,81.60,9.60,1.00,0.00,1.00 -1293,86.40,9.60,1.00,0.00,1.00 -1294,91.20,9.60,1.00,0.00,1.00 -1295,96.00,9.60,1.00,0.00,1.00 -1296,100.80,9.60,1.00,0.00,1.00 -1297,105.60,9.60,1.00,0.00,1.00 -1298,110.40,9.60,1.00,0.00,1.00 -1299,115.20,9.60,1.00,0.00,1.00 -1300,120.00,9.60,1.00,0.00,1.00 -1301,124.80,4.80,1.00,0.00,1.00 -1302,129.60,4.80,1.00,0.00,1.00 -1303,134.40,4.80,1.00,0.00,1.00 -1304,139.20,4.80,1.00,0.00,1.00 -1305,144.00,4.80,1.00,0.00,1.00 -1306,148.80,4.80,1.00,0.00,1.00 -1307,153.60,4.80,1.00,0.00,1.00 -1308,158.40,4.80,1.00,0.00,1.00 -1309,163.20,4.80,1.00,0.00,1.00 -1310,168.00,0.00,1.00,0.00,1.00 -1311,172.80,0.00,1.00,0.00,1.00 -1312,177.60,0.00,1.00,0.00,1.00 -1313,-177.60,-0.00,1.00,0.00,1.00 -1314,-172.80,-0.00,1.00,0.00,1.00 -1315,-168.00,-0.00,1.00,0.00,1.00 -1316,-163.20,-4.80,1.00,0.00,1.00 -1317,-158.40,-4.80,1.00,0.00,1.00 -1318,-153.60,-4.80,1.00,0.00,1.00 -1319,-148.80,-4.80,1.00,0.00,1.00 -1320,-144.00,-4.80,1.00,0.00,1.00 -1321,-139.20,-4.80,1.00,0.00,1.00 -1322,-134.40,-4.80,1.00,0.00,1.00 -1323,-129.60,-4.80,1.00,0.00,1.00 -1324,-124.80,-4.80,1.00,0.00,1.00 -1325,-120.00,-9.60,1.00,0.00,1.00 -1326,-115.20,-9.60,1.00,0.00,1.00 -1327,-110.40,-9.60,1.00,0.00,1.00 -1328,-105.60,-9.60,1.00,0.00,1.00 -1329,-100.80,-9.60,1.00,0.00,1.00 -1330,-96.00,-9.60,1.00,0.00,1.00 -1331,-91.20,-9.60,1.00,0.00,1.00 -1332,-86.40,-9.60,1.00,0.00,1.00 -1333,-81.60,-9.60,1.00,0.00,1.00 -1334,-76.80,-9.60,1.00,0.00,1.00 -1335,-72.00,-9.60,1.00,0.00,1.00 -1336,-67.20,-9.60,1.00,0.00,1.00 -1337,-62.40,-9.60,1.00,0.00,1.00 -1338,-57.60,-4.80,1.00,0.00,1.00 -1339,-52.80,-4.80,1.00,0.00,1.00 -1340,-48.00,-4.80,1.00,0.00,1.00 -1341,-43.20,-4.80,1.00,0.00,1.00 -1342,-38.40,-4.80,1.00,0.00,1.00 -1343,-33.60,-4.80,1.00,0.00,1.00 -1344,-28.80,-4.80,1.00,0.00,1.00 -1345,-24.00,-4.80,1.00,0.00,1.00 -1346,-19.20,-4.80,1.00,0.00,1.00 -1347,-14.40,-0.00,1.00,0.00,1.00 -1348,-9.60,-0.00,1.00,0.00,1.00 -1349,-4.80,-0.00,1.00,0.00,1.00 -1350,0.00,0.00,1.00,0.00,1.00 -1351,4.80,0.00,1.00,0.00,1.00 -1352,9.60,0.00,1.00,0.00,1.00 -1353,14.40,0.00,1.00,0.00,1.00 -1354,19.20,0.00,1.00,0.00,1.00 -1355,24.00,0.00,1.00,0.00,1.00 -1356,28.80,0.00,1.00,0.00,1.00 -1357,33.60,0.00,1.00,0.00,1.00 -1358,38.40,0.00,1.00,0.00,1.00 -1359,43.20,4.80,1.00,0.00,1.00 -1360,48.00,4.80,1.00,0.00,1.00 -1361,52.80,4.80,1.00,0.00,1.00 -1362,57.60,4.80,1.00,0.00,1.00 -1363,62.40,4.80,1.00,0.00,1.00 -1364,67.20,4.80,1.00,0.00,1.00 -1365,72.00,4.80,1.00,0.00,1.00 -1366,76.80,4.80,1.00,0.00,1.00 -1367,81.60,4.80,1.00,0.00,1.00 -1368,86.40,4.80,1.00,0.00,1.00 -1369,91.20,4.80,1.00,0.00,1.00 -1370,96.00,4.80,1.00,0.00,1.00 -1371,100.80,4.80,1.00,0.00,1.00 -1372,105.60,4.80,1.00,0.00,1.00 -1373,110.40,4.80,1.00,0.00,1.00 -1374,115.20,4.80,1.00,0.00,1.00 -1375,120.00,4.80,1.00,0.00,1.00 -1376,124.80,4.80,1.00,0.00,1.00 -1377,129.60,4.80,1.00,0.00,1.00 -1378,134.40,4.80,1.00,0.00,1.00 -1379,139.20,0.00,1.00,0.00,1.00 -1380,144.00,0.00,1.00,0.00,1.00 -1381,148.80,0.00,1.00,0.00,1.00 -1382,153.60,0.00,1.00,0.00,1.00 -1383,158.40,0.00,1.00,0.00,1.00 -1384,163.20,0.00,1.00,0.00,1.00 -1385,168.00,0.00,1.00,0.00,1.00 -1386,172.80,0.00,1.00,0.00,1.00 -1387,177.60,0.00,1.00,0.00,1.00 -1388,-177.60,-0.00,1.00,0.00,1.00 -1389,-172.80,-0.00,1.00,0.00,1.00 -1390,-168.00,-0.00,1.00,0.00,1.00 -1391,-163.20,-0.00,1.00,0.00,1.00 -1392,-158.40,-0.00,1.00,0.00,1.00 -1393,-153.60,-0.00,1.00,0.00,1.00 -1394,-148.80,-0.00,1.00,0.00,1.00 -1395,-144.00,-0.00,1.00,0.00,1.00 -1396,-139.20,-0.00,1.00,0.00,1.00 -1397,-134.40,-4.80,1.00,0.00,1.00 -1398,-129.60,-4.80,1.00,0.00,1.00 -1399,-124.80,-4.80,1.00,0.00,1.00 -1400,-120.00,-4.80,1.00,0.00,1.00 -1401,-115.20,-4.80,1.00,0.00,1.00 -1402,-110.40,-4.80,1.00,0.00,1.00 -1403,-105.60,-4.80,1.00,0.00,1.00 -1404,-100.80,-4.80,1.00,0.00,1.00 -1405,-96.00,-4.80,1.00,0.00,1.00 -1406,-91.20,-4.80,1.00,0.00,1.00 -1407,-86.40,-4.80,1.00,0.00,1.00 -1408,-81.60,-4.80,1.00,0.00,1.00 -1409,-76.80,-4.80,1.00,0.00,1.00 -1410,-72.00,-4.80,1.00,0.00,1.00 -1411,-67.20,-4.80,1.00,0.00,1.00 -1412,-62.40,-4.80,1.00,0.00,1.00 -1413,-57.60,-4.80,1.00,0.00,1.00 -1414,-52.80,-4.80,1.00,0.00,1.00 -1415,-48.00,-4.80,1.00,0.00,1.00 -1416,-43.20,-4.80,1.00,0.00,1.00 -1417,-38.40,-0.00,1.00,0.00,1.00 -1418,-33.60,-0.00,1.00,0.00,1.00 -1419,-28.80,-0.00,1.00,0.00,1.00 -1420,-24.00,-0.00,1.00,0.00,1.00 -1421,-19.20,-0.00,1.00,0.00,1.00 -1422,-14.40,-0.00,1.00,0.00,1.00 -1423,-9.60,-0.00,1.00,0.00,1.00 -1424,-4.80,-0.00,1.00,0.00,1.00 -1425,0.00,0.00,1.00,0.00,1.00 -1426,4.80,-0.00,1.00,0.00,1.00 -1427,9.60,-0.00,1.00,0.00,1.00 -1428,14.40,-0.00,1.00,0.00,1.00 -1429,19.20,-0.00,1.00,0.00,1.00 -1430,24.00,-0.00,1.00,0.00,1.00 -1431,28.80,-0.00,1.00,0.00,1.00 -1432,33.60,-0.00,1.00,0.00,1.00 -1433,38.40,-0.00,1.00,0.00,1.00 -1434,43.20,-0.00,1.00,0.00,1.00 -1435,48.00,-0.00,1.00,0.00,1.00 -1436,52.80,-0.00,1.00,0.00,1.00 -1437,57.60,-0.00,1.00,0.00,1.00 -1438,62.40,-0.00,1.00,0.00,1.00 -1439,67.20,-0.00,1.00,0.00,1.00 -1440,72.00,-0.00,1.00,0.00,1.00 -1441,76.80,-0.00,1.00,0.00,1.00 -1442,81.60,-0.00,1.00,0.00,1.00 -1443,86.40,-0.00,1.00,0.00,1.00 -1444,91.20,-0.00,1.00,0.00,1.00 -1445,96.00,-0.00,1.00,0.00,1.00 -1446,100.80,-0.00,1.00,0.00,1.00 -1447,105.60,-0.00,1.00,0.00,1.00 -1448,110.40,-0.00,1.00,0.00,1.00 -1449,115.20,-0.00,1.00,0.00,1.00 -1450,120.00,-0.00,1.00,0.00,1.00 -1451,124.80,-0.00,1.00,0.00,1.00 -1452,129.60,-0.00,1.00,0.00,1.00 -1453,134.40,-0.00,1.00,0.00,1.00 -1454,139.20,-0.00,1.00,0.00,1.00 -1455,144.00,-0.00,1.00,0.00,1.00 -1456,148.80,-0.00,1.00,0.00,1.00 -1457,153.60,-0.00,1.00,0.00,1.00 -1458,158.40,-0.00,1.00,0.00,1.00 -1459,163.20,-0.00,1.00,0.00,1.00 -1460,168.00,-0.00,1.00,0.00,1.00 -1461,172.80,-0.00,1.00,0.00,1.00 -1462,177.60,-0.00,1.00,0.00,1.00 -1463,-177.60,0.00,1.00,0.00,1.00 -1464,-172.80,0.00,1.00,0.00,1.00 -1465,-168.00,0.00,1.00,0.00,1.00 -1466,-163.20,0.00,1.00,0.00,1.00 -1467,-158.40,0.00,1.00,0.00,1.00 -1468,-153.60,0.00,1.00,0.00,1.00 -1469,-148.80,0.00,1.00,0.00,1.00 -1470,-144.00,0.00,1.00,0.00,1.00 -1471,-139.20,0.00,1.00,0.00,1.00 -1472,-134.40,0.00,1.00,0.00,1.00 -1473,-129.60,0.00,1.00,0.00,1.00 -1474,-124.80,0.00,1.00,0.00,1.00 -1475,-120.00,0.00,1.00,0.00,1.00 -1476,-115.20,0.00,1.00,0.00,1.00 -1477,-110.40,0.00,1.00,0.00,1.00 -1478,-105.60,0.00,1.00,0.00,1.00 -1479,-100.80,0.00,1.00,0.00,1.00 -1480,-96.00,0.00,1.00,0.00,1.00 -1481,-91.20,0.00,1.00,0.00,1.00 -1482,-86.40,0.00,1.00,0.00,1.00 -1483,-81.60,0.00,1.00,0.00,1.00 -1484,-76.80,0.00,1.00,0.00,1.00 -1485,-72.00,0.00,1.00,0.00,1.00 -1486,-67.20,0.00,1.00,0.00,1.00 -1487,-62.40,0.00,1.00,0.00,1.00 -1488,-57.60,0.00,1.00,0.00,1.00 -1489,-52.80,0.00,1.00,0.00,1.00 -1490,-48.00,0.00,1.00,0.00,1.00 -1491,-43.20,0.00,1.00,0.00,1.00 -1492,-38.40,0.00,1.00,0.00,1.00 -1493,-33.60,0.00,1.00,0.00,1.00 -1494,-28.80,0.00,1.00,0.00,1.00 -1495,-24.00,0.00,1.00,0.00,1.00 -1496,-19.20,0.00,1.00,0.00,1.00 -1497,-14.40,0.00,1.00,0.00,1.00 -1498,-9.60,0.00,1.00,0.00,1.00 -1499,-4.80,0.00,1.00,0.00,1.00 diff --git a/tests/renderer/data/stv_IVASMASA_1dir1TC.met b/tests/renderer/data/stv_IVASMASA_1dir1TC.met deleted file mode 100644 index f2ce23bd20..0000000000 --- a/tests/renderer/data/stv_IVASMASA_1dir1TC.met +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6349efe3448d28979b80744bcdc29d57f1c025704939b42d7b913d7fc3f23ccc -size 102300 diff --git a/tests/renderer/data/stv_IVASMASA_1dir1TC.pcm b/tests/renderer/data/stv_IVASMASA_1dir1TC.pcm deleted file mode 100644 index 8f2bfc54e0..0000000000 --- a/tests/renderer/data/stv_IVASMASA_1dir1TC.pcm +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4dbbaa5c75c36bc74a100bc5721bc3cf2af4e22e2854a5b85c93532556afc776 -size 288000 diff --git a/tests/renderer/data/stv_IVASMASA_1dir2TC.met b/tests/renderer/data/stv_IVASMASA_1dir2TC.met deleted file mode 100644 index 00acdae539..0000000000 --- a/tests/renderer/data/stv_IVASMASA_1dir2TC.met +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a1f87bfe360dbd221a94583aa68a58ef050e968a63351730d643f2dc2cac4e1 -size 204600 diff --git a/tests/renderer/data/stv_IVASMASA_1dir2TC.pcm b/tests/renderer/data/stv_IVASMASA_1dir2TC.pcm deleted file mode 100644 index 491e75f868..0000000000 --- a/tests/renderer/data/stv_IVASMASA_1dir2TC.pcm +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd34c99b89d9c1ed3514c3f8e32faf6b82fbc8bf364bc464904fc1c745266350 -size 1152000 diff --git a/tests/renderer/data/stv_IVASMASA_2dir1TC.met b/tests/renderer/data/stv_IVASMASA_2dir1TC.met deleted file mode 100644 index 6468877408..0000000000 --- a/tests/renderer/data/stv_IVASMASA_2dir1TC.met +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d125a4c4e3989ac55f9c2617f464431feae4ede9b2e15d087d3271c0a4a56303 -size 319800 diff --git a/tests/renderer/data/stv_IVASMASA_2dir1TC.pcm b/tests/renderer/data/stv_IVASMASA_2dir1TC.pcm deleted file mode 100644 index 7c7209de2d..0000000000 --- a/tests/renderer/data/stv_IVASMASA_2dir1TC.pcm +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5afc7014451a8599f8399e3a503a29b23d22843ef482c0a701d4c46f6329ebc4 -size 576000 diff --git a/tests/renderer/data/stv_IVASMASA_2dir2TC.met b/tests/renderer/data/stv_IVASMASA_2dir2TC.met deleted file mode 100644 index 1b62022af5..0000000000 --- a/tests/renderer/data/stv_IVASMASA_2dir2TC.met +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2eb412d646d7a32c77413dea54dc44cf45dc49e6d8c2de19abe4f4b93a91fa4a -size 159900 diff --git a/tests/renderer/data/stv_IVASMASA_2dir2TC.pcm b/tests/renderer/data/stv_IVASMASA_2dir2TC.pcm deleted file mode 100644 index ac8d4d341a..0000000000 --- a/tests/renderer/data/stv_IVASMASA_2dir2TC.pcm +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d6c264295987b7db2a9a6a1352dd0b9c91a824fcc37c5631e0ba39e92df33f8 -size 576000 diff --git a/tests/renderer/utils.py b/tests/renderer/utils.py index 89ffbe0f6d..017c56a97b 100644 --- a/tests/renderer/utils.py +++ b/tests/renderer/utils.py @@ -236,7 +236,7 @@ def run_crend_unittest( in_meta_files: Optional[list] = None, trj_file: Optional[str] = None, ) -> Tuple[np.ndarray, int]: - """CuT creation with standalone renderer""" + """Reference creation with standalone renderer""" if trj_file is not None: trj_name = f"_{trj_file.stem}" else: @@ -285,7 +285,7 @@ def run_td_standalone( in_meta_files: Optional[list] = None, trj_file: Optional[str] = None, ): - """CuT creation with TD Object renderer""" + """Reference creation with TD Object renderer""" if trj_file is not None: trj_name = f"_{trj_file.stem}" else: @@ -346,7 +346,7 @@ def run_pyscripts( in_meta_files: Optional[list] = None, trj_file: Optional[str] = None, ) -> Tuple[np.ndarray, int]: - """Reference rendering with pyaudio3dtools""" + """Reference creation with pyaudio3dtools""" if trj_file is not None: trj_name = f"_{trj_file.stem}" else: -- GitLab From 6edf47dd14251c9f3086f09e5f4747491bbaa9ef Mon Sep 17 00:00:00 2001 From: rtyag Date: Mon, 7 Nov 2022 15:20:20 +1100 Subject: [PATCH 428/479] enabling switch FIX_I1_113 and fixes for compilation errors --- lib_com/ivas_spar_com.c | 4 ++-- lib_com/options.h | 2 +- lib_enc/ivas_mct_core_enc.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index 89b59d9392..bf6e3908d5 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -2186,7 +2186,7 @@ void ivas_spar_bitrate_dist( { for ( i = 0; i < nchan_transport; i++ ) { - core_range_bits[i] = (int16_t) ( ( ivas_spar_br_table_consts[table_idx].evs_brs[i][2] - ivas_spar_br_table_consts[table_idx].evs_brs[i][0] ) / FRAMES_PER_SEC ); + core_range_bits[i] = (int16_t) ( ( ivas_spar_br_table_consts[table_idx].core_brs[i][2] - ivas_spar_br_table_consts[table_idx].core_brs[i][0] ) / FRAMES_PER_SEC ); core_bits_act[i] += min( residual_bits, core_range_bits[i] ); residual_bits -= core_range_bits[i]; @@ -2200,7 +2200,7 @@ void ivas_spar_bitrate_dist( { for ( i = 0; i < nchan_transport; i++ ) { - core_range_bits[i] = (int16_t) ( ( ivas_spar_br_table_consts[table_idx].core_brs[i][0] - ivas_spar_br_table_consts[table_idx].evs_brs[i][1] ) / FRAMES_PER_SEC ); + core_range_bits[i] = (int16_t) ( ( ivas_spar_br_table_consts[table_idx].core_brs[i][0] - ivas_spar_br_table_consts[table_idx].core_brs[i][1] ) / FRAMES_PER_SEC ); } overflow_bits = -residual_bits; diff --git a/lib_com/options.h b/lib_com/options.h index eab7ee2e60..23af39c683 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -143,7 +143,7 @@ #define DISABLE_ADAP_RES_COD_TMP /* temporary fix for IVAS-403, disables adaptive residual coding */ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ -/*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ +#define FIX_I1_113 /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ #define SPAR_STEREO_NO_DIRAC /* Issue 180: skip DirAC processing channels for stereo output */ #define AGC_TUNING_IMPROVEMENT /* Issue 168: Enable AGC for low bit rate (1 TC) */ diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c index 30e7022698..4a94dee5d9 100644 --- a/lib_enc/ivas_mct_core_enc.c +++ b/lib_enc/ivas_mct_core_enc.c @@ -136,7 +136,7 @@ static void AdjustChannelRatios( force_ch_bit_ratios[2] = 5; force_ch_bit_ratios[3] = 3; #else - ivas_spar_bitrate_dist( temp_brs, nAvailBits, , sba_order, 3 ); + ivas_spar_bitrate_dist( temp_brs, nAvailBits, ivas_total_brate, sba_order, (int16_t) FB ); sum_ratio = 0.0f; for ( i = 0; i < nChannels; i++ ) -- GitLab From a9dfe05ac6ff9c484c1c8948fb17f438f371fe71 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 7 Nov 2022 08:31:27 +0100 Subject: [PATCH 429/479] Fixes added under FIX_I173_I174: Remove frame counter from ism_file_writer.c and remove counter from ISm enc/dec structs --- lib_util/ism_file_reader.c | 6 ++++++ lib_util/ism_file_writer.c | 11 ++++++++++- .../renderer_standalone.c | 14 ++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/lib_util/ism_file_reader.c b/lib_util/ism_file_reader.c index c1f08a4c35..665c7ea134 100644 --- a/lib_util/ism_file_reader.c +++ b/lib_util/ism_file_reader.c @@ -43,7 +43,9 @@ struct IsmFileReader { FILE *file; +#ifndef FIX_I173_I174 int32_t frameCounter; +#endif char *file_path; }; @@ -75,7 +77,9 @@ IsmFileReader *IsmFileReader_open( self = calloc( sizeof( IsmFileReader ), 1 ); self->file = file; +#ifndef FIX_I173_I174 self->frameCounter = 0; +#endif self->file_path = calloc( sizeof( char ), strlen( filePath ) + 1 ); strcpy( self->file_path, filePath ); @@ -145,7 +149,9 @@ ivas_error IsmFileReader_readNextFrame( ismMetadata->spread = meta_prm[3]; ismMetadata->gainFactor = meta_prm[4]; +#ifndef FIX_I173_I174 ++self->frameCounter; +#endif return IVAS_ERR_OK; } diff --git a/lib_util/ism_file_writer.c b/lib_util/ism_file_writer.c index 64f04f7b02..65bd72a944 100644 --- a/lib_util/ism_file_writer.c +++ b/lib_util/ism_file_writer.c @@ -43,7 +43,9 @@ struct IsmFileWriter { FILE *file; +#ifndef FIX_I173_I174 int32_t frameCounter; +#endif char *file_path; }; @@ -86,7 +88,9 @@ ivas_error IsmFileWriter_open( self = calloc( sizeof( IsmFileWriter ), 1 ); self->file = file; +#ifndef FIX_I173_I174 self->frameCounter = 0; +#endif self->file_path = calloc( sizeof( char ), strlen( filePath ) + 1 ); strcpy( self->file_path, filePath ); @@ -118,7 +122,11 @@ ivas_error IsmFileWriter_writeFrame( file = ismWriter->file; /* IVAS_fmToDo: work in progress; currently position_azimuth, position_elevation, position_radius, spread, gain_factor */ +#ifdef FIX_I173_I174 + sprintf( char_buff, "%+07.2f,%+06.2f,%05.2f,%06.2f,%04.2f\n", ismMetadata.azimuth, ismMetadata.elevation, ismMetadata.radius, ismMetadata.spread, ismMetadata.gainFactor ); +#else sprintf( char_buff, "%04d,%+07.2f,%+06.2f,%05.2f,%06.2f,%04.2f\n", ismWriter->frameCounter, ismMetadata.azimuth, ismMetadata.elevation, ismMetadata.radius, ismMetadata.spread, ismMetadata.gainFactor ); +#endif if ( file ) { @@ -128,8 +136,9 @@ ivas_error IsmFileWriter_writeFrame( { return IVAS_ERR_FAILED_FILE_WRITE; } - +#ifndef FIX_I173_I174 ++ismWriter->frameCounter; +#endif return IVAS_ERR_OK; } diff --git a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c index 8afcd73603..494b596b10 100644 --- a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c +++ b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c @@ -160,6 +160,9 @@ int main( int argc, char *argv[] ) { return IVAS_ERR_FAILED_ALLOC; } +#ifdef FIX_I173_I174 + st_ivas->hDecoderConfig->Opt_Headrotation = FALSE; +#endif /* ISm metadata handles */ for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) @@ -315,6 +318,9 @@ int main( int argc, char *argv[] ) fprintf( stderr, "Can not allocate memory for head-tracking\n" ); exit( -1 ); } +#ifdef FIX_I173_I174 + st_ivas->hDecoderConfig->Opt_Headrotation = TRUE; +#endif } /* Init limiter */ @@ -538,7 +544,9 @@ static void readMetadata( float meta_prm[NUM_ISM_METADATA_PER_LINE]; char *char_ptr; int16_t j; +#ifndef FIX_I173_I174 int32_t time_stamp; +#endif if ( fgets( char_buff, META_LINE_LENGTH, file ) == NULL ) { @@ -546,6 +554,11 @@ static void readMetadata( exit( -1 ); } +#ifdef FIX_I173_I174 + j = 0; + char_ptr = strtok( char_buff, "," ); + meta_prm[j++] = (float) atof( char_ptr ); +#else char_ptr = strtok( char_buff, "," ); time_stamp = (int32_t) atoi( char_ptr ); @@ -556,6 +569,7 @@ static void readMetadata( } j = 0; +#endif while ( char_ptr != NULL && j < NUM_ISM_METADATA_PER_LINE ) { char_ptr = strtok( NULL, "," ); -- GitLab From c4a782fa4f4098b4e52eb9708152db8bf8ca538e Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Mon, 7 Nov 2022 09:03:18 +0100 Subject: [PATCH 430/479] formatting --- apps/renderer.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index 95f18e993c..e78b824586 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -104,29 +104,27 @@ extern int16_t *ptr_max_stack; extern int32_t wc_frame; extern char location_max_stack[256]; -/* clang-format off */ /*------------------------------------------------------------------------------------------* -* Function to print complexity & memory estimates -*------------------------------------------------------------------------------------------*/ -static void print_mem_renderer(size_t SRAM_size) + * Function to print complexity & memory estimates + *------------------------------------------------------------------------------------------*/ +static void print_mem_renderer( size_t SRAM_size ) { - fprintf( stdout, "\n\n --- Renderer cmdln demo memory usage --- \n\n" ); + fprintf( stdout, "\n\n --- Renderer cmdln demo memory usage --- \n\n" ); - fprintf( stdout, "PROM size (renderer): %d words (or instructions)\n", PROM_Size_lib_rend ); - fprintf( stdout, "Stack size: %d words in %s() in frame #%d\n", ( ptr_base_stack - ptr_max_stack ) * sizeof( int16_t ) / sizeof( float ), location_max_stack, wc_frame ); - fprintf( stdout, "Table ROM size(renderer): %d words\n", (Const_Data_Size_ivas_rom_rend() ) / sizeof( float ) ); - fprintf( stdout, "Table ROM size (binaural renderer): %ld words\n", ( Const_Data_Size_ivas_rom_binauralRen() + Const_Data_Size_ivas_rom_TdBinauralR() + Const_Data_Size_ivas_rom_binaural_cr() ) / sizeof( float ) ); + fprintf( stdout, "PROM size (renderer): %d words (or instructions)\n", PROM_Size_lib_rend ); + fprintf( stdout, "Stack size: %d words in %s() in frame #%d\n", ( ptr_base_stack - ptr_max_stack ) * sizeof( int16_t ) / sizeof( float ), location_max_stack, wc_frame ); + fprintf( stdout, "Table ROM size(renderer): %d words\n", ( Const_Data_Size_ivas_rom_rend() ) / sizeof( float ) ); + fprintf( stdout, "Table ROM size (binaural renderer): %ld words\n", ( Const_Data_Size_ivas_rom_binauralRen() + Const_Data_Size_ivas_rom_TdBinauralR() + Const_Data_Size_ivas_rom_binaural_cr() ) / sizeof( float ) ); #ifdef RAM_COUNTING_TOOL - fprintf( stdout, "Static RAM size: %d words\n\n", SRAM_size ); + fprintf( stdout, "Static RAM size: %d words\n\n", SRAM_size ); #endif - print_stack_call_tree(); + print_stack_call_tree(); - fprintf( stdout, "Note: this is an optimistic estimate of the memory consumption assuming\n" ); - fprintf( stdout, " that each variable (short, long or float) in the codec requires\n" ); - fprintf( stdout, " 32 bits of memory and may therefore be represented by 1 word.\n" ); - fprintf( stdout, " The following formula is used: sizeof('memory array')/sizeof(float)\n\n" ); + fprintf( stdout, "Note: this is an optimistic estimate of the memory consumption assuming\n" ); + fprintf( stdout, " that each variable (short, long or float) in the codec requires\n" ); + fprintf( stdout, " 32 bits of memory and may therefore be represented by 1 word.\n" ); + fprintf( stdout, " The following formula is used: sizeof('memory array')/sizeof(float)\n\n" ); } -/* clang-format on */ #endif typedef struct -- GitLab From 04a43b6e619277ccfff53435a4b7e640b6edf0c5 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Mon, 7 Nov 2022 10:48:56 +0100 Subject: [PATCH 431/479] fixes for instrumentation --- apps/renderer.c | 2 +- lib_rend/ivas_crend.c | 4 +++- lib_rend/ivas_objectRenderer.c | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index e78b824586..8ae84fe7d2 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -1000,7 +1000,7 @@ int32_t main( int32_t argc, char **argv ) #endif #ifdef WMOPS print_wmops(); - /* print_mem_renderer( SRAM_size ); */ + print_mem_renderer( SRAM_size ); #endif return 0; diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index 0a5b28cb98..960e92bf49 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1779,7 +1779,7 @@ ivas_error ivas_rend_crendProcess( IVAS_REND_AudioConfigType inConfigType; ivas_error error; - wmops_sub_start( "ivas_crend_process" ); + wmops_sub_start( "ivas_rend_crendProcess" ); in_config = getIvasAudioConfigFromRendAudioConfig( inConfig ); inConfigType = getAudioConfigType( inConfig ); @@ -1815,6 +1815,8 @@ ivas_error ivas_rend_crendProcess( mvr2r( pcm_tmp[i], output[i], output_frame ); } + wmops_sub_end(); + return IVAS_ERR_OK; } diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index e4f0706193..ce974189cb 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -678,6 +678,8 @@ ivas_error ivas_rend_TDObjRenderFrame( IVAS_FORMAT ivas_format; IVAS_REND_AudioConfigType inConfigType; + wmops_sub_start( "ivas_rend_TDObjRenderFrame" ); + inConfigType = getAudioConfigType( inConfig ); lfe_idx = LFE_CHANNEL; if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) @@ -754,6 +756,9 @@ ivas_error ivas_rend_TDObjRenderFrame( // v_add( reverb_signal[1], output[1], output[1], output_frame ); // } // } + + wmops_sub_end(); + return IVAS_ERR_OK; } #endif -- GitLab From 8d4bc4826633340556c1db25f723f40f7a9c1e3c Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Mon, 7 Nov 2022 11:02:01 +0100 Subject: [PATCH 432/479] [tests] always log executed command --- tests/renderer/utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/renderer/utils.py b/tests/renderer/utils.py index 017c56a97b..9811d73500 100644 --- a/tests/renderer/utils.py +++ b/tests/renderer/utils.py @@ -26,6 +26,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. """ +import logging import subprocess as sp import sys from pathlib import Path @@ -49,6 +50,7 @@ def test_info(request): def run_cmd(cmd): + logging.info(f"\nRunning command\n{' '.join(cmd)}\n") try: sp.run(cmd, check=True, capture_output=True, text=True) except sp.CalledProcessError as e: -- GitLab From 0f03cb5b10ab4f92e59641d6bee308acd085a0d5 Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 7 Nov 2022 11:41:01 +0100 Subject: [PATCH 433/479] activate fix --- lib_com/options.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index eab7ee2e60..a13ec5c881 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -154,7 +154,7 @@ #define FIX_TCX_DEC_RECONF_BFI #define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ #define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ -/*#define FIX_MCT_PLC_RECOVERY*/ /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ +#define FIX_MCT_PLC_RECOVERY /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ #define FIX_MSAN_ERROR_STEREO_RATE_SWITCHING /* addresses Issue 177 */ #define SBA_BR_SWITCHING /* Issue 114: Changes for sba bit rate switching*/ #define FIX_AGC_WINFUNC_MEMORY /* Issue 62: lower agc_com.winFunc memory consumption */ -- GitLab From ff02f5d0c9e77b056a66aa02304210ef83a1734f Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 7 Nov 2022 12:00:24 +0100 Subject: [PATCH 434/479] - editorial changes - "VE2AT" comments --- Workspace_msvc/lib_rend.vcxproj | 1 + apps/renderer.c | 325 ++++++---- lib_dec/ivas_dirac_dec_binaural_functions.c | 4 +- lib_dec/ivas_ism_renderer.c | 2 +- lib_dec/ivas_mono_dmx_renderer.c | 2 +- lib_dec/ivas_out_setup_conversion.c | 2 +- lib_dec/ivas_rom_dec.c | 2 +- lib_dec/ivas_stat_dec.h | 16 +- lib_dec/ivas_vbap.c | 2 +- lib_rend/ivas_crend.c | 30 +- lib_rend/ivas_lib_rend_internal.h | 34 +- lib_rend/ivas_limiter.c | 2 +- lib_rend/ivas_objectRenderer.c | 24 +- lib_rend/ivas_output_init.c | 2 +- lib_rend/lib_rend.c | 684 +++++++++----------- lib_rend/lib_rend.h | 42 +- 16 files changed, 594 insertions(+), 580 deletions(-) diff --git a/Workspace_msvc/lib_rend.vcxproj b/Workspace_msvc/lib_rend.vcxproj index e87baf5605..c3a1268694 100644 --- a/Workspace_msvc/lib_rend.vcxproj +++ b/Workspace_msvc/lib_rend.vcxproj @@ -229,6 +229,7 @@ + diff --git a/apps/renderer.c b/apps/renderer.c index 95f18e993c..41e0b53a5d 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -182,7 +182,7 @@ typedef struct InputConfig inConfig; OutputConfig outConfig; char inMetadataFilePaths[RENDERER_MAX_ISM_INPUTS][RENDERER_MAX_CLI_ARG_LENGTH]; - int32_t numInMetadataFiles; + int16_t numInMetadataFiles; char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char customHrtfFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char renderConfigFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; @@ -318,7 +318,7 @@ static const CmdLnParser_Option cliOptions[] = { static const int32_t numCliOptions = sizeof( cliOptions ) / sizeof( CmdLnParser_Option ); static IVAS_REND_AudioConfig ambisonicsOrderToEnum( - int32_t order ); + const int16_t order ); static void parseSceneDescriptionFile( char *path, @@ -332,7 +332,7 @@ static ivas_error parseCustomLayoutFile( IVAS_CUSTOM_LS_DATA *pLsSetupCustom ); static CmdlnArgs parseCmdlnArgs( - int32_t argc, + const int argc, char **argv ); static IsmPositionProvider *IsmPositionProvider_open( @@ -348,12 +348,12 @@ static void IsmPositionProvider_close( static void readFromShorthandMetadata( IsmPositionProvider *positionProvider, ObjectPositionBuffer *objectMetadataBuffer, - uint32_t objIdx ); + const uint32_t objIdx ); void getMetadataFromFileReader( IsmFileReader *ismReader, ObjectPositionBuffer *objectMetadataBuffer, - uint32_t objIdx ); + const uint32_t objIdx ); static void splitConfigFile( const char *mdfFilePath, @@ -394,11 +394,9 @@ static void parseMetadata( IsmPositionProvider *positionProvider, MasaFileReader **masaReaders ); -static void convert_backslash( - char *str ); +static void convert_backslash( char *str ); -static void remove_cr( - char *str ); +static void remove_cr( char *str ); static void clearString( char *str ); @@ -408,37 +406,33 @@ static void printSupportedAudioConfigs( void ); static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ); -static void convertInputBuffer( const int16_t *intBuffer, - int32_t numIntSamplesPerChannel, /* Number of samples per channel in the int buffer */ - int32_t numFloatSamplesPerChannel, /* Per-channel length of the float buffer. If > numIntSamplesPerChannel, remaining samples will be set to 0. */ - int32_t numChannels, - float *floatBuffer ); +static void convertInputBuffer( const int16_t *intBuffer, const int16_t numIntSamplesPerChannel, const int16_t numFloatSamplesPerChannel, const int16_t numChannels, float *floatBuffer ); + +static void convertOutputBuffer( const float *floatBuffer, const int16_t numSamplesPerChannel, const int16_t numChannels, int16_t *intBuffer ); -static void convertOutputBuffer( const float *floatBuffer, - int32_t numSamplesPerChannel, - int32_t numChannels, - int16_t *intBuffer ); -static IVAS_REND_ReadOnlyAudioBuffer getReadOnlySubBuffer( IVAS_REND_AudioBuffer buffer, int32_t chBeginIdx, int32_t numChannels ) +static IVAS_REND_ReadOnlyAudioBuffer getReadOnlySubBuffer( IVAS_REND_AudioBuffer buffer, const int16_t chBeginIdx, const int16_t numChannels ) { IVAS_REND_ReadOnlyAudioBuffer subBuffer; subBuffer.config = buffer.config; - subBuffer.config.numChannels = (int16_t) numChannels; + subBuffer.config.numChannels = numChannels; subBuffer.data = buffer.data + subBuffer.config.numSamplesPerChannel * chBeginIdx; return subBuffer; } -static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS], - IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS], - IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] ) +static int16_t getTotalNumInChannels( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS], + IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS], + IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] ) { - int32_t totalNumInChannels = 0; + int16_t totalNumInChannels = 0; + int16_t i, numInputChannels; ivas_error error; - for ( int32_t i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) { if ( mcIds[i] == 0 ) { @@ -446,7 +440,6 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, continue; } - int32_t numInputChannels; if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, mcIds[i], &numInputChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); @@ -455,7 +448,7 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, totalNumInChannels += numInputChannels; } - for ( int32_t i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) { if ( ismIds[i] == 0 ) { @@ -463,7 +456,6 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, continue; } - int32_t numInputChannels; if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, ismIds[i], &numInputChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); @@ -472,7 +464,7 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, totalNumInChannels += numInputChannels; } - for ( int32_t i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) { if ( sbaIds[i] == 0 ) { @@ -480,7 +472,7 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, continue; } - int32_t numInputChannels; + if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, sbaIds[i], &numInputChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); @@ -492,7 +484,11 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, return totalNumInChannels; } -static void setupWithSingleFormatInput( CmdlnArgs args, char *audioFilePath, IsmPositionProvider *positionProvider, MasaFileReader **masaReaders ) +static void setupWithSingleFormatInput( + CmdlnArgs args, + char *audioFilePath, + IsmPositionProvider *positionProvider, + MasaFileReader **masaReaders ) { /* With single-format input, inputFilePath is the path to input audio file. */ strncpy( audioFilePath, args.inputFilePath, FILENAME_MAX - 1 ); @@ -519,7 +515,7 @@ static void setupWithSingleFormatInput( CmdlnArgs args, char *audioFilePath, Ism else if ( args.inConfig.numAudioObjects != 0 ) { positionProvider->numObjects = args.inConfig.numAudioObjects; - for ( int32_t i = 0; i < positionProvider->numObjects; ++i ) + for ( int16_t i = 0; i < positionProvider->numObjects; ++i ) { /* It is allowed on CLI to have no metadata for an ISM input - skip opening if string is empty or contains "NULL" */ char charBuf[FILENAME_MAX]; @@ -540,7 +536,8 @@ static void setupWithSingleFormatInput( CmdlnArgs args, char *audioFilePath, Ism } } -static float dBToLin( float gain_dB ) +static float dBToLin( + const float gain_dB ) { return powf( 10.0f, gain_dB / 20.0f ); } @@ -548,7 +545,9 @@ static float dBToLin( float gain_dB ) /* ============================================================================ */ -int32_t main( int32_t argc, char **argv ) +int main( + int argc, + char **argv ) { IVAS_REND_HANDLE hIvasRend; HeadRotFileReader *headRotReader = NULL; @@ -573,6 +572,7 @@ int32_t main( int32_t argc, char **argv ) int16_t delayNumSamples_orig = 0; int16_t zeroPad = 0; int32_t delayTimeScale = 0; + int16_t i, numChannels; ivas_error error = IVAS_ERR_OK; #ifdef WMOPS size_t SRAM_size; @@ -587,7 +587,7 @@ int32_t main( int32_t argc, char **argv ) mem_count_init( 0, USE_32BITS ); #endif - for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { masaReaders[i] = NULL; hMasaMetadata[i] = NULL; @@ -648,7 +648,7 @@ int32_t main( int32_t argc, char **argv ) { args.sampleRate = inFileSampleRate; } - const int32_t frameSize_smpls = 20 * args.sampleRate / 1000; + const int16_t frameSize_smpls = (int16_t) ( 20 * args.sampleRate / 1000 ); IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS] = { 0 }; IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS] = { 0 }; @@ -669,7 +669,7 @@ int32_t main( int32_t argc, char **argv ) } } - for ( int32_t i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) + for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.multiChannelBuses[i].audioConfig, &mcIds[i] ) ) != IVAS_ERR_OK ) { @@ -695,7 +695,7 @@ int32_t main( int32_t argc, char **argv ) /* TODO(sgi): Test custom LFE routing here */ } - for ( int32_t i = 0; i < args.inConfig.numAudioObjects; ++i ) + for ( i = 0; i < args.inConfig.numAudioObjects; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, IVAS_REND_AUDIO_CONFIG_OBJECT, &ismIds[i] ) ) != IVAS_ERR_OK ) { @@ -710,7 +710,7 @@ int32_t main( int32_t argc, char **argv ) } } - for ( int32_t i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) + for ( i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.ambisonicsBuses[i].audioConfig, &sbaIds[i] ) ) != IVAS_ERR_OK ) { @@ -725,7 +725,7 @@ int32_t main( int32_t argc, char **argv ) } } - const int32_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds ); + const int16_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds ); if ( AudioFileReader_getNumChannels( audioReader ) != 0 /* If input file is raw PCM, audio reader has no info about number of channels */ && totalNumInChannels != AudioFileReader_getNumChannels( audioReader ) ) { @@ -733,7 +733,7 @@ int32_t main( int32_t argc, char **argv ) exit( -1 ); } - for ( int32_t i = 0; i < args.inConfig.numMasaBuses; ++i ) + for ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { if ( masaReaders[i] != NULL ) { @@ -741,7 +741,7 @@ int32_t main( int32_t argc, char **argv ) } } - int32_t numOutChannels; + int16_t numOutChannels; if ( ( error = IVAS_REND_NumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); @@ -788,7 +788,7 @@ int32_t main( int32_t argc, char **argv ) while ( 1 ) { - int32_t num_in_channels; + int16_t num_in_channels; num_in_channels = inBuffer.config.numChannels; /* Read the input data */ @@ -821,7 +821,7 @@ int32_t main( int32_t argc, char **argv ) } #endif - for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { if ( masaReaders[i] != NULL ) { @@ -847,15 +847,14 @@ int32_t main( int32_t argc, char **argv ) IVAS_REND_SetHeadRotation( hIvasRend, NULL ); } - for ( int32_t i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) + for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) { - int32_t numChannels; if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, mcIds[i], &numChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } - IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, args.inConfig.multiChannelBuses[i].inputChannelIndex, numChannels ); + IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.multiChannelBuses[i].inputChannelIndex, numChannels ); if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, mcIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { @@ -864,9 +863,9 @@ int32_t main( int32_t argc, char **argv ) } } - for ( int32_t i = 0; i < args.inConfig.numAudioObjects; ++i ) + for ( i = 0; i < args.inConfig.numAudioObjects; ++i ) { - IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, args.inConfig.audioObjects[i].inputChannelIndex, 1 ); + IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.audioObjects[i].inputChannelIndex, 1 ); if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, ismIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { @@ -881,15 +880,14 @@ int32_t main( int32_t argc, char **argv ) } } - for ( int32_t i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) + for ( i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) { - int32_t numChannels; if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, sbaIds[i], &numChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } - IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, args.inConfig.ambisonicsBuses[i].inputChannelIndex, numChannels ); + IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.ambisonicsBuses[i].inputChannelIndex, numChannels ); if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, sbaIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { @@ -900,7 +898,7 @@ int32_t main( int32_t argc, char **argv ) IVAS_REND_GetSamples( hIvasRend, outBuffer ); - int32_t num_out_channels; + int16_t num_out_channels; num_out_channels = outBuffer.config.numChannels; /* Convert from float to int and from packed to interleaved. @@ -982,7 +980,7 @@ int32_t main( int32_t argc, char **argv ) count_free( inFloatBuffer ); count_free( outInt16Buffer ); count_free( outFloatBuffer ); - for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { MasaFileReader_close( &masaReaders[i] ); } @@ -1008,7 +1006,8 @@ int32_t main( int32_t argc, char **argv ) return 0; } -static IVAS_REND_AudioConfig ambisonicsOrderToEnum( int32_t order ) +static IVAS_REND_AudioConfig ambisonicsOrderToEnum( + const int16_t order ) { switch ( order ) { @@ -1023,7 +1022,10 @@ static IVAS_REND_AudioConfig ambisonicsOrderToEnum( int32_t order ) return IVAS_REND_AUDIO_CONFIG_UNKNOWN; } -static bool parseInConfig( const char *inFormatStr, InputConfig *inConfig, bool *sceneDescriptionInput ) +static bool parseInConfig( + const char *inFormatStr, + InputConfig *inConfig, + bool *sceneDescriptionInput ) { char charBuf[FILENAME_MAX]; @@ -1091,7 +1093,7 @@ static bool parseInConfig( const char *inFormatStr, InputConfig *inConfig, bool fprintf( stderr, "Too many objects at input. Max %d supported.", RENDERER_MAX_ISM_INPUTS ); return false; } - for ( int32_t i = 0; i < inConfig->numAudioObjects; ++i ) + for ( int16_t i = 0; i < inConfig->numAudioObjects; ++i ) { inConfig->audioObjects[i].audioConfig = audioConfig; inConfig->audioObjects[i].inputChannelIndex = i; @@ -1132,7 +1134,9 @@ static bool parseInConfig( const char *inFormatStr, InputConfig *inConfig, bool return true; } -static bool parseOutConfig( const char *outputFormatStr, OutputConfig *outConfig ) +static bool parseOutConfig( + const char *outputFormatStr, + OutputConfig *outConfig ) { ivas_error error; @@ -1152,7 +1156,9 @@ static bool parseOutConfig( const char *outputFormatStr, OutputConfig *outConfig return true; } -static int8_t parseDiegeticPan( char *value, float *noDiegeticPan ) +static int8_t parseDiegeticPan( + char *value, + float *noDiegeticPan ) { int8_t success; success = 1; @@ -1183,7 +1189,9 @@ static int8_t parseDiegeticPan( char *value, float *noDiegeticPan ) return success ? 0 : -1; } -static int8_t parseOrientationTracking( char *value, int8_t *tracking_type ) +static int8_t parseOrientationTracking( + char *value, + int8_t *tracking_type ) { int8_t success; success = 1; @@ -1207,7 +1215,8 @@ static int8_t parseOrientationTracking( char *value, int8_t *tracking_type ) return success ? 0 : -1; } -static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ) +static IVAS_REND_AudioConfig parseAudioConfig( + const char *configString ) { char charBuf[14]; charBuf[13] = '\0'; @@ -1283,7 +1292,8 @@ static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ) return IVAS_REND_AUDIO_CONFIG_UNKNOWN; } -static const CmdLnParser_Option *findOptionById( int32_t id ) +static const CmdLnParser_Option *findOptionById( + const int32_t id ) { for ( int32_t i = 0; i < numCliOptions; ++i ) { @@ -1296,7 +1306,8 @@ static const CmdLnParser_Option *findOptionById( int32_t id ) return NULL; } -static bool checkRequiredArgs( CmdlnArgs args ) +static bool checkRequiredArgs( + CmdlnArgs args ) { const CmdLnParser_Option *tmpOption; @@ -1339,7 +1350,8 @@ static bool checkRequiredArgs( CmdlnArgs args ) return !missingRequiredArg; } -static CmdlnArgs defaultArgs( const char *executableName ) +static CmdlnArgs defaultArgs( + const char *executableName ) { CmdlnArgs args; @@ -1380,7 +1392,11 @@ static CmdlnArgs defaultArgs( const char *executableName ) return args; } -static void parseOption( int32_t optionId, char **optionValues, int16_t numOptionValues, void *pOutputStruct ) +static void parseOption( + const int32_t optionId, + char **optionValues, + const int16_t numOptionValues, + void *pOutputStruct ) { CmdlnArgs *args = pOutputStruct; @@ -1403,7 +1419,7 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio break; case CmdLnOptionId_inputMetadata: assert( numOptionValues <= RENDERER_MAX_ISM_INPUTS ); - for ( int32_t i = 0; i < numOptionValues; ++i ) + for ( int16_t i = 0; i < numOptionValues; ++i ) { strncpy( args->inMetadataFilePaths[i], optionValues[i], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); } @@ -1481,9 +1497,13 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio assert( 0 && "This should be unreachable - all command line options should be explicitly handled." ); break; } + + return; } -static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) +static CmdlnArgs parseCmdlnArgs( + const int argc, + char **argv ) { CmdlnArgs args = defaultArgs( argv[0] ); @@ -1501,10 +1521,11 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) } -IsmPositionProvider *IsmPositionProvider_open( void ) +IsmPositionProvider *IsmPositionProvider_open( + void ) { IsmPositionProvider *ipp; - uint32_t i; + uint16_t i; ipp = (IsmPositionProvider *) count_malloc( sizeof( IsmPositionProvider ) ); ipp->frameCounter = 0; @@ -1525,7 +1546,7 @@ IsmPositionProvider *IsmPositionProvider_open( void ) void getMetadataFromFileReader( IsmFileReader *ismReader, ObjectPositionBuffer *objectMetadataBuffer, - uint32_t objIdx ) + const uint32_t objIdx ) { IVAS_ISM_METADATA ismMetadata; ivas_error error; @@ -1538,11 +1559,14 @@ void getMetadataFromFileReader( objectMetadataBuffer->positions[objIdx].azimuth = ismMetadata.azimuth; objectMetadataBuffer->positions[objIdx].elevation = ismMetadata.elevation; + + return; } -void readFromShorthandMetadata( IsmPositionProvider *positionProvider, - ObjectPositionBuffer *objectMetadataBuffer, - uint32_t objIdx ) +void readFromShorthandMetadata( + IsmPositionProvider *positionProvider, + ObjectPositionBuffer *objectMetadataBuffer, + const uint32_t objIdx ) { uint32_t preUpdatePositionIdx; uint32_t postUpdatePositionIdx; @@ -1560,6 +1584,8 @@ void readFromShorthandMetadata( IsmPositionProvider *positionProvider, postUpdatePositionIdx = positionProvider->currentPositionIdxs[objIdx]; objectMetadataBuffer->positions[objIdx] = positionProvider->positions[objIdx][postUpdatePositionIdx]; + + return; } void IsmPositionProvider_getNextFrame( @@ -1596,6 +1622,8 @@ void IsmPositionProvider_getNextFrame( } ++positionProvider->frameCounter; + + return; } void IsmPositionProvider_close( IsmPositionProvider *positionProvider ) @@ -1626,13 +1654,16 @@ void IsmPositionProvider_close( IsmPositionProvider *positionProvider ) } count_free( positionProvider ); + + return; } -static void splitConfigFile( const char *mdfFilePath, - char *metadataString, - uint32_t *metadataStringLength, - char *wavFileName, - uint32_t *wavFileNameLength ) +static void splitConfigFile( + const char *mdfFilePath, + char *metadataString, + uint32_t *metadataStringLength, + char *wavFileName, + uint32_t *wavFileNameLength ) { FILE *file; uint32_t bufferlength; @@ -1683,10 +1714,15 @@ static void splitConfigFile( const char *mdfFilePath, *metadataStringLength = mdlength + 1; fclose( file ); + + return; } /* r: pointer to character following last found delimiter */ -static char *readNextMetadataChunkFrom( char *start_char, char *line, const char *delimiter ) +static char *readNextMetadataChunkFrom( + char *start_char, + char *line, + const char *delimiter ) { char *token; @@ -1709,12 +1745,16 @@ static char *readNextMetadataChunkFrom( char *start_char, char *line, const char } /* r: pointer to character following last found delimiter */ -static char *readNextMetadataChunk( char *line, const char *delimiter ) +static char *readNextMetadataChunk( + char *line, + const char *delimiter ) { return readNextMetadataChunkFrom( NULL, line, delimiter ); } -static void parseUint8( const char *line, uint8_t *ret ) +static void parseUint8( + const char *line, + uint8_t *ret ) { char *ptr; ptr = NULL; @@ -1725,9 +1765,13 @@ static void parseUint8( const char *line, uint8_t *ret ) fprintf( stderr, "Cannot parse string \"%s\" as an integer value\n", line ); exit( -1 ); } + + return; } -static int8_t parseUint32( const char *line, uint32_t *ret ) +static int8_t parseUint32( + const char *line, + uint32_t *ret ) { char *ptr; ptr = NULL; @@ -1741,7 +1785,9 @@ static int8_t parseUint32( const char *line, uint32_t *ret ) return 0; } -static int8_t parseInt32( const char *line, int32_t *ret ) +static int8_t parseInt32( + const char *line, + int32_t *ret ) { char *ptr; ptr = NULL; @@ -1796,11 +1842,14 @@ static void parseOptionalInputValues( parse_pos = readNextMetadataChunkFrom( parse_pos, line, "\n" ); } + + return; } -static void parseObjectPosition( char *line, - IVAS_REND_AudioObjectPosition *position, - uint16_t *positionDuration ) +static void parseObjectPosition( + char *line, + IVAS_REND_AudioObjectPosition *position, + uint16_t *positionDuration ) { char *endptr; @@ -1829,6 +1878,8 @@ static void parseObjectPosition( char *line, fprintf( stderr, "Error reading metadata\n" ); exit( -1 ); } + + return; } static void parseIsm( @@ -1836,7 +1887,7 @@ static void parseIsm( char *inDir, InputConfig *inConfig, IsmPositionProvider *positionProvider, - int32_t idx ) + const int32_t idx ) { uint32_t numberOfObjectPositionsToRead; uint32_t i; @@ -1874,11 +1925,14 @@ static void parseIsm( /* Read optional values */ parseOptionalInputValues( line, &inConfig->audioObjects[idx].gain_dB ); + + return; } -static void parseSba( char *line, - InputConfig *inConfig, - int32_t idx ) +static void parseSba( + char *line, + InputConfig *inConfig, + const int32_t idx ) { uint8_t ambiOrder; @@ -1892,11 +1946,14 @@ static void parseSba( char *line, /* Read optional values */ parseOptionalInputValues( line, &inConfig->ambisonicsBuses[idx].gain_dB ); + + return; } -static void parseMc( char *line, - InputConfig *inConfig, - int32_t idx ) +static void parseMc( + char *line, + InputConfig *inConfig, + const int32_t idx ) { readNextMetadataChunk( line, "\n" ); parseInt32( line, &inConfig->multiChannelBuses[idx].inputChannelIndex ); @@ -1915,6 +1972,8 @@ static void parseMc( char *line, /* Read optional values */ parseOptionalInputValues( line, &inConfig->multiChannelBuses[idx].gain_dB ); + + return; } static void parseMasa( @@ -1922,7 +1981,7 @@ static void parseMasa( char *inDir, InputConfig *inConfig, MasaFileReader **masaReaders, - int32_t idx ) + const int32_t idx ) { readNextMetadataChunk( line, "\n" ); parseInt32( line, &inConfig->masaBuses[idx].inputChannelIndex ); @@ -1954,6 +2013,8 @@ static void parseMasa( /* Read optional values */ parseOptionalInputValues( line, &inConfig->masaBuses[idx].gain_dB ); + + return; } static ivas_error parseCustomLayoutFile( @@ -2103,9 +2164,16 @@ static void parseMetadata( fprintf( stderr, "Trailing text in metadata file\n" ); exit( -1 ); } + + return; } -static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputConfig *inConfig, IsmPositionProvider *positionProvider, MasaFileReader **masaReaders ) +static void parseSceneDescriptionFile( + char *path, + char *audioFilePath, + InputConfig *inConfig, + IsmPositionProvider *positionProvider, + MasaFileReader **masaReaders ) { uint32_t inAudioFilePathLen; char inAudioFilePath[FILENAME_MAX]; @@ -2116,11 +2184,7 @@ static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputCon inAudioFilePathLen = FILENAME_MAX; mtdStrLen = RENDERER_MAX_METADATA_LENGTH; - splitConfigFile( path, - mtdStr, - &mtdStrLen, - inAudioFilePath, - &inAudioFilePathLen ); + splitConfigFile( path, mtdStr, &mtdStrLen, inAudioFilePath, &inAudioFilePathLen ); remove_cr( mtdStr ); convert_backslash( inAudioFilePath ); @@ -2143,7 +2207,7 @@ static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputCon static void printSupportedAudioConfigs() { - uint32_t i; + uint16_t i; const char *supportedFormats[] = { "MONO", "STEREO", @@ -2167,14 +2231,18 @@ static void printSupportedAudioConfigs() { fprintf( stdout, "%s\n", supportedFormats[i] ); } + + return; } -static void convert_backslash( char *str ) +// VE2AT: possibly move these functions to cmdln_parser.c ? +static void convert_backslash( + char *str ) { - int32_t i, len; + int16_t i, len; /* check that all backslashes are correct on the given platform */ - len = strlen( str ); + len = (int16_t) strlen( str ); for ( i = 0; i < len; i++ ) { @@ -2190,6 +2258,8 @@ static void convert_backslash( char *str ) } #endif } + + return; } static void remove_cr( char *str ) @@ -2203,14 +2273,20 @@ static void remove_cr( char *str ) strcpy( pos, pos + 1 ); pos = strchr( pos, '\r' ); } + + return; } -static void clearString( char *str ) +static void clearString( + char *str ) { str[0] = '\0'; + + return; } -static bool isEmptyString( const char *str ) +static bool isEmptyString( + const char *str ) { return str[0] == '\0'; } @@ -2221,17 +2297,18 @@ static bool isEmptyString( const char *str ) * Convert input buffer from WAV/PCM file (int16_t, interleaved) to a format * accepted by the renderer (float, packed) *--------------------------------------------------------------------------*/ -static void convertInputBuffer( const int16_t *intBuffer, - int32_t numIntSamplesPerChannel, - int32_t numFloatSamplesPerChannel, - int32_t numChannels, - float *floatBuffer ) + +static void convertInputBuffer( + const int16_t *intBuffer, + const int16_t numIntSamplesPerChannel, + const int16_t numFloatSamplesPerChannel, + const int16_t numChannels, + float *floatBuffer ) { - int32_t chnl, smpl, i; + int16_t chnl, smpl, i; i = 0; - for ( smpl = 0; smpl < numFloatSamplesPerChannel; ++smpl ) { for ( chnl = 0; chnl < numChannels; ++chnl ) @@ -2248,6 +2325,8 @@ static void convertInputBuffer( const int16_t *intBuffer, ++i; } } + + return; } /*--------------------------------------------------------------------------* @@ -2256,12 +2335,14 @@ static void convertInputBuffer( const int16_t *intBuffer, * Convert output buffer from the renderer (float, packed) to a format ready * for writing to a WAV/PCM file (int16_t, interleaved) *--------------------------------------------------------------------------*/ -static void convertOutputBuffer( const float *floatBuffer, - int32_t numSamplesPerChannel, - int32_t numChannels, - int16_t *intBuffer ) + +static void convertOutputBuffer( + const float *floatBuffer, + const int16_t numSamplesPerChannel, + const int16_t numChannels, + int16_t *intBuffer ) { - int32_t chnl, smpl, i; + int16_t chnl, smpl, i; i = 0; @@ -2274,9 +2355,13 @@ static void convertOutputBuffer( const float *floatBuffer, ++i; } } + + return; } #else -int32_t main( int32_t argc, char **argv ) +int main( + int argc, + char **argv ) { (void) argc; (void) argv; diff --git a/lib_dec/ivas_dirac_dec_binaural_functions.c b/lib_dec/ivas_dirac_dec_binaural_functions.c index ca9f0a4587..1418193139 100644 --- a/lib_dec/ivas_dirac_dec_binaural_functions.c +++ b/lib_dec/ivas_dirac_dec_binaural_functions.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include "options.h" #include @@ -37,7 +37,7 @@ #include "prot.h" #include "ivas_prot.h" #include "ivas_cnst.h" -#include "ivas_rom_binauralRenderer.h" +#include "ivas_rom_binauralRenderer.h" // VE2AT: what about to put these includes ust into ivas_rom_rend.c ? #include "ivas_rom_dec.h" #ifdef DEBUGGING #include "debug.h" diff --git a/lib_dec/ivas_ism_renderer.c b/lib_dec/ivas_ism_renderer.c index 0e7f5f864a..f27d49b111 100644 --- a/lib_dec/ivas_ism_renderer.c +++ b/lib_dec/ivas_ism_renderer.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include "options.h" #include "ivas_cnst.h" diff --git a/lib_dec/ivas_mono_dmx_renderer.c b/lib_dec/ivas_mono_dmx_renderer.c index 468b0215b0..20b677075e 100644 --- a/lib_dec/ivas_mono_dmx_renderer.c +++ b/lib_dec/ivas_mono_dmx_renderer.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include "options.h" #include diff --git a/lib_dec/ivas_out_setup_conversion.c b/lib_dec/ivas_out_setup_conversion.c index 9ed27e56c3..55f53bae73 100644 --- a/lib_dec/ivas_out_setup_conversion.c +++ b/lib_dec/ivas_out_setup_conversion.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include #include "options.h" diff --git a/lib_dec/ivas_rom_dec.c b/lib_dec/ivas_rom_dec.c index 3a08c33e79..c79bc38019 100644 --- a/lib_dec/ivas_rom_dec.c +++ b/lib_dec/ivas_rom_dec.c @@ -516,7 +516,7 @@ const int16_t sba_map_tc[8] = /*----------------------------------------------------------------------------------* * FASTCONV and PARAMETRIC binaural renderer ROM tables *----------------------------------------------------------------------------------*/ - +// VE2AT: move to in ivas_rom_dec ? const float surCohEne[MASA_NUM_DEFINED_SUR_SPR_COH_ENE_BINS] = { 3.0903f, 2.0053f, 1.0860f, 0.8072f, 0.7079f diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 2f1b2cc519..50369fab6d 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -41,7 +41,7 @@ #include "ivas_stat_com.h" #include "ivas_stat_rend.h" #ifdef EXT_RENDERER -#include "common_api_types.h" +#include "common_api_types.h" // VE2AT: don't we want to avoid this include in the library? I admit that the rules hefre are not 100% clear to me but introducing it just for IVAS_QUATERNION is not necessry I think #endif @@ -984,7 +984,7 @@ typedef struct mct_dec_data_structure /*----------------------------------------------------------------------------------* * EFAP structures *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? typedef struct EFAP_VERTEX { float azi; /* azimuth of the loudspeaker */ @@ -1047,7 +1047,7 @@ typedef struct EFAP /*----------------------------------------------------------------------------------* * VBAP structures *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? enum SpeakerNodeGroup { SPEAKER_NODE_BOTTOM_HALF, @@ -1105,7 +1105,7 @@ typedef struct vbap_data_structure /*----------------------------------------------------------------------------------* * renderer structures *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? typedef struct renderer_struct { float prev_gains[MAX_CICP_CHANNELS - 1][MAX_OUTPUT_CHANNELS]; @@ -1172,7 +1172,7 @@ typedef struct ivas_masa_decoder_struct /*----------------------------------------------------------------------------------* * Binaural Rendering structure *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? /* Binaural reverberator structure */ typedef struct ivas_binaural_reverb_struct { @@ -1291,7 +1291,7 @@ typedef struct ivas_binaural_rendering_struct /*----------------------------------------------------------------------------------* * Head tracking data structure *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? #ifndef EXT_RENDERER /* Quaternion type for head orientation */ typedef struct Quaternion_struct @@ -1324,7 +1324,7 @@ typedef struct ivas_binaural_head_track_struct /*----------------------------------------------------------------------------------* * TD ISm Object Renderer structure *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? typedef struct { SFX_OpMode_t OpMode; /* Operating mode. This effect can only be TRANSIENT or OFF. */ @@ -1632,7 +1632,7 @@ typedef struct ivas_binaural_td_rendering_struct /*------------------------------------------------------------------------------------------* * Crend structures *------------------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? typedef struct ivas_hrtfs_structure { float *pOut_to_bin_re[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; diff --git a/lib_dec/ivas_vbap.c b/lib_dec/ivas_vbap.c index 2534854e8b..f0960bd127 100644 --- a/lib_dec/ivas_vbap.c +++ b/lib_dec/ivas_vbap.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include "options.h" #include diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index 0a5b28cb98..8d291f7832 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1148,7 +1148,7 @@ ivas_error ivas_rend_openCrend( CREND_WRAPPER *pCrend, IVAS_REND_AudioConfig inConfig, IVAS_REND_AudioConfig outConfig, - int32_t output_Fs ) + const int32_t output_Fs ) { /* TODO tmu : Based on ivas_crend_open() - could be harmonized / refactored */ int16_t i, subframe_length; @@ -1304,12 +1304,12 @@ ivas_error ivas_rend_openCrend( ivas_error ivas_rend_initCrend( CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, - int32_t output_Fs ) + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, + const int32_t output_Fs ) { int16_t i, j, tmp; - int32_t nchan_in; + int16_t nchan_in; bool use_brir; IVAS_REND_AudioConfigType inConfigType; HRTFS_HANDLE hHrtf; @@ -1349,7 +1349,7 @@ ivas_error ivas_rend_initCrend( { return error; } - hHrtf->max_num_ir = (int16_t) nchan_in; + hHrtf->max_num_ir = nchan_in; if ( hHrtf->max_num_ir <= 0 ) { @@ -1767,13 +1767,13 @@ ivas_error ivas_rend_closeCrend( ivas_error ivas_rend_crendProcess( const CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, float output[][L_FRAME48k], /* i/o: input/output audio channels */ - int32_t output_Fs ) + const int32_t output_Fs ) { int16_t i, subframe_idx, output_frame; - int32_t nchan_out; + int16_t nchan_out; float pcm_tmp[BINAURAL_CHANNELS][L_FRAME48k]; AUDIO_CONFIG in_config; IVAS_REND_AudioConfigType inConfigType; @@ -1830,19 +1830,17 @@ ivas_error ivas_rend_crendConvolver( IVAS_REND_AudioConfig outConfig, float pcm_in[][L_FRAME48k], float pcm_out[][L_FRAME48k], - int32_t output_Fs, + const int32_t output_Fs, const int16_t i_ts ) { int16_t i, j, k, m; int16_t subframe_length, idx_in; int16_t lfe_idx_in; int16_t offset, offset_in, offset_diffuse; - int32_t nchan_in, nchan_out; + int16_t nchan_in, nchan_out; float *pIn; - float *pFreq_buf_re; - float *pFreq_buf_im; - float *pFreq_filt_re; - float *pFreq_filt_im; + float *pFreq_buf_re, *pFreq_buf_im; + float *pFreq_filt_re, *pFreq_filt_im; float pOut[L_FRAME48k * 2]; float tmp_out_re[L_FRAME48k], tmp_out_im[L_FRAME48k]; diff --git a/lib_rend/ivas_lib_rend_internal.h b/lib_rend/ivas_lib_rend_internal.h index 9edfcc46a9..3e8651f522 100644 --- a/lib_rend/ivas_lib_rend_internal.h +++ b/lib_rend/ivas_lib_rend_internal.h @@ -28,44 +28,44 @@ typedef struct } CREND_WRAPPER; IVAS_REND_AudioConfigType getAudioConfigType( - IVAS_REND_AudioConfig config ); + const IVAS_REND_AudioConfig config ); ivas_error getAudioConfigNumChannels( - IVAS_REND_AudioConfig config, - int32_t *numChannels ); + const IVAS_REND_AudioConfig config, + int16_t *numChannels ); AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( IVAS_REND_AudioConfig config ); ivas_error ivas_rend_openCrend( CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, - int32_t output_Fs ); + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, + const int32_t output_Fs ); ivas_error ivas_rend_initCrend( CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, - int32_t output_Fs ); + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, + const int32_t output_Fs ); ivas_error ivas_rend_closeCrend( CREND_WRAPPER *pCrend ); ivas_error ivas_rend_crendProcess( const CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, float output[][L_FRAME48k], /* i/o: input/output audio channels */ - int32_t output_Fs ); + const int32_t output_Fs ); ivas_error ivas_rend_crendConvolver( const CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, float pcm_in[][L_FRAME48k], float pcm_out[][L_FRAME48k], - int32_t output_Fs, + const int32_t output_Fs, const int16_t i_ts ); ivas_error ivas_rend_TDObjRenderFrame( @@ -81,9 +81,9 @@ ivas_error ivas_rend_TDObjRenderFrame( ivas_error ivas_rend_TDObjRendOpen( TDREND_WRAPPER *pTDRend, - IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig inConfig, LSSETUP_CUSTOM_STRUCT *customLsInput, - int32_t outFs ); + const int32_t output_Fs ); #endif #endif diff --git a/lib_rend/ivas_limiter.c b/lib_rend/ivas_limiter.c index 25fad180b9..a4dffb180d 100644 --- a/lib_rend/ivas_limiter.c +++ b/lib_rend/ivas_limiter.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: keep in lib_rend or move to lib_dec ? #include #include #include diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index e4f0706193..a2109db59d 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -51,7 +51,9 @@ *---------------------------------------------------------------------*/ static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t subframe_length, const int32_t output_Fs, const int16_t subframe_idx ); + static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); + static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, #ifdef EXT_RENDERER @@ -269,9 +271,7 @@ void ObjRenderIVASFrame( for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { /* Update the listener's location/orientation */ - TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, - st_ivas->hDecoderConfig->Opt_Headrotation, - ( st_ivas->hHeadTrackData != NULL ) ? &st_ivas->hHeadTrackData->Quaternions[subframe_idx] : NULL ); + TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, st_ivas->hDecoderConfig->Opt_Headrotation, ( st_ivas->hHeadTrackData != NULL ) ? &st_ivas->hHeadTrackData->Quaternions[subframe_idx] : NULL ); if ( ( st_ivas->hRenderConfig != NULL ) && ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) { @@ -512,7 +512,7 @@ ivas_error ivas_rend_TDObjRendOpen( TDREND_WRAPPER *pTDRend, IVAS_REND_AudioConfig inConfig, LSSETUP_CUSTOM_STRUCT *customLsInput, - int32_t outFs ) + const int32_t outFs ) { /* TODO tmu : Based on ivas_td_binaural_open() - could be harmonized / refactored - review error handling @@ -526,7 +526,7 @@ ivas_error ivas_rend_TDObjRendOpen( float Pos[3]; float Dir[3]; TDREND_DirAtten_t *DirAtten_p; - int32_t nchan_rend; + int16_t nchan_rend; ivas_error error; error = IVAS_ERR_OK; @@ -645,7 +645,6 @@ ivas_error ivas_rend_TDObjRendOpen( pTDRend->binaural_latency_ns = (int32_t) ( BINAURAL_TD_LATENCY_S * 1000000000.f ); - return IVAS_ERR_OK; } @@ -672,7 +671,7 @@ ivas_error ivas_rend_TDObjRenderFrame( int16_t subframe_idx; ISM_METADATA_HANDLE hIsmMetaData[1]; int16_t lfe_idx; - int32_t num_src; + int16_t num_src; /* TODO tmu : pass down renderer config struct */ // float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; IVAS_FORMAT ivas_format; @@ -714,12 +713,7 @@ ivas_error ivas_rend_TDObjRenderFrame( // } /* Update object position(s) */ - TDREND_Update_object_positions( pTDRend->hBinRendererTd, - (int16_t) num_src, - lfe_idx, - ivas_format, - hIsmMetaData, - output ); + TDREND_Update_object_positions( pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, output ); /* TODO tmu : needs a refactor / better approach */ if ( ivas_format == ISM_FORMAT ) @@ -730,9 +724,7 @@ ivas_error ivas_rend_TDObjRenderFrame( for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { /* Update the listener's location/orientation */ - TDREND_Update_listener_orientation( pTDRend->hBinRendererTd, - headRotData->headRotEnabled, - ( headRotData != NULL ) ? &headRotData->headPositions[subframe_idx] : NULL ); + TDREND_Update_listener_orientation( pTDRend->hBinRendererTd, headRotData->headRotEnabled, ( headRotData != NULL ) ? &headRotData->headPositions[subframe_idx] : NULL ); /* TODO tmu : pass down renderer config struct */ // if ( ( hRenderConfig != NULL ) && ( hRenderConfig->roomAcoustics.late_reverb_on ) ) diff --git a/lib_rend/ivas_output_init.c b/lib_rend/ivas_output_init.c index 005db1d4ac..2cbd476ac1 100644 --- a/lib_rend/ivas_output_init.c +++ b/lib_rend/ivas_output_init.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: keep in lib_rend or move to lib_dec ? #include #include #include "options.h" diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 2cb50d4507..fb928d637d 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -154,14 +154,8 @@ struct IVAS_REND IVAS_REND_HeadRotData headRotData; }; -static int32_t limitRendererOutput( - IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ - float *output, /* i/o: I/O buffer */ - const int16_t output_frame, /* i : number of samples per channel in the buffer */ - const float threshold /* i : signal amplitude above which limiting starts to be applied */ -); - -static IVAS_QUATERNION quaternionInit( void ) +static IVAS_QUATERNION quaternionInit( + void ) { IVAS_QUATERNION q; q.w = 1.0f; @@ -169,12 +163,17 @@ static IVAS_QUATERNION quaternionInit( void ) return q; } -static float *getSmplPtr( IVAS_REND_AudioBuffer buffer, uint32_t chnlIdx, uint32_t smplIdx ) +static float *getSmplPtr( + IVAS_REND_AudioBuffer buffer, + uint32_t chnlIdx, + uint32_t smplIdx ) { return buffer.data + chnlIdx * buffer.config.numSamplesPerChannel + smplIdx; } -static void copyBufferTo2dArray( const IVAS_REND_AudioBuffer buffer, float array[MAX_OUTPUT_CHANNELS][L_FRAME48k] ) +static void copyBufferTo2dArray( + const IVAS_REND_AudioBuffer buffer, + float array[MAX_OUTPUT_CHANNELS][L_FRAME48k] ) { uint32_t smplIdx; uint32_t chnlIdx; @@ -189,11 +188,15 @@ static void copyBufferTo2dArray( const IVAS_REND_AudioBuffer buffer, float array array[chnlIdx][smplIdx] = *readPtr++; } } + + return; } -static void accumulate2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME48k], IVAS_REND_AudioBuffer *buffer ) +static void accumulate2dArrayToBuffer( + float array[MAX_OUTPUT_CHANNELS][L_FRAME48k], + IVAS_REND_AudioBuffer *buffer ) { - int32_t smplIdx, chnlIdx; + int16_t smplIdx, chnlIdx; float *writePtr; writePtr = buffer->data; @@ -204,6 +207,8 @@ static void accumulate2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME4 *writePtr++ += array[chnlIdx][smplIdx]; } } + + return; } /*-------------------------------------------------------------------* @@ -211,8 +216,10 @@ static void accumulate2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME4 * * In-place saturation control for multichannel buffers with adaptive release time * - * r: number of clipped output samples + * *-------------------------------------------------------------------*/ + +/*! r: number of clipped output samples */ static int32_t limitRendererOutput( IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ float *output, /* i/o: I/O buffer */ @@ -257,7 +264,8 @@ static int32_t limitRendererOutput( return numClipping; } -static AUDIO_CONFIG rendAudioConfigToIvasAudioConfig( IVAS_REND_AudioConfig rendConfig ) +static AUDIO_CONFIG rendAudioConfigToIvasAudioConfig( // VE2AT: similar is defined again at line 397, why? + IVAS_REND_AudioConfig rendConfig ) { switch ( rendConfig ) { @@ -300,7 +308,8 @@ static AUDIO_CONFIG rendAudioConfigToIvasAudioConfig( IVAS_REND_AudioConfig rend return AUDIO_CONFIG_INVALID; } -static ivas_error validateOutputAudioConfig( IVAS_REND_AudioConfig outConfig ) +static ivas_error validateOutputAudioConfig( + IVAS_REND_AudioConfig outConfig ) { switch ( outConfig ) { @@ -325,13 +334,16 @@ static ivas_error validateOutputAudioConfig( IVAS_REND_AudioConfig outConfig ) return IVAS_ERR_INVALID_OUTPUT_FORMAT; } -IVAS_REND_AudioConfigType getAudioConfigType( IVAS_REND_AudioConfig config ) +IVAS_REND_AudioConfigType getAudioConfigType( + IVAS_REND_AudioConfig config ) { /* By definition, config type is the second byte (from LSB) of IVAS_REND_AudioConfig enum. */ - return ( config & 0xFF00 ) >> 8; + return ( config & 0xFF00 ) >> 8; // VE2AT: MSVC returns warning C4244: 'return': conversion from 'int' to 'IVAS_REND_InputId', possible loss of data } -static ivas_error validateOutputSampleRate( int32_t sampleRate, IVAS_REND_AudioConfig outConfig ) +static ivas_error validateOutputSampleRate( + const int32_t sampleRate, + const IVAS_REND_AudioConfig outConfig ) { if ( getAudioConfigType( outConfig ) != IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) { @@ -352,7 +364,9 @@ static ivas_error validateOutputSampleRate( int32_t sampleRate, IVAS_REND_AudioC return IVAS_ERR_INVALID_SAMPLING_RATE; } -ivas_error getAudioConfigNumChannels( IVAS_REND_AudioConfig config, int32_t *numChannels ) +ivas_error getAudioConfigNumChannels( + const IVAS_REND_AudioConfig config, + int16_t *numChannels ) { switch ( config ) { @@ -394,7 +408,8 @@ ivas_error getAudioConfigNumChannels( IVAS_REND_AudioConfig config, int32_t *num return IVAS_ERR_OK; } -AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( IVAS_REND_AudioConfig config ) +AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( + IVAS_REND_AudioConfig config ) { switch ( config ) { @@ -427,7 +442,10 @@ AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( IVAS_REND_AudioConfig config } } -static ivas_error initLimiter( IVAS_LIMITER_HANDLE *phLimiter, int32_t numChannels, int32_t sampleRate ) +static ivas_error initLimiter( + IVAS_LIMITER_HANDLE *phLimiter, + const int16_t numChannels, + const int32_t sampleRate ) { /* If re-initializing with unchanged values, return early */ if ( *phLimiter != NULL && @@ -452,7 +470,8 @@ static ivas_error initLimiter( IVAS_LIMITER_HANDLE *phLimiter, int32_t numChanne return IVAS_ERR_OK; } -static LSSETUP_CUSTOM_STRUCT defaultCustomLs( void ) +static LSSETUP_CUSTOM_STRUCT defaultCustomLs( + void ) { LSSETUP_CUSTOM_STRUCT ls; @@ -470,7 +489,9 @@ static LSSETUP_CUSTOM_STRUCT defaultCustomLs( void ) return ls; } -static ivas_error getSpeakerAzimuths( IVAS_REND_AudioConfig config, const float **azimuths ) +static ivas_error getSpeakerAzimuths( + IVAS_REND_AudioConfig config, + const float **azimuths ) { switch ( config ) { @@ -502,7 +523,9 @@ static ivas_error getSpeakerAzimuths( IVAS_REND_AudioConfig config, const float return IVAS_ERR_OK; } -static ivas_error getSpeakerElevations( IVAS_REND_AudioConfig config, const float **elevations ) +static ivas_error getSpeakerElevations( + IVAS_REND_AudioConfig config, + const float **elevations ) { switch ( config ) { @@ -534,7 +557,9 @@ static ivas_error getSpeakerElevations( IVAS_REND_AudioConfig config, const floa return IVAS_ERR_OK; } -static ivas_error getAmbisonicsOrder( IVAS_REND_AudioConfig config, int16_t *order ) +static ivas_error getAmbisonicsOrder( + IVAS_REND_AudioConfig config, + int16_t *order ) { switch ( config ) { @@ -554,7 +579,9 @@ static ivas_error getAmbisonicsOrder( IVAS_REND_AudioConfig config, int16_t *ord return IVAS_ERR_OK; } -static ivas_error getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_AudioConfig config, int16_t *numNonLfeChannels ) +static ivas_error getNumNonLfeChannelsInSpeakerLayout( + IVAS_REND_AudioConfig config, + int16_t *numNonLfeChannels ) { switch ( config ) { @@ -589,8 +616,8 @@ static ivas_error getMcConfigValues( LSSETUP_CUSTOM_STRUCT inCustomLs, const float **azimuth, const float **elevation, - int32_t *lfe_idx, - int32_t *is_planar ) + int16_t *lfe_idx, + int16_t *is_planar ) { int16_t i; @@ -637,7 +664,10 @@ static ivas_error getMcConfigValues( return IVAS_ERR_OK; } -static ivas_error initEfap( EFAP_WRAPPER *pEfapWrapper, IVAS_REND_AudioConfig outConfig, const LSSETUP_CUSTOM_STRUCT *pCustomLsOut ) +static ivas_error initEfap( + EFAP_WRAPPER *pEfapWrapper, + IVAS_REND_AudioConfig outConfig, + const LSSETUP_CUSTOM_STRUCT *pCustomLsOut ) { ivas_error error; const float *azimuths; @@ -669,11 +699,7 @@ static ivas_error initEfap( EFAP_WRAPPER *pEfapWrapper, IVAS_REND_AudioConfig ou if ( outConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { - if ( ( error = efap_init_data( &pEfapWrapper->hEfap, - pCustomLsOut->ls_azimuth, - pCustomLsOut->ls_elevation, - pCustomLsOut->num_spk, - EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + if ( ( error = efap_init_data( &pEfapWrapper->hEfap, pCustomLsOut->ls_azimuth, pCustomLsOut->ls_elevation, pCustomLsOut->num_spk, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) { return error; } @@ -692,11 +718,7 @@ static ivas_error initEfap( EFAP_WRAPPER *pEfapWrapper, IVAS_REND_AudioConfig ou { return error; } - if ( ( error = efap_init_data( &pEfapWrapper->hEfap, - azimuths, - elevations, - numNonLfeChannels, - EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + if ( ( error = efap_init_data( &pEfapWrapper->hEfap, azimuths, elevations, numNonLfeChannels, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) { return error; } @@ -705,16 +727,17 @@ static ivas_error initEfap( EFAP_WRAPPER *pEfapWrapper, IVAS_REND_AudioConfig ou return IVAS_ERR_OK; } -static ivas_error getEfapGains( EFAP_WRAPPER efapWrapper, - const float azi, - const float ele, - pan_vector panGains ) +static ivas_error getEfapGains( + EFAP_WRAPPER efapWrapper, + const float azi, + const float ele, + pan_vector panGains ) { pan_vector tmpPanGains; /* tmp pan gain buffer without LFE channels */ float *readPtr; - int32_t i; + int16_t i; int16_t lfeCount; - int32_t numChannels; + int16_t numChannels; ivas_error error; /* EFAP returns an array of gains only for non-LFE speakers */ @@ -788,21 +811,28 @@ static void initHeadRotation( { hIvasRend->headRotData.headPositions[i] = quaternionInit(); } + + return; } -static void initRotMatrix( rotation_matrix rot_mat ) +static void initRotMatrix( + rotation_matrix rot_mat ) { int16_t i; + /* Initialize rotation matrices */ for ( i = 0; i < 3; i++ ) { set_zero( rot_mat[i], 3 ); rot_mat[i][i] = 1.f; } + + return; } -static void initRotGains( rotation_gains rot_gains ) +static void initRotGains( + rotation_gains rot_gains ) { int16_t i; /* Set gains to passthrough */ @@ -811,9 +841,15 @@ static void initRotGains( rotation_gains rot_gains ) set_zero( rot_gains[i], MAX_INPUT_CHANNELS ); rot_gains[i][i] = 1.f; } + + return; } -static void initRendInputBase( input_base *inputBase, IVAS_REND_AudioConfig inConfig, IVAS_REND_InputId id, rendering_context rendCtx ) +static void initRendInputBase( + input_base *inputBase, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_InputId id, + const rendering_context rendCtx ) { inputBase->inConfig = inConfig; inputBase->id = id; @@ -826,9 +862,12 @@ static void initRendInputBase( input_base *inputBase, IVAS_REND_AudioConfig inCo inputBase->inputBuffer.data = inputBase->bufferData; set_zero( inputBase->bufferData, MAX_BUFFER_LENGTH ); + + return; } -static IVAS_REND_AudioObjectPosition defaultObjectPosition( void ) +static IVAS_REND_AudioObjectPosition defaultObjectPosition( + void ) { IVAS_REND_AudioObjectPosition pos; @@ -838,7 +877,8 @@ static IVAS_REND_AudioObjectPosition defaultObjectPosition( void ) return pos; } -static rendering_context getRendCtx( IVAS_REND_HANDLE hIvasRend ) +static rendering_context getRendCtx( + IVAS_REND_HANDLE hIvasRend ) { rendering_context ctx; @@ -854,7 +894,8 @@ static rendering_context getRendCtx( IVAS_REND_HANDLE hIvasRend ) return ctx; } -static TDREND_WRAPPER defaultTdRendWrapper( void ) +static TDREND_WRAPPER defaultTdRendWrapper( + void ) { TDREND_WRAPPER w; @@ -865,7 +906,8 @@ static TDREND_WRAPPER defaultTdRendWrapper( void ) return w; } -static CREND_WRAPPER defaultCrendWrapper( void ) +static CREND_WRAPPER defaultCrendWrapper( + void ) { CREND_WRAPPER w; @@ -878,8 +920,8 @@ static CREND_WRAPPER defaultCrendWrapper( void ) static ivas_error setRendInputActiveIsm( void *input, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_InputId id ) + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_InputId id ) { ivas_error error; rendering_context rendCtx; @@ -901,17 +943,11 @@ static ivas_error setRendInputActiveIsm( error = IVAS_ERR_OK; if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL ) { - error = ivas_rend_TDObjRendOpen( &inputIsm->tdRendWrapper, - inConfig, - NULL, - *rendCtx.pOutSampleRate ); + error = ivas_rend_TDObjRendOpen( &inputIsm->tdRendWrapper, inConfig, NULL, *rendCtx.pOutSampleRate ); } else if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { - error = ivas_rend_openCrend( &inputIsm->crendWrapper, - IVAS_REND_AUDIO_CONFIG_7_1_4, - outConfig, - *rendCtx.pOutSampleRate ); + error = ivas_rend_openCrend( &inputIsm->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, *rendCtx.pOutSampleRate ); } if ( error != IVAS_ERR_OK ) { @@ -921,7 +957,8 @@ static ivas_error setRendInputActiveIsm( return IVAS_ERR_OK; } -static void clearInputIsm( input_ism *inputIsm ) +static void clearInputIsm( + input_ism *inputIsm ) { rendering_context rendCtx; @@ -941,16 +978,18 @@ static void clearInputIsm( input_ism *inputIsm ) } } -static void copyLsConversionMatrixToPanMatrix( const LS_CONVERSION_MATRIX *lsConvMatrix, pan_matrix panMatrix ) +static void copyLsConversionMatrixToPanMatrix( + const LS_CONVERSION_MATRIX *lsConvMatrix, + pan_matrix panMatrix ) { - int32_t i; - int32_t inCh, outCh; - int32_t numNonZeroGains; - int32_t numColumns; + int16_t i; + int16_t inCh, outCh; + int16_t numNonZeroGains; + int16_t numColumns; /* Index 0 is special and describes the following values */ numNonZeroGains = lsConvMatrix[0].index; - numColumns = (int32_t) lsConvMatrix[0].value; + numColumns = (int16_t) lsConvMatrix[0].value; for ( i = 1; i < numNonZeroGains + 1; ++i ) { @@ -959,22 +998,28 @@ static void copyLsConversionMatrixToPanMatrix( const LS_CONVERSION_MATRIX *lsCon panMatrix[inCh][outCh] = lsConvMatrix[i].value; } + + return; } -static void setZeroPanMatrix( pan_matrix panMatrix ) +static void setZeroPanMatrix( + pan_matrix panMatrix ) { - int32_t i; + int16_t i; for ( i = 0; i < MAX_INPUT_CHANNELS; ++i ) { set_zero( panMatrix[i], MAX_OUTPUT_CHANNELS ); } + + return; } /* Note: this only sets non-zero elements, call setZeroPanMatrix() to init first. */ -static void fillIdentityPanMatrix( pan_matrix panMatrix ) +static void fillIdentityPanMatrix( + pan_matrix panMatrix ) { - int32_t i; + int16_t i; for ( i = 0; i < min( MAX_INPUT_CHANNELS, MAX_OUTPUT_CHANNELS ); ++i ) { @@ -982,17 +1027,20 @@ static void fillIdentityPanMatrix( pan_matrix panMatrix ) } } -static ivas_error initMcPanGainsWithIdentMatrix( input_mc *inputMc ) +static ivas_error initMcPanGainsWithIdentMatrix( + input_mc *inputMc ) { fillIdentityPanMatrix( inputMc->panGains ); return IVAS_ERR_OK; } -static ivas_error initMcPanGainsWithConversionMapping( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +static ivas_error initMcPanGainsWithConversionMapping( + input_mc *inputMc, + const IVAS_REND_AudioConfig outConfig ) { AUDIO_CONFIG ivasConfigIn, ivasConfigOut; - int32_t i; + int16_t i; ivasConfigIn = rendAudioConfigToIvasAudioConfig( inputMc->base.inConfig ); ivasConfigOut = rendAudioConfigToIvasAudioConfig( outConfig ); @@ -1066,10 +1114,7 @@ static ivas_error initMcPanGainsWithEfap( input_mc *inputMc, IVAS_REND_AudioConf ++outChIdx; } - if ( ( error = getEfapGains( *inputMc->base.ctx.pEfapOutWrapper, - spkAzi[i], - spkEle[i], - inputMc->panGains[outChIdx] ) ) != IVAS_ERR_OK ) + if ( ( error = getEfapGains( *inputMc->base.ctx.pEfapOutWrapper, spkAzi[i], spkEle[i], inputMc->panGains[outChIdx] ) ) != IVAS_ERR_OK ) { return error; } @@ -1087,7 +1132,9 @@ static ivas_error initMcPanGainsWithEfap( input_mc *inputMc, IVAS_REND_AudioConf return IVAS_ERR_OK; } -static ivas_error getRendInputNumChannels( const void *rendInput, int32_t *numInChannels ) +static ivas_error getRendInputNumChannels( + const void *rendInput, + int16_t *numInChannels ) { /* Using a void pointer for this function to be reusable for any input type (input_ism, input_mc, input_sba). Assumptions: @@ -1116,10 +1163,11 @@ static ivas_error getRendInputNumChannels( const void *rendInput, int32_t *numIn return IVAS_ERR_OK; } -static ivas_error initMcPanGainsWithMonoOut( input_mc *inputMc ) +static ivas_error initMcPanGainsWithMonoOut( + input_mc *inputMc ) { - int32_t i; - int32_t numInChannels; + int16_t i; + int16_t numInChannels; ivas_error error; if ( ( error = getRendInputNumChannels( inputMc, &numInChannels ) ) != IVAS_ERR_OK ) @@ -1137,12 +1185,13 @@ static ivas_error initMcPanGainsWithMonoOut( input_mc *inputMc ) return IVAS_ERR_OK; } -static ivas_error initMcPanGainsWithStereoLookup( input_mc *inputMc ) +static ivas_error initMcPanGainsWithStereoLookup( + input_mc *inputMc ) { - int32_t readIdx; - int32_t writeIdx; + int16_t readIdx; + int16_t writeIdx; bool skipSideSpeakers; - int32_t numInChannels; + int16_t numInChannels; ivas_error error; /* Special case - MONO input. @@ -1189,7 +1238,7 @@ static bool configsAreEqual( IVAS_REND_AudioConfig configB, LSSETUP_CUSTOM_STRUCT customLsB ) { - int32_t i; + int16_t i; /* Both input and output are custom LS - compare structs */ if ( configA == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM && configB == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) @@ -1230,7 +1279,9 @@ static bool configsAreEqual( return configA == configB; } -static ivas_error updateMcPanGainsForMcOut( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +static ivas_error updateMcPanGainsForMcOut( + input_mc *inputMc, + const IVAS_REND_AudioConfig outConfig ) { ivas_error error; @@ -1246,10 +1297,7 @@ static ivas_error updateMcPanGainsForMcOut( input_mc *inputMc, IVAS_REND_AudioCo +-----------+----------+---------------+-----------+--------------------+ */ - if ( configsAreEqual( inputMc->base.inConfig, - inputMc->customLsInput, - outConfig, - *inputMc->base.ctx.pCustomLsOut ) ) + if ( configsAreEqual( inputMc->base.inConfig, inputMc->customLsInput, outConfig, *inputMc->base.ctx.pCustomLsOut ) ) { error = initMcPanGainsWithIdentMatrix( inputMc ); } @@ -1275,7 +1323,9 @@ static ivas_error updateMcPanGainsForMcOut( input_mc *inputMc, IVAS_REND_AudioCo return error; } -static ivas_error updateMcPanGainsForAmbiOut( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +static ivas_error updateMcPanGainsForAmbiOut( + input_mc *inputMc, + const IVAS_REND_AudioConfig outConfig ) { int16_t ch_in, ch_out, lfeIdx; int16_t numNonLfeInChannels, outAmbiOrder; @@ -1308,10 +1358,7 @@ static ivas_error updateMcPanGainsForAmbiOut( input_mc *inputMc, IVAS_REND_Audio { ++ch_out; } - ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], - (int16_t) spkEle[ch_in], - inputMc->panGains[ch_out], - outAmbiOrder ); + ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], (int16_t) spkEle[ch_in], inputMc->panGains[ch_out], outAmbiOrder ); } } else @@ -1331,19 +1378,18 @@ static ivas_error updateMcPanGainsForAmbiOut( input_mc *inputMc, IVAS_REND_Audio } } - ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], - (int16_t) spkEle[ch_in], - inputMc->panGains[ch_out], - outAmbiOrder ); + ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], (int16_t) spkEle[ch_in], inputMc->panGains[ch_out], outAmbiOrder ); } } return IVAS_ERR_OK; } -static ivas_error updateMcPanGains( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +static ivas_error updateMcPanGains( + input_mc *inputMc, + const IVAS_REND_AudioConfig outConfig ) { - int32_t i; + int16_t i; ivas_error error; /* Reset to all zeros - some functions below only write non-zero elements. */ @@ -1402,7 +1448,7 @@ static ivas_error updateMcPanGains( input_mc *inputMc, IVAS_REND_AudioConfig out See issue: https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec/-/issues/81 */ static void tmpFixBuggyTdBinRendInit( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ) { - int32_t i, j; + int16_t i, j; for ( i = 0; i < hBinRendererTd->NumOfSrcs; ++i ) { @@ -1419,8 +1465,8 @@ static void tmpFixBuggyTdBinRendInit( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRen static ivas_error initMcBinauralRendering( input_mc *inputMc, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig ) + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig ) { ivas_error error; int32_t outSampleRate; @@ -1456,10 +1502,7 @@ static ivas_error initMcBinauralRendering( // if ( initTDRend ) { - if ( ( error = ivas_rend_TDObjRendOpen( &inputMc->tdRendWrapper, - inConfig, - &inputMc->customLsInput, - outSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_TDObjRendOpen( &inputMc->tdRendWrapper, inConfig, &inputMc->customLsInput, outSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -1469,10 +1512,7 @@ static ivas_error initMcBinauralRendering( } { - if ( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, - ( inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) ? IVAS_REND_AUDIO_CONFIG_7_1_4 : inConfig, - outConfig, - outSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, ( inConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) ? IVAS_REND_AUDIO_CONFIG_7_1_4 : inConfig, outConfig, outSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -1538,8 +1578,8 @@ static IVAS_REND_LfeRouting defaultLfeRouting( static ivas_error setRendInputActiveMc( void *input, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_InputId id ) + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_InputId id ) { ivas_error error; rendering_context rendCtx; @@ -1556,10 +1596,7 @@ static ivas_error setRendInputActiveMc( inputMc->tdRendWrapper = defaultTdRendWrapper(); inputMc->crendWrapper = defaultCrendWrapper(); initRotGains( inputMc->rot_gains_prev ); - inputMc->lfeRouting = defaultLfeRouting( inConfig, - inputMc->customLsInput, - outConfig, - *inputMc->base.ctx.pCustomLsOut ); + inputMc->lfeRouting = defaultLfeRouting( inConfig, inputMc->customLsInput, outConfig, *inputMc->base.ctx.pCustomLsOut ); if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { @@ -1577,7 +1614,8 @@ static ivas_error setRendInputActiveMc( return IVAS_ERR_OK; } -static void clearInputMc( input_mc *inputMc ) +static void clearInputMc( + input_mc *inputMc ) { rendering_context rendCtx; @@ -1599,11 +1637,13 @@ static void clearInputMc( input_mc *inputMc ) ivas_td_binaural_close( &inputMc->tdRendWrapper.hBinRendererTd ); inputMc->tdRendWrapper.hHrtfTD = NULL; } + + return; } static ivas_error initSbaPanGainsForMcOut( input_sba *inputSba, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, const LSSETUP_CUSTOM_STRUCT *outSetupCustom ) { int16_t ambiOrderIn; @@ -1671,7 +1711,9 @@ static ivas_error initSbaPanGainsForMcOut( return IVAS_ERR_OK; } -static ivas_error initSbaPanGainsForSbaOut( input_sba *inputSba, IVAS_REND_AudioConfig outConfig ) +static ivas_error initSbaPanGainsForSbaOut( + input_sba *inputSba, + const IVAS_REND_AudioConfig outConfig ) { ivas_error error; error = IVAS_ERR_OK; @@ -1687,7 +1729,9 @@ static ivas_error initSbaPanGainsForSbaOut( input_sba *inputSba, IVAS_REND_Audio return error; } -static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig outConfig ) +static ivas_error updateSbaPanGains( + input_sba *inputSba, + const IVAS_REND_AudioConfig outConfig ) { ivas_error error; IVAS_REND_AudioConfig inConfig; @@ -1711,20 +1755,14 @@ static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig switch ( outConfig ) { case IVAS_REND_AUDIO_CONFIG_BINAURAL: - error = ivas_rend_openCrend( &inputSba->crendWrapper, - inConfig, - outConfig, - *rendCtx.pOutSampleRate ); + error = ivas_rend_openCrend( &inputSba->crendWrapper, inConfig, outConfig, *rendCtx.pOutSampleRate ); break; case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: if ( ( error = initSbaPanGainsForMcOut( inputSba, IVAS_REND_AUDIO_CONFIG_7_1_4, NULL ) ) != IVAS_ERR_OK ) { return error; } - error = ivas_rend_openCrend( &inputSba->crendWrapper, - IVAS_REND_AUDIO_CONFIG_7_1_4, - outConfig, - *rendCtx.pOutSampleRate ); + error = ivas_rend_openCrend( &inputSba->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, *rendCtx.pOutSampleRate ); break; default: return IVAS_ERR_INVALID_OUTPUT_FORMAT; @@ -1744,8 +1782,8 @@ static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig static ivas_error setRendInputActiveSba( void *input, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_InputId id ) + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_InputId id ) { ivas_error error; rendering_context rendCtx; @@ -1769,7 +1807,8 @@ static ivas_error setRendInputActiveSba( return error; } -static void clearInputSba( input_sba *inputSba ) +static void clearInputSba( + input_sba *inputSba ) { rendering_context rendCtx; @@ -1782,17 +1821,19 @@ static void clearInputSba( input_sba *inputSba ) { ivas_rend_closeCrend( &inputSba->crendWrapper ); } + + return; } ivas_error IVAS_REND_Open( IVAS_REND_HANDLE *phIvasRend, - int32_t outputSampleRate, - IVAS_REND_AudioConfig outConfig ) + const int32_t outputSampleRate, + const IVAS_REND_AudioConfig outConfig ) { int16_t i; IVAS_REND_HANDLE hIvasRend; ivas_error error; - int32_t numOutChannels; + int16_t numOutChannels; /*-----------------------------------------------------------------* * Validate function arguments @@ -1844,36 +1885,28 @@ ivas_error IVAS_REND_Open( /* Initialize inputs */ for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) { - initRendInputBase( &hIvasRend->inputsIsm[i].base, - IVAS_REND_AUDIO_CONFIG_UNKNOWN, - 0, - getRendCtx( hIvasRend ) ); + initRendInputBase( &hIvasRend->inputsIsm[i].base, IVAS_REND_AUDIO_CONFIG_UNKNOWN, 0, getRendCtx( hIvasRend ) ); hIvasRend->inputsIsm[i].crendWrapper.hCrend = NULL; hIvasRend->inputsIsm[i].tdRendWrapper.hBinRendererTd = NULL; } for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) { - initRendInputBase( &hIvasRend->inputsMc[i].base, - IVAS_REND_AUDIO_CONFIG_UNKNOWN, - 0, - getRendCtx( hIvasRend ) ); + initRendInputBase( &hIvasRend->inputsMc[i].base, IVAS_REND_AUDIO_CONFIG_UNKNOWN, 0, getRendCtx( hIvasRend ) ); hIvasRend->inputsMc[i].efapInWrapper.hEfap = NULL; hIvasRend->inputsMc[i].crendWrapper.hCrend = NULL; hIvasRend->inputsMc[i].tdRendWrapper.hBinRendererTd = NULL; } for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) { - initRendInputBase( &hIvasRend->inputsSba[i].base, - IVAS_REND_AUDIO_CONFIG_UNKNOWN, - 0, - getRendCtx( hIvasRend ) ); + initRendInputBase( &hIvasRend->inputsSba[i].base, IVAS_REND_AUDIO_CONFIG_UNKNOWN, 0, getRendCtx( hIvasRend ) ); hIvasRend->inputsSba[i].crendWrapper.hCrend = NULL; } return IVAS_ERR_OK; } -static LSSETUP_CUSTOM_STRUCT makeCustomLsSetup( IVAS_CUSTOM_LS_DATA rendCustomLsLayout ) +static LSSETUP_CUSTOM_STRUCT makeCustomLsSetup( + const IVAS_CUSTOM_LS_DATA rendCustomLsLayout ) { int16_t i; LSSETUP_CUSTOM_STRUCT customLs; @@ -1899,9 +1932,10 @@ static LSSETUP_CUSTOM_STRUCT makeCustomLsSetup( IVAS_CUSTOM_LS_DATA rendCustomLs return customLs; } -static ivas_error validateCustomLsLayout( IVAS_CUSTOM_LS_DATA layout ) +static ivas_error validateCustomLsLayout( + const IVAS_CUSTOM_LS_DATA layout ) { - int32_t i; + int16_t i; /* Negative number of speakers or LFEs makes no sense */ if ( layout.num_spk < 0 || layout.num_lfe < 0 ) @@ -1927,11 +1961,10 @@ static ivas_error validateCustomLsLayout( IVAS_CUSTOM_LS_DATA layout ) ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( IVAS_REND_HANDLE hIvasRend, - IVAS_CUSTOM_LS_DATA layout ) + const IVAS_CUSTOM_LS_DATA layout ) { - int32_t numOutChannels; + int16_t i, numOutChannels; ivas_error error; - int32_t i; input_mc *inputMc; input_sba *inputSba; @@ -1960,14 +1993,10 @@ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( { return error; } - initLimiter( &hIvasRend->hLimiter, - numOutChannels, - hIvasRend->sampleRateOut ); + initLimiter( &hIvasRend->hLimiter, numOutChannels, hIvasRend->sampleRateOut ); /* Re-initialize EFAP - output layout has changed or has been fully defined for the first time */ - initEfap( &hIvasRend->efapOutWrapper, - hIvasRend->outputConfig, - &hIvasRend->customLsOut ); + initEfap( &hIvasRend->efapOutWrapper, hIvasRend->outputConfig, &hIvasRend->customLsOut ); /* Re-initialize panning gains for each active MC input, This includes re-initializing * LFE handling for the new output layout, which means custom LFE handling is overwritten, @@ -1980,10 +2009,9 @@ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( /* Input inactive, skip. */ continue; } - inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, - inputMc->customLsInput, - hIvasRend->outputConfig, - *inputMc->base.ctx.pCustomLsOut ); + + inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, inputMc->customLsInput, hIvasRend->outputConfig, *inputMc->base.ctx.pCustomLsOut ); + if ( ( error = updateMcPanGains( inputMc, hIvasRend->outputConfig ) ) != IVAS_ERR_OK ) { return error; @@ -2010,7 +2038,7 @@ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( ivas_error IVAS_REND_NumOutChannels( IVAS_REND_CONST_HANDLE hIvasRend, - int32_t *numOutChannels ) + int16_t *numOutChannels ) { ivas_error error; @@ -2042,7 +2070,9 @@ ivas_error IVAS_REND_NumOutChannels( return IVAS_ERR_OK; } -static IVAS_REND_InputId makeInputId( IVAS_REND_AudioConfig config, int32_t inputIndex ) +static IVAS_REND_InputId makeInputId( + IVAS_REND_AudioConfig config, + const int32_t inputIndex ) { /* Put config type in second byte (from LSB), put index + 1 in first byte * @@ -2050,7 +2080,10 @@ static IVAS_REND_InputId makeInputId( IVAS_REND_AudioConfig config, int32_t inpu return getAudioConfigType( config ) << 8 | ( inputIndex + 1 ); } -static ivas_error getInputById( IVAS_REND_HANDLE hIvasRend, IVAS_REND_InputId inputId, void **ppInput ) +static ivas_error getInputById( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId inputId, + void **ppInput ) { int32_t inputIndex; IVAS_REND_AudioConfigType configType; @@ -2105,7 +2138,10 @@ static ivas_error getInputById( IVAS_REND_HANDLE hIvasRend, IVAS_REND_InputId in } /* Unfortunately code duplication here is the only way to avoid warnings about const casting */ -static ivas_error getConstInputById( IVAS_REND_CONST_HANDLE hIvasRend, IVAS_REND_InputId inputId, const void **ppInput ) +static ivas_error getConstInputById( + IVAS_REND_CONST_HANDLE hIvasRend, + const IVAS_REND_InputId inputId, + const void **ppInput ) { int32_t inputIndex; IVAS_REND_AudioConfigType configType; @@ -2246,19 +2282,14 @@ ivas_error IVAS_REND_AddInput( } /* Find first free input in array corresponding to input type */ - if ( ( error = findFreeInputSlot( inputsArray, - inputStructSize, - maxNumInputsOfType, - &inputIndex ) ) != IVAS_ERR_OK ) + if ( ( error = findFreeInputSlot( inputsArray, inputStructSize, maxNumInputsOfType, &inputIndex ) ) != IVAS_ERR_OK ) { return error; } *inputId = makeInputId( inConfig, inputIndex ); - if ( ( error = activateInput( (uint8_t *) inputsArray + inputStructSize * inputIndex, - inConfig, - *inputId ) ) != IVAS_ERR_OK ) + if ( ( error = activateInput( (uint8_t *) inputsArray + inputStructSize * inputIndex, inConfig, *inputId ) ) != IVAS_ERR_OK ) { return error; } @@ -2268,8 +2299,8 @@ ivas_error IVAS_REND_AddInput( ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - IVAS_CUSTOM_LS_DATA layout ) + const IVAS_REND_InputId inputId, + const IVAS_CUSTOM_LS_DATA layout ) { input_mc *inputMc; ivas_error error; @@ -2301,10 +2332,7 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( * set for the MC input. */ inputMc->customLsInput = makeCustomLsSetup( layout ); - inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, - inputMc->customLsInput, - hIvasRend->outputConfig, - *inputMc->base.ctx.pCustomLsOut ); + inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, inputMc->customLsInput, hIvasRend->outputConfig, *inputMc->base.ctx.pCustomLsOut ); initEfap( &inputMc->efapInWrapper, inputMc->base.inConfig, &inputMc->customLsInput ); @@ -2325,8 +2353,8 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( ivas_error IVAS_REND_SetInputGain( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - float gain /* linear gain, not in dB */ + const IVAS_REND_InputId inputId, + const float gain /* linear gain, not in dB */ ) { input_base *inputBase; @@ -2350,7 +2378,8 @@ ivas_error IVAS_REND_SetInputGain( return IVAS_ERR_OK; } -static int32_t getNumLfeChannels( input_mc *inputMc ) +static int32_t getNumLfeChannels( + input_mc *inputMc ) { switch ( inputMc->base.inConfig ) { @@ -2371,8 +2400,8 @@ static int32_t getNumLfeChannels( input_mc *inputMc ) ivas_error IVAS_REND_SetInputLfeRouting( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - IVAS_REND_LfeRouting lfeRouting ) + const IVAS_REND_InputId inputId, + const IVAS_REND_LfeRouting lfeRouting ) { input_base *pInputBase; input_mc *pInputMc; @@ -2413,7 +2442,7 @@ ivas_error IVAS_REND_SetInputLfeRouting( ivas_error IVAS_REND_RemoveInput( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId ) + const IVAS_REND_InputId inputId ) { ivas_error error; input_base *inputBase; @@ -2451,8 +2480,8 @@ ivas_error IVAS_REND_RemoveInput( ivas_error IVAS_REND_GetInputNumChannels( IVAS_REND_CONST_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - int32_t *numChannels ) + const IVAS_REND_InputId inputId, + int16_t *numChannels ) { ivas_error error; const input_base *pInput; @@ -2537,12 +2566,12 @@ ivas_error IVAS_REND_GetDelay( ivas_error IVAS_REND_FeedInputAudio( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - IVAS_REND_ReadOnlyAudioBuffer inputAudio ) + const IVAS_REND_InputId inputId, + const IVAS_REND_ReadOnlyAudioBuffer inputAudio ) { ivas_error error; input_base *inputBase; - int32_t numInputChannels; + int16_t numInputChannels; /*-----------------------------------------------------------------* * Validate function arguments @@ -2582,9 +2611,7 @@ ivas_error IVAS_REND_FeedInputAudio( inputBase->inputBuffer.config = inputAudio.config; - mvr2r( inputAudio.data, - inputBase->inputBuffer.data, - inputAudio.config.numSamplesPerChannel * inputAudio.config.numChannels ); + mvr2r( inputAudio.data, inputBase->inputBuffer.data, inputAudio.config.numSamplesPerChannel * inputAudio.config.numChannels ); inputBase->numNewSamplesPerChannel = inputAudio.config.numSamplesPerChannel; @@ -2593,8 +2620,8 @@ ivas_error IVAS_REND_FeedInputAudio( ivas_error IVAS_REND_FeedInputObjectMetadata( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - IVAS_REND_AudioObjectPosition objectPosition ) + const IVAS_REND_InputId inputId, + const IVAS_REND_AudioObjectPosition objectPosition ) { input_base *inputBase; input_ism *inputIsm; @@ -2741,6 +2768,8 @@ static void renderBufferChannel( IVAS_REND_AudioBuffer outAudio ) { renderBufferChannelLerp( inAudio, inChannelIdx, outputGains, NULL, outAudio ); + + return; } static ivas_error rotateFrameMc( @@ -2755,20 +2784,18 @@ static ivas_error rotateFrameMc( { int16_t i; int16_t subframe_idx, subframe_len; - int16_t azimuth, elevation; - int32_t is_planar_setup, lfe_idx; - int32_t nchan; - int32_t ch_in, ch_out; - int32_t ch_in_woLFE, ch_out_woLFE; - + int16_t is_planar_setup, lfe_idx; + int16_t nchan; + int16_t ch_in, ch_out; + int16_t ch_in_woLFE, ch_out_woLFE; float *readPtr, *writePtr; const float *ls_azimuth, *ls_elevation; rotation_matrix Rmat; rotation_gains gains; float tmp_gains[MAX_INPUT_CHANNELS]; - wmops_sub_start("rotateFrameMc"); + wmops_sub_start( "rotateFrameMc" ); if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { @@ -2779,12 +2806,7 @@ static ivas_error rotateFrameMc( nchan = inCustomLs.num_spk + inCustomLs.num_lfe; } - getMcConfigValues( inConfig, - inCustomLs, - &ls_azimuth, - &ls_elevation, - &lfe_idx, - &is_planar_setup ); + getMcConfigValues( inConfig, inCustomLs, &ls_azimuth, &ls_elevation, &lfe_idx, &is_planar_setup ); /* initialize gains to passthrough */ for ( ch_in = 0; ch_in < nchan; ch_in++ ) @@ -2812,20 +2834,11 @@ static ivas_error rotateFrameMc( ch_in_woLFE = ( ( lfe_idx > 0 ) && ( ch_in >= lfe_idx ) ) ? ch_in - 1 : ch_in; /* gains for current subframe rotation */ - rotateAziEle( ls_azimuth[ch_in_woLFE], - ls_elevation[ch_in_woLFE], - &azimuth, - &elevation, - Rmat, - (int16_t) is_planar_setup ); + rotateAziEle( ls_azimuth[ch_in_woLFE], ls_elevation[ch_in_woLFE], &azimuth, &elevation, Rmat, is_planar_setup ); if ( hEFAPdata != NULL && ( ls_azimuth[ch_in_woLFE] != azimuth || ls_elevation[ch_in_woLFE] != elevation ) ) { - efap_determine_gains( hEFAPdata, - tmp_gains, - azimuth, - elevation, - EFAP_MODE_EFAP ); + efap_determine_gains( hEFAPdata, tmp_gains, azimuth, elevation, EFAP_MODE_EFAP ); for ( ch_out = 0; ch_out < nchan; ch_out++ ) { @@ -2885,13 +2898,12 @@ static ivas_error rotateFrameSba( int16_t m1, m2; int16_t shd_rot_max_order; int16_t subframe_idx, subframe_len; - float *readPtr, *writePtr; rotation_matrix Rmat; float tmpRot[2 * HEADROT_ORDER + 1]; rotation_gains gains; - wmops_sub_start("rotateFrameSba"); + wmops_sub_start( "rotateFrameSba" ); getAmbisonicsOrder( inConfig, &shd_rot_max_order ); @@ -2977,10 +2989,9 @@ static ivas_error renderIsmToBinaural( IVAS_REND_AudioBuffer outAudio ) { float tmpTDRendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - ivas_error error; - wmops_sub_start("renderIsmToBinaural"); + wmops_sub_start( "renderIsmToBinaural" ); copyBufferTo2dArray( ismInput->base.inputBuffer, tmpTDRendBuffer ); @@ -3011,11 +3022,10 @@ static ivas_error renderIsmToBinauralRoom( int16_t i; int16_t azi_rot, ele_rot; int16_t subframe_idx, subframe_len; - int32_t tmp; + int16_t tmp; rotation_matrix Rmat; float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; IVAS_QUATERNION quat; - ivas_error error; pan_vector currentPanGains; pan_vector previousPanGains; @@ -3023,7 +3033,7 @@ static ivas_error renderIsmToBinauralRoom( IVAS_REND_AudioObjectPosition rotatedPos; const IVAS_REND_HeadRotData *headRotData; - wmops_sub_start("renderIsmToBinauralRoom"); + wmops_sub_start( "renderIsmToBinauralRoom" ); headRotData = ismInput->base.ctx.pHeadRotData; rotatedPos = defaultObjectPosition(); @@ -3050,12 +3060,7 @@ static ivas_error renderIsmToBinauralRoom( /* previous position gains */ if ( headRotData->headRotEnabled ) { - rotateAziEle( ismInput->previousPos.azimuth, - ismInput->previousPos.elevation, - &azi_rot, - &ele_rot, - ismInput->rot_mat_prev, - 0 ); + rotateAziEle( ismInput->previousPos.azimuth, ismInput->previousPos.elevation, &azi_rot, &ele_rot, ismInput->rot_mat_prev, 0 ); rotatedPos.azimuth = (float) azi_rot; rotatedPos.elevation = (float) ele_rot; } @@ -3070,12 +3075,7 @@ static ivas_error renderIsmToBinauralRoom( /* current position gains */ if ( headRotData->headRotEnabled ) { - rotateAziEle( ismInput->currentPos.azimuth, - ismInput->currentPos.elevation, - &azi_rot, - &ele_rot, - Rmat, - 0 ); + rotateAziEle( ismInput->currentPos.azimuth, ismInput->currentPos.elevation, &azi_rot, &ele_rot, Rmat, 0 ); rotatedPos.azimuth = (float) azi_rot; rotatedPos.elevation = (float) ele_rot; } @@ -3095,23 +3095,15 @@ static ivas_error renderIsmToBinauralRoom( /* intermediate rendering to 7_1_4 */ tmpMcBuffer = ismInput->base.inputBuffer; getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); - tmpMcBuffer.config.numChannels = (int16_t) tmp; + tmpMcBuffer.config.numChannels = tmp; tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels ); - renderBufferChannelLerp( ismInput->base.inputBuffer, - 0, - currentPanGains, - previousPanGains, - tmpMcBuffer ); + renderBufferChannelLerp( ismInput->base.inputBuffer, 0, currentPanGains, previousPanGains, tmpMcBuffer ); copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); - ivas_rend_crendProcess( &ismInput->crendWrapper, - IVAS_REND_AUDIO_CONFIG_7_1_4, - IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM, - tmpCrendBuffer, - *ismInput->base.ctx.pOutSampleRate ); + ivas_rend_crendProcess( &ismInput->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM, tmpCrendBuffer, *ismInput->base.ctx.pOutSampleRate ); accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); @@ -3124,37 +3116,27 @@ static ivas_error renderIsmToBinauralRoom( static ivas_error renderIsmToMc( const input_ism *ismInput, - IVAS_REND_AudioBuffer outAudio ) + const IVAS_REND_AudioBuffer outAudio ) { pan_vector currentPanGains; pan_vector previousPanGains; ivas_error error; - wmops_sub_start("renderIsmToMc"); + wmops_sub_start( "renderIsmToMc" ); /* TODO(sgi): Possible optimization: less processing needed if position didn't change */ - if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, - ismInput->currentPos.azimuth, - ismInput->currentPos.elevation, - currentPanGains ) ) != IVAS_ERR_OK ) + if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, ismInput->currentPos.azimuth, ismInput->currentPos.elevation, currentPanGains ) ) != IVAS_ERR_OK ) { return error; } - if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, - ismInput->previousPos.azimuth, - ismInput->previousPos.elevation, - previousPanGains ) ) != IVAS_ERR_OK ) + if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, ismInput->previousPos.azimuth, ismInput->previousPos.elevation, previousPanGains ) ) != IVAS_ERR_OK ) { return error; } /* Assume num channels in audio buffer to be 1. * This should have been validated in IVAS_REND_FeedInputAudio() */ - renderBufferChannelLerp( ismInput->base.inputBuffer, - 0, - currentPanGains, - previousPanGains, - outAudio ); + renderBufferChannelLerp( ismInput->base.inputBuffer, 0, currentPanGains, previousPanGains, outAudio ); wmops_sub_end(); @@ -3163,17 +3145,17 @@ static ivas_error renderIsmToMc( static ivas_error renderIsmToSba( const input_ism *ismInput, - IVAS_REND_AudioConfig outConfig, - IVAS_REND_AudioBuffer outAudio ) + const IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioBuffer outAudio ) { int16_t ambiOrderOut; - int32_t numOutChannels; + int16_t numOutChannels; pan_vector currentPanGains; pan_vector previousPanGains; ivas_error error; error = IVAS_ERR_OK; - wmops_sub_start("renderIsmToSba"); + wmops_sub_start( "renderIsmToSba" ); if ( ( error = getAudioConfigNumChannels( outConfig, &numOutChannels ) ) != IVAS_ERR_OK ) { @@ -3184,10 +3166,7 @@ static ivas_error renderIsmToSba( return error; } - ivas_dirac_dec_get_response( (int16_t) ismInput->previousPos.azimuth, - (int16_t) ismInput->previousPos.elevation, - previousPanGains, - (int16_t) ambiOrderOut ); + ivas_dirac_dec_get_response( (int16_t) ismInput->previousPos.azimuth, (int16_t) ismInput->previousPos.elevation, previousPanGains, ambiOrderOut ); if ( ( ismInput->currentPos.azimuth == ismInput->previousPos.azimuth ) && ( ismInput->currentPos.elevation == ismInput->previousPos.elevation ) ) @@ -3196,19 +3175,12 @@ static ivas_error renderIsmToSba( } else { - ivas_dirac_dec_get_response( (int16_t) ismInput->currentPos.azimuth, - (int16_t) ismInput->currentPos.elevation, - currentPanGains, - (int16_t) ambiOrderOut ); + ivas_dirac_dec_get_response( (int16_t) ismInput->currentPos.azimuth, (int16_t) ismInput->currentPos.elevation, currentPanGains, ambiOrderOut ); } /* Assume num channels in audio buffer to be 1. * This should have been validated in IVAS_REND_FeedInputAudio() */ - renderBufferChannelLerp( ismInput->base.inputBuffer, - 0, - currentPanGains, - previousPanGains, - outAudio ); + renderBufferChannelLerp( ismInput->base.inputBuffer, 0, currentPanGains, previousPanGains, outAudio ); wmops_sub_end(); @@ -3217,8 +3189,8 @@ static ivas_error renderIsmToSba( static ivas_error renderInputIsm( input_ism *ismInput, - IVAS_REND_AudioConfig outConfig, - IVAS_REND_AudioBuffer outAudio ) + const IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioBuffer outAudio ) { ivas_error error; IVAS_REND_AudioBuffer inAudio; @@ -3233,10 +3205,7 @@ static ivas_error renderInputIsm( ismInput->base.numNewSamplesPerChannel = 0; /* Apply input gain to new audio */ - v_multc( inAudio.data, - ismInput->base.gain, - inAudio.data, - inAudio.config.numSamplesPerChannel * inAudio.config.numChannels ); + v_multc( inAudio.data, ismInput->base.gain, inAudio.data, inAudio.config.numSamplesPerChannel * inAudio.config.numChannels ); switch ( getAudioConfigType( outConfig ) ) @@ -3276,7 +3245,7 @@ static ivas_error renderActiveInputsIsm( IVAS_REND_HANDLE hIvasRend, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; input_ism *pCurrentInput; ivas_error error; @@ -3287,9 +3256,7 @@ static ivas_error renderActiveInputsIsm( /* Skip inactive inputs */ continue; } - if ( ( error = renderInputIsm( pCurrentInput, - hIvasRend->outputConfig, - outAudio ) ) != IVAS_ERR_OK ) + if ( ( error = renderInputIsm( pCurrentInput, hIvasRend->outputConfig, outAudio ) ) != IVAS_ERR_OK ) { return error; } @@ -3309,7 +3276,7 @@ static ivas_error renderLfeToBinaural( assert( ( outAudio.config.numChannels == 2 ) && "Must be binaural output" ); - wmops_sub_start("renderLfeToBinaural"); + wmops_sub_start( "renderLfeToBinaural" ); gain = GAIN_LFE; @@ -3349,7 +3316,7 @@ static ivas_error renderLfeToBinaural( static ivas_error renderMcToBinaural( input_mc *mcInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { int8_t headRotEnabled; @@ -3359,7 +3326,7 @@ static ivas_error renderMcToBinaural( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; - wmops_sub_start("renderMcToBinaural"); + wmops_sub_start( "renderMcToBinaural" ); headRotEnabled = mcInput->base.ctx.pHeadRotData->headRotEnabled; inConfig = mcInput->base.inConfig; @@ -3407,11 +3374,7 @@ static ivas_error renderMcToBinaural( } /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, - mcInput->base.inConfig, - outConfig, - tmpRendBuffer, - *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, mcInput->base.inConfig, outConfig, tmpRendBuffer, *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3429,7 +3392,7 @@ static ivas_error renderMcToBinaural( static ivas_error renderMcToBinauralRoom( input_mc *mcInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; @@ -3437,7 +3400,7 @@ static ivas_error renderMcToBinauralRoom( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; - wmops_sub_start("renderMcToBinauralRoom"); + wmops_sub_start( "renderMcToBinauralRoom" ); /* apply rotation */ if ( mcInput->base.ctx.pHeadRotData->headRotEnabled ) @@ -3463,11 +3426,7 @@ static ivas_error renderMcToBinauralRoom( } /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, - mcInput->base.inConfig, - outConfig, - tmpCrendBuffer, - *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, mcInput->base.inConfig, outConfig, tmpCrendBuffer, *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3485,20 +3444,21 @@ static ivas_error renderMcToBinauralRoom( static ivas_error renderMcCustomLsToBinauralRoom( input_mc *mcInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { int8_t headRotEnabled; int16_t i; - int32_t tmp; + int16_t tmp; float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; IVAS_REND_AudioBuffer tmpMcBuffer; IVAS_REND_AudioBuffer *tmpBufPtr; - wmops_sub_start("renderMcCustomLsToBinauralRoom"); + wmops_sub_start( "renderMcCustomLsToBinauralRoom" ); + + tmpRotBuffer = outAudio; /* avoid compilation warning */ headRotEnabled = mcInput->base.ctx.pHeadRotData->headRotEnabled; @@ -3528,19 +3488,12 @@ static ivas_error renderMcCustomLsToBinauralRoom( tmpBufPtr = ( headRotEnabled ) ? &tmpRotBuffer : &mcInput->base.inputBuffer; for ( i = 0; i < mcInput->base.inputBuffer.config.numChannels; i++ ) { - renderBufferChannel( *tmpBufPtr, - i, - mcInput->panGains[i], - tmpMcBuffer ); + renderBufferChannel( *tmpBufPtr, i, mcInput->panGains[i], tmpMcBuffer ); } copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, - IVAS_REND_AUDIO_CONFIG_7_1_4, - outConfig, - tmpCrendBuffer, - *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, tmpCrendBuffer, *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3565,10 +3518,10 @@ static ivas_error renderMcToMc( const input_mc *mcInput, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; IVAS_REND_AudioBuffer inAudio; - wmops_sub_start("renderMcToMc"); + wmops_sub_start( "renderMcToMc" ); inAudio = mcInput->base.inputBuffer; @@ -3586,10 +3539,10 @@ static ivas_error renderMcToSba( const input_mc *mcInput, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; IVAS_REND_AudioBuffer inAudio; - wmops_sub_start("renderMcToSba"); + wmops_sub_start( "renderMcToSba" ); inAudio = mcInput->base.inputBuffer; @@ -3670,7 +3623,7 @@ static ivas_error renderActiveInputsMc( IVAS_REND_HANDLE hIvasRend, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; input_mc *pCurrentInput; ivas_error error; @@ -3681,9 +3634,7 @@ static ivas_error renderActiveInputsMc( /* Skip inactive inputs */ continue; } - if ( ( error = renderInputMc( pCurrentInput, - hIvasRend->outputConfig, - outAudio ) ) != IVAS_ERR_OK ) + if ( ( error = renderInputMc( pCurrentInput, hIvasRend->outputConfig, outAudio ) ) != IVAS_ERR_OK ) { return error; } @@ -3696,10 +3647,10 @@ static ivas_error renderSbaToMc( const input_sba *sbaInput, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; IVAS_REND_AudioBuffer inAudio; - wmops_sub_start("renderSbaToMc"); + wmops_sub_start( "renderSbaToMc" ); inAudio = sbaInput->base.inputBuffer; @@ -3717,10 +3668,10 @@ static ivas_error renderSbaToSba( const input_sba *sbaInput, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; IVAS_REND_AudioBuffer inAudio; - wmops_sub_start("renderSbaToSba"); + wmops_sub_start( "renderSbaToSba" ); inAudio = sbaInput->base.inputBuffer; @@ -3736,7 +3687,7 @@ static ivas_error renderSbaToSba( static ivas_error renderSbaToBinaural( input_sba *sbaInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; @@ -3744,7 +3695,7 @@ static ivas_error renderSbaToBinaural( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; - wmops_sub_start("renderSbaToBinaural"); + wmops_sub_start( "renderSbaToBinaural" ); /* apply rotation */ if ( sbaInput->base.ctx.pHeadRotData->headRotEnabled ) @@ -3770,11 +3721,7 @@ static ivas_error renderSbaToBinaural( } /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, - sbaInput->base.inConfig, - outConfig, - tmpCrendBuffer, - *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, sbaInput->base.inConfig, outConfig, tmpCrendBuffer, *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3788,12 +3735,12 @@ static ivas_error renderSbaToBinaural( static ivas_error renderSbaToBinauralRoom( input_sba *sbaInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { int8_t headRotEnabled; int16_t i; - int32_t tmp; + int16_t tmp; float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; ivas_error error; @@ -3801,7 +3748,9 @@ static ivas_error renderSbaToBinauralRoom( IVAS_REND_AudioBuffer tmpMcBuffer; IVAS_REND_AudioBuffer *tmpBufPtr; - wmops_sub_start("renderSbaToBinauralRoom"); + tmpRotBuffer = outAudio; /* avoid compilation warning */ + + wmops_sub_start( "renderSbaToBinauralRoom" ); headRotEnabled = sbaInput->base.ctx.pHeadRotData->headRotEnabled; @@ -3811,14 +3760,9 @@ static ivas_error renderSbaToBinauralRoom( tmpRotBuffer = sbaInput->base.inputBuffer; tmpRotBuffer.data = count_malloc( tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels * sizeof( float ) ); /* copy input for in-place rotation */ - mvr2r( sbaInput->base.inputBuffer.data, tmpRotBuffer.data, - tmpRotBuffer.config.numChannels * tmpRotBuffer.config.numSamplesPerChannel ); + mvr2r( sbaInput->base.inputBuffer.data, tmpRotBuffer.data, tmpRotBuffer.config.numChannels * tmpRotBuffer.config.numSamplesPerChannel ); - rotateFrameSba( sbaInput->base.inputBuffer, - sbaInput->base.inConfig, - sbaInput->base.ctx.pHeadRotData, - sbaInput->rot_gains_prev, - tmpRotBuffer ); + rotateFrameSba( sbaInput->base.inputBuffer, sbaInput->base.inConfig, sbaInput->base.ctx.pHeadRotData, sbaInput->rot_gains_prev, tmpRotBuffer ); } /* intermediate rendering to 7_1_4 */ @@ -3826,26 +3770,18 @@ static ivas_error renderSbaToBinauralRoom( getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); tmpMcBuffer.config.numChannels = (int16_t) tmp; tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); - set_zero( tmpMcBuffer.data, - tmpMcBuffer.config.numChannels * tmpMcBuffer.config.numSamplesPerChannel ); + set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numChannels * tmpMcBuffer.config.numSamplesPerChannel ); tmpBufPtr = ( headRotEnabled ) ? &tmpRotBuffer : &sbaInput->base.inputBuffer; for ( i = 0; i < sbaInput->base.inputBuffer.config.numChannels; i++ ) { - renderBufferChannel( *tmpBufPtr, - i, - sbaInput->hoaDecMtx[i], - tmpMcBuffer ); + renderBufferChannel( *tmpBufPtr, i, sbaInput->hoaDecMtx[i], tmpMcBuffer ); } copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, - IVAS_REND_AUDIO_CONFIG_7_1_4, - outConfig, - tmpCrendBuffer, - *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, tmpCrendBuffer, *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3865,7 +3801,7 @@ static ivas_error renderSbaToBinauralRoom( static ivas_error renderInputSba( input_sba *sbaInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { ivas_error error; @@ -3923,7 +3859,7 @@ static ivas_error renderActiveInputsSba( IVAS_REND_HANDLE hIvasRend, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; input_sba *pCurrentInput; ivas_error error; @@ -3934,9 +3870,8 @@ static ivas_error renderActiveInputsSba( /* Skip inactive inputs */ continue; } - if ( ( error = renderInputSba( pCurrentInput, - hIvasRend->outputConfig, - outAudio ) ) != IVAS_ERR_OK ) + + if ( ( error = renderInputSba( pCurrentInput, hIvasRend->outputConfig, outAudio ) ) != IVAS_ERR_OK ) { return error; } @@ -3950,7 +3885,7 @@ ivas_error IVAS_REND_GetSamples( IVAS_REND_AudioBuffer outAudio ) { ivas_error error; - int32_t numOutChannels; + int16_t numOutChannels; /*-----------------------------------------------------------------* * Validate function arguments @@ -4007,9 +3942,10 @@ ivas_error IVAS_REND_GetSamples( return IVAS_ERR_OK; } -void IVAS_REND_Close( IVAS_REND_HANDLE *phIvasRend ) +void IVAS_REND_Close( + IVAS_REND_HANDLE *phIvasRend ) { - uint32_t i; + uint16_t i; IVAS_REND_HANDLE hIvasRend; /*-----------------------------------------------------------------* @@ -4045,6 +3981,8 @@ void IVAS_REND_Close( IVAS_REND_HANDLE *phIvasRend ) count_free( hIvasRend ); *phIvasRend = NULL; + + return; } #ifdef DEBUGGING diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index b9aad11e84..ef37770bf0 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -132,11 +132,11 @@ typedef enum IVAS_REND_AUDIO_CONFIG_UNKNOWN = IVAS_REND_AUDIO_CONFIG_TYPE_UNKNOWN << 8 | 0, } IVAS_REND_AudioConfig; -typedef uint32_t IVAS_REND_InputId; +typedef uint16_t IVAS_REND_InputId; typedef struct { - int32_t numLfeChannels; + int16_t numLfeChannels; float lfeOutputGains[IVAS_MAX_INPUT_LFE_CHANNELS][IVAS_MAX_OUTPUT_CHANNELS]; } IVAS_REND_LfeRouting; @@ -149,14 +149,14 @@ typedef struct ivas_error IVAS_REND_Open( IVAS_REND_HANDLE *phIvasRend, /* i/o: Pointer to renderer handle */ - int32_t outputSampleRate, /* i : output sampling rate */ - IVAS_REND_AudioConfig outConfig /* i : output audio config */ + const int32_t outputSampleRate, /* i : output sampling rate */ + const IVAS_REND_AudioConfig outConfig /* i : output audio config */ ); /* Note: this will reset custom LFE routings set for any MC input */ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for renderer output */ + const IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for renderer output */ ); /* Support for custom HRTFs will be added in the future. */ @@ -170,43 +170,43 @@ ivas_error IVAS_REND_SetCustomHrtf( ivas_error IVAS_REND_NumOutChannels( IVAS_REND_CONST_HANDLE hIvasRend, /* i : Renderer handle */ - int32_t *numOutChannels /* o : number of output channels */ + int16_t *numOutChannels /* o : number of output channels */ ); ivas_error IVAS_REND_AddInput( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_AudioConfig inConfig, /* i : audio config for a new input */ + const IVAS_REND_AudioConfig inConfig, /* i : audio config for a new input */ IVAS_REND_InputId *inputId /* o : ID of the new input */ ); /* Note: this will reset any custom LFE routing set for the input */ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for input */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for input */ ); ivas_error IVAS_REND_SetInputGain( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - float gain /* i : linear gain (not in dB) */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const float gain /* i : linear gain (not in dB) */ ); ivas_error IVAS_REND_SetInputLfeRouting( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - IVAS_REND_LfeRouting lfeRouting /* i : custom LFE routing struct */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_REND_LfeRouting lfeRouting /* i : custom LFE routing struct */ ); ivas_error IVAS_REND_RemoveInput( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId /* i : ID of the input */ + const IVAS_REND_InputId inputId /* i : ID of the input */ ); ivas_error IVAS_REND_GetInputNumChannels( IVAS_REND_CONST_HANDLE hIvasRend, /* i : Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - int32_t *numChannels /* o : number of channels of the input */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + int16_t *numChannels /* o : number of channels of the input */ ); ivas_error IVAS_REND_GetDelay( @@ -219,20 +219,20 @@ ivas_error IVAS_REND_GetDelay( ivas_error IVAS_REND_FeedInputAudio( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - IVAS_REND_ReadOnlyAudioBuffer inputAudio /* i : buffer with input audio */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_REND_ReadOnlyAudioBuffer inputAudio /* i : buffer with input audio */ ); ivas_error IVAS_REND_FeedInputObjectMetadata( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - IVAS_REND_AudioObjectPosition objectPosition /* i : object position struct */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_REND_AudioObjectPosition objectPosition /* i : object position struct */ ); /* Support for MASA input will be added in the future. */ ivas_error IVAS_REND_FeedInputMasaMetadata( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ void* TODO ); -- GitLab From 264f9803193ac21d1c8c96b1c1ca3264d2e0401c Mon Sep 17 00:00:00 2001 From: knj Date: Mon, 7 Nov 2022 12:19:53 +0100 Subject: [PATCH 435/479] prevent infinite loop when no input files are found --- scripts/pyivastest/IvasModeRunner.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/scripts/pyivastest/IvasModeRunner.py b/scripts/pyivastest/IvasModeRunner.py index 63bf58cb59..1c91c3f39f 100755 --- a/scripts/pyivastest/IvasModeRunner.py +++ b/scripts/pyivastest/IvasModeRunner.py @@ -964,10 +964,13 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): nd = 0 nm = 0 for mode in self.flat_mode_list: - nm += 1 nel = len(self.flat_mode_list[mode]["item_list"]) - nd += len(self.flat_mode_list[mode]["cmd"]["dec"]) * nel - ne += nel + nd_tmp = len(self.flat_mode_list[mode]["cmd"]["dec"]) * nel + ne_tmp = nel + if nd_tmp != 0 and ne_tmp != 0: + nm += 1 + nd += nd_tmp + ne += ne_tmp self.stats["num_modes"] = nm if self.run_encoder: self.stats["num_encs_total"] = ne @@ -1528,6 +1531,13 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): def run_enc_dec_threads(self): self.get_modes_initial_statistics() + + self.results = [] + # check if there are any files found + if self.stats["num_encs_total"] == 0 and self.stats["num_decs_total"] == 0: + self.logger.error("Found no items to run the modes.") + raise NoInputForAnyModesFound + self.create_enc_queue() self.dec_queue = { @@ -1536,7 +1546,6 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): "all_encoded": False, } # run all encoders - self.results = [] run_dec = 1 tasks_enc = [] tasks_dec = [] @@ -1648,4 +1657,5 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector): return decoded_item_list -# if __name__ == '__main__': +class NoInputForAnyModesFound(Exception): + pass \ No newline at end of file -- GitLab From 76d5747ca95b55a685acb38bb693fd6733252569 Mon Sep 17 00:00:00 2001 From: vaclav Date: Mon, 7 Nov 2022 12:36:47 +0100 Subject: [PATCH 436/479] formatting --- lib_dec/acelp_core_switch_dec.c | 3 +-- lib_enc/acelp_core_switch_enc.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib_dec/acelp_core_switch_dec.c b/lib_dec/acelp_core_switch_dec.c index 98854527e6..be34a95e31 100644 --- a/lib_dec/acelp_core_switch_dec.c +++ b/lib_dec/acelp_core_switch_dec.c @@ -158,8 +158,7 @@ ivas_error acelp_core_switch_dec( * Excitation decoding *----------------------------------------------------------------*/ - config_acelp1( DEC, st->total_brate, cbrate, st->core, -1, -1, st->last_L_frame, -1, &( st->acelp_cfg ), st->next_bit_pos, GENERIC, -1, -1, &decode_bwe /* dummy */, &i, st->element_mode, &i /*dummy*/, 0, 0, st->idchan, 0, 0, 0 /*st->GSC_IVAS_mode*/ - ); + config_acelp1( DEC, st->total_brate, cbrate, st->core, -1, -1, st->last_L_frame, -1, &( st->acelp_cfg ), st->next_bit_pos, GENERIC, -1, -1, &decode_bwe /* dummy */, &i, st->element_mode, &i /*dummy*/, 0, 0, st->idchan, 0, 0, 0 /*st->GSC_IVAS_mode*/ ); decod_gen_voic_core_switch( st, L_frame_for_cs, 0, Aq, exc, cbrate ); diff --git a/lib_enc/acelp_core_switch_enc.c b/lib_enc/acelp_core_switch_enc.c index 52c955732c..efabd35882 100644 --- a/lib_enc/acelp_core_switch_enc.c +++ b/lib_enc/acelp_core_switch_enc.c @@ -151,8 +151,7 @@ void acelp_core_switch_enc( * Excitation encoding *----------------------------------------------------------------*/ - config_acelp1( ENC, st->total_brate, cbrate, st->core, -1, -1, st->last_L_frame, -1, &( st->acelp_cfg ), hBstr->nb_bits_tot, GENERIC, -1, -1, &j, &i, st->element_mode, &i /*dummy*/, 0 /*tdm_lp_reuse_flag*/, 0 /*tdm_low_rate_mode*/, st->idchan, 0 /*tdm_Pitch_reuse_flag*/, 0, 0 /*GSC_IVAS_mode*/ - ); + config_acelp1( ENC, st->total_brate, cbrate, st->core, -1, -1, st->last_L_frame, -1, &( st->acelp_cfg ), hBstr->nb_bits_tot, GENERIC, -1, -1, &j, &i, st->element_mode, &i /*dummy*/, 0 /*tdm_lp_reuse_flag*/, 0 /*tdm_low_rate_mode*/, st->idchan, 0 /*tdm_Pitch_reuse_flag*/, 0, 0 /*GSC_IVAS_mode*/ ); encod_gen_voic_core_switch( st, st->last_L_frame, inp, Aq, A, T_op, st->voicing, exc, cbrate ); -- GitLab From 94753c436b22d9700411708ff670dab0c8032330 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Mon, 7 Nov 2022 15:17:02 +0100 Subject: [PATCH 437/479] small tweak to instrumentation printout + add junit reports to CI --- .gitlab-ci.yml | 8 ++++---- apps/renderer.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4b2fafe1f8..e0bb40e805 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -316,7 +316,7 @@ external-renderer-make-pytest: - make -j IVAS_rend - make -j unittests - make -j --directory scripts/td_object_renderer/object_renderer_standalone - - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py + - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py # test external renderer executable with cmake + asan external-renderer-cmake-asan-pytest: @@ -329,7 +329,7 @@ external-renderer-cmake-asan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py + - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py # test external renderer executable with cmake + msan external-renderer-cmake-msan-pytest: @@ -342,7 +342,7 @@ external-renderer-cmake-msan-pytest: - python3 ci/disable_ram_counting.py - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - - python3 -m pytest -q --log-level ERROR -n auto -rA tests/renderer/test_renderer.py + - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py # test external renderer executable with cmake vs decoder renderer external-renderer-cmake-vs-decoder-pytest: @@ -354,7 +354,7 @@ external-renderer-cmake-vs-decoder-pytest: script: - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP=true - cmake --build cmake-build -- -j - - python3 -m pytest -q --log-level ERROR -n 1 -rA tests/renderer/test_renderer_vs_decoder.py + - python3 -m pytest -q --log-level ERROR -n 1 -rA --junit-xml=report-junit.xml tests/renderer/test_renderer_vs_decoder.py # compare bit exactness between target and source branch ivas-pytest-on-merge-request: diff --git a/apps/renderer.c b/apps/renderer.c index 7c3cc55ea6..f29eab5b7a 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -109,7 +109,7 @@ extern char location_max_stack[256]; *------------------------------------------------------------------------------------------*/ static void print_mem_renderer( size_t SRAM_size ) { - fprintf( stdout, "\n\n --- Renderer cmdln demo memory usage --- \n\n" ); + fprintf( stdout, "\n\n --- Renderer memory usage --- \n\n" ); fprintf( stdout, "PROM size (renderer): %d words (or instructions)\n", PROM_Size_lib_rend ); fprintf( stdout, "Stack size: %d words in %s() in frame #%d\n", ( ptr_base_stack - ptr_max_stack ) * sizeof( int16_t ) / sizeof( float ), location_max_stack, wc_frame ); -- GitLab From 0057307ddcde6dde98aa3742c103e37be8ba4c87 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Mon, 7 Nov 2022 15:31:06 +0100 Subject: [PATCH 438/479] ci updates --- .gitlab-ci.yml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e0bb40e805..a74510491a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -317,6 +317,15 @@ external-renderer-make-pytest: - make -j unittests - make -j --directory scripts/td_object_renderer/object_renderer_standalone - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + when: always + paths: + - report-junit.xml + expose_as: "external renderer make pytest results" + reports: + junit: + - report-junit.xml # test external renderer executable with cmake + asan external-renderer-cmake-asan-pytest: @@ -330,6 +339,15 @@ external-renderer-cmake-asan-pytest: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=asan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + when: always + paths: + - report-junit.xml + expose_as: "external renderer cmake asan pytest results" + reports: + junit: + - report-junit.xml # test external renderer executable with cmake + msan external-renderer-cmake-msan-pytest: @@ -343,6 +361,15 @@ external-renderer-cmake-msan-pytest: - cmake -B cmake-build -G "Unix Makefiles" -DCLANG=msan -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + when: always + paths: + - report-junit.xml + expose_as: "external renderer cmake msan pytest results" + reports: + junit: + - report-junit.xml # test external renderer executable with cmake vs decoder renderer external-renderer-cmake-vs-decoder-pytest: @@ -355,6 +382,15 @@ external-renderer-cmake-vs-decoder-pytest: - cmake -B cmake-build -G "Unix Makefiles" -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true -DDEC_TO_REND_FLOAT_DUMP=true - cmake --build cmake-build -- -j - python3 -m pytest -q --log-level ERROR -n 1 -rA --junit-xml=report-junit.xml tests/renderer/test_renderer_vs_decoder.py + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + when: always + paths: + - report-junit.xml + expose_as: "external renderer cmake vs decoder results" + reports: + junit: + - report-junit.xml # compare bit exactness between target and source branch ivas-pytest-on-merge-request: -- GitLab From 2ebf0e7b99819fe947b0ef38d07cf2efee79b439 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Tue, 8 Nov 2022 00:03:30 +0100 Subject: [PATCH 439/479] fix 21 renderer test fails --- apps/renderer.c | 2 +- lib_rend/lib_rend.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/renderer.c b/apps/renderer.c index 05de0db262..7cae5dd044 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -665,7 +665,7 @@ int32_t main( int32_t argc, char **argv ) } /* === Configure === */ - if ( ( error = IVAS_REND_InitConfig( hIvasRend, headRotReader != NULL, args.renderConfigFilePath[0] != '\0' ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_InitConfig( hIvasRend, headRotReader != NULL, strlen(args.renderConfigFilePath) != 0 ) ) != IVAS_ERR_OK ) { exit( -1 ); } diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index aa3fb2599f..9366003b08 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -2650,11 +2650,19 @@ ivas_error IVAS_REND_InitConfig( IVAS_REND_HANDLE st, { st->enableHeadRotation = 1; } + else + { + st->enableHeadRotation = 0; + } if ( rendererConfigEnabled ) { st->rendererConfigEnabled = 1; } + else + { + st->rendererConfigEnabled = 0; + } if ( ( error = ivas_render_config_open( &( st->hRendererConfig ) ) ) != IVAS_ERR_OK ) { -- GitLab From 21779423659373f8619576f3b973c82a1ed235d3 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Tue, 8 Nov 2022 08:08:48 +0100 Subject: [PATCH 440/479] [cleanup] accept SPAR_STEREO_NO_DIRAC --- lib_com/options.h | 1 - lib_dec/ivas_init_dec.c | 2 -- lib_dec/ivas_output_init.c | 2 -- lib_dec/ivas_spar_decoder.c | 2 -- 4 files changed, 7 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 23af39c683..aeb5eb1d63 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -145,7 +145,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define FIX_I1_113 /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ -#define SPAR_STEREO_NO_DIRAC /* Issue 180: skip DirAC processing channels for stereo output */ #define AGC_TUNING_IMPROVEMENT /* Issue 168: Enable AGC for low bit rate (1 TC) */ #ifdef AGC_TUNING_IMPROVEMENT #define AGC_ENABLE_FOR_LBR /* Issue 168: Enable AGC for low bit rate (1 TC) */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 5cc318b86f..1bb44c5527 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -804,9 +804,7 @@ ivas_error ivas_init_decoder( } if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA -#ifdef SPAR_STEREO_NO_DIRAC && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO -#endif ) { if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) diff --git a/lib_dec/ivas_output_init.c b/lib_dec/ivas_output_init.c index 005db1d4ac..9486ee7d05 100644 --- a/lib_dec/ivas_output_init.c +++ b/lib_dec/ivas_output_init.c @@ -515,12 +515,10 @@ void ivas_renderer_select( { *internal_config = output_config; } -#ifdef SPAR_STEREO_NO_DIRAC else if ( output_config == AUDIO_CONFIG_MONO || output_config == AUDIO_CONFIG_STEREO ) { *internal_config = AUDIO_CONFIG_FOA; } -#endif else { *internal_config = AUDIO_CONFIG_HOA3; diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index d196cda9b6..1e2c70fc82 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -1133,9 +1133,7 @@ void ivas_spar_dec_upmixer( } if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA -#ifdef SPAR_STEREO_NO_DIRAC && hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && hDecoderConfig->output_config != AUDIO_CONFIG_MONO -#endif ) { ivas_dirac_dec( st_ivas, output, nchan_internal, cldfb_in_ts_re, cldfb_in_ts_im, i_sf ); -- GitLab From 91e8a1b342c3da2e4149334411a4bec9d62e47e2 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Tue, 8 Nov 2022 08:09:55 +0100 Subject: [PATCH 441/479] [cleanup] accept AGC_TUNING_IMPROVEMENT, AGC_ENABLE_FOR_LBR --- apps/encoder.c | 16 ------------- lib_com/ivas_agc_com.c | 22 ------------------ lib_com/ivas_prot.h | 2 -- lib_com/options.h | 4 ---- lib_dec/ivas_agc_dec.c | 12 ---------- lib_enc/ivas_agc_enc.c | 46 ------------------------------------- lib_enc/ivas_spar_encoder.c | 8 ------- lib_enc/ivas_stat_enc.h | 2 -- lib_enc/lib_enc.c | 23 ------------------- lib_enc/lib_enc.h | 6 ----- 10 files changed, 141 deletions(-) diff --git a/apps/encoder.c b/apps/encoder.c index b3c4602b63..4bd5e3ab4b 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -121,11 +121,7 @@ typedef struct bool mimeOutput; #ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR IVAS_ENC_AGC agc; -#else - bool agc; -#endif /* AGC_ENABLE_FOR_LBR */ #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ bool pca; #ifdef DEBUG_FOA_AGC @@ -891,11 +887,7 @@ static void initArgStruct( EncArguments *arg ) arg->mimeOutput = false; #ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR arg->agc = IVAS_ENC_AGC_UNDEFINED; -#else - arg->agc = IVAS_DEFAULT_AGC; -#endif /* AGC_ENABLE_FOR_LBR */ #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ arg->pca = false; #ifdef DEBUG_FOA_AGC @@ -1408,11 +1400,7 @@ static bool parseCmdlIVAS_enc( i++; if ( i < argc - 4 ) { -#ifdef AGC_ENABLE_FOR_LBR arg->agc = ( atoi( argv[i] ) ) ? IVAS_ENC_AGC_ENABLED : IVAS_ENC_AGC_DISABLED; -#else - arg->agc = (int16_t) atoi( argv[i] ); -#endif if ( argv[i] == NULL || atoi( argv[i] ) < 0 || atoi( argv[i] ) > 1 ) { fprintf( stderr, "Error: wrong adaptive gain control option specified (%d), expected 0 or 1\n\n", (int32_t) atoi( argv[i] ) ); @@ -1669,13 +1657,9 @@ static void usage_enc( void ) fprintf( stdout, "-tag : Tag name for intermediate debug files\n" ); #endif #ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR fprintf( stdout, "-agc op : SBA Adaptive gain control, op = (0, 1). \n" ); fprintf( stdout, " By default op is 1 (activated) for bitrates between 24400 and 32000,\n" ); fprintf( stdout, " otherwise it is 0 (deactivated) for all other bitrates\n" ); -#else - fprintf( stdout, "-agc op : SBA Adaptive gain control, op = (0, 1), by default op is 0 or deactivated\n" ); -#endif /* AGC_ENABLE_FOR_LBR */ #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ fprintf( stdout, "-bypass mode : SBA PCA by-pass, mode = (1, 2), 1 = PCA off, 2 = signal adaptive, default is 1\n" ); diff --git a/lib_com/ivas_agc_com.c b/lib_com/ivas_agc_com.c index 63dda27afd..2f91965f01 100644 --- a/lib_com/ivas_agc_com.c +++ b/lib_com/ivas_agc_com.c @@ -40,9 +40,7 @@ #endif #include #include "wmops.h" -#ifdef AGC_TUNING_IMPROVEMENT #include "prot.h" -#endif /*------------------------------------------------------------------------------------------* * Local constants @@ -50,11 +48,9 @@ #define SQRKMAX ( 1.5f ) #define NBITS_DIFFG ( 2 ) -#ifdef AGC_TUNING_IMPROVEMENT #define DBSTEP ( -6.f ) /* desired dB step value in dB*/ #define ABS_EMIN_MAX ( 3 ) #define MAXATTEXP ( 1 ) /* the desired maximum attenuation exponent range per frame*/ -#endif /*-----------------------------------------------------------------------------------------* * Function ivas_agc_initWindowFunc() @@ -68,22 +64,14 @@ void ivas_agc_initWindowFunc( { int16_t i; float N; -#ifdef AGC_TUNING_IMPROVEMENT float a; -#endif N = (float) ( length - 1 ); -#ifdef AGC_TUNING_IMPROVEMENT a = 0.5f * ( 1.f - powf( 10.f, DBSTEP / 20.f ) ); -#endif for ( i = 0; i < length; i++ ) { -#ifdef AGC_TUNING_IMPROVEMENT pWinFunc[i] = 1.f + a * ( cosf( EVS_PI * i / N ) - 1.f ); -#else - pWinFunc[i] = 0.75f + 0.25f * cosf( EVS_PI * i / N ); -#endif } return; @@ -107,11 +95,7 @@ void ivas_agc_calcGainParams( nbits = NBITS_DIFFG; -#ifdef AGC_TUNING_IMPROVEMENT *absEmin = max( ABS_EMIN_MAX, (uint16_t) ceilf( logf( ceilf( SQRKMAX * numCoeffs ) ) * INV_LOG_2 ) ); -#else - *absEmin = (uint16_t) ceilf( logf( ceilf( SQRKMAX * numCoeffs ) ) * INV_LOG_2 ); -#endif totExp = *absEmin + AGC_EMAX + 1; *betaE = (uint16_t) ceilf( logf( totExp ) * INV_LOG_2 ); @@ -120,17 +104,11 @@ void ivas_agc_calcGainParams( if ( nbits > 0 ) { -#ifdef AGC_TUNING_IMPROVEMENT Bm = min( AGC_BITS_PER_CH - 1, NBITS_DIFFG ); -#else - Bm = NBITS_DIFFG; -#endif } *maxAttExp = ( (uint16_t) powf( 2, Bm ) ) - 2; -#ifdef AGC_TUNING_IMPROVEMENT *maxAttExp = min( MAXATTEXP, *maxAttExp ); -#endif return; } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 39d9d237c0..82697d37c6 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -3767,7 +3767,6 @@ void ivas_sba_prototype_renderer( ); /* AGC */ -#ifdef AGC_ENABLE_FOR_LBR /*! r: AGC enable flag */ int16_t ivas_agc_enc_get_flag( #ifdef DEBUG_AGC_ENCODER_CMD_OPTION @@ -3775,7 +3774,6 @@ int16_t ivas_agc_enc_get_flag( #endif int16_t nchan_transport /* i : number of transport channels */ ); -#endif ivas_error ivas_spar_agc_enc_open( ivas_agc_enc_state_t **hAgcEnc, /* i/o: AGC decoder handle */ diff --git a/lib_com/options.h b/lib_com/options.h index aeb5eb1d63..59883639d4 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -145,10 +145,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define FIX_I1_113 /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ -#define AGC_TUNING_IMPROVEMENT /* Issue 168: Enable AGC for low bit rate (1 TC) */ -#ifdef AGC_TUNING_IMPROVEMENT -#define AGC_ENABLE_FOR_LBR /* Issue 168: Enable AGC for low bit rate (1 TC) */ -#endif #define FIX_I173_I174 /* Issues 173 and 174: Remove frame and subframe index from ISm metadata and headtracking respectively. */ #define FIX_TCX_DEC_RECONF_BFI #define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ diff --git a/lib_dec/ivas_agc_dec.c b/lib_dec/ivas_agc_dec.c index e522574bb2..0b25c8216c 100644 --- a/lib_dec/ivas_agc_dec.c +++ b/lib_dec/ivas_agc_dec.c @@ -205,20 +205,12 @@ void ivas_agc_dec_process( if ( ( pState->gain_state[i].gainExpVal > (int32_t) ( pState->agc_com.maxAttExp + 1 ) ) || ( pState->gain_state[i].gainExpVal < -1 ) ) { -#ifdef AGC_TUNING_IMPROVEMENT /* Such conditions indicate packet loss, better reset and do nothing*/ pState->gain_data[i].absGainExp = pState->agc_com.absEmin; pState->gain_state[i].gainExpVal = 0; -#else - assert( 0 ); -#endif } -#ifdef AGC_TUNING_IMPROVEMENT pState->gain_state[i].lastGain = powf( pState->agc_com.winFunc[offset - 1], ( -1.f * (float) ( pState->gain_data[i].absGainExp - pState->agc_com.absEmin ) ) ); -#else - pState->gain_state[i].lastGain = powf( 2, (float) ( pState->gain_data[i].absGainExp - pState->agc_com.absEmin ) ); -#endif gainLast = 1.f / pState->gain_state[i].lastGain; if ( !pState->gain_data[i].gainException ) @@ -252,11 +244,7 @@ void ivas_agc_dec_process( } else { -#ifdef AGC_TUNING_IMPROVEMENT float gainCurr = powf( pState->agc_com.winFunc[offset - 1], ( -1.f * (float) pState->gain_state[i].gainExpVal ) ); -#else - float gainCurr = powf( 2, (float) pState->gain_state[i].gainExpVal ); -#endif float gainTot = gainCurr * gainLast; for ( idx = 0; idx < output_frame; idx++ ) diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index b7f69b38b0..341a3003ab 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -59,7 +59,6 @@ extern FILE *agcOut; static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_agc_enc_state_t *pState ); #endif -#ifdef AGC_ENABLE_FOR_LBR #ifdef DEBUG_AGC_ENCODER_CMD_OPTION /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_get_flag() @@ -95,7 +94,6 @@ int16_t ivas_agc_enc_get_flag( return (int16_t) ( nchan_transport == 1 ); #endif } -#endif /* AGC_ENABLE_FOR_LBR */ /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_init() @@ -270,11 +268,7 @@ void ivas_agc_enc_process( { float sampleAbsVal; int16_t isClipped = FALSE; -#ifdef AGC_TUNING_IMPROVEMENT int16_t clippedIdx = 0; -#else - int16_t clippedIdx = offset - 1; -#endif int16_t MaxAbsValIdx = 0; float MaxAbsVal = pState->gain_state[i].MaxAbsVal_del; float predMaxAbsVal = fabsf( ppPcm_in[i][offset] ); @@ -303,25 +297,12 @@ void ivas_agc_enc_process( { if ( ( ppPcm_out[i][j] > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( ppPcm_out[i][j] < MIN16B_FLT ) ) { -#ifdef AGC_TUNING_IMPROVEMENT clippedIdx = j; -#else - if ( j < offset ) - { - clippedIdx = j; - } -#endif isClipped = TRUE; } } } -#ifndef AGC_TUNING_IMPROVEMENT - if ( MaxAbsValIdx >= offset ) - { - MaxAbsValIdx = offset - 1; - } -#endif pState->gain_state[i].MaxAbsVal_del = predMaxAbsVal; isGainAdjusted = FALSE; @@ -371,20 +352,8 @@ void ivas_agc_enc_process( { int16_t isCompensated = FALSE; actualMaxAbsVal = pState->gain_state[i].lastMaxAbs * pState->gain_state[i].lastGain; -#ifndef AGC_TUNING_IMPROVEMENT - if ( MaxAbsValIdx == 0 ) - { - pState->gain_data[i].gainException = TRUE; - } - else - { -#endif pState->gain_data[i].gainException = FALSE; -#ifdef AGC_TUNING_IMPROVEMENT pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[min( offset - 1, MaxAbsValIdx )] ) ); -#else - pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[MaxAbsValIdx] ) ); -#endif while ( !isCompensated ) { @@ -393,7 +362,6 @@ void ivas_agc_enc_process( for ( idx = clippedIdx; idx <= MaxAbsValIdx; idx++ ) { -#ifdef AGC_TUNING_IMPROVEMENT if ( idx >= offset ) { idx = MaxAbsValIdx; @@ -401,11 +369,8 @@ void ivas_agc_enc_process( } else { -#endif tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[idx], (float) pState->gain_state[i].gainExpVal ); -#ifdef AGC_TUNING_IMPROVEMENT } -#endif if ( ( tmpSignal > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( tmpSignal < MIN16B_FLT ) ) { @@ -419,13 +384,11 @@ void ivas_agc_enc_process( pState->gain_state[i].gainExpVal++; } -#ifdef AGC_TUNING_IMPROVEMENT if ( pState->gain_state[i].gainExpVal > currMaxAttExp ) { pState->gain_state[i].gainExpVal = min( pState->gain_state[i].gainExpVal, currMaxAttExp ); break; } -#endif if ( pState->gain_state[i].gainExpVal > currMaxAttExp ) { @@ -442,9 +405,6 @@ void ivas_agc_enc_process( break; } } -#ifndef AGC_TUNING_IMPROVEMENT - } -#endif } if ( !pState->gain_data[i].gainException ) @@ -470,11 +430,7 @@ void ivas_agc_enc_process( pState->gain_state[i].gainExpVal = (int16_t) ( -floorf( -logf( ( actualMaxAbsVal + pState->minDelta ) * MDFT_NORM_SCALING ) * INV_LOG_2 ) ); pState->gain_state[i].gainExpVal = min( gainExpValMaxRange, pState->gain_state[i].gainExpVal ); -#ifdef AGC_TUNING_IMPROVEMENT gain = powf( pState->agc_com.winFunc[offset - 1], pState->gain_state[i].gainExpVal ); -#else - gain = powf( 2.0f, -1.0f * pState->gain_state[i].gainExpVal ); -#endif for ( idx = 0; idx < input_frame; idx++ ) { ppPcm_out[i][idx] *= gain; @@ -563,9 +519,7 @@ void ivas_agc_enc_process( { push_next_indice( hMetaData, (uint16_t) pState->gain_data[i].absGainExpCurr, (int16_t) pState->agc_com.betaE ); push_next_indice( hMetaData, (uint16_t) pState->gain_data[i].gainException, 1 ); -#ifdef AGC_TUNING_IMPROVEMENT assert( pState->gain_data[i].gainException == FALSE ); -#endif } } } diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index 00d185fe08..d387a9885d 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -120,18 +120,14 @@ ivas_error ivas_spar_enc_open( } /* AGC handle */ -#ifdef AGC_ENABLE_FOR_LBR #ifdef DEBUG_AGC_ENCODER_CMD_OPTION hSpar->AGC_Enable = ivas_agc_enc_get_flag( hEncoderConfig->Opt_AGC_ON, nchan_transport ); #else hSpar->AGC_Enable = ivas_agc_enc_get_flag( nchan_transport ); #endif -#endif -#ifdef AGC_ENABLE_FOR_LBR hSpar->hAgcEnc = NULL; if ( hSpar->AGC_Enable ) -#endif { if ( ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) { @@ -715,11 +711,7 @@ static ivas_error ivas_spar_enc_process( if ( dtx_vad == 1 ) { -#ifdef AGC_ENABLE_FOR_LBR if ( hSpar->AGC_Enable != 0 ) -#else - if ( hEncoderConfig->Opt_AGC_ON > 0 ) -#endif { ivas_agc_enc_process( hSpar->hAgcEnc, hMetaData, p_pcm_tmp, p_pcm_tmp, hSpar->hFbMixer->fb_cfg->num_out_chans, hEncoderConfig ); } diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 4ae2e2f41f..9d04506d79 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -671,9 +671,7 @@ typedef struct ivas_spar_enc_lib_t ivas_agc_enc_state_t *hAgcEnc; int16_t dirac_to_spar_md_bands[DIRAC_MAX_NBANDS]; int16_t enc_param_start_band; -#ifdef AGC_ENABLE_FOR_LBR int16_t AGC_Enable; -#endif PCA_ENC_STATE *hPCA; int32_t core_nominal_brate; /* Nominal bitrate for core coding */ FRONT_VAD_ENC_HANDLE hFrontVad; /* front-VAD handle */ diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index be12701cdc..e7684c6cb0 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -453,11 +453,7 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( const IVAS_ENC_SBA_ORDER order, /* i : order of the Ambisonics input */ const bool isPlanar, /* i : if true, input is treated as planar Ambisonics */ #ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR const IVAS_ENC_AGC Opt_AGC_ON, /* i : AGC on/off/undefined flag */ -#else - const bool Opt_AGC_ON, /* i : AGC on/off flag */ -#endif /* AGC_ENABLE_FOR_LBR */ #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ const bool Opt_PCA_ON /* i : PCA option flag */ #ifdef DEBUG_SBA_AUDIO_DUMP @@ -485,14 +481,10 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( hEncoderConfig->nchan_inp = ivas_sba_get_nchan( hEncoderConfig->sba_order, 0 ); /*planar input arg. deliberately set to zero since input always in ACN/SN3D*/ #ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR if ( ( error = agcAPIToInternal( Opt_AGC_ON, &( hEncoderConfig->Opt_AGC_ON ) ) ) != IVAS_ERR_OK ) { return error; } -#else - hEncoderConfig->Opt_AGC_ON = (int16_t) Opt_AGC_ON; -#endif /* AGC_ENABLE_FOR_LBR */ #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ hEncoderConfig->Opt_PCA_ON = (int16_t) Opt_PCA_ON; @@ -890,11 +882,7 @@ static ivas_error configureEncoder( } #ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR if ( hEncoderConfig->Opt_AGC_ON == SBA_AGC_FORCE_ENABLE && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) -#else - if ( hEncoderConfig->Opt_AGC_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) -#endif /* AGC_ENABLE_FOR_LBR */ { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "AGC supported in SBA format at bitrates >= 24.4 kbps only." ); } @@ -1518,7 +1506,6 @@ static ivas_error printConfigInfo_enc( fprintf( stdout, "- PCA configured with signal adaptive decision " ); } #ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR switch ( hEncoderConfig->Opt_AGC_ON ) { case SBA_AGC_FORCE_ENABLE: @@ -1534,12 +1521,6 @@ static ivas_error printConfigInfo_enc( fprintf( stdout, "- AGC unknown " ); break; } -#else - if ( hEncoderConfig->Opt_AGC_ON ) - { - fprintf( stdout, "- AGC ON " ); - } -#endif /* AGC_ENABLE_FOR_LBR */ #else fprintf( stdout, "- AGC default mode " ); #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ @@ -2235,11 +2216,7 @@ static void init_encoder_config( hEncoderConfig->sba_order = 0; hEncoderConfig->sba_planar = 0; #ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR hEncoderConfig->Opt_AGC_ON = SBA_AGC_DEFAULT; -#else - hEncoderConfig->Opt_AGC_ON = 0; -#endif /* AGC_ENABLE_FOR_LBR */ #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ hEncoderConfig->Opt_PCA_ON = 0; diff --git a/lib_enc/lib_enc.h b/lib_enc/lib_enc.h index 373da97f96..09be11c6c8 100644 --- a/lib_enc/lib_enc.h +++ b/lib_enc/lib_enc.h @@ -123,7 +123,6 @@ typedef enum _IVAS_ENC_FORCED_MODE } IVAS_ENC_FORCED_MODE; #endif -#ifdef AGC_ENABLE_FOR_LBR #ifdef DEBUG_AGC_ENCODER_CMD_OPTION typedef enum _IVAS_ENC_AGC { @@ -132,7 +131,6 @@ typedef enum _IVAS_ENC_AGC IVAS_ENC_AGC_UNDEFINED = 0xffff } IVAS_ENC_AGC; #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ -#endif /* AGC_ENABLE_FOR_LBR */ /*---------------------------------------------------------------------* * Encoder structures @@ -200,11 +198,7 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( const IVAS_ENC_SBA_ORDER order, /* i : order of the Ambisonics input */ const bool isPlanar, /* i : if true, input is treated as planar Ambisonics */ #ifdef DEBUG_AGC_ENCODER_CMD_OPTION -#ifdef AGC_ENABLE_FOR_LBR const IVAS_ENC_AGC Opt_AGC_ON, /* i : AGC on/off/undefined flag */ -#else - const bool Opt_AGC_ON, /* i : AGC on/off flag */ -#endif /* AGC_ENABLE_FOR_LBR */ #endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ const bool Opt_PCA_ON /* i : PCA option flag */ #ifdef DEBUG_SBA_AUDIO_DUMP -- GitLab From 9f266e4da3c47a0334973dd1f5e0996979568a3a Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Tue, 8 Nov 2022 08:10:41 +0100 Subject: [PATCH 442/479] [cleanup] accept FIX_I173_I174 --- lib_com/options.h | 1 - lib_util/head_rotation_file_reader.c | 49 ---------------------------- lib_util/ism_file_reader.c | 22 ------------- lib_util/ism_file_writer.c | 13 -------- 4 files changed, 85 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 59883639d4..157bfcf145 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -145,7 +145,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define FIX_I1_113 /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ -#define FIX_I173_I174 /* Issues 173 and 174: Remove frame and subframe index from ISm metadata and headtracking respectively. */ #define FIX_TCX_DEC_RECONF_BFI #define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ #define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ diff --git a/lib_util/head_rotation_file_reader.c b/lib_util/head_rotation_file_reader.c index f6f6b6ae0e..cd1dd7bcf3 100644 --- a/lib_util/head_rotation_file_reader.c +++ b/lib_util/head_rotation_file_reader.c @@ -45,28 +45,6 @@ struct HeadRotFileReader bool fileRewind; }; -#ifndef FIX_I173_I174 -/*-----------------------------------------------------------------------* - * HeadRotationFrameCheck() - * - * Check if the read frame number corresponds to the decoder frame - *-----------------------------------------------------------------------*/ - -static ivas_error HeadRotationFrameCheck( - HeadRotFileReader *headRotReader, /* i/o: HeadRotFileReader handle */ - const int32_t frame_dec ) -{ - if ( headRotReader->fileRewind == false ) - { - if ( headRotReader->frameCounter / IVAS_MAX_PARAM_SPATIAL_SUBFRAMES != frame_dec + 1 ) - { - return IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH; - } - } - - return IVAS_ERR_OK; -} -#endif /*-----------------------------------------------------------------------* * HeadRotationFileReader_open() @@ -121,18 +99,11 @@ ivas_error HeadRotationFileReading( ) { uint16_t i; -#ifndef FIX_I173_I174 - int32_t time_stamp = 0; -#endif float w, x, y, z; for ( i = 0; i < IVAS_MAX_PARAM_SPATIAL_SUBFRAMES; i++ ) { -#ifdef FIX_I173_I174 if ( 4 != fscanf( headRotReader->trajFile, "%f,%f,%f,%f", &w, &x, &y, &z ) ) -#else - if ( 5 != fscanf( headRotReader->trajFile, "%d,%f,%f,%f,%f", &time_stamp, &w, &x, &y, &z ) ) -#endif { if ( feof( headRotReader->trajFile ) ) { @@ -143,12 +114,6 @@ ivas_error HeadRotationFileReading( return IVAS_ERR_FAILED_FILE_PARSE; } -#ifndef FIX_I173_I174 - if ( headRotReader->fileRewind == false && headRotReader->frameCounter != time_stamp ) - { - return IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH; - } -#endif ( headRotReader->frameCounter )++; @@ -157,20 +122,6 @@ ivas_error HeadRotationFileReading( Quaternions[i].y = y; Quaternions[i].z = z; } -#ifndef FIX_I173_I174 - if ( headRotReader->fileRewind == false ) - { - if ( ( time_stamp + 1 ) % IVAS_MAX_PARAM_SPATIAL_SUBFRAMES != 0 ) - { - return IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH; - } - } - - if ( HeadRotationFrameCheck( headRotReader, frame_dec ) != IVAS_ERR_OK ) - { - return IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH; - } -#endif return IVAS_ERR_OK; } diff --git a/lib_util/ism_file_reader.c b/lib_util/ism_file_reader.c index 665c7ea134..d60c3ec8a8 100644 --- a/lib_util/ism_file_reader.c +++ b/lib_util/ism_file_reader.c @@ -43,9 +43,6 @@ struct IsmFileReader { FILE *file; -#ifndef FIX_I173_I174 - int32_t frameCounter; -#endif char *file_path; }; @@ -77,9 +74,6 @@ IsmFileReader *IsmFileReader_open( self = calloc( sizeof( IsmFileReader ), 1 ); self->file = file; -#ifndef FIX_I173_I174 - self->frameCounter = 0; -#endif self->file_path = calloc( sizeof( char ), strlen( filePath ) + 1 ); strcpy( self->file_path, filePath ); @@ -102,9 +96,6 @@ ivas_error IsmFileReader_readNextFrame( float meta_prm[NUM_ISM_METADATA_PER_LINE]; char *char_ptr; int16_t i; -#ifndef FIX_I173_I174 - int32_t time_stamp; -#endif FILE *file; if ( ismMetadata == NULL || self->file == NULL ) @@ -120,18 +111,8 @@ ivas_error IsmFileReader_readNextFrame( } char_ptr = strtok( char_buff, "," ); -#ifndef FIX_I173_I174 - time_stamp = (int32_t) atoi( char_ptr ); - - if ( time_stamp != self->frameCounter ) - { - return IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH; - } -#endif i = 0; -#ifdef FIX_I173_I174 meta_prm[i++] = (float) atof( char_ptr ); -#endif while ( ( char_ptr = strtok( NULL, "," ) ) != NULL && i < NUM_ISM_METADATA_PER_LINE ) { meta_prm[i++] = (float) atof( char_ptr ); @@ -149,9 +130,6 @@ ivas_error IsmFileReader_readNextFrame( ismMetadata->spread = meta_prm[3]; ismMetadata->gainFactor = meta_prm[4]; -#ifndef FIX_I173_I174 - ++self->frameCounter; -#endif return IVAS_ERR_OK; } diff --git a/lib_util/ism_file_writer.c b/lib_util/ism_file_writer.c index 65bd72a944..ac90e7b1eb 100644 --- a/lib_util/ism_file_writer.c +++ b/lib_util/ism_file_writer.c @@ -43,9 +43,6 @@ struct IsmFileWriter { FILE *file; -#ifndef FIX_I173_I174 - int32_t frameCounter; -#endif char *file_path; }; @@ -88,9 +85,6 @@ ivas_error IsmFileWriter_open( self = calloc( sizeof( IsmFileWriter ), 1 ); self->file = file; -#ifndef FIX_I173_I174 - self->frameCounter = 0; -#endif self->file_path = calloc( sizeof( char ), strlen( filePath ) + 1 ); strcpy( self->file_path, filePath ); @@ -122,11 +116,7 @@ ivas_error IsmFileWriter_writeFrame( file = ismWriter->file; /* IVAS_fmToDo: work in progress; currently position_azimuth, position_elevation, position_radius, spread, gain_factor */ -#ifdef FIX_I173_I174 sprintf( char_buff, "%+07.2f,%+06.2f,%05.2f,%06.2f,%04.2f\n", ismMetadata.azimuth, ismMetadata.elevation, ismMetadata.radius, ismMetadata.spread, ismMetadata.gainFactor ); -#else - sprintf( char_buff, "%04d,%+07.2f,%+06.2f,%05.2f,%06.2f,%04.2f\n", ismWriter->frameCounter, ismMetadata.azimuth, ismMetadata.elevation, ismMetadata.radius, ismMetadata.spread, ismMetadata.gainFactor ); -#endif if ( file ) { @@ -136,9 +126,6 @@ ivas_error IsmFileWriter_writeFrame( { return IVAS_ERR_FAILED_FILE_WRITE; } -#ifndef FIX_I173_I174 - ++ismWriter->frameCounter; -#endif return IVAS_ERR_OK; } -- GitLab From 9c449287a61d8584ee248ff398218e89bcedd357 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Tue, 8 Nov 2022 08:11:31 +0100 Subject: [PATCH 443/479] [cleanup] accept FIX_TCX_DEC_RECONF_BFI --- lib_com/options.h | 1 - lib_dec/ivas_tcx_core_dec.c | 49 ------------------------------------- 2 files changed, 50 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 157bfcf145..1ae0e47aae 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -145,7 +145,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define FIX_I1_113 /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ -#define FIX_TCX_DEC_RECONF_BFI #define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ #define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ /*#define FIX_MCT_PLC_RECOVERY*/ /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 54af577fd1..52c95fe441 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -51,14 +51,8 @@ * Local prototypes *-------------------------------------------------------------*/ -#ifdef FIX_TCX_DEC_RECONF_BFI static void dec_prm_tcx( Decoder_State *st, int16_t param[], int16_t param_lpc[], int16_t *total_nbbits, const int16_t last_element_mode, int16_t *bitsRead ); -#else -static void dec_prm_tcx( Decoder_State *st, int16_t param[], int16_t param_lpc[], int16_t *total_nbbits, int16_t *bitsRead ); -#endif -#ifdef FIX_TCX_DEC_RECONF_BFI static void stereo_tcx_dec_mode_switch_reconf( Decoder_State *st, const int16_t MCT_flag, const int16_t last_element_mode ); -#endif /*-------------------------------------------------------------* @@ -73,9 +67,6 @@ void stereo_tcx_init_dec( const int16_t last_element_mode /* i : element mode of previous frame */ ) { -#ifndef FIX_TCX_DEC_RECONF_BFI - int16_t frame_size_index; -#endif TCX_LTP_DEC_HANDLE hTcxLtpDec = st->hTcxLtpDec; TCX_DEC_HANDLE hTcxDec = st->hTcxDec; @@ -134,43 +125,13 @@ void stereo_tcx_init_dec( } } -#ifdef FIX_TCX_DEC_RECONF_BFI if ( ( st->bits_frame_nominal != st->last_bits_frame_nominal ) || ( st->bwidth != st->last_bwidth ) || ( st->last_core != TCX_20_CORE && st->last_core != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) || ( st->idchan == 1 && st->element_mode == IVAS_CPE_MDCT && last_element_mode != IVAS_CPE_MDCT ) ) -#else - if ( ( st->bits_frame_nominal != st->last_bits_frame_nominal ) || ( st->bwidth != st->last_bwidth ) || ( st->last_core != TCX_20_CORE && st->last_core != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) || ( st->idchan == 1 && st->element_mode == IVAS_CPE_MDCT && last_element_mode != IVAS_CPE_MDCT ) ) -#endif { /*re-initialization*/ -#ifdef FIX_TCX_DEC_RECONF_BFI stereo_tcx_dec_mode_switch_reconf( st, MCT_flag, last_element_mode ); -#else - st->rate_switching_init = 1; - - /* Identify frame type - TCX Reconfiguration */ - for ( frame_size_index = 0; frame_size_index < FRAME_SIZE_NB; frame_size_index++ ) - { - if ( frame_size_index < FRAME_SIZE_NB - 1 ) - { - if ( ( FrameSizeConfig[frame_size_index].frame_bits <= st->bits_frame_nominal ) && ( FrameSizeConfig[frame_size_index + 1].frame_bits > st->bits_frame_nominal ) ) - { - break; - } - } - else - { - if ( FrameSizeConfig[frame_size_index].frame_bits <= st->bits_frame_nominal ) - { - break; - } - } - } - - /* Reconfigure Core */ - mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, MCT_flag, last_element_mode ); -#endif } return; @@ -304,11 +265,7 @@ void stereo_tcx_core_dec( tcx_current_overlap_mode = st->hTcxCfg->tcx_curr_overlap_mode; #endif -#ifdef FIX_TCX_DEC_RECONF_BFI dec_prm_tcx( st, param, param_lpc, &total_nbbits, last_element_mode, &bitsRead ); -#else - dec_prm_tcx( st, param, param_lpc, &total_nbbits, &bitsRead ); -#endif #ifdef FIX_IVAS_337 /*IVAS-337 consider BER */ if ( !st->rate_switching_init && st->BER_detect ) @@ -832,9 +789,7 @@ static void dec_prm_tcx( int16_t param[], /* o : decoded parameters */ int16_t param_lpc[], /* o : LPC parameters */ int16_t *total_nbbits, /* i/o: number of bits / decoded bits */ -#ifdef FIX_TCX_DEC_RECONF_BFI const int16_t last_element_mode, -#endif int16_t *bitsRead /* o : number of read bits */ ) { @@ -888,13 +843,11 @@ static void dec_prm_tcx( st->prev_bfi = 1; } -#ifdef FIX_TCX_DEC_RECONF_BFI /* possible need for reconfiguration can only be decided correctly once last_core_from_bs has been decoded */ if ( ( st->last_core != st->last_core_from_bs ) && ( st->last_core_from_bs != TCX_20_CORE && st->last_core_from_bs != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core_from_bs == ACELP_CORE && st->last_con_tcx == 1 ) ) ) { stereo_tcx_dec_mode_switch_reconf( st, 0, last_element_mode ); } -#endif st->last_core = st->last_core_from_bs; @@ -959,7 +912,6 @@ static void dec_prm_tcx( return; } -#ifdef FIX_TCX_DEC_RECONF_BFI static void stereo_tcx_dec_mode_switch_reconf( Decoder_State *st, const int16_t MCT_flag, @@ -991,4 +943,3 @@ static void stereo_tcx_dec_mode_switch_reconf( /* Reconfigure Core */ mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, MCT_flag, last_element_mode ); } -#endif -- GitLab From 68091d9671b75cf66cff614a9e89155dabd0a054 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Tue, 8 Nov 2022 08:12:21 +0100 Subject: [PATCH 444/479] [cleanup] accept FIX_SBA_DTX_DECODE_ERROR --- lib_com/ivas_cnst.h | 2 -- lib_com/options.h | 1 - lib_enc/ivas_front_vad.c | 4 ---- lib_enc/ivas_spar_encoder.c | 5 ----- 4 files changed, 12 deletions(-) diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 7051caf9a5..b42feca458 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -841,9 +841,7 @@ typedef enum { #define SBA_MIN_BRATE_HOA IVAS_256k #define SBA_NHARM_HOA3 16 #define SBA_T_DESIGN_11_SIZE 70 -#ifdef FIX_SBA_DTX_DECODE_ERROR #define SBA_DTX_BITRATE_THRESHOLD IVAS_80k -#endif typedef enum { diff --git a/lib_com/options.h b/lib_com/options.h index 1ae0e47aae..119c6b4d57 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -145,7 +145,6 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define FIX_I1_113 /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ -#define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ #define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ /*#define FIX_MCT_PLC_RECOVERY*/ /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ #define FIX_MSAN_ERROR_STEREO_RATE_SWITCHING /* addresses Issue 177 */ diff --git a/lib_enc/ivas_front_vad.c b/lib_enc/ivas_front_vad.c index 62eeee5a02..e9818cb7ae 100644 --- a/lib_enc/ivas_front_vad.c +++ b/lib_enc/ivas_front_vad.c @@ -396,11 +396,7 @@ ivas_error front_vad_spar( hFrontVad = hSpar->hFrontVad; st = hSpar->hCoreCoderVAD; -#ifdef FIX_SBA_DTX_DECODE_ERROR if ( hEncoderConfig->Opt_DTX_ON && hEncoderConfig->ivas_total_brate <= SBA_DTX_BITRATE_THRESHOLD ) -#else - if ( hEncoderConfig->Opt_DTX_ON && hEncoderConfig->ivas_total_brate <= IVAS_80k ) -#endif { /*------------------------------------------------------------------* * Initialization diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index d387a9885d..99f198ff61 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -315,13 +315,8 @@ ivas_error ivas_spar_enc( *nb_bits_metadata = hMetaData->nb_bits_tot; -#ifdef FIX_SBA_DTX_DECODE_ERROR /* Force IVAS front pre-proc decision for higher bitrates */ if ( hEncoderConfig->ivas_total_brate > SBA_DTX_BITRATE_THRESHOLD || hEncoderConfig->Opt_DTX_ON == 0 ) -#else - /* temp hack to not force IVAS front pre-proc decision for higher bitrates */ - if ( hEncoderConfig->ivas_total_brate > IVAS_64k || hEncoderConfig->Opt_DTX_ON == 0 ) -#endif { st_ivas->hSpar->front_vad_flag = 0; } -- GitLab From 58ea34d49759fdb9e18b3fe45c79fab774a132ad Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Tue, 8 Nov 2022 08:23:37 +0100 Subject: [PATCH 445/479] formatting --- lib_com/ivas_agc_com.c | 4 +- lib_com/options.h | 2 - lib_dec/ivas_init_dec.c | 4 +- lib_dec/ivas_post_proc.c | 4 -- lib_dec/ivas_spar_decoder.c | 4 +- lib_enc/ivas_agc_enc.c | 74 ++++++++++++++++++------------------- lib_enc/lib_enc.c | 4 +- 7 files changed, 43 insertions(+), 53 deletions(-) diff --git a/lib_com/ivas_agc_com.c b/lib_com/ivas_agc_com.c index 2f91965f01..b02853555b 100644 --- a/lib_com/ivas_agc_com.c +++ b/lib_com/ivas_agc_com.c @@ -46,8 +46,8 @@ * Local constants *------------------------------------------------------------------------------------------*/ -#define SQRKMAX ( 1.5f ) -#define NBITS_DIFFG ( 2 ) +#define SQRKMAX ( 1.5f ) +#define NBITS_DIFFG ( 2 ) #define DBSTEP ( -6.f ) /* desired dB step value in dB*/ #define ABS_EMIN_MAX ( 3 ) #define MAXATTEXP ( 1 ) /* the desired maximum attenuation exponent range per frame*/ diff --git a/lib_com/options.h b/lib_com/options.h index 119c6b4d57..14cd7cdecd 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -147,12 +147,10 @@ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ #define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ /*#define FIX_MCT_PLC_RECOVERY*/ /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ -#define FIX_MSAN_ERROR_STEREO_RATE_SWITCHING /* addresses Issue 177 */ #define SBA_BR_SWITCHING /* Issue 114: Changes for sba bit rate switching*/ #define FIX_AGC_WINFUNC_MEMORY /* Issue 62: lower agc_com.winFunc memory consumption */ - /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ #endif diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 1bb44c5527..e51b46779c 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -803,9 +803,7 @@ ivas_error ivas_init_decoder( return error; } - if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA - && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO - ) + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO ) { if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { diff --git a/lib_dec/ivas_post_proc.c b/lib_dec/ivas_post_proc.c index b2cc27d5ef..1dce7978c2 100644 --- a/lib_dec/ivas_post_proc.c +++ b/lib_dec/ivas_post_proc.c @@ -478,11 +478,7 @@ void stereo_dft_dec_core_switching( mvr2r( output, pAp_input, st->L_frame ); } -#ifdef FIX_MSAN_ERROR_STEREO_RATE_SWITCHING if ( st->last_core == ACELP_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) && !st->tcxonly ) /* ACELP -> TCX/HQ-Core */ -#else - if ( st->last_core == ACELP_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) /* ACELP -> TCX/HQ-Core */ -#endif { mvr2r( tcx_core_buf, tmp_fade, ap_fade_len ); for ( i = 0; i < ap_fade_len; i++ ) diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index 1e2c70fc82..ceed901c1a 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -1132,9 +1132,7 @@ void ivas_spar_dec_upmixer( } } - if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA - && hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && hDecoderConfig->output_config != AUDIO_CONFIG_MONO - ) + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA && hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && hDecoderConfig->output_config != AUDIO_CONFIG_MONO ) { ivas_dirac_dec( st_ivas, output, nchan_internal, cldfb_in_ts_re, cldfb_in_ts_im, i_sf ); } diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 341a3003ab..8207336b82 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -352,59 +352,59 @@ void ivas_agc_enc_process( { int16_t isCompensated = FALSE; actualMaxAbsVal = pState->gain_state[i].lastMaxAbs * pState->gain_state[i].lastGain; - pState->gain_data[i].gainException = FALSE; - pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[min( offset - 1, MaxAbsValIdx )] ) ); + pState->gain_data[i].gainException = FALSE; + pState->gain_state[i].gainExpVal = (int16_t) ceilf( -logf( actualMaxAbsVal * MDFT_NORM_SCALING ) / logf( pState->agc_com.winFunc[min( offset - 1, MaxAbsValIdx )] ) ); - while ( !isCompensated ) - { - float tmpSignal; - isCompensated = TRUE; + while ( !isCompensated ) + { + float tmpSignal; + isCompensated = TRUE; - for ( idx = clippedIdx; idx <= MaxAbsValIdx; idx++ ) + for ( idx = clippedIdx; idx <= MaxAbsValIdx; idx++ ) + { + if ( idx >= offset ) { - if ( idx >= offset ) - { - idx = MaxAbsValIdx; - tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[offset - 1], (float) pState->gain_state[i].gainExpVal ); - } - else - { - tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[idx], (float) pState->gain_state[i].gainExpVal ); - } - - if ( ( tmpSignal > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( tmpSignal < MIN16B_FLT ) ) - { - isCompensated = FALSE; - break; - } + idx = MaxAbsValIdx; + tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[offset - 1], (float) pState->gain_state[i].gainExpVal ); } - - if ( !isCompensated ) + else { - pState->gain_state[i].gainExpVal++; + tmpSignal = ppPcm_out[i][idx] * powf( pState->agc_com.winFunc[idx], (float) pState->gain_state[i].gainExpVal ); } - if ( pState->gain_state[i].gainExpVal > currMaxAttExp ) + if ( ( tmpSignal > ( 1.f - pState->minDelta ) * PCM16_TO_FLT_FAC ) || ( tmpSignal < MIN16B_FLT ) ) { - pState->gain_state[i].gainExpVal = min( pState->gain_state[i].gainExpVal, currMaxAttExp ); + isCompensated = FALSE; break; } + } - if ( pState->gain_state[i].gainExpVal > currMaxAttExp ) - { - pState->gain_data[i].gainException = TRUE; + if ( !isCompensated ) + { + pState->gain_state[i].gainExpVal++; + } + + if ( pState->gain_state[i].gainExpVal > currMaxAttExp ) + { + pState->gain_state[i].gainExpVal = min( pState->gain_state[i].gainExpVal, currMaxAttExp ); + break; + } + + if ( pState->gain_state[i].gainExpVal > currMaxAttExp ) + { + pState->gain_data[i].gainException = TRUE; - if ( pState->gain_state[i].gainExpVal == gainExpValMaxRange ) + if ( pState->gain_state[i].gainExpVal == gainExpValMaxRange ) + { + extendedExpVal = TRUE; + if ( isCompensated ) { - extendedExpVal = TRUE; - if ( isCompensated ) - { - pState->gain_data[i].gainException = FALSE; - } + pState->gain_data[i].gainException = FALSE; } - break; } + break; } + } } if ( !pState->gain_data[i].gainException ) diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index e7684c6cb0..4dff969a4f 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -454,8 +454,8 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( const bool isPlanar, /* i : if true, input is treated as planar Ambisonics */ #ifdef DEBUG_AGC_ENCODER_CMD_OPTION const IVAS_ENC_AGC Opt_AGC_ON, /* i : AGC on/off/undefined flag */ -#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ - const bool Opt_PCA_ON /* i : PCA option flag */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ + const bool Opt_PCA_ON /* i : PCA option flag */ #ifdef DEBUG_SBA_AUDIO_DUMP , int16_t *numTransportChannels -- GitLab From 99944a885b59bc0b50a400b252def785da109cc2 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 8 Nov 2022 10:19:08 +0100 Subject: [PATCH 446/479] [maintenance] formatting, comments --- lib_com/ivas_sba_config.c | 5 +++++ lib_dec/ivas_sba_dec.c | 8 +++----- lib_enc/ivas_sba_enc.c | 2 ++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index 5b6cfd48cb..64635577b4 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -71,26 +71,31 @@ SBA_MODE ivas_sba_mode_select( return sba_mode; } + #ifdef SBA_BR_SWITCHING /*-------------------------------------------------------------------* * get_sba_reinit_flag() * * Get SBA reinitialisation flag *-------------------------------------------------------------------*/ + int16_t get_sba_reinit_flag( int32_t ivas_total_bitrate, /* i : Current bitrate */ int32_t last_ivas_total_brate /* i : Previous bitrate */ ) { int16_t sba_reinit_flag; + sba_reinit_flag = 0; if ( ivas_total_bitrate != last_ivas_total_brate && ( last_ivas_total_brate > IVAS_SID_5k2 ) && ( ivas_total_bitrate > IVAS_SID_5k2 ) ) { sba_reinit_flag = 1; } + return sba_reinit_flag; } #endif + /*-------------------------------------------------------------------* * ivas_sba_config() * diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index b027dcff77..2681493f08 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -309,11 +309,7 @@ void ivas_ism2sba( elevation = (int16_t) ( hIsmMetaData[i]->elevation + 0.5f ); /*get HOA gets for direction (ACN/SN3D)*/ - ivas_dirac_dec_get_response( - azimuth, - elevation, - gains, - sba_order ); + ivas_dirac_dec_get_response( azimuth, elevation, gains, sba_order ); for ( j = 0; j < sba_num_chans; j++ ) { @@ -335,6 +331,8 @@ void ivas_ism2sba( return; } + + #ifdef SBA_BR_SWITCHING /*-------------------------------------------------------------------* * ivas_sba_dec_reinit() diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index d987b41d51..003baa0fa0 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -313,6 +313,8 @@ ivas_error ivas_sba_enc_reinit( return error; } #endif + + /*-------------------------------------------------------------------* * ivas_sba_enc_reconfigure() * -- GitLab From 0e9c2b59d4dfc424435d9cd77a1f99a3237d4fa9 Mon Sep 17 00:00:00 2001 From: knj Date: Tue, 8 Nov 2022 14:13:28 +0100 Subject: [PATCH 447/479] only adjust selected modes for MC and no other mode --- ci/run_scheduled_sanitizer_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index 6696e184c2..d2483627df 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -42,12 +42,12 @@ def get_modes(in_format: str) -> list: list_process = subprocess.run(cmd, capture_output=True) output = list_process.stdout.decode("utf8") + mode_list = output.splitlines() # correction for multichannel modes to avoid selecting some mono modes... if in_format in MC_MODES: in_format = "MC_" + in_format + "_b" - - mode_list = [m for m in output.splitlines() if in_format in m] + mode_list = [m for m in mode_list if in_format in m] return mode_list -- GitLab From 034ca33e5ac406f2c8b8c637fbb49aab17a258d9 Mon Sep 17 00:00:00 2001 From: Remco Stoutjesdijk Date: Tue, 8 Nov 2022 14:46:20 +0100 Subject: [PATCH 448/479] merge with FhG/external-renderer --- apps/encoder.c | 34 +- apps/renderer.c | 365 +++++---- ci/run_scheduled_sanitizer_test.py | 7 +- ci/smoke_test.sh | 7 +- lib_com/cnst.h | 3 + lib_com/fill_spectrum.c | 8 - lib_com/ivas_cnst.h | 12 +- lib_com/ivas_cov_smooth.c | 41 +- lib_com/ivas_error.h | 3 + lib_com/ivas_prot.h | 75 +- lib_com/ivas_rom_com.c | 32 +- lib_com/ivas_sba_config.c | 34 +- lib_com/ivas_spar_com.c | 31 +- lib_com/ivas_stat_com.h | 10 - lib_com/ivas_stereo_psychlpc_com.c | 16 +- lib_com/options.h | 23 +- lib_com/vlpc_2st_com.c | 3 +- lib_debug/mem_count.c | 5 +- lib_dec/dec_tcx.c | 16 +- lib_dec/igf_dec.c | 7 +- lib_dec/init_dec.c | 7 +- lib_dec/ivas_agc_dec.c | 15 + lib_dec/ivas_core_dec.c | 24 +- lib_dec/ivas_corecoder_dec_reconfig.c | 4 - lib_dec/ivas_dirac_dec.c | 6 +- lib_dec/ivas_dirac_dec_binaural_functions.c | 4 +- lib_dec/ivas_init_dec.c | 31 +- lib_dec/ivas_ism_param_dec.c | 94 --- lib_dec/ivas_ism_renderer.c | 2 +- lib_dec/ivas_mct_dec_mct.c | 4 - lib_dec/ivas_mdct_core_dec.c | 6 - lib_dec/ivas_mono_dmx_renderer.c | 2 +- lib_dec/ivas_out_setup_conversion.c | 2 +- lib_dec/ivas_post_proc.c | 4 + lib_dec/ivas_rom_dec.c | 2 +- lib_dec/ivas_sba_dec.c | 779 ++++++++++++-------- lib_dec/ivas_spar_decoder.c | 39 +- lib_dec/ivas_spar_md_dec.c | 429 +++++------ lib_dec/ivas_stat_dec.h | 21 +- lib_dec/ivas_stereo_mdct_core_dec.c | 4 - lib_dec/ivas_stereo_mdct_stereo_dec.c | 12 - lib_dec/ivas_tcx_core_dec.c | 70 ++ lib_dec/ivas_vbap.c | 2 +- lib_dec/lib_dec.c | 2 +- lib_enc/igf_enc.c | 6 +- lib_enc/init_enc.c | 7 +- lib_enc/ivas_agc_enc.c | 52 +- lib_enc/ivas_core_enc.c | 18 +- lib_enc/ivas_core_pre_proc.c | 12 +- lib_enc/ivas_core_pre_proc_front.c | 2 +- lib_enc/ivas_corecoder_enc_reconfig.c | 2 - lib_enc/ivas_cpe_enc.c | 4 - lib_enc/ivas_dirac_enc.c | 38 +- lib_enc/ivas_enc.c | 22 +- lib_enc/ivas_enc_cov_handler.c | 71 +- lib_enc/ivas_entropy_coder.c | 15 - lib_enc/ivas_front_vad.c | 4 + lib_enc/ivas_init_enc.c | 2 - lib_enc/ivas_ism_enc.c | 4 - lib_enc/ivas_ism_param_enc.c | 212 ------ lib_enc/ivas_mcmasa_enc.c | 8 +- lib_enc/ivas_mct_core_enc.c | 2 - lib_enc/ivas_sba_enc.c | 497 ++++++------- lib_enc/ivas_sce_enc.c | 12 - lib_enc/ivas_sns_enc.c | 1 - lib_enc/ivas_spar_encoder.c | 266 +------ lib_enc/ivas_spar_md_enc.c | 132 +--- lib_enc/ivas_stat_enc.h | 35 +- lib_enc/lib_enc.c | 100 ++- lib_enc/lib_enc.h | 8 +- lib_rend/ivas_allrad_dec.c | 4 - lib_rend/ivas_crend.c | 40 +- lib_rend/ivas_efap.c | 22 - lib_rend/ivas_lib_rend_internal.h | 38 +- lib_rend/ivas_limiter.c | 2 +- lib_rend/ivas_objectRenderer.c | 29 +- lib_rend/ivas_output_init.c | 14 +- lib_rend/lib_rend.c | 684 ++++++++--------- lib_rend/lib_rend.h | 42 +- 79 files changed, 2045 insertions(+), 2659 deletions(-) diff --git a/apps/encoder.c b/apps/encoder.c index c039cba91b..836775b342 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -120,11 +120,13 @@ typedef struct const char *ca_config_file; bool mimeOutput; +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR IVAS_ENC_AGC agc; #else bool agc; -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ bool pca; #ifdef DEBUG_FOA_AGC FILE *agcBitstream; /* temporary */ @@ -450,11 +452,25 @@ int main( } break; case IVAS_ENC_INPUT_SBA: + if ( ( error = + IVAS_ENC_ConfigureForAmbisonics( + hIvasEnc, + arg.inputFs, + totalBitrate, + arg.max_bwidth_user, + bandwidth, + arg.dtxConfig, + arg.inputFormatConfig.sba.order, + arg.inputFormatConfig.sba.isPlanar, +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + arg.agc, +#endif + arg.pca #ifdef DEBUG_SBA_AUDIO_DUMP - if ( ( error = IVAS_ENC_ConfigureForAmbisonics( hIvasEnc, arg.inputFs, totalBitrate, arg.max_bwidth_user, bandwidth, arg.dtxConfig, arg.inputFormatConfig.sba.order, arg.inputFormatConfig.sba.isPlanar, arg.agc, arg.pca, &numTransportChannels ) ) != IVAS_ERR_OK ) -#else - if ( ( error = IVAS_ENC_ConfigureForAmbisonics( hIvasEnc, arg.inputFs, totalBitrate, arg.max_bwidth_user, bandwidth, arg.dtxConfig, arg.inputFormatConfig.sba.order, arg.inputFormatConfig.sba.isPlanar, arg.agc, arg.pca ) ) != IVAS_ERR_OK ) + , + &numTransportChannels #endif + ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nIVAS_ENC_ConfigureForAmbisonics failed: %s\n\n", IVAS_ENC_GetErrorMessage( error ) ); goto cleanup; @@ -880,11 +896,13 @@ static void initArgStruct( EncArguments *arg ) arg->ca_config_file = NULL; arg->mimeOutput = false; +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR arg->agc = IVAS_ENC_AGC_UNDEFINED; #else arg->agc = IVAS_DEFAULT_AGC; -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ arg->pca = false; #ifdef DEBUG_FOA_AGC arg->agcBitstream = NULL; @@ -1390,6 +1408,7 @@ static bool parseCmdlIVAS_enc( arg->inputFormatConfig.stereoToMonoDownmix = true; i++; } +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION else if ( strcmp( argv_to_upper, "-AGC" ) == 0 ) { i++; @@ -1415,6 +1434,7 @@ static bool parseCmdlIVAS_enc( return false; } } +#endif else if ( strcmp( argv_to_upper, "-BYPASS" ) == 0 ) // VE: should be renamed to "-pca" { i++; @@ -1654,13 +1674,15 @@ static void usage_enc( void ) #ifdef DEBUG_SBA fprintf( stdout, "-tag : Tag name for intermediate debug files\n" ); #endif +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR fprintf( stdout, "-agc op : SBA Adaptive gain control, op = (0, 1). \n" ); fprintf( stdout, " By default op is 1 (activated) for bitrates between 24400 and 32000,\n" ); fprintf( stdout, " otherwise it is 0 (deactivated) for all other bitrates\n" ); #else fprintf( stdout, "-agc op : SBA Adaptive gain control, op = (0, 1), by default op is 0 or deactivated\n" ); -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ fprintf( stdout, "-bypass mode : SBA PCA by-pass, mode = (1, 2), 1 = PCA off, 2 = signal adaptive, default is 1\n" ); #ifdef DEBUGGING diff --git a/apps/renderer.c b/apps/renderer.c index 7cae5dd044..c7c1b8cf8f 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -41,10 +41,10 @@ #include "hrtf_file_reader.h" #include "ism_file_reader.h" #include "lib_rend.h" -#include "render_config_reader.h" #include "ls_custom_file_reader.h" #include "masa_file_reader.h" #include "prot.h" +#include "render_config_reader.h" #ifdef WMOPS #include "PROM_Size_lib_rend.h" #include "wmops.h" @@ -104,29 +104,27 @@ extern int16_t *ptr_max_stack; extern int32_t wc_frame; extern char location_max_stack[256]; -/* clang-format off */ /*------------------------------------------------------------------------------------------* -* Function to print complexity & memory estimates -*------------------------------------------------------------------------------------------*/ -static void print_mem_renderer(size_t SRAM_size) + * Function to print complexity & memory estimates + *------------------------------------------------------------------------------------------*/ +static void print_mem_renderer( size_t SRAM_size ) { - fprintf( stdout, "\n\n --- Renderer cmdln demo memory usage --- \n\n" ); + fprintf( stdout, "\n\n --- Renderer memory usage --- \n\n" ); - fprintf( stdout, "PROM size (renderer): %d words (or instructions)\n", PROM_Size_lib_rend ); - fprintf( stdout, "Stack size: %d words in %s() in frame #%d\n", ( ptr_base_stack - ptr_max_stack ) * sizeof( int16_t ) / sizeof( float ), location_max_stack, wc_frame ); - fprintf( stdout, "Table ROM size(renderer): %d words\n", (Const_Data_Size_ivas_rom_rend() ) / sizeof( float ) ); - fprintf( stdout, "Table ROM size (binaural renderer): %ld words\n", ( Const_Data_Size_ivas_rom_binauralRen() + Const_Data_Size_ivas_rom_TdBinauralR() + Const_Data_Size_ivas_rom_binaural_cr() ) / sizeof( float ) ); + fprintf( stdout, "PROM size (renderer): %d words (or instructions)\n", PROM_Size_lib_rend ); + fprintf( stdout, "Stack size: %d words in %s() in frame #%d\n", ( ptr_base_stack - ptr_max_stack ) * sizeof( int16_t ) / sizeof( float ), location_max_stack, wc_frame ); + fprintf( stdout, "Table ROM size(renderer): %d words\n", ( Const_Data_Size_ivas_rom_rend() ) / sizeof( float ) ); + fprintf( stdout, "Table ROM size (binaural renderer): %ld words\n", ( Const_Data_Size_ivas_rom_binauralRen() + Const_Data_Size_ivas_rom_TdBinauralR() + Const_Data_Size_ivas_rom_binaural_cr() ) / sizeof( float ) ); #ifdef RAM_COUNTING_TOOL - fprintf( stdout, "Static RAM size: %d words\n\n", SRAM_size ); + fprintf( stdout, "Static RAM size: %d words\n\n", SRAM_size ); #endif - print_stack_call_tree(); + print_stack_call_tree(); - fprintf( stdout, "Note: this is an optimistic estimate of the memory consumption assuming\n" ); - fprintf( stdout, " that each variable (short, long or float) in the codec requires\n" ); - fprintf( stdout, " 32 bits of memory and may therefore be represented by 1 word.\n" ); - fprintf( stdout, " The following formula is used: sizeof('memory array')/sizeof(float)\n\n" ); + fprintf( stdout, "Note: this is an optimistic estimate of the memory consumption assuming\n" ); + fprintf( stdout, " that each variable (short, long or float) in the codec requires\n" ); + fprintf( stdout, " 32 bits of memory and may therefore be represented by 1 word.\n" ); + fprintf( stdout, " The following formula is used: sizeof('memory array')/sizeof(float)\n\n" ); } -/* clang-format on */ #endif typedef struct @@ -182,7 +180,7 @@ typedef struct InputConfig inConfig; OutputConfig outConfig; char inMetadataFilePaths[RENDERER_MAX_ISM_INPUTS][RENDERER_MAX_CLI_ARG_LENGTH]; - int32_t numInMetadataFiles; + int16_t numInMetadataFiles; char headRotationFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char customHrtfFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char renderConfigFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; @@ -318,7 +316,7 @@ static const CmdLnParser_Option cliOptions[] = { static const int32_t numCliOptions = sizeof( cliOptions ) / sizeof( CmdLnParser_Option ); static IVAS_REND_AudioConfig ambisonicsOrderToEnum( - int32_t order ); + const int16_t order ); static void parseSceneDescriptionFile( char *path, @@ -332,7 +330,7 @@ static ivas_error parseCustomLayoutFile( IVAS_CUSTOM_LS_DATA *pLsSetupCustom ); static CmdlnArgs parseCmdlnArgs( - int32_t argc, + const int argc, char **argv ); static IsmPositionProvider *IsmPositionProvider_open( @@ -348,12 +346,12 @@ static void IsmPositionProvider_close( static void readFromShorthandMetadata( IsmPositionProvider *positionProvider, ObjectPositionBuffer *objectMetadataBuffer, - uint32_t objIdx ); + const uint32_t objIdx ); void getMetadataFromFileReader( IsmFileReader *ismReader, ObjectPositionBuffer *objectMetadataBuffer, - uint32_t objIdx ); + const uint32_t objIdx ); static void splitConfigFile( const char *mdfFilePath, @@ -394,11 +392,9 @@ static void parseMetadata( IsmPositionProvider *positionProvider, MasaFileReader **masaReaders ); -static void convert_backslash( - char *str ); +static void convert_backslash( char *str ); -static void remove_cr( - char *str ); +static void remove_cr( char *str ); static void clearString( char *str ); @@ -408,37 +404,33 @@ static void printSupportedAudioConfigs( void ); static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ); -static void convertInputBuffer( const int16_t *intBuffer, - int32_t numIntSamplesPerChannel, /* Number of samples per channel in the int buffer */ - int32_t numFloatSamplesPerChannel, /* Per-channel length of the float buffer. If > numIntSamplesPerChannel, remaining samples will be set to 0. */ - int32_t numChannels, - float *floatBuffer ); +static void convertInputBuffer( const int16_t *intBuffer, const int16_t numIntSamplesPerChannel, const int16_t numFloatSamplesPerChannel, const int16_t numChannels, float *floatBuffer ); -static void convertOutputBuffer( const float *floatBuffer, - int32_t numSamplesPerChannel, - int32_t numChannels, - int16_t *intBuffer ); +static void convertOutputBuffer( const float *floatBuffer, const int16_t numSamplesPerChannel, const int16_t numChannels, int16_t *intBuffer ); -static IVAS_REND_ReadOnlyAudioBuffer getReadOnlySubBuffer( IVAS_REND_AudioBuffer buffer, int32_t chBeginIdx, int32_t numChannels ) + +static IVAS_REND_ReadOnlyAudioBuffer getReadOnlySubBuffer( IVAS_REND_AudioBuffer buffer, const int16_t chBeginIdx, const int16_t numChannels ) { IVAS_REND_ReadOnlyAudioBuffer subBuffer; subBuffer.config = buffer.config; - subBuffer.config.numChannels = (int16_t) numChannels; + subBuffer.config.numChannels = numChannels; subBuffer.data = buffer.data + subBuffer.config.numSamplesPerChannel * chBeginIdx; return subBuffer; } -static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS], - IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS], - IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] ) +static int16_t getTotalNumInChannels( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS], + IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS], + IVAS_REND_InputId sbaIds[RENDERER_MAX_SBA_INPUTS] ) { - int32_t totalNumInChannels = 0; + int16_t totalNumInChannels = 0; + int16_t i, numInputChannels; ivas_error error; - for ( int32_t i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) { if ( mcIds[i] == 0 ) { @@ -446,7 +438,6 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, continue; } - int32_t numInputChannels; if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, mcIds[i], &numInputChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); @@ -455,7 +446,7 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, totalNumInChannels += numInputChannels; } - for ( int32_t i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) { if ( ismIds[i] == 0 ) { @@ -463,7 +454,6 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, continue; } - int32_t numInputChannels; if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, ismIds[i], &numInputChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); @@ -472,7 +462,7 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, totalNumInChannels += numInputChannels; } - for ( int32_t i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) { if ( sbaIds[i] == 0 ) { @@ -480,7 +470,7 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, continue; } - int32_t numInputChannels; + if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, sbaIds[i], &numInputChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); @@ -492,7 +482,11 @@ static int32_t getTotalNumInChannels( IVAS_REND_HANDLE hIvasRend, return totalNumInChannels; } -static void setupWithSingleFormatInput( CmdlnArgs args, char *audioFilePath, IsmPositionProvider *positionProvider, MasaFileReader **masaReaders ) +static void setupWithSingleFormatInput( + CmdlnArgs args, + char *audioFilePath, + IsmPositionProvider *positionProvider, + MasaFileReader **masaReaders ) { /* With single-format input, inputFilePath is the path to input audio file. */ strncpy( audioFilePath, args.inputFilePath, FILENAME_MAX - 1 ); @@ -519,7 +513,7 @@ static void setupWithSingleFormatInput( CmdlnArgs args, char *audioFilePath, Ism else if ( args.inConfig.numAudioObjects != 0 ) { positionProvider->numObjects = args.inConfig.numAudioObjects; - for ( int32_t i = 0; i < positionProvider->numObjects; ++i ) + for ( int16_t i = 0; i < positionProvider->numObjects; ++i ) { /* It is allowed on CLI to have no metadata for an ISM input - skip opening if string is empty or contains "NULL" */ char charBuf[FILENAME_MAX]; @@ -540,7 +534,8 @@ static void setupWithSingleFormatInput( CmdlnArgs args, char *audioFilePath, Ism } } -static float dBToLin( float gain_dB ) +static float dBToLin( + const float gain_dB ) { return powf( 10.0f, gain_dB / 20.0f ); } @@ -548,7 +543,9 @@ static float dBToLin( float gain_dB ) /* ============================================================================ */ -int32_t main( int32_t argc, char **argv ) +int main( + int argc, + char **argv ) { IVAS_REND_HANDLE hIvasRend; HeadRotFileReader *headRotReader = NULL; @@ -573,6 +570,7 @@ int32_t main( int32_t argc, char **argv ) int16_t delayNumSamples_orig = 0; int16_t zeroPad = 0; int32_t delayTimeScale = 0; + int16_t i, numChannels; ivas_error error = IVAS_ERR_OK; #ifdef WMOPS size_t SRAM_size; @@ -587,7 +585,7 @@ int32_t main( int32_t argc, char **argv ) mem_count_init( 0, USE_32BITS ); #endif - for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { masaReaders[i] = NULL; hMasaMetadata[i] = NULL; @@ -613,11 +611,7 @@ int32_t main( int32_t argc, char **argv ) if ( !isEmptyString( args.renderConfigFilePath ) ) { - if ( ( error = RenderConfigReader_open( args.renderConfigFilePath , &renderConfigReader ) ) != IVAS_ERR_OK ) - { - fprintf( stderr, "\nError: Can't open Renderer configuration file %s \n\n", args.renderConfigFilePath ); - exit( -1 ); - } + RenderConfigReader_open( args.renderConfigFilePath, &renderConfigReader ); } /* Initialize main input files, i.e. audio and metadata */ @@ -652,7 +646,7 @@ int32_t main( int32_t argc, char **argv ) { args.sampleRate = inFileSampleRate; } - const int32_t frameSize_smpls = 20 * args.sampleRate / 1000; + const int16_t frameSize_smpls = (int16_t) ( 20 * args.sampleRate / 1000 ); IVAS_REND_InputId mcIds[RENDERER_MAX_MC_INPUTS] = { 0 }; IVAS_REND_InputId ismIds[RENDERER_MAX_ISM_INPUTS] = { 0 }; @@ -709,7 +703,7 @@ int32_t main( int32_t argc, char **argv ) } } - for ( int32_t i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) + for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.multiChannelBuses[i].audioConfig, &mcIds[i] ) ) != IVAS_ERR_OK ) { @@ -735,7 +729,7 @@ int32_t main( int32_t argc, char **argv ) /* TODO(sgi): Test custom LFE routing here */ } - for ( int32_t i = 0; i < args.inConfig.numAudioObjects; ++i ) + for ( i = 0; i < args.inConfig.numAudioObjects; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, IVAS_REND_AUDIO_CONFIG_OBJECT, &ismIds[i] ) ) != IVAS_ERR_OK ) { @@ -750,7 +744,7 @@ int32_t main( int32_t argc, char **argv ) } } - for ( int32_t i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) + for ( i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.ambisonicsBuses[i].audioConfig, &sbaIds[i] ) ) != IVAS_ERR_OK ) { @@ -765,7 +759,7 @@ int32_t main( int32_t argc, char **argv ) } } - const int32_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds ); + const int16_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds ); if ( AudioFileReader_getNumChannels( audioReader ) != 0 /* If input file is raw PCM, audio reader has no info about number of channels */ && totalNumInChannels != AudioFileReader_getNumChannels( audioReader ) ) { @@ -773,7 +767,7 @@ int32_t main( int32_t argc, char **argv ) exit( -1 ); } - for ( int32_t i = 0; i < args.inConfig.numMasaBuses; ++i ) + for ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { if ( masaReaders[i] != NULL ) { @@ -781,7 +775,7 @@ int32_t main( int32_t argc, char **argv ) } } - int32_t numOutChannels; + int16_t numOutChannels; if ( ( error = IVAS_REND_NumOutChannels( hIvasRend, &numOutChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); @@ -828,7 +822,7 @@ int32_t main( int32_t argc, char **argv ) while ( 1 ) { - int32_t num_in_channels; + int16_t num_in_channels; num_in_channels = inBuffer.config.numChannels; /* Read the input data */ @@ -861,7 +855,7 @@ int32_t main( int32_t argc, char **argv ) } #endif - for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { if ( masaReaders[i] != NULL ) { @@ -887,15 +881,14 @@ int32_t main( int32_t argc, char **argv ) IVAS_REND_SetHeadRotation( hIvasRend, NULL ); } - for ( int32_t i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) + for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) { - int32_t numChannels; if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, mcIds[i], &numChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } - IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, args.inConfig.multiChannelBuses[i].inputChannelIndex, numChannels ); + IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.multiChannelBuses[i].inputChannelIndex, numChannels ); if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, mcIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { @@ -904,9 +897,9 @@ int32_t main( int32_t argc, char **argv ) } } - for ( int32_t i = 0; i < args.inConfig.numAudioObjects; ++i ) + for ( i = 0; i < args.inConfig.numAudioObjects; ++i ) { - IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, args.inConfig.audioObjects[i].inputChannelIndex, 1 ); + IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.audioObjects[i].inputChannelIndex, 1 ); if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, ismIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { @@ -921,15 +914,14 @@ int32_t main( int32_t argc, char **argv ) } } - for ( int32_t i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) + for ( i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) { - int32_t numChannels; if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, sbaIds[i], &numChannels ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } - IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, args.inConfig.ambisonicsBuses[i].inputChannelIndex, numChannels ); + IVAS_REND_ReadOnlyAudioBuffer tmpBuffer = getReadOnlySubBuffer( inBuffer, (int16_t) args.inConfig.ambisonicsBuses[i].inputChannelIndex, numChannels ); if ( ( error = IVAS_REND_FeedInputAudio( hIvasRend, sbaIds[i], tmpBuffer ) ) != IVAS_ERR_OK ) { @@ -940,7 +932,7 @@ int32_t main( int32_t argc, char **argv ) IVAS_REND_GetSamples( hIvasRend, outBuffer ); - int32_t num_out_channels; + int16_t num_out_channels; num_out_channels = outBuffer.config.numChannels; /* Convert from float to int and from packed to interleaved. @@ -1022,7 +1014,7 @@ int32_t main( int32_t argc, char **argv ) count_free( inFloatBuffer ); count_free( outInt16Buffer ); count_free( outFloatBuffer ); - for ( int32_t i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) + for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i ) { MasaFileReader_close( &masaReaders[i] ); } @@ -1042,13 +1034,14 @@ int32_t main( int32_t argc, char **argv ) #endif #ifdef WMOPS print_wmops(); - /* print_mem_renderer( SRAM_size ); */ + print_mem_renderer( SRAM_size ); #endif return 0; } -static IVAS_REND_AudioConfig ambisonicsOrderToEnum( int32_t order ) +static IVAS_REND_AudioConfig ambisonicsOrderToEnum( + const int16_t order ) { switch ( order ) { @@ -1063,7 +1056,10 @@ static IVAS_REND_AudioConfig ambisonicsOrderToEnum( int32_t order ) return IVAS_REND_AUDIO_CONFIG_UNKNOWN; } -static bool parseInConfig( const char *inFormatStr, InputConfig *inConfig, bool *sceneDescriptionInput ) +static bool parseInConfig( + const char *inFormatStr, + InputConfig *inConfig, + bool *sceneDescriptionInput ) { char charBuf[FILENAME_MAX]; @@ -1131,7 +1127,7 @@ static bool parseInConfig( const char *inFormatStr, InputConfig *inConfig, bool fprintf( stderr, "Too many objects at input. Max %d supported.", RENDERER_MAX_ISM_INPUTS ); return false; } - for ( int32_t i = 0; i < inConfig->numAudioObjects; ++i ) + for ( int16_t i = 0; i < inConfig->numAudioObjects; ++i ) { inConfig->audioObjects[i].audioConfig = audioConfig; inConfig->audioObjects[i].inputChannelIndex = i; @@ -1172,7 +1168,9 @@ static bool parseInConfig( const char *inFormatStr, InputConfig *inConfig, bool return true; } -static bool parseOutConfig( const char *outputFormatStr, OutputConfig *outConfig ) +static bool parseOutConfig( + const char *outputFormatStr, + OutputConfig *outConfig ) { ivas_error error; @@ -1192,7 +1190,9 @@ static bool parseOutConfig( const char *outputFormatStr, OutputConfig *outConfig return true; } -static int8_t parseDiegeticPan( char *value, float *noDiegeticPan ) +static int8_t parseDiegeticPan( + char *value, + float *noDiegeticPan ) { int8_t success; success = 1; @@ -1223,7 +1223,9 @@ static int8_t parseDiegeticPan( char *value, float *noDiegeticPan ) return success ? 0 : -1; } -static int8_t parseOrientationTracking( char *value, int8_t *tracking_type ) +static int8_t parseOrientationTracking( + char *value, + int8_t *tracking_type ) { int8_t success; success = 1; @@ -1247,7 +1249,8 @@ static int8_t parseOrientationTracking( char *value, int8_t *tracking_type ) return success ? 0 : -1; } -static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ) +static IVAS_REND_AudioConfig parseAudioConfig( + const char *configString ) { char charBuf[14]; charBuf[13] = '\0'; @@ -1323,7 +1326,8 @@ static IVAS_REND_AudioConfig parseAudioConfig( const char *configString ) return IVAS_REND_AUDIO_CONFIG_UNKNOWN; } -static const CmdLnParser_Option *findOptionById( int32_t id ) +static const CmdLnParser_Option *findOptionById( + const int32_t id ) { for ( int32_t i = 0; i < numCliOptions; ++i ) { @@ -1336,7 +1340,8 @@ static const CmdLnParser_Option *findOptionById( int32_t id ) return NULL; } -static bool checkRequiredArgs( CmdlnArgs args ) +static bool checkRequiredArgs( + CmdlnArgs args ) { const CmdLnParser_Option *tmpOption; @@ -1379,7 +1384,8 @@ static bool checkRequiredArgs( CmdlnArgs args ) return !missingRequiredArg; } -static CmdlnArgs defaultArgs( const char *executableName ) +static CmdlnArgs defaultArgs( + const char *executableName ) { CmdlnArgs args; @@ -1420,7 +1426,11 @@ static CmdlnArgs defaultArgs( const char *executableName ) return args; } -static void parseOption( int32_t optionId, char **optionValues, int16_t numOptionValues, void *pOutputStruct ) +static void parseOption( + const int32_t optionId, + char **optionValues, + const int16_t numOptionValues, + void *pOutputStruct ) { CmdlnArgs *args = pOutputStruct; @@ -1443,7 +1453,7 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio break; case CmdLnOptionId_inputMetadata: assert( numOptionValues <= RENDERER_MAX_ISM_INPUTS ); - for ( int32_t i = 0; i < numOptionValues; ++i ) + for ( int16_t i = 0; i < numOptionValues; ++i ) { strncpy( args->inMetadataFilePaths[i], optionValues[i], RENDERER_MAX_CLI_ARG_LENGTH - 1 ); } @@ -1521,9 +1531,13 @@ static void parseOption( int32_t optionId, char **optionValues, int16_t numOptio assert( 0 && "This should be unreachable - all command line options should be explicitly handled." ); break; } + + return; } -static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) +static CmdlnArgs parseCmdlnArgs( + const int argc, + char **argv ) { CmdlnArgs args = defaultArgs( argv[0] ); @@ -1541,10 +1555,11 @@ static CmdlnArgs parseCmdlnArgs( int32_t argc, char **argv ) } -IsmPositionProvider *IsmPositionProvider_open( void ) +IsmPositionProvider *IsmPositionProvider_open( + void ) { IsmPositionProvider *ipp; - uint32_t i; + uint16_t i; ipp = (IsmPositionProvider *) count_malloc( sizeof( IsmPositionProvider ) ); ipp->frameCounter = 0; @@ -1565,7 +1580,7 @@ IsmPositionProvider *IsmPositionProvider_open( void ) void getMetadataFromFileReader( IsmFileReader *ismReader, ObjectPositionBuffer *objectMetadataBuffer, - uint32_t objIdx ) + const uint32_t objIdx ) { IVAS_ISM_METADATA ismMetadata; ivas_error error; @@ -1578,11 +1593,14 @@ void getMetadataFromFileReader( objectMetadataBuffer->positions[objIdx].azimuth = ismMetadata.azimuth; objectMetadataBuffer->positions[objIdx].elevation = ismMetadata.elevation; + + return; } -void readFromShorthandMetadata( IsmPositionProvider *positionProvider, - ObjectPositionBuffer *objectMetadataBuffer, - uint32_t objIdx ) +void readFromShorthandMetadata( + IsmPositionProvider *positionProvider, + ObjectPositionBuffer *objectMetadataBuffer, + const uint32_t objIdx ) { uint32_t preUpdatePositionIdx; uint32_t postUpdatePositionIdx; @@ -1600,6 +1618,8 @@ void readFromShorthandMetadata( IsmPositionProvider *positionProvider, postUpdatePositionIdx = positionProvider->currentPositionIdxs[objIdx]; objectMetadataBuffer->positions[objIdx] = positionProvider->positions[objIdx][postUpdatePositionIdx]; + + return; } void IsmPositionProvider_getNextFrame( @@ -1636,6 +1656,8 @@ void IsmPositionProvider_getNextFrame( } ++positionProvider->frameCounter; + + return; } void IsmPositionProvider_close( IsmPositionProvider *positionProvider ) @@ -1666,13 +1688,16 @@ void IsmPositionProvider_close( IsmPositionProvider *positionProvider ) } count_free( positionProvider ); + + return; } -static void splitConfigFile( const char *mdfFilePath, - char *metadataString, - uint32_t *metadataStringLength, - char *wavFileName, - uint32_t *wavFileNameLength ) +static void splitConfigFile( + const char *mdfFilePath, + char *metadataString, + uint32_t *metadataStringLength, + char *wavFileName, + uint32_t *wavFileNameLength ) { FILE *file; uint32_t bufferlength; @@ -1723,10 +1748,15 @@ static void splitConfigFile( const char *mdfFilePath, *metadataStringLength = mdlength + 1; fclose( file ); + + return; } /* r: pointer to character following last found delimiter */ -static char *readNextMetadataChunkFrom( char *start_char, char *line, const char *delimiter ) +static char *readNextMetadataChunkFrom( + char *start_char, + char *line, + const char *delimiter ) { char *token; @@ -1749,12 +1779,16 @@ static char *readNextMetadataChunkFrom( char *start_char, char *line, const char } /* r: pointer to character following last found delimiter */ -static char *readNextMetadataChunk( char *line, const char *delimiter ) +static char *readNextMetadataChunk( + char *line, + const char *delimiter ) { return readNextMetadataChunkFrom( NULL, line, delimiter ); } -static void parseUint8( const char *line, uint8_t *ret ) +static void parseUint8( + const char *line, + uint8_t *ret ) { char *ptr; ptr = NULL; @@ -1765,9 +1799,13 @@ static void parseUint8( const char *line, uint8_t *ret ) fprintf( stderr, "Cannot parse string \"%s\" as an integer value\n", line ); exit( -1 ); } + + return; } -static int8_t parseUint32( const char *line, uint32_t *ret ) +static int8_t parseUint32( + const char *line, + uint32_t *ret ) { char *ptr; ptr = NULL; @@ -1781,7 +1819,9 @@ static int8_t parseUint32( const char *line, uint32_t *ret ) return 0; } -static int8_t parseInt32( const char *line, int32_t *ret ) +static int8_t parseInt32( + const char *line, + int32_t *ret ) { char *ptr; ptr = NULL; @@ -1836,11 +1876,14 @@ static void parseOptionalInputValues( parse_pos = readNextMetadataChunkFrom( parse_pos, line, "\n" ); } + + return; } -static void parseObjectPosition( char *line, - IVAS_REND_AudioObjectPosition *position, - uint16_t *positionDuration ) +static void parseObjectPosition( + char *line, + IVAS_REND_AudioObjectPosition *position, + uint16_t *positionDuration ) { char *endptr; @@ -1869,6 +1912,8 @@ static void parseObjectPosition( char *line, fprintf( stderr, "Error reading metadata\n" ); exit( -1 ); } + + return; } static void parseIsm( @@ -1876,7 +1921,7 @@ static void parseIsm( char *inDir, InputConfig *inConfig, IsmPositionProvider *positionProvider, - int32_t idx ) + const int32_t idx ) { uint32_t numberOfObjectPositionsToRead; uint32_t i; @@ -1914,11 +1959,14 @@ static void parseIsm( /* Read optional values */ parseOptionalInputValues( line, &inConfig->audioObjects[idx].gain_dB ); + + return; } -static void parseSba( char *line, - InputConfig *inConfig, - int32_t idx ) +static void parseSba( + char *line, + InputConfig *inConfig, + const int32_t idx ) { uint8_t ambiOrder; @@ -1932,11 +1980,14 @@ static void parseSba( char *line, /* Read optional values */ parseOptionalInputValues( line, &inConfig->ambisonicsBuses[idx].gain_dB ); + + return; } -static void parseMc( char *line, - InputConfig *inConfig, - int32_t idx ) +static void parseMc( + char *line, + InputConfig *inConfig, + const int32_t idx ) { readNextMetadataChunk( line, "\n" ); parseInt32( line, &inConfig->multiChannelBuses[idx].inputChannelIndex ); @@ -1955,6 +2006,8 @@ static void parseMc( char *line, /* Read optional values */ parseOptionalInputValues( line, &inConfig->multiChannelBuses[idx].gain_dB ); + + return; } static void parseMasa( @@ -1962,7 +2015,7 @@ static void parseMasa( char *inDir, InputConfig *inConfig, MasaFileReader **masaReaders, - int32_t idx ) + const int32_t idx ) { readNextMetadataChunk( line, "\n" ); parseInt32( line, &inConfig->masaBuses[idx].inputChannelIndex ); @@ -1994,6 +2047,8 @@ static void parseMasa( /* Read optional values */ parseOptionalInputValues( line, &inConfig->masaBuses[idx].gain_dB ); + + return; } static ivas_error parseCustomLayoutFile( @@ -2143,9 +2198,16 @@ static void parseMetadata( fprintf( stderr, "Trailing text in metadata file\n" ); exit( -1 ); } + + return; } -static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputConfig *inConfig, IsmPositionProvider *positionProvider, MasaFileReader **masaReaders ) +static void parseSceneDescriptionFile( + char *path, + char *audioFilePath, + InputConfig *inConfig, + IsmPositionProvider *positionProvider, + MasaFileReader **masaReaders ) { uint32_t inAudioFilePathLen; char inAudioFilePath[FILENAME_MAX]; @@ -2156,11 +2218,7 @@ static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputCon inAudioFilePathLen = FILENAME_MAX; mtdStrLen = RENDERER_MAX_METADATA_LENGTH; - splitConfigFile( path, - mtdStr, - &mtdStrLen, - inAudioFilePath, - &inAudioFilePathLen ); + splitConfigFile( path, mtdStr, &mtdStrLen, inAudioFilePath, &inAudioFilePathLen ); remove_cr( mtdStr ); convert_backslash( inAudioFilePath ); @@ -2183,7 +2241,7 @@ static void parseSceneDescriptionFile( char *path, char *audioFilePath, InputCon static void printSupportedAudioConfigs() { - uint32_t i; + uint16_t i; const char *supportedFormats[] = { "MONO", "STEREO", @@ -2207,14 +2265,18 @@ static void printSupportedAudioConfigs() { fprintf( stdout, "%s\n", supportedFormats[i] ); } + + return; } -static void convert_backslash( char *str ) +// VE2AT: possibly move these functions to cmdln_parser.c ? +static void convert_backslash( + char *str ) { - int32_t i, len; + int16_t i, len; /* check that all backslashes are correct on the given platform */ - len = (int32_t) strlen( str ); + len = (int16_t) strlen( str ); for ( i = 0; i < len; i++ ) { @@ -2230,6 +2292,8 @@ static void convert_backslash( char *str ) } #endif } + + return; } static void remove_cr( char *str ) @@ -2243,14 +2307,20 @@ static void remove_cr( char *str ) strcpy( pos, pos + 1 ); pos = strchr( pos, '\r' ); } + + return; } -static void clearString( char *str ) +static void clearString( + char *str ) { str[0] = '\0'; + + return; } -static bool isEmptyString( const char *str ) +static bool isEmptyString( + const char *str ) { return str[0] == '\0'; } @@ -2261,17 +2331,18 @@ static bool isEmptyString( const char *str ) * Convert input buffer from WAV/PCM file (int16_t, interleaved) to a format * accepted by the renderer (float, packed) *--------------------------------------------------------------------------*/ -static void convertInputBuffer( const int16_t *intBuffer, - int32_t numIntSamplesPerChannel, - int32_t numFloatSamplesPerChannel, - int32_t numChannels, - float *floatBuffer ) + +static void convertInputBuffer( + const int16_t *intBuffer, + const int16_t numIntSamplesPerChannel, + const int16_t numFloatSamplesPerChannel, + const int16_t numChannels, + float *floatBuffer ) { - int32_t chnl, smpl, i; + int16_t chnl, smpl, i; i = 0; - for ( smpl = 0; smpl < numFloatSamplesPerChannel; ++smpl ) { for ( chnl = 0; chnl < numChannels; ++chnl ) @@ -2288,6 +2359,8 @@ static void convertInputBuffer( const int16_t *intBuffer, ++i; } } + + return; } /*--------------------------------------------------------------------------* @@ -2296,12 +2369,14 @@ static void convertInputBuffer( const int16_t *intBuffer, * Convert output buffer from the renderer (float, packed) to a format ready * for writing to a WAV/PCM file (int16_t, interleaved) *--------------------------------------------------------------------------*/ -static void convertOutputBuffer( const float *floatBuffer, - int32_t numSamplesPerChannel, - int32_t numChannels, - int16_t *intBuffer ) + +static void convertOutputBuffer( + const float *floatBuffer, + const int16_t numSamplesPerChannel, + const int16_t numChannels, + int16_t *intBuffer ) { - int32_t chnl, smpl, i; + int16_t chnl, smpl, i; i = 0; @@ -2314,9 +2389,13 @@ static void convertOutputBuffer( const float *floatBuffer, ++i; } } + + return; } #else -int32_t main( int32_t argc, char **argv ) +int main( + int argc, + char **argv ) { (void) argc; (void) argv; diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index 4f3cd25c0b..6696e184c2 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -6,8 +6,8 @@ import subprocess import pathlib -DURATION = "120" -CFG = "ci_linux.json" +DURATION = "30" +CFG = "ci_linux_ltv.json" SUPPORTED_TESTS = ["CLANG1", "CLANG2", "CLANG3", "VALGRIND"] EP_FILE = "ep_015.g192" GENPATT_CMD = f"gen-patt -tailstat -fer -g192 -gamma 0 -rate 0.15 -tol 0.001 -reset -n {int(DURATION) * 50} {EP_FILE}" @@ -48,9 +48,6 @@ def get_modes(in_format: str) -> list: in_format = "MC_" + in_format + "_b" mode_list = [m for m in output.splitlines() if in_format in m] - if "SBA" in in_format: - # rate switching not implemented yet - mode_list = [m for m in mode_list if not "_rs" in m] return mode_list diff --git a/ci/smoke_test.sh b/ci/smoke_test.sh index b8c4bdd3f0..e3caac3533 100755 --- a/ci/smoke_test.sh +++ b/ci/smoke_test.sh @@ -8,8 +8,5 @@ fi make clean make all -j 8 -# get all modes except SBA rate switching (which is broken currently) -list=$(./scripts/runIvasCodec.py -l | grep -v "SBA.*rs") -./scripts/runIvasCodec.py -p ./scripts/config/ci_linux.json -m $list -U 1 | tee smoke_test_output.txt - -./scripts/runIvasCodec.py -p ./scripts/config/ci_linux.json -m $list -U 1 -D="-fec 15" --decoder_only | tee smoke_test_output_plc.txt +./scripts/runIvasCodec.py -p ./scripts/config/ci_linux.json -U 1 | tee smoke_test_output.txt +./scripts/runIvasCodec.py -p ./scripts/config/ci_linux.json -U 1 -D="-fec 15" --decoder_only | tee smoke_test_output_plc.txt diff --git a/lib_com/cnst.h b/lib_com/cnst.h index e62ef001dc..be668b01c7 100644 --- a/lib_com/cnst.h +++ b/lib_com/cnst.h @@ -132,6 +132,9 @@ enum{ #define MAX_V_MULT_MAT 100 /* maximum array length for the function v_mult_mat() */ +#define SBA_AGC_FORCE_ENABLE 1 +#define SBA_AGC_FORCE_DISABLE 0 +#define SBA_AGC_DEFAULT -1 /*----------------------------------------------------------------------------------* * Layers diff --git a/lib_com/fill_spectrum.c b/lib_com/fill_spectrum.c index c1837d5140..a3dbcf304b 100644 --- a/lib_com/fill_spectrum.c +++ b/lib_com/fill_spectrum.c @@ -90,18 +90,10 @@ void fill_spectrum( const int16_t element_mode /* i : element mode */ ) { -#ifdef FIX_I178_HQ_BUFFER_OVERRUN float CodeBook[L_SPEC48k_EXT]; -#else - float CodeBook[FREQ_LENGTH]; -#endif int16_t cb_size = 0; int16_t last_sfm; -#ifdef FIX_I178_HQ_BUFFER_OVERRUN float CodeBook_mod[L_SPEC48k_EXT]; -#else - float CodeBook_mod[FREQ_LENGTH]; -#endif float norm_adj[NB_SFM]; int16_t high_sfm = 23; int16_t flag_32K_env_hangover; diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 3708e0181c..e0c1e0e501 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -837,11 +837,19 @@ typedef enum { * SBA Constants *----------------------------------------------------------------------------------*/ +#define SBA_FOA_ORDER 1 +#define SBA_HOA2_ORDER 2 +#define SBA_HOA3_ORDER 3 + #define SBA_PLANAR_BITS 1 #define SBA_ORDER_BITS 2 + #define SBA_MIN_BRATE_HOA IVAS_256k #define SBA_NHARM_HOA3 16 #define SBA_T_DESIGN_11_SIZE 70 +#ifdef FIX_SBA_DTX_DECODE_ERROR +#define SBA_DTX_BITRATE_THRESHOLD IVAS_80k +#endif typedef enum { @@ -1325,11 +1333,7 @@ typedef enum #define PANNING_ELE_RESOLUTION 5 #define EFAP_MAX_CHAN_NUM 5 /* Maximum number of channels that constitute a polygon, 4 or 5 */ -#ifdef ALLRAD_OPTIM #define EFAP_MAX_POLY_SET 50 /* Upper bound on number of polygons; with a Speaker setup of 16.0, we obtain 44 polygons/triangles in the matlab implementation. */ -#else -#define EFAP_MAX_POLY_SET 70 /* Upper bound on number of polygons; with a Speaker setup of 26.0, we obtain 54 polygons/triangles in the matlab implementation. */ -#endif #define EFAP_MODE_EFAP 0 /* EFAP Panning */ #define EFAP_MODE_EFIP 1 /* EFIP Panning */ diff --git a/lib_com/ivas_cov_smooth.c b/lib_com/ivas_cov_smooth.c index 0015871287..eaaec6a982 100644 --- a/lib_com/ivas_cov_smooth.c +++ b/lib_com/ivas_cov_smooth.c @@ -169,36 +169,22 @@ void ivas_spar_covar_smooth_enc_close( static void ivas_compute_smooth_cov( ivas_cov_smooth_state_t *hCovState, -#ifndef SBA_SPAR_HARM - ivas_cov_smooth_in_buf_t *pIn_buf, -#endif ivas_filterbank_t *pFb, float *pCov_buf[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *pPrior_cov_buf[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], const float fac, const int16_t start_band, - const int16_t end_band -#ifdef SBA_SPAR_HARM - , + const int16_t end_band, const int16_t num_ch, - const int16_t transient_det -#endif -) + const int16_t transient_det ) { int16_t i, j, k; int16_t prev_idx = hCovState->prior_bank_idx; -#ifndef SBA_SPAR_HARM - int16_t num_ch = pIn_buf->num_ch; -#endif float factor = 0; assert( end_band <= pFb->filterbank_num_bands ); -#ifdef SBA_SPAR_HARM if ( prev_idx == -1 || transient_det == 1 ) -#else - if ( prev_idx == -1 || pIn_buf->reset_cov == 1 ) -#endif { for ( i = 0; i < num_ch; i++ ) { @@ -243,42 +229,23 @@ static void ivas_compute_smooth_cov( void ivas_cov_smooth_process( ivas_cov_smooth_state_t *hCovState, /* i/o: Covariance state handle */ -#ifdef SBA_SPAR_HARM float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_cov_smooth_in_buf_t *pIn_buf, -#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, - const int16_t end_band -#ifdef SBA_SPAR_HARM - , + const int16_t end_band, const int16_t num_ch, - const int16_t transient_det -#endif -) + const int16_t transient_det ) { int16_t i, j; -#ifndef SBA_SPAR_HARM - int16_t num_ch = pIn_buf->num_ch; -#endif int16_t num_bands = end_band - start_band; -#ifdef SBA_SPAR_HARM ivas_compute_smooth_cov( hCovState, pFb, cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band, num_ch, transient_det ); -#else - ivas_compute_smooth_cov( hCovState, pIn_buf, pFb, pIn_buf->cov_real, hCovState->pPrior_cov_real, 1e-20f, start_band, end_band ); -#endif for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < num_ch; j++ ) { -#ifdef SBA_SPAR_HARM mvr2r( &cov_real[i][j][start_band], &hCovState->pPrior_cov_real[i][j][start_band], num_bands ); -#else - mvr2r( &pIn_buf->cov_real[i][j][start_band], &hCovState->pPrior_cov_real[i][j][start_band], num_bands ); -#endif } } diff --git a/lib_com/ivas_error.h b/lib_com/ivas_error.h index 8168a6c6d6..bfc9396f09 100644 --- a/lib_com/ivas_error.h +++ b/lib_com/ivas_error.h @@ -93,6 +93,9 @@ typedef enum IVAS_ERR_WRONG_NUM_CHANNELS, IVAS_ERR_INVALID_BUFFER_SIZE, #endif +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + IVAS_ERR_INVALID_AGC, +#endif /*----------------------------------------* * input data errors * diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 7de6bde693..71622fd939 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -44,9 +44,6 @@ #include "ivas_stat_dec.h" #include "ivas_stat_com.h" #include "ivas_error_utils.h" -#ifdef AGC_ENABLE_FOR_LBR -#include "lib_enc.h" -#endif /* clang-format off */ @@ -108,7 +105,17 @@ ivas_error mct_enc_reconfigure( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ const uint16_t b_nchan_change /* i : flag indicating different channel count */ ); - +#ifdef SBA_BR_SWITCHING +ivas_error ivas_sba_enc_reinit( + Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ +); +#endif +#ifdef SBA_BR_SWITCHING +int16_t get_sba_reinit_flag( + int32_t ivas_total_bitrate, /* i: current bitrate */ + int32_t last_ivas_total_brate /* i: previous bitrate */ +); +#endif ivas_error ivas_sba_enc_reconfigure( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ ); @@ -125,14 +132,12 @@ void ivas_mct_enc_close( MCT_ENC_HANDLE hMCT /* i/o: MCT encoder structure */ ); -#ifdef CORECODER_BITRATE_SWITCHING ivas_error ivas_corecoder_enc_reconfig( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ const int16_t nSCE_old, /* i : number of SCEs in previous frame */ const int16_t nCPE_old, /* i : number of CPEs in previous frame */ const int16_t nchan_transport_old /* i : number of TCs in previous frame */ ); -#endif ivas_error ivas_sce_enc( Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ @@ -206,9 +211,7 @@ ivas_error pre_proc_ivas( Encoder_State *st, /* i/o: encoder state structure */ const int16_t last_element_mode, /* i : last element mode */ const int32_t element_brate, /* i : element bitrate */ -#ifdef CORECODER_BITRATE_SWITCHING const int32_t last_element_brate, /* i : last element bitrate */ -#endif const int16_t input_frame, /* i : frame length */ float old_inp_12k8[], /* i/o: buffer of old input signal */ float old_inp_16k[], /* i/o: buffer of old input signal @ 16kHz */ @@ -333,7 +336,6 @@ void ivas_mct_dec_close( MCT_DEC_HANDLE *hMCT /* i/o: MCT decoder structure */ ); -#ifdef CORECODER_BITRATE_SWITCHING ivas_error ivas_corecoder_dec_reconfig( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int16_t nSCE_old, /* i : number of SCEs in previous frame */ @@ -346,7 +348,6 @@ ivas_error ivas_hp20_dec_reconfig( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ const int16_t nchan_hp20_old /* i : number of HP20 filters in previous frame*/ ); -#endif ivas_error ivas_sce_dec( Decoder_Struct *st_ivas, /* i/o: IVAS decoder structure */ @@ -418,9 +419,7 @@ ivas_error ivas_core_enc( float enerBuffer[CPE_CHANNELS][CLDFB_NO_CHANNELS_MAX], /* i : energy buffer */ float fft_buff[CPE_CHANNELS][2 * L_FFT], /* i : FFT buffer */ const int16_t tdm_SM_flag, /* i : channel combination scheme flag */ -#ifdef CORECODER_BITRATE_SWITCHING const int16_t ivas_format, /* i : IVAS format */ -#endif const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ ); @@ -2169,12 +2168,8 @@ void stereo_decoder_tcx( const int16_t core_l, /* i : core for left channel (TCX20/TCX10) */ const int16_t core_r, /* i : core for right channel (TCX20/TCX10) */ const int16_t igf, /* i : flag for IGF activity */ -#ifdef FIX_TCX10_STEREO_PROC const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ -#else - const int16_t L_frame, /* i : TCX frame length */ -#endif const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ const int16_t last_core_l, /* i : last core for left channel */ const int16_t last_core_r, /* i : last core for right channel */ @@ -3030,10 +3025,8 @@ void ivas_dirac_param_est_enc( float **pp_fr_real, float **pp_fr_imag, const int16_t input_frame -#ifdef SBA_HOA_HBR_IMPROV , const SBA_MODE sba_mode -#endif ); /*----------------------------------------------------------------------------------* @@ -3055,7 +3048,11 @@ void ivas_sba_config( int16_t *nCPE, /* o : number of CPEs */ int16_t *element_mode /* o : element mode of the core coder */ ); - +#ifdef SBA_BR_SWITCHING +ivas_error ivas_sba_dec_reinit( + Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ +); +#endif ivas_error ivas_sba_dec_reconfigure( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ); @@ -3093,13 +3090,11 @@ int16_t ivas_sba_get_nchan_metadata( const int16_t sba_order /* i : Ambisonic (SBA) order */ ); -#ifdef SBA_HOA_HBR_IMPROV /*! r: flag indicating to code SPAR HOA MD for all bands */ int16_t ivas_sba_get_spar_hoa_md_flag( const int16_t sba_order, /* i : Ambisonic (SBA) order */ const int32_t ivas_total_brate /* i : IVAS total bitrate */ ); -#endif void ivas_sba_zero_vert_comp( float sba_data[][L_FRAME48k], /* i/o: SBA data frame */ @@ -3783,9 +3778,12 @@ void ivas_sba_prototype_renderer( /* AGC */ #ifdef AGC_ENABLE_FOR_LBR -int16_t ivas_agc_enc_get_enablement_flag( - IVAS_ENC_AGC agc_configuration, /* i : configuration used when encoder was initialised from cmd line */ - int16_t nchan_transport /* i : number of transport channels */ +/*! r: AGC enable flag */ +int16_t ivas_agc_enc_get_flag( +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + int16_t agc_configuration, /* i : AGC configuration from command-line */ +#endif + int16_t nchan_transport /* i : number of transport channels */ ); #endif @@ -3929,19 +3927,11 @@ void ivas_spar_md_enc_close( ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_state_t *hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ -#ifdef SBA_SPAR_HARM float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_spar_md_enc_in_buf_t *pIn_buf, -#endif BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ -#ifdef SBA_SPAR_HARM int16_t dtx_vad, const int16_t nchan_inp, -#else - const int16_t dtx_silence_mode, -#endif const int16_t sba_order /* i : Ambisonic (SBA) order */ ); @@ -4005,10 +3995,8 @@ ivas_error ivas_spar_md_dec_open( ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ const int16_t num_channels /* i : number of internal channels */ -#ifdef SBA_HOA_HBR_IMPROV , const int16_t sba_order /* i : SBA order */ -#endif ); void ivas_spar_md_dec_close( @@ -4028,7 +4016,8 @@ void ivas_spar_get_parameters( ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ - const int16_t num_channels /* i : number of internal channels */ + const int16_t num_channels, /* i : number of internal channels */ + const int16_t sba_order /* i : SBA order */ ); void ivas_spar_md_dec_process( @@ -4081,24 +4070,16 @@ void ivas_spar_covar_enc_close( void ivas_enc_cov_handler_process( ivas_enc_cov_handler_state_t *hCovEnc, /* i/o: SPAR Covar. encoder handle */ -#ifdef SBA_SPAR_HARM float **ppIn_FR_real, float **ppIn_FR_imag, float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_enc_cov_handler_in_buf_t *pIn_buf, - float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], - float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, const int16_t end_band -#ifdef SBA_SPAR_HARM ,const int16_t nchan_inp, const int16_t dtx_vad, const int16_t transient_det -#endif ); ivas_error ivas_spar_covar_smooth_enc_open( @@ -4115,19 +4096,13 @@ void ivas_spar_covar_smooth_enc_close( void ivas_cov_smooth_process( ivas_cov_smooth_state_t *hCovState, /* i/o: Covariance state handle */ -#ifdef SBA_SPAR_HARM float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_cov_smooth_in_buf_t *pIn_buf, -#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, const int16_t end_band -#ifdef SBA_SPAR_HARM , const int16_t num_ch, const int16_t transient_det -#endif ); /* Transient detector module */ @@ -4876,10 +4851,8 @@ void computeReferencePower_enc( float *reference_power, /* o : Estimated power */ const int16_t enc_param_start_band, /* i : first band to process */ const int16_t num_freq_bands /* i : Number of frequency bands */ -#ifdef SBA_HOA_HBR_IMPROV , const SBA_MODE sba_mode /* i : SBA mode */ -#endif ); diff --git a/lib_com/ivas_rom_com.c b/lib_com/ivas_rom_com.c index 4169e4ee92..c843d5ddc4 100644 --- a/lib_com/ivas_rom_com.c +++ b/lib_com/ivas_rom_com.c @@ -903,57 +903,57 @@ const ivas_spar_br_table_t ivas_spar_br_table_consts[IVAS_SPAR_BR_TABLE_LEN] = { /* When AGC is ON additional (AGC_BITS_PER_CH+1) bits may be taken from each core-coder channel so minimum core-coder bitrate per channel can be min core-coder bitrates as per the table - AGC_BITS_PER_CH */ - { 24400, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{ { 16400, 14850, 24350 } }, + { 24400, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0,{ { 16400, 14850, 24350 } }, { { 15, 1, 5, 1 },{ 15, 1, 3, 1 },{ 7, 1, 3, 1 } }, 0, 0, 0 }, - { 32000, 0, 1, FB, 24000, 1, WYXZ, 1, 0,{ { 24000, 20450, 31950 } }, + { 32000, 0, SBA_FOA_ORDER, FB, 24000, 1, WYXZ, 1, 0,{ { 24000, 20450, 31950 } }, { { 21, 1, 5, 1 },{ 15, 1, 5, 1 },{ 15, 1, 3, 1 } }, 0, 0, 0 }, - { 48000, 0, 1, FB, 24000, 2, WYXZ, 0, 0,{ { 24000, 21000, 31950 },{ 16000, 15000, 20400 } }, + { 48000, 0, SBA_FOA_ORDER, FB, 24000, 2, WYXZ, 0, 0,{ { 24000, 21000, 31950 },{ 16000, 15000, 20400 } }, { { 15, 7, 5, 1 },{ 15, 7, 3, 1 },{ 7, 7, 3, 1 } }, 1, 0, 0 }, - { 64000, 0, 1, FB, 24000, 2, WYXZ, 0, 0,{ { 38000, 34050, 56000 },{ 16000, 15600, 20400 } },{ { 21, 7, 5, 1 },{ 15, 7, 5, 1 },{ 15, 7, 3, 1 } }, 1, 1, 0 }, + { 64000, 0, SBA_FOA_ORDER, FB, 24000, 2, WYXZ, 0, 0,{ { 38000, 34050, 56000 },{ 16000, 15600, 20400 } },{ { 21, 7, 5, 1 },{ 15, 7, 5, 1 },{ 15, 7, 3, 1 } }, 1, 1, 0 }, - { 80000, 0, 1, FB, 24000, 2, WYXZ, 0, 0,{ { 46000, 43000, 56000 },{ 24000, 23000, 31950 } }, + { 80000, 0, SBA_FOA_ORDER, FB, 24000, 2, WYXZ, 0, 0,{ { 46000, 43000, 56000 },{ 24000, 23000, 31950 } }, { { 21, 7, 5, 1 },{ 15, 7, 5, 1 },{ 15, 7, 3, 1 } }, 1, 0, 0 }, - { 96000, 0, 1, FB, 24000, 3, WYXZ, 0, 0,{ { 47000, 42600, 56000 },{ 23000, 22600, 31950 },{ 16000, 15600, 20400 } }, + { 96000, 0, SBA_FOA_ORDER, FB, 24000, 3, WYXZ, 0, 0,{ { 47000, 42600, 56000 },{ 23000, 22600, 31950 },{ 16000, 15600, 20400 } }, { { 21, 9, 9, 1 },{ 21, 7, 5, 1 },{ 21, 7, 5, 1 } }, 1, 0, 0 }, - { 128000, 0, 1, FB, 24000, 3, WYXZ, 0, 0,{ { 55000, 50000, 56000 },{ 36000, 36000, 56000 },{ 27000, 27000, 31950 } }, + { 128000, 0, SBA_FOA_ORDER, FB, 24000, 3, WYXZ, 0, 0,{ { 55000, 50000, 56000 },{ 36000, 36000, 56000 },{ 27000, 27000, 31950 } }, { { 21, 11, 9, 1 },{ 21, 9, 7, 1 },{ 21, 7, 7, 1 } }, 1, 0, 0 }, - { 160000, 0, 1, FB, 24000, 3, WYXZ, 0, 0,{ { 74000, 70900, 112000 },{ 41000, 40050, 56000 },{ 35000, 34050, 56000 } }, + { 160000, 0, SBA_FOA_ORDER, FB, 24000, 3, WYXZ, 0, 0,{ { 74000, 70900, 112000 },{ 41000, 40050, 56000 },{ 35000, 34050, 56000 } }, { { 21, 11, 11, 1 },{ 21, 9, 9, 1 },{ 21, 7, 7, 1 } }, 1, 0, 0 }, - { 192000, 0, 1, FB, 24000, 3, WYXZ, 0, 0,{ { 90000, 87900, 112000 },{ 50000, 48050, 56000 },{ 42000, 41050, 56000 } }, + { 192000, 0, SBA_FOA_ORDER, FB, 24000, 3, WYXZ, 0, 0,{ { 90000, 87900, 112000 },{ 50000, 48050, 56000 },{ 42000, 41050, 56000 } }, { { 21, 11, 11, 1 },{ 21, 9, 9, 1 },{ 21, 7, 7, 1 } }, 1, 0, 0 }, - { 256000, 0, 1, FB, 24000, 4, WYXZ, 0, 0,{ { 90000, 85000, 112000 },{ 70000, 69000, 112000 },{ 50000, 48950, 56000 },{ 36400, 35600, 56000 } }, + { 256000, 0, SBA_FOA_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 90000, 85000, 112000 },{ 70000, 69000, 112000 },{ 50000, 48950, 56000 },{ 36400, 35600, 56000 } }, { { 31, 1, 1, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 256000, 0, 2, FB, 24000, 4, WYXZ, 0, 0,{ { 84650, 83000, 112000 },{ 65850, 64550, 56000 },{ 47000, 46100, 48000 },{ 28200, 27650, 40000 } }, + { 256000, 0, SBA_HOA2_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 84650, 83000, 112000 },{ 65850, 64550, 56000 },{ 47000, 46100, 48000 },{ 28200, 27650, 40000 } }, { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 256000, 0, 3, FB, 24000, 4, WYXZ, 0, 0,{ { 76300, 73550, 112000 },{ 59350, 57200, 56000 },{ 42400, 40850, 48000 },{ 25450, 24500, 40000 } }, + { 256000, 0, SBA_HOA3_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 76300, 73550, 112000 },{ 59350, 57200, 56000 },{ 42400, 40850, 48000 },{ 25450, 24500, 40000 } }, { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 31, 1, 1, 1 } }, 1, 2, 0 }, { 384000, 0, 1, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 100000, 100000, 128000 },{ 79850, 79850, 104000 },{ 66600, 66600, 104000 } }, // not yet optimized { { 31, 1, 1, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 384000, 0, 2, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 105350, 103300, 112000 },{ 75200, 73750, 96000 },{ 45100, 44250, 48000 } }, // just added as a place holder, not necessarily operational + { 384000, 0, SBA_HOA2_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 105350, 103300, 112000 },{ 75200, 73750, 96000 },{ 45100, 44250, 48000 } }, // just added as a place holder, not necessarily operational { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 384000, 0, 3, FB, 24000, 4, WYXZ, 0, 0,{ { 124300, 121550, 128000 },{ 96700, 94550, 112000 },{ 69050, 67500, 96000 },{ 41450, 40500, 48000 } }, // just added as a place holder, not necessarily operational + { 384000, 0, SBA_HOA3_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 124300, 121550, 128000 },{ 96700, 94550, 112000 },{ 69050, 67500, 96000 },{ 41450, 40500, 48000 } }, // just added as a place holder, not necessarily operational { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, { 512000, 0, 1, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 128000, 128000, 128000 }, {118450, 118450, 128000 } }, // not yet optimized { { 31, 1, 1, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 512000, 0, 2, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 97700, 93300, 128000 } }, // not yet optimized + { 512000, 0, SBA_HOA2_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 97700, 93300, 128000 } }, // not yet optimized { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, - { 512000, 0, 3, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 127200, 122550, 128000 },{ 76300, 73550, 128000 } }, // not yet optimized + { 512000, 0, SBA_HOA3_ORDER, FB, 24000, 4, WYXZ, 0, 0,{ { 128000, 128000, 128000 },{ 128000, 128000, 128000 },{ 127200, 122550, 128000 },{ 76300, 73550, 128000 } }, // not yet optimized { { 31, 11, 11, 1 },{ 1, 1, 1, 1 },{ 1, 1, 1, 1 } }, 1, 2, 0 }, }; diff --git a/lib_com/ivas_sba_config.c b/lib_com/ivas_sba_config.c index cf22cf38ff..5b6cfd48cb 100644 --- a/lib_com/ivas_sba_config.c +++ b/lib_com/ivas_sba_config.c @@ -71,8 +71,26 @@ SBA_MODE ivas_sba_mode_select( return sba_mode; } - - +#ifdef SBA_BR_SWITCHING +/*-------------------------------------------------------------------* + * get_sba_reinit_flag() + * + * Get SBA reinitialisation flag + *-------------------------------------------------------------------*/ +int16_t get_sba_reinit_flag( + int32_t ivas_total_bitrate, /* i : Current bitrate */ + int32_t last_ivas_total_brate /* i : Previous bitrate */ +) +{ + int16_t sba_reinit_flag; + sba_reinit_flag = 0; + if ( ivas_total_bitrate != last_ivas_total_brate && ( last_ivas_total_brate > IVAS_SID_5k2 ) && ( ivas_total_bitrate > IVAS_SID_5k2 ) ) + { + sba_reinit_flag = 1; + } + return sba_reinit_flag; +} +#endif /*-------------------------------------------------------------------* * ivas_sba_config() * @@ -194,7 +212,7 @@ int16_t ivas_sba_get_analysis_order( if ( ivas_total_brate < SBA_MIN_BRATE_HOA ) { /* Hard coding the sba_analysis_order as 1 as higher not supported below SBA_MIN_BRATE_HOA bitrate */ - sba_analysis_order = 1; + sba_analysis_order = SBA_FOA_ORDER; } return sba_analysis_order; @@ -213,15 +231,15 @@ int16_t ivas_sba_get_order_transport( { int16_t sba_order; - sba_order = 1; + sba_order = SBA_FOA_ORDER; if ( nchan_transport > 6 ) { - sba_order = 3; + sba_order = SBA_HOA3_ORDER; } else if ( nchan_transport > 4 ) { - sba_order = 2; + sba_order = SBA_HOA2_ORDER; } return ( sba_order ); @@ -268,7 +286,7 @@ int16_t ivas_sba_get_nchan_metadata( { int16_t nb_channels; - if ( sba_order == 1 ) + if ( sba_order == SBA_FOA_ORDER ) { nb_channels = FOA_CHANNELS; } @@ -281,7 +299,6 @@ int16_t ivas_sba_get_nchan_metadata( return ( nb_channels ); } -#ifdef SBA_HOA_HBR_IMPROV /*-------------------------------------------------------------------* * ivas_sba_get_spar_hoa_md_flag() * @@ -307,7 +324,6 @@ int16_t ivas_sba_get_spar_hoa_md_flag( return spar_hoa_md_flag; } -#endif /*-------------------------------------------------------------------* * ivas_sba_zero_vert_comp() diff --git a/lib_com/ivas_spar_com.c b/lib_com/ivas_spar_com.c index b5821e4632..89b59d9392 100644 --- a/lib_com/ivas_spar_com.c +++ b/lib_com/ivas_spar_com.c @@ -1667,8 +1667,8 @@ void ivas_get_spar_md_from_dirac( remix_order = remix_order_set[hSpar_md_cfg->remix_unmix_order]; - num_ch = 2 * order + 2; - hoa2_ch = 6; + num_ch = ivas_sba_get_nchan_metadata( order ); + hoa2_ch = ivas_sba_get_nchan_metadata( SBA_HOA2_ORDER ); foa_ch = FOA_CHANNELS; diff_norm_order1 = 3.0f; diff_norm_order2 = 5.0f; @@ -1687,6 +1687,7 @@ void ivas_get_spar_md_from_dirac( { float P_norm[3]; int16_t idx; + ndm = hSpar_md_cfg->num_dmx_chans_per_band[start_band - 1]; P_norm[0] = 0.0f; for ( i = 0; i < max( 0, foa_ch - ndm ); i++ ) @@ -1737,11 +1738,6 @@ void ivas_get_spar_md_from_dirac( /*SPAR from DirAC*/ set_f( response_avg, 0.0f, MAX_OUTPUT_CHANNELS ); -#ifndef SBA_HOA_HBR_IMPROV - set_f( hSpar_md->band_coeffs[band + i_ts * IVAS_MAX_NUM_BANDS].pred_re, 0.0f, IVAS_SPAR_MAX_CH - 1 ); - set_f( &hSpar_md->band_coeffs[band + i_ts * IVAS_MAX_NUM_BANDS].C_re[0][0], 0.0f, ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ) * ( IVAS_SPAR_MAX_DMX_CHS - 1 ) ); - set_f( &hSpar_md->band_coeffs[band + i_ts * IVAS_MAX_NUM_BANDS].P_re[0], 0.0f, ( IVAS_SPAR_MAX_CH - 1 ) ); -#endif if ( n_ts > 1 ) { ivas_dirac_dec_get_response( (int16_t) azi_dirac[band][i_ts], (int16_t) ele_dirac[band][i_ts], response_avg, order ); @@ -1759,7 +1755,7 @@ void ivas_get_spar_md_from_dirac( int16_t num_ch_order, hoa2_ch_order; num_ch_order = ivas_sba_get_nchan( order, 0 ); - hoa2_ch_order = 9; + hoa2_ch_order = ivas_sba_get_nchan( SBA_HOA2_ORDER, 0 ); for ( ch = 0; ch < num_ch_order; ch++ ) { @@ -2114,17 +2110,7 @@ void ivas_spar_set_bitrate_config( pSpar_md_cfg->agc_bits_ch_idx = ivas_spar_br_table_consts[table_idx].agc_bits_ch_idx; ivas_spar_get_uniform_quant_strat( pSpar_md_cfg, table_idx ); - if ( pSpar_md_cfg->quant_strat->C.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->C.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->PR.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->PR.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->P_c.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->P_c.q_levels[1] == 0 || pSpar_md_cfg->quant_strat->P_r.q_levels[0] == 0 || pSpar_md_cfg->quant_strat->P_r.q_levels[1] == 0 ) - { - pSpar_md_cfg->gen_bs = 0; - } - else - { - if ( 0 != pSpar_md_cfg->gen_bs ) - { - pSpar_md_cfg->quant_strat_bits = ivas_get_bits_to_encode( MAX_QUANT_STRATS ); - } - } + pSpar_md_cfg->quant_strat_bits = ivas_get_bits_to_encode( MAX_QUANT_STRATS ); /* BLOCK: getEntropyCoderModels */ @@ -2136,18 +2122,19 @@ void ivas_spar_set_bitrate_config( ivas_total_brate = ivas_spar_br_table_consts[table_idx].ivas_total_brate; sba_order = ivas_spar_br_table_consts[table_idx].sba_order; - ivas_get_spar_table_idx( ivas_total_brate, sba_order, ivas_spar_br_table_consts[table_idx].bwidth, &code, &length ); + ivas_get_spar_table_idx( ivas_total_brate, sba_order, ivas_spar_br_table_consts[table_idx].bwidth, &length, &code ); for ( i = 0; i < pSpar_md_cfg->nchan_transport; i++ ) { total_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][0] / FRAMES_PER_SEC ); max_bits += (int16_t) ( ivas_spar_br_table_consts[table_idx].core_brs[i][1] / FRAMES_PER_SEC ); } - pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - total_bits; + pSpar_md_cfg->tgt_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - total_bits; pSpar_md_cfg->max_bits_per_blk = (int16_t) ( ivas_total_brate / FRAMES_PER_SEC ) - IVAS_FORMAT_SIGNALING_NBITS_SBA - SBA_PLANAR_BITS - SBA_ORDER_BITS - length - max_bits; md_coding_bits_header = SPAR_NUM_CODING_STRAT_BITS + pSpar_md_cfg->quant_strat_bits; + pSpar_md_cfg->tgt_bits_per_blk -= md_coding_bits_header; pSpar_md_cfg->max_bits_per_blk -= md_coding_bits_header; @@ -2156,9 +2143,11 @@ void ivas_spar_set_bitrate_config( pSpar_md_cfg->tgt_bits_per_blk += md_coding_bits_header; pSpar_md_cfg->max_bits_per_blk += md_coding_bits_header; + return; } + #ifdef FIX_I1_113 /*-----------------------------------------------------------------------------------------* * Function ivas_spar_bitrate_dist() diff --git a/lib_com/ivas_stat_com.h b/lib_com/ivas_stat_com.h index 026191559b..8dd59f1d18 100644 --- a/lib_com/ivas_stat_com.h +++ b/lib_com/ivas_stat_com.h @@ -229,7 +229,6 @@ typedef struct ivas_spar_md_com_cfg int16_t active_w; int16_t remix_unmix_order; ivas_quant_strat_t quant_strat[MAX_QUANT_STRATS]; - int16_t gen_bs; int16_t quant_strat_bits; int16_t nchan_transport; int16_t num_quant_strats; @@ -352,15 +351,6 @@ typedef struct ivas_cov_smooth_cfg_t } ivas_cov_smooth_cfg_t; -#ifndef SBA_SPAR_HARM -typedef struct ivas_cov_smooth_in_buf_t -{ - float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; - int16_t num_ch; - int16_t reset_cov; - -} ivas_cov_smooth_in_buf_t; -#endif /* SPAR bitrate constant table structure */ typedef struct ivas_spar_br_table_t diff --git a/lib_com/ivas_stereo_psychlpc_com.c b/lib_com/ivas_stereo_psychlpc_com.c index 3cbca73cc0..8a50caaa29 100644 --- a/lib_com/ivas_stereo_psychlpc_com.c +++ b/lib_com/ivas_stereo_psychlpc_com.c @@ -68,14 +68,14 @@ static void SpectrumWeighting_Init( * initialize a PsychoacousticParameters structure *-------------------------------------------------------------------*/ - ivas_error - PsychoacousticParameters_Init( - const int32_t sr_core, /* i : sampling rate of core-coder */ - const int16_t nBins, /* i : Number of bins (spectral lines) */ - const int8_t nBands, /* i : Number of spectrum subbands */ - const int16_t isTCX20, /* i : Flag indicating if the subband division is for TCX20 or TCX10 */ - const int16_t isWarped, /* i : Flag indicating if the scale is linear or warped */ - PsychoacousticParameters *pPsychParams ) +ivas_error +PsychoacousticParameters_Init( + const int32_t sr_core, /* i : sampling rate of core-coder */ + const int16_t nBins, /* i : Number of bins (spectral lines) */ + const int8_t nBands, /* i : Number of spectrum subbands */ + const int16_t isTCX20, /* i : Flag indicating if the subband division is for TCX20 or TCX10 */ + const int16_t isWarped, /* i : Flag indicating if the scale is linear or warped */ + PsychoacousticParameters *pPsychParams ) { if ( pPsychParams == NULL ) diff --git a/lib_com/options.h b/lib_com/options.h index 884fb23615..71b4d7f6f0 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -126,6 +126,7 @@ #endif /*#define SPAR_HOA_DBG*/ /* SPAR HOA debug statements */ /*#define DEBUG_BINAURAL_FILTER_DESIGN*/ /* debugging of Crend binaural filter design */ +#define DEBUG_AGC_ENCODER_CMD_OPTION /* Ability to force enable or disable AGC behaviour in DIRAC/SPAR via command line option */ #endif /* #################### End DEBUGGING switches ############################ */ @@ -143,25 +144,25 @@ /*#define ITD_WINNER_GAIN_MODIFY */ /* ITD optimization - WORK IN PROGRESS */ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ /*#define FIX_I1_113*/ /* under review : MCT bit distribution optimization for SBA high bitrates*/ - -#define FIX_I13_TCX_TNS_ISSUE /* Issue 13: Fix reported artifacts. Bug in TNS with TCX5 */ -#define FIX_TCX10_STEREO_PROC /* Issue 11 */ -#define CORECODER_BITRATE_SWITCHING /* Issue 133: support bitrate switching in core-coder */ -#define ISM_BITRATE_SWITCHING /* Issue 115: Support for Bitrate Switching in ISM */ -#define SBA_SPAR_HARM /* Issue 92: maintenance of the SBA SPAR functions */ -#define FIX_155_HP20_ISSUE /* Issue 155: apply hp20 on all input channels instead of just 2 channels */ -#define EFAP_FIX_POLY /* Issue 167: fix bug in EFAP polygon selection */ -#define SBA_HOA_HBR_IMPROV /* issue 91: Improvements to SBA high bitrate HOA3 coding */ -#define ALLRAD_OPTIM /* Issue 159: Optimize memory allocation for ALLRAD */ -#define FIX_I178_HQ_BUFFER_OVERRUN /* issue 178: Buffer overrun in HQ core decoder -- spectral filling buffer did not account for extended transition frame in IVAS */ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ #define EXT_RENDERER /* FhG: external renderer library and standalone application */ #define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ +#define SPAR_STEREO_NO_DIRAC /* Issue 180: skip DirAC processing channels for stereo output */ #define AGC_TUNING_IMPROVEMENT /* Issue 168: Enable AGC for low bit rate (1 TC) */ #ifdef AGC_TUNING_IMPROVEMENT #define AGC_ENABLE_FOR_LBR /* Issue 168: Enable AGC for low bit rate (1 TC) */ #endif +#define FIX_I173_I174 /* Issues 173 and 174: Remove frame and subframe index from ISm metadata and headtracking respectively. */ +#define FIX_TCX_DEC_RECONF_BFI +#define FIX_SBA_DTX_DECODE_ERROR /* Issue 176: SBA decoder error with DTX at 80kbps SWB, Issue 21: SBA front-VAD threshold (203) */ +#define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ +/*#define FIX_MCT_PLC_RECOVERY*/ /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ +#define FIX_MSAN_ERROR_STEREO_RATE_SWITCHING /* addresses Issue 177 */ +#define SBA_BR_SWITCHING /* Issue 114: Changes for sba bit rate switching*/ +#define FIX_AGC_WINFUNC_MEMORY /* Issue 62: lower agc_com.winFunc memory consumption */ + + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_com/vlpc_2st_com.c b/lib_com/vlpc_2st_com.c index f027ecd8ea..86fdf68c5f 100644 --- a/lib_com/vlpc_2st_com.c +++ b/lib_com/vlpc_2st_com.c @@ -52,8 +52,7 @@ void lsf_weight_2st( const float *lsfq, float *w, const int16_t mode, - const int32_t sr_core -) + const int32_t sr_core ) { int16_t i; float d[M + 1]; diff --git a/lib_debug/mem_count.c b/lib_debug/mem_count.c index b12639ae3f..ca4832399f 100644 --- a/lib_debug/mem_count.c +++ b/lib_debug/mem_count.c @@ -93,8 +93,11 @@ typedef INT64 int64_t; /* This is the maximum number of allocations for which to keep information. It can be increased if required. */ +#ifdef SBA_BR_SWITCHING +#define MAX_INFO_RECORDS 8000 +#else #define MAX_INFO_RECORDS 3000 - +#endif /* This is the length after which the function name will be truncated when the summary is printed. */ #define MAX_FUNCTION_NAME_LENGTH 18 diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index c74564e1f7..20e4dedbe3 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -152,7 +152,11 @@ void decoder_tcx_post( if ( bfi && !st->use_partial_copy ) { /* run lpc gain compensation not for waveform adjustment */ +#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS + if ( !st->enablePlcWaveadjust || ( st->hPlcInfo != NULL && st->hPlcInfo->concealment_method == TCX_TONAL ) ) +#else if ( !st->enablePlcWaveadjust || st->hPlcInfo->concealment_method == TCX_TONAL ) +#endif { float gainHelperFB = hTcxDec->gainHelper; float stepCompensateFB = hTcxDec->stepCompensate * st->L_frame / hTcxDec->L_frameTCX; @@ -1465,12 +1469,6 @@ void decoder_tcx_tns( isTCX5 = 1; tcx5SpectrumDeinterleaving( L >> 1, x ); -#ifndef FIX_I13_TCX_TNS_ISSUE - if ( hTcxCfg->fIsTNSAllowed && fUseTns != 0 && bfi != 1 && tnsData->tnsOnWhitenedSpectra == whitenedDomain ) - { - tcx5TnsGrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x ); - } -#endif } } @@ -1488,12 +1486,10 @@ void decoder_tcx_tns( /* Apply TNS to get the reconstructed signal */ SetTnsConfig( hTcxCfg, L_frame_glob == st->L_frame, ( st->last_core == ACELP_CORE ) && ( frame_cnt == 0 ) ); -#ifdef FIX_I13_TCX_TNS_ISSUE if ( ( L_frame == st->L_frame >> 1 ) && st->tcxonly && isTCX5 ) { tcx5TnsGrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x ); } -#endif ApplyTnsFilter( hTcxCfg->pCurrentTnsConfig, tnsData, x, 0 ); #ifdef DEBUG_PLOT @@ -1502,9 +1498,6 @@ void decoder_tcx_tns( if ( ( L_frame == st->L_frame >> 1 ) && st->tcxonly && isTCX5 ) { -#ifndef FIX_I13_TCX_TNS_ISSUE - tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); -#else if ( st->element_mode == EVS_MONO || L_spec < L_frameTCX ) /* TBC: this is temporary to maintain EVS BE, this is a bug and should be fixed also for EVS (see issue 13) */ { tcx5TnsUngrouping( L_frameTCX >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); @@ -1513,7 +1506,6 @@ void decoder_tcx_tns( { tcx5TnsUngrouping( L >> 1, hTcxCfg->tnsConfig[0][0].iFilterBorders[0] >> 1, x, DEC ); } -#endif } } diff --git a/lib_dec/igf_dec.c b/lib_dec/igf_dec.c index f876391b2d..2cded75928 100644 --- a/lib_dec/igf_dec.c +++ b/lib_dec/igf_dec.c @@ -679,8 +679,8 @@ static void IGF_appl( float *pSpectralData, /* i/o: Q31 | MDCT spectrum */ const float *igf_spec, /* i : Q31 | prepared IGF spectrum */ float *virtualSpec, /* o : Q31 | virtual IGF spectrum, used for temp flattening */ - int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ - const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ + int16_t *flag_sparse, /* o : Q0 | temp flattening indicator */ + const int16_t bfi_apply_damping /* i : flag to indicate if damping for lost frames should be applied */ ) { H_IGF_GRID hGrid; @@ -1240,8 +1240,7 @@ void IGFDecApplyStereo( const int16_t *coreMsMask, const int16_t restrict_hopsize, const int16_t bfi, /* i : frame loss == 1, frame good == 0 */ - const int16_t bfi_apply_damping -) + const int16_t bfi_apply_damping ) { IGF_DEC_PRIVATE_DATA_HANDLE hPrivateDataL, hPrivateDataR; H_IGF_GRID hGrid; diff --git a/lib_dec/init_dec.c b/lib_dec/init_dec.c index 4f022e2811..4b74ccebb9 100644 --- a/lib_dec/init_dec.c +++ b/lib_dec/init_dec.c @@ -661,7 +661,11 @@ ivas_error init_decoder( * Mode 2 initialization *-----------------------------------------------------------------*/ +#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS + if ( st->element_mode == EVS_MONO ) +#else if ( idchan == 0 && st->element_mode != IVAS_CPE_MDCT ) +#endif { if ( ( st->hPlcInfo = (T_PLCInfo_HANDLE) count_malloc( sizeof( T_PLCInfo ) ) ) == NULL ) { @@ -685,8 +689,9 @@ ivas_error init_decoder( st->hTECDec = NULL; } +#ifndef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS // the initialziation is done in open_decoder_LPD() st->enablePlcWaveadjust = 0; - +#endif /* Init Core Decoder */ open_decoder_LPD( st, st->total_brate, st->last_total_brate, st->bwidth, 0, st->element_mode, 1 ); diff --git a/lib_dec/ivas_agc_dec.c b/lib_dec/ivas_agc_dec.c index 81039651d8..e522574bb2 100644 --- a/lib_dec/ivas_agc_dec.c +++ b/lib_dec/ivas_agc_dec.c @@ -98,7 +98,11 @@ ivas_error ivas_spar_agc_dec_open( ) { ivas_agc_dec_state_t *hAgc; +#ifdef FIX_AGC_WINFUNC_MEMORY + int16_t output_frame, delay; +#else int16_t output_frame; +#endif if ( ( hAgc = (ivas_agc_dec_state_t *) count_malloc( sizeof( ivas_agc_dec_state_t ) ) ) == NULL ) { @@ -106,8 +110,15 @@ ivas_error ivas_spar_agc_dec_open( } output_frame = (int16_t) ( output_Fs / FRAMES_PER_SEC ); +#ifdef FIX_AGC_WINFUNC_MEMORY + delay = NS2SA( output_Fs, ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) ); +#endif +#ifdef FIX_AGC_WINFUNC_MEMORY + if ( ( hAgc->agc_com.winFunc = (float *) count_malloc( sizeof( float ) * ( output_frame - delay ) ) ) == NULL ) +#else if ( ( hAgc->agc_com.winFunc = (float *) count_malloc( sizeof( float ) * output_frame ) ) == NULL ) +#endif { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for AGC decoder" ); } @@ -122,7 +133,11 @@ ivas_error ivas_spar_agc_dec_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for AGC decoder" ); } +#ifdef FIX_AGC_WINFUNC_MEMORY + ivas_agc_dec_init( hAgc, output_frame, delay ); +#else ivas_agc_dec_init( hAgc, output_frame, NS2SA( output_Fs, ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) ) ); +#endif *hAgcDec = hAgc; diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index fd5d5b3c1e..5c189b7d32 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -181,13 +181,32 @@ ivas_error ivas_core_dec( st->flagGuidedAcelp = 0; } +#ifdef FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS +#ifdef FIX_MCT_PLC_RECOVERY + if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->hTcxDec != NULL ) +#else + if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) && st->hTcxDec != NULL && hMCT == NULL ) +#endif + { + float gain; + + gain = st->hTcxDec->conceal_eof_gain * st->last_concealed_gain_syn_deemph; + v_multc( st->hHQ_core->old_out, gain, st->hHQ_core->old_out, st->hTcxDec->L_frameTCX ); + v_multc( st->hHQ_core->old_outLB, gain, st->hHQ_core->old_outLB, st->L_frame ); + + if ( !st->hTcxCfg->last_aldo ) + { + v_multc( st->hTcxDec->syn_OverlFB, gain, st->hTcxDec->syn_OverlFB, st->hTcxCfg->tcx_mdct_window_lengthFB ); + v_multc( st->hTcxDec->syn_Overl, gain, st->hTcxDec->syn_Overl, st->hTcxCfg->tcx_mdct_window_length ); + } + } +#else /* PLC: [TCX: Fade-out-recovery] - overlapping part needs to be attenuated for first good frame */ if ( !st->bfi && st->prev_bfi && ( st->last_core_bfi == TCX_20_CORE || st->last_core_bfi == TCX_10_CORE ) ) { float gain; - gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : - ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain : 0.0f; + gain = ( st->element_mode == IVAS_CPE_MDCT ) ? st->hTcxDec->conceal_eof_gain : ( st->hPlcInfo != NULL ) ? st->hPlcInfo->recovery_gain : 0.0f; if ( ( st->element_mode == IVAS_CPE_MDCT && hMCT == NULL ) || ( st->hPlcInfo != NULL ) ) { @@ -201,6 +220,7 @@ ivas_error ivas_core_dec( } } } +#endif set_f( voice_factors[n], 0.f, NB_SUBFR16k ); set_f( hb_synth[n], 0.0f, L_FRAME48k ); diff --git a/lib_dec/ivas_corecoder_dec_reconfig.c b/lib_dec/ivas_corecoder_dec_reconfig.c index cebd170100..b11ba6cd39 100644 --- a/lib_dec/ivas_corecoder_dec_reconfig.c +++ b/lib_dec/ivas_corecoder_dec_reconfig.c @@ -46,7 +46,6 @@ #include "wmops.h" -#ifdef CORECODER_BITRATE_SWITCHING /*-------------------------------------------------------------------* * ivas_corecoder_dec_reconfig() * @@ -272,9 +271,7 @@ ivas_error ivas_corecoder_dec_reconfig( *-----------------------------------------------------------------*/ /// VE: this could be merged with part of ivas_init_decoder() -#ifdef ISM_BITRATE_SWITCHING if ( st_ivas->ivas_format == SBA_FORMAT ) -#endif { if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->nchan_transport == 1 ) { @@ -401,4 +398,3 @@ ivas_error ivas_hp20_dec_reconfig( return error; } -#endif diff --git a/lib_dec/ivas_dirac_dec.c b/lib_dec/ivas_dirac_dec.c index ec9a712065..d7feb33256 100644 --- a/lib_dec/ivas_dirac_dec.c +++ b/lib_dec/ivas_dirac_dec.c @@ -234,13 +234,13 @@ ivas_error ivas_dirac_dec_config( if ( hDirAC->hOutSetup.ambisonics_order == -1 ) { - hDirAC->hOutSetup.ambisonics_order = 3; /* Order 3 is used by default in DirAC for SHD processing */ + hDirAC->hOutSetup.ambisonics_order = SBA_HOA3_ORDER; /* Order 3 is used by default in DirAC for SHD processing */ if ( hDirAC->hOutSetup.output_config == AUDIO_CONFIG_MONO || hDirAC->hOutSetup.output_config == AUDIO_CONFIG_STEREO ) { - hDirAC->hOutSetup.ambisonics_order = 1; + hDirAC->hOutSetup.ambisonics_order = SBA_FOA_ORDER; } } - else if ( hDirAC->hOutSetup.ambisonics_order >= 1 ) + else if ( hDirAC->hOutSetup.ambisonics_order >= SBA_FOA_ORDER ) { mvr2r( ls_azimuth_4d4, ls_azimuth, DIRAC_HOA_RENDERING_NUM_VIRT_DECORR_LS ); mvr2r( ls_elevation_4d4, ls_elevation, DIRAC_HOA_RENDERING_NUM_VIRT_DECORR_LS ); diff --git a/lib_dec/ivas_dirac_dec_binaural_functions.c b/lib_dec/ivas_dirac_dec_binaural_functions.c index ca9f0a4587..1418193139 100644 --- a/lib_dec/ivas_dirac_dec_binaural_functions.c +++ b/lib_dec/ivas_dirac_dec_binaural_functions.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include "options.h" #include @@ -37,7 +37,7 @@ #include "prot.h" #include "ivas_prot.h" #include "ivas_cnst.h" -#include "ivas_rom_binauralRenderer.h" +#include "ivas_rom_binauralRenderer.h" // VE2AT: what about to put these includes ust into ivas_rom_rend.c ? #include "ivas_rom_dec.h" #ifdef DEBUGGING #include "debug.h" diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index e3849dfbe0..5cc318b86f 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -69,7 +69,6 @@ ivas_error ivas_dec_setup( Decoder_State *st; int32_t ivas_total_brate; ivas_error error; - error = IVAS_ERR_OK; num_bits_read = 0; @@ -128,10 +127,24 @@ ivas_error ivas_dec_setup( num_bits_read += SBA_ORDER_BITS; if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->hDecoderConfig->last_ivas_total_brate && ivas_total_brate > IVAS_SID_5k2 ) { - if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) +#ifdef SBA_BR_SWITCHING + if ( get_sba_reinit_flag( ivas_total_brate, st_ivas->hDecoderConfig->last_ivas_total_brate ) ) { - return error; + if ( ( error = ivas_sba_dec_reinit( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else + { +#endif + if ( ( error = ivas_sba_dec_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } +#ifdef SBA_BR_SWITCHING } +#endif } else { @@ -410,7 +423,7 @@ static ivas_error ivas_read_format( // TBD: needs more work for HOA if ( st_ivas->sba_analysis_order == 0 ) { - st_ivas->sba_analysis_order = 1; + st_ivas->sba_analysis_order = SBA_FOA_ORDER; } if ( idx == 1 ) { @@ -790,7 +803,11 @@ ivas_error ivas_init_decoder( return error; } - if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA +#ifdef SPAR_STEREO_NO_DIRAC + && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_MONO +#endif + ) { if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { @@ -887,9 +904,7 @@ ivas_error ivas_init_decoder( } st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ -#ifdef CORECODER_BITRATE_SWITCHING st_ivas->hCPE[0]->hCoreCoder[1] = NULL; -#endif } if ( st_ivas->nCPE > 1 ) @@ -1087,9 +1102,7 @@ ivas_error ivas_init_decoder( } st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ -#ifdef CORECODER_BITRATE_SWITCHING st_ivas->hCPE[0]->hCoreCoder[1] = NULL; -#endif } /* set CNA/CNG flags */ diff --git a/lib_dec/ivas_ism_param_dec.c b/lib_dec/ivas_ism_param_dec.c index c6c1f99c9c..8ebf27afb5 100644 --- a/lib_dec/ivas_ism_param_dec.c +++ b/lib_dec/ivas_ism_param_dec.c @@ -1004,7 +1004,6 @@ void ivas_param_ism_params_to_masa_param_mapping( } -#ifdef ISM_BITRATE_SWITCHING /*-------------------------------------------------------------------------* * ivas_ism_bitrate_switching() * @@ -1018,9 +1017,6 @@ static ivas_error ivas_ism_bitrate_switching( const int16_t num_obj /* i : number of objects in the bitstream */ ) { -#ifndef CORECODER_BITRATE_SWITCHING - int16_t sce_id; -#endif ivas_error error; int32_t element_brate_tmp[MAX_NUM_OBJECTS]; @@ -1029,85 +1025,9 @@ static ivas_error ivas_ism_bitrate_switching( ivas_ism_config( st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, num_obj, NULL, NULL, NULL, element_brate_tmp, NULL, NULL ); st_ivas->nSCE = st_ivas->nchan_transport; -#ifdef CORECODER_BITRATE_SWITCHING ivas_corecoder_dec_reconfig( st_ivas, nchan_transport_old, 0, nchan_transport_old, 0 ); -#else - if ( st_ivas->nchan_transport > nchan_transport_old ) - { - /* Initialize for new bitrate */ - for ( sce_id = 0; sce_id < nchan_transport_old; sce_id++ ) - { - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - /* Initialize some memories */ - for ( sce_id = nchan_transport_old; sce_id < st_ivas->nchan_transport; sce_id++ ) - { - if ( ( error = create_sce_dec( st_ivas, sce_id, element_brate_tmp[sce_id] ) ) != IVAS_ERR_OK ) - { - return error; - } - } - } - else - { - /* Initialize for new bitrate */ - for ( sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++ ) - { - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Destroy the core coder memory */ - for ( ; sce_id < nchan_transport_old; sce_id++ ) - { - destroy_sce_dec( st_ivas->hSCE[sce_id] ); - st_ivas->hSCE[sce_id] = NULL; - } - } -#endif - -#ifdef CORECODER_BITRATE_SWITCHING ivas_hp20_dec_reconfig( st_ivas, nchan_transport_old ); -#else - /* destroy the memory of hp20*/ - if ( st_ivas->mem_hp20_out != NULL ) - { - for ( sce_id = 0; sce_id < nchan_transport_old; sce_id++ ) - { - count_free( st_ivas->mem_hp20_out[sce_id] ); - st_ivas->mem_hp20_out[sce_id] = NULL; - } - count_free( st_ivas->mem_hp20_out ); - st_ivas->mem_hp20_out = NULL; - } - - /* re initialize the memory of hp20 */ - /* set number of input channels used for analysis/coding */ - - if ( st_ivas->nchan_transport > 0 ) - { - if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( st_ivas->nchan_transport * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - } - else - { - st_ivas->mem_hp20_out = NULL; - } - - for ( sce_id = 0; sce_id < st_ivas->nchan_transport; sce_id++ ) - { - if ( ( st_ivas->mem_hp20_out[sce_id] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - set_f( st_ivas->mem_hp20_out[sce_id], 0.0f, L_HP20_MEM ); - } -#endif /* Initialize the needed renderer struct and destroy the unnecessary renderer struct */ @@ -1215,7 +1135,6 @@ static ivas_error ivas_ism_bitrate_switching( return error; } -#endif /*------------------------------------------------------------------------- * ivas_ism_dec_config() @@ -1233,9 +1152,7 @@ ivas_error ivas_ism_dec_config( int32_t ivas_total_brate; ISM_MODE last_ism_mode; ivas_error error; -#ifdef ISM_BITRATE_SWITCHING int16_t nchan_transport_old; -#endif error = IVAS_ERR_OK; @@ -1243,14 +1160,12 @@ ivas_error ivas_ism_dec_config( /* store last frame ISM mode */ last_ism_mode = st_ivas->ism_mode; -#ifdef ISM_BITRATE_SWITCHING /* Assumes that num of input objects are constant */ nchan_transport_old = num_obj; if ( last_ism_mode == ISM_MODE_PARAM ) { nchan_transport_old = 2; } -#endif if ( !st_ivas->bfi && ivas_total_brate != IVAS_SID_5k2 && ivas_total_brate != FRAME_NO_DATA ) { @@ -1269,7 +1184,6 @@ ivas_error ivas_ism_dec_config( if ( st_ivas->ini_active_frame != 0 ) { -#ifdef ISM_BITRATE_SWITCHING /* ISM bit-rate switching */ if ( st_ivas->hDecoderConfig->last_ivas_total_brate != IVAS_SID_5k2 && st_ivas->hDecoderConfig->last_ivas_total_brate != FRAME_NO_DATA ) { @@ -1278,14 +1192,6 @@ ivas_error ivas_ism_dec_config( ivas_ism_bitrate_switching( st_ivas, nchan_transport_old, last_ism_mode, num_obj ); } } -#else - /* ISM format switching */ - if ( st_ivas->ism_mode != last_ism_mode ) - { - /*ivas_ism_dec_reconfigure( st_ivas );*/ - return IVAS_ERROR( IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, "\n\n!!! Error: ISM format switching not supported yet!!!\n\n" ); - } -#endif } } else if ( !st_ivas->bfi && ivas_total_brate == IVAS_SID_5k2 ) diff --git a/lib_dec/ivas_ism_renderer.c b/lib_dec/ivas_ism_renderer.c index 0e7f5f864a..f27d49b111 100644 --- a/lib_dec/ivas_ism_renderer.c +++ b/lib_dec/ivas_ism_renderer.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include "options.h" #include "ivas_cnst.h" diff --git a/lib_dec/ivas_mct_dec_mct.c b/lib_dec/ivas_mct_dec_mct.c index 2dd7b18d52..6b8f9b74fa 100644 --- a/lib_dec/ivas_mct_dec_mct.c +++ b/lib_dec/ivas_mct_dec_mct.c @@ -220,11 +220,7 @@ void apply_MCT_dec( { hBlock = hMCT->hBlockData[pair]; -#ifdef FIX_TCX10_STEREO_PROC stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode, sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, sts[1]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 ); -#else - stereo_decoder_tcx( hBlock->hStereoMdct, hBlock->mask, &x[hBlock->ch2][0], &x[hBlock->ch1][0], &x[hBlock->ch2][0], hBlock->hStereoMdct->mdct_stereo_mode, sts[hBlock->ch1]->core, sts[hBlock->ch2]->core, sts[0]->igf, sts[0]->hTcxDec->L_frameTCX, 1, TCX_20_CORE, TCX_20_CORE, 0 ); -#endif } applyGlobalILD( sts, hMCT, x ); diff --git a/lib_dec/ivas_mdct_core_dec.c b/lib_dec/ivas_mdct_core_dec.c index 748475dc5c..3e186d61b8 100644 --- a/lib_dec/ivas_mdct_core_dec.c +++ b/lib_dec/ivas_mdct_core_dec.c @@ -494,16 +494,10 @@ void ivas_mdct_core_invQ( if ( bfi && !MCT_flag && ( hCPE->hStereoMdct->mdct_stereo_mode[0] > SMDCT_DUAL_MONO || hCPE->hStereoMdct->mdct_stereo_mode[1] > SMDCT_DUAL_MONO ) ) { L_frameTCX[0] = sts[0]->L_frameTCX_past; -#ifdef FIX_TCX10_STEREO_PROC L_frameTCX[1] = sts[1]->L_frameTCX_past; -#endif mvr2r( sts[0]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[0], L_frameTCX[0] ); mvr2r( sts[1]->hTonalMDCTConc->lastBlockData.spectralData, tmp_ms_sig[1], L_frameTCX[0] ); -#ifdef FIX_TCX10_STEREO_PROC stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], L_frameTCX[1], 0, sts[0]->last_core, sts[1]->last_core, 1 ); -#else - stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], &sts[0]->hTonalMDCTConc->lastBlockData.spectralData, &sts[1]->hTonalMDCTConc->lastBlockData.spectralData, &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 1 ); -#endif } if ( bfi ) diff --git a/lib_dec/ivas_mono_dmx_renderer.c b/lib_dec/ivas_mono_dmx_renderer.c index 468b0215b0..20b677075e 100644 --- a/lib_dec/ivas_mono_dmx_renderer.c +++ b/lib_dec/ivas_mono_dmx_renderer.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include "options.h" #include diff --git a/lib_dec/ivas_out_setup_conversion.c b/lib_dec/ivas_out_setup_conversion.c index 9ed27e56c3..55f53bae73 100644 --- a/lib_dec/ivas_out_setup_conversion.c +++ b/lib_dec/ivas_out_setup_conversion.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include #include "options.h" diff --git a/lib_dec/ivas_post_proc.c b/lib_dec/ivas_post_proc.c index a295a8b2a2..b2cc27d5ef 100644 --- a/lib_dec/ivas_post_proc.c +++ b/lib_dec/ivas_post_proc.c @@ -478,7 +478,11 @@ void stereo_dft_dec_core_switching( mvr2r( output, pAp_input, st->L_frame ); } +#ifdef FIX_MSAN_ERROR_STEREO_RATE_SWITCHING + if ( st->last_core == ACELP_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) && !st->tcxonly ) /* ACELP -> TCX/HQ-Core */ +#else if ( st->last_core == ACELP_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) /* ACELP -> TCX/HQ-Core */ +#endif { mvr2r( tcx_core_buf, tmp_fade, ap_fade_len ); for ( i = 0; i < ap_fade_len; i++ ) diff --git a/lib_dec/ivas_rom_dec.c b/lib_dec/ivas_rom_dec.c index 3a08c33e79..c79bc38019 100644 --- a/lib_dec/ivas_rom_dec.c +++ b/lib_dec/ivas_rom_dec.c @@ -516,7 +516,7 @@ const int16_t sba_map_tc[8] = /*----------------------------------------------------------------------------------* * FASTCONV and PARAMETRIC binaural renderer ROM tables *----------------------------------------------------------------------------------*/ - +// VE2AT: move to in ivas_rom_dec ? const float surCohEne[MASA_NUM_DEFINED_SUR_SPR_COH_ENE_BINS] = { 3.0903f, 2.0053f, 1.0860f, 0.8072f, 0.7079f diff --git a/lib_dec/ivas_sba_dec.c b/lib_dec/ivas_sba_dec.c index 0f1bedbad7..fe043c746b 100644 --- a/lib_dec/ivas_sba_dec.c +++ b/lib_dec/ivas_sba_dec.c @@ -45,378 +45,618 @@ #include "wmops.h" +#ifdef SBA_BR_SWITCHING /*-------------------------------------------------------------------* - * ivas_sba_dec_decoder() + * ivas_sba_dec_reinit() * - * Reconfigure IVAS SBA decoder + * Reinitialisation of IVAS SBA decoder *-------------------------------------------------------------------*/ -ivas_error ivas_sba_dec_reconfigure( +ivas_error ivas_sba_dec_reinit( Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ ) { -#ifdef CORECODER_BITRATE_SWITCHING - int16_t i; - int16_t nchan_transport, nchan_transport_old; - int16_t nSCE_old, nCPE_old, nchan_hp20_old; -#else - int16_t i, n, sce_id, cpe_id; - int16_t nchan_transport, nchan_transport_old; - int16_t nSCE_old, nCPE_old; -#endif - AUDIO_CONFIG intern_config_old; - int16_t numCldfbAnalyses_old, numCldfbAnalyses, numCldfbSyntheses, numCldfbSyntheses_old; - int16_t sba_dirac_stereo_flag_old; - int32_t ivas_total_brate, last_ivas_total_brate; + int16_t i, k, n; + int16_t sce_id, cpe_id; + int16_t numCldfbAnalyses; + int16_t numCldfbSyntheses; + int32_t output_Fs, ivas_total_brate; + AUDIO_CONFIG output_config; + DECODER_CONFIG_HANDLE hDecoderConfig; ivas_error error; error = IVAS_ERR_OK; - ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; - last_ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate; + output_Fs = st_ivas->hDecoderConfig->output_Fs; + hDecoderConfig = st_ivas->hDecoderConfig; + output_config = hDecoderConfig->output_config; + ivas_total_brate = hDecoderConfig->ivas_total_brate; - /*-----------------------------------------------------------------* - * Allocate, initalize, and configure SBA and rendering handles - *-----------------------------------------------------------------*/ + hDecoderConfig->last_ivas_total_brate = ivas_total_brate; + /*------------------------------------------------------------------------------------------* + * Closing Decoder handles before Reinitialisation + *------------------------------------------------------------------------------------------*/ + /* Qmetadata handle */ + ivas_qmetadata_close( &st_ivas->hQMetaData ); - ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); - numCldfbAnalyses = 0; + /* DirAC handle */ + if ( st_ivas->hDirAC != NULL ) + { + if ( st_ivas->ivas_format == ISM_FORMAT ) + { + ivas_param_ism_dec_close( st_ivas->hDirAC, st_ivas->hDecoderConfig->output_config ); + } + else + { + ivas_dirac_dec_close( st_ivas->hDirAC ); + } + st_ivas->hDirAC = NULL; + } -#ifdef CORECODER_BITRATE_SWITCHING - nchan_hp20_old = getNumChanSynthesis( st_ivas ); -#endif + /* Spar handle */ + if ( st_ivas->hSpar != NULL ) + { + ivas_spar_dec_close( st_ivas->hSpar, st_ivas->hDecoderConfig->output_Fs ); + st_ivas->hSpar = NULL; + } - nSCE_old = st_ivas->nSCE; - nCPE_old = st_ivas->nCPE; - nchan_transport_old = st_ivas->nchan_transport; - sba_dirac_stereo_flag_old = st_ivas->sba_dirac_stereo_flag; + /* SCE handles */ + for ( i = 0; i < MAX_SCE; i++ ) + { + if ( st_ivas->hSCE[i] != NULL ) + { + destroy_sce_dec( st_ivas->hSCE[i] ); + st_ivas->hSCE[i] = NULL; + } + } - st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); + /* CPE handles */ + for ( i = 0; i < MAX_CPE; i++ ) + { + if ( st_ivas->hCPE[i] != NULL ) + { + /* set pointer to NULL as core coder already deallocated in destroy_sce_dec() */ + if ( st_ivas->sba_dirac_stereo_flag ) + { + st_ivas->hCPE[i]->hCoreCoder[0] = NULL; + st_ivas->hCPE[i]->hCoreCoder[1] = NULL; + } + destroy_cpe_dec( st_ivas->hCPE[i] ); + st_ivas->hCPE[i] = NULL; + } + } - ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); + /* MCT handle */ + ivas_mct_dec_close( &st_ivas->hMCT ); - st_ivas->nchan_transport = nchan_transport; + /* HP20 filter handles */ + if ( st_ivas->mem_hp20_out != NULL ) + { + for ( i = 0; i < getNumChanSynthesis( st_ivas ); i++ ) + { + count_free( st_ivas->mem_hp20_out[i] ); + st_ivas->mem_hp20_out[i] = NULL; + } + count_free( st_ivas->mem_hp20_out ); + st_ivas->mem_hp20_out = NULL; + } - /* renderer might have changed */ - intern_config_old = st_ivas->intern_config; - ivas_renderer_select( st_ivas ); + /* HOA decoder matrix */ + if ( st_ivas->hoa_dec_mtx != NULL ) + { + count_free( st_ivas->hoa_dec_mtx ); + st_ivas->hoa_dec_mtx = NULL; + } - /* side effect of the renderer selection can be a changed internal config */ - if ( st_ivas->intern_config != intern_config_old ) + /* Parametric MC handle */ + ivas_param_mc_dec_close( &st_ivas->hParamMC ); + + /* EFAP handle */ + efap_free_data( &st_ivas->hEFAPdata ); + + /* VBAP handle */ + vbap_free_data( &( st_ivas->hVBAPdata ) ); + + /* Fastconv binaural renderer handle */ + ivas_binRenderer_close( &st_ivas->hBinRenderer ); + + /* Parametric binaural renderer handle */ + ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin ); + + /* Crend handle */ + ivas_crend_close( st_ivas ); + + /* LS config converter handle */ + ivas_ls_setup_conversion_close( &st_ivas->hLsSetUpConversion ); + + /* Custom LS configuration handle */ + if ( st_ivas->hLsSetupCustom != NULL ) { - ivas_output_init( &( st_ivas->hIntSetup ), st_ivas->intern_config ); + count_free( st_ivas->hLsSetupCustom ); + st_ivas->hLsSetupCustom = NULL; } - if ( st_ivas->sba_mode != SBA_MODE_SPAR ) + /* MASA decoder structure */ + if ( st_ivas->hMasa != NULL ) { - st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ); + ivas_masa_dec_close( st_ivas->hMasa ); + st_ivas->hMasa = NULL; + } - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) + /* Downmix structure */ + if ( st_ivas->hMonoDmxRenderer != NULL ) + { + count_free( st_ivas->hMonoDmxRenderer ); + st_ivas->hMonoDmxRenderer = NULL; + } + + /* Head track data handle */ + if ( st_ivas->hHeadTrackData != NULL ) + { + count_free( st_ivas->hHeadTrackData ); + st_ivas->hHeadTrackData = NULL; + } + + /* Time Domain binaural renderer handle */ + if ( st_ivas->hBinRendererTd != NULL ) + { + ivas_td_binaural_close( &st_ivas->hBinRendererTd ); + } + else if ( st_ivas->hHrtfTD != NULL ) + { + /* Case when HRTF filter is mistakenly specified but TD renderer was not active */ + if ( st_ivas->hHrtfTD->ModelParams.UseItdModel && !st_ivas->hHrtfTD->ModelParams.modelROM ) { - return error; + BSplineModelEvalITDDealloc( &st_ivas->hHrtfTD->ModelParamsITD ); } + + BSplineModelEvalDealloc( &st_ivas->hHrtfTD->ModelParams, &st_ivas->hHrtfTD->ModelEval ); + + ivas_HRTF_binary_close( &st_ivas->hHrtfTD ); } - else - { - int16_t sba_order_internal; - sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); - ivas_spar_config( st_ivas->hDecoderConfig->ivas_total_brate, sba_order_internal, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->hSpar->core_nominal_brate, st_ivas->sid_format ); + /* Config. Renderer */ + ivas_render_config_close( &( st_ivas->hRenderConfig ) ); - if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + for ( i = 0; i < MAX_INTERN_CHANNELS; i++ ) + { + if ( st_ivas->cldfbAnaDec[i] != NULL ) { - return error; + deleteCldfb( &( st_ivas->cldfbAnaDec[i] ) ); + st_ivas->cldfbAnaDec[i] = NULL; } } - if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_5k2 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) + for ( i = 0; i < MAX_OUTPUT_CHANNELS; i++ ) { - if ( st_ivas->hDirAC != NULL ) + if ( st_ivas->cldfbSynDec[i] != NULL ) { - if ( ( error = ivas_dirac_dec_config( st_ivas, DIRAC_RECONFIGURE ) ) != IVAS_ERR_OK ) - { - return error; - } + deleteCldfb( &( st_ivas->cldfbSynDec[i] ) ); + st_ivas->cldfbSynDec[i] = NULL; } - else + } + + /*------------------------------------------------------------------------------------------* + * Reopening Decoder handles for Reinitialisation + *------------------------------------------------------------------------------------------*/ + + /* Allocate and initialize Custom loudspeaker layout handle */ + if ( st_ivas->hDecoderConfig->Opt_LsCustom ) + { + if ( ( error = ivas_ls_custom_open( &( st_ivas->hLsSetupCustom ) ) ) != IVAS_ERR_OK ) { - if ( ( error = ivas_dirac_dec_config( st_ivas, DIRAC_OPEN ) ) != IVAS_ERR_OK ) - { - return error; - } + return error; } } - else if ( st_ivas->renderer_type == RENDERER_DISABLE || ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC && st_ivas->sba_mode != SBA_MODE_SPAR ) ) + + /* Allocate and initialize Head-Tracking handle */ + if ( st_ivas->hDecoderConfig->Opt_Headrotation ) { - if ( st_ivas->hDirAC != NULL ) + if ( ( error = ivas_headTrack_open( &( st_ivas->hHeadTrackData ) ) ) != IVAS_ERR_OK ) { - ivas_dirac_dec_close( st_ivas->hDirAC ); - st_ivas->hDirAC = NULL; + return error; } + } - if ( st_ivas->hVBAPdata != NULL ) + /* Allocate HRTF binary handle */ + if ( st_ivas->hDecoderConfig->Opt_HRTF_binary ) + { + if ( ( error = ivas_HRTF_binary_open( &( st_ivas->hHrtfTD ) ) ) != IVAS_ERR_OK ) { - vbap_free_data( &( st_ivas->hVBAPdata ) ); + return error; } } - /*-----------------------------------------------------------------* - * Allocate, initalize, and configure SCE/CPE/MCT handles - *-----------------------------------------------------------------*/ - -#ifdef CORECODER_BITRATE_SWITCHING - ivas_corecoder_dec_reconfig( st_ivas, nSCE_old, nCPE_old, nchan_transport_old, sba_dirac_stereo_flag_old ); - - /*-----------------------------------------------------------------* - * HP20 memories - *-----------------------------------------------------------------*/ - - ivas_hp20_dec_reconfig( st_ivas, nchan_hp20_old ); -#else - - if ( nchan_transport == nchan_transport_old ) + st_ivas->sba_dirac_stereo_flag = 0; + /*Reconfigure output paramaters*/ + ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); + ivas_renderer_select( st_ivas ); + ivas_output_init( &( st_ivas->hIntSetup ), st_ivas->intern_config ); + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) { - for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) + return error; + } + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) + { + if ( ( error = ivas_spar_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { - st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + return error; } - for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC && st_ivas->hOutSetup.is_loudspeaker_setup ) { - st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; - - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) + if ( ( error = ivas_sba_get_hoa_dec_matrix( st_ivas->hOutSetup, &st_ivas->hoa_dec_mtx, st_ivas->hIntSetup.ambisonics_order ) ) != IVAS_ERR_OK ) { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + return error; } } - if ( st_ivas->nCPE > 1 ) + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + { + return error; + } + + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) { - if ( ( error = mct_dec_reconfigure( st_ivas, 0 ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { return error; } + + for ( k = 0; k < DIRAC_MAX_NBANDS; k++ ) + { + st_ivas->hSpar->dirac_to_spar_md_bands[k] = st_ivas->hDirAC->dirac_to_spar_md_bands[k]; + } + st_ivas->hSpar->enc_param_start_band = st_ivas->hDirAC->hConfig->enc_param_start_band; + } + else + { + int16_t band_grouping[IVAS_MAX_NUM_BANDS + 1]; + + st_ivas->hSpar->enc_param_start_band = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); + + ivas_dirac_config_bands( band_grouping, IVAS_MAX_NUM_BANDS, (int16_t) ( st_ivas->hDecoderConfig->output_Fs * INV_CLDFB_BANDWIDTH + 0.5f ), + st_ivas->hSpar->dirac_to_spar_md_bands, st_ivas->hQMetaData->useLowerBandRes, st_ivas->hSpar->enc_param_start_band, 0 ); } } else { - int16_t nSCE_existing; - int16_t nCPE_existing; + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) + { + return error; + } - nSCE_existing = min( nSCE_old, st_ivas->nSCE ); - nCPE_existing = min( nCPE_old, st_ivas->nCPE ); + st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && output_config == AUDIO_CONFIG_STEREO ); - /* destroy superfluous core coder elements */ - for ( sce_id = st_ivas->nSCE; sce_id < nSCE_old; sce_id++ ) + if ( ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC ) && st_ivas->hOutSetup.is_loudspeaker_setup ) { - destroy_sce_dec( st_ivas->hSCE[sce_id] ); - st_ivas->hSCE[sce_id] = NULL; + int16_t ambisonics_order; + + ambisonics_order = ivas_sba_get_order_transport( st_ivas->nchan_transport ); // VE: is it needed ? - /* remove dummy CPE needed for 1TC->Stereo rendering via DFT stereo*/ - if ( sba_dirac_stereo_flag_old ) + if ( ( error = ivas_sba_get_hoa_dec_matrix( st_ivas->hOutSetup, &st_ivas->hoa_dec_mtx, ambisonics_order ) ) != IVAS_ERR_OK ) { -#ifdef DEBUGGING - assert( st_ivas->hCPE[0] ); -#endif - st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hCPE[0]->hCoreCoder[1] = NULL; - destroy_cpe_dec( st_ivas->hCPE[0] ); - st_ivas->hCPE[0] = NULL; + return error; } } + else if ( ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) && !st_ivas->hIntSetup.is_loudspeaker_setup ) + { + IVAS_OUTPUT_SETUP out_setup; - for ( cpe_id = st_ivas->nCPE; cpe_id < nCPE_old; cpe_id++ ) + ivas_output_init( &out_setup, AUDIO_CONFIG_7_1_4 ); + if ( ( error = ivas_sba_get_hoa_dec_matrix( out_setup, &st_ivas->hoa_dec_mtx, st_ivas->hIntSetup.ambisonics_order ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } + if ( st_ivas->renderer_type != RENDERER_BINAURAL_MIXER_CONV && st_ivas->renderer_type != RENDERER_BINAURAL_MIXER_CONV_ROOM && + st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && st_ivas->sba_mode != SBA_MODE_SPAR ) + { + if ( ( error = ivas_dirac_dec_open( st_ivas ) ) != IVAS_ERR_OK ) { - destroy_cpe_dec( st_ivas->hCPE[cpe_id] ); - st_ivas->hCPE[cpe_id] = NULL; + return error; } - - if ( st_ivas->nCPE <= 1 && st_ivas->hMCT != NULL ) + } + for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) + { + if ( ( error = create_sce_dec( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) { - ivas_mct_dec_close( &st_ivas->hMCT ); + return error; } - /* special case, if we have MCT now and had a single CPE before, remove the MDCT Stereo handles from the first CPE*/ - if ( st_ivas->nCPE > 1 && nCPE_old == 1 ) + reset_indices_dec( st_ivas->hSCE[sce_id]->hCoreCoder[0] ); + } + + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) { - count_free( st_ivas->hCPE[0]->hStereoMdct ); - st_ivas->hCPE[0]->hStereoMdct = NULL; + return error; } - for ( sce_id = 0; sce_id < nSCE_existing; sce_id++ ) + for ( n = 0; n < CPE_CHANNELS; n++ ) { - st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ + reset_indices_dec( st_ivas->hCPE[cpe_id]->hCoreCoder[n] ); } - for ( ; sce_id < st_ivas->nSCE; sce_id++ ) + } + + /* create CPE element for DFT Stereo like upmix */ + if ( st_ivas->sba_dirac_stereo_flag ) + { + if ( ( error = create_cpe_dec( st_ivas, cpe_id, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) { - if ( ( error = create_sce_dec( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) - { - return error; - } + return error; } - for ( cpe_id = 0; cpe_id < nCPE_existing; cpe_id++ ) - { - st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; + st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ + } - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - } - for ( ; cpe_id < st_ivas->nCPE; cpe_id++ ) + /* set CNA/CNG flags */ + if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->nchan_transport == 1 ) + { + st_ivas->hSCE[0]->hCoreCoder[0]->cna_dirac_flag = 0; /* Todo: Check if these can be enabled */ + st_ivas->hSCE[0]->hCoreCoder[0]->cng_sba_flag = 0; + } + else if ( st_ivas->nchan_transport == 1 && ( ( st_ivas->renderer_type == RENDERER_DIRAC && st_ivas->hDirAC->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD ) || ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) ) ) + { + st_ivas->hSCE[0]->hCoreCoder[0]->cna_dirac_flag = 1; + st_ivas->hSCE[0]->hCoreCoder[0]->cng_sba_flag = 1; + } + else if ( st_ivas->nchan_transport == 2 ) + { + for ( n = 0; n < CPE_CHANNELS; n++ ) { - if ( ( error = create_cpe_dec( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) - { - return error; - } + st_ivas->hCPE[0]->hCoreCoder[n]->cna_dirac_flag = 0; /* Todo: Check if these can be enabled */ + st_ivas->hCPE[0]->hCoreCoder[n]->cng_sba_flag = 1; } + } - /* create CPE element for DFT Stereo like upmix */ - if ( st_ivas->sba_dirac_stereo_flag ) + if ( st_ivas->nCPE > 1 ) + { + if ( ( error = create_mct_dec( st_ivas ) ) != IVAS_ERR_OK ) { - if ( ( error = create_cpe_dec( st_ivas, 0, ivas_total_brate / ( st_ivas->nSCE + st_ivas->nCPE ) ) ) != IVAS_ERR_OK ) - { - return error; - } + return error; + } + } + /* set number of output channels used for synthesis/decoding */ + n = getNumChanSynthesis( st_ivas ); - st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */ + if ( n > 0 ) + { + if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } + } + else + { + st_ivas->mem_hp20_out = NULL; + } - if ( st_ivas->nCPE > 1 && nCPE_old <= 1 ) + for ( i = 0; i < n; i++ ) + { + if ( ( st_ivas->mem_hp20_out[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) { - if ( nCPE_old == 1 ) - { - /* set correct nominal bitrates and igf config already here, needed for the correct init of the MDCT Stereo handles for MCT */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[0]->hCoreCoder[n]->total_brate = st_ivas->hCPE[0]->element_brate; - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[0]->element_brate / FRAMES_PER_SEC ); - st_ivas->hCPE[0]->hCoreCoder[n]->igf = 0; - } - } + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } - if ( ( error = create_mct_dec( st_ivas ) ) != IVAS_ERR_OK ) - { - return error; - } + set_f( st_ivas->mem_hp20_out[i], 0.0f, L_HP20_MEM ); + } + if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_BINAURAL_ROOM ) + { + if ( ( error = ivas_render_config_open( &( st_ivas->hRenderConfig ) ) ) != IVAS_ERR_OK ) + { + return error; } - else if ( st_ivas->hMCT != NULL && st_ivas->nCPE > 1 ) + if ( ivas_render_config_init_from_rom( &st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_BINAURAL_ROOM ) != IVAS_ERR_OK ) { - if ( ( error = mct_dec_reconfigure( st_ivas, st_ivas->nCPE != nCPE_old ) ) != IVAS_ERR_OK ) - { - return error; - } + return IVAS_ERR_INTERNAL_FATAL; + } + } + if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV_ROOM ) + { + if ( ( error = ivas_binRenderer_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC ) + { + if ( ( error = ivas_dirac_dec_init_binaural_data( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->renderer_type == RENDERER_BINAURAL_OBJECTS_TD ) + { + if ( ( error = ivas_td_binaural_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; } - /* special case, if we have a single CPE and had MCT before we need to init the MDCT stereo handles here */ - if ( st_ivas->nCPE == 1 && nCPE_old > 1 ) + if ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) { - if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct = (STEREO_MDCT_DEC_DATA_HANDLE) count_malloc( sizeof( STEREO_MDCT_DEC_DATA ) ) ) == NULL ) + if ( ( st_ivas->hCrend = (CREND_HANDLE) count_malloc( sizeof( CREND_DATA ) ) ) == NULL ) { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MDCT Stereo \n" ) ); + return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR Crend\n" ); } + } + } + else if ( st_ivas->renderer_type == RENDERER_MC ) + { + if ( ( error = ivas_ls_setup_conversion_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->renderer_type == RENDERER_MONO_DOWNMIX ) + { + if ( ( error = ivas_mono_dmx_renderer_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else if ( st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV || st_ivas->renderer_type == RENDERER_BINAURAL_MIXER_CONV_ROOM ) + { + if ( ivas_crend_open( st_ivas ) != IVAS_ERR_OK ) + { + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "ivas_crend_open failed" ); + } + } + ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses, &numCldfbSyntheses ); - st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->use_itd = 0; - st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->reverse_dmx = 0; - st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->smooth_ratio = 1.f; + for ( i = 0; i < numCldfbAnalyses; i++ ) + { + if ( ( error = openCldfb( &( st_ivas->cldfbAnaDec[i] ), CLDFB_ANALYSIS, output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK ) + { + return error; + } + } + for ( ; i < MAX_INTERN_CHANNELS; i++ ) + { + st_ivas->cldfbAnaDec[i] = NULL; + } - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - /* reset mct_chan_mode */ - st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode = MCT_CHAN_MODE_REGULAR; - } + for ( i = 0; i < numCldfbSyntheses; i++ ) + { + if ( ( error = openCldfb( &( st_ivas->cldfbSynDec[i] ), CLDFB_SYNTHESIS, output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK ) + { + return error; } + } + for ( ; i < MAX_OUTPUT_CHANNELS; i++ ) + { + st_ivas->cldfbSynDec[i] = NULL; + } - /*-----------------------------------------------------------------* - * HP20 memories - *-----------------------------------------------------------------*/ + /* CLDFB Interpolation weights */ + if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR ) + { + ivas_spar_get_cldfb_gains( st_ivas->hSpar, st_ivas->cldfbAnaDec[0], st_ivas->cldfbSynDec[0], hDecoderConfig ); + } + return error; +} +#endif - if ( nchan_transport > nchan_transport_old ) - { - /* create additional hp20 memories */ - float **old_mem_hp20_out; - uint16_t n_old; +/*-------------------------------------------------------------------* + * ivas_sba_dec_decoder() + * + * Reconfigure IVAS SBA decoder + *-------------------------------------------------------------------*/ - if ( sba_dirac_stereo_flag_old ) - { - n_old = CPE_CHANNELS; - } - else - { - n_old = nchan_transport_old; - } - n = st_ivas->nchan_transport; +ivas_error ivas_sba_dec_reconfigure( + Decoder_Struct *st_ivas /* i/o: IVAS decoder structure */ +) +{ + int16_t i; + int16_t nchan_transport, nchan_transport_old; + int16_t nSCE_old, nCPE_old, nchan_hp20_old; + AUDIO_CONFIG intern_config_old; + int16_t numCldfbAnalyses_old, numCldfbAnalyses, numCldfbSyntheses, numCldfbSyntheses_old; + int16_t sba_dirac_stereo_flag_old; + int32_t ivas_total_brate, last_ivas_total_brate; + ivas_error error; - /* save old mem_hp_20 pointer */ - old_mem_hp20_out = st_ivas->mem_hp20_out; - st_ivas->mem_hp20_out = NULL; - if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } + error = IVAS_ERR_OK; - for ( i = 0; i < n_old; i++ ) - { - st_ivas->mem_hp20_out[i] = old_mem_hp20_out[i]; - old_mem_hp20_out[i] = NULL; - } - for ( ; i < nchan_transport; i++ ) - { - if ( ( st_ivas->mem_hp20_out[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } + ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate; + last_ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate; - set_f( st_ivas->mem_hp20_out[i], 0.0f, L_HP20_MEM ); - } + /*-----------------------------------------------------------------* + * Allocate, initalize, and configure SBA and rendering handles + *-----------------------------------------------------------------*/ - count_free( old_mem_hp20_out ); - old_mem_hp20_out = NULL; - } - else if ( nchan_transport < nchan_transport_old ) - { - /* remove superfluous hp20 memories */ - float **old_mem_hp20_out; + ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); + numCldfbAnalyses = 0; - if ( st_ivas->sba_dirac_stereo_flag ) - { - n = CPE_CHANNELS; - } - else - { - n = st_ivas->nchan_transport; - } + nchan_hp20_old = getNumChanSynthesis( st_ivas ); - /* save old mem_hp_20 pointer */ - old_mem_hp20_out = st_ivas->mem_hp20_out; - st_ivas->mem_hp20_out = NULL; - if ( ( st_ivas->mem_hp20_out = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } + nSCE_old = st_ivas->nSCE; + nCPE_old = st_ivas->nCPE; + nchan_transport_old = st_ivas->nchan_transport; + sba_dirac_stereo_flag_old = st_ivas->sba_dirac_stereo_flag; + + st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->sba_order ); + + ivas_sba_config( ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport, st_ivas->sba_planar, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init ); + + st_ivas->nchan_transport = nchan_transport; + + /* renderer might have changed */ + intern_config_old = st_ivas->intern_config; + ivas_renderer_select( st_ivas ); + + /* side effect of the renderer selection can be a changed internal config */ + if ( st_ivas->intern_config != intern_config_old ) + { + ivas_output_init( &( st_ivas->hIntSetup ), st_ivas->intern_config ); + } - for ( i = 0; i < n; i++ ) + if ( st_ivas->sba_mode != SBA_MODE_SPAR ) + { + st_ivas->sba_dirac_stereo_flag = ( st_ivas->nchan_transport == 1 && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_STEREO ); + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, -1 ) ) != IVAS_ERR_OK ) + { + return error; + } + } + else + { + int16_t sba_order_internal; + + sba_order_internal = min( st_ivas->sba_analysis_order, IVAS_MAX_SBA_ORDER ); + ivas_spar_config( st_ivas->hDecoderConfig->ivas_total_brate, sba_order_internal, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->hSpar->core_nominal_brate, st_ivas->sid_format ); + + if ( ( error = ivas_dirac_sba_config( st_ivas->hQMetaData, &st_ivas->nchan_transport, &st_ivas->nSCE, &st_ivas->nCPE, &st_ivas->element_mode_init, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->sba_analysis_order, st_ivas->sba_mode, IVAS_MAX_NUM_BANDS - SPAR_DIRAC_SPLIT_START_BAND ) ) != IVAS_ERR_OK ) + { + return error; + } + } + + if ( st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_SBA_LINEAR_DEC && ( last_ivas_total_brate > IVAS_SID_5k2 || nchan_transport != nchan_transport_old ) && ( st_ivas->sba_mode != SBA_MODE_SPAR ) ) + { + if ( st_ivas->hDirAC != NULL ) + { + if ( ( error = ivas_dirac_dec_config( st_ivas, DIRAC_RECONFIGURE ) ) != IVAS_ERR_OK ) { - st_ivas->mem_hp20_out[i] = old_mem_hp20_out[i]; - old_mem_hp20_out[i] = NULL; + return error; } - for ( ; i < nchan_transport_old; i++ ) + } + else + { + if ( ( error = ivas_dirac_dec_config( st_ivas, DIRAC_OPEN ) ) != IVAS_ERR_OK ) { - count_free( old_mem_hp20_out[i] ); - old_mem_hp20_out[i] = NULL; + return error; } + } + } + else if ( st_ivas->renderer_type == RENDERER_DISABLE || ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_DEC && st_ivas->sba_mode != SBA_MODE_SPAR ) ) + { + if ( st_ivas->hDirAC != NULL ) + { + ivas_dirac_dec_close( st_ivas->hDirAC ); + st_ivas->hDirAC = NULL; + } - count_free( old_mem_hp20_out ); - old_mem_hp20_out = NULL; + if ( st_ivas->hVBAPdata != NULL ) + { + vbap_free_data( &( st_ivas->hVBAPdata ) ); } } -#endif + + /*-----------------------------------------------------------------* + * Allocate, initalize, and configure SCE/CPE/MCT handles + *-----------------------------------------------------------------*/ + + ivas_corecoder_dec_reconfig( st_ivas, nSCE_old, nCPE_old, nchan_transport_old, sba_dirac_stereo_flag_old ); + + /*-----------------------------------------------------------------* + * HP20 memories + *-----------------------------------------------------------------*/ + + ivas_hp20_dec_reconfig( st_ivas, nchan_hp20_old ); /*-----------------------------------------------------------------* * CLDFB instances @@ -477,49 +717,6 @@ ivas_error ivas_sba_dec_reconfigure( } } -#ifndef CORECODER_BITRATE_SWITCHING - /*-----------------------------------------------------------------* - * Set CNA/CNG flags - *-----------------------------------------------------------------*/ - - if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->nchan_transport == 1 ) - { - /* skip as done in init function */ - } - else if ( st_ivas->nchan_transport == 1 && ( ( st_ivas->renderer_type == RENDERER_DIRAC && st_ivas->hDirAC->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD ) || ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) ) ) - { - st_ivas->hSCE[0]->hCoreCoder[0]->cna_dirac_flag = 1; - st_ivas->hSCE[0]->hCoreCoder[0]->cng_sba_flag = 1; - } - else if ( st_ivas->nchan_transport == 2 ) - { - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[0]->hCoreCoder[n]->cna_dirac_flag = 0; - st_ivas->hCPE[0]->hCoreCoder[n]->cng_sba_flag = 1; - } - } - else - { - for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) - { - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cna_dirac_flag = 0; - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 0; - } - } - } - - /* special case, if the decoder goes from 1TC DTX to 2TC active frame (in case the bitstream started with an SBA SID frame), allocate DTX memories */ - if ( last_ivas_total_brate <= IVAS_SID_5k2 && st_ivas->nCPE >= 1 ) - { - if ( ( error = initMdctStereoDtxData( st_ivas->hCPE[0] ) ) != IVAS_ERR_OK ) - { - return error; - } - } -#endif /*-------------------------------------------------------------------* * Reallocate and initialize binaural rendering handles diff --git a/lib_dec/ivas_spar_decoder.c b/lib_dec/ivas_spar_decoder.c index eea34b31dc..d196cda9b6 100644 --- a/lib_dec/ivas_spar_decoder.c +++ b/lib_dec/ivas_spar_decoder.c @@ -89,12 +89,7 @@ ivas_error ivas_spar_dec_open( } /* MD handle */ - if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal -#ifdef SBA_HOA_HBR_IMPROV - , - sba_order_internal -#endif - ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_dec_open( &hSpar->hMdDec, st_ivas->hDecoderConfig, num_channels_internal, sba_order_internal ) ) != IVAS_ERR_OK ) { return error; } @@ -649,13 +644,11 @@ static void ivas_spar_dec_MD( { ivas_parse_spar_header( hDecoderConfig->ivas_total_brate, sba_order, st0, &table_idx ); -#ifdef SBA_HOA_HBR_IMPROV if ( hSpar->hMdDec->spar_hoa_md_flag ) { hSpar->hMdDec->spar_md.num_bands = IVAS_MAX_NUM_BANDS; } else -#endif { hSpar->hMdDec->spar_md.num_bands = min( SPAR_DIRAC_SPLIT_START_BAND, IVAS_MAX_NUM_BANDS ); } @@ -665,7 +658,7 @@ static void ivas_spar_dec_MD( hSpar->hMdDec->table_idx = table_idx; hSpar->hTdDecorr->ducking_flag = ivas_spar_br_table_consts[table_idx].td_ducking; - ivas_spar_md_dec_init( hSpar->hMdDec, hDecoderConfig, num_channels ); + ivas_spar_md_dec_init( hSpar->hMdDec, hDecoderConfig, num_channels, sba_order ); } } @@ -801,11 +794,7 @@ void ivas_spar_get_parameters( weight = ivas_spar_get_cldfb_slot_gain( hSpar, hDecoderConfig, ts, &ts0, &ts1, &weight_20ms ); -#ifdef SBA_HOA_HBR_IMPROV split_band = hSpar->hMdDec->spar_md.num_bands; -#else - split_band = SPAR_DIRAC_SPLIT_START_BAND; -#endif for ( spar_band = 0; spar_band < num_spar_bands; spar_band++ ) { @@ -1022,20 +1011,17 @@ void ivas_spar_dec_upmixer( { mvr2r( pPcm_tmp[hSpar->hTdDecorr->num_apd_outputs - 1 - i], output[nchan_internal - 1 - i], output_frame ); } - - hSpar->hFbMixer->fb_cfg->num_in_chans = num_in_ingest; - } - else - { - hSpar->hFbMixer->fb_cfg->num_in_chans = num_in_ingest; } + hSpar->hFbMixer->fb_cfg->num_in_chans = num_in_ingest; + + /*---------------------------------------------------------------------* * Prepare CLDFB buffers *---------------------------------------------------------------------*/ /* set-up pointers */ - if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) { /* at this point, output channels are used as intermediate procesing buffers */ for ( in_ch = 0; in_ch < MAX_OUTPUT_CHANNELS; in_ch++ ) @@ -1076,7 +1062,7 @@ void ivas_spar_dec_upmixer( /* determine if we can skip certain data */ ivas_spar_get_skip_mat( hSpar, numch_out, numch_in, num_spar_bands, b_skip_mat ); /* this can be precomputed based on bitrate and format*/ - numch_out_dirac = st_ivas->hDecoderConfig->nchan_out; + numch_out_dirac = hDecoderConfig->nchan_out; for ( int16_t i_sf = 0; i_sf < MAX_PARAM_SPATIAL_SUBFRAMES; i_sf++ ) { @@ -1097,7 +1083,7 @@ void ivas_spar_dec_upmixer( for ( ts = 0; ts < MAX_PARAM_SPATIAL_SUBFRAMES; ts++ ) { /* determine SPAR parameters for this time slots */ - ivas_spar_get_parameters( hSpar, st_ivas->hDecoderConfig, ts + i_sf * MAX_PARAM_SPATIAL_SUBFRAMES, numch_out, numch_in, num_spar_bands, mixer_mat ); + ivas_spar_get_parameters( hSpar, hDecoderConfig, ts + i_sf * MAX_PARAM_SPATIAL_SUBFRAMES, numch_out, numch_in, num_spar_bands, mixer_mat ); for ( cldfb_band = 0; cldfb_band < num_cldfb_bands; cldfb_band++ ) { @@ -1146,7 +1132,11 @@ void ivas_spar_dec_upmixer( } } - if ( st_ivas->hDecoderConfig->output_config != AUDIO_CONFIG_FOA ) + if ( hDecoderConfig->output_config != AUDIO_CONFIG_FOA +#ifdef SPAR_STEREO_NO_DIRAC + && hDecoderConfig->output_config != AUDIO_CONFIG_STEREO && hDecoderConfig->output_config != AUDIO_CONFIG_MONO +#endif + ) { ivas_dirac_dec( st_ivas, output, nchan_internal, cldfb_in_ts_re, cldfb_in_ts_im, i_sf ); } @@ -1171,8 +1161,7 @@ void ivas_spar_dec_upmixer( } else { - if ( st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_FOA || - !( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM ) ) + if ( hDecoderConfig->output_config == AUDIO_CONFIG_FOA || !( st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL || st_ivas->hOutSetup.output_config == AUDIO_CONFIG_BINAURAL_ROOM ) ) { for ( ts = 0; ts < MAX_PARAM_SPATIAL_SUBFRAMES; ts++ ) { diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 3d5f03b208..0feda3a83c 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -82,7 +82,9 @@ static void ivas_spar_md_fill_invalid_bands( ivas_spar_dec_matrices_t *pSpar_coe static ivas_error ivas_spar_set_dec_config( ivas_spar_md_dec_state_t *hMdDec, const int16_t nchan_transport, float *pFC ); static void ivas_parse_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, Decoder_State *st, const int16_t bw, const int16_t num_bands, int16_t *num_dmx_per_band, int16_t *num_dec_per_band ); + static ivas_error ivas_deindex_real_index( const int16_t *index, const int16_t q_levels, const float min_value, const float max_value, float *quant, const int16_t num_ch_dim2 ); + static void ivas_spar_dec_parse_md_bs( ivas_spar_md_dec_state_t *hMdDec, Decoder_State *st, int16_t *nB, int16_t *bands_bw, int16_t *dtx_vad, const int32_t ivas_total_brate, const int16_t use_planar_coeff, const int16_t sba_inactive_mode ); @@ -249,11 +251,8 @@ static ivas_error ivas_spar_md_dec_matrix_open( ivas_error ivas_spar_md_dec_open( ivas_spar_md_dec_state_t **hMdDec_out, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ - const int16_t num_channels /* i : number of internal channels */ -#ifdef SBA_HOA_HBR_IMPROV - , - const int16_t sba_order /* i : SBA order */ -#endif + const int16_t num_channels, /* i : number of internal channels */ + const int16_t sba_order /* i : SBA order */ ) { ivas_spar_md_dec_state_t *hMdDec; @@ -271,12 +270,9 @@ ivas_error ivas_spar_md_dec_open( return error; } -#ifdef SBA_HOA_HBR_IMPROV - hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); -#endif hMdDec->table_idx = 0; /* just to initialize state variables*/ - if ( ( error = ivas_spar_md_dec_init( hMdDec, hDecoderConfig, num_channels ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_spar_md_dec_init( hMdDec, hDecoderConfig, num_channels, sba_order ) ) != IVAS_ERR_OK ) { return error; } @@ -437,28 +433,18 @@ void ivas_spar_md_dec_close( ivas_error ivas_spar_md_dec_init( ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle */ const DECODER_CONFIG_HANDLE hDecoderConfig, /* i : configuration structure */ - const int16_t num_channels /* i : number of internal channels */ + const int16_t num_channels, /* i : number of internal channels */ + const int16_t sba_order /* i : SBA order */ ) { int16_t i, j, k; int16_t nchan_transport; float pFC[IVAS_MAX_NUM_BANDS], PR_minmax[2]; - hMdDec->spar_md_cfg.gen_bs = 1; // VE2DB : always 1 - can it be removed? - -#ifdef SBA_HOA_HBR_IMPROV + hMdDec->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hDecoderConfig->ivas_total_brate ); hMdDec->spar_md.num_bands = ( hMdDec->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); -#else - hMdDec->spar_md.num_bands = min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); -#endif - ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, -#ifdef SBA_HOA_HBR_IMPROV - hMdDec->spar_md.num_bands -#else - min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ) -#endif - ); + ivas_spar_set_bitrate_config( &hMdDec->spar_md_cfg, hMdDec->table_idx, hMdDec->spar_md.num_bands ); nchan_transport = hMdDec->spar_md_cfg.nchan_transport; @@ -641,7 +627,7 @@ void ivas_spar_md_dec_process( char f_name[100]; int16_t num_bands = nB; int16_t num_subframes = 1, num_block_groups = 1, num_elements = 1, byte_size = sizeof( float ); - int16_t num_ch = 2 * sba_order + 2; + int16_t num_ch = ivas_sba_get_nchan_metadata( sba_order ); for ( b = 0; b < num_bands; b++ ) { sprintf( f_name, "spar_band_pred_coeffs_dec.bin" ); @@ -684,33 +670,20 @@ void ivas_spar_md_dec_process( } #endif -#ifndef SBA_SPAR_HARM - /* SPAR to DirAC and DirAC to SPAR conversion */ // VE2DB: -> "DirAC to SPAR conversion" only? - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete - { -#else /* SPAR to DirAC conversion */ -#endif - ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); + ivas_spar_to_dirac( st_ivas, hMdDec, dtx_vad, num_bands_out ); - /* set correct number of bands*/ - nB = IVAS_MAX_NUM_BANDS; - if ( bw == IVAS_RED_BAND_FACT ) - { - nB = nB >> 1; - } -#ifndef SBA_SPAR_HARM + /* set correct number of bands*/ + nB = IVAS_MAX_NUM_BANDS; + if ( bw == IVAS_RED_BAND_FACT ) + { + nB = nB >> 1; } -#endif /* expand DirAC MD to all time slots */ for ( i_ts = 1; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) { -#ifdef SBA_HOA_HBR_IMPROV for ( b = 0; b < hMdDec->spar_md.num_bands; b++ ) -#else - for ( b = 0; b < min( IVAS_MAX_NUM_BANDS, SPAR_DIRAC_SPLIT_START_BAND ); b++ ) -#endif { for ( j = 0; j < IVAS_SPAR_MAX_CH - 1; j++ ) { @@ -1371,7 +1344,6 @@ void ivas_spar_dec_gen_umx_mat( ) { int16_t i, j, b, i_ts, num_out_ch; - int16_t fb_ducking_flag = 0; // VE2DB: always 0 - can it be removed? num_out_ch = hMdDec->spar_md_cfg.num_umx_chs; @@ -1400,11 +1372,6 @@ void ivas_spar_dec_gen_umx_mat( } } } - - if ( fb_ducking_flag ) - { - assert( 0 ); /* fb_ducking_flag not supported */ - } } else { @@ -1419,7 +1386,7 @@ void ivas_spar_dec_gen_umx_mat( } } } - + #ifdef DEBUG_SBA_MD_DUMP { static FILE *f_mat = 0; @@ -1464,226 +1431,220 @@ static void ivas_spar_dec_parse_md_bs( const int16_t sba_inactive_mode ) { int16_t i, j, k, num_bands; + int16_t ii, jj, ndec, ndm, b, idx; uint16_t qsi; ivas_quant_strat_t qs; int16_t strat, freq_diff, no_ec; int16_t do_diff[IVAS_MAX_NUM_BANDS]; - int16_t planarCP = 0; + int16_t planarCP; + float quant[IVAS_SPAR_MAX_C_COEFF]; *dtx_vad = 1; *bands_bw = 1; qsi = 0; num_bands = hMdDec->spar_md.num_bands; - if ( hMdDec->spar_md_cfg.gen_bs == 1 ) + if ( ivas_total_brate > IVAS_SID_5k2 ) { - if ( ivas_total_brate > IVAS_SID_5k2 ) + if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) { - if ( hMdDec->spar_md_cfg.quant_strat_bits > 0 ) + if ( ivas_total_brate >= BRATE_SPAR_Q_STRAT ) { - if ( ivas_total_brate >= BRATE_SPAR_Q_STRAT ) - { - /*only one bit written for quantization strategy to indicate either a fixed quantization strategy or dtx_vad==0 */ - qsi = get_next_indice( st0, 1 ); - if ( qsi == 1 ) - { - *dtx_vad = 0; - } - } - else + /*only one bit written for quantization strategy to indicate either a fixed quantization strategy or dtx_vad==0 */ + qsi = get_next_indice( st0, 1 ); + if ( qsi == 1 ) { - if ( sba_inactive_mode == 1 ) - { - *dtx_vad = 0; - qsi = hMdDec->spar_md_cfg.quant_strat_bits + 1; - } - else - { - qsi = get_next_indice( st0, hMdDec->spar_md_cfg.quant_strat_bits ); - } + *dtx_vad = 0; } } else { - qsi = 0; + if ( sba_inactive_mode == 1 ) + { + *dtx_vad = 0; + qsi = hMdDec->spar_md_cfg.quant_strat_bits + 1; + } + else + { + qsi = get_next_indice( st0, hMdDec->spar_md_cfg.quant_strat_bits ); + } } } else { - *dtx_vad = 0; + qsi = 0; } + } + else + { + *dtx_vad = 0; + } - hMdDec->dtx_vad = *dtx_vad; + hMdDec->dtx_vad = *dtx_vad; - if ( *dtx_vad == 0 ) - { - *nB = SPAR_DTX_BANDS; - *bands_bw = num_bands / *nB; + if ( *dtx_vad == 0 ) + { + *nB = SPAR_DTX_BANDS; + *bands_bw = num_bands / *nB; - for ( i = 0; i < *nB; i++ ) + for ( i = 0; i < *nB; i++ ) + { + for ( j = 0; j < IVAS_SPAR_MAX_CH - 1; j++ ) { - for ( j = 0; j < IVAS_SPAR_MAX_CH - 1; j++ ) - { - hMdDec->spar_md.band_coeffs[i].pred_re[j] = 0; - hMdDec->spar_md.band_coeffs[i].P_re[j] = 0; - } - hMdDec->valid_bands[i] = 1; + hMdDec->spar_md.band_coeffs[i].pred_re[j] = 0; + hMdDec->spar_md.band_coeffs[i].P_re[j] = 0; } - for ( i = 0; i < num_bands; i++ ) + hMdDec->valid_bands[i] = 1; + } + + for ( i = 0; i < num_bands; i++ ) + { + for ( j = 0; j < ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ); j++ ) { - for ( j = 0; j < ( IVAS_SPAR_MAX_CH - IVAS_SPAR_MAX_DMX_CHS ); j++ ) + for ( k = 0; k < ( IVAS_SPAR_MAX_DMX_CHS - 1 ); k++ ) { - for ( k = 0; k < ( IVAS_SPAR_MAX_DMX_CHS - 1 ); k++ ) - { - hMdDec->spar_md.band_coeffs[i].C_re[j][k] = 0; - } + hMdDec->spar_md.band_coeffs[i].C_re[j][k] = 0; } } + } + + ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); - ivas_parse_parameter_bitstream_dtx( &hMdDec->spar_md, st0, *bands_bw, *nB, - hMdDec->spar_md_cfg.num_dmx_chans_per_band, hMdDec->spar_md_cfg.num_decorr_per_band ); + for ( i = *nB - 1; i >= 0; i-- ) + { + ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; + + for ( b = *bands_bw - 1; b >= 0; b-- ) { - int16_t ndec, b, idx; - for ( i = *nB - 1; i >= 0; i-- ) + idx = i * *bands_bw + b; + for ( j = 0; j < FOA_CHANNELS - 1; j++ ) { - ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; - - for ( b = *bands_bw - 1; b >= 0; b-- ) - { - idx = i * *bands_bw + b; - for ( j = 0; j < FOA_CHANNELS - 1; j++ ) - { - hMdDec->spar_md.band_coeffs[idx].pred_re[j] = hMdDec->spar_md.band_coeffs[i].pred_re[j]; - } - for ( j = 0; j < ndec; j++ ) - { - hMdDec->spar_md.band_coeffs[idx].P_re[j] = hMdDec->spar_md.band_coeffs[i].P_re[j]; - } - hMdDec->valid_bands[idx] = 1; - } + hMdDec->spar_md.band_coeffs[idx].pred_re[j] = hMdDec->spar_md.band_coeffs[i].pred_re[j]; } - *nB = num_bands; - *bands_bw = 1; + for ( j = 0; j < ndec; j++ ) + { + hMdDec->spar_md.band_coeffs[idx].P_re[j] = hMdDec->spar_md.band_coeffs[i].P_re[j]; + } + hMdDec->valid_bands[idx] = 1; } - - return; } - qs = hMdDec->spar_md_cfg.quant_strat[qsi]; - if ( ( qsi == 2 ) && ( use_planar_coeff ) ) - { - planarCP = 1; + *nB = num_bands; + *bands_bw = 1; + + return; + } + + qs = hMdDec->spar_md_cfg.quant_strat[qsi]; + + planarCP = 0; + if ( ( qsi == 2 ) && ( use_planar_coeff ) ) + { + planarCP = 1; #ifdef SPAR_HOA_DBG - fprintf( stdout, "planarCP = 1\n" ); + fprintf( stdout, "planarCP = 1\n" ); #endif - } - strat = get_next_indice( st0, 3 ); + } + strat = get_next_indice( st0, 3 ); + #ifdef SPAR_HOA_DBG - /*fprintf(stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat);*/ + /*fprintf(stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat);*/ #endif - freq_diff = 0; - no_ec = 0; + freq_diff = 0; + no_ec = 0; - if ( strat < 2 ) + if ( strat < 2 ) + { + *bands_bw = strat + 1; + *nB = num_bands / *bands_bw; + for ( i = 0; i < *nB; i++ ) { - *bands_bw = strat + 1; - *nB = num_bands / *bands_bw; - for ( i = 0; i < *nB; i++ ) - { - do_diff[i] = 0; - } + do_diff[i] = 0; } - else if ( strat < 4 ) + } + else if ( strat < 4 ) + { + *bands_bw = strat - 1; + *nB = num_bands / *bands_bw; + for ( i = 0; i < *nB; i++ ) { - *bands_bw = strat - 1; - *nB = num_bands / *bands_bw; - for ( i = 0; i < *nB; i++ ) - { - do_diff[i] = 0; - } - no_ec = 1; + do_diff[i] = 0; } - else - { - *bands_bw = 1; - *nB = num_bands; - - for ( i = 0; i < *nB; i++ ) - { - do_diff[i] = ( ( ( i + 1 ) & 3 ) != strat - 4 ); - } + no_ec = 1; + } + else + { + *bands_bw = 1; + *nB = num_bands; - ivas_map_prior_coeffs_quant( &hMdDec->spar_md_prev, &hMdDec->spar_md_cfg, qsi, *nB ); + for ( i = 0; i < *nB; i++ ) + { + do_diff[i] = ( ( ( i + 1 ) & 3 ) != strat - 4 ); } + + ivas_map_prior_coeffs_quant( &hMdDec->spar_md_prev, &hMdDec->spar_md_cfg, qsi, *nB ); + } #ifdef SPAR_HOA_DBG - fprintf( stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat ); + fprintf( stdout, "\n\n no_ec = %d, strat = %d\n", no_ec, strat ); #endif - hMdDec->spar_md_cfg.prev_quant_idx = qsi; + hMdDec->spar_md_cfg.prev_quant_idx = qsi; - if ( no_ec == 0 ) - { - ivas_decode_arith_bs( hMdDec, st0, qsi, *nB, *bands_bw, do_diff, freq_diff, planarCP ); - } - else - { - ivas_decode_huffman_bs( hMdDec, st0, qsi, *nB, *bands_bw, planarCP ); - } + if ( no_ec == 0 ) + { + ivas_decode_arith_bs( hMdDec, st0, qsi, *nB, *bands_bw, do_diff, freq_diff, planarCP ); + } + else + { + ivas_decode_huffman_bs( hMdDec, st0, qsi, *nB, *bands_bw, planarCP ); + } - for ( i = 0; i < *nB; i++ ) - { - int16_t ii, jj; - int16_t ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; - int16_t ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; - float quant[IVAS_SPAR_MAX_C_COEFF]; - ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); + for ( i = 0; i < *nB; i++ ) + { + ndec = hMdDec->spar_md_cfg.num_decorr_per_band[( *bands_bw ) * i]; + ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[( *bands_bw ) * i]; - j = 0; - for ( ii = 0; ii < ndec; ii++ ) - { - for ( jj = 0; jj < ndm - 1; jj++ ) - { - quant[j] = hMdDec->spar_md.band_coeffs[i].C_re[ii][jj]; - j++; - } - } - ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); - j = 0; - for ( ii = 0; ii < ndec; ii++ ) - { - for ( jj = 0; jj < ndm - 1; jj++ ) - { - hMdDec->spar_md.band_coeffs[i].C_re[ii][jj] = quant[j]; - j++; - } - } - ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); - /* Store prior coefficient indices */ - for ( j = 0; j < ndm + ndec - 1; j++ ) - { - hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; - } - for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].pred_index_re, qs.PR.q_levels[0], qs.PR.min, qs.PR.max, hMdDec->spar_md.band_coeffs[i].pred_re, ndm + ndec - 1 ); + + j = 0; + for ( ii = 0; ii < ndec; ii++ ) + { + for ( jj = 0; jj < ndm - 1; jj++ ) { - hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; + quant[j] = hMdDec->spar_md.band_coeffs[i].C_re[ii][jj]; + j++; } - for ( j = 0; j < ndec; j++ ) + } + + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].drct_index_re, qs.C.q_levels[0], qs.C.min, qs.C.max, quant, ndec * ( ndm - 1 ) ); + + j = 0; + for ( ii = 0; ii < ndec; ii++ ) + { + for ( jj = 0; jj < ndm - 1; jj++ ) { - hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; + hMdDec->spar_md.band_coeffs[i].C_re[ii][jj] = quant[j]; + j++; } - hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } - } - else - { - *dtx_vad = hMdDec->spar_md.dtx_vad; - *nB = num_bands; - *bands_bw = num_bands / *nB; - for ( i = 0; i < *nB; i++ ) + ivas_deindex_real_index( hMdDec->spar_md.band_coeffs_idx[i].decd_index_re, qs.P_r.q_levels[0], qs.P_r.min, qs.P_r.max, hMdDec->spar_md.band_coeffs[i].P_re, ndm + ndec - 1 ); + + /* Store prior coefficient indices */ + for ( j = 0; j < ndm + ndec - 1; j++ ) { - hMdDec->valid_bands[i] = 1; + hMdDec->spar_md_prev.band_coeffs_idx[i].pred_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j]; + } + for ( j = 0; j < ndec * ( ndm - 1 ); j++ ) + { + hMdDec->spar_md_prev.band_coeffs_idx[i].drct_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j]; + } + for ( j = 0; j < ndec; j++ ) + { + hMdDec->spar_md_prev.band_coeffs_idx[i].decd_index_re[j] = hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j]; } + hMdDec->valid_bands[i] |= ( do_diff[i] == 0 ) ? 1 : 0; } + #ifdef SPAR_HOA_DBG int16_t b; b = 0; @@ -1776,14 +1737,14 @@ static void ivas_decode_arith_bs( const int16_t freq_diff, const int16_t planarCP ) { - int16_t i, ndm, ndec; + int16_t i, j, ndm, ndec; ivas_cell_dim_t pred_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t drct_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decd_cell_dims[IVAS_MAX_NUM_BANDS]; ivas_cell_dim_t decx_cell_dims[IVAS_MAX_NUM_BANDS]; int16_t symbol_arr_re[IVAS_MAX_INPUT_LEN]; int16_t symbol_arr_old_re[IVAS_MAX_INPUT_LEN]; - int16_t any_diff = 0; + int16_t any_diff; for ( i = 0; i < nB; i++ ) { @@ -1791,7 +1752,6 @@ static void ivas_decode_arith_bs( ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_cell_dims[i].dim1 = ndm + ndec - 1; -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1799,7 +1759,6 @@ static void ivas_decode_arith_bs( pred_cell_dims[i].dim1 -= ( FOA_CHANNELS - 1 ); } } -#endif pred_cell_dims[i].dim2 = 1; drct_cell_dims[i].dim1 = ndec; drct_cell_dims[i].dim2 = ndm - 1; @@ -1809,6 +1768,7 @@ static void ivas_decode_arith_bs( decx_cell_dims[i].dim2 = 1; } + any_diff = 0; for ( i = 0; i < nB; i++ ) { if ( pDo_diff[i] != 0 ) @@ -1820,10 +1780,8 @@ static void ivas_decode_arith_bs( if ( any_diff == 1 ) { -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { - int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1836,7 +1794,6 @@ static void ivas_decode_arith_bs( } } } -#endif ivas_copy_band_coeffs_idx_to_arr( hMdDec->spar_md_prev.band_coeffs_idx_mapped, nB, symbol_arr_old_re, pred_cell_dims, PRED_COEFF, planarCP ); } @@ -1845,10 +1802,8 @@ static void ivas_decode_arith_bs( ivas_fill_band_coeffs_idx( hMdDec->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { - int16_t j; for ( i = 0; i < nB; i++ ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1865,7 +1820,6 @@ static void ivas_decode_arith_bs( } } } -#endif if ( any_diff == 1 ) { @@ -2102,12 +2056,11 @@ static void ivas_decode_huffman_bs( const int16_t planarCP ) { int16_t i, j; + int16_t ndm, ndec; + int16_t pred_dim, drct_dim, decd_dim, pred_offset; for ( i = 0; i < nB; i++ ) { - int16_t ndm, ndec; - int16_t pred_dim, drct_dim, decd_dim, pred_offset; - ndm = hMdDec->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; ndec = hMdDec->spar_md_cfg.num_decorr_per_band[bands_bw * i]; @@ -2115,7 +2068,6 @@ static void ivas_decode_huffman_bs( drct_dim = ndec * ( ndm - 1 ); decd_dim = ndec; pred_offset = 0; -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -2123,15 +2075,12 @@ static void ivas_decode_huffman_bs( pred_offset = FOA_CHANNELS - 1; } } -#endif for ( j = pred_offset; j < pred_dim; j++ ) { - ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.pred_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].pred_index_re[j] ); } -#ifdef SBA_HOA_HBR_IMPROV if ( hMdDec->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -2142,7 +2091,6 @@ static void ivas_decode_huffman_bs( } } } -#endif for ( j = 0; j < drct_dim; j++ ) { @@ -2152,8 +2100,7 @@ static void ivas_decode_huffman_bs( } else { - ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.drct_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].drct_index_re[j] ); } } @@ -2165,8 +2112,7 @@ static void ivas_decode_huffman_bs( } else { - ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, - &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); + ivas_huffman_decode( &hMdDec->huff_coeffs.decd_huff_re[qsi], st0, &hMdDec->spar_md.band_coeffs_idx[i].decd_index_re[j] ); } } } @@ -2390,6 +2336,7 @@ static void ivas_spar_unquant_dtx_indicies( pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; + for ( b = 0; b < nB; b++ ) { for ( i = 0; i < FOA_CHANNELS - 1; i++ ) @@ -2427,7 +2374,7 @@ static void ivas_parse_parameter_bitstream_dtx( int16_t *num_dmx_per_band, int16_t *num_dec_per_band ) { - int16_t i, j; + int16_t i, j, ndec, ndm; float val; int16_t idx; float pr_min_max[2]; @@ -2440,8 +2387,8 @@ static void ivas_parse_parameter_bitstream_dtx( for ( i = 0; i < num_bands; i++ ) { - int16_t ndec = num_dec_per_band[bw * i]; - int16_t ndm = num_dmx_per_band[bw * i]; + ndec = num_dec_per_band[bw * i]; + ndm = num_dmx_per_band[bw * i]; for ( j = 0; j < FOA_CHANNELS - 1; j++ ) { @@ -2794,14 +2741,7 @@ void ivas_spar_to_dirac( /* DirAC MD averaged over 4 subframes and converted to SPAR format similar to encoder processing */ if ( hMdDec->spar_md_cfg.nchan_transport > 1 ) { - ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, - end_band, num_bands_out, -#ifdef SBA_HOA_HBR_IMPROV - ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, -#else - sba_order_internal, -#endif - dtx_vad, NULL ); + ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, end_band, num_bands_out, ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, dtx_vad, NULL ); /* temporarily copy frame-wise prediction coefficients in DirAC bands*/ for ( pred_idx = 0; pred_idx < FOA_CHANNELS - 1; pred_idx++ ) @@ -2813,14 +2753,7 @@ void ivas_spar_to_dirac( } } - ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, MAX_PARAM_SPATIAL_SUBFRAMES, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, - end_band, num_bands_out, -#ifdef SBA_HOA_HBR_IMPROV - ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, -#else - sba_order_internal, -#endif - dtx_vad, NULL ); + ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, MAX_PARAM_SPATIAL_SUBFRAMES, NULL, &hMdDec->spar_md, &hMdDec->spar_md_cfg, end_band, num_bands_out, ( hMdDec->spar_hoa_md_flag ) ? 1 : sba_order_internal, dtx_vad, NULL ); /* expand DirAC TC 20ms MD for residual channels to all subframes*/ for ( block = 0; block < MAX_PARAM_SPATIAL_SUBFRAMES; block++ ) diff --git a/lib_dec/ivas_stat_dec.h b/lib_dec/ivas_stat_dec.h index 75af2658d3..50369fab6d 100644 --- a/lib_dec/ivas_stat_dec.h +++ b/lib_dec/ivas_stat_dec.h @@ -41,7 +41,7 @@ #include "ivas_stat_com.h" #include "ivas_stat_rend.h" #ifdef EXT_RENDERER -#include "common_api_types.h" +#include "common_api_types.h" // VE2AT: don't we want to avoid this include in the library? I admit that the rules hefre are not 100% clear to me but introducing it just for IVAS_QUATERNION is not necessry I think #endif @@ -807,9 +807,7 @@ typedef struct ivas_spar_md_dec_state_t ivas_huff_coeffs_t huff_coeffs; int16_t table_idx; int16_t dtx_vad; -#ifdef SBA_HOA_HBR_IMPROV int16_t spar_hoa_md_flag; -#endif } ivas_spar_md_dec_state_t; @@ -876,7 +874,7 @@ typedef struct ivas_spar_dec_lib_t int16_t dirac_to_spar_md_bands[DIRAC_MAX_NBANDS]; int16_t enc_param_start_band; int32_t core_nominal_brate; /* Nominal bitrate for core coding */ - int32_t i_subframe; + int16_t i_subframe; #ifdef DEBUG_SBA_AUDIO_DUMP int16_t numOutChannels; @@ -986,7 +984,7 @@ typedef struct mct_dec_data_structure /*----------------------------------------------------------------------------------* * EFAP structures *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? typedef struct EFAP_VERTEX { float azi; /* azimuth of the loudspeaker */ @@ -1049,7 +1047,7 @@ typedef struct EFAP /*----------------------------------------------------------------------------------* * VBAP structures *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? enum SpeakerNodeGroup { SPEAKER_NODE_BOTTOM_HALF, @@ -1107,7 +1105,7 @@ typedef struct vbap_data_structure /*----------------------------------------------------------------------------------* * renderer structures *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? typedef struct renderer_struct { float prev_gains[MAX_CICP_CHANNELS - 1][MAX_OUTPUT_CHANNELS]; @@ -1174,7 +1172,7 @@ typedef struct ivas_masa_decoder_struct /*----------------------------------------------------------------------------------* * Binaural Rendering structure *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? /* Binaural reverberator structure */ typedef struct ivas_binaural_reverb_struct { @@ -1293,7 +1291,7 @@ typedef struct ivas_binaural_rendering_struct /*----------------------------------------------------------------------------------* * Head tracking data structure *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? #ifndef EXT_RENDERER /* Quaternion type for head orientation */ typedef struct Quaternion_struct @@ -1326,7 +1324,7 @@ typedef struct ivas_binaural_head_track_struct /*----------------------------------------------------------------------------------* * TD ISm Object Renderer structure *----------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? typedef struct { SFX_OpMode_t OpMode; /* Operating mode. This effect can only be TRANSIENT or OFF. */ @@ -1634,7 +1632,7 @@ typedef struct ivas_binaural_td_rendering_struct /*------------------------------------------------------------------------------------------* * Crend structures *------------------------------------------------------------------------------------------*/ - +// VE2AT: move to ivas_rom_rend.h ? typedef struct ivas_hrtfs_structure { float *pOut_to_bin_re[MAX_INTERN_CHANNELS][BINAURAL_CHANNELS]; @@ -1656,6 +1654,7 @@ typedef struct ivas_hrtfs_structure /* Reverberator structures */ + typedef struct ivas_roomAcoustics_t { int16_t override; diff --git a/lib_dec/ivas_stereo_mdct_core_dec.c b/lib_dec/ivas_stereo_mdct_core_dec.c index 82ad3fc95b..d0d05f1fa0 100644 --- a/lib_dec/ivas_stereo_mdct_core_dec.c +++ b/lib_dec/ivas_stereo_mdct_core_dec.c @@ -340,11 +340,7 @@ void stereo_mdct_core_dec( #ifdef DEBUGGING assert( ( sts[0]->core == sts[1]->core ) || ( ( hCPE->hStereoMdct->mdct_stereo_mode[0] == SMDCT_DUAL_MONO ) && ( hCPE->hStereoMdct->mdct_stereo_mode[1] == SMDCT_DUAL_MONO ) ) ); #endif -#ifdef FIX_TCX10_STEREO_PROC stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], x[0], x[1], &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], L_frameTCX[1], 0, sts[0]->last_core, sts[1]->last_core, 0 ); -#else - stereo_decoder_tcx( hCPE->hStereoMdct, ms_mask, x_0[1], x[0], x[1], &hCPE->hStereoMdct->mdct_stereo_mode[0], sts[0]->core, sts[1]->core, sts[0]->igf, L_frameTCX[0], 0, sts[0]->last_core, sts[1]->last_core, 0 ); -#endif } ivas_mdct_core_tns_ns( hCPE, 0, fUseTns, tnsData, x, Aq, 0 ); diff --git a/lib_dec/ivas_stereo_mdct_stereo_dec.c b/lib_dec/ivas_stereo_mdct_stereo_dec.c index 1bdbb5eda7..67b893a9f2 100644 --- a/lib_dec/ivas_stereo_mdct_stereo_dec.c +++ b/lib_dec/ivas_stereo_mdct_stereo_dec.c @@ -214,12 +214,8 @@ void stereo_decoder_tcx( const int16_t core_l, /* i : core for left channel (TCX20/TCX10) */ const int16_t core_r, /* i : core for right channel (TCX20/TCX10) */ const int16_t igf, /* i : flag for IGF activity */ -#ifdef FIX_TCX10_STEREO_PROC const int16_t L_frameTCX_l, /* i : TCX frame length of left channel */ const int16_t L_frameTCX_r, /* i : TCX frame length of right channel */ -#else - const int16_t L_frame, /* i : TCX frame length */ -#endif const int16_t mct_on, /* i : flag mct block (1) or stereo (0) */ const int16_t last_core_l, /* i : last core for left channel */ const int16_t last_core_r, /* i : last core for right channel */ @@ -333,19 +329,11 @@ void stereo_decoder_tcx( if ( ( nrgRatio > 1.0f ) && ( k < ( ( core_r == TCX_20_CORE ) ? 1 : NB_DIV ) ) ) { -#ifdef FIX_TCX10_STEREO_PROC v_multc( spec_r[k], nrgRatio, spec_r[k], L_frameTCX_r ); -#else - v_multc( spec_r[k], nrgRatio, spec_r[k], L_frame / ( ( core_r == TCX_20_CORE ) ? 1 : NB_DIV ) ); -#endif } else if ( ( nrgRatio < 1.0f ) && ( k < ( ( core_l == TCX_20_CORE ) ? 1 : NB_DIV ) ) ) { -#ifdef FIX_TCX10_STEREO_PROC v_multc( spec_l[k], 1.0f / nrgRatio, spec_l[k], L_frameTCX_l ); -#else - v_multc( spec_l[k], 1.0f / nrgRatio, spec_l[k], L_frame / ( ( core_l == TCX_20_CORE ) ? 1 : NB_DIV ) ); -#endif } } } /* for k */ diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index 41196b6b02..8e56ed5ef7 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -51,7 +51,14 @@ * Local prototypes *-------------------------------------------------------------*/ +#ifdef FIX_TCX_DEC_RECONF_BFI +static void dec_prm_tcx( Decoder_State *st, int16_t param[], int16_t param_lpc[], int16_t *total_nbbits, const int16_t last_element_mode, int16_t *bitsRead ); +#else static void dec_prm_tcx( Decoder_State *st, int16_t param[], int16_t param_lpc[], int16_t *total_nbbits, int16_t *bitsRead ); +#endif +#ifdef FIX_TCX_DEC_RECONF_BFI +static void stereo_tcx_dec_mode_switch_reconf( Decoder_State *st, const int16_t MCT_flag, const int16_t last_element_mode ); +#endif /*-------------------------------------------------------------* @@ -66,7 +73,9 @@ void stereo_tcx_init_dec( const int16_t last_element_mode /* i : element mode of previous frame */ ) { +#ifndef FIX_TCX_DEC_RECONF_BFI int16_t frame_size_index; +#endif TCX_LTP_DEC_HANDLE hTcxLtpDec = st->hTcxLtpDec; TCX_DEC_HANDLE hTcxDec = st->hTcxDec; @@ -125,9 +134,19 @@ void stereo_tcx_init_dec( } } +#ifdef FIX_TCX_DEC_RECONF_BFI + if ( ( st->bits_frame_nominal != st->last_bits_frame_nominal ) || + ( st->bwidth != st->last_bwidth ) || + ( st->last_core != TCX_20_CORE && st->last_core != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) || + ( st->idchan == 1 && st->element_mode == IVAS_CPE_MDCT && last_element_mode != IVAS_CPE_MDCT ) ) +#else if ( ( st->bits_frame_nominal != st->last_bits_frame_nominal ) || ( st->bwidth != st->last_bwidth ) || ( st->last_core != TCX_20_CORE && st->last_core != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core == ACELP_CORE && st->last_con_tcx == 1 ) ) || ( st->idchan == 1 && st->element_mode == IVAS_CPE_MDCT && last_element_mode != IVAS_CPE_MDCT ) ) +#endif { /*re-initialization*/ +#ifdef FIX_TCX_DEC_RECONF_BFI + stereo_tcx_dec_mode_switch_reconf( st, MCT_flag, last_element_mode ); +#else st->rate_switching_init = 1; /* Identify frame type - TCX Reconfiguration */ @@ -151,6 +170,7 @@ void stereo_tcx_init_dec( /* Reconfigure Core */ mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, MCT_flag, last_element_mode ); +#endif } return; @@ -284,7 +304,11 @@ void stereo_tcx_core_dec( tcx_current_overlap_mode = st->hTcxCfg->tcx_curr_overlap_mode; #endif +#ifdef FIX_TCX_DEC_RECONF_BFI + dec_prm_tcx( st, param, param_lpc, &total_nbbits, last_element_mode, &bitsRead ); +#else dec_prm_tcx( st, param, param_lpc, &total_nbbits, &bitsRead ); +#endif #ifdef FIX_IVAS_337 /*IVAS-337 consider BER */ if ( !st->rate_switching_init && st->BER_detect ) @@ -808,6 +832,9 @@ static void dec_prm_tcx( int16_t param[], /* o : decoded parameters */ int16_t param_lpc[], /* o : LPC parameters */ int16_t *total_nbbits, /* i/o: number of bits / decoded bits */ +#ifdef FIX_TCX_DEC_RECONF_BFI + const int16_t last_element_mode, +#endif int16_t *bitsRead /* o : number of read bits */ ) { @@ -861,6 +888,14 @@ static void dec_prm_tcx( st->prev_bfi = 1; } +#ifdef FIX_TCX_DEC_RECONF_BFI + /* possible need for reconfiguration can only be decided correctly once last_core_from_bs has been decoded */ + if ( ( st->last_core != st->last_core_from_bs ) && ( st->last_core_from_bs != TCX_20_CORE && st->last_core_from_bs != TCX_10_CORE && !( st->prev_bfi == 1 && st->last_core_from_bs == ACELP_CORE && st->last_con_tcx == 1 ) ) ) + { + stereo_tcx_dec_mode_switch_reconf( st, 0, last_element_mode ); + } +#endif + st->last_core = st->last_core_from_bs; /*for TCX 10 force last_core to be TCX since ACELP as previous core is forbidden*/ @@ -923,3 +958,38 @@ static void dec_prm_tcx( return; } + +#ifdef FIX_TCX_DEC_RECONF_BFI +static void stereo_tcx_dec_mode_switch_reconf( + Decoder_State *st, + const int16_t MCT_flag, + const int16_t last_element_mode +) +{ + int16_t frame_size_index; + + st->rate_switching_init = 1; + + /* Identify frame type - TCX Reconfiguration */ + for ( frame_size_index = 0; frame_size_index < FRAME_SIZE_NB; frame_size_index++ ) + { + if ( frame_size_index < FRAME_SIZE_NB - 1 ) + { + if ( ( FrameSizeConfig[frame_size_index].frame_bits <= st->bits_frame_nominal ) && ( FrameSizeConfig[frame_size_index + 1].frame_bits > st->bits_frame_nominal ) ) + { + break; + } + } + else + { + if ( FrameSizeConfig[frame_size_index].frame_bits <= st->bits_frame_nominal ) + { + break; + } + } + } + + /* Reconfigure Core */ + mode_switch_decoder_LPD( st, st->bwidth, st->bits_frame_nominal * FRAMES_PER_SEC, st->last_bits_frame_nominal * FRAMES_PER_SEC, frame_size_index, MCT_flag, last_element_mode ); +} +#endif diff --git a/lib_dec/ivas_vbap.c b/lib_dec/ivas_vbap.c index 2534854e8b..f0960bd127 100644 --- a/lib_dec/ivas_vbap.c +++ b/lib_dec/ivas_vbap.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: move to lib_rend ? #include #include "options.h" #include diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index c63a2e064e..d16d1f2494 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1767,7 +1767,7 @@ static ivas_error printConfigInfo_dec( else if ( st_ivas->ivas_format == SBA_FORMAT ) { #ifdef PRINT_SBA_ORDER - fprintf( stdout, "Input configuration: Scene Based Analysis, Ambisonic order %i%s, %d transport channel(s)\n", st_ivas->sba_order, st_ivas->sba_planar ? " (Planar)" : "", st_ivas->nchan_transport ); + fprintf( stdout, "Input configuration: Scene Based Audio, Ambisonic order %i%s, %d transport channel(s)\n", st_ivas->sba_order, st_ivas->sba_planar ? " (Planar)" : "", st_ivas->nchan_transport ); #else fprintf( stdout, "Input configuration: SBA - %d transport channel(s) %s\n", st_ivas->nchan_transport, st_ivas->sba_planar ? "(Planar)" : "" ); #endif diff --git a/lib_enc/igf_enc.c b/lib_enc/igf_enc.c index 6050354a8f..e355cd2083 100755 --- a/lib_enc/igf_enc.c +++ b/lib_enc/igf_enc.c @@ -462,7 +462,7 @@ static void IGF_CalculateEnvelope( float diffSFM; float shiftedSFM = 0.f; - tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); + tmp_tb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb], swb_offset[sfb + 1] ); tmp_sb = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, tmp, strt_cpy ) / IGF_getCrest_new( hPrivateData->logSpec, tmp, strt_cpy ); if ( last_core_acelp || hPrivateData->wasTransient ) @@ -494,12 +494,12 @@ static void IGF_CalculateEnvelope( if ( slope < -threshold ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] - shift, swb_offset[sfb + 1] - shift ); } else if ( ( slope > 1.f * threshold ) && ( sfb != hGrid->sfbWrap[hGrid->nTiles] - 1 ) ) { int16_t shift = width >> 1; - shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new ( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); + shiftedSFM = IGF_getSFM_new( pPowerSpectrum, hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ) / IGF_getCrest_new( hPrivateData->logSpec, swb_offset[sfb] + shift, swb_offset[sfb + 1] + shift ); } if ( shiftedSFM > 0.04f ) diff --git a/lib_enc/init_enc.c b/lib_enc/init_enc.c index 1ae2f48c66..4e4ab24369 100644 --- a/lib_enc/init_enc.c +++ b/lib_enc/init_enc.c @@ -785,7 +785,12 @@ ivas_error init_encoder( } initFdCngEnc( st->hFdCngEnc, st->input_Fs, st->cldfbAnaEnc->scale ); - configureFdCngEnc( st->hFdCngEnc, st->bwidth, st->rf_mode && st->total_brate == ACELP_13k20 ? ACELP_9k60 : st->total_brate ); + + /* initialization for IVAS modes happens in first frame pre-processing */ + if ( st->element_mode == EVS_MONO ) + { + configureFdCngEnc( st->hFdCngEnc, st->bwidth, st->rf_mode && st->total_brate == ACELP_13k20 ? ACELP_9k60 : st->total_brate ); + } } else { diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 0f3274f43c..b7f69b38b0 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -60,24 +60,42 @@ static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_ #endif #ifdef AGC_ENABLE_FOR_LBR +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION /*-----------------------------------------------------------------------------------------* - * Function ivas_agc_enc_get_enablement_flag() + * Function ivas_agc_enc_get_flag() * * This function determines if AGC should be enabled or disabled. * If agc_configuration is not undefined, then this value decides on the state of * enablement, otherwise AGC is enabled only if there is one transport channel. * *-----------------------------------------------------------------------------------------*/ +#else +/*-----------------------------------------------------------------------------------------* + * Function ivas_agc_enc_get_flag() + * + * This function determines if AGC should be enabled or disabled. + * AGC is enabled only if there is one transport channel. + * + *-----------------------------------------------------------------------------------------*/ +#endif -int16_t ivas_agc_enc_get_enablement_flag( - IVAS_ENC_AGC agc_configuration, - int16_t nchan_transport ) +/*! r: AGC enable flag */ +int16_t ivas_agc_enc_get_flag( +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + int16_t agc_configuration, /* i : AGC configuration from command-line */ +#endif + int16_t nchan_transport /* i : number of transport channels */ +) { - return (int16_t) ( ( agc_configuration == IVAS_ENC_AGC_UNDEFINED ) - ? ( nchan_transport == 1 ) - : agc_configuration ); -} +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + return (int16_t) ( ( agc_configuration == SBA_AGC_DEFAULT ) + ? ( nchan_transport == 1 ) + : agc_configuration ); +#else + return (int16_t) ( nchan_transport == 1 ); #endif +} +#endif /* AGC_ENABLE_FOR_LBR */ /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_init() @@ -127,6 +145,7 @@ static void ivas_agc_enc_init( return; } + /*------------------------------------------------------------------------- * ivas_spar_agc_enc_open() * @@ -140,7 +159,11 @@ ivas_error ivas_spar_agc_enc_open( ) { ivas_agc_enc_state_t *hAgc; +#ifdef FIX_AGC_WINFUNC_MEMORY + int16_t input_frame, delay; +#else int16_t input_frame; +#endif if ( ( hAgc = (ivas_agc_enc_state_t *) count_malloc( sizeof( ivas_agc_enc_state_t ) ) ) == NULL ) { @@ -148,8 +171,15 @@ ivas_error ivas_spar_agc_enc_open( } input_frame = (int16_t) ( input_Fs / FRAMES_PER_SEC ); +#ifdef FIX_AGC_WINFUNC_MEMORY + delay = NS2SA( input_Fs, ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) ); +#endif +#ifdef FIX_AGC_WINFUNC_MEMORY + if ( ( hAgc->agc_com.winFunc = (float *) count_malloc( sizeof( float ) * ( input_frame - delay ) ) ) == NULL ) +#else if ( ( hAgc->agc_com.winFunc = (float *) count_malloc( sizeof( float ) * input_frame ) ) == NULL ) +#endif { return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR AGC encoder" ); } @@ -164,13 +194,18 @@ ivas_error ivas_spar_agc_enc_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR AGC encoder" ); } +#ifdef FIX_AGC_WINFUNC_MEMORY + ivas_agc_enc_init( hAgc, input_frame, nchan_inp, delay ); +#else ivas_agc_enc_init( hAgc, input_frame, nchan_inp, NS2SA( input_Fs, ( IVAS_ENC_DELAY_NS + IVAS_DEC_DELAY_NS ) ) ); +#endif *hAgcEnc = hAgc; return IVAS_ERR_OK; } + /*------------------------------------------------------------------------- * ivas_spar_agc_enc_close() * @@ -203,6 +238,7 @@ void ivas_spar_agc_enc_close( return; } + /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_process() * diff --git a/lib_enc/ivas_core_enc.c b/lib_enc/ivas_core_enc.c index 597f1d5854..b863944b57 100644 --- a/lib_enc/ivas_core_enc.c +++ b/lib_enc/ivas_core_enc.c @@ -79,10 +79,8 @@ ivas_error ivas_core_enc( float enerBuffer[CPE_CHANNELS][CLDFB_NO_CHANNELS_MAX], /* i : energy buffer */ float fft_buff[CPE_CHANNELS][2 * L_FFT], /* i : FFT buffer */ const int16_t tdm_SM_or_LRTD_Pri, /* i : channel combination scheme flag in TD stereo OR LRTD primary channel */ -#ifdef CORECODER_BITRATE_SWITCHING - const int16_t ivas_format, /* i : IVAS format */ -#endif - const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ + const int16_t ivas_format, /* i : IVAS format */ + const int16_t flag_16k_smc /* i : flag to indicate if the OL SMC is run at 16 kHz */ ) { int16_t n, input_frame; @@ -104,11 +102,7 @@ ivas_error ivas_core_enc( int16_t unbits[CPE_CHANNELS]; float tdm_lspQ_PCh[M], tdm_lsfQ_PCh[M]; int16_t last_element_mode, tdm_Pitch_reuse_flag; -#ifdef CORECODER_BITRATE_SWITCHING int32_t element_brate, last_element_brate, input_Fs; -#else - int32_t element_brate, input_Fs; -#endif ivas_error error; wmops_sub_start( "ivas_core_enc" ); @@ -127,9 +121,7 @@ ivas_error ivas_core_enc( hStereoTD = NULL; hStereoICBWE = NULL; element_brate = hSCE->element_brate; -#ifdef CORECODER_BITRATE_SWITCHING last_element_brate = hSCE->last_element_brate; -#endif last_element_mode = IVAS_SCE; tdm_Pitch_reuse_flag = -1; } @@ -144,9 +136,7 @@ ivas_error ivas_core_enc( sts = hCPE->hCoreCoder; hStereoICBWE = hCPE->hStereoICBWE; element_brate = hCPE->element_brate; -#ifdef CORECODER_BITRATE_SWITCHING last_element_brate = hCPE->last_element_brate; -#endif last_element_mode = hCPE->last_element_mode; if ( hCPE->hStereoTD != NULL ) @@ -187,11 +177,7 @@ ivas_error ivas_core_enc( * Pre-processing, incl. Decision matrix *---------------------------------------------------------------------*/ -#ifdef CORECODER_BITRATE_SWITCHING if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, ivas_format == SBA_FORMAT ? last_element_brate : element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], MCT_flag, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) -#else - if ( ( error = pre_proc_ivas( st, last_element_mode, element_brate, input_frame, old_inp_12k8[n], old_inp_16k[n], &inp[n], &ener[n], A[n], Aw[n], epsP[n], lsp_new[n], lsp_mid[n], new_inp_resamp16k[n], &Voicing_flag[n], old_wsp[n], loc_harm[n], cor_map_sum[n], vad_flag_dtx[n], enerBuffer[n], fft_buff[n], MCT_flag, vad_hover_flag[n], flag_16k_smc ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_enc/ivas_core_pre_proc.c b/lib_enc/ivas_core_pre_proc.c index 3cc206e65e..acbacc09e0 100644 --- a/lib_enc/ivas_core_pre_proc.c +++ b/lib_enc/ivas_core_pre_proc.c @@ -52,12 +52,10 @@ *--------------------------------------------------------------------*/ ivas_error pre_proc_ivas( - Encoder_State *st, /* i/o: encoder state structure */ - const int16_t last_element_mode, /* i : last element mode */ - const int32_t element_brate, /* i : element bitrate */ -#ifdef CORECODER_BITRATE_SWITCHING - const int32_t last_element_brate, /* i : last element bitrate */ -#endif + Encoder_State *st, /* i/o: encoder state structure */ + const int16_t last_element_mode, /* i : last element mode */ + const int32_t element_brate, /* i : element bitrate */ + const int32_t last_element_brate, /* i : last element bitrate */ const int16_t input_frame, /* i : frame length */ float old_inp_12k8[], /* i/o: buffer of old input signal */ float old_inp_16k[], /* i/o: buffer of old input signal @ 16kHz */ @@ -278,12 +276,10 @@ ivas_error pre_proc_ivas( { st->hTcxEnc->tfm_mem = 0.75f; } -#ifdef CORECODER_BITRATE_SWITCHING else if ( element_brate != last_element_brate ) { SetModeIndex( st, st->bits_frame_nominal * FRAMES_PER_SEC, element_mode, MCT_flag ); } -#endif /*-----------------------------------------------------------------* diff --git a/lib_enc/ivas_core_pre_proc_front.c b/lib_enc/ivas_core_pre_proc_front.c index 51a549505f..b4336bdf62 100644 --- a/lib_enc/ivas_core_pre_proc_front.c +++ b/lib_enc/ivas_core_pre_proc_front.c @@ -553,7 +553,7 @@ ivas_error pre_proc_front_ivas( * Adjust FD-CNG Noise Estimator *----------------------------------------------------------------*/ - if ( st->hFdCngEnc != NULL && ( last_element_brate != element_brate || st->last_bwidth != st->bwidth ) ) + if ( st->hFdCngEnc != NULL && ( st->ini_frame == 0 || last_element_brate != element_brate || st->last_bwidth != st->bwidth ) ) { configureFdCngEnc( st->hFdCngEnc, max( st->input_bwidth, WB ), st->bits_frame_nominal * FRAMES_PER_SEC ); if ( hCPE != NULL ) diff --git a/lib_enc/ivas_corecoder_enc_reconfig.c b/lib_enc/ivas_corecoder_enc_reconfig.c index f4b302eefd..dffd53bb93 100644 --- a/lib_enc/ivas_corecoder_enc_reconfig.c +++ b/lib_enc/ivas_corecoder_enc_reconfig.c @@ -43,7 +43,6 @@ #include "wmops.h" -#ifdef CORECODER_BITRATE_SWITCHING /*-------------------------------------------------------------------* * ivas_corecoder_enc_reconfig() * @@ -393,4 +392,3 @@ ivas_error ivas_corecoder_enc_reconfig( return error; } -#endif diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 491a9ab358..e047defac6 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -612,11 +612,7 @@ ivas_error ivas_cpe_enc( * Core Encoder *----------------------------------------------------------------*/ -#ifdef CORECODER_BITRATE_SWITCHING if ( ( error = ivas_core_enc( NULL, hCPE, st_ivas->hMCT, n_CoreChannels, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, tdm_SM_or_LRTD_Pri, ivas_format, 0 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_core_enc( NULL, hCPE, st_ivas->hMCT, n_CoreChannels, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, tdm_SM_or_LRTD_Pri, 0 ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_enc/ivas_dirac_enc.c b/lib_enc/ivas_dirac_enc.c index 6d281256d9..96a005a0b3 100644 --- a/lib_enc/ivas_dirac_enc.c +++ b/lib_enc/ivas_dirac_enc.c @@ -334,12 +334,8 @@ void ivas_dirac_enc( set_zero( data_f[2], input_frame ); } - ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame -#ifdef SBA_HOA_HBR_IMPROV - , - SBA_MODE_DIRAC -#endif - ); + ivas_dirac_param_est_enc( hDirAC, &( hQMetaData->q_direction[0] ), hQMetaData->useLowerRes, data_f, NULL, NULL, input_frame, + SBA_MODE_DIRAC ); /* encode parameters */ if ( sba_planar || hQMetaData->useLowerRes ) { @@ -457,7 +453,6 @@ void ivas_dirac_enc_spar_delay_synchro( { int16_t ch_idx; float tmp_buffer[L_FRAME48k]; -#ifdef CORECODER_BITRATE_SWITCHING Encoder_State *sts[MCT_MAX_BLOCKS]; int16_t sce_id, cpe_id, i_chan; @@ -487,7 +482,6 @@ void ivas_dirac_enc_spar_delay_synchro( mvr2r( sts[ch_idx]->input, st_ivas->hDirAC->sba_synchro_buffer[ch_idx], st_ivas->hDirAC->num_samples_synchro_delay ); } } -#endif for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) { @@ -514,18 +508,14 @@ void computeReferencePower_enc( float *reference_power, /* o : Estimated power */ const int16_t enc_param_start_band, /* i : first band to process */ const int16_t num_freq_bands /* i : Number of frequency bands */ -#ifdef SBA_HOA_HBR_IMPROV , const SBA_MODE sba_mode /* i : SBA mode */ -#endif ) { int16_t brange[2]; int16_t ch_idx, i, j; -#ifdef SBA_HOA_HBR_IMPROV float reference_power_W[DIRAC_MAX_NBANDS]; -#endif for ( i = 0; i < num_freq_bands; i++ ) { @@ -533,19 +523,13 @@ void computeReferencePower_enc( brange[1] = band_grouping[i + enc_param_start_band + 1]; reference_power[i] = 0; -#ifdef SBA_HOA_HBR_IMPROV reference_power_W[i] = 0; for ( j = brange[0]; j < brange[1]; j++ ) { reference_power_W[i] += ( Cldfb_RealBuffer[0][j] * Cldfb_RealBuffer[0][j] ) + ( Cldfb_ImagBuffer[0][j] * Cldfb_ImagBuffer[0][j] ); } reference_power[i] += reference_power_W[i]; -#endif -#ifdef SBA_HOA_HBR_IMPROV for ( ch_idx = 1; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) -#else - for ( ch_idx = 0; ch_idx < DIRAC_MAX_ANA_CHANS; ch_idx++ ) -#endif { /* abs()^2 */ for ( j = brange[0]; j < brange[1]; j++ ) @@ -556,7 +540,6 @@ void computeReferencePower_enc( } v_multc( reference_power, 0.5f, reference_power, num_freq_bands ); -#ifdef SBA_HOA_HBR_IMPROV if ( sba_mode == SBA_MODE_SPAR ) { for ( i = 0; i < num_freq_bands; i++ ) @@ -564,7 +547,6 @@ void computeReferencePower_enc( reference_power[i] = max( reference_power[i], reference_power_W[i] ); } } -#endif return; } @@ -583,12 +565,8 @@ void ivas_dirac_param_est_enc( float data_f[][L_FRAME48k], float **pp_fr_real, float **pp_fr_imag, - const int16_t input_frame -#ifdef SBA_HOA_HBR_IMPROV - , - const SBA_MODE sba_mode -#endif -) + const int16_t input_frame, + const SBA_MODE sba_mode ) { int16_t i, d, ts, index, l_ts, num_freq_bands; int16_t band_m_idx, block_m_idx; @@ -686,12 +664,8 @@ void ivas_dirac_param_est_enc( Cldfb_ImagBuffer, reference_power[ts], hDirAC->hConfig->enc_param_start_band, - num_freq_bands -#ifdef SBA_HOA_HBR_IMPROV - , - sba_mode -#endif - ); + num_freq_bands, + sba_mode ); computeIntensityVector_enc( hDirAC, diff --git a/lib_enc/ivas_enc.c b/lib_enc/ivas_enc.c index 75ffc5212d..7be1f11c49 100644 --- a/lib_enc/ivas_enc.c +++ b/lib_enc/ivas_enc.c @@ -65,7 +65,9 @@ ivas_error ivas_enc( float data_f[MAX_INPUT_CHANNELS][L_FRAME48k]; /* IVAS_fmToDo: buffer can be allocated dynamically based on the number of analysed channels */ int32_t ivas_total_brate; ivas_error error; - +#ifdef SBA_BR_SWITCHING + int16_t sba_reinit_flag; +#endif error = IVAS_ERR_OK; wmops_sub_start( "ivas_enc" ); @@ -85,6 +87,20 @@ ivas_error ivas_enc( n_samples_chan = n_samples / nchan_inp; set_s( nb_bits_metadata, 0, MAX_SCE ); +#ifdef SBA_BR_SWITCHING + sba_reinit_flag = 0; + if ( ivas_format == SBA_FORMAT ) + { + sba_reinit_flag = get_sba_reinit_flag( ivas_total_brate, st_ivas->hEncoderConfig->last_ivas_total_brate ); + if ( sba_reinit_flag ) + { + if ( ( error = ivas_sba_enc_reinit( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + } +#endif /*----------------------------------------------------------------* * convert 'short' input data to 'float' @@ -189,7 +205,11 @@ ivas_error ivas_enc( /* SBA/MASA configuration */ if ( ivas_format == SBA_FORMAT ) { +#ifndef SBA_BR_SWITCHING if ( st_ivas->sba_mode == SBA_MODE_DIRAC ) +#else + if ( ( st_ivas->sba_mode == SBA_MODE_DIRAC ) && ( !sba_reinit_flag ) ) +#endif { if ( ( error = ivas_sba_enc_reconfigure( st_ivas ) ) != IVAS_ERR_OK ) { diff --git a/lib_enc/ivas_enc_cov_handler.c b/lib_enc/ivas_enc_cov_handler.c index 907b8c5908..933c2c5de9 100644 --- a/lib_enc/ivas_enc_cov_handler.c +++ b/lib_enc/ivas_enc_cov_handler.c @@ -141,44 +141,23 @@ void ivas_spar_covar_enc_close( void ivas_enc_cov_handler_process( ivas_enc_cov_handler_state_t *hCovEnc, /* i/o: SPAR Covar. encoder handle */ -#ifdef SBA_SPAR_HARM float **ppIn_FR_real, float **ppIn_FR_imag, float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_enc_cov_handler_in_buf_t *pIn_buf, - float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], - float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#endif ivas_filterbank_t *pFb, /* i/o: FB handle */ const int16_t start_band, - const int16_t end_band -#ifdef SBA_SPAR_HARM - , + const int16_t end_band, const int16_t num_ch, const int16_t dtx_vad, - const int16_t transient_det -#endif -) + const int16_t transient_det ) { int16_t i, j; -#ifdef SBA_SPAR_HARM int16_t dtx_cov_flag; dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; -#else - ivas_cov_smooth_in_buf_t pCov_in_buf; - int16_t num_ch = pIn_buf->num_ch; - - pCov_in_buf.num_ch = num_ch; -#endif -#ifdef SBA_SPAR_HARM ivas_band_cov( ppIn_FR_real, ppIn_FR_imag, num_ch, hCovEnc->num_bins, -#else - ivas_band_cov( pIn_buf->ppIn_FR_real, pIn_buf->ppIn_FR_imag, pIn_buf->num_ch, hCovEnc->num_bins, -#endif pFb->fb_bin_to_band.short_stride, pFb->fb_bin_to_band.pp_short_stride_bin_to_band, pFb->fb_bin_to_band.p_short_stride_start_bin_per_band, @@ -213,36 +192,20 @@ void ivas_enc_cov_handler_process( { for ( j = 0; j < num_ch; j++ ) { -#ifndef SBA_SPAR_HARM - pCov_in_buf.cov_real[i][j] = cov_real[i][j]; -#endif mvr2r( cov_real[i][j], cov_dtx_real[i][j], pFb->filterbank_num_bands ); } } -#ifdef SBA_SPAR_HARM ivas_cov_smooth_process( hCovEnc->pCov_state, cov_real, pFb, start_band, end_band, num_ch, transient_det ); -#else - ivas_cov_smooth_process( hCovEnc->pCov_state, &pCov_in_buf, pFb, start_band, end_band ); -#endif -#ifdef SBA_SPAR_HARM if ( dtx_cov_flag == 0 ) -#else - if ( pIn_buf->dtx_cov_flag == 0 ) -#endif { for ( i = 0; i < num_ch; i++ ) { for ( j = 0; j < num_ch; j++ ) { -#ifdef SBA_SPAR_HARM mvr2r( cov_real[i][j], hCovEnc->pCov_dtx_state->pPrior_cov_real[i][j], pFb->filterbank_num_bands ); mvr2r( cov_real[i][j], cov_dtx_real[i][j], pFb->filterbank_num_bands ); -#else - mvr2r( pCov_in_buf.cov_real[i][j], hCovEnc->pCov_dtx_state->pPrior_cov_real[i][j], pFb->filterbank_num_bands ); - mvr2r( pCov_in_buf.cov_real[i][j], cov_dtx_real[i][j], pFb->filterbank_num_bands ); -#endif } } @@ -250,46 +213,16 @@ void ivas_enc_cov_handler_process( } else { -#ifdef SBA_SPAR_HARM if ( transient_det == 0 ) -#else - if ( pIn_buf->transient_det == 0 ) -#endif { -#ifdef SBA_SPAR_HARM ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, cov_dtx_real, pFb, start_band, end_band, num_ch, transient_det ); -#else - for ( i = 0; i < num_ch; i++ ) - { - for ( j = 0; j < num_ch; j++ ) - { - pCov_in_buf.cov_real[i][j] = cov_dtx_real[i][j]; - } - } - - pCov_in_buf.reset_cov = 0; - ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, &pCov_in_buf, pFb, start_band, end_band ); -#endif hCovEnc->prior_dtx_present = 1; } else { if ( hCovEnc->prior_dtx_present == 0 ) { -#ifdef SBA_SPAR_HARM ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, cov_dtx_real, pFb, start_band, end_band, num_ch, transient_det ); -#else - for ( i = 0; i < num_ch; i++ ) - { - for ( j = 0; j < num_ch; j++ ) - { - pCov_in_buf.cov_real[i][j] = cov_dtx_real[i][j]; - } - } - - pCov_in_buf.reset_cov = 1; - ivas_cov_smooth_process( hCovEnc->pCov_dtx_state, &pCov_in_buf, pFb, start_band, end_band ); -#endif hCovEnc->prior_dtx_present = 1; } else diff --git a/lib_enc/ivas_entropy_coder.c b/lib_enc/ivas_entropy_coder.c index 7f5ab7b996..a3714821f3 100644 --- a/lib_enc/ivas_entropy_coder.c +++ b/lib_enc/ivas_entropy_coder.c @@ -316,17 +316,13 @@ void ivas_arith_encode_cmplx_cell_array( int16_t input[IVAS_MAX_INPUT_LEN]; ivas_cell_dim_t cell_dim[IVAS_MAX_NUM_BANDS], cell_dim_diff[IVAS_MAX_NUM_BANDS]; int16_t len, idx, i, j, idx1; -#ifdef SBA_HOA_HBR_IMPROV int16_t total_len; -#endif idx1 = 0; if ( any_diff == 1 ) { idx = 0; -#ifdef SBA_HOA_HBR_IMPROV total_len = 0; -#endif for ( i = 0; i < nB; i++ ) { len = ( pCell_dims[i].dim1 * pCell_dims[i].dim2 ); @@ -334,13 +330,8 @@ void ivas_arith_encode_cmplx_cell_array( { for ( j = 0; j < len; j++ ) { -#ifdef SBA_HOA_HBR_IMPROV input_old[idx] = pSymbol_old_re[total_len + j]; input_new[idx++] = pSymbol_re[total_len + j]; -#else - input_old[idx] = pSymbol_old_re[i * len + j]; - input_new[idx++] = pSymbol_re[i * len + j]; -#endif } cell_dim_diff[i].dim1 = pCell_dims[i].dim1; cell_dim_diff[i].dim2 = pCell_dims[i].dim2; @@ -351,20 +342,14 @@ void ivas_arith_encode_cmplx_cell_array( { for ( j = 0; j < len; j++ ) { -#ifdef SBA_HOA_HBR_IMPROV input[idx1++] = pSymbol_re[total_len + j]; -#else - input[idx1++] = pSymbol_re[i * len + j]; -#endif } cell_dim_diff[i].dim1 = 0; cell_dim_diff[i].dim2 = 0; cell_dim[i].dim1 = pCell_dims[i].dim1; cell_dim[i].dim2 = pCell_dims[i].dim2; } -#ifdef SBA_HOA_HBR_IMPROV total_len += len; -#endif } #ifdef SPAR_HOA_DBG /*if ( 0 )*/ /*(pCell_dims[0].dim1 == 12)*/ diff --git a/lib_enc/ivas_front_vad.c b/lib_enc/ivas_front_vad.c index 1d18af7761..62eeee5a02 100644 --- a/lib_enc/ivas_front_vad.c +++ b/lib_enc/ivas_front_vad.c @@ -396,7 +396,11 @@ ivas_error front_vad_spar( hFrontVad = hSpar->hFrontVad; st = hSpar->hCoreCoderVAD; +#ifdef FIX_SBA_DTX_DECODE_ERROR + if ( hEncoderConfig->Opt_DTX_ON && hEncoderConfig->ivas_total_brate <= SBA_DTX_BITRATE_THRESHOLD ) +#else if ( hEncoderConfig->Opt_DTX_ON && hEncoderConfig->ivas_total_brate <= IVAS_80k ) +#endif { /*------------------------------------------------------------------* * Initialization diff --git a/lib_enc/ivas_init_enc.c b/lib_enc/ivas_init_enc.c index 8d79594c7e..18280a60e2 100644 --- a/lib_enc/ivas_init_enc.c +++ b/lib_enc/ivas_init_enc.c @@ -190,12 +190,10 @@ int16_t getNumChanAnalysis( { n = st_ivas->hEncoderConfig->nchan_inp; } -#ifdef FIX_155_HP20_ISSUE else if ( st_ivas->hEncoderConfig->ivas_format == ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_PARAM ) { n = st_ivas->hEncoderConfig->nchan_inp; } -#endif return n; } diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index 2122dcf874..3c8a1f04b3 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -262,11 +262,7 @@ ivas_error ivas_ism_enc( * Encoder *----------------------------------------------------------------*/ -#ifdef CORECODER_BITRATE_SWITCHING if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8[sce_id], old_inp_16k[sce_id], Etot[sce_id], ener[sce_id], A[sce_id], Aw[sce_id], epsP[sce_id], lsp_new[sce_id], lsp_mid[sce_id], vad_hover_flag[sce_id], attack_flag[sce_id], realBuffer[sce_id], imagBuffer[sce_id], old_wsp[sce_id], loc_harm[sce_id], cor_map_sum[sce_id], vad_flag_dtx[sce_id], enerBuffer[sce_id], fft_buff[sce_id], 0, ISM_FORMAT, 0 ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8[sce_id], old_inp_16k[sce_id], Etot[sce_id], ener[sce_id], A[sce_id], Aw[sce_id], epsP[sce_id], lsp_new[sce_id], lsp_mid[sce_id], vad_hover_flag[sce_id], attack_flag[sce_id], realBuffer[sce_id], imagBuffer[sce_id], old_wsp[sce_id], loc_harm[sce_id], cor_map_sum[sce_id], vad_flag_dtx[sce_id], enerBuffer[sce_id], fft_buff[sce_id], 0, 0 ) ) != IVAS_ERR_OK ) -#endif { return error; } diff --git a/lib_enc/ivas_ism_param_enc.c b/lib_enc/ivas_ism_param_enc.c index 3358e41e21..8dcdef30b5 100644 --- a/lib_enc/ivas_ism_param_enc.c +++ b/lib_enc/ivas_ism_param_enc.c @@ -41,11 +41,6 @@ #include "ivas_rom_com.h" #include "wmops.h" -#ifndef FIX_155_HP20_ISSUE -#ifdef CORECODER_BITRATE_SWITCHING -static ivas_error ivas_hp20_reconfig( Encoder_Struct *st_ivas, const int16_t nchan_hp20_old ); -#endif -#endif /*------------------------------------------------------------------------- * Local function definitions *------------------------------------------------------------------------*/ @@ -419,14 +414,7 @@ ivas_error ivas_ism_enc_config( { ivas_error error; ISM_MODE last_ism_mode; -#ifdef ISM_BITRATE_SWITCHING -#ifdef CORECODER_BITRATE_SWITCHING int16_t nchan_transport_old; -#else - int16_t nSCE_old, nchan_transport_old; - int16_t sce_id, n; -#endif -#endif error = IVAS_ERR_OK; last_ism_mode = st_ivas->ism_mode; @@ -434,18 +422,11 @@ ivas_error ivas_ism_enc_config( /* select ISM format mode */ st_ivas->ism_mode = ivas_ism_mode_select( st_ivas->hEncoderConfig->nchan_inp, st_ivas->hEncoderConfig->ivas_total_brate ); -#ifdef ISM_BITRATE_SWITCHING /* ISM bit-rate switching */ if ( ( st_ivas->ism_mode != last_ism_mode ) || ( st_ivas->hEncoderConfig->ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate ) ) { int32_t element_brate_tmp[MAX_NUM_OBJECTS]; -#ifndef CORECODER_BITRATE_SWITCHING - Indice *ind_list_sce, *ind_list_metadata; -#endif -#ifndef CORECODER_BITRATE_SWITCHING - nSCE_old = st_ivas->nSCE; -#endif nchan_transport_old = st_ivas->nchan_transport; /* Reset and Initialize */ @@ -463,60 +444,7 @@ ivas_error ivas_ism_enc_config( ivas_ism_config( st_ivas->hEncoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hEncoderConfig->nchan_inp, NULL, NULL, NULL, element_brate_tmp, NULL, NULL ); -#ifdef CORECODER_BITRATE_SWITCHING ivas_corecoder_enc_reconfig( st_ivas, nchan_transport_old, 0, nchan_transport_old ); -#else - if ( st_ivas->nSCE > nSCE_old ) - { - /* Reconfigure the core coders */ - for ( sce_id = 0; sce_id < nSCE_old; sce_id++ ) - { - copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Initialize the extra required memory */ - ind_list_sce = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr->ind_list; - ind_list_metadata = st_ivas->hSCE[0]->hMetaData->ind_list; - - for ( sce_id = nSCE_old; sce_id < st_ivas->nSCE; sce_id++ ) - { - /* Initialize the Core Coder */ - if ( ( error = create_sce_enc( st_ivas, sce_id, element_brate_tmp[sce_id] ) ) != IVAS_ERR_OK ) - { - return error; - } - - /* prepare bitstream buffers */ - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list_sce + ( sce_id * MAX_NUM_INDICES ); - reset_indices_enc( st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES ); - - st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + ( sce_id * MAX_BITS_METADATA ); - reset_indices_enc( st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA ); - } - } - else - { - /* Reconfigure the Core Coders */ - for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) - { - copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); - st_ivas->hSCE[sce_id]->element_brate = st_ivas->hEncoderConfig->ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - - /* Delete the extra memory */ - for ( sce_id = st_ivas->nSCE; sce_id < nSCE_old; sce_id++ ) - { - if ( st_ivas->hSCE[sce_id] != NULL ) - { - destroy_sce_enc( st_ivas->hSCE[sce_id] ); - st_ivas->hSCE[sce_id] = NULL; - } - } - } -#endif if ( st_ivas->ism_mode == ISM_MODE_PARAM && last_ism_mode == ISM_MODE_DISC ) { @@ -533,147 +461,7 @@ ivas_error ivas_ism_enc_config( ivas_param_ism_enc_close( st_ivas->hDirAC, st_ivas->hEncoderConfig->input_Fs ); st_ivas->hDirAC = NULL; } - -#ifndef FIX_155_HP20_ISSUE -#ifdef CORECODER_BITRATE_SWITCHING - ivas_hp20_reconfig( st_ivas, nchan_transport_old ); -#else - /* destroy the memory of hp20*/ - if ( st_ivas->mem_hp20_in != NULL ) - { - for ( sce_id = 0; sce_id < nSCE_old; sce_id++ ) - { - count_free( st_ivas->mem_hp20_in[sce_id] ); - st_ivas->mem_hp20_in[sce_id] = NULL; - } - count_free( st_ivas->mem_hp20_in ); - st_ivas->mem_hp20_in = NULL; - } - - /* re initialize the memory of hp20 */ - /* set number of input channels used for analysis/coding */ - n = getNumChanAnalysis( st_ivas ); - - if ( n > 0 ) - { - if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - } - else - { - st_ivas->mem_hp20_in = NULL; - } - - for ( sce_id = 0; sce_id < n; sce_id++ ) - { - if ( ( st_ivas->mem_hp20_in[sce_id] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - set_f( st_ivas->mem_hp20_in[sce_id], 0.0f, L_HP20_MEM ); - } -#endif -#endif } -#else - /* ISM format switching */ - if ( st_ivas->ism_mode != last_ism_mode ) - { - /*ivas_ism_dec_reconfigure( st_ivas );*/ - return IVAS_ERROR( IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, "Error: ISM format switching not supported yet!!!\n\n" ); - } -#endif return error; } - -#ifndef FIX_155_HP20_ISSUE -#ifdef CORECODER_BITRATE_SWITCHING -// VE: this is the same function as at the decoder -> harmonize them to a new file ivas_corecoder_reconfig.c -/*-------------------------------------------------------------------* - * ivas_hp20_dec_reconfig() - * - * Allocate, initialize, and configure HP20 memory handles in case of bitrate switching - *-------------------------------------------------------------------*/ - -static ivas_error ivas_hp20_reconfig( - Encoder_Struct *st_ivas, /* i/o: IVAS encoder structure */ - const int16_t nchan_hp20_old /* i : number of HP20 filters in previous frame */ -) -{ - int16_t i, nchan_hp20; - float **old_mem_hp20_out; - ivas_error error; - - error = IVAS_ERR_OK; - - /*-----------------------------------------------------------------* - * HP20 memories - *-----------------------------------------------------------------*/ - - nchan_hp20 = getNumChanAnalysis( st_ivas ); - - if ( nchan_hp20 > nchan_hp20_old ) - { - /* save old mem_hp_20 pointer */ - old_mem_hp20_out = st_ivas->mem_hp20_in; - st_ivas->mem_hp20_in = NULL; - - if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( nchan_hp20 * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - for ( i = 0; i < nchan_hp20_old; i++ ) - { - st_ivas->mem_hp20_in[i] = old_mem_hp20_out[i]; - old_mem_hp20_out[i] = NULL; - } - /* create additional hp20 memories */ - for ( ; i < nchan_hp20; i++ ) - { - if ( ( st_ivas->mem_hp20_in[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - set_f( st_ivas->mem_hp20_in[i], 0.0f, L_HP20_MEM ); - } - - count_free( old_mem_hp20_out ); - old_mem_hp20_out = NULL; - } - else if ( nchan_hp20 < nchan_hp20_old ) - { - /* save old mem_hp_20 pointer */ - old_mem_hp20_out = st_ivas->mem_hp20_in; - st_ivas->mem_hp20_in = NULL; - - if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( nchan_hp20 * sizeof( float * ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); - } - - for ( i = 0; i < nchan_hp20; i++ ) - { - st_ivas->mem_hp20_in[i] = old_mem_hp20_out[i]; - old_mem_hp20_out[i] = NULL; - } - /* remove superfluous hp20 memories */ - for ( ; i < nchan_hp20_old; i++ ) - { - count_free( old_mem_hp20_out[i] ); - old_mem_hp20_out[i] = NULL; - } - - count_free( old_mem_hp20_out ); - old_mem_hp20_out = NULL; - } - - return error; -} -#endif -#endif diff --git a/lib_enc/ivas_mcmasa_enc.c b/lib_enc/ivas_mcmasa_enc.c index 1329e572ae..de816f3bf7 100644 --- a/lib_enc/ivas_mcmasa_enc.c +++ b/lib_enc/ivas_mcmasa_enc.c @@ -892,12 +892,8 @@ void ivas_mcmasa_param_est_enc( intensity_even_real ); computeReferencePower_enc( hMcMasa->band_grouping, FoaEven_RealBuffer, FoaEven_ImagBuffer, reference_power[ts], 0, - num_freq_bands -#ifdef SBA_HOA_HBR_IMPROV - , - SBA_MODE_NONE -#endif - ); + num_freq_bands, + SBA_MODE_NONE ); /* Fill buffers of length "averaging_length" time slots for intensity and energy */ hMcMasa->index_buffer_intensity = ( hMcMasa->index_buffer_intensity % hMcMasa->no_col_avg_diff ) + 1; /* averaging_length = 32 */ diff --git a/lib_enc/ivas_mct_core_enc.c b/lib_enc/ivas_mct_core_enc.c index f682a380f7..30e7022698 100644 --- a/lib_enc/ivas_mct_core_enc.c +++ b/lib_enc/ivas_mct_core_enc.c @@ -178,7 +178,6 @@ static void AdjustChannelRatios( } chBitRatios[1] += ratio_diff; -#ifdef SBA_HOA_HBR_IMPROV /* make sure final ratios are within range*/ sum_ratio = 0.0f; for ( i = 0; i < nChannels; i++ ) @@ -190,7 +189,6 @@ static void AdjustChannelRatios( cur_ratio = chBitRatios[i] / sum_ratio; chBitRatios[i] = min( BITRATE_MCT_RATIO_RANGE - 1, max( 1, (uint16_t) ( BITRATE_MCT_RATIO_RANGE * cur_ratio + 0.5f ) ) ); } -#endif return; } diff --git a/lib_enc/ivas_sba_enc.c b/lib_enc/ivas_sba_enc.c index d4c7c70b21..aca565b64d 100644 --- a/lib_enc/ivas_sba_enc.c +++ b/lib_enc/ivas_sba_enc.c @@ -93,329 +93,260 @@ void ivas_sba_getTCs( return; } - +#ifdef SBA_BR_SWITCHING /*-------------------------------------------------------------------* - * ivas_sba_enc_reconfigure() + * ivas_sba_enc_reinit() * - * Reconfigure IVAS SBA encoder + * Reinitialise IVAS SBA encoder *-------------------------------------------------------------------*/ -ivas_error ivas_sba_enc_reconfigure( +ivas_error ivas_sba_enc_reinit( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ ) { - int16_t nSCE_old, nCPE_old, nchan_transport_old; -#ifndef CORECODER_BITRATE_SWITCHING - int16_t n, sce_id, cpe_id; + int16_t nSCE_old; + int16_t nCPE_old; + int16_t sce_id; + int16_t cpe_id; + int16_t n; Indice *ind_list_metadata; -#endif int32_t ivas_total_brate; + int16_t i, nchan_inp; ivas_error error; + ENCODER_CONFIG_HANDLE hEncoderConfig; + Indice *ind_list; + BSTR_ENC_HANDLE hBstr; + BSTR_ENC_HANDLE hMetaData; + hEncoderConfig = st_ivas->hEncoderConfig; + ivas_total_brate = hEncoderConfig->ivas_total_brate; error = IVAS_ERR_OK; - + nchan_inp = st_ivas->hEncoderConfig->nchan_inp; ivas_total_brate = st_ivas->hEncoderConfig->ivas_total_brate; - if ( ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate ) + nCPE_old = st_ivas->nCPE; + nSCE_old = st_ivas->nSCE; + ind_list_metadata = NULL; + + + ind_list = NULL; + hBstr = NULL; + hMetaData = NULL; + + /* get the index list pointers */ + if ( nSCE_old ) { - nchan_transport_old = st_ivas->nchan_transport; - nCPE_old = st_ivas->nCPE; - nSCE_old = st_ivas->nSCE; -#ifndef CORECODER_BITRATE_SWITCHING - ind_list_metadata = NULL; -#endif + hBstr = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr; + hMetaData = st_ivas->hSCE[0]->hMetaData; + } + else if ( nCPE_old ) + { + hBstr = st_ivas->hCPE[0]->hCoreCoder[0]->hBstr; + hMetaData = st_ivas->hCPE[nCPE_old - 1]->hMetaData; + } - st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); + /* save bitstream information */ + ind_list = hBstr->ind_list; + ind_list_metadata = hMetaData->ind_list; - ivas_dirac_enc_reconfigure( st_ivas ); + /*------------------------------------------------------------------------------------------* + * Closing Encoder handles before Reinitialisation + *------------------------------------------------------------------------------------------*/ + /* Q Metadata handle */ + ivas_qmetadata_close( &( st_ivas->hQMetaData ) ); + /* DirAC handle */ + if ( st_ivas->hDirAC != NULL ) + { + ivas_dirac_enc_close( st_ivas->hDirAC, st_ivas->hEncoderConfig->input_Fs ); -#ifdef CORECODER_BITRATE_SWITCHING - /*-----------------------------------------------------------------* - * Allocate, initalize, and configure SCE/CPE/MCT handles - *-----------------------------------------------------------------*/ + st_ivas->hDirAC = NULL; + } - ivas_corecoder_enc_reconfig( st_ivas, nSCE_old, nCPE_old, nchan_transport_old ); -#else + /* SPAR handle */ + if ( st_ivas->hSpar != NULL ) + { + ivas_spar_enc_close( st_ivas->hSpar, st_ivas->hEncoderConfig->input_Fs, nchan_inp ); + st_ivas->hSpar = NULL; + } + /* SCE handles */ + for ( i = 0; i < MAX_SCE; i++ ) + { + if ( st_ivas->hSCE[i] != NULL ) + { + destroy_sce_enc( st_ivas->hSCE[i] ); + st_ivas->hSCE[i] = NULL; + } + } - if ( hEncoderConfig->nchan_transport == nchan_transport_old ) + /* CPE handles */ + for ( i = 0; i < MAX_CPE; i++ ) + { + if ( st_ivas->hCPE[i] != NULL ) { - for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) - { - copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); - st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } + destroy_cpe_enc( st_ivas->hCPE[i] ); + st_ivas->hCPE[i] = NULL; + } + } + /* MCT handle */ + if ( st_ivas->hMCT != NULL ) + { + ivas_mct_enc_close( st_ivas->hMCT ); + st_ivas->hMCT = NULL; + } + if ( st_ivas->mem_hp20_in != NULL ) + { + n = getNumChanAnalysis( st_ivas ); - for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) - { - st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - copy_encoder_config( st_ivas, st_ivas->hCPE[cpe_id]->hCoreCoder[n], 0 ); - - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - } + for ( i = 0; i < n; i++ ) + { + count_free( st_ivas->mem_hp20_in[i] ); + st_ivas->mem_hp20_in[i] = NULL; + } + count_free( st_ivas->mem_hp20_in ); + st_ivas->mem_hp20_in = NULL; + } - if ( st_ivas->nCPE > 1 ) - { - if ( ( error = mct_enc_reconfigure( st_ivas, 0 ) ) != IVAS_ERR_OK ) - { - return error; - } - } + /*------------------------------------------------------------------------------------------* + * Reopening Encoder handles for Reinitialisation + *------------------------------------------------------------------------------------------*/ + + if ( ( error = ivas_qmetadata_open( &( st_ivas->hQMetaData ) ) ) != IVAS_ERR_OK ) + { + return error; + } + + st_ivas->sba_mode = ivas_sba_mode_select( ivas_total_brate ); + st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); + + if ( st_ivas->sba_mode == SBA_MODE_SPAR ) + { + if ( ( error = ivas_spar_enc_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; } - else + } + + if ( ( error = ivas_dirac_enc_open( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + + + for ( sce_id = 0; sce_id < st_ivas->nSCE; sce_id++ ) + { + if ( ( error = create_sce_enc( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) { - Indice *ind_list; - int16_t nb_bits_tot; - int16_t next_ind; - int16_t last_ind; - BSTR_ENC_HANDLE hBstr; - BSTR_ENC_HANDLE hMetaData; - - ind_list = NULL; - hBstr = NULL; - hMetaData = NULL; - - /* get the index list pointers */ - if ( nSCE_old ) - { - hBstr = st_ivas->hSCE[0]->hCoreCoder[0]->hBstr; - hMetaData = st_ivas->hSCE[0]->hMetaData; - } - else if ( nCPE_old ) - { - hBstr = st_ivas->hCPE[0]->hCoreCoder[0]->hBstr; - hMetaData = st_ivas->hCPE[nCPE_old - 1]->hMetaData; - } -#ifdef DEBUGGING - else - { - assert( 0 && "At least one SCE or one CPE should have existed before!\n" ); - } -#endif + return error; + } - /* save bitstream information */ - ind_list = hBstr->ind_list; - nb_bits_tot = hBstr->nb_bits_tot; - next_ind = hBstr->next_ind; - last_ind = hBstr->last_ind; - ind_list_metadata = hMetaData->ind_list; + /* prepare bitstream buffers */ + st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list + sce_id * MAX_NUM_INDICES; + reset_indices_enc( st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES ); - /* destroy superfluous core coder elements */ - for ( sce_id = st_ivas->nSCE; sce_id < nSCE_old; sce_id++ ) - { - destroy_sce_enc( st_ivas->hSCE[sce_id] ); - st_ivas->hSCE[sce_id] = NULL; - } + st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + sce_id * MAX_BITS_METADATA; + reset_indices_enc( st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA ); - for ( cpe_id = st_ivas->nCPE; cpe_id < nCPE_old; cpe_id++ ) - { - destroy_cpe_enc( st_ivas->hCPE[cpe_id] ); - st_ivas->hCPE[cpe_id] = NULL; - } + if ( st_ivas->sba_mode == SBA_MODE_SPAR && st_ivas->hEncoderConfig->Opt_DTX_ON ) + { + st_ivas->hSCE[sce_id]->hCoreCoder[0]->dtx_sce_sba = 1; + } + } - if ( st_ivas->nCPE <= 1 && st_ivas->hMCT != NULL ) - { - ivas_mct_enc_close( st_ivas->hMCT ); - st_ivas->hMCT = NULL; - } + for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ ) + { + if ( ( error = create_cpe_enc( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) + { + return error; + } - /* special case, if we have MCT now and had a single CPE before, remove the MDCT Stereo handles */ - if ( st_ivas->nCPE > 1 && nCPE_old == 1 ) - { - count_free( st_ivas->hCPE[0]->hStereoMdct ); - st_ivas->hCPE[0]->hStereoMdct = NULL; - } + /* prepare bitstream buffers */ + for ( n = 0; n < CPE_CHANNELS; n++ ) + { + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->ind_list = ind_list + ( cpe_id * CPE_CHANNELS + n ) * MAX_NUM_INDICES; + reset_indices_enc( st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr, MAX_NUM_INDICES ); - /* create missing core coder elements and set element bitrates for alrady existing ones */ - if ( st_ivas->nSCE > 0 ) + if ( hEncoderConfig->Opt_DTX_ON ) { - int16_t nSCE_existing; - nSCE_existing = min( nSCE_old, st_ivas->nSCE ); - for ( sce_id = 0; sce_id < nSCE_existing; sce_id++ ) - { - copy_encoder_config( st_ivas, st_ivas->hSCE[sce_id]->hCoreCoder[0], 0 ); - st_ivas->hSCE[sce_id]->element_brate = ivas_total_brate / st_ivas->nchan_transport; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->total_brate = st_ivas->hSCE[sce_id]->element_brate; /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - for ( sce_id = nSCE_existing; sce_id < st_ivas->nSCE; sce_id++ ) - { - if ( ( error = create_sce_enc( st_ivas, sce_id, ivas_total_brate / st_ivas->nchan_transport ) ) != IVAS_ERR_OK ) - { - return error; - } - - /* prepare bitstream buffers */ - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->ind_list = ind_list + sce_id * MAX_NUM_INDICES; - - /* only reset indices if it is not the first index list, this already contains the IVAS format bits */ - if ( sce_id > 0 ) - { - reset_indices_enc( st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr, MAX_NUM_INDICES ); - } - else - { - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->last_ind = last_ind; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->nb_bits_tot = nb_bits_tot; - st_ivas->hSCE[sce_id]->hCoreCoder[0]->hBstr->next_ind = next_ind; - } - - st_ivas->hSCE[sce_id]->hMetaData->ind_list = ind_list_metadata + sce_id * MAX_BITS_METADATA; - reset_indices_enc( st_ivas->hSCE[sce_id]->hMetaData, MAX_BITS_METADATA ); - } + st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 1; } + } - if ( st_ivas->nCPE > 0 ) - { - int16_t nCPE_existing; - nCPE_existing = min( nCPE_old, st_ivas->nCPE ); - for ( cpe_id = 0; cpe_id < nCPE_existing; cpe_id++ ) - { - st_ivas->hCPE[cpe_id]->element_brate = ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS; - - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - copy_encoder_config( st_ivas, st_ivas->hCPE[cpe_id]->hCoreCoder[n], 0 ); - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->total_brate = st_ivas->hCPE[cpe_id]->element_brate / ( st_ivas->nCPE > 1 ? 1 : CPE_CHANNELS ); /* dummy initialization for getting right pointers initialization of input buffers in init_coder_ace_plus() */ - } - } - - for ( cpe_id = nCPE_existing; cpe_id < st_ivas->nCPE; cpe_id++ ) - { - if ( ( error = create_cpe_enc( st_ivas, cpe_id, ( ivas_total_brate / st_ivas->nchan_transport ) * CPE_CHANNELS ) ) != IVAS_ERR_OK ) - { - return error; - } - - /* prepare bitstream buffers */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->ind_list = ind_list + ( cpe_id * CPE_CHANNELS + n ) * MAX_NUM_INDICES; - if ( cpe_id * CPE_CHANNELS + n > 0 ) - { - reset_indices_enc( st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr, MAX_NUM_INDICES ); - } - else - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->last_ind = last_ind; - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->nb_bits_tot = nb_bits_tot; - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->hBstr->next_ind = next_ind; - } - - if ( st_ivas->hEncoderConfig->Opt_DTX_ON ) - { - st_ivas->hCPE[cpe_id]->hCoreCoder[n]->cng_sba_flag = 1; - } - } - } - } + /* Metadata only initialized for the last CPE index */ + if ( cpe_id == st_ivas->nCPE - 1 ) + { + st_ivas->hCPE[cpe_id]->hMetaData->ind_list = ind_list_metadata + sce_id * MAX_BITS_METADATA; + reset_indices_enc( st_ivas->hCPE[cpe_id]->hMetaData, MAX_BITS_METADATA ); + } + } - if ( st_ivas->nCPE > 1 && nCPE_old <= 1 ) - { - if ( nCPE_old == 1 ) - { - /* set correct nominal bitrates and igf config already here, needed for the correct init of the MDCT Stereo handles for MCT */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[0]->hCoreCoder[n]->total_brate = st_ivas->hCPE[0]->element_brate; - - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[0]->element_brate / FRAMES_PER_SEC ); - st_ivas->hCPE[0]->hCoreCoder[n]->igf = getIgfPresent( st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal * FRAMES_PER_SEC, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode ); - - if ( st_ivas->hCPE[0]->hCoreCoder[n]->igf ) - { - IGFEncSetMode( st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, - st_ivas->hCPE[0]->element_brate, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); - } - } - } - - if ( ( error = create_mct_enc( st_ivas ) ) != IVAS_ERR_OK ) - { - return error; - } - } - else if ( st_ivas->hMCT != NULL && st_ivas->nCPE > 1 ) - { - if ( ( error = mct_enc_reconfigure( st_ivas, st_ivas->nCPE != nCPE_old ) ) != IVAS_ERR_OK ) - { - return error; - } - } + if ( st_ivas->nCPE > 1 ) + { + if ( ( error = create_mct_enc( st_ivas ) ) != IVAS_ERR_OK ) + { + return error; + } + } + n = getNumChanAnalysis( st_ivas ); - /* metadata handling for CPEs */ - if ( st_ivas->nCPE > 0 ) - { - if ( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData == NULL ) - { - if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData = (BSTR_ENC_HANDLE) count_malloc( sizeof( BSTR_ENC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MetaData structure\n" ) ); - } - } - - st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData->ind_list = ind_list_metadata; - reset_indices_enc( st_ivas->hCPE[st_ivas->nCPE - 1]->hMetaData, MAX_BITS_METADATA ); - - for ( cpe_id = 0; cpe_id < st_ivas->nCPE - 1; cpe_id++ ) - { - if ( st_ivas->hCPE[cpe_id]->hMetaData != NULL ) - { - count_free( st_ivas->hCPE[cpe_id]->hMetaData ); - st_ivas->hCPE[cpe_id]->hMetaData = NULL; - } - } - } + if ( n > 0 ) + { + if ( ( st_ivas->mem_hp20_in = (float **) count_malloc( n * sizeof( float * ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); + } + } + else + { + st_ivas->mem_hp20_in = NULL; + } - /* special case, if we have a single CPE and had MCT before we need to init the MDCT stereo handles here */ - if ( st_ivas->nCPE == 1 && nCPE_old > 1 ) - { - if ( ( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct = (STEREO_MDCT_ENC_DATA_HANDLE) count_malloc( sizeof( STEREO_MDCT_ENC_DATA ) ) ) == NULL ) - { - return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for MDCT Stereo \n" ) ); - } - - /* set correct nominal bitrates and igf config already here, needed for the correct init of the MDCT Stereo handle */ - for ( n = 0; n < CPE_CHANNELS; n++ ) - { - st_ivas->hCPE[0]->hCoreCoder[n]->total_brate = st_ivas->hCPE[0]->element_brate; - - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal = (int16_t) ( st_ivas->hCPE[0]->element_brate / FRAMES_PER_SEC ); - st_ivas->hCPE[0]->hCoreCoder[n]->igf = getIgfPresent( st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->bits_frame_nominal * FRAMES_PER_SEC, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode ); - - if ( st_ivas->hCPE[0]->hCoreCoder[n]->igf ) - { - IGFEncSetMode( st_ivas->hCPE[0]->hCoreCoder[n]->hIGFEnc, - st_ivas->hCPE[0]->element_brate, - st_ivas->hCPE[0]->hCoreCoder[n]->bwidth, - st_ivas->hCPE[0]->hCoreCoder[n]->element_mode, - st_ivas->hCPE[0]->hCoreCoder[n]->rf_mode ); - } - /* reset mct_chan_mode */ - st_ivas->hCPE[0]->hCoreCoder[n]->mct_chan_mode = MCT_CHAN_MODE_REGULAR; - } - - initMdctStereoEncData( st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct, st_ivas->hEncoderConfig->ivas_format, st_ivas->hCPE[st_ivas->nCPE - 1]->element_mode, st_ivas->hCPE[st_ivas->nCPE - 1]->element_brate, st_ivas->hEncoderConfig->max_bwidth, 0, NULL, 1 ); - st_ivas->hCPE[st_ivas->nCPE - 1]->hStereoMdct->isSBAStereoMode = ( ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT ) && ( st_ivas->nchan_transport == 2 ) ); - } + for ( i = 0; i < n; i++ ) + { + if ( ( st_ivas->mem_hp20_in[i] = (float *) count_malloc( L_HP20_MEM * sizeof( float ) ) ) == NULL ) + { + return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for HP20 filter memory\n" ) ); } + + set_f( st_ivas->mem_hp20_in[i], 0.0f, L_HP20_MEM ); + } + return error; +} #endif +/*-------------------------------------------------------------------* + * ivas_sba_enc_reconfigure() + * + * Reconfigure IVAS SBA encoder + *-------------------------------------------------------------------*/ + +ivas_error ivas_sba_enc_reconfigure( + Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ +) +{ + int16_t nSCE_old, nCPE_old, nchan_transport_old; + int32_t ivas_total_brate; + ivas_error error; + + error = IVAS_ERR_OK; + + ivas_total_brate = st_ivas->hEncoderConfig->ivas_total_brate; + + if ( ivas_total_brate != st_ivas->hEncoderConfig->last_ivas_total_brate ) + { + nchan_transport_old = st_ivas->nchan_transport; + nCPE_old = st_ivas->nCPE; + nSCE_old = st_ivas->nSCE; + + st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( ivas_total_brate, st_ivas->hEncoderConfig->sba_order ); + + ivas_dirac_enc_reconfigure( st_ivas ); + + + /*-----------------------------------------------------------------* + * Allocate, initalize, and configure SCE/CPE/MCT handles + *-----------------------------------------------------------------*/ + + ivas_corecoder_enc_reconfig( st_ivas, nSCE_old, nCPE_old, nchan_transport_old ); } return error; diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index 2592b578f6..0b49c56854 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -166,15 +166,11 @@ ivas_error ivas_sce_enc( st->total_brate = hSCE->element_brate - nb_bits_metadata * FRAMES_PER_SEC; /* set flag for sampling rate of OL S/M classifier */ -#ifdef CORECODER_BITRATE_SWITCHING // VE2EF: TBV whether it can be done more efficiently flag_16k_smc = 0; if ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT && ( st_ivas->hEncoderConfig->ivas_total_brate == IVAS_24k4 || st_ivas->hEncoderConfig->ivas_total_brate == IVAS_32k ) && hSCE->element_brate == hSCE->last_element_brate ) { flag_16k_smc = 1; } -#else - flag_16k_smc = ( st_ivas->hEncoderConfig->ivas_format == SBA_FORMAT && ( st_ivas->hEncoderConfig->ivas_total_brate == IVAS_24k4 || st_ivas->hEncoderConfig->ivas_total_brate == IVAS_32k ) ); -#endif #ifdef DEBUG_MODE_INFO dbgwrite( st->input - NS2SA( st->input_Fs, ACELP_LOOK_NS ), sizeof( float ), input_frame, 1, "res/input_DMX" ); @@ -241,11 +237,7 @@ ivas_error ivas_sce_enc( * Encoder *----------------------------------------------------------------*/ -#ifdef CORECODER_BITRATE_SWITCHING if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, ivas_format, flag_16k_smc ) ) != IVAS_ERR_OK ) -#else - if ( ( error = ivas_core_enc( hSCE, NULL, NULL, 1, old_inp_12k8, old_inp_16k, Etot, ener, A, Aw, epsP, lsp_new, lsp_mid, vad_hover_flag, attack_flag, realBuffer, imagBuffer, old_wsp, loc_harm, cor_map_sum, vad_flag_dtx, enerBuffer, fft_buff, 0, flag_16k_smc ) ) != IVAS_ERR_OK ) -#endif { return error; } @@ -257,9 +249,7 @@ ivas_error ivas_sce_enc( /* update input samples buffer */ mvr2r( st->input, st->old_input_signal, input_frame ); -#ifdef CORECODER_BITRATE_SWITCHING hSCE->last_element_brate = hSCE->element_brate; -#endif #ifdef DEBUG_MODE_INFO { @@ -307,9 +297,7 @@ ivas_error create_sce_enc( hSCE->sce_id = sce_id; hSCE->element_brate = element_brate; -#ifdef CORECODER_BITRATE_SWITCHING hSCE->last_element_brate = hSCE->element_brate; -#endif /*-----------------------------------------------------------------* * Metadata: allocate and initialize diff --git a/lib_enc/ivas_sns_enc.c b/lib_enc/ivas_sns_enc.c index 6790f0cf6d..45c04ac9ea 100644 --- a/lib_enc/ivas_sns_enc.c +++ b/lib_enc/ivas_sns_enc.c @@ -44,7 +44,6 @@ #include "wmops.h" - /*------------------------------------------------------------------- * sns_1st_cod() * diff --git a/lib_enc/ivas_spar_encoder.c b/lib_enc/ivas_spar_encoder.c index b5f00848a8..00d185fe08 100644 --- a/lib_enc/ivas_spar_encoder.c +++ b/lib_enc/ivas_spar_encoder.c @@ -121,13 +121,23 @@ ivas_error ivas_spar_enc_open( /* AGC handle */ #ifdef AGC_ENABLE_FOR_LBR - hSpar->AGC_Enable = ivas_agc_enc_get_enablement_flag( hEncoderConfig->Opt_AGC_ON, nchan_transport ); +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + hSpar->AGC_Enable = ivas_agc_enc_get_flag( hEncoderConfig->Opt_AGC_ON, nchan_transport ); +#else + hSpar->AGC_Enable = ivas_agc_enc_get_flag( nchan_transport ); +#endif +#endif + +#ifdef AGC_ENABLE_FOR_LBR + hSpar->hAgcEnc = NULL; + if ( hSpar->AGC_Enable ) #endif - if ( ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) { - return error; + if ( ( error = ivas_spar_agc_enc_open( &hSpar->hAgcEnc, input_Fs, nchan_inp ) ) != IVAS_ERR_OK ) + { + return error; + } } - /* PCA handle */ hSpar->hPCA = NULL; if ( hEncoderConfig->Opt_PCA_ON ) @@ -151,11 +161,11 @@ ivas_error ivas_spar_enc_open( if ( st_ivas->nchan_transport == 1 ) { - st_ivas->hEncoderConfig->element_mode_init = IVAS_SCE; + hEncoderConfig->element_mode_init = IVAS_SCE; } else { - st_ivas->hEncoderConfig->element_mode_init = IVAS_CPE_MDCT; + hEncoderConfig->element_mode_init = IVAS_CPE_MDCT; } /*-----------------------------------------------------------------* @@ -233,7 +243,6 @@ void ivas_spar_enc_close( hSpar->hFrontVad = NULL; } - num_chans = hSpar->hFbMixer->fb_cfg->num_in_chans; assert( num_chans <= nchan_inp ); @@ -288,7 +297,7 @@ ivas_error ivas_spar_enc( hEncoderConfig = st_ivas->hEncoderConfig; /* front VAD */ - if ( ( error = front_vad_spar( st_ivas->hSpar, data_f[0], st_ivas->hEncoderConfig, input_frame ) ) != IVAS_ERR_OK ) + if ( ( error = front_vad_spar( st_ivas->hSpar, data_f[0], hEncoderConfig, input_frame ) ) != IVAS_ERR_OK ) { return error; } @@ -310,8 +319,13 @@ ivas_error ivas_spar_enc( *nb_bits_metadata = hMetaData->nb_bits_tot; +#ifdef FIX_SBA_DTX_DECODE_ERROR + /* Force IVAS front pre-proc decision for higher bitrates */ + if ( hEncoderConfig->ivas_total_brate > SBA_DTX_BITRATE_THRESHOLD || hEncoderConfig->Opt_DTX_ON == 0 ) +#else /* temp hack to not force IVAS front pre-proc decision for higher bitrates */ if ( hEncoderConfig->ivas_total_brate > IVAS_64k || hEncoderConfig->Opt_DTX_ON == 0 ) +#endif { st_ivas->hSpar->front_vad_flag = 0; } @@ -319,69 +333,6 @@ ivas_error ivas_spar_enc( return error; } -#ifndef SBA_SPAR_HARM -/*-----------------------------------------------------------------------------------------* - * Function ivas_spar_enc_get_windowed_fr() - * - * Get windowed FRs - *-----------------------------------------------------------------------------------------*/ - -static void ivas_spar_enc_get_windowed_fr( - IVAS_FB_MIXER_HANDLE hFbMixer, - float *pIn_blocks[IVAS_SPAR_MAX_CH], - ivas_enc_cov_handler_in_buf_t *pCov_in_buf, - const int16_t input_frame, - const int16_t nchan_inp, - const int16_t num_past_samples ) -{ - int16_t i, j, rev_offset; - - for ( i = 0; i < nchan_inp; i++ ) - { - const int16_t stride = hFbMixer->pFb->fb_bin_to_band.short_stride; - float tmp_buf[MDFT_FB_BANDS_240 * 2]; - int16_t win_len = (int16_t) hFbMixer->ana_window_offset; - float *mdft_in_ptr = tmp_buf + stride - win_len; - float tmp_in_block[L_FRAME48k + MDFT_FB_BANDS_240]; - float *data_ptr = tmp_in_block; - float *fr_re_ptr = pCov_in_buf->ppIn_FR_real[i]; - float *fr_im_ptr = pCov_in_buf->ppIn_FR_imag[i]; - - set_f( tmp_buf, 0, MDFT_FB_BANDS_240 * 2 ); - - /* copy input data, because pIn_blocks and fr_re_ptr + fr_im_ptr use the same memory */ - mvr2r( &pIn_blocks[i][input_frame - num_past_samples], tmp_in_block, input_frame + win_len ); - - for ( int16_t blk = 0; blk < input_frame / stride; blk++ ) - { - - for ( j = 0; j < win_len; j++ ) - { - mdft_in_ptr[j] = data_ptr[j] * hFbMixer->pAna_window[j]; - } - - for ( j = win_len; j < stride; j++ ) - { - mdft_in_ptr[j] = data_ptr[j]; - } - - rev_offset = win_len - 1; - for ( j = stride; j < stride + win_len; j++ ) - { - mdft_in_ptr[j] = data_ptr[j] * hFbMixer->pAna_window[rev_offset--]; - } - - ivas_mdft( tmp_buf, fr_re_ptr, fr_im_ptr, stride << 1, stride ); - - data_ptr += stride; - fr_re_ptr += stride; - fr_im_ptr += stride; - } - } - - return; -} -#endif /*-----------------------------------------------------------------------------------------* * Function ivas_spar_enc_process() @@ -399,24 +350,11 @@ static ivas_error ivas_spar_enc_process( { float pcm_tmp[IVAS_SPAR_MAX_CH][L_FRAME48k * 2]; float *p_pcm_tmp[IVAS_SPAR_MAX_CH]; -#ifdef SBA_SPAR_HARM int16_t i, j, b, i_ts, input_frame, transient_det, dtx_vad; -#else - int16_t i, j, k, b, i_ts, input_frame, num_bands_bw; - int16_t dtx_vad, dtx_cov_flag, dtx_silence_mode; -#endif int32_t ivas_total_brate, input_Fs; -#ifndef SBA_SPAR_HARM - ivas_enc_cov_handler_in_buf_t cov_in_buf; -#endif float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; -#ifdef SBA_SPAR_HARM int16_t nchan_inp, nchan_transport, sba_order; -#else - ivas_spar_md_enc_in_buf_t md_in_buf; - int16_t nchan_inp, nchan_transport, bwidth, sba_order; -#endif int16_t table_idx; int16_t in_out_mixer_map[IVAS_MAX_FB_MIXER_OUT_CH][IVAS_MAX_SPAR_FB_MIXER_IN_CH]; ivas_error error; @@ -451,19 +389,11 @@ static ivas_error ivas_spar_enc_process( mvr2r( data_f[HOA_keep_ind[i]], data_f[i], input_frame ); } -#ifndef SBA_SPAR_HARM - table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); -#endif - /*-----------------------------------------------------------------------------------------* * Transient detector *-----------------------------------------------------------------------------------------*/ -#ifdef SBA_SPAR_HARM transient_det = ivas_transient_det_process( hSpar->hTranDet, data_f[0], input_frame ); -#else - cov_in_buf.transient_det = ivas_transient_det_process( hSpar->hTranDet, data_f[0], input_frame ); -#endif /* store previous input samples for W in local buffer */ assert( num_del_samples <= IVAS_FB_1MS_48K_SAMP ); @@ -482,27 +412,12 @@ static ivas_error ivas_spar_enc_process( ivas_fb_mixer_pcm_ingest( hSpar->hFbMixer, data_f, p_pcm_tmp, input_frame ); /* prepare Parameter MDFT analysis */ -#ifdef SBA_SPAR_HARM for ( i = 0; i < nchan_inp; i++ ) { ppIn_FR_real[i] = p_pcm_tmp[i]; ppIn_FR_imag[i] = p_pcm_tmp[i] + input_frame; p_pcm_tmp[i] = &data_f[i][0]; } -#else - for ( i = 0; i < nchan_inp; i++ ) - { - cov_in_buf.ppIn_FR_real[i] = p_pcm_tmp[i]; - cov_in_buf.ppIn_FR_imag[i] = p_pcm_tmp[i] + input_frame; - } - - for ( i = 0; i < nchan_inp; i++ ) - { - p_pcm_tmp[i] = &data_f[i][0]; - ppIn_FR_real[i] = cov_in_buf.ppIn_FR_real[i]; - ppIn_FR_imag[i] = cov_in_buf.ppIn_FR_imag[i]; - } -#endif l_ts = input_frame / MAX_PARAM_SPATIAL_SUBFRAMES; @@ -522,41 +437,18 @@ static ivas_error ivas_spar_enc_process( /* turn pointers back to the local buffer, needed for the following processing */ for ( i = 0; i < nchan_inp; i++ ) { -#ifdef SBA_SPAR_HARM ppIn_FR_real[i] = pcm_tmp[i]; ppIn_FR_imag[i] = pcm_tmp[i] + input_frame; -#endif p_pcm_tmp[i] = pcm_tmp[i]; } -#ifndef SBA_SPAR_HARM - cov_in_buf.num_ch = nchan_inp; -#endif - dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; /*-----------------------------------------------------------------------------------------* * DirAC encoding *-----------------------------------------------------------------------------------------*/ -#ifdef SBA_SPAR_HARM - ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, - data_f, ppIn_FR_real, ppIn_FR_imag, input_frame -#ifdef SBA_HOA_HBR_IMPROV - , - st_ivas->sba_mode -#endif - ); -#else - ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, - data_f, cov_in_buf.ppIn_FR_real, cov_in_buf.ppIn_FR_imag, input_frame -#ifdef SBA_HOA_HBR_IMPROV - , - st_ivas->sba_mode -#endif - ); -#endif - + ivas_dirac_param_est_enc( st_ivas->hDirAC, hQMetaData->q_direction, hQMetaData->useLowerRes, data_f, ppIn_FR_real, ppIn_FR_imag, input_frame, st_ivas->sba_mode ); if ( hQMetaData->q_direction->cfg.nbands > 0 ) { @@ -641,26 +533,10 @@ static ivas_error ivas_spar_enc_process( } } -#ifndef SBA_SPAR_HARM - /*-----------------------------------------------------------------------------------------* - * Pre-proc flags - *-----------------------------------------------------------------------------------------*/ - - /* use just VAD function to get VAD flags */ - dtx_vad = ( hEncoderConfig->Opt_DTX_ON == 1 ) ? front_vad_flag : 1; - dtx_cov_flag = ( dtx_vad == 1 ) ? 0 : 1; - dtx_silence_mode = 0; // VE2DB: this variable is always 0 - please review or remove it - bwidth = ivas_get_bw_idx_from_sample_rate( input_Fs ); - bwidth = min( bwidth, hEncoderConfig->max_bwidth ); -#endif - /*-----------------------------------------------------------------------------------------* * Covariance process *-----------------------------------------------------------------------------------------*/ -#ifndef SBA_SPAR_HARM - cov_in_buf.num_ch = nchan_inp; -#endif for ( i = 0; i < nchan_inp; i++ ) { for ( j = 0; j < nchan_inp; j++ ) @@ -670,104 +546,31 @@ static ivas_error ivas_spar_enc_process( } } -#ifdef SBA_SPAR_HARM ivas_enc_cov_handler_process( hSpar->hCovEnc, ppIn_FR_real, ppIn_FR_imag, cov_real, cov_dtx_real, hSpar->hFbMixer->pFb, 0, hSpar->hFbMixer->pFb->filterbank_num_bands, nchan_inp, dtx_vad, transient_det ); -#else - cov_in_buf.dtx_cov_flag = dtx_cov_flag; - - ivas_enc_cov_handler_process( hSpar->hCovEnc, &cov_in_buf, cov_real, cov_dtx_real, hSpar->hFbMixer->pFb, 0, hSpar->hFbMixer->pFb->filterbank_num_bands ); -#endif /*-----------------------------------------------------------------------------------------* * Set SPAR bitrates *-----------------------------------------------------------------------------------------*/ -#ifdef SBA_SPAR_HARM table_idx = ivas_get_spar_table_idx( ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); -#endif if ( hSpar->hMdEnc->table_idx != table_idx ) { hSpar->hMdEnc->table_idx = table_idx; - ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, -#ifdef SBA_HOA_HBR_IMPROV - ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND -#else - SPAR_DIRAC_SPLIT_START_BAND -#endif - ); + ivas_spar_set_bitrate_config( &hSpar->hMdEnc->spar_md_cfg, table_idx, ( hSpar->hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); } -#ifdef SBA_SPAR_HARM nchan_transport = st_ivas->nchan_transport; -#else - nchan_transport = hSpar->hMdEnc->spar_md_cfg.nchan_transport; -#endif /*-----------------------------------------------------------------------------------------* * MetaData encoder *-----------------------------------------------------------------------------------------*/ -#ifdef SBA_SPAR_HARM -#ifdef SBA_HOA_HBR_IMPROV if ( hSpar->hMdEnc->spar_hoa_md_flag == 0 ) -#endif { ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, nchan_inp, sba_order ); } -#else - num_bands_bw = ivas_get_num_bands_from_bw_idx( bwidth ); - - if ( dtx_vad == 0 ) - { - for ( i = 0; i < nchan_inp; i++ ) - { - for ( j = 0; j < nchan_inp; j++ ) - { - md_in_buf.cov_real[i][j] = cov_dtx_real[i][j]; - for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) - { - md_in_buf.cov_real[i][j][k] = 0; - } - } - } - } - else - { - for ( i = 0; i < nchan_inp; i++ ) - { - for ( j = 0; j < nchan_inp; j++ ) - { - md_in_buf.cov_real[i][j] = cov_real[i][j]; - for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) - { - md_in_buf.cov_real[i][j][k] = 0; - } - } - } - } - md_in_buf.num_bands = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW ); -#ifdef SBA_HOA_HBR_IMPROV - if ( hSpar->hMdEnc->spar_hoa_md_flag == 0 ) -#endif - { - md_in_buf.num_bands = min( md_in_buf.num_bands, SPAR_DIRAC_SPLIT_START_BAND ); - } - - md_in_buf.dtx_vad = dtx_vad; - -#ifdef SBA_HOA_HBR_IMPROV - if ( hSpar->hMdEnc->spar_hoa_md_flag == 0 ) -#endif - { - ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, &md_in_buf, hMetaData, dtx_silence_mode, sba_order ); - } -#endif - -#ifndef SBA_SPAR_HARM - if ( st_ivas->sba_mode == SBA_MODE_SPAR ) // VE2DB: this looks obsolete -#endif { float azi_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; float ele_dirac[IVAS_MAX_NUM_BANDS][MAX_PARAM_SPATIAL_SUBFRAMES]; @@ -800,33 +603,20 @@ static ivas_error ivas_spar_enc_process( Wscale_d[b] = 1.0f; for ( i = 1; i < nchan_inp; i++ ) { -#ifdef SBA_SPAR_HARM Wscale_d[b] += cov_real[i][i][b] / max( EPSILON, cov_real[0][0][b] ); -#else - Wscale_d[b] += md_in_buf.cov_real[i][i][b] / max( EPSILON, md_in_buf.cov_real[0][0][b] ); -#endif } Wscale_d[b] = Wscale_d[b] / ( 1.0f + (float) sba_order ); /*DirAC normalized signal variance sums to 1 + order*/ Wscale_d[b] = sqrtf( Wscale_d[b] ); Wscale_d[b] = min( 2.0f, max( Wscale_d[b], 1.0f ) ); } - ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, - d_start_band, d_end_band, -#ifdef SBA_HOA_HBR_IMPROV - ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, -#else - sba_order, -#endif - dtx_vad, Wscale_d ); + ivas_get_spar_md_from_dirac( azi_dirac, ele_dirac, diffuseness, 1, hSpar->hMdEnc->mixer_mat, &hSpar->hMdEnc->spar_md, &hSpar->hMdEnc->spar_md_cfg, d_start_band, d_end_band, ( hSpar->hMdEnc->spar_hoa_md_flag ) ? 1 : sba_order, dtx_vad, Wscale_d ); } -#ifdef SBA_HOA_HBR_IMPROV if ( hSpar->hMdEnc->spar_hoa_md_flag ) { ivas_spar_md_enc_process( hSpar->hMdEnc, hEncoderConfig, cov_real, cov_dtx_real, hMetaData, dtx_vad, nchan_inp, sba_order ); } -#endif /*-----------------------------------------------------------------------------------------* * FB mixer @@ -894,7 +684,7 @@ static ivas_error ivas_spar_enc_process( } else { - if ( ivas_total_brate == PCA_BRATE && sba_order == 1 ) + if ( ivas_total_brate == PCA_BRATE && sba_order == SBA_FOA_ORDER ) { /* write PCA bypass bit */ push_next_indice( hMetaData, PCA_MODE_INACTIVE, 1 ); @@ -935,6 +725,10 @@ static ivas_error ivas_spar_enc_process( } else { + /* IVAS_fmToDo: This AGC on/off bit should be removed when the command line option to force enable/disable AGC is + * removed. + * On the decoder side, ivas_agc_enc_get_flag could be used instead to determine if AGC is on or not. The + * ivas_agc_enc_get_flag function should be moved to ivas_agc_com.c and renamed when this occurs. */ push_next_indice( hMetaData, 0, 1 ); } } diff --git a/lib_enc/ivas_spar_md_enc.c b/lib_enc/ivas_spar_md_enc.c index 263d32292a..e6e8b0db61 100644 --- a/lib_enc/ivas_spar_md_enc.c +++ b/lib_enc/ivas_spar_md_enc.c @@ -82,11 +82,14 @@ static void ivas_select_next_strat( ivas_strats_t prior_strat, ivas_strats_t cs[ static void ivas_store_prior_coeffs( ivas_spar_md_enc_state_t *hMdEnc, const int16_t num_bands, const int16_t bands_bw, const int16_t strat, const int16_t dtx_vad, const int16_t qsi ); -static void ivas_write_spar_md_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t dtx_silence_mode, const int16_t strat, const int16_t qsi, const int16_t planarCP ); +static void ivas_write_spar_md_bitstream( ivas_spar_md_enc_state_t *hMdEnc, const int16_t nB, const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, const int16_t strat, const int16_t qsi, const int16_t planarCP ); static ivas_error ivas_spar_md_enc_init( ivas_spar_md_enc_state_t *hMdEnc, const ENCODER_CONFIG_HANDLE hEncoderConfig, const int16_t sba_order ); + static void ivas_spar_quant_pred_coeffs_dtx( ivas_spar_md_t *pSpar_md, const float *pValues, const int16_t ndm, int16_t *pIndex, const int16_t dim1, float *pQuant ); + static void ivas_quant_p_per_band_dtx( float *pP_mat, const int16_t num_dec, const int16_t num_dmx, int16_t *ppIdx_pd, float *pP_out, const int16_t num_ch ); + static void ivas_write_parameter_bitstream_dtx( ivas_spar_md_t *pSpar_md, BSTR_ENC_HANDLE hMetaData, int16_t *num_dmx, int16_t *num_dec, const int16_t num_bands ); static void ivas_quant_p_per_band( ivas_band_coeffs_t *pband_coeffs, ivas_band_coeffs_ind_t *pBand_coeffs_idx, ivas_quant_strat_t *pQs, const int16_t num_ch ); @@ -119,11 +122,7 @@ ivas_error ivas_spar_md_enc_open( return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for SPAR MD encoder" ); } - num_channels = 2 * sba_order + 2; - -#ifdef SBA_HOA_HBR_IMPROV - hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); -#endif + num_channels = ivas_sba_get_nchan_metadata( sba_order ); if ( ( hMdEnc->spar_md.band_coeffs = (ivas_band_coeffs_t *) count_malloc( IVAS_MAX_NUM_BANDS * sizeof( ivas_band_coeffs_t ) ) ) == NULL ) { @@ -319,18 +318,12 @@ static ivas_error ivas_spar_md_enc_init( float PR_minmax[2]; int16_t num_channels, i, j, k; + hMdEnc->spar_hoa_md_flag = ivas_sba_get_spar_hoa_md_flag( sba_order, hEncoderConfig->ivas_total_brate ); num_channels = ivas_sba_get_nchan_metadata( sba_order ); table_idx = ivas_get_spar_table_idx( hEncoderConfig->ivas_total_brate, sba_order, SPAR_CONFIG_BW, NULL, NULL ); - hMdEnc->spar_md_cfg.gen_bs = 1; - ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, -#ifdef SBA_HOA_HBR_IMPROV - ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND -#else - SPAR_DIRAC_SPLIT_START_BAND -#endif - ); + ivas_spar_set_bitrate_config( &hMdEnc->spar_md_cfg, table_idx, ( hMdEnc->spar_hoa_md_flag ) ? IVAS_MAX_NUM_BANDS : SPAR_DIRAC_SPLIT_START_BAND ); /* get FB coefficients */ for ( i = 0; i < IVAS_MAX_NUM_BANDS; i++ ) @@ -339,19 +332,6 @@ static ivas_error ivas_spar_md_enc_init( } ivas_spar_set_enc_config( hMdEnc, hMdEnc->spar_md_cfg.max_freq_per_chan, hMdEnc->spar_md_cfg.nchan_transport, pFC, num_channels ); - /* - if(hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].C.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].PR.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_c.q_levels[1] == 0 - || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[0] == 0 || hMdEnc->spar_md_cfg.quant_strat[0].P_r.q_levels[1] == 0) - { - hMdEnc->spar_md_cfg.gen_bs = 0; - } - else if(0 != hMdEnc->spar_md_cfg.gen_bs) - { - hMdEnc->spar_md_cfg.quant_strat_bits = ivas_get_bits_to_encode(MAX_QUANT_STRATS); - } -*/ if ( hMdEnc->spar_md_cfg.nchan_transport != 2 && ( ( hMdEnc->spar_md_cfg.remix_unmix_order == 1 ) || ( hMdEnc->spar_md_cfg.remix_unmix_order == 2 ) ) ) { @@ -562,35 +542,20 @@ static void write_metadata_buffer( ivas_error ivas_spar_md_enc_process( ivas_spar_md_enc_state_t *hMdEnc, /* i/o: SPAR MD encoder handle */ const ENCODER_CONFIG_HANDLE hEncoderConfig, /* i : configuration structure */ -#ifdef SBA_SPAR_HARM float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], float *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH], -#else - ivas_spar_md_enc_in_buf_t *pIn_buf, -#endif BSTR_ENC_HANDLE hMetaData, /* i/o: MetaData handle */ -#ifdef SBA_SPAR_HARM int16_t dtx_vad, const int16_t nchan_inp, -#else - const int16_t dtx_silence_mode, -#endif const int16_t sba_order /* i : Ambisonic (SBA) order */ ) { float pred_coeffs_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; float dm_fv_re[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; -#ifdef SBA_HOA_HBR_IMPROV float pred_coeffs_re_local[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS]; -#endif int16_t i, b, qsi, ndm, ndec, num_ch, num_quant_strats; int16_t j, planarCP; -#ifdef SBA_SPAR_HARM int16_t k, bwidth, num_bands, num_bands_full, num_bands_bw; -#else - int16_t num_bands = pIn_buf->num_bands; - int16_t dtx_vad = pIn_buf->dtx_vad; -#endif int16_t active_w, nchan_transport, dmx_switch, strat; int16_t nB, bands_bw, packed_ok = 0; ivas_strats_t cs[MAX_CODING_STRATS]; @@ -605,14 +570,11 @@ ivas_error ivas_spar_md_enc_process( active_w = hMdEnc->spar_md_cfg.active_w; nchan_transport = hMdEnc->spar_md_cfg.nchan_transport; -#ifdef SBA_SPAR_HARM bwidth = ivas_get_bw_idx_from_sample_rate( hEncoderConfig->input_Fs ); bwidth = min( bwidth, hEncoderConfig->max_bwidth ); num_bands = ivas_get_num_bands_from_bw_idx( SPAR_CONFIG_BW ); -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag == 0 ) -#endif { num_bands = min( num_bands, SPAR_DIRAC_SPLIT_START_BAND ); } @@ -626,30 +588,22 @@ ivas_error ivas_spar_md_enc_process( for ( j = 0; j < nchan_inp; j++ ) { cov_real[i][j] = cov_dtx_real[i][j]; - for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) - { - cov_real[i][j][k] = 0; - } } } } - else + + for ( i = 0; i < nchan_inp; i++ ) { - for ( i = 0; i < nchan_inp; i++ ) + for ( j = 0; j < nchan_inp; j++ ) { - for ( j = 0; j < nchan_inp; j++ ) + for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) { - cov_real[i][j] = cov_real[i][j]; - for ( k = num_bands_bw; k < IVAS_MAX_NUM_BANDS; k++ ) - { - cov_real[i][j][k] = 0; - } + cov_real[i][j][k] = 0; } } } -#endif - if ( hEncoderConfig->ivas_total_brate == BRATE_SPAR_Q_STRAT && sba_order == 1 ) + if ( hEncoderConfig->ivas_total_brate == BRATE_SPAR_Q_STRAT && sba_order == SBA_FOA_ORDER ) { /* make sure that qsi is always 0 (temporary bits are '00') */ num_quant_strats = 1; @@ -662,12 +616,6 @@ ivas_error ivas_spar_md_enc_process( next_ind_start = hMetaData->next_ind; last_ind_start = hMetaData->last_ind; -#ifndef SBA_SPAR_HARM - if ( hEncoderConfig->Opt_DTX_ON == 0 ) - { - dtx_vad = 1; - } -#endif dmx_switch = 0; @@ -676,11 +624,7 @@ ivas_error ivas_spar_md_enc_process( nB = SPAR_DTX_BANDS; bands_bw = num_bands / nB; -#ifdef SBA_SPAR_HARM ivas_band_mixer( cov_real, num_ch, &num_bands, bands_bw ); -#else - ivas_band_mixer( pIn_buf->cov_real, num_ch, &num_bands, bands_bw ); -#endif } else { @@ -688,7 +632,6 @@ ivas_error ivas_spar_md_enc_process( bands_bw = 1; } -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { for ( b = SPAR_DIRAC_SPLIT_START_BAND; b < num_bands; b++ ) @@ -700,15 +643,9 @@ ivas_error ivas_spar_md_enc_process( } } } -#endif -#ifdef SBA_SPAR_HARM ivas_compute_spar_params( cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); -#else - ivas_compute_spar_params( pIn_buf->cov_real, dm_fv_re, 0, hMdEnc->mixer_mat, 0, nB, dtx_vad, num_ch, - bands_bw, active_w, &hMdEnc->spar_md_cfg, &hMdEnc->spar_md, Wscale, 0 ); -#endif for ( i = 0; i < num_ch; i++ ) { @@ -755,11 +692,7 @@ ivas_error ivas_spar_md_enc_process( if ( ndm != num_ch ) { -#ifdef SBA_SPAR_HARM ivas_calc_c_p_coeffs( &hMdEnc->spar_md, cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); -#else - ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat_local, num_ch, ndm, b, dtx_vad, 1, planarCP ); -#endif } } } @@ -838,7 +771,6 @@ ivas_error ivas_spar_md_enc_process( } } -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { for ( b = SPAR_DIRAC_SPLIT_START_BAND; b < num_bands; b++ ) @@ -852,7 +784,6 @@ ivas_error ivas_spar_md_enc_process( } } } -#endif ivas_create_fullr_dmx_mat( pred_coeffs_re, dm_fv_re, hMdEnc->mixer_mat, num_ch, 0, num_bands, active_w, &hMdEnc->spar_md_cfg ); @@ -868,11 +799,7 @@ ivas_error ivas_spar_md_enc_process( if ( ( ndm != num_ch ) && ( ndm != 1 ) ) { -#ifdef SBA_SPAR_HARM ivas_calc_c_p_coeffs( &hMdEnc->spar_md, cov_real, 0, hMdEnc->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); -#else - ivas_calc_c_p_coeffs( &hMdEnc->spar_md, pIn_buf->cov_real, 0, hMdEnc->mixer_mat, num_ch, ndm, b, dtx_vad, 0, planarCP ); -#endif #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n C coefficients: band %d\n", b); @@ -933,16 +860,7 @@ ivas_error ivas_spar_md_enc_process( /* band mixing */ if ( bands_bw > 1 ) { -#ifdef SBA_SPAR_HARM ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, num_bands_full ); -#else - ivas_band_mixing( hMdEnc, num_ch, num_bands, nchan_transport, pIn_buf->num_bands ); -#endif - } - - if ( hMdEnc->spar_md_cfg.gen_bs == 0 ) - { - break; } if ( dtx_vad == 0 ) @@ -960,14 +878,14 @@ ivas_error ivas_spar_md_enc_process( { reset_indices_enc( &hMetaData_tmp, MAX_BITS_METADATA ); - ivas_write_spar_md_bitstream( hMdEnc, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, 0, strat, qsi, planarCP ); + ivas_write_spar_md_bitstream( hMdEnc, num_bands, bands_bw, &hMetaData_tmp, hEncoderConfig->ivas_total_brate, strat, qsi, planarCP ); if ( hMetaData->nb_bits_tot == bit_pos_start || hMetaData_tmp.nb_bits_tot < ( hMetaData->nb_bits_tot - bit_pos_start ) ) { write_metadata_buffer( &hMetaData_tmp, hMetaData, bit_pos_start, next_ind_start, last_ind_start ); code_strat = strat; } - if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.tgt_bits_per_blk ) + if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == SBA_FOA_ORDER ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.tgt_bits_per_blk ) { packed_ok = 1; break; @@ -980,7 +898,7 @@ ivas_error ivas_spar_md_enc_process( break; } - if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.max_bits_per_blk ) + if ( hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == SBA_FOA_ORDER ) ) ? 1 : 0 ) <= hMdEnc->spar_md_cfg.max_bits_per_blk ) { break; } @@ -1158,17 +1076,14 @@ ivas_error ivas_spar_md_enc_process( } #endif #ifdef DEBUG_SPAR_MD_TARGET_TUNING - int16_t md_bits = hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == 1 ) ) ? 1 : 0 ); + int16_t md_bits = hMetaData->nb_bits_tot - bit_pos_start + ( ( ( hEncoderConfig->ivas_total_brate == IVAS_256k ) && ( sba_order == SBA_FOA_ORDER ) ) ? 1 : 0 ); FILE *fp = fopen( "spar_md_bitrate.txt", "a" ); fprintf( fp, "%d\t %d \t %d\n", md_bits, qsi, code_strat ); fclose( fp ); #endif - if ( hMdEnc->spar_md_cfg.gen_bs == 1 ) - { - ivas_store_prior_coeffs( hMdEnc, num_bands, bands_bw, code_strat, dtx_vad, qsi ); - } + ivas_store_prior_coeffs( hMdEnc, num_bands, bands_bw, code_strat, dtx_vad, qsi ); hMdEnc->spar_md.dtx_vad = dtx_vad; hMdEnc->spar_md.num_bands = num_bands; @@ -1236,7 +1151,6 @@ static void ivas_write_spar_md_bitstream( const int16_t bands_bw, BSTR_ENC_HANDLE hMetaData, const int32_t ivas_total_brate, - const int16_t dtx_silence_mode, // VE2DB: it is always 0 -> remove it? const int16_t strat, const int16_t qsi, const int16_t planarCP ) @@ -1250,7 +1164,7 @@ static void ivas_write_spar_md_bitstream( } /* write quant strat */ - if ( dtx_silence_mode == 0 && ivas_total_brate >= BRATE_SPAR_Q_STRAT ) + if ( ivas_total_brate >= BRATE_SPAR_Q_STRAT ) { push_next_indice( hMetaData, qsi >> 1, hMdEnc->spar_md_cfg.quant_strat_bits - 1 ); } @@ -1355,7 +1269,6 @@ static void ivas_get_huffman_coded_bs( pred_coeff_dim = ndm + ndec - 1; pred_offset = 0; -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1363,7 +1276,6 @@ static void ivas_get_huffman_coded_bs( pred_offset = FOA_CHANNELS - 1; } } -#endif if ( planarCP ) { @@ -1446,7 +1358,6 @@ static void ivas_get_arith_coded_bs( ndm = hMdEnc->spar_md_cfg.num_dmx_chans_per_band[bands_bw * i]; ndec = hMdEnc->spar_md_cfg.num_decorr_per_band[bands_bw * i]; pred_cell_dims[i].dim1 = ndm + ndec - 1; -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { if ( i >= SPAR_DIRAC_SPLIT_START_BAND ) @@ -1454,7 +1365,6 @@ static void ivas_get_arith_coded_bs( pred_cell_dims[i].dim1 -= ( FOA_CHANNELS - 1 ); } } -#endif pred_cell_dims[i].dim2 = 1; drct_cell_dims[i].dim1 = ndec; drct_cell_dims[i].dim2 = ndm - 1; @@ -1473,7 +1383,6 @@ static void ivas_get_arith_coded_bs( break; } } -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { int16_t j; @@ -1494,7 +1403,6 @@ static void ivas_get_arith_coded_bs( } } } -#endif ivas_copy_band_coeffs_idx_to_arr( hMdEnc->spar_md.band_coeffs_idx, nB, symbol_arr_re, pred_cell_dims, PRED_COEFF, planarCP ); if ( any_diff == 1 ) @@ -1506,7 +1414,6 @@ static void ivas_get_arith_coded_bs( ivas_arith_encode_cmplx_cell_array( &hMdEnc->arith_coeffs.pred_arith_re[qsi], &hMdEnc->arith_coeffs.pred_arith_re_diff[qsi], pDo_diff, nB, symbol_arr_re, symbol_arr_old_re, pred_cell_dims, hMetaData, any_diff ); -#ifdef SBA_HOA_HBR_IMPROV if ( hMdEnc->spar_hoa_md_flag ) { int16_t j; @@ -1526,7 +1433,6 @@ static void ivas_get_arith_coded_bs( } } } -#endif #ifdef SPAR_HOA_DBG /*fprintf(stderr, "\n\n band_indexes:\n"); diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 531e69d85a..4ae2e2f41f 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -40,9 +40,6 @@ #include "stat_enc.h" #include "ivas_cnst.h" #include "ivas_stat_com.h" -#ifdef AGC_ENABLE_FOR_LBR -#include "lib_enc.h" -#endif /*----------------------------------------------------------------------------------* * DFT Stereo encoder structures @@ -631,17 +628,6 @@ typedef struct ivas_enc_cov_handler_state_t } ivas_enc_cov_handler_state_t; -#ifndef SBA_SPAR_HARM -typedef struct ivas_enc_cov_handler_in_buf_t -{ - float *ppIn_FR_real[IVAS_SPAR_MAX_CH]; - float *ppIn_FR_imag[IVAS_SPAR_MAX_CH]; - int16_t num_ch; - int16_t transient_det; - int16_t dtx_cov_flag; - -} ivas_enc_cov_handler_in_buf_t; -#endif /* SPAR MD structures */ typedef struct ivas_spar_md_enc_state_t @@ -659,20 +645,9 @@ typedef struct ivas_spar_md_enc_state_t ivas_arith_coeffs_t arith_coeffs; ivas_huff_coeffs_t huff_coeffs; int16_t table_idx; -#ifdef SBA_HOA_HBR_IMPROV int16_t spar_hoa_md_flag; -#endif } ivas_spar_md_enc_state_t; -#ifndef SBA_SPAR_HARM -typedef struct ivas_spar_md_enc_in_buf_t -{ - float *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH]; - int16_t num_bands; - int16_t dtx_vad; - -} ivas_spar_md_enc_in_buf_t; -#endif /* PCA structure */ typedef struct { @@ -850,11 +825,9 @@ typedef struct stereo_cng_enc typedef struct sce_enc_data_structure { - int16_t sce_id; /* SCE # identifier */ - int32_t element_brate; /* SCE element total bitrate in bps */ -#ifdef CORECODER_BITRATE_SWITCHING + int16_t sce_id; /* SCE # identifier */ + int32_t element_brate; /* SCE element total bitrate in bps */ int32_t last_element_brate; /* last SCE element bitrate in bps */ -#endif BSTR_ENC_HANDLE hMetaData; /* Metadata bitstream handle */ @@ -1027,10 +1000,8 @@ typedef struct encoder_config_structure int16_t Opt_SC_VBR; /* flag indicating SC-VBR mode */ int16_t last_Opt_SC_VBR; /* flag indicating prev frame's SC-VBR mode */ -#ifdef AGC_ENABLE_FOR_LBR - IVAS_ENC_AGC Opt_AGC_ON; /* flag indicating AGC operation in SBA */ -#else /* temp. development parameters */ +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION int16_t Opt_AGC_ON; /* flag indicating AGC operation in SBA */ #endif int16_t Opt_PCA_ON; /* flag indicating PCA operation in SBA */ diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 6e674502f5..079a73922b 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -78,12 +78,13 @@ static int16_t getInputBufferSize( const Encoder_Struct *st_ivas ); static ivas_error doCommonConfigureChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error doCommonSetterChecks( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error sanitizeBandwidth( const IVAS_ENC_HANDLE hIvasEnc ); -#ifdef ISM_BITRATE_SWITCHING static ivas_error sanitizeBitrateISM( const ENCODER_CONFIG_HANDLE hEncoderConfig ); -#endif static void init_encoder_config( ENCODER_CONFIG_HANDLE hEncoderConfig ); static void resetIsmMetadataProvidedFlags( IVAS_ENC_HANDLE hIvasEnc ); static ivas_error bandwidthApiToInternal( const IVAS_ENC_BANDWIDTH maxBandwidth, int16_t *internalMaxBandwidth ); +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION +static ivas_error agcAPIToInternal( const IVAS_ENC_AGC agcOption, int16_t *internalAGCOption ); +#endif static ivas_error fecIndicatorApiToInternal( const IVAS_ENC_FEC_INDICATOR fecIndicator, int16_t *fecIndicatorInternal ); #ifdef DEBUGGING static ivas_error forcedModeApiToInternal( IVAS_ENC_FORCED_MODE forcedMode, int16_t *forcedModeInternal ); @@ -451,11 +452,13 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( const IVAS_ENC_DTX_CONFIG dtxConfig, /* i : configuration of DTX, can by set to default by using IVAS_ENC_GetDefaultDtxConfig() */ const IVAS_ENC_SBA_ORDER order, /* i : order of the Ambisonics input */ const bool isPlanar, /* i : if true, input is treated as planar Ambisonics */ +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR const IVAS_ENC_AGC Opt_AGC_ON, /* i : AGC on/off/undefined flag */ #else const bool Opt_AGC_ON, /* i : AGC on/off flag */ -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ const bool Opt_PCA_ON /* i : PCA option flag */ #ifdef DEBUG_SBA_AUDIO_DUMP , @@ -477,13 +480,21 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( hEncoderConfig->element_mode_init = IVAS_SCE; /* Just needs to be something not mono, will be set later */ hEncoderConfig->sba_planar = isPlanar; hEncoderConfig->sba_order = order; + /* Input in ACN/SN3D in all cases (3D and planar): get number of channels */ hEncoderConfig->nchan_inp = ivas_sba_get_nchan( hEncoderConfig->sba_order, 0 ); /*planar input arg. deliberately set to zero since input always in ACN/SN3D*/ + +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR - hEncoderConfig->Opt_AGC_ON = Opt_AGC_ON; + if ( ( error = agcAPIToInternal( Opt_AGC_ON, &( hEncoderConfig->Opt_AGC_ON ) ) ) != IVAS_ERR_OK ) + { + return error; + } #else hEncoderConfig->Opt_AGC_ON = (int16_t) Opt_AGC_ON; -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ + hEncoderConfig->Opt_PCA_ON = (int16_t) Opt_PCA_ON; hIvasEnc->maxBandwidthUser = max_bwidth_user; @@ -772,29 +783,10 @@ static ivas_error configureEncoder( } else if ( hEncoderConfig->ivas_format == ISM_FORMAT ) { -#ifdef ISM_BITRATE_SWITCHING if ( ( error = sanitizeBitrateISM( hEncoderConfig ) ) != IVAS_ERR_OK ) { return error; } -#else - if ( hEncoderConfig->ivas_total_brate > IVAS_256k ) - { - return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too high bitrate for ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); - } - if ( hEncoderConfig->ivas_total_brate < IVAS_16k4 && hEncoderConfig->nchan_inp == 2 ) - { - return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 2 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); - } - if ( hEncoderConfig->ivas_total_brate < IVAS_24k4 && hEncoderConfig->nchan_inp == 3 ) - { - return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 3 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); - } - if ( hEncoderConfig->ivas_total_brate < IVAS_24k4 && hEncoderConfig->nchan_inp == 4 ) - { - return IVAS_ERROR( IVAS_ERR_INVALID_BITRATE, "Too low bitrate for 4 ISm specified in IVAS: %d", hEncoderConfig->ivas_total_brate ); - } -#endif } else if ( hEncoderConfig->ivas_format == SBA_FORMAT ) { @@ -897,16 +889,19 @@ static ivas_error configureEncoder( return IVAS_ERROR( IVAS_ERR_DTX_NOT_SUPPORTED, "DTX is not supported in this IVAS format and element mode." ); } +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR - if ( hEncoderConfig->Opt_AGC_ON == IVAS_ENC_AGC_ENABLED && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) + if ( hEncoderConfig->Opt_AGC_ON == SBA_AGC_FORCE_ENABLE && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) #else if ( hEncoderConfig->Opt_AGC_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && ivas_sba_mode_select( hEncoderConfig->ivas_total_brate ) == SBA_MODE_SPAR ) ) -#endif +#endif /* AGC_ENABLE_FOR_LBR */ { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "AGC supported in SBA format at bitrates >= 24.4 kbps only." ); } +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ + - if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && hEncoderConfig->sba_order == 1 ) ) + if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && hEncoderConfig->sba_order == SBA_FOA_ORDER ) ) { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "PCA supported at SBA FOA 256 kbps only." ); } @@ -1514,7 +1509,7 @@ static ivas_error printConfigInfo_enc( else if ( hEncoderConfig->ivas_format == SBA_FORMAT ) { #ifdef PRINT_SBA_ORDER - fprintf( stdout, "IVAS format: Scene Based Analysis, Ambisonic order %i %s ", hEncoderConfig->sba_order, hEncoderConfig->sba_planar ? "(Planar)" : "" ); + fprintf( stdout, "IVAS format: Scene Based Audio, Ambisonic order %i %s ", hEncoderConfig->sba_order, hEncoderConfig->sba_planar ? "(Planar)" : "" ); #else fprintf( stdout, "IVAS format: Scene Based Analysis %s ", hEncoderConfig->sba_planar ? "(Planar)" : "" ); #endif @@ -1522,16 +1517,17 @@ static ivas_error printConfigInfo_enc( { fprintf( stdout, "- PCA configured with signal adaptive decision " ); } +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR switch ( hEncoderConfig->Opt_AGC_ON ) { - case IVAS_ENC_AGC_ENABLED: + case SBA_AGC_FORCE_ENABLE: fprintf( stdout, "- AGC FORCED ON " ); break; - case IVAS_ENC_AGC_DISABLED: + case SBA_AGC_FORCE_DISABLE: fprintf( stdout, "- AGC FORCED OFF " ); break; - case IVAS_ENC_AGC_UNDEFINED: + case SBA_AGC_DEFAULT: fprintf( stdout, "- AGC default mode " ); break; default: @@ -1543,7 +1539,10 @@ static ivas_error printConfigInfo_enc( { fprintf( stdout, "- AGC ON " ); } -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#else + fprintf( stdout, "- AGC default mode " ); +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ fprintf( stdout, "\n" ); } else if ( hEncoderConfig->ivas_format == MASA_FORMAT ) @@ -1669,9 +1668,7 @@ static ivas_error setBitrate( { Encoder_Struct *st_ivas; ENCODER_CONFIG_HANDLE hEncoderConfig; -#ifdef ISM_BITRATE_SWITCHING ivas_error error; -#endif st_ivas = hIvasEnc->st_ivas; hEncoderConfig = st_ivas->hEncoderConfig; @@ -1718,7 +1715,6 @@ static ivas_error setBitrate( } } -#ifdef ISM_BITRATE_SWITCHING if ( hEncoderConfig->ivas_format == ISM_FORMAT ) { if ( ( error = sanitizeBitrateISM( hEncoderConfig ) ) != IVAS_ERR_OK ) @@ -1726,7 +1722,6 @@ static ivas_error setBitrate( return error; } } -#endif st_ivas->codec_mode = MODE1; @@ -1954,7 +1949,6 @@ static ivas_error sanitizeBandwidth( } -#ifdef ISM_BITRATE_SWITCHING /*---------------------------------------------------------------------* * sanitizeBitrateISM() * @@ -1986,7 +1980,6 @@ static ivas_error sanitizeBitrateISM( return IVAS_ERR_OK; } -#endif /*---------------------------------------------------------------------* @@ -2082,6 +2075,31 @@ static ivas_error bandwidthApiToInternal( return IVAS_ERR_OK; } +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION +static ivas_error agcAPIToInternal( + const IVAS_ENC_AGC agcOption, + int16_t *internalAGCOption ) +{ + switch ( agcOption ) + { + case IVAS_ENC_AGC_ENABLED: + *internalAGCOption = SBA_AGC_FORCE_ENABLE; + break; + case IVAS_ENC_AGC_DISABLED: + *internalAGCOption = SBA_AGC_FORCE_DISABLE; + break; + case IVAS_ENC_AGC_UNDEFINED: + *internalAGCOption = SBA_AGC_DEFAULT; + break; + default: + return IVAS_ERR_INVALID_AGC; + break; + } + + return IVAS_ERR_OK; +} +#endif + /*---------------------------------------------------------------------* * fecIndicatorApiToInternal() @@ -2216,11 +2234,13 @@ static void init_encoder_config( hEncoderConfig->stereo_dmx_evs = 0; hEncoderConfig->sba_order = 0; hEncoderConfig->sba_planar = 0; +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR - hEncoderConfig->Opt_AGC_ON = IVAS_ENC_AGC_UNDEFINED; + hEncoderConfig->Opt_AGC_ON = SBA_AGC_DEFAULT; #else hEncoderConfig->Opt_AGC_ON = 0; -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ hEncoderConfig->Opt_PCA_ON = 0; return; diff --git a/lib_enc/lib_enc.h b/lib_enc/lib_enc.h index 20eef7b1fe..373da97f96 100644 --- a/lib_enc/lib_enc.h +++ b/lib_enc/lib_enc.h @@ -124,13 +124,15 @@ typedef enum _IVAS_ENC_FORCED_MODE #endif #ifdef AGC_ENABLE_FOR_LBR +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION typedef enum _IVAS_ENC_AGC { IVAS_ENC_AGC_DISABLED = 0, IVAS_ENC_AGC_ENABLED, IVAS_ENC_AGC_UNDEFINED = 0xffff } IVAS_ENC_AGC; -#endif +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ +#endif /* AGC_ENABLE_FOR_LBR */ /*---------------------------------------------------------------------* * Encoder structures @@ -197,11 +199,13 @@ ivas_error IVAS_ENC_ConfigureForAmbisonics( const IVAS_ENC_DTX_CONFIG dtxConfig, /* i : configuration of DTX, can by set to default by using IVAS_ENC_GetDefaultDtxConfig() */ const IVAS_ENC_SBA_ORDER order, /* i : order of the Ambisonics input */ const bool isPlanar, /* i : if true, input is treated as planar Ambisonics */ +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION #ifdef AGC_ENABLE_FOR_LBR const IVAS_ENC_AGC Opt_AGC_ON, /* i : AGC on/off/undefined flag */ #else const bool Opt_AGC_ON, /* i : AGC on/off flag */ -#endif +#endif /* AGC_ENABLE_FOR_LBR */ +#endif /* DEBUG_AGC_ENCODER_CMD_OPTION */ const bool Opt_PCA_ON /* i : PCA option flag */ #ifdef DEBUG_SBA_AUDIO_DUMP , diff --git a/lib_rend/ivas_allrad_dec.c b/lib_rend/ivas_allrad_dec.c index 119b89b2cc..a61f543cb1 100644 --- a/lib_rend/ivas_allrad_dec.c +++ b/lib_rend/ivas_allrad_dec.c @@ -108,11 +108,7 @@ ivas_error ivas_sba_get_hoa_dec_matrix( /* Allocate memory */ assert( *hoa_dec_mtx == NULL && "hoa_dec_mtx != NULL" ); -#ifdef ALLRAD_OPTIM if ( ( *hoa_dec_mtx = (float *) count_malloc( SBA_NHARM_HOA3 * ( hOutSetup.nchan_out_woLFE ) * sizeof( float ) ) ) == NULL ) -#else - if ( ( *hoa_dec_mtx = (float *) count_malloc( SBA_NHARM_HOA3 * MAX_OUTPUT_CHANNELS * sizeof( float ) ) ) == NULL ) -#endif { return ( IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "ALLRAD: Cannot allocate memory!" ) ); } diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index ae910b1f25..698612b1ad 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1146,10 +1146,10 @@ ivas_error ivas_crend_process( ivas_error ivas_rend_openCrend( CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, RENDER_CONFIG_DATA *hRendCfg, - int32_t output_Fs ) + const int32_t output_Fs ) { /* TODO tmu : Based on ivas_crend_open() - could be harmonized / refactored */ int16_t i, subframe_length; @@ -1309,13 +1309,13 @@ ivas_error ivas_rend_openCrend( ivas_error ivas_rend_initCrend( CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, RENDER_CONFIG_DATA *hRendCfg, - int32_t output_Fs ) + const int32_t output_Fs ) { int16_t i, j, tmp; - int32_t nchan_in; + int16_t nchan_in; bool use_brir; IVAS_REND_AudioConfigType inConfigType; HRTFS_HANDLE hHrtf; @@ -1353,7 +1353,7 @@ ivas_error ivas_rend_initCrend( { return error; } - hHrtf->max_num_ir = (int16_t) nchan_in; + hHrtf->max_num_ir = nchan_in; if ( hHrtf->max_num_ir <= 0 ) { @@ -1764,26 +1764,26 @@ ivas_error ivas_rend_closeCrend( } /*-----------------------------------------------------------------------------------------* - * Function ivas_rend_crend_process() + * Function ivas_rend_crend_Process() * * Process call for IVAS Crend renderer *-----------------------------------------------------------------------------------------*/ ivas_error ivas_rend_crendProcess( const CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, float output[][L_FRAME48k], /* i/o: input/output audio channels */ - int32_t output_Fs ) + const int32_t output_Fs ) { int16_t i, subframe_idx, output_frame; - int32_t nchan_out; + int16_t nchan_out; float pcm_tmp[BINAURAL_CHANNELS][L_FRAME48k]; AUDIO_CONFIG in_config; IVAS_REND_AudioConfigType inConfigType; ivas_error error; - wmops_sub_start( "ivas_crend_process" ); + wmops_sub_start( "ivas_rend_crendProcess" ); in_config = getIvasAudioConfigFromRendAudioConfig( inConfig ); inConfigType = getAudioConfigType( inConfig ); @@ -1819,6 +1819,8 @@ ivas_error ivas_rend_crendProcess( mvr2r( pcm_tmp[i], output[i], output_frame ); } + wmops_sub_end(); + return IVAS_ERR_OK; } @@ -1834,19 +1836,17 @@ ivas_error ivas_rend_crendConvolver( IVAS_REND_AudioConfig outConfig, float pcm_in[][L_FRAME48k], float pcm_out[][L_FRAME48k], - int32_t output_Fs, + const int32_t output_Fs, const int16_t i_ts ) { int16_t i, j, k, m; int16_t subframe_length, idx_in; int16_t lfe_idx_in; int16_t offset, offset_in, offset_diffuse; - int32_t nchan_in, nchan_out; + int16_t nchan_in, nchan_out; float *pIn; - float *pFreq_buf_re; - float *pFreq_buf_im; - float *pFreq_filt_re; - float *pFreq_filt_im; + float *pFreq_buf_re, *pFreq_buf_im; + float *pFreq_filt_re, *pFreq_filt_im; float pOut[L_FRAME48k * 2]; float tmp_out_re[L_FRAME48k], tmp_out_im[L_FRAME48k]; diff --git a/lib_rend/ivas_efap.c b/lib_rend/ivas_efap.c index 1c58e0a25e..8a3dd6ad05 100644 --- a/lib_rend/ivas_efap.c +++ b/lib_rend/ivas_efap.c @@ -100,9 +100,7 @@ static float vertex_distance( const EFAP_VERTEX *vtxArray, const EFAP_LS_TRIANGL static float point_plane_distance( const float P1[3], const float P2[3], const float P3[3], const float X[3] ); -#ifdef EFAP_FIX_POLY static float point_poly_distance( const EFAP_POLYSET poly, const float X[3] ); -#endif static void efap_crossp( const float *v1, const float *v2, float *v ); static int16_t find_int_in_tri( const EFAP_LS_TRIANGLE *tri, const int16_t n, const int16_t r, int16_t *pos ); @@ -127,9 +125,7 @@ static int16_t in_poly( const float P[2], const EFAP_POLYSET poly ); static int16_t in_tri( float A[2], float B[2], float C[2], float P_minus_A[2] ); -#ifdef EFAP_FIX_POLY static void sph2cart( const float azi, const float ele, float *pos ); -#endif /*-----------------------------------------------------------------------* * Global function definitions @@ -1506,13 +1502,7 @@ static void add_vertex( vtxArray[pos].ele = ( ( -180.0f > tmp ) ? -180.0f : tmp ); /* Converting spherical coordinates to cartesians, assuming radius = 1 */ -#ifdef EFAP_FIX_POLY sph2cart( vtxArray[pos].azi, vtxArray[pos].ele, &vtxArray[pos].pos[0] ); -#else - vtxArray[pos].pos[0] = cosf( vtxArray[pos].azi * PI_OVER_180 ) * cosf( vtxArray[pos].ele * PI_OVER_180 ); - vtxArray[pos].pos[1] = sinf( vtxArray[pos].azi * PI_OVER_180 ) * cosf( vtxArray[pos].ele * PI_OVER_180 ); - vtxArray[pos].pos[2] = sinf( vtxArray[pos].ele * PI_OVER_180 ); -#endif /* Computing the index defined by idx = idxAziTmp + 181 * idxEleTmp */ @@ -1604,7 +1594,6 @@ static float vertex_distance( return point_plane_distance( A, B, C, P ); } -#ifdef EFAP_FIX_POLY /*-------------------------------------------------------------------------* * point_poly_distance() * @@ -1624,7 +1613,6 @@ static float point_poly_distance( return point_plane_distance( P1, P2, P3, X ); } -#endif /*-------------------------------------------------------------------------* * point_plane_distance() @@ -2116,7 +2104,6 @@ static int16_t get_poly_num( ) { int16_t i; -#ifdef EFAP_FIX_POLY int16_t num_poly, found_poly; int16_t poly_tmp[EFAP_MAX_CHAN_NUM]; float poly_dist[EFAP_MAX_CHAN_NUM]; @@ -2129,12 +2116,10 @@ static int16_t get_poly_num( sph2cart( P[0], P[1], &pos[0] ); /* Filter the polygon list with a fast 2d check */ -#endif for ( i = 0; i < polyData->numPoly; ++i ) { if ( in_poly( P, polyData->polysetArray[i] ) ) { -#ifdef EFAP_FIX_POLY /* select only polygons which are visible from the point */ dist_tmp = point_poly_distance( polyData->polysetArray[i], pos ); if ( dist_tmp == 0 ) @@ -2147,12 +2132,8 @@ static int16_t get_poly_num( poly_dist[num_poly] = dist_tmp; num_poly++; } -#else - return i; -#endif } } -#ifdef EFAP_FIX_POLY if ( num_poly == 0 ) { return -1; @@ -2171,9 +2152,6 @@ static int16_t get_poly_num( } return found_poly; -#else - return -1; -#endif } diff --git a/lib_rend/ivas_lib_rend_internal.h b/lib_rend/ivas_lib_rend_internal.h index 773b75309b..94a762c315 100644 --- a/lib_rend/ivas_lib_rend_internal.h +++ b/lib_rend/ivas_lib_rend_internal.h @@ -60,46 +60,46 @@ typedef struct } CREND_WRAPPER; IVAS_REND_AudioConfigType getAudioConfigType( - IVAS_REND_AudioConfig config ); + const IVAS_REND_AudioConfig config ); ivas_error getAudioConfigNumChannels( - IVAS_REND_AudioConfig config, - int32_t *numChannels ); + const IVAS_REND_AudioConfig config, + int16_t *numChannels ); AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( IVAS_REND_AudioConfig config ); ivas_error ivas_rend_openCrend( CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, - RENDER_CONFIG_DATA *hRend, - int32_t output_Fs ); + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, + RENDER_CONFIG_DATA *hRendCfg, + const int32_t output_Fs ); ivas_error ivas_rend_initCrend( CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, - RENDER_CONFIG_DATA *hRend, - int32_t output_Fs ); + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, + RENDER_CONFIG_DATA *hRendCfg, + const int32_t output_Fs ); ivas_error ivas_rend_closeCrend( CREND_WRAPPER *pCrend ); ivas_error ivas_rend_crendProcess( const CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, float output[][L_FRAME48k], /* i/o: input/output audio channels */ - int32_t output_Fs ); + const int32_t output_Fs ); ivas_error ivas_rend_crendConvolver( const CREND_WRAPPER *pCrend, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, float pcm_in[][L_FRAME48k], float pcm_out[][L_FRAME48k], - int32_t output_Fs, + const int32_t output_Fs, const int16_t i_ts ); ivas_error ivas_rend_TDObjRenderFrame( @@ -115,9 +115,9 @@ ivas_error ivas_rend_TDObjRenderFrame( ivas_error ivas_rend_TDObjRendOpen( TDREND_WRAPPER *pTDRend, - IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig inConfig, LSSETUP_CUSTOM_STRUCT *customLsInput, - int32_t outFs ); + const int32_t output_Fs ); #endif #endif diff --git a/lib_rend/ivas_limiter.c b/lib_rend/ivas_limiter.c index 25fad180b9..a4dffb180d 100644 --- a/lib_rend/ivas_limiter.c +++ b/lib_rend/ivas_limiter.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: keep in lib_rend or move to lib_dec ? #include #include #include diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index e4f0706193..7bd892cdac 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -51,7 +51,9 @@ *---------------------------------------------------------------------*/ static ivas_error TDREND_GetMix( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, float output[][L_FRAME48k], const int16_t subframe_length, const int32_t output_Fs, const int16_t subframe_idx ); + static void TDREND_Clear_Update_flags( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ); + static void TDREND_Update_listener_orientation( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd, const int16_t headRotEnabled, #ifdef EXT_RENDERER @@ -269,9 +271,7 @@ void ObjRenderIVASFrame( for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { /* Update the listener's location/orientation */ - TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, - st_ivas->hDecoderConfig->Opt_Headrotation, - ( st_ivas->hHeadTrackData != NULL ) ? &st_ivas->hHeadTrackData->Quaternions[subframe_idx] : NULL ); + TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, st_ivas->hDecoderConfig->Opt_Headrotation, ( st_ivas->hHeadTrackData != NULL ) ? &st_ivas->hHeadTrackData->Quaternions[subframe_idx] : NULL ); if ( ( st_ivas->hRenderConfig != NULL ) && ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) { @@ -512,7 +512,7 @@ ivas_error ivas_rend_TDObjRendOpen( TDREND_WRAPPER *pTDRend, IVAS_REND_AudioConfig inConfig, LSSETUP_CUSTOM_STRUCT *customLsInput, - int32_t outFs ) + const int32_t outFs ) { /* TODO tmu : Based on ivas_td_binaural_open() - could be harmonized / refactored - review error handling @@ -526,7 +526,7 @@ ivas_error ivas_rend_TDObjRendOpen( float Pos[3]; float Dir[3]; TDREND_DirAtten_t *DirAtten_p; - int32_t nchan_rend; + int16_t nchan_rend; ivas_error error; error = IVAS_ERR_OK; @@ -645,7 +645,6 @@ ivas_error ivas_rend_TDObjRendOpen( pTDRend->binaural_latency_ns = (int32_t) ( BINAURAL_TD_LATENCY_S * 1000000000.f ); - return IVAS_ERR_OK; } @@ -672,12 +671,14 @@ ivas_error ivas_rend_TDObjRenderFrame( int16_t subframe_idx; ISM_METADATA_HANDLE hIsmMetaData[1]; int16_t lfe_idx; - int32_t num_src; + int16_t num_src; /* TODO tmu : pass down renderer config struct */ // float reverb_signal[BINAURAL_CHANNELS][L_FRAME48k]; IVAS_FORMAT ivas_format; IVAS_REND_AudioConfigType inConfigType; + wmops_sub_start( "ivas_rend_TDObjRenderFrame" ); + inConfigType = getAudioConfigType( inConfig ); lfe_idx = LFE_CHANNEL; if ( inConfigType == IVAS_REND_AUDIO_CONFIG_TYPE_CHANNEL_BASED ) @@ -714,12 +715,7 @@ ivas_error ivas_rend_TDObjRenderFrame( // } /* Update object position(s) */ - TDREND_Update_object_positions( pTDRend->hBinRendererTd, - (int16_t) num_src, - lfe_idx, - ivas_format, - hIsmMetaData, - output ); + TDREND_Update_object_positions( pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, output ); /* TODO tmu : needs a refactor / better approach */ if ( ivas_format == ISM_FORMAT ) @@ -730,9 +726,7 @@ ivas_error ivas_rend_TDObjRenderFrame( for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { /* Update the listener's location/orientation */ - TDREND_Update_listener_orientation( pTDRend->hBinRendererTd, - headRotData->headRotEnabled, - ( headRotData != NULL ) ? &headRotData->headPositions[subframe_idx] : NULL ); + TDREND_Update_listener_orientation( pTDRend->hBinRendererTd, headRotData->headRotEnabled, ( headRotData != NULL ) ? &headRotData->headPositions[subframe_idx] : NULL ); /* TODO tmu : pass down renderer config struct */ // if ( ( hRenderConfig != NULL ) && ( hRenderConfig->roomAcoustics.late_reverb_on ) ) @@ -754,6 +748,9 @@ ivas_error ivas_rend_TDObjRenderFrame( // v_add( reverb_signal[1], output[1], output[1], output_frame ); // } // } + + wmops_sub_end(); + return IVAS_ERR_OK; } #endif diff --git a/lib_rend/ivas_output_init.c b/lib_rend/ivas_output_init.c index 307b29e74a..2cbd476ac1 100644 --- a/lib_rend/ivas_output_init.c +++ b/lib_rend/ivas_output_init.c @@ -29,7 +29,7 @@ the United Nations Convention on Contracts on the International Sales of Goods. *******************************************************************************************************/ - +// VE2AT: keep in lib_rend or move to lib_dec ? #include #include #include "options.h" @@ -171,13 +171,13 @@ void ivas_output_init( hOutSetup->ls_elevation = ls_elevation_CICP2; break; case AUDIO_CONFIG_FOA: - hOutSetup->ambisonics_order = 1; + hOutSetup->ambisonics_order = SBA_FOA_ORDER; break; case AUDIO_CONFIG_HOA2: - hOutSetup->ambisonics_order = 2; + hOutSetup->ambisonics_order = SBA_HOA2_ORDER; break; case AUDIO_CONFIG_HOA3: - hOutSetup->ambisonics_order = 3; + hOutSetup->ambisonics_order = SBA_HOA3_ORDER; break; case AUDIO_CONFIG_5_1: hOutSetup->num_lfe = 1; @@ -515,6 +515,12 @@ void ivas_renderer_select( { *internal_config = output_config; } +#ifdef SPAR_STEREO_NO_DIRAC + else if ( output_config == AUDIO_CONFIG_MONO || output_config == AUDIO_CONFIG_STEREO ) + { + *internal_config = AUDIO_CONFIG_FOA; + } +#endif else { *internal_config = AUDIO_CONFIG_HOA3; diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 9366003b08..87babcdb47 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -152,22 +152,16 @@ struct IVAS_REND IVAS_REND_AudioConfig outputConfig; EFAP_WRAPPER efapOutWrapper; IVAS_LSSETUP_CUSTOM_STRUCT customLsOut; - - int8_t enableHeadRotation; /* head rotation flag */ + + int8_t enableHeadRotation; IVAS_REND_HeadRotData headRotData; int8_t rendererConfigEnabled; RENDER_CONFIG_DATA *hRendererConfig; /* Renderer config pointer */ }; -static int32_t limitRendererOutput( - IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ - float *output, /* i/o: I/O buffer */ - const int16_t output_frame, /* i : number of samples per channel in the buffer */ - const float threshold /* i : signal amplitude above which limiting starts to be applied */ -); - -static IVAS_QUATERNION quaternionInit( void ) +static IVAS_QUATERNION quaternionInit( + void ) { IVAS_QUATERNION q; q.w = 1.0f; @@ -175,12 +169,17 @@ static IVAS_QUATERNION quaternionInit( void ) return q; } -static float *getSmplPtr( IVAS_REND_AudioBuffer buffer, uint32_t chnlIdx, uint32_t smplIdx ) +static float *getSmplPtr( + IVAS_REND_AudioBuffer buffer, + uint32_t chnlIdx, + uint32_t smplIdx ) { return buffer.data + chnlIdx * buffer.config.numSamplesPerChannel + smplIdx; } -static void copyBufferTo2dArray( const IVAS_REND_AudioBuffer buffer, float array[MAX_OUTPUT_CHANNELS][L_FRAME48k] ) +static void copyBufferTo2dArray( + const IVAS_REND_AudioBuffer buffer, + float array[MAX_OUTPUT_CHANNELS][L_FRAME48k] ) { uint32_t smplIdx; uint32_t chnlIdx; @@ -195,11 +194,15 @@ static void copyBufferTo2dArray( const IVAS_REND_AudioBuffer buffer, float array array[chnlIdx][smplIdx] = *readPtr++; } } + + return; } -static void accumulate2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME48k], IVAS_REND_AudioBuffer *buffer ) +static void accumulate2dArrayToBuffer( + float array[MAX_OUTPUT_CHANNELS][L_FRAME48k], + IVAS_REND_AudioBuffer *buffer ) { - int32_t smplIdx, chnlIdx; + int16_t smplIdx, chnlIdx; float *writePtr; writePtr = buffer->data; @@ -210,6 +213,8 @@ static void accumulate2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME4 *writePtr++ += array[chnlIdx][smplIdx]; } } + + return; } /*-------------------------------------------------------------------* @@ -217,8 +222,10 @@ static void accumulate2dArrayToBuffer( float array[MAX_OUTPUT_CHANNELS][L_FRAME4 * * In-place saturation control for multichannel buffers with adaptive release time * - * r: number of clipped output samples + * *-------------------------------------------------------------------*/ + +/*! r: number of clipped output samples */ static int32_t limitRendererOutput( IVAS_LIMITER_HANDLE hLimiter, /* i/o: limiter struct handle */ float *output, /* i/o: I/O buffer */ @@ -263,7 +270,8 @@ static int32_t limitRendererOutput( return numClipping; } -static AUDIO_CONFIG rendAudioConfigToIvasAudioConfig( IVAS_REND_AudioConfig rendConfig ) +static AUDIO_CONFIG rendAudioConfigToIvasAudioConfig( // VE2AT: similar is defined again at line 397, why? + IVAS_REND_AudioConfig rendConfig ) { switch ( rendConfig ) { @@ -306,7 +314,8 @@ static AUDIO_CONFIG rendAudioConfigToIvasAudioConfig( IVAS_REND_AudioConfig rend return AUDIO_CONFIG_INVALID; } -static ivas_error validateOutputAudioConfig( IVAS_REND_AudioConfig outConfig ) +static ivas_error validateOutputAudioConfig( + IVAS_REND_AudioConfig outConfig ) { switch ( outConfig ) { @@ -331,13 +340,16 @@ static ivas_error validateOutputAudioConfig( IVAS_REND_AudioConfig outConfig ) return IVAS_ERR_INVALID_OUTPUT_FORMAT; } -IVAS_REND_AudioConfigType getAudioConfigType( IVAS_REND_AudioConfig config ) +IVAS_REND_AudioConfigType getAudioConfigType( + IVAS_REND_AudioConfig config ) { /* By definition, config type is the second byte (from LSB) of IVAS_REND_AudioConfig enum. */ - return ( config & 0xFF00 ) >> 8; + return ( config & 0xFF00 ) >> 8; // VE2AT: MSVC returns warning C4244: 'return': conversion from 'int' to 'IVAS_REND_InputId', possible loss of data } -static ivas_error validateOutputSampleRate( int32_t sampleRate, IVAS_REND_AudioConfig outConfig ) +static ivas_error validateOutputSampleRate( + const int32_t sampleRate, + const IVAS_REND_AudioConfig outConfig ) { if ( getAudioConfigType( outConfig ) != IVAS_REND_AUDIO_CONFIG_TYPE_BINAURAL ) { @@ -358,7 +370,9 @@ static ivas_error validateOutputSampleRate( int32_t sampleRate, IVAS_REND_AudioC return IVAS_ERR_INVALID_SAMPLING_RATE; } -ivas_error getAudioConfigNumChannels( IVAS_REND_AudioConfig config, int32_t *numChannels ) +ivas_error getAudioConfigNumChannels( + const IVAS_REND_AudioConfig config, + int16_t *numChannels ) { switch ( config ) { @@ -400,7 +414,8 @@ ivas_error getAudioConfigNumChannels( IVAS_REND_AudioConfig config, int32_t *num return IVAS_ERR_OK; } -AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( IVAS_REND_AudioConfig config ) +AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( + IVAS_REND_AudioConfig config ) { switch ( config ) { @@ -433,7 +448,10 @@ AUDIO_CONFIG getIvasAudioConfigFromRendAudioConfig( IVAS_REND_AudioConfig config } } -static ivas_error initLimiter( IVAS_LIMITER_HANDLE *phLimiter, int32_t numChannels, int32_t sampleRate ) +static ivas_error initLimiter( + IVAS_LIMITER_HANDLE *phLimiter, + const int16_t numChannels, + const int32_t sampleRate ) { /* If re-initializing with unchanged values, return early */ if ( *phLimiter != NULL && @@ -458,7 +476,8 @@ static ivas_error initLimiter( IVAS_LIMITER_HANDLE *phLimiter, int32_t numChanne return IVAS_ERR_OK; } -static LSSETUP_CUSTOM_STRUCT defaultCustomLs( void ) +static LSSETUP_CUSTOM_STRUCT defaultCustomLs( + void ) { LSSETUP_CUSTOM_STRUCT ls; @@ -476,7 +495,9 @@ static LSSETUP_CUSTOM_STRUCT defaultCustomLs( void ) return ls; } -static ivas_error getSpeakerAzimuths( IVAS_REND_AudioConfig config, const float **azimuths ) +static ivas_error getSpeakerAzimuths( + IVAS_REND_AudioConfig config, + const float **azimuths ) { switch ( config ) { @@ -508,7 +529,9 @@ static ivas_error getSpeakerAzimuths( IVAS_REND_AudioConfig config, const float return IVAS_ERR_OK; } -static ivas_error getSpeakerElevations( IVAS_REND_AudioConfig config, const float **elevations ) +static ivas_error getSpeakerElevations( + IVAS_REND_AudioConfig config, + const float **elevations ) { switch ( config ) { @@ -540,7 +563,9 @@ static ivas_error getSpeakerElevations( IVAS_REND_AudioConfig config, const floa return IVAS_ERR_OK; } -static ivas_error getAmbisonicsOrder( IVAS_REND_AudioConfig config, int16_t *order ) +static ivas_error getAmbisonicsOrder( + IVAS_REND_AudioConfig config, + int16_t *order ) { switch ( config ) { @@ -560,7 +585,9 @@ static ivas_error getAmbisonicsOrder( IVAS_REND_AudioConfig config, int16_t *ord return IVAS_ERR_OK; } -static ivas_error getNumNonLfeChannelsInSpeakerLayout( IVAS_REND_AudioConfig config, int16_t *numNonLfeChannels ) +static ivas_error getNumNonLfeChannelsInSpeakerLayout( + IVAS_REND_AudioConfig config, + int16_t *numNonLfeChannels ) { switch ( config ) { @@ -595,8 +622,8 @@ static ivas_error getMcConfigValues( LSSETUP_CUSTOM_STRUCT inCustomLs, const float **azimuth, const float **elevation, - int32_t *lfe_idx, - int32_t *is_planar ) + int16_t *lfe_idx, + int16_t *is_planar ) { int16_t i; @@ -643,7 +670,10 @@ static ivas_error getMcConfigValues( return IVAS_ERR_OK; } -static ivas_error initEfap( EFAP_WRAPPER *pEfapWrapper, IVAS_REND_AudioConfig outConfig, const LSSETUP_CUSTOM_STRUCT *pCustomLsOut ) +static ivas_error initEfap( + EFAP_WRAPPER *pEfapWrapper, + IVAS_REND_AudioConfig outConfig, + const LSSETUP_CUSTOM_STRUCT *pCustomLsOut ) { ivas_error error; const float *azimuths; @@ -675,11 +705,7 @@ static ivas_error initEfap( EFAP_WRAPPER *pEfapWrapper, IVAS_REND_AudioConfig ou if ( outConfig == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { - if ( ( error = efap_init_data( &pEfapWrapper->hEfap, - pCustomLsOut->ls_azimuth, - pCustomLsOut->ls_elevation, - pCustomLsOut->num_spk, - EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + if ( ( error = efap_init_data( &pEfapWrapper->hEfap, pCustomLsOut->ls_azimuth, pCustomLsOut->ls_elevation, pCustomLsOut->num_spk, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) { return error; } @@ -698,11 +724,7 @@ static ivas_error initEfap( EFAP_WRAPPER *pEfapWrapper, IVAS_REND_AudioConfig ou { return error; } - if ( ( error = efap_init_data( &pEfapWrapper->hEfap, - azimuths, - elevations, - numNonLfeChannels, - EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) + if ( ( error = efap_init_data( &pEfapWrapper->hEfap, azimuths, elevations, numNonLfeChannels, EFAP_MODE_EFAP ) ) != IVAS_ERR_OK ) { return error; } @@ -711,16 +733,17 @@ static ivas_error initEfap( EFAP_WRAPPER *pEfapWrapper, IVAS_REND_AudioConfig ou return IVAS_ERR_OK; } -static ivas_error getEfapGains( EFAP_WRAPPER efapWrapper, - const float azi, - const float ele, - pan_vector panGains ) +static ivas_error getEfapGains( + EFAP_WRAPPER efapWrapper, + const float azi, + const float ele, + pan_vector panGains ) { pan_vector tmpPanGains; /* tmp pan gain buffer without LFE channels */ float *readPtr; - int32_t i; + int16_t i; int16_t lfeCount; - int32_t numChannels; + int16_t numChannels; ivas_error error; /* EFAP returns an array of gains only for non-LFE speakers */ @@ -794,21 +817,28 @@ static void initHeadRotation( { hIvasRend->headRotData.headPositions[i] = quaternionInit(); } + + return; } -static void initRotMatrix( rotation_matrix rot_mat ) +static void initRotMatrix( + rotation_matrix rot_mat ) { int16_t i; + /* Initialize rotation matrices */ for ( i = 0; i < 3; i++ ) { set_zero( rot_mat[i], 3 ); rot_mat[i][i] = 1.f; } + + return; } -static void initRotGains( rotation_gains rot_gains ) +static void initRotGains( + rotation_gains rot_gains ) { int16_t i; /* Set gains to passthrough */ @@ -817,9 +847,15 @@ static void initRotGains( rotation_gains rot_gains ) set_zero( rot_gains[i], MAX_INPUT_CHANNELS ); rot_gains[i][i] = 1.f; } + + return; } -static void initRendInputBase( input_base *inputBase, IVAS_REND_AudioConfig inConfig, IVAS_REND_InputId id, rendering_context rendCtx ) +static void initRendInputBase( + input_base *inputBase, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_InputId id, + const rendering_context rendCtx ) { inputBase->inConfig = inConfig; inputBase->id = id; @@ -832,9 +868,12 @@ static void initRendInputBase( input_base *inputBase, IVAS_REND_AudioConfig inCo inputBase->inputBuffer.data = inputBase->bufferData; set_zero( inputBase->bufferData, MAX_BUFFER_LENGTH ); + + return; } -static IVAS_REND_AudioObjectPosition defaultObjectPosition( void ) +static IVAS_REND_AudioObjectPosition defaultObjectPosition( + void ) { IVAS_REND_AudioObjectPosition pos; @@ -844,7 +883,8 @@ static IVAS_REND_AudioObjectPosition defaultObjectPosition( void ) return pos; } -static rendering_context getRendCtx( IVAS_REND_HANDLE hIvasRend ) +static rendering_context getRendCtx( + IVAS_REND_HANDLE hIvasRend ) { rendering_context ctx; @@ -860,7 +900,8 @@ static rendering_context getRendCtx( IVAS_REND_HANDLE hIvasRend ) return ctx; } -static TDREND_WRAPPER defaultTdRendWrapper( void ) +static TDREND_WRAPPER defaultTdRendWrapper( + void ) { TDREND_WRAPPER w; @@ -871,7 +912,8 @@ static TDREND_WRAPPER defaultTdRendWrapper( void ) return w; } -static CREND_WRAPPER defaultCrendWrapper( void ) +static CREND_WRAPPER defaultCrendWrapper( + void ) { CREND_WRAPPER w; @@ -884,8 +926,8 @@ static CREND_WRAPPER defaultCrendWrapper( void ) static ivas_error setRendInputActiveIsm( void *input, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_InputId id, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_InputId id, RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; @@ -908,10 +950,7 @@ static ivas_error setRendInputActiveIsm( error = IVAS_ERR_OK; if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL ) { - error = ivas_rend_TDObjRendOpen( &inputIsm->tdRendWrapper, - inConfig, - NULL, - *rendCtx.pOutSampleRate ); + error = ivas_rend_TDObjRendOpen( &inputIsm->tdRendWrapper, inConfig, NULL, *rendCtx.pOutSampleRate ); } else if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { @@ -929,7 +968,8 @@ static ivas_error setRendInputActiveIsm( return IVAS_ERR_OK; } -static void clearInputIsm( input_ism *inputIsm ) +static void clearInputIsm( + input_ism *inputIsm ) { rendering_context rendCtx; @@ -949,16 +989,18 @@ static void clearInputIsm( input_ism *inputIsm ) } } -static void copyLsConversionMatrixToPanMatrix( const LS_CONVERSION_MATRIX *lsConvMatrix, pan_matrix panMatrix ) +static void copyLsConversionMatrixToPanMatrix( + const LS_CONVERSION_MATRIX *lsConvMatrix, + pan_matrix panMatrix ) { - int32_t i; - int32_t inCh, outCh; - int32_t numNonZeroGains; - int32_t numColumns; + int16_t i; + int16_t inCh, outCh; + int16_t numNonZeroGains; + int16_t numColumns; /* Index 0 is special and describes the following values */ numNonZeroGains = lsConvMatrix[0].index; - numColumns = (int32_t) lsConvMatrix[0].value; + numColumns = (int16_t) lsConvMatrix[0].value; for ( i = 1; i < numNonZeroGains + 1; ++i ) { @@ -967,22 +1009,28 @@ static void copyLsConversionMatrixToPanMatrix( const LS_CONVERSION_MATRIX *lsCon panMatrix[inCh][outCh] = lsConvMatrix[i].value; } + + return; } -static void setZeroPanMatrix( pan_matrix panMatrix ) +static void setZeroPanMatrix( + pan_matrix panMatrix ) { - int32_t i; + int16_t i; for ( i = 0; i < MAX_INPUT_CHANNELS; ++i ) { set_zero( panMatrix[i], MAX_OUTPUT_CHANNELS ); } + + return; } /* Note: this only sets non-zero elements, call setZeroPanMatrix() to init first. */ -static void fillIdentityPanMatrix( pan_matrix panMatrix ) +static void fillIdentityPanMatrix( + pan_matrix panMatrix ) { - int32_t i; + int16_t i; for ( i = 0; i < min( MAX_INPUT_CHANNELS, MAX_OUTPUT_CHANNELS ); ++i ) { @@ -990,17 +1038,20 @@ static void fillIdentityPanMatrix( pan_matrix panMatrix ) } } -static ivas_error initMcPanGainsWithIdentMatrix( input_mc *inputMc ) +static ivas_error initMcPanGainsWithIdentMatrix( + input_mc *inputMc ) { fillIdentityPanMatrix( inputMc->panGains ); return IVAS_ERR_OK; } -static ivas_error initMcPanGainsWithConversionMapping( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +static ivas_error initMcPanGainsWithConversionMapping( + input_mc *inputMc, + const IVAS_REND_AudioConfig outConfig ) { AUDIO_CONFIG ivasConfigIn, ivasConfigOut; - int32_t i; + int16_t i; ivasConfigIn = rendAudioConfigToIvasAudioConfig( inputMc->base.inConfig ); ivasConfigOut = rendAudioConfigToIvasAudioConfig( outConfig ); @@ -1074,10 +1125,7 @@ static ivas_error initMcPanGainsWithEfap( input_mc *inputMc, IVAS_REND_AudioConf ++outChIdx; } - if ( ( error = getEfapGains( *inputMc->base.ctx.pEfapOutWrapper, - spkAzi[i], - spkEle[i], - inputMc->panGains[outChIdx] ) ) != IVAS_ERR_OK ) + if ( ( error = getEfapGains( *inputMc->base.ctx.pEfapOutWrapper, spkAzi[i], spkEle[i], inputMc->panGains[outChIdx] ) ) != IVAS_ERR_OK ) { return error; } @@ -1095,7 +1143,9 @@ static ivas_error initMcPanGainsWithEfap( input_mc *inputMc, IVAS_REND_AudioConf return IVAS_ERR_OK; } -static ivas_error getRendInputNumChannels( const void *rendInput, int32_t *numInChannels ) +static ivas_error getRendInputNumChannels( + const void *rendInput, + int16_t *numInChannels ) { /* Using a void pointer for this function to be reusable for any input type (input_ism, input_mc, input_sba). Assumptions: @@ -1124,10 +1174,11 @@ static ivas_error getRendInputNumChannels( const void *rendInput, int32_t *numIn return IVAS_ERR_OK; } -static ivas_error initMcPanGainsWithMonoOut( input_mc *inputMc ) +static ivas_error initMcPanGainsWithMonoOut( + input_mc *inputMc ) { - int32_t i; - int32_t numInChannels; + int16_t i; + int16_t numInChannels; ivas_error error; if ( ( error = getRendInputNumChannels( inputMc, &numInChannels ) ) != IVAS_ERR_OK ) @@ -1145,12 +1196,13 @@ static ivas_error initMcPanGainsWithMonoOut( input_mc *inputMc ) return IVAS_ERR_OK; } -static ivas_error initMcPanGainsWithStereoLookup( input_mc *inputMc ) +static ivas_error initMcPanGainsWithStereoLookup( + input_mc *inputMc ) { - int32_t readIdx; - int32_t writeIdx; + int16_t readIdx; + int16_t writeIdx; bool skipSideSpeakers; - int32_t numInChannels; + int16_t numInChannels; ivas_error error; /* Special case - MONO input. @@ -1197,7 +1249,7 @@ static bool configsAreEqual( IVAS_REND_AudioConfig configB, LSSETUP_CUSTOM_STRUCT customLsB ) { - int32_t i; + int16_t i; /* Both input and output are custom LS - compare structs */ if ( configA == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM && configB == IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) @@ -1238,7 +1290,9 @@ static bool configsAreEqual( return configA == configB; } -static ivas_error updateMcPanGainsForMcOut( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +static ivas_error updateMcPanGainsForMcOut( + input_mc *inputMc, + const IVAS_REND_AudioConfig outConfig ) { ivas_error error; @@ -1254,10 +1308,7 @@ static ivas_error updateMcPanGainsForMcOut( input_mc *inputMc, IVAS_REND_AudioCo +-----------+----------+---------------+-----------+--------------------+ */ - if ( configsAreEqual( inputMc->base.inConfig, - inputMc->customLsInput, - outConfig, - *inputMc->base.ctx.pCustomLsOut ) ) + if ( configsAreEqual( inputMc->base.inConfig, inputMc->customLsInput, outConfig, *inputMc->base.ctx.pCustomLsOut ) ) { error = initMcPanGainsWithIdentMatrix( inputMc ); } @@ -1283,7 +1334,9 @@ static ivas_error updateMcPanGainsForMcOut( input_mc *inputMc, IVAS_REND_AudioCo return error; } -static ivas_error updateMcPanGainsForAmbiOut( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +static ivas_error updateMcPanGainsForAmbiOut( + input_mc *inputMc, + const IVAS_REND_AudioConfig outConfig ) { int16_t ch_in, ch_out, lfeIdx; int16_t numNonLfeInChannels, outAmbiOrder; @@ -1316,10 +1369,7 @@ static ivas_error updateMcPanGainsForAmbiOut( input_mc *inputMc, IVAS_REND_Audio { ++ch_out; } - ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], - (int16_t) spkEle[ch_in], - inputMc->panGains[ch_out], - outAmbiOrder ); + ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], (int16_t) spkEle[ch_in], inputMc->panGains[ch_out], outAmbiOrder ); } } else @@ -1339,19 +1389,18 @@ static ivas_error updateMcPanGainsForAmbiOut( input_mc *inputMc, IVAS_REND_Audio } } - ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], - (int16_t) spkEle[ch_in], - inputMc->panGains[ch_out], - outAmbiOrder ); + ivas_dirac_dec_get_response( (int16_t) spkAzi[ch_in], (int16_t) spkEle[ch_in], inputMc->panGains[ch_out], outAmbiOrder ); } } return IVAS_ERR_OK; } -static ivas_error updateMcPanGains( input_mc *inputMc, IVAS_REND_AudioConfig outConfig ) +static ivas_error updateMcPanGains( + input_mc *inputMc, + const IVAS_REND_AudioConfig outConfig ) { - int32_t i; + int16_t i; ivas_error error; /* Reset to all zeros - some functions below only write non-zero elements. */ @@ -1410,7 +1459,7 @@ static ivas_error updateMcPanGains( input_mc *inputMc, IVAS_REND_AudioConfig out See issue: https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec/-/issues/81 */ static void tmpFixBuggyTdBinRendInit( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRendererTd ) { - int32_t i, j; + int16_t i, j; for ( i = 0; i < hBinRendererTd->NumOfSrcs; ++i ) { @@ -1427,8 +1476,8 @@ static void tmpFixBuggyTdBinRendInit( BINAURAL_TD_OBJECT_RENDERER_HANDLE hBinRen static ivas_error initMcBinauralRendering( input_mc *inputMc, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_AudioConfig outConfig, RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; @@ -1465,10 +1514,7 @@ static ivas_error initMcBinauralRendering( // if ( initTDRend ) { - if ( ( error = ivas_rend_TDObjRendOpen( &inputMc->tdRendWrapper, - inConfig, - &inputMc->customLsInput, - outSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_TDObjRendOpen( &inputMc->tdRendWrapper, inConfig, &inputMc->customLsInput, outSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -1548,8 +1594,8 @@ static IVAS_REND_LfeRouting defaultLfeRouting( static ivas_error setRendInputActiveMc( void *input, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_InputId id, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_InputId id, RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; @@ -1567,10 +1613,7 @@ static ivas_error setRendInputActiveMc( inputMc->tdRendWrapper = defaultTdRendWrapper(); inputMc->crendWrapper = defaultCrendWrapper(); initRotGains( inputMc->rot_gains_prev ); - inputMc->lfeRouting = defaultLfeRouting( inConfig, - inputMc->customLsInput, - outConfig, - *inputMc->base.ctx.pCustomLsOut ); + inputMc->lfeRouting = defaultLfeRouting( inConfig, inputMc->customLsInput, outConfig, *inputMc->base.ctx.pCustomLsOut ); if ( outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { @@ -1588,7 +1631,8 @@ static ivas_error setRendInputActiveMc( return IVAS_ERR_OK; } -static void clearInputMc( input_mc *inputMc ) +static void clearInputMc( + input_mc *inputMc ) { rendering_context rendCtx; @@ -1610,11 +1654,13 @@ static void clearInputMc( input_mc *inputMc ) ivas_td_binaural_close( &inputMc->tdRendWrapper.hBinRendererTd ); inputMc->tdRendWrapper.hHrtfTD = NULL; } + + return; } static ivas_error initSbaPanGainsForMcOut( input_sba *inputSba, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, const LSSETUP_CUSTOM_STRUCT *outSetupCustom ) { int16_t ambiOrderIn; @@ -1682,7 +1728,9 @@ static ivas_error initSbaPanGainsForMcOut( return IVAS_ERR_OK; } -static ivas_error initSbaPanGainsForSbaOut( input_sba *inputSba, IVAS_REND_AudioConfig outConfig ) +static ivas_error initSbaPanGainsForSbaOut( + input_sba *inputSba, + const IVAS_REND_AudioConfig outConfig ) { ivas_error error; error = IVAS_ERR_OK; @@ -1698,7 +1746,10 @@ static ivas_error initSbaPanGainsForSbaOut( input_sba *inputSba, IVAS_REND_Audio return error; } -static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig outConfig, RENDER_CONFIG_DATA *hRendCfg ) +static ivas_error updateSbaPanGains( + input_sba *inputSba, + const IVAS_REND_AudioConfig outConfig, + RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; IVAS_REND_AudioConfig inConfig; @@ -1722,22 +1773,14 @@ static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig switch ( outConfig ) { case IVAS_REND_AUDIO_CONFIG_BINAURAL: - error = ivas_rend_openCrend( &inputSba->crendWrapper, - inConfig, - outConfig, - hRendCfg, - *rendCtx.pOutSampleRate ); + error = ivas_rend_openCrend( &inputSba->crendWrapper, inConfig, outConfig, hRendCfg, *rendCtx.pOutSampleRate ); break; case IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM: if ( ( error = initSbaPanGainsForMcOut( inputSba, IVAS_REND_AUDIO_CONFIG_7_1_4, NULL ) ) != IVAS_ERR_OK ) { return error; } - error = ivas_rend_openCrend( &inputSba->crendWrapper, - IVAS_REND_AUDIO_CONFIG_7_1_4, - outConfig, - hRendCfg, - *rendCtx.pOutSampleRate ); + error = ivas_rend_openCrend( &inputSba->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, hRendCfg, *rendCtx.pOutSampleRate ); break; default: return IVAS_ERR_INVALID_OUTPUT_FORMAT; @@ -1757,8 +1800,8 @@ static ivas_error updateSbaPanGains( input_sba *inputSba, IVAS_REND_AudioConfig static ivas_error setRendInputActiveSba( void *input, - IVAS_REND_AudioConfig inConfig, - IVAS_REND_InputId id, + const IVAS_REND_AudioConfig inConfig, + const IVAS_REND_InputId id, RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; @@ -1783,7 +1826,8 @@ static ivas_error setRendInputActiveSba( return error; } -static void clearInputSba( input_sba *inputSba ) +static void clearInputSba( + input_sba *inputSba ) { rendering_context rendCtx; @@ -1796,17 +1840,19 @@ static void clearInputSba( input_sba *inputSba ) { ivas_rend_closeCrend( &inputSba->crendWrapper ); } + + return; } ivas_error IVAS_REND_Open( IVAS_REND_HANDLE *phIvasRend, - int32_t outputSampleRate, - IVAS_REND_AudioConfig outConfig ) + const int32_t outputSampleRate, + const IVAS_REND_AudioConfig outConfig ) { int16_t i; IVAS_REND_HANDLE hIvasRend; ivas_error error; - int32_t numOutChannels; + int16_t numOutChannels; /*-----------------------------------------------------------------* * Validate function arguments @@ -1858,36 +1904,28 @@ ivas_error IVAS_REND_Open( /* Initialize inputs */ for ( i = 0; i < RENDERER_MAX_ISM_INPUTS; ++i ) { - initRendInputBase( &hIvasRend->inputsIsm[i].base, - IVAS_REND_AUDIO_CONFIG_UNKNOWN, - 0, - getRendCtx( hIvasRend ) ); + initRendInputBase( &hIvasRend->inputsIsm[i].base, IVAS_REND_AUDIO_CONFIG_UNKNOWN, 0, getRendCtx( hIvasRend ) ); hIvasRend->inputsIsm[i].crendWrapper.hCrend = NULL; hIvasRend->inputsIsm[i].tdRendWrapper.hBinRendererTd = NULL; } for ( i = 0; i < RENDERER_MAX_MC_INPUTS; ++i ) { - initRendInputBase( &hIvasRend->inputsMc[i].base, - IVAS_REND_AUDIO_CONFIG_UNKNOWN, - 0, - getRendCtx( hIvasRend ) ); + initRendInputBase( &hIvasRend->inputsMc[i].base, IVAS_REND_AUDIO_CONFIG_UNKNOWN, 0, getRendCtx( hIvasRend ) ); hIvasRend->inputsMc[i].efapInWrapper.hEfap = NULL; hIvasRend->inputsMc[i].crendWrapper.hCrend = NULL; hIvasRend->inputsMc[i].tdRendWrapper.hBinRendererTd = NULL; } for ( i = 0; i < RENDERER_MAX_SBA_INPUTS; ++i ) { - initRendInputBase( &hIvasRend->inputsSba[i].base, - IVAS_REND_AUDIO_CONFIG_UNKNOWN, - 0, - getRendCtx( hIvasRend ) ); + initRendInputBase( &hIvasRend->inputsSba[i].base, IVAS_REND_AUDIO_CONFIG_UNKNOWN, 0, getRendCtx( hIvasRend ) ); hIvasRend->inputsSba[i].crendWrapper.hCrend = NULL; } return IVAS_ERR_OK; } -static LSSETUP_CUSTOM_STRUCT makeCustomLsSetup( IVAS_CUSTOM_LS_DATA rendCustomLsLayout ) +static LSSETUP_CUSTOM_STRUCT makeCustomLsSetup( + const IVAS_CUSTOM_LS_DATA rendCustomLsLayout ) { int16_t i; LSSETUP_CUSTOM_STRUCT customLs; @@ -1913,9 +1951,10 @@ static LSSETUP_CUSTOM_STRUCT makeCustomLsSetup( IVAS_CUSTOM_LS_DATA rendCustomLs return customLs; } -static ivas_error validateCustomLsLayout( IVAS_CUSTOM_LS_DATA layout ) +static ivas_error validateCustomLsLayout( + const IVAS_CUSTOM_LS_DATA layout ) { - int32_t i; + int16_t i; /* Negative number of speakers or LFEs makes no sense */ if ( layout.num_spk < 0 || layout.num_lfe < 0 ) @@ -1941,11 +1980,10 @@ static ivas_error validateCustomLsLayout( IVAS_CUSTOM_LS_DATA layout ) ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( IVAS_REND_HANDLE hIvasRend, - IVAS_CUSTOM_LS_DATA layout ) + const IVAS_CUSTOM_LS_DATA layout ) { - int32_t numOutChannels; + int16_t i, numOutChannels; ivas_error error; - int32_t i; input_mc *inputMc; input_sba *inputSba; @@ -1974,14 +2012,10 @@ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( { return error; } - initLimiter( &hIvasRend->hLimiter, - numOutChannels, - hIvasRend->sampleRateOut ); + initLimiter( &hIvasRend->hLimiter, numOutChannels, hIvasRend->sampleRateOut ); /* Re-initialize EFAP - output layout has changed or has been fully defined for the first time */ - initEfap( &hIvasRend->efapOutWrapper, - hIvasRend->outputConfig, - &hIvasRend->customLsOut ); + initEfap( &hIvasRend->efapOutWrapper, hIvasRend->outputConfig, &hIvasRend->customLsOut ); /* Re-initialize panning gains for each active MC input, This includes re-initializing * LFE handling for the new output layout, which means custom LFE handling is overwritten, @@ -1994,10 +2028,9 @@ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( /* Input inactive, skip. */ continue; } - inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, - inputMc->customLsInput, - hIvasRend->outputConfig, - *inputMc->base.ctx.pCustomLsOut ); + + inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, inputMc->customLsInput, hIvasRend->outputConfig, *inputMc->base.ctx.pCustomLsOut ); + if ( ( error = updateMcPanGains( inputMc, hIvasRend->outputConfig ) ) != IVAS_ERR_OK ) { return error; @@ -2024,7 +2057,7 @@ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( ivas_error IVAS_REND_NumOutChannels( IVAS_REND_CONST_HANDLE hIvasRend, - int32_t *numOutChannels ) + int16_t *numOutChannels ) { ivas_error error; @@ -2056,7 +2089,9 @@ ivas_error IVAS_REND_NumOutChannels( return IVAS_ERR_OK; } -static IVAS_REND_InputId makeInputId( IVAS_REND_AudioConfig config, int32_t inputIndex ) +static IVAS_REND_InputId makeInputId( + IVAS_REND_AudioConfig config, + const int32_t inputIndex ) { /* Put config type in second byte (from LSB), put index + 1 in first byte * @@ -2064,7 +2099,10 @@ static IVAS_REND_InputId makeInputId( IVAS_REND_AudioConfig config, int32_t inpu return getAudioConfigType( config ) << 8 | ( inputIndex + 1 ); } -static ivas_error getInputById( IVAS_REND_HANDLE hIvasRend, IVAS_REND_InputId inputId, void **ppInput ) +static ivas_error getInputById( + IVAS_REND_HANDLE hIvasRend, + IVAS_REND_InputId inputId, + void **ppInput ) { int32_t inputIndex; IVAS_REND_AudioConfigType configType; @@ -2119,7 +2157,10 @@ static ivas_error getInputById( IVAS_REND_HANDLE hIvasRend, IVAS_REND_InputId in } /* Unfortunately code duplication here is the only way to avoid warnings about const casting */ -static ivas_error getConstInputById( IVAS_REND_CONST_HANDLE hIvasRend, IVAS_REND_InputId inputId, const void **ppInput ) +static ivas_error getConstInputById( + IVAS_REND_CONST_HANDLE hIvasRend, + const IVAS_REND_InputId inputId, + const void **ppInput ) { int32_t inputIndex; IVAS_REND_AudioConfigType configType; @@ -2260,20 +2301,14 @@ ivas_error IVAS_REND_AddInput( } /* Find first free input in array corresponding to input type */ - if ( ( error = findFreeInputSlot( inputsArray, - inputStructSize, - maxNumInputsOfType, - &inputIndex ) ) != IVAS_ERR_OK ) + if ( ( error = findFreeInputSlot( inputsArray, inputStructSize, maxNumInputsOfType, &inputIndex ) ) != IVAS_ERR_OK ) { return error; } *inputId = makeInputId( inConfig, inputIndex ); - if ( ( error = activateInput( (uint8_t *) inputsArray + inputStructSize * inputIndex, - inConfig, - *inputId, - hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK ) + if ( ( error = activateInput( (uint8_t *) inputsArray + inputStructSize * inputIndex, inConfig, *inputId, hIvasRend->hRendererConfig ) ) != IVAS_ERR_OK ) { return error; } @@ -2283,8 +2318,8 @@ ivas_error IVAS_REND_AddInput( ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - IVAS_CUSTOM_LS_DATA layout ) + const IVAS_REND_InputId inputId, + const IVAS_CUSTOM_LS_DATA layout ) { input_mc *inputMc; ivas_error error; @@ -2316,10 +2351,7 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( * set for the MC input. */ inputMc->customLsInput = makeCustomLsSetup( layout ); - inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, - inputMc->customLsInput, - hIvasRend->outputConfig, - *inputMc->base.ctx.pCustomLsOut ); + inputMc->lfeRouting = defaultLfeRouting( inputMc->base.inConfig, inputMc->customLsInput, hIvasRend->outputConfig, *inputMc->base.ctx.pCustomLsOut ); initEfap( &inputMc->efapInWrapper, inputMc->base.inConfig, &inputMc->customLsInput ); @@ -2340,8 +2372,8 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( ivas_error IVAS_REND_SetInputGain( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - float gain /* linear gain, not in dB */ + const IVAS_REND_InputId inputId, + const float gain /* linear gain, not in dB */ ) { input_base *inputBase; @@ -2365,7 +2397,8 @@ ivas_error IVAS_REND_SetInputGain( return IVAS_ERR_OK; } -static int32_t getNumLfeChannels( input_mc *inputMc ) +static int32_t getNumLfeChannels( + input_mc *inputMc ) { switch ( inputMc->base.inConfig ) { @@ -2386,8 +2419,8 @@ static int32_t getNumLfeChannels( input_mc *inputMc ) ivas_error IVAS_REND_SetInputLfeRouting( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - IVAS_REND_LfeRouting lfeRouting ) + const IVAS_REND_InputId inputId, + const IVAS_REND_LfeRouting lfeRouting ) { input_base *pInputBase; input_mc *pInputMc; @@ -2428,7 +2461,7 @@ ivas_error IVAS_REND_SetInputLfeRouting( ivas_error IVAS_REND_RemoveInput( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId ) + const IVAS_REND_InputId inputId ) { ivas_error error; input_base *inputBase; @@ -2466,8 +2499,8 @@ ivas_error IVAS_REND_RemoveInput( ivas_error IVAS_REND_GetInputNumChannels( IVAS_REND_CONST_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - int32_t *numChannels ) + const IVAS_REND_InputId inputId, + int16_t *numChannels ) { ivas_error error; const input_base *pInput; @@ -2552,12 +2585,12 @@ ivas_error IVAS_REND_GetDelay( ivas_error IVAS_REND_FeedInputAudio( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - IVAS_REND_ReadOnlyAudioBuffer inputAudio ) + const IVAS_REND_InputId inputId, + const IVAS_REND_ReadOnlyAudioBuffer inputAudio ) { ivas_error error; input_base *inputBase; - int32_t numInputChannels; + int16_t numInputChannels; /*-----------------------------------------------------------------* * Validate function arguments @@ -2597,9 +2630,7 @@ ivas_error IVAS_REND_FeedInputAudio( inputBase->inputBuffer.config = inputAudio.config; - mvr2r( inputAudio.data, - inputBase->inputBuffer.data, - inputAudio.config.numSamplesPerChannel * inputAudio.config.numChannels ); + mvr2r( inputAudio.data, inputBase->inputBuffer.data, inputAudio.config.numSamplesPerChannel * inputAudio.config.numChannels ); inputBase->numNewSamplesPerChannel = inputAudio.config.numSamplesPerChannel; @@ -2608,8 +2639,8 @@ ivas_error IVAS_REND_FeedInputAudio( ivas_error IVAS_REND_FeedInputObjectMetadata( IVAS_REND_HANDLE hIvasRend, - IVAS_REND_InputId inputId, - IVAS_REND_AudioObjectPosition objectPosition ) + const IVAS_REND_InputId inputId, + const IVAS_REND_AudioObjectPosition objectPosition ) { input_base *inputBase; input_ism *inputIsm; @@ -2873,6 +2904,8 @@ static void renderBufferChannel( IVAS_REND_AudioBuffer outAudio ) { renderBufferChannelLerp( inAudio, inChannelIdx, outputGains, NULL, outAudio ); + + return; } static ivas_error rotateFrameMc( @@ -2887,20 +2920,18 @@ static ivas_error rotateFrameMc( { int16_t i; int16_t subframe_idx, subframe_len; - int16_t azimuth, elevation; - int32_t is_planar_setup, lfe_idx; - int32_t nchan; - int32_t ch_in, ch_out; - int32_t ch_in_woLFE, ch_out_woLFE; - + int16_t is_planar_setup, lfe_idx; + int16_t nchan; + int16_t ch_in, ch_out; + int16_t ch_in_woLFE, ch_out_woLFE; float *readPtr, *writePtr; const float *ls_azimuth, *ls_elevation; rotation_matrix Rmat; rotation_gains gains; float tmp_gains[MAX_INPUT_CHANNELS]; - wmops_sub_start("rotateFrameMc"); + wmops_sub_start( "rotateFrameMc" ); if ( inConfig != IVAS_REND_AUDIO_CONFIG_LS_CUSTOM ) { @@ -2911,12 +2942,7 @@ static ivas_error rotateFrameMc( nchan = inCustomLs.num_spk + inCustomLs.num_lfe; } - getMcConfigValues( inConfig, - inCustomLs, - &ls_azimuth, - &ls_elevation, - &lfe_idx, - &is_planar_setup ); + getMcConfigValues( inConfig, inCustomLs, &ls_azimuth, &ls_elevation, &lfe_idx, &is_planar_setup ); /* initialize gains to passthrough */ for ( ch_in = 0; ch_in < nchan; ch_in++ ) @@ -2944,20 +2970,11 @@ static ivas_error rotateFrameMc( ch_in_woLFE = ( ( lfe_idx > 0 ) && ( ch_in >= lfe_idx ) ) ? ch_in - 1 : ch_in; /* gains for current subframe rotation */ - rotateAziEle( ls_azimuth[ch_in_woLFE], - ls_elevation[ch_in_woLFE], - &azimuth, - &elevation, - Rmat, - (int16_t) is_planar_setup ); + rotateAziEle( ls_azimuth[ch_in_woLFE], ls_elevation[ch_in_woLFE], &azimuth, &elevation, Rmat, is_planar_setup ); if ( hEFAPdata != NULL && ( ls_azimuth[ch_in_woLFE] != azimuth || ls_elevation[ch_in_woLFE] != elevation ) ) { - efap_determine_gains( hEFAPdata, - tmp_gains, - azimuth, - elevation, - EFAP_MODE_EFAP ); + efap_determine_gains( hEFAPdata, tmp_gains, azimuth, elevation, EFAP_MODE_EFAP ); for ( ch_out = 0; ch_out < nchan; ch_out++ ) { @@ -3017,13 +3034,12 @@ static ivas_error rotateFrameSba( int16_t m1, m2; int16_t shd_rot_max_order; int16_t subframe_idx, subframe_len; - float *readPtr, *writePtr; rotation_matrix Rmat; float tmpRot[2 * HEADROT_ORDER + 1]; rotation_gains gains; - wmops_sub_start("rotateFrameSba"); + wmops_sub_start( "rotateFrameSba" ); getAmbisonicsOrder( inConfig, &shd_rot_max_order ); @@ -3109,10 +3125,9 @@ static ivas_error renderIsmToBinaural( IVAS_REND_AudioBuffer outAudio ) { float tmpTDRendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - ivas_error error; - wmops_sub_start("renderIsmToBinaural"); + wmops_sub_start( "renderIsmToBinaural" ); copyBufferTo2dArray( ismInput->base.inputBuffer, tmpTDRendBuffer ); @@ -3143,11 +3158,10 @@ static ivas_error renderIsmToBinauralRoom( int16_t i; int16_t azi_rot, ele_rot; int16_t subframe_idx, subframe_len; - int32_t tmp; + int16_t tmp; rotation_matrix Rmat; float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; IVAS_QUATERNION quat; - ivas_error error; pan_vector currentPanGains; pan_vector previousPanGains; @@ -3155,7 +3169,7 @@ static ivas_error renderIsmToBinauralRoom( IVAS_REND_AudioObjectPosition rotatedPos; const IVAS_REND_HeadRotData *headRotData; - wmops_sub_start("renderIsmToBinauralRoom"); + wmops_sub_start( "renderIsmToBinauralRoom" ); headRotData = ismInput->base.ctx.pHeadRotData; rotatedPos = defaultObjectPosition(); @@ -3182,12 +3196,7 @@ static ivas_error renderIsmToBinauralRoom( /* previous position gains */ if ( headRotData->headRotEnabled ) { - rotateAziEle( ismInput->previousPos.azimuth, - ismInput->previousPos.elevation, - &azi_rot, - &ele_rot, - ismInput->rot_mat_prev, - 0 ); + rotateAziEle( ismInput->previousPos.azimuth, ismInput->previousPos.elevation, &azi_rot, &ele_rot, ismInput->rot_mat_prev, 0 ); rotatedPos.azimuth = (float) azi_rot; rotatedPos.elevation = (float) ele_rot; } @@ -3202,12 +3211,7 @@ static ivas_error renderIsmToBinauralRoom( /* current position gains */ if ( headRotData->headRotEnabled ) { - rotateAziEle( ismInput->currentPos.azimuth, - ismInput->currentPos.elevation, - &azi_rot, - &ele_rot, - Rmat, - 0 ); + rotateAziEle( ismInput->currentPos.azimuth, ismInput->currentPos.elevation, &azi_rot, &ele_rot, Rmat, 0 ); rotatedPos.azimuth = (float) azi_rot; rotatedPos.elevation = (float) ele_rot; } @@ -3227,23 +3231,15 @@ static ivas_error renderIsmToBinauralRoom( /* intermediate rendering to 7_1_4 */ tmpMcBuffer = ismInput->base.inputBuffer; getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); - tmpMcBuffer.config.numChannels = (int16_t) tmp; + tmpMcBuffer.config.numChannels = tmp; tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels ); - renderBufferChannelLerp( ismInput->base.inputBuffer, - 0, - currentPanGains, - previousPanGains, - tmpMcBuffer ); + renderBufferChannelLerp( ismInput->base.inputBuffer, 0, currentPanGains, previousPanGains, tmpMcBuffer ); copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); - ivas_rend_crendProcess( &ismInput->crendWrapper, - IVAS_REND_AUDIO_CONFIG_7_1_4, - IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM, - tmpCrendBuffer, - *ismInput->base.ctx.pOutSampleRate ); + ivas_rend_crendProcess( &ismInput->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM, tmpCrendBuffer, *ismInput->base.ctx.pOutSampleRate ); accumulate2dArrayToBuffer( tmpCrendBuffer, &outAudio ); @@ -3256,37 +3252,27 @@ static ivas_error renderIsmToBinauralRoom( static ivas_error renderIsmToMc( const input_ism *ismInput, - IVAS_REND_AudioBuffer outAudio ) + const IVAS_REND_AudioBuffer outAudio ) { pan_vector currentPanGains; pan_vector previousPanGains; ivas_error error; - wmops_sub_start("renderIsmToMc"); + wmops_sub_start( "renderIsmToMc" ); /* TODO(sgi): Possible optimization: less processing needed if position didn't change */ - if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, - ismInput->currentPos.azimuth, - ismInput->currentPos.elevation, - currentPanGains ) ) != IVAS_ERR_OK ) + if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, ismInput->currentPos.azimuth, ismInput->currentPos.elevation, currentPanGains ) ) != IVAS_ERR_OK ) { return error; } - if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, - ismInput->previousPos.azimuth, - ismInput->previousPos.elevation, - previousPanGains ) ) != IVAS_ERR_OK ) + if ( ( error = getEfapGains( *ismInput->base.ctx.pEfapOutWrapper, ismInput->previousPos.azimuth, ismInput->previousPos.elevation, previousPanGains ) ) != IVAS_ERR_OK ) { return error; } /* Assume num channels in audio buffer to be 1. * This should have been validated in IVAS_REND_FeedInputAudio() */ - renderBufferChannelLerp( ismInput->base.inputBuffer, - 0, - currentPanGains, - previousPanGains, - outAudio ); + renderBufferChannelLerp( ismInput->base.inputBuffer, 0, currentPanGains, previousPanGains, outAudio ); wmops_sub_end(); @@ -3295,17 +3281,17 @@ static ivas_error renderIsmToMc( static ivas_error renderIsmToSba( const input_ism *ismInput, - IVAS_REND_AudioConfig outConfig, - IVAS_REND_AudioBuffer outAudio ) + const IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioBuffer outAudio ) { int16_t ambiOrderOut; - int32_t numOutChannels; + int16_t numOutChannels; pan_vector currentPanGains; pan_vector previousPanGains; ivas_error error; error = IVAS_ERR_OK; - wmops_sub_start("renderIsmToSba"); + wmops_sub_start( "renderIsmToSba" ); if ( ( error = getAudioConfigNumChannels( outConfig, &numOutChannels ) ) != IVAS_ERR_OK ) { @@ -3316,10 +3302,7 @@ static ivas_error renderIsmToSba( return error; } - ivas_dirac_dec_get_response( (int16_t) ismInput->previousPos.azimuth, - (int16_t) ismInput->previousPos.elevation, - previousPanGains, - (int16_t) ambiOrderOut ); + ivas_dirac_dec_get_response( (int16_t) ismInput->previousPos.azimuth, (int16_t) ismInput->previousPos.elevation, previousPanGains, ambiOrderOut ); if ( ( ismInput->currentPos.azimuth == ismInput->previousPos.azimuth ) && ( ismInput->currentPos.elevation == ismInput->previousPos.elevation ) ) @@ -3328,19 +3311,12 @@ static ivas_error renderIsmToSba( } else { - ivas_dirac_dec_get_response( (int16_t) ismInput->currentPos.azimuth, - (int16_t) ismInput->currentPos.elevation, - currentPanGains, - (int16_t) ambiOrderOut ); + ivas_dirac_dec_get_response( (int16_t) ismInput->currentPos.azimuth, (int16_t) ismInput->currentPos.elevation, currentPanGains, ambiOrderOut ); } /* Assume num channels in audio buffer to be 1. * This should have been validated in IVAS_REND_FeedInputAudio() */ - renderBufferChannelLerp( ismInput->base.inputBuffer, - 0, - currentPanGains, - previousPanGains, - outAudio ); + renderBufferChannelLerp( ismInput->base.inputBuffer, 0, currentPanGains, previousPanGains, outAudio ); wmops_sub_end(); @@ -3349,8 +3325,8 @@ static ivas_error renderIsmToSba( static ivas_error renderInputIsm( input_ism *ismInput, - IVAS_REND_AudioConfig outConfig, - IVAS_REND_AudioBuffer outAudio ) + const IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioBuffer outAudio ) { ivas_error error; IVAS_REND_AudioBuffer inAudio; @@ -3365,10 +3341,7 @@ static ivas_error renderInputIsm( ismInput->base.numNewSamplesPerChannel = 0; /* Apply input gain to new audio */ - v_multc( inAudio.data, - ismInput->base.gain, - inAudio.data, - inAudio.config.numSamplesPerChannel * inAudio.config.numChannels ); + v_multc( inAudio.data, ismInput->base.gain, inAudio.data, inAudio.config.numSamplesPerChannel * inAudio.config.numChannels ); switch ( getAudioConfigType( outConfig ) ) @@ -3408,7 +3381,7 @@ static ivas_error renderActiveInputsIsm( IVAS_REND_HANDLE hIvasRend, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; input_ism *pCurrentInput; ivas_error error; @@ -3419,9 +3392,7 @@ static ivas_error renderActiveInputsIsm( /* Skip inactive inputs */ continue; } - if ( ( error = renderInputIsm( pCurrentInput, - hIvasRend->outputConfig, - outAudio ) ) != IVAS_ERR_OK ) + if ( ( error = renderInputIsm( pCurrentInput, hIvasRend->outputConfig, outAudio ) ) != IVAS_ERR_OK ) { return error; } @@ -3441,7 +3412,7 @@ static ivas_error renderLfeToBinaural( assert( ( outAudio.config.numChannels == 2 ) && "Must be binaural output" ); - wmops_sub_start("renderLfeToBinaural"); + wmops_sub_start( "renderLfeToBinaural" ); gain = GAIN_LFE; @@ -3481,7 +3452,7 @@ static ivas_error renderLfeToBinaural( static ivas_error renderMcToBinaural( input_mc *mcInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { int8_t headRotEnabled; @@ -3491,7 +3462,7 @@ static ivas_error renderMcToBinaural( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; - wmops_sub_start("renderMcToBinaural"); + wmops_sub_start( "renderMcToBinaural" ); headRotEnabled = mcInput->base.ctx.pHeadRotData->headRotEnabled; inConfig = mcInput->base.inConfig; @@ -3539,11 +3510,7 @@ static ivas_error renderMcToBinaural( } /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, - mcInput->base.inConfig, - outConfig, - tmpRendBuffer, - *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, mcInput->base.inConfig, outConfig, tmpRendBuffer, *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3561,7 +3528,7 @@ static ivas_error renderMcToBinaural( static ivas_error renderMcToBinauralRoom( input_mc *mcInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; @@ -3569,7 +3536,7 @@ static ivas_error renderMcToBinauralRoom( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; - wmops_sub_start("renderMcToBinauralRoom"); + wmops_sub_start( "renderMcToBinauralRoom" ); /* apply rotation */ if ( mcInput->base.ctx.pHeadRotData->headRotEnabled ) @@ -3595,11 +3562,7 @@ static ivas_error renderMcToBinauralRoom( } /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, - mcInput->base.inConfig, - outConfig, - tmpCrendBuffer, - *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, mcInput->base.inConfig, outConfig, tmpCrendBuffer, *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3617,20 +3580,21 @@ static ivas_error renderMcToBinauralRoom( static ivas_error renderMcCustomLsToBinauralRoom( input_mc *mcInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { int8_t headRotEnabled; int16_t i; - int32_t tmp; + int16_t tmp; float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; - ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; IVAS_REND_AudioBuffer tmpMcBuffer; IVAS_REND_AudioBuffer *tmpBufPtr; - wmops_sub_start("renderMcCustomLsToBinauralRoom"); + wmops_sub_start( "renderMcCustomLsToBinauralRoom" ); + + tmpRotBuffer = outAudio; /* avoid compilation warning */ headRotEnabled = mcInput->base.ctx.pHeadRotData->headRotEnabled; @@ -3660,19 +3624,12 @@ static ivas_error renderMcCustomLsToBinauralRoom( tmpBufPtr = ( headRotEnabled ) ? &tmpRotBuffer : &mcInput->base.inputBuffer; for ( i = 0; i < mcInput->base.inputBuffer.config.numChannels; i++ ) { - renderBufferChannel( *tmpBufPtr, - i, - mcInput->panGains[i], - tmpMcBuffer ); + renderBufferChannel( *tmpBufPtr, i, mcInput->panGains[i], tmpMcBuffer ); } copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, - IVAS_REND_AUDIO_CONFIG_7_1_4, - outConfig, - tmpCrendBuffer, - *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &mcInput->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, tmpCrendBuffer, *mcInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3697,10 +3654,10 @@ static ivas_error renderMcToMc( const input_mc *mcInput, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; IVAS_REND_AudioBuffer inAudio; - wmops_sub_start("renderMcToMc"); + wmops_sub_start( "renderMcToMc" ); inAudio = mcInput->base.inputBuffer; @@ -3718,10 +3675,10 @@ static ivas_error renderMcToSba( const input_mc *mcInput, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; IVAS_REND_AudioBuffer inAudio; - wmops_sub_start("renderMcToSba"); + wmops_sub_start( "renderMcToSba" ); inAudio = mcInput->base.inputBuffer; @@ -3802,7 +3759,7 @@ static ivas_error renderActiveInputsMc( IVAS_REND_HANDLE hIvasRend, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; input_mc *pCurrentInput; ivas_error error; @@ -3813,10 +3770,7 @@ static ivas_error renderActiveInputsMc( /* Skip inactive inputs */ continue; } - - if ( ( error = renderInputMc( pCurrentInput, - hIvasRend->outputConfig, - outAudio ) ) != IVAS_ERR_OK ) + if ( ( error = renderInputMc( pCurrentInput, hIvasRend->outputConfig, outAudio ) ) != IVAS_ERR_OK ) { return error; } @@ -3829,10 +3783,10 @@ static ivas_error renderSbaToMc( const input_sba *sbaInput, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; IVAS_REND_AudioBuffer inAudio; - wmops_sub_start("renderSbaToMc"); + wmops_sub_start( "renderSbaToMc" ); inAudio = sbaInput->base.inputBuffer; @@ -3850,10 +3804,10 @@ static ivas_error renderSbaToSba( const input_sba *sbaInput, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; IVAS_REND_AudioBuffer inAudio; - wmops_sub_start("renderSbaToSba"); + wmops_sub_start( "renderSbaToSba" ); inAudio = sbaInput->base.inputBuffer; @@ -3869,7 +3823,7 @@ static ivas_error renderSbaToSba( static ivas_error renderSbaToBinaural( input_sba *sbaInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; @@ -3877,7 +3831,7 @@ static ivas_error renderSbaToBinaural( ivas_error error; IVAS_REND_AudioBuffer tmpRotBuffer; - wmops_sub_start("renderSbaToBinaural"); + wmops_sub_start( "renderSbaToBinaural" ); /* apply rotation */ if ( sbaInput->base.ctx.pHeadRotData->headRotEnabled ) @@ -3903,11 +3857,7 @@ static ivas_error renderSbaToBinaural( } /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, - sbaInput->base.inConfig, - outConfig, - tmpCrendBuffer, - *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, sbaInput->base.inConfig, outConfig, tmpCrendBuffer, *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3921,12 +3871,12 @@ static ivas_error renderSbaToBinaural( static ivas_error renderSbaToBinauralRoom( input_sba *sbaInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { int8_t headRotEnabled; int16_t i; - int32_t tmp; + int16_t tmp; float tmpCrendBuffer[MAX_OUTPUT_CHANNELS][L_FRAME48k]; ivas_error error; @@ -3934,7 +3884,9 @@ static ivas_error renderSbaToBinauralRoom( IVAS_REND_AudioBuffer tmpMcBuffer; IVAS_REND_AudioBuffer *tmpBufPtr; - wmops_sub_start("renderSbaToBinauralRoom"); + tmpRotBuffer = outAudio; /* avoid compilation warning */ + + wmops_sub_start( "renderSbaToBinauralRoom" ); headRotEnabled = sbaInput->base.ctx.pHeadRotData->headRotEnabled; @@ -3944,14 +3896,9 @@ static ivas_error renderSbaToBinauralRoom( tmpRotBuffer = sbaInput->base.inputBuffer; tmpRotBuffer.data = count_malloc( tmpRotBuffer.config.numSamplesPerChannel * tmpRotBuffer.config.numChannels * sizeof( float ) ); /* copy input for in-place rotation */ - mvr2r( sbaInput->base.inputBuffer.data, tmpRotBuffer.data, - tmpRotBuffer.config.numChannels * tmpRotBuffer.config.numSamplesPerChannel ); + mvr2r( sbaInput->base.inputBuffer.data, tmpRotBuffer.data, tmpRotBuffer.config.numChannels * tmpRotBuffer.config.numSamplesPerChannel ); - rotateFrameSba( sbaInput->base.inputBuffer, - sbaInput->base.inConfig, - sbaInput->base.ctx.pHeadRotData, - sbaInput->rot_gains_prev, - tmpRotBuffer ); + rotateFrameSba( sbaInput->base.inputBuffer, sbaInput->base.inConfig, sbaInput->base.ctx.pHeadRotData, sbaInput->rot_gains_prev, tmpRotBuffer ); } /* intermediate rendering to 7_1_4 */ @@ -3959,26 +3906,18 @@ static ivas_error renderSbaToBinauralRoom( getAudioConfigNumChannels( IVAS_REND_AUDIO_CONFIG_7_1_4, &tmp ); tmpMcBuffer.config.numChannels = (int16_t) tmp; tmpMcBuffer.data = count_malloc( tmpMcBuffer.config.numSamplesPerChannel * tmpMcBuffer.config.numChannels * sizeof( float ) ); - set_zero( tmpMcBuffer.data, - tmpMcBuffer.config.numChannels * tmpMcBuffer.config.numSamplesPerChannel ); + set_zero( tmpMcBuffer.data, tmpMcBuffer.config.numChannels * tmpMcBuffer.config.numSamplesPerChannel ); tmpBufPtr = ( headRotEnabled ) ? &tmpRotBuffer : &sbaInput->base.inputBuffer; for ( i = 0; i < sbaInput->base.inputBuffer.config.numChannels; i++ ) { - renderBufferChannel( *tmpBufPtr, - i, - sbaInput->hoaDecMtx[i], - tmpMcBuffer ); + renderBufferChannel( *tmpBufPtr, i, sbaInput->hoaDecMtx[i], tmpMcBuffer ); } copyBufferTo2dArray( tmpMcBuffer, tmpCrendBuffer ); /* call CREND */ - if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, - IVAS_REND_AUDIO_CONFIG_7_1_4, - outConfig, - tmpCrendBuffer, - *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_rend_crendProcess( &sbaInput->crendWrapper, IVAS_REND_AUDIO_CONFIG_7_1_4, outConfig, tmpCrendBuffer, *sbaInput->base.ctx.pOutSampleRate ) ) != IVAS_ERR_OK ) { return error; } @@ -3998,7 +3937,7 @@ static ivas_error renderSbaToBinauralRoom( static ivas_error renderInputSba( input_sba *sbaInput, - IVAS_REND_AudioConfig outConfig, + const IVAS_REND_AudioConfig outConfig, IVAS_REND_AudioBuffer outAudio ) { ivas_error error; @@ -4056,7 +3995,7 @@ static ivas_error renderActiveInputsSba( IVAS_REND_HANDLE hIvasRend, IVAS_REND_AudioBuffer outAudio ) { - int32_t i; + int16_t i; input_sba *pCurrentInput; ivas_error error; @@ -4067,9 +4006,8 @@ static ivas_error renderActiveInputsSba( /* Skip inactive inputs */ continue; } - if ( ( error = renderInputSba( pCurrentInput, - hIvasRend->outputConfig, - outAudio ) ) != IVAS_ERR_OK ) + + if ( ( error = renderInputSba( pCurrentInput, hIvasRend->outputConfig, outAudio ) ) != IVAS_ERR_OK ) { return error; } @@ -4083,7 +4021,7 @@ ivas_error IVAS_REND_GetSamples( IVAS_REND_AudioBuffer outAudio ) { ivas_error error; - int32_t numOutChannels; + int16_t numOutChannels; /*-----------------------------------------------------------------* * Validate function arguments @@ -4140,9 +4078,10 @@ ivas_error IVAS_REND_GetSamples( return IVAS_ERR_OK; } -void IVAS_REND_Close( IVAS_REND_HANDLE *phIvasRend ) +void IVAS_REND_Close( + IVAS_REND_HANDLE *phIvasRend ) { - uint32_t i; + uint16_t i; IVAS_REND_HANDLE hIvasRend; /*-----------------------------------------------------------------* @@ -4177,11 +4116,12 @@ void IVAS_REND_Close( IVAS_REND_HANDLE *phIvasRend ) /* clear Config. Renderer */ ivas_render_config_close( &( hIvasRend->hRendererConfig ) ); - ivas_limiter_close( &hIvasRend->hLimiter ); count_free( hIvasRend ); *phIvasRend = NULL; + + return; } #ifdef DEBUGGING diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 924bc0e6fe..831823ad60 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -132,11 +132,11 @@ typedef enum IVAS_REND_AUDIO_CONFIG_UNKNOWN = IVAS_REND_AUDIO_CONFIG_TYPE_UNKNOWN << 8 | 0, } IVAS_REND_AudioConfig; -typedef uint32_t IVAS_REND_InputId; +typedef uint16_t IVAS_REND_InputId; typedef struct { - int32_t numLfeChannels; + int16_t numLfeChannels; float lfeOutputGains[IVAS_MAX_INPUT_LFE_CHANNELS][IVAS_MAX_OUTPUT_CHANNELS]; } IVAS_REND_LfeRouting; @@ -149,14 +149,14 @@ typedef struct ivas_error IVAS_REND_Open( IVAS_REND_HANDLE *phIvasRend, /* i/o: Pointer to renderer handle */ - int32_t outputSampleRate, /* i : output sampling rate */ - IVAS_REND_AudioConfig outConfig /* i : output audio config */ + const int32_t outputSampleRate, /* i : output sampling rate */ + const IVAS_REND_AudioConfig outConfig /* i : output audio config */ ); /* Note: this will reset custom LFE routings set for any MC input */ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for renderer output */ + const IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for renderer output */ ); /* Support for custom HRTFs will be added in the future. */ @@ -170,43 +170,43 @@ ivas_error IVAS_REND_SetCustomHrtf( ivas_error IVAS_REND_NumOutChannels( IVAS_REND_CONST_HANDLE hIvasRend, /* i : Renderer handle */ - int32_t *numOutChannels /* o : number of output channels */ + int16_t *numOutChannels /* o : number of output channels */ ); ivas_error IVAS_REND_AddInput( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_AudioConfig inConfig, /* i : audio config for a new input */ + const IVAS_REND_AudioConfig inConfig, /* i : audio config for a new input */ IVAS_REND_InputId *inputId /* o : ID of the new input */ ); /* Note: this will reset any custom LFE routing set for the input */ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for input */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_CUSTOM_LS_DATA layout /* i : custom loudspeaker layout for input */ ); ivas_error IVAS_REND_SetInputGain( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - float gain /* i : linear gain (not in dB) */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const float gain /* i : linear gain (not in dB) */ ); ivas_error IVAS_REND_SetInputLfeRouting( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - IVAS_REND_LfeRouting lfeRouting /* i : custom LFE routing struct */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_REND_LfeRouting lfeRouting /* i : custom LFE routing struct */ ); ivas_error IVAS_REND_RemoveInput( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId /* i : ID of the input */ + const IVAS_REND_InputId inputId /* i : ID of the input */ ); ivas_error IVAS_REND_GetInputNumChannels( IVAS_REND_CONST_HANDLE hIvasRend, /* i : Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - int32_t *numChannels /* o : number of channels of the input */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + int16_t *numChannels /* o : number of channels of the input */ ); ivas_error IVAS_REND_GetDelay( @@ -219,20 +219,20 @@ ivas_error IVAS_REND_GetDelay( ivas_error IVAS_REND_FeedInputAudio( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - IVAS_REND_ReadOnlyAudioBuffer inputAudio /* i : buffer with input audio */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_REND_ReadOnlyAudioBuffer inputAudio /* i : buffer with input audio */ ); ivas_error IVAS_REND_FeedInputObjectMetadata( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ - IVAS_REND_AudioObjectPosition objectPosition /* i : object position struct */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_REND_AudioObjectPosition objectPosition /* i : object position struct */ ); /* Support for MASA input will be added in the future. */ ivas_error IVAS_REND_FeedInputMasaMetadata( IVAS_REND_HANDLE hIvasRend, /* i/o: Renderer handle */ - IVAS_REND_InputId inputId, /* i : ID of the input */ + const IVAS_REND_InputId inputId, /* i : ID of the input */ void* TODO ); -- GitLab From 1fce6cf4c04fc7f0c5be331dc7e1ea93caa75cc6 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 8 Nov 2022 17:32:53 +0100 Subject: [PATCH 449/479] [tests] add more information about xfail reasons - correct path to MASA test files - address a TODO for EFAP --- lib_rend/ivas_efap.c | 4 ++ tests/renderer/constants.py | 93 +++++++++++++++++++++---------------- 2 files changed, 56 insertions(+), 41 deletions(-) diff --git a/lib_rend/ivas_efap.c b/lib_rend/ivas_efap.c index 8a3dd6ad05..8314d3117f 100644 --- a/lib_rend/ivas_efap.c +++ b/lib_rend/ivas_efap.c @@ -155,8 +155,12 @@ ivas_error efap_init_data( if ( !speaker_node_azi_deg || !speaker_node_ele_deg ) { hEFAPdata = NULL; +#ifdef EXT_RENDERER + return IVAS_ERROR( IVAS_ERR_WRONG_PARAMS, "EFAP requires arrays of speaker azimuths and elevations" ); +#else /* TODO: is this path correct behaviour or and error ? */ return IVAS_ERR_OK; +#endif } /*-----------------------------------------------------------------* diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index ff2e008438..1cefbda25d 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -149,10 +149,10 @@ FORMAT_TO_FILE = { # "ISM2": TEST_VECTOR_DIR.joinpath("spectral_test_ism2.txt"), # "ISM3": TEST_VECTOR_DIR.joinpath("spectral_test_ism3.txt"), # "ISM4": TEST_VECTOR_DIR.joinpath("spectral_test_ism4.txt"), - "MASA1": NCHAN_TO_FILE[1], - "MASA2": NCHAN_TO_FILE[2], - # "MASA1": TEST_VECTOR_DIR.joinpath("stv_IVASMASA_1dir1TC.pcm"), - # "MASA2": TEST_VECTOR_DIR.joinpath("stv_IVASMASA_2dir2TC.pcm"), + # "MASA1": NCHAN_TO_FILE[1], + # "MASA2": NCHAN_TO_FILE[2], + "MASA1": TESTV_DIR.joinpath("stv_IVASMASA_1dir1TC.pcm"), + "MASA2": TESTV_DIR.joinpath("stv_IVASMASA_2dir2TC.pcm"), "META": TEST_VECTOR_DIR.joinpath("mixed_scene.txt"), "16ch_8+4+4": NCHAN_TO_FILE[16], "4d0": NCHAN_TO_FILE[4], @@ -182,8 +182,8 @@ FORMAT_TO_METADATA_FILES = { str(TESTV_DIR.joinpath("stvISM3.csv")), str(TESTV_DIR.joinpath("stvISM4.csv")), ], - "MASA1": [str(TESTV_DIR.joinpath("stv_IVASMASAQ_1dir1TC.met"))], - "MASA2": [str(TESTV_DIR.joinpath("stv_IVASMASAQ_2dir2TC.met"))], + "MASA1": [str(TESTV_DIR.joinpath("stv_IVASMASA_1dir1TC.met"))], + "MASA2": [str(TESTV_DIR.joinpath("stv_IVASMASA_2dir2TC.met"))], } FORMAT_TO_IVAS = { @@ -284,7 +284,8 @@ pass_snr = { # TODO needs debugging "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-full_circle_in_15s]": 18, "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-full_circle_in_15s]": 15, - # Crend unit test does not support SHD BRIRs + # Failure reason: Crend unit test does not support intermediate conversion to 7_1_4 or SHD BRIRs + # Comparison with pyaudio3dtools results in bad SNR "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-full_circle_in_15s]": 0, "test_ambisonics_binaural_headrotation[FOA-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_ambisonics_binaural_headrotation[HOA2-BINAURAL_ROOM-full_circle_in_15s]": 0, @@ -296,8 +297,8 @@ pass_snr = { "test_ambisonics_binaural_static[FOA-BINAURAL_ROOM]": 0, "test_ambisonics_binaural_static[HOA2-BINAURAL_ROOM]": 0, "test_ambisonics_binaural_static[HOA3-BINAURAL_ROOM]": 0, - # TD Object Renderer used internally, comparison to pyaudio3dtools has bad SNR - # TD Object Renderer standalone does not support custom LS + # Failure reason: TD Object Renderer standalone does not support custom LS input + # Comparison with pyaudio3dtools results in bad SNR "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL]": 0, "test_custom_ls_input_binaural[16ch_8+4+4-BINAURAL_ROOM]": 0, "test_custom_ls_input_binaural[4d4-BINAURAL]": 0, @@ -322,9 +323,9 @@ pass_snr = { "test_custom_ls_input_binaural[itu_4+5+1-BINAURAL_ROOM]": 3, "test_custom_ls_input_binaural[t_design_4-BINAURAL]": 0, "test_custom_ls_input_binaural[t_design_4-BINAURAL_ROOM]": 0, - # Crend used internally, comparison to pyaudio3dtools has bad SNR - # Crend unit test does not support ISM rendering - # 5ms rendering still TODO in renderer + # TODO need to verify 5ms rendering in external renderer + # Crend unit test does not support intermediate conversion to 7_1_4 + # Comparison with pyaudio3dtools results in bad SNR "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 9, "test_ism_binaural_headrotation[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4, "test_ism_binaural_headrotation[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 10, @@ -340,7 +341,8 @@ pass_snr = { "test_ism_binaural_static[ISM2-BINAURAL_ROOM]": 21, "test_ism_binaural_static[ISM3-BINAURAL_ROOM]": 21, "test_ism_binaural_static[ISM4-BINAURAL_ROOM]": 21, - # TODO needs debugging, minor differences could be due to crossfades or metadata position rounding + # TODO needs debugging + # Failure reason: minor differences could be due to crossfades or metadata position rounding "test_ism[ISM1-5_1_2]": 48, "test_ism[ISM1-5_1_4]": 48, "test_ism[ISM1-5_1]": 48, @@ -377,19 +379,26 @@ pass_snr = { "test_ism[ISM4-HOA2]": 36, "test_ism[ISM4-HOA3]": 33, "test_ism[ISM4-STEREO]": 57, - # bitexact except for delay alignment of LFE signal (Issue 59) + # TODO delay alignment of LFE in binaural output + # Failure reason: bitexact except for delay alignment of LFE signal (Issue 59) "test_multichannel_binaural_headrotation[5_1-BINAURAL-full_circle_in_15s]": 7, "test_multichannel_binaural_headrotation[5_1-BINAURAL-rotate_yaw_pitch_roll1]": 6, "test_multichannel_binaural_headrotation[7_1-BINAURAL-full_circle_in_15s]": 8, "test_multichannel_binaural_headrotation[7_1-BINAURAL-rotate_yaw_pitch_roll1]": 8, - # TODO minor differences, needs debugging + # Failure reason: bitexact except for clicks and differences in center channel, could be due to crossfades "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-full_circle_in_15s]": 30, "test_multichannel_binaural_headrotation[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 30, "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-full_circle_in_15s]": 29, "test_multichannel_binaural_headrotation[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 29, "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-full_circle_in_15s]": 30, "test_multichannel_binaural_headrotation[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 30, - # headrotation may be applied differently + "test_multichannel_binaural_static[5_1_2-BINAURAL]": 30, + "test_multichannel_binaural_static[5_1_4-BINAURAL]": 29, + "test_multichannel_binaural_static[5_1-BINAURAL]": 27, + "test_multichannel_binaural_static[7_1-BINAURAL]": 30, + "test_multichannel_binaural_static[7_1_4-BINAURAL]": 30, + # TODO needs debugging + # Failure reason: headrotation may be applied differently, differences increase progressively "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-full_circle_in_15s]": 10, "test_multichannel_binaural_headrotation[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 4, "test_multichannel_binaural_headrotation[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 11, @@ -400,39 +409,38 @@ pass_snr = { "test_multichannel_binaural_headrotation[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 10, "test_multichannel_binaural_headrotation[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 3, - # TODO minor differences, needs debugging (same as headrotation case) - "test_multichannel_binaural_static[5_1_2-BINAURAL]": 30, - "test_multichannel_binaural_static[5_1_4-BINAURAL]": 29, - "test_multichannel_binaural_static[5_1-BINAURAL]": 27, - "test_multichannel_binaural_static[7_1-BINAURAL]": 30, - "test_multichannel_binaural_static[7_1_4-BINAURAL]": 30, ##################################### # # External vs Internal Renderer tests # ##################################### - # TODO conversion to 7_1_4 might be different (as indicated by next section of tests), needs debugging + # Failure reason: only fails for this trajectory with very high SNR, possible minor diff. in crossfade + # or due to usage of multiple TD Object Renderer instances + "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 84, + "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL-rotate_yaw_pitch_roll1]": 78, + "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL-rotate_yaw_pitch_roll1]": 85, + # TODO needs investigation + # Failure reason: conversion to 7_1_4 could be implemented differently w.r.t decoder "test_ism_binaural_headrotation_vs_decoder[ISM1-BINAURAL_ROOM-full_circle_in_15s]": 15, "test_ism_binaural_headrotation_vs_decoder[ISM1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 15, "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL_ROOM-full_circle_in_15s]": 12, "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 13, - "test_ism_binaural_headrotation_vs_decoder[ISM2-BINAURAL-rotate_yaw_pitch_roll1]": 84, "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL_ROOM-full_circle_in_15s]": 12, "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 13, - "test_ism_binaural_headrotation_vs_decoder[ISM3-BINAURAL-rotate_yaw_pitch_roll1]": 78, "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL_ROOM-full_circle_in_15s]": 12, "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 13, - "test_ism_binaural_headrotation_vs_decoder[ISM4-BINAURAL-rotate_yaw_pitch_roll1]": 85, "test_ism_binaural_static_vs_decoder[ISM1-BINAURAL_ROOM]": 15, "test_ism_binaural_static_vs_decoder[ISM2-BINAURAL_ROOM]": 12, "test_ism_binaural_static_vs_decoder[ISM3-BINAURAL_ROOM]": 12, "test_ism_binaural_static_vs_decoder[ISM4-BINAURAL_ROOM]": 12, - # TODO ISM to stereo panning is done via EFAP in the renderer and tangent law in decoder, harmonize + # TODO harmonize panning to stereo + # Failure reason ISM to stereo panning is done via EFAP in the renderer and tangent law in decoder, harmonize "test_ism_vs_decoder[ISM1-STEREO]": 8, "test_ism_vs_decoder[ISM2-STEREO]": 17, "test_ism_vs_decoder[ISM3-STEREO]": 14, "test_ism_vs_decoder[ISM4-STEREO]": 14, - # TODO loudspeaker and ambisonics rendering could be due to crossfades or metadata position rounding + # TODO needs investigation + # Failure reason: likely differences between metadata position rounding (decoder uses ceil()) and crossfades "test_ism_vs_decoder[ISM1-5_1_2]": 26, "test_ism_vs_decoder[ISM1-5_1]": 26, "test_ism_vs_decoder[ISM1-5_1_4]": 26, @@ -467,43 +475,46 @@ pass_snr = { "test_ism_vs_decoder[ISM4-HOA2]": 30, "test_ism_vs_decoder[ISM4-HOA3]": 29, "test_ism_vs_decoder[ISM4-MONO]": 77, - # TODO needs debugging + # TODO needs investigation + # Failure reason: headrotation and crossfade could have differences "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL-full_circle_in_15s]": 4, - "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 6, - "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL-rotate_yaw_pitch_roll1]": 0, "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL-full_circle_in_15s]": 4, - "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 7, - "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0, - "test_multichannel_binaural_headrotation_vs_decoder[5_1-BINAURAL_ROOM-full_circle_in_15s]": 5, - "test_multichannel_binaural_headrotation_vs_decoder[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL-full_circle_in_15s]": 4, - "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 5, - "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL-rotate_yaw_pitch_roll1]": 0, + # TODO needs investigation + "test_multichannel_binaural_headrotation_vs_decoder[5_1-BINAURAL_ROOM-full_circle_in_15s]": 5, + "test_multichannel_binaural_headrotation_vs_decoder[5_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL_ROOM-full_circle_in_15s]": 6, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_2-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL_ROOM-full_circle_in_15s]": 7, + "test_multichannel_binaural_headrotation_vs_decoder[5_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, "test_multichannel_binaural_headrotation_vs_decoder[7_1-BINAURAL_ROOM-full_circle_in_15s]": 5, "test_multichannel_binaural_headrotation_vs_decoder[7_1-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, - # TODO needs debugging + "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL_ROOM-full_circle_in_15s]": 5, + "test_multichannel_binaural_headrotation_vs_decoder[7_1_4-BINAURAL_ROOM-rotate_yaw_pitch_roll1]": 0, + # TODO needs investigation "test_multichannel_binaural_static_vs_decoder[5_1_2-BINAURAL_ROOM]": 18, "test_multichannel_binaural_static_vs_decoder[5_1_4-BINAURAL_ROOM]": 18, "test_multichannel_binaural_static_vs_decoder[5_1-BINAURAL_ROOM]": 18, "test_multichannel_binaural_static_vs_decoder[7_1_4-BINAURAL_ROOM]": 18, "test_multichannel_binaural_static_vs_decoder[7_1-BINAURAL_ROOM]": 19, - # TODO Mono downmix significantly different, needs a fix + # Failure reason: Mono downmix significantly different, needs a fix "test_multichannel_vs_decoder[5_1_2-MONO]": 1, "test_multichannel_vs_decoder[5_1_4-MONO]": 1, "test_multichannel_vs_decoder[5_1-MONO]": 1, "test_multichannel_vs_decoder[7_1_4-MONO]": 1, "test_multichannel_vs_decoder[7_1-MONO]": 1, "test_multichannel_vs_decoder[STEREO-MONO]": 17, - # TODO Stereo downmix differs slightly, needs debugging + # Failure reason: Stereo downmix differs slightly, needs a fix "test_multichannel_vs_decoder[5_1_2-STEREO]": 44, "test_multichannel_vs_decoder[5_1_4-STEREO]": 48, "test_multichannel_vs_decoder[5_1-STEREO]": 48, "test_multichannel_vs_decoder[7_1_4-STEREO]": 46, "test_multichannel_vs_decoder[7_1-STEREO]": 44, - # TODO minor differences, needs debugging + # TODO needs investigation + # Failure reason: possibly due to minor differences in crossfades "test_multichannel_vs_decoder[5_1_2-5_1_4]": 63, "test_multichannel_vs_decoder[5_1_2-5_1]": 63, "test_multichannel_vs_decoder[5_1_2-7_1_4]": 63, -- GitLab From 202bcfa4c994d7218181df14cec952c1c784520a Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 8 Nov 2022 18:12:24 +0100 Subject: [PATCH 450/479] [cleanup] accept FIX_I173_I174 in renderer_standalone.c to fix pipeline --- .../renderer_standalone.c | 38 ------------------- 1 file changed, 38 deletions(-) diff --git a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c index 82c4d83abc..8f5b5354ae 100644 --- a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c +++ b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c @@ -52,11 +52,7 @@ *------------------------------------------------------------------------------------------*/ #define META_LINE_LENGTH 200 /* max number of characters at one line of metadata input/output file */ -#ifdef FIX_I173_I174 #define NUM_ISM_METADATA_PER_LINE 4 /* Number of ISM metadata per line in a metadata file */ -#else -#define NUM_ISM_METADATA_PER_LINE 5 /* Number of ISM metadata per line in a metadata file */ -#endif /*---------------------------------------------------------------------* * Local function prototypes @@ -130,9 +126,6 @@ int main( int argc, char *argv[] ) FILE *f_input; FILE *f_output; FILE *f_quat_traj; -#ifndef FIX_I173_I174 - int32_t tmp; -#endif float x, y, z, w; FILE *f_metadata[MAX_NUM_OBJECTS]; Decoder_Struct st_ivas_static; @@ -166,9 +159,7 @@ int main( int argc, char *argv[] ) { return IVAS_ERR_FAILED_ALLOC; } -#ifdef FIX_I173_I174 st_ivas->hDecoderConfig->Opt_Headrotation = FALSE; -#endif /* ISm metadata handles */ for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) @@ -325,9 +316,7 @@ int main( int argc, char *argv[] ) fprintf( stderr, "Can not allocate memory for head-tracking\n" ); exit( -1 ); } -#ifdef FIX_I173_I174 st_ivas->hDecoderConfig->Opt_Headrotation = TRUE; -#endif } else { @@ -407,11 +396,7 @@ int main( int argc, char *argv[] ) { for ( i = 0; i < 4; i++ ) /* MAX_PARAM_SPATIAL_SUBFRAMES = 4 */ { -#ifdef FIX_I173_I174 if ( 4 == fscanf( f_quat_traj, "%f,%f,%f,%f", &w, &x, &y, &z ) ) -#else - if ( 5 == fscanf( f_quat_traj, "%d,%f,%f,%f,%f", &tmp, &w, &x, &y, &z ) ) -#endif { st_ivas->hHeadTrackData->num_quaternions = -1; @@ -559,9 +544,6 @@ static void readMetadata( float meta_prm[NUM_ISM_METADATA_PER_LINE]; char *char_ptr; int16_t j; -#ifndef FIX_I173_I174 - int32_t time_stamp; -#endif if ( fgets( char_buff, META_LINE_LENGTH, file ) == NULL ) { @@ -569,33 +551,13 @@ static void readMetadata( exit( -1 ); } -#ifdef FIX_I173_I174 j = 0; char_ptr = strtok( char_buff, "," ); meta_prm[j++] = (float) atof( char_ptr ); -#else - char_ptr = strtok( char_buff, "," ); -#ifndef FIX_I173_I174 - time_stamp = (int32_t) atoi( char_ptr ); - - if ( time_stamp != frame ) - { - fprintf( stderr, "\n!!!Error: Wrong time-stamp while reading ISM metadata input file. Exiting!!!\n\n" ); - exit( -1 ); - } -#endif - - j = 0; -#endif while ( char_ptr != NULL && j < NUM_ISM_METADATA_PER_LINE ) { -#ifndef FIX_I173_I174 - meta_prm[j++] = (float) atof( char_ptr ); - char_ptr = strtok( NULL, "," ); -#else char_ptr = strtok( NULL, "," ); meta_prm[j++] = (float) atof( char_ptr ); -#endif } hIsmMetaData->azimuth = meta_prm[0]; -- GitLab From 53d4d17e9907c02b0cafcb65eaa63bfe98f0629f Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 8 Nov 2022 18:21:22 +0100 Subject: [PATCH 451/479] [formatting] apply clang-format patch from CI job --- lib_rend/ivas_rotation.c | 28 ++++++++++++++-------------- lib_rend/ivas_stat_rend.h | 9 +++++---- lib_rend/lib_rend.c | 2 +- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/lib_rend/ivas_rotation.c b/lib_rend/ivas_rotation.c index 372930616f..e3c6ee6985 100644 --- a/lib_rend/ivas_rotation.c +++ b/lib_rend/ivas_rotation.c @@ -108,7 +108,7 @@ void QuatToRotMat( #else const Quaternion quat, /* i : quaternion describing the rotation */ #endif - float Rmat[3][3] /* o : real-space rotation matrix for this rotation */ + float Rmat[3][3] /* o : real-space rotation matrix for this rotation */ ) { float s1, s2, s3, c1, c2, c3; @@ -181,9 +181,9 @@ void Quat2Euler( #else const Quaternion quat, /* i : quaternion describing the rotation */ #endif - float *yaw, /* o : yaw */ - float *pitch, /* o : pitch */ - float *roll /* o : roll */ + float *yaw, /* o : yaw */ + float *pitch, /* o : pitch */ + float *roll /* o : roll */ ) { if ( quat.w != -3.0 ) @@ -310,11 +310,11 @@ void rotateFrame_shd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated HOA3 signal buffer in TD */ #ifndef EXT_RENDERER - const int32_t output_fs, /* i : output sampling frequency */ + const int32_t output_fs, /* i : output sampling frequency */ #endif - const int16_t subframe_len, /* i : subframe length per channel */ - const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ - const int16_t subframe_idx /* i : subframe index */ + const int16_t subframe_len, /* i : subframe length per channel */ + const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ + const int16_t subframe_idx /* i : subframe index */ ) { int16_t i, l, n, m; @@ -445,12 +445,12 @@ void rotateFrame_sd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated SD signal buffer in TD */ #ifndef EXT_RENDERER - const int32_t output_Fs, /* i : output sampling frequency */ + const int32_t output_Fs, /* i : output sampling frequency */ #endif - const int16_t subframe_len, /* i : subframe length per channel */ - const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ - const EFAP_HANDLE hEFAPdata, /* i : EFAP structure */ - const int16_t subframe_idx /* i : subframe index */ + const int16_t subframe_len, /* i : subframe length per channel */ + const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ + const EFAP_HANDLE hEFAPdata, /* i : EFAP structure */ + const int16_t subframe_idx /* i : subframe index */ ) { int16_t i, j; @@ -934,7 +934,7 @@ static float SHrot_w( } } - void SHrotmatgen( +void SHrotmatgen( float SHrotmat[HEADROT_SHMAT_DIM][HEADROT_SHMAT_DIM], /* o : rotation matrix in SHD */ float Rmat[3][3], /* i : real-space rotation matrix */ const int16_t order /* i : ambisonics order */ diff --git a/lib_rend/ivas_stat_rend.h b/lib_rend/ivas_stat_rend.h index 21b5e3be29..a38b8d96c1 100644 --- a/lib_rend/ivas_stat_rend.h +++ b/lib_rend/ivas_stat_rend.h @@ -92,10 +92,11 @@ typedef struct ivas_LS_setup_custom } LSSETUP_CUSTOM_STRUCT, *LSSETUP_CUSTOM_HANDLE; /* Channel types in a channel-based config */ -typedef enum { - CHANNEL_TYPE_UNUSED = 0, - CHANNEL_TYPE_SPEAKER, - CHANNEL_TYPE_LFE +typedef enum +{ + CHANNEL_TYPE_UNUSED = 0, + CHANNEL_TYPE_SPEAKER, + CHANNEL_TYPE_LFE } ChannelType; #endif /* IVAS_STAT_REND_H */ diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index fb928d637d..a1aad87651 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -216,7 +216,7 @@ static void accumulate2dArrayToBuffer( * * In-place saturation control for multichannel buffers with adaptive release time * - * + * *-------------------------------------------------------------------*/ /*! r: number of clipped output samples */ -- GitLab From 08c34b5f1f4f874409624f07457ad8fa2f6e4553 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 8 Nov 2022 18:35:18 +0100 Subject: [PATCH 452/479] [formatting] apply patch from CI job --- apps/renderer.c | 4 ++-- lib_rend/ivas_crend.c | 15 +++++++-------- lib_rend/lib_rend.c | 16 ++++++++-------- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index c7c1b8cf8f..d626db7d42 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -659,7 +659,7 @@ int main( } /* === Configure === */ - if ( ( error = IVAS_REND_InitConfig( hIvasRend, headRotReader != NULL, strlen(args.renderConfigFilePath) != 0 ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_InitConfig( hIvasRend, headRotReader != NULL, strlen( args.renderConfigFilePath ) != 0 ) ) != IVAS_ERR_OK ) { exit( -1 ); } @@ -667,7 +667,7 @@ int main( if ( args.renderConfigFilePath[0] != '\0' ) { IVAS_RENDER_CONFIG_DATA renderConfig; - + /* sanity check */ if ( args.outConfig.audioConfig != IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index 698612b1ad..d1b79ca3d5 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -1277,14 +1277,13 @@ ivas_error ivas_rend_openCrend( hCrend->hTrack = NULL; } - if ( ( hRendCfg != NULL ) && (hRendCfg->roomAcoustics.late_reverb_on ) ) + if ( ( hRendCfg != NULL ) && ( hRendCfg->roomAcoustics.late_reverb_on ) ) { - if ( ( error = ivas_reverb_open( &(hCrend->hReverb), - getIvasAudioConfigFromRendAudioConfig( inConfig ), - pCrend->hHrtfCrend, - hRendCfg, - output_Fs - ) ) != IVAS_ERR_OK ) + if ( ( error = ivas_reverb_open( &( hCrend->hReverb ), + getIvasAudioConfigFromRendAudioConfig( inConfig ), + pCrend->hHrtfCrend, + hRendCfg, + output_Fs ) ) != IVAS_ERR_OK ) { return error; } @@ -1343,7 +1342,7 @@ ivas_error ivas_rend_initCrend( /* set BRIR flag */ use_brir = false; - if ( (hRendCfg != NULL && hRendCfg->roomAcoustics.use_brir ) || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) + if ( ( hRendCfg != NULL && hRendCfg->roomAcoustics.use_brir ) || outConfig == IVAS_REND_AUDIO_CONFIG_BINAURAL_ROOM ) { use_brir = true; } diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 0572f560f0..a7966aa4da 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -152,12 +152,12 @@ struct IVAS_REND IVAS_REND_AudioConfig outputConfig; EFAP_WRAPPER efapOutWrapper; IVAS_LSSETUP_CUSTOM_STRUCT customLsOut; - + int8_t enableHeadRotation; IVAS_REND_HeadRotData headRotData; int8_t rendererConfigEnabled; - RENDER_CONFIG_DATA *hRendererConfig; /* Renderer config pointer */ + RENDER_CONFIG_DATA *hRendererConfig; /* Renderer config pointer */ }; static IVAS_QUATERNION quaternionInit( @@ -1747,9 +1747,9 @@ static ivas_error initSbaPanGainsForSbaOut( } static ivas_error updateSbaPanGains( - input_sba *inputSba, - const IVAS_REND_AudioConfig outConfig, - RENDER_CONFIG_DATA *hRendCfg ) + input_sba *inputSba, + const IVAS_REND_AudioConfig outConfig, + RENDER_CONFIG_DATA *hRendCfg ) { ivas_error error; IVAS_REND_AudioConfig inConfig; @@ -2672,8 +2672,8 @@ ivas_error IVAS_REND_FeedInputObjectMetadata( } ivas_error IVAS_REND_InitConfig( IVAS_REND_HANDLE st, - bool headRotationEnabled, - bool rendererConfigEnabled ) + bool headRotationEnabled, + bool rendererConfigEnabled ) { ivas_error error; @@ -2694,7 +2694,7 @@ ivas_error IVAS_REND_InitConfig( IVAS_REND_HANDLE st, { st->rendererConfigEnabled = 0; } - + if ( ( error = ivas_render_config_open( &( st->hRendererConfig ) ) ) != IVAS_ERR_OK ) { return error; -- GitLab From cc9332825cfe8885fcb660e21c605e708458486e Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 8 Nov 2022 18:35:21 +0100 Subject: [PATCH 453/479] apply clang-format --- lib_dec/ivas_tcx_core_dec.c | 16 ++++++++-------- lib_enc/lsf_enc.c | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib_dec/ivas_tcx_core_dec.c b/lib_dec/ivas_tcx_core_dec.c index a55ba37e02..3ca3033cb4 100644 --- a/lib_dec/ivas_tcx_core_dec.c +++ b/lib_dec/ivas_tcx_core_dec.c @@ -780,17 +780,17 @@ void stereo_tcx_core_dec( /*-----------------------------------------------------------------* * Function dec_prm_tcx() - * + * * Decode TCX parameters *-----------------------------------------------------------------*/ static void dec_prm_tcx( - Decoder_State *st, /* i/o: decoder memory state */ - int16_t param[], /* o : decoded parameters */ - int16_t param_lpc[], /* o : LPC parameters */ - int16_t *total_nbbits, /* i/o: number of bits / decoded bits */ - const int16_t last_element_mode, - int16_t *bitsRead /* o : number of read bits */ + Decoder_State *st, /* i/o: decoder memory state */ + int16_t param[], /* o : decoded parameters */ + int16_t param_lpc[], /* o : LPC parameters */ + int16_t *total_nbbits, /* i/o: number of bits / decoded bits */ + const int16_t last_element_mode, /* i : last element mode */ + int16_t *bitsRead /* o : number of read bits */ ) { int16_t start_bit_pos, bits_common; @@ -914,7 +914,7 @@ static void dec_prm_tcx( /*-----------------------------------------------------------------* * Function stereo_tcx_dec_mode_switch_reconf() - * + * * Reconfigure stereo TCX parameters *-----------------------------------------------------------------*/ diff --git a/lib_enc/lsf_enc.c b/lib_enc/lsf_enc.c index 1cbe2352a7..8e561c76e8 100644 --- a/lib_enc/lsf_enc.c +++ b/lib_enc/lsf_enc.c @@ -1019,7 +1019,7 @@ void first_VQstages( dist[0] = dist_buf; dist[1] = dist_buf + maxC; - set_s( idx_buf, 0, (const int16_t) ( 2 * stagesVQ * maxC ) ); + set_s( idx_buf, 0, 2 * stagesVQ * maxC ); set_s( parents, 0, maxC ); /* Set up inital distance vector */ -- GitLab From 0786425eece517828dbe57b7b96d7e0e76186227 Mon Sep 17 00:00:00 2001 From: vaclav Date: Tue, 8 Nov 2022 18:44:11 +0100 Subject: [PATCH 454/479] cleaning --- lib_com/tools.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/tools.c b/lib_com/tools.c index 3e6e56d5a0..2ab9952c0c 100644 --- a/lib_com/tools.c +++ b/lib_com/tools.c @@ -1313,7 +1313,7 @@ float var( float v; int16_t i; - m = mean( x, (const int16_t) len ); + m = mean( x, len ); v = 0.0f; for ( i = 0; i < len; i++ ) -- GitLab From f97bb51ef9af7fb1cfb9de1fa72d3fa305274e45 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Tue, 8 Nov 2022 19:02:18 +0100 Subject: [PATCH 455/479] [ci] pytest.ini - prevent pytest from running renderer tests - comment out external-renderer-cmake-vs-decoder-pytest and move to tests/renderer/run_test_renderer_vs_decoder.sh - add .external-renderer-pytest-on-merge-request to be enabled after merge to main --- .gitlab-ci.yml | 31 ++++++++++++++++++- pytest.ini | 3 +- .../renderer/run_test_renderer_vs_decoder.sh | 10 ++++++ 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100755 tests/renderer/run_test_renderer_vs_decoder.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ba05b4168d..d37d77bdfe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -372,7 +372,8 @@ external-renderer-cmake-msan-pytest: - report-junit.xml # test external renderer executable with cmake vs decoder renderer -external-renderer-cmake-vs-decoder-pytest: +# TODO @tmu @knj @sgi -> converted to script, decide whether to re-enable later +.external-renderer-cmake-vs-decoder-pytest: extends: - .test-job-linux - .rules-merge-request @@ -392,6 +393,34 @@ external-renderer-cmake-vs-decoder-pytest: junit: - report-junit.xml +# compare external renderer bitexactness between target and source branch +# TODO @knj please update +.external-renderer-pytest-on-merge-request: + extends: + - .test-job-linux + - .rules-merge-request + needs: ["build-codec-linux-make"] + stage: compare + script: + - make -j IVAS_rend + - make -j unittests + - make -j --directory scripts/td_object_renderer/object_renderer_standalone + - git checkout main + - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py + - mv tests/renderer/ref tests/renderer/ref_main + - git checkout FhG/external-renderer + - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py + - python scripts/batch_comp_audio.py ./tests/renderer/ref_main ./tests/renderer/ref + artifacts: + name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" + when: always + paths: + - report-junit.xml + expose_as: "external renderer pytest on merge request results" + reports: + junit: + - report-junit.xml + # compare bit exactness between target and source branch ivas-pytest-on-merge-request: extends: diff --git a/pytest.ini b/pytest.ini index 4e8666cb52..bb4169677b 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,7 +1,8 @@ # pytest.ini # note: per convention, this file is placed in the root directory of the repository [pytest] -addopts = -ra --tb=short --basetemp=./tmp -n auto -v +# TODO remove ignore after tests are harmonized +addopts = -ra --tb=short --basetemp=./tmp -n auto -v --ignore=tests/renderer # Write captured system-out log messages to JUnit report. junit_logging = system-out # Do not capture log information for passing tests to JUnit report. diff --git a/tests/renderer/run_test_renderer_vs_decoder.sh b/tests/renderer/run_test_renderer_vs_decoder.sh new file mode 100755 index 0000000000..215a6435b0 --- /dev/null +++ b/tests/renderer/run_test_renderer_vs_decoder.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# WARNING! This script is a temporary helper, ideally these steps should be done manually and the pytest suite also run manually +cd ../../ +mkdir build +cmake -B build -G "Unix Makefiles" -DDEC_TO_REND_FLOAT_DUMP=true -DCOPY_EXECUTABLES_FROM_BUILD_DIR=true +cmake --build build -- -j +python3 -m pytest -q -n 1 -rA tests/renderer/test_renderer_vs_decoder.py + +echo "WARNING! Existing executables in root were overwritten!" -- GitLab From 4d1c97921dcbadc177cbabdc9e985aa02ed9f3ab Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Tue, 8 Nov 2022 22:14:30 +0100 Subject: [PATCH 456/479] forgotten acceptance of FIX_I173_I174 --- .../renderer_standalone.c | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c index 494b596b10..831192a091 100644 --- a/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c +++ b/scripts/td_object_renderer/object_renderer_standalone/object_renderer_standalone/renderer_standalone.c @@ -160,9 +160,7 @@ int main( int argc, char *argv[] ) { return IVAS_ERR_FAILED_ALLOC; } -#ifdef FIX_I173_I174 st_ivas->hDecoderConfig->Opt_Headrotation = FALSE; -#endif /* ISm metadata handles */ for ( n = 0; n < MAX_NUM_OBJECTS; n++ ) @@ -318,9 +316,7 @@ int main( int argc, char *argv[] ) fprintf( stderr, "Can not allocate memory for head-tracking\n" ); exit( -1 ); } -#ifdef FIX_I173_I174 st_ivas->hDecoderConfig->Opt_Headrotation = TRUE; -#endif } /* Init limiter */ @@ -544,9 +540,6 @@ static void readMetadata( float meta_prm[NUM_ISM_METADATA_PER_LINE]; char *char_ptr; int16_t j; -#ifndef FIX_I173_I174 - int32_t time_stamp; -#endif if ( fgets( char_buff, META_LINE_LENGTH, file ) == NULL ) { @@ -554,22 +547,9 @@ static void readMetadata( exit( -1 ); } -#ifdef FIX_I173_I174 j = 0; char_ptr = strtok( char_buff, "," ); meta_prm[j++] = (float) atof( char_ptr ); -#else - char_ptr = strtok( char_buff, "," ); - time_stamp = (int32_t) atoi( char_ptr ); - - if ( time_stamp != frame ) - { - fprintf( stderr, "\n!!!Error: Wrong time-stamp while reading ISM metadata input file. Exiting!!!\n\n" ); - exit( -1 ); - } - - j = 0; -#endif while ( char_ptr != NULL && j < NUM_ISM_METADATA_PER_LINE ) { char_ptr = strtok( NULL, "," ); -- GitLab From aa9fbeb5e3dfbb3383468af4eaf0d4a9d1252ed3 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Wed, 9 Nov 2022 08:50:34 +0100 Subject: [PATCH 457/479] first batch of work for ext-rend-pytest-on-mr --- .gitlab-ci.yml | 61 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d37d77bdfe..0a3b6145d2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -44,8 +44,21 @@ stages: .get-previous-merge-commit-sha: &get-previous-merge-commit-sha - previous_merge_commit=$(git --no-pager log --merges HEAD~1 -n 1 --pretty=format:%H) -.merge_request_comparison_setup: - &merge_request_comparison_setup ### build test binaries, initial clean for paranoia reasons +.mr-fetch-target-branch: &mr-fetch-target-branch + # first delete local target branch to avoid conflicts when branch is cached and there are merge conflicts during fetching + # depending on chaching, the branch may not be there, so prevent failure of this command -> should maybe be done smarter later + - git branch -D $CI_MERGE_REQUEST_TARGET_BRANCH_NAME || true + # needed when depth is lower than the number of commits in the branch + - git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME + +.mr-get-target-commit: &mr-get-target-commit + # compare to last target branch commit before pipeline was created + - target_commit=$(git log $CI_MERGE_REQUEST_TARGET_BRANCH_NAME -1 --oneline --before=${CI_PIPELINE_CREATED_AT} --format=%H) + + + +.merge-request-comparison-setup-codec: + &merge-request-comparison-setup-codec ### build test binaries, initial clean for paranoia reasons - make clean - mkdir build - cd build @@ -61,14 +74,9 @@ stages: - source_branch_commit_sha=$(git rev-parse HEAD) ### checkout version to compare against - # first delete local target branch to avoid conflicts when branch is cached and there are merge conflicts during fetching - # depending on chaching, the branch may not be there, so prevent failure of this command -> should maybe be done smarter later - - git branch -D $CI_MERGE_REQUEST_TARGET_BRANCH_NAME || true - # needed when depth is lower than the number of commits in the branch - - git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME + - *mr-fetch-target-branch - ### compare to last target branch commit before pipeline was created - - target_commit=$(git log $CI_MERGE_REQUEST_TARGET_BRANCH_NAME -1 --oneline --before=${CI_PIPELINE_CREATED_AT} --format=%H) + - *mr-get-target-commit - git checkout $target_commit ### build reference binaries @@ -394,23 +402,46 @@ external-renderer-cmake-msan-pytest: - report-junit.xml # compare external renderer bitexactness between target and source branch -# TODO @knj please update +# TODO: to be tested after first merge .external-renderer-pytest-on-merge-request: extends: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-make"] + timeout: "12 minutes" stage: compare script: + - *print-common-info + + # some helper variables - "|| true" to prevent failures from grep not finding anything + - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[rend(erer)*[ -]*non[ -]*be\]") || true + - ref_using_main=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[ref[ -]*using[ -]*main\]") || true + + # store the current commit hash + - source_branch_commit_sha=$(git rev-parse HEAD) + + # TODO: implement ref_using_main + + - *mr-fetch-target-branch + - *mr-get-target-commit + - git checkout $target_commit + + # run ext renderer test on target branch - make -j IVAS_rend - make -j unittests - make -j --directory scripts/td_object_renderer/object_renderer_standalone - - git checkout main - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - mv tests/renderer/ref tests/renderer/ref_main - - git checkout FhG/external-renderer + + # run ext renderer test on branch to be merged + - git checkout $source_branch_commit_sha + - make clean + - make -j IVAS_rend + - make -j unittests + - make -j --directory scripts/td_object_renderer/object_renderer_standalone - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - - python scripts/batch_comp_audio.py ./tests/renderer/ref_main ./tests/renderer/ref + - python scripts/batch_comp_audio.py ./tests/renderer/ref_main ./tests/renderer/ref | tee comparison_result.txt + # TODO: implmement actual comparison artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always @@ -431,7 +462,7 @@ ivas-pytest-on-merge-request: timeout: "10 minutes" script: - *print-common-info - - *merge_request_comparison_setup + - *merge-request-comparison-setup-codec # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[non[ -]*be\]") || true @@ -479,7 +510,7 @@ evs-pytest-on-merge-request: timeout: "10 minutes" script: - *print-common-info - - *merge_request_comparison_setup + - *merge-request-comparison-setup-codec # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[evs[ -]*non[ -]*be\]") || true -- GitLab From 7664fbd673bb905884e02618a38f921bc8ab19a9 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 9 Nov 2022 09:07:57 +0100 Subject: [PATCH 458/479] revert change of declaration of 'num_fade_frames' --- lib_dec/ivas_spar_md_dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 6235cc3bb4..6b74f70f4f 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -2255,7 +2255,6 @@ static void ivas_spar_dec_compute_ramp_down_post_matrix( const int16_t bfi ) { int16_t num_in_ch, num_out_ch, i, j, b, i_ts; - int16_t num_fade_frames; int16_t gain_dB; float gain; float post_matrix[IVAS_SPAR_MAX_CH]; @@ -2279,6 +2278,7 @@ static void ivas_spar_dec_compute_ramp_down_post_matrix( if ( hMdDec->spar_plc_num_lost_frames > ivas_spar_dec_plc_num_frames_keep ) { + int16_t num_fade_frames; num_fade_frames = max( hMdDec->spar_plc_num_lost_frames - ivas_spar_dec_plc_num_frames_keep, 0 ); gain_dB = -min( num_fade_frames, ivas_spar_dec_plc_max_num_frames_ramp_down ) * ivas_spar_dec_plc_per_frame_ramp_down_gain_dB; gain = powf( 10, ( ( (float) gain_dB ) / 20 ) ); -- GitLab From ec67e270c8ca35db73a3c99450004e8160aff250 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 9 Nov 2022 09:57:45 +0100 Subject: [PATCH 459/479] revert change of declarations --- lib_dec/ivas_spar_md_dec.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib_dec/ivas_spar_md_dec.c b/lib_dec/ivas_spar_md_dec.c index 6b74f70f4f..f316c746cf 100644 --- a/lib_dec/ivas_spar_md_dec.c +++ b/lib_dec/ivas_spar_md_dec.c @@ -2136,7 +2136,7 @@ static void ivas_spar_md_fill_invalid_bands( const int16_t sba_order /* i : SBA order */ ) { - int16_t i, j, b, all_valid, i_ts; + int16_t i, j, b, all_valid; int16_t valid_band_idx[IVAS_MAX_NUM_BANDS], idx = -1; int16_t last_valid_band_idx[IVAS_MAX_NUM_BANDS]; float w = 0; @@ -2224,6 +2224,7 @@ static void ivas_spar_md_fill_invalid_bands( if ( valid_bands[b] == 0 ) { + int16_t i_ts; for ( i = 0; i < num_channels; i++ ) { for ( j = 0; j < num_channels; j++ ) @@ -2254,10 +2255,7 @@ static void ivas_spar_dec_compute_ramp_down_post_matrix( const int16_t num_bands_out, const int16_t bfi ) { - int16_t num_in_ch, num_out_ch, i, j, b, i_ts; - int16_t gain_dB; - float gain; - float post_matrix[IVAS_SPAR_MAX_CH]; + int16_t num_in_ch, num_out_ch, i, j, b; num_in_ch = hMdDec->spar_md_cfg.num_umx_chs; num_out_ch = hMdDec->spar_md_cfg.num_umx_chs; @@ -2279,6 +2277,10 @@ static void ivas_spar_dec_compute_ramp_down_post_matrix( if ( hMdDec->spar_plc_num_lost_frames > ivas_spar_dec_plc_num_frames_keep ) { int16_t num_fade_frames; + int16_t gain_dB; + float gain; + float post_matrix[IVAS_SPAR_MAX_CH]; + num_fade_frames = max( hMdDec->spar_plc_num_lost_frames - ivas_spar_dec_plc_num_frames_keep, 0 ); gain_dB = -min( num_fade_frames, ivas_spar_dec_plc_max_num_frames_ramp_down ) * ivas_spar_dec_plc_per_frame_ramp_down_gain_dB; gain = powf( 10, ( ( (float) gain_dB ) / 20 ) ); @@ -2290,7 +2292,7 @@ static void ivas_spar_dec_compute_ramp_down_post_matrix( } /* apply the post matrix */ - for ( i_ts = 0; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) + for ( int16_t i_ts = 0; i_ts < MAX_PARAM_SPATIAL_SUBFRAMES; i_ts++ ) { for ( i = 0; i < num_out_ch; i++ ) { @@ -2378,9 +2380,6 @@ static void ivas_parse_parameter_bitstream_dtx( int16_t pr_q_lvls, pr, pd, pd_q_lvls, pr_pd_bits; int16_t pr_q_lvls1, pr_q_lvls2, pr_idx1, pr_idx2, pr_pr_bits; int16_t zero_pad_bits, sid_bits_len; - int16_t pr_idx_1, pr_idx_2, pd_idx_1, pd_idx_2; - uint16_t value; - sid_bits_len = st0->next_bit_pos; pr_min_max[0] = pSpar_md->min_max[0]; pr_min_max[1] = pSpar_md->min_max[1]; @@ -2392,6 +2391,9 @@ static void ivas_parse_parameter_bitstream_dtx( for ( j = 0; j < FOA_CHANNELS - 1; j++ ) { + int16_t pr_idx_1, pr_idx_2, pd_idx_1, pd_idx_2; + uint16_t value; + pr_idx_1 = pr_pr_idx_pairs[ndm - 1][j][0]; pr_idx_2 = pr_pr_idx_pairs[ndm - 1][j][1]; pd_idx_1 = pr_pd_idx_pairs[ndm - 1][j][0]; -- GitLab From fb478d63580adead46a20bda91c2279a8f3a64b2 Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 9 Nov 2022 11:23:35 +0100 Subject: [PATCH 460/479] add pytest cases for be comparison on mergerequest --- tests/renderer/constants.py | 2 + tests/renderer/test_renderer_be_comparison.py | 201 ++++++++++++++++++ tests/renderer/utils.py | 16 +- 3 files changed, 216 insertions(+), 3 deletions(-) create mode 100644 tests/renderer/test_renderer_be_comparison.py diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index 1cefbda25d..cb2d580ec3 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -40,6 +40,8 @@ CUSTOM_LAYOUT_DIR = SCRIPTS_DIR.joinpath("ls_layouts") HR_TRAJECTORY_DIR = SCRIPTS_DIR.joinpath("trajectories") TESTV_DIR = SCRIPTS_DIR.joinpath("testv") +BIN_SUFFIX_MERGETARGET = "_ref" + """ Encoder commandline template """ IVAS_COD_CMD = [ str(TESTS_DIR.parent.parent.joinpath("IVAS_cod")), diff --git a/tests/renderer/test_renderer_be_comparison.py b/tests/renderer/test_renderer_be_comparison.py new file mode 100644 index 0000000000..5d89136a89 --- /dev/null +++ b/tests/renderer/test_renderer_be_comparison.py @@ -0,0 +1,201 @@ +#!/usr/bin/env python3 + +""" + (C) 2022 Baseline Development Group with portions copyright Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation. All Rights Reserved. + + This software is protected by copyright law and by international treaties. + The Baseline Development Group consisting of Dolby International AB, Ericsson AB, + Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD., + Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies OY, Orange, + Panasonic Corporation, Qualcomm Technologies, Inc., and VoiceAge Corporation retain full ownership + rights in their respective contributions in the software. No license of any kind, including but not + limited to patent license, of any foregoing parties is hereby granted by implication, estoppel or + otherwise. + + This software is provided "AS IS", without any express or implied warranties. The software is in the + development stage. It is intended exclusively for experts who have experience with such software and + solely for the purpose of inspection. All implied warranties of non-infringement, merchantability + and/or fitness for a particular purpose are hereby disclaimed and excluded. + + Any dispute, controversy or claim arising under or in relation to providing this software shall be + submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in + accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and + the United Nations Convention on Contracts on the International Sales of Goods. +""" + + +import pytest +from .utils import * + + +""" Ambisonics """ + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics(test_info, in_fmt, out_fmt): + compare_renderer_vs_mergetarget(test_info, in_fmt, out_fmt) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics_binaural_static(test_info, in_fmt, out_fmt): + compare_renderer_vs_mergetarget(test_info, in_fmt, out_fmt) + + +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_AMBI) +def test_ambisonics_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): + compare_renderer_vs_mergetarget( + test_info, + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + +""" Multichannel """ + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel(test_info, in_fmt, out_fmt): + compare_renderer_vs_mergetarget(test_info, in_fmt, out_fmt) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel_binaural_static(test_info, in_fmt, out_fmt): + if in_fmt in ["MONO", "STEREO"]: + pytest.skip("MONO or STEREO to Binaural rendering unsupported") + + compare_renderer_vs_mergetarget(test_info, in_fmt, out_fmt) + + +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_MC) +def test_multichannel_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): + if in_fmt in ["MONO", "STEREO"]: + pytest.skip("MONO or STEREO to Binaural rendering unsupported") + + compare_renderer_vs_mergetarget( + test_info, + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + +""" ISM """ + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) +def test_ism(test_info, in_fmt, out_fmt): + compare_renderer_vs_mergetarget( + test_info, in_fmt, out_fmt, in_meta_files=FORMAT_TO_METADATA_FILES[in_fmt] + ) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) +def test_ism_binaural_static(test_info, in_fmt, out_fmt): + try: + in_meta_files = FORMAT_TO_METADATA_FILES[in_fmt] + except: + in_meta_files = None + + compare_renderer_vs_mergetarget( + test_info, in_fmt, out_fmt, in_meta_files=in_meta_files + ) + + +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_fmt", INPUT_FORMATS_ISM) +def test_ism_binaural_headrotation(test_info, in_fmt, out_fmt, trj_file): + try: + in_meta_files = FORMAT_TO_METADATA_FILES[in_fmt] + except: + in_meta_files = None + + compare_renderer_vs_mergetarget( + test_info, + in_fmt, + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + in_meta_files=in_meta_files, + ) + + +""" MASA """ +# TODO: MASA inputs not supported yet + +""" Custom loudspeaker layouts """ + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) +def test_custom_ls_input(test_info, in_layout, out_fmt): + compare_renderer_vs_mergetarget( + test_info, CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), out_fmt + ) + + +@pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) +@pytest.mark.parametrize("in_fmt", OUTPUT_FORMATS) +def test_custom_ls_output(test_info, in_fmt, out_fmt): + compare_renderer_vs_mergetarget( + test_info, in_fmt, CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt") + ) + + +@pytest.mark.parametrize("out_fmt", CUSTOM_LS_TO_TEST) +@pytest.mark.parametrize("in_fmt", CUSTOM_LS_TO_TEST) +def test_custom_ls_input_output(test_info, in_fmt, out_fmt): + compare_renderer_vs_mergetarget( + test_info, + CUSTOM_LAYOUT_DIR.joinpath(f"{in_fmt}.txt"), + CUSTOM_LAYOUT_DIR.joinpath(f"{out_fmt}.txt"), + ) + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) +def test_custom_ls_input_binaural(test_info, in_layout, out_fmt): + compare_renderer_vs_mergetarget( + test_info, + CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), + out_fmt, + ) + + +@pytest.mark.parametrize("trj_file", HR_TRAJECTORIES_TO_TEST) +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS_BINAURAL) +@pytest.mark.parametrize("in_layout", CUSTOM_LS_TO_TEST) +def test_custom_ls_input_binaural_headrotation(test_info, in_layout, out_fmt, trj_file): + compare_renderer_vs_mergetarget( + test_info, + CUSTOM_LAYOUT_DIR.joinpath(f"{in_layout}.txt"), + out_fmt, + trj_file=HR_TRAJECTORY_DIR.joinpath(f"{trj_file}.csv"), + ) + + +""" Metadata / scene description input """ + + +@pytest.mark.parametrize("out_fmt", OUTPUT_FORMATS) +@pytest.mark.parametrize("in_fmt", METADATA_SCENES_TO_TEST) +def test_metadata(test_info, in_fmt, out_fmt): + compare_renderer_vs_mergetarget( + test_info, + "META", + out_fmt, + metadata_input=TEST_VECTOR_DIR.joinpath(f"{in_fmt}.txt"), + ) diff --git a/tests/renderer/utils.py b/tests/renderer/utils.py index 9811d73500..3fbf6521a6 100644 --- a/tests/renderer/utils.py +++ b/tests/renderer/utils.py @@ -151,6 +151,7 @@ def run_renderer( metadata_input: Optional[str] = None, in_meta_files: Optional[list] = None, trj_file: Optional[str] = None, + binary_suffix: str = "", ) -> Tuple[np.ndarray, int]: """CuT creation with standalone renderer""" if trj_file is not None: @@ -175,6 +176,9 @@ def run_renderer( out_file = str(OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) + # append suffix to binary filename + RENDERER_CMD[0] += binary_suffix + cmd = RENDERER_CMD[:] cmd[2] = str(in_file) cmd[4] = str(in_fmt) @@ -259,9 +263,7 @@ def run_crend_unittest( in_file = FORMAT_TO_FILE[in_fmt] in_name = in_fmt - out_file = str( - OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav") - ) + out_file = str(OUTPUT_PATH_REF.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) cmd = CREND_CMD[:] cmd[6] = FORMAT_TO_CREND_FORMAT[str(in_fmt)] @@ -384,6 +386,14 @@ def run_pyscripts( return pyaudio3dtools.audiofile.readfile(out_file) +def compare_renderer_vs_mergetarget(test_info, in_fmt, out_fmt, **kwargs): + ref, ref_fs = run_renderer(in_fmt, out_fmt, **kwargs) + cut, cut_fs = run_renderer( + in_fmt, out_fmt, binary_suffix=BIN_SUFFIX_MERGETARGET, **kwargs + ) + check_BE(test_info, ref, ref_fs, cut, cut_fs) + + def compare_renderer_vs_pyscripts(test_info, in_fmt, out_fmt, **kwargs): ref, ref_fs = run_pyscripts(in_fmt, out_fmt, **kwargs) cut, cut_fs = run_renderer(in_fmt, out_fmt, **kwargs) -- GitLab From f8a289fa3814cdd689dca3ab41427fd1becf833a Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 9 Nov 2022 11:31:02 +0100 Subject: [PATCH 461/479] use new test for BE comparison --- .gitlab-ci.yml | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0a3b6145d2..e7e2754712 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -408,46 +408,49 @@ external-renderer-cmake-msan-pytest: - .test-job-linux - .rules-merge-request needs: ["build-codec-linux-make"] - timeout: "12 minutes" + # TODO: set reasonable timeout, will most likely take less + timeout: "20 minutes" stage: compare script: - *print-common-info # some helper variables - "|| true" to prevent failures from grep not finding anything - non_be_flag=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[rend(erer)*[ -]*non[ -]*be\]") || true - - ref_using_main=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[ref[ -]*using[ -]*main\]") || true + # TODO: needs splitting the test between reference and cut generation + #- ref_using_main=$(echo $CI_MERGE_REQUEST_TITLE | grep -c --ignore-case "\[ref[ -]*using[ -]*main\]") || true # store the current commit hash - source_branch_commit_sha=$(git rev-parse HEAD) - # TODO: implement ref_using_main - - *mr-fetch-target-branch - *mr-get-target-commit - git checkout $target_commit - # run ext renderer test on target branch + # build reference binaries - make -j IVAS_rend - - make -j unittests - - make -j --directory scripts/td_object_renderer/object_renderer_standalone - - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - - mv tests/renderer/ref tests/renderer/ref_main + - mv IVAS_rend IVAS_rend_ref - # run ext renderer test on branch to be merged + # back to source branch - git checkout $source_branch_commit_sha - make clean - make -j IVAS_rend - - make -j unittests - - make -j --directory scripts/td_object_renderer/object_renderer_standalone - - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer.py - - python scripts/batch_comp_audio.py ./tests/renderer/ref_main ./tests/renderer/ref | tee comparison_result.txt - # TODO: implmement actual comparison + + # run test + - exit_code=0 + - python3 -m pytest -q --log-level ERROR -n auto -rA --junit-xml=report-junit.xml tests/renderer/test_renderer_be_comparison.py || exit_code=$? + - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true + + - *merge-request-comparison-check + + allow_failure: + exit_codes: + - 123 artifacts: name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--job-$CI_JOB_NAME--results" when: always paths: - report-junit.xml - expose_as: "external renderer pytest on merge request results" + expose_as: "pytest external renderer results" reports: junit: - report-junit.xml -- GitLab From 9a39ae657387dc85d5db467c786799e6189096ac Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 9 Nov 2022 11:36:38 +0100 Subject: [PATCH 462/479] fix mixup of ref and cut --- tests/renderer/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/renderer/utils.py b/tests/renderer/utils.py index 3fbf6521a6..928998ecdc 100644 --- a/tests/renderer/utils.py +++ b/tests/renderer/utils.py @@ -387,10 +387,10 @@ def run_pyscripts( def compare_renderer_vs_mergetarget(test_info, in_fmt, out_fmt, **kwargs): - ref, ref_fs = run_renderer(in_fmt, out_fmt, **kwargs) - cut, cut_fs = run_renderer( + ref, ref_fs = run_renderer( in_fmt, out_fmt, binary_suffix=BIN_SUFFIX_MERGETARGET, **kwargs ) + cut, cut_fs = run_renderer(in_fmt, out_fmt, **kwargs) check_BE(test_info, ref, ref_fs, cut, cut_fs) -- GitLab From 610f75bce44ed166c40aa5d934c6355ca25b7795 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 9 Nov 2022 11:31:38 +0100 Subject: [PATCH 463/479] - remove IVAS_REND.enableHeadRotation since it is part of IVAS_REND.headRotData - fix a bug in compare_audio.py --- apps/renderer.c | 2 +- lib_rend/lib_rend.c | 17 ++++++----------- lib_rend/lib_rend.h | 1 - tests/renderer/compare_audio.py | 2 +- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index d626db7d42..8097424cec 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -659,7 +659,7 @@ int main( } /* === Configure === */ - if ( ( error = IVAS_REND_InitConfig( hIvasRend, headRotReader != NULL, strlen( args.renderConfigFilePath ) != 0 ) ) != IVAS_ERR_OK ) + if ( ( error = IVAS_REND_InitConfig( hIvasRend, strlen( args.renderConfigFilePath ) != 0 ) ) != IVAS_ERR_OK ) { exit( -1 ); } diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index a7966aa4da..21b60018e3 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -87,6 +87,11 @@ typedef struct const LSSETUP_CUSTOM_STRUCT *pCustomLsOut; const EFAP_WRAPPER *pEfapOutWrapper; const IVAS_REND_HeadRotData *pHeadRotData; + /* TODO @Philips : would this be a better place to store the render config data? + * bearing in mind we could have multiple inputs to the renderer, we might neeed to accomodate + * multiple rendering configurations unless one global one can be used. If this is not relevant, + * feel free to remove this TODO. + */ } rendering_context; /* Common base for input structs */ @@ -148,12 +153,12 @@ struct IVAS_REND input_mc inputsMc[RENDERER_MAX_MC_INPUTS]; input_sba inputsSba[RENDERER_MAX_SBA_INPUTS]; + /* TODO @Philips - inputConfig should not be stored here, but read from e.g. input_mc->input_base.inConfig, please remove this */ IVAS_REND_AudioConfig inputConfig; IVAS_REND_AudioConfig outputConfig; EFAP_WRAPPER efapOutWrapper; IVAS_LSSETUP_CUSTOM_STRUCT customLsOut; - int8_t enableHeadRotation; IVAS_REND_HeadRotData headRotData; int8_t rendererConfigEnabled; @@ -2672,20 +2677,10 @@ ivas_error IVAS_REND_FeedInputObjectMetadata( } ivas_error IVAS_REND_InitConfig( IVAS_REND_HANDLE st, - bool headRotationEnabled, bool rendererConfigEnabled ) { ivas_error error; - if ( headRotationEnabled ) - { - st->enableHeadRotation = 1; - } - else - { - st->enableHeadRotation = 0; - } - if ( rendererConfigEnabled ) { st->rendererConfigEnabled = 1; diff --git a/lib_rend/lib_rend.h b/lib_rend/lib_rend.h index 831823ad60..99d4b7af25 100644 --- a/lib_rend/lib_rend.h +++ b/lib_rend/lib_rend.h @@ -238,7 +238,6 @@ ivas_error IVAS_REND_FeedInputMasaMetadata( ivas_error IVAS_REND_InitConfig( IVAS_REND_HANDLE st, /* i/o: Renderer handle */ - bool headRotationEnabled, /* i : enable head rotation for binaural output, ignored for other output formats */ bool rendererConfigEnabled /* i : flag indicating if a renderer configuration file was supplied */ ); diff --git a/tests/renderer/compare_audio.py b/tests/renderer/compare_audio.py index e7bd34f6df..bf3ce26c93 100644 --- a/tests/renderer/compare_audio.py +++ b/tests/renderer/compare_audio.py @@ -52,7 +52,7 @@ def compare_audio_arrays( category=RuntimeWarning, ) left = left[:, :cmp_ch] - right = right[:, cmp_ch] + right = right[:, :cmp_ch] if left.shape[0] != right.shape[0]: cmp_smp = min(left.shape[0], right.shape[0]) -- GitLab From d1eceed95e146ffbf712d18fe2c42253f62f9594 Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 9 Nov 2022 11:59:46 +0100 Subject: [PATCH 464/479] group debugging parameters/options/code --- apps/decoder.c | 65 +++++++++--------- apps/encoder.c | 145 ++++++++++++++++++++-------------------- lib_com/ivas_error.h | 6 +- lib_enc/ivas_agc_enc.c | 22 +++--- lib_enc/ivas_stat_enc.h | 6 +- lib_enc/lib_enc.c | 20 +++--- lib_enc/lib_enc.h | 2 +- 7 files changed, 136 insertions(+), 130 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 968dc79ec2..91dd36357d 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -105,20 +105,22 @@ typedef struct bool hrtfReaderEnabled; char *hrtfFileName; IVAS_DEC_INPUT_FORMAT inputFormat; -#ifdef DEBUGGING - bool forceSubframeBinauralization; - IVAS_DEC_FORCED_REND_MODE forcedRendMode; -#endif bool customLsOutputEnabled; char *customLsSetupFilename; int16_t orientation_tracking; float no_diegetic_pan; bool renderConfigEnabled; char *renderConfigFilename; + +#ifdef DEBUGGING + bool forceSubframeBinauralization; + IVAS_DEC_FORCED_REND_MODE forcedRendMode; #ifdef DEBUG_FOA_AGC FILE *agcBitstream; /* temporary */ #endif +#endif + } DecArguments; @@ -128,12 +130,10 @@ typedef struct static bool parseCmdlIVAS_dec( int16_t argc, char **argv, DecArguments *arg ); static void usage_dec( void ); -#ifdef DEBUGGING -static int16_t app_own_random( int16_t *seed ); -#endif static ivas_error decodeG192( DecArguments arg, BS_READER_HANDLE hBsReader, HeadRotFileReader *headRotReader, IVAS_DEC_HANDLE hIvasDec, int16_t *pcmBuf ); static ivas_error decodeVoIP( DecArguments arg, BS_READER_HANDLE hBsReader, IVAS_DEC_HANDLE hIvasDec ); #ifdef DEBUGGING +static int16_t app_own_random( int16_t *seed ); static IVAS_DEC_FORCED_REND_MODE parseForcedRendModeDec( char *forcedRendModeChar ); #endif @@ -582,11 +582,12 @@ cleanup: printf( "\n" ); } +#ifdef DEBUGGING + dbgclose(); + #ifdef DEBUG_SBA_AUDIO_DUMP ivas_close_sba_decoder_debug_files( arg.output_Fs, numOutChannels, numTransportChannels, pca_ingest_channels ); #endif -#ifdef DEBUGGING - dbgclose(); #endif return mainFailed ? -1 : 0; @@ -689,6 +690,9 @@ static bool parseCmdlIVAS_dec( arg->forcedRendMode = IVAS_DEC_FORCE_REND_UNFORCED; arg->forceSubframeBinauralization = false; +#ifdef DEBUG_FOA_AGC + arg->agcBitstream = NULL; +#endif #endif arg->output_Fs = 48000; arg->outputFormat = IVAS_DEC_OUTPUT_MONO; @@ -720,9 +724,6 @@ static bool parseCmdlIVAS_dec( arg->inputFormat = IVAS_DEC_INPUT_FORMAT_G192; arg->no_diegetic_pan = 0.f; -#ifdef DEBUG_FOA_AGC - arg->agcBitstream = NULL; -#endif /*-----------------------------------------------------------------* * Initialization @@ -791,21 +792,6 @@ static bool parseCmdlIVAS_dec( arg->jbmOffsetFilename = argv[i]; i++; } -#ifdef DEBUGGING - else if ( strcmp( argv_to_upper, "-FEC" ) == 0 ) - { - ftmp = 0.0f; - if ( sscanf( argv[i + 1], "%f", &ftmp ) != 1 ) - { - arg->FEPatterFileName = argv[i + 1]; - } - else - { - arg->FER = ftmp; - } - i += 2; - } -#endif else if ( strcmp( argv_to_upper, "-Q" ) == 0 ) { arg->quietModeEnabled = true; @@ -827,6 +813,19 @@ static bool parseCmdlIVAS_dec( } } #ifdef DEBUGGING + else if ( strcmp( argv_to_upper, "-FEC" ) == 0 ) + { + ftmp = 0.0f; + if ( sscanf( argv[i + 1], "%f", &ftmp ) != 1 ) + { + arg->FEPatterFileName = argv[i + 1]; + } + else + { + arg->FER = ftmp; + } + i += 2; + } else if ( strcmp( argv_to_upper, "-FORCE" ) == 0 ) { i++; @@ -837,6 +836,11 @@ static bool parseCmdlIVAS_dec( i++; } } + else if ( strcmp( argv_to_upper, "-FORCE_SUBFRAME_BIN" ) == 0 ) /* Force binauralization to subframe (5 ms) resolution */ + { + arg->forceSubframeBinauralization = true; + i++; + } #ifdef DEBUG_MODE_INFO #ifdef DEBUG_MODE_INFO_TWEAK /*-----------------------------------------------------------------* @@ -948,13 +952,6 @@ static bool parseCmdlIVAS_dec( } i++; } -#ifdef DEBUGGING - else if ( strcmp( argv_to_upper, "-FORCE_SUBFRAME_BIN" ) == 0 ) /* Force binauralization to subframe (5 ms) resolution */ - { - arg->forceSubframeBinauralization = true; - i++; - } -#endif /*-----------------------------------------------------------------* * Option not recognized diff --git a/apps/encoder.c b/apps/encoder.c index df0cf8f9ca..037d35316f 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -72,6 +72,7 @@ typedef union _EncInputFormatConfig { /* MONO details */ bool stereoToMonoDownmix; + #ifdef DEBUGGING /* STEREO details */ IVAS_ENC_STEREO_MODE stereoMode; @@ -83,16 +84,20 @@ typedef union _EncInputFormatConfig int16_t numObjects; const char *metadataFiles[IVAS_MAX_NUM_OBJECTS]; } ism; + /* SBA details */ struct EncSbaConfig { IVAS_ENC_SBA_ORDER order; bool isPlanar; } sba; + /* MASA details */ IVAS_ENC_MASA_VARIANT masaVariant; + /* MC details */ IVAS_ENC_MC_LAYOUT mcLayout; + } EncInputFormatConfig; /* Struct for storing cmdln arguments */ @@ -112,24 +117,24 @@ typedef struct bool quietModeEnabled; bool delayCompensationEnabled; const char *masaMetadataFile; -#ifdef DEBUGGING - IVAS_ENC_FORCED_MODE forcedMode; - const char *forcedModeFile; -#endif IVAS_ENC_CHANNEL_AWARE_CONFIG caConfig; const char *ca_config_file; bool mimeOutput; +#ifdef DEBUGGING + IVAS_ENC_FORCED_MODE forcedMode; + const char *forcedModeFile; #ifdef DEBUG_AGC_ENCODER_CMD_OPTION IVAS_ENC_AGC agc; #endif - bool pca; #ifdef DEBUG_FOA_AGC FILE *agcBitstream; /* temporary */ #endif #ifdef DEBUG_SBA const char *dbg_file_tag; #endif +#endif + bool pca; } EncArguments; @@ -214,17 +219,13 @@ int main( int16_t *pcmBuf = NULL; #ifdef DEBUGGING FILE *f_forcedModeProfile = NULL; -#endif - #ifdef DEBUG_SBA int16_t numTransportChannels = 1; #endif - -#ifdef WMOPS - size_t SRAM_size = 0; #endif #ifdef WMOPS + size_t SRAM_size = 0; reset_wmops(); reset_stack(); #endif @@ -820,13 +821,6 @@ cleanup: fclose( f_bitrateProfile ); } -#ifdef DEBUGGING - if ( f_forcedModeProfile ) - { - fclose( f_forcedModeProfile ); - } -#endif - IVAS_ENC_Close( &hIvasEnc ); #ifdef RAM_COUNTING_TOOL @@ -842,13 +836,18 @@ cleanup: #ifdef DEBUGGING dbgclose(); -#endif + + if ( f_forcedModeProfile ) + { + fclose( f_forcedModeProfile ); + } #ifdef DEBUG_SBA ivas_close_sba_encoder_debug_files(); #ifdef DEBUG_AGC ivas_close_agc_debug_files(); #endif +#endif #endif return mainFailed ? -1 : 0; @@ -878,24 +877,24 @@ static void initArgStruct( EncArguments *arg ) arg->quietModeEnabled = false; arg->delayCompensationEnabled = true; arg->masaMetadataFile = NULL; -#ifdef DEBUGGING - arg->forcedMode = IVAS_ENC_FORCE_UNFORCED; - arg->forcedModeFile = NULL; -#endif arg->caConfig = IVAS_ENC_GetDefaultChannelAwareConfig(); arg->ca_config_file = NULL; arg->mimeOutput = false; +#ifdef DEBUGGING + arg->forcedMode = IVAS_ENC_FORCE_UNFORCED; + arg->forcedModeFile = NULL; #ifdef DEBUG_AGC_ENCODER_CMD_OPTION arg->agc = IVAS_ENC_AGC_UNDEFINED; #endif - arg->pca = false; #ifdef DEBUG_FOA_AGC arg->agcBitstream = NULL; #endif #ifdef DEBUG_SBA arg->dbg_file_tag = NULL; #endif +#endif + arg->pca = false; return; } @@ -1057,6 +1056,54 @@ static bool parseCmdlIVAS_enc( } #endif /* #ifdef DEBUG_MODE_INFO_TWEAK */ #endif /* #ifdef DEBUG_MODE_INFO */ + +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + /*-----------------------------------------------------------------* + * IVAS SPAR AGC option + *-----------------------------------------------------------------*/ + else if ( strcmp( argv_to_upper, "-AGC" ) == 0 ) + { + i++; + if ( i < argc - 4 ) + { + arg->agc = ( atoi( argv[i] ) ) ? IVAS_ENC_AGC_ENABLED : IVAS_ENC_AGC_DISABLED; + if ( argv[i] == NULL || atoi( argv[i] ) < 0 || atoi( argv[i] ) > 1 ) + { + fprintf( stderr, "Error: wrong adaptive gain control option specified (%d), expected 0 or 1\n\n", (int32_t) atoi( argv[i] ) ); + usage_enc(); + return false; + } + i++; + } + else + { + fprintf( stderr, "Error: unspecified adaptive gain control option\n\n" ); + usage_enc(); + return false; + } + } +#endif + +#ifdef DEBUG_SBA + /*-----------------------------------------------------------------* + * IVAS SPAR debug files tag + *-----------------------------------------------------------------*/ + else if ( strcmp( argv_to_upper, "-TAG" ) == 0 ) + { + i++; + if ( i < argc - 4 ) + { + arg->dbg_file_tag = argv[i]; + ++i; + } + else + { + fprintf( stderr, "Error: [IVAS SPAR Encoder] unspecified tag value \n\n" ); + usage_enc(); + return false; + } + } +#endif #endif /* #ifdef DEBUGGING */ /*-----------------------------------------------------------------* @@ -1394,29 +1441,6 @@ static bool parseCmdlIVAS_enc( arg->inputFormatConfig.stereoToMonoDownmix = true; i++; } -#ifdef DEBUG_AGC_ENCODER_CMD_OPTION - else if ( strcmp( argv_to_upper, "-AGC" ) == 0 ) - { - i++; - if ( i < argc - 4 ) - { - arg->agc = ( atoi( argv[i] ) ) ? IVAS_ENC_AGC_ENABLED : IVAS_ENC_AGC_DISABLED; - if ( argv[i] == NULL || atoi( argv[i] ) < 0 || atoi( argv[i] ) > 1 ) - { - fprintf( stderr, "Error: wrong adaptive gain control option specified (%d), expected 0 or 1\n\n", (int32_t) atoi( argv[i] ) ); - usage_enc(); - return false; - } - i++; - } - else - { - fprintf( stderr, "Error: unspecified adaptive gain control option\n\n" ); - usage_enc(); - return false; - } - } -#endif else if ( strcmp( argv_to_upper, "-BYPASS" ) == 0 ) // VE: should be renamed to "-pca" { i++; @@ -1450,26 +1474,6 @@ static bool parseCmdlIVAS_enc( return false; } } -#ifdef DEBUG_SBA - /*-----------------------------------------------------------------* - * IVAS SPAR debug files tag - *-----------------------------------------------------------------*/ - else if ( strcmp( argv_to_upper, "-TAG" ) == 0 ) - { - i++; - if ( i < argc - 4 ) - { - arg->dbg_file_tag = argv[i]; - ++i; - } - else - { - fprintf( stderr, "Error: [IVAS SPAR Encoder] unspecified tag value \n\n" ); - usage_enc(); - return false; - } - } -#endif /*-----------------------------------------------------------------* * Option not recognized @@ -1653,6 +1657,10 @@ static void usage_enc( void ) fprintf( stdout, " The encoder produces TS26.445 Annex.2.6 Mime Storage Format, (not RFC4867 Mime Format).\n" ); fprintf( stdout, " default output bitstream file format is G.192\n" ); + fprintf( stdout, "-bypass mode : SBA PCA by-pass, mode = (1, 2), 1 = PCA off, 2 = signal adaptive, default is 1\n" ); +#ifdef DEBUGGING + fprintf( stdout, "-force T : Force specific mode, T = (speech, music, ACELP, GSC, TCX, HQ),\n" ); + fprintf( stdout, " alternatively, T can be a text file where each line contains \"nb_frames T\"\n" ); #ifdef DEBUG_SBA fprintf( stdout, "-tag : Tag name for intermediate debug files\n" ); #endif @@ -1661,11 +1669,6 @@ static void usage_enc( void ) fprintf( stdout, " By default op is 1 (activated) for bitrates between 24400 and 32000,\n" ); fprintf( stdout, " otherwise it is 0 (deactivated) for all other bitrates\n" ); #endif - - fprintf( stdout, "-bypass mode : SBA PCA by-pass, mode = (1, 2), 1 = PCA off, 2 = signal adaptive, default is 1\n" ); -#ifdef DEBUGGING - fprintf( stdout, "-force T : Force specific mode, T = (speech, music, ACELP, GSC, TCX, HQ),\n" ); - fprintf( stdout, " alternatively, T can be a text file where each line contains \"nb_frames T\"\n" ); #ifdef DEBUG_MODE_INFO #ifdef DEBUG_MODE_INFO_TWEAK fprintf( stdout, "-info : specify subfolder name for debug output\n" ); diff --git a/lib_com/ivas_error.h b/lib_com/ivas_error.h index 8d09e48bbd..e73c02fba8 100644 --- a/lib_com/ivas_error.h +++ b/lib_com/ivas_error.h @@ -80,14 +80,14 @@ typedef enum IVAS_ERR_INVALID_INDEX, IVAS_ERR_NOT_SUPPORTED_OPTION, IVAS_ERR_NOT_IMPLEMENTED, -#ifdef DEBUGGING - IVAS_ERR_INVALID_FORCE_MODE, -#endif IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH, IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT, IVAS_ERR_INVALID_MASA_FORMAT_METADATA_FILE, +#ifdef DEBUGGING + IVAS_ERR_INVALID_FORCE_MODE, #ifdef DEBUG_AGC_ENCODER_CMD_OPTION IVAS_ERR_INVALID_AGC, +#endif #endif /*----------------------------------------* diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index 8207336b82..d890e920a8 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -68,6 +68,16 @@ static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_ * enablement, otherwise AGC is enabled only if there is one transport channel. * *-----------------------------------------------------------------------------------------*/ + +/*! r: AGC enable flag */ +int16_t ivas_agc_enc_get_flag( + int16_t agc_configuration, /* i : AGC configuration from command-line */ + int16_t nchan_transport /* i : number of transport channels */ +) +{ + return (int16_t) ( ( agc_configuration == SBA_AGC_DEFAULT ) ? ( nchan_transport == 1 ) : agc_configuration ); +} + #else /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_get_flag() @@ -76,25 +86,17 @@ static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_ * AGC is enabled only if there is one transport channel. * *-----------------------------------------------------------------------------------------*/ -#endif /*! r: AGC enable flag */ int16_t ivas_agc_enc_get_flag( -#ifdef DEBUG_AGC_ENCODER_CMD_OPTION - int16_t agc_configuration, /* i : AGC configuration from command-line */ -#endif int16_t nchan_transport /* i : number of transport channels */ ) { -#ifdef DEBUG_AGC_ENCODER_CMD_OPTION - return (int16_t) ( ( agc_configuration == SBA_AGC_DEFAULT ) - ? ( nchan_transport == 1 ) - : agc_configuration ); -#else return (int16_t) ( nchan_transport == 1 ); -#endif } +#endif + /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_init() * diff --git a/lib_enc/ivas_stat_enc.h b/lib_enc/ivas_stat_enc.h index 9d04506d79..0644fcd918 100644 --- a/lib_enc/ivas_stat_enc.h +++ b/lib_enc/ivas_stat_enc.h @@ -999,9 +999,6 @@ typedef struct encoder_config_structure int16_t last_Opt_SC_VBR; /* flag indicating prev frame's SC-VBR mode */ /* temp. development parameters */ -#ifdef DEBUG_AGC_ENCODER_CMD_OPTION - int16_t Opt_AGC_ON; /* flag indicating AGC operation in SBA */ -#endif int16_t Opt_PCA_ON; /* flag indicating PCA operation in SBA */ #ifdef DEBUGGING @@ -1009,6 +1006,9 @@ typedef struct encoder_config_structure int16_t stereo_mode_cmdl; /* stereo mode forced from the command-line */ int16_t force; /* parameter to force specific "core" of the Core-Coder*/ int16_t mdct_stereo_mode_cmdl; /* mdct stereo mode forced from command-line, employed only when DEBUG_FORCE_MDCT_STEREO_MODE is activated */ +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + int16_t Opt_AGC_ON; /* flag indicating AGC operation in SBA */ +#endif #endif diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index e7957a47e5..06ea721564 100644 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -888,7 +888,6 @@ static ivas_error configureEncoder( } #endif - if ( hEncoderConfig->Opt_PCA_ON && !( hEncoderConfig->ivas_format == SBA_FORMAT && hEncoderConfig->ivas_total_brate == PCA_BRATE && hEncoderConfig->sba_order == SBA_FOA_ORDER ) ) { return IVAS_ERROR( IVAS_ERR_NOT_SUPPORTED_OPTION, "PCA supported at SBA FOA 256 kbps only." ); @@ -1505,6 +1504,7 @@ static ivas_error printConfigInfo_enc( { fprintf( stdout, "- PCA configured with signal adaptive decision " ); } + #ifdef DEBUG_AGC_ENCODER_CMD_OPTION switch ( hEncoderConfig->Opt_AGC_ON ) { @@ -1521,8 +1521,6 @@ static ivas_error printConfigInfo_enc( fprintf( stdout, "- AGC unknown " ); break; } -#else - fprintf( stdout, "- AGC default mode " ); #endif fprintf( stdout, "\n" ); } @@ -2057,6 +2055,12 @@ static ivas_error bandwidthApiToInternal( } #ifdef DEBUG_AGC_ENCODER_CMD_OPTION +/*---------------------------------------------------------------------* + * agcAPIToInternal() + * + * + *---------------------------------------------------------------------*/ + static ivas_error agcAPIToInternal( const IVAS_ENC_AGC agcOption, int16_t *internalAGCOption ) @@ -2206,17 +2210,17 @@ static void init_encoder_config( hEncoderConfig->rf_fec_indicator = 1; hEncoderConfig->interval_SID = FIXED_SID_RATE; hEncoderConfig->var_SID_rate_flag = 1; -#ifdef DEBUGGING - hEncoderConfig->stereo_mode_cmdl = 0; - hEncoderConfig->force = -1; - hEncoderConfig->mdct_stereo_mode_cmdl = SMDCT_MS_DECISION; -#endif hEncoderConfig->mc_input_setup = MC_LS_SETUP_INVALID; hEncoderConfig->stereo_dmx_evs = 0; hEncoderConfig->sba_order = 0; hEncoderConfig->sba_planar = 0; +#ifdef DEBUGGING + hEncoderConfig->stereo_mode_cmdl = 0; + hEncoderConfig->force = -1; + hEncoderConfig->mdct_stereo_mode_cmdl = SMDCT_MS_DECISION; #ifdef DEBUG_AGC_ENCODER_CMD_OPTION hEncoderConfig->Opt_AGC_ON = SBA_AGC_DEFAULT; +#endif #endif hEncoderConfig->Opt_PCA_ON = 0; diff --git a/lib_enc/lib_enc.h b/lib_enc/lib_enc.h index fd0a4adfa2..1403b92b37 100644 --- a/lib_enc/lib_enc.h +++ b/lib_enc/lib_enc.h @@ -121,7 +121,6 @@ typedef enum _IVAS_ENC_FORCED_MODE IVAS_ENC_FORCE_UNFORCED, IVAS_ENC_FORCE_UNDEFINED = 0xffff } IVAS_ENC_FORCED_MODE; -#endif #ifdef DEBUG_AGC_ENCODER_CMD_OPTION typedef enum _IVAS_ENC_AGC @@ -131,6 +130,7 @@ typedef enum _IVAS_ENC_AGC IVAS_ENC_AGC_UNDEFINED = 0xffff } IVAS_ENC_AGC; #endif +#endif /*---------------------------------------------------------------------* * Encoder structures -- GitLab From 31cb7d6a54410bcd8dad01cebebaf7e0f416766e Mon Sep 17 00:00:00 2001 From: vaclav Date: Wed, 9 Nov 2022 12:12:09 +0100 Subject: [PATCH 465/479] Issue 192: remove leftovers from the SID bitrate harmonization; under REMOVE_SID_HARM_LEFTOVERS --- apps/decoder.c | 18 +++++++++++++----- lib_com/options.h | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 968dc79ec2..11f85e6d12 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -70,11 +70,15 @@ static #endif int32_t frame = 0; /* Counter of frames */ -#define MIN_NUM_BITS_ACTIVE_FRAME 56 -#define NUM_BITS_SID_IVAS_4K4 88 -#define NUM_BITS_SID_IVAS_7K8 156 -#define NUM_BITS_SID_IVAS_9K3 186 -#define NUM_BITS_SID_IVAS_10K2 204 +#define MIN_NUM_BITS_ACTIVE_FRAME 56 +#ifdef REMOVE_SID_HARM_LEFTOVERS +#define NUM_BITS_SID_IVAS_5K2 104 +#else +#define NUM_BITS_SID_IVAS_4K4 88 +#define NUM_BITS_SID_IVAS_7K8 156 +#define NUM_BITS_SID_IVAS_9K3 186 +#define NUM_BITS_SID_IVAS_10K2 204 +#endif #define META_LINE_LENGTH 200 #define MAX_FRAME_SIZE ( 48000 / 50 ) #define MAX_NUM_OUTPUT_CHANNELS 16 @@ -350,7 +354,11 @@ int main( fprintf( stderr, "\nError: input bitstream file %s couldn't be read\n\n", arg.inputBitstreamFilename ); goto cleanup; } +#ifdef REMOVE_SID_HARM_LEFTOVERS + } while ( bfi || num_bits < MIN_NUM_BITS_ACTIVE_FRAME || num_bits == NUM_BITS_SID_IVAS_5K2 ); +#else } while ( bfi || num_bits < MIN_NUM_BITS_ACTIVE_FRAME || num_bits == NUM_BITS_SID_IVAS_4K4 || num_bits == NUM_BITS_SID_IVAS_7K8 || num_bits == NUM_BITS_SID_IVAS_9K3 || num_bits == NUM_BITS_SID_IVAS_10K2 ); +#endif BS_Reader_Rewind( hBsReader ); diff --git a/lib_com/options.h b/lib_com/options.h index 8e8a24dd2e..ad2a3d3187 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -149,6 +149,7 @@ #define FIX_MCT_PLC_RECOVERY /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ #define SBA_BR_SWITCHING /* Issue 114: Changes for sba bit rate switching*/ #define FIX_AGC_WINFUNC_MEMORY /* Issue 62: lower agc_com.winFunc memory consumption */ +#define REMOVE_SID_HARM_LEFTOVERS /* Issue 192: remove leftovers from the SID bitrate harmonization */ /* ################## End DEVELOPMENT switches ######################### */ -- GitLab From b64401fddf227a3729b4df1db5677b569dffa97d Mon Sep 17 00:00:00 2001 From: knj Date: Wed, 9 Nov 2022 13:19:11 +0100 Subject: [PATCH 466/479] split sanitizer tests into 3 schedules + use full duration again --- .gitlab-ci.yml | 123 ++++++++++++++++------------- ci/run_scheduled_sanitizer_test.py | 2 +- 2 files changed, 71 insertions(+), 54 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1ad216d9ea..a6d56be1a0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -583,7 +583,6 @@ codec-comparison-on-main-push: stage: test tags: - sanitizer_test_main - timeout: "2 hours" artifacts: name: "$CI_JOB_NAME--main--sha-$CI_COMMIT_SHORT_SHA" when: always @@ -592,150 +591,168 @@ codec-comparison-on-main-push: # second wildcard is necessary to get encoder and no-PLC run logs - "CLANG*/logs*" +### --- sanitizer schedule A --- + +.sanitizer-test-schedule-A: + extends: + - .sanitizer-test-template + timeout: 2 hours 30 minutes + + sanitizer-test-mono: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-A rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_A script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py mono mono --tests $SANITIZER_TESTS sanitizer-test-stereo: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-A rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_A when: delayed - start_in: 1 hour + start_in: 2 hours 30 minutes script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py stereo $OUT_FORMATS_CHANNEL_BASED --tests $SANITIZER_TESTS sanitizer-test-stereodmxevs: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-A rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_A when: delayed - start_in: 2 hours + start_in: 5 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py StereoDmxEVS mono --tests $SANITIZER_TESTS sanitizer-test-ism1: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-A rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_A when: delayed - start_in: 3 hours + start_in: 7 hours 30 minutes script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py ISM1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-ism2: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-A rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_A when: delayed - start_in: 4 hours + start_in: 10 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py ISM2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-ism3: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-A rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_A when: delayed - start_in: 6 hours + start_in: 12 hours 30 minutes script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py ISM3 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS sanitizer-test-ism4: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-A rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_A when: delayed - start_in: 8 hours + start_in: 15 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py ISM4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS -sanitizer-test-mc-5_1: - extends: .sanitizer-test-template +sanitizer-test-masa: + extends: .sanitizer-test-schedule-A rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_A when: delayed - start_in: 10 hours + start_in: 17 hours 30 minutes + script: + - *update-ltv-repo + - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS + +### --- sanitizer schedule B --- + +.sanitizer-test-schedule-B: + extends: + - .sanitizer-test-template + timeout: 3 hours + +sanitizer-test-mc-5_1: + extends: .sanitizer-test-schedule-B + rules: + - if: $SANITIZER_SCHEDULE_B script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_2: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-B rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_B when: delayed - start_in: 12 hours + start_in: 3 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1_2 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-5_1_4: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-B rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_B when: delayed - start_in: 14 hours + start_in: 6 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 5_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-7_1: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-B rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_B when: delayed - start_in: 16 hours + start_in: 9 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 7_1 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-mc-7_1_4: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-B rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_B when: delayed - start_in: 18 hours + start_in: 12 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py 7_1_4 $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS -sanitizer-test-masa: - extends: .sanitizer-test-template - rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 20 hours - script: - - *update-ltv-repo - - python3 ci/run_scheduled_sanitizer_test.py MASA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL EXT --tests $SANITIZER_TESTS +### --- sanitizer schedule C --- + +.sanitizer-test-schedule-C: + extends: + - .sanitizer-test-template + timeout: 6 hours sanitizer-test-sba: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-C rules: - - if: $IS_SANITIZER_TEST_RUN - when: delayed - start_in: 22 hours + - if: $SANITIZER_SCHEDULE_C script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py SBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS sanitizer-test-planarsba: - extends: .sanitizer-test-template + extends: .sanitizer-test-schedule-C rules: - - if: $IS_SANITIZER_TEST_RUN + - if: $SANITIZER_SCHEDULE_C when: delayed - start_in: 24 hours + start_in: 6 hours script: - *update-ltv-repo - python3 ci/run_scheduled_sanitizer_test.py PlanarSBA $OUT_FORMATS_CHANNEL_BASED $OUT_FORMATS_SCENE_BASED $OUT_FORMATS_BINAURAL --tests $SANITIZER_TESTS diff --git a/ci/run_scheduled_sanitizer_test.py b/ci/run_scheduled_sanitizer_test.py index d2483627df..644051a79b 100644 --- a/ci/run_scheduled_sanitizer_test.py +++ b/ci/run_scheduled_sanitizer_test.py @@ -6,7 +6,7 @@ import subprocess import pathlib -DURATION = "30" +DURATION = "120" CFG = "ci_linux_ltv.json" SUPPORTED_TESTS = ["CLANG1", "CLANG2", "CLANG3", "VALGRIND"] EP_FILE = "ep_015.g192" -- GitLab From b022f01e36252fc618a7bdaa8b8a0108231ab871 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 9 Nov 2022 13:29:49 +0100 Subject: [PATCH 467/479] [formatting] apply patch from ci job --- lib_rend/lib_rend.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index 21b60018e3..d52635b688 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -87,11 +87,11 @@ typedef struct const LSSETUP_CUSTOM_STRUCT *pCustomLsOut; const EFAP_WRAPPER *pEfapOutWrapper; const IVAS_REND_HeadRotData *pHeadRotData; - /* TODO @Philips : would this be a better place to store the render config data? - * bearing in mind we could have multiple inputs to the renderer, we might neeed to accomodate + /* TODO @Philips : would this be a better place to store the render config data? + * bearing in mind we could have multiple inputs to the renderer, we might neeed to accomodate * multiple rendering configurations unless one global one can be used. If this is not relevant, * feel free to remove this TODO. - */ + */ } rendering_context; /* Common base for input structs */ -- GitLab From d8a429b572b239dcfef22137f7d66a62b6395bc8 Mon Sep 17 00:00:00 2001 From: kiene Date: Wed, 9 Nov 2022 14:14:38 +0100 Subject: [PATCH 468/479] fix error in test and add argument for output path --- tests/renderer/utils.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/renderer/utils.py b/tests/renderer/utils.py index 928998ecdc..8a4ecf739b 100644 --- a/tests/renderer/utils.py +++ b/tests/renderer/utils.py @@ -151,6 +151,7 @@ def run_renderer( metadata_input: Optional[str] = None, in_meta_files: Optional[list] = None, trj_file: Optional[str] = None, + output_path_base: str = OUTPUT_PATH_CUT, binary_suffix: str = "", ) -> Tuple[np.ndarray, int]: """CuT creation with standalone renderer""" @@ -174,10 +175,8 @@ def run_renderer( in_file = FORMAT_TO_FILE[in_fmt] in_name = in_fmt - out_file = str(OUTPUT_PATH_CUT.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) + out_file = str(output_path_base.joinpath(f"{in_name}_to_{out_name}{trj_name}.wav")) - # append suffix to binary filename - RENDERER_CMD[0] += binary_suffix cmd = RENDERER_CMD[:] cmd[2] = str(in_file) @@ -185,6 +184,8 @@ def run_renderer( cmd[6] = str(out_file) cmd[8] = str(out_fmt) + cmd[0] += binary_suffix + if in_meta_files is not None: cmd[5:5] = ["-im", *in_meta_files] @@ -388,7 +389,7 @@ def run_pyscripts( def compare_renderer_vs_mergetarget(test_info, in_fmt, out_fmt, **kwargs): ref, ref_fs = run_renderer( - in_fmt, out_fmt, binary_suffix=BIN_SUFFIX_MERGETARGET, **kwargs + in_fmt, out_fmt, binary_suffix=BIN_SUFFIX_MERGETARGET, output_path_base=OUTPUT_PATH_REF, **kwargs ) cut, cut_fs = run_renderer(in_fmt, out_fmt, **kwargs) check_BE(test_info, ref, ref_fs, cut, cut_fs) -- GitLab From 005ccc4b250030aa45ed5a0e4bfd48222d954548 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 9 Nov 2022 14:17:01 +0100 Subject: [PATCH 469/479] [pre-merge] fix inconsistencies between branch and main + MSVC warnings --- .gitlab-ci.yml | 5 +++++ apps/encoder.c | 10 ++-------- apps/renderer.c | 6 +++--- lib_com/common_api_types.h | 5 +++++ lib_com/ivas_cnst.h | 2 ++ lib_com/ivas_error.h | 26 +++++++++++++++----------- lib_com/ivas_prot.h | 8 ++++++-- lib_enc/lib_enc.c | 8 ++++++++ lib_rend/lib_rend.c | 2 +- lib_util/audio_file_reader.c | 18 +++++++++++------- lib_util/audio_file_reader.h | 2 +- 11 files changed, 59 insertions(+), 33 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e7e2754712..bfe23c7fe7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,6 +10,7 @@ variables: EXIT_CODE_NON_BE: 123 EXIT_CODE_FAIL: 1 + # This sets when pipelines are created. Jobs have more specific rules to restrict them. workflow: rules: @@ -136,6 +137,7 @@ stages: rules: - if: $CI_PIPELINE_SOURCE == 'schedule' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + # templates to define stages and platforms .test-job-linux: tags: @@ -147,6 +149,7 @@ stages: tags: - ivas-linux + # template for test jobs on linux that need the TESTV_DIR .test-job-linux-needs-testv-dir: extends: .test-job-linux @@ -162,6 +165,7 @@ stages: exit_codes: - 123 + # --------------------------------------------------------------- # Validation jobs # --------------------------------------------------------------- @@ -180,6 +184,7 @@ check-if-branch-is-up-to-date-with-main: - echo $commits_behind_count - if [ $commits_behind_count -eq 0 ]; then exit 0; else exit 1; fi; + # --------------------------------------------------------------- # Build jobs # --------------------------------------------------------------- diff --git a/apps/encoder.c b/apps/encoder.c index 7d2de90dd0..df0cf8f9ca 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -264,18 +264,12 @@ int main( /*------------------------------------------------------------------------------------------* * Open input audio file *------------------------------------------------------------------------------------------*/ - int32_t inFileSampleRate = 0; - if ( AudioFileReader_open( &audioReader, arg.inputWavFilename, &inFileSampleRate ) != IVAS_ERR_OK ) + + if ( AudioFileReader_open( &audioReader, arg.inputWavFilename, arg.inputFs ) != IVAS_ERR_OK ) { fprintf( stderr, "\nCan't open %s\n\n", arg.inputWavFilename ); goto cleanup; } - if ( inFileSampleRate != 0 && /* inFileSampleRate will remain zero if input file is raw PCM */ - inFileSampleRate != arg.inputFs ) - { - fprintf( stderr, "Sampling rate mismatch: %d Hz requested, but %d Hz found in file %s\n", arg.inputFs, inFileSampleRate, arg.inputWavFilename ); - goto cleanup; - } /*------------------------------------------------------------------------------------------* * Open output bitstream file diff --git a/apps/renderer.c b/apps/renderer.c index 8097424cec..c64aaf5c93 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -176,7 +176,7 @@ typedef struct char executableName[RENDERER_MAX_CLI_ARG_LENGTH]; char inputFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char outputFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; - int32_t sampleRate; + uint32_t sampleRate; InputConfig inConfig; OutputConfig outConfig; char inMetadataFilePaths[RENDERER_MAX_ISM_INPUTS][RENDERER_MAX_CLI_ARG_LENGTH]; @@ -626,8 +626,8 @@ int main( setupWithSingleFormatInput( args, audioFilePath, positionProvider, masaReaders ); } - int32_t inFileSampleRate = 0; - if ( AudioFileReader_open( &audioReader, audioFilePath, &inFileSampleRate ) != IVAS_ERR_OK ) + uint32_t inFileSampleRate = 0; + if ( AudioFileReader_open( &audioReader, audioFilePath, inFileSampleRate ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening file: %s\n", audioFilePath ); exit( -1 ); diff --git a/lib_com/common_api_types.h b/lib_com/common_api_types.h index 85ff059120..0fd3e7c552 100644 --- a/lib_com/common_api_types.h +++ b/lib_com/common_api_types.h @@ -79,7 +79,11 @@ typedef struct _IVAS_ISM_METADATA float gainFactor; } IVAS_ISM_METADATA; +#ifdef EXT_RENDERER typedef struct +#else +typedef struct _IVAS_QUATERNION +#endif { float w, x, y, z; @@ -127,6 +131,7 @@ typedef struct _IVAS_LS_CUSTOM_LAYOUT float elevation[IVAS_MAX_OUTPUT_CHANNELS]; int16_t num_lfe; int16_t lfe_idx[IVAS_MAX_OUTPUT_CHANNELS]; + } IVAS_CUSTOM_LS_DATA; typedef struct ivas_LS_setup_custom *IVAS_LSSETUP_CUSTOM_HANDLE; diff --git a/lib_com/ivas_cnst.h b/lib_com/ivas_cnst.h index 56c42cb287..0074be76d2 100644 --- a/lib_com/ivas_cnst.h +++ b/lib_com/ivas_cnst.h @@ -193,8 +193,10 @@ typedef enum #define IVAS_MAX_SBA_ORDER 3 /* Maximum supported Ambisonics order */ +#ifdef EXT_RENDERER #define IVAS_LIMITER_THRESHOLD 32729 /* -0.01 dBFS */ #define IVAS_LIMITER_ATTACK_SECONDS 0.005f +#endif #define IVAS_NUM_SUPPORTED_FS 3 /* number of supported sampling-rates in IVAS */ /*----------------------------------------------------------------------------------* diff --git a/lib_com/ivas_error.h b/lib_com/ivas_error.h index bfc9396f09..fdf03190de 100644 --- a/lib_com/ivas_error.h +++ b/lib_com/ivas_error.h @@ -59,7 +59,11 @@ typedef enum IVAS_ERR_INVALID_CICP_INDEX, IVAS_ERR_INVALID_BITRATE, IVAS_ERR_INVALID_MASA_CONFIG, +#ifdef EXT_RENDERER IVAS_ERR_TOO_MANY_INPUTS, +#else + IVAS_ERR_TOO_MANY_OBJECT_INPUTS, +#endif IVAS_ERR_INDEX_OUT_OF_BOUNDS, IVAS_ERR_RECONFIGURE_NOT_SUPPORTED, IVAS_ERR_INVALID_FEC_CONFIG, @@ -135,6 +139,17 @@ typedef enum static inline const char *ivas_error_to_string( ivas_error error_code ) { + /* For error categories that are likely to still have many changes to + * specific error codes, return one string per category */ + if ( ( error_code & 0xF000 ) == 0x1000 ) + { + return "API error"; + } + if ( ( error_code & 0xF000 ) == 0x2000 ) + { + return "data error"; + } + /* For categories that are unlikely to change, use more specific strings */ switch ( error_code ) { @@ -174,17 +189,6 @@ static inline const char *ivas_error_to_string( ivas_error error_code ) break; } - /* For error categories that are likely to still have many changes to - * specific error codes, return one string per category */ - if ( ( error_code & 0xF000 ) == 0x1000 ) - { - return "API error"; - } - if ( ( error_code & 0xF000 ) == 0x2000 ) - { - return "data error"; - } - return "Unknown error"; } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index 9266f29273..eac8ec005a 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4585,7 +4585,7 @@ void rotateFrame_shd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated HOA3 signal buffer in TD */ #ifndef EXT_RENDERER - const int32_t output_fs, /* i : output sampling frequency */ + const int32_t output_Fs, /* i : output sampling frequency */ #endif const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ @@ -4596,7 +4596,7 @@ void rotateFrame_sd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated SD signal buffer in TD */ #ifndef EXT_RENDERER - const int32_t output_fs, /* i : output sampling frequency */ + const int32_t output_Fs, /* i : output sampling frequency */ #endif const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ @@ -4768,7 +4768,11 @@ ivas_error ivas_ls_custom_output_init( void ivas_ls_custom_setup( IVAS_OUTPUT_SETUP_HANDLE hOutSetup, /* o : IVAS output setup handle */ +#ifdef EXT_RENDERER const LSSETUP_CUSTOM_STRUCT *hLsSetupCustom /* i : Custom loudspeaker setup handle */ +#else + const LSSETUP_CUSTOM_HANDLE hLsSetupCustom /* i : Custom loudspeaker setup handle */ +#endif ); diff --git a/lib_enc/lib_enc.c b/lib_enc/lib_enc.c index 73f6e69ef1..04e9ed4233 100755 --- a/lib_enc/lib_enc.c +++ b/lib_enc/lib_enc.c @@ -378,7 +378,11 @@ ivas_error IVAS_ENC_ConfigureForObjects( if ( numObjects > MAX_NUM_OBJECTS ) { +#ifdef EXT_RENDERER return IVAS_ERR_TOO_MANY_INPUTS; +#else + return IVAS_ERR_TOO_MANY_OBJECT_INPUTS; +#endif } st_ivas = hIvasEnc->st_ivas; @@ -1361,7 +1365,11 @@ const char *IVAS_ENC_GetErrorMessage( return "invalid bitrate"; case IVAS_ERR_INVALID_MASA_CONFIG: return "invalid MASA config"; +#ifdef EXT_RENDERER case IVAS_ERR_TOO_MANY_INPUTS: +#else + case IVAS_ERR_TOO_MANY_OBJECT_INPUTS: +#endif return "too many object inputs provided"; case IVAS_ERR_INDEX_OUT_OF_BOUNDS: return "index out of bounds"; diff --git a/lib_rend/lib_rend.c b/lib_rend/lib_rend.c index d52635b688..ef38d00c19 100644 --- a/lib_rend/lib_rend.c +++ b/lib_rend/lib_rend.c @@ -2101,7 +2101,7 @@ static IVAS_REND_InputId makeInputId( /* Put config type in second byte (from LSB), put index + 1 in first byte * * Index is incremented here so that a valid ID can never be 0. */ - return getAudioConfigType( config ) << 8 | ( inputIndex + 1 ); + return (IVAS_REND_InputId) ( ( getAudioConfigType( config ) << 8 ) | ( inputIndex + 1 ) ); } static ivas_error getInputById( diff --git a/lib_util/audio_file_reader.c b/lib_util/audio_file_reader.c index d2c38cbb17..b6e7c6eb6d 100644 --- a/lib_util/audio_file_reader.c +++ b/lib_util/audio_file_reader.c @@ -32,7 +32,6 @@ #include "audio_file_reader.h" #include "tinywavein_c.h" -#include #include #include "wmops.h" @@ -55,13 +54,12 @@ static int8_t AudioFileReader_open_raw( static int8_t AudioFileReader_open_wav( AudioFileReader *self, const char *fileName, - int32_t *sampleRate ) + uint32_t expSampleRate ) { - uint32_t sampleRate_, samplesInFile; + uint32_t sampleRate, samplesInFile; int16_t bps; - self->wavFile = OpenWav( fileName, &sampleRate_, &self->numChannels, &samplesInFile, &bps ); - *sampleRate = sampleRate_; + self->wavFile = OpenWav( fileName, &sampleRate, &self->numChannels, &samplesInFile, &bps ); if ( !self->wavFile ) { @@ -69,6 +67,12 @@ static int8_t AudioFileReader_open_wav( return -1; } + if ( sampleRate != expSampleRate ) + { + fprintf( stderr, "Input wav file has unexpected samplerate (should be %d): %s\n", expSampleRate, fileName ); + return -1; + } + return 0; } @@ -77,7 +81,7 @@ static int8_t AudioFileReader_open_wav( ivas_error AudioFileReader_open( AudioFileReader **audioReader, /* o : AudioFileReader handle */ const char *fileName, /* i : path to wav/raw pcm file */ - int32_t *sampleRate /* o : sample rate of wav file, unused with pcm */ + uint32_t expSampleRate /* i : expected sample rate */ ) { AudioFileReader *self; @@ -104,7 +108,7 @@ ivas_error AudioFileReader_open( if ( fileNameLen > wavSuffixLen && strncmp( fileName + fileNameLen - wavSuffixLen, wavSuffix, wavSuffixLen ) == 0 ) { - retCode = AudioFileReader_open_wav( self, fileName, sampleRate ); + retCode = AudioFileReader_open_wav( self, fileName, expSampleRate ); } else { diff --git a/lib_util/audio_file_reader.h b/lib_util/audio_file_reader.h index 0fc9b1f4a1..c7d6ac0d6e 100644 --- a/lib_util/audio_file_reader.h +++ b/lib_util/audio_file_reader.h @@ -44,7 +44,7 @@ typedef struct AudioFileReader AudioFileReader; ivas_error AudioFileReader_open( AudioFileReader **audioReader, /* o : AudioFileReader handle */ const char *fileName, /* i : path to wav/raw pcm file */ - int32_t *sampleRate /* o : sample rate of wav file, unused with pcm */ + uint32_t expSampleRate /* i : expected sample rate */ ); /*! r: number of read samples */ -- GitLab From 5d812f05bc29af6c3948891967a59945cd3eaf52 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 9 Nov 2022 14:35:09 +0100 Subject: [PATCH 470/479] [pre-merge] fix more inconsistencies + accomodate change to AudioFileReader_open() --- apps/renderer.c | 2 +- lib_rend/ivas_crend.c | 2 +- lib_rend/ivas_limiter.c | 26 ++++++++++++++++++++++++++ lib_rend/ivas_ls_custom_dec.c | 5 +++++ lib_rend/ivas_objectRenderer.c | 6 ++++-- lib_rend/ivas_rotation.c | 9 ++++++++- 6 files changed, 45 insertions(+), 5 deletions(-) diff --git a/apps/renderer.c b/apps/renderer.c index c64aaf5c93..df0b6ef871 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -627,7 +627,7 @@ int main( } uint32_t inFileSampleRate = 0; - if ( AudioFileReader_open( &audioReader, audioFilePath, inFileSampleRate ) != IVAS_ERR_OK ) + if ( AudioFileReader_open( &audioReader, audioFilePath, args.sampleRate ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening file: %s\n", audioFilePath ); exit( -1 ); diff --git a/lib_rend/ivas_crend.c b/lib_rend/ivas_crend.c index d1b79ca3d5..3782f5789e 100644 --- a/lib_rend/ivas_crend.c +++ b/lib_rend/ivas_crend.c @@ -31,13 +31,13 @@ *******************************************************************************************************/ #include -#include #include "options.h" #include "prot.h" #include "ivas_prot.h" #include "ivas_cnst.h" #include "ivas_rom_rend.h" #include "ivas_stat_dec.h" +#include #include "ivas_rom_binaural_crend_head.h" #ifdef EXT_RENDERER #include "lib_rend.h" diff --git a/lib_rend/ivas_limiter.c b/lib_rend/ivas_limiter.c index a4dffb180d..fd116223c5 100644 --- a/lib_rend/ivas_limiter.c +++ b/lib_rend/ivas_limiter.c @@ -39,6 +39,16 @@ #include "wmops.h" #include +#ifndef EXT_RENDERER +/*----------------------------------------------------------------------------------* + * Local constants + *----------------------------------------------------------------------------------*/ + +#define LIMITER_THRESHOLD 32729 /* -0.01 dBFS */ +#define LIMITER_ATTACK_SECONDS 0.005f + +#endif + /*-------------------------------------------------------------------* * detect_strong_saturations() * @@ -63,11 +73,19 @@ static int16_t detect_strong_saturations( *strong_saturation_cnt = 50; apply_strong_limiting = 1; } +#ifdef EXT_RENDERER else if ( max_val > 3 * IVAS_LIMITER_THRESHOLD && *strong_saturation_cnt > 0 ) +#else + else if ( max_val > 3 * LIMITER_THRESHOLD && *strong_saturation_cnt > 0 ) +#endif { apply_strong_limiting = 1; } +#ifdef EXT_RENDERER else if ( max_val > 10 * IVAS_LIMITER_THRESHOLD ) +#else + else if ( max_val > 10 * LIMITER_THRESHOLD ) +#endif { *strong_saturation_cnt += 20; *strong_saturation_cnt = min( *strong_saturation_cnt, 50 ); @@ -122,7 +140,11 @@ IVAS_LIMITER_HANDLE ivas_limiter_open( hLimiter->sampling_rate = sampling_rate; hLimiter->gain = 1.f; hLimiter->release_heuristic = 0.f; +#ifdef EXT_RENDERER hLimiter->attack_constant = powf( 0.01f, 1.0f / ( IVAS_LIMITER_ATTACK_SECONDS * sampling_rate ) ); +#else + hLimiter->attack_constant = powf( 0.01f, 1.0f / ( LIMITER_ATTACK_SECONDS * sampling_rate ) ); +#endif hLimiter->strong_saturation_count = 0; #ifdef DEBUGGING hLimiter->cnt_frames_limited = 0; @@ -194,7 +216,11 @@ void ivas_limiter_dec( channels[c] = output[c]; } +#ifdef EXT_RENDERER limiter_process( hLimiter, output_frame, IVAS_LIMITER_THRESHOLD, BER_detect, &hLimiter->strong_saturation_count ); +#else + limiter_process( hLimiter, output_frame, LIMITER_THRESHOLD, BER_detect, &hLimiter->strong_saturation_count ); +#endif return; } diff --git a/lib_rend/ivas_ls_custom_dec.c b/lib_rend/ivas_ls_custom_dec.c index 28bd8c1dd8..4f10420363 100644 --- a/lib_rend/ivas_ls_custom_dec.c +++ b/lib_rend/ivas_ls_custom_dec.c @@ -79,8 +79,13 @@ ivas_error ivas_ls_custom_open( *-------------------------------------------------------------------------*/ void ivas_ls_custom_setup( +#ifdef EXT_RENDERER IVAS_OUTPUT_SETUP_HANDLE hOutSetup, /* o : IVAS output setup handle */ const LSSETUP_CUSTOM_STRUCT *hLsSetupCustom /* i : Custom loudspeaker setup handle */ +#else + IVAS_OUTPUT_SETUP_HANDLE hOutSetup, /* o : IVAS output setup handle */ + const LSSETUP_CUSTOM_HANDLE hLsSetupCustom /* i : Custom loudspeaker setup handle */ +#endif ) { hOutSetup->output_config = AUDIO_CONFIG_LS_CUSTOM; diff --git a/lib_rend/ivas_objectRenderer.c b/lib_rend/ivas_objectRenderer.c index 7bd892cdac..31bc3b5e0a 100644 --- a/lib_rend/ivas_objectRenderer.c +++ b/lib_rend/ivas_objectRenderer.c @@ -31,10 +31,10 @@ *******************************************************************************************************/ #include -#include #include "options.h" #include "prot.h" #include "ivas_prot.h" +#include #include "wmops.h" #include "ivas_rom_com.h" #ifdef EXT_RENDERER @@ -271,7 +271,9 @@ void ObjRenderIVASFrame( for ( subframe_idx = 0; subframe_idx < MAX_PARAM_SPATIAL_SUBFRAMES; subframe_idx++ ) { /* Update the listener's location/orientation */ - TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, st_ivas->hDecoderConfig->Opt_Headrotation, ( st_ivas->hHeadTrackData != NULL ) ? &st_ivas->hHeadTrackData->Quaternions[subframe_idx] : NULL ); + TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, + st_ivas->hDecoderConfig->Opt_Headrotation, + ( st_ivas->hHeadTrackData != NULL ) ? &st_ivas->hHeadTrackData->Quaternions[subframe_idx] : NULL ); if ( ( st_ivas->hRenderConfig != NULL ) && ( st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) { diff --git a/lib_rend/ivas_rotation.c b/lib_rend/ivas_rotation.c index d8af4fe69a..4f5ba72d39 100644 --- a/lib_rend/ivas_rotation.c +++ b/lib_rend/ivas_rotation.c @@ -46,6 +46,7 @@ #include "wmops.h" #ifndef EXT_RENDERER + /*-----------------------------------------------------------------------* * Local Constants *-----------------------------------------------------------------------*/ @@ -54,11 +55,13 @@ #define HEADROT_SHMAT_DIM ( HEADROT_ORDER + 1 ) * ( HEADROT_ORDER + 1 ) #define HEADROT_SHMAT_DIM2 HEADROT_SHMAT_DIM *HEADROT_SHMAT_DIM + /*-----------------------------------------------------------------------* * Local Function prototypes *-----------------------------------------------------------------------*/ static void SHrotmatgen( float SHrotmat[HEADROT_SHMAT_DIM][HEADROT_SHMAT_DIM], float Rmat[3][3], const int16_t order ); + #endif /*-----------------------------------------------------------------------* @@ -310,7 +313,7 @@ void rotateFrame_shd( HEAD_TRACK_DATA_HANDLE hHeadTrackData, /* i : head track handle */ float output[][L_FRAME48k], /* i/o: unrotated HOA3 signal buffer in TD */ #ifndef EXT_RENDERER - const int32_t output_fs, /* i : output sampling frequency */ + const int32_t output_Fs, /* i : output sampling frequency */ #endif const int16_t subframe_len, /* i : subframe length per channel */ const IVAS_OUTPUT_SETUP hTransSetup, /* i : format for rotation */ @@ -934,7 +937,11 @@ static float SHrot_w( } } +#ifdef EXT_RENDERER void SHrotmatgen( +#else +static void SHrotmatgen( +#endif float SHrotmat[HEADROT_SHMAT_DIM][HEADROT_SHMAT_DIM], /* o : rotation matrix in SHD */ float Rmat[3][3], /* i : real-space rotation matrix */ const int16_t order /* i : ambisonics order */ -- GitLab From dd2f16eac782dc358deb344510279f5f775c251f Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 9 Nov 2022 14:55:55 +0100 Subject: [PATCH 471/479] revert changes from 005ccc4b for AudioFileReader_open() - required and cannot be wrapped in EXT_RENDERER --- apps/encoder.c | 10 ++++++++-- apps/renderer.c | 6 +++--- lib_util/audio_file_reader.c | 18 +++++++----------- lib_util/audio_file_reader.h | 2 +- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/apps/encoder.c b/apps/encoder.c index df0cf8f9ca..7d2de90dd0 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -264,12 +264,18 @@ int main( /*------------------------------------------------------------------------------------------* * Open input audio file *------------------------------------------------------------------------------------------*/ - - if ( AudioFileReader_open( &audioReader, arg.inputWavFilename, arg.inputFs ) != IVAS_ERR_OK ) + int32_t inFileSampleRate = 0; + if ( AudioFileReader_open( &audioReader, arg.inputWavFilename, &inFileSampleRate ) != IVAS_ERR_OK ) { fprintf( stderr, "\nCan't open %s\n\n", arg.inputWavFilename ); goto cleanup; } + if ( inFileSampleRate != 0 && /* inFileSampleRate will remain zero if input file is raw PCM */ + inFileSampleRate != arg.inputFs ) + { + fprintf( stderr, "Sampling rate mismatch: %d Hz requested, but %d Hz found in file %s\n", arg.inputFs, inFileSampleRate, arg.inputWavFilename ); + goto cleanup; + } /*------------------------------------------------------------------------------------------* * Open output bitstream file diff --git a/apps/renderer.c b/apps/renderer.c index df0b6ef871..8097424cec 100644 --- a/apps/renderer.c +++ b/apps/renderer.c @@ -176,7 +176,7 @@ typedef struct char executableName[RENDERER_MAX_CLI_ARG_LENGTH]; char inputFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; char outputFilePath[RENDERER_MAX_CLI_ARG_LENGTH]; - uint32_t sampleRate; + int32_t sampleRate; InputConfig inConfig; OutputConfig outConfig; char inMetadataFilePaths[RENDERER_MAX_ISM_INPUTS][RENDERER_MAX_CLI_ARG_LENGTH]; @@ -626,8 +626,8 @@ int main( setupWithSingleFormatInput( args, audioFilePath, positionProvider, masaReaders ); } - uint32_t inFileSampleRate = 0; - if ( AudioFileReader_open( &audioReader, audioFilePath, args.sampleRate ) != IVAS_ERR_OK ) + int32_t inFileSampleRate = 0; + if ( AudioFileReader_open( &audioReader, audioFilePath, &inFileSampleRate ) != IVAS_ERR_OK ) { fprintf( stderr, "Error opening file: %s\n", audioFilePath ); exit( -1 ); diff --git a/lib_util/audio_file_reader.c b/lib_util/audio_file_reader.c index b6e7c6eb6d..d2c38cbb17 100644 --- a/lib_util/audio_file_reader.c +++ b/lib_util/audio_file_reader.c @@ -32,6 +32,7 @@ #include "audio_file_reader.h" #include "tinywavein_c.h" +#include #include #include "wmops.h" @@ -54,12 +55,13 @@ static int8_t AudioFileReader_open_raw( static int8_t AudioFileReader_open_wav( AudioFileReader *self, const char *fileName, - uint32_t expSampleRate ) + int32_t *sampleRate ) { - uint32_t sampleRate, samplesInFile; + uint32_t sampleRate_, samplesInFile; int16_t bps; - self->wavFile = OpenWav( fileName, &sampleRate, &self->numChannels, &samplesInFile, &bps ); + self->wavFile = OpenWav( fileName, &sampleRate_, &self->numChannels, &samplesInFile, &bps ); + *sampleRate = sampleRate_; if ( !self->wavFile ) { @@ -67,12 +69,6 @@ static int8_t AudioFileReader_open_wav( return -1; } - if ( sampleRate != expSampleRate ) - { - fprintf( stderr, "Input wav file has unexpected samplerate (should be %d): %s\n", expSampleRate, fileName ); - return -1; - } - return 0; } @@ -81,7 +77,7 @@ static int8_t AudioFileReader_open_wav( ivas_error AudioFileReader_open( AudioFileReader **audioReader, /* o : AudioFileReader handle */ const char *fileName, /* i : path to wav/raw pcm file */ - uint32_t expSampleRate /* i : expected sample rate */ + int32_t *sampleRate /* o : sample rate of wav file, unused with pcm */ ) { AudioFileReader *self; @@ -108,7 +104,7 @@ ivas_error AudioFileReader_open( if ( fileNameLen > wavSuffixLen && strncmp( fileName + fileNameLen - wavSuffixLen, wavSuffix, wavSuffixLen ) == 0 ) { - retCode = AudioFileReader_open_wav( self, fileName, expSampleRate ); + retCode = AudioFileReader_open_wav( self, fileName, sampleRate ); } else { diff --git a/lib_util/audio_file_reader.h b/lib_util/audio_file_reader.h index c7d6ac0d6e..0fc9b1f4a1 100644 --- a/lib_util/audio_file_reader.h +++ b/lib_util/audio_file_reader.h @@ -44,7 +44,7 @@ typedef struct AudioFileReader AudioFileReader; ivas_error AudioFileReader_open( AudioFileReader **audioReader, /* o : AudioFileReader handle */ const char *fileName, /* i : path to wav/raw pcm file */ - uint32_t expSampleRate /* i : expected sample rate */ + int32_t *sampleRate /* o : sample rate of wav file, unused with pcm */ ); /*! r: number of read samples */ -- GitLab From 8878cca6b77b9be8cfc230fa30490bffbccfff12 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 9 Nov 2022 15:14:10 +0100 Subject: [PATCH 472/479] temporarily disable FIX_EFAP_MATH since it breaks BE --- lib_com/options.h | 2 +- tests/renderer/constants.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index 7e32d95326..42247e6582 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,7 @@ #define FIX_I1_113 /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ #define EXT_RENDERER /* FhG: external renderer library and standalone application */ -#define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ +// #define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ #define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ #define FIX_MCT_PLC_RECOVERY /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ #define SBA_BR_SWITCHING /* Issue 114: Changes for sba bit rate switching*/ diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index cb2d580ec3..63659f2904 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -284,6 +284,8 @@ pass_snr = { # #################################################################### # TODO needs debugging + "test_ambisonics_binaural_headrotation[FOA-BINAURAL-full_circle_in_15s]": 63, + "test_ambisonics_binaural_headrotation[FOA-BINAURAL-rotate_yaw_pitch_roll1]": 44, "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-full_circle_in_15s]": 18, "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-full_circle_in_15s]": 15, # Failure reason: Crend unit test does not support intermediate conversion to 7_1_4 or SHD BRIRs -- GitLab From fc4435dc79382991eb106518f5369ea3b8e28729 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 9 Nov 2022 15:25:19 +0100 Subject: [PATCH 473/479] Revert "temporarily disable FIX_EFAP_MATH since it breaks BE" This reverts commit 8878cca6b77b9be8cfc230fa30490bffbccfff12. --- lib_com/options.h | 2 +- tests/renderer/constants.py | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 42247e6582..7e32d95326 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -146,7 +146,7 @@ #define FIX_I1_113 /* under review : MCT bit distribution optimization for SBA high bitrates*/ #define PRINT_SBA_ORDER /* Issue 179: print-out also the SBA order of IVAS SBA format to stdout */ #define EXT_RENDERER /* FhG: external renderer library and standalone application */ -// #define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ +#define FIX_EFAP_MATH /* fix for EFAP: remove angle quantization and a bug in polygon lookup causing incorrect gains. minor tweak for ALLRAD. non-BE for modes using EFAP */ #define FIX_124_DONT_ALLOC_PLCINFO_IN_IVAS /* Issue 124: do not allocate unused plc struct in IVAS modes which is only used in EVS mono */ #define FIX_MCT_PLC_RECOVERY /* Issue 184: scale the old synthesis part correctly in the first good frame after lost frames in MCT modes - to be activated after previous switch is merged */ #define SBA_BR_SWITCHING /* Issue 114: Changes for sba bit rate switching*/ diff --git a/tests/renderer/constants.py b/tests/renderer/constants.py index 63659f2904..cb2d580ec3 100644 --- a/tests/renderer/constants.py +++ b/tests/renderer/constants.py @@ -284,8 +284,6 @@ pass_snr = { # #################################################################### # TODO needs debugging - "test_ambisonics_binaural_headrotation[FOA-BINAURAL-full_circle_in_15s]": 63, - "test_ambisonics_binaural_headrotation[FOA-BINAURAL-rotate_yaw_pitch_roll1]": 44, "test_ambisonics_binaural_headrotation[HOA2-BINAURAL-full_circle_in_15s]": 18, "test_ambisonics_binaural_headrotation[HOA3-BINAURAL-full_circle_in_15s]": 15, # Failure reason: Crend unit test does not support intermediate conversion to 7_1_4 or SHD BRIRs -- GitLab From 52dcd0de1790e24ee131affbf0821065bff05012 Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Wed, 9 Nov 2022 15:36:13 +0100 Subject: [PATCH 474/479] [ci] enable external-renderer-pytest-on-merge-request job --- .gitlab-ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bfe23c7fe7..f99f6ce010 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -407,8 +407,7 @@ external-renderer-cmake-msan-pytest: - report-junit.xml # compare external renderer bitexactness between target and source branch -# TODO: to be tested after first merge -.external-renderer-pytest-on-merge-request: +external-renderer-pytest-on-merge-request: extends: - .test-job-linux - .rules-merge-request -- GitLab From 4b1cda0161bf7d520dbb1d7095e1df3d84db70af Mon Sep 17 00:00:00 2001 From: Shanush Prema Thasarathan Date: Thu, 10 Nov 2022 10:56:47 +1100 Subject: [PATCH 475/479] Fix crend build on windows --- .../v16/Solution.VC.db-wal | 0 .../unit_tests/crend/ivas_crend_unit_test.sln | 23 +++++++++++++++++-- .../crend/ivas_crend_unit_test.vcxproj | 7 ++++-- 3 files changed, 26 insertions(+), 4 deletions(-) delete mode 100644 scripts/ivas_pytests/tests/unit_tests/crend/.vs/ivas_crend_unit_test/v16/Solution.VC.db-wal diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/.vs/ivas_crend_unit_test/v16/Solution.VC.db-wal b/scripts/ivas_pytests/tests/unit_tests/crend/.vs/ivas_crend_unit_test/v16/Solution.VC.db-wal deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.sln b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.sln index e3a6f0a4e8..549ec51076 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.sln +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31911.196 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.1500 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ivas_crend_unit_test", "ivas_crend_unit_test.vcxproj", "{32354377-ACA7-40F9-9A0E-87FC956F0B78}" EndProject @@ -13,32 +13,51 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_debug", "..\..\..\..\.. EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_util", "..\..\..\..\..\Workspace_msvc\lib_util.vcxproj", "{2FA8F384-0775-F3B7-F8C3-85209222FC70}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib_rend", "..\..\..\..\..\Workspace_msvc\lib_rend.vcxproj", "{718DE063-A18B-BB72-9150-62B892E6FFA6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 + Unittests|Win32 = Unittests|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {32354377-ACA7-40F9-9A0E-87FC956F0B78}.Debug|Win32.ActiveCfg = Debug|Win32 {32354377-ACA7-40F9-9A0E-87FC956F0B78}.Debug|Win32.Build.0 = Debug|Win32 {32354377-ACA7-40F9-9A0E-87FC956F0B78}.Release|Win32.ActiveCfg = Release|Win32 {32354377-ACA7-40F9-9A0E-87FC956F0B78}.Release|Win32.Build.0 = Release|Win32 + {32354377-ACA7-40F9-9A0E-87FC956F0B78}.Unittests|Win32.ActiveCfg = Release|Win32 + {32354377-ACA7-40F9-9A0E-87FC956F0B78}.Unittests|Win32.Build.0 = Release|Win32 {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Debug|Win32.ActiveCfg = Debug|Win32 {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Debug|Win32.Build.0 = Debug|Win32 {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Release|Win32.ActiveCfg = Release|Win32 {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Release|Win32.Build.0 = Release|Win32 + {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Unittests|Win32.ActiveCfg = Unittests|Win32 + {39EC200D-7795-4FF8-B214-B24EDA5526AE}.Unittests|Win32.Build.0 = Unittests|Win32 {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Debug|Win32.ActiveCfg = Debug|Win32 {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Debug|Win32.Build.0 = Debug|Win32 {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Release|Win32.ActiveCfg = Release|Win32 {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Release|Win32.Build.0 = Release|Win32 + {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Unittests|Win32.ActiveCfg = Unittests|Win32 + {E822DDAF-0F5F-4CD0-A694-38AE69DE74D3}.Unittests|Win32.Build.0 = Unittests|Win32 {54509728-928B-44D9-A118-A6F92F08B34F}.Debug|Win32.ActiveCfg = Debug|Win32 {54509728-928B-44D9-A118-A6F92F08B34F}.Debug|Win32.Build.0 = Debug|Win32 {54509728-928B-44D9-A118-A6F92F08B34F}.Release|Win32.ActiveCfg = Release|Win32 {54509728-928B-44D9-A118-A6F92F08B34F}.Release|Win32.Build.0 = Release|Win32 + {54509728-928B-44D9-A118-A6F92F08B34F}.Unittests|Win32.ActiveCfg = Unittests|Win32 + {54509728-928B-44D9-A118-A6F92F08B34F}.Unittests|Win32.Build.0 = Unittests|Win32 {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Debug|Win32.ActiveCfg = Debug|Win32 {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Debug|Win32.Build.0 = Debug|Win32 {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Release|Win32.ActiveCfg = Release|Win32 {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Release|Win32.Build.0 = Release|Win32 + {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Unittests|Win32.ActiveCfg = Unittests|Win32 + {2FA8F384-0775-F3B7-F8C3-85209222FC70}.Unittests|Win32.Build.0 = Unittests|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Debug|Win32.ActiveCfg = Debug|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Debug|Win32.Build.0 = Debug|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Release|Win32.ActiveCfg = Release|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Release|Win32.Build.0 = Release|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Unittests|Win32.ActiveCfg = Unittests|Win32 + {718DE063-A18B-BB72-9150-62B892E6FFA6}.Unittests|Win32.Build.0 = Unittests|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj index 3d8e7ab07f..2b0527648d 100644 --- a/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj +++ b/scripts/ivas_pytests/tests/unit_tests/crend/ivas_crend_unit_test.vcxproj @@ -17,6 +17,9 @@ {e822ddaf-0f5f-4cd0-a694-38ae69de74d3} + + {718DE063-A18B-BB72-9150-62B892E6FFA6} + {2fa8f384-0775-f3b7-f8c3-85209222fc70} @@ -97,7 +100,7 @@ Neither false false - ..\..\..\..\..\lib_util;..\..\..\..\..\lib_dec;..\..\..\..\..\lib_com;..\..\..\..\..\lib_enc;..\..\..\..\..\lib_debug;..\..\..\..\..\lib_util;%(AdditionalIncludeDirectories) + ..\..\..\..\..\lib_util;..\..\..\..\..\lib_dec;..\..\..\..\..\lib_rend;..\..\..\..\..\lib_com;..\..\..\..\..\lib_enc;..\..\..\..\..\lib_debug;..\..\..\..\..\lib_util;%(AdditionalIncludeDirectories) UNIT_TEST_CREND_TD_BINAURAL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true @@ -143,7 +146,7 @@ Disabled - ..\..\..\..\..\lib_util;..\..\..\..\..\lib_dec;..\..\..\..\..\lib_com;..\..\..\..\..\lib_enc;..\..\..\..\..\lib_debug;..\..\..\..\..\lib_util;%(AdditionalIncludeDirectories) + ..\..\..\..\..\lib_util;..\..\..\..\..\lib_dec;..\..\..\..\..\lib_rend;..\..\..\..\..\lib_com;..\..\..\..\..\lib_enc;..\..\..\..\..\lib_debug;..\..\..\..\..\lib_util;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;WIN32;%(PreprocessorDefinitions) EnableFastChecks -- GitLab From a2a4512751db2dab33cb8fb8330909935ac35e41 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 10 Nov 2022 08:55:29 +0100 Subject: [PATCH 476/479] changes in ivas_agc_enc_get_flag() --- lib_enc/ivas_agc_enc.c | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/lib_enc/ivas_agc_enc.c b/lib_enc/ivas_agc_enc.c index d890e920a8..f39f2b8148 100644 --- a/lib_enc/ivas_agc_enc.c +++ b/lib_enc/ivas_agc_enc.c @@ -59,43 +59,35 @@ extern FILE *agcOut; static int16_t ivas_agc_writeBits( FILE *stream, const int16_t n_channels, ivas_agc_enc_state_t *pState ); #endif -#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_get_flag() * - * This function determines if AGC should be enabled or disabled. - * If agc_configuration is not undefined, then this value decides on the state of - * enablement, otherwise AGC is enabled only if there is one transport channel. - * + * This function determines if AGC is enabled or disabled. *-----------------------------------------------------------------------------------------*/ /*! r: AGC enable flag */ int16_t ivas_agc_enc_get_flag( +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION int16_t agc_configuration, /* i : AGC configuration from command-line */ - int16_t nchan_transport /* i : number of transport channels */ +#endif + int16_t nchan_transport /* i : number of transport channels */ ) { - return (int16_t) ( ( agc_configuration == SBA_AGC_DEFAULT ) ? ( nchan_transport == 1 ) : agc_configuration ); -} + int16_t agc_flag; -#else -/*-----------------------------------------------------------------------------------------* - * Function ivas_agc_enc_get_flag() - * - * This function determines if AGC should be enabled or disabled. - * AGC is enabled only if there is one transport channel. - * - *-----------------------------------------------------------------------------------------*/ + /* AGC is enabled only if there is one transport channel. */ + agc_flag = (int16_t) ( nchan_transport == 1 ); -/*! r: AGC enable flag */ -int16_t ivas_agc_enc_get_flag( - int16_t nchan_transport /* i : number of transport channels */ -) -{ - return (int16_t) ( nchan_transport == 1 ); +#ifdef DEBUG_AGC_ENCODER_CMD_OPTION + /* If agc_configuration is not undefined, then this value decides on the state of * enablement, + otherwise AGC is enabled only if there is one transport channel. */ + agc_flag = ( agc_configuration != SBA_AGC_DEFAULT ) ? agc_configuration : agc_flag; +#endif + + return agc_flag; } -#endif /*-----------------------------------------------------------------------------------------* * Function ivas_agc_enc_init() -- GitLab From 7dddc5d51f8b65987c43af5c6bb066251c0e0cd9 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 10 Nov 2022 08:56:27 +0100 Subject: [PATCH 477/479] change of order of dbgclose --- apps/decoder.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/decoder.c b/apps/decoder.c index 91dd36357d..e8d8019e00 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -583,11 +583,10 @@ cleanup: } #ifdef DEBUGGING - dbgclose(); - #ifdef DEBUG_SBA_AUDIO_DUMP ivas_close_sba_decoder_debug_files( arg.output_Fs, numOutChannels, numTransportChannels, pca_ingest_channels ); #endif + dbgclose(); #endif return mainFailed ? -1 : 0; -- GitLab From 585490f588f84e92063fbcc360841e6dcfeb2252 Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 10 Nov 2022 09:15:44 +0100 Subject: [PATCH 478/479] fix merge issue causing a build failure --- lib_com/ivas_error.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lib_com/ivas_error.h b/lib_com/ivas_error.h index c1c21046b0..f0435aaac2 100644 --- a/lib_com/ivas_error.h +++ b/lib_com/ivas_error.h @@ -89,13 +89,6 @@ typedef enum IVAS_ERR_INVALID_MASA_FORMAT_METADATA_FILE, #ifdef DEBUGGING IVAS_ERR_INVALID_FORCE_MODE, -#ifdef EXT_RENDERER - IVAS_ERR_NUM_CHANNELS_UNKNOWN, - IVAS_ERR_INVALID_CUSTOM_LS_LAYOUT, - IVAS_ERR_INVALID_INPUT_ID, - IVAS_ERR_WRONG_NUM_CHANNELS, - IVAS_ERR_INVALID_BUFFER_SIZE, -#endif #ifdef DEBUG_AGC_ENCODER_CMD_OPTION IVAS_ERR_INVALID_AGC, #endif @@ -129,6 +122,18 @@ typedef enum IVAS_ERR_BITSTREAM_READER_INVALID_DATA, IVAS_ERR_BITSTREAM_READER_INVALID_FORMAT, +#ifdef EXT_RENDERER + /*----------------------------------------* + * renderer (lib_rend only) * + *----------------------------------------*/ + + IVAS_ERR_NUM_CHANNELS_UNKNOWN, + IVAS_ERR_INVALID_CUSTOM_LS_LAYOUT, + IVAS_ERR_INVALID_INPUT_ID, + IVAS_ERR_WRONG_NUM_CHANNELS, + IVAS_ERR_INVALID_BUFFER_SIZE, +#endif + /*----------------------------------------* * unknown error * *----------------------------------------*/ -- GitLab From 17fab5fd910731fe5ec8d10cfdb6418fabf0554c Mon Sep 17 00:00:00 2001 From: vaclav Date: Thu, 10 Nov 2022 09:17:08 +0100 Subject: [PATCH 479/479] move 'IVAS_ENC_STEREO_MODE' --- lib_enc/lib_enc.h | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/lib_enc/lib_enc.h b/lib_enc/lib_enc.h index 1403b92b37..dbcb21c989 100644 --- a/lib_enc/lib_enc.h +++ b/lib_enc/lib_enc.h @@ -71,19 +71,6 @@ typedef struct _IVAS_ENC_DTX_CONFIG int16_t SID_interval; } IVAS_ENC_DTX_CONFIG; -#ifdef DEBUGGING -typedef enum _IVAS_ENC_STEREO_MODE -{ - IVAS_ENC_STEREO_MODE_UNIFIED, - IVAS_ENC_STEREO_MODE_DFT, - IVAS_ENC_STEREO_MODE_TD, - IVAS_ENC_STEREO_MODE_MDCT_DECISION, - IVAS_ENC_STEREO_MODE_MDCT_FORCE_LR, - IVAS_ENC_STEREO_MODE_MDCT_FORCE_MS, - IVAS_ENC_STEREO_MODE_UNDEFINED = 0xffff -} IVAS_ENC_STEREO_MODE; -#endif /* DEBUGGING */ - typedef enum _IVAS_ENC_SBA_ORDER { IVAS_ENC_SBA_FOA = 1, @@ -110,6 +97,17 @@ typedef enum _IVAS_ENC_MASA_VARIANT } IVAS_ENC_MASA_VARIANT; #ifdef DEBUGGING +typedef enum _IVAS_ENC_STEREO_MODE +{ + IVAS_ENC_STEREO_MODE_UNIFIED, + IVAS_ENC_STEREO_MODE_DFT, + IVAS_ENC_STEREO_MODE_TD, + IVAS_ENC_STEREO_MODE_MDCT_DECISION, + IVAS_ENC_STEREO_MODE_MDCT_FORCE_LR, + IVAS_ENC_STEREO_MODE_MDCT_FORCE_MS, + IVAS_ENC_STEREO_MODE_UNDEFINED = 0xffff +} IVAS_ENC_STEREO_MODE; + typedef enum _IVAS_ENC_FORCED_MODE { IVAS_ENC_FORCE_SPEECH, -- GitLab